12.07.2015 Views

Elementos y operaciones básicas - Departamento de Electrónica y ...

Elementos y operaciones básicas - Departamento de Electrónica y ...

Elementos y operaciones básicas - Departamento de Electrónica y ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Estructura <strong>de</strong> ComputadoresCapítulo 2: <strong>Elementos</strong> y<strong>operaciones</strong> <strong>básicas</strong>.José Daniel Muñoz FríasUniversidad Pontificia Comillas. ETSI ICAI.<strong>Departamento</strong> <strong>de</strong> <strong>Electrónica</strong> y AutomáticaICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.1/47Índice1. <strong>Elementos</strong> usados en el camino <strong>de</strong> datos.2. Metodología <strong>de</strong> temporización por flanco.3. Transferencia <strong>de</strong> registros. Notación.4. Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nes.5. Interfaz con el exterior.6. Ejemplos <strong>de</strong> ejecución <strong>de</strong> instrucciones.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.2/47


¡¡¡<strong>Elementos</strong> usados en el camino <strong>de</strong> datosLos elementos empleados en el camino <strong>de</strong> datos sepue<strong>de</strong>n dividir en:Registros.<strong>Elementos</strong> <strong>de</strong> proceso.<strong>Elementos</strong> <strong>de</strong> interconexión.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.3/47Los registros permiten almacenar datos intermedios. Como veremos a continuación estánformados por flip-flops tipo D junto con multiplexores y puertas lógicas que permiten sucontrol <strong>de</strong>ntro <strong>de</strong>l sistema.Los elementos <strong>de</strong> proceso están constituidos fundamentalmente por circuitoscombinacionales. Según se verá más a<strong>de</strong>lante, estos elementos se colocan entre dos grupos<strong>de</strong> registros, unos para mantener los datos fuente y otros para almacenar los resultados.Ejemplos <strong>de</strong> elementos <strong>de</strong> proceso son una ALU, un multiplicador o un divisor.La interconexión entre registros y los elementos <strong>de</strong> proceso se realiza mediante buses omultiplexores. Los primeros permiten, usando buffers triestado, conectar una gran cantidad<strong>de</strong> dispositivos entre sí. Sin embargo, estas estructuras no se suelen usar <strong>de</strong>ntro <strong>de</strong> loscircuitos integrados pues son difíciles <strong>de</strong> comprobar. En estos circuitos se prefiere el uso<strong>de</strong> multiplexores, aunque cuando el número <strong>de</strong> dispositivos a conectar es muy elevado nohay más remedio que usar buses triestado.


RegistrosDQQclkDQRegistro <strong>de</strong> un bit.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.4/47Como se pue<strong>de</strong> apreciar un registro <strong>de</strong> un bit no es más que un flip-flop tipo D. Las entradasson el dato (D) y el reloj, 1 que permite sincronizar las dos salidas (Q y Q). Tal como se aprecia enel cronograma, las salidas sólo cambian en el flanco <strong>de</strong> subida <strong>de</strong>l reloj (<strong>de</strong>spués <strong>de</strong> un pequeñoretardo). Sólo en ese instante <strong>de</strong> tiempo se copia el valor <strong>de</strong> la entrada en la salida. El resto <strong>de</strong>ltiempo la salida permanece fija, in<strong>de</strong>pendientemente <strong>de</strong> lo que haga la entrada.1 La entrada <strong>de</strong> reloj se suele i<strong>de</strong>ntificar con un triángulo. En el flip-flop <strong>de</strong> la figura, la entrada<strong>de</strong> reloj es el terminal inferior izquierdo.


RegistrosD 0DQQD 1DQQ 1clkQD[n−1..0]Q[n−1..0]Q 04 5 74 5 7D n−1DQQ n−1ICAI<strong>de</strong>aclkQRegistro <strong>de</strong> n bits.Estructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.5/47Un registro <strong>de</strong> n bits no es más que una agrupación <strong>de</strong> n registros <strong>de</strong> 1 bit que están sincronizadospor un mismo reloj. 1 Nótese que los bits <strong>de</strong> entrada y salida se numeran <strong>de</strong>s<strong>de</strong> 0 hastan-1.Las señales <strong>de</strong> varios bits se representan en el diagrama <strong>de</strong> tiempos con dos líneas paralelas,situando su valor en <strong>de</strong>cimal o hexa<strong>de</strong>cimal entre dichas líneas. Las señales multibit se nombranmediante una etiqueta alfanumérica seguida <strong>de</strong>l rango <strong>de</strong> bits entre corchetes. Por ejemploD[n-1..0] representa una señal multibit, compuesta por los bits D n 1 ¡ D n 2 ¢£¢¤¢ D 1¡ D 0 . Algunos autoresprefieren nombrar estas señales especificando el rango con un guión en lugar <strong>de</strong> con dospuntos: D[n-1 – 0]. Como se pue<strong>de</strong> observar este método es menos apropiado, ya que pue<strong>de</strong> darlugar a confusión con el signo menos. Por último ha <strong>de</strong> tenerse en cuenta que el primer bit es elmás significativo, es <strong>de</strong>cir en D[n-1 .. 0], el bit más significativo es el bit n-1, y el menos el 0. Ojo,si se escribe D[0 .. n-1] estaríamos diciendo que el bit más significativo es el 0 ¿?1 De hecho, <strong>de</strong>ntro <strong>de</strong> un mismo chip todos los circuitos secuenciales se sincronizan con elmismo reloj.


RegistrosDWenclk01D QclkDQWenQRegistro con habilitación <strong>de</strong> escritura.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.6/47El flip-flop tipo D copia su entrada en su salida en cada flanco <strong>de</strong> reloj. Ahora bien, tal comose ha mencionado antes, en un circuito integrado todos los registros están conectados a la mismaseñal <strong>de</strong> reloj. Esto implica que en cada flanco <strong>de</strong> reloj, el registro almacenará lo que haya en suentrada, lo cual pue<strong>de</strong> ser contrario a nuestros <strong>de</strong>seos si necesitamos guardar un valor durante más<strong>de</strong> un ciclo <strong>de</strong> reloj. Para solucionar este problema se usa una entrada adicional (Wen, <strong>de</strong> WriteENable) que controla la escritura: cuando Wen=0 el flip-flop mantiene su valor anterior y cuandoWen=1 el dato que haya en la entrada se almacena en el flip-flop.Como se pue<strong>de</strong> apreciar en el diagrama, un flip-flop con habilitación <strong>de</strong> escritura se construyesimplemente añadiendo un multiplexor en la entrada que conecte la entrada <strong>de</strong>l flip-flop con susalida cuando <strong>de</strong>seamos seguir almacenando el mismo valor o con la entrada <strong>de</strong> datos cuando<strong>de</strong>seemos almacenar el valor <strong>de</strong> ésta.Si se observa el cronograma, ahora la salida sólo cambia en los flancos <strong>de</strong> subida <strong>de</strong>l reloj enlos que la señal Wen vale 1. En el resto <strong>de</strong> los casos la salida permanece igual a su valor anterior.La señal Wen es por tanto una señal <strong>de</strong> control <strong>de</strong>l registro. 1 Se pue<strong>de</strong>n construir registros conmás señales <strong>de</strong> control.EjercicioDiseñe un registro <strong>de</strong> 1 bit con las siguientes entradas <strong>de</strong> control: Wen, Clear y Complemento.La señal Clear pone el registro a cero y la señal Complemento invierte la salida (cambia el 0 por el1 y viceversa).1 Para distinguir las señales <strong>de</strong> control <strong>de</strong> las <strong>de</strong>más, se dibujan en color ver<strong>de</strong>.


RegistrosD[n−1..0]nDQnclkQ[n−1..0]D[n−1..0]4 5 7WenClearclkClearWenQ[n−1..0]2 05 7Registro <strong>de</strong> n bits con habilitación <strong>de</strong> escritura y Clear.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.7/47En la figura se representa un registro <strong>de</strong> n bits con dos señales <strong>de</strong> control: Wen para habilitar laescritura y Clear para poner a cero el registro. Ambas señales son síncronas, es <strong>de</strong>cir, sólo actúan enlos flancos <strong>de</strong> subida <strong>de</strong>l reloj. En el cronograma adjunto se muestra un ejemplo <strong>de</strong> funcionamiento.Como se pue<strong>de</strong> apreciar, sólo en los flancos <strong>de</strong> reloj en los que la señal Wen está activa se escribela entrada en el registro. De la misma manera, en los flancos <strong>de</strong> subida en los que la señal Clearesté activa se pondrá a cero el registro.Existen algunos registros en los que incorporan una señal <strong>de</strong> Reset. El funcionamiento <strong>de</strong>dicha señal es igual al <strong>de</strong> Clear, salvo que es asíncrona. En estos circuitos el contenido <strong>de</strong>l registrose pone a cero en cuanto la señal <strong>de</strong> Reset se activa.Nótese que para simplificar el diagrama, la entrada y salida <strong>de</strong> datos, que está formada porn cables, se ha representado mediante una sola línea. Para indicar que dicha línea representa enrealidad n cables, se ha colocado una pequeña línea inclinada y encima <strong>de</strong> dicha línea una n. Comose verá más a<strong>de</strong>lante, esto es lo que se conoce como un bus.Un ejemplo <strong>de</strong> registro <strong>de</strong> 8 bits comercial es el 74HC377, cuya hoja <strong>de</strong> características estádisponible en http://www-s.ti.com/sc/ds/sn74hc377.pdf. Dicho circuito tiene sólo una señal <strong>de</strong>control para habilitar la escritura, a la cual se <strong>de</strong>nomina CLKEN (<strong>de</strong>l inglés CLock ENable) enlugar <strong>de</strong> Wen, aunque su funcionamiento es el mismo, tal como se pue<strong>de</strong> apreciar en la tabla <strong>de</strong>verdad <strong>de</strong>l dispositivo.


¡¡¡RegistrosLimitaciones <strong>de</strong> los registros:Tiempo <strong>de</strong> establecimiento (Setup).Tiempo <strong>de</strong> mantenimiento (Hold).Tiempo <strong>de</strong> propagación.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.8/47Los registros son entes físicos y por tanto están sujetos a una serie <strong>de</strong> limitaciones. Las quemás nos interesan son las limitaciones en cuanto a la respuesta temporal:EjercicioTiempo <strong>de</strong> establecimiento (Setup). Es el tiempo que ha <strong>de</strong> estar la señal estable en laentrada <strong>de</strong>l flip-flop antes <strong>de</strong>l flanco <strong>de</strong>l reloj para que éste la lea correctamente.Tiempo <strong>de</strong> mantenimiento (Hold). Es el tiempo que ha <strong>de</strong> permanecer la señal <strong>de</strong> entradaestable <strong>de</strong>spués <strong>de</strong>l flanco <strong>de</strong>l reloj para que ésta se almacene correctamente.Tiempo <strong>de</strong> propagación. Es el tiempo que tarda una nueva señal <strong>de</strong> entrada en aparecer enlas salidas <strong>de</strong>l flip-flop <strong>de</strong>spués <strong>de</strong>l flanco <strong>de</strong>l reloj.A partir <strong>de</strong> la hoja <strong>de</strong> características <strong>de</strong>l circuito 74HC377, i<strong>de</strong>ntifique los tiempos <strong>de</strong> establecimiento(setup), mantenimiento (hold) y propagación <strong>de</strong>l registro.


<strong>Elementos</strong> <strong>de</strong> procesoSon los “músculos” <strong>de</strong>l or<strong>de</strong>nador. Ejemplos:ALU.Multiplicador.Unidad <strong>de</strong> punto flotante.En su mayoría son elementos combinacionales.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.9/47En los elementos <strong>de</strong> proceso es don<strong>de</strong> tienen lugar todas las <strong>operaciones</strong> realizadas por elor<strong>de</strong>nador sobre los datos.La mayor parte <strong>de</strong> estos elementos <strong>de</strong> proceso son circuitos combinacionales. Sin embargo,algunos elementos complejos como los multiplicadores, se basan en un algoritmo que necesitavarios pasos para realizar sus cálculos. Por ello es necesario incluir una pequeña unidad <strong>de</strong> controlsecuencial para controlar dicho algoritmo <strong>de</strong> cálculo.De todos los elementos <strong>de</strong> proceso, el fundamental es la ALU, el cual pasamos a estudiar conmayor <strong>de</strong>talle a continuación.


ALUA01ResBOpALU con AND y OR.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.10/47En la figura se representa una ALU simple <strong>de</strong> un bit. Es tan simple que sólo realiza dos<strong>operaciones</strong>: AND y OR. 1 Como se pue<strong>de</strong> apreciar, el circuito calcula constantemente ambas <strong>operaciones</strong>,pero sólo una <strong>de</strong> ellas aparece en la salida Res, en función <strong>de</strong> la señal Op. Dicha señales por tanto una señal <strong>de</strong> control y por eso se ha dibujado con un color distinto a las <strong>de</strong>más.EjercicioEscriba la tabla <strong>de</strong> verdad para la ALU <strong>de</strong> la figura.1 Sería por tanto más apropiado llamarla LU (Logic Unit).


ALUACinB012Res+OpICAI<strong>de</strong>aCoutALU con AND, OR y suma.Estructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.11/47Ampliar la ALU anterior para incluir la suma es bastante sencillo. Basta para ello añadir unsumador <strong>de</strong> 1 bit completo y ampliar el multiplexor <strong>de</strong> salida con una entrada más para po<strong>de</strong>r seleccionarentre AND, OR y suma. Como consecuencia <strong>de</strong> ampliar el multiplexor, ha sido necesarioañadir un bit adicional a la señal <strong>de</strong> control Op.El sumador es idéntico al estudiado en el curso <strong>de</strong> tecnología <strong>de</strong> computadores. Como recordará,un sumador <strong>de</strong> 1 bit tiene tres entradas y dos salidas. Las entradas son los dos operandos (Ay B en la figura) y la entrada <strong>de</strong> acarreo (Cin). Las salidas son el resultado <strong>de</strong> la suma (Res) y elacarreo <strong>de</strong> salida (Cout).Para construir una ALU <strong>de</strong> n bits, basta con enca<strong>de</strong>nar n ALUs <strong>de</strong> 1 bit, tal como se verá acontinuación.EjercicioEn algunos sistemas es necesario que la ALU genere a su salida un cero. Esto pue<strong>de</strong> ser útilpara poner a cero una posición <strong>de</strong> memoria o un registro. Modifique la ALU anterior para conseguireste tipo <strong>de</strong> ALU. ¿Es necesario añadir más líneas <strong>de</strong> control?


ALUA0B0CinA CinALU0 ResB Cout OpR0A1B1A CinALU1 ResB Cout OpR1A31B31A CinALU31 ResB Cout OpR31ICAI<strong>de</strong>aCoutOpALU <strong>de</strong> 32 bits.Estructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.12/47Como se pue<strong>de</strong> apreciar en la figura, para construir una ALU <strong>de</strong> n bits, basta con enca<strong>de</strong>narn ALUs <strong>de</strong> 1 bit. Para que el sumador funcione correctamente, es necesario conectar los acarreos<strong>de</strong> salida y <strong>de</strong> entrada <strong>de</strong> cada una <strong>de</strong> las etapas, <strong>de</strong> forma que el acarreo <strong>de</strong> salida <strong>de</strong> la etapa iha <strong>de</strong> estar conectado al acarreo <strong>de</strong> entrada <strong>de</strong> la etapa i 1. Esta configuración <strong>de</strong> sumador se<strong>de</strong>nomina sumador con propagación <strong>de</strong> acarreo. Dicha configuración es la más simple, aunquetambién es muy lenta, pues, en el caso más <strong>de</strong>sfavorable, el acarreo ha <strong>de</strong> propagarse por las 32etapas. Existen configuraciones con predicción <strong>de</strong> acarreo que si bien precisan más puertas lógicas,son un or<strong>de</strong>n <strong>de</strong> magnitud más rápidas. En (Patterson y Hennessy, 2000) se <strong>de</strong>scribe en <strong>de</strong>talle laconstrucción <strong>de</strong> un sumador <strong>de</strong> 32 bits con predicción <strong>de</strong> acarreo.Obviamente, la representación <strong>de</strong> la ALU mostrada en la figura no es la más cómoda. En lasiguiente transparencia se muestra el símbolo usado habitualmente para representar una ALU.EjercicioLa ALU mostrada en la figura está aún incompleta: ¡no sabe restar! Modifique el circuito paraconstruir una ALU con las <strong>operaciones</strong> AND, OR, Suma y Resta <strong>de</strong> números en complemento a2. Para ello recuer<strong>de</strong> que restar en complemento a 2 es lo mismo que sumar el complemento a 2<strong>de</strong>l sustraendo. Recuer<strong>de</strong> también que el complemento a 2 se obtiene invirtiendo todos los bits ysumando 1, es <strong>de</strong>cir, ¡ b ¢ b 1. Pista: no hace falta usar otro sumador adicional para sumar 1.


ALUA32OpCero 00ALU Res 0132Desb. 1011B32Cout OpALU <strong>de</strong> 32 bits.ResANDORSumaRestaICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.13/47Se han añadido a la ALU anterior dos salidas adicionales, una que se activa cuando el resultadovale cero (Cero) y otra que se activa cuando ocurre un <strong>de</strong>sbordamiento (Desb.). Recuer<strong>de</strong> que el<strong>de</strong>sbordamiento ocurre cuando al sumar dos números en complemento a 2 <strong>de</strong>l mismo signo, elresultado es <strong>de</strong>l signo contrario, lo cual quiere <strong>de</strong>cir que el resultado es mayor que el rango máximo<strong>de</strong> representación.En la figura también se ha incluido una tabla que indica la operación realizada por la ALU enfunción <strong>de</strong> la señal <strong>de</strong> control Op. Se ha añadido la operación resta que, aunque no estaba presenteen el diseño <strong>de</strong> la página 12, se había <strong>de</strong>jado como ejercicio.Ejercicios1. ¿Cómo se pue<strong>de</strong> realizar el circuito <strong>de</strong> <strong>de</strong>tección <strong>de</strong> cero?2. Si se suman dos números sin signo, ¿cómo se pue<strong>de</strong> <strong>de</strong>tectar que el resultado está fuera <strong>de</strong>rango?


¡¡¡<strong>Elementos</strong> <strong>de</strong> interconexiónPermiten el trasiego <strong>de</strong> datos entre los distintoselementos <strong>de</strong>l camino <strong>de</strong> datos. Existen 3 tipos:Buses.Multiplexores.Buses triestado.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.14/47Los últimos elementos estudiados <strong>de</strong>l camino <strong>de</strong> datos, aunque no por ello menos importantes,son los elementos que permiten interconectar entre sí los registros y los elementos <strong>de</strong> proceso.Como se verá más a<strong>de</strong>lante, el avance <strong>de</strong> los datos por el camino <strong>de</strong> datos no es siempre fijo, sinoque <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l proceso que haya que efectuar sobre los mismos. Por tanto es necesario disponer<strong>de</strong> elementos que permitan que los datos fluyan <strong>de</strong>s<strong>de</strong> una unidad hacia otras en función <strong>de</strong> unaserie <strong>de</strong> señales <strong>de</strong> control.Existen tres tipos:Buses.Multiplexores.Buses triestado.los cuales se pasan a discutir en mayor <strong>de</strong>talle a continuación.


BusesBus: Agrupación <strong>de</strong> n conexiones relacionadaslógicamente. Ejemplos:Los 32 cables que permiten enviar un número <strong>de</strong>32 bits entre un registro y la entrada <strong>de</strong> la ALU.Los 16 cables que permiten enviar una direccióna la memoria RAM.Sólo permiten realizar conexiones <strong>de</strong>s<strong>de</strong> un emisor auno o varios receptores.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.15/47Un bus no es más que una agrupación <strong>de</strong> una serie <strong>de</strong> conexiones relacionadas <strong>de</strong> algunamanera. Por ejemplo, si queremos enviar un número <strong>de</strong> 32 bits entre un registro y la entrada A <strong>de</strong>la ALU, será necesario conectar el bit 0 <strong>de</strong> la salida <strong>de</strong>l registro con el bit 0 <strong>de</strong> la entrada A, elbit 1 <strong>de</strong> la salida con el bit 1 <strong>de</strong> la entrada, y así sucesivamente. Obviamente tanto <strong>de</strong>s<strong>de</strong> el punto<strong>de</strong> vista <strong>de</strong> dibujar un diagrama, como <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista conceptual, es un poco engorrososeguirle la pista a tanto cablecito. Por ello, es mucho más ventajoso agrupar todos estos cables enun bus <strong>de</strong> 32 bits.El uso más común <strong>de</strong> un bus es la interconexión permanente <strong>de</strong> un emisor con un receptor.Sin embargo también pue<strong>de</strong> conectarse un único emisor a varios receptores. En este último caso,dado que la información <strong>de</strong>l emisor está siempre disponible en el bus, será normalmente necesarioincluir una señal <strong>de</strong> control <strong>de</strong> la escritura (Wen) en los receptores.Si queremos conectar varios emisores a un mismo bus, entonces es necesario usar un multiplexoro un bus triestado, que se estudian a continuación.


MultiplexoresPermiten encaminar varias líneas <strong>de</strong> entrada en unaúnica línea <strong>de</strong> salida.Sólo está conectada en cada momento una entradacon la salida, en función <strong>de</strong> una señal <strong>de</strong> control.Existen multiplexores <strong>de</strong> n bits.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.16/47Dentro <strong>de</strong> un or<strong>de</strong>nador es muy frecuente tener que conectar la salida <strong>de</strong> varios dispositivos ala entrada <strong>de</strong> uno solo, <strong>de</strong> forma que en función <strong>de</strong> la operación que se <strong>de</strong>see realizar se conectaráuna u otra <strong>de</strong> las salidas con la entrada. 1 Para realizar esta tarea <strong>de</strong>ntro <strong>de</strong> un circuito integrado, loselementos idóneos son los multiplexores.Los multiplexores <strong>de</strong> n bits permiten encaminar varios buses <strong>de</strong> n bits a un único bus <strong>de</strong> salida,también <strong>de</strong> n bits.En la siguiente transparencia se muestra un ejemplo para aclarar las i<strong>de</strong>as.1 Obviamente no se pue<strong>de</strong>n conectar simultáneamente dos salidas a una misma entrada, puesse estaría formando un estupendo cortocircuito.


MultiplexoresR1R232320132selRALU32CeroResDesb.B32Cout OpEjemplo <strong>de</strong> ruta <strong>de</strong> datos con Multiplexor.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.17/47Supongamos que disponemos <strong>de</strong> dos registros (R1 y R2) y se <strong>de</strong>sea po<strong>de</strong>r sumar el contenido<strong>de</strong> dichos registros a un valor B. Afortunadamente unas veces tenemos que sumar el contenido <strong>de</strong>R1 a B y otras el contenido <strong>de</strong> R2 a B. Esto nos permite usar una sola ALU y seleccionar cuál <strong>de</strong>los dos registros se emplea en la suma mediante un multiplexor. Así, cuando la señal <strong>de</strong> control<strong>de</strong>l multiplexor (selR) valga 0, la entrada superior <strong>de</strong> la ALU estará conectada con la salida <strong>de</strong>lregistro R1 y por tanto a la salida <strong>de</strong> la ALU dispondremos <strong>de</strong> la suma entre el contenido <strong>de</strong> R1y la entrada B; obviamente <strong>de</strong>spués <strong>de</strong>l retardo producido por el multiplexor y por la ALU. Pararealizar la suma entre el contenido <strong>de</strong> R2 y B bastará con poner a uno la señal selR y esperarse eltiempo necesario.


Bus triestadoUn único bus conecta todos los elementos:R1 R2 R3Wen Oen Wen Oen Wen OennnnnEs necesario establecer un mecanismo para que sóloun dispositivo gobierne el bus en cada instante.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.18/47Con un bus triestado, es posible interconectar un gran número <strong>de</strong> elementos utilizando pocalógica. Sin embargo, tal como se ha dicho anteriormente, es una estructura difícil <strong>de</strong> comprobar ypor tanto se evita en la medida <strong>de</strong> lo posible <strong>de</strong>ntro <strong>de</strong> los circuitos integrados. No obstante su usofuera <strong>de</strong> la CPU es fundamental para conectar a ésta con la memoria y los dispositivos <strong>de</strong> entradasalida. En este caso se usa un bus normal para las direcciones, pues sólo la CPU escribe y todos loschips <strong>de</strong> memoria leen. El bus <strong>de</strong> datos en cambio ha <strong>de</strong> ser un bus triestado, pues el mismo bus seusa tanto para enviar datos por la CPU como para recibirlos.Este tipo <strong>de</strong> buses requieren dispositivos especiales que incorporen dos señales <strong>de</strong> control:Wen para indicarles cuándo han <strong>de</strong> almacenar el dato que hay en el bus y Oen (Output enable) paraindicarles que pue<strong>de</strong>n enviar un dato al bus.La señal Oen es la que permite que un dispositivo sea el que escribe en el bus mientras los<strong>de</strong>más leen. Obviamente es necesario que sólo una señal Oen esté activa en cada instante, pues<strong>de</strong> lo contrario se producirá un cortocircuito en el bus con el consiguiente comportamiento erróneo.A continuación se muestra cómo se construye un registro <strong>de</strong> 1 bit con salida triestado.


Bus triestadoDWenclk01DQBusOenRegistro <strong>de</strong> un bit con habilitación <strong>de</strong> escritura.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.19/47Como se pue<strong>de</strong> apreciar, se ha tomado el registro con habilitación <strong>de</strong> escritura mostrado anteriormentey se le ha añadido una puerta triestado para conectar la salida <strong>de</strong>l flip-flop con el bus.De esta manera, sólo cuando la señal Oen esté activa, dicha salida se conectará al bus y el resto <strong>de</strong>dispositivos podrán leer su valor. Mientras la señal Oen esté inactiva, el bus estará libre para po<strong>de</strong>rser usado por el resto <strong>de</strong> dispositivos. Para guardar en el registro el valor <strong>de</strong>l bus, basta con activarla señal <strong>de</strong> Wen y esperar al siguiente flanco <strong>de</strong> subida <strong>de</strong>l reloj.Obviamente, tal como se ha comentado anteriormente hay que ser muy cuidadoso cuandose diseña un sistema basado en bus triestado, pues las señales <strong>de</strong> control <strong>de</strong> los registros han <strong>de</strong>estar perfectamente sincronizadas <strong>de</strong> forma que sólo un registro escriba en el bus y sólo quienessean <strong>de</strong>stinatarios <strong>de</strong>l dato que aparece en el bus lo lean. Veamos un cronograma <strong>de</strong> ejemplo en lasiguiente transparencia:


¡¡¡Bus triestado. TemporizaciónclkOenR1Bus[n−1..0]7WenR2D_R2[n−1..0]47Q_R2[n−1..0]47Temporización <strong>de</strong> una transferencia.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.20/47En la figura se muestra el cronograma <strong>de</strong> una transferencia en la que el contenido <strong>de</strong>l registroR1 se copia en el registro R2. El circuito usado es el mostrado en la transparencia <strong>de</strong> la página 18.La señal OenR1 activa la puerta triestado <strong>de</strong>l registro R1, <strong>de</strong> forma que, <strong>de</strong>spués <strong>de</strong>l retardo <strong>de</strong>la puerta, el contenido <strong>de</strong>l registro (un 7 por ejemplo) estará en el bus. Conviene <strong>de</strong>stacar quecuando ningún registro tiene activada su señal Oen, el bus estará en alta impedancia, es <strong>de</strong>cir, noestá a un valor (0 o 1) concreto, lo cual se representa en el cronograma como una línea entre 0y 1. La activación <strong>de</strong> la señal WenR2 hace que el contenido <strong>de</strong>l bus aparezca a la entrada <strong>de</strong>lregistro R2, obviamente <strong>de</strong>spués <strong>de</strong>l retardo <strong>de</strong>l multiplexor y <strong>de</strong>l retardo <strong>de</strong> propagación <strong>de</strong>l bus.En el siguiente flanco <strong>de</strong> reloj el registro R2 copiará los datos presentes en su entrada y a partir<strong>de</strong> entonces se pue<strong>de</strong>n <strong>de</strong>sactivar las dos señales <strong>de</strong> control OenR1 y WenR2. La <strong>de</strong>sactivación <strong>de</strong>OenR1 hace que el bus vuelva a su estado <strong>de</strong> alta impedancia y por tanto pueda ser usado para otratransferencia.Ejercicios¿Por qué al <strong>de</strong>sactivar la señal OenR1 y entrar el bus en alta impedancia la entrada D <strong>de</strong>lregistro R2 sigue teniendo un 7?¿Qué ocurre si en el ejemplo anterior se activan a la vez las señales <strong>de</strong> Wen <strong>de</strong> losregistros R2 y R3?¿Y si se activan las señales Oen <strong>de</strong> los registros R1 y R3?


Metodología <strong>de</strong> temporización por flancoCamino <strong>de</strong> datos = registros + elementos <strong>de</strong> proceso:D[n−1..0]nDQnCombi.nDQnQ[n−1..0] clkWENRaWENRbQRa[0]DRb[0]QRb[0]clkt pt ct pHan <strong>de</strong> cumplirse las limitaciones temporales <strong>de</strong> losregistros.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.21/47En la transparencia se muestra un esquema general <strong>de</strong> una etapa <strong>de</strong> un camino <strong>de</strong> datos. Dichaetapa está formada por un registro encargado <strong>de</strong> mantener el dato estable 1 mientras el elemento<strong>de</strong> proceso combinacional realiza su trabajo. El resultado se copiará en el siguiente registro, <strong>de</strong>forma que pueda ser usado por la siguiente etapa <strong>de</strong>l camino <strong>de</strong> datos, que no se ha mostrado parasimplificar el esquema.La metodología <strong>de</strong> temporización por flanco es la más fácil <strong>de</strong> manejar y aunque en algunossistemas se usan metodologías más complejas, en este curso va a ser la que vamos a estudiar. En lafigura se muestra un cronograma con la evolución <strong>de</strong>l bit 0 <strong>de</strong>l dato. Si suponemos que la entrada 0<strong>de</strong>l registro Ra vale 1, cuando ocurra el flanco ascen<strong>de</strong>nte <strong>de</strong>l reloj dicho registro leerá su entraday la copiará en su salida, aunque dicho proceso le lleva un tiempo <strong>de</strong> propagación t p . Una vezque el dato aparece en su salida, éste se propagará por el circuito combinacional hasta llegar a laentrada <strong>de</strong>l registro Rb, lo cual será <strong>de</strong>spués <strong>de</strong> un tiempo t c . Como recordará, para que un registrofuncione correctamente, su entrada ha <strong>de</strong> estar estable un poco antes (como mínimo el tiempo <strong>de</strong>establecimiento t e ) <strong>de</strong>l flanco <strong>de</strong> reloj. Por tanto el periodo <strong>de</strong> reloj ha <strong>de</strong> ser mayor que:T clk t p t c t eEjercicioTeniendo en cuenta que el tiempo <strong>de</strong> mantenimiento es siempre menor que el <strong>de</strong> propagación.¿Pue<strong>de</strong> ocurrir algún fallo en este tipo <strong>de</strong> circuito a causa <strong>de</strong>l tiempo <strong>de</strong> mantenimiento?1 Por dato estable se quiere <strong>de</strong>cir que no varíe.


¡¡¡¡¡¡Transferencia <strong>de</strong> registros. Notaciónsímbolo Descripción Ejemploa-z,A-Z,_,0-9 Nombre registro Ra, CP(XX ) Contenido <strong>de</strong>l registro XX (Ra)XX(m..n)XX(m:n) Bits m a n <strong>de</strong>l reg. XX Ra(m..n)Transferencia CP (Ra)((XX)) Contenido <strong>de</strong>l con. <strong>de</strong> XX ((RDIM))XX complemento <strong>de</strong> XX RaICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.22/47Hasta ahora, cuando ha sido necesario <strong>de</strong>scribir una transferencia <strong>de</strong> datos entre registros seha usado lenguaje natural, lo cual si bien es muy claro, es un poco engorroso. Por tanto se hacenecesario <strong>de</strong>sarrollar una notación que permita transmitir la misma información pero <strong>de</strong> una formamucho más compacta. Dicha notación es la notación <strong>de</strong> transferencia entre registros,La primera línea indica que para nombrar el registro en sí, se utiliza una etiquetaalfanumérica, con las mismas restricciones que los nombres <strong>de</strong> variables <strong>de</strong> los lenguajes<strong>de</strong> programación.La segunda línea indica la forma <strong>de</strong> referirse al contenido <strong>de</strong>l registro, es <strong>de</strong>cir, al númerobinario que está almacenado en él.la tercera línea ilustra la notación empleada para referirse a un rango <strong>de</strong> bits <strong>de</strong>l contenido<strong>de</strong>l registro. Así, si Ra es un registro <strong>de</strong> 32 bits, Ra(7..0) es el byte menos significativo <strong>de</strong>lcontenido <strong>de</strong>l registro.EjercicioPara indicar que se realice una transferencia entre dos registros se usa el ¡ operador . Así,cuando se CP¡ escribe (Ra), se quiere <strong>de</strong>cir que se transfiera el contenido <strong>de</strong>l registro Raal registro CP.El operador () se pue<strong>de</strong> anidar. Así, ((RDIM)) quiere <strong>de</strong>cir el contenido <strong>de</strong> la posición <strong>de</strong>memoria cuya dirección es el valor almacenado en el registro RDIM.Por último, el complemento <strong>de</strong> un registro consiste en invertir su contenido bit a bit.Si la instrucción que se <strong>de</strong>sea ejecutar está en una dirección <strong>de</strong> memoria almacenada en elregistro CP, ¿cómo escribiría la transferencia <strong>de</strong> dicha instrucción al registro RI?


Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nesCada instrucción se <strong>de</strong>scompone en varias fases.Cada fase consta <strong>de</strong> 1 o varias µ<strong>operaciones</strong>.En cada µoperación se activan 1 o variasµór<strong>de</strong>nes (señales <strong>de</strong> control).ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.23/47Tal como se estudió en el tema anterior, cada instrucción ejecutada por el procesador se <strong>de</strong>scomponeen una serie <strong>de</strong> etapas o fases. En cada una <strong>de</strong> estas etapas es necesario realizar una serie<strong>de</strong> tareas (µ<strong>operaciones</strong>), que en su mayoría serán transferencia <strong>de</strong> registros, para realizar el proceso<strong>de</strong> la etapa. Por último, para realizar una µoperación es necesario activar una serie <strong>de</strong> señales<strong>de</strong> control (µór<strong>de</strong>nes) <strong>de</strong> forma que los elementos implicados <strong>de</strong>l camino <strong>de</strong> datos cumplan con sutarea.


¡¡¡¡¡Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nesLas fases en las que se <strong>de</strong>scompone la instrucciónson:Ciclo <strong>de</strong> captación.Ciclo <strong>de</strong> indirección.Ciclo <strong>de</strong> operación.Ciclo <strong>de</strong> escritura.Ciclo <strong>de</strong> excepción.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.24/47Tal como se vio en el tema anterior, una instrucción genérica <strong>de</strong> un computador CISC se<strong>de</strong>scompone en:Ciclo <strong>de</strong> captación. Se lee la instrucción <strong>de</strong> la memoria.Ciclo <strong>de</strong> indirección. Si es necesario leer operandos <strong>de</strong> memoria, se calcula su dirección yse leen los datos.Ciclo <strong>de</strong> operación. Una vez que estén disponibles los datos, se pue<strong>de</strong> realizar laoperación requerida con ellos.Ciclo <strong>de</strong> escritura. Si es necesario escribir el resultado en memoria, al igual que en el ciclo<strong>de</strong> indirección, se calcula su dirección y se escribe el dato.Ciclo <strong>de</strong> excepción. Si ocurre algún error en la ejecución <strong>de</strong> la instrucción o si en el transcurso<strong>de</strong> la ejecución <strong>de</strong> la instrucción se produce una petición <strong>de</strong> interrupción externa, elprocesador realiza este ciclo. En caso contrario se vuelve al ciclo <strong>de</strong> captación.


¡¡¡Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nesCada fase se divi<strong>de</strong> en minitareas que requieren unaserie <strong>de</strong> µ<strong>operaciones</strong>.Por ejemplo, para sumar dos datos situados en RDAMy ACC:minitareaµ<strong>operaciones</strong>Dato 1 (ACC) al REG1 <strong>de</strong> la ALU REG1 (ACC)Dato 2 (RDAM) al REG2 <strong>de</strong> la ALU REG2 (RDAM)Sumar y guardar resultado en ACC ACC (REG1)+(REG2)ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.25/47En cada fase <strong>de</strong> la instrucción se realiza una tarea específica que compren<strong>de</strong> la realización<strong>de</strong> una serie <strong>de</strong> “minitareas”. Para ejecutar cada “minitarea” es necesario realizar una o varias<strong>operaciones</strong> “atómicas” <strong>de</strong>nominadas µ<strong>operaciones</strong>. Por ejemplo, en el ciclo <strong>de</strong> operación <strong>de</strong> lainstrucción ADD (suma) es necesario sumar el dato almacenado en el acumulador (ACC) con eldato que se acaba <strong>de</strong> leer <strong>de</strong> memoria en el ciclo anterior, que estará almacenado en RDAM. 1 Parallevar a cabo esta tarea, es necesario:EjercicioCopiar el contenido <strong>de</strong>l acumulador en el registro 1 <strong>de</strong> entrada a la ALU, lo cual enlenguaje <strong>de</strong> transferencia <strong>de</strong> registros se pue<strong>de</strong> expresar REG1¡como: (ACC).Copiar el contenido <strong>de</strong>l RDAM en el registro 2 <strong>de</strong> entrada a la REG2¡ALU: (RDAM).Una vez que están los dos datos en las dos entradas <strong>de</strong> la ALU, po<strong>de</strong>mos sumar ambos datos<strong>de</strong> entrada y guardar el resultado en el ACC¡acumulador: (REG1)+(REG2). Obviamente,esta última µoperación no pue<strong>de</strong> realizarse antes <strong>de</strong> que hayan finalizado las dos anteriores,ya que estaríamos sumando otra cosa.¿Se podrían realizar las dos primeras µ<strong>operaciones</strong> en paralelo? ¿Por qué? En caso negativo,modifique el camino <strong>de</strong> datos <strong>de</strong>l computador elemental para que sea posible realizar las dosprimeras <strong>operaciones</strong> en paralelo.1 Véase la estructura <strong>de</strong>l computador elemental <strong>de</strong>l tema anterior.


¡¡Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nesLa ejecución <strong>de</strong> cada µoperación implica laactivación <strong>de</strong> una serie <strong>de</strong> µór<strong>de</strong>nes.Las µór<strong>de</strong>nes controlan el camino <strong>de</strong> datos.La emisión <strong>de</strong> µór<strong>de</strong>nes es responsabilidad <strong>de</strong> launidad <strong>de</strong> control.µoperaciónµor<strong>de</strong>nREG1 (ACC) OenACC, WenR1ACC (REG1)+(REG2) OpALU=SUMA, WenACCICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.26/47Para ejecutar cada µoperación, es necesario activar una serie <strong>de</strong> señales <strong>de</strong> control que hacenque el camino <strong>de</strong> datos realice la tarea esperada. Dichas señales <strong>de</strong> control se <strong>de</strong>nominan tambiénµór<strong>de</strong>nes. La emisión <strong>de</strong> dichas µór<strong>de</strong>nes ha <strong>de</strong> estar perfectamente sincronizada para que el comportamientosea el a<strong>de</strong>cuado. La responsabilidad <strong>de</strong> dicha emisión es la unidad <strong>de</strong> control, la cuallas genera en función <strong>de</strong> la µoperación en curso.Siguiendo con el ejemplo anterior, las µór<strong>de</strong>nes asociadas a cada µoperación son:Ejercicio(ACC). Para realizar esta µoperación, es necesario habilitar la salida <strong>de</strong>l registroREG1¡ACC para que su contenido aparezca en el bus triestado y habilitar la escritura en elregistro REG1, <strong>de</strong> forma que en siguiente flanco <strong>de</strong> reloj se capture el dato presente en elbus. Esto se consigue activando las señales OenACC y WenR1.(REG1)+(REG2). En este caso es necesario actuar sobre la señal <strong>de</strong> control Op <strong>de</strong>ACC¡la ALU para que realice la operación suma y activar la señal <strong>de</strong> habilitación <strong>de</strong> escrituraWen <strong>de</strong>l registro ACC para que en el flanco <strong>de</strong> reloj capture el dato presente a la salida <strong>de</strong> laALU. Ambas <strong>operaciones</strong> se consiguen haciendo OpALU=SUMA y activando WenACC.SUMA es el valor binario <strong>de</strong> la señal <strong>de</strong> control Op <strong>de</strong> la ALU que hace que ésta sume. Sise usa la ALU mostrada en la página 13, SUMA tendrá que ser igual a 10b.¿Cuanto ha <strong>de</strong> durar cada µor<strong>de</strong>n?


Instrucciones, µ<strong>operaciones</strong> y µór<strong>de</strong>nesInstrucción Ciclo µoperación µor<strong>de</strong>n Ciclo relojCicloBásico <strong>de</strong>InstrucciónCiclo <strong>de</strong>CapturaCiclo <strong>de</strong>IndirecciónCiclo <strong>de</strong>OperaciónCiclo <strong>de</strong>EscrituraCiclo <strong>de</strong>Excepciónµopµop µopµop µopµopµopµop µopµopµopµopµop µopResumenµorµorµorµorµorµorµorµorµorµorµorµorµorµorµor µorµor µorT1T2T3T4T5T6T7T8T9T10ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.27/47En la transparencia se muestra una figura que resume todo lo anterior: Cada instrucción se<strong>de</strong>scompone en una serie <strong>de</strong> fases, cada fase en una serie <strong>de</strong> µ<strong>operaciones</strong> y en cada µoperación launidad <strong>de</strong> control genera una serie <strong>de</strong> µór<strong>de</strong>nes que controlan el camino <strong>de</strong> datos para la ejecución<strong>de</strong> la µoperación.


¡¡¡Interfaz con el exteriorLa CPU necesita instrucciones y datos.Memoria: Instrucciones y datos.E/S: Datos.Interfaz:Bus <strong>de</strong> direcciones.Bus <strong>de</strong> datos.Bus <strong>de</strong> control.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.28/47La CPU no es un ente aislado <strong>de</strong>ntro <strong>de</strong>l or<strong>de</strong>nador, sino que necesita el apoyo <strong>de</strong> varios componentespara su funcionamiento. Aparte <strong>de</strong> la fuente <strong>de</strong> alimentación, sin la cual no funcionaríasu circuitería, necesita una serie <strong>de</strong> dispositivos externos que le suministren un flujo continuo <strong>de</strong>instrucciones y datos.Las instrucciones <strong>de</strong>l programa se almacenan en una memoria RAM, <strong>de</strong> la cual la CPU lasobtiene or<strong>de</strong>nadamente. Los datos, en su mayoría, estarán almacenados también en memoria RAM,junto con el programa, aunque no revueltos con él. La CPU también pue<strong>de</strong> obtener sus datos <strong>de</strong> lasunida<strong>de</strong>s <strong>de</strong> entrada/salida, aunque como se verá al final <strong>de</strong>l curso no es lo más común.Para comunicarse con estos dispositivos, cada CPU dispone <strong>de</strong> un interfaz, que si bien no esidéntico para todas, sí tiene bastantes elementos comunes. Todas las CPU tienen al menos:Un bus <strong>de</strong> direcciones. Este bus es unidireccional, con sentido <strong>de</strong>s<strong>de</strong> la CPU hacia lamemoria (es <strong>de</strong>cir, la CPU escribe en el bus y la memoria lo lee). Mediante este bus laCPU le indica a la memoria cuál es la posición que <strong>de</strong>sea leer o escribir.Un bus <strong>de</strong> datos. Este bus es bidireccional (triestado) y por él circulan los datos entre lamemoria y la CPU. Cuando la CPU quiere escribir un dato, activa sus salidas y pone eldato a escribir en el bus. La memoria entonces lee el dato y lo almacena en la direcciónindicada por el bus <strong>de</strong> direcciones. Cuando la CPU quiere leer un dato, es la salida <strong>de</strong> lamemoria la que se activa, apareciendo en el bus el dato almacenado en la posición <strong>de</strong>memoria cuya dirección está presente en el bus <strong>de</strong> direcciones. La CPU entonces lee eldato <strong>de</strong>l bus y lo almacena en un registro interno (p. ej. RDAM).El bus <strong>de</strong> control está formado por un conjunto <strong>de</strong> líneas que permiten a la CPU controlarla memoria y los dispositivos <strong>de</strong> E/S. Por ejemplo pue<strong>de</strong> incorporar una señal OenRAMpara activar la salida <strong>de</strong> la RAM, WenRAM para activar su escritura, etc.


Interfaz con el exteriorDos parámetros muy importantes <strong>de</strong> la organización<strong>de</strong> una CPU son:El ancho <strong>de</strong>l bus <strong>de</strong> direcciones: p bits.El ancho <strong>de</strong>l bus <strong>de</strong> datos: n bits.El primero influye sobre la capacidad <strong>de</strong> memoria <strong>de</strong>la CPU (direccionamiento).El segundo influye sobre sus prestaciones (ancho <strong>de</strong>banda, juego <strong>de</strong> instrucciones. . . ).ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.29/47


Interfaz con el exteriorCapacidad <strong>de</strong> direccionamiento:p bits2 p posiciones <strong>de</strong> memoria.Ejemplos:p (bits) posiciones16 65.536 (64 kp)20 1.048.576 (1 Mp)32 4.294.967.296 (4 Gp)Ojo: rango dir. con 16 bits = 0 a 65535.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.30/47Si el bus <strong>de</strong> direcciones tiene p bits, 1 como con p bits se pue<strong>de</strong>n representar 2 p números, setienen 2 p posiciones distintas <strong>de</strong> memoria, <strong>de</strong>s<strong>de</strong> la 0 a la 2 p 1. ¡Por ejemplo, si la CPU tiene 16 líneas en el bus <strong>de</strong> direcciones, el número <strong>de</strong> posiciones <strong>de</strong>memoria direccionables será <strong>de</strong> 2 p 65.536 o para abreviar 64 kposiciones. 2 Obviamente, el rango¢<strong>de</strong> posiciones <strong>de</strong> memoria estará comprendido entre 0 y 65535.1 Por tanto estará constituido por p cables. Se dice entonces que el bus <strong>de</strong> direcciones tiene unancho <strong>de</strong> p bits.2 Recuer<strong>de</strong> que cuando se trata <strong>de</strong> números binarios, el prefijo k quiere <strong>de</strong>cir 1024 en lugar<strong>de</strong> 1.000. De la misma forma, el prefijo M quiere <strong>de</strong>cir 2 20 1.048.576 en lugar <strong>de</strong> ¢ 1.000.000y G es 2 30 1.073.741.824. Normalmente a estos prefijos se les <strong>de</strong>nomina kilo, Mega y Giga ¢aligual que a los prefijos <strong>de</strong> 1.000, 1.000.000 y 1.000.000.000. Esto da lugar a confusiones, a vecesmalintencionadas. Por ejemplo, los fabricantes <strong>de</strong> discos tienen la fea costumbre <strong>de</strong> especificar sustamaños en Megas o Gigas “<strong>de</strong>cimales” en lugar <strong>de</strong> “binarios”, con lo cual un usuario <strong>de</strong>spistadopue<strong>de</strong> comprarse un disco <strong>de</strong> 1 GB, y obtener 1.000.000.000 Bytes en lugar <strong>de</strong> 1.073.741.824 (un7.3 % menos, que no es poco). Otro ejemplo más fácil <strong>de</strong> comprobar es un diskette <strong>de</strong> 1,44 MB,que tiene exactamente 1.443.173 Bytes, en lugar <strong>de</strong> 1 44 2 20 ¢ 1.509.949. Para evitar este tipo <strong>de</strong>problemas hay autores que sugieren cambiar los nombres <strong>de</strong> los prefijos “binarios” por kibi, Mebi¡ ¢y Gibi (el “bi” es <strong>de</strong> binario). Lamentablemente su propuesta no ha tenido mucho éxito.


¡¡¡Interfaz con el exteriorHoy en día el ancho <strong>de</strong>l bus <strong>de</strong> datos suele sermúltiplo <strong>de</strong> 8 bits: 8, 16, 32, 64. . .Mayor ancho <strong>de</strong> busMayor ancho <strong>de</strong> banda.Un juego <strong>de</strong> instrucciones mayor.Mayor coste.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.31/47El hecho <strong>de</strong> que el ancho <strong>de</strong>l bus <strong>de</strong> datos sea múltiplo <strong>de</strong> 8 bits se <strong>de</strong>be a que normalmente lamemoria se divi<strong>de</strong> precisamente en bytes <strong>de</strong>s<strong>de</strong> un punto <strong>de</strong> vista lógico. Es <strong>de</strong>cir, cada posición<strong>de</strong> memoria lógica almacena un byte, <strong>de</strong> forma que sea capaz <strong>de</strong> contener un carácter ASCII oEBCDIC. 1 No obstante, aunque la CPU sólo necesite un byte, en la mayoría <strong>de</strong> las arquitecturas selee la palabra entera (<strong>de</strong>l ancho <strong>de</strong>l bus) y luego se selecciona el byte necesario <strong>de</strong>ntro <strong>de</strong> la CPU.Como se dijo anteriormente, un mayor ancho <strong>de</strong>l bus implica:Mayor ancho <strong>de</strong> banda. Por ancho <strong>de</strong> banda se entien<strong>de</strong> la cantidad <strong>de</strong> información que sepue<strong>de</strong> transmitir por el bus <strong>de</strong> datos por unidad <strong>de</strong> tiempo. Se suele medir en MB/s oGB/s. Así, si un sistema tiene un ancho <strong>de</strong> banda <strong>de</strong> ab MB/s, si se duplica el ancho <strong>de</strong> subus <strong>de</strong> datos, en un mismo periodo <strong>de</strong> tiempo estará transmitiendo el doble <strong>de</strong>información, con lo que el nuevo ancho <strong>de</strong> banda será 2 ab MB/s.¢Un juego <strong>de</strong> instrucciones mayor. Para mejorar la eficiencia, interesa que las instruccionesocupen una sola palabra. 2 Por tanto un mayor ancho <strong>de</strong>l bus significa que existen más bitspara codificar las instrucciones.Mayor coste. Aumentar el ancho <strong>de</strong>l bus significa aumentar el número <strong>de</strong> líneas <strong>de</strong> conexióncon la memoria. Obviamente esto no es gratis. Como siempre habrá que llegar a uncompromiso entre el presupuesto disponible y las prestaciones necesarias.1 En los primeros días <strong>de</strong> la informática existían códigos <strong>de</strong> caracteres <strong>de</strong> 6 bits (FIELDATA) ydichos or<strong>de</strong>nadores tenían buses <strong>de</strong> datos múltiplos <strong>de</strong> 6. Hoy en día, tal como se ha dicho antes,todos los or<strong>de</strong>nadores tienen buses con tamaños múltiplos <strong>de</strong> 8 bits, salvo algunos microcontroladores<strong>de</strong> 4 bits usados en aplicaciones empotradas (electrodomésticos, automóviles).2 De hecho en los computadores RISC todas las instrucciones ocupan una sola palabra. En losCISC, hay instrucciones complejas que requieren más <strong>de</strong> una palabra.


Interfaz con el exteriorEl tamaño <strong>de</strong> la memoria es por tanto 2 p pal n bits/pal.Ejemplos:Si p=10 y n=16 ¿tamaño?2 10 pal 16 bitspal¡ 16kb ¡ 16kb1Byte8bitsUna memoria <strong>de</strong> 64 kB con n=32 ¿p?¡ 2kBytes2 p ¡ 64kB 8 bitsByte32bits ¢ pal¡ 16kpal p ¡ log2£ 16kpal¤ ¡ 14linICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.32/47El tamaño <strong>de</strong> la memoria se mi<strong>de</strong> normalmente en kB (Kilo bytes) o en kb (kilo bits). 1Las <strong>de</strong>cisiones típicas <strong>de</strong>l diseñador son establecer qué cantidad <strong>de</strong> memoria y qué ancho <strong>de</strong>bus <strong>de</strong> datos necesita para calcular el número <strong>de</strong> líneas que se precisan en el bus <strong>de</strong> direcciones.Ejercicios1. Ha <strong>de</strong>cidido diseñar el microprocesador que va a <strong>de</strong>sbancar al Pentium 4. Para ello ha<strong>de</strong>cidido dotarlo <strong>de</strong> un bus <strong>de</strong> datos <strong>de</strong> 128 bits y quiere que tenga una capacidad <strong>de</strong> direccionamiento<strong>de</strong> 5 GB. ¿Cuantas líneas <strong>de</strong> direcciones necesitará su supermicroprocesador?Recuer<strong>de</strong> que 1 GB son 2 30 Bytes.2. Si un or<strong>de</strong>nador tiene un bus <strong>de</strong> datos <strong>de</strong> 16 líneas y un bus <strong>de</strong> direcciones <strong>de</strong> 19 líneas¿Cuál es la máxima cantidad <strong>de</strong> memoria que se le pue<strong>de</strong> conectar? Exprese dicha cantida<strong>de</strong>n bits y en Bytes.1 Ojo, es muy importante no confundir b (bits) con B (bytes).


Ejemplos <strong>de</strong> ejecución <strong>de</strong> instruccionesEn las siguientes transparencias se estudia laejecución <strong>de</strong> varias instrucciones.Se usa la arquitectura Elemental.Bus <strong>de</strong> datos: 16 bits. Bus <strong>de</strong> direcciones: 12 bits.El formato <strong>de</strong> la instrucción es:C.Op. Argumento15 12 11 0ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.33/47Para terminar este tema, se va a ilustrar la ejecución <strong>de</strong> varias instrucciones en una arquitecturaelemental como la discutida en el tema 1.Se supondrá que el bus <strong>de</strong> datos <strong>de</strong>l procesador es <strong>de</strong> 16 bits y que el bus <strong>de</strong> direcciones es <strong>de</strong>12 bits, lo que supone una capacidad <strong>de</strong> direccionamiento <strong>de</strong> ¡8 kB!El formato <strong>de</strong> instrucción reserva los 4 primeros bytes para el código <strong>de</strong> operación (C. Op.).Este código es el que interpreta la unidad <strong>de</strong> control para averiguar qué instrucción acaba <strong>de</strong> leery por tanto qué es lo que tiene que hacer. Nótese que al ser el código <strong>de</strong> operación <strong>de</strong> 4 bits, elnúmero máximo <strong>de</strong> instrucciones posibles con este formato será <strong>de</strong> ¡2 4 16 instrucciones!¢


Ejecución <strong>de</strong> instrucciones. Add dirEjecución <strong>de</strong>: ADD direcciónSuma el contenido <strong>de</strong> dirección al acumulador yguarda el resultado en el acumulador.Codificación: ADD 7 0000 000000000111Ciclos o fases:1. Captación.2. Indirección.3. Operación.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.34/47La primera instrucción a discutir es: ADD dirección, en don<strong>de</strong> dirección será un número<strong>de</strong> 12 bits almacenado en el campo “Argumento” <strong>de</strong> la instrucción.En este caso sencillo, el código <strong>de</strong> operación es sólo <strong>de</strong> 4 bits. Si se asigna el código 0000 parala instrucción ADD, la instrucción para sumar al acumulador el contenido <strong>de</strong> la posición <strong>de</strong> memorianúmero 7 se escribiría en código máquina como:0000 000000000111Como dicha ristra <strong>de</strong> ceros y unos es bastante difícil <strong>de</strong> recordar, es mejor usar el código ensamblador,que asigna el nemónico ADD a la operación <strong>de</strong> suma y escribe la dirección en <strong>de</strong>cimal:ADD 7Obviamente para po<strong>de</strong>r usar este código, será necesario usar un programa ensamblador que traduzcaADD 7 a 0000 000000000111 para así po<strong>de</strong>r ejecutar la instrucción.La instrucción ADD dirección consta tan solo <strong>de</strong> tres fases:1. Captación. Lectura <strong>de</strong> la instrucción <strong>de</strong> la memoria.2. Indirección. Lectura <strong>de</strong>l dato almacenado en dirección.3. Operación. Suma <strong>de</strong>l dato con el acumulador.Obviamente cada ciclo estará compuesto por una serie <strong>de</strong> µ<strong>operaciones</strong>. En las siguientestransparencias se muestran cada una <strong>de</strong> estas µ<strong>operaciones</strong>. Junto a ellas se muestra el diagrama<strong>de</strong> la arquitectura elemental con las unida<strong>de</strong>s que intervienen en la µoperación dibujadas en colorrojo.


Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)RDIMICAI<strong>de</strong>a(CP)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.35/47Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)RDAMICAI<strong>de</strong>aMem(RDIM)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.36/47


Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)RIICAI<strong>de</strong>a(RDAM)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.37/47Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)RDIMICAI<strong>de</strong>aRI(11..0)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.38/47


Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)RDAM Mem(RDIM), R2 (ACC)ICAI<strong>de</strong>aBus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.39/47Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)R1ICAI<strong>de</strong>a(RDAM)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.40/47


Ejecución <strong>de</strong> instrucciones. Add dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)ACCICAI<strong>de</strong>a(R1)+(R2)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.41/47Ejecución <strong>de</strong> instrucciones. Add dirEn resumen:FaseµoperaciónCaptura RDIM (CP)RDAMRI(RDAM)Mem(RDIM)Indirección RDIM RI(11..0)RDAM Mem(RDIM), R2 (ACC)R1(RDAM)Operación ACC (R1)+(R2)¿Falta algo por hacer?ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.42/47


Como se pue<strong>de</strong> apreciar, la instrucción precisa 7 ciclos <strong>de</strong> reloj y dos accesos a memoriaexterna para ejecutarse.La fase <strong>de</strong> captura consta <strong>de</strong> una primera µoperación para transferir el contenido <strong>de</strong>l contador<strong>de</strong> programa al registro <strong>de</strong> dirección <strong>de</strong> memoria (RDIM). A continuación se esperará un tiempopru<strong>de</strong>ncial para que la memoria pueda servirnos el dato pedido en el bus <strong>de</strong> datos y almacenarlo enel registro <strong>de</strong> datos <strong>de</strong> memoria (RDAM). 1 Por último, el contenido <strong>de</strong>l RDAM se copia al registro<strong>de</strong> instrucción RI para proce<strong>de</strong>r a su <strong>de</strong>codificación.Una vez <strong>de</strong>codificada la instrucción, ya se sabe que es la instrucción ADD dir y por tantose proce<strong>de</strong> a copiar el campo argumento <strong>de</strong> la instrucción al RDIM para leer el dato a sumar.En el siguiente ciclo <strong>de</strong> reloj se pue<strong>de</strong>n realizar dos µ<strong>operaciones</strong> en paralelo, una para transferirel dato <strong>de</strong>s<strong>de</strong> la memoria y otra para transferir el acumulador al registro R2 <strong>de</strong> la ALU. Esto esposible porque ambas µ<strong>operaciones</strong> no comparten ninguna unidad funcional <strong>de</strong> la CPU. La últimaµoperación <strong>de</strong>l ciclo <strong>de</strong> indirección consiste en llevar el dato <strong>de</strong>s<strong>de</strong> el RDAM al R1 <strong>de</strong> la ALU paraque se pueda proce<strong>de</strong>r a su suma.El ciclo <strong>de</strong> operación consiste simplemente en la suma <strong>de</strong>l contenido <strong>de</strong> los registros R1 y R2y su almacenamiento en la ALU.Nótese que falta aún algo por hacer. Después <strong>de</strong> la fase <strong>de</strong> operación viene la fase <strong>de</strong> captación<strong>de</strong> la siguiente instrucción, pero para ello hay que incrementar antes el contador <strong>de</strong> programa CP.1 Nótese que este registro es <strong>de</strong> doble puerto, es <strong>de</strong>cir, tiene una conexión con el bus <strong>de</strong> datosexterno y otra con el bus interno. Esto se consigue colocando dos puertas triestado a su salida: unapara el bus interno y otra para el externo. A<strong>de</strong>más necesitará dos entradas, una que provenga <strong>de</strong>lbus interno y otra <strong>de</strong>l externo. Se <strong>de</strong>ja como ejercicio el diseño <strong>de</strong> dicho registro.Ejecución <strong>de</strong> instrucciones. Add dirFalta por incrementar el CP para que apunte a lasiguiente instrucción.Dos alternativas:Usar la ALU.Usar un sumador adicional.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.43/47


¡¡Para hacer que el contador <strong>de</strong> programa CP apunte a la siguiente instrucción, basta con sumarle1 a su contenido. Para ello tenemos dos alternativas:EjerciciosUsar la ALU. Esta es la opción más barata, aunque como siempre la más lenta, puesnecesitaría una serie <strong>de</strong> µ<strong>operaciones</strong> adicionales. A<strong>de</strong>más sería necesario colocar unmultiplexor en una <strong>de</strong> las entradas <strong>de</strong> la ALU, por ejemplo la segunda, para que sumaseun valor constante (1) o el valor almacenado en el registro R2; según se tratase <strong>de</strong> unaoperación <strong>de</strong> suma o <strong>de</strong> un incremento <strong>de</strong>l CP.Usar un sumador adicional. Esta es la opción utilizada en todos los procesadores. Consisteen colocar un sumador asociado al registro CP para que sume 1 cada ciclo <strong>de</strong> instrucción.Obviamente, como dicho sumador es <strong>de</strong> uso exclusivo, dicha operación pue<strong>de</strong> realizarseen paralelo con cualquier otra µoperación en la que no intervenga el CP, que son casi todas.1. Enumere todos los registros <strong>de</strong> la arquitectura usada (excepto el R_Est), indicando sunúmero <strong>de</strong> bits.2. Modifique la arquitectura elemental para po<strong>de</strong>r incrementar el contador <strong>de</strong> programa. Pue<strong>de</strong>usar cualquiera <strong>de</strong> las dos alternativas presentadas.3. Con la arquitectura elemental modificada en el ejercicio anterior, escriba las µ<strong>operaciones</strong>necesarias para ejecutar la instrucción ADD dir, incluyendo el incremento <strong>de</strong>l contador <strong>de</strong>programa.4. Escriba las µór<strong>de</strong>nes asociadas a las µ<strong>operaciones</strong> <strong>de</strong> la instrucción anterior. Para ello tengaen cuenta que todos los registros tienen incorporadas las señales <strong>de</strong> control Oen y Wen,aunque no se han mostrado en las figuras anteriores para simplificar el esquema. A<strong>de</strong>másel registro RDAM, como es <strong>de</strong> doble puerto, tiene dos señales <strong>de</strong> habilitación <strong>de</strong> salida,OenInt para conectarse al bus interno y OenExt para conectarse al bus <strong>de</strong> datos externo.De la misma forma tiene dos señales <strong>de</strong> habilitación <strong>de</strong> escritura: WenInt y WenExt, paracaptar un dato <strong>de</strong>l bus interno o <strong>de</strong>l bus <strong>de</strong> datos externo, respectivamente.


Ejecución <strong>de</strong> instrucciones. JMP dirEjecución <strong>de</strong>: JMP direcciónLa siguiente instrucción a ejecutar será la localizadaen direcciónCodificación: JMP 2Bh 0001 000000101011Ciclos o fases:1. Captación.2. Operación.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.44/47Esta instrucción permite alterar el or<strong>de</strong>n <strong>de</strong> ejecución <strong>de</strong>l programa, saltando la ejecución a ladirección especificada en el argumento <strong>de</strong> la instrucción.Para su codificación se ha utilizado el código <strong>de</strong> operación 0001.La instrucción no necesita leer más datos <strong>de</strong> memoria, pues la dirección <strong>de</strong> salto está contenidaen la propia instrucción. Por tanto, la fase <strong>de</strong> indirección no es necesaria.La fase <strong>de</strong> captación es idéntica para todas las instrucciones, por lo que vale lo explicado parala instrucción <strong>de</strong> suma. La fase <strong>de</strong> operación consiste simplemente en transferir el argumento <strong>de</strong> lainstrucción al contador <strong>de</strong> programa. En las siguientes transparencias se muestran las µ<strong>operaciones</strong>necesarias para ejecutar la instrucción y el diagrama <strong>de</strong> bloques <strong>de</strong>l computador elemental con loselementos involucrados en la fase <strong>de</strong> operación en color rojo.


Ejecución <strong>de</strong> instrucciones. JMP dirFase µoperaciónCaptura RDIM (CP)RDAM Mem(RDIM)RI (RDAM)Operación CP RI(11..0)ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.45/47Ejecución <strong>de</strong> instrucciones. JMP dirBus <strong>de</strong> DireccionesAccCPUR_EstCPRDIMALUUnidad<strong>de</strong> controlMemoriaR1R2RIRDAMBus Interno (Datos y direcciones)CPICAI<strong>de</strong>aRI(11..0)Bus <strong>de</strong> DatosEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.46/47


Ejecución <strong>de</strong> instrucciones. STA dirEjecución <strong>de</strong>: STA direcciónAlmacena el contenido <strong>de</strong>l acumulador en direcciónCiclos o fases:1. Captación.2. Escritura.Ejercicio: Escribir las µ<strong>operaciones</strong> <strong>de</strong> la instrucción.ICAI<strong>de</strong>aEstructura <strong>de</strong> Computadores Capítulo 2: <strong>Elementos</strong> y <strong>operaciones</strong> <strong>básicas</strong>.– p.47/47Este último ejemplo consiste en <strong>de</strong>sarrollar una instrucción para almacenar el contenido <strong>de</strong>lregistro Acc en la memoria.La instrucción no necesita operandos, pues la dirección don<strong>de</strong> hay que almacenar el acumuladorestá en el argumento <strong>de</strong> la instrucción. A<strong>de</strong>más tampoco se necesita realizar ningunaoperación. Por tanto la instrucción sólo consta <strong>de</strong> dos fases: captación y escritura.EjercicioEscriba las µ<strong>operaciones</strong> necesarias para ejecutar la instrucción STA dirReferenciasPatterson, D. A. y Hennessy, J. L. (2000). Estructura y diseño <strong>de</strong> computadores. Interficie circuitería/programación.Reverté.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!