Ideas de Procesador
Aunque a más de uno le parezca un poco absurdo, el procesador que propongo tiene que ver con la altísima velocidad que se busca hoy. Siendo sincero, la filosofía con que se construyen los procesadores hoy proviene del primer microprocesador de Intel, el 4004, que era de 4 bits y se hizo en 1971.
Cuando
hablo de Filosofía del procesador, hablo de la forma en como está
construido por dentro, por la forma en que se hacen las tareas dentro
del mismo. Lo que yo propongo es otra filosofía que es muy distinta a la
actual.
Antes que Intel hiciera su primer Microprocesador, los computadores se hacían de una forma muy distinta. Se hacían con ayuda de los integrados TTL (Transistor Transistor Logic) y CMOS (Complementary Mosfet) ambos con tecnologías muy distintas. La TTL trabajaba con voltajes de 4.5 a 5.5 voltios y la CMOS trabajaba con 3 a 15 voltios dependiendo de la aplicación de la misma. Varias cosas usaron dichas computadoras Los aviones caza, el cohete Saturno V, el concorde y el Airbus A300B, en un modalidad conocida como Fly by Wire en donde una computadora se encargaba de mover las superficies de vuelo de estos vehículos.
Claro había computadores empresariales, pero juntas máquinas, vehículos y computadoras empresariales a finales de los 60's y principios de los 70's usaban el sistema operativo Unix. Como se tenía que usar las tecnologías TTL y CMOS, una de estas era el núcleo del procesador, era la 74181 o 74LS181 que pertenecía a la familia TTL, y era la ALU (Arithmetic Logic Unit - Unidad Aritmética y Lógica). Este chip MSI (los procesadores también son MSI) que significa de alto nivel de integración, tenía la función de hacer todas las operaciones lógicas y matemáticas del computador.
Bien, los TTL podían funcionar máximo a 100 Mhz y los CMOS a 10 Mhz. Esto se refiere a la velocidad de respuesta de cada uno de los transistores internos. Para entenderlo mejor el transistor que trabajara a 100 Mhz tenía una velocidad de respuesta de T= 1/100'000.000 que nos da como resultado 0.00000001 segundos lo que sería igual a decir 10 nanosegundos. En Cmos sería de 100 nanosegundos. Claro que, el TTL es muy veloz, pero tenía problemas de consumo de corriente y se alteraba su respuesta si se calentaba mucho. Además, mover datos del teclado al procesador y del procesador a la pantalla o a la impresora o a la unidad de disco duro de 8 pulgadas o a las cintas magnéticas de datos no se podía escribir muy rápido. Así que los datos se sincronizaban a 60 Khz y el procesamiento de los mismos los hacía la ALU que no estaba sincronizada y cuando se requería el dato ya ella tenía una respuesta. Si miramos bien el circuito de la imagen, no tenía un circuito que lo sincronizara así que se aprovechaba la velocidad de respuesta de los transistores.
Esta forma de hacer computadores, era muy costosa, pues no solo se construía las placas de cada sección sino que, el Ingeniero/técnico electrónico tenía que ponerse de acuerdo con el de Unix para hacer las instrucciones del sistema operativo con las compuertas lógicas. Lo demás debía estar en discos duros u otro tipo de almacenamiento. Así que la filosofía de construcción del computador dependía del Kernel Unix que se hacía en el diseño de las placas del computador.
Cuando entró intel con su procesador al mercado, todo en el diseño del procesador se sincronizó incluyendo la ALU, esto hizo que un computador tardara cierto tiempo en realizar operaciones matemáticas y lógicas. Hoy se usa el mismo esquema en la construcción de microprocesadores. Incluso con transistores más rápidos de la tecnología Mosfet, con que se construyen los procesadores del mercado desde 1971, requieren cada vez más frecuencias de trabajo altas.
Resulta que, si tomamos como referencia las frecuencias de la luz visible, las frecuencias después del color violeta son perjudiciales para el ser humano, osea un computador cuyo procesador trabaje a estas frecuencias puede hacer daños físicos al ser humano, Esas frecuencias van desde el Ultravioleta en adelante. Eso quiere decir que un computador cuántico, como propone más de uno, no puede trabajar ni en celulares, ni en portátiles, ni siquiera en consolas de videojuegos porque deben estar alejados del ser humano por las altas frecuencias a las que debe trabajar, no se puede trabajar a cercanías de estos equipos.
Procesador con nueva filosofía de construcción
Debido a ese riesgo inherente, la electrónica de consumo debe procurar encontrar una solución a esta problemática. Debido a que la ALU sincrónica exige más y más velocidad, su sincronización ha traído más problemas que soluciones. Aún en ese tiempo, si se hubiera hecho asincrónica desde el mismo principio, seguramente otra sería la dificultad.
Hoy en día podemos hacerla asincrónica. de hecho podemos empezar una nueva filosofía de construcción, que no dependa de la cantidad de bits para realizarla, pues analizando un poco las instrucciones en lenguaje máquina de los procesadores, la mayoría hacen prácticamente lo mismo, solo se hace el código de instrucción más largo.
Ahora bien, el código hexadecimal que se usa ocupa 4 bits, dos de estos forman 8 bits lo que da un byte. Resulta que un byte es código ASCII que es el que se emplea en los teclados de nuestras computadoras. Vamos a pensar en Linux. Supongamos que el kernel de linux la instrución más larga es de 10 caracteres, que al ser de 8 bits carácter sería de 80 bits. El bus de direcciones no cambia, pues esas si deben ser de código hexadecimal ese no cambia por lo que 64 bits es suficiente y para direccionar 64 bits usando ASCII se necesitan 16 bytes, osea 128 bits, por lo que se haría en dos ciclos. Todo estos son datos y no requieren mucha velocidad de ingreso/salida.
Ahora bien, las operaciones lógicas y aritméticas son el cuello de botella si se sincronizan, por lo que la ALU no debe estar sincronizada para lograr usar la máxima velocidad de respuesta del transistor con que se construye. Supongamos que, el transistor para integrado su velocidad de respuesta es de 10 picosegundos que equivaldría a 100 Gigahertz (Ghz). Eso es mucha velocidad de respuesta. La máxima velocidad a que se muevan los datos que sea de 5 Ghz es tiempo suficiente de sincronización pues el movimientos de datos no requieren de tanta velocidad y es más que suficiente. Pero si ese dato requiere de que se ejecute una operación lógica o aritmética (suma, resta, multiplicación y división) es mejor que estas sea de forma asincrónica, porque si hacemos la diferencia el dato de respuesta estaría listo para ser llevado a otro proceso.
Para que se entienda un poco el proceso, el ser humano ve en 3 dimensiones gracias a nuestro par de ojos. Cada ojo recibe una información distinta de un mismo objeto. Esos datos viajan a 100 Khz máximo (suponiendo que así es). A esta velocidad es imposible que el ser humano vea en 3 dimensiones porque las operaciones matemáticas que debe hacer para que veamos en 3 dimensiones son bastante extensas. Pero no en nuestro cerebro, resulta que esas operaciones tan largas nuestro cerebro no las hace de forma sincrónica, sino todo lo contrario, las realiza de forma asincrónica, por lo que aprovecha la máxima velocidad de las respuestas neuronales para realizarlas en el menor tiempo posible.
Si
usamos ese mismo principio, nuestros computadores podrían hacer
cualquier operación compleja en un tiempo extremadamente corto y el
movimiento de datos puede ser a cualquier velocidad. Esto da como
resultado que su velocidad de respuesta sea altísima.
Ahora bien, para que no usemos unidades de punto flotante a parte, que tal si dentro del procesador nuestra ALU fuera también de punto flotante. Las operaciones de punto flotante como las que usan números reales podrían realizarse en muy corto tiempo, por lo que disminuimos el gasto energético y habría menos calor, y si a esa ALU incluimos todas aquellas operaciones de cálculo extensa, todavía tendría tiempo de entregar la información porque la velocidad de entrega de datos es muchísimo menor que la de las operaciones, así que, tendríamos un procesador cuántico con velocidades admisibles para trabajar cerca de humanos, ya que la velocidad de respuesta no afecta al ser humano, pues no tiene nada que ver con frecuencias de trabajo.
Ahora bien, la programación, como estamos hablando del Kernel de Linux, podría ser algún juego de instrucciones de los lenguajes de programación que se usen en linux. así que, podríamos usar un teclado normal e introducir los comandos de programación, de esa forma, se haría muy sencillo construir cualquier programa y los archivos que se generen serían pequeños. Sería un procesador de alto nivel, pues su programación es muy sencilla y sería muy fácil de realizar, comparado con hoy. hacer funcionar el hardware aún sería en código máquina, pero ya hemos disminuido parte del trabajo de programación para manejar el hardware con los datos del usuario.
Las aplicaciones son muchas, el tamaño del integrado se reduce pues la circuitería de sincronización de la ALU disminuye ya que ella no es sincrónica todo lo que realiza es asincrónico aprovechando la velocidad de respuesta de cada uno de los transistores que la conforma. Ahora bien, otra parte de la filosofía es separar las memorias ROM y RAM en direcciones por lo que cada una aprovecharía al máximo el total de las direcciones del procesador. Esto permitiría mejorar el desempeño y más memoria RAM de trabajo.







Comentarios
Publicar un comentario