1 / 39

제 6 장 중앙처리장치

제 6 장 중앙처리장치. 구성. 컴퓨터 레지스터 산술 논리 연산장치( ALU) 컴퓨터 명령어 CISC 와 RISC. 제 6 장 중앙처리장치. 중앙처리장치 3가지 주요 구성 요소 (1) Register Set (2) ALU (3) Control 명령어 수행 기능 + 수행 순서를 제어. 제 6 장 컴퓨터 레지스터. 레지스터 종류 레지스터 영숫자로 표기(대문자)

aquila
Télécharger la présentation

제 6 장 중앙처리장치

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 6 장 중앙처리장치 구성 • 컴퓨터 레지스터 • 산술 논리 연산장치(ALU) • 컴퓨터 명령어 • CISC와 RISC

  2. 제 6 장 중앙처리장치 • 중앙처리장치 • 3가지 주요 구성 요소 (1) Register Set (2) ALU (3) Control • 명령어 수행 기능 + 수행 순서를 제어

  3. 제 6 장 컴퓨터 레지스터 • 레지스터 종류 • 레지스터 • 영숫자로 표기(대문자) MAR(Memory Address Register), PC(Program Counter), IR(Instruction Register), R1(Processor Register) • n비트 레지스터의 각 플립플롭은 맨 오른쪽의 최하위 비트를 0 ~ n-1까지 순번 • 레지스터 전송 : 레지스터들 사이의 정보 전송 • 레지스터 사이의 정보 전송 동작 : 마이크로 연산(micro-operation) • 마이크로 연산 : 레지스터에 저장된 데이터를 가지고 실행되는 동작으로 하나의 클록펄스 동안에 실행되는 기본적인 동작이다. Fig. 6-2 레지스터의 블록도

  4. 제 6 장 컴퓨터 레지스터 • 레지스터 전송 • 병렬 전송 • 한 클록 펄스 동안 레지스터의 모든 비트가 동시에 전송 : 레지스터 전송 언어 R1 레지스터 : 목적지 레지스터, R2 레지스터 : 근원지 레지스터 • 제어 함수(control function) : 레지스터 전송이 정해진 조건일 때만 발생하도록 결정하는 이진 상태(0/1) R1 ← R2 P : R1 ← R2 레지스터 전송을 위한 기본 기호

  5. 제 6 장 컴퓨터 레지스터 • 레지스터 전송 • 병렬 전송 P : R1 ← R2 실제적인 전송

  6. 제 6 장 컴퓨터 레지스터 • 레지스터 전송 • 직렬 전송 • 클록과 동기되어 한 번에 한 비트씩 전송 • 비트 타임(bit time) : 인접한 두 비트 사이의 전송에 걸리는 시간 • 워드 타임(word time) : 레지스터의 머든 내용이 전송되는데 걸리는 시간 S : B3←A0, A3←A0, Ai-1←Ai, Bi-1←Bi, i=1, 2, 3

  7. 제 6 장 컴퓨터 레지스터 • 버스 전송과 기억장치 전송 • 버스 전송 • 공통 버스를 통한 정보 전송 • 한 번에 하나의 레지스터만이 데이터를 전송 • 기억장치 전송 • 읽기(READ) : 기억장치  외부장치로 정보 전송 • 쓰기(WRITE) : 외부 장치 기억장치로 정보 전송

  8. 제 6 장 컴퓨터 레지스터 • 공통 버스 구조 • 공통 버스(Common Bus) • 레지스터 상호간의 연결선수가 너무 많음  회선 비용 증가, 제어 복잡 • 예 각 레지스터가 1비트 : 6개의 데이터 경로(path)가 필요 각 레지스터가 n비트인 경우 : 6n개의 회선이 요구 • 한 번에 하나의 레지스터만이 정보 전송이 가능하게끔 회선사용에 제한 • n개의 공통선으로 회선 수를 감소 • 버스를 이용한 정보 전달은 병렬 전송

  9. 제 6 장 컴퓨터 레지스터 • 공통 버스 구조 • 내부 버스 • 산술 연산장치와 레지스터 사이의 정보 전송 경로 • 외부 버스 : CPU와 CPU외부의 장치 사이의 정보 전송 경로 • 주기억장치 버스 : CPU와 주기억장치 사이 • 입출력 버스 : 입출력장치와 CPU 사이 • 범용 레지스터 CPU 구조의 내부 버스 • 단일 누산기 CPU 구조의 내부 버스 버스에 연결된 부속 시스템

  10. 제 6 장 컴퓨터 레지스터 • 공통 버스 구조 • 버스의 구현 : 멀티플렉서 • 예 : 4개의 4비트 레지스터에 대한 버스 시스템 • C 레지스의 내용을 버스에 전달 S1S0 : BUS ← C • 버스의 내용을 D 레지스터에 전달 X Y : D ← BUS

  11. 제 6 장 컴퓨터 레지스터 • 공통 버스 구조 • 버스의 구현 : 3-상태 버퍼 게이트 • 3-상태 : 0, 1, 고저항 상태(high-impedance state) 디코더의 인에이블 입력이 1이고 선택선의 입력 S1S0=01이라면 버스에는 B 레지스터의 내용이 전송 3-상태 버퍼를 이용한 버스 시스템

  12. 제 6 장 산술 논리 연산 장치 • 산술 논리 연산 장치 • 산술 마이크로 연산(arithmetic micro-operation) : 덧셈, 뺄셈, 증가(increment), 감소(decrement) • 논리 마이크로 연산(logical micro operation) : AND, OR, XOR, 보수(Complement) 등의 논리 마이크로 연산및 • 시프트 마이크로 연산(shift micro operation) 등을 수행하는 장치 Fig. 6-15 ALU의 구성

  13. 제 6 장 산술 논리 연산 장치 Fig. 6-16 • 산술 연산 회로 • 병렬 가산기로 구성 • 병렬 가산기의 입력 제어  다양한 산술 마이크로 연산을 수행

  14. 제 6 장 산술 논리 연산 장치 • 산술 연산 회로 • 산술 연산회로 한 단위(one stage) • S1S0과 Cin의 값 제어  8가지 산술 마이크로 연산 수행

  15. 제 6 장 산술 논리 연산 장치 • 산술 연산 회로 • 상태 레지스터(Status register)와 플래그 • ALU에서의 연산 수행 후 상태 플래그가 세트 • 상태 플래그 : C(carry bit), S(sign bit), Z(zero bit), V(overflow bit) Fig. 6-19 ALU의 상태 레지스터 세팅

  16. 제 6 장 산술 논리 연산 장치 • 논리 연산 회로 • 레지스터에 저장된 각 비트들에 대한 이진 연산 • 논리 마이크로 연산 : AND, OR, XOR, Complement 연산 수행 • 논리 연산회로 한 단위(one stage) : Fig. 6-20 논리 연산 함수표

  17. 제 6 장 산술 논리 연산 장치 • 시프트 연산 회로 • 시프트 마이크로 연산 수행 : 좌측/우측 시프트, 순환 시프트 • 시프트 장치(조합회로) : 산술 연산회로와 논리 연산 회로의 출력단에 연결 • 하나의 클록펄스 기간 동안에 연산의 수행을 완료 • 4비트 조합 회로 시프트 : Fig. 6-21 함수표

  18. 제 6 장 산술 논리 연산 장치 • 산술 논리 시프트 장치 • 산술 연산 논리 회로(Fig.6-18), 논리 연산 회로(Fig.6-20), 시프트 회로(Fig.6-21)의 한 단위 회로(one stage) Fig. 6-22 ALU의 한 단위 회로

  19. 제 6 장 컴퓨터 명령어 • 컴퓨터 명령어 • 컴퓨터에게 어떤 일을 수행해야 하는지를 나타내는 비트들의 집합 • 명령어와 이의 수행에 필요한 데이터는 주기억장치에 연속적으로 위치 • CPU에 의하여 하나씩 순차적으로 수행되는 “내장 프로그램” 구조 • 기억장치에 저장된 명령과 데이터를 읽어내어 명령어의 2진 코드를 해석한 후, 명령의 수행을 위한 일련의 마이크로 연산이 이루어지도록 필요한 제어 함수를 발생시켜 명령을 실행 Fig. 6-23 내장 프로그램 구조

  20. 제 6 장 컴퓨터 명령어 • 명령어 형식(Instruction Format) • CPU의 구조와 밀접한 관계 • 필드 : 모드 필드, 연산 코드 필드, 주소 필드(최대 3개) • 모드 필드 : 긱접 번지와 간접 번지 구분(I=0 : 직접 번지, I=1 : 간접 번지) • 연산 코드 필드 : 수행하여야 할 연산의 종류(함수 연산, 전달, 제어, 입출력 기능) • 주소 필드 : 피연산자의 주소 • 모드 필드 • 유효 주소 : 실제 피연산자가 저장되어 있는 번지 그림(b)에서 유효 주소(EA) : 458 그림(c)에서 유효 주소(EA) : 1360 Fig. 6-25

  21. 제 6 장 컴퓨터 명령어 • 연산 코드(operation code) • 함수 연산, 전달, 제어, 입출력 기능 기본 컴퓨터 명령어

  22. 제 6 장 컴퓨터 명령어 • 주소 필드 • 피연산자(operand)나 유효 주소가 결정되는 방법 • CPU의 구조에 따라 주소 필드의 수 결정 • 0-주소 명령어, 1-주소 명령어, 2-주소 명령어, 3-주소 명령어 • 명령어의 길이 • 컴퓨터의 성능에 여러 가지 영향 • 명령어의 길이 ≥ 주기억장치 워드(word) • 한 번 이상의 주기억장치 접근 요구  오버헤드가 큼 • 명령어의 길이 ≤ 주기억장치 워드(word) • 주기억장치 밴드 폭을 효율적으로 사용 • 연산(operation) • 동작 수행을 위해 주기억장치나 레지스터에 기억되어 있는 데이터를 필요 • 두 개의 피연산자(operand) : 모두 레지스터에 저장, 레지스터 주소에 의해 지정 • 하나의 피연산자 : 레지스터, 다른 하나의 피연산자 : 주기억장치 K비트의 레지스터 주소 2k개의 레지스터 중 하나를 지정 ADD R1, R2 의미 : R1 ← R1 + R2 ADD R1, X 의미 : R1 ← R1 + M[X]

  23. 제 6 장 컴퓨터 명령어 • 0-주소 명령어 • 스택 구조 컴퓨터 • 명령의 수행에 필요한 두 개의 피연산자가 스택에 저장 • 예외 : push, pop 연산, 하나의 주소 필드가 필요 • 예 : Y=(A+B)*+(C+D) 0-주소 명령어 형식

  24. 제 6 장 컴퓨터 명령어 • 1-주소 명령어 • 단일 누산기 구조 컴퓨터 • 명령의 수행에 누산기(AC) 사용, 하나의 주소 필드 • 연산 결과 : 누산기에 저장 • 예 : Y=(A+B)*+(C+D) 1-주소 명령어 형식

  25. 제 6 장 컴퓨터 명령어 • 2-주소 명령어 • 벙용 레지스터 구조 컴퓨터 • 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정 • 두 개의 주소 필드 • 예 : Y=(A+B)*+(C+D) 2-주소 명령어 형식

  26. 제 6 장 컴퓨터 명령어 • 3-주소 명령어 • 벙용 레지스터 구조 컴퓨터 • 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정 • 3개의 주소 필드 • 예 : Y=(A+B)*+(C+D) 3-주소 명령어 형식

  27. 제 6 장 컴퓨터 명령어 • 명령어 형식에 의한 컴퓨터 구조 • 단일 누산기 구조, 방용 레지스터 구조, 스택 구조 • 단일 누산기 구조 • 1개의 프로세서 레지스터 (누산기) • 1-주소 명령어 사용 CMA (AC ← AC) CLA (AC ← 0) ADD X (AC ← AC + M[X]) LDA X (AC ← M[X]) STA X (M[X] ← AC)

  28. 제 6 장 컴퓨터 명령어 • 범용 레지스터 구조 • 2개 이상의 범용 레지스터 사용 • 2-주소/3-주소 명령어 사용 ADD R1, R2, R3 (R1 ← R2 + R3) ADD R1, R2 (R1 ← R1 + R2) ADD R1, X (R1 ← R1 + M[X]) LD R1, X (R1 ← M[X]) ST R1, X (M[X] ← R1) MOV R1, R2 (R1 ← R2)

  29. 제 6 장 컴퓨터 명령어 • 마이크로 연산(micro-operation)의 예 • R1 ← R2 + R3 • 제어 장치가 그림 6-30에 있는 여러 가지 선택선들의 입력 조합에 대한 제어 신호를 발생시켜 ALU를 통한 정보 흐름 지시 • 네 개의 제어 선택 변수에 대한 제어 신호가 동시에 얻어져야 하고, 하나의 클록펄스 간격 동안 수행 • 하나의 클록 펄스 동안에 두 개의 근원지 레지스터(R2, R3)로부터 정보가 멀티플렉서, ALU, 목적지 버스를 통하여 목적지 레지스터 R1에 전달된다(그림 6-3 참조) (1) MUX A 선택선(Select A) : R2의 내용을 A 버스에 놓는다. (2) MUX B 선택선(Select B) : R3의 내용을 B 버스에 놓는다. (3) ALU Function 선택선(OPR) : R2+R3를 위한 덧셈 연산을 하게 한다. (4) 디코더의 선택선(Select D) : 목적지 버스 D를 통하여 연산 결과를 R1에 전송한다.

  30. 제 6 장 컴퓨터 명령어 • 레지스터 선택의 인코딩(Tab. 6-10) • ALU 연산의 인코딩(Tab. 6-11) • 마이크로 연산(micro-operation)의 예 • 제어 워드(control word)

  31. 제 6 장 컴퓨터 명령어 • 스택 구조 • 0-주소 명령어 • 함수 연산 기능 ADD • 전달 기능 PUSH X (M[SP] ← MBR) POP X (MBR ← M[SP])

  32. 제 6 장 컴퓨터 명령어 • 레지스터 스택과 메모리 스택 • 레지스터 스택 : Fig. 6-33 • 메모리 스택 : Fig. 6-34 Fig. 6-34 프로그램, 데이터, 스택을 가진 컴퓨터의 메모리

  33. 제 6 장 컴퓨터 명령어 • 수식 표기법 • 중위 표기법(Infix) : A + B • 전위 표기법(Prefix 혹은 Polish) : +AB • 후위 표기법(Postfix 혹은 reverse Polish) : AB+, 스택 연산에 적합 • 예 : A * B + C * D를 후위 표기법 AB * CD * + • 연산의 예 : (3*4) + (5*6)  34*56*+ Fig. 6-35 3*4 + 5*6을 계산하는 스택 동작

  34. 제 6 장 컴퓨터 명령어 • 주소 지정 방식 • 묵시적 주소 지정 방식(implied addressing mode) • 명령어의 정의에 따라 피연산가 묵시적으로 정의 • 단일 누산기 컴퓨터 구조에서 많이 사용 • 예 : CMA, CLA 등 • 0-주소 명령어 : 묵시적 모드 명령 • 즉치 주소 지정 방식(immediate addressing mode) • 명령어 자체 내에 데이터가 포함 • 주소 필드의 값 = 데이터 • 직접 번지와 간접 번지 주소 지정 방식 • Fig. 6-25 참조 • 레지스터 주소 지정 방식(register addressing mode) • 피연산자 : CPU내의 레지스터에 저장

  35. 제 6 장 컴퓨터 명령어 • 주소 지정 방식 • 레지스터 간접 주소 지정 방식(register indirect addressing mode) • 주소 필드 : 피연산자의 유효 주소를 가지고 있는 레지스터를 지정 • 직접 번지 지정 방식으로 주기억장치의 주소를 지정하는 것보다 적은 비트 소요 • 자동 증가/ 자동 감소 주소 지정 방식(auto-increment/decrement) • 레지스터 간접 번지 지정 방식과 동일 • 자동 증가 : 기억장치 접근 후 레지스터의 값, 1 증가 • 자동 감소 : 기억장치 접근 전에 1 감소 후 기억장치를 엑세스

  36. 제 6 장 컴퓨터 명령어 • 주소 지정 방식 • 상대 주소 지정 방식(relative addressing mode) • 유효 주소 = 주소 필드 + 프로그램 카운터 값(PC) • 기준 주소 : 명령어의 주소 필드 값 • 상대적 변위(displacement) : PC의 값 • 베이스 레지스터 주소 지정 방식(base register addressing mode) • 기준 주소 : 베이스 레지스터의 값 • 명령어의 주소 필드 : 변위 값

  37. 제 6 장 컴퓨터 명령어 • 주소 지정 방식 • 베이스 레지스터 주소 지정 방식(base register addressing mode) • 인덱스 주소 지정 방식(index addressing mode) • 베이스 레지스터 주소 지정 방식과 반대 • 주소 필드 : 기준 주소 • 인덱스 레지스터 : 변위 값

  38. 제 6 장 컴퓨터 명령어 • 주소 지정 방식 • 실제 예 • PC = 100, R1 = 300, XR = 100

  39. 제 6 장 CISC와 RISC • CISC(Complex instruction set computer) • 다양한 데이터 형태와 주소 지정 방식 제공 • CISC 구조 블록도 • RISC(Reduced instruction set computer) • 고정된 명령어 형식 사용 • 주소 지정 방식도 간단 • 레지스터 주소 지정 • 명령어 세트와 제어 장치 간단 • CISC와 RISC의 비교 • Tab. 6-14 참조

More Related