一种处理器核心结构及数据访存方法技术

技术编号:20840950 阅读:52 留言:0更新日期:2019-04-13 08:34
本发明专利技术提供一种处理器核心,包括:一个数据缓存,用于缓存数据;N个寄存器堆,用于向运算部件提供数据的访问,N是大于1的整数;一个访存部件,其与所述数据缓存以及所述N个寄存器堆连接,用于在所述数据缓存以及所述N个寄存器堆之间的数据交换。基于该结构,可以减少所使用的访存部件数量,与该访存部件对应的数据Cache的读写端口也相对较少,这使得大大降低了设计与之匹配的数据Cache的难度、集成电路的面积和访问延迟。本发明专利技术的方案尤其适用于计算密集时数据计算的并行度和规则性都很强,但不同计算阶段计算形式变化也比较多样的应用。

【技术实现步骤摘要】
一种处理器核心结构及数据访存方法
本专利技术涉及对处理器核心结构的改进,以及基于上述结构实现数据访存的方法。
技术介绍
处理器核心(CPUCore),是处理器中最重要的组成部分。在处理器中所有的计算、访存命令、数据处理均是由处理器核心来完成。不同处理器核心之间在结构上可能略有差异,然而它们大致上拥有相似的体系结构,如图1a所示,包括:控制部件、运算部件、访存部件、寄存器堆、指令Cache和数据Cache(即缓存)。参考图1a,在处理器片上存储或片外存储中储存有控制指令、以及数据,指令Cache从片上或片外存储中缓存控制指令,并提供给控制部件,由控制部件基于相应的控制指令来控制运算部件实施运算操作、以及控制访存部件实现在数据Cache、以及寄存器堆之间的数据交换,由运算部件直接读取寄存器堆中寄存器内的数据以进行运算。所述访存部件是处理器设计领域公知的概念,在英文文献中一般称为LoadStoreUnit(LSU),有时也描述为AddressGenerationUnit(AGU),与运算部件一样属于功能部件(FunctionUnit)或执行部件(ExecutionUnit)的一种。运算部件负责定点或者浮点运算,访存部件负责从存储系统读写数据。这里寄存器堆指的是多个寄存器的集合,寄存器为处理器核心临时存放数据的空间,其位宽和存储容量非常有限,相比之下,数据Cache则具有更大的存储容量,可以缓存处理器核心需要频繁访问的数据。由于寄存器堆与数据Cache在结构、地址上存在差异,因而需要通过访存部件在数据Cache和寄存器堆间搬移数据,为寄存器堆中寄存器提供新的数据,或者将寄存器的数据写回到数据Cache。对于现有的通用处理器(CPU)或通用图形处理器(GPGPU)而言,在一个处理器核心中有一个或多个寄存器堆,一个或多个访存部件。访存部件一次读写的最大数据宽度和寄存器堆中的寄存器字长是一致的。每个访存部件可以只连接指定的寄存器堆,也可以连接所有的寄存器堆,然而任何时候,一个访存部件一次只能访问一个寄存器堆。例如,如图1b所示,通用处理器为了满足运算部件、访存部件之间快速低延迟的数据交换,采用由2~4个运算部件和1~2个访存部件共享一个寄存器堆,而非共享多个寄存器堆。这是由于功能部件之间的数据交换需要在单个周期内完成,即A功能部件写入寄存器堆的数据,下个周期B功能部件就可以读取。而在共享多个寄存器堆的情况下,为了实现单周期的数据交换,寄存器堆和功能部件的设计会变得非常复杂,以至于在硬件上难以实现。因而,尽管通用处理器中的访存部件可以被设计为同时连接至定点寄存器堆和浮点寄存器堆,然而同一时刻该访存部件只能访问一个寄存器堆。又例如,如图1c所示,通用图形处理器主要面向图形渲染,其相关计算主要采用多路(或多线程)数据并行计算,各路数据计算的操作基本一致。参考图1c,为了提高计算并行度,其采用多访存部件多寄存器堆的结构,数据Cache与N个部件组(包括访存部件、寄存器堆、以及运算单元)相连,在每个部件组中访存部件、寄存器堆以及运算单元一一对应,相互之间不通过寄存器堆共享数据。随着深度学习、5G通信等技术的发展,上述传统的通用处理器、通用图形处理器往往难以有针对性地对大规模的数据进行并行计算。处理器核心需要频繁地在数据Cache和寄存器堆之间交换数据,然而若是一个访存部件在一个时刻只能访问一个寄存器堆意味着要提高数据的交换速率,就需要更多的访存部件或者更大的数据宽度来增加一次读写的数据总量。更多的访存部件会增加数据Cache的读写端口数量,而数据Cache设计复杂度随读写端口的数量增加超线性增长;更大的数据宽度会降低运算的灵活度,一是增加编程和编译器调度的难度,二是因为使用率不足带来资源浪费,降低处理器的能效比,三是共享的多端口寄存器堆的设计复杂度也是超线性增长。因而,需要开发出一种新的处理器核心结构,以平衡需要增加访存部件数量以及需要采用大数据宽度之间的矛盾。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种处理器核心,包括:一个数据缓存,用于缓存数据;N个寄存器堆,用于向运算部件提供数据的访问,N是大于1的整数;一个访存部件,其与所述数据缓存以及所述N个寄存器堆连接,用于在所述数据缓存以及所述N个寄存器堆之间的数据交换。优选地,根据所述处理器核心,其中所述访存部件用于将来自所述N个寄存器堆的数据合并在一起写入所述数据缓存,以及对来自所述数据缓存的数据进行分解并写入相应寄存器堆的寄存器中。优选地,根据所述处理器核心,其中所述访存部件包括:缓冲器,用于暂时存放将要写入所述数据缓存的数据以及来自所述数据缓存的数据;分解电路,其与所述缓存器连接,用于分解来自所述缓冲器的数据以提供给相应的寄存器堆;组合电路,其与所述N个寄存器堆连接,用于对来自寄存器堆的数据进行组合以提供给所述缓冲器。优选地,根据所述处理器核心,其中,所述访存部件还包括:用于分别与每个所述寄存器堆连接的N个寄存器堆接口;所述缓冲器包括用于暂时存放将要写入所述数据缓存的数据的N个输出缓冲器以及用于暂时存放来自所述数据缓存的数据的N个输入缓冲器;所述分解电路包括分别与每个所述寄存器堆接口连接的N个第一多路选择器;所述组合电路包括:分别与每个所述寄存器堆接口连接的N个第二多路选择器;并且,所述访存部件还包括:译码组合电路,用于提供针对所述第一多路选择器、所述第二多路选择器的控制信号。优选地,根据所述处理器核心,所述访存部件还用于接收用于其实现在所述数据缓存与所述N个寄存器堆之间进行数据交换的访存指令。优选地,根据所述处理器核心,所述访存指令包括以下字段:指令码,用于表示执行读或写的操作;访存地址,用于指定所述数据缓存中的地址;寄存器堆掩码,用于指定参与读或写的寄存器堆的编号。优选地,根据所述处理器核心,所述寄存器堆掩码具有N个比特位,每个比特位与所述N个寄存器堆中的一个对应,所述比特位的取值用于表示所对应寄存器堆是否需要被访问。优选地,根据所述处理器核心,所述访存指令中还包括:寄存器编号,用于指定参与读或写的寄存器的编号。优选地,根据所述处理器核心,所述寄存器编号具有n个比特位,n的取值为可以采用二进制数表示在一个寄存器堆中全部寄存器的编号的最小位数。一种处理器,包括:上述任意一项所述的处理器核心。优选地,根据所述处理器,其还包括:处于所述处理器核心之外且存储有用于所述访存单元实现在所述数据缓存与所述N个寄存器堆之间进行数据交换的访存指令的存储器。一种基于所述处理器结构而实现的数据访存方法,包括:1)所述访存部件接收访存指令;2)所述访存部件根据所述访存指令,将所述数据缓存的指定地址处的数据分别写入到指定寄存器堆的寄存器中,或者从指定寄存器堆的寄存器中读取数据并将聚合在一起的数据写入到所述数据缓存的指定地址。优选地,根据所述方法,其中步骤2)包括:2-1)识别所述访存指令中的相应字段,确定要执行的读或写的操作;2-2)根据所述访存指令中的相应字段,确定针对所述数据缓存的指定地址、以及指定的寄存器堆的寄存器;2-3)根据所确定的读或写的操作、所述数据缓存的指定地址、以及指定的寄存器堆的寄存器,在所述数据缓存与所述N个寄存器堆之间进行数据交换。与现本文档来自技高网
...

【技术保护点】
1.一种处理器核心,包括:一个数据缓存,用于缓存数据;N个寄存器堆,用于向运算部件提供数据的访问,N是大于1的整数;一个访存部件,其与所述数据缓存以及所述N个寄存器堆连接,用于在所述数据缓存以及所述N个寄存器堆之间的数据交换。

【技术特征摘要】
1.一种处理器核心,包括:一个数据缓存,用于缓存数据;N个寄存器堆,用于向运算部件提供数据的访问,N是大于1的整数;一个访存部件,其与所述数据缓存以及所述N个寄存器堆连接,用于在所述数据缓存以及所述N个寄存器堆之间的数据交换。2.根据权利要求1所述的处理器核心,其中所述访存部件用于将来自所述N个寄存器堆的数据合并在一起写入所述数据缓存,以及对来自所述数据缓存的数据进行分解并写入相应寄存器堆的寄存器中。3.根据权利要求2所述的处理器核心,其中所述访存部件包括:缓冲器,用于暂时存放将要写入所述数据缓存的数据以及来自所述数据缓存的数据;分解电路,其与所述缓存器连接,用于分解来自所述缓冲器的数据以提供给相应的寄存器堆;组合电路,其与所述N个寄存器堆连接,用于对来自寄存器堆的数据进行组合以提供给所述缓冲器。4.根据权利要求3所述的处理器核心,其中,所述访存部件还包括:用于分别与每个所述寄存器堆连接的N个寄存器堆接口;所述缓冲器包括用于暂时存放将要写入所述数据缓存的数据的N个输出缓冲器以及用于暂时存放来自所述数据缓存的数据的N个输入缓冲器;所述分解电路包括分别与每个所述寄存器堆接口连接的N个第一多路选择器;所述组合电路包括:分别与每个所述寄存器堆接口连接的N个第二多路选择器;并且,所述访存部件还包括:译码组合电路,用于提供针对所述第一多路选择器、所述第二多路选择器的控制信号。5.根据权利要求1所述的处理器核心,所述访存部件还用于接收用于其实现在所述数据缓存与所述N个寄存器堆之间进行数据交换的访存指令。6.根据权利要求5所述的处理器结构,所述访存指令包括以下字段:指令码,用于表示执行...

【专利技术属性】
技术研发人员:王剑
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1