CN109992526A - 一种读写管理方法以及相关装置 - Google Patents
一种读写管理方法以及相关装置 Download PDFInfo
- Publication number
- CN109992526A CN109992526A CN201910285691.7A CN201910285691A CN109992526A CN 109992526 A CN109992526 A CN 109992526A CN 201910285691 A CN201910285691 A CN 201910285691A CN 109992526 A CN109992526 A CN 109992526A
- Authority
- CN
- China
- Prior art keywords
- target address
- address region
- lock state
- access request
- write
- 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
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种读写管理方法以及相关装置,用于提升用户获取闪存中的数据的准确性。本申请实施例方法包括:接收访问请求,所述访问请求包括目标地址范围,所述目标地址范围为所述访问请求欲访问的地址范围,所述访问请求包括读请求或写请求;判断所述目标地址范围是否处于锁定状态;若所述目标地址范围不是处于锁定状态,则将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
Description
技术领域
本申请实施例涉及数据处理领域,尤其涉及程序处理方法以及相关装置。
背景技术
固态硬盘(solid state drives,SSD),指用固态电子存储芯片阵列制成的硬盘,该固态硬盘中包含控制单元和存储单元。其中,控制单元可以支持多个读写命令并发处理,用于控制对存储单元的读写操作。
现有技术中,当该控制单元收到的命令中即有读操作又有写操作时,该控制单元可以分解该多个读操作和写操作并同时执行。
在这样的方案中,当该读操作和写操作的逻辑地址发生重叠时,读操作所读取的数据中可能与写操作刚写入的数据重叠,导致返回的数据中既包含新写入的数据,又包含还未执行写操作的旧数据,于是降低了用户获取闪存中的数据的准确性。
发明内容
本申请实施例提供了一种读写管理方法以及相关装置,用于提高用户获取闪存中的数据的准确性。
第一方面,本申请实施例提供了一种读写管理方法,包括:
接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求欲访问的地址范围,该访问请求包括读请求或写请求;判断该目标地址范围是否处于锁定状态;若所述目标地址范围不是处于锁定状态,则将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
根据第一方面,本申请实施第一方面的第一种实施方式中,该方法还包括:
若所述目标地址范围处于锁定状态,则等待所述目标地址范围解除锁定状态。
根据第一方面,本申请实施第一方面的第二种实施方式中,该判断该目标地址范围是否处于锁定状态包括:
查找二叉树存储结构,该二叉树存储结构包含多个二叉树节点;
判断该多个二叉树节点中是否存在该目标地址范围;
若该多个二叉树节点中存在该目标地址范围,则确定该目标地址范围处于锁定状态。
根据第一方面的第二种实施方式,本申请实施第一方面的第三种实施方式中,该判断该多个二叉树节点中是否存在该目标地址范围包括:
判断该多个二叉树节点中是否存在被锁定的地址;
若该多个二叉树节点中存在被锁定的地址,则确定该多个二叉树节点中存在该目标地址范围。
第二方面,本申请实施例提供了一种闪存控制器,包括:
接收模块,用于接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求欲访问的地址范围,该访问请求包括读请求或写请求;
判断模块,用于判断该目标地址范围是否处于锁定状态;
锁定模块,用于当所述目标地址范围不是处于锁定状态时,将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
根据第二方面,本申请实施第二方面的第一种实施方式中,该闪存控制器还包括:
排队模块,用于当所述目标地址范围处于锁定状态时,等待所述目标地址范围解除锁定状态。
根据第二方面,本申请实施第二方面的第二种实施方式中,该判断模块包括:
查找子模块,用于查找二叉树存储结构,该二叉树存储结构包含多个二叉树节点;
判断子模块,用于判断该多个二叉树节点中是否存在该目标地址范围;
确定子模块,用于当该多个二叉树节点中存在该目标地址范围时,确定该目标地址范围处于锁定状态。
根据第二方面的第三种实施方式,本申请实施第二方面的第三种实施方式中,该判断子模块包括:
判断单元,用于判断该多个二叉树节点中是否存在被锁定的地址;
确定单元,用于当该多个二叉树节点中存在被锁定的地址时,确定该多个二叉树节点中存在该目标地址范围。
第三方面,本申请实施例提供了一种闪存控制器,该闪存控制器执行如前述第一方面中的方法,该闪存控制器包括:
处理器、存储器、总线以及输入/输出设备;
该处理器、该存储器以及该输入/输出设备与该总线连接;
该存储器用于存储程序;
该输入/输出设备,用于接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求欲访问的地址范围,该访问请求包括读请求或写请求;
该处理器,用于判断该目标地址范围是否处于锁定状态;
该处理器,还用于当所述目标地址范围不是处于锁定状态时,将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
附图说明
图1为本申请实施例中读写管理方法的一个流程图;
图2本申请实施例中程读写管理方法的另一个流程图;
图3A为本申请实施例中地址范围的一个示意图;
图3B为本申请实施例中地址范围的另一个示意图;
图3C为本申请实施例中地址范围的另一个示意图;
图3D为本申请实施例中地址范围的另一个示意图;
图4为本申请实施例中闪存控制器的一个实施例示意图;
图5为本申请实施例中闪存控制器的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种读写管理方法以及相关装置,用于提升用户获取闪存中的数据的准确性。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面对本申请实施例涉及的一些术语进行介绍:
二叉树(binary tree):指每个结点最多有两个子树的树结构。通常子树被称作左子树(left subtree)和右子树(right subtree)。本申请实施例中,采用二叉树实现二叉查找树或二叉堆。
结点(node):指二叉树的节点,包含一个数据元素及若干指向子树的分支。
闪存控制器(flash memory controller):用于管理存储在闪存中的数据,并与计算机或电子设备进行通信。一般地,该闪存控制器中有芯片,该芯片负责闪存的读写、磨损均衡、寿命监控等。
固件(firmware):指设备内部保存的写入可擦写只读存储器或电可擦可编程只读存储器中的驱动程序,通过固件,操作***才能按照标准的设备驱动实现特定的运行动作。
下面对本申请实施例所适应的应用场景进行介绍:
本申请实施例所提出的方法主要应用于闪存控制器对读操作和写操作并行处理的场景。一般地,当用户需要读取闪存中的数据或者要向闪存中写入数据时,闪存控制器可以采用本申请实施例所提出的方法,将该多个读操作或写操作按照一定的顺序有序处理,避免在读操作或写操作时发生数据混乱。
为便于理解,下面对本实施例中读写管理方法的具体流程进行介绍,如图1所示,为本实施例提供的读写管理方法,该方法中的闪存控制器执行如下步骤,包括:
101、接收访问请求;
本申请实施例中,当用户要访问闪存中的数据是,该闪存控制器可以接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求预访问的地址范围,其中,该目标地址范围为该访问请求所对应的读操作或写操作的所对应的间断或连续的地址所组成的集合,该目标地址范围可以包含一个或多个地址,具体此处不做限定。此外,该访问请求包括读请求或写请求。
102、判断该目标地址范围是否处于锁定状态,若该目标地址范围未处于锁定状态,则执行步骤103;
本实施例中,当该闪存控制器收到该访问请求之后,可以判断访问请求中的该目标地址范围是否处于锁定状态,若该目标地址范围未处于锁定状态,则执行步骤103。
应当理解的是,本实施例中的锁定状态指被当前该地址范围进行读操作或者写操作命令进行锁定,此时,其他欲访问该地址的操作无法访问该地址也无法进行相应的操作,需该锁定状态解除后才能进行相应的操作。
103、若该目标地址范围不是处于锁定状态,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。
本实施例中,若该目标地址范围不是处于锁定状态,则将该目标地址范围设置为锁定状态,此时,其他与该目标地址范围重叠的读请求或者写请求将无法同时在该目标地址范围执行读操作或写操作,并且,该锁定状态将保持直至执行完该访问请求对应的访问操作时再解除。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
上面对本实施例中的读写管理方法进行了介绍,下面对本实施例中的读写管理方法的另一实施例进行介绍,如图2所示,本实施例中的读写管理方法的另一实施例包括:
201、接收访问请求;
本申请实施例中,当用户要访问闪存中的数据时,该闪存控制器可以接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求预访问的地址范围,其中,该目标地址范围为该访问请求所对应的读操作或写操作的所对应的间断或连续的地址所组成的集合,该目标地址范围可以包含一个或多个地址,具体此处不做限定。此外,该访问请求包括读请求或写请求。
202、判断该目标地址范围是否处于锁定状态,若该目标地址范围处于锁定状态,则执行步骤203;否则,执行步骤204;
本实施例中,该闪存控制器的固件中包含锁定模块,该锁定模块用于锁定某地址范围。
当闪存控制器接收该访问请求之后,该闪存控制器将查找该二叉树存储结构,该二叉树存储结构包含多个二叉树节点,该二叉树存储结构是预先定义的,一般地,可以根据闪存的大小定义合适大小的二叉树存储结构,例如,定义一个包含1024个节点的二叉树,其中,有一个节点为根节点,其余1023个节点在子节点,用于存储锁定信息等。此时,该1024个节点的二叉树最多进行10次查找便可以遍历所有的节点,于是可以实现快速高效的查找。应当理解的是,本实施例中所列举的二叉树的节点的个数仅仅是为了举例,在实际应用中,还可以定义其他大小的二叉树,例如,可以是512个节点的二叉树,也可以是2048个节点的二叉树,具体此处不做限定。在本实施例以及后续实施例中,仅以1024个节点的二叉树为例进行介绍。
本实施例中,该闪存控制器将根据二叉树的遍历规则查找该二叉树中的节点,在实际应用中,可以采用先序遍历,也可以采用中序遍历,还可以采用后序遍历,具体此处不做限定。然后,判断该多个二叉树节点中是否存在该目标地址范围,若该多个二叉树节点中存在该目标地址范围,则确定该目标地址范围处于锁定状态,则执行步骤203;否则,执行步骤204。
本实施例中,为方便理解,结合具体场景介绍如何判断目标地址范围是否处于锁定状态。当二叉树中的已被锁定的地址范围与该目标地址范围存在交叉时,则可以确定该多个二叉树节点中存在该目标地址范围。具体地,该已被锁定的地址范围可以小于该目标地址范围,例如图3A所示的已被锁定的地址范围1和图3B所示的已被锁定的地址范围2。此外,该已被锁定的地址范围还可以与该目标地址范围有一部分重叠,有一部分不重叠,例如图3C所示的已被锁定的地址范围3。另外,还可能该已被锁定的地址范围大于该目标地址范围,例如图3D所示的已被锁定的地址范围4。所以,具体地根据实际情况将有所差异,此处不做限定。
203、等待该目标地址范围解除锁定状态。
本实施例中,当确定该目标地址范围处于锁定状态之后,此时,其他的读写操作将无法访问该目标地址范围,则该闪存控制器将该访问请求所对应的读操作或者写操作加入等待的队列,等待正在进行的读操作或写操作执行完成之后,再执行该访问请求对应的读操作或者写操作。
需要注意的是,本实施例中,在执行读操作和写操作的过程中,该二叉树将保持合理的平衡,具体此处不做限定。然而,当以连续的方式访问时,该二叉树可以退化为一个链表,以提高连续读写的性能。
204、若该目标地址范围不是处于锁定状态,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。
本实施例中,若该目标地址范围不是处于锁定状态,则将该目标地址范围设置为锁定状态,此时,其他与该目标地址范围重叠的读请求或者写请求将无法同时在该目标地址范围执行读操作或写操作,并且,该锁定状态将保持直至执行完该访问请求对应的访问操作时再解除。
具体地,该闪存控制器将在该二叉树存储结构***一个二叉树节点,二叉树节点至少要存储该目标地址范围,此外,该二叉树节点还可以存储该目标地址范围将进行的操作类型,例如,该目标地址范围将进行读操作或者该目标地址范围将进行写操作。当该目标地址范围被锁定后,该锁定状态将保持直至执行完该访问请求对应的访问操作时再解除,此时,其他读操作或者写操作将无法访问该目标地址范围。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
上面对本实施例中的读写管理方法进行了介绍,下面对本实施例中的闪存控制器40进行介绍,如图4所示,本实施例中闪存控制器40的一个实施例包括:
接收模块401,用于接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求预访问的地址范围,该访问请求包括读请求或写请求;
判断模块402,用于判断该目标地址范围是否处于锁定状态;
锁定模块403,用于当该目标地址范围不是处于锁定状态时,将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。
该闪存控制器40还包括:
排队模块404,用于当该目标地址范围处于锁定状态时,等待该目标地址范围解除锁定状态。
该判断模块402包括:
查找子模块4021,用于查找二叉树存储结构,该二叉树存储结构包含多个二叉树节点;
判断子模块4022,用于判断该多个二叉树节点中是否存在该目标地址范围;
确定子模块4023,用于当该多个二叉树节点中存在该目标地址范围时,确定该目标地址范围处于锁定状态。
该判断子模块4022包括:
判断单元40221,用于判断该多个二叉树节点中是否存在被锁定的地址;
确定单元40222,用于当该多个二叉树节点中存在被锁定的地址时,确定该多个二叉树节点中存在该目标地址范围。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
下面对本实施例中的闪存控制器50进行介绍,如图5所示,是本实施例提供的一种闪存控制器50结构示意图,该闪存控制器50可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501和存储器502,一个或一个以上存储应用程序或数据的存储介质503(例如一个或一个以上海量存储设备)。其中,存储器502和存储介质503可以是短暂存储或持久存储。更进一步地,处理器501可以设置为与存储介质503通信,处理器501用于执行存储介质503中的应用程序,具体包括如下步骤:
输入/输出设备505接收访问请求,该访问请求包括目标地址范围,该目标地址范围为该访问请求预访问的地址范围,该访问请求包括读请求或写请求;
该处理器501,用于判断该目标地址范围是否处于锁定状态;
该处理器501,还用于当该目标地址范围处于锁定状态时,判断该目标地址范围是否存在写操作;
该处理器501,还用于当该目标地址范围不是处于锁定状态时,将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。
应理解,该闪存控制器50还可以包括一个或一个以上电源504,和/或,一个或一个以上操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
还应理解,上述图1或图2所对应的方法实施例中,该闪存控制器50所执行的步骤均可以基于该图5所示的闪存控制器50结构。
本申请实施例中,在接收了访问请求之后,闪存控制器会先判断访问请求所对应的目标地址范围是否被锁定,若没被锁定,则将该目标地址范围设置为锁定状态,直到执行完该访问请求对应的访问操作时再解除该锁定状态。由于在执行读操作或者写操作时将锁定该读操作或者写操作所对应的地址范围,则其他与该目标地址范围重叠的读操作或者写操作将无法在被锁定的地址范围上执行,因此,即使访问请求中的读操作或者写操作所对应的的逻辑地址与正在进行的写操作的逻辑地址发生重叠,也不会同时执行读操作和写操作,于是避免了在读操作或写操作时发生数据混乱,使用户读取的数据中只包含新的数据,因此,可以提升用户获取闪存中的数据的准确性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种读写管理方法,其特征在于,包括:
接收访问请求,所述访问请求包括目标地址范围,所述目标地址范围为所述访问请求欲访问的地址范围,所述访问请求包括读请求或写请求;
判断所述目标地址范围是否处于锁定状态;
若所述目标地址范围未处于锁定状态,则将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标地址范围处于锁定状态,则等待所述目标地址范围解除锁定状态。
3.根据权利要求1所述的方法,其特征在于,所述判断所述目标地址范围是否处于锁定状态包括:
查找二叉树存储结构,所述二叉树存储结构包含多个二叉树节点;
判断所述多个二叉树节点中是否存在所述目标地址范围;
若所述多个二叉树节点中存在所述目标地址范围,则确定所述目标地址范围处于锁定状态。
4.根据权利要求3所述的方法,其特征在于,所述判断所述多个二叉树节点中是否存在所述目标地址范围包括:
判断所述多个二叉树节点中是否存在被锁定的地址;
若所述多个二叉树节点中存在被锁定的地址,则确定所述多个二叉树节点中存在所述目标地址范围。
5.一种闪存控制器,其特征在于,包括:
接收模块,用于接收访问请求,所述访问请求包括目标地址范围,所述目标地址范围为所述访问请求欲访问的地址范围,所述访问请求包括读请求或写请求;
判断模块,用于判断所述目标地址范围是否处于锁定状态;
锁定模块,用于当所述目标地址范围未处于锁定状态时,将所述目标地址范围设置为锁定状态,直到执行完所述访问请求对应的访问操作时再解除所述锁定状态。
6.根据权利要求5所述的闪存控制器,其特征在于,所述闪存控制器还包括:
排队模块,用于当所述目标地址范围处于锁定状态时,等待所述目标地址范围解除锁定状态。
7.根据权利要求5所述的闪存控制器,其特征在于,所述判断模块包括:
查找子模块,用于查找二叉树存储结构,所述二叉树存储结构包含多个二叉树节点;
判断子模块,用于判断所述多个二叉树节点中是否存在所述目标地址范围;
确定子模块,用于当所述多个二叉树节点中存在所述目标地址范围时,确定所述目标地址范围处于锁定状态。
8.根据权利要求7所述的闪存控制器,其特征在于,所述判断子模块包括:
判断单元,用于判断所述多个二叉树节点中是否存在被锁定的地址;
确定单元,用于当所述多个二叉树节点中存在被锁定的地址时,确定所述多个二叉树节点中存在所述目标地址范围。
9.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至4中任一项所述的方法。
10.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285691.7A CN109992526A (zh) | 2019-04-10 | 2019-04-10 | 一种读写管理方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285691.7A CN109992526A (zh) | 2019-04-10 | 2019-04-10 | 一种读写管理方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109992526A true CN109992526A (zh) | 2019-07-09 |
Family
ID=67132979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910285691.7A Pending CN109992526A (zh) | 2019-04-10 | 2019-04-10 | 一种读写管理方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992526A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090614A (zh) * | 2019-12-03 | 2020-05-01 | 深信服科技股份有限公司 | Rom快照的读取方法、装置和存储介质 |
CN113204435A (zh) * | 2021-07-01 | 2021-08-03 | 阿里云计算有限公司 | 数据处理方法以及*** |
CN113609339A (zh) * | 2021-08-05 | 2021-11-05 | 北京汇钧科技有限公司 | 提升智能网卡性能的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378052B1 (en) * | 2015-03-31 | 2016-06-28 | Emc Corporation | Granting rangelocks according to thread arrival time |
US20170097894A1 (en) * | 2010-09-28 | 2017-04-06 | Texas Instruments Incorporated | Memory Attribute Sharing Between Differing Cache Levels of Multilevel Cache |
CN106575261A (zh) * | 2014-09-24 | 2017-04-19 | 英特尔公司 | 受保护的区域中的存储器初始化 |
CN107526535A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于管理存储***的方法和*** |
CN107678859A (zh) * | 2017-10-13 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种基于cap机制的文件访问方法、装置及设备 |
-
2019
- 2019-04-10 CN CN201910285691.7A patent/CN109992526A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170097894A1 (en) * | 2010-09-28 | 2017-04-06 | Texas Instruments Incorporated | Memory Attribute Sharing Between Differing Cache Levels of Multilevel Cache |
CN106575261A (zh) * | 2014-09-24 | 2017-04-19 | 英特尔公司 | 受保护的区域中的存储器初始化 |
US9378052B1 (en) * | 2015-03-31 | 2016-06-28 | Emc Corporation | Granting rangelocks according to thread arrival time |
CN107526535A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于管理存储***的方法和*** |
CN107678859A (zh) * | 2017-10-13 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种基于cap机制的文件访问方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
刘振鹏,王苗: "《数据结构》", 31 December 2016 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090614A (zh) * | 2019-12-03 | 2020-05-01 | 深信服科技股份有限公司 | Rom快照的读取方法、装置和存储介质 |
CN113204435A (zh) * | 2021-07-01 | 2021-08-03 | 阿里云计算有限公司 | 数据处理方法以及*** |
CN113609339A (zh) * | 2021-08-05 | 2021-11-05 | 北京汇钧科技有限公司 | 提升智能网卡性能的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341115B (zh) | 虚拟机内存访问方法、***和电子设备 | |
CN109992526A (zh) | 一种读写管理方法以及相关装置 | |
US10002023B2 (en) | Method and apparatus for managing one or more tasks of a many-core system using one or more task descriptor entries | |
KR101747966B1 (ko) | 자율 서브시스템 아키텍처 | |
CN107480260B (zh) | 大数据实时分析方法、装置、计算设备及计算机存储介质 | |
CN107992577B (zh) | 一种哈希表数据冲突处理方法及装置 | |
KR20110028211A (ko) | 자율 메모리 아키텍처 | |
CN102880628A (zh) | 哈希数据存储方法和装置 | |
CN114327917A (zh) | 内存管理方法、计算设备及可读存储介质 | |
US9836491B1 (en) | Method and apparatus for hardware-implemented AVL tree updates | |
CN109656730B (zh) | 一种访问缓存的方法和装置 | |
US11061676B2 (en) | Scatter gather using key-value store | |
CN110008030B (zh) | 一种元数据访问的方法、***及设备 | |
CN111258950B (zh) | 原子访存方法、存储介质、计算机设备、装置和*** | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
AU2011229395B2 (en) | Dual mode reader writer lock | |
CN115951845B (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
US20050223383A1 (en) | Methods and apparatus for reserving an execution thread | |
CN112068948B (zh) | 数据散列方法、可读存储介质和电子设备 | |
CN111104435B (zh) | 一种元数据组织方法、装置、设备及计算机可读存储介质 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
CN111258653B (zh) | 原子访存方法、存储介质、计算机设备、装置和*** | |
CN112506813A (zh) | 一种内存管理方法和*** | |
CN109388596A (zh) | 一种数据操作方法和装置 | |
CN117785758B (zh) | Cxl模组、控制器、任务处理方法、介质和*** |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190709 |
|
RJ01 | Rejection of invention patent application after publication |