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

最新更新时间:2014-08-26来源: 互联网关键字:Nios    嵌入式  软核多处理器 手机看文章 扫描二维码
随时随地手机看文章

  基于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标准库进行访问。

  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所示六个处理器在片上储存器的分区及代码段的链接。

  

 

  3.4 设置启动地址

  在多处理器系统中,每个处理器在存储器中必须拥有自己的启动区域,多个处理器不能从同一非易失性存储器的同一地址启动。启动存储器类似程序存储器一样也可以进行分区,但段和链接的概念不同,因为通常引导代码只是复制到它实际的程序代码被链接在RAM中,然后跳转到该程序代码处。为了从同一非易失性存储器的不同区域启动多个处理器,设置每个处理器复位地址,这个地址就是启动该处理器的位置,启动区域要留出足够的空间存放启动代码。由于没有支持机制多个处理器无法直接访问CFI FLASH存储器,需要使用一个CFI FLASH控制器,Nios Ⅱ处理器通过CFI FLASH控制器读取或写入到CFI FLASH存储器。如果多个Nios Ⅱ处理器启动在同一个CFI FLASH存储器。为确保安全访问,必须删除一个主控处理器之外的CFI FLASH 存储器alt_main()函数所有初始化的驱动程序,并确认启动前完成所有其他处理器在CFIFLASH存储器的程序初始化。图3所示六个处理器从一个FLASH存储器启动的映射。

 

  3.5 共享外设资源

  多个处理器共享外设存在严重的问题。共享外设的最大的问题是中断,如果允许一个外设中断且所有处理器共享它,没有可靠的方法保证哪一个处理器首先响应中断且为哪个外设服务。此外,如果外设是用来作为多处理器的输入设备,很难确定哪个处理器应该从设备中接受输入信息。Nios Ⅱ多处理器系统共享外设资源的方式,是系统中的外设仅被一个处理器访问,如果其他处理器需要使用外设,最好是使用硬件先进先出(FIFO)或消息缓冲区互斥保护。创建多处理器系统时,仅对需要通信的处理器和外设之间进行连接。例如,如果一个处理器运行仅使用一个片上存储器,该处理器没有必要与系统中任何其他存储器连接。处理器与存储器的分离,不使用物理断开连接,这样可节约FPGA资源,保证处理器不会破坏存储器的数据。

  共享资源多处理器与各种组件连接是设计中的关键环节,要验证每个处理器及所需组件的连接是否正确。多数组件最好是由单一的处理器管理。例如处理器A要求一个外设的服务,而该外设与处理器B连接并由处理器B 管理,处理器A 要求对该外设进行操作,处理器A 必须请求处理器B.这样可以使用处理器互斥保护的共享片上存储器,用于个两处理器之间的通信,达到多处理器共享外设的目的。

  在多处理器系统中,每个从外设可以占据相同的基地址不会发生冲突,只要每个外设是被不同的处理器控制。因为每个从外设不必一定被每个处理器控制。如果处理器A被连接到映射地址为0x00008a00的一个从外设,处理器B也可以被连接到映射地址0x00008a00另一个从外设,只要处理器A是没有连接到处理器B的从外设,处理器B 没有连接到处理器A 的从外设,不会因为从外设占据相同的基地址而发生冲突。图4方框图显示多处理器系统中不同的从外设组件映射到同一个基地址的示例。

  

 

  4 系统调试及软件设计

  Nios Ⅱ SBT for Eclipse 工具包括了许多功能,它可以进行Nios Ⅱ多处理器系统的软件开发。能同时对多个Nios Ⅱ处理器进行调试会话,也可单独暂停和恢复每个处理器的运行,单独设置每处理器的断点。如果一个处理器遇到一个断点,它不会停止或影响其他处理器的操作。Nios Ⅱ SBT for Eclips对多个处理器系统具有可同时进行在片调试的能力。

  系统软件设计应注意的问题,在设计Nios Ⅱ多处理器系统的软件时,必须要考虑系统硬件结构的特点以及启动地址和异常地址的设置。设计调试运行多处理器系统软件与单处理器系统相似,一定要清楚每个处理器的复位地址、异常地址,CPUID寄存器的值以及存储器的类型。多个处理器使用同一个程序存储器,而每个处理器的程序必须存放在不同的区域,用异常地址为每个处理器存放程序确定内存区域,使用QSYS为每个处理器设置异常地址。

  5 结语

  SoPC技术的出现带来全新的嵌入式处理器硬件的设计理念,使得设计嵌入多处理系统硬件电路的有了多种方法和途径。实例Nios Ⅱ嵌入式软核六处理器系统的方案具有一定可行性和实用性。如何提高嵌入式多个处理器系统的效率,实现资源的最佳配置,简化系统结构、降低成本和功耗,怎样合理选择时钟、I/O、其他外设等问题有待进一步研究解决。

关键字:Nios    嵌入式  软核多处理器 编辑:探路者 引用地址:基于Nios Ⅱ嵌入式软核多处理器系统研究

上一篇:32位微控制器实现先进控制技术
下一篇:温度报警系统完整软硬件设计

推荐阅读最新更新时间:2023-10-12 22:44

凌华科技嵌入式显卡助力提升嵌入式应用的性能
凌华科技,今天发布面向边缘计算应用的全新的嵌入式显卡产品系列——EGX-MXM-P1000和EGX-MXM-P2000(MXM模块)。凌华科技的MXM模块和PCI Express显卡(PEG)提供了更快的系统响应能力、可扩展的产品可用性、功耗效率以及系统的稳健性,从而显著提高了边缘计算应用对于工业图像处理、计算加速和人工智能所需的处理速度和效率,尤其是在医疗、航空航天和国防、制造业、交通和海事领域中。 EGX-MXM-P1000和EGX-MXM-P2000采用了先进的、基于NVIDIA Pascal™ 架构的NVIDIA Quadro GPU,并遵循MXM 3.1 Type A规格。EGX-MXM-P1000具有512个NVI
[嵌入式]
TE推出下一代LCD同轴嵌入式显示接口连接器
中国上海,2011年2月15日——平板电脑、笔记本电脑和上网本市场的迅猛发展使得高性能大功率连接器的需求不断增加,并促进最新显示技术的发展。 针对这一需求,泰科电子推出了下一代LCD同轴嵌入式显示接口(LCEDI)连接器系列,使泰科电子能够提供面板/主板互连的整体解决方案。 LCEDI连接器有两种独特的版本,分别是LCEDI连接器和LCEDI电源插座。LCEDI连接器主要用于笔记本电脑和平板电脑,而LCEDI电源插座则用于系统应用。 该连接器系列在低压差分信号(LVDS)和嵌入式DisplayPort(eDP)应用上性能卓越,获得了I-PEX公司的许可,与I-PEX CABLINEVS连接器系列完全兼容和互配。I
[模拟电子]
嵌入式工业计算机在轨道交通系统中的应用
   1. 前言:   地铁是人们重要的出行工具之一。站台上许多操作简单的设施包括自动售票机、检票闸机、环境监控系统等都是由由嵌入式系统一手掌控,华北工控的嵌入式工业计算机便在其中扮演了重要的角色。   作为嵌入式工业计算机产业的领导厂商之一,华北工控针对城市轨道交通产业形成了完整的产品线,行业系列产品以其高处理能力、丰富的接口、超低的功耗、无风扇静音、灵活的扩展工程等特性成为城市轨道交通行业解决方案的首选品牌。在广州地铁8号线、西部机场等重大项目中均有出色的表现。    2.英特尔Atom平台及特点   随着绿色环保意识的增强,产品的功耗与散热成为备受瞩目的焦点。2008年3月初,英特尔发布了新的低功耗处理器家族
[嵌入式]
嵌入式指纹锁的设计与实现
随着指纹自动识别系统体积的不断缩小,以及微处理器功能与速度的不断提高,复杂的指纹识别门锁控制算法已可以被固化到一块体积非常小的嵌入式微处理器模块上,该模块与指纹传感器、门锁控制机构组成的系统称为嵌入式指纹识别门锁系统。嵌入式指纹锁的应用领域十分广泛,有保险箱、实验室、楼道的身份确认等。本文基于指纹识别模块设计和实现了嵌入式指纹锁,给出了一套比较完整的软、硬件设计方案。 指纹识别门锁系统的硬件结构 指纹识别门锁系统的硬件结构主要包括:指纹识别模块、微控制器、读写模块、电源管理和电控锁机构以及门锁功能所需的红外感应电路和液晶LCD显示等,其中核心部分是指纹识别模块和微控制器。指纹识别门锁系统的结构框图如图1所示,虚线内是指纹识别
[嵌入式]
MSP430F149嵌入式系统中FLASH K9F1G08U0M的应用
NAND Flash是采用NAND结构技术的非易失存储器,具有ROM存储器的特点,存储在该芯片中的数据可在断电情况下维持10年不丢失,而芯片的引脚与访问又具有类似于RAM的特点。NAND FLASH 存储器将数据线与地址线复用为8条线,另外还分别提供了命令控制信号线,因此,NAND FLASH 存储器不会因为存储容量的增加而增加引脚数目。从而极大方便了系统设计和产品升级。 1 元件介绍 1.1 MSP430芯片 MSP430系列单片机是TI公司推出的16位RISC系列单片机,该系列是一组超低功耗微控制器,供电电压范围为1.8V―3.6V。考虑到本系统有微体积、低功耗的要求,在此选用MSP430F149,它具有60KB Flas
[单片机]
MSP430F149<font color='red'>嵌入式</font>系统中FLASH K9F1G08U0M的应用
以DSP为核心的嵌入式系统人机接口设计
1 引言 人机接口是嵌入式控制系统的重要组成部分,用于人机之间实时交换控制系统并返回系统状态。嵌入式系统大都采用液晶屏和键盘作为人机接口的输入、输出设备。这里设计的人机接口作为数据采集系统的组成部分,为系统控制和运行监测提供方便,而其本身在各种嵌入式控制系统中又具有广泛的实用性。 2 液晶屏显示功能的实现 这里采用的液晶显示器为RT320240B。该显示器的控制器使用SEIKO EPSON公司生产的SED1335型控制器。DSP访问SED1335时,无需判断其是否空闲,SED1335能够随时准备接受DSP的访问并按照内部时序及时正确传输DSP发送的指令、数据。考虑到RT320240B是大屏幕液晶显示器
[嵌入式]
单片机或者嵌入式系统的开发规范化问题
随着人才流动的加快和研发周期的缩短,我们个人需要快速高效的完成自己的设计,维护和升级,公司需要人走不影响项目进度、新员工很快就能接手。这就需要:一个系统设计完成以后,它不应该仅仅是一些源代码,还应该包括各种各样的开发文档。(这对以后自己对系统的维护和升级都有很好的参考作用。而且能最大情况的避免一种情况:你改了一个BUG,却发现又出现了很多个BUG。)一个系统开发完成,它究竟应该包含那些文档,这些文档一般是怎么完成的,应该包含哪些内容?这就是系统开发的规范化问题。系统开发的规范化不仅有利于自己,也有利于公司,更有利于新手。规范化的设计让工程师工作更高效,这已经是不用争论的事实。现在在大型软件工程开发方面,这已经做得相当好。但在单片机和
[单片机]
采用STM32嵌入式语音识别电路模块设计
  介绍了一种以ARM为核心的嵌入式语音识别模块的设计与实现。模块的核心处理单元选用ST公司的基于ARM Cortex-M3内核的32位处理器STM32F103C8T6。本模块以对话管理单元为中心,通过以LD3320芯片为核心的硬件单元实现语音识别功能,采用嵌入式操作系统μC/OS-II来实现统一的任务调度和外围设备管理。经过大量的实验数据验证,本文设计的语音识别模块具有高实时性、高识别率、高稳定性的优点。   语音识别电路   图3为语音识别部分原理图,参照了ICRoute发布的LD3320数据手册进行设计。LD3320的内部集成了快速稳定的优化算法,不需外接Fla-sh、RAM,不需要用户事先训练和录音而完成非特定人语音识
[单片机]
采用STM32<font color='red'>嵌入式</font>语音识别电路模块设计
小广播
最新电源管理文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved