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