9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직

Slides:



Advertisements
Similar presentations
- 1 - IT COOKBOOK 컴퓨터 기술 IT COOKBOOK Chapter 01. 서론.
Advertisements

Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
ARM core UNIT 03 로봇 SW 교육원 조용수. 학습 목표 PIC, AVR, 8051 ARM 이란 ? ARM 특징 ARM and Thumb ARM Cortex-M0 Interrupt Vector 2.
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
Understanding of Ubiquitous & Computers Plus
마이크로 컨트롤러 Microcontroller.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
제4장 명령어 처리.
컴퓨터 하드웨어 Computer Hardware
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
CPU (central Processing Unit)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
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장
컴퓨터 구조.
컴퓨터 중앙처리장치, 기억장치, 입력장치 및 출력장치를 알아보자.
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 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제 2장 컴퓨터동작의 기본 개념.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
11장. 마이크로 프로세서 내부 구조.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
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. 명령어 형식.
제 1 강 컴퓨터의 구조.
Presentation transcript:

9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직 레지스터의 조직 명령어 사이클 명령어 파이프 라이닝

Section 01 컴퓨터 본체에서 CPU의 위치 살펴보기 [그림 9-1] 주 회로기판에서 중앙처리장치와 주기억장치

Section 02 CPU의 성능 성능 측정 요소 클럭 주파수 워드크기 캐시 메모리 명령어집합의 복잡성 파이프라이닝 병렬처리

성능 측정 요소 클럭 주파수 워드크기 수행되는 연산의 타이밍을 맞추기 위한 펄스 컴퓨터의 명령어 수행 속도 결정 하나의 클럭 동안에 명령어 부 사이클이 수행 클럭의 주기가 짧을 수록 많은 명령을 처리 워드크기 CPU가 한번에 읽고 쓸 수 있는 비트수 레지스터나 데이터버스의 크기와 일치 워드가 큰 시스템은 워드가 작은 시스템에 비해 한 명령어에서 더 많은 데이터 처리 가능

성능 측정 요소 캐시 메모리 명령어 집합의 복잡성 CPU가 데이터를 빠르게 접근할 수 있는 고속 기억장치 읽기와 쓰기의 속도 향상 명령어 집합의 복잡성 복잡 명령어 집합 컴퓨터(CISC : Complex Instruction Set Computer) CPU에 많은 복잡한 명령어가 내재된 컴퓨터 한 명령어가 메모리에 많은 바이트를 차지 명령어의 길이가 다름 축소 명령어 집합 컴퓨터 (RISC : Reduced Instruction Set Computer) CPU 내부에 빠르게 수행되는 제한된 수의 간단한 명령어만이 내재된 컴퓨터 모든 명령어 길이가 일정

성능 측정 요소 파이프라이닝 병렬처리 프로세서가 이전명령 마치기 전에 다음명령을 수행  병행처리로 속도 향상 다수의 CPU가 있는 컴퓨터에서 한번에 여러 개의 명령어를 동시에 처리하는 방법 [그림 9-2] 파이프라이닝의 동작 원리 [그림 9-3] 병렬 처리의 동작 원리

Section 03 CPU의 기능 명령어 인출 명령어 해독 명령어에 따라 다른 수행기능 캐시나 주기억장치에 저장되어 있는 명령어를 읽어오는 기능 명령어 해독 읽혀진 명령어에 대해 수행해야 할 동작을 결정하기 위해 인출된 명령어 해독 명령어에 따라 다른 수행기능 기능 내용 데이터 인출(Data Fetch) 기능 명령어 실행을 위해 기억장치 또는 입출력장치로부터 데이터를 읽어오는 과정 데이터 처리(Data Process)기능 읽어 온 데이터에 대한 산술적 또는 논리적 연산을 수행 데이터 쓰기(Data Store)기능 데이터 처리과정에서의 수행 결과를 저장하는 기능 [표 9-1] 명령어의 기능

Section 04 CPU의 조직 CPU 내부 구조 연산장치 레지스터 세트 제어장치 내부 CPU 버스

연산장치(Arithmetic and Logic Unit) CPU 내부 구조 연산장치(Arithmetic and Logic Unit) 이동기 : 데이터의 좌우 이동 보수기 : 보수 연산 산술 및 부울 로직 : 산술 연산과 논리 연산 상태 플래그 : ALU 내의 상태 표시(오버플로우, 0나눗셈 등) 레지스터 세트 CPU 내부의 레지스터 집합 레지스터는 컴퓨터의 기억장치들 중 액세스속도가 가장 빠름 제한된 수의 레지스터가 CPU 내부에 존재 특수 목적용과 일반 목적용으로 구분

내부 CPU 버스(internal CPU bus) 제어장치 프로그램에 의해 주어진 연산의 순서대로 실행하기 위해 기억,연산,입출력장치에 제어신호 발생 제어장치의 동작 1단계 : 명령어를 해독 제어장치내의 명령어 레지스터(IR)에 저장 2단계 : 명령어 레지스터에 저장된 명령어를 실행 내부 CPU 버스(internal CPU bus) ALU와 레지스터들간의 데이터 이동을 위한 통로 데이터 선과 제어선으로 구성 외부의 시스템 버스와 연결되지 않음 버퍼레지스터 또는 버스 인터페이스 회로를 통해 외부 시스템 버스와 접속

4단계 CPU 동작 데이터는 주기억장치로부터 레지스터 1번으로 외부 시스템 버스를 통해 연결 제어장치는 레지스터 1과 레지스터 2에 저장되어 있는 데이터를 덧셈하라는 제어신호를 ALU로 전달 ALU 에서는 제어신호에 의해 덧셈을 수행, 그 결과를 누산기에 저장 계산결과는 외부시스템 버스를 통해 주기억장치에 전달 [그림 9-6] CPU의 기본 동작

제어장치의 4단계 기본 동작 주 기억 장치에서 명령어를 읽어서 제어장치 내에 명령어 레지스터로 저장된다. 명령어의 포인터(PC)에는 다음에 실행될 명령어의 주소가 저장된다. 제어장치가 명령어 레지스터의 명령어를 해석한다. 해석된 명령어는 해당되는 제어신호를 발생하게 된다. [그림 9-7] 제어장치의 기본 동작

CPU는 주 기억장치에서 읽어온 명령어와 데이터를 임시 보관하는 장소가 필요 ALU의 처리 결과 임시적 보관장소 필요 레지스터 Section 05 레지스터의 조직 CPU는 주 기억장치에서 읽어온 명령어와 데이터를 임시 보관하는 장소가 필요 ALU의 처리 결과 임시적 보관장소 필요 레지스터 CPU에서 사용되는 임시적인 저장장치 기억장치 계층의 최상위에 위치하며 동작속도가 가장 빠름 고비용으로 용량제한이 있음 사용자에게 보이는 레지스터와 제어 및 상태 레지스터로 구분

사용자에게 보이는 레지스터 어셈블리 프로그램을 위해 사용되는 레지스터 프로그래머가 레지스터의 명칭과 용도를 미리 인지 프로그래머가 레지스터의 명칭과 용도를 미리 인지 일반 목적용 레지스터 여러 가지 용도로 사용, 연산의 피연산자를 저장 데이터 레지스터 데이터 저장에 사용, 누산기(AC:Accmulator) 주소레지스터 특정 주소 지정 방식을 위해 사용 세그먼트 포인터: 세그먼트 시작주소 저장 인덱스 레지스터: 인덱스주소 저장 스택 포인터:스택에 저장되는 번지 수 저장 조건코드 레지스터에 저장된 데이터의 상태 표시:상태 레지스터 부호비트 영(zero)비트 오버플로우 비트

제어 및 상태 레지스터 프로그램 실행 과정에서 CPU 내부적으로 사용되는 레지스터 프로그램 카운터(Program Counter) : 다음 인출할 프로그램의 주소 저장 명령어 레지스터(Instruction Register): 인출하여 실행할 명령어를 저장 기억장치 주소 레지스터(Memory Address Register) : 주소 값을 저장, 주소버스와 직접 연결 기억장치 버퍼 레지스터(Memory Buffer Register) : 데이터를 저장, 데이터버스와 직접 연결 입/출력 주소 레지스터(I/O AR: I/O Address Register) 입/출력 버퍼 레지스터(I/O BR: I/O Buffer Register) 프로그램 상태 단어(Program Status Word): 제어 및 상태레지스터에 저장된 데이터의 상태와 조건을 저장 부호(sign)비트, 영(zero)비트, 올림수(carry)비트, 동등(equal)비트, 오버플로우(overflow)비트, 인터럽트 가능/불가능(interrupt enable/disable)비트 , 슈퍼바이저(supervisor)비트

명령어 인출 사이클(fetch cycle) 명령어 실행 사이클(execute cycle) Section 06 명령어 사이클 명령어 인출 사이클(fetch cycle) 명령어 실행 사이클(execute cycle) [그림 9-9] 명령어 사이클

CPU가 주 기억장치로 부터 명령어를 읽어 오는 단계 명령어 인출 사이클 CPU가 주 기억장치로 부터 명령어를 읽어 오는 단계 프로그램 카운터(PC)는 다음에 인출할 명령어의 주소가 저장 프로세서는 PC가 가리키는 기억장소로부터 명령어를 인출한 후 PC 내용을 증가 인출된 명령어가 명령어 레지스터(IR)로 적재. 프로세서는 명령어를 해석하고, 요구된 동작을 수행 CPU 클럭 마이크로 연산 동작 t0 MAR → PC PC 내용을 MAR로 전송 t1 MBR → M[MAR] PC → PC + 1 해당주소 기억장치의 명령어가 MBR로 적재 PC의 내용에 1을 증가 t2 IR → MBR MBR에 있는 명령어 코드가 IR로 이동 [표 9-2] 인출 사이클의 마이크로 연산

인출 사이클에서 주소와 명령어 흐름 [그림 9-10] 인출 사이클에서 주소와 명령어 흐름

명령어 실행 사이클 명령어 실행의 종류 프로세서와 기억장치 간에 데이터가 전송 프로세서와 I/O 모듈 간에 데이터가 전송 데이터에 대하여 지정된 산술 혹은 논리 연산이 수행 제어(control)동작 점프(jump)와 같이 실행될 명령어의 순서가 변경될 때 사용된다.

덧셈 연산의 실행 사이클(ADD A,(addr) 명령어 실행 사이클 덧셈 연산의 실행 사이클(ADD A,(addr) CPU 클럭 마이크로 연산 동작 t0 MAR → IR(addr) MBR에 저장될 데이터의 기억장치의 주소를 MAR로 전송 t1 MBR → M[MAR] 저장할 데이터를 버퍼 레지스터인 MBR로 이동 t2 AC → AC + MBR MBR 데이터와 AC의 내용을 더하고 결과값을 다시AC에 저장 [표 9-3] ADD 실행 사이클의 마이크로 연산

ADD 명령어 실행 사이클 동안의 정보흐름 [그림 9-11] ADD 명령어 실행 사이클 동안의 정보 흐름

명령어 파이프 라이닝 CPU의 프로그램 처리속도를 높이기 위해 CPU내부 하드웨어를 여러 단계로 나누너 병행처리토록 하는 기술 예) 명령어 수행과 다음 명령어 인출을 동시에 수행 2단계 명령어 파이프라인 4단계 명령어 파이프라인 6단계 명령어 파이프라인 파이프라인에 의한 속도 향상

2단계 명령어 파이프라이닝 인출(fetch stage), 실행(execute stage) 두개의 독립적 파이프라인 모듈로 분리 실행 명령어 처리 속도가 약 2배 향상 처리시간이 동일하지 않으면 2배의 속도 향상을 기대할 수 없다. [그림 9-12] 2단계 명령어 파이프라인과 시간 흐름도

명령어 인출(IF : Instruction Fetch) 명령어 해독(ID : Instruction Decode) 4단계 명령어 파이프라인 명령어 인출(IF : Instruction Fetch) 명령어를 기억장치로부터 인출 명령어 해독(ID : Instruction Decode) 인출된 명령어 해석 오퍼랜드 인출(OF : Operand Fetch) 기억장치로부터 변수 또는 데이터 인출 실행(EX : Execute) 지정된 연산을 수행 2단계 명령어 파이프 라인에 비해 더 빠른 속도

4단계 명령어 파이프 라인과 시간 흐름도 [그림 9-13] 4단계 명령어 파이프라인과 시간 흐름도

FI (Fetch Instruction) DI (Decode Instruction) 6단계 명령어 파이프라인 FI (Fetch Instruction) DI (Decode Instruction) CO (Calculation Operand) FO (Fetch Operand) EI (Execute Instruction) WO (Write Operand) 처리 속도의 향상 최대 6개의 명령어 단계가 동시에 처리

6단계 명령어 파이프 라인과 시간 흐름도 [그림 9-14] 6단계 명령어 파이프라인 시간 흐름도

파이프라인에 의한 속도 향상 파이프라인 단계 수 = k 실행할 명령어들의 수 = N 각 파이프라인 단계가 한 클럭 주기씩 걸린다고 가정 파이프라인에 의한 전체 명령어 실행 시간 T T = k + (N - 1) 명령어를 실행하는데 k 주기 소요 (N - 1)개의 명령어들은 각각 한 주기씩만 소요 만약 파이프라인 되지 않은 경우에는 N개의 명령어들을 실행하는 데는 k × N 주기가 소요

속도 향상의 예 [예] 파이프라이닝의 속도 향상 : 속도향상 = (10 × 4) / 13 ≒ 3.08 배 파이프라인 단계 수 = 4 파이프라인 클럭 = 1 MHz(각 단 계에서의 소요시간 = 1 ㎲)인 경우 첫 번째 명령어 실행에 걸리는 시간 = 4 ㎲ 다음부터는 매 1 ㎲ 마다 한 개씩의 명령어 실행 완료 10개의 명령어 실행 시간 = 4 + (10 - 1) = 13 ㎲ 파이프라이닝의 속도 향상 : 속도향상 = (10 × 4) / 13 ≒ 3.08 배

속도 향상의 예 [예] 파이프라인 단계 수 = 4 명령어의 수 N 증가 N = 100 이라면, Sp = 400 / 103 = 3.88 N = 1000 이라면, Sp = 4000 / 1003 = 3.99 N = 10000 이라면, Sp = 40000 / 10003 = 3.998 N → ∞, Sp = 4 파이프라인 단계수 만큼 속도 증가