About Memory(1)

노정훈·2023년 5월 4일
0

CE

목록 보기
15/24

Memory

  • memory의 종류는 다음과 같이 나타낼 수 있음.

cf) Cache

  • buffer와 마찬가지로 속도의 차이가 나는 두 소자 사이에 놓여 속도차이에 의한 문제를 완화시켜줌.
  • cache는 prefetch 방식으로 필요할 것으로 예측되는 데이터를 미리 가져다 놓는 알고리즘 등이 적용된 소자에 사용됨.
  • buffer가 보다 넓은 개념으로 사용.

주기억장치

  • CPU가 직접 참조하는 고속 memory
  • 프로그램이 실행될 때 필요한 프로그램이나 자료를 보조기억장치로부터 이동시켜 실행시킬 수 있는 기억 장소
  • 프로그램을 기억하는 프로그램 영역과 입력 자료를 기억하는 영역, 출력 자료를 기억하는 영역, 작업을 실행하여 중간 계산 결과를 기억하는 작업 영역으로 구성.

주기억장치 특성
1. 저장된 내용이 변경될 때까지 그대로 유지시켜야 함.
2. 새로운 내용으로 바뀔 수 있어야 함.
3. 주기억장치의 데이터는 저장된 순서에 관계없이 같은 시간에 접근할 수 있어야 함.
4. 원하는 내용에 쉽게 접근 가능해야함.
5. access time이 짧을수록 유리함.
6. 가능한 많은 양의 데이터 저장할수록 유리함.

보조기억장치

  • 주기억 장치의 한정된 기억 용량을 보조하기 위해 사용하는 메모리로 전원이 차단되어도 기억된 내용이 유지됨.
  • 주기억 장치에 비해 속도는 느리지만 대량의 자료를 영구적으로 저장.
  • 자료 접근 방법에 따라 SASD 방식과 DASD 방식으로 구분

cf)
SASD : Sequential Access Storage Device & Media
DASD : Direct Access Storage Device & Media

RAM(Random Access Memory)

  • Address를 통해 위치를 지정하여 읽고 쓰는 방식의 memory
  • Volatile Memory(전원이 꺼지면 데이터가 사라짐)
  • Static RAM(SRAM) : refresh가 필요없음. 전원이 공급되는 기억한 데이터를 유지하기 위한 recharge 등이 필요없음.
  • Dynamic RAM(DRAM) : capacitor를 사용하기 때문에 leakage current로 인하여 recharge가 주기적으로 필요함.

Static RAM(SRAM)

  • flip-flop, register처럼 gate(좀 더 정확히는 transistor)로 만들어진 memory
  • 대용량 memory로 만들기 어려움.
  • on-chip memory
  • CPU와 main memory에서 수행속도에 차이가 나며 이를 보완하기 위해 중간에 cache가 들어감.
  • cache는 CPU 내에서 CPU에 해당하는 속도로 동작하며, main memory에서는 마더보드의 FSB(Front Side Bus)에 해당하는 속도로 동작함.
  • 용량별 단가가 높지만 빠른 속도와 낮은 소비전력이 장점임.
  • 전원이 꺼지면 데이터가 사라지지만 전원이 켜있는 한 refresh할 필요 없음.

Dynamic RAM(DRAM)

  • capacitor를 이용하여 필요한 transistor의 수를 대폭 줄임.
  • 대용량의 memory를 위해 주로 채택되는 방식
  • capacitor의 사용으로 누설전류로 인한 데이터 소실을 막기 위한 주기적인 충전이 필요(전력효율이 낮음)하고, SRAM에 비해 속도가 느림.
  • computer의 main memory로 사용됨.
  • 용량별 단가가 SRAM에 비해 압도적으로 낮고, 고밀도 집적화가 가능.
  • 초기에는 비동기식이었으나 Synchronous Dynamic RAM(SDRAM)이 개발된 이후로는 system bus(=Front side Bus)와 동기화되어 사용됨.

Synchronous DRAM(SDRAM)

  • Single Data Rate SDRAM(SDR SDRAM, SDR)에서 시작하여 Double Data Rate SDRAM(DDR SDRAM, DDR)로 발전
  • SDR SDRAM : clock cycle 하나당 하나의 데이터를 전송(rising edge만 사용)
  • DDR SDRAM : clock cycle 하나당 2개의 데이터를 전송(rising and falling edge 사용)

Error Checking and Correction(ECC) Memory

  • RAM 중에서 data의 무결성이 중요한 경우를 위한 것으로 저장된 data의 오류를 체크하고 수정하는 기능이 있음. PC에서는 보통 사용하지 않음.
  • Parity bit, Hamming code

Checksum and CRC

  • 특정 파일이 변조되지 않았는지, 제대로 다운로드 되었는지 등을 검증하는 방법들
  • parity bit가 동적인 데이터에 적합한 기술이라면, Checksum과 CRC는 정적인 데이터에 적합한 기술임.
  • 특정 데이터가 생성되었을 때, Checksum이나 CRC, Hash code를 계산해 저장해두면 예기치 않게 데이터가 바뀐 경우 이를 확인할 수 있음.

ROM(Read Only Memory)

  • Non-volatile memory(전원이 꺼져도 내용이 지워지지 않음)
  • 제조될 때 한 번 데이터가 기재되고 이후로는 읽기만 가능한 memory device.
  • 현재는 기존의 ROM이 사용되는 모든 분야에 여러번 write가 가능한 memory로 대체되고 있는 추세.
  • 수정이 자주 필요없는 BIOS나 Firmware를 저장하기 위해 주로 사용됨.

Masked ROM

  • 어떤 특정 내용을 생산단계에서 ROM에 write해서 출시하고 이후 사용자의 의도에 의해 임의적으로 변경 불가능.
  • memory 중 bit 당 가격이 제일 저렴(대량생산의 경우. 소량생산에는 너무 비용이 많이 들어감)

Programmable ROM

  • 생산 단계에서 write되지 않고 PROM writer를 이용하여 사용자에 의해 한 번 write 가능.
  • OTP ROM(One Time Programmable ROM)이라고 불림.
  • write할 때, 버그가 있으면 수정 불가능.

Erasable PROM(EPROM)

  • 자외선(UV)을 이용하여 기억된 내용을 임의적으로 소거시킨 후 다시 write 할 수 있는 소자
  • EPROM Eraser를 이용하여 내용을 소거, EPROM writer를 이용하여 데이터를 write.
  • 사용할 때 EPROM의 Window에 차단용 tape를 붙임.

Electrically Erasable PROM(EEPROM)

  • 전기적인 방법으로 기억된 내용을 소거한 후 다시 write 할 수 있게 한 소자
  • write 하는데 시간이 오래 걸리기 때문에 RAM을 대체하지 못함.

Flash Memory(PROM Flash)

  • RAM 같은 ROM(write 시에 block access를 수행), 때문에 PROM Flash라고 부르기도 함. Block device의 일종이라고도 볼 수 있음.
  • Non-volatile이지만, RAM처럼 쉽게 read/write 가능.
  • 전기적으로 내용 변경 및 일괄 소거도 가능 => EEPROM의 일종
  • BIOS 등에 사용되며 최근 HDD를 대체하고 있는 SSD(Solid State Disk)가 Flash Memory의 한 종류임.

References:
1) https://dsaint31.me/mkdocs_site/CE

profile
노정훈

0개의 댓글