Tema 2. Diseño del repertorio de instrucciones

Documentos relacionados
Tema 2. Diseño del repertorio de instrucciones

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Arquitectura de Computadores

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

Ejercicios. 5.2 [5] < 5.3> Este ejercicio es similar al 5.1, pero ahora considere los fallos causados por permanecer en 1 (la señal es siempre 1).

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

x

Organización Básica de un Computador y Lenguaje de Máquina

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

3.8 Construcción de una ALU básica

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

UN SIMULADOR DE UNA MAQUINA COMPUTADORA COMO HERRAMIENTA PARA LA ENSEÑANZA DE LA ARQUITECTURA DE COMPUTADORAS

Computación I Representación Interna Curso 2011

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Modelo de examen tipo resuelto 1

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

Sistemas de numeración

PROGRAMACIÓN ORIENTADA A OBJETOS

INFORMÁTICA BÁSICA 1ª PARTE (DURACIÓN TOTAL DEL EXAMEN: 2 HORAS Y 15 MINUTOS)

MATERIAL 2 EXCEL 2007

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

3.2 Operaciones aritmético-lógicas en Pascal

MÓDULO 1: Sistemas de Cómputo

Unidad II: Administración de Procesos y del procesador

Capitulo V Administración de memoria

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Procesadores segmentados. El DLX.

Modelos y Bases de Datos

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

Lección 24: Lenguaje algebraico y sustituciones

MICROSOFT EXCEL 2007 (COMPLETO)

VECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

Microsoft Office XP Excel XP (I)

Capítulo 4 Gestión de memoria

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

18. Camino de datos y unidad de control

La presente documentación está protegida por la legislación vigente en materia de propiedad intelectual prohibiéndose

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Manual de Usuario. Del. Módulo de Lector de códigos de barras. FacturPin. Diseñado y producido por. SystemPin

Capítulo 0. Introducción.

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

6.1. Conoce la papelera

GENERACIÓN DE CÓDIGO

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

CASO PRÁCTICO CONTROL DE GASTOS

Claves para las fórmulas: Incrementos Decrementos Porcentajes Múltiplos - Partes - Diferencia

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

6-REGISTROS DEL 8086 Y DEL 80286

MANUAL COPIAS DE SEGURIDAD

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Diseño Estructurado de Algoritmos

Para poder acceder al sistema sólo deberá ingresar la siguiente liga desde el navegador de su preferencia:

BASE DE DATOS RELACIONALES

"Programación en Ensamblador del microprocesador Pentium (I)"

La ventana de Microsoft Excel

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

Operación de Microsoft Word

Manual Impress Impress Impress Impress Impress Draw Impress Impress

by Tim Tran:

NÚMEROS NATURALES Y NÚMEROS ENTEROS

BROKERMovil Online para SmartPhone Guía Rápida v1.0

Cualquier número de cualquier base se puede representar mediante la siguiente ecuación polinómica:

Ejercicios de Programación Lineal

Actividad 6.7.4: División en subredes de direcciones IPv4, Parte 2

- La implementación es responsable de: Los ciclos de reloj por instrucción (CPI). La duración del ciclo de reloj.

Unidad: Representación gráfica del movimiento

Análisis de esquemas XML [1]

CONTESTACIÓN CONSULTA PÚBLICA SOBRE EL MODELO DE GESTIÓN DE LAS BANDAS DE FRECUENCIAS DE a 1492 MHZ y 3,6 A 3,8 GHZ.

Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2

Sistemas operativos. Tema 7: Gestión n de memoria

ESCUELA DE ADMINISTRACIÓN

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Figura 1.4. Elementos que integran a la Tecnología de Información.

Base de datos relacional

Módulo 8: Ofimática básica. Unidad didáctica 2: Conceptos fundamentales en un gestor de base de datos. Access

Cuestionario: Programación en C y máscaras (II)

Para ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes:

MÉTODO DEL CAMBIO DE BASE PARA CÁLCULO MANUAL DE SUBREDES CON IP V4.0

4. METODOLOGÍA. 4.1 Materiales Equipo

Base de datos en la Enseñanza. Open Office

Ecuaciones de primer grado con dos incógnitas

Elementos de Microsoft Word

Soporte lógico de computadoras

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

ESQUEMAS DE SISTEMAS VOIP CON ALTA DISPONIBILIDAD Y ALTO RENDIMIENTO

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

Transcripción:

Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010

Tema 2: Hoja: 2 / 16

Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador, uno de los parámetros a tener en cuenta es el repertorio de instrucciones. Dependiendo del tipo de juego deseado, CISC o RISC, de os modos de direccionamiento empleados, del número de operandos con los que trabajan las operaciones de la ALU y del lugar de almacenamiento de los operandos temporales, se verá influido el rendimiento del mismo y la facilidad o dificultad para crear código ejecutable por parte de los compiladores y ensambladores. Formato de instrucciones Las instrucciones deben encajarse en unos pocos formatos. Además deben estar formados por campos sistemáticos en aras de facilitar la decodificación de las mismas por parte de la Unidad de Control. Los computadores emplean un direccionamiento implícito, es decir, la instrucción siguiente a la que se encuentra en curso, es la que ocupa la siguiente posición de memoria, salvo que sea una instrucción de salto condicional, de bifurcación o llamada / regreso de un procedimiento o interrupción. Es por ello, que este tipo de computadores cuenta con un registro contador de programa (CP) que contiene la dirección de memoria en la que se encuentra la instrucción a ejecutar. Un formato típico de una instrucción se muestra en la figura siguiente: Cod. operación Operandos Resultado Figura 1. Formato de instrucciones

Tema 2: Hoja: 4 / 16 En muchos computadores comerciales el campo resultado suele eliminarse, de tal modo que uno de los operandos funciona como origen y destino de la operación. Las instrucciones proporcionan, el tamaño, tipo de operandos y modos de direccionamiento que emplean y suelen ser múltiplos de las palabras del computador. En algunos repertorios, el código de operación se extiende para hacer que las instrucciones más empleadas tengan un código de operación menor que las menos usadas. Modos de direccionamiento Indican la manera de acceder al lugar en el que se encuentran los operandos o en el que se debe almacenar el resultado. Dependiendo del computador, pueden recibir uno u otro nombre. Los modos de direccionamiento que se pueden encontrar en un computador comercial suelen ser: Inmediato. El operando se encuentra en la propia instrucción. Directo a registro. El operando se encuentra en un registro. Directo a memoria. El operando se encuentra en una posición de memoria. Relativo. El operando se encuentra en una posición de memoria cuya dirección se calcula realizando la suma del contenido de un registro con un desplazamiento sobre el mismo. Dependiendo del registro empleado existirán diferentes tipos de direccionamiento relativo: a contador de programa, a registro base, mediante registro índice, etc. Indirecto. La posición de memoria especificada no es el operando sino la dirección de memoria en la que se encuentra. Implícito. El operando no aparece explícitamente en la instrucción.

Tema 2: Hoja: 5 / 16 Compiladores Son los encargados de traducir un programa en lenguaje de alto nivel a código ejecutable por el computador. Dependiendo del formato de instrucciones, de los operandos que empleen las operaciones de la ALU, del número de registros de la arquitectura, etc. tendrán una mayor facilidad o dificultad para generar el código. Las fases de un compilador suele ser la mostrada en la figura siguiente. Figura 2. Fases de un compilador A la hora de tratar el programa fuente y de generar el código el compilador realiza una serie de suposiciones y optimizaciones entre las que destacan: Nombre de la optimización Explicación Integración de procedimientos Decide si se expanden o no los procedimientos Eliminación global de Sustituye dos instancias del mismo cálculo por simple copia subespresiones comunes Reducción de la altura de la pila Reorganiza las expresiones matemáticas para minimizar los recursos necesarios para evaluarla Movimiento de código Elimina código de un bucle que calcula el mismo valor en cada iteración del bucle Reducción de potencia Sustituir la multiplicación por suma s y desplazamientos, la división por restas y desplazamientos Planificación de la segmentación Reordenar las instrucciones para mejorar el rendimiento de la segmentación

Tema 2: Hoja: 6 / 16 1. Sea un computador con palabras de 32 bits y 16 registros de 32 bits. De estos registros el.1 es el contador de programa y el.2 el puntero e pila, los demás son de propósito general. La memoria es de 256 Mpalabras El juego de instrucciones de esta máquina se reduce a dos instrucciones ortogonales: Move origen, destino Add destino, operando1, operando2 Los modos de direccionamiento permitidos son: inmediato, directo a registro y a memoria, relativo a registro, a registro índice con pre y pos decremento e incremento y el indirecto. El juego de instrucciones se forma con el código de operación, y el campo de cada operando debe llevar asociado su modo de direccionamiento. Se pide diseñar los formatos de instrucción de la máquina descrita. 2. Sea un computador con 16 Registros, cuya longitud de palabra es de 2 bytes. Diseñar los formatos para las instrucciones de tipo Registro- Registro, utilizando la técnica de expansión de código de operación de modo que permita: 15 instrucciones de 3 operandos 14 instrucciones de 2 operandos 31 instrucciones de 1 operando 16 instrucciones de 0 operandos Indique en los esquemas las longitudes de todos los campos y, para los códigos de operación también los rangos de valores

Tema 2: Hoja: 7 / 16 3. Sea un computador con palabras de 16 bits y 32 registros de 16 bits, que ejecuta el siguiente juego de instrucciones ortogonales: Move fuente, destino Movec fuente, destino, condicion Moved fuente1, destino1, fuente2, destino2, condicion Add operando1, operando2, destino Sub operando1, operando2, destino Mul operando1, operando2, destino Div operando1, operando2, destino And operando1, operando2, destino Or operando1, operando2, destino Xor operando1, operando2, destino Shift fuente, destino, tipo, contador Donde: La condición puede ser C, NC, Z y NZ Los modos de direccionamiento: inmediato, directo a registro y relativo a registro Los datos pueden ser enteros sin signo, enteros en complemento a 2 y reales en coma flotante Cada instrucción solamente opera con todos sus datos en el mismo formato de representación Se pide diseñar el formato de las instrucciones para dicho juego de operaciones puras

Tema 2: Hoja: 8 / 16 4. Sea un computador de 32 bits de ancho de palabra y que cuenta con 32 registros de 32 bits. Tiene un juego de 60 instrucciones y los modos de direccionamiento: Directo Indirecto A registro base A contador de programa. Diseñar el formato de instrucción para las operaciones Reg-Mem 5. Diseñar un código de operación extendida que permita codificar en una instrucción de 36 bits la siguiente información: 7 instrucciones con dos direcciones de 15 bits y una dirección de 3 bits 500 instrucciones de una dirección de 15 bits y una de 3 bits 50 instrucciones de 0 direcciones 6. Sea un computador con 16 Registros, cuya longitud de palabra es de 2 bytes. Diseñar los formatos para las instrucciones de tipo Registro- Registro, utilizando la técnica de expansión de código de operación de modoque permita: 15 instrucciones de 3 operandos 14 instrucciones de 2 operandos 31 instrucciones de 1 operando 16 instrucciones de 0 operandos

Tema 2: Hoja: 9 / 16 Indique en los esquemas las longitudes de todos los campos y, para los códigos de operación también los rangos de valores. 7. Suponiendo que el 90 % de los saltos hacia atrás son efectivos. Calcular la probabilidad de que un salto hacia delante sea efectivo empleando la media de los datos de la tabla siguiente 8. Se tiene el mismo juego de instrucciones implementado en dos computadores con la misma arquitectura. Las características de cada una al ejecutar el mismo programa se resumen en la tabla siguiente: Ciclo de reloj Ciclos por instrucción (CPI) para el programa Arquitectura 1 3 2 Arquitectura 2 4 1,5 Se pide calcular qué máquina es más rápida para ese programa y cuánto más 9. Se tiene el mismo juego de instrucciones implementado en dos computadores con la misma arquitectura. Las características de cada una al ejecutar el mismo programa se resumen en la tabla siguiente:

Tema 2: Hoja: 10 / 16 Ciclo de reloj Ciclos por instrucción (CPI) para el programa Arquitectura 1 2 2 Arquitectura 2 4 1,2 Se pide calcular qué máquina es más rápida para ese programa y cuánto más 10. Sea un computador con 8 registros, cuya longitud de palabra es de 2 bytes. Diseñar los formatos para las instrucciones de tipo Registro- Registro, utilizando la técnica de expansión de código de operación de modo que permita: 120 instrucciones de 3 operandos 5 instrucciones de 2 operandos 12 instrucciones de 1 operando 7 instrucciones de 0 operandos 11. Sea un computador con 8 registros, cuya longitud de palabra es de 2 bytes. Diseñar los formatos para las instrucciones de tipo Registro- Registro, utilizando la técnica de expansión de código de operación de modo que permita: 127 instrucciones de 3 operandos 6 instrucciones de 2 operandos 15 instrucciones de 1 operando 8 instrucciones de 0 operandos

Tema 2: Hoja: 11 / 16 Solución ejercicio 1 Como cada operando puede tener cualquier modo de direccionamiento, la máquina tendrá un formato por modo de direccionamiento diferente. Con lo que para distinguir los 8 modos de direccionamiento se requerirán 3 bits. Al contar únicamente con dos instrucciones, bastará un bit para diferenciarlas. Los 16 registros necesitaran 4 bits para ser diferenciados. Finalmente, para poder direccionar 256 Mpalabras se necesitarán 28 bits (256 Mp. = 2 28 ) Una solución posible será: Para la instrucción MOVE origen, destino Cod. M.D.1 Dato No usado M.D.2. Dato Operación (1) (3) (28) (1) (3) (28) Para la instrucción ADD destino, operando1, operando2 Cod. MD1 dato No MD2 dato No MD3 Dato Op. usado usado (1) (3) (28) (1) (3) (28) (1) (3) (28) La pareja, MDn + dato variará según los modos de direccionamiento, siendo: Para los modos de direccionamiento inmediato, directo a memoria e indirecto Modo de direccionamiento Dirección de memoria o inmediato (3) (28) Y para el resto de los modos de direccionamiento: Formato para el direccionamiento directo a registro: Modo de Registro No usado direc. (3) (4) (24)

Tema 2: Hoja: 12 / 16 Formato para el direccionamiento relativo a registro: Modo de Registro Desplazamiento direc. (3) (4) (24) Formato para el direccionamiento relativo a registro índice con pre (pos) incremento (decremento): Modo de Registro Inc / Dec Pre / Pos Desplazamiento direc. (3) (4) (1) (1) (22) Solución ejercicio 3 Al ser un juego de instrucciones puras, el código de operación no debe contener ninguna información sobre el modo de direccionamiento de los operandos, ni sobre el formato de representación de los mismos ya que cualquier instrucción deberá poderse realizar con cualquier modo de direccionamiento y con cualquier tipo de datos. Dado que las instrucciones operan con el mismo tipo de datos, el campo puede ser común pero no así el modo de direccionamiento que puede ser diferente para los operandos De esta forma se necesitarán: MOVE fuente, destino Bits necesarios Distingue entre 4 11 instrucciones diferentes 2 3 modos de direccionamiento distintos 2 3 sistemas de representación diferentes 5 32 registros 2 4 condiciones CO SRD MD1 MD2 No Fuente Destino usado (4) (2) (2) (2) (6) (16) (16)

Tema 2: Hoja: 13 / 16 MOVEC fuente, destino, condición CO SRD MD1 MD2 N/U COND Fuente Destino (4) (2) (2) (2) (4) (2) (16) (16) MOVED fuente1, destino1, fuente2, destino,2 condición CO SRD MD1 MD2 MD3 MD4 COND dato dato dato dato (4) (2) (2) (2) (2) (2) (2) (16) (16) (16) (16) Aritméticas y lógicas CO SRD MD1 MD2 MD3 N/U dato dato dato (4) (2) (2) (2) (2) (4) Shift fuente, destino, tipo, contador CO SRD MD1 MD2 TP CONT dato dato (4) (2) (2) (2) (2) (4) (16) (16) Aunque todos los datos ocupan 16 bits, su formato interno dependerá de su modo de direccionamiento Inmediato los 16 bits estarán en uno de los posibles sistemas de representación: entero sin signo, complemento a dos o coma flotante Directo a registro Registro No usado (5) (11) Relativo el campo Desplazamiento no se usará en el modo directo a registro Registro Desplazamiento (5) (11)

Tema 2: Hoja: 14 / 16 Solución ejercicio 5 Formato de 7 instrucciones con tres direcciones dos de 15 bits y una de 3 bits. Para codificar 7 instrucciones necesitaremos 3 bits y sobrará una combinación, con lo que el formato será: Código operación Dirección1 Dirección2 Dirección3 (3) (15) (15) (3) Formato de 500 instrucciones con dos direcciones una de 15 bits y otra de 3 bits Se necesitarán al menos 9 bits para codificarlas (sobrarán 12 combinaciones) Para poder distinguir estas instrucciones de las anteriores podemos poner los 3 primeros bits del código de operación a 111 (antes sobraba una combinación) con lo que el código de operación serán 12 bits. El formato quedará 1 1 1 Código No usado Dirección1 Dirección2 operación (3) (9) (6) (15) (3) Formato de las cincuenta instrucciones de cero direcciones Las 50 instrucciones las distinguiremos de las anteriores poniendo los 12 primeros bits a uno. El código de operación batará con 6 bits (64 combinaciones) 1 1 1 1 1 1 1 1 1 1 1 1 Código operación No usado (3) (9) (6) (18) Solución ejercicio 7 Calculando la media para los tres programas nos da: Porcentaje de saltos hacia atrás: 25% Porcentaje de saltos efectivos: 53% Porcentaje total de bifurcaciones: 65% La frecuencia media de los saltos efectivos será la suma de las frecuencias de los efectivos hacia detrás y hacia delante

Tema 2: Hoja: 15 / 16 %efectivos=(%efectivos hacia atrás x %hacia atrás)+(%efectivos hacia delante x %hacia delante) 53 % = ( 90% x 25 %) + (%efectivos hacia delante x 75%) De donde %efectivos hacia delante =( 53% - 22,5%) / 75 = 40,7% Solución ejercicio 9 Como se trata del mismo programa el número de instrucciones será el mismo en ambas máquinas. Con lo que Ciclos de reloj CPUA = Número instrucciones x 2 Ciclos de reloj CPUB = Número instrucciones x 1,2 El tiempo de ejecución de CPU para cada máquina será: Tiempo CPUA = Ciclos de reloj CPUA x tiempo de cicloa = Núm. Instruc. x 2 x 2ns Tiempo CPUB= Ciclos de reloj CPUB x tiempo de ciclob = Núm. Instruc. x 1,2 x 4ns Como puede observarse en la tabla siguiente la máquina A es más rápida que la B Ciclos de Reloj Tiempo de CPU Arquitectura A 2 x Núm. de instruc. 4 x Núm. de instruc. Arquitectura B 1,2 x Núm. de instruc. 4,8 x Núm. de instruc. Finalmente se ve que la máquina A es 1,2 veces más rápida que la B Rendimiento CPU Rendimiento CPU Tiempo deejecución Tiempo deejecución 4,8xNúmerodeInstrucciones = 4xNúmerodeInstruciones A B = = B A 1,2veces Solución ejercicio 11 Se tienen palabras de 2 bytes con lo que contamos con 16 bits para codificar el formato de instrucción. Tenemos 8 registros, con lo que para diferenciarlos necesitaremos 3 bits. Al pedirnos que se realice con la técnica de expansión de código, deberemos comprobar que quedan combinaciones libres para distinguir unos formatos de otros

Tema 2: Hoja: 16 / 16 127 instrucciones con tres operandos Código de operación 16 Registro Registro Registro 7 3 3 3 Con 7 bits contamos con 128 combinaciones, como solamente empleamos 127 nos sobra una para distinguir entre este formato y el siguiente 6 instrucciones con 2 operandos 111 1111 Código de operación 16 Registro Registro 7 3 3 3 Con 3 bits tenemos 8 combinaciones, nos quedan dos libres, por ejemplo: 110 y 111. 15 instrucciones con 0 operando 111 1111 11 16 Código de operación Registro 7 2 4 3 Para 15 combinaciones necesitamos 4 bits. Por lo que nos aprovechamos de que antes nos sobraban dos combinaciones que empiezan por 11 7 instrucciones con cero operandos 16 111 1111 11 1111 Código de operación 7 2 4 3