Transcript CPU

과 목 명
:
컴 퓨 터
구 조
담 당 교 수
:
조 범 석
교 수 님
학 년 / 반
:
2 학 년 1 반
학번/이름:
2 0 0 7 0 8 1 0 7 3
2 0 0 9 0 8 1 0 0 4
위 인 선
이 보 미

CPU
1) CPU의 개요
2) CPU의 구성

Register

명령어 집합
1) 레지스터의 개요
2) 범용 레지스터 / 전용 레지스터
1) 명령어 형식
2) 명령어 주소 지정 방식


CPU?
- Central Processing Unit의 약어
Main Memory 명령 해독
- Main Memory의 프로그램에 의해 기술한 명령어를 실
행하는 실질적인 작업을 실행

CPU = Arithmetic Logic Unit + Control Unit
+ Register + Bus Interface Unit



Register?
-산술 연산이나 조건 문을 처리해야 할 경우 발생되는
결과를 보관 할 수 있는 CPU내의 임시 기억장소
범용 레지스터
- 연산과정에서 필요하며 고속으로 CPU가 자신의 작업
을 위해 다목적으로 사용하는 레지스터
전용 레지스터
- 특별하고 시스템에 꼭 필요로 하는 용도로 사용되는
레지스터

Accumulator
- 연산된 결과를 일시적으로 저장하는 레지스터
- 증가, 감소, 이동, 데이터 변환 등 여러가지 기능을 수행
- 가산기를 이용할 경우보다 빠르게 연산 수행

명령어 레지스터
동작코드
피 연산자(X) 피 연산자(Y)
- 명령어 수행 전 잠시 보관하는 레지스터

메모리 지정 레지스터
- Memory Address Register
: CPU가 실질적으로 참조할 기억장치의 주소를 나타냄
- Memory Buffer Register
: MAR에 있는 주소의 데이터를 임시적으로 저장

메모리 지정 레지스터
- Index Register
: 인덱스 레지스터 내용과 IR에 있는 피연산자 B의 값을
더하여 여러가지 주소 지정모드를 만들어 냄
- Source Index, Destination Index
: 메모리 간에 대량의 데이터를 옮길 때 시작지와 목적지
의 위치를 가리키는 레지스터

메모리 지정 레지스터
- Segment Register
: CPU가 읽어야 할 코드나 데이터가 있는 세그먼트가 어
느 기억장치의 어느 위치에 있는지 가리킴
- Program Counter
: 다음 실행될 명령어의 주소 위치를 기억함


STACK Register
- 인터럽트상황 또는 예외사항이 발생하였을 때 사용하
는 레지스터
Status Register
- 다음 동작의 기준을 정하기 위해 연산의 상태를 저장
하고 있는 레지스터

일련의 비트로 구성된 코드 표현

동작코드와 데이터 주소부분으로 구성
동작 코드

피 연산자(#1)
피 연산자(#2)
명령어의 동작 코드
동작 코드
기능
ADD
덧셈
SUB
뺄셈
MUL
곱셈
DIV
나눗셈
LD
기억장치로부터 레지스터로 데이터 적재
STO
기억장치에 데이터 저장
① PC의 계수를 증가 시킨다
② 제어장치에서 MAR에게 실행 할 명령어의 주소를 가져
올 것을 명령한다
③ Main Device(Main memory) 에서 명령어를 MBR로 전
송한다.
④ MBR에서 주소부는 다시 MAR로, 명령어부는 IR로 전송
한다.
⑤-1 IR에서 명령어 해독 후 제어장치에서 제어 신호가 발
생하고 각 장치가 동작한다
⑤-2 해독한 명령이 분기 명령일 시 다시 PC의 계수를 증
가시킨다.

0 – 주소 명령어 형식
- 스택 구조에서만 사용되는 명령어 형식

1 – 주소 명령어 형식
- 누산기가 하나일 때 사용하는 명령어 형식


2 – 주소 명령어 형식
- 연산 결과를 두 개의 입력데이터가 있던 곳 중 한곳에
기억할수 있는 명령어 형식
3 – 주소 명령어 형식
- 두 개의 피연산자와 결과를 모두 저장해야할 때 사용하
는 명령어 형식


데이터 전송 명령어
- 연산은 하지않고 다른장소로 옮기기만 하는 명령어
데이터 처리 명령어
- 산술 연산, 논리 연산, 시프트 명령등 수행
 프로그램 제어 명령어
- Program Counter의 값을 변경할 수 있는 제어 기능
 메모리 참조 명령어
- 동작 코드가 해당하는 주소의 메모리 내용으로 실행
 레지스터 참조 명령어
- 주소 부분에 레지스터의 동작이나 테스트를 기술하여
하나 이상의 레지스터로 작동되는 명령어
 입출력 참조 명령어
- 주소 부분에 입출력 동작이나 테스트를 기술한 명령어
Immediate Addressing Mode
Direct Addressing Mode
 Indirect Addressing Mode
 Register Addressing Mode
 Register Indirect Addressing Mode
 Relative Addressing Mode
 Base Register Addressing Mode
 Index Register Addressing Mode
 데이터 주소의 표현 방식
 STACK Addressing Mode


- 사용할 수 있는 데이터를 피연산자에 직접 넣는 방법
- 피연산자에 실제 주소를 넣는 방법
-피 연산자에 한 주소를 가리키고, 그 주소에 실제 데이터
주소를 가리키는 방법
- 직접 주소 방식과 유사하나 참조하는 기억장소가 레지스터
- 피연산자에 한 레지스터를 가리키고, 그 레지스터에는 실제
데이터 주소를 가리키는 방법
- 명령어의 주소와 Program Counter의 값과 합해져서
유효 주소를 얻음
- 베이스 레지스터의 주소와 명령어의 주소를 합하여
유효 주소를 얻음
- 인덱스 레지스터의 번호와 명령어의 주소를 합하여
유효 주소를 얻음



완전 주소
- 기억된 장소에 직접 대응 시킬 수 있는 완전한 주소
약식 주소
- 주소의 일부분을 생략한 계산에 의한 주소
생략 주소
- 원하는 정보가 기억된 곳을 알 수 있을 경우 사용
STACK Pointer
1003
주소
STACK Pointer
1002
주소
STACK Pointer
1001
주소
1000
100
1000
100
1000
100
1001
22
1001
22
1001
322
1002
30
1002
300
1003
10
(a) MUL (*) 연산
(b) ADD (+) 연산
- 주소없이 기억장치에 판독하거나 기억할 수 있는 주소
지정 방식