首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Nios Ⅱ嵌入式软核多处理器系统研究

基于Nios Ⅱ嵌入式软核多处理器系统研究

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

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标准库进行访问。
返回列表