Gracias por A2A. Sí, pero sujeto a muchas advertencias.
Con la densidad actual en una matriz de CPU, se podría construir un Intel 8085 (o la copia de Zilog, z80, que era una instrucción compatible con algunas mejoras) que realmente funcionaba en el rango de velocidad de GHz. El 8085 y el Z80 fueron las CPU principales de la era CP / M, y a menudo usaban el cambio de página para superar las limitaciones de 64kB.
Sin duda, sería posible diseñar un procesador multinúcleo basado en el Z80 * que funcionaría a una verdadera velocidad de 3GHz. Sin embargo, mantener todos los núcleos sincronizados puede enfrentarse con el mismo problema de que la señal no llegue al final dentro de un ciclo de reloj.
- ¿Cuándo se moverá la RAM a la CPU? ¿Es posible que tengamos 'superchips' donde todos los componentes estén en matriz, como el almacenamiento flash NAND y los circuitos integrados de comunicaciones inalámbricas? ¿Existe una limitación técnica que obligue a la RAM a seguir siendo un componente separado?
- ¿Cambiar el tamaño de almacenamiento dinámico jvm usando -Xmx1g hace uso de 1 gb de RAM o 1 gb de disco duro?
- ¿Qué juegos se pueden jugar con gráficos de 4 GB, 8 GB de RAM y procesador Pentium 4560?
- ¿Windows generalmente tiene un bajo uso de memoria ram?
- ¿Es posible aumentar la RAM máxima de la placa base conectando una RAM externa en un gabinete Thunderbolt?
* Debido a la compatibilidad, estoy usando 8085 y Z80 indistintamente.
La mayoría de los programas dependen de alguna manera de la arquitectura de la máquina. Si Quake ha sido diseñado para una arquitectura de 32 bits, entonces tendría que reescribirse significativamente en conjuntos de instrucciones paralelas de 8 bits.
El 8085 tiene 6,500 transistores y el Core i7 tiene 1,4 mil millones de transistores, lo que equivale a 350 millones de transistores por núcleo. Esto significa que un solo “núcleo” podría reemplazarse con 54, o 8085 “núcleos” en la misma cantidad de espacio.
Para superar los problemas inmediatos de hardware, redondeo esa cantidad de “núcleos” a 40k. 40, ooo 8085s, cada uno limitado a su capacidad de memoria nativa de 64kB tendría un acceso de memoria combinado de 2.56MB. Si cada 8085 debe ser compatible con sus propias 16 líneas de dirección de memoria, esto requiere una arquitectura de memoria de 640,000 líneas de datos, lo que permite el acceso coordinado a 2 ^ 640000 MB. Esto calcula una memoria disponible de 1.57479833868631609903974189587373085914795286026 E + 190659 (el número completo supera las 70 páginas A4). En este momento, la memoria de fabricación de este tipo de capacidad aún no es factible. El espacio solo convertiría su escritorio en una “supercomputadora”.
Para simplificar los números y mantener el argumento sobre cómo abordar las complicaciones, ceñámonos a dos 8085 que se ejecutan en paralelo. Al mismo tiempo, pueden direccionar 1 GB de memoria, sin embargo, cada “núcleo” del procesador solo puede hacer frente a bloques de 16 KB, de ahí la necesidad de “administración de memoria”.
Para que un solo par de 8085s se ocupe de los valores de la vida real de la memoria (por ejemplo, 64 GB), probablemente también sea necesario restringir el número de líneas de datos, probablemente intercalando la asignación de cada núcleo en la RAM. Esto significa que habrá retrasos significativos mientras se leen todos los datos en cada núcleo antes de que se pueda ejecutar una “instrucción” completa.
Como Quake está escrito en código de 32 bits, tendría que comenzar desde cero, escribiendo bloques de código de 8 bits que se ejecutarían en paralelo. Cuanto mayor sea el paralelismo, más tiempo tomaría para la E / S de datos, de la misma manera que el 8088 tuvo que leer dos valores de 8 bits para cargar un valor de 16 bits.
Se podría hacer, pero sería un enfoque que comienza desde cero.
Como el procesamiento paralelo está invadiendo los escritorios, estoy seguro de que habrá un óptimo de líneas de datos / direcciones frente al ancho de datos de la CPU.
Si se emprendieran intentos de arquitectura de CPU modular, ¿sería un proyecto cerrado como Watson , o habría una base de desarrollo de terceros lo suficientemente fuerte como para que sea comercialmente viable?