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 : 플립플롭을 사용해 정보를 저장
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
Uploaded by Notion2Tistory v1.1.0