Procesadores de núcleo blando VS Procesadores de núcleo duro

19

Estoy haciendo un estudio sobre la interfaz FPGA con microprocesador como ARM9.

Encontré el concepto de procesadores de núcleo blando y núcleo duro en mi estudio. ¿Puedo saber cuál es la comparación entre estos 2 tipos; similitud o diferencias en la implementación?

Cómo Xing Quan
fuente

Respuestas:

19

Soft core se implementa en la estructura FPGA, mientras que Hard se implementa de la misma manera que cualquier circuito integrado mientras está conectado a la estructura FPGA. La comparación generalmente se reduce a:

Procesadores de núcleo duro: 100 de MHz hasta 1 GHz + de velocidad

  • Puede lograr velocidades de procesamiento mucho más rápidas ya que están optimizadas y no limitadas por la velocidad de la tela
  • Se corrigió y no se puede modificar (aunque puede aprovechar la lógica personalizada en el tejido FPGA para el procesamiento

Procesadores de núcleo blando: 250 MHz y menos (generalmente menos de 200 MHz)

  • Se puede modificar y ajustar fácilmente a requisitos específicos, más funciones, instrucciones personalizadas, etc.
  • Se pueden usar múltiples núcleos (a costa de los recursos)
  • Limitado por la velocidad de la tela.

En los últimos años, ha habido un gran movimiento hacia el procesador duro principalmente debido a la necesidad de un procesamiento más rápido que los núcleos blandos no pueden proporcionar. Cuando coloca un procesador de núcleo duro con el tejido FPGA, normalmente puede habilitar el procesamiento de una gran cantidad de datos, que es necesario para las aplicaciones de infraestructura de comunicación (por ejemplo, muchos GB de datos).

Gustavo Litovsky
fuente
11

Un procesador de núcleo blando es un procesador implementado utilizando el tejido FPGA.

Un procesador de núcleo duro es un procesador que en realidad se implementa físicamente como una estructura en el silicio.

Básicamente, puede agregar un procesador de núcleo blando a un sistema basado en FPGA después de que ya esté diseñado. Sin embargo, agregar un procesador de núcleo duro requiere un FPGA diferente o un chip adicional en la placa.


Se prefieren los procesadores de núcleo duro cuando sea posible porque la relación precio / potencia informática para una CPU de hardware es mucho mejor. La implementación de una CPU en el tejido FPGA requiere muchos recursos, especialmente si desea mucha potencia informática. La CPU de hardware equivalente es probablemente mucho más barata.


La CPU de hardware no solo es mucho más barata, sino que también es mucho más eficiente desde el punto de vista energético. En plataformas operadas con batería, la eficiencia es crucial para una larga vida útil de la batería. Las compuertas no utilizadas en un FPGA a veces se pueden apagar, pero generalmente hay muchos más circuitos activos en un procesador de núcleo blando que en una CPU de hardware de diseño específico. Todo ese silicio FPGA potencial consume energía.

Connor Wolf
fuente
"Hard" y "soft" también pueden referirse a la descripción del hardware utilizada y no solo a si el núcleo está implementado en la estructura (consulte "Procesadores de macro rígidos" de ARM ). Esta página de Western Design Center, Inc., proporciona un ejemplo de esto. uso: "ASIC (núcleo duro GDSII optimizado manualmente y núcleo blando Verilog RTL) y FPGA (núcleo blando Verilog RTL)". El contexto FPGA podría excluir este uso de los términos (aunque el binario blob / LUT-initialization-values ​​vs. RTL parece análogo).
Paul A. Clayton
Entonces, básicamente, soft-core = FPGA, hard-core = ASIC?
nalzok
@nalzok - Sí. Pude ver un argumento para llamar a emular una CPU en otra CPU un núcleo "blando", pero la gente simplemente llama a esa emulación en mi experiencia.
Connor Wolf