primer niveles nivel memorias memoria las informatica hay cuantos capacidad caché cache multithreading x86 x86-64 smt hyperthreading

multithreading - memorias - cuantos niveles de memoria cache hay



Con Hyper Threading, los hilos de un núcleo físico se intercambian a través del nivel de caché L1/L2/L3? (1)

El manual de optimización de software de arquitectura Intel tiene una breve descripción de cómo se comparten los recursos de procesador entre subprocesos HT en un núcleo en el capítulo 2.3.9. Documentado para la arquitectura de Nehalem, que se ha quedado obsoleto pero es probable que siga siendo relevante para los actuales, ya que la creación de particiones es lógicamente consistente:

  • Duplicado para cada hilo HT: los registros, el buffer de la pila de retorno, el ITLB de página grande

  • Asignado estáticamente para cada subproceso HT: los búferes de carga, almacenamiento y reordenación, el ITLB de página pequeña

  • Compartido de forma competitiva entre los hilos HT: la estación de reservas, las memorias caché, los buffers de relleno, DTLB0 y STLB.

Tu pregunta coincide con la tercera viñeta. En el caso muy específico de cada subproceso HT que ejecuta código del mismo proceso, un poco de un accidente, generalmente se puede esperar que L1 y L2 contengan datos recuperados por un hilo HT que pueden ser útiles para el otro. Tenga en cuenta que la unidad de almacenamiento en las memorias caché es una línea de caché, 64 bytes. Por las dudas: esta no es una buena razón para seguir un enfoque de programación de subprocesos que favorezca la ejecución de dos subprocesos HT en el mismo núcleo, suponiendo que su SO lo admita. Un hilo HT generalmente se ejecuta bastante más lento que un hilo que obtiene el núcleo para sí mismo. El 30% es el número habitual de YMMV.

¿Hyper Threading permite el uso de L1-cache para intercambiar los datos entre los dos hilos, que se ejecutan simultáneamente en un único núcleo físico, pero en dos núcleos virtuales?

Con la condición de que ambos pertenecen al mismo proceso, es decir, en el mismo espacio de direcciones.

Página 85 (2-55) - Manual de referencia de optimización de arquitecturas Intel® 64 e IA-32 : http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia- 32-architectures-optimization-manual.pdf

2.5.9 Soporte de tecnología Hyper-Threading en Intel® Microarchitecture Code Name Nehalem

...

Un almacenamiento en búfer más profundo y mejores políticas de compartición de recursos compartidos:

  • Recursos replicados para el funcionamiento de HT: estado de registro, búfer de pila de retorno renombrado, ITLB de página grande.

  • Recursos particionados para el funcionamiento de HT : carga de búfers, búferes de tienda , reordena búferes, ITLB de páginas pequeñas se asignan estáticamente entre dos procesadores lógicos.

  • Recurso compartido de forma competitiva durante la operación HT: la estación de reserva, la jerarquía de caché, los búferes de relleno, tanto DTLB0 como STLB.

  • Alternando durante el funcionamiento de HT: la operación del front end generalmente alterna entre dos procesadores lógicos para garantizar la equidad.

  • HT no conoce recursos: unidades de ejecución.