|
■ 논리 회로 |
|
|
- 컴퓨터를 구성하고 있는 기본 회로 |
|
|
|
- 원하는 기능을 얻기 위하여 여러 개의 기본 논리 소자를 연결 |
|
|
|
- 회로를 조합하는 데 따라서 컴퓨터 설계에 필요한 논리적인 동작을 여러 가지로 수행 가능 |
|
|
|
- 한 개 이상의 입력과 한 개 이상의 출력으로 구성 |
|
|
|
|
|
|
|
|
|
|
4-1-1 부울 대수(boolean algebra) |
|
|
■ 1854년에 조지 부울(George Boole)이 기본적인 원리를 주창 |
|
|
■ 디지탈 컴퓨터에서 필요로 하는 기본적인 함수 |
|
|
■ 논리 대수라고도 함. |
|
|
■ 2 진 변수와 논리 동작을 취급하는 함수 |
|
|
■ 변수는 "0"과 "1"의 두 값 중에 하나를 갖으며 변수 이름은 영문자로 표시 |
|
|
|
■ 부울 대수의 기본 논리 동작 |
|
|
|
- 논리 곱 (AND) |
|
|
|
- 논리 합 (OR) |
|
|
- 논리 부정 (NOT) |
|
|
|
|
|
|
|
※ 진리표 - 가능한 모든 조합의 입력 신호 각각에 대한 출력을 나타내는 표 |
|
|
|
|
변 수 |
함 수 값 |
|
A B |
F = A and B |
F = A or B |
F = not A |
|
0 0 |
0 |
0 |
1 |
|
0 1 |
0 |
1 |
1 |
|
1 0 |
0 |
1 |
0 |
|
1 1 |
1 |
1 |
0 | |
|
|
|
[ 표 ] 진리표
|
|
|
|
■ 논리 기호의 표현 방법 |
|
|
|
AND → · |
|
|
|
OR → + |
|
|
|
NOT → ′ 또는  ̄ |
|
|
|
|
법칙의 종류 |
부울 대수의 기본 정리 |
|
항 등 법 칙 |
A + 0 = A, A + 1 = 1 |
A · 1 = A, A · 0 = 0 |
|
부정의 법 칙 |
(A')' = A |
|
|
동 일 법 칙 |
A + A = A |
A · A = A |
|
가 역 정 리 |
A + A' = 1 |
A · A' = 0 |
|
교 환 법 칙 |
A + B = B + A |
A · B = B · A |
|
결 합 법 칙 |
A + (B + C) = (A + B) + C |
A · (B · C) = (A · B) ·C |
|
분 배 법 칙 |
A · (B + C) = AB + AC |
A + B · C = (A + B) · (A + C) |
|
흡 수 법 칙 |
A + A · B = A |
A · (A + B) = A |
|
드모르간의 정리 |
(A + B)' = A' · B' |
(A · B)' = A' + B' |
[ 표 ] 부울 대수의 기본 정리
|
|
|
|
|
|
|
|
4-1-2 논리 함수 표현과 논리 함수의 간략화 |
|
|
|
(1) 논리 함수의 표현 |
|
|
|
■ 최소항(minterm) 또는 표준곱(standard product) |
|
|
|
- n개의 변수가 주어졌을 때 AND 연산으로 결합되는 각 항 |
|
|
|
- n개의 변수는 2n개의 가능한 최소항의 조합을 구성 |
|
|
|
- 두 개의 2진 변수 x, y가 있을 경우 의 4개의 최소항이 존재한다. |
|
|
|
■ 최대항(maxterm) 또는 표준합(standard sum) |
|
|
|
- n개의 변수가 주어졌을 때 OR 연산으로 결합되는 각 항 |
|
|
|
- n개의 변수는 2n개의 가능한 최대항의 조합을 구성 |
|
|
|
|
x y z |
최소항 |
최대항 |
|
항 |
표현 |
항 |
표현 |
|
0 0 0 |
|
m0 |
|
m0 |
|
0 0 1 |
|
m1 |
|
m1 |
|
0 1 0 |
|
m2 |
|
m2 |
|
0 1 1 |
|
m3 |
|
m3 |
|
1 0 0 |
|
m4 |
|
m4 |
|
1 0 1 |
|
m5 |
|
m5 |
|
1 1 0 |
|
m6 |
|
m6 |
|
1 1 1 |
|
m7 |
|
m7 |
[ 표 ] 3 변수일 경우 최소항과 최대항의 예
|
|
|
|
■ 논리함수의 표현 |
|
|
|
논리함수는 다음과 같은 2가지 방법 중의 하나로 표현 가능하다. |
|
|
|
- 진리표에서 함수 값이 1이 되는 최소항들을 모두 찾아서 이들을 OR 연산으로 묶음. |
|
|
|
- 진리표에서 함수 값이 0 인 최대항들을 모두 찾아서 이들을 AND 연산으로 묶음. |
|
|
|
|
x y z |
f1 |
|
0 0 0 |
0 |
|
0 0 1 |
1 |
|
0 1 0 |
0 |
|
0 1 1 |
0 |
|
1 0 0 |
1 |
|
1 0 1 |
0 |
|
1 1 0 |
1 |
|
1 1 1 |
1 |
[ 표 ] 논리 함수 표현의 예
|
|
|
|
|
|
|
|
■ 최소항의 OR로 표현하는 방법 |
|
|
|
 |
|
|
|
또는 |
|
|
|
F (x, y, z) = ∑( 1, 4, 7 ) |
|
|
|
■ 최대항의 AND로 표현하는 방법 |
|
|
|
|
|
|
|
또는 |
|
|
|
F (x, y, z) = ∏ (0, 2, 3, 5, 6) |
|
|
|
(2) 논리 함수의 간략화 |
|
|
|
가. 간략화 방법. |
|
|
|
■ 부울 대수의 기본 정리를 이용하는 방법 |
|
|
|
■ 카르노맵(Karnaugh map) 방법 |
|
|
|
- 간소화를 위해 체계적으로 연구된 방법 |
|
|
|
나. 카르노 맵 |
|
|
|
■ 구성형태 |
|
|
|
- 변수가 개수가 n일 경우 2n 개의 사각형들로 구성 |
|
|
|
- 각각의 사각형들은 하나의 최소항을 나타냄 |
|
|
|
① 2 변수의 카르노 맵 : 최소항이 4 개이므로, 카르노 맵에 나타내기 위해서는 4 개의 칸이 필요 |
|
|
|
|
y x |
0 |
1 |
|
0 |
m0 x'y' |
m1 x'y |
|
1 |
m2 xy' |
m3 xy | |
|
x y |
최소항 |
기호 |
|
0 0 |
x'y' |
m0 |
|
0 1 |
x'y |
m1 |
|
1 0 |
xy' |
m2 |
|
1 1 |
xy |
m3 | |
|
|
|
(a) 2변수 카르노 맵 |
(b) 진리표 |
|
|
|
② 3 변수의 카르노 맵
|
|
|
|
- 최소항의 개수가 8개이므로, 카르노 맵에 나타내기 위해서는 8 개의 칸이 필요 |
|
|
|
- 변수 x, y, z는 카르노 맵에 나타낼 때 열과 행 중 어느 한 쪽에는 두 개의 변수를 표시하고 다른 쪽에는 한 변 수만 표시 |
|
|
|
|
x yz |
00 |
01 |
00 |
10 |
|
0 |
m0 x'y'z' |
m1 x'y'z |
m3 x'yz |
m2 x'yz' |
|
1 |
m4 xy'z' |
m5 xy'z |
m7 xyz |
m6 xyz' | |
|
|
|
(a) 3변수 카르노 맵
|
|
|
|
|
x y z |
최소항 |
기호 |
|
0 0 0 |
x'y'z' |
m0 |
|
0 0 1 |
x'y'z |
m1 |
|
0 1 0 |
x'yz' |
m2 |
|
0 1 1 |
x'yz |
m3 |
|
1 0 1 |
xy'z |
m4 |
|
1 1 0 |
xyz |
m5 |
|
1 1 1 |
xyz |
m6 | |
|
|
|
(b) 진리표
|
|
|
|
③ 4 변수의 카르노 맵 |
|
|
|
- 최소항의 개수가 16개이므로, 카르노 맵에 나타내기 위해서는 16개의 칸이 필요 |
|
|
|
- 변수 w, x, y, z는 카르노 맵에 나타낼 때 열과 행 중 어느 쪽이든 두 개의 변수를 표시 |
|
|
|
|
wx yz |
0 0 |
0 1 |
1 1 |
1 0 |
|
0 0 |
m0 w'x'y'z' |
m1 w'x'y'z |
m3 w'x'yz |
m2 w'x'yz' |
|
0 1 |
m4 w'xy'z' |
m5 w'xy'z |
m7 w'xyz |
m6 w'xyz' |
|
1 1 |
m12 wxy'z' |
m13 wxy'z |
m15 wxyz |
m14 wxyz' |
|
1 0 |
m8 wx'y'z' |
m9 wx'y'z |
m11 wx'yz |
m10 wx'yz' | |
|
|
|
(a) 4변수 카르노 맵 |
|
|
|
|
w x y z |
최소항 |
기 호 |
|
0 0 0 0 |
w'x'y'z' |
m0 |
|
0 0 0 1 |
w'x'y'z |
m1 |
|
0 0 1 0 |
w'x'yz' |
m2 |
|
0 0 1 1 |
w'x'yz |
m3 |
|
0 1 0 0 |
w'xy'z' |
m4 |
|
0 1 0 1 |
w'xy'z |
m5 |
|
0 1 1 0 |
w'xyz' |
m6 |
|
0 1 1 1 |
w'xyz |
m7 |
|
1 0 0 0 |
wx'y'z' |
m8 |
|
1 0 0 1 |
wx'y'z |
m9 |
|
1 0 1 0 |
wx'yz' |
m10 |
|
1 0 1 1 |
wx'yz |
m11 |
|
1 1 0 0 |
wxy'z' |
m12 |
|
1 1 0 1 |
wxy'z |
m13 |
|
1 1 1 0 |
wxyz' |
m14 |
|
1 1 1 1 |
wxyz |
m15 | |
|
|
|
(b) 진리표 |
|
|
|
카르노 맵의 작성 방법 |
|
|
|
- 함수를 구성하는 최소항이 표시되는 칸에 "1"을 표시하고 다음과 같이 한다. |
|
|
|
① 4 변수의 경우 |
|
|
|
"1"이 표시된 8개 의 인접된 칸은 일괄하여 1개의 변수항으로 표시 |
|
|
|
"1"이 표시된 4개의 인접된 칸은 일괄하여 2개의 변수항으로 표시 |
|
|
|
"1"이 표시된 2개의 인접된 칸은 일괄하여 3개의 변수항으로 표시 |
|
|
|
② 3 변수의 경우 |
|
|
|
"1"이 표시된 40개의 인접된 칸은 일괄하여 1개의 변수항으로 표시 |
|
|
|
"1"이 표시된 2개의 인접된 칸은 일괄하여 2개의 변수항으로 표시 |
|
|
|
"1"이 단독으로 떨어진 칸에 표시되어 있으면 3개의 변수항으로 표시 |
|
|
|
③ 2 변수의 경우 |
|
|
|
"1"이 표시된 2개의 인접된 칸은 일괄하여 1개의 변수항으로 표시 |
|
|
|
"1"이 단독으로 떨어진 칸에 표시되어 있으면 2개의 변수항으로 표시 |
|
|
|
[ 예 ] 카르노 맵을 이용한 논리함수의 간략화 |
|
|
|
|
x y |
F |
|
0 0 |
0 |
|
0 1 |
1 |
|
1 0 |
0 |
|
1 1 |
1 | |
|
|
|
[ 풀이 ] |
|
|
|
|
|
|
|
F = y |
|
|
|
[ 예 ] 카르노 맵을 이용한 논리함수의 간략화 |
|
|
|
|
x y z |
F |
|
0 0 0 |
0 |
|
0 0 1 |
0 |
|
0 1 0 |
0 |
|
0 1 1 |
1 |
|
1 0 0 |
1 |
|
1 0 1 |
0 |
|
1 1 0 |
1 |
|
1 1 1 |
1 | |
|
|
|
[ 풀이 ] |
|
|
|
|
x yz |
0 0 |
0 1 |
0 1 |
1 0 |
|
0 |
|
|
1 |
|
|
1 |
1 |
|
1 |
1 | |
|
|
|
F = yz + x |
|
|
|
[ 예 ] 카르노 맵을 이용한 논리함수의 간략화 |
|
|
|
|
w x y z |
F |
|
0 0 0 0 |
1 |
|
0 0 0 1 |
1 |
|
0 0 1 0 |
1 |
|
0 0 1 1 |
0 |
|
0 1 0 0 |
1 |
|
0 1 0 1 |
1 |
|
0 1 1 0 |
1 |
|
0 1 1 1 |
0 |
|
1 0 0 0 |
1 |
|
1 0 0 1 |
1 |
|
1 0 1 0 |
0 |
|
1 0 1 1 |
0 |
|
1 1 0 0 |
1 |
|
1 1 0 1 |
1 |
|
1 1 1 0 |
1 |
|
1 1 1 1 |
0 | |
|
|
|
[ 풀이 ] |
|
|
|

|
|
|
|

|
|
|
|
4-1-3 기본 논리 회로 |
|
|
|
(1) 컴퓨터에 사용되는 기본 논리 회로 |
|
|
|
■ 게이트 |
|
|
|
- 논리 회로를 구현하는데 기본적으로 사용되는 요소로서 2진 정보만 다루는 회로 |
|
|
|
- 게이트는 내부 회로의 구성에 따라 논리 기능이 다른 여러 가지 종류가 있다. |
|
|
|
- 게이트의 기능은 진리표로 설명 |
|
|
|
|
|
|
|
|
게이트 명칭 |
게이트 기호 |
논리 대수 |
진리표 |
|
AND |
|
F = A · B |
|
|
OR |
|
F = A + B |
|
|
Inverter |
|
F = A |
|
|
Buffer |
|
F = A |
|
|
NAND |
|
F = (A·B) |
|
|
NOR |
|
F = (A + B) |
|
|
Exclusive-OR (XOR) |
|
F = (A B) = A B + AB |
|
|
Exclusive-NOR (XNOR) |
|
F = A B = A B +AB |
| |
|
|
|
[표] 논리 게이트의 종류
|
|
|
|
여러 가지 게이트들이 있지만 가장 많이 사용되는 것은 NAND와 NOR로서 이들만 있으면 모든 회로를 구현할 수 있다.
|
4 -2 조합 논리 회로 |
|
|
|
|
|
■ 조합 논리 회로 - 출력이 입력에 의해서만 정해지는 회로 ■ 조합논리회로의 예 - 가산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서 |
|
|
|
|
|
|
|
[그림] 조합 논리 회로의 블록도
|
|
|
|
4-2-1 가산기(adder) |
|
|
(1) 반가산기(half adder) |
|
|
■ 자리올림은 고려하지 않고 두 비트 A, B만을 입력으로 받아서 출력에 그의 합 S와 자리올림 수 Co를 각각 1 비트 씩 출력하는 회로 |
|
|
|
|
|
|
입 력 |
합 |
자리올림 |
|
A B |
S = A + B |
C0 = A·B |
|
0 0 |
0 |
0 |
|
0 1 |
1 |
0 |
|
1 0 |
1 |
0 |
|
1 1 |
0 |
1 | |
|
|
[표] 반가산기 진리표 | |
|
|
|
|
|
|
■ 논리식 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(a) 반가산기 논리 회로 |
(b) 반가산기 블록도 | |
|
|
|
|
|
|
|
|
(2) 전가산기(full adder) |
|
|
|
자리올림수를 고려한 가산회로 |
|
|
|
즉 입력으로 A(더해지는 수), B(더하는 수), Ci(아랫자리에서의 자리올림)의 3 비트를 받아들여 3 입력의 합 S와 윗 자리로 올라갈 자리올림(carry-out) Co를 각각 1 비트씩 출력한다. |
|
|
|
|
|
|
입력 |
합 |
자리올림 |
|
A B Ci |
S=(A B) Ci |
C0=(A B)Ci+A B |
|
0 0 0 |
0 |
0 |
|
0 0 1 |
1 |
0 |
|
0 1 0 |
1 |
0 |
|
0 1 1 |
0 |
1 |
|
1 0 0 |
1 |
0 |
|
1 0 1 |
0 |
1 |
|
1 1 0 |
0 |
1 |
|
1 1 1 |
1 |
1 | |
|
(a) 반가산기 논리 회로 |
[표] 전가산기 진리표 |
|
|
| |
■ 논리식 |
|
|
|
 |
|
|
|
|
|
|
|
(a) 전가산기 논리 회로 |
(b) 전가산기 블록도 |
|
|
|
|
(3) 2진 병렬 가산기(parallel adder)와 직렬 가산기(serial adder) |
|
|
|
① 병렬가산기 |
|
|
|
- 여러 개의 자릿수로 구성된 2 진수를 더하는 경우 2개의 같은 자릿수끼리 동시에 더하고 여기서 생기는 자리 올 림수를 다음 단 전가산기에 연결하는 방식 |
|
|
|
- n 비트 2 진수의 덧셈을 하는 2진 병렬 가산기는 1개의 반가산기와 n-1개의 전가산기가 필요 |
|
|
|
- 계산 시간이 빠르나 더하는 비트 수만큼 전가산기가 필요하므로 회로가 복잡하다 |
|
|
|
|
|
|
|
 [그림] 2 진 병렬 가산기
|
|
|
|
② 직렬가산기 |
|
|
|
- 더하는 수와 더해지는 수의 비트 쌍들이 직렬로 한 비트씩 전가산기에 전달되어 저장된 자리 올림수와 함께 덧셈 이 수행되어 합과 자리 올림수를 생성하고, 생성된 자리 올림수는 올림수 저장기에 저장되어 다음 자리의 비트와 함께 덧셈을 하는 방식 |
|
|
|
- 1개의 전가산기와 1개의 자리 올림수 저장기가 필요 |
|
|
|
- 회로가 간단하나, 병렬 가산기에 비해 계산 시간이 느리다. |
|
|
|
|
|
|
|
[그림] 2 진 직렬 가산기
|
|
|
|
|
|
|
|
4-2-2 인코더와 디코더 |
|
|
|
(1) 디코더(decoder) |
|
|
|
■ 부호화된 2진 코드를 해독하여 대응하는 하나의 신호를 출력하는 조합 논리회로 |
|
|
|
■ 입력 단자 수가 n 개이라면 출력 단자 수는 2n개(n × 2n 디코더) |
|
|
|
■ ROM, RAM과 같은 기억 장치에서 특정한 번지를 선택한다던가 명령 레지스터에 들어 온 명령을 해독하는 데 사용 |
|
|
|
■ 예) 2 X 4 디코더 |
|
|
|
|
A B |
D0 D1 D2 D3 |
|
0 0 |
1 0 0 0 |
|
0 1 |
0 1 0 0 |
|
1 0 |
0 0 1 0 |
|
1 1 |
0 0 0 1 | |
|
|
[표] 2 × 4 디코더 진리표
|
|
|
위의 진리표에 따른 논리 함수를 구하면 |
|
|
D0 = A'B' , D1 = A'B, D2 = AB' , D3 = AB |
|
|
논리 회로도 |
|
|
|
|
|
(2) 인코더(encoder) |
|
|
■ 외부에서 들어오는 임의의 신호를 부호화된 신호로 변환하여 컴퓨터 내부로 들여보내는 조합논리회로 |
|
|
■ 디코더와 반대 작용을 하는 조합논리 회로 |
|
|
■ 문자, 숫자, 기호 등을 2 진 부호로 변환시킬 때 사용 |
|
|
|
■ 2n 개의 입력과 n개의 출력으로 구성(2n X n 인코더) |
|
|
■ 예) 4X 2 인코더
|
|
|
|
D0 D1 D2 D3 |
A B |
|
1 0 0 0 |
0 0 |
|
0 1 0 0 |
0 1 |
|
0 0 1 0 |
1 0 |
|
0 0 0 1 |
1 1 | |
|
|
[표] 4 × 2 인코더 진리표
|
|
|
논리함수 |
|
|
A = D0'D1'D2 D3' + D0'D1'D2'D3 |
|
|
B = D0'D1D2'D3' + D0'D1'D2'D3 |
|
|
|
|
|
논리 회로도 |
|
|
|
|
|
4-2-3 멀티풀렉서와 디멀티풀렉서 |
|
|
(1) 멀티플렉서(multiplexer : MUX) |
|
|
■ n 개의 선택선 입력으로 2n개의 데이터 입력 중에서 하나를 선택해서 출력선으로 연결하는 조합 논리 회로 |
|
|
■ 예) 4 × 1 멀티플렉서 |
|
|
|
|
|
|
S1 S0 |
F |
|
0 0 |
I0 |
|
0 1 |
I1 |
|
1 0 |
I2 |
|
1 1 |
I3 |
진리표 |
|
|
|
|
|
 논리 회로도
|
|
|
■ 선택선 입력 S0, S1에 의하여 데이터 입력 I0, I1, I2, I3 중에 하나가 선택되어 출력 F에 연결 |
|
|
(2) 디멀티플렉서(demultiplexer : DEMUX) |
|
|
■ n 개의 선택선 입력으로 2n개의 출력선 중에서 하나를 선택해서 하나의 입력선과 연결하는 조합 논리 회로 |
|
|
■ 예) 1 × 4 디멀티플렉서 |
|
|
|
|
|
|
S1 S0 |
F |
|
0 0 |
I0 |
|
0 1 |
I1 |
|
1 0 |
I2 |
|
1 1 |
I3 |
진리표 |
|
|
|
|
|
 논리 회로도
|
|
|
■ S0, S1이 가질 수 있는 어떤 값에 대해 네 개의 AND 게이트 중에 세 개의 AND 게이트 출력은 항상 0 이 됨
|
4 - 3 수치적 연산 |
|
■ 조합 논리 회로 |
|
|
- 출력이 입력에 의해서만 정해지는 회로 |
|
|
■ 조합논리회로의 예 |
|
|
- 가산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서 |
|
|
■ 순서 논리 회로 |
|
|
- 플리플롭(기억회로)과 게이트(조합 논리 회로)들로 구성되며,출력은 외부 입력과 플리플롭의 현재 상태에 의해서 결정되는 논리 회로 |
|
|
|
|
|
[ 그림 ] 순서 노리 회로 블록도 |
|
|
|
|
|
4-3-1 래치(latch)와 플립플롭(flip-flop) |
|
■ 래치와 플립플롭 - 두 개의 안정 상태를 갖는 일종의 기억 회로 |
|
|
■ 안정 상태 - 회로의 외부로부터 입력을 가하지 않는 한 본래의 상태를 유지할 수 있는 상태 |
|
|
|
|
|
|
|
|
[ 그림 ] 플립플롭의 상태 |
|
|
|
|
|
■ 래치나 플립플롭은 정상 출력 와 부정 출력를 가지고 있다. |
|
|
■ 두 가지 안정 상태라고 하는 것은 Q = 1, = 0 인 상태와 Q = 0, = 1인 상태를 말한다. |
|
|
■ 앞의 그림7에서 와 가 모두 0이거나 1이면 이러한 상태는 유지될 수 없고 우리는 이러한 상태를 불안정한 상태라고 한다. |
|
|
■ 래치 - 레벨 트리거(level trigger)에 의해서 동작 따라서 래치는 1-상태인 동안 입력의 변화를 출력에 반영 |
|
|
■ 풀리풀롭 - 에지 트리거(edge trigger)에 의해서 동작 따라서 풀리풀롭은 클럭 펄스가 나타나기 바로 이전의 입력이 출력에 반영되어 다음 클럭 펄스가 나타날 때까지 그 상태를 유지 |
|
|
(1) 비동기식 S-R 래치(latch) |
|
|
■ 비동기 동작 - 입력 신호의 변화가 일어나면 그에 따라 동작을 하는 것을 의미 |
|
|
|
회로도 |
특성표 |
기호 |
|

|
|
S R |
Q |
|
0 0 |
불변 |
|
0 1 |
0(리세트) |
|
1 0 |
1(세트) |
|
1 1 |
금지 입력 | |

| |
|
|
[그림] 비동기식 S-R 래치와 특성표 |
|
|
|
|
|
■ 비동기식 S-R 래치의 동작 |
|
|
- S = R = 0 이면 이전의 상태를 유지 |
|
|
- S = 0, R = 1 이면 Q = 0, = 1(리세트 상태) |
|
|
- S = 1, R = 0 이 되면 Q = 1, = 0(세트 상태) |
|
|
- S = R = 1 이면 Q = = 0 이 되어 래치로서는 무의미하게 되므로 이러한 입력은 금지 |
|
|
■ 풀리풀롭의 상태란 Q 의 상태를 의미 |
|
|
(2) 동기식 S-R 래치와 S-R 풀리풀롭 |
|
|
■ 동기식 풀리풀롭의 필요성 |
|
|
-컴퓨터의 기억 소자에 비동기식 풀리풀롭을 사용한다면 시스템 내의 모든 풀리풀롭이 제각기 비동기적으로 동작하 게 되므로 시스템의 제어 및 조작이 복잡하게 된다. |
|
|
-복잡성을 해소하기 위해서 클럭 펄스라는 시간적인 신호를 도입하여 클럭 펄스에 맞추어 시스템 내의 모든 풀리풀롭 이 동시에 상태 변환을 하도록 만든다. |
|
|
■ 동기식 동작 |
|
|
-클럭 펄스에 동기가 되어 동작을 하는 것 |
|
|
■ S-R 래치와 S-R 풀리풀롭의 차이점 |
|
|
-S-R 풀리풀롭은 회로는 S-R 래치와 같지만 동작 특성이 S-R 래치와는 달리 클럭 펄스가 상승 또는 하강할 때만 입 력 신호가 출력에 반영되어 다음 클럭 펄스가 나타날 때가지 그 상태를 유지 |
|
|
|
|
|
|
회로도 |
특성표 |
기호 |
|

|
|
CP S R |
Q |
|
0 × × |
불변 |
|
1 0 0 |
불변 |
|
1 0 1 |
0(리세트) |
|
1 1 0 |
1(세트) |
|
1 1 1 |
금지 입력 | |

| |
|
|
[그림] 동기식 S-R 래치와 특성표 |
|
|
|
|
|
(3) D 래치와 D 풀리풀롭 |
|
|
■ 동기식 S-R 래치에서 S입력의 반전된 것을 R 입력에 가하도록 하여 입력을 하나로 줄인 형태의 회로 |
|
|
■ S 단자와 R 단자에는 동시에 1 인 신호가 나타나지 않도록 한 것이다. |
|
|
|
회로도 |
특성표 |
기호 |
|

|
|

| |
|
|
[ 그림 ] 동기식 D 플리플롭 |
|
|
|
|
|
■ D 래치와 D 풀리풀롭의 차이점 |
|
|
-회로구성은 같으나, D 풀리풀롭은 클럭 펄스가 상승 또는 하강하는 에지 바로 직전의 입력 신호가 출력에 반영되어 다음 클럭 펄스가 나타날 때가지 그 상태를 유지한다. |
|
|
-D 풀리풀롭은 클럭 펄스의 폭이 넓어도 출력의 변화가 없지만 래치는 클럭 펄스의 폭이 넓으면 그 동안에 입력의 변 화가 출력에 나타난다. |
|
|
|
|
|
|
|
|
[그림] D 래치와 D 풀리풀롭의 차이를 설명하는 타이밍 차트 |
|
|
|
|
|
(4) J-K 풀리풀롭 |
|
|
■ 동기식 S-R 래치에서 금지되어 있는 S = R = 1 입력도 안정된 상태로 변천할 수 있도록 만든 회로 |
|
|
■ 입력 단자인 J,K에 동시에 1이 인가되면 출력은 반전된다. |
|
|
|
|
|
|
|
|
회로도 |
특성표 |
기호 |
|

|
|
CP J K |
Q |
|
0 × × |
불변 |
|
↑ 0 0 |
불변 |
|
↑ 0 1 |
0(리세트) |
|
↑ 1 0 |
1(세트) |
|
↑ 1 1 |
(반전) | |

| |
|
|
[그림] J-K 풀리풀롭의 회로도와 특성표 |
|
|
|
|
|
(5) T 풀리풀롭 |
|
|
■ J-K 풀리풀롭의 J, K 두 입력 단자를 묶어서 여기에 T 입력 신호를 가하여 매 클럭 펄스가 들어 올 때마다 출력 Q가 반전하도록 만든 회로 |
|
|
|
(a) 회로도 |
(b) 특성표 |
|

|
| |
|
|
|
|
|
4-3-2 레지스터와 카운터 |
|
|
(1) 레지스터(register) |
|
|
■ 정보를 일시적으로 저장하거나, 입출력 정보를 바꾸거나, 저장된 정보를 다시 꺼내 쓰기 위한 용도로 사용하는 회로 |
|
|
■ n 비트 레지스터는 n 비트의 2 진 정보를 저장하기 위한 n개의 풀리풀롭과 데이터 처리를 위한 조합 논리 회로로 구성 |
|
|
■ 레지스터 예 |
|
|
|
|
|
[그림] 4 비트 레지스터 |
|
|
① 시프트 레지스터(shift register) |
|
|
- 클럭 펄스에 의해 저장된 데이터를 왼쪽 또는 오른쪽으로 한 비트식 시프트하는 레지스터
|
|
|
|
|
|
우측 시프트 레지스터
|
|
|
|
|
|
좌측 시프트 레지스터
|
|
|
[그림] D 풀리풀롭을 이용한 4 비트 시프트 레지스터 |
|
|
② 병렬 전송 레지스터 |
|
|
- 모든 비트를 동시에 입력하고 동시에 출력하는 레지스터 |
|
|
■ D 풀리풀롭을 이용한 4 비트 병렬 전송 레지스터의 예
|
|
|
|
|
|
-입력 데이터는 각 풀리풀롭의 입력 D 단자로 들어가며 출력은 각 풀리풀롭의 출력 Q 단자를 통해서 나온다. |
|
|
-모든 풀리풀롭은 클럭 펄스의 상승 에지에서 동시에 트리거 된다. |
|
|
(2) 카운터(counter) |
|
|
-입력 펄스에 따라서 레지스터의 상태가 미리 정해진 순서대로 변화하는 레지스터 |
|
|
-어떤 사건의 발생 횟수를 세거나 동작 순서를 제어하는 타이밍 신호를 만드는 데 사용 |
|
|
① 비동기형 카운터 |
|
|
- 앞 단 풀리풀롭의 출력이 다음 단 풀리풀롭의 입력이 되는 카운터 |
|
|
- 일반적으로 풀리풀롭을 n 단 접속한 n 단 카운터는 2n 개를 계수할 수 있다. |
|
|
|

|

|
|
( a ) 회로도 |
( b ) 카운터의 출력 파형 |
|
입력펄스 |
21 출력 |
21 출력 |
|
0 |
0 |
0 |
|
1 |
0 |
1 |
|
2 |
1 |
0 |
|
3 |
1 |
1 |
|
4 |
0 |
0 | |

|
|
( C ) 2단 2진 카운터의 계수표 |
( D ) 기호 |
|
|
|
[그림] 기본적인 2단 2진 카운터와 출력 파형 |
|
|
- 클럭 펄스는 하강 에지(↓)에서 트리거되며, 각 클럭 펄스가 첫째 단 입력 T에 가해지고 출력 Q는 다음 단의 입력 T에 가해진다. 매 클럭 펄스가 들어 올 때마다 첫 째 단 출력 Q는 반전하고, 두 번째 단 출력 Q는 첫 째 단 출력이 1이 될 때 반전을 한다. |
|
|
② 동기형 카운터 |
|
|
- 모든 풀리풀롭이 클럭 펄스에 의해 동시에 트리거되는 카운터 |
|
|
■ MOD-8 동기형 2 진 카운터의 예
|
|
|
|
|
|
회로도 |
|
|
|
|
|
카운터의 출력 파형 |
|
|
- 클럭 펄스는 하강 에디지(↓)에서 트리거 된다.
|
|
|
- 클럭 펄스가 인가되면 A 단은 매 클럭 펄스마다 반전되며, B 단은 출력 A가 1(높은 전압 상태)일 때만 클럭 펄스에 의해서 반전되고, C 단은 출력 A와 B 가 모두 1로 될 때 클럭 펄스에 의해 반전된다.
|
|
|
|
|
|
|
■ 기억장치의 구성 |
|
|

|
|
|
|
■ 기억장치에 저장되는 정보의 종류 |
|
|
|
- 프로그램 명령어 |
|
|
|
- 데이터 |
|
|
|
|
|
|
|
|
|
|
5-1 기억 장치 시스템의 개요 |
|
|
5-1-1 컴퓨터 기억 장치의 특성 |
|
|
① 위치 특성 |
|
|
■ 레지스터 |
|
|
- CPU 내부에 위치 |
|
|
- 명령과 데이터를 일시적으로 저장하는 임시 기억 장치 |
|
|
|
■ 주 기억장치 |
|
|
|
- 내부 기억 장치 |
|
|
|
- 프로그램과 데이터를 저장하는 데 사용 |
|
|
■ 보조기억장치 |
|
|
|
- 외부 기억 장치 |
|
|
|
- 중앙 처리 장치에 의해 당장 요구되지 않는 시스템 프로그램, 대용량의 데이터 파일을 저장 |
|
|
|
② 물리적인 유형 특성 |
|
|
|
- 전자적, 자기적, 전자 기계적, 광 등 다양하다. 이 중에서 가장 많이 사용되는 것은 반도체 기억 장치와 자기 매체에 의한 디스크나 테이프이다. |
|
|
|
③ 용량 특성 |
|
|
|
- 주 기억 장치의 용량은 바이트 또는 워드 단위 |
|
|
|
- 보조 기억 장치의 용량은 바이트 단위 |
|
|
|
④ 전송 단위 특성 |
|
|
|
- 기억 장치에서 한번에 쓰고 읽을 수 있는 비트 수 |
|
|
|
- 주 기억 장치의 전송 단위는 워드의 길이와 같은 경우도 있고 그렇지 않은 경우도 있다. |
|
|
|
- 보조 기억 장치는 일반적으로 블록 단위로 전송 |
|
|
|
⑤ 데이터 접근 방식 특성 |
|
|
|
■ 랜덤 접근 방식 |
|
|
|
- RAM과 같이 어느 기억 소자라도 동일한 접근 시간으로 주소 선택이 이루어지는 접근 방식 |
|
|
|
■ 순차 접근 방식 |
|
|
|
- 테이프와 같이 순차적으로 접근하는 방식 |
|
|
|
■ 직접 접근 방식 |
|
|
|
- 자기 디스크와 같이 랜덤 접근 방식과 순차접근 방식이 혼합된 방식으로 접근하는 방식 |
|
|
|
5-1-2 기억 장치의 계층 |
|
|
|
■ 기억장치의 계층구조 |
|
|
|
- 저렴한 가격으로 접근 시간이 빠르고 큰 용량을 갖는 기억 장치를 구성하기 위하여 여러 가지 유형의 기억 장치를 사용하여 기억 장치 계층 구조를 형성 |
|
|
|
|
|
|
|
[그림] 기억 장치의 계층 구조 |
|
|
|
5-1-3 기억 장치의 분류 |
|
|
|
⑴ 위치에 따라서 |
|
|
|
① 외부 기억 장치 |
|
|
|
- 내부 기억 장치의 부족된 용량을 보충해주는 기능(보조 기억 장치,auxiliary memory) |
|
|
|
- 중앙 처리 장치와 직접 정보 교환을 할 수 없고 주 기억 장치를 통해서만 정보 교환이 가능 |
|
|
|
- 동작 속도는 비교적 느리지만 대용량 |
|
|
|
- 컴퓨터 본체로부터 완전히 독립한 제어 장치를 갖고 있고, 본체와 제어 장치는 인터페이스(interface)에 의해서 접속 |
|
|
|
- 자기 디스크, CD-ROM |
|
|
|
② 내부 기억 장치 |
|
|
|
- 주 기억장치를 의미하며, 컴퓨터에 의해서 직접 제어되고, 중앙 처리 장치와 직접 정보 교환을 한다. |
|
|
|
- 고속의 동작 속도 |
|
|
|
⑵ 사용 목적에 따라서 |
|
|
|
① 주 기억 장치 |
|
|
|
② 보조 기억 장치 |
|
|
|
③ 캐시 기억 장치 |
|
|
|
- 버퍼 메모리(buffer memory)라고도 함. |
|
|
|
- 주 기억 장치와 중앙 처리 장치 논리 회로와의 속도 차이를 줄이기 위해서 사용 |
|
|
|
④ 연관 기억 장치 |
|
|
|
- 연관 기억 장치는 기억된 데이터의 일부를 이용하여 원하는 데이터의 위치를 알아낸 후 그 위치에서 나머지 데이터에 접근하는 기억 장치로서 고속으로 탐색이나 갱신 작업을 수행해야 될 데이터를 저장하는 데 응용 |
|
|
|
⑶ 기억방식에 따라서 |
|
|
|
① 정적인 기억장치와 동적인 기억 장치 |
|
|
|
■ 정적인 기억장치(static memory) |
|
|
|
- 일단 기억 장치에 정보를 기억하면 그 상태를 변화시키지 않고 계속해서 보존하는 기억 장치 |
|
|
|
- 자기 드럼, 자기 테이프, 자기 디스크, 그리고 정적인 풀리풀롭 회로 |
|
|
|
■ 동적인 기억 장치(dynamic memory) |
|
|
|
- 정보를 기억하는 데 파동(wave motion) 또는 펄스(pulse)의 반복과 같은 물리적인 변화의 반복 상태를 이용한 기억 방식 |
|
|
|
- 동적인 풀리풀롭 |
|
|
|
② 삭제 가능한 기억 장치와 삭제 불가능한 기억 장치 |
|
|
|
■ 삭제 가능한 기억 장치(erasable memory) |
|
|
|
- 한 번 기억한 내용을 지우고 그 후에 새로운 내용을 빠른 속도로 써넣을 수 있는 기억 장치 |
|
|
|
- RAM, 자기 디스크 |
|
|
|
■ 삭제 불가능한 기억 장치 |
|
|
|
- 한번 기억(제조 공정에서)한 내용을 외부에서 고쳐 쓸 수 없는 기억 방식 |
|
|
|
- ROM(Read Only Memory) |
|
|
|
- 고쳐 쓰기가 필요 없는 프로그램이나 마이크로 프로그램 등에 널리 사용 |
|
|
|
③ 휴발성 기억 장치와 불휴발성 기억 장치 |
|
|
|
■ 휴발성(volatile) 기억 장치 |
|
|
|
- 전원을 절단하면 기억 내용을 잃어버리는 기억장치 |
|
|
|
- RAM |
|
|
|
■ 불휘발성(non volatile) 기억 장치 |
|
|
|
- 전원이 절단되더라도 기억된 내용을 잃어버리지 않는 기억 소자 |
|
|
|
- 자기 디스크, 자기 테이프, 자기 드럼, ROM |
|
5-2 주소 선택 방식 |
|
|
|
|
|
⑴ 선형 주소(linear access) 선택 방식 |
|
|
- 2D 기억 장치라고도 함. |
|
|
- 주소 디코더(address decoder)의 출력이 직접 기억 장소에 대응해서 선택 구동되도록 되어 있다. |
|
|
- 고속 구동이 가능하고, 개념적으로 간단하여 소용량에 적합 |
|
|
- ROM 칩에 주로 사용 |
|
|
- 주변 회로의 비용이 높고, 많은 데이터 선들이 요구된다. |
|
|
|
|
|

|
|
|
|
|
|
⑵ 일치 주소(coincident access) 선택 방식 |
|
|
- 2½D 기억 장치라고도 함 |
|
|
- 주소부를 둘로 나누어서 한쪽을 세로 방향, 다른 쪽을 가로 방향의 주소 디코더로 보낸다. |
|
|
그리고 양쪽 주소 디코더로부터의 선택 구동 출력이 기억 배열(storage array)의 세로 선과 가로 선으로 보내지며, |
|
|
-선택 구동 출력이 도달한 교점에 있는 기억 소자가 일치 구동을 받고, 정보를 판독하거나 기록한다. |
|
|
- 주변 회로의 가격이 낮다. |
|
|
- 기억 소자에 요구되는 특성의 균일성, 구동 조건 등이 엄격하게 되고, 소자의 스위칭 속도를 고속으로 할 수가 없다. |
|
|
- 일반적으로 RAM 칩들은 이 구조로 되어 있으며 정방형의 배열로서 행과 열의 두 그룹으로 되어 나누어져 주소가 지정된다. |
|
|

|
|
|
|
5 - 3 반도체 기억 장치 |
|
|
- 풀리-풀롭(flip-flop) 회로가 기본 논리 소자 |
|
|
- RAM, 시프트 레지스터, 디스플레이 장치, ROM, 연관기억장치등에 사용 |
|
|
|
|
|
5-3-1 반도체 기억 소자와 기술 |
|
(1) RAM(random access memoy)방식 |
|
|
① SRAM(static RAM) |
|
|
- 안정 회로(풀리-풀롭)를 응용한 방식 |
|
|
② DRAM(dynamic RAM) |
|
|
- 캐패시터에 전하를 충전하는 것으로 정보를 기억하는 방식 |
|
|
- SRAM에 비해 더 밀도가 높고 (단위 면적당 셀의 수가 많고) 값이 더 싸다. |
|
|
- 캐패시터에서 미소한 전하 누설(leakage)이 있으므로 일정한 시간마다 재생(refresh)해주어야 하고, SRAM에 비해 속도가 느리다. |
|
|
(2) ROM(read only memory) 방식 |
|
|
- 변경할 수 없는 데이터를 저장하는데 사용 |
|
|
- 고밀도 집적화가 가능 |
|
|
- 문자 발생기, 코드 변환기, 그리고 마이크로 프로그램 등에 응용 |
|
|
- 다음과 같은 내용을 저장하는 데 사용 |
|
|
■ 빈번히 사용되는 함수들을 위한 라이브러리 서브루틴 |
|
|
■ 시스템 프로그램 |
|
|
■ 함수표 |
|
|
- PROM(programmable ROM) |
|
|
■ 기록할 수 있는 ROM |
|
|
■ 한번 기록된 소자는 다시 기록이 불가능 |
|
|
- EPROM(erasable PROM) |
|
|
■ 필요에 응해서 내용을 소거하고 다시 기록할 수 있는 ROM |
|
|
■ 기록 정보를 소거하기 위해서는 자외선 또는 X선을 사용 |
|
|
- EEPROM (electrically EPROM) |
|
|
■ 쓰기 전에 이전의 내용을 지울 필요가 없다. |
|
|
|
|
|
5-3-2 반도체 기억 장치 구성 |
|
|
(1) 기억 소자(memory cell)에 필요한 기능 |
|
|
① 두 개의 안정 상태를 가지는 기능 |
|
|
② 판독 기능 |
|
|
- 선택된 기억 소자에서 기억 장치 외부로 정보를 읽어 내는 기능 |
|
|
③ 기록 기능 |
|
|
- 기억 장치 외부에서 선택된 기억 소자에다 정보를 써넣는 기능 |
|
|
④ 선택 기능 |
|
|
- 주소에 의하여 접근하고자 하는 기억 소자를 선택하는 기능 |
|
|
|
논리 회로도 |
블록도 |
|

|

| |
|
|
[그림] 기억 소자의 개념도 |
|
|
|
|
|
- 앞의 그림은 한 비트만을 저장하는 기억 소자로서 선택 단자가 1인 경우 판독/기록 단자가 1 이면 판독 상태로서 기억 장치의 정보가 출력 단자에 나타나고, 판독/기록 단자가 0 이면 기록 상태로서 입력 단자의 정보가 기억 장 치에 저장된다. |
|
|
- 선택 단자가 0인 경우에는 이 기억 소자는 선택되지 않아 정보를 기억시키거나 기억된 정보를 읽을 수 없다. |
|
|
(2) RAM의 구성 |
|
|
① RAM 칩(chip)의 구성 |
|
|
- 칩의 기본 소자 행렬, 주소 회로, 데이터 읽기/쓰기 회로, 칩 선택 회로 등으로 구성 |
|
|
- 64 X 1 RAM 칩의 예 |
|
|
|
구조 |
블록도 |
|

|

|
|
|
|
[그림] 64 X 1 의 64 비트 RAM 칩 |
|
|
- M × N 칩 |
|
|
■ 1 워드가 N 비트인 M 개의 워드 |
|
|
■ 주소 선의 수를 k라고 하면 M = 2K |
|
|
- 8 ×8 64 비트 RAM 칩의 예 |
|
|
|
구조 |
블록도 |
|

|

|
|
|
|
- 칩 선택(chip select ; CS) 회로 |
|
|
여러 개의 칩을 이용하여 필요로 하는 용량의 기억장치를 구성할 경우 활성되어야 할 칩을 지정하는 회로 |
|
|
② RAM 칩을 이용하여 기억 장치 구성 |
|
|
- 여러 개의 칩으로 기억 장치를 구성할 때 결정해야 할 사항되면 출력은 반전된다. |
|
|
■ 사용할 칩의 구성 형태(M × N) |
|
|
■ 워드당 비트 수(N) |
|
|
■ 필요한 워드 수(M) |
|
|
■ 장래의 확장성 |
|
|
- 워드의 수를 고려하지 않은 상태에서 최소로 필요한 칩의 수는 칩의 수 = (기억 장치의 워드 당 비트 수(N) / 칩의 워드당 비트 수) |
|
|
- 예를 들어 8 × 8 RAM 칩으로 8 × 16 기억 장치를 만든다면 필요한 칩의 수는 16/8 = 2로서 2 개가 된다.
|
|
|
|
|
|
[그림] 8 × 8 RAM 칩으로 만든 8 × 16 기억 장치
|
|
|
- 하나의 칩이 제공할 수 있는 워드의 수 보다 큰 수의 워드를 기억할 수 있는 기억 장치를 만들려면 필요한 칩의 수는 |
|
|
칩의 수 = (기억 장치의 워드 수 / 칩 당 워드 수) |
|
|
- 8 × 8 RAM 칩으로 16 × 16 기억 장치를 만든다면 |
|
|
(16 / 8) + (16 / 8) = 4로서 4개의 칩이 필요
|
|
|

|
|
|
[그림] 8 X 8 RAM 칩으로 만든 16 X 16 기억 장치
|
|
|
③ 주 기억 장치의 주변 회로와 동작 |
|
|

|
|
|
[그림] 기억 장치와 관련된 레지스터 불록도
|
|
|
■ 기억 장치 주소 레지스터(memory address register ; MAR) |
|
|
- 주 기억 장치의 주소 선은 MAR에 연결되어 있고, 주소 신호는 반드시 MAR를 통해서 들어온다. |
|
|
■ 기억 장치 버퍼 레지스터(memory buffer register ; MBR) |
|
|
- 기억 장치의 데이터 선은 MBR에 연결되어 있고, 입력 데이터는 반드시 MBR를 통해서 들어오고, 출력 데이터는 반드시 MBR로부터 외부로 나간다. |
|
|
■ 주기억장치의 읽기 동작 |
|
|
- MAR에 읽고자 하는 워드의 주소를 보낸다. |
|
|
- 읽기 신호를 내보낸다. |
|
|
- MBR에 나타난 데이터를 읽어 간다. |
|
|
■ 쓰기 동작 |
|
|
- MAR에 기억시키고자 하는 워드의 주소를 보낸다. |
|
|
- MBR에 기억시키려는 데이터를 옮긴다. |
|
|
- 쓰기 신호를 내보낸다. |
|
|
(3) ROM 의 구성 |
|
|
- 한 개의 IC 내에 디코더와 OR 게이트가 모두 존재하는 조합 논리 회로로서 읽기만 하는 기억 장치 |
|
|
- 사용자는 ROM 속의 링크(link)들을 끊거나 그대로 두는 마스킹(masking) 과정을 통하여 ROM에 2진 정보를 저장한다. |
|
|
|
|
|

|
|
|
[그림] 2n × mROM의 불록도
|
|
|
- ROM의 내부 구조 예 (32 × 4 ROM) |
|
|

|
|
|
[그림] 32 × 4 ROM의 내부 구조
|
|
|
■ ROM은 디코더와 OR 게이트로 구성 |
|
|
■ OR 게이트의 수는 ROM의 출력선 수와 같다. |
|
|
■ 앞의 그림에서 5개의 입력선은 5 × 32 디코더에 입력되어 32개의 디코더 출력을 만들고, 디코더의 32개 출력은 |
|
|
각 OR 게이트에 링크를 통하여 연결된다. |
|
|
■ 그림에서 각 OR 게이트의 링크는 32개씩이고 이 링크는 저장하고자 하는 2 진 정보의 값에 따라 연결되기도 하고 |
|
|
끊어지기도 한다.
|
5 - 4 내용 주소화 기억 장치(content-adressable memory ; CAM) |
|
|
|
|
|
- 기억된 내용을 이용해서 접근할 수 있는 기억 장치 |
|
|
- 연관 기억 장치(asso- ciative memory)라고도 함. |
|
|
- 주소에 의하여 접근하는 RAM 보다 훨씬 빠르다. |
|
|
- 인자 레지스터(argument register), 키 레지스터(key register), 매치 레지스터(match register) 등으로 구성 |
|
|
|
|
|

|
|
|
[그림] 내용-주소화 기억 장치 불록도 |
|
|
- 인자 레지스터 : 탐색하려는 워드를 저장 |
|
|
- 키 레지스터 : 탐색 워드의 특정한 영역이나 키를 선택하기 위한 마스크를 제공 |
|
|
- 매치 레지스터 : 기억 장치 어레이에 저장된 워드가 탐색 워드와 매치되었는지 여부를 표현 |
|
|
- 탐색 방법 |
|
|
■ 인자 레지스터의 탐색 워드 중 필요 없는 비트는 키 레지스터와 AND 연산을 하여 0으로 마스크 |
|
|
■ 마스크되지 않은 탐색 워드의 선택된 필드와 같은 위치에 해당되는 m 개 워드의 필드를 동시에 비교한다. |
|
|
■ 같은 비트의 패턴을 가진 워드의 해당 매치 레지스터가 "1"로 세트되고, |
|
|
매치 레지스터에 "1"로 세트된 기억 장치 어레이의 워드가 선택된다. |
| |
|
|
|
| | |
|
|
|
5 - 5 캐시 기억 장치(cash memory) |
|
|
|
|
|
- 풀리-풀롭(flip-flop) 회로가 기본 논리 소자 |
|
|
- RAM, 시프트 레지스터, 디스플레이 장치, ROM, 연관기억장치등에 사용 |
|
|
|
|
|
5-5-1 캐시 기억 장치의 원리와 동작 |
|
(1) 기본 원리 |
|
|
■ 지역성의 원리(principle of the locality) |
|
|
|
- 명령어 또는 데이터를 수행하기 위하여 CPU가 주기억장치를 접근할 때는 프로그램 루프, 서브루틴, 테이블 또는 배열 구 조의 데이터등으로 인하여 인접한 위치에 있는 명령어나 데이터들에 집중되는 경향이 있는데, 이와 같은 특성을 지역성 의 원리라고 한다. - CPU보다 느린 주기억장치 접근 속도를 높이기 위하여 지역성의 원리를 고려하여 중앙 처리 장치와 주 기억 장치 사이에 작고 빠른 기억 장치를 설치하고 이곳으로 반복적으로 참조될 프로그램 및 데이터의 불록을 옮겨 놓은 후 이곳에서 호출 하여 실행시킴으로써 기억 장치 접근 시간을 단축할 수 있도록 만든 것이 캐시 기억 장치이다. | |
|
|
|
|
|

|
|
|
[그림] 캐시와 주 기억 장치 |
|
|
(2) 기본 동작 |
|
|
- 동작 순서 |
|
|
① 중앙 처리 장치가 주 기억 장치로부터 한 워드를 읽으려고 할 때는 먼저 그 워드가 캐시에 있는 지를 검사한다. |
|
|
② 만약에 있으면 그 워드가 중앙 처리 장치로 전달되고 그렇지 않으면 그 워드가 포함된 한 불록이 |
|
|
주 기억 장치로부터 캐시로 읽혀지고 동시에 중앙 처리 장치로 전달된다. |
|
|
- 적중(Hit) |
|
|
중앙 처리 장치가 주 기억 장치를 참조할 때 캐시에서 참조하고자 하는 워드를 찾을 경우 |
|
|
- 실패(Miss) |
|
|
원하는 워드를 캐시에서 못 찾을 경우 |
|
|
- 적중률(hit ratio) |
|
|
적중률 = (적중의 수) / (주 기억 장치 접근의 총수) = (적중의 수) / (적중의 수 + 실패의 수) |
|
|
보통 0.9 이상의 값을 가지고 있다. |
|
|
|
|
|
5-5-2 캐시 설계상의 주요 요소들 |
|
|
|
|
캐시의 크기 불록의 크기 사상 함수
교체 알고리즘
기록 동작 |
1 k ∼ 128 k 워드 4 ∼ 8 워드 직접 사상(direct mapping) 연관 사상(associative mapping) 집합 연관 사상(set associative mapping) 최소 최근 사용(LRU) 선입 선출(FIFO) 최소 사용 빈도(LFU) 랜덤(random) 동시 기록(write through) 후 기록(write back) 단일 기록(write once) | |
|
|
[표] 캐시 설계상의 주요 요소들 |
|
|
(1) 캐시의 크기 |
|
|
연구 결과에 의하면 1 k ∼ 128 k 워드가 최적 |
|
|
(2) 사상 함수(mapping function) |
|
|
주 기억 장치의 주소를 캐시 기억 장치 내의 적당한 워드로 사상(mapping)하는 방법 |
|
|
① 직접 사상(direct mapping) |
|
|
- 구현하기 가장 간단한 방법 |
|
|
- 주 기억 장치의 각 불록은 그 불록에 대해서 정해진 캐시 인덱스에만 저장 |
|
|
- 캐시 기억 장치에 2k개의 워드가 있고 주 기억 장치에 2n개의 워드가 있다면 기억 장치 주소는 n 비트로서 (n-k) 비트의 태그 필드와 k 비트의 인덱스 필드로 구성 |
|
|
- k 비트의 인덱스 필드가 캐시의 주소로 되고, 캐시의 각 워드도 태그와 데이터로 구성된다.
|
|
|

|
|
|
[그림] RAM을 사용한 캐시 기억 장치 구성도
|
|
|
|
- 주소 버스에 실린 주소 중 태그 필드와 캐시에서 읽은 워드의 태그 필드를 비교하여 같으면 적중(Hit),그렇지 않으면 실패 (Miss)이다.실패일 때는 원하는 워드가 주 기억 장치에서 읽혀져서 새로운 태그를 가지고 캐시에 저장된다. - 만약 같은 인덱스를 가지고 있지만 태그가 다른 두개 이상의 워드가 반복하여 접근되면 적중률이 상당히 떨어지는 단점 | |
|
|
② 연관 사상(associative mapping) |
|
|
|
- 주 기억 장치의 불록이 캐시의 어느 인덱스에도 저장될 수 있는 사상방법 - 주 기억 장치의 주소와 데이터가 캐시에 저장되므로 캐시 워드의 크기는 주기억 장치의 주소 비트 수와 워드당 데이터 비트 수 의 합이 된다. 연관 사상은 가장 빠르고 가장 융통성 있는 캐시 구조 - 캐시 기억 장치가 연관 기억 장치로 구성되어 있으며, 기억장치의 특정 번지 내용을 참조하고자 한다면 인자 레지스터에 는 주소를 저장하고 키 레지스터는 주소 부분만 비교하도록 하면 된다.
| |
|
|

|
|
|
[그림] 연관 사상
|
|
|
③ 집합 연관 사상(set-associative mapping) |
|
|
|
- 직접 사상과 연관 사상을 조합 - 인덱스는 같고 태그가 다른 두 개 이상의 워드들을 집합으로 하여 연관 기억 장치에 넣어 놓고 직접 사상과 유사하게 각 워드를 주 기억 장치의 인덱스에 의해서 참조 - 캐시를 구성하는 연관 기억 장치의 각 워드는 태그와 데이터를 가지고 있으며, 캐시의 각 주소는 주 기억 장치 주소의 인덱스에 의해서 선택되고, 캐시 내의 어느 주소가 선택되면 그 주소에 있는 많은 태그들이 한꺼번에 검색된다.
|
|
|
|

|
|
|
[그림] 집합 연관 사상 캐시 구성
|
|
|
(3) 교체 알고리즘 |
|
|
|
- 캐시 실패(Miss)가 발생하여 원하는 워드를 포함하는 불록을 캐시로 불러 올 때 비어 있는 블록이 없을 경우 교체 대상의 캐시 블록을 선택하는 알고리즘 - 연관 사상 또는 집합 연관 사상 방법에서 적용 |
|
|
|
|
① 최소 최근 사용(least recently used ; LRU) - 캐시 내에서 사용되지 않은 채로 가장 오래 있었던 불록을 교체 ② 선입 선출(first-in first-out ; FIFO) - 캐시 내에서 가장 오래된 불록을 교체 - 구현이 용이하지만 특정 상황에서는 불록이 너무 자주 교체되는 단점 ③ 최소 사용 빈도(least frequently used ; LFU) - 가장 적게 사용된 불록을 교체 ④ 랜덤 알고리즘 - 임의(random)로 선택된 불록을 교체 | |
|
|
|
|
|
(4) 기록 동작(write policy) |
|
|
- 변경된 캐시의 내용을 주기억장치의 같은 불록에 언제 갱신할 것인가? |
|
|
|
① 동시 기록(write through) - 프로세서가 캐시 불록의 내용을 변경할 때 주 기억 장치에 있는 대응 불록의 내용도 같이 변경 - 데이터의 일관성을 쉽게 보장할 수 있는 장점 - 기억 장치 접근 횟수가 많아짐 ② 후 기록(write back) - 갱신은 캐시에서만 하고, 1 비트의 태그를 이용하여 갱신된 불록을 표시하고, 표시된 불록은 새 불록으로 교체되기 전에 주 기억 장치로 복사 - 주 기억 장치에 대한 기록 동작을 최소화 - 주 기억 장치의 일부분이 무효(invalid)상태에 있으므로 입출력 모듈에 의한 접근은 반드시 캐시를 통해야 한다. | |
|
5-6 기억 장치 관리 |
|
|
|
|
|
- 여러 개의 기억 장치 모듈로 구성되어 있고, 각각의 기억 장치 모듈은 자체 MAR과 MBR을 가지고 있는 형태 |
|
|
- 연관 기억 장치(asso- ciative memory)라고도 함. |
|
|
- 모듈러 기억 장치(modular memory)라고도 함. |
|
|

|
|
|
[그림] 모듈러 기억 장치 구성 |
|
|
- 모듈러 기억 장치를 구성하는 방법 |
|
|
(예) 28 워드의 기억 장치(RAM) 모듈로 구성된 210 워드의 모듈러 기억 장치이라면 |
|
|
① 주소 정보의 상위 2 비트로 모듈을 선택하고 나머지 하위 8 비트들로 선택된 모듈 내의 주소를 선택하는 방법 |
|
|
② 주소 정보의 하위 2 비트로 모듈을 선택하고 나머지 상위 8 비트들로 선택된 모듈 내의 주소를 선택하는 방법. |
|
|
- 모듈 수 만큼의 인스트럭션을 동시에 접근 가능 |
|
5 - 7 기억 장치 관리 |
|
|
|
- 주기억장치는 운영체제를 위한 부분과 현재 실행중인 프로그램을 위한 부분으로 나누어진다. - 다중 프로그래밍 시스템(multiprogramming system)에서는 프로그램을 위한 부분이 여러개의 프로세스를 수용하기 위하여 세 분화 되어지며, 이에 대한 관리를 운영체제가 동적으로 수행한다. |
|
|
|
|
|
|
5-7-1 분할(partitioning) |
|
|
⑴ 고정크기 분할법 |
|
|
|
- 주 기억 장치의 공간을 정해진 크기로 분할하여 프로세스가 주 기억 장치로 들어갈 때 자신이 수용될 수 있는 가장 작은 분할 부분으로 배치된다. - 대부분의 경우에 프로세스는 분할된 크기와 정확하게 같은 기억 공간을 요구하지 않으므로 주 기억 장치의 낭비가 생긴다. | |
|
|
⑵ 가변 크기 분할법 |
|
|
|
- 처음에는 주 기억 장치가 운영체제를 제외하고는 비어 있는 상태이며, 프로세스가 주 기억 장치에 들어 갈 때 프로세스가 필 요로 하는 크기의 기억 공간을 정확히 할당받는 것이다. - 시간이 경과함에 따라 주 기억 장치는 점점 더 많은 조각들로 나누어지게 되어 기억 장치 이용 효율이 떨어지게 된다. - 압축(compaction) 운영체제가 기억 장치의 모든 빈 공간을 모아서 한 불록으로 만들기 위해 적정한 시간 간격으로 프로세스들을 이동시키는 것 이다. | |
|
|
5-7-2 페이징(paging) |
|
|
|
목적 - 프로그램과 주 기억 장치의 양쪽을 일정한 크기로 구획하고, 구획으로 한정된 기억 용량을 효율이 좋게 사용하기 위해서 제어 방법 - 주 기억 장치를 여러 개의 같은 크기의 작은 프레임들로 분할하고 각각의 프로세스들을 프레임 크기의 페이지들로 나누어 페이지를 프 레임에 할당 페이지 - 구획된 프로그램의 조각 페이지 프레임(page frame) - 구획된 기억 장치의 조각들 |
|

|
|
(a) 빈 프레임 할당 전 (b) 빈 프레임 할당 후
[그림] 빈 프레임의 할당
|
|
- 비어 있는 프레임들의 목록은 운영체제에 의해 관리 - 그림에서 디스크에 있는 프로세스 A는 4개의 페이지를 가지고 있고, 주 기억 장치로 들어올 때 4개의 비어 있는 프레임을 찾아서 그곳에 적재 - 그림 (a)는 이 프로세스를 할당하기 전의 상태를 나타내며, 프로세스 A를 적재할 연속적으로 비어 있는 4개의 프레임이 존재하지 않으므로, 하나의 기본 주소(시작 주소)만으로는 충분하지 못하며, 운영체제는 페이지 테이블(page table)을 관리한다. - 페이지 테이블에는 프로세스의 각 페이지에 대한 프레임 위치가 있다. |
|

|
|
[그림] 논리적인 주소를 물리적인 주소로 변환하는 과정 |
|
- 프로그램 내의 각 논리적인 주소는 페이지 번호와 페이지 내의 상대적인 주소로 구성 - CPU는 페이지 테이불을 이용하여 논리적인 주소를 물리적인 주소로 변환 | |
|
|
|
|
|
5-7-3 세그멘테이션(segmentation) |
|
|
|
- 2차원 주소 방식이라고도 하며 페이지 방식과 매우 유사 - <세그멘트>, <페이지>, <줄>의 세 가지 부분으로 나누어 질 수 있음 - 세그멘테이션을 채용하고 있는 컴퓨터의 주소 방식은 <세그멘트 주소>와 <세그멘트 내의 주소>로 구성 - 각 명령어의 주소부는 우선 세그멘트를 선택하고 다음에 세그멘트 내의 주소를 지정 - 실제의 기억 장치 내에 각 세그멘트가 어떻게 저장되어 있는가를 표시하기 위하여 세그먼트 테이블이 사용 - 세그먼트 테이블에는 각 세그멘트의 베이스 주소가 저장되어 있고 이것에 세그멘트 내 주소가 더해져서 실효 주소가 얻어 진다.
|
|

|
|
[그림] 세그멘테이션과 주소의 생성법
|
|
■ 세그멘테이션의 특징 가. 일련의 프로그램은 복수의 부 프로그램이나 데이터의 모임으로 구성되어 있고 각각을 세그멘트로서 취급후에 프로그램의 수정이나 데이터의 추가가 생겨서 프로그램 단계 수가 변화해도 세그멘트의 크기가 변한 정도로 끝나고, 다른 프로그램 세그멘트까지 영향을 주어서 그 주소를 변경시키는 것과 같은 일은 일어나지 않는다. 나. 복수의 프로그램에서 프로그램이나 데이터를 공유할 수 있다. 따라서 세그멘트 단위로 동적인 재배치(dynamic relocation)가 생겨도 세그멘트 테이불만을 변경하면 되고 그것에 접근하는 프로그램 측에서는 어떠한 변경도 할 필요가 없다. 다. 세그멘트 단위로 동적인 재배치가 용이하다. 라. 각 명령이 세그멘트에 접근하기 전에 반드시 세그멘트 테이불을 참조하고 나서 실행하므로 기억 보호 등을 사용하는 경우 체크하는 데 사용할 수 있다. ■ 세그멘테이션와 페이지 주소 방식의 조합 - 주소 생성은 세그멘트 테이불과 페이지 테이불의 2 단계의 주소 변환을 실행
|
|

|
|
[그림] 세그멘테이션과 페이지 주소 방식을 조합한 경우의 주소 생성법
| |
|
|
|
|
|
5-7-4 가상 기억 장치 |
|
|
(1) 가상 기억 장치의 기본 원리 |
|
|
|
- 프로세스를 여러개의 블록(페이지 또는 세그멘트)으로 나누어 보조기억장치에 저장해 놓고 실행에 필요한 블록들만 주기억 장치에 적재하여 처리하는 방식 - 프로그래머나 사용자는 보조 기억 장치에 위치한 훨씬 큰 기억 공간을 주기억 장치로 생각하고 사용할 수 있다. - 가상 기억 장치를 가지는 시스템에서는 보조 기억 장치의 전체 용량에 해당하는 큰 주소 공간을 논리적인 주소 공간으로 하여 프로그램을 작성하고 주 기억 장치의 물리적인 주소 공간으로 변환(mapping)한다. - 주소 변환은 변환 테이불(mapping table)에 따라 이루어지며, 중앙 처리 장치가 주 기억 장치에 접근하려고 할 때 변환 테이불에서 논리적인 주소가 물리적인 주소로 변환된다.
| |
|
|

|
|
|
[그림] 자동 주소 사상
|
|
|
(2) 가상 기억 장치의 구현 |
|
|
① 페이징 |
|
|
|
- 프로그램은 일정한 크기의 페이지로 나누어지고, 주 기억 장치는 페이지와 동일한 크기의 프레임으로 나누어진다. - 프로그램을 바인딩(binding ; 프로그램의 기호 번지를 주 기억 장치에 적재하기 위해 물리적인 주소로 변환하는 과정을 말한다)하는 단계에서 각 논리 주소는 다음 등식에 의해 페이지 번호 p 와 페이지 내의 주소 d를 만든다.
p = (주소) / (페이지 크기) d = (주소) % (페이지 크기) (%는 나머지를 계산하는 모듈러 연산자)
- 예) 페이지 크기가 3일 경우 바인딩 전후의 주소
|
|
|
|
|

|

|
|
(a) 주소 0에서 연속적인 주소를 갖는 프로그램
|
(b) (p, d)의 형태의 주소를 갖는 프로그램(페이지 크기=3) |
|
[그림] 페이지 주소 지정 | |
|
|
|
- 페이지 테이불(page table)의 논리적인 그림
| |
|
|

|
|
|
[그림] 프로그램 A 에 대한 기억 장치 할당 및 페이지 테이불
|
|
|
|
프로세스가 적재될 때 그에 대한 프로세스 페이지 테이불이 만들어져서 함께 주 기억 장치에 적재된다. 페이지 테이불의 각 항목에는 해당 페이지가 저장된 주 기억 장치의 프레임 번호가 포함되어 있다. 프로세스의 몇 페이지만이 주 기억 장치에 적재되므로 페이지 테이불 항목에 해당 페이지가 주 기억 장치에 있는지 없는지를 표시하는 비트가 필요하다.
실제 주소(L)는 프레임 번호(f)와 페이지 내의 주소(d)를 결합하여 만들어진다. 실제 주소에 대한 참조는 (p, d)로 구성된 프로그램 주소의 참조가 이루어 질 때 해당 프레임 번호를 페이지 테이불을 탐색하여 찾으므로써 다음 식으로 계산된다.
L = f × (페이지 크기) + d
예를 들면 그림 5-34에서 프로그램 A의 페이지 1, 페이지 내의 주소 1의 JMP 명령어를 수행하기 위해서 페이지 테이불를 참조하면 페이지 1이 프레임 5에 저장되어 있음을 알게 된다. 위의 식을 이용하여 실제 주소를 계산하면 다음과 같다.
L = 5 × 3 + 1 = 16 | |
|
|
② 세그멘테이션(segmentation) |
|
|
|
- 페이징과는 달리 프로그램을 가변적인 크기로 나눈다. - 세그멘트는 컴파일러나 어셈불러에 의해서 만들어지는 프로시져나 배열과 같은 프로그램의 논리적인 부분으로서 크기가 가변적이다. - 바인딩되는 동안 논리적인 주소는 세그멘트 번호 s와 세그멘트 내의 옵셋트 d에 의해서 정의된다. - 세그멘트가 실제 기억 장치에 있다면 세그멘트 테이불(segment table)은 세그멘트 번호를 베이스(base)라는 시작 주소와 리미트(limit)라는 마지막 주소로 사상한다. | |
|
|
|
|
|
[그림] 프로그램의 기억 장치 할당 및 세그멘트 테이불
|
|
|
③ 페이지와 세그멘트 테이불의 구현 |
|
|
- RAM으로 구현하는 경우
|
|
|

|
|
|
[그림] 페이지 테이불의 RAM구현
|
|
|
|
테이불이 모든 가상 기억 장치에 저장되어 있다면 모든 가상 기억 장치를 참조하기 위해서 최소한 두 번 실제의 기억 장치 참조가 필요하다. 실질적으로 페이지나 세그멘트 테이불은 주 기억 장치보다도 훨씬 빠르고 작은 캐시에 저장된다. | |
|
|
- 연관기억장치로 구현하는 경우
|
|
|

|
|
|
[그림] 페이지 테이불 연관 기억 장치 구현
|
|
|
|
연관 기억 장치의 각 워드는 페이지 번호와 프레임 번호로 구성되고, 프레임에 실제로 매핑되는 페이지에 대해서만 페이지 번호와 프레임 번호를 저장한다. 페이지 참조 시 특정 페이지 번호를 찾기 위해서는 페이지 번호를 탐색 인자로 사용하여 모든 항목을 병렬로 검색한다. 각 워드의 일치 비트는 각 워드의 읽기 신호와 직접 연결되어 있으며, 일치가 되면 워드가 출력되고 프레임 번호는 실제의 주소를 위해 사용된다. | |
|
|
5 - 8 보조 기억 장치 |
|
|
|
|
■ 특성 - 보조 기억 장치(auxiliary memory)는 입/출력 장치의 일종으로서 입/출력 채널을 거처서 접속 - 별도의 제어 기구 - 단어의 그룹인 불록으로 주소 지정 - 저속이지만 비트 당 가격이 싸고 매체의 교환이 간단히 될 수 있다. - 대용량 - 외부적인 구성 요소(디스크나 테이프의 경우 헤드)에 의하여 정보 교환이 이루어진다. - 비파괴적 읽기 - 주 기억 장치보다 정보 지정 밀도가 낮다. ■ 보조기억장치의 종류 - 자기 디스크 장치, 광 디스크 장치이며, 자기 드럼 장치, 자기 테이프 장치, 자기 버블 기억 장치, CCD 기억 장치가 있다. |
|
|
5-8-1 자기 테이프 장치(magnetic tape unit) |
|
|
|
■ 자기 테이프(magnetic tape)는 연속된 평면 상에 도포된 자성 재료 위에 작은 자기 반점(spot)의 극성 변화로 기록 정보를 기억 하는 방식 ■ 비트 당 가격이 싸고, 대용량의 파일 장치로 널리사용 ■ 기계적인 동작을 이용하고 있으므로 데이터의 기록, 판독 시간이 느림. ■ 직렬 접근(순차적인 읽기/쓰기 동작) 방식 ■ 자기 테이프 상에 파일로 되어 있는 데이터의 기록 장소를 검출할 때까지대기하는 시간은 크지만 한번 데이터의 기록 장소가 검 출되면 대량의 데이터가 불록 단위로 처리되므로 비트 당 평균 접근 시간은 비교적 짧게 된다. ■ 일반적으로 자기테이프는 그 평균 접근 시간이 느리므로 신속을 요하지 않는 임시정보, 자주 사용되지 않는 정보, 중요한 정보의 이차적인 저장 등을 위해서 많이 사용된다. | |
|
(1) 자기 테이프(magnetic tape) |
|
|
|
현재 사용되고 있는 자기 테이프의 바탕(base) 재료는 대부분이 폴리에틸렌(polyethylene) 계의 마일러(mylar) 테이프이다. 바탕 위에는 자성산화철(γFe2O3) 재료가 미세한 침상의 분말로 되어서 강한 자계 중에서 엷게 도포되어 고착된다. | |
|
(2) 정보의 기록 방식 |
|
|
|
① 기록방식 ■ 컴퓨터에 사용되고 있는 자기 테이프의 정보 기록 방식은 다중 트랙 헤드를 이용해서 1 그룹의 각 비트를 테이프의 폭 방향으로 병렬로 기록하는 방식이다. ■ 자기 테이프 1릴의 길이는 보통 800, 1200, 1600, 2400 feet ■ BPI(byte per inch) 테이프 상의 데이터 기록 밀도를 나타나며, 테이프 1인치 당 저장될 수 있는 문자의 수 또는 바이트의 수로 계산되고, 800, 1600, 3200, 6250 BPI 등의 기록 밀도가 있다. ② 자기 테이프의 구성 형태 ■ 공급 릴(supply reel), 감기 릴(take-up reel) 자기 테이프 장치 상에서 긴 자기 테이프를 상호 감아서 꺼내는 작용을 한다. ■ EOT(end-of-tape marker) 테이프 끝에 붙어 있는 표시로서 자기 테이프가 끝나는 지점에 가까이 간 것을 장치의 제어 기구에 알리는 것 ■ BOT(beginning-of-tape marker) 테이프의 처음에 붙어 있는 표시로서 테이프 되감기를 한 경우에 그의 종 점이 가까워 졌음을 제어 기구에 알리는 것 ■ 표지 레코드(label record) BOT 표시에 이어 나타나는 부분으로 파일의 식별, 데이터 포맷등의 정보를 넣어둔다. ③ 레코드의 종류 ■ 물리적인 레코드(physical record) - 외부 기억 장치와 주 기억 장치 사이에 판독/기록되는 단위로서 한 개 또는 복수 개의 물리적인 레코드로 구성 - 불록(block)이라고도 함. - 여러 개의 논리적인 레코드로 구성 - 1 불록에 들어가는 레코드의 개수를 불록화 인수(blocking factor)라고 한다. - IBG(inter block gap)에 의해서 구분 ■ 논리적인 레코드(logical record) - 어떤 공통된 것에 관련하고 있는 데이터의 그룹 - 여러 개의 필드(아이템)들로 구성 - IRG(inter record gap)에 의해서 구분 ④ 파일 - 테이프 상에 기록되어 있는 여러 개의 불록으로 구성된 그룹을 의미하며, 이 그룹은 테이프 마크(mark)에 의해서 나누어져 있다. - 파일에 들어 가는 불록의 수는 임의이고 CPU의 프로그램에 의해서 결정됨. - 테이프 마크는 짧은 레코드이며, 파일의 개시 장소와 종료 장소를 프로그램에 알리고 제어를 한다. ⑤ IBG (inter-block gap) - 불록과 불록 사이에는 아무 것도 써넣지 않은 공백으로 되고 이것을 이라고 한다. - 1 불록의 데이터를 판독한 후 테이프를 정지(stop)시킨 경우에는 이 IBG의 장소 내에 정지하도록 한다. 또 테이프를 개시(start)한 경우에 그 전송 속도가 정상 값으로 된 곳에서 정확히 IBG를 빠져 나와 다음의 데이터 불록으로 들어 간다. | |
|
(3) 정보 기록 형식(format) |
|
|
|
① 7 트랙 방식 - 테이프의 폭 방향에 7 개의 독립된 헤드가 나란히 있으며 이것에 의해서 각 트랙 상에 6 단위 부호의 데이터와 1 비트의 체크 코 드를 기록 ② 9 트랙 방식 - 주로 많이 사용되는 방식 - 8 비트로 된 256 문자와 1 비트의 체크 비트로 구성 - 데이터의 기록은 EBCDIC 코드나 ASCII 코드로 표현 | |
|
(4) 자기 테이프 기구 |
|
|
|
① 자기 헤드(magnetic head) - 디지털 신호의 판독과 기록을 자기적으로 하는 것으로서 판독/기록 헤드(read/write head)라고 한다. - 기록된 신호를 즉시 판독하고 체크를 하기 위하여 기록, 재생, 그리고 소거용 헤드가 단일 체로 만들어져 있다. ② 테이프 전송 기구 - 테이프 속도는 보통 5 ∼ 10 [m/sec] | |
|
|
5-8-2 자기 디스크 장치 |
|
|
|
① 자기 디스크 장치 레코드 판과 같이 원판(disc 또는 disk) 위에 자성체를 도포한 것으로서 이것을 고속 회전시켜 그의 아래 윗면 에 설치된 자기 헤드에 의해서 데이터를 동심원상으로 자기 기록한다던가, 또는 기록된 데이터를 판독하는 장치 ② 디스크 카트리지(disk cartridge) 한개의 원판으로 구성된 디스크를 의미하며, 헤드가 드나들 수 있는 부분을 제외하고는 밀폐된 플라스틱 용기에 들어 있다. 디스크 구동기와는 분리되어 있어서 필요에 따라 카트리지를 교환할 수 있으며 기억 용량이 수백만 비트 정도로 작은 반면에 가격이 저렴하므로 소형의 컴퓨터에 많이 사용된다. ③ 디스크 팩(disk pack) - 여러 개의 원판으로 구성된 디스크 - 디스크 구동기와 분리되어 있어서 필요에 따라 교환하여 사용할 수 있다. - 많은 용량의 기억 공간을 제공할 수 있으므로 대형 컴퓨터의 보조 기억 장치로 많이 사용된다. - 디스크의 소재 알루미늄 합금 판 또는 가볍고 평탄성이 좋은 마그네시움 합금 판을 바탕 재료로 해서 그의 표면에 자성 산화철(γFe2O3)을 도포 - 디스크의 크기 : 지름이 25 ∼ 90 cm 정도 - 회전 속도 : 분당 3600 회 - 디스크 팩의 구성 : 보통 6장에서 12장 사이로 구성 제일 위의 디스크와 제일 아래의 디스크를 제외하고 모든 면이 데이터를 기록하는 데 이용 ④ 트랙, 실린더, 섹터 - 트랙(track) : 자기 디스크위에 있는 동심원 형태의 데이터 기록 위치 - 실린더(cylinder) : 디스크의 중심 축으로부터 동일한 거리에 있는 트랙의 모임 - 섹터(sector) : 트랙은 섹터라고 하는 레코드 단위로 구분 | |
|
|
|
(2) 자기 디스크 장치의 구성과 접근 시간 |
|
1) 고정 헤드(fixed head) 방식 - 디스크 상의 각 트랙에 1 개의 헤드가 설치되어 있다. - 접근 시간은 디스크 회전 속도만으로 결정되므로 고속이다. - 헤드의 수가 많게 되므로 가격이 비싸다. - 주 기억 장치의 보조를 하도록 제어용 프로그램(운영 체제)을 기억하는 데 이용 2) 각 디스크 면에 한 개의 헤드가 있고 수평 방향으로만 접근하는 방식 - 디스크 팩 방식에서 가장 널리 채용되고 있는 접근 방식 - 각 디스크 면에 1개의 자기 헤드가 위치 - 접근 기구가 수평 방향으로만 접근하므로 비교적 간단하다. 3) 장치 전체에 한 개의 헤드가 있고 아래 위 방향과 수평 방향으로 나누어서 입체적으로 접근하는 방식 - 대용량의 자기 디스크 장치와 같이 디스크를 수십 장 포개서 100면 이상의 기록 면이 있는 경우에 이용하는 방식 - 접근 기구가 수직 방향과 수평 방향의 3 차원이므로 다소 복잡하게 되는 것과 평균 접근 시간이 큰 것이 결점 | |
|
|
|
(3) 기록용 헤드 |
|
- 판독/기록부와 소거부로 된 캡형 - 각각은 판을 층층이 쌓은 모양의 자성 재에 코일이 감겨져 있음. - 정보의 기록 : 소거 헤드에 직류 바이어스를 걸고 이미 기록되어 있는 데이터를 소거한 후에 행함. | |
|
|
|
(4) 단일 디스크(single disc) 기억 장치 |
|
- 1 장의 디스크로 구성된 디스크 카트리지(disc cartridge) 방식을 의미하며, 소형으로 사용이 쉬우므로 최근의 소형 컴퓨터의 외부 기억 장치로 널리 사용되고 있다. 1) 트랙 형식 - 디스크는 양 면이 기록에 사용되며 2 개의 헤드가 있다. - 정보의 판독/기록은 섹터 단위로 행하고 1 실린더의 섹터 수는 8 개로 되어 있다. - 1 섹터에 들어가는 단어 수는 사용 시스템에 따라 다르다. - 각 판독/기록 명령은 8 섹터 중에 하나를 주소 지정하고 헤드를 구동시킨다. 따라서 8 섹터 펄스를 발진하도록 되어 있으므로 이것을 시스템의 지표 펄스로 해서 데이터의 판독/기록을 한다. 2) 기구 - 알루미늄의 다이 캐스팅 대 위에 조립되어 있음 - 대 위에는 디스크 카트리지를 구동하는 축, 자기 헤드의 접근 기구 등이 있고, 아래 쪽에는 디스크 구동 모터, 전기 회로, 배선 등이 있음. - 장치 전체가 대단히 소형이므로 냉각용 공기가 효율 좋게 순환하도록 되어 있음. - 디스크 카트리지가 삽입되어 장치의 축 상에 세트되면 인터록 회로가 작동하여 디스크가 바르게 세트되었는가 확인함. - 판독/기록 헤드는 1 장의 디스크를 삽입할 수 있도록 아래 위에 위치하고 있음. - 동작 중 헤드는 디스크의 표면에서 약 120 μ 인치 만큼 떠 있음 | |
|
|
5-8-3 광 디스크 장치
|
|
|
|
■ 광 디스크 - 유리 또는 아크릴 수지로 만든 디스크의 표면에 알루미늄과 같은 반사성이 큰 물질로 코팅 - 코팅된 표면에 디지털 데이터를 기록하면 데이터는 반사성의 표면에 1 은 구멍으로 찍히고, 0 은 구멍이 없도록 찍힘. - 디지털로 기록된 정보는 광 디스크 풀레이어 또는 구동 장치에 있는 저전력 레이저에 의해 CD 또는 CD-ROM 으로 부터 검색됨 ■ 디지털 신호 입력 - 디스크가 회전하면서 지나 갈 때 투명한 보호 코팅을 통해 레이저 빛을 발하고, 반사되는 레이저 빛의 강도는 디스크 표면의 피트(pit)를 만날 때마다 변한다. 이 변화가 광 검지기에 의해 검출되어 디지털 신호로 변환되어 입력됨. ■ 광 디스크에 정보를 기록하는 방식 - CAV(constant angular velocity)와 CLV (constant linear velocity) 가 있으며, CD-ROM의 기록 방식은 CLV 방식 ■ CAV 기록 방식 - 안쪽 트랙과 바깥쪽 트랙에 기록되는 정보의 양을 같게 하여 디스크의 회전 속도를 일정하게 유지하는 방법. - 안쪽보다는 바깥쪽이 정보 기록 밀도가 낮아서 디스크가 낭비되는 것이 단점 - 디스크 제어기 구조가 비교적 간단하고 트랙과 섹터만을 이용해서 개별 정보를 검색할 수 있는 것이 장점 ■ CLV 기록 방식 - 안쪽과 바깥쪽 트랙에 정보의 기록 밀도를 동일하게 유지하는 방법 - CAV에 비하여 많은 정보를 기록할 수 있음. - 트랙 마다 기록될 수 있는 정보의 양이 다르기 때문에 디스크의 회전 속도가 가변적. - 개별 정보를 검색하기 위해서는 분, 초 및 섹터의 세 가지 요소로서 디스크의 주소를 각 불록의 첫 부분에 기술 하여야 함 자기 디스크에 비해서 CD-ROM의 장단점 - 정보 저장 용량이 크고, 대량 복사가 가능하다. - 기록된 정보에 대한 수정이 불가능하다. - 접근 시간이 길다. ■ WORM(write-once read-many) 형 디스크 - 기록 후 적당한 강도의 레이저 광선에 의해 한번 다시 기록될 수 있게 제조된 것 - 사용자는 CD-ROM 보다 다소 비싼 디스크 제어 장치를 이용하여 읽기 뿐만 아니라 한번의 쓰기도 할 수 있음 ■ 광 자기 디스크(MOD ; magneto optical disk) - 레이저에서 나오는 열을 이용해서 자석의 성질을 띠게 하여 읽고, 쓰기를 하는 것 - 레이저 광선 에너지는 자기장과 함께 자기 물질로 코팅된 디스크의 한 면에 자극의 변화에 의한 정보를 기록하고 삭제하는 기능을 함. - 하드디스크와 동일한 CAV 기록 방식으로 되어 있으므로 하드 디스크와 거의 비슷한 속도로 데이터를 전송가능 · 광 자기 디스크에 데이터가 기록되는 형태 - 자기적인 성질을 띠게 하여 상하의 방향으로 나타나는 자기장을 데이터 0 과 1 로 구분. | |
|
|

|
|
|
[그림] 광자기 디스크의 데이터 기록
|

|
|
|
|
|
|
|
■ 중앙 처리 장치(CPU ; central processing unit) - 제어 장치, 연산 장치, 그리고 기억 장치를 포함한 컴퓨터 본체를 가리키며, 이것주변 장치(peripheral equipment) ■ 주변장치 - 입출력 장치와 보조 기억 장치 ■ 중앙 처리 장치의 주요 기능 ① 기억 장치에서 읽어 온 데이터에 대해서 연산 처리, 비교 처리, 데이터 전송 , 편집, 변환, 테스트와 분기, 연산 제어 등의 조작을 수행한다.기타 ② 데이터 처리 순서를 표시하는 프로그램을 기억 장치로부터 인출하여, 여러 가지의 장치를 구동하면서 조작을 행한다. | |
|
|
|
|
|
6 - 1 중앙 처리 장치의 내부 구조 |
|
|

|
|
|
[그림] 중앙 처리 장치의 내부 구조 |
|
|
|
① 산술 논리 연산 장치(ALU ; arithmetic logic unit) : 연산 기능 수행 ② 제어 장치(CU ; control unit) : 제어 기능 수행 ③ 레지스터 : 기억 기능 수행 ④ 내부버스 : 전달 기능 수행 | |
|
|
6-1-1 레지스터 |
|
|
|
■ 일정한 수의 비트로 구성된 정보를 기억시킬 수 있는 기억 장소 ■ 프로그램 수행 도중에 데이터의 요구가 있을 때까지 또는 버스나 다른 장치가 데이터를 받을 준비가 될 때까지 일시적으로 데이터를 기억하는 임시 기억 장치 ■ 풀리풀롭들이나 레치들로 구성 ■ 전담 레지스터(dedicated register) : 기능이 확정된 레지스터 ■ 범용 레지스터(general register) : 기능을 정해 놓지 않은 레지스터 | |
|
|
|
(1) 사용자가 프로그램할 수 있는 레지스터 사용자가 프로그램 내에서 또는 데이터 처리에 필요한 작업을 수행하기 위해서 사용 용도에 따라서 범용 레지스터, 데이터 레지스터, 주소 레지스터, 조건코드 등으로 분류 ① 범용 레지스터 - 주소 지정, 연산을 위한 데이터 보관용, 제어용 정보의 보관 - 누산기(ACC ; accumulator), 베이스 레지스터, 계수기 레지스터 ② 데이터 레지스터 - 고정 소수점 수치와 부동 소수점 수치를 저장하기 위해 사용 ③ 주소 레지스터 - 대체로 범용으로 사용되거나 특정 주소 지정 방식을 위하여 사용 - 인덱스 레지스터, 세그멘트 레지스터, 스택 포인터 ④ 조건 코드(condition code 또는 flag) - 연산 결과에 따라 중앙 처리 장치에 의해서 세트되는 비트들 - 부호, 범람, 자리 올림 등 - 조건 코드의 비트들은 하나 이상의 레지스터에 모아지며, 이들은 제어 레지스터의 일부가 됨. - 비트들은 기계 명령어에 의하여 검사될 수 있지만 프로그래머에 의해 수정될 수는 없음 (2) 제어 레지스터와 상태 레지스터 ■ 제어 레지스터 ① 명령 레지스터(IR ; instruction register) - 프로그램 수행 도중에 현재 수행하고 있는 명령을 기억 - 제어 장치로 하여금 그 명령이 올바르게 수행되도록 제어 정보를 제공 - 명령 레지스터에 있는 명령어는 명령 해독기(decoder)에 의해서 명령의 의미가 해독되어 타이밍이 조정된 후 제어 신호로서 각 구성 요소에 전달됨. ② 프로그램 계수기(PC ; program counter) - 다음에 실행할 명령의 주소를 기억 - 제어 장치가 올바른 순서로 프로그램을 수행하도록 하는 정보를 제공 ③ 기억 장치 주소 레지스터(MAR) - 데이터나 명령을 주 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 주소를 기억하고 있는 레지스터 ④ 기억 장치 버퍼 레지스터(MBR) - 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 데이터나 명령을 기억하고 있는 레지스터 - MBR의 크기는 데이터 워드를 구성하는 비트 수에 따라 결정됨 ■ 프로그램 상태 워드 레지스터(PSWR ; Program Status Word Register) - 처리기 상태 레지스터, 또는 조건 코드 레지스터 라고도 하며, 개인용 컴퓨터에서는 풀레그 레지스터라고 함. - 프로그램 상태 워드를 기억하는 레지스터로서 조건 코드와 그외의 다른 상태 정보를 포함 - IBM S 360/370 컴퓨터의 예 |
|
|
|
6-1-2 산술 논리 장치
|
|
|
|
■ 고정 소수점, 부동 소수점, 가변 워드 길이 등의 산술 연산과 논리 연산을 주로 실행 ■ ALU의 기본적인 기능 - 2진 덧셈과 뺄셈 - 논리 연산 - 보수 연산 - 좌 우측 시프트(shift) | |
|
|
|

|
|
[그림] ALU에서의 산술 연산 실행 | |
|
|
|
(1) ALU의 산술 연산 기능 ■ 연산의 대상이 되는 숫자 정수, 부동 소수점 수(실수), 2 진화 10 진수 ■ 데이터의 표현 대부분의 컴퓨터는 2의 보수 체계로서 연산을 실행 ■ 산술 논리 연산 장치(ALU) - 2개의 입력 단자와 1개의 출력 단자로 구성
|

|
|
[그림] n 비트용 2 진 병렬 가산기의 불록도 |
|
X |
Y |
Z |
수행되는 연산 |
비 고 |
|
A A A A A A A A
|
B B

 all 0'S all 0'S all 1'S all 1'S
|
0 1 0 1 0 1 0 1
|
A + B → S A + B + 1 → S A + → S A + + 1 → S A → S A + 1 → S A - 1 → S A → S
|
덧셈 자리 올림을 포함한 덧셈 A에 B의 1의 보수를 더함 A에 B의 2의 보수를 더함 A를 전송 A를 1 증가 A를 1 감소 A를 전송 | |
|
[표] 병렬 가산기로 가능한 산술 연산들 |
|

|
|
[표] 4비트 가산기 |
(2) ALU의 논리 연산 기능 ■ 기본적인 논리 연산 - AND, OR, XOR, NOT
|

|
|
[그림] AND와 OR 연산기 |
(3) ALU의 시프트 기능 ■ 구현 방법 - 병렬 적재 양방향 시프트 레지스터를 이용하거나 멀티플렉서를 이용
|
|
[그림] 시프터 |
|
|
|
|
|
NS = 1이면 시프트가 행해지지 않음. LS = 1이면 좌측 시프트 RS = 1이면 우측 시프트 SRI, SLO => 좌측으로 시프트할 때 입력과 출력 SLI, SRO => 우측으로 시프트할 때 입력과 출력 |
(4) 풀레그 레지스터(flag register) 개인용 컴퓨터에 있어서 누산기와 함께 쌍으로 되어 ALU에서 계산된 결과의 상태를 표시 ■ 상태 풀레그 - 수치 연산 및 논리 연산 결과에 따라 CPU 의 상태를 표시 - CF, PF, AF, ZF, SF, OF ■ 제어 풀레그 - CPU의 동작을 변경(TF, IF, DF)
|

|
|
[그림] 플래그 레지스터 | | |
|
|
6-1-3 제어장치
|
|
|
|
■ 기능 - 컴퓨터 전체를 제어하고 각 장치 사이의 시간적인 관계를 통합적으로 제어하면서 데이터 처리를 수행 - 미리 기억 장치에 순서대로 입력되어 있는 기계어를 차례 차례로 인출하여 그 내용을 해석하고 실제의 실행 동작을 일으키는 기능을 하는 장치 ■ 기본 동작 ① 명령을 기억 장치로부터 인출하여 해독(호출사이클, fetch cycle) ② 해독한 내용을 이용하여 연산 장치, 기억 장치, 그리고 입출력 장치에 지령 신호를 보내어 실행(실행사이클, execute cycle)
|

|
|
[그림] 명령 호출 사이클(fetch 사이클) |
|

|
|
[그림] 명령 실행 사이클(Execute 사이클) |
| |
|
|
6-1-4 신호 전송로
|
|
|
|
■ 컴퓨터 시스템내의 서로 다른 기능을 하는 여러 장치들을 연결 | |
|
|
|
(1) 개별 전송 방식 (point to point) - 정보 교환이 필요한 장치들끼리 직접 연결하는 가장 단순한 연결 방법 - n 개의 장치가 있다면 n * (n - 1) 개의 전송로가 필요 - 레지스터의 수가 많아지고 게다가 다수의 기능 장치가 사용되는 컴퓨터의 경우에는 전용 데이터 전송로의 수가 많아 지고, 복잡하게 됨 - 완성된 각 전송로는 기능적으로 중복되는 경우가 많고, 이용상 낭비가 생길 수 있음
|

|
|
[그림] 3개의 장치 사이에 개별 전송의 예 |
|

|
|
[그림] 개별 전송 방식 |
(2) 버스 방식 - 한 묶음의 공통의 전송로(버스)를 설치해 두고 각 장치를 스위치를 통해서 연결 - 스위치는 tri-state buffer를 사용하여 구현 - 모든 스위치들은 평상시에는 열려 있으며, 데이터 교환이 필요할 때마다 해당 스위치를 닫음
|

|
|
[그림] 공통의 전송로를 이용한 데이터 교환 |
|

|
|
[그림] 트리-스테이트 버퍼 제어 |
- 버스는 공통의 전송로와 장치를 연결하는 스위치를 임의로 열고 닫을 수 있어야 함 - 스위치는 트리-스테이트 버퍼(tri-state buffer)를 사용하여 구현하고, 제어선(Enable 입력)에 논리 1을 주느냐 논리 0을 주느냐에 따라 스위치가 열려지고 닫혀짐 ■ 병렬 버스(parallel bus) - 워드의 비트 수만큼 여러 개의 선으로 구성되어 일련의 비트들이 워드형태로 동시에 나란히 전송 ■ 직렬 버스(serial bus) - 단일 선으로 연결되어 한 워드의 비트들이 하나씩 시간에 따라서 전송 ■ 내부 버스(internal bus) - 중앙 처리 장치 내의 연산기(ALU)와 레지스터들 사이의 신호 회선들 ■ 외부 버스(external bus) - 중앙 처리 장치와 기억 장치 사이의 메모리 버스와 주변 장치들 사이에 존재하는 입출력 버스 ■ 데이터 버스(data bus) - 중앙 처리 장치에서 주 기억 장치 혹은 입출력 장치로 데이터를 전송하거나 반대로 이들 장치로부터 중앙 처리 장치로 데이터를 전송 할 때 사용되는 데이터 전송로 - 양방향 버스로서 데이터 워드를 구성하는 비트 수만큼의 신호 회선으로 구성 ■ 주소 버스(address bus) - 중앙 처리 장치에서 주 기억 장치나 입출력 장치의 주소를 지정할 때 주소 정보를 전송하는 전송로 - 주소 코드가 k 비트로 되어 있다면 주소 버스는 k 개의 신호 회선으로 구성되며, 2k 개의 주소를 지정할 수 있음 - 중앙 처리 장치에서만 주소를 지정할 수 있으므로 단방향성 버스 ■ 제어 버스(control bus) - 중앙 처리 장치에게 어떤 동작을 지시하거나 중앙 처리 장치의 현재 상태를 알리는 제어 신호, 또는 중앙 처리 장치에서 주 기억 장치 나 입출력 장치에게 입출력 동작을 지시하는 제어 신호를 전송하는 데 사용되는 전송로 ■ 버스 방식의 기본 구성 - 각각의 레지스터는 각 레지스터의 출력 게이트와 입력 게이트를 거처서 공통의 전송로(버스)와 접속됨 - 버스는 각 레지스터로부터의 입출력을 공통으로 접속하고 분배하는 장치이므로 OR 회로로 구성되어 있음
|

|
|
[그림] 버스 방식의 기본 구성 |
- 데이터 소스(data source)인 레지스터 A와 레지스터 B는 출력 게이트인 AND 회로를 거처서 OR 회로에 접속되며 그로부터의 출력 은 레지스터 C와 레지스터 D의 각각의 입력 게이트(AND)에 접속되어 있음. - 아래 그림에서 OR 회로의 부분이 버스라 부르는 실제의 회로임. - 레지스터 A의 내용을 레지스터 D로 전송한다면 다음과 같은 순서로 행해짐.
단계 1 : 레지스터 A → 버스 단계 2 : 버스 → 레지스터 D
|

|
|
[그림] 버스 방식의 논리구성
|
6 - 2 명령(instruction) |
|
|
|
- 중앙 처리 장치의 가장 중요한 기능은 중앙 처리 장치에서 사용할 수 있는 명령들로 구성된 명령 세트를 제공하는 것임. - 컴퓨터 프로그램은 명령 세트에 포함된 명령을 이용하여 작성하므로 명령 세트는 프로그램의 편의성, 경제성, 신뢰성 등에 중요한 영향을 줌. ■ 명령 세트 설계시 결정해야 할 사항 - 연산자의 종류 : 어떤 종류의 연산자들을 다룰 수 있도록 할 것인가. (연산의 수, 종류 및 복잡도) - 주소 지정 방식 : 데이터를 어떻게 지정할 것인가.(오퍼런드의 주소를 지정하는 방식) - 명령의 구성 방식 : 위의 두 가지를 어떠한 형태로 배치하여 명령을 구성할 것인가.(명령어 길이, 주소의 수, 각 필드의 길이 등) - 데이터의 형태 : 연산이 수행될 데이터의 형태 - 레지스터 : 명령어들에 의해 사용될 레지스터의 수와 용도 | |
|
|
6-2-1 명령어의 구성
|
|
|
|
(1) 데이터어 ■ 컴퓨터 내부에서 취급하는 수치 단위 ■ 부호와 몇 자리의 수치로 구성(보통은 문자의 정수배의 비트 수로 워드가 구성됨)
■ 8 비트(1 바이트)를 기본 단위로 한 방식 ① 256가지 종류의 코드를 표시할 수 있음 ② 2의 지수 승으로 되어 있으므로 주소 붙임이 용이 ③ 수치를 취급하는 경우는 1자리 4 비트로서 1 바이트에 2자리를 넣을 수 있음 ■ 6 비트(1 바이트)를 기본 단위로 한 방식 ① 인쇄 전신기 등에서 6 비트를 단위로 하여 글자를 표시. ② 표현될 수 있는 글자의 종류는 64 가지 ③ 6 비트로 숫자만을 표현하면 2 비트를 쓸데 없이 낭비 ■ 8 비트를 이용한 코드 - ASCII 코드 - ANSI 코드 - EBCDIC 코드 (2)명령어 ■ 프로그램 내장식 컴퓨터를 동작시키는 기본이 되는 것으로 사용자가 컴퓨터를 동작시키는 경우에 그 조작 방법을 알려주는 정보가 됨 ■ 명령어의 형식과 그 기능은 하드웨어의 구성, 데이터의 형식 등과 함께 컴퓨터의 방식 설계에 있어서 가장 중요함 ■ 기능에 따른 컴퓨터 명령의 종류 : 연산 명령, 분기 명령, 제어 명령, 입출력 명령 ■ 명령어의 형식 - 명령부(OP code)와 주소부로 구성
|
부호 (operation code) |
수치 (operand) |
① 명령부(연산자) - 컴퓨터에 무슨 조작을 실행시키는가를 지시하는 장소 즉, 어떤 기능을 수행할 것인가를 나타내는 곳. - 명령부에서 표시하고 있는 코드(수치)는 컴퓨터에 무엇을 실행시킬 것인가를 말하는 사용자 측의 의사를 전달하는 정보. - 연산자의 수행에 필요한 피연산자의 출처(레지스터, 기억 장치, 스택) 표시. - 피연자의 종류(글자, 고정 소수점 혹은 부동 소수점으로 나타낸 수) 표시. ② 주소부(피연산자) - 데이터가 기억되어 있는 장소를 지정 - 주소부는 명령부의 종류에 따라서 그 동작이 달라짐. - 연산에 필요한 피연산자의 주소는 주 기억 장치의 주소 혹은 중앙 처리 장치 내의 누산기, 인덱스 레지스터, 스택, 범용 레지스터 중에 하나를 지정
| |
|
|
6-2-2 명령의 형식
|
|
|
|
|
0 - 주소 명령 |
|
|
|
1 - 주소 명령 |
|
|
|
2 - 주소 명령 |
|
|
|
3 - 주소 명령 |
| |
|
|
|
(1) 0 - 주소 명령 -모든 연산은 스택에 있는 피연산자를 이용하여 수행하고 그 결과도 스택에 저장 - 피연산자(주소)들의 출처와 연산 결과를 기억시킬 장소가 고정되어 있거나 특수한 구조상의 기능에 의하여 그 주소들을 항상 알 수 있는 경우 (2) 1 - 주소 명령 - 누산기(ACC)라고 하는 미리 약속된 범용 레지스터를 이용 - 주소 X로 지시되는 데이터와 이 누산기와의 사이에서 연산을 하고 그 결과(답)를 다시 누산기에 저장하는 형식
|
LOAD X ; (X) → ACC |
|
MUL X ; (ACC) * (X) → ACC |
|
STORE X ; (ACC) → X |
- 실제로 사용되는 컴퓨터에서 가장 많이 사용하는 명령 형식 - 가변 길이 워드의 데이터를 취급하는 방식에서 처리를 순차적으로 하는 방식에서 유리 (3) 2 - 주소 명령 -주소 X의 내용과 주소 Y의 내용과의 사이에서 연산을 하고 그 결과를 주소 X에 넣도록 구성되어 있음
|
MOV R1, (X) ; (X) → R1 |
|
ADD (X), (Y) ; (X) + (Y) → X |
- 실제로 사용되는 컴퓨터에서 가장 많이 사용하는 명령 형식 - 가변 길이 워드의 데이터를 취급하는 방식에서 처리를 순차적으로 하는 방식에서 유리 (4) 3 - 주소 명령 -연산에 필요한 피연산자의 주소를 모두 구체적으로 지정
|
|
MUL Z, (X), (Y) ; (X) * (Y) → Z |
-명령 수행을 위해서는 최소한 4 번 기억 장치에 접근해야 하므로 수행 시간이 길어서 특수 목적의 기계에만 사용 - 연산 후에도 입력 데이터가 변하지 않고 보존됨 - 고급 언어 프로그램(예를 들면 FORTRAN) 등의 컴파일러를 작성하는 데 적합하지만 워드 길이가 길게 되고, 연산 명령 이외의 명령에서는 3 종류의 주소를 유효하게 사용할 수 없으며 낭비가 생기므로 현재에는 거의 사용되지 않음 | |
|
|
6-2-3 명령의 종류
|
|
|
|
(1) 연산 명령 ■ 산술 연산 명령 - 고정 소수점 연산, 부동 소수점 연산, 10 진수 연산 등. - 수치 사이에 비교, 수 체계의 변환 ■ 논리 연산 명령 - 데이터의 전송, 논리적인 비교, 판정, 데이터 편집 등 ■ 연산 명령은 연산 수가 어디에 있는가에 의해서 다음과 같이 분류 ① 레지스터 - 레지스터 연산 - 레지스터의 내용끼리 연산을 하고 그 결과를 다시 레지스터에 저장 - 명령의 비트 수는 작아짐 - 범용 레지스터(general register)인 연산용 레지스터가 다수 필요 ② 레지스터 - 기억 장치 연산 - 레지스터의 내용과 기억 장치에 있는 내용(데이타)과의 사이에서 연산을 하고 결과를 레지스터에 저장하는 방식 ③ 기억 장치 - 기억 장치 연산 - 기억 장치에 있는 데이터끼리 연산을 하고 결과를 다시 기억 장치에 저장하는 방식 - 이 명령 형식은 2-주소 연산이며, 명령어의 비트 수는 많아짐 ④ 레지스터 - 리터럴(literal) 연산 - 명령어의 주소부에 있는 수치를 그대로 연산 수(비트 문자열)로서 레지스터와의 사이에서 연산을 하고 그 결과를 레지스터에 저장 - 정수 연산에 편리하고 처리 속도도 빠름 ⑤ 기억 장치 - 리터럴 연산 (2)비연산 명령 - 프로그램 실행의 순차 제어나 상태 제어 등을 하는 명령 - 분기 명령, 상태 변경 명령, 입출력 명령 등 ① 전송 명령 - 주 기억 장치와 중앙 처리 장치 사이에서 정보 교환을 하는 명령 - 주 기억 장치에서 중앙 처리 장치로 정보를 읽어 오는 적재(load) 또는 인출(fetch)명령과 중앙 처리 장치에서 주 기억 장치에다 정보를 저장시키는 저장(store)명령이 있음 ② 분기 명령(branching instruction) - 컴퓨터의 프로그램 실행 순서를 변경하는 명령 - 분기 조건은 컴퓨터의 사용자 즉, 프로그래머가 정함 - 분기 방식에는 무조건 분기, 조건 분기, 계수기의 내용을 변경하는 조건 분기 등이 있음
|
CC
|
분기 명령의 대응 코드(R1)
|
연산 명령의 실행 결과 |
|
0 0 0 1 1 0 1 1
|
0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0
|
연산 결과 = 0 연산 결과 < 0 연산 결과 > 0 범람(overflow) |
|
[표] 분기 명령 코드의 예 (IBM 360) |
- 명령 실행의 결과는 표에서 CC(condition code)로 표시하는 2 비트로 나타내고 분기 명령은 CC가 표시하는 네 종류에 대응하여 4 비트의 코드로 지정 ③ 상태 제어 명령(status switching instruction) - 사용자 쪽의 프로그램 오류 때문에 운영 체제가 파괴되어 시스템 제어의 혼란으로 시스템이 작동 중단하지 않도록 두 개의 프로그램 사이에 프로그램 레벨을 설정하여 그 상태를 제어하는 명령 - 제어 프로그램(OS)의 실행 상태를 감독자 모드(supervisor mode)라 하고 사용자 프로그램의 실행 상태를 사용자 모드(user mode)라 함 - 상태의 전환은 제어 프로그램에 의해서 관리 - 감독자 호출(supervisor call ; SVC) 명령을 이용하여 사용자는 제어 프로그램에게 상태 제어를 의뢰 ④ 입출력 명령(input and output instruction) - 주 기억 장치와 외부 장치(입출력 장치, 외부 기억 장치) 사이에서 정보의 전송을 수행하는 명령 - 지정된 장치의 상태를 시험, 제어 기능을 실행 하는 명령 - START I/O, TEST I/O, TEST CHANNEL, HALT I/O 등(IBM 360) ⑤ 매크로 명령 - 여러 개의 명령을 묶어서 하나의 명령으로 사용하는 명령 - 일반적으로 사용하는 일련의 명령어들을 하나로 묶어서 이름을 붙이고 한 개의 명령어로 간주하여 사용
| |
|
|
6-2-4 명령어 세트의 구조
|
|
|
|
(1) CISC(complex instruction sets) - 명령 수행 시간에 대한 부담이 적은 복합명령(complex instruction)들을 많이 포함하고 주소 지정 방식도 많이 사용하도록 한 것 - 명령 세트가 비대해지므로 결과적으로는 제어 장치가 복잡하게 됨. - 전형적인 CISC 명령 세트는 다양한 명령어와 데이터 형식을 사용해서 약 120 개에서 350 개의 명령어와 8 개에서 24 개에 이르는 범용 레지스터 세트를 포함하고 12 개 이상의 주소 지정 방식으로 많은 기억 장치 참조 연산을 수행함. ■ CISC의 특징 ① 명령어의 수가 많다(보통 120 ∼ 350 개). ② 명령어 중에는 특별한 일(task)을 하는 것도 있다. ③ 주소 지정 방식이 다양하다 (8 ∼ 24). ④ 명령어의 길이가 가변적이다. ⑤ 명령어 중에는 기억 장치 내의 피연산자를 처리하는 것도 있다. (2) RISC(reduced instruction sets) - 복합 명령어를 사용하지 않고 극히 간단한 명령어만을 사용하며,주소 지정 방식도 필요 최소한으로 국한하여 단순화하고, 명령의 형식도 단순화 함. - 수행되는 데 필요한 마이크로 코드의 양이 많고 사용 빈도가 낮은 명령어들을 하드웨어에서 제거하여 소프트웨어가 담당하게 하여 성능을 개선함. - 전형적으로 10개 미만의 고정 길이(32 비트)를 갖는 명령어들을 포함 - 단지 3개에서 5개의 주소 지정 방식만을 사용 - 대부분의 명령어들은 레지스터를 이용하고 있으며 기억 장치에 대한 접근은 단지 적재(load)/저장(store) 명령에 의해서만 수행 - 적어도 32개 이상의 큰 레지스터 파일이 사용되기 때문에 사용자 프로세스들 사이에 문맥 전환이빠름. - 고정 배선 제어(hardwired control) 방식을 사용하기 때문에 대부분의 명령어들이 하나의 명령 주기 동안에 수행 ■ RISC의 특징 ① 명령어 수를 최소화하여 시스템을 작고 빠르게 함 ② 주소 지정 방식을 최소화하여 제어 장치 구조를 간단하게 하고, 해독기에 필요한 결정 사항을 최소화 ③ 기억 장치에 대한 접근은 적재/저장 명령에 국한 ④ 모든 연산을 중앙 처리 장치 내의 레지스터에서 수행 ⑤ 명령어의 길이가 고정적이어서 해독하기 쉬움 ⑥ 적재/저장 명령을 제외한 모든 명령어의 실행은 한 사이클로 구성 ⑦ 고정 배선 제어방식의 제어장치 ⑧ 효율적인 파이프라인이 ⑨서브루틴 CALL과 RETURN에 요하는 시간을 최소화하기 위해서 overlapped register window를 사용 (3) CISC와 RISC의 구조 상 차이점 ■ CISC - 단일 캐시 내에 명령어와 데이터를 함께 가지는 구조를 사용하고 동일한 경로를 통해서 데이터와 명령어를 가져옴 - 마이크로 프로그램식 제어 방식을 사용 ■ RISC - 명령 캐시와 e이터 캐시가 분리되어 있어 서로 다른 접근 경로를 가짐 - 고정 배선 제어 방식을 사용
|
|
|
|
[그림] CISC 구조
|
6 - 3 주소 지정 방식 |
|
|
|
- 실제의 피연산자(operand)를 정하기 위해서 명령 내에 있는 주소부의 값을 수정하거나 다른 것으로 대체하는 것 - 주 기억 장치의 주소 혹은 중앙 처리 장치 내의 누산기, 인덱스 레지스터, 스택, 범용 레지스터 중에서 어느 것인가를 지정 - 전형적인 명령어 형식에서 주소부의 길이는 매우 제한되어 있으므로 주소 지정 방식 기법을 사용해서 포인터, 카운터 인덱싱, 프로그램 재배치 등의 편의를 제공하여 프로그램하는 데 융통성을 주고, 명령어에서 주소부의 비트 수를 줄일 수 있게 함 - 모든 컴퓨터 구조는 한 가지 이상의 주소 지정 방식을 제공하며, 일반적으로 각 명령 코드(op code)는 서로 다른 주소 지정 방식을 사용 - 명령어 형식에서 하나 혹은 그 이상의 비트들이 모드 필드(mode field)로 사용되며, 그 필드의 값에 따라 주소 지정 방식이 결정 - 유효 주소는 가상 기억 장치가 없는 시스템에서는 주 기억 장치의 주소 혹은 레지스터가 되고, 가상 기억 장치가 있는 시스템에서는 가상 주소(virtual address) 혹은 레지스터가 됨. - 주소는 글자(literal)로서 그대로 연산 수나 자리 이동 수로서 사용하는 경우 이외에는 컴퓨터에 데이터 처리를 행하는 일종의 제어 정보가 됨. ■ 지정된 자료에 접근하는 방식에 따라 - 직접 주소 지정 방식 - 간접 주소 지정 방식 - 계산에 의한 주소 지정 방식 - 이미디어트 주소지정 방식 ■ 주소를 실제의 기억 공간에 연관시키는 방법에 따라 - 절대 주소 - 상대 주소
| |
|
|
6-3-1 레지스터 |
|
|
|
(1) 직접 주소 지정 방식 - 명령어의 주소부가 기억 장치 내에 피연산자의 주소를 포함 - 간단한 형태의 주소 지정 방식
|

|
|
[그림] 직접 주소 지정 방식 |
- 한 번의 기억 장치 참조가 필요하고 간단(장점) - 융통성이 부족하고 제한된 주소 공간만 제공(단점) (2) 간접 주소 지정 방식 - 명령어의 주소부가 직접 데이터가 들어가 있는 기억 주소가 아니고 그 기억 주소가 있는 정보를 다시 주소 정보로서 사용하는 방식 - 몇 번이고 중복해서 사용할 수 있고 프로그램 기술상 극히 편리한 방식 (장점) : - 프로그램 상의 융통성 (단점) : - 명령어의 실행 과정에서 기억 장치 참조가 두 번 필요
|

|
|
[그림] 간접 주소 지정 방식 |
■ 간접 주소의 처리 동작 ① 명령어의 주소부(α)를 주소 레지스터로 전송 ② 주소로부터 정보를 판독 ③ α로부터 판독한 정보를 β라 하면 이 β를 실효 주소 정보로서 다시 데이터를 판독하고 그것을 실제의 처리 데이터로 함
|

|
|
[그림] 명령의 한 가지 형식 예 |
- 오른 쪽의 8 비트가 주소 정보로서 사용되며, 최대로 주소 지정 가능한 수는 256 워드로 됨 - 1 페이지 이상의 기억 주소를 이용하는 경우에는 간접 주소를 사용
① α = 28 = 256 ② 주소 α로서 256 워드의 간접 주소 β를 얻는다. ③ β = 216 (1 워드 16 비트) = 65,536
- 간접 명령을 이용하면 1 워드 16 비트의 고정 길이 워드 컴퓨터의 경우에도 최대 주소 지정 수는 65 k 워드로 됨
간접 주소와 인덱스 레지스터를 이용한 예 - 가정 A-주소부는 45,200 (10 진수)이고, 간접주소 B-주소부는 53,025과 인덱스 레지스터 X12 (01100)를 표시
|

|
|
[그림]간접 주소와 인덱스 레지스터를 이용한 명령어의 실행 예 |
- A-주소의 해석 간접 주소인 45,200 번지의 내용을 기억 장치로부터 판독하고 다시 18,560을 참조하여 그의 정보 563을 데이터로서 사용 - B-주소의 해석 인덱스 레지스터 X12의 내용이 130으로 되어 있으므로 53,025 + 130 = 53,155로 되고 이 53,155를 주소 정보로서 기억 장치의 주소 레지스터로 보내서 데이터 532를 판독 |
|
|
|
6-3-2 이미디어트 주소 지정 방식
|
|
|
|
- 주소부가 실제의 데이터를 포함하는 지정방식 - 가장 간단한 형태의 주소 지정 방식 - 상수의 정의나 사용, 혹은 변수의 초기 값을 줄 때 편리한 방식 | |
|
|
|
명령부 주소부
|
(장점) - 피연산자를 얻기 위해서 주 기억 장치에 접근할 필요가 없으므로 신속 (단점) - 사용할 수 있는 수의 크기가 주소부의 크기로 제한 |
|
[그림] 이미디어트 주소 지정 방식
|
| |
|
|
6-3-3 레지스터 주소 지정 방식 |
|
|
|
- 명령어의 피연산자를 중앙 처리 장치 내의 레지스터로 지정하는 방식 | |
|
|
|
(1) 레지스터 주소 지정 방식 - 직접 주소 지정 방식과 유사한 것으로서 주소부가 레지스터를 지정하는 방식 - 일반적으로 레지스터를 지정하는 주소부는 3 ∼ 4개의 비트를 가지므로 8 ∼ 16개의 범용 레지스터를 지정할 수 있음
|

|
(장점) - 주소부가 작아도 됨 - 중앙 처리 장치 내의 레지스터를 접근하므로 속도가 빠름 (단점) - 주소 공간이 제한 |
|
[그림] 레지스터 주소 지정 방식 |
|
(2) 레지스터 간접 주소 지정 방식 - 명령어의 주소부가 레지스터로 되는 것이고, 레지스터에 저장된 값이 피연산자의 주소가 저장된 기억 장치의 주소를 나타냄 - 장단점은 간접 주소 지정 방식과 유사
|

|
|
[그림] 레지스터 간접 주소 지정 방식 | | |
|
|
6-3-4 계산에 의한 주소
|
|
|
|
- 명령어의 피연산자 부분과 중앙 처리 장치의 특정한 레지스터의 내용과 더해서 피연산자의 유효 주소를 얻는 방식 - 유효 주소 계산에 사용되는 중앙 처리 장치의 레지스터 프로그램 계수기, 인덱스 레지스터, 베이스 레지스터
| |
|
|
|
(1) 인덱스 레지스터 주소 지정 방식 1) 인덱스 레지스터와 그의 기능 - 컴퓨터의 제어 동작을 도와주기 위해서 프로그램 명령에 따라서 제어 조작을 행할 수 있는 특별한 레지스터 ① 각종 명령어의 주소 수정이나 프로그램 루프에서 실행하는 반복연산의 회수를 계수 기록 - 일련의 연속된 계산을 하는 경우에 인덱스 레지스터를 사용하여 반복해서 더하는 프로그램을 실행하면 프로그램 단계 수가 현저하게 작아지고, 인덱스 레지스터가 연산 회수를 체크하는 프로그램 제어의 목적에만 사용되므로 연산 조작과 프로그램 제어 조작이 병렬로 진행되어 프로그램의 논리 구성이 명확하게 될 뿐만 아니라 실행 시간도 현저하게 빨라짐 - 명령 코드에 ADD 라고 하는 덧셈 명령을 넣고 인덱스 수정을 지정하면 덧셈이 실행되기 직전에 주소에 인덱스 레지스터의 내용을 더할 수 있으며 그 값을 새로운 주소로 실행함
|

|
|
[그림] 인덱스 레지스터에 의한 주소 수정 과정 |
② 각종 명령어의 주소 수정(address modification) - 인덱스 수정 동작은 서브루틴과 같이 반복해서 사용하는 프로그램이나 또 프로그램 실행을 어떠한 이유로 도중에서 중지하고 다시 처음부터 실행하여 고치도록 한 경우에 본래의 프로그램 명령이 변경되어 있지 않음 2) 인덱스 레지스터 주소 지정 방식 - 인덱스 레지스터의 내용과 변위(displacement)를 합해서 유효 주소를 만드는 것으로서 명령어의 주소부에 있는 변위는 기억 장치 주소를 가리키고 인덱스 레지스터는 그 주소로부터의 변위 값을 가진다. - 반복 계산을 수행할 때 효율적으로 사용될 수 있음
|

|
|
[그림] 인덱스 레지스터 주소 지정 방식 |
(2) 베이스 레지스터 주소 지정 방식 1) 베이스 레지스터의 기능 - 베이스 레지스터(기준 레지스터 ; base register)는 프로그램을 컴퓨터에서 실행하는 경우에 편리한 기구를 하드웨어 측에 만들은 것 ■ 인덱스 레지스터와 다른 점 ① 보통은 프로그램에 의해서 베이스 레지스터를 직접 취급하지 않는다. ② 베이스 레지스터의 내용은 반드시 기억 장치를 참조하기 전에 주소부에 더해져 실효 주소를 만들고 나서 실행한다. ■ 베이스 레지스터의 기능 ① 베이스 레지스터를 이용하여 작성된 프로그램의 주소를 프로그램의 적재(Load) 장소에 대응하여 수정해서 기억 장치의 어느 장소에서도 기억시킬 수 있도록 함. ② 많은 서브 프로그램을 결합해서 사용하는 경우 결합(linkage)으로서의 기능을 함 ③ 다중 프로그래밍(multiprogramming)을 하는 컴퓨터의 재배치용 레지스터로서 사용
|

|
|
[그림] 베이스 레지스터 주소 지정 방식 |
2) 베이스 레지스터 주소 지정 방식 - 베이스 레지스터의 내용과 변위(displacement)를 합해서 유효 주소를 만드는 지정 방식 - 베이스 레지스터는 기억 장치 주소를 기억하고 명령어의 변위는 그 주소로부터의 변위 값을 표현 - 세그멘테이션(segmentation)을 구현하는 데 편리하게 이용 (3) 상대 주소 지정 방식 - 프로그램 계수기의 내용을 명령어의 피연산자에 더하여 유효 주소를 계산하는 방식 - 분기 주소가 그 명령어 자신의 주변에 있을 때 분기형 명령어와 자주 사용 - 전체 주 기억 장치의 주소를 나타내는데 필요한 비트들의 수에 비교할 때 보다 적은 수의 비트를 가지고 지정할 수 있는 방식
|

|
|
[그림] 상대 주소 지정 방식 | | |
|
|
6-3-5 주소 표현 방식과 주소 정밀도
|
|
|
|
(1) 주소 표현 방식 - 완전 주소, 약식 주소, 생략 주소, 데이터 자신 ① 완전 주소 - 정보가 데이터이거나 주소이거나 구별하지 않고 그것이 기억된 장소에 직접 사상(mapping)시킬 수 있는 주소를 의미 - 가장 많은 비트 수를 필요로 하는 방식으로서 기억 장치 용량이 2n 워드일 때 n 비트가 필요 ② 약식 주소 - 주소의 일부분을 생략한 것을 의미 - 계산에 의한 주소는 대부분 약식 주소 - 약식 주소는 완전 주소보다 적은 수의 비트를 필요로 하지만 중앙 처리 장치 내의 레지스터를 이용하여야 함 ③ 생략 주소 - 주소를 구체적으로 나타내지 않아도 원하는 정보가 기억된 곳을 알 수 있는 경우에 사용 - 예를 들면 누산기가 하나인 경우에 생략 가능 - 명령어의 길이를 단축하는 데 가장 큰 기여를 함 ④ 데이터 자신 - 주소를 위하여 별도의 비트가 필요 없음 - 데이터 자신을 위하여 상당 수의 비트가 필요 (2) 주소 정밀도 - 주소로 지정할 수 있는 정보의 양 - 주소 정밀도에 따라 비트, 바이트, 워드, 페이지, 블록 단위의 주소가 있음 ■ 비트 단위 주소 - 주소 표현에 다수의 비트가 필요함 - 주소 정밀도가 높음 - 기억된 정보의 최소 단위까지 취급 가능 - 사용자가 프로그램하는 데 융통성이 있음 ■ 불록 단위 주소 - 비수치적 응용에 적합함 ■ 보통의 컴퓨터 - 바이트, 워드, 페이지 단위의 주소 사용 | |
|
|

|
|
|
|
|
|
7 - 1 제어 장치의 개념 |
|
|
|
- 주 기억 장치에 들어 있는 일련의 명령어를 순서대로 하나씩 호출하여 그 명령어의 의미를 해독한 후 결과에 따라서 컴퓨터의 각 장치를 동작시킴으로써 데이터를 명령대로 처리하는 장치 제어 장치의 두 가지 제어 기능 ① 프로그램에서 의도한 데로 프로그램 내의 명령들이 순서에 따라 수행되도록 하기 위한 제어 기능 ② 프로그램 내의 각 명령의 연산자 부분이 표시하는 명령이 올바로 수행되도록 하기 위한 제어 기능 | |
|
|
7-1-1 명령의 실행 순서 |
|
|
|
■ 호출 사이클(fetch cycle) : 기억 장치의 주소를 지정하는 데 따라 명령어를 인출 ■ 실행 사이클(execute cycle) : 읽어 낸 명령어를 해석 실행 ■ 순차 제어(sequence control) : 컴퓨터 내부에서는 클럭(clock)을 기본으로 하여 한 번에 1 명령씩을 순차적으로 실행
| |
|
|
|

|
|
[그림] 직명령 수행과 제어 |
|
① PC에 기억된 주소를 주 기억 장치로 전송 ② 수행할 명령을 명령 레지스터(IR)에 전송 ③ 명령의 연산자 부분과 피연산자 부분이 각각 제어신호 발생기와 주소 처리기로 전송 ④ 주소 처리기는 피연산자를 인출 할 경우에는 그 주소를 계산하고, 수행될 명령의 순서가 바뀔 때는 다음에 수행될 명령의 주소를 계산 ⑤ 제어 신호 발생기에서는 연산자를 해독하여 명령 수행을 위한 제어 신호를 발생시키며, 수행 순 서를 변경시킬 때는 주소 처리기를 동작시켜 수행될 명령의 주소를 계산 ⑥ 현재 IR 에 있는 명령의 수행이 끝나면 수행 순서를 변경시키는 명령이면 새로운 주소를 PC로 보내고 그렇지 않은 경우에는 PC의 내용을 증가 | |
|
|
7-1-2 제어 장치의 구성과 기능
|
|
|
|
(1) 명령 레지스터(IR ; instruction register) - 주기억 장치에서 인출된 명령어를 기억하는 레지스터 - 명령어의 명령부에 있는 명령 코드는 명령 해독기(instruction decoder)로 보내져 해독 - 명령어의 주소부에 있는 주소는 주소 해독기(address decoder)로 보내져서 해독
|

|
|
[그림] 제어 장치의 구성 |
(2) 명령 해독기(instruction decoder) - 명령 레지스터로부터 명령 코드를 받아서 해독 - 해독 결과는 타이밍 및 제어 회로로 구성된 제어 신호 발생기를 통하여 만들어진 제어 신호로 각 장치의 입구에 있는 게이트를 열고 닫음으로써 명령을 수행 (3) 제어 신호 발생기 - 타이밍 발생 회로와 제어 회로로 구성 - 명령 해독기로부터 온 제어 신호에 따라 명령어를 실행하는데 필요한 기계 사이클(제어 함수)를 발생시켜 각 장치에 보내는 논리회로 (4) 프로그램 계수기(PC ; program counter) - 다음에 실행될 명령어가 기억되어 있는 주 기억 장치의 주소를 기억하고 있는 레지스터 - 프로그램에서 분기할 때를 제외하고는 각 명령어가 수행될 때마다 1 ∼ 4 바이트의 일정한 값 만큼씩 증가 | |
|
|
7-1-3 제어장치
|
|
|
|
■ 컴퓨터의 제어 동작 - 명령어의 순차 제어 - 명령 코드의 번역과 주소부의 설정 - 명령어의 실행 | |
|
|
|
(1) 명령어의 순차 제어 - 프로그램 내장식 컴퓨터는 프로그램을 주 기억 장치에 일단 기억시켜 놓고 순차 제어 동작에 의해서 올바른 순서로 차례차례 인출하 여 실행 - 목적으로 하는 명령어를 인출할 경우 명령어가 기억된 주소를 주소 레지스터에 설정하고 판독 조작을 실행하면 목적으로 하는 명령어 가 기억 장치 버퍼 레지스터로 읽혀져 나오고, 이것을 명령 레지스터로 이동시켜 명령 실행 사이클로 제어를 옮김 - 주소 레지스터에 있는 내용은 프로그램된 명령어를 순차적으로 인출하는 주소와 이것을 실행하는 단계에서 사용하는 데이터를 인출 하는 주소 - 주소 레지스터의 입력은 프로그램 계수기, 또는 명령 레지스터의 주소부(operand address)에서 도입되므로 두 레지스터의 주소부는 OR 게이트로 결합되어 있음 - 프로그램 계수기의 내용이 주소 레지스터에 전송되는 주기는 명령의 호출 사이클에서 행해지며, 명령 레지스터의 주소부가 전송되는 주기는 명령의 실행 사이클에서 행해짐 ■ 기억 장치의 기본 워드 길이에 따라 프로그램이 전송되는 순서 ① 고정 길이 워드의 주소 전송 방식 ■ 고정 길이 워드(fixed length word) - 1워드의 자리 수(비트 수 또는 문자 수)가 명령의 종류, 방식에 관계없이 일정한 길이로 처리되는 방식 - 즉, 기억 장치의 기본 워드 길이가 일정하게 되어 있음 ■ 고정 길이 워드 방식의 특징 - 처리가 간단하다. - 주소 지정 방식이 간단하다. - 프로그램을 기계어에 의해서 수행하는 기회가 많은 것은 이 방식이 적합하다. - 짧은 자리 수의 데이터를 처리하는 경우에는 기억 장치에 낭비가 생긴다. - 긴 자리 수의 데이터가 필요한 경우에는 그 사용법에 무리가 생기는 등 컴퓨터의 사용 방법에 융통성이 없다. ■ 고정 길이 워드 방식의 주소 - 프로그램 전송은 1 워드 단위로 수행 - 프로그램 계수기 사용 ■ 프로그램 계수기 장치 - 입력에 "1"인 펄스가 들어 올 때 마다 그 내용을 1 씩 증가 - 프로그램 계수기의 내용은 호출 사이클에서 주소 레지스터로 전송되고 주소 디코더에 의해서 기억 장치의 내용을 판독
|

|
|
FF4
|
FF4
|
FF4
|
FF4
|
입력 |
주소 |
|
0 0 0 0 0 0 0 0 1 1
|
0 0 0 0 1 1 1 1 0 0
|
0 0 1 1 0 0 1 1 0 0
|
0 1 0 1 0 1 0 1 0 1
|
0 1 1 1 1 1 1 1 1 1
|
0 1 2 3 4 5 6 7 8 9 | |
|
[그림] 주소 계수기의 구성과 동작 |
② 가변 길이 워드의 주소 전송 방식 ■ 가변 길이 워드 방식의 특징 - 기억 장치의 기본 워드 길이가 가변적인 형식 - 명령의 종류, 데이터의 길이에 의해서 1 워드의 길이를 임의로 취한다. - 기억 장치가 유효하게 사용되고 낭비가 적다. - 명령의 종류에 따라서 서로 다른 자리 수, 또는 워드 길이를 사용하므로 처리가 복잡하다. - 주소가 불규칙한 수열로 되므로 기구가 복잡하다. ■ 가변 워드 길이 방식의 기억 주소 - 각 명령어가 차지하는 워드 길이에 대응해서 다음의 워드를 인출하는 주소를 결정 - 주소 전송 기구를 구현하는 회로 구성이 복잡하다. - 가변 워드 길이 방식의 워드 길이는 기본 워드 길이의 배수가 되도록 선택한다. (예) 1워드 길이(이하 W로 표시한다)를 2W, 4W, 8W, ...., 2nW (n = 0, 1, 2,...)
|

|
|
[그림] 가변 워드 길이 방식과 주소 전송 |
■ 프로그램 계수기 - 계수 입력이 가장 아랫 자리(LSB)에서 만이 아니고 21자리, 22자리, 23자리까지도 도입 가능 - 계수 입력의 제어를 워드 길이에 대응해서 수행하도록 구성해 놓으면 반드시 다음 명령어의 주소가 계수되고 주소 레지스터에 전송됨 - 각 명령어는 워드 길이를 지시할 명령 코드, 또는 워드 길이를 직접 지시하도록 되어 있음
|

|
|
[그림] 가변 단어 길이 방식의 프로그램 계수기의 구성 |
(2) 명령어의 해독과 주소부의 설정 - 주소 레지스터의 내용은 기억 장치에 있는 디코더 회로에 의해서 실제의 기억 장소를 지시하는 신호로 변환 - 기억 장치가 구동되면 판독된 명령어는 명령 레지스터(instruction register)로 전송 - 명령 레지스터에 세트된 정보는 연산자(operation field)와 피연산자(operand field)로 나누어지고, 연산자는 명령 코드를 해독하는 디코더 회로로, 피연산자는 주소 코드로서 주소 레지스터로 전송 - 명령 코드 해독 회로는 연산자에 어떤 동작을 하는가를 해석하고 명령 실행에 필요한 신호를 각 기능 장치에 전송 - 피연산자는 명령 코드를 해독하고 있는 동안 주소 레지스터를 거처서 주소 디코더 회로에 보내져 명령 실행에 필요한 데이터를 준비
| |
|
| |
[그림] RISC 구조 | | |
|
7 - 2 마이크로 오퍼레이션과 마이크로 사이클 |
|
|
|
|
|
7-2-1 마이크로 오퍼레이션 |
|
|
|
- 명령어의 수행을 위해서 중앙 처리 장치가 의미 있는 상태 변환을 할 수 있도록 제어하는 동작 - 하나의 클럭 시간동안 레지스터에 저장되어 있는 데이터에 대하여 실행되는 기본 동작 - 중앙 처리 장치 내의 레지스터들과 연산기의 종류 그리고 그들이 상호 연결된 형태에 따라서 컴퓨터가 수행할 수 있는 마이크로 오퍼레 이션의 종류가 결정 - 하나의 명령 사이클은 일련의 마이크로오퍼레이션들로 구성
(예) 누산기와 기억장치 수의 덧셈의 경우 가. PC → MAR : 실행될 명령의 주소를 지정한다. 나. MBR(OP) → IR : 명령어 연산자를 명령 레지스터에 넣는다. 다. IR 해독, PC + 1 → PC : 명령어를 해독하고, 프로그램 계수기를 1 증가시킨다. 라. MBR(addr) → MAR : 피연산자 주소를 지정한다. 마. MBR + AC → AC : 두 수의 덧셈을 한다. | |
|
|
7-2-2 마이크로 사이클
|
|
|
|
- 마이크로 오퍼레이션을 수행하는 데 필요한 시간 - 중앙 처리 장치의 속도를 나타내는 데 사용할 (1) 동기 고정식(synchronous fixed) - 마이크로 사이클 타임을 중앙 처리 장치 클럭의 주기와 같게 만들고, 가능한 모든 마이크로 오퍼레이션들 중에서 수행 시간이 가장 긴 것을 마이크로 사이클 타임으로 정의하는 방식 - 모든 마이크로 오퍼레이션들의 수행 시간이 유사한 경우에 제어가 간단하므로 유리 - 마이크로 오퍼레이션들 사이에 수행 시간의 차이가 현저할 때는 중앙 처리 장치의 시간을 낭비 (2) 동기 가변식(synchronous variable) - 마이크로 사이클 타임을 마이크로 오퍼레이션에 따라 다르게 하는 방식 - 수행 시간이 유사한 것끼리 모아서 한 개의 그룹을 만들어, 전체의 마이크로 오퍼레이션을 몇 개의 그룹으로 나누고 각 그룹에 대하여 서로 다른 마이크로 사이클 타임을 정의 - 마이크로 오퍼레이션들 사이에 수행 시간의 차이가 현저할 때 중앙 처리 장치의 시간 낭비를 줄여 효율적으로 이용할 수 있음 - 제어가 복잡해짐 | |
|
7 - 3 명령어 사이클 |
|
|
|
■ 기본 명령어 사이클 - 명령어 사이클은 호출 사이클과 실행 사이클로 구성 - 호출 사이클과 실행 사이클은 상호 폐로로 표시되는 귀환 제어로 구성 - 우선 호출 사이클이 시작되고 나서 이것이 종료하면 그 시점에서 신호를 내보내 다음의 실행 사이클로 제어 신호를 넘기고, 실행 사이클 이 종료하면 그 신호에서 다시 호출 사이클로 제어 신호가 되돌려 지며 이것이 상호 반복되어 차례 차례로 명령어가 해석 실행 ■ 명령어 사이클의 확장 - 명령 사이클에는 호출 사이클과 실행 사이클 이외에도 간접 사이클(indirect cycle)과 인터럽트 사이클(interrupt cycle)이 있음 - 간접 사이클은 주 기억 장치에서 판독한 명령어가 간접 주소 지정 방식일 때 유효 주소를 주 기억 장치에서 읽어내는 기능을 수행 - 인터럽트 사이클은 명령어를 실행 도중에 인터럽트가 발생하면 그에 합당하는 인터럽트 처리를 수행
|
명령 사이클 |
역 할 |
|
호출(fetch)
|
1. 수행할 명령을 주 기억 장치에서 읽는다. 2. 명령의 종류 판단(해독) 3. (ㄱ) 주소가 직접 주소인 경우 수행 후 다시 fetch로 변천 (ㄴ) 주소가 직접 주소가 아닌 경우 유효 주소 계산 후 간접주소이면 indirect로, 아니면 execute로 변천 |
|
간접(indirect)
|
1. 주소를 기억 장치에서 읽음 2. (ㄱ) 간접 주소이면 다시 indirect로 변천 (ㄴ) 간접 주소가 아니고 분기 명령이면 수행 후 fetch로 변천, 분기 명령이 아니면 execute로 변천 |
|
실행(execute)
|
1. 데이터를 기억 장치에서 읽음 2. 수행 후 fetch로 변천 |
|
인터럽트 (interrupt)
|
1. 프로그램계수기 내용을 스택에 저장 2. 인터럽트 허가(INTACK 신호 전송) 3. 프로그램계수기의 내용을 인터럽트 루틴의 시작 번지로 변경 4. 인터럽트 마스크 5. 인터럽트 루틴을 처리한 후 fetch로 변천 | |
|
[ 표 ] 명령 사이클과 그 역할 |
|

|
|
[그림] 명령 사이클의 변천도 | | |
|
|
7-3-1 명령어 호출 사이클
|
|
|
|
- 모든 명령어는 주 기억 장치에 기억되어 있으므로 CPU내에서 수행을 하기 위해서는 한 번은 주 기억 장치에 접근해야 함 - 주 기억 장치에는 일련의 명령어가 순서에 따라 연속적으로 기억되어 있음 - 명령어를 하나씩 순서대로 실행시키기 위해서는 최초의 명령어가 기억되어 있는 주소를 알고 여기에서부터 차례로 명령어를 호출 - 최초 명령어의 기억 번지를 프로그램 계수기에 미리 넣어 줌 - 프로그램을 실행시키려면 프로그램 계수기가 지시하는 번지에 기억되어 있는 명령어가 명령 레지스터로 인출되고 프로그램 계수기의 내용은 1씩 증가하고, 명령 레지스터로 인출된 명령어는 명령 레지스터에 잠시 저장되었다가 명령 해독기로 가서 해독됨
|

|
|
[그림] 컴퓨터 제어의 구성 예 (명령 호출 사이클과 실행 사이클) |
■ 호출 사이클 - FF는 최초에는 호출 사이클로 세트되어 있고, 이 신호가 게이트 A1으로 전송 - 게이트 A1의 다른 한 쪽 입력은 프로그램 계수기의 출력과 접속되어 있으며, 프로그램 계수기는 하나의 명령어를 실행할 때마다 1 씩 증 가되어 순차적으로 다음 명령어를 가리키는 주소를 생성 - 게이트 A1을 통과한 프로그램 계수기의 내용은 주 기억 장치의 주소 레지스터에 입력되어 지정된 명령어를 인출 - 주 기억 장치에서 판독한 명령어는 게이트 A4를 거쳐서 명령 레지스터로 전송 ■ 실행 사이클 - 명령어의 판독 종료 신호에 의해서 FF를 리세트시키고 실행 사이클로 전환 - FF의 리세트 쪽의 출력 신호는 게이트 A2와 A3에 동시에 보내지며, 게이트 A3은 명령 레지스터의 연산자를 명령 코드 해독 회로로 보내 고 동일한 시각에 피연산자는 게이트 A2를 통과해서 주소 레지스터로 전송 - 기억 장치에서 판독된 데이터는 누산기 레지스터로 가서 일시적으로 저장되었다가 명령 실행에 사용
■ 타이밍도로 나타낸 명령어 사이클
|
|
| [그림] 명령 호출 사이클 동작의 설정 |
- 클럭 펄스 CP1에서 기억 장치의 <판독>에 신호를 전송 - 클럭 펄스 CP2에서 프로그램 계수기 PC를 1 증가 - 클럭 펄스 CP3에서 메모리 버퍼 레지스터 MBR을 클리어 - 이상 세 개의 클럭 펄스를 종료할 무렵에 기억 장치에서 판독 정보가 출력되어 메모리 버퍼 레지스터 MBR에 입력 - 클럭 펄스 CP4에서 명령 레지스터 IR을 클리어 하고, 이 시각에 기억 장치에서 판독한 명령어가 메모리 버퍼 레지스터 MBR에 완전히 세트 - 클럭 펄스 CP5에서 MBR의 내용을 명령 레지스터 IR로 이동시키고 동시에 명령부(명령 코드)의 번역이 시작 - 클럭 펄스 CP8의 시각에서 완전히 종료 - <호출 사이클>은 CP1 ∼ CP5로 완료되고, 명령 실행 사이클은 CP6에서 시작 - <실행 사이클>에서 기억 장치를 참조하는 명령의 경우에는 기억 동작(판독, 기록하는 동작)이 완전히 종료하고 나서 CP8까지 기다려야 함 ■ 명령 호출 사이클 논리 회로 - 각 클럭 펄스(CP1 ∼ CP5)는 각각 <호출 사이클> F와 논리 곱(AND)을 하여 분배 - 각 출력은 클럭 펄스 CP에 따라서 시간적으로 동기가 되어 각 기능 장치로 보내져서 필요한 동작을 수행
|

|
|
[그림] 호출 사이클의 논리 회로 | | |
|
|
7-3-2 명령어 간접 사이클
|
|
|
|
- 주 기억 장치에서 읽어 낸 명령의 주소가 간접 주소일 때 다시 주 기억 장치에 접근하여 유효 주소를 읽어 오는 과정 - 주 기억 장치에서 다시 주소를 읽은 후에 이것이 유효 주소 즉, 직접 주소인가 혹은 간접 주소인가를 검사하여 간접 주소이면 다시 기억 장치에 접근하여 유효 주소를 읽기 위해 앞에서와 같은 일을 반복하고, 직접 주소이면 실행 사이클을 수행 - 기억 장치에서 읽어 낸 주소가 직접 주소인가 혹은 간접 주소인가를 구별하는 방법은 읽어 낸 주소에 특정한 비트를 두고 그것이 1이면 간접 주소, 0이면 직접 주소로 사용할 수 있도록 구분 | |
|
|
7-3-3 명령어 실행 사이클 |
|
|
|
- 중앙 처리 장치가 명령어의 유효 주소에서 데이터를 읽어와 연산자를 수행하는 과정 - 앞의 타이밍도에서 FF는 명령어의 판독이 종료한 시점(CP8)에서 신호를 받고 상태를 <실행 사이클>로 전환시키며, 명령 레지스터 IR 의 주소부가 게이트 A2를 거처서 기억 장치의 주소 레지스터 MAR에 입력 - 동시에 게이트 A3으로 신호가 보내지고 명령어의 명령부(OP 코드)가 명령 코드 번역 회로(디코더)로 전송되며, 프로그램 계수기 PC가 1 증가됨 - 컴퓨터의 각 타이밍 펄스에 대한 동작의 할당은 각 컴퓨터에 따라 다르고 시스템 설계에 있어서 고려해야 할 중요한 점이 됨 | |
|
|
7-3-4 명령어 인터럽트 사이클
|
|
|
|
- 중앙 처리 장치는 명령 실행 사이클의 마지막에 인터럽트가 발생되었는지를 검사하고, 이때 인터럽트가 발생했으면 현재 실행 중인 명 령어를 실행한 후 인터럽트 사이클로 들어간다. - 기계의 고장, 정전, 또는 프로그램의 잘못으로 인하여 더 이상 명령들을 수행할 수 없을 때는 현재 수행하고 있는 명령의 수행을 끝마치 고, 그 때의 중앙 처리 장치의 상태를 보관한 후 응급조치를 취하는 프로그램을 수행 - 인터럽트가 발생하면 중앙 처리 장치의 상태를 기억 장치나 레지스터에 기억시켜 놓기 위해서 하나의 기억 장치 사이클을 할당 - 인터럽트 상태가 끝나면 다시 명령을 수행하기 위하여 호출(fetch) 상태로 변천 | |
|
|
7-3-5 메이저 상태와 타이밍 상태 |
|
|
|
(1) 메이저 상태(major state) ■ 메이저 상태 - 중앙 처리 장치가 무엇을 하고 있는 가를 나타내는 상태 ■ 메이저 상태 레지스터 - 중앙 처리 장치가 무엇을 하고 있는 가를 나타내는 레지스터 - 주 기억 장치로부터 명령 또는 데이터를 읽거나 수행 결과를 주 기억 장치에 기억시키는 데 걸리는 시간이 명령 수행 시간에 지배적 인 역할을 하므로 메이저 상태는 기억 장치를 접근할 때마다 변한다 - 주 기억 장치 접근과 결부하여 주 기억 장치에 한 번만 접근하여 수행할 수 있는 명령들을 1-사이클 명령, 두 번 접근하여 수행할 수 있는 명령들을 2-사이클 명령, 세 번 접근하여 수행할 수 있는 명령들을 3-사이클 명령이라고 함 ■ 메이저 사이클(major cycle) - 한 메이저 상태에 머무는 시간 (2) 타이밍 상태(timing state) - 제어기의 시간에 관한 정보를 나타내는 상태 - 타이밍 상태에 머무는 시간은 마이크로 사이클 타임과 같으므로, 각 타이밍 상태에 있는 동안 하나의 마이크로 오퍼레이션을 수행할 수 있음 - 타이밍 상태의 수는 하나의 명령 사이클을 수행하는 동안 몇 개의 마이크로 오퍼레이션을 수행할 것인가에 따라 결정 - 타이밍 상태 사이의 변천은 중앙 처리 장치 클럭 펄스에 의하여 서로 다른 타이밍 상태 사이를 순서적으로 변천하며, 각 명령 사이클 을 시작할 때 첫 번째 타이밍 상태에 있게 되고 그 명령 사이클이 끝날 때 마지막 타이밍 상태에 있게 됨 | |
|
|
|
| | | |
|
7 - 4 타이밍 펄스 |
|
|
|
- 명령의 실행에 필요한 타이밍 펄스(timing pulse)는 컴퓨터 시스템의 설계에 따라서 다름 | |
|
|
7-4-1 동기식 컴퓨터의 제어 |
|
|
|
- 클럭 펄스를 기본으로 하여 각 게이트를 제어해 가는 방식
|
|
|
[그림] 순차 동작에 필요한 타이밍 펄스 발생 원리 |
- 명령 코드가 해독기 회로에 의해서 번역되면 어느 타이밍 펄스 그룹을 선택 사용하는가가 결정 - 타이밍 펄스 그룹은 타이밍 펄스 발생기에서의 클럭을 기본으로 하여 각종 논리 회로에 의하여 생성 - 명령 코드에 의해서 선택된 타이밍 펄스 그룹은 각 기능 장치의 게이트 제어 신호로서 사용 - 이 제어 신호는 각 게이트에 동시에 보내지는 것과 시간적으로 어떤 간격을 두고서 몇 단계인가로 나누어서 보내는 펄스 그룹과의 조합 으로 되어 있음
|
|
|
[ A ] 타이밍 펄스 발생 회로 |
|
|
|
[ B ] 타이밍 펄스 챠트
[그림] 타이밍 펄스 발생 장치와 타이밍 펄스 차트 |
|
|
|
[ A ] 컴퓨터의 클럭 펄스 분배 장치 |
|
|
|
[ B ] 컴퓨터 클럭의 타이밍 차트
[그림] 컴퓨터의 클럭 분배장치와 타이밍 차트 | |
|
|
|
7-4-2 비동기식 컴퓨터의 제어
|
|
|
|
- 위의 회로는 풀리풀롭을 이용한 비동기 방식으로써 FF가 세트 상태인 경우에는 조작 B를 실행하고 이것이 종료하면 그 신호에 의해서 FF를 리세트하며 게이트가 전환되어 조작 A가 실행된다. - 비동기식 제어 펄스의 전달에는 풀리풀롭(또는 latch)이 많이 사용 - 실제의 컴퓨터에서는 모든 제어 기구가 동기식 또는 비동기식만으로 구성되는 경우는 드물고 두 가지의 조합을 채용하고 있는 경우가 많다. - 예를 들면 명령 코드의 해독 실행 등은 타이밍 펄스를 이용한 동기식으로 되고 입출력 인터페이스와 같이 제어 대상의 동작 속도가 컴 퓨터 본체와 현저하게 다르게 되어 있는 경우에는 비동기식의 제어 방식이 많이 사용되고 있다. | | |
|