CN115237335A - 数据读写方法、数据读写控制器及存储介质 - Google Patents
数据读写方法、数据读写控制器及存储介质 Download PDFInfo
- Publication number
- CN115237335A CN115237335A CN202110705458.7A CN202110705458A CN115237335A CN 115237335 A CN115237335 A CN 115237335A CN 202110705458 A CN202110705458 A CN 202110705458A CN 115237335 A CN115237335 A CN 115237335A
- Authority
- CN
- China
- Prior art keywords
- write
- read
- queue
- data read
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006870 function Effects 0.000 claims description 136
- 230000015654 memory Effects 0.000 claims description 134
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000007334 memory performance Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance 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
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据读写方法、数据读写控制器和存储介质,属于数据存储技术领域。在本申请实施例中,通过计算设备的业务数据读写特征来确定读队列和写队列之间的数量比,进而按照该数量比来配置读写队列,这样,后续在根据配置的读写队列来读写业务数据时,可以使得读写流量与业务特征相匹配,从而能够更好的提升带宽利用率,降低时延。
Description
本申请实施例要求于2021年4月23日提交的申请号为202110443556.8、发明名称为“混合内存管理方法和混合内存系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中。
技术领域
本申请实施例涉及数据存储技术领域,特别涉及一种数据读写方法、数据读写控制器及存储介质。
背景技术
随着全球科技竞争越来越激烈,应用于超算等领域内的高性能计算得到了快速发展。在用于进行高性能计算的计算设备中,程序和数据通常均存放在内存中。处理器通过访问内存中的程序和数据来进行运算。然而,由于内存性能的进步一直落后于处理器性能的进步,因此内存性能是限制处理器性能发挥的关键因素。在这种情况下,如何在数据读写的过程中更好的利用内存性能以提高计算效率变得至关重要。
发明内容
本申请实施例提供了一种数据读写方法、数据读写控制器及存储介质,能够提升存储器的带宽利用率,降低时延。所述技术方案如下:
第一方面,提供了一种数据读写方法,应用于计算设备中,所述方法包括:
获取所述计算设备的业务数据读写特征;
根据所述业务数据读写特征,确定读队列和写队列之间的数量比;
根据所述读队列和所述写队列之间的数量比配置读队列和写队列;
根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写。
在本申请实施例中,通过计算设备的业务数据读写特征来确定读队列和写队列之间的数量比,进而按照该数量比来配置读写队列,这样,后续在根据配置的读写队列来读写业务数据时,可以使得读写流量与业务特征相匹配,从而能够更好的提升带宽利用率,降低时延。
可选地,获取所述计算设备的业务数据读写特征的实现过程可以包括:获取所述计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例;根据所述多个历史数据读写比例,预测所述计算设备的未来数据读写比例;将所述计算设备的未来数据读写比例作为所述计算设备的业务数据读写特征。
在本申请实施例中,通过获取各个运行时段的应用程序数据读写比例来预测计算设备的未来数据读写比例,进而将该未来数据读写比例作为该计算设备的业务数据读写特征,这样,后续根据该业务数据读写特征来进行读写队列数量的配置时,能够使得计算设备的实际读写流量与真实的业务负载相匹配,从而提高内存性能。
可选地,获取所述计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例的实现过程可以包括:确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在所述第一运行时段内的数据读写比例,所述第一运行时段为所述多个运行时段内的任一运行时段;根据每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
可选地,在确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在所述第一运行时段内的数据读写比例时,计算设备可以确定目标应用程序中的多个热点函数,所述热点函数是指频繁进行数据读写的函数,所述目标应用程序是指所述多个第一应用程序中的任一应用程序;计算在所述第一运行时段内所述目标应用程序中的每个热点函数对应的数据读写比例;根据每个热点函数对应的数据读写比例和每个热点函数在所述目标应用程序中的权重,确定所述目标应用程序在所述第一运行时段内的数据读写比例。
需要说明的是,在上述确定多个热点函数的数据读写比例时,可以是在第一应用程序运行的过程中统计各个热点函数的数据读写比例。
可选地,在一些可能的实现方式中,在计算在所述第一运行时段内所述目标应用程中的每个热点函数对应的数据读写比例之前,计算设备还可以获取所述目标应用程序对应的目标缩微程序,所述目标缩微程序包括所述目标应用程序中的多个热点函数;在所述第一运行时段内运行所述目标缩微程序。
在本申请实施例中,考虑到高性能计算等场景中,计算设备上安装的应用程序较为大型,通过运行应用程序来统计热点函数对应的数据读写比例可能需要耗费较多的时间,因此,在本申请实施例中,可以预先将应用程序小型化,以得到应用程序对应的缩微程序。之后,在对应的运行时段内通过运行缩微程序来统计应用程序内的各个热点函数的数据读写比例,以此来提高获取业务数据特征的效率。
可选地,在根据每个第一应用程序在所述第一运行时段中的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例时,计算设备可以获取每个第一应用程序在所述计算设备中的使用权重;根据每个第一应用程序的使用权重和每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例。
在本申请实施例中,通过应用程序的使用权重,来确定总体的数据读写比例,这样,可以提高确定的数据读写比例的准确性。
可选地,所述读队列的队列头设置有用于指示相应队列的队列类型为读队列的第一标志位,所述写队列的队列头设置有用于指示相应队列的队列类型为写队列的第二标志位。
可选地,所述计算设备包括第一存储器和第二存储器,所述第一存储器为高带宽存储器HBM,所述第二存储器为大容量存储器,在这种情况下,计算设备还可以显示调试界面,所述调试界面内包括缓存模式选项和直接访问模式选项;当接收到针对所述缓存模式选项的选择指令时,将所述第一存储器作为所述第二存储器的缓存。
在本申请实施例中,用户可以灵活的设置HBM和大容量存储器的访问模式,这样,能够使得计算设备的应用性能更好。
可选地,所述根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写的实现过程可以为:根据所述读队列,从所述第一存储器中读取待读取的业务数据;如果在所述第一存储器中未命中所述待读取的业务数据,则从所述第二存储器中读取所述待读取的业务数据。
在本申请实施例中,将HBM作为大容量存储器的缓存,并通过本申请实施例提供的方法,根据配置的读队列和写队列在HBM中进行数据读写,这样,可以更好的利用HBM的高带宽,从而提升HBM的带宽利用率。
可选地,当读取业务数据的操作时长达到参考阈值时,计算设备可以根据所述写队列,在所述第一存储器和/或第二存储器中写入业务数据,以保证待写入数据能够及时写入到存储器中。
第二方面,提供了一种数据读写控制器,该数据读写控制器应用于前述的计算设备中,且该数据读写控制器包括:数据读写预测单元、缓冲配置单元和读写缓冲单元。
其中,数据读写预测单元,用于获取所述计算设备的业务数据读写特征;所述缓冲配置单元,用于根据所述业务数据读写特征,确定读队列和写队列之间的数量比,并根据所述读队列和所述写队列之间的数量比配置所述读写缓冲单元中的读队列和写队列;所述读写缓冲单元,用于根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写。
可选地,数据读写预测单元主要用于:获取计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例;根据多个历史数据读写比例,预测计算设备的未来数据读写比例;将计算设备的未来数据读写比例作为计算设备的业务数据读写特征。
可选地,数据读写预测单元主要用于:确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在第一运行时段内的数据读写比例,第一运行时段为多个运行时段内的任一运行时段;根据每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
可选地,数据读写预测单元主要用于:确定目标应用程序中的多个热点函数,热点函数是指频繁进行数据读写的函数,目标应用程序是指多个第一应用程序中的任一应用程序;计算在第一运行时段内目标应用程序中每个热点函数对应的数据读写比例;根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,确定目标应用程序在第一运行时段内的数据读写比例。
可选地,数据读写预测单元还用于:获取目标应用程序对应的目标缩微程序,目标缩微程序包括目标应用程序中的多个热点函数;在第一运行时段内运行目标缩微程序。
可选地,数据读写预测单元主要用于:获取每个第一应用程序在计算设备中的使用权重;
根据每个第一应用程序的使用权重和每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例。
可选地,读队列的队列头设置有用于指示相应队列的队列类型为读队列的第一标志位,写队列的队列头设置有用于指示相应队列的队列类型为写队列的第二标志位。
可选地,计算设备包括第一存储器和第二存储器,第一存储器为高带宽存储器HBM,第二存储器为大容量存储器,数据读写控制器还包括内存控制单元,该内存控制单元包含有共享队列和输入输出(input/output,I/O)接口;内存控制单元,用于根据读请求,通过I/O接口从第一存储器中读取待读取的业务数据;如果在第一存储器中未命中待读取的业务数据,则通过I/O接口从第二存储器中读取待读取的业务数据,将读取到的业务数据存储至共享队列中;读写缓冲单元,主要用于根据读队列,从内存控制单元的共享队列中获取读取到的业务数据。
可选地,读写缓冲单元主要用于:当读取业务数据的操作时长达到参考阈值时,根据写队列,在第一存储器和/或第二存储器中写入业务数据。
第三方面,提供了一种计算设备,所述计算设备的结构中包括处理器和存储器,所述存储器用于存储支持所述计算设备执行上述第一方面所提供的数据读写方法的程序,以及存储用于实现上述第一方面所提供的数据读写方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据读写方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据读写方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,通过计算设备的业务数据读写特征来确定读队列和写队列之间的数量比,进而按照该数量比来配置读写队列,这样,后续在根据配置的读写队列来读写业务数据时,可以使得读写流量与业务特征相匹配,从而能够更好的提升带宽利用率,降低时延。
附图说明
图1是本申请实施例提供的一种计算设备的结构示意图;
图2是本申请实施例提供的一种数据读写方法流程图;
图3是本申请实施例提供的在缓存模式下对计算设备的存储器进行数据读写的示意图;
图4是本申请实施例提供的在直接访问模式下对计算设备的存储器进行数据读写的示意图;
图5是本申请实施例提供的一种数据读写控制器的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景进行介绍。
当前,在高性能计算领域中,为了满足芯片高算力的需求,通常会采用HBM来作为计算设备的存储器,以此来提升内存带宽。然而,由于HBM的容量比较小,所以,在计算设备中可以同时部署HBM和大容量存储器作为该计算设备的存储器。例如,大容量存储器可以为双倍数据速率(double data rate,DDR)存储器。在这种情况下,为了尽可能的利用HBM的高带宽,可以将HBM作为大容量存储的缓存,进而通过本申请实施例提供的数据读写方法在HBM和大容量存储器中进行业务数据的读写。
当然,在另一些可能的场景中,例如,当计算设备同时配置有多种类型的大容量存储器时,也可以通过本申请实施例提供的数据读写方法来提高大容量存储器的带宽利用率,降低数据读写时延。
或者,在一种可能的场景中,当计算设备中配置有一种类型的存储器,例如,配置有HBM时,也可以通过本申请实施例提供的数据读写方法来提高HBM的带宽利用率,降低数据读写时延。
上述仅是本申请实施例给出的几种示例性的应用场景,并不构成对本申请实施例应用场景的限定。
图1是本申请实施例提供的一种计算设备的结构示意图。参见图1,该计算设备包括一个或多个处理器101、通信总线102、存储器103以及一个或多个通信接口104。
处理器101可以包括一个或多个用于实现本申请方案的通用中央处理器(centralprocessing unit,CPU),除此之外,该处理器101还可以包括微处理器、或者一个或多个集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线102用于在上述组件之间传送信息。通信总线102可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器103可以包括HBM 1031和大容量存储器1032,其中,HBM 1031可以作为大容量存储器1032的缓存。另外,大容量存储器可以为DDR、SDRAM等存储器,本申请实施例对此不做限定。可选地,存储器103也可以包括只读存储器(read-only memory,ROM),随机存取存储器(random access memory,RAM),电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、光盘(包括只读光盘(compact disc read-only memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器103可以是独立存在,并通过通信总线102与处理器101相连接。
通信接口104使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口104包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在一些实施例中,该计算设备可以包括多个处理器,如图1中所示的处理器101和处理器105。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算设备还可以包括输出设备106和输入设备107。输出设备106和处理器101通信,可以以多种方式来显示信息。例如,输出设备106可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备107和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备107可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器103用于存储执行本申请方案的程序代码,处理器101可以执行存储器103中存储的程序代码。该程序代码中可以包括一个或多个软件模块,该计算设备可以通过处理器101以及存储器103中的程序代码,来实现下文图2实施例提供的在存储器103中进行数据读写的方法。
接下来对本申请实施例提供的数据读写方法进行介绍。
图2是本申请实施例提供的一种数据读写方法的流程图,该方法可以应用于前述图1介绍的计算设备中,参见图2,该过程包括以下步骤:
步骤201:获取计算设备的业务数据读写特征。
在本申请实施例中,计算设备获取在多个运行时段中的每个运行时段内的应用程序数据读写比例,从而得到多个历史数据读写比例,之后,根据多个历史数据读写比例,预测计算设备的未来数据读写比例。
其中,多个运行时段中的每个运行时段的时长可以相等也可以不等。另外,多个运行时段可以为对一天24小时进行划分之后得到的多个时段中的某几个时段,这样,每个运行时段的时长将为若干小时。
示例性地,以多个运行时段中的第一运行时段为例,计算设备确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在第一运行时段内的数据读写比例,根据每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
其中,在一种可能的实现方式中,第一运行时段内对应的多个第一应用程序是指在第一运行时段内运行的多个应用程序。在这种情况下,计算设备可以确定每个第一应用程序在第一运行时段内运行时的数据读写比例,进而根据每个第一应用程序在第一运行时段内运行时的数据读写比例,得到第一运行时段对应的第一历史数据读写比例。
示例性地,以多个第一应用程序中的目标应用程序为例,计算设备首先确定目标应用程序中的多个热点函数,该热点函数是指频繁进行数据读写的函数,计算在第一运行时段内目标应用程序中的每个热点函数对应的数据读写比例;根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,确定目标应用程序在第一运行时段内的数据读写比例。
在一种可能的实现方式中,计算设备可以采用代码解析工具对目标应用程序的代码进行解析,以确定该目标应用程序中的代码中需要进行数据读写的目标函数。之后,对于查找到的目标函数,预估各个目标函数所要占用的读写内存带宽,并根据所要占用的读写内存带宽从大到小的顺序对各个目标函数进行排序。之后,将排序后的多个目标函数中的前N个函数作为热点函数。可选地,计算设备在得到各个目标函数所占用的读写内存带宽之后,也可以根据带宽阈值,从多个目标函数中确定所占用的读写内存带宽大于该带宽阈值的目标函数,进而将确定出的目标函数作为热点函数。
在另一些可能的实现方式中,也可以人为指定目标应用程序中的热点函数。在该种实现方式中,计算设备可以显示目标应用程序的应用标识,并显示热点函数配置项。相应地,技术人员可以在该热点函数配置项中输入该目标应用程序中包含的函数。计算设备在接收到技术人员输入的函数之后,判断目标应用程序的代码中是否包含有该函数,如果该目标应用程序的代码中包含有技术人员输入的函数,则将这些函数作为该目标应用程序的热点函数。
在确定出热点函数之后,计算设备计算在第一运行时段内目标应用程序在运行时该多个热点函数中每个热点函数对应的数据读写比例。其中,计算设备统计目标应用程序在运行时,每个热点函数的读取数据量和写入数据量,之后,计算每个热点函数的读取数据量和写入数据量之间的比值,从而得到相应热点函数对应的数据读写比例。
由于各个热点函数的读写频次、热点函数的运算结果在应用程序中的作用等均可能不同,因此,每个热点函数在目标应用程序中的重要程度不同,基于此,在本申请实施例中,在确定得到目标应用程序在第一运行时段内运行时每个热点函数的数据读写比例之后,计算设备可以根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,确定目标应用程序在第一运行时段内的数据读写比例。
其中,每个热点函数在目标应用程序中的权重可以根据相应热点函数在目标应用程序运行时的读写总频次来分配,其中,热点函数的读写总频次越高,对应的权重越高。
例如,当前存在四个热点函数A、B、C和D。其中,根据各个热点函数的读写总频次对四个热点函数进行排序,排序后为D、A、C、B。基于此,热点函数D在目标应用程序中的权重可以为0.4,热点函数A在目标应用程序中的权重可以为0.3,热点函数C在目标应用程序中的权重可以为0.2,热点函数B在目标应用程序中的权重可以为0.1。
可选地,各个热点函数的权重也可以根据相应热点函数的运算结果在目标应用程序中的重要程度来划分,或者将上述两种因素结合后进行分配。当然,在一些可能的实现方式中,也可以人为设置每个热点函数在目标应用程序中的权重,本申请实施例对此不做限定。
计算设备在得到各个热点函数在目标应用程序中的权重之后,计算每个热点函数对应的读写数据比例和权重的乘积,将得到的乘积加和,从而得到该目标应用程序在第一运行时段内的数据读写比例。
可选地,在一些可能的实现方式中,计算设备在统计得到每个热点函数在第一运行时段内的读取数据量和写入数据量之后,也可以将各个热点函数的读取数据量相加,得到多个热点函数在第一运行时段内的总读取数据量,将各个热点函数的写入数据量相加,得到多个热点函数在第一运行时段内的总写入数据量,之后,计算总读取数据量和总写入数据量之间的比值,将该比值作为该目标应用程序在第一运行时段内的数据读写比例。
可选地,在某些应用场景中,例如,在高性能计算领域中,计算设备上部署的应用程序均为大型应用程序,在这种情况下,计算设备完整运行一个应用程序可能需要较长时间,这样,通过运行应用程序来获取相应应用程序的数据读写比例将花费较多时间。基于此,在本申请实施例中,计算设备可以获取第一运行时段对应的多个第一应用程序的缩微程序,之后,通过在第一运行时段内运行对应的每个第一应用程序的缩微程序来获取相应的第一应用程序在第一运行时段内的数据读写比例。
其中,应用程序的缩微程序是指将相应地应用程序进行小型化后得到,也即,该缩微程序相当于是具备应用程序的主要运算功能的简化版程序。另外,在该种实现方式中,第一运行时段对应的多个第一应用程序是指预先根据计算设备上安装的各个应用程序的使用规律预估的在该第一运行时段内运行频次较高的应用程序。
示例性地,仍以多个第一应用程序中的目标应用程序为例,计算设备获取目标应用程序对应的目标缩微程序,并确定目标应用程序中的多个热点函数。其中,该目标缩微程序包含有目标应用程序中的多个热点函数。之后,计算设备在第一运行时段内运行该目标缩微程序,并计算在第一运行时段内目标应用程序中的每个热点函数对应的数据读写比例;根据每个热点函数对应的数据读写比例和每个热点函数在所述目标应用程序中的权重,确定目标应用程序在所述第一运行时段内的数据读写比例。
需要说明的是,计算设备可以通过代码解析工具对该目标应用程序的代码进行解析,以确定该目标应用程序中的代码中需要进行数据读写的目标函数。之后,计算设备可以从目标应用程序的代码中抽取包含有各个目标函数的程序代码块,进而根据抽取得到的程序代码块生成目标应用程序对应的目标缩微程序。
其中,计算设备在从目标应用程序的代码中抽取包含有各个目标函数的程序代码块时,可以根据各个目标函数运算时所涉及到的代码来抽取程序代码块,这样,抽取到的包含有各个目标函数的程序代码块可以是一个能够实现某种运算功能的代码块。
由于计算设备抽取了目标应用程序中包含有需要进行数据读写的目标函数的程序代码块来生成目标缩微程序,而目标应用程序中的热点函数是指目标应用程序中频繁进行数据读写的函数。由此可知,目标缩微程序中包含的目标函数中将包含有目标应用程序中的多个热点函数。
在得到目标缩微程序之后,计算设备可以参考前述确定目标应用程序中的热点函数的方法,从目标缩微程序包含的多个目标函数中确定多个热点函数。之后,计算设备在第一运行时段内运行目标缩微程序,并统计目标缩微程序在第一运行时段内运行时每个热点函数的读取数据量和写入数据量之间的比值,将该比值作为相应热点函数对应的数据读写比例。
在得到目标应用程序中的每个热点函数对应的数据读写比例之后,计算设备可以参考前述介绍的方法,根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,计算目标应用程序在第一运行时段内的数据读写比例。
可选地,在一些可能的实现方式中,计算设备也可以先通过前述介绍的相关实现方式确定目标应用程序中的多个热点函数,之后,计算设备可以根据该多个热点函数,从目标应用程序的代码中抽取包含有每个热点函数的程序代码块,根据抽取得到的程序代码块生成目标缩微程序,进而在第一运行时段内运行该目标缩微程序。后续,计算设备可以通过统计目标缩微程序运行时每个热点函数的读取数据量与写入数据量之间的比值,得到每个热点函数对应的数据读写比例,进而根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,来确定目标应用程序在第一运行时段内的数据读写比例。或者,计算设备也可以通过统计缩微程序运行时多个热点函数的总读取数据量和总写入数据量之间的比值,得到目标应用程序在第一运行时段内的数据读写比例,本申请实施例在此不再赘述。
对于第一运行时段内的每个第一应用程序,计算设备均可以参考上述介绍的对目标应用程序的处理方式来对各个第一应用程序进行处理,从而得到第一运行时段内每个第一应用程序的数据读写比例。
在得到第一运行时段对应的多个第一应用程序中每个第一应用程序在第一运行时段内的数据读写比例之后,计算设备获取每个第一应用程序在计算设备中的使用权重;根据每个第一应用程序的使用权重和每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例。
其中,用户对计算设备上的不用的应用程序的使用频次不同,例如,某些应用程序是用户常用的应用程序,有些应用程序则为用户不常用的应用程序。基于此,在本申请实施例中,计算设备上的不同应用程序可以有不同的使用权重。当然,某些应用程序的使用权重也可能相同。其中,该使用权重可以由用户指定,也可以由计算设备对用户的行为操作数据进行分析后得到,本申请实施例对此不做限定。
计算设备在获取到每个第一应用程序在计算设备上的使用权重之后,计算每个第一应用程序在第一运行时段内的数据读写比例与对应的使用权重之间的乘积,将计算得到的多个乘积加和,得到计算设备在第一运行时段内的应用程序数据读写比例,也即,第一历史数据读写比例。
需要说明的是,上述是以第一运行时段对应有多个第一应用程序为例进行的说明,在一些可能的情况中,第一运行时段也可能对应有一个第一应用程序,在这种情况下,在得到第一应用程序在该第一运行时段内的数据读写比例之后,即可以将该数据读写比例直接作为第一历史数据读写比例。
对于多个运行时段中的每个运行时段,计算设备均可以参考对第一运行时段的处理方式,来确定每个运行时段内的应用程序数据读写比例,从而得到多个历史数据读写比例。
在得到多个历史数据读写比例之后,计算设备可以根据该多个历史数据读写比例来预测计算设备在接下来的运行过程中的数据读写比例,也即未来数据读写比例。
示例性地,计算设备可以根据多个历史数据读写比例分别对应的运行时段的先后顺序,对多个历史数据读写比例进行拟合。之后,计算设备可以根据拟合结果来确定未来数据读写比例。
例如,计算设备按照多个运行时段的先后顺序,对多个历史数据读写比例进行拟合,得到该多个历史数据读写比例随时间的变化规律,该变化规律可以由一个拟合公式来表征。之后,计算设备可以根据所要预测的运行时段,通过该拟合公式来确定未来数据读写比例。
在得到计算设备的未来数据读写比例之后,计算设备将该未来数据读写比例作为该计算设备的业务数据读写特征。
步骤202:根据该业务数据读写特征,确定读队列和写队列之间的数量比。
在确定业务数据读写特征之后,计算设备根据该业务数据读写特征计算读队列和写队列之间的数量比。
其中,由前述步骤201可知,业务数据读写特征为计算设备根据历史数据读写比例预测得到的未来数据读写比例,基于此,在本申请实施例中,计算设备可以将该未来数据读写比例作为读队列和写队列之间的数量比。
步骤203:根据读队列和写队列之间的数量比配置读队列和写队列。
在得到读队列和写队列之间的数量比之后,计算设备按照该数量比和允许配置的队列数量上限值,来确定读队列的数量M和写队列的数量N。之后,配置M个读队列和N个写队列。其中,M和N的比值等于前述的数量比。另外,允许配置的队列数量上限值可以是指允许配置的读队列和写队列的总数量,或者,是指允许配置的读队列的数量上限值,或者是允许配置的写队列的数量上限值。
例如,当允许配置的队列数量上限值为允许配置的读队列和写队列的总数量时,假设该总数量为S,读队列和写队列之间的数量比为m:n,则读队列的数量M=S*m/(m+n),写队列的数量N=S*n/(m+n)。
在确定读队列的数量M和写队列的数量N之后,计算设备可以根据M个读队列以及N个写队列。其中,每个读队列用于缓存从存储器中读取到的业务数据,每个写队列用于缓存要写入到存储器中的业务数据。
需要说明的是,在设置读队列和写队列之后,计算设备还可以在每个队列的队列头设置用于标识对应的队列为何种类型的队列标志位。示例性地,计算设备在读队列的队列头设置用于指示相应队列的队列类型为读队列的第一标志位,在写队列的队列头设置用于指示相应队列的队列类型为写队列的第二标志位。
步骤204:根据读队列和写队列,在计算设备的存储器中进行业务数据读写。
在按照确定的读队列和写队列之间的数量比设置读队列和写队列之后,计算设备可以根据读队列在计算设备的存储器中读取业务数据,根据写队列在计算设备的存储器中写入业务数据。
其中,计算设备在接收到读请求之后,可以根据读队列的数量以及预先设置的每个读队列中存储的数据个数,确定当前配置的读队列中所能存储的数据总个数。之后,根据当前读队列中已存储的数据个数和该数据总个数,确定当前所有读队列还能存储的数据个数。之后,计算设备根据该读请求,按照当前读队列中还能存储的数据个数,从存储器中获取相应数量的业务数据存入读队列。
需要说明的是,在本申请实施例中,计算设备的存储器可以包括第一存储器和第二存储器,其中,第一存储器为HBM,第二存储器为大容量存储器,例如,DDR。并且,第一存储器作为第二存储器的缓存。在这种情况下,计算设备可以首先根据读请求,从第一存储器中查找该读请求对应的数据,如果计算设备在第一存储器中命中该读请求对应的数据,则可以按照读队列中还能存储的数据个数,从该读请求对应的数据中获取相应数量的数据存入读队列中。如果计算设备在第一存储器中未能命中该读请求对应的数据,则计算设备从第二存储器中获取该读请求对应的数据,并从该读请求对应的数据中获取相应数量的数据存入读队列中。
另外,在本申请实施例中,计算设备还可以根据写队列的数量和预设的每个写队列中存储的数据个数,确定写队列中所能存储的待写入数据的总个数。之后,根据写队列中当前已存储的待写入数据的个数和所能存储的待写入数据的总个数,确定当前写队列还能存储的数据个数。之后,将接收到的写请求中携带的相应数量的待写入数据存至写队列中,进而后续将写队列中的待写入数据依次写入至存储器中。
需要说明的是,在本申请实施例中,计算设备可以优先根据读队列,从存储器中读取业务数据。示例性地,计算设备根据各个队列的队列头的标志位确定哪些队列是读队列,哪些队列是写队列,进而在确定读队列之后,优先根据读队列,从存储器中读取业务数据。
可选地,为了保证写队列中待写入数据也能及时写入到存储器中,在本申请实施例中,计算设备还可以从开始根据读队列读取业务数据时进行计时,如果读取业务数据的操作时长达到第一参考阈值,则根据写队列,在存储器中写入业务数据。也即,如果读取业务数据的操作时长达到第一参考阈值,计算设备可以降低读队列的优先级,停止业务数据的读取,开始根据写队列来执行写入数据的操作。同样的,当写入数据的操作时长达到第二参考阈值之后,同样的,计算设备可以停止写入数据的操作,开始根据读队列执行读取业务数据的操作。其中,第一参考阈值可以等于第二参考阈值,或者,第一参考阈值可以大于第二参考阈值。
另外,在本申请实施例中,由前述介绍可知,计算设备的存储器可以包括第一存储器和第二存储器,其中,第一存储器为HBM,第二存储器为大容量存储器。基于此,在本申请实施例中,计算设备在开始运行时,还可以显示调试界面,该调试界面中包括缓存模式(cache mode)选项和直接访问模式(direct mode)选项。用户可以从中选择自身所需要使用的模式。当计算设备接收到用户针对缓存模式选项的选择指令时,即可以将第一存储器作为第二存储器的缓存。可选地,当计算设备接收到用户针对直接访问模式选项的选择指令时,则将第一存储器和第二存储器均作为主存储器,以供计算设备的CPU直接随机存取数据。
示例性地,图3是本申请实施例示出的在缓存模式下,计算设备的CPU从HBM和DDR中读写数据的示意图。如图3所示,在缓存模式下,HBM会从DDR中预取业务数据并进行存储,其中,这些存储的业务数据可以为该计算设备上的热数据,也即,被频繁进行读写的数据。这样,在接收到读请求之后,计算设备的CPU首先从HBM中读取该读请求所请求的业务数据。如果在HBM中命中该读请求所请求的业务数据,则计算设备的CPU获取该业务数据,以便后续使用。可选地,如果在HBM中未命中该读请求所请求的业务数据,则计算设备的CPU将会从DDR从读取该读请求所请求的业务数据。另外,在写入数据时,计算设备的CPU首先将待写入数据写入至HBM,之后,再由HBM将待写入数据发送至DDR,从而写入至DDR。
图4是本申请实施例示出的在直接访问模式下,计算设备的CPU从HBM和DDR中读写数据的示意图。如图3所示,在直接访问模式下,计算设备的CPU在读取数据时,可以直接从HBM中读取数据,或者是直接从DDR中读取数据。同样的,在写入数据时,计算设备的CPU也是直接向HBM写入待写入的数据或者是直接向DDR写入待写入的数据。在这种情况下,可以预先确定待读取或待写入的数据时热数据还是冷数据,如果是热数据,则在HBM中进行数据读写,如果是冷数据,则在DDR中进行数据读写。
在本申请实施例中,根据计算设备中安装的应用程序的历史数据读写比例,来预测计算设备的未来数据读写比例,进而根据该未来数据读写比例确定读队列和写队列之间的数量比。之后,按照该数量比来配置计算设备中的读队列和写队列,这样,后续在根据配置的读写队列来读写业务数据时,可以使得计算设备实际运行时的读写流量能够与业务特征相匹配,从而能够更好的提升带宽利用率,降低时延。
另外,在本申请实施例中,计算设备可以同时部署有HBM和大容量存储器,在这种情况下,将HBM作为大容量的存储器的缓存,并通过本申请实施例提供的方法,根据配置的读队列和写队列在HBM中进行数据读写,这样,可以更好的利用HBM的高带宽,从而提升HBM的带宽利用率。
最后,在本申请实施例中,用户可以灵活的对HBM和大容量存储的访问模式进行设置,从而能够使得计算设备的应用性能更好。
接下来对本申请实施例提供的数据读写控制器进行介绍。
参见图5,本申请实施例还提供了一种数据读写控制器500,该数据读写控制器500应用于前述的计算设备中,且该数据读写控制器500包括:数据读写预测单元501、缓冲配置单元502和读写缓冲单元503。
数据读写预测单元501,用于执行前述实施例中的步骤201;
缓冲配置单元502,用于执行前述实施例中的步骤202和203;
读写缓冲单元503,用于存储读队列和写队列,并执行前述实施例中的步骤204。
其中,该数据读写预测单元501、缓冲配置单元502和读写缓冲单元503可以设置在图1介绍的计算设备的CPU的处理核上,以控制CPU实现对计算设备的存储器的读写流量。
可选地,数据读写预测单元501主要用于:
获取计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例;
根据多个历史数据读写比例,预测计算设备的未来数据读写比例;
将计算设备的未来数据读写比例作为计算设备的业务数据读写特征。
可选地,数据读写预测单元501主要用于:
确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在第一运行时段内的数据读写比例,第一运行时段为多个运行时段内的任一运行时段;
根据每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
可选地,数据读写预测单元501主要用于:
确定目标应用程序中的多个热点函数,热点函数是指频繁进行数据读写的函数,目标应用程序是指多个第一应用程序中的任一应用程序;
计算在第一运行时段内目标应用程序中每个热点函数对应的数据读写比例;
根据每个热点函数对应的数据读写比例和每个热点函数在目标应用程序中的权重,确定目标应用程序在第一运行时段内的数据读写比例。
可选地,数据读写预测单元501还用于:
获取目标应用程序对应的目标缩微程序,目标缩微程序包括目标应用程序中的多个热点函数;
在第一运行时段内运行目标缩微程序。
可选地,数据读写预测单元501主要用于:
获取每个第一应用程序在计算设备中的使用权重;
根据每个第一应用程序的使用权重和每个第一应用程序在第一运行时段内的数据读写比例,确定计算设备在第一运行时段内的应用程序数据读写比例。
可选地,读队列的队列头设置有用于指示相应队列的队列类型为读队列的第一标志位,写队列的队列头设置有用于指示相应队列的队列类型为写队列的第二标志位。
可选地,计算设备包括第一存储器和第二存储器,第一存储器为高带宽存储器HBM,第二存储器为大容量存储器,参见图5,数据读写控制器还包括内存控制单元504,该内存控制单元504包含有共享队列和输入输出(input/output,I/O)接口;
内存控制单元504,用于根据读请求,通过I/O接口从第一存储器中读取待读取的业务数据;如果在第一存储器中未命中待读取的业务数据,则通过I/O接口从第二存储器中读取待读取的业务数据,将读取到的业务数据存储至共享队列中;
读写缓冲单元503,主要用于根据读队列,从内存控制单元504的共享队列中获取读取到的业务数据。
可选地,读写缓冲单元503主要用于:
当读取业务数据的操作时长达到参考阈值时,根据写队列,在第一存储器和/或第二存储器中写入业务数据。
综上所述,在本申请实施例中,根据计算设备中安装的应用程序的历史数据读写比例,来预测计算设备的未来数据读写比例,进而根据该未来数据读写比例确定读队列和写队列之间的数量比。之后,按照该数量比来配置计算设备中的读队列和写队列,这样,后续在根据配置的读写队列来读写业务数据时,可以使得计算设备实际运行时的读写流量能够与业务特征相匹配,从而能够更好的提升带宽利用率,降低时延。
需要说明的是:上述实施例提供的数据读写控制器在进行数据读写时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据读写控制器与数据读写方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (19)
1.一种数据读写方法,其特征在于,应用于计算设备中,所述方法包括:
获取所述计算设备的业务数据读写特征;
根据所述业务数据读写特征,确定读队列和写队列之间的数量比;
根据所述读队列和所述写队列之间的数量比配置读队列和写队列;
根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写。
2.根据权利要求1所述的方法,其特征在于,所述获取所述计算设备的业务数据读写特征,包括:
获取所述计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例;
根据所述多个历史数据读写比例,预测所述计算设备的未来数据读写比例;
将所述计算设备的未来数据读写比例作为所述计算设备的业务数据读写特征。
3.根据权利要求2所述的方法,其特征在于,所述获取所述计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例,包括:
确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在所述第一运行时段内的数据读写比例,所述第一运行时段为所述多个运行时段内的任一运行时段;
根据每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
4.根据权利要求3所述的方法,其特征在于,所述确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在所述第一运行时段内的数据读写比例,包括:
确定目标应用程序中的多个热点函数,所述热点函数是指频繁进行数据读写的函数,所述目标应用程序是指所述多个第一应用程序中的任一应用程序;
计算在所述第一运行时段内所述目标应用程序中的每个热点函数对应的数据读写比例;
根据每个热点函数对应的数据读写比例和每个热点函数在所述目标应用程序中的权重,确定所述目标应用程序在所述第一运行时段内的数据读写比例。
5.根据权利要求4所述的方法,其特征在于,所述计算在所述第一运行时段内所述目标应用程中的每个热点函数对应的数据读写比例之前,还包括:
获取所述目标应用程序对应的目标缩微程序,所述目标缩微程序包括所述目标应用程序中的多个热点函数;
在所述第一运行时段内运行所述目标缩微程序。
6.根据权利要求3所述的方法,其特征在于,所述根据每个第一应用程序在所述第一运行时段中的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例,包括:
获取每个第一应用程序在所述计算设备中的使用权重;
根据每个第一应用程序的使用权重和每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例。
7.根据权利要求1-6任一所述的方法,其特征在于,所述读队列的队列头设置有用于指示相应队列的队列类型为读队列的第一标志位,所述写队列的队列头设置有用于指示相应队列的队列类型为写队列的第二标志位。
8.根据权利要求1-7任一所述的方法,其特征在于,所述计算设备包括第一存储器和第二存储器,所述第一存储器为高带宽存储器HBM,所述第二存储器为大容量存储器,所述方法还包括:
显示调试界面,所述调试界面内包括缓存模式选项和直接访问模式选项;
当接收到针对所述缓存模式选项的选择指令时,将所述第一存储器作为所述第二存储器的缓存。
9.根据权利要求8所述的方法,其特征在于,所述根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写,包括:
根据所述读队列,从所述第一存储器中读取待读取的业务数据;
如果在所述第一存储器中未命中所述待读取的业务数据,则从所述第二存储器中读取所述待读取的业务数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当读取业务数据的操作时长达到参考阈值时,根据所述写队列,在所述第一存储器和/或第二存储器中写入业务数据。
11.一种数据读写控制器,其特征在于,所述数据读写控制器应用于计算设备中,所述数据读写控制器包括:数据读写预测单元、缓冲配置单元和读写缓冲单元;
所述数据读写预测单元,用于获取所述计算设备的业务数据读写特征;
所述缓冲配置单元,用于根据所述业务数据读写特征,确定读队列和写队列之间的数量比,并根据所述读队列和所述写队列之间的数量比配置所述读写缓冲单元中的读队列和写队列;
所述读写缓冲单元,用于根据所述读队列和所述写队列,在所述计算设备的存储器中进行业务数据读写。
12.根据权利要求11所述的数据读写控制器,其特征在于,所述数据读写预测单元主要用于:
获取所述计算设备在多个运行时段中的每个运行时段内的应用程序数据读写比例,得到多个历史数据读写比例;
根据所述多个历史数据读写比例,预测所述计算设备的未来数据读写比例;
将所述计算设备的未来数据读写比例作为所述计算设备的业务数据读写特征。
13.根据权利要求12所述的数据读写控制器,其特征在于,所述数据读写预测单元主要用于:
确定第一运行时段对应的多个第一应用程序中的每个第一应用程序在所述第一运行时段内的数据读写比例,所述第一运行时段为所述多个运行时段内的任一运行时段;
根据每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例,得到第一历史数据读写比例。
14.根据权利要求13所述的数据读写控制器,其特征在于,所述数据读写预测单元主要用于:
确定目标应用程序中的多个热点函数,所述热点函数是指频繁进行数据读写的函数,所述目标应用程序是指所述多个第一应用程序中的任一应用程序;
计算在所述第一运行时段内所述目标应用程序中每个热点函数对应的数据读写比例;
根据每个热点函数对应的数据读写比例和每个热点函数在所述目标应用程序中的权重,确定所述目标应用程序在所述第一运行时段内的数据读写比例。
15.根据权利要求14所述的数据读写控制器,其特征在于,所述数据读写预测单元还用于:
获取所述目标应用程序对应的目标缩微程序,所述目标缩微程序包括所述目标应用程序中的多个热点函数;
在所述第一运行时段内运行所述目标缩微程序。
16.根据权利要求13所述的数据读写控制器,其特征在于,所述数据读写预测单元主要用于:
获取每个第一应用程序在所述计算设备中的使用权重;
根据每个第一应用程序的使用权重和每个第一应用程序在所述第一运行时段内的数据读写比例,确定所述计算设备在所述第一运行时段内的应用程序数据读写比例。
17.根据权利要求11-16任一所述的数据读写控制器,其特征在于,所述读队列的队列头设置有用于指示相应队列的队列类型为读队列的第一标志位,所述写队列的队列头设置有用于指示相应队列的队列类型为写队列的第二标志位。
18.根据权利要求11所述的数据读写控制器,其特征在于,所述计算设备包括第一存储器和第二存储器,所述第一存储器为高带宽存储器HBM,所述第二存储器为大容量存储器,所述数据读写控制器还包括内存控制单元;
所述内存控制单元用于根据读请求从所述第一存储器中读取待读取的业务数据;如果在所述第一存储器中未命中所述待读取的业务数据,则从所述第二存储器中读取所述待读取的业务数据;将读取到的业务数据存储至自身的共享队列中;
所述读写缓冲单元主要用于根据所述读队列,从所述内存控制单元的共享队列中获取读取到的业务数据。
19.根据权利要求18所述的数据读写控制器,其特征在于,所述读写缓冲单元主要用于:
当读取业务数据的操作时长达到参考阈值时,根据所述写队列,在所述第一存储器和/或第二存储器中写入业务数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/088758 WO2022223047A1 (zh) | 2021-04-23 | 2022-04-24 | 数据读写方法、数据读写控制器及存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021104435568 | 2021-04-23 | ||
CN202110443556 | 2021-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237335A true CN115237335A (zh) | 2022-10-25 |
Family
ID=83666240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110705458.7A Pending CN115237335A (zh) | 2021-04-23 | 2021-06-24 | 数据读写方法、数据读写控制器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115237335A (zh) |
WO (1) | WO2022223047A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183378A (zh) * | 2015-08-31 | 2015-12-23 | 北京神州云科数据技术有限公司 | 自适应混合读/写缓存的方法 |
CN106445418A (zh) * | 2016-09-27 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种固态硬盘中读写服务自适应的方法和装置 |
US10534543B2 (en) * | 2018-06-01 | 2020-01-14 | Micron Technology, Inc. | Using counters to efficiently track busy time of storage systems |
-
2021
- 2021-06-24 CN CN202110705458.7A patent/CN115237335A/zh active Pending
-
2022
- 2022-04-24 WO PCT/CN2022/088758 patent/WO2022223047A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022223047A1 (zh) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230188452A1 (en) | Performance monitoring in a distributed storage system | |
CN112328688B (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN115576872B (zh) | 多级缓存的访问检测方法及装置 | |
CN112256599A (zh) | 一种数据预取方法、装置及存储设备 | |
US7363453B1 (en) | Method and apparatus for improving storage device performance by selective volume swapping based on hot spot analysis | |
CN114035750A (zh) | 文件处理方法、装置、设备、介质及产品 | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
WO2022057749A1 (zh) | 内存缺页异常的处理方法、装置、设备及存储介质 | |
CN109947667A (zh) | 数据访问预测方法和装置 | |
CN110750498B (zh) | 对象访问方法、装置及存储介质 | |
WO2022110196A1 (zh) | 一种数据处理方法、装置及系统 | |
CN117251275A (zh) | 多应用异步i/o请求的调度方法及系统、设备及介质 | |
CN110427394B (zh) | 数据操作方法及装置 | |
CN115237335A (zh) | 数据读写方法、数据读写控制器及存储介质 | |
US11960939B2 (en) | Management computer, management system, and recording medium | |
CN111078160B (zh) | 基于调用比例及响应时长的数据迁移存储方法及装置 | |
CN113157628A (zh) | 存储系统、数据处理方法、装置、存储系统及电子设备 | |
CN114968073A (zh) | 数据预取的方法、设备及系统 | |
CN116860183B (zh) | 一种数据存储方法、电子设备及存储介质 | |
CN110750569A (zh) | 数据提取方法、装置、设备及存储介质 | |
CN116126546B (zh) | 一种性能调优的方法、装置、电子设备及介质 | |
CN116991542B (zh) | 一种虚拟机快照方法、系统、电子设备及计算机存储介质 | |
CN109344043A (zh) | 一种性能分析方法及相关装置 | |
CN111459414B (zh) | 存储器调度方法及存储器控制器 | |
US11687255B2 (en) | Information processing system and information processing method |
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 |