Unidad 2.
Comunicación interna en la computadora.
2.1 Buses.
BUSES DEL SISTEMA
Funciones que realiza
El bus se puede definir como un conjunto de
líneas conductoras de hardware utilizadas para la transmisión de datos entre
los componentes de un sistema informático. Un bus es una ruta que conecta
diferentes partes del sistema, como el microprocesador, la controladora de
unidad de disco, la memoria y los puertos de entrada/salida, para permitir la
transmisión de información.
En el bus se encuentran dos pistas
separadas, el bus de datos y el bus de direcciones. La CPU escribe la dirección de la
posición deseada de la memoria en el bus de direcciones accediendo a la
memoria, teniendo cada una de las líneas carácter binario. Es decir solo pueden
representar 0 o 1 y de esta manera forman conjuntamente el número de la
posición dentro de la memoria (es decir: la dirección)
·
Estructuras de interconexión
Existen dos estructuras de operaciones
Entrada/Salida que tienen que ver con los buses, son: el bus único y el bus
dedicado.
El bus dedicado trata a la memoria de manera
distinta que a los periféricos (utiliza un bus especial) al contrario que el
bus único que los considera a ambos como posiciones de memoria. Este bus
especial que utiliza el bus dedicado tiene 4 componentes fundamentales:
o Datos:
Intercambio de información entre la
CPU y los periféricos.
o Control: Lleva
información referente al estado de los periféricos (petición de
interrupciones).
o Direcciones:
Identifica el periférico referido.
o Sincronización:
Temporiza las señales de reloj.
La mayor ventaja del bus único es su
simplicidad de estructura que le hace ser más económico, no permite que se realice
a la vez transferencia de información entre la memoria y el procesador y entre
los periféricos y el procesador.
El bus dedicado es mucho más flexible y
permite transferencias simultáneas. Su estructura es más compleja y por tanto
sus costes son mayores.
Bus es una voz inglesa que significa "transporte". Aplicada a la informática, permite significar la idea de las transferencias internas de datos que se dan en un sistema computacional en funcionamiento. En el bus todos los nodos reciben los datos aunque no se dirijan a todos los nodos, los nodos a los que no van dirigidos simplemente lo ignorán.
Este sistema se usan, a veces, incluso en otras topologias como la ethernet que, aunque es en forma de estrella, se comporta como un bus cuando el concentrador es un hub en vez de un switch.
En Informática, bus es el conjunto de conductores eléctricos en forma de pistas metálicas impresas sobre la tarjeta madre del computador, por donde circulan las señales que corresponden a los datos binarios del lenguaje máquina con que opera el Microprocesador.
Hay tres clases de buses: Bus de Datos, Bus de Direcciones y Bus de Control. El primero mueve los datos entre los dispositivos del hardware: de Entrada como el Teclado, el Escáner, el Ratón, etc.; de salida como
Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad.
El Bus de Direcciones, por otra parte, está vinculado al bloque de Control de
El Bus de Control transporta señales de estado de las operaciones efectuadas por el CPU con las demás unidades.
Una tarjeta-madre tipo ATX tiene tantas pistas eléctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de
El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultáneamente. Así, el Bus de datos transfiere 8 bytes a la vez.
Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el
Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus.
http://es.wikipedia.org/wiki/Bus_de_datos
Concepto y Función
Es el elemento responsable de establecer una correcta interacción entre los diferentes componentes del ordenador, es por lo tanto, el dispositivo principal de comunicación.
Es el elemento responsable de establecer una correcta interacción entre los diferentes componentes del ordenador, es por lo tanto, el dispositivo principal de comunicación.
En un sentido físico, su descripción
es: conjunto de líneas de hardware (metálicas o físicas), utilizadas para la
transmisión de datos entre los componentes de un sistema informático.
En cambio, en sentido figurado es:
una ruta compartida, que conecta diferentes partes del sistema.
Componentes y estructura
Un bus está compuesto por conductos (vías), éstas hacen posible la interconexión de los diferentes componentes entre sí, y principalmente conla CPU
y la memoria. En estos conductos se destacan dos subcategorías, el bus de datos
y el bus de direcciones; entre estos existe una fuerte relación, puesto que
para cada instrucción/archivo enviado por uno de los dos buses, por el otro va
información sobre esta instrucción/archivo.
Un bus está compuesto por conductos (vías), éstas hacen posible la interconexión de los diferentes componentes entre sí, y principalmente con
En lo referente a la estructura de
interconexión mediante los buses, existen de dos tipo:
· Bus único : considera
a la memoria y a los periféricos como posiciones de memoria, y hace un símil de
las operaciones E/S con las de escritura/lectura en memoria. Todas estas
equivalencias consideradas por este bus, hacen que no permita controladores DMA
(Direct Acces Memory ; de acceso directo a memoria).
· Bus dedicado : este en cambio, al considerar la memoria y periféricos como dos componentes diferentes, permite controladores DMA (dedicando un bus especial para él).
· Bus dedicado : este en cambio, al considerar la memoria y periféricos como dos componentes diferentes, permite controladores DMA (dedicando un bus especial para él).
Éste bus especial del bus dedicado,
contiene cuatro subcategorías más:
· Bus de datos : transmite información
entre la CPU y
los periféricos.
· Bus de direcciones : identifica el dispositivo a quién va destinada la información que se transmite por el bus de datos.
· Bus de control o de sistema : organiza y redirige la información hacia el bus pertinente para la información que se tiene que transmitir. Es el bus encargado de hacer el direccionamiento, quién realiza toda la función de direccionar es el controlador, diferente para cada tipo de dispositivo.
· Bus de direcciones : identifica el dispositivo a quién va destinada la información que se transmite por el bus de datos.
· Bus de control o de sistema : organiza y redirige la información hacia el bus pertinente para la información que se tiene que transmitir. Es el bus encargado de hacer el direccionamiento, quién realiza toda la función de direccionar es el controlador, diferente para cada tipo de dispositivo.
La capacidad operativa del bus
depende de: la inteligencia del sistema, la velocidad de éste, y la
"anchura" del bus (número de conductos de datos que operan en
paralelo)
Aquí tenemos una tabla de los difer
entes procesadores que ha habido hasta ahora y su capacidad de bus:
Procesadores
|
Bus
de direcciones (bits)
|
Bus
de datos (bits)
|
808680186
|
20
|
16
|
808880188
|
20
|
8
|
80286
|
24
|
16
|
80386
SX
|
32
|
16
|
80386
DX
80486 SX 80486 DX |
32
|
32
|
PENTIUM PENTIUM II/III/IV
AMD K5/K6/K7 AMD ATHLON/THUNDERBIRD AMD ATHLON XP/MP |
32
|
64
|
INTEL
ITANIUM
AMD ATHLON64 |
32/64
|
64/128
|
Buses actuales.
En conjunción con la Informática , la
electrónica innova permanentemente para crear nuevas y mas eficientes rutas de
comunicación entre los PC y sus periféricos. Muchas de estas vías pueden
realmente llamarse buses entre tanto que otras solo deben clasificarse como
puertos. A continuación una descripción de las principales
tecnologías empezando por las de mayor relevancia..
BUS PCI. Es el bus local
estándar en las motherboards actuales. El nombre abreviado proviene de
Peripheral Component Interconnect y fue dado a conocer por Intel en 1993. PCI
es un bus local compuesto por líneas físicas que permiten comunicar el
Microprocesador con otro componente. Los puntos de conexión de los
componentes son los SLOTS
o puertos de expansión que se observan en las motherboards, como bloques de
plástico blanco.
Detalles técnicos de PCI. 1.
Es un bus de 64 bits (64 líneas de transmisión). Se lo utiliza principalmente
como un bus de 32 bits. 2. Trabaja con frecuencias variadas: 33 MHz, 66 Mhz,
100 MHz, 400 Mhz, etc., lo que permite alcanzar un ancho de banda de gran
capacidad. 3. 32 lineas son utilizadas para transmitir datos y
direcciones en forma multiplexada (multiplexado= utilización de una misma línea
para transmitir datos y direcciones). Las demás líneas sirven para interpretar
y validar las señales correspondientes a datos y direcciones. 4. A diferencia de su
antecesor el bus AT (ISA), PCI utiliza circuitos PCI Bridge para comunicar al
Microprocesador con otros componentes, lo que permite que los dispositivos
acoplados en el bus PCI puedan trabajar con diferentes tipos de Microprocesadores.
5. El número de dispositivos que pueden conectarse al bus PCI está limitado a
32. No obstante, la norma PCI admite la jerarquización de buses incrementándose
el número de dispositivos que pueden conectarse. El software de configuración debe
ser capaz de realizar transacciones de configuración en todos los dispositivos
PCI que residen más allá del puente PCI/host (bridge). 6. Control de error en
la transmisión, mediante el uso de bits de control de paridad (uso de señales
de verificación de envio - recepción entre los dispositivos).
BUS AGP.
Accelerated Graphics Port.
Se trata de un bus independiente del bus general constituido por
un slot específico para tarjetas gráficas. Es
un bus de 32 bits que trabaja a 66 MHz, pero tiene la posibilidad de doblar o
cuadruplicar las características básicas, hasta una tasa de transferencia
máxima de 1064 Mbits por segundo. Puede decirse que no es un bus en el
sentido estricto de la palabra sino más bien una extensión de la norma PCI,
razón por la cual en algunos aspectos es idéntico a aquel. Actualmente es un
puerto de uso exclusivo para dispositivos gráficos de alta velocidad. Ver aquí la foto
de su ubicación física en una motherboard.
BUS USB.
1996. Universal serial bus. Es un nuevo
estándar para comunicaciones serie que resuelve muchos de los inconvenientes de
los antiguos puertos COM ( dificultades en la adaptación a un puerto COM libre,
conflicto de los vectores de interrupción IRQ, etc.). Presenta muchas
ventajas frente a sistemas tradicionales: velocidades de trabajo hasta de
480 Mb/s (USB 2.0), incluye alimentación eléctrica para dispositivos con bajo
consumo de energía ( alrededor de los 5 voltios), permite conectar hasta 127
dispositivos, todos ellos compartiendo el mismo canal; permite realizar
conexión y desconexión en "caliente" (sin apagar el equipo), permite
utilizar cables de hasta 5m de longitud para dispositivos de alta
velocidad. Actualmente todos los PCs disponen de por lo menos un par de
salidas USB y muchos dispositivos, como impresoras, ratones, escáneres,
webcams, equipos de fotografía digital, etc. que antes se conectaban a través
de puertos COM o LPT lo hacen ahora mediante USB. Mas detalles en el
apartado Puertos.
BUS
E-IDE. Enhanced Integrated Drive Electronics. Debe ser
considerado mas como una Interface. Se trata de una tecnología
electrónica que basa el control de la comunicación en una placa integrada en el
propio dispositivo. El bus lo constituye un cable plano de 40 u 80 hilos
conductores que comunica el conector del dispositivo (disco duro, CD-ROM o
grabador de CD) con el conector o puerto IDE de la motherboard. Las placas
base actuales se fabrican con dos puertos: IDE 0 e IDE1.
Teoricamente cada puerto IDE representa un canal.
Cada canal permite la conexión de hasta 2 drives (discos duros o unidades
opticas). Detalles de esta conexion se amplian bajo el tema 'Interfaces del Disco duro'.
BUS
SCSI. 1980, 1986. Small Computer System Interface. Es la
interface de mayor capacidad, velocidad y estabilidad para conectar
dispositivos directamente a una motherboard. En las computadoras desktop, SCSI
es una interface pues se fabrica sobre una placa que se inserta en un slot de
la motherboard (actualmente en slots PCI). Esta independencia física del
microprocesador tiene la gran ventaja de hacer que los dispositivos se
direccionen lógicamente en contraposición al direccionamiento físico que utiliza
IDE. La consecuencia inmediata es que los dispositivos quedan liberados de las
imposiciones que el Bios pudiera imponer pues SCSI se encarga de hacer el
trabajo completo de comunicación y configuración. Esta capacidad lo ha hecho el
preferido en equipos en los que se requiere estabilidad y alta velocidad de
transmisión, como los servidores.
La ultima versión de SCSI es la Wide Ultra 2 SCSI, que
usa un bus de 16 bits, un ancho de banda de 80MB/s y trabaja con cables planos
de 68 hilos.
La interface al trabajar como un dispositivo I/O (de
entrada y salida) permite en teoría conectar 8 dispositivos simultáneamente, en
una conexión en la que cada dispositivo se une al siguiente y en donde cada
dispositivo tiene su propio ID ante el host. El mayor uso de SCSI se da en la
conexión de discos duros, tape drives, unidades ópticas, escáneres e
impresoras. Los dispositivos externos que trabajan con interface SCSI
tienen dos puertos: uno para la entrada del cable y otro para conectarse al
siguiente dispositivo. El ultimo elemento debe cerrar la cadena mediante
un circuito 'terminador' para que la conexión funcione.
Bus Local.
Bus local. Bus entre la CPU , la memoria y dispositivos periféricos que
corre a la velocidad de la
CPU. En un computador personal, el bus VL y el PCI
suministran una transferencia de datos más rápida que el bus ISA tradicional. A
partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los
computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a través
de una vía de acceso interna de 32 bits (63 bits con el Pentium), conocida como
bus local, a la velocidad más alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin
embargo, tradicionalmente ha tenido acceso a sus dispositivos periféricos en
forma más lenta, en un bus ISA de 16 bits sólo a 8MHz. Incluso en el bus EISA
de 32 bits inherentemente más rápido corre en forma lenta para acomodar las
tarjetas ISA, que se conectan a éste. Los estándares de bus VL de VESA y de bus
local PCI de Intel se crearon para aprovechar las velocidades más altas de la CPU. El PC corre a 33MHz;
el bus VL hasta a 40MHz; esperándose más altas velocidades. Las tarjetas base
ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las
tarjetas PCI, o ambos.
http://www.glosarium.com/term/893,14,xhtmlLOCAL BUS
Teniendo en cuenta las mencionadas limitaciones del bus AT y la infalibilidad de los buses EISA y MCA para asentarse en el mercado, en estos años se han ideado otros conceptos de bus. Se inició con el llamado Vesa Local Bus (VL-Bus), que fue concebido y propagado independientemente por el comité VESA, que se propuso el definir estándares en el ámbito de las tarjetas gráficas y así por primera vez y realmente tuviera poco que ver con el diseño del bus del PC. Fueron y son todavía las tarjetas gráficas quienes sufren la menor velocidad del bus AT. Por eso surgió, en el Comité VESA, la propuesta para un bus más rápido que fue el VESA Local Bus.
Vesa Local Bus
Al contrario que con el EISA, MCA y PCI, el bus VL no sustituye al bus ISA sino que lo complementa. Un PC con bus VL dispone para ello de un bus ISA y de las correspondientes ranuras (slots) para tarjetas de ampliación. Además, en un PC con bus VL puede haber, sin embargo, una, dos o incluso tres ranuras de expansión, para la colocación de tarjetas concebidas para el bus VL, casi siempre gráficos. Solamente estos slots están conectados con
El VL es una expansión homogeneizada de bus local, que funciona a 32 bits, pero que puede realizar operaciones a 16 bits.
VESA presentó la primera versión del estándar VL-BUS en agosto de 1992. La aceptación por parte del mercado fue inmediata. Fiel a sus orígenes, el VL-BUS se acerca mucho al diseño del procesador 80486. De hecho presenta las mismas necesidades de señal de dicho chip, exceptuando unas cuantas menos estrictas destinadas a mantener la compatibilidad con los 386.
La especificación VL-Bus como tal, no establece límites, ni superiores ni inferiores, en la velocidad del reloj, pero una mayor cantidad de conectores supone una mayor capacitancia, lo que hace que la fiabilidad disminuya a la par que aumenta la frecuencia. En la práctica, el VL-BUS no puede superar los 66 Mhz. Por este motivo, la especificación VL-BUS original recomienda que los diseñadores no empleen más de tres dispositivos de bus local en sistemas que operan a velocidades superiores a los 33 Mhz. A velocidades de bus superiores, el total disminuye: a 40 Mhz solo se pueden incorporar dos dispositivos; y a 50 Mhz un único dispositivo que ha de integrarse en la placa. En la práctica, la mejor combinación de rendimiento y funciones aparece a 33 Mhz.
Tras la presentación del procesador Pentium a 64 bits, VESA comenzó a trabajar en un nuevo estándar (VL-Bus versión 2.0).
La nueva especificación define un interface de 64 bits pero que mantienen toda compatibilidad con la actual especificación VL-BUS. La nueva especificación 2.0 redefine además la cantidad máxima de ranuras VL-BUYS que se permiten en un sistema sencillo. Ahora consta de hasta tres ranuras a 40 Mhz y dos a 50 Mhz, siempre que el sistema utilice un diseño de baja capacitancia.
En el nombre del bus VL queda de manifiesto que se trata de un bus local. De forma distinta al bus ISA éste se acopla directamente en
Bus local. Bus entre la CPU , la memoria y dispositivos periféricos que
corre a la velocidad de la
CPU. En un computador personal, el bus VL y el PCI
suministran una transferencia de datos más rápida que el bus ISA tradicional. A
partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los
computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a través
de una vía de acceso interna de 32 bits (63 bits con el Pentium), conocida como
bus local, a la velocidad más alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin
embargo, tradicionalmente ha tenido acceso a sus dispositivos periféricos en
forma más lenta, en un bus ISA de 16 bits sólo a 8MHz. Incluso en el bus EISA
de 32 bits inherentemente más rápido corre en forma lenta para acomodar las
tarjetas ISA, que se conectan a éste. Los estándares de bus VL de VESA y de bus
local PCI de Intel se crearon para aprovechar las velocidades más altas de la CPU. El PC corre a 33MHz;
el bus VL hasta a 40MHz; esperándose más altas velocidades. Las tarjetas base
ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las
tarjetas PCI, o ambos.
EL
BUS LOCAL PCI
Cuando IBM diseño su primer ordenador, el PC, diseño un bus para la conexión de periféricos, que aunque en aquel entonces era mas que suficiente para los dispositivos existentes, quedo rápidamente obsoleto con la aparición de los nuevos microprocesadores rápidos y de los dispositivos que necesitaban una gran velocidad de transferencia para comunicarse con el procesador del sistema.
Este
bus fue denominado ISA, se encontraba disponible en dos versiones, una de 8
bits (que la integraban los primeros PC) y otra de 16 bits (que apareció junto
con los primeros AT con procesador 80286). Ambas versiones del bus ISA
funcionaban a una velocidad de 8 Mhz. si bien existen ordenadores compatibles
en los que la velocidad del bus se puede elevar hasta 10 o 12 Mhz.
Esta característica hizo que en poco tiempo los usuarios poseedores de ordenadores con procesadores386
a 40 Mhz o 486
a 33 Mhz. se vieran frenados de forma considerable al
hacer accesos al bus ISA.
Esta característica hizo que en poco tiempo los usuarios poseedores de ordenadores con procesadores
Dejando
a parte las soluciones propietarias desarrolladas por algunos fabricantes de
ordenadores, el primer bus local que tuvo una plena aceptación por parte del
publico en general fue el bus local VESA.
Esta tecnología aprovechaba el bus local del propio procesador para implementar dos o tres ranuras de expansión, mediante los cuales el usuario conectaba las tarjetas que normalmente contenían los dispositivos que podían representar en cuello de botella durante el funcionamiento del ordenador (Tarjeta grafica, y controladora de disco). Sin embargo, esta tecnología tenia como todo ventajas e inconvenientes. La ventaja principal era su bajo coste de implementación. Por otro lado los fabricantes se encontraron con una especificación del bus que era un poco vaga, por lo que rápidamente aparecieron problemas de incompatibilidad entre algunas placas base y determinadas tarjetas de expansión. Además el diseño eléctrico de este bus hacia que solo se pudieran diseñar placas con dos o a lo sumo tres ranuras de expansión VESA.
Para completar este relativamente desolador panorama, el bus VESA era de 32 bits, y al menos en un primer momento no existía una especificación de 64 bits.
Esta tecnología aprovechaba el bus local del propio procesador para implementar dos o tres ranuras de expansión, mediante los cuales el usuario conectaba las tarjetas que normalmente contenían los dispositivos que podían representar en cuello de botella durante el funcionamiento del ordenador (Tarjeta grafica, y controladora de disco). Sin embargo, esta tecnología tenia como todo ventajas e inconvenientes. La ventaja principal era su bajo coste de implementación. Por otro lado los fabricantes se encontraron con una especificación del bus que era un poco vaga, por lo que rápidamente aparecieron problemas de incompatibilidad entre algunas placas base y determinadas tarjetas de expansión. Además el diseño eléctrico de este bus hacia que solo se pudieran diseñar placas con dos o a lo sumo tres ranuras de expansión VESA.
Para completar este relativamente desolador panorama, el bus VESA era de 32 bits, y al menos en un primer momento no existía una especificación de 64 bits.
Para
crear un bus local que fuese aceptado tanto por la industria informática como
por los usuarios, una serie de compañías, entre ellas Intel, se unieron en un
comité, el cual fue el encargado de crear las especificaciones de lo que hoy en
día conocemos como bus PCI.
El
bus local PCI es un bus de alto rendimiento de 32 o 64 bits de anchura (casi
todas las implementaciones actuales soportan solo la versión de 32 bits) dotado
de líneas de datos y direcciones multiplexadas. Este bus esta diseñado como
mecanismo de interconexión entre componentes de la placa base, tarjetas de
expansión y subsistema de memoria, y el propio procesador.
En un sistema PCI típico, el subsistema formado por el procesador, la memoria cache externa o de segundo nivel y la memoria principal se conectan al bus PCI mediante un bridge o puente PCI. Este puente proporciona un acceso mediante el cual el procesador puede acceder directamente a los dispositivos PCI, ya sea mediante entrada/salida mapeada en la memoria del sistema o utilizando un espacio de direcciones separado para las operaciones de entrada/salida.
En un sistema PCI típico, el subsistema formado por el procesador, la memoria cache externa o de segundo nivel y la memoria principal se conectan al bus PCI mediante un bridge o puente PCI. Este puente proporciona un acceso mediante el cual el procesador puede acceder directamente a los dispositivos PCI, ya sea mediante entrada/salida mapeada en la memoria del sistema o utilizando un espacio de direcciones separado para las operaciones de entrada/salida.
La
especificación PCI permite la existencia de dispositivos PCI maestros o
masteres, los cuales con capaces de acceder a la memoria principal de ordenador
sin que sea necesaria la intervención del microprocesador. El bridge puede
disponer de algunas otras funciones destinadas a optimizar el rendimiento
general del sistema, como por ejemplo buffer de escritura y de arbitro del bus.
Las configuraciones PCI típicas permiten la conexión de hasta cuatro tarjetas de expansión.
En cuanto al tamaño de las tarjetas de expansión, se han definido tres tamaños, tarjetas largas, cortas y cortas de longitud variable. No es necesario que todos los sistemas soporten estos tres tipos de tarjetas.
Los dos tipos de voltajes soportados por el bus PCI (5 y 3'3 voltios) han tenido su influencia en el diseño de las tarjetas de expansión, de forma que se han definido tres tipos de tarjetas: una tarjeta de cinco voltios, que solo se puede conectar a las ranuras PCI de este tipo, una tarjeta "universal" que se puede conectar a ranuras de 5 y 3'3 voltios, y por ultimo otro tipo de tarjeta que solo se puede conectar a las ranuras de 3'3 voltios.
La velocidad estándar de funcionamiento del PCI es de 33 Mhz, por lo que asumiendo un ancho de banda de 32 bits es posible obtener velocidades superiores a los 120 MB/seg.
Las configuraciones PCI típicas permiten la conexión de hasta cuatro tarjetas de expansión.
En cuanto al tamaño de las tarjetas de expansión, se han definido tres tamaños, tarjetas largas, cortas y cortas de longitud variable. No es necesario que todos los sistemas soporten estos tres tipos de tarjetas.
Los dos tipos de voltajes soportados por el bus PCI (5 y 3'3 voltios) han tenido su influencia en el diseño de las tarjetas de expansión, de forma que se han definido tres tipos de tarjetas: una tarjeta de cinco voltios, que solo se puede conectar a las ranuras PCI de este tipo, una tarjeta "universal" que se puede conectar a ranuras de 5 y 3'3 voltios, y por ultimo otro tipo de tarjeta que solo se puede conectar a las ranuras de 3'3 voltios.
La velocidad estándar de funcionamiento del PCI es de 33 Mhz, por lo que asumiendo un ancho de banda de 32 bits es posible obtener velocidades superiores a los 120 MB/seg.
Bus de datos.
Sirve para transmitir
información entre el microprocesador, la memoria y los periféricos. Por él
circulan los datos y las instrucciones. Tiene tantas líneas como bits se
transmiten en paralelo (una para cada bit). El flujo es de doble sentido y a
mayor número de bits paralelos mayor podrá ser la velocidad de transmisión que
consigamos. El ancho de este bus (n° de bits que puede transmitir simultáneamente en paralelo) es una medida de la potencia del microprocesador. Este bus es como una autopista de datos electrónicos y cuanto más ancho sea, más datos podrán moverse al mismo tiempo.
El ancho del bus de datos es una de las características más importantes del microprocesador. Cuando decimos que un microprocesadores, por ej., de 16 bits, nos estamos refiriendo al ancho de su bus de datos.
http://www.lawebdelprogramador.com/diccionario/mostrar.php?letra=B&pagina=4
Bus de direcciones.
Bus de direcciones: El bus de Direcciones es un medio de comunicación unidireccional, debido a que los datos
fluyen en un único sentido, de la
CPU a la memoria u otros dispositivos.
En el bus de direcciones
se coloca la dirección del elemento a accesar y con ayuda del bus de datos
movemos la información de un elemento a otro. Ejemplo: Si la CPU quiere leer unos datos de
memoria para después enviarlo a la impresora o la pantalla, primero pone en el
bus de direcciones la dirección del dato en memoria, lo lee (lo obtiene a
través del bus de datos), después pone en el bus de direcciones la otra
dirección (la de pantalla o impresora) y escribe (con ayuda del bus de datos).
¿Quién
controla todo
este proceso......?
http://www.unicrom.com/Cmp_estructura.asp
Bus de direcciones
Es utilizado por el microprocesador para
señalar la celda de memoria (o el dispositivo de E/S) con el que se quiere
operar. El tipo de operación será de lectura o de escritura y los datos
implicados viajarán por el bus de datos.
Por él circula la expresión binaria de la
dirección de memoria a la cual el microprocesador quiere acceder. Tiene sentido
de flujo unidireccional desde el microprocesador hacia la memoria. Una vez
localizados los datos perdidos, su transmisión hacia el microprocesador (o
hacia donde sea) se hará a través del bus de datos.
Los dispositivos de E/S intercambian la
información con el microprocesador mediante los puertos de E/S. Cada puerto
está asociado con un determinado dispositivo y tiene una dirección que lo
identifica.
El ancho de este bus también es una medida
de la potencia del microprocesador, ya que determina la cantidad de memoria a
la que éste puede acceder, es decir, la cantidad de espacio direccionable. El
espacio de direcciones es el rango de valores distintos que el microprocesador
puede seleccionar. La cantidad máxima de direcciones disponibles será 2 a la n, siendo n el número de
líneas del bus de direcciones.
http://html.rincondelvago.com/bus-de-direcciones_dispositivo-dma.html
El bus de control
El bus de control es
una colección de líneas que transportan un conjunto de señales cuyo propósito
es la sincronía de todas las operaciones efectuadas por el CPU con los
diferentes subsistemas de un equipo de cómputo, destacan las líneas para
escritura (write) y lectura (read) de datos, el reloj del
sistema, líneas de interrupción, líneas de estado, etc. El uso de éstas líneas
se comprenderá mejor conforme se avance en éste curso. Los procesadores de la
familia 80x86 proveen dos espacios diferentes de direccionamiento, uno para la
memoria y otro para El Bus de Control es utilizado para sincronizar las actividades y transacciones con los periféricos del sistema. Algunas de estas señales, como R / W , son señales que
Bus de control, que transporta las señales de control y de estado, indicando
la
dirección de la transferencia de datos,
controlando la temporización de eventos
durante la transferencia, transmitiendo
las señales de interrupción, etc. En
definitiva, son las señales para
controlar y sincronizar todos los componentes. Las
señales de control parten desde la unidad
de control hacia el resto de elementos, y
las de estado parten del resto de los
elementos hacia la unidad de control.
Además, se suele distinguir dos tipos
de buses dependiendo de las partes del sistema que conectan: el bus que conecta
la CPU con la memoria
(bus interno o de CPU) y el que conecta la CPU con el resto de elementos (bus
de expansión, que es una prolongación del bus interno).
El bus de CPU es interesante en
relación con los tipos de memoria que exige, puesto que se dedica a transferir
datos entre la CPU
y la memoria. Destaca por su velocidad, y existen arquitecturas con velocidades
de más de 100 Mhz. Pero la clase realmente interesante de los buses son los
buses de expansión.
· Bus de control o de
sistema : organiza y redirige la información hacia el
bus pertinente para la información que se tiene que transmitir. Es el bus
encargado de hacer el direccionamiento, quién realiza toda la función de
direccionar es el controlador, diferente para cada tipo de dispositivo.
El bus del sistema
El bus del sistema
conecta a los elementos que forman una computadora Von Neumann, en una máquina
Intel 80x86 existen tres buses principales: el bus de datos, el bus
de direcciones y el bus de control. Un bus es un conjunto de
alambres por los cuales pasan señales eléctricas entre los componentes de un
sistema, éstos buses varían de procesador en procesador, sin embargo cada bus
transporta información equivalente para todos los procesadores. Un típico
componente de un sistema 80x86 utiliza niveles TTL estándar de señal, esto
significa que cada alambre en un bus utiliza un nivel de voltaje estándar para
representar los niveles lógicos de 1 y 0.
Papel del bus de control: a traves de este bus, la unidad de
control activa el MAR el MDR y los demas registros involucrados en los procesos
de lectura-escritura. Sincroniza el momento en que se activan AB y DB, esto
corresponde a un conjunto de microoperraciones necesarias para producir una
lectura o escritura en memoria.
Buses
normalizados.
Buses
normalizados más comunes
El Chipset marca las
características del bus de la CPU
Tipos de buses de
expansión
ISA
Usado en los primeros PC. Es de ocho bits por que usa ocho líneas para
comunicarse con tarjeta de placas. También hay de 16 bits.
Características:
Baja capacidad y amplia
difusión.
8 bits
16 bits
NCA
Es un ISD extendido de 32 bits. Es compatible con el ISA. No se usa para orden
de alto nivel avanzado y más avanzado.
EISD
Es un ISD extendido de 32 y compatibles con ISD. No se usaba para ordenes de
alto nivel.
Bases
locales Obtienen alto rendimiento entre la placa y las ranuras de
expansión. Trabaja a 33 Mhz.
TIPOS
VL-BUS
Instalado en los 468 de gama alta. No había acceso directo a RDM, y tenía que
intervenir o la CPU
o un canal DMD y esto tardaba mucho.
PCI
Evita el problema anterior creado por Intel.
Características:
- Bus de 32 bit de datos
y direcciones.
- Velocidad de 33 Mhz.
- Capacidad de transferir
datos de 132 Mb/seg.
- Soporta el bus
masterin´ (Bus master RMD)
- Permite realizar casos
concurrentes de escritura.
- Reparte de forma
inteligente la capacidad. Otorga más capacidad al dispositivo que más lo
necesite.
- Permite realizar casos
concurrentes de escritura.
- Soporta máximo 3 ó 4
slots por cada bus PCI
- Puede coexistir con
buses de otro tipo.
- Preparado para multitud
de plataformas. No sólo para PC.
- Incorpora facilidades (
Plug & Play)
- El coste de este tipo
de buses es muy bajo.
AG`P Específico
para controladores de vídeo. Bus de alto rendimiento de 32 bits y velocidad de
66 Mhz, su capacidad es muy superior.
Buses
normalizados de periféricos
SCSI Entándart
universal para la conversión de todo tipo de periféricos. Utilizado para
dispositivos de almacenamiento.
Características
- Sencillez
- Los dispositivos
conectados son específicos para el Scasi, es decir, son de tipo SCASI, esto
conlleva a que todos los dispositivos llevan conector de “E” y de “S” para el
SCASI.
- Contienen altas
prestaciones.
- Alto coste de
adquisición
SCSI 1 Ocho bits permite
conectar hasta 8 dispositivos. Realmente son sólo siente dispositivos, ya que
uno lo ocupa la controladora. La transferencia es de 3,3. Mb/seg. Hasta 5
Mb/seg.
SCSI 2 Se mejora la
velocidad. Hay cuatro tipos de SCSI .
Normal 8 bitss 5 Mb/seg
Fast 8 bits 10 Mb/seg
Wide 16 bits 10 Mb/seg
Fast-Wide 16 bits 20 Mb/seg
Ultra SCSI: Salió
en 1996, aumenta las prestaciones del SCSI. Compatible con Fast-SCSI 2 y con
Fast/Wide-SCSI 2.
Para buses de 8 bits.
Alcanza los 20 Mb/seg, y para buswes de 16 bits llega hasta 40 Mb/seg.
SCSI 3: Es otro
conjunto de estándares, muy especializado. Por ejemplo, uno de esos conjuntos
está orientado a serie en fibra óptica, y alcanza una gran velocidad en este
campo. SCSI 3 ya no es compatible con los otros, a favor de la velocidad.
USB: (universal
serial Bus). La información se transmite en serie. Su objetivo es superar los
inconvenientes de la conexión entre periféricos y ordenador.
IEEE
1394 Tiene los mismos objetívos (wire-fire)
2.2 Direccionamiento.
Introducción
El campo de operación de una instrucción especifica la operación que se debe realizar. Esta debe ser ejecutada sobre algunos datos almacenados en registros del computador o en palabras de memoria, es decir, sobre los operandos. El modo de direccionamiento especifica la forma de interpretar la información contenida en cada campo de operando para localizar, en base a esta información, el operando.
Los ordenadores utilizan técnicas de direccionamiento con los siguientes fines:
- Dar versatilidad de programación al usuario proporcionando facilidades tales como índices, direccionamientos indirectos, etc., esta versatilidad nos servirá para manejar estructuras de datos complejas como vectores, matrices, etc.
- Reducir el número de bits del campo de operando.
Al usuario que tiene poca experiencia, la variedad de modos de direccionamiento en un ordenador le puede parecer excesivamente complicada. Sin embargo, la disponibilidad de diferentes esquemas de direccionamiento le da al programador experimentado flexibilidad para escribir programas que son más eficientes en cuanto a número de instrucciones y tiempo de ejecución.
Es tal la importancia de los modos de direccionamiento que la potencia de una máquina se mide tanto por su repertorio de instrucciones como por la variedad de modos de direccionamiento que es capaz de admitir.
Definición: Los modos de direccionamiento de un ordenador son las diferentes formas de transformación del campo de operando de la instrucción en la dirección del operando.
En esta definición el término dirección debe interpretarse en su sentido más general de localización del operando, en cualquier lugar, y no en el sentido más estricto de dirección de memoria.
A la dirección obtenida de las transformaciones anteriores la llamaremos dirección efectiva. Esta dirección, en el caso de tratarse de una dirección de memoria, es la que se cargará en el M.A.R. o registro de dirección de memoria.
Llamando x a la información del campo de operando y Aef. a la dirección efectiva, la función f que a partir de x nos da Aef. constituirá el modo de direccionamiento empleado:
Aef. = f(x)
En la evaluación de la función f pueden intervenir otras informaciones además de la información presente en el campo de operando de la instrucción. Estas informaciones pueden residir en registros del procesador o en memoria.
La especificación del modo de direccionamiento puede ir en el código de operación o en el campo de cada operando. Normalmente se codifica en el código de operación si el número de modos es pequeño, en caso contrario se codifica con cada operando, esta última forma de codificación favorece la ortogonalidad.
Modos de direccionamiento más usuales
En los párrafos siguientes se irán describiendo los modos de direccionamiento más frecuentes. La mayoría de estos modos son comunes a muchas máquinas, sin embargo, hay otros que sólo se usan en determinados procesadores.
- Direccionamiento implícito
En este modo, llamado también inherente, el operando se especifica en la misma definición de la instrucción. El modo implícito se usa para hacer referencia a operandos de dos tipos:
- Registros: En el caso de que el código de operación se refiera en particular a un registro.
- Operandos en la pila: En el caso de que la operación se realice siempre sobre el dato situado en la cima de pila.
El primer caso es típico de las organizaciones de un solo acumulador. Generalmente en un ordenador de este tipo todas las instrucciones que actúan sobre el acumulador utilizan direccionamiento implícito.
En el segundo caso están la mayoría de las instrucciones de los ordenadores con organización de pila. Estas operaciones llevan implícitos los operandos que son los elementos de la cima de pila. Esto se debe a que en este tipo de máquinas la mayoría de las operaciones no tienen campos de dirección. También están en este caso las instrucciones PUSH y POP de la mayoría de los ordenadores cuyo operando implícito también es, como en el caso anterior, la cima de pila.
- Direccionamiento inmediato (o literal)
En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras el campo de operando contiene él mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para inicializar registros o palabras de memoria con un valor constante.
- Direccionamiento directo por registro
Se mencionó anteriormente que el campo de dirección de una instrucción puede especificar una palabra de memoria o un registro M procesador. Cuando se da este último caso se dice que el operando está especificado con direccionamiento directo por registro, en tal caso, el operando reside en uno de los registros del procesador que es seleccionado por un campo de registro de k bits en la instrucción. Un campo de k bits puede especificar uno de 2k registros. Este modo es típico de los ordenadores con organización de registros de uso general.
Las ventajas de este modo son:
- El acceso a los registros es muy rápido, por tanto el direccionamiento por registro debe usarse en las variables que se usen con más frecuencia para evitar accesos a memoria que son más lentos, un ejemplo muy típico del uso de este direccionamiento son los índices de los bucles.
- El número de bits necesarios para especificar un registro es mucho más pequeño que el necesario para especificar una dirección de memoria, esto es debido a que el número de registros del procesador es muy pequeño comparado con el número de direcciones de memoria. Sin embargo, hay que tener en cuenta que en los ordenadores modernos el número de registros ha aumentado considerablemente.
- Direccionamiento directo (o absoluto)
Este es el modo de direccionamiento más sencillo. El campo de dirección no necesita transformación alguna para dar la dirección efectiva, es decir la función que transforma el campo de operando en la dirección efectiva es la identidad. Esto significa que el campo de operando es ya la dirección efectiva.
Este direccionamiento sólo se usa en ordenadores pequeños en que el programa siempre se sitúa en la misma zona de memoria ya que dificulta la relocalización de los programas, es decir que el código de los programas no dependa de su situación en memoria. Ordinariamente este modo sólo se usa para acceder a direcciones del sistema que normalmente se refieren a operaciones de entrada y salida ya que estas direcciones no dependen del programa.
- Direccionamiento indirecto
En este modo el campo de operando de la instrucción indica la localización de la dirección efectiva del operando. El modo de direccionamiento indirecto puede adquirir diferentes formas según cuál sea el lugar donde se encuentre la dirección del operando. En general, todos los modos de direccionamiento tienen su versión indirecta que añade un eslabón más a la cadena del direccionamiento. Por ejemplo existe el direccionamiento indirecto por registro, en el que el registro especificado contiene la dirección del operando, no el operando mismo.
Este direccionamiento es útil cuando se trabaja con punteros ya que los punteros son variables que contienen las direcciones de los operandos, no los operandos mismos.
http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/capitulo19.htm
2.1.1 Modo real.
Esta forma de representación segmentada de las
direcciones es en realidad una imagen de como son manejadas internamente en el
procesador.
Los procesadores 8088
tienen registros de 16 bits que pueden servir para almacenar los desplazamientos, es decir,
cualquier dirección dentro de una zona de 64 KB (que se conoce como segmento). Disponen
además de 4 registros de segmento de 16 bits (CS, SS, DS y ES
H3.2),
en los que se almacenan las direcciones de inicio del segmento activo en cada
momento. Resulta así, que pueden direccionar un total absoluto de 1MByte,
y hasta 64 x 4 = 256 KB sin necesidad de cambiar los registros de
segmento. Esto es lo que se conoce como funcionamiento en modo real (como puede
verse, en realidad es una forma de manejar la memoria).

La figura adjunta muestra como se utilizan los
registros para señalar las direcciones de inicio de los diversos módulos de un
programa cargado en memoria (
E1.3.2)
dentro del espacio de memoria direccionable con 20 bits (00000-FFFFFh).

En la figura 1
se muestra una división de este
"Mega" en 16 segmentos cuyos desplazamientos son justamente 0h, 1h,
2h ... Fh.

El 80386 tiene dos modos de operación: modo de
direccionamiento real (modo real), y modo de direccionamiento virtual protegido
(modo protegido). En modo real el 80386 opera como un 8086 muy rápido, con
extensiones de 32 bits si se desea. El modo real se requiere primariamente para
preparar el procesador para que opere en modo protegido.
Modo protegido.
El modo protegido provee el acceso al
sofisticado manejo de memoria y paginado. Dentro del modo protegido, el software puede realizar un cambio de tarea para entrar en tareas en modo 8086 virtual (V86 mode) (esto es nuevo con este microprocesador). Cada una de estas tareas se comporta como si fuera un 8086 el que lo está ejecutando, lo que permite ejecutar software de 8086 (un programa de aplicación o un sistema operativo). Las tareas en modo 8086 virtual pueden aislarse entre sí y del sistema operativo (que debe utilizar instrucciones del 80386), mediante el uso del paginado y el mapa de bits de permiso de entrada/salida (I/O Permission Bitmap). Finalmente, para facilitar diseños de hardware de alto rendimiento, la interfaz con el bus del 80386 ofrece pipelining de direcciones, tamaño dinámico del ancho del bus de datos (puede tener 16 ó 32 bits según se desee en un determinado ciclo de bus) y señales de habilitación de bytes por cada byte del bus de datos.
Un 286 en modo protegido no podía volver al modo real salvo con un reset, lo que supuso una seria traba al desarrollo de software que explotase este modo de funcionamiento (no olvidemos que por entonces el estándar de facto en sistemas operativos era MSDOS). Además, seguíamos estando limitados a segmentos de 64k, y con el 386 al caer (siempre que se lanza un procesador nuevo, están los de las siguientes generaciones en diferentes estados de desarrollo) no compensaba el esfuerzo. Debido a la escasa relevancia del modo protegido del 286, nos referiremos genéricamente a modo protegido cuando hablemos de 386+.
Modo protegido y memoria extendida
La especificación EMS de Lotus/Intel/Microsoft,
permitía manejar grandes cantidades de datos (ahora no nos parecen tan
grandes), pero no resolvía el problema de grandes cantidades de código, ya que
el segmento de código no podía manejarse de esta forma. Esto presentaba
problemas no solo para programas grandes, sino para cualquier intento de
multiprogramación (
1.7),
cuando varios programas deben coexistir en memoria.

Como siempre, la solución vino de la mano de otro
avance tecnológico; en este caso, la aparición del procesador Intel 80286, que en 1982 inició la era del PC
AT. Este micro permite un acceso a memoria que recuerda vagamente la
especificación EMS, pero de forma nativa, ya que los mecanismos están incluidos
en el procesador. Como la política de Intel ha sido mantener
compatibilidad con los micros anteriores, el 80286
podía trabajar en modo real, imitando el funcionamiento del 8088
, mientras que la nueva forma se
denominó modo protegido.

El modo protegido utiliza los registros de segmento como punteros a unos nuevos registros de dirección de 24 bits denominados tablas de descripción ("Descriptor tables"), que permiten acceder a un máximo de 224 (16 MBytes) de memoria física, de forma que los registros de segmento son selectores que marcan el inicio de una dirección de 24 bits. La memoria que se hacía accesible mediante este sistema se denominó memoria extendida, para distinguirla de la antigua EMS [3]. La posterior introducción del 80386, con registros de 32 bits, permitió direccionar hasta 232 (4 GBytes) de memoria externa.
Los nuevos micros incluyeron otras mejoras que
permitían al Sistema Operativo un funcionamiento más cómodo y seguro de las
aplicaciones cuando operaba en modo
protegido. Los mecanismos pertinentes estaban
incluidos en el hardware o al menos este proporcionaba recursos al SO para
realizarlos cómodamente, aunque desde luego, para sacar provecho de estas
mejoras el Sistema debía estar preparado ex profeso. El DOS no podía
utilizarlas, sí en cambio los sistemas más avanzados del momento, como OS/2,
Unix o Windows. Básicamente estas mejoras se referían a dos cuestiones:
Modo real virtual.
El 80386 (DX)
El procesador 80386 significó un cambio
total en el mundo de las Pcs. El 386DX cambió radicalmente varios de los
aspectos de los procesadores anteriores y estableció una gran diferencia con
los demás: Por primera vez, los programas requerían de un procesador por sus
características para poder correr y no por su velocidad, lo que generó una
especie de incompatibilidad hacia atrás: los programas desarrollados para
aprovechar sus características no podían funcionar en cualquier otro procesador
anterior.Fue el primer procesador de 32 bits, el 386DX tiene un bus de datos e instrucciones de 32 bits tanto interno como externo; por lo tanto duplica el ancho del bus con respecto al de su predecesor: el 80286.
El bus de direcciones también fue ampliado a 32 bits, por lo tanto el chip puede direccionar un máximo de 4096 Mb de memoria ( 4 Gb ). Sus velocidades de reloj comenzaron con 16 Mhz y se llegaron a desarrollar chips de hasta 33 y 40 Mhz. También se le agregó una memoria caché externa para aumentar el rendimiento y solucionar el problema de la lentitud de las memorias con respecto a la velocidad del procesador.
Las aplicaciones desarrolladas para correr sobre los procesadores anteriores al 386DX simplemente correrán más rápido al ser ejecutadas en un sistema con este procesador, pero las aplicaciones que aprovechan las características avanzadas de este chip corren muchísimo más rápido que una aplicación equivalente desarrollada para un chip anterior, ya que el ancho del bus de direccionamiento permite direccionar memoria sin los problemas que generaba el de los procesadores de 16 bits.
Al ser un procesador de32 bits, el 386DX tiene un nuevo conjunto de registros extendidos de 32 bits, lo que permite un mayor rendimiento en las aplicaciones que manejen los datos directamente en 32 bits en vez de trabajar con datos de 16 bits. También se introduce una nueva modalidad de trabajo: el modo real virtual. Este modo de operación permite una multitarea muchísmo más avanzado que el que provee el 80286. Cada una de las aplicaciones que se ejecute en un entorno de trabajo multitarea, tendrán su propia CPU virtual con su memoria propia. Esto sería parecido a tener varias computadoras personales ejecutando cada una su aplicación y que cada una esperara para que la otra ejecute una operación para luego ejecutar la suya: se distribuyen los tiempos, pero cada aplicación tiene su área de trabajo propia.
Esta modalidad de trabajo fue el principio de funcionamiento de los sistemas operativos de 32 bits que surgieron bastante tiempo después que el primer 386DX: OS/2 a partir de la versión 2.0, Windows a partir de la versión 95 y Windows NT en todas sus aplicaciones.
También con estos procesadores aparece otro nuevo concepto: la memoria virtual. Cualquier dispositivo de entrada y salida (como por ejemplo un disco duro) puede tener asignado un rango de direcciones de memoria y trabajar como ésta, de manera que si se posee memoria insuficiente, se puede recurrir al disco y utilizarlo de las misma forma que la memoria, aunque no se tendrán las mismas velocidades. Esta capacidad es propia de los procesadores y no del sistema operativo, como suele pensarse. Que el sistema operativo lo aproveche o no, es otra cosa. Los procesadores que tengan un bus de direcciones de 32 bits pueden direccionar teóricamente hasta 64 Tb de memoria virtual.
El 386DX puede procesar el doble de datos que el 80286 en la misma cantidad de tiempo, gracias a su juego de comandos mejorados y el ancho del bus de datos.
http://personales.com/peru/lima/ensamblaje/procesador.htm
Desde que el bus de direcciones se expandió a 32 bits, el chip puede direccionar directamente 4.294.967.296 (2 elevado a la 32) localizaciones de memoria, o 4 gigabytes de RAM . Esto hace posible direccionar incluso 64 terabytes de forma virtual, lo que permite otro modo de operación, llamado el modo real virtual. Con este modo de operación, es posible efectuar la multitarea bajo MS- /PC-DOS porque cada aplicación involucrada en el proceso de multitarea recibe una CPU virtual con 1 MB de memoria.
2.3 Temporización.
En máquinas de arquitectura Von Neumann la mayoría de las
operaciones son serializadas, esto significa que la computadora ejecuta
los comandos en un orden preestablecido. Para asegurarnos de que todas las
operaciones ocurren justo en el tiempo adecuado, las máquinas 80x86 utilizan
una señal alternante llamada el reloj del sistema.
En su forma básica, el reloj
del sistema maneja toda la sincronización de un sistema de cómputo. El
reloj del sistema es una señal eléctrica en el bus de control que alterna entre
los valores de cero y uno a una tasa dada. La frecuencia en la cual el reloj
del sistema alterna entre cero y uno es llamada frecuencia del reloj de
sistema. El timepo que toma para cambiar de cero a uno y luego volver a
cero se le llama periodo de reloj, también llamado ciclo de reloj.
La frecuencia del reloj es simplemente el número de ciclos de reloj que ocurren
en un segundo, en sistemas actuales, éste valor excede los 200 ciclos por
segundo, siendo ya común frecuencias del orden de los 366 Mhz. (MegaHertz, que
equivale a un millón de ciclos por segundo). Observe que el periodo de reloj es
el valor inverso de la frecuencia, por lo tanto, para un sistema de 200 Mhz el
periodo es igual a 5 nanosegundos. Para asegurar la sincronización, el CPU
inicia una operación ya sea en el flanco ascendente (cuando la señal cambia de
cero a uno) ó en el descendente (cuando la señal cambia de uno a cero). Como
todas las operaciones de un CPU están sincronizadas en torno a su reloj, un CPU
no puede ejecutar operaciones más rápido que la velocidad del reloj.
http://www.modelo.edu.mx/univ/virtech/prograc/cbyn03.htm
Reloj del sistema
El
reloj de una computadora se utiliza para dos funciones principales:
1.
Para sincronizar las diversas operaciones que realizan los diferentes
subcomponentes del sistema informático.
2.
Para saber la hora.
El
reloj físicamente es un circuito integrado que emite una cantidad de pulsos por
segundo, de manera constante. Al número de pulsos que emite el reloj cada
segundo se llama Frecuencia del Reloj.
La
frecuencia del reloj se mide en Ciclos por Segundo, también llamados Hertzios,
siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios
millones de pulsos por segundo se expresa habitualmente en Megaherzios.
El
reloj marca
la velocidad de proceso de la computadora generando una señal periódica que es
utilizada por todos los componentes del sistema informático para sincronizar y
coordinar las actividades operativas, evitando el que un componente maneje unos
datos incorrectamente o que la velocidad de transmisión de datos entre dos
componentes sea distinta.
Cuanto
mayor sea la frecuencia del reloj mayor será la velocidad de proceso de la
computadora y podrá realizar mayor cantidad de instrucciones elementales en un
segundo.
El
rango de frecuencia de los microprocesadores oscila entre los 4,77 megaherzios
del primer PC diseñado por IBM y los 200 megaherzios de las actuales
computadoras basadas en los chips Intel Pentium.
Reset
del Sistema
Reset, del inglés
reponer o reiniciar.
Se conoce así a
la puesta en condiciones inicialesde un sistema.
Este puede ser:
Mecánico, electrónico o de otrotipo. Normalmente se realiza al conectar el mismo,aunque existe un pulsador, que sirve para realzar la puesta en condiciones
iniciales manualmente.
Los
microcontroladores pueden provocar una inicialización por tres causas:
·
Al
conectarse la alimentación, mediante el circuito de auto inicialización (power
on reset).
·
Al
poner a cero el terminal MCLR (negado de Master Clear Reset ) durante el
funcionamiento o el estado de reposo del microcontrolador .
·
Al
rebasar la capacidad el temporizador del circuito de vigilancia o WDT (watch dog timer.
Perro guardián o
“Watchdog”
Consiste en un
contador que, cuando llega al máximo, provoca un reset automáticamente en
el sistema. Se
debe diseñar el programa de trabajo que controla la tarea de forma que resetee
al Perro Guardián de vez en cuando antes de que provoque el reset. Si falla el
programa o se
bloquea (si cae
en bucle infinito), no se refrescará al Perro guardián y, al completar su
temporización, provocará el reset del sistema.
Estados de
espera
- Cuando se conectan tarjetas al bus de
la PC, un problema común es igualar la velocidad de los ciclos del bus con
la de las tarjetas. Es común que una tarjeta sea más lenta que el bus.
Así, el bus de la PC esta diseñado para resolver este problema.
- El hardware de la PC no inserta
estados de
- espera en los ciclos de lectura o
escritura a
- memoria, sino que esto lo hace la
tarjeta
- usando la señal READY.
- Un estado de espera es un tiempo (Tw)
- adicional de reloj introducido entre
T2 y T3
- para alargar el ciclo del bus.
- Si se introduce un estado de espera,
entonces el
- tiempo normal de acceso a la memoria
(que es de
- 460 nseg con un reloj de 5 MHz) se
alarga por un
- periodo de reloj (200 nseg) hasta 660
nseg.
Como se genera un estado de espera?
Se agrega un
estado ocioso (0 ó Tw) entre T2 y T3 a partir de la señal READY ( que es
la señal de
verificación de control de sincronía), extendiendo así la longitud del
ciclo del bus
para igualarlo a una tarjeta lenta o parar el bus del sistema hasta que
se sincronice con
el ciclo de la tarjeta (este control de sincronía vuelve a recaer sobre la
señal READY).
2.4 Interrupciones de Hardware.
Uso de interrupciones Un computador debe disponer de los elementos suficientes para que el programador tenga un control total sobre todo lo que ocurre durante la ejecución de su programa. La llegada de una interrupción provoca que
De esta forma, podemos resumir todas las etapas seguidas ante una interrupción en un sistema dotado de vectorización. Estos pasos son los siguientes:
1.- El dispositivo envía la solicitud de interrupción mediante la línea INTR.
2.- El procesador termina la ejecución de la instrucción en curso y analiza la línea de petición de interrupción, INTR. Si esta línea no está activada continuará normalmente con la ejecución de la siguiente instrucción, en caso contrario se pasa a la etapa siguiente.
3.-
4.- El dispositivo que reciba la señal INTA envía el código de interrupción por el bus de datos.
5.-
6.- El estado del procesador, y en particular el contador de programa, se salva en la pila de la misma forma que en una llamada a procedimiento.
7.- La dirección de la rutina de servicio de interrupción se carga en el contador de programa, con lo que se pasa el control a la citada rutina.
8.- La ejecución continúa hasta que el procesador encuentre la instrucción de retorno de interrupción.
9.- Cuando se encuentre la instrucción de retorno de interrupción se restaura el estado del procesador, en especial el contador de programa, y se devuelve el control al programa interrumpido.
Normalmente la primera instrucción de la rutina de servicio tendrá como fin desactivar las interrupciones para impedir el anidamiento, por otra parte, antes de devolver el control al programa interrumpido se volverán a habilitar si es necesario.
Hay cuatro categorías principales de interrupciones:
1) En primer lugar, hay interrupciones
generadas por la circuitería del ordenador en respuesta a algún acontecimiento,
tal como la pulsación de una tecla. Estas interrupciones están manejadas por el
chip controlador de interrupciones (el 8259, también conocido como PIC), que l
as prioriza antes de enviarlas a la
CPU para que actúe. A estas interrupciones se les suele
llamar interrupciones hardware.
2) En segundo lugar, hay interrupciones que
son generadas por la CPU
como resultado de algún suceso inusual producido por el programa como, por
ejemplo, una división por cero. A estas interrupciones solemos referirnos como excepciones.
3) En tercer lugar, hay interrupciones
generadas deliberadamente por los programas para invocar, por ejemplo, las
llamadas al sistema. Estas interrupciones son llamadas interrupciones
software.
4) Por último, hay también un tipo especial de
interrupción, llamada interrupción no enmascarable (NMI), que se utiliza
para solicitar la atención inmediata de la CPU. A menudo indica que se ha producido una
emergencia, como, por ejemplo, una caída de voltaje, o un error de paridad de
memoria. Cuando se envía una NMI la
CPU la
atiende antes que al resto de las interrupciones, por supuesto.
Los programas en ensamblador pueden desactivar, o lo que es lo mismo
enmascarar, las interrupciones hardware. Por esta razón, también se las llama
enmascarables; el resto de las interrupciones que interceptan errores especiales,
como la división por cero, no se pueden enmascarar. Se pueden aducir dos
razones para desactivar las interrupciones hardware:
a) Cuando se necesita ejecutar un fragmento de
código especialmente crítico antes de que suceda ninguna otra tarea en el
ordenador, interesa que todas las interrupciones queden bloqueadas. Por
ejemplo, cuando se quiere hacer algún cambio en la tabla de vectores de
interrupción.
b) A veces interesa enmascarar ciertas
interrupciones hardware cuando éstas pueden interferir en alguna actividad cuya
dependencia temporal sea crítica. Por ejemplo, si se está ejecutando una rut
ina de E/S cuya temporización tiene que estar exquisitamente controlada, uno no
puede permitirse el lujo de esperar "aparcado" mientras se ejecuta
una lenta interrupción de disco.
En el primer caso, se ha de tener en cuenta que en último término, la
ejecución de todas las interrupciones descansa sobre el flag de interrupción
(bit 9) del registro de estado (flags de estado) del procesador. Cuando este
bit toma el valor 0, acepta cualquier solicitud de interrupción que permita el
registro de máscaras de int errupción.
Cuando es uno, no se permiten interrupciones hardware. Para hacer que
este flag tome el valor cero, desactivando así las interrupciones, se utiliza
la instrucción CLI. Para volver a poner el flag a uno, autorizando de nuevo las
interrupciones, se utiliza la instrucción STI.
Enmascarable.
Interrupción
enmascarable:
La
solicitud de interrupción enmascarable se realiza a través de la entrada INTR
(Interrupt Request). INTR solicita una interrupción de “tipo” variable que se
determina en el ciclo de reconocimiento.
INTR,
es una entrada activa por nivel alto, que se muestrea durante el último ciclo
de reloj de cada instrucción (hay instrucciones especiales en que esto no se
cumple, ver nota). En ese momento se determina si el micro debe continuar
ejecutando la próxima instrucción o debe ingresar en el ciclo de reconocimiento
de interrupción.
Para
que el pedido sea reconocido, INTR debe permanecer en alto (al menos) durante
el último ciclo de reloj de la ejecución de la instrucción en curso. Luego INTR
puede bajar en cualquier momento después del flanco descendente del primer
pulso de INTA, dentro de la secuencia de reconocimiento.
Esta
línea puede “enmascararse” a través de un bit interno del micro (IF: interrupt enable
flag bit) que se ubica en el Flag Register. Si la máscara se encuentra activada
(IF=0) la línea es ignorada. Si por el contrario IF=1, el pedido es aceptado y
se dará inicio al ciclo de INTA.
La
máscara permite condicionar la atención de las solicitudes de interrupción que ingresan
a través de INTR. Esto es fundamental para permitir o no el anidamiento de rutinas
de atención de interrupciones de esta clase.
Es
importante ver que, cuando comienza la ejecución de la rutina de atención de la
interrupción, IF debe pasar a 0 al menos hasta que la línea INTR pase a bajo.
Si esto no fuera así, solo llegaría a ejecutarse la primera instrucción de esta
rutina y el micro comenzaría nuevamente con otro ciclo de reconocimiento.
Conceptualmente:
las interrupciones activas por nivel deben ser enmascarables.
Nota:
Una excepción es la instrucción WAIT que espera un nivel bajo en la entrada TEST
para continuar con el programa. Esta instrucción muestrea continuamente la entrada
de interrupciones “durante” su ejecución, permitiendo la atención de interrupciones
en el interior de la “espera”. Cuando finaliza la rutina de atención, el micro
retorna a ejecutar la instrucción WAIT.
No-enmascarable.
Interrupción
no enmascarable
La
solicitud de interrupción no enmascarable se realiza a través de la entrada NMI
(Non maskable Interrupt). NMI solicita una interrupción de “tipo” fijo igual a
2, por lo tanto no es necesario que se realice un ciclo de INTA.
NMI
es una entrada asincrónica activa por flanco ascendente. El flanco ascendente
en la entrada de NMI, se lachea en el interior del micro hasta que la
instrucción en curso finaliza.
No
es enmascarable por lo que su atención es inevitable. Esto hace que,
independiente de la estructura que se monte para las interrupciones
enmascarables, puede pensarse que, NMI es siempre la interrupción más
prioritaria ya que puede interrumpir la ejecución de cualquier servicio generado
por INTR.
Para
que el pedido se haga efectivo, la entrada debe permanecer en alto, al menos
dos ciclos de reloj, hasta que el micro la reconozca. La línea puede bajar
antes, durante o después del servicio de NMI.
Para
que el micro vuelva a reconocer otro pedido, la línea debe haber permanecido en
bajo al menos dos ciclos de reloj después de haber bajado.
Debe
tenerse especial cuidado en que no haya flancos espurios en el circuito de NMI
que puedan generar interrupciones indeseables.
NMI,
se usa para situaciones graves que requieran atención incondicional del micro.
Un uso típico de NMI, es la ejecución de la rutina para caídas de alimentación
del sistema o sistemas de watch - dog.
Es
importante ver que, como NMI es no enmascarable, no podría ser activa por
nivel, ya que sería imposible impedir que se repita el comienzo de la atención
cuando se ejecuta la primera instrucción de la rutina de servicio.
Conceptualmente:
las interrupciones no enmascarables deben ser activas por flanco.
Interrupción no enmascarable significa que la
interrupción no puede ser deshabilitada por software. Este tipo de
interrupciones ocurren cuando se recibe una señal en la patilla NMI
("Nonmaskable Interrupt" §5
) del procesador. Se
reservan para casos en que es crítica la respuesta, por ejemplo que se detecte
un error de paridad en la memoria. Además son de prioridad más alta que
las enmascarables.

Nota: La única forma de enmascarar estas interrupciones es a
través de circuitos externos al procesador, por ejemplo a nivel del PIC.
Cuando el procesador recibe una de estas instrucciones no se genera ningún ciclo de reconocimiento de la instrucción (INTA), y el procesador le asigna un 2 como número de excepción.
2.1
Acceso Directo a memoria.
Acceso Directo a Memoria (DMA)
El acceso directo a memoria se inventó con el
propósito de liberar al CPU de la carga de atender a algunos controladores de
dispositivos. Para comprender su funcionamiento vale la pena revisar cómo
trabaja un controlador sin DMA. Cuando un proceso requiere algunos bloques de
un dispositivo, se envia una señal al controlador con la dirección del bloque
deseado. El controlador lo recibe a través del 'bus' y el proceso puede estar
esperando la respuesta (trabajo síncrono) o puede estar haciendo otra cosa
(trabajo asíncrono). El controlador recibe la señal y lee la dirección del bus.
Envía a su vez una o varias señales al dispositivo mecánico (si es que lo hay)
y espera los datos. Cuando los recibe los escribe en un buffer local y envía
una señal al CPU indicándole que los datos están listos. El CPU recibe esta
interrupción y comienza a leer byte por byte o palabra por palabra los datos
del buffer del controlador (a través del device driver) hasta terminar la
operación.
Como se ve, el CPU gasta varios ciclos en leer los datos
deseados. El DMA soluciona ese problema de la manera siguiente. Cuando un
proceso requiere uno o varios bloques de datos, el CPU envía al controlador la
petición junto con el número de bytes deseados y la dirección de en dónde
quiere que se almacenen de regreso. El DMA actuará como un 'cpu secundario'
[Stal92] en cuanto a que tiene el poder de tomar el control del 'bus' e
indicarle al verdadero CPU que espere. Cuando el controlador tiene listos los
datos, el DMA 'escucha' si el 'bus' está libre aprovechando esos ciclos para ir
leyendo los datos del buffer del controlador e ir escribiéndolos en el área de
memoria que el CPU le indicó. Cuando todos los datos fueron escritos, se le
envía una interrupción al CPU para que use los datos. El ahorro con el DMA es
que el CPU ya no es interrumpido (aunque sí puede ser retardado por el DMA)
salvando así el 'cambio de contexto' y además el DMA aprovechará aquellos
ciclos en que el 'bus' no fue usado por el CPU. El hecho de que los controladores necesiten buffers internos se debe a que conforme ellos reciban datos de los dispositivos que controlan, los deben poder almacenar temporalmente, ya que el CPU no está listo en todo momento para leerlos.
SISTEMAS DE
VIDEO.
Los Sistemas de Vídeo son dispositivos de salida, permite la
presentación de información al
usuario, tanto alfanumérica como gráfica. A grandes rasgos
consta de un controlador, adaptador o
tarjeta de vídeo y un monitor. A continuación nos
encargaremos de analizar cualitativamente el
funcionamiento de estos elementos.
EL MONITOR.
Representa el soporte en el que se suministra la información
visual. Pueden ser de dos tipos, o bien de tubo de rayos catódicos (CRT), o
bien de cristal líquido. Las señales generadas por el controlador o adaptador
de vídeo son las que se visualizarán por pantalla. El monitor incorpora
controles típicos de brillo y contraste.
sistema de discos
No hay comentarios:
Publicar un comentario