CN103748561B - 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制 - Google Patents

用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制 Download PDF

Info

Publication number
CN103748561B
CN103748561B CN201280041033.XA CN201280041033A CN103748561B CN 103748561 B CN103748561 B CN 103748561B CN 201280041033 A CN201280041033 A CN 201280041033A CN 103748561 B CN103748561 B CN 103748561B
Authority
CN
China
Prior art keywords
data block
host
data
mistake
transmitted
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
Application number
CN201280041033.XA
Other languages
English (en)
Other versions
CN103748561A (zh
Inventor
C·J·萨考纳
D·G·康罗伊
J·凯勒尔
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103748561A publication Critical patent/CN103748561A/zh
Application granted granted Critical
Publication of CN103748561B publication Critical patent/CN103748561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明所公开的实施例提供了一种将数据从存储设备传输至主机的系统。所述系统包括通信机构,所述通信机构接收来自所述主机的读取一组数据块的请求。接着,在从所述存储设备读取来自所述一组数据块中的每个数据块时,所述通信机构经由与所述主机的接口而传输所述数据块。所述系统还包括在读取所述数据块时对所述数据块执行错误检测的错误检测设备,以及如果在所述数据块中检测到错误则对所述数据块执行错误校正的错误校正设备。然后,在将所述错误从所述数据块移除之后,所述通信机构可将所述数据块重新传输至所述主机。

Description

用以减少延迟并提高对主机的吞吐量的同步数据传输和错误 控制
技术领域
本实施例涉及用于计算机系统的存储设备。更具地讲,本实施例涉及用于同步地从设备传输数据并对所述数据执行错误控制以减少延迟并提高对主机的吞吐量的技术。
背景技术
现代计算机系统通常包括包含处理器和存储器的母板,连同经由各种接口连接至母板的一组外围组件。例如,串行高级技术附件(SATA)接口可方便存储设备(例如,硬盘驱动器、光盘驱动器、固态驱动器、混合硬盘驱动器等)与母板之间的数据传输,而外围组件快速互连(PCIe)总线可允许母板与多个集成和/或添加式外围组件之间的通信。
此外,接口的吞吐量和/或延迟可影响数据在计算机系统中的组件之间传输的速率。例如,SATA接口可使得数据在存储设备与母板之间能够以最高至6Gb/s的速率串行传输。在经由SATA接口而传输数据之前,可以对数据执行错误检测和/或校正,从而增加数据传输的延迟。另外,被传输数据的8b/10b编码可能导致额外的开销。因此,SATA接口可提供大约550MB/s的有效吞吐量。
同时,连接至接口的设备以逐渐更快的速度运行。例如,固态驱动器(SSD)可对多个闪存芯片执行数据分条和/或交叉。继而,SSD上的读写操作可在闪存芯片上并行执行,从而在SSD上提供超过700MB/s的有效读写速度。因此,计算机系统中的高速组件之间的数据传输可能越来越受到连接这些组件的接口的信号传输能力的限制。
因此需要一种用于减少延迟和/或增加计算机系统中的组件之间接口的吞吐量的机制。
发明内容
本发明所公开的实施例提供了将数据从存储设备传输至主机的系统。该系统包括通信机构,该通信机构接收来自主机的读取一组数据块的请求。接着,在从存储设备读取来自所述一组数据块中的每个数据块时,通信机构经由与主机的接口来传输数据块。该系统还包括在读取数据块时对所述数据块执行错误检测的错误检测设备,以及如果在数据块中检测到错误则对数据块执行错误校正的错误校正设备。然后,在将错误从数据块移除之后,通信机构可将数据块重新传输至主机。
在一些实施例中,数据块以无序的方式重新传输至主机。例如,数据块可在随后的数据块已无误地传输至主机之后重新传输至主机。
在一些实施例中,该系统还包括错误跟踪设备,如果在数据块中检测到错误,则该错误跟踪设备跟踪数据块的错误校正。错误跟踪设备可将包含错误的每个数据块添加至数据结构。在将错误从数据块移除之后,错误跟踪设备可将所述数据块从数据结构移除。最后,在所有数据块已无误地传输至主机之后(例如,在数据结构已被清空之后),通信机构将完成信号发送至主机以完成对主机的数据传输。
在一些实施例中,数据块经由接口的一条或多条通道传输至主机。
在一些实施例中,接口为外围组件快速互连(PCIe)接口。
在一些实施例中,存储设备对应于非旋转式存储设备。例如,存储设备可为固态驱动器(SSD)。
附图说明
图1示出了根据实施例的系统的示意图。
图2示出了根据实施例的从存储设备到主机的数据传输。
图3示出了流程图,该流程图示出了根据实施例的将数据从存储设备传输至主机的过程。
图4示出了根据实施例的计算机系统。
在附图中,类似的附图标号表示相同的附图元件。
具体实施方式
以下描述用于使本领域中的任何技术人员能够实现并使用所述实施例,并且其在特定专利申请的上下文及其要求中提供。对本发明所公开的实施例的各种修改对于本领域的技术人员而言将是显而易见的,并且在不脱离本发明的实质和范围的前提下,本文定所义的一般原则可适用于其他实施例和应用。因此,本发明不受所示出实施例的限制,而是被赋予与本文所公开的原则和特征一致的最广泛的范围。
该具体实施方式中所述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可为可存储供计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁存储设备和光学存储设备(例如磁盘驱动器、磁带、CD(光盘)、DVD(数字多用盘或数字视频光盘))或能够存储现在已知或日后开发的代码和/或数据的其他介质。
本具体实施方式部分中所述的方法和过程可实施为代码和/或数据,所述代码和/或数据可存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统对实施为数据结构和代码且存储在计算机可读存储介质内的方法和过程加以执行。
此外,本文所述的方法和过程可包括在硬件模块或设备中。这些模块或设备可包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一条代码的专用或共享处理器、和/或现在已知或日后开发的其他可编程逻辑设备。当硬件模块或设备启动后,硬件模块或设备执行其内所包括的方法和过程。
本发明所公开的实施例提供了用于在计算机系统内传输数据的方法和系统。如图1所示,计算机系统可包括存储设备142例如固态驱动器(SSD)和/或混合硬盘驱动器(HHD)。存储设备142可包括一个或多个存储单元132-140,例如SSD中的闪存芯片和/或阵列(例如,独立磁盘冗余阵列(RAID))中的磁盘。
存储设备142可为计算机系统中的主机100存储数据。如图1所示,主机100可包括处理器110和存储器120。此外,主机100可通过经由总线130与用于存储设备142的存储设备控制器122通信,而在存储单元132-140上读取和写入数据。例如,处理器110可通过经由总线130将对于数据的请求发送至存储设备控制器122来获得存储在存储设备142上的数据。存储设备控制器122可通过从一个或多个存储单元132-140读取数据并将所述数据经由总线130传输至处理器110和/或存储器120中的一个或多个位置来处理所述请求。
本领域的技术人员将会知道,主机100与存储设备142之间的数据传输速率可受到延迟和/或总线130的带宽的限制。例如,总线130可对应于将数据从存储设备142以最高至6Gb/s的速率串行地传输至主机100的串行高级技术附件(SATA)总线。然而,经由总线130的数据传输速率可受到8b/10b编码开销的限制,并且在数据的传输之前还受到数据的错误校正和/或检测的限制。因此,数据可能在存储设备142与主机100之间以550MB/s或更低的有效吞吐量传输。
另一方面,存储设备控制器122可通过对多个存储单元132-140执行数据分条和/或交叉来增加存储设备142的速度。继而,存储设备控制器122可在存储单元132-140上并行地执行读取和写入操作,从而达到超过总线130的数据传输速率的有效读写速度。换句话讲,总线130可代表主机100与存储设备142之间的数据传输中的瓶颈。
在一个或多个实施例中,图1的系统通过减少总线130的延迟而方便了主机100与存储设备142之间的数据传输。例如,如下文相对于图2更详细讨论的那样,存储设备控制器122可通过在一旦从存储单元132-140中读取数据块后就将数据的数据块传输至主机100的方式,来处理来自主机100的对数据的请求。这样,存储设备控制器122可将新读取的数据块经由接口(例如外围组件快速互连(PCIe)接口)的一条或多条通道发送至存储器120。
在一个或多个实施例中,图1的系统还可通过增加总线130的带宽来方便主机100与存储设备142之间的数据传输。例如,存储设备控制器122可利用128b/130b编码来降低与经由接口的数据传输相关的开销。
当新读取的数据块被传输至主机100时,存储设备控制器122可对数据块同步执行错误检测。如果在数据块中检测到错误,则存储设备控制器122可在其他数据块正传输至主机100的同时执行错误校正以移除错误。一旦移除了错误,存储设备控制器122便可将数据块以无序的方式(例如,在一个或多个新读取的数据块已传输之后)重新传输至主机100。在所有数据块已无误地传输至主机之后,存储设备控制器122可将完成信号发送至主机以完成请求。通过同时地经由高速接口发送数据块以及执行对数据块的错误控制,存储设备控制器122可降低从存储设备142到主机100的数据传输的延迟。
图2示出了根据实施例的从存储设备142到主机100的数据传输。数据传输可由来自主机100的请求发起以读取存储设备142上的一组数据块212-218。然后,请求可经由接口200发送并由存储设备控制器122中的通信机构202接收。例如,请求可经PCIe接口从主机100中的根联合体发送至存储设备控制器122中的PCIe设备。
为处理请求,存储设备控制器122可从存储设备142中的一个或多个存储单元(例如,闪存芯片、磁盘等)读取数据块212-218。例如,存储设备控制器122可对SSD的多个闪存芯片上的数据块212-218进行分条和/或交叉。在数据块212-218的随后的读取期间,存储设备控制器122可通过为每个数据块并行地从闪存芯片中检索数据来增加与存储设备142相关的读取速度。
一旦数据块被读取,通信机构202便可将数据块经由接口200传输至主机100。例如,通信机构202可通过经由PCIe接口下发一组写入命令来传输所述数据块,所述写入命令包含用于数据块的数据。写入命令可由主机100中的根联合体接收,转发至存储器控制器,并且被存储器控制器用于更新主机100中的存储器(例如,图1的存储器120)的对应数据块220-226。
在数据块正传输至主机100的同时,存储设备控制器122中的错误检测设备204可对数据块执行错误检测。例如,错误检测设备204可检查添加至数据块的冗余数据(例如里德所罗门码和/或其他错误校正代码(ECC))以确定数据块是否包含错误。如果数据块不含错误且成功地传输至主机100,则存储设备控制器122可结束读取以及传输数据块。
然而,如果错误检测设备204在数据块中检测到一个或多个错误,则存储设备控制器122中的错误校正设备206可对数据块执行错误校正以移除错误。例如,错误校正设备206可检查冗余数据以定位错误并校正错误值。在错误校正设备206将错误从数据块移除的同时,通信机构202可继续将从存储设备142读取的其他数据块传输至主机100,并且错误检测设备204可对数据块执行错误检测。由于新读取的数据块的传输不依赖于针对先前读取的数据块的错误控制的完成,因此错误校正设备206可利用更强的ECC来校正先前读取的数据块中的错误,而无需显著地增加数据块从存储设备142到主机100的传输的延迟。
在错误校正设备206已将错误从数据块移除之后,通信机构202可将数据块重新传输至主机100,以方便从存储设备142到主机100的准确的数据传输。由于在数据块重新传输之前其他数据块可被传输至主机100,因此数据块可以无序的方式重新传输。例如,存储设备控制器122可以升序从存储设备142读取数据块212-218。当数据块212经由接口200(例如,PCIe接口)传输至主机100并且写入至数据块220时,错误检测设备204可检测数据块212中的错误。然后,错误校正设备206可在数据块214-218传输至主机100并且无误地写入至数据块222-226的同时,对数据块212执行错误校正。最后,在错误从数据块212中被移除并且数据块214-218已成功传输至主机100之后,数据块212可被重新传输至主机100并用于覆盖数据块220中的错误数据。
存储设备控制器122中的错误跟踪设备208还可跟踪已在数据块内检测到的错误。在错误校正期间,错误跟踪设备208可将数据块添加至数据结构210例如队列和/或链表。在所有错误已从数据块移除之后(例如,在错误检测设备204与错误校正设备206之间的一次或多次迭代之后),错误跟踪设备208可从数据结构210移除该数据块。因此,错误跟踪设备208可对已无误地传输至主机100并且在已对数据块执行错误校正之后需要重新传输至主机100的数据块的列表予以保持。
继而,错误跟踪设备208可被存储设备控制器122用于跟踪请求的完成状态。例如,存储设备控制器122可保持由主机100请求的数据块212-218的单独列表。当每个数据块被读取并传输至主机100时,存储设备控制器122可从列表移除数据块。另一方面,如果错误检测设备204在数据块中检测到错误,则数据块可被添加至数据结构210。在所有数据块212-218已被读取并传输至主机100之后,列表可被清空,同时数据结构210可包含需要重新传输至主机100的数据块。然后,在错误从数据块移除并且数据块被无误地重新传输至主机100后,数据块可从数据结构210移除。一旦列表和数据结构210均为空(例如,在所有数据块212-218已无误地传输至主机100之后),存储设备控制器122便可将完成信号发送至主机100以完成请求。
因此,存储设备控制器122可利用并行、无序的数据传输和/或经由接口200的重复的数据传输,来提高主机100与存储设备142之间的通信。首先,存储设备控制器122可通过同时从存储设备142中的多个存储单元读取数据并且经由接口200的多条通道并行地发送数据来增加对主机100的数据传输的带宽。接着,存储设备控制器122可同时地将数据块传输至主机100并执行对数据块的错误检测和/或校正,从而降低在已执行错误控制之后与对主机100的数据传输相关的延迟。最后,在已检测到错误并将其从数据块移除之后,存储设备控制器122可重复以无序的方式对主机100的数据块的传输,以向主机100提供来自存储设备142的无误数据。
本领域的技术人员将会知道,存储设备控制器122可以各种方式实现。例如,通信机构202、错误检测设备204、错误校正设备206和错误跟踪设备208可由单个电路和/或组件提供。作为另外一种选择,存储设备控制器122可利用集成组件和分立组件的其他组合,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器和/或微处理器。此外,存储设备控制器122可配置为对各种存储设备(包括SSD、HHD和/或其他类型的旋转式存储设备和/或非旋转式存储设备)执行读取和写入。
图3示出了流程图,该流程图示出了根据实施例的将数据从存储设备传输至主机的过程。在一个或多个实施例中,可省略、重复和/或以不同的顺序执行这些步骤中的一个或多个。因此,图3所示步骤的具体排列不应被理解为对实施例的范围加以限制。
首先,接收来自主机的读取一组数据块的请求(操作302)。主机可包括计算机系统中的处理器和/或存储器。接着,在从存储设备读取数据块时经由与主机的接口来传输数据块(操作304)。例如,可从SSD中的一组闪存芯片中并行地读取数据块,并将数据块经由PCIe接口的一条或多条通道传输至根联合体。根联合体可将数据块转发至存储器控制器,并且存储器控制器可将数据块写入至主机上的存储器。
在将数据块传输至主机时,还同时地对数据块执行错误检测(操作306)以检测数据块中的错误(操作308)。如果在数据块中未检测到错误,则针对数据块的处理可在将数据块传输至主机之后完成。如果检测到错误,则对数据块执行错误校正以移除所述错误(操作310)。此外,跟踪数据块的错误校正(操作312)。例如,可在错误校正期间将数据块添加至数据结构。在所有错误已从数据块移除之后,可将数据块从数据结构移除。在已对数据块执行错误校正之后,以无序的方式(例如,在随后的数据块已传输至主机之后)将数据块重新传输至主机(操作314)。
可继续对主机的数据块传输(操作316)。例如,可继续传输数据块,直到已将所有被请求的数据块无误地传输至主机。如果数据块传输将继续,则将每个新读取的数据块传输至主机(操作304),并且同时地对数据块执行错误检测(操作306)以检测数据块中的错误(操作308)。如果检测到错误,则对数据块执行错误校正(操作310)并跟踪错误校正(操作312),并且随后在将错误从数据块移除之后将数据块重新传输至主机(操作314)。最后,在所有数据块已无误地传输至主机之后,将完成信号发送至主机(操作318)以终结对请求的处理。
图4示出了根据实施例的计算机系统400。计算机系统400可对应于一种设备,该设备包括处理器402、存储器404、存储设备406和/或见于电子计算设备中的其他组件。处理器402可支持与计算机系统400中其他处理器的并行处理和/或多线程操作。计算机系统400还可包括输入/输出(I/O)设备,例如键盘408、鼠标410和显示器412。
计算机系统400可包括用于执行本实施例的各个组件的功能。具体地讲,计算机系统400可包括操作系统(未示出)以及为用户执行专门任务的一个或多个应用程序,所述操作系统协调计算机系统400上的硬件资源和软件资源的使用。为了为用户执行任务,应用程序可从操作系统中获得计算机系统400上的硬件资源的使用,以及通过由所述操作系统提供的硬件和/或软件框架与用户进行交互。
在一个或多个实施例中,计算机系统400提供用于将数据从存储设备传输至主机的系统。该系统可包括通信机构,所述通信机构接收来自主机的读取一组数据块的请求。接着,在从存储设备读取来自所述一组数据块中的每个数据块时,通信机构可经由与主机的接口来传输数据块。该系统还可包括在读取数据块时对数据块执行错误检测的错误检测设备,以及如果在数据块中检测到错误则对数据块执行错误校正的错误校正设备。然后,在将错误从数据块移除之后,通信机构可将数据块重新传输至主机。
该系统还可包括错误跟踪设备,该错误跟踪设备跟踪已在数据块内检测到的错误。例如,错误跟踪设备可将包含错误的每个数据块添加至数据结构。在将错误从数据块移除之后,错误跟踪设备可将数据块从数据结构移除。最后,在所有数据块已无误地传输至主机之后(例如,在数据结构已被清空之后),通信机构可将完成信号发送至主机以完成对主机的数据传输。
此外,计算机系统400的一个或多个组件可远程地定位并经由网络连接至其他组件。本实施例的一些部分(例如,通信机构、错误检测设备、错误校正设备、错误跟踪设备等)还可位于实现所述实施例的分布式系统的不同节点上。例如,本实施例可使用云计算系统来实现,该云计算系统在远程存储设备与主机之间传输数据。
各实施例的上述描述仅用于举例说明和描述的目的。这些描述不应认为是穷举性的或将本发明限制为所公开的形式。因此,对于本领域的技术人员而言,许多修改形式和变型形式将是显而易见的。此外,上述公开并非旨在限制本发明。

Claims (18)

1.一种用于将数据从存储设备传输至主机的方法,所述方法包括:
从所述主机接收以第一次序读取一组数据块的请求;
在从所述存储设备读取来自所述一组数据块中的每个数据块时:
经由接口向所述主机传输所述数据块,以及
对所述数据块同步执行错误检测,同时通过所述接口传输数据块,其中执行错误检测包括:
确定是否在所述数据块中检测到错误,
响应于确定在所述数据块中检测到错误,对所述数据块执行错误校正以移除所述错误,同时将其它没有错误的数据块以不同于所述第一次序的第二次序传输至所述主机,
跟踪所述数据块的所述错误校正,以及
在将所述错误从所述数据块移除之后将所述数据块传输至所述主机;以及
在所述数据块已无误地传输至所述主机之后将完成信号发送至所述主机。
2.根据权利要求1所述的方法,其中跟踪所述数据块的所述错误校正包括:
将所述数据块添加至数据结构;以及
在将所述错误从所述数据块移除之后,将所述数据块从所述数据结构移除。
3.根据权利要求1所述的方法,其中当针对给定数据块检测到错误时,在将所述错误从所述数据块移除之后将所述数据块传输至所述主机使所述主机将所述数据块写入到原始传输到所述主机的对应错误数据块中。
4.根据权利要求1所述的方法,其中所述一组数据块经由所述接口的一条或多条通道传输至所述主机。
5.根据权利要求1所述的方法,其中所述接口为外围组件快速互连(PCIe)接口。
6.根据权利要求1所述的方法,其中所述存储设备是非旋转式存储设备。
7.根据权利要求1所述的方法,还包括:对所述存储设备中的多个存储单元上的数据进行交叉以增加所述存储设备的速度。
8.根据权利要求1至7中任一项所述的方法,还包括:对来自所述存储设备的数据进行分条以增加所述存储设备的速度。
9.一种用于将数据从存储设备传输至主机的系统,包括:
通信机构,所述通信机构配置为:
从所述主机接收以第一次序读取一组数据块的请求;以及
在从所述存储设备读取所述数据块时通过接口向所述主机传输来自所述一组数据块中的每个数据块;
错误检测设备,所述错误检测设备配置为在读取所述数据块并在所述数据块中检测到错误时,对所述数据块执行错误校正,同时将其它没有错误的数据块以不同于所述第一次序的第二次序传输至所述主机;
错误跟踪设备,所述错误跟踪设备配置为跟踪具有错误的数据块的所述错误校正;以及
错误校正设备,所述错误校正设备配置为对所述具有错误的数据块执行错误校正,其中所述通信机构还配置为在将所述错误从所述数据块移除之后将所述数据块传输至所述主机,以及所述通信机构还配置为在所述一组数据块已无误地传输至所述主机之后将完成信号发送至所述主机。
10.根据权利要求9所述的系统,其中跟踪所述数据块上的所述错误校正包括:
将所述数据块添加至数据结构;以及
在将所述错误从所述数据块移除之后,将所述数据块从所述数据结构移除。
11.根据权利要求9所述的系统,其中当针对给定数据块检测到错误时,在将所述错误从所述数据块移除之后将所述数据块传输至所述主机使所述主机将所述数据块写入到原始传输到所述主机的对应错误数据块中。
12.根据权利要求9所述的系统,其中所述一组数据块经由所述接口的一条或多条通道传输至所述主机。
13.根据权利要求9所述的系统,其中所述接口为外围组件快速互连(PCIe)接口。
14.根据权利要求9所述的系统,还包括存储设备控制器,所述存储设备控制器配置为通过从所述存储设备中的多个存储单元读取所述数据来增加对所述主机的所述数据传输的带宽。
15.根据权利要求14所述的系统,其中所述存储设备控制器还包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器和微处理器中的至少一者。
16.根据权利要求14所述的系统,其中所述存储设备控制器配置为对来自所述存储设备的数据进行分条以增加所述存储设备的速度。
17.根据权利要求14所述的系统,其中所述存储设备控制器配置为对所述存储设备中的所述多个存储单元上的数据进行交叉以增加所述存储设备的速度。
18.根据权利要求9至17中任一项所述的系统,还包括:
串行总线,所述串行总线配置为发送来自所述主机的读取一个数据组的数据块的请求并且配置为经由接口而传输来自所述一组数据块中的每个数据块。
CN201280041033.XA 2011-09-02 2012-08-28 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制 Active CN103748561B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/224,714 US8656251B2 (en) 2011-09-02 2011-09-02 Simultaneous data transfer and error control to reduce latency and improve throughput to a host
US13/224,714 2011-09-02
PCT/US2012/052713 WO2013033121A1 (en) 2011-09-02 2012-08-28 Simultaneous data transfer and error control to reduce latency and improve throughput to a host

Publications (2)

Publication Number Publication Date
CN103748561A CN103748561A (zh) 2014-04-23
CN103748561B true CN103748561B (zh) 2019-01-08

Family

ID=46801657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280041033.XA Active CN103748561B (zh) 2011-09-02 2012-08-28 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制

Country Status (9)

Country Link
US (2) US8656251B2 (zh)
EP (1) EP2751688A1 (zh)
JP (1) JP2014529132A (zh)
KR (1) KR101598726B1 (zh)
CN (1) CN103748561B (zh)
AU (1) AU2012302094B2 (zh)
BR (1) BR112014002172A2 (zh)
MX (1) MX2013015121A (zh)
WO (1) WO2013033121A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988800B1 (en) * 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices
JP5542787B2 (ja) * 2011-12-08 2014-07-09 シャープ株式会社 画像形成装置
MY180992A (en) 2013-03-13 2020-12-15 Intel Corp Memory latency management
US9323610B2 (en) 2014-01-30 2016-04-26 Sandisk Technologies Inc. Non-blocking commands
US9851901B2 (en) 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
KR102229024B1 (ko) 2014-12-03 2021-03-17 삼성전자주식회사 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
DE102015209033A1 (de) * 2015-05-18 2016-11-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Liefern einer Prüfantwort
US11588783B2 (en) * 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US20170141878A1 (en) * 2015-11-16 2017-05-18 Western Digital Technologies, Inc. Systems and methods for sending data from non-volatile solid state devices before error correction
US10768856B1 (en) * 2018-03-12 2020-09-08 Amazon Technologies, Inc. Memory access for multiple circuit components
CN114978441A (zh) * 2022-06-14 2022-08-30 四川禹明光电技术有限公司 一种用于光纤传感同步传输的监测校正系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351412B1 (en) * 1999-04-26 2002-02-26 Hitachi, Ltd. Memory card
EP1286359A2 (en) * 2001-08-23 2003-02-26 Fujitsu Limited Memory controller for multilevel cell memory
US20060248432A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for implementing processor bus speculative data completion
CN101004724A (zh) * 2006-01-18 2007-07-25 苹果电脑有限公司 用于闪速存储器的交错策略
US20100287446A1 (en) * 2009-05-06 2010-11-11 Apple Inc. Low Latency Read Operation for Managed Non-Volatile Memory
JP4609522B2 (ja) * 2008-04-24 2011-01-12 パナソニック株式会社 記憶装置
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57211177A (en) * 1981-06-23 1982-12-24 Hitachi Metals Ltd Picture reproducing device
JPS5819712A (ja) * 1981-07-29 1983-02-04 Hitachi Ltd デ−タ記録方式
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
US5490148A (en) * 1993-12-15 1996-02-06 Motorola, Inc. Bit error rate estimator
US5694262A (en) * 1994-01-31 1997-12-02 Fujitsu Ltd. Method and apparatus for transferring data and making on-the-fly correction of errors
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
JP4140344B2 (ja) * 2002-10-30 2008-08-27 日本ビクター株式会社 復号化装置及びコンピュータプログラム
JP2005141341A (ja) * 2003-11-05 2005-06-02 Hitachi Ltd メモリ制御装置、および、メモリ制御方法
WO2005076203A1 (ja) * 2004-02-03 2005-08-18 Matsushita Electric Industrial Co., Ltd. メモリカード及びデータ処理装置並びにメモリカードの制御方法及び設定方法
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
JP2010039779A (ja) * 2008-08-05 2010-02-18 Sony Corp リーダライタ、情報読み出し方法、通信システムおよび通信方法
US8639870B2 (en) * 2011-01-14 2014-01-28 Oracle International Corporation String searching within peripheral storage devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351412B1 (en) * 1999-04-26 2002-02-26 Hitachi, Ltd. Memory card
EP1286359A2 (en) * 2001-08-23 2003-02-26 Fujitsu Limited Memory controller for multilevel cell memory
US20060248432A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for implementing processor bus speculative data completion
CN101004724A (zh) * 2006-01-18 2007-07-25 苹果电脑有限公司 用于闪速存储器的交错策略
JP4609522B2 (ja) * 2008-04-24 2011-01-12 パナソニック株式会社 記憶装置
US20100287446A1 (en) * 2009-05-06 2010-11-11 Apple Inc. Low Latency Read Operation for Managed Non-Volatile Memory
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System

Also Published As

Publication number Publication date
US20130061111A1 (en) 2013-03-07
US9015557B2 (en) 2015-04-21
WO2013033121A1 (en) 2013-03-07
KR20140025595A (ko) 2014-03-04
AU2012302094A1 (en) 2014-01-16
KR101598726B1 (ko) 2016-02-29
EP2751688A1 (en) 2014-07-09
CN103748561A (zh) 2014-04-23
AU2012302094B2 (en) 2016-02-18
JP2014529132A (ja) 2014-10-30
MX2013015121A (es) 2014-03-31
US8656251B2 (en) 2014-02-18
US20140195872A1 (en) 2014-07-10
BR112014002172A2 (pt) 2017-03-01

Similar Documents

Publication Publication Date Title
CN103748561B (zh) 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制
US10545843B2 (en) Storage device with error recovery indication
US11095315B1 (en) Intelligent error correction in a storage device
US9342407B2 (en) Storage control apparatus and computer-readable recording medium recorded with control program
US11500707B2 (en) Controller, memory controller, storage device, and method of operating the controller
US11068337B2 (en) Data processing apparatus that disconnects control circuit from error detection circuit and diagnosis method
CN103034559B (zh) 基于rdma架构设计的pq检验模块及检验方法
CN113687978A (zh) 用于存储阵列控制器的数据处理方法
CN113687977A (zh) 基于raid控制器以实现计算性能提升的数据处理装置
US20150169254A1 (en) Firmware bypass for medium-access commands
US8589722B2 (en) Methods and structure for storing errors for error recovery in a hardware controller
US9690484B2 (en) Minimizing delay periods when accessing mirrored disks
US10733052B2 (en) Accelerated rebuilding of storage arrays
US9792167B1 (en) Transparent north port recovery
JP4439295B2 (ja) データ転送制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant