CS/컴퓨터 구조론

컴퓨터 구조론 5장 [기억장치- 반도체 기억장치]

devrabbit22 2025. 3. 31. 02:22
  • 초기의 컴퓨터에서 주기억장치로 가장 널리 사용되었던 임의 액세스 저장장치는 자기 코어(magnetic core)라고 불리는 자화철 고리들로 구성된 배열이었다.
  • 미세 전자공학(microelectronics)의 발전과 더불어 자기 코어 기억장치가 사라진 지는 오래 되었고, 최근에는 거의 모든 컴퓨터 시스템에서 주기억장치 소자로서 반도체 기억장치 칩들이 사용되고 있다.

RAM

RAM(Random Access Memory)

  • 읽기와 쓰기가 모두 가능한 반도체 기억장치
  • 임의 액세스 방식을 이용하는 반도체 기억장치이다.
  • 이 기억장치에 저장된 각 단어들은 CPU가 전송하는 주소에 의해 지정되어 직접 액세스 된다. 따라서 칩 내의 어느 위치에 있든 액세스에 걸리는 시간이 동일하다. RAN의 특징은 데이터를 읽는 것과 쓰는 것이 모두 가능하며, 이 동작들이 전기적인 신호들을 이용하여 이루어진다.
  • 다른 반도체 기억장치들도 임의 액세스 방식을 이용하기 때문에, RAM의 특징을 더 정확히 표현한다면 RWM(Read Write Memory)라는 명칭이 더 적합하다.

1K x 8 RAM 칩과 제어 신호들

RAM의 다른 특징

  • 휘발성(volatile)이다. 
  • 전원 공급이 중단되면 데이터가 사라진다. 따라서 RAM을 사용하기 위해서는 일정한 전원을 항상 공급해야 한다. 그러한 이유 때문에 RAM은 영구적 저장장치로는 사용될 수 없고, 일시적 저장장치로만 사용된다.

RAM은 제조 기술에 따라 DRAM과 SRAM으로 분류된다.

DRAM(Dynamic RAM)

  • 충전 방식을 이용하여 데이터를 저장하는 RAM으로서, 주기적인 재충전(refresh)이 필요하다.
  • 캐패시터(capacitor)에 전하(charge)를 충전하는 방식으로 비트값을 저장하는 기억 셀들(memory cell)로 이루어져 있다.
  • 즉 캐피시터에 전하가 존재하는지의 여부에 따라 2진수 1과 0이 구분된다. 그런데 캐피시터는 점차적으로 방전(discharge)되는 성질이 있기 때문에, DRAM은 데이터의 저장 상태를 유지하기 위하여 주기적으로 재충전(refresh) 해주어야 한다.

SRAM(Static RAM)

  • 플립-플롭형 기억셀(memory cell)을 이용함으로써, 전력이 공급되는 동안에는 데이터가 계속 유지되는 RAM이다.
  • 기억 셀로서 플립플롭(flip-flop)을 이용한다. 따라서 SRAM에는 데이터가 안정된 상태로 저장될 수 있으므로, 전력이 공급되는 동안에는 재충전 없이도 데이터를 계속 유지할 수 있다.
  • DARM과 SRAM은 모두 휘발성이다. DRAM의 각 기억 셀은 SRAM의 경우보다 더 간단하고, 더 작다.
  • 결과적으로 DRAM의 밀도가 더 높으며(셀이 더 작으면 단위 면적당 더 많은 셀들을 집적시킬 수 있으므로), 같은 용량의 SRAM보다 비트당 가격이 더 저렴하다. DRAM에는 재충전 회로가 추가되어야 하지만, 기억장치의 용량이 커질수록 그 회로가 차지하는 비중이 상대적으로 줄어들기 때문에 칩의 가격에는 별 영향을 주지 않는다.
  • 중요사항 : SRAM이 DRAM보다 속도가 더 빠르다는 점이다. 이러한 특징들 때문에 DRAM은 주로 주기억장치로 사용되며, SRAM은 높은 속도가 필요한 캐시로 사용된다.

RAM은 같은 용량에 대해서도 내부 조직이 다양하게 구성될 수 있다. 

8 X 8비트 조직

8 X 8비트 조직 및 주소지정

  • 8개의 기억 장소들로 구성되며, 각 기억장소에는 8비트씩 저장된다.
  • 전체 용량은 64비트(8바이트)가 된다.
  • 기억 장소는 8개이므로 세 개의 주소 비트들(A2, A1, A0)로 그들의 주소를 모두 지정할 수 있다.
  • 주소의 범위는 0번지부터 7번지까지가 된다.
  • 칩 내의 3 X 8 해독기는 주소 비트들을 해독하여 8개의 출력들중의 하나를 활성화 시킨다. 그러면 그 출력 선이 연결된 기억 장소가 선택되고, 제어 신호에 따라 읽기 혹은 쓰기 동작이 수행된다. 한 번의 읽기 혹은 쓰기 동작이 수행될 때 동시에 입출력되는 데이터 비트 수가 8개이기 때문에, 데이터 입출력 선은 8개가 필요하다.
  • 이와 같은 조직을 가지는 RAM에서 전체 용량이 8Kbit라면, 1K x 8비트 조직으로 구성되며, 주소 비트는 10개가 필요하게 된다. 또한 1Mbit(128K x 8비트 조직)RAM의 경우에는 17비트, 1Gbit(128M x 8비트 조직) RAM의 경우에는 27비트의 주소가 각각 입력되어야 한다.

16 X 4비트 조직

16 x 4비트 조직 및 주소지정

  • 16개의 기억 장소들이 서로 다른 주소를 할당 받으며, 각 기억 장소에는 4-비트 데이터가 저장된다.
  • 이 칩에 대한 주소 지정을 위해서는 16 = 2^4, 즉 4-비트 주소(A3, A2, A1, A0)가 필요하게 된다. 
  • 4 x 16 해독기가 16개의 출력 신호들 중의 하나를 활성화시킴으로써 각 기억장소가 선택된다. 이 경우에 칩 내부 기억장소들의 주소 범위는 0번지부터 15번지까지가 되며, 데이터 입출력 선은 4개가 있으면 된다.
  • 이와 같은 조직을 가지는 RAM의 경우에는 전체 용량이 8Kbit라면 2K x 4비트 조직으로 구성되며, 11개의 주소 비트들이 필요하게 된다. 또한 1Mbit(256K x 4비트 조직) RAM은 18비트, 1Gbit(256M x 4비트 조직) RAM의 경우에는 28비트의 주소가 각각 입력되어야 한다.

64 X 1비트 조직

64x1비트 조직에서의 주소지정

  • 8 x 8의 장방형 구조에 위치한 64개의 기억 소자들에 대하여 읽기 및 쓰기가 한 단위로 이루어진다.
  • 이러한 조직에서는 데이터 입출력 선이 한 개만 있으면 된다.
  • 각 기억장소가 별도의 주소를 가지므로 64 = 2^6, 즉 여섯 개의 주소 비트들(A5, A4, A3, A2, A1, A0)이 필요하다.
  • 이러한 조직에서는 일반적으로 주소 비트들이 두 그룹으로 나누어져 별도로 해독된다. 주소 비트들 중에서 상위 세 비트는 8개의 행(row)들 중에서 한 개를 선택하고, 하위 세 비트들은 8개의 열 (column)들 중에서 한 개를 선택한다. 따라서 두 개의 3 x 8해독기가 필요하다.
  • 이 방법으로 주소가 지정되는 예를 보면 세번째 행의 일곱번째 기억 소자의 주소는 010110이 된다.
  • 이와 같은 조직을 가지는 rAM에서 전체 용량이 8Kbit라면, 8K x 1비트 조직으로 구성되어 모두 13개의 주소 비트들이 필요하게 된다. 또한 1Mbit(1M x 1비트 조직) RAM은 20비트, 1Gbit(1G x 1비트 조직) RAM의 경우에는 30비트의 주소가 각각 입력되어야 한다. 그러나 대용량의 RAM에서 이 조직을 사용하게 되면, 필요한 주소 비트 수가 너무 많아지기 때문에 거의 채택되지 않는 편이다.

16M X 4비트 조직 (이전까지는 실제 존재하지 않는 적은 용량의 RAM 들을 예시로 사용한 것이다.)

16Mbit(16M x 4) DRAM의 내부 조직

  • 이 칩의 주소 입력 단에는 주소 버퍼들이 있고, 두 개의 해독기들이 각각 행 주소와 열 주소를 해독한다. 이 조직의 핵심부인 기억 소자 배열은 4096 x 4096 x 4비트로 표시되는데, 그 의미는 기억장소들이 4096개의 행과 4096개의 열들로 이루어진 장방형 구조로 배열되어 있으며, 각 기억 장소에는 네 개의 데이터 비트들이 저장된다는 것을 말한다. 
  • 이 칩의 전체 기억 장소의 수는 16M개이기 때문에, 그들을 구분하기 위해서는 24비트의 주소가 필요하다.
  • 기억 소자의 행과 열을 구분하기 위해서는 각 방향으로 12비트씩의 주소가 필요하다. 즉, 전체적으로 24개의 주소 비트들이 들어와야 한다. 그러나 실제로 칩으로 접속되는 주소 선은 12개만 있어도 되는데, 그것이 가능한 이유는 읽기 동작에 대한 타이밍도(timing diagram)를 통해 확인할 수 있다. 

DRAM 읽기 동작의 타이밍도

RAS(Row Address Strobe)

  • 기억장치의 행 주소 래치 신호

CAS 신호

  • 기억장치의 열 주소 래치 신호
  • CPU 주소란 CPU가 발생한 전체 24개의 주소 비트들을 말하는데, 그들 중에서 상위 12개(A23~A12)비트들이 먼저 선택되어 DRAM 칩의 주소 입력으로 들어온다. 그 상위 주소 비트들은 4096개의 행들 중의 하나를 선택하는 행 주소로 사용되는데 그들은 RAS 신호에 의해 행 주소 버퍼에 래치된다. 
  • 그 다음 순간에는 열 주소로 사용될 하위 12비트들(A11 ~ A0)이 선택되어 DRAM으로 전송되는데, 그들은 CAS 신호에 의해 열 주소 버퍼에 래치된다.

기억장치 제어기

  • CPU와 기억장치 사이에 위치하여 주소 및 데이터 전송을 제어하는 장치

  • CPU가 생성한 주소를 행 주소와 열 주소로 나누어 순차적으로 DRAM으로 보내주고, 그이 맞추어 RAS 및 CAS 신호를 발생시키는 동작은 기억장치 제어기(memory controller)가 담당한다. CPU와 기억장치 사이에 위치하는 기억장치 제어기는 노스브리지(north bridge)라고 부르는 칩셋(chipset)으로 구현되기도 하며, 지연을 줄이기 위하여 CPU 칩 내부에 포함시키는 경우도 있다.
  • 두 버퍼에 래치된 주소들은 각각 행 주소 해독기(row address decoder)와 열 주소 해독기(column address decoder)에 의해 해독되어 해당 기억 장소를 선택하게 된다.
  • 이와 같은 주소 래치 방식을 이용함으로써, DRAM으로 주소를 12비트만 공급하더라도 모든 주소 지정이 가능해지는 것이다.

이것은 기억장치 칩 핀 수를 줄일 수 있게 해주어 패키지의 크기를 줄이는데 많은 도움이 된다.

  • DRAM 읽기 동작에 대한 타이밍도를 보면, 주소 전송과 함께 RD 신호가 활성화 되며, 열 주소가 인가된 순간부터 칩의 액세스 시간만큼 지난 후에 4-비트 데이터가 읽혀져 데이터 버스에 실리게 된다.
  • DRAM에는 재충전(refresh)회로가 포함되어 있다.
  • 이 회로의 핵심 요소인 재충전 계수기(refresh counter)는 0부터 4095까지의 주소를 순서대로 발생하며, 그 주소는 기억장치 액세스가 일어나지 않는 사이클 동안에 내부의 멀티플렉서(MUX)에 의해 선택되어 행 주소 해독기로 보내진다. 그러면 그 주소가 지정하는 행에 위치한 모든 기억 소자들이 동시에 선택되어 재충전된다.
  • 재충전 동작은 각 행에 공통으로 접속된 재충전 신호 선으로 전기를 인가하여 '1'이 저장되어 있는 기억소자들을 충전함으로써 이루어진다.
  • 64Mbit DRAM 패키지의 입출력 핀 구성

DRAM을 패키징(packaging)하여 24개 핀들을 가진 칩으로 만들어진 모습이다.

  • Vcc는 전원 공급 핀이다.
  • Vss는 접지 핀을 나타낸다. 2, 3, 22, 23번이 데이터 입출력 핀들이며, 아래핀 12개(A0~A11)핀들이 주소 핀이다. 4번의 WE 핀은 쓰기 신호 선이고, 20번의 OE핀은 출력 활성화 신호, 즉 읽기 신호핀을 가리킨다. 그리고 5번과 21번 핀으로는 각각 RAS 및 CAS 신호가 인가된다.

ROM(Read Only Memory)

  • 저장된 내용을 읽는 것만 가능한 반도체 기억장치
  • RMA과 대조를 이루는 반도체 기억장치가 ROM이다. 
  • ROM은 내용을 읽는 것만 가능하고, 쓰는 것은 불가능하다.
  • ROM은 프로그램이나 변경될 수 없는 데이터를 저장하는 데 사용된다.

ROM에 저장되는 내용

  • 시스템 초기화 및 진단 프로그램
  • 빈번히 사용되는 함수들과 서브루틴들
  • 제어 유니트의 마이크로프로그램

ROM은 전원 공급이 중단되어도 내용을 잃어버리지 않고 영구 저장할 수 있는 반도체 기억장치이다.

ROM을 사용함으로써 얻을 수 있는 장점

  • 프로그램이나 데이터가 영구 저장되므로 보조저장장치로부터 매번 이동시킬 필요가 없기 때문에 액세스 시간이 짧아진다는 점이다. 그러나 쓰기 동작이 불가능하기 때문에, 변경할 필요가 없는 프로그램 코드나 데이터 를 저장하는데만 사용된다.
  • 대부분의 컴퓨터 시스템에서 RAM과 함께 주기억장치의 일부분으로서 ROM을 사용하고 있다.

64KByte ROM의 블록선도

  • 64K x 8비트 조직을 가진 ROM 블록선도를 보면 ROM은 읽기만 가능하기 때문에 WR 신호는 필요 없고 RD 신호만 있으면 된다. 또한 64K = 2^16이므로, 16비트의 주소가 입력되어야 한다.
  • 칩 선택 신호인 CS와 읽기(RD) 신호가 활성화되면, 주소가 지정하는 기억 장소로부터 데이터가 읽혀져서 데이터버스에 실리게 된다.
  • 대부분의 ROM은 데이터 출력 선이 8개인 조직을 사용하며, 용량도 바이트 단위로 표시한다. 
  • ROM에 저장될 내용(프로그램 혹은 데이터)은 제조 과정에서 미리 쓰여진다. 그리고 그 이후에는 내용을 수정하는 것이 불가능하다.

이러한 제한을 완화시키기 위해 개발된 같은 종류의 ROM들

  • PROM(Programmable ROM) 
    • 내용을 한 번만 쓸 수 있다는 점에서 ROM과 같다. 그러나 PROM의 경우에는 제조 단계에서 기억 소자들에 데이터를 쓰지 않고 비워두며, 그 후에 전기적으로 데이터를 쓰는 것이 가능하다.
    • 새로운 PROM을 구입한 사용자가 필요에 따라 원하는 내용을 써넣을 수 있다. 
    • PROM에 어떤 내용을 쓰는 동작을 프로그래밍한다 라고 말한다. 이것을 위해서는 일반적인 동작 때보다 더 높은 전압의 신호를 발생할 수 있는 PROM 프로그래머라고 부르는 특수한 장치가 필요하다. 
    • PROM은 ROM에 비하여 융통성이 높지만, 한 번만 쓸 수 있다는 제한이 있다.
  • EPROM(Erasable Programmable ROM)
    • PROM과 달리 내용을 삭제할 수도 있기 때문에 사용자가 내용을 여러 번 갱신할 수 있다. 그러나 기존 내용들을 지우기 위해서는 반드시 자외선을 이용해야 하며, 칩 전체가 함께 지워진다.
    • 칩에 새로운 내용을 쓰기 위해서는 먼저 삭제를 통하여 초기 상태와 같아지도록 해야 한다. 
    • 한 번 삭제하는데 걸리는 시간은 대략 20분가량 소요된다. 
    • 저장 용량이 같은 경우에 EPROM의 비트 당 가격이 PROM보다 더 높지만, 여러 번의 갱신이 가능하다는 것이 장점이다.
  • EEPROM(Electrucally Erasable PROM)
    • 전기적으로 삭제할 수 있는 EPROM으로서, 약간 더 높은 전압의 전기적 신호를 이용하여 삭제와 쓰기를 모두 할 수 있기 때문에 내용을 갱신(update)할 때 컴퓨터로부터 칩을 분리시킬 필요가 없다.
    • 새로운 내용으로 갱신하기 전에 이전 내용을 지울 필요가 없으며, 바이트 단위로 갱신된다. 그런데 읽기 동작이 수백 ns정도 걸리는데 비하여, 쓰기 동작은 바이트 당 수백 us 정도로 훨씬 더 오래 걸린다. EEPROM은 비휘발성이면서도 읽기와 쓰기가 모두 가능하다는 특징을 가지고 있다. 다만, 데이터를 갱신할 수 있는 횟수가 수만 번 이하로 제한된다는 점은 시스템 설계 과정에서 유의해야 할 사항이다.  
  • 플래시 메모리(Flash memory)
    • 삭제에 걸리는 시간이 매우 짧은 EEPROM이며, 쓰기 동작과 삭제 동작시의 데이터 크기가 서로 다르다.
    • 칩 전체의 내용을 지우는 데 걸리는 시간이 수 초 정도로서 EEPROM에 비하여 현저히 빠르며, 그 속도가 섬광(flash)과 같이 빠르다고 하여 이름이 플래시라고 지어졌다. 
    • EEPROM에서는 바이트 단위의 쓰기가 가능하지만, 플래시 메모리에서의 쓰기 동작은 페이지(2K 혹은 4K 바이트) 단위로만 이루어질 수 있다.
    • 기존의 내용을 갱신하기 위해서는 먼저 해당 페이지를 삭제해야 한다.
    • 삭제는 64개(혹은 128개)의 페이지들로 구성되는 블록 단위로만 가능하기 때문에 블록 내의 다른 페이지들을 임시 장소로 이동시켜두어야 하는 어려움이 있다. 
    • 플래시 메모리도 갱신될 수 있는 횟수가 제한되지만 EEPROM보다는 더 많다. 

Reference

컴퓨터 구조론 개정 5판

https://yz-zone.tistory.com/84

 

[ 컴퓨터구조 ] 5.3 반도체 기억장치

RAM (random access memory) ▣ 자기 코어 기억장치 ▪ 초기 컴퓨터에서 많이 사용됨 ▪ 미세 전자공학의 발전과 더불어 자키 코어 기억장치가 사라짐 ▪ 최근에는 거의 모든 컴퓨터시스템에서 주기억

yz-zone.tistory.com