Você está na página 1de 88

Contenido

Pg.

Introduccin Caractersticas de la asignatura Objetivo General de la asignatura Temario oficial Temario detallado Esbozo de la asignatura I Introduccin a la arquitectura de computadoras II La unidad aritmtica y lgica III La memoria IV La unidad central de procesamiento V Entrada-Salida
BIBLIOGRAFA CALENDARIO DE AVANCE PROGRAMTICO

3 3 3 3 4 6

18

34 53 63 88 89

Introduccin
El principal propsito de esta gua es orientar a los estudiantes que cursan sus estudios en el sistema mixto, que se caracteriza, entre otras cosas, porque ellos son los principales responsables de su propio aprendizaje.

Como es este sistema cada alumno debe estudiar por su cuenta, en los tiempos y lugares que ms le convengan, se vuelve necesaria una gua que le ayude a lograr los objetivos de aprendizaje y que le facilite el acceso a los materiales didcticos (libros, publicaciones, audiovisuales, etctera) que requiere. Por estas razones, se han estructurado estas guas bsicamente en cuatro grandes partes:

1. Informacin general de la asignatura 2. Panorama de la asignatura 3. Desarrollo de cada una de las unidades 4. Bibliografa

Caractersticas de la asignatura Arquitectura de Computadoras


Licenciatura: Informtica Administrativa Semestre: 7 rea: Informtica Administrativa Requisitos: Matemticas Discretas, Sistemas Digitales.

Objetivo general de la asignatura


El Alumno aprender la estructura y desempeo de los diferentes mdulos funcionales de la computadora y como interactan para atender las necesidades de procesamiento del usuario. La organizacin de las computadoras y la forma de conexin de los componentes electrnicos para formar un sistema computacional.

Temario oficial (18 asesorias)


I Transferencia de registros y micro-operaciones (3 asesoras) II Organizacin y diseo bsico de computadoras (3 asesoras) III Unidad central de procesamiento (4 asesoras) IV Control Microprogramado (6 asesora) V Organizacin de Entrada-Salida (2 asesora)

Temario Detallado I Introduccin a la arquitectura de computadoras


1.1 Como surgieron las computadoras 1.2 La mquina como soporte de una aplicacin 1.3 Funcionamiento de las computadoras actuales 1.4 Objetivos de la computadora 1.5 El concepto de arquitectura de computadoras
7

7 8 10 11 15

II La unidad aritmtica y lgica


2.1 La Unidad Aritmtica y Lgica 2.2 Construccin del ALU 2.3 Sumador Completo 2.4 Resta 2.5 Multiplicacin 2.6 Divisin

18 18 19 22 23 25 29

III La Memoria
3.1 Memoria de Acceso Aleatorio 3.2 Memoria Dinmica 3.3 La Memoria de Slo Lectura 3.4 Memorias Programables y Borrables 3.5 Organizacin de la Memoria

34 34 34 36 38 42

IV La unidad de procesamiento central


4.1 Datos binarios puros 4.2 Cdigo de Instrucciones 4.3 Registros 4.4 Forma de Usar los Registros 4.5 Banderas de Estado 4.6 Ejecucin de Instrucciones 4.7 La Unidad de Control 4.8 Ejemplo de Unidad de Control

53 53 56 57 59 60

V Entrada-Salida
5.1 Entrada/Salida Programada 5.2 Entrada/Salida por Interrupcin 5.3 Respuesta de la UPC a una Interrupcin

63 63 65 67

Esbozo de la asignatura
La materia de Arquitectura de Computadoras, tiene como objetivo el introducirnos por la estructura y desempeo de los diferentes mdulos funcionales de la computadora y como interactan para atender las necesidades de procesamiento del usuario. La organizacin de las computadoras estudia la manera en que se conectan los componentes de la circuitera para formar un sistema computacional. El diseo de computadoras analiza el desarrollo de la circuitera de computadora, tomando en consideracin un cierto conjunto de especificaciones. Este curso proporciona el conocimiento bsico necesario para aprender la operacin de la circuitera de computadoras digitales. El primer tema introduce un Lenguaje de Transferencia de Registros y muestra cmo se usa para expresar microoperaciones en forma simblica. Se definen smbolos para microoperaciones aritmticas, lgicas y de corrimiento. Se desarrolla una unidad aritmtica lgica y de corrimiento compuesta para demostrar el diseo de la circuitera de las microoperaciones ms comunes. La segunda unidad presenta la organizacin y el diseo de una computadora digital bsica. Aunque la computadora es sencilla comparada con las computadoras comerciales, no obstante, abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispositivo de propsito general con programas almacenados. Se usa un lenguaje de transferencia de registros para describir la operacin interna de la computadora y para especificar los requisitos para su diseo. Unidad 3, trata acerca de la unidad de procesamiento central (CPU). Explica la operacin de una pila de memoria y se muestran algunas de sus aplicaciones. Hace una relacin de las instrucciones ms comunes que se encuentran en las computadoras, junto con una explicacin de su funcin. Tambin presenta la computadora con conjunto reducido de instrucciones (RISC) y analiza sus caractersticas y ventajas. Durante la cuarta unidad se introduce el concepto de microprogramacin. Adems, desarrolla una unidad especfica de control microprogramado, para mostrar como se escribe un microcdigo para un conjunto de instrucciones tpico. Realiza en detalle el diseo de la unidad, incluyendo la circuitera para el secuenciador de microprograma. En el transcurso de la unidad cinco se analizan las tcnicas que usan las computadoras para comunicarse con dispositivos de entrada y salida. Se presentan unidades de interface para mostrar cmo interactan el procesador con los perifricos externos. Se explica el procedimiento para transferencia asncrona de datos seriales paralelos. Analiza los modos de transferencia: E/S programada, transferencia iniciada por interrupcin, acceso directo a memoria y el uso de procesadores de entrada-salida.

UNIDAD 1. INTRODUCCIN A LA ARQUITECTURA DE COMPUTADORAS


Objetivo particular: Que el alumno sea capaz de dar su propia definicin de arquitectura de computadoras, reconociendo su objetivo y las personas que necesitan de ella; conocer e identificar las distintas evoluciones de la arquitectura de computadoras. Temario detallado

1.1 Como surgieron las computadoras 1.2 La mquina como soporte de una aplicacin 1.3 Funcionamiento de las computadoras actuales 1.4 Objetivos de la computadora 1.5 El concepto de arquitectura de computadoras

Presentacin de la unidad Asesoria 1 Introduccin Resulta muy conveniente y a veces necesario conocer cmo funciona todo aquello que operamos habitualmente. La razn es simple: Cuntos usuarios de la informtica se quedan abrumados por no tener los mnimos conocimientos de electrnica e informtica, que le ayudaran a salvar la situacin? Este es uno de los objetivos propuestos, y aunque la evolucin de equipos y componentes es muy amplio, se pretender dejar en claro las bases que ayuden a entender el funcionamiento y diseo de las computadoras que utilizamos hoy en da. Conocer su arquitectura permite utilizarlo con mximo rendimiento y posibilita la optimizacin de aplicaciones desarrollada en ellas. Adems de, poder seleccionar los componentes que la integran adecuadamente para las aplicaciones o necesidades de cada usuario. Es decir, no son los mismo requerimientos de procesamiento de un diseador de grficos que una secretaria de oficina; por lo que, se hace necesaria una seleccin de componentes adecuada para el obtener el mximo rendimiento de acuerdo a la aplicacin. Estos son otros objetivos propuestos a lo largo de los contenidos de esta antologa. Qu entendemos por computadora? Es una mquina programable, integrada por circuitos de microelectrnica, que procesan secuencialmente informacin digital, a gran velocidad y con notable presesin, dirigida por programas y utilizada en un gran nmero de trabajos1.

Pag 1. Arquitectura de ordenadores. E. Alcalde, F. Ormaechea, J. Portillo, F. Garca Merayo. 1991 7

1.1 Como surgieron las computadoras Las historia de las computadoras, se remontan a los esfuerzos por encontrar un mecanismo que facilitara realizar operaciones de clculos matemticos o aritmticos. En la historia de las computadoras, nos encontramos con la maquina conocida como el baco, el cual consista en una calculadora de bolitas, es originario de China y Japn. El baco realizaba las operaciones bsicas de suma, resta, multiplicacin y divisin. En la historia de las computadoras, en el siglo XVII se inventa la primera maquina aritmtica, por Pascal, el propsito de esta, era que fuese til en los clculos de sumar comercial. Fue un completo fracaso porque solo era reparada por su creador, ya que era el nico que conoca su mecanismo. Sin embargo el diseo de sumadora, sirvi para el desarrollo del resto de sumadoras manuales hasta los aos 60. Mas tarde, es creada una maquina que viene a perfeccionar la de Pascal, ya que se podan realizar operaciones con 7 u 8 dgitos, y tambin inclua multiplicaciones y divisiones. Se creador fue Leibtniz. Luego surge una maquina, que permita calcular con 6 cifras decimales, la cual se conoca como la maquina de las diferencias. No tubo xito, ya que realizaba una tarea especifica, y diversificarla significaba un rediseo total de la maquina. Su creador fue Babbage. A finales del siglo XIX, surgen las tarjetas perforadas y las primeras compaas comerciales de computadoras u ordenadores, que lanzaron al mercado sus maquinas de sumar y de contabilidad. En 1947 sali al mercado la UNIVAC, que permita entrada y salidas de datos, mediante tarjetas perforadas, y usaba cintas magnticas como memoria auxiliar. Hasta aqu se conoce el desarrollo de estas maquinas en la historia de las computadoras como primera generacin. En 1948, se crea el transistor, y aqu empieza la minituarizacin de las computadoras u ordenadores, y siendo en la historia de las computadoras la etapa conocida como segunda generacin. A partir de los aos 60, surgen en el mercado las minicomputadoras, al lograr integrar muchos transistores, aparece el primer microprocesador, conocido como chip y se entra en la historia de las computadoras en la tercera generacin. En la historia de las computadoras, en la cuarta generacin se encuentran las computadoras u ordenadores de funcionamientos muy avanzados y complejos, las cuales conocemos hoy da, y estas se encuentran en las grandes organizaciones como son Organismos de investigacin y organismos de educacin como las universidades.

1.2 La mquina como soporte de una aplicacin Un sistema digital es una interconexin de mdulos de hardware digital que realizan una tarea especfica de procesamiento de informacin. Los sistemas digitales varan en tamao y complejidad desde unos cuantos circuitos integrados hasta un complejo de computadoras digitales interconectadas e interactivas. El diseo de sistemas digitales
8

utiliza de manera invariable un enfoque modular. Los mdulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritmticos y lgica de control. Los diferentes mdulos estn interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital. Los mdulos digitales se definen mejor por los registros que contienen y las operaciones que realizan sobre los datos que almacenan. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones. Una microoperacin es una operacin bsica realizada sobre la informacin almacenada en uno o mas registros. El resultado de la operacin puede sustituir la informacin binaria anterior de un registro o puede transferirse a otro. Algunos ejemplos de microoperaciones son desplazar, contar, borrar y cargar. Algunos de los componentes digitales que se presentaron son registros que sirven para realizar microoperaciones. Por ejemplo, un contador con carga paralela puede realizar las microoperaciones de incremento y carga; un registro de desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la izquierda. La organizacin interna del hardware de una computadora digital se define mejor al especificar: 1. El conjunto de registros que contiene y sus funciones. 2. La secuencia de microoperaciones que se realizan sobre la informacin binaria almacenada en los registros. 3. El control que inicia la secuencia de microoperaciones. Es posible especificar la secuencia de microoperaciones en una computadora, al explicar cada operacin en palabras, pero este procedimiento por lo general representa una extensa explicacin descriptiva. Es ms conveniente adoptar una simbologa conveniente para describir la secuencia de transferencias entre registros y las diferentes microoperaciones aritmticas y lgicas asociadas con las transferencias. El uso de smbolos en lugar de una explicacin narrativa proporciona una manera organizada y concisa para en listar las secuencias de microoperaciones en los registros y las funciones de control que las inician. La notacin simblica que se utiliza para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencia de registros. El trmino "transferencia de registros" implica la disponibilidad de circuitos lgicos de hardware que puedan efectuar una microoperacin definida y transferir el resultado de la operacin al mismo o a otro registro. La palabra "lenguaje" se toma prestada de los programadores, quienes aplican este trmino a los lenguajes de programacin. Un lenguaje de programacin es un procedimiento para escribir smbolos con el fin de especificar cierto proceso computacional. De igual manera, un lenguaje natural, como el ingls, es un sistema para escribir smbolos y combinarlos en palabras y enunciados para la comunicacin entre personas. Un lenguaje de transferencia de registros es un sistema para expresar en forma simblica, las secuencias de microoperaciones entre los registros de un mdulo digital. Es una herramienta conveniente para describir la organizacin interna de las computadoras digitales de una manera precisa y concisa. Tambin puede usarse para facilitar el proceso de disear sistemas digitales.
9

El lenguaje de transferencia de registros que se adopta aqu se considera lo ms sencillo posible, para que no sea difcil de memorizar. En seguida definiremos los smbolos para diferentes tipos de microoperaciones y al mismo tiempo describiremos el hardware asociado con el que se pueden llevar a cabo las microoperaciones planteadas. La denominacin simblica que se presenta en este captulo se optimizar en captulos posteriores para especificar las transferencias de registros, las microoperaciones y las funciones de control que describen la organizacin interna del hardware de las computadoras digitales. Se puede aprender con facilidad otra simbologa una vez que se familiariza uno con este lenguaje, porque la mayora de las diferencias entre los lenguajes de transferencia de registros, consisten en variaciones de los detalles ms que en el propsito general.

Actividades complementarias de aprendizaje 1. Elabora un mapa conceptual del tema 2. Investiga la lnea del tiempo de la evolucin de la computadora. 3. Investiga la evolucin de los lenguajes de programacin usados en las computadoras segn la evolucin de ests. 4. Investiga el significado de un microcontrolador. 5. Investiga la arquitectura de un microcontrolador. 6. Explique por que dice que un microcontrolador es una minicomputadora monotarea. Cuestionario de autoevaluacin 1. 2. 3. 4. 5. Explique el significado de microinstrucciones. Explicar el concepto de lenguaje ensamblador. Menciona el objetivo de las microinstrucciones. Explique la diferencia entre microprocesador y microcontrolador. Realice la siguiente implementacin:

;PROYECTO Bsico 1 ;"CONTROL DE UN DISPOSITIVO DESDE DOS PUNTOS" ;Se desea controlar una lmpara, en este caso un diodo LED desde dos ;interruptores, de forma que cuando los dos interruptores estn abiertos ;el LED este apagado. A partir de esta situacin, cada vez que cambie el ;estado de un interruptor, el estado del LED bascula (si esta apagado se ;enciende y viceversa).

LIST P=16F84A RADIX HEX ;ETIQUETAS DEL PROGRAMA W F EQU 0x00 EQU 0x01

; Se emplea el PIC16F84A ; Sistema de numeracin hexadecimal

; Registro de destino W : d=0 ; Registro de destino F : d=1


10

ESTADO

EQU 0x03 ; El registro ESTADO ocupa la direccin 3 de los ; dos bancos PUERTAA EQU 0x05 ; La PUERTA A ocupa la direccin 5 del banco 0 ; y su registro de configuracin la direccin 5 del ; banco 1 PUERTAB EQU 0x06 ; La PUERTA B ocupa la direccin 6 del banco 0 ; y su registro de configuracin la direccin 6 del ; banco 1 AUX EQU 0x0C ; Registro auxiliar en el que se carga el estado de ; los interruptores ;PROGRAMA PRINCIPAL ORG 0 ; El programa comienza en la direccin 0 y goto INICIO ; salta a la direccin 5 para sobrepasar el ORG 5 ; vector de interrupcin INICIO bsf ESTADO,5 ; Seleccin del banco 1 movlw b'00000011' ; Se configura parte de la puerta A como movwf PUERTAA ; entrada movlw b'00000000' ; Se configura la puerta B como movwf PUERTAB ; salida bcf ESTADO,5 ; Seleccin del banco 0 clrf PUERTAA ; Se inicializan las dos puertas a clrf PUERTAB ; ceros clrf AUX ; Se inicializa el registro auxiliar a ceros BUCLE movf PUERTAA,W ; Se exploran los interruptores de la puerta A xorwf AUX,W ; Se comprueba si el estado de los btfsc ESTADO,2 ; interruptores ha cambiado para lo cual se ; detecta si se ha activado el bit 2 del registro ; estado (Z) goto BUCLE ; Si no ha cambiado se sigue explorando hasta ; que uno cambie LUZ btfss PUERTAB,0 ; Se comprueba si el LED est encendido para ; saber si hay que apagarlo o encenderlo goto PUESTA1 ; Se llama a la rutina Puesta1, que enciende el ; LED goto PUESTA0 ; Se llama a la rutina Puesta0, que apaga el LED PUESTA1 bsf PUERTAB,0 ; Se pone a 1 el bit 0 de la puerta B (LED) goto ACTUAL PUESTA0 bcf PUERTAB,0 ; Se pone a 0 el bit 0 de la puerta B ACTUAL movf PUERTAA,W ; Se actualiza el estado de AUX, para comprobar ; luego si los interruptores han cambiado de valor movwf AUX goto BUCLE ; Salto a bucle para empezar de nuevo END

11

Asesoria 2 1.3 Funcionamiento de las computadoras actuales Como ya se discuti anteriormente, en los ltimos aos la computacin ha tenido un desarrollo acelerado y ha contribuido en forma notable a la aparicin de nuevas tecnologas y a la organizacin de la sociedad. Este desarrollo se ha llevado a cabo en un periodo muy corto de tiempo, de manera que la mayor parte de las personas adultas hoy en da, crecieron teniendo poco o nulo contacto con las computadoras, percatndose tiempo despus de la gran importancia que stas tienen, ya que estn presentes en casi todos los aspectos de nuestras vidas. Esto ha ocasionado que todo el mundo est familiarizado con las computadoras, pero que por otro lado, sean pocas las personas que tienen conocimiento de lo que realmente son. Existe todo un mito acerca de las capacidades de las computadoras, tanto que a menudo se mencionan cosas tan impresionantes como que stas: "pueden calcular la explosin de una bomba de hidrgeno, analizar las ondas de choque y determinar la intensidad de la radiacin resultante; todo ello en relacin con las condiciones atmosfricas existentes durante la explosin", o tambin que "son capaces de predecir los resultados de una eleccin antes de que se hayan juntado todas las boletas de los votantes", o bien que "pueden determinar las probabilidades de encontrar petrleo en ciertos tipos de subsuelo", etc. Este tipo de aseveraciones reflejan la creencia, bastante generalizada, de que las computadoras son capaces de llevar a cabo cualquier tarea con tan solo "pedrselo". La validez de esta afirmacin depende del significado que se confiera a la palabra "pedir", ya que las computadoras consisten en un complicado conjunto de circuitos electrnicos, el cual es capaz nicamente de llevar a cabo operaciones aritmticas y lgicas, de la manera que ms adelante explicaremos. Corresponde al programador dar a la computadora las instrucciones precisas para llevar a cabo un clculo o seguir un procedimiento. Debido a esto ltimo, tenemos que la solucin a un problema depender de los modelos o criterios utilizados por el programador para plantearlo. Por lo que los resultados slo sern correctos en la medida en que el modelo utilizado lo sea. A continuacin diremos, en trminos generales, cules son los principios que utilizan las computadoras actuales para su funcionamiento y el tipo de operaciones que desempean. Esto, con el objeto de posteriormente hablar un poco acerca de los nuevos terrenos que la computacin ha empezado a explorar.

1.3.1 Circuitera y programas La ciencia de la computacin tiene que ver con la informacin: cmo se representa, se procesa, se guarda y se transmite. Para ello se requiere de dos tipos de elementos que se conocen como circuitera y programas. La circuitera est constituida por los elementos fsicos de la computadora y de su equipo perifrico, como son las impresoras, graficadoras, pantallas (monitores), cintas magnticas o discos duros para almacenar informacin, etctera. La circuitera del
12

procesador central es tambin conocida con el nombre de arquitectura. Por otro lado, los programas estn constituidos por las series de instrucciones que hacen posible el funcionamiento de la computadora. Estos dos aspectos de las computadoras estn estrechamente ligados, y se reflejan el uno en el otro, ya que la estructura de la computadora est diseada de manera que sta es capaz de ejecutar cierto tipo de tareas. Esto lo explicaremos a continuacin. La mayora de las computadoras procesan y almacenan todos los datos y las instrucciones para procesarlos en forma de nmeros binarios. Esto es as debido a que este sistema numeral es el ms adecuado para ellas. Lo anterior puede ser fcilmente comprendido si pensamos que para utilizar los nmeros en su forma decimal, las computadoras necesitaran 10 niveles diferentes de voltaje para poder expresar 10 dgitos. Por otro lado, los dgitos binarios 0 y 1 pueden ser representados usando circuitos electrnicos muy simples, que tan solo necesitan ser prendidos o apagados. Como consecuencia, tenemos que la nica informacin que se puede manejar de esta manera se reduce a un "s" o un "no". Esta cantidad de informacin es llamada bit, y es la unidad fundamental de todo dato. Las figuras 14 y 15 nos permiten apreciar la forma en que se representan los nmeros en las computadoras digitales. Pero las computadoras no slo "representan" nmeros, sino que los procesan de acuerdo con las instrucciones recibidas; adems transfieren informacin de una parte a otra de ellas mismas, y de una mquina a otra (vase la figura 16). Todas las instrucciones que estas mquinas deben ejecutar son resumidas en programas, los cules son, en esencia, mensajes escritos de acuerdo con algn cdigo binario. Esto es, el lenguaje de mquina tambin se expresa en trminos de bits. Aunque el lenguaje de mquina es el ms adecuado para las computadoras, no lo es as para el hombre. Si fuese necesario que nosotros utilizramos dicho lenguaje para comunicarnos con las mquinas, tendramos ms problemas de los que intentamos resolver. Para dar solucin a este problema han sido creados los lenguajes de alto nivel, los cuales consisten en una serie de instrucciones que pueden ser entendidas, y aprendidas, tanto por el hombre como por las mquinas. Dentro de la computadora, estos programas puente, comprensibles para el hombre, son traducidos al lenguaje de mquina por programas llamados compiladores.

13

Figura 14. Este diagrama nos ilustra el procedimiento de divisiones sucesivas, utilizado para cambiar un nmero de representacin decimal a su representacin binaria. El nmero 1 983 est representado por 11110111111, lo cual se obtiene al leer los residuos de las divisiones empezando por el ltimo y terminando con el primero ( o sea de abajo hacia arriba).

Figura 15. Esta figura muestra la representacin binaria de los 10 dgitos del sistema decimal. Cualquiera de estos nmeros puede ser representado mediante las diferentes combinaciones, abierto o cerrado, de cuatro interruptores.

14

Figura 16. Transmisin del nmero 4 utilizando cuatro cables, de acuerdo con la tabla de valores mostrada en la figura anterior. Se han creado muchos lenguajes de alto nivel. Algunos lenguajes son ms fciles de utilizar para el hombre que otros, o ms simples, o ms lgicos, o mejor estructurados, o ms compactos, o con caractersticas ms apropiadas para llevar a cabo cierto tipo de trabajo, etctera, pero todos sirven para el mismo fin: facilitar la comunicacin hombre-mquina. Entre los lenguajes ms comunes tenemos el FORTRAN, el BASIC, el PASCAL, el "C", etctera. Ahora bien, de qu manera se lleva a cabo el procesamiento de la informacin?, cmo puede un conjunto de interruptores llevar a cabo operaciones matemticas y procesar informacin tan compleja para as contribuir a predecir, por ejemplo, los resultados de una explosin? La respuesta a estas preguntas est en la adaptacin a las computadoras de un lgebra especial, llamada lgebra booleana, la cual fue creada a finales del siglo pasado con el objeto de hacer deducciones lgicas utilizando para ello el lenguaje de las matemticas. A continuacin daremos una breve explicacin de los principios bsicos del lgebra booleana y de su aplicacin en las computadoras.

1.3.2 lgebra booleana y circuitos lgicos En 1847, un matemtico ingls llamado Georg Boole public un ensayo acerca del anlisis matemtico de la lgica. En este documento estableci un conjunto de axiomas a partir de los cuales pueden deducirse afirmaciones lgicas ms complicadas. Lo interesante del mtodo por l introducido es la herramienta utilizada para llevar a cabo las deducciones: el lgebra. Esto es, las proposiciones son escritas en trminos algebraicos mediante el uso de smbolos que representan ideas, y se llega a las deducciones por medio de operaciones algebraicas. En otras palabras, esta lgebra nos permite inferir, a partir de un conjunto de premisas, cules son las conclusiones a las que se puede llegar de una manera lgica. Y dado que una conclusin puede ser verdadera o falsa (2 estados), esta lgebra puede representarse mediante el uso de interruptores.
15

El lgebra booleana est basada en los siguientes principios: i) cualquier proposicin nica, simple o compleja, es llamada variable y est representada por una letra del alfabeto; ii) existen ciertos smbolos que muestran las relaciones entre las proposiciones; y iii) estas relaciones pueden expresarse matemticamente. A continuacin explicaremos estos principios con algunos ejemplos: Las proposiciones A, B, C y D pueden significar respectivamente: "mayor de 60 aos", "ms de veinticinco aos de servicio", "jubilacin" y "jubilacin con salario completo". Por otro lado, las relaciones bsicas entre las proposiciones son las siguientes: "OR" (O no exclusiva), "AND" (Y) y "NO" (NO).9 Estas relaciones se ilustran a continuacin. A y B son dos afirmaciones independientes, entonces tenemos que la afirmacin conjunta "A OR B" (se denota A + B). ser verdadera si al menos una de las afirmaciones es verdadera. Esto es, la afirmacin A + B = C ser verdadera si se trata de una persona ya sea mayor de 60 aos o con 25 aos de servicio. Por otro lado, si se trata de una persona que adems de ser menor de 60 aos, tiene menos de 25 aos trabajando, entonces la afirmacin ser falsa (se trata de "OR" no exclusiva). Ahora consideremos la afirmacin conjunta "A AND B"

(se denota A B)

Para que la afirmacin A B = D sea verdadera, ser necesario que la persona cumpla con ambos requisitos para obtener la jubilacin con salario ntegro; esto es, deber ser mayor de 60 y con ms de 25 aos de trabajo. Si alguna de las afirmaciones, o ambas, son falsas, entonces la proposicin "A AND B" ser falsa. Finalmente, la afirmacin "NO A" (se denota )

ser cierta nicamente si la persona en cuestin es menor de 60 aos. Pueden hacerse combinaciones ms elaboradas de premisas, a partir de las relaciones bsicas; as como tambin es posible escribir una misma relacin de maneras diferentes. Por ejemplo: B A= A + B significa: tener a "todos los que tienen ms de 60 aos de edad o que tienen ms de 25 aos de antigedad" es lo mismo que tener a todos los que son mayores de 60 aos o que adems de ser menores de 60 aos tienen ms de 25 aos de antigedad. Ntese que aun con relaciones muy simples como sta se vuelve difcil traducirlas al lenguaje comn, y ms an, efectuar deducciones. Esto nos muestra que una de las grandes ventajas de reducir operaciones lgicas a trminos de operaciones matemticas es que, a diferencia del lenguaje comn, las matemticas no tienen ambigedades. La figura 17
16

nos muestra un resumen de las leyes del lgebra booleana, las cuales nos son tiles para simplificar expresiones. Para utilizar el lgebra booleana en la computadora, se le asigna el valor "1" a la palabra VERDADERO, y el valor 0 a FALSO, o "prendido" y "apagado", respectivamente, y se construyen circuitos electrnicos dentro de la computadora, que se comportan al igual que estas funciones lgicas. stos son los llamados circuitos lgicos (vase la figura 18). De esta manera, cuando la computadora ejecuta un programa, enva la informacin a los circuitos compatibles con el tipo de operacin que se desea efectuar. Por otro lado, las figuras 19 y 20 muestran los smbolos convencionales y las tablas de verdad para algunos circuitos simples. Por supuesto, no es necesario construir un circuito especial para cada problema que deseamos resolver, ya que cualquier problema expresable en trminos matemticos, por complicado que sea, puede realizarse por partes en las diferentes unidades encargadas de efectuar operaciones. Dentro del cerebro central de una computadora existe un gran nmero de circuitos lgicos, algunos de ellos de gran complejidad; cada uno de estos circuitos ha sido diseado para llevar a cabo cierta operacin lgica especfica, dependiendo de su arquitectura (Figura 21). Es papel del procesador central el controlar cmo y cundo deben efectuarse las operaciones, y transferir los datos e instrucciones a las unidades encargadas de llevarlas a cabo. Absorcin : A+(A+B)=A A(A+B)=A Anulamiento : A+1=1 A0=0 Distribucin : A(B+C)=(AB)+(AC) A+(BC)=(A+B)(A+C) Doble negacin : =A Dualidad : Principio til ( en realidad no se trata de una regla) : Y = A B equivale a Y = A + B equivale a Conmutacin : A+B=B+A AB=BA Complementos : A+ A =1 =0 Identidad : A+0=A A1=A Tautologa : AA=A A+A=A = = +

Asociacin : (A+B)+C=A+(B+C) (AB)C=A(BC)

17

de De Morgan : = = + Figura 17. Resumen de las leyes del lgebra booleana.

Figura 18. Circuitos que representan funciones lgicas, a) funcin AND ("Y"): a y B deben estar cerrados para que la corriente circule a travs del circuito; esto es, A B = VERDADERO nicamente si A=VERDADERO y B=VERDADERO; b) funcin OR ("O") : el circuito quedar cerrado a condicin de que la corriente circule, ya sea por A, por B o por ambas, esto es , si A= VERDADERO o B= VERDADERO. Las tablas de verdad para estos dos circuitos se incluyen en la fig. 19.

18

Figura 19. En esta figura se muestran los smbolos convencionales y tablas de verdad para los circuitos elementales NOT, AND y OR. Las tablas de verdad de un circuito estn formadas por las partes de ste ante todas las combinaciones de "FALSO" y "VERDADERO" de las funciones de entrada.

19

Figura 20. Smbolos convencionales y tablas de verdad para los circuitos compuestos NAND y NOR.

Figura 21. El primer paso para la construccin de un circuito es su diseo.


20

1.3.3 Principales componentes de una computadora Desde el punto de vista operativo, una computadora electrnica digital puede ser representada esquemticamente por tres subsistemas. stos son: la unidad de entrada y salida de datos, la unidad central de procesamiento y finalmente, lo que nos ocupa en este libro, la memoria. La unidad de entrada y salida de datos sirve como enlace entre la computadora y el exterior. Como su nombre lo indica, tiene dos funciones: la primera consiste en permitir la entrada de los programas, datos e instrucciones a la computadora, y la segunda es permitir la salida de la informacin, una vez que sta ha sido procesada, ya sea hacia el usuario de la mquina, hacia otras computadoras, o hacia algn otro dispositivo. La unidad central de procesamiento es el cerebro de la computadora y est encargada de controlar su funcionamiento integral. Esto es, lee los programas de la memoria, transfiere informacin de una parte a otra de la mquina, lleva a cabo clculos necesarios y las operaciones requeridas por el programa, y controla los dispositivos asociados con la computadora. Finalmente, las memorias son dispositivos utilizados para almacenar informacin en las computadoras, y se denomina memorizacin al proceso por medio del cual se modifica el la memoria. Esta modificacin se lleva a cabo de acuerdo con un cdigo, de manera que el nuevo estado del dispositivo representa la informacin que ha sido almacenada. MEMORIAS Una de las funciones ms importantes de las computadoras es el almacenamiento de grandes bancos de datos. Pero las memorias no sirven nicamente para este propsito. Ellas son parte esencial de las computadoras, sin la cual no sera posible el procesamiento de la informacin, ya que funcionan como gavetas en las cuales se guarda, de una manera ordenada, todo el material mientras ste no es utilizado. Las memorias pueden clasificarse con base en su funcin o conforme a sus caractersticas. De acuerdo con la primera clasificacin, se dividen en memoria principal o de trabajo y memoria secundaria o auxiliar. La memoria principal almacena temporalmente los programas que se estn "ejecutando" o estn en proceso de hacerlo, as como los datos, antes y despus de ser procesados. Esta memoria puede ser complementada con memoria secundaria o auxiliar, generalmente en forma de cinta o discos magnticos, los cuales se encuentran fsicamente fuera de la computadora. Este tipo de memoria puede guardar de manera semipermanente, y por un tiempo indefinido, toda la informacin que deseemos conservar. Por lo general se utiliza para guardar grandes cantidades de informacin. La cantidad de informacin almacenable mediante el uso de memorias auxiliares es prcticamente ilimitada, sin embargo sta se recupera con mucha lentitud en comparacin con la almacenada en la memoria principal. Por otro lado, de acuerdo con sus caractersticas, existen varios tipos de memorias, cada uno de los cuales ofrece ventajas y desventajas frente a los otros, por lo cual resultan ser ms apropiados para una u otra tarea. Generalmente en estas memorias se puede leer y escribir informacin, aunque hay memorias en las cuales la informacin
21

almacenada no puede ser alterada, esto es, nicamente puede leerse. Entre las memorias mejor conocidas, se encuentran las memorias de anillos magnticos, las memorias semiconductoras y las memorias de burbujas magnticas. Las memorias de anillos magnticos estn formadas por un arreglo de anillos de ferrita, cada uno de los cuales es magnetizable en una de dos direcciones; de manera que puede representar un bit de informacin. La figura 22 muestra este tipo de memoria. Por otro lado, las memorias semiconductoras consisten en circuitera integrada a diferentes escalas. Las memorias de muy grande escala de integracin son muy compactas, ya que un chip de silicn de medio centmetro de largo puede contener cientos de miles de circuitos microelectrnicos, cada uno de los cuales guarda un dgito binario. Algunas memorias semiconductoras son voltiles, esto es, en cuanto se interrumpe el suministro de energa elctrica, se borra la informacin almacenada. Todas estas memorias guardan la informacin de una manera conceptualmente igual, aunque tcnicamente la forma de construirlas sea diferente. La idea es la siguiente: las memorias estn formadas por un gran nmero de celdas individuales de almacenamiento, cada una de las cuales es capaz de retener un nmero binario. Estas celdas se agrupan en localidades o palabras, constituidas por un cierto nmero de celdas bsicas; este nmero vara de una mquina a otra, siendo las palabras de ocho bits (conocidas como bytes) las ms comnmente utilizadas. Por ltimo a cada palabra se le asigna una identificacin numrica, o direccin, la cual sirve para sealar la posicin de la palabra dentro del dispositivo, para as tener acceso a la informacin en ella contenida. La capacidad o tamao tpico de las memorias de las computadoras personales de hoy en da es del orden de kilobytes, K, por ejemplo 16k, 32 k, 64 k, etctera (1 kilobyte es aproximadamente igual a 1 000 bytes)

22

Figura 22. Memoria de anillos magnticos. En este tipo de memoria, cada anillo es del tamao de una cabeza de alfiler, y es capaz de guardar un bit de informacin. Actualmente, este tipo de memorias ha sido substituido por las memorias semiconductoras.

Actividades complementarias de aprendizaje 1. 2. 3. 4. 5. Elabora un mapa conceptual del tema. Investiga la arquitectura Von Neumann. Investiga la arquitectura Harvard. Investiga los primeras computadoras con arquitectura Von Neumann. Explique el concepto de programa almacenado.

Cuestionario de autoevaluacin 1. 2. 3. 4. 5. Desarrolle las ecuaciones de un contador de dcadas. Desarrolle las ecuaciones de un multiplexor. Desarrolle las ecuaciones de un decodificador de 3 a 8. Desarrolle las ecuaciones de un codificador de 8 a 3. Desarrolle las ecuaciones de un registro octal.

23

Asesoria 3 1.4 Objetivos de la computadora Las computadoras realizan dos operaciones: entrada / salida y procesamiento. Operaciones de entrada / salida: lectura y escritura. Las computadoras llevan a cabo operaciones de entrada / salida o E / S. La computadora lee de los dispositivos de entrada y almacenamiento, y escribe en los dispositivos de salida y almacenamiento. La captura de los datos de entrada puede ser realizada directamente por los usuarios finales o por capturistas profesionales. Lo habitual es que la informacin se capture con el teclado de una terminal o PC, o que se obtenga de fuentes mgicas, como los disquetes. Una vez procesados los datos, se escriben en un disco magntico o en un dispositivo de salida, como una impresora. Operaciones de procesamiento: clculos matemticos y toma de decisiones. La computadora es un ente totalmente objetivo. Cualquier par de computadoras a las que se instruya para ejecutar una misma operacin generarn el mismo resultado. Esto se debe a que la computadora puede ejecutar solo operaciones de cmputo y lgicas. En pocas palabras, las computadoras son rpidas, exactas, constantes y fiables; nunca olvidan nada, y no se quejan. Velocidad 300 km/milisegundos. Las computadoras realizan diversas actividades al ejecutar las instrucciones, como las comentadas en secciones previas. Tales operaciones se miden en milisegundos, microsegundos, nanosegundos y picosegundos. Exactitud sin errores. Las computadoras no solo son exactas, sino que su exactitud refleja una gran precisin. Aunque llegan a ocurrir en los sistemas de informacin computarizados, muy pocos errores pueden atribuirse a la computadora en s. En todo caso, son errores humanos. Consistencia. 1. Fiabilidad. Capacidad de memoria casi ilimitada. Computacin personal. El crecimiento de la computacin personal ha producido un creciente nmero de programas que son la base de la misma en el mundo del hogar y los negocios. Algunas de las herramientas de productividad ms populares son las siguientes: procesador de palabras, autoedicin, hoja de clculo, bases de datos, grficos y comunicaciones. 2. Comunicacin. Las computadoras son las herramientas de comunicacin que facilitan la comunicacin electrnica entre personas y computadoras. 3. Ciencia, investigacin e ingeniera. La computadora se utiliza como herramienta en la experimentacin, diseo y desarrollo.

24

4. Educacin y consulta. La computadora interacta con los estudiantes para mejorar el proceso de aprendizaje. El adiestramiento computarizado esta teniendo efectos profundos en los mtodos educativos convencionales. 5. Diseo asistido por computadora (CAD). Es el uso de computadoras en el proceso de diseo. 6. Entretenimiento y educacin. Cada vez se disean y crean ms aplicaciones para fines de entretenimiento. Existe software que por sus caractersticas combinadas se ha denominado software de educacin y entretenimiento.

1.5 El concepto de arquitectura de computadoras La disciplina dedicada a la construccin, estudio y aplicacin de las computadoras recibe el nombre de Arquitectura de Computadoras y puede ser dividida en cinco partes fundamentales: entrada y salida, comunicaciones, control, procesamiento y almacenamiento. Esta es de inters tanto para los ingenieros en electrnica y computacin, dedicados al diseo de hardware, como para los cientficos en computacin e ingenieros de software, dedicados al diseo de programas. Asimismo, la arquitectura de computadoras es un concepto que integra software, hardware, algoritmos y lenguajes de programacin para el procesamiento de datos y la generacin de informacin. El diseo y construccin de computadores es frecuentemente visto como labor de un ingeniero ms que de un cientfico. Sin embargo, las demandantes necesidades de equipos de cmputo cada vez ms veloces y poderosos requiere de la aplicacin prctica de diversos conceptos tericos. Tales necesidades, involucran computadores individuales (uniprocesadores), computadoras compuestas (multiprocesadores) y supercomputadores. Por la complejidad con la que se encuentran interrelacionados los elementos fsicos y lgicos que integran a una computadora es imposible considerar nicamente a los de un tipo durante la fase de diseo. Tan importante es el hardware que permite realizar lo que deseamos como el software que nos permite expresarlo y controlarlo. En la arquitectura de computadoras una computadora es vista como un sistema de cmputo y como tal se requiere de un amplio conocimiento de las estructuras de hardware y software junto con las estrechas interacciones con los algoritmos usados (para el clculo o asignacin de recursos). En el diseo de una computadora existen varios elementos que se toman en cuenta, medidos principalmente en trminos de desempeo y costo. Mtricas secundarias son la tolerancia a fallas, funcionalidad, y factores ambientales (tamao, enfriamiento y ruido). Por supuesto, esto sin perder de vista el objetivos principales como son el diseo de computadores potentes y de costo razonable, permitir la realizacin de programas eficientes que resuelvan un problema computacional, y ofrecer las interfaces adecuadas para el usuario.

25

Finalmente, y considerando todo lo expuesto hasta este momento, veremos que en un curso de esta naturaleza los objetivos deben cubrir la presentacin de todo el conocimiento necesario para el diseo de una nueva computadora o mejorar una ya existente y el desarrollo de algoritmos eficientes tanto para la solucin de problemas como para que hagan el mejor uso del hardware disponible. Actividades complementarias de aprendizaje 1. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 1. Desarrolle la practica de laboratorio correspondiente.

26

UNIDAD 2. LA UNIDAD ARITMTICA Y LGICA


Objetivo particular:

Que el alumno sea capaz de dar su propia definicin de arquitectura de computadoras, reconociendo su objetivo y las personas que necesitan de ella; conocer e identificar las distintas evoluciones de la arquitectura de computadoras.
Temario detallado

2.1 La Unidad Aritmtica y Lgica 2.2 Construccin del ALU 2.3 Sumador Completo 2.4 Resta 2.5 Multiplicacin 2.6 Divisin 2.7 Ejemplo de Unidad Aritmtica y Lgica

Asesoria 4 2.1 La Unidad Aritmtica y Lgica Los circuitos que a continuacin describimos forman, en conjunto, parte de lo que se llama Unidad Aritmtica y Lgica (UAL, en ingls ALU) que es parte de la Unidad de Procesamiento Central (UPC, Central Processing Unit CPU). La unidad aritmtica y lgica es la seccin de la computadora que realiza las operaciones matemticas y lgicas en los datos de entrada procesados por el computador. Esta seccin de la mquina puede ser relativamente pequea consistiendo en quiz uno o dos circuitos de integracin a gran escala (LSI), formar parte de la propia computadora como en el caso de la microcomputadora o ser una serie considerable de circuitos lgicos de alta velocidad como en las macrocomputadoras o supercomputadoras. No importando el tamao y la complejidad de estos circuitos, las mquinas pequeas realizan generalmente las mismas operaciones lgicas y aritmticas usando los mismos principios que en las grandes mquinas. Lo que cambia es la velocidad de las compuertas lgicas y los flip-flops utilizados; tambin, tcnicas especiales son utilizadas para realizar varias operaciones en paralelo. Aunque muchas funciones pueden ser realizadas por los UAL de las mquinas de hoy en da, las operaciones aritmticas bsicas (suma, resta, multiplicacin y divisin) continan siendo las operaciones ms utilizadas. Inclusive las especificaciones de una computadora nos dan evidencia de la naturaleza fundamental de estas operaciones: en cada mquina nueva se describen los tiempos requeridos para la suma y multiplicacin como caractersticas significativas. Es importante resaltar que existe otra parte de la computadora llamada Unidad de Control que dirige las operaciones del UAL. Todo lo que hace el UALes sumar, restar,
27

acarrear, etc. cuando se le provee de la secuencia correcta de las seales de entrada. Depende del elemento de control el proveer de estas seales as como es funcin de la unidad de memoria proveer a los elementos aritmticos de la informacin que usarn. Asumiremos por el momento que las secciones de control y memoria de la mquina son capaces de generar las seales de control correctas y que los datos en los cuales se va a realizar la operacin, estn disponibles.

Figura 2.1 La Unidad Aritmtica y Lgica. 2.2 Construccin del ALU La informacin que se maneja dentro de una computadora se divide en palabras, cada una de ellas con un nmero fijo de bits (algunas computadoras proveen la habilidad de manejar operadores de longitud variable). Por ejemplo, las palabras manejadas por una determinada mquina binaria pueden ser de 32 bits de longitud. Los operadores usados se obtienen de la memoria y la unidad de control dirige las operaciones que se realizarn de acuerdo a un programa determinado. Si se requiere de una suma, los dos sumandos deben proporcionarse a la UAL que los sumar y luego se debe guardar el resultado, aunque sea en forma temporal. Para introducir varios conceptos, vamos a considerar la construccin tpica de un ALU. Los dispositivos de almacenaje consisten en una serie de registros de flip-flops, cada uno de ellos puede estar formado de uno o varios flip-flops. La longitud de estos registros se define como la cantidad de informacin que pueden almacenar. En un registro binario esto es igual al numero mximo de bits que caben en un registro, en un registro del tipo BCD al numero mximo de dgitos decimales que se pueden almacenar. Por conveniencia a cada uno de los registros dentro de la computadora se le da un nombre tal como registro A, registro X, etc. y a los flip-flops que lo forman se les da el
28

mismo nombre, esto es, el registro A se forma de los flip-flopsA0,A1,A2, ...,AN.Algunas computadoras tiene uno o varios registros llamados acumuladores que es el principal registro para las operaciones lgicas y aritmticas. El registro guarda los resultados de las operaciones lgicas y aritmticas, circuitos lgicos son anexados a este registro para que las operaciones necesarias puedan realizarse con su contenido y los otros registros que intervengan. El acumulador es por lo tanto un registro bsico de almacenamiento para los elementos aritmticos. Si se le dan instrucciones a la mquina de Cargar el acumulador, el elemento de control se encargara de limpiar el registro de su contenido anterior y de poner el operando contenido en la memoria en el acumulador (la forma exacta de hacerlo se vera con cierto detalle en los siguientes captulos). Si se pide ahora la suma, la unidad de control deber pasar la cantidad del acumulador como uno de los sumandos a la UAL y el otro sumando tomarlo de una localidad de memoria y regresar el resultado al acumulador o a la memoria. Ntese que si el contenido se regresa al acumulador, este pierde su contenido original y contiene al final de la operacin la suma resultante. En este capitulo trataremos solo con el proceso de sumar, restar, etc. y no del proceso de localizar el numero a ser sumado de la memoria o de regresar el resultado a la misma. Estas operaciones eran cubiertas en los siguientes captulos. Algunas computadoras tienen mas de un acumulador y se denominan acumulador A, acumulador B, etc, o ACC1, ACC2, AX, BX, etc. dependiendo del computador o microcomputador analizado. Cuando el numero de registros previsto para retener a los operadores se vuelve grande (4 o mas) se acostumbra nmbralos registros generales. La Suma de dos Nmeros El modulo bsico usado en los elementos aritmticos es el medio sumador(Half adder). La funcin de un medio sumador es sumar dos dgitos binarios y producir una suma (S) y un acarreo (C) de acuerdo a las reglas de suma mostradas en la tabla de la figura 9.2. En la misma figura se muestra el diseo de un medio sumador. El dgito de acarreo se relaciona a los dos sumandos por la lgica de la compuerta Y:

mientras que la suma se da por la funcin O EXCLUSIVA: Algunas veces se habla de un cuarto de sumador que consiste en el mismo circuito que para el medio sumador pero sin considerar el acarreo. La suma no es completa sin considerar el posible acarreo resultante de la suma de dos bits anteriores. Una compuerta que realiza esto se conoce con el nombre de sumador completo y puede construirse a partir de dos medios sumadores (de ah su nombre)

29

Figura 2.2 El medio sumador.

Actividades complementarias de aprendizaje 2. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 6. Desarrolle la practica de laboratorio correspondiente.

30

Asesoria 5 2.3 Sumador Completo Cuando mas de dos dgitos binarios se van a sumar varios medios sumadores no son adecuados puesto que el medio sumador no tiene entrada para manejar el acarreo. En la figura 9.3 mostramos la tabla de verdad que un sumador completo debe satisfacer; en la misma figura aparecen los mapas K y la realizacin con dos niveles de compuerta para el bit de suma y el bit de acarreo.

Figura 2.3 El sumador completo. Existen varias otras estructuras de compuertas aparte de las dadas en la figura 2.3 con las que un sumador completo puede realizarse. Por ejemplo, otra de las formas en que Si y Ci pueden ser generados son:

31

En la figura 9.4 mostramos como un sumador completo se puede realizar utilizando dos medios sumadores. Un medio sumador es usado para combinar los dos dgitos de entrada y dar el dgito de suma S i y un acarreo C i. El segundo medio sumador combina al tercer dgito con los primeros dos. El smbolo del circuito para un sumador completo es mostrado en la misma figura.

Figura 2.4 Sumador completo realizado con medios sumadores.

Actividades complementarias de aprendizaje 3. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 7. Desarrolle la practica de laboratorio correspondiente.

32

Asesoria 6 2.4 Resta Recordemos las reglas de la resta observando la tabla de la figura 2.5. Llamaremos aAel minuendo y a B el substraendo y a D=A-B, la diferencia siendo C el acarreo resultante en algunos casos. Cuando A=0 y B=1 necesitaremos pedir prestado de la siguiente columna para permitir que la resta pueda ser realizada. Cuando se regresa la unidad que fue prestada, es necesario realizar primero una resta del substraendo del minuendo y luego una resta ms de 1 al resultado (el orden en que se realicen estas dos operaciones no tiene importancia). Una estructura de compuertas que acepte a A y B como entrada y nos de la resta D como resultado es llamado medio restador. Podemos verificar que D y C estn dados por la relacin:

Por lo que el circuito resulta ser igual que para un medio sumador, pero el acarreo es distinto. De forma similar a la suma, un circuito capaz de realizar la resta tomando en cuenta el prstamo anterior es llamado restador completo. Una de las formas de construir un restador completo es usando dos medios restadores. El sumador completo realiza las dos restas descritas anteriormente y un prstamo del dgito siguiente (si es que lo hay).

2.5 Multiplicacin Representamos una multiplicacin en binario en la figura 2.6. El multiplicando es multiplicado por cada dgito del multiplicador y estos productos parciales son sumados luego para obtener el resultado total considerando su posiciones relativas. Cada producto parcial es 0 igual al multiplicando corrido a la izquierda dependiendo si el multiplicador es 0 1. Notamos tambin que el resultado tiene ms dgitos que el multiplicando o el multiplicador y si estos tienen N bits, el resultado puede llegar a tener hasta 2N bits. Si los registro usados para contener el resultado no tiene la capacidad adecuada pueden llegar a saturarse y perderse el resultado. Un circuito para multiplicar bsico para dos palabras de 3 bits se muestra en la figura 2.6. Consiste en un registro de corrimiento de 5 bits para el multiplicando, uno de 3 bits para el multiplicador y un acumulador (registro totalizador) para el resultado formado con flip-flops del tipo D. Inicialmente el multiplicando se carga en los tres flip-flops de la derecha del registro de corrimiento, el dgito menos significativo en el FF0 y el ms significativo en el FF2. El acumulador se encuentra limpio. El multiplicador serial presentado es relativamente lento pues requiere que las sumas se realicen una detrs de la otra, por lo que se prefiere usar multiplicadores paralelos que realizan las sumas a la vez y disminuyen el tiempo total de la operacin.
33

Figura 2.5 La resta.

34

Figura 2.6 La multiplicacin.

Actividades complementarias de aprendizaje 4. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 8. Desarrolle la practica de laboratorio correspondiente.

35

Asesoria 7 2.6 Divisin La divisin se puede realizar por medio de restas consecutivas. Puesto que es un proceso de prueba y error tarda mucho tiempo en realizarse y ltimamente se ha preferido hacer un circuito auxiliar o paralelo a la propia computadora que realice toda la serie de operaciones trascendentes que ocupan la mayor parte del tiempo de la mquina central (coprocesador o procesador numrico). Presentamos en la figura 9.10 un circuito que realiza la operacin de dividir. La explicacin de su funcionamiento lo dejamos al lector interesado en la bibliografa u otras fuentes similares.

Figura 2.7 La divisin.

2.7 Ejemplo de Unidad Aritmtica y Lgica Existen UALde las distintas familias que se venden como unidades separadas especializadas en su funcin. En las microcomputadoras, la UAL forma parte del mismo circuito y no se puede usar por separado. Un circuito de UAL es muy verstil y permite realizar en un slo paquete muchas de las operaciones aritmticas y lgicas. En la figura 9.11 presentamos un circuito funcional de la compaa Motorola llamado el MC10181 que acepta dos palabras de 4 bits y un acarreo junto con 4 lneas que especifican la funcin a realizarse dentro de la UAL. Consta tambin de dos terminales ms que permiten conectar al circuito con otros circuitos para construir palabras ms grandes o para mejorar su velocidad. Las funciones listadas en la tabla de la UAL son engaosas pues los fabricantes decidieron poner Amenos B menos 1 en lugar de A>.

36

Figura 2.8 Unidad aritmtica y lgica comercial. La unidad es rpida y suma dos nmeros en aproximadamente 6.5 ns con un acarreo generado en menos de 5 ns.

Actividades complementarias de aprendizaje 5. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 9. Desarrolle la practica de laboratorio correspondiente.

37

UNIDAD 3. LA MEMORIA
Objetivo particular:

Que el alumno sea capaz de dar su propia definicin de arquitectura de computadoras, reconociendo su objetivo y las personas que necesitan de ella; conocer e identificar las distintas evoluciones de la arquitectura de computadoras.
Temario detallado

3.1 Memoria de Acceso Aleatorio 3.2 Memoria Dinmica 3.3 La Memoria de Slo Lectura 3.4 Memorias Programables y Borrables 3.5 Organizacin de la Memoria

Asesoria 8 La memoria de la computadora no est concentrada en un slo lugar; los dispositivos de almacenaje estn distribuidos en toda la mquina. En la parte ms interna encontramos a los registros de operacin que son registros de flip-flops que se usan en la unidad de control y aritmtica de la computadora. Los clculos se realizan con los datos que se toman de estos registros, por ejemplo, la suma, multiplicacin y corrimientos son todos realizados en estos almacenamientos provisionales. El proceso actual de informacin se realiza en la localidad de estos registros. Viendo hacia afuera, la siguiente categora de registros de almacenamiento que encontramos es llamada memoria de alta velocidad, memoria interna o memoria principal. Esta seccin de la memoria de la computadora consiste en un conjunto de registros de almacenamiento, cada uno de los cuales es identificado con una direccin (localizacin de cada registro de memoria) que permite a la unidad de control, ya sea escribir o leer, de un registro en particular. Para que un programa (conjunto de instrucciones) pueda ser ejecutado es necesario que resida antes en esta memoria. Es deseable que la velocidad de operacin en esta seccin de la memoria de la computadora sea tan rpida como sea posible, puesto que la mayora de las transferencias de datos de y hacia la seccin de procesamiento de la informacin de la mquina ser a travs de la memoria principal; por esta razn los dispositivos de almacenamiento con un tiempo de acceso (tiempo que transcurre entre el momento que se solicita la informacin y el momento en que el dispositivo tiene una respuesta) rpido son generalmente elegidos para la memoria principal. Desafortunadamente los dispositivos disponibles en el momento, que son lo suficientemente rpidos para realizar esta funcin satisfactoriamente, no poseen la capacidad de almacenamiento que algunas veces es requerida. Como resultado, memoria adicional, llamada memoria auxiliar o memoria secundaria, es agregada a la
38

mayora de las maquinas. Esta seccin de la memoria de la computadora se caracteriza por un bajo costo por dgito almacenado, pero generalmente tiene una velocidad de operacin mucho menor que, los registros de operacin o que la memoria principal. Esta seccin de la memoria es algunas veces designada como memoria de respaldo, pues su funcin es manejar cantidades de datos en exceso a las que pueden ser almacenadas en la memoria interna. Los dispositivos ms externos y ltimos de almacenamiento son usados para introducir informacin a la computadora del mundo externo y para guardar los resultados de la computadora para el usuario de la computadora. Este medio de almacenaje consiste generalmente en tarjetas perforadas (en desuso), cinta de papel perforada (en desuso), cintas magnticas o discos magnticos y las salidas de la mquina consisten generalmente en caracteres impresos ya sea en pantalla o en papel. Cada una de las divisiones de la memoria tiene ciertas caractersticas. Por ejemplo la importancia de velocidad es muy alta en los registros de operacin. Estos registros generalmente deben realizar operaciones a varias veces la velocidad de la memoria principal. La memoria principal tambin requiere grandes velocidades de operacin, pero como es deseable almacenar grandes cantidades de datos (de 600,000 a 109 bits) en esta seccin de la memoria, un compromiso entre el costo y la velocidad debe buscarse. El mismo tipo de compromiso se realiza en el caso de la memoria auxiliar en el que se almacenan entre 360,000 y 1015 bits, siendo muy caro utilizar los mismos dispositivos que para la memoria principal. Es importante darse cuenta al considerar la velocidad de operacin, que antes de que una palabra puede ser leda, es necesario localizarla. El tiempo para localizar y leer una palabra de memoria es llamado tiempo de acceso. El procedimiento para localizar informacin puede ser dividido en dos clases: Acceso Aleatorio Acceso Secuencial Los dispositivos de almacenaje que tiene acceso aleatorio son aquellos en los que la localizacin dentro del dispositivo puede ser seleccionada arbitrariamente sin seguir ningn orden y el tiempo aproximado de acceso es aproximadamente igual para cada una de las localidades de memoria del dispositivo. Un registro de flip-flops es un ejemplo de un dispositivo de almacenamiento de acceso aleatorio. Por otro lado los dispositivos de acceso secuencial necesitan ser recorridos en orden para llegar a cierta localidad de memoria, por lo que el tiempo de acceso varia de acuerdo a la localidad. Los dispositivos de acceso secuencial poseen a su vez dos divisiones: Dispositivos de almacenaje de acceso directo Dispositivos de acceso serial Los primeros tienen direcciones definidas pero su tiempo de acceso para alcanzar los datos en una direccin dada pueden variar, por ejemplo, el tiempo para localizar datos en una cabeza de discos movible depende de la posicin de la cabeza y del disco
39

cuando la direccin es dada. Los dispositivos de acceso serial son realmente seriales y secuenciales en sus propiedad de acceso, la cinta magntica es un ejemplo clsico donde para llegar a la localidad deseada es necesario pasar por todas las anteriores. Otra forma de subdividir los dispositivos de almacenaje es de acuerdo a si son dispositivos del tipo: Dinmicos Estticos En los estticos, la informacin, una vez grabada en su localidad, no es olvidada o borrada por el tiempo en que el dispositivo tenga energa elctrica o la informacin no sea cambiada explcitamente. Como contraparte, en un dispositivo dinmico, una vez guardada la informacin en una localidad, sta se olvida en un tiempo finito, por lo que se debe recordar o refrescar constantemente. 3.1 Memoria de Acceso Aleatorio La memoria de una computadora se organiza en palabras de longitud fsica, cada una de ella ocupa una localidad o direccin predeterminada dentro de la memoria. Como se puede observar en la figura 10.1 una memoria dada se divide generalmente en N palabras donde N es una potencia de 2. Cada palabra tiene el mismo nmero de bits llamados la longitud de la palabra.

Figura 3.1 Organizacin de la memoria. La direccin de los nmeros en la memoria corren consecutivamente comenzando con la direccin cero hasta la mxima que la computadora puede direccionar. Es importante entender la diferencia entre contenido de la memoria y la direccin de la memoria. Una memoria es como un gran gabinete que contiene tantos cajones como hay direcciones en memoria.

40

En cada cajn hay una palabra y la direccin de la palabra est escrita en la parte externa del cajn. No removemos la palabra en una direccin cuando la movemos, nicamente cambiamos el contenido de la direccin cuando almacenamos o escribimos una nueva palabra. Desde el punto de vista externo, una memoria principal de alta velocidad es muy similar a una caja negra con un nmero de localidades o direcciones en las que los datos pueden ser almacenados o ledos. Cada direccin o localidad contiene un nmero fijo de bits binarios, y a este nmero se le llama longitud de la palabra de la memoria. Una memoria que contenga 4,096 localidades distintas de memoria, cada una de ellas capaz de almacenar 16 bits binarios, es llamada memoria de 16 bits 4,096 palabras o en el lenguaje vernculo de la computadora memoria de 4K 16 bits . Puesto que las memorias generalmente vienen en potencias de 2, el sufijo K significa en este caso 1,024 y no 103, como en el caso decimal, pues se entiende que las 2N localidades de memoria estn disponibles. Por ejemplo una memora de 16 bits de 216 palabras es llamada memoria de 64K 16 bits . Las memorias puede ser ledas (los datos pueden ser tomados de) o escritas (los datos son almacenados en la memoria). Las memorias en las que es posible leer y escribir son llamadas memorias de lectura y escritura y errneamente conocidas como RAM (Random Access Memory, memoria de acceso aleatorio) ya que las memorias de slo lectura (ver siguiente prrafo) tambin entran en est clasificacin. Alas memorias de las que solamente es posible leer y no permiten escritura son llamadas memorias de slo lectura o ROM (Read only memory). En su forma ms bsica la memoria de la computadora puede ser representada como una unidad de almacenamiento formada por un solo flip-flop. En cualquier momento el flip-flop puede ser ledo para determinar el estado en el que est y, tambin en cualquier momento, el estado del flip-flop puede ser cambiado aplicando las seales adecuadas y el pulso de reloj correspondiente (ver figura 10.2)

Figura 3.2 El flip-flop usado como elemento de memoria.

41

Una palabra de informacin binaria puede ser almacenada en grupos de flip-flops, por ejemplo, 8 bits en 8 flip-flops. Las entradas y salidas de los flip-flops se encuentran interconectadas de forma que el grupo de bits binarios entre y salga de forma serial o secuencial (uno a la vez), o sean movidos en paralelo (todo el grupo a la vez). Cuando se trata de registros dentro de la UPC (CPU) los programadores usualmente los representan como pequeas cajas una junto a otra y dentro de ellas un cero o uno lgico que representa su contenido (ver figura 10.2b). Direccin Incrementando el nmero de los flip-flops de almacenamiento podemos aumentar el nmero de bits disponibles. Pero un problema fundamental surge: Cmo poder acceder a cada una de las localidades sin confusin? La solucin es usar una forma de direccin. Podemos aplicar un nico grupo de dgitos binarios a una serie de lneas de seleccin y de esta forma una localidad nica queda disponible. En la figura 10.3 mostramos una memoria de semiconductores esttica tpica arreglada de forma que sus flip-flops o celdas como algunas veces son llamadas, puedan ser seleccionadas independientemente con un cdigo binario nico llamado palabra de direccin.

Figura 3.3 Organizacin de un circuito de memoria.

42

Una vez que la celda ha sido localizada, el puerto de entrada del CI es habilitado y un 0 o un 1 puede ser escrito a la celda. Dentro del circuito las celdas se organizan en una matriz de x por y, con la mitad de las lneas de direccin localizando las coordenadas de y. Pero por ahora es suficiente considerar a las celdas como una larga cadena de flip-flops y la direccin como un selector de alguna forma de la celda correcta. Para leer una localidad, es necesario: 1 Habilitar el circuito 2 Tener disponible la direccin a la entrada del CI 3 Colocar la lnea de lectura/escritura en 0 lgico 4 Leer la informacin en la lnea de salida Ntese que las lneas de direccin del circuito es igual a n donde 2n es el nmero de flip-flops de almacenamiento. Por ejemplo, un circuito de memoria de 256 localidades se organiza de forma tal que slo tiene una lnea de entrada y una de salida y necesita exactamente 8 lneas de direccin llamndosele una memoria de 256 x 1 . Actividades complementarias de aprendizaje 6. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 10. Desarrolle la practica de laboratorio correspondiente.

43

Asesoria 9 3.2 Memoria Dinmica El circuito descrito en la seccin anterior es del tipo esttico donde la informacin grabada en cada celda no cambia con el tiempo. Este tipo de arreglo usa 3 transistores por cada localidad que da como resultado un rea muy grande para grandes cantidades de celdas. Claro est que, conforme la tecnologa madura, los costos de fabricacin y sus tcnicas se mejoran pero los diseadores estaban buscando dispositivos que almacenaran ms all de los 16K de informacin. La solucin al problema de la alta densidad de los circuitos vino de un nuevo tipo de dispositivo de almacenaje llamado RAM dinmica. La celda de memoria dinmica es una forma ingeniosa de reducir el rea del dispositivo de almacenamiento y por lo tanto aumentar su capacidad (el lmite actual es de 1M). Consiste de un slo transistor y un capacitor asociado, si el capacitor no est cargado representa un 0 lgico y si el capacitor tiene carga representa un 1 lgico. El transistor del tipo MOS sirve para amplificar la corriente de y hacia el capacitor. Desgraciadamente la carga del capacitor tiene fugas y eventualmente llega un punto en que ya no puede ser reconocido como un 1 lgico. Antes de que esto suceda, cada una de las celdas de la memoria debe ser leda y si en el capacitor exista un 1 lgico, ste debe renovarse; esta accin es conocida como refresco. An con todos los circuitos auxiliares necesarios para realizar el refresco de una memoria dinmica, sta resulta ser ms barata que la esttica. Para realizar el refresco son necesarias dos lneas ms llamadas CAS(column address selection, seleccin de direccin de columna) y RAS (row address selection, seleccin de direccin de rengln). En la figura 10.4 representamos una memoria del tipo dinmico.

Figura 3.4 Memoria tipo RAM dinmica.


44

Actividades complementarias de aprendizaje 7. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 11. Desarrolle la practica de laboratorio correspondiente.

45

Asesoria 10 3.3 La Memoria de Slo Lectura La memoria de slo lectura (ROM Read Only Memory) es un dispositivo de memoria utilizado para guardar informacin que no cambia. Hay una operacin inicial en que la informacin se graba en la memoria y posteriormente slo es posible leer de ella y no sobre escribir la informacin. Generalmente la informacin es puesta en su lugar por el fabricante del dispositivo. Es deseable, sin embargo, en muchas ocasiones poder grabar la informacin uno mismo en el dispositivo pues el costo de fabricar unos pocos ROMs es prohibitivo. Existen en el mercado una serie de circuitos que cumplen con esta caracterstica y que son programables: las memorias de slo lectura programables oPROM(programmable read only memory) memoria de slo lectura programable. Estos circuitos permiten grabar la informacin una sola vez y de ah en adelante se comportan exactamente igual a un ROM. Si se realizan circuitos experimentales y son constantes los cambios de diseo de datos y programas en la etapa inicial o se requiere de la flexibilidad de poder borrar de vez en cuando el contenido de la memoria ROM y reprogramarla, se utilizan los circuitos de memoria de slo lectura programables y borrables o EPROM (erasable programmable read only memory). Estos circuitos pueden ser programados, tal como los PROMpero tienen una ventana de cuarzo en la parte superior del empaque por el que se puede borrar la informacin usando una luz ultravioleta. El atributo ms importante de la memoria ROM es que la informacin grabada en ella no se borra si el voltaje que requiere el circuito para funcionar es interrumpido. Tales memorias son conocidas como no voltiles. En contraste, casi todo tipo de memoria RAM es voltil. La memoria ROM tiene muchas aplicaciones en sistemas digitales. Puede ser usada, por ejemplo, para contener valores arbitrarios de una tabla de verdad. Cuando una tabla de verdad tiene muchas variables lgicas de entrada y salida y su realizacin requiere de un gran nmero de compuertas, puede ser econmicamente substituida por una memoria ROM. Se usa tambin en conversin de cdigos para despliegue numrico. Tiene una amplia aplicacin en clculo numrico donde se requiere de muchas operaciones que pueden ser substituidas por una bsqueda en tablas, tales como las funciones trascendentales, multiplicacin, divisin, logaritmos, etc. A el circuito ROM se le conoce como codificador pues, de sus varias lneas de entrada, slo una de ellas puede estar en cierto momento en uno mientras que las dems se encuentran en cero lgico y a su salida obtenemos un cdigo arbitrario definido de antemano (caso exactamente contrario al de un decodificador). El en codificador se ve en esta aplicacin como una memoria en que su localidad isima de memoria es accesada poniendo un 1 lgico en una y slo una de sus entradas y el ROM responde colocando la palabra almacenada en esa localidad a su salida. En la figura 10.5 mostramos un ejemplo de esta aplicacin en una memoria ROM de 3 palabras cada una de 5 bits.
46

Figura 3.5 Un codificador con compuertas tipo O. Por lo general, en los sistemas digitales, la direccin de una palabra almacenada es una palabra codificada en binario. Para estos casos es necesario interponer un decodificador entre la direccin y la memoria ROM. Mostramos un ejemplo de decodificador de 2 a 4 (en la simbologa estndar de los decodificadores se hace relacin a sus lneas de entrada con respecto a las de salida) en la figura 10.6.

Figura 3.6 Un decodificador con compuertas tipo Y. Ntese que si el circuito de la figura 10.6 se usa como interfase para el ROM de la figura 10.5, slo 3 de las 4 lneas posibles son utilizadas.
47

Como una conveniencia al usuario, los fabricantes de ROMs proveen generalmente de un decodificador integrado en el circuito (ver figura 10.7). Tales circuitos son conocidos con el nombre de ROM codificado. Al proveer un decodificador en el mismo circuito, los fabricantes se hacen un servicio a ellos mismos pues aumentar el numero de patas de interconexin en un circuito integrado es costoso y en un ROM de M palabras necesitaramos M conexiones externas mientras que con el uso de un decodificador slo se necesitan N entradas donde 2N=M.

Figura 3.7 Una memoria ROM con decodificador incluido. Realizacin de una Memoria de Slo Lectura Una posible realizacin de una memoria de slo lectura se muestra en la figura 10.8. La estructura mostrada corresponde exactamente a una estructura de compuertas del tipo O. El uso de diodos (figura 10.8a) tiene sus desventajas pues la corriente debe ser proporcionada en su totalidad por el circuito externo. Se resuelve esta dificultad con el empleo de transistores bipolares en lugar de diodos en cada unin (figura 10.8b en el que hemos mostrado slo las conexiones de la lnea W1 para simplificar el diagrama). Observamos que todos los transistores conectados a la lnea Z1 tienen todos sus colectores en comn con VCC mientras que todas sus bases son comunes a la lnea Z1 por lo que a veces se prefiere sustituir todos los transistores por uno slo con emisores mltiples (como en el caso del transistor de entrada de la familia TTL).

48

Figura 3.8 Distintos tipos de memoria ROM. Se le nombra tiempo de acceso de la memoria al lapso de tiempo que pasa entre que la direccin esta disponible en las entradas del ROM y el tiempo en que este responde teniendo disponible la salida. El tiempo de acceso para las memorias ROM fabricadas con tecnologa bipolar puede ser tan baja como de 15 ns. El nmero de bits de una memoria es definido como el producto del nmero de palabras por el nmero de bits por palabra. Cuando el nmero de bits es grande (ms de 1000) se prefiere la fabricacin con dispositivos del tipo MOS (ver figura 10.8c) que son ms baratos y ocupan menos rea. Los tiempos de acceso de una memoria ROM fabricada con la tecnologa MOS son de alrededor de 60 ns y se mejoran constantemente. Actividades complementarias de aprendizaje 8. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 12. Desarrolle la practica de laboratorio correspondiente.

49

Asesoria 11

3.4 Memorias Programables y Borrables Como se ve en la figura 10.8, la memoria ROM forma una rejilla de lneas formada por las lneas de direccin y las de salida. Cada interseccin entre lneas tiene un dispositivo (diodo o transistor) si su salida debe ser 1 lgico o no tiene dispositivo si su salida es 0 lgico. En una memoria ROM programable el fabricante coloca en cada interseccin un dispositivo con un fusible y el usuario funde este fusible si no quiere conexin haciendo pasar por la lnea un voltaje alto por un tiempo especificado por el fabricante. De esta forma el usuario puede programar el PROM quemando los fusibles de los dispositivos que no quiere utilizar. En las memorias PROM borrables o EPROM, el dispositivo en algunos casos se forma con un transistor del tipo PMOS de compuerta flotante. En estos transistores la compuerta se encuentra aislada de toda parte del circuito en su operacin a voltajes normales. Resulta que si pasamos por las otras dos conexiones del transistor (fuente y drenaje) un voltaje alto, es posible establecer una carga negativa en la compuerta. La carga negativa dejada en la compuerta por este tipo de tratamiento deja al transistor correspondiente con un canal que ahora conduce. El EPROM puede ser borrado al exponerse a la luz ultravioleta que sirve para descargar toda compuerta cargada negativamente de cada uno de los transistores MOS.

Actividades complementarias de aprendizaje 9. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 13. Desarrolle la practica de laboratorio correspondiente.

50

Asesoria 12

3.5 Organizacin de la Memoria Los distintos tipos de memorias vistos vienen en circuitos integrados que tienen, tanto distintos nmeros de conexiones cada uno, as como distinta organizacin interna y capacidad. Cuando ms de un tipo de memoria es usado en la memoria principal, debemos colocar a cada tipo de memoria en un llamado mapa de memoria. Un mapa de memoria es un plan de direccin para todos los bits de las lneas de direccin. Al conjunto de las lneas de direccin de un computador se le denomina genricamente con la palabra en ingls de bus y se le conoce como bus de direccin. El bus no es ms que un conjunto de lneas conductoras (alambres) que se especializan en una funcin y sta es llevar las seales de un grupo determinado de circuitos, as, existe el bus de datos, el bus de direcciones y otros que veremos en detalle conforme el libro avance. Existen dos tcnicas bsicas para realizar la seleccin de los CI que necesitamos en dado momento acceder: Seleccin Lineal Direccin completamente decodificada En la seleccin lineal se escoge dividir el nmero total de lneas de direccin entre los distintos circuitos. Por ejemplo, si escogemos la lnea ms significativa para la seleccin de un circuito de ROM, el ROM es seleccionado cada vez que esta lnea se encuentra en 1. Podemos entonces planear que nuestra memoria RAM sea seleccionada cuando la lnea ms significativa sea cero. La ventaja esencial de la seleccin lineal es su sencillez: no es necesaria lgica complicada ni especial para realizar el mapa de memoria. Cada nuevo circuito que coloquemos es seleccionado por una lnea dedicada y es la forma ms utilizada en pequeos sistemas de microcomputadoras. Sin embargo, la seleccin lineal nos deja con slo la mitad de las posibilidades cada vez que una lnea independiente es seleccionada por lo que muchas veces es preferido el segundo mtodo se acceso a la memoria: la direccin completamente decodificada. Ejercicio 10.1 Disee una memoria con 3 circuitosROMde 16K x 1 bit y 3 circuitos RAM de 256K x 1 bit utilizando seleccin lineal. Haga un diagrama completo del mapa de memoria resultante. El objetivo de la direccin completamente decodificada es el de tener disponible el total de los bits direccionables sin utilizar lneas dedicadas para cada una de las secciones del mapa de memoria.
51

Para disear este tipo de mapa, es necesario dividir la memoria en bancos o pginas, donde cada pgina es seleccionada por medio de la salida de un decodificador segn el nmero de pginas de memoria que tengamos. Como ejemplo diseemos el mapa completo de memoria de un computadora con 16 lneas de direccin (64K bytes) longitud de palabra de 8 bits usando dos bancos de dispositivos RAM de 16K x 1 bits y 1 dispositivo ROM de 16K x 8 bits. Comenzamos por dividir el mapa de memoria entre los dispositivos que tenemos disponibles y podemos ver, en este caso, que es posible dividir perfectamente en 3 reas de memoria pero como para controlar 3 lneas es necesario 2 bits, ser mejor dividir en 4 reas una de las cuales no tiene uso (ver figura 10.9).

Figura 3.9 Mapa de memoria del ejercicio 10.1 Escogemos las 2 lneas ms significativas de direccin (A14 y A15) para alimentar nuestro decodificador de 2 a 4. El resultado total se muestra en la figura 10.10.

52

Figura 3.10 Realizacin total del mapa de memoria.

Actividades complementarias de aprendizaje 10. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 14. Desarrolle la practica de laboratorio correspondiente.

53

UNIDAD 4. LA UNIDAD DE PROCESAMIENTO CENTRAL


Objetivo particular:

Que el alumno sea capaz de dar su propia definicin de arquitectura de computadoras, reconociendo su objetivo y las personas que necesitan de ella; conocer e identificar las distintas evoluciones de la arquitectura de computadoras.
Temario detallado

4.1 Datos binarios puros 4.2 Cdigo de Instrucciones 4.3 Registros 4.4 Forma de Usar los Registros 4.5 Banderas de Estado 4.6 Ejecucin de Instrucciones 4.7 La Unidad de Control 4.8 Ejemplo de Unidad de Control

Asesoria 13 Toda computadora tiene una especie de unidad de procesamiento central o UPC (central processing unit o CPU), que forma el cerebro de la mquina computadora. La UPC est formada por diferentes partes interconectadas entre s en forma tal que permite ciertas operaciones lgicas. Las computadoras de hace 10 aos requeran de un chasis bastante grande para albergar los componentes de la UPC. Varias tarjetas bastante grandes que contenan cientos de circuitos interconectadas por cables del tamao de una manguera no era una vista extraa. Hoy en da, la UPC est contenida en unos pocos circuitos de alta integracin o en el caso de las microcomputadoras en uno solo. La microcomputadora junto con unos cuantos circuitos externos forman una computadora funcional. Los componentes del sistema de computacin deben de interconectarse de alguna forma. La manera en que se realicen las conexiones y cmo se haga la comunicacin afecta las caractersticas de desempeo del sistema profundamente. En las primeras computadoras y en algunas de las actuales, la UPC se interconectaba con cada uno de los dispositivos externos a la UPC por medio de un cable separado. Este mtodo tiene la desventaja de que muchos cables (llamados buses) distintos deben ser controlados y se requiere de una cantidad de circuitos considerables. Para realizar la interconexin de forma ms econmica y para estandarizar la lgica de interfase necesaria, una tcnica muy popular consiste en interconectar a todos los sistemas externos a la UPC por medio de un solo juego de cables o bus de
54

interconexin. El bus consiste de los cables necesarios para encontrar la direccin de los componentes, controlarlos y transferir datos de y hacia ellos. En la figura 11.1 vemos el esquema de una unidad de procesamiento central. Se forma por la unidad aritmtica y lgica encargada de las operaciones lgicas y aritmticas, la unidad de control encargada de la coordinacin general, una serie de registros donde se almacena informacin requerida por la UPC de forma provisional y un bus de datos que interconecta a todas las unidades.

Figura 4.1 La Unidad de Procesamiento Central. La funcin principal de la UPC ser la de interpretar la informacin que reside en la memoria principal como instrucciones o datos y actuar de acuerdo a un plan determinado por el cdigo de la instruccin generando las operaciones necesarias de acuerdo a ese plan. Ningn programa puede ser ejecutado por la UPC si no reside antes, en forma parcial o total, en la memoria principal. Interpretando el Contenido de la Memoria Los datos almacenados en la memoria pueden ser interpretados como: 1. Datos binarios puros 2. Datos codificados en binario 3. Un cdigo de carcter 4. Un cdigo de instruccin Estas cuatro categoras de interpretar datos pueden dividirse en dos ms genricas: datos e instrucciones.

55

Los datos binarios puros, los datos codificados en binario y los caracteres codificados tiene una cosa en comn: son datos. El contenido de las palabras almacenadas en memoria puede ser usado por s solo para operaciones o combinado con otras palabras de memoria en formas dirigidas por un programa1.

Actividades complementarias de aprendizaje 11. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 15. Desarrolle la practica de laboratorio correspondiente.

56

Asesoria 14

4.1 Datos binarios puros Consideremos primero a los datos binarios puros que no estn sujetos a ninguna interpretacin. Es importante resaltar que podemos representar este tipo de datos en papel como un nmero binario, octal o hexadecimal (por sencillez) sin que tenga ningn impacto en el dato de la palabra. Por ejemplo, una palabra arbitraria de 16 bits, en la que es posible representar 216 combinaciones, puede ser: 11011011100010112=1556138=DB8B16 Se puede observar que la anotacin en hexadecimal, adems de ser ms compacta, es mucho ms fcil de apuntar, recordar y evita confusiones por lo que la base 16 es la preferida entre la gente dedicada a diseo lgico o programacin a nivel mquina. Datos Codificados en Binario El contenido de una palabra de memoria, interpretada como datos binarios puros, puede existir por s solo o ser vlido slo cuando se combina con otras palabras para formar un cdigo o un nmero mayor que sea utilizado con fines prcticos. No hay razn por la cual un dato binario no pueda formarse por ejemplo con 2 o ms palabras, ms an, las palabras pueden no ocupar localidades continuas de memoria, aunque se prefiere por fines prcticos que as sea. La palabra puede tambin estar codificada de acuerdo a un cdigo establecido de antemano como puede ser exceso 3, BCD, nmeros con signo, etc. (todos ellos analizados en el captulo 3). Cdigos de Caracteres Una computadora no sera muy prctica si tuvisemos que meter cada uno de los datos como largas secuencias de unos y ceros o si las respuestas consistieran de nmeros o letras en una representacin binaria. Debe ser posible para la computadora el manejar todo tipo de texto y otra informacin no numrica. Para que el manejo de texto sea completo debe de incluir al menos las 26 letras en minsculas y maysculas, los nmeros y una serie de signos especiales que usamos diariamente en nuestra comunicacin como son el punto, la coma, etc. En conjunto, los caracteres ms usados suman alrededor de 87. Una palabra de 7 bits es suficiente para su representacin pero es universalmente aceptada la codificacin utilizando 8 bits (ver captulo 3). En algunos sistemas con longitud de palabra de 8 bits, se usa el cdigo ASCII de 7 bits y el bit libre se utiliza para verificar errores en los datos por medio de un procedimiento llamado paridad. En otros sistemas se usa un cdigo de 8 bits ASCII y se agrega a la memoria un bit ms que sirve para la comprobacin de paridad. A este bit se le conoce como bit de paridad.
57

La paridad consiste en una verificacin sencilla de errores en la que se agrega un bit al cdigo. La paridad puede ser: Par Impar El bit de paridad se cambia a 1 a 0 para que el nmero de bits 1 de una palabra sea siempre par o impar, segn el tipo de paridad que se haya escogido. Si el tipo de paridad que se escoge es par, el bit de paridad se limpia o fija para que el nmero total de unos de la palabra sea siempre par. Para clarificar el punto inclumos un ejemplo: Palabra a proteger con un bit de paridad: 1010101 Como el nmero de 1 de la palabra ya es par, el bit de paridad ser en este caso 0. Muchos esquemas muy elaborados son usados para verificar la consistencia de los datos y asegurarse que no contengan errores, an ms, existen algoritmos para determinar dnde estn los errores y tratar de corregirlos. Estas tcnicas de deteccin de errores no tienen que ver nada en particular con la arquitectura de las computadoras y, por lo tanto, no se discuten aqu. Para mayor informacin consulte la bibliografa, en especial el libro Telecomunicaciones y Teleproceso.

4.2 Cdigo de Instrucciones Las palabras de memoria hasta ahora analizadas son conformadas por informacin de un tipo u otro pero el contenido tambin puede ser interpretado como un cdigo solicitando una operacin que se requiere de la computadora. Considere el sencillo ejemplo de una suma binaria en donde solicitamos que la palabra almacenada en cierta direccin de memoria sea sumada a otra contenida en una direccin distinta y que el resultado sea almacenado en una tercera direccin. Los pasos necesarios para lograr esta suma seran: 1. Identificar la direccin de la primera palabra a sumar. 2. Transferir el contenido de la direccin a los registrosprovisionales de almacenamiento dentro de lo que forma la Unidad de Procesamiento Central. 3. Identificar la direccin de la segunda palabra a sumar. 4. Sumar el contenido de esta ltima palabra a la que se encontraba en los registros de la UPC, obtenida en el paso 2, por medio de la Unidad Lgica y Aritmtica (UAL). 5. Identificar la direccin de memoria donde el resultado se almacenar. 6. Transferir la suma almacenada en el registro adecuado de la UPC a la direccin obtenida en el paso 5. Ilustrar el concepto de un programa de computadora con estos seis sencillos pasos es slo el comienzo, Tendremos que responder a lo largo del libro a las preguntas: Cmo
58

realiza la computadora las operaciones requeridas por los cdigos de instrucciones que conforman el programa? Qu es lo que la computadora demanda de la lgica externa para poder realizar su trabajo? Cmo se escribe un programa de computadora? Componentes de la Unidad de Proceso Central Si consideramos el sencillo programa de suma descrito en la seccin 11.1.4, podemos examinar algunos de los requerimientos internos a la UPC para poder satisfacer lo que se le solicita por medio del cdigo de instruccin SUMA.

Actividades complementarias de aprendizaje 12. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 16. Desarrolle la practica de laboratorio correspondiente.

59

Asesoria 15

4.3 Registros Como ya describimos al analizar la Unidad Aritmtica y Lgica (UAL), es necesario un almacenamiento provisional donde almacenar los nmeros para trabajar con ellos, as como un registro donde almacenar el resultado de las operaciones que llamamos acumulador y abreviaremos con A. En el acumulador podemos almacenar informacin tanto antes de operar con ella, como el resultado de las operaciones con los datos binarios. Por el momento y para simplificar las cosas consideremos que tenemos slo un acumulador y que ste es de 8 bits. Se requiere de este tipo de almacenamiento provisional por dos razones: A. El contenido de la memoria slo se puede leer o escribir, no es posible operar sobre los registros de la memoria principal. B. Es posible tomar los datos directamente de memoria, operar sobre ellos y regresar el resultado otra vez a la memoria principal, pero una cantidad adicional importante innecesaria de circuitos lgicos seran requeridos para esto, complicando el diseo, subiendo el costo y disminuyendo la rapidez de las operaciones como ser aparente segn avancemos en el captulo. Para poder acceder una palabra de memoria, tanto para leer como para escribir su contenido, necesitamos tener su direccin y sta se almacena en un registro especial que llamaremos registro contador de datos (data counter register) que abreviaremos con sus siglas en ingls: DC. El tamao de este registro depende de la cantidad de memoria principal que la computadora pueda acceder directamente. En la figura 11.2 suponemos un registro contador de datos de 16 bits que nos da una capacidad de memoria de 65,536 palabras o 64K bytes (si la palabra es de 1 byte). Una computadora puede constar de ms de un registro de este tipo pero una vez ms, por simplicidad, slo consideraremos uno. Necesitamos tambin un registro donde la instruccin sea contenida de forma que la UPC pueda hacer referencia a ese registro para ver de que instruccin, de las muchas de una computadora, se trata. A este tipo de registro se le denomina registro de instruccin (instruction register) que abreviaremos con I. La direccin de la memoria de la que traeremos la siguiente instruccin (es nuestro ejemplo la de SUMA) es almacenada en el llamado contador de programa (program counter) que abreviaremos con sus siglas en ingls: PC.

60

El contador de programa es anlogo al de datos pero se asume que uno contiene la direccin de los datos en memoria y el otro la direccin de la siguiente instruccin en memoria. Para explicar un poco ms este punto: si la operacin SUMA consta de un cdigo de operacin que slo ocupa una palabra y le deben seguir dos palabras ms de memoria que contengan los datos a sumar, el apuntador a la siguiente instruccin debe actualizarse sumando tres localidades para que salte los datos y apunte efectivamente a la siguiente instruccin, de forma similar, el contador de datos se actualizar sumando 1 al registro contador de programa y luego 1 ms para poder localizar el siguiente dato. Como se puede ver de la explicacin anterior, existe una diferencia conceptual grande entre el contador de programa y el contador de datos, pues mientras el contador de programa debe de incrementarse continuamente para encontrar la siguiente instruccin usando para ello la longitud en palabras de que consta la instruccin anterior, el contador de datos puede o no incrementarse de acuerdo a si la instruccin requiere de datos o no. Debe, por lo tanto, permitrsele gran flexibilidad al programador para poder modificar el registro contador de datos, mientras que, usualmente, al registro contador de programas no se tiene acceso ms que de forma indirecta.

Figura 4.2 Los registros de la Unidad de Procesamiento.

4.4 Forma de Usar los Registros Para poder comprender en su totalidad el uso de los distintos registro que forman parte de la UPC, realizaremos paso a paso una suma como se describe en el algoritmo de la seccin 11.1.4. Para realizar la suma asumiremos que la UPC puede interpretar 3 instrucciones sencillas: CARGA, SUMA y GUARDA. Cada una de estas instrucciones esta definida de antemano rgidamente y se deben seguir los pasos que el fabricante explica. Supondremos que las instrucciones realizan estos pasos: SUMA: Toma el contenido de la direccin formada por el contenido de las siguientes dos palabras y sumala a la que esta en el Acumulador dejando el resultado en el
61

Acumulador. Inventamos el cdigo de instruccin 30 hexadecimal que al ser encontrado por la UPC en una localidad de memoria sea interpretado como la instruccin SUMA. CARGA: Toma el contenido de la direccin formada por el contenido de las siguientes dos palabras y guardala en el Acumulador. Inventamos el cdigo de instruccin 40 hexadecimal que al ser encontrado por la UPC en una localidad de memoria sea interpretado como la instruccin CARGA. GUARDA: Toma el contenido del Acumulador y guardalo en la direccin de memoria formada por el contenido de las siguientes dos palabras. Inventamos el cdigo de instruccin 50 hexadecimal que al ser encontrado por la UPC en una localidad de memoria sea interpretado como la instruccin GUARDA. Recuerde que el Contador de Programa debe de incrementarse continuamente para apuntar as a la siguiente direccin de memoria donde se almacena una instruccin o dato. Nuestro programa de suma sera entonces (las direcciones en hexadecimal): CARGA E0E0 SUMA E0E1 GUARDA E0E2 Notemos que aqu se introduce un nuevo concepto llamado mnemnico que nos auxilia en recordar que realiza cada cdigo de instrucciones de la computadora en cuestin, pues en la palabra de memoria no se guarda las letras de la instruccin sino un simple cdigo que representa a la instruccin: 40 E0 E0 30 E0 E1 50 E0 E2 Recordemos a su vez, que cada nmero en hexadecimal tiene su equivalente en binario y a su vez, cada nmero en binario se resume en si hay corriente o no en cada uno de los flip-flops que conforman el registro en cuestin, ya sea de memoria o interno a la UPC. Coloquemos estos cdigos en un mapa de memoria en una localidad arbitraria, por ejemplo en la direccin C000 hexadecimal (suponemos que tenemos una memoria total de 64K bytes por lo que bastan con 16 lneas de direccin, 16 bits binarios o 4 hexadecimales para conocer su localizacin). En la figura 11.3 colocamos de alguna forma nuestro programa en la memoria.

62

Figura 4.3 El uso de los registros. Podemos seguir paso a paso el contenido de los registros hasta ahora analizados en la siguiente secuencia: 1. De una forma por ahora desconocida, el registro contador de programa o PC contiene la direccin de la primera instruccin: C000. 2. El UPC carga el contenido de la palabra de memoria apuntada por el PC al registro de instrucciones o I, en este caso el nmero 40 hexadecimal (CARGA), e incrementa en uno el contenido del registro PC. 3. El cdigo 40 que aparece en el registro de instrucciones hace que la lgica de la UPC realice dos pasos. Primero, el contenido de la palabra de memoria direccionado por el registro PC es trado de la memoria pero se almacena en el bit ms significativo del registro contador de datos (DC). La Unidad de Procesamiento Central incrementa posteriormente el contenido del PC en uno. El segundo paso consiste en traer el contenido de la palabra de memoria apuntado por PC y guardado en el bit menos significativo del registro DC. Ahora, se utiliza el contenido del registro DC como apuntador para traer la palabra de memoria indicada al registro acumulador (A). Una vez ms la UPC incrementa el contenido del registro PC en uno. Con esto la instruccin nmero 1 (CARGA) se completa. 4. Una vez terminada la instruccin anterior la UPC trae el contenido de la palabra de memoria direccionado por el registro PC e incrementa en uno este registro. Puesto que no le hemos dado ninguna otra instruccin especfica a la UPC, el contenido de la
63

palabra que se trae de la memoria se almacena en el registro I para ser interpretado como una instruccin. 5. Algo muy similar al paso 3 sucede en esta etapa. El registro DC contiene ahora la direccin de la palabra de memoria a suma (E0 E1) y la UPC pasa el contenido de esta palabra y el del acumulador a la UAL para su suma, el resultado se almacena en el acumulador y el contador de programa se ha incrementado en 2 para quedar apuntando a la siguiente instruccin. 6. La ltima instruccin de nuestro pequeo programa es algo muy similar a la instruccin 1 pero en lugar de trae los datos de la direccin apuntada por el registro DC, se almacena en esa direccin.

Actividades complementarias de aprendizaje 13. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 17. Desarrolle la practica de laboratorio correspondiente.

64

Asesoria 16

4.5 Banderas de Estado Muchas veces es necesario saber en detalle que es lo que realiza la UAL para poder decidir si la operacin que se ordeno fue completada con xito o no o para tomar ciertas medidas con el resultado que nos entrega la UAL. Alos registros especializados en decirnos el resultado de las operaciones se les llama registros de estado (estatus register) o banderas y consisten de un flip-flop de un bit que nos indican varias situaciones dentro de la UAL. Algunas de estas situaciones en las que las banderas son modificadas que nos son de inters se resumen en los siguientes puntos: 1. El resultado fue cero. 2. Hay un acarreo. 3. Hay signo en la operacin. 4. Hubo un desbordamiento en la operacin. 5. Indicador de paridad. 6. Si la operacin a realizar es suma o resta. 7. Acarreo a la mitad de los bits que forman la palabra. Aquellas instrucciones que afectan o no a las banderas de estado son cuidadosamente seleccionadas por el fabricante y varian de computadora a computadora. 4.6 Ejecucin de Instrucciones Como en casi toda la lgica digital, la UPC es controlada por un reloj al que nos referiremos de ahora en adelante con el signo. Este reloj puede ser tan sencillo como una sola seal o una combinacin de varias seales de reloj requeridas por la UPC (vea figura 11.4a). La ejecucin de una instruccin puede ser dividida en dos partes principales: Traer la instruccin (fetch en ingls) Ejecutar la instruccin (ejecute en ingls) Si recordamos nuestro ejemplo anterior de un programa, cada instruccin comienza con el cdigo que se carga en el registro de instruccin (I). A esta operacin le llamamos traer la instruccin. Durante la parte donde se trae la instruccin, la UPC tiene que colocar el contenido del registro del contador de programa (PC) en el bus de direcciones junto con las seales necesarias para informar a la lgica exterior que se trata de una lectura a la palabra de memoria indicada por el contenido del bus de direcciones. Por lo que a la lgica externa concierne, esto se trata de una simple lectura.
65

Mientras la lgica externa responde, la UPC usa su lgica interna para sumar 1 al contenido del registro PC. El contador de programas ahora apunta a la siguiente localidad de memoria de la que el cdigo de la instruccin se trajo. Una vez que el cdigo de instruccin se encuentra en el registro de instrucciones, dispara una serie de eventos controlados por la Unidad de Control que constituyen la ejecucin de la instruccin. En su forma ms sencilla, dos periodos de reloj son necesarios para ejecutar la instruccin. Uno de ellos marca el tiempo para traer la instruccin y el otro para ejecutarla (figura 11.4c). Si consideramos las interconexiones necesarias para esto necesitaremos hasta el momento por lo menos las siguientes: 1. Las lneas necesarias para la direccin de memoria. Por simplicidad consideraremos un diseo en el que se puedan acceder nicamente 65,535 localidades distintas de memoria o 64K bytes para lo que se requiere de 16 lneas. En conjunto forman el llamado bus de direcciones. 2. Las lneas necesarias para leer o escribir informacin a la memoria. Una vez ms, por simplicidad, consideraremos un diseo de 8 bits de longitud de palabra por lo que se requieren de 8 lneas de datos que en conjunto forman el llamado bus de datos. 3. La alimentacin del circuito/circuitos que forma la UPC formado como mnimo con una lnea de voltaje y otra de tierra. 4. Las seales adecuadas para informar a la lgica externa que se trata de una lectura o escritura a la memoria. 5. La lnea del reloj. Mostramos en la figura 11.4b el diagrama parcial de un circuito de UPC.

66

Figura 4.4 El diagrama de tiempos que se presenta en la figura 11.4c define la secuencia de traer una instruccin a la UPC. Algunas veces se requieren de ms lneas que las que fsicamente permite el empaque. Se utiliza entonces una tcnica llamada multiplexin en la que las mismas interconexiones externas sirven para varios propsitos. Por ejemplo, si se requieren de 20 lneas de direccin y slo tenemos disponibles 14 conexiones, podemos mandar en el momento t la direccin parte baja por las 14 conexiones disponibles y las restantes 6 en el momento t+1 por las mismas interconexiones.

4.7 La Unidad de Control Examinaremos ahora como la Unidad de Control decodifica las instrucciones dentro de la Unidad de Procesamiento Central. La unidad de control se puede representar funcionalmente como una caja negra tal como en la figura 11.1, pero en realidad consiste de un gran nmero de elementos lgicos que pueden ser activados por una secuencia de seales habilitadoras. En la figura 11.5 mostramos un diagrama un poco ms detallado de la Unidad de Procesamiento Central. El complementador, por ejemplo, es un elemento lgico que esta disponible en todo tiempo para complementar el contenido de los latches2. Una seal nica de la Unidad de Control activa al complementador.

67

Sin embargo, el complementar el contenido de una memoria provisional no nos sirve de mucho. Lo que si tiene vala es complementar el contenido del Acumulador y esto implica mover la informacin al complementador y una vez realizada la operacin, regresar el resultado al Acumulador.

Figura 4.5 Detalle de la Unidad de Procesamiento Central. Complementar el contenido del Acumulador requiere entonces de 5 pasos: 1. Mover el contenido del Acumulador al Bus de Datos. 2. Mover el contenido del Bus de Datos al Complementador. 3. Activar la lgica del complementador. 4. Mover el contenido del Complementador al Bus de Datos. 5. Mover el contenido del Bus de Datos al Acumulador. A cada uno de estos 5 pasos se les llama microinstruccin. Cada microinstruccin es habilitada por una seal de la Unidad de Control. Si la Unidad de Control manda la combinacin de seales adecuadas, cualquier nmero de microinstrucciones pueden ser ejecutadas para responder a una macroinstruccin que es la respuesta aceptada de la Unidad de Procesamiento Central a un cdigo de una instruccin de lenguaje de mquina, muy similares a las que describimos en la seccin 11.2.1 y 11.2.2 (SUMA, CARGA y GUARDA). Para complementar el contenido del Acumulador en nuestro ejemplo previo, la Unidad de Control requiri de 5 cdigos binarios que dispararon las seales de control apropiadas. La secuencia de cdigos binarios que residen en la Unidad de Control son
68

llamados microprogramas y generar esta secuencia de cdigos binarios se le conoce como microprogramacin. Existe un paralelo muy cercano entre lo que es microprogramar y la programacin en lenguaje de ensamblador. Un microprograma se guarda como una serie de cdigos binarios dentro de la Unidad de Control. Un programa en ensamblador es guardado como una serie de cdigos binarios dentro de la memoria principal (RAM o ROM). Al programa en ensamblador se le conoce con el nombre de macroprograma y a cada macroinstruccin le corresponden uno o ms microprogramas dentro de la Unidad de Procesamiento Central que deben ser ejecutados para generar la respuesta esperada. Un microprograma guardado en la Unidad de Control tiene memoria para datos, que consiste en los registros de la UPC, adems de almacenamiento interno a la misma Unidad de Control. Un macroprograma tambin tiene una rea de almacenamiento, ya sea provisional (RAM) o definitiva (ROM). La complejidad de las operaciones asociadas con una macroinstruccin es funcin directa del tamao del microprograma que la macroinstruccin inicia. Pero existe el limite impuesto por el tamao fsico que puede tener la Unidad de Control y esto se hace ms patente en las microcomputadoras, donde todo la UPC se encuentra contenida en un slo circuito. La Unidad de Control de cada computadora no es ms que un microprograma. Si se permite al usuario modificarlo se dice que la computadora es microprogramable. Si la Unidad de Control se disea como parte del diseo lgico de la computadora y forma parte inalterable de la Unidad de Procesamiento Central, entonces, la computadora no es microprogramable.

Actividades complementarias de aprendizaje 14. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 18. Desarrolle la practica de laboratorio correspondiente.

69

Asesoria 17

4.8 Ejemplo de Unidad de Control Como ejemplo diseemos una Unidad de Control sencilla y arbitraria que genera las seales de control indicadas en la figura 11.6.

Figura 4.6 Detalle de la Unidad de Control. La Unidad de Control debe generar estas seales en respuesta a las macroinstrucciones. En las tablas 11.1, 11.2 y 11.3 describimos con cierto detalle estas seales de control.

70

71

Las seales de control descritas en las tablas anteriores no permiten a la Unidad de Control generar todas las operaciones necesarias para soportar una instruccin en lenguaje ensamblador. Por ejemplo, no se ha hablado de como las seales de LECTURA y ESCRITURA son generadas, o de como los cuatro latches C (acarreo), O (saturacin), S (signo) y Z (cero) son manejadas. Crearemos como ejemplo un simple microprograma cuya funcin sea traer una instruccin de memoria y colocarla en el registro de Instruccin (I). Recordemos que
72

cada ejecucin de una instruccin comienza con traerla de una localidad de memoria apuntada por el Contador de Programa y colocarla en el registro de Instruccin para ser interpretada.

73

Vase que cada microinstruccin se convierte en nueve bits binarios dentro de la Unidad de Control. Estos nueve bits no tienen que ver nada con la longitud de palabra de la computadora que en nuestro caso se escogi de 8 bits. La longitud de la palabra de la Unidad de Control se fija arbitrariamente a la longitud que sea necesaria para realizar sus funciones, en este caso nueve bits. Notese tambin que se requieren de 15 instrucciones para traer el cdigo de instruccin de al memoria principal y esto debe ocurrir durante un pulso del reloj que sincroniza a la UPC. La Unidad de Control deber dividir este pulso de reloj en 15 (para este caso) internos para ejecutar el microprograma paso a paso. En la figura 11.7 mostramos la primera microinstruccin del microprograma de traer una instruccin de memoria y su significado.

Figura 4.8 Construccin de una microinstruccin. El mismo caso sucede con las dems microinstrucciones. A continuacin hacemos una breve descripcin del microprograma: La primera microinstruccin mueve el contenido del Contador de Programas al Registro de Direccin que hace que el contenido del Contador de Programas aparezca en las lneas externas de direccin de la UPC. La microinstruccin 2 coloca la seal de LECTURA en verdadero y la de ESCRITURA en falso indicndole a la lgica externa que el valor de las lneas de direccin (A0 a A15) es valido y que debe colocar el contenido de la localidad de memoria en las lneas de datos (D0 a D7), para lo que tiene de tiempo desde la microinstruccin 3 hasta la 13 que no se requiere an de los datos. Desde la microinstruccin 3 a la 13 se incrementa
74

el Contador de Programas pero es necesario realizarlo en dos partes pues los registros son de 8 bits mientras que el Contador de Programas es un registro de 16 bits. De la microinstruccin 3 a la 7 se incrementa la parte baja y de la 8 a la 13 la parte alta.

Actividades complementarias de aprendizaje 15. Elabora un mapa conceptual del tema.

Cuestionario de autoevaluacin 19. Desarrolle la practica de laboratorio correspondiente.

75

UNIDAD 5. ENTRADA-SALIDA
Objetivo particular:

Que el alumno sea capaz de dar su propia definicin de arquitectura de computadoras, reconociendo su objetivo y las personas que necesitan de ella; conocer e identificar las distintas evoluciones de la arquitectura de computadoras.
Temario detallado

5.1 Entrada/Salida Programada 5.2 Entrada/Salida por Interrupcin 5.3 Respuesta de la UPC a una Interrupcin

Asesoria 18 La transferencia de datos entre la lgica que forma parte del sistema de computadora y aquella que est ms all de ste, se conoce en general como entrada/salida o E/S (input/output o I/O). Se incluye dentro del mbito del sistema a toda la lgica que se haya diseado para trabajar en conjuncin con la UPC. Toda aquella que no caiga dentro de esta clasificacin se le conoce como externa. La interfase entre el sistema de computacin y la lgica externa debe estar claramente definida; debe de proveer facilidades para transferir datos, adems de las seales de control que identifiquen a todos los eventos que ocurren. Hay muchas formas en las que un sistema puede transferir datos hacia el exterior; pero todos caen en las siguientes tres categoras: 1) E/S Programada. En este caso todas las transferencias de datos entre la computadora y el exterior son controladas por la computadora o para ser ms precisos por un programa corriendo en la computadora. Existir un protocolo bien definido en el que la computadora hace conocer a la lgica externa que los datos estn disponibles en una localidad de memoria fija de donde sta los puede tomar, o bien, la computadora indicar de alguna forma a la lgica externa que est esperando que ponga informacin en ciertas localidades de memoria para poder accesarlas. La caracterstica clave de la Entrada/Salida Programada es que la lgica externa hace exactamente lo que se le dice que haga. 2) E/S por Interrupcin. Las interrupciones son una forma que tiene la lgica externa para forzar a la computadora a poner atencin y suspender lo que est haciendo para atender a las necesidades de la lgica externa.

76

3) Acceso Directo a Memoria. Esta es una forma de transferir datos entre la memoria interna y los dispositivos externos sin involucrar a la Unidad de Procesamiento Central en la lgica de la transferencia. 5.1 Entrada/Salida Programada Los datos son transferidos entre el sistema de computacin y la lgica externa, en cualquier direccin, por medio de un puerto de entrada y salida. Un puerto de entrada y salida consiste en un puerto con memoria de entrada y salida (buffer) conectado a las lneas de datos del bus del sistema y a las interconexiones que accesan a la lgica externa (ver figura 12.1).

Figura 5.1 Puerto de Entrada y Salida. Cuando la lgica externa transmite datos al sistema de cmputo, lo hace presentando los datos en las conexiones del puerto de entrada y salida, por lo que este mismo puerto almacena provisionalmente estos valores. El puerto de entrada y salida no puede estar comunicndose constantemente con las lneas del bus de datos, puesto que estas lneas pueden estar llevando informacin de o hacia la memoria. Si las conexiones del puerto de entrada y salida se comunicaran permanentemente con el bus de datos, cada vez que la lgica externa presentase datos a las conexiones de entrada y salida, los datos se propagaran por las lneas del bus de datos con consecuencias impredescibles. La UPC debe, por lo tanto seleccionar un puerto de E/S y leer el contenido del puerto en la misma forma que lo hace de una direccin de memoria. Como los datos se leen de los puertos de E/S tal como si se tratase de una localidad de memoria, a esta forma de transferencia de E/S se le conoce tambin como E/S de mapa de memoria (memory mapped I/O). Este tipo de esquema permite a la computadora utilizar las mismas instrucciones poderosas de lectura y escritura tanto para localidades de memoria como para los puertos de Entrada/Salida. Por ejemplo, se puede realizar operaciones aritmticas directamente con los puertos sin necesidad de almacenar los datos en memorias provisionales.
77

Normalmente existe ms de un dispositivo externo por lo que debe de haber ms de un puerto de entrada y salida. Una forma rudimentaria, pero muy utilizada en sistemas pequeos, de obtener uno o ms puertos de entrada y salida consiste en dividir las lneas de direccin de la UPC entre la memoria y los puertos. Por ejemplo, si tomamos la lnea A15 de un sistema de microcomputadora de 64Kb y escogemos que cuando su valor sea 0 accese a la memoria y que cuando este sea 1 accese a los puertos de entrada y salida tendremos dividida la memoria en dos reas bien diferenciadas, una de las cuales nos sirve para comunicarnos con los dispositivos externos. En la figura 12.2a mostramos el esquema de un dispositivo de E/S paralelo con un puerto.

Figura 5.2 Dispositivos de interfase de E/S paralelos. Alos dispositivos de la figura 12.2 se les conoce como dispositivos de entrada y salida en paralelo puesto que los datos son escritos y ledos en una palabra completa a la vez. Ntese que no hay ninguna razn de por qu el dispositivo de entrada y salida slo deba tener un puerto de entrada y salida. En la figura 12,2b mostramos un dispositivo de E/S paralelo de dos puertos. El nmero de puertos de entrada y salida que un dispositivo paralelo de E/S tiene es solamente funcin de qu tantas interconexiones estn disponibles econmicamente en el empaque en que se coloque el dispositivo. La penalidad pagada cuando una lnea de direccin es utilizada para seleccionar el buffer de un puerto de entrada y salida, es que el mapa de memoria se reduce automticamente a la mitad, lo que en la mayora de los sistemas de medios a grandes es un precio muy severo a pagar, solamente para seleccionar un puerto. Un mtodo preferido es agregar a la UPC dos lneas ms que controlan la transferencia de y hacia los puertos de salida. Una de ellas llamada IOSEL especifica que la direccin que a continuacin aparece en el bus de direcciones es vlida para una transferencia a los puertos de entrada y salida, la otra, llamada IORW, indica si se trata de una lectura o escritura de los puertos de E/S (ver figura 12.3).

78

Desafortunadamente la transferencia a ciegas de datos de un sistema de computacin y la lgica externa, no siempre provee la suficiente capacidad de entrada y salida. Las siguientes caractersticas no existen en este sistema: 1.- El sistema de cmputo debe decir a la lgica externa cuando los datos han sido colocados en el buffer de entrada y salida y por lo tanto estn listos para ser ledos; de la misma forma la lgica externa debe de indicar a la computadora cuando ha colocado datos en el buffer de entrada y salida, y estos pueden ser ledos. 2.- Tanto la computadora como la lgica externa deben de tener alguna forma de informarse entre ellas de la naturaleza de los datos que van a intercambiar. Claramente los datos que se est transfiriendo pueden ser sujetos a varias interpretaciones, por ejemplo pueden ser datos puros binarios, algn cdigo que identifique alguna operacin a ejecutarse, pueden ser parte de una direccin o una direccin completa. Cuando la computadora transmite seales a la lgica externa como un medio para identificar eventos o datos se refiere a estas seales como controles de entrada y salida. La misma informacin viajando en sentido opuesto, esto es de la lgica externa hacia la computadora, se le conoce como estado de entrada y salida. La lgica externa no puede controlar a la computadora, solo puede enviar informacin de su estado para que la computadora la interprete. Los sistemas de computacin usualmente tienen toda una serie de controles de entrada y salida y lneas de estado que son separadas y distintas de los puertos de entrada y salida. Las computadoras usualmente asignan uno o ms puertos de entrada y salida para funcionar como conductores del control y del estado, mientras que otros puertos de entrada y salida son los encargados de transferir los datos. Es solamente la forma en que la UPC interpreta los datos que hacen la diferencia entre informacin de datos, control o estado de los dispositivos.

79

Figura 5.3 Circuito Paralelo de E/S con lgica de direccin

5.2 Entrada/Salida por Interrupcin Casi todas las UPC tienen una lnea por la cual la lgica externa puede solicitar atencin inmediata. Asta se le conoce como seal de peticin de interrupcin puesto que por medio de ella la lgica externa pide sea interrumpido lo que se est haciendo y se le preste atencin. Comenzaremos por describir un ejemplo, que aunque poco realista, contiene los elementos claves de los servicios a interrupciones. Suponga que tenemos un sistema que atiende a la temperatura del agua de una regadera. Un sensor de temperatura informa constantemente a la UPC de los cambios en la temperatura del agua que sale por la regadera. La UPC por medio de un programa compara la temperatura actual con una fija y manda seales adecuadas que deben ser interpretadas como comandos para que cierren o abran las vlvulas de agua fra o caliente segn se necesite. Debemos tener un programa no trivial que llamaremos AJUSTE que realice los cambios necesarios de una forma racional y que no intente hacer ajustes descabellados. El programa quedara localizado en el mapa de memoria como se muestra en la figura 12.4a.

80

Figura 5.4 Programas que comparten la misma rea de datos. Otro programa llamado GRABA leera los datos del sensor y los escribira en un rea de memoria conocida al programa AJUSTA. El nico contacto entre los dos programas sera el hecho de que uno coloca los datos en un rea de memoria (GRABA) y el otro los lee de la misma rea de memoria (ver figura 12.4b). La forma en que el sensor de temperatura lee los datos y los enva a la computadora es otra parte del problema no trivial. Un sensor de temperatura barato puede realizar lecturas aproximadamente cada quinto de segundo, lecturas que deben ser convertidas de su forma analgica a digital (explicado en el captulo 16). Una computadora lenta pude realizar alrededor de 500,000 operaciones por segundo por lo que es muy probable que si intentamos mandar las seales obtenidas del sensor de temperatura a un puerto de E/S, la computadora no las lea en el momento adecuado y se pierdan hasta la siguiente lectura. Una secuencia ordenada de eventos para atraer la atencin de la UPC nos permite resolver esta contingencia: 1) La lgica del sensor de temperatura transmite una seal de peticin de interrupcin (interrupt request signal, IREQ) va una lnea de control del bus. 2) La UPC tiene la opcin de aceptar o rechazar esta seal de interrupcin; la acepta mandando una seal a su vez por el bus de control que indique que la interrupcin ha sido aceptada y sta es llamada seal de aceptacin de interrupcin (interrupt acknowledge signal, IACK). La seal se transmite por medio del bus de control de la computadora.
81

3) El dispositivo externo usa la seal de aceptacin de interrupcin como seal habilitadora y transmite sus datos a un puerto de E/S y remueve la seal de peticin de interrupcin indicando con esto que ya no requiere de atencin. El diagrama de tiempo de estas acciones se muestra en la figura 12.5a.

Figura 5.5 Secuencia de una interrupcin. Ntese que aunque nos hemos referido a la lgica externa entregando datos, el flujo de informacin bien puede ser en el sentido contrario. De hecho, nada nos dice que una salida o entrada de datos tenga que suceder despus de una interrupcin, bien pueden ser seales de control las que se transmitan. El propsito de la interrupcin es informar a la UPC que suspenda lo que est haciendo, procese los datos que se estn transmitiendo desde el puerto de E/S y reanude lo que suspendi. En referencia a nuestro ejemplo con los programas GRABA y AJUSTA, ocurre una serie de eventos similar a lo descrito en la figura 12.5b. La caracterstica ms importante de toda esta serie de eventos es que son asncronos e impredecibles. El diagrama de un sistema de interrupciones con las seales descritas se muestra en la figura 12.6.

82

Figura 5.6 Dispositivo externo que usa interrupciones. 5.3 Respuesta de la UPC a una Interrupcin En su forma ms elemental, la Unidad de Proceso Central puede responder a una interrupcin cargando en el registro Contador de Programa (PC) la direccin inicial del programa que atiende a la interrupcin pero esto nos deja con dos preguntas: Qu pasa con el programa que est en ejecucin? De dnde obtiene la UPC la direccin del programa que la lgica externa necesita que se ejecute? El programa que se est ejecutando en memoria tiene informacin almacenada en los registros de la UPC que puede ser importante: el acumulador (A), el Contador de Programa (PC), el Contador de Datos (DC) y otros registros existentes en la UPC. Si el nuevo programa a ejecutar no tiene algn mecanismo de guardar toda esta informacin, se corre el riesgo de no poder volver a ejecutar el programa que estaba en primer lugar. Si guardamos los valores de los registros con slo restituirlos a los registros correspondientes, en especial el Contador de Programa, podemos regresar al sitio en el que suspendimos la ejecucin. Una interrupcin no se reconoce hasta terminar con la instruccin que se esta ejecutando, por lo que el registro de Instruccin (I) es quiz el nico que no importe su valor pues inmediatamente es substituido por la instruccin prxima a ejecutarse.

83

Existen dos formas de guardar la informacin necesaria para poder volver al punto donde se interrumpe un programa antes de comenzar el que atiende a la interrupcin: 1) La ejecucin de un microprograma almacenado en la Unidad de Control que automticamente guarda los registros por nosotros en un rea predeterminada de memoria. A esta rea de memoria reservada se le llama Pila (Stack) (en algunos diseos se guardan en un juego de registros paralelos). 2) Dejar que el programador ejecute primero una rutina de servicio a la interrupcin que se encarge de almacenar los datos de los registros en un lugar seguro. Al final de la ejecucin del programa de interrupcin, no importando que mtodo est disponible, se deben realizar los pasos en orden contrario para restaurar los registros correspondientes. Ahora consideremos la forma de obtener la direccin donde se ejecutar la rutina que atiende a la interrupcin. Si se trata de un slo caso como en nuestro ejemplo de la regadera, podemos considerar el tener una direccin de memoria fija que sepa de antemano la UPC, pero en el caso de mltiples puertos de entrada y salida esto resulta un poco imprctico. Considere la forma en que la UPC responde a una interrupcin: 1) Manda la seal de aceptacin de la interrupcin, IACK. 2) Guarda de forma automtica todos los registros o permite al usuario guardarlos de alguna manera. 3) Mueve el contenido del vector de interrupciones que manda el puerto de E/S, al Contador de Programa para comenzar a ejecutar un programa en otra localidad de memoria. Utilizar un vector de interrupciones que forme la direccin en memoria donde se encuentra el programa que atiende a la interrupcin, proporcionado por el dispositivo que interrumpe, nos permite tener gran flexibilidad al momento de definir nuestras rutinas. Cdigo de Seleccin de un Dispositivo que Interrumpe Otro de los esquemas muy utilizados consiste en exigir que el dispositivo que interrumpe a la UPC mande un cdigo que identifique qu puerto de E/S es el que interrumpe. Si se manda un cdigo de seleccin del dispositivo, podemos entonces accesar a una tabla en memoria que nos de el vector de direccin de interrupcin que cargaremos al Contador de Programa para ejecutar la rutina de interrupcin. Para esto se exige un poco ms de la lgica externa pues debe ser capaz de almacenar su cdigo de seleccin; existen para esto en el mercado varios tipos de circuitos programables de interfase de E/S (PIO, PIA, etc.) Usando como referencia la figura 12.6 (la diferencia es que ahora el dispositivo externo se une a las lneas de datos del sistema para mandar por ellas su cdigo de identificacin), la secuencia de eventos es como sigue: 1. La lgica del dispositivo externo crea una seal de peticin de interrupcin que transmite a la UPC como IREQ.

84

2. Cuando la UPC esta lista a dar servicio a la interrupcin, responde con una seal de aceptacin IACK. 3. Al recibir la seal del procesador IACK, la lgica del dispositivo externo coloca un cdigo de identificacin (en nuestro ejemplo de 8 bits) en el bus de datos del sistema. La UPC recibe los datos y los interpreta como un cdigo de identificacin que usa para armar la direccin donde se encuentra localizado el programa que atiende a la interrupcin en cuestin. 4. Siguiendo un protocolo especificado por el sistema, el dispositivo externo coloca ahora sus datos a travs del puerto de entrada y salida para que este lo transmita al bus del sistema cuando se le solicite. Prioridades de Interrupcin Qu pasa cuando ms de un dispositivo interrumpe a la vez? Existen dos tipos de soluciones a este problema: 1. Se puede agregar lgica a la UPC que nos permita tener varias lneas de peticin de interrupcin cada una de ellas con una prioridad distinta a la otra. 2. Utilizar un circuito que resuelva las prioridades y como salida tenga una sola lnea de peticin de interrupcin. Si las seales de interrupcin son recibidas al mismo tiempo, se atiende primero al que tiene la mayor prioridad, pero los otros dispositivos quedan pendientes a recibir atencin. Los otros dispositivos pueden remover su seal de interrupcin o si la mantienen, sern atendidos uno a la vez secuencialmente en el tiempo como se indica en la figura 12.7a.

Figura 5.7 Prioridades en las interrupciones.


85

Si por el contrario las seales no llegan simultneamente, las interrupciones son procesadas segn van llegando y puede llegar a formarse una cola de interrupciones pendientes de terminar que a veces llegan a saturar a la UPC. Si en cierto momento estamos atendiendo a un dispositivo de baja prioridad y somos interrumpidos por uno de mayor prioridad, la UPC guarda los registros (o nos permite hacerlo) y atiende a la nueva interrupcin. Si llega otra seal de interrupcin de ms prioridad vuelve a suceder los mismo (figura 12.7b). Muchas veces es necesario atender slo a una interrupcin y no permitir otras interrupciones hasta que no termine la actividad crtica, las computadoras proveen de los mecanismos para deshabilitar las interrupciones indeseadas y a esta accin se le conoce como mascarilla, esto es, las interrupciones tienen que pasar por un tamiz antes de ser atendidas. Los dispositivos para resolver las prioridades colocan en las lneas de datos un cdigo de identificacin que permiten a la UPC saber qu dispositivo obtuvo el permiso de transmitir o recibir (figura 12.7 c y d). Uno de los esquemas utilizados para resolver prioridades externas es la cadena de prioridades (daisy chain) en el que la seal de aceptacin de interrupcin llega al primero de los dispositivos, ste tiene que tomar la seal o pasarla al siguiente circuito. La desventaja de usar este esquema es que el ltimo de la cadena recibe poca atencin.

Figura 5.8 Interrupcin por prioridad en cadena. Existe otro tipo de interrupciones que exigen el mximo de atencin y no pueden esperar. Aeste tipo de interrupciones con tan alta prioridad se les conoce como no mascarillables y no pueden ser deshabilitadas. Generalmente se reserva esta lnea de muy alta prioridad a eventos tales como falla inminente de energa o un error del sistema que impide que este pueda seguir trabajando, tal como un error de memoria. Una falla de energa elctrica puede ser detectada unos cuantos milisegundos antes de que no se pueda hacer nada. Unos pocos milisegundos son suficientes para que la mayora de las mquinas puedan apagarse ordenadamente procurando hacer el menor caos posible. En la figura 12.9 presentamos el dispositivo para resolver prioridades conectado a las lneas del bus del sistema.

86

Figura 5.9 Sistema con prioridad de interrupciones.

87

BIBLIOGRAFA

Savant, C.J. Jr., Martin S. Roden y Gordon L. Carpenter, Diseo electrnico. Circuitos y sistemas (2a. ed.), Addison Wesley Longman,1992. Sears, Francis W, Mark W. Zamansky y Hugh D. Young, Fsica universitaria (6a. ed. en espaol), Addison-Weley Iberoamericana, EUA, 1988. Solar Gonzlez, Jorge, Cinemtica y dinmica bsica para ingenieros (1a. reimp.), Trillas, 1991. Stallings, William, Organizacin y arquitectura de computadoras (4a. ed.), Prentice-Hall, Mxico, 1997. Tanenbaum, Andrew S., Organizacin de computadoras: un enfoque estructurado (3a. ed.), Prentice-Hall, Mxico, 1992. Tocci, Ronald J., Sistemas digitales: principios y aplicaciones (6a. ed.), Prentice-Hall, Mxico, 1997. Blaauw, Gerrit A., Frederick P., Jr. Brooks y Frederick P. Brooks Jr., Computer architecture: concepts and evolution, Addison-Wesley, 1997. Goldstine, Herman H., The computer from Pascal to Von Neumann, Princeton Univ., 1993. Hennessy, John L., David A. Patterson & David A. Peterson, Computer organization and design: the hardware/software interface, Morgan Kaufmann, 1997. Heuring, Vinvent P., Harry F. Jordan & Miles Murdocca, Computer systems design and architecture, Addison-Wesley, 1996. Mano, M. Morris, Arquitectura de computadoras (3a. ed.), Prentice-Hall, Mxico, 1994. Wakerly. John F., Diseo digital: principios y prcticas, Prentice-Hall, Mxico, 1992.

88

Você também pode gostar