Model von Neumanna 0.1

Podobne dokumenty
Materiały do wykładu. 4.Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski. 5 kwietnia 2009

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

3.Przeglądarchitektur

Architektura Komputerów

3.Przeglądarchitektur

Architektura komputerów

4.Mikroprocesor. Małe przypomnienie 4.1. Marcin Peczarski. Rejestry(2) 4.3. Rejestry(1) 4.2. KodmaszynowyaAsembler(AVR) 4.5. KodmaszynowyaAsembler 4.

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Organizacja typowego mikroprocesora

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Technika mikroprocesorowa I Wykład 2

Architektura mikroprocesorów TEO 2009/2010

Architektura komputerów

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura komputerów

Struktura i działanie jednostki centralnej

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

Budowa komputera Komputer computer computare

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

Projektowanie. Projektowanie mikroprocesorów

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Budowa Mikrokomputera

ARCHITEKTURA PROCESORA,

Architektura systemów komputerowych

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]

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

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

LEKCJA TEMAT: Zasada działania komputera.

System mikroprocesorowy i peryferia. Dariusz Chaberski

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

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

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

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

Architektura komputerów

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

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

16. Taksonomia Flynn'a.

Architektura systemów komputerowych. dr Artur Bartoszewski

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

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

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

Architektura komputerów. Asembler procesorów rodziny x86

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

architektura komputerów w. 4 Realizacja sterowania

Przetwarzanie potokowe pipelining

Budowa i zasada działania komputera. dr Artur Bartoszewski

Podstawy Techniki Mikroprocesorowej

Magistrala systemowa (System Bus)

Architektura potokowa RISC

Architektura typu Single-Cycle

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputera

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

Budowa systemów komputerowych

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

Architektura mikroprocesorów z rdzeniem ColdFire

LEKCJA TEMAT: Współczesne procesory.

organizacja procesora 8086

Programowanie niskopoziomowe

Architektura komputerów

Programowalne układy logiczne

Architektura Systemów Komputerowych

Architektura komputerów

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

2. Architektura mikrokontrolerów PIC16F8x... 13

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Architektura komputerów

Architektura komputerów egzamin końcowy

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

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

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Działanie systemu operacyjnego

Działanie systemu operacyjnego

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

Architektura komputerów. Układy wejścia-wyjścia komputera

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

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

SYSTEM MIKROPROCESOROWY

Architektura systemów komputerowych. Lista instrukcji procesora

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

Sprzęt i architektura komputerów

Procesory rodziny x86. Dariusz Chaberski

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Technika mikroprocesorowa I Wykład 1

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Rozszerzalne kody operacji (przykład)

dr inż. Jarosław Forenc

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

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

Transkrypt:

Model von Neumanna 0.1 dane i rozkazy AC Jednostka arytmetyczno- -logiczna MBR Urządzenia wejścia- -wyjścia Pamięć główna rozkazy sygnały sterujące adresy IR Programowa jednostka sterująca MAR PC

Procesor 0.2 Rejestry Układ współpracy zszynami Jednostka sterująca połączenia wewnętrzne Jednostka arytmetyczno- -logiczna Jednostka arytmetyczno- -logiczna Jednostka arytmetyczno- -logiczna

Architektura współczesnego komputera(1) 0.3 sygnały sterujące adresy dane M P I/O

Architektura współczesnego komputera(2) 0.4 P P I/O M bridge I/O I/O I/O I/O I/O

Architektury typu Princeton i Harward 0.5 program i dane program dane M M M P P

Klasyfikacja Flynna 0.6 liczba strumieni instrukcji liczba strumieni danych 0 1 >1 0 NISD NIMD 1 automat SISD SIMD >1 automat MISD MIMD NI no instruction SI single instruction MI multiple instruction SD singledata MD multipledata

Pamięć architektur wieloprocesorowych(1) 0.7 Tylko pamięć lokalna M M M M P P P P I/O I/O I/O I/O

Pamięć architektur wieloprocesorowych(2) 0.8 SMP Symmetric Multi-Processing UMA Uniform Memory Access(Architecture) M P P P P

Pamięć architektur wieloprocesorowych(3) 0.9 NUMA Non-Uniform Memory Access(Architecture) M M M M P P P P

Pamięć architektur wieloprocesorowych(4) 0.10 COMA Cache Only Memory Architecture M M M M P P P P

Mieszane modele pamięci 0.11 Typowo2do16procesorówtworzywęzeł(ang.node)SMP. Węzły są połączone w NUMA typowe dla superkomputerów. Każdy węzeł ma bezpośredni dostęp tylko do swojej pamięci lokalnej typowe dla klastrów.

Kod maszynowy a asembler 0.12 kod maszynowy binarny sposób opisu rozkazów procesora Każda architektura ma swój unikalny kod maszynowy. W obrębie tej samej architektury kod maszynowy może być nieco różny dla poszczególnych modeli procesorów. asembler język programowania niskiego poziomu Jedno polecenie odpowiada zwykle jednemu rozkazowi maszynowemu. Każda architektura ma swój unikalny asembler. asembler program tłumaczący asembler na kod maszynowy GNU Assembler nazwa własna konkretnego asemblera

Dlaczego Z80? 0.13 Jeden z najpopularniejszych mikroprocesorów 8-bitowych Nadal produkowany i używany Bezpośredni wpływ na najpopularniejszą obecnie architekturę x86 Wystarczająco prosty

Z80 rejestry 0.14 A F A F B C B C D E D E H L H L PC SP IX IY I IFF R

Z80 przesyłanie danych 8-bitowych(1) 0.15 LDd,s 01 d s d, s argument 000 B 001 C 010 D 011 E 100 H 101 L 110 (HL) 111 A

Z80 przesyłanie danych 8-bitowych(2) 0.16 LDd,n 00 d 110 n d argument 000 B 001 C 010 D 011 E 100 H 101 L 110 (HL) 111 A

Z80 przesyłanie danych 8-bitowych(3) 0.17 LD(p),A LDA,(p) 000pd010 LD(aa),A LDA,(aa) 0011d010 aal aah p para rejestrów 0 BC 1 DE d kierunek 0 z akumulatora do pamięci 1 z pamięci do akumulatora

Z80 rejestry indeksowe(1) 0.18 LDr,(HL) LDr,(i+d) 01 r 110 11 i 11101 01 r 110 d r rejestr 000 B 001 C 010 D 011 E 100 H 101 L 111 A i rejestr indeksowy 0 IX 1 IY

Z80 rejestry indeksowe(2) 0.19 LD(HL),n LD(i+d),n 00110110 11 i 11101 n 00110110 d n i rejestr indeksowy 0 IX 1 IY

Z80 rejestry primowane 0.20 EXAF,AF 00001000 EXX 11011001

Z80 rejestr znaczników 0.21 S Z AC P/V N CY S najstarszy bit wyniku operacji, wynik ujemny Z wynikoperacjizerowy AC pomocnicze przeniesienie z pozycji 3, arytmetyka BCD P/V znacznik parzystości dla operacji logicznych i nadmiaru(ang. overflow) dla operacji arytmetycznych N znacznik zerowany przy wykonywaniu dodawania i ustawiany przy wykonywaniu odejmowania, arytmetyka BCD CY znacznik przeniesienia(pożyczki przy odejmowaniu)

Z80 8-bitowe operacje arytmetyczno-logiczne 0.22 10 op s 11 op 110 n s argument 000 B 001 C 010 D 011 E 100 H 101 L 110 (HL) 111 A op operacja 000 ADDA,y 001 ADCA,y 010 SUBA,y 011 SBCA,y 100 ANDA,y 101 ORA,y 110 XORA,y 111 CPA,y y {s,n}

Z80 rotacje i przesunięcia bitów 0.23 RLx CY x RRx CY x RLCx CY x RRCx CY x SLAx x CY 0 SRL x 0 x CY SRA x x CY x {A,B,C,D,E,H,L,(HL),(IX+d),(IY+d)}

Z80 operacje na adresach(1) 0.24 Ładowanie LDp,nn LDp,(aa) LD(aa),p gdziep {BC,DE,HL,SP,IX,IY} Zamiana EXDE,HL Zwiększenie i zmniejszenie o jeden INCp DECp gdziep {BC,DE,HL,SP,IX,IY}

Arytmetyka 16-bitowa ADDHL,p ADCHL,p SBCHL,p gdziep {BC,DE,HL,SP} Z80 operacje na adresach(2) 0.25 Dodawanie i odejmowanie wartości w rejestrach indeksowych ADDIX,p gdziep {BC,DE,SP,IX} ADDIY,p gdziep {BC,DE,SP,IY}

Z80 stos(1) 0.26 Zajmuje pewien obszar w pamięci. Rejestr SP wskazuje wierzchołek stosu ostatni zajęty bajt. Stosrośniewdół wkierunkumniejszychadresów.

PUSHp Z80 stos(2) 0.27 Odkłada na stos najpierw starszy, potem młodszy bajt argumentu(architektura little-endian). ZmniejszaSPo2. p {AF,BC,DE,HL,IX,IY} POPp Zdejmuje ze stosu najpierw młodszy, potem starszy bajt i umieszcza je w argumencie. ZwiększaSPo2. p {AF,BC,DE,HL,IX,IY}

Inicjowanie wskaźnika stosu LDSP,nn LDSP,(aa) LDSP,p gdziep {HL,IX,IY} Manipulowanie wierzchołkiem stosu INCSP DECSP EX(SP),p gdziep {HL,IX,IY} Z80 stos(3) 0.28

Z80 skoki i podprogramy 0.29 JP aa CALL aa RET 11000011 11001101 11001001 aal aal aah aah JPwykonujeskokpodpodanyadres(wpisujeaadoPC). CALL odkłada na stos adres następnego rozkazu(adres powrotu) i wykonuje skok pod podany adres. RETzdejmujezestosuadrespowrotuiwykonujeskokpodten adres.

Z80 rozkazy warunkowe 0.30 JPw,aa CALLw,aa RETw 11 w 010 11 w 100 11 w 000 aal aah aal aah w skrót warunek skoku 000 NZ Z=0 001 Z Z=1 010 NC CY=0 011 C CY=1 100 PO P/V=0 101 PE P/V=1 110 P S=0 111 M S=1

Z80 skoki względne 0.31 JRd JRv,d 00011000 001 v 000 d d v skrót warunek skoku 00 NZ Z=0 01 Z Z=1 10 NC CY=0 11 C CY=1 SkokwzględnydodajedoPCwartośćdtraktowanąjakoliczbaze znakiem.

Z80 cykl pracy 0.32 cykl rozkazowy cykle procesora cykle zegara ADDA,E pobranie T 1 T 2 T 3 T 4 cykl rozkazowy cykle procesora cykle zegara INC(HL) pobranie odczyt zapis T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 1 T 2 T 3 Istotne są tylko dostępy do pamięci!

Z80 przerwania 0.33 Służą do sygnalizowania procesorowi, że jakieś urządzenie wymaga obsługi, np.: wciśnięto klawisz, odebrano pakiet danych. Niemaskowalne zawsze aktywne Maskowalne włączane rozkazem EI ustawienie przerzutnika przerwań IFF wyłączane rozkazem DI wyzerowanie IFF

Z80 zgłaszanie przerwań 0.34 Urządzenie chcąc zgłosić przerwanie, podaje stan niski na wejście NMIlubINT. Procesor testuje stan tych wejść w ostatnim takcie zegara każdego cyklu rozkazowego. Jeśli wejście NMI ma stan niski, zamiast wykonywać kolejny rozkaz, procesor przechodzi do obsługi przerwania niemaskowalnego. Jeśli wejście INT ma stan niski i przerwanie maskowalne jest włączone, zamiast wykonywać kolejny rozkaz, procesor przechodzi do obsługi przerwania maskowalnego.

Z80 obsługa przerwania niemaskowalnego 0.35 Zapamiętywany jest aktualny stan IFF. Przerwania maskowalne są wyłączane IFF jest zerowany. Wykonywany jest skok do podprogramu obsługi rozpoczynającego sięodadresu(66) 16. Zakończenie obsługi polega na wykonaniu rozkazu RETN. RozkazRETNzdejmujezestosuadrespowrotuiwpisujegodoPC oraz przywraca poprzednią wartość IFF.

Z80 obsługa przerwania maskowalnego(1) 0.36 Procesor generuje zmodyfikowany cykl pobrania rozkazu. W tym cyklu wystawia sygnał potwierdzenia przyjęcia przerwania. Urządzenie zgłaszające przerwanie po rozpoznaniu potwierdzenia wystawia na szynę danych numer przerwania b. Wartość PC jest odkładana na stosie. Przerwanie maskowalne jest wyłączane. Z tablicy przerwań pobierany jest adres obsługi przerwania. Tablica przerwań jest wskazywana przez rejestr przerwań I.

Z80 obsługa przerwania maskowalnego(2) 0.37 Adres początku procedury obługi przerwania numer b znajduje się podadresami28 I+b(młodszybajt),28 I+b+1(starszybajt). Do PC wpisywany jest adres początku procedury obługi przerwania. Przed zakończeniem obsługi zwykle włącza się ponownie przyjmowanie przerwań rozkazem EI. Zakończenie obsługi polega zwykle na wykonaniu rozkazu RETI. RozkazRETIzdejmujezestosuadrespowrotuiwpisujegodoPC. Do manipulowania rejestrem przerwań służą rozkazy LDI,A LDA,I

Komunikacja z urządzeniami, np.: Z80 wejście-wyjście 0.38 odczytanie kodu wciśniętego klawisza, odczytanie odebranego pakietu danych, sterowanie wyświetlaczem. Oddzielna przestrzeń adresowa wejścia-wyjścia Rozkazy INA,(n) OUT(n),A INr,(C) OUT(C),r gdzier {A,B,C,D,E,H,L}

Małe podsumowanie(1) 0.39 Z punku widzenia programisty wszystkie mikroprocesory działają podobnie do opisanego. Poszczególne architektury różnią się m.in.: porządkiem bajtów, liczbą i przeznaczeniem rejestrów, listą oferowanych instrukcji(rozkazów), semantyką operacji dwuargumentowych, sposobem realizacji sterowania programem, trybami adresowania, systemem przerwań.

Dalsze różnice: Małe podsumowanie(2) 0.40 rozdzielne lub wspólne przestrzenie adresowe: danych i programu (architektury typu Princeton lub Harward), wejścia-wyjścia, mechanizmy ochrony pamięci(brak, segmentacja, stronicowanie). Żeby działać szybciej, współczesne mikroprocesory mają zupełnie inną organizację(budowę) niż opisany.

Rejestry(1) 0.41 danych adresowe ogólnego przeznaczenia specjalizowane stanu, znaczników wskaźnik stosu licznik programu zmiennopozycyjne wektorowe segmentowe zarządzania pamięcią debugowania

Tryby adresowania argumentów(1) 0.42 Nazwa Z80 IA-32 natychmiastowy LD B, 7 mov ebx, 7 bezpośredni LD A,(1000) mov eax,[1000] rejestrowy(bezpośredni) ADD A, B add eax, ebx (rejestrowy) pośredni ADD A,(HL) add eax,[ebx] indeksowy LD A,(IX+8) mov eax,[ebx+4*ecx+8] stosowy PUSH AF push eax POP AF pop eax EX(SP), HL xchg[esp+8*ecx], eax względny JR Z, MULEND jz mulend

Tryby adresowania argumentów(2) 0.43 Nazwa Oznaczenia Z80 IA-32 rejestrowy pośredni [+r1](+r1) z preinkrementacją rejestrowy pośredni [r1+](r1+) LDI movs z postinkrementacją @r1+ POP AF pop eax rejestrowy pośredni [-r1](-r1) DJNZ d loop d z predekrementacją PUSH AF push eax rejestrowy pośredni [r1-](r1-) LDD z postdekrementacją @r1- movs

System przerwań 0.44 Przerwania sprzętowe maskowalne niemaskowalne Przerwania programowe Praca krokowa debugowanie Wyjątki ponawianie instrukcji, która spowodowała wyjątek Element tablicy przerwań adres procedury obsługi instrukcja skoku do procedury obsługi deskryptor procedury obsługi

Metody zwiększania wydajności(1) 0.45 Zwiększanie częstotliwości taktowania ograniczenia konstrukcyjne i technologiczne wydzielanie ciepła czas propagacji Inne pomysły pobieranie instrukcji na zakładkę kolejka(bufor) instrukcji przetwarzanie potokowe zrównoleglanie wykonywania instrukcji

Metody zwiększania wydajności(2) 0.46 Nienadążanie szybkość pracy pamięci za wzrostem szybkości pracy procesorów zwiększanie szerokości szyny danych wielopoziomowe pamięci podręczne, początkowo jako zewnętrzne, a obecnie w jednym układzie scalonym z procesorem pamięci umożliwiające pobieranie danych co jeden cykl zegara, anawetdwarazywjednymcykluzegara

Przetwarzanie potokowe 0.47 I 1 I 2 I 3 I 4 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 1 T 2 T 3 T 1 T 2 T 3 T 4 I 1 I 2 I 3 I 4 F D E MW F D E MW F D E MW F D E MW F D E MW F D E MW F D E MW F D E MW F fetch D decode E execute M memoryaccess W writeback

Potokowanie rozkazów 0.48 Rozkazy procesora takiego jak Z80 źle się potokuje: kodrozkazuzajmujeod1do4bajtów,cowymagado4dostępów do pamięci; rozkaz może wykonywać skomplikowane operacje na argumentach w pamięci, co może wymagać kilku kolejnych odwołań. Listę rozkazów należy przeprojektować tak, aby wszystkie rozkazy: miały kod tego samego rozmiaru, wykonywały podobną liczbę operacji, potrzebowały co najwyżej jednego dodatkowego dostępu do pamięci(oprócz wczytania kodu rozkazu).

Klasy rozkazów 0.49 Ograniczamy repertuar rozkazów do następujących klas. Odczytzpamięcidorejestru(ang.load),np.: r1:=(r2+offset) Zapiszrejestrudopamięci(ang.store),np.: (r2+offset):=r1 Arytmetyczno-logiczne tylko na rejestrach, np.: r1:=r2+r3 Rozgałęzienia jednoetapowe, np.: branchtolabelifr1=r2

Podział rozkazów na etapy 0.50 Rozważamy przykładowy potok piecioetapowy. F pobraniekodurozkazuzpamięci D zdekodowanie rozkazu i pobranie argumentów z rejestrów E wykonanie operacji arytmetyczno-logicznych, obliczenie adresu M odczytaniedanychzpamięcilubzapisaniedanychdopamięci W zapisaniewynikudorejestru

Przykładowe czasy wykonania 0.51 klasa instrukcji F D E M W razem odczytzpam. 4ns 2ns 3ns 4ns 2ns 15ns zapisdopam. 4ns 2ns 3ns 4ns 13ns arytm.-logiczne 4ns 2ns 4ns 2ns 12ns rozgałęzienia 4ns 2ns 3ns 9ns Rozkazmusiprzebywaćwjednymetapiepotoku4ns. Wykonanie jednego rozkazu potokowo trwa 20 ns, czyli dłużej niż wykonanie dowolnego rozkazu niepotokowanego. Wykonanienrozkazówpotokowotrwa4(n+4)ns.

Zależności zasobów, strukturalne 0.52 Potok może zostać wstrzymany, gdy rozkazy będące na różnych etapach wykonania potrzebują dostępu do tego samego sprzętu. Przykładoworozkazchcewykonaćodczytdanychzpamięci,awtym samym czasie trzeba pobrać kod kolejnego rozkazu. F D E MW F D E MW F D E MW F D E MW Zależności strukturalne usuwa się przez dołożenie sprzętu. Dlatego m.in. współczesne mikroprocesory mają oddzielne pamięci podręczne pierwszego poziomu dla kodu i danych.

Zależności danych typu define-use 0.53 Potok może zostać wstrzymany, gdy rozkaz potrzebuje wyniku poprzedniego rozkazu. r1:=r2+r3 r4:=r1-r5 F D E MW F D D D E MW Takie zależności usuwa się przez data forwarding lub data bypassing. Wynik obliczony na etapie E pierwszego rozkazu przesyła się bezpośrednio do etapu E drugiego rozkazu, zanim zostanie zapisany do rejestru wynikowego. r1:=r2+r3 r4:=r1-r5 F D E MW F D E MW

Zależności danych typu load-use 0.54 Potok może zostać wstrzymany, gdy rozkaz potrzebuje danych ładowanych z pamięci przez poprzedni rozkaz. r1:=(r2+4) r4:=r1-r5 F D E MW F D D D E MW Data forwarding nie zawsze jest w stanie usunąć taką zależność. r1:=(r2+4) r4:=r1-r5 F D E MW F D D E MW Dodatkowe opóźnienie wprowadzane przez rozkaz, gdy następny rozkaz potrzebuje jego wyniku, nazywa się latency. Kompilator może usuwać latency, zmieniając kolejność rozkazów.

Zależności sterowania 0.55 Potok musi być opróżniony, gdy rozkaz warunkowy wykona skok. branch F D E MW F D F F D E MW W rozważanym przykładzie dodatkowe opóźnienie(latency) wynosi dwa takty.

Rozwiązywanie zależności sterowania 0.56 Równoległe przetwarzanie obu gałęzi programu Predykcja skoków(przewidywanie rozgałęzień) zawsze następuje skok nigdy nie następuje skok decyduje kod instrukcji(kompilator) jak przy ostatnim wykonaniu tablica historii skoków Opóźnione rozgałęzianie

Przetwarzanie wielopotokowe 0.57 pipeline 1 scheduler pipeline 2 re-order buffer pipeline 3 Wydawanie i wykonywanie rozkazów w zmienionej kolejności(ang. out of order issue and execution)

Architektury RISC i CISC(1) 0.58 RISC Reduced Instruction Set Computer Ograniczony, prosty zbiór instrukcji Duża liczba uniwersalnych rejestrów Instrukcje arytmetyczno- -logiczne wykonywane tylko na rejestrach CISC Complex Instruction Set Computer Skomplikowane instrukcje, instrukcje wspierające języki wysokiego poziomu Mała liczba rejestrów lub rejestry specjalizowane Instrukcje arytmetyczno- -logiczne pobierające argumenty z pamięci lub umieszczające wynik w pamięci

Architektury RISC i CISC(2) 0.59 RISC Reduced Instruction Set Computer Kody instrukcji o stałej długości, typowo 4 bajty Stałe rozmieszczenie pól w kodach instrukcji, ułatwiające dekodowanie CISC Complex Instruction Set Computer Kody instrukcji o zmiennej długości, typowo od jednego do kilkunastu bajtów Prefiksowanie instrukcji, utrudniające dekodowanie Mała liczba trybów adresowania Duża liczba trybów adresowania Dozwolone tylko adresowanie wyrównane Mniejsza gęstość kodu Dozwolone adresowanie niewyrównane Większa gęstość kodu

Architektury RISC i CISC(3) 0.60 CISC rozkazy Translator µops RISC

Sprzętowe wsparcie dla systemów operacyjnych 0.61 Translacja adresów segmentacja stronicowanie, prosta i odwrotna tablica stron Poziomy ochrony wewnętrzny, nadzorcy, uprzywilejowany zewnętrzny, aplikacji Wywoływanie usług systemu operacyjnego przerwania specjalna instrukcja(syscall)

Segmentacja 0.62 pamieć wirtualna procesu 1 pamięć liniowa pamieć wirtualna procesu 2

Stronicowanie 0.63 pamięć fizyczna (ramki) liniowa pamięć wirtualna (strony) dysk

DMA Direct Memory Access 0.64 Odciąża procesor przy przesyłaniu dużych bloków danych. Dane przesyłane są bezpośrednio między sterownikiem urządzenia a pamięcią operacyjną. Przesyłanie obsługuje sterownik DMA specjalizowany układ podłączony do szyny systemowej. Fazy transmisji: rozkazów procesor inicjuje kanał DMA i zapisuje parametry transmisji, danych wykonywane jest przesyłanie, statusu sterownik DMA zgłasza przerwanie, procesor odczytuje status i zwalnia kanał DMA.