Procesory s jádrem ARM



Podobné dokumenty
Přednáška - A3B38MMP Procesory s jádrem ARM. A3B38MMP 2015, J. Fischer, kat. měření, ČVUT-FEL Praha 1

Přednáška 2 A4B38NVS - Návrh vestavěných systémů 2014, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL 1

A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL. Přednáška , kat. měření, ČVUT - FEL, Praha J. Fischer

Náplň přednášky 1. Vestavěný systém Výrobci technických řešení Mikrokontroléry ARM NXP Kinetis KL25Z Rapid prototyping Laboratorní vývojová platforma

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

RISC a CISC architektura

Struktura a architektura počítačů (BI-SAP) 7

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Miroslav Tichý, tic136

MSP 430F1611. Jiří Kašpar. Charakteristika

Architektura procesoru ARM

PROCESOR. Typy procesorů

Procesor z pohledu programátora

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Procesor. Procesor FPU ALU. Řadič mikrokód

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Rozhraní mikrořadiče, SPI, IIC bus,..

Přednáška 1 A4B38NVS - Návrh vestavěných systémů. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Pohled do nitra mikroprocesoru Josef Horálek

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Princip funkce počítače

A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL. Rozhraní mikrořadiče, SPI, IIC bus,.. A438NVS, kat. měření, ČVUT - FEL, Praha. J.

Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12)

FREESCALE KOMUNIKAČNÍ PROCESORY

Architektury CISC a RISC, uplatnění v personálních počítačích

Základní uspořádání pamětí MCU

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Přednáška 1 A4B38NVS - Návrh vestavěných systémů 2015, kat. měření, ČVUT - FEL, Praha. J. Fischer. Grafický podkladový materiál k přednášce A4B38NVS

Algoritmizace a programování

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Mikrokontroléry I. Mikrokontroléry od Atmel (Attiny, Atmega, AVR)

2 Hardware a operační systémy

Architektura počítače

Profilová část maturitní zkoušky 2014/2015

Struktura a architektura počítačů

Výkonnostní srovnání DSP Jak optimalizovat výběr procesoru. Analog Devices, Texas Instruments Freescale

A3B38MMP Mikroprocesory v přístrojové technice

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systémová struktura počítače

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Pedstavení procesor s architekturou ARM

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Přednáška 1 A4B38NVS - Návrh vestavěných systémů 2013, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2013, J.Fischer, kat. měření, ČVUT - FEL 1

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Úvod do mobilní robotiky AIL028

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Provádění instrukcí. procesorem. Základní model

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Přednáška , kat. měření, ČVUT - FEL, Praha J. Fischer. A4B38NVS, 2012, J.Fischer, kat. měření,, ČVUT - FEL 1

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti


Technické prostředky počítačové techniky

Profilová část maturitní zkoušky 2015/2016

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Přednáška - Čítače. 2013, kat. měření, ČVUT - FEL, Praha J. Fischer. A3B38MMP, 2013, J.Fischer, ČVUT - FEL, kat. měření 1

Rozhraní mikrořadiče, SPI, IIC bus,..

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Jednočipové mikropočítače (mikrokontroléry)

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Úvod do mobilní robotiky NAIL028

Metody připojování periferií

TEMPO průmyslový panelový počítač

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Přednáška 1,2. A4B38NVS Návrh vestavěných systémů,2012, J. Fischer, katedra měření, ČVUT - FEL, Praha

Struktura a architektura počítačů (BI-SAP) 9

Strojový kód. Instrukce počítače

Algoritmizace a programování

ŘÍZENÍ ELEKTRICKÝCH POHONŮ. Systémová struktura počítače Řízení běhu programu. České vysoké učení technické Fakulta elektrotechnická

Úvod do architektur personálních počítačů

Mikrořadiče společnosti Atmel

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

FPGA + mikroprocesorové jádro:

Architektura procesoru ARM Cortex-A9 MPCore

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Procesory pro vestavné aplikace přehled

V PRAZE Fakulta elektrotechnická Katedra teorie obvodů. Úvod do mikrokontrolérů ATMEL AVR Konkrétn. ATmega. Martin Pokorný 31SCS 2004

Pohled do nitra mikroprocesoru

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Architektury počítačů a procesorů

a co je operační systém?

6. Procesory jiných firem... 1

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Intel Procesor a jeho konstrukce. Vývojové typy, činnost procesoru

Algoritmizace a programování

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Periferní operace využívající přímý přístup do paměti

Struktura a architektura počítačů (BI-SAP) 1

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Transkript:

Procesory s jádrem ARM Materiál je určen jako pomocný materiál pouze pro studenty zapsané v předmětu: A4M38AVS A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 1

ARM - historie ARM - RISC procesory původ britská firma Acorn, procesory - stolní počítače později vývoj vlastního procesoru ARM1 v r. 1985, ARM1-25 000 tranzistorů, 3 um technologie 4 MHz hod. sig. ARM2 ARM 3 Založena nová firma - Advaced RISC Machines Ltd. (majet. účast Apple, Acorn a VLSI) změna názvu architektury z Acorn RISC Machine na Advaced RISC Machine ARM 6, procesor ARM610 pro PDA (Personal Digital Assistent) firmy Apple ARM7 v r. 1993, používán v PDA PSION firmy Acorn ARM7 TDMI doplnění ladicí rozhraní (D,I debug. interface) rozšířené možnosti násobičky (M) Thumb instrukční sada (T) - navíc 16- bitové instrukce ARM7 TDMI nejlépe prodávaný procesor (jádro) u ARM ARM9 TDMI následovník ARM7, úpravy pipeline, ARM orientace na přenosná zařízení, mobilní telefony, rozvoj A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 2

l. materiál firmy ARM 3

ARM historie ARMV4, Cortex M ARM7 TDMI - architektura ARM v 4T ( pozor, trochu se plete) ARM7TDMI používán i ve formě microcontroller jednočipový mikropočítač firma Philips (nyní navazující NXP) LPC 2105 procesor ARM7TDI, paměti Flash, RAM, periferie, řadič přerušení vlastní varianta další firmy využívající ARM7TDMI: ATMEL, STMicroelectronics, Texas Instruments, Analog Devices,,. u ARM7TDMI v jádře - pouze dvě přerušení, firmy- vlastní implementace řadiče přerušení chybí dobrá podpora a spolupráce - řadič přerušení - jádro Firma ARM úprava architektury pro potřeby embedded microcontrolérů Architektura ARM v7m Cortex, (M značí microcontroller) Doplněn NVIC Nested Vectored Interrupt Controller ARM - Cortex M3 - architektura ARM v7m, náš procesor na cvičeních Architektura ARM v4t ovlivnila ARM v7m,, Heslo ISA instruction set architecture architektura mající danou sadu instrukcí - obecnější pojem - poněkud širší rozsah míněných procesorů A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 4

ARM, typ, ISA,- architektura ARM - RISC procesory (pojem RISC) ARM7TDMI 32- bitový procesor, data 32 bitová, (tedy registry 32 bitů) adresa 32 bitů, adresní prostor 2 32 = 4 GByte ARM instrukční kód konstantní délky 32 bitů v těchto 32 bitech uložen: kód vlastní instrukce, případně - registr, přímá data, adresa architektura typu Load, Store v instrukci jeden přenos dat mezi CPU a pamětí není operace typu read, modify, write? jak řešit do 32 bitů kód i adresu přímé adresování relativně s omezeným rozsahem adresování registrem v jedné instrukci pouze jedna operace s pamětí aritmetické a logické operace pouze s registrem A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 5

Pojem Word u ISA ARM The ARM je 32-bit architectura. V pojmy word, halfword použité v souvislosti s ARM: Word míní se 32 bitů (čtyři bajty) Halfword míní se 16 bitů (dva bajty) Byte míní se 8 bits ( jeden bajt) Většina ARM implementuje dvě instrukční sady 32-bit ARM Instruction Set 16-bit Thumb Instruction Set ARM CORTEX M3 instrukční sada Thumb 2 (jedna společná sada dohromady 16- i 32- bitové instrukce) (obsahuje Thumb a některé ARM) A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 6

Procesory s jádrem ARM, kódování instrukce Architektura ARM, postupný vývoj ARMv x Architektura ARM instrukce kódování 32 bitové Kódování instrukcí ve strojovém kódu ARM je pouze v jednom slovu 32 bitů, procesor načte kompletní kód instrukce naráz Za kódem instrukce ARM nenásledují další informace o datech či adrese skoku (jako to je např. u procesoru 8051 jedno, dvou, tří bajtové instrukce,signálových procesorů ADSP Blackfin a dalších) Všechny informace jsou součástí instrukčního kódu Instrukce operuje s jedním nebo více registry, V jedné instrukci je pouze jediný přístup k datům v paměti (není instrukce, kde by se dva operandy načítaly z paměti, nebo kde by se operand četl z paměti a do paměti by se ukládal) A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 7

Instrukční sady ARM a THUMB Kódování instr. ve stroj. kódu - ARM pouze v jednom slovu (word) 32 bitů nebo THUMB jednom polovičním slovu 16 bitů (halfword) (za kódem instrukce nenásledují další informace o datech či adrese skoku jako to je např. u 8051, jedno, dvou, tří bajtové instrukce) Pokud je potřeba v instrukci zadat adresu 32 bitů, není to součástí instrukce,ale použití pseudoinstrukce. Instrukce se odkazuje na další slovo v paměti vygenerované a uložené překladačem. A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 8

ARM7 TDMI, instrukce ARM a THUMB ARM7TDMI instrukční sada ARM - 32 bitů instrukční sada THUMB 16 bitů (úsporný kód, větší omezení na přímá data či adresy) procesory ARM: 16 bitové instrukce Thumb 32 bitové instrukce ARM (Přepínání v programu, jaká sada instrukcí se používá, procesor běží: v módu ARM (vykonává instrukce ARM 32 - bitové) v módu THUMB (vykonává instrukce THUMB 16 - bitové) Instrukce ARM a THUMB není možno míchat, Přechod do THUMB - skok na adresu, kde nejnižší bit adresy je A 0 = 1 (kód instrukce je 16- bitový, tak reálná adresa má A 0 =0, ale právě požadavek skoku na adresu s A 0 =1 signalizuje požadavek na skok s přepnutím do režimu THUMB používají se instrukce BX Rn, kde registr Rn obsahuje požadovanou adresu s příslušně nastaveným bitem D 0 = 0, nebo D 0 =1 odpovídajícímu adresovému bitu A 0 A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 9

Instrukční sada THUMB-2 v návaznosti na inst. ARM ARM Cortex-M3 - instrukční sada Thumb -2 Instrukce Thumb (16- bitové) jsou doplněny 32- bitovými instrukcemi sada označená jako Thumb - 2, ARM Cortex M3 používá sadu Thumb 2 bez přepínání, je tedy stále v režimu Thumb- 2 a případný pokus o přepnutí do režimu instrukcí ARM (32 bitových) vyvolá chybu, proto musí být při požadavku skoku vždy nejnižší bit adresy A 0 = 1 16 bitové instrukce Thumb omezené možnosti např. ve vzdálenosti adresy pro skok,. možnost Unified Assembler Language (UAL) společná syntaxe pro ARM a Thumb instrukce. Kód psaný s použitím UAL může být přeložen do ARM nebo Thumb instrukcí. A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 10

Instrukční sada THUMB-2 ARM CORTEX- M3, instrukční sada pouze Thumb- 2 obsahuje původní Thumb 16 bitové, doplněné 32 bitovými inst. nepodporuje sadu ARM Thumb efektivnější využití pam. programu, (také zrychlení při čtení z FLASH, čtení 32 bitů dvě instrukce, vysvětlení později) A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 11

Architektura ARM v6m, ARM v7m Architektura ARM V7 obecně, V7M- úprava M značí Microcontroller instrukční sada THUMB -2 materiál firmy ARM 12

l. materiál firmy ARM 13

l. materiál firmy ARM 14

l. A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 15

l. materiál firmy ARM 16

Jádro ARM Cortex M3 Firma ARM - nevyrábí vlastní procesory, pouze návrh jádra, Jádro v rámci licencí využívá mnoho výrobců (ST, NXP, TI, Atmel,..) ARM Cortex- M3 - definováno: vlastní jádro CPU řadič přerušení rozložení v adresním prostoru (kde- SRAM interní, externí, kde vnitřní sběrnice spolupráce s rozhraním pro ladění (debug) JTAG, SWD Výrobci individuálně doplňují paměti a různé periferie přístupné v daném adresním prostoru více na www.arm.com Dle materiálu firmy ARM 17

Srovnání ARM7TDMI a ARM Cortex-M3. Materiál firmy ARM 18

Srovnání jader architektury ARM Cortex v7a, v7r a v7m A- Aplikační, R Real time, M - Microcontroller Cortex-A8 Architecture v7a MMU AXI VFP & NEON support Cortex-R4 Architecture v7r MPU (optional) AXI Dual Issue Cortex-M3 Architecture v7m MPU (optional) AHB Lite & APB materiál firmy ARM 19

Cortex family Cortex-A8 Architecture v7a MMU AXI VFP & NEON support Cortex-R4 Architecture v7r MPU (optional) AXI Dual Issue Cortex-M3 Architecture v7m MPU (optional) AHB Lite & APB Materiály firmy ARM 20

ARM Cortex Processors (v7) ARM Cortex-A family (v7-a): Applications processors for full OS and 3 rd party applications ARM Cortex-R family (v7-r): Embedded processors for real-time signal processing, control applications ARM Cortex-M family (v7-m): Microcontroller-oriented processors for MCU and SoC applications (MCU Microcontroller unit- mikrořadič) (SoC System on a Chip) Pozn. ARM Cortex M0 - je architektura ARM V6M Cortex-A8 Cortex-R4 Cortex -M3 x1-4 Cortex-M1...2.5GHz x1-4 Cortex-A9 Cortex-A15 x1-4 Cortex-A5 1-2 R Heron Cortex-M4 SC300 Cortex-M0 12k gates... materiál firmy ARM 21

The ARM Cortex Family ARM Cortex Family Intelligent Computing Family of products from ARM based on the ARMv7 Architecture & Thumb -2 ISA Step up from ARM7 (v4) and ARM9 (v5) Performance Cortex-A8 Cortex-R4F Cortex-R4 Cortex-M3 Cortex-M1 (FPGA) ARM Cortex A Series - Applications CPUs focused on the execution of complex OS and user applications First Product: Cortex-A8 Executes ARM, Thumb-2 instructions ARM Cortex R Series - Deeply embedded processors focused on real-time environments First Product: Cortex-R4(F) Executes ARM, Thumb-2 instructions ARM Cortex M Series - Microcontroller cores focused on very cost sensitive, deterministic, interrupt driven environments First Product: ARM Cortex-M3 Executes Thumb-2 instructions materiál firmy ARM 22

Cortex-M3 ARMv7-M Architecture Thumb-2 only Fully programmable in C 3-stage pipeline von Neumann architecture Optional MPU AHB-Lite bus interface Fixed memory map 1-240 interrupts Configurable priority levels Non-Maskable Interrupt support Debug and Sleep control Serial wire or JTAG debug Optional ETM Cortex M3 Total 60k* Gates materiál firmy ARM 23

Registry ARM Cortex M3 - R0 R12 obecné registry Dolní registry (low reg.) R0 R7 přístupné všemi instrucemi s přístupem k registrům. Horní registry (high reg.) R8 R12 přístup pouze 32 bitovými instrukcemi s přístupem k registrům A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 24

Registry R13 až R15 u ARM Cortex-M3 Stack pointer Registr R13 -Stack Pointer (SP) ukazatel zásobníku. R13 dvě formy: hlavní SP (SP main) procesní SR (SP_process) Link register Registr R14 je užíván při volání podprogramů (subroutine Link Register - LR). Do LR se uloží návratová adresa z PC při instrukci při vykonání instrukcí Branch an Link (BL) or Branch and Link with Exchange (BLX). LR je využit také při návratu z obsluhy výjimky (exception return). R14 možno obsluhovat jako obecný registr Programový čítač (Program counter - PC) registr R15 Bit [0] je vždy, takže instrukce jsou zarovnány na hranice slova (4 Byte) nebo poloviční slova (2 Byte). Stavový reg. programu (Program Status Registers xpsr) stavových registr příznaků (Flags) A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 25

Adresní prostor ARM- CORTEX M3. A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 26

Procesory s jádrem ARM, instrukce skoku Dotaz? jak se řeší skoky, když adresní prostor je 32- bitový a současně se má celá instrukce kompletně zakódovat do 32 bitů? Skoky (kde je informace o cíli skoku součástí instrukčního kódu) jsou relativní (skok o danou vzdálenost dopředu, či dozadu tato vzdálenost je součástí instruk. kódu) vzhledem k aktuální adrese právě čteného instrukčního kódu Relativní skoky omezený rozsah skoku ( omezená vzdálenost ) Dotaz? jak se řeší delší skoky, když adresní prostor je 32- bitový a současně se má celá instrukce kompletně zakódovat do 32 bitů? Skok s větším rozsahem adresy (na větší vzdálenost ) s využitím adresy předem uložené v registru (32 bitů) (Pozn.: u ARM Cortex M3 musí být nejnižší bit adr. skoku uložené v registru = 1) Důvod nejnižší bit adresy A0 = 1 signalizuje činnost v režimu Thumb) A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 27

Příklad systému sběrnic - AMBA AHB High performance Bus- rychlá sběrnice, přenos paměť- procesor APB Heripheral Bus pomalejší sběrnice pro přenos- procesor periferie (pomalejší, ale nižší odběr, možnost dalšího zpomalení použitím nižší frekvence hod. signálu pro APB High Performance ARM processor APB UART High Bandwidth External Memory Interface AHB APB Bridge Timer Keypad High-bandwidth on-chip RAM DMA Bus Master PIO High Performance Pipelined Burst Support Multiple Bus Masters Low Power Non-pipelined Simple Interface materiál firmy ARM 28

STM32F10x s jádrem ARM Cortex-M3, vnitřní sběrnice I- bus čtení instrukční kód D - bus čtení Data Harwardská architektura - načítání kódu instrukce I (FLASH) a dat D (SRAM) Možnost čtení dat z pam FLASHH- můstek D- bus- Flash Bus Matrix - přepínání sběrnic, možnost několika současně běžících přenosů ( analogie mimoúrovňová křižovaka víceůrovńová Např. čtení instrukce z FLASH do proc., současně přenos z GPIO přes APB na AHP s pomocí řadiče DMA do SRAM) Řadič DMA (Direct Memory Access) pro rychlé přenosy dat bez účasti procesoru A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 29

Cortex-M3 Pipeline Cortex-M3 has 3-stage fetch-decode-execute pipeline Similar to ARM7 Cortex-M3 does more in each stage to increase overall performance Třístupňový pipeline - zpracování a vykonání instrukce Optimální program přímý bez skoků ( viz dále problém omezené rychlosti FLASH) 1 st Stage - Fetch 2 nd Stage - Decode 3 rd Stage - Execute Fetch Fetch (Prefetch) (Prefetch) AGU AGU Instruction Instruction Decode Decode & Register Register Read Read Address Address Phase & Phase & Write Back Write Back Data Phase Data Phase Load/Store & Load/Store & Branch Branch Multiply Multiply & Divide Divide Write Write Branch forwarding & speculation Branch Branch Shift Shift ALU & Branch ALU & Branch Execute stage branch (ALU branch & Load Store Branch) Materiály firmy ARM 30

Cortex-M3 Datapath- čtení kódu Instrukce a Dat I_HRDATA Instruction Decode D_HADDR Address Register Address Incrementer Write Data Register Read Data Register D_HWDATA D_HRDATA B I_HADDR Address Incrementer Address Register Register Bank A Writeback Mul/Div Barrel Shifter ALU ALU INTADDR Materiály firmy ARM 31

Paměť FLASH v mikrořadičích s jádrem ARM Paměti FLASH omezená rychlost přístupu (např. doba v STM32F10x - 35 ns) Běh procesorového jádra STM32F10x až na 72 MHz (perioda cca 14 ns) Doba přístupu k FLASH delší, než perioda hod. signálu procesoru (Vyšší typy STM32F207 (viz SCKit- cv. A4M38AVS), STM32F407 až 168 MHz) Jádro - rychlejší než paměť FLASH Jak řešit rozpor? Řešení - zařazení wait cyklů počkat ječte jeden cyklus hod. sig. - zpomalení běhu Zvýšení toku paralelní čtení inst. kódu a konstant z FLASH Načtení 2x 64 bitů = 128 bitů (obdobně např. i implementace jádra ARM7TDMI v LPC2148 firma NXP) - akcelerace prefetch,). Důsledek program běží nejrychleji bez skokův přímé linii. Skoky zpomalují běh programu. 64 bit Použití par.načítání z pam. FLASH (Analogie nestačím podávat kostky (po jedné kostce) z jedné palety Řešení naberu najednou a podávám po dvou? Ale- požadavek podávat nejednou z jiné palety ( skok ) to nachystané zahodím - časová ztráta než naberu první nové dvě z jiné palety) čtení 32 bit čtení 32 bit 32 bit A4M38AVS, 2014, J. Fischer, kat. měření, ČVUT - FEL, Praha 32

Akcelerátor pro čtení paměti FLASH, STM32F10x Jádro - rychlejší než paměť FLASH Akcelerace prefetch, načítání z FLASH paralelně). (Inst. kód Thumb - 2 je 32 bitů, Thumb je 16 bitů), obdobné řešení i ostatní výrobci implementace jádra ARM7, ARM. Cortex-M3 Skokem- ztrácí se výhoda tohoto řešení, Dle materiálu firmy STMicroelectronics 33