Estructura del Computador
Procesador Arquitectura Arquitectura del Conjunto Conjunto de Instrucciones (ISA)
Estructura del Computador. Prof. Laura Navarro
1
Arquitectura del Conjunto de Instrucciones ●
“La arquitectura del conjunto conjunto de instrucciones es e s la estructura estru ctura de un computador que un programador de lenguaje de máquina (o un compilador) debe entender para p ara escribir un programa programa correcto para esa máquina” IBM Introduciendo 360 (1964)
●
Un conjunto de instrucciones especifica la funcionalidad de un procesador: –
–
–
Las operaciones que soporta Los mecanismos de almacenamiento que ene y como son accedidos Como el programador/c programador/compilador ompilador comunica progr p rogramas amas al procesador
Estructura del Computador. Prof. Laura Navarro
2
Arquitectura del Conjunto de Instrucciones Nivel de Arquitectura del Conjunto de Instrucciones (ISA) ●
Se encuentra entre el nivel de microarquitectura y el de Sistema Operavo
●
Históricamente este nivel fue desarrollado antes que ningún otro
●
Es la interfaz entre el hardware y el soware
●
●
El Nivel ISA se define como la forma en la que se ve la máquina para un programador programador en lenguaje de máquina Actualmente, cuando ya nadie programa en lenguaje de máquina, podríamos decir que es el lenguaje en el que el compilador traduce los programas (agregando las llamadas al sistema operavo
Estructura del Computador. Prof. Laura Navarro
3
Arquitectura del Conjunto de Instrucciones ●
Normalmente los lenguajes de alto nivel se traducen a un lenguaje intermedio (nivel ISA) que el hardware puede ejecutar directamente
Programa en C
Programa en Pascal
Programa compilado a programa en ISA
Programa en C++
Programa compilado a programa en ISA
Prog. compilado a prog. en ISA
SW Nivel ISA HW
Programa ISA ejecutado por un microprograma o HW
Hardware
Estructura del Computador. Prof. Laura Navarro
4
Caracteríscas de las Instrucciones de Máquina Elementos de una instrucción de máquina: ●
●
●
●
Código de operación: Especifica la operación a ejecutar Referencia al operando fuente: puede tener uno o más. Son los operandos de entrada a la operación Referencia al operando de salida: la operación puede producir un resultado Referencia a la próxima instrucción: le dice al procesador donde buscar la próxima instrucción una vez se complete la ejecución de la instrucción actual
Estructura del Computador. Prof. Laura Navarro
5
Caracteríscas de las Instrucciones de Máquina Los operandos pueden estar en una de 4 áreas: ●
Memoria principal o virtual
●
Disposivo de entrada/salida
●
Registro del procesador
●
Inmediato
Estructura del Computador. Prof. Laura Navarro
6
Caracteríscas de las Instrucciones de Máquina Representación de la instrucción : ●
●
Cada instrucción es representada por una secuencia de bits La instrucción se divide en campos, que se corresponden con los elementos que constuyen la instrucción
Código de operación
Operando (Dirección)
Estructura del Computador. Prof. Laura Navarro
Operando (Dirección)
7
Caracteríscas de las Instrucciones de Máquina Tipos de instrucciones: ●
●
Procesamiento de datos: Instrucciones lógicas y aritmécas Almacenamiento de datos: Movimiento de datos desde y hacia registros o localidades de memoria
●
Movimiento de datos: Instrucciones de E/S
●
Control: Instrucciones de prueba y saltos
Estructura del Computador. Prof. Laura Navarro
8
Caracteríscas de las Instrucciones de Máquina ●
Candad de direcciones
●
Máxima candad de direcciones: 4 –
Referencia de los 2 operandos de entrada
–
Referencia al operando de salida
–
●
Dirección de la próxima instrucción, generalmente considerada implícita
Mínima candad de direcciones: 0 –
Se ulizan con una organización especial de memoria: la pila
Estructura del Computador. Prof. Laura Navarro
9
Caracteríscas de las Instrucciones de Máquina
Candad de Direcciones
Representación simbólica
Interpretación
3
OP A, B, C
A ← B OP C
2
OP A, B
A ← A OP B
1
OP A
AC ← AC OP A
0
OP
T ← (T – 1) OP T
AC = T= (T – 1) = A, B, C = OP =
Estructura del Computador. Prof. Laura Navarro
Acumulador Tope de la pila Segundo elemento de la pila Localización de memoria o registro Operador
10
Caracteríscas de las Instrucciones de Máquina ●
Candad de direcciones Instrucción SUB Y, A, B MPY T, D, E ADD T, T, C DIV Y, Y, T
Comentario Y←A–B T←D*E T←T+C Y←Y/ T
Instrucciones de tres direcciones
Instrucción MOVE Y, A SUB Y, B MOVE T, D MPY T, E ADD T, C DIV Y, T
Comentario Y←A Y←A–B T←D T←T*E T←T+C Y←Y/ T
Instrucciones de dos direcciones Estructura del Computador. Prof. Laura Navarro
Instrucción LOAD D MPY E ADD C STOR Y LOAD A SUB B DIV Y STOR Y
Comentario AC ← D AC ← AC * E AC ← AC + C Y ← AC AC ← A AC ← AC – B AC ← AC / Y Y ← AC
Instrucciones de una dirección
Programas para ejecutar A-B Y = -----------------C + (D * E)
11
Diseño del Conjunto de Instrucciones Es muy complejo ya que afecta múlples aspectos de un sistema de computación. El ISA define muchas de las funciones llevadas a cabo por el procesador: ene un efecto significavo en su implantación. Los aspectos más importantes a considerar en este diseño incluyen: ●
●
●
●
●
Repertorio de operaciones: Cuántas y cuáles operaciones se van a proveer, y su nivel de complejidad Tipos de datos: Los disntos pos de datos sobre los cuáles se ejecutarán operaciones Formato de instrucciones: longitud de las instrucciones (en bits), candad de direcciones, tamaño de los diferentes campos, etc. Registros: Candad de registros del procesador que pueden ser referenciados por las instrucciones y su uso Direccionamiento: la forma o formas en las cuales se especifica la dirección de un operando
Estructura del Computador. Prof. Laura Navarro
12
Tipos de operandos Las categorías generales de operandos más importantes son: ●
Direcciones
●
Números
●
Caracteres
●
Datos lógicos
Estructura del Computador. Prof. Laura Navarro
13
Tipos de Operandos - Números ●
●
Todos los lenguajes de máquina incluyen datos numéricos Los números almacenados en un computador son limitados: –
–
●
Son comunes tres pos de datos numéricos: – – –
●
Hay un límite en la magnitud de los números representables en una máquina En el caso de los números punto-flotante, también hay límites a su precisión Entero binario o punto fijo Binario punto flotante Decimal
Decimales empaquetados: –
–
Cada dígito decimal se representa por un código de 4 bits y se almacenan dos dígitos por byte Para formar los números se juntan los códigos de 4 bits, generalmente en múlplos de 8 bits
Estructura del Computador. Prof. Laura Navarro
14
Tipos de Operandos - Caracteres ●
●
Un forma común de datos es texto o cadenas de caracteres Cada computador usa un conjunto de caracteres, los cuales son representados asignando a cada caracter un número. Esta representación debe obedecer unas reglas básicas: –
–
–
–
Debe incluir, como mínimo, 26 mayúsculas, 26 minúsculas, los dígitos del 0 al 9, signos de puntuación y algunos símbolos matemácos. Las mayúsculas deben tener códigos consecuvos, al igual que las minúsculas y los dígitos. El orden de los códigos de las mayúsculas, minúsculas y dígitos deben coincidir con el orden de estos Los dígitos deben tener asignados códigos que hagan sencilla su conversión a números. Ejemplo, en ASCII los dígitos del 0 al 9 se representan con los código del 30 al 39 en hexadecimal. Para hacer la conversión sólo es necesario tomar los 4 bits más a la derecha del byte.
Estructura del Computador. Prof. Laura Navarro
15
Tipos de Operandos - Caracteres ●
El código de caracteres más comúnmente usado es el ASCII, también llamado IRA (Internaonal Reference Alphabet). Caracteríscas principales: –
Originalmente tenía 7 bits, lo que permia 128 caracteres en total
–
Se expandió luego a 8 bits para incluir caracteres lanos (acentos, etc)
–
●
Los códigos del 0 al 1F (hexadecimal) son caracteres de control y no se imprimen
Otros códigos comunes son: –
–
EBCDIC: Usado en mainframes UNICODE: Expansión de ASCII de 16 bits por caracter que incluye caracteres específicos de otros idiomas diferentes al inglés
Estructura del Computador. Prof. Laura Navarro
16
Tipos de Operandos – Datos Lógicos ●
●
Una unidad de n bits que consiste en n elementos de datos de 1 bit, que pueden tomar el valor de 0 o 1 Dos ventajas de la visión orientada a bits: –
–
La memoria se puede usar de una forma más eficiente almacenando un arreglo de elementos de dato binarios o booleanos en los que cada dato puede tomar solo los valores 1 (verdadero) o 0 (falso) Se pueden manipular los bits de un elemento de datos: ●
●
Si las operaciones punto flotante se implementan por soware, necesitamos ser capaces de desplazar los bits significavos en algunas operaciones Para converr de ASCII a decimal empaquetado, solo necesitamos extraer los 4 bits más a la derecha de cada byte
Estructura del Computador. Prof. Laura Navarro
17
Tipos de Operaciones ●
Transferencia de datos: Transfieren datos de un lugar a otro
●
Aritmécas: Ejecución de operaciones aritmécas.
●
Lógicas: Ejecución de operaciones lógicas.
●
●
●
Conversión: Traduce valores de una sección de memoria basado en una tabla de correspondencias o convierte el contenido de una palabra de una forma a otra (ej: decimal empaquetado a binario) E/S: Realiza operaciones de lectura y escritura desde o hacia puertos de E/S y otras relacionadas Transferencia de control: Operaciones que cambian la secuencia de ejecución de las instrucciones: Saltos incondicionales, saltos condicionales, llamadas a runas y retornos,
Estructura del Computador. Prof. Laura Navarro
18
Tipos de Operaciones - Procedimientos ●
Involucra dos instrucciones básicas: –
–
Instrucción de llamada: que salta de la localización actual al procedimiento Instrucción de retorno: que vuelve del procedimiento al lugar de donde fue llamado
Estructura del Computador. Prof. Laura Navarro
19
Tipos de Operaciones - Procedimientos
Ejemplo de procedimientos anidados
Estructura del Computador. Prof. Laura Navarro
Tipos de Operaciones - Procedimientos
Uso de la pila para implementar los procedimientos de la lámina anterior
Estructura del Computador. Prof. Laura Navarro
21
Tipos de Operaciones - Procedimientos ●
●
Procedimiento P con variables locales x1 y x2 Procedimiento Q con variables locales y1 y y2
Estructura del Computador. Prof. Laura Navarro
22
Ordenamiento de Bytes ●
Se refiere a como se ordenan los bytes dentro de un palabra
●
Existen dos formas: –
–
Big-endian: El byte más significavo se almacena en la dirección de memoria de byte más baja. Es equivalente al orden de izquierda a derecha de la escritura. Lile-endian: El byte menos significavo se almacena en la dirección de memoria de byte más baja.
Estructura del Computador. Prof. Laura Navarro
23
Ordenamiento de Bytes ●
Ejemplo: Si consideramos el valor hexadecimal de 32 bits se almacena en una memoria direccionable por byte a parr de la dirección 184, estas son las dos formas en las que se puede almacenar el valor: Dirección Valor
Big endian
Estructura del Computador. Prof. Laura Navarro
Dirección Valor
Little endian
24
Modos de Direccionamiento ●
●
Existen una variedad de técnicas de direccionamiento creadas para quesea posible referenciar un gran rango de direcciones de memoria, incluso si el campo de dirección de las instrucciones es pequeño. Los modos de direccionamiento más comunes son: –
Inmediato
–
Directo
–
Indirecto
–
De registro
–
De registro indirecto
–
Desplazamiento
–
PIla
Estructura del Computador. Prof. Laura Navarro
25
Modos de Direccionamiento ●
Inmediato: –
–
●
El valor del operando se encuentra en la instrucción. Se acostumbra a ulizar para definir y usar constantes o inicializar variables
Directo –
–
–
El campo de dirección conene la dirección efecva del operando La longitud del campo de dirección es usualmente pequeño lo que limita el rango de direcciones No es común en las arquitecturas contemporáneas Dirección efecva: la dirección del dato en memoria principal o registro
Estructura del Computador. Prof. Laura Navarro
26
Modos de Direccionamiento ●
Indirecto –
●
De Registro –
●
El campo de dirección referencia a la dirección de una palabra de memoria que conene la dirección efecva del operando
El campo dirección conene la dirección a un registro.
Indirecto De Registro –
El campo de operando referencia a la dirección de un registro que conene, a su vez, la dirección de la palabra de memoria que conene la dirección efecva del operando
Estructura del Computador. Prof. Laura Navarro
27
Modos de Direccionamiento ●
Desplazamiento –
–
Modo de direccionamiento que combina las capacidades del direccionamiento directo y el direccionamiento indirecto de registro Requiere que la instrucción tenga dos campos de dirección, donde, al menos uno, es explícito: ●
●
El valor contenido en un campo de dirección es usado directamente (valor = A) El otro campo de dirección se refiere a un registro cuyo contenido se suma a A para producir la dirección efecva
Estructura del Computador. Prof. Laura Navarro
28
Modos de Direccionamiento ●
Relavo: –
El registro referenciado implícitamente es el contador de programa (PC) ●
●
●
La dirección de la próxima instrucción a ejecutar se suma al campo de dirección para generar la dirección efecva Usualmente el campo de dirección se trata como un número en complemento a 2 La dirección efecva es un desplazamiento relavo a la dirección de la instrucción.
Estructura del Computador. Prof. Laura Navarro
29
Modos de Direccionamiento ●
Registro-Base –
●
El registro referenciado conene una dirección de memoria principal y el campo de dirección conene el desplazamiento desde esa dirección
–
El registro referenciado puede ser implícito o explícito
–
Es una forma conveniente de implementar segmentación
Indexado –
–
–
El campo de dirección referencia a una dirección en memoria principal y el registro referenciado conene un desplazamiento posivo desde esa dirección El método para calcular la dirección efecva es el mismo que en el direccionamiento de registro-base Se usa como mecanismo eficiente para ejecutar operaciones iteravas
Estructura del Computador. Prof. Laura Navarro
30
Modos de Direccionamiento ●
Pila –
–
–
La pila es un arreglo lineal de localizaciones La pila está conformada por un bloque reservado de localizaciones de memoria. Los datos se agregan así al tope de la pila mientras el bloque está parcialmente lleno Se asocia un apuntador a la pila cuyo valor es el de la dirección del tope de la misma ●
●
Esta apuntador se manene en un registro Las referencias a localizaciones en memoria son por direccionamiento indirecto de registro.
Estructura del Computador. Prof. Laura Navarro
31
Modos de Direccionamiento (Resumen)
Estructura del Computador. Prof. Laura Navarro
32
Modos de Direccionamiento (resumen) Modo
Algoritmo
Ventaja principal
Desventaja principal
Inmediato
Operando = D
No se hace referencia a memoria
Magnitud del operando limitada
Directo
DE = D
Simple
Espacio de direcciones limitado
Indirecto
DE = (D)
Espacio de direcciones grande
Múlples referencias a memoria
Registro
DE = R
No hay referencias a memoria
Espacio de direcciones limitado
Registro indirecto
DE = (R)
Espacio de direcciones grande
Referencia a memoria adicional
Desplazamiento
DE = D + (R)
Flexibilidad
Complejidad
Pila
DE = Tope de la pila
No hay referencia a memoria
Aplicabilidad limitada
DE = Dirección efectiva Estructura del Computador. Prof. Laura Navarro
D = Campo de Dirección R = Registro (D) = Contenido de D (R) = Contenido de R 33
Formato de Instrucción ●
●
Define la distribución de los bits de una instrucción en función delos campos de lo constuyen Aspectos más importantes del diseño: –
Longitud de la instrucción
–
Distribución de los bits en el formato
–
Instrucciones de longitud variable
Estructura del Computador. Prof. Laura Navarro
34
Formato de Instrucción - Longitud ●
Problema de diseño fundamental
●
Afecta y es afectado por:
●
●
–
Tamaño de la memoria
–
Organización de la memoria
–
Estructura del bus
–
Complejidad del procesador
–
Velocidad del procesador
Debe sr igual a la longitud de las transferencias de memoria, o al menos uno debe ser múlplo del otro Debe ser múlplo de la longitud de un caracter (usualmente 8 bits) y de la longitud de los números punto fijo
Estructura del Computador. Prof. Laura Navarro
35
Formato de Memoria – Distribución de Bits Depende de: ●
●
●
●
●
Candad de modos de direccionamiento: si se deben expresar explícitamente, requiere más bits Candad de operandos: Más operandos, mas largas las instrucciones, menos operandos, más compleja la programación. Máquinas actuales acostumbran a usar 2 Registros o memoria: Los registros requieren menos bits Rango de direcciones: Depende de la candad de bits asignados al campo Granularidad de las direcciones: byte o palabra
Estructura del Computador. Prof. Laura Navarro
36