메모리
메모리는 컴퓨터의 정보를 저장하는 임시공간이다. 플립플롭에서 이야기는 안했는데, 플립플롭(1bit 저장회로)는 기본적으로 휘발성(클럭이 멈추면 데이터가 소멸) 그러니까 저장장치는 단순하게 보면 플립플롭의 조합으로 이루어지려면 전기가 끊기면 데이터가 사라지는 숙명을 가지고 있는거라고 볼 수 있겠다.
이에 따라 비활성의 데이터저장공간을 확보하는 것은 중요한 숙제였고 우리 이과형님들은 언제나 그렇듯 여러 가지 저장장치(메모리)를 만들면서 해결하였다. 아참 여기서 저장장치가 휘발성이냐 비휘발성이냐가 진보된 기술이냐를 반증하지는 않는다. 저장장치의 성능을 평가하기 위해서는 접근속도와 저장용량등 여러 가지특징 구분에 따라 결정되어야하기 때문이다. 이번 시간에는 디지털 회로로 구성된 여러 가지의 저장장치를 알아보도록 하겠다.
메모리 – RAM(Random Access Memory)
RAM은 자유롭게 내용을 읽고 쓰고 지울 수 있는 저장장치이다. 전자장비의 전원이 들어오는 순간부터 처리장치(보통 CPU)의 연산을 보조하며(연산결과의 기억 등) 전원이 종료되는 순간까지 그 내용을 기억하고 있는 소자이다. 방식에 따라 SRAM과 DRAM으로 구분된다.
DRAM(Dynamic RAM)
동적 RAM이라고도 부른다. 일정시간마다 전원 공급과정(Refresh)를 해야 내용을 기억할 수 있다. 이는 구성이 커패시터(축전기)를 통해 만들어져있기 때문인데, 사용 중 충전시간이 필요하기에 SRAM에 비해 상대적으로 속도가 느리지만(컴퓨터가 느려봤자 얼마나 느리겠는가) 가격이 저렴하다.(트랜지스터1개와 축전기로 구성) 주로 컴퓨터의 메인 메모리에 사용된다.
SRAM(Static RAM)
정적 RAM이라고 부른다. 정적(Static)이라는 이름에 걸맞게 전원이 계속하여 공급된다는 가정하에 SRAM은 정보가 유지된다.(DRAM은 Refresh없으면 지워짐) Refresh가 없다는점과 더불어 또한 속도가 빠르지만 가격이 비싸고(트랜지스터 다수로 구성) 고속 저용량 접근이 필요한 캐시메모리등에 사용된다.
NVRAM(Non Volatile RAM)
사실 RAM이라고 다 휘발성은 아닌가 보다. NvRAM은 후술할 EEPROM과 결합하여 정보를 저장하고 휘발성을 다소 버리면서도 임의접근 메모리의 장점을 취할 수 있다.
메모리 – ROM(Read Only Memory)
ROM은 영문만을 해석해보면 읽기 전용 메모리이다. 즉 읽기만 하고 쓸 수는 없는 메모리라는 건데, 시간이 지나면서 여러번의 재기록도 지원하게 되었다. RAM과의 대표적인 차이점은 비휘발성이라는 점인데, 아예전원이 나가도 내용이 기록되고 잊혀지지 않는다. 이를 이용하여 보통 펌웨어나 다른 영구적으로 저장이 필요한 데이터가 이곳에 기록되게 된다.
Masked ROM
가장 ROM다운 ROM이다. 회사에서 ROM생산 당시에 정보를 기록하면 두 번다시는 바꿀 수 없다. 마스크라는 이름은 제조시에 사용하는 얇은 막(마스크)의 명칭을 가져왔으며 역시 공장이 그렇듯 대량생산에 적합하다
PROM(Programmable ROM)
사용자가 맨 처음 1회에 한하여 내용을 기록할 수 있는 ROM으로 Masked ROM과의 차이점은 벤더가 기록하는가 아니면 사용자가 기록하는가에 차이다.
EPROM(Erasable PROM)
기록된 PROM을 자외선을 활용하여 내용을 지우고 다시 쓸 수 있는 형태의 ROM이다.
EEPROM(Electrically Erasable PROM)
자외선을 사용하지 않아도 된다! 전기적으로 그 내용을 지우고 여러번 재사용할 수 있는 ROM이다. 자외선을 발산하기위한 EPROM Writer라는 기계도 필요없게 되었다. 가격은 당연히 상대적으로 비싸다.
플래시 메모리(Flash Memory)
최종적으로 진화한 ROM의 현대형태이다. EEPROM의 변형형태로 NAND 게이트를 직렬로 연결한 Read 저속 Write 고속 형태와 NOR 게이트를 병렬로 구성한 Read 고속 Write 저속 형태의 NOR 형태가 존재한다.
정리하면 다음과 같은 계층도를 가질 거 같다.
정리
이번시간에는 기억소자에 대해서 알아보았다. 휘발성 유무에 따라 RAM과 ROM으로 분류를 하고 여라가지 형태의 RAM과 ROM을 공부해 보았다.
다음시간에는
다음시간에는 필자도 잘 모르는 HDL과 프로그래머블 로직에 대해서 공부해 보겠다.
'자격 > 임베디드기사' 카테고리의 다른 글
[임베디드기사] [필기] CPU와 마이크로프로세서 – 구조, 명령어 셋 (0) | 2023.08.16 |
---|---|
[임베디드기사] [필기] 프로그래머블 로직 - HDL (0) | 2023.08.16 |
[임베디드기사] [필기] 순서논리회로(래치 & 플립플롭) (0) | 2023.08.14 |
[임베디드기사] [필기] 2진 오류검출과 수정(패리티 비트 / 해밍코드) (0) | 2023.08.14 |
[임베디드기사] [필기] 논리게이트와 조합논리회로(가산기/복호&부호기/선택&분배기) (0) | 2023.08.14 |