Little / Big Endian Machines. Podstawy techniki mikroprocesorowej ETEW006. Przetwarzanie danych Typy procesorów. Algorytm.



Podobne dokumenty
architektura komputerów w 1 1

Podstawy Techniki Mikroprocesorowej

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

organizacja procesora 8086

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Struktura i działanie jednostki centralnej

Architektura potokowa RISC

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

architektura komputerów w. 4 Realizacja sterowania

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura komputerów

Przetwarzanie potokowe pipelining

Architektura systemów komputerowych

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura typu Single-Cycle

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Architektura typu multi cycle

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Programowanie niskopoziomowe

Procesory rodziny x86. Dariusz Chaberski

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Przetwarzanie instrukcji w mikroprocesorach

CPU architektura i rejestry

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Projektowanie. Projektowanie mikroprocesorów

LEKCJA TEMAT: Współczesne procesory.

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Organizacja typowego mikroprocesora

Architektura komputerów

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Lista Rozkazów: Język komputera

Mikroprocesory i Mikrosterowniki

Programowalne układy logiczne

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura mikroprocesorów TEO 2009/2010

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Rozszerzalne kody operacji (przykład)

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

Magistrala systemowa (System Bus)

Mikroprocesory i Mikrosterowniki

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

002 Opcode Strony projektu:

MIKROKONTROLERY I MIKROPROCESORY

Architektura komputerów

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

MS Visual Studio 2005 Team Suite - Performance Tool

Architektura komputerów. Asembler procesorów rodziny x86

Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna

architektura komputerów w 1 1

Programowanie Niskopoziomowe

ARCHITEKTURA PROCESORA,

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Budowa komputera Komputer computer computare

Architektura Systemów Komputerowych

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Mikrokontrolery czyli o czym to będzie...

Rev Źródło:

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

PROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH!

Programowanie w asemblerze Wprowadzenie

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Mikroprocesory i mikrosterowniki

Procesory. Schemat budowy procesora

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Logiczny model komputera i działanie procesora. Część 1.

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Język programowania: Lista instrukcji (IL Instruction List)

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Architektura systemów komputerowych. Lista instrukcji procesora

Sprzęt i architektura komputerów

Systemy mikroprocesorowe

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Sprzęt i architektura komputerów

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Page 1. Pięcio-krokowy pipeline

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

drklaus 1 Model funkcjonalny komputera struktura, funkcje, komputer dr inż. Rafał KLAUS STRUKTURA I DZIAŁANIE KOMPUTERA

PRZEWODNIK PO PRZEDMIOCIE

Architektura systemów komputerowych. dr Artur Bartoszewski

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa

Transkrypt:

Little / Big Endian Machines Podstawy techniki mikroprocesorowej ETEW6 Przetwarzanie danych Typy procesorów Andrzej Stępień Katedra Metrologii Elektronicznej i Fotonicznej Little Endian 7 Word High Byte Low Byte +1 +2 +1 memory address 1 High Byte Low Byte Big Endian 7 Word High Byte Low Byte +1 Low Byte High Byte Endianness 245471.pdf IA-2 Intel Architecture. Software Developer s Manual. Volume 1: Basic Architecture 127 2-bit microprocessor ARM core Double Quardword High Quardword + halfword word Word 7 High Low Byte Byte +1 1 16 Doubleword High Word Low Word +2 6 2 1 Quardword High Doubleword Low Doubleword 64 6 +4 Low Quardword Algorytm algorytm (algorithm) - przepis rozwiązania określonego zagadnienia, sposób postępowania doprowadzający do rozwiązania problemu; algorytm złożony jest z: sformułowania problemu do rozwiązania określenia danych wejściowych i postaci wyników przedstawienia działania, jego struktury w postaci ciągu operacji, np. arytmetycznych, logicznych, podstawień itp. elementami struktury algorytmu są: sekwencja element wyboru warunku pętla umożliwiająca wielokrotną realizację określonych operacji T sekwencja 1 warunek 1 T sekwencja 2 sekwencja warunek 2 Optymalizacja, przetwarzanie danych Optymalizacja kompilatorów: rozkazy wykonywane przez procesor realizują funkcje, które najczęściej powtarzają się podczas kompilacji lista rozkazów dostosowana do potrzeb kompilatorów, a nie własności procesora założenia przydatne przy projektowaniu nowych konstrukcji procesorów Sposób przetwarzania danych - obciążenie rejestrów procesora i pamięci: -to- przestrzenią roboczą są rejestry ogólnego przeznaczenia: accumulator-based CPU, z akumulatorem związana jest większość instrukcji arytmetyczno-logicznych i wymiany danych -based CPU (-to-), rolę akumulatora pełnią rejestry ogólnego przeznaczenia memory-to-memory bloki pamięci traktowane są jako przestrzeń robocza, zastępująca rejestry ogólnego przeznaczenia Przetwarzanie rozkazów Przetwarzanie rozkazów sposób wykonania rozkazu w procesorze: podział wykonywanego rozkazu na standardowe fazy: pobierania () rozkazu z pamięci i umieszczenia w wewnętrznym rejestrze rozkazów lub pamięci buforującej, dekodowania (Reg/Dec) rozkazu, ustalenie typu wykonywanej operacji, np. pobrania argumentów, wykonania (Exec) rozkazu, np. wymaganej operacji arytmetycznologicznej, obliczenia adresu itp. zapisu () wyniku w rejestrach lub pamięci, w przetwarzaniu sekwencyjnym (skalarnym) każda faza wykonywana jest oddzielnie, niezależnie od pozostałych, w przetwarzaniu potokowym, strumieniowym (pipeline processing) poszczególne fazy różnych rozkazów są w zasadzie wykonywane równocześnie. 1

Sekwencyjne przetwarzanie rozkazów Potokowe przetwarzanie rozkazów Sekwencyjne (skalarne) - każda faza wykonywana jest oddzielnie, niezależnie od pozostałych. Potokowe (strumieniowe, pipeline processing) - poszczególne fazy różnych rozkazów są wykonywana równocześnie. 1 4 5 7 Reg/Dec dekodowania (Reg/Dec) rozkazu Exec 2 pobierania () rozkazu wykonania (Exec) rozkazu zapisu () wyniku 6 9 1 Reg/Dec dekodowania (Reg/Dec) rozkazu Exec 2 pobierania () rozkazu wykonania (Exec) rozkazu zapisu () wyniku 4 5 6 7 Reg/Dec Exec Reg/Dec Konflikty przy przetwarzaniu potokowym zasobów ten sam zasób wykorzystywany jest przez dwie lub więcej faz równocześnie (ALU, rejestry lub pamięć): każda operacja zapisu do rejestrów lub pamięci może być w konflikcie z fazą pobrania rozkazu lub argumentów danych jeśli argumentem następnego rozkazu jest wynik poprzedniego, który nie został obliczony: wykonanie następnego rozkazu musi być wstrzymane z powodu niedostępności argumentu sterowania gdy wykonywany jest rozkaz skoku warunkowego zależny od wskaźników ustalanych przez poprzednie, jeszcze nie zakończone rozkazy Przetwarzanie potokowe - typ R Instrukcja typu R (dostęp do rejestru) złożona z 4 cykli maszynowych: : pobranie kodu instrukcji z pamięci programu Reg/Dec: pobranie zawartości rejestru i dekodowanie instrukcji Exec: ALU wykonuje operację na zawartości 2 rejestrów : wpis wartości zmiennej do rejestru 1 2 4 5 6 typ instrukcji znany po jej zdekodowaniu ( & Reg/Dec) Przetwarzanie potokowe - LOAD Instrukcja typu LOAD złożona z 5 cykli maszynowych: : pobranie kodu instrukcji z pamięci programu Reg/Dec: pobranie zawartości rejestru i dekodowanie instrukcji Exec: obliczenie adresu zmiennej w pamięci danych Mem: odczyt wartości zmiennej z pamięci danych : wpis wartości zmiennej do rejestru 1 2 4 5 Mem Mem 6 7 Mem instrukcja wykonywana w 5 niezależnych blokach funkcjonalnych każda instrukcja korzysta tylko 1 raz z pojedynczego bloku funkcjonalnego pobranie kodu następnej instrukcji możliwe po zakończeniu poprzedniego czas trwania pojedynczej instrukcji wynosi 5 cykli maszynowych średni czas trwania instrukcji w programie wynosi 1 cykl maszynowy Konflikt zasobów zasobów ten sam zasób wykorzystywany jest przez dwie lub więcej faz równocześnie (ALU, rejestry lub pamięć): każda operacja zapisu do rejestrów lub pamięci może być w konflikcie z fazą pobrania rozkazu lub argumentów LOAD LOAD typ R 1 2 4 5 Mem Mem w jednej z faz musi wystąpić dodatkowy cykl oczekiwania 6 OP 7 2

LOAD Konflikt danych danych jeśli argumentem następnego rozkazu jest wynik poprzedniego, który nie został obliczony: wykonanie następnego rozkazu (zatrzymanie potoku) wstrzymane z powodu niedostępności argumentu LOAD OP OP 1 2 4 5 Mem LOAD 6 Reg/Dec Exec Mem wstrzymanie potoku Reg/Dec Exec Mem rozwiązaniem konfliktu jest umieszczenie między rozkazami instrukcji niezależnej od argumentów, np. OP lub innej (problem optymalizacji kompilatorów rozkazy są wykonywane nie w takiej kolejności jak zostały napisane w programie) Eliminacja konfliktów powielenie niektórych wewnętrznych układów i równoległe wykonywanie tych samych operacji prowadzi do struktury superskalarnej, czasy realizacji poszczególnych faz mogą się różnić w zależności od typu wykonywanej operacji, takty zegarowe muszą być tak dobrane, aby dłużej trwające fazy były wykonywane przez całkowitą liczbę tych taktów, np. jałowe takty oczekiwania, do skrócenia czasu wykonywanych operacji przyczynia się umieszczenie argumentów w wewnętrznych rejestrach, a nie w pamięci; procesor musi być wyposażony w dużą liczbę wewnętrznych rejestrów, zmniejszeniu liczby rozkazów potrzebnych do wykonania zadania sprzyja duża długość słowa maszynowego. ARM7 / ARM9 (1/2) ARM7 processors have a -stage instruction pipeline: Fetch: Decode: Execute: Fetching an instruction from the memory containing the code Decoding the instruction and prepare data path control signals for next cycle The instruction gets executed on the data path specified and the result is written back to the destination Higher performance ARM9 derivatives use a 5-stage pipeline to compensate for the memory access bottleneck of the -stage pipeline: Fetch: Decode: Execute: Data: Fetch next instruction from memory Decode instruction and read operands Execute instruction Thumb only a 16-bit wide system data bus, less power, smaller footprint, reducing system cost Debug support Multiplier (64-bit result) In-Circuit Emulator interface Access data memory, if required ite-back: ite the result of the instruction back to the destination memory location ARM7 / ARM9 (2/2) ARM7TDMI (ARM7TDMI-S) Fetch Decode Execute ARM9TDMI Fetch Decode Execute Memory ite The maximum clock frequency of the ARM9TDMI core is generally in the range 1. to 2.2 times the clock frequency of the ARM7TDMI core when compared on the same silicon process. Reducing the number of cycles for loads and stores gives a significant improvement in program execution time as typically around % of instructions are loads or stores. Architektura procesora typu Bit Slice każdy blok funkcjonalny tworzą oddzielne układy zwane segmentami, np. ALU, rejestry istnieje możliwość wzajemnej współpracy (połączenia) segmentów w celu zbudowania procesora o zadanej długości słowa, np. dysponując procesorem 4-bitowym można zbudować procesor -, 16-, 24-..-bitowy mikrokod procesora (microcode) jest pamiętany w pamięci ROM lub szybkiej pamięci RAM (dynamiczne mikroprogramowanie) najpopularniejszym procesorem segmentowym jest seria Am29 (Advanced Micro Devices), np. Am291: struktura: 4-bitowa ALU, 16x4-bitowa pamięć RAM (rejestry), akumulator Q wykonywane operacje: dodawanie z przeniesieniem (addition with carry), odejmowanie z pożyczką (subtraction with borrow), OR, AD, XOR i XOR argumenty zawarte w: RAM, akumulatorze, zewnętrznych wejściach, domyślna wartość, wynik operacji: przeniesienie dla innych segmentów (carry-out flag), znak (sign flag), przekroczenie zakresu (overflow flag), wynik zerowy (zero flag)... Cechy procesora typu CISC (1/2) J. Biernat: Architektura komputerów. Oficyna Wydawnicza Politechniki ocławskiej, ocław 21 CISC (Complex Instruction Set Computer) - procesor: o złożonej liście rozkazów mających różny, zmienny format z małym zestawem rejestrów strukturalnych (dla użytkownika) predefiniowane przeznaczenie rejestrów, np. A (akumulator), rejestry indeksowe do adresowania pamięci (wiele rozkazów wykonujących operacje na komórkach pamięci) o rozbudowanych trybach adresowania trudności z racjonalnym wykorzystaniem zasobów procesora; przy prostych, elementarnych operacjach wykorzystanie niewielkiej części zasobów procesora wzrost liczby taktów zegarowych przy wzroście złożoności instrukcji

Procesory SI DI CISC DH DL R7 R7 R6R7 R6R7 R5R6 R5R6 R4R5 R4R5 RR4 RR4 R2R R2R R1R2 R1R2 RR1 RR1 R R CH BH AH Status Flags BP SP CL BL AL RB.. B ALU 6 temp A C51 temp procesor: z małym zestawem rejestrów strukturalnych (dla użytkownika) predefiniowane przeznaczenie rejestrów, np. A (akumulator), rejestry indeksowe do adresowania pamięci (wiele rozkazów wykonujących operacje na komórkach pamięci) trudności z racjonalnym wykorzystaniem zasobów procesora; przy prostych, elementarnych operacjach wykorzystanie niewielkiej części zasobów procesora X Y A ST724 temp C51 Formaty instrukcji różny, zmienny format rozkazów: 1 1 r r r ADD A, Rn 1 1 1 1 1 i dana A A A 1 adres A MOV @Ri, #dana ACALL adr_11 PSW ALU CC ALU 1 1 1 1 1 adres rel CJE A, adr, rel DPTR Intel Architecture Software Developer s Manual. Volume 2: Instruction Set Reference. Intel, 1997, p.2-1 6 Formaty instrukcji Instruction Prefixes Up to four prefixes of 1-byte each (optional) procesor: o złożonej liście rozkazów mających różny, zmienny format Opcode ModR/M SIB Dispacement Immediate 1 or 2 byte opcode 7 6 5 2 Mod Reg/ Opcode 1 byte 1 byte (if required) (if required) R/M displacement displacement of 1, 2, or 4 of 1, 2, or 4 bytes or none bytes or none 7 6 5 2 Scale Index Base SIB (Scale-Index-Base) cykle maszynowe C51: ST7: wzrost liczby taktów zegarowych przy wzroście złożoności instrukcji 1 lub 2 cykle maszynowe dla wszystkich instrukcji 4 cykle maszynowe dla MUL AB oraz DIV AB (TYLKO w standardzie) od 2 do 7 cykli maszynowych dla większości instrukcji od 5 do 9 cykli maszynowych dla instrukcji CALL 12 cykli maszynowych dla MUL Y,A (brak instrukcji DIV) C51 dostęp do pamięci CISC (Complex Instruction Set Computer) - procesor: predefiniowane przeznaczenie rejestrów, np. A (akumulator), rejestry indeksowe do adresowania pamięci (wiele rozkazów wykonujących operacje na komórkach pamięci) o rozbudowanych trybach adresowania wewnętrzna pamięć RAM: MOV A, @Ri ; A (Ri) IDATA, i=, 1 lub MOV @Ri, addr ; (Ri) IDATA (addr) DATA zewnętrzna pamięć RAM: MOVX A, @DPTR ; A (DPTR) XDATA lub MOVX A, @Ri) ; A (256 P2 + Ri) XDATA pamięć kodu (stałe): MOVC A, @A+PC ; A (A + PC) CODE ST7 dostęp do pamięci CISC (Complex Instruction Set Computer) - procesor: predefiniowane przeznaczenie rejestrów, np. A (akumulator), rejestry indeksowe do adresowania pamięci (wiele rozkazów wykonujących operacje na komórkach pamięci) o rozbudowanych trybach adresowania ld A, $55 ; A (55h), Direct ld A, (X) ; A (X), Indexed, no offset ld A, ($55,X) ; A (55h + X), Indexed & offset ld A, [$55] ; A ((55h)), Indirect & pointer ld A, ([$55],X) ; A ((55h) + X Indirect indexed & pointer ld A, #$55 ; A 55h, Immediate ST7 FAMILY. PROGRAMMIG MAUAL. STMicroelectronics, ovember 25, p.-29 4

www.intel.com: XP SP2 vs. Intel Prescott Cechy procesora typu CISC (2/2) statystyka działania systemów operacyjnych i programów użytkowych wskazuje na częste wykonywanie operacji prostych i rzadkie złożonych sterowanie przepływem rozkazów realizowane programowo (mikro-kody); łatwa realizacja sterowania wykonywania złożonych rozkazów wymagających różnych okresów czasu What is "microcode"? (1/2) Anything sufficiently complex that has been handcrafted by humans will contain errors. Modern software has millions of lines of source code, and modern processors have millions of transistors, so this applies to both. Microsoft Operating Systems arrive on CD that is built to a particular Service Pack level, and errors found after that was made will be fixed via patches downloaded from their web site. Intel processors are manufactured to a particular stepping level, and errors found after that was made may be fixed via microcode updates sent to the processor, typically by BIOS on every system startup. Microcode updates are not stored permanently within the processor; they vanish when the power is cut, so every boot has to re-assert them. Intel IXP12 etwork. Processor Family. Microcode Programmer s Reference Manual. ITEL Corporation, March 22, Part umber: 274-11 C196KB User's Guide. ITEL Corporation, ovember 199, Order umber: 27651- What is "microcode"? (2/2) microcode engine controls the CPU, allowing it to perform operations with any byte, word or double word in the 256 byte space instructions to the CPU are taken from the queue and stored temporarily in the instruction microcode engine decodes the instructions and generates the correct sequence of events to have the RALU perform the desired function Cechy procesora typu RISC (1/2) uproszczoną strukturę mikroprocesora, o zredukowanej liście rozkazów zaproponował John Cocke (IBM Research w Yorktown, ew York, 1974) wychodząc z założenia, że 2% dostępnych instrukcji zajmuje aż % czasu pracy procesora MICROCODE EGIE QUEUE skrót RISC (Reduced Instruction Set Computer) zaproponował David Patterson (University of California, Berkeley, 195) C196KB User's Guide. ITEL Corporation, ovember 199, Order umber: 27651- obecnie skrót RISC tłumaczony jako Rational Instruction Set Computer idea RISC została wykorzystana w mikroprocesorze SPARC firmy Sun Microsystem; początek powstania tego co jest znane jako technologia MIPS, np. w komputerach Silicon Graphics, procesorze Alpha firmy DEC Cechy procesora typu RISC (2/2) prosta struktura wewnętrzna sterowanie przepływem rozkazów realizowane sprzętowo (brak mikro-kodów, eliminacja mikroprogramowania) uproszczenie trybów adresowania, zwykle jednolity format rozkazów (stała długość kodów instrukcji) większe możliwości wyboru uniwersalnych rejestrów mikroprocesora architektura typu load/store, przetwarzanie danych w oparciu o rejestry, a nie bezpośrednio na zawartości pamięci szybsze działanie ideałem jest wykonanie każdej instrukcji w jednym cyklu procesora zmniejszenie liczby taktów zegarowych tworzących cykl maszynowy (przetwarzanie potokowe) ułatwienie opracowania, wytworzenia i testowania: nowego mikroprocesora systemu operacyjnego i programu użytkowego kompilatora wysokiego poziomu wykonanie operacji równoważnej wymaga większej liczby rozkazów w procesorze RISC niż w procesorze CISC MSP4 (1/2) Single-cycle operations Large 16-bit file reduces fetches to memory 16-bit address bus allows direct access and branching throughout entire memory range 16-bit data bus allows direct manipulation of wordwide arguments Constant generator (CGx) provides six most used immediate values and reduces code size Memory Data Bus MDB 16 Zero, Z Carry, C Overflow, V egative, R/PC R1/SP Program Counter Stack Pointer R2/SR/CG1 Status R/CG2 Constant Generator R4 R14 R dst Memory Bus MAB General Purpose... General Purpose General Purpose 16-bit ALU scr 16 MCLK MSP4x4xx Family User s Guide. Texas Instruments, SLAU56G, 27, p.- 5

MSP4x4xx Family User s Guide. Texas Instruments, SLAU56G, 27, p.-1 MSP4 formaty rozkazów MSP4 (2/2) OP - Code 12 12 11 7 6 5 4 source Ad B/W 11 1 OP - Code B/W As 7 6 5 4 Ad dest. As/Ad ing Mode dest. Ad ing Mode Format I Format II 16 rejestrów uniwersalnych: R licznik rozkazów PC R1 wskaźnik stosu SP R2 rejestr statusowy SR lub generator stałych CG1 R generator stałych CG2 R4.. R rejestry ogólnodostępne 27 bazowych + 24 emulowane instrukcje www.ti.com Destination Source Instructions Example: Orthogonality for two operand instructions Source 1 12 1 OP - Code 1 9 S Offset Contitional and unconditional Jumps (+/ 9 bit Offset) Format III ortogonalne tryby adresowania - wszystkie instrukcje ze wszystkimi trybami adresowania i operandami Destination Instructions Example: on-orthogonality for two operand instructions AVR ATmega2 ATmega2A. -bit Microcontroller with 2K Bytes In-System Programmable Flash. Atmel, 2, p.7 AVR uses a Harvard architecture with separate memories and buses for program and data (data space: Register File, I/O memory and internal SRAM or/and external SRAM if applicable) instructions in the program memory are executed with a single level pipelining while one instruction is being executed, the next instruction is pre-fetched from the program memory (enables instructions to be executed in every clock cycle) fast-access Register File contains 2 x -bit general purpose working s with a single clock cycle access time allows single-cycle Arithmetic Logic Unit (ALU) operation in a typical ALU operation, two operands are output from the Register File, the operation is executed, and the result is stored back in the Register File in one clock cycle six of the 2 s can be used as three 16-bit indirect address pointers for Data Space addressing efficient address calculations AVR ATmega2 Working Registers Clear Register: CLR Rd ; d 1 General Purpose Working Registers Clear Bits in Register: CBR Rd,K ; 16 d 1, ; K 255 ATmega2A. -bit Microcontroller with 2K Bytes In-System Programmable Flash. Atmel, 2, p.1 R R1 R2... R1 R14 R R16 R17... R26 R27 R2 R29 R R1 $ $1 $2 $D $E $F $1 $11 first 2 locations of the user Data Space $1A Low Byte $1B High Byte $1C Low Byte $1D High Byte $1E Low Byte $1F High Byte X-pointer Y-pointer Z-pointer AVR -bit Instruction Set. Atmel, 56G AVR 7/ AVR ATmega2 Load Memory AVR -bit Instruction Set. Atmel, 56G AVR 7/ AVR ATmega2 Store Memory Load Indirect from Data Space to Register using Index X, Y or Z: LD Rd, X ; Rd (X), X: Unchanged, d 1 LD Rd, Y+ ; Rd (Y), Y Y + 1, Y: Post incremented, d 1 LD Rd, Z ; Z Z 1, Rd (Z), Z: Pre decremented, d 1 Load Indirect from Data Space to Register using Index Y or Z: LDD Rd, Y+q ; Rd (Y+q), Y: Unchanged, d 1, ; q: Displacement, q 6 Load Direct from Data Space: LDS Rd, k ; Rd (k), k 6555, d 1 Load Indirect from Program Memory: LPM Rd, Z ; Rd (Z), Z: Unchanged, d 1 LPM Rd, Z+ ; Rd (Z), Z Z + 1, Z: Post incremented, d 1 Store Indirect From Register to Data Space using Index X, Y or Z: ST X, Rr ; (X) Rr, X: Unchanged, r 1 ST Y+, Rr ; (Y) Rr, Y Y+1, Y: Post incremented, r 1 ST Z, Rr ; Z Z 1, (Z) Rr, Z: Pre decremented, r 1 Store Indirect From Register to Data Space using Index Y or Z: STD Y+q, Rr ; (Y+q) Rr, Y: Unchanged, r 1, ; q: Displacement, q 6 Store Direct to Data Space: STS k, Rr ; (k) Rr, k 6555, r 1 6