Una arquitectura superscalar de la CPU del ejecuta una forma del paralelismo llamado el paralelismo del Instrucción-nivel dentro de un solo procesador. De tal modo permite un rendimiento de procesamiento más rápido de la CPU que ser de otra manera posible a la misma tarifa de reloj. Un procesador superscalar ejecuta más de una instrucción durante un ciclo de reloj simultáneamente enviando instrucciones múltiples a las unidades funcionales redundantes en el procesador. Cada unidad funcional es una no base separada de la CPU, sino un recurso de la ejecución dentro de una sola CPU, tal como una unidad de la lógica aritmética, desplazador o multiplicador del pedacito.
Mientras que una CPU superscalar es típicamente también canalizado, son dos diversas técnicas del realce del funcionamiento. Es teóricamente posible tener una CPU superscalar no-canalizada, o una CPU non-superscalar canalizada.
La técnica superscalar se asocia tradicionalmente a varias características de identificación. Observar éstos son aplicado dentro de una base dada de la CPU.
Las instrucciones del
se publican de una corriente secuencial de la instrucción
El hardware de la CPU comprueba dinámicamente para saber si hay dependencias de los datos entre las instrucciones en el tiempo de pasada (contra el software que comprueba en el de tiempo de compilación)
Acepta instrucciones múltiples por ciclo de reloj
A excepción de las CPU usadas en un poco de batería - los dispositivos accionados, esencialmente todas las CPU de fines generales se convirtieron puesto que cerca de 1998 son superscalar. El comenzar con el " P6 " (Pentium favorable Pentium II de y) la puesta en práctica, microprocesadores de la arquitectura 80386 de s de Intel 'ha ejecutado un sistema de instrucción del CISC en una Micro-arquitectura superscalar del RISC. Las instrucciones complejas interno se traducen a a RISC-como " micro-ops" Sistema de instrucción del RISC, permitiendo que el procesador se aproveche del procesador subyacente del alto-funcionamiento mientras que sigue siendo compatible con procesadores anteriores de Intel.
El diseño de la CPU de Superscalar acentúa la mejora de la exactitud del despachador de la instrucción, y permitir que mantenga las unidades funcionales múltiples funcionando siempre. Esto ha llegado a ser cada vez más importante cuando el número de unidades aumentó. Mientras que las CPU superscalar tempranas tendrían dos el ALUs y un solo FPU, un diseño moderno como el PowerPC 970 incluye cuatro ALUs y dos FPUs y unas par de unidades SIMD también. Si el despachador es ineficaz en la custodia de todas estas unidades alimentadas con instrucciones, el funcionamiento del sistema sufrirá en conjunto.
Un procesador superscalar sostiene generalmente una tarifa de la ejecución superior a una instrucción por el ciclo de máquina . ¡Pero simplemente el proceso de instrucciones múltiples concurrentemente no hace una arquitectura superscalar, puesto que el canalizó , el multiprocesador o las arquitecturas multifilares también alcanzar eso, pero con diversos métodos.
En una CPU superscalar el despachador lee instrucciones de la memoria y decide cuáles pueden ser funcionadas con paralelamente, enviándolas a las unidades funcionales redundantes contenidas dentro de una sola CPU. Por lo tanto un procesador superscalar se puede prever el tener de tuberías paralelas del múltiplo, que es instrucciones de proceso simultáneamente de un solo hilo de rosca de la instrucción.
Los programas ejecutables binarios existentes tienen diversos grados de paralelismo intrínseco. Las instrucciones no son dependientes en uno a y se pueden en algunos casos ejecutar simultáneamente. En otros casos son interdependientes: una instrucción afecta recursos o los resultados de la otra. El a de las instrucciones = el b + la c; d = e + f pueden ser funcionados paralelamente porque ningunos de los resultados dependen de otros cálculos. Sin embargo, el a de las instrucciones = el b + la c; d = a + f no pudieron ser runnable paralelamente, dependiendo de la orden en la cual las instrucciones terminan mientras que se mueven a través de las unidades.
Cuando el número de instrucciones simultáneamente publicadas aumenta, el coste de la dependencia que comprueba aumentos extremadamente rápido. Esto es exacerbada por la necesidad de comprobar dependencias en el tiempo de pasada y a la tarifa de reloj de la CPU. Este coste incluye las puertas de lógica adicional requeridas para ejecutar los cheques, y los retrasos a través de esas puertas. La investigación demuestra que la puerta costada en algunos casos puede ser puertas de , y el retardo costó , donde está el número n de instrucciones en el sistema de instrucción del procesador, y k es el número de instrucciones simultáneamente enviadas. En matemáticas, esto se llama un problema de Combinatoric que implica las permutaciones
Aunque la corriente de la instrucción no puede contener ninguna dependencia de la inter-instrucción, una CPU superscalar debe no obstante comprobar para saber si hay esa posibilidad, puesto que no hay aseguramiento de otra manera y la falta de detectar una dependencia produciría resultados incorrectos.
No importa cómo está avanzado el proceso del semiconductor o cómo rápidamente la velocidad de conmutación, ésta pone un límite práctico en cuántos pueden ser enviadas simultáneamente las instrucciones. Mientras que los avances de proceso permitirán números siempre mayores de unidades funcionales (e.g, ALUs), la carga de comprobar dependencias de la instrucción crece tan rápido que el límite superscalar realizable del envío es bastante pequeño. -- probablemente en la orden de cinco a seis instrucciones simultáneamente enviadas.
No obstante incluso la dependencia infinitamente rápida dada que comprueba lógica en una CPU superscalar de otra manera convencional, si la corriente sí mismo de la instrucción tiene muchas dependencias, esto también limitaría el speedup posible. Así el grado de paralelismo intrínseco en la corriente del código forma una segunda limitación.
Con VLIW, la tarea pesada de la dependencia que comprueba por lógica del hardware en el tiempo de pasada se quita y se delega al recopilador . Los cheques que en un diseño superscalar se deben terminar dentro de nanosegundos se pueden realizar en segundos, y si al una máquina multifilar y usar un recopilador con hilos múltiples, por los procesadores múltiples paralelamente. La instrucción paralela que computa (ÉPICO) es explícitamente como VLIW, con instrucciones prefetching del escondrijo adicional.
El multithreading simultáneo, abreviado a menudo como SMT, es una técnica para mejorar la eficacia total de CPU superscalar. SMT permite que los hilos de rosca independientes múltiples de la ejecución utilicen mejor los recursos proporcionados por arquitecturas modernas del procesador.
Los procesadores de Superscalar diferencian de los procesadores multifilares en que las unidades funcionales redundantes no son procesadores enteros. Un solo procesador se compone de unidades funcionales fino-granulosas tales como el ALU, multiplicador del número entero, desplazador del número entero, unidad de la coma flotante, etc. Puede haber versiones múltiples de cada unidad funcional para permitir la ejecución de muchas instrucciones paralelamente. Esto diferencia de una CPU multifilar que concurrentemente las instrucciones de procesos de los hilos de rosca múltiples, un hilo de rosca por base. También diferencia de una CPU canalizada, donde las instrucciones múltiples pueden concurrentemente estar en varias etapas de la ejecución, manera de la línea de montaje .
Las varias técnicas alternativas no son - exclusiva - ellas pueden (y estar con frecuencia) ser combinadas mutuamente en un solo procesador. Así una CPU multifilar es posible donde está un procesador cada base independiente que contiene tuberías paralelas múltiples, cada tubería que es superscalar. Algunos procesadores también incluyen capacidad del vector .
.
| Random links: | José Moscardó Ituarte | Satinado aislado | Wrexham Maelor | Eva O | Meunier-Lebouc de Patricia |