Datapath para las instrucciones de brinco

Slides:



Advertisements
Presentaciones similares
El modelo de Von Neumann
Advertisements

Compiladores e intérpretes
Tema Algoritmos Universidad Politécnica de Nicaragua UPOLI.
Camino de Datos y Control
Arquitectura de Computadores I
Tema 1: Introducción a Estructura de Computadores
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
MANUAL EXPRESS DE C J.M.sevilla.
Circuitos Digitales II Alineamiento en Memoria y Ejecución de un programa Semana No.8 Semestre Prof. Gustavo Patiño Prof. Eugenio.
Sistemas Operativos Funcionamiento general de una computadora bajo el control de un programa.
Arquitectura de Computadores
Procesos de cálculo manual y automático. Esquema del funcionamiento de una instrucción.
Andrés Núñez Herrero Enrique España Blanco Rodrigo Cembrero Carazo
VAX Diego Esteban Moreno Germán Aguado Llorente Félix Huete García.
Arquitectura de Conjunto de Instrucciones (ISA)
Compiladores II ( /04/ :03) Tema 2. Generación de Código para Estructuras Complejas Lecciones 3 y 4.
CLASE 11.
ISA (Instruction Set Architecture)
Memoria Organización del caché. Universidad de SonoraArquitectura de Computadoras2 Organización del caché Hasta ahora solo se ha visto la estrategia de.
MIPS Intermedio.
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
(CC) , José M. Foces-Morán.
Arquitecturas de Computadoras Curso Propedéutico
Instrucciones: FORMATO DE INSTRUCCIONES
Memoria Retos de diseño. Universidad de SonoraArquitectura de Computadoras2 Fallas de caché Las fallas de caché disminuyen conforme se incrementa la asociatividad.
1 SEMANA 04_2. 2 OPERADORES ARITMETICOS OPERADOR: + FORMATO: VALOR1 + VALOR2 FUNCION : SUMA VALOR1 Y VALOR2 EJEMPLO : TABLA_MAS_2 DW TABLA + 2 ; (DESPLAZAMIENTO.
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.
Universidad Nacional de CanIndeyú Ing. Jorge Hugo Fariña.
Traduciendo y ejecutando programas. Universidad de SonoraArquitectura de Computadoras2 El camino de un programa en C.
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
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.
Programación en MIPS.
Scheduling dinámico Algoritmo de Tomasulo.
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
TEMA 2: Organización de computadores
Estructura de Computadores Comandos DEBUG Programación en Assembler Profesora : Tatiana Marín R.
Datapath para las instrucciones de carga y almacenamiento (load/store)
Conclusión del curso. Universidad de SonoraArquitectura de Computadoras2 Temas cubiertos Lenguaje ensamblador MIPS. Diseño de una CPU tradicional. Datapath.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Memoria virtual.
El procesador Diseño del control.
Introducción a los programas
Capítulo 3 Instrucciones y direccionamiento Félix García Carballeira Jesús Carretero Pérez José Daniel Sánchez García David Expósito Singh © Ediciones.
Introducción. ¿Que es una computadora? Maquina electrónica capaz de resolver problemas ejecutando las instrucciones de un programa: 1.recibe datos, 2.los.
INTRODUCCIÓN El rendimiento, costo de compra y costo de operación forman la base para la toma de decisiones, sobre que PC es mejor que otra y así adquirir.
Rendimiento de la CPU y sus factores
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
introducción al Lenguaje Ensamblador
Maquinas Digitales UNIDADES DE CONTROL.
Unidad Central de Proceso
Conceptos Generales Programación I Docente: Ing. Marleny Soria M.
ARQUITECTURA DE COMPUTADORES
Programación I Docente: Ing. Marleny Soria M..  Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar.
1 Unidades funcionales de un ordenador Procesadores Memorias Dispositivos de E/S
MIPS Intermedio.
Arquitectura de Computadores
SOFTWARE DE DESARROLLO. Es el que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es.
Arquitectura de Computadores Clase 6 Ciclo y Conjunto de Instrucciones IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
El proceso ensamblador. José Luis Vergara Soberanis.
Memoria virtual. Universidad de SonoraArquitectura de Computadoras2 Introducción Memoria virtual es un mecanismo que permite que la memoria principal.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
DIRECCION DE PROYECTOS.
Pipelining Peligros de control.
El procesador Diseño del control.
Pipelining Datapath y control.
Datapath para las instrucciones de brinco
Creando un solo datapath
El procesador Datapath y control.
Pipelining Peligros de control.
Transcripción de la presentación:

Datapath para las instrucciones de brinco 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 Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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 Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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 Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

Datapath para un brinco condicional Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras

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. Universidad de Sonora Arquitectura de Computadoras