流处理器中降低数据访问延迟的方法技术

技术编号:2846860 阅读:234 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种流处理器中降低数据访问延迟的方法,要解决的技术问题是降低流处理器的数据访问延迟。技术方案是改进流处理器的第一级存储层次,将标量DRAM和流DRAM合并为由标量处理器和流处理器共享的片外共享存储器,并采用新的方法来完成数据流在片外共享DRAM与流寄存器文件SRF之间的传输,且采用同步机制解决RAW相关。标量处理器和流处理器要访问片外数据时,都直接向总线发送请求,获得总线使用权后,将访存地址传送给DRAM控制器,DRAM控制器访问片外DRAM,获得DRAM中的数据后再将数据返回给标量处理器或流处理器。采用本发明专利技术可以有效避免由于流过长或数目太多导致的SRF溢出,从而避免了一次访存请求导致的数据多次在存储空间的转移,降低了数据访问延迟。

【技术实现步骤摘要】

本专利技术涉及,尤其是面向密集计算的。
技术介绍
基于流体系结构的流处理器是新一代面向密集计算的高性能微处理器的典型代表,专门面向流应用。流,是不间断的、连续的、移动的数据队列,队列长度可以是定长或不定长的。流应用主要分为两类一类是媒体应用;另一类是科学计算。流应用具有以下几个主要特征计算密集性,与传统的桌面应用相比,流式应用对每次从内存取出的数据都要进行大量的算术运算;并行性,以数据级并行为主,同时存在指令级和任务级并行;局域性,是指应用中的数据重用局域性。流应用程序通常包含kernel级程序和流级程序两部分流级程序负责组织输入和输出数据,kernel程序是运算的核心,负责对这些数据进行运算。由于流应用有大量的数据并行性和局域性,因此数据访问延迟较大。为了降低数据访问延迟,现有的流体系结构采用三级存储层次,即处理器芯片外部的DRAM、处理器片上SRF(流寄存器文件,Stream Register File)和LRF(分布式本地寄存器文件,LocalDistribute Register File)。DRAM是第一级,提供2GB/s的带宽;SRF是第二级,具有25.6GB/s的带宽;运算单元内部的LRF是第三级,提供高达436GB/s的带宽。这种存储层次降低了计算密集型应用在流处理器上运行时的数据访问延迟临时性的数据被存放在运算器内部即第三级,保证它能被频繁的快速存取;同kernel计算相关的输入数据流和输出数据流以及中间数据,都被存放在处理器芯片上的SRF中即第二级,保证它能够在处理器内部循环利用而不产生存储器访问;因为初始输入、最终输出和其它的全局数据不会被频繁访问且需要很大的存储空间,所以它们存放在处理器芯片外部DRAM即第一级中。在流体系结构的设计中,逻辑上标量处理器和流处理器的存储空间是分离的,物理上也采用了两个独立的片外DRAM存储器,即标量DRAM存储器和流DRAM存储器,这两个存储器之间没有数据通路和控制通路。标量处理器和流处理器还使用各自的存储控制器、片外DRAM的数据通路、控制通路以及与之相对应的芯片引脚,时钟系统也是独立的。属于标量处理器的存储系统只与标量处理器互连,属于流处理器的存储系统只与流处理器相连。流处理器作为标量处理器的协处理器,通过处理器接口部件与标量处理器互连。处理器接口部件为标量处理器和流处理器之间传输数据设置数据线、地址线以及请求和响应等控制线。流存储器DRAM对数据的访问必须首先通过处理器接口部件向标量处理器发送请求,标量处理器接到请求后,将流处理器存储空间的地址转换为标量处理器存储空间的地址,发送给标量存储控制器,标量存储控制器再访问标量DRAM,标量DRAM返回数据给标量处理器,标量处理器再将数据转发给处理器接口部件,流处理器从处理器接口部件将数据取出存储到其独占的流DRAM存储器中。在流应用中输入数据以及所有的kernel微代码都必须首先由标量处理器的存储空间传输到流处理器内部的SRF中;当流处理器的结果需要标量处理器处理时,输出数据必须由流处理器内部的SRF传回标量处理器的存储空间。这两个过程的具体实现如下1.向SRF中加载数据有四种可能的情况1.1正常加载从标量DRAM经过处理器接口部件加载数据到SRF,数据不发生溢出。1.2溢出指目前从标量DRAM中加载的数据流A在SRF中所在的空间将被后面加载的数据流B替换掉,并且目前的数据流A在被替换掉后还会再次被kernel使用,这意味着还需要第二次加载使数据流A重新加载至SRF。对这种情况调度方法是把数据流A在第一次从标量DRAM加载到SRF的同时也存储到流DRAM中,以准备下次kernel使用时,再从流DRAM加载至SRF,不必重新从标量DRAM加载至SRF。1.3长流加载当标量DRAM加载的数据流长度超过SRF的剩余容量时出现长流加载情况,采用双缓冲方法处理1)将SRF在逻辑上分成两块空间,分别为第一SRF空间和第二SRF空间。2)由标量DRAM通过主处理器、处理器接口部件向第一SRF空间加载数据。3)当第一SRF空间写满后,就写第二SRF空间,同时把第一SRF空间中的数据送入流DRAM。4)当第二SRF空间写满后,将数据流从标量DRAM继续写入第一SRF空间,同时把第二SRF空间中的数据送入流DRAM。5)如果数据流未加载完毕,转3);如果加载完毕,停止。上述过程将数据流从标量DRAM先加载至SRF,同时又从SRF加载至流DRAM。然后当kernel计算时,还要使用双缓冲方法将数据从流DRAM加载至SRF中同时从SRF送入运算单元进行运算。因此长流加载时需要将标量DRAM中的数据分多次转存到SRF上,再由SRF分多次传送到流DRAM,运算时又从流DRAM分多次转移到SRF中,这种一次数据访问请求导致三次数据转存,大大增加了数据访问的延迟。1.4索引指加载的数据流将被索引后使用。流是连续的数据队列,索引是指流处理器需要计算的数据段是输入流队列的中间一段(这一段称为索引流),而不是从输入流队列的队首开始的。流在向流处理器加载的时候只能从队首开始,顺序加载队列中的数据,即流处理器对数据流只能从头进行顺序访问。而流DRAM则可以通过地址访问其中的任意数据。所以当加载将被索引使用的流时,必须先把整个输入流按顺序都加载到SRF中,同时把SRF中的流数据全部加载到流DRAM中,当索引发生则通过索引地址访问流DRAM存储器中的索引部分加载到SRF中。索引发生时,如果整个输入流的长度超过SRF容量,则先按照长流加载情况分多次将数据通过SRF转存到流DRAM中,然后再通过地址访问流DRAM把索引流加载到SRF。2.从SRF中把数据存回至标量DRAM有三种可能的情况2.1正常save数据直接将SRF中的数据存回至标量DRAM。2.2索引指SRF中的数据流曾被索引使用。对于索引情况,流处理器把计算结果的数据流直接存储到流DRAM中,然后再从流DRAM中把该数据流由队首开始顺序转存到SRF,最后从SRF存回标量DRAM。2.3长流存回如果需要存回标量DRAM的数据流长超过SRF的剩余容量时,采用双缓冲方法处理,先从流DRAM中把该数据流由队首开始顺序转存到SRF,然后从SRF存回标量DRAM。由此可见,这种一次访存导致的数据在标量DRAM、标量处理器、处理器接口部件、SRF和流DRAM中的多次转移会大大增加数据访问延迟。因此现有的流处理器数据访存方法的效率低,数据传输过程开销高,需要新的方法来降低数据访问延迟。
技术实现思路
本专利技术要解决的技术问题是降低流处理器的数据访问延迟。本专利技术的技术方案是改进流处理器的第一级存储层次,将标量DRAM和流DRAM合并为由标量处理器和流处理器共享的片外共享存储器;片外共享存储器由多个片外共享DRAM组成,每个片外共享DRAM分别通过一个DRAM控制器与片上通用总线相连;片上通用总线分别与标量处理器和流处理器相连,使得标量处理器和流处理器可以通过任一DRAM控制器访问对应的片外DRAM。标量处理器和流处理器都作为总线主设备,DRAM控制器作为总线从设备。处理器接口部件作为从设备挂在片上通用总线上,它只传输标量处理器和流处理器之间的数据,不再传输片外存储器到标量处理器或流处理器的数据,本文档来自技高网
...

【技术保护点】
一种流处理器中降低数据访问延迟的方法,其特征在于:第一步,改进流处理器的第一级存储层次,将标量DRAM和流DRAM合并为由标量处理器和流处理器共享的片外共享存储器,具体方法是:片外共享存储器由多个片外共享DRAM组成,每个片外共享D RAM分别通过一个DRAM控制器与片上通用总线相连;片上通用总线分别与标量处理器和流处理器相连,使得标量处理器和流处理器可以通过任一DRAM控制器访问对应的片外DRAM;标量处理器和流处理器都作为总线主设备,DRAM控制器作为总线从设备;处理器接口部件作为从设备挂在片上通用总线上,它只传输标量处理器和流处理器之间的数据,不再传输片外存储器到标量处理器或流处理器的数据;标量处理器和流处理器要访问片外数据时,都直接向总线发送请求,获得总线使用权后,将访存地址通过总线传送给DRAM控制器,DRAM控制器访问片外DRAM,获得DRAM中的数据后再将数据通过片上通用总线返回给标量处理器或流处理器;第二步,采用新的方法来完成数据流在片外共享DRAM与流寄存器文件SRF之间的传输,具体过程是:1.1将数据流从 片外共享DRAM加载到SRF存在正常加载,溢出,长流加载,索引四种情况:1.1.1正常加载:数据通过片上通用总线从片外共享DRAM加载到SRF;1.1.2溢出:指目前从片外共享DRAM中加载的数据流A在SRF中所在的空间将被 后面加载的数据流B替换掉,并且目前的数据流A在被替换掉后还会再次被kernel使用,由于数据流A存储在片外共享DRAM中,因此无论首次还是再次使用数据流A,都只需要将数据加载至SRF;1.1.3长流加载:需要加载的流长超过SRF的剩 余容量时,采用双缓冲方法处理:1)将SRF在逻辑上分成两块空间,分别为第一SRF空间和第二SRF空间;2)由片外共享DRAM通过片上通用总线向第一SRF空间加载数据;3)当第一SRF空间写满且运算单元空闲,就写第二S RF空间,同时把第一SRF空间中的数据送入运算单元进行运算;4)当第二SRF空间写满且运算单元空闲,将数据流从片外共享DRAM继续写入第一SRF空间,同时把第二SRF空间中的数据送入运算单元进行运算; 5)如果数据流未加载完 毕,转3);如果加载完毕,停止;1.1.4索引:数据流将被索引访问,因为全部数据流都在片外共享DRAM中,所以只需要通过地址访...

【技术特征摘要】
1.一种流处理器中降低数据访问延迟的方法,其特征在于第一步,改进流处理器的第一级存储层次,将标量DRAM和流DRAM合并为由标量处理器和流处理器共享的片外共享存储器,具体方法是片外共享存储器由多个片外共享DRAM组成,每个片外共享DRAM分别通过一个DRAM控制器与片上通用总线相连;片上通用总线分别与标量处理器和流处理器相连,使得标量处理器和流处理器可以通过任一DRAM控制器访问对应的片外DRAM;标量处理器和流处理器都作为总线主设备,DRAM控制器作为总线从设备;处理器接口部件作为从设备挂在片上通用总线上,它只传输标量处理器和流处理器之间的数据,不再传输片外存储器到标量处理器或流处理器的数据;标量处理器和流处理器要访问片外数据时,都直接向总线发送请求,获得总线使用权后,将访存地址通过总线传送给DRAM控制器,DRAM控制器访问片外DRAM,获得DRAM中的数据后再将数据通过片上通用总线返回给标量处理器或流处理器;第二步,采用新的方法来完成数据流在片外共享DRAM与流寄存器文件SRF之间的传输,具体过程是1.1将数据流从片外共享DRAM加载到SRF存在正常加载,溢出,长流加载,索引四种情况1.1.1正常加载数据通过片上通用总线从片外共享DRAM加载到SRF;1.1.2溢出指目前从片外共享DRAM中加载的数据流A在SRF中所在的空间将被后面加载的数据流B替换掉,并且目前的数据流A在被替换掉后还会再次被kernel使用,由于数据流A存储在片外共享DRAM中,因此无论首次还是再次使用数据流A,都只需要将数据加载至SRF;1.1.3长流加载需要加载的流长超过SRF的剩余容量时,采用双缓冲方法...

【专利技术属性】
技术研发人员:文梅伍楠张春元任巨何义荀长庆杨乾明管茂林
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

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

1
相关领域技术
  • 暂无相关专利