Computer Abstractions and Technology
Instructions: Language of the Computer
Arithmetic for Computers
The Processor
5/6
100

Hva er de 7 store ideene i datamaskinarkitektur

Abstraction, Common case fast, Parallelism, pipelining, prediction, memory hierarchy, dependency via redundancy

100

hva er forskjellen på statisk og dynamisk data

statisk data endres ikke under kjøring. dynamisk kan endres

100

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

100

hva er de fem stegene i miktoarkitekturen til en samlebåndsprosessor

fetch, decode, execute, memory access, write back

100

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

200

hva er forskjellen mellom GB og Gib

GB er basert på titallssystemet, Gib er basert på det binære systemet (10^9, 2^30)

200

Hva er de forskjellige instruksjonstypene i RISC-V

R-type, I-type, S-Type, J-type, U-type, B-type

200

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

200

Hva er en datasti, og en kontrollsti

datasti utfører operasjoner på data, kontrollsti styrer datastien og definerer hvilke operasjoner som skal utføres

200

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

300

Hva er de fem hovedkomponentene i en datamaskin

input, output, minne, datasti, kontrollsti

300

Hva er de viktigste skrittene involvert i oversettelse og oppstart av programmer

Compile
assemble
link
load

300

hvilke instruksjoner har vi for aritmetiske operasjoner i RISC-V (signed/unsigned)

add, addi

sub, subi
mul, mulh, mulhu, mulhsu
Div, divu

300

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

300

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

400

Prinsipp som sier at kjøretiden til et program kan forutsies ved:
Antall instruksjoner x CPI x t_clock

The iron law

400

Hva er de fire Addressing Modes i RISC-V

register addressing
immediate addressing
Base + offset addressiing
PC-relative

400

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

400

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

400

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

500

hva er de viktigste metrikkene i datamaskinarkitektur

klokkefrekvens
instruksjoner per sykel
sykler per instruksjon
troughput
latency
MIPS

500

oversett denne maskinkoden til assembly (R-type)
0000000 01001 10101 000 01001 0110011

add x09, x21, x09

500

hva er SIMD instruksjoner, og hvordan implementeres det i maskinvare

lar en prosessor utføre samme operasjon på flere data samtidig, ved at den bruker større registre
500

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

500

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.