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

Similar documents
Microsoft PowerPoint - hy2-12.pptx

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

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

Chapter ...

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

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

PowerPoint 프레젠테이션

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

Computer Architecture

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

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

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

8장 조합논리 회로의 응용

PowerPoint Presentation

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

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - DSD06b_Cont.pptx

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

Computer Architecture

Computer Architecture

PowerPoint 프레젠테이션

hwp

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

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

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

ARM 프로세서 입문

PowerPoint 프레젠테이션

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6397E3131B0AD20B9AEC1A62BC1A4B4E42E687770>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

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

PowerPoint 프레젠테이션

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

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

Microsoft PowerPoint - hy2-12.pptx

ADP-2480

마이크로프로세서 개요

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

PS4000-¼³¸í¼�

Computer Architecture

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

ARM01

슬라이드 1

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

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

OCW_C언어 기초

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

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

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

Microsoft Word - PLC제어응용-2차시.doc

ºÎ·ÏB

Microsoft Word - PIC16x_Section05_CPU_ALU_31005a.doc

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

untitled

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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

Ä¡¿ì³»ÁöÃÖÁ¾

Microsoft PowerPoint - DSD03_verilog3b.pptx

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

슬라이드 1

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft Word - logic2005.doc

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

Microsoft PowerPoint - DSD06c_ISA.pptx

1부. 임베디드시스템

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

API 매뉴얼

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Embedded System

Microsoft PowerPoint - DSD03_verilog3a.pptx

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx

Computer Architecture

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft PowerPoint - 2주차.ppt [호환 모드]

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - 부호기와 복호기.PPT

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - ch11_reg.pptx

<C6F7C6AEB6F5B1B3C0E72E687770>

Microsoft PowerPoint - 15-MARS

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

슬라이드 1

학습목표 ü 01_ 소개 ü 02_ 하드웨어장치의발전 ü 03_ 하드웨어구성요소 ü 04_ 하드웨어의운영체제지원 ü 05_ 캐싱과버퍼링 ü 07_ 응용프로그래밍인터페이스 ü 08_ 컴파일링, 링킹, 로딩 ü 09_ 펌웨어 ü 10_ 미들웨어 2/23

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

Microsoft PowerPoint - Chapter_02.pptx

wire [n-1:0] a, b, c, d, e, f, g, h; wire [n-1:0] x; // internal wires wire [n-1:0] tmp0, tmp1, tmp2, tmp3, tmp4, tmp5; mux_2to1 mux001 (.x(tmp0),.a(a

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

개요 데이터를저장할수있는기억소자 여러개의플립플롭으로구성. 메모리는단순데이터를저장하는소자이지만, 레지스터는저장뿐아니라저장된데이터를처리할수있는기능도있다. 카운터도클록펄스가입력되면미리정해진순서에따라상태가변하는레지스터이다. 카운터와레지스터의차이점 데이터를저장또는이동하는목적으로

C# 언어 사양

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt

PowerPoint 프레젠테이션

3차시.ppt

Transcription:

1 - 전체요약 4. ARM 조직과구현

2 4.1 3 단계파이프라인 ARM 조직 레지스터뱅크 : 레지스터접근을위한 2개의입력포트, 1개의출력포트, 프로그램카운터를위한 1개의입출력포트배럴쉬프터 : ALU 입력전자리이동과회전수행 ALU : 산술연산, 논리연산실행어드레스레지스터 : 메모리주소저장어드레스증가기 : 연속적인메모리주소생성데이터레지스터 : 메모리로부터읽은데이터나저장할데이터를저장명령어디코더 : 명령어해석및분석제어로직 : 명령어실행을위해필요한제어신호생성

3-3단계파이프라인동작 ARM7까지 Fetch, Decode, Execute (Datapath) 의 3단계파이프라인사용 싱글사이클명령어의파이프라인동작 : 각명령어실행을위해 3 사이클이필요 (3-cycle latency), 처리량은 1 사이클당 1 명령어 1 사이클에메모리를한번밖에접근할수없기때문에 STR 과같이메모리 접근이필요한명령어는멀티사이클명령어가됨

4 멀티사이클명령어의 3 단계파이프라인동작 2번째 STR 명령어의어드레스계산사이클동안에제어로직은데이터전달을위한제어신호를생성하여야하므로 3번째명령어는 1 사이클지연, 2번째명령어가데이터를위해메모리접근을하므로 5번째명령어는 1 사이클지연 ( 메모리접근에비례하여소요사이클이결정 )

5 ARM 파이프라인중단이발생하는경우 -PC 동작 r15를첫번째이외의단계에서사용하게되면첫번째단계에서 r15는증가하기때문에잘못된결과를초래할수있음 r15 (PC) 을통해이동할주소를계산하는프로그래머는파이프라인의동작을정확하게파악하여야함 (STR의첫실행사이클에서 r15는 PC+8이읽혀지고두번째실행사이클에서는 PC+12이읽혀짐 ) 어셈블러나컴파일러가변위나 offset를계산하도록하는것이좋음

6 4.2 5단계파이프라인 ARM 조직 - 3단계파이프라인보다높은성능을얻기위해 5단계파이프라인으로조직변경 - 프로그램의명령어수가 N inst, 명령어당평균사이클수가 CPI, 프로세서의클럭주파수가 f clk 일때프로그램실행시간은 T prg = (N inst CPI) / f clk 임 - 프로그램실행시간을줄이는방법 프로세서의클럭주파수증가 : 파이프라인단계를간단하게하여야하고이로인해파이프라인단계가증가함 CPI 감소 : 3단계파이프라인에서멀티사이클명령어를파이프라인개선으로싱글사이클실행으로만들거나파이프라인지연을최대한줄임 - 메모리 bottleneck 3단계파이프라인은모든사이클에서메모리를접근하므로부분적인성능개선이쉽지않음 ( 메모리접근을하지않는단계를추가할필요 ) 한번에전달하는데이터량을증가하거나명령어와데이터메모리를분리 더높은성능을위해 5단계파이프라인도입과메모리를분리 (ARM9TDMI)

7-5 단계파이프라인 Fetch : 명령어메모리에서명령어를 fetch함 Decode : 명령어를해석하고레지스터오퍼랜드를읽음 Execute : 오퍼랜드가 shift되고 ALU 연산이실행, 명령어가 load, store이면 ALU에서메모리주소를계산함다중데이터이동명령어를위한주소증가하드웨어추가 Buffer/data : 데이터메모리접근하고 ALU 결과를임시로 buffer에저장 Write-back : ALU 결과와메모리데이터를레지스터에저장

8 - 데이터전방전달 (forwarding) 파이프라인이 5단계로늘어나면명령어실행이 1사이클에서 3사이클로증가하므로데이터해저드가발생 데이터해저드에의한파이프라인지연을없애기위해전방전달을위한하드웨어추가 결과가레지스터에저장되기이전에다음명령어의소스오퍼랜드를위해명령어실행흐름의반대방향으로데이터를전달 앞명령어가적재명령어이고다음명령어에서데이터해저드가발생하면 1 사이클지연이필요 ( 메모리데이터는 buffer/data 단계에서이용할수있으므로 ADD 명령어는 1 사이클지연필요 )

9 파이프라인지연을없애기위해위의형태의코드를작성하지말아야하고컴파일러도위의형태의코드를생성하지않아야함 -PC 생성 1번째단계에서 PC는 PC+4로증가하고 decode 단계의 r15에저장 Decode 단계에서레지스터 r15를읽으면다음명령어의 PC+4, 즉현재명령어의 PC+8이읽혀짐, 하드웨어추가없이 3단계파이프라인과동일 4.3 ARM 명령어실행 - 각명령어가데이터패스에서어떻게실행되는지를파악하는것이필요 데이터처리명령어는하나의실행사이클이필요하지만저장명령어 (STR) 은 2 사이클실행이필요하고적재명령어 (LDR) 은 3 사이클실행필요 Branch 명령어는 3 사이클실행이필요한데첫번째사이클에서 branch 주소를계산하고두번째사이클에서필요하면복귀주소를 r14에저장하고마지막사이클에서 r14를 PC+8에서 PC+4로조정하면서 refilling을완료

- 데이터처리명령어실행 (3 단계파이프라인 ) 10

- 데이터이동명령어 STR 실행 (3 단계파이프라인 ) 11

- 분기명령어실행 (3 단계파이프라인 ) 12

13 4.4 ARM 구현 -Adder 설계 32 비트덧셈시간은데이터패스의사이클시간, 최대클럭주파수, 프로세서성능에많은영향을줌 ARM은연속되는버전에서 adder의성능을연속적으로개선 ARM1 ripple-carry adder (RCA) : Carry 전달을위해 32 게이트지연필요

14 클럭주파수를증가시키기위해 ARM2 는 4 비트 carry look-ahead (CLA) 사용 (Carry 전달을위해 8 게이트지연필요, ARM1 보다성능개선 ) G(i) = A(i) B(i) P(i) = A(i)+B(i) C(i+1) = G(i) + P(i) C(i) ALU 는덧셈뿐만아니라논리연산, 메모리주소계산, branch 여부계산 등을수행하여야함

ARM2 ALU 로직과기능코드 15

좀더나은성능을위해 ARM6 는 carry-select adder 를사용 (carry 입력이 0 이거나 1 모두 sum 을계산한후정확한 carry 입력에의해결과를선택 ) 16 덧셈출력을위해 O[log 2 [word width]) 지연으로덧셈시간은감소하지만 실리콘면적이증가함

ARM6 carry-select adder 는산술기능과논리기능을위해하나의형태로 통합할수없어 ARM6 의 ALU 는 adder 와논리장치가분리되어있음 17

18 C와 V 플래그는 adder에서발생, N 플래그는결과의부호비트, Z 플래그는결과에 32 비트 NOR 게이트연결 ARM9TDMI는더나은성능을위해 carry arbitration adder를사용하는데매우빠른병렬논리구조를사용하여모든중간 carry값을계산 CLA의 propagate-generate 정보를 u, v의변수로인코딩하고합의모든비트에서 u, v를계산 Carry 입력이 1 이면 u 가 carry 출력이되고 carry 입력이 0 이면 v 가 carry 출력이됨

19 - Barrel Shifter ALU 동작과직렬로자리이동동작을수행하므로 barrel shifter의 shifter 시간은데이터패스사이클시간에직접적인영향을줌 Shifter 지연을최소화하기위해 ARM은 32 32의 cross-bar 스위치행렬을입력에대한출력을조정하기위해사용

20 Left shift와 right shift를위해하나의대각 wire가 On이됨 Rotate right를위해right shift를위한대각wire와complementary left shift를위한대각 wire가 On이됨 (4 4 cross-bar 스위치행렬에서 1 비트right shift는 right 1 과 left 3 (3=4-1) 대각 wire를 On) Arithmetic shift right는부호확장을위한독립적인로직을사용 - 곱셈기설계 정수형곱셈을위해하드웨어를지원 초기 ARM Core들은단지 32 비트결과를저장하는곱셈과곱셈-적재명령어를위한저비용곱셈하드웨어를제공 최근 ARM Core들은 64 비트결과를저장하는높은성능의하드웨어제공 정수형곱셈기는 barrel shifter, ALU, 승수 shifter 레지스터, 곱셈알고리즘제어로직등에의해간단하게구현가능 디지털신호처리를위해곱셈기의성능은매우중요, DSP 코어는특히곱셈기의성능을매우강화하여디지털연산시간을효율적으로줄임

21 - 제어로직구조 PLA 는명령어의 opcode 와상태에따라데이터패스의각제어신호를출력 PLA 는약 14 개입력, 40 개출력을가지고 cycle count 는 finite state 기기 최근 ARM Core 는두개의 PLA 를사용 ( 시간이중요한제어신호는작고 빠른 PLA 를사용하고다른일반제어신호는크고느린 PLA 를사용 )

22 4.5 ARM coprocessor interface - 하드웨어 coprocessor의추가로인한명령어의확장을지원 - Coprocessor 구조 16개까지의 coprocessor를지원하고각 coprocessor는합당한크기의 16 개까지의레지스터를가질수있음 Coprocessor도 load-store 구조를가짐 ( 내부레지스터사이의동작실행, 외부메모리와 load, store 명령, ARM 레지스터와의데이터이동 ) Coprocessor는높은속도실행과높은성능을위해 on-chip으로구현 - ARM7TDMI coprocessor interface ARM7TDMI coprocessor는 ARM과의명령어실행을원활하게하기위해 handshake 신호를사용 /cpi (ARM coprocessor) : ARM이 coprocessor 명령어를확인 cpa (coprocessor ARM) : 명령어를실행할수있는 coprocessor 존재유무를 ARM에알림 (CoProcessor Absent, 없으면 high)

23 cpb (coprocessor ARM) : 명령어를바로실행할수있는지의여부를 ARM에알림 ((CoProcessor Busy, 없으면 high) -Handshake 출력 조건실행 coprocessor 명령어에서조건코드실패로명령어를실행할필요가없는경우 ARM은명령어를실행하지않게되므로 /cpi를생성안함 ARM이명령어실행을결정 (/cpi=low) 했지만 coprocessor 부재인경우 (cpa= high) ARM은 undefined trap을실행하여 trapped 명령 emulation함 ARM이명령어실행을결정하고 coprocessor가명령어를받았지만명령어실행을바로할수없을때 (cpa=low, cpb=high) ARM은cpb이high 일까지기다리고그동안인터럽트가발생하면 coprocessor 명령실행을연기 ARM이명령어실행을결정하고 coprocessor가명령어실행 - 데이터이동 ARM은어드레스를생성하고 coprocessor는데이터길이, 이동종료등을결정, 데이터이동동안인터럽트는허용되지않고최대 16 워드이동가능