2.3 TRANSFERENCIA DE BUS Una computadora digital típica tiene muchos registros y debe haber rutas para proveer el camino para transferir información entre los registros. El número de cables sería excesivo si se utilizaran líneas separadas y multiplexores entre un registro y otro, en el sistema. Un esquema más eficiente de transferencia de información entre registros en una configuración de múltiples registros es un sistema de bus. Una estructura de bus consiste en un conjunto de líneas comunes, una para cada bit del registro, a través de los cuales la información binaria es transferida de un dato a la vez. Las señales de control seleccionan cuál registro será la fuente y cuál registro será el destino durante cada transferencia. Una manera de construir un sistema de bus común es con multiplexores y un decodificador. Los multiplexores seleccionan un registro fuente, cuya información binaria es puesta en el bus. El decodificador selecciona un registro destino que va a aceptar la información proveniente del bus. La construcción de un sistema de bus para cuatro registros se muestra en la Figura 2.6. Cada registro tiene n bits numerados de 0 hasta n - 1. Los bits en la misma posición significativa en cada registro son aplicados al multiplexor de 4 X 1 por una línea del bus. Sólo se muestran tres multiplexores en el diagrama. El circuito completo debe tener n multiplexores numerados de 0 a n - 1. Las n líneas formadas por el sistema de bus común son ruteadas a las n entradas de cada registro. La transferencia de información del bus a un registro destino es llevada a cabo activando la entrada de carga del registro seleccionado. La entrada de carga particular es seleccionada de las salidas del decodificador. por ejemplo. 01. las cuales seleccionarán los registros R0. . 10 u 11.6 Sistema de bus para 4 registros. y ellas seleccionan el registro destino R0. respectivamente. Las entradas de selección del registro destino pueden ser 00. Las entradas de selección del destino al decodificador determinan el registro que recibe la información del bus. R1. La entrada de selección del multiplexor determina cuál registro pondrá su contenido en el bus. 10 u 11. respectivamente.Figura 2. Considera. 01. Las entradas de selección del multiplexor pueden ser 00. R2 o R3. la transferencia dada por la siguiente declaración. R2 o R3. R1. Cada computadora tiene su conjunto de instrucciones. La tarea de procesamiento de datos puede ser alterada especificando un nuevo programa con diferentes instrucciones o especificando las mismas instrucciones con diferentes datos.1. Los códigos de instrucción. Esto se repite para todas las líneas del bus hasta la línea n . El usuario de una computadora puede controlar el proceso por medio de un programa. El conjunto de operaciones de máquina formuladas por una computadora depende del procesamiento que se intenta llevar a cabo. Un código de instrucción es un grupo de bits que instruye a la computadora para llevar a cabo una operación específica. corrimiento o complemento. Al mismo tiempo el bit 1 de R0 se aplica a la línea 1 del bus a través de MUX 1. usualmente se divide en dos partes. El control. cada una teniendo su propia interpretación particular. Con la siguiente transición del reloj. el valor de n bits de R0 se pone en las líneas del bus cuando la selección del multiplexor es 00. El control lee cada instrucción de la memoria y la coloca en el registro de control. junto con los datos. Esto activa la salida 2 del decodificador. El código de operación de una instrucción es un grupo de bits que define una operación: suma. es cargado en el registro R2 para completar la transferencia. Las entradas de selección de destino deben ser el binario 10. La unidad de control de la computadora es diseñada para aceptar esta configuración de bits en el tiempo apropiado en una secuencia y para proporcionar los datos . El número total de operaciones obtenido determina el conjunto de operaciones de máquina. La habilidad de almacenar y ejecutar instrucciones es la propiedad más importante de una computadora de propósito general.1.4 CÓDIGOS DE INSTRUCCIÓN Una computadora digital es un dispositivo de propósito general capaz de ejecutar varias operaciones y.Las variables de control que habilitan esta transferencia deben seleccionar al registro R0 como fuente para el bus y R2 como el registro destino. Éste debe consistir de. n bits para tener 2n operaciones distintas. entonces. Esto ocasiona que el bit 0 de R0 sea aplicado a la línea 0 del bus a través de MUX 0. Un programa es un conjunto de instrucciones que especifican las operaciones. y la secuencia en la cual el debe ocurrir el procesamiento. la cual a su vez activa y carga la entrada de R2. operandos. substracción. interpreta la instrucción y procede a ejecutarla por medio de una secuencia de microoperaciones.1 del registro R0 a través de MUX n . El número de bits requeridos para el código de operación de una instrucción es en función del número total de operaciones usadas. al menos. De esta manera. puesto en el bus. Las entradas de selección del multiplexor deben ser el binario 00. El diseñador asigna una combinación (un código) para cada operación. la cual recibe el bit n . 2. Ésta. el contenido de R0. La parte básica de un código de instrucción es su parte de operación. además. puede ser instruida acerca de cuáles operaciones llevar a cabo. son almacenados en memoria. Un operando se dice especificado explícitamente si es incluido como parte de la definición de la operación. Los operandos podrían ser especificados en un código de instrucción de dos maneras: un operando se dice especificado implícitamente si el código de instrucción contiene bits especiales para su identificación. los tres formatos de código de instrucción mostrados en la Figura 2. El formato de instrucción en (b) tiene un código de operación seguido por un operando. la operación especificada por el código de operación es llevada a cabo entre un registro del procesador y un operando. y cuando se muestran juntos constituyen el formato de código de instrucción.7. una de ellas una operación de suma (ADD). Puede ser usado para especificar instrucciones tales como “incrementar un registro del procesador” o “complementar un registro del procesador”. una operación que complementa un registro implica el registro en la parte de operación del código. El formato de instrucción especificado en (c) da la dirección del operando en memoria. Por ejemplo. El tipo de instrucción es llamado instrucción de direccionamiento directo. por ejemplo. una señal de control es aplicada al circuito sumador para sumar dos números binarios. El formato de instrucción en (a) consiste de un código de operación. Como un ejemplo específico. El registro en este caso es implicado por el código de operación. Ésta es llamada una instrucción con operando inmediato debido a que el operando sigue inmediatamente al código de operación. con una configuración de bits 100110 asignada a la operación ADD. Considera. el cual implica un registro en la unidad de procesamiento. debe especificar no sólo la operación. Los campos especifican diferentes funciones para la instrucción. En otras palabras. La dirección de este operando es incluida como parte de la instrucción. Formato de códigos de instrucción El formato de una instrucción es usualmente dibujado en una caja rectangular.adecuados al procesador de datos para ejecutar la operación especificada. . Los bits del código de instrucción son divididos en grupos que subdividen la instrucción en partes llamadas campos. por consiguiente. La operación debe ejecutarse usando datos almacenados en los registros de la computadora o en memoria. Un código de instrucción. Por ejemplo. El código de operación consiste de seis bits. sino también los registros o palabras de memoria donde serán encontrados los operandos. simbolizando los bits de una instrucción como aparecen en palabras de memoria o en un registro de control. un código de operación puede contener parte de la operación y la dirección de memoria específica del operando en memoria. Éste puede ser usado para especificar operaciones tales como “sumar el operando al contenido presente de un registro” o “transferir el operando en un registro” o puede especificar alguna operación que será llevada a cabo entre el operando dado y un registro del procesador. Cuando el código de operación 100110 es detectado por la unidad de control. Cada campo es asignado a una tarea tal como un código de operación o una dirección de memoria. considera una computadora usando 64 operaciones distintas. el cual es almacenado en memoria. La parte de operación de un código de instrucción especifica la operación que se va a llevar a cabo. La primera palabra en la dirección 35 es el código de operación para la instrucción para transferir el operando R al registro. Como esta palabra contiene el equivalente binario de 28. En la dirección de memoria 45 hay una instrucción de direccionamiento directo que especifica la operación: La segunda palabra de instrucción en la dirección 46 contiene la dirección. el operando que será transferido al registro R es el almacenado en esta dirección.8. El símbolo significa el contenido de la palabra de memoria en la dirección 70. y . el resultado de la operación es la transferencia de la palabra de 8 bits 00011100 en el registro R. Por consiguiente. simbolizado por la declaración: El operando en sí mismo es almacenado inmediatamente después del código de operación en la dirección 36. tenemos la instrucción simbolizada por . En la dirección 25 tenemos una instrucción que especifica una operación de incremento al registro R.Los formatos de instrucción mostrados en la Figura 2. Se asume que se tiene una memoria con 8 bits por palabra y que el código de operación contiene 8 bits. La colocación de los tres códigos de instrucción en memoria en binario es mostrada en la Figura 2. Para el ejemplo numérico mostrado en la Figura. Esta operación puede ser simbolizada por la declaración: En las direcciones de memoria 35 y 36 tenemos una instrucción de operando inmediato que ocupa dos palabras de 8 bits.7 son tres de los muchos posibles formatos que pueden ser formulados para una computadora digital. Figura 2. Ejemplo numérico.7 Formatos de instrucción. como se muestra en la figura 2. . Una operación se especifica por una instrucción almacenada en la memoria de la computadora.Debe comprenderse que poniendo instrucciones en memoria.8 Ejemplo representación de instrucciones en memoria. es sólo una de las muchas posibles alternativas. Las computadoras grandes pueden tener de 16 a 64 bits por palabra. Es un código binario que le dice a la computadora que tiene que llevar a cabo una operación específica. Figura 2. debemos reconocer la relación entre la operación de una computadora y la microoperación del hardware. Emite. Hasta este punto. una secuencia de funciones de control para llevar a cabo las microoperaciones requeridas para la ejecución de la instrucción. y en algunas incluso. dos o más instrucciones se pueden poner en una sola palabra de memoria. la instrucción entera puede ponerse en una sola palabra. entonces. La unidad de control en la computadora recupera la instrucción de memoria e interpreta los bits del código de operación. En muchas computadoras.8.