Frog is cry
전자계산기 구조 : 3-명령어 및 프로세서 본문
1장 명령어의 기본
명령어(Instruction)의 설계
명령어의 구조
> 명령어는 여러 동작을 실행하는데 필요한 정보를 가지고 있으며, 모든 컴퓨터에서 기본적으로 수행될 연산자(Operation)와 그 연산에 사용할 대상체(Operand)로 구성된다.
연산자(동작, Operation Code, OP-Code)
> 컴퓨터가 행하는 동작을 기호화해서 나타낸 정보로 연산자의 종류, 명령어 형식, 자료 종류 등의 정보를 나타내며, 명령어의 개수를 몇 개 사용할 것인지에 따라 사용 비트 수가 결정된다. 예를 들어 명령어를 32개 사용한다면 32 = 2의 5제고 이므로 OP-Code는 5비트로 표현해야한다.
모드(Mod)
> 대상체를 지정하는 방법으로 보통 직접 주소와 간접 주소로 구분된다.
주소(Oerand)
> 처리된 정보 또는 처리할 정보를 표시하는 부분으로 주소 필드(Address Field)라고도 한다.
기억 장소는 주소, 레지스터의 번호, 사용할 데이터 등을 표시하며, 자료부의 크기는 메모리 용량과 관계가 있다.
연산자(Operation, Op-Code)의 기능
함수 연산 기능(Functional Opeation)
> 함수 연산 기능은 산술적 연산과 논리적 연산을 수행하는 기능이다.
전달 기능(Transfer Operation)
> 전달 기능이라는 것은 버스 라인을 통해 레지스터 사이의 접정보 이동 및 CPU와 주기억 장치의 정보를 이동시키는 기능이다.
제어 기능(Control Operation)
> 제어 장치에 의해 명령어를 해독하여 명령어의 수행서를 제어하거나 연산 장치의 제어점 제어 기능이다.
입출력 기능(Input-Output Operation)
> 주기억 장치에 기억된 연산 결과를 출력 장치로 이동시키거나 입력 장치에 있는 데이터를 주기억 장치로 이동시키는 기능이다.
명령어의 종류
데이터 처리 명령어
> 자료에 대한 연산 능력을 컴퓨터에 부여하는 명령어로 크게 산술연산, 논리연산, 시프트 연산으로 구분된다.
데이터 전송 명령어
> 자료의 변경 없이 한 장소에서 다른 장소로 전송시키는 명령어로 메모리와 레지스터, 레지스터와 레지스터, 메모리와 입출력 장치 사이의 데이터 전송이 있다.
데이터 제어 명령어
> 모든 명령어들이 상황에 맞게 적절히 수행될 수 있도록 조작을 가하는 것으로 조건 분기(Branch), 무조건 분기, 순서 변경, 테스트 등이 있다.
기타 용어 및 프로그램
기타 명령
리커션(Recursion)
> 자기가 자신을 호출하는 경우로 되돌아온 복귀 주소를 스택(Stack)에 Push하고 다시 자신을 실행하는 것이다. 잘못하면 무한 루프에 빠질 수 있다.
반복(Iteration)
> 주어진 자료를 가지고 처음에 실시된 계산은 정확한 정보를 나타내주지 못하므로 그 결과를 가지고 처음의 자료를 다시 수정하여 계산하는 방법을 반복적으로 행하는 것으로 루틴 내부에서 자료를 얻어야한다.
기타 프로그램
연계 편집기(Linage Editor)
> 목적 프로그램을 실행 가능한 로드 모듈(Load Module)로 변환하는 시스템 서비스 프로그램이다.
기계어
> 컴퓨터가 직접 이해하고 수행할 수 있는 언어로 수행 시간이 신속하나 프로그램 과정이 불편하고 언어의 호환성이 없다는 단점을 가지고 있다.
고급 언어(High-Lever Language)
> 기계어와는 달리 프로그래머가 익숙한 표현 형식을 사용하도록 하는 프로그래밍 언어로 하드웨어에 상관없이 Compiler로 번역되어 하드웨어와 호환되도록 한 언어이다.
2장 명령어의 형식
피연산자(Operand Address) 개수에 따른 구분
0-주소 명령어 형식
> 0-주소 명령어는 오퍼레이션(Operation)부분만 있고 오퍼랜드(Operand) 부분인 주소가 없는 명령어 형식을 의미한다.
> 스택 구조 컴퓨터에서 사용하는 명령어 형식이다.
> 모든 연산은 스택상에 있는 두 값을 묵시적으로 지정하여 POP해서 연산을 수행하고 결과를 다시 스택상에 PUSH하기 때문에 원래의 데이터는 모두 잃어버리게된다.
1-주소 명령어 형식
> 1-주소 명령어는 오퍼레이션(Operation) 부분과 1개의 오퍼랜드(Operand) 부분으로 구성된 명령어 형식을 의미한다.
> 누산기(ACCumlator) 구조 컴퓨터에서 사용하는 명령어 형식이다.
> 연산 시 두 개의 자료 중 하나는 묵시적으로 누산기를 지정하여 연산하고, 연산 결과 역시 누산기에 저장하는 방식이다.
피연산자 위치에 따른 구분
스택 명령어(SI : Stack Instruction) 형식
> 연산 대상이 되는 자료가 스택(Stack)에 있고, 결과 또한 스택에 저장되는 경우로 0-주소 명령어 형식이 여기에 속한다.
3장 주소 지정 방식(Addressing Mode)
즉시 주소(Immediate AddresS)
> 명령어의 주소(Operand 부분에 실제 데이터가 들어 있는 방식으로 명령어 수행이 즉각적으로 이루어진다.
> 실제 데이터를 가져오기 위해 메모리를 참조할 필요가 없다.
> 명령어에 실제 데이터를 포함하고 있으므로 수행 속도는 빠르지만 Oerand에 실제 데이터를 넣기 위해서는 명령어 길이에 제약이 따를 수박에 없다.
간접 주소(Indirect Address)
> 명령어의 주소(Operand) 부분이 지정하는 메모리 번지에 실제 데이터의 주소가 저장되는 방식이다.
> 실제 데이터를 가져오기 위해 메모리를 두 번 이상 참조해야 한다.
> 명령어의 길이가 짧고 제한되어 있어도 이것을 이용하면 긴 주소를 찾아갈 수 있기 때문에 주소 지정에 많은 융통성이 있다.
상대 주소 지정(Relative Address)
> 명령어의 오퍼랜드(Operand) 부분에 있는 주소 값과 프로그램 카운터(PC : Program Counter)에 들어 있는 값을 더해서 실제 데이터가 들어 있는 기억 장소의 위치를 지정하게 하는 방식이다.
> 데이터 영역의 배치와 프로그램 영역의 배치가 유사한 경우에 많이 사용한다.
> 분기 명령에 많이 사용한다.
4장 프로세서
프로세서(Processor)의 종류
중앙 처리 장치(CPU)의 구성
연산 장치(ALU : Arithmetic and Login Unit)
> 산술 연산 및 논리 연산 등을 수행하는 장치이다.
> 연산 장치는 가산기, 누산기(Accumulator), 자리 올림 플립플롭, 오버플로 체크 플립플롭, 오버플로 체크 플립플롭, 보수기 등으로 구성되어 있따.
제어장치(CU : Control Unit)
> 제어 장치는 주기억 장치에 기억되어 있는 명령어를 차례로 인출하여 해독하고, 해독한 결과에 따라 필요한 제어 신호를 각 장치에 보내는 역할을 한다.
> 제어 장치는 PC(Program Counter), IR(Instruction Register), 명령 해독기(Instruction Decoder), MBR(Memory Buffer Register), MAR(Memory Address Rgister), 순서 제어기, 주소 처리기, 신호 발생 장치 등으로 구성되어 있다.
5장 레지스터(Register)
> 레지스터는 주기억 장치보다 작은 개수로 주소 비트를 가지고 기억된 정보를 신속하게 접근할 수 있는 기억 장소로 중앙 처리 장치(CPU)안에 있는 임시 기억 장치이다.
> 중앙 처리 장치의 주소 선은 주소 레지스터(AR : Address Register)와 연결되어 있고 데이터 선은 데이터 레지스터(DR : Data gister)와 연결되어 있다. 따라서 메모리의 용량은 AR과 관계가 있고 한 번에 액세스되는 워드 크기는 DR과 관계가 있다.
프로그램 카운터(PC : Program Counter)
> 로케이션 카운터(LC : Location Counter)라고도 한다.
> 다음 명령어의 주소 값을 기억하고 있는 레지스터이다.
> 명령어의 수행 순서를 나타내는 레지스터이다.
> 이 레지스터가 없다면 각 명령어마다 다음에 수행하여야 할 명령어에 대한 주소 값을 기억하고 있어야한다.
메모리 번지 레지스터(MAR : Memory Address Register)
> 메모리에 접근하고자 할 때 접근하고자 하는 곳의 주소 값을 기억하고 있는 레지스터이다.
> 기억 장치의 용량과 관계가 있는 레지스터이다.
기억 레지스터(MBR : Memory Buffer Register)
> 주기억 장치에서 정보를 읽을 때 읽은 정보를 기억시키거나 주기억 장치에 정보를 기억시키는 레지스터이다.
> 기억 장치의 WORD 크기와 관계가 있다.
데이터 레지스터(DR : Data Register)
> 명령어 수행 시 수행에 필요한 데이터를 기억시키는 레지스터로 기억 장치의 워드 크기와 관계가 있다.
누산기(ACC : ACCumulator)
> 연산기능 수행 시 중심이 되는 데이터 레지스터로서 연산 장치에 연결되어 있다.
> 연산시 연산에 사용되는 데이터 및 연산 결과를 임시적으로 기억하는 레지스터이다.
상태 레지스터(Status Register)
> 프로그램 제어를 위한 상태 정보를 기억시키는데 필요한 레지스터를 의미한다.
플래그 레지스터(Flag Register) = 프로그램 상태 워드 레지스터(PSWR : Program Status Word Regiser)
> 프로그램의 수행이 진행되고 있을 때 매 순간마다 프로그램의 수행 상태를 포함하는 중앙 처리 장치의 상태를 나타내는 레지스터이다.
> 명령의 실행 중에 어떤 상황(부호 체크, 오버플로 여부, 캐리 발생 여부 등) 발생에 대한 사항들을 각각 1비트로세트시키는 레지스터를 의미한다.
> 프로그램 상태 워드(PSW : Program Status Word)는 컴퓨터 시스템 내부에서 순간순간의 시스템 상태를 기록하고 있는 특별한 Word로서 이 레지스터에 기억되어 있다.
'자격증 > 정보처리산업기사' 카테고리의 다른 글
전자계산기 구조 : 5-기억 장치 (0) | 2020.08.05 |
---|---|
전자계산기 구조 : 4-명령 수행 및 제어 (0) | 2020.08.05 |
전자계산기 구조 : 2-자료 표현 및 연산 (0) | 2020.08.04 |
전자계산기 구조 : 1-논리회로 (0) | 2020.08.04 |
정보 통신 개론 : 6-뉴미디어 (0) | 2020.08.03 |