5.1 기억장치 시스템의 특성들

-액세스 : CPU가 어떤 정보를 기억장치에 쓰거나 기억장치로부터 읽는 동작.

 *기억장치의 엑세스 유형들
 -순차적 액세스 : 기억장치에 저장된 정보들을 처음부터 순서대로 액세스한다.
 -직접 액세스 : 읽기/쓰기 메카니즘이 각 레코드나 블록의 근처로 직접 이동한 후에 순차적 검색을 통하여 최종 위치에 도달한다.
 -임의 액세스 : 기억장치 내의 모든 저장 위치들이 고유의 주소를 가지고 있어서 별도의 읽기/쓰기 메카니즘을 가지고 있다.
 -연관 액세스 : 각 기억장소에 키값에 해당하는 비트들과 데이터가 함께 저장되어 있어서 액세스 요구에 포함되어 있는 비트 패턴과 기억장소의 키 비트를 비교하여 일치하는 기억장소의 데이터가 읽혀진다.(특수한 용도로만 사용)


 *기억장치 시스템을 설계하는 데 있어서 고려해야 할 주요 특성 : 용량, 액세스 속도

 1. 용량
-기억장치에서 용량을 나타내는 단위 : 바이트 또는 단어(=CPU가 내부 연산에서 한 번에 처리할 수 있는 데이터 비트의 수)
-전송 단위 : CPU가 한 번의 기억장치 액세스에 의하여 읽거나 쓸 수 있는 비트 수.
-내부 기억장치에서는 전송 단위가 기억장치 모듈로 들어가고 나오는 데이터 선들의 수(버스의 폭)와 같다.
-주소 지정 단위는 보통 워드이지만 더 작은 바이트 단위를 사용하는 경우도 있음.

 2. 액세스 속도
-액세스 시간 : 주소와 읽기/쓰기 신호가 기억장치에 도착하는 순간부터 데이터가 저장되거나 읽혀지는 동작이 완료되는 순간까지의 시간.
-사이클 시간 : 액세스 시간과 데이터 복원 시간을 합친 시간. 데이터를 읽은 후에 내용이 지워지는 기억장치에만 해당한다.
-데이터 전송률 : 기억장치로부터 읽혀지거나 쓰여질수 있는 초당 비트 수를 말한다. 액세스 시간의 역수에 한번에 읽혀지는 데이터 비트 수를 곱해서 구한다.


 *기억장치의 유형
1. 물리적인 재료에 의한 분류 : 반도체 기억장치, 자기-표면 기억장치
2. 데이터를 저장하는 성질에 이ㅡ한 분류 : 휘발성 기억장치, 비 휘발성 기억장치.


5.2 기억장치 계층

-컴퓨터 기억장치 설계에 있어서 가장 중요한 요소들 : 용량, 속도, 가격
 
 *특성들 간의 상관관계
-액세스 속도가 높아질수록, 비트 당 가격도 높아진다.
-용량이 커질수록, 비트당 가격은 낮아진다.
-용량이 커질수록, 액세스 속도는 낮아진다.

-위와 같은 어려움을 해결하기 위하여 여러 종류의 기억장치들을 이용하여 계층적 기억장치 시스템을 구성한다.

-계층적 구조에서는 하위 레벨로 갈수록 비트당 가격이 감소, 용량 증가, 접근 시간이 증가, 접근빈도가 감소한다.

 *성능 향상
-적중률 : 접근하고자 하는 데이터가 그 레벨에 있을 확률.
- 1레벨의 접근 시간 T1, 2레벨의 접근시간 T2, 첫 레벨의 적중률이 H이면, 평균접근시간 T는 다음과 같다.
 T = H * T1 + (1-H)*(T1+T2) = T1 + (1-H)*T2
- 적중률이 100%에 가까워질수록 평균접근시간은 1레벨의 접근시간에 가까워진다.

-캐쉬 기억장치 : 주기억장치와 CPU의 속도차이로 인한 성능저하를 줄이기 위해 설치하는 고속의 반도체 기억장치

-참조의 지역성 : 기억장치의 액세스가 몇몇 특정 영역에 집중되는 현상
-프로그램이 실행되는 동안에 일반적으로 지역성의 원리에 의하여 첫 번째 계층의 기억장치에 대한 액세스 횟수가 두번째 계층의 기억장치에 대한 액세스보다 훨씬 더 많음
-지역성의 원리가 적용되면 높은 성능 향상을 얻을 수 있음.



5.3 반도체 기억장치

- 반도체 기억장치의 기본 요소는 기억장치 셀(memory cell)
 * 셀의 특징
-두 개의 안정된 상태(Write,Read)를 가진다.
-상태를 설정할 수 있다.
-현재 상태를 감지할 수 있다.
-선택,제어,입출력 단자를 가지고 있다.


5.3.1 RAM

-RAM(Random  Access Memory) : 임의 액세스 방식을 이용하는 반도체 집적회로 기억장치.
-칩 내의 어느 위치에 있든, 액세스에 걸리는 시간이 같다.
-데이터를 읽는 것과 쓰는 것이 모두 가능하다.
-휘발성(volatile)이다. 즉, 전원 공급이 중단되면 데이터가 소실된다. 따라서 일시적 저장장치로 사용된다.
-칩 선택(CS), 읽기(RD), 쓰기(WR) 신호들과 주소 버스(AD0~9)와 데이터버스가 있다.

-RAM은 제조기술에 따라 DRAM과 SRAM으로 분류된다.
-DRAM(Dynamic RAM) : capacitor에 전하를 충전하는 방식으로 데이터를 저장하는 기억 소자들로 이루어져 있다. capacitor가 방전하는 성질이 있기 때문에 주기적으로 재충전이 필요하다. 
-SRAM(Static RAM) : 기억소자로서 플립-플럽을 이용한다. 재충전이 필요없다. 

-DRAM의 소자가 SRAM의 소자보다 더 작다. 따라서 단위 면적당 더 많은 소자들을 집적시킬 수 있으므로 밀도가 더 높고, 같은 용량의 SRAM보다 가격이 싸다. 다만 재충전시간이 필요하기 때문에 약간 느리다.
-DRAM은 용량이 큰 주기억장치로 많이 사용되고, SRAM은 높은 속도가 필요한 캐쉬 기억장치로 사용된다.

 * 기억장치 설계
-예) 16Mbit DRAM 칩의 조직
1M X 16 비트로 구성 : 1M개의 16비트 워드로 구성. 하나의 칩으로 16비트 처리 가능. 1M개의 칩으로 구성.
4M X 4 비트로 구성 : 4M개의 4비트 워드로 구성. 하나의 칩으로 4비트 처리 가능. 4M개의 칩으로 구성.
16M X 1 비트로 구성 : 16M개의 1비트 워드로 구성. 하나의 칩으로 1비트 처리 가능. 16M개의 칩으로 구성.

-1K개의 칩은 10비트의 주소버스 필요.(1M개의 칩은 20비트)


5.3.2 ROM

-ROM(Read Only Memory) : 영구 저장이 가능한 반도체 기억장치. 읽는 것만 가능하고 쓰는 것은 불가능하다. 
-시스템 초기화 프로그램, 진단 프로그램, 자주 사용되는 함수들을 위한 서브루틴들, 제어 유니트의 마이크로 프로그램등에 사용된다.

-PROM(Programmable ROM) : 제조과정에서 기록하지 않고 나중에 전자적으로 기록한다. ROM보다 저렴하다.
-EPROM(Erasable Programmable ROM) : 쓰기 연산을 수행하기 전에 자외선을 이용하여 데이터를 전부 지우는 과정이 필요하다. PROM보다 비싸다.
-EEPROM(Electrically Erasable ROM) : 쓰기 전에 데이터를 지울 필요가 없다. 바이트 단위의 쓰기가 가능하다. 쓰기 연상에 많은 비용이 소요된다. 가격이 더 비싸다.
-플래쉬 기억장치 : 가격과 기능면에서 EPROM과 EEPROM의 중간 정도. 쓰기 전에 기존 데이터를 지워야 하지만 EPROM보다 훨씬 빠르게 지울 수 있다. 블럭 단위로 지우고 쓸 수 있다. 집적 밀도가 높다.


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

4. 제어 유니트  (3) 2010.04.29

4.1 제어 유니트의 기능

명령어 코드의 해독
명령어 실행에 필요한 제어 신호들의 발생
 
즉, 제어 유니트명령어 사이클이 적절히 수행되도록 모든 동작들을 제어하는 장치이다.

-마이크로 명령어 : 각 마이크로 연산을 실제로 수행하기 위해서 2진 비트들로 표현한 것
-마이크로 프로그램 : 일련의 마이크로 명령어들로 구성된 프로그램
-루틴 : 마이크로 명령어들로 구성된 그룹의 단위.


4.2 제어 유니트의 구조

-명령어 해독기(instruction decoder) : IR에서 들어오는 명령어의 연산 코드를 해독하여 해당하는 연산을 수행하기 위한 루틴의 시작 주소를 결정.
-제어 주소 레지스터(control address register, CAR) : 다음에 실행할 마이크로 명령어의 주소를 저장. 제어 기억장치의 특정 위치를 가리킴.
-제어 기억장치(control memory) : 마이크로 프로그램을 저장.
-제어 버퍼 레지스터(control buffer register, CBR) : 제어 기억장치로부터 읽혀진 마이크로 명령어 비트들을 일시적으로 저장. 
-서브루틴 레지스터(subroutine register, SBR) : 서브루틴이 호출되는 경우 현재의 CAR의 내용을 일시적으로 저장.
-순서제어 모듈(sequencing module) : 마이크로 명령어의 실행 순서를 결정하는 회로들의 집합.

*CPU의 명령어 세트의 설계
  1. 명령어의 종류와 비트 패턴을 정의
  2. 그 명령어들의 실행에 필요한 하드웨어를 설계
  3. 각 명령어를 위한 실행 사이클 루틴을 마이크로 프로그래밍.

-명령어의 해독 : 명령어의 연산 코드가 지정하는 연산의 실행 사이클 루틴의 시작 주소를 결정하는 동작.

-사상(mapping)을 이용한 해독 : 명령어의 연산 코드를 특정 비트 패턴과 조합하는 방법.
(사상함수에 연산코드를 입력(또는 대응)시킨 값이 곧 실행 사이클 루틴의 시작 주소가 됨)


4.3 마이크로 명령어의 형식

제어 기억장치에 저장되는 마이크로 명령어 형식의 예

 연산 필드1 연산 필드2  조건 필드  분기 필드  주소 필드 

-연산 필드가 두 개 이므로 두 개의 마이크로 연산들이 동시에 수행될 수 있다.
-조건 필드는 분기에 사용될 조건 플래그를 지정한다.
-분기 필드는 분기의 종류와 다음에 실행할 마이크로 명령어의 주소를 결정하는 방법을 명시한다.
-주소 필드는 분기가 발생하는 경우의 목적지 마이크로 명령어의 주소이다.

 *마이크로 연산들에 대한 2진 코드 및 기호의 예
-연산 필드1
 코드 마이크로연산  기호 
000 None  NOP 
001 MAR <- PC  PCTAR 
010 MAR <- IR(addr)  IRTAR 
011 AC <- AC + MBR ADD 
100  MBR <- M[MBR]  READ 
101  AC <- MBR  BRTAC 
110  IR <- MBR  BRTIR 
111  M[MAR] <- MBR  WRITE 


-연산 필드2
 코드  마이크로 연산 기호 
000  None  NOP 
001  PC <- PC + 1 INCPC 
010 MBR <- AC ACTBR
011  MBR <- PC PCTBR
100  PC <- MBR BRTPC 
101  MAR <- SP SPTAR 
110  AC <- AC - MBR SUB 
111  PC <- IR(addr) IRTPC 

-조건 필드
코드 조건 기호  설명 
00
U
무조건 분기 
01
I 비트 
I
간접 주소지정 
10
AC(S) 
S
누산기(AC)에 저장된 데이터의 부호
11
AC = 0 
Z
AC에 저장된 데이터가 0 

-분기 필드
 코드
기호 
설명 
00 JMP

만약 조건 = 1이면, CAR <- ADF
만약 조건 = 0이면, CAR <- CAR + 1

01 CALL 만약 조건 = 1이면, CAR <- ADF, SBR <- CAR + 1
만약 조건 = 0이면, CAR <- CAR + 1
10 RET CAR <- SBR(서브루틴으로부터의 복귀)
11 MAP

CAR(1) <- 1, CAR(2~5) <- IR(op), CAR(6,7) <- 0
(1XXXX00)



4.4 마이크로 프로그래밍

 *인출 사이클의 마이크로 명령어 루틴

  ORG 0         
FETCH PCTAR U JMP NEXT ; MAR <- PC, 다음 마이크로 명령어 실행
  READ,INCPC U JMP NEXT ; MBR <- M[MAR], PC = PC + 1, 다음 마이크로 명령어 실행
  BRTIR U MAP   ; IR <- MBR, 해당 실행 사이클 루틴으로 분기

 *2진 비트 패턴

주소 마이크로 연산 CD BR ADF
0000000 001 000 00 00 0000001
0000001 100 001 00 00 0000010
0000010 110 000 00 11 0000000



*간접 사이클의 마이크로 명령어 루틴

  ORG 4          
INDRT: IRTAR U JMP NEXT ; MAR <- IR(addr), 다음 마이크로 명령어 실행
  READ U JMP NEXT ; MBR <- M[MAR], 다음 마이크로 명령어 실행
  BRTIR U RET   ; IR(addr) <- MBR, 해당 실행 사이클 루틴으로 분기

 *2진 비트 패턴

주소 마이크로 연산 CD BR ADF
0000100 010 000 00 00 0000101
0000101 100 000 00 00 0000110
0000110 110 000 00 10 0000000

 

*각 명령어에 대한 루틴의 시작 주소 결정(사상 방식)

명령어 연산코드 루틴의 시작 주소
NOP 0000 1000000(=64)
LOAD(I) 0001 1000100(=68)
STORE(I) 0010 1001000(=72)
ADD 0011 1001100(=76)
SUB 0100 1010000(=80)
JUMP 0101 1010100(=84)

 

*각 명령어에 대한 실행 사이클의 마이크로 명령어 루틴

  ORG 64        
NOP: INCPC U JMP FETCH ; PC <- PC + 1
           
  ORG 68        
LOAD: NOP I CALL INDRT ; I = 1이면, 간접 사이클 루틴 호출
  IRTAR U JMP NEXT ; MAR <- IR(addr)
  READ U JMP NEXT ; MBR <- M[MAR]
  BRTAC U JMP FETCH ; AC <- MBR
           
  ORG 72        
STORE: NOP I CALL INDRT ; I = 1이면, 간접 사이클 루틴 호출
  IRTAR U JMP NEXT ; MAR <- IR(addr)
  ACTBR U JMP NEXT ; MBR <- AC
  WRITE U JMP NEXT ; M[MAR] <- MBR
           
  ORG 76        
ADD: IRTAR U JMP NEXT ; MAR <- IR(addr)
  READ U JMP NEXT ; MBR <- M[MAR]
  ADD U JMP NEXT ; AC <- AC + MBR
           
  ORG 80        
SUB: IRTAR U JMP NEXT ; MAR <- IR(addr)
  READ U JMP NEXT ; MBR <- M[MAR]
  SUB U JMP NEXT ; AC <- AC - MBR
           
  ORG 84        
JUMP: IRTPC U JMP FETCH ; PC <- IR(addr)

 


4.5 마이크로 프로그램의 순서 제어

-제어 유니트가 명령어의 실행을 제어한다는 것 -> 제어 기억장치에 저장된 해당 마이크로 명령어들을 순서대로 인출하는 것.


*순서 제어 : 제어 유니트의 기능. 다음에 실행할 마이크로 명령어의 주소를 결정.
 -CAR의 초기 값 = 0
 -MUX 1 : 다음에 실행할 마이크로 명령어의 주소 선택
 -MUX 2 : 조건 플래그를 선택하여 주소 선택 회로로 전송


*수직적 마이크로 프로그래밍(vertical microprogramming)
 -마이크로 명령어의 연산필드에 적은 수의 코드화된 비트들을 포함시킴으로써 마이크로 명령어의 길이를 줄이고, 해독기를 접속하여 제어 신호를 확장하는 방식.
 -장점 : 마이크로 명령어의 길이 감소 -> 제어 기억장치의 용량 감소
 -단점 : 해독 시간만큼의 시간이 지연


*수평적 마이크로 프로그래밍(horizon microprogramming)
 -연산 필드의 각 비트와 제어 신호를 일대일로 대응시켜 사용하는 방식.
 -장점 : 하드웨어가 간단함, 해독에 따른 시간 지연이 없음
 -단점 : 마이크로 명령어의 길이 증가 -> 제어 기억장치의 용량 증가



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

5. 기억장치 - 1  (0) 2010.06.07

+ Recent posts