内存访问方法及装置制造方法及图纸

技术编号:18763750 阅读:30 留言:0更新日期:2018-08-25 10:28
本申请公开了一种内存访问方法及装置,属于计算机技术领域。所述方法包括:在执行命令执行队列包括的命令的过程中,确定第一命令所属的存储体组BG,所述第一命令为所述命令执行队列包括的命令中最后要执行的命令;当命令缓存队列中存在与所述第一命令所属的BG不同的命令时,从与所述第一命令所属的BG不同的命令中选择一个命令作为第二命令;将所述第二命令添加到所述命令执行队列,以基于所述命令执行队列均衡访问内存系统中的各个BG。本申请中总是优先将命令缓存队列中与第一命令所属的BG不同的命令添加到命令执行队列,从而可以使得命令执行队列中属于各个BG的命令较为均衡,进而可以保证后续对各个BG的均衡访问。

【技术实现步骤摘要】
内存访问方法及装置
本专利技术实施例涉及计算机
,特别涉及一种内存访问方法及装置。
技术介绍
计算机系统中,中央处理器(CentralProcessingUnit,CPU)、图形处理器(GraphicsProcessingUnit,GPU)等处理器通常通过内存控制器(MemoryController,MC)来访问内存系统。具体地,处理器可以将待执行的命令发送给MC;当MC接收到该命令后,可以执行该命令来访问内存系统。其中,内存系统可以由第四代双倍数据速率同步动态随机存取存储器(Double-Data-RateFourthGenerationSynchronousDynamicRandomAccessMemory,DDR4SDRAM)实现。如图1A所示,DDR4SDRAM包括有多个存储体组(BankGroup,BG),该多个BG中的每个BG包括有多个存储体(Bank)。MC访问DDR4SDRAM中不同BG的Bank时,需要满足电子元件工业联合会(JointElectronDeviceEngineeringCouncil,JEDEC)标准中的时序参数tCCD_S,即在访问一个BG的Bank后需要间隔tCCD_S个时钟周期才能访问另一个BG的Bank。MC访问DDR4SDRAM中同一BG的不同Bank时,需要满足JEDEC标准中的时序参数tCCD_L,即在访问BG的一个Bank后需要间隔tCCD_L个时钟周期才能访问该BG的另一个Bank。其中,MC对不同BG的连续访问可以称为BG交织,MC对同一BG的连续访问可以称为BG冲突。如图1B所示,假设MC每次对BG的访问时长为a个时钟周期,由于tCCD_S一般与a相近,所以BG交织时命令是无空隙执行的。而由于tCCD_L一般远大于a,所以BG冲突时在命令的执行过程中会出现(tCCD_L-a)个时钟周期的空隙,从而导致访问带宽的利用率较低。因此,为了提高访问带宽的利用率,应该尽量增加BG交织,减少BG冲突,保证对各个BG的均衡访问。目前,为了减少BG冲突,在将命令的系统地址映射为内存地址时,会将内存地址中的BG位映射在系统地址的低位。此时对于系统地址连续递增的访问模式,处理器向MC连续发送的多个命令所属的BG将会不同,MC接收到该多个命令后,可以执行该多个命令来均衡访问各个BG。然而,该方法只适用于系统地址连续递增的访问模式,对于系统地址在高位变化,或者其它没有规律的访问模式,并不能使处理器向MC连续发送的多个命令所属的BG不同,从而也就不能实现后续MC对各个BG的均衡访问。
技术实现思路
为了实现MC对内存系统中的各个BG的均衡访问,本专利技术实施例提供了一种内存访问方法及装置。所述技术方案如下:第一方面,提供了一种内存访问方法,所述方法包括:在执行命令执行队列包括的命令的过程中,确定第一命令所属的BG,所述第一命令为所述命令执行队列包括的命令中最后要执行的命令;当命令缓存队列中存在与所述第一命令所属的BG不同的命令时,从与所述第一命令所属的BG不同的命令中选择一个命令作为第二命令;将所述第二命令添加到所述命令执行队列,以基于所述命令执行队列均衡访问内存系统中的各个BG。本专利技术实施例中,由于总是优先将命令缓存队列中与第一命令所属的BG不同的命令添加到命令执行队列,因此,可以使得命令执行队列中属于各个BG的命令较为均衡,从而可以保证后续对各个BG的均衡访问。进一步地,所述方法还包括:当所述命令缓存队列中不存在与所述第一命令所属的BG不同的命令时,从所述命令缓存队列中随机选择一个命令作为所述第二命令,或者按照所述命令缓存队列包括的命令的排列顺序从所述命令缓存队列中选择一个命令作为所述第二命令。在本专利技术实施例中,当第二命令为随机选择得到时,第二命令的选择效率较高。而当第二命令为按照命令的排列顺序选择得到时,可以保证命令缓存队列包括的命令的添加顺序。其中,所述确定第一命令所属的BG,包括:将第一指示值当前指示的BG确定为所述第一命令所属的BG,所述第一指示值用于指示所述命令执行队列包括的命令中最后要执行的命令所属的BG。在本专利技术实施例中,基于第一指示值即可简单快速地确定第一命令所属的BG,确定效率较高。进一步地,所述将所述第二命令添加到所述命令执行队列之后,还包括:确定第二指示值当前指示的次数,以及确定所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,所述第二指示值用于指示所述命令执行队列中属于所述第一指示值指示的BG的命令在执行时需要连续访问所属的BG的次数;基于所述第二指示值当前指示的次数、所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,更新所述第一指示值和所述第二指示值。由于将第二命令添加到命令执行队列之后,命令执行队列包括的命令会发生变化,则此时命令执行队列包括的命令中最后要执行的命令所属的BG可能也会发生变化,因此,将第二命令添加到命令执行队列之后,还可以对第一指示值进行更新,以便后续可以基于更新后的第一指示值来从命令缓存队列中选择下一个要添加的命令。需要说明的是,第一指示值当前指示的BG为未将第二命令添加到命令执行队列时,命令执行队列包括的命令中最后要执行的命令所属的BG。另外,第二指示值当前指示的次数为未将第二命令添加到命令执行队列时,命令执行队列中属于第一指示值指示的BG的命令在执行时需要连续访问所属的BG的次数。其中,所述基于所述第二指示值当前指示的次数、所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,更新所述第一指示值和所述第二指示值,包括:判断所述第二命令所属的BG与所述第一指示值当前指示的BG是否相同;当所述第二命令所属的BG与所述第一指示值当前指示的BG相同时,将所述第一指示值指示的BG保持不变,将所述第二指示值指示的次数更新为第一次数,所述第一次数为所述第二指示值当前指示的次数与所述第二命令在执行时需要访问所属的BG的次数之和。进一步地,所述判断所述第二命令所属的BG与所述第一指示值当前指示的BG是否相同之后,还包括:当所述第二命令所属的BG与所述第一指示值当前指示的BG不同时,判断所述第二命令在执行时需要访问所属的BG的次数是否小于所述第二指示值当前指示的次数;当所述第二命令在执行时需要访问所属的BG的次数小于所述第二指示值当前指示的次数时,将所述第一指示值指示的BG保持不变,将所述第二指示值指示的次数更新为第二次数,所述第二次数为所述第二指示值当前指示的次数减去所述第二命令在执行时需要访问所属的BG的次数后得到的次数。更进一步地,所述判断所述第二命令在执行时需要访问所属的BG的次数是否小于所述第二指示值当前指示的次数之后,还包括:当所述第二命令在执行时需要访问所属的BG的次数不小于所述第二指示值当前指示的次数时,将所述第一指示值指示的BG更新为所述第二命令所属的BG,将所述第二指示值指示的次数更新为所述第二次数的绝对值与1之和。在本专利技术实施例中,可以基于第二指示值当前指示的次数,来更新第一指示值,此时在后续需要向命令执行队列中添加命令时,就可以直接基于更新后的第一指示值来准确确定命令执行队列包括的命令中最后要执行的命令所属的BG,从而可以继续优先将命令缓存队列中不属于本文档来自技高网
...

【技术保护点】
1.一种内存访问方法,其特征在于,所述方法包括:在执行命令执行队列包括的命令的过程中,确定第一命令所属的存储体组BG,所述第一命令为所述命令执行队列包括的命令中最后要执行的命令;当命令缓存队列中存在与所述第一命令所属的BG不同的命令时,从与所述第一命令所属的BG不同的命令中选择一个命令作为第二命令;将所述第二命令添加到所述命令执行队列,以基于所述命令执行队列均衡访问内存系统中的各个BG。

【技术特征摘要】
1.一种内存访问方法,其特征在于,所述方法包括:在执行命令执行队列包括的命令的过程中,确定第一命令所属的存储体组BG,所述第一命令为所述命令执行队列包括的命令中最后要执行的命令;当命令缓存队列中存在与所述第一命令所属的BG不同的命令时,从与所述第一命令所属的BG不同的命令中选择一个命令作为第二命令;将所述第二命令添加到所述命令执行队列,以基于所述命令执行队列均衡访问内存系统中的各个BG。2.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述命令缓存队列中不存在与所述第一命令所属的BG不同的命令时,从所述命令缓存队列中随机选择一个命令作为所述第二命令,或者按照所述命令缓存队列包括的命令的排列顺序从所述命令缓存队列中选择一个命令作为所述第二命令。3.如权利要求1所述的方法,其特征在于,所述确定第一命令所属的BG,包括:将第一指示值当前指示的BG确定为所述第一命令所属的BG,所述第一指示值用于指示所述命令执行队列包括的命令中最后要执行的命令所属的BG。4.如权利要求3所述的方法,其特征在于,所述将所述第二命令添加到所述命令执行队列之后,还包括:确定第二指示值当前指示的次数,以及确定所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,所述第二指示值用于指示所述命令执行队列中属于所述第一指示值指示的BG的命令在执行时需要连续访问所属的BG的次数;基于所述第二指示值当前指示的次数、所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,更新所述第一指示值和所述第二指示值。5.如权利要求4所述的方法,其特征在于,所述基于所述第二指示值当前指示的次数、所述第二命令所属的BG和所述第二命令在执行时需要访问所属的BG的次数,更新所述第一指示值和所述第二指示值,包括:判断所述第二命令所属的BG与所述第一指示值当前指示的BG是否相同;当所述第二命令所属的BG与所述第一指示值当前指示的BG相同时,将所述第一指示值指示的BG保持不变,将所述第二指示值指示的次数更新为第一次数,所述第一次数为所述第二指示值当前指示的次数与所述第二命令在执行时需要访问所属的BG的次数之和。6.如权利要求5所述的方法,其特征在于,所述判断所述第二命令所属的BG与所述第一指示值当前指示的BG是否相同之后,还包括:当所述第二命令所属的BG与所述第一指示值当前指示的BG不同时,判断所述第二命令在执行时需要访问所属的BG的次数是否小于所述第二指示值当前指示的次数;当所述第二命令在执行时需要访问所属的BG的次数小于所述第二指示值当前指示的次数时,将所述第一指示值指示的BG保持不变,将所述第二指示值指示的次数更新为第二次数,所述第二次数为所述第二指示值当前指示的次数减去所述第二命令在执行时需要访问所属的BG的次数后得到的次数。7.如权利要求6所述的方法,其特征在于,所述判断所述第二命令在执行时需要访问所属的BG的次数是否小于所述第二指示值当前指示的次数之后,还包括:当所述第二命令在执行时需要访问所属的BG的次数不小于所述第二指示值当前指示的次数时,将所述第一指示值指示的BG更新为所述第二命令所属的BG,将所述第二...

【专利技术属性】
技术研发人员:梁传增杨谊峰喻丙旭
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1