新闻中心

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

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

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

 

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

3.4 设置启动地址

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

 

 

3.5 共享外设资源

多个处理器共享外设存在严重的问题。共享外设的最大的问题是中断,如果允许一个外设中断且所有处理器共享它,没有可靠的方法保证哪一个处理器首先响应中断且为哪个外设服务。此外,如果外设是用来作为多处理器的输入设备,很难确定哪个处理器应该从设备中接受输入信息。多处理器系统共享外设资源的方式,是系统中的外设仅被一个处理器访问,如果其他处理器需要使用外设,最好是使用硬件先进先出(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、其他外设等问题有待进一步研究解决。

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



上一页 1 2 下一页

关键词: SoPC Nios

评论


相关推荐

技术专区

关闭