¿Qué significa el conjunto de instrucciones?
La CPU se basa en instrucciones para calcular y controlar el sistema. Cada CPU está diseñada con una serie de sistemas de instrucciones que coinciden con su circuito de hardware. La solidez de las instrucciones también es un indicador importante de la CPU. El conjunto de instrucciones es una de las herramientas más eficaces para mejorar la eficiencia de los microprocesadores. Desde la arquitectura convencional actual, el conjunto de instrucciones se puede dividir en conjunto de instrucciones complejo y conjunto de instrucciones simplificado. Desde la perspectiva de aplicaciones específicas, como MMX (Multi Media Extended) de Intel, SSE, SSE2 (Streaming-Instrucción única de datos múltiples-Extensiones). 2) y 3DNow! de AMD son conjuntos de instrucciones extendidos de la CPU, que mejoran respectivamente las capacidades de procesamiento multimedia, de gráficos e Internet de la CPU. Normalmente nos referimos al conjunto de instrucciones ampliado de la CPU como "conjunto de instrucciones de la CPU".
1. El uso de conjuntos de instrucciones reducidos
En las décadas transcurridas desde que se inventaron las computadoras, a medida que las funciones de las computadoras se han vuelto cada vez más grandes y su rendimiento se ha vuelto más fuerte, los componentes internos también se han vuelto más grandes. Cuanto más sofisticadas sean las instrucciones, más complejo será el conjunto de instrucciones. Las instrucciones demasiado complejas afectan gravemente la eficiencia del trabajo de la computadora. Posteriormente, una investigación encontró que en las computadoras, el 80% de los programas solo usan el 20% del conjunto de instrucciones. A partir de este descubrimiento se propuso el conjunto de instrucciones reducido RISC, que supuso una profunda revolución en la arquitectura de los sistemas informáticos. La idea básica de la arquitectura RISC es aprovechar las deficiencias del sistema de instrucción CISC: demasiados tipos de instrucciones, formatos de instrucción no estándar y demasiados métodos de direccionamiento. Al reducir los tipos de instrucciones, estandarizar el formato de las instrucciones. y simplificando los métodos de direccionamiento, es conveniente para el procesamiento interno del procesador. El procesamiento paralelo mejora la eficiencia de los dispositivos VLSI, mejorando así en gran medida el rendimiento del procesador.
El conjunto de instrucciones RISC tiene muchas características, las más importantes son:
Pocos tipos de instrucciones y formatos de instrucción estandarizados: Los conjuntos de instrucciones RISC normalmente sólo utilizan uno o unos pocos formatos. Las instrucciones tienen una sola longitud (normalmente 4 bytes) y están alineadas en límites de palabras. Las posiciones de los campos, especialmente las posiciones de los códigos de operación, son fijas.
Modo de direccionamiento simplificado: casi todas las instrucciones utilizan el modo de direccionamiento de registro y el número total de modos de direccionamiento generalmente no supera los 5. Otros métodos de direccionamiento más complejos, como el direccionamiento indirecto, se sintetizan mediante software utilizando métodos de direccionamiento simples.
Uso extensivo de operaciones entre registros: la mayoría de las operaciones en el conjunto de instrucciones RISC son operaciones de registro a registro, y solo se utilizan operaciones simples de carga y almacenamiento para acceder a la memoria. Por lo tanto, no se accede a más de una dirección de memoria en cada instrucción y las operaciones de acceso a la memoria no se mezclan con operaciones aritméticas.
Simplifique la estructura del procesador: El uso del conjunto de instrucciones RISC puede simplificar enormemente el diseño del controlador del procesador y otras unidades funcionales. No es necesario utilizar una gran cantidad de registros especiales, especialmente permitiendo implementar líneas de hardware. operaciones de instrucción, y No es necesario utilizar microprogramas para implementar operaciones de instrucción como los procesadores CISC. Por lo tanto, el procesador RISC no necesita configurar una memoria controlada por microprogramas como el procesador CISC, por lo que puede ejecutar instrucciones directamente y rápidamente.
Tecnología VLSI fácil de usar: con el desarrollo de la tecnología LSI y VLSI, todo el procesador (o incluso varios procesadores) se puede colocar en un chip. La arquitectura RISC puede aportar muchos beneficios al diseño de procesadores de un solo chip, lo que resulta beneficioso para mejorar el rendimiento y simplificar el diseño y la implementación de chips VLSI. Basado en la tecnología VLSI, la fabricación de procesadores RISC requiere mucha menos mano de obra y es rentable que los procesadores CISC.
Capacidades paralelas de procesador mejoradas: los conjuntos de instrucciones RISC se pueden adaptar de manera muy efectiva al uso de tecnologías de canalización, supercanalización y superescalar para lograr operaciones paralelas a nivel de instrucción y mejorar el rendimiento del procesador. La tecnología de operación paralela interna de los procesadores comúnmente utilizada se desarrolla y madura básicamente en base a la arquitectura RISC.
Debido a las ventajas del sistema RISC, se ha utilizado ampliamente en sistemas de alta gama, mientras que el sistema CISC ocupa una posición dominante en los sistemas de escritorio.
Hoy en día, RISC también está penetrando continuamente en el campo de los escritorios. Se espera que RISC domine el mundo en el futuro.
2. Conjunto de instrucciones extendido de la CPU
Para la CPU, en términos de funciones básicas, no son muy diferentes y los conjuntos de instrucciones básicas son similares, pero muchos fabricantes lo hacen. Para mejorar un determinado aspecto del rendimiento, se ha desarrollado un conjunto de instrucciones ampliado. El conjunto de instrucciones ampliado define nuevos datos e instrucciones, que pueden mejorar en gran medida ciertos aspectos de las capacidades de procesamiento de datos, pero deben tener soporte de software.
Conjunto de instrucciones MMX
El conjunto de instrucciones MMX (Multi Media eXtension, conjunto de instrucciones de extensión multimedia) es una tecnología de mejora de instrucciones multimedia lanzada por Intel en 1996. El conjunto de instrucciones MMX incluye 57 instrucciones multimedia. A través de estas instrucciones, se pueden procesar múltiples datos a la vez y se puede realizar el procesamiento normal cuando los resultados del procesamiento exceden la capacidad de procesamiento real. se puede obtener rendimiento. El beneficio de MMX fue que los sistemas operativos existentes podían ejecutar fácilmente programas MMX sin tener que realizar modificaciones para este propósito. Sin embargo, el problema también es obvio, es decir, el conjunto de instrucciones MMX y las instrucciones de operación de punto flotante x87 no se pueden ejecutar al mismo tiempo. Se requiere una conmutación entrelazada intensiva para la ejecución normal. Esta situación inevitablemente causará una disminución en la calidad de ejecución. de todo el sistema.
Conjunto de instrucciones SSE
El conjunto de instrucciones SSE (Streaming SIMD Extensions, Single Institution Multiple Data Streaming Extensions) fue introducido por primera vez por Intel en el procesador Pentium III. De hecho, mucho antes del lanzamiento oficial de PIII, Intel había anunciado el llamado conjunto de instrucciones KNI (Katmai New Institution) a través de varios canales. Este conjunto de instrucciones fue el predecesor del conjunto de instrucciones SSE, y muchos medios lo llamaron MMX. próxima versión del conjunto de instrucciones, el conjunto de instrucciones MMX2. Si analizamos los antecedentes, resulta que el conjunto de instrucciones "KNI" fue el primer nombre de conjunto de instrucciones que Intel utilizó para su chip de próxima generación, y el llamado "MMX2" se basa enteramente en la evaluación de "KNI" por hardware. Críticos y medios de comunicación basados en sus sentimientos e impresiones, Intel nunca ha publicado oficialmente noticias sobre MMX2.
El conjunto de instrucciones SSE finalmente lanzado es el llamado conjunto de instrucciones ganador "Internet SSE". El conjunto de instrucciones SSE incluye 70 instrucciones, incluidas 50 instrucciones de operación de punto flotante SIMD (tecnología de datos múltiples de instrucción única) para mejorar la eficiencia de las operaciones de gráficos 3D, 12 instrucciones de mejora de operación de números enteros MMX y 8 instrucciones para optimizar la transferencia continua de bloques de datos en la memoria. . En teoría, estas instrucciones pueden mejorar de manera integral muchas aplicaciones multimedia, como el procesamiento de imágenes actualmente popular, operaciones de punto flotante, operaciones 3D, procesamiento de video y procesamiento de audio. El comando SSE y el comando 3DNow son incompatibles entre sí, pero SSE contiene la mayoría de las funciones de la tecnología 3DNow, ¡pero los métodos de implementación son diferentes! SSE es compatible con instrucciones MMX, que pueden aumentar efectivamente la velocidad de las operaciones de punto flotante procesando múltiples datos de punto flotante en paralelo a través de SIMD y un solo ciclo de reloj.
Conjunto de instrucciones SSE2
El conjunto de instrucciones SSE2 (Streaming SIMD Extensions 2, Intel oficialmente llamado SIMD Streaming Technology Extensions 2 o Data Streaming Single Institution Multiple Data Extensions 2) es desarrollado por una empresa de Intel. sobre la base del conjunto de instrucciones SSE. En comparación con SSE, SSE2 utiliza 144 instrucciones nuevas y amplía la tecnología MMX y la tecnología SSE. Estas instrucciones mejoran el rendimiento de ejecución de una amplia gama de aplicaciones. Las instrucciones de números enteros SIMD introducidas con la tecnología MMX se han ampliado de 64 bits a 128 bits, duplicando la tasa de ejecución efectiva de las operaciones de tipo entero SIMD. Las instrucciones SIMD de punto flotante de doble precisión permiten realizar dos operaciones de punto flotante simultáneamente en formato SIMD, lo que brinda soporte para operaciones de doble precisión para ayudar a acelerar la creación de contenido, las finanzas, la ingeniería y las aplicaciones científicas.
Además de las instrucciones SSE2, las instrucciones SSE originales se han mejorado para admitir cálculos de rango dinámico más amplio y flexible al admitir operaciones aritméticas en múltiples tipos de datos (por ejemplo, palabras dobles y palabras cuádruples). Las instrucciones SSE2 permiten a los desarrolladores de software una flexibilidad extrema a la hora de implementar algoritmos y mejorar el rendimiento al ejecutar software como MPEG-2, MP3, gráficos 3D, etc. Intel ha soportado el conjunto de instrucciones SSE2 desde el Pentium 4 con el núcleo Willamette, mientras que AMD sólo ha soportado el conjunto de instrucciones SSE2 desde el Opteron con el núcleo SledgeHammer de la arquitectura K8.
Conjunto de instrucciones SSE3
El conjunto de instrucciones SSE3 (Streaming SIMD Extensions 3, Intel oficialmente llamado SIMD Streaming Technology Extensions 3 o Data Streaming Single Institution Multiple Data Extensions 3) es un desarrollo de la empresa Intel. basado en el conjunto de instrucciones SSE2. En comparación con SSE2, SSE3 agrega 13 instrucciones SIMD adicionales basadas en SSE2. El objetivo principal de las 13 nuevas instrucciones en SSE3 es mejorar la sincronización de subprocesos y áreas de aplicación específicas, como medios y juegos. Estas nuevas instrucciones mejoran el rendimiento del procesador en cinco aspectos: conversión de punto flotante a número entero, algoritmos complejos, codificación de vídeo, operaciones de registro de punto flotante SIMD y sincronización de subprocesos, logrando en última instancia el propósito de mejorar el rendimiento multimedia y de juegos. Intel comenzó a soportar el conjunto de instrucciones SSE3 con el núcleo Prescott Pentium 4, mientras que AMD sólo comenzó a soportar SSE3 con el núcleo Troy Opteron en la segunda mitad de 2005. Sin embargo, cabe señalar que el SSE3 compatible con AMD no es exactamente el mismo que el SSE3 de Intel, principalmente porque se han eliminado algunas instrucciones optimizadas para la tecnología Hyper-Threading de Intel.
Conjunto de instrucciones 3D Now! (3D sin esperas)
3DNow! Es un conjunto de instrucciones SIMD desarrollado por AMD, que puede mejorar la velocidad de las operaciones multimedia y de punto flotante, y AMD lo utiliza ampliamente en sus procesadores K6-2, K6-3 y Athlon (K7). La tecnología de conjunto de instrucciones 3DNow! es en realidad un conjunto de instrucciones extendido de 21 códigos de máquina.
A diferencia de la tecnología MMX de Intel, que se centra en operaciones con números enteros, el conjunto de instrucciones 3DNow! está dirigido principalmente a aplicaciones tridimensionales como modelado tridimensional, transformación de coordenadas y representación de efectos. , puede mejorar enormemente el rendimiento del procesamiento 3D. 3DNow! mejorado se desarrolló posteriormente en Athlon. Estas instrucciones SIMD estándar de AMD tienen el mismo rendimiento que las SSE de Intel. Debido al éxito comercial de Intel y Pentium III, el software compatible con SSE es más común que 3DNow!. 3DNow! mejorado AMD continúa aumentando el número a 52 instrucciones, incluido algo de código SSE, para poder lograr un mejor rendimiento en software optimizado para SSE.