Creo que puedes estar mordiendo más de lo que puedes masticar aquí.
Primero, ¿cuál es el propósito de esta tarjeta? Memoria adicional ... ¿para qué? Puede estar interconectado a través de PCIe, es cierto, pero nunca verá el tipo de rendimiento de latencia que podría obtener del DDR4 real conectado directamente al controlador de memoria de la CPU. ¿Y por qué tiene que ser DDR4?
Tal vez la latencia sea un problema menor, y puede tolerar una latencia mayor a cambio de tener 1 TB de almacenamiento de memoria RAM volátil. Tendría que usar un FPGA para actuar como un dispositivo PCI Express que está conectado a toda esta RAM. Entra directamente en el territorio Virtex-7 / UltraScale o Stratix 10, los FPGA emblemáticos de Xilinx y Altera respectivamente, cada uno de los cuales cuesta miles de dólares por pieza. Son las únicas partes con suficiente E / S de alto rendimiento para admitir lo que necesita.
Si puedes encontrar uno de estos FPGA que puedan admitir la cantidad total de memoria que necesitas para la interfaz, ¡genial! De lo contrario, es probable que necesite usar un conmutador de paquetes PCIe de la talla de PLX o dejarlo enganchar varios FPGAs detrás de un único enlace x16 PCIe 3.0 a la máquina host. En estos FPGA, tendría que crear una instancia de las IP del controlador de memoria y desarrollar / escribir una interfaz para pasar de RAM a PCIe.
Por lo tanto, este dispositivo es técnicamente posible (el mejor tipo posible), pero sería increíblemente costoso, hambriento de energía, honestamente, no tan rápido y posiblemente tenga problemas para adaptarse a una tarjeta PCI Express de longitud completa. Recuerde que necesitaría diseñar una fuente de alimentación para alimentar el voltaje del núcleo sub-1.0V bien regulado a 10s de amperios a cada FPGA.
Esto se ha hecho en una escala más pequeña (quizás unos pocos GB de memoria) conectada a un FPGA a través de PCI Express para acelerar las aplicaciones en la nube, pero no creo que nadie lo haya llevado a la gran cantidad de memoria que desea .