viernes, 28 de junio de 2013

TRABAJO No. 10 - SERVICE PACK

Service Pack

Saltar a: navegación, búsqueda
Los programas denominados como Service Pack consisten en un grupo de actualizaciones que corrigen y mejoran aplicaciones y sistemas operativos. Esta denominación fue popularizada por Microsoft cuando comenzó a empaquetar grupos de parches que actualizaban su sistema operativo Windows.
Se pueden clasificar en dos tipos:
  • Una en la que cada SP no contiene las actualizaciones anteriores, por lo que debe instalarse el SP anterior antes de instalar el SP siguiente. (Service Pack Incremental, también llamado Lanzamiento de Servicio, Service Release)
  • Y otra más cómoda en la que cada SP contiene el SP anterior, lo que hace mucho más fácil y rápida la actualización. (Service Pack Acumulativo, característico de Microsoft Windows)
En la denominación informática generalmente se denominan SPx, donde la x representa la versión o revisión. Por ejemplo SP3 implica que es el tercer Service Pack que se realiza al producto. Además, en ciertas ocasiones se acompaña con una letra denominando el estado evolutivo del mismo SP (SP3a, que equivale a Service Pack 3 versión alfa).
No sólo los Service Pack son aplicables a Sistemas Operativos, diversas aplicaciones como Microsoft Office o Internet Explorer tienen sus Service Packs, los cuales son un equivalente a las actualizaciones de versión en otros programas.

Índice

Service Pack en Microsoft Windows

Familia de Microsoft Windows 2000

En el desarrollo del sistema operativo Windows 2000 han habido cuatro Service Packs, los cuales todos son acumulativos, vale decir, no es necesario tener algún Service Pack de esta familia para poder actualizar (ej. Windows 2000 sin SP puede actualizarse directamente a SP4). Un paquete acumulativo de actualizaciones fue sacado al tiempo después para SP4, denominado Update Rollup 1.
Los Service Packs de Windows 2000 son válidos para Windows 2000 Professional, Windows 2000 Server y Windows 2000 Advanced Server.
Service Pack 1
Este Service Pack fue lanzado el 15 de Agosto de 2000, poco tiempo de liberarse Windows 2000, la cual incrementa el cifrado de encriptación de 56 a 128 bits, además mejora significativamente la fiabilidad y seguridad del sistema, incluyendo también mayor compatibilidad con aplicaciones y hardware.
Service Pack 2
Este Service Pack fue lanzado el 16 de Mayo de 2001, el cual incluye una acumulación de parches de seguridad y estabilidad posteriores al lanzamiento de SP1, incluyendo además cambios menores al sistema.
Service Pack 3
Este Service Pack fue lanzado el 29 de Agosto de 2002, el cual añade nuevas características al sistema, como la descarga de actualizaciones automáticas desde Windows Update, configuración de acceso a programas predeterminados y soporte a USB 2.0. Este Service Pack se convierte como requisito mínimo fundamental para la instalación de ciertos componentes y software, como Windows Installer 2.0 y Microsoft Office 2003. En este SP, Microsoft retiró el desarrollo de la Máquina Virtual Java (JVM) debido a problemas legales.
Service Pack 4
Este Service Pack fue lanzado el 26 de Junio de 2003, convirtiéndose en el último Service Pack para Windows 2000. Al igual que Service Pack 2, este incluye todas las actualizaciones que se han sacado posteriores al SP3, además de otros cambios menores.
Service Pack 4 Update Rollup 1
Microsoft tenía la intención de lanzar un Service Pack 5 para Windows 2000, pero canceló este proyecto a inicios de su desarrollo y en vez de eso presentó un "Update Rollup 1" para Service Pack 4, la cual es la colección de todos los parches de seguridad y otras cosas significativas. Esta actualización para SP4 fue sacada el 13 de Septiembre de 2005. Sin embargo, no incluye todos los parches que no son de seguridad y no fue probado extensivamente como se le realiza a un Service Pack.

Familia de Microsoft Windows XP

En el desarrollo del sistema operativo Windows XP han habido tres Service Packs más una revisión para el Service Pack 1, denominado SP1a.
Service Pack 1
El primero para el Microsoft Windows XP fue lanzado en septiembre de 2002, y consistía en la acumulación de 300 parches de seguridad, la cual fue catalogada en el momento como una "descarga imprescindible" ya que la mayoría de los parches actualizaban problemas de seguridad. Este SP incluye como característica el soporte para USB 2.0.
Service Pack 1a
Esta actualización para Service Pack 1, es una revisión que elimina el desarrollo de la Máquina Virtual de Java (JVM), debido a una disputa legal entre Microsoft y Sun Microsystems.
Service Pack 2
El segundo fue lanzado en agosto de 2004 y se centraba en la campaña de “Trustworty computing” (Informática de Confianza) emprendida por Microsoft.
Esta actualización modificó fuertemente el kernel del sistema operativo, aplicando una gran cantidad de parches al sistema con el fin de cerrar los problemas de seguridad detactado entre el primer SP y la actualización.
Service Pack 3
El tercero Microsoft Windows XP fue lanzado durante el 2008, se centró en la mejora de rendimiento del sistema operativo, con el fin de entregar una mayor estabilidad para los usuarios y los procesos, además entregar un grado de compatibilidad con el sistema operativo Windows Vista y Windows Server 2008, con el fin que los usuarios pudieran acceder a las aplicaciones de ambos sistemas.
Dentro del paquete de actualización se incluían todas las actualizaciones desde el SP1 que no se habían aplicado en cada equipo, por lo cual la descarga podía variar entre los 75 a 360 MB.
Los service packs pueden integrarse (slipstream) al disco de instalación del XP. Este disco de XP modificado puede usarse para instalar el sistema operativo ya actualizado con el service pack correspondiente.

Familia de Microsoft Windows Vista

La familia de Microsoft Windows Vista ha tenido un Service Pack lanzado al público y otro que se encuentra en fase RTM, que se espera tome algunas bases de Windows 7 para mejorar el sistema operativo.
Service Pack 1
También llamado Windows Vista SP1, es una recopilación de todas las actualizaciones de Windows Vista creadas hasta marzo de 2008. Cuando el Service Pack fue liberado en su versión final. Según afirma Microsoft, instalar esta actualización aumenta la seguridad de Windows Vista, mejora la estabilidad,la velocidad al copiar archivos y mejora la eficacia de ReadyBoost[cita requerida], también afirmaron que este Service Pack contendría una utilidad para verificar si el Windows Vista es Original o no.
Este paquete fue lanzado a finales del 2008, siendo una herramienta muy eficaz para todo servidor.
Service Pack 2
Windows Vista Service Pack 2 está disponible mediante actualización por Windows Update o en su versión "stand-alone" para descargar y ejecutar directamente en la máquina que se desee. Requiere que este instalado el Service Pack 1 para su instalación.

Familia de Microsoft Windows 7

El Sistema Operativo Windows 7 ha tenido un Service Pack desde su lanzamiento.
Service Pack 1
También conocido como Windows 7 Service Pack 1, es un conjunto de actualizaciones para la mejora del rendimiento y compatibilidad. Para su instalación vía Windows Update requiere el tener todas las actualizaciones críticas hasta el momento para su descarga[cita requerida]. También está disponible una versión StandAlone desde el centro de descargas de Microsoft.
Fue lanzado el 16 de febrero de 2011 a los suscriptores de MSDN y Microsoft TechNet, y desde el 22 de febrero está disponible a todo el público.
Se mejoró con esto la compatibilidad con HDMI, el visor e impresión de XPS y soporte para AVX (Extensiones de Vector Avanzadas).

Otros productos Microsoft

Por lo general, los productos de ofimática como Microsoft Office sufren actualizaciones mediante la modificación de los Services Packs, pero a diferencia de las actualizaciones al sistema operativo, estas no afectan el rendimiento sino que reparan fallos menores o añaden más elementos de seguridad para el manejo de archivos y documentos asociados a los objetos OLE
También el explorador web Internet Explorer ha sufrido actualizaciones vía Service Pack, los cuales hacen mejoras en lo visual y en la interpretación del HTML, y además, al instalar un Service Pack en Windows, los componentes incluidos por defecto también se actualizan de Service Pack.

miércoles, 19 de junio de 2013

TRABAJO No. 9 - VERSIONES INTERFAZ ATA 1,2,3,4,5,6,7

6.1  La interfaz  ATA/IDE

§1  Antecedentes
Recordemos que el IBM PC nació en Agosto de 1981; que a principios de 1983 nació el PC XT, y que el IBM AT nació en en verano (boreal) de 1984.  Precisamente este año tiene su origen el estándar IDE, con un encargo de Compaq a Western Digital.  Compaq necesitaba una controladora compatible con el estándar ST506, pero debido a la falta de espacio en el interior de un nuevo modelo de PC, la interfaz debía estar integrada en el propio disco, de ahí el nombre: IDE ("Integrated Drive Electronics").  Toda la electrónica de control se concentra en el dispositivo a controlar (el disco duro), con lo que puede conectarse directamente el disco con el bus del sistema.  Las primeras unidades IDE son de 1986.
La realización práctica estaba acompañada de una serie de normas denominadas AT Attachment (ATA) que establecían las condiciones que deben seguir los fabricantes de este tipo de unidades.  El sistema fue adoptado rápidamente por otros fabricantes, y en 1994 fue aprobada la primera versión del estándar ATA.
Nota:  Aunque se la conoce con los dos nombres, IDE y ATA, en realidad su verdadero nombre es este último, ya que "AT Attachment" indica la intención original de conectar directamente una unidad de disco (y su controladora incrustada), en el bus del IBM PC AT de 1984.
§2  Características
El sistema IDE/ATA dispone de varios métodos para efectuar el movimiento de datos, incluyendo la emulación de cualquier formato anterior, e incorpora un nuevo formato de grabación, denominado de zona múltiple MZR ("Múltiple Zone Recording") que consigue mayor densidad de grabación y por tanto mayor capacidad en los discos.  Además, se implementaron dos sistemas de traducción de los parámetros físicos de la unidad. Estos sistemas se denominan CHS ("Cylinder Head Sector") y LBA ("Logical Block Addressing"), y permitían solventar algunas limitaciones derivadas del diseño inicial de los servicios BIOS de disco ( 6.2).
La especificación inicial permitía una tasa de transferencia de 4 MB/s, y supuso una simplificación en la instalación y configuración de los discos duros. Sin embargo, pronto se manifestaron sus carencias, de forma que desde su aparición ha sufrido constantes actualizaciones y mejoras, apareciendo versiones de los diversos fabricantes bajo diversos nombres. Enhanced IDE (EIDE), Ultra-ATA, ATA-2, ATAPI, Fast-ATA, ATA-2, ATA-3, Etc.
Sus principales defectos se concretaban en la capacidad de almacenamiento, que debido a limitaciones de la BIOS, no podía exceder de 528 MB.  También a la capacidad de conexión, ya que solo podían coexistir dos dispositivos IDE en el sistema (denominados unidad maestra y esclava), y la ya mentada velocidad de transferencia (4 MB/s) que pronto se mostró insuficiente.
A continuación se muestra una sinopsis cronológica de los avatares sufridos por el sistema desde su nacimiento.
Estándar Comentario
IDE 1986 Pre-estándar. 
ATA-1 ANSI X3.221-1994.  Define los modos PIO 0-2 y multi-word DMA modo 0.
ATA-2 ANSI X3.279-1996.  En 1996, como solución a los problemas planteados anteriormente, surgió la interfaz EIDE ("Extended IDE") o IDE mejorada, logrando un significativo aumento en flexibilidad y prestaciones. Su estándar fue definido en la norma  norma ATA-2, que definía los modos PIO 3-4 y multi-word DMA modo 1-2 ( 2.3), que permiten alcanzar un máximo de 16,6 MB/s.

Otra mejora en la interfaz EIDE se reflejó en el número de unidades que podían ser instaladas al mismo tiempo, que se aumentó a cuatro .  Más aún, se habilitó la posibilidad de que coexistieran unidades de CD-ROM y de cinta en el sistema.  Para ello se ideó la norma ATAPI (AT Attachment Packet Interface), una extensión del protocolo ATA creada con el fin de aportar un único conjunto de registros y mandatos, y de esta forma facilitar la coexistencia de estas unidades.  Por extensión se denominan así aquellos dispositivos que cumplen esta norma.
El interfaz EIDE posee dos canales relativamente independientes: primario y secundario, a cada uno de los cuales se pueden conectar dos dispositivos (maestro y esclavo), lo que da un total de cuatro conexiones. Dichos dispositivos pueden ser discos duros, lectores y grabadores de CD-Rom, unidades de cinta y de disquetes de alta capacidad.

En un canal EIDE los dos dispositivos conectados deben de turnarse en el uso del bus. Si hay un disco duro conectado con un CD-Rom en el mismo canal, aquel deberá esperar a que éste acabe su comunicación, lo que produce una pérdida de prestaciones. Por eso es buena idea conectar el CD-Rom como master del segundo canal, ya que los dos canales son más o menos independientes entre sí, dependiendo del chipset.
ATA-3 ANSI X3.298-1997.  Introducida en 1997, esta tecnología incluyó mejoras en la fiabilidad;  especialmente del PIO modo 4; esquema de seguridad basado en contraseña; posibilidad de gestionar una alimentación eléctrica mas sofisticada y tecnología SMART ("Self Monitoring Analysis and Reporting Technology"), capaz de análisis y auto observación del dispositivo, que permite prevenir fallos antes de que ocurran [3]. Esta norma incluye además comandos que pueden interrogar al disco sobre sus parámetros.  Fabricante, modelos, versión del firmaware, geometría, Etc. (ver programas de ejercicios ).
Nota:  Los equipos de Western Digital    www.wdc.com  disponen de sectores especiales ocultos (denominados ficheros WDC) que contienen información muy interesante sobre los propios discos y su firmware.  Estos sectores pueden verse utilizando funciones específicas (no documentadas) de este fabricante.
La norma ATA-3 fue un paso intermedio que incluía la función SMART en busca de una mayor fiabilidad de los discos, pero sin añadir ninguna mejora a los 16 MB/s de la norma anterior.
ATA-4 Como era de esperar, en 1998 llegó la norma ATA/ATAPI-4, más conocida por Ultra DMA/33, DMA-33 y Ultra ATA.  Incorpora un nuevo modo de alto rendimiento, Ultra DMA modo 0-2, que permite transferencias de 33 MB/s, el doble que el DMA modo 2, siendo este estándar el que actualmente impera en la mayoría de los ordenadores de consumo (2001). La norma ATA-4 introdujo el estándar CRC ("Cyclical Redundancy Check"), un sistema que proporciona verificación y protección de los datos en la fase de transmisión, contando para ello con un algoritmo de comprobación de 32 bits.  El algoritmo CRC puede detectar errores de hasta 32 bits, e informa sobre ellos sin necesidad de introducir ningún tipo de modificación en el software.  La función CRC ofrece un elevado nivel de fiabilidad en la transmisión de datos al asegurar la integridad de la información transferida.
ATA-5 El estándar ATA/ATAPI-5, denominado también Ultra ATA/66 y Ultra DMA/66, apareció en el año 2000 y añade nuevos modos de transferencia a los anteriores estándares PIO, el modo 3 a 44,4 MBps y el modo 4 a 66,6 MBps, así como Ultra DMA modos 3-4.  El nuevo estándar es compatible hacia atrás con los anteriores, heredando la verificación CRC para los datos transferidos. 
ATA-6 Aparecido en 2002, el estándar ATA/ATAPI-6 es conocido también como Ultra DMA/100, en atención a su velocidad de 100 MB/s.  Incorpora Ultra DMA modo 5 y direccionamiento LBA de 48 bits.
ATA-7 Del 2003 y conocido también como Ultra DMA/133, el estándar ATA/ATAPI-7 es, por el momento, el más reciente. Alcanza 133 MB/s y utiliza Ultra DMA modo 6.

§3  Ventajas e inconvenientes:
La inclusión de la controladora en la unidad de disco permitió eliminar la necesidad de dos cables separados (control y datos) que unían las antiguas controladoras con las unidades de disco, bastando un único cable que sirve como bus de datos y de control.  Este diseño tiene además la ventaja de que se reduce el número total de componentes, las trayectoria de las señales es más corta y por tanto menos vulnerable a las interferencias electromagnéticas.
Estar la controladora embebida en el disco dio mucha libertad a los diseñadores, ya que no había ninguna otra cosa que pudiera conectarse a esta controladora, lo que mejoró las prestaciones de las unidades.  Sin embargo presenta también sus inconvenientes.  Algunas áreas de las normas ATA dejaron cierta libertad a los diseñadores, lo que motivó comandos específicos de los proveedores.  Esto hace que sea difícil dar formato de bajo nivel a estas unidades y redefinir sus tablas de sectores defectuosos, ya que los comandos cambian de un proveedor a otro.  La mayoría de fabricantes de unidades ATA ofrecen el software de formateo a bajo nivel en sus sitios Web.
Nota:  Siempre se ha de tener muy en cuenta que la velocidad de transferencia que puede soportar el puerto del sistema debe exceder la velocidad media de los dispositivos conectados a él.  Es decir, la tasa de transferencia permitida por los puertos IDE debe ser mayor que la tasa media que pueden alcanzar los discos duros conectados a éste.  Si no fuera así, el rendimiento del equipo se vería reducido significativamente debido a las mayores prestaciones de los nuevos discos duros que ocasionarían graves atascos en el bus, motivado por los frecuentes períodos en los cuales el buffer de memoria estaría lleno o vacío en operaciones, generalmente, secuenciales de lectura o escritura, respectivamente.
§4  Modos de transferencia
Aparte de las distintas interfaces, la velocidad de transferencia de un disco viene determinada por los modos de transferencia que pueden soportar tanto la controladora como el disco duro.  Los dispositivos IDE pueden transferir información principalmente empleando dos métodos: PIO y DMA.  El modo PIO (Programmed I/O) depende del procesador principal del ordenador para efectuar el trasiego de datos repercutiendo en el rendimiento del sistema.  Por el contrario, en el método DMA (Direct Memory Access), el procesador del equipo se desentiende de las operaciones concernientes al disco duro, dejando estas labores a un chip dedicado, el controlador DMA.
La variante de la transferencia DMA usada actualmente en los discos duros es la BusMaster DMA.  Esta modalidad aprovecha las ventajas de los chipsets de las placas base, cada vez más optimizados para estas labores (de acceso directo a memoria).  Además de liberar al procesador, puede obtener por parte de éste un control casi total, de forma que la información sea transferida con la máxima prioridad. Asimismo, existen dos tipos de modos DMA, singleword y multi-word, si bien el primero quedó obsoleto con la aparición de la norma ATA-2.
Desde luego, para disfrutar de esta técnica es preciso contar con los correspondientes controladores (drivers), que deben cargarse previamente.
Con el IDE original se usaban los modos de transmisión PIO O, 1 y 2, que podían llegar a unos 8 MBps o el DMA (single-word O, 1 y 2 o multi-word O) que no superaba esta cifra.  El estándar Fast ATA amplió los modos PIO al 3, y estableció el multi-word DMA 1, con lo que se logró una tasa entre 11 y 13 MBps.
§5  Conexión
Por lo general, el conector IDE/ATA de la placa-base es un sencillo conector de 40 pines al que se abrocha un cable plano, que va desde la placa-base a la unidad de disco [2].  Estos pines son un subconjunto de los 98 contactos de las ranuras ISA de 16 bits.  La razón es que un controlador de disco nunca necesita más de 40 señales del bus ISA.
Pin Descripción Pin Descripción
1 -RESET 2 GND
3 Data bit 7 4 Data bit 8
5 Data bit 6 6 Data bit 9
7 Data bit 5 8 Data bit 10
9 Data bit 4 10 Data bit 11
11 Data bit 3 12 Data bit 12
13 Data bit 2 14 Data bit 13
15 Data bit 1 16 Data bit 14
17 Data bit 0 18 Data bit 15
19 GND 20 (falta este pin)
21 DRQ 3 22 GND
23 -IOW 24 GND
25 -IOR 26 GND
27 IOCHRDY 28 SPSYNC:CSEL
29 -DACK 3 30 GND
31 IRQ 14/15 32 -IOCS16
33 Addr bit 1 34 -PDIAG
35 Addr bit 0 36 Addr bit 2
37 -CS1FX 38 -CS3FX
39 -DA/SP 40 GND
Nota:  Las unidades muy pequeñas, principalmente de equipos portátiles, no disponen de espacio para un conector de alimentación independiente, por lo que utilizan un conector con 44 pines, en el que los 4 pines adicionales se utilizan para alimentación de energía.
El cable de 40 hilos no asegura una transmisión correcta cuando se emplean frecuencia superiores a 44,4 ó 66,6 MBps para la transferencia de datos, ya que el sistema se vuelve inestable debido a las interferencias electromagnéticas (EMI).  Para asegurar la calidad de transmisión, se empezó a utilizar un cable con 80 hilos que mantiene la misma configuración en el conector de 40 pin,  pero con 40 líneas adicionales de tierra (GND).  En otras palabras, las 40 nuevas líneas están todas conectadas a tierra sin que transporten ningún tipo de señal, pero protegen las señales de datos de posibles interferencias.
Es frecuente que los conectores IDE falte el pin 20 (que nunca se utiliza) o esté anulado en el lado del conector instalado en el cable (hembra).  Esto se hace para evitar que este cable pueda ser insertado al revés, aunque también suele instalarse un conector polarizado (que dispone de una muesca que hace que solo pueda conectarse en la posición correcta).
También se utilizan conectores de 68 pines para las unidades IDE montadas en tarjetas PC-CARD (PCMCIA).
En la tabla adjunta se muestra el esquema de conexiones de un disco IDE.
La selección de unidad maestra/esclava dentro de cada uno de los dos canales, puede realizarse mediante puentes ("Jumpers") instalados en la propia unidad de disco o mediante cable.  La teoría es que cada controlador solo debe responder a los comandos que van dirigidos a él.  En principio si se instala una sola unidad, esta responde a todos los comandos (es la configuración denominada maestra unidad simple), pero cuando se instala un segundo disco, uno de los controladores debe estar asignado como maestro y otro como esclavo (son las configuraciones mestro unidad doble y esclavo unidad doble).  En el momento de inicio del Sistema, la unidad configurada como esclava envía una señal DA/SP ("Device Activated/Slave Present"), por la línea 39, lo que hace que a partir de ahí, la maestra ponga atención a la línea de selección de unidad (lo que no hace si está sola).
En ocasiones la selección puede hacerse mediante el propio cable.  En estos casos, los jumpers de la unidad maestra y esclava se ponen en la misma posición CS -"Cable Selection"-.  Una de las unidades, la maestra tiene conexión con todos los hilos del cable, pero la unidad esclava no tiene conexión con la línea 28, que está interceptada antes de llegar a esta controladora.  Todos los cables de 80 conductores UltraATA de 80 conductores están diseñados para usar selección por cable.
La inmensa mayoría de las placas-base actuales disponen de dos conectores IDE/ATA, ya que esta interfaz es con mucho la más popular.  Sin embargo, si no se dispusiera de ella, es posible disponer una tarjeta auxiliar adaptadora que si disponga de estos conectores y que pueda insertarse en uno de los zócalos ISA o PCI de la placa-base.
§5.1  En los sistemas Linux es fácil comprobar la disposición lógica de las unidades IDE conectadas (en su caso), así como el método de transferencia utilizado, consultando el contenido del fichero /proc/ide/piix mediante el comando
cat /proc/ide/piix
En el caso de uno de mis equipos de trabajo (con una sola unidad de disco) el resultado es el siguiente:
Controller: 0

                                Intel PIIX4 Ultra 33 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------
                 enabled                          enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled:    yes              no              no                no
UDMA enabled:   yes              no              no                no
UDMA enabled:   2                X               X                 X
UDMA
DMA
PIO  
Una vez averiguadas las unidades instaladas en el sistema, es fácil indagar el detalle de las características de tales unidades inspeccionando los directorios correspondientes:
Canal primario unidad maestra /proc/ide/ide0/hda
Canal primario unidad esclava /proc/ide/ide0/hdb
Canal secundario unidad maestra /proc/ide/ide1/hdc
Canal secundario unidad esclava /proc/ide/ide1/hdd
Cada uno de estos directorios contiene una serie de ficheros con distinto tipo de información sobre la unidad que pueden ser leídos con el comando cat correspondiente.  Por ejemplo, en el caso anterior, el comando cat /proc/ide/ide0/hda/model produce:
HITACHI_DK23BA-15
En los ejercicios se muestran otros métodos para obtener información detallada de los dispositivos IDE conectados en el sistema .
§6  Integridad en la transferencia de datos:
La interfaz ATA original se basaba en una lógica TTL ("Transistor-Transistor Ligic") y se fundamenta en el viejo protocolo para el bus ISA.  Este protocolo usaba un método de transferencia de datos asíncrono, en el que tanto los comandos como los datos eran intercambiados con el dispositivo en un pulso de la señal, pero sin que existiera una interconexión entre ambos tipos de señales.  Es decir, cada pulso podía transportar únicamente datos u órdenes (comandos).
Para mejorar el bus ATA, con los modos de transferencia ATA-2 y ATA-3 se modificó el tipo de señalización, pasando a un nuevo método que consistía en el envió de datos en pulsos síncronos.  En este modo de funcionamiento, la unidad controla la señalización sincronizando las señales de datos y comandos en un mismo pulso pero sólo en el flanco positivo de la señal.
Para aumentar el rendimiento en este entorno, lo más lógico era incrementar la frecuencia de la señalización.  El incremento de la frecuencia incidiría directamente en un incremento de la tasa de transferencia, pero a frecuencias elevadas el sistema se vuelve inestable debido a las interferencias electromagnéticas (EMI) llegando a producirse errores en la transmisión de los datos.
El siguiente paso, ATA-4, se basó en el uso de los flancos positivo como negativo de la señal, doblando así la frecuencia de transmisión sin incrementar la frecuencia, por lo que las interferencias y perturbaciones EM mantenían sus niveles anteriores.  El resultado inmediato de la nueva técnica fue doblar la tasa de transferencia de datos. Asimismo, el Ultra DMA/33 redujo al mínimo las demoras en la transmisión de los datos y consecuentemente, la eliminación de estos retrasos mejoró el rendimiento global.
Con el protocolo Ultra DMA/66 se dobla nuevamente la velocidad de transferencia en los disco duros IDE mediante dos técnicas:  Reducción de los tiempos de iniciación y el aumento de la frecuencia de sincronismo.
Por otro lado, el Ultra ATA/33 ya introdujo en su día el estándar CRC ("Cyclical Redundancy Check"), un sistema que proporciona verificación de datos y detección de errores de transmisión mediante un algoritmo de comprobación de 32 bits.  Esta característica ha continuado en la especificación ATA-5, de modo que ha sido heredada por Ultra ATA/66.  El algoritmo CRC ofrece un elevado nivel de fiabilidad, pudiendo detectar errores de hasta 32 bits, lo que garantiza una casi total seguridad en la integridad de la información [5].
§9  Evolución
Desde su concepción en 1986, la interfaz ATA/IDE ganó aceptación rápidamente.  Tanto los fabricantes de placas-base y chipsets, con Intel a la cabeza, como los principales fabricantes de discos, como Fujitsu, IBM, Maxtor, Quantum, Seagate, Toshiba y Western Digital entre otros, aunaron esfuerzos para sacar adelante este iniciativa que se ha mantenido al día gracias a las constantes mejoras en el rendimiento y fiabilidad.
Puede decirse que la especificación inicial ATA ha ido "estirándose" al máximo para sostener el paso de la exigencia, siempre creciente, de más prestaciones en los equipos.  Que, en lo que a las interfaces se refiere, puede resumirse en dos palabras: mayor velocidad.  El estándar ATA/IDE prácticamente ha copado el mercado de equipos domésticos desde 1997/98 hasta la actualidad (2005).  Sin embargo, a partir del 2002 empezó a ceder protagonismo en los sistemas personales de gama alta, en los que empezaba a emerger un nuevo estándar de arquitectura serie conocido como SATA ("Serial ATA  6.5).
§10  Los discos ATA/IDE
Existen algunos aspectos lógicos respecto a los discos ATA/IDE que hemos mencionado de pasada, pero que conviene resaltar.  El controlador de disco utilizado por los ATs utilizaba la dirección 1F0h ( 2.5) e IRQ 14 ( 2.4). Que, como se ha indicado, solo permitía instalar dos unidades (maestra y esclava).  Sin embargo, a fin de aumentar el número de unidades que pudieran conectarse al mismo tiempo, se obligó a los fabricantes de sistemas y BIOSes a soportar controladores secundarios (dirección 170h, IRQ 15).  Presentes desde siempre en el diseño del PC AT pero nunca usados hasta entonces.  De esta forma que se conseguía montar otras dos unidades (maestra y otra esclava) como secundarias.  La terminología común ha acabado refiriéndose a estos dos controladores como "canales", de forma que es frecuente referirse a ellos como el primer y segundo canal IDE.
La situación actual es que los equipos disponen de dos canales IDE (primario y secundario), cada uno de los cuales puede instalar dos unidades físicas distintas (maestra y esclava).   Dependiendo del sistema operativo, cada una de estas unidades puede contener 2 (DOS-Windows) o 4 (Linux) particiones primarias [1].
Nota:  Lo que sigue es de aplicación a todo tipo de discos, no solo a los ATA/IDE.
Bajo ciertas condiciones, una partición primaria puede contener un número ilimitado de particiones lógicas (también llamadas volúmenes lógicos) que aparecen frente al Sistema Operativo como unidades de disco independientes.  De forma que  pueden ser formateados individualmente, y disponen de su propio sistema de directorios (incluso pueden montar distintos Sistemas Operativos).  De hecho, desde el explorador del Sistema, es imposible saber si tales discos corresponden realmente a distintas unidades físicas. Véase al respecto el ejercicio Linux del capítulo siguiente ( 6.2).
De las 4 particiones primarias, una puede ser declarada partición extendida (un tipo especial de partición primaria), que puede contener distintos volúmenes lógicos (solo una partición extendida en cada unidad física).  Por esta razón es posible que encuentre referencias a particiones primarias, particiones extendidas y volúmenes lógicos.  Aunque en realidad, todas se refieren a cierta forma de partición lógica dentro de la unidad física.
Una de las particiones puede estar marcada como principal.  Lo que indica que el la tabla de particiones del registro maestro de carga MBR ( 8.1.2c), contiene una marca especial señalando que el primer sector de dicha partición, contiene el software necesario para la carga del Sistema Operativo durante la secuencia de arranque inicial del Sistema.
Nota:  En los equipos que montan varios sistemas operativos.  Por ejemplo, Windows y Linux, el software anterior carga un pequeño programa (puede ser GRUB, LILO o cualquier otro) que permite seleccionar como continuará la secuencia de carga.
Mencionemos finalmente que en el SO Windows, las particiones aparecen siempre como unidades distintas (designadas por las letras C:, D:, E:, F:, etc).  En cambio, en Linux es posible montar las distintas particiones en una sola estructura lógica a partir del directorio raíz "/".  Además Linux suele utilizar una partición primaria para su propio uso (la denominada "Swap") que, en caso necesario, es utilizada por el Sistema como una extensión, aunque muchísimo más lenta, de la memoria RAM principal.
§11  Ejercicios
  • Utilizar el programa Ideinfo     www.tech-pro.co.uk   Utilidad MS_DOS de Julian Moss para mostrar información sobre los discos IDE / ATA.  Puede mostrar el número de cilindros, cabezas, sectores por pista y el tamaño total.  Esta información es útil en caso de unidades antiguas de las que se necesita conocer los parámetros del disco instalado pero la CMOS ha perdido la información por agotamiento de las baterías.
  • Utilizar el programa Idediag    www.penguin.cz   Copyright (c) 2000,2001 Martin Hinner mhi@penguin.cz
  • Western Digital TBLCHK    WDtblchk   Utilidad de Western Digital que proporciona el número de dispositivos físicos detectados en el sistema; el número de dispositivos definidos en la BIOS y características de la tabla de parámetros de cada dispositivo.
Nota:  Estos programas, como la mayoría de las utilidades de diagnóstico, se ofrecen sin ningún tipo de garantía. Deben funcionar en MS-DOS nativo (no en una ventana DOS-Windows), y se supone que el usuario es cuidadoso en su manejo y se ejecutan sobre sistemas limpios (sin datos sensibles), o cuando menos, disponiendo de una copia de seguridad.  El primero (Ideinfo) es algo antiguo, puede que no funcione sobre sistema IDE actuales, pero puede ser de utilidad para chequear sistemas antiguos.  TBLCHK puede ser utilizado sin problemas, dado que no origina ninguna modificación en el equipo (a lo sumo escribir un fichero texto con un resumen de la exploración).
En caso que no funcionen los enlaces anteriores, puede probar con estas copias antiguas que conservo:  IdeinfoIdediag.
  • Los usuarios Linux pueden utilizar la utilidad hdparm del propio sistema ( 6.2)
§11 Webografía
Su nombre es Technical Commitee T13, y pertenece al INCITS ("InterNational Committee on Information Technology Standards"  http://www.incits.org/ ), una sección del ANSI ("American National Standards Institute") que se ocupa de los estándares relacionados con las tecnologías de la Información.  En concreto el grupo T13 se ocupa de las especificaciones ATA.
Nota:  Las especificaciones ATA (como la mayoría de normas) tienen un precio; generalmente bastante elevado para el presupuesto de un estudiante.  Si desea profundizar en estos temas, en las direcciones adjuntas puede encontrar los últimos borradores de algunos estándares [4].

   - Borrador ATA-1 de 6 Agosto 1999.  X3T9.2/791Dr4c
   - Borrador ATA-2 de 2001  X3T9.2/948Dr4c
   - Borrador ATA-3 de 2002.  d2008r7b    

[1]  El sector de arranque maestro ("Master boot record") de cada unidad física tiene 512 bytes de capacidad.  Además de cierto software, este espacio contiene una tabla, denominada tabla de particiones, que no puede albergar más de 4 entradas.  El resultado es que las plataformas i386 no permiten utilizar más de 4 particiones primarias en cada unidad física.  Independientemente, las unidades IDE están limitadas a un máximo de 63 particiones, mientras que en los SCSI se reducen a 15.  Además el número de sectores de cada partición no puede ser cualquiera; debe corresponder a un número exacto de cilindros.
[2]  Se recomienda que el cable plano no exceda de 18 pulgadas (unos 45 centímetros), con objeto de que no se vea afectado por las interferencias.
[3]  Esta tecnología se basa en que antes de que ocurran errores fatales en el disco, ciertos parámetros de funcionamiento sufren ligeras alteraciones.  Estas alteraciones pueden ser monitorizadas y detectadas en caso de presentarse (es un mantenimiento preventivo).  En caso de que una unidad presente ciertos síntomas, debe ser reemplazada inmediatamente.
[4]  Por lo general, este tipo de borradores suele coincidir con la norma en lo sustancial, a veces casi exactamente; en otros casos no contienen algunos añadidos de última hora.  En cualquier caso ofrecen una magnífica perspectiva de lo que puede encontrarse en el documento oficial.
[5]  Puede encontrar una completa descripción de los principios matemáticos del algoritmo CRC y programas de ejemplo en la Web de Reliable Software www.relisoft.com

TRABAJO No. 9 - IDE :PATA, SATA y eSATA


IDE : Diferencia entre PATA vs SATA


El dispositivo P-ATA y S-ATA tienen diferente modo de transmisión. Comunmente se le conoce como "Disco IDE" al dispositivo (disco) P-ATA , el cual transmite los datos de forma paralela. El cable IDE consiste de varias líneas(línea 80/40 pines o línea 40/ 40pines). La velocidad máxima de transmisión de datos del modo IDE es 133MB/s.

Veamos ejemplos de cable IDE

De izquierda a derecha, Cable IDE Redondo (para mejorar flujo de aire y espacio ocupado) , Cable IDE incluido en una tarjeta madre Gigabyte, Cable IDE convencional.

Foto Cables IDE


Cables IDE

Cable Redondo AC Ryan

En el IDE (o P-ATA) , la velocidad ya ha llegado a su límite (y tamaño) y es por eso que se desarrollo el S-ATA, el cual transmite los datos de forma serial. Además, el cable  es más sencillo (usa menos espacio) que lo de cable diseñado para P-ATA existente y la velocidad de transmisión de datos es más rápida , de hecho si es muy notorio cuando usas DVD-SATA y Disco SATA para hacer una instalacion de XP.Ejemplos de Cables SATA, y notese que usan menos espacio que los IDE (azules gruesos)

Cables SATA


Cables SATA convencionales

SATA

Ahora un ejemplo de Cable SATA con "sujetador" para evitar que se desconecten fisicamente al manipular tu computadora.

SATA con Sujetador

El disco duro de S-ATA y el P-ATA tiene diferente forma en la parte de conección a la electricidad y en el interfaz.

Por aquello del año 97 cuando salian los primeros discos PATA de mas de 20GB tenias que usar un procedimiento alterno para que el motherboard reconociera dichos dispositivos, varios fabricantes (maxtor, seagate, samsung, western) tenian sus drivers para lograrlo.

El disco duro  P-ATA puede instalarse haciendo uso del cable paralelo y buscando un puerto libre, algunos motherboard son muy sensibles en la configuracion del jumper de discos duros P-ATA, me refiero al famoso Master / Slave / CS.

S-ATA necesita generalmente de controlador en el motherboard (presente en muchos motherboard ), en otras palabras  necesitas que tu motheboard soporte el disco S-ATA.
(En caso de que no la soporte se puede usar instalando una tarjeta controladora S-ATA a una ranura PCI)

mOBO-c-sata-pata

Como los discos duros de P-ATA y S-ATA son de interface fisica muy diferente (ya lo hemos visto) , se pueden usar al mismo tiempo  (Desde las primeras motherboard INTEL de CHIPSET 865 ya podias hacer esto y actualmente desde los chipset g31, P35 o P45 de Intel -de AMD se los debo-)
IDE

El IDE es la abreviatura de Integrated Drive Electronics , se trata generalmente todos aquellas interfaces de los dispositivos que se usan en las tarjeta madre como lo son discos duros, CD-ROM, DVD-RW.

 En resumen La letra P en el P-ATA es la abreviatura de Parallel y significa paralelo.
Es un modo que los datos se mueven en varios cables alineados de forma paralela y cualquier ATA-100 , ATA-133 y el disco duro adoptan este modo.


IDE


El ATA-100 es un estándar de transmisión por Segundo a 100MB/S y el ATA-133 es de 133MB/S.


Se puede conectar dos dispositivos a un cable, al mismo tiempo, con el maestro/esclavo de forma paralela mediante el cable ancho de 40Pin que se usa comunmente en discos duros y en CD-ROM , los cuales todavia en tarjetas madre desde la generacion de los chipset p35 (intel) ya solamente poseen una sola interface PATA, es decir a lo mucho puedes conectar dos dispositivos de este tipo.

IDE Pines


Discos IDE

Los estándares como IDE / E-IDE / ATA-100 / ATA-133 se conectan del mismo modo con el cable 40Pin, de hecho la interfaz se ha mantenido estable durante mucho tiempo, veamos un ejemplo de un disco de 2Gb (hecho en 1996) para confirmar lo que menciono:


IDE Champ 2GB


IDE champ 2GB Pines


Pasemos al Serial ATA (S-ATA) ,la letra S  es la abreviatura de Serial y significa  Serie , el cual es un estándar mas actual del ATA y se usa ya en discos duros y unidades DVD-ROM (RW)

En breve explicación, es un modo de transmisión de datos de forma de alineación de serie , el cable es estrecho de unos 2cm de superficie y tiene una velocidad más alta que la de cualquier P-ATA existente.

El S-ATA I y el S-ATAII son de mismo estándar S-ATA y cada uno de cable y de Puerto se puede conectar solamente un dispositivo.
El estándar S-ATA I tiene el grado máximo de transmisión por segundo como 150 MB/s y el S-ATA II 300 MB/s (es decir el doble).

La siguiente imagen se trata de un disco SATA de la marca Western Digital , con su respectivo conector de corriente (izquierda) y cable de datos (derecha).



Disco SATA


Veamos ahora imagenes de discos para portatiles (Laptop) Sata (Samsung) y PATA(Fujitsu) que  visiblemente son mas chicos (2.5 Pulgadas) y mas delgados.

Ejemplos SATA-IDE LAP

Comparando la interfaz PATA y SATA en disco para Escritorio (Desktop) y Portatil (Laptop) no existe cambio, se usan los mismos numeros de pines (PATA) y en SATA el conector de DC (alimentacion) y el cable de datos.

Sata-IDE LAP


A continuación les muestro dos disco S-ATA de la serie gama alta Western Digital para Entusiastas o Empresas

Izquierda WD Raptor X 150GB ,  derecha WD Velociraptor 300GB, ambos con velocidades de hasta 10000RPM y accesos de I/O notablemente mas rapidos.

El Raptor X 150 es para lucirse en gabinetes lanbox (como los Thermaltake). Ambos son un poco "ruidosos" sobre todo el Raptor X 150, el velociraptor en promedio tiene un 35% de ahorro en energia sin sacrificar el rendimiento.

WD Raptor X150 vs WD Velociraptor 300

Pasamos en breve para mencionar a los no menos importantes discos SCSI (Small Computer System Interface) popular en las macintosh y donde podias agregar discos "en caliente" (plug and play) sin tener que esperar a tener el equipo apagado. Estos discos destinados principalmente a servidores ya giraban a 10000RPM.

Muestro a continuación un QUANTUM ATLAS de 36GB 10000RPM.

Quantum 36GB

En un puerto SCSI puedes tener hasta 8 dispositivos.

Cable SCSI

Terminador SCSI , algo asi como los antiguos protocolos de red (coaxial) donde tenias que colocar un dispositivo señalando el final de la red.

Terminador SCSI

martes, 18 de junio de 2013

LATENCIAS de Mermorias RAM

En informática los tiempos de latencia se refieren a tiempos de espera.
Para saber qué es la latencia de la memoria primero hay q ver cómo funciona..


imagen obtenida desde: http://www.legitreviews.com/article.php?aid=53

En primer lugar la ram se organiza en forma de matriz de filas "rows" y columnas "columns", q a su vez se agrupan en bancos "banks".. es decir es una matriz de 3 dimensiones, de filas y columnas dentro de bancos..

Cuando se solicita un dato dentro de la memoria hay q darle la dirección donde se contiene, se hará especificando el banco. Dentro de él la fila, y a su vez la columna dentro de la fila..

Una vez que se llega al principio de la lectura (todo lo q digo es análogo para escritura) se leen los datos en forma de ráfagas "bursts"

Es decir no se lee solo una posición sino ráfagas enteras, para ello se mantiene fija la fila y el banco y se va cambiando de columna para ir avanzando (si se llegase al final de fila, habría q cambiar a la siguiente, si se llegase al final de banco tb. habría q cambiar al siguiente).
Así hasta finalizar la lectura del "burst" de datos q interesa..

EL direccionamiento ser realiza mediante varias señales:

-Señal "ACTIVE": establece un banco de memoria como activo, tiene una duración mínima en ciclos.
Hasta q no concluyan los ciclos mínimos de la señal ACTIVE, no puede lanzarse una señal PRECHARGE para cerrar ese banco.
Hay q tener en cuenta q mientras un banco permanece activo está "bloqueado" para esa lectura/escritura, antes de poder volver a utilizarlo en otra lectura/escritura diferente hay q cerrarlo.

-Señal "RAS": Row Access Strobe, establece una fila dentro de un banco activo como seleccionada, esta señal consume varios ciclos para localizar la fila necesaria.

-Señal "CAS": Column Access Strobe, establece una columna dentro de una fila como seleccionada, esta señal consume varios ciclos para localizar la columna necesaria.

-Señal "PRECHARGE": cierra un banco de memoria activo, dejándolo libre para realizar sobre él otra lectura/escritura (lanzando otra señal ACTIVE con dirección a ese banco), consume un número de ciclos para realizar el cierre.

Pues bien.. las latencias aparecen del siguiente modo:

Se lanza una señal ACTIVE q activa el banco dentro del cual está la posición de memoria, "bloqueando" ese banco para otras lecturas/escrituras. Durará un mínimo de Ax ciclos.

Se lanza una señal RAS para localizar la fila dentro del banco, esta señal tardará Rx ciclos en completarse.

Un vez encontrada la fila, se lanza una señal CAS, esta señal tardará Cx ciclos en completarse..

Una vez completos los ciclos de las señales el dato está disponible en el bus, pero hay q seguir leyendo para completar el número de posiciones q completan el "burst" de datos q se lee

Con lo cual se vuelve a activar una señal CAS para avanzar a la siguiente columna dentro de la fila, y se añade una nueva latencia de Cx ciclos para completar la señal..

Habrá n señales CAS para completar la lectura del "burst" da datos, por tanto la latencia de la señal CAS será n*Cx

Un vez completada la lectura/escritura del "burst" se lanza una señal PRECHARGE para cerrar el banco activo y dejarlo libre para otra lectura/escritura, consumiendo esta señal Px ciclos.

NOTA: si no se hubiesen consumido los ciclos de la señal ACTIVE durante la lectura de las posiciones del "burst", habría q esperar hasta q concluyesen.

NOTA2: mientras esta señal esta activa puede haber señales ACTIVE a otros bancos, con lo cual, solo añade latencia si se quisiese acceder a ese banco en concreto mientras se está cerrando.

La latencia total de la lectura/escritura será del siguiente modo:
Ax>= Rx + n*Cx
T = Rx + n*Cx + Px

Se deduce de lo anterior q el banco debe estar activo un mínimo de tiempo (q podrá ser mayor o igual al tiempo de la lectura del "burst", mayor si el burst no consume los ciclos mínimos de la Señal ACTIVE, igual si los supera)

En la latencia total es "peso" de las distintas señales es diferente..

Se da una señal RAS, por n señales CAS..

La señal ACTIVE puede solaparse temporalmente con las anteriores llegando a no tener ninguna influencia sobre la latencia total

La señal PRECHARGE solo añadirá latencia real si se solicita otra señal ACTIVE sobre el mismo banco mientras sucede la señal PRECHARGE (mientras se está cerrando)

Por tanto se deduce q a la hora de obtener el tiempo total, la señal que más "pesa" es la señal CAS, q es la q suelen dar los fabricantes cuando se consulta las características sobre módulos de memoria.
Por ej. Kingstong DDR400 VALUERAM CL 2,5 --> CL = CAS Latency

Hasta ahora me he referido siempre a las latencias de memoria como los ciclos q tarda en completarse una señal..

Hay q tener en cuenta q una memoria DDR333 tiene 166 millones de ciclos por segundo (166*2=333), en cambio una DDR400 200 millones por segundo.

1/133*10^6 = 7,5 nanoSegs (10^-9)
1/166*10^6 = 6 nanoSegs
1/200*10^6 = 5 nanoSegs

Por tanto si tenemos una memoria con unas duraciones:
ACTIVE: 6
RAS: 3
CAS: 2,5
PRECHARGE: 3

Las latencias para esa Memoria serían:

/**
* NOTA: aquí calculo la suma de todas las señales de forma ideal,
* hay que tener en cuenta que esta suma solo es orientativa.
* Para averiguar la latencia real de una lectura o escritura,
* habría q tener en cuenta las consideraciones anteriores.
* ACTIVE, puede solaparse, y mientras sucede PRECHARGE solo
* habrá latencia si se quiere lazar otra ACTIVE sobe el mismo banco.
*
* Además considero que todos los datos del burst están en la misma fila
* por tanto solo ocurre RAS una vez (pero podría ser necesario cambiar
* de fila dándose la señal RAS m veces (típicamente m<<n)).
*
* Incluso puede ser necesario cambiar de banco, necesitándose señal
* ACTIVE en varios bancos (seguida de PRECHARGE para los mismos)
*/

DDR266(133x2):
ACTIVE____RAS_____nCAS___PRECHARGE
(6*7,5) + (3*7,5) + n(2,5*7,5) + (3+7,5) = 45 + 22,5 + 18,75n + 22,5 = 90 + 18,75n nanoSegs

DDR333(166x2):
(6*6) + (3*6) + n(2,5*6) + (3*6) = 36 + 18 + 15n + 18 = 72 + 15n nanoSegs

DDR400(200x2):
(6*5) + (3*5) + n(2,5*5) + (3*5) = 30 + 15 + 12,5n + 15 = 60 + 12,5n nanoSegs

Así se observa como al subir la frecuencia de la memoria bajan los tiempos de latencia (siempre y cuando las señales tenga la misma duración en ciclos)

Pero en la práctica suele ocurrir (ver si no páginas de fabricantes) q al subir la frecuencia de la memoria aumentan tb. los ciclos de las señales, o al menos el de la señal CAS (q por lo general es el único q indican).. por tanto hay q tener en cuenta la siguiente consideración..

Tengamos dos módulos de memoria:

DDR266(133x2) (ACTIVE6, RAS3, CAS2, PRECHARGE3)
(6*7,5) + (3*7,5) + n(2*7,5) + (3+7,5) = 45 + 22,5 + 15n + 22,5 = 90 + 15n nanoSegs

DDR400(200x2) (ACTIVE6, RAS3, CAS4 PRECHARGE3)
(6*5) + (3*5) + n(4*5) + (3*5) = 30 + 15 + 15n + 15 = 60 + 20n nanoSegs

COMPARACIÓN:
DDR266: 90 + 15n nanoSegs
DDR400: 60 + 20n nanoSegs

90 + 15n < 60 + 20n
90-60 < [20-15]n
30 < 5n
n > 30 / 5
n > 6

Si el "burst" es mayor a 6 columnas la latencia en un módulo DDR266 CAS2 será menor q la latencia en un módulo DDR400 CAS 4 (es un caso un tanto exagerado, pero recordad q los módulos DDR2 alcanzan latencias realmente grandes, y q ya hay módulos DDR con latecias 1,5).. Por tanto no solo importa la frecuencia a la q trabaje un módulo de memoria (rapidez con que se transmiten los datos por el bus y número de ciclos por segundo a los q opera), si no también los tiempos de latencia del módulo..

Más Consideraciones:
Los tiempos latencia no solo aparecen a la hora de la duración de las señales de memoria.
También hay q tener en cuenta la relación entre FSB y Frecuencia de Memoria..

UN POCO DE ARQUITECTURA:
En un placa base "a groso modo" hay varios elementos q se relacionan. Todos ellos lo hacen a través de un elemento q arbitra las comunicaciones, el chipset, este está formado típicamente por dos partes, el Puente Norte y el Puente Sur.

El puente sur Norte regula el trafico de datos entre el Microprocesador, la memoria Ram y el bus AGP, a su vez recoge los datos procedentes del puente sur.

El puente sur regula el tráfico procedente, de los canales IDE, SATA(si lo hubiera), Slots PCI, Puertos (PS2, USB, etc..), y lo dirige hacia el puente norte..



Aquí se ve el esquema de un Chipset SIS748 para microprocesadores AMD Athlon (el esquema sería análogo para casi cualquier otro chipset del mercado, aunq con los nuevos AMD64 el esquema sí sufre variaciones significativas)

El chip SiS748 sería el Puente Norte, y el SiS963L el Puente Sur.

Como se ve en el esquema el MicroProcesador se comunica con el puente norte a través del FSB, y este tiene una frecuencia..
Siguiendo con el caso de micros AMD, tenemos q para Athlons (con núcleos Palomino o ThroughBred) el FSB es de 266 Mhz (aunq han sacado un 2600+ a 333) Para Núcleos Barton hay versiones con 333 y 400

A su vez el Puente norte se comunica con los módulos RAM lo hace con la frecuencia con la q operan, 200, 266, 333, 400, etc..

¿Qué ocurre si el FSB y la frecuencia de la memoria no coinciden?, en este caso, se dice q los buses trabajan de forma asíncrona, y el puente norte debe realizar una sincronización entre ellos. El esfuerzo de sincronización genera una nueva latencia.. (en el peor de los casos el bus de memoria se limita a esperar añadiendo ciclos de espera, al FSB)

Los chipsets actuales, están optimizados para trabajar de forma síncrona, es decir con FSB y frecuencia de memoria iguales, de tal forma q no haya q realizar ninguna sincronización y no se añadan tiempos de latencia..

Por ello, y debido al hecho de que al aumentar la frecuencia de los módulos de memoria, el número de cíclos de las señales tb. tiende a aumentar (salvo q pagues un pastón por módulos buenos), resulta mejor en términos de rendimiento (y de pasta) el tener módulos de memoria q trabajen a la misma frecuencia del FSB del microprocesador y tengan latencias bajas, q tener módulos más rápidos con latencias mayores.

Aquí van un par de ejemplos de lo que digo:
Enlace 1 - Tom´s HardWare (inlgés)
Enlace 2 - Tom´s HardWare (Inglés)

OPTIMIZACIÓN DE TIEMPOS DE LATENCIA:
Al configurar los buses como síncronos para evitar la latencia de sincronización, podemos encontrarnos en el caso de tener nuestros módulos de memoria trabajando por debajo de su velocidad nominal.

Consideremos lo siguiente:
Si tuviesemos un módulo CAS2,5 RAS3 PRECHARGE3 ACTIVE6 2,5-3-3-6

Las duraciones de un cíclo de reloj para cada módulo son:
DDR266: 1/133*10^6 = 7,5nanoSegs
DDR333: 1/166*10^6 = 6nanoSegs
DDR400: 1/200*10^6 = 5nanoSegs
Al tener mayor cantidad de cíclos por segundo, la duración de cada cíclo disminuye.. Se ve claro, ¿no?

Pues bien, si en vez de hablar en términos relativos (cíclos q duran las señales), hablamos en terminos totales (duración en tiempo de las señales), tendríamos:
DDR266: 7,5nS * 2,5-3-3-6 ---> 18,75 - 22,5 - 22,5 - 45
DDR333: 6nS * 2,5-3-3-6 ---> 15 - 18 - 18 - 36
DDR400: 5nS * 2,5-3-3-6 ---> 12,5 - 15 - 15 - 30

Es decir, q para una misma duración en cíclos cuanto más rapida sea la memoria tendrá mayor número de cíclos por unidad de tiempo, y por tanto los cíclos son mas cortos. Asiq su latencia es menor q en un módulo más lento de las mismas características para las señales..

La utilidad de todo esto, es pensar no en términos de cíclos por señal (q es lo q se configura en el BIOS) si no en duración total.. Y de esa forma se puede pensar q si una memoria fuese DDR333 y un micro va a 266. Al configurarlos como síncronos, habría q ponerle a la memoria el número de cíclos q se ajusten a las duraciones en tiempo q admita para las señales..

Y de esta forma se puede ver que:
15/7,5 = 2 (en vez de 2,5)
18/7,5 = 2,4 (en vez de 3)
36/7,5 = 4,8 (en vez de 6)

Asi q si se reduce la velocidad de la memoria para sincronizarla al FSB (cosa q te optimiza el rendimiento), se debe reducir tb. los cíclos de las señales de memoria.. En realidad esto no fuerza la memoria, ya q solo adapta el número de cíclos para q las señales duren la misma cantidad de tiempo (o la más proxima).

CASO PRÁCTICO:
Para terminar, un comentario práctico, sobre cómo se refleja todo esto en el Setup del BIOS en un par de placas base.

He elegido dos placas de diferente marca, con distinto chipset y distinta marca de fabricante del BIOS

Ejemplo1: ASUS A7S333
-Chipset: SiS745
-BIOS: AMI
Manual en PDF Aquí

En la página 59 del Manual (75 del PDF) están comentados los parámetros de duración de las señales:

SDRAM Configuration [User Defined / By SPD]: primero comentar q la memoria lleva información sobre sí misma (dada por el propio fabricante) en ella se detallan los tiempos de las señales asi como su frecuencia de funcionamiento, de tal forma q funcione de forma estable. A estos valores se puede acceder a través del SPD (Serial Presence Detect) si se pone esa opción se dejarán los valores dados por el Fabricante. Mediante User defined se pueden poner valores diferentes (o no)

SDRAM CAS Latency: se refiere a la duración en ciclos de la Señal CAS (dice exactamente q es el retardo entre en comando de lectura (q sucede cdo se ha localizado la fila en la q leer o sea después de una señal RAS), y el momento en q el dato se encuentra disponible en el bus).. Traducido, lo q tarda en localizarse una columna dentro de una fila

SDRAM RAS to CAS Delay: se refiere a la duración en ciclos de una señal RAS (dice exactamente q es el retardo entre una señal ACTIVE y el comando Lectura/escritura, q sucede una vez localizada la fila dentro del banco).. Traducido significa lo q tarda en localizarse una fila dentro de un banco

SDRAM RAS PRECHARGE Time: duración en ciclos de una señal PRECHARGE (dice exactamente q son los ciclos q deben pasar después de realizar una señal PRECHARGE)

SDRAM RAS ACTIVE Time: duración mínima en ciclos de una señal ACTIVE (dice exactamente q son los ciclos q deben pasar tras realizar una señal ACTIVE)

Ejemplo2: Abit NF7 - S
-Chipset: nVidia nForce2
-BIOS: Award
 
En la página 4-15 del manual (78 del PDF) están comentados los parámetros en esta placa.

Memory timings : [Optimal/Aggressive/Expert] siendo Optimal el equivalente a By SPD, Aggressivve (una configuración q da la palca) y Expert Definidos por el Usuario.

Row-Active-Delay: es la duración de la señal ACTIVE (dice exactamente q es la duración mínima en ciclos desde una señal ACTIVE hasta una señal PRECHARGE al mismo banco)

Row-to-Cas-Delay: es la duración de la señal RAS (dice exactamente q es el periodo entre ACTIVE y comando lectura/escritura, q sucede cuando se localiza la fila).. O sea el tiempo entre ACTIVE y CAS (q es la duración de la señal RAS)

Row-Precharge-Delay: duración de la señal PRECHARGE (dice exactamente q son los ciclos de espera tras una señal PRECHARGE)

CAS Latency Time: duración de la señal CAS (dice exactamente q puedes elegir los ciclos de la latencia CAS dependiendo de las especificaciones de tu memoria)

lunes, 17 de junio de 2013

TRABAJO No. 8 - PCI - Peripheral Component Interconnect



INSTITUTO TECNOLÓGICO SUPERIOR HUAQUILLAS
TRABAJO DE ORDENAMIENTO DE COMPUTADORAS
Alumno:        Luis Eduardo Vivanco Sánchez
Docente:       Ing. Robin Zamora
Fecha:           17 de Junio del 2013
Tercer Nivel  -  Trabajo N° 8

PCI - P
eripheral Component Interconnect  
"Interconexión de Componentes Periféricos"

Especificaciones de la versión de PCI más comúnmente usada en los PC

-       Reloj de 33,33 MHz con transferencias síncronas
-       Ancho de bus de 32 bits o 64 bits
-       Tasa de transferencia máxima de 133 MB por segundo en el bus de 32 bits (33,33 MHz × 32 bits ÷ 8 bits/byte = 133 MB/s)
-       Tasa de transferencia máxima de 266 MB/s en el bus de 64 bits.
-       Espacio de dirección de 32 bits (4 GB)
-       Espacio de puertos I/O de 32 bits (actualmente obsoleto)
-       256 bytes de espacio de configuración.
-       3,3 V o 5 V, dependiendo del dispositivo

Además están los PCI Latency Timers que son mecanismos para que los dispositivos PCI Bus-mastering compartan el bus PCI de manera más justa. Donde ‘justa’ en este caso significa que los dispositivos no usarán una porción tan grande del ancho de banda del bus PCI disponible tal que otros dispositivos no sean capaces de realizar su trabajo. Nota: esto no se aplica al PCI Express.

Variantes convencionales de PCI

-       Cardbus es un formato PCMCIA de 32 bits, 33 MHz PCI (PCMCIA es el acrónimo de Personal Computer Memory Card International Association, una asociación Internacional centrada en el desarrollo de tarjetas de memoria para ordenadores personales que permiten añadir al ordenador nuevas funciones. Existen muchos tipos de dispositivos disponibles en formato de tarjeta PCMCIA: módems, tarjetas de sonido, tarjetas de red.)
-       Compact PCI, utiliza módulos de tamaño Eurocard conectado en una placa hija PCI.
-       PCI 2.2 funciona a 66 MHz (requiere 3,3 voltios en las señales) (índice de transferencia máximo de 503 MiB/s (533MB/s).
-       PCI 2.3 permite el uso de 3,3 voltios y señalizador universal, pero no soporta los 5 voltios en las tarjetas.
-       PCI 3.0 es el estándar final oficial del bus, con el soporte de 5 voltios completamente quitado.
-       PCI-X cambia el protocolo levemente y aumenta la transferencia de datos a 133 MHz (índice de transferencia máximo de 1014 MiB/s).
-       PCI-X 2.0 especifica un ratio de 266 MHz (índice de transferencia máximo de 2035 MiB/s) y también de 533 MHz, expande el espacio de configuración a 4096 bytes, añade una variante de bus de 16 bits y utiliza señales de 1,5 voltios.
-       Mini PCI es un nuevo formato de PCI 2.2 para utilizarlo internamente en los portátiles.
-       PC/104-Plus es un bus industrial que utiliza las señales PCI con diferentes conectores.
-       Advanced Telecommunications Computing Architecture (ATCA o AdvancedTCA) es la siguiente generación de buses para la industria de las telecomunicaciones.
-       PXI es la extensión del bus PCI para instrumentación y control.

Dimensiones de las tarjetas

Tarjeta de tamaño completo
La tarjeta original PCI de “tamaño completo” tiene un grosor de unos 107 mm (4.2 pulgadas) y una largo de 312 mm (12.283 pulgadas). La altura incluye el conector de borde de tarjeta. Sin embargo, las tarjetas PCI más modernas son de medio cuerpo o más pequeñas (mirar debajo) y a muchos ordenadores personales no se les pueden encajar una tarjeta de tamaño lleno.

La Tarjeta backplate
Además de estas dimensiones el tamaño del backplate está también estandarizado. El backplate es la pieza de metal situada en el borde que se utiliza para fijarla al chasis y contiene los conectores externos. La tarjeta puede ser de un tamaño menor, pero el backplate debe ser de tamaño completo y localizado propiamente. Respecto del anterior bus ISA, está situado en el lado opuesto de la placa para evitar errores.

La tarjeta de extensión “de medio cuerpo” (de facto estándar)
Esto es de hecho el estándar práctico en la actualidad - la mayoría de las tarjetas modernas PCI son aptas dentro de estas dimensiones.
• Anchura: 0.6 pulgadas (15.24 mm) • Profundidad: 6.9 pulgadas (175.26 mm) • Altura: 4.2 pulgadas (106.68 mm)

La tarjeta de perfil bajo (altura media)
La organización PCI ha definido un estándar para tarjetas "de perfil bajo" que es básicamente apto en las gamas siguientes:
• Altura: 1.42 pulgadas (36.07 mm) a 2.536 pulgadas (64.41 mm) • • Profundidad: 4.721 pulgadas (119.91 mm) a 6.6 pulgadas (167.64 mm)

El anaquel también es reducido en altura a un estándar de 3.118 pulgadas (79.2 mm). El anaquel más pequeño no encaja en un ordenador personal estándar. Muchos fabricantes solucionan esto suministrando ambos tipos de anaquel (los anaqueles típicamente son atornillados a la tarjeta entonces el cambio de ellos no es difícil).
Éstas tarjetas pueden ser conocidas por otros nombres como "delgado". • perfil bajo PCI FAQ • perfil bajo PCI Especificación

Mini PCI fue añadida a la versión 2.2 PCI para el empleo en ordenadores portátiles y usa un bus de 32 bits, de 33 MHz con conexiones alimentadas (3.3 V sólo) y soporte de bus mastering y DMA. El tamaño estándar para tarjetas Mini PCI es aproximadamente 1/4 de sus similares de tamaño completo. Como no hay ningún acceso externo a la tarjeta de la misma manera que hay para las tarjetas PCI de sobremesa, hay limitaciones en las funciones que pueden realizar.
Muchos dispositivos Mini PCI han sido desarrollados, tales como Wi-Fi, Ethernet Rápida, Bluetooth, módems (a menudo Winmodems), tarjetas de sonido, aceleradores criptográficos, controladores SCSI, IDE/ATA, SATA, tarjetas de combinación. Las tarjetas regulares PCI pueden ser usadas con el hardware Mini PCI-equipado y viceversa, usando de-Mini PCI a PCI y de PCI-a los-Mini PCI convertidores. Mini PCI ha sido reemplazado por PCI Express Mini Card.

Los detalles técnicos de tarjetas Mini PCI
Las tarjetas Mini PCI tienen un consumo máximo de 2W, que también limita la funcionalidad que puede ser puesta en práctica en este factor de forma. Requieren que ellos también soporten la señal PCI CLKRUN#, empleada para arrancar y detener el reloj PCI por motivos de control de energía.

Existen tres factores de forma de tarjeta: Tipo I, Tipo II, y Tipo III. El conector de tarjeta usado para cada tipo incluye: El tipo I y II usan un conector de colocación de 100 pines, mientras el Tipo III emplea un conector de borde de 124 pines, p. ej: el conector para Tipo I y II se diferencian por esto del Tipo III, donde el conector está sobre el borde de una tarjeta, como con un SO-DIMM. Los 24 pines adicionales proporcionan las señales suplementarias requeridas a la ruta de entada salida por atrás del sistema conector (audio, el eslabón de corriente alterna, el LAN, la interfaz de línea telefónica). El tipo II de tarjetas tienen montados los conectores RJ11 Y RJ45. Estas tarjetas deben ser localizadas en el borde del ordenador o la estación que se atraca de modo que el RJ11 y puertos RJ45 puedan ser montados para el acceso externo.

Tarjeta de pulsación
Las típicas tarjetas PCI presentan una o dos muescas claves, según su voltaje señalado. Las tarjetas que requieren 3.3 voltios tienen una muesca de 56.21mm al frente de la tarjeta (donde están los conectores externos), mientras aquellos requieren 5 voltios tienen una de muesca 104.47mm del frente de la tarjeta. Las llamadas " tarjetas Universales " tienen ambas muescas claves y pueden aceptar los dos tipos de señales.


Peripheral Component Interconnect Express o PCI Express
En el mundo de PCI Express, el recurso compartido deja de serlo el bus para pasar a serlo el switch. Cada dispositivo en el sistema tiene un acceso directo y exclusivo al switch, la conexión de cada dispositivo con el switch se denomina enlace (link).
 Descripción: http://www.tga.es/articulos/PCIExpress_archivos/image003.jpg

Descripción: http://www.tga.es/articulos/PCIExpress_archivos/image005.jpg
PCI
PCI Express

Cada enlace está compuesto de uno o más lanes donde cada lane es capaz de transferir en ambas direcciones simultáneamente.

Esta comunicación full duplex es posible debido a que cada lane utiliza un par de señales de recepción y otro par de transmisión (cuatro hilos) ambos de tensión diferencial.

Una de las características de PCIe  es que se pueden integrar múltiples lanes (es decir, ampliar el ancho de banda) para formar un único enlace.

Las tarjetas y ranuras PCI Express se definen por su número de lanes que forman el enlace, normalmente uno, cuatro, ocho o dieciséis lanes dando lugar a configuraciones llamadas x1, x2, x4, x8, x12, x16. La notación x1, x2, x4  se refiere al número de lanes disponibles o ancho del bus.

Un simple lane en PCI-Express ofrecerá inicialmente una velocidad de 2,5 Gbits/s en cada dirección.

Cada enlace puede tener un máximo de 32 lanes obteniendo en este caso un ancho de banda con una tasa de transferencia de 8 GB/s.

Esto representa una considerable mejora de la tasa de transferencia del actual PCI

Descripción: http://www.tga.es/articulos/PCIExpress_archivos/image010.gif

 En PCIe cada dispositivo está conectado al switch. Este recurso compartido rutea el tráfico del bus y establece conexiones punto a punto entre cualquier par de dispositivos en el sistema. Esta comunicación está dividida en paquetes discretos de datos que el switch rutea. La CPU puede comunicarse con cualquier dispositivo PCIe estableciendo un enlace de comunicación a través del switch.

A diferencia de las antiguas tecnologías de arquitectura de buses paralelos, PCI Express garantiza a cada dispositivo su propio ancho de banda y al centralizar el ruteo de tráfico y la gestión de recursos en el switch, se pueden priorizar paquetes de manera que las aplicaciones en tiempo real pueden obtener un acceso inmediato al switch.

 Otras caracteristicas de PCI Express:

-       Permite conexión en caliente (hot-plug)
-       Permite cambio en caliente (hot-swap)
-       Gestión integrada de errores.
-       Implementa funciones de ahorro de energía.

Aunque no hay compatibilidad hacia atrás respecto al hardware, se mantiene una compatibilidad con PCI en relacion al software.

El sistema operativo puede bootear y utilizar los dispositivos PCIe sin realizar modificaciones en los mismos.
Para utilizar las características inherentes al estándar PCI Express, como gestión de errores o funciones de ahorro de energía, el sistema operativo debe ser capaz de hacerlo directamente.  Si esto no es así, se reconocen las interrupciones PCI existentes y los drivers permanecen sin alteraciones. Los primeros 256 bytes de espacio de  configuración son idénticos a los registros PCI actuales, y debido a que el sistema operativo ve al switch PCI express como un bridge PCI virtual incluso viejos sistemas operativos pueden configurar dispositivos PCI express.

Sin embargo la BIOS si debe contar con soporte para PCI Express, ya que estos dispositivos requieren un espacio de configuración relativamente grande.


Sustituye el bus paralelo por una conexión serie punto a punto bidireccional que permite agregar canales en una comunicación. Esto hace que existan distintos tamaños de bahías para PCI-e: x1, x4, x8 (de aspecto similar a x16) y x16. El más utilizado en tarjetas gráficas es el PCI-e x16 con enganche de tarjeta al final de la bahía.
Es compatible con PCI a nivel software.

PCI-e 1.1
Tasa transferencia teórica por canal = 250 MBytes/s, bidireccional = 500 MBytes/s.
Tasa máxima PCI-e x32 = 8GB/s en cada dirección. Pero la variante más usada de la versión 1.1 es x16 (4GB/s en cada dirección).
En la capa física se usa codificación 8b/10b, lo que decrementa las tasas de transferencia.
PCI-e 2.0: Dobla la tasa de transferencia (500 MB/s por canal en una dirección).
PCI-e 3.0: Dobla de nuevo la tasa de transferencia (1GB/s por canal en una dirección).
En la siguiente imagen podemos ver varios puertos PCI-e / PCI:

Descripción: Image GHardwarePC-img17

<- PCI-e x4
<- PCI-e x1
<- PCI-e x16, con enganche
<- PCI

Compatibilidad
La conexión entre dos dispositivos PCI-e se llama ``enlace'', formado por colecciones de 1, 2, 4, 8, 16 o 32 líneas.
Cualquier dispositivo funcionará en una bahía (slot) de su tamaño, como mínimo.
PCI-e negociará el número de lineas soportado por las dispositivos conectados.
Algunas implementaciones comerciales permiten trabajar con dos tarjetas gráficas a la vez, como SLI (Scalable Link Interface) de Nvidia, o Crossfire de ATI.


PCI Express® Mini Card:

Descripción: http://pc-level.com/wp-content/uploads/2009/02/mini-pci-express.jpg
Fabricantes:

Sierra Wireless, que hasta donde llega mi memoria fue el precursor, con su completa familia de módulos AirPrime, con soporte incluso hasta LTE.

Telit, con su modelo HE910 Mini PCIe (UMTS/HSPA+ con receptor A-GPS opcional)

Huawei, con su módulo EM820W (HSPA+)

u-Blox, con sus modelos CDMA-EV-DO FW2770p / 2763p

La estandarización de este formato para este tipo de módulos es un valor importante para los desarrolladores, ya que pueden contar con más de una alternativa a la hora de vender sus productos dependiendo de las aplicaciones.

De esta manera, si necesita una gran transferencia de datos (aplicación con streaming de video, por ejemplo), y la tecnología LTE está operativa allí donde quiera vender su equipo, podrá elegir un módulo LTE. Si el cliente se conforma con imágenes, y dependiendo de la cobertura y el tiempo de refresco, siempre se podrá optar por un módulo HSPA ó GPRS.

Otra cosa a tener en cuenta es el soporte de drivers por parte del fabricante. La mayoría de ellos soportan drivers para los sistemas operativos de Microsoft Windows (XP, 7 u 8) y Linux, y algunos ya se anuncian con soporte directo de drivers para Android, que como ya comenté en una entrada anterior, se está extendiendo en su uso industrial, y no solo comercial.
Esperemos que este proceso se mantenga y permita el uso de diferentes modulos para distintas aplicaciones con el mismo diseño, que hasta ahora era uno de los principales problemas a la hora de desarrollar un sistema embebido con comunicaciones 2G/3G (incompatibilidad en tre marcas, obsolescencia, etc.).