170 likes | 308 Views
Architektura počítačů. Co to vlastně je ?. Architecture vs Organization. V angličtině poměrně ustálené pojmy Architecture atributy „viditelné“ pro programátora, tj. to co má přímý vliv na provádění programu například: instrukční soubor, formát dat, způsob adresování paměti Organization
E N D
Architektura počítačů Co to vlastně je ?
Architecture vs Organization • V angličtině poměrně ustálené pojmy • Architecture • atributy „viditelné“ pro programátora, tj. to co má přímý vliv na provádění programu • například: instrukční soubor, formát dat, způsob adresování paměti • Organization • z jakých částí se počítač skládá • jak jsou vzájemně propojeny
Architektura • v češtině je v tom zmatek • někdy stejný význam jako v angličtině • někdy zastřešuje všechny podstatné vlastnosti: • funkce - popis chování počítače jako celku • struktura - popis propojení jednotlivých funkčních celků • organizace - interakce bloků a řízení jejich spolupráce • realizace - návrh a vnitřní struktura jednotlivých bloků
Architektura(co je potřeba definovat) Co je potřeba aby věděl programátor • datové struktury a reprezentace dat • adresové konvence • instrukční soubor • registrový model • řízení chodu, stavy počítače • vstupy a výstupy
1. Datové struktury, reprezentace dat • způsob uložení dat v počítači • mapovací funkce mezi reálným světem a vnitřním uložením • minimální a maximální velikost adresovatelné jednotky
2. Adresové konvence • definice způsobu, jak přistupovat k datovým strukturám • segment - offset • lineární adresace • velikost paměti • „povolená“ místa
3. Instrukční soubor • definice přechodové funkce mezi stavy počítače • formát instrukce • způsob zápisu • možnosti adresování operandů
4. Registrový model • Rozlišování registrů procesoru: • Podle volby, určení registru: • explicitní / implicitní registr • Podle funkce registru: • řídící registr / registr operandu
5. Řízení chodu, stavy počítače • spolupráce procesoru a ostatních jednotek • interakce s okolím • přerušení (interrupt) • vnitřní • vnější
6. Vstupy a výstupy • metody a způsob přenosu dat mezi • procesorem a ostatními jednotkami • počítačem a okolím • zahrnuje: • definice datových struktur („CO“) • identifikace zdroje/cíle („ODKUD/KAM“) • identifikace datových cest („KUDY“) • protokol (“JAK“) • reakce na chyby
Organizace (co je potřeba definovat) Tohle už programátor vědět nemusí • šíře datových cest • stupeň sdílení • definice specializovaných jednotek • paralelismy • organizace paměti a I/O • stupeň predikce
1. Šíře datových cest • základní velikost přenášené datové jednotky • mezi registry procesoru • mezi procesorem a pamětí
2. Stupeň sdílení • na úrovni obvodů • sdílení jednotlivých obvodů procesoru a I/O ovladače, a tedy vymezení, co je a co není možné dělat zároveň • na úrovni jednotek • sdílení ALU více procesory (např. Motorola 3150 má tři řadiče, vhodně načasované, které sdílí jednu ALU)
3. Specializované jednotky • na různých úrovních: • jednotka pro výpočty v plovoucí řádové čárce (numerický koprocesor) – používaná jen některými instrukcemi • fetch / decode / execute jednotky (nahrání instrukce z paměti, dekódování instrukce, provedení instrukce) – každou z těchto činností provádí jiná jednotka procesoru (pro každou instrukci)
4. Paralelismy • rozklad na úlohy, které lze zpracovávat současně – granularita • programy • části programů • podprogramy • cykly, iterace ... • instrukce • Lze pouze u nezávislých dějů
5. Organizace paměti a I/O • hierarchie paměti • způsob vyhledávání a předávání dat • rozdělení funkcí vstupně-výstupních zařízení, počet I/O jednotek
6. Stupeň predikce • schopnost „připravit se“ na očekávaný děj • načtení instrukce • nastavení přenosu dat • explicitní predikce • statistika • heuristiky • adaptivní predikce