首页> 中国专利> 通用计算数字信号处理器

通用计算数字信号处理器

摘要

本发明公开了一种通用计算数字信号处理器,包括CPU核单元、DSP核单元、多层次互连结构、片内共享存储阵列、片外存储接口、第一高速输入输出接口、第二高速输入输出接口、片间直连接口和核间同步装置,CPU核单元包含若干CPU核,DSP核单元包含若干DSP核,CPU核、DSP核分别通过多层次互连结构与片内共享存储阵列相连;CPU核与第一高速输入输出接口相连,DSP核与第二高速输入输出接口、片间直连接口相连;其应用程序采用统一并行编程方法将编译得到CPU端目标代码和DSP端的目标代码进行统一编译链接得到。本发明具有既能够保持嵌入式DSP基本特征和高性能低功耗的优势,又能够高效支持通用科学计算的优点。

著录项

  • 公开/公告号CN103714039A

    专利类型发明专利

  • 公开/公告日2014-04-09

    原文格式PDF

  • 申请/专利权人 中国人民解放军国防科学技术大学;

    申请/专利号CN201310725118.6

  • 申请日2013-12-25

  • 分类号G06F15/167(20060101);

  • 代理机构43008 湖南兆弘专利事务所;

  • 代理人周长清

  • 地址 410073 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-11

    授权

    授权

  • 2014-05-07

    实质审查的生效 IPC(主分类):G06F15/167 申请日:20131225

    实质审查的生效

  • 2014-04-09

    公开

    公开

说明书

技术领域

本发明涉及微处理器结构设计领域,具体涉及适于64位通用科学计算、同时具有嵌入式数字信号处理器基本特征的多核结构的通用计算数字信号处理器(General-Purpose Digital Signal Processor简称GPDSP)。

背景技术

由于其低功耗和强实时性的优点,数字信号处理器(Digital Signal Processor 简称DSP)作为一种典型的嵌入式微处理器目前已经被广泛应用于各种嵌入式系统中。尽管当前DSP的体系结构在计算和控制上具有了与中央处理器(CPU)同质的许多特征,但是一般认为以下是DSP区别于CPU的基本特征:1)计算能力强,关注实时计算胜于关注控制和事务处理;2)对于典型信号处理有专门硬件支持,如乘加运算、线性寻址;3)嵌入式微处理器的共性特征:地址和指令通路不多于32位,多数数据通路不多于32位;非精确中断;短期离线调试、长期在线驻留运行的程序工作方式(而非通用CPU调试即运行的方法);4)集成外设接口以快速外设为主,特别利于在线收发高速AD/DA数据,也支持DSP间高速直连。

事实上通用科学计算本质上也需要高性能功耗比。因此,如何发挥DSP这种低功耗、高计算性能的优势将其用于通用科学计算成为一项亟待解决的技术问题。因为一般DSP用作通用科学计算时存在如下几个问题:(1)、位宽小,使得计算精度和寻址空间不足。通用科学计算应用至少需要64位精度;(2)、缺乏任务管理、文件控制、进程调度、中断管理等软硬件支持,或者说缺乏操作系统(OS)硬件环境,给通用、多道计算任务管理带来不便;(3)、缺乏统一的高级语言编程模式支持,对多核、向量、数据并行等的支持基本依靠汇编程序编程,不便于通用编程;(4)、不支持本地宿主的程序调试模式,仅依靠它机交叉调试仿真。这些问题严重限制了DSP在通用科学计算领域的应用。综上所述,如何实现一种既发挥DSP高性能功耗比的优势、又适合通用科学计算应用的新型微处理器,从而既能够明显利于提高计算机的性能,又能够对那些需要操作系统支持的高精度、高性能嵌入式领域,如雷达信号处理、水声处理等,提供一种合适的新型DSP已经成为一项亟待解决的关键技术问题。

发明内容

针对现有技术的上述缺点,本发明要解决的技术问题是提供一种既能够保持嵌入式DSP基本特征和高性能低功耗的优势,又能够高效支持通用科学计算的通用计算数字信号处理器。

为了解决上述技术问题,本发明采用的技术方案为:

一种通用计算数字信号处理器,包括:

CPU核单元,包含至少一个CPU核,所述CPU核用于负责包括存储管理、文件控制、进程调度、中断管理任务在内的通用事务管理以及提供对通用操作系统的完整支持;

DSP核单元,包含至少一个用于提供对64位运算以及操作系统微内核支持的DSP核;

多层次互连结构,用于连接CPU核与DSP核,为CPU核与DSP核之间提供用于任务调度、启动停止以及同步操作的快速细粒度通信以及通过高速DMA方式实现大粒度的数据通信;

片内共享存储阵列,用于为CPU核与DSP核提供高带宽供数支持,并提供包含数据失效和更新在内的硬件直接支持的原子操作来支持高速缓存一致性操作;

片外存储接口,用于为CPU核与DSP核实现片外存储扩展;

第一高速输入输出接口,用于实现CPU核的外部数据交换;

第二高速输入输出接口,用于实现DSP核的外部数据交换;

片间直连接口,用于支持通用计算数字信号处理器之间的片间直连;

核间同步装置,用于提供DSP核间硬件同步机制以支持多核间的同步操作,某个DSP核通过核间同步装置使得其它需要该核新数据的DSP核等待,该DSP核产生新数据并通过数据回写机制写回到片内共享存储阵列,该DSP核21通过核间同步装置使得其它需要该核新数据的DSP核继续运行,其它需要该核新数据的DSP核通过数据作废机制确保没有旧的数据并从片内共享存储阵列中读取新的数据;

所述CPU核分别通过多层次互连结构与DSP核相连,所述CPU核、DSP核分别与片内共享存储阵列相连,所述片内共享存储阵列与片外存储接口相连,所述CPU核与第一高速输入输出接口相连,所述DSP核分别与第二高速输入输出接口、片间直连接口相连,所述核间同步装置分别与各个DSP核相连。

作为本发明上述技术方案的进一步改进:

所述DSP核包括:

64位标量处理单元,用于实现操作系统微内核的支持,作为主控单元负责标量程序的执行、负责与CPU核之间的通信以及对64位向量处理阵列的执行控制,负责64位向量处理阵列中共享的相同操作;

64位向量处理阵列,用于支持应用中密集运算任务的解算;

指令派发部件,用于向64位标量处理单元和64位向量处理阵列派发指令;

所述指令派发部件分别与64位标量处理单元、64位向量处理阵列相连,所述64位标量处理单元、64位向量处理阵列之间相互连接。

本发明还包括JTAG调试接口和PCIE接口,所述DSP核还包括一个可访问DSP核内程序员可见的所有存储器及寄存器的仿真调试部件,所述仿真调试部件通过内部总线分别与JTAG调试接口、PCIE接口、CPU核单元相连。

本发明的通用计算数字信号处理器具有下述技术效果:

1、本发明包括CPU核单元,DSP核单元,多层次互连结构、片内共享存储阵列、片外存储接口、第一高速输入输出接口、第二高速输入输出接口、片间直连接口和同步装置,CPU核与DSP核分别通过多层次互连结构相连形成异构多核的紧密耦合结构与组织方式,CPU核与DSP核之间通过多层次互联机制实现程序控制与数据处理紧密耦合的协作方式:一方面CPU核与DSP核之间设置快速的控制通路以及寄存器级的数据通路,高效支持具有细粒度、强实时性特点的控制与数据交互(如任务调度、启动停止、CPU核与DSP核间的协同程序跳转以及快速同步等);另一方面CPU核与DSP核之间通过直接存储器存取(DMA)通道以及共享存储的方式实现大粒度的数据通信与共享,因此本发明能够从不同的层次上实现了CPU核与DSP核间的紧密协同配合,将嵌入式信号处理与通用科学计算相结合,既保持DSP嵌入式信号处理中的高度实时计算和低功耗的优点,又实现对通用科学计算的精度和通用性的支持。

2、本发明的DSP核单元包含至少一个用于提供对64位运算以及操作系统微内核支持的DSP核,适合科学计算精度与地址空间的宽数位DSP核结构与组织方式。通过将DSP核的指令、数据位宽64位以上,地址总线40位以上,从而能够支持64位双精度浮点和64位定点算术逻辑计算,特别是支持64位双精度浮点、定点乘加操作,采用包含至少64位位宽的通用寄存器文件和数据总线的数据通路支持高效的数据供给,通过对64位运算的支持,可以实现对计算精度和寻址空间的大幅提升。

3、本发明融合DSP基本特征与通用计算的控制要求,通过CPU核用于负责包括存储管理、文件控制、进程调度、中断管理任务在内的通用事务管理以及提供对通用操作系统的完整支持,通过DSP核提供对64位运算以及对仅具有任务调度以及存储管理等基本功能的操作系统微内核支持,在DSP核中实现对复杂流控结构的适度支持,包括提供对限制向量阵列处理效率的分支指令的支持;提供对OS的多层次、可裁剪的支持方案,支持在片上存储阵列中提供对诸如数据失效、更新等Cache一致性机制的适度支持,采取软件、硬件协同配合的高速缓存的一致性方案,使得本发明能够实现对操作系统的多层次支持,明显提高了本发明对任务管理、文件控制、进程调度、中断管理的软硬件支持,方便了通用任务调度操作,与此同时,多层次的支持方案也带来了硬件实现的灵活性。

4、本发明能够支持GPDSP结构的统一并行编程方法,通过编译指导语句描述CPU核间的线程级并行、多DSP核间的任务级并行、CPU 核与DSP核之间的线程级并行与同步,并分别标识CPU核与DSP核的代码,在统一的编译框架中分别调用CPU和DSP编译器编译不同的计算代码,并统一链接为单芯片的可执行代码,实现GPDSP中多线程自动并行和向量化的统一并行编程,有利于增强高级语言编程特别是对多核、向量运算阵列等并行资源的开发效率,具有通用性和易用性好、应用范围广的优点。

5、本发明进一步包括JTAG调试接口和PCIE接口, DSP核还包括一个可访问DSP核内程序员可见的所有存储器及寄存器的仿真调试部件,仿真调试部件通过内部总线分别与JTAG调试接口、PCIE接口、CPU核单元相连,既提供本地CPU宿主调试、又同时保持它机交叉仿真调试的调试结构与设计方法,因此能够实现它机宿主与DSP核之间地址资源(诸如寄存器、存储器等资源)准确、高速访问机制,实现对DSP运行状态的准确获取,方便实现对操作系统微内核资源的查看和修改等高级调试,具有调试功能方便且快捷高效的优点。

附图说明

图1为本发明实施例的整体框架结构示意图。

图2为本发明实施例中DSP核的框架结构示意图。

图3为本发明实施例的调试接口示意图。

图4为本发明实施例的局部详细框架结构示意图。

图5为本发明实施例中多线程自动并行和向量化的统一编程模型示意图。

图例说明:1、CPU核单元;101、JTAG调试接口;102、PCIE接口;11、CPU核;2、DSP核单元;21、DSP核;211、64位标量处理单元;2111、指令控制部件;2112、一级高速缓冲;2113、标量运算单元;2114、标量存储控制部件;2115、标量寄存器文件;212、64位向量处理阵列;2121、DMA部件;2122、共享阵列存储体;2123、处理单元;2124、向量存储控制部件;2125、向量寄存器文件;2126、向量运算单元;213、指令派发部件;214、仿真调试部件;3、多层次互连结构;4、片内共享存储阵列;5、片外存储接口;6、第一高速输入输出接口;7、第二高速输入输出接口;8、片间直连接口;9、核间同步装置。

具体实施方式

如图1所示,本实施例的通用计算数字信号处理器包括:

CPU核单元1,包含多个CPU核11,CPU核11用于负责包括存储管理、文件控制、进程调度、中断管理任务在内的通用事务管理以及提供对通用操作系统的完整支持;而且,CPU核单元1中包含CPU核11的数量可以根据需要进调整,CPU核11的数量为1个以上均可以实现。

DSP核单元2,包含多个用于提供对64位运算以及操作系统微内核支持的DSP核21;而且,DSP核单元2中包含DSP核21的数量可以根据需要进调整,DSP核21的数量为1个以上均可以实现。

多层次互连结构3,用于连接CPU核11与DSP核21,为CPU核11与DSP核21之间提供用于任务调度、启动停止以及同步操作的快速细粒度通信以及通过高速DMA方式实现大粒度的数据通信。多层次互连结构3连接CPU核11与DSP核21,既能够通过“细粒度控制及数据通路”提供用于任务调度、启动停止以及同步操作的快速细粒度通信,又可以通过“快速DMA”的方式实现大粒度的数据通信。

片内共享存储阵列4,用于为CPU核11与DSP核21提供高带宽供数支持,并提供包含数据失效和更新在内的硬件直接支持的原子操作来支持高速缓存一致性操作。片内共享存储阵列4为CPU核11以及DSP核21提供高带宽供数支持,进一步增强了大粒度数据通信的效率,并对高速缓存一致性具有适度支持功能,可提供诸如数据失效和更新等硬件直接支持的原子操作。

片外存储接口5,用于为CPU核11与DSP核21实现片外存储扩展,使得存储的扩展更加灵活方便。

第一高速输入输出接口6,用于实现CPU核11的外部数据交换。

第二高速输入输出接口7,用于实现DSP核21的外部数据交换。

片间直连接口8,用于支持通用计算数字信号处理器之间的片间直连。

核间同步装置9,用于提供DSP核间硬件同步机制以支持多核间的同步操作,某个DSP核21通过核间同步装置9使得其它需要该核新数据的DSP核21等待,该DSP核21产生新数据并通过数据回写机制写回到片内共享存储阵列4,该DSP核21通过核间同步装置9使得其它需要该核新数据的DSP核21继续运行,其它需要该核新数据的DSP核21通过数据作废机制确保没有旧的数据并从片内共享存储阵列4中读取新的数据。

CPU核11分别通过多层次互连结构3与DSP核21相连,CPU核11、DSP核21分别与片内共享存储阵列4相连,片内共享存储阵列4与片外存储接口5相连,CPU核11与第一高速输入输出接口6相连,DSP核21分别与第二高速输入输出接口7、片间直连接口8相连,核间同步装置9分别与各个DSP核21相连。

如图2所示,DSP核21包括:

64位标量处理单元211,用于实现操作系统微内核的支持,作为主控单元负责标量程序的执行、负责与CPU核11之间的高效通信以及对64位向量处理阵列212的执行控制,负责64位向量处理阵列212中共享的相同操作(包括公共变量的配置和修改、处理阵列的统一流控操作)。

64位向量处理阵列212,用于支持应用中密集运算任务的解算。

指令派发部件213,用于向64位标量处理单元211和64位向量处理阵列212派发指令。

指令派发部件213分别与64位标量处理单元211、64位向量处理阵列212相连,64位标量处理单元211、64位向量处理阵列212之间相互连接。

本实施例的DSP核21通过64位标量处理单元211、64位向量处理阵列212,能够提供对64位运算的支持,特别是提供对双精度浮点和定点操作的高效支持,通过其64位标量处理单元211提供对仅支持进程调度、存储管理等基本功能的操作系统微内核的支持,通过其64位向量处理阵列212支持应用中密集运算任务的解算。在执行计算时,指令派发部件213分别派发出标量指令给64位标量处理单元211、派发向量指令到64位向量处理阵列212。64位标量处理单元211和64位向量处理阵列212之间协同配合,提供对影响向量阵列执行效率的复杂流控操作的适度支持,例如对循环体中分支结构的支持,这些流控操作包括循环体中的分支结构,以及while类循环次数不确定的循环结构。

如图3所示,本实施例还包括JTAG调试接口101和PCIE接口102,DSP核21还包括一个可访问DSP核21内程序员可见的所有存储器及寄存器的仿真调试部件214,仿真调试部件214通过内部总线分别与JTAG调试接口101、PCIE接口102、CPU核单元1相连。仿真调试部件214可以,提供对DSP核单元2运行状态的准确获取,以及对操作系统微内核资源的查看和修改等高级调试功能,这些存储器和寄存器也被64位标量处理单元211、64位向量处理阵列212访问。由于仿真调试部件214通过内部总线分别与JTAG调试接口101、PCIE接口102、CPU核单元1相连,因此本实施例能够支持三种调试模式:JTAG调试模式、PCIE调试模式和CPU调试模式。仿真调试部件214支持来自JTAG调试接口101的调试请求,并根据这些请求访问本实施例内的存储器或寄存器。JTAG调试接口101是传统DSP普遍支持的仿真接口,支持外部主机访问DSP内部存储器和寄存器。由于JTAG调试接口101使用的JTAG接口协议属于串行协议,且时钟频率通常小于100MHz,其访问速度较慢。本实施例还支持通过内部总线支持本地的CPU核单元1或外部主机通过PCIE接口102的调试请求,由于内部总线采用并行传输协议且工作频率远大于JTAG调试接口101的接口频率,因此能够支持高速调试访问。通过这种高速调试访问,CPU核11与DSP核21之间就具有快速的控制通路以及寄存器级的数据通路,对诸如任务调度、启动停止、CPU核11与DSP核21间的协同程序跳转以及快速同步等具有细粒度、强实时性特点的交互提供高效支持。

本实施例融合了DSP基本特征与通用计算的控制要求,通过CPU核11提供对OS的完整支持,DSP核21采用超长指令字结构,DSP核21包含64位标量处理单元211和64位向量处理阵列212,64位标量处理单元211能够实现对仅具有任务调度以及存储管理等基本功能的OS微内核的支持。如图4所示,64位标量处理单元211内部包括指令控制部件2111、一级高速缓冲2112、标量运算单元2113、标量存储控制部件2114、标量寄存器文件2115,指令控制部件2111分别与指令派发部件213、标量寄存器文件2115、一级高速缓冲2112相连,一级高速缓冲2112与片内共享存储阵列4相连,标量存储控制部件2114分别与一级高速缓冲2112、标量寄存器文件2115相连,标量运算单元2113则与标量寄存器文件2115相连。指令控制部件2111负责从一级高速缓冲2112中获取指令并发送到指令派发部件213,指令派发部件213再将相应指令分别发送到64位标量处理单元211、64位向量处理阵列212中进行处理。64位向量处理阵列212包括DMA部件2121、共享阵列存储体2122和同构或异构的多个处理单元2123,处理单元2123之间通过共享阵列存储体2122实现数据的协同处理与相互通信,共享阵列存储体2122则通过DMA部件2121与片内共享存储阵列4相连。其中,处理单元2123用于负责应用中密集运算任务的解算,每一个处理单元2123包括依次相连的向量存储控制部件2124、向量寄存器文件2125和向量运算单元2126。需要说明的是,本实施例也可以根据需要采用其它结构的64位标量处理单元211和64位向量处理阵列212,在此不再赘述。本实施例中,DSP核21能够实现对复杂流控结构的适度支持,首先DSP核21通过两种机制来减少分支开销:第一种机制是采用条件执行指令,条件执行指令可根据寄存器文件(标量寄存器文件2115或者向量寄存器文件2125)中某一寄存器状态判断是否执行,如果不执行,该指令转变为空操作。分支条件的值被放入某一寄存器,基本块中的指令均可使用条件指令,而不需要使用分支指令,避免分支带来的开销。同时,采用分支延迟槽将分支前面的基本块指令调度到分支延迟槽中,硬件保证在执行分支指令后,分支延迟槽内的指令必须执行。该机制可减少分支指令的开销。第二种机制是基于向量处理阵列状态的分支指令,该指令根据64位向量处理阵列212中每个向量寄存器文件2125中的某一同编号寄存器的值决定是否发生跳转。各个DSP核21之间的数据一致性维护由软件和硬件协同完成,硬件提供一级高速缓冲2112的数据写回机制以及核间同步转置,软件通过操作一级高速缓冲2112以及核间同步装置9实现核间数据一致性操作。此外,DSP核21的一级高速缓冲2112还提供数据作废机制,可使一级高速缓冲2112内的全部或部分数据无效,核间同步装置9实现多个DSP核21之间的同步,本实施例中维护核间数据一致性的详细步骤如下: (1)某个DSP核21通过核间同步装置9使得其它需要该核新数据的DSP核21等待;(2)该DSP核21产生新数据并通过一级高速缓冲2112提供的数据回写机制,将新数据写回到片内共享存储阵列4;(3)该DSP核21通过核间同步装置9,使得其它需要该核新数据的DSP核21继续运行;(4) 其它需要该DSP核21新数据的核通过一级高速缓冲2112的数据作废机制确保没有旧的数据,并从片内共享存储阵列4中读取新的数据。

本实施例的硬件结构能够支持GPDSP结构的统一并行编程方法,本实施例的统一并行编程实现方法是在标准的OpenMP并行编程方法基础上,通过扩充若干DSP编译指导语句,实现对CPU+DSP异构多核处理器中多线程自动并行和向量化的统一并行编程,通过编译指导语句描述CPU核11间的线程级并行、多DSP核21间的任务级并行、CPU核11与DSP核21之间的线程级并行与同步,并分别标识CPU核11与DSP核21的代码,在统一的编译框架中分别调用CPU和DSP编译器编译不同的计算代码,并统一链接为单芯片的可执行代码,实现多线程自动并行和向量化的统一并行编程。如图5所示,本实施例支持的通用计算数字信号处理器的统一并行编程方法的详细步骤如下:

1)程序员使用标准编程语言和语法(如标准C/C++语法)编写应用程序,同时在要求CPU核单元多线程并行执行的语句块前插入OpenMP编译指导语句、在要求DSP核单元执行计算的语句块前插入DSP编译指导语句;

2)在编译应用程序时,OpenMP编译指导语句指导CPU编译器实现多线程自动并行化, DSP编译指导语句指导DSP编译器实现DSP核端的向量化代码编译;

3)CPU端编译器工具对CPU端的目标代码和DSP端的目标代码进行统一编译和链接, 最终输出可用于通用计算数字信号处理器执行的可执行代码。

因此,根据不同通用科学计算的需要进行上述步骤1)~3)进行统一并行编程即可得到对应的可执行代码,可执行代码可直接使用通用计算数字信号处理器执行,从而能够利用本实施例通用计算数字信号处理器中CPU核单元1和DSP核单元2,在保持嵌入式DSP基本特征和高性能低功耗的优势的基础上,高效地支持通用科学计算。本实施例支持的统一并行编程方法通过编译指导语句描述CPU核间的线程级并行、多DSP核间的任务级并行、CPU 核与DSP核之间的线程级并行与同步,并分别标识CPU核与DSP核的代码,在统一的编译框架中分别调用CPU和DSP编译器编译不同的计算代码,并统一链接为单芯片的可执行代码,实现GPDSP中多线程自动并行和向量化的统一并行编程,有利于增强高级语言编程特别是对多核、向量运算阵列等并行资源的开发效率,具有通用性和易用性好、应用范围广的优点。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号