임베디드 강좌 6 부록 - 각종 메모리

임베디드 강좌 6 부록 - 각종 메모리

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]

 

안녕하세요. 고명호 입니다.

지난번에는 임베디드 MCU에 내장된 메모리의 종류및 용도에 관해서 알아보았습니다.

이번에는 임베디드 이외의 각종 전자기기에 쓰이는 메모리의 역사및 종류에 관해서 

알아 보겠습니다.

 

데스크탑에서는 다음과 같은 메모리 모듈이 사용됩니다. 메모리 여러개를 교체하기 

쉽도록 모듈로 구성한 것입니다.

 

 

(그림1 - 컴퓨터용 메모리 - 출처 wikipedia)

 

그렇지만 임베디드 메모리는 위의 램 하나하나를 각 부품형태 그대로 

판매하므로 칩형태로 판매됩니다.

ICBANQ의 메모리 카테고리를 살펴보면 다음과 같은 카테고리로 메모리가 분류되어 

있습니다.

(그림0 - icbanq 사이트의 메모리 카테고리)

 

다음은 컴퓨터에 사용되는 메모리를  종류를 나열한 표입니다.

https://ko.wikipedia.org/wiki/%EB%B0%98%EB%8F%84%EC%B2%B4_%EB%A9%94%EB%AA%A8%EB%A6%AC

메모리는 휘발성 메모리와, 비휘발성 메모리로 크게 나뉘어 지는데 각각 

RAM, ROM으로 불리웠었습니다.

 

대체적으로 RAM은 속도가 빠르며 그 수명이 반 영구적이고, ROM은 읽기 속도는 

RAM과 거의 비슷하지만 쓰기 속도가 느린 특징을 가지고 있습니다. 

그렇지만 현재는 RAM 이면서도 비휘발성인 메모리가 존재하며 (f-ram), ROM 이면서도 

쓰기 속도가 그다지 느리지 않은 메모리 (EEPROM Flash memory중 일부) 또한 

존재하기 때문에 휘발성 메모리, 비휘발성 메모리의 구분없이 그냥

ICBANQ 내부의 카테고리를 각각 설명드리겠습니다.

 

< DRAM >

휘발성 메모리의 대표적인 것이 dram 입니다. 

지난번에 설명드린 MCU에 사용된 휘발성 메모리는 sram 이었는데 어떤 차이가 있을까요?

DRAM 은 dynamic random access memory 의 약어이고, SRAM은 

static random access memory의 약어 입니다. dynamic vs static 의 차이네요..

둘다 전원을 차단하면 저장된 내용이 사라지는 공통점이 있습니다만 d-ram은 저장된 

내용을 유지하기 위해서 메모리를 끊임없이 계속적으로 액세스 해 줘야(dynamic) 하는 

반면에 s-ram은 저장된 내용을 유지하기 위해 외부에서 별도로 해 주어야 하는 작업이 

필요 없습니다. 

그렇다면 d-ram보다 s-ram이 항상 좋은것 같지만 그렇지는 않습니다. 

d-ram에 쓰이는 반도체는 다음회로처럼 1개의 capacitor와 1개의 TR이 필요합니다.

따라서 1 bit를 1cell 에 저장할 수 있으며 이때 capacitor 에 저장된 전하는 

시간이 지나면서 방전이 됩니다. 따라서 기록된 내용을 유지하기 위해서 

내부의 capacitor의 방전를 주기적으로 재 충전해 주는 refresh라는 작업이 필요합니다.

 

하지만 s-ram에 쓰이는 반도체는 다음회로에서처럼 6개의 TR이 필요합니다.

내부의 플립플롭에 1 비트가 저장이 되며 플립플롭은 외부 입력이 없이 저장된 비트를 

유지할 수 있습니다. 그렇지만 기록 밀도는 d-ram보다 낮습니다.

d-ram 은 외부에서 추가적인 회로가 필요하지만 같은 면적에 더 큰 용량을 만들수 

있으므로 일반적인 데스크탑 컴퓨터에서는 (더 큰 용량을 얻기 위해서) d-ram이 

많이 쓰입니다. 일부 속도가 필요한 경우에만 s-ram이 쓰이고 있습니다. 

물론 가격도 d-ram이 s-ram에 비해서 훨씬 저렴합니다.

 

그렇지만 MCU에서는 d-ram보다 s-ram이 주로 쓰입니다. (데스크탑 컴퓨터와 비교하여) 

MCU 자체의 크기가 작을 뿐만아니라 코드 프로그램의 크기도 작고, 

수행되는데 필요한 메모리의 용량도 크지 않기 때문에 사용하기 편리한 

s-ram 이 내장된 것입니다. 

 

램에 읽고 쓰는 작업은 MCU내부에서 일어나는 일이므로 외부에서 특별하게 부가해야 

하는 회로가 없기 때문에 MCU에서는 d-ram 보다 s-ram이 적합합니다.

 

d-ram은 데스크탑 컴퓨터의 발전과 더불어 발전을 하였습니다. 

위의 표에서 살펴본바와 같이 EDO DRAM, SDRAM, DDR SDRAM. DDR2 SDRAM. DDR3 SDRAM, DDR4 SDRAM 등이 있고,

 

각각은 EDO DRAM - Extended data out DRAMSDRAM - synchronous DRAMDDR SDRAM - double data rate synchronous dram 의 약어입니다. 

 

이 약어를 잘 유추해 보면 각각의 dram이 가진 특징을 알 수 있고, 그것이 각 램의 

특성이 되겠습니다.

edo dram의 경우 메모리에서 데이터가 출력되면서 다음데이터의 출력을 위한 어드레스 

입력을 받을수 있으므로 속도를 빠르게 할 수 있습니다. 

SDRAM 에서의 synchronous는 성능을 향상시키기 위해서 CPU의 클럭과 연동

(synchronoous)되어있다는 의미이고 DDR의 double data rate 라 함은 클럭과 연동되어 

있으며 전송 속도를 늘리기 위해서 클럭의 상승 및 하강 엣지에서 데이터가 입출력 되도록

한 d-ram 이므로 이론상 같은 클럭에서 sdram보다 2배의 성능향상이 있게 됩니다.

 

< EEPROM >

EEPROM은 Electrically Erasable Programmable Read-Only Memory의 약자로 전기적으로 지우고 새로 쓸수 있는 ROM 입니다.

지난 강좌에서도 설명드렸듯이 전원차단후에도 보존되어야 할 데이터를 

기록하는 용도의 메모리 입니다. 

 

EEPROM은 EPROM의 한 종류입니다. EPROM에는 EEPROM과 UVEEPROM이 있습니다.

 

< EPROM >

EPROM에는 OTP EPROM, EEPROM과 UVEEPROM이 있다고 설명드렸습니다.

예전의 ROM은 한번만 기록할 수 있거나 (OTP ROM) 기록된 내용을 지우려면 

자외선이 필요한 (UVEPROM) ROM 이었습니다.

OTP EPROM 은 one time eprom의 약어로 한번기록후에는 데이터를 지울수 없어 

딱 한번만 기록이 가능한 롬 입니다. 

마치 공씨디 처럼 1회 기록만 가능합니다.

또한 UVEPROM은 EPROM에 저장된 전하를 방전시키기 위해서 자외선을 사용합니다. 

메모리 반도체에 창문이 있는 반도체는 UVEPROM이 유일합니다.

불과 20여전 전에는 현재와 같은 EEPROM , FLASH memory가 상용화 되기 전이었기 

때문에 MCU의 코드 메모리에서도 UVEPROM이 쓰였습니다.  

즉 내용을 재 기입하기 위해서는 자외선 노출을 하고 이후에 재 기입을 해서 

새로운 프로그램을 구동시켰습니다. 

한눈에 봐도 딱 구별되는 외관입니다. 창문이 있는 MCU 반도체네요..^^

 

 

(그림 4 - PIC16C74)

 

그렇지만 EEPROM 및 FLASH memory 기술이 상용화 되면서 UVEPROM은 

현재는 별로 사용되지 않고 있습니다. 

단지 일부 구형 게임기의 롬 업그레이드를 위해서 필요할 뿐입니다. 

현재 생산은 중단되었으나 아직까지도 시중에서 구할 수는 있습니다.

http://www.icbanq.com/P000093113

엄청 비싸네요.. 하나에 오만원!!~ 

 

< FIFO >

FIFO는 first in first out 의 약자로 처음에 들어간 데이터가 처음에 나오는 반도체인데 

엄밀히 말하면 메모리의 종류는 아닙니다. 

UART 등의 데이터 버퍼로 사용되는데 이 카테고리에는 주로 SRAM 들이 있습니다.

 

< Flash Memory >

플래시 메모리는 2000년대부터 사용되기 시작된 비휘발성 반도체 입니다. 

비교적 저렴한 가격에 높은 기록 밀도를 가지고 있어서 현재의 메모리 반도체의 

주류이며 대용량 보조기억 저장매체로도 많이 쓰이고 있습니다.

워낙 종류가 많고 방대하기 때문에 다음에 다시 자세히 설명드리겠습니다.

 

아무튼 최근 임베디드 MCU의 내장 메모리는 거의 전부 Flash memory라 보심 됩니다.

임베디드 MCU등에서 EPROM이 사용된 모델은 대개 C(CMOS)의 약어를 쓰고 

Flash 기술을 사용한 반도체는 F(Flash)의 약어를 사용합니다. 

PIC16C72, PIC12F675 처럼 말이죠...

 

< FRAM >

FRAM (F-RAM) 은 Ferroelectric Random Access Memory 의 약자로 

d-ram의 단위 cell 에 사용되는 capacitor를 강 유전체 물질을 사용하여 

비휘발성을 가지도록 한 메모리로 비교적 최근에 개발되었으며 따라서 속도도 빠릅니다. 

물론 비교적 최근의 기술이라서 메모리당 가격도 비싸네요..

 

< NVRAM >

NVRAM 은 NVSRAM의 다른 말입니다. non-volatile static random-access memory의 

약어로 실제로는 s-ram 이지만 s-ram의 외부에 몇가지 부가 회로를 추가하여 

전원이 차단 되어도 기록된것이 유지되도록 하게 한 반도체 입니다.

따라서 s-ram과 동일한 동작속도를 가지며 데이터는 10년간 보존을 보증한다고 하네요..

이정도면 non volatile이라 불릴만 합니다.

 

반도체 칩의 내부에 S-ram과 EEPROM이 존재하네요.~ 따라서 전원이 차단되면 

s-ram의 내용을 EEPROM으로 옮겨 보존하고 전원이 들어오면 EEPROM의 내용을 다시 

s-ram으로 옮겨 옵니다. 뭔가 CPU나 MCU가 해야 할 일을 대신해 주는 편리한 ram 이네요

 

(그림 5) 

출처 http://www.cotsjournalonline.com/articles/print_article/100709


< SRAM >

S-RAM은 위에서 D-RAM을 설명드릴때 같이 설명드렸으므로 다시 설명드리지는 

않겠습니다.. 임베디드 MCU의 내부 레지스터나 내부 메모리로 많이 사용되며 

특수한 경우에(캐시 메모리) 데스크탑의 메인 메모리로도 사용됩니다.

 

< ROM >

위에서 ICBANQ 의 반도체 메모리 카테고리를 설명드리면서 비휘발성 메모리인 

ROM 종류도 포함하여 설명드렸으므로 다시 설명드리지는 않겠습니다.

 

메모리 반도체는 RAM, ROM의 구분외에도 액세스 방법에 따라 시리얼 메모리와 패러렐

메모리, I2C형, SPI형 등등이 있고, 전압, 속도에 따라서도 다양한 모델이 존재합니다.

따라서 최소한의 배선으로 최적의 메모리를 선택하기 위해서는

 

여러가지 요구사항들을 다 고려 해 보는것이 좋겠습니다.

devicemart 사이트에는 ICBANQ 사이트보다 카테고리별로 잘 세분화가 되어있으므로 

한번 참고해 보시면 좋을 것 같습니다.

http://www.devicemart.co.kr/goods/list.php?category=001021004

이번에는 임베디드 MCU의 외장 메모리 종류에 대해서 

간략히 알아 보았습니다.

메모리에대한 간략한 이해가 되셨는지요?

 

그럼 이번 강좌를 마치도록 하겠습니다. 

감사합니다~~

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]


신고


티스토리 툴바