본문 바로가기

창고1101

DRAM DDR4 구조 - Bank, Rank, Row, Column? 채널: 랭크의 집합 랭크: 뱅크의 집합 뱅크: FET+Cap의 직렬연결은 Word line이라고 하며 Row address를 갖는다. 데이터를 읽어갈때 Cap값을 증폭시키기 위한 Sense Amp가 연결되는 세로 Column address를 갖는다. Page size는 같은 Word line에 연결된 FET의 bit 수를 나타냄. 보통 1kB, 2kB인데 1kB의 경우 1024*8bit이므로 Column은 8196개가 됨. Refresh는 DRAM의 경우 보통 64ms 이내 이뤄져야 하는데 Colum별로 Refresh가 이뤄짐을 감안하면 64/8196 = 7.8us마다 Column의 Refresh가 일어난다. 실제 데이터시트 분석 해보기 2Gb x4 (Data width = 4)인 경우 뱅크그룹은 4개 .. 2021. 9. 29.
전자공학도가 이해하는 알고리즘 평가방법 (Big-O, Omega, Theta) 컴퓨터공학쪽에서는 기본중에 기본 같은 개념이던데, 전자전기공학부 학사 출신인 나는 이번 기회에 처음 들어본 이야기.... (심지어 임베디드 프로그래밍으로 밥벌어 먹고 산지 10년차인데 자기계발이 부족했다는 뜻일까?ㅠ) 암튼, 코드가 효율적으로 잘 짜여져 있는지 보기 위해 평가기준이 필요한데 - 메모리 사용량 - 수행시간 이 일반적인 것 같다. 이를 있어보이게 표현하면 - 메모리 사용량: 공간복잡도 - 수행시간: 시간복잡도 로 일컫는 것 같고 왜 인지 모르겠으나 온라인상에서는 시간복잡도에 관련된 개념들이 훨씬 많던데 내 추측으로는 DDR4 같은 DRAM을 점유하는 비중이 좀 더 커지더라도 빠릿빠릿한 실행속도를 원하는 일반 사용자들이 많기 때문이 아닐까... 필요하면 DRAM은 더 장착하면 되는데 CPU 추.. 2021. 9. 29.
인텔i5 CPU의 구조체 Padding, Little endianness 관찰 결과 제 노트북 CPU는 인텔 i5-5200U dlqslek. 비쥬얼스튜디오 2019로 간단히 Struct 구조체의 Padding, 배열의 Little endianness를 관찰해봤습니다. 구조체를 만들때 애매하게 char 1바이트 바로 이어 int 10개짜리 배열을 만들어 봤습니다. 그랬더니 char 1 이후 3바이트의 Padding byte가 자동삽입되었습니다. 그리고 int 배열인 abc를 보면 0x3456789a가 실제 메모리상에서는 0x78563412 으로 입력되는 것으로 보아 Little endianness 인것을 알수있습니다. 다만, Bit ordering은 영향을 주지 않으므로 1Byte 내에서는 값이 변하지 않습니다. 2021. 9. 26.
c# 데이터그리드뷰의 셀값 잘못 입력했을때 에러메시지 수정하는 방법 키움증권 OpenAPI+로 자동매매 기능을 구현하던 중, 개발자인 저는 충분히 감안하고 사용할만한 데이터그리드뷰(Datagridview)에 정해놓은 데이터타입이 아닌 값을 넣었을때 발생하는 에러 메시지를 수정하는 법을 알아보겠습니다. 예를 들어, 아래 데이터그리드뷰 테이블은 "설정"열의 입력값은 항상 "숫자"여야 하지만 일부러 글자 "ㅇ"(이응)을 입력해봤습니다. 그랬더니 이런 에러가 뾰로롱~~ 메시지가 뜨는 건 잘못된거니까 OK 하지만 개발자가 아닌 일반 사용자에게 굳이 보여줄 필요가 없는 스택정보가 다 포함되어 있어서 이 메시지를 수정해주려고 합니다. 친절하게도 해당 Datagridview에서 DataError 이벤트를 제공해주고 있네요. 이벤트 생성 후~ 저는 간단히 입력값이 잘못된 경우가 대다수라.. 2021. 9. 17.