Contenido
Introducción
Memorias
Lenguaje de Máquina
Organización Básica de un Computador y
Lenguaje de Máquina
Prof. Rodrigo Araya E.
[email protected]
Universidad Técnica Federico Santa María
Departamento de Informática
Valparaíso, 1er Semestre 2006
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
1 Introducción
2 Memorias
3 Lenguaje de Máquina
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Introducción
La función principal de un procesador es cumplir órdenes.
Estas órdenes son entregadas en un lenguaje especial para
cada procesador: Lenguaje de máquina.
Las palabras del lenguaje de máquina se denominan
instrucciones, y el vocabulario conjunto de instrucciones.
En este capítulo nos centraremos en la estructura del
computador, y en el conjunto de instrucciones.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Estructura de un computador
Un computador digital tiene 3 bloques principales:
El Procesador
El Sistema de Memoria
El Sistema de Entrada y Salida
Diagrama básico de un CPU
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Estructura de un computador
Diagrama de bloques de un AMD64:
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
En un computador existen diversos tipos de memoria (tiempo
de acceso, costo, tamaño).
Estas memorias son jerárquicas:
A medida que se desciende de la pirámide, aumenta la latencia,
aumenta el tamaño, y disminuye el costo de las memorias.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
Registros:
Memoria Cache:
Memoria utilizada directamente por el
procesador.
Memoria intermedia, ubicada muy cerca
de la unidad de procesamiento.
Memoria Principal: Memoria de acceso aleatorio (RAM).
Memoria Externa: Memoria de almacenamiento masivo no volátil
(Disco Duro, Medios ópticos, cintas, etc.).
Los Registros, Cache y Memoria Principal son considerados
memorias internas.
Estrategia
Organizar datos y programas en memoria de manera que las
palabras de memoria siempre estén en la memoria más rápida.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
Unidad de Transferencia
Otro aspecto importante en las memorias es la Unidad de
Transferencia. Esta unidad corresponde a la cantidad de bits que
se transfieren desde/hacia el dispositivo de memoria.
Palabra: Es la unidad “natural” de memoria. En una
arquitectura limpia, el tamaño de una palabra
corresponde, al número de bits utilizado para
representar números en un registro, y a la longitud de
una instrucción.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
Unidad de Transferencia
En Memoria Caché a menudo es igual a la longitud de una
palabra.
En Memoria Principal es igual al número de bits que se leen o
escriben. Generalmente no coincide con el tamaño de una
palabra (típicamente 8 bits).
En Memoria Externa los datos se transfieren en unidades más
grandes que una palabra.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
Para cargar un dato de memoria principal en el procesador, es
necesario pasar por la memoria intermedia, Cache.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
Memoria Cache
Es altamente probable que futuros accesos del procesador a
memoria principal, sean a posiciones accedidas recientemente.
Se retienen algunos de los bloques de la Memoria Principal en
la Memoria Cache.
El manejo de la memoria caché esta implementado en HW y
es de forma automática.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
La memoria de caché cuenta además con un espacio para
almacenar una etiqueta que tiene referencia al bloque de
memoria principal que se cargó.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Memorias
La memoria principal es bastante más grande, y tiene un
tamaño limitado por el direccionamiento.
Se pueden direccionar 2n − 1 “lineas” de memoria principal.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Lenguaje de Máquina
Para el estudio de arquitectura consideraremos la máquina
MIPS (R3000 y R4000).
MIPS R3000, R4000
Procesador de 32 bits
Tecnología RISC.
Su diseño es bastante “limpio” y general, para entender el
lenguaje de máquina.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Lenguaje de Máquina
Lenguaje de Máquina
El Lenguaje de Máquina se escribe utilizando instrucciones.
Existen diversas instrucciones para un procesador, las que
permiten realizar:
Operaciones lógicas y aritméticas.
Lectura/Escritura y corrimiento de datos.
Saltos y Bifurcaciones.
Etc...
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Instrucciones
A diferencia de los lenguajes de alto nivel, los operandos de
las instrucciones no pueden ser variables.
Para los operandos se utilizan registros.
Todos los registros en MIPS, tienen 32 bits.
El grupo de 32 bits se denomina palabra.
El archivo de registros de MIPS tiene 32 registros.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Instrucciones
Registros temporales para variables
Por el momento definiremos los registros que se utilizan como
operandos en las instrucciones:
Por convención utilizaremos:
Para variables que deben ser preservadas a través de llamadas:
$s0, $s1, $s2, . . . , $s7
Para variables que no necesitan ser preservadas a través de
llamadas:
$t0, $t1, $t2, . . . , $t9
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Instrucciones Aritméticas
En todo computador se deben realizar operaciones
aritméticas, tanto para operar sobre datos, como para
direccionar memoria, realizar bifurcaciones, etc..
Suma y Resta
La suma y la resta en MIPS, se realizan de la siguiente
manera:
add a,b,c #a ← b + c
sub a,b,c #a ← b − c
Todas las instrucciones aritméticas tienen 3 operandos.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Instrucciones Aritméticas
Ejemplo mas “complicado”
En C
a=b+c
d=a-e
f=(g+h)-(d+a)
En Lenguaje de máquina:
→ add a,b,c
→ sub d,a,e
→ ¿...?
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Instrucciones Aritméticas
Solución
Se tiene
Se asume:
f = (g + h) − (d + a)
g →$s1
h →$s2
d →$s3
a →$s4
f →$s5
Se Luego:
add $t0, $s1, $s2 #$t0 ← g + h
add $t1, $s3, $s4 #$t1 ← d + a
sub $s5, $t0, $t1 #$f ← (g + h) − (d + a)
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
Los lenguajes de programación, además de manejar variables
simples, son capaces de manejar estructuras más complejas.
Estructuras de datos como los arreglos, son mantenidos en
memoria principal.
Existen instrucciones que permiten cargar o guardar palabras
desde la memoria principal a registros del procesador (o vice
versa).
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
La memoria principal está organizada en bytes. Esto significa
que cada dirección apunta hacia un byte.
Como el procesador MIPS tiene registros de 32 bits (una
palabra), se pueden cargar 4 bytes.
Existen 2 organizaciones distintas de ubicar bytes en palabras:
Little Endian.
Big Endian.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
Little Endian y Big Endian
El tipo de organización de la memoria depende exclusivamente
de la arquitectura que se utilice.
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
Little Endian y Big Endian
Ambas organizaciones son ampliamente utilizadas, ya que ambas
tienen sus propias ventajas.
Ejemplos de Little Endian:
VAX
Intel
DEC Risc
Ejemplos de Big Endian:
MIPS
SPARC
IBM 360
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
Para cargar una palabra de memoria principal, a un registro
del procesador, se utiliza la instrucción lw.
Al cargar una palabra, se guardaran 32 bits en el registro
correspondiente, lo que se traduce a 4 bytes de memoria
principal.
Por ejemplo para cargar el valor A[8] en un registro
El valor 8 corresponde al número de elemento del arreglo.
El arreglo A comienza en una dirección de memoria.
Dirección del valor a cargar = dirección de A + 4 ∗ 8
RAE
Organización Básica de un Computador y Lenguaje de Máquina
Contenido
Introducción
Memorias
Lenguaje de Máquina
Arreglos de Memoria
Registro Base y offset
En general, para acceder a una posición de un arreglo de
memoria, se debe sumar una constante a una direcció
Comentarios de: Organización Básica de un Computador y Lenguaje de Máquina (0)
No hay comentarios