APP下载

一种多核处理器芯片设计与实现关键技术研究

2021-07-06何嘉文王宣明蔡叶芳

计算机技术与发展 2021年6期
关键词:异构中断总线

杜 斐,何嘉文,王宣明,蔡叶芳,田 泽

(航空工业西安航空计算技术研究所,陕西 西安 710068)

0 引 言

随着嵌入式技术的不断发展,HMPU逐渐广泛应用于高性能计算领域。异构多核处理器,即具有两个或以上处理器内核的处理器,因其计算效率高,且可针对不同应用调整结构,其应用相当广泛。在具体应用中,多核处理器的不同处理器核之间需要进行大量的、频繁的数据交换,因此,处理器核间的通信效率严重影响处理器的性能[1]。

目前通过调查研究,异构多核处理器芯片核间通信领域在国内外已经取得了一些显著研究成果。例如,Mittal等提出了一种适应于多核处理器CPU-GPU核间通信机制,通过不同的通信通道合理地迁移任务来提高核间协作以及核间通信的效率;冯强等基于ARM与DSP双核架构嵌入式数控系统,设计并实现了一种基于共享内存的核间通信机制,该通信机制优化了双核间的数据传输延迟和数据传输量[1]。冯瑞青等[2]着重研究分析了ARM+DSP片上基于共享总线的Mailbox异构多核间通信机制,实现了ARM核上Linux与DSP核上Reworks之间的多核通信组件、DSP核的动态加载程序、协同计算等功能。国常义等针对目前通用的达芬奇异构多核处理器[3],研究了ARM核、DSP核以及视频协作处理器之间的通信与协作机制,详细阐述了核间互连结构与核间互连软件的实现[4-6]。

基于上述研究,根据信息融合处理系统的发展需求,以先进SoC为技术手段,基于国内现有IP和自主工艺平台,在单芯片上实现数据处理及信号处理、多数据接口、高精度采集以及异构多核可定制信息处理为目的,提出一种基于“CPU+DSP+FPGA+IO”结构的异构多核处理器芯片(heterogeneous multi-processor unit,HMPU)的设计方案。采用共享总线的Mailbox异构多核间通信机制,以满足信号采样处理、总线协议处理、数据处理及控制功能。

1 片上总线概述

PLB总线是一种适用于处理器的高性能指令和数据总线,其功能为在主设备和从设备之间交换指令和数据。PLB总线的地址线为32位(支持扩展到64位总线),数据线为128位,每个PLB的主设备,其地址线、写数据线、读数据线、控制通路均独立连接到PLB总线上,PLB总线通过PLB仲裁器根据设置的优先级进行不同主设备的仲裁[7-8]。

OPB总线用于连接低性能的设备,包括IIC、UART、GPIO等,其工作频率、总线地址和数据宽度均低于PLB总线。DCR总线为直接访问总线,其优先级高于PLB和OPB总线,用于关键外设的寄存器配置。数字信号处理IP核采用AXI master 兼容的接口作为数字信号处理器与片上其它设备交互的核心接口,AXI支持读写、请求地址和数据的完全独立处理[9-10]。

2 异构多核处理器设计与实现关键技术

2.1 芯片体系架构

异构多核处理器(以下简称HMPU)内部集成了嵌入式处理器、数字信号处理器以及多种常用接口,同时集成了现场可编程逻辑,可以完成信号采样处理、总线协议处理、数据处理及控制功能,是一款具有丰富外设接口的高性能、低功耗异构多核处理器。

异构多核处理器体系架构框图如图1所示。其中嵌入式处理器负责I/O处理与管理,数据信号处理器负责数据解算处理,FPGA供用户定制所需逻辑功能[11-12]。

图1 异构多核处理器体系架构框图

数字信号处理器主要负责计算功能,且仅能控制DPRAM与FPGA,数字信号处理器通过EMIF访问SDRAM等外部存储器,而嵌入式处理器负责设备管理。两个处理器处于对等位置,数字信号处理器在嵌入式处理器不工作时可以控制所有设备,同时工作时需要预先设定设备分配以维护数据一致性。

此体系架构具有如下优点:

(a)地位对等的双核。

除数字信号处理器IP内部集成的设备外,所有片上设备嵌入式处理器和数字信号处理器均可以访问;

嵌入式处理器和数字信号处理器可以在对方关闭情况下独立工作;

灵活性高,可以自由分配设备所有权。

(b)分工确定的主从式。

嵌入式处理器作为IO处理机管理CoreConnect设备,数字信号处理器主要负责运算;

数字信号处理器独立工作时无法访问CoreConnect设备;

保留了数字信号处理器到PLB通路,提供一定程度的灵活性。

2.2 芯片详细设计与实现关键技术

2.2.1 邮箱中断控制器(MailBox)

为解决多核处理器工作同步与容错处理问题,引入互中断、互复位、互调试机制。数字信号处理器与嵌入式处理器可以通过MailBox方式发起中断对方操作,用于关键消息同步。数字信号处理器与嵌入式处理器周期喂狗,可检测软件运行情况,如软件异常不能周期喂狗,则产生WDT中断上报对方处理器。在某方处理器异常时,另一方处理器可对其复位。

MailBox模块具有标准DCR总线从设备接口和AXI总线接口,可连接嵌入式处理器和数字信号处理器。该模块的功能框图如图2所示。

图2 Mailbox系统应用框图

2.2.1.1 读写数据传输

各处理器核的通信使用MailBox,分为发送级MailBox和接收级MailBox,发送级MailBox可供发送主设备发送数据以便传递消息,而接收级MailBox则设计为方便接收主设备读MailBox的相关寄存器来获取数据。无论是写操作还是读操作,MailBox内部均有特定的读写数据控制模块,控制内部发送写操作还是读操作。读写控制单元受FIFO当前数据空满的影响。若此时FIFO为空,只能发出写操作,不能发出读操作,若此时FIFO为满,只能发出读操作,不能发出写操作,否则均会导致错误并使主机暂停,等待处理此错误。

2.2.1.2 MailBox状态功能

为获取当前MailBox的运行状态,设计者设计了一个查询MailBox的机制,即设计一个寄存器,其包含了MailBox的接收和发送方向的FIFO状态以及当前是否正在进行接收和发送操作。MailBox的接收和发送方向的FIFO状态表明当前门限是否超出标准,当前是否正在进行接收和发送操作表明当前FIFO的空满,以避免写错误和读错误。

2.2.1.3 发送与接收中断门限功能设定

为避免MailBox超出门限,设计者设计了一套机制,即通过中断将FIFO的内部信息反馈到使用者,并将FIFO信息加入MailBox特定信号。例如,当前发送操作时,FIFO之间的数据总数多余门限的要求,系统将发送门限中断提醒使用者以避免错误。

2.2.1.4 中断状态功能

MailBox具有中断请求功能,此设计包括两类,即容错中断和邮箱中断,其中容错中断包括看门狗中断和错误状态中断,两邮箱中断包括发送和接收门限中断。前两种中断是一种容错机制,需对处理器进行相关矫正,而后两种中断则是邮箱中断,表明FIFO的状态。

2.2.1.5 中断使能方式

MailBox对中断请求的控制也有独立的控制电路,该部分需要上层主设备根据具体使用情况配置中断使能位,若使能位为开,则当满足触发条件时,会产生中断请求,提醒上层主设备处理相关情况。

2.2.1.6 看门狗定时功能设定

为防止软件锁死情况的发生,MailBox设计了看门狗中断,即检测处理器是否长时间处于等待响应的状态,若等待时间超过主设备设置的时间,即会产生看门狗中断,此时主机端必须复位处理器方可使处理器恢复正常工作。

2.2.1.7 复位控制功能

MailBox设有通信时的容错机制。该机制由看门狗定时器触发对方主机中断,对方主机会采取相应措施来恢复该错误,这种恢复机制主要是通过对方主机配置软件向MailBox发出控制指令,而MailBox中设有对主机核复位的功能,该功能可以复位软件执行过程以达到纠正异常的情况。

2.2.2 数据共享区(DPRAM)

数据共享区采用双端口静态随机存储器(DPRAM)实现,作为嵌入式处理器和数字信号处理器直接共享资源。DPRAM还提供了信号量机制来支持对共享资源的仲裁。

从整体架构分析,DPRAM的接口一般为mem读写接口,而不是处理器需要的PLB总线接口和AXI总线接口,因此必须在DPRAM的两个读写接口外分别添加时序转换接口(可根据实际应用在以下接口中选择两个),包括PLB-DPRAM接口、AXI-DPRAM接口、DCR-DPRAM接口、硬线接口、低功耗接口申请接口。其中,PLB-DPRAM接口、AXI-DPRAM接口用于处理器核间的数据交互,而DCR-DPRAM接口、AXI-DPRAM接口用于处理器间的控制流交互。

为降低功耗,需要给控制逻辑增加相应的低功耗申请接口。上层设备可根据需要选择是否在处理器空闲时进行休眠状态,以减小功耗。

硬线接口的作用是通过外部接口设置重要寄存器的复位值,使用者可根据芯片的使用场景通过硬线对寄存器复位值进行重置。

DPRAM控制器是PLB和AXI总线的从设备,因此能够接收PLB和AXI接口的各种类型的访问操作。为增加通信效率,DPRAM应支持单拍、line和Burst操作,且应能够响应PLB一侧的非法操作。

2.2.3 FPGA可编程逻辑(FPGA)

FPGA为内嵌在异构多核处理器中的现场可编程逻辑门阵列,可以支持用户根据设计需求对其进行编程从而实现所需求的电路功能,可支持嵌入式处理器和数字信号处理器对其内部资源访问,支持PROM和软件两种方式进行FPGA的配置。FPGA包含FPGA处理器接口电路、FPGA配置电路及IP核。

其中FPGA处理器接口模块主要提供嵌入式处理器和数字信号处理器访问FPGA内部资源的接口,功能框图如图3所示。嵌入式处理器或数字信号处理器如需访问FPGA内部资源,需首先向PLB/AXI仲裁逻辑发起访问请求,等待授权后方能通过PLB/AXI到FPGA接口逻辑访问到FPGA内部资源,访问完成后需通知PLB/AXI仲裁逻辑解除占用[13-15]。

图3 FPGA处理器接口模块框图

FPGA配置电路实现PROM和软件方式来进行IP的配置,通过将应用指定的配置数据下载入内部配置存储器的方法完成配置下载操作。

3 仿真验证

3.1 模块级验证

模块级验证是在计算机仿真环境中,借助于仿真工具,运行模块级测试平台和测试用例,向被测试模块/IP注入测试激励,以模拟模块/IP的各种应用场景,达到预期的代码覆盖率和功能覆盖率。

模块级验证的对象是异构多核处理器设计中用到的模块/IP。在各模块代码设计完成后,首先是在计算机上进行基于各模块功能的独立虚拟验证。参照各模块的功能规范,根据对模块功能的理解和可能的各种应用环境,编写测试平台和测试用例代码来产生激励,模拟各种应用环境来测试验证各模块的功能,确保各模块功能的正确性。模块级验证,可检查各个模块在系统集成之前的功能是否正确,性能是否满足设计的要求。根据各模块特点,部分模块无法在IP级进行仿真,需在系统集成后才能进行仿真验证[16]。模块/IP级仿真验证平台如图4所示。

图4 模块/IP级仿真验证平台

3.2 虚拟仿真验证

异构多核处理器芯片虚拟仿真验证平台如图5所示。虚拟原型验证平台的工作流程为,分别编写嵌入式处理器平台测试软件与数字信号处理器平台测试软件,分别经过编译连接后,生成存储器映像文件到存储器模型中,系统复位撤消后,处理器和DSP(数字信号处理器)分别从外部FLASH模型中读取指令,之后控制整个虚拟验证平台。另外使用外部逻辑监控处理器的工作,或使用程序读写处理器的相关存储,以判断处理器的工作状态正确与否。

图5 异构多核处理器芯片虚拟仿真验证平台框图

3.3 FPGA原型验证

FPGA原型验证,通过开发异构多核处理器的FPGA原型验证板,将HMP的RTL级电路设计经EDA工具综合、实现后下载到FPGA芯片中,测试程序准备好后,使用专用编程电缆将程序烧写到FPGA验证板上的FLASH器件上,之后上电后将复位信号设置足够长复位时间后置为不复位,此时处理器将自动从FLASH地址32’hFFFFFFFC取出第一条指令,之后按照指令跳转,直到测试完成。

FPGA验证和虚拟平台验证两者是相辅相成的,虚拟验证是进行精细的验证,FPGA则可模拟芯片实际使用环境,对芯片进行大数据量长时间的测试,两者配合能够尽可能地提高芯片验证的覆盖率,并且FPGA验证平台稍加改进,即可改为芯片应用验证平台,还能够验证配套软件驱动的正确性[17-18]。

4 结束语

介绍了一种基于“CPU+DSP+FPGA+IO”结构的异构多核处理器芯片的设计方案,实现了信号采样处理、总线协议处理、数据处理及控制功能。目前此芯片一次流片成功,通过对芯片的功能、性能测试以及系统应用验证结果表明,该款芯片可以在单片SoC上实现多个系统的主要功能,且通过多数据接口、高精度采集以及异构多核可定制SoC灵活实现了新一代信息融合处理系统小型化、低功耗、高可靠性及国产化水平,进一步提高了对于环境适应性的要求,并可以广泛推广到其他新一代信息处理系统中。

猜你喜欢

异构中断总线
ETC拓展应用场景下的多源异构交易系统
离散异构线性多智能体系统的输出一致性
试论同课异构之“同”与“异”
TMS320F28335外部中断分析与研究
关于CAN总线的地铁屏蔽门控制思路论述
雪后林鸟
凝聚与铺张——孙绍振教授《以丑、呆为美》两岸同课异构教学观摩后记
跟踪导练(二)(5)
新闻浮世绘
Q&A热线