정보처리기사 필기 - 2과목 전자계산기 구조


4장 명령 실행과 제어


1. 마이크로 오퍼레이션


· 한 개의 Clock 펄스 동안 실행되는 기본 동작

· 한 단계씩 이루어지는 동작

· 명령을 수행하기 위해 CPU 내의 레지스터와 플래그의 상태 변환을 일으키는 작업

· 제어신호 : 마이크로 오퍼레이션의 순서를 결정하기 위하여 제어 장치가 발생하는 신호

· 종류

- 수평 마이크로 명령(각 비트가 각 제어신호에 대응), 수직 마이크로 명령, 나노 명령

· 마이크로 프로그램 : 어떤 명령을 수행할 수 있도록 된 일련의 제어 워드가 특수한 기억장치 속에 저장된 것

- ROM에 저장되고 경제적이며 하드와이어드 방식보다 느림

· 마이크로 오퍼레이션중에 인덱스 레지스터는 플그램으로 레지스터의 내용 변경 가능

 마이크로 프로그램을 이용한 제어방식

 고정배선제어방식(하드웨어방식, 하드와이어 제어 방식)

 구조적이고 임의적인 설계 가능 / 유지보수 용이

 복잡

 경제적, 설계비용 감소

 비쌈

 느림

 빠름

· 마이크로 프로그램 제어기가 다음에 수행할 마이크로 인스트럭션의 주소를 결정하는데 사용하는 정보

- 인스트럭션 레지스터(IR), CPU의 상태 레지스터, 마이크로 인스트럭션에 나타난 주소


· Micro Cycle Time 부여 방식

- 동기 고정식

= 동작 시간이 모두 같음

= 가장 긴 마이크로 오퍼레이션의 동작을 마이크로 사이크 타임으로 정함

= 동작시간이 비슷할 때 유리(시간 지연X)

= 클록 사이클 = 가장 긴 시간 + 지연 시간

- 동기 가변식

= 동작 시간이 그룹별로 다름

= 각 그룹 간 서로 다른 사이클 타임의 동기를 맞추기 위해 그룹 간의 마이크로 사이클 타임을 정수배가 되게함

- 비동기식 : 동작시간이 모두 다름


· data flow machine : 프로그램 내의 모든 인스트럭션들이 그들의 수행에 필요한 피연산자들이 모두 준비되었을 때 그 인스트럭션을 수행하는 것으로 데이터 추진(data driven) 방식이라 할 수 있는 것


※ 하나의 명령을 처리하는 과정

① 인스트럭션 패치

② 인스트럭션 디코딩

③ 오퍼랜드 패치

④ 실행

⑤ 인터럽트 조사



2. 메이저 스테이트

· 메이저 스테이트 : 현재 CPU가 무엇을 하고 있는지를 나타내는 상태


※ PC(프로그램 카운터) : 다음에 실행할 명령어의 버지를 기억

MBR : 기억장치에 출입하는 데이터가 일시적으로 저장

MAR : 기억장치에  출입하는 데이터의 주소 기억


· 인출단계(Fetch Cycle)

- 명령어를 주기억장치에서 중앙처리장치의 명령 레지스터로 셋 시켜 가져와 해독

- 명령어 종류 판별

- 명령어를 가져오기 위해 기억장치에 접근

- 중앙처리장치가 fetch 상태인 경우에 명령어가 제어점을 제어

① MAR ← PC

② MBR ← M[MAR], PC ←PC+1

③ IR ← MBR[OP]


· 간접단계(Indirect Cycle)

- 주소부가 간접주소인 경우에만 수행

- 오퍼랜드의 주소를 읽어내는 단계(기억장치로부터 주소 인출)

- 유효주소를 계산하기 위한 단계

① MAR ← MBR[AD]

② MBR ← M[MAR]


· 실행단계(Execute Cycle)

- 실행상태에서 interrupt 요청이 발생되면 interrupt로 가고 아니면 fetch 상태로 감

- ADD

① MAR ← MBR[AD]

② MBR ← M[MAR]

③ AC ← AC+MBR

 - LDA(load to AC)

① MAR ← MBR[AD]

② MBR ← M[MAR], AC ← 0

③ AC ← AC+MBR

 - STA(store to AC)

① MAR ← MBR[AD]

② MBR ← AC

③ M(MAR) ← MBR

 -BSA(Branch and Save Return Address)

① MAR ← MBR[AD], MBR[AD] ← PC, PC ← MBR[AD]

② M[MAR] ← MBR[AD]

③ PC ← PC+1


· 인터럽트단계(Interrupt Cycle)

- 서브루틴의 호출

- 인터럽트가 끝나면 항상 fetch 상태로 무조건 감

 MBR[AD] ← PC, PC ← 0

② MAR ← PC, PC ← PC+1

③ M[MAR] ← MBR, IEN ← 0

인터럽트가 진행되면 다른 인터럽트를 배제하기 위해 IEN 플래그에 0을 셋 시킴

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

6장 기억장치  (0) 2017.02.22
5장 입력 및 출력  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21
2장 자료의 표현  (0) 2017.02.21
1장 논리 회로  (0) 2017.02.21

정보처리기사 필기 - 2과목 전자계산기 구조


3장 프로세서


1. 중앙처리장치의 구성요소


· 제어장치

명령 수행시킴

필요한 각종 제어 신호 만드는 장치

주기억장치에 기억된 명령을 꺼내서 해독하고 시스템 전체에 지시 신호 보냄(가상메모리에 있는 프로그램 해독X)

제어 주소 레지스터(CAR)은 다음에 실행할 마이크로 명령어의 주소를 저장하는 레지스터(MAR의 내용이 제어 주소 레지스터에 적재X)

제어장치에 입력되는 항목 : 명령어 레지스터, 플래그, 클록

제어장치를 구현하는 제어 방식

상태 플립플롬 제어 방식, PLA 제어 방식, 마이크로 프로그램 제어 방식(RAM 제어 방식X)


· 연산장치


· 레지스터

임시 기억장소

레지스터 참조 명령어

CLA:Clear AC / CIR : Circulate Right / HLT:halt


주요 레지스터

- 프로그램 카운터(PC) : 다음에 실행할 명령어의 번지 기억

- 명령 레지스터(IR) : 메모리로부터 읽어진 명령어의 오퍼레이션 코드(OP-code)가 들어감

- 누산기 : 연산의 결과를 일시적으로 기억

- 상태 레지스터(플래그 레지스터, PSWR

분기(현재 위치에서 다른 위치로 이동하는 것)를 결정

시스템 내부의 순간순간 상태가 기록된 정보 : PSW

프로그램 제어와 가장 밀접한 관계

- MBR : 기억장치에 출입하는 데이터가 일시적으로 저장

- MAR : 기억장치에 출입하는 데이터의 주소 기억

- 인덱스 레지스터 : 사용자가 내용을 변경할 수 있음

- 시프트 레지스터 : 2배 길이 레지스터라고도 함


입출력(I/O) Bus에 연결될 수 있는 선 중 자료 버스 : 양방향 전송선



2. 명령어의 구조

Operation Code(연산자) | Mode | Operand(자료부)

단어, 동작 연산자, MBR  |         | 주소, PC, MAR, AD, 용량, 메모리, 기억장치

자료부의 길이가 n bit = 최대 2ⁿ개의 기억장소


· 명령어 설계시 고려사항

연산자 수와 종류, 주소 지정 방식, 데이터 구조(워드의 크기)

· 인스트랙션 세트의 효율을 높이기 위해 고려할 사항

기억 공간, 사용 빈도, 주소 지정 방식(레지스터 종류X)

· 폰 노이먼 형 컴퓨터 연산자(Operation Code)의 4가지 기능

- 함수 연산 기능 : 산술 연산 - ADD, SHIFT 등

  논리 연산 - AND, OR 등

- 자료 전달 기능 : CPU와 기억장치 사이에서 정보 교환

  CPU가 가장 많이 실행

  Load, Store, Move 등

- 제어 기능 : 동일한 명령을 반복 실행하거나, 명령의 실행 순서 변경

- 입·출력 기능



3. 이항 연산자 : 사칙연산, AND, OR, XOR, XNOR(이외에는 모두 단항 연산자)



4. 연산


· AND : 삭제, Masking 명령

· OR(Selective Set) : 삽입

· XOR(EX-OR) : 비교

· Rotate : Shift에서 밀려 나가는 비트의 값을 반대편으로 입력(원하는 비트수만큼 왼쪽으로 Rotate한다고 해서 기억영역을 clear할 수 있는 것은 아님)

· 산술 Shift : 곱하거나 나눌 때, 왼쪽으로 n bit Shift - 자료에 2ⁿ 곱한 값과 같음

  오른쪽으로 n bit Shift - 자료에 2ⁿ 나눈 값과 같음

  음수에 대한 패딩비트로 1이 채워짐



5. 명령어 형식


· 3번지 명령어 : 연산의 결과는 주로 Operand 1에 기록됨 / 프로그램 전체의 길이 짧게 할 수 있음

· 2번지 명령어

· 1번지 명령어 : AC(누산기) 이용

· 0번지 명령어 : 가장 짧은 명령어 형식 / Stack 필요 / 수식을 계산하기 위해 Postfix형태로 변경



6. 주소 지정 방식

주소 설계시 주소공간과 기억공간을 독립시킬 수 있도록 해야함


주소 지정 방식의 종류

· 즉시 주소 지정 방식 : 오퍼랜드 부분에 실제 데이터 기억

· 직접 주소 지정 방식 : 사용할 자료의 번지 표현 / 명령어의 주소부를 유효주소로 이용

· 간접 주소 지정 방식 : 명령의 길이가 짧고 제한되어 있어도 긴 주소 접근 / 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현

· 상대 주소 지정 방식 : 명령어의 주소 부분(변위) + PC

*JUMP 명령을 읽을 때 번지에서 PC 값이 1 증가

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

6장 기억장치  (0) 2017.02.22
5장 입력 및 출력  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
2장 자료의 표현  (0) 2017.02.21
1장 논리 회로  (0) 2017.02.21

정보처리기사 필기 - 2과목 전자계산기 구조


2장 자료의 표현


1. 자료 구성 단위

워드(Word) : 반워드(Half Word) 2Byte

풀워드(Full Word) 4Byte

서로 다른 정보의 가짓수 : 표현할 수 있는 정보 중 가장 큰 수를 이진수로 표현할 때의 비트수


10진수 → 2진수, 8진수, 16진수

2,8,16으로 나누고, 소수가 있을 경우 소수부분이 0이 될 때까지 2,8,16으로 계속 곱함


2진수, 8진수, 16진수 → 10진수

(8 4 2 1 …) (64 8 1 …) (256 16 1 …)을 각각 곱해서 더하기


2진수 → 8진수, 16진수

8진수는 3자리, 16진수는 4자리씩 끊고 각각 곱해서 더하기


8진수, 16진수 → 2진수

숫자 하나를 2진수로 표현



덧셈 : 동일한 컴퓨터에서 처리할 경우 연산속도 가장 빠름

보수

1의 보수 : 0일때는 1로, 1일때는 0으로(1의 보수 이용하여 계산 시 자리올림 발생하면 결과에 자리올림수 더함)

2의 보수 : 1의 보수 구한 뒤 결과값에 1 더함(2의 보수를 이용하여 계산시 자리올림 발생하면 자리올림수 버림)


2진 연산

범위 작지만 연산 속도 빠름

가장 좌측은 부호 비트 → 양수 : 0 / 음수 : 1

양수 : 부호 비트에 0 넣고, 변환된 2진수 값을 오른쪽에서 왼쪽 순으로 채우고 남는 자리에 0 채움

음수

종류

표현 방법

비고

 부호화 절대 치법

 양수 표현에 대하여 부호 비트의 값만 0을 1로

 두 가지 형태의 0 존재

 (+0, -0)

 부호화 1의 보수법

 양수 표현에 대하여 1의 보수 취함

 부호화 2의 보수법

 양수 표현에 대하여 2의 보수 취함

 한 가지 형태의 0만 존재(+0)

2의 보수 표현법이 널리 사용되는 이유

음수 표현시 숫자 1개 더 표현 가능(음수의 최대 절대치가 1만큼 큼)

연산이 더 간단

음수 0이 없으므로 0이 하나만 존재해 0 판단이 쉬움

normalize 정규화는 2의 보수 가산 회로로 정수 곱셈을 이행할 필요 없음



2. 부동 소수점 표현

덧셈, 뺄셈

1. 0인지 여부 조사, 지수의 비교

2. 가수의 위치 조정(=가수의 정렬=지수 통일)

3. 가수부 값끼리 더하거나 뺌

4. 정규화

나눗셈

1. 0인지 여부 조사

2. 부호 결정

3. 피제수 위치 조정(피제수<제수)

4. 지수의 뺄셈

5. 가수의 나눗셈

곱셈

1. 0인지 여부 조사

2. 지수의 덧셈

3. 가수의 곱셈

4. 정규화


부동소수점을 표현하는 표준 IEEE 754

지수 : 8비트

바이어스 : 127

가수 : 23비트

표현 영역 : -10^38



3. 자료 표현 코드

BCD 코드 : 10진수 1자리를 2진수 4비트로 표현

6

3

0110

0011

0100


Express-3(3초과 코드) : BCD 코드에 3을 더해서 만듬

ex) 10진수 9를 3초과 코드로 ? 9+3=12 → 1100

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

6장 기억장치  (0) 2017.02.22
5장 입력 및 출력  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21
1장 논리 회로  (0) 2017.02.21

+ Recent posts