stringtranslate.com

Memoria de bloc de notas

La memoria scratchpad ( SPM ), también conocida como scratchpad , scratchpad RAM o local store en terminología informática , es una memoria interna, normalmente de alta velocidad, que se utiliza para el almacenamiento temporal de cálculos, datos y otros trabajos en curso. En referencia a un microprocesador (o CPU ), scratchpad se refiere a una memoria especial de alta velocidad que se utiliza para guardar pequeños elementos de datos para una rápida recuperación. Es similar al uso y tamaño de un scratchpad en la vida real: un bloc de papel para notas preliminares o bocetos o escritos, etc. Cuando el scratchpad es una parte oculta de la memoria principal, a veces se lo denomina almacenamiento de bump .

En algunos sistemas [a] se puede considerar similar a la caché L1 en que es la siguiente memoria más cercana a la ALU después de los registros del procesador , con instrucciones explícitas para mover datos hacia y desde la memoria principal , a menudo utilizando transferencia de datos basada en DMA . [1] A diferencia de un sistema que utiliza cachés, un sistema con scratchpads es un sistema con latencias de acceso a memoria no uniforme (NUMA), porque las latencias de acceso a la memoria a los diferentes scratchpads y a la memoria principal varían. Otra diferencia con un sistema que emplea cachés es que un scratchpad comúnmente no contiene una copia de los datos que también están almacenados en la memoria principal.

Los scratchpads se emplean para simplificar la lógica de almacenamiento en caché y para garantizar que una unidad pueda funcionar sin contención de la memoria principal en un sistema que emplea varios procesadores, especialmente en sistemas en chip multiprocesador para sistemas integrados . Son principalmente adecuados para almacenar resultados temporales (como se encontrarían en la pila de CPU) que normalmente no necesitarían estar siempre comprometidos con la memoria principal; sin embargo, cuando se alimentan mediante DMA , también se pueden usar en lugar de una caché para reflejar el estado de la memoria principal más lenta. Los mismos problemas de localidad de referencia se aplican en relación con la eficiencia de uso; aunque algunos sistemas permiten que el DMA con pasos acceda a conjuntos de datos rectangulares. Otra diferencia es que los scratchpads son manipulados explícitamente por las aplicaciones. Pueden ser útiles para aplicaciones en tiempo real , donde la temporización predecible se ve obstaculizada por el comportamiento de la caché.

Los scratchpads no se utilizan en los procesadores de escritorio convencionales, donde se requiere generalidad para que el software heredado se ejecute de generación en generación, en los que el tamaño de la memoria en chip disponible puede cambiar. Se implementan mejor en sistemas integrados, procesadores de propósito especial y consolas de juegos , donde los chips a menudo se fabrican como MPSoC y donde el software a menudo se ajusta a una configuración de hardware.

Ejemplos de uso

Alternativas

Control de caché vs. blocs de notas

Algunas arquitecturas, como PowerPC, intentan evitar la necesidad de bloquear líneas de caché o blocs de notas mediante el uso de instrucciones de control de caché . Al marcar un área de memoria con "Data Cache Block: Zero" (asignando una línea pero poniendo su contenido a cero en lugar de cargarlo desde la memoria principal) y descartarlo después de su uso ("Data Cache Block: Invalidate", que indica que la memoria principal no recibió ningún dato actualizado), se logra que la caché se comporte como un bloc de notas. Se mantiene la generalidad en el sentido de que se trata de sugerencias y el hardware subyacente funcionará correctamente independientemente del tamaño real de la caché.

Tiendas locales de L2 compartidas vs. Cell

En cuanto a la comunicación entre procesadores en una configuración multinúcleo, existen similitudes entre el DMA entre almacenes locales de Cell y una configuración de caché L2 compartida como en el Intel Core 2 Duo o el powerPC personalizado de Xbox 360: la caché L2 permite a los procesadores compartir resultados sin que estos tengan que ser almacenados en la memoria principal. Esto puede ser una ventaja cuando el conjunto de trabajo para un algoritmo abarca la totalidad de la caché L2. Sin embargo, cuando se escribe un programa para aprovechar el DMA entre almacenes locales, Cell tiene el beneficio de que cada uno de los almacenes locales sirve tanto para el espacio de trabajo privado para un solo procesador como para el punto de compartir entre procesadores; es decir, los otros almacenes locales están en una situación similar, vistos desde un procesador, que la caché L2 compartida en un chip convencional. La desventaja es que se desperdicia memoria en el almacenamiento en búfer y la complejidad de programación para la sincronización, aunque esto sería similar a las páginas almacenadas previamente en caché en un chip convencional. Los dominios en los que el uso de esta capacidad es eficaz incluyen:

Sería posible que un procesador convencional obtuviera ventajas similares con instrucciones de control de caché, por ejemplo, permitiendo la obtención previa de datos en L1 sin pasar por L2, o una indicación de desalojo que señalara una transferencia de L1 a L2 pero sin comprometerse con la memoria principal; sin embargo, en la actualidad ningún sistema ofrece esta capacidad en una forma utilizable y tales instrucciones en efecto deberían reflejar una transferencia explícita de datos entre las áreas de caché utilizadas por cada núcleo.

Véase también

Notas

  1. ^ Algunos sistemas más antiguos utilizaban una parte oculta del almacenamiento principal, denominada almacenamiento de memoria intermedia, como scratchpad. En otros sistemas, por ejemplo, UNIVAC 1107 , todos los registros direccionables se guardaban en scratchpad.

Referencias

  1. ^ Steinke, Stefan; Lars Wehmeyer; Bo-Sik Lee; Peter Marwedel (2002). "Asignación de objetos de programa y datos a Scratchpad para reducción de energía" (PDF) . Universidad de Dortmund . Consultado el 3 de octubre de 2013 .:"3.2 Modelo de bloc de notas... La memoria del bloc de notas utiliza software para controlar la asignación de ubicación de los datos".
  2. ^ "Arquitectura interna de la TI-99/4A". www.unige.ch . Consultado el 8 de marzo de 2023 .
  3. ^ J. Lu, K. Bai, A. Shrivastava, "SSDM: gestión de datos de pila inteligente para núcleos múltiples administrados por software (SMM)", Design Automation Conference (DAC) , 2 al 6 de junio de 2013
  4. ^ K. Bai, A. Shrivastava, "Gestión automática y eficiente de datos de montón para arquitecturas multinúcleo con memoria local limitada", Design Automation and Test in Europe (DATE) , 2013
  5. ^ K. Bai, J. Lu, A. Shrivastava, B. Holton, "CMSM: una gestión de código eficaz y eficiente para núcleos múltiples gestionados por software", CODES+ISSS , 2013
  6. ^ Patterson, David (30 de septiembre de 2009). "Las 10 principales innovaciones en la nueva arquitectura NVIDIA Fermi y los 3 principales desafíos siguientes" (PDF) . Laboratorio de investigación en computación paralela y NVIDIA . Consultado el 3 de octubre de 2013 .
  7. ^ Jia, Zhe; Tillman, Blake; Maggioni, Marco; Scarpazza, Daniele P. (7 de diciembre de 2019). Análisis de la arquitectura de la IPU de Graphcore mediante microbenchmarking (PDF) (informe técnico). Citadel Enterprise Americas, LLC. arXiv : 1912.03413 .

Enlaces externos