The first time we looked at the MicroBlaze processor was in part13 of our story. Now it is time to take a new look and see what has happened. We will find out by reading the MicroBlaze Processor Reference Guide (UG081 v9.0) found in the doc directory.
Overview
The MicroBlaze embedded processor soft core is a reduced instruction set computer (RISC) optimized for implementation in Xilinx FPGAs. The figure shows a functional block diagram of the MicroBlaze core.
Features
The MicroBlaze soft core processor is highly configurable, allowing you to select a specific set of features required by your design. The fixed feature set of the processor includes:
Thirty-two 32-bit general purpose registers
32-bit instruction word with three operands and two addressing modes
32-bit address bus
Single issue pipeline
In addition to these fixed features, the MicroBlaze processor is parameterized to allow selective enabling of additional functionality. Older (deprecated) versions of MicroBlaze support a subset of the optional features. Only the latest (preferred) version of MicroBlaze (v7.1) supports all options. Xilinx recommends that all new designs use the latest preferred version of the MicroBlaze processor.
Memory Managemant Unit (MMU)
The most important update to MicroBlaze processor is the addition of a memory management unit. The MMU allows the MicroBlaze softcore to run complex OSes such as Linux, including LynuxWorks's commercially supported BlueCat-ME (MicroBlaze Edition) distribution. Let's find out how it all works by studying the reference guide.
Virtual-Memory Managemant
Programs running on MicroBlaze use effective addresses to access a flat 4 GB address space. The processor can interpret this address space in one of two ways, depending on the translation mode:
In real mode, effective addresses are used to directly access physical memory
In virtual mode, effective addresses are translated into physical addresses by the virtual-memory management hardware in the processor
Virtual mode provides system software with the ability to relocate programs and data anywhere in the physical address space. System software can move inactive programs and data out of physical memory when space is required by active programs and data.
Relocation can make it appear to a program that more memory exists than is actually implemented by the system. This frees the programmer from working within the limits imposed by the amount of physical memory present in a system. Programmers do not need to know which physical-memory addresses are assigned to other software processes and hardware devices. The addresses visible to programs are translated into the appropriate physical addresses by the processor.
Virtual mode provides greater control over memory protection. Blocks of memory as small as 1 KB can be individually protected from unauthorized access. Protection and relocation enable system software to support multitasking. This capability gives the appearance of simultaneous or near-simultaneous execution of multiple programs.