Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de computadores
Tema 1 - Introducción
Esquema básico del computador Von Neumann
La memoria principal es volátil, se hace con tecnología RAM. Necesitamos una memoria no
volátil donde se pueden almacenar programas o datos permanentemente. Todos estos
dispositivos están fuera del computador pero necesitamos que se comuniquen con él, por ello
existe la unidad de E/S. También otros periféricos son importantes para darle utilidad al
computador, todos ellos se comunican a través del mismo dispositivo.
1
Apuntes de Estructura de Computadores
Memoria principal
Es un conjunto de CI. Podemos verla como una lista ordenada de posiciones donde se
almacenan datos (con palabras de igual longitud) a razón de una palabra por posición.
Para acceder a la memoria primero la unidad de control debe procesar la instrucción con la
que lo pedimos y enviar una petición (MEMRQ). La memoria tarda un tiempo determinado en
introducir el dato o instrucción solicitado en el bus que se denomina tiempo de acceso (tacc) y
que depende de su velocidad. También hay que tener en cuenta su tamaño (que suele ser de 4
a 8 GB). Estas acciones se pueden representar mediante cronogramas.
Cronograma
Este cronograma es un ejemplo. En este caso la instrucción es la lectura de la memoria
principal.
Cuando se estabiliza se hace la petición de memoria, siempre debe activarse después. Como
MEMQR tiene rayita arriba activo es cuando está a cero.
2
Apuntes de Estructura de Computadores
Permanece inactiva
El dato se da en este
caso por la CPU.
3
Apuntes de Estructura de Computadores
Instrucción típica
En casi todas las instrucciones siempre se realizan ciclos de lectura y/o escritura. El primer
paso siempre es un ciclo de lectura para leer la instrucción.
Siguiente
instrucción
Sus parámetros más importantes son la longitud de palabras, direcciones y contenido. Algunos
términos importantes de una memoria principal son:
Por ejemplo:
4
Apuntes de Estructura de Computadores
La pila es una zona de memoria que debe recuperarse más tarde. Tiene una arquitectura LIFO
(Last In First Out). La pila está acotada en su cima por un registro especial llamado puntero de
pila (SP).
Con esta estructura el SO puede controlar donde hay instrucciones y donde hay datos en la
memoria. Si se intenta acceder a algún sitio que no se debe puede controlarse y minimizar el
número de errores.
Si tienes una ALU que solo puede operar R-R y algún operando (o ambos) está en memoria,
primero tendrás que traerlo de la Mp a un registro y después operar con él.
Registros
Se distinguen tres tipos de registro.
5
Apuntes de Estructura de Computadores
El multiplexor permite seleccionar el origen del dato: de la ALU o de la Mp. En general lo que
tendremos en los registros se utilizará en una instrucción determinada.
Contador de programa
Contiene la dirección de la siguiente instrucción a ejecutar, suele trabajar de forma secuencial.
6
Apuntes de Estructura de Computadores
Si quisiéramos cambiar el contenido del PC sin hacerlo de forma secuencial tenemos que
acceder al PC desde la memoria.
Ejemplo
ld r1, /1000
add r1, r2 Utiliza el incremento automático.
inc r1
jmp Z,/2000 Dependiendo de si se cumple o no la condición utilizará el
dec r2 incrementador o tendrá que echar mano de la memoria.
Registro de estado
Debemos actualizarlo cada vez que se haga una operación en la ALU. En él se guardan los flags.
Hablaremos más de él en la especificación de la ALU.
Si se realiza una operación PUSH para añadir un dato a la pila, se aumenta SP y se coloca el
nuevo elemento en la nueva posición.
7
Apuntes de Estructura de Computadores
Registros transparentes
Son registros propios del procesador que, en ningún caso, pueden ser controlados o
modificados por el usuario.
Registro de instrucción
Contiene la instrucción que se está ejecutando. Esta instrucción está organizada en partes.
8
Apuntes de Estructura de Computadores
Si la instrucción tiene dos palabras, en el IR solo se carga la primera (la que contiene el código
de operación [CO] en cualquier caso). La segunda palabra no se sabe donde irá, pero nunca al
IR. El CO es el que da la información al procesador para activar las señales de control
necesarias.
Registro de direcciones
Contiene la dirección que se carga cuando se va a leer o escribir en memoria.
Registro de datos
Contiene el dato que se ha leído o se va a escribir en memoria. Tiene dos señales de control ya
que se puede cargar desde dos sitios diferentes, desde el procesador o desde memoria.
Unidad de control
La Unidad de control (UC) contiene todas las señales de control necesarias para controlar el
resto de elementos del controlador. Está sincronizada en el tiempo gracias a su entrada de
reloj.
9
Apuntes de Estructura de Computadores
La fase de Fetch es común a todas las instrucciones del mismo computador. En esta fase debe
leerse la memoria buscando la instrucción, después llevarla al IR y finalmente incrementar el
PC. En la fase de análisis o decodificación la unidad de control decodifica el CO y entonces se
sabe que instrucción es. Por último en la fase de ejecución se leen los operandos de la
instrucción, se realizan las operaciones necesarias y se almacena el resultado. Esta fase es
diferente para cada instrucción, incluso hay instrucciones que no tienen esta fase.
10
Apuntes de Estructura de Computadores
Primera instrucción
RD, MEMRQ
Segunda instrucción
11
Apuntes de Estructura de Computadores
Tercera instrucción
Ejecución: PC → AR; RD, MEMRQ; (Esperar) BD → DR; DR → AR; inc PC; r1 → DR; RD, MEMRQ;
(Esp).
Cuarta instrucción
Ejemplo 2
Fetch
El procesador debe leer la instrucción de Mp. La dirección de dicha instrucción se encuentra en
el PC:
AR ← PC
Lectura de Mp
DR ← M(AR) ; Tras un tiempo de acceso el contenido de la
; dirección de Ar se pasa al DR, por tanto en
; DR se encuentra la instrucción.
IR ← DR
PC ← PC + 1
Después vendrá la fase de decodificación y la fase de ejecución que sumaría los dos registros.
Ejemplo 3
12
Apuntes de Estructura de Computadores
La dirección absoluta (/1000) probablemente no quepa en una sola palabra por lo que
debemos usar dos palabras. La lectura de la segunda palabra no es un Fetch, no se carga como
la primera.
Fetch
AR ← PC
Lectura de Mp
DR ← M(AR) ; DR contiene la primera palabra de la ins
IR ← DR
PC ← PC + 1
Ejecución
AR ← PC
Lectura de Mp
DR ← M(AR) ; DR contiene la primera palabra de la ins
AR ← DR
Lectura de Mp
R1 ← M(AR)
Tipos de instrucciones
Existen tres tipos básicos de instrucciones:
Ejemplo:
13
Apuntes de Estructura de Computadores
Instrucciones privilegiadas
Son instrucciones que se reservan al SO, por tanto un usuario no puede ejecutarla. Para evitar
que lo haga la máquina tiene dos modos diferentes de acceso:
Para diferenciar el modo de ejecución hay un bit que se almacena en el SR, junto a los flags de
condición. Se denomina bit N y toma un valor si está en modo usuario y el contrario si está en
modo supervisor.
Cuando un usuario quiere hacer algo que su modo no permite el procesador lanza una
excepción. Esas excepciones se tratan en la UC.
Complejidad de la UC
La complejidad de la UC depende de tres factores:
Unidad de Entrada/Salida
14
Apuntes de Estructura de Computadores
Conecta la CPU con dispositivos periféricos. Estos nos permiten cargar tanto datos como
programas. Los periféricos facilitan la interacción persona/máquina.
Permite cargar los programas y datos que va a utilizar el periférico en la Mp. Es necesario
debido a la dificultad de unir directamente los periféricos al procesador (por la diferencia de
volumen de datos y velocidad).
Problemas previos
Lo primero que nos preguntamos es qué y cuantos periféricos vamos a utilizar para que el
módulo de E/S pueda comunicarse con ellos. Sin embargo, vemos que el número de periféricos
es demasiado grande para que el módulo sepa comunicarse con cada uno de ellos con su
lenguaje específico.
Por ello es necesario que los fabricantes de ordenador publiquen sus especificaciones y, así, los
fabricantes de periféricos pueden adecuarse a ellos.
Cada registro tiene una dirección propia que permite la comunicación con el procesador.
Funciona de forma similar y, para leer el módulo, el CPU tiene que enviar un proceso de
lectura.
Direccionamiento de dispositivos
El módulo asigna a cada registro una dirección. Esta se lanza a través del bus de direcciones.
Puede hacerse de dos formas:
15
Apuntes de Estructura de Computadores
LOAD y STORE → Mp
IN y OUT → E/S
Por ejemplo:
Transferencia de datos
Comunica el módulo con el periférico propiamente dicho. Existen varias formas de
transferencia.
E/S programada
Es el procesador el que se encarga de todos los procesos de E/S:
16
Apuntes de Estructura de Computadores
17
Apuntes de Estructura de Computadores
que está preparado enviando una señal de interrupción (INT). El procesador le atiende y se
encarga de hacer la transferencia de la siguiente forma:
También existe una última forma de funcionamiento denominada E/S de acceso directo a
memoria en la que es el periférico el que hace todo el trabajo.
Software de sistemas
Son determinados programas necesarios para que el computador funcione y pueda
controlarse por el usuario.
Editores de texto
Necesarios para poder escribir los programas con lenguajes de alto nivel. Estos programas
serán los que el usuario necesite para controlar el computador. Este código fuente será el que
se lleve al compilador.
Compiladores y ensambladores
Los compiladores traducen el código escrito por el usuario en código ensamblador y los
ensambladores convierten el código ensamblador en código máquina comprensible para el
ordenador.
Cargadores (bootstrap)
Es un pequeño programa en memoria principal, siempre en el mismo sitio, que no puede
borrarse y cuyo cometido en encender toda la máquina.
Depuradores
Es muy extraño escribir un programa y que ejecute sin errores a la primera. Como siempre se
tienen errores y no siempre es fácil ver donde estos programas depuradores nos ayudan a
descubrir donde están.
Sistema operativo
Este programa en realidad es un enorme conjunto de programas básicamente dedicados a
controlar el computador. Tres tareas básicas de un OS son:
18
Apuntes de Estructura de Computadores
Tamaño de la memoria
Capacidad de la memoria. No solo de la memoria principal sino de otros tipos de memorias
(CD, DVD, U. de disco, U. de cinta, Flash). Son potencias de dos.
K (kilo, 210), M (Mega, 220), G (Giga, 230), T (Tera, 240), P (Peta, 250) bytes
Velocidad de reloj
El reloj es una señal digital constante y fija, es uno de los parámetros de entrada de la U. de
control. La velocidad de reloj mide la frecuencia de esta señal. Se mide en hercios del orden de
Megahercios (MHz) y Gigahercios (GHz).
mili (m), micro (u, μ), pico (p), femto (f) segundos
Capacidad de cómputo
Velocidad del procesador. Se mide en flops, operaciones en coma flotante por segundo.
Ancho de banda
Velocidad a la que los datos avanzan por el bus de datos. Bps es bytes por segundo y bps (bits
por segundo).
Ejercicio
Tenemos una velocidad de reloj de 200 MHz y este compilador divide las operaciones en 5
fases. Sabemos que 200 MHz son 200 millones de ciclos por segundo. También sabemos:
Fetch 12 ciclos
Decodificación 1 ciclo
Búsqueda operandos 1 ciclo 16 ciclos de reloj
Operación 1 ciclo
Escritura resultados 1 ciclo
19
Apuntes de Estructura de Computadores
20