CN107977282A - 一种SPI-Nand读取数据页的方法及装置 - Google Patents

一种SPI-Nand读取数据页的方法及装置 Download PDF

Info

Publication number
CN107977282A
CN107977282A CN201711385980.1A CN201711385980A CN107977282A CN 107977282 A CN107977282 A CN 107977282A CN 201711385980 A CN201711385980 A CN 201711385980A CN 107977282 A CN107977282 A CN 107977282A
Authority
CN
China
Prior art keywords
length
data page
page
data
block
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.)
Granted
Application number
CN201711385980.1A
Other languages
English (en)
Other versions
CN107977282B (zh
Inventor
庄开锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
GigaDevice Semiconductor Beijing Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN201711385980.1A priority Critical patent/CN107977282B/zh
Publication of CN107977282A publication Critical patent/CN107977282A/zh
Application granted granted Critical
Publication of CN107977282B publication Critical patent/CN107977282B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种SPI‑Nand读取数据页的方法及装置。该方法包括:当读取第一数据页发生错误检查和纠正ECC错误时,判断第一数据页是否位于第一步长,其中,第一数据页内存储着最后一次更新的数据,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长;若第一数据页未位于第一步长,则获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。通过该方法,能够解决由于ECC错误而引起的数据无法读取的问题,提高了SPI‑Nand的性能。

Description

一种SPI-Nand读取数据页的方法及装置
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种SPI-Nand读取数据页的方法及装置。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)Nand是Flash存储器的一种,属于非易失性存储设备(Non-volatile Memory Device),具有容量大、改写速度快等优点,适用于大量数据的存储。
SPI-Nand中通常存储有多种数据,如SPI-Nand的配置信息、SPI-Nand的逻辑地址与物理地址的映射关系和SPI-Nand的固件(Firmware)等,这些数据通常需要经常更新,因此要多次存储更新后的数据。当SPI-Nand查找数据时,通常是查找到最后一次更新所存储的数据页,并读取该数据页内存储的数据。然而,在读取该数据页内存储的数据时,可能发生后端的错误检查和纠正(Error Correcting Code,ECC)错误,导致数据无法正常读取。
发明内容
本发明提供一种SPI-Nand读取数据页的方法及装置,能够解决由于ECC错误而引起的数据无法读取的问题,提高了SPI-Nand的性能。
第一方面,本发明实施例提供了一种SPI-Nand读取数据页的方法,包括:
当读取第一数据页发生错误检查和纠正ECC错误时,判断第一数据页是否位于第一步长,其中,第一数据页内存储着最后一次更新的数据,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长;
若第一数据页未位于第一步长,则获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。
进一步地,还包括:
若第一数据页位于第一步长,则返回无效值。
进一步地,在判断第一数据页是否位于第一步长前,还包括:
利用二分法查找区块中的数据页,得到第一数据页;
读取第一数据页。
进一步地,区块包括第一子区块和第二子区块,第一数据页包括第一子数据页和第二子数据页,第一子数据页位于第一子区块内,第二子数据页位于第二子区块内,第一子数据页中存储的数据和第二子数据页中存储的数据相同。
第二方面,本发明实施例还提供了一种SPI-Nand读取数据页的装置,包括判断模块和获取模块;
判断模块,用于当读取第一数据页发生错误检查和纠正ECC错误时,判断第一数据页是否位于第一步长,其中,第一数据页内存储着最后一次更新的数据,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长;
获取模块,用于在判断模块判断出第一数据页未位于第一步长后,获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。
进一步地,获取模块,还用于在判断模块判断出第一数据页位于第一步长后,返回无效值。
进一步地,还包括查找模块;
查找模块,用于在判断模块判断第一数据页是否位于第一步长前,利用二分法查找区块中的数据页,得到第一数据页;
获取模块,还用于在查找模块得到第一数据页后,读取第一数据页。
进一步地,区块包括第一子区块和第二子区块,第一数据页包括第一子数据页和第二子数据页,第一子数据页位于第一子区块内,第二子数据页位于第二子区块内,第一子数据页中存储的数据和第二子数据页中存储的数据相同。
第三方面,本发明实施例还提供了一种设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一的SPI-Nand读取数据页的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一的SPI-Nand读取数据页的方法。
本发明由于当读取第一数据页发生错误检查和纠正ECC错误,且第一数据页未位于第一步长时,能够获取第一数据页所在的步长的上一个步长的首页地址,与现有的方法相比,解决了由于ECC错误而引起的数据无法读取的问题,提高了SPI-Nand的性能。
附图说明
图1是本发明实施例中的一种SPI-Nand读取数据页的方法的流程示意图;
图2是本发明实施例中的利用二分法查找区块中的数据页,得到第一数据页的流程示意图;
图3是本发明实施例中的一种区块存储数据的示意图;
图4是本发明实施例中的判断第一数据页是否位于第一步长的流程示意图;
图5是本发明实施例中的另一种区块存储数据的示意图;
图6是本发明实施例中的另一种区块存储数据的示意图;
图7是本发明实施例中的一种SPI-Nand读取数据页的装置的结构示意图;
图8是本发明实施例中的另一种SPI-Nand读取数据页的装置的结构示意图;
图9是本发明实施例中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于限定特定顺序。本发明实施例中提到的“和/或”是指包括一个或更多个相关所列项目的任何和所有组合。
为了解决在读取数据页内存储的数据时发生后端的ECC错误,导致数据无法正常读取的问题,本发明实施例提供了一种SPI-Nand读取数据页的方法及装置。通过该方法,能够解决由于ECC错误而引起的数据无法读取的问题,提高了SPI-Nand的性能。
图1为本发明实施例提供的一种SPI-Nand读取数据页的方法的流程示意图,本实施例可适用于读取存储有SPI-Nand的配置信息和/或SPI-Nand的逻辑地址与物理地址的映射关系和/或SPI-Nand的固件的数据页的场景,该方法具体包括如下步骤:
S101、利用二分法查找区块中的数据页,得到第一数据页。
第一数据页内存储着最后一次更新的数据。通常SPI-Nand需要查找的数据页为存储着最后一次更新的数据的数据页。即第一数据页内存储的数据为最后一次更新的SPI-Nand的配置信息,和/或最后一次更新的SPI-Nand的逻辑地址与物理地址的映射关系,和/或最后一次更新的SPI-Nand的固件的数据页。
具体的,如图2所示,步骤S101可以包括:
(1)判断Start Page中是否存有数据。
其中,Start Page通常为起始数据页,在步骤S101初始执行时,Start Page为一个区块中的第一个数据页。
(2)若Start Page中未存有数据,则表示区块为空。
(3)若Start Page中存有数据,则判断Start Page是否位于End Page之前。
其中,End Page通常为终止数据页,在步骤S101初始执行时,End Page为一个区块中的最后一个数据页。
(4)若Start Page不位于End Page之前,则该End Page即为第一数据页。
(5)若Start Page位于End Page之前,则获取Middle Page。
其中,Middle Page为中间数据页,即位于Start Page和End Page的中间位置的数据页。
(6)判断Middle Page中是否存有数据。
(7)若Middle Page中未存有数据,则将Middle Page设置为End Page,并重新执行第(3)步。
(8)若Middle Page中存有数据,则判断Middle Page的位置是否位于(StartPage+页步数-1)之后。
(9)若Middle Page的位置位于(Start Page+页步数-1)之后,则该MiddlePage即为第一数据页。
(10)若Middle Page的位置位于(Start Page+页步数-1)之前,则判断MiddlePage后方的一个数据页(即Middle Page+1)中是否存有数据。
(11)若Middle Page后方的一个数据页中未存有数据,则该Middle Page即为第一数据页。
(12)若Middle Page后方的一个数据页中存有数据,则将Middle Page后方的一个数据页设置为Start Page,并重新执行第(3)步。
S102、读取第一数据页。
需要说明的是,步骤S101和S102为可选步骤。
S103、当读取第一数据页发生ECC错误时,判断第一数据页是否位于第一步长。
其中,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长。
示例性的,如图3所示,一个区块中包括64个数据页,即Page0-Page63。假设第一步长的长度为4,那么区块内部的第一个步长即为Page0-Page3,当读取第一数据页发生ECC错误时,首先需要判断第一数据页是否位于第一步长,即第一数据页是否位于Page0-Page3。
具体的,如图4所示,步骤S103可以包括:
(1)判断第一数据页是否为区块中的第一个数据页。
(2)若第一数据页为区块中的第一个数据页,则第一数据页位于第一步长,执行步骤S105。
(3)若第一数据页不为区块中的第一个数据页,则判断(第二数据页+1)是否小于第一步长的长度。
(4)若(第二数据页+1)小于第一步长的长度,则第一数据页位于第一步长,执行步骤S105。
(5)若(第二数据页+1)大于或者等于第一步长的长度,则第一数据页未位于第一步长,执行步骤S104。
还需要说明的是,若读取第一数据页未发生ECC错误,则无需执行步骤S103-S105,直接读取第一数据页即可。
S104、若第一数据页未位于第一步长,则获取第二步长的首页地址。
其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。
示例性的,如图5所示,一个区块中包括64个数据页,即Page0-Page63。假设第一步长的长度为4,那么区块内部的第一步长即为Page0-Page3,若第一数据页未位于第一步长(图5中第一数据页为Page5),则获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。图5中的第二步长如括号所指示,第二步长的首页地址为第二步长的首个数据页的地址,即Page0的地址。由此,与现有的方法相比,本发明实施例提供的方法解决了由于ECC错误而引起的数据无法读取的问题,提高了SPI-Nand的性能。
S105、若第一数据页位于第一步长,则返回无效值。
可以理解的是,若第一数据页位于第一步长,则不存在第二步长,因此无法获取第二步长的首页地址,只能返回无效值,无效值通常取-1。
还需要说明的是,上述实施例均是以一个区块为单位进行描述的,在一种可能的实现方式中,如图6所示,区块还可以包括第一子区块B0和第二子区块B1,那么相应的,第一数据页包括第一子数据页和第二子数据页,第一子数据页位于第一子区块内,第二子数据页位于第二子区块内,第一子数据页中存储的数据和第二子数据页中存储的数据相同。
上述设置,由于第一子数据页中存储的数据和第二子数据页中存储的数据相同,因此即使其中一个子区块发生故障,另一个子区块中的数据依然能够读出,避免了由于子区块故障而导致的数据无法正常读出的问题,提高了SPI-Nand的稳定性。
本发明实施例提供一种SPI-Nand读取数据页的方法,包括:当读取第一数据页发生错误检查和纠正ECC错误时,判断第一数据页是否位于第一步长,其中,第一数据页内存储着最后一次更新的数据,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长;若第一数据页未位于第一步长,则获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。通过该方法,能够解决由于ECC错误而引起的数据无法读取的问题,提高了SPI-Nand的性能。
本发明实施例提供一种SPI-Nand读取数据页的装置,如图7所示,该装置包括判断模块10和获取模块11。
判断模块10,用于当读取第一数据页发生错误检查和纠正ECC错误时,判断第一数据页是否位于第一步长,其中,第一数据页内存储着最后一次更新的数据,第一步长为位于区块内部的第一个步长,第一步长的长度为第一步长所占的数据页的总长;
获取模块11,用于在判断模块10判断出第一数据页未位于第一步长后,获取第二步长的首页地址,其中,第二步长为第一数据页所在的步长的上一个步长,第二步长的首页地址为第二步长的首个数据页的地址。
进一步地,获取模块11,还用于在判断模块10判断出第一数据页位于第一步长后,返回无效值。
进一步地,结合图7,如图8所示,该装置还包括查找模块12。
查找模块12,用于在判断模块10判断第一数据页是否位于第一步长前,利用二分法查找区块中的数据页,得到第一数据页;
获取模块11,还用于在查找模块12得到第一数据页后,读取第一数据页。
进一步地,区块包括第一子区块和第二子区块,第一数据页包括第一子数据页和第二子数据页,第一子数据页位于第一子区块内,第二子数据页位于第二子区块内,第一子数据页中存储的数据和第二子数据页中存储的数据相同。
本发明实施例所提供的装置可执行本发明任意实施例所提供的SPI-Nand读取数据页的方法,具备执行方法相应的功能模块和有益效果。
本发明实施例提供一种设备,如图9所示,图9显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,设备以通用计算设备的形式表现。设备的组件可以包括但不限于:一个或者多个处理器或者处理器20,存储装置21,连接不同系统组件(包括存储装置21和处理器20)的总线22。
总线22表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置21可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)210和/或高速缓存存储器211。设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储装置21可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线22相连。存储装置21可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
当一个或多个程序被一个或多个处理器20执行,使得一个或多个处理器20实现如上述实施例的SPI-Nand读取数据页的方法。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的SPI-Nand读取数据页的方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种SPI-Nand读取数据页的方法,其特征在于,包括:
当读取第一数据页发生错误检查和纠正ECC错误时,判断所述第一数据页是否位于第一步长,其中,所述第一数据页内存储着最后一次更新的数据,所述第一步长为位于区块内部的第一个步长,所述第一步长的长度为第一步长所占的数据页的总长;
若所述第一数据页未位于所述第一步长,则获取第二步长的首页地址,其中,所述第二步长为所述第一数据页所在的步长的上一个步长,所述第二步长的首页地址为所述第二步长的首个数据页的地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一数据页位于所述第一步长,则返回无效值。
3.根据权利要求1所述的方法,其特征在于,在判断所述第一数据页是否位于第一步长前,还包括:
利用二分法查找所述区块中的数据页,得到所述第一数据页;
读取所述第一数据页。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述区块包括第一子区块和第二子区块,所述第一数据页包括第一子数据页和第二子数据页,所述第一子数据页位于所述第一子区块内,所述第二子数据页位于所述第二子区块内,所述第一子数据页中存储的数据和所述第二子数据页中存储的数据相同。
5.一种SPI-Nand读取数据页的装置,其特征在于,包括判断模块和获取模块;
所述判断模块,用于当读取第一数据页发生错误检查和纠正ECC错误时,判断所述第一数据页是否位于第一步长,其中,所述第一数据页内存储着最后一次更新的数据,所述第一步长为位于区块内部的第一个步长,所述第一步长的长度为第一步长所占的数据页的总长;
所述获取模块,用于在所述判断模块判断出所述第一数据页未位于所述第一步长后,获取第二步长的首页地址,其中,所述第二步长为所述第一数据页所在的步长的上一个步长,所述第二步长的首页地址为所述第二步长的首个数据页的地址。
6.根据权利要求5所述的装置,其特征在于,
所述获取模块,还用于在所述判断模块判断出所述第一数据页位于所述第一步长后,返回无效值。
7.根据权利要求5所述的装置,其特征在于,还包括查找模块;
所述查找模块,用于在所述判断模块判断所述第一数据页是否位于第一步长前,利用二分法查找所述区块中的数据页,得到所述第一数据页;
所述获取模块,还用于在所述查找模块得到所述第一数据页后,读取所述第一数据页。
8.根据权利要求5-7中任意一项所述的装置,其特征在于,所述区块包括第一子区块和第二子区块,所述第一数据页包括第一子数据页和第二子数据页,所述第一子数据页位于所述第一子区块内,所述第二子数据页位于所述第二子区块内,所述第一子数据页中存储的数据和所述第二子数据页中存储的数据相同。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的SPI-Nand读取数据页的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的SPI-Nand读取数据页的方法。
CN201711385980.1A 2017-12-20 2017-12-20 一种SPI-Nand读取数据页的方法及装置 Active CN107977282B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711385980.1A CN107977282B (zh) 2017-12-20 2017-12-20 一种SPI-Nand读取数据页的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711385980.1A CN107977282B (zh) 2017-12-20 2017-12-20 一种SPI-Nand读取数据页的方法及装置

Publications (2)

Publication Number Publication Date
CN107977282A true CN107977282A (zh) 2018-05-01
CN107977282B CN107977282B (zh) 2021-01-26

Family

ID=62007001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711385980.1A Active CN107977282B (zh) 2017-12-20 2017-12-20 一种SPI-Nand读取数据页的方法及装置

Country Status (1)

Country Link
CN (1) CN107977282B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051184A (zh) * 2019-12-27 2021-06-29 北京兆易创新科技股份有限公司 一种数据读取的方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221812A (zh) * 2006-08-28 2008-07-16 三星电子株式会社 具有多页复录功能的闪存器件及相关的块替换方法
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
CN102610279A (zh) * 2012-01-19 2012-07-25 苏州希图视鼎微电子有限公司 执行nand闪存的固化代码的方法
CN102667943A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过加速的写入后读取来管理错误的非易失性存储器和方法
CN102947887A (zh) * 2010-03-25 2013-02-27 桑迪士克以色列有限公司 非易失性存储设备中的同时多状态读取或验证
CN104850514A (zh) * 2014-02-18 2015-08-19 慧荣科技股份有限公司 存取闪存的方法及相关的控制器与记忆装置
CN105308685A (zh) * 2013-01-25 2016-02-03 桑迪士克技术有限公司 在非易失性多级多个存储器管芯的编程中恢复附近数据
WO2016090621A1 (zh) * 2014-12-12 2016-06-16 华为技术有限公司 数据存储的方法和装置
KR20170094815A (ko) * 2016-02-11 2017-08-22 삼성전자주식회사 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221812A (zh) * 2006-08-28 2008-07-16 三星电子株式会社 具有多页复录功能的闪存器件及相关的块替换方法
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
CN102667943A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过加速的写入后读取来管理错误的非易失性存储器和方法
CN102947887A (zh) * 2010-03-25 2013-02-27 桑迪士克以色列有限公司 非易失性存储设备中的同时多状态读取或验证
CN102610279A (zh) * 2012-01-19 2012-07-25 苏州希图视鼎微电子有限公司 执行nand闪存的固化代码的方法
CN105308685A (zh) * 2013-01-25 2016-02-03 桑迪士克技术有限公司 在非易失性多级多个存储器管芯的编程中恢复附近数据
CN104850514A (zh) * 2014-02-18 2015-08-19 慧荣科技股份有限公司 存取闪存的方法及相关的控制器与记忆装置
WO2016090621A1 (zh) * 2014-12-12 2016-06-16 华为技术有限公司 数据存储的方法和装置
KR20170094815A (ko) * 2016-02-11 2017-08-22 삼성전자주식회사 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李晴: "高速大容量NAND FLASH存储系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051184A (zh) * 2019-12-27 2021-06-29 北京兆易创新科技股份有限公司 一种数据读取的方法、装置、电子设备及存储介质
CN113051184B (zh) * 2019-12-27 2024-02-20 兆易创新科技集团股份有限公司 一种数据读取的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107977282B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
US11163658B2 (en) Methods, devices and computer readable mediums for managing storage system
US8145876B2 (en) Address translation with multiple translation look aside buffers
US10223283B2 (en) Selective purging of PCI I/O address translation buffer
CN108132890B (zh) 存储芯片的垃圾回收方法、装置、设备及存储介质
KR101650424B1 (ko) 기점 가상 머신으로부터 목적지 가상 머신으로의 동작 전송
US20130311712A1 (en) Control apparatus, storage device, and storage control method
US20150143045A1 (en) Cache control apparatus and method
US9063860B2 (en) Method and system for optimizing prefetching of cache memory lines
EP2437462A2 (en) Data access processing method and device
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
CN108665939B (zh) 为存储器提供ecc的方法与装置
US9858300B2 (en) Hash based de-duplication in a storage system
US10585618B2 (en) Providing access to virtual sequential access volume
US10901914B2 (en) Method for writing multiple copies into storage device, and storage device
CN107977282A (zh) 一种SPI-Nand读取数据页的方法及装置
US20170132240A1 (en) Method and system for file storage and access
CN107967222A (zh) 一种SPI-Nand查找数据页的方法及装置
CN110737395B (zh) I/o管理方法、电子设备和计算机可读存储介质
US8276041B2 (en) Data integrity validation using hierarchical volume management
US11513951B2 (en) System and method for improving write performance for log structured storage systems
CN113555057A (zh) 一种扩大固态硬盘映射表单元的实现方法
CN117032591B (zh) 直接访问通道的应用方法、装置、计算机设备和存储介质
CN108038064A (zh) 一种PairBlock擦除出错的处理方法及装置
US11636045B2 (en) Translating virtual addresses in a virtual memory based system

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
CP03 Change of name, title or address

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

CP03 Change of name, title or address