Computer System Architecture

Slides:



Advertisements
Similar presentations
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Advertisements

Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Understanding of Ubiquitous & Computers Plus
마이크로 컨트롤러 Microcontroller.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
제4장 명령어 처리.
컴퓨터 하드웨어 Computer Hardware
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
CPU (central Processing Unit)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
10장 주변장치 (PIO) Slide 1 (of 28).
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
연습문제풀이/도움말.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제11강 중앙처리장치 2.
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
Computer Architecture
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제 2장 컴퓨터동작의 기본 개념.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
Computer System Architecture
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
제5강 처리 장치 2.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
게임엔진 프로젝트 발표 상어 사냥 안 정 웅.
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture #5 제4장. 제어 유니트.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
Presentation transcript:

Computer System Architecture 제 6 장 중앙처리장치 컴퓨터구조 Computer System Architecture 멀티미디어공학과 김 해영 hykim@tu.ac.kr

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

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

컴퓨터 레지스터 컴퓨터 레지스터: 중앙처리장치 내의 임시 기억 장소 레지스터의 종류 (데이터의 종류에 따른 분류) 중앙처리장치 내에는 다음 번에 수행될 명령어의 주소가 저장될 장소 메모리에서 읽어 온 명령어의 주소가 저장될 기억장소 연산의 수행에 필요한 데이터와 연산 결과의 값을 임시적으로 저장할 수 있는 기억장소 컴퓨터 시스템 내부에서의 데이터 이동은 레지스터를 통하여 이루어지며, 레지스터 들은 공통 버스를 통해 정보를 교환함 주기억장치의 접근 횟수를 줄일 수 있어서 프로그램의 수행 속도를 높일 수 있음 레지스터의 종류 (데이터의 종류에 따른 분류) 주소를 기억하는 레지스터 주소 레지스터(Memory Address Register) : 주소를 기억하는 레지스터 프로그램 카운터(Program Counter) : 다음 번에 수해할 명령어의 주소를 저장 스택 포인터(Stack Pointer) : 메모리상에서 정의한 스택의 주소를 저장 메모리 제어 레지스터(Control Memory Address Register) : 제어 메모리 주소를 저장 인덱스 레지스터(IndeX Register):인덱스 주소를 저장 베이스 레지스터(Base Register): 기준 주소를 저장

컴퓨터 레지스터 레지스터의 종류 (데이터의 종류에 따른 분류) 명령어를 기억하는 레지스터(Instruction Register) 중앙처리장치가 메모리에 저장된 명령어를 인출 한 후, 이 명령어의 수행을 위해 연산 코드 부분을 제어장치내의 레지스터로 전송할 때 사용되어지는 레지스터 데이터를 기억하는 레지스터 메모리 버퍼 레지스터(Memory Address Register) : 메모리에서 읽어 온 데이터나 메모리에 기억시키기 전의 데이터를 저장, Data Register라고도 함 누산기(ACcumulator):ALU의 연산 결과를 저장 임시 레지스터(Temporary Register) : 연산 중에 중간 결과 값을 임시적으로 저장 CPU의 상태를 기억하는 레지스터 프로그램 상태 레지스터(Program Status Register) : CPU 에서 수행되고 있는 프로그램의 상태 정보를 기억 프로그램 상태 워드(Program Status Word) : 현재까지의 프로그램 수행 진도를 나타내는 정보와 프로그램 수행을 위해 사용된 레지스터들에 기억된 정보 및 각종 플래그에 기억된 정보 등을 저장

컴퓨터 레지스터 레지스터 전송 : 레지스터들 사이의 정보 전송 병렬 전송 R1 ← R2 P : R1 ← R2 레지스터 사이의 정보 전송 동작 : 마이크로 연산(micro-operation) 마이크로 연산 : 레지스터에 저장된 데이터를 가지고 실행되는 동작으로 하나의 클록펄스 동안에 실행되는 기본적인 동작 병렬 전송 한 클록 펄스 동안 레지스터의 모든 비트가 동시에 전송 : 레지스터 전송 언어 R1 레지스터 : 목적지 레지스터, R2 레지스터 : 근원지 레지스터 제어 함수(control function) : 레지스터 전송이 정해진 조건일 때만 발생하도록 결정하는 이진 상태(0/1) 전송조건 R1 ← R2 P : R1 ← R2 레지스터 전송을 위한 기본 기호

컴퓨터 레지스터 레지스터 전송 병렬 전송 P : R1 ← R2 제어 변수 비트수 실제적인 전송

컴퓨터 레지스터 레지스터 전송 직렬 전송 시프트 레지스터로서 클록과 동기되어 한 번에 한 비트씩 전송 비트 타임(bit time) : 인접한 두 비트 사이의 전송에 걸리는 시간 워드 타임(word time) : 레지스터의 모든 내용이 전송되는데 걸리는 시간 S : B1←A4, A1←A4, Ai←Ai-1, Bi←Bi-1, i=2, 3, 4 제어 함수

컴퓨터 레지스터 버스 전송과 메모리 전송 버스 전송 메모리 전송 : 주기억 장치와 외부회로와의 사이에서 이루어지는 전송 CPU 내의 전 레지스터들 사이의 정보 전송을 위한 연결 통로를 각각 구현하면 내부회로가 복잡해짐 공통 버스를 이용하여 한 번에 하나의 레지스터만이 데이터를 전송하면 연결 통로의 상당수를 줄일 수 있음 메모리 전송 : 주기억 장치와 외부회로와의 사이에서 이루어지는 전송 읽기(READ) : 메모리  외부장치로 정보 전송 쓰기(WRITE) : 외부 장치  메모리로 정보 전송

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

컴퓨터 레지스터 공통 버스 구조 내부 버스 산술 연산장치와 레지스터 사이의 정보 전송 경로 외부 버스 : CPU와 CPU외부의 장치 사이의 정보 전송 경로 주기억장치 버스 : CPU와 주기억장치 사이 입출력 버스 : 입출력장치와 CPU 사이 범용 레지스터 CPU 구조의 내부 버스 단일 누산기 CPU 구조의 내부 버스

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

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

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

산술 논리 연산 장치 산술 연산 회로 Fig. 6-15 전가산기를 이용한 병렬 가산기로 구성 일반적으로 n비트의 2진 병렬 가산기는 n개의 전가산기로 구성 병렬 가산기의 입력 제어  다양한 산술 마이크로 연산을 수행 Fig. 6-15

산술 논리 연산 장치 산술 연산 회로 산술 마이크로 연산을 위한 하나의 산술 연산 회로 단위 S1S0과 Cin의 값 제어  8가지 산술 마이크로 연산 수행

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

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

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

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

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

컴퓨터 명령어 명령어 형식(Instruction Format) 모드 필드 Fig. 6-24 CPU의 구조와 밀접한 관계 필드 : 모드 필드, 연산 코드 필드, 주소 필드(최대 3개) 모드 필드 : 직접 번지와 간접 번지 구분(I=0 : 직접 번지, I=1 : 간접 번지) 연산 코드 필드 : 수행하여야 할 연산의 종류(함수 연산, 전달, 제어, 입출력 기능) 주소 필드 : 피연산자의 주소 모드 필드 직접모드: 오퍼런드부에서 지정된 주소를 사용하여 억세스된 데이터가 연산장치 등에 서 사용 간접모드: 오퍼런드부에서 지정된 주소를 사용하여 억세스 된 데이터가 주소임 복수의 메모리 참조 과정을 통하여 최종적인 어퍼런드 데이터가 얻어짐 오퍼런드(operand): 주소부, 자료의 주소 및 주소를 구하는데 필요한 정보, 명령을 수행하기 위한 자료의 개수와 주/보조기억 장치에 위치한 자료의 저장 번지를 표시 Fig. 6-24 직접모드 간접모드 간접번지 유효주소 피연산자 피연산자

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

컴퓨터 명령어 주소 필드 명령어의 길이 연산(operation) 피연산자(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]

컴퓨터 명령어 0-주소 명령어 A B D C A+B C+D 스택 구조 컴퓨터에서 사용 명령의 수행에 필요한 두 개의 피연산자를 스택에 저장  피연산자가 기억되어 있는 주소를 알 수 있으므로 명령어 형식에 주소 필드를 나타내지 않아도 됨 예외 : push, pop 연산, 하나의 주소 필드가 필요 예 : Y=(A+B)*(C+D) 0-주소 명령어 형식 A B A+B C D (A+B)x (C+D) C+D 스택 Top of Stack Push down Push down 가산 Push down Push down 가산 승산

컴퓨터 명령어 1-주소 명령어 단일 누산기 구조 컴퓨터 명령의 수행에 누산기(AC) 사용, 하나의 주소 필드 연산에 사용되는 피연산자는 명령어에 나타난 주소 필드에 의하여 얻어지는 피연산자와 누산기에 기억되어 있는 피연산자 임 연산 결과를 누산기에 저장  명령어 수행전의 누산기에 기억되어 있던 데이터는 명령어 수행 후에 상실 됨 예 : Y=(A+B)*(C+D) 1-주소 명령어 형식

컴퓨터 명령어 2-주소 명령어 범용 레지스터 구조 컴퓨터 : 중앙처리장치 내의 두개의 프로세서 레지스터를 사용하여 연산을 수행 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정 두 개의 주소 필드 예 : Y=(A+B)*(C+D) 2-주소 명령어 형식

컴퓨터 명령어 3-주소 명령어 범용 레지스터 구조 컴퓨터 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정 프로그램의 길이를 짧게 할 수 있는 있지만, 명령어의 길이가 너무 길어짐 3개의 주소 필드 예 : Y=(A+B)*(C+D) 3-주소 명령어 형식

컴퓨터 명령어 단항 함수 연산 기능 명령어 CMA (AC ← AC) 명령어 형식에 의한 컴퓨터 구조 CLA ( AC ← 0) 컴퓨터 명령어 : 연산의 종류와 실행할 연산을 기술하는 연산 코드로 나타냄 단일 누산기 구조, 범용 레지스터 구조, 스택 구조 단일 누산기 구조 1개의 프로세서 레지스터(누산기) 를 가지며, 1-주소 명령어 사용 명령어는 두 개의 부분으로 구성 실행할 연산을 나타내는 연산 코드 피연산자가 저장된 주기억장치 내의 주소 단항 함수 연산 기능 명령어 CMA (AC ← AC) CLA ( AC ← 0) 이항 함수 연산 기능 명령어 ADD X (AC ← AC + M[X]) 전달기능의 명령어 LDA X (AC ← M[X]) STA X (M[X] ← AC)

컴퓨터 명령어 범용 레지스터 구조 그림 6-30 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) 그림 6-30

컴퓨터 명령어 마이크로 연산(micro-operation)의 예 (그림 6-30) R1 ← R2 + R3 제어 장치가 그림 6-30에 있는 여러 가지 선택선들의 입력 조합에 대한 제어 신호를 발생시켜 ALU를 통한 정보 흐름 지시 네 개의 제어 선택 변수에 대한 제어 신호가 동시에 얻어져야 하고, 하나의 클록펄스 간격 동안 수행 하나의 클록 펄스 동안에 두 개의 근원지 레지스터(R2, R3)로부터 정보가 멀티플렉서, ALU, 목적지 버스를 통하여 목적지 레지스터 R1에 전달된다 (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에 전송한다.

컴퓨터 명령어 마이크로 연산(micro-operation)의 예 (그림 6-30) 제어 워드(control word) 레지스터 선택의 인코딩(Tab. 6-10) 마이크로 연산(micro-operation)의 예 (그림 6-30) 제어 워드(control word) 세 개(A,B,D)의 제어 선택 변수 들이 가질 수 있는 2진 코드값

컴퓨터 명령어 스택 구조 0-주소 명령어 함수 연산 기능 ADD 전달 기능 PUSH X (M[SP] ← MBR) POP X 스택이 비어있는지를 나타내는 상태플래그 단지 수를 세는 역할만 하는 주소 레지스터 PUSH X (M[SP] ← MBR) POP X (MBR ← M[SP]) # 예외적으로 주소 필드가 필요

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

컴퓨터 명령어 수식 표기법 PUSH Fig. 6-34 중위 표기법(Infix) : A + B 전위 표기법(Prefix 혹은 Polish) : +AB 후위 표기법(Postfix 혹은 reverse Polish) : AB+, 스택 연산에 적합 예 : A * B + C * D를 후위 표기법 AB * CD * + 연산의 예 : (3*4) + (5*6)  34*56*+ 식의 복잡성에 관계없이 괄호가 전혀 사용되지 않음 수식을 왼쪽에서 오른쪽으로 하나씩 읽어나가면서 연산자이면 왼쪽에 있는 두개의 피연산자에 대한 연산을 실행한 후, 두 개의 피연산자와 연산자를 제거하고 그 위치에 연산의 결과를 둚 PUSH Fig. 6-34 3*4 + 5*6을 계산하는 스택 동작

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

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

컴퓨터 명령어 주소 지정 방식 상대 주소 지정 방식 (relative addressing mode) 유효 주소 = 주소 필드 + 프로그램 카운터 값(PC) 기준 주소 : 명령어의 주소 필드 값, 상대적 변위(displacement) : PC의 값 기억장치의 전체 주소를 지정하는 것보다 적은 비트를 사용할 수 있어 주소필드가 짧아짐 베이스 레지스터 주소 지정 방식 (base register addressing mode) 기준 주소 : 베이스 레지스터의 값, 명령어의 주소 필드 : 변위 값 베이스 레지스터의 내용이 명령어의 주소 필드에 더해져서 유효 주소가 결정됨

컴퓨터 명령어 주소 지정 방식 베이스 레지스터 주소 지정 방식 (base register addressing mode) 인덱스 주소 지정 방식 (index addressing mode) 베이스 레지스터 주소 지정 방식과 반대 주소 필드 : 기준 주소, 인덱스 레지스터 : 변위 값 명령어의 주소 필드에 인덱스 레지스터의 내용이 더해져서 유효 주소가 얻어짐

컴퓨터 명령어 주소 지정 방식 실제 예 PC = 100, R1 = 300, XR = 100 (1) 명령어의 주소 필드에 피연산자의 유효주소 지정 (2) 명령어 자체 내에 데이터가 포함 (3) 명령어의 주소 필드에 실제 피연산자가 위치해 있는 유효 주소를 기억 (4) 상대 주소 = 명령어 주소+ (PC 주소+1) (5) 명령어 주소 필드에 인덱스 레지스터의 내용이 더해져 유효주소가 얻어짐 (1) (2) (3) (4) (5) (6) (7) 400  400 ( ) 인덱스 레지스터 400(700)  700( ) (400+100+1)501( ) (400+100)  500( ) R1  R1(300)  300 ( ) R1(300)  300 ( ) R1(300 –1)299 ( ) (6) 실제 데이터가 저장되어 있는 유효 주소를 레지스터를 명령어 주소 필드에서 지정 (7) 기억장치에 억세스 하기 전에 주소 값이 하나 감소 함

CISC와 RISC CISC(Complex instruction set computer) 다양한 데이터 형태와 주소 지정 방식 제공 CISC 구조 블록도 RISC(Reduced instruction set computer) 고정된 명령어 형식 사용 주소 지정 방식도 간단 레지스터 주소 지정 명령어 세트와 제어 장치 간단 복잡한 명령어 집합 컴퓨터 간소화된 명령어 집합 컴퓨터

CISC와 RISC CISC RISC CISC와 RISC의 비교 구조적 특성 명령어 세트 크기와 명령어 형식 많은 수의 명령어: 100-250개 가변 길이 명령어 형식 (명령어 당 16-64비트) 상대적으로 적은 수의 명령어 세트 고정길이 명령어 형식 (32 비트) 대부분 레지스터 참조 명령 주소지정 방식 5-20 가지 3-5 가지 정도 범용 레지스터 8-16 개 정도의 범용 레지스터 32-192 개의 범용 레지스터 CPU 제어 대부분 제어 메모리 사용 하드 와이어 제어 방식 사용 구현 복잡한 마이크로 명령어 가변 실행 시간 복잡한 파이프 라인 하드웨어, 간단한 마이크로 명령어 단일 사이클의 명령어 실행 단순한 파이프 라인 명령어 수행 마이크로 명령어에 의해 해석 후 실행 하드웨어에 의해 직접 실행 단점 마이크로 명령어의 설계가 어렵다 컴파일러의 설계가 어렵다 제품의 예 IBM370, VAX, MC68000 Intel 80x86 / Pentium series SPARK, IBM RS 6000, M88000, MIPS R4000, AMD29000