Download UNDAV- Informatica - UNIDAD 3

Document related concepts
no text concepts found
Transcript
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
UNIDAD 3: Arquitectura de computadoras
El procesador
Los dos puntos más importantes a tener en cuenta son:


Todos los datos y las instrucciones se representan en código binario y se almacenarán juntos en la
memoria de la computadora.
La computadora no hará distinciones entre datos e instrucciones.
Una máquina de Von Neumann consta de 3 unidades básicas: Procesador, también llamado CPU (siglas de
Unidad Central de Proceso, en inglés Central Process Unit), memoria y unidad de E/S, que serán estudiados en
este tema y en sucesivos. La unidad de E/S permite que la computadora reciba y envíe información al exterior.
La memoria esta compuesta de varias celdas, cada una de las cuales es capaz de contener
1 byte y que tiene una dirección para permitirnos acceder a la misma, como se muestra en la figura adjunta.
Unidad 3 – Arquitectura de las computadoras
1
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
Para que el procesador pueda acceder a un determinado byte (para leerlo o para escribir en él) es
preciso que conozca su dirección.
El procesador esta conectado con la memoria a través de dos buses, que se llaman bus de
datos y bus de direcciones. El primero sirve para que el procesador intercambie datos con la memoria y el
segundo, para especificar que dirección de memoria debe emplear para ello.
Además, existen unas señales de control que permiten, entre otras cosas, decir si queremos leer o escribir.
Concepto de procesador
El objetivo principal de un procesador es el de ejecutar los distintos pasos de una tarea.
Debe también conseguir funcionar lo más rápidamente posible, consumiendo la mínima potencia y
evitando errores y paradas. Para ello, el procesador utiliza una serie de operaciones elementales, a partir de las
cuales se pueden resolver tareas más complejas. Cada una de las operaciones elementales tiene un código
binario y puede tener uno, o varios operando sobre los que actuar.
El procesador dispone habitualmente de un conjunto reducido de posiciones de memoria internas, que
se conocen como registros, y que le permiten almacenar los datos y los resultados con los que está trabajando
en ese momento.
El procesador, o CPU, consta básicamente de dos partes: La unidad aritmética-lógica (ALU, es decir
aritmetic-logic unit) y la unidad de control (CU o control unit). Ambas las veremos a continuación con más
detalle.
La unidad aritmética lógica
La unidad aritmética lógica o ALU de la computadora es la encargada de realizar las operaciones
aritméticas (suma, resta, comparación, producto, cociente) y lógicas (y, o, no, o exclusivo). Está formada por el
acumulador, un conjunto de circuitos lógicos, y el registro decódigos de condición o flags.
Los códigos de condición (o flags de estado del programa), informan acerca de la operación más reciente
que ha ejecutado la ALU. Los flags más importantes son C (carry), Z (zero) y OV (overflow). El primero (carry) se
Unidad 3 – Arquitectura de las computadoras
2
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
activa (pone a 1) cuando el resultado de la última operación aritmética, considerando los operandos sin signo,
no puede almacenarse correctamente; por ejemplo, suponiendo que la CPU fuera de 4 bits, al sumar 1010 con
1101, el resultado es 0111 y C=1, ya que el resultado real es 10111, que no puede almacenarse con 4 bits. El
segundo (zero) se activa cuando el resultado es cero, por ejemplo al sumar 1001 con 0111. Finalmente, el
overflow es como el carry, pero para operandos con signo.
Todas las operaciones realizadas por la ALU se expresan en términos de un gran número de pequeños
pasos, involucrando cada una, a uno o varios de los circuitos lógicos.
La unidad de control
La unidad de control, reducida a la mínima expresión, consta de contador de programa (normalmente
llamado PC), decodificador de instrucciones, puntero de pila (comúnmente llamado SP, en inglés Stack Pointer) y,
opcionalmente, de registro índice.
La unidad de control tiene, así mismo, algo muy necesario, que es el generador de impulsos de reloj, encargado
de sincronizar el funcionamiento del procesador.
Las funciones de la unidad de control son las de controlar el funcionamiento paso a paso del procesador,
mientras éste ejecuta cada una de las instrucciones de un programa.
De forma más especifica, las funciones de la unidad de control son:




Controlar la secuencia en que se ejecutan las instrucciones.
Controlar el acceso del procesador a la memoria principal.
Regular las temporizaciones de todas las operaciones que ejecuta el procesador.
Enviar y recibir señales de control desde los periféricos.
Para realizar sus funciones, consta de los siguientes elementos:
 Contador de programa (CP): también denominado registro de control de secuencia, contiene
permanentemente la dirección de memoria de la siguiente instrucción a ejecutar.
 Registro de instrucción (RI): Contiene la instrucción que se esta ejecutando en cada momento. Esta
instrucción llevará consigo el código de operación (CO) y en su caso los operandos o las direcciones de
memoria de los mismos.
 Decodificador (D): Analiza las instrucciones y emite las señales necesarias al resto de elementos para su
ejecución a través del secuenciador.
 Reloj (R): Marca los instantes en que se han de comenzar los distintos pasos de cada instrucción.
 Secuenciador (S): En este dispositivo se generan ordenes muy elementales (microordenes) que,
sincronizadas por los impulsos del reloj, hacen que se vaya ejecutando poco a poco la instrucción que esta
cargada en el RI.
Unidad 3 – Arquitectura de las computadoras
3
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
Buses del sistema
Hasta ahora nos hemos ocupado de cómo es el procesador por dentro. Veamos ahora como se
comunica con el exterior.
El procesador está encapsulado en plástico y tiene una serie de patas a través de las que se conecta al
resto de componentes de la computadora. Se puede dividir el conjunto de patas en tres bloques: el bus de
datos, el bus de direcciones y las señales de control. Además necesita unas patas dedicadas a la alimentación
eléctrica del chip.
El bus de datos son las líneas por las que el procesador lee o escribe datos en la memoria o en los
periféricos. Consta normalmente de 8, 16, 32 o 64 hilos, cada uno de ellos representa un bit del dato que el
procesador lee o escribe.
El bus de direcciones son las líneas por las que el procesador decide la posición de memoria con la que
quiere comunicarse. Cada posición tiene un número y dependiendo del número de hilos que compongan dicho
bus, el procesador podrá manejar más o menos memoria.
Aunque el bus de datos sea de más de 8 bits, por razones de compatibilidad las posiciones de memoria
se numeran de 8 en 8 bits. Análogamente al bus de datos, por cada hilo del bus de direcciones circula un bit, y la
dirección se forma con el número binario que representan dichos bits. Los tamaños más comunes de bus de
direcciones son 16 (lo que permite tener 64Kb de memoria), 20 (1Mb), 24 (16Mb) y 32 (4Gb). NOTA: estos
valores corresponden a una palabra de memoria de 1 byte (8 bits).
Las señales de control sirven para que el procesador pueda controlar lo que hace, por ejemplo hay una
llamada W/ R que le sirve al procesador para indicar cuando quiere leer y cuando quiere escribir, si la señal está
a 0 se trata de una lectura y si está a 1 el procesador necesita escribir.
Para acceder a los periféricos el procesador emplea tres estrategias:
 Escrutinio: Consiste en leer periódicamente el estado del periférico para decidir lo que debe hacer. Por
ejemplo, si se usa un teclado de esta forma, periódicamente (por ejemplo, cada centésima de segundo) se
lee a través de un puerto un registro de estado del teclado, que informa de sí hay una tecla pendiente de
ser leída, en ese caso el procesador lee la tecla a través de otro puerto.
 Interrupción: El periférico interrumpe al procesador cuando necesita ser atendido, para ello el procesador
dispone de una señal de control llamada INTR, que debe ser usada en ese caso, existe además un
controlador de interrupciones externo encargado de canalizar todas las posibles peticiones de
interrupción. Cuando se interrumpe al procesador, éste para lo que está haciendo y ejecuta un programa
Unidad 3 – Arquitectura de las computadoras
4
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
de atención al periférico. Cuando acaba dicho programa, se vuelve al estado anterior y continúa con lo
que hacía al ser interrumpido. La pila sirve para conservar el estado del procesador cuando se produce la
interrupción, y poder continuar más adelante. Por ejemplo, el reloj funciona de esta forma. Cada cierto
tiempo (por ejemplo, una centésima de segundo) interrumpe al procesador y le fuerza a que ejecute un
programa que se encarga de incrementar la hora, que está almacenada en varias posiciones de memoria
(una para las centésimas de segundo, otra para los segundos, etc.).
 Acceso directo a memoria: Cuando un periférico necesita enviar varios datos consecutivamente a
memoria, los dos métodos anteriores son muy difíciles de emplear y se emplea éste, que consiste en
tener un chip de apoyo al procesador que se llama controlador de DMA (acceso directo a memoria) que
es capaz de leer y escribir en memoria sin ayuda del procesador.
Memoria
La memoria es el componente de la computadora que almacena la información que éste posee, es decir,
sus datos y programas. Es como un bloc de notas que mantiene la información mientras estamos trabajando con
ella.
La memoria de la computadora está organizada en unidades de bytes, cada uno compuesto por 8 bits.
Cada celda de memoria almacena un número fijo de bits, a este número se lo denomina palabra de memoria.
No importa que tipo de información estemos almacenando; estará codificada en una estructura
particular de bits, que será interpretada de la forma adecuada al tipo de datos en cuestión. Los mismos bytes de
memoria se emplean para almacenar códigos de instrucciones, datos numéricos, datos alfabéticos, sonidos,
vídeo, etc.
Para ser capaces de trabajar con la memoria, cada unidad de bytes tiene una dirección, un número que
sólo identifica a esa unidad. Las direcciones de memoria están numeradas una a una, empezando por cero.
Las operaciones básicas que permite una memoria son dos: escritura o almacenamiento y lectura.
En la escritura, o almacenamiento, la memoria necesita que le suministren una información y una
dirección. La operación consiste en grabar la información en la dirección especificada.
En la lectura, la memoria debe recibir una dirección. La operación consiste en recuperar información
previamente escrita en esa dirección.
Por tanto, podemos ver las memorias como cajas negras, a las que hay que suministrar una dirección y
unas señales de control, que especifican la operación que se desea realizar, además de enviar o recibir el dato, o
bloque de datos, correspondiente.
Características de las memorias
En la computadora hay dos tipos básicos de memorias, las memorias de sólo lectura, o ROM (Read Only
Memory), y las memorias de lectura/escritura, o RAM (Random Access Memory).
Para poder estudiarlas vamos a introducir en este apartado una serie de conceptos que permiten
caracterizar los diversos tipos de memoria.
Duración de la información
En relación a la permanencia de la información grabada en las memorias, hay dos principales clasificaciones:
Unidad 3 – Arquitectura de las computadoras
5
Ingeniería en Informática
Primer cuatrimestre de 2012


Informática
Memorias permanentes: Son memorias que contienen siempre la misma información y no pueden
borrarse. Como ejemplo de este tipo de memorias se pueden citar las memorias de semiconductores tipo
ROM, de las que hablaremos posteriormente.
Memorias Volátiles: Precisan estar continuamente alimentadas de energía. Si se corta dicho suministro se
borra la información que poseen. En contraposición están las no volátiles, en las que la información
permanece aunque se elimine la alimentación.
Modo de acceso
 Acceso aleatorio: En las memorias de acceso aleatorio se accede directamente al byte o posición deseada,
en un tiempo independiente de la dirección a la que se quiere acceder, por ejemplo las memorias RAM
son de acceso aleatorio.
 Acceso secuencial: En las memorias de acceso secuencial se llega a la posición deseada a través de una
secuencia de posiciones, que depende de donde esté la información en el momento en el que se quiere
acceder a ella, por ejemplo para acceder a una información en una cinta magnética es necesario recorrer
la cinta hasta encontrar la información deseada.
Tiempo de acceso
Se denomina tiempo de acceso al que transcurre entre el instante en que se envía una operación de
acceso a memoria y el instante en que se dispone de la primera información buscada.
Según el tiempo de acceso se puede hablar de memorias rápidas o lentas, pero como eso no es
demasiado preciso, es mejor citar el tiempo de acceso, que se mide normalmente en nanosegundos.
Capacidad
Es la cantidad de información que puede almacenar una memoria. Dado que la información se almacena
en formato binario, la capacidad se mide en bytes.
Se utiliza el byte porque es el menor tamaño de información, a la que se puede acceder en una
operación de acceso a memoria, ya que cada posición de memoria almacena un byte. Aunque a la hora de
hablar de la capacidad de memoria, se utilizan múltiplos de él (KByte, MByte, GByte, TByte).
Memorias de sólo lectura: ROM
Como indica su propio nombre son memorias que sólo permiten la lectura, también son de acceso
aleatorio y no volátiles.
Este tipo de memorias se utilizan para guardar una serie de programas que vienen con la computadora
desde fábrica, como son los contenidos en la ROM-BIOS (Basic Input-Output System). En ella básicamente están
unos programas de diagnóstico, encargados de chequear el hardware para comprobar que todo es correcto
antes de arrancar. Además, tiene el programa de arranque, encargado de cargar el sistema operativo en
memoria y, los programas para controlar los periféricos más comunes: unidades de disco, teclado, puertos serie
y paralelo, tarjeta gráfica, etc. Algunos periféricos requieren tener una memoria ROM para contener el
Unidad 3 – Arquitectura de las computadoras
6
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
programa encargado de gestionarlos, por ejemplo las tarjetas VGA cuentan con una memoria ROM de esas
características ya que el BIOS sólo controla tarjetas CGA o MDA.
Atendiendo a la manera en que son grabadas se pueden distinguir varios tipos:

ROM: La palabra ROM puede ser aplicada a cualquiera de estos tipos de memoria, pero en este caso
vamos a reservarla para memorias grabadas de fábrica en las que los transistores están dispuestos de la
manera necesaria para que se lean los valores que debe contener.

PROM (Programable Read Only Memory): Este tipo de memorias son similares a las anteriores. Son
memorias de sólo lectura pero en vez de grabarse en fábrica, pueden grabarse, aunque una sola vez. Una
vez grabada la información no podemos cambiarla, tan sólo leerla.

EPROM (Erasable Programable Read Only Memory): La información puede ser modificada por el usuario
un número limitado de veces. Para grabar la información se necesita un aparato especial, llamado
grabador de EPROM. Antes de regrabar una EPROM hay que borrar el contenido anterior, para ello se
emplea luz ultravioleta y posee una ventana que permite el paso de la misma, normalmente esta tapada
para evitar un borrado accidental.

EEPROM (Electricaly Erasable Programable Read Only Memory): Se diferencian de las anteriores en que
pueden borrarse y grabarse en el mismo sistema informático y, en este caso, tanto la operación de
borrado como de escritura se hace mediante el paso de corriente eléctrica. La información es borrada
simultáneamente en todas las células de memoria.
Memorias de lectura/escritura: RAM
Son memorias de lectura/escritura, acceso aleatorio y volátiles. La memoria principal de una
computadora es RAM, ya que la ROM al no permitir la escritura tiene un uso limitado. El sistema operativo y los
programas y datos del usuario se almacenan en memoria RAM para poder ser usados por el procesador.
Podemos distinguir dos tipos de memorias RAM:
 DRAM (Dinamic Random Access Memory): Son memorias en las cuales el estado (0 ó 1) se almacena en
un dispositivo electrónico cuya forma de funcionamiento podemos compararla con un condensador que
tiende a descargarse. Por ello, cada cierto tiempo, entre 1 y 18 millones de veces cada segundo, hay que
enviar una señal, que se denomina señal de refresco, que recuerde a la memoria la información que
posee, ya que ésta, se pierde poco después de haberse introducido.
 SRAM (Static Random Access Memory): La diferencia fundamental con las memorias anteriores es que no
necesitan refresco, para ello emplean varios transistores por bit, lo cual reduce la capacidad de la
memoria y hace que sean más caras que las DRAM (a igualdad de capacidad), a cambio son más rápidas
que las DRAM, van de 50ns a 15ns.
Unidad 3 – Arquitectura de las computadoras
7
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
Jerarquía de memoria
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen
las computadoras. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una
memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
 Cantidad
 Velocidad
 Costo
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La
velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya
tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el
costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las
siguientes afirmaciones son válidas:
 A menor tiempo de acceso mayor costo
 A mayor capacidad mayor costo
 A mayor capacidad menor velocidad
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para
satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado
Unidad 3 – Arquitectura de las computadoras
8
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al
de la memoria más rápida.
Los niveles que componen la jerarquía de memoria habitualmente son:







Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria principal
Nivel 3: Memorias flash
Nivel 4: Disco duro (con el mecanismo de memoria virtual)
Nivel 5: Cintas Magnéticas Consideradas las más lentas, con mayor capacidad.
Nivel 6: Redes (Actualmente se considera un nivel más de la jerarquía de memorias)
Leyendo de la memoria
Cuando el procesador quiere acceder a un dato, es decir para leer un dato de la memoria, realiza la
siguiente secuencia:
1. Coloca la dirección del dato en el bus de direcciones.
2. Coloca en la pata W / R (línea de control) un 0 para indicar que desea leer.
3. Espera un tiempo prefijado a que la memoria coloque en el bus de datos el dato en cuestión.
4. Lee el dato del bus de datos y da por concluida la secuencia.
Escribiendo en memoria
Cuando el procesador transfiere un dato hacia la memoria, es decir, cuando se escribe en la memoria, se
produce la siguiente secuencia:
1. Coloca la dirección del dato en el bus de direcciones.
2. Coloca en la pata W / R un 1 para indicar que desea escribir.
3. Coloca el dato en el bus de datos.
4. Espera un tiempo prefijado a que la memoria lea el dato del bus de datos y almacene dicho valor en la
dirección pedida, pasado ese tiempo da por concluida la operación.
Ciclo de instrucción
Un ciclo de instrucción es el período que tarda la unidad central de proceso (CPU) en ejecutar una
instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada
instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente
número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos
máquina.
Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo una
computadora) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea (programa) primero
debe buscar cada instrucción en la memoria principal y luego ejecutarla.
Unidad 3 – Arquitectura de las computadoras
9
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
Un ciclo de instrucción se divide en dos fases: fase de búsqueda y fase de ejecución.
Fase de búsqueda
1.
2.
3.
4.
5.
La unidad de control (UC) envía una micro orden para que el contenido del registro contador de programa
(RCP) que contiene la dirección de la siguiente instrucción (la que corresponde procesar), sea transferido
al registro de dirección de memoria (RDM).
La posición de memoria que figura en el RDM es utilizada por el selector para transferir su contenido
(instrucción) al registro de intercambio de memoria (RIM).
Se transfiere la instrucción desde el registro de intercambio de memoria (RIM) al registro de instrucción
(RI).
El decodificador procede a interpretar la instrucción que llega desde el registro de instrucción (RI), y
queda dispuesta la activación de UAL y se informa al secuenciador.
El registro contador de programa se autoincrementa a través de la UAL con un valor 1 (o n en caso de
utilizar la longitud de palabra de memoria), para quedar apuntando a la próxima instrucción consecutiva.
Si la instrucción en ejecución es de ruptura de secuencia, el CP se cargará con la dirección que
corresponda.
Unidad 3 – Arquitectura de las computadoras
10
Ingeniería en Informática
Primer cuatrimestre de 2012
Informática
Fase de ejecución
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Se transfiere la dirección del 1º operando desde el registro de instrucción (RI) al registro de dirección de
memoria (RDM).
El selector extrae de la memoria dicho dato depositándolo en el registro de intercambio de memoria
(RIM).
Se lleva el operando desde el registro de intercambio de memoria (RIM) al registro de entrada 1 (REN1)
de la UAL.
Se transfiere la dirección del 2º operando desde el RI al registro de dirección de memoria (RDM).
El selector extrae de la memoria dicho dato depositándolo en el registro de intercambio de memoria
(RIM).
Se lleva este operando desde el registro de intercambio de memoria (RIM) al registro de entrada 2 (REN2)
de la UAL.
El secuenciador envía una micro orden a la UAL para que se ejecute la operación de que se trate. El
resultado de la operación queda almacenado en el registro acumulador (RA) o (ACUM).
Este resultado es enviado desde el ACUM al registro de intercambio de memoria (RIM).
Se transfiere desde el registro de instrucción (RI) al registro de dirección de memoria (RDM) la dirección
donde ha de almacenarse el resultado en la memoria.
Se transfiere el resultado desde el (RIM) a la dirección de memoria indicada en el registro de dirección de
memoria (RDM).
La familia de procesadores Intel 80x86
Unidad 3 – Arquitectura de las computadoras
11
Ingeniería en Informática
Primer cuatrimestre de 2012
Unidad 3 – Arquitectura de las computadoras
Informática
12