3.1 CPU, Controlador del bus, Puertos de E/S, controlador de interrupciones, de DMA, Circuitos de temporizacion, controladores de video

Ahora hablaremos acerca de los controladores del bus, que se encargan de dirigir las diferentes funciones de los buses, de los puertos de E/S (Entrada/Salida), que son los puertos que permiten a la computadora interactuar con nosotros, por ejemplo, el teclado, la pantalla, etc.
Además de los controladores de interrupciones, que gestionan a las interrupciones.

CPU


La unidad central de procesamiento o CPU (por el acrónimo en inglés de central processing unit), o simplemente el procesador o microprocesador, es el componente del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Los CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores.

La expresión "unidad central de proceso" es, en términos generales, una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros computadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término en sí mismo y su acrónimo han estado en uso en la industria de la informática por lo menos desde el principio de los años 1960 . La forma, el diseño y la implementación de los CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar. Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande, generalmente una computadora única en su especie. Sin embargo, este costoso método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, computadoras centrales, y microcomputadoras, y fue acelerada rápidamente con la popularización del circuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPU más complejos en espacios pequeños (en la orden de milímetros). Tanto la miniaturización como la estandarización de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores modernos aparecen en todo, desde automóviles, televisores, neveras, calculadoras, aviones, hasta teléfonos móviles o celulares, juguetes, entre otros.





Controlador de bus




El Bus es la vía a través de la que se van a transmitir y recibir todas las comunicaciones, tanto internas como externas, del sistema informático. El bus es solamente un Dispositivo de Transferencia de Información entre los componentes conectados a él, no almacena
información alguna en ningún momento. Los datos, en forma de señal eléctrica, sólo permanecen en el bus el tiempo que necesitan en recorrer la distancia entre los dos componentes implicados en la transferencia. En una unidad central de Bus de sistema típica el bus se subdivide en tres buses o grupos de líneas: Bus de Control. Bus de Datos. Direcciones.

Bus de Direcciones

Es un canal de comunicaciones constituido por líneas que apuntan a la dirección de memoria que ocupa o va a ocupar la información a tratar. Una vez direccionada la posición, la información, almacenada en la memoria hasta ese momento, pasará a la CPU a través del bus de datos. Para determinar la cantidad de memoria directamente accesible por la CPU, hay que tener en cuenta el número de líneas que integran el bus de direcciones, ya que cuanto mayor sea el número de líneas, mayor será la cantidad de direcciones y, por tanto, de memoria a manejar por el sistema informático.

Bus de Datos
El bus de datos es el medio por el que se transmite la instrucción o dato apuntado por el bus de direcciones. Es usado para realizar el intercambio de instrucciones y datos tanto internamente, entre los diferentes componentes del sistema informático, como externamente, entre el sistema informático y los diferentes subsistemas periféricos que se encuentran en el exterior, una de las características principales de una computadora es el número de bits que puede transferir el bus de datos (16, 32, 64, etc.). Cuanto mayor sea este número, mayor será la cantidad de información que se puede manejar
al mismo tiempo.

Bus de Control
Es un número variable de líneas a través de las que se controlan las unidades complementarías. El número de líneas de control dependerá directamente de la cantidad que pueda soportar el tipo de CPU utilizada y de su capacidad de direccionamiento de información.


Puertos de Entrada/Salida (E/S)




En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta. El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red. Es importante notar que la designación de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como
entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la
computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada. En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos. Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas. Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los
programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.

Ejemplos de dispositivos de entrada/salida

Existen muchos dispositivos de Entrada y de salida conectados a nuestros equipos, algunos ejemplos son:
Dispositivos de entrada
  • Teclado
  • Micrófono


  • Ratón




Dispositivos de salida
  • Pantalla



  • Bocinas





Controlador de interrupciones

Este circuito integrado controla las interrupciones del sistema. Como el microprocesador sólo posee dos entradas de interrupción, y puede controlar muchas más, es necesario algún integrado que no permita ello. El 8259 cumple este propósito. El funcionamiento del 8259 es muy sencillo: Supongamos que no queda ninguna interrupción pendiente y el CPU está trabajando en el Programa principal . Al activarse una línea de interrupción, el 8259 verifica que no haya otra interrupción pendiente, y si no la hay, envía una señal a través del pin INTR hacia el pin INTR del CPU, adicionalmente, envía a través del bus de datos, el número de interrupción que se ha activado, de tal manera que el CPU ya sabe qué servicio de interrupción va a usar. Una vez que recibió el CPU este valor, activa su pin INTA, indicando que ya recibió y está ejecutando el servicio. Una vez que el CPU termina, el pin INTA se
desactiva, indicando al 8259 que está listo para procesar otras interrupciones. Las rutinas de los servicios de interrupción están vectorizadas en las primeras posiciones de memoria, y están distribuidas de la manera siguiente: El los dos primeros bytes corresponden al valor que irá al registro IP, que indica el desplazamiento; y los dos siguientes, corresponden al registro CS, que indica el segmento donde está el servicio de interrupción. Estos dos pares de bytes se inician en la posición de memoria 0000h y corresponden a la interrupción 0; los siguientes cuatro corresponden a la interrupción 1, y así sucesivamente hasta las 256 interrupciones (total 1024 bytes). Esto significa que el usuario puede crear su propio servicio de interrupción y accederlo a través de la manipulación de estos bytes. El 8259, posee varios modos de configuración, dependiendo de la manera cómo se desea que se traten a las interrupciones Hay que tener en cuenta que la interrupción no enmascarable NMI, va directamente a CPU y es la encargada de indicar errores de paridad en la memoria, fallos de circuiteria y el procesador matemático. En el PC/XT original es posible un total de 256 interrupciones, de las cuales 8 son por hardware y las demás por software. La distribución de las interrupciones en el PC/XT es:

IRQ FUNCION IRQ0 Reloj en tiempo real IRQ1 Teclado IRQ2 PC-Net IRQ3 Puerto serie secundario IRQ4 Puerto serie primario IRQ5 Disco duro IRQ6 Diskette IRQ7 Impresora El 8259 posee cuatro palabras de control que se encargan de configurar al integrado para que
funcione correctamente. En la primera palabra de estado (ICW1), se configura el modo del 8259 (es decir para que trabaje junto con otro más y ampliar las interrupciones), el modo de disparo de las interrupciones (Nivel o flanco descendente) y parte de los vectores de interrupción. En la segunda palabra de estado (ICW2), se configuran los vectores de interrupción. La tercera palabra funciona cuando el 8259 trabaja en modo múltiple con otros más. Aquí se configura el modo maestro/esclavo. El la ICW4, se configura el modo de manejo de las interrupciones (modo buffered, interrupciones anidadas y el tipo de procesador al que se conecta)

Hay que tener en cuenta que el pin INTR del CPU se puede configurar para que no reciba interrupciones (en ensamblador CLI). El pin NMI no se puede deshabilitar y esta interrupción puede interrumpir a cualquier otra interrupción que se esté ejecutando en ese momento.


Controlador de DMA



El mecanismo de acceso directo a memoria está controlado por un chip específico, el DMAC ( DMA Controller ), que permite realizar estos intercambios sin apenas intervención del procesador. En los chipset XT estaba integrado en un chip 8237A que proporcionaba 4 canales de 8 bits (puede mover solo 1 Byte cada vez); sus direcciones de puerto son 000 00Fh. Posteriormente en los AT se instalaron dos de estos integrados y las correspondientes líneas auxiliares en el bus de control. En contra de lo que podría parecer, el resultado no fue disponer de 8 canales, porque el segundo controlador se colgó en Cascada de la línea 4 del primero
(más adelante se explica este concepto ). Los canales del segundo DMAC está asignado a las direcciones 0C0 0DFh y son de 16 bits. Pueden mover 2 Bytes (de posiciones contiguas) cada vez. Cada canal tiene asignada una prioridad para el caso de recibirse simultáneamente varias peticiones (los números más bajos tienen prioridad más alta). Pueden ser utilizados por cualquier dispositivo que los necesite (suponiendo naturalmente que esté diseñado para soportar este modo de operación). Cada sistema los asigna de forma arbitraria, pero hay algunos cuya asignación es estándar. El acceso directo a memoria permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones. Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones
que requieran muchos recursos. Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.

Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización. Consiste en varias instrucciones de salida para asignar valores iniciales a: - AR: Direccion de memoria de la región de datos de E/S IOBUF (buffer de entrada/salida). - WC: Número N de palabras de datos a transferir. Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S. Se realiza una transferencia cuando el dispositivo de E/S solicite una operación de DMA a través de la línea de petición del DMAC. Después de cada transferencia, se decrementa el valor de WC y se incrementa el de AR.

La operación termina cuando WC=0, entonces el DMAC (o el periférico) indica la conclusión de la operación enviando al procesador una petición de interrupción.



Circuitos de temporización y control


El Circuito de temporizador y control: Es una red secuencial que acepta un código que define la operación que se va a ejecutar y luego prosigue a través de una secuencia de estados, generando una correspondiente secuencia de señales de control. Estas señales de control incluyen el control de lectura escritura y señales de dirección de memoria válida en el bus de control del sistema. Otras señales generadas por el controlador se conectan a la unidad aritmética lógica y a los registros internos del procesador para regular el flujo de información en el procesador y a, y desde, los buses de dirección y de datos del sistema. El temporizador es un circuito que se encuentra en la tarjeta matriz (Mother Borrad) de la PC y que es capaz
de mantener una cuenta de tiempo basada en el reloj de la computadora. Puede usarse para calcular el intervalo entre dos mediciones de tiempo o para generar pausas. Este chip tiene la capacidad de realizar diferentes funciones de conteo. Es útil para medir el tiempo que dura cierto proceso o para mantener actualizadas la hora del día y la fecha si se deja la PC conectada y encendida (en el caso de computadoras anteriores a la AT, pues esta tiene un reloj de batería integrado; a este respaldo de batería se le conoce como CMOS (complementary MOS).

El chip mantiene tres contadores independientes (definidos como 0, 1, 2), cada uno de los cuales es alimentado por una señal que equivale a 1.19318 MHZ. El contador obtiene una capacidad máxima de conteo que asciende a 65 536. Su salida tiene una frecuencia de 18.2 HZ.(1.19/65536) aproximadamente. Por lo tanto, cualquier acción que interrumpa a la PC ocurrirá 18.2 veces por segundo (cada 55 ms o cada 0.055 segundos en forma redondeada). Dicha acción genera una interrupción llamada interrupción del contador, la cual interrumpe brevemente la CPU e incrementa la cuenta del día. Cuando el contador del canal cero llega a 0 (los tres contadores del temporizador timer siempre cuentan en forma regresiva), significa que la hora es exactamente las 24:00 (hora militar) y entonces es inicializado a cero de nuevo. El contador 1 es usado por la PC para realizar el proceso de refrescamiento de memoria (DMA memory Refresh) y no debe ser alterado bajo ninguna circunstancia. El contador 2 generalmente se encuentra
programado para trabajar con la bocina. Los primeros dos contadores (0 y 1) envían una interrupción a la CPU mientras que el 2 no lo hace.


Controladores de video

Los controladores son circuitos de entrada que tienen todas las impresoras. Son los que procesan la información en primer lugar para saber exactamente qué les está llegando y como manipular los datos. Por ejemplo, un controlador de una impresora recoge los datos que proceden del PC y los convierte en datos de imagen que deberán pasar a lo que llamamos video interface de la impresora. Este otro dispositivo, se encarga de recuperar los datos que ha dejado el controlador e inyectarlos hasta el sistema de escritura del periférico. Los datos de imagen indican si un punto es blanco o negro, en caso de una impresora de color de que color será ese punto. Veamos un ejemplo de la formación de una letra A : 

1. El controlador recibe un dato del ordenador. Ese dato es el número 41h. según una tabla el controlador interpreta que 41h quiere decir A .

2. Tras interpretar el dato como una A el controlador busca en sus fuentes la forma de esa letra.

3. Una vez se ha creado toda la imagen de una página esta se le pasa al video interface. Los datos de una página pasados a imagen se llaman datos rasterizados o rípeados. Los datos rasterízados se transmiten a la video interface de línea a línea.








Comentarios

Publicar un comentario

Entradas populares