Вы находитесь на странице: 1из 12

Unidad 3

1 //Escenario
Escenario25
Lectura fundamental
Fundamental

Etapas de un plan de comunicación


estratégica
Microarquitectura del computador

Contenido

1 ¿Qué es la microarquitectura del computador?

2 Datos y control

3 Unidad Lógico-Aritmética (ALU)

4 Registros

5 Memoria de programa

6 Memoria RAM

7 Unidad de control

Palabras clave: micro arquitectura del computador, unidad aritmético lógica, unidad de control, memorias.
1. ¿Qué es la microarquitectura del computador?
La microarquitectura del computador hace referencia a todos los bloques de hardware básicos que
componen un computador y a cómo están organizados. Un sistema típico de microcomputador
consiste de un microprocesador más memoria y una interconexión de elementos de entrada-salida:
I/O. Los diferentes componentes que forman el sistema están enlazados por medio de buses que
trasfieren instrucciones, datos, direcciones e información de control entre los componentes del
circuito integrado. Típicamente el microcomputador tiene un solo microprocesador. Adicionalmente,
un número de cápsulas RAM y ROM son combinadas para formar un tamaño dado de memoria. Las
unidades de interconexión se comunican con dispositivos externos a través del bus I/O. En un tiempo
dado el microprocesador selecciona una de las unidades por medio del bus de direcciones. Los datos
se trasfieren de la unidad seleccionada al microprocesador vía el bus de datos. La información de
control se transfiere usualmente por medio de líneas individuales, cada una especificando una función
de control particular.

El propósito del microprocesador es suministrar una unidad central de procesamiento (CPU)


que interprete códigos de instrucción recibidos de la memoria y ejecute operaciones aritméticas,
lógicas y de control basadas en datos almacenados en registros internos, palabras de memoria o
unidades de interconexión. El microprocesador contiene un número de registros, una unidad lógica
aritmética, una unidad de tiempo y una lógica de control. Externamente, éste entrega un sistema
de buses para trasferir instrucciones, datos e información de control hacia los módulos conectados
con él. La memoria de acceso aleatorio es una memoria de tipo lectura-escritura y consiste de
varios circuitos integrados conectados entre sí. La RAM se usa para almacenar datos, parámetros
variables y resultados intermedios que necesitan renovación y que están sujetos a cambios. La ROM
se usa para almacenar programas. Las unidades de interconexión presentan los caminos necesarios
para transferir información entre el microprocesador y los dispositivos externos de entrada y salida
conectados al bus I/O. El microprocesador recibe y envía información de condiciones y datos de los
dispositivos externos por medio de esta interconexión. Esta comunicación se especifica por medio de
instrucciones programadas que dirigen los datos por medio del bus en el sistema del microprocesador.

El bus de direcciones es unidireccional desde el microprocesador a otras unidades. Este bus se usa
para seleccionar una de las diferentes unidades interconectadas al sistema o a un registro particular.
De manera alterna, puede usarse para especificar si la dirección en el bus es para una palabra de
memoria o para un registro de interconexión.

POLITÉCNICO GRANCOLOMBIANO 2
El número de líneas disponible en el bus de direcciones determina el tamaño máximo de memoria que
puede ser acomodado en el sistema. Para n líneas, el bus de direcciones puede especificar hasta 2n
palabras de memoria.

El bus de datos trasfiere los datos del microprocesador a la memoria o registros y viceversa. El lugar
en el que se guardan o del que se leen los datos es seleccionado por el bus de direcciones. El bus de
datos es bidireccional, lo cual significa que la información binaria puede fluir en cualquier dirección:
desde o hacia el microprocesador.

Un grupo separado de buses de datos y de direcciones es la vía de trasferencia común encontrada en


los microprocesadores. La ventaja de este esquema es que el microprocesador puede seleccionar una
palabra en la memoria y transferir la palabra de datos al mismo tiempo. Algunos microprocesadores
usan un bus común el cual es multiplexado en tiempo, para trasferir direcciones o datos por el mismo
canal. La ventaja de este esquema es que se necesitan menos canales, la desventaja estriba en el
tiempo perdido en el uso secuencial del bus común y la necesidad de un retenedor externo (buffer)
para retener la dirección de la memoria. (Mano, 1994).

2. Datos y control
Ante de revisar en profundidad el funcionamiento de la Unidad Aritmético Lógica (ALU), es
importante recordar los fundamentos de cómo se representan y operan los valores numéricos enteros
y de punto flotante, ya que son los operandos de la mayoría de las operaciones que realizan las ALUs.

2.1. Representación de enteros

En el sistema de numeración binaria, cualquier número puede representarse tan solo con los dígitos 1
y 0, el signo menos y la coma de la base (que separa la parte entera de la decimal). Sin embargo, para
ser almacenados y procesados por un computador, no se tiene la posibilidad de disponer del signo y
de la coma. Para representar los números solo pueden utilizarse dígitos 0 y 1. Si utilizáramos solo
enteros no negativos, su representación sería inmediata. En general un número entero sin signo A
puede representarse como una secuencia de n dígitos binarios an-1 an-2 … a1 a0 tal que:

POLITÉCNICO GRANCOLOMBIANO 3
Existen varias convenciones alternativas para representar número enteros tanto positivos como
negativos. Todas implican tratar el bit más significativo (el más a la izquierda) de la palabra como un
bit de signo: si dicho bit es 0 el número es positivo, y si es 1, el número es negativo (Stallings, 2005).
La representación más adecuada para trabajar sumas y restas en la Unidad Lógico-Aritmética (ALU)
y trabajar el 0 es el complemento a 2 y su valor se define como:

Como se sabe, utilizando esta representación la suma de enteros con signo se simplifica
significativamente, y a partir de ella, la ALU podrá implementar fácilmente la resta (suma con número
en complemento a 2), la multiplicación (sumas sucesivas) y la división (restas sucesivas).

2.2. Representación de números con parte fraccionaria

Para número decimales, se utiliza la notación científica en base 2, y así se pueden representar
números muy grandes o fracciones muy pequeñas. Esta notación se aplica en el sistema binario
teniendo:

Este número puede almacenarse en una palabra binaria de tres campos:

• Signo: más + (0) o menos - (1)

• Parte significativa o mantisa S

• Exponente E

La base B está implícita y no necesita memorizarse ya que es la misma para todos los números.
Normalmente se supone que la coma de la base está a la derecha del bit más a la izquierda, o más
significativo, de la mantisa. Es decir, se asume que hay un bit a la izquierda de la coma de la base
(Stallings, 2005).

POLITÉCNICO GRANCOLOMBIANO 4
Este formato no es ajeno a las limitaciones, pues tiene cuatro espacios de la recta numérica que no
cubre, se conocen como agotamiento negativo y positivo (valores muy pequeños cerca del cero)
y desbordamiento negativo y positivo (aquellos números grandes que no se alcanzan a representar
con el número de bits y el formato utilizado), y su precisión dependerá de cuantos bits maneje. Sin
embargo, al aproximar aquellos números que no cubre el formato, se obtienen resultados en la
mayoría de los casos satisfactorios. Finalmente, es importante aclara que la ALU ejecuta operaciones
entre enteros y éste es el alcance del presente curso. Las operaciones en punto flotante se realizan en
la unidad de punto flotante, que no es cubierta en este módulo.

Así mismo, es importante tener presente que no todas las instrucciones involucran operaciones que
realiza la ALU, existe un grupo de instrucciones con la capacidad de controlar el flujo de ejecución
de los programas, correspondientes a las instrucciones de control que permiten cambiar el orden
en el que se ejecutan las instrucciones para que no siempre sea secuencial. En todos los tipos de
operaciones discutidos hasta ahora, la siguiente instrucción a ejecutar es la inmediatamente posterior,
en la memoria de programa, a la instrucción en curso. Sin embargo, una fracción significativa de las
instrucciones de cualquier programa tiene como misión cambiar la secuencia de ejecución normal
(instrucciones de control).

Para estas instrucciones, la operación que realiza el procesador es actualizar el contador de programa
para que contenga la dirección de alguna de las instrucciones que hay en memoria (Stallings, 2005).
Este comportamiento es importante por múltiples razones, como poder tomar decisiones con base
en los datos que maneje el programa, ejecutar ciclos y poder invocar varias veces un mismo segmento
de código. Las operaciones de control de flujo se clasifican en 3 tipos: salto condicional, salto
incondicional y llamada a procedimiento (Stallings, 2005).

3. Unidad Lógico-Aritmética
Una unidad lógica aritmética (ALU) es una función multioperación digital de lógica combinacional
que puede realizar un conjunto de operaciones aritméticas y lógicas básicas. La ALU tiene un número
de líneas de control para seleccionar una operación en particular de la unidad. Las líneas de control se
decodifican dentro de la ALU de manera que las k variables de selección pueden especificar hasta 2k
operaciones diferentes (Hennessy & Patterson 2000).

POLITÉCNICO GRANCOLOMBIANO 5
Las cuatro entradas de datos de A se combinan con las cuatro entradas de B para generar una
operación en las salidas F. El terminal de selección de modo S2 distingue entre las operaciones
aritméticas y lógicas. Las dos entradas de selección de función S1 y S0 especifican la operación
aritmética o lógica que se va a generar. Con tres variables de selección es posible especificar 8 (23)
operaciones aritméticas y/o lógicas.

Los arrastres (acarreos) de entrada y salida tienen significado solamente durante una operación
aritmética. El diseño de una ALU típico se lleva a cabo en tres etapas.

• Primero, el diseño de la sección aritmética.

• Segundo, el diseño de la sección lógica.

• Finalmente, una etapa de selección que permita definir la salida de qué operación pasa a la salida
de la ALU (Mano, 1994).

Internamente se encuentra una estructura combinacional que tiene una etapa aritmética y otra etapa
lógica, ambas conectadas a un multiplexor que decide qué resultado es el que se mostrará en la salida.

4. Registros
Dentro de los microprocesadores hay un conjunto de registros que funciona a un nivel de memoria
por encima de la memoria principal y de la caché en la jerarquía, su velocidad de operación es vital
para el funcionamiento eficiente del procesador, pero su número es limitado y reducido pues en
contra parte es un tipo de memoria costoso (Hennessy & Patterson 2000). En general, los registros
del procesador son de dos tipos:

4.1. Registros visibles por el usuario:

Tales como los registros de uso general (que pueden almacenar datos o direcciones de la memoria
RAM), que buscan minimizar las referencias a la memoria RAM que es mucho más lenta. A mayor
cantidad de registros visibles por el usuario, mayor flexibilidad tendrá el desarrollador para programar
en tal procesador, pero así mismo, su construcción será más costosa y compleja. Así mismo, estos
registros pueden ser de uso general o tener una utilidad especial, tal como almacenamiento de
número en coma fija o coma flotante, direcciones, índices o punteros de segmento (Stallings, 2005).

POLITÉCNICO GRANCOLOMBIANO 6
4.2. Registros de control y de estado:

Entre los que se encuentran el contador del programa (PC), el registro de instrucciones (IR), el
registro de apuntador de pilas, entre otros.

5. Memoria de programa
En la arquitectura MIPS, en la cual se está basado este curso, la memoria de programa se implementa
sobre memorias ROM, una memoria de solo-lectura (ROM, Read-Only Memory) que contiene un
patrón permanente de datos que no puede alterarse. Una ROM es no-volátil; es decir, no se requiere
fuente de alimentación para mantener memorizado los valores de los bits. Aunque es posible leer
de una ROM, no se pueden escribir nuevos datos en ella. Cuando se requiere un tamaño modesto,
la ventaja de una ROM es que el programa estaría permanentemente en memoria principal y nunca
sería necesario cargarlos desde un dispositivo de memoria secundaria (Stallings, 2005).

PARA TENER EN CUENTA...


En los sistemas de memoria es habitual utilizar técnicas de corrección de errores, como bits de
paridad o código Hamming. Esto implica añadir bits redundantes, que se deducen a partir de datos,
para formar un código de corrección de errores. Si ocurre un error en un bit el código lo detectará y,
normalmente, lo corregirá.

Un programa se define como una secuencia de instrucciones que, al ser ejecutadas en orden,
completan la tarea para la cual fueron definidas. Estas instrucciones se almacenan orden en la
memoria de programa y se van ejecutando conforme apunta a ellas un contador de programa.
Usualmente el contador de programa asciende de uno en uno; sin embargo, en instrucciones de
control puede forzarse un valor al contador de programa para que ejecute una instrucción específica
en la memoria de programa.

POLITÉCNICO GRANCOLOMBIANO 7
6. Memoria RAM
Su nombre significa Memoria de Acceso Aleatorio (RAM, Random Access Memory), sin embargo, es
un mal uso del término, pues todos los tipos de memoria RAM y ROM son de acceso aleatorio. Una
característica distintiva de las RAM es que es posible tanto leer datos como escribir y sobre-escribir
nuevos datos en ellas. La otra característica distintiva de una RAM es que es volátil: para mantener
los datos debe estar alimentada. Así, las RAM pueden utilizarse solo como almacenamiento temporal.
Las dos formas tradicionales de RAM utilizadas en los computadores son la DRAM y la SRAM
(Hennessy & Patterson 2000).

Una memoria RAM Dinámica (DRAM) está hecha con celdas que almacenan los datos como cargas
eléctricas en condensadores. La presencia o ausencia de carga en un condensador se interpretan
como el uno o el cero binarios. Ya que los condensadores tienen una tendencia natural a descargarse,
las RAM dinámicas requieren refrescos periódicos para mantener memorizados los datos. El término
dinámica hace referencia a esta tendencia a que la carga almacenada se pierda, incluso manteniéndola
siempre alimentada. En contraste con la dinámica, una memoria RAM estática (SRAM) es un
dispositivo digital, basado en los mismos elementos que se usan en el procesador. En una RAM
estática, los valores binarios se almacenan utilizando configuraciones de compuertas que forman
biestables (flip-flops). Una RAM estática retendrá sus datos en tanto se mantenga alimentada.

En general, una celda de memoria RAM dinámica es más simple que una estática y en consecuencia
más pequeña. Por tanto, las DRAM son más densas (celdas más pequeñas => más celdas por unidad
de superficie) y más económicas que las correspondientes SRAM. Por otra parte, una DRAM
requiere de circuitería para realizar el refresco (Mutlu, n.d.). En memorias grandes, el coste fijo de la
circuitería de refresco se ve más que compensado por el menor coste de las celdas DRAM. Así pues,
las DRAM tienden a ser las preferidas para memorias grandes (Stallings, 2005).

EN SÍNTESIS...
Las dos formas básicas de memorias semiconductoras de acceso aleatorio son la RAM dinámica
(DRAM) y la RAM estática (SRAM). La SRAM es más rápida, más costosa y menos densa que la
DRAM, y se usa para memorias cachés.

Para compensar la velocidad relativamente baja de la DRAM se han introducido diversas


variantes con organizaciones DRAM avanzadas. Las dos más usuales son la DRAM síncrona y
la DRAM RamBus. Ambas implican el uso del reloj del sistema para facilitar la trasferencia de
bloques de datos.

POLITÉCNICO GRANCOLOMBIANO 8
7. Unidad de control
La ejecución de una instrucción implica la ejecución de una secuencia de pasos más pequeños,
normalmente llamados ciclos o etapas. Por ejemplo, una ejecución puede constar de ciclos de
captación, disposición de operandos, ejecución y guardado. Además, cada ciclo se compone de una
serie de operaciones más elementales, llamadas microoperaciones. Una única microoperación por
lo general implica una transferencia de datos entre registros, una transferencia entre un registro y un
bus externo, o una operación sencilla de la ALU.

La unidad de control de un procesador realiza dos tareas, por una parte, hace que el procesador
ejecute las microoperaciones en la secuencia correcta, determinada por el programa que se está
ejecutando y por otra parte, genera las señales de control que viajan por el bus de control y que
provocan la ejecución de cada microoperación.

Las señales de control generadas por la unidad de control causan la apertura y el cierre de ciertas
compuertas lógicas, lo que da como resultado una transferencia de datos hacia o desde los registros, y
una operación de la ALU.

Existen diferentes técnicas para construir la unidad de control, la mayoría de ellas se pueden clasificar
en dos categorías:

• Implementación cableada o alambrada.

• Implementación microprogramada (Stallings, 2005).

Lo más habitual es que se diseñen máquinas de estado para modelar cada uno de los ciclos y
microoperaciones que debe realizar el microprocesador, tal y como se hacía en el diseño de circuitos
lógicos secuenciales, sin embargo, y según la complejidad del ISA que va ejecutar el microprocesador,
se puede diseñar como un conjunto de circuitos combinacionales.

Se ha visto que el funcionamiento de un computador, cuando ejecuta un programa, consiste en una


secuencia de ciclos de instrucción, con una instrucción de máquina por ciclo. Se debe recordar que
esta secuencia de ciclos de instrucción no es necesariamente la misma que la “secuencia escrita”
de instrucciones que constituyen un programa, debido a la existencia de instrucciones de salto. A
lo que se refiere esto es a la “secuencia temporal” de ejecución de instrucciones. Además, el ciclo
de instrucción puede considerarse compuesto por varias unidades más pequeñas. Una subdivisión
práctica es:

POLITÉCNICO GRANCOLOMBIANO 9
• Captación o fetch

• Ciclo indirecto o de disposición de operandos

• Ejecución

• Interrupción o guardado de resultados

A pesar del desglose realizado anteriormente, para diseñar una unidad de control se requiere aún
más detalle de cada proceso. En realidad, cada uno de los ciclos más pequeños implica una serie de
pasos, cada uno de los cuales involucra ciertos registros del procesador; estos pasos se denominan
microoperaciones, pues son pasos muy sencillos que hacen muy poco (por ejemplo habilitar un registro).

SABÍA QUE...
La ejecución de un programa consiste en la ejecución secuencial de instrucciones. Cada instrucción
se ejecuta durante un ciclo de instrucción compuesto por subciclos más cortos, llamados etapas.
La ejecución de cada etapa incluye una o más operaciones breves, es decir, una o más micro
operaciones muy sencillas y específicas.

Hasta este punto se ha hablado de los elementos que componen el procesador (ALU, registros,
buses) y las micro operaciones que se llevan a cabo. Para que la unidad de control realice su función,
debe tener entradas que le permitan determinar el estado del sistema y las salidas que le permitan
controlar el comportamiento del mismo. Estas son las especificaciones externas de la unidad de
control. Internamente, la unidad de control ha de tener la lógica necesaria para realizar sus funciones
de secuenciamiento y ejecución, que se diseñarán de acuerdo a la técnica que se utilice para su
construcción.

Así, la unidad de control requiere de una señal de reloj encargada de mantener la sincronía durante
cada uno de los ciclos de ejecución, conexión la memoria de programa para acceder al código de la
instrucción, conexión a los registros para direccionarlos, conexión a la ALU para definir qué operación
ejecuta y señales de control del bus de control que incluyen señales de reconocimiento y de
interrupción. A partir de las anteriores entradas, la unidad de control producirá las siguientes salidas:
señales de control internas al procesador que sirven para transferir datos de un registro a otro, para
activar caminos o buses de datos y para activar funciones específicas de la ALU; y señales de control
hacia el bus de control que contienen las señales de control de la memoria y las señales de control a
los modos de entrada y salida (I/O).

POLITÉCNICO GRANCOLOMBIANO 10
Referencias
Hennessy, J., & Patterson, D. (2000). Estructura y diseño de computadores. Stanford: Reverté S.A

Mano, M. M. (1994). Arquitectura de computadoras. Ciudad de México: Pearson.

Mutlu, O., & Kim, y. (n.d.) Computer Architecture Lecture 25: Main Memory. Recuperado de:
https://www.ece.cmu.edu/~ece740/f11/lib/exe/fetch.php?media=wiki:lectures:onur-740-fall11-
lecture25-mainmemory.pdf, Julio 2017.

Stallings, W. (2005). Organización y arquitectura de computadores. Madrid: Pearson Educación.

POLITÉCNICO GRANCOLOMBIANO 11
INFORMACIÓN TÉCNICA

Módulo: Arquitectura del Computador


Unidad 3: Microarquitectura, sistemas de memoria
jerárquicos y Sistemas de memoria jerárquicos.
Escenario 5: Microarquitectura del computador

Autor: Laura Juliana Cortés Rico

Asesor Pedagógico: Edwin Alcides Mojica Quintero


Diseñador Gráfico: Carlos Montoya
Asistente: Ginna Quiroga

Este material pertenece al Politécnico Grancolombiano. Por


ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO 12

Вам также может понравиться