1 / 40

Circuitos Digitales II

Departamento de Ingeniería Electrónica Facultad de Ingeniería. Circuitos Digitales II. Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.7 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co. Temario. Repaso

dolf
Download Presentation

Circuitos Digitales II

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. Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.7 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

  2. Temario • Repaso • Formato de Instrucciones • Relación entre el formato de instrucción y la arquitectura del procesador. • Transferencia de datos de memoria • Escritura en la memoria (Almacenamiento) • Control: Instrucciones para alterar el flujo de operación • Instrucciones de Control • Instrucciones condicionales • Instrucciones no-condicionales • Direcciones en instrucciones de Branch y Jump • Direcciones en saltos (Addresses in Branches) • Desigualdades • Traducción Hex-Bin-Opcode-Instrucciones • Recomendacionespara el laboratorio • Multiplicación y división em el MIPS Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  3. Repaso : Formato de las Instrucciones • El tipo básico de instrucciones tiene cuatro componentes : • Nombre de la operación • Operando del primer dato-fuente. • Operando del segundo dato-fuente. • Operando del destino • dst, src1 y src2 son los nombres de los registros ($). Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  4. Repaso : Tipos de Formato en el MIPS Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  5. Arquitectura Completa del Procesador MIPS Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  6. Almacenamiento de datos • El almacenamiento de datos es justo la operación contraria a la carga, de manera que el formato es bastante similar. • Use la instrucción sw para copiar una palabra (word) desde un registro-fuente a una dirección en memoria. sw src, offset(base) • Igual que en el caso anterior, el offset es una constante con signo. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  7. Ejemplo de almacenamiento de datos • Considere el ejemplo *a = b + c; • Use la instrucción sw para almacenar Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  8. Almacenamiento a un arreglo • Considere el ejemplo a[3] = b + c; • Use el offset de la instrucción sw : Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  9. Almacenamiento de arreglos complejos • Considere el ejemplo a[i] = b + c; • Use el offset de la instrucción sw : Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  10. Un ejemplo de arreglo tipo “short” • ANSI C requiere un short para ser al menos de 16 bits y no más que un int, pero sin definir el tamaño exacto. • Para nuestros propósitos, tratemos un short como de 2 bytes. • Así, con un arreglo short, un valor c[7] está en c + 7*2, con desplazamiento de 1 hacia la izquierda. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  11. Mapeo de memoria I/O • Las instrucciones de transferencia de datos pueden ser usadas para mover datos desde y para registros de dispositivos de I/O. • Una operación de carga mueve datos desde un registro de un dispositivo de I/O para un registro del CPU, y • una operación de almacenamiento mueve datos desde un registro del CPU para registro de un dispositivo de I/O. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  12. Resumen: Load/Store en el MIPS Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  13. Lenguaje de Máquina del MIPS (…cont) • Consider the load-word and store-word instructions, • What would the regularity principle have us do? • New principle: Good design demands a compromise • Introduce a new type of instruction format • I-type for data transfer instructions • other format was R-type for register • Example: lw $t0, 32($s2) • 35 18 8 32 • op rsrt 16 bit number • Where's the compromise? Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  14. Control: Instrucciones para alterar el flujo de operación

  15. Instrucciones de Control • Decision making instructions • Alter the control flow, • i.e., change the "next" instruction to be executed • MIPS conditional branch instructions:bne $t0, $t1, Label beq $t0, $t1, Label • Example: if (i==j) h = i + j; bne $s0, $s1, Label add $s3, $s0, $s1 Label: ....

  16. Instrucciones condicionales :Igualdad

  17. Instrucciones condicionales Diferente (No-igual)

  18. Instrucciones no-condicionales:Salto (jump)

  19. Direcciones en instrucciones de Branch y Jump • Instructions: • bne $t4,$t5,Label Next instruction is at Label if $t4  $t5 • beq $t4,$t5,Label Next instruction is at Label if $t4 = $t5 • j Label Next instruction is at Label • Formats: • Addresses are not 32 bits • How do we handle this with load and store instructions? • op rs rt 16 bit address • I • J • op 26 bit address Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  20. Direcciones en los “Branch” • Instructions: • bne $t4,$t5,Label Next instruction is at Label if $t4≠$t5 • beq $t4,$t5,Label Next instruction is at Label if $t4=$t5 • Formats: • Could specify a register (like lw and sw) and add it to address • use Instruction Address Register (PC = program counter) • most branches are local (principle of locality) • Jump instructions just use high order bits of PC • address boundaries of 256 MB • op rs rt 16 bit address • I Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  21. Ejemplo: If-then-else

  22. Ejemplo: If-then-elseSolución

  23. Instrucciones condicionales Desigualdades

  24. Resumen de Comparaciones en el MIPS

  25. Resumen de instrucciones y operandos en el MIPS

  26. Ejemplo en C

  27. Sum_pow2: Código compilado en Assembler sum_pow2: # $a0 = b, $a1 = c addu $a0, $a0, $a1 # a = b + c, $a0 = a slti $v0, $a0, 8 # $v0 = a < 8 beq $v0, $zero, Exceed# gotoExceedif $v0 == 0 addiu $v1, $sp, 8 # $v1 = pow2 address sll $v0, $a0, 2 # $v0 = a*4 addu $v0, $v0, $v1 # $v0 = pow2 + a*4 lw $v0, 0($v0) # $v0 = pow2[a] jReturn# gotoReturn Exceed: addu $v0, $zero, $zero # $v0 = 0 Return: jrra# return sum_pow2 ReturnAddress

  28. Ejemplo de multiplicación

  29. Ejemplo2 de multiplicación

  30. Alineamiento en el MIPS • Cuando una palabra (4 bytes) es cargado o almacenado, la dirección de memoria debe ser un múltiplo de cuatro. Esto se denomina restricción de alineamiento. • Las direcciones que son un múltiplo de cuatro son llamadas de palabra alineada (word aligned). • Esta restricción hace el hardware más simple y más rápido. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  31. Restricciones de Alineamiento Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  32. Pregunta • Cuál de las siguientes direcciones es de palabra alineada ? • 0x000AE430 • 0x00014432 • 0x000B0737 • 0x0E0D8844 • Sugerencia: En binario, cómo es posible dividir por 4 ? Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  33. Restricciones de Alineamiento (…cont) Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  34. Orden de Bytes en la memoria : Big Endian y Little Endian • Una instrucción de carga (load) o de almacenamiento (store) tipo word usa únicamente una dirección de memoria. • La dirección más baja de los cuatro bytes se usa para la dirección de un bloque de cuatro bytes contiguos. • Cómo se almacena un dato de 32 bits en la memoria ? • Como se sabe, hay 32 bits en los 4 bytes de memoria, y el dato posee también 32 bits. No obstante es necesario definir cuál parte de la memoria almacena cada parte del dato de 32 bits. • Actualmente hay dos maneras como los computadores realizan esta tarea: • Orden de bytes del tipo Big Endian: • El byte más significativo (the big endian) de los datos es ubicado en el byte con la dirección más baja. • El resto de los datos es colocado en orden en los restantes tres bytes de la memoria. • Orden de bytes del tipo Little Endian: • El byte menos significativo (the little endian) de los datos es ubicado en el byte con la dirección más baja. • El resto de los datos es colocado en orden en los restantes tres bytes de la memoria. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

  35. Big Endian y Little Endian • En esta definición, el dato de 32 bits es visto como un entero sin signo de 32 bits. • El “byte más significativo” es aquel con la más alta potencia de dos: 231,...224. • El “byte menos significativo” es aquel con la menor potencia de 2: 27,...20. • Por ejemplo: imagine el dato 0x12345678 ubicado en la dirección 0x00400000. • En este caso, el byte menos significativo es 0x12 y el byte más significativo es 0x78. • Según el tipo de orden de los bytes, este número podría ser almacenado como: • Dentro de un byte, el orden de los bits es el mismo para todos los computadores, sin importar cómo es que los bytes están ordenados. Departamento de Ing. Electrónica. Circuitos Digitales IIFacultad de Ingeniería 2008 - 2

More Related