Articulo de referencia

z/Arquitectura

z/Architecture , inicialmente y brevemente llamado ESA Modal Extensions ( ESAME ), es la arquitectura de conjunto de instrucciones de computadora de conjunto de instrucciones co...

z/Architecture , inicialmente y brevemente llamado ESA Modal Extensions ( ESAME ), es la arquitectura de conjunto de instrucciones de computadora de conjunto de instrucciones complejas (CISC) de 64 bits de IBM , implementada por sus computadoras mainframe . IBM presentó su primer sistema basado en z/Architecture, el z900 , a fines de 2000. [1] Los sistemas z/Architecture posteriores incluyen IBM z800, z990, z890, System z9 , System z10 , zEnterprise 196 , zEnterprise 114 , zEC12 , zBC12 , z13 , z14 , z15 y z16 .

z/Architecture mantiene la compatibilidad con versiones anteriores de la arquitectura ESA/390 de 32 bits de datos y direccionamiento de 31 bits y sus predecesores hasta el System/360 de 32 bits de datos y direccionamiento de 24 bits . El IBM z13 es el último servidor z Systems que admite la ejecución de un sistema operativo en modo de arquitectura ESA/390. [2] Sin embargo, todos los programas de aplicación de estado de problemas de 24 y 31 bits escritos originalmente para ejecutarse en la arquitectura ESA/390 no se verán afectados por este cambio.

Características

z/Architecture incluye casi todas [a] las características de ESA/390 y añade algunas nuevas. Entre las características [b] de z/Architecture se encuentran

Un subsistema de canal con la arquitectura introducida por S/370-XA
Instrucciones relativas a las ramas introducidas por la ESA/390
Direcciones trimodales (24/31/64 bits)
16 registros de acceso (AR) de 32 bits introducidos por ESA/370
16 registros generales (GR) de 64 bits
16 registros de control (CR) de 64 bits introducidos por System/370
16 registros de punto flotante (FPR) de 64 bits
32 registros vectoriales (VR) de 128 bits; los bits 0 a 63 de VR0-VR15 contienen FPR0-FPR15
1 registro de control de punto flotante (FPC) de 32 bits
1 registro de estado del procesador (PSW) de 128 bits, que incluye una dirección de instrucción de 64 bits
Un área de almacenamiento de prefijo (PSA) de 8 KiB
Instalación criptográfica
Instrucciones de punto flotante binario IEEE agregadas por ESA/390
Instrucciones de punto flotante decimal IEEE

Para obtener información sobre cuándo se introdujo cada característica, consulte Principios de funcionamiento. [3] [4]

Registros

Cada procesador tiene estos registros

  • Registros de acceso
  • Registro de dirección de evento de ruptura (BEAR)
  • Registros de control
  • Registro de control de punto flotante (FPC)
  • Registros de punto flotante
  • Registros generales
  • Registro de prefijo
  • Palabra de estado del programa (PSW)
  • Registros vectoriales

Registros de acceso

Cada CPU tiene 16 registros de acceso de 32 bits. [5] [11] Cuando un programa que se ejecuta en modo AR especifica el registro 1-15 como un registro base o como un operando de registro que contiene una dirección, la CPU utiliza el registro de acceso asociado durante la traducción de la dirección.

Registro de dirección de evento de ruptura (BEAR)

El BEAR{sfn|z|loc=Breaking-Event-Address Register|p=4-46}} [12] de 64 bits contiene la dirección de la última instrucción que interrumpió la ejecución secuencial de instrucciones; una interrupción almacena el BEAR en la palabra doble en la dirección real 272 (110 16 ). Después de un Execute de una bifurcación, el BEAR contiene la dirección de la ejecución, no la de la bifurcación.

Registros de control

Los 16 registros de control de 64 bits proporcionan control sobre la CPU y su estado, excepto la información incluida en el PSW. Son una mejora evolutiva de los registros de control del ESA/390 anterior en los procesadores IBM S/390 . Para obtener detalles sobre qué campos dependen de características específicas, consulte los Principios de funcionamiento. [13] Debido a que z/Architecture amplía los registros de control de 32 bits a 64, la numeración de bits difiere de la de ESA/390.

Registro de control de punto flotante (FPC)

El registro FPC contiene máscaras de interrupción (IM), indicadores de estado (SF), código de excepción de datos (DXC), modo de redondeo decimal (DRM) y modo de redondeo binario (BRM). Una interrupción solo almacena el DXC si el bit de control del registro AFP (registro de punto flotante adicional) del registro FPC, el bit 13 del registro de control 0, es uno. Además, aunque los bits individuales del DXC suelen tener importancia, los programas normalmente deberían tratarlo como un entero de 8 bits en lugar de consultar bits individuales.

Registros de punto flotante

Cada CPU tenía 16 registros de punto flotante de 64 bits; FP0-15 ocupan los bits 0-63 de VR0-15.

Registros generales

Cada CPU tiene 16 registros generales de 64 bits, que sirven como acumuladores , registros base [c] y registros de índice . [c] Las instrucciones designadas como Grandé operan en los 64 bits; algunas instrucciones agregadas por la función Extended-Immediate operan en cualquier media palabra o palabra en el registro; la mayoría de las otras instrucciones no cambian ni usan los bits 0-31.

Registro de prefijo

El registro de prefijo se utiliza para traducir una dirección real a una dirección absoluta. En el modo z/Architecture, el PSA tiene 2 páginas (8 KiB). Los bits 0 a 32 y 51 a 63 siempre son cero. Si los bits 0 a 50 de una dirección real son cero, se reemplazan por los bits 0 a 50 del registro de prefijo; si los bits 0 a 50 de la dirección real son iguales a los bits 0 a 50 del registro de prefijo, se reemplazan por ceros.

Palabra de estado del programa (PSW)

El PSW contiene la dirección de instrucción y otros campos que reflejan el estado del programa que se está ejecutando actualmente en una CPU. El estado del programa también se ve afectado por el contenido de los registros de control.

Registros vectoriales

Cada CPU tiene 32 registros vectoriales de 128 bits.{{sfn|z|loc=Registros vectoriales|pp=2-5–2-6 bits 0-63 de VR0-15 también son FPR0-15. Un registro vectorial puede contener 16 campos de 8 bits, 8 campos de 16 bits, 4 campos de 32 bits, 2 campos de 64 bits o 1 campo de 128 bits.

Memoria

IBM clasifica la memoria en z/Architecture en almacenamiento principal y almacenamiento expandido .

El almacenamiento principal se direcciona en bytes de 8 bits ( octetos ), con agrupaciones alineadas [d] más grandes :

Media palabra
Dos bytes
16 bits
Palabra
Cuatro bytes
32 bits
Doble palabra
8 bytes
64 bits
Palabra cuádruple
16 bytes
128 bits
Página
4096 bytes

Aunque z/Architecture permite direcciones reales y virtuales de 0 a 2 64 -1, las restricciones de ingeniería limitan los modelos actuales y planificados a mucho menos.

El almacenamiento expandido se aborda en bloques de 4 KiB, con números de bloque que varían de 0 a 232 .

Direccionamiento

Tipos de direcciones de almacenamiento principal

Hay tres tipos de direcciones de almacenamiento principales en z/Architecture

Dirección virtual
La dirección tal como la ven los programas de aplicación. Es un desplazamiento hacia un espacio de direcciones y está sujeta a traducción de direcciones mediante tablas de páginas y segmentos.
Dirección real
La dirección después de la traducción de la dirección, o la dirección que ve un componente del sistema operativo que se ejecuta con la traducción desactivada. Está sujeta a prefijos.
Dirección absoluta
La dirección después de prefijar referencias a las dos primeras páginas [e] a través del registro de prefijo.

Codificación de direcciones

z/Architecture utiliza el mismo direccionamiento truncado que ESA, con algunos formatos de instrucciones adicionales. Al igual que con ESA, en el modo AR cada registro base distinto de cero está asociado con un registro base que especifica el espacio de direcciones. Según la instrucción, una dirección puede proporcionarse en varios formatos diferentes.

R
La dirección figura en un registro general
Relativo
Un desplazamiento de media palabra con signo de 16 bits desde la instrucción actual.
Relativo largo
Un desplazamiento de media palabra con signo de 32 bits desde la instrucción actual.
R.R.
Un registro base y un desplazamiento de 12 bits
Recepción
Un registro base, un registro de índice y un desplazamiento de 12 bits.
Y
Un registro base, un registro de índice y un desplazamiento de 20 bits; conocido coloquialmente como "Yonder".

Modos de direccionamiento

Además de los dos modos de direccionamiento admitidos por S/370-XA y ESA , a/Architecture tiene un modo de direccionamiento extendido con direcciones virtuales de 64 bits. El modo de direccionamiento está controlado por los bits EA (bit 31) y BA (bit 32) en el PSW. Las combinaciones válidas son

  • 00 Direccionamiento de 24 bits
  • 01 Direccionamiento de 31 bits
  • 11 direccionamiento de 64 bits

Modos de traducción

z/Architecture admite cuatro modos de traducción virtual , controlados por el bit 5 [14] , el bit de modo DAT, y los bits 16-17, los bits de control del espacio de direcciones (AS), del PSW.

Modo de espacio primario
Todas las referencias de almacenamiento utilizan las tablas de traducción para el espacio de dirección principal
Modo de registro de acceso
Todas las referencias de almacenamiento utilizan las tablas de traducción designadas por el registro de acceso asociado con el registro base.
Modo de espacio secundario
Todas las referencias de almacenamiento utilizan las tablas de traducción para el espacio de direcciones secundario
Modo espacio hogareño
Todas las referencias de almacenamiento utilizan las tablas de traducción para el espacio de direcciones de inicio.

Compatibilidad con sistemas operativos

Los sistemas operativos de IBM z/OS , z/VSE , z/TPF y z/VM son versiones de MVS , VSE , Transaction Processing Facility (TPF) y VM que admiten z/Architecture. Las versiones anteriores de z/OS, z/VSE y z/VM continuaron admitiendo sistemas de 32 bits; z/OS versión 1.6 y posteriores, z/VSE versión 4 y posteriores, y z/VM versión 5 y posteriores requieren z/Architecture.

Linux también admite z/Architecture con Linux en IBM Z.

z/Architecture permite ejecutar varios sistemas operativos y aplicaciones simultáneamente, incluso si utilizan distintos tamaños de dirección. Esto permite a los desarrolladores de software elegir el tamaño de dirección que sea más ventajoso para sus aplicaciones y estructuras de datos.

El 7 de julio de 2009, IBM, al anunciar una nueva versión de uno de sus sistemas operativos, implícitamente declaró que el Architecture Level Set 4 ( ALS 4 ) existe y está implementado en el System z10 y máquinas posteriores. [15] [16] El ALS 4 también se especifica en LOADxx como ARCHLVL 3 , mientras que los anteriores z900, z800, z990, z890, System z9 especificaron ARCHLVL 2. Los anuncios anteriores de System z10 simplemente especificaron que implementa z/Architecture con algunas adiciones: más de 50 nuevas instrucciones de máquina, marcos de página de 1 MB y unidad de punto flotante decimal de hardware (HDFU). [17] [18]

La mayoría de los sistemas operativos [ cita requerida ] para z/Architecture, incluido z/OS , generalmente restringen la ejecución de código a los primeros 2 GB (31 bits de dirección o 231 bytes direccionables) de cada espacio de dirección virtual por razones de eficiencia y compatibilidad, más que por límites arquitectónicos. Linux en IBM Z permite que el código se ejecute dentro de rangos de direcciones de 64 bits.

Sistema operativo z

Cada espacio de direcciones z/OS , llamado espacio de direcciones de 64 bits, tiene un tamaño de 16 exabytes .

Espacios de código (o mixtos)

La implementación de z/OS del lenguaje de programación Java es una excepción. La implementación de memoria virtual de z/OS admite múltiples espacios de direcciones de 2 GB, lo que permite que haya más de 2 GB de código de programa residente de manera simultánea.

Espacios solo para datos

Los espacios de solo datos son regiones de memoria en las que se puede leer y escribir, pero que no se pueden usar como código ejecutable. (Similar al bit NX en otros procesadores modernos). De manera predeterminada, el espacio de memoria de z/Architecture está indexado por punteros de 64 bits, lo que permite que un programa en ejecución pueda ver hasta 16 exabytes de memoria.

Espacios de datos e hiperespacios

Las aplicaciones que necesitan más de 16  exabytes de espacio de direcciones de datos pueden emplear técnicas de direccionamiento extendido , utilizando espacios de direcciones adicionales o espacios solo para datos. Los espacios solo para datos que están disponibles para los programas de usuario se denominan:

  • espacios de datos (a veces denominados "espacios de datos") [19] [20] y
  • Hiperespacios (Espacio de alto rendimiento). [21] [22]

Estos espacios son similares en el sentido de que ambos son áreas de almacenamiento virtual que un programa puede crear y pueden tener hasta 2  gigabytes . A diferencia de un espacio de direcciones, un espacio de datos o hiperespacio contiene solo datos de usuario; no contiene bloques de control del sistema ni áreas comunes. El código de programa no puede ejecutarse en un espacio de datos o un hiperespacio. [23]

Un espacio de datos se diferencia de un hiperespacio en que los espacios de datos son direccionables por bytes, mientras que los hiperespacios son direccionables por páginas.

Almacenamiento ampliado del mainframe de IBM

Tradicionalmente, la memoria de los mainframes de IBM ha sido direccionable por bytes . Este tipo de memoria se denomina "almacenamiento central". Los procesadores mainframe de IBM durante gran parte de los años 1980 y 1990 admitieron otro tipo de memoria: el almacenamiento expandido. Se introdujo por primera vez con la serie de mainframes de alta gama IBM 3090 en 1985. [24]

El almacenamiento expandido es direccionable en páginas de 4 KB. Cuando una aplicación desea acceder a los datos del almacenamiento expandido, primero debe moverlos al almacenamiento central. De manera similar, el movimiento de datos del almacenamiento central al almacenamiento expandido se realiza en múltiplos de páginas de 4 KB. Inicialmente, el movimiento de páginas se realizaba utilizando instrucciones relativamente costosas, mediante el código del subsistema de paginación.

La sobrecarga de mover páginas individuales y grupos de páginas entre el almacenamiento central y el expandido se redujo con la introducción de la instrucción MVPG (Mover página) y la capacidad ADMF (Instalación de transferencia de datos asíncrona).

La instrucción MVPG y ADMF se invocan explícitamente (generalmente mediante middleware en z/OS o z/VM (¿y ACP?)) para acceder a los datos en el almacenamiento expandido. Algunos usos son, a saber:

Hasta mediados de la década de 1990, el almacenamiento central y expandido eran áreas de memoria físicamente diferentes en el procesador. Desde mediados de la década de 1990, el almacenamiento central y expandido eran simplemente opciones de asignación para la memoria subyacente del procesador. Estas opciones se hacían en función de usos específicos esperados: por ejemplo, el almacenamiento expandido es necesario para la función Hiperbatch (que utiliza la instrucción MVPG para acceder a sus hiperespacios).

Además de los casos de hiperespacio y paginación mencionados anteriormente, existen otros usos del almacenamiento expandido, entre ellos:

  • Entrada/Salida virtual (VIO) al almacenamiento expandido, que almacenaba conjuntos de datos temporales en dispositivos simulados en el almacenamiento expandido. (Esta función ha sido reemplazada por VIO en el almacenamiento central).
  • Almacenamiento en caché de minidisco de VM.

z/OS eliminó la compatibilidad con el almacenamiento expandido. Toda la memoria en z/OS ahora es almacenamiento central. z/VM 6.4 cumple con la Declaración de dirección de eliminar la compatibilidad con todo uso del almacenamiento expandido.

MVPG y ADMF

Jugador de último año

IBM describió MVPG como "mueve una sola página y el procesador central no puede ejecutar ninguna otra instrucción hasta que se complete el movimiento de página". [25]

La instrucción de mainframe MVPG [26] ( M o V e P a G e, opcode X'B254') se ha comparado con la instrucción MVCL ( M o V e C haracter L ong), las cuales pueden mover más de 256 bytes dentro de la memoria principal utilizando una sola instrucción. Estas instrucciones no cumplen con las definiciones de atomicidad , aunque se pueden utilizar como una sola instrucción dentro de las restricciones documentadas de tiempo y no superposición. [27] : Nota 8, página 7–27  [28]

La necesidad de mover más de 256 bytes dentro de la memoria principal se había abordado históricamente con software [29] (bucles MVC), MVCL, [30] que se introdujo con el anuncio del System/370 en 1970 , y MVPG, patentado [31] y anunciado por IBM en 1989, cada uno con sus ventajas. [32]

ADMF

ADMF (Asynchronous Data Mover Facility), que se introdujo en 1992, va más allá de las capacidades de la instrucción MVPG (Move Page), que está limitada a una sola página, [33] y puede mover grupos de páginas entre el almacenamiento central y el expandido.

Una macroinstrucción denominada IOSADMF, que ha sido descrita como una API que evita el "uso directo de bajo nivel de ADMF", [34] se puede utilizar para leer [f] o escribir datos hacia o desde un hiperespacio. [35] Los hiperespacios se crean utilizando DSPSERV CREATE.

Para proporcionar reentrada , se utiliza IOSADMF junto con un "formulario de lista" y un "formulario de ejecución". [36]

Implementaciones que no son de IBM

Anteriormente, Platform Solutions Inc. (PSI) comercializaba servidores basados ​​en Itanium que eran compatibles con z/Architecture. IBM compró PSI en julio de 2008 y los sistemas PSI ya no están disponibles. [37] FLEX-ES, zPDT y el emulador Hercules también implementan z/Architecture. Los mainframes de Hitachi que ejecutan versiones más nuevas del sistema operativo VOS3 implementan ESA/390 más instrucciones de CPU exclusivas de Hitachi, incluidas algunas instrucciones de 64 bits. Si bien Hitachi colaboró ​​formalmente con IBM en las CPU z900-G2/z800 presentadas en 2002, las máquinas de Hitachi no son compatibles con z/Architecture.

Notas

  1. ^ Las funciones de vector ESA/390, asynchronous-pageout, asynchronous-data-mover y program-call-fast no están presentes en z/Architecture. La función de vector de z/Architecture ha sido reemplazada por una función de vector muy diferente.
  2. ^ Para obtener una lista completa, consulte el Capítulo 1. Introducción al principio de funcionamiento. [3] [4]
  3. ^ ab Excepto el registro general 0.
  4. ^ Algunas instrucciones permiten referencias a datos no alineados.
  5. ^ Referencias a la primera página en modo ESA, pero no está disponible en los modelos actuales.
  6. ^ ÁREA: transfiere datos desde un hiperespacio al espacio de direcciones principal del programa.

Referencias

el
Principios de funcionamiento de z/Architecture (PDF) (decimocuarta edición). IBM . Mayo de 2022. SA22-7832-13 . Consultado el 28 de junio de 2024 .
  1. ^ Desarrollo y atributos de z/Architecture Archivado el 12 de diciembre de 2013 en Wayback Machine , IBM Journal of Research and Development, 2002.
  2. ^ "Las funciones de adaptación para el servidor z13 se discontinuarán en servidores futuros". IBM . 25 de junio de 2015. Archivado desde el original el 15 de septiembre de 2017 . Consultado el 18 de septiembre de 2017 .
  3. ^ ab z, pp. 1-2–1-7, Aspectos destacados de la z/arquitectura original.
  4. ^ ab z, pp. 1-7–1-31, Adiciones a z/Arquitectura.
  5. ^ ab z, p. 5-50, Espacios de direcciones especificados por el registro de acceso.
  6. ^ z, p. 4-46, Registro de direcciones de eventos de ruptura.
  7. ^ z, pp. 4-9–4-11, Figura 4-5. Asignación de campos de registro de control.
  8. ^ z, págs. 3-22–3-23, Prefijos en el modo arquitectónico z/Architecture.
  9. ^ z, págs. 4-5–4-8, Formato de palabra de estado del programa.
  10. ^ z, p. 4-8, Formato PSW corto.
  11. ^ z, págs. 6-15–6-16, Registros de acceso.
  12. ^ z, p. 4-464-46, Registro de direcciones de eventos de ruptura.
  13. ^ z, págs. 4-9–4-12, Registros de control.
  14. ^ z, pp. 3-41, 3-42, Figura 3-15. Modos de traducción.
  15. ^ Vista previa: IBM z/VM V6.1: base para el crecimiento futuro de la virtualización Archivado el 28 de octubre de 2021 en Wayback Machine , Anuncio de software de IBM Estados Unidos 209-207, de fecha 7 de julio de 2009
  16. ^ ALS 1 era 9672 G2; ALS 2 era 9672 G5; ALS 3 era el z/Architecture original: "Tabla de procesadores CMOS de IBM". 18 de noviembre de 2008. Archivado desde el original el 10 de diciembre de 2013 . Consultado el 18 de octubre de 2012 .
  17. ^ "Guía de referencia de IBM System z10 Business Class (z10 BC)" (PDF) . IBM . 2008. Archivado (PDF) desde el original el 4 de marzo de 2011 . Consultado el 18 de octubre de 2012 .
  18. ^ "Principios de funcionamiento de z/Architecture" (PDF) . Archivado (PDF) desde el original el 2020-11-30 . Consultado el 2016-01-15 .
  19. ^ Hoskins, Jim; Frank, Bob (2002). Exploración de los servidores IBM Eserver Zseries y S/390. Maximum Press. pág. 26. ISBN 1885068913. Archivado del original el 27 de abril de 2021 . Consultado el 19 de octubre de 2017 . La arquitectura de VM Data Spaces es estándar en todos los procesadores System/390.
  20. ^ "CA defiende la política de VSE". InformationWeek . 21 de octubre de 1991. p. 15. Computer Associates International ahora proporciona tecnología de espacio de datos a los usuarios de VSE/ESA o System/370.
  21. ^ "Análisis de datos en memoria". IBM.
  22. ^ Hemanth Nandas (15 de octubre de 2007). "¿Qué es el hiperespacio? ¿Cuál fue el primer sistema operativo que admitió el hiperespacio?". Grupo de noticias : ibmmainframes.com. Archivado desde el original el 2 de febrero de 2017. Consultado el 25 de enero de 2017 .ESPACIO DE ALTO RENDIMIENTO o "Espacio de datos de alto rendimiento" (autor Anuj Dhawan, misma fecha)
  23. ^ "Hoja de referencia n.° 54 zTidBits z/OS Extended Addressing" (PDF) . Consultado el 17 de julio de 2022 .
  24. ^ Sakaki, M.; Samukawa, H.; Honjou, N. (1988). "Utilización eficaz del gran almacenamiento virtual IBM 3090 en los cálculos numéricamente intensivos de orbitales moleculares ab initio". IBM Systems Journal . 27 (4): 528–540. doi :10.1147/sj.274.0528. ISSN  0018-8670.
  25. ^ US 5442802  Método y medios de transferencia de datos de coprocesador asincrónico
  26. ^ "HLASM - MVPG = MoVe PaGe". Archivado desde el original el 6 de octubre de 2013. Consultado el 24 de enero de 2017 .
  27. ^ MOVE LONG, nota 8. «GA22-7000-10, IBM System/370, Principles of Operation» (PDF) . Archivado (PDF) desde el original el 2021-04-11 . Consultado el 2021-10-11 .
  28. ^ "Las cosas se hacen inmediatamente y no hay posibilidad de que la instrucción quede a medias o de que se intercale otra. Se utiliza especialmente para transmitir que una operación no se puede interrumpir". "Atómica de FOLDOC".
  29. ^ "$MVCL – Mover más de 256 bytes de almacenamiento". IBM . 20 de septiembre de 2014. Archivado desde el original el 2 de febrero de 2017 . Consultado el 24 de enero de 2017 .
  30. ^ "Move Long". Archivado desde el original el 27 de abril de 2017. Consultado el 24 de enero de 2017 .
  31. ^ US 5237668 Proceso que utiliza direccionamiento virtual en una instrucción no privilegiada para controlar la copia de una página de datos en o entre múltiples medios 
  32. ^ "¿MVPG es más rápido que MVCL para páginas alineadas?". IBM-MAIN (Lista de correo). Archivado desde el original el 22 de enero de 2011. Consultado el 24 de enero de 2017 .
  33. ^ La patente EP0549924A1 de IBM describe MVPG como "mueve una sola página".
  34. ^ Celestini, Art (20 de agosto de 1997). "admf". IBM-MAIN (lista de correo). Archivado desde el original el 22 de enero de 2011. Consultado el 24 de enero de 2017 a través de Google Groups.
  35. ^ Programación de MVS en z/OS: Guía de direccionabilidad extendida - SA23-1394-00
  36. ^ "IOSADMF — Transferir datos de hiperespacio". IBM . 7 de febrero de 2015. Archivado desde el original el 2 de febrero de 2017 . Consultado el 24 de enero de 2017 .
  37. ^ "IBM adquiere Platform Solutions" (Nota de prensa). IBM. 2 de julio de 2008. Archivado desde el original el 5 de septiembre de 2008. Consultado el 6 de septiembre de 2008 .

Lectura adicional

  • Presionando sobre programación: operaciones atómicas y no atómicas
  • Principios del diseño de computadoras: atomicidad
Obtenido de "https://es.wikipedia.org/w/index.php?title=Z/Arquitectura&oldid=1242253773#Almacenamiento_expandido_en_mainframe_IBM"