stringtranslate.com

Contar datos clave

Los datos de clave de conteo ( CKD ) son un formato de registro de datos de dispositivo de almacenamiento de acceso directo (DASD) [a] introducido en 1964 por IBM con su IBM System/360 y que aún se emula en los mainframes de IBM. Es un formato autodefinido en el que cada registro de datos está representado por un área de conteo que identifica el registro y proporciona la cantidad de bytes en un área de clave opcional y un área de datos opcional. Esto contrasta con los dispositivos que utilizan un tamaño de sector fijo o una pista de formato independiente.

Los datos de clave de conteo (CKD) también se refieren al conjunto de comandos de canal (colectivamente, palabras de comando de canal, CCW) que genera un mainframe IBM para su ejecución por un subsistema DASD que emplea el formato de registro CKD. [1] El conjunto inicial de CCW de CKD, introducido en 1964, se mejoró y mejoró sustancialmente en la década de 1990.

Formato de pista CKD

Diagrama de bloques del formato de pista de datos de la tecla de conteo utilizado en las computadoras mainframe de IBM a partir del envío de S/360 en 1965

La razón del formato de pista CKD es permitir que varíen las longitudes de los campos de datos; cada bloque de datos registrado en una pista DASD, llamado registro , tiene un campo de conteo asociado que identifica el registro e indica el tamaño de la clave, si se usa (definida por el usuario hasta 255 bytes), y el tamaño del área de datos, si se usa. [2] [b] El campo de conteo tiene la identificación del registro [c] en formato de registro de cabeza de cilindro, la longitud de la clave y la longitud de los datos. La clave puede omitirse o consistir en una cadena de caracteres.

"El comienzo de una pista se señala cuando se detecta el marcador de índice (punto de índice). ... El marcador es reconocido automáticamente por un dispositivo de detección especial". [3] : 5  Después del marcador de índice se encuentra la dirección de inicio , que indica la ubicación de esta pista en el disco y contiene otra información de control interna a la unidad de control. Un espacio de longitud fija sigue a la dirección de inicio. A continuación, cada pista contiene un Registro 0 (R0), el registro descriptor de pista, que está "diseñado para permitir que todo el contenido de una pista se mueva a pistas alternativas si una parte de la pista principal se vuelve defectuosa". [3] : 7  Después de R0 se encuentran los registros de datos, separados por espacios. [3] : 9 

Debido a los espacios vacíos y a otra información, el espacio registrado es mayor que el necesario para los datos de recuento, los datos clave o los datos de usuario. IBM proporciona una "tarjeta de referencia" para cada dispositivo, que se puede utilizar para calcular la cantidad de registros por pista para varios tamaños de campos de datos y claves, y para optimizar la capacidad del dispositivo. [4] Más tarde, se escribieron programas para realizar estos cálculos. Debido a que los registros normalmente no se dividen entre pistas, la especificación de un tamaño de registro incorrecto crea problemas.

En la mayoría de los casos, se omite la clave y el registro se localiza de forma secuencial o mediante direccionamiento directo de registro de cabezal cilíndrico. Si está presente, la clave es cualquier dato utilizado para encontrar el registro, normalmente utilizando la clave de búsqueda igual o la clave de búsqueda alta o igual en sentido antihorario. La clave (y, por lo tanto, el registro) se puede localizar mediante comandos de hardware. [5] [ página necesaria ] Desde la introducción del System/360 de IBM en 1964, casi todos los DASD de sistemas grandes e intermedios de IBM han utilizado el formato de registro de datos de clave de conteo. [6] [ página necesaria ]

Las ventajas del formato de registro de datos de clave de conteo son:

Los precios reducidos de CPU y memoria y las velocidades mayores de dispositivos e interfaces han anulado en cierta medida las ventajas de CKD, y se mantiene sólo porque el sistema operativo insignia de IBM, z/OS, no admite interfaces orientadas a sectores.

Originalmente, los registros CKD tenían una correspondencia uno a uno con una pista física de un dispositivo DASD; sin embargo, con el tiempo los registros se han vuelto cada vez más virtualizados, de modo que en los mainframes IBM modernos ya no existe una correspondencia directa entre un ID de registro CKD y el diseño físico de una pista.

Subsistemas CKD DASD de IBM

Embalaje

Operaciones de entrada/salida de IBM S/360 y S/370 para CKD DASD que muestran el canal, la unidad de control de almacenamiento y el dispositivo DASD

Inicialmente, había un alto grado de correspondencia entre la vista lógica de los accesos DASD y el hardware real, como se muestra en la ilustración. Se colocaban etiquetas de tres dígitos [d] para identificar la dirección del canal, la unidad de control y el dispositivo.

En los sistemas de gama baja, el canal y la unidad de control se integraban físicamente con frecuencia, pero permanecían separados lógicamente. La nueva estrategia de conexión de IBM [7], que comenzó con el modelo 3830 2 en 1972, separó físicamente la SCU en dos entidades físicas, un director y un controlador, pero las mantuvo lógicamente iguales. El controlador maneja el formato de la pista CKD y se empaqueta con la primera unidad o unidades de una cadena de unidades y tiene un número de modelo con la letra "A" como prefijo, una "Unidad A" (o "Caja A") como en el modelo 3350 A2 que contiene un controlador y dos DASD. Los DASD sin un controlador, es decir, las Unidades B, tienen un prefijo "B" en su número de modelo.

Los subsistemas CKD [e] y directores fueron ofrecidos por IBM y competidores compatibles con plug-in hasta al menos 1996 (2301 a 3390 Modelo 9); [8] en total 22 DASD únicos [f] ofrecidos por IBM configurados en al menos 35 configuraciones de subsistemas diferentes . Los compatibles con plug-in ofrecían muchos de los mismos DASD, incluidos 4 subsistemas CKD con DASD únicos. [g]

Programación

El acceso a clases específicas de dispositivos de E/S por parte de un mainframe IBM está bajo el control de palabras de comando de canal (CCW), algunas de las cuales son genéricas (por ejemplo, Sin operación), pero muchas de las cuales son específicas del tipo de dispositivo de E/S (por ejemplo, Lectura hacia atrás para una unidad de cinta). El grupo de CCW definido por IBM para DASD se divide en cinco categorías amplias:

Las CCW de CKD son el conjunto específico de CCW que se utilizan para acceder a los subsistemas DASD de CKD. Esto contrasta con las CCW de arquitectura de bloque fijo (FBA) que se utilizan para acceder a los subsistemas DASD de FBA.

Los DASD de CKD se direccionan como otros dispositivos de entrada/salida; para System/360 y System/370 los DASD se direccionan directamente, a través de canales y las unidades de control asociadas [9] [10] [11] (SCU o Storage Control Unit), inicialmente utilizando tres dígitos hexadecimales, uno para canal y dos para unidad de control y dispositivo, proporcionando direccionamiento para hasta 16 canales, para hasta 256 mecanismos de acceso DASD/canal y 4.096 direcciones DASD en total. Los mainframes IBM modernos utilizan cuatro dígitos hexadecimales como un número de subcanal arbitrario dentro de un subconjunto de subsistema de canal, cuya definición incluye los canales reales, las unidades de control y el dispositivo, proporcionando direccionamiento para hasta 65.536 DASD por subconjunto de subsistema de canal. En la práctica, las restricciones físicas y de diseño del canal y de los controladores limitaron el número máximo de DASD adjuntos que se pueden conectar a un sistema a una cantidad menor que la cantidad que se puede direccionar.

Conjunto inicial de características de la enfermedad renal crónica

El conjunto de características iniciales proporcionadas por IBM con la introducción en 1964 del formato de pista CKD y los CCW asociados incluía: .

También se proporcionó un conjunto de funciones de escaneo, pero no continuó en futuros subsistemas CKD más allá del 2314.

Cuarenta y un CCW implementaron el conjunto de características:

Notas:

O = característica opcional
S = característica estándar
MT = multipista: cuando se admite CCW, continuará funcionando en los siguientes cabezales en secuencia hasta el final del cilindro
‡ = TIC (Transferencia en canal) y otros comandos estándar no se muestran.
† = código igual que MT Off excepto que se indica lo contrario
1. La función de escaneo de archivos (9 CCW) solo estaba disponible en 2841 para 2302, 2311 y 2321; no estaba disponible en los controladores DASD posteriores a 2314.
2. El recuento es el número de bytes en el argumento de búsqueda, incluidos los bytes de máscara

Las CCW se ejecutaban inicialmente mediante dos tipos de SCU conectados a los canales selectores de alta velocidad del sistema . La SCU 2820 [16] controlaba el tambor 2301, mientras que la SCU 2841 [12] controlaba combinaciones del almacenamiento en disco 2302 , la unidad de disco 2311 , la celda de datos 2321 y/o el almacenamiento en tambor 7320. IBM reemplazó rápidamente el 7320 por el 2303, más rápido y de mayor tamaño.

Posteriormente, el conjunto de características se implementó en la familia de controles de almacenamiento 2314 y en un accesorio integrado del Sistema 370 Modelo 25 .

El siguiente ejemplo de un programa de canal [18] lee un registro de disco identificado por un campo de clave. Se conoce la pista que contiene el registro y el valor deseado de la clave. La SCU buscará en la pista para encontrar el registro solicitado. En este ejemplo, <> indica que el programa de canal contiene la dirección de almacenamiento del campo especificado.

 BUSCAR <número de cilindro/cabeza> CLAVE DE BUSQUEDA IGUAL <valor de clave> TIC *-8 Volver a la búsqueda si no es igual LEER DATOS <buffer>
La TIC (transferencia en el canal) hará que el programa del canal pase al comando SEARCH hasta que se encuentre un registro con una clave coincidente (o el final de la pista). Cuando se encuentra un registro con una clave coincidente, la SCU incluirá el modificador de estado en el estado del canal, lo que hará que el canal omita la TIC en sentido contrario a las agujas del reloj; por lo tanto, el programa del canal no se ramificará y el canal ejecutará el comando READ.

Mejoras en el canal del multiplexor de bloques

El canal multiplexor de bloques se introdujo a principios de 1971 en algunos sistemas System/360 de alta gama junto con la unidad de control 2835 y el DASD 2305 asociado, [19] Este canal era entonces estándar en IBM System/370 y mainframes posteriores; en contraste con el canal Selector anterior, ofrecía mejoras de rendimiento para dispositivos de alta velocidad como DASD, incluyendo:

Solicitud múltiple

Se permitió que varios programas de canal [j] estuvieran activos simultáneamente en la instalación [19] en lugar de solo uno con un canal selector. La cantidad real de subcanales proporcionados depende del modelo del sistema y su configuración. [20] A veces se describe como encadenamiento de comandos desconectado; la unidad de control podría desconectarse en varios momentos durante un conjunto encadenado de CCW, por ejemplo, la desconexión para un CCW de búsqueda, liberando el canal para otro subcanal.

Comando Reintentar

El control de canal y almacenamiento bajo ciertas condiciones pueden interoperar para provocar que se vuelva a intentar una CCW sin una interrupción de E/S. [19] Este procedimiento es iniciado por el control de almacenamiento y se utiliza para recuperarse de errores corregibles.

Detección de posición rotacional

La detección de posición rotacional (RPS) se implementó con dos nuevas CCW, SET SECTOR y READ SECTOR, lo que permitió que el canal retrasara el encadenamiento de comandos hasta que el disco girara a una posición de pista angular específica. RPS permite la desconexión del canal durante la mayor parte del período de retardo rotacional y, por lo tanto, contribuye a una mayor utilización del canal. La unidad de control implementa RPS dividiendo cada pista en segmentos angulares iguales. [19]

Ejemplo de programa de canal

El siguiente programa de canal de ejemplo formateará una pista con un R0 y tres registros CKD. [19]

 BUSCAR <número de cilindro/cabeza> ESTABLECER MÁSCARA DE ARCHIVO <permitir operaciones de escritura> ESTABLECER SECTOR <número de sector=0> ESCRIBIR R0 <cilindro/cabeza/R0, longitud de clave=0, longitud de datos=6> ESCRIBIR CKD <cilindro/cabezal/R1, longitud de clave, longitud de datos> ESCRIBIR CKD <cilindro/cabeza/R2, longitud de clave, longitud de datos> ESCRIBIR CKD <cilindro/cabeza/R3, longitud de clave, longitud de datos> 

En este ejemplo, el registro 0 cumple con los estándares de programación de IBM. Con un canal multiplexor de bloques, el canal está libre durante el tiempo que el DASD está buscando y nuevamente mientras el disco gira hasta el comienzo de la pista. Un canal selector estaría ocupado durante toda la duración de este programa de muestra.

Salto de defectos

La omisión de defectos permite escribir datos antes y después de uno o más defectos de superficie [k], lo que permite utilizar toda la pista, excepto la parte que tiene el defecto. Esto también elimina el tiempo que antes se necesitaba para buscar una pista alternativa. [21] Solo se podía omitir una cantidad limitada de defectos, por lo que las pistas alternativas seguían siendo compatibles para aquellas pistas con defectos en exceso.

La omisión de defectos se introdujo en 1974 con el 3340 conectado a través de la Unidad de control de almacenamiento 3830 Modelo 2 [21] o con accesorios integrados en sistemas pequeños. La omisión de defectos era esencialmente una característica exclusiva de la fábrica hasta 1981, cuando se lanzaron las CCW para la gestión junto con las utilidades asociadas. [22]

Rutas dinámicas

Esta función , que se introdujo por primera vez con el DASD 3380 en la unidad de control de almacenamiento 3880 [23] en 1981, se incluyó en los subsistemas DASD CKD posteriores. La función de selección de ruta dinámica controla el funcionamiento de los dos controladores, incluida la transferencia simultánea de datos a través de las dos rutas. Cuando el sistema operativo lo admite, cada controlador puede servir como ruta alternativa en caso de que el otro controlador no esté disponible. [24]

Se utilizan tres comandos adicionales, Establecer ID de grupo de rutas, Detectar ID de grupo de rutas y Suspender reconexión de rutas múltiples, para admitir la conexión de los modelos 3380 que tienen dos controladores al principio de una cadena. [23]

El comando Establecer ID de grupo de rutas, con la función de selección de ruta dinámica (DPS), proporciona una mayor flexibilidad en las operaciones en dispositivos reservados. Una vez que se ha establecido un grupo de rutas para un dispositivo, se puede acceder a él a través de cualquier ruta que sea miembro del grupo al que está reservado. Además, en los sistemas 370-XA que establecen el bit de modo de rutas múltiples en el byte de control de función (byte 0) en 1, las reconexiones de multiplexación de bloques se producirán en la primera ruta disponible que sea miembro del grupo sobre el que se inició el programa de canal (independientemente del estado de reserva del dispositivo). [23]

Si el controlador designado en la dirección de E/S está ocupado o deshabilitado, la selección de ruta dinámica permite establecer una ruta alternativa al dispositivo a través de otro director de almacenamiento y el otro controlador en el modelo AA. [24]

Operación no sincrónica

Antes de la introducción del director 3880 en 1981, los registros CKD se accedían de forma sincrónica y todas las actividades requerían que se finalizara un CCW y se iniciara el siguiente en los espacios entre los campos CKD. [13] El tamaño del espacio imponía limitaciones a la longitud del cable, pero proporcionaba un rendimiento muy alto, ya que el subsistema podía realizar cadenas complejas de CCW en tiempo real sin utilizar la memoria de la CPU ni los ciclos.

La operación no sincrónica proporcionada por el conjunto de CCW de CKD extendido ("ECKD") eliminó la restricción de tiempo de brecha. [13] Los cinco CCW de ECKD adicionales son Definir extensión, Localizar registro, Escribir datos de actualización, Escribir clave y datos de actualización y Escribir siguiente pista de CKD. [23]

En el funcionamiento no sincrónico, la transferencia de datos entre el canal y el control de almacenamiento no está sincronizada con la transferencia de datos entre el control de almacenamiento y el dispositivo. Los programas de canal se pueden ejecutar de manera que las actividades de control de canal y almacenamiento requeridas para finalizar la ejecución de un comando y avanzar al siguiente no tengan que ocurrir durante el espacio entre registros entre dos campos adyacentes. Un búfer intermedio en el control de almacenamiento permite operaciones independientes entre el canal y el dispositivo. Una ventaja importante de los ECKD es que los cables son mucho más largos; dependiendo de la aplicación, esto puede mejorar el rendimiento. [13]

Los CCW ECKD son compatibles con todos los subsistemas CKD posteriores.

Este programa de canal no sincrónico de ejemplo lee los registros R1 y R2 de la pista X'0E' en el cilindro X'007F'. Ambos registros tienen una longitud de clave de 8 y una longitud de datos de X'64' (100 10 ) bytes. [23]

 Definir extensión <extent= X'007F 0000' hasta la pista X'0081 000E'> Localizar registro <cilindro = X'007F', cabezal = X'000E' Leer clave y datos <registro clave = X'001038'> Leer datos <record = X'001108'>

Almacenamiento en caché

El almacenamiento en caché introducido por primera vez en los subsistemas DASD CKD por Memorex [25] (1978) y StorageTek [l] (1981) fue introducido posteriormente a fines de 1981 por IBM en el modelo 3880 13 para los modelos del 3380 con rutas dinámicas. [m]

La caché se gestiona de forma dinámica mediante un algoritmo; a los datos de alta actividad se accede desde la caché de alto rendimiento y a los de baja actividad desde el almacenamiento DASD, que es menos costoso. Una gran memoria en el Director, la caché, se divide en ranuras de pista que almacenan datos de las 3380 pistas. Un área más pequeña es un directorio que contiene entradas que permiten ubicar los datos en la caché. [26]

También se proporcionaron cachés en los controles de almacenamiento introducidos posteriormente.

Otras extensiones

Con el tiempo, se implementaron varios CCW de control de ruta, diagnóstico y/o recuperación de errores en uno o más controles de almacenamiento. Por ejemplo:

Más allá del sistema/370

Los precios reducidos de CPU y memoria y las velocidades mayores de dispositivos e interfaces han anulado en cierta medida las ventajas de CKD, y IBM continúa brindándole soporte hasta la fecha porque su sistema operativo insignia z/OS continúa utilizando CCW de CKD para muchas funciones.

Originalmente, los registros CKD tenían una correspondencia uno a uno con una pista física de un dispositivo DASD; sin embargo, con el tiempo, los registros se han vuelto cada vez más virtualizados, de modo que en un mainframe IBM moderno ya no existe una correspondencia directa entre el ID de un registro CKD y un diseño físico de una pista. Un mainframe IBM construye imágenes de pista CKD en la memoria y ejecuta los programas de canal ECKD y CKD contra la imagen. Para hacer de puente entre los discos nativos de tamaño de bloque fijo y el formato de registro ECKD/CKD de longitud variable, las imágenes de pista CKD en la memoria se asignan a una serie de bloques fijos adecuados para la transferencia hacia y desde un subsistema de disco FBA. [27]

De los 83 CCW CKD implementados para los canales System/360 y System/370, 56 están emuladas en sistemas System/390 y posteriores. [27]

Véase también

Notas

  1. ^ Lo más común es una unidad de disco duro.
  2. ^ La longitud de los datos es 0, lo que indica EOF
  3. ^ Debido a que los registros tienen una longitud variable y que el número de registro en la pista no necesita ser único, el número de registro no corresponde a un desplazamiento angular.
  4. ^ En algunos DASD tempranos, la etiqueta estaba en un enchufe que permitía mover la dirección entre DASD
  5. ^ Es la combinación de una SCU y uno o más DASD o una Unidad A con cualquier Unidad B adjunta.
  6. ^ Una combinación única de cantidad de pistas y longitud máxima de pista. Con esta definición, un DASD de doble densidad se considera un DASD único.
  7. ^ doble densidad 2314, triple densidad 3330, doble densidad 3350 y disco de estado sólido
  8. ^ Escribe técnicamente
  9. ^ El 2302 reemplazó al 7230. Datamation, marzo de 1966, pág. 81
  10. ^ En el caso del 2305, hasta 8 programas de canal para la misma unidad de disco y 16 en la misma SCU
  11. ^ La cantidad de defectos que se pueden omitir varía según el modelo DASD
  12. ^ STK 8890 CyberCache para compatibles con STK 3350
  13. ^ Simultáneamente se anunció el 3880-11 que utiliza su caché en un modo de paginación 3350 como dispositivos de paginación

Referencias

  1. ^ Introducción al control de almacenamiento IBM 3990 – 6.ª edición . IBM. Febrero de 1994. GA32-0098-05.
  2. ^ "Contar datos clave". IBM Knowledge Center . IBM . Consultado el 6 de agosto de 2014 .
  3. ^ abc IBM Corporation (septiembre de 1969). Descripción de componentes de IBM System/360 2314 Direct Access Storage Facility y 2844 Auxiliary Storage Control (PDF) . Archivado desde el original (PDF) el 30 de marzo de 2020 . Consultado el 5 de diciembre de 2019 .
  4. ^ IBM Corporation (noviembre de 1973). Almacenamiento en disco de la serie 3330 Modelos 3333 1 y 11 Resumen de referencia de los modelos 3330 1, 2 y 11 (PDF) . Consultado el 5 de diciembre de 2019 .
  5. ^ Houtekamer, Gilbert E.; Artis, H. Pat (1993). Subsistemas de E/S MVS: gestión de configuración y análisis de rendimiento . Nueva York: McGraw-Hill. ISBN 978-0-07-002553-0.OCLC 26096983  .
  6. ^ abc "Operaciones DASD sincrónicas". Introducción a los subsistemas de almacenamiento de acceso directo no sincrónicos . International Business Machines Corporation. Enero de 1990. GC46–4519–0.
  7. ^ "Narrativa histórica de los años 1970, Estados Unidos contra IBM, Anexo 14971". Julio de 1980. pág. 1051.
  8. ^ "Almacenamiento de acceso directo * 22,7 GB, 12 actuadores". Archivado desde el original el 22 de diciembre de 2015.
  9. ^ Principios de funcionamiento del IBM System/360 (PDF) . IBM. Operaciones de entrada/salida. GA22-6821-7.
  10. ^ Principios de funcionamiento del IBM System/370 (PDF) . IBM. Operaciones de entrada/salida. GA22-7000-0.
  11. ^ "Capítulo 13. Descripción general de E/S". IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) . IBM. SA22-7000-0.
  12. ^ abcdefg IBM System/360 Component Descriptions - 2841 and Associated DASD (PDF) . Octava edición. IBM. Diciembre de 1969. GA26-5988-7. Archivado (PDF) desde el original el 2011-10-14 . Consultado el 2015-12-07 .
  13. ^ abcd Introducción a los subsistemas de almacenamiento de acceso directo no sincrónico . IBM. Enero de 1990. GC26-4519-0.
  14. ^ J. Buzen (junio de 1975). "Arquitectura del subsistema de E/S". Actas del IEEE . 63 (6): 871. doi :10.1109/PROC.1975.9852. S2CID  68000.
  15. ^ Derivado de la tarjeta de datos de referencia (verde) del IBM System/360, GX20-1703-9
  16. ^ ab IBM System/360 Component Descriptions-2820 Storage Control And 2301 Drum Storage (PDF) . Archivado (PDF) desde el original el 2016-03-04 . Consultado el 2015-08-28 .
  17. ^ Descripciones de componentes de IBM System/360 - 2841 y DASD asociado (PDF) . Primera edición. IBM. A26-5988-0.
  18. ^ ab IBM System/360 Component Descriptions 2314 Direct Access Storage Facility y 2844 Auxiliary Storage Control (PDF) (séptima edición), noviembre de 1971, GA26-3599-6
  19. ^ abcde Manual de referencia para IBM 2835 Storage Control y IBM 2305 Fixed Head Storage Module (PDF) . Octubre de 1983. GA26-1589-5. Archivado (PDF) desde el original el 2016-03-04 . Consultado el 2015-12-21 .
  20. ^ J. Kettner (noviembre de 2007). "Input/Output - A White Paper" (PDF) . IBM. Archivado desde el original (PDF) el 4 de marzo de 2016.
  21. ^ ab Manual de referencia para el modelo 3830 1. Marzo de 1974.
  22. ^ "Funciones de soporte de dispositivos, guía del usuario y referencia. Versión 4.0" (PDF) . Mayo de 1981. págs. vi, 46, 61, 87.
  23. ^ abcde Manual de descripción de los modelos de control de almacenamiento 1, 2, 3 y 4 del IBM 3880. IBM. Septiembre de 1987. Sección 4. GA26-1661-9.
  24. ^ ab IBM 3380 Direct Access Storage Descripción y guía del usuario (PDF) . IBM. Diciembre de 1981. GA26-1664-1.
  25. ^ "Ahora Memorex llena el vacío en el rendimiento de su sistema" (PDF) . Datamation . Agosto de 1978. Págs. 85-86.
  26. ^ Introducción al modelo de control de almacenamiento IBM 3880 13 (PDF) . IBM. Septiembre de 1981. GA32-0062-0.
  27. ^ ab IBM S/390 Multiprise 3000 Enterprise Server, Internal Disk Subsystem: Reference Guide. IBM. Noviembre de 1999. Archivado desde el original el 4 de marzo de 2016.

Lectura adicional