Úvod
Architektura počítače je atribut počítače, který programátoři vidí, tedy logická struktura a funkční vlastnosti počítače, včetně vzájemného vztahu mezi jeho různými tvrdými a měkkými součástmi. Pro návrháře počítačových systémů se počítačová architektura týká studia základních návrhových myšlenek počítačů a výsledné logické struktury; pro programátory se to týká funkčního popisu systému (jako je instrukční sada, způsob programování atd.).
Základní pojmy
Architektura počítače se týká systémové struktury softwaru a hardwaru. Má dva významy: jedním je struktura systému viděná z pohledu programátora. Jde o výzkum Koncepční struktura a funkční charakteristiky počítačového systému souvisí s charakteristikami návrhu softwaru; druhým je struktura systému viděná z pohledu hardwarového designéra, což je vlastně složení nebo realizace počítačového systému (viz organizace počítačů), se zaměřením především na výkon Přiměřenost poměru ceny. Aby bylo možné vysvětlit a prostudovat atributy (vnější charakteristiky) počítačů viděných z perspektivy programování, Adam a další poprvé v roce 1964 navrhli koncept struktury počítačového systému.
Koncepční struktura a funkční charakteristiky, což jsou atributy počítače viděné z pohledu programátorů. Zahrnuje reprezentaci dat ve stroji, režim adresování, provoz těchto dat a řízení provádění těchto operací (jmenovitě instrukční systém). U strojů pro všeobecné použití to obecně zahrnuje reprezentaci dat, režim adresování, definici registru, systém instrukcí, mechanismus přerušení, definici pracovního stavu stroje a přepínání stavů, strukturu vstupu a výstupu na úrovni stroje a podporu ochrany informací atd.
Computer architecture mainly studies the distribution of software and hardware functions and the determination of software and hardware interfaces. Since the 1970s, significant progress has been made in computer software. Although computers have made huge breakthroughs in performance, speed, price, reliability, organization, and implementation technology compared to the end of the 1950s, their system structure has not made any obvious and breakthrough progress. The system structure of most machines still does not deviate from the scope of the von Neumann type. The system structure seen by programmers has not changed much from the end of the 1950s. For example, with regard to the instruction system, programmers are basically still designing much more complex software based on the viewpoint of computer system structure in the late 1950s. The serious disconnection between the hardware composition of traditional computers and high-level languages and operating systems will adversely affect the reliability of software, the efficiency of source program compilation, and the efficiency of system problem-solving. This is an important aspect of the computer system structure that needs to be resolved. Subject. The data flow computer system structure thought that appeared in the 1970s changed the instruction control flow control method of the traditional computer to the data control flow control method, so that it is possible to automatically remove the obstacles of computational correlation and achieve the goal of high parallelism.
Distribuce počítačového softwaru a hardwarových funkcí by měla být zvažována především z nákladů na implementaci, dopad na rychlost a další požadavky na výkon, to znamená, jak alokovat může zlepšit poměr výkon-cena. Zpevnění nebo zpevnění základních a obecných funkcí operačního systému přispívá ke zlepšení účinnosti provádění a rychlosti operačního systému a ke snížení režie; zatímco funkce jsou nestabilní, tedy ty, které je třeba neustále měnit, a implementace softwaru přispívá k poskytování potřebné flexibility. Náklady na implementaci zahrnují náklady na vývoj a náklady na opakovanou výrobu. Náklady na návrh hardwaru a opakovanou výrobu jsou vyšší než náklady na software. Funkce vhodné pro hardwarovou implementaci by měly být stabilní, běžně používané a relativně malé a zpomalení rychlosti implementace softwaru bude mít větší dopad na výkon počítačového systému. . Implementace hardwaru je ekonomicky výhodná pouze pro počítačové systémy s velkým výkonem.
Osm druhů atributů
1. Reprezentace dat ve stroji: datový typ a formát, který může hardware přímo rozpoznat a ovládat
2·Režim adresování: nejmenší možná jednotka adresování, typ režimu adresování, operace s adresou
3·Organizace registru: definice, množství a pravidla použití provozního registru, indexového registru, kontrolního registru a speciálního registru
4. Instrukční systém: typ operace strojové instrukce, formát, řazení a mechanismus řízení mezi instrukcemi
5·Úložný systém: minimální adresovací jednotka, způsob adresování, kapacita hlavní paměti, maximální adresovatelný prostor
6 · Mechanismus přerušení: typ přerušení, úroveň přerušení a metoda odezvy přerušení atd.
7·Struktura vstupu a výstupu: režim připojení vstupu a výstupu, procesor/paměť a vstupní a výstupní zařízení Způsob výměny dat a řízení procesu výměny dat
8·Ochrana informací: metoda ochrany informací, hardwarový mechanismus ochrany informací.
Obsah výzkumu
Koncepční struktura a funkční charakteristika počítače, která odkazuje na atributy počítačového systému v očích programátora systému, a zahrnuje také počítačový systém viděný konstruktérem stroje. Logická struktura. Stručně řečeno, jde o podrobný popis vztahu mezi jednotlivými částmi počítače. Jedná se o komplexní koncept hardwaru, softwaru, algoritmů a jazyka. Termín počítačová architektura se také nazývá struktura počítačového systému. Rozvinul se v předmět s širokým rozsahem obsahu a stal se povinným kurzem pro počítačové obory na vysokých školách a univerzitách. Hlavní obsah jeho výzkumu je následující:
1. Instrukční systém zahrnuje typ operace, formát a adresování strojových instrukcí.
2. Systém úložiště zahrnuje víceúrovňovou hierarchii úložiště, strukturu virtuálního úložiště, strukturu vysokorychlostního úložiště a ochranu úložiště.
3. Vstupní a výstupní systém zahrnuje kanálovou strukturu, vstupní a výstupní procesorovou strukturu atd.
4. Struktura centrální procesorové jednotky zahrnuje von Neumannovu strukturu, non-von Neumannovu strukturu, překrývající se strukturu, strukturu potrubí, paralelní strukturu zpracování atd.
5. Vícepočítačový systém zahrnuje propojovací technologii, víceprocesorovou strukturu, strukturu distribuovaného zpracování, strukturu počítačové sítě atd.
6. Komunikační spojení člověk-stroj zahrnuje rozhraní člověk-stroj, spolehlivost počítače, dostupnost a udržovatelnost (ty tři se nazývají technologie RAS), technologie odolné proti poruchám, diagnostika chyb atd.
Kromě toho je studován také jazyk pro popis počítačového hardwaru, hodnocení výkonu počítačového systému a další obsah.
Historie vývoje
Počítačová architektura prošla čtyřmi různými fázemi vývoje.
Fáze jedna
Před polovinou 60. let to byla raná éra rozvoje počítačové architektury. V tomto období se stal univerzální hardware zcela běžným, ale software je napsán speciálně pro každou konkrétní aplikaci. Většina lidí si myslí, že vývoj softwaru je něco, co není třeba plánovat dopředu. Software je v této době ve skutečnosti program menšího rozsahu a programátorem a uživatelem programu je často stejná (nebo stejná skupina) lidí. Vzhledem k malému rozsahu je program poměrně snadno napsaný, neexistuje žádná systematická metoda a neexistuje žádné řízení práce na vývoji softwaru. Toto individualizované softwarové prostředí dělá z návrhu softwaru pouze vágní proces implicitně prováděný v myslích lidí. Kromě seznamu programů nejsou zachovány vůbec žádné další dokumenty.
Fáze dvě
Od poloviny 60. do poloviny 70. let to byla druhá generace vývoje počítačové architektury. Za posledních 10 let udělala výpočetní technika velký pokrok. Víceprogramový a víceuživatelský systém představil nový koncept interakce člověk-počítač, vytvořil novou sféru počítačových aplikací a posunul koordinaci hardwaru a softwaru na novou úroveň. Systémy v reálném čase mohou shromažďovat, analyzovat a transformovat data z více informačních zdrojů, takže řízení procesu lze provádět v milisekundách namísto minut. Pokrok v technologii online úložiště vedl ke vzniku první generace systémů pro správu databází. Důležitým rysem této etapy je vznik „softwarových dílen“, rozsáhlé využívání produktového softwaru. "Softwarové dílny" však v zásadě stále používají individualizované metody vývoje softwaru, které byly vytvořeny v prvních dnech. S rostoucí popularitou počítačových aplikací se počet softwaru dramaticky rozšířil. Chyby zjištěné během činnosti programu musí být opraveny; uživatelé musí odpovídajícím způsobem upravit program, když mají nové požadavky; při aktualizaci hardwaru nebo operačních systémů je obvykle potřeba programy upravit, aby se přizpůsobily novému prostředí. Výše zmíněná údržba softwaru spotřebovává zdroje alarmujícím tempem. Vážněji, individuální povaha mnoha programů je nakonec činí neudržitelnými. Právě se začala objevovat „softwarová krize“. V roce 1968 uspořádali počítačoví vědci ze Severoatlantické aliance mezinárodní konferenci ve Spolkové republice Německo, kde diskutovali o softwarové krizi. Na této konferenci byl formálně navržen a použit termín „softwarové inženýrství“ a zrodila se nová inženýrská disciplína.
Třetí fáze
Třetí generace vývoje počítačové architektury začala v polovině 70. let a trvala celých 10 let. Za posledních 10 let udělala výpočetní technika velký pokrok. Distribuované systémy značně zvýšily složitost počítačových systémů. Místní sítě, rozlehlé sítě, širokopásmová digitální komunikace a zvýšená poptávka po "okamžitém" přístupu k datům, to vše klade vyšší nároky na vývojáře softwaru. Během tohoto období se však software stále používal hlavně v průmyslu a akademické sféře s velmi malým počtem osobních aplikací. Hlavním rysem tohoto období je vznik mikroprocesorů a mikroprocesory byly široce používány. Všude jsou k vidění „chytré“ produkty s mikroprocesory jako jádrem. Nejdůležitějším chytrým produktem je samozřejmě osobní počítač. Za méně než 10 let se osobní počítače staly oblíbeným zbožím.
Fáze čtyři
Čtvrtá generace vývoje počítačové architektury začala v polovině 80. let a pokračuje až do současnosti. V této fázi lidé cítí kombinovaný účinek hardwaru a softwaru. Výkonné stolní počítače, lokální sítě a rozlehlé sítě řízené složitými operačními systémy v kombinaci s pokročilým aplikačním softwarem se staly současným mainstreamem. Architektura počítače se rychle změnila z centralizovaného hostitelského prostředí na distribuované prostředí klient/server (nebo prohlížeč/server). Celosvětová informační síť poskytuje lidem podmínky pro provádění rozsáhlých výměn a plné sdílení zdrojů. Softwarový průmysl již zaujímal klíčové postavení ve světové ekonomice. S postupujícím časem se stále objevují nové technologie. Objektově orientované technologie rychle nahradily tradiční metody vývoje softwaru v mnoha oborech.
„Technologie čtvrté generace“ vývoje softwaru změnila způsob, jakým softwarový průmysl vyvíjí počítačové programy. Expertní systémy a software umělé inteligence konečně vyšly z laboratoře a vstoupily do praktických aplikací, řešících velké množství praktických problémů. Software pro umělou neuronovou síť využívající fuzzy logiku ukázal světlé vyhlídky na rozpoznávání vzorů a antropomorfní zpracování informací. Technologie virtuální reality a multimediální systémy umožňují komunikovat s uživateli zcela jinými způsoby než dosud. Genetické algoritmy nám umožňují vyvíjet software, který je umístěn na velkých paralelních biologických počítačích.
Zásada
Architektura počítače řeší problémy, které počítačový systém obecně a funkcí potřebuje řešit. Je to odlišný koncept od počítačové kompozice a počítačové implementace. Architektura může mít více komponent a jedna kompozice může mít také více fyzických realizací.
Logická realizace struktury počítačového systému včetně složení vnitřního datového toku a řídicího toku stroje a logický návrh. Jeho cílem je racionálně kombinovat různé komponenty a zařízení do počítače tak, aby bylo dosaženo specifické struktury systému při splnění požadovaného poměru ceny a výkonu. Obecně lze říci, že rozsah výzkumu počítačové kompozice zahrnuje: stanovení šířky datové cesty, stanovení míry sdílení funkčních komponent různými operacemi, stanovení vyhrazených funkčních komponent, stanovení paralelismu funkčních komponent, návrh strategií ukládání do vyrovnávací paměti a řazení do front a navrhování kontrolních mechanismů A určení, jakou spolehlivou technologii použít atd. Fyzická realizace počítačové kompozice. Včetně fyzické struktury procesoru, hlavní paměti a dalších komponent, integrace a rychlosti zařízení, rozdělení a připojení zařízení, modulů, plug-inů a backplanes, konstrukce speciálních zařízení, technologie přenosu signálu, napájení , chladicí a montážní technologie a související technologie Výrobní proces a technologie.
Klasifikace
Flynnova klasifikace
V roce 1966 navrhl Michael J. Flynn klasifikovat počítačové systémy podle paralelismu toku instrukcí a toku dat, který je definován následovně.
·Instrukční tok: sekvence instrukcí prováděných strojem
·Datový tok: datová sekvence volaná tokem instrukcí, včetně vstupních dat a mezivýsledků
·Parallel Degree: Maximální možný počet paralelně prováděných instrukcí nebo dat.
Flynn rozděluje počítačové systémy do 4 kategorií podle různých metod organizace toku instrukcí a toku dat.
1·Single Instruction Stream Single DataStream (Single Instruction Stream Single DataStream, SISD)
SISD je vlastně tradiční jednoprocesorový počítač se sekvenčním prováděním a jeho instrukční komponenty dekódují pouze jednu instrukci a přiřazují data pouze jedné operační části.
2·Single Instruction Stream Multiple Data Stream (SIMD)
SIMD je reprezentován paralelním procesorem. Struktura je znázorněna na obr. 1. Paralelní procesor obsahuje několik. Dvě jednotky opakovaného zpracování PU1 až PUn jsou řízeny jedinou instrukční jednotkou a každá jim přiděluje různá data požadovaná podle požadavků stejného toku instrukcí.
3 · Vícenásobný tok instrukcí Jeden datový tok (MISD)
Struktura MISD, má n procesních jednotek, podle požadavků n různých instrukcí Různé zpracování stejného datového toku a jeho mezivýsledky. Výstup jedné procesní jednotky se používá jako vstup jiné procesní jednotky.
4·Multiple Instruction Stream Multiple Data Stream (MIMD)
Struktura MIMD se týká implementace operací, úloh, instrukcí a dalších úrovní paralelismu. U vícestrojových systémů patří do MIMD multiprocesory.
Klasifikace ve stylu Feng
V roce 1972 Feng Zeyun navrhl použít maximální paralelismus pro klasifikaci počítačové architektury. Takzvaný maximální stupeň paralelismu Pm označuje maximální počet binárních číslic, které může počítačový systém zpracovat za jednotku času. Za předpokladu, že počet binárních bitů, které lze zpracovat v každém hodinovém cyklu △ti je Pi, je průměrný paralelismus v T hodinových cyklech Pa=(∑Pi)/T (kde i je 1, 2, ..., T) . Průměrný stupeň paralelismu závisí na stupni běhu systému a nemá nic společného s aplikací. Průměrná míra využití systému v období T je tedy μ=Pa/Pm=(∑Pi)/(T*Pm). Bod v pravoúhlém souřadnicovém systému se používá k reprezentaci počítačového systému. Abscisa představuje šířku slova (N bitů), tj. počet binárních číslic zpracovaných současně ve slově; pořadnice představuje šířku bitového řezu (M bitů), to znamená v jednom bitu. Pro počet slov, která lze současně zpracovat ve filmu, je maximální stupeň paralelismu Pm=N*M.
Z toho jsou odvozeny čtyři různé počítačové struktury:
①Word serial a bit serial (zkráceně WSBS). Kde N=1 a M=1.
②Word parallel, bit serial (abbreviated as WPBS). Where N=1, M>1.
③Word serial, bit parallel (referred to as WSBP). Where N>1, M=1.
④Word parallel, bit parallel (referred to as WPBP). Where N>1, M>1.
Technologická inovace
Architektura počítače je založena na teorii Turingova stroje a patří k von Neumannově architektuře. Teorie Turingova stroje a von Neumannova architektura jsou v podstatě jednorozměrné sériové, zatímco vícejádrové procesory patří do distribuované a diskrétní paralelní struktury a je třeba vyřešit nesoulad mezi těmito dvěma.
Za prvé, problém shody mezi sériovým modelem Turingova stroje a fyzicky distribuovaným vícejádrovým procesorem. Model Turingova stroje znamená sériový programovací model. Pro sériové programy je obtížné používat více jader procesoru, která jsou fyzicky rozmístěna pro dosažení akcelerace výkonu. Paralelní programovací model zároveň nebyl dobře propagován a je omezen pouze na omezené oblasti, jako je vědecká výpočetní technika. Výzkumníci by měli hledat vhodný mechanismus k dosažení problému shody mezi sériovým Turingovým modelem stroje a fyzicky distribuovaným vícejádrovým procesorem nebo k zúžení mezery mezi těmito dvěma, k vyřešení problému „programování paralelních programů je obtížné, akcelerace sériového programu je malý".
Pokud jde o podporu vícevláknových paralelních aplikací, budoucí vícejádrové procesory by měly být zvažovány z následujících dvou směrů. Prvním je zavedení nového programovacího modelu, který dokáže lépe vyjádřit paralelismus. Vzhledem k tomu, že nový programovací model umožňuje programátorům jasně vyjádřit paralelnost programu, lze výrazně zlepšit výkon. Například procesor Cell poskytuje různé programovací modely pro podporu různých aplikací. Potíž spočívá v tom, jak efektivně propagovat programovací model a jak vyřešit problém s kompatibilitou. Druhým typem směru je poskytnout lepší hardwarovou podporu, aby se snížila složitost paralelního programování. Paralelní programy často potřebují použít mechanismus zámku k dosažení synchronizace a vzájemného vyloučení kritických zdrojů. Programátor musí pečlivě určit umístění zámku, protože konzervativní strategie zamykání omezuje výkon programu a přesná strategie zamykání značně zvyšuje složitost programování. Některé studie v tomto ohledu provedly účinné průzkumy. Mechanismus Speculative Lock Elision například umožňuje ignorovat operaci zámku prováděnou programem bez konfliktů, čímž snižuje složitost programování a zároveň bere v úvahu výkon paralelního provádění programu. Tento mechanismus umožňuje programátorům soustředit se na správnost programu, aniž by museli příliš zvažovat výkon programu. Mechanismus transakční koherence a konzistence (TCC) radikálněji zvažuje problémy konzistence dat v jednotkách operací s vícenásobným přístupem do paměti (transakce), což dále zjednodušuje složitost paralelního programování.
Běžné komerční vícejádrové procesory jsou zaměřeny především na paralelní aplikace. Jak používat vícejádrové urychlení sériových programů je stále problém hodný pozornosti. Klíčovou technologií je použití softwaru nebo hardwaru k automatickému odvození kódů nebo vláken, které lze paralelně spouštět na vícejádrovém procesoru ze sériového programu. Existují tři hlavní metody pro vícejádrové zrychlení sériových programů, včetně paralelního kompilátoru, spekulativního multi-threadingu a mechanismu předběžného načítání založeného na vláknech. Při tradiční paralelní kompilaci musí kompilátor vynaložit velké úsilí, aby zajistil, že mezi vlákny, která mají být rozdělena, nebude žádná závislost na datech. Během kompilace existuje mnoho fuzzy závislostí, zvláště když jsou povoleny ukazatele (jako jsou programy C), kompilátor musí přijmout konzervativní strategie, aby zajistil správnost provádění programu. To značně omezuje míru souběžnosti, kterou mohou sériové programy využívat, a také určuje, že paralelní kompilátor lze použít pouze v úzkém rozsahu. K vyřešení těchto problémů lidé navrhují spekulativní vícevláknové a na vláknech založené mechanismy předběžného načítání. Od doby, kdy byl tento koncept předložen až do současnosti, se však většina výzkumu v tomto směru omezila na akademický svět a pouze několik komerčních zpracovatelů tuto technologii aplikovalo a omezilo se pouze na speciální aplikační oblasti. Věříme, že kombinace technologie dynamické optimalizace a spekulativního multithreadingu (včetně mechanismu předběžného načítání založeného na vláknech) je možným budoucím vývojovým trendem.
Za druhé, problém sladění jednorozměrného adresního prostoru von Neumannovy architektury a vícerozměrné úrovně přístupu k paměti vícejádrového procesoru. Architektura von Neumanna v podstatě používá jednorozměrný adresní prostor. Kvůli nerovnoměrnému zpoždění přístupu k datům a různým kopiím stejných dat na více jádrech procesoru jsou způsobeny problémy s konzistencí dat. Výzkum v této oblasti je rozdělen do dvou kategorií: Jeden typ výzkumu především zavádí novou úroveň přístupu k paměti. Nová úroveň přístupu do paměti může přijmout jednorozměrnou distribuovanou implementaci. Typickým příkladem je přidání distribuované a jednotné sítě adresovacích registrů. Funkce globálního jednotného adresování se vyhýbá úvahám o konzistenci dat. Ve srovnání s tradičním vysokokapacitním přístupem do mezipaměti mohou registry zároveň poskytovat rychlejší přístupové rychlosti. TRIPS i RAW implementovaly podobné sítě základních registrů. Kromě toho může být nová úroveň přístupu k paměti také soukromá. Každé jádro procesoru má například svůj vlastní soukromý přístupový prostor k paměti. Výhodou je, že prostor pro ukládání dat je lépe rozdělen a u některých soukromých dat není třeba zvažovat problémy s konzistencí dat. Například procesor Cell nastaví soukromou datovou vyrovnávací paměť pro každé jádro SPE. Další typ výzkumu zahrnuje především vývoj nového protokolu konzistence mezipaměti. Důležitým trendem je uvolnění vztahu mezi korektností a výkonem. Spekuluje se například, že protokol Cache spekuluje a provádí související instrukce před potvrzením konzistence dat, čímž se snižuje dopad operací přístupu do paměti s dlouhou latencí na kanál. Kromě toho přijaly podobné myšlenky také Token Coherence a TCC.
Za třetí, rozmanitost programů a problém shody jediné systémové struktury. Budoucí aplikace ukazují vlastnosti rozmanitosti. Na jedné straně se hodnocení procesoru neomezuje pouze na výkon, ale zahrnuje i další ukazatele jako spolehlivost a bezpečnost. Na druhou stranu, i když vezmete v úvahu pouze snahu o zlepšení výkonu, různé aplikace také obsahují různé úrovně paralelismu. Rozmanitost aplikací vede budoucí procesory k tomu, aby měly konfigurovatelnou a flexibilní architekturu. TRIPS v tomto ohledu učinila plodné průzkumy. Například jeho procesorová jádra a úložné systémy na čipu mají konfigurovatelné schopnosti, takže TRIPS může současně těžit paralelismus na úrovni instrukcí, paralelismus na úrovni dat a paralelismus na úrovni instrukcí.
Vznik nových procesorových struktur, jako jsou vícejádrové a Cell, není jen přelomovou událostí v historii architektury procesorů, ale také podvracením tradičních výpočetních modelů a architektury počítačů.
V roce 2005 byla odhalena řada počítačových architektur s dalekosáhlým vlivem, které mohou položit zásadní základ pro architekturu počítačů na příštích deset let, přinejmenším pro procesor a dokonce i celou architekturu počítače. Symbolické vedení. S nárůstem výpočetní hustoty se mění standardy měření a metody výkonu procesoru a počítače. Z hlediska aplikace byla nalezena nejuspokojivější kombinace mobilního a vychylovacího výkonu a může vybuchnout ruční zařízení Rychlé rozšíření zařízení. Přestože jsou kapesní zařízení v dnešní době poměrně populární, z hlediska výpočetního výkonu, škálovatelnosti a spotřeby energie plně plní roli, kterou by kapesní zařízení mělo mít; na druhou stranu serverové a desktopové terminály orientované na výkon začínají uvažovat o snížení spotřeby energie. Chytněte se trendu ochranářsky smýšlející společnosti.
Buňka se sama přizpůsobí této změně a sama tuto změnu také vytváří. Proto od počátku klade důraz na různé designové styly. Kromě možnosti několikanásobného rozšíření má interní SPU (Synergistic Processor Unit) procesoru dobrou škálovatelnost, takže může čelit současně. Univerzální a účelové zpracování, realizovat flexibilní rekonstrukci zpracovatelských zdrojů. To znamená, že pomocí vhodného softwarového řízení se Cell dokáže vypořádat s různými typy úloh zpracování a zároveň je schopen zjednodušit složitost návrhu.