전공/디지털 논리

12강 Memory and Storage Devices (RAM, SRAM,ROM,FLASH memory)

뜨거운 개발자 2023. 5. 24. 22:05
  • 지금까지는 정보를 어떻게 처리할지에 대해서 배웠다면 이제부터는 정보를 어떻게 저장할 지에 대해서 배울 차례이다.
  • 오늘 배울 거는 매우 큰 수준의 byte의 수준의 저장을 배울 거싱다. (RAM, ROM, Flash memory, HDD, SSD)

RAM

Random Access Memory (RAM)

  • 임의의 순서로 읽고 쓸 수 있는 메모리 유형(~랜덤 액세스)
  • 일반적으로 휘발성(volatile) 메모리이다.
  • 전원이 꺼지면 RAM의 콘텐츠가 제거됩니다.
  • 일반적으로 작업 중인 데이터를 저장하고 기계 코드를 저장하는 데 사용됩니다.

Static RAM (SRAM)

  • 플립플롭 또는 트랜지스터를 사용하여 구현됨
    • DRAM보다 빠른 읽기/쓰기 속도
  • 일반적으로 CPU 캐시, CPU 레지스터 파일, HDD 버퍼 및 라우터 버퍼에 사용됩니다.

CMOS SRAM

  • 가장 일반적은 SRAM이다.
  • 위 그림은 아래의 그림과 동일하다. (CMOS를 이용해서 NOT Gate를 만들 수 있다.)
    • 따라서 저 2개의 NOT-GATE가 D-latch처럼 값을 저장한다.
  • 가장 적은 Power 사용하기 때문에 오늘날 만나는 대부분의 SRAM은 CMOS SRAM이라고 봐도 된다.
  • 6개의 트랜지스터로 구성되어있다.(복잡한 구조 + 크기가 크다)
  • WL(Word LIne)이 0인 경우에는 Hold state이다.
  • Read를 하고 싶으면 WL = 1이고 BL을 읽으면 된다.
  • Write하고 싶은 경우 다음과 같다.

실제 SMOS SRAM을 어떻게 구현하는지 예시

  • 4 x 4-bit SRAM array
  • 예시: 01이라는 주소에 0111을 기억시키는 경우(Write)
    1. WL1 = 1 WL0,WL2, WL3 = 0이 된다.
    1. 그러면 WL1만 선택이 되서 WORD(한줄에 있는 4개의 Cell)이 선택이 된다. (1Word가 4비트인 상태)
    1. Data in에 0111을 넣는다.
    1. WE =1 (Write하겠다고 넣어준다.)
    1. 현재 이 그림에서 LSB(최하위 비트)는 Din3,Dout3이 있는 쪽이고, MSB(부호. 최상위 비트)는 Din0, Dout0이 있는 쪽이다.
    1. 그러면 현재 저 그림대로 순서대로 01,10,10,10 이렇게 들어가게 됩니다.
    1. 그렇게 되면 메모리 셀에 기억이 됩니다.
  • 주소 10에 0101을 Read하려면
    1. Decoder가 WL2를 선택해준다.
    1. 그대로 값이 나오게 된다.

Dynamic RAM (DRAM)

  • 커패시터를 사용하여 구현되어 있다. (전하가 있는지 없는지 여부(capacitors는 충전형이다.)
    • D램은 1개의 트랜지스터와 1개의 캐피시터로 구성되어있어서 작다.
  • 캐퍼시터는 충전을 하는 형식이기 때문에 계속해서 충전을 해주어야 한다. 우리는 그것을 메모리 Refresh라고 부른다 (DRAM은 체크 하려면 충전이 필요하다.)
  • DRAM은 외부 메모리 새로 고침(주기적으로 DRAM의 내용을 읽고 다시 쓰기(~ 충전)하는 작업)이 필요하므로 동적입니다. (왜냐면 전기는 가만히 냅두면 충전형 이기 때문에 방전이 되므로 그것을 막아주기 위해서)
  • DRAM은 SRAM보다 크기가 작고 밀도가 높고 저렴하다.
    • 따라서 매우 크게 만들 수 있어서, 일반적으로컴퓨터의 주 메모리에 사용됩니다.
  • WL = 1이 되면 DL에 C1값이 보이게 된다.(Reading)
  • WL = 0인 경우 축전지는 Hold state상태이다.
  • Set
    • WL = 1 DL = 1일때 Charging되고
    • Reset 할 때는 decharging (WL =1, DL = 0)이 된다.
    • C1 은 capacitor이다.
    • 어떻게 보면 트렌지스터가 스위치라고 보면 된다.

DRAM 예시

  • 4 x 4-bit DRAM array
    • 만약 10의 레지스터를 읽고 싶을 때 위와 같이 그림이 나올 수 있다.
    • 만약 Write하고 싶다면 아래쪽에 WE를 1로 바꾸고 값을 넣어주면 1일 떄 charging 0일때 discharging이 될 것이다.
  • 중요한 것은 SRAM은 Flip-flop , DRAM은 캐패시터 하나로 구성이 되어있고
  • 둘 다 트랜지스터는 메모리를 선택하는 스위치 역활을 해준다고 볼 수 있다.

SDRAM (Synchronous DRAM)

  • DDR SDRAM (Double Data Rate SDRAM)
  • 우리 컴퓨터는 전부 SDRAM이다.
  • 라이징 엣지에서 동기화 되는게 SDR이다.((SDRAM)일반적인 형태)
  • DDR은 라이징 엣지와 falling엣지에서 실행된다.(DDR SDRAM)
    • 주로 우리가 쓰는 컴퓨터에서 사용
    • 같은 클럭 시그널에서 2배나 빠른 속도기 때문에 좋다.
  • 우리가 잘 쓰지 않는 쿼드는 QDR도 있다. 2개의 클럭 시그널이 있다.
  • SDR은 클럭시그널을 적어줬는데, DDR은 band width를 적어줘서 크기가 확 달라진다.
    • DDR이 발전할 수록 전압은 낮아지고 메모리는 커졌다.
    • 전압을 낮추면 전력 소모를 줄이고, 발열을 줄일 수 있다.
    • DDR램에서 왜 자꾸 볼트가 낮아지는가?
    • 과거에는 그렇게 0과 1을 가는데 기술이 없었는데 지금은 그렇게 노이즈를 제거 할 수 있는 기술이 생겨서 더 작아진 볼트로 작동하는 것이다. (더 좋은 에너지 효율을 위해)
    • 전압이 낮아질 수 있던 이유는 반도체 공정의 발전때문.
  • GDDR SDRAM은 GPU용이다.
  • DDR꽂는 곳의 위치가 조금씩 달라 잘못 꽂는걸 방지해준다.! (DIMM)

ROM

  • ROM 은 Read-only-momory 이다.
  • 램과 롬은 반대가 아니다.
  • 대표적인 비휘발성 메모리이다. (전원이 꺼져도 보존되어야 하는 메모리)
  • 주로 펌웨어 등이 들어있다.

1. Mask ROM

  • 이건 프린트 된 것 처럼 바꿀 수 없다.
  • 공장에서 프로그래밍 돼서 저렴하다.

2. Programmable ROM(PROM) (~CD-R)

  • 일회성 프로그래밍 가능 ROM(별칭 : OTP-PROM)
  • 특수장비인 ROM writer로 프로그래밍이 된다. rewrite PROM/EPROM/EEPROM.

3. Erasable Programmable ROM (EPROM)

  • 여러번 지웠다 쓸 수 있다.
  • 만약 뭔가를 지우면 전부 다 지워진다.
  • 강한 자외선(UV)에 의해 내용물이 지워집니다. (별칭: UV-EPROM)
  • 실제로 칩은 매우 작은데 핀때문에 크기가 커진 것이다.

4. Electronically Erasable Programmable ROM (EEPROM) (~ CD-RW)

  • 이건 일부만 지우고 쓸 수가 있다. 요즘은 이런 칩 조차 잘 쓰지 않는다.
  • 이건 Flash메모리라고 부른다.

ROM예시

  • 이렇게 생겼는데 여기서 숫자에 맞게 주소를 선택해주고 그 Line에 점이 찍혀있으면 1 아니면 0 이런식으로 해석해준다.
  • 이건 쉬운 예시이다.

실제 ROM의 구현 (Mask ROM)

  • 실제로 이렇게 트랜지스터가 하나씩 달려있다.

실제 ROM의 구현 (Programmable ROM)

  • 이건 Fuzz가 있어서 껐다가 켰다가 할 수가 있다.

Custom ROM

  • 커스텀 롬을 많이 쓰는 게 안드로이드이다.
  • 사실 커스텀 롬이 올바른 용어는 아니고 커스텀 펌웨어이다.

플래시 메모리

  • 요즘 ROM은 대부분 Flash메모리로 구현되어있다.
    • 롬의 한 종류
  • EEPROM과 상당히 유사하지만 EEPROM은 전부 다 지웠다가 다시 넣어야 하지만, flash메모리는 한 블록 단위로 쓸 수가 있다.
  • 플래시 메모리는 2개의 종류가 있다..(NAnD 메모리와 NOR Flash메모리가 있다.)
  • USB안에 NAND FLASH메모리가 있것이다.
  • 만약 NAND플래시 메모리는 싹다 눌러야 연결된다.
  • 핸드폰에는 오직 NAND 플래시 메모리만 있을 것이다.
  • 주로 우리는 NAND flash 메모리를 주로 볼 것이다.
    • NAND는 데이터 저장, NOR는 코드 실행에 적합
    • 그 이유는 보통 NAND가 크게 만들기가 쉽다. (가격도 싸다.)
    • 단점은 코드를 바로 쓸 수가 없다.

NOR Flash 메모리

  • 시험에 그림 그리라는건 안 낼꺼니까 걱정마세요~

NAND flash memory

  • NAND는 Page단위로 읽기 때문에 읽는 속도가 느리다.
  • 따라서 높은 집적도를 가질 수 있다.

HDD와 SSD

  • HDD :
    • 전자적인 것과 기계적인게 붙어있는 Device이다.
    • magnetic storage를 사용한다.
  • SSD :
    • 움직이는 파트는 없고 NAND FLASH메모리를 여러개 붙혀서 사용하는 것이다.
    • 오직 전자적인 방식만 사용한다.


Uploaded by N2T

728x90