리눅스에서 no-mmu 버전을 실행할 수있는 교과서 32 비트 RISC 프로세서 코어는 실제로 클 필요는 없습니다. 필요한 실제 리소스는 FPGA에서 사용할 수있는 것보다 훨씬 많은 RAM (10MB)입니다. 아마도 보드의 SDRAM과 FPGA의 컨트롤러를 원할 것입니다.
즉, 사소한 수준의 성능 이상을 원한다면 최적화 (파이프 라이닝 등)가있는 코어를 원할 것이고 크기가 다소 증가하기 시작합니다. 전체 mmu를 추가하면 메모리 (재) 할당이보다 효율적이되고 일반적인 copy-on-write fork () 동작이 활성화됩니다.
주요 FPGA 벤더들 모두 리눅스 포트가있는 소프트 프로세서 코어를 가지고있다-Xilinx를위한 Microblaze, Altera를위한 Nios II. 물론 특정 플랫폼 권장 사항은 시간이 지남에 따라 이동하는 대상이므로 해당 문서를 읽어보십시오. 타사 핵심 설계는보다 편리한 방식으로 작성되고 특정 FPGA 제품군에 맞게 최적화되지 않은 경우 유사한 성능을 위해 다소 더 클 수 있습니다.
역사적으로 하드 프로세서 코어 (종종 powerpc)와 구성 가능한 FPGA 패브릭 영역을 결합한 칩이있었습니다. 살펴볼 또 다른 옵션은 FPGA와 동일한 보드에서 별도의 프로세서 (예 : ARM)입니다.
결정은 프로세서와 FPGA를 얼마나 밀접하게 연결해야하는지에 달려 있습니다. 구성 레지스터와 데이터 스트림에 대한 문제를 줄일 수 있다면 BeagleBoard 또는 RasberryPi와 같은 임베디드 리눅스 보드의 USB 호스트 포트에 빠른 USB 칩이있는 FPGA 보드를 걸 수있는 것처럼 모듈식이 될 수 있습니다. 보다 긴밀한 통합을 위해 FPGA를 동일한 보드에 놓고 프로세서의 외부 버스에 배치 할 수 있습니다. 또는 낮은 데이터 속도의 경우 SPI 레지스터 인터페이스를 FPGA에 배치하는 것이 쉽지 않으며 UART 인터페이스는 약간 까다 롭지 만 완전히 수행 할 수 있습니다.
마지막으로, 실제로 리눅스와 같은 전체 운영 체제가 필요하거나 더 "마이크로 컨트롤러 크기"의 내장 TCP 스택이 메모리를 적게 사용하면서 문제를 해결할 수 있는지에 대한 의문이 있습니다.