Wikipendium

History Compendium
Log in
This is an old version of the compendium, written Nov. 14, 2019, 4:12 p.m. Changes made in this revision were made by EvenMF. View rendered version.
Previous version Next version

TDT4160: Datamaskiner og digitalteknikk

# Kapittel 1 # Kapittel 2 Superscalar prosessor : Innfører flere av en eller flere enheter i en prosessor med samlebånd, for eksempel felles fech og decode, flere ALUer. SIMD-prosessor : Single Instruction stream Multiple Data streams. Parallelprosessorklasse der multiprosessorer utfører samme insturksjon på forskjellige data. Typisk array prosessorer, graffikk er et egnet datsett for en slik type arkitektur. ## Innføring av hurigbuffer (cache) Gjennomsnittlig akssesstid ved innføring av en hurtigbuffer er gitt ved: $$mean access time = c + (1-h)*m$$ Hvor c er hurtigbufferens aksesstid, h er trefforholdstall (hit ratio) for systemet, og m er minnets aksesstid. # Prosessorer Prosessesorer kan referer til flere forskjellige styre- og behandlingsenheter i elektroniske maskiner. I all hovedsak prater man om prosessorer i sammenheng med CPU (Central Prosessing Unit) og mikroprosessorer. Slike enheter utgjør kjernen av en moderne datamaskin, som står for all behandling av digitale og analoge signaler som mottas og sendes ut igjen til datamaskinen. ##CPU En Central Processing Unit (CPU) er "hjernen" til moderne datamaskiner. Hovedfunksjonen til en CPU er å utføre instruksjoner som er gitt av et dataprogram. Disse dataprogrammene er lagret i hovedlageret til CPUen. Dette gjøres ved at instruksjoner hentes inn til hovedprosessoren hvor den inspiserer og så sekvensielt kjører hver instruks. Hver av disse "instruksjonsettene" ligger i en _buss_. ###Buss En buss er en samling med parallelle ledninger som overfører adresser, rå data og kontrollsignaler. En buss kan eksistere som både en intern og ekstern komponent til en CPU. ###Organisering i CPU En CPU består av 3 hoveddeler, en aritmetisk logisk enhet (ALU), en rekke registere og en kontrollenhet. prosessoren består også av et hovedminne som inneholder midlertidige resultater fra utregninger gjort i hovedprosessoren. ####ALU En Aritmetisk logisk enhet er en enhet som gjør utregninger på de inputene i fra et dataregister. Disse registerene ligger sammen med ALUen i det som heter datapath. Operasjoner foregår ved at en instruksjon forteller ALUen at den skal gjøre operasjoner på to registere som ligger i data path. Disse to registeren hentes inn som input hvor det gjøres en operasjon på de, før resultatet blir enten lagret tilbake til registeret, eller at det lagres på minnet til maskinen. ALU kan gjøre grunnleggende aritmetiske operasjoner som addisjon og subtraksjon. ## Array processor Mange identiske prosessorer som synkront gjør de samme operasjonene på datasett med lik struktur og ulikt innhold. Dette lar maskinen utføre store mengder arbeid parallellt, nyttig f.eks. for å analysere vitenskapelig data. ## Vector processor Lignende idé som _array processor_. Dataene som skal jobbes med puttes i en vektor og sendes samlet gjennom en prosessor spesialdesignet for å håndtere slike vektorer. # Hurtigbuffer | Cache Hurtigbufferet holder informasjon på samme måte som hovedminnet. Det er mye mindre plass til informasjon i hurtigbufferet, men det går også mye raskere å hente informasjon fra det til prosessoren. ##Ord | Word En benevnelse som benyttes om den naturlige datastørrelsen i en gitt datamaskin. Et ord er ganske enkelt en samling av bit som håndteres samtidig av maskinen. Antallet bit i et ord, kalt ordstørrelsen, er et viktig kjennetegn ved enhver datamaskinarkitektur. Vanlige ordstørrelser i dagens PC-er er 32 og 64 bit. De fleste registrene i en datamaskin har størrelsen til et ord. ## Locality of reference | Lokalitetsprinsippet Når man ber om ett ord fra hovedminnet, antar man at man kommer til å trenge det ordet flere ganger, og at man også kommer til å trenge noen av naboene. Derfor blir ordet sammen med noen av naboene kopiert til hurtigbufferet. ## Gjennomsnittlig minneaksesstid | mean memory access time Lokalitetsprinsippet betyr at for å bruke ett ord `k` ganger trenger man ett tregt kall til hovedminnet og deretter `k - 1` raske kall til hurtigbufferet. Ved hjelp av `k` kan man regne seg fram til et gjennomsnitt på hvor raskt prosessoren kan jobbe. mean access time = c + (1 - h) * m - `c` er _cache access time_, tiden det tar programmet å hente informasjon fra hurtigbuffer. - `m` er _memory access time_, tiden det tar å hente informasjon fra hovedminnet. - `h = (k - 1)/k` er _trefforholdstall_ (_hit ratio_), andelen av referanser som kan hentes fra hurtigbufferet i stedet for hovedminnet. `(1 - h)` er dermed _miss ratio_, andelen som må hentes fra hovedminnet. # Logiske kretser ## Adderere ||__A__ (inn)||__B__ (inn)||__Sum__ (ut)||__Mente__ (ut)|| ||0||0||0||0|| ||0||1||1||0|| ||1||0||1||0|| ||1||1||0||1|| Når man adderer to bits sammen har man de fire mulighetene som tabellen viser. Kretskomponenten som adderer to bits kaller man en __halvadderer__ (_half adder_). For å addere et ord som består av flere bits, må man ha en __ripple-carry adder__. Det kan man lage ved å lenke sammen flere __fulladderere__. Fulladdereren består av en halvadderer som adderer de to bitene, og en annen halvadderer som adderer resultatet fra den første halvaddereren med carry-biten fra addisjonen av de forrige bitene. Summen herfra lagres som resultat-bit, og hvis en eller begge av addisjonene i dette steget produserte en carry-bit sendes en cassy-bit videre til neste fulladderer. # Arkitektur ## Pipelining ### Raw dependence / true dependence Når ett steg vil lese en verdi som ikke enda er ferdig skrevet at ett annet sted. _RAW, Read After Write_. Da må vi bare vente til verdien er klar før nye steg kan starte. # Andre ressurser <http://datagk.stianj.com>
  • Contact
  • Twitter
  • Statistics
  • Report a bug
  • Wikipendium cc-by-sa
Wikipendium is ad-free and costs nothing to use. Please help keep Wikipendium alive by donating today!