KR20180016680A - 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법 - Google Patents

저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법 Download PDF

Info

Publication number
KR20180016680A
KR20180016680A KR1020160099603A KR20160099603A KR20180016680A KR 20180016680 A KR20180016680 A KR 20180016680A KR 1020160099603 A KR1020160099603 A KR 1020160099603A KR 20160099603 A KR20160099603 A KR 20160099603A KR 20180016680 A KR20180016680 A KR 20180016680A
Authority
KR
South Korea
Prior art keywords
port
command
commands
test
dual port
Prior art date
Application number
KR1020160099603A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020160099603A priority Critical patent/KR20180016680A/ko
Priority to US15/481,441 priority patent/US10372570B2/en
Priority to CN201710530193.5A priority patent/CN107688516A/zh
Publication of KR20180016680A publication Critical patent/KR20180016680A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 테스트 시스템의 방법은, 테스트 프로그램에서 커맨드를 발행하는 단계, 디바이스 드라이버에서 상기 커맨드에 대응하는 복수의 커맨드들을 발생하는 단계, 및 상기 저장 장치들의 각각의 상기 멀티 포트로 상기 복수의 커맨드들을 동시에 전송하는 단계를 포함할 수 있다. 본 발명의 저장 장치는 다수의 Port를 이용한 Write/Read를 효율적으로 수행함으로써 데이터 전송속도를 향상시키고, 정량적인 테스트 진행 시 테스트 시간을 감소시킴으로써 테스트 효율성을 향상시킬 수 있다.

Description

저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법{STORAGE DEVICE, TEST SYSTEM FOR TESTING THE SAME, AND METHOD THEREOF}
본 발명은 저장 장치 및 그것을 테스트 하는 테스트 시스템 및 방법에 관한 것이다.
최근의 저장 장치(storage device)는 사용 효율을 높이고자 멀티 포트(multi port)를 형태로 개발되고 있다. 종래의 테스트 장치는 저장 장치의 멀티 포트를 동시에 이용하지 않고 순차적으로 포트를 사용함으로 최대 전송속도 이하로 동작 시키는 방식으로 테스트를 수행한다. 게다가 종래의 테스트 장치는 하드웨어/소프트웨어적으로 다수 포트에 대한 접근을 할 수 없다.
본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 테스트 효율을 증가시키는 멀티 포트 저장 장치 및 그것을 테스트하는 테스트 시스템 및 방법을 제공하는데 목적이 있다.
본 발명의 실시 예에 따른 호스트 장치, 및 상기 호스트 장치에 멀티 포트를 통하여 연결된 저장 장치들을 포함하는 테스트 시스템의 방법은, 테스트 프로그램에서 커맨드를 발행하는 단계, 디바이스 드라이버에서 상기 커맨드에 대응하는 복수의 커맨드들을 발생하는 단계, 및 상기 저장 장치들의 각각의 상기 멀티 포트로 상기 복수의 커맨드들을 동시에 전송하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 저장 장치는, 통신 프로토콜에 따라 구현된 제 1 포트, 상기 통신 프로토콜에 따라 구현된 제 2 포트, 제 1 적어도 하나의 비휘발성 메모리 장치, 제 2 적어도 하나의 비휘발성 메모리 장치, 상기 제 1 포트에 연결되고, 상기 제 1 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 1 메모리 제어기, 및 상기 제 2 포트에 연결되고, 상기 제 2 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 2 메모리 제어기를 포함하고, 테스트 동작시 상기 제 1 포트 및 상기 제 2 포트는 활성화되고, 상기 제 1 및 제 2 메모리 제어기들의 각각은 대응하는 포트를 통하여 커맨드들을 수신하고, 상기 수신된 커맨드들에 응답하여 대응하는 비휘발성 메모리 장치를 테스트할 수 있다.
본 발명의 실시 예에 따른 테스트 시스템은, 호스트 장치, 및 상기 호스트 장치에 듀얼 포트를 통하여 연결된 복수의 더트들을 포함하고, 상기 호스트 장치는, 중앙 처리 장치, 및 상기 중앙 처리 장치와 상기 복수의 더트들을 연결하는 호스트 버스 어댑터를 포함하고, 테스트 동작시 상기 듀얼 포트 중 제 1 포트로 제 1 커맨드가 전송되면서, 상기 듀얼 포트 중 제 2 포트로 제 2 커맨드가 동시에 전송될 수 있다.
본 발명의 실시 예에 따른 저장 장치의 테스트 방법은, 제 1 포트를 통하여 제 1 커맨드를 수신하는 단계, 상기 제 1 커맨드를 수신하면서 제 2 포트를 통하여 제 2 커맨드를 수신하는 단계, 상기 제 1 커맨드에 응답하여 제 1 메모리를 테스트 하는 단계, 및 상기 제 1 메모리를 테스트하면서, 상기 제 2 커맨드에 응답하여 제 2 메모리를 테스트하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 저장 장치 및 그것을 테스트하는 테스트 시스템 및 그것의 방법은 다수의 Port를 이용한 Write/Read를 효율적으로 수행함으로써 데이터 전송속도를 향상시키고, 정량적인 테스트 진행 시 테스트 시간을 감소시킴으로써 테스트 효율성을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 테스트 시스템을 예시적으로 보여주는 도면이다.
도 2a 및 도 2b는 듀얼 포트를 갖는 커넥터들을 예시적으로 보여주는 실시 예들이다.
도 3은 본 발명의 실시 예에 따른 테스트 시스템의 소프트웨어 계층을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생되는 듀얼 포트 커맨드 발생 방법을 예시적 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 듀얼 포트 커맨드 처리 과정을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 실시 예를 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 다른 실시 예를 보여주는 블록도이다.
도 9는 본 발명의 실시 예에 따른 호스트의 커맨드 발생 방법을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 듀얼 포트 SSD의 테스트 방법을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 테스트 시스템을 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 저장 장치가 적용된 데이터 서버 시스템을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 실시 예에 따른 저장 장치는, 멀티 포트를 지원하고, 멀티 포트를 통하여 테스트 동작을 수행함으로써, 테스트 시간을 감소시키고, 테스트 효율성을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 테스트 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 테스트 시스템(10)은 호스트 장치(100) 및 복수의 더트들(DUT(device under test), 210, 220, ... , 2N0, N은 2 이상의 정수)을 포함할 수 있다.
호스트 장치(100)는 중앙 처리 장치(CPU, 110) 및 호스트 버스 어댑터(HBA, 120)를 포함할 수 있다. 예를 들어, 호스트 장치(100)는 컴퓨팅 장치일 수 있다.
중앙 처리 장치(110)는 하드웨어/소프트웨어/펌웨어를 제어함으로써 복수의 더트들(210, 220, ... , 2N0)에 대한 테스트 동작을 수행할 수 있다.
호스트 버스 어댑터(120)는 중앙 처리 장치(110)에 연결되고, 중앙 처리 장치(110)의 테스트 커맨드들을 복수의 더트들(210, 220, ... , 2N0)로 전송하거나, 복수의 더트들(210, 220, ..., 2NO)의 각각의 테스트 커맨드들에 대한 수행 결과 값을 중앙 처리 장치(110)로 전송할 수 있다.
호스트 버스 어댑터(120)는 복수의 더트들(210, 220, ... , 2N0)의 각각에 듀얼 포트들(PT1, PT2)에 연결될 수 있다. 실시 예에 있어서, 호스트 버스 어댑터(120)는 복수의 더트들(210, 220, ... , 2N0)의 각각에 듀얼 포트들(PT1, PT2)에 연결된 복수의 버스 어댑터 유닛들을 포함할 수 있다. 여기서 버스 어댑터 유닛들의 각각은 동일한 테스트 커맨드에 대한 테스트 동작을 병렬적으로 처리하도록 구현될 수 있다. 한편, 도 1에서는 중앙 처리 장치(110)에 하나의 호스트 버스 어댑터(120)가 도시되지만, 본 발명의 호스트 버스 어댑터의 개수가 여기에 제한되지 않을 것이다. 중앙 처리 장치(110)에 복수의 호스트 버스 어댑터들이 연결될 수도 있다고 이해되어야 할 것이다.
실시 예에 있어서, 호스트 장치(100)는 더트들(210, 220, ... , 2N0)로부터 테스트 커맨드에 대응하는 테스트 결과 값을 수신하기 전에, 새로운 테스트 커맨드를 더트들(210, 220, ..., 2N0)에 전송할 수 있다.
실시 예에 있어서, 호스트 장치(100)는 테스트 동작을 수행하기 위하여 더트들(210, 220, ... , 2N0)의 듀얼 포트를 활성화시킬 수 있다.
실시 예에 있어서, 호스트 장치(100)는 듀얼 포트를 통하여 큐잉(queuing) 방식으로 테스트 커맨드를 더트들(210, 220, ... , 2N0)에 전송할 수 있다.
복수의 더트들(210, 220, ... , 2N0)은 테스트 동작이 수행된 메모리 장치들이다. 실시 예에 있어서, 복수의 더트들(210, 220, ... , 2N0)의 각각은 듀얼 포트들(PT1, PT2)을 포함할 수 있다. 여기서 듀얼 포트(PT1, PT2)의 각각은 동일한 통신 프로토콜에 의해 구현될 수 있다. 여기서 통신 프로토콜은, NVMe(non-volatile memory express), PCIe(peripheral component interconnect express), SATA(serial at attachment), SCSI(small computer system interface), SAS(serial attached SCSI), UAS(USB(universal storage bus) attached SCSI), iSCSI(internet small computer system interface), Fiber Channel, FCoE(fiber channel over ethernet), 및 이와 같은 것 중 어느 하나 일 수 있다.
실시 예에 있어서, 듀얼 포트(PT1, PT2)는 대응하는 더트의 테스트 동작에서 동시에 활성화 될 수 있다. 다른 말로, 제 1 포트(PT1)를 통하여 더트에 대한 제 1 테스트 동작과 제 2 포트(PT2)를 통하여 더트에 대한 제 2 테스트 동작이 독립적으로 수행될 수 있다.
실시 예에 있어서, 복수의 더트들(210, 220, ... , 2N0)의 각각은 SSD(solid state drive)일 수 있다. 예를 들어, 복수의 더트들(210, 220, ... , 2N0)은 SAS (serial attached SCSI) SSD일 수 있다.
실시 예에 있어서, 복수의 더트들(210, 220, ... , 2N0)의 각각은 HDD(hard disk drive)일 수 있다. 예를 들어, 복수의 더트들(210, 220, ... , 2N0)은 SAS (serial attached SCSI) HDD일 수 있다. 한편, 복수의 더트들(210, 220, ... , 2N0)의 각각은 SSD, HDD 이외에도 듀얼 포트로 구성된 어떠한 종류의 메모리 장치일 수 있다고 이해되어야 할 것이다.
호스트 장치(100)는 더트들(210, 220, ... , 2N0)의 각각의 모든 포트들(PT1, PT2)에 물리적으로 연결되고, 동시에 포트들(PT1, PT2)에 대한 접근을 수행할 수 있다.
한편, 도 1에 도시된 더트들(210, 220, ... , 2N0)의 각각은 2개의 포트들(PT1, PT2)을 포함하였다. 하지만, 본 발명의 더트들이 여기에 제한될 필요는 없다. 본 발명의 더트들은 3개 이상의 포트들(멀티 포트)을 포함할 수 있다고 이해되어야 할 것이다.
본 발명의 실시 예에 따른 테스트 시스템(10)은 듀얼 포트(PT1, PT2)를 모두 이용하여 대응하는 더트에 대한 테스트 동작을 수행함으로써, 종래의 그것과 비교하여 테스트 시간을 감소시키고, 이에 따른 테스트 성능 향상을 기대할 수 있다.
도 2a 및 도 2b는 듀얼 포트를 갖는 커넥터들(201a, 201b)을 예시적으로 보여주는 실시 예들이다. 도 2a를 참조하면, 커넥터(201a)의 제 1 측면에 제 1 싱글 핀들, 전원 및 제어 핀들이 배치되고, 제 1측면에 대향하는 제 2 측면에 제 1 싱글 핀들이 배치된다. 여기서 제 1 싱글 핀들은 제 1 포트(Port A)을 지시하고, 제 2 싱글 핀들은 제 2 포트(Port B)을 지시한다.
도 2b를 참조하면, 커넥터(201b)의 제 1 측면에 전원핀들(P1~P15), PCIe 사이드밴드 핀들(E1 ~ E6), 제 1 포트(S1 ~ S7)가 배치되고, 제 1 측면에 대향하는 제 2 측면에 PCIe 레인들 및 사이드밴드 핀들(E17 ~ E39), 제 2 포트(S8 ~ S14), 및 PCIe 레인들 및 기준 클록 핀들(E7 ~ E16)이 배치될 수 있다.
실시 예에 있어서, 커넥터(201a, 201b)의 각각은 SSD Form Factor 커넉터로 구현될 수 있다.
한편, 도 2a 및 도 2b에 도시된 커넥터들(201a, 201b)의 핀 배치는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 본 발명의 저장 장치에 포함된 커넥터는 다양한 형태로 듀얼 포트를 구성할 수 있다.
도 3은 본 발명의 실시 예에 따른 테스트 시스템(10, 도 1 참조)의 소프트웨어 계층을 예시적으로 보여주는 도면이다. 도 1 내지 도 3을 참조하면, 테스트 동작을 수행하기 위한 호스트 장치(100)의 소프트웨어 계층은, 어플리케이션 계층, 커맨드 계층, 전송 계층, 링크 계층, 및 물리 계층을 포함할 수 있다. 또한 테스트 동작이 수행되는 더트(예를 들어, 도 1의 210))의 소프트웨어 계층은, 어플리케이션 계층, 커맨드 계층, 전송 계층, 링크 계층, 및 물리 계층을 포함할 수 있다.
실시 예에 있어서, 호스트 장치(100)의 어플리케이션 계층과 더트(210)의 어플리케이션 계층은 논리적으로 연결될 수 있고, 호스트 장치(100)의 전송 계층과 더트(210)의 전송 계층은 논리적으로 연결될 수 있고, 호스트 장치(100)의 링크 계층과 더트(210)의 링크 계층은 논리적으로 연결될 수 있다.
실시 예에 있어서, 호스트 장치(100)는 어플리케이션 계층에 대응하는 테스트 프로그램(소프트웨어)으로 구현되고, 커맨드 계층에 대응하는 커널(kernel, 혹은 "device driver")로 구현될 수 있다.
여기서 테스트 프로그램은 호스트 장치(100)의 메모리(미도시)에 저장될 수 있다. 테스트 프로그램은 테스트 동작을 수행하기 위한 테스트 시퀀스 혹은 테스트 데이터를 포함할 수 있다. 예를 들어, 더트의 저장 영역에 특정 데이터를 저장한 후, 이를 읽은 후에 읽혀진 데이터가 특정 데이터와 동일한 지 여부를 따라 테스트 동작의 성공/실패가 판별될 수 있다. 더트 내의 특정 저장 영역이 불량으로 판별될 경우, 테스트 프로그램은 특정 저장 영역을 호스트 장치(100)로 전송하도록 구현될 수 있다. 또한, 테스트 프로그램은 특정 저장 영역을 리던던시 영역으로 대체하거나 특정 저장 영역이 불량임을 표시하도록 구현될 수 있다.
실시 예에 있어서, 테스트 프로그램은 멀티 포트를 지원하는 더트의 테스트 효율성 향상을 위하여 복수의 커맨드들 동시에 발생하도록 구현될 수 있다. 일반적으로 더트에 대한 접근을 수행하기 위해 프로그램은 디바이스 드라이버(예, 커널)로 커맨드를 전달한다.
실시 예에 있어서, 호스트 장치(100)의 물리 계층과 더트(210)의 물리 계층은 물리적으로 연결될 수 있다. 여기서 물리적인 연결은 듀얼 포트(PT1, PT2)를 이용할 수 있다. 예를 들어, 호스트 장치(100)는 물리 계층에 대응하는 하드웨어(예, PCIe 포트들)로 구현될 수 있다.
한편, 일반적인 어플리케이션 프로그램에서 발행된 커맨드 구조는, 동작을 정의하는 위한 동작 코드, 제어(특징)와 물리적 데이터 접근을 위한 논리 블록 어드레스, 정량적인 데이터 양을 지시하는 전송 길이를 포함할 수 있다. 본 발명의 테스트 프로그램에서 발생된 커맨드 구조는, 듀얼 포트를 사용을 지시하는 정보 및 듀얼 포트 지원으로 추가되는 어드레스를 더 포함할 수 있다.
도 4는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생되는 듀얼 포트 커맨드 발생 방법을 예시적 보여주는 도면이다. 도 4를 참조하면, 어플리케이션 계층에 대응하는 테스트 프로그램에서 발생되는 커맨드는, 동작 코드(OP code), 제 1 어드레스(ADDR1), 전송 길이에 대응하는 섹터 카운트, 피쳐스(features), 듀얼포트 딜리미터(플래그), 및 제 2 어드레스(ADDR2)를 포함할 수 있다.
테스트 프로그램에서 발생되는 커맨드는 커맨드 계층, 즉 디바이스 드라이버에서 듀얼 포트 딜리미터(플래그)에 의거하여 2 개의 커맨드들로 분리 및 발생할 수 있다. 실시 예에 있어서, 디바이스 드라이버에서 발생된 제 1 커맨드는 동작 코드, 제 1 어드레스(ADDR1), 섹터 카운트, 및 피쳐스(features)를 포함할 수 있다. 여기서 제 1 커맨드는 듀얼 포트(PT1, PT2) 중에서 제 1 포트(PT1)에 전송될 수 있다.
실시 예에 있어서, 디바이스 드라이버에서 발생된 제 2 커맨드는 동작 코드, 제 2 어드레스(ADDR2), 섹터 카운트, 및 피쳐스를 포함할 수 있다. 여기서 제 2 커맨드는 듀얼 포트(PT1, PT2) 중에서 제 2 포트(PT2)에 전송될 수 있다.
한편, 도 4에 도시된 커맨드 발생 방법은 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 본 발명의 호스트 장치(100)는 다양한 방법으로 듀얼 포트에 대응하는 커맨드를 발생할 수 있다.
도 5는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조를 예시적으로 보여주는 도면이다. 도 5를 참조하면, 테스트 프로그램에서 발생된 읽기 커맨드의 구조는, 1 바이트의 동작 코드, 7 바이트의 제 1 어드레스(ADDR1), 전송 길이에 대응하는 그룹 넘버, 1 바이트의 듀얼 포트 딜리미터(dual port delimiter)를 지시하는 플래그, 7 바이트의 제 2 어드레스(ADDR2)를 포함할 수 있다.
한편, 도 5에 도시된 읽기 커맨드의 구조는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 예를 들어 어드레스(ADDR1, ADDR2)의 크기가 7 바이트에 제한되지 않을 것이다.
본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조는 일반적인 그것과 비교하여, 일반적인 커맨드에 플래그와 추가적인 어드레스를 연접함으로써 구성될 수 있다. 이러한 구성은 테스트 프로그램에서 하나의 커맨드를 디바이스 드라이버에 전송하는 시간 동안에, 실질적으로 다수의 커맨드들이 전송될 수 있도록 한다. 그 결과로써, 본 발명의 테스트 프로그램은 일반적인 그것과 비교하여 듀얼 포트 동작에 따른 커맨드 발생에 대한 오버헤드를 최소화시킬 수 있다.
실시 예에 있어서, Dual Port SAS의 읽기 함수는 read(rdbuf1, rdbuf2, LBA1, LBA2, Test_SC )으로 표현 될 수 있다. 여기서 rebuf1와 rdbuf2는 각 포트에서 출력된 읽기 데이터 버퍼를, LBA1는 첫 번째 논리 블록 어드레스를, LBA2는 추가 논리 블록 어드레스를, Test_SC는 섹터 카운트를 지시할 수 있다.
실시 예에 있어서, 실시 예에 있어서, Dual Port SAS의 쓰기 함수는 write(wdbuf, LBA1, LBA2, Test_SC )으로 표현될 수 있다. 여기서 wdbuf는 쓰기 버퍼를, LBA1는 첫 번째 논리 블록 어드레스를, LBA2는 추가 논리 블록 어드레스를, Test_SC는 섹터 카운트를 지시할 수 있다.
실시 예에 있어서, Dual Port NVMe의 읽기 함수는 readnvme(rdbuf1, rdbuf2, LBA1, LBA2, SC)으로 표현될 수 있다. 여기서 rdbuf1는 읽기 버퍼를, rdbuf2는 듀얼 포트 지원 읽기 버퍼를, LBA1는 논리 블록 어드레스를, LBA2는 듀얼 포트 지원 논리 블록 어드레스를, 및 SC는 섹터 카운트를 지시할 수 있다.
실시 예에 있어서, Dual Port NVMe의 쓰기 함수는 writenvme(wdbuf, LBA1, LBA2, SC)으로 표현될 수 있다. 여기서 wdbuf는 쓰기 버퍼를, LBA1는 논리 블록 어드레스의 비트들, LBA2는 듀얼 포트 지원 논리 블록 어드레스의 비트들, SC는 섹터 카운트를 지시할 수 있다.
한편, 디바이스 드라이버는 커맨드의 플래그 값에 따라 듀얼 포트 동작 지원 여부를 결정하고, 듀얼 포트 동작 지원 가능할 때 상위 계층에서 전송된 커맨드를 듀얼 포트 지원에 적합한 커맨드들로 변경할 수 있다.
도 6은 본 발명의 실시 예에 따른 듀얼 포트 커맨드 처리 과정을 예시적으로 보여주는 도면이다. 도 6을 참조하면, CPU는 듀얼 포트 커맨드를 발행하고, 제 1 포트(PT1)을 통하여 제 1 커맨드들이 순차적으로 SSD에 전송되고, 동시에 제 1 포트(PT2)를 통하여 제 2 커맨드들이 순차적으로 SSD에 전송될 수 있다. SSD는 제 1 및 및 제 2 포트들(PT1, PT2)을 통하여 수신된 제 1 및 제 2 커맨드들을 동시에 처리할 수 있다.
실시 예에 있어서, CPU와 SSD 사이에서 제 1 및 제 2 커맨드들은 큐잉(queuing) 방식에 따라 송수신될 수 있다.
도 7은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 실시 예를 보여주는 블록도이다. 도 7을 참조하면, 듀얼 포트 SSD(300)는 제 1 포트(PT1)에 연결된 제 1 메모리 제어기(MC1, 311), 제 1 메모리 제어기(311)에 연결된 적어도 하나의 비휘발성 메모리 장치(NVM(s), 321), 제 2 포트(PT2)에 연결된 제 2 메모리 제어기(MC2, 312), 제 2 메모리 제어기(312)에 연결된 적어도 하나의 비휘발성 메모리 장치(NVM(s), 322)를 포함할 수 있다.
메모리 제어기(311/312)는 복수의 채널들을 통하여 비휘발성 메모리 장치(321/322)에 연결될 수 있다. 메모리 제어기(312/312)는 ECC(error correction code) 기능, 웨어 레벨링(wear leveling), 배드 블록 관리(bad block management), 신호 처리 등을 수행하도록 구현될 수 있다. 메모리 제어기(312/312)는, 도시되지 않았지만, 적어도 하나의 프로세서, 버퍼 메모리, 버퍼 메모리 제어기, 에러 정정 회로, 호스트 인터페이스, 비휘발성 메모리 인터페이스 등을 포함할 수 있다.
적어도 하나의 프로세서는 듀얼 포트 저장 장치(300)의 전반적인 동작을 제어할 수 있다. 버퍼 메모리 제어기는 버퍼 메모리를 제어하도록 구현될 수 있다. 에러 정정 회로는 쓰기 동작에서 프로그램 될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(321/322)로부터 복구된 데이터의 에러를 정정할 수 있다. 에러 정정 회로는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러를 정정할 수 있다.
도시되지 않았지만, 메모리 제어기(321/322)를 동작하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
호스트 인터페이스는 외부의 호스트(100, 도 1 참조)와 인터페이스 기능을 제공할 수 있다. 실시 예에 있어서, 호스트 인터페이스는 다양한 종류의 인터페이스에 의해 구현될 수 있으며, NVMe(non-volatile memory express), PCIe(peripheral component interconnect express), SATA(serial at attachment), SCSI(small computer system interface), SAS(serial attached SCSI), UAS(USB(universal storage bus) attached SCSI), iSCSI(internet small computer system interface), Fiber Channel, FCoE(fiber channel over ethernet) 등과 같은 통신 인터페이스로 구현될 수 있다.
비휘발성 메모리 인터페이스는 비휘발성 메모리 장치(321/322)와 인터페이스 기능을 제공할 수 있다. 예를 들어, 비휘발성 메모리 인터페이스는 래거시(legacy) 낸드 인터페이스 혹은 VNAND(vertical nand flash memory) 인터페이스로 구현될 수 있다. 하지만, 비휘발성 메모리 인터페이스가 여기에 제한되지 않는다고 이해되어야 할 것이다.
버퍼 메모리는 메모리 제어기(311/312)의 동작에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들에 다양한 방법으로 맵핑 될 수 있다. 버퍼 메모리는 페이지 비트맵 정보 및 읽기 카운트 정보를 저장할 수 있다. 실시 예에 있어서, 버퍼 메모리는 휘발성 메모리 혹은 비휘발성 메모리로 구현될 수 있다. 예를 들어, 버퍼 메모리는 DRAM(dynamic random access memory) 혹은 PRAM(phase random access memory)로 구현될 수 있다.
실시 예에 있어서, 제 1 포트(PT1)를 통하여 전송된 제 1 커맨드들은 제 1 메모리 제어기(311)에서 처리되고, 제 2 포트(PT2)를 통하여 전송된 제 2 커맨드들은 제 2 메모리 제어기(312)에서 처리될 수 있다. 실시 예에 있어서, 제 1 메모리 제어기(311) 및 제 2 메모리 제어기(312)는 대응하는 커맨드들을 독립적으로 처리할 수 있다.
실시 예에 있어서, 적어도 하나의 비휘발성 메모리 장치들(321, 322)의 각각은, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.
또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착 됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리 장치(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
한편, 도 7에 도시된 듀얼 포트 SSD(300)는 포트들(PT1, PT2)의 각각에 대응하는 비휘발성 메모리 장치들(321, 322)을 포함 하였다. 하지만, 본 발명의 듀얼 포트 SSD가 여기에 제한되지 않을 것이다.
도 8은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 다른 실시 예를 보여주는 블록도이다. 도 8을 참조하면, 듀얼 포트 SSD(400)는 도 7의 그것과 비교하여 버스(415)를 통하여 공유하는 적어도 하나의 비휘발성 메모리 장치(420)를 포함할 수 있다. 제 1 및 제 2 메모리 제어기들(411, 422)은, 도 7의 그것들과 동일한 기능을 수행하도록 구현될 수 있다.
도 9는 본 발명의 실시 예에 따른 호스트의 커맨드 발생 방법을 예시적으로 보여주는 도면이다. 도 1 내지 도 9를 참조하면, 호스트 장치(100)의 커맨드 발생 방법은 다음과 같다.
CPU(110)은 테스트 프로그램을 수행함으로써 테스트 동작을 위한 듀얼 포트 커맨드를 발행할 수 있다(S110). 디바이스 드라이버는 발행된 듀얼 포트 커맨드를 수신하고, 대응하는 제 1 포트(PT1)로 전송할 제 1 커맨드와 제 2 포트(PT2)로 전송할 제 2 커맨드를 발생할 수 있다(S120). 여기서 디바이스 드라이버는 듀얼 포트 커맨드의 포함된 듀얼 포트 딜리미터를 판별하고, 듀얼 포트 딜리미터의 판별 동작에 따른 듀얼 포트 지원 여부를 결정하고, 듀얼 포트 지원 시 각 포트에 대응하는 커맨드들을 발생할 수 있다. 이후, 제 1 및 제 2 커맨드들은 대응하는 포트들(PT1, PT2)로 각각 동시에 전송될 수 있다(S130).
도 10은 본 발명의 실시 예에 따른 듀얼 포트 SSD의 테스트 방법을 예시적으로 보여주는 도면이다. 도 1 내지 도 10을 참조하면, 듀얼 포트 SSD의 테스트 방법은 다음과 같다.
우선 테스트 동작을 위하여 듀얼 포트 SSD의 제 1 및 제 2 포트들(PT1, PT2, 도 1 참조)이 활성화될 것이다. 제 1 및 제 2 포트들(PT1, PT2)의 활성화는 호스트 장치(100)의 제어에 따라 수행될 수 있다. 하지만, 제 1 및 제 2 포트들(PT1, PT2)의 활성화가 반드시 여기에 제한되지는 않을 것이다. 듀얼 포트 SSD는 제 1 및 제 2 포트들(PT1, PT2)을 통하여 제 1 및 제 2 커맨드들을 동시에 수신할 수 있다(S210). 여기서 듀얼 포트 SSD는 복수의 제 1 커맨드들, 복수의 제 2 커맨드들을 저장할 수 있다. 예를 들어, 듀얼 포트 SSD는 큐잉 방식으로 제 1 포트를 통하여 복수의 제 1 커맨드들을 차례로 수신 및 저장하고, 제 2 포트를 통하여 복수의 제 2 커맨드들을 차례로 수신 및 저장 할 수 있다.
이후, 듀얼 포트 SSD는 저장된 제 1 및 제 2 커맨드들에 응답하여 각각에 대응하는 제 1 메모리 및 제 2 메모리를 동시에 테스트할 수 있다(S220). 테스트 결과 값들은 임시로 버퍼에 저장되었다가, 이후에 호스트 장치(100)로 전송될 수 있다.
한편, 본 발명의 테스트 시스템은 듀얼 포트 지원하는 더트에 제한되지 않을 것이다. 본 발명의 테스트 시스템은 3개 이상의 멀티 포트 지원하는 더트에 적용 가능하다.
도 11은 본 발명의 다른 실시 예에 따른 테스트 시스템을 예시적으로 보여주는 도면이다. 도 11을 참조하면, 테스트 시스템(20)은 호스트(100a) 및 복수의 더트들(210a, ... , 2N0b)을 포함할 수 있다. 호스트(100a)는 도 1의 그것과 비교하여 4개의 포트들(PT1, PT2, PT3, PT4)을 통하여 연결된 더트들(210a, ..., 2N0a)을 테스트 할 수 있다. 더트들(210, ... , 2N0a)의 각각은 4개의 포트들(PT1, PT2, PT3, PT4)을 모두 활성화시킬 수 있고, 활성화된 4개의 포트들(PT1, PT2, PT3, PT4)을 통하여 수신된 커맨드들을 동시에 독립적으로 처리할 수 있다.
도 12는 본 발명의 실시 예에 따른 저장 장치가 적용된 데이터 서버 시스템을 예시적으로 보여주는 도면이다. 도 12를 참조하면, 데이터 서버 시스템(1000)은 데이터 베이스 관리 시스템(RDBMS, 1100), 캐시 서버(1200), 및 어플리케이션 서버(1300)를 포함할 수 있다.
캐시 서버(1200)는 데이터 베이스 관리 시스템(1100)로부터의 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다. 데이터 베이스 관리 시스템(1200)은 도 1 내지 도 11에서 설명된 듀얼 포트 저장 장치를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 서버 시스템(1000)은 멀티 포트를 통하여 테스트 동작을 빠르고 신속하게 수행할 수 있기에, 종래의 그것과 비교하여 관리 비용을 크게 줄일 수 있다.
본 발명의 실시 예에 따른 SAS Device는 다수의 Port를 이용한 Write/Read를 효율적으로 수행함으로써 데이터 전송속도를 향상시키고, 정량적인 테스트 진행 시 테스트 시간을 감소시킴으로써 테스트 효율성을 향상시킬 수 있다.
본 발명의 실시 예에 따른 SAD Device를 테스트하는 방법은 각 포트를 동시에 이용하여 최대 성능으로 테스트를 수행할 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20: 테스트 시스템
100, 100a: 호스트
110, 110a: CPU
120, 120a: HBA
210, 220, 2N0: 더트
PT1: 제 1 포트
PT2: 제 2 포트
201a, 201b: 커넥터
300, 400: 듀얼 포트 SSD

Claims (20)

  1. 호스트 장치, 및 상기 호스트 장치에 멀티 포트를 통하여 연결된 저장 장치들을 포함하는 테스트 시스템의 방법에 있어서:
    테스트 프로그램에서 커맨드를 발행하는 단계;
    디바이스 드라이버에서 상기 커맨드에 대응하는 복수의 커맨드들을 발생하는 단계; 및
    상기 저장 장치들의 각각의 상기 멀티 포트로 상기 복수의 커맨드들을 동시에 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 멀티 포트는 듀얼 포트인 방법.
  3. 제 1 항에 있어서,
    상기 커맨드는 동작 코드, 제 1 어드레스, 듀얼 포트 동작을 지시하는 플래그, 및 제 2 어드레스를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 복수의 커맨드들을 발생하는 단계는,
    상기 디바이스 드라이버에서 상기 커맨드로부터 상기 플래그의 존재 여부를 판별하는 단계를 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 복수의 커맨드들을 발생하는 단계는,
    상기 플래그가 존재할 때, 상기 동작 코드 및 상기 제 1 어드레스를 갖는 제 1 커맨드, 및 상기 동작 코드 및 상기 제 2 어드레스를 갖는 제 2 커맨드를 발생하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 저장 장치들의 각각의 상기 멀티 포트의 모든 포트들을 활성화시키는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    물리 계층에서 PCIe(peripheral component interconnect express) 인터페이스에 따라 상기 복수의 커맨드들이 전송되는 방법.
  8. 통신 프로토콜에 따라 구현된 제 1 포트;
    상기 통신 프로토콜에 따라 구현된 제 2 포트;
    제 1 적어도 하나의 비휘발성 메모리 장치;
    제 2 적어도 하나의 비휘발성 메모리 장치;
    상기 제 1 포트에 연결되고, 상기 제 1 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 1 메모리 제어기; 및
    상기 제 2 포트에 연결되고, 상기 제 2 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 2 메모리 제어기를 포함하고,
    테스트 동작시 상기 제 1 포트 및 상기 제 2 포트는 활성화되고,
    상기 제 1 및 제 2 메모리 제어기들의 각각은 대응하는 포트를 통하여 커맨드들을 수신하고, 상기 수신된 커맨드들에 응답하여 대응하는 비휘발성 메모리 장치를 테스트하는 저장 장치.
  9. 제 8 항에 있어서,
    상기 제 1 포트 및 제 2 포트를 갖는 커넥터를 더 포함하는 저장 장치.
  10. 제 9 항에 있어서,
    상기 커넥터는,
    상기 제 1 포트에 대응하는 싱글 핀들, 전원 및 제어 핀들을 갖는 제 1 측면; 및
    상기 제 1 측면에 대향하고, 상기 제 2 포트에 대응하는 싱글 핀들을 갖는 제 2 측면을 포함하는 저장 장치.
  11. 제 9 항에 있어서,
    상기 커넥터는,
    상기 제 1 포트에 대응하는 신호 핀들, PCIe 사이드밴드를 위한 제 1 핀들, 및 전원핀들을 갖는 제 1 측면; 및
    상기 제 1 측면에 대향하고, 상기 PCIe 사이드밴드를 위한 제 2 핀들, 상기 제 2 포트에 대응하는 신호 핀들, 및 상기 PCIe 사이드밴드를 위한 제 3 핀들을 갖는 제 2 측면을 포함하는 저장 장치.
  12. 제 8 항에 있어서,
    상기 제 1 적어도 하나의 비휘발성 메모리 장치와 상기 제 2 적어도 하나의 비휘발성 메모리 장치는 동일하고,
    상기 제 1 및 제 2 메모리 제어기들의 각각은 버스를 통하여 상기 동일한 비휘발성 메모리 장치를 제어하는 저장 장치.
  13. 제 8 항에 있어서,
    상기 제 1 및 제 2 포트들을 통하여 대응하는 제 1 및 제 2 커맨드들이 동시에 수신되고,
    상기 제 1 및 제 2 커맨드들에 응답하여 대응하는 적어도 하나의 비휘발성 메모리 장치에 대한 테스트가 동시에 수행되는 저장 장치.
  14. 제 8 항에 있어서,
    상기 통신 프로토콜은 NVMe(nonvolatile memory device express) 인터페이스에 따른 프로토콜인 저장 장치.
  15. 호스트 장치; 및
    상기 호스트 장치에 듀얼 포트를 통하여 연결된 복수의 더트들을 포함하고,
    상기 호스트 장치는,
    중앙 처리 장치; 및
    상기 중앙 처리 장치와 상기 복수의 더트들을 연결하는 호스트 버스 어댑터를 포함하고,
    테스트 동작시 상기 듀얼 포트 중 제 1 포트로 제 1 커맨드가 전송되면서, 상기 듀얼 포트 중 제 2 포트로 제 2 커맨드가 동시에 전송되는 테스트 시스템.
  16. 제 15 항에 있어서,
    상기 호스트 버스 어댑터는 상기 복수의 더트들에 대응하는 복수의 버스 어댑터 유닛들을 포함하는 테스트 시스템.
  17. 제 15 항에 있어서,
    상기 호스트 장치의 소프트웨어 계층은, 듀얼 포트 커맨드를 발행하는 어플리케이션 계층과, 상기 듀얼 포트 커맨드에 응답하여 상기 제 1 및 제 2 포트들에 전송할 상기 제 1 및 제 2 커맨드들 발생하는 커맨드 계층을 포함하는 테스트 시스템.
  18. 제 17 항에 있어서,
    상기 듀얼 포트 커맨드는 동작 코드, 제 1 어드레스, 섹터 카운트, 피쳐스, 듀얼 포트 딜리미터, 제 2 어드레스를 포함하고,
    상기 제 1 커맨드는 상기 동작 코드, 상기 제 1 어드레스, 상기 섹터 카운트, 및 상기 피쳐스를 포함하고,
    상기 제 2 커맨드는 상기 동작 코드, 상기 제 2 어드레스, 상기 섹터 카운트, 및 상기 피쳐스를 포함하는 테스트 시스템.
  19. 제 15 항에 있어서,
    상기 복수의 더트들의 각각은 SAS(serial attached small computer system interface)SSD(solid state drive)인 테스트 시스템.
  20. 저장 장치의 테스트 방법에 있어서:
    제 1 포트를 통하여 제 1 커맨드를 수신하는 단계;
    상기 제 1 커맨드를 수신하면서 제 2 포트를 통하여 제 2 커맨드를 수신하는 단계;
    상기 제 1 커맨드에 응답하여 제 1 메모리를 테스트 하는 단계; 및
    상기 제 1 메모리를 테스트하면서, 상기 제 2 커맨드에 응답하여 제 2 메모리를 테스트하는 단계를 포함하는 방법.
KR1020160099603A 2016-08-04 2016-08-04 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법 KR20180016680A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160099603A KR20180016680A (ko) 2016-08-04 2016-08-04 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법
US15/481,441 US10372570B2 (en) 2016-08-04 2017-04-06 Storage device, test system for testing the same, and method thereof
CN201710530193.5A CN107688516A (zh) 2016-08-04 2017-06-30 存储设备、用于测试该存储设备的测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160099603A KR20180016680A (ko) 2016-08-04 2016-08-04 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20180016680A true KR20180016680A (ko) 2018-02-19

Family

ID=61071423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160099603A KR20180016680A (ko) 2016-08-04 2016-08-04 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법

Country Status (3)

Country Link
US (1) US10372570B2 (ko)
KR (1) KR20180016680A (ko)
CN (1) CN107688516A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106771A (ko) * 2018-03-09 2019-09-18 삼성전자주식회사 적응형 인터페이스 고 가용성 스토리지 장치
US10922000B2 (en) 2019-05-10 2021-02-16 SK Hynix Inc. Controller, operating method thereof, and memory system including the same
KR102362775B1 (ko) * 2020-11-04 2022-02-14 주식회사 더원 메모리 검사 장비
KR20230065067A (ko) * 2021-11-04 2023-05-11 주식회사 엑시콘 PCIe 인터페이스 기반의 SSD 테스트 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10634723B2 (en) * 2017-01-03 2020-04-28 Advantest Corporation Method and system for acquisition of test data
CN110377221A (zh) * 2018-04-13 2019-10-25 北京忆恒创源科技有限公司 双端口固态存储设备及其数据处理方法
CN109032866A (zh) * 2018-07-25 2018-12-18 太仓市同维电子有限公司 一种多网卡测试同网段产品的多机测试方法
CN109144802A (zh) * 2018-09-12 2019-01-04 杭州智享新电科技有限公司 物联网模块健康管理诊断方法
TW202022626A (zh) * 2018-12-14 2020-06-16 威聯通科技股份有限公司 使用雷靂介面的多重通道儲存裝置及系統
KR20200123680A (ko) * 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 테스트 기판
CN110297735B (zh) * 2019-06-28 2023-06-06 深圳忆联信息系统有限公司 基于固态硬盘的通用复判测试系统
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법
US11899550B2 (en) * 2020-03-31 2024-02-13 Advantest Corporation Enhanced auxiliary memory mapped interface test systems and methods
CN113254297B (zh) * 2021-05-28 2022-05-24 长江存储科技有限责任公司 用于测试双端口硬盘的装置及系统
CN113468083B (zh) * 2021-07-02 2024-01-26 成都忆芯科技有限公司 一种双端口NVMe控制器及控制方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7168005B2 (en) * 2000-09-14 2007-01-23 Cadence Design Systems, Inc. Programable multi-port memory BIST with compact microcode
US7480840B2 (en) * 2004-10-12 2009-01-20 International Business Machines Corporation Apparatus, system, and method for facilitating port testing of a multi-port host adapter
KR100745374B1 (ko) * 2006-02-21 2007-08-02 삼성전자주식회사 멀티포트 반도체 메모리 장치 및 그에 따른 신호 입출력방법
US20070208968A1 (en) * 2006-03-01 2007-09-06 Anand Krishnamurthy At-speed multi-port memory array test method and apparatus
JP4897387B2 (ja) 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
US7904672B2 (en) * 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8499308B2 (en) 2006-12-22 2013-07-30 Lsi Corporation Initiator notification method and apparatus
TWI376603B (en) 2007-09-21 2012-11-11 Phison Electronics Corp Solid state disk storage system with a parallel accessing architecture and a solid state disk controller
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8042011B2 (en) * 2009-04-28 2011-10-18 Synopsys, Inc. Runtime programmable BIST for testing a multi-port memory device
US8201020B2 (en) * 2009-11-12 2012-06-12 International Business Machines Corporation Method apparatus and system for a redundant and fault tolerant solid state disk
US8850128B2 (en) 2009-12-23 2014-09-30 HGST Netherlands B.V. Implementing data storage and dual port, dual-element storage device
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9830958B2 (en) * 2012-05-03 2017-11-28 Nvidia Corporation Time-multiplexed communication protocol for transmitting a command and address between a memory controller and multi-port memory
KR101254646B1 (ko) 2012-08-13 2013-04-15 주식회사 유니테스트 솔리드 스테이트 드라이브 테스터에서 스토리지 인터페이스장치
US9207749B2 (en) 2012-08-28 2015-12-08 Intel Corporation Mechanism for facilitating efficient operations paths for storage devices in computing systems
US9280298B2 (en) 2013-03-15 2016-03-08 Kabushiki Kaisha Toshiba Storage device and storage system
KR101522293B1 (ko) 2013-08-29 2015-05-21 주식회사 유니테스트 복수개의 스토리지를 개별 제어 가능한 테스트 장치
KR101547317B1 (ko) 2013-09-30 2015-08-26 주식회사 유니테스트 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
US20150242160A1 (en) 2014-02-26 2015-08-27 Kabushiki Kaisha Toshiba Memory system, control method of memory system, and controller
US9852779B2 (en) * 2014-03-12 2017-12-26 Futurewei Technologies, Inc. Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers
US9619164B2 (en) 2014-05-06 2017-04-11 Nimble Storage, Inc. Cluster solid state drives
KR102282006B1 (ko) 2014-08-19 2021-07-28 삼성전자주식회사 컴퓨터 장치 및 저장 장치
US9946620B2 (en) * 2015-02-03 2018-04-17 Invecas, Inc. Memory built-in self test system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106771A (ko) * 2018-03-09 2019-09-18 삼성전자주식회사 적응형 인터페이스 고 가용성 스토리지 장치
KR20220127798A (ko) * 2018-03-09 2022-09-20 삼성전자주식회사 적응형 인터페이스 고 가용성 스토리지 장치
US12001376B2 (en) 2018-03-09 2024-06-04 Samsung Electronics Co., Ltd. Adaptive interface high availability storage device
US10922000B2 (en) 2019-05-10 2021-02-16 SK Hynix Inc. Controller, operating method thereof, and memory system including the same
KR102362775B1 (ko) * 2020-11-04 2022-02-14 주식회사 더원 메모리 검사 장비
WO2022097895A1 (ko) * 2020-11-04 2022-05-12 주식회사 더원 메모리 검사 장비
KR20230065067A (ko) * 2021-11-04 2023-05-11 주식회사 엑시콘 PCIe 인터페이스 기반의 SSD 테스트 장치

Also Published As

Publication number Publication date
US20180039554A1 (en) 2018-02-08
CN107688516A (zh) 2018-02-13
US10372570B2 (en) 2019-08-06

Similar Documents

Publication Publication Date Title
US10372570B2 (en) Storage device, test system for testing the same, and method thereof
CN111373362B (zh) 具有分布式读取/写入处理的多设备存储系统
US10496312B2 (en) Method of operating a storage device to compress or decompress data and a data storage system including the storage device
US10019367B2 (en) Memory module, computing system having the same, and method for testing tag error thereof
US20180336139A1 (en) Systems and methods for a highly-available memory
KR20180049338A (ko) 저장 장치 및 그것의 동작 방법
KR20140145834A (ko) 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법
CN110689915A (zh) 经由主机/串行接口的远程ssd调试及其执行方法
US10127103B2 (en) System and method for detecting and correcting mapping table errors in a non-volatile memory system
KR20150015764A (ko) 스토리지 디바이스 및 이를 포함하는 스토리지 시스템
CN113448497A (zh) 子块的动态分配
US9940034B2 (en) Reducing read access latency by straddling pages across non-volatile memory channels
US20190355425A1 (en) Memory system and operating method thereof
US11380418B2 (en) Memory controllers, storage devices, and operating methods of the storage devices
US11119855B2 (en) Selectively storing parity data in different types of memory
CN114546254A (zh) 写入数据的方法和非易失性存储器装置
US20190108095A1 (en) Data integrity in non-volatile storage
US11934270B2 (en) Write command execution for data protection and recovery schemes
EP4310846A1 (en) Storage controllers, operating methods of storage controllers, and operating methods of storage devices including storage controllers
US20230152984A1 (en) Storage devices configured to obtain data of external devices for debugging
US20240012703A1 (en) Storage controllers performing reset operations using setting data, operating methods of storage controllers, and operating methods of storage devices including storage controllers
US11734094B2 (en) Memory component quality statistics
US20240193105A1 (en) Computational storage device and method of operating the same
US20240061614A1 (en) Error detection and correction in a controller
US20240134696A1 (en) Offloading Data Storage Device Processing Tasks to a Graphics Processing Unit

Legal Events

Date Code Title Description
E902 Notification of reason for refusal