Microblaze Processor คืออะไร : สถาปัตยกรรม การทำงาน และการใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





โปรเซสเซอร์ MicroBlaze ได้รับการพัฒนาในปี 2545 เพื่อรวมคุณสมบัติที่ซับซ้อนหลายอย่าง เพื่อตอบสนองความต้องการของตลาดใหม่ที่เพิ่มขึ้น ดังนั้น โปรเซสเซอร์ MicroBlaze จึงเป็นองค์ประกอบสำคัญภายใน Low-End Portfolio ของ Xilinx เพื่อให้สามารถพัฒนาระบบได้เร็วขึ้น ซึ่งประกอบด้วย Artix®-7 FPGAs , Spartan®-6, Zynq®-7000 AP SoC โปรเซสเซอร์นี้สามารถกำหนดค่าได้อย่างมาก ดังนั้นจึงสามารถใช้เป็นโปรเซสเซอร์แบบฝังหรือไมโครคอนโทรลเลอร์ภายใน FPGA และยังใช้เป็นโปรเซสเซอร์ร่วมใน Zynq-7000 AP SoC ที่ใช้ ARM Cortex-A9 บทความนี้ให้ข้อมูลสั้น ๆ เกี่ยวกับ โปรเซสเซอร์ MicroBlaze – สถาปัตยกรรมและการทำงานกับแอปพลิเคชัน


โปรเซสเซอร์ Microblaze คืออะไร?

ไมโครโปรเซสเซอร์แบบนิ่มซึ่งออกแบบมาสำหรับ FPGA ของ Xilinx เป็นหลักเรียกว่าโปรเซสเซอร์ MicroBlaze โปรเซสเซอร์นี้ใช้งานได้ง่ายภายในหน่วยความจำและแฟบริคตรรกะทั่วไปของ FPGA ของ Xilinx โปรเซสเซอร์นี้คล้ายกับสถาปัตยกรรม DLX ที่ใช้ RISC และมีระบบเชื่อมต่อที่ยืดหยุ่นเพื่อรองรับแอพพลิเคชั่นฝังตัวที่แตกต่างกัน บัส I/O หลักและการเชื่อมต่อระหว่าง AXI ของ MicroBlaze เป็นบัสธุรกรรมที่แมปหน่วยความจำพร้อมสิ่งอำนวยความสะดวกมาสเตอร์ทาส



MicroBlaze ใช้บัส LMB เฉพาะเพื่อเข้าถึงหน่วยความจำในเครื่องและให้การจัดเก็บข้อมูลบนชิปที่รวดเร็ว ผู้ใช้สามารถปรับแต่งส่วนต่างๆ ของโปรเซสเซอร์นี้ได้ เช่น ขนาดของแคช ความลึกของหน่วยจัดการหน่วยความจำไปป์ไลน์ อุปกรณ์ต่อพ่วงแบบฝังและอินเทอร์เฟซบัส

คุณสมบัติของไมโครเบลซ

ดิ คุณสมบัติของ Microblaz e รวมสิ่งต่อไปนี้ มีทะเบียนเอนกประสงค์ 32 อัน



  • มีคำสั่งคำสั่งแบบ 32 บิต รวมถึงโหมดการกำหนดแอดเดรส 2 โหมดและตัวถูกดำเนินการ 3 ตัว
  • แอดเดรสบัสเป็นแบบ 32 บิต
  • มีไปป์ไลน์ 3 ขั้นตอนหรือไปป์ไลน์ 5 ขั้นตอน
  • หน่วยบล็อก ALU พร้อมตัวเปลี่ยนเกียร์
  • สถาปัตยกรรมฮาร์วาร์ดประกอบด้วยบัสข้อมูลและแอดเดรส 32 บิต
  • อินเทอร์เฟซข้อมูล & LMB หรือคำสั่งบัสหน่วยความจำภายใน
  • อินเตอร์เฟสสตรีม AX14 และ AX14
  • หน่วยจุดลอยตัวและหน่วยจัดการหน่วยความจำ
  • รองรับการล็อกสเต็ป
  • ดีบักและติดตามอินเทอร์เฟซ

สถาปัตยกรรม Microbaze

บล็อกไดอะแกรมของโปรเซสเซอร์ MicroBlaze แสดงอยู่ด้านล่าง โปรเซสเซอร์ MicroBlaze นี้สามารถปรับแต่งได้อย่างมากและสนับสนุนตัวเลือกการออกแบบมากกว่า 70 แบบ สถาปัตยกรรมนี้แสดงคุณสมบัติของฮาร์ดแวร์แบบถาวร เช่นเดียวกับตัวเลือกที่กำหนดค่าได้ เช่น Instruction หรือ Data Cache, Memory Management Unit, Floating Point Unit เป็นต้น

หนึ่ง ระบบฝังตัว การประกอบรอบโปรเซสเซอร์ MicroBlaze ส่วนใหญ่ประกอบด้วย MicroBlaze Soft Processor Core, On-chip Local Memory, Standard Bus Interconnects และอุปกรณ์ต่อพ่วง OPB (On-chip Peripheral Bus) ระบบโปรเซสเซอร์ MicroBlaze ส่วนใหญ่มีตั้งแต่คอร์ของโปรเซสเซอร์โดยหน่วยความจำภายในไปจนถึงระบบขนาดใหญ่รวมถึง MicroBlaze หลายตัว โปรเซสเซอร์ , หน่วยความจำภายนอกและอุปกรณ์ต่อพ่วง OPB มากมาย

  สถาปัตยกรรมโปรเซสเซอร์ Microblaze
สถาปัตยกรรมโปรเซสเซอร์ Microblaze

ซอฟต์โปรเซสเซอร์คอร์

คอร์โปรเซสเซอร์ที่อ่อนนุ่มของ MicroBlaze เป็นศูนย์กลางของระบบฝังตัวของ MicroBlaze นี่คือโปรเซสเซอร์ RISC แบบ 32 บิตที่เร็วและมีประสิทธิภาพมาก ซึ่งมีคุณสมบัติดังต่อไปนี้

  • ชุดคำสั่งเป็นแบบมุมฉาก
  • แยกข้อมูลและบัสคำสั่ง
  • รีจิสเตอร์เอนกประสงค์ 32 บิต
  • มีตัวเปลี่ยนบาร์เรลแบบ 32 บิตแบบสมบูรณ์ซึ่งเป็นอุปกรณ์เสริม
  • อินเทอร์เฟซในตัวเพื่อ OCM หรือหน่วยความจำบนชิปที่รวดเร็วและ OPB มาตรฐานอุตสาหกรรมของ IBM (On-chip Peripheral Bus)

การนำไปใช้งานภายใน Virtex-II และอุปกรณ์หลังจากนั้นจะรองรับฮาร์ดแวร์หลายตัว

หน่วยความจำในเครื่องบนชิป

หน่วยความจำแบบซิงโครนัสเป็นหน่วยความจำในเครื่องที่ใช้เป็นหลักในการอนุญาตบล็อกแรมบนชิป

มาตรฐานการเชื่อมต่อระหว่างบัส

อินเทอร์เฟซบัสที่ฝั่งคำสั่งและข้อมูลรวมถึงอินเทอร์เฟซไปยังหน่วยความจำภายในซึ่งเรียกว่า LMB (Local Memory Bus) และอินเทอร์เฟซไปยัง On-chip Peripheral Bus ของ IBM ดังนั้นเราจึงสามารถออกแบบระบบที่ยึดติดกับสถาปัตยกรรมของฮาร์วาร์ดอย่างเคร่งครัด มิฉะนั้น ในการแบ่งปันทรัพยากร เราสามารถใช้ OPB เดียวที่รวมกันผ่านตัวชี้ขาดของบัสได้

บัสหน่วยความจำภายในช่วยให้มั่นใจได้ว่าจะเข้ารอบเดียวสำหรับ RAM บล็อกบนชิป นี่เป็นโปรโตคอลบัสหลักที่มีประสิทธิภาพมาก เรียบง่าย และเป็น single-master และเหมาะอย่างยิ่งสำหรับการเชื่อมต่อหน่วยความจำภายในที่รวดเร็ว OPB หรือ On-chip Peripheral Bus เป็นบัสมัลติมาสเตอร์แบบกว้าง 32 บิต ที่สมบูรณ์แบบสำหรับการรวมอุปกรณ์ต่อพ่วงและหน่วยความจำภายนอกเข้ากับแกนกลางของโปรเซสเซอร์ MicroBlaze

อุปกรณ์ต่อพ่วงบัสบนชิป

ระบบฮาร์ดแวร์ MicroBlaze เสร็จสมบูรณ์โดยอุปกรณ์ต่อพ่วง OPB เพื่อให้ฟังก์ชันต่างๆ เช่น Watchdog Timer หรือ Timebase, General purpose Timer or Counters, IC (Interrupt Controller), ตัวควบคุมต่างๆ เช่น SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I/O วัตถุประสงค์ทั่วไป, UART 16450/550 และ Ethernet 10/100 MAC นอกจากนี้ เรายังสามารถเพิ่มและกำหนดอุปกรณ์ต่อพ่วงสำหรับฟังก์ชันแบบกำหนดเองเป็นหลัก มิฉะนั้น อินเทอร์เฟซไปยังการออกแบบที่มีอยู่ใน FPGA

ชุดคำสั่งไมโครเบลซ

ชุดคำสั่ง Microblaze ได้แก่ เลขคณิต ลอจิก แบรนช์ โหลด/จัดเก็บ และอื่นๆ ขนาดของคำแนะนำทั้งหมดได้รับการแก้ไขแล้ว สามารถกำหนดให้มีการลงทะเบียนมากที่สุด 3 รายการเป็นตัวถูกดำเนินการ Microblaze ประกอบด้วยรูปแบบคำสั่งสองรูปแบบ Type A และ Type B ซึ่งแสดงอยู่ด้านล่าง

รูปแบบคำสั่งประเภท A ส่วนใหญ่จะใช้สำหรับขั้นตอนการลงทะเบียน-การลงทะเบียน ดังนั้นจึงรวม opcode ปลายทางเดียว & สองรีจิสเตอร์ต้นทาง รูปแบบคำสั่ง Type B ส่วนใหญ่จะใช้สำหรับคำสั่ง register-immediate ซึ่งรวมถึง opcode, single destination และ single source registers และแหล่งค่า 16 บิตทันที

  รูปแบบการสอน
รูปแบบการสอน

ในรูปแบบคำสั่งสองรูปแบบข้างต้น opcode คือรหัสการทำงาน Rd คือการลงทะเบียนปลายทางที่เข้ารหัสด้วย 5 บิต Ra & Rb เป็นรีจิสเตอร์ต้นทางซึ่งแต่ละอันเข้ารหัสด้วย 5 บิตและทันทีเป็นค่า 16 บิต

คำแนะนำเลขคณิต

คำแนะนำทางคณิตศาสตร์ประเภท A และประเภท B แสดงไว้ด้านล่าง

พิมพ์ A

ADD Rd, Ra, Rb

เพิ่ม

Rd = Ra+Rb, ติดธงติดตัว

ADD K Rd, Ra, Rb

เพิ่มและพกพา

Rd = Ra+Rb ไม่กระทบธงแครี่

RSUB Rd, Ra, Rb

ย้อนกลับการลบ

Rd = R-Rb ไม่กระทบธงแครี่

ประเภท B

ADD I Rd, Ra, Imm

เพิ่มทันที

ถนน = Ra+signExtend32 (Imm)

ADD IK Rd, Ra, Imm

เพิ่มทันทีและดำเนินการต่อไป

ถนน = Ra+ signExtend32 (Imm)
RSUBIK Rd, Ra, Imm

ย้อนกลับการลบด้วยทันที

ถนน = Ra+ signExtend32 (Imm) -Ra

SRA Rd, รา

เลื่อนเลขคณิตไปทางขวา

ถ. = (รา>>1)

คำแนะนำเชิงตรรกะ

คำแนะนำตรรกะประเภท A และประเภท B แสดงไว้ด้านล่าง

พิมพ์ A

OR Rd, Ra, Rb

ตรรกะหรือ

ถ. = รา| Rb

AND Rd,Ra,Rb

บวกตรรกะ

ถนน = Ra & Rb
XOR Rd, Ra, Rb

โลโก้ xor

ถนน = Rb ^ Rb

ANN Rd, Ra, Rb

ตรรกะและไม่

ถนน = Ra & (Rb)

ประเภท B

ORI  Rd, Ra, Imm

ตรรกะ OR ทันที

ถ. = รา | signExtend32 (Imm)
ANDI  Rd, Ra, Imm

ตรรกะและทันที

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

โลโก้ XOR พร้อมทันที

ถนน = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, อิม

ตรรกะและไม่ได้ทันที

ถนน = Ra & (signExtend32 (Imm))

คำแนะนำสาขา- ไม่มีเงื่อนไข

แก้ไขโปรแกรมเคาน์เตอร์ลงทะเบียน

บริด อิม

สาขาทันที ล่าช้าทันที

PC = PC+ signExtend32 (Imm)

อนุญาตให้ดำเนินการสล็อตล่าช้า

BRLID Rd, อิม

สาขาและเชื่อมโยงทันทีด้วยความล่าช้าทันที (การเรียกใช้ฟังก์ชัน)

ถนน = PC

PC = PC+& signExtend32 (Imm)

อนุญาตให้ดำเนินการสล็อตล่าช้า

RTSD  รา อิม

กลับจากรูทีนย่อย

PC = Ra + signExtend32 (Imm)

อนุญาตให้ดำเนินการสล็อตล่าช้า

RTID รา Imm

กลับจากการขัดจังหวะ

PC = Ra + signExtend32 (Imm)

อนุญาตให้ดำเนินการสล็อตล่าช้า

ตั้งค่าเปิดใช้งานการขัดจังหวะใน MSR

คำแนะนำสาขา- ไม่มีเงื่อนไข1

เปลี่ยนโปรแกรม Counter register เมื่อเข้าเงื่อนไข

BEQI รา Imm

สาขาถ้าเท่ากัน

PC = PC+ signExtend32 (Imm)

ถ้า Ra = = 0

MASH Ra, อิม

สาขาถ้าไม่เท่ากัน

ถนน = PC

PC = PC+& signExtend32 (Imm)

ถ้ารา! = 0

คำแนะนำสาขา- ไม่มีเงื่อนไข2

เปลี่ยนโปรแกรม Counter register เมื่อเข้าเงื่อนไข

BLTI  รา, อิม

สาขาถ้าต่ำกว่า

PC = PC+ signExtend32 (Imm)

ถ้ารา < 0

BLEI Ra, อิม

สาขาถ้าต่ำกว่า

ถนน = PC

PC = PC+& signExtend32 (Imm)

ถ้า Ra!< = 0

บีจีที รา Imm

สาขาถ้ามากกว่า

PC = PC+ signExtend32 (Imm)

ถ้ารา!> 0

บีจี รา อิม

สาขาถ้ามากกว่าเท่ากับ

PC = PC+signExtend32 (Imm)

ถ้ารา!>= 0

คำแนะนำในการโหลด/จัดเก็บ -ประเภท A

LW Rd, Ra, Rb

โหลดคำ

ที่อยู่ = Ra+Rb

ถนน = *ที่อยู่

SW Rd, Ra, Rb

จัดเก็บ  คำ

ที่อยู่ – Ra+Rb

*ที่อยู่ = ถ.

ประเภท B

LWI  Rd, Ra, Im

โหลดคำทันที

ที่อยู่ = Ra + signExtend32 (Imm)

ถนน = *ที่อยู่

SW Rd, Ra, อิม

จัดเก็บ  คำทันที

ที่อยู่ = Ra + signExtend32 (Imm)

*ที่อยู่ = ถ.

คำแนะนำอื่นๆ

IMM, Imm

ทันที

ขยาย Imm ของคำสั่งประเภท B ก่อนหน้าเป็น 32 บิต
MFS Rd, สา

ย้ายจากทะเบียนวัตถุประสงค์พิเศษ

ถ. = สา

สา- ทะเบียนวัตถุประสงค์พิเศษตัวถูกดำเนินการต้นทาง

MTS Sd, รา

ย้ายไปที่ทะเบียนวัตถุประสงค์พิเศษ

Sd = รา

Sd – ทะเบียนวัตถุประสงค์พิเศษ, ตัวถูกดำเนินการปลายทาง

ทะเบียน

สถาปัตยกรรมของโปรเซสเซอร์ MicroBlaze เป็นแบบมุมฉากทั้งหมด ซึ่งรวมถึงรีจิสเตอร์เอนกประสงค์ 32 บิต และรีจิสเตอร์พิเศษ 32 บิต เช่น โปรแกรมเคาน์เตอร์ & การลงทะเบียนสถานะเครื่อง

สถาปัตยกรรมไปป์ไลน์

MicroBlaze ใช้สถาปัตยกรรมไปป์ไลน์ 3 ขั้นตอนรวมถึงการดึงข้อมูล ถอดรหัส และขั้นตอนที่สมบูรณ์ โดยอัตโนมัติ การส่งต่อข้อมูล สาขาและแผงลอยของไปป์ไลน์จะถูกกำหนดภายในฮาร์ดแวร์

โหลดหรือจัดเก็บสถาปัตยกรรม

MicroBlaze รองรับหน่วยความจำในข้อมูลสามขนาด 8 บิต (ไบต์) 16 บิต (ครึ่งคำ) และ 32 บิต (Word) ดังนั้น การเข้าถึงหน่วยความจำจะถูกจัดชิดขนาดข้อมูลเสมอ นี่คือโปรเซสเซอร์ Big-Endian ซึ่งใช้ที่อยู่ของที่อยู่ Big-Endian รวมถึงข้อตกลงการติดฉลากเมื่อเข้าถึงหน่วยความจำ

อินเตอร์รัปต์

เมื่อมีการขัดจังหวะ โปรเซสเซอร์นี้จะยุติการดำเนินการปัจจุบันเพื่อจัดการคำขอขัดจังหวะผ่านการแตกสาขาเพื่อขัดจังหวะที่อยู่เวกเตอร์และเก็บที่อยู่คำสั่งที่จำเป็นต้องดำเนินการ โปรเซสเซอร์นี้จะหยุดการขัดจังหวะในอนาคตโดยล้างแฟล็ก IE (Interrupt Enable) ภายใน MSR (Machine Status Register)

Microblaze ทำงานอย่างไร?

โปรเซสเซอร์ MicroBlaze รองรับความกว้างบัส 32 บิต และคอร์ของโปรเซสเซอร์นี้เป็นเอ็นจิ้นที่ใช้ RISC ซึ่งรวมถึงไฟล์รีจิสเตอร์ที่ใช้ LUT RAM 32 บิต ผ่านคำแนะนำแยกต่างหากสำหรับการเข้าถึงหน่วยความจำและข้อมูล
โปรเซสเซอร์นี้รองรับทั้งบนชิป BlockRAM และหน่วยความจำภายนอก คล้ายกับ IBM PowerPC; อุปกรณ์ต่อพ่วงทั้งหมดใช้บัส CoreConnect OPB ที่คล้ายกันดังนั้น อุปกรณ์ต่อพ่วงของโปรเซสเซอร์นั้นเข้ากันได้ดีกับ PowerPC บน Virtex-II Pro

โปรเซสเซอร์ MicroBlaze มอบความยืดหยุ่นอย่างสมบูรณ์ในการเลือกการผสมผสานระหว่างคุณสมบัติหน่วยความจำ อุปกรณ์ต่อพ่วง และอินเทอร์เฟซ ที่จะช่วยให้คุณมีระบบที่แม่นยำที่คุณต้องการบน FPGA ตัวเดียวด้วยต้นทุนที่ถูกกว่า

ความแตกต่างระหว่าง B/W Microblaze กับ Risc-V

ดิ ความแตกต่างระหว่าง MicroBlaze และ RISC v รวมสิ่งต่อไปนี้

ไมโครเบลซ

Risc-V

เป็นแกนไมโครโปรเซสเซอร์แบบอ่อนที่ออกแบบมาสำหรับ Xilinx FPGA เป็นหลัก

RISC-V เป็นสถาปัตยกรรมชุดคำสั่งที่มีรากฐานมาจากหลักการ RISC

ใช้สถาปัตยกรรม RISC ของฮาร์วาร์ด ใช้สถาปัตยกรรมชุดคำสั่ง
ใบอนุญาตเป็นกรรมสิทธิ์ (Xilinx) ใบอนุญาตของมันคือโอเพ่นซอร์ส
ความลึกของท่อคือ 3 หรือ 5 ความลึกของท่อคือ 5
ประสิทธิภาพของมันคือ 280 DMIP ประสิทธิภาพของมันคือ 250 DMIP
ความเร็วของมันคือ 235 MHz ความเร็วของมันคือ 250 MHz
มี 1027 LUT มี 4125 LUT
การใช้เทคโนโลยีที่ใช้คือ Xilinx FPGA การนำเทคโนโลยีมาใช้คือ FPGA/ASIC

ข้อดีของ Microblaze

ดิ ข้อดีของ MicroBlaze รวมสิ่งต่อไปนี้

  • มันประหยัด
  • สามารถกำหนดค่าได้สูง
  • ประสิทธิภาพสูงเมื่อเทียบกับ ARM
  • ได้รับการสนับสนุนโดยชุดพัฒนาแบบฝังตัว
  • มันนุ่ม ไมโครโปรเซสเซอร์ แกน
  • เพื่อช่วยให้คุณจัดเรียงแอปพลิเคชันของคุณได้อย่างรวดเร็ว โปรเซสเซอร์นี้มีการกำหนดค่าคงที่สามแบบซึ่งเกี่ยวข้องกับไมโครคอนโทรลเลอร์คลาสโปรเซสเซอร์ที่รู้จักกันดี เรียลไทม์ และโปรเซสเซอร์แอปพลิเคชัน

การใช้งานไมโครเบลซ

ดิ แอพพลิเคชั่นของ MicroBlaze รวมสิ่งต่อไปนี้

  • โปรเซสเซอร์นี้ตรงตามข้อกำหนดการใช้งานที่หลากหลาย เช่น อุตสาหกรรม ยานยนต์ การแพทย์และผู้บริโภค เป็นต้น
  • แอพพลิเคชั่นของ MicroBlaze มีตั้งแต่เครื่องธรรมดาที่ใช้ซอฟต์แวร์ไปจนถึงตัวควบคุมที่ซับซ้อนซึ่งใช้ในแอพพลิเคชั่นฝังตัวหรืออุปกรณ์บนอินเทอร์เน็ต
  • เหมาะสำหรับการใช้งานแบบฝัง เช่น ระบบควบคุมอุตสาหกรรม ระบบอัตโนมัติในสำนักงาน และยานยนต์
  • MicroBlaze สามารถสื่อสารกับชุดอุปกรณ์ต่อพ่วงขนาดใหญ่เพื่อให้พอดีกับการใช้งานขนาดกลาง
  • ลักษณะที่นุ่มนวลของโปรเซสเซอร์นี้ทำให้สามารถปรับแต่งได้สำหรับแอพพลิเคชั่นต่างๆ โดยที่นักออกแบบสามารถแลกเปลี่ยนคุณสมบัติสำหรับขนาดเพื่อให้เป็นไปตามเป้าหมายด้านราคาและประสิทธิภาพสำหรับแอพพลิเคชั่นทางการแพทย์ ยานยนต์ อุตสาหกรรมและการรักษาความปลอดภัย

ดังนั้น ทั้งหมดนี้เกี่ยวกับ ภาพรวมของ Microblaze โปรเซสเซอร์ นี่คือแกนประมวลผลซอฟต์โปรเซสเซอร์ RISC แบบ 32 บิตที่มีคุณลักษณะครบถ้วน โปรเซสเซอร์นี้ตรงตามข้อกำหนดที่แตกต่างกันในด้านต่างๆ เช่น ตลาดโครงสร้างพื้นฐานสำหรับผู้บริโภค การแพทย์ อุตสาหกรรม ยานยนต์ และการสื่อสาร มันสามารถกำหนดค่าได้อย่างมาก ดังนั้นจึงใช้เป็นโปรเซสเซอร์ฝังตัวหรือไมโครคอนโทรลเลอร์ภายใน FPGA ไม่เช่นนั้นจะเหมือนกับตัวประมวลผลร่วมสำหรับ ARM นี่คือคำถามสำหรับคุณ FPGA คืออะไร?