Download Chapter 9 Instruction Set Architecture

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 10 Instruction Set Architecture
10-1 Computer Architecture 개념
10-2 Operand Addressing
10-3 Addressing Mode
10-4 Instruction Set Architecture
10-5 Data Transfer Instruction
10-6 Data Processing Instruction
10-7 Floating Point Calculation
10-8 Program Flow instruction
10-9 Program Interrupt
10-1 Computer Architecture 개념




Machine Language
Instruction, Data를 나타내는 Binary language
Assembly Language
Binary 연산코드와 Address를 기호(Symbol)화한 이름으로 대체하여 프로그
래머가 다루기 쉽도록 기호화한 언어
Assembly language reference maual에 컴퓨터의 논리구조가 있다
Architecture의미
Instruction set architecture
Organization(기구) : Datapath, CU, BUS
Hardware 를 포함한 개념
Instruction Format
1. Opcode Field : 실행해야할 동작 규정
2. Address Field : 메모리 어드레스나 프로세서 레지스터 선택
3. Mode Field : 어드레스 영역의 해석방법 규정
기본적인 컴퓨터 동작 사이클

다음의 단계를 따라 프로그램의 Instruction을 실행하기 위한 컴퓨터의
Control Unit를 설계한다
1.
2.
3.
4.
5.
6.
7.

메모리에서 제어레지스터로 명령어를 가져온다
명령어 디코드
명령어가 사용하는 오퍼런드 위치를 알아낸다
필요하다면 메모리에서 오퍼런드를 가져온다
프로세서 레지스터에서 연산 실행
결과저장
다음 명령어를 가져오기 위해 1번으로 돌아간다.
PC (Program Counter)
현재 명령어가 실행되는 동안 “1”씩 증가
Register Set

프로그래머가 access 할 수 있는 CPU 내의 모든 register
Register Files
Program Counter
Instruction Register

Microprogram 만 이 access할 수 있는 register도 있다
Pipeline register : Programmer 가 직접 access 불가

Processor Status Register (PSR)
C,N,V,Z 의 상태값 저장
상태bit를 Condition code 혹은 Flag 라고 한다

Stack Pointer
10-2 Operand Addressing

Implied (암시적) Addressing
오퍼런드의 위치가 명령어 속에 있는 opcode나 다른 operand들 중 하나가
지정하는 어드레스에 의해 지정하여 명확하게 어드레싱하지 않는 것
따라서 명령어 속에 operand를 위한 메모리 주소나 레지스터 어드레스 영역
이 필요없다

Explicit (명시적) Addressing
명령어 속에 operand를 지정하는 어드레스가 지정되어 있는 것

Operand 수가 컴퓨터 프로그램에 끼치는 영향에 대하여
X = (A + B)(C + D)
A,B,C,D 의 값은 기호화(symbolized)된 어드레스에 저장
X는 결과가 저장되는 메모리 어드레스
Three-Address Instruction

3-address program
ADD
ADD
MUL

M[T1] ← M[A] + M[B]
M[T2] ← M[C] + M[D]
M[X] ← M[T1] X M[T2]
임시 저장 장소로 register를 사용할 경우
ADD
ADD
MUL

T1, A, B
T2, C, D
X, T1, T2
R1, A, B
R2, C, D
X, R1, R2
R1 ← M[A] + M[B]
R2 ← M[C] + M[D]
M[X] ← R1 X R2
장점 : Program의 길이가 짧다
단점 : 2진 code로 된 명령어는 세 메모리 어드레스를 위한 많은 bit 필요
Two-Address Instruction

2-address program : register나 memory address 지정
MOVE
ADD
MOVE
ADD
MUL


T1, A
T1, B
X, C
X, D
X, T1
M[T1] ← M[A]
M[T1] ← M[T1] + M[B]
M[X] ← M[C]
M[X] ← M[X] + M[D]
M[X] ← M[X] X M[T1]
여기서 임시 register R1을 memory address T1 대신 사용 가능
Instruction의 수가 5개로 증가
One-Address Instruction

Accumulator 사용
Operand를 가져오거나 결과를 저장하는 레지스터
LD
ADD
ST
LD
ADD
MUL
ST


A
B
X
C
D
X
X
ACC ← M[A]
ACC ← ACC + M[B]
M[X] ← ACC
ACC ← M[C]
ACC ← ACC + M[D]
ACC ← ACC X M[X]
M[X] ← ACC
모든 연산은 ACC 레지스터와 memory operand 사이에서 일어남
명령어 수가 7개로 증가
Zero-Address Instruction

Stack 이용
LIFO (Last In First Out) : 나중에 memory에 저장된 내용을 먼저 꺼낸다

TOS : Stack의 제일 위에 있는 word
TOS-1 : TOS 바로 밑에 있는 word

사용된 operand는 Stack에서 제거되고, 제거된 operand 아래의 것이 새로운
TOS 가 된다.
어떤 연산이 실행되면 그 결과는 stack에 저장되고 새로운 TOS 가 된다.


ADD : TOS ← TOS + TOS-1
PUSH X : TOS ← M[X]
POP X : M[X] ← TOS
Zero-Address Instruction(계속)

Zero addressing을 이용한 program
PUSH
PUSH
ADD
PUSH
PUSH
ADD
MUL
POP
A
B
C
D
X
TOS ← M[A]
TOS ← M[B]
TOS ← TOS + TOS-1
TOS ← M[C]
TOS ← M[D]
TOS ← TOS + TOS-1
TOS ← TOS + TOS-1
M[X] ← TOS
Addressing Architecture

Memory-to-Memory Architecture
모든 동작이 메모리를 access 하는 3-address architecture
CPU 에는 PC와 같은 control register만 존재
모든 operand는 memory에서만 가져오고, 결과도 memory에 저장
Data transfer 와 manipulation 명령어의 format은 하나에서 세개의 address
field를 갖는다.

이전의 예 : 3개의 명령어가 필요
만일 추가적인 word가 각 instructions내의 각각의 memory address를 위해
명령어 내에 있다면, operand 가져오기(fetch)와 결과의 저장 까지(store)를
포함하면 덧셈을 수행하는 프로그램은 21번의 memory access 필요.
Opcode
address1
address2
address3
Addressing Architecture (계속)

3-address Register – to- Register 혹은 Load/Store architecture
Load 와 Store 명령어의 경우에만 오직 하나의 address field 허용

Program
LD
LD
ADD
LD
LD
ADD
MUL
ST

R1, A
R2, B
R3, R1, R2
R1, C
R2, D
R1, R1, R2
R1, R1, R3
X, R1
Memory access 의 수 : 총 18
R1 ← M[A]
R2 ← M[B]
R3 ← R1 + R2
R1 ← M[C]
R2 ← M[D]
R1 ← R1 + R2
R1 ← R1 x R3
M[X] ← R1
Addressing Architecture (계속)

Register-Memory Architecture
단일 memory address를 갖는 2-address Instruction
ADD
R1, A
R1 ← R1 + M[A]

Single Accumulator architecture
One-Address Instruction의 경우
Register file이 없으므로 memory access 를 위해 단일 address 사용

Stack Architecture
Zero-address Instruction의 경우
연산자를 나중에 사용 : Postfix presentation
(A+B)XC+(DXE) : INFIX 표기법
AB + C X DE X = : POSTFIX 표기법
Stack Architecture
Fig.10-1 RPN 표기 변환과정
PUSH
A
PUSH
B
ADD
PUSH
C
MUL
PUSH
D
PUSH
E
MUL
ADD
Fig.10-2 스택 프로그램을 실행할 때의 스택 동작 과정
Related documents