Arhitektura računara
Arhitektura računara je unutrašnja struktura digitalnog računara koju sačinjava dizajn i raspored skupa instrukacija i registara za skladištenje podataka. Određena računarska arhitektura se bira imajući u vidu tip programa (softvera) koji će se na njemu izvršavati (poslovni, naučni, opšte namjene, itd). Glavne komponente ili podsistemi jedne računarske arhitekture su ulazno/izlazni uređaji, skladištenje (primarna i sekundarna memorija), komunikacija, kontrola i procesovanje. Za svaki se može reći da poseduje vlastitu, posebnu arhitekturu.
U računarskoj nauci i inženjerstvu, arhitektura računara je skup disciplina koja opisuje računarski sistem navodeći njegove delove i njihove odnose.
Na primer, na visokom nivou, računarski inženjeri mogu biti zabrinuti kako centralna procesorska jedinica (CPU) deluje i kako koristi memoriju računara. Neke moderne (2011) računarske arhitekture uključuju klastere računarstva i neujednačen pristup memoriji.
Računarski inženjeri koriste računare za dizajn novih tehnologija u računarstvu. Iako je dizajn veoma lako promeniti, kompajler dizajneri često sarađuju sa arhitektama, predlažući poboljšanja u setu instrukcija. Moderni emulatori mogu meriti vreme u ciklusima generatora takta: proceniti potrošnju energije u džulima i daju realne procene veličine koda u bajtovima. Oni utiču na pogodnost korisnika, trajnost baterije, kao i veličine i cenu najvećeg fizičkog dela računara: memoriji. To jest, oni pomažu da proceni vrednost računara.
Istorija
[uredi | uredi izvor]Prva dokumentovana računarska arhitektura bila u prepisci između Čarlsa Bebidža i Ade Lovlejs, u kojoj je opisana analitička mašina. Još jedan primer je prvi nacrt izveštaja Džona fon Nojmana o EDVAC iz 1945, koji je opisao organizaciju logičkih elemenata. IBM ga koristi za razvoj računara IBM 701, prvog komercijalnog računara sa uskladištenim programima, isporučenog početkom 1952.
Termin „arhitektura“ u računarskoj literaturi može se pratiti na radu Lajle R. Johnson, Mohamed Usman Khana i Frederika P. Brooks, Jr, 1959- članova odeljenja Mašinske organizacije u glavnom istraživačkom centru IBM-a. Džonson je imao priliku da napiše istraživački rad o Streču, IBM - razvija superračunar u naučnoj laboratoriji Los Alamos. Da bi opisao nivo detalja za razmatranje računara, on je istakao da je njegov opis formata, instrukcija, tipove hardvera parametara, brzine i poboljšanja bili na nivou " arhitekture sistema " -termin koji se činilo više nego koristan " mašinska organizacija“.
Nakon toga, Bruks, počeo je drugo poglavlje knjige (planiranje računarskog sistema : Projekat Streč, izd V. Bučholz , 1962 ) pišući, " Arhitektura računara, kao i druge arhitekture, jeste umetnost utvrđivanja potreba korisnika, strukture, a zatim projektovanje da, što je moguće u okviru ekonomskih i tehnoloških ograničenja zadovolji te potrebe“.
Bruks je pomogao razvoj IBM Sistem/360 liniju računara, u kojoj je " arhitektura " postala imenica koja definiše „šta korisnik treba da zna“. Kasnije, korisnici računara su koristili termin u mnogim manje - eksplicitnim načinima.
Podkategorije
[uredi | uredi izvor]Disciplina arhitekture računara ima tri glavne podkategorije:[1]
- Skup instrukcija arhitekture, ili ISA. ISA definiše kodove koji centralni procesor čita i postupa po njima. To je jezik mašina (ili skupa jezika), uključujući i skup instrukcija, veličine reči, memorija adresnih modova, procesorskih registara, i adresu i format podataka.
- Mikroarhitektura, takođe poznat kao račinarska organizacija koja opisuje staze podataka, elemente za obradu podataka i elemente za skladištenje podataka, i opisuje kako oni treba da implementiraju ISA.[2] Veličina procesorskog keša računara, na primer, je organizacioni problem koji generalno nema veze sa ISA.
- Sistem dizajn obuhvata sve ostale hardverske komponente unutar računarskog sistema. One uključuju:
- Staze podataka, kao što su računarske magistrale
- Memorijske kontrolere i hijerarhije
- Obradu podataka osim procesora, kao što je pristup direktanoj memoriji (DMA)
- Ostalo pitanja kao što su virtualizacija, multiprocesorske i softverske karakteristike.
Neki arhitekti u kompanijama kao što su Intel i AMD koriste detaljniju podelu:
- Makroarhitektura : arhitektonski slojevi više apstraktni nego mikroarhitektura, npr ISA
- Uputstvo set Arhitektura (ISA) : kao gore, ali bez:
- Asembler ISA :pametan asembler može pretvoriti apstraktni jezik u zajednički za grupu mašina u nešto drugačijem mašinskom jeziku za različite implementacije.
- Programer makroarhitekture : viši nivo jezičkih alatki, kao što su kompajleri, može definisati konzistentan interfejs ili ugovor za programere koji ih koristite, apstrahuje razlike između osnovnog MSR , UISA i mikroarhitektura. Na primer to su C , C++ , Java
- UISA -familija mašina sa različitim hardverskim nivoima mikroarhitekture mogu da dele zajedničku arhitekturu, a samim tim UISA.
- Pin Arhitektura : Funkcije hardvera koje mikroprocesor treba da obezbedi na hardverskoj platformi, na primer, na k86 pinova A20M, FERR / IGNNE. Takođe, poruke koje procesor treba da emituje da se eksterni keš isprazni. Funkcije pin arhitekture su fleksibilniji od ISA funkcija jer spoljni hardver može da se prilagodi novom kodiranju. Termin " arhitektura " odgovara, jer mora da se obezbedi funkcije za kompatibilne sisteme.
Uloga
[uredi | uredi izvor]Definicija
[uredi | uredi izvor]Cilj je dizajniran računar koji ima maksimalni učinak, a imajući potrošnju energije u vidu, niske troškove u odnosu na iznos očekivane performanse, a takođe da je veoma pouzdan. Da bi se ovo postiglo mnogi aspekti treba da se razmotre, uključujući skup instrukcija, funkcionalnu organizaciju, logiku projektovanja i implementacije. Implementacija podrazumeva integrisano kolo dizajn, pakovanje, napajanje i hlađenje. Optimizacija dizajna zahteva poznavanje kompajlera, Operativni sistemi koji odgovara logici dizajna i pakovanja.
Skup instrukcija arhitekture
[uredi | uredi izvor]Skup instrukcija arhitekture (ISA) je interfejs između hardvera i softvera računara i može se posmatrati iz ugla programera mašine. Računari ne razumeju jezike visokog nivoa koji imaju malo, ako ih ima, jezičke elemente koji se prevode direktno u izvorni mašinski kod. Procesor razume samo instrukcije kodirane na neki numeričkom način, obično kao binarne brojeve. Softverski alati, kao što su kompajleri, prevode jezike na visokom nivou, kao što je C, u instrukcije.
Osim instrukcija, ISA definiše stavke u računaru koji su dostupni programu - primer tipovi podataka, registara, načini adresiranja i memorija.
ISA računara se obično opisuje kao mala knjiga, koja opisuje kako su instrukcije kodirane. Takođe, ona može definisati kratko (nejasno) mnenonička imena instrukcija. Imena se mogu prepoznati pomoću razvijenog softverskog alata zbanog asembler. Asembler je računarski program koji prevodi ljudski čitljiv oblik insrukcija na ISA računarski čitljiv oblik. Disassemblers je takođe široko rasprostranjen, obično u debagerima.
ISA varira u kvalitetu i kompletnosti. A dobri ISA prave komprimis između udobnosti programera (više instrukcija) i troškova računara da tumače instrukcije (jeftinije je bolje), brzinu računara (brže je bolje) , i veličine koda (manji je bolji). Memorijska organizacija definiše kako instrukcije interaguju sa memorijom, a takođe i kako različiti delovi memorije komuniciraju jedni sa drugima.
Organizacija računara
[uredi | uredi izvor]Organizacija računara pomaže u optimizaciji prefrormanski produkta. Na primer, softverski inženjeri treba da znaju mogućnosti procesora da obradi zahteve. Oni će možda morati da optimizuju softver kako bi dobili najviše performanse a najmanju cenu. Ovo može zahtevati prilično detaljnu analizu organizacije računara. Na primer, multimedijalni dekoder, dizajneri možda morati da organizuju da se većina podataka obrađuju u najbržem putu.
Organizacija računara takođe pomaže izboru procesora za određeni projekat. Multimedijalnim projektima potreban je veoma brz pristup podacima, dok je nadzorni softver možda morati da ima brze prekide. Ponekad su za određene zadatke potrebne dodatne komponente. Na primer, računar sposoban za virtuelizaciju zahteva hardver virtuelne memorije, tako da se memorija različitih simuliranih računara može držati odvojena. Organizacija računara i karakteristike takođe utiču na potrošnju energije i troškove procesora.
Implementacija
[uredi | uredi izvor]Kada se završi sa opisom skupa instrukcija i mikroarhitekture računara, praktična mašina može biti projektovana. Ovaj proces dizajn se zove implementacija. Implementacija se obično ne smatra inženjerskom definicijom, već dizajnom hardvera. Implementacija se može dalje razložiti na nekoliko (ne potpuno različita koraka):
- Logička Implementacija dizajnira blokove definisane u mikro-arhitekturi na (pre svega) na nivou registar - transfer i nivou logičkog kola.
- Implementacija kola radi na tranzistorskom nivou - dizajn osnovnih elemenata (kapije, multipleksera, reze i sl), kao i nekih većih blokova ( alus, keš itd) koji se mogu sprovoditi na ovom nivou, ili čak (delimično) na fizičkom nivou, iz razloga performansi.
- Fizička implementacija povlači fizičke kola. Različite komponente kola su smešteni u čipu ili na tabli i žice ih povezuju se usmeravaju.
- Dizajn Validacija testira računar u celini da vidi da li radi u svim situacijama i svim trenucima. Kada počne implementacija, prvi dizajn validacije su simulara koristeći logiku emulatora. Međutim, ovo je obično suviše sporo da pokreće realne programe. Dakle, posle korekcije, prototipovi su konstruisani koristeći programibilna polja - nizove (FPGA). Mnogi projekti hobi zaustavljeni su u ovoj fazi. Poslednji korak je da se testira prototip integrisanih kola. Integrisana kola mogu zahtevati nekoliko redizajniranja u slučaju da postoji problem koji treba rešiti.
Za procesore, ceo proces implementacije se često naziva dizajn procesora.
Ciljevi dizajna
[uredi | uredi izvor]Tačan oblik računarskog sistema zavisi od ograničenja i ciljeva. Komputerska architektura obično balans između standarda, snage i performansi, cene, kapaciteta memorije, latencije (latencija je količina vremena koje je potrebno za informacije od jednog čvora da putuju do izvora) i propusne moći. Ponekad drugi razlozi, kao što su karakteristike, veličina, težina, pouzdanost i proširenja su takođe razmatrajući faktori.
Najčešća šema ide u dubinu analize u cilju da razreši kako da zadrži nisku potrošnju energije, uz održavanje adekvatnog učinka.
Performanse
[uredi | uredi izvor]Moderne performanse računara se često opisuju u MIPS po MHz (miliona instrukcija u milionima ciklusa takta). Ovo meri efikasnost arhitekture pri bilo kojoj brzini takta. Pošto brži sat može napraviti brži računar, ovo je korisno, široko primenjivo merenje. Istorijski računari imali MIPS/ MHz nisko oko 0.1. Jadnostavni moderni procesori lako dostižu blizu 1. Superkalarni procesori mogu dostići tri do pet izvršavajući nekoliko instrukcija u jednom ciklusu. procesori sa više jezgara i vektorske obrade CPU može pomnožiti ovo u budućnosti na mnogo podataka sekundi.
Istorijski gledano, mnogi ljudi merili brzine rada računara po taktu (obično u MHz ili GHz). Ovo se odnosi na broj ciklusa u sekundi glavnog takta procesora. Međutim, ovo je nešto pogrešno metrički, mašina sa višim taktom ne mora nužno imati bolje performanse. Kao rezultat toga proizvođači su udaljili od takta kao mere učinka.
Ostali faktori mogu uticati na brzinu, kao što je mešavina brzina, brzina magisrtale, brzina memorije na raspolaganju, kao i vrsta i redosled instrukcija koje se pokreći u programima.
U tipičnom kućnom računaru, najjednostavniji, najpouzdaniji način da se ubrza rad je obično dodavanje radne memorije (RAM). Više RAM-a povećava verovatnoću da su potrebni podaci ili program u RAM-u – pa je manje verovatno da će sistemu trebati premeštanje podataka iz sekundarne memorije diska. Disk je često deset hiljada puta sporiji nego RAM jer ima mehaničke delove koji moraju da se pokreću kako bi se pristupilo podacima.
Postoje dve glavne vrste brzine, latencije i produktivnost. Latencija je vreme između početka procesa i njegovog završetka. Produktivnost je količina izvedenih instrukcija po jedinici vremena. Prekidačka latencija je garantovano maksimalno vreme odziva sistema za elektronski događaja ( npr. kada disk završi pomeranje nekih podataka).
Na performanse utiče veoma širok spektar dizajnerskih izbora - na primer, procesor obično čini latencijea gori (sporiji), ali čini protok bolji. Računarima koji kontrolišu mašine obično je potrebno da imaju niske prekidne latencija. Ovi računari rade u realnom vremenu okruženja i imaće neuspeh ako operacija nije završena u određenom vremenskom periodu. Na primer, računarski kontrolisana protiv blokiranja kočnica mora početi kočenje u predvidljivo, kratko vreme posle stiskanja predale kočnice.
Prošerenja u snazi
[uredi | uredi izvor]Potrošnja u snazi je još jedna mera koja je važna u savremenim računarima. Energetska efikasnost se često može balansirati između brzinu ili niže cene. Tipično merenje u ovom slučaju je MIPS/V (milion instrukcija u sekundi po vatu).
Moderna kola imaju manje snage po tranzistoru kako broj tranzistora po čipu raste. Dakle, proširenja u snazi povećavaju efikasnost značajno. Prethodni dizajni procesora, kao što su Intel kore 2 cu stavili veći naglasak na povećanju energetske efikasnosti. Takođe, u svetu ugrađenih pačunara, efikasnost snage je dugo bila i ostaje važan cilj pored prodoktuvnosti i kašnjenja.
Reference
[uredi | uredi izvor]- ^ John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach (3. izd.). Morgan Kaufmann Publishers.
- ^ Laplante, Phillip A. (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. str. 94—95. ISBN 978-0-8493-2691-2.
Literatura
[uredi | uredi izvor]- John L. Hennessy and David Patterson (2006). Computer Architecture: A Quantitative Approach (4. izd.). Morgan Kaufmann. ISBN 978-0-12-370490-0.[mrtva veza]
- Barton, Robert S., "Functional Design of Computers", Communications of the ACM 4(9): 405 (1961).
- Barton, Robert S, "A New Approach to the Functional Design of a Digital Computer", Proceedings of the Western Joint Computer Conference, May 1961, pp. 393–396. About the design of the Burroughs B5000 computer.
- Bell, C. Gordon; and Newell, Allen (1971). "Computer Structures: Readings and Examples", McGraw-Hill.
- Blaauw, G.A., and Brooks, F.P, Jr., "The Structure of System/360, Part I-Outline of the Logical Structure" Arhivirano na sajtu Wayback Machine (23. april 2016), IBM Systems Journal, vol. 3, no. 2, pp. 119–135, 1964.
- Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 978-0-13-148521-1.
Spoljašnje veze
[uredi | uredi izvor]- ISCA: Proceedings of the International Symposium on Computer Architecture Arhivirano na sajtu Wayback Machine (7. maj 2006)
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems Arhivirano na sajtu Wayback Machine (9. maj 2006)
- ACM Transactions on Computer Systems
- ACM Transactions on Architecture and Code Optimization
- IEEE Transactions on Computers
- The von Neumann Architecture of Computer Systems