本发明专利技术提供了一种多核处理器中数据与地址共用引脚自适应调整访存粒度的方法。包括:采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用。本发明专利技术所述的方法,能够根据程序行为自适应改变处理器芯片引脚功能的访存,可以简化编程,提高访存带宽利用率,解决了任务处理类程序访存发散,访存带宽利用率低的问题,具有良好的应用前景。
【技术实现步骤摘要】
本专利技术面向多用途高性能服务器,涉及多核/众核处理器内部存储控制器(简称存控)结构、存储控制器通过处理器芯片引脚与存储器颗粒相连电路,以及存储器颗粒之间连接电路的设计,属于计算机体系结构领域。
技术介绍
当前处理器核数不断增加,为了充分发挥处理器计算性能,必须有效利用存储器访问(简称访存)带宽。以P表示所有数据与地址引脚(简称引脚)的总带宽(gb/s),以D表示数据总线带宽(GB/s),A表示地址总线带宽(GB/s),则有P = D+A。在引脚数与时钟频率一定(因此P是常数)的情况下,现有体系结构设计采用了固定的D与A,分为两大类:第一类,数据引脚与地址引脚分开。存储控制器的个数决定了 D/A比例。如果只有一个存控,大多数引脚作数据总线,D约等于P。但由于地址信息流少,每个从首地址读写的数据位数(访存粒度)很宽,例如256数据引脚访问DDR3型存储器(共连续地址多发次数,突发长度为8)的访存粒度为256字节。短于256字节的访存指令无法有效利用访存带宽。大部分云计算或其他事务处理类应用访存粒度只有4 8字节(整型、单精浮点4字节,长整型或+双精浮点8字节)。以8字节访存为例,单存控256位数据总线的实际带宽利用率只有8/256约0.03P。增加存控个数虽然可以降低访存粒度,但同时也增加了地址引脚数目进而减少数据带宽。如果存控数目多到使得访存粒度达到8字节(64位),GB级的寻址常需要接近32位地址信息,D的理论极限是0.67P。实际上由于典型存储器(如DDR3)时序地址总线信息占用率不满(数据总线为倍率),实际实施可行的带宽D在0.5P以下。这意味着如果固定D/A比例,则满足事务处理计算任务的需要必将大幅降低科学计算应用的数据带宽。大多数科学计算任务在众核高性能处理器芯片上运行的性能瓶颈是访存带宽,带宽减半意味着性能减半。第二类,数据与地址分时复用处理器芯片引脚。这类设计常见于嵌入式系统低端处理器,主要解决的问题是处理器封装简单,引脚数量接近寻址所需的引脚数,因此需要从引脚分时发出地址信息和读写数据。由于应用目的仅仅在于节约引脚数,因此D与A设计上是固定的,其缺点与第一类设计本质上是一样的,不能同时适应两类应用的性能需要。在访存粒度固定的情况下,其他一些现有技术在不改变D/A比例前提下挖掘数据局部性,可以适当提高带宽利用率,但效果有限。缓存技术(Cache)在核数多的情况下不具有可扩展性:核数越多,每个核平均缓存越少,命中率越低;一个核获得的缓存行(CacheLine,典型为128字节,连续编址)存在于缓存短暂瞬间恰好被另一处理器核访问的几率很小;因此核数越多,缓存效果越差。GPGPU(通用图形处理器)技术每32个线程组成一个Warp单位,执行S IMD (单指令多数据流)的向量指令,使得同一访存数据段可以被向量指令中的不同线程交错访问其不同位置的数据元素,不需要显式地在源程序中不同线程间交换数据,简化了编程。但是这一技术仍然假设相当宽的同一连续数据段的数据(GPGPU典型为32字节)能够被有效利用,而很多任务处理程序没有大于8字节的数据局部性,访存地址十分发散,带宽利用率会很低。例如,尽管GPGPU往往对科学计算类任务能实现十几到几十倍的加速,但用于图(如最短路径)计算时,相对于同一代CPU加速度很少超过二倍。总之,如果处理器与存储器接口设计上D/A很高,采用处理器内部通讯机制在处理器核之间交换数据,可以适当提高利用率,简化编程,但无法解决任务处理类程序访存发散,访存带宽利用率低的问题。目前,尚未发现有专利或者文献讨论共用地址与数据引脚,并根据程序行为自适应改变引脚功能的访存方法。
技术实现思路
本专利技术所使用的一些术语定义如下:处理器核心:多核/众核处理器中具有独立指令流水线的最小指令处理硬件单J Li ο存储器颗粒:片外存储器颗粒,由若干个二维存储器阵列(Bank)和对应的控制逻辑部件(行选择器、列选择器等)构成。多个Bank共享一组数据引脚。存储控制器(简称存控):存储控制器是用来管理流入及流出主存的数据流的电路,用以解析处理器发出的存储器访问地址等信息,同时对多个指令流水线发出的访存指令进行缓存和调度,并向片外存储器发送读写指令。存储器访问(简称访存):处理器内部存储控制器向存储器发出读写访问指令。本专利技术的目的是提出一种多核处理器数据与地址共用引脚自适应调整访存粒度的方法,使得应用程序能实现访 存带宽的高利用率。本专利技术提供的技术方案如下:,应用于多核/众核处理器,其特征是,采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用。其中,所述粗粒度访存指的是访存宽度大于等于32字节;所述细粒度访存指的是访存宽度小于等于8字节。所述的数据与地址共用引脚自适应调整访存粒度的方法,在处理器芯片数据与地址引脚数及时钟频率一定的条件下,根据应用程序的动态行为特征自适应地动态确定各引脚在每一时钟周期读写数据还是发出地址信息,使粗粒度访存(即宽连续地址访问)的科学计算类应用程序,与细粒度访存的云计算或其他事务处理类应用程序都能实现访存带宽的高利用率。所述的数据与地址共用引脚自适应调整访存粒度的方法,把处理器数据与地址引脚分成若干组,每组引脚在某一时钟周期既可以用于读写数据,也可以用于发出地址信息;处理器内部存储控制器将不同处理器核发出的访存指令针对不同引脚组建立队列,将多个访存指令拼成一个完整的组合访存指令;由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,在访存时序中插入地址周期;每个时钟周期处理器控制确定是存储器颗粒的数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;返回数据由存储控制器正确分离,分别传送给原来发出访存指令的处理器核。所述的数据与地址共用引脚自适应调整访存粒度的方法,如果应用程序下处理器核发出大部分访存指令足够宽,不需要互相拼接,则共用的引脚很少发出地址周期,带宽利用率等同于粗粒度单存储控制器的情形;如果应用程序下处理器核发出大量发散的短小访存指令,则在时序中插入较多的地址周期,带宽利用率等同于细粒度多存储控制器的情形,由此实现自适应动态调整“数据传输速率/地址传输速率”比例的目的。所述的数据与地址共用引脚自适应调整访存粒度的方法,执行访存指令的完整步骤如下:I)处理器内部存储控制器将不同处理器核发出的访存指令针对不同共用引脚组建立队列,并将多个访存指令拼成一个组合访存指令;包括:a)建立队列;b)将队列中多个访存指令拼接成一个组合访存指令;2)由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,并发出相应控制信号,在访存时序中插入地址周期;3)存储器颗粒在每个时钟周期由处理器控制确定数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;4)返回数据应当由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核。本专利技术的有益效·果:本专利技术所述的方法,能够根据程序行为自适应改变处理器芯片本文档来自技高网...
【技术保护点】
一种数据与地址共用引脚自适应调整访存粒度的方法,应用于多核/众核处理器,其特征是,采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈一峯,崔伟龙,崔翔,
申请(专利权)人:北京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。