CN114265797B - 存储访问控制装置、硬盘设备及方法 - Google Patents
存储访问控制装置、硬盘设备及方法 Download PDFInfo
- Publication number
- CN114265797B CN114265797B CN202111452416.3A CN202111452416A CN114265797B CN 114265797 B CN114265797 B CN 114265797B CN 202111452416 A CN202111452416 A CN 202111452416A CN 114265797 B CN114265797 B CN 114265797B
- Authority
- CN
- China
- Prior art keywords
- target
- ddr
- request
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 78
- 238000001514 detection method Methods 0.000 claims description 17
- 239000007787 solid Substances 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了存储访问控制装置、硬盘设备及方法。本申请中,通过在SSD控制器中的DDR控制器与系统总线之间部署一个存储访问控制装置,使得SSD固件在访问L2P表时先组织一个DDR请求并在该DDR请求到达DDR控制器之前先到达上述存储访问控制装置,由该存储访问控制装置检测是否出现不同SSD固件对L2P表的访问冲突,一旦检测到L2P表的访问冲突,则挂起该当前待处理的DDR请求(也即暂停处理),这显然避免了L2P表访问冲突,防止因为L2P表访问冲突影响L2P表的访问速度。
Description
技术领域
本申请涉及数据安全技术,特别涉及存储访问控制装置、硬盘设备及方法。
背景技术
目前,对于存储设备比如固态存储磁盘(SSD:Solid-State Disk)等,当其中的固件需要访问地址映射(L2P:Logic address to Physical address)表(Table)时,会将待访问的L2P表中的双倍速率同步动态随机存储器(DDR:Double Data Rate)内存地址直接发送给DDR控制器进行访问处理,比如由DDR控制器对DDR内存地址对应的数据(在上述DDR内存地址记录的L2P表中的L2P表项)执行读、写等操作。这里,固件是指存储设备比如SSD中CPU核上运行的嵌入式软件等,以SSD为例,应用于SSD的固件可记为SSD固件。
而在应用中,常会出现不同固件同时要求DDR控制器对L2P表中的同一DDR内存地址进行访问处理,这就会出现L2P表访问冲突。而L2P表访问冲突则会影响L2P表的访问速度。
发明内容
本申请提供了存储访问控制装置及方法,以避免因为L2P表访问冲突影响L2P表访问。
本申请实施例提供了一种存储访问控制装置,该装置被部署在固态存储磁盘SSD控制器中的双倍速率同步动态随机存储器DDR控制器与系统总线之间;
所述装置至少包括:
冲突检测模块,用于获得当前待处理的来自SSD固件发送的目标DDR请求,检测目标DDR请求携带的目标DDR内存地址与地址映射L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起所述目标DDR请求,并在检测到所述冲突消失时发送访问通知至处理模块;或者如果否,发送访问通知至处理模块;
处理模块,用于依据来自所述冲突检测模块的所述访问通知,触发所述DDR控制器依据所述目标DDR请求携带的目标操作指令对所述L2P表中所述目标DDR内存地址对应的目标数据执行与所述目标操作指令对应的目标操作,并在所述DDR控制器执行完所述目标操作后生成与所述目标DDR请求对应的目标DDR响应以由所述SSD固件获得所述目标DDR响应。
本申请实施例还提供了一种存储访问控制方法,该方法应用于被部署在固态存储磁盘SSD控制器中的双倍速率同步动态随机存储器DDR控制器与系统总线之间的存储访问控制装置,该方法包括:
获得当前待处理的来自SSD固件发送的目标DDR请求;
检测目标DDR请求携带的目标DDR内存地址与地址映射L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起所述目标DDR请求,直至所述冲突消失;
在所述冲突消失或者在所述目标DDR内存地址与所述L2P表中当前正在被访问的当前DDR内存地址不冲突时,触发所述DDR控制器依据所述目标DDR请求携带的目标操作指令对所述L2P表中与所述目标DDR内存地址对应的目标数据执行与所述目标操作指令对应的目标操作,并在所述DDR控制器执行完所述目标操作后生成与所述目标DDR请求对应的目标DDR响应以由所述SSD固件获得所述目标DDR响应。
本申请实施例还提供了一种硬盘设备,该硬盘设备至少包括:固态存储磁盘SSD控制器;
所述SSD控制器至少包括双倍速率同步动态随机存储器DDR控制器、系统总线、以及部署在所述DDR控制器和所述系统总线之间的存储访问控制装置,所述存储访问控制装置至少包括如上所述装置中的结构。
由以上技术方案可以看出,本申请中,通过在SSD控制器中的DDR控制器与系统总线之间部署一个存储访问控制装置,使得SSD固件在访问L2P表时先组织一个DDR请求并在该DDR请求到达DDR控制器之前先到达上述存储访问控制装置,由该存储访问控制装置检测是否出现不同SSD固件对L2P表的访问冲突,一旦检测到L2P表的访问冲突,则挂起该当前待处理的DDR请求(也即暂停处理),这显然避免了L2P表访问冲突,防止因为L2P表访问冲突影响L2P表的访问速度;
进一步地,在本实施例中,上述目标DDR请求可同时包括至少一个DDR请求,这可以实现DDR控制器对多个不同DDR请求进行聚合操作,提高L2P表访问的速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的SSD控制器的结构示意图;
图2为本申请实施例提供的存储访问控制装置的结构示意图;
图3为本申请实施例提供的另一存储访问控制装置的结构示意图;
图4为本申请实施例提供的方法流程图;
图5为本申请实施例提供的硬盘设备结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
在SSD控制器中,DDR控制器只是基于SSD固件的指令被动执行读、写等访问操作,DDR控制器是不会针对SSD固定的L2P访问进行任何决策,比如决策是否出现L2P访问冲突等。基于此,在维持现有SSD控制器中原有模块比如DDR控制器等已有的功能的前提下,本申请实施例为了避免L2P表访问冲突,提出在SSD控制器中的DDR控制器与系统总线之间部署一个存储访问控制装置。也即该存储访问控制装置同时与系统总线和DDR控制器连接。可选地,这里的系统总线是指SSD控制器中的信息传输总线。通过在SSD控制器中的DDR控制器与SSD控制器中的信息传输总线即系统总线之间部署上述存储访问控制装置,可以实现SSD固件对L2P表的访问会在到达DDR控制器之前先到达上述存储访问控制装置,由该存储访问控制装置检测是否出现不同SSD固件对L2P表的访问冲突,具体可见下文描述,这里不展开赘述。
图1举例示出在在SSD控制器中的DDR控制器与系统总线之间部署存储访问控制装置的结构。下面会重点对存储访问控制装置进行描述,SSD控制器中其他模块比如接入主机的高速串行计算机扩展总线(PCIe:Peripheral Component Interconnect express)物理层(PHY)接口、安全模块(Security)、非易失性内存接口规范(NVME:Non-Volatile MemoryExpress)、低密度奇偶校验码(LDPC:Low Density Parity Check Code)校验、非易失性存储(Nand:Not and)管理、磁盘阵列(RAID:Redundant Arrays of Independent Disks)等,其类似现有技术,不再展开描述。
下面对上述存储访问控制装置进行描述:
参见图2,图2为本申请实施例提供的存储访问控制装置结构图。可选地,相比较目前通过软件实现的SSD固件,这里的存储访问控制装置可优选为通过硬件实现的硬件装置。如图2所示,存储访问控制装置(记为装置200)至少包括:
冲突检测模块201,用于获得当前待处理的来自SSD固件发送的目标DDR请求,检测目标DDR请求携带的目标DDR内存地址与L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起目标DDR请求,并在检测到冲突消失时发送访问通知至处理模块202,或者,如果否,发送访问通知至处理模块202。这里,目标DDR请求用于访问L2P表,下文会基于不同的场景举例描述,这里不再赘述。
处理模块202,用于依据来自冲突检测模块201的通知,触发DDR控制器依据目标DDR请求携带的目标操作指令对L2P表中目标DDR内存地址对应的目标数据执行与目标操作指令对应的目标操作,并在DDR控制器执行完目标操作后生成与目标DDR请求对应的目标DDR响应以由所述SSD固件获得所述目标DDR响应。这里,目标DDR响应是在DDR控制器执行完目标操作后生成的,其反映了DDR控制器执行目标操作的结果,比如目标DDR响应反映目标操作在被成功执行时对应的结果(此时的结果具体依赖目标操作,比如目标操作为读,则此时结果就至少包括读出的数据),或者反映目标操作在被失败执行时的结果(比如操作失败),下文会基于不同的目标DDR请求详细描述对应的DDR响应,这里暂不一一展开描述。
通过图2可以看出,在本实施例中,通过在SSD控制器中的DDR控制器与系统总线之间部署一个上述存储访问控制装置,一旦SSD固件在需要访问L2P表时先组织一个DDR请求并在该DDR请求到达DDR控制器之前先到达上述存储访问控制装置,由该存储访问控制装置检测不同SSD固件对L2P表的访问是否出现冲突,一旦检测到L2P表访问冲突,则挂起该当前待处理的DDR请求(也即暂停处理),这显然避免了L2P表访问冲突,防止因为L2P表访问冲突影响L2P表的访问速度。
在本实施例中,不同CPU核上的SSD固件都可能存在对L2P表访问的需求,为了便于管理不同CPU核上的SSD固件在访问L2P表时发起的DDR请求,在本实施例中,可选地,在如图2所示的结构的基础上,如图3所示,上述装置200进一步可包括:序列管理模块203。
其中,序列管理模块203,用于管理至少一个DDR请求序列(SQ)。
在本实施例中,每一SQ包括:至少一个DDR请求。
在一个例子中,上述目标DDR请求可包括序列管理模块203管理的其中一个SQ中的至少一个DDR请求。
在本实施例中,序列管理模块203还用于管理至少一个DDR响应序列(CQ)。可选地,在本实施例中,上述处理模块202在生成目标DDR响应后可进一步将上述目标DDR响应存放至序列管理模块203管理的其中一个CQ中。
可选地,在本实施例中,序列管理模块203管理的SQ的数量、CQ的数量均与SSD控制器中的CPU核数相关,每一CPU核对应至少一个SQ和至少一个CQ。比如,SSD控制器中存在4个CPU核,则序列管理模块203管理4个SQ和4个CQ,其中,每一个CPU核分别对应一个SQ和一个CQ。
可选地,在本实施例中,每一SQ存放其对应的CPU核上运行的SSD固件发送的DDR请求,每一CQ存放用于发向其对应的CPU核上运行的SSD固件的DDR响应。也即,同一SQ存放同一CPU核上运行的SSD固件发送的DDR请求,同一CQ存放发向同一CPU核上运行的SSD固件的DDR响应。
基于此,上述处理模块202可进一步在生成目标DDR响应后,将上述目标DDR响应存放至序列管理模块203管理的与发送上述目标DDR请求的SSD固件所处的CPU核对应的CQ中。
可选地,在本实施例中,在将目标DDR响应存放至CQ之后,上述处理模块202可通过中断的方式通知上述SSD固件来获取该目标DDR响应,以使上述SSD固件最终获取目标DDR响应。当然,作为另一个实施例,也可预先针对各SSD固件设置对应的状态寄存器,初始,各SSD固件被设置的状态寄存器为初始值比如0,该初始值比如0指示不存在SSD固件对应的响应(也即SSD固件无需获取其对应的DDR响应)。之后,在将待发向SSD固件的目标DDR响应存放至CQ之后,可针对上述SSD固件对应的状态寄存器进行状态置位(比如修改状态寄存器的初始值为指定值比如1),以使SSD固件基于状态寄存器的置位判断有DDR响应需要获取。当SSD固件判断出其对应的状态寄存器被置位,则会从与本SSD固件所处CPU核对应的CQ获得发向本SSD固件的目标DDR响应,即最终实现了SSD固件获取目标DDR响应。
如上描述,在本实施例中,不同CPU核上的SSD固件都可能存在对L2P表访问的需求,为了便于调度不同CPU核上的SSD固件在访问L2P表时发起的DDR请求,在如图2所示的结构的基础上,如图3所示,上述装置200还可包括:调度模块204。
其中,调度模块204,用于从序列管理模块203管理的所有SQ中调度出目标SQ,并从目标SQ中确定出当前待处理的至少一个DDR请求作为目标DDR请求,通知冲突检测模块201从目标SQ中获得目标DDR请求。可选地,为便于冲突检测模块201从目标SQ中获得目标DDR请求,这里的通知可携带目标SQ的标识、以及目标DDR请求在目标SQ中的位置信息。基于该通知,则最终冲突检测模块201会从目标SQ中获得目标DDR请求。至于目标SQ如何确定,下文会进行描述,这里暂不赘述。
可选地,作为一个实施例,调度模块204在从目标SQ中确定出当前待处理的DDR请求的数量大于1时,会检查当前待处理的所有DDR请求中是否存在满足聚合条件(该条件比如携带的DDR内存地址相邻等)的至少两个DDR请求,如果是,则将满足聚合条件的DDR请求聚合在一起得到一个聚合DDR请求,即聚合DDR请求、以及不满足聚合条件的DDR请求共同作为上述目标DDR请求;如果否,则将不满足聚合条件的DDR请求共同作为上述目标DDR请求。即最终实现了目标DDR请求包含目标SQ中至少一个DDR请求。在本实施例中,通过目标DDR请求同时包括至少一个DDR请求(目标SQ中各DDR请求经聚合得到的聚合DDR请求和/或目标SQ中未聚合的DDR请求),可实现DDR控制器对多个不同DDR请求进行聚合操作,提高L2P表访问的速度。
如上描述的目标DDR请求,当目标DDR请求包含的DDR请求(目标SQ中各DDR请求经聚合得到的聚合DDR请求和/或目标SQ中未聚合的DDR请求)的数量大于1时,调度模块204可进一步继续调度目标DDR请求中各DDR请求的执行顺序,并进一步将执行顺序携带在上述通知中发送给冲突检测模块201。基于此,冲突检测模块201从接收的通知中获得上述执行顺序,并按照执行顺序依次从上述目标SQ中获得目标DDR请求中的各个DDR请求,即最终获得了目标DDR请求。
需要说明的是,当目标DDR请求中包含按照执行顺序执行的不同DDR请求时,冲突检测模块会按照执行顺序依次对各个DDR请求执行如上的冲突检测,一旦检测到有DDR请求携带的DDR内存地址与L2P表中当前正在被访问的DDR内存地址冲突时,则挂起该DDR请求,并暂停执行顺序处于该DDR请求之后的其他DDR请求。当然,在冲突消失,或者检测出不存在上述冲突,则针对该DDR请求向处理模块202发送访问通知,以触发DDR控制器依据该DDR请求携带的操作指令对该DDR请求携带的L2P表中的DDR内存地址对应的数据执行对应的操作,并在DDR控制器执行完操作后通知冲突检测模块201继续按照执行顺序对该DDR请求之后的下一个DDR请求进行冲突检测,依次类推,直至目标DDR请求中所有DDR请求都被执行完冲突检测。
在本实施例中,每一SQ被设置对应的权重(Weight)。这里,每一SQ被设置的权重可根据实际需求设置,也可根据其所对应的CPU核的运算能力设置,等,本实施例并不具体限定。
基于此,可选地,在本实施例中,调度模块204可基于每一SQ被设置的权重从序列管理模块203管理的所有SQ中调度出上述目标SQ。
可选地,调度模块204依据序列管理模块203管理的所有SQ被设置的权重,调度出满足设定条件的目标SQ。
在一个例子中,设定条件至少包括:DDR请求的数量大于设定数量阈值、和/或权重大于设定权重条件(比如权重最大等),本实施例并不具体限定。可选地,在本实施例中,设定数量阈值可根据实际需求设置,比如设置为1等,本实施例并不具体限定。至于权重大于设定权重条件,其在具体实现时有很多实现形式,比如权重最大等,本实施例并不具体限定。
需要说明的是,在本实施例中,上述目标DDR请求为上述装置200提供给SSD固件的其中一个指令请求。在应用中,结合SSD固件对L2P表访问的场景需求,上述装置200可提供给SSD固件多条请求指令。
比如,应用于SSD固件在收到主机(Host)写入数据并将主机写入数据拆分为数据单元(AU)后访问L2P表的场景,则对应的请求指令为读和强制锁定(Read&ForceLock)。假若上述目标DDR请求用于指示Read&ForceLock,则上述的目标操作指令为Read&ForceLock操作指令,目标操作为Read&ForceLock,Read&ForceLock用于指示读取目标数据(处于上述目标DDR内存地址上的L2P表项)至指定位置,根据目标DDR请求携带的待写入数据(这里举例为虚拟地址VBA)对目标DDR内存地址对应的目标数据进行修改、以及锁定目标DDR内存地址。可选地,本实施例中,在执行完读取目标数据至指定位置,根据目标DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改、以及锁定目标DDR内存地址之后,则意味着操作执行成功。可选地,在本实施例中,根据目标DDR请求携带的待写入数据(这里举例为虚拟地址VBA)对目标DDR内存地址对应的目标数据进行修改可包括:将处于上述目标DDR内存地址的L2P表项中的物理区块地址(PBA:Physical Block Address)修改为目标DDR请求携带的VBA。这里,VBA是缓存(Cache)中一个暂时的地址,也可称为虚拟地址。可选地,在本实施例中,在锁定目标DDR内存地址之后,后续SSD固件在基于以下场景访问L2P表访问被锁定的目标DDR内存地址时:通过垃圾回收(GC)方式回收数据后或者在回收数据的数量达到设定数量写入存储介质(Nand),就会出现因目标DDR内存地址被锁定而不能访问的情况(即访问失败),具体见下文的读和非强制锁定(Read&WeakLock),这能优先保证主机写入数据的安全性。
再比如,应用于SSD固件在通过垃圾回收(GC)方式回收数据后、或者在回收数据的数量达到设定数量写入存储介质(Nand)后访问L2P表的场景,则对应的请求指令为读和非强制锁定(Read&WeakLock)。假若上述目标DDR请求用于指示Read&WeakLock,则上述目标操作指令包括Read&WeakLock操作指令,上述目标操作为Read&WeakLock。这里,Read&WeakLock用于指示判断上述目标DDR内存地址是否被锁定,如果是,操作失败,否则,读取目标数据至指定位置,根据目标DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改。可选地,在本实施例中,上述在执行完读取目标数据至指定位置,根据目标DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改后,则意味着此时Read&WeakLock操作成功。在本实施例中,根据目标DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改如上描述,这里不再赘述。
再比如,应用于SSD固件在主机写入数据的数据量达到预设数量被写入至存储介质后访问L2P表的场景,则对应的请求指令为读和条件写入(Read&ConditionWrite)。假若目标DDR请求用于指示Read&ConditionWrite,则上述目标操作指令包括Read&ConditionWrite操作指令,上述目标操作为Read&ConditionWrite,Read&ConditionWrite用于指示读取上述目标数据至指定位置,以及在判断目标数据中包括目标DDR请求携带的VBA(比如目标数据中的PBA与目标DDR请求携带的VBA相同)时,依据DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改,此时意味着操作成功,否则,返回操作失败。这里,DDR请求携带的待写入数据为PBA,基于此,这里依据DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改具体可为:将处于上述目标DDR内存地址上L2P表项中的PBA修改为该DDR请求携带的VBA。需要说明的是,在本实施例中,假若在读取上述目标数据至指定位置之前,发现目标DDR请求携带的目标DDR内存地址当前被锁定,则此时可对该目标DDR内存地址进行解锁。
再比如,应用于SSD固件在收到主机读操作访问L2P表的场景,则对应的请求指令为读操作(Read)。假如目标DDR请求用于指示Read,则上述目标操作指令包括Read指令,上述目标操作为Read。这里,Read用于指示读取上述目标数据(处于上述目标DDR内存地址上的L2P表项)。
再比如,应用于SSD固件在基于主机读操作访问L2P表后读取的PBA出现不可纠正(UNECC)的读错误的场景,则对应的请求指令为写操作(Write)。这里的读错误可为通过错误纠正码(ECC:Error Correcting Code)比如硬编码、软编码等都不可纠正的错误。在此前提下,假若上述目标DDR请求用于指示Write,则上述目标操作指令包括Write指令,目标操作为Write。这里,Write用于指示根据目标DDR请求携带的待写入数据对目标DDR内存地址对应的目标数据进行修改,比如,将目标DDR内存地址上L2P表项中的PBA修改为目标DDR请求携带的待写入数据比如PBA或者特定值。
以上对目标DDR请求进行了举例描述。
可选地,假若目标DDR请求用于指示Read&ForceLock。则对应地,上述目标DDR响应至少携带上述指定位置上存放的上述目标数据、以及Read&ForceLock成功标识(在应用中,Read&ForceLock执行一般都是成功的)。可选地,在目标DDR响应可包括旧数据字段(OldValue),这里,Old Value携带上述目标数据。
可选地,假若目标DDR请求用于指示Read&WeakLock,则对应地,一旦Read&WeakLock执行失败,则上述目标DDR响应至少携带Read&WeakLock失败标识。而一旦Read&WeakLock执行成功,则上述目标DDR响应至少携带上述指定位置上存放的上述目标数据、以及Read&WeakLock成功标识。与上面一样,目标DDR响应会通过Old Value携带上述目标数据。
可选地,假若目标DDR请求用于指示Read&ConditionWrite,则对应地,一旦Read&ConditionWrite执行失败,则上述目标DDR响应可以携带Read&ConditionWrite失败标识,也可同时携带目标数据和Read&ConditionWrite失败标识,一旦Read&ConditionWrite执行成功,则上述目标DDR响应至少携带上述指定位置上存放的上述目标数据、以及Read&ConditionWrite成功标识。同样地,目标DDR响应会通过Old Value携带上述目标数据。
可选地,假若目标DDR请求用于指示Read,则对应地,上述目标DDR响应至少携带读取的上述目标数据和Read成功状态标识(在应用中,Read一般都是成功的)。
可选地,假若目标DDR请求用于指示Write,则对应地,上述目标DDR响应至少携带Write成功状态标识(在应用中,Write一般都是成功的)。
在本实施例中,为了区分不同的DDR请求,每一DDR请求中都会存在唯一的用于标识该DDR请求的请求标识(记为TAG)。基于此,上述目标DDR请求携带用于标识该目标DDR请求的请求标识;对应地,上述目标DDR响应也会携带该请求标识,以表示该目标DDR响应是针对哪一DDR请求进行的响应。
以上对本申请实施例提供的装置进行了描述。本申请实施例还提供了对应上述装置的一种方法。参见图4,图4为本申请实施例提供的方法结构图。该方法应用于上述存储访问控制装置。如图4所示,该方法可包括:
步骤401,获得当前待处理的来自SSD固件发送的目标DDR请求。
步骤402,检测目标DDR请求携带的目标DDR内存地址与地址映射L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起目标DDR请求,直至所述冲突消失。
步骤403,在冲突消失或者在目标DDR内存地址与L2P表中当前正在被访问的当前DDR内存地址不冲突时,触发DDR控制器依据目标DDR请求携带的目标操作指令对L2P表中与目标DDR内存地址对应的目标数据执行与目标操作指令对应的目标操作,并在DDR控制器执行完目标操作后生成与目标DDR请求对应的目标DDR响应以由SSD固件获得目标DDR响应。
通过图4所示流程可以看出,在本实施例中,通过在SSD控制器中的DDR控制器与系统总线之间部署一个上述存储访问控制装置,一旦SSD固件在需要访问L2P表时先组织一个DDR请求并在该DDR请求到达DDR控制器之前先到达上述存储访问控制装置,由该存储访问控制装置检测不同SSD固件对L2P表的访问是否出现冲突,一旦检测到L2P表访问冲突,则挂起该当前待处理的DDR请求(也即暂停处理),这显然避免了L2P表访问冲突,防止因为L2P表访问冲突影响L2P表的访问速度。
可选地,上述步骤401中,获得当前待处理的来自SSD固件发送的目标DDR请求可包括:
从已记录的所有SQ中调度出目标SQ;
从目标SQ中确定出当前待处理的至少一个DDR请求作为目标DDR请求。
在本实施例中,每一SQ包括至少一个DDR请求。每一SQ被设置对应的权重。基于此,上述从已记录的所有SQ中调度出目标SQ可包括:依据各SQ被设置的权重,调度出满足设定条件的目标SQ;设定条件至少包括:DDR请求的数量大于设定数量阈值、且权重满足设定权重条件(比如权重最大等)。
可选地,在本实施例中,SQ的数量与SSD控制器中的CPU核数相关,每一CPU核对应至少一个SQ。每一SQ存放其对应的CPU核上运行的SSD固件发送的DDR请求。
可选地,在本实施例中,在生成目标DDR响应后可进一步将所标DDR响应存放至其中一个CQ中。这里,CQ的数量与SSD控制器中的CPU核数相关,每一CPU核对应至少一个CQ。每一CQ存放用于发向其对应的CPU核上运行的SSD固件的DDR响应。基于此,可将上述目标DDR响应存放至上述SSD固件所在的CPU核对应的CQ中。之后可通过中断的方式通知上述SSD固件来获取该目标DDR响应,以使上述SSD固件最终获取目标DDR响应。当然,作为另一个实施例,也可预先针对各SSD固件设置对应的状态寄存器,在将待发向上述SSD固件的目标DDR响应存放至CQ之后,会针对上述SSD固件对应的状态寄存器置位(具体如上描述)。之后,上述SSD固件即可发现其对应的状态寄存器被置位,则会判断有DDR响应需要获取,即从所在CPU核对应的CQ中获取DDR响应,最终实现了上述SSD固件获取目标DDR响应。
作为一个实施例,目标DDR请求用于指示读和强制锁定(Read&ForceLock),上述目标操作指令包括读和强制锁定操作指令,上述目标操作为读和强制锁定操作,上述读和强制锁定操作用于指示读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标内存地址对应的目标数据进行修改、以及锁定所述目标内存地址。此时意味着读和强制锁定操作成功。
对应地,目标DDR响应至少携带所述指定位置上存放的所述目标数据、以及读和强制锁定操作成功标识。
作为一个实施例,目标DDR请求用于指示读和非强制锁定操作Read&WeakLock,所述目标操作指令包括读和非强制锁定操作指令,所述目标操作为读和非强制锁定操作,所述读和非强制锁定操作用于指示判断所述目标内存地址是否被锁定,如果是,操作失败,否则,读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标内存地址对应的目标数据进行修改,此时意味着读和非强制锁定操作操作成功。
对应地,所述目标DDR响应在所述读和非强制锁定操作失败时,携带操作失败标识,或者,在所述读和非强制锁定操作成功时携带所述指定位置上存放的所述目标数据、以及操作成功标识。
作为一个实施例,目标DDR请求用于指示读和条件写入Read&ConditionWrite,所述目标操作指令包括读和条件写入操作指令,所述目标操作为读和条件写入操作,所述读和条件写入操作用于指示读取所述目标数据至指定位置,以及在判断所述目标数据中包括所述目标DDR请求携带的缓存虚拟地址VBA时,依据所述DDR请求携带的待写入数据对所述目标内存地址对应的目标数据进行修改,此时意味着读和条件写入操作成功,否则,返回操作失败。
对应地,所述目标DDR响应在所述读和条件写入操作失败时可以携带操作失败标识,也可以同时携带目标数据以及操作失败标识,或者在所述读和条件写入操作成功时携带所述指定位置上存放的所述目标数据、以及操作成功标识。
作为一个实施例,目标DDR请求用于指示读操作Read,所述目标操作指令包括读操作指令,所述目标操作为读操作,所述读操作用于指示读取所述目标数据;所述目标DDR响应携带读取的所述目标数据和读成功状态标识。
作为一个实施例,目标DDR请求用于指示写操作Write,所述目标操作指令包括写操作指令,所述目标操作为写操作,所述写操作用于指示根据所述目标DDR请求携带的待写入数据对所述目标内存地址对应的目标数据进行修改;所述目标DDR响应携带写操作成功标识。
在本实施例中,上述目标DDR请求为提供给SSD固件的其中一个请求指令。其中,不同应用场景对应不同的请求指令。
可选地,当SSD固件在将收到的主机写入数据拆分为数据单元AU后访问L2P表时,发送用于指示读和强制锁定Read&ForceLock的DDR请求。
当SSD固件在通过垃圾回收GC方式回收数据后或者在回收数据的数量已达到设定数量并写入存储介质后访问L2P表时,发送用于指示读和非强制锁定Read&WeakLock的DDR请求。
当SSD固件在数据量达到预设数量的主机写入数据被写入后访问L2P表时,发送用于指示读和条件写入Read&ConditionWrite的DDR请求。
当SSD固件在收到主机读操作访问L2P表时,发送用于指示读操作Read的DDR请求;当SSD固件在收到主机读操作访问L2P表时,发送用于指示读操作Read的DDR请求。
当SSD固件在基于主机读操作访问L2P表后读取的PBA出现读错误UNECC,则发送用于指示写操作Write的DDR请求。
在本实施例中,所述目标DDR请求携带用于标识该目标DDR请求的请求标识TAG,所述请求标识用于区分DDR请求,不同DDR请求携带不同请求标识;所述目标DDR响应携带所述请求标识。
需要说明的是,上述是以存储访问控制装置也可具有如下硬件结构。参见图5,图5为本申请实施例提供的硬盘设备结构图。如图5所示,该硬盘设备结构可至少包括:SSD控制器。在一个例子中,SSD控制器至少包括:至少一个被部署了SSD固件的CPU核、DDR控制器、系统总线、以及部署在DDR控制器和系统总线之间的存储访问控制装置。在一个例子中,存储访问控制装置如图2所示。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种存储访问控制装置,其特征在于,该装置被部署在固态存储磁盘SSD控制器中的双倍速率同步动态随机存储器DDR控制器与系统总线之间;
所述装置至少包括:
冲突检测模块,用于获得当前待处理的来自SSD固件发送的目标DDR请求,检测目标DDR请求携带的目标DDR内存地址与地址映射L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起所述目标DDR请求,并在检测到所述冲突消失时发送访问通知至处理模块;或者如果否,发送访问通知至处理模块;
处理模块,用于依据来自所述冲突检测模块的所述访问通知,触发所述DDR控制器依据所述目标DDR请求携带的目标操作指令对所述L2P表中目标DDR内存地址对应的目标数据执行与所述目标操作指令对应的目标操作,并在所述DDR控制器执行完所述目标操作后生成与所述目标DDR请求对应的目标DDR响应以由所述SSD固件获得所述目标DDR响应;
其中,所述目标DDR请求为所述装置提供给所述SSD固件的其中一个请求指令,不同请求指令对应不同应用场景,所述目标DDR请求至少包括以下之一:
当SSD固件在将收到的主机写入数据拆分为数据单元AU后访问L2P表时,发送用于指示读和强制锁定Read&ForceLock的DDR请求;
当SSD固件在通过垃圾回收GC方式回收数据后或者在回收数据的数据量已达到设定数量并写入存储介质后访问L2P表时,发送用于指示读和非强制锁定Read&WeakLock的DDR请求;
当SSD固件在数据量达到预设数量的主机写入数据被写入后访问L2P表时,发送用于指示读和条件写入Read&ConditionWrite的DDR请求;
当SSD固件在收到主机读操作访问L2P表时,发送用于指示读操作Read的DDR请求;
当SSD固件在基于主机读操作访问L2P表后读取的物理区块地址PBA出现读错误UNECC,则发送用于指示写操作Write的DDR请求。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
序列管理模块,用于管理至少一个DDR请求序列SQ、以及至少一个DDR响应序列CQ;
其中,每一SQ包括:至少一个DDR请求;
所述目标DDR请求包括所述序列管理模块管理的其中一个SQ中的至少一个DDR请求;
所述处理模块进一步在生成目标DDR响应后,将所述目标DDR响应存放至所述序列管理模块管理的其中一个CQ中。
3.根据权利要求2所述的装置,其特征在于,
所述序列管理模块管理的SQ的数量、CQ的数量均与所述SSD控制器中的CPU核数相关,每一CPU核对应至少一个SQ和至少一个CQ;
每一SQ存放其对应的CPU核上运行的SSD固件发送的DDR请求,每一CQ存放用于发向其对应的CPU核上运行的SSD固件的DDR响应。
4.根据权利要求2所述的装置,其特征在于,所述装置还包括:
调度模块,用于从所述序列管理模块管理的所有SQ中调度出目标SQ,并从目标SQ中确定出当前待处理的至少一个DDR请求作为所述目标DDR请求,通知所述冲突检测模块从所述目标SQ中获得所述目标DDR请求。
5.根据权利要求4所述的装置,其特征在于,每一SQ被设置对应的权重Weight;
所述调度模块依据所述序列管理模块管理的所有SQ被设置的权重,调度出满足设定条件的目标SQ;所述设定条件至少包括:DDR请求的数量大于设定数量阈值和/或权重满足设定权重条件。
6.根据权利要求1所述的装置,其特征在于,
当所述目标DDR请求用于指示读和强制锁定Read&ForceLock时,所述目标操作指令包括读和强制锁定操作指令,所述目标操作为读和强制锁定操作,所述读和强制锁定操作用于指示读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改、以及锁定所述目标DDR内存地址;所述目标DDR响应至少携带所述指定位置上存放的所述目标数据、以及读和强制锁定操作成功标识;或者,
当所述目标DDR请求用于指示读和非强制锁定操作Read&WeakLock时,所述目标操作指令包括读和非强制锁定操作指令,所述目标操作为读和非强制锁定操作,所述读和非强制锁定操作用于指示判断所述目标DDR内存地址是否被锁定,如果是,操作失败,所述目标DDR响应携带操作失败标识;或者,如果否,读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改,所述目标DDR响应携带所述指定位置上存放的所述目标数据、以及操作成功标识;或者,
当所述目标DDR请求用于指示读和条件写入Read&ConditionWrite时,所述目标操作指令包括读和条件写入操作指令,所述目标操作为读和条件写入操作,所述读和条件写入操作用于指示读取所述目标数据至指定位置,以及在判断所述目标数据中包括所述目标DDR请求携带的缓存虚拟地址VBA时,依据所述DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改,所述目标DDR响应携带所述指定位置上存放的所述目标数据、以及操作成功标识;或者,在判断所述目标数据中不包括所述目标DDR请求携带的缓存虚拟地址VBA时操作失败,所述目标DDR响应携带操作失败标识;或者,
当所述目标DDR请求用于指示读操作Read时,所述目标操作指令包括读操作指令,所述目标操作为读操作,所述读操作用于指示读取所述目标数据;所述目标DDR响应携带读取的所述目标数据和读成功状态标识;或者,
当所述目标DDR请求为用于指示写操作Write时,所述目标操作指令包括写操作指令,所述目标操作为写操作,所述写操作用于指示根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改;所述目标DDR响应携带写操作成功标识。
7.根据权利要求1所述的装置,其特征在于,所述目标DDR请求携带用于标识该目标DDR请求的请求标识TAG,所述请求标识用于区分DDR请求,不同DDR请求携带不同请求标识;所述目标DDR响应携带所述请求标识。
8.根据权利要求1至7任一所述的装置,其特征在于,所述装置为通过硬件实现的硬件装置。
9.一种存储访问控制方法,其特征在于,该方法应用于被部署在固态存储磁盘SSD控制器中的双倍速率同步动态随机存储器DDR控制器与系统总线之间的存储访问控制装置,该方法包括:
获得当前待处理的来自SSD固件发送的目标DDR请求;
检测目标DDR请求携带的目标DDR内存地址与地址映射L2P表中当前正在被访问的当前DDR内存地址是否发生冲突,如果是,挂起所述目标DDR请求,直至所述冲突消失;
在所述冲突消失或者在所述目标DDR内存地址与所述L2P表中当前正在被访问的当前DDR内存地址不冲突时,触发所述DDR控制器依据所述目标DDR请求携带的目标操作指令对所述L2P表中与所述目标DDR内存地址对应的目标数据执行与所述目标操作指令对应的目标操作,并在所述DDR控制器执行完所述目标操作后生成与所述目标DDR请求对应的目标DDR响应以由所述SSD固件获得所述目标DDR响应;
其中,所述目标DDR请求为所述装置提供给所述SSD固件的其中一个请求指令,不同请求指令对应不同应用场景,所述目标DDR请求至少包括以下之一:
当SSD固件在将收到的主机写入数据拆分为数据单元AU后访问L2P表时,发送用于指示读和强制锁定Read&ForceLock的DDR请求;
当SSD固件在通过垃圾回收GC方式回收数据后或者在回收数据的数据量已达到设定数量并写入存储介质后访问L2P表时,发送用于指示读和非强制锁定Read&WeakLock的DDR请求;
当SSD固件在数据量达到预设数量的主机写入数据被写入后访问L2P表时,发送用于指示读和条件写入Read&ConditionWrite的DDR请求;
当SSD固件在收到主机读操作访问L2P表时,发送用于指示读操作Read的DDR请求;
当SSD固件在基于主机读操作访问L2P表后读取的物理区块地址PBA出现读错误UNECC,则发送用于指示写操作Write的DDR请求。
10.根据权利要求9所述的方法,其特征在于,所述目标DDR请求包括其中一个DDR请求序列SQ中的至少一个DDR请求;每一SQ包括至少一个DDR请求;
其中,SQ的数量与所述SSD控制器中的CPU核数相关,每一CPU核对应至少一个SQ,每一SQ存放其对应的CPU核上运行的SSD固件发送的DDR请求。
11.根据权利要求9或10所述的方法,其特征在于,当所述目标DDR请求用于指示读和强制锁定Read&ForceLock时,所述目标操作指令包括读和强制锁定操作指令,所述目标操作为读和强制锁定操作,所述读和强制锁定操作用于指示读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改、以及锁定所述目标DDR内存地址;所述目标DDR响应至少携带所述指定位置上存放的所述目标数据、以及读和强制锁定操作成功标识;或者,
当所述目标DDR请求用于指示读和非强制锁定操作Read&WeakLock时,所述目标操作指令包括读和非强制锁定操作指令,所述目标操作为读和非强制锁定操作,所述读和非强制锁定操作用于指示判断所述目标DDR内存地址是否被锁定,如果是,操作失败,所述目标DDR响应携带操作失败标识;或者,如果否,读取所述目标数据至指定位置,根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改,所述目标DDR响应携带所述指定位置上存放的所述目标数据、以及操作成功标识;或者,
当所述目标DDR请求用于指示读和条件写入Read&ConditionWrite时,所述目标操作指令包括读和条件写入操作指令,所述目标操作为读和条件写入操作,所述读和条件写入操作用于指示读取所述目标数据至指定位置,以及在判断所述目标数据中包括所述目标DDR请求携带的缓存虚拟地址VBA时,依据所述DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改,所述目标DDR响应携带所述指定位置上存放的所述目标数据、以及操作成功标识;或者,在判断所述目标数据中不包括所述目标DDR请求携带的缓存虚拟地址VBA时操作失败,所述目标DDR响应携带操作失败标识;或者,
当所述目标DDR请求用于指示读操作Read时,所述目标操作指令包括读操作指令,所述目标操作为读操作,所述读操作用于指示读取所述目标数据;所述目标DDR响应携带读取的所述目标数据和读成功状态标识;或者,
当所述目标DDR请求为用于指示写操作Write时,所述目标操作指令包括写操作指令,所述目标操作为写操作,所述写操作用于指示根据所述目标DDR请求携带的待写入数据对所述目标DDR内存地址对应的目标数据进行修改;所述目标DDR响应携带写操作成功标识。
12.一种硬盘设备,其特征在于,该硬盘设备至少包括:固态存储磁盘SSD控制器;
所述SSD控制器至少包括双倍速率同步动态随机存储器DDR控制器、系统总线、以及部署在所述DDR控制器和所述系统总线之间的存储访问控制装置,所述存储访问控制装置至少包括如权利要求1至8任一所述装置中的结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111452416.3A CN114265797B (zh) | 2021-12-01 | 2021-12-01 | 存储访问控制装置、硬盘设备及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111452416.3A CN114265797B (zh) | 2021-12-01 | 2021-12-01 | 存储访问控制装置、硬盘设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265797A CN114265797A (zh) | 2022-04-01 |
CN114265797B true CN114265797B (zh) | 2024-02-27 |
Family
ID=80825964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111452416.3A Active CN114265797B (zh) | 2021-12-01 | 2021-12-01 | 存储访问控制装置、硬盘设备及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265797B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010146252A (ja) * | 2008-12-18 | 2010-07-01 | Nec Engineering Ltd | Ddrメモリコントローラ |
KR20130104937A (ko) * | 2012-03-16 | 2013-09-25 | 한국과학기술원 | 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 |
CN107329810A (zh) * | 2016-04-28 | 2017-11-07 | 飞思卡尔半导体公司 | 用于多核处理器的信号机 |
CN107818056A (zh) * | 2016-09-14 | 2018-03-20 | 杭州华为数字技术有限公司 | 一种队列管理方法及装置 |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795838B2 (en) * | 2019-01-08 | 2020-10-06 | Intel Corporation | Using transfer buffer to handle host read collisions in SSD |
US11157409B2 (en) * | 2019-12-17 | 2021-10-26 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
-
2021
- 2021-12-01 CN CN202111452416.3A patent/CN114265797B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010146252A (ja) * | 2008-12-18 | 2010-07-01 | Nec Engineering Ltd | Ddrメモリコントローラ |
KR20130104937A (ko) * | 2012-03-16 | 2013-09-25 | 한국과학기술원 | 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
CN107329810A (zh) * | 2016-04-28 | 2017-11-07 | 飞思卡尔半导体公司 | 用于多核处理器的信号机 |
CN107818056A (zh) * | 2016-09-14 | 2018-03-20 | 杭州华为数字技术有限公司 | 一种队列管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114265797A (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559138B (zh) | 固态硬盘及其空间管理方法 | |
US20180039578A1 (en) | Data storage device using host memory and method of operating same | |
US8725936B2 (en) | Storage system with flash memory, and storage control method | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
CN102063338B (zh) | 一种请求独占资源的方法及装置 | |
CN111007991B (zh) | 基于nvdimm分离读写请求的方法及其计算机 | |
CN104182701B (zh) | 一种阵列控制器、阵列和数据处理方法 | |
CN110286853B (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN109582228B (zh) | 基于nand闪存控制器的自动读重试的硬件加速方法及装置 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
EP3336702B1 (en) | Metadata recovery method and device | |
CN106980466B (zh) | 数据存储装置及其操作方法 | |
US20140351628A1 (en) | Information processing device, control circuit, computer-readable recording medium for control program, and control method | |
US11797228B2 (en) | Efficient handling of background operations for improving sustained performance of host reads and writes | |
US10635583B2 (en) | Memory management method and storage controller | |
CN114265797B (zh) | 存储访问控制装置、硬盘设备及方法 | |
US10642531B2 (en) | Atomic write method for multi-transaction | |
US11106390B1 (en) | Combining in-process reads to reduce die collisions | |
CN107562654B (zh) | Io命令处理方法与装置 | |
CN107562639B (zh) | 擦除块读请求处理方法与装置 | |
US20160306697A1 (en) | Magnetic disk device and method for saving management information | |
CN114327277A (zh) | 垃圾回收的异常处理方法、装置、计算机设备及存储介质 | |
US20250208785A1 (en) | Storage device and operating method thereof | |
KR20140101626A (ko) | 솔리드 스테이트 드라이브의 데이터 처리 방법 | |
US12013753B2 (en) | Proactive loss notification and handling in data storage devices |
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 |