Microsoft PowerPoint - 강의2.ppt

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

ARM01

hlogin2

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - hy2-12.pptx

hwp

APOGEE Insight_KR_Base_3P11

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

Deok9_Exploit Technique

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

untitled

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

ºÎ·ÏB

인켈(국문)pdf.pdf

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

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

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

T100MD+

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

歯15-ROMPLD.PDF

Integ

KDTÁ¾ÇÕ-1-07/03

PowerPoint Presentation

김기남_ATDC2016_160620_[키노트].key

Microsoft PowerPoint - hy2-12.pptx

IDA 5.x Manual hwp

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

DE1-SoC Board

ARM Reverse Engineering

구문 분석

KDTÁ¾ÇÕ-2-07/03

한글사용설명서

untitled


PowerPoint 프레젠테이션

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

9

hlogin7

BJFHOMINQJPS.hwp

(Microsoft PowerPoint - 1-2\300\345)

Microsoft Word - FunctionCall

No Slide Title

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

<4D F736F F D20B0B6B3EBC6AE33C3E2BDC3C8C45FC3D6C1BE5F2D2E646F63>

Microsoft Word - JAVS_UDT-1_상세_메뉴얼.doc

Oracle9i Real Application Clusters

마프

1217 WebTrafMon II

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

Microsoft Word - ExecutionStack

Coriolis.hwp

을 할 때, 결국 여러 가지 단어를 넣어서 모두 찾아야 한다는 것이다. 그 러나 가능한 모든 용어 표현을 상상하기가 쉽지 않고, 또 모두 찾기도 어 렵다. 용어를 표준화하여 한 가지 표현만 쓰도록 하여야 한다고 하지만, 말은 쉬워도 모든 표준화된 용어를 일일이 외우기는

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

=

Computer Architecture

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

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

Lectures for 2nd Edition

PowerPoint 프레젠테이션

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

public key private key Encryption Algorithm Decryption Algorithm 1

1

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

6주차.key

마이크로프로세서 개요

C# Programming Guide - Types

MAX+plus II Getting Started - 무작정따라하기

Chapter ...

歯AG-MX70P한글매뉴얼.PDF

강의10

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

User Guide

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

Microsoft PowerPoint - DSD06c_ISA.pptx

Microsoft PowerPoint - Master-ChiWeon_Yoon.ppt

sw $6,50($1) I3 If register read/write can be done in one cycle, only 2 s are needed. (Both are correct) lw $1,40($6) I1 add $6,$2,$2 I2 sw $6,50($1)

슬라이드 1

MicrocontrollerAcademy_Lab_ST_040709

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

PCServerMgmt7

SRC PLUS 제어기 MANUAL

슬라이드 1

solution map_....

Chapter 2

untitled

PRO1_09E [읽기 전용]

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

< B3E2C1A632C8B8BFF6B5E531B1DE42C7FC2E687770>

Microsoft PowerPoint - eSlim SV [080116]

wp1_ hwp

Microsoft PowerPoint - 15-MARS

2005CG01.PDF

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Microsoft Word - KIS_Touchscreen_5Apr11_K_2.doc

^ Pyo Young

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - eSlim SV [ ]

Transcription:

Chap 2. Embedded Processors 서경대학교컴퓨터공학과교수이광엽 kylee@skuniv.ac.kr

Embedded Processors Embedded processors 발전 Microprocessors 발전 better fabrication technology standalone microcontrollers integrated processors embedded design external memory Processor 선택시 trade-offs 를이해할수있도록다양한 processor 의장단점을파악하는것이목적 기본적으로 4가지구조로분류 8 bit accumulator, 16/32 bit CISC, RISC, DSP

Moore s Law

Embedded Processors Processor life history Embedded processor는 20년정도의 life cycle을갖는반면 computer processor는 3년이 life cycle

Register Register구조 -> 명령어구조 -> Microprocessor 구조 Register 분류 ( 저장하는데이터의종류에따라 ) Data Register ex) Accumulator, Memory Data Register Address Register ex) Program counter, Stack pointer, index Status Register : status flag 저장 Instruction Register : 프로그램수행을위한명령어저장 CISC구조와 RISC 구조에따라 Register 역할이다름 CISC구조는고유기능이정해져있는 Special Register 구조 RISC구조는범용으로사용할수있는 General Register 구조

8bit accumulator processors Register models Motorola MC6800 에서대표적인 8비트구조살펴봄 2개의 8bit accumulators : storing data, arithmetic operations 16bit program counter, stack pointer, address indexing Reg.

8bit accumulator processors Register laden RISC구조와달리적은수를갖지만 index register, stack pointer 등의특징이있다. Index register는 Pointer로써동작하며 address를위해추가적으로소요되는레지스터를줄일수있다. Stack pointer : subrountine jumps, interrupts 발생시 return address 와같은정보저장및 local data storage로사용됨 8bit data restrictions Unsigned resolution : 256 data value Higher resolution이필요한분야는 16bits data로높임, 이경우 multiple bus access가요구됨, 연산을위해서는몇개의연산명령어가사용됨

8bit accumulator processors 16bit by 16bit multiply

8bit accumulator processors Addressing memory 초기에는주로 assembler로응용프로그램이개발되고메모리가격이비싸기때문에 64Kbyte(16bit address) 가충분한크기 점차적으로 CP/M과같은 O.S 와고급언어를이용한개발로메모리크기에한계가발생 해결방법 : bank switching, program overlay Bank switching(pp242-244) : bank bits를추가하여메모리선택을확장 (programming model, address space변화없음 ) Program overlay(pp214) : 실행메모리보다큰응용프로그램실행가능, page단위분할하여메모리와 mass storage 사이에서 swap을수행

8bit accumulator processors System integrity Data와 program을구별하는 partition이없는구조에서는 software bug가전체시스템을오동작하도록한다. Index Pointer의오류로인하여 data가 program을 overwrite

Example 8 bit architecture Z80 Zilog 사에서개발되었으며 Intel 8080 에기반을두고있다. 8080 명령어와호환이되며추가적으로확장명령어가있다. 전체 158 개명령어가운데 78 개명령어가 8080 명령어이다. Pinout 에 RFSH, BUSRQ, BUSAK, MREQ 가포함 Accumulator, 6 개의 8 bit registers 로구성되며 3 개의 16 bit register 로변형 이외에 stack pointer, program counter, 2 개의 index registers PSW(Program status word) 레지스터 : F register General register B, C, D, E, H, L Interrupt vector register (IV) : interrupt vector 를제공 Memory refresh register (MR) : on-chip DRAM refresh circuit

Example 8 bit architecture Z80 programming model 6개의 8 bit register를 3 쌍의 16 bit register 로구성하여 data storage와 address pointer로사용 Main register set, alternate register set 가운데한번에한 set만사용가능하며 EXX 명령어를이용전환

Index Register Z80-CPU는인덱스레지스터 (index register) 로 16비트의레지스터 2개, 즉 IX와 IY를가지고있다. 인덱스라는명칭이뜻하듯이레지스터에메모리의번지를써넣어줌으로써그번지를중심으로하여여러가지번지를간접적으로지정할수있다. 예를들어, 4000H 번지로부터시작하는데이터테이블이있다고가정하자. 이때테이블의선두번지4000H를IX( 또는IY) 에써넣어두고, 선두에서 2번째번지이면 (1X+2) 와같이나타낸다. 이와같이하면만일데이터테이블전체가 8000H 번지를선두로하여다른번지에그대로바꿔쓰기한경우라도, IX의값만을 8000H로정정하여줌으로써프로그램중의 (IX+2) 는다시바꿔쓰기할필요가없게된다. 이때, 인덱스레지스터에써넣어준번지에서몇번지떨어져있는가를나타내는번지수를디스플레이스먼트 (displacement; 치환수, 이동수, 편차 ) 라고한다.

Example 8 bit architecture Z80 programming model MC6800과는달리 memory mapped I/O를사용하지않는다. 8080과같은 port 개념을사용한다. Address 하위 8bit와 IORQ신호가결합하여외부장치 Access I/O port instruction(in,out) 을사용, IORQ 신호가 memory access와구별하여줌 255개의 port제공임베디드시스템에서효과적

Microcontrollers MC6800 Motorola에서개발하였으며 MC6809, 6801, 68HC05, 68HC11, 68HC08 의기본구조로발전 2개의accumulator와1개의16 bit index register로구성 MC68HC11 의경우 2개의 accmulator를결합하여 16 bit 연산이가능하고 index register가추가됨 Microcontroller 형식으로교체됨 : Memory interface, Peripheral 이추가되는형태로발전 Long life cycle을유지 MC68HC05 : PC(13bit), SP(6bit), INX(8bit), ACC 1개 레지스터의크기를최소화하고 Peripheral, RAM 탑재 On chip Microm 추구 응용분야에최적화된하드웨어구조 MC68H11 : INX(X,Y) 2개, 16bit add, sub, shift 명령어, 다양한 Peripheral 고성능 MCU 추구

Intel Microprocessor 의발전과정

INTEL 80286 IBM PC AT의 CPU로 PC를상품화하는데성공하는데기여 메모리구조 1Mbyte(20bit주소 ) 크기의 Real Mode와 16Mbyte까지확장가능한 Protected Mode로나누어진다. 8086/8088의호환때문에 레지스터구조 4개의범용레지스터와 4개의 segment address 레지스터, PC 등이있으며모두 16비트크기이다. Protected Mode 사용을위하여 Index register(si,di), base point register Virtual memory scheme 성능 6-12Mhz, 4.9 average cycles/inst. MIPS=?

INTEL 80386DX 1987 년에최초의 32 비트 PC 메모리구조 32bit Data/Address 구조로 8086/88 호환구조유지 Multitasking/demand paging virtual memory 지원 MMU 탑재 레지스터구조 8 개의 32 비트범용레지스터, 8086 지원을위하여 lower half 16bit access 가별도로가능 (AH,AL,BH,BL) 32 비트 physical address 생성을위하여 6 개의 segment register(cs,ss,ds,es,fs,gs) 성능 16-25Mhz, 4.9 average cycles/inst. MIPS=? 80387 co-processor 사용하여부동소숫점연산을가속화

INTEL 80486 80386 에 80387 FPU 를포함한구조 메모리구조 Pipeline 구조를채택하여 single cycle performance 를갖는다 Pipeline 을지원하기위하여 unified cache 를탑재 레지스터구조 386 과동일하며 FPU 를지원하기위한명령어가추가됨 성능 16-50Mhz, 1.03 average cycles/inst. MIPS=?

INTEL Pentium Enhanced 486, 2-way Superscalar 구조 메모리구조 Superscalar 를지원하기위하여 separate 8kbyte cache 구조 (data, code) 외부 64 비트 burst mode data bus 사용 Branch 구조 Superscalar 에서는 branch 문제해결이중요 Branch target cache(prediction 기능 ) 성능 60-100Mhz, 0.5 average cycles/inst. MIPS=?

INTEL Pentium Pro 5-way superscalar 구조로 DEC Alpha, PowerPC 와경재하기위한성능 메모리구조 Level 2 cache 사용 MMX 명령어구조 멀티미디어성능을향상하기위한멀티미디어확장명령어로 50 개 8bit 단위의멀티미디어데이터특성이용 발전추세 : Pentium II, III, IV

Motorola MC68000 Intel 286 이비교대상 Intel 구조에비하여다른점 Intel 과는달리이전버전에대한호환문제를배제 16/32 비트구조를지향 단지, MC6800 등이전버전은외부인터페이스기능만으로지원됨 Mini, mainframe computer 구조개념을접목 레지스터구조 6 개씩데이터, 주소레지스터 (32 비트 ), 8 또는 16 비트의 dedicate register 배제

Motorola MC68020 1984 년개발, 인텔 386 과 486 의중간적인위치 완전한 32 비트구조 특징 Virtual memory, instruction continuation 지원 비동기메모리인터페이스및가변적인버스크기지원 (8,16,32 비트 ) Co-processor 지원 Data type, addressing mode, instruction 등이향상 Bit field data, packed and unpacked BCD, cache 지원명령어

RISC 구조의특징 명령어종류가적고형식이단순하다 LOAD/STORE 구조 - 메모리 ACCESS전담명령어를두어일반명령어들은레지스터만 ACCESS 명령어형식단순화 Fixed, 3-address 명령어형식 Operand 개수고정 Pipeline 구조적용용이 1-cycle 명령어실행 고성능 큰규모의범용레지스터파일구조 많은수의범용레지스터필요 Load, Store 명령어만 Memory 접근 그결과 명령어의오퍼란드가레지스터로구성명령어형식단순,, 고정 그결과 파이프라인적용에효과적성능향상

RISC 프로세서의로드맵 개념정립 IBM 801 Project 71~ 79 Berkeley RISC I,II Stanford MIPS SUN SPARC IBM RS3000 Motorola Power PC HP PA-RISC DEC Alpha

Berkeley RISC model RISC1 프로세서는 138 X 32 레지스터파일을갖는다. 8개의 Overlapping window구조이며각 window는 24개로구성 6개의레지스터가 subroutine call수행중 parameter passing -> 단순히 pointer의변화만으로 call or return이이루어진다.

Sun SPARC RISC processor Berkeley model을기본으로한다. 120개의레지스터와 7개의 window 구조를갖는다. 각각 8개씩 Input, Local, Output 레지스터로구성된 window Context switching과 parameter passing을개선한레지스터구조 명령어는 64개이며 multiply step command가특징이다.

Stanford RISC model 상대적으로적은수 (32개) 의레지스터파일구조 컴파일러의의존도를높인구조 보다 powerful instruction 을필요로함 Power PC MPC601, 603 으로발전 성능을크게개선하기위하여 Superscalar구조를채택

ARM Architecture vs. Berkeley RISC Features used load/store architecture fixed-length 32-bit instructions 3-address instruction formats Features unused register windows use shadow registers delayed branch single-cycle execution of all instructions memory access multiple cycles when no separate data and instruction memory support auto-indexing addressing modes

Register organization

ARM7 의 Register(1/3) general register 의 keyword r0 ~ r15 : 16 개 사용자가한번에사용할수있는 register 는 16 개 Special Purpose General Register SPSR Program Counter(r15) operand로사용가능 ARM assembler는 pc와 r15를동일시

ARM7 Register(2/3) Stack Pointer(r13) stack을위한 instruction이없다 (Push, Pop etc.) Data 전송명령을통해해결 Auto Increment 기능이존재 Link Register(r14) CALL, RET instruction이없다 BL(Branch with Link) instruction 사용 Pc(r15) 의값을stack에넣지않고Lr(r14) 넣고분기번지를 Pc(r15) 에넣어분기 stack을사용하지않는다.

ARM7 Register(3/3) N Z C V ------ I F --- Mode bits 31 30 29 28 7 6 5 4-0 Status register (PSR or CPSR) Flag Bits Instruction의결과를나타낸다 Negative/Less Than Flag (N) Zero Flag (Z) Carry/Borrow/Extend Flag (C) Overflow Flag (V)

Using and Updating the Condition Field To execute an instruction conditionally, simply postfix it with the appropriate condition: - for example an add instruction takes the form: ADD r0,r1,r2 ; r0 := r1+r2 (ADDAL) - to execute the this only if the zero flag is set: ADDEQ r0,r1,r2 ; r0 := r1+r2 if zero flag is set By default, data processing operations do not affect the condition flags - with comparison instructions this is the only effect To cause the condition flags to be updated, the S bit of the instruction needs to be set by postfixing the instruction (and any condition code) with an S. - for example to add two numbers and set the condition flags; ADDS r0,r1,r2 ; r0 := r1+r2 and set flags

Condition code Summary

Multiplication by a Constant Multiplication by a constant equals to a ((power of 2) +/-1) can be done in a single cycle Using MOV,ADD or RSBs with an inline shift Example: r0=r1*5 Example: r0=r1+(r1*4) ADD r0,r1,r1,lsl #2 Can combine several instructions to carry out other multiplies Example: r2=r3*119 Example: r2=r3*17*7 Example: r2=r3*(16+1)*(8-1) ADD r2,r3,r3,lsl #4 RSB r2,r2,r2,lsl #3 ;r2:=r3*17 ;r2:=r2*7

Conditional Execution An unusual feature of the ARM instruction set is that conditional execution applies not only to branches but to all ARM instructions CMP r0,#5 CMP r0,#5 BEQ Bypass ;if (r0!=5) ADDNE r1,r1,r0 ADD r1,r1,r0 ;{r1=r1+r0-r2} SUBNE r1,r1,r2 SUB r1,r1,r2 Bypass Whenever the conditional sequence is 3 instructions or fewer it is better(smaller and faster) to exploit conditional execution than to use a branch if ( (a==b) && (c==d) ) e++; CMP r0,r1 CMPEQ r2,r3 ADDEQ r4,r4,#1

Embedded Processor 최근동향