뜬금없이 궁금한 점이긴 한데


논리회로 공부를 하다가 보면 NAND gate를 배우기 마련


그럼 SSD에 들어가는 NAND Flash Memory에 NAND gate소자가 들어가서 NAND라는 이름이 붙은 걸까?


이유는 NAND flash memory 셀 어레이 회로 구조가 nMOS NAND gate의 회로 구조와 동일 하기 때문입니다.



                       

                               <fig 1>                                                                         <fig 2>



위 그림에서 <fig1>의 왼쪽 그림이 NAND flash memory의 셀 구조 입니다. 


<fig1>에 나온 memory의 일부를 '스트링'이라고 하는데 NAND는 스트링이 Bit Line과 Source Line을 공유하는 구조 입니다.


<fig2>는 nMOS NAND gate의 회로 인데 NAND flash memory 스트링의 회로와 같이 소스와 드레인을 공유하고 있습니다.


이때문에 <fig1>의 어레이를 구조 하고 있는 flash memory를 NAND flash memory 라고 부르게 되었습니다.



부족하거나 틀린점은 피드백 바랍니다.



출처

fig1 : https://www.omicsonline.org/open-access/nand-flash-memory-organization-and-operations-2165-7866-1000139.php?aid=46500

fig2 : https://upload.wikimedia.org/wikipedia/commons/4/49/NMOS_NAND.svg




참고자료

- NAND flash memory

https://gigglehd.com/zbxe/5791789

http://gamma0burst.tistory.com/593

https://www.omicsonline.org/open-access/nand-flash-memory-organization-and-operations-2165-7866-1000139.php?aid=46500


- NAND vs NOR

https://gigglehd.com/zbxe/5709833

http://slidesplayer.org/slide/11162137/


- NAND gate

https://ko.wikipedia.org/wiki/NAND_%EA%B2%8C%EC%9D%B4%ED%8A%B8


- NOR gate

https://ko.wikipedia.org/wiki/NOR_%EA%B2%8C%EC%9D%B4%ED%8A%B8





1. 2진수


1.1 2진수와 16진수

- 변환 : 16진수는 십진수로 0~15까지 표현이 가능하다. 이진수로는 0000~1111까지 표현이 가능하다.

          2진수에서 16진수로 변환은 오른쪽부터 4bit씩 잘라서 변환하면 된다.

          1110001(2) =>  111(2) = 2^3 - 1 = 7

                              0001(2) = 1

          1110001(2) = 71(16)



1.2 용어

- word : 사용하는 프로세서가 몇 비트냐에 따라 워드의 크기가 바뀐다.

           한번에 처리할 수 있는 단위(일반적으로 레지스터의 크기라고 보며된다.)

           32bit processor라면 32bit = 1word

※ 현재 공부하고 있는 프로세서가 몇 비트인지 알아둬야 한다.

   (단, 32bit 임에도 SW상에서는 16bit를 1word로 처리하는 프로세서가 있다.)

   (이유는 나중에... 나에게 별로 중요하지 않은 부분이라 앞으로 설명할 기회가 있을지는 모르겠다.)


- MSB(Most Significant Bit), LSB(Least SIgnificant Bit)

  MSB : 최상위 비트

  LSB : 최하위 비트

  101100(2) 에서  

    1        0 1 1 0        0

  MSB                     LSB



1.3 2진수의 표현

- Signed-Magnitude

- One's Complement

- Two's Complement

- 앞으로는 2의 보수만 사용할 것이다. 1의 보수나 부호와 크기 표현은 대표적으로 0이 두개인 문제가 발생함.(다른 문제도 있음)

(설명은 귀찮으니 패스...)

- 2의 보수에서 표현 범위 : [-2^(N-1) ~ 2^(N-1)-1] (참고로 '[ ]'는 닫힌구간)



1.4 Overflow / Underflow

- Overflow : 절대값의 표현범위가 자료형이 나타낼 수 있는 범위를 넘어설 때

  17.12.19 추가 : 코딩시 signed인지 unsigned인지 확인이 중요

  c++에서 벡터 v.size() - 1 은 overflow를 일으킬 수 있음. v.size()는 unsigned int 형으로 만약 벡터 크기가 0일 경우

  0 - 1은 4,294,967,295(1111 1111 | 1111 1111 | 1111 1111 | 1111 1111, 32bit) 가 나옴

  (위와 같은 경우를 underflow라고 하는건 잘못된 표현, underflow는 엄연히 다른 표현임)

  overflow를 피하려면 1. (explicit) type casting  

                             2. v.size() - 1 표현을 안쓰는 것


- Underflow : 부동소수점 표현방식에서 지수부가 타입의 한계를 넘어 작아지면 0에 가까워 지는 것

(난 잘 주워오니까 그림으로 때우겠다)

출처는 아래에 있습니다.

- 2의 보수 표현(signed)에서 양수 + 음수의 덧셈은 오버플로우를 일으키지 않음

- 음수 + 음수의 크기가 -2^(N-1)보다 작거나 양수 + 양수의 크기가 2^(N-1) - 1 보다 큰 경우를 오버플로우

  즉, 캐리의 여부와 관계없이 앞의 부호가 바뀌는 경우가 오버플로우(단, 2의 보수 표현에서만)



1.5 sign-extention

- MSB를 계속 늘리면 됨

- 3  = 0011(2) = 0000 0011(2)

- -3 = 1101(2) = 1111 1101(2)



-출처

http://slideplayer.com/slide/5946574/

https://courses.cs.washington.edu/courses/cse370/98sp/lectures/04-combex/sld026.htm

http://slideplayer.com/slide/9942560/

https://namu.wiki/w/%EC%98%A4%EB%B2%84%ED%94%8C%EB%A1%9C

https://stackoverflow.com/questions/6360049/what-are-arithmetic-underflow-and-overflow-in-c



2. 논리 게이트


2.1 논리 게이트

- 하나 또는 그 이상의 2진수 입력을 받아서 하나의 출력을 만들어 내는 간단한 디지털 회로



2.2 논리 게이트 종류

※ 논리게이트의 심벌과 진리표는 구글 검색

  1) NOT

  2) BUF : 버퍼 : 논리적 관점 - 데이터의 전달

                      아날로그적 관점 - 많은 양의 전류를 공급, 하나의 입력을 다른 많은 게이트에게 전달, 데이터 복원

  3) AND

  4) OR

  5) XOR

  6) NAND

  7) NOR

  8) XNOR


- N input gate : 2개씩 나눠서 진리표 써보면 됨

※ N input XOR는 parity gate라고도 함

정리할 책은 "Digital Design and Computer Architecture -David Harris 외 1명-" 기준입니다.


책 + 보면서 궁금한 점을 검색하여 쓸겁니다.


앞으로 순서


1. 2진수를 표현 하는 방법


2. 논리게이트 란?


3. 조합논리

- 부울 식

- 카르노 맵


4. 논리 디자인

- 래치와 플리플롭

- FSM


5. 하드웨어의 표현


6. 디지털 빌딩 블록

- 연산 회로

- 메모리 어레이


7. 파이프라이닝


7. 메모리 시스템

- 메모리 종류

- 캐시



앞으로 진행하면서 나온다면 설명하겠지만

우선 이 책은 mips processor 기준으로 작성되었고,

앞으로 포스팅은 제가 필요하다고 생각되는 부분만 할 것이기에

프로세서나 어셈에 대해서는 잘 다루지 않을 것입니다.

+ Recent posts