CPU (Central Processing Unit)

35
CPU (Central Processing Unit) 2007081044 장장장 2009081058 장장장 1

description

CPU (Central Processing Unit). 2007081044 장준식 2009081058 이현준. INDEX. 순서 페이지 번호 CPU 의 개요 3 명령어 주기 5 1) Fetch Cycle 2) Execute Cycle 명령어형식 8 명령어종류 17 - PowerPoint PPT Presentation

Transcript of CPU (Central Processing Unit)

Page 1: CPU (Central Processing Unit)

CPU(Central Processing Unit)

2007081044 장준식2009081058 이현준

1

Page 2: CPU (Central Processing Unit)

INDEX 순서 페이지 번호

1. CPU 의 개요 32. 명령어 주기 5

1) Fetch Cycle2) Execute Cycle

3. 명령어형식 84. 명령어종류 175. 주소지정 방식 18 6. 데이터 주소 표현방식 297. 레지스터 308. 자료출처 34

2

Page 3: CPU (Central Processing Unit)

CPU 란 ?• 레지스터 (Register)• 산술논리연산장치 (ALU)• 제어장치 (Control Unit)• 버스접속장치• (Bus Interface Unit)

CPU 내의 연산을 빠르게 처리하기위해

사용하는 임시기억장소

산술 및 논리연산을 수행 =>

가산기 , 누산기 , 보수기 ,상태 레지스터 입력 , 기억 ,

출력 ,연산장치에

대햐여 관리 ,감독

ALU 와 레지스터들간의 데이터 이동을 위한

통로 =>데이터 버스 ,

제어 버스

3

Page 4: CPU (Central Processing Unit)

CPU Cache Memory

MainMemory

CPU 와 메모리 사이의 속도차

극복

CPU

4

Page 5: CPU (Central Processing Unit)

명령어주기

• 명령어 인출 주기 (Fetch Cycle)• 명령어 실행 주기 (Execute Cycle)

5

Page 6: CPU (Central Processing Unit)

인출 사이클

6

Page 7: CPU (Central Processing Unit)

실행 사이클

7

Page 8: CPU (Central Processing Unit)

명령어 형식

OP-Code(Operation Code) + Operand

OP-Code : 실행할 내용을 나타냄

Operand : 데이터의 저장 장소 나타냄

8

Page 9: CPU (Central Processing Unit)

0- 주소 명령어 방식• 입력데이터 출처 & 연산 결과 기억장소 고정• 명령어 형식에서 주소 부분이 없다 .• 스택 (Stack) 을 이용해 연산 및 결과 저장• 연산을 위해 postfix 형태로 수식 변환• 소스데이터 모두 상실

9

Page 10: CPU (Central Processing Unit)

0- 주소 명령어 방식 • ex) X = A + B * C

• Postfix formula X=ABC*+

• ① Push A• ② Push B• ③ Push C• ④ MUL (B * C)• ⑤ Push (B*C)• ⑥ ADD (A+(B * C))• ⑦ POP X

10

Page 11: CPU (Central Processing Unit)

1- 주소 명령어 방식

• Operand 를 1 개 포함하고 있는 방식• 누산기 사용하여 명령어 처리

11

Page 12: CPU (Central Processing Unit)

1- 주소 명령어 방식

ex) X = A + (B * C)LOAD B (ACC B)MUL C (ACC ACC * C)ADD A (ACC ACC + A)STORE X (X ACC)

12

Page 13: CPU (Central Processing Unit)

2- 주소 명령어 방식

• Operand 를 2 개 포함하는 방식• 연산을 위해 prefix 형태로 수식 변환• Operand-1 부분에 결과 저장 Operand-1 데이터 상실

13

Page 14: CPU (Central Processing Unit)

2- 주소 명령어 방식

Ex) X = A + B * CPrefix 형태로 X=+A*BCMUL B C (B B * C)ADD A B (A A + B)STORE X A (X A)

14

Page 15: CPU (Central Processing Unit)

3- 주소 명령어 방식

• Operand 를 3 개 포함하는 방식• 명령어 size 가 크다 • Operand - 3 은 연산 결과 저장 주소 소스데이터 모두 보존

15

Page 16: CPU (Central Processing Unit)

3- 주소 명령어 방식

Ex) X = A + B * CPrefix 형태로 X=+A*BCMUL B C Q (Q B * C)ADD A Q X (X A + Q)

Q 는 Register, 임시로 기억

16

Page 17: CPU (Central Processing Unit)

명령어의 종류

- 프로그램제어명령어- 메모리 참조 명령어- 레지스터 참조 명령어- 입출력 참조 명령어

17

Page 18: CPU (Central Processing Unit)

주소지정 방식 종류직접 주소지정 방식 (direct addressing mode)간접 주소지정 방식 (indirect addressing mode)즉시 주소지정 방식 (immediate addressing mode)레지스터 주소지정 방식 (register addressing mode)레지스터 간접 주소지정 방식 (register-indirect addressing mode)상대 주소지정 방식 (relative addressing mode),인덱스 주소지정 방식 (indexed addressing mode),베이스 - 레지스터 주소지정 방식 (base-register addressing mode)

A= 메모리 주소 (A)= 주소에 저장된 Data R= 레지스터 주소 (R)= 레지스터에 저장된 Data

18

Page 19: CPU (Central Processing Unit)

직접주소지정방식• 오퍼랜드 필드의 내용이 유효 주소가 되는 방식 • 가장 일반적인 개념의 주소 방식 Effective Address = A • 데이터 인출을 위해 한 번만 기억장치에 액세스 • 연산 코드를 제외하고 남은 비트들이 주소 비트로 사용

– 지정할 수 있는 기억장소의 수가 제한 , 많은 수의 주소를 지정 불가능

19

Page 20: CPU (Central Processing Unit)

간접주소지정방식• 오퍼랜드 필드에 기억장치 주소가 저장되어 있는 주소가 저장 • 그 주소가 가리키는 기억 장소에서 유효 주소 획득 Effective Address = (A) • 두 번의 액세스

– 첫 번째 액세스는 주소를 읽기 – 두 번째는 그 주소가 지정하는 위치로부터 실제 데이터를 인출

• 장점 – 최대 기억장치용량이 CPU 가 한번에 액세스 할 수 있는 Word 의 길이에 의해

결정 – 워드 길이가 n 비트라면 최대 2 의 n 승개의 기억장소들을 지정 가능

• 단점 – 실행 사이클 동안 두 번의 기억장치액세스가 필요하다는 단점 – 주소 지정 방식을 표시하는 간접비트 (I) 필드가 필요

20

Page 21: CPU (Central Processing Unit)

간접주소지정방식

21

Page 22: CPU (Central Processing Unit)

즉시주소지정방식• 데이터가 명령어에 포함되어 있는 방식• 오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터• 프로그램에서 레지스터들이나 변수의 초기 값을 어떤 상수 값

(constant value) 으로 set 하는데 유용 • 데이터를 인출하기 위하여 기억장치를 액세스할 필요가 없다 • 상수 값의 크기가 오퍼랜드 필드의 비트 수에 의하여 제한

22

200 은 주소값이 아닌 실제 데이터 값

Page 23: CPU (Central Processing Unit)

레지스터 주소 지정방식• 연산에 사용할 데이터가 레지스터에 저장 • 오퍼랜드 부분이 레지스터 번호 , 유효주소가 레지스터 번호 Effective Address = R • 오퍼랜드 필드가 레지스터들의 번호를 나타내기 때문에 비트 수가 • 적어도 가능 • 데이터 인출을 위하여 기억장치에 액세스 할 필요 없음 • 데이터가 저장될 수 있는 공간이 CPU 내부 레지스터들로 제한

23

Page 24: CPU (Central Processing Unit)

레지스터 간접 주소지정방식• 이 방식은 명령어 형식에서 오퍼랜드 필드가 레지스터 번호를 지정 • 레지스터의 내용이 유효 주소 Effective Address = (R) • 주소를 지정 할 수 있는 기억장치 영역이 확장• 레지스터의 길이에 따라 주소지정 영역이 결정

• 메인 메모리에 한번만 액세스

24

Page 25: CPU (Central Processing Unit)

상대주소방식• 프로그램 카운터 (PC) 를 레지스터로 사용 • Effective Address = A + (PC) • 하나의 기준 주소로부터 거리 및 상대적위치를 주소로 사용

25

Page 26: CPU (Central Processing Unit)

인덱스 주소 지정방식• 인덱스 레지스터 (IX) : 인덱스 (index) 값을 저장하는 특수

레지스터• IX 의 내용과 변위 A 를 더해 유효 주소를 결정하는 방식• Effective Address = (IX) + A

• 방식은 배열 데이터를 액세스할 때 자동 인덱싱 (autoindexing) Effective Address = (IX) + A

• IX ← IX + 1

26

Page 27: CPU (Central Processing Unit)

베이스 레지스터 주소지정방식

• 베이스 레지스터의 내용과 변위 A 를 더하여 유효주소를 결정하는 방식

• 서로 다른 세그먼트 내 프로그램의 위치를 지정하는데 사용 • Effective Address = (BR) + A

27

Page 28: CPU (Central Processing Unit)

간접 사이클 (Indirect Cycle)

• 간접 주소지정 방식 (indirect addressing mode) 에서 사용되는 명령어

• 명령어에 포함되어 있는 주소를 이용하여 , 실제 명령어 실행에 필요한 데이터를 인출하는 사이클

• 인출 사이클과 실행 사이클 사이에 위치

28

Page 29: CPU (Central Processing Unit)

데이터 주소의 표현 방식

29

(1) 주소 표현 방식 - 완전 주소 , 약식 주소 , 생략 주소 , 데이터 자신

Page 30: CPU (Central Processing Unit)

범용레지스터

• CPU 가 작업을 위해 다목적으로 사용• 주소 지정 , 연산을 위한 데이터 보관용 , 제어용 정보의 보관– Accumulator ( 누산기 ) : 사칙 연산을 한

결과 등을 일시적으로 저장–베이스 레지스터 ,, 등등

30

Page 31: CPU (Central Processing Unit)

전용 레지스터

• 특수한 용도로 사용–명령어 레지스터 (IR) : 현재 수행 중인

명령어를 저장–메모리 지정 레지스터 : MAR,MBR,PC,Index

Register, 세그먼트 레지스터– Stack Register( 스택 레지스터 )– Status Register( 상태 레지스터 )

31

Page 32: CPU (Central Processing Unit)

명령어 지정 레지스터

• MAR => 데이터나 명령을 주 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 주소를 기억

• MBR => 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 데이터나 명령을 기억

• Index Register => 명령어의 Operand 값과 더하여 여러 주소 지정 모드를 만들어 낸다 .

• PC(Program Counter) => – 다음에 실행할 명령의 주소를 기억 – 제어 장치가 올바른 순서로 프로그램을 수행하도록 하는 정보를 제공

32

Page 33: CPU (Central Processing Unit)

전용 레지스터

• Stack Register( 스택 레지스터 )– 이전 작업 내용 , 상태 보존 위한 영역– 베이스 포인터 : 메모리의 특정 번지 나타냄– 스택 포인터 : 스택 (stack) 의 최상위 주소를 저장

• Status Register( 상태 레지스터 )– 연산 경과의 상태를 나타내는 플래그들을 저장– 레지스터에 저장된 데이터의 상태 표시

• Sign Bit: 양수 /음수 표시• Zero Bit: 해당 데이터가 0 이라는 것을 표시• Overflow Bit: 연산의 결과 오버플로우 발생시 표시 • Carry Bit: 자리 올림 수가 발생시 1 로 Set

33

Page 34: CPU (Central Processing Unit)

참고자료

• 속에多있다 2008 정보처리기능사필기

• 컴퓨터구조와 원리

• 컴퓨터구조

• http://nengjung.kit.ac.kr/~yskim/lecture/index_main.html

34

Page 35: CPU (Central Processing Unit)

35