CPU (Central Processing Unit)
description
Transcript of CPU (Central Processing Unit)
![Page 1: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/1.jpg)
CPU(Central Processing Unit)
2007081044 장준식2009081058 이현준
1
![Page 2: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/2.jpg)
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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/3.jpg)
CPU 란 ?• 레지스터 (Register)• 산술논리연산장치 (ALU)• 제어장치 (Control Unit)• 버스접속장치• (Bus Interface Unit)
CPU 내의 연산을 빠르게 처리하기위해
사용하는 임시기억장소
산술 및 논리연산을 수행 =>
가산기 , 누산기 , 보수기 ,상태 레지스터 입력 , 기억 ,
출력 ,연산장치에
대햐여 관리 ,감독
ALU 와 레지스터들간의 데이터 이동을 위한
통로 =>데이터 버스 ,
제어 버스
3
![Page 4: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/4.jpg)
CPU Cache Memory
MainMemory
CPU 와 메모리 사이의 속도차
극복
CPU
4
![Page 5: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/5.jpg)
명령어주기
• 명령어 인출 주기 (Fetch Cycle)• 명령어 실행 주기 (Execute Cycle)
5
![Page 6: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/6.jpg)
인출 사이클
6
![Page 7: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/7.jpg)
실행 사이클
7
![Page 8: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/8.jpg)
명령어 형식
OP-Code(Operation Code) + Operand
OP-Code : 실행할 내용을 나타냄
Operand : 데이터의 저장 장소 나타냄
8
![Page 9: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/9.jpg)
0- 주소 명령어 방식• 입력데이터 출처 & 연산 결과 기억장소 고정• 명령어 형식에서 주소 부분이 없다 .• 스택 (Stack) 을 이용해 연산 및 결과 저장• 연산을 위해 postfix 형태로 수식 변환• 소스데이터 모두 상실
9
![Page 10: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/10.jpg)
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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/11.jpg)
1- 주소 명령어 방식
• Operand 를 1 개 포함하고 있는 방식• 누산기 사용하여 명령어 처리
11
![Page 12: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/12.jpg)
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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/13.jpg)
2- 주소 명령어 방식
• Operand 를 2 개 포함하는 방식• 연산을 위해 prefix 형태로 수식 변환• Operand-1 부분에 결과 저장 Operand-1 데이터 상실
13
![Page 14: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/14.jpg)
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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/15.jpg)
3- 주소 명령어 방식
• Operand 를 3 개 포함하는 방식• 명령어 size 가 크다 • Operand - 3 은 연산 결과 저장 주소 소스데이터 모두 보존
15
![Page 16: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/16.jpg)
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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/17.jpg)
명령어의 종류
- 프로그램제어명령어- 메모리 참조 명령어- 레지스터 참조 명령어- 입출력 참조 명령어
17
![Page 18: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/18.jpg)
주소지정 방식 종류직접 주소지정 방식 (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)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/19.jpg)
직접주소지정방식• 오퍼랜드 필드의 내용이 유효 주소가 되는 방식 • 가장 일반적인 개념의 주소 방식 Effective Address = A • 데이터 인출을 위해 한 번만 기억장치에 액세스 • 연산 코드를 제외하고 남은 비트들이 주소 비트로 사용
– 지정할 수 있는 기억장소의 수가 제한 , 많은 수의 주소를 지정 불가능
19
![Page 20: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/20.jpg)
간접주소지정방식• 오퍼랜드 필드에 기억장치 주소가 저장되어 있는 주소가 저장 • 그 주소가 가리키는 기억 장소에서 유효 주소 획득 Effective Address = (A) • 두 번의 액세스
– 첫 번째 액세스는 주소를 읽기 – 두 번째는 그 주소가 지정하는 위치로부터 실제 데이터를 인출
• 장점 – 최대 기억장치용량이 CPU 가 한번에 액세스 할 수 있는 Word 의 길이에 의해
결정 – 워드 길이가 n 비트라면 최대 2 의 n 승개의 기억장소들을 지정 가능
• 단점 – 실행 사이클 동안 두 번의 기억장치액세스가 필요하다는 단점 – 주소 지정 방식을 표시하는 간접비트 (I) 필드가 필요
20
![Page 21: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/21.jpg)
간접주소지정방식
21
![Page 22: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/22.jpg)
즉시주소지정방식• 데이터가 명령어에 포함되어 있는 방식• 오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터• 프로그램에서 레지스터들이나 변수의 초기 값을 어떤 상수 값
(constant value) 으로 set 하는데 유용 • 데이터를 인출하기 위하여 기억장치를 액세스할 필요가 없다 • 상수 값의 크기가 오퍼랜드 필드의 비트 수에 의하여 제한
22
200 은 주소값이 아닌 실제 데이터 값
![Page 23: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/23.jpg)
레지스터 주소 지정방식• 연산에 사용할 데이터가 레지스터에 저장 • 오퍼랜드 부분이 레지스터 번호 , 유효주소가 레지스터 번호 Effective Address = R • 오퍼랜드 필드가 레지스터들의 번호를 나타내기 때문에 비트 수가 • 적어도 가능 • 데이터 인출을 위하여 기억장치에 액세스 할 필요 없음 • 데이터가 저장될 수 있는 공간이 CPU 내부 레지스터들로 제한
23
![Page 24: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/24.jpg)
레지스터 간접 주소지정방식• 이 방식은 명령어 형식에서 오퍼랜드 필드가 레지스터 번호를 지정 • 레지스터의 내용이 유효 주소 Effective Address = (R) • 주소를 지정 할 수 있는 기억장치 영역이 확장• 레지스터의 길이에 따라 주소지정 영역이 결정
• 메인 메모리에 한번만 액세스
24
![Page 25: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/25.jpg)
상대주소방식• 프로그램 카운터 (PC) 를 레지스터로 사용 • Effective Address = A + (PC) • 하나의 기준 주소로부터 거리 및 상대적위치를 주소로 사용
25
![Page 26: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/26.jpg)
인덱스 주소 지정방식• 인덱스 레지스터 (IX) : 인덱스 (index) 값을 저장하는 특수
레지스터• IX 의 내용과 변위 A 를 더해 유효 주소를 결정하는 방식• Effective Address = (IX) + A
• 방식은 배열 데이터를 액세스할 때 자동 인덱싱 (autoindexing) Effective Address = (IX) + A
• IX ← IX + 1
26
![Page 27: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/27.jpg)
베이스 레지스터 주소지정방식
• 베이스 레지스터의 내용과 변위 A 를 더하여 유효주소를 결정하는 방식
• 서로 다른 세그먼트 내 프로그램의 위치를 지정하는데 사용 • Effective Address = (BR) + A
27
![Page 28: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/28.jpg)
간접 사이클 (Indirect Cycle)
• 간접 주소지정 방식 (indirect addressing mode) 에서 사용되는 명령어
• 명령어에 포함되어 있는 주소를 이용하여 , 실제 명령어 실행에 필요한 데이터를 인출하는 사이클
• 인출 사이클과 실행 사이클 사이에 위치
28
![Page 29: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/29.jpg)
데이터 주소의 표현 방식
29
(1) 주소 표현 방식 - 완전 주소 , 약식 주소 , 생략 주소 , 데이터 자신
![Page 30: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/30.jpg)
범용레지스터
• CPU 가 작업을 위해 다목적으로 사용• 주소 지정 , 연산을 위한 데이터 보관용 , 제어용 정보의 보관– Accumulator ( 누산기 ) : 사칙 연산을 한
결과 등을 일시적으로 저장–베이스 레지스터 ,, 등등
30
![Page 31: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/31.jpg)
전용 레지스터
• 특수한 용도로 사용–명령어 레지스터 (IR) : 현재 수행 중인
명령어를 저장–메모리 지정 레지스터 : MAR,MBR,PC,Index
Register, 세그먼트 레지스터– Stack Register( 스택 레지스터 )– Status Register( 상태 레지스터 )
31
![Page 32: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/32.jpg)
명령어 지정 레지스터
• MAR => 데이터나 명령을 주 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 주소를 기억
• MBR => 기억 장치에서 읽어 내거나 주 기억 장치에 써넣기 위한 데이터나 명령을 기억
• Index Register => 명령어의 Operand 값과 더하여 여러 주소 지정 모드를 만들어 낸다 .
• PC(Program Counter) => – 다음에 실행할 명령의 주소를 기억 – 제어 장치가 올바른 순서로 프로그램을 수행하도록 하는 정보를 제공
32
![Page 33: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/33.jpg)
전용 레지스터
• Stack Register( 스택 레지스터 )– 이전 작업 내용 , 상태 보존 위한 영역– 베이스 포인터 : 메모리의 특정 번지 나타냄– 스택 포인터 : 스택 (stack) 의 최상위 주소를 저장
• Status Register( 상태 레지스터 )– 연산 경과의 상태를 나타내는 플래그들을 저장– 레지스터에 저장된 데이터의 상태 표시
• Sign Bit: 양수 /음수 표시• Zero Bit: 해당 데이터가 0 이라는 것을 표시• Overflow Bit: 연산의 결과 오버플로우 발생시 표시 • Carry Bit: 자리 올림 수가 발생시 1 로 Set
33
![Page 34: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/34.jpg)
참고자료
• 속에多있다 2008 정보처리기능사필기
• 컴퓨터구조와 원리
• 컴퓨터구조
• http://nengjung.kit.ac.kr/~yskim/lecture/index_main.html
34
![Page 35: CPU (Central Processing Unit)](https://reader035.fdocument.pub/reader035/viewer/2022062301/568139e4550346895da19bf8/html5/thumbnails/35.jpg)
35