新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 全面解析Nios Ⅱ嵌入式软核多处理器系统

全面解析Nios Ⅱ嵌入式软核多处理器系统

作者:时间:2014-04-14来源:网络收藏

通过对硬件互斥核,程序存储器分区,重叠地址空间,启动地址和异常地址的分析,提出了多处理器系统共享片上存储器、FLASH存储器和外设资源的解决方法,为嵌入式多处理器系统的设计提供了有效的方法和途径。

本文引用地址:http://www.eepw.com.cn/article/236502.htm

0 引言

基于技术开发的嵌入式软核多处理器系统具有可自主设计,重构性好,软硬件裁剪容易,系统扩充升级方便,能兼顾性能、体积、功耗、成本、可靠性等方面的要求。研发嵌入式软核多处理器系统,是提高嵌入式系统性价比和实用性一种有效途径。

1 片上Nios Ⅱ嵌入式软核多处理器系统

嵌入式系统的核心是RISC 处理器,具有代表性的RISC软核处理器是Nios Ⅱ处理器。软核处理器是指用编程的方法生成的处理器。是一种将硬件逻辑、智能算法、硬件描述语言和编程有机的结合出来,设计处理器硬件电路的新技术。

片上Nios Ⅱ嵌入式多处理器系统优势在于设计者可根据的实际的需要,自主选择Nios Ⅱ处理器的类型和数目并进行设置,对存储器和外围设备进行优化配置,最大限度提高片内资源和系统资源的利用率。

1.1 Nios Ⅱ处理器

由Nios Ⅱ软核处理器构建的系统,对系统软硬件容易进行裁剪,并可集成在一个FPGA 芯片上,构建系统和实时评估非常迅速、方便,可大大地缩短设计周期,降低设计风险。

1.2 多处理器系统类型

按共享资源分为非共享资源多处理器系统和共享资源多处理器系统两种。非共享资源多个处理器系统中的多个Nios Ⅱ处理器完全是独立的,不共享系统资源,处理器相互之间无干扰,系统结构不太复杂。共享资源多处理器系统在共享资源的情况下,要确保多个Nios Ⅱ处理器安全、可靠的工作,它对提高每个处理器的性能、减小体积,降低成本和功耗有利,但系统软件的设计较为复杂。

按处理器拓扑结构分为2 种,一种是非层次结构,处理器与系统组件的连接容易;另一种是层次结构,它可根据实际需要来确定Nios Ⅱ处理器的数目,优化系统的内部结构,有效利用FPGA芯片的资源。但存在平衡多处理器的负载和任务协调的问题。

2 共享资源多处理器系统

由多个Nios Ⅱ软核处理器,一套片上外设接口,片上存储器,片外存储器接口等并集成在一个FPGA芯片上,构成片上嵌入式Nios Ⅱ软核多处理器系统的基本架构。

2.1 共享系统资源

Nios Ⅱ多处理器系统可共享存储器、外围设备系统资源。为了确保每个处理器共享资源,防止由于处理器之间的干扰,引起程序或数据的错误,导致整个系统的崩溃。Nios Ⅱ多处理器系统中使用硬件互斥核组件对共享资源进行保护处理,以协调各个处理器的正常工作,确保处理器之间不受干扰,从而提高多处理器系统的性能。

2.2 硬件互斥核

用硬件互斥核来协调各个处理器对共享资源的访问。硬件互斥核是没有内部功能的,是一个简单的QSYS组件。它提供了一个协议来保证对共享资源的所有权的互斥,互斥协议是在任何时刻只有一个处理器允许访问共享硬件资源,这样才能有效保护多个处理器访问使用硬件资源,防止数据的损坏或系统的崩溃。互斥核mutex提供一个原子的测试和设置操作,它允许处理器测试,如果互斥是可用的话,获得互斥锁处理器进行单一的操作。当处理器完成使用共享外设与互斥锁,会释放互斥锁。此后,另一个处理器可以获取该互斥锁和共享外设的使用权。

需要注意,互斥核并没有外设系统被多个处理器同时访问的物理保护,运行在处理器上的软件负责遵守互斥协议,软件通过写获取互斥锁后,处理器访问其相关联的共享外围设备。多个处理器访问一个mutex核,则每个处理器有一个唯一的标识符ID(cpuid)。Altera提供了Nios Ⅱ处理器访问硬件的子程序,这些函数是针对mutex 核的,直接对底层硬件进行操作,每个处理器通过写它的cpuid 控制寄存器的值到mutex 寄存器的owner 域对mutex 加锁,而mutex 不能对HAL API 或ANSI C标准库进行访问。

3 片上嵌入式Nios Ⅱ软核六处理器系统实例

片上嵌入式Nios Ⅱ六处理器硬件系统结构示意图如图1所示。

3.1 硬件系统结构

由六个Nios Ⅱ处理器、硬件互斥核、片上存储器、JTAG UART、定时器、FLASH 控制器、FLASH 存储器、System ID、Avalon Switch Fabric总线组成系统硬件的基本结构。该系统采用层次结构,其中第六个Nios Ⅱ处理器、片上存储器、JTAG UART、System ID、定时器、FLASH 控制和存储器处在结构的顶层。处在底层的5 个子系统共享存储器资源,每个子系统包含一个NiosⅡ处理器、JTAG UART、定时器和硬件互斥核,用Ava-lon-MM、Pipeline Bridges将逻辑相邻的子系统处理器和互斥核之间连接成一个环,连接子系统与系统顶层组件之间的通信通道。

 

 

3.2 Nios Ⅱ处理器选择和参数设置

Nios Ⅱ处理器有快速型、标准型和经济型三种类型[3],快速型配置性能最高,经济型配置占用片内资源最少,标准型配置的性能和占用片上资源介于快速型和经济型之间。根据实际应用需要对系统性价比及功耗的要求,合理选择和配置Nios Ⅱ处理器。

多处理器系统中对每一个处理器都要进行正确的设置,否则即使创建的硬件系统已通过编译并生成,也会造成多处理器系统不能正常运行的问题。如果多个处理器使用片上存储器为共享程序存储器,则必须正确设计异常地址。如果使用CFI FLASH存储器区域作为多个处理器的引导区,则必须要正确设计复位地址。使用不同类型的存储器要正确的进行设置。

3.3 共享程序存储器

为了降低成本、功耗,简化多处理器系统结构,实例中利用FPGA的芯片资源共享程序存储器,六个Nios Ⅱ处理器的运行软件共同使用片上存储器,每个处理器的软件位于片上存储器所属特有的存储器区域。如果六个处理器的软件在片上存储器运行,假设每个处理器的软件需要有8 KB的内存空间用于程序代码和数据。这样第一个处理器使用片上存储器0×0~0x1FFF之间的作为其程序空间,第二个处理器使用片上存储器0×2000~0x3FFF 之间的区域,第三个处理器使用片上存储器0×4000~0x5FFF之间的区域;其他各个处理器所需的存储器区域采用同样的方法对片上存储器进行分区。

Nios Ⅱ SBT 提供了一个简单的存储器分区模式,允许多个处理器的软件运行于同一存储器的不同区域,确保位于存储器中的主要代码段的链接和固定地址。

图2所示六个处理器在片上储存器的分区及代码段的链接。

存储器相关文章:存储器原理



上一页 1 2 下一页

关键词: SoPC Nios

评论


相关推荐

技术专区

关闭