No soy un EE, por lo que hago esta conjetura sobre cómo sacar la GPU de la CPU por personas que lo saben mejor que yo. Quizás pueda señalar algo que no conozco sobre la arquitectura moderna de CPU.
Muchos procesadores modernos proporcionan gráficos integrados, con la excepción de algunos procesadores AMD que proporcionan núcleos adicionales en algunos modelos (Ryzen 5 2600) y gráficos integrados en otros (Ryzen 5 2400G). Los gráficos fuera de chip actualmente usan un bus PCI-Express, mientras que los gráficos en chip aparecen para el sistema operativo como algún tipo de dispositivo IO en algún tipo de bus (los detalles no son importantes: determinar el bus y el dispositivo es lo que hace su sistema operativo). p>
A mi entender, una CPU puede ejecutar instrucciones extendidas, como para FPU; mientras que un conjunto de chips de gráficos es una plataforma informática autónoma que realiza E / S en un conjunto de trabajo por sí misma. El software no mezcla las instrucciones de la GPU con las instrucciones de la CPU, y la GPU no funciona en la misma memoria RAM; más bien, la GPU tiene su propia frecuencia de procesamiento, su propio flujo de instrucciones y su propio espacio de RAM.
Esto me sugiere que una GPU sin CPU sería sensata. Al igual que los adaptadores de gráficos PCI-Express modernos usan una interfaz genérica, un chip GPU podría usar una interfaz de socket estandarizada. La CPU podría conectarlo a un bus y proporcionar RAM; mientras que los pines de salida podrían enrutarse a cualquier codificador de chipset a HDMI, DVI u otro puerto de salida de video.
Una CPU podría asignar el rango de video de la GPU a un área de RAM mapeada por DMA, o podría asignar un canal de RAM separado (por ejemplo, una o dos ranuras de RAM) a una segunda MMU que sirve a la GPU, evitando así la disputa con la UPC. Una MMU capaz de acceso compartido también puede deshabilitar su propio acceso a una ranura de RAM y habilitar una MMU secundaria, lo que hace que sea configurable. La CPU permitiría a la GPU DMA acceder a la memoria RAM del sistema para que pudiera copiar datos en su propio espacio de memoria como si fuera una tarjeta gráfica.
Esto parece dejar una compensación: la VRAM sería una RAM normal del sistema, en lugar de GDDR5 o LPDDR4 o lo que sea que el fabricante quiera mantener en su tarjeta.
Si lo anterior es correcto, entonces no hay ninguna ventaja real en integrar la GPU con la CPU en sistemas no integrados; mientras que proporcionar un zócalo de GPU permitiría emparejar mejores CPU con GPU separadas de bajo costo. Una PC de escritorio no tiene sentido como SoC, mientras que un zócalo dedicado para una GPU tiene sentido porque cada PC necesita algún tipo de gráficos y la interfaz se estandariza de forma rutinaria en PCI-Express.
La integración de la MMU y el puente norte / sur tiene mucho sentido debido a la interdependencia del hardware específico y la gran cantidad de datos que se transmiten entre ellos de manera continua: esto ahorra latencia.
Del mismo modo, la tarjeta gráfica DMA atraviesa la MMU en la CPU, acoplándolos estrechamente. La MMU expondría una porción de RAM al igual que funciona con gráficos integrados; Si la GPU quiere administrar la memoria virtual, puede tratar eso como RAM física e integrar su propia MMU, evitando así la sobrecarga de una MMU fuera de chip. Esto no parece ser diferente de la GPU on-die.
¿Todo esto tiene sentido, o hay una ventaja enorme que me falta (además del costo del paquete separado) al tener la GPU en el mismo troquel en lugar de enchufarla en un socket cercano?