CN117724992B - 用于访问存储器的方法和数据存储架构及计算设备 - Google Patents
用于访问存储器的方法和数据存储架构及计算设备 Download PDFInfo
- Publication number
- CN117724992B CN117724992B CN202410178067.8A CN202410178067A CN117724992B CN 117724992 B CN117724992 B CN 117724992B CN 202410178067 A CN202410178067 A CN 202410178067A CN 117724992 B CN117724992 B CN 117724992B
- Authority
- CN
- China
- Prior art keywords
- address
- address mapping
- access
- time
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013500 data storage Methods 0.000 title claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 185
- 238000011156 evaluation Methods 0.000 claims abstract description 52
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
本申请提供一种用于访问存储器的方法和数据存储架构及计算设备,包括:接收当前存储场景下的存储请求,并获取待处理数据的命令序列;分析所述命令序列,自动生成多种可行的可选地址映射方式;对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;根据所述时间评估参数优化更新存储控制器中地址映射方式。根据本申请的技术方案能够根据数据存储地址变化类型来动态调整系统地址与物理地址映射的方法,提高数据流架构存储器读写效率。
Description
技术领域
本发明涉及AI芯片技术领域,具体涉及一种用于访问存储器的方法及计算设备。
背景技术
随着大模型人工智能的飞速发展,对人工智能芯片处理数据的能力与效率要求越来越高。人工智能芯片中片上存储已经难以满足大模型数据量的需求。如何提高数据存储量的同时,又满足数据读取的高效率,是数据流架构芯片中的关键技术之一。
为提高数据存储量,一般采用片外存储,如DDR SDRAM,甚至HBM,其容量比片上存储(如RAM)更大,且成本更低。其中,DDR存储控制器作为计算机存储系统的重要组成部分,对于整个系统的性能和稳定性具有举足轻重的作用。
DDR SDRAM容量大,但读写效率直接受到读写地址的影响。根据DDR SDRAM的物理特性,其芯片内部分为不同的rank,每个rank内又分为不同的bank,每个bank内再分为不同的row,每个row内又分为不同的column,每个column上是最小的存储单元。而人工智能芯片中的模块对DDR SDRAM读取数据时,一般不会直接操作rank/bank/row/column这些物理地址,而是使用系统地址,如AXI、AHB等协议的地址。系统地址与物理地址的映射关系一般通过大量的数据读写场景测试来统计,最终选取一种较高效率的映射方法。例如,一种物理地址rank/bank/row/column从高位到低在系统地址中的分布为:2位rank地址,16位row地址,3位bank地址以及10位column地址,分别映射到系统地址的bit33~bit3。在上述地址映射方案中,能够保证顺序读写的效率比较高,即地址依次递增时读写效率较高,但其他场景的读写(如地址跳跃时)效率得不到保证。
在DDR SDRAM读写前,需要将待操作存储单元所在的rank、bank与row地址一起限定的某一行进行激活(Activate)后,才能进行读或写,该行被激活后,其内部不同的列(column)单元上的存储单元可以连续读写。当某一行读写操作完成后,需要切换到另一行继续读写时,需要将当前行进行预充电(Precharge)关闭,再通过Activate指令激活另一行。由于激活与预充电需要一定的时间,在此期间不允许对该行进行读写操作,因而为了提高整体的读写效率,需要尽量减少物理行地址的切换操作。但在数据流架构芯片中,经常会遇到地址不连续的读写,如果统一按照上述的地址映射方案,会导致DDR SDRAM频繁地切换bank/row地址,激活与关闭行单元的时间占比会很大,从而将DDR SDRAM的读写带宽利用率大幅度地降低。
为此,需要一种技术方案,能够提高存储器读写效率。
发明内容
本申请旨在提供一种用于访问存储器的方法及计算设备,能够根据数据存储地址变化类型来动态调整系统地址与物理地址映射的方法,提高存储器读写效率。
根据本申请的一方面,提供一种用于访问存储器的方法,包括:
接收当前存储场景下的存储请求,并获取待处理数据的命令序列;
分析所述命令序列,自动生成多种可行的可选地址映射方式;
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;
根据所述时间评估参数优化更新存储控制器中地址映射方式。
根据一些实施例,对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数,包括:
预估当前地址映射下的所述可选地址映射方式的数据读写访问节省时间以及更新映射配置所需时间;
计算相对当前地址映射的各个可选地址映射的时间评估参数。
根据一些实施例,所述时间评估参数为当前地址映射下的所述可选地址映射方式的数据读写访问节省时间减去更新配置所需时间之差。
根据一些实施例,所述可选地址映射方式的数据读写访问节省时间为预估当前配置的总行地址切换时间减去预估所述可选地址映射方式总行地址切换时间。
根据一些实施例,所述更新配置所需时间为需要更新的寄存器个数与更新单个寄存器的软件消耗时间的乘积。
根据一些实施例,根据所述时间评估参数优化更新存储控制器中地址映射方式,包括:
若所述时间评估参数中存在正值,则选取时间评估参数最大值相应的映射方式作为该场景下的最优地址映射方式;
若所述时间评估参数中不存在正值,则维持原配置作为该场景下的最优地址映射方式。
根据一些实施例,所述方法还包括:
利用所述最优地址映射方式更新存储控制器中地址映射方式。
根据本申请的另一方面,提供一种数据存储架构,包括访存主设备、调度控制单元、存储控制器及存储器,其中:
所述访存主设备向所述调度控制单元发出第一访问请求;
所述调度控制单元根据所述第一访问请求更新所述存储控制器中地址映射配置并向所述存储控制器发出第二访问请求;
所述存储控制器根据所述第二访问请求向所述存储器发出第三访问请求,接收来自所述存储器的访问响应,并将所述访问响应返回给所述访存主设备。
根据一些实施例,所述调度控制单元配置为:
接收当前存储场景下的存储请求,并获取待处理数据的命令序列;
分析所述命令序列,自动生成多种可行的可选地址映射方式;
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;
根据所述时间评估参数优化更新存储控制器中地址映射方式。
根据本申请的另一方面,提供一种计算设备,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的实施例,通过对当前存储场景下的所述命令序列的分析,自动生成可行的多种地址映射方式,评估各个地址映射方式,选用最优的地址映射方式更新存储控制器中的地址映射方式,相比于传统的应用统一预设的地址映射访问存储器的方法,本发明的申请能够按照不同存储场景采用当前场景下的最优地址映射访问存储器,进行权衡决策,以达到带宽收益最大化,提高了存储器读写效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例用于访问存储器的方法流程图。
图2示出根据示例实施例用于访问存储器的方法的可选地址映射配置示意图。
图3示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
图4示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
图5示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
图6示出根据示例实施例用于访问存储器的方法的数据存储架构示意图。
图7示出根据示例性实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
随着大模型人工智能的飞速发展,对人工智能芯片处理数据的能力与效率要求越来越高。人工智能芯片中片上存储已经难以满足大模型数据量的需求。如何提高数据存储量的同时,又满足数据读取的高效率,是芯片中的关键技术之一。
为提高数据存储量,一般采用片外存储,如DDR SDRAM,甚至HBM,其容量比片上存储(如RAM)更大,且成本更低。其中,DDR存储控制器作为计算机存储系统的重要组成部分,对于整个系统的性能和稳定性具有举足轻重的作用。
DDR SDRAM容量大,但读写效率直接受到读写地址的影响。根据DDR SDRAM的物理特性,其芯片内部分为不同的rank,每个rank内又分为不同的bank,每个bank内再分为不同的row,每个row内又分为不同的column,每个column上是最小的存储单元。而人工智能芯片中的模块对DDR SDRAM读取数据时,一般不会直接操作rank/bank/row/column这些物理地址,而是使用系统地址,如AXI、AHB等协议的地址。系统地址与物理地址的映射关系一般通过大量的数据读写场景测试来统计,最终选取一种较高效率的映射方法。
在DDR SDRAM读写前,需要将待操作存储单元所在的rank、bank与row地址一起限定的某一行进行激活(Activate)后,才能进行读或写,该行被激活后,其内部不同的列(column)单元上的存储单元可以连续读写。当某一行读写操作完成后,需要切换到另一行继续读写时,需要将当前行进行预充电(Precharge)关闭,再通过Activate指令激活另一行。由于激活与预充电需要一定的时候,在此期间不允许对该行进行读写操作,因而为了提高整体的读写效率,需要尽量减少物理行地址的切换操作。
为此,需要一种技术方案,能够根据数据存储地址变化类型来动态调整系统地址与物理地址映射的方法,提高存储器读写效率。根据实施例,通过对当前存储场景下的所述命令序列的分析,自动生成可行的多种地址映射方式,评估各个地址映射方式,选用最优的地址映射方式更新存储控制器中的地址映射方式,提高存储器读写效率。
在描述本发明实施例之前,对本发明实施例涉及到的一些术语或概念进行解释说明。
Rank(下文中译为:储存组):通常代表一组物理上独立的内存芯片,它们共享相同的地址和控制信号,但在数据总线上是独立的,可以同时进行读写操作以提高数据吞吐量。
Bank(下文中译为:储存体):在一个rank内部,通常会有多个bank,每个bank是独立寻址和工作的存储单元,可以在同一时刻对不同bank进行读写操作,以实现并发性。
Row(下文中译为:行):每个bank内部又被划分为多个行(row),当需要读取某个存储单元的数据时,首先需要激活对应的bank和行。
Column(下文中译为:列):在一个激活的行内,存储单元按照列(column)进行排列,通过列地址可以访问到具体的存储单元(cell)。
下面结合附图对本申请的示例实施例进行说明。
图1示出根据示例实施例用于访问存储器的方法流程图。
图2示出根据示例实施例用于访问存储器的方法的可选地址映射配置示意图。
参见图1及图2,图中示出一种用于访问存储器的方法,在存储系统添加存储调度单元用于动态调整当前存储场景下控制模块中的地址映射方式,所述方法用于所述存储控制单元。
根据一些实施例,根据当前系统状态,存储调度单元采用预先设定的算法模型来评估多个可选地址映射方式对系统存储器读写效率的影响,当发现存在更优的地址映射策略时,存储调度单元负责向存储控制模块发送指令或更新相应寄存器,切换至新的地址映射方式,使得地址映射始终能够适应不断变化的存储场景需求。通过这种方法,存储系统能够更加灵活高效地应对不同应用场景下的存储需求,从而提升整体性能和资源利用率。
根据一些实施例,一般在SDRAM控制器中,通过若干寄存器来控制物理地址的每一bit对应于系统地址中的哪一bit。例如,在某款SDRAM控制器中,分别通过col_map_0、col_map_1……col_map_9来控制column地址的映射关系,假如通过软件将这些寄存器分别配置为3,4,5,6,7,8,9,13,14,15,则可以得到图2中的映射效果。
参见图1,图中示出用于访问存储器的方法流程,所述方法包括:
在S101,接收当前存储场景下的存储请求,并获取待处理数据的命令序列。
根据一些实施例,接收来自应用程序或者数据流的当前存储请求,存储请求可能包含读取、写入、更新等多种操作类型。获取与这些请求相关的待处理数据的命令序列。
图3示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
在S103,分析所述命令序列,自动生成多种可行的可选地址映射方式。
根据一些实施例,对接收到的命令序列进行深度分析,提取出诸如访问密度、访问模式、数据大小、写入地址变化形式(包括起始地址、地址递增量、结束地址等信息)访问频率、空间局部性等特点,之后自动生成可行的多种地址映射方式。例如,某个主设备(Master)需要依次访问以下内存块,0~(1k-1),8k~(9k-1),16k~(17k-1)...56k~(57k-1),(共8小组);1k~(2k-1),9k~(10k-1),17k~(18k-1)...57k~(58k-1),(共8小组);2k~(3k-1),10k~(11k-1),18k~(19k-1)...58k~(59k-1),(共8小组);...7k~(8k-1),15k~(16k-1),23k~(24k-1)...63k~(64k-1),(共8小组)上述共8x8=64个不连续的地址块信息由Master提供,存储调度控制单元收到这些信息后,通过以下步骤产生映射关系:
由于每个地址块大小为1k,即1024,单位是字节(byte),又根据SDRAM的最小存储单元的宽度为8byte,因此,将column[6:0]映射到系统地址的[9:3];23=8,所以系统地址的低3bit不需要映射,对应于SDRAM的最小存储单元宽度。
由于上述每一行地址块小组与小组之间的起始地址差为8k,23=8因此column[7]开始的列地址应该映射间隔3bit,映射到系统地址的[13]往上;
由于上述每一行地址块共有8小组,23=8,因此,column[7]开始的列地址需要3bit,即column[9:7]映射到系统地址的[15:13];
由于上述地址块共有8行(或者称为8大组),需要将3位bank地址bank[2:0]映射到系统地址的[12:10];
根据上面映射方式的调整,可以得到图2中的映射配置,参见图2,根据这种映射方式,即使系统地址是非连续的,但物理地址仍然是先遍历完10bit列地址,再遍历3bit bank地址,后面才到row地址。
根据一些实施例,可行地址映射方式通常来自于对所述命令序列的分析,例如,如果某个主设备(Master)需要依次访问以下内存块,0~(1k-1),512k~(513k-1), 1024k~(1025k-1)...4096k~(4097k-1),(共8小组)...由于上述每一行地址块小组与小组之间的起始地址差为512k,29=512因此column[7]开始的列地址应该映射间隔9bit,映射到系统地址的[19]往上;其他地址位映射类似,得到图3的映射配置。
在S105,对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数。
根据一些实施例,针对已自动生成的可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数。具体地,所述时间评估参数可根据DDR SDRAM的协议或芯片数据手册,得到读写时,分别在相同bank内切换row的T_same_bank_rd/T_same_bank_wr,以及分别在不同bank内切换row的T_diff_bank_rd/T_diff_bank_wr,根据Master提供的地址信息,以及不同的地址映射方式,可以计算得到读取完所有地址所需要的切换row次数,再乘以相应的切换时间T,最终求得总的切换时间T_all,即为此可选地址映射对应的实际耗时。将当前控制器中地址映射的总切换时间减去此可选地址映射的总切换时间T_all,再减去跟新配置时间即为此可选地址映射方式的时间评估参数。
根据一些实施例,一般来说,更新配置所需时间为需要更新的寄存器个数乘以更新一个寄存器的软件消耗时间,更新一个寄存器的软件消耗时间通常是固定的,可以具体测量得到。
在S107,根据所述时间评估参数优化更新存储控制器中地址映射方式。
根据一些实施例,根据计算得到的所述时间评估参数后,若得到的多个所述时间评估参数中存在正值,则说明存在优于当前控制器中地址映射的其他地址映射方式,则选取所述最大的时间评估参数对应的可选地址映射优化更新存储控制器中地址映射方式。
图4示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
图5示出根据另一示例实施例用于访问存储器的方法的可选地址映射配置示意图。
根据一些实施例,当需要对系统地址连续读写时,将SDRAM SDRAM的控制模块配置为对连续读写效率最高的映射方式。参见图4,在这种映射关系中,当系统地址依次递增的时候,会先访问DDR SDRAM某一行中的所有列(column),即先变化column地址,再变化bank地址,再变化row地址,最后才切换rank地址。当读写系统地址不连续时,但有明显的规律时,例如,系统地址先是变化低10bit,遍历完该10bit后,开始变化bit15~bit13,再变化bit12~10,最后才变化bit33~bit16。根据这种地址变化形式,可以动态修改SDRAM SDRAM的控制模块中的地址映射方式。例如,参见图2中,该映射方式将系统地址依次变化的位段,先后映射到column、bank、row与rank地址,这样可以仍然维持先访问DDR SDRAM某一行中的所有列(column),即先变化column地址,再变化bank地址,再变化row地址,最后才切换rank地址。当然,这里不限于这两种映射方式,可以根据不同的系统地址变化规律,来制定各种不同的映射方式,存储调度控制单元会评估若干种映射方式相应的时间评估参数,根据所述时间评估参数来对DDR SDRAM控制器进行更新,例如,图5。
所述命令序列包括:起始地址、地址递增量、结束地址等信息。
根据一些实施例,通过分析命令序列中的起始地址、地址递增量和结束地址,可以识别出访问模式,如线性访问、跳跃访问、循环访问等,这对于选择适合的映射策略有很大影响,而且根据地址递增量可以判断是否存在空间局部性。若相邻访问请求指向相近的地址,说明可能存在较好的局部性,可以选择有利于利用局部性的映射策略,例如,块地址映射或TLB友好型映射。
根据一些实施例,通过起始地址和结束地址可以计算出数据访问的地址跨度,以此来估算所需的缓存大小或者分配连续的内存区域,从而针对性地生成多种映射方案,如直接映射、全相联映射、组相联映射等。评估不同映射方式在执行命令序列时的时间评估参数,从而挑选出最优的地址映射方式。
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数,包括:
预估当前地址映射下的所述可选地址映射方式的数据读写访问节省时间以及更新映射配置所需时间;
计算相对当前地址映射的各个可选地址映射的时间评估参数。
根据一些实施例,预估当前地址映射下的所述可选地址映射方式的数据读写访问节省时间以及更新映射配置所需时间,之后根据得到的数据计算相对当前地址映射的各个可选地址映射的时间评估参数。
所述时间评估参数为所述可选地址映射方式的数据读写访问节省时间减去更新配置所需时间之差。
所述可选地址映射的数据读写访问节省时间为预估当前配置的总行地址切换时间减去预估所述可选地址映射总行地址切换时间。
根据一些实施例,计算所述可选地址映射方式的时间评估参数,需要对所述可选地址映射方式的数据读写访问节省时间以及更新映射配置所需时间进行预估,通常所述数据访问节省时间需要对当前控制模块中的地址映射方式的数据读写访问时间进行预估,得到当前配置的实际读写访问耗时,即总的行地址切换时间,以及所述可选地址映射方式访存操作(读或写)从主存或缓存中获取数据的总行地址切换时间,将得到的当前配置的总行地址切换时间减去预估所述可选地址映射总行地址切换时间,得到所述可选地址映射的数据读写访问节省时间。
所述更新配置所需时间为需要更新的寄存器个数与更新单个寄存器的软件消耗时间的乘积。
根据一些实施例,一般来说,更新地址映射配置可以通过修改相关硬件寄存器来完成,所述更新配置所需时间为需要更新的寄存器个数与更新一个寄存器的软件消耗时间的乘积,更新一个寄存器的软件消耗时间通常是固定的,可以具体测量得到。
根据所述时间评估参数优化更新存储控制器中地址映射方式,包括:
若所述时间评估参数中存在正值,则选取时间评估参数最大值相应的映射方式作为该场景下的最优地址映射方式。
根据一些实施例,获取计算得到的多个所述时间评估参数后,若得到的多个所述时间评估参数中存在正值,则说明存在优于当前控制器中地址映射的其他地址映射方式,则选取所述最大的时间评估参数对应的可选地址映射作为该场景下的最优地址映射方式。
若所述时间评估参数中不存在正值,则维持原配置作为该场景下的最优地址映射方式。
根据一些实施例,获取计算得到的多个所述时间评估参数后,若得到的多个所述时间评估参数中不存在正值,则说明所述可选地址方式中不存在任何优于当前控制器中地址映射的地址映射方式,则维持原配置作为该场景下的最优地址映射方式。
利用所述最优地址映射方式更新存储控制器中地址映射方式。
根据一些实施例,在确定了最优的地址映射方式后,根据存储控制器的接口和协议,生成相应的控制命令或设置相应的寄存器值来改变地址映射模式。利用所述最优映射方式更新存储控制器中地址映射方式。
图6示出根据示例实施例用于访问存储器的方法的数据存储架构示意图。
参见图6,图中示出一种数据存储架构,包括访存主设备、调度控制单元、存储控制器及存储器,其中:
所述访存主设备向所述调度控制单元发出第一访问请求;
所述调度控制单元根据所述第一访问请求更新所述存储控制器中地址映射配置并向所述存储控制器发出第二访问请求;
所述存储控制器根据所述第二访问请求向所述存储器发出第三访问请求,接收来自所述存储器的访问响应,并将所述访问响应返回给所述访存主设备。
根据一些实施例,所述访存主设备作为数据请求发起端,负责向系统提交数据的读写请求。例如,CPU、GPU或者特定的处理单元在执行指令或处理数据时,会向调度控制单元发送第一访问请求,该请求中包含待访问数据的逻辑地址和访问类型(读或写)。其中,所述调度控制单元作为整个架构的核心调度部件,负责管理和优化地址映射。接收到访存主设备的第一访问请求后,所述调度控制单元会根据预设的地址映射策略和当前的存储资源状态,更新地址映射配置。随后,它将原始访问请求转换成符合当前映射规则的第二访问请求,转发给所述存储控制器。
根据一些实施例,所述存储控制器对接收到的第二访问请求进行进一步处理,将其转换成可以直接作用于存储器的物理地址,并向存储器发出第三访问请求,由所述存储器执行相应的读写操作,并将操作结果作为访问响应反馈给存储控制器。存储控制器还负责与存储器进行交互,包括数据的读取、写入以及错误纠正等功能,并在访问完成后将访问响应返回给所述访存主设备。
根据一些实施例,通过调度控制单元对地址映射的动态管理和优化,能够有效提高数据存取效率,减少不必要的延迟,同时也能更好地平衡存储资源的使用,确保系统整体性能的优化。
所述调度控制单元配置为:
接收当前存储场景下的存储请求,并获取待处理数据的命令序列;
分析所述命令序列,自动生成多种可行的可选地址映射方式;
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;
根据所述时间评估参数优化更新存储控制器中地址映射方式。
根据一些实施例,所述调度控制单元实时监控和捕获当前存储场景下的各种存储请求,从这些请求中提取出待处理数据的所述命令序列。基于所获取的命令序列进行分析,生成多种可能的地址映射方式。对于每种自动生成的地址映射方式计算时间评估参数。
根据一些实施例,依据得到的时间评估参数的结果,所述调度控制单元选择最优或接近最优的地址映射方式,并将这一最优的地址映射方式更新至所述存储控制器中的地址映射表中,从而达到提升系统整体性能的目的。
根据一些实施例,根据本发明的方案添加存储调度控制单元预估计算不同映射方式的缓存时间,进行权衡决策,以达到带宽收益最大化。
根据一些实施例,根据本发明的方案能够实现根据不同存储场景,实时动态地调整系统地址与DDR SDRAM的映射关系,可以保证SDRAM长时间工作在高效率读写状态,极大的提高了DDR的带宽利用率,对减小芯片存储延时,对提高端到端效率有很好的效果。
图7示出根据本申请示例实施例的计算设备的框图。
如图7所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本申请实施例的方法。
计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (9)
1.一种用于访问存储器的方法,其特征在于,包括:
接收当前存储场景下的存储请求,并获取待处理数据的命令序列;
分析所述命令序列,自动生成多种可行的可选地址映射方式,所述命令序列包括起始地址、地址递增量、结束地址,所述起始地址、所述地址递增量和所述结束地址用于识别访问模式,且所述起始地址和所述结束地址用于计算数据访问的地址跨度以估算所需的缓存大小或者分配连续的内存区域,所述地址递增量用于判断是否存在空间局限性;
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;
根据所述时间评估参数优化更新存储控制器中地址映射方式。
2.根据权利要求1所述的方法,其特征在于,对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数,包括:
预估当前地址映射下的所述可选地址映射方式的数据读写访问节省时间以及更新映射配置所需时间;
计算相对当前地址映射的各个可选地址映射的时间评估参数。
3.根据权利要求2所述的方法,其特征在于,所述时间评估参数为当前地址映射下的所述可选地址映射方式的数据读写访问节省时间减去更新配置所需时间之差。
4.根据权利要求3所述的方法,其特征在于,所述可选地址映射方式的数据读写访问节省时间为预估当前配置的总行地址切换时间减去预估所述可选地址映射方式总行地址切换时间。
5.根据权利要求2所述的方法,其特征在于,所述更新映射配置所需时间为需要更新的寄存器个数与更新单个寄存器的软件消耗时间的乘积。
6.根据权利要求1所述的方法,其特征在于,根据所述时间评估参数优化更新存储控制器中地址映射方式,包括:
若所述时间评估参数中存在正值,则选取时间评估参数最大值相应的映射方式作为该场景下的最优地址映射方式;
若所述时间评估参数中不存在正值,则维持原配置作为该场景下的最优地址映射方式。
7.根据权利要求6所述的方法,其特征在于,还包括:
利用所述最优地址映射方式更新存储控制器中地址映射方式。
8.一种数据存储架构,其特征在于,包括访存主设备、调度控制单元、存储控制器及存储器,其中:
所述访存主设备向所述调度控制单元发出第一访问请求;
所述调度控制单元根据所述第一访问请求更新所述存储控制器中地址映射配置并向所述存储控制器发出第二访问请求;
所述存储控制器根据所述第二访问请求向所述存储器发出第三访问请求,接收来自所述存储器的访问响应,并将所述访问响应返回给所述访存主设备,
其中,所述调度控制单元配置为:
接收当前存储场景下的存储请求,并获取待处理数据的命令序列,所述命令序列包括起始地址、地址递增量、结束地址,所述起始地址、所述地址递增量和所述结束地址用于识别访问模式,且所述起始地址和所述结束地址用于计算数据访问的地址跨度以估算所需的缓存大小或者分配连续的内存区域,所述地址递增量用于判断是否存在空间局限性;
分析所述命令序列,自动生成多种可行的可选地址映射方式;
对所述可选地址映射方式进行对比评估,计算所述可选地址映射方式的时间评估参数;
根据所述时间评估参数优化更新存储控制器中地址映射方式。
9.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410178067.8A CN117724992B (zh) | 2024-02-09 | 2024-02-09 | 用于访问存储器的方法和数据存储架构及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410178067.8A CN117724992B (zh) | 2024-02-09 | 2024-02-09 | 用于访问存储器的方法和数据存储架构及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117724992A CN117724992A (zh) | 2024-03-19 |
CN117724992B true CN117724992B (zh) | 2024-05-28 |
Family
ID=90203881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410178067.8A Active CN117724992B (zh) | 2024-02-09 | 2024-02-09 | 用于访问存储器的方法和数据存储架构及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724992B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
CN113377690A (zh) * | 2021-06-28 | 2021-09-10 | 福建师范大学 | 一种适应不同大小的用户请求的固态硬盘处理方法 |
CN114185818A (zh) * | 2022-02-15 | 2022-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135936B2 (en) * | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
-
2024
- 2024-02-09 CN CN202410178067.8A patent/CN117724992B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
CN113377690A (zh) * | 2021-06-28 | 2021-09-10 | 福建师范大学 | 一种适应不同大小的用户请求的固态硬盘处理方法 |
CN114185818A (zh) * | 2022-02-15 | 2022-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN115422098A (zh) * | 2022-02-15 | 2022-12-02 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117724992A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | Power management of hybrid DRAM/PRAM-based main memory | |
US9898206B2 (en) | Memory access processing method, apparatus, and system | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US20130232310A1 (en) | Energy efficiency in a distributed storage system | |
TW201140319A (en) | Replacing cache lines in a cache memory | |
JP2016520233A (ja) | メモリシステム、メモリアクセス要求を処理するための方法、およびコンピュータシステム | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN110096350B (zh) | 基于集群节点负载状态预测的冷热区域划分节能存储方法 | |
EP2241969B1 (en) | Program and data annotation for hardware customization and energy optimization | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
CN103136120A (zh) | 行缓冲管理策略确定方法和装置、bank划分方法和装置 | |
CN202472635U (zh) | 闪存磨损均衡装置 | |
US20220197563A1 (en) | Qos traffic class latency model for just-in-time (jit) schedulers | |
CN106383792B (zh) | 一种基于缺失感知的异构多核缓存替换方法 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
CN103685544A (zh) | 一种基于性能预估的客户端缓存分配方法和系统 | |
CN117724992B (zh) | 用于访问存储器的方法和数据存储架构及计算设备 | |
CN107220069B (zh) | 一种针对非易失性内存的Shuffle方法 | |
Foglia et al. | Exploiting replication to improve performances of NUCA-based CMP systems | |
CN111290706B (zh) | 一种基于布隆过滤器的双层读写磨损均衡方法 | |
CN108292262B (zh) | 计算机存储器管理方法和系统 | |
Zhang et al. | An optimal page-level power management strategy in pcm–dram hybrid memory | |
Katsaragakis et al. | Adjacent LSTM-Based Page Scheduling for Hybrid DRAM/NVM Memory Systems | |
Sun et al. | CalmWPC: A buffer management to calm down write performance cliff for NAND flash-based storage systems | |
US9244832B1 (en) | Cache learning model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |