Microblaze 프로세서 란 무엇입니까 : 아키텍처, 작업 및 응용 프로그램

문제를 제거하기 위해 도구를 사용해보십시오





MicroBlaze 프로세서는 새롭고 증가하는 시장 수요를 충족하기 위해 여러 복잡한 기능을 통합하기 위해 2002년에 개발되었습니다. 따라서 MicroBlaze 프로세서는 Artix®-7이 포함된 더 빠른 시스템 개발을 가능하게 하는 Xilinx의 로우엔드 포트폴리오 내 필수 요소입니다. FPGA , Spartan®-6, Zynq®-7000 AP SoC. 이 프로세서는 매우 구성 가능하므로 FPGA 내에서 임베디드 프로세서 또는 마이크로 컨트롤러로 사용할 수 있으며 ARM Cortex-A9 기반 Zynq-7000 AP SoC에서 보조 프로세서로도 사용할 수 있습니다. 이 기사에서는 에 대한 간략한 정보를 제공합니다. 마이크로블레이즈 프로세서 – 아키텍처 및 애플리케이션 작업.


마이크로블레이즈 프로세서란?

주로 Xilinx의 FPGA용으로 설계된 소프트 마이크로프로세서를 MicroBlaze 프로세서라고 합니다. 이 프로세서는 Xilinx FPGA의 범용 메모리 및 로직 패브릭 내에서 간단하게 구현됩니다. 이 프로세서는 RISC 기반의 DLX 아키텍처와 유사하며 유연한 상호 연결 시스템을 갖추고 있어 다양한 임베디드 애플리케이션을 지원합니다. MicroBlaze의 메인 I/O 버스와 AXI 인터커넥트는 마스터-슬레이브 기능이 있는 메모리 매핑된 트랜잭션 버스입니다.



MicroBlaze는 전용 LMB 버스를 사용하여 로컬 메모리에 액세스하고 빠른 온칩 스토리지를 제공합니다. 이 프로세서의 많은 부분은 캐시 크기, 파이프라인 메모리 관리 장치 깊이, 임베디드 주변 장치 및 버스 인터페이스와 같이 사용자가 구성할 수 있습니다.

마이크로블레이즈 기능

그만큼 마이크로블레이즈의 특징 e는 다음을 포함합니다. 32개의 범용 레지스터가 있습니다.



  • 2개의 주소 지정 모드와 3개의 피연산자를 포함하는 32비트 명령어 워드가 있습니다.
  • 주소 버스는 32비트입니다.
  • 3단계 파이프라인 또는 5단계 파이프라인이 있습니다.
  • 시프터가 있는 ALU 블록 유닛.
  • Harvard 아키텍처는 32비트 데이터와 주소 버스를 포함합니다.
  • 데이터 인터페이스 및 LMB 또는 로컬 메모리 버스 명령.
  • AX14 및 AX14 스트림 인터페이스.
  • 부동 소수점 단위 및 메모리 관리 단위.
  • 록스텝을 지원합니다.
  • 디버그 및 추적 인터페이스.

마이크로베이즈 아키텍처

MicroBlaze 프로세서의 블록 다이어그램은 아래와 같습니다. 이 MicroBlaze 프로세서는 사용자 정의가 가능하며 70가지 이상의 설계 옵션을 지원합니다. 이 아키텍처는 명령어 또는 데이터 캐시, 메모리 관리 장치, 부동 소수점 장치 등과 같은 구성 가능한 옵션뿐만 아니라 영구적인 하드웨어 기능을 보여줍니다.

안 임베디드 시스템 MicroBlaze 프로세서 주위에 조립된 제품에는 주로 MicroBlaze Soft Processor Core, 온칩 로컬 메모리, 표준 버스 상호 연결 및 OPB 주변 장치(온칩 주변 장치 버스)가 포함됩니다. MicroBlaze 프로세서 시스템은 주로 로컬 메모리에 의한 프로세서 코어에서 여러 MicroBlaze를 포함하는 대규모 시스템에 이르기까지 다양합니다. 프로세서 , 외부 메모리 및 많은 OPB 주변 장치.

  Microblaze 프로세서 아키텍처
Microblaze 프로세서 아키텍처

소프트 프로세서 코어

MicroBlaze의 소프트 프로세서 코어는 MicroBlaze 임베디드 시스템의 핵심입니다. 이것은 다음과 같은 기능을 가진 매우 빠르고 효율적인 32비트 RISC 프로세서입니다.

  • 명령어 세트는 직교입니다.
  • 별도의 데이터 및 명령 버스.
  • 32비트 범용 레지스터.
  • 옵션으로 완전한 32비트 배럴 시프터가 있습니다.
  • 고속 OCM 또는 온칩 메모리 및 IBM의 산업 표준 OPB(온칩 주변 버스)에 대한 내장 인터페이스.

Virtex-II 및 이후 장치 내에서 구현은 하드웨어의 다중화를 지원합니다.

온칩 로컬 메모리

동기 메모리는 주로 온칩 블록 RAM을 허용하는 데 사용되는 로컬 메모리입니다.

표준 버스 상호 연결

명령 및 데이터 측의 버스 인터페이스에는 LMB(로컬 메모리 버스)라고 하는 로컬 메모리에 대한 인터페이스와 IBM의 온칩 주변 장치 버스에 대한 인터페이스가 포함됩니다. 따라서 우리는 Harvard 아키텍처에 엄격하게 충실한 시스템을 설계할 수 있습니다. 그렇지 않으면 리소스를 공유하기 위해 버스 중재자를 통해 조합 내에서 단일 OPB를 활용할 수 있습니다.

로컬 메모리 버스는 온칩 블록 RAM을 위한 확실한 단일 주기 항목을 제공합니다. 이것은 매우 효율적이고 단순하며 단일 마스터 버스 프로토콜이며 빠른 로컬 메모리 인터페이스에 적합합니다. OPB 또는 온칩 주변 장치 버스는 주변 장치 및 외부 메모리를 MicroBlaze 프로세서의 코어에 통합하는 데 완벽한 32비트 광범위한 다중 마스터 버스입니다.

온칩 주변기기 버스 주변기기

MicroBlaze 하드웨어 시스템은 워치독 타이머 또는 타임베이스, 범용 타이머 또는 카운터, IC(인터럽트 컨트롤러), SRAM, 플래시 메모리, ZBT 메모리, BRAM, DDR, SDRAM, UART Lite와 같은 다양한 컨트롤러와 같은 다양한 기능을 제공하기 위해 OPB 주변 장치로 완성됩니다. , SPI, I2C, 범용 I/O, UART 16450/550 및 이더넷 10/100 MAC. 또한 주로 사용자 정의 기능을 위한 주변 장치를 추가 및 정의할 수 있습니다. 그렇지 않으면 FPGA에 존재하는 디자인에 대한 인터페이스입니다.

Microblaze 명령어 세트

Microblaze 명령어 세트는 산술, 논리, 분기, 로드/저장 등입니다. 모든 명령어의 크기는 고정되어 있습니다. 최대 3개의 레지스터를 피연산자로 지정할 수 있습니다. Microblaze에는 아래에 표시된 두 가지 명령 형식 Type A 및 Type B가 포함되어 있습니다.

Type A 명령어 형식은 주로 레지스터 레지스터 명령어에 사용됩니다. 따라서 opcode, 단일 대상 및 2개의 소스 레지스터가 포함됩니다. 유형 B 명령 형식은 주로 opcode, 단일 대상 및 단일 소스 레지스터를 포함하는 레지스터 직접 명령에 사용됩니다. 및 16비트 즉시 값 소스.

  명령 형식
명령 형식

위의 두 명령어 형식에서 opcode는 연산 코드, Rd는 5비트로 인코딩된 대상 레지스터, Ra & Rb는 각각 5비트로 인코딩된 소스 레지스터이고 Immediate는 16비트 값입니다.

산술 명령어

유형 A 및 유형 B 산술 명령어는 다음과 같습니다.

A형

추가 Rd, Ra, Rb

추가하다

Rd = Ra+Rb, 캐리 플래그 영향

추가 K Rd, Ra, Rb

추가 및 유지

Rd = Ra+Rb, 캐리 플래그가 영향을 받지 않음

RSUB Rd, Ra, Rb

역 빼기

Rd = R-Rb, 캐리 플래그가 영향을 받지 않음

B형

추가 I Rd, Ra, Imm

즉시 추가

Rd = Ra+signExtend32(Imm)

IK Rd, Ra, Imm 추가

즉시 추가하고 휴대를 유지

Rd = Ra+ signExtend32(Imm)
RSUBIK Rd, Ra, Im

즉시로 역 빼기

Rd = Ra+ signExtend32(Imm) -Ra

SRA 로드, 라

산술 시프트 오른쪽

Rd = (Ra>>1)

논리 명령

유형 A 및 유형 B 논리 명령어는 다음과 같습니다.

A형

또는 Rd, Ra, Rb

논리적 또는

Rd = 라| Rb

그리고 Rd,Ra,Rb

논리적 추가

Rd = Ra 및 Rb
XOR 로드, 라, Rb

논리적 xor

Rd = Rb ^ Rb

ANDN 로드, 라, Rb

논리적이고 그렇지 않음

Rd = Ra & (Rb)

B형

ORI  Rd, Ra, Imm

즉각적인 논리 OR

Rd = 라 | signExtend32(임)
ANDI  Rd, Ra, Imm

즉각적인 논리 AND

Rd = Ra 및 signExtend32(Imm)
XORI 로드, 라, 임

즉각적인 XOR

Rd = Ra ^ signExtend32(Imm)

ANDNI 로드, 라, 임

논리적 AND NOT 즉시

Rd = Ra & (signExtend32(Imm))

분기 지침 - 무조건

프로그램 카운터 레지스터 수정

BRID 음

즉각적인 지연으로 즉시 분기

PC = PC+ signExtend32(Imm)

지연 슬롯 실행 허용

BRLID 로드, 임

즉시 지연으로 분기 및 링크 즉시(함수 호출)

Rd = PC

PC = PC+& signExtend32(Imm)

지연 슬롯 실행 허용

RTSD  라, 임

서브루틴에서 복귀

PC = Ra + signExtend32(Imm)

지연 슬롯 실행 허용

RID 라, 임

인터럽트에서 복귀

PC = Ra + signExtend32(Imm)

지연 슬롯 실행 허용

MSR에서 인터럽트 활성화 설정

분기 지침 - 무조건1

조건이 충족되면 프로그램 카운터 레지스터 변경

BEQI 라임

같으면 분기

PC = PC+ signExtend32(Imm)

Ra = = 0인 경우

MASH 라 임

같지 않으면 분기

Rd = PC

PC = PC+& signExtend32(Imm)

라라면! = 0

분기 지침 - 무조건2

조건이 충족되면 프로그램 카운터 레지스터 변경

BLTI 라, 임

이하인 경우 분기

PC = PC+ signExtend32(Imm)

Ra < 0인 경우

BLEI 라 임

보다 작으면 분기

Rd = PC

PC = PC+& signExtend32(Imm)

만약 라!< = 0

BGTI 라 임

보다 크면 분기

PC = PC+ signExtend32(Imm)

만약 라!> 0

BGEI 라 임

보다 크면 분기

PC = PC+signExtend32(Imm)

Ra!>= 0이면

적재/보관 지침 - 유형 A

LW 로드, 라, Rb

로드 워드

주소 = Ra+Rb

Rd = *주소

SW Rd, Ra, Rb

단어 저장

주소 – Ra+Rb

*주소 = Rd

B형

LWI Rd, Ra, Imn

즉시 단어 로드

주소 = Ra + signExtend32(Imm)

Rd = *주소

SW 로드, 라, 임

즉시 단어 저장

주소 = Ra + signExtend32(Imm)

*주소 = Rd

기타 지침

임마 임마

즉각적인

이전 유형 B 명령어의 Imm를 32비트로 확장합니다.
MFS 로드, 사

특수 목적 레지스터에서 이동

Rd = 사

Sa- 특수 목적 레지스터, 소스 피연산자

MTS SD, 라

특수 목적 레지스터로 이동

SD = 라

Sd – 특수 목적 레지스터, 대상 피연산자

레지스터

MicroBlaze 프로세서의 아키텍처는 32비트 범용 레지스터 및 프로그램 카운터 및 기계 상태 레지스터와 같은 32비트 특수 목적 레지스터를 포함하는 완전히 직교합니다.

파이프라인 아키텍처

MicroBlaze는 가져오기, 디코딩 및 완료 단계를 포함하는 3단계 파이프라인 아키텍처를 활용합니다. 자동으로 데이터 전달, 분기 및 파이프라인 지연이 하드웨어 내에서 결정됩니다.

아키텍처 로드 또는 저장

MicroBlaze는 8비트(바이트), 16비트(하프워드) 및 32비트(워드)의 세 가지 데이터 크기로 메모리를 지원합니다. 따라서 메모리 액세스는 항상 데이터 크기로 정렬됩니다. 이것은 Big-Endian 주소의 주소를 사용하고 메모리에 액세스하면 레이블 지정 규칙을 사용하는 Big-Endian 프로세서입니다.

인터럽트

인터럽트가 발생하면 이 프로세서는 인터럽트 벡터 주소로 분기하여 인터럽트 요청을 관리하고 실행해야 하는 명령 주소를 저장하기 위해 현재 실행을 종료합니다. 이 프로세서는 MSR(Machine Status Register) 내의 IE(Interrupt Enable) 플래그를 지워 향후 인터럽트를 중지합니다.

Microblaze는 어떻게 작동합니까?

MicroBlaze 프로세서는 32비트 버스 폭을 지원하며 이 프로세서 코어는 메모리 및 데이터 액세스를 위한 별도의 명령을 통해 32비트 LUT RAM 기반 레지스터 파일을 포함하는 RISC 기반 엔진입니다.
이 프로세서는 온칩 BlockRAM과 외부 메모리를 모두 지원합니다. IBM PowerPC와 유사합니다. 모든 주변 장치는 유사한 CoreConnect OPB 버스를 사용하므로; 프로세서의 주변 장치는 Virtex-II Pro의 PowerPC와 잘 어울립니다.

MicroBlaze 프로세서는 메모리, 주변 장치 및 인터페이스 기능의 조합을 선택할 수 있는 완벽한 유연성을 제공하여 단일 FPGA에서 더 적은 비용으로 필요한 정확한 시스템을 제공합니다.

차이점 B/W Microblaze 대 Risc-V

그만큼 MicroBlaze와 RISC v의 차이점 다음을 포함합니다.

마이크로블레이즈

Risc-V

주로 Xilinx FPGA용으로 설계된 소프트 마이크로프로세서 코어입니다.

RISC-V는 RISC 원칙에 기반을 둔 명령어 세트 아키텍처입니다.

하버드 RISC 아키텍처를 사용합니다. 명령어 세트 아키텍처를 사용합니다.
라이센스는 독점입니다(Xilinx). 라이센스는 오픈 소스입니다.
파이프라인의 깊이는 3 또는 5입니다. 파이프라인의 깊이는 5입니다.
성능은 280DMIP입니다. 성능은 250DMIP입니다.
속도는 235MHz입니다. 속도는 250MHz입니다.
1027개의 LUT가 있습니다. 4125개의 LUT가 있습니다.
사용된 기술의 구현은 Xilinx FPGA입니다. 사용된 기술의 구현은 FPGA/ASIC입니다.

마이크로블레이즈의 장점

그만큼 MicroBlaze의 장점 다음을 포함합니다.

  • 경제적입니다.
  • 그것은 고도로 구성 가능합니다.
  • ARM에 비해 성능이 높다.
  • 임베디드 개발 키트에서 지원됩니다.
  • 그것은 부드러운 마이크로프로세서 핵심.
  • 애플리케이션을 신속하게 정렬할 수 있도록 이 프로세서에는 잘 알려진 프로세서 클래스 마이크로컨트롤러, 실시간 및 애플리케이션 프로세서와 관련된 세 가지 고정 구성이 포함되어 있습니다.

마이크로블레이즈 애플리케이션

그만큼 MicroBlaze의 응용 다음을 포함합니다.

  • 이 프로세서는 산업, 자동차, 의료 및 소비자 등과 같은 다양한 애플리케이션 요구 사항을 충족합니다.
  • MicroBlaze의 애플리케이션은 소프트웨어 기반의 단순한 상태 머신에서 임베디드 애플리케이션 또는 인터넷 기반 기기에 사용되는 복잡한 컨트롤러에 이르기까지 다양합니다.
  • 산업 제어, 사무 자동화 및 자동차와 같은 임베디드 애플리케이션에 최적화되어 있습니다.
  • MicroBlaze는 중간 규모 애플리케이션에 적합한 대규모 주변 장치 세트와 통신할 수 있습니다.
  • 이 프로세서의 부드러운 특성으로 인해 설계자가 의료, 자동차, 산업 및 보안 응용 프로그램의 가격 및 성능 목표를 충족하기 위해 크기에 대한 기능을 교환할 수 있는 다양한 응용 프로그램에 맞게 사용자 지정할 수 있습니다.

따라서 이것은 모든 것에 관한 것입니다. Microblaze 개요 프로세서. 이것은 완전한 기능을 갖춘 32비트 프로그래밍 가능 RISC 소프트 프로세서 코어입니다. 이 프로세서는 소비자, 의료, 산업, 자동차 및 통신 인프라 시장과 같은 다양한 분야의 다양한 요구 사항을 충족합니다. 매우 구성이 가능하므로 FPGA 내에서 임베디드 프로세서 또는 마이크로컨트롤러로 사용됩니다. 그렇지 않으면 ARM용 코프로세서와 같습니다. FPGA란 무엇입니까?