3장 MPU 내부구조 Slide 1 (of 28).

Slides:



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

Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
Understanding of Ubiquitous & Computers Plus
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
마이크로프로세서 메모리 및 입출력장치 인터페이스
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
4 컴퓨터에서 활용되는 디지털 논리회로 IT CookBook, 컴퓨터 구조와 원리 2.0.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
10장 주변장치 (PIO) Slide 1 (of 28).
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제 1 장 마이크로프로세서의 기본동작.
임베디드 하드웨어 Lecture #6.
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
연습문제풀이/도움말.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
Chapter 02 시스템 구조(System Structure)
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제3장 8086 프로세서의 내부구조.
제 2장 컴퓨터동작의 기본 개념.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
Computer System Architecture
명령어 구조 컴퓨터 하드웨어의 구성 프로그램 명령어 프로그램 실행 동작.
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
1 컴퓨터 구조 IT CookBook, 컴퓨터 구조와 원리 2.0.
PIC16C84의 외형 RA2 1 RA1 I/O PIN I/O PIN RA3 RA0 RTCC OSC1 발 진 RESET
운영체제 (Operating Systems) (Memory Management Strategies)
3-16. 디지털 시계.
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
제5강 처리 장치 2.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Lecture #5 제4장. 제어 유니트.
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
제 1 강 컴퓨터의 구조.
Presentation transcript:

3장 MPU 내부구조 Slide 1 (of 28)

이번 시간에는... “MPU 내부구조”에 대해 알아보겠습니다. 학습개요 학 습 목 표 마이크로프로세서의 내부 구조에 대하여 요소 별 동작원리를 공부한다. 학 습 목 차 마이크로프로세서 구조 범용레지스터 연산장치 제어장치 Slide 2 (of 28)

MPU 내부 구조 1) Z-80 마이크로프로세서 내부구조 MPU는 기본적으로 연산장치(ALU), 제어장치(control), 레지스터(register)로 구성된다. 레지스터는 누산기(Acc), 프로그램 카운터(PC), 메모리 어드레스 레지스터(MAR), 명령어 레지스터(IR)들로 구성되어 있다. MPU 외부로 어드레스 버스, 데이터 버스, 제어 버스들이 나와 있다. Slide 3 (of 28)

2) Z-80 Microprocessor(MPU) Z-80 MPU의 외부 형태는 아래 그림과 같이 Address Bus. Data Bus, Control Bus들로 구성된다. Slide 4 (of 28)

Internal Control Signal MPU 내부 구조 3) Z-80 Microprocessor 내부구조 Z-80 MPU의 내부 구조는 아래 그림과 같이 범용레지스터(general purpose register), 특수레지스터(special purpose register), 누산기(accumulator), 연산장치(arithmetic unit), 제어장치(control unit)로 구성되어 있으며 제어장치는 명령어레지스터(instruction register)와 해석기(decoder)로 구성되어 있다. 이들 장치들간의 데이터 전달은 Address Bus. Data Bus, Control Bus에 의해 전달된다. General purpose Register Special purpose Register(PC,SP) ALU Control Accumulator External Address Bus External Data Bus Internal Bus IR Decoder Logic External Control Signal Internal Control Signal Slide 5 (of 28)

MPU 내부 구조 3) 인텔 8085 내부구조 Slide 6 (of 28)

4) 범용 레지스터(General Purpose Register) MPU 내부 구조 4) 범용 레지스터(General Purpose Register) Z-80 MPU의 범용레지스터는 각각 8비트 레지스터로 구성되며 A레지스터는 누산기이며 B, C, D, E, H, L 레지스터들로 구성된다. 16비트로 사용할 때에는 BC, DE, HL로 묶어서 사용한다. 그리고 Z-80에서는 주 레지스터(main register), 보조 레지스터(alternate register)를 가지고 있다. main register alternate register Accumulator 8bit 16bit H’ L’ A’ D’ E’ B’ C’ 8bit 16bit H L A D E B C 쌍으로 사용할 때 16bit로 동작 Slide 7 (of 28)

5) 연산장치(AU : Arithmetic Unit) MPU 내부 구조 5) 연산장치(AU : Arithmetic Unit) 연산장치는 아래 그림과 같이 산술연산, 논리연산, 보수기, 시프트레지스터, 상태레지스터들로 구성되어 있다. 연산장치의 좌측에는 Acc(누산기)가 연결되어 연산 결과는 반드시 Acc에 저장되도록 설계되어 있다. ALU Flag register Acc Temp register 8/ 산술연산회로 논리연산회로 보수기 시프트레지스터 Slide 8 (of 28)

5) 연산장치(AU : Arithmetic Unit) MPU 내부 구조 5) 연산장치(AU : Arithmetic Unit) 연산장치의 기능들은 아래와 같다. 산술 연산 회로 : 산술 연산인 +, -, ×, ÷을 수행하는 연산회로이다. 논리 연산 회로 : 논리 연산인 AND, OR, XOR, NOT을 수행하는 연산 회로이다. 시프트 레지스터(shift register) : 비트들을 좌측 혹은 우측으로 이동시키는 기능을 가진 레지스터이다. 보수기(complement) : 2진 데이터를 보수를 취하는 회로이다. 상태 레지스터(status register) : 연산 결과의 상태를 나타내는 플래그(flag)들을 저장하는 레지스터이다. Slide 9 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Z-80 MPU의 특수 레지스터는 아래 그림과 같이 구성되어 있으며, 각각의 특수한 기능들을 가지고 있다. 8bit 상태 레지스터(Flag Register) 인터럽트 레지스터(Interrupt Register) 리플레쉬 레지스터(Refresh Register) 지표 레지스터 IX(Index Register IX) 지표 레지스터 IY(Index Register IY) 스텍 포인터(Stack Pointer) 프로그램 카운터(Program Counter) F I R IX IY SP PC 16bit Slide 10 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) (1) Program counter (PC) 프로그램 카운터는 현재 읽어 올(혹은 써넣을) 데이터가 들어있는 메모리(혹은 입출력장치)의 번지를 지정해 주는 포인터 이다. PC의 기본적인 동작과정은 아래와 같다. ① 현재 CPU로 읽어 올 memory 지정 ② memory 내용을 읽어 온 후 자동 increment 하여 다음 실행할 번지를 미리 지정 ③ 8Bit CPU의 PC는 16Bit로 구성된다 Program counter Memory Address Bus(16Bit) 16Bit 216 =64K Byte 16 Bit CPU (Address Buffer) AU 지정할 메모리 주소 데이터 16 / Load 제어 Increment 제어 Slide 11 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Program counter 동작 예 1) 8000H 번지부터 저장되어 있는 프로그램을 읽어오는 과정 ① RUN 8000H 명령어에 의해 PC에 8000H를 로드 한다(load 기능). ② PC에 로드 된 8000H는 메모리 8000H 번지를 지정한다( 메모리 지정 기능). ③ 지정된 메모리의 내용 “3EH" 가 메모리에서 읽혀져 나오면서 PC는 다음 번지를 지정하기 위해 자동 1 증가 하여 8001H가 된다(1 증가 기능) ② PC에 로드 된 8000H는 메모리 8000H 번지지정 ③ PC는 다음 번지를 지정하기 위해 자동 1 증가 하여 8001H가 된다 memory memory PC PC 8000H 8001H 8002H 8003H 3E 33 06 02 LD A,33H (A←33H) LD B, 02H (B←02H) 8000H 8001H 8002H 8003H 3E 33 06 02 LD A,33H (A←33H) LD B, 02H (B←02H) 8000H 8001H ① RUN 8000H Load 신호 8000H Increment Slide 12 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Program counter 동작 예 2) JUMP명령어에 의한 Jump address load : JUMP 5000H (5000H 번지로 점프) PC 5000H ① JUMP 5000H Load 신호 5000H Program counter 동작 예 3) Subroutine Call에 의한 subroutine 시작번지 load memory PC 8000H 8001H 8002H 8003H CD 00 30 CALL 3000H 3000H ① CALL 3000H Load 신호 Slide 13 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) (2) 스텍 포인터(SP : Stack Pointer) 스텍 포인터는 16비트 특수 레지스터로서 레지스터 내용을 일시적으로 피신시켜두는 기능을 가지고 있으며 아래와 같다. ① Register 내용(Data)을 일시 피신 시키는 기능 ② LIFO(Last Input First Out) 구조 ③ Pointer는 감소하는 방향으로 지정 ④ Subroutine CALL 명령어에 의해 자동 PC 피신, 복구 실행 ⑤ Interrupt에 의한 PC 내용 자동 피신, 복구 실행 ⑥ PUSH, POP 명령어에 의해 수동 Data 피신 복구 실행 Stack Pointer (피신될 데이터 번지를 지정하는 기능) Memory CPU Stack 영역 (데이터가 피신되는 메모리 영역) Stack Pointer 16bit 피신 레지스터 Slide 14 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) 스텍 포인터는 LIFO (Last In First Out) : 마지막에 입력된 데이터가 먼저 출력되는 구조)구조로 되어 있다. 스텍 포인터는 감소하는 방향으로 메모리를 지정한다. DATA 3 DATA 3 DATA 2 FEFC FEFD FEFE FFFF FEFC FEFD FEFE FFFF DATA 2 Stack Pointer DATA 1 Stack Pointer DATA 1 Slide 15 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) 예) BC,DE 레지스터의 내용을 PUSH, POP 명령어로 SP 에 피신하였다가 복구하는 과정 ① 초기에 SP는 FF00H 번지로 지정한다. Memory(stack영역) CPU FF00H FEFFH FEFEH FEFDH FEFCH FEFBH SP초기위치 SP FF00H AF BC DE 12 34 56 78 9A BC ② PUSH BC Memory(stack영역) CPU FF00H FEFFH FEFEH FEFDH FEFCH FEFBH 56 78 SP초기위치 SP FEFEH AF BC DE 12 34 56 78 9A BC Slide 16 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Memory(stack영역) ③ PUSH DE CPU FF00H FEFFH FEFEH FEFDH FEFCH FEFBH 56 78 9A BC SP초기위치 SP FEFCH AF BC DE 12 34 56 78 9A BC ④ POP DE Memory(stack영역) CPU FF00H FEFFH FEFEH FEFDH FEFCH FEFBH 56 78 SP초기위치 SP FEFEH AF BC DE 12 34 9A BC Slide 17 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Memory(stack영역) ⑤ POP BC CPU FF00H FEFFH FEFEH FEFDH FEFCH FEFBH SP초기위치 SP FF00H AF BC DE 12 34 56 78 9A BC Slide 18 (of 28)

⊕ MPU 내부 구조 6) 특수레지스터(Special Purpose Register) (3) 지표 레지스터(Index Register) 16bit IX IY 자신의 address 값을 지표로 삼아서 변위를 가산하여 유효번지를 구성한 후 처리하는 레지스터 16bit Index register IX, IY ex) 현재 IX레지스터에 9000H가 저장되어 있을 때에 LD A,(IX + 3) : 명령어를 실행하면 아래 그림과 같이 9003H번지에 저장되어 있는 78H가 Acc에 전송되다 Memory CPU 9000H 9001H 9002H 9003H 9004H 9005H 12 34 56 78 9A BC AF BC DE 78 ⊕ IX 9000H IX(9000H) + 3H = 9003H Index 값 + 변위 값 = 유효 번지(effective address) Slide 19 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) (4) 상태 레지스터 (Status register or Flag register) 상태 레지스터는 현재 연산장치에서 연산 결과 상태를 표시해주는 레지스터이다. 상태 레지스터는 8비트 레지스터로 아래 그림과 같은 기능들을 가지고 있다. ALU Flag register B7 B6 B5 B4 B3 B2 B1 B0 S Z X H P/V N C Carry(자리올림 발생시) Add/Subtract(가산:0, 감산:1) Parity/Overflow Half carry(nibble 연산 자리올림) Zero(결과 0:1, not zero : 0 Sign(결과 +:0, -:1) Slide 20 (of 28)

논리 연산 후에는 항상 0으로 set된다. MPU 내부 구조 6) 특수레지스터(Special Purpose Register) ① Carry bit : ALU에서 연산결과 carry가 발생하면 1로 set carry가 없으면 0 으로 세트 된다. S Z X H P/V N C ◇ 산술연산 (가산) ADD A,B A← A + B 1111 1001 (F9H) Acc + 0001 0100 (14H) + B Carry 1← 0000 1101 (1 0DH) ◇ 산술연산 (감산) SUB A,B A← A- B 0010 1001 (29H) Acc - 0011 0100 (44H) - B Carry 1→ 1101 0101 (D5H) 논리 연산 후에는 항상 0으로 set된다. Slide 21 (of 28)

(3) Parity/Overflow MPU 내부 구조 6) 특수레지스터(Special Purpose Register) ② Add/Subtract bit: 가산 명령어 후에 “0”으로 세트, 감산 명령어 실행 후에는 “1”로 세트 된다 S Z X H P/V N C (3) Parity/Overflow ADD operation 0 SUB operation 1 ③ Parity/Overflow bit: 산술연산(ADD, SUB등) 명령어를 실행하면 Overflow bit로 동작 논리연산(AND, OR등) 명령어 실행 후 Parity bit로 동작 S Z X H P/V N C (가) Overflow 발생조건 : Overflow 발생조건은 두 수의 부화 같을 때 가산 후 결과의 부호가 다르면 Overflow 가 발생한 것으로 처리된다. 감산(SUB)명령 후에는 절대로 over flow가 발생하지 않는다. (+) (-) + (+) + (-) Overflow 발생 (-) Overflow 발생 (+) Slide 22 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) Overflow 검출회로 As(가수 부호비트) Bs(피가수 부호비트) Cout Cn+1(캐리비트) V(오버플로우비트) 비고 양수+양수=양수 1 양수+양수=음수 양수+음수=양수(A>B) 양수+양수=음수(A<B) 음수+양수=양수(A<B) 음수+양수=음수(A>B) 음수+음수=양수 음수+음수=음수 Slide 23 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) 해결방법 : 자리 수를 늘려준다. Overflow 발생 0 111 0100 (+74H) + 0 010 0100 (+24H) Overflow 발생 1 001 1000 (-18H) 0 000 0000 0111 0100 (+0074H) + 0010 0100 (+0024H) 1001 1000 (+0098H) (나) Parity 발생조건 : Parity bit는 컴퓨터들 간에 직렬 데이터 전송 시 정확하게 데이터를 전송하기 위한 방법으로 사용된다. 만약 Odd parity로 설정되어 있다면 논리연산 후에 Acc의 내용에서 1의 갯 수를 세어서 짝수이면 parity bit를 “1”로 set하여 전체의 “1”의 개수를 를 홀수로 만들어 준다. 만약 Even parity로 설정되어 있다면 논리연산 후에 Acc의 내용에서 1의 갯 수를 세어서 홀수이면 1 로 set되어 전체를 짝수로 만들어 준다. Slide 24 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) ◇ 직렬전송 시 오류발생 검출 방법 ⓐ 컴퓨터 A 에서 전송할 데이터에서 1의 개수가 홀수이면 parity bit를 “1”로 세트하여 짝수 개로 만들어 준다. 이것을 parity bit generator 락 한다. ⓑ 직렬로 컴퓨터 B에 전송한다. ⓒ 컴퓨터 B 에서 전송된 데이터에서 “1”의 개수가 짝수개 이면 정상적으로 전송된 것으로 보고 parity bit는 “0”이 된다. ⓓ 만약 전송된 데이터에서 “1”의 개수가 홀수개 이면 짝수로 맞추어주기 위해 parity bit를 “1”로 세트해주고 전송도중 오류가 발생하였음을 알려준다. 이것을 parity bit detector(검출기)라 한다. Slide 25 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) ④ Half carry bit (nibble 연산 자리올림) : ALU에서 연산결과 하위 4비트 연산에서 자리올림수가 발생하면 H bit 가 “1”로 세트 된다 0001 1100 (1CH) + 0001 0100 (14H) 0011 0000 (30H) S Z X H P/V N C ⑤ Zero bit : ALU에서 연산결과 zero 이면 Z bit를 “1”로 세트하고 아니면 “0”으로 된다 S Z X H P/V N C Z bit는 “1”이 된다 Z bit는 “0”이 된다 0001 0100 (14H) - 0000 0000 (00H) 0001 0100 (14H) - 0000 0100 (04H) 0001 0000 (10H) Not zero Slide 26 (of 28)

6) 특수레지스터(Special Purpose Register) MPU 내부 구조 6) 특수레지스터(Special Purpose Register) ⑥ Sign bit : ALU에서 연산결과 최 상위 비트가 “1” 이면 음수, “0” 이면 양수가 된다. 상태 레지스터의 최 상위 비트는 sign bit(부호비트)이다. S Z X H P/V N C 0 001 1100 (1CH) + 0 001 0100 (14H) 0 011 0000 (30H) 연산결과 MSB가 0이면 양수, 음수이면 MSB가 1이 된다. 최 상위 비트(MSB,(Sign bit)) (5) Interrupt Vector Register Interrupt Vector Register는 8bit register로서 Page address라고도 하며, 주변장치의 주소를 지정해 주는 register 이다.(Interrupt에서 설명) (6) Memory Refresh Register Dynamic RAM을 사용할 때 정보를 계속 유지하기 위해 계속해서 충전을 해야 한다. 최소한 2ms 마다 한번씩 refresh 해야 한다.(메모리에서 설명) Slide 27 (of 28)

MPU 내부 구조 7) 제어장치 (Control Unit) 제어장치는 명령어 레지스터(IR:Instruction Register)와 명령어 해석기(Decoder)로 구성되어 있으며 memory에 저장되어 있는 프로그램에서 명령어를 인출(fetch) 해 와서 명령어를 해석한 다음 이에 해당되는 제어 신호들을 내보낸다. 그림에서 IR(Instruction Register)은 명령어를 fetch해 와서 latch하고 있는다. Latch된 명령어는 명령어 해석기로 보내져서 명령어를 해석한다. 해석된 명령어는 내부 제어신호와 외부제어신호를 발생하여 실행한다. Slide 28 (of 28)