Volver a la portada de Duiops
Volver al Web de Duiops
 
   
Menú
Secciones destacadas
Artículos y FAQs
Trucos de Windows
Versiones de Windows
y suites de software
Windows Vista
Windows Media Center
Windows XP
Windows 2000
Windows Millenium
Windows 98/98 SE
Windows 95 OSR-2
Internet Explorer
Office
Otros
Tutorial muy básico
   
Portada
Portada - Artículos y FAQs - Desde que pulsamos el boton de encendido de nuestro PC hasta... (parte 7)
 
Desde que pulsamos el boton de encendido de nuestro PC hasta... (parte 7)

 

Por Jose Manuel Tella Llop, extraído de microsoft.public.es.windows98

DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA..... (Parte 7)
----------------------------------------------------

OTROS DISPOSITIVOS EN LA PLACA MADRE: CONTROLADOR IDE
-----------------------------------------------------

Este dispositivo, historicamente era una tarjeta "aparte" que se pinchaba en un slot ISA. Despues de aparecer el bus PCI dichas tarjetas empezaron a ser PCI y en la actualidad, prácticamente en todas las placas madre vienen incorporadas.

** Se le llama controlador IDE, pero realmente es "la mitad" del controlador. Me explico: la electronica de los actuales discos duros lleva incorporada la otra mitad.

Recordemos que un controlador IDE soporta dos "buses" o "canales" IDE. Cada canal IDE unicamente puede soportar a su vez dos dispositivos: dicocs dura, disco y CD, o dos CDs. Por tanto estamos limitados a un maximo de 4 dispositivos IDE.

Cada dispositivo debe estar identificado dentro del mismo "canal" IDE como "master" o como "slave". Esto se configura mediante un switch o jumper en el propio disco del le dice si es "MA" (master) o "SL" (esclavo). Sí solo tenemos un dispositivo en un canal IDE, este debe ser "master".

Por tanto existen dos canales IDE (primario y secundario), y cada uno de ellos con dos dispositivos (uno master y otro slave).

** Cada canal IDE, "pilla" una IRQ del sistema. El canal primario, la IRQ 14 y el secundario la IRQ 15.

Es importante la matizacion anterior, ya que si unicamente tenemos utilizado un canal ¿no podriamos utilizar la IRQ 15 para otra cosa? Pues efectivamente: sí. La manera de decirle a la bios que deje libre la IRQ 15 porque no vamos a utilizarla en la controladora IDE, es precisamente entrar en las pantallas de la bios y decirle que *no* tenemos canal IDE secundario.

Esto ultimo, puede que a Windows no le guste y nos mrque una admiracion amarilla en el canal IDE secundario. No es problematico y no pasa nada. Todo funcionará correctamente. De todas maneras, si esto nos pasase y queremos que wndows no nos informe de esta "incidencia", en la mayoria de los controladores actuales (drivers de windows), se puede entrar en al Administrador de dispositivos y en la controladora existe una opcion (en casi todas) para decirle lo mismo que le hemos dicho a la bios: que  se utiliza solo el canal primario. Con esto dejaremos ya de ver la admiracion amarilla. Pero repito, esto no influye en el rendimiento ni en el comportamiento de Windows.

VELOCIDAD DE LOS DISPOSITIVOS IDE
---------------------------------

Siempre hemos oido hablar de las velocidades del disco duro, de la DMA, del modo PIO 4, de las UDMA, y siempre nos han querido vender las cosas con frases majestuosas: soporta UDMA 33 y nosotros nos quedamos con la boca abierta y luego incluso vamos "fardando" de rapidez. Pero ¿realmente sabemos lo que nos han vendido? ¿realmente es tan rapido?

Tenemos varios componentes que influyen desde que un sector de datos está en el dsico hasta que ese sector de datos, está en la memoria principal de nuestro PC.

Por una parte tenemos la verdadera velocidad del disco duro. Esta velocidad es unica. Es un componente mecanico y por tanto unicamente depende de la velocidad de rotación del disco (actualemtne en los IDE, hay velocidades de 4200, 5400 y 7200 revoluciones por segundo).

Cuando queremos leer un sector de datos, lo peor que nos puede pasar es que el sectar, acabe de pasar por debajo de la cabeza de lectura. Si es así, tendremos que esperar una revolucion completa del disco hasta que vuelva a pasar por debajo de la cabeza de lectura. Lo mejor que puede pasar es que esté justo antes de la cabeza lectora. En este caso se leera inmediatamente. Y estadisticamente la media de los sectores que queremos leer, estarán a la "mitad" de distancia de una revolucion completa del disco. Esto es lo que se define como "average", y realmente solo depende de la velocidad de rotacion. A mas velocidad, mas rapido será el disco (y mas caro).

No tenemos en cuenta aquí tambien otro factor. Si la cabeza lectora no está en el cilindro correspondiente al sector que queremos leer, el brazo que soporta a la cabeza lectora, tendrá que hacer un moviemiento transversal de posicionamiento a ese cilindro. Esto es lo que se denomina "seek".

Por otra parte, pensemos, que la "mitad" de las controladoras actuales, estan integradas dentro de la electronica del disco duro. Y allí es donde podemos tener el verdadero cuello de botella (otro más), ya que a circuiteria y la logica del propio disco, lo mas normal, cuando le solicitamos un sector, es que "lea" más sectores y se lo pase a la controladora (a un mini-caché) por si acaso inmediatamente despues solicitamos otro sector contiguo (suele ser bastante normal que nos interese leer mas de un sector: 512 bytes, incluso el propio sistema operativo, se organiza en cluster que siempre son mayores de ese tamaño, por tanto siempre se le solicitará al disco más de un sector en diversas peticiones sucesivas).

Pasemos a ver ahora como van los datos de la controladora a la memoria.

DE LA CONTROLADORA A LA MEMORIA
-------------------------------

Se pueden utilizar 4 metodos diferentes.

* Programmed I/O (PIO)
* Memory Mapped I/O
* DMA
* Busmaster DMA

PROGRAMMED I/O
---------------

En el "programmed I/O" la transferencia de datos entre controladora y memoria principal se desarrolla a traves de los diferentes ports de I/O (Entrada / Salida) de la controladora que tambien sirven para la transmision de comandos. En el lado del software, se encuentra un programa correspondiente con los comandos de lenguaje maquina IN y OUT. Pero esto significa que cada BYTE del disco, debe pasar por la CPU despues de ejecutar dicho comando. Uno a uno (o dos a dos, como maximo)-

En este caso, la tasa de transferencia de datos no solo está limitado por los valores maximos de velocidad del bus, sino tambien por el rendimiento de la CPU, y evidentemente en un sistema multitarea, la CPU puede que llegue a estar demasiado ocupada preocupandose del acceso a los datos.

MEMORY MAPPED I/O
------------------

La CPU podría recoger los datos de la controladora de una manera mas rapida, si esta los dejase en una zona de memoria fija. En este caso, la cpu puede trabajar mucho mas rapidamente con estos datos ya que puede moverlos mediante las intrcciones MOV que trabajan mas rapidamente que los accesos mediante IN y OUT.

De esta manera, en las actuales CPUs se puede obtener un mayor rendimiento. Pero por desgracia, las controladoras no "saben" de memoria virtual, no sbaen del modo protegiod (protected mode) de la CPU. Unicamente conocen la memoria real. Esto causa un problema muy serio de rendimiento en los actuales sistemas operativos basados en las tecnicas de memoria virtual (frente al antiguo MSDOS que operaba con memoria real).

DMA
---

Más conocido que los dos procedimientos anteriores, es la transferencia DMA, que en los PCs se soporta en un chip DMA propio. Este chip, debe posibilitar la transferencia de datos desde un dispositivo (disco duro, disquete, CDROM, etc..) a la memoria y evitar con ello, el largo camino a traves de la CPU.

DMA = Direct Memory Access.

La idea es buena, ya que el software solo debe indicarle al controlador DMA, cuantos bytes se han de transportar de donde adonde. Pero esto en el PC se realizó de una manera bastante chapucera, ya que el controlador de DMA que emplean los PCs, no solo es bastante inflexible (lo que aún se le podría perdonar), sino sobre todo lento. Tan lento, que aún el acceso según el procedimiento PIO en el peor de los casos es mas rapido a partir de los antiguos 486. Ya que como anacronismo en la historia de los PCs, el controlador DMA en los AT y sus sucesores, siguió haciendose funcionar a 4 MHz, en donde los primeros PCs ya alcanzaban los 4,77 MHz. En ellos, en los antiguos, la transferencia DMA es mas rapida que el PIO. De esta forma no se puede alcanzar mas de 2 Mb /segundo.

Por ello, la mayoria de los discos modernos ya no controlan segun el metodo DMA

BUSMASTER DMA
-------------

Otra forma del Direct Memory Access es el Busmaster DMA, pero este no tiene nada que ver con el chip de DMA integrado en la placa madre, y del acual hemos hablado anteriormente.

En este tipo de acceso, la controladora del disco duro, desconecta a la CPU del BUS y transfiere los datos con ayuda de un controlador Busmaster DMA con control propio.

De esta manera se pueden conseguir tasas de transferencia de has 8 mb/seg. Busmaster DMA solo se empleaba en el caso de controladoras SCSI.

UDMA
----

No lo he mencionado al principio del articulo, debido a que no es nada mas que una variante del Busmaster DMA, implementada en controladoras IDE y aumentada su velocidad de transferencia a 16 MB/s. Posteriormente surgió la UDMA 2 (o UDMA 33) hasta 33 megas/s. Y actualmente ya se estan vendiendo placas madre con controladoras incorporadas a 66 MB/seg.

NO LLEVARSE A ENGAÑO
--------------------

No hay que llevarse a engaño con todo lo anterior. En las controladoras / discos actuales, ambas cosas forman un TODO. Es decir, no solo el chip de la placa madre debe soportar esa velocidad, sino que tambien el propio dispositivo (la electronica del propio disco duro), debe soportarla. Es decir un disco UDMA actual (UDMA 2) por mucho que lo pongamos en una placa madre con controladora UDMA 66, no dará mas rendimiento que el que daba en una UDMA 33.

GOODBYE AL MODO PROTEGIDO
--------------------------

Como colofón de esto, voy a hacer unos pequeños comentarios de diseño del propio núcleo del sistema operativo, en relacion con los metodos de acceso anterior.

Recordad que existen dos modos de funcionamiento del procesador. El modo "real" que es el modo en MSDOS puro y duro, con el limite de 640 Ks en memoria contigua y el limite de 1 mega + 64 Kb para todas las direcciones reales. Y el modo "protegido", en donde se tiene acceso a toda la memoria de la maquina, y es el modo en que funciona Windows,linux, OS2, etc..

Las formas vistas antes de transferencia DMA, solo se pueden utilizar en el mundo del modo Real (Real-Mode), y llevan al procesador a un "cuelgue" si no se toman las medidas adecuadas.

El problema es la gestion de memoria virtual, mnejada por la Memory-Management-Unit (MMU) de la CPU. Es el encargado de formal las direcciones virtuales para los programas que trabajan en modo protegido y proyectarlas sobre las direcciones verdaderas (fisicas) en la memoria.

Pero de esto, los programas no se enteran, ya que nunca entran en contacto con las direcciones fisicas, y el controlador de DMA no es una excepción: tampoco se entera, ya que no tiene acceso a la MMU de la CPU.

Esta problematica, no solo suerge en Windows y otros sistemas en modo protegido. Tambien afecta al MSDOS cuando este está trabajando o conmuta a modo Virtual-86 (el tercer modo de funcionamiento del procesador). Por ejemplo en cuanto instalamos el EMM386.EXE en el config.sys que sirve para la emulacion de la memoria expandida y que depende de la gestion de la memoria virtual del procesador.

Solo hay un modo de evitarlo, y es la vigilancia de la controladora DMA. Esto es posible en modo protegido mediante el control de los ports I/O (virtualizacion del hardware). Así por ejemplo, Windows instalar un Control-Monitor virtual en el fondo (en la capa mas baja), que vigila la programacion del controlador DMA, mediante la BIOS o un programa, y que convierte las direcciones virtuales indicadas en direcciones fisicas verdaderas antes de que se escriban los registros del controlador DMA (antes que se programe una lectura/escritura)

RESTO DE DISPOSITIVOS INCORPORDOS EN PLACA MADRE
------------------------------------------------

**** Bueno, y este será el siguiente capitulo...


Volver a Artículos y FAQs

 

     
 

Volver arriba Volver arriba

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto.