Skip to content
Informatikk notater
GitHubLinkedIn

Single-cycle (bottom-up, top down)

ISA definerer hvilke maskinvareoperasjoner er tilgjengelig for software

Grunnleggende om register

  • Boks
  • Symbolsk navn
  • Verdi som kun forsvinner når den er overskreven
li t3, 41
li t4, 1
add t5, t3, t4

her er t3, t4, og t5 symbolske navn til registre

To registre t3, t4, -> Summeringselektronikk(ALU?, full adder?) -> lagret i register t5

Addisjon i binær ligner veldig OR operatoren
t3: $10.1001_2 = 41_{10}$
t4: $00.0001_2 = 1_{10}$
: $10.100^10_2$
t5: $10.1010_2 = 42_{10}$\

Divide and conquer

Hvordan utføre add t5, t3, t4?

  1. Hent instruksjonen fra minnet
  2. “Decode” intstruksjonen (finn ut hva ressurer trengs)
  3. Les ut registre
  • load t3
  • load t4
  1. Utfør instruksjonen
  • t3 + t4 = ?
  1. Skriv tilbake registre
  • write t5
  1. Oppdater programteller
  • PC++
  1. JMP 1

- fetch - decode - execute -

Data path

MIC 1

Gange med 2 = shift to right $$010_2 * 2_{10} = 100_2$$

Data path | control path

Grunnleggende om minne

0x6 = 0b0110 -> adresse[0:3]

0b1 -> read
0b0 -> write

-> data inn -> data ut[31:0](DET ER GRUNN FOR DET) $\not \to$

for en multibuss $\not \to [x

]$ er x MSB(leftmost bit)

hva skjer om du prøver å accesse en ugyldig registreaddresse

SEGFAULT

data ut bussen (ledninger) = antall registre

RISC V

  • single
  • cycle
  • datapath

Instruction

10101010101010101010101010101010
[31:25][24:20][19:15][14:12][11:7][6:0]

Datasti i en mikroarkitektur
^Kan bli abstrahert til fetch-decode-execute

Black = data path Cyan = control path

On cycles

Tenk på cycle som en metronom

Det er en metronom som synkroniserer datamaskinen

Propageringstid = tiden fra PC++ og kalkulasjonen er utført

med tanke på propageringstid, hvorfor gir det mening å dele opp datastien?

Klokkesignal

  • Tikker og tokker på oppoversvingninger

Rando shit

function shiftRight(a:0|1[]): b:0|1[] {
  let currentBit;
  if (nextBit === 0 ||currentBit === lastBit) {
    return 0;
  }
  return 1
}
func shiftRight::