plik


ÿþDekoder Instrukcji i Licznik Rozkazów Rejestry Kontroler Zewntrzne Wskaznik Robocze PrzerwaD Przerwania Stosu Podstawy techniki Wewntrzna magistrala adresowa i danych mikroprocesorowej Zewntrzna ETEW006 Rejestr dekodujcy instrukcje (Instruction Decoder)  blok Bufor Magistrala Danych funkcjonalny odpowiadajcy za dekodowanie i synchronizacj Danych Jednostka wykonywanych instrukcji (programu) Arytmetyczno  Logiczna Wewntrzna Wewntrzna Struktura mikroprocesora i Pami Dekoder Danych Dekoder Danych mikrokontrolera. Architektury Instrukcji Instrukcji Rejestr Statusowy Wewntrzna Wewntrzna von Neumanna i harwardzka Pami Licznik Licznik rozkazów (Program Licznik Programu Programu UkBady Rozkazów Counter / Instruction Pointer, Rozkazów CLK Taktujce Andrzej StpieD Register)  licznik adresujcy ??? Zewntrzna Bufor Bufor pami kodu programu Magistrala Katedra Metrologii Elektronicznej i Fotonicznej Adresowy Adresowa (wykonywanego programu), dane Zasilanie Magistrale Magistrala adresowa i danych Magistrala (Bus) - to zespóB linii, przewodów sBu|cych Rejestry Rejestry do przesyBania informacji o tym samym charakterze oraz Robocze Robocze ukBady sterujce przepBywem informacji: Wewntrzna magistrala danych Wewntrzna magistrala danych Zewntrzna Zewntrzna Magistrala adresowa (Address Bus) - Bufor Bufor Magistrala Magistrala " wewntrzna (Internal Bus) - do wymiany informacji w Danych przesyBanie adresów pamici lub ukBadów Danych Danych Danych Jednostka Jednostka wewntrznej strukturze mikroprocesora, wej[ciowo-wyj[ciowych: Arytmetyczno Arytmetyczno mikrokontrolera  Logiczna  jednokierunkowa, 2-stanowa  Logiczna " zewntrzna (External Bus) - do komunikacji  jednokierunkowa, 3-stanowa Dekoder ze stanem Dekoder mikroprocesora, mikrokontrolera z ukBadami wysokiej impedancji (3-state impedance) Instrukcji Instrukcji Instrukcji Instrukcji Rejestr Rejestr zewntrznymi, np. pamiciami, ukBadami wej[ciowo- Statusowy w trybie HOLD lub DMA Statusowy wyj[ciowymi; magistrala zewntrzna jest oddzielona Licznik Licznik Licznik Magistrala danych (Data Bus) -Licznik przesyBanie od magistrali wewntrznej za po[rednictwem buforów; Rozkazów Rozkazów Rozkazów Rozkazów danych do/z pamici lub ukBadów wej[ciowo- wyj[ciowych (dwukierunkowa, 3-stanowa ze Bufor Zewntrzna Bufor Zewntrzna Adresowy Magistrala stanem wysokiej impedancji) Adresowy Magistrala Zasilanie Adresowa Adresowa Zasilanie, Taktowanie, Sterowanie .. Rejestry Robocze Rejestr Roboczy (Working Register)  wewntrzny Rejestry Kontroler Zewntrzne Rejestry Wskaznik Magistrala sterujca (Control Bus) - sterowanie pamici i Przerwania ukBad pamiciowy mikroprocesora, blok Robocze PrzerwaD Robocze Stosu ukBadów wej[ciowo-wyj[ciowych, np. zapis/odczyt do/z funkcjonalny zbudowany z przerzutników pamici/ukBadów wej[ciowo-wyj[ciowych, chwilowe (najcz[ciej typu D) sBu|cy do chwilowego Wewntrzna magistrala adresowa i danych Wewntrzna magistrala danych wstrzymanie pracy mikroprocesora lub mikrokontrolera, zapamitywania danych i wyników zgBoszenie przerwania itp.: Zewntrzna Zewntrzna przetwarzania lub wykonywania operacji na Bufor Magistrala swojej zawarto[ci; liczba Bufor Magistrala przerzutników  jednokierunkowa, 2-stanowa Danych Danych Danych Jednostka Danych Jednostka wyznacza liczb bitów rejestru  jednokierunkowa, 3-stanowa w trybie HOLD / DMA Arytmetyczno Arytmetyczno Register File  zestaw rejestrów  Logiczna Wewntrzna  Logiczna Wewntrzna Magistrala zasilajca (Power Bus) - rozdzielenie zasilania Pami (an array of processor registers) Danych Danych ze wzgldu na redukcj zakBóceD i zmniejszenie obci|enia Dekoder Dekoder Dekoder Dekoder Instrukcji Instrukcji Instrukcji Register Bank  rejestry grupowane w zestawy Instrukcji prdowego [cie|ek zasilajcych na pBytce drukowanej; ró|ne Rejestr Rejestr Statusowy Statusowy Wewntrzna Wewntrzna (banki), np. w C51 4 banki rejestrów, napicia rdzenia procesora i ukBadów we/wy Pami w ARM7 banki rejestrów zale|ne od trybu pracy Licznik Licznik Licznik Licznik Programu UkBady Rozkazów Rozkazów Rozkazów Rozkazów CLK RD, WR Taktujce Zewntrzna ??? Bufor Bufor Bufor Bufor Zewntrzna Magistrala Adresowy Adresowy Magistrala Zasilanie Adresowa Adresowa 1 http://en.wikipedia.org/wiki/Register_file 21h .. 7Fh C500 Architecture and Instruction Set. User s Manual. Infineon, July 2000 BIT0..7 20h UM10120. LPC2131/2/4/6/8 User manual. NXP, Rev. 4  23 April 2012 1Fh R7 MCS51 numer R6 1Eh banku Bank rejestrów (Register Bank) Banki rejestrów 1Ah .. 1Dh R1 19h C500 Architecture and Instruction Set. RB3 R0 18h User s Manual. Infineon, July 2000 zawiera okre[lon liczb (bank, stron, grup, tablic) rejestrów 17h R7 (np. 8 rejestrów w MCS51, 5 rejestrów w ARM7/9 lub Cortex-Ax) R6 16h DATA 12h .. 15h RB3 IDATA aktywny (w danej chwili) mo|e by tylko jeden bank (strona, grupa, tablica) R1 11h RB2 7Fh RB2 128 BYTES R0 10h RB1 brak dodatkowych instrukcji (w zestawie instrukcji procesora  ISA: ON-CHIP 0Fh R7 Instruction Set Architecture) przy dostpie do wybranego banku rejestrów DATA MEMORY, RB0 R6 0Eh STACK, 0Ah .. 0Dh w zestawie instrukcji procesora (ISA: Instruction Set Architecture) mog 4 REG. BANKS R[7:0] R1 09h 00h RB1 wystpi dodatkowe instrukcje do zmiany aktywnego banku rejestrów R0 08h 07h R7 dane mog by zapisywane lub odczytywane tylko z aktywnego banku R6 06h rejestrów; mog istnie instrukcje lub sposoby (wynikajce z architektury 02h .. 05h procesora) do przenoszenia danych z jednego banku do drugiego bank RB0 wybrany po R1 01h zerowaniu procesora (RESET) RB0 R0 00h ATmega8/8L. 8-bit with 8KBytes ATmega8/8L. 8-bit with 8KBytes In-System Programmable Flash. Atmel, Rev.2486AA AVR 02/2013 In-System Programmable Flash. Atmel, Rev.2486AA AVR 02/2013, fig 8 PrzestrzeD pamici danych Bank rejestrów ATmega8 (Data Address Space) (Register file) ATmega Pami $0000 R0 Rejestry ogólnego przeznaczenia $0001 R1 danych ..... ..... R0 rejestry R26 .. R31 Adr = 0x00 $001E R30 R1 peBni dodatkowe 0x01 $001F R31 ka|dy rejestr ma przypisany R2 funkcje 0x02 adres pamici danych; Rejestry we/wy ..... (I/O Registers) s stosowane jako rejestry s mapowanie R13 0x0D $0020 $00 16-bitowe rejestry bezpo[rednio do pierwszych 0x0E R14 $0021 $01 wskaznikowe w trybie 32 bajtów w przestrzeni 0x0F R15 ..... ..... Figure 8. Mapa po[redniego danych u|ytkownika (Data R16 0x10 pamici $005E $3E adresowania przestrzeni Space) R17 danych 0x11 $005F $3F danych ..... (Data nie jest to fizyczna pami Memory Wewntrzna pami SRAM R26 0x1A (Internal SRAM) Rejestr X R27 R26 Map) SRAM procesora; taka R27 0x1B $0060 organizacja zapewnia du| R28 0x1C $0061 Rejestr Y R29 R28 elastyczno[ w dostpie do 1Kbyte Internal R29 0x1D ..... rejestrów SRAM R30 0x1E $045E Rejestr Z R31 R30 0x1F R31 $045F S. Furber: ARM System-on-chip architecture. Cortex"!-A8. Technical Reference Manual. Addison-Wesley Professional, 2nd Edition, 2000 Revision: r3p2. ARM, DDI 0344K, fig. 2-10 ARM7 Rejestry i wyjtki (Exceptions) Rejestry Cortex-A8 tryb uprzywilejowany (Privileged Modes) tryb uprzywilejowany (Privileged Modes) tryby wyjtków (Exception Modes) tryby wyjtków (Exception Modes) User System Fast Super- Unde- Fast Secure Supervisor Abort Undefined Interrupt User System Abort Interrupt visor fined Interrupt monitor Interrupt R0 R0 R1 R1 efekt dwóch stanów pracy: R2 R2  bezpieczeDstwa R3 R3 tryb (Secure state) R4 R4 Thumb tryb R5 R5  braku bezpieczeDstwa ARM R6 R6 (Nonsecure state) R7 R7 R8 R8_fiq R8 R8_fiq R9 R9_fiq R9 R9_fiq R10 R10_fiq R10 Saved Program R10_fiq R11 R11_fiq R11 Status Register R11_fiq R12 R12_fiq R12 R12_fiq R13 (SP) R13_svc R13_abt R13_und R13_irq R13_fiq R13 (Stack Pointer) R13_svc R13_abt R13_und R13_irq R13_fiq R13_mon R14 (LR) R14_svc R14_abt R14_und R14_irq R14_fiq R14 (Link Register) R14_svc R14_abt R14_und R14_irq R14_fiq R14_mon PC PC (Program Counter) CPSR CPSR (Current Program Status Register) SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR _fiq SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR _fiq SPSR_mon 2 rejestry niebankowane banked unbanked registers registers rejestry bankowane ARMv6-M Architecture Reference Manual. ARMv6-M Architecture Reference Manual. ARM DDI 0419C, September 2010 ARM DDI 0419C, September 2010 ARMv7-M Architecture Reference Manual. ARMv7-M Architecture Reference Manual. ARM DDI 0403D, Errata 2010_Q3 ARM DDI 0403D, Errata 2010_Q3 Cortex M Cortex M Rejestry ogólnego przeznaczenia Rejestry wskaznika stosu (Stack Pointer) rejestry dostpne przez rejestry ogólnego przeznaczenia rdzenia R0 R0 wszystkie 16-bitowe instrukcje Thumb R1 R1 (General Purpose ARM Core Register) R2 R2 i wszystkie 32-bitowe instrukcje Thumb-2 rejestry rejestry R3 R3 (Low (Low R4 R4 Register) Register) rejestry ogólnego przeznaczenia rdzenia R5 R5 (General Purpose ARM Core Register) R6 R6 2 najmniej znaczce bity wskaznika stosu R7 R7 (MSP lub PSP) s zawsze równe 0, co rejestry dostpne przez R8 R8 wszystkie 32-bitowe instrukcje Thumb-2 oznacza, |e s zawsze wyrównane do sBowa rejestry rejestry R9 R9 (High (High (word aligned) R10 i nie wszystkie 16-bitowe instrukcje Thumb R10 Register) Register) R11 R11 R12 Special registers R12 Main Stack Register Program status Stack xPSR (SP_main po Reset) MSP register R13 (MSP) R13 (PSP) R13 (MSP) R13 (PSP) Stack Pointer (SP) Pointer (SP) PRIMASK Interrupt PSP Process Stack Register R14 mask Link Register (LR) FAULTMASK (SP_process) R14 Link Register (LR) registers BASEPRI Program Counter (PC) PC Program Counter (PC) PC Control register CONTROL Rejestry Robocze, Statusowy i ALU Rejestry  ALU  Status Dodawanie dziesitne: 38 + 64 = 102 Rejestry Rejestry Robocze (Working Registers)  zespóB Robocze przerzutników przechowujcych argumenty Krok 1 Krok 2 operacji wykonywanych przez jednostk Wewntrzna magistrala danych dodawanie jedno[ci dodawanie dziesitek arytmetyczno-logiczn, argumenty instrukcji itp. Zewntrzna ALU (Arithmetic Logic Unit)Bufor Magistrala  jednostka wykonujca podstawowe Danych Danych operacje arytmetyczno- reg_1=8 reg_2=4 reg_1=3 reg_2=6 Jednostka logiczne, np. dodawanie (+) i odejmowanie Arytmetyczno arytmetyczne ( ), negacj arytmetyczn, iloczyn i  Logiczna przeniesienie przeniesienie sum logiczn (AND, OR), sum logiczn z ALU ALU =1 Dekoder =1 4-bitBCD 4-bitBCD wyBczno[ci (XOR), negacj logiczn (NOT), Instrukcji Instrukcji Rejestr przesunicia (SHIFT), obroty (ROTATE) itp. Statusowy status status wynik=2 wynik=0 Licznik Licznik Rejestr Statusowy (Status Register)  rejestr z (dziesitki) (setki) Rozkazów Rozkazów 1-bitowymi wynikami operacji wykonywanych przez jednostk arytmetyczno-logiczn, Zewntrzna Bufor najcz[ciej Adresowy Magistrala np. C, Z, N, V itp. Akumulator Adresowa http://en.wikipedia.org/wiki/Arithmetic_logic_unit http://pl.wikipedia.org/wiki/Jednostka_arytmetyczno-logiczna C500 Architecture and Instruction Set. User s Manual. Infineon, July 2000 UM10398. LPC111x/LPC11Cxx User manual. NXP, Rev. 12.3  10 June 2014 UkBad arytmrtyczno-logiczny Akumulator (Arithmetic & Logic Unit) model ALU (Arithmetic & Logic Unit) zaproponowany w 1945 roku przez Johna von Neumanna przy spisie MCS51: ACC  adres akumulatora (0xE0) zaBo|eD dla nowego komputera EDVAC A  skrót akumulatora w mnemonikach (np. MOV A, #12h) ukBad cyfrowy do wykonywania: w akumulatorze jeden z argumentów i wynik operacji:  operacji arytmetycznych (dodawanie, odejmowanie, mno|enie, dzielenie ..)  operacji logicznych (and, or, xor) pomidzy dwiema liczbami  arytmetycznych: dodawania, odejmowania, mno|enia, dzielenia,  operacji jednoargumentowych takie jak przesunicie bitów (shift, rotate)  operacji logicznych: and, or, xor, not, przesunicia, obrotu, wymiany negacja logiczna (not) lub arytmetyczna wykonywanie dziaBaD na liczbach caBkowitych bez znaku (kod binarny) lub liczbach caBkowitych ze znakiem (kod uzupeBnienia do dwóch, U2) Brak akumulatora: AVR, ATmega (8-bitowy), jednostka zmiennoprzecinkowa (Floating Point Unit) równie| wykonuje MSP430 (16-bitowy), operacje arytmetyczne na dwóch warto[ciach, jednak s to liczby w ARM7/9, Cortex-A/R/M (32- i 64-bitowy) reprezentacji zmiennoprzecinkowej, pojedynczej precyzji (zwykle standard IEEE 754) 3 przypadkowe warto [ ci rejestrów po stanie RESET Rejestr Statusowy [1#2] Rejestr Statusowy [2#2] PSW (Program Status Word Register)  rejestr Rejestry Rejestry stanu (statusu) procesora po wykonanej operacji Robocze zawierajcy znaczniki (Flags), 1-bitowe MCS51 informacje o przebiegu lub wyniku C500 Architecture and Instruction Set. Wewntrzna magistrala danych CY AC F0 RS1 RS0 OV F1 P User s Manual. Infineon, July 2000, p.2-3 wykonywanych operacji, np. dla 8-bitowych liczb: Zewntrzna C (Carry)  przeniesienie, przekroczenie zakresu liczb Bufor Magistrala ATmega Danych caBkowitych bez znaku (np.: 0 .. 255) Danych ATmega8/8L. 8-bit with 8KBytes Jednostka I T H S V N Z C In-System Programmable Flash. Arytmetyczno Atmel, Rev.2486Z AVR 02/11, p.11 AC (Auxiliary Carry)  przeniesienie poBówkowe,  Logiczna stosowane przy korekcji dziesitnej (BCD) MSP430 Dekoder Dekoder MSP430x4xx Family. OV (Overflow)  nadmiar, przekroczenie zakresu liczb SCG SCG OSC CPU User s Guide Instrukcji Instrukcji Rejestr Reserved V GIE N Z C TI, SLAU056K, caBkowitych ze znakiem (np.: -128 .. +127) 1 0 OFF OFF Statusowy December 2012, p.3-6 Z (Zero)  warto[ zerowa Licznik Licznik 31 28 30 29 23 6 27 24 5 0 Rozkazów Rozkazów P (Parity)  parzysto[ Exception N Z C V Res T Reserved number Bufor Bufor Zewntrzna S (Sign)  znak liczby, rozró|nienie liczb dodatnich i Adresowy Magistrala Cortex"!-M0 (-M0+) Devices. Generic User Guide. ARM DUI 0497A, 8 October 2009, p.2-4 ujemnych zapisanych w kodzie U2 Adresowa http://en.wikipedia.org/wiki/Von_Neumann_architecture http://en.wikipedia.org/wiki/Von_Neumann_architecture J. Biernat: Architektura komputerów. Oficyna Wydawnicza Politechniki WrocBawskiej, 2001 J. Biernat: Architektura komputerów. Oficyna Wydawnicza Politechniki WrocBawskiej, 2001 Architektura komputera Architektura komputera Architektura von Neumana [1#5] Architektura von Neumana [2#5] Najstarsze maszyny obliczeniowe (komputery) miaBy staBy kod (zasad) dziaBania, np. kalkulator: Projekt ENIAC, nad którym pracowali J. Presper Eckert oraz John  wykonywanie podstawowych operacji matematycznych Mauchly w Moore School of Electrical Engineering (University of  wykluczone inne zastosowania, np. jako edytor tekstu, konsola do gier Pennsylvania) zakBadaB jednolity sposób pamitania kodu programu i danych, niezale|nie od koncepcji Alana Turinga. Zmiana zasady dziaBania to komputery przechowujce program:  bdcy uporzdkowanym, szczegóBowym opisem wykonywanych obliczeD John von Neumann, który byB zaanga|owany w Projekcie Manhattan w  zBo|ony z zestawu instrukcji przechowywanych w pamici (zestaw instrukcji Los Alamos National Laboratory (projekt bomby atomowej wymagaB tworzy program dziaBania) ogromnych ilo[ci obliczeD) doBczyB do J. P. Eckert a oraz J. Mauchly ego. Matematyk Alan Turing (University of Cambridge) przedstawiB w London Mathematical Society (1936) koncepcj uniwersalnej maszyny w lecie 1944 roku Herman Heine Goldstine (matematyk i wspóBtwórca obliczeniowej (znana jako Uniwersalna maszyna Turinga) z komputera ENIAC) w nazwaB niedokoDczony projekt koncepcj von nieograniczonymi mo|liwo[ciami, zasobami (pamici), zawierajcymi Neumanna, ku konsternacji Eckert a i Mauchly'ego; dokument ten zostaB zarówno instrukcje oraz dane przeczytany przez dziesitki kolegów von Neumann a w Ameryce i Europie, a nazwa zasady dziaBania pozostaBa do dzisiaj. John von Neumann poznaB Alana Turinga w 1935 w University of Cambridge http://en.wikipedia.org/wiki/Von_Neumann_architecture http://en.wikipedia.org/wiki/Von_Neumann_architecture http://pl.wikipedia.org/wiki/Architektura_von_Neumanna Architektura komputera Architektura komputera Architektura von Neumana [3#5] Architektura von Neumana [4#5] Komputer o architekturze von Neumann a tworz:  pami komputerowa (Memory) przechowujca instrukcje programu oraz dane programu; ka|da komórka pamici ma unikatowy identyfikator nazywany jej adresem  jednostka sterujca (Control Unit) odpowiedzialna za pobieranie danych i instrukcji z pamici oraz ich sekwencyjne przetwarzanie  jednostka arytmetyczno-logiczna (Arithmetic Pami (Memory) zawiera Logic Unit) odpowiedzialna za wykonywanie kod programu i dane (obliczeD) podstawowych operacji arytmetycznych  urzdzenia wej[cia/wyj[cia (Input / Output) sBu|ce do interakcji z operatorem 4 http://en.wikipedia.org/wiki/Von_Neumann_architecture NAPRZEMIENNY DOSTP http://pl.wikipedia.org/wiki/Architektura_von_Neumanna DO DANYCH LUB INSTRUKCJI Architektura von NEUMANNa Architektura komputera Architektura von Neumana [5#5] albo Kod albo Dane Pami System komputerowy zbudowany w oparciu o Danych i Programu architektur von Neumanna powinien: CPU addr_3+2  mie skoDczon i funkcjonalnie peBn list Dane Bufor Data & Addr Bus data addr_3+1 Danych rozkazów (Instruction Set Architecture) addr_3  mie mo|liwo[ wprowadzenia programu do MEMRD addr_2+2 systemu komputerowego poprzez urzdzenia MEMWR addr_2+1 zewntrzne i jego przechowywanie w pamici Dekoder addr_2 w sposób identyczny jak danych Instrukcji  dane i instrukcje w takim systemie powinny by instr addr_1+2 jednakowo dostpne dla procesora Licznik Licznik addr_1+1 Rozkazów addr_1  informacja jest tam przetwarzana dziki sekwencyjnemu odczytywaniu instrukcji z Bufor Adresowy pamici komputera i wykonywaniu tych Adres instrukcji w procesorze. Danych lub Instrukcji Architektura von NEUMANNa Architektura von NEUMANN a Wady te same magistrale dla kodu i danych (prostota ukBadów Pami i ukBady we/wy Zalety adresujcych i dekodujcych):  adresowa (Address Bus)  danych (Data Bus)  sterujca (WR#/MemWr#, RD#/MemRd#, OE#/CS# itp.) Pami UkBady zwykle, liniowe adresowanie przestrzeni pamici Danych ró|ne we / wy (Data Urzdzenia instrukcje (I/O) warto[ adresu decyduje o dostpie do pamici Memory) we/wy addr2 ?????? addr3 programu, danych lub ukBadów we/wy addr3 ró|ne brak ró|nych instrukcji przy dostpie do kodu programu Data Pami zasady addr2 Pami (ROM/Flash) i danych (RAM) programu & dostpu Danych (Program addr2 Program ?????? uproszczona struktura kompilatora Memory) i Memory Programu mo|liwo[ uruchomienia programu dynamicznie addr1 addr1 zapisanego w pamici RAM (danych, szybko[ RAM  Flash) addr1 UkBady Mapowanie we / wy ukBadów we/wy mo|liwo[ wykonania samomodyfikujcego si kodu (I/O) w przestrzeni pamici programu, np. szyfrowanie kodu addr?????? (Memory Mapped I/O) UM10398. LPC111x/LPC11Cxx User manual. http://en.wikipedia.org/wiki/Harvard_architecture http://en.wikipedia.org/wiki/Harvard_architecture NXP, Rev. 12.3  10 June 2014, fig. 7 J. Biernat: Architektura komputerów. Oficyna Wydawnicza Politechniki WrocBawskiej, 2001 Architektura von-NEUMANN a Przetwarzanie y[n] = a[k] " x[n k] + b[j] " y[n j] £ £ Cortex-M0 [NXP LPC1114] k j sygnaBów 0xFFFF FFFF 4 GB Zarezerwowane (Reserved) 0xE010 0000 RdzeD (core): NVIC, SysTick, Pobranie dwóch argumentów (wspóBczynniki i warto[ci WBasna magistrala peryferii System Control Block; (PPB Private Peripheral Bus) wej[ciowe/wyj[ciowe) w jednym cyklu instrukcji 0xE000 0000 (only word) Zarezerwowane (Reserved) 0x5020 0000 instrukcje dodawania i mno|enia Peryferia typu AHB GPIO PIO3..PIO0 obsBuga buforów (buforów pier[cieniowych) (AHB Peripherals) 0x5000 0000 AHB  Advanced High-performance Bus sprztowe opóznienia Zarezerwowane (Reserved) 0x4008 0000 APB  Advanced Peripheral Bus Peryferia typu APB ALU pozostaBe peryferia dane (APB Peripherals) 0x4000 0000 1 GB wej[ciowe/wyj[ciowe w Zarezerwowane (Reserved) 0x1FFF 4000 pamici danych (RAM) 32-bity 16KB BootLoader 0x1FFF 0000 wspóBczynniki w Pami Jednosta Pami Addr Zarezerwowane (Reserved) 0x1000 2000 kodzie programu instrukcji sterujca danych (ROM) Pami danych CPU (Data Memory  8KBMAX SRAM) 0x1000 0000 Data Zarezerwowane (Reserved) 0x0001 0000 Architektura Harvard  fizyczne UkBady Pami programu 32-bity rozdzielenie pamici i dostpu we/wy (Program Memory do instrukcji oraz danych 32KBMAX on-chip Flash) 0x0000 0000 (efektywny dostp do pamici) 5 Instrukcje RÓWNOCZENY DOSTP DO DANYCH I INSTRUKCJI Architektura HARVARD Architektura Harvard i Kod i Dane Pami Danych wykorzystuje fizycznie rozdzielne pamici instrukcji (kodu) i danych CPU addr_2+2 Dane Bufor Internal Data Bus data addr_2+1 Danych RAMRD ka|dy rodzaj pamici jest dostpny za po[rednictwem innej magistrali addr_2 RAMWR obliczanie Bufor instrukcje i dane (argumenty) mog by pobrane jednocze[nie, Adres adresu Adresowy Danych pamici danych równolegle Pami Internal Address Bus Programu Pami Pami Addr Addr Instrukcje Dekoder programu Danych Dekoder Bufor instr addr_1+2 Instrukcji CPU Instrukcji (Program (Data addr_1+1 Instr Data Memory) Memory) ROMRD addr_1 ROMWR Licznik Licznik Bufor Adres Rozkazów Adresowy Instrukcji ró|ne magistrale pamici programu i danych Architektura Harvard Architektura HARVARD Pami i ukBady we/wy Wady i Zalety Pami Pami Addr Addr programu Danych CPU (Program (Data Instr Data Memory) Memory) addr2 addr6 Pami addr4 addr8 Pami Pami Programu rozdzielone magistrale dla kodu i danych (zBo|ona struktura ukBadów programu Danych UkBady lub adresujcych i dekodujcych), du|a szybko[ wykonywanego programu ze (Program (Data we/wy pami wzgldu na równoczesny dostp do kodu i danych Memory) Memory) addr7 danych addr3 Batwo[ implementacji przetwarzania potokowego addr1 addr5 ró|ne instrukcje przy dostpie do kodu programu (ROM/Flash) i danych (RAM) nie ma mo|liwo[ci uruchomienia programu dynamicznie zapisanego w pamici rozdzielone pamici rozdzielone ukBady we/wy RAM (danych) zerowa warto[ adresu kodu (np. 24-bitowe adresowanie) nie jest tym samym co zerowa warto[ adresu danych (np. 8-bitowe adresowanie) trudno[ci z implementacj, du|a liczba wyprowadzeD http://en.wikipedia.org/wiki/Modified_Harvard_architecture http://en.wikipedia.org/wiki/Modified_Harvard_architecture ARM® Developer Suite. Developer Guide. ARM DUI 0056D, November 2001, Version 1.2 ARM® Developer Suite. Developer Guide. ARM DUI 0056D, November 2001, Version 1.2 Zmodyfikowana Architektura Zmodyfikowana Architektura HARVARD [2#4] HARVARD [1#4] Pami kodu (instrukcje) i pami danych zajmuj ró|n przestrzeD adresow ale wykorzystuj wspólne magistrale adresow i danych: Pami kodu (instrukcje) i pami danych zajmuj ró|n przestrzeD  w strukturze HARVARD zerowy adres w pamici kodu i w pamici danych adresow ale wykorzystuj wspólne magistrale adresow i danych oznacza ró|ne typy pamici, ró|ne warto[ci (struktury A15..8 adres Zawarto[ pamici kodu i pamici danych jest w ró|ny, sprztowy P2 binarne) sposób dostpna do jednostki centralnej CPU (cecha konstrukcyjna Pami  w strukturze von NEUMANNa i Kodu CPU); instrukcje i dane s dostpne w ró|ny sposób A7..0 Programu zmodyfikowanej strukturze bufor ALE (Flash) HARVARD interpretacja PSEN# Zmodyfikowana architektura Harvard, odmiana  czystej architektury zawarto[ci (struktury binarnej) P0 Harvard, umo|liwia dostp do zawarto[ci pamici kodu (instrukcji) zerowego adresu w pamici adres/dane tak, jak gdyby byBy to dane (wikszo[ wspóBczesnych komputerów, kodu i w pamici danych zale|y CPU Pami które wykorzystuj architektur Harvard w rzeczywisto[ci korzysta ze wyBcznie od realizowanego MCS51 Danych zmodyfikowanej architektury Harvard), np. Cortex-M3 (architektura programu (zwykle wymaga (RAM) WR# u|ycia innych instrukcji, np. ARMv7-M) RD# MOVC i MOVX w MCS51) D7..0 6 1 ) ARM® Developer Suite. Developer Guide. ARM DUI 0056D, November 2001, Version 1.2, p.7-2 Zmodyfikowana Architektura Zmodyfikowana Architektura HARVARD [3#4] HARVARD [4#4] Zawarto[ pamici kodu i pamici danych jest w ró|ny, sprztowy Instrukcje i dane s dostpne w ró|ny sposób: sposób dostpna przez jednostk centraln CPU:  w komputerze MARK I kod programu wprowadzany za pomoc ta[my  w strukturze HARVARD rozdzielony sposób dostpu do obu typów papierowej, a dane pamitane w ukBadach elektro-mechanicznych pamici  w strukturze HARVARD, np. w mikrokontrolerach serii PIC (Microchip)  w zmodyfikowanej strukturze HARVARD rozdzielony dostp jedynie stosowane 12-bitowe adresowanie pamici kodu (Flash) i 8-bitowe do pamici podrcznej (I-Cache, D-Cache) oraz TCMARM (Tightly adresowanie pamici danych (RAM) Coupled Memory1)  pamici konfigurowalnej, poBczonej, [ci[le powizanej ale jednolity dla pozostaBych pamici  w strukturze von NEUMANN a (ARM7TDMI) i zmodyfikowanej  równoczesny dostp do pamici kodu (instrukcje) i danych (dane), HARVARD (ARM9, Cortex-M3) jednolity sposób dostpu do: wiksza szybko[ realizacji programu " pamici kodu (Flash) dostp 16-bitowy (rozkazy Thumb) i 32-bitowy (rozkazy ARM w ARM7 lub Thumb-2 w Cortex-M3)  z punktu widzenia programisty zmodyfikowana architektura " danych (RAM)  mo|liwy 8-, 16- i 32-bitowy dostp do danych HARVARD zachowuje si jako struktura von NEUMANNa (mo|liwo[ samomodyfikacji programu), z wyjtkiem dostpu do Cache i TCM 1) Big and Little Endian Byte Addressing. App Note 61. ARM, DAI 0061A, p.4 ARM Compiler v5.04 for µVision armasm User Guide. Keil Software - ARM, 2014 2) ARM® Compiler toolchain. Using the Compiler. Version 4.1. ARM DUI 0472C, p.6-43 Uporzdkowanie danych Alokacja programu (Data alignment) sposób skBadowania danych w pamici tak, by mogBy by efektywnie Alokacja programu (program allocation) - sposób rozmieszczenia wykorzystane programu w pamici komputera, mikrokomputera, mikrokontrolera: procesory ARM maj bajtowy (8-bitowy), póB-sBowowy (16-bitowy) i  program nieprzesuwalny, absolutny (absolute file or segment) - sBowowy (32-bitowy) dostp do danych w pamici 1) bezwzgldne adresy rozkazów ustalane na etapie pisania programu, np. start procesora, wektory przerwaD, fizyczne obszary pamici, 2) kompilator procesorów ARM rozmieszcza dane w pamici wg. zasady: bankowanie pamici typ liczba rozmieszczenie w pamici bajtów  program przesuwalny, relokowalny (relocatable file or segment) - char 1 od dowolnego adresu kod programu nie zale|y od miejsca zajmowanego w pamici i mo|e short 2 od adresu podzielnego przez 2 bez reszty by przemieszczany bez dodatkowych przeadresowaD, np. float, int, long 4 od adresu podzielnego przez 4 bez reszty kompilatory jzyków wysokiego poziomu, programy biblioteczne long long, double 8 od adresu podzielnego przez 8 bez reszty A. Sloss, D. Symes, C. Wright: ARM System Developer s Guide. Desining and Optimizing System Software. Morgan Kaufmann, 2004 ARM - efektywne programowanie w C Problemy i pytania Struktury danych w pamici 1. Co to jest ALU ? (Little-Endian Memory System) 2. Do czego sBu| rejestry robocze procesora ? struct { uporzdkowanie zmiennych w pamici 3. Wyja[ni ró|nice midzy pojciami:  register bank i  register file . char a; Adres +3 +2 +1 +0 4. Jak rol w procesorze peBni akumulator ? int b; wolne wolne wolne a +0 char c; 5. Po co w mikroprocesorze rejestr statusowy ? b31 .. 24 b23 .. 16 b15 .. 8 b7 .. 0 +4 short d; 6. Jakie informacje zawieraj rejestry statusowe mikroprocesorów ? } +8 d15 .. 8 d7 .. 0 wolne c 7. Czym si ró|ni tryby:  microprocessor mode i  microcontroller mode ? 8. Co mo|e by zródBem zerowania (Reset) mikroprocesora/mikrokontrolera ? efektywne wykorzystanie pamici 9. Co to jest alokacja programu ? 10. Jakie s typy alokacji programów ? Poda przykBady. struct { uporzdkowanie zmiennych w pamici 11. Na czym polega architektura von-Neumanna ? char a; 12. Na czym polega architektura Harvard ? Adres +3 +2 +1 +0 char c; d15 .. 8 d7 .. 0 c a 13. Poda wady i zalety architrktury von-Neumanna i Harvard. short d; +0 int b; b31 .. 24 b23 .. 16 b15 .. 8 b7 .. 0 +4 14. Na czym polega zmodyfikowana architektura Harvard ? } 15. Wyja[ni pojcia  Memory Mapped I/O i  Isolated I/O . 7

Wyszukiwarka

Podobne podstrony:
5 Architektura MCU 15 www (1)
7 Stos 15 www
4 Typy instrukcji Tryby?resowania 15 www (1)
3 Przetw?nych Typy proces 15 www (1)
12 DMA 15 www
13 Power 15 www
8 Przerwania 15 www
6 Pamieci ROM RAM 15 www
9 Liczniki 15 www
Ust z dn 15 12 2000 O samorządach zawodowych architektów, inżynierów budownicwa oraz urbanistów
www livemocha com angielski lekcja audio
15 3

więcej podobnych podstron