프로젝트 발표자

34
프프프프 프프프 CPU(Central Processing Unit) 2009081090 프프프 2009081113 프프프

Upload: acton-cummings

Post on 30-Dec-2015

34 views

Category:

Documents


2 download

DESCRIPTION

CPU(Central Processing Unit). 프로젝트 발표자. 2009081090 박덕성. 2009081113 정근재. 목차. 수업 목표 CPU 란 무엇인가 ? CPU 의 기본구조 & 구성요소 명령어 집합 명령어 형식 명령어 종류 명령어 주소 지정 방식 레지스터 수업을 마치며. Dept. of Computer Science, Myongji College. 1 / 32. 1. 수업목표. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 프로젝트 발표자

프로젝트 발표자

CPU(Central Processing Unit)

2009081090 박덕성2009081113 정근재

Page 2: 프로젝트 발표자

Dept. of Computer Science, Myongji College

목차

1 / 32

1.수업 목표

2.CPU 란 무엇인가 ?

3.CPU 의 기본구조 & 구성요소

4.명령어 집합1.명령어 형식2.명령어 종류3.명령어 주소 지정 방식

5.레지스터

6.수업을 마치며

Page 3: 프로젝트 발표자

1. 수업목표

2 / 32

데이터처리데이터처리 명령어명령어

CPU CPU

산술 논리 연산산술 논리 연산

CPU 는 산술 논리 연산 , 데이터 처리 , 내부 장치를 제어하기 위한 명령어들의 동작을 통해 컴퓨터를 효율적으로 관리하는방법에 대해서 알아보자 .

Dept. of Computer Science, Myongji College

Page 4: 프로젝트 발표자

2.CPU 란 무엇인가 ?

3/32

B명령을 해독 , 실행 하는

장치

C산술논리 연산이나 데이터 처리를 실행하는 장치

A다른 모든 장치의 동작을 제어하는 장치

Dept. of Computer Science, Myongji College

Page 5: 프로젝트 발표자

3. CPU 기본구조

4/ 32

실행 유닛 (EU:Execution Unit)CPU 의 명령어를 실행하는 유닛 ,ALU 와 CU 로 구성 되며 ALU 는 산술연산 논리 연산을 실행한 후 결과를 레지스터의 보관

명령어 유닛 (Instruction Unit) 메모리에서 가져온 명령어를 실행유닛에서 정확히 실행 할 수 있도록 제어하는 유닛이며 ALU 와 레지스터들이 잘 동작하게 해준다

어드레싱유닛 (Addressing Unit)

어드레싱 유닛은 CPU 가 메모리나입출력 장치에서 데이터를 읽거나쓸 때 메모리 나 입출력 어드레스를 만들어 주는 유닛 이다 .

버스 인터페이스 유닛 (Bus Interface Unit)

버스 인터페이스 유닛은 어드레스 , 데이터 컨트롤 버스를 통해서 CPU 외부와 연결시켜 주는 유닛이다 .

Dept. of Computer Science, Myongji College

Page 6: 프로젝트 발표자

3. CPU 구성요소

5 / 32

ALU / FPU

CONTROL UNIT

PREFETCH UNIT

REGISTERS

BUS INTERFACE UNIT

INTERNAL CACHE

DECODE UNIT

Dept. of Computer Science, Myongji College

Page 7: 프로젝트 발표자

3. CPU 구성요소 - 처리장치

6 / 32

ALU 연산 논리장치

컴퓨터에서 4 칙 연산과 논리연산 등 계산을 주관하는 장치 .연산장치는 4 칙 연산과 논리연산 (AND ,OR ,NOT) 을 주관한다 . 연산장치에서 연산된 결과는 기억장치 , 제어장치 , 입출력장치와의 연계동작으로 컴퓨터의 기능을 완수한다 .

CU 제어장치

제어 장치는 Decode Unit 에서 나온 명령에 따라서 ALU 와 Registers 를 위한 제어 신호를 만들어 어떻게 동작할 것인지 , 어떤 목적으로 동작할 것인지 , 그 처리 결과로 무엇을 할 것인지를 지시한다 . 제어 장치는 모든 작업이 적시적소에서 진행되도록 조절한다 .

DECORD UNIT

복잡한 기계어 명령을 ALU 와 Register 들이 이해할 수 있도록 단순한 형태의 2 진수 배열 (binary strings) 로 변환시키는 것이다 .

FPU 부동소수점 처리장치

부동 소수점 장치 (Floating Point Unit, 줄여서 FPU) 는 CPU의 일부로서 부동 소수점연산을 효율적으로 처리하기 위해서 만든 장치이다 . 보통 부동소수점 수에 대한 덧셈과 곱셈을 지원하며 , 일부는 거듭제곱뿐 아니라 삼각 함수도 계산할 수 있다 .

Dept. of Computer Science, Myongji College

Page 8: 프로젝트 발표자

3. CPU 구성요소 - 기억장치

7 / 32

REGISTERS

컴퓨터의 중앙처리장치 중 연산장치와 제어장치 내부에 존재하며 자료의 이동을 위해 사용되는 임시 기억장소이다 .

INSTRUCTION CACHE 명령 캐쉬

명령 캐쉬는 1 차 캐쉬의 일부로써 명령을 chip 내에 잠시 저장하는 곳이다 . 마이크로프로세서는 명령 캐쉬가 있기 때문에 처리 중 시스템 메모리에서 명령을 찾기 위하여 작업을 멈추지 않아도 된다 .

Dept. of Computer Science, Myongji College

Page 9: 프로젝트 발표자

3. CPU 구성요소 - 전송장치

8 / 32

PREFETCH UNIT

이 장치는 명령 캐쉬 또는 시스템 메모리로부터 도착한 data 와 명령들의 우선 순위를 결정한다 . 명령들이 Prefetch Unit 내로 들어왔을 때 Prefetch Unit 이 해야 할 가장 중요한 임무는 명령들을 순서대로 바르게 정렬시켜서 Decode Unit 로 보내는 일이다 .

BUS INTERFACE UNIT

버스 장치는 프로세서가 시스템 메모리로부터 명령 / 자료를 받아들이거나 시스템 메모리로 흘려 보내는 곳이다 . 버스 장치는 Address Bus, Control Bus, Data Bus 세 가지로 구성되어 있다 . Address Bus 는 주소 ( 저장 위치 ) 를 전송하고 Control Bus 는 제어 신호를 전송하며 Data Bus 는 자료를 전송하는 bus 이다 . 버스 장치는 자료와 명령이 가장 먼저 프로세서 내로 입력되는 곳이며 처리 과정을 거쳐서 마지막으로 프로세서 밖으로 출력되는 곳이기도 하다 .

Dept. of Computer Science, Myongji College

Page 10: 프로젝트 발표자

3. CPU 구성요소 - 메인메모리와 CPU 사이에 관계

9 / 32

연산 코드(OP Code)

주소 필드( )오퍼랜드

(IR)명령어 레지스터

해독기

순서기

제어 신호 발생기

주기억장치

(1)

(2)

(4)

(3) (3)

ALU 및 레지스터

제 어

장치

중앙처리장치

+1

(5)

MBR

MAR

주소처리기

(PC)

제어 신호

PC( Program Address Counter) : 프로그램의 실행 시 Instruction ( 명령어라고 생각해둠 ) 의 실행순서를 나타내는 레지스터로 항상 다음에 실행할 Instruction 의 주소를 기억하고 있음

IR (Instruction Register) : 현재 실행하고 있는 Instruction 을 기억시키는 레지스터 MAR(Memory Address Register) : 주기억장치에 접근하려고 할 때 접근하고자 하는 곳의 주소를

기억시키는 레지스터 MBR (Memory Buffer Register) : 주 기억 장치에서 정보를 읽거나 기억 시킬 때 기억시킬 정보를

기억시켜 놓은 레지스터

Dept. of Computer Science, Myongji College

Page 11: 프로젝트 발표자

3. CPU 구성요소 - 메인메모리와 CPU 연산 과정

10 / 32

The number 2 is input and storedThe number 3 is input and stored

The addition command is input, causing the two numbers to be added and the result stored.

The equal sign is input, causing the sum to be out-put.

Dept. of Computer Science, Myongji College

Page 12: 프로젝트 발표자

4. 명령어 집합

11 /32

더하기 , 빼기와 같은 산술

이동 , 입력 , 출력 , 불러오기 , 저장과 같은 데이터 명령

그리고 (and), 또는 (or), 아니오 (not) 와 같은 논리 명령

goto, if … goto, call, return 과 같은 제어 구조 명령

명령어 집합 (Instruction set) 또는 명령 집합은 프로세서가 실행할 수 있는 모든 명령들의 집합이다 .

Dept. of Computer Science, Myongji College

Page 13: 프로젝트 발표자

4. 명령어 집합 – 명령어 형식

12 / 32

명령어는 크게 두 부분 , 연산자 (OP Code) 부분과 주소 (번지 ,Operand) 부분으로 구성됨 .

연산자 (OP Code)- 명령어에서 연산 동작을 지정하는 부분으로 명령어의 종류를 표현함 .주소 ( 번지 ) 부 (Operand)- 연산의 대상이 되는 데이터의 위치를 나타내는 부분

OP 코드 -ADD 덧셈 , SUB 뺄셈 , MUL 곱셈 , DIV 나눗셈 , -LD 기억장치로부터 레지스터로 데이터 적재 , STO 기억장치에 데이터 저장

명령어 (Instruction) 의 구성

Dept. of Computer Science, Myongji College

Page 14: 프로젝트 발표자

4. 명령어 집합 – 주소 명령어 형식

13 / 32

0- 주소 명령어 형식

Operand 없이 OP Code 만으로 구성되는 명령어 형식

- STACK 을 이용하여 연산을 실행- 단항연산에 적합- 0- 주소 명령으로 프로그램을 작성하면 프로그램의 길이가 길어질 수 있음 .- 대표적인 0- 주소 명령어 : PUSH, POP

Ex ) F = 3*2 +4/2 를 postfix 형식으로 변환한 후 0- 주소 명령어 형식으로 표현하라

postfix F32*42/+= 프로그램 : PUSH3 PUSH 2 MUL PUSH4 PUSH2 DIV ADD STO F

Dept. of Computer Science, Myongji College

Page 15: 프로젝트 발표자

4. 명령어 집합 – 명령어 형식

14/ 32

1- 주소 명령어 형식

OP Code 와 1 개의 Operand 로 구성되는 명령어 형식

누산기 (Accumulator) 를 이용하여 연산을 실행

Ex ) X= 5 , Y = 3 일 때 Y ←X-Y 를 1- 주소 명령 형식으로 프로그램 하라 .

LD X, 5 LD Y, 3 SUB Y MOV X, Y

Dept. of Computer Science, Myongji College

Page 16: 프로젝트 발표자

4. 명령어 집합 – 명령어 형식

15 / 32

2- 주소 명령어 형식

OP Code 와 2 개의 Operand 로 구성되는 명령어 형식연산결과를 위한 Operand 1 개와 입력자료를 위한 Operand 1개로 구성

가장 일반적인 연산의 형태연산 후 입력자료의 값이 변화함Operand1 은 연산 후 결과값이 저장되는 레지스터

Ex ) X= 5 , Y = 3 일 때 Y ←X-Y 를 2- 주소 명령 형식으로 프로그램 하라 .

LD X, 5 LD Y, 3 ADD Y, X

Dept. of Computer Science, Myongji College

Page 17: 프로젝트 발표자

4. 명령어 집합 – 명령어 형식

16 / 32

3- 주소 명령어 형식

OP Code 와 3 개의 Operand 로 구성되는 명령어 형식연산결과를 위한 Operand 1 개와 입력자료를 위한 Operand 2개로 구성

연산 후 입력자료의 값이 보존됨 .

Ex ) X= 5 , Y = 3 일 때 Z ←X-Y 를 3- 주소 명령 형식으로 프로그램 하라 .

LD X, 5 LD Y, 3 ADD Z,X, Y

Dept. of Computer Science, Myongji College

Page 18: 프로젝트 발표자

4. 명령어 집합 – 명령어 종류

17 / 32

데이터 전송 명령어

레지스터와 메모리 사이에서 자료와 정보의 이동 LOAD CPU 에 서 메 모 리 로 이 동 STORE , 레 지 스 터 간 이동

MOVE 레지스터와 입 출력 장치 사이에 INPUT , OUTPUT 레지스터와 스택 사이에 저장 PUSH , 인출은 POP

데이터 처리 명령어 사칙 연산 및 증감 , 2 의 보수등을 행하는 산술 명령 피 연산자의 각 비트를 하나씩 논리 처리하는 논리 연산 및

비트 처리 명령 워드의 비트들을 모두 이동시키는 시프트 명령어

프로그램 제어 명령어

프로그램 카운터의 값을 변경 할 수 있는 제어 기능을 가지며 조건 및 무조건 분기의 분기 명령

다음 명령으로 건너뛰는 스킵 명령 서브루틴 호출과 복귀를 위한 서브루틴 명령 비교 명령과 테스트 명령

명령어 종류

1

2

3

4

5

6

메모리 참조 명령어

레지스터 참조 명령어

입출력 참조 명령어

동작 코드가 해당하는 주소의 메모리 내용으로 실행하는 명령어 레지스터의 동작이나 테스트를 기술하여 하나 이상의 레지스터 내용으로 작동되는 명령어입출력 동작이나 테스트를 기술한 명령어이다 .

Dept. of Computer Science, Myongji College

Page 19: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

18 / 32

Immediate Addressing Mode

데이터가 명령어에 포함되어 있는 방식오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터프로그램에서 레지스터들이나 변수의 초기 값을 어떤 상수값 (constant value) 으로 세트하는 데 유용데이터를 인출하기 위하여 기억장치를 액세스할 필요가 없다상수 값의 크기가 오퍼랜드 필드의 비트 수에 의하여 제한

Direct Addressing Mode

오퍼랜드 필드의 내용이 유효 주소가 되는 방식 가장 일반적인 개념의 주소 방식

EA = A 데이터 인출을 위해 한 번만 기억장치에 액세스 연산 코드를 제외하고 남은 비트들이 주소 비트로 사용

지정할 수 있는 기억장소의 수가 제한 , 많은 수의 주소를 지정 불가능

Dept. of Computer Science, Myongji College

Page 20: 프로젝트 발표자

연산에 사용할 데이터가 레지스터에 저장오퍼랜드 부분이 레지스터 번호 , 유효주소가 레지스터 번호

EA = R오퍼랜드 필드가 레지스터들의 번호를 나타내기 때문에 비트 수가 적어도 가능데이터 인출을 위하여 기억장치에 액세스 할 필요 없음데이터가 저장될 수 있는 공간이 CPU 내부 레지스터들로 제한

4. 명령어 집합 – 명령어 주소 지정 방식

19 / 32

Indirect Addressing Mode

오퍼랜드 필드에 기억장치 주소가 저장되어 있는 주소가 저장그 주소가 가리키는 기억 장소에서 유효 주소 획득

EA = (A)실행 사이클 동안 두 번의 기억장치 액세스가 필요하다는 단점두 번의 액세스

첫 번째 액세스는 주소를 읽기두 번째는 그 주소가 지정하는 위치로부터 실제 데이터를 인출주소 지정 방식을 표시하는 간접비트 (I) 필드가 필요

Register Addressing Mode

Dept. of Computer Science, Myongji College

Page 21: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

20 / 32

Register Indirect Addressing Mode

주소 필드 = 오퍼랜드 address 가 저장된 레지스터 레지스터 = 오퍼랜드 address Indirect addressing 과 유사

EA = (R)EA = (R)

Indirect addressing 과 같이 , 주소 필드에 의해서 주소공간이 제한되는 문제점을 그 필드가 주소를 가지고 있는 단어의 위치를 가리키도록 함으로써 해결

Indirect addressing 보다 기억장치 주소 참조수가 1회 적음

Dept. of Computer Science, Myongji College

Page 22: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

21/ 32

Relative Indirect Addressing Mode

묵시적으로 참조되는 레지스터 = PC

유효 주소를 구하기 위해서 , 현재 명령어 주소와 주소 필드를 더함

유효 주소는 명령어 주소를 기준으로 한 상대적인 displacement (signed integer)임

대부분의 기억장치 참조들이 현재 실행되고 있는 명령어에 인접해 있다면 , 본 address-ing 을 이용함으로써 , 명령어 주소 비트를 절약함

EA = A + (PC)EA = A + (PC)

Dept. of Computer Science, Myongji College

Page 23: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

22/ 32

Base Register Addressing Mode

레지스터 : Base 기억장치 주소 주소 필드 : 그 주소로부터의 변위값 (un-

signed integer)

R: implicit or explicit 세그멘테이션 (segmentation) 을 구현하는데 편리하게 이용

EA = A + (R)EA = A + (R)

Dept. of Computer Science, Myongji College

Page 24: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

Index Register Addressing Mode

23/ 32

레지스터 : 그 주소로부터의 변위 값 (unsigned integer) 주소 필드 : 주기억장치 주소

EA = A + (R)EA = A + (R) 반복 연산을 효과적으로 실행

예 : for(i=0;i<100;i++) C = A[i] + 10; Index register = 0 으로 초기화 각 연산이 끝난 후 , index register 는 1씩 증가 ; R = (R) + 1

Post-indexing 인덱싱이 간접 주소지정 후에 실행 , EA = (A) + (R)

Pre-indexing 인덱싱이 간접 주소지정 전에 실행 , EA = (A+(R))

Dept. of Computer Science, Myongji College

Page 25: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

데이터 주소 표현 방식

24/ 32

완전주소

• 약식주소

생략주소

생략주소

- 정보가 데이터이거나 주소이거나 구별하지 않고 그것이 기억된 장소에 직접 사상 (mapping) 시킬 수 있는 주소를 의미

- 가장 많은 비트 수를 필요로 하는 방식으로서 기억 장치 용량이 2n 워드일 때 n 비트가 필요- 주소의 일부분을 생략한 것을 의미

- 계산에 의한 주소는 대부분 약식 주소- 약식 주소는 완전 주소보다 적은 수의 비트를 필요로 하지만 중앙 처리 장치 내의 레지스터를 이용하여야 함

- 주소를 구체적으로 나타내지 않아도 원하는 정보가 기억된 곳을 알 수 있는 경우에 사용- 예를 들면 누산기가 하나인 경우에 생략 가능- 명령어의 길이를 단축하는 데 가장 큰 기여를 함

 - 주소를 위하여 별도의 비트가 필요 없음 - 데이터 자신을 위하여 상당 수의 비트가 필요

Dept. of Computer Science, Myongji College

Page 26: 프로젝트 발표자

4. 명령어 집합 – 명령어 주소 지정 방식

스택 주소 표현 방식

25/ 32

선형리스트 구조의 특별한 형태로 데이터의 삽입과 삭제가 top 에서만 일어나는 구조

Push down 리스트 또는 LIFO(Last In First Out) 리스트 - 데이터의 삽입과 삭제가 한쪽 끝에서만 일어나고 가장 나중에

삽입한 데이터가 제일 먼저 삭제 된다 . 스택에 넣는 것을 푸시 (push) 이라 한다 . Top 의 값을 1씩 증가 스택에서 자료를 꺼내는 것을 팝 (pop) 이라 한다 . Top 의 값을 1씩 감소 스택의 Top 위치를 보유한 주소 레지스터를 스택 포인터라 한다 .

Ex ) 스택을 이용한 A+B *C-E 의 산술식 연산을 하시오 .

Dept. of Computer Science, Myongji College

Page 27: 프로젝트 발표자

5. 레지스터

26/ 32

컴퓨터에서 레지스터는 마이크로프로세서의 일부분으로서 메모리 계층의 최상위에 위치하며 레지스터는 컴퓨터의 프로세서 내에서 자료를 가장 빠른 속도로 접근 가능한 메모리이다

일반적으로 현재 계산을 실행중인 값을 저장하는 데 사용된다 .

레지스터가 기억할 수 있는 정보량 ( 레지스터 길이 ) 가 32 비트인 프로세서 (CPU) 를 32 비트 프로세서 (32 비트 CPU) 라고 한다 .

레지스터

Dept. of Computer Science, Myongji College

Page 28: 프로젝트 발표자

5. 레지스터 – 레지스터 종류

27/32

범용 레지스터

컴퓨터의 중앙 처리 장치 (CPU) 내에 있는 레지스터 중에서 계산 결과의 임시 저장 , 산술 및 논리 연산 , 주소 색인 등의 여러 가지 목적으로 사용될 수 있는 레지스터 . 이것은 프로그램 카운터나 명령어 레지스터와 같이 특별한 용도로 사용되는 레지스터들에 대비되는 개념이다 . 많은 컴퓨터가 CPU 내에 여러 개의 범용 레지스터를 갖고 있으며 레지스터 번호로 각각을 지정한다 .

범용 레지스터 종류

EAX(Accumulator Register) – 누산기 레지스터 : 입출력 및 산술 , 논리 연산에 사용 , 리턴 값 인터럽트 번호 지정 시 자동 사용EBX(Base Register) : 주소 지정을 확장할 때 사용 , 초기 주소 지정 등을 위해 사용ECX(Count Register) : 어떤 명령을 반복 실행 할 경우 횟수를 지정하는데 사용된다 .EDX(Data Register) : EAX 의 보조 누산기로 입출력 연산 시 간접 주소 지정 연산 시에는 보조 값을 저장하는데 사

용한다 .EDP(Base Pointer) : 스택의 베이스 포인터로 사용된다 . ESP(Stack Pointer) : 현재까지 사용된 스택의 위치를 저장하는데 사용되는 레지스터이다 .ESI(Source index) : 연산 및 간접 주소 연산에 주로 사용된다 , 문자열 처리 시 사용된다 .

Dept. of Computer Science, Myongji College

Page 29: 프로젝트 발표자

5. 레지스터 – 레지스터 종류

28/ 32

전용 레지스터

16bit

PC

상태 레지스터 (Flag Register)

인터럽트 레지스터 (Interrupt Register)

리플레쉬 레지스터 (Refresh Register)

지표 레지스터 IX(Index Register IX)

지표 레지스터 IY(Index Register IY)

스텍 포인터 (Stack Pointer)

프로그램 카운터 (Program Counter)

SP

IY

IX

R

I

F

전용 레지스터는 특수레지스터라고 하며 특수 레지스터는 아래 그림과 같이 구성되어 있으며 , 각각의 특수한 기능들을 가지고 있다 .

Dept. of Computer Science, Myongji College

Page 30: 프로젝트 발표자

5. 레지스터 –레지스터 종류

29/ 32

PC(Program Counter)

• 프로그램 카운터는 현재 읽어 올 ( 혹은 써넣을 ) 데이터가 들어있는 메모리 ( 혹은 입출력장치 ) 의 번지를 지정해 주는 포인터 이다 ..

• 8000H 번지부터 저장되어 있는 프로그램을 읽어오는 과정

① RUN 8000H 명령어에 의해 PC 에 8000H 를 로드 한다 (load 기능 ).

② PC 에 로드 된 8000H 는 메모리 8000H 번지를 지정한다 ( 메모리 지정 기능 ).

③ 지정된 메모리의 내용 “ 3EH" 가 메모리에서 읽혀져 나오면서 PC 는 다음 번지를 지정하기 위해 자동 1 증가 하여 8001H 가 된다 (1 증가 기능 )

3E

33

06

02

8000H

8001H

8002H

8003H

mem-ory

8000H

PCLD A,33H

(A←33H)

LD B, 02H

(B←02H)

① RUN 8000H Load 신호

8000H

② PC 에 로드 된 8000H 는 메모리 8000H 번지지정

3E

33

06

02

8000H

8001H

8002H

8003H

mem-ory

8001H

PCLD A,33H

(A←33H)

LD B, 02H

(B←02H)

③ PC 는 다음 번지를 지정하기 위해 자동 1 증가 하여 8001H 가 된다

Increment

Dept. of Computer Science, Myongji College

Page 31: 프로젝트 발표자

5. 레지스터 –레지스터 종류

30 / 32

• 스텍 포인터는 16 비트 특수 레지스터로서 레지스터 내용을 일시적으로 피신시켜두는 기능을 가지고 있으며 아래와 같다 .

Stack Pointer

16bit

Memory

① Register 내용 (Data) 을 일시 피신 시키는 기능② LIFO(Last Input First Out) 구조③ Pointer 는 감소하는 방향으로 지정④ Subroutine CALL 명령어에 의해 자동 PC 피신 , 복구 실행⑤ Interrupt 에 의한 PC 내용 자동 피신 , 복구 실행⑥ PUSH, POP 명령어에 의해 수동 Data 피신 복구 실행

CPU Stack 영역( 데이터가

피신되는 메모리 영역 )

Stack Pointer( 피신될 데이터

번지를 지정하는 기능 )

레지스터

피신

스텍 포인터 (SP : Stack Pointer)

Dept. of Computer Science, Myongji College

Page 32: 프로젝트 발표자

5. 레지스터 –레지스터 종류

31/ 17

5. 레지스터 –레지스터 종류

31/ 32

상태 레지스터 ((Status register or Flag register)

Carry( 자리올림 발생시 )

Add/Subtract( 가산 :0, 감산 :1)

Parity/Overflow

Half carry(nibble 연산 자리올림 )

Zero( 결과 0:1, not zero : 0

Sign( 결과 +:0, -:1)

ALUFlag register

• 상태 레지스터는 현재 연산장치에서 연산 결과 상태를 표시해주는 레지스터이다 .• 상태 레지스터는 8 비트 레지스터로 아래 그림과 같은 기능들을 가지고 있다 .

S Z X H X P/V N C

B7 B6 B5 B4 B3 B2 B1 B0

Dept. of Computer Science, Myongji College

Page 33: 프로젝트 발표자

6. 수업을 마치며…

32/ 32

수업 목표였던 명령어들의 동작을 통해 컴퓨터를 효율적으로 관리하는 방법에 대해서 알아보는 거였는데

프로젝트 발표 준비하면서 준비 자료에 대해 모두 이해 했다고 할 수 없지만 단편적으로 알았던

CPU 에 기능을 좀 더 자세히 알 수 있는 계기가 됬다 .

Dept. of Computer Science, Myongji College

Page 34: 프로젝트 발표자

고맙습니다