Computer Architecture

Similar documents
Microsoft PowerPoint - hy2-12.pptx

Computer Architecture

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

PowerPoint 프레젠테이션

Computer Architecture

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

Microsoft PowerPoint - hy2-12.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

슬라이드 1

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

마이크로프로세서 개요

Microsoft PowerPoint - 사본 - OAS04-사무자동화 기술(HW-CPU).ppt

PowerPoint 프레젠테이션

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6397E3131B0AD20B9AEC1A62BC1A4B4E42E687770>

PowerPoint Presentation

PowerPoint 프레젠테이션

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

슬라이드 1

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

Microsoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt

슬라이드 1

정보보안 개론과 실습:네트워크

<C0FCC0DAB0E8BBEAB1E220B1B8C1B620377E39B0AD20B1B3BEC82836BFF C0CF20B0ADC0C7292E687770>

PowerPoint Presentation

Chapter ...

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

3차시.ppt

Microsoft PowerPoint - DSD06c_ISA.pptx

슬라이드 1

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

Microsoft PowerPoint os2.ppt [호환 모드]

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Computer Architecture

1부. 임베디드시스템

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

Microsoft PowerPoint - hw8.ppt [호환 모드]

학습 목차 r컴퓨터에서 마이크로 프로세서 유형보기 r어셈블리 프로그램의 이해 r인터럽트(interrupt) r명령어 세트 r주소지정 방식 컴퓨터 구조 CPU 명령어

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

hwp

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

Microsoft PowerPoint - 09-컴구조-5-프로세서

마이크로세서 강의자료

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

Microsoft PowerPoint - 30.ppt [호환 모드]

ºÎ·ÏB

Introduction to LMC

Microsoft PowerPoint - 강의자료2_Chap2,3 [호환 모드]

Computer Architecture

Microsoft PowerPoint - hy1.pptx

<C0FCC0DAB0E8BBEAB1E220B1B8C1B620C3D6B1D920B1E2C3E2B9AEC1A B1B3BEC82E687770>

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - 15-MARS

Microsoft PowerPoint - a2.ppt [호환 모드]

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - M08_CPUcontrol.ppt [호환 모드]

마프

PRO1_09E [읽기 전용]

Microsoft PowerPoint - a6.ppt [호환 모드]

주기억장치에접근할때 DMA 제어기는 CPU 의 Bus Line 을이용하여 Cycle Stealing 을한다. Cycle Stealing 은 DMA 로부터주기억장치로데이터전송요구가일어났을때만 DMA 가버스의사용권을일시적으로 CPU 로부터빼앗는전송방식이다. 3 중앙처리장치

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

ATmega128

PowerPoint 프레젠테이션

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint - LN_1_ARM_CPU_0.ppt [호환 모드]

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

ARM 프로세서 입문

<4D F736F F F696E74202D20C1A4BAB8C3B3B8AEB1E2BBE7BBEABEF7B1E2BBE72DC7CAB1E2B1B3C0E B3E229205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

리눅스 프로세스 관리

Microsoft PowerPoint - 강의2.ppt

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

구문 분석

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

untitled

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

9

PowerPoint Presentation

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<BFE4C1A1C1A4B8AEC1FD28C0FCC0DAB0E8BBEAB1E2B1B8C1B632292E687770>

Microsoft PowerPoint - 권장 사양

8장 조합논리 회로의 응용

<4D F736F F F696E74202D20BBE7BABB202D205BC7D9BDC9BFE4BEE05DC1A4BAB8C3B3B8AEB1E2BBE7C7CAB1E2B1B3C0E728B5A5C0CCC5CDBAA3C0CCBDBA292E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - polling.pptx

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

<C0FCC0DAB0E8BBEAB1E2C1B6C1F7C0C0BFEBB1E2BBE7C7CAB1E2B1E2C3E2B9AEC1A B3E23038BFF93037C0CF41C7FC29B4D9B4DC2E687770>

03차시학습내용(하드웨어1)

Transcription:

CPU 의구조와기능 CPU 의기본구조 명령어실행과실행사이클 명령어파이프라이닝

CPU 의기능 2 명령어인출 (Instruction Fetch) 기억장치로부터명령어읽기 명령어해독 (Instruction Decode) 수행해야할동작을결정하기위하여명령어를해독 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) 명령어실행에필요한데이터를기억장치혹은 I/O 장치로부터읽어온다 데이터처리 (Data Process) 데이터에대한산술적혹은논리적연산을수행 데이터쓰기 (Data Store) 수행한결과를저장 명령어에따라필요한경우에만수행 IT 융합공학부컴퓨터구조 2

2.1 CPU 의기본구조 3 산술논리연산장치 (Arithmetic and Logical Unit: ALU) 각종산술연산들과논리연산들을수행하는회로들로이루어진하드웨어모듈 산술연산 : +, -,, 논리연산 : AND, OR, NOT, XOR 등 레지스터세트 (Register Set) 액세스속도가가장빠른기억장치 CPU 내부에포함할수있는레지스터들의수가제한됨 ( 특수목적용레지스터들과적은수의일반목적용레지스터들 ) 제어유니트 (Control Unit) 프로그램코드 ( 명령어 ) 를해석하고, 그것을실행하기위한제어신호들 (control signals) 을순차적으로발생하는하드웨어모듈 CPU 내부버스 (CPU internal bus) ALU와레지스터들간의데이터이동을위한데이터선들과제어유니트로부터발생되는제어신호선들로구성된내부버스외부의시스템버스들과는직접연결되지않으며, 반드시버퍼레지스터들혹은시스템버스인터페이스회로를통하여시스템버스와접속 IT 융합공학부컴퓨터구조 3

CPU 의내부구성요소 ( 계속 ) 4 IT 융합공학부컴퓨터구조 4

2.2 명령어실행 5 명령어사이클 (instruction cycle) CPU가한개의명령어를실행하는데필요한전체처리과정 CPU가프로그램실행을시작한순간부터전원을끄거나오류가발생하여중단될때까지반복 두개의부사이클 (subcycle) 들로분리 인출사이클 (fetch cycle) CPU 가기억장치로부터명령어를읽어오는단계 실행사이클 (execution cycle) 읽어온명령어를해석하고실행하는단계 IT 융합공학부컴퓨터구조 5

명령어실행에필요한 CPU 내부레지스터들 6 프로그램카운터 (Program Counter: PC) 다음에인출할명령어의주소를가지고있는레지스터 각명령어가인출된후에는자동적으로일정크기 ( 한명령어길이 ) 만큼증가 분기 (branch) 명령어가실행되는경우에는목적지주소로갱신 누산기 (Accumulator: AC) 데이터를일시적으로저장하는레지스터. 레지스터의길이는 CPU 가한번에처리할수있는데이터비트수 ( 단어길이 ) 와동일 명령어레지스터 (Instruction Register: IR) 가장최근에인출된명령어코드가저장되어있는레지스터 기억장치주소레지스터 (Memory Address Register: MAR) PC에저장된명령어주소가시스템주소버스로출력되기전에일시적으로저장되는주소레지스터기억장치버퍼레지스터 (Memory Buffer Register: MBR) 기억장치에쓰여질데이터혹은기억장치로부터읽혀진데이터를일시적으로저장하는버퍼레지스터 IT 융합공학부컴퓨터구조 6

데이터통로가표시된 CPU 내부구조 7 IT 융합공학부컴퓨터구조 7

2.2.1 인출사이클 인출사이클의마이크로연 산 (micro-operation) 8 t 0 : MAR PC t 1 : MBR M[MAR], PC PC + 1 t 2 : IR MBR 단, t 0, t 1 및 t 2 는 CPU 클록 (clock) 의주기 [ 예 ] CPU 클록 = 1GHz ( 클럭주기 = 1ns ) 인출사이클 : 1ns x 3 = 3ns소요 IT 융합공학부컴퓨터구조 8

2.2.2 실행사이클 CPU 는실행사이클동안에명령어코드를해독 (decode) 하고, 그결과에따라필요한연산들을수행 CPU 가수행하는연산들의종류 데이터이동 CPU 와기억장치간혹은 I/O 장치간에데이터를이동 9 데이터처리 : 데이터에대하여산술혹은논리연산을수행 데이터저장 연산결과데이터혹은입력장치로부터읽어들인데이터를기억장치에저장 프로그램제어 : 프로그램의실행순서를결정 실행사이클에서수행되는마이크로 - 연산들은명령어의연산코드 (op code) 에따라결정됨 기본적인명령어형식의구성 연산코드 (operation code) CPU 가수행할연산을지정 오퍼랜드 (operand) 명령어실행에필요한데이터가저장된주소 (addr) IT 융합공학부컴퓨터구조 9

[ 명령어예 ] 10 LOAD addr 명령어 명령어기억장치에저장되어있는데이터를 CPU 내부레지스터인 AC로이동하는명령어 t 0 : MAR IR(addr) t 1 : MBR M[MAR] t 2 : AC MBR STA addr 명령어 AC 레지스터의내용을기억장치에저장하는명령어 t 0 : MAR IR(addr) t 1 : MBR AC t 2 : M[MAR] MBR ADD addr 명령어 기억장치에저장된데이터를 AC의내용과더하고, 그결과는다시 AC에저장하는명령어 t 0 : MAR IR(addr) t 1 : MBR M[MAR] t 2 : AC AC + MBR JUMP addr 명령어 오퍼랜드 (addr) 가가리키는위치의명령어로실행순서를변경하는분기 (branch) 명령어 t 0 : PC IR(addr) IT 융합공학부컴퓨터구조 10

어셈블리프로그램실행과정의예 11 연산코드에임의의정수배정 LOAD : 1 STORE : 2 ADD : 5 JUMP : 8 [ 어셈블리프로그램의예 ] IT 융합공학부컴퓨터구조 11

어셈블리프로그램실행과정의예 ( 계속 ) 12 100 번지의첫번째명령어코드가인출되어 IR 에저장 250 번지의데이터를 AC 로이동 PC = PC + 1 = 101 IT 융합공학부컴퓨터구조 12

어셈블리프로그램실행과정의예 ( 계속 ) 13 두번째명령어가 101 번지로부터인출되어 IR 에저장 AC 의내용과 251 번지의내용을더하고, 결과를 AC 에저장 PC 의내용은 102 로증가 IT 융합공학부컴퓨터구조 13

어셈블리프로그램실행과정의예 ( 계속 ) 14 세번째명령어가 102 번지로부터인출되어 IR 에저장 AC 의내용이 251 번지에저장 PC 의내용은 103 으로증가 IT 융합공학부컴퓨터구조 14

어셈블리프로그램실행과정의예 ( 계속 ) 15 네번째명령어가 103 번지로부터인출되어 IR 에저장 분기될목적지주소, 즉 IR 의하위부분 (170) 이 PC 로적재 ( 다음명령어인출사이클에서는 170 번지의명령어인출 ) IT 융합공학부컴퓨터구조 15

2.2.3 인터럽트사이클 (interrupt cycle) 16 인터럽트 프로그램실행중에 CPU의현재처리순서를중단시키고다른동작을수행하도록요구하는시스템동작 외부로부터인터럽트요구가들어오면 CPU 는원래의프로그램수행을중단하고, 요구된인터럽트를위한서비스프로그램을먼저수행 인터럽트서비스루틴 (interrupt service routine: ISR) 인터럽트를처리하기위하여수행되는프로그램루틴 IT 융합공학부컴퓨터구조 16

인터럽트처리과정 인터럽트가들어왔을때 CPU 는 어떤장치가인터럽트를요구했는지확인 => 해당 ISR을호출 17 서비스가종료되면중단되었던원래 프로그램의수행계속 CPU 인터럽트처리의세부동작 1 현재의명령어실행을끝낸즉시, 다음 에실행할명령어의주소 (PC 의내용 ) 를스 택 (stack) 에저장 일반적으로스택은주 기억장치의특정부분 2 ISR을호출하기위하여그루틴의시작주소를 PC에적재. 시작주소는인터럽 트를요구한장치로부터전송되거나미리정해진값으로결정 자세한사항은 7.4 절에서설명 IT 융합공학부컴퓨터구조 17

인터럽트사이클의마이크로연산 18 t 0 : MBR PC t 1 : MAR SP, PC ISR의시작주소 t 2 : M[MAR] MBR 단, SP는스택포인터 (stack pointer). IT 융합공학부컴퓨터구조 18

인터럽트사이클의마이크로연산 [ 예 ] 19 현재 SP = 999 인터럽트서비스루틴의시작주소는 650 번지라고가정 100 LOAD 250 <= 인터럽트발생 101 ADD 251 102 STA 251 103 JUMP 170 IT 융합공학부컴퓨터구조 19

다중인터럽트 (multiple interrupt) 20 인터럽트서비스루틴을수행하는동안에다른인터럽트발생 다중인터럽트의처리방법 ( 두가지 ) 1 CPU가인터럽트서비스루틴을처리하고있는도중에는새로운인터럽트요구가들어오더라도 CPU가인터럽트사이클을수행하지않도록방지 인터럽트플래그 (interrupt flag) 0 : 인터럽트불가능 (interrupt disabled) 상태 시스템운영상중요한프로그램이나도중에중단할수없는데이터입출력동작등을위한인터럽트를처리하는데사용 2 인터럽트의우선순위를정하고, 우선순위가낮은인터럽트가처리되고있는동안에우선순위가더높은인터럽트가들어온다면, 현재의인터럽트서비스루틴의수행을중단하고새로운인터럽트를처리 IT 융합공학부컴퓨터구조 20

2.2.4 간접사이클 (indirect cycle) 명령어에포함되어있는주소를이용하여, 그명령어실행에필요한데이터의주소를인출하는사이클 간접주소지정방식 (indirect addressing mode) 에서사용 21 인출사이클과실행사이클사이에위치 간접사이클에서수행될마이크로-연산 t 0 : MAR IR(addr) t 1 : MBR M[MAR] t 2 : IR(addr) MBR 인출된명령어의주소필드내용을이용하여기억장치로부터데이터의실제주소를인출하여 IR의주소필드에저장 IT 융합공학부컴퓨터구조 21

2.3 명령어파이프라이닝 (instruction pipelining) CPU 의프로그램처리속도를높이기위하여 CPU 내부하드웨어를여러단계로나누어동시에처리하는기술 22 2- 단계명령어파이프라인 (two-stage instruction pipeline) 명령어를실행하는하드웨어를인출단계 (fetch stage) 와실행단계 (execute stage) 라는두개의독립적인파이프라인모듈로분리 두단계들에동일한클록을가하여동작시간을일치시키면, 첫번째클록주기에서는인출단계가첫번째명령어를인출 두번째클록주기에서는인출된첫번째명령어가실행단계로보내져서실행되며, 그와동시에인출단계는두번째명령어를인출 2-단계파이프라인을이용하면명령어처리속도가두배향상 ( 일반적으로단계수만큼의속도향상 ) 문제점 : 두단계의처리시간이동일하지않으면두배의속도향상을얻지못함 ( 파이프라인효율저하 ) 해결책 : 파이프라인단계의수를증가시켜각단계의처리시간을같게함 파이프라인단계의수를늘리면전체적으로속도향상이더높아짐 IT 융합공학부컴퓨터구조 22

4- 단계명령어파이프라인 명령어의처리를 4단계로분리처리속도가이론적으로 4배빨라짐 23 명령어인출 (IF) 단계 다음명령어를기억장치로부터인출 명령어해독 (ID) 단계 해독기 (decoder) 를이용하여명령어를해석 오퍼랜드인출 (OF) 단계 기억장치로부터오퍼랜드를인출 실행 (EX) 단계 지정된연산을수행 IT 융합공학부컴퓨터구조 23

파이프라인에의한전체명령어실행시간 파이프라인단계수 = k 실행할명령어들의수 = N 각파이프라인단계가한클럭주기씩걸린다고가정한다면 24 파이프라인에의한전체명령어실행시간 Tp : Tp = k + (N - 1) 즉, 첫번째명령어를실행하는데 k 주기가걸리고, 나머지 (N - 1) 개의명령어들은각각한주기씩만소요 파이프라인되지않은경우의 N 개의명령어들을실행시간 T : T1 = k N 파이프라인에의한속도향상 (SPeedup) T1 Sp T P k N k ( N 1) IT 융합공학부컴퓨터구조 24

[ 예제 2-1] 파이프라인에의한속도향상 25 파이프라인단계수 = 4, 파이프라인클록 = 1GHz ( 각단계에서의소요시간 = 1 ns) 10 개의명령어를실행하는경우의속도향상은? < 풀이 > 첫번째명령어실행에걸리는시간 = 4 ns 다음부터는매 1 ns 마다한개씩의명령어실행완료 10 개의명령어실행시간 = 4 + (10-1) = 13 ns 속도향상 = (10 4) / 13 3.08 배 [ 예 ] k = 4 일때, N = 100 이라면, Sp = 400/103 = 3.88 N = 1000 이라면, Sp = 4000/1003 = 3.988 N = 10000 이라면, Sp = 40000/10003 = 3.9988 N 라면, Sp = 4 IT 융합공학부컴퓨터구조 25

파이프라인의효율저하요인들 모든명령어들이파이프라인단계들을모두 거치지는않는다 26 어떤명령어에서는오퍼랜드를인출할 필요가없지만, 파이프라인의하드웨어를단순화시키기위해서는모든명령어가네단계들을모두통과하도록해야한다 파이프라인의클록은처리시간이가장오래걸리는단계를기준으로결정된다 IF 단계와 OF 단계가동시에기억장치를액세스하는경우에, 기억장치충돌 (memory conflict) 이일어나면지연이발생한다조건분기 (conditional branch) 명령어가실행되면, 미리인출하여처리하던명령어들이무효화된다 IT 융합공학부컴퓨터구조 26

분기발생에의한성능저하의최소화방법 분기예측 (branch prediction) 분기가일어날것인지를예측, 그에따라명령어를인출하는확률적방법 27 분기역사표 (branch history table) 이용하여최근의분기결과를참조 분기목적지선인출 (prefetch branch target) : 조건분기가인식되면, 분기명령어의다음명령어뿐만아니라분기의목적지명령어도함께인출하는방법루프버퍼 (loop buffer) 사용 : 파이프라인의명령어인출단계에포함되어있는작은고속기억장치인루프버퍼에가장최근인출된 n개의명령어들을순서대로저장해두는방법지연분기 (delayed branch) : 분기명령어의위치를재배치 => 분기명령어앞의명령어와자리교환 IT 융합공학부컴퓨터구조 27

상태레지스터 (status register) 조건분기명령어가사용할조건플래그 (condition flag) 들저장 28 부호 (S) 플래그 : 직전에수행된산술연산결과값의부호비트를저장 영 (Z) 플래그 : 연산결과값이 0 이면, 1 올림수 (C) 플래그 : 덧셈이나뺄셈에서올림수 (carry) 나빌림수 (borrow) 가발생한경우에 1로세트 동등 (E) 플래그 : 두수를비교한결과가같게나왔을경우에 1 로세트 오버플로우 (V) 플래그 : 산술연산과정에서오버플로우가발생한경우에 1 로세트 인터럽트 (I) 플래그 인터럽트가능 (interrupt enabled) 상태이면 0 로세트 인터럽트불가능 (interrupt disabled) 상태이면 1 로세트 슈퍼바이저 (P) 플래그 : CPU 의실행모드가슈퍼바이저모드 (supervisor mode) 이면 1 로세트, 사용자모드 (user mode) 이면 0 로세트 IT 융합공학부컴퓨터구조 28

2.3.3 슈퍼스칼라 (Superscalar) 29 CPU의처리속도를더욱높이기위하여내부에두개혹은그이상의명령어파이프라인들을포함시킨구조매클록주기마다각명령어파이프라인이별도의명령어를인출하여동시에실행할수있기때문에, 이론적으로는프로그램처리속도가파이프라인의수만큼향상가능파이프라인의수 = m : m-way 슈퍼스칼라 2-way 슈퍼스칼라의명령어실행흐름도 IT 융합공학부컴퓨터구조 29

슈퍼스칼라에의한속도향상 (speedup: Sp) 단일파이프라인에의한실행시간 (N : 실행할명령어수 ) 30 m-way 슈퍼스칼라에의한실행시간 속도향상 명령어수 N, Sp m 슈퍼스칼라의속도저하 (Sp < m) 요인 : 명령어들간의데이터의존관계 하드웨어 (ALU, 레지스터, 등 ) 이용에대한경합발생 동시실행가능한명령어수 < m < 해결책 > 명령어실행순서재배치 명령어들간의데이터의존성제거 하드웨어추가 ( 중복 ) 설치 기억장치및레지스터에대한경합감소 IT 융합공학부컴퓨터구조 30

2.3.4 듀얼 - 코어및멀티 - 코어 CPU 코어 (core) : 명령어실행에필요한 CPU 내부의핵심 ( 명령어실행 ) 하드웨어모듈 31 멀티 - 코어프로세서 (multi-core processor): 여러개의 CPU 코어들을하나의칩에포함시킨프로세서 듀얼 - 코어 (dual-core): 두개의 CPU 코어포함 쿼드 - 코어 (quad-core): 네개의 CPU 코어포함 칩 - 레벨다중프로세서 (chip-level multiprocessor) 혹은단일 - 칩다중프로세서 (multiprocessor-on-a-chip) 이라고도부름 각 CPU 코어는별도의 H/W 모듈로이루어지며, 시스템버스와캐시만공유 프로그램실행에있어서각코어는 ( 슈퍼스칼라의각파이프라인보다 ) 더높은독립성가짐 : 멀티 - 태스킹 (multi-tasking) 혹은멀티 - 스레딩 (multi-threading) IT 융합공학부컴퓨터구조 31