积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> SOPC >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
NiosII多核处理器之间通信技术的研究
 
作者:清华电工电子中心清华-Altera联合实验室 高兵 秦俭 陈莉平 唐光荣   来源:电子产品世界    点击数:595   更新时间:2008-9-5
您可以添加到网摘 让更多人关注此文章:

    

   引言

  随着应用领域的扩大,人们对微处理器系统的性能、功耗和成本提出了越来越严格的要求。单纯依靠提升时钟的方法已经不能满足需要,在移动通信、军事应用、消费电子、智能控制设备等领域,多核处理器的解决方案成为一种主流趋势。


  Altera公司在其FPGA中实现的NiosII处理器是一个用户可配置的通用32位RISC软核微处理器,Nios II 5.0及其以上版本支持多处理器系统的创建和调试。Nios II多处理器,除了软核本身超过200DMIPS的高性能之外,Altera开发用于Nios/NiosII处理器的Avalon参数化接口总线具有友好的多主从仲裁能力,可以有效地实现系统资源共享。在清华-Altera联合实验室的支持下,笔者对NiosII多核处理器之间共享通信的几种可行方案进行研究,并且在自行设计的NiosII开发板上完成设计测试验证,分析比较各种方案的技术特点、优势与不足,提供给不同系统的应用者参考。


  NiosII多核间几种可行的通信方案


  双口RAM和PIO核的多核中断通信方案


  双处理器可采用一个双口RAM和中断信号通过定义某种信息数据结构来进行通信。在NiosII双处理器系统,可以采用FPGA中实现的片上双口RAM和通用IO组件PIO核来实现多核中断通信。通信的中断信号使用PIO组件产生和接收,双核通信的连接如图1所示。由于Avalon总线具有多主从仲裁能力,同一外设可以同时挂载在不同软核上,有访问竞争时由总线自己仲裁决定哪个主方取得从设备访问权,双口RAM和单口RAM均可以通过Avalon总线挂载在多个NiosII软核上,二者的区别在于:双口RAM设备有两套从端口被Avalon总线当作两个设备,双核可以同时对其进行读操作;单口RAM只有一套从端口被Avalon总线当作一个设备,多核对其的读写操作是分时进行的。


  这里设计双核通过双口RAM和PIO中断进行通信的例程。设计信息交换的数据结构share_msg_buf如表1所示。安装中断程序及终端服务例程如图2所示。


  通信的关键在于消息标志flag状态的定义:NO_DATA-内存空闲、DATA_IN-有新消息写入、DATA_OUT-新消息已送出,单个软核处理器在存储器空闲(NO_DATA状态)或者有消息进入(DATA_IN状态)将新消息读走之后才能在存储区写入新的消息数据;在自己发的消息还未被对方接收(DATA_OUT状态)时,不做处理,返回继续等待对方接收消息。标志状态的定义从软件上实现了双核对双口RAM的互斥访问,有效防止双核对共享数据的破坏。这种通信方案经过笔者的NiosII双核系统验证测试,消息接收正确。


  互斥硬核和共享存储的多核查询通信方案


  Altera在SOPC Builder工具箱中提供具有Avalon接口的互斥硬核Mutex组件来协调共享资源的访问。Mutex核提供一个基于硬件的原子测试和置位(test-and-set)操作,允许多处理器环境下决定软核对Mutex核的使用权,使用Mutex核就可实现多核对相应共享资源(如存储器)的互斥访问。这样多核的通信就可以舍弃双口RAM,使用片上RAM或者片外存储器作为共享存储器,采用查询方式实现。双核通信的设备连接如图3所示,与双口RAM不同,这里的片上RAM仅作为一个设备挂载到Avalon总线上。


  Altera提供NiosII HAL环境下对Mutex核访问的函数:打开、加锁、解锁、判断Mutex属主等。使用Mutex核控制片上RAM,单个软核每次对片上RAM操作之前都要首先取得Mutex核所有权,操作完之后应立即放弃对Mutex核的所有权,避免单个软核对Mutex核及共享资源的独占。采用前面表所定义的数据结构作为通信的消息,在查询方式下,单个软核需要有任务通过循环不断检查共享数据区标志位flag,等待其它软核送来消息,以便激活自身系统挂起的任务,执行下一步工作。整个流程如图4所示。


  在循环中使用等待延时,避免了多核对Mutex核资源的不停争用,同时留给处理器一定的消息处理时间,但缺点是延长了通信呼叫和应答的时间,在实时设计中应考虑到延时时长对多核通信的影响。此方案在笔者的NiosII双核系统工程中通过验证。


  邮箱内核和共享存储的多核阻塞通信方案


  Altera还提供带Avalon接口的邮箱内核mailbox组件在多核处理器之间发送消息。邮箱内核含有两个互斥体:一个保证对共享存储器的唯一写访问;另一个保证对共享存储器的唯一读访问,它与独立共享存储器一起使用实现多核处理器间的消息队列通信。邮箱内核适于双核间单方向的消息通信,功能相当于FIFO缓冲队列,其传送的消息往往是指向共享内存块结构体的指针,代替实际的数据传输,提高数据交换效率。该系统连接如图5所示。


  在NiosII HAL环境下对邮箱内核访问的函数有:打开、关闭、获取消息、等待消息、发送消息。在构建邮箱内核组件时,选择可用的共享存储器作为消息队列内存,指定消息队列长度size(不超过存储器容量)及其在存储器中的偏移量Offset。这里选择片上RAM作为共享存储器,将其分为两部分:一部分作为消息队列内存;一部分作为消息指针指向的内存数据结构块。定义内存数据结构如表2所示,头信息info可以作为数据帧的序号,保证数据的按序接收。使用邮箱内核消息队列完成双核间大量数据传输的流程如图6时进行等待;数据接受方处理器处于等待消息的状态,一有消息就接收进来。可以在实时操作系统中单独建立发送数据和接收数据的任务,由于没有中断和查询过程,此方案可以达到单方向很高的数据传输率,在笔者的NiosII系统工程中得到了验证测试。




  通用串行接口总线的多核通信方案


  在NiosII多核处理器中可以使用通用串行接口总线如UART、SPI、I2C等进行相互间的通信。这些总线有的是NiosII的通用组件在SOPC Builder中直接添加使用,有的可成熟的第三方组件在SOPC Builder中使用。目前NiosII中可用的几种串行总线如表3所示。


  几种总线各有优缺点和使用限制,例如UART总线比较通用、工作在异步方式,使用方便,但针对一对一的通信,数据率稍低;SPI总线工作在同步方式,一个主设备可以挂多个从设备,数据率较高,但控制比UART复杂、数据线较多。应根据具体应用选择合适总线。这里以UART总线说明和验证通用串行接口总线完成多核间通信的方案。UART核是Altera提供的NiosII通用组件,实现了一个简单的寄存器映像的Avalon从接口,可以很容易集成到NiosII处理器中,允许主外设(如NiosII软核)通过读写寄存器与其进行通信。UART核至少创建Rxd输入和Txd输出两个IO端口,可根据需要创建CTS输入和RTS输出两个流控信号。这里为每个NiosII软核创建一个无流控波特率为1.152Mbps的UART组件,其发送端口Txd与另外一方的接收Rxd连接。NiosII HAL提供UART系统库驱动程序,可使用ANSC C标准函数或者UNIX风格IO函数访问UART,双核通信流程如图7所示。


  双核中的数据发送方查询监测输入字符,出现关键字时发送数据,并以结束符结束发送;数据接收方等待用户输入字符命令,如果是关键字则开始接收数据,在收到结束符时结束接收,处理数据。这个方案实现的是数据接收方请求发送,在笔者NiosII系统工程中以1.152Mbps传输大数据量,验证测试没有问题。也可以根据实际需要使用其它方案。


[1] [2]  下一页



相关文章
· 基于NiosII的多通道PWM信号测量/产生器节点设计[217]
· 用NiosII搭建的固态盘设备系统[250]
· 基于Nios II/s的 通用无线传感网络节点的设计[307]
· 基于NiosII的SOPC中EEPROM Controller Core的设计[310]
· 基于Nios II的多生理参数处理系统的设计[157]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
4G标准芯片受欢迎 多模W
全球芯片厂商集体削减开支 
德国一处理器架构开发商指控赛灵思和安
微型燃料电池2年商业化 续
陕西投资50亿元建立西安半导体产业园
富士通微电子推出同时支持MPEG-2
意法半导体(ST)与麻省理工学院微系
高效率 I2C 
新兴半导体技术催生绿色节能的大学校园
电子系统创新促进汽车走向环保与节能
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
[原创]嵌入式凌动工控主板PV...
[转]教你如何进行电磁兼容设计...
[转]汽车和专业音响原厂设计原...
诺基亚,三星手机原厂图纸和PC...
电子元器件可靠性和失效分析经典...
[建议]FPGA设计技巧与实例...
Xilinx FPGA设计快速...
基于CPLD的各种设计实例和分...
教你如何学会MSP430单片机...
凌阳单片机教程(共8章)非常详...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网