memory

이현빈·2023년 5월 19일
0

CE blog

목록 보기
16/21

memory

computer에서 data를 기억하기 위해 사용하는 device를 총칭한다.

기억 장치 종류 및 구성

다음 그림은 종류를 나타낸 것이다.

다음 그림으로 간략히 표기할 수 있다.

  • 참고 다음은 cache의 구분이다.

주기억장치

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

주기억장치 특성

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

보조기억장치

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

RAM

앞서 살펴본 것처럼 Address를 통해 위치를 지정하여 읽고 쓰는 방식의 memoryrandom access memory (RAM)라고 부른다.
컴퓨터를 조립할 때 사용하는 RAM이 바로 random access memory의 약자이다.

주로 volatile memory라는 것을 주의해야 한다.(전원이 꺼지면 데이터가 사라짐) Core RAM이라는 Non-volatile RAM이 초기에 있었다.

RAM은 크게 다음과 같은 두 종류로 나뉜다.

  • Static RAM (SRAM)
    • refresh가 필요 없으며 전원이 공급되는 기억한 데이터를 유지하기 위한 recharge 등이 필요없다.
  • Dynamic RAM (DRAM)
    • capacitor를 사용하기 때문에 leakege current로 인해 recharge가 주기적으로 필요하다.

컴퓨터 조립 등의 경우에 흔히 얘기하는 RAM은 Dynamic RAM이다.

static RAM(SRAM)

flip-flop, register처럼 ) gate(좀 더 정확히는 transistor)로 만들어진 Memory로 다량의 Transistor를 다량으로 집적(1bit 기억하는 D Flip-Flop에 6개의 NAND가 들어감)시켜야 저장용량이 커지는 구조이다.
즉, 대용량 memory로 만들기가 어렵다. 용량당 들어가는 비용이 너무 크지만 속도 측면에서는 매우 높은 성능을 보인다.

  • on-chip memory로 쓰인다. (CPU의 L1-cache 등)
    • CPU와 main memory는 수행속도가 차이나며 이를 보완하기 위해 중간에 cache가 들어간다.
    • cache는 CPU 내에서 CPU에 해당하는 속도로 동작하며 main memory는 마더보드의 FSB, Front Side Bus에 해당하는 속도로 동작한다.
  • 용량별 단가가 높으나 빠른 속도낮은 소비전력이 장점이다.
  • 전원이 꺼지면 데이터가 사라지나 전원이 켜있는 한 refresh(또는 충전)가 필요 없다.

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

Dynamic RAM(DRAM)

capacitor를 이용하여 필요한 transistor의 수를 대폭 줄인 memory이다. 기생 capacitor(Transistor 제조시 생기는 capacitor)를 활용하는 기술 등의 발전은 집적도가 매우 높은 DRAM 구현을 가능하게 했다. 오늘날 대용량의 memory를 위해 주로 채택되는 방식이다.
capacitor를 사용하기 때문에 누설전류로 인한 데이터 손실을 막기 위한 주기적인 충전이 필요(전력효율이 낮음)하고 SRAM에 비해 속도가 느리다.

  • computer의 main memory로 사용된다.
  • 소비전력이 높고 속도도 느리지만 용량별 단가가 SRAM 대비 압도적으로 낮고 고밀도 집적화가 가능하다.
  • 초기에는 비동기식이었으나 Synchronous Dynamic RAM (SDRAM)이 개발된 이후로 system bus(=Front Side Bus)와 동기화되어 사용된다.

Synchoronous DRAM(SDRAM)

SDRAM은 Single Data Rate SDRAM (SDR SDRAM, SDR)에서 시작하여 Double Data Rate SDRAM (DDR SDRAM, DDR)으로 발전했으며, DDR의 경우 DDR5까지 개발된 상태이다.

  • Single Data Rate (SDR) SDRAM : clock cycle 하나당 하나의 데이터를 전송한다. (rising edge만 사용)

  • Double Data Rate (DDR) SDRAM : clock cycle 하나당 2개의 데이터를 전송 한다. (rising and falling edge 모두 사용)

EEC memory

RAM 중에서 data의 무결성이 중요한 경우(서버용)를 위한 것으로 저장된 데이터의 오류를 체크하고 수정하는 기능이 있는 것이다. Error Checking and Correction Memory의 줄임말으로 매우 고가이며 PC에서는 보통 사용하지 않는다.

parity bit와 같이 단순한 방법부터 Hamming code 등의 좀 더 복잡한 방법 등이 있다. 일반적으로 오류를 검출하는 경우보다 수정을 하려면 보다 많은 bit를 사용해야 한다.

checksum and CRC

특정 파일이 변조되지 않았는지라던지 제대로 다운로드 되었는지 등을 검증하는 방법이다.

parity bit가 동적인 데이터(계속해서 값이 변화하는 RAM에 저장된 데이터)에 적합한 기술이라면 Checksum과 CRC는 정적인 데이터 (설치 파일 등)에 적합한 기술이다.

특정 데이터가 생성되었을 때 checksum(데이터들을 단위별로 더하고 넘어가는 값은 무시)이나 Cyclic Redundancy Check(CRC), Hash code를 계산해 저장해두면 이후 예기치 않게 해당 데이터가 바뀐 경우 이를 확인 할 수 있다.

ROM

Read Only Memory

한 번 기록한 정보에 대해 오직 읽기만을 허용하도록 설계된 Non-volatile 기억 장치

제조될 때 한번 데이터가 기재되고 이후로는 읽기만 가능한 memory device를 가르킨다.

엄밀하게는 write-once memory라고 할 수 있으나 기존의 ROM이 사용되는 모든 분야에 여러 번 write가 가능한 memory들로 대체되고 있기 때문에 전원이 꺼져도 데이터를 유지하는 memory를 ROM이라고 부른다고 생각해도 크게 틀리지 않다.

  • 수정이 자주 필요 없는 기본 입출력 프로그램(BIOS)이나 펌웨어(Firmware)를 저장하기 위해 주로 사용된다.

종류

  1. masked ROM

    • Masked-programmable ROM이라고도 불린다.
    • 어떤 측정 내용을 생산 단계에서 ROM에 write해서 출하하고 이후 사용자의 의도에 의해 임의적으로 변경시킬 수 없다.
    • 메모리 중 bit당 가격이 제일 저렴하다.(대량생산의 경우 한정으로 소량생산에는 너무 비용이 많이 들어감)
  2. Promgrammable ROM(PROM)

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

    • UV을 사용하여 기억된 내용을 임의적으로 소거시킨 후 다시 write할 수 있는 소자이다.
    • EPROM Eraser를 이용하여 (자외선을 이용) 내용을 소거한다.
    • EPROM Writer를 사용하여 데이터를 write한다.
    • 사용할 때 EPROM의 Window (UV가 비춰지는 창)에 차단용 Tape를 붙인다.
  4. Electrically Erasable PROM(EEPROM)

    • 전기적인 방법으로 기억된 내용을 소거한 후 다시 write할 수 있게 한 소자이다.
    • write하는데 시간이 길어서 RAM을 대체하지는 못한다.
  5. Flash Memory (PROM Flash)

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

Block device

bit나 depth 단위로 access가 이루어지는 RAM, ROM과 달리 특정 크기의 bytes (block) 단위로 access가 이루어지는 device

  • RAM 등에서는 block access가 아닌 random access가 이루어진다.

computer에서 사용하는 고밀도 대용량의 기억 장치들은 block device이며ㅗ 보조기억장치로 활용된다.
최근 SSD에 의해 점유율이 위협을 받고 있으나 아직까지 Mass storage의 대명사는 disk drive라고 할 수 있다.

Disk drive

사실 소재에 따라 floppy disk drive와 hard disk drive로 나뉘지만 현재는 hard disk drive만을 사용하기 때문에 줄여서 hard라고 불림

  • 대표적인 non-volatile 기억장치
  • 보조기억장치의 대명사
  • direct access storage device & media (DASD)

Magnetic tape

HDD보다 용량대비 단가가 더 낮은 장비이나 속도는 컴퓨터 초창기의 천동테이프 수준이라고 생각될 수 있을 정도로 느린 장비이다. 최후의 저장 장소로 보험용으로 사용된다.

  • sequential access storage device & media (SASD)

optical disk

이전에 프로그램 설치 (특히 OS)는 대부분의 경우 CD-ROM을 사용했을 정도로 많이 사용되었으나 Flash memory의 가격이 어마어마하게 떨어지면서 현재는 거의 사용이 되지 않고 있다.

Flash Memory and SSD

Flash Memory는

  • read 의 경우에는 Random Access Memory (RAM)같이 동작하며
  • write 의 경우에는 block-access를 수행하는
    RAM 같은 EEPROM 유형의 기억장치이다.

Solid State Disk (SSD)는

  • Flash memory를 Disk Drive 형태로 패키징하면서 Wear Leveling Processor등을 추가하여 HDD처럼 Flash memory를 사용하게 한 것이다.

특징

  • 전기적으로 내용 변경 및 일괄 소거도 가능하다.

    • EEPROM의 일종
  • RAM 같은 ROM이다.

    • 1bit를 담고 있는 cell별로 read의 경우 random access가능하며 cell이 저장할 수 있는 bit의 크기에 따라 다음으로 구분한다.

      • Single Level Cell(SLC) : 1bit/cell 저장 (=1BPC)
      • Multi Level Cell(MLC) : 2bit/cell 저장 (=2BPC)
      • Triple Level Cell(TLC) : 3bit/cell 저장 (=3BPC)
      • Quadratic Level Cell(QLC) : 4bit/cell 저장 (=4BPC)
  • 실제로는 32 or 64개의 cell이 연결된 String(or Column)이 read의 최소단위(RAM과 유사) 가 되며, 16 or 23개의 String이 모여 program(=write)의 최소단위인 Page(or Row) 를 이루고, 64 or 128개의 String이 모여 erase의 최소단위인 Block 을 이룬다(NAND Flash 기준).

  • Page와 비슷한 개념으로 segment가 있는데, page는 물리적으로 주소를 나누는 방식(같은 bit size로 나뉨)이고 segment는 논리적으로 나누는 방식(bit size가 다름)이다.

    • BPC가 커질수록 read time이 커진다(=느려짐). 동시에 수명도 짧아지는 단점이 있다.
    • cell을 직렬로 연결할지 병렬로 연결할지에 따라 NAND FLASH와 NOR FLASH로 구성됨.
  • 전원이 나가도 기억 유지한다.

    • DRAM 처럼 bucket(=MOSFET+Floating Gate Transistor) 에 전자를 담아 기억하는 방식이다.
    • 하지만, DRAM과 달리 전자가 새지 않는다. (전원을 공급할 필요 없다.)
  • 쉽게 쓰기 지우기가 가능하다.

    • 단, 0에서 1로 변경을 하려면 우선 해당 데이터가 기록된 block 전체를 지우고 다시 기재해야 한다.
    • 특정 cell의 정보만 수정하는 처리가 안된다.
    • "block 단위"별로 지우고 다시 쓰기 수행한다.
    • 때문에 flash memory는 여러 block으로 나누어져 있다.
  • 읽기/쓰기 수만번 가능하다.

    • 데이터를 저장하는 cell 하나당 쓰고 지우는 횟수의 한계가 존재한다.
      • BPC가 높을수록 수명이 짧아진다.
    • Flash memory를 Disk Drive 형태로 패키징 한 SSD에서는 셀들을 block으로 묶고, 이들 블록이 몇차례 기록이 되었는지를 카운트하여 구성 block들이 쓰고 지워진 횟수를 일정하게 유지시키는 wear leveling processor가 있다.

종류

NAND Flash

  • cell을 직렬로 연결한 방식으로 NOR Flash에 비해 read time이 느린 단점을 가지나 program(=write)와 erase time이 page, block단위로 이루어짐에 따라 매우 빠르다.
    더욱이 cell이 차지하는 면적을 NOR Flash 대비 40%수준이며 제조 단가도 적게 들어간다.

  • 위같은 이유로 높은 집적도의 경제성을 가진 제품이 가능하여 현재 Flash Memory시장에서 가장 널리 사용되는 중이다.

NOR Flash

  • cell을 병렬로 연결한 방식으로 NAND Flash에 비해 read time이 6-7배 정도 빠르지만, program과 erase가 cell단위로 이루어지다보니 매우 느리다.

  • 낮은 집적도와 높은 제조단가로 인해 시장규모가 축소되고 있는 상황이다.

SSD의 경우, 최근 HDD를 대체하고 있는 추세임.


reference
mk docs

0개의 댓글