CN113918101B - 一种写数据高速缓存的方法、***、设备和存储介质 - Google Patents
一种写数据高速缓存的方法、***、设备和存储介质 Download PDFInfo
- Publication number
- CN113918101B CN113918101B CN202111497794.3A CN202111497794A CN113918101B CN 113918101 B CN113918101 B CN 113918101B CN 202111497794 A CN202111497794 A CN 202111497794A CN 113918101 B CN113918101 B CN 113918101B
- Authority
- CN
- China
- Prior art keywords
- page table
- control
- control page
- host
- firmware
- 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 54
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/603—Details of cache memory of operating mode, e.g. cache mode or local memory mode
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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种写数据高速缓存的方法、***、设备和存储介质,方法包括:响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。本发明通过主机接口管理引擎和固件***的协同调度流程以适用写缓存使能的场景,可以显著降低计算存储***对主机响应的时延性能。
Description
技术领域
本发明涉及计算存储领域,更具体地,特别是指一种写数据高速缓存的方法、***、设备和存储介质。
背景技术
随着近年来计算存储(Computational Storage)技术的兴起,计算存储架构通过将数据计算从主机CPU中卸载到靠近存储单元的数据处理加速单元,减少了相应的数据的搬移操作,从而尽可能地释放了***性能。
计算存储引入了计算存储处理器(Computational Storage Processor,CSP)、计算存储驱动器(Computational Storage Drive,CSD)和计算存储阵列(ComputationalStorage Array,CSA)三种产品形态,并期待通过架构上的重新定义来降低CPU占用率、降低对网络和DDR带宽的消耗、降低***功耗、支持潜在的大规模并行计算处理等。
在计算存储***中,有一类典型应用就是使用计算存储***中的自带的DDR(Double Data Rate,双倍速率同步动态随机存储器)作为数据Cache(缓存),缓存主机读/写操作的数据,目的都是降低***的IO(Input Output,输入输出)操作时延。以承接主机的IO写操作为例,正常的,需要在数据可靠落盘后才能应答主机。但打开写高速缓存(WriteCache)功能后,计算存储***会在将主机待落盘的数据从主机DDR搬入本地DDR中受掉电保护的区域后,就向主机发送应答信号,这样主机则认为该数据已经完成“落盘”操作。而实际上,计算存储***针对该数据块的相关运算处理还在***内部分步展开,待处理完成后再合并其他一些条件满足后最终进行落盘操作。
在面向计算存储的通用计算加速架构中如何实现写IO数据高速缓存功能是一个需要解决的问题。
发明内容
有鉴于此,本发明实施例的目的在于提出一种写数据高速缓存的方法、***、计算机设备及计算机可读存储介质,本发明通过主机接口管理引擎和固件***的协同调度流程以适用写缓存使能的场景,通过“零拷贝”的方式实现控制页表从主机接口管理引擎向固件的转移,可以显著降低计算存储***对主机响应的时延性能。
基于上述目的,本发明实施例的一方面提供了一种写数据高速缓存的方法,包括如下步骤:响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。
在一些实施方式中,所述创建控制页表并向所述控制页表中依次填入多个控制块包括:向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。
在一些实施方式中,方法还包括:对本地双倍速率同步动态随机存储器中所述内存区域中的写入数据进行掉电保护。
在一些实施方式中,方法还包括:响应于所述控制页表空间不足,申请新的控制页表空间以创建新的控制页表,并将新的控制页表和原来的控制页表初始化为链式控制页表。
在一些实施方式中,方法还包括:响应于接收到主机发出的读数据操作指令,创建一个空控制页表并将所述读数据操作指令备份进所述空控制页表。
在一些实施方式中,方法还包括:在片上存储开辟一块连续的存储空间用作控制页表的资源池,并将每个控制页表的地址指针初始化成空闲控制页表入口列表。
在一些实施方式中,方法还包括:判断固件已申领控制页表的计数是否小于阈值;以及响应于固件已申领控制页表的计数小于阈值,将固件已申领控制页表的计数加一,并将主机接口管理引擎已申领控制页表的计数减一。
本发明实施例的另一方面,提供了一种写数据高速缓存的***,包括:创建模块,配置用于响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;提交模块,配置用于将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;通知模块,配置用于提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及释放模块,配置用于响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明具有以下有益技术效果:通过主机接口管理引擎和固件***的协同调度流程以适用写缓存使能的场景,通过“零拷贝”的方式实现控制页表从主机接口管理引擎向固件的转移,可以显著降低计算存储***对主机响应的时延性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的写数据高速缓存的方法的实施例的示意图;
图2为本发明提供的通用计算加速架构示意图;
图3为本发明提供的通用计算加速架构的处理流程示意图;
图4为本发明提供的控制页表资源池的管理示意图;
图5为本发明提供的写数据高速缓存的***的实施例的示意图;
图6为本发明提供的写数据高速缓存的计算机设备的实施例的硬件结构示意图;
图7为本发明提供的写数据高速缓存的计算机存储介质的实施例的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明实施例的第一个方面,提出了一种写数据高速缓存的方法的实施例。图1示出的是本发明提供的写数据高速缓存的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
S1、响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;
S2、将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;
S3、提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及
S4、响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。
本发明的核心思想是需要专用硬件去卸载部分固件的职能,并将二者进行有机的融合。图2为本发明提供的通用计算加速架构示意图,如图2所示,本发明实施例在控制平面引入了两个新的引擎:HDMA(Host Direct Memory Access,主机直接存储器访问)引擎:负责在主机DDR和本地DDR之间搬移数据;动态内存管理引擎(Hmalloc:HW Malloc,硬件动态内存管理):由硬件模块负责管理本地DDR的分配与释放。本发明实施例对AEM(Acceleration Engine Manager,主机接口管理引擎)进行了功能上的拓展,使得它也可以创建CP(Control Page,控制页表)并编制CB(Control Block,控制块),得以在引入固件操作之前,单独依靠硬件模块就完成一系列的固化操作。
图3示出的是本发明提供的通用计算加速架构的处理流程示意图,结合图3对本发明实施例进行说明。
响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块。主机接口管理引擎负责接口主机指令,并针对主机指令做出解析,如果是写IO操作指令,主机接口管理引擎会创建一个普通控制页表,并向其中依此填入多个控制块。
在一些实施方式中,所述创建控制页表并向所述控制页表中依次填入多个控制块包括:向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。例如:“Hmalloc”CB:用来通过硬件引擎在本地DDR中开辟一块内存;“HDMA”CB:用来通过硬件引擎将主机DDR中待写入的数据搬移到本地DDR中开辟好的存储空间中;“AEM-Response”CB:用来通过硬件引擎应答主机,表明所要写入的数据已经处理,可以结束当前IO。
将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行。主机接口管理引擎在完成上述操作后会将首个控制块的入口指针提交到WQS(Work Queue Scheduler,工作队列调度引擎)进行硬件的自动调度,WQS负责依次调度这三个任务在引擎之间穿插执行。
提前向主机发送完成应答并通知固件进行数据的后续处理和落盘。在提前给了主机一个假的“完成”应答同时,通知固件进行数据的后续处理和落盘,如此构成写Cache的快速应答路径,极大地缩短了响应主机的时延特性。
在一些实施方式中,方法还包括:对本地双倍速率同步动态随机存储器中所述内存区域中的写入数据进行掉电保护。写缓存功能打开后,因为已经提前应答过主机了,所以需要对本地DDR待处理的写入数据进行掉电保护,否则会造成致命错误。
在一些实施方式中,方法还包括:响应于所述控制页表空间不足,申请新的控制页表空间以创建新的控制页表,并将新的控制页表和原来的控制页表初始化为链式控制页表。后续在固件接手后,后续的操作所需步骤的控制块可以继续填充在第一个普通控制页表之中,当控制页表空间不够时,可以继续申请新的控制页表空间并初始化成链式控制页表,并将剩余步骤依此填充至链式控制页表的对应位置。
响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。固件将后续第一个控制块的入口指针提交到WQS进行硬件的自动调度。在最后一个控制块执行结束后,固件会得到通知,并对该IO所用到的控制页表资源进行释放。
在一些实施方式中,方法还包括:响应于接收到主机发出的读数据操作指令,创建一个空控制页表并将所述读数据操作指令备份进所述空控制页表。当接收到其他IO指令,比如读指令和管理命令指令,主机接口管理引擎只需要创建一个“空”的控制页表,将原始的IO指令备份进该控制页表后,就可以通过WQS所负责的硬件事件队列通知固件来接手处理了。
通用计算加速架构的架构定义中,控制页表的大小可以是512字节,1024字节或者是2048字节,除了控制页表头,数据缓存和原始主机IO指令备份外,剩下的空间都用来存放控制块。所有的控制页表置于一个连续的内存空间,从而形成一个控制页表的资源池。此外,为了方便控制页表资源池的管理,单一资源池中的控制页表颗粒度需要保持一致,即只能选定一种控制页表的大小。为了实现最优的写数据高速缓存性能,有两个问题需要解决:1、CP资源的分配与释放;2、在AEM和固件交互的过程中,如何做好AEM所申领CP向固件的快速转移。
针对上述第一个问题,通过统一的硬件逻辑对CP资源池进行管理。假设CP资源池中CP资源的总数是K个,因为AEM和固件都会申请领用CP,假设AEM和固件CP页领用的数目上限分别是m个和n个,那么需要保证K=m+n。
在一些实施方式中,方法还包括:在片上存储开辟一块连续的存储空间用作控制页表的资源池,并将每个控制页表的地址指针初始化成空闲控制页表入口列表。图4示出的是本发明提供的控制页表资源池的管理示意图。在片上存储开辟一块连续的存储空间用作CP的资源池,并将每个CP的地址指针初始化成“空闲CP入口列表”,该列表的“头”、“尾”指针均有硬件管理,当申领CP资源时,从头指针读取CP入口地址并更新AEM/固件的已申请计数值,当释放CP资源时,从尾指针存入要释放的CP入口地址并更新AEM/固件的已申请计数值。AEM要申领或释放CP时,直接通过硬件逻辑操作;固件则是通过“申领CP”和“释放CP”寄存器的访问来完成,申领时,直接尝试读取“申领CP”寄存器,并从读取的内容的某一个标志位判断是否是一个有效的CP入口地址,释放时,直接将待释放CP的入口地址写入“释放CP”寄存器,有硬件逻辑将其写入“空闲CP入口列表”中。AEM和固件每次申领CP资源时,都会讲其已申领的计数器和对应的额度上限进行比较,如果已经达到了额度上限,则当次申领失败,可以等待一段时间后重试。
在一些实施方式中,方法还包括:判断固件已申领控制页表的计数是否小于阈值;以及响应于固件已申领控制页表的计数小于阈值,将固件已申领控制页表的计数加一,并将主机接口管理引擎已申领控制页表的计数减一。针对上述第二个问题,在AEM将初期创建的CP传递给固件做后续处理时,如果是将CP内容拷贝到固件新申领的CP当中,再释放AEM所申领的CP,就会增加了总线带宽消耗,以及产生了额外的时延。本发明实施例通过前述CP资源池的统一管理,当AEM向固件移交CP时通过移交CP的所有权来实现。AEM在通过硬件事件对列通知固件后,通过将“AEM已申领CP计数-1”,同时将“固件已申领CP计数+1”的方式,完成CP所有权的转移。通过这种“零拷贝”的方式,AEM可以使用增加的可用CP资源去接下一个主机管理或者IO请求,固件则继续负责后续的处理直至结束后再释放CP资源。
本发明实施例通用计算加速架构通过硬化一些固定步骤来卸载固件,在面对IO写Cache的应用场景下,可以显著降低计算存储***对主机响应的时延性能。
需要特别指出的是,上述写数据高速缓存的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于写数据高速缓存的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种写数据高速缓存的***。如图5所示,***200包括如下模块:创建模块,配置用于响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;提交模块,配置用于将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;通知模块,配置用于提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及释放模块,配置用于响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。
在一些实施方式中,所述创建模块配置用于:向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。
在一些实施方式中,***还包括保护模块,配置用于:对本地双倍速率同步动态随机存储器中所述内存区域中的写入数据进行掉电保护。
在一些实施方式中,***还包括申请模块,配置用于:响应于所述控制页表空间不足,申请新的控制页表空间以创建新的控制页表,并将新的控制页表和原来的控制页表初始化为链式控制页表。
在一些实施方式中,***还包括第二创建模块,配置用于:响应于接收到主机发出的读数据操作指令,创建一个空控制页表并将所述读数据操作指令备份进所述空控制页表。
在一些实施方式中,***还包括资源模块,配置用于:在片上存储开辟一块连续的存储空间用作控制页表的资源池,并将每个控制页表的地址指针初始化成空闲控制页表入口列表。
在一些实施方式中,***还包括判断模块,配置用于:判断固件已申领控制页表的计数是否小于阈值;以及响应于固件已申领控制页表的计数小于阈值,将固件已申领控制页表的计数加一,并将主机接口管理引擎已申领控制页表的计数减一。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:S1、响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;S2、将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;S3、提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及S4、响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放。
在一些实施方式中,所述创建控制页表并向所述控制页表中依次填入多个控制块包括:向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。
在一些实施方式中,步骤还包括:对本地双倍速率同步动态随机存储器中所述内存区域中的写入数据进行掉电保护。
在一些实施方式中,步骤还包括:响应于所述控制页表空间不足,申请新的控制页表空间以创建新的控制页表,并将新的控制页表和原来的控制页表初始化为链式控制页表。
在一些实施方式中,步骤还包括:响应于接收到主机发出的读数据操作指令,创建一个空控制页表并将所述读数据操作指令备份进所述空控制页表。
在一些实施方式中,步骤还包括:在片上存储开辟一块连续的存储空间用作控制页表的资源池,并将每个控制页表的地址指针初始化成空闲控制页表入口列表。
在一些实施方式中,步骤还包括:判断固件已申领控制页表的计数是否小于阈值;以及响应于固件已申领控制页表的计数小于阈值,将固件已申领控制页表的计数加一,并将主机接口管理引擎已申领控制页表的计数减一。
如图6所示,为本发明提供的上述写数据高速缓存的计算机设备的一个实施例的硬件结构示意图。
以如图6所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。
处理器301和存储器302可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的写数据高速缓存的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现写数据高速缓存的方法。
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据写数据高速缓存的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个写数据高速缓存的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的写数据高速缓存的方法。
执行上述写数据高速缓存的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行写数据高速缓存的方法的计算机程序。
如图7所示,为本发明提供的上述写数据高速缓存的计算机存储介质的一个实施例的示意图。以如图7所示的计算机存储介质为例,计算机可读存储介质401存储有被处理器执行时执行如上方法的计算机程序402。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,写数据高速缓存的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (9)
1.一种写数据高速缓存的方法,其特征在于,包括如下步骤:
响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;
将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;
提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及
响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放,
其中,所述最后一个控制块是指后续在固件接手后,后续的操作所需步骤的控制块;
所述创建控制页表并向所述控制页表中依次填入多个控制块包括:
向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;
向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及
向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。
2.根据权利要求1所述的方法,其特征在于,方法还包括:
对本地双倍速率同步动态随机存储器中所述内存区域中的写入数据进行掉电保护。
3.根据权利要求1所述的方法,其特征在于,方法还包括:
响应于所述控制页表空间不足,申请新的控制页表空间以创建新的控制页表,并将新的控制页表和原来的控制页表初始化为链式控制页表。
4.根据权利要求1所述的方法,其特征在于,方法还包括:
响应于接收到主机发出的读数据操作指令,创建一个空控制页表并将所述读数据操作指令备份进所述空控制页表。
5.根据权利要求1所述的方法,其特征在于,方法还包括:
在片上存储开辟一块连续的存储空间用作控制页表的资源池,并将每个控制页表的地址指针初始化成空闲控制页表入口列表。
6.根据权利要求5所述的方法,其特征在于,方法还包括:
判断固件已申领控制页表的计数是否小于阈值;以及
响应于固件已申领控制页表的计数小于阈值,将固件已申领控制页表的计数加一,并将主机接口管理引擎已申领控制页表的计数减一。
7.一种写数据高速缓存的***,其特征在于,包括:
创建模块,配置用于响应于接收到主机发出的写数据操作指令,创建控制页表并向所述控制页表中依次填入多个控制块;
提交模块,配置用于将首个控制块的入口指针提交到工作队列调度引擎以将所述多个控制块对应的任务在所述工作队列调度引擎中穿插执行;
通知模块,配置用于提前向主机发送完成应答并通知固件进行数据的后续处理和落盘;以及
释放模块,配置用于响应于最后一个控制块对应的任务执行结束,对所使用的控制页表资源进行释放,
其中,所述最后一个控制块是指后续在固件接手后,后续的操作所需步骤的控制块;
所述创建模块配置用于:
向所述控制页表中填入第一控制块以在本地双倍速率同步动态随机存储器中设置内存区域;
向所述控制页表中填入第二控制块以将主机双倍速率同步动态随机存储器中待写入数据迁移到所述内存区域中;以及
向所述控制页表中填入第三控制块以应答主机并结束当前输入输出。
8.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-6任意一项所述方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任意一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111497794.3A CN113918101B (zh) | 2021-12-09 | 2021-12-09 | 一种写数据高速缓存的方法、***、设备和存储介质 |
US18/565,053 US20240264940A1 (en) | 2021-12-09 | 2022-05-26 | Write data cache method and system, device, and storage medium |
PCT/CN2022/095380 WO2023103296A1 (zh) | 2021-12-09 | 2022-05-26 | 一种写数据高速缓存的方法、***、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111497794.3A CN113918101B (zh) | 2021-12-09 | 2021-12-09 | 一种写数据高速缓存的方法、***、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113918101A CN113918101A (zh) | 2022-01-11 |
CN113918101B true CN113918101B (zh) | 2022-03-15 |
Family
ID=79248793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111497794.3A Active CN113918101B (zh) | 2021-12-09 | 2021-12-09 | 一种写数据高速缓存的方法、***、设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240264940A1 (zh) |
CN (1) | CN113918101B (zh) |
WO (1) | WO2023103296A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918101B (zh) * | 2021-12-09 | 2022-03-15 | 苏州浪潮智能科技有限公司 | 一种写数据高速缓存的方法、***、设备和存储介质 |
EP4375842A1 (en) | 2022-08-17 | 2024-05-29 | Beijing Superstring Academy of Memory Technology | Storage system, computational storage processor and solid-state drive thereof, and data reading method and data writing method therefor |
CN115357540B (zh) * | 2022-08-17 | 2023-04-14 | 北京超弦存储器研究院 | 存储***及其计算存储处理器、固体硬盘和数据读写方法 |
CN115543219B (zh) * | 2022-11-29 | 2023-04-18 | 苏州浪潮智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及介质 |
CN116756059B (zh) * | 2023-08-15 | 2023-11-10 | 苏州浪潮智能科技有限公司 | 查询数据输出方法、加速器件、***、存储介质及设备 |
CN117008843B (zh) * | 2023-09-26 | 2024-01-19 | 苏州元脑智能科技有限公司 | 控制页链表构建装置和电子设备 |
CN117806709B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | ***级芯片的性能优化方法、装置、设备和存储介质 |
CN118331512A (zh) * | 2024-06-14 | 2024-07-12 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于存储控制卡的处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105453062A (zh) * | 2013-08-15 | 2016-03-30 | 国际商业机器公司 | 实现硬件自动设备操作启动器 |
CN111642137A (zh) * | 2018-12-14 | 2020-09-08 | 华为技术有限公司 | 快速发送写数据准备完成消息的方法、设备和*** |
CN113885945A (zh) * | 2021-08-30 | 2022-01-04 | 山东云海国创云计算装备产业创新中心有限公司 | 一种计算加速方法、设备以及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495258B2 (en) * | 2011-05-24 | 2013-07-23 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware accelerators offloading firmware for buffer allocation and automatically DMA |
CN108959117B (zh) * | 2018-06-22 | 2021-01-19 | 深圳忆联信息***有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
CN109976953A (zh) * | 2019-04-10 | 2019-07-05 | 苏州浪潮智能科技有限公司 | 一种数据备份方法 |
CN113076281B (zh) * | 2021-03-30 | 2022-11-04 | 山东英信计算机技术有限公司 | 一种Ceph内核客户端进行通信的方法、***、设备及介质 |
CN113918101B (zh) * | 2021-12-09 | 2022-03-15 | 苏州浪潮智能科技有限公司 | 一种写数据高速缓存的方法、***、设备和存储介质 |
-
2021
- 2021-12-09 CN CN202111497794.3A patent/CN113918101B/zh active Active
-
2022
- 2022-05-26 WO PCT/CN2022/095380 patent/WO2023103296A1/zh unknown
- 2022-05-26 US US18/565,053 patent/US20240264940A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105453062A (zh) * | 2013-08-15 | 2016-03-30 | 国际商业机器公司 | 实现硬件自动设备操作启动器 |
CN111642137A (zh) * | 2018-12-14 | 2020-09-08 | 华为技术有限公司 | 快速发送写数据准备完成消息的方法、设备和*** |
CN113885945A (zh) * | 2021-08-30 | 2022-01-04 | 山东云海国创云计算装备产业创新中心有限公司 | 一种计算加速方法、设备以及介质 |
Non-Patent Citations (2)
Title |
---|
Advanced firmware verification using a code simulator for the IBM System z9;K. Theurich;《IBM Journal of Research and Development 》;20070131;第51卷(第1.2期);207-216 * |
面向数据库查询加速的异构体系结构设计与实现分析;胡博;《长江信息通信》;20210915;第34卷(第9期);67-69 * |
Also Published As
Publication number | Publication date |
---|---|
CN113918101A (zh) | 2022-01-11 |
WO2023103296A1 (zh) | 2023-06-15 |
US20240264940A1 (en) | 2024-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113918101B (zh) | 一种写数据高速缓存的方法、***、设备和存储介质 | |
CN107436809B (zh) | 数据处理器 | |
US8108571B1 (en) | Multithreaded DMA controller | |
US8413158B2 (en) | Processor thread load balancing manager | |
US10552936B2 (en) | Solid state storage local image processing system and method | |
CN108228343B (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
US9817754B2 (en) | Flash memory management | |
CN112491426B (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
US20220253252A1 (en) | Data processing method and apparatus | |
CN114168271A (zh) | 一种任务调度方法、电子设备及存储介质 | |
WO2022042127A1 (zh) | 一种协程切换的方法、装置及设备 | |
US9940128B2 (en) | Conditional access with timeout | |
CN112948136A (zh) | 一种嵌入式操作***异步日志记录的实现方法 | |
US20200387444A1 (en) | Extended memory interface | |
JP4734348B2 (ja) | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 | |
CN116303211A (zh) | 一种应用于车载场景的cpu多核间通信方法及装置 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
US20210208890A1 (en) | Extended memory operations | |
WO2021159608A1 (zh) | 一种基于Protocol Buffer的镜像缓存方法 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN117311833B (zh) | 一种存储控制方法、装置、电子设备及可读存储介质 | |
CN115576660A (zh) | 数据接收方法、装置、设备和存储介质 | |
CN115707342A (zh) | 存储控制方法及装置、存储方法及装置、电子设备及介质 |
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 |