新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Nios Ⅱ嵌入式软核多处理器系统研究

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

作者: 时间:2014-09-01 来源:网络 收藏

  

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

 

  3.2 处理器选择和参数设置

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

  多处理器系统中对每一个处理器都要进行正确的设置,否则即使创建的硬件系统已通过编译并生成,也会造成多处理器系统不能正常运行的问题。如果多个处理器使用片上存储器为共享程序存储器,则必须正确设计异常地址。如果使用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存储器启动的映射。



关键词: FPGA Nios SoPC

评论


相关推荐

技术专区

关闭