JP2017151955A - Systems and methods for sending data from non-volatile solid state devices before error correction - Google Patents
Systems and methods for sending data from non-volatile solid state devices before error correction Download PDFInfo
- Publication number
- JP2017151955A JP2017151955A JP2016223160A JP2016223160A JP2017151955A JP 2017151955 A JP2017151955 A JP 2017151955A JP 2016223160 A JP2016223160 A JP 2016223160A JP 2016223160 A JP2016223160 A JP 2016223160A JP 2017151955 A JP2017151955 A JP 2017151955A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- host
- data packets
- packet
- data packet
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Communication Control (AREA)
Abstract
Description
本開示は、不揮発性固体装置に格納されたデータの送信、特に誤り訂正の完了前にデータを送信するためのシステムおよび方法に関する。 The present disclosure relates to a system and method for transmitting data stored in a non-volatile solid state device, and in particular for transmitting data prior to completion of error correction.
不揮発性固体装置(SSDs)は、コンピュータシステムにおける一次および二次記憶用に広範に利用されている。相変化メモリ(PCM)、抵抗RAM(ReRAM)、および磁気RAM(MRAM)等、いくつかの不揮発性メモリのビット誤り率は動的読み出しアクセスメモリ(DRAM)のビット誤り率よりも高い場合があり得るが、NANDフラッシュメモリのビット誤り率よりも大幅に下げることができる。従って、これらの中間的ビット誤り率は、DRAMで用いる短いハミング符号よりも良好な誤り訂正を必要とする。このため、誤り訂正アルゴリズムを実行する場合、長い待ち時間が生じる恐れがある。例えば、全BCH符号(符号の発明者、Raj Bose、D.K.Ray−Chaudhuri、およびAlexis Hocquenghemの頭字語)等の誤り訂正符号(ECC)を例えば512Bブロックに対して実行する際に、記憶媒体からビットを読み出す時間の約半分の時間を要する場合がある。 Non-volatile solid state devices (SSDs) are widely used for primary and secondary storage in computer systems. The bit error rate of some non-volatile memories, such as phase change memory (PCM), resistive RAM (ReRAM), and magnetic RAM (MRAM), may be higher than that of dynamic read access memory (DRAM) However, the bit error rate of the NAND flash memory can be significantly reduced. These intermediate bit error rates therefore require better error correction than the short Hamming codes used in DRAM. For this reason, when executing an error correction algorithm, a long waiting time may occur. For example, when executing error correction codes (ECC) such as all BCH codes (acronyms of code inventor, Raj Bose, DK Ray-Chaudhuri, and Alexis Hocquechem) for 512B blocks, for example. It may take about half the time to read bits from the medium.
更に、例えば4kbの任意のブロックにおける誤りの確率は、大部分のブロックで誤りが生じないように充分に低くてよい。従って、大部分の読み出しにおいて、誤り訂正アルゴリズムによる待ち時間は無駄になる。また、従来のシステムは、非パイプライン化フローを実行しており、通常は、単一の512Bブロックを再構築するため全てのビットを記憶媒体から読み出し、次いでECCアルゴリズムを実行し、ECCアルゴリズムが完了した後でデータのホストへの送信を開始することができる。従って、ECCアルゴリズムが完了するまでブロックの送信は遅延する。 Furthermore, the probability of error in an arbitrary block of, for example, 4 kb may be sufficiently low so that no error occurs in most blocks. Therefore, the waiting time due to the error correction algorithm is wasted in most reading. Also, conventional systems perform a non-pipelined flow, and typically read all bits from the storage medium to reconstruct a single 512B block, then run the ECC algorithm, and the ECC algorithm Once complete, transmission of data to the host can begin. Thus, block transmission is delayed until the ECC algorithm is complete.
本開示は、通信プロトコルに従う動作を実行する方法およびシステムに関する。 The present disclosure relates to a method and system for performing operations according to a communication protocol.
一実施形態は、通信プロトコルでの動作を実行する方法を含んでいてよい。本方法は、ホストおよびメモリと通信状態にある目標装置を設けるステップと、目標装置により、複数のデータパケットをメモリから取得するリクエストを含む第1のコマンドをホストから受信するステップとを含んでいてよい。本方法はまた、目標装置により、複数のデータパケットをメモリから取得するステップと、目標装置により、各々のデータパケットが取得される都度、各々の取得されたデータパケットをホストに送信するステップとを含んでいてよい。本方法は更に、目標装置により、取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得するステップと、目標装置により、ECCアルゴリズムを実行して、取得された複数のデータパケットの潜在的な誤りを識別および訂正するステップとを含んでいてよい。本方法はまた、取得されたデータパケットのいずれかに誤りがある場合、目標装置により、訂正されたデータパケットをホストに送信するステップと、目標装置により、完了パケットをホストに送信するステップとを含んでいてよい。 One embodiment may include a method for performing operations on a communication protocol. The method includes providing a target device in communication with the host and the memory, and receiving by the target device a first command including a request to obtain a plurality of data packets from the memory. Good. The method also includes obtaining a plurality of data packets from the memory by the target device and transmitting each obtained data packet to the host each time each data packet is obtained by the target device. May contain. The method further includes the step of obtaining an error correction code (ECC) packet corresponding to the obtained plurality of data packets by the target device, and executing the ECC algorithm by the target device to obtain the obtained plurality of data packets. Identifying and correcting any potential errors. The method also includes the steps of: sending a corrected data packet to the host by the target device if any of the acquired data packets are in error; and sending a completion packet to the host by the target device. May contain.
代替的な一実施形態は、通信プロトコルでの動作を実行する方法を含んでいてよい。本方法は、ホストおよびメモリと通信状態にある目標装置を設けるステップと、目標装置により、複数のデータパケットをメモリから取得するリクエストを含む第1のコマンドをホストから受信するステップとを含んでいてよい。本方法はまた、目標装置により、複数のデータパケットをメモリから取得するステップと、目標装置により、各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットをホストに送信するステップとを含んでいてよい。本方法はまた、目標装置により、取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得するステップと、目標装置により、ECCアルゴリズムを実行して、取得された複数のデータパケットの潜在的な誤りを識別および訂正するステップとを含んでいてよい。本方法は更に、取得されたデータパケットのいずれかに誤りがある場合、目標装置により、訂正されたデータパケットをホストに送信するステップと、目標装置により、最後に取得されたデータパケットを送信するステップとを含んでいてよい。 An alternative embodiment may include a method for performing operations on a communication protocol. The method includes providing a target device in communication with the host and the memory, and receiving by the target device a first command including a request to obtain a plurality of data packets from the memory. Good. The method also includes the step of acquiring a plurality of data packets from the memory by the target device and each acquired data excluding the last acquired data packet each time each data packet is acquired by the target device. Sending the packet to the host. The method also includes obtaining an error correction code (ECC) packet corresponding to the obtained plurality of data packets by the target device, and executing an ECC algorithm by the target device to obtain the obtained plurality of data packets. Identifying and correcting any potential errors. The method further includes the step of transmitting the corrected data packet to the host by the target device if any of the acquired data packets are in error, and transmitting the last acquired data packet by the target device. Steps may be included.
代替的な一実施形態は、通信プロトコルでの動作を実行するメモリコントローラを含んでいてよい。メモリコントローラは、ホストおよびメモリと通信状態にあって、メモリから複数のデータパケットを取得するリクエストを含む第1のコマンドをホストから受信すべく構成されたインターフェースコントローラと、ストレージコントローラとを含んでいてよい。ストレージコントローラは、複数のデータパケットをメモリから取得して、各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットをホストに送信するようインターフェースコントローラに命令すべく構成されていてよい。ストレージコントローラは更に、取得された複数のデータパケットに対応する誤り訂正符号化(ECC)パケットを取得すると共に、ECCアルゴリズムを実行して、取得された複数のデータパケットの潜在的な誤り識別および訂正すべく構成されていてよい。ストレージコントローラは更に、取得されたデータパケットのいずれかに誤りがある場合、訂正されたデータパケットをホストに送信するようインターフェースコントローラに命令すると共に、最後に取得されたデータパケットを送信するようインターフェースコントローラに命令すべく構成されていてよい。 An alternative embodiment may include a memory controller that performs operations with a communication protocol. The memory controller includes an interface controller configured to receive a first command from the host that is in communication with the host and the memory and includes a request to obtain a plurality of data packets from the memory, and a storage controller. Good. The storage controller acquires a plurality of data packets from the memory, and each time each data packet is acquired, the storage controller sends each acquired data packet to the host except for the last acquired data packet. It may be configured to command. The storage controller further acquires an error correction coding (ECC) packet corresponding to the acquired plurality of data packets and executes an ECC algorithm to identify and correct potential errors in the acquired plurality of data packets. It may be configured as desired. The storage controller further directs the interface controller to send the corrected data packet to the host if any of the acquired data packets are in error, and sends the last acquired data packet to the interface controller. May be configured to command.
代替的な一実施形態は、通信プロトコルでの動作を実行するメモリコントローラを含んでいてよい。メモリコントローラは、ホストおよびメモリと通信状態にあって、メモリから複数のデータパケットを取得するリクエストを含む第1のコマンドをホストから受信すべく構成されたインターフェースコントローラと、ストレージコントローラとを含んでいてよい。ストレージコントローラは、複数のデータパケットをメモリから取得すると共に、各々の取得されたデータパケットに対して誤り検出アルゴリズムを実行して、取得されたデータパケットが誤りを含んでいるか否かを判定すべく構成されていてよい。ストレージコントローラは更に、インターフェースコントローラに対し、各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットをホストに送信するよう命令し、取得された複数のデータパケットに対応する誤り訂正符号パケットを取得し、ECCアルゴリズムを実行して、取得された複数のデータパケットの潜在的な誤りを識別および訂正すべく構成されていてよい。ストレージコントローラは更に、取得されたデータパケットのいずれかに誤りがある場合、訂正されたデータパケットをホストに送信するようインターフェースコントローラに命令すると共に、最後に取得されたデータパケットを送信するようインターフェースコントローラに命令すべく構成されていてよい。 An alternative embodiment may include a memory controller that performs operations with a communication protocol. The memory controller includes an interface controller configured to receive a first command from the host that is in communication with the host and the memory and includes a request to obtain a plurality of data packets from the memory, and a storage controller. Good. The storage controller acquires a plurality of data packets from the memory and executes an error detection algorithm for each acquired data packet to determine whether the acquired data packet contains an error. It may be configured. The storage controller further instructs the interface controller to send each acquired data packet to the host, except for the last acquired data packet, for each acquired data packet. An error correction code packet corresponding to the data packet may be obtained and an ECC algorithm may be executed to identify and correct potential errors in the obtained plurality of data packets. The storage controller further directs the interface controller to send the corrected data packet to the host if any of the acquired data packets are in error, and sends the last acquired data packet to the interface controller. May be configured to command.
本開示の各種の目的、特徴、および利点は、同一要素には同一参照番号が付与された添付図面を参照しながら以下の詳細な記述を精査することにより理解が深まろう。添付図面は例示目的に過ぎず、請求項により範囲を規定する本発明を一切限定するものではない。 Various objects, features and advantages of the present disclosure will be better understood by reviewing the following detailed description with reference to the accompanying drawings, in which like elements are given like reference numerals. The accompanying drawings are for illustrative purposes only and do not in any way limit the invention as defined by the claims.
不揮発性メモリに格納されたデータを送信するシステムおよび方法を提供する。データパケットは、誤り訂正を実行する前に不揮発性メモリから取得されたならば、ホストに送信することができる。1ブロックの全てのデータパケットが不揮発性メモリから取得されたならば、誤り訂正を実行することができる。取得されたデータパケットのいずれかに誤りがある場合、訂正してホストに再送信することができる。 Systems and methods for transmitting data stored in non-volatile memory are provided. If the data packet is obtained from non-volatile memory before performing error correction, it can be sent to the host. If all the data packets in one block are obtained from the non-volatile memory, error correction can be performed. If any of the acquired data packets are in error, it can be corrected and retransmitted to the host.
図1は、本開示の複数の実施形態による、通信プロトコルを実行する例示的なシステム100を示す。システム100は、目標装置104およびストレージ122と通信状態にあるホスト102を含んでいる。ホスト102は、ユーザーアプリケーション106、オペレーティングシステム108、ドライバ110、ホストメモリ112、待ち行列118a、および通信プロトコル114aを含んでいる。目標装置104は、インターフェースコントローラ117、通信プロトコル114b、待ち行列118b、およびストレージ122と通信状態にあるストレージコントローラ120を含んでいる。
FIG. 1 illustrates an
ホスト102は、オペレーティングシステム108上でユーザーレベルアプリケーション106を実行することができる。オペレーティングシステム108は、ホストメモリ112とのインターフェースを提供するドライバ110を動作させることができる。いくつかの実施形態において、メモリ112はDRAMであってよい。ホストメモリ112は、待ち行列118aを用いて、目標装置104に処理を指示するホスト102からのコマンドを格納することができる。格納または待ち行列に追加されたコマンドの例として、ホスト102から読み出しまたは書き込み動作を含んでいてよい。通信プロトコル114aにより、ホスト102はインターフェースコントローラ117を用いて目標装置104と通信可能になる。 Host 102 may execute user level application 106 on operating system 108. The operating system 108 can run a driver 110 that provides an interface with the host memory 112. In some embodiments, the memory 112 may be a DRAM. The host memory 112 can store a command from the host 102 that instructs the target device 104 to perform processing using the queue 118a. Examples of commands added to the store or queue may include read or write operations from the host 102. The communication protocol 114 a allows the host 102 to communicate with the target device 104 using the interface controller 117.
目標装置104は、インターフェースコントローラ117および通信プロトコル114bを用いてホスト102と通信可能である。通信プロトコル114bは、ストレージコントローラ120を介してストレージ122にアクセスするための待ち行列118を設けることができる。例えば、ユーザーレベルアプリケーション106は、データ取得のためストレージ122へのアクセスリクエストを生成することができる。目標装置104は、ストレージ122からメモリブロックが取得された場合に誤りを訂正する誤り訂正符号を実行することができる。 The target device 104 can communicate with the host 102 using the interface controller 117 and the communication protocol 114b. The communication protocol 114 b can provide a queue 118 for accessing the storage 122 via the storage controller 120. For example, the user level application 106 can generate an access request to the storage 122 for data acquisition. The target device 104 can execute an error correction code that corrects an error when a memory block is obtained from the storage 122.
上述のように、全BCH符号等の誤り訂正符号を例えば512Bブロックで実行するには、ストレージ122からデータを読み出す時間の約半分の時間を消費する場合がある。従来のシステム、例えば非パイプライン化フローを実行するシステム等は通常、1ブロックを再構築するため全てのビットを記憶媒体から読み出し、次いでECCアルゴリズム実行し、ECCアルゴリズムが完了した後で訂正されたデータのホストへの送信を開始することができる。これを図2Aの200で一般的に示し、パケット、例えば4個のパケット202を記憶媒体からホストに送信する例示的な方法を示す。特定の例において、システムは、最初にパケット202およびECCパケット204を読み出し、次いで誤り訂正アルゴリズム206を実行していずれかのパケットに誤りがあるか否かを判定して、誤りが検出されたならば訂正する。システムは次いで、4個ブロックおよび転送が完了した旨を通知する終了パケット208をホストに送信することができる。当業者には、ECCビットは、訂正スキームの設計により当該ビットが媒体上に配置された仕方に依存して複数のパケットであり得ることが理解されよう。
As described above, in order to execute an error correction code such as all BCH codes in, for example, a 512B block, about half of the time for reading data from the storage 122 may be consumed. Conventional systems, such as systems that perform non-pipelined flows, typically read all bits from the storage medium to reconstruct a block, then run the ECC algorithm and are corrected after the ECC algorithm is complete You can start sending data to the host. This is indicated generally at 200 in FIG. 2A and illustrates an exemplary method of transmitting packets, eg, four
本開示の複数の態様によれば、誤り訂正アルゴリズムを実行する前に、記憶媒体からデータパケットがホストに送信される。これを図2Bの210で一般的に示す。開示するシステムおよび方法は最初にパケット202を取得する。各パケットは、記憶媒体から取得される都度、ホストに送信される。例えば、第1のパケットが取得された場合、ホストに送信される(212)。第2のパケットが取得された場合も、同様にホストに送信される(214)。当該動作は、記憶媒体から全てのパケット202が取得されるまで続けられる。全てのパケットが取得された後で、ECCパケット204が読みだされて誤り訂正アルゴリズム206が実行される。アルゴリズムが誤りを一切検出しなかった場合、終了パケット208が送信されて転送が完了した旨をホストに通知する。図2Bに示すように、開示する方法では、記憶装置から取得されたデータパケットに誤りが無い最も一般的な場合に、待ち時間を大幅に節約できる(216)。例えば、待ち時間の節約は、全てのデータパケットをホストに送信するために要する時間にほぼ等しい。
According to aspects of the present disclosure, a data packet is transmitted from the storage medium to the host prior to executing the error correction algorithm. This is generally indicated at 210 in FIG. 2B. The disclosed system and method first obtains the
開示するシステムおよび方法では、記憶媒体から取得されたデータが誤りを含んでいる場合でも待ち時間の節約ができることになる。一般に図2Cの220に、取得されたデータパケットに誤りがある場合にデータパケットをホストに送信する際の待ち時間の節約を示す。具体的には、図に示す例において、第2のデータパケット218は誤りを含んでいる。開示する方法ではパケットがホストに送信される前に誤り検出および訂正アルゴリズムが完了するまで待たないため、誤りがあるパケット218がホストで受信される。誤りが検出された(206)場合、誤りがあるデータパケット218は訂正され、正しいデータパケット220がホストに再送信される。誤りがある複数のパケットが記憶媒体から取得された場合、誤りがある全てのパケットが訂正されてホストに送信される。次いで転送が完了した旨をホストに通知する終了パケット208が送信される。図2Cにも示すように、開示する方法では、たとえ記憶装置から取得されたデータパケットに誤りがある、例えば取得されたデータに1個の誤りがある(224)場合でも、待ち時間を大幅に節約できる。
The disclosed system and method can save latency even if the data obtained from the storage medium contains errors. In general, 220 in FIG. 2C illustrates the latency savings in transmitting a data packet to the host if the acquired data packet is in error. Specifically, in the example shown in the figure, the
図3Aは、従来のシステムの非パイプライン化フローの代替的な実施例を示す。具体的には、一般に図3Aの300に、別々の完了パケットを送信することなく、パケット、例えば4個のパケット302を記憶媒体からホストに送信する例示的な別の仕方を示す。特定の例において、システムは最初に、パケット302およびECCパケット304を取得し、次いで誤り訂正アルゴリズム306を実行していずれかのパケットに誤りがあるか否かを判定して、誤りが検出されたならば訂正する。次いでシステムは、4個のブロックをホストに送信することができる。最後のパケット308はまた、転送が完了した旨をホストに通知可能な完了パケットとしても機能することができる。他の完了検出手順を優先して完了信号を除去し得る例示的なプロトコルが、例えば2014年8月22日出願の(特許文献1)“Ack−less protocol for noticing completion of read requests”および2014年9月18日出願の(特許文献2)“Acknowledgement−less protocol for solid state drive interface”に記述されており、共にその内容の全文を本明細書に引用している。
FIG. 3A shows an alternative embodiment of the non-pipelined flow of a conventional system. In particular, generally 300 of FIG. 3A illustrates another exemplary way of sending a packet, eg, four
本開示の代替的な複数の態様によれば、完了パケットを送信することなく、誤り訂正アルゴリズムを実行する前に、記憶媒体からのデータパケット302をホストに送信することができる。これを図3Bの310で一般的に示す。開示するシステムおよび方法は最初にパケット302を取得する。各パケットが記憶媒体から取得される都度、ホストに送信される。例えば、第1のパケット312が取得された場合、ホストに送信される。第2のパケット314が取得された場合も、同様にホストに送信される。開示の複数の態様によれば、誤りの検出および訂正アルゴリズムが実行されるまで、最後のパケット308はホストに送信されない。具体的には、ECCパケット304が記憶媒体から取得された後で、ECCアルゴリズムが実行される(306)。誤りが検出されなかった場合、最後のパケット308がホストに送信される。最後のパケット308がホスト側で受信された場合、転送が完了した旨をホストに通知することができる。図3Bに示すように、開示する方法では、記憶装置から取得されたデータパケットに誤りが無い最も一般的な場合、待ち時間を大幅に節約できる(316)。
According to alternative aspects of the present disclosure, the
図3Cの220で一般的に、データパケットに誤りがあり、且つ完了パケットが無い場合にデータパケットをホストに送信する際の待ち時間の節約を示す。具体的には、図に示す例において、第2のデータパケット314は誤りを含んでいる。開示する方法は誤りの検出、およびパケットがホストに送信される前に訂正アルゴリズムが完了するのを待たないため、誤りがある第2のパケット314がホスト側で受信される。本開示の複数の態様によれば、誤りの検出および訂正アルゴリズムが実行されるまで最後のパケット308は送信されない。第2のパケット314に誤りが検出された場合、誤りがあるデータパケット314が訂正され(306)、正しいデータパケットがホストに再送信される(316)。訂正パケット316が送信された後で、本方法は最後のデータパケット308を送信することができる。最後のパケット308がホスト側で受信された場合、転送が完了した旨をホストに通知することができる。当業者には、取得された最後のデータパケットに誤りがある場合、訂正されたデータパケットがホストに送信されることが理解されよう。図3Cに示すように、開示する方法では、たとえ記憶装置から取得されたデータパケットに誤りがある、例えば取得されたデータに1個の誤りがある(324)場合でも、待ち時間を大幅に節約できる。
220 of FIG. 3C generally illustrates latency savings in transmitting a data packet to the host when the data packet is in error and there is no completion packet. Specifically, in the example shown in the figure, the
本開示の代替的な複数の態様によれば、誤りが検出された後で、誤って取得されたパケットのサブセットだけ、例えば誤りを含んでいるサブセットだけがホストに再送信される。サブセットがホスト側で受信された場合、パケットの適当な部分を上書きすることができる。 According to alternative aspects of the present disclosure, after an error is detected, only a subset of the packets that were acquired in error, eg, only the subset that contains the error, are retransmitted to the host. If a subset is received at the host side, the appropriate part of the packet can be overwritten.
開示の代替的な複数の態様によれば、データパケットが記憶媒体から取得された場合、誤り検出アルゴリズム、例えば症状確認(誤りがあるビットの個数を示す値を返す多項式の計算)が実行され、取得されたデータパケットに誤りがあるか否かが判定される。取得された全てのパケットに誤りが無い場合、それ以上ECCアルゴリズムは実行されない。 According to alternative aspects of the disclosure, when a data packet is obtained from a storage medium, an error detection algorithm, such as symptom confirmation (calculation of a polynomial that returns a value indicating the number of bits with errors), is performed, It is determined whether there is an error in the acquired data packet. If there is no error in all the acquired packets, the ECC algorithm is not executed any more.
図4は、本開示の複数の態様による、データパケットをホストに送信する例示的な方法のフロー図400を示す。メモリコントローラが、複数のデータパケットをメモリから取得することができる(402)。メモリコントローラがデータパケットを取得した場合、ホストに送信する(404)。メモリコントローラはまた、取得されたデータパケットに対応するECCパケットを取得することができる(406)。ECCパケットを取得したならば、メモリコントローラは、ECCアルゴリズムを実行して、取得されたデータパケットにおける潜在的な誤りを識別および訂正することができる(408)。本方法は次いで、取得されたデータパケットに誤りがあるか否かを調べることができる(410)。誤りが検出されなかった場合、メモリコントローラは完了パケットをホストに送信することができる(412)。取得されたデータに誤りがある場合、メモリコントローラはホストに、訂正されたデータパケットを送信し(414)、次いで完了パケットを送信することができる(412)。 FIG. 4 shows a flow diagram 400 of an exemplary method for transmitting a data packet to a host in accordance with aspects of the present disclosure. A memory controller can obtain a plurality of data packets from memory (402). When the memory controller acquires the data packet, it transmits it to the host (404). The memory controller may also obtain an ECC packet corresponding to the obtained data packet (406). Once the ECC packet is acquired, the memory controller can execute an ECC algorithm to identify and correct potential errors in the acquired data packet (408). The method may then check whether the acquired data packet is in error (410). If no error is detected, the memory controller can send a completion packet to the host (412). If there is an error in the acquired data, the memory controller can send a corrected data packet to the host (414) and then send a completion packet (412).
図5は、本開示の代替的な複数の態様による、データパケットをホストに送信する例示的な方法のフロー図500を示す。メモリコントローラは、複数のデータパケットをメモリから取得することができる(502)。メモリコントローラがデータパケットを取得した場合、最後に取得されたデータパケットを除いて、各パケットをホストに送信することができる(504)。メモリコントローラはまた、取得されたデータパケットに対応するECCパケットを取得することができる(506)。ECCパケットを取得したならば、メモリコントローラは、ECCアルゴリズムを実行して、取得されたデータパケット508における潜在的な誤りを識別および訂正することができる。本方法は次いで、取得されたデータパケット510に誤りがあるか否かを調べることができる。誤りが検出されなかった場合、メモリコントローラは、最後に取得されたパケットをホスト512に送信することができる。取得されたデータに誤りがある場合、メモリコントローラはホストに対し、訂正されたデータパケット514、次いで最後に取得されたパケット512を送信することができる。
FIG. 5 shows a flow diagram 500 of an exemplary method for sending a data packet to a host in accordance with alternative aspects of the present disclosure. The memory controller can obtain a plurality of data packets from the memory (502). When the memory controller acquires the data packet, each packet can be transmitted to the host except for the data packet acquired last (504). The memory controller can also obtain an ECC packet corresponding to the obtained data packet (506). Once the ECC packet is acquired, the memory controller can execute an ECC algorithm to identify and correct potential errors in the acquired
当業者には、ここに記述する明細書本文および図面における各種の例示的項目が電子ハードウェア、コンピュータソフトウェア、両者の組合せにより実現できることが理解されよう。ハードウェアとソフトウェアが互いに代替可能であることを示すために、各種の例示的ブロック、モジュール、素子、要素、方法、およびアルゴリズムは、それらの機能の観点から一般的に記述してきた。このような機能をハードウェア、ソフトウェア、またはそれら組合せとして実現するか否かは、特定のアプリケーションおよびシステム全体に課される設計上の制約に依存する。当業者であれば、記述された機能を特定のアプリケーションの各々について様々な仕方で実現することができる。各種の要素およびブロックは、主題である技術の範囲から逸脱することなく、全て異なる仕方で構成(例えば、異なる順序で配置、または異なる仕方で分割)することができる。 Those skilled in the art will appreciate that the various exemplary items in the specification text and drawings described herein can be implemented by electronic hardware, computer software, or a combination of both. To illustrate that hardware and software are interchangeable, various illustrative blocks, modules, elements, elements, methods, and algorithms have been described generically in terms of their functionality. Whether such functionality is implemented as hardware, software, or a combination thereof depends on the particular application and design constraints imposed on the overall system. Those skilled in the art can implement the described functions in various ways for each particular application. The various elements and blocks can all be configured differently (eg, arranged in a different order or divided differently) without departing from the scope of the subject technology.
更に、通信プロトコルの実行は、単一のコンピュータシステム内で集中的に、または互いに接続された複数のコンピュータシステムにまたがって異なる要素が配置された状態で分散的に実現することができる。本明細書に記述する方法を実行すべく適合された任意の種類のコンピュータシステムその他の装置も本明細書に記述する機能の実行に適している。 Furthermore, the execution of the communication protocol can be realized centrally in a single computer system or distributedly with different elements arranged across a plurality of computer systems connected to each other. Any type of computer system or other apparatus adapted to perform the methods described herein is suitable for performing the functions described herein.
ハードウェアとソフトウェアの典型的な組合せとして、ロードおよび実行された場合に本明細書に記述する方法を実行すべくコンピュータシステムを制御するコンピュータプログラムを備えた汎用コンピュータシステムがあり得る。通信プロトコル用の方法はまた、本明細書に記述する方法を実行可能にする全ての特徴を含むと共にコンピュータシステムにロードされた場合に当該方法を実行可能なコンピュータプログラム製品に埋め込まれていてもよい。 A typical combination of hardware and software can be a general purpose computer system with a computer program that, when loaded and executed, controls the computer system to perform the methods described herein. A method for a communication protocol may also be embedded in a computer program product that includes all features that enable the method described herein to be performed and that can execute the method when loaded into a computer system. .
本文脈におけるコンピュータプログラムまたはアプリケーションとは、情報処理機能を有するシステムに、特定の機能を直接実行させるか、または、a)別の言語、符号、または表記への変換、b)異なる媒体形式での再現、の一方または両方を実行した後で、実行させることを目的とする命令の組の任意の言語、符号または表記による表現を意味している。重要な点として、当該通信プロトコルは、その趣旨または基本的属性から逸脱することなく、他の特定の形式で実施可能であり、従って、本発明の範囲を示すものとして上述の明細書本文ではなく、以下の請求項を参照されたい。 A computer program or application in this context means that a system having an information processing function directly executes a specific function, or a) conversion into another language, code, or notation, b) in a different media format Means any language, code or notation of a set of instructions intended to be executed after one or both of the reproductions have been executed. Importantly, the communication protocol can be implemented in other specific forms without departing from its spirit or basic attributes, and thus is not intended to illustrate the scope of the present Reference is made to the following claims.
通信プロトコルについて、例示的な実施形態を具体的に参照しながら詳細に述べてきた。しかし、上述の明細書本文に記述しているように、本開示の趣旨および範囲内で各種の修正および変更が可能であることは明らかであり、そのような修正および変更は等価物であって本開示の一部をなすものと考えられたい。 The communication protocol has been described in detail with specific reference to exemplary embodiments. However, it is obvious that various modifications and changes can be made within the spirit and scope of the present disclosure as described in the above-described specification text, and such modifications and changes are equivalent. It should be considered part of this disclosure.
100 システム
102 ホスト
104 目標装置
106 アプリケーション
108 オペレーティングシステム
110 ドライバ
112 メモリ
114a 通信プロトコル
114b 通信プロトコル
117 インターフェースコントローラ
118a 待ち行列
118b 待ち行列
120 ストレージコントローラ
122 ストレージ
202 パケット
204 ECCパケット
206 誤り訂正アルゴリズム
208 終了パケット
212 ホストに送信
214 ホストに送信
216 最も一般的な場合での待ち時間の節約
220 再送信
224 誤りが1個の場合での待ち時間の節約
302 パケット
304 ECCパケット
306 訂正
308 パケット
312、314 パケット
316 最も一般的な場合での待ち時間の節約
324 誤りが1個の場合での待ち時間の節約
100 system 102 host 104 target device 106 application 108 operating system 110 driver 112 memory 114a communication protocol 114b communication protocol 117 interface controller 118a queue 118b queue 120 storage controller 122
Claims (20)
ホストおよびメモリと通信状態にある目標装置を設けるステップと、
前記目標装置により、前記複数のデータパケットを前記メモリから取得するリクエストを含む第1のコマンドを前記ホストから受信するステップと、
前記目標装置により、前記複数のデータパケットを前記メモリから取得するステップと、
前記目標装置により、各々のデータパケットが取得される都度、各々の取得されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、前記取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得するステップと、
前記目標装置により、ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤りを識別および訂正するステップと、
前記取得されたデータパケットのいずれかに誤りがある場合、前記目標装置により、訂正されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、完了パケットを前記ホストに送信するステップとを含む方法。 A method for performing an operation in a communication protocol,
Providing a target device in communication with the host and memory;
Receiving, from the host, a first command including a request to obtain the plurality of data packets from the memory by the target device;
Obtaining the plurality of data packets from the memory by the target device;
Each time each data packet is acquired by the target device, sending each acquired data packet to the host;
Obtaining, by the target device, an error correction code (ECC) packet corresponding to the obtained plurality of data packets;
Executing, by the target device, an ECC algorithm to identify and correct potential errors in the obtained plurality of data packets;
If any of the acquired data packets are in error, the target device sends a corrected data packet to the host;
Sending by the target device a completion packet to the host.
ホストおよびメモリと通信状態にある目標装置を設けるステップと、
前記目標装置により、複数のデータパケットを前記メモリから取得するリクエストを含む第1のコマンドを前記ホストから受信するステップと、
前記目標装置により、前記複数のデータパケットを前記メモリから取得するステップと、
前記目標装置により、各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、前記取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得するステップと、
前記目標装置により、ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤りを識別および訂正するステップと、
前記取得されたデータパケットのいずれかに誤りがある場合、前記目標装置により、訂正されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、最後に取得されたデータパケットを送信するステップとを含む方法。 A method for performing an operation in a communication protocol,
Providing a target device in communication with the host and memory;
Receiving from the host a first command including a request to obtain a plurality of data packets from the memory by the target device;
Obtaining the plurality of data packets from the memory by the target device;
Each time each data packet is acquired by the target device, sending each acquired data packet to the host except for the last acquired data packet;
Obtaining, by the target device, an error correction code (ECC) packet corresponding to the obtained plurality of data packets;
Executing, by the target device, an ECC algorithm to identify and correct potential errors in the obtained plurality of data packets;
If any of the acquired data packets are in error, the target device sends a corrected data packet to the host;
Transmitting the last acquired data packet by the target device.
ホストおよびメモリと通信状態にある目標装置を設けるステップと、
前記目標装置により、前記複数のデータパケットを前記メモリから取得するリクエストを含む第1のコマンドを前記ホストから受信するステップと、
前記目標装置により、前記複数のデータパケットを前記メモリから取得するステップと、
各々の取得されたデータパケットに対して誤り検出アルゴリズムを実行して、前記取得されたデータパケットが誤りを含んでいるか否かを判定するステップと、
前記目標装置により、各々のデータパケットが取得される都度、各々の取得されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、前記取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得するステップと、
前記取得されたデータパケットのいずれかに誤りがある場合、前記目標装置により、ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤りを訂正するステップと、
前記取得されたデータパケットのいずれかに誤りがある場合、前記目標装置により、訂正されたデータパケットを前記ホストに送信するステップと、
前記目標装置により、完了パケットを前記ホストに送信するステップとを含む方法。 A method for performing an operation in a communication protocol,
Providing a target device in communication with the host and memory;
Receiving, from the host, a first command including a request to obtain the plurality of data packets from the memory by the target device;
Obtaining the plurality of data packets from the memory by the target device;
Performing an error detection algorithm on each acquired data packet to determine whether the acquired data packet contains an error; and
Each time each data packet is acquired by the target device, sending each acquired data packet to the host;
Obtaining, by the target device, an error correction code (ECC) packet corresponding to the obtained plurality of data packets;
If any of the acquired data packets are in error, the target device executes an ECC algorithm to correct potential errors in the acquired plurality of data packets;
If any of the acquired data packets are in error, the target device sends a corrected data packet to the host;
Sending by the target device a completion packet to the host.
ストレージコントローラとを含むメモリコントローラであって、
前記ストレージコントローラが、
前記複数のデータパケットを前記メモリから取得し、
前記インターフェースコントローラに対し、各々のデータパケットが取得される都度、各々の取得されたデータパケットを前記ホストに送信するよう命令し、
前記取得された複数のデータパケットに対応する誤り訂正符号化(ECC)パケットを取得し、
ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤り識別および訂正し、
前記取得されたデータパケットのいずれかに誤りがある場合、訂正されたデータパケットを前記ホストに送信するよう前記インターフェースコントローラに命令して、
完了パケットを前記ホストに送信するよう前記インターフェースコントローラに命令すべく構成されているメモリコントローラ。 An interface controller configured to receive a first command from the host that is in communication with the host and the memory and includes a request to obtain a plurality of data packets from the memory;
A memory controller including a storage controller,
The storage controller is
Obtaining the plurality of data packets from the memory;
Instructing the interface controller to send each acquired data packet to the host each time each data packet is acquired,
Obtaining an error correction coding (ECC) packet corresponding to the obtained plurality of data packets;
Performing an ECC algorithm to identify and correct potential errors in the obtained plurality of data packets;
If any of the acquired data packets are in error, instruct the interface controller to send a corrected data packet to the host;
A memory controller configured to instruct the interface controller to send a completion packet to the host.
前記ストレージコントローラが、
複数のデータパケットを前記メモリから取得し、
各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットを前記ホストに送信するよう前記インターフェースコントローラに命令し、
前記取得された複数のデータパケットに対応する誤り訂正符号化(ECC)パケットを取得し、
ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤り識別および訂正し、
取得されたデータパケットのいずれかに誤りがある場合、訂正されたデータパケットを前記ホストに送信するようインターフェースコントローラに命令して、
最後に取得されたデータパケットを送信するよう前記インターフェースコントローラに命令すべく構成されているメモリコントローラ。 A memory controller that is in communication with a host and a memory and includes a storage controller and an interface controller configured to receive from the host a first command including a request to obtain a plurality of data packets from the memory. The storage controller
Obtaining a plurality of data packets from the memory;
Each time each data packet is acquired, the interface controller is instructed to send each acquired data packet to the host except the last acquired data packet,
Obtaining an error correction coding (ECC) packet corresponding to the obtained plurality of data packets;
Performing an ECC algorithm to identify and correct potential errors in the obtained plurality of data packets;
If any of the acquired data packets are in error, instruct the interface controller to send the corrected data packet to the host;
A memory controller configured to instruct the interface controller to transmit the last acquired data packet.
前記ストレージコントローラが、
前記複数のデータパケットを前記メモリから取得し、
各々の取得されたデータパケットに対して誤り検出アルゴリズムを実行して、前記取得されたデータパケットが誤りを含んでいるか否かを判定し、
前記インターフェースコントローラに対し、各々のデータパケットが取得される都度、最後に取得されたデータパケットを除く各々の取得されたデータパケットを前記ホストに送信するよう命令し、
前記取得された複数のデータパケットに対応する誤り訂正符号(ECC)パケットを取得し、
ECCアルゴリズムを実行して、前記取得された複数のデータパケットの潜在的な誤りを識別および訂正し、
前記取得されたデータパケットのいずれかに誤りがある場合、訂正されたデータパケットを前記ホストに送信するようインターフェースコントローラに命令して、
最後に取得されたデータパケットを送信するようインターフェースコントローラに命令すべく構成されているメモリコントローラ。 A memory controller that is in communication with a host and a memory and includes a storage controller and an interface controller configured to receive from the host a first command including a request to obtain a plurality of data packets from the memory. And
The storage controller is
Obtaining the plurality of data packets from the memory;
Performing an error detection algorithm on each acquired data packet to determine whether the acquired data packet contains an error;
Instructing the interface controller to send each acquired data packet to the host, except for the last acquired data packet, as each data packet is acquired,
Obtaining an error correction code (ECC) packet corresponding to the obtained plurality of data packets;
Performing an ECC algorithm to identify and correct potential errors in the obtained plurality of data packets;
If any of the acquired data packets are in error, instruct the interface controller to send the corrected data packet to the host;
A memory controller configured to instruct the interface controller to transmit the last acquired data packet.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/942,516 US20170141878A1 (en) | 2015-11-16 | 2015-11-16 | Systems and methods for sending data from non-volatile solid state devices before error correction |
US14/942,516 | 2015-11-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017151955A true JP2017151955A (en) | 2017-08-31 |
JP6389499B2 JP6389499B2 (en) | 2018-09-12 |
Family
ID=58640078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016223160A Expired - Fee Related JP6389499B2 (en) | 2015-11-16 | 2016-11-16 | System and method for transmitting data from non-volatile solid state devices prior to error correction |
Country Status (5)
Country | Link |
---|---|
US (1) | US20170141878A1 (en) |
JP (1) | JP6389499B2 (en) |
KR (1) | KR101967955B1 (en) |
CN (1) | CN107066344A (en) |
DE (1) | DE102016013622A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305861A (en) * | 1999-04-26 | 2000-11-02 | Hitachi Ltd | Storage device and memory card |
JP2010537326A (en) * | 2007-08-29 | 2010-12-02 | モサイド・テクノロジーズ・インコーポレーテッド | Configuring and using daisy chain memory |
JP2011090349A (en) * | 2009-09-24 | 2011-05-06 | Toshiba Corp | Semiconductor device and host apparatus |
JP2014529132A (en) * | 2011-09-02 | 2014-10-30 | アップル インコーポレイテッド | Simultaneous data transfer and error control to reduce latency and improve throughput to the host |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130958B2 (en) * | 2003-12-02 | 2006-10-31 | Super Talent Electronics, Inc. | Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes |
FI110563B (en) * | 2000-06-20 | 2003-02-14 | Nokia Corp | Reservation of resources in packet data transmission |
US8402180B2 (en) * | 2010-03-26 | 2013-03-19 | Atmel Corporation | Autonomous multi-packet transfer for universal serial bus |
US9116824B2 (en) * | 2013-03-15 | 2015-08-25 | Sandisk Technologies Inc. | System and method to reduce read latency of a data storage device |
US9513869B2 (en) * | 2013-09-18 | 2016-12-06 | HGST Netherlands B.V. | Doorbell-less endpoint-initiated protocol for storage devices |
US9535870B2 (en) * | 2013-09-18 | 2017-01-03 | HGST Netherlands B.V. | Acknowledgement-less protocol for solid state drive interface |
US10073731B2 (en) * | 2013-11-27 | 2018-09-11 | Intel Corporation | Error correction in memory |
US9760295B2 (en) * | 2014-09-05 | 2017-09-12 | Toshiba Memory Corporation | Atomic rights in a distributed memory system |
-
2015
- 2015-11-16 US US14/942,516 patent/US20170141878A1/en not_active Abandoned
-
2016
- 2016-11-15 DE DE102016013622.7A patent/DE102016013622A1/en active Pending
- 2016-11-16 CN CN201611010254.7A patent/CN107066344A/en active Pending
- 2016-11-16 JP JP2016223160A patent/JP6389499B2/en not_active Expired - Fee Related
- 2016-11-16 KR KR1020160152613A patent/KR101967955B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305861A (en) * | 1999-04-26 | 2000-11-02 | Hitachi Ltd | Storage device and memory card |
JP2010537326A (en) * | 2007-08-29 | 2010-12-02 | モサイド・テクノロジーズ・インコーポレーテッド | Configuring and using daisy chain memory |
JP2011090349A (en) * | 2009-09-24 | 2011-05-06 | Toshiba Corp | Semiconductor device and host apparatus |
JP2014529132A (en) * | 2011-09-02 | 2014-10-30 | アップル インコーポレイテッド | Simultaneous data transfer and error control to reduce latency and improve throughput to the host |
Also Published As
Publication number | Publication date |
---|---|
DE102016013622A1 (en) | 2017-05-18 |
US20170141878A1 (en) | 2017-05-18 |
JP6389499B2 (en) | 2018-09-12 |
CN107066344A (en) | 2017-08-18 |
KR101967955B1 (en) | 2019-04-10 |
KR20170066226A (en) | 2017-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110770710B (en) | Apparatus and method for controlling acceleration of data | |
CN101937724B (en) | Method for performing copy back operations and flash storage device | |
TWI546814B (en) | Memory device having error correction logic | |
EP2297641B1 (en) | Efficient in-band reliability with separate cyclic redundancy code frames | |
TWI703436B (en) | Data storage device and operating method thereof | |
KR102358177B1 (en) | Control circuit and memory device including the control circuit | |
US9495232B2 (en) | Error correcting (ECC) memory compatibility | |
US9929967B2 (en) | Packet deconstruction/reconstruction and link-control | |
TW200935233A (en) | System and method for data read of a synchronous serial interface NAND | |
JP5464528B2 (en) | Method and apparatus for performing simultaneous read and write memory operations | |
US11175858B2 (en) | Memory system control method receiving optimized buffer flush/fill (OBFF) messages over a PCIE bus | |
US20210350870A1 (en) | Memory system with error detection | |
JP2016045957A5 (en) | ||
TWI759370B (en) | Memory device, memory system, and operation method thereof | |
CN104184543A (en) | Data transmission method, device and system | |
US20140157082A1 (en) | Data storage device and method for processing error correction code thereof | |
JP6389499B2 (en) | System and method for transmitting data from non-volatile solid state devices prior to error correction | |
EP3499376B1 (en) | Memory system varying operation of memory controller according to internal status of memory device | |
KR102262550B1 (en) | Semiconductor device including plurality of funcion blocks and operating method thereof | |
US20160004655A1 (en) | Computing system and operating method of the same | |
CN103198039A (en) | Data transmitting controller and hybrid storage device thereof | |
TWI431631B (en) | Control method for flash memory based on variable length ecc | |
CN118606238A (en) | System chip data interaction system and method | |
JP2010140132A (en) | Memory system and memory controller | |
JP2009187405A (en) | Control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20170814 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180724 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6389499 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |