Red de conocimiento informático - Aprendizaje de código fuente - ¿La potencia del conjunto de instrucciones es un indicador del rendimiento de la CPU?

¿La potencia del conjunto de instrucciones es un indicador del rendimiento de la CPU?

Medir el rendimiento de la CPU es muy complejo. Intel ha propuesto un indicador de la cantidad de cálculo por unidad de consumo de energía, e IBM ha propuesto un indicador de la frecuencia de reloj de cálculo (MHz o GHz).

Índice de rendimiento de CPU relacionado: 1. Frecuencia principal.

La frecuencia principal también se llama frecuencia de reloj y la unidad es MHz, que se utiliza para indicar la velocidad de funcionamiento de la CPU. Frecuencia principal de la CPU = frecuencia externa × factor de multiplicación de frecuencia. Mucha gente cree que la frecuencia principal determina la velocidad de funcionamiento de la CPU. Esto no sólo es unilateral, sino que también está sesgado para los servidores. Hasta el momento, no existe una fórmula definitiva que pueda determinar la relación numérica entre la frecuencia principal y la velocidad de funcionamiento real. Incluso los dos principales fabricantes de procesadores, Intel y AMD, tienen grandes disputas sobre este punto. De la tendencia de desarrollo de los productos Intel se puede ver que Intel concede gran importancia al fortalecimiento del desarrollo de su propia frecuencia principal. Al igual que otros fabricantes de procesadores, alguien comparó una vez un procesador Transmeta 1G con una eficiencia operativa equivalente a un procesador Intel 2G.

Por lo tanto, la frecuencia principal de la CPU no tiene relación directa con la potencia informática real de la CPU. La frecuencia principal representa la velocidad de oscilación de la señal de pulso digital en la CPU. También podemos ver ejemplos de esto en los productos de procesador de Intel: un chip Itanium de 1 GHz es casi tan rápido como un Xeon/Snapdragon de 2,66 GHz, o un Itanium 2 de 1,5 GHz es tan rápido como un Xeon/Snapdragon de 4 GHz. La velocidad de ejecución de la CPU depende de los indicadores de rendimiento de varios aspectos de la canalización de la CPU.

Por supuesto, la frecuencia principal está relacionada con la velocidad real de carrera. Solo se puede decir que la frecuencia principal es solo un aspecto del rendimiento de la CPU y no representa el rendimiento general de la CPU.

2. Frecuencia externa

La frecuencia externa es la frecuencia de referencia de la CPU y la unidad es MHz. La frecuencia externa de la CPU determina la velocidad de funcionamiento de toda la placa base. Para decirlo sin rodeos, en el escritorio, lo que llamamos overclocking es el FSB de una súper CPU (por supuesto, en términos generales, el multiplicador de CPU está bloqueado). Creo que esto se entiende bien. Pero para las CPU de servidor, el overclocking no está permitido en absoluto. Como se mencionó anteriormente, la CPU determina la velocidad de funcionamiento de la placa base y las dos se ejecutan simultáneamente. Si se overclockea la CPU del servidor y se cambia la frecuencia externa, se producirá una operación asincrónica (muchas placas base de computadoras de escritorio admiten la operación asincrónica), lo que provocará inestabilidad en todo el sistema del servidor.

La frecuencia externa en la mayoría de sistemas informáticos actuales es también la velocidad a la que funcionan simultáneamente la memoria y la placa base. De esta forma, se puede entender que la frecuencia externa de la CPU está conectada directamente a la memoria para lograr el funcionamiento sincrónico de las dos. Es fácil confundir los relojes externos y los relojes del bus frontal (FSB). A continuación, el autobús frontal nos presentará la diferencia entre los dos.

3.Frecuencia FSB

La frecuencia del bus frontal (FSB) afecta directamente la velocidad del intercambio directo de datos entre la CPU y la memoria. Existe una fórmula que se puede calcular, que es ancho de banda de datos = (frecuencia del bus × ancho de banda de datos)/8. El ancho de banda máximo de transmisión de datos depende del ancho y la frecuencia de transmisión de todos los datos transmitidos simultáneamente. Por ejemplo, Xeon Nocona, que actualmente admite 64 bits, tiene un bus frontal de 800 MHz. Según la fórmula, su ancho de banda máximo de transmisión de datos es 6,4 GB/s.

La diferencia entre la frecuencia FSB y la frecuencia FSB: la velocidad FSB se refiere a la velocidad de transmisión de datos y FSB se refiere a la operación sincrónica. de la CPU y la velocidad de la placa base. En otras palabras, la frecuencia externa de 100MHz significa que la señal de pulso digital oscila 10 millones de veces por segundo; el bus frontal de 100MHz significa que la capacidad de transmisión de datos aceptable de la CPU por segundo es 100 MHz × 64 bits÷8 bytes/. bits = 800 MB/s.

De hecho, la aparición de la arquitectura "HyperTransport" ha cambiado la frecuencia del FSB en un sentido práctico. Antes sabíamos que la arquitectura IA-32 debe tener tres componentes importantes: el concentrador controlador de memoria (MCH), el concentrador controlador de E/S y el concentrador PCI, como los conjuntos de chips típicos Intel 7501 e Intel7505, que están diseñados para Xeon dual. procesamiento El dispositivo está hecho a medida.

El MCH que contienen proporciona un bus frontal con una frecuencia de 533 MHz para la CPU. Con memoria DDR, el ancho de banda del bus frontal puede alcanzar los 4,3 GB/. Sin embargo, con la mejora continua del rendimiento del procesador, se han generado muchos problemas en la arquitectura del sistema. La arquitectura "HyperTransport" no solo resuelve el problema, sino que también mejora de manera más efectiva el ancho de banda del bus, como los procesadores AMD Opteron. La arquitectura flexible del bus HyperTransport I/O le permite integrar el controlador de memoria, permitiendo al procesador intercambiar datos directamente con la memoria sin transmitirlos a través del bus del sistema al chipset. En este caso, la frecuencia del bus frontal (FSB) en los procesadores AMD Opteron no tiene idea de por dónde empezar.

4. Bits de CPU y longitud de palabra

Bit: en circuitos digitales y tecnología informática, se utiliza codificación binaria, y la codificación es solo "0" y "1", entre los cuales "0" y "1" son bits en la CPU.

Longitud de palabra: en tecnología informática, el número de dígitos binarios que la CPU puede procesar a la vez por unidad de tiempo (simultáneamente) se denomina longitud de palabra. Por lo tanto, una CPU que puede manejar datos con una longitud de palabra de 8 bits a menudo se denomina CPU de 8 bits. De manera similar, una CPU de 32 bits puede procesar datos binarios de 32 bits por unidad de tiempo. La diferencia entre longitud de byte y palabra: dado que los caracteres ingleses de uso común se pueden representar mediante binario de 8 bits, los 8 bits generalmente se denominan byte. La longitud de la palabra no es fija y varía para diferentes CPU y longitudes de palabra. Una CPU de 8 bits sólo puede procesar un byte a la vez, mientras que una CPU de 32 bits puede procesar cuatro bytes a la vez. Asimismo, una CPU con una longitud de palabra de 64 bits puede manejar 8 bytes a la vez.

5. Factor de multiplicación

El factor de multiplicación se refiere a la relación proporcional relativa entre la frecuencia principal de la CPU y la frecuencia externa. Cuando la frecuencia externa es la misma, cuanto mayor sea el multiplicador, mayor será la frecuencia de la CPU. Pero, de hecho, bajo la premisa de la misma frecuencia externa, una CPU con un alto multiplicador en sí misma tiene poca importancia. Esto se debe a que la velocidad de transmisión de datos entre la CPU y el sistema es limitada. La búsqueda ciega de multiplicadores altos para obtener CPU de alta frecuencia tendrá un efecto de "cuello de botella" obvio: la velocidad máxima a la que la CPU obtiene datos del sistema no puede alcanzar la velocidad máxima a la que la CPU obtiene datos del sistema. velocidad de la CPU. Generalmente, las CPU de Intel, excepto la versión de ingeniería, están bloqueadas con multiplicadores, pero AMD no los bloqueó antes.

Caché

El tamaño de la caché también es uno de los indicadores importantes de la CPU. La estructura y el tamaño de la caché tienen un gran impacto en la velocidad de la CPU. El caché de la CPU se ejecuta a una frecuencia muy alta, generalmente a la misma frecuencia que el procesador, y su eficiencia de trabajo es mucho mayor que la de la memoria del sistema y el disco duro. En el trabajo real, la CPU a menudo necesita leer el mismo bloque de datos repetidamente. El aumento en la capacidad de la caché puede mejorar en gran medida la tasa de aciertos de lectura de datos dentro de la CPU sin buscar en la memoria o el disco duro, mejorando así el rendimiento del sistema. Pero debido al costo y el área del chip de la CPU, el caché es pequeño.

La caché L1 es la caché de primer nivel de la CPU y se divide en caché de datos y caché de instrucciones. La capacidad y estructura de la caché L1 incorporada tienen un gran impacto en el rendimiento de la CPU. Sin embargo, las memorias caché están compuestas de RAM estática y tienen estructuras complejas. Cuando el área de la CPU no puede ser demasiado grande, la capacidad de la caché L1 no puede ser demasiado grande. La capacidad de caché L1 de una CPU de servidor general suele ser de 32 a 256 KB.

La caché L2 es la caché de segundo nivel de la CPU y se divide en chips internos y externos. La caché L2 interna en el chip se ejecuta a la misma velocidad que la frecuencia principal, mientras que la caché L2 externa es solo la mitad de la frecuencia principal. La capacidad de la caché L2 también afecta el rendimiento de la CPU. El principio es que cuanto mayor sea la CPU, mejor. En la actualidad, la mayor capacidad de CPU nacional es de 512 KB, y la caché L2 de la CPU utilizada por servidores y estaciones de trabajo llega a 256-1 MB, y algunas llegan a 2 MB o 3 MB.

La caché L3 (caché de tres niveles) se divide en dos tipos, la temprana externa y la actual interna. Su efecto real es que la aplicación de caché L3 puede reducir aún más la latencia de la memoria y mejorar el rendimiento del procesador al calcular grandes cantidades de datos. Reduzca la latencia de la memoria y mejore la potencia informática de big data, lo cual es muy útil para los juegos. Sin embargo, todavía hay una mejora significativa en el rendimiento al agregar caché L3 en el mundo de los servidores.

Por ejemplo, una configuración con una caché L3 más grande puede usar la memoria física de manera más eficiente, por lo que puede manejar más solicitudes de datos que un subsistema de E/S de disco más lento. Los procesadores con cachés L3 más grandes proporcionan un comportamiento de caché del sistema de archivos más eficiente y longitudes de cola de mensajes y procesadores más cortas.

De hecho, la primera aplicación de caché L3 estaba en el procesador K6-III lanzado por AMD. En ese momento, la caché L3 no estaba integrada en el chip, sino en la placa base por motivos del proceso de fabricación. La caché L3 solo se puede sincronizar con la frecuencia del bus del sistema y no es muy diferente de la memoria principal. Posteriormente, Intel introdujo la caché L3 para el procesador Itanium para el mercado de servidores. Luego están el P4EE y el Xeon MP. Intel también planea lanzar en el futuro un procesador Itanium2 de caché L3 de 9 MB y un procesador Itanium2 de doble núcleo de caché L3 de 24 MB.

Pero la caché L3 no es muy importante para mejorar el rendimiento del procesador. Por ejemplo, el procesador Xeon MP equipado con 1 MB de caché L3 todavía no es rival para Snapdragon. Esto muestra que el aumento del bus frontal traerá mejoras de rendimiento más efectivas que el aumento del caché.

7. Conjunto de instrucciones extendido de la CPU

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 potencia de la instrucción también es un indicador importante de la CPU. El conjunto de instrucciones es una de las herramientas más efectivas para mejorar la eficiencia del microprocesador. Desde la arquitectura principal actual, el conjunto de instrucciones se puede dividir en dos partes: conjunto de instrucciones complejo y conjunto de instrucciones simplificado. Desde la perspectiva de aplicaciones específicas, como MMX (Extensiones multimedia) de Intel, SSE, SSE 2 (Streaming-Single Instrucción múltiple). Data) - Extensión 2), SEE3 y 3DNow! de AMD. Todos ellos son conjuntos de instrucciones ampliados 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". El conjunto de instrucciones SSE3 es también el conjunto de instrucciones más pequeño actualmente. Anteriormente, MMX contenía 57 comandos, SSE contenía 50 comandos, SSE2 contenía 144 comandos y SSE3 contenía 13 comandos. Actualmente, SSE3 es también el conjunto de instrucciones más avanzado. Los procesadores Intel Prescott ya admiten el conjunto de instrucciones SSE3. AMD agregará soporte para el conjunto de instrucciones SSE3 a futuros procesadores de doble núcleo, y los procesadores Transmeta también admitirán este conjunto de instrucciones.

8. Núcleo de la CPU y voltaje de trabajo de E/S

A partir de la 586CPU, el voltaje de trabajo de la CPU se divide en voltaje del núcleo y voltaje de E/S. Normalmente, el voltaje del núcleo de la CPU es menor o igual que el voltaje de E/S. Entre ellos, el tamaño del voltaje del núcleo depende del proceso de producción de la CPU. Generalmente, cuanto más pequeño es el proceso de producción, menor es el voltaje de funcionamiento del núcleo. El voltaje de E/S es generalmente de 1,6 ~ 5 V. El bajo voltaje puede resolver los problemas de consumo excesivo de energía y generación excesiva de calor.

9. Proceso de fabricación

La micra del proceso de fabricación se refiere a la distancia entre circuitos en un circuito integrado. La tendencia en la tecnología de fabricación es hacia una mayor densidad. Cuanto mayor sea la densidad del diseño de circuito IC, significa que en el mismo tamaño y área de IC, puede tener un diseño de circuito con mayor densidad y funciones más complejas. Ahora los principales son 180 nm, 130 nm y 90 nm. Recientemente, los funcionarios han declarado que tienen un proceso de fabricación de 65 nm.

10. Conjunto de instrucciones

(1) Conjunto de instrucciones CISC

El conjunto de instrucciones CISC, también conocido como conjunto de instrucciones complejas, se denomina CISC (Computadora con conjunto de instrucciones complejas). en inglés) abreviatura). En un microprocesador CISC, las instrucciones del programa se ejecutan de forma secuencial y en serie, y las operaciones de cada instrucción también se ejecutan en serie. La ventaja de la ejecución secuencial es el control simple, pero la utilización de varias partes de la computadora es baja y la velocidad de ejecución es lenta. De hecho, es la CPU de la serie x86 (es decir, arquitectura IA-32) producida por Intel y sus CPU compatibles, como AMD y VIA. Incluso el nuevo X86-64 (también llamado AMD64) es CISC.

Para saber qué es un conjunto de instrucciones debemos empezar por la CPU de arquitectura X86 actual.

El conjunto de instrucciones X86 fue desarrollado por Intel específicamente para su primera CPU de 16 bits (i8086). La CPU-I 8088 (una versión simplificada del I 8086) en la primera PC del mundo lanzada por IBM en 1981 0 también usaba instrucciones X86. Al mismo tiempo, se agregó un chip X87 a la computadora para mejorar las capacidades de procesamiento de datos de punto flotante. Posteriormente, se agregaron el conjunto de instrucciones X86 y el conjunto de instrucciones X87.

Aunque con el desarrollo continuo de la tecnología de CPU, Intel ha desarrollado sucesivamente nuevos i80386 e i80486, desde los pasados ​​PII Xeon, PIII Xeon, Pentium 3 y, finalmente, hasta las actuales series Pentium 4 y Xeon (excluyendo Xeon Nocona). ), para garantizar que la computadora pueda continuar ejecutando varias aplicaciones desarrolladas en el pasado, proteger y heredar ricos recursos de software, todas las CPU producidas por Intel continúan usando el conjunto de instrucciones X86, por lo que sus CPU aún pertenecen a la serie X86. Porque la serie Intel X86 y sus CPU compatibles (como AMD Athlon MP, etc.) utilizan el conjunto de instrucciones X86, formando la enorme línea actual de series X86 y CPU compatibles. En la actualidad, x86CPU incluye principalmente CPU de servidor Intel y CPU de servidor AMD.

(2) Conjunto de instrucciones RISC

RISC es la abreviatura de "Computación del conjunto de instrucciones reducido" en inglés y "Conjunto de instrucciones reducido" en chino. Está desarrollado sobre la base del sistema de instrucción CISC. Algunas pruebas realizadas en máquinas CISC han demostrado que la frecuencia de distintas instrucciones es bastante diferente. Las instrucciones más utilizadas son algunas instrucciones simples, de las cuales solo representan 20 del total de instrucciones, pero su frecuencia de aparición en el programa representa el 80%. Un sistema de instrucción complejo inevitablemente aumentará la complejidad del microprocesador, lo que resultará en un largo tiempo de desarrollo y altos costos. Además, las instrucciones complejas requieren operaciones complejas, que inevitablemente ralentizarán la computadora. Por las razones anteriores, la CPU RISC nació en la década de 1980. En comparación con la CPU CISC, la CPU RISC no solo simplifica el sistema de instrucciones, sino que también adopta estructuras llamadas superescalar y supercanalización, lo que aumenta en gran medida las capacidades de procesamiento paralelo. El conjunto de instrucciones RISC es la dirección de desarrollo de las CPU de alto rendimiento. Es lo opuesto al CISC (conjunto de instrucciones complejas) tradicional. Por el contrario, RISC tiene un formato de instrucción unificado, menos tipos y menos modos de direccionamiento que un conjunto de instrucciones complejo. Por supuesto, la velocidad de procesamiento es mucho mayor. En la actualidad, este tipo de CPU de sistema de instrucciones se usa ampliamente en servidores de gama media a alta, especialmente en servidores de gama alta, todos los cuales utilizan CPU de sistema de instrucciones RISC. El sistema de instrucciones RISC es más adecuado para UNIX, el sistema operativo de servidores de alta gama. Ahora Linux también es un sistema operativo similar a UNIX. Las CPU RISC no son compatibles en software ni hardware con las CPU Intel y AMD.

En la actualidad, las CPU que utilizan instrucciones RISC en servidores de gama media a alta incluyen principalmente las siguientes categorías: procesadores PowerPC, procesadores SPARC, procesadores PA-RISC, procesadores MIPS y procesadores Alpha.

⑶IA-64

Ha habido mucho debate sobre si EPIC (Computadora de instrucción paralela explícita) es el sucesor de los sistemas RISC y CISC. En lo que respecta al sistema épico, es más bien un paso importante para que los procesadores Intel avancen hacia los sistemas RISC. En teoría, bajo la misma configuración de host, la CPU diseñada por el sistema EPIC es mucho mejor que el software de aplicación basado en Unix.

La CPU del servidor Intel que utiliza tecnología EPIC es Itanium (nombre en código de desarrollo Merced) ubicada en Itanium. Es un procesador IA-64 bits y el primero de la serie IA-64. Microsoft también ha desarrollado un sistema operativo con nombre en código Win64, que está respaldado por software. Después de que Intel adoptó el conjunto de instrucciones x86, recurrió a microprocesadores de 64 bits más avanzados. Intel hizo esto porque quería deshacerse de la enorme arquitectura x86 e introducir un conjunto de instrucciones potente y enérgico, por lo que nació la arquitectura IA-64 con el conjunto de instrucciones EPIC.

IA-64 es una gran mejora con respecto a x86 en muchos sentidos. Supera muchas limitaciones de la arquitectura tradicional IA32 y logra mejoras revolucionarias en las capacidades de procesamiento de datos, estabilidad del sistema, seguridad, disponibilidad y observabilidad.

El mayor defecto del microprocesador IA-64 es que no es compatible con x86. Para permitir que el procesador IA-64 ejecute mejor el software de las dos dinastías, Intel utiliza procesadores IA-64 (Itanium, Itanium 2...) para traducir instrucciones x86 en instrucciones IA-64. Este decodificador no es el más eficiente ni la mejor manera de ejecutar código x86 (la mejor manera es ejecutar código x86 directamente en el procesador x86), por lo que Itanium e Itanium2 tienen un rendimiento deficiente cuando ejecutan aplicaciones x86. Esto también se ha convertido en la causa raíz de X86-64.

(4)X86-64 (AMD64 / EM64T)

Diseñado por AMD, puede manejar operaciones enteras de 64 bits simultáneamente y es compatible con la arquitectura X86-32. Admite direccionamiento lógico de 64 bits y ofrece la opción de convertir a direccionamiento de 32 bits, pero las instrucciones de operación de datos predeterminadas son de 32 y 8 bits, y ofrece la opción de convertir a direccionamiento de 64 y 16 bits; registros de uso general, si Para operaciones de 32 bits, el resultado se ampliará a 64 bits completos. De esta manera, existe una diferencia entre "ejecución directa" y "ejecución de conversión" en la instrucción. El campo de instrucción es de 8 bits o 32 bits, lo que puede evitar que el campo sea demasiado largo.

La creación de x86-64 (también llamado AMD64) no surgió de la nada. El espacio de direcciones de 32 bits de los procesadores x86 está limitado a 4 GB de memoria y los procesadores IA-64 no son compatibles con x86. AMD ha considerado plenamente las necesidades de los clientes y ha fortalecido las funciones del conjunto de instrucciones x86 para que este conjunto de instrucciones pueda admitir modos informáticos de 64 bits al mismo tiempo, por lo que AMD llama a su estructura x86-64. Técnicamente, para realizar operaciones de 64 bits en la arquitectura X86-64, AMD lanzó los registros de propósito general R8-R15 como una extensión del original. Los registros sin formato como EAX y EBX también se ampliaron de 32 bits a 64 bits. Se han agregado ocho nuevos registros a la unidad SSE para brindar soporte a SSE2. Aumentar el número de registros mejorará el rendimiento. Al mismo tiempo, para admitir códigos y registros de 32 y 64 bits, la arquitectura x86-64 permite que el procesador funcione en los dos modos siguientes: modo largo y modo heredado. El modo largo se divide en dos. submodos (modo de 64 bits y modo de compatibilidad). El estándar se ha introducido en los procesadores de servidores AMD con procesadores Opteron.

Este año se lanzó la tecnología EM64T que admite 64 bits. Antes de que se llamara oficialmente EM64T, era IA32E, que es el nombre de la tecnología de extensión de 64 bits de Intel para distinguir el conjunto de instrucciones X86. El EM64T de Intel admite el submodo de 64 bits, similar a la tecnología X86-64 de AMD. Utiliza direccionamiento de plano lineal de 64 bits, agrega 8 nuevos registros de propósito general (GPR) y agrega 8 registros para admitir instrucciones SSE. Al igual que AMD, la tecnología de 64 bits de Intel será compatible con IA32 e IA32E, y IA32E sólo se adoptará cuando se ejecuten sistemas operativos de 64 bits. IA32E constará de dos submodos: submodo de 64 bits y submodo de 32 bits, que son compatibles con versiones anteriores como AMD64. El EM64T de Intel será totalmente compatible con la tecnología X86-64 de AMD. Ahora el procesador Nocona ha agregado algo de tecnología de 64 bits y el procesador Intel Pentium 4E también admite tecnología de 64 bits.

Cabe decir que ambas son arquitecturas de microprocesadores de 64 bits compatibles con el conjunto de instrucciones x86, pero aún existen algunas diferencias entre EM64T y AMD64. El bit NX en los procesadores AMD64 no estará disponible en los procesadores Intel.

Debido al límite de palabras de la respuesta, lea el texto completo: