Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Struktura a architektura počítačů (BI-SAP) – 12 doc. Ing. Hana Kubátová, CSc.
Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze © Hana Kubátová
BI-SAP 12, procesor
letní semestr
2010-11
BI-SAP 12: osnova
Příklad návrhu výkonné a řídící jednotky Pipelining, RISK procesor
© Hana Kubátová
BI-SAP 12, procesor
2
Instrukční cyklus Instruction Fetch Instruction Decode Operand Fetch Execute
čtení instrukce dekódování instrukce
Instruction fetch
čtení operandu provedení instrukce Instruction execute
Result Store Synchron
uložení výsledku dotaz na přerušení
Interrupt? © Hana Kubátová
BI-SAP 12, procesor
3
Jednoduchý procesor von Neumannova typu CPU
CU Paměť
ALU
Registry
DB D7:D0 AB A7:A0 CB
Sběrnice
CPU (procesor) musí obsahovat: • ALU .... výkonnou jednotku (kombinační obvody) • řadič ... řídící jednotku (CU - control unit, sekvenční obvod) • registry .... pro dočasné uchování dat © Hana Kubátová
BI-SAP 12, procesor
4
Příklad … návrhu jednoduché výkonné jednotky a jejího řízení Navrhněte číslicový obvod pro násobení dvou čtyřbitových nezáporných čísel včetně řízení • výkonná jednotka ... sčítačka, obvody pro posuv • řadič ... generování signálů pro zápis do registrů, posuv a okamžik sčítání • registry .... pro násobenec, násobitel, dočasný výsledek a celkový výsledek
© Hana Kubátová
BI-SAP 12, procesor
5
Násobení včetně řízení !!!
© Hana Kubátová
BI-SAP 12, procesor
6
"0" zapiš_B
zapiš_A
posuv_B MUX
lsb
lsb
zapiš_C1 posuv_C0
© Hana Kubátová
BI-SAP 12, procesor
7
• výkonná jednotka ... 4 bitová sčítačka, obvody pro posuv ... dráty • registry .... • A ... 4 bitový pro násobenec s paralelním vstupem • B ... 4 bitový pro násobitel, posuvný s paralelním vstupem • C1 ... 4 bitový pro dočasný výsledek s paralelním vstupem • C0 ... 4 bitový pro celkový výsledek posuvný • řadič ... generování signálů pro zápis do registrů, posuv a okamžik sčítání .... signály ve žlutých boxech © Hana Kubátová
BI-SAP 12, procesor
8
Řadič … řízení návrh řadiče .... graf přechodů podle funkce podle způsobu zadání vstupů a zobrazení vstupu podle toho, jak se to má realizovat např. programovatelné obvody a stavebnice (HW kit) ... LED diody, přepínače, tlačítka problém času - ns x doba stisknutí tlačítka © Hana Kubátová
BI-SAP 12, procesor
9
start ... vynulovat C1 a C0
zapiš_A reset=1 zapiš_B zobrazuj výsledek reset=0
podle použitého HW lze i v jednom taktu-stavu, podle způsobu zadání operandů někdy nutné čekací smyčky a potvrzovací signál, kdy je na vstupu A a kdy B
posun_B opakuj 4 krát zapiš_C1 posuv_C0
nebo spočítej čítačem
posun_B
© Hana Kubátová
zapiš_C1 BI-SAP 12, procesor posuv_C0
10
vylepšení, zrychlení • když násobitel je "0", nemusí proběhnout celý cyklus (zde 4 takty) • změna HW ... test na nulovost registru B • změna řadiče .... jeho dalším vstupem je "stavový" signál o dílčích výsledcích, stavech, zde signál "zero" © Hana Kubátová
BI-SAP 12, procesor
11
"0" zapiš_B
zapiš_A
posuv_B MUX A
zero Out
B
lsb
lsb
zapiš_C1 posuv_C0
© Hana Kubátová
BI-SAP 12, procesor
12
start ... vynulovat C1 a C0
zapiš_A reset=1
zero=1 zapiš_B
zobrazuj výsledek dokud reset=0
zero=0 posun_B opakuj 4 krát zapiš_C1 posuv_C0
nebo spočítej čítačem
posun_B
© Hana Kubátová
zapiš_C1 BI-SAP 12, procesor posuv_C0
13
Další konkrétní úpravy • ovládání tlačítek • zadání dat • zobrazení výsledku
podle toho, jak a čím je to realizováno např. na vývojové „stavebnici“ s programovatelným obvodem
• synchronní číslicový návrh - detekce konce či začátku posloupnosti jedniček či nul © Hana Kubátová
BI-SAP 12, procesor
14
Von Neumannova architektura (SAP1) • Instrukce a data jsou uloženy v téže paměti. • Paměť je organizována lineárně (tzn. jednorozměrně) a je rozdělena na stejně velké buňky, které se adresují celými čísly (zprav. 0, 1, 2, 3, . . . ). • Data ani instrukce nejsou explicitně označeny. • Explicitně nejsou označeny ani různé datové typy. • Pro reprezentaci dat i instrukcí se používají dvojkové signály. • V instrukci zpravidla není uváděna hodnota operandu, ale jeho adresa. • Instrukce se provádějí jednotlivě, a to v pořadí, v němž jsou zapsány v paměti, pokud není toto pořadí změněno speciálními instrukcemi (nazývanými skoky). © Hana Kubátová
BI-SAP 12, procesor
15
Von Neumannova architektura (SAP1) • Důsledek - podle výpisu paměti nelze poznat, zda jde o instrukce nebo o data (ani o jaká data) – je třeba znát kontext • Počítač tvoří: – hlavní paměť (main memory) – procesor: • datová část – ALU – aritmeticko-logická jednotka – Registry
• řídící část – Řadič – control unit, controller
– vstupní/výstupní zařízení © Hana Kubátová
BI-SAP 12, procesor
16
Hardwarová architektura počítače (1) Paměť
Procesor Řídící část Řadič - Controller
Datová část Aritmeticko-logická jednotka - ALU
Vstupní/Výstupní zařízení © Hana Kubátová
BI-SAP 12, procesor
17
Řadič procesoru • Pracuje podle instrukčního cyklu • Řídí činnost všech výkonných jednotek počítače podle instrukcí a jejich kódu, podle instrukčního cyklu • Je to sekvenční obvod – závisí na sekvenci vstupních (stavových) signálů, které generují výkonné jednotky (ALU, HP - instrukce) a vysílá jim řídící signály • Pracuje v nekonečném cyklu – řídí zpracování instrukcí • Navrhuje se podle instrukčního cyklu a výběru ISA – z grafu přechodů – vývojového digramu • Podle způsobu jeho realizace existuje tzv.obvodový (klasický) řadič a mikroprogramový řadič © Hana Kubátová
BI-SAP 12, procesor
18
AB PC
Řízení
IR M
ALU
ACC DB
Řízení ..... které akce mohou/musí proběhnout paralelně? • nahraj data do registrů - WPC, WIR, WACC • output enable registrů – OEPC, OEACC • inkrement registru – IncPC • Výběr operace ALU – ADD, SUB, CMP • čti – zapiš do paměti WM, RM, RESET ... PC = 0 © Hana Kubátová
BI-SAP 12, procesor
19
IR
ZR
SP
ALU
PC
R0 R1 R2
PSW
R0...R11
reg W
Řadič Paměť © Hana Kubátová
BI-SAP 12, procesor
Vstup/Výstup 20
Obecný (Huffmannův) model sekvenčního obvodu
Mnoho vstupů - stavových signálů
© Hana Kubátová
Výstupy – řídící signály pro výkonné jednotky BI-SAP 12, CLK procesor
21
Realizace řadiče • jde o sekvenční obvod • mnoho vstupů • mnoho výstupů
Řadič
ale v daném taktu (stavu) se uplatní jen málo z nich, tzn. jeden nebo žádný většinou se pokračuje následujícím stavem jde o popis algoritmu - činností v instrukčním cyklu, lze použít vývojový diagram © Hana Kubátová
BI-SAP 12, procesor
22
Čtení instrukce, vývojový diagram
© Hana Kubátová
BI-SAP 12, procesor
23
žádost o sběrnici Obsah PC na adresovou sběrnici čtení dat z hlavní paměti a jejich uložení do registru instrukce čekání na platná data z hlavní paměti
© Hana Kubátová
nastavení obsahu PC na adresu další instrukce +1 nebo +2 ...
BI-SAP 12, procesor
24
totéž jako graf přechodů
PC A PC A
© Hana Kubátová
BI-SAP 12, procesor
25
obvodový řadič
totéž realizované jako obvodový řadič, v kódu 1zN, tzn. každému stavu Mi odpovídá jeden D-KO
© Hana Kubátová
PC A
PC A
BI-SAP 12, procesor
26
Realizace řadiče • Podle způsobu jeho realizace existuje tzv.obvodový (klasický) řadič a mikroprogramový řadič • Obvodový řadič – návrh klasického sekvenčního obvodu ... usnadnění ... kód vnitřních stavů 1 z n – pak lze návrh provést z vývojových diagramů popisující činnost procesoru při provádění instrukcí podle instrukčního cyklu • Mikroprogramový řadič – – Sekvenční obvod s kombinační částí realizovanou pamětí (nazývá se řídící paměť, paměť mikroprogramů, control memory) – Jednotlivé dílčí operace, které se provádějí při zpracování instrukcí jsou uloženy v této paměti a říká se jim mikroinstrukce – Soubor mikroinstrukcí tvoří mikroprogram, soubor všech mikroprogramů je mikroprogramové vybavení - firmware © Hana Kubátová
BI-SAP 12, procesor
27
Obecný (Huffmannův) model sekvenčního obvodu
Mnoho vstupů - stavových signálů
© Hana Kubátová
Výstupy – řídící signály pro výkonné jednotky BI-SAP 12, CLK procesor
28
Paměť-ROM Multiplexor řízený z výstupů paměti – výběr „podmínky“ – stavového signálu © Hana Kubátová
D-FF BI-SAP 12, CLK procesor
Výstupy – řídící signály pro výkonné jednotky
29
Mikroprogramový řadič Moorův automat
CLK
© Hana Kubátová
BI-SAP 12, procesor
30
Mikroprogramový řadič • jsou možné další úpravy a vylepšení podle souboru instrukcí a výkonných jednotek • čítač adres mikroinstrukcí, protože většinou se pokračuje následující • např. pro často se opakující části instrukcí zavést možnost podmikroprogramů a HW zásobník jako součást řadiče a čítač taktů s možností přednastavení pro počet opakování cyklů mikroinsrukcí © Hana Kubátová
BI-SAP 12, procesor
31
• Soubor všech mikroprogramů, tzn.popisu činností každé instrukce v taktech je mikroprogramové vybavení - firmware • Horizonální mikroprogramování - viz Sl.17 – – – –
dlouhé mikroinstrukce jedna mikroinstrukce v jednom taktu řídící signály součástí mikroinstrukce omezené větvení
• Vertikální mikroprogramování – krátké mikroinstrukce – čítač adres mikroinstrukcí – jedna mikroinstrukce ve více taktech – dekodér pro řídící signály © Hana Kubátová
BI-SAP 12, procesor
32
Řadič program .... se skládá z instrukcí instrukce ... se provádí ve několika taktech a skládá se z mikroinstrukcí mikroinstrukce ... okamžitý stav procesoru skládá se: – z řídících signálů pro výkonné jednotky – určení následného stavu (kde se bude pokračovat) – volby vstupů, které jsou v příštím taktu významné
© Hana Kubátová
BI-SAP 12, procesor
33
Optimalizace • Jaký má být návrh procesoru, aby pracoval co nejefektivněji? • Má mnoho instrukcí nebo minimálně? • Jaký má mít řadič? • Jak celou činnost zrychlit? • Má mít hodně registrů? • .... © Hana Kubátová
BI-SAP 12, procesor
34
Statistika … jaké instrukce
© Hana Kubátová
BI-SAP 12, procesor
35
… jaké adresní módy
© Hana Kubátová
BI-SAP 12, procesor
36
© Hana Kubátová
BI-SAP 12, procesor
37
Proudové zpracování instrukcí pipelining princip výrobního pásu - zpracování instrukce po částech • každá jednotka provede část operace • jednotky pracují současně
© Hana Kubátová
BI-SAP 12, procesor
38
...pipelining • triviální případ - předčítání instrukcí, jedna instrukce se čte, další dekóduje, provádí ... • v ideálním případě je v každém taktu dokončena jedna instrukce konflikty: • datový - potřebná data dosud nejsou uložena • skokový - adresu skoku zatím nelze určit řešení ... počkat (to nejjednodušší, ale ne jediné), .... © Hana Kubátová
BI-SAP 12, procesor
39
© Hana Kubátová
BI-SAP 12, procesor
40