마이크로블레이즈
MicroBlaze디자이너 | 시린스 |
---|---|
비트 | 32비트/64비트(32→64) |
버전 | 11.0 |
설계. | RISC |
부호화 | 고정된. |
엔디안니스 | 작은(큰) |
열다. | 아니요. |
레지스터 | |
32 x 32 비트 |
MicroBlaze는 Xilinx Field-Programmable Gate Array(FPGA)용으로 설계된 소프트 마이크로프로세서 코어입니다.소프트 코어 프로세서로서 MicroBlaze는 Xilinx FPGA의 범용 메모리 및 로직 패브릭에 모두 실장되어 있습니다.
MicroBlaze는 [1]2002년에 도입되었습니다.
개요
명령어 세트 아키텍처의 관점에서 MicroBlaze는 Patterson과 Hennessy의 인기 있는 컴퓨터 아키텍처 책에 기술된 RISC 기반 DLX 아키텍처와 유사합니다.몇 가지 예외를 제외하고 MicroBlaze는 사이클마다 새로운 명령을 발행하여 대부분의 상황에서 단일 사이클 처리량을 유지할 수 있습니다.
MicroBlaze는 다양한 임베디드 애플리케이션을 지원하는 범용 인터커넥트 시스템을 갖추고 있습니다.MicroBlaze의 기본 I/O 버스인 AXI 인터커넥트는 마스터-슬레이브 기능을 갖춘 시스템 메모리 매핑 트랜잭션 버스입니다.이전 버전의 MicroBlaze에서는 CoreConnect PLB 버스를 사용했습니다.벤더가 제공하는 서드파티제의 IP 인터페이스의 대부분은 직접(또는 AXI 인터커넥트를 통해) AXI에 접속합니다.로컬 메모리(FPGA RAM)에 액세스하기 위해 MicroBlaze는 고속 온칩 스토리지를 제공하는 전용 LMB 버스를 사용합니다.사용자 정의 코프로세서는 전용 AXI4-Stream 연결을 통해 지원됩니다.코프로세서 인터페이스는 사용자가 설계한 하드웨어 모듈에 연산 부분 또는 전체를 오프로드함으로써 연산 부하가 높은 알고리즘을 고속화할 수 있습니다.
MicroBlaze는 캐시 크기, 파이프라인 깊이(3단계, 5단계 또는 8단계), 임베디드 주변기기, 메모리 관리 유닛 및 버스 인터페이스를 사용자 설정할 수 있습니다.3단계 파이프라인을 사용하는 MicroBlaze의 영역 최적화 버전은 로직 영역을 줄이기 위해 클럭 주파수를 희생합니다.퍼포먼스에 최적화된 버전은 실행 파이프라인을 5단계로 확장하여 700MHz 이상의 최고 속도를 실현합니다(Virtex UltraScale+ FPGA 패밀리).또, 거의 사용되지 않지만, 하드웨어에 실장하는 데 비용이 많이 드는 키 프로세서의 명령어는 선택적으로 추가/삭제할 수 있습니다(예: 곱하기, 분할, 부동소수점 연산).이 커스터마이즈를 통해 개발자는 특정 호스트 하드웨어 및 애플리케이션 소프트웨어 요건에 대해 적절한 설계 균형을 맞출 수 있습니다.
메모리 관리 유닛을 통해 MicroBlaze는 Linux 커널과 같은 하드웨어 기반 페이징 및 보호가 필요한 운영 체제를 호스팅할 수 있습니다.그 이외의 경우는, 보호 기능이 심플한 operating system과 가상 메모리 모델(MMU 를 서포트하지 않는 FreeRTOS 나 Linux 등)에 한정됩니다.MicroBlaze의 전체적인 throughput은 동등한 하드 CPU 코어(Zynq의 ARM Cortex-A9 등)보다 상당히 낮습니다.
비바도
Xilinx의 Vivado Design Suite는 Xilinx FPGA에서 현재 MicroBlaze(ARM - Zynq 참조) 내장 프로세서 시스템을 구축하기 위한 개발 환경입니다.이전 버전은 Xilinx의 EDK(Embedded Development Kit) 개발 패키지를 사용했습니다.
설계자는 Vivado IP Integrator를 사용하여 임베디드 시스템(프로세서 코어, 메모리 컨트롤러, I/O 주변기기 등)의 하드웨어 사양을 구성하고 구축합니다.IP Integrator는 설계자의 블록 설계를 합성 가능한 RTL 설명(Verilog 또는 VHDL)으로 변환하고 임베디드 시스템의 구현을 자동화합니다(RTL에서 비트스트림 파일로).MicroBlaze 코어의 경우 Vivado는 암호화된(사람이 읽을 수 없는) 넷 리스트를 생성합니다.
SDK는 임베디드 시스템에서 실행되는 소프트웨어를 처리합니다.GNU 툴 체인(GNU 컴파일러 컬렉션, GNU 디버거)에 의해 제공되는 SDK는 프로그래머가 임베디드 시스템에 대해 C/C++ 애플리케이션을 작성, 컴파일 및 디버깅할 수 있도록 합니다.Xilinx의 툴은 시뮬레이션을 통해 소프트웨어를 실행하거나 적절한 FPGA 보드를 사용하여 실제 시스템에서 다운로드 및 실행할 수 있습니다.
Vivado 구매자는 Xilinx FPGA에서 MicroBlaze를 사용할 수 있는 영구 라이선스를 받을 수 있으며 로열티를 받지 않습니다.라이선스는 Xilinx의 기기 이외에서 MicroBlaze를 사용할 권리를 부여하지 않습니다.
Altium에서는 대체 컴파일러와 개발 도구를 이용할 수 있지만 EDK 설치와 라이선스는 여전히 필요합니다.
오픈 소스
2009년 6월에 MicroBlaze는 메인라인 Linux 커널 소스 트리에 통합된 최초의 소프트 CPU 아키텍처가 되었습니다.이 작업은 Michal Simek에 의해 수행되었으며 Peta Logix와 Xilinx에 의해 지원되었습니다.
2009년 9월 현재 MicroBlaze GNU 툴 지원은 Free Software Foundation의 메인라인 저장소에도 기여하고 있습니다.MicroBlaze 지원은 버전 4.6[2] 이후 GCC 릴리즈에 포함되어 있습니다.
2010년 [3]4월에 LLVM에 지원이 추가되었지만 유지보수가 부족하여 2013년 7월에 지원이[4] 해제되었습니다.
클론
- eMB, Verilog에서 구현, LGPL 라이선스
- OpenFire 서브셋, Verilog, MIT 라이선스로 구현
- MB-Lite, VHDL, LGPL 라이선스로 구현
- MB-Lite+, VHDL, LGPL 라이선스로 구현
- MyBlaze, MyHDL, LGPL 라이선스로 구현
- SecretBlaze, VHDL, GPL 라이선스로 구현
기타 소프트 프로세서
- 니오스 2세
- TSK3000
- Xtensa
- 래티스미코32
- 아아크
- RISC-V(많은 오픈소스 소프트코어를 사용할 수 있습니다.적어도 1개는 Vivado용으로 패키지화되어 있습니다.)
- ARM_Cortex-M(Cortex-M1 및 Cortex-M3 소프트코어는 Vivado에서 사용 가능)
「 」를 참조해 주세요.
- OpenCores - 많은 오픈 소스 소프트 프로세서 프로젝트의 본거지
- 피코블레이즈
- 고급 마이크로컨트롤러 버스 아키텍처 © 고급 eXtensible 인터페이스 (AXI)
레퍼런스
- ^ Xilinx (August 21, 2002). "MicroBlaze RISC 32-Bit Soft Processor datasheet" (PDF).
- ^ "GCC 4.6 Release Series Changes, New Features, and Fixes". 2011-03-15. Retrieved 2011-03-15.
Support has been added for the Xilinx MicroBlaze softcore processor (microblaze-elf) embedded target.
- ^ "LLVM 2.7 Release Notes". releases.llvm.org. Retrieved 2019-04-07.
- ^ Christopher, Eric (2013-07-24). "[LLVMdev] Deprecating and removing the MBlaze backend". Retrieved 2019-04-07.