El programa viu en la mateixa memòria que les dades
Entrada, procés, eixida i emmagatzematge: l'important és com es parlen la CPU i la memòria. Fes avançar el programa «2 + 3» i seguix el camí de les dades.
Un programa en marxa
El mateix número, dues lectures
Una paraula de memòria és només un número. Canvia com la llig la CPU:
Cap de les dues lectures és «la bona»: la CPU interpreta com a instrucció la paraula a la qual apunta el comptador de programa (CP); la resta són dades.
Un sol camí o dos?
Què fa cada registre en cada pas
Carrega un programa, avança micro-operació a micro-operació i mira com canvien CP, RDM, RIM, RI i AC. Activa el mode de predicció per a posar a prova la teua taula.
Memòria (16 paraules)
Cada paraula té 3 dígits: el primer és l'operació i els dos últims l'adreça (110 = LOAD 10). En mode d'edició pots escriure un número o una instrucció.
Registres de la CPU
Eixida del programa
Prediu el pas següent
Els camps tenen els valors actuals. Canvia els que creus que canviaran amb el pas següent i prem «Comprova i avança».
Traça (un pas per fila)
| # | Pas | CP | RDM | RIM | RI | AC |
|---|
Repertori d'instruccions
| Paraula | Instrucció | Què fa |
|---|---|---|
| 000 | HALT | Para el programa |
| 1xx | LOAD xx | AC ← contingut de l'adreça xx |
| 2xx | STORE xx | Adreça xx ← AC |
| 3xx | ADD xx | AC ← AC + contingut de l'adreça xx |
| 4xx | SUB xx | AC ← AC − contingut de l'adreça xx |
| 5xx | MUL xx | AC ← AC × contingut de l'adreça xx |
| 6xx | JMP xx | CP ← xx (salta) |
| 7xx | JZ xx | Si AC = 0, CP ← xx |
| 800 | IN | AC ← següent valor del teclat |
| 900 | OUT | Mostra l'AC per pantalla |
Quatre fases per a cada instrucció
Tria una instrucció i seguix-la fase a fase. Després veuràs per què una CPU real solapa les fases i ordenaràs les accions de memòria.
El cicle, fase a fase
Estat inicial: R1 = 2, R2 = 3, R3 = 0, M[20] = 7, M[21] = 0.
Solapar les fases (pipeline)
Mentre una instrucció s'executa, la següent ja està en decodificació i una tercera, en fetch. Així la CPU acaba una instrucció per cicle encara que cada una necessite quatre fases. Model ideal, sense dependències entre instruccions.
Ordena les accions
Toca les accions en l'ordre en què ocorren per a una instrucció.
On és la dada que necessita la CPU?
Com més prop de la CPU, més ràpid però més xicotet. La memòria cau guarda còpies del que s'ha usat fa poc perquè la CPU no haja d'esperar la RAM.
Si 1 nanosegon durara 1 segon…
Temps d'accés orientatius de cada nivell, passats a escala humana. El gràfic és logarítmic: cada marca és deu vegades més.
Una lectura al disc dur dura, a escala humana, mesos: per això una CPU que espera el disc sembla «parada». Les memòries cau existixen per a no esperar la RAM.
Simulador de memòria cau
Cau completament associativa amb reemplaçament LRU (es desallotja la línia menys usada recentment). Un encert costa 1 ns; una fallada, 1 ns més 80 ns de la RAM.
Localitat temporal: una dada usada ara es tornarà a usar prompte. Localitat espacial: després d'una adreça se sol usar la veïna, i per això la cau porta el bloc sencer.
Tria el nivell més probable
De «DDR5-6000 CL30» a nanosegons i GB/s
Compara dos mòduls o kits: latència real, ample de banda i capacitat. Les ranures de la placa les tens en el laboratori de la placa base.
Latència (ns) = CL × 2000 ÷ velocitat (MT/s)
Ample de banda per canal = velocitat (MT/s) × 8 bytes
Ample de banda total = ample per canal × canals actius
Comparació
Encaixa el mòdul A en la placa?
El GHz no ho és tot
El rendiment d'un fil és freqüència × IPC. Repartir el treball entre nuclis ajuda, però no sempre ix a compte. I la calor posa el límit.
Exercicis aleatoris amb correcció
Tria un tipus d'exercici, resol-lo amb paper i calculadora i comprova la resposta. Si falles, veuràs la solució explicada.