2014년 6월 23일 월요일

정보처리기사 필기 2006년 5월 A형 전자계산기 구조

<주요 명령의 마이크로 오퍼레이션>

• ADD : AC ← AC + M[AD]
Micro Operation
MAR MBR[AD]
MBR 있는 명령어의 번지 부분을 MAR 전송함
MBR M[MAR]
메모리에서 MAR 지정하는 위치의 값을
MBR 전송함
AC AC + MBR
누산기의 값과 MBR 값을 더해 누산기에 전송함
• LDA(Load to AC) : AC ← M[AD]
Micro Operation
MAR MBR[AD]
MBR 있는 명령어의 번지 부분을 MAR 전송함
MBR M[MAR]
AC 0
메모리에서 MAR 지정하는 위치의 값을 MBR 전송함
AC 0 전송하여 AC 초기화       
AC AC + MBR
메모리에서 가져온 MBR AC 더해
AC 전송함
초기화된 AC 더해지므로 메모리의
값을 AC 불러오는 것이됨
• STA(Store to AC) : M[AD] ← AC
Micro Operation
MAR MBR[AD]
MBR 있는 명령어의 번지 부분을 MAR 전송함
MBR AC
AC 값을 MBR 전송함
M(MAR) MBR
MBR 값을 메모리의 MAR 지정하는
위치에 전송함
• BSA(Branch and Save Return Address)
Micro Operation
MAR MBR[AD],
MBR[AD] PC,
PC MBR[AD]
M B R 있는 명령어의 번지 부분을
MAR 전송함
MBR[AD] 복귀주소가 저장될 위치
이면서 부프로그램이 시작되기 바로
번지임
PC (복귀주소) MBR 주소 부분
으로 전송함
복귀주소를 저장하기 위한 준비단계
MBR 주소 부분을 PC 전송함
부프로그램이 시작되기 바로 주소
PC 전송함
M[MAR] MBR[AD]
MBR 있는 명령어의 번지 부분을
모리의 MAR 가리키는 위치에 전송함
부프로그램이 시작되기 바로 주소
복귀주소를 저장함
PC PC+1
PC 값을 1 증가시킴
부프로그램의 시작임

<인터럽트 발생 시 CPU가 확인할 사항>

• 프로그램 카운터의 내용
• 사용한 모든 레지스터의 내용
• 상태 조건의 내용(PSW)

<마이크로 오퍼레이션(Micro Operation)의 정의>

• Instruction을 수행하기 위해 CPU 내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작이다.
• 컴퓨터의 모든 명령을 구성하고 있는 몇 가지 종류의 기본 동작이다.
• 컴퓨터 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.
• 레지스터에 저장된 데이터에 의해 이루어지는 동작이다.
• 마이크로 오퍼레이션은 하나의 Clock 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행된다.
• 마이크로 오퍼레이션의 순서를 결정하기 위하여 제어장치가 발생하는 신호를 제어신호라고 한다.
• 마이크로 오퍼레이션은 Instruction 실행과정에서 한단계씩 이루어지는 동작으로, 한 개의 Instruction은 여러 개의 Micro Operation이 동작되어 실행된다.
• Micro Cycle Time : 한 개의 Micro Operation을 수행하는 데 걸리는 시간

<명령어 형식>

3 번지 명령어
• Operand부가 3개로 구성되는 명령어 형식으로 여러개의 범용 레지스터(GPR)를 가진 컴퓨터에서 사용함
• 연산의 결과는 주로 Operand 1에 기록됨
• 연산 시 원시 자료를 파괴하지 않음
• 다른 형식의 명령어를 이용하는 것보다 프로그램 전체의 길이를 짧게 할 수 있음
• 전체 프로그램 실행 시 명령 인출을 위하여 주기억장치를 접근하는 횟수가 줄어들어 프로그램 실행 속도를 단축시킴
2 번지 명령어
• Operand부가 두 개로 구성되는, 가장 일반적으로 사용되는 명령어 형식임
• 여러 개의 범용 레지스터를 가진 컴퓨터에서 사용함
• 실행 속도가 빠르고 기억 장소를 많이 차지하지 않음
• 3주소 명령에 비해 명령어의 길이가 짧음
• 계산 결과가 기억장치에 기억되고 중앙처리장치에도 남아 있어서 계산 결과를 시험할 필요가 있을 때 시간이 절약됨
• 단점
- 연산의 결과는 주로 Operand 1에 저장되므로 Operand 1에 있던 원래의 자료가 파괴됨
- 전체 프로그램의 길이가 길어짐
1 번지 명령어
• Operand부가 1개로 구성되어 있음
• AC(Accumulator; 누산기)를 이용하여 명령어를 처리함
0 번지 명령어
• Operand부 없이 OP-Code부만으로 구성
• 모든 연산은 Stack 메모리의 Stack Pointer가 가리키는 Operand를 이용하여 수행함
• 수식을 계산하기 위해서는 우선, 수식을 Postfix(역 Polish) 형태로 변경하여야 함
• 모든 연산은 스택에 있는 자료를 이용하여 수행하기 때문에 스택 머신(Stack Machine)이라고도 함
• 원래의 자료가 남지 않음

<파이프라인 프로세서((Pipeline Processor)>

 실행순서 : Fetch(명령 인출) - Decode(명령 디코드) - 오퍼랜드패치(Operand Fetch) - 실행(Execute)

<플린(Flynn)의 병렬 컴퓨터 분류>

SISD(Single Instruction stream Single Data stream)
•현재의 보통 컴퓨터 구조임
•명령 하나가 자료 하나를 처리하는 구조임
• 제어장치가 한 개의 명령을 번역한 후 처리기를
작동시켜 명령을 처리할 때 기억장치에서 한 개
의 자료를 꺼내서 처리함
•Pipeline에 의한 시간적 병렬 처리가 가능함
SIMD(Single Instruction stream Multi Data stream) 
• 한 개의 명령으로 여러 Data를 동시에 처리하는
구조임
• 다수의 처리기가 한 개의 제어장치에 의해 제어됨
• 배열 처리기(Array Processor)에 의한 동기적 병
렬 처리가 가능함
MISD(Multi Instruction stream Single Data stream) 
• 다수의 처리기에 의해 각각의 명령들이 하나의
Data를 처리하는 구조임
• 실제로는 사용되지 않는 구조임
• Pipeline에 의한 비동기적 병렬 처리가 가능함
MIMD(Multi Instruction stream Multi Data stream) 
• 다수의 처리기가 각각 다른 명령 흐름과 자료 흐
름을 가지고 여러 개의 자료를 처리하는 구조임
• 처리기들의 상호 연결 시 T i g h t l y C o u p l e d
System을 다중 처리기, Loosely Coupled
System을 분산 처리 시스템이라 함
•다중 처리기에 의한 비동기적 병렬 처리가 가능함

<주요 레지스터>

프로그램 카운터, 프로그램 계수기 (PC; Program Counter) 
• 다음 번에 실행할 명령어의 번지를 기억하는 레지스터
• 분기 명령이 실행되는 경우 그 목적지 주소로 갱신된다.
명령 레지스터 (IR; Instruction Register) 
 현재 실행중인 명령의 내용을 기억하는 레지스터
누산기 (AC; Accumulator) 
• 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심임
상태 레지스터(Status Register) PSWR(Program Status Word Register) 플래그 레지스터 
• 시스템 내부의 순간순간의 상태가 기록된 정보를 PSW라고 함
• 오버플로, 언더플로, 자리올림, 계산상태(0, -, +), 인터럽트 등의 PSW를 저장하고 있는 레지스터
메모리 주소 레지스터 (MAR; Memory Address Register) 
 기억장치를 출입하는 데이터의 번지를 기억하는 레지스터
메모리 버퍼 레지스터(MBR; Memory Buffer Register) 
 기억장치를 출입하는 데이터가 잠시 기억되는 레지스터로 CPU가 데이터를 처리하기 위해서는 반드시 거쳐야 함
인덱스 레지스터 (Index Register)
• 주소의 변경, 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터
• 사용자가 내용을 변경할 수 있음
데이터 레지스터 (Data Register)
• 연산에 사용될 데이터를 기억하는
레지스터
시프트 레지스터 (Shift Register)
• 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 레지스터
• 2배 길이 레지스터라고도 함
메이저 스테이터스 레지스터 (Major Status Register)
 CPU의 메이저 상태를 저장하고 있는 레지스터

<반도체 기억소자 구성>

 RAM / ROM의 용량계산법 
기억장치 용량 = 2^워드의 수 × 워드의 크기
- 워드의 수 = 입력 번지선의 수 = 주소선의 수 = MAR = PC
- 워드의 크기 = 출력 데이터선의 수 = Data Bus의 비트 수 = MBR = DR = IR
- 예제
• 기억용량이 1MByte일 때 필요한 주소선의 수? 
⇨ 워드의 크기에 대한 언급이 없으면 워드의 크기로 1Byte로 보면 됨
1MByte = 2의 20승이므로 20개의 주소선이 필요함
• 입력 번지선이 8개, 출력 데이터선이 8개인 ROM의 기억용량? 
⇨ 2^8 × 8 Bit = 256 × 8 Bit = 256 Byte

<플립플롭>

플립플롭
RS
플립플롭의 기본으로, S R선의 입력을 조절하여 임의의 Bit 값을 그대로 유지시키거나, 무조건 0 또는 1 값을 기억시키기 위해서 사용
JK
RS FF에서 S = R = 1 동작되지 않는 결점을 보완한 플립플롭
RS FF 입력선 S R JK FF 입력선 J K 사용함
•모든 플립플롭의 기능을 포함함
D
RS FF R선에 인버터(Inverter) 추가하여 S선과 하나로 묶어서 입력선을 하나만 구성한 플립플롭
•입력하는 값을 그대로 저장하는 기능을 수행함
T
JK FF 입력선을 묶어서 개의 입력선으로 구성한 플립플롭
T=0 경우는 변화가 없고, T=1 경우에 현재의 상태를 토글(Toggle)시킴. 상태와 보수 상태의 2가지 상태로만 서로 전환됨
마스터-
슬레이브
(M/S)
출력 측의 일부가 입력 측에 궤환(FeedBack)되어 유발되는 레이스 현상을 없애기 위해 고안된 플립플롭
2개의 플립플롭으로 구성되는 , 한쪽 회로가 마스터이고 다른 한쪽이 슬레이브의 위치에 있어 마스터-슬레이브 플립플롭이라

<논리 게이트 (논리 소자)>

Gate name
Symbol
논리식
T.T(진리표)
Gate name
Symbol
논리식
T.T(진리표)
AND
gate
X = A.B
(논리곱)
A
B
X
0
0
0
0
1
0
1
0
0
1
1
1
NAND
gate
X = (A.B)'
= A'+B'
A
B
X
0
0
1
0
1
1
1
0
1
1
1
0
OR
gate
X = A+B
A
B
X
0
0
0
0
1
1
1
0
1
1
1
1
NOR
gate
X = (A+B)'
= A' . B'
A
B
X
0
0
1
0
1
0
1
0
0
1
1
0
NOT
gate
X = A
A
X
0
1
1
0
XOR
gate
X = AB
= A'B + AB'
A
B
X
0
0
0
0
1
1
1
0
1
1
1
0
BUFFER
(순기능)
X = A
목적 timing
조정
A
X
0
0
1
1
XNOR
gate
X = AB
= A'B + AB
A
B
X
0
0
1
0
1
0
1
0
0
1
1
1

<인터럽트의 동작 순서>

➊ 인터럽트 요청 신호 발생
➋ 프로그램 실행을 중단함 : 현재 실행중이던 명령어 (Micro Instruction)는 끝까지 실행함
➌ 현재의 프로그램 상태를 보존함 : 프로그램 상태는 다음에 실행할 명령의 번지로서 PC가 가지고 있음
➍ 인터럽트 처리 루틴을 실행함 : 인터럽트를 요청한 장치를 식별함
➎ 인터럽트 서비스(취급) 루틴을 실행함 : 실질적인 인터럽트를 처리함

<DMA의 구성 요소>

 인터페이스 회로 : CPU와 입·출력 장치와의 통신 담당
 주소 레지스터(Address Register) 및 주소 라인 : 기억장치의 위치 지정을 위한 번지 기억 및 전송
 워드 카운트 레지스터(Word Count Register) : 전송되어야 할 워드의 수 기억
 제어 레지스터(Control Register) : 전송 방식 결정
 데이터 레지스터(Data Register) : 전송에 사용할 자료나 주소를 임시로 기억하는 버퍼 역할을 함

<입·출력(Input-Output) 제어 방식>

 Programmed I/O
 Interrupt I/O
 DMA (Direct Memory Access)에 의한 I/O
 Channel에 의한 I/O

<피연산자의 수에 따른 연산자의 분류>

 NOT A처럼 피연산자가 1개만 필요한 연산자를 단항 연산자라 하고, A+B처럼 피연산자가 2개 필요한 연산자를 이항 연산자라 한다.
 - 단항 연산자 (Unary Operator)
: NOT, COMPLEMENT, SHIFT, ROTATE, MOVE, CLEAR 등
 - 이항 연산자 (Binary Operator)
: 사칙 연산, AND, OR, XOR, XNOR

<가상 기억장치(Virtual Memory)>

• 기억 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있도록 하는 운영체제의 메모리 운영기법이다.
• 가상 기억장치의 목적은 주기억장치의 용량 확보이다.
• 가상 기억장치는 하드웨어적으로 실제로 존재하는 것이 아니고 소프트웨어적인 방법으로 보조기억장치를 주기억장치처럼 사용하는 것이다.
• 사용자 프로그램을 여러 개의 작은 블록으로 나누어서 보조기억장치 상에 보관해 놓고 프로그램 실행 시 필요한 부분들만 주기억장치에 적재한다.
• 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있다.
• 가상 기억장치 기법에서 사용하는 보조기억장치는 디스크 같은 DASD 장치이어야 한다.
• 주소의 사용
- 가상 기억장치 기법에서는 보조기억장치에 저장된 사용자 프로그램을 블록으로 나누어 블록에 대한 주소를 주기억장치와는 별도의 주소로 표현하여 필요 시 해당 블록만을 주기억장치에 적재한다.
- 가상 주소(논리 주소) : 보조기억장치 상의 주소로, 이들 주소의 집합을 주소 공간이라고 한다. 교체 단위는 페이지를 사용한다.
- 실기억 주소(물리적 주소) : 주기억장치 상의 주소로 물리적 주소라고도 하며, 이들 주소의 집합을 메모리 공간 또는 기억 공간이라 한다. 교체 단위는 블록을 사용한다.
• 페이지 부재(Page Fault)
- CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우를 말한다.
- Page Fault가 발생하면 요구된 Page가 주기억장치로 옮겨질 때까지 프로그램 수행이 중단된다.
• 주소 매핑
- 가상기억장치에 보관 중이던 프로그램을 실행하기 위해 주기억장치에 Load했다 하더라도 프로그램을 구성하는 각 기계명령에 포함된 주소는 가상주소로 남아 있기 때문에 CPU에서 주기억장치를 Access하기 위해서는 가상주소를 실주소로 변환해야 한다.
- 주소 매핑에는 사상함수가 사용된다.

댓글 없음:

댓글 쓰기

대항해시대 조선 랭작

숙련도 획득 방법 선박 건조, 선박 강화, 전용함 추가시 숙련도 획득 모두 동일한 공식 적용 획득 숙련도 공식 기본 획득 숙련도 ≒ int{건조일수 × 현재랭크 × (0.525)} 이벤트 & 아이템 사용...