Datoru arhitektūra — definīcija, ISA, mikroarhitektūra un īstenošana

Datortehnikā datoru arhitektūra ir datorsistēmas konceptuālais dizains un darbības pamatstruktūra. Tā ir visu konstrukcijas prasību (jo īpaši ātruma un starpsavienojumu) tehniskie rasējumi un funkcionālais apraksts, tas ir veids, kā projektēt un realizēt dažādas datora daļas - galvenokārt koncentrējoties uz to, kā centrālais procesors (CPU) darbojas iekšēji un kā tas piekļūst adresēm atmiņā.

To var definēt kā zinātni un mākslu izvēlēties un savstarpēji savienot aparatūras komponentus, lai izveidotu datorus, kas atbilst funkcionālajiem, veiktspējas un izmaksu mērķiem.

Datoru arhitektūra ietver vismaz trīs galvenās apakškategorijas:

  1. Instrukciju kopuma arhitektūra jeb ISA ir abstraktais skaitļošanas sistēmas modelis, ko redz mašīnvalodas (vai asembleru valodas) programmētājs, tostarp instrukciju kopums, atmiņas adrešu režīmi, procesora reģistri, kā arī adrešu un datu formāti.
  2. Mikroarhitektūra, saukta arī par datora organizāciju, ir zemāka līmeņa detalizēts sistēmas apraksts, kas ir pietiekams, lai pilnībā aprakstītu visu skaitļošanas sistēmas daļu darbību un to, kā tās ir savstarpēji savienotas un sadarbojas, lai īstenotu ISA. Piemēram, datora kešatmiņas lielums ir organizatorisks jautājums, kam parasti nav nekāda sakara ar ISA.
  3. Sistēmas projektēšana, kas ietver visus pārējos skaitļošanas sistēmas aparatūras komponentus, piemēram:

·         Sistēmu starpsavienojumi, piemēram, datoru kopnes un komutatori.

·         Atmiņas kontrolieri un hierarhijas.

·         procesora atslogošanas mehānismi, piemēram, tiešā piekļuve atmiņai.

·         Tādi jautājumi kā daudzprocesoru apstrāde.

Kad ir noteikta gan ISA, gan mikroarhitektūra, faktiskā skaitļošanas sistēma ir jāprojektē aparatūrā. Šo projektēšanas procesu sauc par implementāciju. Īstenošana parasti ir aparatūras inženierijas projektēšanas process.

Īstenošanu var iedalīt trijās, bet ne pilnībā atsevišķās daļās:

  • Loģikas īstenošana: Loģiskā loģika: mikroarhitektūrā definēto bloku projektēšana, galvenokārt reģistru pārneses un vārtu līmenī.
  • Ķēžu īstenošana: (vārti, multipleksori, flip-flopi u. c.), kā arī dažu lielāku bloku (ALU, kešatmiņas u. c.), kurus veiktspējas apsvērumu dēļ var realizēt šajā līmenī vai pat zemākā fiziskajā līmenī, projektēšana tranzistora līmenī.
  • Fiziskā īstenošana: Fiziskais izpildījums: tiek uzzīmētas fiziskās shēmas, dažādi shēmas komponenti tiek izvietoti mikroshēmas plānā vai uz plates, un tiek izvietoti tos savienojošie vadi.

Procesoru gadījumā visu ieviešanas procesu bieži sauc par procesora projektēšanu; tā var būt arī radniecīgu procesoru projektu saime, piemēram, RISC un CISC.

Instrukciju kopuma arhitektūra (ISA) — kas tas nosaka un kāpēc tā ir svarīga

ISA nosaka, ko programmētājs un kompilators var sagaidīt no procesora abstraktajā līmenī. Tur ietilpst:

  • instrukciju veidi (aritmētiskas, loģiskas, pārvietošanas, zaru, ieejas/izejas u. tml.),
  • datu formāti (piemēram, 8/16/32/64 bitu vārdi, peldošā komata formāti),
  • >reģistru kopums un to nozīme,
  • adresēšanas režīmi (kā veido adreses, indeksēšana, pārsūtīšana),
  • privileģētās instrukcijas un izsaukumu/režīmu pārvaldība operētājsistēmai,
  • ABI (Application Binary Interface) — bināra saderība starp programmatūru un aparatūru.

Praktiskos piemēros: x86, ARM, MIPS, un jauno RISC-V — visi ir dažādu ISA piemēri. ISA ietekmē programmu saderību (piem., vecas programmas var darboties uz jaunākas ISA versijas, ja tiek saglabāta atpakaļsaderība) un programmatūras rīku ķēdi (kompilatori, debageri).

Mikroarhitektūra — kā ISA tiek īstenota reālajā procesorā

Mikroarhitektūra ir detalizētāks apraksts par to, kā tieši ISA tiek realizēta — kāda ir datu ceļa (datapath) un vadības (control) struktūra, kā tiek organizētas kešatmiņas, kā darbojas instrukciju cauruļvadi u. c. Galvenie elementi un paņēmieni mikroarhitektūrā:

  • Pipelines (cauruļvada izpilde) — instrukcijas tiek dalītas posmos (fetch, decode, execute, memory, writeback), kas uzlabo caurlaidspēju;
  • Superskalaritāte — spēja izpildīt vairākas instrukcijas vienlaikus;
  • Out-of-order (OOO) izpilde — instrukcijas var tikt veiksmīgi izpildītas ne secīgi, lai izvairītos no gaidīšanas;
  • Brāņu prognozēšana (branch prediction) un reģistru pārdēvēšana (register renaming) — lai mazinātu zaru un atkarību ietekmi uz cauruļvadu;
  • Kešatmiņu hierarhija un TLB — samazina piekļuves laiku galvenajai atmiņai;
  • Microcode un citu vadības mehānismu izmantošana kompleksu ISA instrukciju īstenošanai;
  • Enerģijas pārvaldība un termiskā kontrole — mūsdienu mikroarhitektūrās strādā arī efektivitātes režīmi, dinamiska takts frekvence un frekvenču samazināšana.

Atšķirības: divi procesori ar to pašu ISA var būt ļoti atšķirīgi mikroarhitektūrā — viens var būt vienkāršs, bet ļoti zemas jaudas ierīcēm paredzēts, bet otrs — sarežģīts, augstas veiktspējas servera CPU ar daudzveidīgiem optimizācijas mehānismiem.

Sistēmas projektēšana un aparatūras komponenti

Sistēmas projektēšana aptver visu, kas nav tieši CPU mikroarhitektūra, bet kas ir būtisks sistēmas darbībai un veiktspējai. Nozīmīgākie aspekti:

  • Sistēmu starpsavienojumi (kopnes, komutatori, tīkla interfeisi) un to protokoli;
  • Atmiņas hierarhijas izveidošana — kešatmiņu līmeņi (L1/L2/L3), galvenā DRAM atmiņa, SSD un cita nevolatīva krātuve;
  • Atmiņas kontrolieri, keškoherences protokoli (piem., MESI), NUMA arhitektūras apstākļi daudzkodolu sistēmās;
  • Procesora atteices mehānismi un perifērijas piekļuve (DMA, I/O kontrolieri);
  • Drošības un aizsardzības mehānismi: privileētie režīmi, atmiņas izpildes aizliegumi (NX), aparatūras šifrēšana, uzticama izpildes vide (TEEs).

Īstenošana — no dizaina līdz fiziskai mikroshēmai

Šo posmu bieži sauc par implementāciju, un to var dalīt vairākos soļos (dažkārt pārliecīgi pārklājošos):

  • Loģikas dizains — dizainēšana reģistru un loģisko bloku līmenī; parasti izmanto aparatūras apraksta valodas (HDL) kā Verilog vai VHDL;
  • Ķēžu dizains — vārtu, multipleksoru, flip‑flopu u. c. ķēžu izvēle un projektēšana; daļu komponentu (ALU, kešatmiņa) var optimizēt tranzistoru līmenī;
  • Fiziskā īstenošana — place & route, izkārtojuma zīmēšana mikroshēmā vai plates līmenī, vadu izvietošana, lai nodrošinātu signālu integritāti un laika prasības;
  • Sinteze un verificēšana — loģikas simulācija, formal verification, laika analīze (timing closure), kļūdu meklēšana un labošana;
  • Fabrication vs. prototipēšana — ASIC ražošana pret ātrāku prototipu izmantošanu uz FPGA (lai pārbaudītu mikroarhitektūru pirms dārgas ražošanas);
  • Testēšana un validācija — funkcionalitātes testi, veiktspējas mērījumi, termiskie testi un izturības pārbaudes ražošanas posmā.

Veiktspējas un dizaina kompromisi

Datoru arhitektūrā pastāv tipiski kompromisi:

  • veiktspēja pret enerģijas patēriņu (ātrāks dizains parasti patērē vairāk enerģijas),
  • kompleksitāte pret izmaksām (sarežģīta mikroarhitektūra palielina izstrādes un ražošanas izmaksas),
  • latence pret caurlaidspēju (piem., kešatmiņu dizains ietekmē abu parametru attiecību),
  • saderība pret optimizācijām (atpakaļsaderība ISA līmenī var ierobežot mikroarhitektūras iespējas).

Kā arhitektūras izvēles ietekmē programmatūru

ISA ļauj programmatūrai (kompilatoriem, operētājsistēmām, lietojumprogrammām) saprast aparatūras iespējas. Mikroarhitektūra nosaka, cik efektīvi konkrētas programmas darbosies — piemēram, cik labi tiek izmantota caurlaidspēja, cik bieži rodas cache miss vai cik bieži zars prognozes kļūst par veiktspējas robu. No arhitekta skatpunkta svarīgi ir arī nodrošināt rīku atbalstu (simulatori, debageri, profili), kas ļauj programmatūras izstrādātājiem optimizēt kodu.

Secinājums

Datoru arhitektūra aptver gan augstā līmeņa abstrakcijas (ISA), gan zemāka līmeņa realizācijas detaļas (mikroarhitektūra un aparatūras implementācija). Sapratne par šiem līmeņiem un to mijiedarbību ir būtiska, lai izstrādātu efektīvas, drošas un izmaksu ziņā pamatotas skaitļošanas sistēmas. Mūsdienu arhitektūras paplašinātas prasības — energoefektivitāte, drošība, paralēlisms un mērogojamība — padara arhitektūras lēmumus par centrālu faktoru datoru un iekārtu izstrādē.

Vairāk apakšdefinīciju

Daži datoru arhitektūras praktiķi izmanto sīkākas apakškategorijas:

  • Makroarhitektūra: Arhitektūras slāņi, kas ir abstraktāki nekā mikroarhitektūra, piemēram, ISA.
  • Instrukciju kopas arhitektūra (ISA): Kā definēts iepriekš.
  • UISA (mikrokoda instrukciju kopas arhitektūra): Mašīnu saimei ar dažādām aparatūras līmeņa mikroarhitektūrām var būt kopīga mikrokoda arhitektūra, un tāpēc to sauc par UISA.
  • Montāžas ISA: Vieds asembleris var konvertēt abstrakto asemblera valodu, kas ir kopīga procesoru grupai, nedaudz atšķirīgā mašīnvalodā dažādām procesoru implementācijām.
  • Programmētāja redzamā makroarhitektūra: Augstāka līmeņa valodu rīki, piemēram, kompilatori, var definēt noteiktu saskarni programmētājiem, kas tos izmanto, abstrahējoties no atšķirībām starp pamatā esošo ISA, UISA un mikroarhitektūru; piemēram, C, C++ vai Java standarti definē trīs dažādas noteiktas programmēšanas saskarnes.
  • Pin arhitektūra: Funkciju kopums, kas mikroprocesoram jānodrošina no aparatūras platformas viedokļa. Piemēram, signāli, kas procesoram jāizstaro instrukcijas izpildes laikā.

Datoru arhitektūru piemēri

  • Intel un AMD ražotais x86.
  • SPARC, ko ražo Sun Microsystems un citi.
  • PowerPC, ko ražo Apple, IBM un Motorola.

Saistītās lapas

Jautājumi un atbildes

J: Kas ir datora arhitektūra?


A: Datoru arhitektūra ir datorsistēmas konceptuālais dizains un darbības pamatstruktūra. Tā ietver visu konstrukcijas prasību, piemēram, ātruma un savstarpējo savienojumu, tehniskos rasējumus un funkcionālo aprakstu, lai izveidotu datoru, kas atbilst veiktspējas, izmaksu un funkcionālajiem mērķiem.

J: Kādas ir trīs galvenās datoru arhitektūras apakškategorijas?


A: Trīs galvenās datoru arhitektūras apakškategorijas ir instrukciju kopas arhitektūra (ISA), mikroarhitektūra (pazīstama arī kā datora organizācija) un sistēmas projektēšana.

J: Ko ietver ISA?


A. Instrukciju kopas arhitektūra (ISA) ietver abstraktu datorsistēmas modeli, ko redz mašīnvalodas vai asemblervalodas programmētājs. Tas ietver instrukciju kopumu, atmiņas adreses režīmus, procesora reģistrus, kā arī adrešu un datu formātus.

J: Ko ietver mikroarhitektūra?


A: Mikroarhitektūra ietver zemāka līmeņa detalizētu sistēmas aprakstu, kas ir pietiekams, lai pilnībā aprakstītu visu skaitļošanas sistēmas daļu darbību, kā arī to, kā tās ir savstarpēji savienotas un mijiedarbojas cita ar citu, lai īstenotu ISA.

J: Ko ietver sistēmas projektēšana?


A: Sistēmas projektēšana ietver visus pārējos skaitļošanas sistēmas aparatūras komponentus, piemēram, sistēmas starpsavienojumus, piemēram, datoru kopnes un komutatorus, atmiņas kontrolierus, procesora atslogošanas mehānismus, piemēram, tiešo piekļuvi atmiņai, daudzprocesoru problēmas utt.

J: Kā īstenošana ir sadalīta trīs daļās?


A: Implementāciju var iedalīt loģiskajā implementācijā, kas ietver mikroarhitektūrā definēto bloku projektēšanu reģistru pārneses vai vārtu līmenī; shēmas implementācijā, kas ietver pamatelementu vai lielāku bloku projektēšanu tranzistoru līmenī; fiziskajā implementācijā, kas ietver fizisku shēmu zīmēšanu, dažādu shēmas komponentu izvietošanu mikroshēmas plānā vai uz plates, vadu maršrutēšanu, kas tos savieno kopā.

AlegsaOnline.com - 2020 / 2025 - License CC3