- 지금까지는 정보를 어떻게 처리할지에 대해서 배웠다면 이제부터는 정보를 어떻게 저장할 지에 대해서 배울 차례이다.
- 오늘 배울 거는 매우 큰 수준의 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)
- WL1 = 1 WL0,WL2, WL3 = 0이 된다.
- 그러면 WL1만 선택이 되서 WORD(한줄에 있는 4개의 Cell)이 선택이 된다. (1Word가 4비트인 상태)
- Data in에 0111을 넣는다.
- WE =1 (Write하겠다고 넣어준다.)
- 현재 이 그림에서 LSB(최하위 비트)는 Din3,Dout3이 있는 쪽이고, MSB(부호. 최상위 비트)는 Din0, Dout0이 있는 쪽이다.
- 그러면 현재 저 그림대로 순서대로 01,10,10,10 이렇게 들어가게 됩니다.
- 그렇게 되면 메모리 셀에 기억이 됩니다.
- 주소 10에 0101을 Read하려면
- Decoder가 WL2를 선택해준다.
- 그대로 값이 나오게 된다.
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