Download presentation
Presentation is loading. Please wait.
Published byPearl Lynch Modified 6년 전
1
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
기억 장치 전자계산기 구조 6. 입력 및 출력 7. 인터럽트 및 병렬 컴퓨터 구조
2
1 Chapter 논리 회로 이렇게 준비하세요. 불 대수의 최소화 개념, 게이트로 구성된 논리 회로의
이렇게 준비하세요. 불 대수의 최소화 개념, 게이트로 구성된 논리 회로의 분석, 조합 논리 회로에서는 반가산기, 전가산기, 디코더에 대해서, 순서 논리 회로에서는 플립플롭에 대해서 많이 출제되니 완벽하게 파악하기 바랍니다. 논리 회로
3
POINT1 불 대수와 논리 회로 (1) 불 대수 불 대수의 기본 공식 • 불 대수(Boolean Algebra)
(1) 불 대수 불 대수의 기본 공식 • 불 대수(Boolean Algebra) : x나 y의 수치적 상관 관계가 아닌 논리적 상관관계를 다루며, 컴퓨터 동작의 기초가 된다. • 디지털 회로의 설계와 분석을 쉽게 하기 위해서 사용하는 이진 변수와 논리 연산을 나타내는 것이다. • 불 대수는 하나의 명제에 대한 참(True)과 거짓(False), 또는 0과 1로 한정한다.
4
불 대수의 기본 공식 교환 법칙 • A + B = B + A • A·B = B·A 결합 법칙 • (A + B) +C = A + (B + C) • (A·B)·C = A·(B·C) 분배 법칙 • A·(B + C) = (A·B) + (A·C) • A + (B·C) = (A + B)·(A + C) 멱등 법칙 • A + A = A • A·A = A 보수 법칙 향등 법칙 • A + 0 = A • A + 1 = 1 • A·0 = • A·1 = A
5
드모르간의 법칙 복원 법칙 흡수 법칙 • A + A·B = A, A·(A + B) = A
6
(2) 논리 회로 논리 게이트 • 논리 게이트(Logic Gate):논리 회로(Logic Circuit)를 구성하는 기본적인 전자 소자이다. • 0 또는 1을 입력과 출력으로 사용한다. 기본적인 논리 게이트
8
(3) 논리 연산 AND (Masking Operation) : 비수치 데이터에서 마스크를 이용하여 불필요한 부분을 제거하기 위한 연산이다. OR (Selective-Set) 두 개의 데이터를 섞거나 일부에 삽입하는 데 사용되는 연산이다. XOR:두 개의 데이터를 비교하는 데 사용되는 연산이다.
9
POINT2 논리 회로의 간소화 (1) 논리식의 간소화 논리식의 간소화 예제
• 불 대수(Boolean Algebra)는 x나 y의 수치적 상관 관계가 아닌 논리적 상관관계를 다루며, 컴퓨터 동작의 기초가 된다. • 디지털 회로의 설계와 분석을 쉽게 하기 위해서 사용하는 이진 변수와 논리 연산을 나타내는 것이다. • 불 대수는 하나의 명제에 대한 참(True)과 거짓(False), 또는 0과 1로 한정한다.
11
(2) 카르노맵의 정의 카르노맵 카르노맵 그리는 순서 카르노맵을 이용한 간략화
- 논리식을 간략화하여 표기하는 방법으로, 변수의 개수를 n이라고 하면 총 2n개의 칸이 필요하다. 카르노맵 그리는 순서 • 변수의 개수를 파악 후 변수의 개수가 n개이면 2n의 사각형을 그린다. • 변수 값을 채운다. • 2n으로 변수 값을 묶는다. • 묶은 값을 읽는다. 카르노맵을 이용한 간략화 Σ:결과가 1인 항, Π:결과가 0인 항
14
POINT3 조합 논리 회로 (1) 조합 논리 회로의 개념 (2) 조합 논리 회로의 종류 조합 논리 회로
• 현재의 입력 값으로부터 출력 값이 결정되는 논리 회로이다. • 기억 능력이 없다. 종류 • 반가산기, 전가산기, 병렬가산기, 반감산기, 전감산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서 등이 있다. (2) 조합 논리 회로의 종류 반가산기(Half Adder) • 덧셈해야 할 2개의 비트를 받아서 2개의 출력, 즉 합(Sum)과 자리 올림 수(Carry)를 구하는 회로. • 합은 XOR, 자리올림은 AND 연산자로 구할 수 있다.
15
전가산기(Full Adder) • 반가산기의 회로에 뒷자리에서 발생한 자리올림 수를 처리할 수 있도록 한 회로이다.
• 2개의 반가산기와 1개의 OR 회로로 구성되어 있다.
16
병렬가산기(Parallel Adder)
• n비트의 2진수 A, B에 대한 덧셈을 n개의 전가산기로 구현한 실질적인 가산기이다. 디코더(Decoder) = 해독기 • n비트 입력 단자를 통하여 들어온 2진 신호를 최대 2n개의 출력 단자 중 하나를 선택하는 회로이다. • XY 2개의 입력신호를 2×2개의 출력선으로 4개 중 하나를 선택한다. • AND 회로의 집합으로 구성된다. • 논리 회로
17
멀티플렉서(MUX, Multiplexer)
인코더(Encoder) • 디코더의 반대 기능을 수행한다. • 2n개의 입력 단자를 통하여 들어온 데이터를 n개의 출력 단자로 코드화해서 출력하는 회로이다. 멀티플렉서(MUX, Multiplexer) • n개의 입력 데이터에서 입력 단자를 선택하여 단일 채널로 송신하는 회로이다. • 버스(bus)를 구성하는 데 사용 가능하다.
18
디멀티플렉서(DeMUX, DeMultiplexer)
• 멀티플렉서의 반대 기능을 수행한다. • 1개의 입력 단자로 들어오는 데이터를 2n개의 출력 단자 중 1개를 선택하여 출력하는 회로이다. Look Ahead Carry(예견 자리올림) 가산기 • 병렬 가산기에서 한 비트를 계산해 자리올림 시간을 줄이는 방법이다. 자리올림을 미리 계산해 고속 가산기 제작을 위해 사용한다.
19
POINT4 순서 논리 회로 (1) 순서 논리 회로의 개념 (2) 플립플롭(FF, Flip-Flop) 순서 논리 회로
• 입력 값과 현재의 상태에 따라 출력 값이 결정되는 논리 회로이다. • 기억 능력이 있다. 종류:동기식-플립플롭, 카운터, 레지스터, RAM, CPU, 비동기, 랫치 (2) 플립플롭(FF, Flip-Flop) • 전원이 공급되는 동안, 상태 변화를 위한 신호가 발생할 때까지 현재의 상태를 그대로 유지하는 논리회로이다. • 1비트를 기억하는 메모리 소자이다. • 종류:RS 플립플롭, D 플립플롭, JK 플립플롭, T플립플롭, 마스터-슬레이브 플립플롭 등이 있다. RS 플립플롭(Reset-Set FF) • S(Set, 세트) 입력선 및 R(Reset, 리셋) 입력선이 있고, S 신호에 따라 1의 상태로, R 신호에 따라 의 상태로 되며, S 신호와 R 신호가 동시에 인가될 때의 상태가 규정되어 있지 않은 플립플롭. • 0과 1이 입력되면 원래 입력 값에 변화가 없고 1과 0이 입력되면 원래 값과 상관없이 1이 된다.
20
[RS 플립플롭] D 플립플롭(Delay FF)
• RS 플립플롭의 R 입력선에 인버터(Inverter)를 추가하고 S 입력선과 묶어서 한 개의 입력선으로 구성 한 플립플롭이다. • 입력 값을 그대로 저장하는 기능을 수행한다.
21
마스터-슬레이브 플립플롭(Master-Slave FF)
JK 플립플롭(JK FF) • RS 플립플롭에서 S=R=1일 때 동작되지 않는 문제점을 보완한 플립플롭이다. • RS 플립플롭의 S와 R을 각각 J(Jack)와 K(King)로 사용한다. • 다른 모든 플립플롭 대용으로 사용할 수 있다. • 응용 범위가 넓다. • 집적 회로화해 가장 널리 사용된다. • J, K 모두 1이면 상태를 보수로 만든다. T 플립플롭(Toggle FF) • JK 플립플롭의 두 입력선을 묶어서 한 개의 입력선으로 구성한 플립플롭이다. • Toggle 또는 Trigger 플립플롭이라고도 한다. • T=0일 때는 변화가 없고, T=1일 때는 현재 상태를 토글(Toggle)시켜 보수로 전환시킨다. 마스터-슬레이브 플립플롭(Master-Slave FF) • 출력 측의 일부가 입력 측에 궤환되어 유발되는 레이스 현상을 없애기 위해 고안된 플립플롭.
22
(3) 레지스터 및 카운터 레지스터 • n비트 레지스터는 n개의 플립플롭으로 구성되어 있으며, n비트를 저장할 수 있다. • 일반적으로 플립플롭(Flip-Flop)이나 래치(Latch) 등을 연결하여 구성된다. • CPU 내부에서 처리할 명령어나 연산의 중간 값 등을 일시적으로 저장하는 기억 장치이다. • 레지스터의 종류:시프트(Shift) 레지스터, 병렬 시프트(Parallel Shift) 레지스터 등이 있다. 카운터 • 입력 펄스에 따라 미리 정해진 순서대로 상태가 변하는 장치다. n개의 플립플롭을 가진 이진 카운터의 경우 0부터 2n-1까지 카운트할 수 있다. • 카운터의 종류:리플(Ripple) 카운터, 모드(MOD) 카운터 등이 있다.
23
■ 비동기식(리플) 카운터(asynchronous counter) - 각 플립플롭의 트리거 입력을 전단의 출력에 연결하여 전단의 출력이 후단의 입력으로 들어와 동작하도록 구성(직렬연결) - 각 단을 통과할 때 마다 지연시간이 누적되므로 고속 카운터에는 부적당 - 매우 높은 주파수에는 부적당, 비트수가 많은 카운터에는 부적합함 ▶ 장점 : 조합 논리회로가 필요 없을 정도로 회로가 간단. (동기식 카운터에 비해 회로가 간단해 진다) ▶ 단점 : 플립플롭들은 동일 클럭에 변하지 않고, 한 플립플롭의 출력이 다른 플립플롭의 클럭으로 동작하기 때문에 지연시간이 길어지게 된다 시스템의 상태는 모든 플립플롭의 전이가 완료될 때까지 결정되지 않는다. ■ 동기식 카운터 - 모든 플립플롭들이 하나의 공통클럭에 연결되어 있어서 모든 플립플롭이 동시에 트리거(trigger) 되지만, 리플(ripple) 카운터라고도 불리는 비동기식 카운터는 앞쪽에 있는 플립플롭 의 출력이 뒤쪽에 있는 플립플롭의 클럭으로 사용된다. - 비동기식 카운터는 동기식 카운터에 비해 회로가 간단해 진다는 장점이 있으나 전달지연이 커진다는 단점이 있다.
24
2 Chapter 자료 표현 및 연산 이렇게 준비하세요.
이렇게 준비하세요. 기사를 준비하는 수험생은 자료 표현보다는 연산에 관한 문제가 더 많이 출제되니 그쪽에 치중하고, 산업기사를 준비하는 수험생의 경우는 자료 표현 및 연산이 가장 많이 출제되는 부분이니 전반적으로 준비해야 합니다. 자료 표현 및 연산
25
POINT5 자료의 표현 단위와 표현 방식 (1) 자료 표현의 단위 비트 (Bit , Binary Digit)
• 컴퓨터 기억의 최소 단위이다. • 이진 자료(0 또는 1) 하나를 표현한다. 니블 (Nibble) • 4개의 비트가 모여 1개의 니블을 구성한다. • 16진수 한 자리를 표현한다. 바이트 (Byte) • 문자 표현의 최소 단위이다. • 8개의 비트가 모여 1바이트를 구성한다. • 주소 지정의 단위로 사용한다. 워드 (Word) • 컴퓨터가 한 번에 처리할 수 있는 명령 단위이다. • 하프워드(Half Word):2Byte • 풀 워드(Full Word):4Byte • 더블워드(Double Word):8Byte 필드 (Field) • 파일 구성의 최소 단위이다. • 아이템(Item), 항목이라고도 한다. 레코드 (Record) • 1개 이상의 관련된 필드가 모여서 구성된다. • 컴퓨터 내부의 입·출력 처리 단위이다. • 일반적으로 레코드는 논리 레코드(Logical Record)를 의미한다. 블록 (Block) • 1개 이상의 논리 레코드가 모여서 구성된다. • 물리 레코드(Physical Record)라고도 한다.
26
(2) 자료의 표현 방식 수치 파일 (File) • 같은 종류의 여러 레코드가 모여서 구성된다.
• 프로그램 구성의 기본 단위이다. 데이터베이스(Database) 1개 이상의 관련된 파일의 집합이다. (2) 자료의 표현 방식 수치
27
(3) 자료의 내부적 표현 문자 고정 소수점(Fixed Point) 표현 방식 • 10진 연산
- 10진수 1자리를 2진수 4자리로 표현한다. - 부호비트:음수 D, 양수 C
28
부동 소수점(Floating Point) 표현 방식
• 2진 연산 - 10진수 전체 값을 2진수로 변환하여 표현한다. - 음수 표현 방법 부동 소수점(Floating Point) 표현 방식 • 고정 소수점 표현보다 매우 작은 수와 매우 큰 수의 표현에 적합하다. • 표현의 정밀도를 높일 수 있으며, 과학이나 공학, 수학적인 응용에 주로 사용된다. • 음수를 나타내는 방법 중 지수는 부호에 관계없이 기본값에 더한다. • 형식 자료의 내부적 표현 • 부동 소수점 연산 종류 ① 단정도(Single Precision):32bit 구분 표현 방법 표현 범위 부호 및 크기(절대치) 양수 표현에서 부호 비트 0을 1로 변환 - (2n-1-1) ~ + (2n-1-1) 부호화 1의 보수 양수 표현에서 1의 보수 표현으로 변환 부호화 2의 보수 양수 표현에서 2의 보수 표현으로 변환 - (2n-1) ~ + (2n-1-1)
29
부동 소수점의 덧셈과 뺄셈 순서 부동 소수점의 곱셈 알고리즘 부동 소수점의 나눗셈 알고리즘
② 배정도(Double Precision):64bit 부동 소수점의 덧셈과 뺄셈 순서 • 부동 소수점 수는 가수의 소수점의 위치가 지수에 의해 결정되므로, 다음과 같이 먼저 두 수의 지수가 같도록 가수를 조작한 후에 덧셈 혹은 뺄셈을 수행한다. - 0인지의 여부를 조사한다. - 지수 조정(지수 부분이 큰 것을 중심으로 가수의 위치를 조정함)한다. - 가수의 덧셈 혹은 뺄셈을 계산한다 결과를 정규화한다. 부동 소수점의 곱셈 알고리즘 • 0인지 여부를 조사한다. • 지수의 합계를 계산한다. • 가수의 곱셈을 계산한다. • 결과를 정규화한다. 부동 소수점의 나눗셈 알고리즘 • 0(ZERO)인지의 여부를 조사한다 • 레지스터를 초기화시키고 부호를 결정한다. • 피제수를 위치 조정한다 • 지수의 뺄셈을 한다. • 가수의 나눗셈을 한다 • 결과를 정규화한다.
30
(4) 자료의 외부적 표현
31
• 3-초과 코드(Excess-3 Code) - BCD 코드에 3(=0011)을 더한 것과 같다.
32
자료의 외부적 표현 - 오류 검출 및 교정 코드 • 패리티 검사 코드(Parity Check Code)
- 전송된 코드의 오류(Error)를 검사하기 위해 데이터 비트 외에 1비트의 패리티 체크 비트를 추가한다. - 기수(Odd, 홀수), 우수(Even, 짝수) 체크에 사용될 경우도 있다. - 1비트의 오류만 검출 가능하다.
33
• 해밍 코드(Hamming Code) - 자기 정정 부호의 하나로 비트 착오를 검출해서 1bit 착오를 검출해 정정하는 부호 방식이다. - 2비트의 오류를 검출하고, 1비트의 오류를 교정할 수 있다. - 1, 2, 4, 8, 16 ~ 번째 비트에 패리티 비트를 삽입한다. • 해밍 거리 - 전송 오류로 인해 송신, 수신 데이터의 값이 다른 비트의 수를 해밍 거리라 한다. 1 2 3 4 5 6 7 p1 p2 8 p3 •
34
에러 검출:해밍 코드, 패리티 검사, Biquinary
가중치 코드 • BCD 코드(8421 코드) - 10진수 1자리를 2진수의 4비트로 표현하는 기법이다. - 대표적인 가중치 코드이다. 비가중치 코드 • 3초과 코드 코드에 10진수 3을 더해서 만든다. - 보수를 간단히 얻을 수 있는 장점이 있다. 자기 보수 코드:3초과 코드, 2421, 에러 검출:해밍 코드, 패리티 검사, Biquinary
35
POINT6 진법 변환 (1) 진법 변환 10진수 → 2진수/8진수/16진수
• 정수 부분:변환할 진수로 더 이상 나눠지지 않을 때까지 나누고, 나머지를 역순으로 표시한다. → 8421code 사용 • 소수 부분:소수 부분이 0 또는 반복되는 수가 나올 때까지 변환할 진수로 곱하기를 반복하면서 결과의 정수 부분만 차례대로 표시한다.
36
2진수/8진수/16진수 → 10진수 - 정수 부분과 소수 부분의 각 자리 값에 자리의 지수 승을 곱한 결과 값을 모두 더한다.
37
• 2진수 → 8진수/16진수2진수 3자리/4자리를 8진수/16진수 1자리로 표현한다.
• 8진수 → 2진수8진수 1자리를 2진수 3자리로 표현한다.
38
• 8진수 → 16진수8진수를 2진수로 변환 후 2진수를 16진수로 표현한다.
• 16진수 → 2진수16진수 1자리를 2진수 4자리로 표현한다. • 16진수 → 8진수16진수를 2진수로 변환 후 2진수를 8진수로 표현한다.
39
1) 2진수를 8진수로 변환(23=8이다.) 2) 2진수를 16진수로 변환(24=16이다.)
- 8진수 1자리는 2진수 3자리로 구성된다. - 따라서 2진수의 소수점을 기준으로 좌우로 3자리 묶음을 한다. - 3자리로 구분된 2진수를 10진수로 변환 한다. 예) 2) 2진수를 16진수로 변환(24=16이다.) - 16진수 1자리는 2진수 4자리로 구성된다. - 따라서 2진수의 소수점을 기준으로 좌우로 4자리 묶음을 한다. - 4자리로 구분된 2진수를 10진수로 변환 한다. 예)
40
3) 8진수를 2진수로 변환(23=8이다.) 4) 16진수를 2진수로 변환(24=16이다.)
- 8진수 1자리는 2진수 3자리로 구성된다. - 따라서 8진수의 값에서 소수점을 기준으로 좌우로 각 숫자 마다 3자리씩 분리 한다. - 3자리로 분리된 숫자를 결합하면 변환이 끝 난다. 예) 4) 16진수를 2진수로 변환(24=16이다.) - 16진수 1자리는 2진수 4자리로 구성된다. - 따라서 8진수의 값에서 소수점을 기준으로 좌우로 각 숫자 마다 3자리씩 분리 한다. - 3자리로 분리된 숫자를 결합하면 변환이 끝 난다. 예)
41
5) 8진수를 16진수로 변환 ① ② ③ - 소수점을 기준으로 8진수의 각 자리를 2진수 3자리로 분리한다 .
- 분리된 2진수를 다시 소수점 기준으로 4자리씩 묶는다. - 각 자리 묶음을 10진수로 변환한다. 예) ① ② ③
42
6) 16진수를 8진수로 변환 ① ② ③ - 소수점을 기준으로 16진수의 각 자리를 2진수 4자리로 분리한다 .
- 분리된 2진수를 다시 소수점 기준으로 3자리씩 묶는다. - 각 자리 묶음을 10진수로 변환한다. 예) ① ② ③
43
(2) 보수 보수의 개념 • 각 자리 숫자에 대해 N + N’= r일 때, N’을 N에 대한 r의 보수(Complement)라고 한다. 보수의 변환 • 1의 보수 계산:2진수 각 자리를 1 → 0, 0 → 1로 변환한다. • 2의 보수 계산:1의 보수에 +1을 더한다.
44
보수를 이용한 뺄셈 보수 표현이 2의 보수를 더 널리 사용하는 이유
• A-B는 A+(-B)이므로 B의 보수를 구한 뒤 덧셈으로 뺄셈을 수행한다. • 10진법의 계산 결과를 2진수로 변환한 뒤 r의 보수를 구한다. 보수 표현이 2의 보수를 더 널리 사용하는 이유 • 표현할 수 있는 수의 개수가 하나 더 많기 때문이다.
45
POINT7 중앙 처리 장치 (1) 중앙 처리 장치 중앙 처리 장치의 개념 제어 장치(Control Unit)
• 중앙 처리 장치(CPU; Central Processing Unit):컴퓨터의 모든 장치의 동작을 제어하고 명령을 실행하는 장치이다. • 구성 요소:제어 장치, 연산 장치, 레지스터, 버스 제어 장치(Control Unit) • 주기억 장치에 기억된 명령을 꺼내서 해독하고, 시스템 전체에 지시 신호를 내는 장치이다. • 구성:프로그램 카운터, 명령어 레지스터, 부호기, 명령어 해독기 연산 장치(ALU; Arithmetic and Logic Unit) • 제어 장치의 명령에 따라 실제로 연산을 수행하는 장치이다. • 산술 연산, 논리 연산, 관계 연산, 이동(Shift) 등을 수행한다.
46
CPU 설계 방법에 따른 구분 구분 CISC RISC 명령어 수 명령어 개수가 많고, 명령어 길이가 다양하다.
명령어 개수가 많고, 명령어 길이가 다양하다. 명령어 개수가 적고, 명령어 길이가 고정되어 있다. 회로 구성 복잡 단순 프로그램적 특성 명령어를 적게 사용해 프로그램 길이가 짧다. 상대적으로 많은 명령어를 사용해 프로그램이 길다.
47
(2) 레지스터(Register) 레지스터의 종류 - 제어 장치
- CPU 내의 처리에 필요한 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 고속 메모리이다. 레지스터의 종류 - 제어 장치 프로그램 카운터(PC; Program Counter) 다음에 실행할 명령의 주소를 기억한다. 명령 레지스터(IR; Instruction Register) 현재 실행 중인 명령을 기억한다. 해독기(Decoder) 명령 레지스터에 있는 명령어를 해독하는 회로이다. 부호기(Encoder) 해독기에서 전송되어 온 명령을 실행하기 적합한 신호로 변환하는 회로이다. 기억 번지 레지스터 (MAR; Memory Address Register) 기억 장소의 번지를 기억하는 레지스터이다. 기억 버퍼 레지스터 (MBR; Memory Buffer Register) 기억 장치에 출입하는 자료를 기억하는 레지스터이다. 베이스 레지스터(Base Register) 명령이 시작되는 최초의 번지를 기억한다. 인덱스 레지스터(Index Register) 주소 변경, 서브루틴 연결, 반복 연산 등을 수행한다. 시프트 레지스터(Shift Register) 데이터를 왼쪽/오른쪽으로 1비트씩 자리 이동시킨다. 메이저 스테이트 레지스터 (Major State Register) CPU의 메이저 스테이트를 기억한다.
48
레지스터의 종류 – 연산 장치 누산기(ACC; Accumulator) 연산 결과를 임시로 기억한다. 가산기(Adder)
2진수들의 더하기를 수행한다. 보수기(Complement) 입력 데이터의 보수를 출력한다. 데이터 레지스터(Data Register) 연산에 필요한 자료를 보관하는 레지스터이다. 프로그램 상태 레지스터 (PSWR; Program Status Word Register) 시스템 내부의 순간순간의 상태를 기록하고 있는 정보인 PSW(Program Status Word)를 기억한다. 플래그 레지스터(Flag Register) 또는 상태 레지스터(Status Register)라고도 한다.
49
(3) 버스(Bus) - CPU나 메모리, 입·출력 장치 간의 필요한 정보를 교환하기 위해 연결하는 공동의 전송선이다. 버스의 종류 • 주소 버스:기기의 주소를 지정할 때 사용하는 단방향 버스다. • 데이터 버스:기기에 데이터를 전달하는 양방향 버스다. • 제어 버스:현재 상태 변경 또는 데이터 전송 제어 신호를 전달하는 버스다. 버스의 분류 • 내부 버스, 외부 버스(시스템 버스), 확장 버스로 구분한다. - 내부 버스:CPU 내부에서 연산 장치와 레지스터 간의 데이터 전송 통로다. - 외부 버스:CPU와 주기억 장치, 입출력 장치 간의 데이터 전송 통로다. • 신호의 형태에 따라 데이터 버스, 주소 버스, 제어 버스로 분류하기도 한다. - 데이터버스:CPU가 메모리 또는 입출력 기기에 데이터를 전송하는 양방향 버스다. - 주소버스:CPU가 메모리나 입출력 기기의 주소를 지정할 때 사용되는 단방향 버스다. - 제어버스:CPU의 현재 상태나 상태 변경을 메모리나 입출력 장치에 알리거나 데이터 전송 시 제어 신호를 전달하는 통로다.
50
3 Chapter 명령어 및 프로세서 이렇게 준비하세요.
이렇게 준비하세요. 명령어의 구성 및 개념, 명령어 형식, 주소 지정 방식, 메모리 용량에 따른 레지스터 크기 계산은 완벽하게 할 수 있도록 연습하고 간단한 암기로 맞출 수 있는 부분은 놓치지 않도록 학습하기 바랍니다. 명령어 및 프로세서
51
POINT8 명령어와 주소 지정 방식 (1) 명령어(Instruction)의 설계
52
(2) 명령어 형식 0-주소 명령어 • Operand부가 0개로 구성되며, 연산의 결과는 스택에 기록된다. 1-주소 명령어
(2) 명령어 형식 0-주소 명령어 • Operand부가 0개로 구성되며, 연산의 결과는 스택에 기록된다. 1-주소 명령어 • Operand부가 1개로 구성되며, 연산의 결과는 Operand1에 기록된다. • 하나의 Operand가 누산기 속에 포함되고, 연산 결과가 항상 누산기에 저장된다.
53
2-주소 명령어 • Operand부가 2개로 구성되며, 연산의 결과는 Operand1에 기록된다. • 계산 결과를 시험할 필요가 있을 때 계산 결과가 기억 장치에 기억될 뿐 아니라 중앙 처리 장치에도 남아 있어서 중앙 처리 장치 내에서 직접 시험이 가능하므로 시간이 절약된다. 3-주소 명령어 • Operand부가 3개로 구성되며, 연산의 결과는 Operand3(범용 레지스터)에 기록된다. • 연산 후에 입력 자료가 변하지 않고 보존된다. • 프로그램의 길이가 짧아지지만, 한 개의 명령을 수행하려면 4번 이상 기억 장소에 접근해야 하므로 전체적인 수행 시간이 길어진다.
54
(3) 주소 지정 방식 접근 방식에 의한 주소 지정 방식
묵시적 주소 지정 방식 ( I m p l i e d A d d r e s s i n g Mode) • Operand가 명령어에 묵시적으로 정의되어 있다. • 스택을 이용하는 0-주소 명령어에 사용된다. 즉시 주소 지정 방식 ( I mm e d i a t e A d d r e s s i n g Mode) • 명령어의 Operand부에 데이터를 기억한다. • 메모리의 참조 횟수를 줄일 수 있어 실행 속도가 가장 빠르다. 직접 주소 지정 방식 (Direct Addressing Mode) 명령어 주소 부분에 유효 주소 데이터가 있다. 간접 주소 지정 방식 ( I n d i r e c t A d d r e s s i n g Mode) • 명령어 내의 번지는 실제 데이터의 위치를 찾을 수 있는 번지가 들어 있는 장소를 표시한다. • 명령어의 길이가 짧고 제한되어 있어도 이것을 이용하여 긴 주소를 찾아갈 수 있다.
55
계산에 의한 주소 지정 방식 주소 설계 시 고려사항 절대 주소 지정 방식
• 수행 속도 증가 • 표현의 효율성 • 사용의 편리성 • 주소 공간과 기억 공간의 독립성 절대 주소 지정 방식 (Absolute Addressing Mode) • 기억 장치 고유의 번지인 절대 주소로 주소를 지정하는 방식. 상대 주소 지정 방식 (Relative Addressing Mode) • 유효주소 = 명령어의 주소 부분 + Program Counter 베이스레지스터주소지정방식 (BaseRegisterAddressingMode) • 유효주소 = 명령어의 주소 부분 + Base Register 인덱스 레지스터 주소 지정 방식(Indexed Addressing Mode) • 유효주소 = 명령어의 주소 부분 + Index Register
56
4 Chapter 명령 수행 및 제어 이렇게 준비하세요.
이렇게 준비하세요. 메이저 상태의 마이크로 동작에 대해서 수험생들이 어려워 합니다. 하지만 차근차근 원리를 생각하면 충분히 이해할 수 있습니다. 기출문제가 적게 나오면 포기할 수도 있겠지만 최근 출제 비중이 강화되는 경향이 있는 부분이니 철저한 준비가 필요합니다. 명령 수행 및 제어
57
POINT9 마이크로 오퍼레이션과 제어 장치의 구현
(1) 마이크로 오퍼레이션(Micro Operation) 개념 • 명령을 수행하기 위해 CPU 내의 레지스터와 플래그의 상태 변환을 일으키는 작업이다. • 레지스터에 저장된 데이터에 의해서 이루어진다. • 클록 펄스(Clock Pulse)에 기준을 실행한다. • 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다. • 마이크로 오퍼레이션이 실행될 때마다 CPU 내부의 상태는 변하게 된다. • 컴퓨터의 모든 명령을 구성하고 있는 몇 가지 종류의 기본 동작이다. • 컴퓨터에서 수행이 가능한 마이크로 오퍼레이션의 종류는 그 컴퓨터 내에 존재하는 레지스터들과 연산기의 종류, 그들 간에 연결된 형태에 의해 결정된다. • 일반적으로 마이크로 오퍼레이션은 F(R,R)→R 마이크로 오퍼레이션과 R→R 마이크로 오퍼레이션으로 구분하며 이때 F는 처리기를 의미한다. 제어 신호(Control Signal) • 마이크로 오퍼레이션을 순서적으로 일어나게 하는 데 필요한 신호이다. (2) 마이크로 사이클 타입(Micro Cycle Time) • 한 개의 마이크로 오퍼레이션 수행에 필요한 시간이다.
58
마이크로 사이클 타임 부여 방식 종류 동기 고정식 (Synchronous Fixed)
• 수행시간이 가장 긴 마이크로 오퍼레이션의 수행 시간을 마이크로 사이클 타임으로 정한다. • 모든 마이크로 오퍼레이션의 수행시간이 유사한 경우 유리하다. • 제어 장치의 구현이 간단하다. • 중앙 처리 장치의 시간 이용이 비효율적이다. • 여러 종류의 마이크로 오퍼레이션 수행이 CPU사이클 타임의 실제적인 오퍼레이션 시간보다 길다. 동기 가변식 (Synchronous Variable) • 각 마이크로 오퍼레이션에 따라서 수행 시간을 다르게 정할 수 있다. • 각 마이크로 오퍼레이션의 사이클 타임이 현저한 차이를 나타낼 경우 유리한 방식이다. • 중앙 처리 장치의 시간을 효율적으로 이용할 수 있다. • 사이클 타임을 정의하는 방식은 수행 시간이 유사한 마이크로 오퍼레이션들끼리 모아 집합을 이루고 각 집합에 대해서 서로 다른 마이크로 오퍼레이션 사이클 타임을 정의한다. 이때 각 집합 간의 마이크로 사이클 타임을 정수배가 되도록 하는 이유는 각 집합 간 서로 다른 사이클 타임의 동기를 맞추기 위해서이다. 비 동 기 식 (Asynchronous) • 모든 마이크로 오퍼레이션에 대하여 서로 다른 마이크로 사이클 타임을 정한다. • 하나의 레지스터 전달이 끝나는 즉시 다음 레지스터로 전달되어 중앙 처리 장치의 시간 낭비가 적다. • 단점은 제어가 매우 복잡하다.
59
(3) 제어 장치 제어 데이터:제어 데이터는 제어 장치가 제어 신호를 발생하기 위해 필요한 데이터를 의미한다. 제어 데이터의 종류 • 각 메이저 스테이트 사이의 변천을 제어하는 제어 데이터 • 중앙 처리 장치의 제어 점을 제어하는 데 필요한 제어 데이터 • 인스트럭션의 수행 순서를 결정하는 데 필요한 제어 데이터 제어 장치의 구현 • 고정 배선 제어 장치(Hard-wired Control Unit) - 하드웨어적으로 구현된다. - 비용이 비싸고, 회로가 복잡하며, 융통성이 없다. - 속도가 빠르다. • 마이크로프로그램 제어 장치(Micro Programmed Control Unit) - 어떤 명령을 수행할 수 있는 일련의 제어 워드가 특수한 기억 장치 속에 저장된 것을 말한다. - 소프트웨어를 ROM에 저장해 하드웨어적으로 사용한다(FirmWare). - 비용이 저렴하고, 회로가 간단하고, 융통성이 있다. - 속도가 느리다. - 제어용 기어장치에는 ROM, EPROM, FLASH 메모리의 형태로 구성되어 있다.
60
마이크로 명령 형식 • 마이크로 프로그램이 사용하는 명령어를 마이크로 명령어라고 한다.
• 중앙 처리 장치 내의 제어 장치 기능을 직접 실행 가능하다. • 수평 마이크로, 수직 마이크로, 나노 명령으로 구분된다. • 수평 마이크로 명령 - 제어신호 1개당 1개의 비트를 할당한다. - 마이크로 명령 1개가 1개의 마이크로 동작을 제어한다. - 고속이지만 비용이 비싸다. • 수직 마이크로 명령 - 외부의 디코딩 회로를 통해 제어 신호를 변환한다. - 경제적이지만 느리다. • 나노 명령 - 나노 메모리를 사용한다. - 나노 메모리에 저장되어 있는 워드가 나노 명령이 된다.
61
POINT10 메이저 스테이트 (1) 메이저 스테이트(Major State)의 개념 (2) 메이저 스테이트 변천 과정
• 중앙 처리 장치가 현재 무엇을 하고 있는가를 나타내는 상태이다. • 종류:Fetch, Indirect, Execute, Interrupt (2) 메이저 스테이트 변천 과정 F1 or R= 1 메이저 상태 진리 값 F1, R0 F0, R1 F0, R0 F (Flag) R (Register) 상태 인출주기 (Fetch) 1 간접주기 (Indirect) 실행주기 (Execute) 인터럽트주기 (Interrupt) F1, R0 F1, R1 F0, R0
62
• 주기억 장치의 지정 장소(Address)로부터 명령을 읽어서 중앙 처리 장치에 가지고 오는 단계다.
인출 단계(Fetch Cycle) • 주기억 장치의 지정 장소(Address)로부터 명령을 읽어서 중앙 처리 장치에 가지고 오는 단계다. • 인터럽트를 처리한 후 다음으로 전환해야 될 메이저 스테이트다. F1 or R= 1 F1, R0 F0, R1 F0, R0 간접 단계(Indirect Cycle) • 기억 장치로부터 오퍼랜드(데이터)의 번지를 인출하는 단계다. • 인출 단계에서 해석된 명령의 주소부가 간접 주소인 경우 수행된다. F1, R0 F1, R1 F0, R0
63
인터럽트 단계(Interrupt Cycle)
F1 or R= 1 F1, R0 F0, R1 실행 단계(Execute Cycle) • 실제로 명령을 실행하는 단계이다. F1, R0 F1, R1 인터럽트 단계(Interrupt Cycle) • 인터럽트 발생 시 복귀주소(PC)를 저장시키고, 제어 순서를 인터럽트 처리 프로그램의 첫 번째 명령 으로 옮기는 단계이다. • IEN(Interrupt ENable flip-flop):인터럽트 처리 과정에 필요, 명령어에 의해 세트 또는 클리어(clear), IEN이 세트 될 때만 CPU에 인터럽트 가능하다. F0, R0
64
(3) 주요 명령의 마이크로 오퍼레이션 ADD LDA(Load to AC) STA(Store AC)
• AC(누산기)와 메모리의 내용을 더하여 결과를 AC에 저장하는 연산 명령이다. LDA(Load to AC) • 메모리의 내용을 AC로 가져오는 명령이다. STA(Store AC) • AC의 내용을 메모리에 저장하는 명령이다.
65
BUN(Branch Unconditionally;무조건 분기)
• PC에 특정 주소를 전송하여 실행 명령의 위치를 변경하는 무조건 분기 명령이다. BSA(Branch and Save return Address) • 복귀 주소를 저장하고 서브프로그램으로 분기하는 명령이다. ISZ(Increment and Skip-if-zero) • 메모리의 값을 읽고 그 값을 1 증가시킨 후, 음수에서 시작한 그 값이 0이면 현재 명령을 건너뛰고 다음 명령으로 이동한다.
66
5 Chapter 이렇게 준비하세요. 다른 과목에서도 다루어지는 분야이므로 생소하거나 이해가 어려운 부분은 아닙니다. 따라서 완벽한 준비를 목표로 준비하세요. 기억 장치
67
POINT11 기억 장치 (1) 기억 장치 사용 용도에 따른 분류
68
(2) 주기억 장치 기억 장치의 특성 결정 요소 주기억 장치(Main Memory)의 개념 주기억 장치의 종류
• 접근 시간(Access time) = 탐색 시간(Seek Time) + 대기 시간(Latency Time) + 전송 시간 (Transmission Time) • Cycle Time ≧ Access Time • 대역폭(Bandwidth):기억 장치를 연속적으로 액세스할 때 초당 처리할 수 있는 비트 수를 말한다. (2) 주기억 장치 주기억 장치(Main Memory)의 개념 • CPU가 직접 접근하여 처리할 수 있는 기억 장치이다. • 현재 수행 중인 프로그램 및 데이터를 저장한다. 주기억 장치의 종류 • 자기 코어 - 도넛 모양의 자성 물질을 사용하고 크기가 작을수록 속도가 빠르고 전력 소모가 적다. - 기억원리는 고리의 중심부를 통과하는 선에 전류를 흘리면 플레밍의 오른손 법칙 (Fleming’s Right Hand Law)에 따라 전류의 방향에 대하여 오른쪽으로 자화 됨을 이용하는 것. • ROM(Read Only Memory) - 읽기만 가능하다. -제조사 제공 메모리다 - 비휘발성 메모리이다.
69
• RAM(Random Access Memory) - 읽고 쓰기가 자유롭다. - 휘발성 메모리이다. - 사용자 메모리다. 구분
Mask ROM 제조 과정에서 프로그램되어 생산되며, 한 번 수록된 데이터는 수정할 수 없다. PROM(Programm able ROM) 사용자가 한 번만 내용을 기입할 수 있지만, 지울 수 없다. EPROM (Erasable PROM) 이미 기억된 내용을 자외선을 이용하여 지우고 다시 사용이 가능하다. EAROM(Erasable Alterable ROM) 전기적 특성을 이용하여 기록된 정보의 일부를 변경할 수 있다. EEPROM (Electronic EPROM) 전기적 특성을 이용하여 기록된 정보를 여러 번 지우고 다시 사용 가능하다. • RAM(Random Access Memory) - 읽고 쓰기가 자유롭다. - 휘발성 메모리이다. - 사용자 메모리다. 구분 동적 램(DRAM) 정적 램(SRAM) 구성 소자 콘덴서 플립플롭 특징 주기적인 재충전(Refresh) 필요 전원이 공급되는 동안 기억 내용 유지 접근 속도 느림 빠름 집적도 높음 낮음 가격 용도 일반 주 기억 장치 캐시 메모리
70
단위 2의 승수 표현 Byte 표현 K(Kilo) 1024Byte M(Mega) 1,048,576Byte G(Giga)
T(Tera) 1,099,511,627,776Byte
72
(3) 보조 기억 장치 보조 기억 장치의 개념 보조 기억 장치의 종류
• 주기억 장치의 부족한 용량 문제를 해결하기 위해 외부에 설치된 대용량 기억 장치이다. • 주기억 장치에 비해 속도가 느리다. • 전원이 차단되어도 내용이 그대로 유지된다. 보조 기억 장치의 종류 • 자기 테이프(Magnetic Tape) - 자성 물질을 입힌 테이프를 릴에 감아서 만든 기억 장치이다. - 순차 접근만 가능하다. - 대량의 자료를 장시간 보관하는 데 가장 유리한 장치이다.
73
• 자기 디스크(Magnetic Disk)
- 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억 장치이다. - 순차적, 직접 접근 모두 가능하다. - 접근 속도가 빠르다. 자기디스크의 구조 • 트랙(Track):디스크의 중심원을 따라 데이터를 기록할 수 있는 동심원이다. • 섹터(Sector):트랙을 부채꼴 모양으로 분할한 영역이다. • 실린더(Cylinder):각 디스크 표면의 같은 트랙들의 모임이다. • 읽기/쓰기 헤드(Read/Write Head):디스크에 데이터를 읽거나 쓰기 위한 장치이다. • 액세스 암(Access Arm):데이터에 접근하기 위한 장치이다. 자기 드럼(Magnetic Drum) • 원통 표면에 트랙과 섹터를 구성하고, 각 트랙마다 고정된 읽기/쓰기 헤드가 있는 기억 장치이다. • 자기 디스크보다 속도가 빠르지만 용량이 적어 거의 사용되지 않는다.
74
(4) 특수 기억 장치 특수 기억 장치의 종류 • 연관 기억 장치(Associative Memory) • 복수 모듈 기억 장치
• 캐시 기억 장치 • 가상 기억 장치 연관 기억 장치(Associative Memory) • 주소가 아닌 기억된 내용의 일부를 이용하여 접근하는 기억 장치이다. • CAM(Content Addressable Memory)이라고도 한다. • 주소에 의해서만 접근이 가능한 기억 장치보다 접근이 빠르다. • Mapping Table에 사용된다. • 하드웨어 비용이 증가한다. 복수 모듈 기억 장치(RAID; Rrdundant Array of Inexpensive Disk) • 다수의 기억 장치 모듈을 가진 기억 장치를 의미한다. • 메모리 인터리빙(Memory Interleaving):CPU가 복수 모듈 기억 장치의 각 모듈들에게 동시에 주소를 전달하기 위해 연속된 데이터나 명령어들을 기억장치 모듈에 순차적으로 번갈아 가면서 처리하는 방식이다.
75
캐시 기억 장치 캐시 기억 장치 매핑 프로세스 3가지 방법
• CPU와 메모리의 속도 차이를 줄이기 위한 고속 버퍼 기억 장치이다. • 주기억 장치와 CPU 사이에 위치한다. • 캐시를 사용 시 기억 장치의 접근 시간이 단축되므로 컴퓨터의 처리 속도가 향상된다. • 가격이 비싸다. • 주 기억 장치로부터 캐시 기억 장치로 데이터를 전송할 때 어떤 내용이 보내졌는지 확인하는 방법이다. 캐시 기억 장치 매핑 프로세스 3가지 방법 • 직접 매핑 (Direct mapping) - 주소를 기준으로 검색한다. - 같은 인덱스를 가졌으나 다른 태그를 가진 2개 이상의 워드가 반복 접근하면 히트 율이 낮아진다. • 어소시에이티브 매핑 (연관기억장치 ;Associative mapping) - 내용을 기준으로 검색한다. - 가장 빠르고 융통성이 있다. - 자료를 찾을 때 주소에 의해 접근하지 않고, 기억 뒤 내용의 일부를 이용하여 Access할 수 있는 기억장치로, CAM이라고도 부른다.
78
6 Chapter 입력 및 출력 이렇게 준비하세요.
이렇게 준비하세요. 입출력 시스템의 구성 요소, 입출력의 기능, 주 기억 장치와 입출력 장치의 차이점, 입출력 방식, DMA의 특징, DMA의 구성 요소, 사이클 스틸, 채널의 개념 및 종류 부분에서 많이 출제되니 완벽히 준비하세요. 입력 및 출력
79
POINT12 입출력 장치 (1) 입출력 시스템 입·출력 장치의 구성 입·출력 장치 및 기억 장치 버퍼링과 스풀링
• 입·출력 제어 장치:입·출력 장치와 컴퓨터 간의 자료 전송 제어를 담당한다. • 입·출력 인터페이스:상이한 장치 간의 원활한 정보 전송 방법을 제공한다. • 입·출력 버스:입·출력 장치 인터페이스에 공통으로 연결된 버스를 말한다. 입·출력 장치 및 기억 장치 버퍼링과 스풀링 구분 입출력 장치 기억 장치 동작 속도 느림 빠름 동작 자율성 타율 및 자율 타율 정보 단위 Byte Word 에러 발생률 높음 낮음 구분 버퍼링 스풀링 구현 방식 하드웨어 소프트웨어 운영 방식 단일 작업/단일 사용자 다중 작업/다중 사용자 저장 위치 주기억 장치 보조 기억 장치
80
(2) 입출력 제어 방식 CPU에 의한 입·출력 제어 방식
• 프로그램에 의한 입출력과 인터럽트에 의한 입출력으로 구분한다. • Programmed I/O - I/O 완료 여부 검사를 위해 CPU가 플래그를 계속 조사하는 방식이다. - I/O 작업 중에는 CPU가 다른 작업을 할 수 없다. • Interrupt I/O - CPU가 계속 플래그를 검사하지 않고 데이터가 준비되면 인터페이스가 컴퓨터에 알려주고 전송이 완료되면 수행 중이던 프로그램으로 되돌아가 수행을 재개하는 방식이다. - Programmed I/O보다 효율적이다. - 인터럽트 처리 루틴을 거쳐야 해 소요시간이 길어진다. - CPU는 입출력이 있을 때만 입출력 제어를 하고 그 외엔 다른 작업 처리가 가능하다.
81
DMA(Direct Memory Access)에 의한 I/O
• 데이터 입·출력 전송이 CPU를 통하지 않고 직접 주기억 장치와 주변 장치 사이에서 수행된다. • CPU에 부하가 증가되지 않는다. • 데이터 전송이 시작되면 CPU가 주기억 장치를 제어할 수 없어 유휴시간(Idle Time)이 발생한다. • CPU보다 DMA가 버스 사용에 우선권을 가진다. • 싸이클 스틸 - DMA가 CPU의 사이클을 훔쳐서(Steal) 기억 장치 버스를 점유하여 CPU의 기억 장치 액세스를 잠시 정지시키는 것으로 CPU는 훔쳐진 사이클 동안 다른 작업을 하지 못한다. - CPU와 DMA가 동시에 버스를 요청했을 경우 DMA에게 우선권이 주어진다. • 사이클 스틸과 인터럽트의 차이 - 사이클 스틸이 발생하면 CPU는 완전히 해당 사이클 동안 쉬고 있어야 한다. 따라서 CPU의 상태 보전이 필요 없다.
82
Channel에 의한 I/O • 입출력 장치와 CPU는 속도차이가 커서 CPU가 입출력 장치를 관리할 경우 속도의 손해가 많아 전용 프로세서인 전용 프로세서(IOP; Input Output Processor)를 별도로 구성한다. • Channel은 신호를 보낼 수 있는 전송로이다. • CPU의 명령을 받고 I/O 조작을 개시하면 CPU와는 독립적으로 작동한다. • CPU가 직접 처리하지 않고 입출력 전용 프로세서(IOP; Input Output Processor)를 두는 방식이다. • IOP가 입출력과 관련된 거의 모든 동작들을 수행하기 때문에 CPU 부담이 줄어든다. • IOP 고유의 명령어가 존재해 CPU와 거의 무관하게 입출력 작업을 수행하여 시스템의 성능이 향상된다. • 채널은 여러 개의 DMA 채널을 가지고 있어 프로그램 실행 종료 후 CPU에 알린다. 채널의 기능 • 입출력 장치와 주기억 장치 중간에 위치해 두 장치를 연결하는 중개 역할을 담당한다. • 입출력 장치의 명령 실행 지시 및 지시된 명령의 실행 상황을 점검한다. • CPU의 명령을 받고 입출력 조작을 개시하면 CPU와는 독립적으로 조작을 한다.
83
채널의 종류 채널과 DAM의 차이 구분 채널 DMA 존재 이유 채널 제어기 DMA 제어기 제어 장치 버스트(Burst) 방식
셀렉터 채널 (Selector Channel) • 한 번에 하나씩 선택하여 제어할 수 있다. • 입·출력이 실제로 일어나고 있을 때는 채널 제어기가 임의의 시점에서 볼 때 마치 어느 한 입·출력 제어 장치의 전용인 것처럼 운용된다. 바이트 멀티플렉서 채널 • 동시에 여러 개의 입출력 장치를 제어할 수 있으며, 저속의 입출력 장치를 제어하는 채널이다. 블록 멀티플렉서 채널 • 동시에 여러 개의 입출력 장치를 제어할 수 있으며, 고속의 입출력 장치를 제어하는 채널이다. 채널과 DAM의 차이 구분 채널 DMA 존재 이유 채널 제어기 DMA 제어기 제어 장치 버스트(Burst) 방식 사이클 스틸(Cycle Steal) 방식 전송 방식 입출력 데이터 속도 향상으로 동일하다.
84
7 Chapter 인터럽트 및 병렬 컴퓨터 구조 이렇게 준비하세요.
이렇게 준비하세요. 인터럽트 부분에서 많이 출제되고 있습니다. 병렬 컴퓨터 부분은 출제된 문제가 워낙 적어 어느 부분이 중요하다고 말할 순 없지만, 점점 강화 추세로 나갈 수 있는 부분이니 소홀함이 없도록 하기 바랍니다. 인터럽트 및 병렬 컴퓨터 구조
85
POINT13 인터럽트와 병렬 처리 (1) 인터럽트 인터럽트(Interrupt)의 개념
- 어떤 특수한 상태 발생 시 현재 실행 중인 프로그램이 일시 중단되고, 그 특수한 상태를 처리하는 프로그램으로 분기 및 처리한 후 다시 원래의 프로그램을 처리하는 것이다. (하드웨어적인 요소나 프로그램의 외부사항에 기인한 것) 외부 인터럽트(External Interrupt) 전원 이상 인터럽트(Power Fail Interrupt) 전원 차단 기계 검사 인터럽트(Machine Check Interrupt) 하드웨어 고장 외부 신호 인터럽트(External Signal Interrupt) 정해진 시간이 경과한 경우 입·출력 인터럽트(I/O Interrupt) 입출력 종료 또는 오류
86
내부 인터럽트(Internal Interrupt)
• 잘못된 명령이나 데이터를 사용할 때 발생한다. • 트랩(Trap; 프로그램에 의한 것)이라고도 한다. • 프로그램 실행 중에 트랩(Trap)이 발생하는 조건 - Overflow 또는 Underflow가 발생한 경우 - 0에 의한 나눗셈, 불법적인 명령(Use Bad Command Interrupt) 실행의 경우 - 보호 영역 내의 메모리 어드레스를 Access하는 경우 소프트웨어 인터럽트(Software Interrupt) • 명령어 수행에 의해 발생하는 인터럽트이다. • SVC 인터럽트(SuperVisor Call Interrupt) - 입출력 수행, 기억 장치 할당 및 오퍼레이터와 대화 등을 하기 위해 발생하는 인터럽트를 말한다. 인터럽트 체제요소 • 인터럽트 요청 신호:인터럽트가 필요한 장치에서 인터럽트 요청 신호를 발생하는 것이다. • 인터럽트 처리루틴:인터럽트 후 인터럽트 루틴 주소로 분기할 때까지의 처리 프로그램 루틴이다. • 인터럽트 서비스 루틴:인터럽트 요청에 의해 처리되는 루틴이다.
87
인터럽트의 동작 원리 인터럽트 발생 시 CPU가 확인할 사항 인터럽트 발생 시 상태를 보관하는 장소
• 인터럽트 요청 신호를 발생시킨다. • 현재 수행 중인 명령을 완료하고, 상태를 기억시킨다. • 어느 장치가 인터럽트를 요청했는지 찾는다. • 인터럽트 취급 루틴을 수행한다. • 보존한 프로그램 상태로 복귀한다. 인터럽트 발생 시 CPU가 확인할 사항 • 프로그램 카운터의 내용:다음 실행할 명령어의 주소를 가지고 있으므로 분기를 위해 확인이 필요하다. • 상태 조건 내용(PSW의 상태):실행 차례를 제어하거나 프로그램에 대한 컴퓨터 시스템의 상태를 나타내고 유지하므로 확인이 필요하다. • 사용한 모든 레지스터의 내용:CPU에서 어떤 레지스터를 사용했는지 확인이 필요하다. 인터럽트 발생 시 상태를 보관하는 장소 • Stack, 벡터 인터럽트, 메모리의 0번지 중 한 군데에 저장한다. • 벡터 인터럽트(Vectored Interrupt) : 인터럽트 처리 루틴의 시작 주소를 말하며, 이곳을 통하여 인터럽트 서비스 루틴을 호출하게 된다.
88
인터럽트 우선순위 - 전원 이상 > 기계 이상 > 외부 신호 > 입·출력 > 명령어 잘못 > 프로그램 검사 > SVC 인터럽트 우선순위 판별 방법 소프트웨어적인 방법 • 인터럽트 발생 시 상위 우선순위 장치부터 차례로 검사해 요청 장치를 발견하면 인터럽트 처리 루틴을 수행한다. • 반응 속도는 느리지만 경제적이며, 융통성이 있다. • 폴링(Polling)에 의한 방법이라고도 한다. 하드웨어적인 방법 • 반응 속도가 빠르지만 융통성이 없다. • 추가적 하드웨어가 요구되어 비용이 많이 든다.
89
하드웨어적 인터럽트 방식의 종류 • 직렬 우선순위 부여방식
- 인터럽트가 발생하는 모든 장치를 우선순위에 따라 1개의 회선에 직렬로 연결된다. - 데이지 체인(Daisy-Chain) 방식을 사용한다. • 병렬 우선순위 부여방식 - 각 장치를 개별적인 회선으로 연결하는 방식이다. - 마스크레지스터의 Bit 위치에 따라서 우선순위가 결정된다. - 마스크레지스터(Mask Register)는 우선순위를 컨트롤할 수 있다.
90
(2) 병렬처리 플린(Flynn)의 병렬 컴퓨터 분류
• SISD (Single Instruction Single Data) 하나의 명령이 하나의 데이터를 처리한다. • SIMD(Single Instruction Multi Data) - 하나의 명령이 다수의 데이터를 처리한다. - 벡터컴퓨터, 배열 처리기에 사용된다. • MISD(Multi Instruction Single Data) - 다수의 명령이 하나의 데이터를 처리한다. - 현실적으로 사용하지 않는다. • MIMD(Multi Instruction Multi Data) - 다수의 명령이 다수의 데이터를 처리한다. - 멀티프로세서에 사용된다. 병렬 처리 기법 • Pipeline Processor •Vector Processor • Array Processor •Multi Processor
Similar presentations