Wikipendium

History Compendium
Log in
This is an old version of the compendium, written Dec. 1, 2018, 6:15 p.m. Changes made in this revision were made by EvenMF. View rendered version.
Previous version Next version

TDT4160: Datamaskiner og digitalteknikk

# Chapter 1 ## Von Neumann arcitecture A von Neumann architecture machine, designed by physicist and mathematician John von Neumann (1903–1957) is a theoretical design for a stored program computer that serves as the basis for almost all modern computers. A von Neumann machine consists of a central processor with an arithmetic/logic unit and a control unit, a memory, mass storage, and input and output. ![](https://s3-eu-west-1.amazonaws.com/wikipendium-public/15436842150xb9529.jpg)
## Stored program computer A stored-program computer is a computer that stores program instructions in electronic memory. This contrasts with machines where the program instructions are stored on plugboards or similar mechanisms. Often the definition is extended with the requirement that the treatment of programs and data in memory be interchangeable or uniform. A computer with a von Neumann architecture stores program data and instruction data in the same memory; a computer with a Harvard architecture has separate memories for storing program and data. Both are stored-program designs.
# 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 mikroporsessorer. Slike enheter utkgjør kjernen av en moderne datamaskin, som står for all behandling av digitale og analoge signaler som motaas 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 parallele 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 kontrolenhet. 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 data path. 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. ## Locality principle | 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 adderer__. 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!