라기의 IT's time

[CA-06강] 프로세서와 명령어

[CA-06강]프로세서와명령어.pdf
0.12MB

 

학습내용
☞ 프로세서와 명령어
학습목표
☞ 컴퓨터의 구조와 프로세서에 대해 이해 할 수 있다
 컴퓨터의 명령어에 대해 이해 할 수 있다
학습내용
1. 컴퓨터의 구성

 

2. 중앙처리장치(Central Processing Unit)

 

주기억장치에 기억된 명령을 꺼내서 해독하고, 시스템 전체에 지시 신호를 내는 장치
 명령 코드가 명령을 수행할 수 있게 필요한 제어 기능을 제공
 제어장치의 구성
 - 프로그램 카운터, 명령어 레지스터, 부호기, 명령해독기, 순서기, 주소 처리기

제어장치의 명령에 따라 실제로 연산을 수행하는 장치
 산술연산, 논리연산, 관계연산, 이동(Shift)등을 수행
 연산장치의 종류
 - 가산기, 누산기, 보수기, 데이터 레지스터, 오버플로우 검출기, 시프트 레지스터

 

중앙처리장치 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시기억장소

 

CPU, 메모리, I/O 장치 등과 상호 필요한 정보를 교환하기 위해 연결하는 공동의 전송선
 제어버스, 주소버스, 데이터버스(CPU와 메모리 또는 I/O장치 사이에서 데이터 전송)

 

3. 레지스터의 종류 및 기능

 

 

4. 명령어(Instruction) 의 구성

 

 

실행할 명령이 들어 있음
연산자부의 비트수가 n Bit 일 때 2의 n승 개의 
명령어(연산자) 수행 가능

 

자료부 = 어드레스 필드 = 주소부
 실제 데이터에 대한 정보를 표시하는 부분
 어드레스 필드의 크기 = 최대 메모리 용량
 예> OP-Code : 6bit, 어드레스 필드 16bit 일 때, 
 최대 메모리 용량은?
 64K Word (2의 16승 = 65536 = 64K

 

5. 연산자(OP-Code, Operation Code) 의 기능

함수 연산 기능
중앙처리장치에서 데이터를 처리하는 기능
산술, 논리 연산 명령(ADD, AND, CPA, CPC, CLC, ROR, ROL 등)
자료 전달 기능
중앙처리장치와 기억장치 사이에서 정보를 교환하는 기능
Load : 메모리의 내용을 CPU로 전달
Store : CPU의 정보를 메모리에 기억
Move : 특정 레지스터의 내용을 다른 레지스터로 옮기는 명령
Push, Pop : 스택에 자료를 저장, 인출하는 명령
제어 기능
프로그램의 수행 흐름을 제어하는데 사용
무조건 분기 명령 : GOTO, JMP(Jump)
조건 분기 명령 : IF, SPA, SNA, SZA
부 프로그램 호출 및 복귀 : Call, Return
입,출력 기능

 

6. 명령어 형식

 

3-주소 명령어

Operand 부가 3개로 구성
연산 후에 입력자료가 변하지 않고 보존됨
전체 명령어를 읽어오는 시간 단축
프로그램의 길이가 짧아짐
하나의 명령을 수행하기 위해서 최소한 4번 기억장소에 접근해야 하므로 전체적인 수행시간 길어짐

 

2-주소 명령어

Operand 부가 2개로 구성
3-주소 명령어에 비해 길이가 짧음

 

계산 결과를 시험할 필요가 있을 때 기억장치에서 기억 될 뿐만 아니라 CPU에도 남아 있어 CPU내에서 직접 
시험이 가능하므로 시간이 절약됨. 전체 프로그램의 길이가 길어짐

 

1-주소 명령어

 

Operand 부가 1개로 구성
반드시 누산기(Accumulator)가 필요한 주소지정방식
모든 명령은 누산기에 기억되어있는 자료를 사용함
예> C = A + B

 

0-주소 명령어

Operand 부가 없이 OP-code 부만으로 구성
모든 연산은 스택(Stack)에 있는 자료를 이용하여 수행

 

7. 기타 시험에 잘 나오는 것 요약정리
단항 연산자와 이항 연산자
- 단항연산자(Unary Operator) : 피 연산자가 1개만 필요
 NOT, Complement, Shift, Rotate, MOVE 등
- 이항연산자(Binary Operator) : 피 연산자가 2개 필요
 사칙연산, AND, OR, XOR, XNOR 등
명령어 설계시 고려 사항
연산자의 종류, 주소 지정 방식, 해당 컴퓨터 시스템 단어(Word)의 크기(비트수)
스택(Stack)
자료의 삽입(Push), 삭제(Pop)이 한쪽에서 가능한 자료구조, LIFO 구조
0주소 명령어 형식 뿐 아니라 부 프로그램(서브루틴) 호출 시 복귀 주소 저장, 인터럽트 발생시 복귀 주소 저장, 재귀(Recursive) 프로그램의 순서 제어, 역 polish 형 산술식의 처리 등에 쓰임
0-주소 명령형을 갖는 컴퓨터 구조의 원리로 스택 머신(Stack Machine)이라고도 함

 

재귀(Recursion) 프로그램
한 루틴이 자기를 다시 불러 실행하는 프로그램
이터레이션(Iteration)
해당 루틴이 정확한 결과를 산출할 때까지 해당 루틴에서 발생한 결과를 가지고 처음에 사용한 자료를 다시 
수정하여 계산 작업을 반복적으로 수행하는 것
프로그램 디버깅(Debugging)
프로그램의 오류를 발견하고 그 원인을 밝히는 작업
- 트레이서(tracer) : 프로그램의 실행과정을 출력하는 프로그램
- 덤프(dump) : 주기억장치의 내용을 그대로 화면이나 프린터, 디스크 등에 출력하는 것
부 프로그램(서브루틴, Subroutine)과 매크로 
부 프로그램 : 반복적으로 사용되는 코드를 필요할 때 호출하여 사용할 수 있도록 한 프로그램
매크로 : 반복적으로 사용되는 코드를 프로그램 내에 삽입하여 언제든 호출하여 사용할 수 있도록 한 것
 프로그래머가 어셈블리언어로 프로그램을 작성할 때 반복되는 것을 효과적으로 하기 위함
공통점 : 여러 번 중복되는 부분을 별도로 작성하여 사용
데이터 처리 명령어 종류
산술 명령어 : ADD, SUB, MUL, DIV, 산술 Shift
논리 명령어 : NOT, AND, OR, XOR, 논리적 Shift, ROTATE, COMPLEMENT, CLEAR
연산자의 우선순위 : 산술연산자 → 관계연산자 → 논리연산자

 

요점정리
1. 컴퓨터의 구조와 프로세서에 대해 이해 할 수 있다
2. 컴퓨터의 명령어에 대해 이해 할 수 있다
다음차시예고
수고하셨습니다. 다음 7주차에서는 “[CA-7강] 주소지정방식, 명령실행과 제어”에 대해서 학습하도록 하겠습니다.

TOP