Descargo de responsabilidad: Entonces, obviamente esta es una pregunta tonta y quiero comenzar diciendo que no quiero discutir los costos financieros de esto, ya que estoy consciente de que la memoria caché de la CPU es costosa. Como esto no se ha hecho suficientemente obvio, esto es PADELAMENTE ACADÉMICO, NO PARA LA IMPLEMENTACIÓN. Piensa "experimento mental"
Me he estado preguntando si sería posible calcular previamente todo el trabajo que haría una ALU y almacenar los resultados en una tabla de búsqueda.
Para este ejemplo específico, he estado mirando un subconjunto de instrucciones de las que la ALU es responsable en una arquitectura MIPS que es "AND, OR, add, sub, slt, NOR".
En esta arquitectura, estas operaciones tardarían 4 bits en codificarse, lo que llamaremos control, ya que solo hay 6 operaciones. Además, tendríamos que tomar dos valores de 32 bits como entrada y devolver un valor de 32 bits como salida junto con 3 banderas de 1 bit. (Los detalles se enumeran en aquí )
En un nivel realmente alto, usaríamos el control de 4 bits, junto con las dos entradas de 32 bits para devolver el resultado de 32 bits y las banderas de 3 1 bits. Entonces, ¿no podría cada control actuar como un desplazamiento de nuestra memoria caché y usar los valores de entrada para indexar en nuestra búsqueda? Incluso podríamos extraer más memoria para las operaciones que tienen la propiedad conmutativa (1 + 2 = 2 + 1)
Soy consciente de que es una pregunta ridícula, pero tenía curiosidad por saber si alguien tenía alguna idea. Tal vez podría ser más rápido? Si no es así, ¿quizás usar menos electricidad o generar menos calor? Por lo menos es interesante.