Harvardi arhitektuur

**Harvardi arhitektuur** on arvutiarhitektuur, mille puhul käskude ja andmete jaoks on eraldi mälud ja siinid. Harvardi arhitektuuri vastandiks on von Neumanni arhitektuur, kus käskudel ja andmetel on ühine mälu ja siinid.

Termin pärineb ameeriklaste Harvard Mark I arvutilt, mis oli üks esimesi elektromehaanilisi arvuteid. Selle ehitas Howard Aikeni ideede põhjal firma IBM ja see paigaldati Harvardi ülikooli 1944. aastal. Tegemist oli programmeeritava seadmega, kus andmed sisestati käsitsi pöördlülitite abil ja käsud olid salvestatud perfolindile. Harvard Mark I suutis teha kolm liitmis- või lahutamistehet sekundis, kuid keerulisemate tehete jaoks võis kuluda ka rohkem kui üks minut.

Harvardi arhitektuuri puhul paiknevad andmed ja programm eraldi ning seetõttu saab protsessor rööpselt tegeleda nii andmete kui ka käskudega. See parandab oluliselt infotöötluse kiirust, aga samuti nõuab arvuti riistvara poolest keerulisemat ja kulukamat ülesehitust. 

Tänapäeva arvutid põhinevad von Neumanni arhitektuuril, sest põhimälus hoitakse nii käske kui ka andmeid, mida nende käskude abil töödelda tuleb. Samas leiavad tänapäeva arvutites rakendust ka Harvardi arhitektuuri printsiibid. Nimelt on jõudluse suurendamise eesmärgil võetud protsessoris kasutusele eraldi vahemälud ja siinid käskude ja andmete jaoks. Sellist tüüpi arvutiarhitektuuri nimetatakse modifitseeritud Harvardi arhitektuuriks.

Harvardi arhitektuur ja modifitseeritud Harvardi arhitektuur on kasutusel signaaliprotsessorites ja mikrokontrollerites.

## Iseloomulikud jooned

Harvardi arhitektuuri puhul ei ole vajalik, et andmete mälul ja käskude mälul oleks ühesugune ülesehitus või kasutus. Seega on võimalik, et eelprogrammeeritud käsud on salvestatud püsimällu, aga andmete jaoks on kasutusel muutmälu. Erineda võivad sõna pikkus ja mäluaadressi struktuur. Kui käskude jaoks on vaja rohkem mälu kui andmete jaoks, saavad käskude mäluaadressid olla pikemad kui andmete aadressid.

### Võrdlus von Neumanni arhitektuuriga
Arvutis, mis kasutab ainult von Neumanni arhitektuuri põhimõtteid, hoitakse käske ja andmeid ühises mäluruumis ning ka nende toomine protsessorisse käib mööda jagatud siini. See aga tähendab, et protsessoril ei ole võimalik teha üheaegselt mõlemat: lugeda mälust käske ja kirjutada mällu või lugeda mälust andmeid. Arvutis, mis rakendab Harvardi arhitektuuri põhimõtteid, on käskude ja andmete jaoks eraldi mälud ja siinid. Sellest tulenevalt on protsessor võimeline tegelema rööpselt nii andmete kui käskudega, ja seda ka siis, kui puudub vahemälu. Selline arhitektuur parandab oluliselt arvuti jõudlust.

### Võrdlus modifitseeritud Harvardi arhitektuuriga
Modifitseeritud Harvardi arhitektuuriga arvuti puhul ei ole käsud ja andmed rangelt eraldatud, kuid protsessoril on võimalik kasutada kahte (või enamat) mälusiini. Kõige tavalisem Harvardi arhitektuuri modifikatsioon on selline, kus käskudel ja andmetel on eraldi vahemälud, aga ühine aadressiruum. Sel juhul kasutab protsessor suhtluses vahemäluga Harvardi arhitektuuri ja suhtluses põhimäluga von Neumanni arhitektuuri. Selline ülesehitus on laialt kasutusel tänapäeva protsessorite käsustiku arhitektuuris, näiteks ARM, Power ISA ja x86 protsessorites.

## Viited