Bộ xử lý Microblaze là gì: Kiến trúc, Làm việc & Ứng dụng của nó

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Bộ xử lý MicroBlaze được phát triển vào năm 2002 để tích hợp một số tính năng phức tạp nhằm đáp ứng nhu cầu thị trường mới cũng như ngày càng tăng. Vì vậy, bộ xử lý MicroBlaze là một yếu tố cần thiết trong Danh mục đầu tư cấp thấp của Xilinx để cho phép phát triển hệ thống nhanh hơn có chứa Artix®-7 FPGA , Spartan®-6, Zynq®-7000 AP SoC. Bộ xử lý này có cấu hình cực cao, vì vậy nó có thể được sử dụng như một bộ xử lý nhúng hoặc vi điều khiển trong FPGA và cũng được sử dụng như một bộ đồng xử lý trong Zynq-7000 AP SoC dựa trên ARM Cortex-A9. Bài viết này cung cấp thông tin ngắn gọn về Bộ xử lý MicroBlaze - kiến ​​trúc và làm việc với các ứng dụng.


Bộ xử lý Microblaze là gì?

Bộ vi xử lý mềm được thiết kế chủ yếu cho FPGA của Xilinx được gọi là bộ xử lý MicroBlaze. Bộ xử lý này được thực hiện đơn giản trong bộ nhớ đa năng và kết cấu logic của FPGA của Xilinx. Bộ xử lý này tương tự như kiến ​​trúc DLX dựa trên RISC và nó có một hệ thống kết nối linh hoạt để hỗ trợ các ứng dụng nhúng khác nhau. Bus I / O chính và kết nối AXI của MicroBlaze là bus giao dịch được ánh xạ bộ nhớ với cơ sở chủ-tớ.



MicroBlaze sử dụng bus LMB chuyên dụng để truy cập bộ nhớ cục bộ và cung cấp khả năng lưu trữ trên chip nhanh chóng. Nhiều phần của bộ xử lý này có thể được cấu hình bởi người dùng như kích thước của bộ nhớ cache, độ sâu của đơn vị quản lý bộ nhớ đường ống, thiết bị ngoại vi nhúng và giao diện bus.

Tính năng microblaze

Các các tính năng của Microblaz e bao gồm những thứ sau đây. Nó có 32 thanh ghi mục đích chung.



  • Nó có các từ lệnh 32-bit bao gồm 2 chế độ định địa chỉ & 3 toán hạng.
  • Bus địa chỉ là 32-bit.
  • Nó có đường ống 3 giai đoạn hoặc đường ống 5 giai đoạn.
  • Một khối ALU với một bộ dịch chuyển.
  • Kiến trúc Harvard bao gồm dữ liệu 32-bit và bus địa chỉ.
  • Giao diện dữ liệu & LMB hoặc hướng dẫn bus bộ nhớ cục bộ.
  • Giao diện dòng AX14 và AX14.
  • Đơn vị dấu chấm động & đơn vị quản lý bộ nhớ.
  • Nó hỗ trợ bước khóa.
  • Giao diện gỡ lỗi & theo dõi.

Kiến trúc Microbaze

Sơ đồ khối của bộ xử lý MicroBlaze được hiển thị bên dưới. Bộ xử lý MicroBlaze này có khả năng tùy biến cực cao và nó hỗ trợ trên 70 tùy chọn thiết kế. Kiến trúc này hiển thị các tính năng phần cứng vĩnh viễn cũng như các tùy chọn có thể định cấu hình như Lệnh hoặc Bộ nhớ đệm dữ liệu, Đơn vị quản lý bộ nhớ, Đơn vị dấu chấm động, v.v.

Một hệ thống nhúng được lắp ráp xung quanh một bộ xử lý MicroBlaze chủ yếu bao gồm Lõi bộ xử lý mềm MicroBlaze, Bộ nhớ cục bộ trên chip, Kết nối Bus tiêu chuẩn và Thiết bị ngoại vi OPB (Bus ngoại vi trên chip). Một hệ thống bộ xử lý MicroBlaze chủ yếu bao gồm từ một lõi của bộ xử lý bởi bộ nhớ cục bộ đến một hệ thống lớn bao gồm một số MicroBlaze bộ xử lý , bộ nhớ ngoài & nhiều thiết bị ngoại vi OPB.

  Kiến trúc bộ xử lý microblaze
Kiến trúc bộ xử lý microblaze

Lõi bộ xử lý mềm

Lõi xử lý mềm của MicroBlaze là trung tâm của hệ thống nhúng MicroBlaze. Đây là bộ xử lý RISC 32-bit rất nhanh và hiệu quả có các tính năng sau.

  • Tập lệnh là Trực giao.
  • Dữ liệu và xe buýt hướng dẫn riêng biệt.
  • Thanh ghi mục đích chung 32-bit.
  • Nó có một bộ chuyển số thùng 32-bit hoàn chỉnh tùy chọn.
  • Các giao diện có sẵn với OCM hoặc bộ nhớ trên chip nhanh và OPB (Bus ngoại vi trên chip) tiêu chuẩn công nghiệp của IBM.

Việc triển khai trong Virtex-II và các thiết bị sau này hỗ trợ nhiều phần cứng.

Bộ nhớ cục bộ trên chip

Bộ nhớ đồng bộ là bộ nhớ cục bộ chủ yếu được sử dụng để cho phép khối RAM trên chip.

Kết nối xe buýt tiêu chuẩn

Các giao diện bus ở phía hướng dẫn & dữ liệu bao gồm một giao diện với bộ nhớ cục bộ được gọi là LMB (Local Memory Bus) & một giao diện cho Bus ngoại vi trên chip của IBM. Vì vậy, chúng tôi có thể thiết kế các hệ thống tuân thủ chặt chẽ kiến ​​trúc Harvard, nếu không, để chia sẻ tài nguyên, chúng tôi có thể sử dụng một OPB duy nhất trong sự kết hợp thông qua bộ phân xử xe buýt.

Bus bộ nhớ cục bộ cung cấp đường dẫn chu kỳ đơn đảm bảo cho RAM khối trên chip. Đây là một giao thức bus đơn chủ rất hiệu quả, đơn giản và nó hoàn hảo để giao tiếp bộ nhớ cục bộ nhanh. OPB hoặc Bus ngoại vi trên chip là một bus đa chủ rộng 32 bit, hoàn hảo để hợp nhất các thiết bị ngoại vi và bộ nhớ bên ngoài vào lõi của bộ xử lý MicroBlaze.

Thiết bị ngoại vi Bus ngoại vi trên chip

Hệ thống phần cứng MicroBlaze được hoàn thiện bởi các thiết bị ngoại vi OPB để cung cấp các chức năng khác nhau như Watchdog Timer hoặc Timebase, General purpose Timer hoặc Counters, IC (Interrupt Controller), các bộ điều khiển khác nhau như SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I / O mục đích chung, UART 16450/550 và Ethernet 10/100 MAC. Ngoài ra, chúng tôi cũng có thể thêm và xác định các thiết bị ngoại vi chủ yếu cho các chức năng tùy chỉnh, nếu không, một giao diện cho một thiết kế tồn tại trong FPGA.

Bộ hướng dẫn Microblaze

Các tập lệnh microblaze là số học, logic, rẽ nhánh, tải / lưu trữ và các tập hợp khác. Kích thước của tất cả các hướng dẫn là cố định. Nhiều nhất 3 thanh ghi có thể được cho dưới dạng toán hạng. Microblaze bao gồm hai định dạng hướng dẫn Loại A và Loại B được hiển thị bên dưới.

Định dạng lệnh Loại A chủ yếu được sử dụng cho các lệnh thanh ghi. Vì vậy, nó bao gồm opcode, đích duy nhất và hai thanh ghi nguồn. Định dạng lệnh loại B chủ yếu được sử dụng cho các lệnh đăng ký ngay lập tức bao gồm mã opcode, thanh ghi đích đơn và nguồn duy nhất. & Nguồn giá trị tức thời 16 bit.

  Định dạng hướng dẫn
Định dạng hướng dẫn

Trong hai định dạng lệnh trên, opcode là mã hoạt động, Rd là thanh ghi đích được mã hóa bằng 5-bit, Ra & Rb là các thanh ghi nguồn mà mỗi thanh ghi được mã hóa bằng 5-bit và ngay lập tức là giá trị 16-bit.

Hướng dẫn số học

Hướng dẫn số học Loại A và Loại B được đưa ra dưới đây.

Loại A

ADD Rd, Ra, Rb

cộng

Rd = Ra + Rb, cờ Carry bị ảnh hưởng

THÊM K Rd, Ra, Rb

Thêm và tiếp tục thực hiện

Rd = Ra + Rb, cờ Carry không bị ảnh hưởng

RSUB Rd, Ra, Rb

Đảo ngược trừ

Rd = R-Rb, cờ Carry không bị ảnh hưởng

Loại B

THÊM I Rd, Ra, Imm

thêm ngay lập tức

Rd = Ra + dấuExtend32 (Miễn dịch)

THÊM IK Rd, Ra, Imm

thêm ngay lập tức và tiếp tục mang theo

Rd = Ra + dấuExtend32 (Miễn dịch)
RSUBIK Rd, Ra, Imm

đảo ngược trừ với ngay lập tức

Rd = Ra + dấuExtend32 (Imm) -Ra

SRA Rd, Ra

chuyển số học sang phải

Rd = (Ra >> 1)

Hướng dẫn logic

Các hướng dẫn logic loại A và loại B được đưa ra dưới đây.

Loại A

HOẶC Rd, Ra, Rb

Lôgic hoặc

Rd = Ra | Rb

AND Rd, Ra, Rb

Thêm logic

Rd = Ra & Rb
XOR Rd, Ra, Rb

Xor biểu trưng

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Hợp lý và không

Rd = Ra & (Rb)

Loại B

ORI Rd, Ra, Imm

hợp lý HOẶC với ngay lập tức

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

hợp lý VÀ với ngay lập tức

Rd = Ra & signExtend32 (Imm)
XORI Rd, Ra, Imm

XOR biểu trưng với ngay lập tức

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

Hợp lý VÀ KHÔNG với ngay lập tức

Rd = Ra & (signExtend32 (Imm))

Hướng dẫn Chi nhánh- Không điều kiện

Sửa đổi đăng ký Bộ đếm chương trình

BRID Imm

chi nhánh ngay lập tức với sự chậm trễ ngay lập tức

PC = PC + signExtend32 (Miễn dịch)

cho phép thực hiện vị trí trì hoãn

BRLID Rd, Imm

nhánh và liên kết ngay lập tức với sự chậm trễ ngay lập tức (lệnh gọi hàm)

Rd = PC

PC = PC + & signExtend32 (Miễn dịch)

cho phép thực hiện vị trí trì hoãn

RTSD Ra, Imm

trở lại từ chương trình con

PC = Ra + dấuExtend32 (Miễn dịch)

cho phép thực hiện vị trí trì hoãn

RTID Ra, Imm

trở lại sau khi gián đoạn

PC = Ra + dấuExtend32 (Miễn dịch)

cho phép thực hiện vị trí trì hoãn

đặt cho phép ngắt trong MSR

Hướng dẫn nhánh- Không điều kiện1

Thay đổi thanh ghi Bộ đếm chương trình khi một điều kiện được thỏa mãn

BEQI Ra, Imm

nhánh nếu bằng nhau

PC = PC + signExtend32 (Miễn dịch)

Nếu Ra = = 0

MASH Ra, Imm

nhánh nếu không bằng

Rd = PC

PC = PC + & signExtend32 (Miễn dịch)

Nếu Ra! = 0

Hướng dẫn nhánh- Không điều kiện2

Thay đổi thanh ghi Bộ đếm chương trình khi một điều kiện được thỏa mãn

BLTI Ra, Imm

nhánh nếu thấp hơn

PC = PC + signExtend32 (Miễn dịch)

Nếu Ra <0

BLEI Ra, Imm

nhánh nếu thấp hơn bằng

Rd = PC

PC = PC + & signExtend32 (Miễn dịch)

Nếu Ra! <= 0

BGTI Ra, Imm

nhánh nếu lớn hơn

PC = PC + signExtend32 (Miễn dịch)

Nếu Ra!> 0

BGEI Ra, Imm

nhánh nếu lớn hơn bằng

PC = PC + signExtend32 (Miễn dịch)

Nếu Ra!> = 0

Hướng dẫn tải / lưu trữ - Loại A

LW Rd, Ra, Rb

Nạp từ

Địa chỉ = Ra + Rb

Rd = * Địa chỉ

SW Rd, Ra, Rb

Lưu trữ từ

Địa chỉ - Ra + Rb

* Địa chỉ = Rd

Loại B

LWI Rd, Ra, Imn

Tải từ ngay lập tức

Địa chỉ = Ra + signExtend32 (Imm)

Rd = * Địa chỉ

SW Rd, Ra, Imm

Lưu trữ từ ngay lập tức

Địa chỉ = Ra + signExtend32 (Imm)

* Địa chỉ = Rd

Hướng dẫn khác

IMM, Imm

ngay tức khắc

Mở rộng Imm của lệnh loại B trước đó thành 32-bit.
MFS Rd, Sa

Di chuyển từ thanh ghi mục đích đặc biệt

Rd = Sa

Sa- thanh ghi mục đích đặc biệt, toán hạng nguồn

MTS Sd, Ra

Di chuyển đến sổ đăng ký mục đích đặc biệt

Sd = Ra

Sd - thanh ghi mục đích đặc biệt, toán hạng đích

Đăng ký

Kiến trúc của bộ xử lý MicroBlaze hoàn toàn trực giao bao gồm các thanh ghi mục đích chung 32 bit và các thanh ghi mục đích đặc biệt 32 bit như Bộ đếm chương trình & Thanh ghi trạng thái máy.

Kiến trúc đường ống

MicroBlaze sử dụng kiến ​​trúc đường ống 3 giai đoạn bao gồm các giai đoạn tìm nạp, giải mã và hoàn thành. Tự động, việc chuyển tiếp dữ liệu, chi nhánh và đình trệ đường ống được xác định trong phần cứng.

Tải hoặc Kiến trúc cửa hàng

MicroBlaze hỗ trợ bộ nhớ ở ba kích thước dữ liệu 8 bit (Byte), 16 bit (Halfword) & 32 bit (Word). Vì vậy, các truy cập bộ nhớ luôn được căn chỉnh theo kích thước dữ liệu. Đây là bộ xử lý Big-Endian sử dụng địa chỉ của địa chỉ Big-Endian cũng như các quy ước ghi nhãn khi truy cập bộ nhớ.

Ngắt

Khi một ngắt diễn ra, bộ xử lý này sẽ kết thúc quá trình thực thi hiện tại để quản lý yêu cầu ngắt thông qua phân nhánh để ngắt địa chỉ vector & lưu trữ địa chỉ lệnh cần được thực thi. Bộ xử lý này sẽ dừng các ngắt trong tương lai bằng cách xóa cờ IE (Kích hoạt ngắt) trong MSR (Thanh ghi trạng thái máy).

Microblaze hoạt động như thế nào?

Bộ xử lý MicroBlaze hỗ trợ chiều rộng bus 32 bit và lõi bộ xử lý này là một công cụ dựa trên RISC bao gồm tệp đăng ký dựa trên RAM LUT 32 bit thông qua các lệnh riêng biệt để truy cập bộ nhớ và dữ liệu.
Bộ xử lý này chỉ hỗ trợ cả BlockRAM trên chip và bộ nhớ ngoài. Tương tự như IBM PowerPC; tất cả các thiết bị ngoại vi sử dụng bus CoreConnect OPB tương tự như vậy; các thiết bị ngoại vi của bộ xử lý được kết hợp tốt với PowerPC trên Virtex-II Pro.

Bộ xử lý MicroBlaze mang lại sự linh hoạt hoàn toàn để lựa chọn sự kết hợp của các tính năng bộ nhớ, ngoại vi và giao diện sẽ cung cấp cho bạn hệ thống chính xác mà bạn yêu cầu trên một FPGA duy nhất với chi phí thấp hơn.

Sự khác biệt B / W Microblaze Vs Risc-V

Các sự khác biệt giữa MicroBlaze và RISC v bao gồm những điều sau đây.

Tráng men vi sinh

Risc-V

Nó là một lõi vi xử lý mềm được thiết kế chủ yếu cho Xilinx FPGA.

RISC-V là một kiến ​​trúc tập lệnh bắt nguồn từ các nguyên tắc RISC.

Nó sử dụng kiến ​​trúc RISC của Harvard. Nó sử dụng kiến ​​trúc tập lệnh.
Giấy phép của nó là độc quyền (Xilinx) Giấy phép của nó là mã nguồn mở.
Độ sâu của đường ống là 3 hoặc 5. Độ sâu của đường ống là 5.
Hiệu suất của nó là 280 DMIP. Hiệu suất của nó là 250 DMIP.
Tốc độ của nó là 235 MHz. Tốc độ của nó là 250 MHz.
Nó có 1027 LUT. Nó có 4125 LUT.
Việc thực hiện công nghệ được sử dụng là Xilinx FPGA. Việc triển khai công nghệ được sử dụng là FPGA / ASIC.

Ưu điểm của microblaze

Các ưu điểm của MicroBlaze bao gồm những điều sau đây.

  • Đó là kinh tế.
  • Nó có thể cấu hình cao.
  • Hiệu suất của nó cao so với ARM.
  • Nó được hỗ trợ bởi một bộ phát triển nhúng.
  • Nó là một mềm bộ vi xử lý cốt lõi.
  • Để hỗ trợ bạn nhanh chóng sắp xếp ứng dụng của mình, bộ xử lý này bao gồm ba cấu hình cố định liên quan đến bộ vi điều khiển lớp bộ xử lý nổi tiếng, bộ xử lý thời gian thực và ứng dụng.

Ứng dụng microblaze

Các các ứng dụng của MicroBlaze bao gồm những điều sau đây.

  • Bộ xử lý này đáp ứng nhiều yêu cầu ứng dụng khác nhau như Công nghiệp, Ô tô, Y tế & Tiêu dùng, v.v.
  • Các ứng dụng của MicroBlaze bao gồm từ các máy trạng thái đơn giản dựa trên phần mềm đến các bộ điều khiển phức tạp được sử dụng trong các ứng dụng nhúng hoặc các thiết bị dựa trên Internet.
  • Nó được tối ưu hóa cho các ứng dụng nhúng như điều khiển công nghiệp, tự động hóa văn phòng và ô tô.
  • MicroBlaze có khả năng giao tiếp với một số lượng lớn các thiết bị ngoại vi để phù hợp với các ứng dụng quy mô vừa.
  • Bản chất mềm của bộ xử lý này giúp nó có thể tùy chỉnh cho các ứng dụng khác nhau, nơi các nhà thiết kế có thể trao đổi các tính năng về kích thước để đáp ứng các mục tiêu về giá cả và hiệu suất cho các ứng dụng y tế, ô tô, công nghiệp và an ninh.

Vì vậy, đây là tất cả về tổng quan về Microblaze bộ xử lý. Đây là lõi bộ xử lý mềm RISC 32-bit có thể lập trình đầy đủ tính năng. Bộ xử lý này đáp ứng các yêu cầu khác nhau trong các lĩnh vực khác nhau như thị trường cơ sở hạ tầng tiêu dùng, y tế, công nghiệp, ô tô và truyền thông. Nó rất có thể cấu hình, vì vậy được sử dụng làm bộ xử lý nhúng hoặc vi điều khiển trong FPGA, nếu không thì giống như một bộ đồng xử lý cho ARM. Đây là một câu hỏi dành cho bạn, FPGA là gì?