1 / 15

El procesador

El procesador. Datapath para las instrucciones de brinco. Instrucciones de brinco. Dos tipos de instrucciones de brincos: Brinco condicional. beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta Brinco incondicional. j Etiqueta ; goto Etiqueta. Brinco condicional.

betsy
Download Presentation

El procesador

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. El procesador Datapath para las instrucciones de brinco

  2. Instrucciones de brinco • Dos tipos de instrucciones de brincos: • Brinco condicional. • beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta • Brinco incondicional. • j Etiqueta ; goto Etiqueta Arquitectura de Computadoras

  3. Brinco condicional • La instrucción de brinco condicional • beq $r1, $r2, Etiqueta • Compara $r1 con $r2. • Si $r1 = $r2 brinca a la dirección determinada por Etiqueta. • Si $r1  $r2 continúa con la siguiente instrucción. Arquitectura de Computadoras

  4. Brinco condicional • En MIPS, los brincos condicionales son relativos al contador del programa (PC). • Ejemplo: 1000 Etiqueta: … … 1040 beq $s0, $s1, Etiqueta • El brinco beq se traduce en lenguaje máquina : 000100 10000 10001 1111111111110101 beq $s0 $s1 -11 Arquitectura de Computadoras

  5. Brinco condicional • Por conveniencia, el PC se incrementa en 4 antes de checar la condición. • El brinco es relativo a la siguiente instrucción (PC+4). • La diferencia se calcula en palabras no en bytes. • En el ejemplo: 1000 Etiqueta: … … 1040 beq $s0, $s1, Etiqueta Hay 11 palabras (44 bytes) entre 1000 y 1044. Arquitectura de Computadoras

  6. Brinco condicional • Otra forma de ver la instrucción beq: PC += 4 offset = (Etiqueta – PC) >> 2 ; divide entre 4 if $s0 == $s1 PC += (offset << 2) ; multiplica por 4 Arquitectura de Computadoras

  7. Brincos relativos • ¿Cuál es su ventaja? • En MIPS solo hay 16 bits para indicar la dirección en los brincos condicionales (beq, bne). • Si los brincos fueran absolutos, un programa no podría tener mas de 216 palabras. • Usando brincos relativos: • El programa puede tener cualquier tamaño. • Los brincos están limitados a 215 palabras hacia atrás y 215 – 1 palabras hacia adelante. • Usando el brinco incondicional (instrucción j), se puede ampliar ese rango. Arquitectura de Computadoras

  8. Brinco condicional Hay que tomar en cuenta lo siguiente: • El brinco es relativo con PC + 4. • El PC ya se incrementó durante el ciclo de fetch (primera fase del datapath). • El offset viene especificado en palabras no en bytes. • Para convertir de palabras a bytes se multiplica por 4, o se hace un shift a la izquierda de 2 bits. • Hay que evaluar la condición. Arquitectura de Computadoras

  9. Brinco condicional • En resumen, el datapath del brinco condicional hace 2 operaciones: • Calcular la dirección destino. • Si toma el brinco: PC = PC + (offset << 2). • Si no toma el brinco: PC = PC + 4. • Comparar el contenido de los registros. Arquitectura de Computadoras

  10. Datapath para un brinco condicional Arquitectura de Computadoras

  11. Explicación • Para calcular la dirección destino se usa: • Unidad de extensión de signo. • Unidad para el shift a la izquierda de 2 bits. • Sumador. • Para hacer la comparación de registros: • Banco de registros para leer los dos registros. • ALU para hacer la comparación. Se puede comparar si $r1 == $r2 haciendo la resta $r1 – $r2 y checando si la salida Zero se prende o no. Arquitectura de Computadoras

  12. Brinco incondicional • La instrucción • j Etiqueta • Brinca a la dirección determinada por Etiqueta. • El brinco es absoluto. • La dirección de Etiqueta se guarda como parte de la instrucción. • La dirección se guarda en palabras no en bytes. Arquitectura de Computadoras

  13. Brinco incondicional • Ejemplo: 1000 Etiqueta: … … 1040 j Etiqueta • El brinco j se traduce en lenguaje máquina: 000010 00000000000000000011111010 j 250 • Un brinco j no puede cruzar el límite de 226 (67 millones) instrucciones. En caso de ser necesario se usa un brinco jal. Arquitectura de Computadoras

  14. Brinco incondicional • Otra forma de ver la instrucción j: PC += 4 ; no tiene efecto PC = (offset << 2) ; multiplica por 4 • La instrucción j necesita: • Hacer un shift a la izquierda de 2 bits. Usa una unidad de shift. Arquitectura de Computadoras

  15. Instrucciones de brinco • En resumen, el datapath para las instrucciones de brinco (condicionales e incondicionales) necesita: • Banco de registros. • Unidad para extender el signo. • Sumador. • ALU para comparar. • Unidad de shift. Arquitectura de Computadoras

More Related