2010-03-01 23 views
6

Si entiendo estos dos artículos, la arquitectura Intel, en su nivel más bajo, se ha hecho la transición a la utilización de instrucciones RISC, en lugar de la de la instrucción tradicional CISC establecer que Intel es conocida por:¿Los chips x86/x64 todavía usan microprogramación?

http://www.hardwaresecrets.com/article/235/4

http://www.tomshardware.com/reviews/intel,264-6.html

Si ese es el caso, ¿los microprocesadores x86/x64 todavía están microprogramados o usan control cableado como los chips RISC tradicionales? Voy a adivinar que todavía está microprogramado, pero quería verificarlo.

+0

Eso depende del chip en particular. x86/x64 es una gran clase de chips. –

+0

@ Adam, el artículo se refiere a los chips que son procesadores Intel de sexta generación y superiores, lo que significa Pentium Pro y más adelante, de acuerdo con esto: http://e-articles.info/e/a/title/Intel-P6- (686) -Sixth-Generation-Processors/ –

Respuesta

4

Microcode ha existido por mucho tiempo, si eso es lo que te refieres. Así que no sé de qué trata el artículo de HardwareSecrets, a menos que Intel esté ahora desarrollando procesadores RISC encima de los procesadores CISC.

Incluso el artículo de HardwareSecrets los llama Micro-Instrucciones. Patata, potahto.

http://en.wikipedia.org/wiki/Microcode

+0

Sí, quise decir microcódigo. – Sajee

2

En los procesadores x86 modernos, la mayoría de las instrucciones se ejecutan sin microcódigo (*), pero algunos de los complejos o con poca frecuencia ejecutados hace uso de microcódigo.

(*) No debe confundirse con las microoperaciones: en los procesadores fuera de servicio x86, las instrucciones x86 suelen decodificarse en una o más microoperaciones que luego se ponen en cola para su ejecución (¡sans microcode!) En la tubería de ejecución fuera de orden.

También es interesante observar que los procesadores modernos x86 tienen la capacidad de parchear/actualizar el microcódigo para corregir erratas en el campo.

3

Acaba de encontrar la respuesta. Referencia a "ORGANIZACIÓN DE SISTEMAS DE COMPUTACIÓN" por Andrew Tanenbaum, página 54 a página 59. Los chips Intel están basados ​​en CISC y todos los chips basados ​​en CISC tienen un intérprete (microcódigo) para dividir las instrucciones complejas en pequeños pasos. Anteriormente todas las fichas contenían microprograma. no hubo un término CISC, hasta que el concepto de RISC fue introducido por David Patterson y Carlo Sequin en 1980. RISC significa computadora con conjunto reducido de instrucciones. En el tiempo de hoy, el tamaño del conjunto de instrucciones no importa. lo que importa en el diseño RISC es la simplicidad de las instrucciones, pero el nombre 'reducido'. El diseño de RISC consiste en emitir instrucciones cada vez más simples y rápidas. cuánto tiempo tomó una instrucción importó menos de cuántos podría comenzar por segundo. También la ventaja de utilizar una ROM de CPU más rápida sobre la memoria principal más lenta que el diseño CISC tenía, se ha ido con la llegada de una memoria principal igualmente más rápida. RISC es definitivamente mejor que el rendimiento de CISC. entonces ¿por qué el fabricante de chips Intel no se movió a RISC? por dos razones. En primer lugar, está la cuestión de la compatibilidad con versiones anteriores y los miles de millones de dólares que las empresas han invertido en software para la línea Intel. en segundo lugar, intel podría utilizar la idea de RISC en sus chips CISC. a partir de 486, las CPU Intel contienen un núcleo RISC que ejecuta las instrucciones msiples y más comunes en un solo ciclo de ruta de datos, al tiempo que interpreta las instrucciones más complicadas de la manera CISC habitual. Supongo que Intel, de forma superficial, pasó al enfoque híbrido para mantener la faz/fama/buena voluntad en el mercado en línea con los avances tecnológicos. Yo tomaría los chips de Intel como basados ​​en CISC solamente.

+0

¿La respuesta? Hay mucha exageración sobre cómo RISC es más rápido o mejor que CISC y creo que Intel quería hacer que sus chips parezcan RISCOS para sacar provecho de la exageración. Aún así, los chips x86 han podido ejecutar algunas instrucciones en un ciclo de reloj (o más rápido) durante bastante tiempo, de modo que la "característica" RISC no es exclusiva de RISC. Las instrucciones RISC no todas se ejecutan en un ciclo de reloj tampoco. AMD tuvo que expandir x86 en el otro territorio RISC, un archivo de registro más grande, al agregar los registros R8 a R15 a los registros x86 tradicionales. Además, incluso los procesadores RISC afirman ser "compatibles con versiones anteriores". –

1

Las CPUs actuales x86 todavía usan microcódigo porque el conjunto de instrucciones x86 es muy complejo en relación con los procesadores RISC típicos. Esto es cierto al menos para algunas instrucciones.

Internamente, las instrucciones complejas se dividen en simples instrucciones similares a RISC que luego son procesadas por un núcleo RISC sofisticado. Las instrucciones similares a RISC a veces se reordenan o se ejecutan en paralelo.

0

Ejemplos típicos de instrucciones microcodificadas son división y multiplicación, y este es el caso tanto de CISC como de RISC. Simplemente no vale la pena implementar división en hardware considerando cómo (relativamente) rara vez se usa. Las multiplicaciones son mucho más simples de implementar pero también están microcodificadas, aunque por supuesto no en el mismo grado. De acuerdo con este documento Instruction Latencies and Throughput for ... x86 Processors, las latencias para mul y div para el procesador K10 son 5 y 77 o 15.4X. Para intel SBR (?) Los valores correspondientes son 4 y 92 o 23X. Una visión adicional en cuanto a su complejidad relativa es su rendimiento respectivo: en K10 se puede sostener una multiplicación de cada ciclo de reloj (2,5 - 5/2 - en funcionamiento simultáneamente) pero solo sostener una división cada 77º ciclo de reloj (lo mismo que la latencia de división) .

Otros ejemplos son sh? D (shift? Double) y bs? (bit scan?).

Cuestiones relacionadas