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.
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.
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ì?