基于片上总线和共享内存的异构众核ASIP架构的制作方法

文档序号:13421567阅读:150来源:国知局
基于片上总线和共享内存的异构众核ASIP架构的制作方法

本发明属于电子技术领域,涉及一种异构众核asip架构,具体涉及一种基于片上总线和共享内存的异构众核asip架构,可用于实现嵌入式异构众核系统,尤其适用于复杂雷达信号处理系统或航天图像处理系统的单芯片集成。



背景技术:

近年来,受到功耗、互连线延时和设计复杂度这三大物理规律的限制,遵循摩尔定律持续提高的硬件集成度无法有效转换为计算性能的增长,多核处理器的发展显得愈发的重要,同时意味着高性能处理器的开发方式从指令级并行(ilp)扩展到了数据级并行(dlp)和线程级并行(tlp)。而随着多核处理器需要处理的任务越来越复杂多样,单一结构的多核处理器的性能已渐渐不能满足人们的要求,异构的思想逐渐被提出,异构的思路就是在多核处理器架构中采用两种或者多种不同类型的处理器结构。

异构多核处理器由两种或者多种不同类型的处理器组成,不同类型的处理器可以承担不同类型的计算任务,例如结构简单、功能专一的多核处理器承担计算数据量大的任务,结构复杂、功能强大的单核处理器承担计算方式复杂的任务,从而为不同需求的应用提供更加灵活、高效的并行处理机制,业界一般将大于或等于八个处理器的异构多核处理器称之为异构众核处理器。

对于实现异构多核处理器,数字信号处理器(dsp)和专用集成电路(asic)是两种常用处理器类型,dsp具有设计成本低,实现算法多样,可迭代开发的优点,但是资源利用率低,并行化难度大,运算速率受限;asic具有算法功能部件可定制,运行速度高,占用资源少的优点,但是开发难度较高,实现算法单一,开发周期较长。

专用指令集处理器(asip),是一种新型的半定制化的处理器类型,它平衡了dsp和asic两者的优点和缺点,在一定程度上兼顾了运行速度、功耗以及设计灵活性。asip一般以现场可编程门阵列(fpga)作为硬件载体,同时配置一套定制的指令集,设计实现特定的电路结构,逐渐成为实现异构众核处理器架构的一种可选处理器。

现有的异构众核asip架构中,由于使用的处理器数量较多,并且每个处理器都需要存储资源存储相应的处理器所需的数据,所以占据了大量数据存储器资源,若所有处理器采用同一存储器进行读写操作,由于传统的存储器最多只能实现两个端口同时读写,多个处理器对存储器进行读写操作将会占用大量的时间并容易引起冲突,并且由于各处理器直接通过各自之间的互连线进行通信,需通信的模块之间都会占用通信资源,处理器数目增多后通信方式会愈加复杂,由于没有统一的通信总线,现有的异构众核asip架构扩展为更强处理能力的架构也会难以实现。



技术实现要素:

本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于片上总线和共享内存的异构众核asip架构,旨在减少资源占用,降低通信开销,并通过扩展众核处理器的数量提高处理能力。

为实现上述目的,本发明采取的技术方案为:

一种基于片上总线和共享内存的异构众核asip架构,包括众核处理器、单核处理器、多端口共享存储器和wishbone片上总线模块:

所述众核处理器,采用simd处理器,用于执行计算数据量大的任务,包括dma数据分发控制器、全局指令控制器、八个输入数据存储器、八个risc处理器和八个输出数据存储器,其中:

dma数据分发控制器,用于引入外部数据并分发到八个输入数据存储器中;

全局指令控制器,用于控制分发到八个risc处理器中指令的执行顺序,并对指令进行取指和译码;

八个输入数据存储器,用于对dma数据分发控制器分发的数据进行缓存;

八个risc处理器,用于依据从全局指令控制器读取的指令,对从多端口共享存储器和各risc处理器对应的输入数据存储器读取的数据进行处理,并将处理结果写入多端口共享存储器和各risc处理器对应的输出数据存储器中;

八个输出数据存储器,用于缓存各输出数据存储器对应的risc处理器写入的数据;

所述单核处理器,采用sparc处理器,用于执行计算方式复杂的运算任务,同时对simd处理器和sparc处理器执行的任务进行调度,包括指令控制器、sparc输入数据存储器、sparc处理单元和sparc输出数据存储器,其中:

指令控制器,用于控制分发到sparc处理器中指令的执行顺序,并对指令进行取指和译码;

sparc输入数据存储器,用于对从sparc处理器外部写入的数据进行缓存;

sparc处理单元,用于依据从指令控制器读取的指令,对从sparc输入数据存储器和多端口共享存储器读取的数据进行处理,并将处理结果写入sparc输出数据存储器和多端口共享存储器中;

sparc输出数据存储器,用于对从sparc处理单元写入的数据进行缓存;

所述多端口共享存储器,包括分块存储空间、二级地址译码器和多路数据选择器,其中:

分块存储空间,用于对从risc处理器和sparc处理器中读出的数据进行缓存;

二级地址译码器,用于对从risc处理器和sparc处理器读取的地址进行解析,并依据解析后地址从对应编号的分块存储空间中读取数据;

多路数据选择器,用于依据从二级地址译码器中读取的解析后地址,对从分块存储空间中读取的数据进行选择,并将选择结果写入risc处理器或者sparc处理器;

所述wishbone片上总线模块,用于提供低开销的控制信号通路,实现simd处理器和sparc处理器的协同,包括核间总线和输出总线,其中:

核间总线,用于实现全局指令控制器、dma数据分发控制器、指令控制器和uart控制器之间的数据交换;

输出总线,用于实现八个输出数据存储器和sparc输出数据存储器之间的数据交换。

本发明与现有技术相比,具有以下优点:

1.本发明用多端口共享存储器作为单核处理器与众核处理器的共享内存,采用共享内存的紧耦合通信方式,实现了无冲突的多端口同时读写操作,与传统异构众核处理器架构中每个处理器都使用独立存储器相比,本发明中所有处理器使用一块共享存储器缓存数据,节约了资源。

2.本发明用wishbone片上总线作为异构众核asip的通信总线,通信方式简单,与传统异构众核处理器架构中各处理器之间采用互连线通信相比,本发明采用共享总线方式作为wishbone片上总线的连接方式,所有处理器使用一条片上总线进行通信,节约了通信开销。

3.本发明用wishbone片上总线作为异构众核asip的通信总线,与传统异构众核处理器架构相比,本发明中由于所有处理器使用了统一的总线进行通信,通过在核间总线内增加主设备和从设备的方式,使得本发明可在通信总线上挂载更多的处理器,提高处理能力。

附图说明

图1为本发明的整体结构示意图;

图2为本发明中risc处理器的结构示意图;

图3为本发明中sparc处理单元的结构示意图;

图4为本发明中多端口共享内存的结构示意图;

图5为本发明的中wishbone核间总线的结构示意图。

具体实施方式

下面结合附图和具体实施例,对本发明作进一步的详细描述。

参照图1,基于片上总线和共享内存的异构众核asip架构,包括众核处理器、单核处理器、多端口共享存储器和wishbone片上总线模块。

所述众核处理器,由于simd处理器更适合处理运算数据量大的任务,故本发明中采用simd处理器,包括dma数据分发控制器、全局指令控制器,在本发明中,为了节约资源,输入数据存储器、risc处理器和输出数据存储器都只采用了八个,其中:

dma数据分发控制器,通过dma内部的控制器直接引入外部数据并分发到八个输入数据存储器中。

全局指令控制器,通过程序流程控制器生成pc指针,并依据pc指针控制分发到sparc处理器中指令的执行顺序,使用pc指针作为指令存储器的地址,从指令存储器中读取和pc指针相对应的指令,并对从指令存储器中读取的指令进行译码,将译码结果写入八个risc处理器。

八个输入数据存储器,由对时钟敏感的寄存器作为基本单元,通过级联和并联的方式构成,通过时钟触发的方式对dma数据分发控制器分发的数据进行缓存,并将缓存的数据分别写入各输入数据存储器对应的risc处理器中。

八个risc处理器,每个处理器结构一样,risc处理器结构如图2所示,用于依据从全局指令控制器读取的指令,对从多端口共享存储器和各risc处理器对应的输入数据存储器读取的数据进行处理,并将处理结果写入多端口共享存储器和各risc处理器对应的输出数据存储器中,包括数据地址产生器、通用寄存器、特殊寄存器和基本运算单元,其中,数据地址产生器依据从全局指令控制器读取的指令,通过基址加上变址的寻址方式,将基址和变址相加后的结果作为地址写入共享存储器、或者各risc处理器对应的输入数据存储器或输出数据存储器中。通用寄存用于对从多端口共享存储器、特殊寄存器、基本运算单元和risc处理器对应的输入数据存储器中读取的数据进行缓存。特殊寄存器用于对从通用寄存器、相邻risc处理器中的特殊寄存器中读取的数据进行缓存。基本运算单元用于依据从全局指令控制器读取的指令,对从通用寄存器读取的数据执行运算,并将运算结果写入通用寄存器中。

八个输出数据存储器,由对时钟敏感的寄存器作为基本单元,通过级联和并联的方式构成,通过时钟触发的方式,对各输出数据存储器对应的risc处理器写入的数据进行缓存。

所述单核处理器,本发明中,由于sparc具备较高的扩展性,并且sparc单核性能较强,故采用sparc处理器,用于执行计算方式复杂的运算任务,同时对simd处理器和sparc处理器执行的任务和数据进行调度,包括指令控制器、sparc输入数据存储器、sparc处理单元和sparc输出数据存储器,其中:

指令控制器,通过程序流程控制器生成pc指针,并依据pc指针控制分发到sparc处理器中指令的执行顺序,使用pc指针作为指令存储器的地址,从指令存储器中读取和pc指针相对应的指令,并对从指令存储器中读取的指令进行译码,将译码结果写入sparc处理单元。

sparc输入数据存储器,由对时钟敏感的寄存器作为基本单元,通过级联和并联的方式构成,通过时钟触发的方式,对从sparc处理器外部写入的数据进行缓存。

sparc处理单元,如图3所示,用于依据从指令控制器读取的指令,对从sparc输入数据存储器和多端口共享存储器读取的数据进行处理,并将处理结果写入sparc输出数据存储器和多端口共享存储器中,包括数据交换控制器、窗口寄存器、浮点寄存器、特殊寄存器、定点运算单元、浮点运算单元,其中,数据地址产生器依据从全局指令控制器读取的指令,通过基址加上变址的寻址方式,将基址和变址相加后的结果作为地址写入sparc输入数据存储器或sparc输出数据存储器、或者共享存储器中。窗口寄存器,用于缓存从sparc输入数据存储器、多端口共享存储器和定点运算单元中读取的数据,并依据从指令控制器中读取的指令,将缓存的数据写入sparc输出数据存储器和多端口共享存储器中,通过窗口寄存器中窗口的变换,执行从指令控制器中读取的代表程序调用和子程序返回功能的指令。浮点寄存器,用于将从sparc输入数据存储器、多端口共享存储器读取的单精度浮点数据进行缓存,并将缓存的单精度浮点数据写入sparc输出数据存储器或多端口共享存储器、或者浮点运算单元,同时缓存从浮点运算单元读取的计算结果。特殊寄存器,用于缓存依据从指令控制器读取的指令得到的窗口编号。定点运算单元,用于依据从指令控制器读取的指令,对从窗口寄存器中读取的定点数据进行运算,并将运算后的结果写入窗口寄存器。浮点运算单元,用于依据从指令控制器读取的指令,对从浮点寄存器中读取的单精度浮点数据进行运算,并将运算后的结果写入窗口寄存器。

sparc输出数据存储器,由对时钟敏感的寄存器作为基本单元,通过级联和并联的方式构成,通过时钟触发的方式,对从sparc处理单元写入的数据进行缓存。

所述多端口共享存储器,如图4所示,包括分块存储空间、二级地址译码器和多路数据选择器,其中:

分块存储空间,直接采用fpga内部的ip核作为一写一读存储器,通过复制方法构造一写多读存储单元,并采用分块方法构造多写多读存储单元,将多写多读存储单元作为具有多个编号的分块存储空间,并将从risc处理器和sparc处理器中读出的数据缓存在分块存储空间中。

二级地址译码器,通过依据预先给定的译码方式对从risc处理器和sparc处理器读取的读地址或者写地址进行译码,并将译码后结果写入多路数据选择器。

多路数据选择器,用于依据从二级地址译码器中读取的解析后地址,对从分块存储空间中读取的数据进行选择,并将选择结果写入risc处理器或者sparc处理器。

所述wishbone片上总线模块,用于提供低开销的控制信号通路,实现simd处理器和sparc处理器的协同,包括核间总线和输出总线,其中:

核间总线,如图5所示,包括sparc处理器主设备、dma控制器主设备、simd处理器从设备、uart控制器从设备、总线仲裁器和地址译码器,通过地址译码器,对simd处理器从设备和uart控制器从设备分配地址,对从sparc处理器主设备和dma控制器主设备读取的访问目标地址进行译码,并对访问目标地址译码结果与simd处理器从设备或uart控制器从设备分配的地址进行匹配,并且通过总线仲裁器,按照预先制定的优先原则,对多个主设备同时访问从设备时存在的冲突进行仲裁,通过上述总线仲裁器与地址译码器实现了全局指令控制器、dma数据分发控制器、指令控制器和uart控制器之间的数据交换。

输出总线,提供数据通路,用于实现八个输出数据存储器和sparc输出数据存储器之间的数据交换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1