一种可重构的处理器架构及计算设备
技术领域
本发明涉及处理器技术领域,特别是涉及一种可重构的处理器架构及计算设备。
背景技术
当今时代,人工智能技术日新月异、澎湃发展,从各方面影响着人们的生产和生活,推动着世界的发展和进步。近几年,研究者们发现神经网络算法对处理非结构化数据非常有效,比如人脸识别、语音识别、图像分类等任务。随着这些非结构化数据的指数级增长,对处理器算力的要求越来越高。传统的中央处理器CPU和数字信号处理器DSP的算力已经不能满足需求,因此,如何提升处理器的算力和效率是亟待解决的问题。
发明内容
鉴于上述问题,本发明提供了一种克服上述问题或至少部分地解决了上述问题的一种可重构的处理器架构及计算设备。
根据本发明的一个方面,提供了一种可重构的处理器架构,其特征在于,包括:
多个存储单元,用于存储数据;
多个计算单元,用于访问所述存储单元中存储的数据,并对所述数据进行计算处理;
耦合于所述存储单元和所述计算单元之间的控制部件,用于控制所述存储单元的工作模式和/或所述计算单元对所述存储单元的访问模式。配置存储单元的工作模式以及计算单元对存储单元的访问权限,有效提升存储单元的访问率以及计算单元的算力利用率。
可选地,独立工作模式,所述多个存储单元中的每个所述存储单元具备独立的第一接口,所述计算单元通过所述第一接口独立访问所述第一接口对应的存储单元;
整体工作模式,所述多个存储单元作为一个整体具有统一的第二接口,所述计算单元通过所述第二接口统一访问所述多个存储单元;
组合工作模式,所述多个存储单元被划分为多个存储组,所述多个存储组的每个所述存储组至少包括一个所述存储单元;其中,每个所述存储组具有第三接口,通过所述第三接口访问所述第三接口对应的存储组。
可选地,在所述独立工作模式下,多个所述计算单元可同时访问所述计算单元分别对应的存储单元。
可选地,所述第二接口的接口宽度为所述多个存储单元的接口并行拼接后的宽度;或任一不小于所述多个存储单元中接口宽度最小的存储单元对应的接口宽度。
可选地,所述第三接口的接口宽度为所述第三接口对应的存储组中所有存储单元的接口并行拼接的宽度;或任一不小于所述所有存储单元中接口宽度最小的存储单元对应的接口宽度。
可选地,所述多个存储单元和所述多个计算单元的位宽及数量对等;所述计算单元对所述存储单元的访问模式包括:
一一对应模式,所述多个计算单元一一对应访问所述多个存储单元;
交叉对应模式,所述多个计算单元交叉对应访问所述多个存储单元;
多选一模式,所述多个计算单元中任意所述计算单元访问所述多个存储单元中的任一存储单元。在存储单元和计算单元的位宽及数量对等时,不同计算单元可复用某些存储单元,从而有效提升了存储单元的利用率,可以降低参数和数据的访问难度,不需要将相同的参数切分或者复制到独立的各个独立的存储单元中。
可选地,在所述一一对应模式和/或所述交叉对应模式下,多个所述计算单元可同时访问所述计算单元分别对应的存储单元。
可选地,在所述多选一模式下,同一时刻只有一个存储单元可被访问。
可选地,所述多个存储单元和所述多个计算单元的位宽及数量不对等;所述计算单元对所述存储单元的访问模式包括:
第一访问模式,各所述计算单元访问至少一个与其位宽相等的存储单元;
第二访问模式,基于第一预设数量存储单元生成至少一个复合存储单元;各所述计算单元访问与其位宽相等的存储单元或复合存储单元;
第三访问模式,基于第二预设数量的存储单元生成至少一个复合存储单元,合并第三预设数量的计算单元生成至少一个合并访问接口;各所述计算单元通过各自的访问接口或合并访问接口访问至少一个与所述访问接口或合并访问接口等位宽的存储单元或复合存储单元。也就是说,控制部件可以根据各存储单元的位宽以及计算单元的访问接口的位宽对存储单元以及计算单元的访问接口进行重构,将多个存储单元可重构成不同大小的复合存储单元,存储单元的接口可重构成不同的位宽。对存储单元的访问接口重构后,不同的存储单元可以被并行访问,从而大大增加了访存带宽,能增加计算单元的算力利用率。
根据本发明的另一方面,还提供了一种计算设备,包括处理器,其特征在于,
所述处理器的架构为上述所述的可重构的处理器架构,用于运行计算机程序。
可选地,所述计算设备还包括:
存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由处理器加载并执行。
本发明实施例提供了一种局部共享存储架构,通过控制部件对局部的存储单元的工作模式以及计算单元对存储单元的访问模式进行控制。具体地,可在控制部件中设置控制寄存器,进而合理配置存储单元的工作模式以及计算单元对存储单元的访问权限,有效提升存储单元的访问率以及计算单元的算力利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了传统的存储处理一体的众处理单元示意图;
图2示出了根据本发明实施例的可重构的处理器架构示意图;
图3示出了根据本发明实施例一的处理器架构示意图;
图4A-C分别示出了根据本发明实施例一的可重构逻辑示意图;
图5示出了根据本发明实施例二的处理器架构示意图;
图6A-C分别示出了根据本发明实施例二的可重构逻辑示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
提升芯片算力和效率的一种行之有效的处理器设计方法为采用存储处理一体众核架构。存储处理一体化,即将存储功能与处理功能在同一个核中,实现存储本地化,这样可极大的节省数据的能耗,提升运算效率。
图1示出了存储处理一体的众处理单元示意图,如图1所示,C1、CN代表处理核,是众处理核的典型代表;每个处理核中拥有独立的计算单元(PU, Processing Unit)和存储单元(Mem,Memory),CN处理核中含有计算单元PUN和存储单元MemN。在计算过程中,各核调用自己独立的Mem中的参数以及数据。该方案实现了数据的本地存储核调用,相对于片外存储,可极大的节省数据搬运中的能耗。
另一方面,该方案也存在一定的局限,比如:
1、Mem的容量大小是固定的,在实际使用过程中,无法根据应用需要作出调整,会造成Mem利用率下降或者容量的不足;
2、Mem的接口宽度是固定的,在实际使用过程中,无法根据应用需要作出调整,会造成Mem访问带宽的不足或者浪费;
3、在计算过程中,各核只能读写自己的Mem,而不能共享其他核的Mem;
4、每个核因为Mem受限,所以在完成比较复杂的任务时,效率会降低。
在实际运行过程中,多核或者众核芯片在做某些计算时,有时希望访问共同的Mem(例如Cache),有时又希望各核分别访问不同的Mem(例如存算一体的众核芯片),以达到既能高效利用Mem,又能根据配置改变Mem块的个数核存储量的大小。
图2示出了根据本发明实施例的可重构的处理器架构示意图,参见图2可知,本发明实施例提供的可重构的处理器架构可以包括:
多个存储单元210(即存储单元1~存储单元N),用于存储数据;
多个计算单元220(即计算单元1~计算单元N),用于访问存储单元210 中存储的数据,并对所述数据进行计算处理;
耦合于所述存储单元210和计算单元220之间的控制部件230,用于控制所述多个存储单元210的工作模式和/或所述多个计算单元220对所述多个存储单元210的访问模式。本发明实施例中,存储单元210的数量、每个存储单元 210的存储量以及位宽可根据不同的需求进行设置,计算单元220的数量以及位宽同样可根据不同的需求进行设置,本发明不做限定。
本发明实施例提供了一种可重构的处理器架构,通过控制部件230 (Controller)对局部的存储单元210的工作模式以及计算单元220对存储单元210的访问模式进行控制。具体地,可在控制部件中设置控制寄存器,进而配置存储单元210的工作模式以及计算单元220对存储单元210的访问权限,有效提升存储单元的访问率以及计算单元的算力利用率。
其中,本发明的处理器架构为众核架构,处理器架构中包括多个核,该多个核的结构例如可以为:多个核中的每个核包括计算单元1-N、存储单元1-N 和控制部件;还可以为:多个核包括计算核和存储核,其中,计算核中包括计算单元,存储核中包括至少一个存储单元和控制单元;关于处理器架构中多个核的具体结构在本发明中不做限定,只要能够实现对存储单元的工作模式以及计算单元对存储单元的访问模式的控制即可。
可选地,本发明实施例中,多个存储单元210的工作模式可以包括:
独立工作模式,多个存储单元中的各存储单元210各自具备独立的第一接口,计算单元220可通过各第一接口独立访问所述第一接口对应的存储单元;在该模式下,多个计算单元可同时访问各自对应的存储单元。其中,对于任意一个计算单元220来讲,均可通过任意一个存储单元210的第一接口访问该存储单元210,多个计算单元220和多个存储单元210的对应访问关系可根据不通过需求通过控制部件230进行设置,本发明不做限定。但是需要说明的时,一个存储单元210在同一时刻只能被一个计算单元220访问。
整体工作模式,多个存储单元210作为一个整体具有统一的第二接口,计算单元220通过第二接口统一访问所述多个存储单元;所有的存储单元210为一个整体,可具有统一的地址分配规则。但所有的存储单元210只有一个接口,计算单元220通过此接口可以统一访问所有的存储单元210,任意一个计算单元220均可通过该第二接口访问所述多个存储单元210,具体可根据不同的计算需求进行设置。其中,同一时刻只能有一个计算单元220访问所述多个存储单元210。第二接口的接口宽度为多个存储单元的接口并行拼接后的宽度;或任一不小于多个存储单元中接口宽度最小的存储单元对应的接口宽度。
组合工作模式,多个存储单元210被划分为多个存储组,所述多个存储组的每个所述存储组至少包括一个存储单元;其中,每个所述存储组具有第三接口,任意一个所述计算单元220均可通过各存储组的第三接口访问对应的存储组。即所有的存储单元分成若干个存储组,每一个存储组由至少一个存储单元 210组合而成,其中,每个存储组的第三接口的接口宽度为所述第三接口对应的存储组中所有存储单元的接口并行拼接的宽度;或任一不小于所述所有存储单元中接口宽度最小的存储单元对应的接口宽度。各存储组的存储量为该存储组中包括的存储单元的存储量之和。
上文提及,耦合于多个存储单元210和多个计算单元220之间的控制部件 230可用于控制多个存储单元210的工作模式之外,还可以控制多个计算单元 220对多个存储单元210的访问模式。本实施例中,存储单元210的数量、位宽与计算单元220的数量、位宽可以对等,也可以不对等,以下将分别基于对等和不对等的两种情况进行说明。
一、多个存储单元210和多个计算单元220的位宽及数量对等。
图3示出了根据本发明实施例一的处理器架构示意图。参见图3可知,本实施例中的处理器架构可包括计算单元1、计算单元2,存储单元1、存储单元 2,以及与计算单元1、计算单元2、存储单元1、存储单元2均耦合的控制部件。其中,计算单元1、计算单元2的总线位宽都是64bits,存储单元1、存储单元2的数据位宽也都是64bits。
控制部件控制计算单元对多个存储单元的访问模式时,具体配置可以如下:
1.一一对应模式,多个计算单元的每个计算单元对应一个存储单元,在该模式下,多个计算单元的每个计算单元可同时工作,即可以同时访问每个计算单元对应的存储单元。
如图4A所示,计算单元1只访问存储单元1,计算单元2只访问存储单元 2,而且计算单元1访问存储单元1的同时计算单元2可以访问存储单元2。
2.交叉对应模式,多个计算单元交叉对应访问所述多个存储单元,在该模式下,多个计算单元可同时访问对应的存储单元。
如图4B所示,计算单元1只访问存储单元2,计算单元2只访问存储单元 1,而且计算单元1在访问存储单元2的同时,计算单元2也可以同时访问存储单元1;
3.多选一模式,多个计算单元中各计算单元访问多个存储单元中的任一存储单元。
如图4C所示,计算单元1和计算单元2都能既访问存储单元1,又能访问存储单元2,但是同一时刻,只能有一个存储单元被访问。
上述多种工作模式可以在工作中根据需要进行配置并自由切换,本发明不做限定。
二、多个存储单元210和多个计算单元220的位宽及数量不对等。
图5示出了根据本发明实施例二的处理器架构示意图。参见图5可知,本实施例中的处理器架构可包括计算单元1、计算单元2、计算单元3三个计算单元,存储单元1、存储单元2、存储单元3、存储单元4四个存储单元,与上述计算单元1-3和存储单元1-4均耦合的控制部件。其中,计算单元1和计算单元2的总线位宽都是64bits,计算单元3的总线位宽是128bits,存储单元1、存储单元2和存储单元3的数据位宽都是64bits,存储单元4的数据位宽是 128bits。
控制部件控制计算单元对多个存储单元的访问模式时,具体配置可以如下:
1.第一访问模式,各所述计算单元访问至少一个与其位宽相等的存储单元。
如图6A所示,计算单元1只访问存储单元1,计算单元2可以访问存储单元2或存储单元3,计算单元3只访问存储单元4,而且三个计算单元可以同时访问其对应的存储单元。需要说明的是,图6A所示只是示例性的一种实现方案,实际应用中,计算单元1和计算单元2可分别在存储单元1、存储单元2、存储单元3中任意选取一个进行单元访问。
2.第二访问模式,基于第一预设数量存储单元生成至少一个复合存储单元;各所述计算单元访问与其位宽相等的存储单元或复合存储单元。
如图6B所示,计算单元1和计算单元2都能访问存储单元1;存储单元2 和存储单元3会组合成一个复合存储单元,其接口位宽为128bits,可以供计算单元3访问;这样,计算单元3可访问存储单元4,也能访问存储单元2和存储单元3组成的复合存储单元。
3.第三访问模式,基于第二预设数量的存储单元生成至少一个复合存储单元,合并第三预设数量的计算单元生成至少一个合并访问接口;各所述计算单元通过各自的访问接口或合并访问接口访问至少一个与所述访问接口或合并访问接口等位宽的存储单元或复合存储单元。
如图6C所示,计算单元1和计算单元C合并成128位宽的访问接口,存储单元1和存储单元2组合成一个复合存储单元,其接口位宽为128bits;这样,计算单元3可被配置成访问存储单元1和存储单元2组成的复合存储单元,计算单元1和计算单元2合并后访问存储单元4,存储单元4中读出的128bits 的位宽数据将被分成两个64bits的位宽数据,分别分配给计算单元1和计算单元2。
上述多种工作模式可以在工作中根据需要进行配置并自由切换,本发明不做限定。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括处理器,所述处理器的架构为上述所述的可重构的处理器架构,用于运行计算机程序。在本发明一可选实施例中,所述计算设备还包括:存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由处理器加载并执行。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
本发明实施例提供了一种局部共享存储架构,通过控制部件对局部的存储单元的工作模式以及计算单元对存储单元的访问模式进行控制。另外,控制部件还可以根据各存储单元的位宽以及计算单元的访问接口的位宽对存储单元以及计算单元的访问接口进行重构,将多个存储单元可重构成不同大小的复合存储单元,存储单元的接口可重构成不同的位宽。对存储单元的访问接口重构后,不同的存储单元可以被并行访问,从而大大增加了访存带宽,能增加计算单元的算力利用率;而且,不同计算单元可复用某些存储单元,从而有效提升了存储单元的利用率;同时,不同计算单元可复用某些存储单元,可以降低参数和数据的访问难度,不需要将相同的参数切分或者复制到独立的各个独立的存储单元中。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。