You are on page 1of 18

Unidad I: Estructura Lgica y Funcional de una Computadora Digital La computadora es sola una herramienta, pero puede hacer cosas

mgicas. Hoy en da, computadoras calculan millones de nmeros por segundo, predice el tiempo, y simulan bombas nucleares. Adems, computadoras son casi humanasen su habilidad de hablar, ver, pintar, cantar, y decidir. Cmo puede una caja de plstico, metal, y silicona crear tanta magia? Dentro de esta caja, podemos ver slo un revoltijo de placas, chips, alambre, cables, y ms cajitas. Cuando la computadora est funcionando, no podemos ver nada moviendo adentro excepto un ventilador o un disco girando. Algo que produje tantas maravillas en el mundo moderno tiene que hacer algo interesante adentro. No necesitamos buscar varillas de brujas opociones secretas para explicar el funcionamiento de la computadora. Aunque no podemos ver lo que est pasando adentro, la computadora no es inexplicable ni difcil de entender. Aunque produje maravillas complicadas, la computadora es muy sencilla cuando llega al fondo. Es sola una herramienta construida de partes lgicas. Para entender la computadora, hay que entender cada componente y su papel en el conjunto de la computadora. Cuando estamos frente a una computadora y ejecutamos la calculadora para realizar la suma de 2+2, el teclado enva impulsos elctricos hacia el microprocesador, a travs de la tarjeta madre. Como todos sabemos, la computadora digital solo comprende dos dgitos: 0 y 1. Para que la operacin deseada se ejecute, debe realizarse una conversin o traduccin de los nmeros digitados a un lenguaje comprensible para la mquina. Una vez hecha esa traduccin , se realiza la operacin y posteriormente se hace una conversin a la inversa para poder comprender el resultado de la operacin. En esta asignatura estudiaremos cmo est construida una computadora y de qu manera se realiza el procesamiento de los datos tan rpida y eficientemente. Volviendo a nuestro ejemplo, la realizacin de la suma se encuentra programada. De qu forma se ejecuta? La computadora explora algunas instrucciones y datos (programa) y de acuerdo a esto (ejecuta). Su funcin es flexible y depende del programa almacenado en memoria. De la diversidad de computadores que existe se distinguen algunos bloques funcionales tpicos que permiten efectuar distintas operaciones no slo matemticas. Se estudiaran algunos de estos bloques para entender como se construye una estructura flexible como una computadora.

Bloques Funcionales

En la siguiente figura se muestra una estructura tpica de un computador clsico del tipo V. Neumann. El concepto de computador de programa almacenado se establece con el proyecto EDVAC (ElectronicDiscrete Variable AutomaticComputer), 1945 (John Von Neumann, J. PresperEcker, John Mauchly

unidad central de proceso


Input un idad de co ntrol

progr am a

memoria

O utput

u nidad aritmetico logica

datos

INP UT

M EM ORIA

OUTP UT

ALU

CONTROL

Elavance tecnolgico, particularmente el desarrollo de tecnologa de compuertas con control de impedancia, 3er. estado, ha modificado la estructura centralizada por un esquema mas distribuido, como se muestra en la siguiente imagen:

Todas las computadoras operan de la misma forma. La diferencia ha sido la incorporacin de buses, en las arquitecturas actuales, las que permiten que cada bloque funcional trabaje independiente.o.

Unidades de Entrada y Salida

Buses
BLOQUES FUNCIONALES

Unidad de Memoria

Unidad de Control

Unidad Aritmtica Lgica (ALU)

Estos elementos se articulan de acuerdo a las caractersticas de los procesadores. Se presenta un diagrama de bloques de una estructura genrica de un procesador en que aparecen representados los distintos elementos que lo constituyen. Est dividido en una seccin de datos y una de control. La estructura de los buses se considera que es de tipo multiplexado entre memoria e I/O.

seccion datos bus de direccion registros de direccion contador de programa

ALU registros generales

acumulador

bus de datos

status registro de instruccion logica de control

control

bus de control

seccion control

Seccin de Datos

Registros de Direccin Contador de Programa ALU Registros Varios Decodifica instrucciones Sincroniza elementos del procesador

Seccin de Control

Datos u operandos: Informacin que ser operada por el procesador y que puede tener una representacin numrica, lgica o alfanumrica (string).

Direcciones de Memoria: O en dispositivos I/O en que se almacenan elementos de informacin. Ubicaciones en memoria

Instrucciones: Secuencias de bit que son decodificadas por el procesador. Estn almacenadas en la memoria RAM o ROM y son extradas en forma secuencial y llevadas al registro de instruccin del procesador, de acuerdo al flujo del programa.

DATOS QUE MANIPULA UN PROCESADOR

Unidad aritmtica lgica Es en donde se realizan las operaciones aritmticas y lgicas, para ello se apoya usando el registro acumulador, los registros generales y tambin un registro flag. Los registros flag sirven para indicar el estado del procesador despus de realizar una operacin declculo. Los registros almacenan las caractersticas del resultado arrojado por una instruccin.Dependiendo de los fabricantes los flags pueden ser muy diversos pero hay algunos que en general se encuentran en casi todos los procesadores: y y y y y Flag de signo: indica si el resultado de la ltima operacin fue positiva o negativa. Flag de cero: indica si el resultado de la ltima operacin fue cero o distinto de cero. Flag de overflow: indica si el resultado fue mayor que la capacidad de representacin del acumulador Flag de underflow: cuando el resultado es menor a la mnima capacidad de representacin del acumulador. Etc.

Operaciones aritmticas y lgicas Las operaciones aritmticas y lgicas se realizan siempre sobre algn registro y tienen como pivote el registro acumulador. En otras palabras, el acumulador siempre est presente en una operacin aritmtica. Las operaciones aritmticas pueden ser: y y y y Sobre el acumulador, solamente Entre el acumulador y algn registro Entre el acumulador y una direccin de memoria Entre el acumulador y un dato inmediato.

El resultado de las operaciones es almacenado en el acumulador. Algunas operaciones aritmticas lgicas tpicas: y y y y y y y Sumas Restas Complementacin Desplazamiento a la izquierda (multiplicado por 2) Desplazamiento a la derecha (dividido por 2) Incrementar o decrementar en 1 el acumulador OR, AND, OR-EX, etc., entre un par de registros.

Las operaciones de multiplicacin y divisin no son efectuadas por la alu y se implementan en software que comandan la ALU o hardware, especial, que realiza estas funciones. Registros de trabajo Se usan para almacenar datos empleados en la ejecucin de las instrucciones, es muy importante su velocidad de respuesta. Unidad de control La unidad de control coordina los distintos elementos que intervienen en la ejecucin de una instruccin. Esta coordinacin se realiza a partir de un mecanismo de relojera (reloj del sistema), con el que se sincronizan y secuencian los tiempos y momentos en que deben intervenir en la ejecucin. Un ciclo de reloj es la unidad de tiempo para la ejecucin de las operaciones dentro del procesador. Las operaciones se realizan dentro del ciclo de reloj o en mltiplos, enteros, de ciclos de reloj.Cada ciclo de reloj esta dividido en diferentes tiempos, o fases, los cuales indican el momento en que se efectan las micro-operaciones, dentro de cada ciclo. Una micro operacin corresponde a acciones como: desplazamiento de un registro, transferencia de un registro a un bus, complementar un registro, etc.

La unidad de control comanda el registro que contiene la direccin de la instruccin que se esta ejecutando o de la prxima instruccin a ejecutar, esto depende del estado de avance en el tiempo de ejecucin de la instruccin. El registro de direccin de instruccin y la memoria stack estn relacionados ya que esta contiene las direcciones de retorno de las rutinas del programa.El registro de direcciones requiere de un procesamiento aritmtico de direcciones de acuerdo al largo, en bytes, de la instruccin en ejecucin. La unidad de control dispone del registro de instruccin que almacena la instruccin que se esta efectuando, es decir una vez finalizado el fetch. La instruccin esta compuesta de dos partes: y y El cdigo de operacin el llamado opcode, con el cual se alimenta al decodificador de instruccin Una direccin que se puede almacenar en algn registro de direcciones

La unidad de control contiene toda la circuitera necesaria para efectuar las microoperaciones ordenadas de acuerdo a la naturaleza de la instruccin a ejecutar. Unidad de memoria Corresponde a un conjunto de registros direccionables a travs del bus de direcciones.Cada registro de memoria esta constituido por un determinado numero de unidades bsicas, bit, que constituyen la celda de memoria. El tamao de la celda es constante para un procesador determinado.Los tamaos tpicos son 4, 8, 16, 32 y mas bits por celda. La memoria tiene dos usos principales: y Almacenar programas y Almacenar datos o resultados. El almacenamiento de programas esta asociado a la naturaleza de los mismos. Si son de uso permanente se almacenan en memoria ROM (readonlymemory), caso de los programas BIOS (basic input output system).Si son de uso espordico y afectos a cambios se almacenan RAM (ramdomaccessmemory) caso de los programas de aplicacin. Las memorias del tipo ROM corresponden a tecnologa de memorias, electrnicas, de estado solida no voltil, esto significa que no requieren de energa para mantener los valores que almacenan. Las memorias RAM necesitan energa para mantener la informacin almacenada, se reconocen dos grandes familias: y y Las SRAM o ram estticas, rpidas, caras, de alto consumo tiles como memorias cache L2 Las DRAM o ram dinmicas, lentas, baratas, de bajo consumo se usan como memoria principal

Operacin de la memoria La forma de trabajo de un ciclo de memoria con el envi de una direccin por el BUS de DIRECCION, AB (address bus), dicha direccin se almacena en un registro de direcciones de memoria, MAR (memoryaddressregister)
M AR

U N ID A D D E M E M O R IA

MD R

La operacin de memoria puede ser de lectura o escritura. Lectura: el contenido de la celda direccionada por el MAR se transfiere a un registro de datos de memoria MDR (memory data register) el que transfiere su contenido al bus de datos DB (data bus), de all al registro del procesador que corresponda. Escritura: una vez seleccionado el MAR, se transfiere el contenido del DB al MDR, desde donde se lleva a la celda seleccionada, completando el proceso de escritura. Papel del bus de control: a travs de este bus, la unidad de control activa el MAR el MDR y los dems registros involucrados en los procesos de lectura-escritura. Sincroniza el momento en que se activan AB y DB, esto corresponde a un conjunto de microoperaciones necesarias para producir una lectura o escritura en memoria. Veamos la siguiente figura:
direccion, k-bits

decodificador k/1

celda h-bit celda h-bit

direccion 0

MAR

2 celdas direccionables

celda h-bit read MDR

k-1

write

dato h-bits

Unidad entrada y salida Dado que la CPU trabaja a velocidades mucho mayor que los equipos perifricos (nanosegundos. v/s milisegundos) se requiere una unidad que se encargue de organizar cual de los perifricos conectados ser habilitado para intercambiar informacin con el procesador. La unidad de entrada/salida a travs del selector de puertas direcciona cual de los equipos debe conectarse, la seal de control establece la modalidad de comunicacin I/O, la informacin se transfiere al I/O data. Existen diversas modalidades de organizacin para transferir informacin: y y y y Tiempo: sincrnico o asincrnico Datos: secuenciales, paralelos Conexin directa al DB, se elimina el I/O data Conexin directa a memoria, DMA (Data Memory Access), permite conexin entre procesadores y entre unidades controladoras rpidas, interfaces de discos, etc.

Compuertas o puertas En un circuito digital solamente puede tener lgicos 0 y 1 Dichos valores son representados generalmente por voltajes 0.5-3.5 volts.A estos pequeos dispositivos integrados se les llama compuertas. Estas compuertas conforman el hardware bsico de toda computadora digital. Las compuertas no son producidas individualmente, pero s se empaquetan en unidades son llamados circuitos integrados o chips (pastilla). Un circuito integrado es una pieza cuadrada o rectangular de silicn (paquetes de compuertas) con funcionalidad especfica. SSI MSI LSI VLSI Small Scale Integrated Medium Scale Integrated Large Scale Integrated Very Large Scale Integrated

Circuitos Combinacionales: Son circuitos con mltiples entradas y mltiples salida en la cual las salidas son nicamente determinadas por las entradas actuales. Multiplexor: Es un circuito integrado con 2 palabras de n-bits de datos de entrada y una palabra de nbits de dato de salida Decodificador: Es un circuito integrado que toma una palabra de n-bit como entrada y usa este para seleccionar exactamente uno de las 2 lneas de salidas. Comparador: Es un circuito integrado que toma dos palabras de n-bits de entrada y produce una lnea de salida que sita a 1 si ellas son iguales o en caso contrario.

Circuitos Secuenciales: Son circuitos integrado de una palabra de n-bits entradas y una palabra de n-bits de salidas, la salida no depende de la palabra entrada solamente, sino tambin de la palabra almacenados (estos circuitos son propios para representar informacin temporal memoria-registros)

Existe alguna aplicacin prctica de todos estos circuitos?

Sumador Completo: Bien, suponiendo que nos encontramos trabajando en Excel y deseamos hacer una suma de todos los valores de una columna o fila. Qu hacemos? Simplemente, ejecutamos la funcin de autosuma. Para uno como usuario es muy simple. Pero la computadora, cmo ejecuta esa funcin? Cuando se desean sumar dos bits que forman parte de un nmero binario, es necesario sumara ambos el acarreo procedente de la suma de los bits de peso inmediatamente inferior. La tabla deverdad para este sumador (Sumador Completo) se muestra en la tabla que sigue

CIN representa el acarreo de la etapa anterior y COUT el acarreo generado mediante la suma de losbits X e Y y el acarreo CIN. La figura muestra la implementacin del sumador completo.

Procesadores

El procesador es el "cerebro" del ordenador, el motor, el centro principal de trabajo de esta maravillosa mquina. Es el procesador quien tiene la capacidad de llevar nuestras instrucciones (nuestros programas) al ordenador, es la parte que sabe sumar, restar y realizar sencillas operaciones lgicas.

En las mquinas grandes el procesador suele llamarse a veces Unidad Central de Procesos (CPU). En un ordenador pequeo o microordenador este se llama a menudo Microprocesador. Microprocesador, circuito electrnico que acta como unidad central de proceso de una computadora, proporcionando el control de las operaciones de clculo. Estos tambin se utilizan en otros sistemas informticos avanzados, como impresoras, automviles o aviones. El microprocesador es un tipo de circuito sumamente integrado. Los circuitos integrados, tambin conocidos como microchips o chips, son circuitos electrnicos complejos formados por componentes extremadamente pequeos en una nica pieza plana de poco espesor de un material conocido como semiconductor. Los microprocesadores modernos incorporan hasta 10 millones de transistores (que actan como amplificadores electrnicos, osciladores o, ms a menudo, como conmutadores), adems de otros componentes como resistencias, diodos, condensadores y conexiones, todo ello en una superficie comparable a la de una caja de fsforos.Veamos en la figura cmo cules son las partes de un procesador:

Unidad de Control Unidad Aritmtica y Lgica (ALU) Registros ...... ........


Dispositivos de Entrada/Salida.

Memoria Principal

Discos

Impresoras

Unidad de control: Se encarga de regular las operaciones de la totalidad del sistema informtico, su decodificador de instrucciones lee las configuraciones de datos en un registro designado y las convierte en una actividad, como podra ser sumar o comparar, su unidad interruptora indica en qu orden utilizar la CPU las operaciones individuales y regula la cantidad de tiempo de CPU que podr consumir cada operacin.

Registros: Memorias pequeas de alta velocidad utilizadas para almacenar resultados intermedios y cierta informacin de control. Entre los ms importantes est el contador de programas (CP), que indica la localizacin de la prxima instruccin a ejecutar y el registro de instrucciones que contiene la instruccin que se est ejecutando. La mayora de las computadoras tienen otros registros, algunos de los cuales son accesibles a los programadores de los niveles 2 y 3.

Partes de un Micropro cesador

ALU: Realiza operaciones aritmticas y lgicas, como la suma o la operacin AND, necesarias para llevar a cabo las instrucciones.

Ejecucin de las instrucciones La CPU ejecuta una serie de pequeos pasos (denominada ciclo extrae_decodifica_ejecuta) para llevar a cabo la ejecucin de instrucciones de mquina. Las acciones son las siguientes: 1. Extrae de la memoria la siguiente instruccin y la lleva al registro de instrucciones. 2. Cambia el CP de modo que seale la siguiente instruccin. 3. Determina el tipo de instruccin que acaba de extraer. 4. Verifica si la instruccin requiere datos de la memoria y, si es as, determina donde estn situados. 5. Extrae los datos, si los hay, y los carga en los registros internos de la CPU. 6. Ejecuta la instruccin. 7. Almacena los resultados en el lugar apropiado. 8. Va al paso 1 para empezar la ejecucin de la siguiente instruccin.

El hecho de que sea posible escribir un programa que imite el funcionamiento de la CPU muestra que no es necesario que un programa sea escrito por la CPU fsica, es decir, una caja llena de elementos electrnicos, sino que lo puede realizar tambin otro programa que extraiga, examine y ejecute sus instrucciones. Un programa que extraiga, examine y ejecute instrucciones de otro programa se llama intrprete. Dado que un intrprete divide en pasos pequeos las instrucciones que ejecuta la mquina en que funciona puede ser mucho ms simple y, por tanto, menos cara de lo que costara un procesador

de hardware para la mquina. Por razones econmicas, entre otras, los programas de las computadoras modernas a nivel de mquina convencional, son ejecutados por un intrprete que corre en una mquina mucho ms primitiva, de nivel 1 y el que se llama nivel de microprogramacin. El conjunto de todas las instrucciones que tiene a su disposicin un programador en un nivel se llama conjunto de instrucciones de ese nivel. El conjunto de instrucciones vara de un nivel a otro y de una mquina a otra. Un conjunto de instrucciones grande no es necesariamente mejor que uno pequeo. De hecho indica lo contrario, un conjunto de instrucciones grande indica a menudo que no son generales. A la mquina con conjunto de instrucciones reducido se le llama RISC, este tipo de mquina no utiliza microprogramacin y son muy rpidas. Organizacin de la CPU La organizacin de una parte del diseo clsico de la CPU de la mquina Von Neumann se muestra en la siguiente figura. R

A+B A B

E G I S T R O S

B Entrada de la ALU

Registro de

ALU

A + B

Registro de Salida de la ALU

Ejecucin de instrucciones en paralelo Una meta de los diseadores de computadoras es tratar de hacer estas ms rpidas, esto se lograba haciendo ms veloz el hardware, sin embargo empiezan a aparecer diversos lmites fsicos, no obstante es posible lograrlo de otra manera: en lugar de un solo CPU de alta velocidad, se puede construir una mquina con varios ALU ms lentas (y baratas) o hasta CPU completas, para obtener el mismo poder de cmputo a un costo ms bajo.

Las mquinas paralelas segn Flynn, 1972, se pueden dividir en tres categoras, basadas en el nmero de instrucciones y de datos que pueden procesar: 1. SISD: Corriente de instrucciones sencillas, corriente de datos sencillos. 2. SIMD: Corriente de instrucciones sencillas, corriente de datos mltiple. 3. MIMD: Corriente de instrucciones mltiple, corriente de datos mltiple. La mquina tradicional Von Neumann corresponde al tipo SISD ya que tiene una corriente sencilla de instrucciones (programas), ejecutado por un CPU y con una memoria que contiene sus datos. La primera instruccin se extrae de la memoria y se ejecuta; a continuacin se extrae la segunda y se lleva a cabo, y as sucesivamente. No obstante, an en este modelo secuencial se puede lograr cierto paralelismo extrayendo e iniciando la siguiente instruccin antes de terminar la ejecucin de aquella en curso. Por ejemplo la CDC 6600 y algunas de sus sucesoras tienen unidades funcionales mltiples (ALU especializadas), cada una de las cuales puede realizar una operacin sencilla a alta velocidad, por ejemplo en la siguiente figura se tienen 5 unidades funcionales, dos de ellas para la suma y las tres restantes para la resta, multiplicacin y divisin. R E G I S T R O S

La idea es que la unidad de control extrae una instruccin y la dirige a una de las unidades funcionales para su ejecucin; mientras tanto; la unidad de control extrae la siguiente instruccin y la enva a otra unidad funcional. Este proceso contina hasta que no se pueda avanzar ms porque todas las unidades estn ocupadas o porque un operando que se necesita todava se est procesando. Una variante de esta idea es la de separar en partes la ejecucin de cada instruccin, como el armado de un auto en una lnea de ensamblaje. En la figura se observa una CPU formada por 5 unidades de procesamiento, P1 a P5.

P1 Unidad de Extraccin de Instrucciones

P2 Analizad. de Instrucciones

P3 Unidad de Clculo de Direcciones

P4

P5 Unidad de Extraccin de Campos Unidad de Ejecucin de Instrucciones

En cada uno de los intervalos subsecuentes, P1 extrae una nueva instruccin; y las anteriores pasan a la siguiente unidad, a lo largo de la trayectoria

Ejemplo: P1 P2 P3 P4 P5 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 7 6 5 4 3 8 7 6 5 4 9 8 7 6 5 Estado de cada unidad de proceso en funcin del tiempo.

Si cada paso (intervalo de tiempo) dura n-nanosegundos, se requieren 5n-nanosegundos para ejecutar una instruccin. Sin embargo, cada n-nanosegundos, P5 termina de ejecutar una instruccin, lo que incrementa la velocidad en un factor de 5. Ntese que an cuando se emplea cierto paralelismo interno, el procesamiento entubado sigue siendo del tipo SISD, ya que solo hay un programa y un conjunto de datos. En contraste, las mquinas del tipo SIMD, operan en paralelo con mltiples conjuntos de datos, ejemplo de aplicacin, el pronstico del tiempo, donde hay que calcular la temperatura diaria promedio en diversos sitios, se deben hacer los mismos clculos con datos diferentes. La mquina vectorial tiene un vector con N entradas en la ALU, y la ALU es en s misma una unidad vectorial capaz de realizar operaciones como la suma de vectores. Algunas supercomputadoras tienen una arquitectura como esta:

Vectores de Entrada

ALU Vectorial

A + B Vector de Salida Otra alternativa al tipo SIMD, es el procesador de arreglos diseado en la Universidad de Illinois para la computadora ILLIAC IV. Unidad de Control Transmisin de Instrucciones.

Procesador

yyyyy yyyyy

Malla Procesador/Memoria de 8 x 8.

Memoria yyyyy yyyyy

Cada elemento Procesador/Memoria recibe las instrucciones de la unidad de control que son ejecutadas por todos los procesadores, cada uno con los datos de su propia memoria (cargados en la fase de inicio). Se adapta bien al clculo de matrices. La tercera categora es MIMD, en la cual diferentes CPU manejan distintos programas, compartiendo a veces una memoria comn. Por ejemplo, en un sistema de reservaciones de una lnea area, varias reservaciones simultneas no se procesan en paralelo instruccin por instruccin, sino que se tienen mltiples flujos de instrucciones y de datos.

En la siguiente figura se muestra un multiprocesador, o sea, una mquina MIMD con memoria compartida, a la cual tiene acceso cada procesador a travs del bus. CPU

CPU

CPU

Memoria

Bus No se necesita mucha imaginacin para darse cuenta que habr dificultades, si un gran nmero de procesadores pretende constantemente tener acceso a la memoria por medio de un mismo bus, por eso se disea otro esquema en la que cada uno de los procesadores tiene cierta memoria local propia que no es accesible al resto. Esta puede ser usada para almacenar el cdigo del programa, as como aquellos datos que no necesitan compartirse. El acceso a esta memoria privada no utiliza el bus principal, con lo que el trfico se reduce en gran medida. Memorias Locales.

CPU

CPU

CPU

CPU

Memoria Compartid a

Otros esquemas de multiprocesadores utilizan ms de un bus para reducir la carga, mientras otros usan la llamada memoria cach, una tcnica para mantener en cada procesador las palabras de memoria usadas con mayor frecuencia.

You might also like