2007年秋Xilinx又在对其MicroBlaze嵌入式处理器内核进行了升级,增添一个内存管理单元(MMU)选项,为32bit的处理器提供高级的、支持虚拟内存的操作系统。开发者还可以只用个更为简单的内存保护单元(MPU)或完全放弃受监管的内存管理。
目前已发布的第一款面向新的MicroBlaze v7的全功能操作系统是Lynuxworks公司的BlueCat Linux。到目前为止,MicroBlaze处理器仅限于支持更简单的嵌入式操作系统,这些系统无法支持虚拟内存或者内存保护。具备了MMU或者MPU选项后,MicroBlaze v7适合于范围更广、需要更高的安全性和可靠性的嵌入式应用。
MicroBlaze v7还有另一项改进措施,新的指令可以提供更快的浮点性能,而且能提高其与协处理器和定制逻辑电路之间的I/O性能。此外,Xilinx已经将CoreConnect接口升级,使之满足最新的CoreConnect 处理器本地总线(PLB)v4.6规范,保证处理器与片上外设之间具有更快的连接速度。
强固的内存管理功能
自从2001年引入软处理器MicroBlaze以来,Xilinx就一直对其进行不断的改进。两年前,Xilinx开始提供一种FPU选项。2006年,Xilinx延长了其指令的流水线,从而容许采用更高的时钟速度。2007年较早时候,Xlinx发布了MicroBlaze v6,增添了少量其他的增强措施。现在,Xilinx借助MicroBlaze v7推出了第一流的内存管理功能,这显著扩展了MicroBlaze所适合的嵌入式应用的范围。
当然,许多嵌入式系统并不需要如此高水平的内存管理,因此MicroBlaze MMU是一种选项功能。另一种可供选择的方法是实施MPU,它可以在无虚拟内存和地址翻译的情况下对内存进行保护。MPU适用于那些必须保护程序存储区不受其他程序意外或者恶意入侵的嵌入式系统。还有另外一种选项,即在无内存保护或者虚拟内存的条件下实施特权模式的执行。在特权模式下,只有操作系统或者有优先特权的应用程序可以执行那些有关系统安全性的指令。
表1 示出每一种选项(MMU、MPU或特权优先执行)是如何影响综合后的处理器规模的,其衡量尺度是,在FPGA的可编程逻辑架构中实现这些功能而必须增加的查阅表(LUT)数量。在单独实现特权模式时,所需的LUT很少,其他的选项就需要事先进行更为周详的考虑。特别是,MMU大约需要1 000个LUT,大约占一个功能配置齐全的MicroBlaze v7内核的1/3。
表1 3种MicroBlaze v7内存管理选项的规模

完备的MMU成为最大的内存管理选项的部分原因是,它需要转换监视缓冲器(TLB)来完成虚拟-物理内存地址转换的查阅表的一部分内容。
MicroBlaze v7拥有一个64条目的一体化TLB。为了补充这一软件管理的缓冲器,还提供了用于指令内存页面和数据内存页面的影子条目。这些影子条目的数量是可以由用户定义的:缓冲指令的条目数量可以为1、2、4或8个,而缓冲数据的条目数与之相同。处理器可以自动地管理这些影子条目,从而防止系统失效(thrashing)的出现。内存页面的尺寸范围是1kB~16MB,而且可以混合使用各种页面尺寸。采用有效位数为32bit的寻址方式后,MicroBlaze v7可以对多达4GB内存进行寻址。
MicroBlaze MMU是仿照某款IBM Power 405处理器中的MMU设计的。因为此前有些Virtex系列FPGA集成了一个加固的Power 405内核,其速度要远快于一个综合到该架构中的MicroBlaze 处理器。采用类似的MMU将能够给MicroBlaze v7带来几个好处。首先,编程者将基于虚拟内存的操作系统从Power架构移植到MicroBlaze架构的过程将更为轻松。第二,开发者可以更为轻松地将一个或多个MicroBlaze内核与一个Power 405搭配起来,以共享内存的配置方式构成一个多核设计。第三,未来Xilinx可能通过与IBM合作而向其FPGA中集成更新的Power内核。
更快的CoreConnect总线
CoreConnect是IBM用于SoC的片上总线,它在1999年开发成功。虽然IBM创造CoreConnect的主要意图是为自己的Power架构处理器服务,但任何人都可以免费地获得将CoreConnect作为一种可综合的知识产权(IP)模块使用的许可,它并不局限于某种特定的CPU架构。在过去8年中,软IP厂商已经各自开发出许多与CoreConnect兼容的、可发放许可证的外设内核。唯一一种得到更为广泛支持的片上总线架构是ARM的AMBA。