KR20140025595A - 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어 - Google Patents

레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어 Download PDF

Info

Publication number
KR20140025595A
KR20140025595A KR1020147001814A KR20147001814A KR20140025595A KR 20140025595 A KR20140025595 A KR 20140025595A KR 1020147001814 A KR1020147001814 A KR 1020147001814A KR 20147001814 A KR20147001814 A KR 20147001814A KR 20140025595 A KR20140025595 A KR 20140025595A
Authority
KR
South Korea
Prior art keywords
block
host
error
blocks
interface
Prior art date
Application number
KR1020147001814A
Other languages
English (en)
Other versions
KR101598726B1 (ko
Inventor
크리스토퍼 제이. 사르코네
데이비드 지. 콘로이
짐 켈러
Original Assignee
애플 인크.
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 애플 인크. filed Critical 애플 인크.
Publication of KR20140025595A publication Critical patent/KR20140025595A/ko
Application granted granted Critical
Publication of KR101598726B1 publication Critical patent/KR101598726B1/ko

Links

Images

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

개시된 실시예는 저장 장치로부터 호스트로 데이터를 전송하는 시스템을 제공한다. 시스템은 호스트로부터 블록 세트를 판독하라는 요청을 수신하는 통신 메커니즘을 포함한다. 다음으로, 저장 장치로부터 블록 세트로부터의 각 블록의 판독시, 통신 메커니즘은 호스트와의 인터페이스를 통해 블록을 전송한다. 시스템은 또한 블록 판독시 블록에 대하여 에러 검출을 수행하는 에러 검출 기기 및 블록에서 에러가 검출되면 블록에 대하여 에러 정정을 수행하는 에러 정정 기기를 포함한다. 그 후, 통신 장치는 블록으로부터 에러가 제거된 후에 호스트로 블록을 재전송할 수 있다.

Description

레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어{SIMULTANEOUS DATA TRANSFER AND ERROR CONTROL TO REDUCE LATENCY AND IMPROVE THROUGHPUT TO A HOST}
본 실시예는 컴퓨터 시스템에 대한 저장 장치에 관한 것이다. 특히, 본 실시예는 동시에 장치들로부터 데이터를 전송하고 데이터에 대하여 에러 제어를 수행하여 레이턴시 감소시키고 호스트에 대한 스루풋을 개선하는 기술에 관한 것이다.
현대의 컴퓨터 시스템은 일반적으로 다양한 인터페이스를 통해 마더보드에 접속된 일련의 주변 컴포넌트와 함께 프로세서 및 메모리를 포함하는 마더보드를 포함한다. 예를 들어, SATA(Serial Advanced Technology Attachment) 인터페이스는 저장 장치(예를 들어, 하드 디스크 드라이브, 광 드라이브, 솔리드 스테이트 드라이브, 하이브리드 하드 드라이브 등)와 마더 보드 간의 데이터 전송을 용이하게 할 수 있는 반면, PCIe(Peripheral Component Interconnect Express) 버스는 마더보드와 다수의 통합 및/또는 추가 주변 컴포넌트 사이의 통신을 가능하게 할 수 있다.
또한, 인터페이스의 스루풋 및/또는 레이턴시는 컴퓨터 시스템 내의 컴포넌트들 사이에서 데이터가 전송되는 레이트에 영향을 줄 수 있다. 예를 들어, SATA 인터페이스는 6Gbits/s까지의 레이트에서 저장 장치와 마더보드 간의 데이터의 직렬 전송을 가능하게 할 수 있다. SATA 인터페이스를 통한 데이터의 송신 전에, 데이터에 대하여 에러 검출 및/또는 정정이 수행될 수 있어서, 데이터 송신의 레이턴시를 증가시킨다. 또한, 송신된 데이터의 8b/10b 인코딩은 추가의 오버헤드를 유발할 수 있다. 결과적으로, SATA 인터페이스는 대략 550MB/s의 실질적인 스루풋을 제공할 수 있다.
동시에, 인터페이스에 접속된 장치들은 계속해서 더 빠른 속도로 동작하고 있다. 예를 들어, 솔리드 스테이트 드라이브(SSD)는 다수의 플래시 칩 상에서 데이터 스트라이핑 및/또는 인터리빙을 구현할 수 있다. 결국, SSD 상의 판독/기록 동작은 플래시 칩 상에서 병렬로 수행되어 SSD 상에서 700 MB/s의 실질적인 판독/기록 속도를 제공할 수 있다. 결과적으로, 컴퓨터 시스템 내의 고속 컴포넌트들 간의 데이터 전송은 컴포넌트를 접속시키는 인터페이스의 시그널링 능력에 의해 점점 제한될 수 있다.
그러므로, 컴퓨터 시스템 내의 컴포넌트들 간의 인터페이스의 스루풋을 증가시키거나/시키고 레이턴시를 감소시키는 메커니즘이 필요하다.
개시된 실시예는 저장 장치로부터 호스트로 데이터를 전송하는 시스템을 제공한다. 시스템은 호스트로부터 블록 세트를 판독하라는 요청을 수신하는 통신 메커니즘을 포함한다. 다음으로, 저장 장치로부터 블록 세트로부터의 각 블록의 판독시, 통신 메커니즘은 호스트와의 인터페이스를 통해 블록을 전송한다. 시스템은 또한 블록 판독시 블록에 대하여 에러 검출을 수행하는 에러 검출 기기(error-detection apparatus) 및 블록에서 에러가 검출되면 블록에 대하여 에러 정정을 수행하는 에러 정정 기기(error-correction apparatus)를 포함한다. 그 후, 통신 메커니즘은 블록으로부터 에러가 제거된 후에 호스트로 블록을 재전송할 수 있다.
임의의 실시예에서, 블록은 순서가 뒤바뀐 방식으로(out-of-order fashion) 호스트로 재전송된다. 예를 들어, 후속의 블록이 에러없이 호스트로 전송된 후에, 블록이 호스트로 재전송될 수 있다.
임의의 실시예에서, 시스템은 또한 블록에서 에러가 검출되면 블록의 에러 정정을 추적하는 에러 추적 기기를 포함한다. 에러 추적 기기는 에러를 포함하는 각각의 블록을 데이터 구조에 추가할 수 있다. 블록으로부터 에러가 제거된 후에, 에러 추적 기기는 데이터 구조로부터 블록을 제거할 수 있다. 마지막으로, 모든 블록이 에러없이 호스트로 전송된 후에(예를 들어, 데이터 구조가 비워진 후에), 통신 메커니즘은 완료 신호를 호스트로 송신하여 호스트로의 데이터 전송을 완료한다.
임의의 실시예에서, 블록은 인터페이스의 하나 이상의 레인을 통해 호스트로 전송된다.
임의의 실시예에서, 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스이다.
임의의 실시예에서, 저장 장치는 비회전 저장 장치에 대응한다. 예를 들어, 저장 장치는 솔리드 스테이트 드라이브(SSD)일 수 있다.
도 1은 실시예에 따른 시스템의 개략도.
도 2는 실시예에 따른 저장 장치로부터 호스트로의 데이터 전송을 나타내는 도면.
도 3은 실시예에 따라 저장 장치로부터 호스트로 데이터를 전송하는 프로세스를 나타내는 플로우챠트.
도 4는 실시예에 따른 컴퓨터 시스템을 나타내는 도면.
도면에서 동일한 참조 번호는 동일한 도면 엘리먼트를 나타낸다.
다음의 설명은 당업자가 실시예를 제조하고 사용하도록 제시되며 특정한 응용예 및 그 요건의 컨텍스트에서 제공된다. 개시된 실시예에 대한 다양한 수정이 당업자에게 자명하고, 여기에 정의된 일반적인 원리는 본 개시물의 사상 및 범위를 벗어나지 않고 다른 실시예 및 응용예에 적용될 수 있다. 따라서, 본 발명은 도시된 실시예에 제한되지 않고 여기에 개시된 원리 및 특징와 일치하는 가장 넓은 범위에 부합된다.
상세한 설명에 기재된 데이터 구조 및 코드는 일반적으로 컴퓨터 시스템에 의해 사용될 코드 및/또는 데이터를 저장할 수 있는 임의의 장치 또는 매체일 수 있는 컴퓨터 판독가능 저장 매체 상에 저장된다. 컴퓨터 판독가능 저장 매체는, 제한되지 않지만, 휘발성 메모리, 비휘발성 메모리, 디스크 드라이브 등의 자기 및 광 저장 장치, 자기 테이프, CD(compact disc), DVD(digital versatile disc 또는 digital video disc), 또는 기지의 또는 추후 개발되는 코드 및/또는 데이터를 저장할 수 있는 다른 매체를 포함한다.
상세한 설명에 기재된 방법 및 프로세스는 상술한 바와 같이 컴퓨터 판독가능 저장 매체에 저장될 수 있는 코드 및/또는 데이터로서 구현될 수 있다. 컴퓨터 시스템이 컴퓨터 판독가능 저장 매체 상에 저장된 코드 및/또는 데이터를 판독 및 실행할 때, 컴퓨터 시스템은, 데이터 구조 및 코드로서 구현되고 컴퓨터 판독가능 저장 매체에 저장된 방법 및 프로세스를 수행한다.
또한, 여기에 기재된 방법 및 프로세스는 하드웨어 모듈 또는 기기에 포함될 수 있다. 이들 모듈 또는 기기는, 제한되지 않지만, ASIC(application-specific integrated circuit) 칩, FPGA(field-programmable gate array), 특정 시간에 특정 소프트웨어 모듈 또는 코드를 실행하는 전용 또는 공유 프로세서, 및/또는 기지의 또는 추후 개발되는 다른 프로그래머블 로직 장치를 포함할 수 있다. 하드웨어 모듈 또는 기기가 활성화되면, 그 내에 포함되는 방법 및 프로세스를 수행한다.
개시된 실시예는 컴퓨터 시스템 내에서 데이터를 전송하는 방법 및 시스템을 제공한다. 도 1에 도시된 바와 같이, 컴퓨터 시스템은 솔리드 스테이트 드라이브(SSD) 및/또는 하이브리드 하드 드라이브(HHD) 등의 저장 장치(142)를 포함할 수 있다. 저장 장치(142)는 SSD 내의 플래시 칩 및/또는 어레이 내의 디스크(예를 들어, RAID(Redundant Array of Independent Disks)) 등의 하나 이상의 저장 유닛(132-140)을 포함할 수 있다.
저장 장치(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)는 6Gbits/s까지의 레이트에서 저장 장치(142)로부터 호스트(100)로 직렬로 데이터를 전송하는 SATA 버스에 대응할 수 있다. 그러나, 버스(130)를 통한 데이터 전송 레이트는 8b/10b 인코딩 오버헤드 뿐만 아니라 데이터의 송신 전의 데이터의 에러 검출 및/또는 정정에 의해 제한된다. 결과적으로, 데이터는 550MB/s 또는 그 이하의 실질적인 스루풋에서 저장 장치(142)와 호스트(100) 사이에서 전송될 수 있다.
반면에, 저장 장치 제어기(122)는 다수의 저장 유닛(132-140) 상에서 데이터 스트라이핑 및/또는 인터리빙을 구현함으로써 저장 장치(142)의 속도를 증가시킬 수 있다. 결국, 저장 장치 제어기(122)는 저장 유닛(132-140) 상에서 병렬로 판독 및 기록 동작을 수행하여 버스(130)의 데이터 전송 레이트를 초과하는 실질적인 판독/기록 속도에 도달할 수 있다. 즉, 버스(130)는 호스트(100)와 저장 장치(142) 간의 데이터 전송에서 병목을 나타낼 수 있다.
하나 이상의 실시예에서, 도 1의 시스템은 버스(130)의 레이턴시를 감소시킴으로써 호스트(100)와 저장 장치(142) 사이의 데이터 전송을 용이하게 한다. 예를 들어, 도 2를 참조하여 이하에서 더 상세히 설명하는 바와 같이, 저장 장치 제어기(122)는 데이터의 블록이 저장 유닛(132-140)으로부터 판독되자 마자 그 블록을 호스트(100)로 전송함으로써 호스트(100)로부터의 데이터에 대한 요청을 프로세싱할 수 있다. 이렇게 함으로써, 저장 장치 제어기(122)는 새롭게 판독된 블록을 PCIe(Peripheral Component Interconnect Express) 인터페이스 등의 인터페이스의 하나 이상의 레인을 통해 메모리(120)로 전송할 수 있다.
하나 이상의 실시예에서, 도 1의 시스템은 또한 버스(130)의 대역폭을 증가시킴으로써 호스트(100)와 저장 장치(142) 사이의 데이터 전송을 용이하게 할 수 있다. 예를 들어, 저장 장치 제어기(122)는 128b/130b 인코딩을 이용하여 인터페이스를 통한 데이터의 전송과 연관된 오버헤드를 감소시킬 수 있다.
새롭게 판독된 블록이 호스트(100)로 전송됨에 따라, 저장 장치 제어기(122)는 블록에 대한 에러 검출을 동시에 수행할 수 있다. 블록에서 에러가 검출되면, 다른 블록들이 호스트(100)로 전송되는 동안 저장 장치 제어기(122)는 에러 정정을 수행하여 에러를 제거할 수 있다. 일단 에러가 제거되면, 저장 장치 제어기(122)는 블록을 순서가 뒤바뀐 방식(in an out-of-order fashion)으로 (예를 들어, 새롭게 판독된 하나 이상의 다른 블록이 전송된 후에) 호스트(100)로 재전송할 수 있다. 모든 블록이 에러없이 호스트로 전송된 후에, 저장 장치 제어기(122)는 완료 신호를 호스트로 송신하여 요청을 완료할 수 있다. 고속 인터페이스를 통해 블록을 동시에 전송하고 블록에 대한 에러 제어를 수행함으로써, 저장 장치 제어기(122)는 저장 장치(142)로부터 호스트(100)로의 데이터 송신의 레이턴시를 감소시킬 수 있다.
도 2는 실시예에 따른 저장 장치(142)로부터 호스트(100)로의 데이터 전송을 나타낸다. 데이터 전송은 저장 장치(142) 상의 블록(212-218)의 세트를 판독하라는 호스트(100)로부터의 요청에 의해 개시될 수 있다. 그 후, 요청은 인터페이스(200)를 통해 송신되고 저장 장치 제어기(122) 내의 통신 메커니즘(202)에 의해 수신될 수 있다. 예를 들어, 요청은 PCIe 인터페이스를 통해 호스트(100) 내의 루트 컴플렉스(root complex)로부터 저장 장치 제어기(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)는 리드 솔로몬(Reed-Solomon) 코드 및/또는 다른 에러 정정 코드(ECC) 등의 블록에 추가되는 리던던트 데이터를 조사하여 블록이 에러를 포함하는지를 결정할 수 있다. 블록에 에러가 없고 호스트(100)로 성공적으로 전송되면, 저장 장치 제어기(122)는 블록의 판독 및 전송으로 끝날 수 있다.
그러나, 에러 검출 기기(204)에 의해 블록에서 하나 이상의 에러가 검출되면, 저장 장치 제어기(122) 내의 에러 정정 기기(206)는 블록에 대하여 에러 정정을 수행하여 에러(들)를 제거할 수 있다. 예를 들어, 에러 정정 기기(206)는 리던던트 데이터를 조사하여 에러(들)를 찾고 에러 값을 정정할 수 있다. 에러 저장 기기(206)가 블록으로부터 에러를 정정하는 동안, 통신 메커니즘(202)은 저장 장치(142)로부터 호스트(100)로 판독된 다른 블록을 계속 전송할 수 있고, 에러 검출 기기(204)는 이 블록들에 대하여 에러 검출을 수행할 수 있다. 새롭게 판독된 블록의 전송은 이전에 판독된 블록에 대한 에러 제어의 완료에 의존하지 않기 때문에, 에러 정정 기기(206)는 더 강한 ECC를 이용하여 저장 장치(142)로부터 호스트(100)로의 블록의 전송의 레이턴시를 실질적으로 증가시키지 않고 이전에 판독된 블록 내의 에러를 정정할 수 있다.
에러 정정 기기(206)가 블록으로부터 에러(들)를 제거한 후에, 통신 메커니즘(202)은 블록을 호스트(100)로 재전송하여 저장 장치(142)로부터 호스트(100)로의 데이터의 정확한 전송을 용이하게 할 수 있다. 블록이 재전송되기 전에 다른 블록들이 호스트(100)로 전송될 수 있기 때문에, 블록은 순서가 뒤바뀐 방식(out-of-order fashion)으로 재전송될 수 있다. 예를 들어, 저장 장치 제어기(122)는 저장 장치(142)로부터 오름차순으로 블록(212-218)을 판독할 수 있다. 블록(212)이 인터페이스(200)(예를 들어, PCIe 인터페이스)를 통해 호스트(100)로 전송되고 블록(220)으로 기록됨에 따라, 에러 검출 기기(204)는 블록(212)에서 에러를 검출할 수 있다. 그 후, 블록(214-218)이 호스트(100)로 전송되어 에러 없이 블록(222-226)에 기록되는 동안 에러 정정 기기(206)는 블록(212) 상에서 에러 정정을 수행할 수 있다. 마지막으로, 에러가 블록(212)으로부터 제거되고 블록(214-218)이 성공적으로 호스트(100)로 전송된 후에, 블록(212)은 호스트(100)로 재전송되어 블록(220) 내의 에러있는 데이터 위에 기록하는데 사용될 수 있다.
저장 장치 제어기(122) 내의 에러 추적 기기(208)는 블록 내에서 검출된 에러를 추가적으로 추적할 수 있다. 에러 정정시, 에러 추적 기기(208)는 블록을 큐(queue) 및/또는 링크된 리스트 등의 데이터 구조(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)로의 블록의 전송을 반복하여 저장 장치(142)로부터의 에러없는 데이터를 호스트(100)에 제공할 수 있다.
당업자는 저장 장치 제어기(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) 내의 다른 프로세서와의 병렬 프로세싱 및/또는 멀티스레드(multi-threaded) 동작을 지원할 수 있다. 컴퓨터 시스템(400)은 또한 키보드(408), 마우스(410) 및 디스플레이(412) 등의 입출력(I/O) 장치를 포함할 수 있다.
컴퓨터 시스템(400)은 본 실시예의 다양한 컴포넌트를 실행하는 기능을 포함할 수 있다. 특히, 컴퓨터 시스템(400)은 컴퓨터 시스템(400) 상의 하드웨어 및 소프트웨어 자원의 사용을 조정하는 오퍼레이팅 시스템(미도시) 뿐만 아니라 사용자에 대한 특수 임수를 수행하는 하나 이상의 애플리케이션을 포함할 수 있다. 사용자에 대한 임무를 수행하기 위하여, 애플리케이션은 오퍼레이팅 시스템으로부터 컴퓨터 시스템(400) 상의 하드웨어 자원의 사용을 얻고 오퍼레이팅 시스템에 의해 제공된 하드웨어 및/또는 소프트웨어 프레임워크를 통해 사용자와 상호작용할 수 있다.
하나 이상의 실시예에서, 컴퓨터 시스템(400)은 저장 장치로부터 호스트로 데이터를 전송하는 시스템을 제공한다. 시스템은 호스트로부터 블록 세트를 판독하라는 요청을 수신하는 통신 메커니즘을 포함할 수 있다. 다음, 저장 장치로부터 블록 세트로부터의 각 블록을 판독할 때, 통신 메커니즘은 호스트와의 인터페이스를 통해 블록을 전송할 수 있다. 시스템은 또한 블록 판독시 블록에 대하여 에러 검출을 수행하는 에러 검출 기기 및 블록에서 에러가 검출되면 블록에 대하여 에러 정정을 수행하는 에러 정정 기기를 포함할 수 있다. 통신 메커니즘은 블록으로부터 에러가 제거된 후에 블록을 호스트로 재전송할 수 있다.
시스템은 블록 내에서 검출된 에러를 추적하는 에러 추적 기기를 더 포함할 수 있다. 예를 들어, 에러 추적 기기는 에러를 포함하는 각각의 블록을 데이터 구조에 추가할 수 있다. 블록으로부터 에러가 제거된 후에, 에러 추적 기기는 데이터 구조로부터 블록을 제거할 수 있다. 마지막으로, 모든 블록이 에러없이 호스트로 전송된 후에(예를 들어, 데이터 구조가 비워진 후에), 통신 메커니즘은 완료 신호를 호스트로 송신하여 호스트로의 데이터의 전송을 완료할 수 있다.
또한, 컴퓨터 시스템(400)의 하나 이상의 컴포넌트는 멀리 위치하고 네트워크를 통해 다른 컴포넌트에 접속될 수 있다. 본 실시예의 일부(예를 들어, 통신 메커니즘, 에러 검출 기기, 에러 정정 기기, 에러 추적 기기 등)는 실시예를 구현하는 분배 시스템의 상이한 노드 상에 위치할 수 있다. 예를 들어, 본 실시예는 원격 저장 장치와 호스트 사이에서 데이터를 전송하는 클라우드 컴퓨팅 시스템을 이용하여 구현될 수 있다.
다양한 실시예의 상술한 설명은 설명 및 예시의 목적으로 제시된 것이다. 이들은 총망라하거나 본 발명을 개시된 형태로 제한하는 것으로 의도되지 않는다. 따라서, 많은 변형 및 변경이 당업자에게는 자명할 것이다. 또한, 상기 개시물은 본 발명을 제한하는 것으로 의도되지 않는다.

Claims (26)

  1. 저장 장치로부터 호스트로 데이터를 전송하기 위한 컴퓨터 구현 방법으로서,
    상기 호스트로부터 블록들의 세트를 판독하라는 요청을 수신하는 단계;
    상기 저장 장치로부터, 상기 블록들의 세트로부터의 각각의 블록의 판독 시에:
    상기 호스트와의 인터페이스를 통해 상기 블록을 전송하는 단계;
    상기 블록에 대한 에러 검출을 동시에 수행하는 단계;
    상기 블록에서 에러가 검출되는 경우:
    상기 블록에 대한 에러 정정을 수행하여, 상기 에러를 제거하는 단계; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 블록을 상기 호스트로 재전송하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 블록에서 상기 에러가 검출되는 경우, 상기 블록의 에러 정정을 추적하는 단계; 및
    상기 블록들 모두가 에러 없이 상기 호스트로 전송된 후에, 상기 호스트로 완료 신호를 송신하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 블록의 에러 정정을 추적하는 단계는,
    상기 블록을 데이터 구조에 추가하는 단계; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 데이터 구조로부터 상기 블록을 제거하는 단계
    를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 블록은 순서가 뒤바뀐 방식으로(out-of-order fashion) 상기 호스트로 재전송되는 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 블록들은 상기 인터페이스의 하나 이상의 레인(lane)을 통해 상기 호스트로 전송되는 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스인 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 저장 장치는 비회전(non-rotating) 저장 장치에 대응하는 컴퓨터 구현 방법.
  8. 저장 장치로부터 호스트로 데이터를 전송하기 위한 시스템으로서,
    상기 호스트로부터 블록들의 세트를 판독하라는 요청을 수신하고, 상기 저장 장치로부터, 상기 블록들의 세트로부터의 각각의 블록의 판독 시에, 상기 호스트와의 인터페이스를 통해 상기 블록을 전송하도록 구성된 통신 메커니즘;
    상기 블록의 판독 시에, 상기 블록에 대한 에러 검출을 수행하도록 구성된 에러 검출 기기; 및
    상기 블록에서 에러가 검출되는 경우, 상기 블록에 대한 에러 정정을 수행하도록 구성된 에러 정정 기기
    를 포함하고,
    상기 통신 메커니즘은, 상기 블록으로부터 상기 에러가 제거된 후에 상기 블록을 상기 호스트로 재전송하도록 또한 구성되는 시스템.
  9. 제8항에 있어서, 상기 블록에서 상기 에러가 검출되는 경우, 상기 블록의 에러 정정을 추적하도록 구성된 에러 추적 기기를 더 포함하고,
    상기 통신 메커니즘은, 상기 블록들 모두가 에러 없이 상기 호스트로 전송된 후에 상기 호스트로 완료 신호를 송신하도록 또한 구성되는 시스템.
  10. 제9항에 있어서, 상기 블록의 에러 정정을 추적하는 것은,
    상기 블록을 데이터 구조에 추가하는 것; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 데이터 구조로부터 상기 블록을 제거하는 것
    을 포함하는 시스템.
  11. 제8항에 있어서, 상기 블록은 순서가 뒤바뀐 방식으로 상기 호스트로 재전송되는 시스템.
  12. 제8항에 있어서, 상기 블록들은 상기 인터페이스의 하나 이상의 레인을 통해 상기 호스트로 전송되는 시스템.
  13. 제8항에 있어서, 상기 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스인 시스템.
  14. 제8항에 있어서, 상기 저장 장치는 비회전 저장 장치에 대응하는 시스템.
  15. 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 저장 장치로부터 호스트로 데이터를 전송하는 방법을 수행하도록 하는 명령어들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은,
    상기 호스트로부터 블록들의 세트를 판독하라는 요청을 수신하는 단계;
    상기 저장 장치로부터, 상기 블록들의 세트로부터의 각각의 블록의 판독 시에:
    상기 호스트와의 인터페이스를 통해 상기 블록을 전송하는 단계;
    상기 블록에 대한 에러 검출을 동시에 수행하는 단계;
    상기 블록에서 에러가 검출되는 경우:
    상기 블록에 대한 에러 정정을 수행하여, 상기 에러를 제거하는 단계; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 블록을 상기 호스트로 재전송하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서, 상기 방법은,
    상기 블록에서 상기 에러가 검출되는 경우, 상기 블록의 에러 정정을 추적하는 단계; 및
    상기 블록들 모두가 에러 없이 상기 호스트로 전송된 후에, 상기 호스트로 완료 신호를 송신하는 단계
    를 더 포함하는 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서, 상기 블록의 에러 정정을 추적하는 단계는,
    상기 블록을 데이터 구조에 추가하는 단계; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 데이터 구조로부터 상기 블록을 제거하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  18. 제15항에 있어서, 상기 블록들은 상기 인터페이스의 하나 이상의 레인을 통해 상기 호스트로 전송되는 컴퓨터 판독가능 저장 매체.
  19. 제15항에 있어서, 상기 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스인 컴퓨터 판독가능 저장 매체.
  20. 제15항에 있어서, 상기 저장 장치는 비회전 저장 장치에 대응하는 컴퓨터 판독가능 저장 매체.
  21. 컴퓨터 시스템으로서,
    프로세서와 메모리를 포함하는 호스트; 및
    저장 장치 제어기
    를 포함하고,
    상기 저장 장치 제어기는,
    상기 호스트로부터 블록들의 세트를 판독하라는 요청을 수신하고, 상기 저장 장치로부터, 상기 블록들의 세트로부터의 각각의 블록의 판독 시에, 상기 호스트와의 인터페이스를 통해 상기 블록을 전송하도록 구성된 통신 메커니즘;
    상기 블록의 판독 시에, 상기 블록에 대한 에러 검출을 수행하도록 구성된 에러 검출 기기; 및
    상기 블록에서 에러가 검출되는 경우, 상기 블록에 대한 에러 정정을 수행하도록 구성된 에러 정정 기기
    를 포함하고,
    상기 통신 메커니즘은, 상기 블록으로부터 상기 에러가 제거된 후에 상기 블록을 상기 호스트로 재전송하도록 또한 구성되는 컴퓨터 시스템.
  22. 제21항에 있어서, 상기 저장 장치 제어기는, 상기 블록에서 상기 에러가 검출되는 경우, 상기 블록의 에러 정정을 추적하도록 구성된 에러 추적 기기를 더 포함하고,
    상기 통신 메커니즘은, 상기 블록들 모두가 에러 없이 상기 호스트로 전송된 후에 상기 호스트로 완료 신호를 송신하도록 또한 구성되는 컴퓨터 시스템.
  23. 제22항에 있어서, 상기 블록의 에러 정정을 추적하는 것은,
    상기 블록을 데이터 구조에 추가하는 것; 및
    상기 블록으로부터 상기 에러가 제거된 후에, 상기 데이터 구조로부터 상기 블록을 제거하는 것
    을 포함하는 컴퓨터 시스템.
  24. 제21항에 있어서, 상기 블록들은 상기 인터페이스의 하나 이상의 레인을 통해 상기 호스트로 전송되는 컴퓨터 시스템.
  25. 제21항에 있어서, 상기 인터페이스는 PCIe(Peripheral Component Interconnect Express) 인터페이스인 컴퓨터 시스템.
  26. 제21항에 있어서, 상기 저장 장치는 비회전 저장 장치에 대응하는 컴퓨터 시스템.
KR1020147001814A 2011-09-02 2012-08-28 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어 KR101598726B1 (ko)

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
KR20140025595A true KR20140025595A (ko) 2014-03-04
KR101598726B1 KR101598726B1 (ko) 2016-02-29

Family

ID=46801657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001814A KR101598726B1 (ko) 2011-09-02 2012-08-28 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170066226A (ko) * 2015-11-16 2017-06-14 에이취지에스티 네덜란드 비.브이. 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법

Families Citing this family (10)

* 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
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0140344B2 (ko) * 1981-06-23 1989-08-28 Hitachi Metals Ltd
JP2000305861A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd 記憶装置およびメモリカード
JP2007193810A (ja) * 2006-01-18 2007-08-02 Apple Inc フラッシュメモリ用インターリーブポリシー
JP2008204482A (ja) * 2008-04-24 2008-09-04 Matsushita Electric Ind Co Ltd 記憶装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
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. メモリカード及びデータ処理装置並びにメモリカードの制御方法及び設定方法
US7426672B2 (en) * 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
JP2010039779A (ja) * 2008-08-05 2010-02-18 Sony Corp リーダライタ、情報読み出し方法、通信システムおよび通信方法
US8438453B2 (en) * 2009-05-06 2013-05-07 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
US8639870B2 (en) * 2011-01-14 2014-01-28 Oracle International Corporation String searching within peripheral storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0140344B2 (ko) * 1981-06-23 1989-08-28 Hitachi Metals Ltd
JP2000305861A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd 記憶装置およびメモリカード
JP2007193810A (ja) * 2006-01-18 2007-08-02 Apple Inc フラッシュメモリ用インターリーブポリシー
JP2008204482A (ja) * 2008-04-24 2008-09-04 Matsushita Electric Ind Co Ltd 記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170066226A (ko) * 2015-11-16 2017-06-14 에이취지에스티 네덜란드 비.브이. 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법

Also Published As

Publication number Publication date
US20130061111A1 (en) 2013-03-07
US9015557B2 (en) 2015-04-21
WO2013033121A1 (en) 2013-03-07
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
CN103748561B (zh) 2019-01-08

Similar Documents

Publication Publication Date Title
KR101598726B1 (ko) 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어
US11095315B1 (en) Intelligent error correction in a storage device
US9317382B2 (en) Storage device with error recovery indication
US10976939B2 (en) Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
US7624324B2 (en) File control system and file control device
US11500707B2 (en) Controller, memory controller, storage device, and method of operating the controller
US10419035B2 (en) Use of multiple cyclic redundancy codes for optimized fail isolation
CN110609659A (zh) 用于执行读取命令的NVMeoF RAID实现方法
CN103034559B (zh) 基于rdma架构设计的pq检验模块及检验方法
US10496486B1 (en) Protecting data integrity in a multiple path input/output environment
US20120017116A1 (en) Memory control device, memory device, and memory control method
US20150169254A1 (en) Firmware bypass for medium-access commands
US9690484B2 (en) Minimizing delay periods when accessing mirrored disks
CN117795466A (zh) 使用子命令的存取请求管理

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 4