Harvard arkitektur

Harvard-arkitektur , i informatikk , er en type digital maskinvarearkitektur der det er separasjon mellom minnet som inneholder dataene og det som inneholder instruksjonene . Begrepet betegnet opprinnelig arkitekturen til Harvard Mark I -datamaskinen, en relébasert datamaskin som lagret instruksjoner på et stanset bånd mens data ble lagret i en 23-sifret elektromekanisk teller. Denne maskinen var ikke utstyrt med en datalagringsenhet: disse ble i sin helhet lagret av CPU - en, og lasting og lagring av dem var en prosess som ble utført manuelt ved å handle på tellerne.

I dag implementerer de fleste prosessorer separate signalveier av ytelsesgrunner, men de implementerer faktisk en modifisert Harvard-arkitektur, slik at de kan støtte oppgaver som å laste et program fra diskminnet som data og kjøre det.

Detalj av minnet

I en Harvard-arkitektur kan minnene for data og instruksjoner også være forskjellige, med forskjellig implementeringsteknologi og timing, spesielt i noen systemer er bredden på adressene eller ordbredden på instruksjonene større enn dataene, og i andre systemer lagres programmene i et skrivebeskyttet minne ( ROM ) mens dataene normalt er i et lese-skriveminne ( RAM ).

Forskjeller med von Neumanns klassiske arkitektur

I en klassisk von Neumann-arkitektur leser CPU instruksjoner og data fra minnet ved å bruke samme buss, så når CPU laster en instruksjon kan den ikke laste data samtidig. I en Harvard-arkitektur er prosessoren i stand til å uavhengig få tilgang til data og instruksjoner siden disse er separate og lagret i separate minner. En Harvard-arkitektur kan derfor utføre flere oppgaver parallelt siden den kan parallellisere minnelese- og skriveoperasjoner. Økningen i hastighet motvirkes av tilstedeværelsen av mer komplekse kretser inne i prosessoren.

Bruker

I moderne datamaskiner er vanligvis de to arkitekturene til stede. Instruksjoner og data lagres vanligvis i samme masseminne. Dataene og instruksjonene som leses fra det eksterne masseminnet er lagret i et internt arbeidsminne kalt "hovedminne" som gjør bruk av dynamiske DRAM -minner med stor kapasitet, men mye tregere enn utførelse av instruksjonene i seg selv. I tillegg til disse minnene er det også minner med begrenset kapasitet, men veldig rask SRAM , som ikke er synlig for programvaren, kalt cacher som lagrer en delmengde av hovedminnet og nøyaktig instruksjonene og de mest brukte og tilstøtende dataene (se hurtigbufferoperasjon ) , for å få raskere tilgang til denne informasjonen. Det kan være forskjellige nivåer av disse cachene som kan ta i bruk begge arkitekturene, kalt "unified" som lagrer instruksjoner og data i samme cache (von Neumann-arkitektur) eller "separate", instruksjoner på I-cachen og data på D-cachen (arkitektur Harvard). Vanligvis er L3-cacher samlet, L2-cacher forent/separert og L1-cacher atskilt. Harvard-arkitekturen øker prosessorutførelsesparallellen ved å gi tilgang til påfølgende instruksjoner (forhåndshenting, tidlig tilgang) parallelt med tilgang til og utføring av data relatert til tidligere instruksjoner (separate uavhengige tilgangsbaner).

Harvard-arkitektur brukes ofte i spesialiserte prosessorer som DSP -er for behandling av lyd- eller videodata. For eksempel bruker Analog Devices ' Blackfin -prosessor Harvard-arkitektur.

Videre bruker mange mikrokontrollere som brukes i industrielle applikasjoner denne arkitekturen. For eksempel er PIC- kontrollere produsert av Microchip Technology Inc og AVR- kontrollere produsert av Atmel Corporation basert på Harvard-arkitektur. Disse prosessorene kjennetegnes ved å ha et lite minne tilgjengelig for data og instruksjoner og bruker Harvard-arkitekturen og RISC -arkitekturen for å kunne utføre de fleste instruksjonene i en enkelt klokkesyklus. Separasjonen av strømmer gjør at disse prosessorene kan ha forskjellige ordlengder for data og instruksjoner mens de utnytter færre transistorer (mikroprogrammet bor i en ganske stor ROM). For eksempel har PIC-mikrokontrollere en 8-bits databuss, men en 12/14 eller til og med 16-bits instruksjonsbuss. På denne måten kan de laste en enkelt instruksjon og konstant med en enkelt belastning fra minnet i en enkelt klokkesyklus. For eksempel må andre RISC-arkitekturer som ARM-arkitekturen vanligvis bruke to instruksjoner for å laste en konstant.

Relaterte elementer