Professional Documents
Culture Documents
Arquitectura de Computadores
Bloque I
Cronograma
Bloque 1 Programacin DLX nivel bsico
Cargas y Almacenamientos
Operaciones ALU
Lazos
Tiempo de ejecucin
Pruebas de Validacin
Objetivo: Validar conocimientos visto anteriormente
Individuales
Validaciones
1.
2.
3.
4.
Pruebas de Validacin
Procedimiento de validaciones
Material
Juego de Instrucciones
Manual del procesador
Introduccin
Bloque 1 Programacin DLX nivel bsico
Material
Introduccin
Arquitectura orientada a registro (de 32 bits):
16 Registros especiales
8: Byte
16: Media palabra
32: Palabra
64: Doble palabra
-128 +255
-32768 . + 65535
-2147483648 . + 2147483647
Registros Especiales
FPSR (Floating-Point Status Register).
Todos los movimientos desde y hacia este registro se realizan a travs de los registros de propsito general.
Disponibles instrucciones de salto que basan su resultado en el valor del bit (1 cierto, 0 falso).
PC (Program Counter).
Este registro es inicializado con el contenido del contador de programa en la etapa IF a causa de que est
conectado con el sistema de memoria, mientras que el PC no.
IR (Instruction Register).
A, B.
Son cargados en la etapa ID y sus valores son enviados a los operandos de la unidad aritmtico lgica en la
siguiente etapa la EX. En WinDLX, adems existen los pseudo-registros
AHI y BHI que contienen los 32 bits superiores para valores en coma flotante de doble precisin.
Registros Especiales
BTA (Branch Target Address).
En WinDLX existe un pseudo-registro llamado ALUHI que contiene los 32 bits superiores para valores en coma flotante
de doble precisin.
El dato que se va a escribir en memoria por medio de una instruccin es almacenado previamente en este registro.
En WinDLX existe un pseudo-registro llamado SDRHI que contiene los 32 bits superiores para valores en coma flotante
de doble precisin.
En WinDLX existe un pseudo-registro llamado LDRHI que contiene los 32 bits superiores para valores en coma flotante
de doble precisin.
Introduccin
10
3 formatos de instrucciones
Igual longitud
Igual tamao de opcode
11
12
13
14
15
ID: Decodificacin
1 ciclo de reloj
16
EX: Ejecucin
1 ciclo de reloj
Etapa IF
17
Etapa ID
Se decodifica la instruccin
Etapa EX
Etapa MEM
if (cond)
PC ALUOutput
else
PC NPC
20
Etapa WB
Reg-Reg ALU:
Regs[IR1620] ALUOutput
Reg-Imm ALU:
Regs[IR1115] ALUOutput
21
Directivas
Dos punteros:
align n . Ocasiona que el prxima dato o instruccin sea cargado en la prxima direccin con los n
bits de ms bajo peso a 0 (la direccin ms cercana que sea mayor o igual a la direccin actual
que sea mltiplo de 2 ).
n
Por ejemplo, si n es 2, la siguiente direccin sobre la que se escribir ser la inmediatamente siguiente
que sea mltiplo de 4.
.ascii "string1","..." Almacena en memoria las cadenas "strings" indicadas en la directiva como
una lista de caracteres. Las cadenas no se completan con un byte 0.
.asciiz "string1","..." Similar a .ascii, excepto que cada cadena es terminada por un byte 0 de
forma similar a los strings en C.
22
Por ejemplo, .byte 0x1, 0x2, 0x3 almacena a partir de la ltima direccin utilizada en el segmento de datos
los valores 0x1, 0x2 y 0x3 consecutivamente utilizando un byte para cada uno de ellos.
Directivas
.data [address] Ocasiona que el cdigo o datos que sigue a esta directiva sea
almacenado en el rea de datos
.double number1,... Almacena secuencialmente en memoria los nmeros
indicados en la directiva en doble precisin.
.global label Hace pblica la etiqueta para que pueda ser referenciada por
cdigo perteneciente a archivos cargados en memoria despus de ste.
.space size Mueve size bytes hacia adelante el actual puntero de
almacenamiento con el fin de dejar libre algn espacio en memoria.
.text [address] Ocasiona que el siguiente cdigo o dato que aparezca en el
fichero sea almacenado en el rea de texto (cdigo).
.word word1, ,... Almacena secuencialmente en memoria las direcciones de los
smbolos indicados en la directiva.
23
Trap
Excepciones (TRAPs).
24
ID: Decodificacin
1 ciclo de reloj
25
EX: Ejecucin
1 ciclo de reloj
Ejemplo 1
.data 0
.global
x:
.word 1
.global
y:
.word 2
.global
z:
.word 3
.global
out: .word 3
.text 256
lw r1,x
lw r2,y
lw r3,z
add r4,r1,r2
add r4,r4,r3
sw out,r4
lw r5,out
trap #0
26
x
y
z
out
27
x
y
z
out
Etapas:
CPI: Lw: IF;ID;EX;MEM;WB= 4.6
CPI: Add: IF;ID;EX;WB= 3.6
CPI=Sw: IF;ID;EX;MEM= 3.8
Num de ciclos: 4x4.6(Lw)+2x3.6(Add)+3.8 (Sw)=
=18.4+7.2+ 3.8=29.4
.data 0
.global x
.word 1,2,3
.global out
.word 3
.text 256
add r7,r0,x
lw r1,0(r7)
lw r2,4(r7)
lw r3,8(r7)
add r4,r1,r2
add r4,r4,r3
sw out,r4
lw r5,out
trap #0
28
; almaceno valor
; compruebo en r5
.global out
out:.double 23
.text 256
ld f2,x
Etapas:
Ld: IF;ID;EX;MEM;WB= 4.8
Addd: IF;ID;EX-EX;WB= 4.6
Add: IF;ID;EX:WB= 3.6
Sd: IF;ID;EX;MEM= 3.8
Num de ciclos: 4x4.8(Ld) +2x4.6(Addd) +3x3.6(Add)+3.8 (Sd)=
= 19.2+9.2+10.8+3.8=43
29
; almaceno
; compruebo valor
30
Entorno de Simulacin
31
32
Visualizacin:
Instrucciones
Puntos de ruptura
(breakpoints)
Instruccin est
ejecutndose en una etapa
determinada del pipeline:
33
un color caracterstico de
cada etapa
Aparece una etiqueta de la
etapa.
34
Entorno de Simulacin.
Ventana y men Pipeline
Activo:
Desactivado
35
Entorno de Simulacin.
Ventana y men Breakpoints
36
Men Principal
File.
37
Men Principal
Window.
38
Men Principal
Execution.
39
Men Principal
Memory.
40
Men Principal
Configuration.
41
Men Principal
Help.
42
43
Guion I - Introduccin
44
Guion II - Introduccin
Realizar un programa donde:
1.
2.
45
3,2,1,4,5
Probar con los siguientes: 1,2,3,4,5 y 5,2,3,4,1
1.
10
11
12
13
14
15
16
2.
46
10
11
12
13
14
15
16