공부/컴퓨터 구조

[Chap6] 기억 장치

esyeonge 2021. 5. 9. 03:31

01 기억 장치 시스템의 개요

기억장치

; 컴퓨터 시스템에서 프로그램과 데이터를 저장하는 장치

주기억장치

; 중앙처리장치와 접근 통신이 가능한 기억장치

  • CPU와 연결되어 있다.

보조기억장치

; 현재는 필요하지 않은 프로그램이나 데이터를 저장하고 있다가 데이터나 프로그램을 요구하는 경우 주기억장치로 데이터를 전달하는 저장장치

  • 외부에 존재한다.

[1] 기억 장치의 종류와 특성

위치에 따른 분류

위치 : 컴퓨터 내부와 외부를 구분하는 기준

  • 내부기억장치 : CPU 내부의 레지스터와 주기억 장치
  • 외부기억장치 : 자기 디스크, 자기 테이프

용량에 따른 분류

용량 : 기억 장치가 저장할 수 있는 데이터의 총량으로 바이트나 워드로 나타냄

  • 바이트 : 1바이트 = 8비트, 일반적으로 외부 기억 장치가 용량을 표시하는 방법
  • 워드 : 8, 16, 32, 64비트로 길이가 다양하고 CPU가 처리하는 명령어 길이나 내부에서 한 번에 연산할 수 있는 데이터 비트 수

전송 단위에 따른 분류

전송 단위

내부 기억 장치 - 기억 장치로 들어가고 나오는 데이터선의 수로 워드 길이와 같거나 다를 수 있음

외부 기억 장치 - 워드보다 큰 블록

ex) 외부 기억 장치인 하드 디스크는 블록 크기가 512바이트 또는 1024바이트

 

cf) 외부 기억 장치에 연결되는 데이터 버스의 폭은 8비트, 16비트, 32비트이므로 블록 하나를 전송하려면 전송 동작이 여러 번 연속으로 이루어져야 함

성능에 따른 분류

성능 : 용량과 더불어 사용자 관점에서 중요한 기준으로 액세스 시간, 사이클 시간, 전송률에 따라 달라짐

액세스 : CPU가 데이터를 기억 장치에 쓰거나 기억 장치로부터 읽는 동작

  • 액세스 시간 : 주소나 제어(읽기/쓰기) 신호가 기억 장치에 도착한 순간부터 데이터가 저장되거나 읽히는 순간까지
    • 임의 데이터 시간 : 저장 위치에 상관없이 동일
    • 순차 액세스 / 직접 액세스 : 데이터 저장 위치에 따라 액세스 시간이 다름
  • 사이클 시간 : 액세스 시간과 다음 액세스를 시작하기 위해 필요한 동작에 걸리는 시간을 더한 것
    • 파괴적 기억 장치 : 읽기 동작 후에 데이터가 지워지며 자동으로 복구되는 데 시간이 소요됨

      (사이클 시간) = (액세스 시간) + (복원 시간)

      ex) 자기 코어, FRAM

    • 비파괴적 기억 장치 ; 데이터가 파괴되지 않음

      (사이클 시간) ≥ (액세스 시간)

      ex) 반도체, 자기 디스크

  • 전송률 : 데이터가 기억 장치로 들어가거나 나오는 초당 비트 수로 기억 장치의 전송 속도를 측정하는 기준 (= 대역폭)
    • 데이터 버스의 폭이 크면 더 많은 비트가 한 번에 전송 되어서 전송률이 높아짐

      ex) 기억 장치의 액세스 시간이 100ns고, 한 번에 64비트씩 전송되면 전송률은 80Mbyte

액세스 방법에 따른 분류

순차 액세스

; 임의 위치의 데이터를 처음부터 순서대로 읽으므로 데이터의 위치에 따라 액세스 시간이 크게 달라짐(ex. 자기 테이프, 자기 드럼)

직접 액세스

; 기억 장치의 각 FAT 근처로 먼저 이동한 위치부터 순서대로 읽으므로 데이터의 저장 위치에 따라 액세스 시간이 달라짐(ex. 자기 디스크, CD-ROM, DVD)

임의 액세스

; 기억 장치마다 고유의 주소가 있어 어떤 위치든 임의로 액세스 가능(ex. 반도체 기억 장치)

데이터의 위치에 상관없이 액세스 시간이 길다.

연관 액세스

; 임의 액세스 방식의 일종으로, 주소 대신 내용의 일부를 이용(ex. 캐시 기억 장치)

기억 장소에 데이터와 키라는 특수 비트를 함께 저장해 원하는 비트 패턴과 기억 장소의 키를 비교해 일치하는 곳의 데이터를 읽음

키 비트 비교 시간은 일정하나, 비교 시간이 많이 걸리고 복잡해 비교 부분을 하드웨어로 구현

물리적 유형에 따른 분류

; 제작에 사용하는 물리적인 재료에 의해 분류

  • 반도체 기억 장치, 자기 디스크 및 자기 테이프 같은 자기-표면 기억 장치, 레이저 광을 이용하는 광 저장 장치

물리적 특성에 따른 분류

; 데이터를 저장하는 물리적 특성에 따라 분류

  • 휘발성 기억 장치 : 전원이 끊기면 기억하고 있던 데이터가 소멸됨(ex. RAM)
  • 비휘발성 기억 장치 : 전원이 끊겨도 데이터를 계속 기억함(ex. ROM, 플래시 메모리, 자기-표면 기억 장치, 광저장 장치)
  • 파괴적 기억 장치 : 데이터를 읽으면 해당 데이터를 파괴하고 파괴된 데이터를 복원하는 과정이 필요(ex. 자기 코어, FRAM)
  • 비파괴적 기억 장치 : 데이터를 읽어도 영향을 주지 않음(ex. 반도체 기억 장치, 자기-표면 기억 장치, 광저장 장치)

[2] 계층적 기억 장치 시스템

  • 액세스 속도가 빨라질수록 비트당 가격은 높아진다
  • 용량이 증가할수록 비트당 가격은 감소하고, 액세스 속도도 낮아짐

계층적 구조 : 평균 액세스 속도를 빠르게 하면서 가격 대비 성능을 적절히 유지하는 방법(기억 장치의 용량을 늘리는 데 한계가 있는 방법을 보완)

상위 계층으로 올라갈 수록 나타나는 특징

  • 비트당 가격이 올라간다.
  • 액세스 속도가 빨라진다
  • 저장 용량이 작아진다.
  • CPU에 의한 액세스 빈도가 높아진다.

레지스터

  • 액세스 속도가 가장 빠르다.
  • 비트당 가격도 가장 높다.
  • CPU에 소량 존재한다. (RISC 계열은 200개 이상이지만 보통은 수십 개)

캐시

  • 레지스터 다음으로 액세스 속도가 빠르다.
  • 주기억 장치와 CPU의 속도 차를 줄이기 위해 CPU가 자주 사용하는 명령어나 데이터를 일시 저장하는 버퍼 역할을 함

주기억 장치

  • 요새는 비교적 저렴하고 집적도가 높은 DRAM이 아닌 SDR SDRAM이나 DDR SDRAM으로 구성
  • 프로그램을 수행하려면 프로그램의 명령어와 데이터를 주기억 장치에 적재해야 함
  • 내부 기억 장치는 고속 동작을 위해 보통 하나의 CPU 보드 상에 위치

자기 디스크, CD-ROM, DVD와 자기 테이프

  • 대규모 데이터를 영구 저장하기 위해 사용됨
  • CPU가 직접 액세스 할 수 없고 제어기를 통해 액세스 가능
  • 보조 기억 장치라 / 외부 기억 장치라고 함
  • 보조 기억 장치 중에서 고속 액세스가 가능한 것은 자기 디스크

02 주기억 장치

주기억 장치

; CPU와 정보를 직접 주고받을 수 있도록 시스템 버스로 연결되어 있음

[2] 주기억 장치의 동작

메모리는 2진 정보를 워드라는 비트의 집합으로 저장

워드 : 메모리에서 입출력 시 한 번에 전송되는 비트

비트가 8개 모인 것을 바이트라고 함

 

주기억 장치 사이의 데이터 전송

CPU 내부에 있는 레지스터 2개(MAR, MBR)와 제어 신호(읽기, 쓰기, 칩 선택)를 통해 이루어짐

  • MAR : 메모리 주소 저장
  • MBR : 전송하려는 데이터 저장

 

전송 단계

(1) 주소 버스에 저장하려는 메모리의 주소를 MAR에 전송

(2) MAR은 지정된 메모리의 위치를 선택

(3) MBR을 사용해 데이터를 읽거나 씀(칩 선택 신호 - CS, 읽기 신호 - RD, 쓰기 신호 - WR)

메모리 읽기 동작

액세스 시간 : CPU로부터 주소를 지정한 순간부터 데이터가 CPU 내부로 읽힐 때까지 걸린 시간

읽는 순서 및 동작 과정

(1) 읽으려는 메모리의 주소를 MAR로 전송

(2) 칩 선택 신호와 읽기 신호를 활성화시키면 지정된 메모리의 워드가 MBR로 들어옴

칩 선택 신호와 읽기 신호는 0일 때 활성화 되는 active-low 신호

메모리 쓰기 동작

액세스 시간 : CPU로부터 주소를 지정한 순간부터 메모리에 데이터를 저장할 때까지 걸린 시간

읽는 순서 및 동작 과정

(1) 지정된 메모리의 주소를 MAR로 전송한느 동시에 저장하려는 데이터의 워드를 MBR에 전송

(2) 칩 선택 신호와 쓰기 신호를 활성화

기억 장치의 용량 표현

기억 장치의 용량 : 주소 버스의 길이와 지정된 주소에 들어 있는 데이터의 길이로 나타냄

용량 = 2^n * m

MAR의 비트 수 = 주소 버스의 길이 n, 워드 개수는 2^n

MBR의 비트 수 = 워드당 비트수 = 데이터 버스의 길이 m

ex) 주소 버스선의 수가 16이고 워드당 8비트면 2^16*8=2^6*2^10*8=64Kbyte

워드의 저장 방법

; 주소와 데이터 단위를 정의하여 기억 장치의 데이터를 구별함

주소에는 0번지부터 고유의 일련번호 부여

각 주소에 데이터가 1바이트나 워드 단위로 저장됨

엔디안

; 기억 장치에 바이트를 배열하는 방법

  • 리틀 엔디안; 하위 바이트를 낮은 주소에 저장
    • 홀수 / 짝수 검사에 용이
    • 계산 문제에 용이
  • 빅 엔디안; 상위 바이트를 낮은 주소에 저장
    • 숫자를 읽고 쓰는 방식과 같음
    • TCP/IP 전송 시 사용(IP 패킷이 바이트 단위로 구분된 후 최상위 바이트를 번저 최하위 바이트를 나중에 보냄)
  • 바이 엔디안

[2] 반도체 기억 장치

쓰기 기능, 휘발성/비휘발성, 재사용 여부, 기억 방식 등에 따라 분류함

RAM(=RWM)

; 읽기와 쓰기를 모두 수행할 수 있는 메모리로, 전원이 끊기면 데이터가 사라지는 휘발성 메모리다.

  • SRAM : 플립플롭을 사용해 정보를 저장
  • DRAM : 커패시터에 전하를 충전하는 방식으로 정보를 저장DRAM은 데이터 저장 상태를 유지해주기 위해 주기적으로 재충전 해야함

 

SRAM의 내부 구조와 원리

4*4 SRAM을 통해 알아보자.

워드 하나가 4비트, 총 4개로(D0-D3) 구성되어 있음 → 전체 메모리 셀은 16

BC = 메모리 셀 하나, BC 마다 출력이 1개 있음

주소 입력 2개는 2*4 디코더에 연결되어 있음

디코더에는 인에이블 E' 입력이 있음

(CS)' =1이면 디코더의 모든 출력은 논리 0이 되어 워드를 선택할 수 없고, 0이면 주소 입력 값에 따라 워드 4개 중 하나가 선택됨

R/W'=1이면 지정된 워드의 2진 데이터가 OR 게이트 4개로 출력되고(읽기), R/W'=0이면 입력 단자에 있던 데이터가 지정된 워드의 메모리 셀 배열에 전송되어 저장됨(쓰기)

 

64Kbyte RAM의 블록도와 제어 신호

64K * 8bit는 8비트로 된 기억 장소들이 64K(=2^16)개 배열일 경우 주소선은 16개 필요하고 데이터는 8개 필요

  • (CS)' = 1이면 칩이 선택되지 않은 것 → RAM의 제어 신호선들이나 입출력선들은 하이임피던스 상태가 됨
  • 메모리 칩을 사용하려면 (CS)' = 0이어야 함
  • (CS)' = 0, R/W'=1이면 지정한 주소의 기억 장소에서 8비트 데이터를 읽는 것R/W'=0이면 데이터 버스를 통해 들어오는 8비트 데이터가 주소로 지정한 기억 장소에 저장

 

ROM

; 읽기만 가능한 메모리로 별도의 장치 없이는 변경 불가함

ROM에 저장되는 내용

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

 

ROM의 기본 구조

주소선 n개와 출력선 m개로 구성되어 있음

AND 게이트와 OR 게이트로 구성된 조합 논리 회로

  • AND 게이트 : 디코더
  • OR 게이트 : 디코더의 출력인 최소항을 합함 → ROM의 출력선 수와 OR 게이트 수가 같음

 

ROM의 내부 논리 구조

5비트 주소가 입력되어 출력 32개 중 하나만 활성화 됨

하나를 선택할 경우, 출력은 4개가 나옴. → OR 게이트도 4개가 보여짐

디코더 출력 32개가 각각 퓨즈로 연결되어 OR 게이트에 입력됨 → 내부 퓨즈는 32*4

ROM의 종류

(1) Mask ROM

; 일반적으로 ROM이라고 하면 Mask ROM을 의미하고, 제조 과정에서 데이터를 영구적으로 저장

초기 설계 비용이 많이 들지만, 설계가 완료되면 대량 생산 가능

(2) PROM

; 쓰기를 한 번만 할 수 있고, 퓨즈가 손상되지 않은 상태로 출시되기 때문에 이후에 원하는 형태로 절단 가능

ROM writer를 사용해 많은 전류를 선택적으로 흘려보내 퓨즈를 끊어 0으로 만듦 → 절단된 퓨즈는 논리 0, 절단되지 않은 퓨즈는 논리 1이 된다.

(3) EPROM(=UVEPROM)

; 퓨즈 형태로 구성됨

PROM은 절단된 퓨즈를 복원할 수 없지만, EPROM은 초기 상태로 복원 가능

ROM writer를 이용해 데이터를 쓰고, ROM eraser를 사용해 지울 수 있음

(4) EEPORM

; EPROM에서 지우는 방식만 다르다.

대표적인 예는 플래시 메모리로, 전원이 끊겨도 데이터를 보존하는 ROM의 장점과 정보 입출력이 자유로운 RAM의 장점을 모두 지님

  • NAND 플래시 : 메모리 셀을 수직으로 배열
    • 대용량화에 유리
    • 쓰기 및 지우기 속도가 빠름
  • NOR 플래시 : 메모리 셀을 수평으로 배열
    • 읽는 속도가 빠름

RAM와 ROM 비교

[3] 기억 장치 모듈의 설계

ROM과 RAM은 칩당 용량이 크지 않아서 칩 여러 개를 사용해 워드 길이를 확장하거나 워드 개수를 확장한다.

워드 길이 확장

; 메모리 칩에 저장되는 비트 수가 워드 길이보다 짧을 때, 한 번에 한 워드씩 액세스하기 위해 칩들을 병렬로 연결하는 것

16*4 RAM 2개로 16*8 RAM을 구성하는 경우

한 번에 8비트씩 읽기와 쓰기가 가능해진다.

(CS)'은 RAM을 선택하는 입력이고(active-low로 동작) R/W'가 선택된 RAM 칩의 읽기와 쓰기 동작을 제어

주소 공간은 0000-1111 16이 2^4이기 때문에!

워드 용량 확장

; 16*4 RAM 2개로 32*4 RAM을 구성

기존 4비트 주소 버스에 하나 추가한 5비트가 필요 → 주소가 32개 존재하기 때문에

상위 주소선인 A4에서는 RAM 2개 중 하나를 선택할 수 있도록 동작

A3~A0은 선택된 RAM에서 주소 16개 중 하나를 선택

 

A4=0일 때, RAM0의 (CS)'는 읽거나 쓰기가 가능하도록 인에이블되고,

A3-A0은 원하는 위치 선택을 위해 0000-1111 범위를 가져서 RAM0의 주소 공간 범위는 00000-01111

RAM은 1일 때 읽기나 쓰기 가능하므로 주소 공간 범위 00000-11111

 

Notion2Tistory

 

boltlessengineer.github.io

[출처]

1. 최신 컴퓨터 구조 - 디지털 논리부터 성능 분석까지,

'공부 > 컴퓨터 구조' 카테고리의 다른 글

[Chap7] 보조 기억 장치  (0) 2021.05.27
[Chap6] 기억 장치(2)  (0) 2021.05.15
[Chap5] 제어 장치  (0) 2021.05.01
[Chap4] 중앙 처리 장치  (0) 2021.05.01
[Chap3] 디지털 논리 회로  (0) 2021.05.01