Está en la página 1de 19

Apuntes de clase 1

Conceptos de programa

Programació n hardware: programas cableados, configurar físicamente a través de conexiones


para la ejecució n de un programa.
Programació n software: Conformado es un conjunto de instrucciones, un intérprete de
instrucció n, unidad de control encargada de decodificar la instrucció n y generar todas las
señ ales de control.

Arquitectura Von Neumann:

El proceso de programació n sería má s fá cil si el programa se representa de forma adecuada


para ser guardado en la memoria, junto con los datos. Así, la computadora podría conseguir
sus instrucciones leyéndolas de memoria o escribiéndolas en esto.
Esta idea se conoce como concepto del programa-almacenado y se implementó con la creació n
de la computadora IAS, diseñ ada por Von Neumann. La figura de abajo es similar a la
estructura de la IAS.

Consta de 5 componentes principales: Esta arquitectura utiliza el sistema binario,


reduciendo la probalidad de fallos e facilitando la implementació n de funciones.
1. Unidad de entrada: provee las instrucciones y los datos.
2. Unidad de memoria: donde se almacenan datos e instrucciones.
Esto trae consigo, un incremento en la velocidad de ejecució n del programa de forma
secuencial. Esta memoria es direccionable por localidad, sin importar el dato
almacenado.
3. Unidad aritmético-ló gica: procesa los datos.
4. Unidad de control: Dirige la operació n, leyendo instrucciones de memoria y
ejecutá ndolos una a una en la ALU.
a. Estas dos ultimas unidades contienen registros de utilidad. Estos son:
i. Memory Buffer Register, la cual contiene una palabra (1 posició n de
memoria) que debe ser almacenada en la memoria o es usada para
recibir una palabra de la memoria.
ii. Memory Address Register, contiene la direcció n en memoria de la
palabra que va a ser escrita o leída.
iii. Instruction Register, contiene los 8 bits del có digo de la operació n de la
instrucció n que se va a ejecutar.
iv. Program Counter, contiene la direcció n de la pró xima instrucció n que
se va a buscar en memoria.
v. AC & MQ, se emplean para almacenar resultados y operandos de las
operaciones de la ALU, temporalmente.
5. Unidad de salida: se envían los resultados.

Repertorio (Set) de instrucciones


Todo el conjunto de instrucciones (maquina) que el procesador puede ejecutar se lo conoce
como repertorio de instrucciones.
Cada instrucció n debe contener la informació n que necesita la CPU para su ejecució n. Así, los
elementos esenciales que componen la instrucció n son, un código de operación (codop),
este có digo determina qué tipo de operació n se va a ejecutar, aritmética lógica; de
transferencia de datos, y entre quienes, pueden ser entre dos registros, registros y/o memoria o
entre posiciones de memoria; puede ser una operación de entrada y salida; y de control.
La instrucció n también debe contener las referencias a operandos fuentes y destino que
especifican la ubicació n (en memoria, memoria virtual o memoria cache, en registros, o en
dispositivos de E/S) de las entradas y salidas para realizar la operació n. Los operandos son
datos numéricos de punto fijo o punto flotante, datos de tipo cará cter ASCII, EBCDIC, datos
ló gicos o direcciones de memoria. Y ademá s de forma implícita, la instrucció n debe contener
la referencia a la próxima instrucción.

Los repertorios de instrucciones se diferencian principalmente por el tipo de almacenamiento


interno de los operandos.
En el tipo pila, los operandos está n de forma implícita, siempre en el tope de la pila, por lo
tanto no se necesita indicar en la instrucciones donde se encuentran los operandos.
push A; push B; add; pop C

Imagen pagina 4, Diseño e Implementación….


En el tipo acumulador uno de los operandos se encuentra en algú n registro interno de la CPU
de forma implícita. Y el otro se debe especificar de manera explícita.
load A; add B; store C;

El tipo registro tiene una ventaja son má s rá pidos que otros tipos de almacenamiento por
estar dentro del procesador. Existen dos formas, registro registro, en el que los operandos
deben ya estar en estos registros antes de operar con ellos, para hacer esto, se utilizan
instrucciones de carga y para llevar los resultados desde los registros a memoria instrucciones
de almacenamiento. La codificació n en reg-reg es má s sencilla ya que todas tienen la misma
longitud y también se ejecutan en un nú mero similar de ciclos.
load R1, A; load R2, B; add R3,R2,R1; store R3, C
La otra forma es registro-memoria, en el, uno de los operandos debe estar en registro pero el
otro hay que ir a buscarlo a memoria.

Numero de Direcciones
¿Cuá ntos direcciones se pueden hacer referencia en una instrucció n? Depende de la
arquitectura, la gran mayoría permiten utilizar una, dos, o tres. Son las instrucciones
aritméticas ló gicas las que requieren má s operandos, con un má ximo de dos y otro tercer para
almacenar el resultado de la operació n. Sin embargo, tres referencias a operandos en una
instrucció n no son muy comunes. Una instrucció n que alberque dos referencias a operandos,
utiliza a uno de ellas como operando destino, almacenando en este el resultado de la
operació n. La instrucció n de una sola referencia es aú n má s simple, pero una segunda
direcció n debe estar implícita, el acumulador. Incluso la idea de cero referencias a
operandos es posible por medio de la pila.
Menos direcciones por instrucció n requieren una CPU menos compleja e instrucció n má s
cortas en términos de bits. Aunque los programas contendrá n má s instrucciones y su
ejecució n demorara un poco má s. Como bien hemos visto, si las direcciones de memoria que
se encuentran en la instrucció n apuntan a algú n registro acelerara la ejecució n.

Decisiones en el diseño del repertorio de instrucciones


Tipos de datos, estos ya han sido mencionados previamente.
Conjunto de operaciones, cuantas, y cuales, que tan complejas son.
Formatos de instrucciones, de que longitud son, cuantas direcciones referenciales
contendrá , y que tamañ os (bits) tendrá n los campos en una instrucció n.
Registros, la cantidad de registros que contendrá y podrá n ser referenciados.
Direccionamiento, los formas de acceder a las direcciones de los operandos.

Conjunto de Operaciones

El cod-op, determina el tipo de operació n a ejecutar. En su mayoría todas las maquinas


contienen las siguientes operaciones generales.
Transferencia de datos, en esta operació n, que es la má s bá sica de todas, se debe especificar
las posiciones de los operandos fuente y destino, y estos podrían ser tranquilamente reg-reg,
una operació n má s sencilla de realizar para la CPU, en cambio si alguno de los operandos hay
que ir a buscarlos a memoria como en reg-mem, mem-reg, se llevan a cabo alguna o todos los
pasos: calcular la direcció n de memoria del operando basá ndose en el modo de
direccionamiento; si la direcció n es virtual, convertirla a real; determinar si el operando esta
en cache; derivar la orden al mó dulo de memoria.
. Ademá s, también se debe especificar la longitud de los datos a transferir y el modo de
direccionamiento empleado para ir a buscar a los operandos. En el simulador MSX88, existe la
instrucció n MOVE para realizar la transferencia, (load y store).
Aritmetico/Logicas, en esta operació n, se encuentran las operaciones de suma, resta,
multiplicació n divisió n entre dos o má s operandos, también existen operaciones de un solo
operando como la absolute, incremento, etc. La ejecució n de estas instrucciones también
puede implicar hacer una transeferencia de datos. Dentro de las operaciones ló gicas podemos
encontrar a las booleanas, como and, or, not; operaciones bit a bit.
Conversión, son aquellas operaciones que operan sobre el formato de los datos, como la
conversió n de decimal a binario.
Entrada/Salida, estas operaciones involucran la transferencia de datos entre periféricos y la
CPU. Se verá má s adelante.
Control de Flujo, la instrucció n que le sigue a la actual está esperando a ser captada para su
ejecució n, sin embargo, a veces este orden secuencial de ejecució n se puede alterar por otras
instrucciones que cambian ese orden o flujo. Estas instrucciones son de control de flujo y
prá cticamente modifican el valor del program counter. Los motivos son claros, una instrucció n
en el programa se puede ejecutar má s de una vez; algunas instrucciones permiten tomar
decisiones; por modularizació n. Dentro de las operaciones de cambio de flujo está n
bifurcaciones, saltos condicionales e incondicionales, llamados a subrutinas. En MSX88 JMP,
CALL, JZ, RET, etc.
Formato de Instrucciones

Existen algunas arquitecturas de formato fijo. Estos formatos determinan que cantidad de bits
van a corresponder al codop. Por ejemplo, 4bits, uno puede contener 24 codop distintos.
Ademá s, en el formato se debe contemplar implícita o explícitamente ninguno o algunos
operandos(direcciones). Esto ú ltimo debe hacer referencia a los operandos a través de los
modos de direccionamiento.
Algunos formatos de instrucciones son de tipo I, R, J.

Modos de Direccionamiento
En una instrucció n, se encuentra, ademá s, la referencia al operando, (campo de direcciones)
ya sea de forma inmediata, es decir, con el valor figurando en la instrucció n o accediendo a
ella realizando algú n direccionamiento especifico. Todas las arquitecturas manejan má s de un
modo de direccionamiento. El direccionamiento es una forma de ir buscar el operando,
residiendo este ú ltimo en memoria o en un registro y tiene como objetivo reducir el nú mero
de bits en la instrucció n.
Modo inmediato: El operando está presente en la instrucció n. Esto presenta una ventaja pues
no hay que ir a buscar a memoria. Pero el operando contiene magnitud limitada, debido al
campo de direcciones que siempre será menor con respecto a la longitud de una palabra de
memoria. Se utiliza para definir constantes y para inicializar variables.
Modo directo: En el campo de direcciones se encuentra la direcció n de memoria del operando.
La desventaja es solo requiere una referencia a memoria, pero sigue limitado por el tamañ o
del campo de direcciones. Si un operando va a usarse varias veces puede colocarse en un
registro.
Modo directo de Registro: Similar al anterior, con la diferencia de que en el campo de
direcciones hace referencia a un registro del banco de registros que contiene la CPU. De esta
forma solo se necesitan pocos bits para referenciar a un registro y no se accede a memoria.
Pero el espacio de direcciones de registros sigue siendo también limitado. Generalmente se
necesitan 3 o 4 bits para referenciar este campo por lo que solamente se podrá n acceder a
unos 8 o 6 registros. Su uso debe hacer de manera eficiente.
Modo indirecto con Registro: En la instrucció n se referencia al registro que contiene la
direcció n de memoria en donde reside el operando. Mismas ventajas que el anterior.
Modo por desplazamiento: Combina capacidades de indirecto y directo con registro. El campo
de direcciones se divide en dos, para después sumarse y acceder al operando.
Relativo: En el campo de direcciones, se encuentra, el registro referenciado, program
counter y el desplazamiento en Ca2, ambos se suman y producen la direcció n efectiva del
operando. Si la mayoría de las referencias a memoria está n relativamente cercas a la
instrucció n en ejecució n, este modo ahorra bits de direcciones en la instrucció n.
Registro base: El registro referenciado contiene una direcció n de memoria, y se suma
al desplazamiento desde dicha direcció n.
Indexado: Es inverso al anterior. En él se referencia a una direcció n de memoria pero
es el registro, índice, ahora quien contiene el desplazamiento. Su uso eficiente a la hora de
ejecutar instrucciones iterativas, como arreglos.
Pila: Asociado con la pila hay un registro puntero de pila, cuyo valor es la direcció n
tope de pila, generalmente se guarda en un registro. Así, las referencias a posiciones de la pila
en memoria son direccionamientos indirectos con registro, porque se decrementan o
incrementan en mú ltiplos de una palabra. De esta forma las instrucciones no necesitan incluir
referencias a memoria, simplemente operan sobre la pila.
Subrutinas

Es un programa auto contenido, quiere decir que si se introducen datos, no necesariamente es


un requisito pero, obtendremos de esta subrutina resultados. Es una forma de modularizar el
programa principal. Este ú ltimo puede estar compuesto por una buena cantidad de subrutinas
con algú n propó sito en particular. Y pueden ser usados a la largo del programa las veces
necesarias. A su vez, una subrutina puede contener referencias a otras mismas. (en el msx88
los invocamos con la instrucció n call y retornamos de ésta con ret). Estos pará metros pueden
ser pasados a la subrutina por valor, o por referencia. Los pará metros pueden residir y ser
enviados en registros (limitación, y precaución de sobrescribirlos), vía memoria (no
recomendable), o a través de la pila; el mejor mecanismo para el pasaje de pará metros.
Pila es un conjunto ordenado de elementos en el que solo se puede acceder a uno de ellos en
un instante dado. El punto de acceso a los elementos se denomina tope de pila, y solo se puede
añ adir o eliminar elementos a través de este. LIFO. Para construir la pila se reserva un bloque
de posiciones de memoria contiguas. Para esto es conveniente definir algunos registros ú tiles
para el manejo correcto de la pila, un registro base de pila; el cual contiene la direcció n de
comienzo del bloque de pila, un registros límite de pila; que contiene la direcció n del otro
extremo del bloque, y el registro puntero de pila; que contiene siempre la direcció n del tope de
pila, este se incrementa o disminuye a medida que se añ ade o elimina algú n elemento en la
estructura. Como siempre es el mismo valor para el puntero de pila, la direcció n del operando
está implícita y no se necesita agregarlo a la instrucció n, push o pop, por lo que contiene cero
direcciones de memoria en la instrucció n. El crecimiento o decrecimiento de la pila depende
de la implementació n, es decir, la pila crece y el puntero contiene una direcció n de valor má s
alta o podría ser al revés e ir decrementando el puntero a medida que se añ aden elementos.

Llamado a la subrutina
La pila es compartida por el programador para almacenar los pará metros y por el sistema
para guardar informació n importante, como la direcció n de retorno que es una direcció n
siguiente a la instrucció n actual del llamado a subrutina.
La secuencia del llamado a la subrutina, sugiere algunos pasos; apilar los pará metros
necesarios, desde datos que se van a utilizar para leer dentro de la subrutina, como también
direcciones de memoria para escribir en ellos(almacenar resultados); realizar el llamado con
la instrucció n call; salvar en la pila la direcció n de retorno; salvar el estado del registro base de
pila (bp, en el msx88, es bx); salvar el valor del registro stack pointer en el registro bp, para
establecer el puntero de referencia, que utilizaremos para movernos (sumando o restando
bytes) sobre el marco de la pila dentro de la subrutina, sp no se puede usar para este
propó sito para su valor cambia a medida que des/apilamos; es opcional reservar espacio para
variables locales de la subrutina, con sp; salvar algú n registro que vaya a sobrescribir, con sp;
acceder a los pará metros, para esto sumamos o restamos bytes a bp, para acceder a ellos; salir
de la subrutina, hay que realizar el des apilamiento inverso adecuado para los registros,
reponer el valor de sp, actualizando éste, para situarse en el valor de bp, y reponer el valor
original de bp, para después desapilar la direcció n de retorno (ret), y volver a la siguiente
instrucció n del punto de llamado.
En el caso de anidamiento de subrutinas, los pasos son similares, salvar los pará metros, salvar
la direcció n de retorno salvar el estado de bp, etc. Y para volver a la siguiente instrucció n
desde el punto de llamado los mismos pasos para retornar.
Apuntes de clase 2
Interrupciones
Es un mecanismo que interrumpe el procesamiento normal del procesador. Pueden ser de
origen externo o interno al procesador, aunque se atienden de la misma manera, involucran
distintas partes de la má quina. Estas interrupciones se pueden dar debido a; alguna ejecució n
de instrucció n, alguna operació n de E/S, alguna tarea que el sistema operativo debe realizar
de manera regular, o algú n fallo de hardware.
Al tener varias interrupciones de distintos tipos habrá distintos gestores de interrupción, con
la ló gica para atender particularmente a cada una. Cada gestor, particular, reside en memoria
con el có digo que procesa la interrupció n. Así, a la hora de atender una interrupció n se debe
seguir unos pasos; suspender la ejecució n del programa en curso y salvar el estado actual del
procesador (direcció n de retorno); se atiende la interrupció n; se restaura el estado original
del procesador; se retorna a la ejecució n normal del programa interrumpido.

Existe una jerarquía de interrupciones que tendrá n prioridad para ser atendidas con respecto
a otras.
Dentro de estas clasificaciones se encuentran las interrupciones no enmascarables, es decir
que tiene una alta prioridad y debe atenderse lo antes posible. Por el otro lado las
interrupciones enmascarables, son aquellas que pueden ser ignoradas por algú n tiempo o
totalmente, como los periféricos.
Otras clasificaciones que se pueden encontrar son las interrupciones por hardware, son las
generadas por los dispositivos de E/S, denominadas como las verdaderas interrupciones. No
son interrupciones planeadas, son asincró nicos, la CPU no espera a que estos eventos ocurran.
Traps/excepciones son también interrupciones hardware creados por el procesador en
respuesta a ciertos eventos como fallas en hardware, una instrucció n incorrecta, accesos a
memoria no permitidos, operaciones en ALU erró neas. Interrupciones por software son
instrucciones de interrupció n para ejecutar algú n servicio del sistema operativo que ya está
codificado.

El ciclo de instrucció n con el agregado de interrupciones es ahora má s completo. Diagrama de


estados.
Hay dos comandos que permiten habilitar o deshabilitar el pedido de interrupció n, que no
quiere decir que no puedan interrumpir. En el ciclo de instrucció n cuando se termina de
ejecutar una instrucció n se verifica, antes de captar la siguiente, si es que se ha solicitado
alguna interrupció n indicada por un flag para este propó sito. Si existe, entonces se suspende
la ejecució n del programa en curso, se guarda el estado del programa (PSW), como la
direcció n de retorno, que es la pró xima direcció n a ejecutar y algunos flags/registros en la
pila. Se carga en el program counter, la direcció n de la rutina del gestor de interrupció n,
inhibiendo otras interrupciones. Esta carga de la direcció n, se debe a un vector existente de
interrupciones que identifica en donde radica la rutina del gestor de la interrupció n.
Finalizado la ejecució n de la rutina, el procesador retoma la ejecució n del programa original.

Interrupciones múltiples
Habiendo muchas varias categorías de interrupció n y fuentes, debe existir un mecanismo
para decidir que interrupció n se va atender. La primera forma es trabajar con inhabilitaciones,
entre el pedido simultaneo de interrupciones, toma uno de los pedidos e inhabilita la atenció n
para las interrupciones restantes encoladas en algú n lado. Al finalizar la interrupció n actual,
se habilita la atenció n nuevamente.
Otra forma es trabajar con prioridades, en donde una interrupció n de prioridad má s alta
puede interrumpir a una de prioridad má s baja. Una vez finalizado se atiende a la interrupció n
interrumpida, má s baja. Hasta finalizar con todas las interrupciones para volver al programa
de usuario.

Reconocimiento de Interrupciones
Hay formas de identificar la fuente de interrupció n. Una de las formas fue, actualmente en
desuso, a través de interrupciones multinivel en donde cada periférico se conecta al
procesador por medio de una entrada física, por la cual se realiza el pedido de interrupció n.
Otra forma es interrupciones de línea única, una ú nica entrada a la que está n conectados todos
los periféricos. Sin embargo para determinar quién origino el pedido se lleva a cabo una
técnica, en desuso, de encuesta (polling). En esta técnica, se le pregunta a todos los
dispositivos conectados quien emitió la interrupció n. Una mejor técnica es a través de las
interrupciones vectorizadas en donde el dispositivo que genero el pedido de interrupció n
envía a través del bus de datos un identificador, vector de interrupciones, con el cual el
procesador cargara con el gestor particular correspondiente al dispositivo emisor. Si bien lo
puede colocar el propio dispositivo, sería mejor contar con un hardware especial capaz de
gestionar toda la operació n. Siendo este, el PIC, controlador de interrupciones. Dibujo PIC. Este
controlador se encuentra conectado a todos los dispositivos que deseen interrumpir. Cuando
un dispositivo quiere interrumpir genera un pedido de interrupció n (identificador) al PIC.
É ste, se encuentra conectado a través de un entrada al procesador, por el cual le informa
sobre el pedido. El procesador responde por medio de otra entrada conectada al PIC, cuando
disponga de atenderlo. Al obtener la confirmació n del procesador, el PIC pone en el bus de
datos el identificador del dispositivo, el procesador con ese valor, en el vector de
interrupciones localiza la direcció n de rutina del gestor de interrupció n y atiende la
interrupció n llevando a cabo los pasos mencionados.
Simulador MSX88.
Apuntes de clase 3
Entrada y Salida
El sistema de E/S está formado por un grupo de dispositivos periféricos que permiten la
transferencia de informació n entre la computadora y el exterior. Los periféricos no pueden
estar conectados directamente al bus de datos.
Para un sistema de E/S eficiente se deben tener en cuenta la forma en la que el dispositivo
funciona, y en como gestiona la transferencia de datos. Debido a la gran cantidad de
periféricos, cada uno tendrá una velocidad de transferencia de datos distinta, formato y
tamañ o de datos distintos también. Siendo todos igualmente má s lentos que el procesador.
Por lo tanto, se necesita un mó dulo de e/s para controlar esta transferencia, así se optimiza el
rendimiento. No es má s que un intermediario entre los recursos de la computadora y los
dispositivos periféricos para interpretar las ordenes del procesador y transmitirlas al
periférico, informar el estado del estado del periférico al procesado, y controlar las
transferencias de datos entre el procesador y el periférico. Diagrama modulo e/s.

Dispositivo periférico genérico


Un periférico se conecta al mó dulo de e/s a través una señal de estado que indican el estado
del dispositivo para comenzar o no la transferencia de datos, una señal de control que
determina que funció n se debe llevar a cabo, si envía datos, o los recibe o informa el estado
del dispositivo, o alguna otra funció n particular, y señal de datos, por donde viaja la
informació n hacia o desde el modulo e/s. También contiene una lógica de control controla la
operació n segú n las ó rdenes del mó dulo e/s, un transductor que convierte los datos en de una
forma para entrada y de otra para salida y buffer de datos asociado al transductor que
almacena el dato que se está n transfiriendo entre el modulo e/s y el exterior, del orden de 2
bytes.

Periférico

Funciones de un módulo e/s


Las principales funciones son de control y temporización, para coordinar la transferencia de
datos entre los recursos internos y los dispositivos externos conectados al mó dulo e/s.
Interpretar ordenes, las ordenes que envía el procesador al periférico. Comunicación, con el
procesador y la memoria RAM. Los datos provenientes de la memoria se envían al mó dulo en
rá fagas rá pidas y se almacenan temporalmente hasta que son enviados al periférico a la
velocidad de este ú ltimo. Detección de errores. Diagrama en bloques de un mó dulo e/s.
Módulo de E/S
El mó dulo de e/s está conectado al sistema a través de las líneas de datos, líneas de direcció n
y líneas de control segú n el diagrama. Cuenta con un registro/buffer de datos que provienen o
se dirigen al periférico. Al igual que otro registro de estado/control con los mismo fines.
Cuenta ademá s con una ló gica de e/s en donde por medio de las líneas de control se comunica
con el procesador, y por medio de las líneas de direcciones genera o reconoce las direcciones
de los dispositivos. Por lo tanto debe ser capaz ocultar la implementació n del dispositivo a la
CPU. Cuando la CPU quiere mandar o recibir un dato va a leer una direcció n de memoria, solo
que esta direcció n corresponde a un periférico.

Operación de Entrada y Salida


Se requiere un direccionamiento, cuando la CPU quiere escribir en memoria en alguna
direcció n X, no sabe que se trata de la direcció n de un periférico. Los direccionamientos
pueden ser entradas y salida en memoria en donde se reserva cierta cantidad de direcciones
para realizar las operaciones de entrada y salida. Por lo tanto dispositivos de e/s y memoria
comparten un ú nico espacio de direcciones.
Los registros de control y estado de los dispositivos E/S se asignan a direcciones de memoria
en lugar de puertos específicos de E/S. Estas direcciones de memoria se utilizan para leer y
escribir datos en los dispositivos E/S. Para interactuar se utilizan instrucciones de lectura y
escritura de memoria de manera similar a la lectura y escritura de datos en la memoria
principal.
Otra forma de direccionamiento es la entrada y salida aislada, en donde se tendrá un espacio
de direcciones separadas, por un lado direcciones que corresponden a las entradas y salidas.
Para esto, se debe contar con instrucciones especiales para ordenar una escritura o lectura en
ese espacio aislado de memoria. En el msx88 se cuenta con la instrucció n IN para leer ese
espacio de memoria, y OUT para escribir.
Ademá s se requiere el tipo de operació n lectura o escritura, y un control de transferencia.
En lugar de utilizar direcciones de memoria para acceder a dispositivos E/S, se utilizan
puertos de E/S dedicados. Estos puertos tienen nú meros específicos y se utilizan en
instrucciones de entrada y salida dedicadas. Estas instrucciones son diferentes de las
instrucciones de lectura y escritura de memoria, IN, OUT.

Técnicas de E/S
Cuá l es la técnica má s ó ptima. DMA aunque depende del periférico que sea.
E/S Programa con espera de respuesta, en donde la CPU constantemente consulta el estado de
la transferencia al mó dulo. En primer lugar comprueba el estado del dispositivo, a través del
mó dulo, si está listo para la operació n, se envía la el comando de escritura o lectura. Mientras
se lleva a cabo la transferencia el procesador se queda esperando a que termine consultando
el estado del dispositivo, registros de estado/control del mó dulo. Esta forma de transferencia
hace que el procesador permanezca ocioso durante un tiempo considerable. La transferencia
se realizara de a bytes o tamañ o palabra, y dependiendo de la cantidad podría demorarse la
operació n. No es la técnica má s deseada. Diagrama de flujo.

E/S con Interrupciones, en esta técnica el procesador no se queda esperando la finalizació n de


la operació n, puede seguir ejecutando, y el modulo responderá mediante una línea de
interrupció n cuando el dispositivo esté listo o haya finalizado. Mientras eso ocurre, el
procesador continú a ejecutando el programa en curso. Los pasos para atender la interrupció n
son iguales a los pasos que hemos visto. En esta técnica también se pierde tiempo valioso,
debido a que cada vez que se interrumpa al procesador se deberá guardar todo el estado
actual en la pila. Ademá s, ¿có mo se sabe que dispositivo interrumpió ? Interrupciones
vectorizadas, PIC. Cuando un mó dulo quiere interrumpir le informa al PIC, el PIC envía el
pedido al procesador y este responderá cuando lo crea necesario, una vez aceptada la
petició n, el procesador envía la confirmació n al PIC, y el PIC le envía esta señ al al mó dulo
correspondiente para que le responda nuevamente con un vector de interrupciones que
determina en donde tiene que ir a buscar la rutina del gestor de interrupció n para ese
periférico. El PIC toma esa palabra y lo coloca en el bus de datos para que el procesador lo
busque en el vector de interrupciones. Así, una vez finalizado estos pasos, el modulo se
encarga de hacer la transferencia, no el PIC. Ambas técnicas mencionadas hasta ahora
requieren la intervenció n del procesador.

E/S con DMA, la primera ventaja es que no hay interacció n del procesador má s que para la
configuració n a la hora de iniciar la transferencia de datos. Cuando el volumen datos a
transferir es un muy grande y el periférico es de alta velocidad.
El DMA requiere de un mó dulo adicional al bus del sistema que se conecta con el mó dulo de
e/s y la memoria principal, el DMAC.
Su objetivo es imitar al procesador cuando este le ceda el bus de control, o este forzado a
cederlo, para realizar la transferencia de datos. Así, la intervenció n del procesador solo tiene
lugar a la hora de establecer los pará metros de la transferencia, es decir, la dirección de
memoria donde se acceden a los datos; la dirección del dispositivo de e/s, y el tipo de operación
(si se lee o escribe), y el número de bytes a transferir. Toda esta informació n radica en los
registros del DMAC. Una vez realizada la preparació n la CPU se desvincula de la operació n, y
esto trae consigo una ventaja y es que la CPU puede hacer algo productivo mientras tanto.
Etapa de inicialización
Realización de transferencia. Cuando el periférico está listo para transferir, se lo indica al
DMAC por medio de una línea de petició n, el DMAC solicita el bus del sistema, cuando lo
recibe, le indica al periférico que ya se puede transmitir.
Mientras se lleva a cabo la transferencia se van actualizando los registros del DMA, una vez
que se termina de transferir la palabra o bloque de palabras, el DMA libera el bus y mediante
una línea de interrupció n le comunica la finalizació n del procedimiento a la CPU.
La desventaja de esto es que, el exceso del uso del bus de control por parte del DMA puede
degradar el rendimiento de la CPU ya que no puede acceder a memoria para ejecutar
instrucciones. Sin embargo, este problema se puede reducir incluyendo una memoria cache,
que contendrá un conjunto de instrucciones para que la CPU pueda seguir ejecutando. Así,
cuando la CPU no requiere ir a memoria, y si a la cache, el DMA aprovecha para realizar las
transferencias de datos.

Para los casos en los que no se cuenta con una cache, entonces se pueden realizar las
operaciones de transferencia por dos técnicas.
Una es la denominada robo de ciclo, en dó nde la transferencia se hace de a palabras, se
transfiere una palabra y después libera el uso del bus, así la transferencia tarda má s en
completarse pero no se degrada el sistema. Para la CPU no es una interrupció n cada vez que el
DMA pide el bus, no se guarda el contexto alguno del procesador. Por lo que para volú menes
grandes de informació n es la técnica má s ó ptima.
La otra es, por ráfaga en donde el control del bus no es cedido por el DMA hasta que no haya
finalizado la transferencia una parte o todo del bloque de datos, haciendo que la trasferencia
se complete de forma má s rá pida.

Canales de E/S
Los canales representan una visió n má s amplia que el concepto de DMA. Un canal de E/S se
encarga totalmente de ejecutar instrucciones de entrada o salida. Estas instrucciones está n en
memoria principal y son ejecutadas por un procesador interno propio del canal. Son comunes
dos tipos de canales, canal selector; controla varios dispositivos (manejados por un
controlador) de alta velocidad y en un instante dado se dedica a transferir datos a uno de esos
dispositivos. Un canal multiplexor puede transferir a varios dispositivos de velocidad reducida
tan rá pido como es posible.
Apuntes de clase 4
Segmentación de Instrucciones
El ciclo de instrucció n que hemos visto era secuencial en la arquitectura CISC. Un conjunto
complejo de instrucciones. Una instrucció n pasaba por varios estados y una vez finalizada su
ejecució n, se continuaba con la siguiente, ciclo de instrucción y captación y ciclo de
interrupción.
Cuando se habla de segmentació n de instrucciones, la idea es tener a má s de una instrucció n
en un estado o etapa distinta al mismo tiempo. Si se va estar ejecutando en la ALU una
instrucció n a, entonces ya se debe estar captando la siguiente instrucció n b simultá neamente.
Así, el programa se completa má s rá pido y se optimiza.
En otras palabras es una forma de organizar el hardware de manera ó ptima para realizar má s
de una operació n al mismo tiempo, descomponiendo el proceso de ejecució n de las
instrucciones en etapas/estados/procesos para explotar el paralelismo del flujo secuencial de
las instrucciones. Dentro de las características que contiene este modelo, es que unifica las
etapas a la velocidad de la má s lenta. Ademá s corresponde a la arquitectura RISC.

Ciclo de Instrucción Segmentado


Cada una de estas etapas está asociada a un hardware.
El ciclo de instrucció n se va a dividir en Fetch Bú squeda de Instrucció n, en donde se accede al
program counter para ir a captar la instrucció n correspondiente y guardarlo en el registro IR,
después el PC se incrementa.
La otra etapa, Decodificacion, se decodifica la instrucció n, se buscan los operandos
dependiendo del modo de direccionamiento que tengamos y se almacenan al final en registros
del banco de registros, y finalmente se guardan en registros internos de la segmentació n.
La otra etapa, Ejecución, se realiza la operació n correspondiente, por ejemplo podría ser una
suma, y el resultado de la operació n se registra en la ALU.
La otra etapa es el Acceso a memoria que dependiendo del tipo de instrucció n podrá
necesitarla o no. Por ejemplo, una operació n de suma, omitiría esta etapa, pero si es que se
requiere una operació n de lectura o escritura de memoria, lo haría. En todo caso, la ú ltima
etapa WriteBack se encarga de almacenar el valor del registro de la ALU, en un registro del
banco de registros.

No todas las instrucciones pasan por todas las etapas.


Prestaciones del cauce segmentado
Teó ricamente el má ximo rendimiento posible será cuando se complete una instrucció n con
cada ciclo de reloj. Esto no es reducir el tiempo en que se ejecuta una instrucció n.

Suposiciones y Atascos
Todas las etapas duran lo mismo, todas las etapas se pueden manejar en paralelo, y las
instrucciones siempre pasan por todas las etapas.

Todas estas suposiciones dan lugar a los problemas que se generan en el cauce. Llevando al
CPI a un valor mayor a 1.
Y estos son los atascos/stall/paradas. Son situaciones que impiden que la siguiente
instrucció n se ejecute en el ciclo que le corresponde.
Estructurales, conflicto de recursos, como acceder a un mismo recurso hardware cuando dos o
má s instrucció n lo necesita. Una solució n a esta problemá tica seria duplicar los recursos en la
ALU; turnar el acceso al banco de registros en la etapa D, W, escribir en la primera mitad del
ciclo, y leer en la segunda mitad del ciclo; o separar la memoria en instrucciones y datos.

Por dependencia de datos en donde los operandos fuente o destino de una instrucció n no está n
aun disponibles para otra etapa que las requiere. Existen varias dependencias de datos, RAW,
una instrucció n genera un dato que otra posterior lee.
Para abordar este problema, existen dos soluciones. La primera es una solució n de hardware,
que implica que tan pronto como se genere un resultado en una etapa del cauce segmentado,
no espere a que este se escriba en registro del BR, sino que se debe pasar la instrucció n
directamente a la instrucció n que lo necesita, este método se conoce como forwarding. La
segunda técnica es por software, y depende del compilador, y má s que resolver los evita, en
donde se puede reordenar las instrucciones del có digo sin cambiar su finalidad. Así, evitamos
la combinació n de instrucciones que generen dependencias RAW.
Por dependencia de control en donde la ejecució n de una instrucció n depende de có mo se
ejecuta la otra. Una instrucció n puede modificar el flujo del programa. Como por ejemplo una
instrucció n de salto condicional. Y este representa una penalizació n, pérdida de tiempo.
Una solució n a esto es, actuar en la etapa D, evaluar la condició n del salto y captar la direcció n.
Así, no hay que esperar hasta la ú ltima etapa para introducir al cauce la siguiente instrucció n,
reduciendo las paradas.
Y esta solució n se puede implementar por medio de una técnica hardware puede ser técnica
está tica donde se predice que nunca se salta por lo tanto capta la siguiente instrucció n, esto
puede generar o un acierto, o un fallo cuando era una instrucció n de salto. La otra técnica
está tica es predecir que siempre se salta, y lo mismo que la anterior podría estar equivocado o
no.
Una técnica dinámica, en donde se pre-configuro no saltar y se usa un conmutador, este,
cambiara su condició n de no saltar a si saltar, cuando se tope con dos instrucciones que le
garanticen que realmente se produce el salto. Por lo tanto, queda configurado con la condició n
de si saltar, hasta que se tope con otras dos instrucciones siguientes que le indicaron que no
debía hacerlo. Otra técnica diná mica es haciendo uso del branch target buffer es una memoria
cache asociada en la etapa de bú squeda de instrucció n, que contiene la direcció n de
instrucció n de salto, la direcció n hacia dó nde salta, y algunos bits de estado que indican
historial de uso de esa instrucció n. Cuando se capta la instrucció n, se verifica si ésta, se
encuentra en el BTB, si así es, entonces se toma la decisió n, mediante el historial de saltar o no
saltar.
Otra técnica salto retardado, cuando se evalú a saltar o no saltar va a pasar un tiempo hasta
que se determine, en ese tiempo que transcurre se puede aprovechar para introducir, en la
etapa siguiente, otra instrucció n que no dependa del salto en el cauce. Estas instrucciones que
se introducen siempre se ejecutan y es la idea.

Arquitectura RISC
Características principales que hemos visto, una mejora de las características de CISC, con
tecnología má s desarrollada, mejor eficiencia en la ejecució n, etc.
Inconvenientes con CISC, el software es mucho má s caro que el hardware, lenguajes de
programació n má s complicados, muchos modos de direccionamiento, repertorio grande de
instrucciones, mucha complejidad.

Apuntes de clase 7
Memoria
La memoria de una computadora tiene una organizació n jerá rquica. Es decir que está
organizada en niveles ubicados en distintos lugares físicamente y en cada nivel se presenta
una tecnología diferente gestionan los datos de manera independiente.
REGISTROS CPU > CACHE>MEM PRIN>MEM VIRTUAL en términos de tiempo de acceso.

REGISTROS CPU < CACHE<MEM PRIN<MEM VIRTUAL en términos de tiempo capacidad de


almacenamiento.

Objetivo de la jerarquía es organizar los datos y los programas en memoria de manera que las
palabras de memoria necesarias estén normalmente en la memoria má s rá pida. Diagrama de
pirá mide. También debe haber correspondencia de direcciones en los distintos niveles Y
como objetivo principal la velocidad del sistema debe ser la velocidad del nivel má s rá pido a
menor costo.
Sin embargo la jerarquía debe contemplar algunas propiedades, la inclusión, es decir que una
palabra de memoria que figura en un nivel debe figurar en todos los niveles inferior de la
jerarquía. Por lo tanto debe cumplir con la otra propiedad coherencia, que indica que si el un
dato fue actualizado en algú n nivel de la jerarquía, debe ser actualizado también en las demá s.

La localidad de referencias indica que los elementos de memoria referenciados recientemente


volverá n a serlo en un futuro pró ximo, como en los bucles, localidad temporal. Así, esa
direcció n se manda a los niveles má s rá pidos de la jerarquía.
La localidad especial indica que la direcció n siguiente a la recientemente referenciada va a ser
accedida. Por lo tanto se sube al nivel superior de la jerarquía un bloque de direcciones que la
contenga, junto a sus respectivas siguientes instrucciones.

La etapa de acceso al cauce M, se divide en los siguientes pasos, se traduce la direcció n virtual
a la física (funció n de correspondencia), se busca en el primer nivel de la cache, si falla se
busca en la segunda, si falla se prepara para acceder a memoria principal.

Memoria Cache
Es una memoria pequeñ a con la memoria principal. La localizació n puede ser fuera o adentro
de la CPU, hoy en día se mantiene adentro. El tamañ o de informació n que circula entre la el
procesador y la cache es siempre una palabra, Cuando la CPU quiere buscar una instrucció n, lo
hace en la cache, si lo encuentra es un acierto, caso contrario es un fallo, y es la cache que le
pide a la memoria principal la palabra buscada y esta ú ltima le devuelve un bloque, por los
principios de localidad que hemos visto. Y después es la cache quien le brinda la palabra
solicitada al procesador. Así, es por bloques de palabra la comunicació n con la MP.

La memoria principal se organiza de a bloques de cierta cantidad de palabras. Cada bloque


tiene un identificador. A su vez en la memoria cache se van almacenar una etiqueta que
identifica el bloque correspondiente de memoria principal que contiene, y otro campo con su
bloque correspondiente.
Cuando un ocurre un fallo, causa en el procesador un retardo hasta que el dato esté
disponible. Lo cual indica que hay técnicas para predecir la cantidad mínima de fallos. No es
una tarea fá cil resolver un fallo, hay que tener en cuenta la latencia, que es el tiempo necesario
para acceder a memoria principal, el ancho de banda, que es la cantidad de informació n por
unidad de tiempo que puede transferirse desde o hacia memoria.
Para solucionar estos problemas se necesita de hardware.

Diseño Cache
La forma en la que está organizada la memoria cache.
Como debe ubicar (política de ubicación) los bloques. Existen tres tecinas, la má s simple es
la directa, un bloque de memoria principal solo puede residir en una sola línea de la cache. Si
hace referencias a instrucciones que pertenecen a bloques distintos, pero asignados a la
misma línea, se estarían intercambiando continuamente y la taza de aciertos seria baja. La
otra técnica es la asociativa, en donde un bloque puede almacenarse en cualquier línea de la
cache. Otra es asociativa por conjunto en donde a un bloque de memoria le corresponde un
solo conjunto, pero puede pertenecer a cualquier línea de ese conjunto. Así, es necesario que
la memoria cache se divida por conjuntos. Esta técnica combina lo mejor de las anteriores.
Que bloque reemplaza (política de reemplazo). El reemplazo de informació n en la cache se
corresponde con la política de ubicació n. Si es directa, lo que vaya a colocar en la línea que le
corresponde estará sobrescribiendo lo que contiene en ese momento. Si es asociativa,
cualquiera de las dos, existen algunas formas. La implementació n de cada forma, se determina
por otro nú mero de bits de estado en la línea de la cache. Estos bits pueden significar
dependiendo del algoritmo implementado distintos pará metros. Por ejemplo, cuá nto tiempo
lleva en la cache, o cuando fue su ú ltimo acceso, etc. Específicamente el algoritmo LRU
reemplaza el bloque que se ha referenciado menos ú ltimamente, este método requerirá unos
bits adicionales que determinen el tiempo. Otro algoritmo FIFO sustituye aquella línea de
cache que ha estado má s tiempo albergando en la memoria. Otro algoritmo, LFU, sustituye el
bloque de la línea que menos ha sido usado o referenciado. Otra alternativa no tan eficiente es
la aleatoria, que al azar reemplaza cualquier línea.
Como actualizo los datos (política de escritura en aciertos). Cuando se escribe en la memoria
cache, es decir, cuando se actualiza un dato en la cache, que pasa con esos datos en los otros
niveles de la jerarquía? Para eso se cuenta con dos técnicas, escritura inmediata, en donde se
actualizan simultá neamente en cache y en todos los niveles inferiores, aunque genera una
demora en la operació n debido al acceso a memoria que requiere en ese momento. Otra forma
es hacerlo como post escritura en donde solo se actualiza en la cache, y el bloque contenido se
marca con un bit de que ha sido actualizado, esto amerita que los contenidos en memoria
principal y niveles inferiores no sean los correctos y si algú n mó dulo de e/s precisa esos datos
estaría ejecutando datos erró neos. Con las políticas de escritura en fallos, cuando esa palabra a
modificar no se encuentra en la cache, entonces o se busca de memoria principal el bloque, el
dato se lleva a cache y se sobrescribe ahí por medio de post escritura, y otra forma de hacerlo
es sobrescribirlo en la memoria principal directamente.

Apuntes de clase 8
Procesadores superes calares

Procesamiento escalar ejecució n de instrucciones de forma secuencial. Procesamiento


segmentado, la ejecució n se divide en etapas y simula el paralelismo de ejecució n de
instrucciones.

Debido a la evolució n de los cauces segmentados dio origen a dos técnicas para mayores
prestaciones. Procesadores supersegmentados y procesadores superescalares.

Partiendo desde el concepto de segmentació n de sauce, en donde aunque se ejecuten varias


instrucciones concurrentemente solo hay un ciclo de reloj para varias etapas en un mismo
instante.

Enfoque Supersegmentado

Estas etapas no duran el mismo tiempo, no todas las instrucciones necesitan un ciclo de reloj
completo, por lo que podríamos dividir el ciclo de reloj en subciclos Así, en vez de hacer una
tarea en un ciclo estaríamos haciendo dos tareas en dos subciclos por ejemplo. Si al final todas
las etapas las dividimos en subciclos, se puede aprovechar la velocidad de transferencia de los
datos entre las etapas del cauce, aumentando el grado de paralelismo e incrementando a la
velocidad de ejecució n del programa.

Por ejemplo, si en la etapa de captació n se puede obtener la instrucció n en la mitad del ciclo F.
entonces la otra mitad sobrante puede aprovechar para ir a buscar a la siguiente instrucció n.
De igual manera se puede suponer que se podrá hacer lo mismo con el resto de las etapas.
Enfoque superescalar

Con un hardware modificado como la duplicació n de recursos como CPU, ALU, se puede lograr
completar má s de una instrucció n simultá neamente y de manera independiente. El grado de
paralelismo y velocidad es aú n mayor.

Es decir que se puede captar simultá neamente varias instrucciones, ejecutar instrucciones
aritméticas también simultá neamente, y mientras leer o escribir en registros.

Para poder realizar este enfoque se debe ejecutar en paralelo instrucciones secuenciales
independientes entre sí. Por eso se debe considerar las limitaciones que este nuevo enfoque
que son, dependencias de datos RAW, WAW, WAR, conflictos de recursos, dependencias
relativas al procesamiento como instrucciones de salto.
A su vez, existe también el paralelismo de má quina que determina la medida de la capacidad
del procesador para realizar el paralelismo de instrucciones. Esto depende de la cantidad de
instrucciones captadas por ciclo, el nú mero de unidades funcionales, y el mecanismo para
localizar instrucciones independientes. Es decir que debe haber una técnica que permita
identificar estas instrucciones má s allá del punto de ejecució n en curso que puedan
introducirse al cauce y ejecutarse. Siguiendo con el mecanismo de localizació n se debe tener
en cuenta entonces el orden en qué; se captan las instrucciones; se ejecutan las instrucciones;
y en có mo se actualizan los datos, la política de escritura vista en memoria. Ademá s, se debe
tener en cuenta la resolució n de dependencias de datos. Entonces, como el procesador puede
traer esas instrucciones fuera del bloque secuencial de instrucciones, debe ser capaz de
acomodar las diversas dependencias de datos y conflictos que puedan surgir. Para esto se
debe controlar estos problemas y mediante a las políticas de emisió n se pueden tratar de
minimizarlos. Políticas de emisión y finalización en orden la má s sencilla es emitir
instrucciones en el orden exacto en que lo haría una ejecució n secuencial y escribir los
resultados en ese mismo orden. Emisión en orden y finalización desordenada se emite en
orden las instrucciones instrucció n 1 y 2, pero algunas instrucciones pueden terminar antes
que la previa a esta. Por ejemplo instrucció n 2 termino antes que la 1.
Emisión desordenada y finalización desordenada hace uso de la ventana de instrucciones.
En donde, completar…

Una solució n a las dependencias WAR, WAW que son conflictos de almacena amiento es el
renombramiento de registros. Varias instrucciones compiten por el uso de los mismos
registros generando restricciones en el cauce. Se pueden escribir en nuevos registros ló gicos
diná micamente. Cuando se crea un nuevo valor de registro se asigna un registro para ese
valor. R3, puede ser entonces R3a, R3b, R3c, etc.

Tratamiento de excepciones imprecisas

En el momento que se produce la excepciones hay varias instrucciones en ejecució n, Si una


instrucció n 1 produjo la excepció n que pasa con las previas o las posteriores? Las posteriores
hemos visto que pueden terminar antes que las respectivas previas. Entonces lo que se debe
hacer es, terminar las anteriores a la instrucció n 1, abortan la ejecució n de la instrucció n 1 y
sus posteriores. Una vez atendida la excepció n, se vuelve a comenzar por la instrucció n 1.

Excepciones precisas no conviene que las instrucciones siguientes a la actual terminen


antes. Y para atender la excepció n precisa como una interrupció n externa, se ejecuta la actual,
se paran las emisiones de instrucciones y se atiende el pedido de interrupció n.

Emisión desordenada y finalización ordenada, renombramiento de registros es el


mejor rendimiento para un procesamiento escalar.

Apuntes de clase 9
Procesamiento Paralelismo

Hasta el momento hemos estudiado el paralelismo a nivel de instrucciones con un solo


procesador.
Ahora, con la utilidad de varios procesadores que puedan ejecutar en paralelo una carga de
trabajo dada.
Existe una clasificació n de procesamiento paralelo segú n Flynn segú n sus capacidades, siendo
las má s comunes SMP, y NUMA.
El primero en esta categoría de todos es SISD, que abarca a los monoprocesadores. Se cuenta
con un ú nico procesador que interpreta una ú nica secuencia de instrucciones, haciendo uso
de ú nica memoria, para operar con los datos almacenados en una ú nica memoria.
Otra SIMD, en una arquitectura SIMD, una sola instrucció n se ejecuta simultá neamente en
mú ltiples flujos de datos. Esto se logra mediante un conjunto de procesadores o unidades de
procesamiento que operan en paralelo. Una ú nica unidad de control envía una ú nica secuencia
de instrucciones a un cierto nú mero de elementos de proceso con un conjunto de datos
diferentes, que pueden una memoria dedicada para cada EP.
Otra es MIMD en una arquitectura MISD, mú ltiples instrucciones se ejecutan en paralelo sobre
mú ltiples flujos de datos.
Otra es MIMD, en una arquitectura MIMD, mú ltiples instrucciones se ejecutan en paralelo
sobre mú ltiples flujos de datos. Cada procesador o unidad de procesamiento puede ejecutar
un programa independiente. Es como dividir un programa grande unos pequeñ os programas
con los datos necesarios para su correcta ejecució n. Es un conjunto de procesadores que
ejecutan secuencias de instrucciones diferentes en simultá neo, a cada procesador le
corresponde una unidad de control. Todos los anteriores también lo hacían en simultá neo.
Cada procesador maneja un conjunto de datos diferentes a los otros.
Existen dos distinciones con esta arquitectura, las que utilizan Memoria Compartida y a su vez
pueden ser SMP y NUMA. Y las que utilizan Memoria Distribuida, clusters.
TERMINAR DE RESUMIR

Apuntes de clase 10
BUSES DEL SISTEMA
Todas las unidades está n conectadas, memoria, mó dulos de e/s y procesador.
Existe un sistema de interconexió n de buses. Uno es el bus de datos por el cual se transmiten
los operandos/instrucciones. Y el ancho del bus de datos es un factor a la hora de determinar
las prestaciones. Es decir si es de 64 bits, y quiero transferir un dato de 64 bits, puedo
realizarlo de una sola vez. En cambio al tener 8 bits y un dato de 64 bits, debería realizar 8
veces má s la transmisió n. Por ejemplo en el MSX88 era de 8 bits, WinMips era de 32 bits.
Bus de direcciones se usa para referenciar posiciones de memoria, como algú n operador
fuente o destino. Cuando el procesador quiere leer una palabra de una determina memoria se
hace uso de este bus. Este bus determina la má xima capacidad de memoria posible en el
sistema, pueden ser 8 bits de ancho y direccionar unas 2 a la 8 direcciones de memoria.
Bus de control por donde circulan las señ ales de escritura o lectura en memoria, pedidos de
interrupció n, excepciones, pedido del bus DMA, o escrituras o lecturas en mó dulos de e/s,
como señ ales de reloj.
Un bus es un medio de transmisió n físico para la comunicació n de dos o má s dispositivos y
segú n su tamañ o se podrá enviar cierta cantidad de bits.
Tener un solo bus generaría retardo de propagació n de la informació n que viaja por el bus,
para eso se crea una jerarquía de buses.
En este jerarquía se puede ver qué, que existen buses locales que comunican al procesador
con los mó dulos de e/s, cache, un bus del sistema que comunica a la cache, con la memoria
principal, y bus de expansió n para los periféricos.

Existen algunos tipos de buses dedicados a una sola funció n, es decir, líneas separadas para
buses de direcciones y buses de datos. Es decir N líneas/bits para direcciones, N líneas/bits
para datos, y una línea para señ ales de control que pueden ser escritura o lectura por ejemplo.
O multiplexados, en donde solamente se usan en las mismas líneas para direcciones o datos.
Menos líneas pero una mayor implementació n para su uso correcto.
N líneas/bits para ambas propó sitos, direcciones y datos. Una línea para señ ales de control y
otra línea para determinar el definir si se trata de direcciones o datos.

Arbitraje del bus


Hay que tener en cuenta que solamente una unidad puede tener control del bus en un instante
dado.
Para esto, existen técnicas de arbitraje, centralizado en donde un ú nico dispositivo hardware
es responsable de asignar tiempos en el bus, siendo parte del procesador o existiendo como
un mó dulo separado. Otro forma es hacerlo distribuido, en donde algú n modulo puede
controlar el acceso al bus.

También podría gustarte