FPGA软核之战点燃创新激情
时间:09-25
来源:互联网
点击:
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。
为了保证更高的效率,CoreConnect将低速和高速的外设分别设置在分开的总线上,两条总线由桥连接起来。截止到目前,MicroBlaze只支持较慢的片上外设总线(OPB),该总线的数据通道宽度为32bit。MicroBlaze v7仍然保持了与OPB之间的后向兼容性,但增加了对速度更快的处理器本地总线(PLB)的支持。在面向32、64或者128bit宽度的综合时,PLB的数据通道是可配置的。总线的带宽取决于这些数据通道的宽度和FPGA的时钟频率,速度最快的Virtex-5器件的时钟频率已经达到了550MHz。在550MHz的频率上,一个128bit的PLB的最大的理论带宽为8.8MB/s。
PLB直接与CPU相连,提供了一条为若干片上外设所共享的多点总线。它是一个Xilinx专有的、被称为快速单工链路(FSL)的接口。FSL是直接的点-点接口,而并非多点总线。FSL的速度要比共享总线的快,但是每个I/O接口需要更多的逻辑门电路。一个SoC设计可以使用一条或多条FSL与一条CoreConnect PLB的组合来满足不同的目标需求,从而给开发者提供了丰富的设计选项。
图1示出了在Xilinx FPGA上实现的一个SoC实例,其中采用了一个MicroBlaze或者Power 405处理器内核。在这个TCP/IP包处理器实例中,最关键的数据通道将Ethernet控制器与外部存储控制器和CPU连接起来。这些数据通道是FSL,宽度可以是32~128bit。重要性较低的部件则分享一个CoreConnect PLB。Xilinx开发工具可以自动对FSL进行配置,使之服务于某个特定的目的,或者让开发者能够对接口进行人工配置。
经过IBM的许可,Xilinx对标准的CoreConnect IP进行了轻微的改进。但这些改进是必不可少的,因为FPGA的可编程逻辑门的效率并没有ASIC的标准的单元门那么高,特别是路由信号要横跨一块大芯片时。在FPGA中,数据通道和时钟树所延伸的长度要远远高于ASIC的情况,这使得时序的收敛变得更为困难。对于那些分布在芯片各处的、数不清的外设连接到一条共享总线上的复杂设计而言,该问题变得更为严重。于是,Xilinx对PLB进行了改进,提高了它的同步能力,并消除了不确定的数据猝发现象。Xilinx宣称,这些改进虽然相对而言幅度并不大,却可以让开发者能够在CoreConnect PLB上连接10~20个外设,而不至于出现时序问题。
此外,Xilinx已经改进了PLB,使之能以更高的效率与集成在某些Virtex-5 FPGA中的、加固的收发机交互。这些收发机是一个PCI Express端点和一个3模Ethernet媒体访问控制器(TEMAC),它们可以提供的性能将远远优于那些功能相同、综合到架构中的软IP控制器的性能。上述的PCI Express端点得到了充分的缓冲,并且支持1、2、4或8条通道。TEMAC收发机则支持10Mb/s、100Mb/s和Gigabit Ethernet数据率。在Xilinx的基准测试中,一个基于MicroBlaze v7和TEMAC的包处理器实现了750Mb/s的原始吞吐率,对收发机的理论最大带宽的利用率达到了惊人的75%。
虽然AMBA得到的支持要比CoreConnect所得到的支持广泛,后一种标准对于MicroBlaze来说却更为适合。内置到某些Virtex系列FPGA内部的Power 405处理器则采用了CoreConnect,因此,开发者能够更为轻松地基于Power 405和MicroBlaze内核创制出非对称的多处理器。许多来自于第三方厂商的外设IP内核,往往通过添加一个简单的衬垫适配头就可以与AMBA或者CoreConnect一起工作。
目前已发布的第一款面向新的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。
为了保证更高的效率,CoreConnect将低速和高速的外设分别设置在分开的总线上,两条总线由桥连接起来。截止到目前,MicroBlaze只支持较慢的片上外设总线(OPB),该总线的数据通道宽度为32bit。MicroBlaze v7仍然保持了与OPB之间的后向兼容性,但增加了对速度更快的处理器本地总线(PLB)的支持。在面向32、64或者128bit宽度的综合时,PLB的数据通道是可配置的。总线的带宽取决于这些数据通道的宽度和FPGA的时钟频率,速度最快的Virtex-5器件的时钟频率已经达到了550MHz。在550MHz的频率上,一个128bit的PLB的最大的理论带宽为8.8MB/s。
PLB直接与CPU相连,提供了一条为若干片上外设所共享的多点总线。它是一个Xilinx专有的、被称为快速单工链路(FSL)的接口。FSL是直接的点-点接口,而并非多点总线。FSL的速度要比共享总线的快,但是每个I/O接口需要更多的逻辑门电路。一个SoC设计可以使用一条或多条FSL与一条CoreConnect PLB的组合来满足不同的目标需求,从而给开发者提供了丰富的设计选项。
图1示出了在Xilinx FPGA上实现的一个SoC实例,其中采用了一个MicroBlaze或者Power 405处理器内核。在这个TCP/IP包处理器实例中,最关键的数据通道将Ethernet控制器与外部存储控制器和CPU连接起来。这些数据通道是FSL,宽度可以是32~128bit。重要性较低的部件则分享一个CoreConnect PLB。Xilinx开发工具可以自动对FSL进行配置,使之服务于某个特定的目的,或者让开发者能够对接口进行人工配置。
经过IBM的许可,Xilinx对标准的CoreConnect IP进行了轻微的改进。但这些改进是必不可少的,因为FPGA的可编程逻辑门的效率并没有ASIC的标准的单元门那么高,特别是路由信号要横跨一块大芯片时。在FPGA中,数据通道和时钟树所延伸的长度要远远高于ASIC的情况,这使得时序的收敛变得更为困难。对于那些分布在芯片各处的、数不清的外设连接到一条共享总线上的复杂设计而言,该问题变得更为严重。于是,Xilinx对PLB进行了改进,提高了它的同步能力,并消除了不确定的数据猝发现象。Xilinx宣称,这些改进虽然相对而言幅度并不大,却可以让开发者能够在CoreConnect PLB上连接10~20个外设,而不至于出现时序问题。
此外,Xilinx已经改进了PLB,使之能以更高的效率与集成在某些Virtex-5 FPGA中的、加固的收发机交互。这些收发机是一个PCI Express端点和一个3模Ethernet媒体访问控制器(TEMAC),它们可以提供的性能将远远优于那些功能相同、综合到架构中的软IP控制器的性能。上述的PCI Express端点得到了充分的缓冲,并且支持1、2、4或8条通道。TEMAC收发机则支持10Mb/s、100Mb/s和Gigabit Ethernet数据率。在Xilinx的基准测试中,一个基于MicroBlaze v7和TEMAC的包处理器实现了750Mb/s的原始吞吐率,对收发机的理论最大带宽的利用率达到了惊人的75%。
虽然AMBA得到的支持要比CoreConnect所得到的支持广泛,后一种标准对于MicroBlaze来说却更为适合。内置到某些Virtex系列FPGA内部的Power 405处理器则采用了CoreConnect,因此,开发者能够更为轻松地基于Power 405和MicroBlaze内核创制出非对称的多处理器。许多来自于第三方厂商的外设IP内核,往往通过添加一个简单的衬垫适配头就可以与AMBA或者CoreConnect一起工作。
Xilinx 嵌入式 Linux 电路 总线 FPGA SoC ARM 滤波器 Cortex Altera 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- 迄今为止最牛的ASIC验证平台(05-22)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)