Hva er de 7 store ideene i datamaskinarkitektur
Abstraction, Common case fast, Parallelism, pipelining, prediction, memory hierarchy, dependency via redundancy
hva er forskjellen på statisk og dynamisk data
statisk data endres ikke under kjøring. dynamisk kan endres
Hva er overflyt og når skjer det
Når resultatet av en aritmetisk operasjon overstrider den makrimale verdien som kan representeres med det tilgjengelige antallet bits
hva er de fem stegene i miktoarkitekturen til en samlebåndsprosessor
fetch, decode, execute, memory access, write back
hva er lokalitet i tid og rom
lokalitet i tid: data som ble nylig brukt, vil sansynligvis bli brukt igjen snart
Lokalitet i rom: data nær data som nylig ble brukt, vil sansynelig bli brukt igjen snart
hva er forskjellen mellom GB og Gib
GB er basert på titallssystemet, Gib er basert på det binære systemet (10^9, 2^30)
Hva er de forskjellige instruksjonstypene i RISC-V
R-type, I-type, S-Type, J-type, U-type, B-type
Hva er fordelene og ulempene med å representere tall i et "fixed-point" format
Fordeler: Enkel implementering i maskinvare og raskere operasjoner enn flyttall
Ulemper: Begrenset presisjon, skaleringsproblemer og ikke egnet for eksremt store eller ekstremt små verdier
Hva er en datasti, og en kontrollsti
datasti utfører operasjoner på data, kontrollsti styrer datastien og definerer hvilke operasjoner som skal utføres
hvordan konstrueres en direkteordnet cache, og hvordan håndterer den blokker med flere verdier
hver minneadresse er kartlagt til én bestemt plass i cachen basert på en indeks, cachen lagrer flere ord per blokk og offset-feltet i adressen brukes for å velge ordet
Hva er de fem hovedkomponentene i en datamaskin
input, output, minne, datasti, kontrollsti
Hva er de viktigste skrittene involvert i oversettelse og oppstart av programmer
Compile
assemble
link
load
hvilke instruksjoner har vi for aritmetiske operasjoner i RISC-V (signed/unsigned)
sub, subi
mul, mulh, mulhu, mulhsu
Div, divu
Hva er forskjellen mellom en avhengighet og en fare, og hva er de tre farene
en avhengighet er når en instruksjon er avhengig av resultatet til en annen instruksjon, som kan forusake forsinkelser. en fare er en uønsket situasjon som oppstår i en prosessor når instruksjoner ikke kan kjøres i riktig rekkefølge
strukturfare, datafare, kontrollfare
hva er forskejllen mellom statisk og dynamisk minne
statisk minne beholder data uten å måtte oppdateres, raskt, men dyrt
Dynamisk minne krever periodisk oppdatering, billigere, men tregt
Prinsipp som sier at kjøretiden til et program kan forutsies ved:
Antall instruksjoner x CPI x t_clock
The iron law
Hva er de fire Addressing Modes i RISC-V
register addressing
immediate addressing
Base + offset addressiing
PC-relative
Hvordan fungerer addisjon, subtraksjon, multiplikasjon og divisjon med flyttallsverdier i maskinvaren
Add/sub: justering av eksponentene, deretter utføre operasjonene på mantissaene
mul/div: mul/div av mantissaene, deretter justere eksponentene
hva er et presist unntak, og hvordan implementeres det i en samlebåndsprosessor
presist unntak sørger for at alle instruksjoner før unntaket er fullført, og ingen etterfølgende instruksjoner er startet. Stopper pipeline og tømmer alle påfølgende instruksjoner ved unntak. returadressen lagres og kontrollen overføres til unntakshåndteringsrutinen
hvordan konstrueres SRAM og DRAM
SRAM består av flip-flops for å lagre data og bruker kombinatoriske kretser for adressedekodere og sekvensielle elementer for lagring
DRAM bruker en enkel kondensator og transistor per bit for lagring
hva er de viktigste metrikkene i datamaskinarkitektur
klokkefrekvens
instruksjoner per sykel
sykler per instruksjon
troughput
latency
MIPS
oversett denne maskinkoden til assembly (R-type)
0000000 01001 10101 000 01001 0110011
add x09, x21, x09
hva er SIMD instruksjoner, og hvordan implementeres det i maskinvare
hvorfor blir kontrollenheten i en flersukelprosessor en tilstansdmaskin
Den styrer utførelsen av instruksjonene ved å gå igjennom flere tilstander. Hver tilstand representerer et trinn i instruksjoneutførelsen. Det sikkrer riktig rekkefølge of timing
Hvorfor er det enklere å utnytte parallellisme mellom uavhengige programmer enn innad i ett program?
Det er enklere å utnytte parallellisme mellom uavhengige programmer (task-level parallelism) fordi hvert program kan kjøres uavhengig på forskjellige prosessorer. For parallellisme innad i ett program (data-level parallelism), må programmet struktureres slik at forskjellige deler kan kjøre samtidig, noe som er mer komplekst.