Innovaciones técnicas en arquitectura informática

La arquitectura del ordenador se basa en la teoría de la máquina de Turing y pertenece a la arquitectura de von Neumann. En esencia, la teoría de la máquina de Turing y la arquitectura de von Neumann son series unidimensionales, mientras que los procesadores de múltiples núcleos son estructuras paralelas discretas distribuidas, y es necesario resolver el problema de la falta de coincidencia entre los dos.

En primer lugar, está el problema de correspondencia entre el modelo de máquina de Turing en serie y la implementación físicamente distribuida de procesadores multinúcleo. El modelo de máquina de Turing implica un modelo de programación en serie. Es difícil para los programas en serie obtener aceleración del rendimiento utilizando múltiples núcleos de procesador distribuidos físicamente. Al mismo tiempo, el modelo de programación paralela no ha sido bien promovido y solo se limita a campos limitados como la informática científica. Mecanismo para lograr la coincidencia entre el modelo de máquina de Turing en serie y los procesadores multinúcleo distribuidos físicamente o para reducir la brecha entre los dos, resolviendo el problema de la "dificultad en la programación de programas en paralelo y la pequeña aceleración de los programas en serie".

En términos de soporte de aplicaciones paralelas multiproceso, los futuros procesadores multinúcleo deberían considerar las dos direcciones siguientes. El primero es introducir nuevos modelos de programación que puedan expresar mejor el paralelismo. Debido a que el nuevo modelo de programación permite a los programadores expresar explícitamente el paralelismo del programa, el rendimiento se puede mejorar enormemente. Por ejemplo, el procesador Cell proporciona diferentes modelos de programación para admitir diferentes aplicaciones. La dificultad radica en cómo promover eficazmente este modelo de programación y cómo resolver los problemas de compatibilidad. El segundo tipo de dirección es proporcionar un mejor soporte de hardware para reducir la complejidad de la programación paralela. Los programas paralelos a menudo necesitan utilizar mecanismos de bloqueo para implementar operaciones de sincronización y exclusión mutua en recursos críticos. Los programadores deben determinar cuidadosamente la ubicación del bloqueo, porque las estrategias de bloqueo conservadoras limitan el rendimiento del programa, mientras que las estrategias de bloqueo precisas aumentan en gran medida la complejidad de la programación. . complejidad. Algunos estudios han explorado eficazmente este aspecto. Por ejemplo, el mecanismo SpeculativeLockElision permite ignorar las operaciones de bloqueo ejecutadas por el programa sin conflictos, lo que reduce la complejidad de la programación y tiene en cuenta el rendimiento de la ejecución paralela del programa. Este mecanismo permite a los programadores centrarse en la corrección del programa sin tener que preocuparse demasiado por el rendimiento de ejecución del programa. Más radicalmente, el mecanismo TransactionalCoherenceandConsistency (TCC) considera problemas de coherencia de datos en unidades de múltiples operaciones de acceso a memoria (Transacciones), simplificando aún más la complejidad de la programación paralela.

Los procesadores multinúcleo comerciales convencionales están dirigidos principalmente a aplicaciones paralelas. Cómo utilizar múltiples núcleos para acelerar programas en serie sigue siendo un tema que merece atención. La tecnología clave es utilizar software o hardware para derivar automáticamente códigos o subprocesos de programas en serie que se pueden ejecutar en paralelo en procesadores multinúcleo. Existen tres métodos principales para acelerar programas en serie en múltiples núcleos, incluidos compiladores paralelos, subprocesos múltiples especulativos y mecanismos de captación previa basados ​​​​en subprocesos. En la compilación paralela tradicional, el compilador debe dedicar mucho esfuerzo para garantizar que no haya dependencias de datos entre los subprocesos que se van a dividir. Hay una gran cantidad de dependencias ambiguas durante la compilación, especialmente cuando se permite el uso de punteros (como los programas C), y el compilador debe adoptar estrategias conservadoras para garantizar la correcta ejecución del programa. Esto limita en gran medida el grado de concurrencia que los programas en serie pueden explotar y también determina que los compiladores paralelos sólo se pueden utilizar en un rango estrecho. Para resolver estos problemas, se han propuesto mecanismos especulativos de captación previa basados ​​en subprocesos múltiples y basados ​​en subprocesos. Sin embargo, desde que se propuso este concepto hasta ahora, la mayor parte de la investigación en esta dirección se ha limitado al ámbito académico. Solo unos pocos procesadores comerciales han aplicado esta tecnología y solo se limita a campos de aplicación especiales. Creemos que la combinación de técnicas de optimización dinámica y subprocesos múltiples especulativos (incluidos mecanismos de captación previa basados ​​en subprocesos) es una posible tendencia de desarrollo futuro.

El problema de coincidencia entre el espacio de direcciones unidimensional de la arquitectura von Neumann y la jerarquía de acceso a la memoria multidimensional de los procesadores multinúcleo. Esencialmente, la arquitectura von Neumann utiliza un espacio de direcciones unidimensional. Los problemas de coherencia de los datos surgen debido a latencias desiguales en el acceso a los datos y a diferentes copias de los mismos datos en múltiples núcleos de procesador. La investigación en este campo se divide en dos categorías: un tipo de investigación introduce principalmente nuevos niveles de acceso a la memoria. El nuevo nivel de acceso a la memoria puede adoptar una implementación distribuida unidimensional. Un ejemplo típico es agregar una red de registro de direccionamiento unificado distribuido.

La característica de direccionamiento unificado global evita consideraciones de coherencia de los datos. Al mismo tiempo, en comparación con el acceso tradicional a la caché de gran capacidad, los registros pueden proporcionar velocidades de acceso más rápidas. Tanto TRIPS como RAW implementan redes de registro similares. Además, el nuevo nivel de acceso a la memoria también puede ser privado. Por ejemplo, cada procesador tiene su propio espacio de memoria de acceso privado. La ventaja es que el espacio de almacenamiento de datos está mejor dividido y no es necesario considerar problemas de coherencia de los datos al lavar datos privados locales. Por ejemplo, el procesador Cell establece un búfer de datos privado para cada núcleo SPE. Otro tipo de investigación implica principalmente el desarrollo de nuevos protocolos de coherencia de caché. La tendencia importante es relajar la relación entre corrección y desempeño. Por ejemplo, el protocolo de caché especulativo ejecuta especulativamente instrucciones relevantes antes de que se confirme la coherencia de los datos, lo que reduce el impacto de las operaciones de acceso a la memoria tardías en la canalización. Además, TokenCoherence y TCC también adoptan ideas similares. El problema de hacer coincidir la diversidad de programas con una única arquitectura. Las aplicaciones futuras demuestran diversidad. Por un lado, la evaluación de los procesadores no se limita al rendimiento, sino que también incluye otros indicadores como la fiabilidad y la seguridad. Por otro lado, incluso considerando sólo las mejoras de rendimiento, diferentes aplicaciones contienen diferentes niveles de paralelismo. La diversidad de aplicaciones impulsa a los futuros procesadores a tener arquitecturas flexibles y configurables. TRIPS ha realizado exploraciones fructíferas en esta área, por ejemplo, su núcleo de procesador y su sistema de memoria en chip tienen capacidades configurables, lo que permite a TRIPS extraer simultáneamente paralelismo a nivel de instrucción, paralelismo a nivel de datos y paralelismo a nivel de instrucción.

La aparición de nuevas estructuras de procesamiento como multinúcleo y Cell no es solo un evento histórico en la historia de la arquitectura de procesadores, sino también una subversión de los modelos informáticos tradicionales y de la arquitectura informática.

En 2005, se expusieron una serie de arquitecturas informáticas de gran alcance, que pueden sentar una base fundamental para la arquitectura informática en los próximos diez años, al menos proporcionando una guía simbólica para los procesadores e incluso para toda la arquitectura informática. Con el aumento de la densidad informática, los estándares y métodos de medición del rendimiento del procesador y la computadora están cambiando. Desde la perspectiva de las aplicaciones, el rendimiento móvil y sesgado ha encontrado el punto de combinación más satisfactorio y puede detonar una expansión dramática de los equipos. Aunque los dispositivos portátiles son relativamente populares ahora, desempeñan plenamente el papel que debería tener un dispositivo portátil en términos de potencia informática, escalabilidad y consumo de energía. Por otro lado, los servidores y computadoras de escritorio preocupados por el rendimiento están comenzando a considerar reducir el consumo de energía. con la tendencia de una sociedad orientada a la conservación.

La propia célula se adapta a este cambio, y también crea este cambio por sí misma. Por lo tanto, desde el principio se ha enfatizado en un estilo de diseño diferente. Además de poder ampliarse múltiples veces, la SPU (Unidad de Procesador Sinérgico) dentro del procesador tiene muy buena escalabilidad, por lo que puede enfrentar aplicaciones tanto generales como dedicadas. para lograr una reconstrucción flexible de los recursos de procesamiento. Esto significa que, mediante un control de software adecuado, Cell puede manejar muchos tipos de tareas de procesamiento y al mismo tiempo optimizar la complejidad del diseño.