CLASE 13.

Slides:



Advertisements
Presentaciones similares
Simulación en VHDL del Datapath del MIPS
Advertisements

El modelo de Von Neumann
Diseño de la ruta de datos monociclo para la arquitectura MIPS
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
ORGANIZACIÓN COMPUTACIONAL
Camino de Datos y Control
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Datapath para las instrucciones aritméticas y lógicas
Departamento de Ingeniería de Sistemas Universidad de Antioquia
CLASE 10.
CLASE 12.
Arquitectura de Computadores
El procesador: la ruta de datos y el control (II Parte)
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
El nivel de la Microprogramación
Arquitectura de Conjunto de Instrucciones (ISA)
Circuitos Combinacionales Comunes
Composición Interna de un Procesador
CLASE 11.
ISA (Instruction Set Architecture)
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
MIPS Intermedio.
MICRO Y MACRO ARQUITECTURA
Unidad 2: Organización del CPU
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
(CC) , José M. Foces-Morán.
Instrucciones: FORMATO DE INSTRUCCIONES
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Arquitectura del 8086/8088 TEEL 4011
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Lenguaje de Programación cap. 1 Estructura del Computador.
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Arquitectura de Von Neumann
Datapath para las instrucciones de carga y almacenamiento (load/store)
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Organización del Computador
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Aritmética (3 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Organización del Computador I Verano Procesador Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
El procesador Diseño del control.
Diseño del procesador uniciclo
CLASE 14.
Capítulo 4 CPU y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
introducción al Lenguaje Ensamblador
Modos de direccionamiento
Unidad Central de Proceso
Organización del Computador I Verano Aritmética (2 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
ARQUITECTURA DE COMPUTADORES
MIPS Intermedio.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
El procesador Diseño del control.
Creando un solo datapath
Organización del Computador
Organización del Computador
8. Diseño del Procesador Fundamentos de los Computadores
El procesador Datapath y control.
Transcripción de la presentación:

CLASE 13

FORMATOS DE INSTRUCCIÓN DEL MIPS FORMATO TIPO R Operaciones Aritmético lógicas add, sub, and, or, nor, sll, srl, slt FORMATO TIPO I Instrucciones inmediatas, de acceso a memoria, saltos condicionales addi, andi, ori, nori, lw, sw, beq, bne FORMATO TIPO J Instrucciones de salto incondicional j, jal

EJEMPLOS DE REPASO Ejemplo: Solución: Compilar la siguiente porción de código en ensamblador del MIPS: Solución: Asumiendo que la variables i y k corresponden a los registros $s3 y $s5, y la dirección base de save esta en $s6 Loop: add $t1,$s3,$s3 add $t1,$t0,$t0 add $t1,$t0,$s6 lw $t0,0($t1) bne $t0,$s5,Exit addi $s3,$s3,1 j loop Exit: ... while(save[i] == k) i += 1;

MODOS DE DIRECCIONAMIENTO El MIPS implementa 5 modos de direccionamiento: Registro. Inmediato. Base o desplazamiento. Relativo al PC. Pseudo-directo. http://www.cse.hcmut.edu.vn/~anhvu/teaching/2011/504002CE/lectures/CA-2_handout.pdf http://www.ece.eng.wayne.edu/~gchen/ece4680/lecture-notes/ISA-1-2.pdf (Diapositiva 10)

SOPORTE DE BAJO NIVEL PARA PROCEDIMIENTOS El stack pointer (registro $sp) apunta al tope de la pila El stack “crece” de las direcciones superiores a las inferiores. Operaciones sobre el stack: Llevar un dato al stack: PUSH $sp = $sp – 4 El dato se lleva al stack en el nuevo $sp Recuperar un dato del stack: POP Dato tomado del stack en $sp $sp = $sp + 4 Memoria POP PUSH http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) Decrementar $SP Mover valor Leer valor Incrementar $SP Stack Pointer $SP valor Stack Pointer $SP PILA Ultima posición de Memoria

INTRODUCCION Ecuación de rendimiento Número de instrucciones (IC): Determinado por la arquitectura (ISA) y el compilador CPI y tiempo de ciclo: Determinado por el hardware de la CPU http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INTRODUCCION Procesador (CPU) Ruta de datos (datapath) Porción del procesador que corresponde al HW necesario para ejecutar las operaciones que él demanda Unidad de control Porción del procesador (también en HW) que le indica al datapath lo que debe hacer http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

IMPLEMENTACION BASICA MIPS Subconjunto de la arquitectura MIPS (suficiente para ilustrar los principios que orientan el diseño de un datapath y una unidad de control para cualquiera otra ISA). Instrucciones de acceso a memoria Load word, lw Store word, sw Instrucciones aritmético-lógicas Suma, add Resta, sub AND lógica, and OR lógica, or Set on less than, slt Instrucciones de salto Branch if equal, beq Jump, j http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

PASOS PARA LA EJECUCION DE UNA INSTRUCCION Búsqueda (fetch) de la instrucción Trae una instrucción desde la memoria de instrucciones de acuerdo con el valor del PC (Program Counter) Lectura de operandos Acceso al banco de registros empleando los campos de la instrucción para leer uno (load) o dos registros (ALU, store) De acuerdo con el tipo de instrucción: Emplear la ALU para calcular: Un resultado aritmético o lógico (instrucciones aritmético-lógicas) Una dirección de memoria para las instrucciones load/store Una condición de igualdad (branch) Acceder a la memoria de datos en las instrucciones load/store Acceder al banco de registros para escribir el resultado de la ALU o un valor proveniente de memoria (instrucciones aritmético-lógicas, load) Actualizar el valor del PC de acuerdo con el resultado de la comparación con: PC + 4 Dirección de destino de salto http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

PASOS PARA LA EJECUCION DE UNA INSTRUCCION http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

VISTA DE ALTO NIVEL DE LA IMPLEMENTACION DEL MIPS Dos tipos de unidades funcionales: Elementos que operan en los valores de datos (combinacional). Elementos que contienen el estado (secuencial). http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) Operación en un solo ciclo. Modelo de memoria dividida (Harvard): Una memoria para instrucciones y una para datos.

VISTA DE ALTO NIVEL DE LA IMPLEMENTACION DEL MIPS No se pueden unir los cables así de simple Es necesario usar un multiplexor (selector de datos) Varias unidades deben controlarse de acuerdo con el tipo de instrucción. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

PRINCIPIOS DE DISEÑO LOGICO Información codificada en binario Voltaje bajo = 0 Voltaje alto = 1 Un cable por bit Datos de múltiples bits se codifican en buses formados por múltiples cables Elementos combinacionales Operan sobre datos La salida es función de las entradas actuales Un elemento combinacional siempre producirá la misma salida ante la misma entrada Ej: ALU Elementos secuenciales Almacenan información (estado) Ej: registros, memorias de datos e instrucciones http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

PRINCIPIOS DE DISEÑO LOGICO Información codificada en binario Voltaje bajo = 0 Voltaje alto = 1 Un cable por bit Datos de múltiples bits se codifican en buses formados por múltiples cables. Elementos combinacionales Operan sobre datos La salida es función de las entradas actuales Un elemento combinacional siempre producirá la misma salida ante la misma entrada Ej: ALU http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) D Clk Q Elementos secuenciales Almacenan información (estado) Ej: registros, memorias de datos e instrucciones

PRINCIPIOS DE DISEÑO LOGICO – ELEMENTOS COMBINACIONALES Compuerta AND (Y = A & B) Sumador ( Adder) (Y = A + B) A B Y + A B Y Multiplexor (Y = S ? I1 : I0) Unidad aritmetico-logica Y = F(A ,B) http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) A B Y ALU F I0 I1 Y M u x S

PRINCIPIOS DE DISEÑO LOGICO – ELEMENTOS SECUENCIALES Flip-flop (Tipo D) Almacena un bit Actualiza el valor almacenado cuando la señal de reloj pasa de 0 a 1 Flip-flop con control de escritura Sólo actualiza el valor almacenado en el flanco de reloj cuando la entrada de control de escritura es 1 Write D Q Clk Clk D Q D Clk Q Write D Clk Q http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

METODOLOGIA DE TEMPORIZACION Esquema empleado para determinar cuándo un dato es válido y estable respecto al reloj Accionada por flanco (edge-triggered): todos los cambios de estado (de los elementos secuenciales) ocurren en un flanco de reloj La lógica combinacional transforma los datos entre flancos de reloj Ejecución típica: lectura del elemento de estado  propagación del dato a través de la lógica combinacional  escritura del resultado en otro elemento de estado El retardo más largo determina el periodo de la señal de reloj http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) CPU monociclo (Single-cycle CPU) Todas las instrucciones se ejecutan por completo en un ciclo de reloj. La ejecución comienza en un flanco y termina en el siguiente (del mismo tipo).

CONSTRUYENDO EL DATAPATH Colección de componentes del procesador que tienen la capacidad de operar sobre datos y almacenarlos. (Memorias de datos e instrucciones, banco de registros, ALU, sumadores). Construiremos gradualmente un datapath para el MIPS, refinando la vista de alto nivel expuesta anteriormente Partiremos por definir los elementos requeridos para ejecutar cada tipo de instrucción para luego combinarlos todos http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

BUSQUEDA DE INSTRUCCIONES La búsqueda de instrucciones implica: leer una instrucción de la memoria de instrucciones usando la dirección indicada por el PC. Actualizar el valor del PC a la dirección de la próxima (secuencial) instrucción. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) El PC es actualizado cada ciclo de reloj de manera que no necesita una señal explicita de control. La ejecución secuencial de programas implica actualizar el PC para que apunte a la instrucción inmediatamente consecutiva en la memoria de instrucciones. El nuevo valor de PC debe ser PC+4. Memoria direccionable por bytes. Tamaño de palabra de 32 bits.

BUSQUEDA DE INSTRUCCIONES http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

BUSQUEDA DE INSTRUCCIONES http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

DECODIFICACION DE INSTRUCCIONES Decodificar instrucciones implica: Enviar el opcode y el campo fuction de la instrucción a la unidad de control. Leer dos valores del Register file. Las direcciones del banco de registros (Register file) son contenidas en la instrucción. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

BANCO DE REGISTROS Agrupa los 32 registros definidos en la ISA MIPS Permite el acceso simultáneo a 3 registros Acceso de lectura a dos registros Entradas de 5 bits cada una para identificar los registros. Salidas de datos de 32 bits Acceso de escritura a un registro Entrada de 5 bits para identificar el registro. Entrada de datos de 32 bits Una señal de control de escritura explícita (RegWrite) porque no se escribe en el banco en cada ciclo (Ej: instrucción sw). Una entrada de reloj (no ilustrada) determinante en las operaciones de escritura. Es posible leer y escribir el mismo registro dentro de un ciclo de reloj. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

BANCO DE REGISTROS http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

R[rd]  R[rs] funct R[rt] INSTRUCCIONES TIPO R Las instrucciones aritmético-lógicas realizan: R[rd]  R[rs] funct R[rt] Y requieren: Leer dos operandos fuente (desde los registros rs y rt) Realizar la operación aritmético-lógica (funct) Escribir el resultado en el registro rd Ej: add $t0, $t1, $t2 http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES TIPO R El banco de registros no es escrito (sw) cada ciclo, de manera que se necesita una señal explicita de control de escritura (WE: Register Write) para el banco de registros. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

PONIENDO TODO JUNTO Decodificar rs, rt, rd, op, … http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES TIPO I Las instrucciones aritmético-lógicas realizan: Y requieren: Leer el registro rt Leer el numero inmediato de 16 bits, el cual debe ser extendido a un numero de 32 bits. Escribir el resultado en el registro rs Ej: ori $8, $9, 64 http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES TIPO I http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

COMBINACION DE LOS DATAPATH Para tal fin se adicionan multiplexores. Donde? Cuando? MUX http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

COMBINACION DE LOS DATAPATH http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES DE MEMORIA Las instrucciones load/store realizan: R[rt]  MEM[R[rs] + sign_ext(Imm16)] #load MEM[R[rs] + sign_ext(Imm16)]  R[rt] #store En la ALU se calcula la dirección de acceso a memoria sumando el registro base (tomado del banco de registros) y el campo de 16 bits de la instrucción extendido en signo Store: Almacena el valor (extraído del banco de registros) en la memoria de dato. Load: Escribe en el banco de registros el valor leído de la memoria de datos. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2) Ej: lw rt, offset(rs) sw rt, offset(rs)

INSTRUCCIONES DE MEMORIA lw $1, 30($2)  $1=M[$2+30] sw $3, 10($4)  M[$4+30]=$3 http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES DE SALTO CONDICIONAL La instrucción branch if equal (beq) realiza: if (R[rs] == R[rt]) then PC PC+4+(sign_ext(Imm16)||00) /* Branch is taken*/ else PCPC+4 /* Branch is not taken*/ Compara dos operandos leídos del banco de registros haciendo una sustracción en la ALU y chequeando su igualdad mediante la salida Zero Calcula la dirección de destino de salto: Extendiendo en signo el desplazamiento de 16 bits Desplazando 2 bits a la izquierda el valor previo Y sumándolo a PC+4 (valor calculado antes en la búsqueda de la instrucción) Salto tomado (branch is taken): los dos registros comparados son iguales La condición de igualdad se verifica PC = PC  PC + 4 + (sign_ext(Imm16) || 00) Salto no tomado (branch is not taken): los dos registros comparados NO son iguales La igualdad no se verifica PC = PC + 4 http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES DE MEMORIA BEQ $1, $2, 12 Acción: si ($1!=$2) entonces PC=PC+4 Acción: si ($1==$2) entonces PC=PC+4+48 http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

INSTRUCCIONES DE SALTO Las operaciones de salto poseen el siguiente formato: Lo que se hace es reemplazar los 8 bits menos significativos del PC con los 26 bits menos significativos de la instrucción buscada corrida 2 bits a la izquierda. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

COMPOSICION DE LOS ELEMENTOS Conociendo los componentes requeridos para la ejecución de las instrucciones aritmético-lógicas, load/store y branch, podemos combinarlos en un solo datapath que pueda ejecutarlas todas, agregando algunos multiplexores y señales de control En esta primera versión del datapath cualquier instrucción se ejecuta en un ciclo de reloj Cada componente del datapath sólo puede realizar una función a la vez durante la ejecución de una instrucción Por lo tanto, aquellos componentes que requieran ser utilizados más de una vez deben replicarse Tal es el caso de las memorias: se requieren memorias de datos e instrucciones independientes Es necesario emplear multiplexores cuando un dato pueda provenir de diferentes fuentes en una instrucción Para elegir la fuente de datos se emplean señales de control http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

JUNTANDO TODO Búsqueda de instrucciones tipo R y acceso a memoria http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

JUNTANDO TODO Insercion del multiplexor http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

JUNTANDO TODO Distribución del reloj. http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

JUNTANDO TODO Añadiendo la porción de salto http://cs.wellesley.edu/~cs240/lectures/procedures-slides-handouts.pdf (Diapositiva 2)

REFERENCIAS http://microe.udea.edu.co/~farivera/docencia.html http://www.cse.hcmut.edu.vn/~anhvu/teaching/2010/BTKT-KTMT/MIPS%20Green%20Card.pdf http://www.ece.eng.wayne.edu/~gchen/ece4680/lecture-notes/lecture-notes.html http://www.cs.uiowa.edu/~ghosh/6011.html http://www.cse.hcmut.edu.vn/~anhvu/teaching/2010/504002CS/ http://cs.wellesley.edu/~cs240/ http://www.utdallas.edu/~dodge/EE2310/ Computer organization and design. The hardware/software interface, 3rd ed., Chapter 5. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers