메모리 용량이 16kx32bit일때 레지스터 mbr의 크기는 몇 비트인가

5. 기억장치

5.1 기억장치의 개요

(1) 기억장치의 분류

주기억장치: 반도체(SRAM/DRAM, MaskROM/PROM/EPROM/EEPROM), 자기코어/자기박막필름

보조기억장치: DASD(자기디스크,자기드럼,하드디스크,플로피디스크), SASD(자기테이프)

특수기억장치: 복수모듈 기억장치, 연관 기억장치, 캐시 기억장치, 가상 기억장치

(2) 기억장치의 특성을 결정하는 요소 : 접근시간, 사이클시간, Bandwidth(대역폭/전송률)

1) 접근시간 (Access Time)정보를 기억장치에 기억시키거나 읽는 명령을 한 후부터 실제로 기억되거나 읽기까지의 소요 시간

접근시간(Access Time) = 탐색시간(Seek Time) + 대기시간(Latency Time) + 전송시간(Transmission Time)

접근시간빠른 순서 : Associative Memory - Cache Memory - Main Memory - Magnetic Disk

2) 사이클시간 (Cycle Time) : 기억장치 접근을 위해 판독신호를 내고 다음 판독신호를 낼 수 있을 때까지의 시간

Cycle Time >= Access Time

3) Bandwidth (대역폭, 전송률)

- 기억장치의 자료처리속도를 나타내는 단위, 기억장치를 연속적으로 액세스할 때 초당 처리할 수 있는 비트수

- 계속적으로 기억장치에서 데이터를 읽거나 기억시킬 때 1초 동안에 사용되는 비트수

- 메모리 워드의 길이가 작을수록 대역폭이 좋음

- 주기억장치가 제공할 수 있는 정보 전달능력의 한계주기억장치의 대역폭이라고 한다.

- 전송단위 : Baud(보) = bps(1초당 전송 가능한 비트수)

기출) 기억장치의 자료처리 속도를 나타내는 밴드폭이란?

가. 계속적으로 기억장치에서 데이터를 읽거나 기억시킬 때 1초 동안에 사용되는 비트수 (O)

나. 필요에 따라 주기억장치에 사용되는 바이트의 사용량 (X)

다. 1초 동안에 사용되는 워드(word)의 사용량 (X)

라. 계속적으로 사용되는 데이터의 사용량을 1분 동안에 사용하는 바이트의 수를 표시 (X)

(3) 기억장치의 구분

파괴성 메모리(Destructive Memory) : 판독 후 저장된 내용이 파괴되는 메모리. 자기코어

- 파괴된 내용을 재생시키기 위한 재장전 시간(Restoration Time)이 필요

- 파괴성 판독(DRO : Destructive Read Out) 메모리는 데이터를 읽어내면서 원래의 데이터를 소거하는 판독방법으로 정보를 보존하려면 읽어낸 뒤 즉시 재기입해야 하는 메모리를 의미. 사이클시간이 접근시간에 비해 큼

휘발성 메모리(Volatile Memory) : 전원이 단절되면 모든 정보가 지워지는 메모리. 

정전이 되면 기억 내용 상실. RAM

기출) 휘발성 기억소자의 특징인 것은?

가. 정전이 되어도 상태를 유지한다. (X)

나. 정전이 되면 기억내용을 상실한다. (O)

다. 기억내용을 읽을 때 그 내용이 파괴된다. (X)

라. 기억내용을 읽어도 내용이 파괴되지 않는다. (X)

접근 방식에 따른 기억장치의 구분 : SASD, DASD

차 접근 저장 매체(SASD, Sequential Access Storage Device)

자료가 저장된 위치에 접근할 때 처음부터 순서대로 접근하여 원하는 위치를 검색하는 메모리. 자기테이프

직접 접근 저장 매체(DASD, Direct Access Storage Device)

순서를 거치지 않고 자료가 저장된 위치를 직접 접근할 수 있는 메모리. 자기디스크

재충전 여부에 따른 기억장치의 구분 : SRAM, DRAM

정적메모리 SRAM(Static RAM) : 전원이 공급되는 한 기억 내용이 계속 유지되는 메모리. 캐시메모리

동적메모리 DRAM(Dynamic RAM) : 전원이 공급되어도 일정 시간 지나면 내용이 지워지므로 주기적으로 충전(Refresh)해야 하는 메모리. 주기억장치

SDRAM : DRAM의 파생형. DRAM은 비동기식인데 SDRAM은 동기식. DRAM보다 빠름.

DDR SDRAM : Double Data Rate SDRAM. SDRAM에 대역폭이 2배 늘어남.

기억보호(Memory Protection) 

- 기억보호는 메모리의 각 블록에 허락할 수 있는 접근 형태를 지정하는 보호비트(Protection Bit)를 둠으로써 이루어짐

- 다중 프로그래밍에서는 여러 개의 프로그램이 동시에 병렬로 실행되는데 이 때 어떤 프로그램에 의해 다른 프로그램의 결과가 잘못 쓰이지 않도록 기억보호를 함.

5.2 주기억장치 (RAM, ROM, 자기코어)

(1) 주기억장치 개요

1) CPU가 직접 접근하여 처리할 수 있는 기억장치

2) 현재 수행되는 프로그램과 데이터를 저장

3) 주기억장치에 사용되는 양극소자나 MOS형 기억소자는 보조기억장치에 비해 동작속도가 빠르고 가격이 비쌈

4) 주기억장치는 Main Storage를 의미함

5) 주기억장치의 성능을 좌우하는 요소 : 기억 용량, 기억 사이클타임, 기억 액세스폭

주기억장치 밴드폭(Bandwidth) : 하드웨어 특성상 주기억장치가 제공할 수 있는 정보 전달능력의 한계

1) ROM (Read Only Memory)

- 기억된 내용을 임의로 변경시킬 수 없음

- 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리

- 마이크로프로그램을 저장하는 제어메모리는 주로 ROM 메모리를 사용

- 실제로 ROM은 주기억장치로 사용하기보다는 입출력시스템(BIOS), 자기진단프로그램(POST)처럼 변경 가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용

- Micro instruction을 내장하고 있음

- 제어 기억장치는 보통 ROM 기억장치 소재를 이용하여 구현됨

- 마이크로컴퓨터 내 동작에 항상 필요한 모니터 프로그램이 기억되기에 적당한 장소

ROM의 종류

- Mask ROM : 반도체 공장에서 내용 기입, 대용량 메모리를 내장한 제품 중 프로그램 되어 있는 ROM. 컨트롤러 등에 사용

- PROM(Programmable ROM) : 사용자가 한번만 내용을 기입할 수 있으나 지울 수 없음

- EPROM(Erasable PROM) : 이미 기억된 내용을 자외선을 이용하여 지우고 다시 사용할 수 있는 메모리

- EEPROM(Electronically EPROM) : 이미 기억된 내용을 전기적 방법으로 지우고 다시 사용할 수 있는 메모리. 전원공급이 중단되어도 내용이 지워지지 않으며 전기적으로 삭제하고 다시 쓸 수도 있는 기억장치 메인보드의 ROM이나 BIOS에 사용. 최근엔 플래시 메모리로 교체

ROM 칩에 필요한 신호 : 주소, 읽기 신호, 칩 선택 신호

2) RAM (Random Access Memory)

- 자유롭게 읽고 쓸 수 있는 기억장치

DRAM(Dynamic RAM, 동적램): 구성소자는 콘덴서, 각 비트는 전하(charge)의 형태로 저장하며 주기적으로 재충전 필요, 미소의 콘덴서에 전하를 충전하는 형태의 원리를 이용하는 메모리.

전력소모 적음, 접근 속도 느림, 직접도 높음, 가격 저가, 일반적 주기억장치에 사용

SRAM(Static RAM, 정적램): 구성소자는 플립플롭, 전원이 공급되는 동안에는 기억 내용이 유지됨,

- 전력소모 많음, 접근 속도 빠름, 직접도 낮음, 가격 고가, 캐시 메모리에 사용

3) 자기코어

- 자기코어는 중심을 통과하는 전선에 흐르는 전류의 방향에 따라 1 혹은 0의 값을 가짐

- 전류 일치 기술(coincident-current technique)에 의해 기억장소를 선별하는 기억장치

- 전자계산기 메모리에서 지움성 읽음(Destructive Read-Out) 성질을 갖고 있음

(2) 반도체 기억소자 구성

1) RAM/ROM 용량계산법 (기출문제 많이 풀어볼 것!)

기억장치 용량 = 2^워드수 x 워드 크기

어드레스필드 크기 = 최대 메모리 용량(2^n x 워드길이)

워드수 n = 입력번지선의 수 = 주소선의 수 = MAR = PC

워드의 길이/크기 = 출력 데이터선의 수 = Data Bus의 비트 수 = MBR = DR = IR

메모리 용량 = 2^주소 수 x 데이터 수 구조

기억장치 용량 = 2^워드 수 x 워드 크기 = 2^입력번지선 수 x 출력데이터선 수 = 2^MAR x MBR

모두 같다는 것을 기억

기출) 기억용량이 1MByte일 때 필요한 주소선의 수? 20개

2^n x 워드 크기 (워드 크기에 대한 언급이 없으면 워드 크기로 1Byte로 본다.)

기억용량 1MByte = 2^n x 1Byte

총 기억용량이 1MB 이므로 1바이트 크기의 기억공간이 1M(104만8576)개가 있다는 의미가 된다.

따라서 약 백만개의 주소를 표현하기 위해서는 20비트의 주소선이 필요하다.

1 MByte = 1024 KByte = 1024 x 1024 Byte = 2^10 x 2^10 = 2^20

1 MByte = 2의 20승이므로 20개의 주소선 필요

기출) 입력 번지선이 8개, 출력 데이터선이 8개인 ROM의 기억 용량? 256바이트

2^8 x 8 Bit = 256 x 8 Bit = 256 x 1Byte = 256 Byte

기출) 기억장치의 총 용량이 4096워드이고 워드길이가 16Bit일 때 프로그램 카운터(PC), 주소 레지스터(AR), 데이터 레지스터(DR)의 크기는?

PC = 8, AR = 8, DR = 16

4096(2^12) = 2^n x 16 이므로 2^n = 256 = 2^8 

- 워드수 = 주소선수 = AR = PC이므로 PC = AR = 8

- 워드길이(크기) = DR이므로 16

- 2^8(주소) x 16(데이터) 구조

기출) 주기억장치 용량 8192비트, 워드 길이 16비트일 때 PC, AR, DR 크기는? PC 9, AR 9, DR 16

- 어드레스 버스(PC, MAR) = > 램 용량(2^n X 워드길이) => 데이터 버스(MBR, 워드길이)

- 램 용량 8192비트 = 2^n x 16비트이므로 512비트 = 2^n이 된다. 즉, n는 9가 된다.

- 2^9(주소) x 16(데이터) 구조

- 정답은 PC 9, AR 9, DR 16

기출) 명령어 형식(instruction format)이 opcode, addressing mode, address의 3 부분으로 되어 있는 컴퓨터에서

주 기억장치가 1024 워드일 경우, 명령의 크기는 몇비트로 구성되어야 하는가?  

(단, op-code는 4비트 이며, addressing mode는 직접/간접 주소지정방식 구분에만 사용한다라고 가정한다.) 15 bit

- 주기억장치 용량(최대 메모리 용량) = 1024워드 = 2^10, 즉 address는 10bit

- 주소 모드는 직/간 접만 구분하니 addressing mode는 1bit (0 과 1)

- op코드 4bit + addressing mode 1bit + address는 10bit의 명령어 구조 = 4+1+10 = 15

기출) 어떤 computer의 메모리 용량은 1024 word이고 1 word는 16 bit로 구성되어 있다면,

MAR과 MBR은 몇 bit로 구성되어 있는가? MAR=10, MBR=16

메모리 용량 = 1024 = 2^10 워드수 x 워드길이(16bit = 2byte = 하프워드)

- 메모리 용량 1024 = 2^10이므로 주소부는 10bit (MAR는 명령어의 주소부와 같은 비트이므로 10bit가 된다)

- 1 word가 16비트이면 MBR도 16Bit

- 메모리 용량 = 2^10(워드수) x 16(워드길이) 구조

기출) 4096x16의 용량을 가진 RAM이 있다. 메모리 버퍼 레지스터(MBR)는 몇 비트의 레지스터인가? 16 비트

4046(주소) x 16(명령어당 비트수) ==> MBR은 명령어를 기억하는 레지스터이므로 명령어당 bit수가 필요

기출) 한 단어가 25비트로 이루어지고 총 65.356개의 단어를 가진 기억장치가 있다. 이 기억장치를 사용하는 컴퓨터 시스템의 명령어 코드는 하나의 indirect mode bit, operation code, processor register를 나타내는 2비트와 address part로 구분되어 있다. MBR(Memory Buffer Register), MAR(Memory Address Register), PC(Program Counter)에 필요한 각각의 bit는? ③ MBR:25, MAR:16, PC:16

- MBR은 한 명령어를 기억할 수 있는 비트수 = 한 단어(word) 25비트

- MAR = PC = AR = 주소 용량 = 65536 = 2^16 이므로 16비트

메모리 총 용량 = 2^16(워드수) x 25(워드길이) 구조

기출) 메인 메모리 용량이 1024K x 24Bit일 때 MAR과 MBR의 길이는? MAR = 20, MBR = 24

- 1024KB = 2^10Byte = 2^20Bit

- 메인 메모리 용량 = 2^20 x 24 구조

기출) 컴퓨터 메모리 용량이 16K x 32bit라 하면 MAR와 MBR은 각각 몇 비트? MAR 14, MBR 32

16KB = 2^4 KB = 2^4 x 2^10

메모리 용량 = 2^14 x 32 bit 구조

-------------------------------------------------------------------------------------------------------------------------------------

5.3 보조기억장치 (자기 테이프)

(1) 보조기억장치 개념

주기억장치의 단점 보완용, 속도는 느리지만 전원이 차단되어도 내용 기억, 저장 용량 큼.

(2) 보조기억장치 종류

1) 자기 테이프 (Magnetic Tape)

- 주소의 개념이 아니라 순차처리(SASD)만 가능. 랜덤 처리 불가.

- 대량 자료 장시간 보관에 가장 유리. 입출력 장치로 쓰임

- 블록 레코드(물리 레코드) : 자기 테이프에서 갭(gap)과 갭 사이에 존재하는 레코드. 1개 이상의 논리 레코드 집합

- IBG (Inter Block Gap) : 블록과 블록 사이의 갭

- 블록 팩터 = 블록 크기 / 논리 레코드 크기

기출) 자기 테이프 Record 크기가 80자로 Block 크기가 2400자일 경우 블록 팩터는? 30

 블록팩터 = 블록 크기 / 레코드 크기 = 2400 / 80 = 30

자기 테이프와 관계있는 것: Magnetic Head, Parity Bit, Protect Ring

스테이징(Staging) : 

- 자기테이프 같은 대용량 보조기억장치 내용을 직접 접근이 가능한 영역으로 이동하여 컴퓨터시스템에서 자료를 접근할 수 있도록 하는 기능. 

- 가상기억체제에서 보조기억장치에 저장된 프로그램을 주기억장치로 옮기는 것처럼 느린 장치에서 빠른 장치로 옮기는 것, 

- 가상기억체제에서 페이지 부재(Page Fault)가 발생하면 희생 페이지를 결정해서 보조기억장치를 이전 위치에 기억시키고 새로운 페이지를 희생 페이지가 있던 곳에 위치시키는 것

2) 자기 드럼 (Magnetic Drum)

- 원통 표면에 Track과 Sector를 구성하고 각 Track마다 고정된 R/W Head를 두고 있음.

- 자기 디스크보단 빠름

이하 생략

3) 자기 디스크 (Magnetic Disk)

- 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억 매체

- 용량이 크고 접근 속도가 빠름

- 자기 디스크 구성 요소 : 읽고 쓰기 헤드(R/W Head), 디스크(Disk), 액세스 암(Access Arm) 

※ 실린더는 물리적 요소가 아니라 논리적 요소이므로 구성 요소에 포함 안됨!

자기 디스크 Acess Time  = Seek Time + Rotational Delay Time + Transmission Time

액세스 타임 = 탐색 시간 + 회전 지연 시간 + 전송 시간

디스켓 용량 = 면수 x 트랙수 x 섹터수 x 섹터당 바이트 수

이하 생략 

등각속도 : 디스크 저장 매체에서 디스크 회전 속도를 일정하게 하고 디스크의 회전각에 따라 데이터를 저장하는 방식

5.4 특수기억장치

(1) 연관기억장치 (Associative Memory) = CAM (Content Addressable Memory)

- 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고 기억된 내용의 일부를 이용하여 Access 할 수 있는 기억장치

- 기억된 정보의 일부분을 이용하여 원하는 정보가 기억된 위치를 알아낸 후 그 위치에서 나머지 정보에 접근하는 기억장치

연관기억장치의 특징

- 주소에 의해서만 접근이 가능한 기억장치보다 정보 검색이 빠름

- 캐시메모리나 가상메모리 관리기법에서 사용하는 Mapping Table에 사용됨

- 외부 인자와 내용을 비교하기 위한 병렬 판독 논리회로를 갖고 있기 때문에 하드웨어 비용 증가

- 메모리 내용으로 접근(aceess)할 수 있는 메모리

- 기억된 정보 일부를 이용하여 원하는 정보가 기억된 위치를 알아낸 후 나머지 정보에 접근함

- 기억된 여러개의 자료 중에서 주어진 특성을 가진 자료를 신속히 찾을 수 있음

- 비파괴적으로 읽을 수 있어야 함

Mapping Table : 메모리 계층 시스템에서 보조기억장치의 내용을 주기억장치로 옮기는 데 필요한 것

대응관계를 테이블로 표현하여 임의의 정보를 그에 대응하는 정보로 변환하는 것

연관기억장치에 사용되는 기본 요소 : 일치 지시기, 마스크 레지스터, 검색 데이터 레지스터

(2) 복수모듈 기억장치

메모리 인터리빙 (Memory Interleaving) 

여러개의 독립된 모듈로 이루어진 복수모듈 메모리와 CPU간의 주소 버스가 한 개로만 구성되어 있으면 같은 시각에 cpu로부터 여러 모듈들로 동시에 주소를 전달할 수 없기 때문에 cpu가 각 모듈로 전송할 주소를 교대로 배치한 후 차례대로 전송하여 여러 모듈을 병행접근하는 기법

- CPU가 버스를 통해 주소를 전달하는 속도는 빠르지만 메모리 모듈 처리속도가 느리기 때문에 병행접근이 가능

- 기억장치의 접근시간을 효율적으로 높일 수 있음

- 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용

- 각 모듈을 번갈아가며 Access 할 수 있음

- 중앙처리장치와 기억장치 사이에 실질적인 대역폭(bandwidth)을 늘리기 위한 방법

메모리 인터리빙 사용목적: 메모리 엑세스 효율 증대

(3) 캐시메모리

- CPU의 처리속도와 주기억장치의 접근속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory

- 중앙처리장치 CPU와 주기억장치 memory의 속도차가 클 때 명령어 instruction의 수행속도를 cpu 속도와 비슷하도록 사용하는 메모리

- 성능 향상을 위해 주기억장치와 CPU 레지스터 사이에서 데이터를 이동시키는 중간 buffer로 작용하는 기억장치

특징 : 주기억장치와 CPU 사이에 위치하여 buffer 기능 수행. 캐시를 사용하면  주기억장치 접근횟수를 줄여 처리속도 향상, 수십Kb~수백Kb사용

고려사항 : Cache Size, 전송 Blcok Size, 교체 알고리즘

매핑 프로세스 : 주기억장치에서 캐시메모리로 데이터를 전송하는 방법. Direct MappingAssociative Mapping, Set Associative Mapping

(4) 가상기억장치

1) 특징 : 주기억장치를 확장한 것 같은 효과, 실제로는 보조기억장치 사용, 프로그램 크기 제한없이 실행 가능, 컴퓨터 속도와 무관, 주소공간 확대가 가장 큰 목적, 보조기억장치는 DASD라야 함, 가상기억공간 구성은 프로그램이 수행, 자기디스크 주로 사용, 보조기억장치 접근이 자주 발생하면 컴퓨터 시스템 처리 효율 저하, 주기억장치와 보조기억장치가 계층기억체제를 이룸, 하드웨어가 아니라 소프트웨어가 실현.

2) 기억장치 관리전략

반입(Fetch) 전략 : 보조기억장치 데이터를 언제 주기억장치로 적재할 지 결정 (요구반입, 예상반입)

배치(Placement) 전략 : 새로 반입되는 데이터를 어디에 위치할 지 결정 (최초적합, 최적적합, 최악적합)

교체(Replacement) 전략 : 주기억장치 영역 모두 사용중일 때 어느것을 뺄 지 결정 FIFO, OPT, LRU, NUR, LFU, MFU

3) 가상기억장치 관리기법 : Paging 기법, Segment 기법, 주소 매핑, 매핑

페이징(Paging) 기법 : 가상기억장치를 고정길이의 페이지로 구분하고 페이지를 하나의 단위로 주기억장치에 설치하고 주소 변환. OS가 보조기억장치의 프로그램을 동일한 크기의 블록으로 나눠 관리하는 기법

기출) 64K 주소공간, 4K 기억공간 컴퓨터가 한 페이지 512 워드라면 페이지와 블록수는? 128 페이지, 8블록

- 페이지는 주소공간, 블록은 기억공간 용어. 주소공간 / 페이지 = 64K / 512 = 2^16 / 2^9 = 2^7 = 128 페이지

- 기억공간 4K, 블록수는 4K / 512 = 2^12 / 2^ 9 = 2^3 = 8 블록

세그먼트(Segment) 기법 : 가상기억장치를 논리적으로 하나의 단위가 되는 가변길이의 세그먼트로 구분하고, 이런 세그먼트를 하나의 단위로 주기억장치에 설치하고 주소 변환.

- 일반적으로 하나의 세그먼트는 독립적으로 구성되는 하나의 모듈이나 하나의 자구조로 구성됨. 

- 사용자가 보조기억장치에 있는 프로그램을 가변적 크기의 블록으로 나눠서 관리하는 기법

주소매핑(주소변환) : 가상주소를 실기억주소로 변환하는 작업. 보조기억장치에 보관중이던 프로그램을 실행위해 각 Page를 주기억장치에 Load해도 프로그램을 구성하는 주소는 가상주소로 남아있으므로 CPU에서 주기억장치를 액세스 위하여 가상주소를 실주소로 변환해야 한다.

매핑(Mapping) : 가상기억장치에서 주기억장치로 자료의 페이지를 옮길 때 주소를 조정해주는 것

DMA : 기억장치와 주변장치 사이의 직접적인 데이터 전송을 제공

MAR : 기억장치 주소값을 가지고 있는 레지스터

MBR : 기억장치에서 읽거나 쓰기 위한 데이터를 기억하는 레지스터

전자계산기 주소설계 고려사항 : 주소를 효율적으로, 사용자가 편리하도록, 주소공간과 기억공간 독립