#18#4 Es que realmente hoy día, y desde al menos el Pentium Pro, se trata de un procesador internamente RISC, con una capa externa de traducción de CISC a RISC. De hecho, el Pentium Pro ha sido uno de los mejores procesadores de Intel. Toda la arquitectura Core está basada es él. Todas las instrucciones x86 se traducen a microinstrucciones internas, más pequeñas y sencillas. Es como un híbrido CISC/RISC. Está claro que toda esa capa de traducción podría estar dedicada a otra cosa si fuera directamente RISC, pero es así como han podido aumentar tanto el rendimiento.
Además, de todo el juego de instrucciones x86, hay muchas que están desaconsejadas en los manuales de programación (normalmente, las más complejas). Se busca (en la medida de lo posible) un código ensamblador con una gran mayoría de instrucciones simples. Aunque la compatibilidad obliga a aceptar todo el juego de instrucciones.
Para empezar y como dice #18, los procesadores x86 actuales (en realidad x86_64) no son CISC puramente, sino que traducen internamente dichas instrucciones CISC en intrucciones RISC.
Y, en cuanto a las licencias, la empresa que diseñó el actual juego de instrucciones x86_64 no fue Intel, sino AMD (el primer procesador con ella fue el Athlon64).
Por lo demás, está interesante recordar la historia.
#28#18 Exactamente, iba a comentar eso mismo, hablar de las ventajas de CISC es una quimera, porque por debajo todo es RISC. Las instrucciones complejas son muy tentadoras, pero no merecen la pena; claro ahora el coste de la traducción es bajo comparado con el cauce completo y no se nota, pero es rendimiento que se pierde. Y la forma de trabajar con la memoria en x86 tan absurda... En fin, es lo que hace el marketing.
Tal vez os interese ver fotos de alta resolución de las entrañas de algunos micros en visual6502.org. La he descubierto hoy mismo y ya le estoy dando vueltas a la idea de hacerme algún póster
Os dejo enlaces a varios ejemplos. ¡¡OJO!! Algunos llevan a archivos muy grandes.
Además, de todo el juego de instrucciones x86, hay muchas que están desaconsejadas en los manuales de programación (normalmente, las más complejas). Se busca (en la medida de lo posible) un código ensamblador con una gran mayoría de instrucciones simples. Aunque la compatibilidad obliga a aceptar todo el juego de instrucciones.