KR20180016680A - Storage device, test system for testing the same, and method thereof - Google Patents

Storage device, test system for testing the same, and method thereof 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
Korean (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 삼성전자주식회사
Priority to KR1020160099603A priority Critical patent/KR20180016680A/en
Priority to US15/481,441 priority patent/US10372570B2/en
Priority to CN201710530193.5A priority patent/CN107688516A/en
Publication of KR20180016680A publication Critical patent/KR20180016680A/en

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]

Abstract

According to the present invention, a method of a test system includes: a step of issuing a command in a test program; a step of generating a plurality of commands corresponding to the command in a device driver; and a step of simultaneously transmitting the commands to a multi-port of each storage device. The storage device of the present invention can improve a data transfer rate by efficiently performing Write and Read operations using a plurality of ports and test efficiency by reducing test time when a quantitative test is performed.

Description

저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법{STORAGE DEVICE, TEST SYSTEM FOR TESTING THE SAME, AND METHOD THEREOF}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a storage device,

본 발명은 저장 장치 및 그것을 테스트 하는 테스트 시스템 및 방법에 관한 것이다.The present invention relates to a storage device and a test system and method for testing it.

최근의 저장 장치(storage device)는 사용 효율을 높이고자 멀티 포트(multi port)를 형태로 개발되고 있다. 종래의 테스트 장치는 저장 장치의 멀티 포트를 동시에 이용하지 않고 순차적으로 포트를 사용함으로 최대 전송속도 이하로 동작 시키는 방식으로 테스트를 수행한다. 게다가 종래의 테스트 장치는 하드웨어/소프트웨어적으로 다수 포트에 대한 접근을 할 수 없다.Recent storage devices are being developed in the form of multi-ports in order to increase the efficiency of use. The conventional test apparatus performs testing in such a manner that the port is sequentially operated at a speed lower than the maximum transmission speed by not using the multi port of the storage device at the same time. In addition, conventional test equipment can not access multiple ports in hardware / software.

본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 테스트 효율을 증가시키는 멀티 포트 저장 장치 및 그것을 테스트하는 테스트 시스템 및 방법을 제공하는데 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned technical problems, and it is an object of the present invention to provide a multiport storage device for increasing test efficiency and a test system and method for testing the multiport storage device.

본 발명의 실시 예에 따른 호스트 장치, 및 상기 호스트 장치에 멀티 포트를 통하여 연결된 저장 장치들을 포함하는 테스트 시스템의 방법은, 테스트 프로그램에서 커맨드를 발행하는 단계, 디바이스 드라이버에서 상기 커맨드에 대응하는 복수의 커맨드들을 발생하는 단계, 및 상기 저장 장치들의 각각의 상기 멀티 포트로 상기 복수의 커맨드들을 동시에 전송하는 단계를 포함할 수 있다.A method of a test system including a host apparatus according to an embodiment of the present invention and storage devices connected to the host apparatus via a multiport includes issuing a command in a test program, Generating the commands, and simultaneously transmitting the plurality of commands to the multi-port of each of the storage devices.

본 발명의 실시 예에 따른 저장 장치는, 통신 프로토콜에 따라 구현된 제 1 포트, 상기 통신 프로토콜에 따라 구현된 제 2 포트, 제 1 적어도 하나의 비휘발성 메모리 장치, 제 2 적어도 하나의 비휘발성 메모리 장치, 상기 제 1 포트에 연결되고, 상기 제 1 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 1 메모리 제어기, 및 상기 제 2 포트에 연결되고, 상기 제 2 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 2 메모리 제어기를 포함하고, 테스트 동작시 상기 제 1 포트 및 상기 제 2 포트는 활성화되고, 상기 제 1 및 제 2 메모리 제어기들의 각각은 대응하는 포트를 통하여 커맨드들을 수신하고, 상기 수신된 커맨드들에 응답하여 대응하는 비휘발성 메모리 장치를 테스트할 수 있다.A storage device according to an embodiment of the present invention includes a first port implemented according to a communication protocol, a second port implemented according to the communication protocol, a first at least one non-volatile memory device, a second at least one non- A first memory controller coupled to the first port and controlling the first at least one non-volatile memory device, and a second memory controller coupled to the second port and configured to control the second at least one non-volatile memory device Wherein the first port and the second port are activated during a test operation, each of the first and second memory controllers receives commands via a corresponding port, and the received commands The corresponding non-volatile memory device may be tested.

본 발명의 실시 예에 따른 테스트 시스템은, 호스트 장치, 및 상기 호스트 장치에 듀얼 포트를 통하여 연결된 복수의 더트들을 포함하고, 상기 호스트 장치는, 중앙 처리 장치, 및 상기 중앙 처리 장치와 상기 복수의 더트들을 연결하는 호스트 버스 어댑터를 포함하고, 테스트 동작시 상기 듀얼 포트 중 제 1 포트로 제 1 커맨드가 전송되면서, 상기 듀얼 포트 중 제 2 포트로 제 2 커맨드가 동시에 전송될 수 있다.A test system according to an embodiment of the present invention includes a host device and a plurality of dots connected to the host device through a dual port, the host device including a central processing unit, And a second command can be simultaneously transmitted to a second port of the dual port while a first command is transmitted to a first port of the dual port in a test operation.

본 발명의 실시 예에 따른 저장 장치의 테스트 방법은, 제 1 포트를 통하여 제 1 커맨드를 수신하는 단계, 상기 제 1 커맨드를 수신하면서 제 2 포트를 통하여 제 2 커맨드를 수신하는 단계, 상기 제 1 커맨드에 응답하여 제 1 메모리를 테스트 하는 단계, 및 상기 제 1 메모리를 테스트하면서, 상기 제 2 커맨드에 응답하여 제 2 메모리를 테스트하는 단계를 포함할 수 있다.A method of testing a storage device according to an embodiment of the present invention includes receiving a first command through a first port, receiving a second command through a second port while receiving the first command, Testing the first memory in response to the command, and testing the first memory in response to the second command while testing the first memory.

본 발명의 실시 예에 따른 저장 장치 및 그것을 테스트하는 테스트 시스템 및 그것의 방법은 다수의 Port를 이용한 Write/Read를 효율적으로 수행함으로써 데이터 전송속도를 향상시키고, 정량적인 테스트 진행 시 테스트 시간을 감소시킴으로써 테스트 효율성을 향상시킬 수 있다.A storage device according to an embodiment of the present invention and a test system for testing the same and a method thereof can improve data transmission speed by efficiently performing Write / Read using a plurality of ports and reduce test time during quantitative test The test efficiency can be improved.

도 1은 본 발명의 실시 예에 따른 테스트 시스템을 예시적으로 보여주는 도면이다.
도 2a 및 도 2b는 듀얼 포트를 갖는 커넥터들을 예시적으로 보여주는 실시 예들이다.
도 3은 본 발명의 실시 예에 따른 테스트 시스템의 소프트웨어 계층을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생되는 듀얼 포트 커맨드 발생 방법을 예시적 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 듀얼 포트 커맨드 처리 과정을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 실시 예를 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 다른 실시 예를 보여주는 블록도이다.
도 9는 본 발명의 실시 예에 따른 호스트의 커맨드 발생 방법을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 듀얼 포트 SSD의 테스트 방법을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 테스트 시스템을 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 저장 장치가 적용된 데이터 서버 시스템을 예시적으로 보여주는 도면이다.
1 is an exemplary illustration of a test system in accordance with an embodiment of the present invention.
Figures 2a and 2b are illustrative examples of connectors having dual ports.
3 is an exemplary illustration of a software layer of a test system according to an embodiment of the present invention.
4 is a diagram illustrating a method of generating a dual port command generated in a test program according to an embodiment of the present invention.
5 is a diagram illustrating a command structure generated in a test program according to an exemplary embodiment of the present invention.
FIG. 6 is a diagram illustrating a dual port command process according to an exemplary embodiment of the present invention. Referring to FIG.
7 is a block diagram illustrating an embodiment of a dual port SSD according to an embodiment of the present invention.
8 is a block diagram illustrating another embodiment of a dual port SSD according to an embodiment of the present invention.
9 is a diagram illustrating an exemplary method of generating a host command according to an embodiment of the present invention.
10 is a diagram illustrating a method of testing a dual port SSD according to an exemplary embodiment of the present invention.
11 is a diagram illustrating an exemplary test system according to another embodiment of the present invention.
FIG. 12 is an exemplary diagram illustrating a data server system to which a storage device according to an embodiment of the present invention is applied.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.

본 발명의 실시 예에 따른 저장 장치는, 멀티 포트를 지원하고, 멀티 포트를 통하여 테스트 동작을 수행함으로써, 테스트 시간을 감소시키고, 테스트 효율성을 향상시킬 수 있다.The storage device according to the embodiment of the present invention supports the multi-port and performs the test operation through the multi-port, thereby reducing the test time and improving the test efficiency.

도 1은 본 발명의 실시 예에 따른 테스트 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 테스트 시스템(10)은 호스트 장치(100) 및 복수의 더트들(DUT(device under test), 210, 220, ... , 2N0, N은 2 이상의 정수)을 포함할 수 있다.1 is an exemplary illustration of a test system 10 in accordance with an embodiment of the present invention. Referring to FIG. 1, a test system 10 may include a host device 100 and a plurality of dirts (DUTs) 210, 220, ..., 2N0, have.

호스트 장치(100)는 중앙 처리 장치(CPU, 110) 및 호스트 버스 어댑터(HBA, 120)를 포함할 수 있다. 예를 들어, 호스트 장치(100)는 컴퓨팅 장치일 수 있다.The host device 100 may include a central processing unit (CPU) 110 and a host bus adapter (HBA) 120. For example, the host device 100 may be a computing device.

중앙 처리 장치(110)는 하드웨어/소프트웨어/펌웨어를 제어함으로써 복수의 더트들(210, 220, ... , 2N0)에 대한 테스트 동작을 수행할 수 있다. The central processing unit 110 can perform a test operation on the plurality of dots 210, 220, ..., 2N0 by controlling the hardware / software / firmware.

호스트 버스 어댑터(120)는 중앙 처리 장치(110)에 연결되고, 중앙 처리 장치(110)의 테스트 커맨드들을 복수의 더트들(210, 220, ... , 2N0)로 전송하거나, 복수의 더트들(210, 220, ..., 2NO)의 각각의 테스트 커맨드들에 대한 수행 결과 값을 중앙 처리 장치(110)로 전송할 수 있다.The host bus adapter 120 is connected to the central processing unit 110 and transmits test commands of the central processing unit 110 to the plurality of dutts 210, 220, ..., 2N0, (210, 220, ..., 2NO) to the central processing unit (110).

호스트 버스 어댑터(120)는 복수의 더트들(210, 220, ... , 2N0)의 각각에 듀얼 포트들(PT1, PT2)에 연결될 수 있다. 실시 예에 있어서, 호스트 버스 어댑터(120)는 복수의 더트들(210, 220, ... , 2N0)의 각각에 듀얼 포트들(PT1, PT2)에 연결된 복수의 버스 어댑터 유닛들을 포함할 수 있다. 여기서 버스 어댑터 유닛들의 각각은 동일한 테스트 커맨드에 대한 테스트 동작을 병렬적으로 처리하도록 구현될 수 있다. 한편, 도 1에서는 중앙 처리 장치(110)에 하나의 호스트 버스 어댑터(120)가 도시되지만, 본 발명의 호스트 버스 어댑터의 개수가 여기에 제한되지 않을 것이다. 중앙 처리 장치(110)에 복수의 호스트 버스 어댑터들이 연결될 수도 있다고 이해되어야 할 것이다.The host bus adapter 120 may be connected to the dual ports PT1 and PT2 at each of the plurality of dots 210, 220, ..., 2N0. In an embodiment, host bus adapter 120 may include a plurality of bus adapter units coupled to dual ports PT1 and PT2, respectively, of each of a plurality of dots 210, 220, ..., 2N0 . Where each of the bus adapter units may be implemented to process test operations for the same test command in parallel. On the other hand, in FIG. 1, one host bus adapter 120 is shown in the central processing unit 110, but the number of host bus adapters of the present invention is not limited thereto. It should be understood that a plurality of host bus adapters may be connected to the central processing unit 110. [

실시 예에 있어서, 호스트 장치(100)는 더트들(210, 220, ... , 2N0)로부터 테스트 커맨드에 대응하는 테스트 결과 값을 수신하기 전에, 새로운 테스트 커맨드를 더트들(210, 220, ..., 2N0)에 전송할 수 있다.In an embodiment, the host device 100 sends a new test command to the dots 210, 220, ..., 2N0 before receiving a test result value corresponding to the test command from the dots 210, 220, ..., 2N0. ..., 2N0.

실시 예에 있어서, 호스트 장치(100)는 테스트 동작을 수행하기 위하여 더트들(210, 220, ... , 2N0)의 듀얼 포트를 활성화시킬 수 있다.In an embodiment, the host device 100 may activate the dual port of the dots 210, 220, ..., 2N0 to perform a test operation.

실시 예에 있어서, 호스트 장치(100)는 듀얼 포트를 통하여 큐잉(queuing) 방식으로 테스트 커맨드를 더트들(210, 220, ... , 2N0)에 전송할 수 있다. In an embodiment, the host device 100 may transmit a test command to darts 210, 220, ..., 2N0 in a queuing manner through a dual port.

복수의 더트들(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), 및 이와 같은 것 중 어느 하나 일 수 있다.The plurality of dots 210, 220, ..., 2N0 are memory devices on which a test operation is performed. In an embodiment, each of the plurality of dots 210, 220, ..., 2N0 may include dual ports PT1, PT2. Here, each of the dual ports PT1 and PT2 may be implemented by the same communication protocol. The communication protocol may be a non-volatile memory express (NVMe), a peripheral component interconnect (PCIe), a serial at attachment (SATA), a small computer system interface (SCSI), a serial attached SCSI (SAS), a universal storage bus attached SCSI, Internet Small Computer System Interface (iSCSI), Fiber Channel, Fiber Channel over Ethernet (FCoE), and the like.

실시 예에 있어서, 듀얼 포트(PT1, PT2)는 대응하는 더트의 테스트 동작에서 동시에 활성화 될 수 있다. 다른 말로, 제 1 포트(PT1)를 통하여 더트에 대한 제 1 테스트 동작과 제 2 포트(PT2)를 통하여 더트에 대한 제 2 테스트 동작이 독립적으로 수행될 수 있다.In the embodiment, the dual ports PT1 and PT2 can be activated simultaneously in the test operation of the corresponding dirt. In other words, the first test operation for the dirt through the first port PT1 and the second test operation for the dirt through the second port PT2 can be performed independently.

실시 예에 있어서, 복수의 더트들(210, 220, ... , 2N0)의 각각은 SSD(solid state drive)일 수 있다. 예를 들어, 복수의 더트들(210, 220, ... , 2N0)은 SAS (serial attached SCSI) SSD일 수 있다.In an embodiment, each of the plurality of dots 210, 220, ..., 2N0 may be a solid state drive (SSD). For example, the plurality of dots 210, 220, ..., 2N0 may be a serial attached SCSI (SAS) SSD.

실시 예에 있어서, 복수의 더트들(210, 220, ... , 2N0)의 각각은 HDD(hard disk drive)일 수 있다. 예를 들어, 복수의 더트들(210, 220, ... , 2N0)은 SAS (serial attached SCSI) HDD일 수 있다. 한편, 복수의 더트들(210, 220, ... , 2N0)의 각각은 SSD, HDD 이외에도 듀얼 포트로 구성된 어떠한 종류의 메모리 장치일 수 있다고 이해되어야 할 것이다.In an embodiment, each of the plurality of dots 210, 220, ..., 2N0 may be a hard disk drive (HDD). For example, the plurality of dots 210, 220, ..., 2N0 may be a serial attached SCSI (SAS) HDD. It should be understood that each of the plurality of dots 210, 220, ..., 2N0 may be any kind of memory device configured as a dual port in addition to the SSD and the HDD.

호스트 장치(100)는 더트들(210, 220, ... , 2N0)의 각각의 모든 포트들(PT1, PT2)에 물리적으로 연결되고, 동시에 포트들(PT1, PT2)에 대한 접근을 수행할 수 있다.The host device 100 is physically connected to all of the ports PT1 and PT2 of each of the dots 210, 220, ..., 2N0 and simultaneously performs access to the ports PT1 and PT2 .

한편, 도 1에 도시된 더트들(210, 220, ... , 2N0)의 각각은 2개의 포트들(PT1, PT2)을 포함하였다. 하지만, 본 발명의 더트들이 여기에 제한될 필요는 없다. 본 발명의 더트들은 3개 이상의 포트들(멀티 포트)을 포함할 수 있다고 이해되어야 할 것이다.On the other hand, each of the dots 210, 220, ..., 2N0 shown in FIG. 1 includes two ports PT1 and PT2. However, the dots of the present invention need not be limited thereto. It should be understood that the dirts of the present invention may include three or more ports (multiport).

본 발명의 실시 예에 따른 테스트 시스템(10)은 듀얼 포트(PT1, PT2)를 모두 이용하여 대응하는 더트에 대한 테스트 동작을 수행함으로써, 종래의 그것과 비교하여 테스트 시간을 감소시키고, 이에 따른 테스트 성능 향상을 기대할 수 있다.The test system 10 according to the embodiment of the present invention performs the test operation on the corresponding dirt using all of the dual ports PT1 and PT2 to reduce the test time as compared with the conventional one, Performance can be expected to improve.

도 2a 및 도 2b는 듀얼 포트를 갖는 커넥터들(201a, 201b)을 예시적으로 보여주는 실시 예들이다. 도 2a를 참조하면, 커넥터(201a)의 제 1 측면에 제 1 싱글 핀들, 전원 및 제어 핀들이 배치되고, 제 1측면에 대향하는 제 2 측면에 제 1 싱글 핀들이 배치된다. 여기서 제 1 싱글 핀들은 제 1 포트(Port A)을 지시하고, 제 2 싱글 핀들은 제 2 포트(Port B)을 지시한다.2A and 2B are illustrative examples of connectors 201a and 201b having a dual port. Referring to FIG. 2A, first single pins, power and control pins are disposed on a first side of the connector 201a, and first single pins are disposed on a second side opposite to the first side. Wherein the first single pins indicate a first port (Port A) and the second single pins indicate a second port (Port B).

도 2b를 참조하면, 커넥터(201b)의 제 1 측면에 전원핀들(P1~P15), PCIe 사이드밴드 핀들(E1 ~ E6), 제 1 포트(S1 ~ S7)가 배치되고, 제 1 측면에 대향하는 제 2 측면에 PCIe 레인들 및 사이드밴드 핀들(E17 ~ E39), 제 2 포트(S8 ~ S14), 및 PCIe 레인들 및 기준 클록 핀들(E7 ~ E16)이 배치될 수 있다.Referring to FIG. 2B, power pins P1 to P15, PCIe sideband pins E1 to E6, and first ports S1 to S7 are disposed on a first side of the connector 201b, The PCIe lanes and the sideband pins E17 to E39, the second ports S8 to S14, and the PCIe lanes and the reference clock pins E7 to E16 may be disposed on the second side.

실시 예에 있어서, 커넥터(201a, 201b)의 각각은 SSD Form Factor 커넉터로 구현될 수 있다.In an embodiment, each of connectors 201a, 201b may be implemented with an SSD Form Factor connector.

한편, 도 2a 및 도 2b에 도시된 커넥터들(201a, 201b)의 핀 배치는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 본 발명의 저장 장치에 포함된 커넥터는 다양한 형태로 듀얼 포트를 구성할 수 있다. On the other hand, it should be understood that the pin arrangement of the connectors 201a and 201b shown in Figs. 2A and 2B is merely an embodiment that does not limit the present invention. The connector included in the storage device of the present invention can constitute a dual port in various forms.

도 3은 본 발명의 실시 예에 따른 테스트 시스템(10, 도 1 참조)의 소프트웨어 계층을 예시적으로 보여주는 도면이다. 도 1 내지 도 3을 참조하면, 테스트 동작을 수행하기 위한 호스트 장치(100)의 소프트웨어 계층은, 어플리케이션 계층, 커맨드 계층, 전송 계층, 링크 계층, 및 물리 계층을 포함할 수 있다. 또한 테스트 동작이 수행되는 더트(예를 들어, 도 1의 210))의 소프트웨어 계층은, 어플리케이션 계층, 커맨드 계층, 전송 계층, 링크 계층, 및 물리 계층을 포함할 수 있다.Figure 3 is an exemplary illustration of a software layer of a test system 10 (Figure 1) in accordance with an embodiment of the present invention. 1 to 3, the software layer of the host device 100 for performing a test operation may include an application layer, a command layer, a transport layer, a link layer, and a physical layer. The software layer of a dirt (e.g., 210 in FIG. 1) where the test operation is performed may include an application layer, a command layer, a transport layer, a link layer, and a physical layer.

실시 예에 있어서, 호스트 장치(100)의 어플리케이션 계층과 더트(210)의 어플리케이션 계층은 논리적으로 연결될 수 있고, 호스트 장치(100)의 전송 계층과 더트(210)의 전송 계층은 논리적으로 연결될 수 있고, 호스트 장치(100)의 링크 계층과 더트(210)의 링크 계층은 논리적으로 연결될 수 있다.In an embodiment, the application layer of the host device 100 and the application layer of the dart 210 may be logically connected, and the transport layer of the host device 100 and the transport layer of the dart 210 may be logically connected , The link layer of the host device 100 and the link layer of the dart 210 can be logically connected.

실시 예에 있어서, 호스트 장치(100)는 어플리케이션 계층에 대응하는 테스트 프로그램(소프트웨어)으로 구현되고, 커맨드 계층에 대응하는 커널(kernel, 혹은 "device driver")로 구현될 수 있다.In the embodiment, the host apparatus 100 may be implemented as a test program (software) corresponding to an application layer, and implemented as a kernel (or a "device driver") corresponding to the command layer.

여기서 테스트 프로그램은 호스트 장치(100)의 메모리(미도시)에 저장될 수 있다. 테스트 프로그램은 테스트 동작을 수행하기 위한 테스트 시퀀스 혹은 테스트 데이터를 포함할 수 있다. 예를 들어, 더트의 저장 영역에 특정 데이터를 저장한 후, 이를 읽은 후에 읽혀진 데이터가 특정 데이터와 동일한 지 여부를 따라 테스트 동작의 성공/실패가 판별될 수 있다. 더트 내의 특정 저장 영역이 불량으로 판별될 경우, 테스트 프로그램은 특정 저장 영역을 호스트 장치(100)로 전송하도록 구현될 수 있다. 또한, 테스트 프로그램은 특정 저장 영역을 리던던시 영역으로 대체하거나 특정 저장 영역이 불량임을 표시하도록 구현될 수 있다.Here, the test program may be stored in a memory (not shown) of the host apparatus 100. The test program may include a test sequence or test data for performing a test operation. For example, after the specific data is stored in the storage area of the dirt, the success / failure of the test operation may be determined depending on whether the read data is the same as the specific data. If a particular storage area in the dirt is determined to be bad, the test program may be implemented to transfer the specific storage area to the host device 100. [ The test program may also be implemented to replace a particular storage area with a redundancy area or to indicate that a particular storage area is bad.

실시 예에 있어서, 테스트 프로그램은 멀티 포트를 지원하는 더트의 테스트 효율성 향상을 위하여 복수의 커맨드들 동시에 발생하도록 구현될 수 있다. 일반적으로 더트에 대한 접근을 수행하기 위해 프로그램은 디바이스 드라이버(예, 커널)로 커맨드를 전달한다.In an embodiment, the test program may be implemented to generate a plurality of commands at the same time in order to improve the test efficiency of the dots supporting multi-port. Generally, to access the dirt, the program passes the command to the device driver (eg, the kernel).

실시 예에 있어서, 호스트 장치(100)의 물리 계층과 더트(210)의 물리 계층은 물리적으로 연결될 수 있다. 여기서 물리적인 연결은 듀얼 포트(PT1, PT2)를 이용할 수 있다. 예를 들어, 호스트 장치(100)는 물리 계층에 대응하는 하드웨어(예, PCIe 포트들)로 구현될 수 있다.In an embodiment, the physical layer of the host device 100 and the physical layer of the dart 210 may be physically connected. Here, the physical connection can utilize the dual ports PT1 and PT2. For example, the host device 100 may be implemented with hardware (e.g., PCIe ports) corresponding to the physical layer.

한편, 일반적인 어플리케이션 프로그램에서 발행된 커맨드 구조는, 동작을 정의하는 위한 동작 코드, 제어(특징)와 물리적 데이터 접근을 위한 논리 블록 어드레스, 정량적인 데이터 양을 지시하는 전송 길이를 포함할 수 있다. 본 발명의 테스트 프로그램에서 발생된 커맨드 구조는, 듀얼 포트를 사용을 지시하는 정보 및 듀얼 포트 지원으로 추가되는 어드레스를 더 포함할 수 있다.On the other hand, a command structure issued in a general application program may include an operation code for defining an operation, a control (feature) and a logical block address for accessing physical data, and a transmission length indicating a quantitative amount of data. The command structure generated in the test program of the present invention may further include information indicating use of a dual port and addresses added with dual port support.

도 4는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생되는 듀얼 포트 커맨드 발생 방법을 예시적 보여주는 도면이다. 도 4를 참조하면, 어플리케이션 계층에 대응하는 테스트 프로그램에서 발생되는 커맨드는, 동작 코드(OP code), 제 1 어드레스(ADDR1), 전송 길이에 대응하는 섹터 카운트, 피쳐스(features), 듀얼포트 딜리미터(플래그), 및 제 2 어드레스(ADDR2)를 포함할 수 있다.4 is a diagram illustrating a method of generating a dual port command generated in a test program according to an embodiment of the present invention. 4, a command generated in a test program corresponding to an application layer includes an operation code (OP code), a first address ADDR1, a sector count corresponding to a transmission length, features, A meter (flag), and a second address ADDR2.

테스트 프로그램에서 발생되는 커맨드는 커맨드 계층, 즉 디바이스 드라이버에서 듀얼 포트 딜리미터(플래그)에 의거하여 2 개의 커맨드들로 분리 및 발생할 수 있다. 실시 예에 있어서, 디바이스 드라이버에서 발생된 제 1 커맨드는 동작 코드, 제 1 어드레스(ADDR1), 섹터 카운트, 및 피쳐스(features)를 포함할 수 있다. 여기서 제 1 커맨드는 듀얼 포트(PT1, PT2) 중에서 제 1 포트(PT1)에 전송될 수 있다.The commands generated in the test program can be separated and generated into two commands based on the command layer, i.e., the dual port delimiter (flag) in the device driver. In an embodiment, the first command generated in the device driver may include an operation code, a first address (ADDR1), a sector count, and features. Here, the first command may be transmitted to the first port PT1 out of the dual ports PT1 and PT2.

실시 예에 있어서, 디바이스 드라이버에서 발생된 제 2 커맨드는 동작 코드, 제 2 어드레스(ADDR2), 섹터 카운트, 및 피쳐스를 포함할 수 있다. 여기서 제 2 커맨드는 듀얼 포트(PT1, PT2) 중에서 제 2 포트(PT2)에 전송될 수 있다.In an embodiment, the second command generated in the device driver may include an operation code, a second address (ADDR2), a sector count, and a feature. Here, the second command may be transmitted to the second port PT2 out of the dual ports PT1 and PT2.

한편, 도 4에 도시된 커맨드 발생 방법은 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 본 발명의 호스트 장치(100)는 다양한 방법으로 듀얼 포트에 대응하는 커맨드를 발생할 수 있다.Meanwhile, it should be understood that the method of generating the command shown in FIG. 4 is merely an embodiment that does not limit the present invention. The host device 100 of the present invention can generate a command corresponding to a dual port in various ways.

도 5는 본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조를 예시적으로 보여주는 도면이다. 도 5를 참조하면, 테스트 프로그램에서 발생된 읽기 커맨드의 구조는, 1 바이트의 동작 코드, 7 바이트의 제 1 어드레스(ADDR1), 전송 길이에 대응하는 그룹 넘버, 1 바이트의 듀얼 포트 딜리미터(dual port delimiter)를 지시하는 플래그, 7 바이트의 제 2 어드레스(ADDR2)를 포함할 수 있다.5 is a diagram illustrating a command structure generated in a test program according to an exemplary embodiment of the present invention. 5, the structure of the read command generated in the test program includes a 1-byte operation code, a 7-byte first address ADDR1, a group number corresponding to the transmission length, a 1-byte dual port delimiter (dual a flag indicating a port delimiter, and a second address ADDR2 of 7 bytes.

한편, 도 5에 도시된 읽기 커맨드의 구조는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 예를 들어 어드레스(ADDR1, ADDR2)의 크기가 7 바이트에 제한되지 않을 것이다.On the other hand, it should be understood that the structure of the read command shown in FIG. 5 is merely an embodiment that does not limit the present invention. For example, the size of the addresses ADDR1 and ADDR2 will not be limited to 7 bytes.

본 발명의 실시 예에 따른 테스트 프로그램에서 발생된 커맨드 구조는 일반적인 그것과 비교하여, 일반적인 커맨드에 플래그와 추가적인 어드레스를 연접함으로써 구성될 수 있다. 이러한 구성은 테스트 프로그램에서 하나의 커맨드를 디바이스 드라이버에 전송하는 시간 동안에, 실질적으로 다수의 커맨드들이 전송될 수 있도록 한다. 그 결과로써, 본 발명의 테스트 프로그램은 일반적인 그것과 비교하여 듀얼 포트 동작에 따른 커맨드 발생에 대한 오버헤드를 최소화시킬 수 있다.The command structure generated in the test program according to the embodiment of the present invention can be configured by concatenating a flag with an additional address in a general command in comparison with a general command structure. This configuration allows a substantial number of commands to be transmitted during the time of transmitting one command to the device driver in the test program. As a result, the test program of the present invention can minimize the overhead of command generation according to the dual port operation as compared with the general test program.

실시 예에 있어서, Dual Port SAS의 읽기 함수는 read(rdbuf1, rdbuf2, LBA1, LBA2, Test_SC )으로 표현 될 수 있다. 여기서 rebuf1와 rdbuf2는 각 포트에서 출력된 읽기 데이터 버퍼를, LBA1는 첫 번째 논리 블록 어드레스를, LBA2는 추가 논리 블록 어드레스를, Test_SC는 섹터 카운트를 지시할 수 있다.In an embodiment, the read function of the Dual Port SAS can be expressed as read (rdbuf1, rdbuf2, LBA1, LBA2, Test_SC). Here, rebuf1 and rdbuf2 can indicate the read data buffer output from each port, LBA1 indicates the first logical block address, LBA2 indicates the additional logical block address, and Test_SC indicates the sector count.

실시 예에 있어서, 실시 예에 있어서, Dual Port SAS의 쓰기 함수는 write(wdbuf, LBA1, LBA2, Test_SC )으로 표현될 수 있다. 여기서 wdbuf는 쓰기 버퍼를, LBA1는 첫 번째 논리 블록 어드레스를, LBA2는 추가 논리 블록 어드레스를, Test_SC는 섹터 카운트를 지시할 수 있다.In an embodiment, in an embodiment, the write function of the Dual Port SAS may be expressed as write (wdbuf, LBA1, LBA2, Test_SC). Here, wdbuf may indicate a write buffer, LBA1 may indicate a first logical block address, LBA2 may indicate an additional logical block address, and Test_SC may indicate a sector count.

실시 예에 있어서, Dual Port NVMe의 읽기 함수는 readnvme(rdbuf1, rdbuf2, LBA1, LBA2, SC)으로 표현될 수 있다. 여기서 rdbuf1는 읽기 버퍼를, rdbuf2는 듀얼 포트 지원 읽기 버퍼를, LBA1는 논리 블록 어드레스를, LBA2는 듀얼 포트 지원 논리 블록 어드레스를, 및 SC는 섹터 카운트를 지시할 수 있다.In an embodiment, the read function of the Dual Port NVMe may be expressed as readnvme (rdbuf1, rdbuf2, LBA1, LBA2, SC). Where rdbuf1 is the read buffer, rdbuf2 is the dual port enabled read buffer, LBA1 is the logical block address, LBA2 is the dual port enabled logical block address, and SC is the sector count.

실시 예에 있어서, Dual Port NVMe의 쓰기 함수는 writenvme(wdbuf, LBA1, LBA2, SC)으로 표현될 수 있다. 여기서 wdbuf는 쓰기 버퍼를, LBA1는 논리 블록 어드레스의 비트들, LBA2는 듀얼 포트 지원 논리 블록 어드레스의 비트들, SC는 섹터 카운트를 지시할 수 있다.In an embodiment, the write function of Dual Port NVMe may be expressed as writenvme (wdbuf, LBA1, LBA2, SC). Where wdbuf is the write buffer, LBA1 is the bits of the logical block address, LBA2 is the bits of the dual port enabled logical block address, and SC is the sector count.

한편, 디바이스 드라이버는 커맨드의 플래그 값에 따라 듀얼 포트 동작 지원 여부를 결정하고, 듀얼 포트 동작 지원 가능할 때 상위 계층에서 전송된 커맨드를 듀얼 포트 지원에 적합한 커맨드들로 변경할 수 있다.On the other hand, the device driver determines whether to support the dual port operation according to the flag value of the command, and can change the command transmitted from the upper layer to the commands suitable for the dual port support when the dual port operation can be supported.

도 6은 본 발명의 실시 예에 따른 듀얼 포트 커맨드 처리 과정을 예시적으로 보여주는 도면이다. 도 6을 참조하면, CPU는 듀얼 포트 커맨드를 발행하고, 제 1 포트(PT1)을 통하여 제 1 커맨드들이 순차적으로 SSD에 전송되고, 동시에 제 1 포트(PT2)를 통하여 제 2 커맨드들이 순차적으로 SSD에 전송될 수 있다. SSD는 제 1 및 및 제 2 포트들(PT1, PT2)을 통하여 수신된 제 1 및 제 2 커맨드들을 동시에 처리할 수 있다.FIG. 6 is a diagram illustrating a dual port command process according to an exemplary embodiment of the present invention. Referring to FIG. 6, the CPU issues a dual port command, the first commands are sequentially transmitted to the SSD through the first port PT1, and the second commands are sequentially transmitted to the SSD through the first port PT2, Lt; / RTI > The SSD may simultaneously process the first and second commands received via the first and second ports PT1 and PT2.

실시 예에 있어서, CPU와 SSD 사이에서 제 1 및 제 2 커맨드들은 큐잉(queuing) 방식에 따라 송수신될 수 있다.In an embodiment, the first and second commands between the CPU and the SSD may be transmitted and received according to a queuing scheme.

도 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)를 포함할 수 있다.7 is a block diagram illustrating an embodiment of a dual port SSD according to an embodiment of the present invention. 7, the dual port SSD 300 includes a first memory controller MC1 311 coupled to a first port PT1, at least one nonvolatile memory device NVM (not shown) coupled to a first memory controller 311, (NVM (s), 322 coupled to a second memory controller 312, a second memory controller (MC2, 312) coupled to a second port PT2, and at least one nonvolatile memory device can do.

메모리 제어기(311/312)는 복수의 채널들을 통하여 비휘발성 메모리 장치(321/322)에 연결될 수 있다. 메모리 제어기(312/312)는 ECC(error correction code) 기능, 웨어 레벨링(wear leveling), 배드 블록 관리(bad block management), 신호 처리 등을 수행하도록 구현될 수 있다. 메모리 제어기(312/312)는, 도시되지 않았지만, 적어도 하나의 프로세서, 버퍼 메모리, 버퍼 메모리 제어기, 에러 정정 회로, 호스트 인터페이스, 비휘발성 메모리 인터페이스 등을 포함할 수 있다.The memory controller 311/312 may be coupled to the non-volatile memory device 321/322 via a plurality of channels. The memory controller 312/312 may be implemented to perform an error correction code (ECC) function, wear leveling, bad block management, signal processing, and the like. The memory controller 312/312 may include at least one processor, a buffer memory, a buffer memory controller, an error correction circuit, a host interface, a non-volatile memory interface, and the like, although not shown.

적어도 하나의 프로세서는 듀얼 포트 저장 장치(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)을 사용하여 에러를 정정할 수 있다.At least one processor may control the overall operation of the dual port storage device 300. The buffer memory controller may be implemented to control the buffer memory. The error correction circuit calculates the error correction code value of the data to be programmed in the write operation, error-corrects the data read in the read operation based on the error correction code value, and performs the error correction in the non-volatile memory device 321/322, It is possible to correct the error of the recovered data. The error correction circuit may be a circuit for decoding a low density parity check (LDPC) code, a BCH code, a turbo code, a Reed-Solomon code, a convolution code, a recursive systematic code (RSC), a trellis- Block coded modulation (Coded Modulation) can be used to correct errors.

도시되지 않았지만, 메모리 제어기(321/322)를 동작하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.Although not shown, a code memory for storing code data necessary for operating the memory controller 321/322 can be further included. The code memory may be implemented as a non-volatile memory device.

호스트 인터페이스는 외부의 호스트(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) 등과 같은 통신 인터페이스로 구현될 수 있다.The host interface may provide an interface function with an external host 100 (see FIG. 1). In an embodiment, the host interface may be implemented by various types of interfaces and may include non-volatile memory express (NVMe), peripheral component interconnect express (PCIe), serial at attachment (SATA), small computer system interface , SAS (serial attached SCSI), UAS (universal storage bus) attached SCSI, iSCSI (Internet Small Computer System Interface), Fiber Channel, Fiber Channel over Ethernet (FCoE), and the like.

비휘발성 메모리 인터페이스는 비휘발성 메모리 장치(321/322)와 인터페이스 기능을 제공할 수 있다. 예를 들어, 비휘발성 메모리 인터페이스는 래거시(legacy) 낸드 인터페이스 혹은 VNAND(vertical nand flash memory) 인터페이스로 구현될 수 있다. 하지만, 비휘발성 메모리 인터페이스가 여기에 제한되지 않는다고 이해되어야 할 것이다.The non-volatile memory interface may provide an interface function with the non-volatile memory device 321/322. For example, the non-volatile memory interface may be implemented as a legacy NAND interface or a vertical nand flash memory (VNAND) interface. However, it should be understood that the non-volatile memory interface is not limited thereto.

버퍼 메모리는 메모리 제어기(311/312)의 동작에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들에 다양한 방법으로 맵핑 될 수 있다. 버퍼 메모리는 페이지 비트맵 정보 및 읽기 카운트 정보를 저장할 수 있다. 실시 예에 있어서, 버퍼 메모리는 휘발성 메모리 혹은 비휘발성 메모리로 구현될 수 있다. 예를 들어, 버퍼 메모리는 DRAM(dynamic random access memory) 혹은 PRAM(phase random access memory)로 구현될 수 있다.The buffer memory will temporarily store the data necessary for the operation of the memory controller 311/312. The buffer memory may include a plurality of memory lines for storing data or instructions. Wherein the plurality of memory lines may be mapped in various ways to the cache lines. The buffer memory may store page bitmap information and read count information. In an embodiment, the buffer memory may be implemented as volatile memory or non-volatile memory. For example, the buffer memory may be implemented as a dynamic random access memory (DRAM) or a phase random access memory (PRAM).

실시 예에 있어서, 제 1 포트(PT1)를 통하여 전송된 제 1 커맨드들은 제 1 메모리 제어기(311)에서 처리되고, 제 2 포트(PT2)를 통하여 전송된 제 2 커맨드들은 제 2 메모리 제어기(312)에서 처리될 수 있다. 실시 예에 있어서, 제 1 메모리 제어기(311) 및 제 2 메모리 제어기(312)는 대응하는 커맨드들을 독립적으로 처리할 수 있다.The first commands transmitted through the first port PT1 are processed in the first memory controller 311 and the second commands transmitted via the second port PT2 are processed in the second memory controller 312 ). ≪ / RTI > In an embodiment, the first memory controller 311 and the second memory controller 312 may independently process the corresponding commands.

실시 예에 있어서, 적어도 하나의 비휘발성 메모리 장치들(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) 등이 될 수 있다.Each of the at least one nonvolatile memory devices 321 and 322 may be a NAND flash memory, a vertical NAND flash memory (VNAND), a NOR flash memory ), A resistive random access memory (RRAM), a phase-change memory (PRAM), a magnetoresistive random access memory (MRAM), a ferroelectric random access memory (FRAM) A spin transfer random access memory (STT-RAM), or the like.

또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착 됨을 의미한다.The non-volatile memory device may also be implemented as a three-dimensional array structure. As an embodiment of the present invention, a three-dimensional memory array may be monolithically connected to one or more physical levels of arrays of memory cells having active areas disposed above a circuit associated with operation of a silicon substrate and memory cells. ). The circuitry associated with the operation of the memory cells may be located within or on the substrate. The term monolithical means that layers of each level in a three-dimensional array are deposited directly on the lower-level layers of the three-dimensional array.

본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an embodiment in accordance with the inventive concept, a three-dimensional memory array has vertical directionality and includes vertical NAND strings in which at least one memory cell is located on the other memory cell. The at least one memory cell includes a charge trap layer. Each vertical NAND string may include at least one select transistor located over the memory cells. The at least one select transistor has the same structure as the memory cells and can be formed monolithically with the memory cells.

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)에도 모두 적용 가능하다. A three-dimensional memory array is composed of a plurality of levels and has word lines or bit lines shared between the levels. Suitable configurations for a three-dimensional memory array will be described in US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, and US 2011/0233648, filed by Samsung Electronics and incorporated herein by reference. The nonvolatile memory device (NVM) of the present invention is applicable not only to a flash memory device in which the charge storage layer is composed of a conductive floating gate but also to a charge trap flash (CTF) in which the charge storage layer is composed of an insulating film.

한편, 도 7에 도시된 듀얼 포트 SSD(300)는 포트들(PT1, PT2)의 각각에 대응하는 비휘발성 메모리 장치들(321, 322)을 포함 하였다. 하지만, 본 발명의 듀얼 포트 SSD가 여기에 제한되지 않을 것이다.Meanwhile, the dual port SSD 300 shown in FIG. 7 includes nonvolatile memory devices 321 and 322 corresponding to each of the ports PT1 and PT2. However, the dual port SSD of the present invention will not be limited thereto.

도 8은 본 발명의 실시 예에 따른 듀얼 포트 SSD에 대한 다른 실시 예를 보여주는 블록도이다. 도 8을 참조하면, 듀얼 포트 SSD(400)는 도 7의 그것과 비교하여 버스(415)를 통하여 공유하는 적어도 하나의 비휘발성 메모리 장치(420)를 포함할 수 있다. 제 1 및 제 2 메모리 제어기들(411, 422)은, 도 7의 그것들과 동일한 기능을 수행하도록 구현될 수 있다.8 is a block diagram illustrating another embodiment of a dual port SSD according to an embodiment of the present invention. 8, dual port SSD 400 may include at least one non-volatile memory device 420 that is shared across bus 415 as compared to that of FIG. The first and second memory controllers 411 and 422 may be implemented to perform the same functions as those of FIG.

도 9는 본 발명의 실시 예에 따른 호스트의 커맨드 발생 방법을 예시적으로 보여주는 도면이다. 도 1 내지 도 9를 참조하면, 호스트 장치(100)의 커맨드 발생 방법은 다음과 같다.9 is a diagram illustrating an exemplary method of generating a host command according to an embodiment of the present invention. 1 to 9, a method of generating a command of the host apparatus 100 is as follows.

CPU(110)은 테스트 프로그램을 수행함으로써 테스트 동작을 위한 듀얼 포트 커맨드를 발행할 수 있다(S110). 디바이스 드라이버는 발행된 듀얼 포트 커맨드를 수신하고, 대응하는 제 1 포트(PT1)로 전송할 제 1 커맨드와 제 2 포트(PT2)로 전송할 제 2 커맨드를 발생할 수 있다(S120). 여기서 디바이스 드라이버는 듀얼 포트 커맨드의 포함된 듀얼 포트 딜리미터를 판별하고, 듀얼 포트 딜리미터의 판별 동작에 따른 듀얼 포트 지원 여부를 결정하고, 듀얼 포트 지원 시 각 포트에 대응하는 커맨드들을 발생할 수 있다. 이후, 제 1 및 제 2 커맨드들은 대응하는 포트들(PT1, PT2)로 각각 동시에 전송될 수 있다(S130).The CPU 110 may issue a dual port command for a test operation by executing a test program (S110). The device driver may receive the issued dual port command and generate a first command to be transmitted to the corresponding first port PT1 and a second command to be transmitted to the second port PT2 (S120). Here, the device driver determines the dual port delimiter including the dual port command, determines whether the dual port delimiter is supported by the dual port delimiter, and generates the commands corresponding to each port when the dual port is supported. Thereafter, the first and second commands may be simultaneously transmitted to the corresponding ports PT1 and PT2, respectively (S130).

도 10은 본 발명의 실시 예에 따른 듀얼 포트 SSD의 테스트 방법을 예시적으로 보여주는 도면이다. 도 1 내지 도 10을 참조하면, 듀얼 포트 SSD의 테스트 방법은 다음과 같다.10 is a diagram illustrating a method of testing a dual port SSD according to an exemplary embodiment of the present invention. Referring to FIGS. 1 to 10, a method of testing a dual port SSD is as follows.

우선 테스트 동작을 위하여 듀얼 포트 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 커맨드들을 차례로 수신 및 저장 할 수 있다.First, the first and second ports PT1 and PT2 (see FIG. 1) of the dual port SSD will be activated for the test operation. Activation of the first and second ports PT1 and PT2 may be performed under the control of the host apparatus 100. [ However, the activation of the first and second ports PT1 and PT2 will not necessarily be limited thereto. The dual port SSD may simultaneously receive the first and second commands through the first and second ports PT1 and PT2 (S210). Here, the dual port SSD may store a plurality of first commands and a plurality of second commands. For example, the dual port SSD may receive and store a plurality of first commands sequentially through a first port in a queuing manner, and may sequentially receive and store a plurality of second commands through a second port.

이후, 듀얼 포트 SSD는 저장된 제 1 및 제 2 커맨드들에 응답하여 각각에 대응하는 제 1 메모리 및 제 2 메모리를 동시에 테스트할 수 있다(S220). 테스트 결과 값들은 임시로 버퍼에 저장되었다가, 이후에 호스트 장치(100)로 전송될 수 있다.Then, the dual port SSD may simultaneously test the first and second memories corresponding to the first and second commands, respectively (S220). The test result values may be temporarily stored in a buffer and then transmitted to the host device 100. [

한편, 본 발명의 테스트 시스템은 듀얼 포트 지원하는 더트에 제한되지 않을 것이다. 본 발명의 테스트 시스템은 3개 이상의 멀티 포트 지원하는 더트에 적용 가능하다.On the other hand, the test system of the present invention will not be limited to a dual-port supporting dirt. The test system of the present invention is applicable to dots that support three or more multi-ports.

도 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)을 통하여 수신된 커맨드들을 동시에 독립적으로 처리할 수 있다.11 is a diagram illustrating an exemplary test system according to another embodiment of the present invention. 11, the test system 20 may include a host 100a and a plurality of dots 210a, ..., 2N0b. The host 100a can test the dots 210a, ..., 2N0a connected through four ports PT1, PT2, PT3, and PT4 in comparison with that of FIG. Each of the dots 210 ... ... 2N0a can activate all four ports PT1, PT2, PT3 and PT4, and the four activated ports PT1, PT2, PT3 and PT4 And can simultaneously process the received commands independently.

도 12는 본 발명의 실시 예에 따른 저장 장치가 적용된 데이터 서버 시스템을 예시적으로 보여주는 도면이다. 도 12를 참조하면, 데이터 서버 시스템(1000)은 데이터 베이스 관리 시스템(RDBMS, 1100), 캐시 서버(1200), 및 어플리케이션 서버(1300)를 포함할 수 있다.FIG. 12 is an exemplary diagram illustrating a data server system to which a storage device according to an embodiment of the present invention is applied. 12, the data server system 1000 may include a database management system (RDBMS) 1100, a cache server 1200, and an application server 1300.

캐시 서버(1200)는 데이터 베이스 관리 시스템(1100)로부터의 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다. 데이터 베이스 관리 시스템(1200)은 도 1 내지 도 11에서 설명된 듀얼 포트 저장 장치를 포함할 수 있다.The cache server 1200 may include key value storage for holding and deleting different pairs of keys and value pairs corresponding to the invalidation notification from the database management system 1100. [ The database management system 1200 may include the dual port storage device described in Figures 1-11.

본 발명의 실시 예에 따른 데이터 서버 시스템(1000)은 멀티 포트를 통하여 테스트 동작을 빠르고 신속하게 수행할 수 있기에, 종래의 그것과 비교하여 관리 비용을 크게 줄일 수 있다.Since the data server system 1000 according to the embodiment of the present invention can quickly and quickly perform the test operation through the multiport, the management cost can be greatly reduced compared with the conventional method.

본 발명의 실시 예에 따른 SAS Device는 다수의 Port를 이용한 Write/Read를 효율적으로 수행함으로써 데이터 전송속도를 향상시키고, 정량적인 테스트 진행 시 테스트 시간을 감소시킴으로써 테스트 효율성을 향상시킬 수 있다.The SAS device according to the embodiment of the present invention can improve the test efficiency by improving the data transfer rate by efficiently performing Write / Read using a plurality of ports and decreasing the test time during the quantitative test.

본 발명의 실시 예에 따른 SAD Device를 테스트하는 방법은 각 포트를 동시에 이용하여 최대 성능으로 테스트를 수행할 수 있다.In the method of testing the SAD device according to the embodiment of the present invention, testing can be performed at the maximum performance by simultaneously using each port.

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.The above-described contents of the present invention are only specific examples for carrying out the invention. The present invention will include not only concrete and practical means themselves, but also technical ideas which are abstract and conceptual ideas that can be utilized as future technologies.

10, 20: 테스트 시스템
100, 100a: 호스트
110, 110a: CPU
120, 120a: HBA
210, 220, 2N0: 더트
PT1: 제 1 포트
PT2: 제 2 포트
201a, 201b: 커넥터
300, 400: 듀얼 포트 SSD
10, 20: Test system
100, 100a: host
110, 110a: CPU
120, 120a: HBA
210, 220, 2N0: dirt
PT1: First port
PT2: second port
201a, 201b: Connector
300, 400: Dual port SSD

Claims (20)

호스트 장치, 및 상기 호스트 장치에 멀티 포트를 통하여 연결된 저장 장치들을 포함하는 테스트 시스템의 방법에 있어서:
테스트 프로그램에서 커맨드를 발행하는 단계;
디바이스 드라이버에서 상기 커맨드에 대응하는 복수의 커맨드들을 발생하는 단계; 및
상기 저장 장치들의 각각의 상기 멀티 포트로 상기 복수의 커맨드들을 동시에 전송하는 단계를 포함하는 방법.
A method of a test system comprising a host device and storage devices connected to the host device through a multiport, the method comprising:
Issuing a command in a test program;
Generating a plurality of commands in the device driver corresponding to the command; And
And simultaneously transmitting the plurality of commands to the multi-port of each of the storage devices.
제 1 항에 있어서,
상기 멀티 포트는 듀얼 포트인 방법.
The method according to claim 1,
Wherein the multiport is a dual port.
제 1 항에 있어서,
상기 커맨드는 동작 코드, 제 1 어드레스, 듀얼 포트 동작을 지시하는 플래그, 및 제 2 어드레스를 포함하는 방법.
The method according to claim 1,
Wherein the command comprises an operation code, a first address, a flag indicating dual port operation, and a second address.
제 3 항에 있어서,
상기 복수의 커맨드들을 발생하는 단계는,
상기 디바이스 드라이버에서 상기 커맨드로부터 상기 플래그의 존재 여부를 판별하는 단계를 포함하는 방법.
The method of claim 3,
Wherein generating the plurality of commands comprises:
And judging whether or not the flag is present from the command in the device driver.
제 4 항에 있어서,
상기 복수의 커맨드들을 발생하는 단계는,
상기 플래그가 존재할 때, 상기 동작 코드 및 상기 제 1 어드레스를 갖는 제 1 커맨드, 및 상기 동작 코드 및 상기 제 2 어드레스를 갖는 제 2 커맨드를 발생하는 단계를 포함하는 방법.
5. The method of claim 4,
Wherein generating the plurality of commands comprises:
When the flag is present, generating a first command having the operation code and the first address, and a second command having the operation code and the second address.
제 1 항에 있어서,
상기 저장 장치들의 각각의 상기 멀티 포트의 모든 포트들을 활성화시키는 단계를 더 포함하는 방법.
The method according to claim 1,
Further comprising activating all the ports of the multi-port of each of the storage devices.
제 1 항에 있어서,
물리 계층에서 PCIe(peripheral component interconnect express) 인터페이스에 따라 상기 복수의 커맨드들이 전송되는 방법.
The method according to claim 1,
Wherein the plurality of commands are transmitted according to a peripheral component interconnect express (PCIe) interface at the physical layer.
통신 프로토콜에 따라 구현된 제 1 포트;
상기 통신 프로토콜에 따라 구현된 제 2 포트;
제 1 적어도 하나의 비휘발성 메모리 장치;
제 2 적어도 하나의 비휘발성 메모리 장치;
상기 제 1 포트에 연결되고, 상기 제 1 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 1 메모리 제어기; 및
상기 제 2 포트에 연결되고, 상기 제 2 적어도 하나의 비휘발성 메모리 장치를 제어하는 제 2 메모리 제어기를 포함하고,
테스트 동작시 상기 제 1 포트 및 상기 제 2 포트는 활성화되고,
상기 제 1 및 제 2 메모리 제어기들의 각각은 대응하는 포트를 통하여 커맨드들을 수신하고, 상기 수신된 커맨드들에 응답하여 대응하는 비휘발성 메모리 장치를 테스트하는 저장 장치.
A first port implemented according to a communication protocol;
A second port implemented in accordance with the communication protocol;
A first at least one non-volatile memory device;
A second at least one non-volatile memory device;
A first memory controller coupled to the first port and controlling the first at least one non-volatile memory device; And
And a second memory controller coupled to the second port and controlling the second at least one non-volatile memory device,
During the test operation, the first port and the second port are activated,
Wherein each of the first and second memory controllers receives commands via a corresponding port and tests the corresponding non-volatile memory device in response to the received commands.
제 8 항에 있어서,
상기 제 1 포트 및 제 2 포트를 갖는 커넥터를 더 포함하는 저장 장치.
9. The method of claim 8,
And a connector having the first port and the second port.
제 9 항에 있어서,
상기 커넥터는,
상기 제 1 포트에 대응하는 싱글 핀들, 전원 및 제어 핀들을 갖는 제 1 측면; 및
상기 제 1 측면에 대향하고, 상기 제 2 포트에 대응하는 싱글 핀들을 갖는 제 2 측면을 포함하는 저장 장치.
10. The method of claim 9,
Wherein the connector comprises:
A first side having single pins, power and control pins corresponding to the first port; And
And a second side opposite the first side and having single pins corresponding to the second port.
제 9 항에 있어서,
상기 커넥터는,
상기 제 1 포트에 대응하는 신호 핀들, PCIe 사이드밴드를 위한 제 1 핀들, 및 전원핀들을 갖는 제 1 측면; 및
상기 제 1 측면에 대향하고, 상기 PCIe 사이드밴드를 위한 제 2 핀들, 상기 제 2 포트에 대응하는 신호 핀들, 및 상기 PCIe 사이드밴드를 위한 제 3 핀들을 갖는 제 2 측면을 포함하는 저장 장치.
10. The method of claim 9,
Wherein the connector comprises:
A first side having signal pins corresponding to the first port, first pins for a PCIe sideband, and power pins; And
And a second side opposite the first side and having second pins for the PCIe sideband, signal pins corresponding to the second port, and third pins for the PCIe sideband.
제 8 항에 있어서,
상기 제 1 적어도 하나의 비휘발성 메모리 장치와 상기 제 2 적어도 하나의 비휘발성 메모리 장치는 동일하고,
상기 제 1 및 제 2 메모리 제어기들의 각각은 버스를 통하여 상기 동일한 비휘발성 메모리 장치를 제어하는 저장 장치.
9. The method of claim 8,
Wherein the first at least one non-volatile memory device and the second at least one non-volatile memory device are the same,
Wherein each of the first and second memory controllers controls the same non-volatile memory device via a bus.
제 8 항에 있어서,
상기 제 1 및 제 2 포트들을 통하여 대응하는 제 1 및 제 2 커맨드들이 동시에 수신되고,
상기 제 1 및 제 2 커맨드들에 응답하여 대응하는 적어도 하나의 비휘발성 메모리 장치에 대한 테스트가 동시에 수행되는 저장 장치.
9. The method of claim 8,
Corresponding first and second commands are simultaneously received through the first and second ports,
Wherein tests for the corresponding at least one non-volatile memory device are performed concurrently in response to the first and second commands.
제 8 항에 있어서,
상기 통신 프로토콜은 NVMe(nonvolatile memory device express) 인터페이스에 따른 프로토콜인 저장 장치.
9. The method of claim 8,
Wherein the communication protocol is a protocol according to a nonvolatile memory device express (NVMe) interface.
호스트 장치; 및
상기 호스트 장치에 듀얼 포트를 통하여 연결된 복수의 더트들을 포함하고,
상기 호스트 장치는,
중앙 처리 장치; 및
상기 중앙 처리 장치와 상기 복수의 더트들을 연결하는 호스트 버스 어댑터를 포함하고,
테스트 동작시 상기 듀얼 포트 중 제 1 포트로 제 1 커맨드가 전송되면서, 상기 듀얼 포트 중 제 2 포트로 제 2 커맨드가 동시에 전송되는 테스트 시스템.
A host device; And
A plurality of dots connected to the host device through a dual port,
The host apparatus includes:
A central processing unit; And
And a host bus adapter connecting the central processing unit and the plurality of dirts,
Wherein during a test operation, a first command is transmitted to a first port of the dual port, and a second command is simultaneously transmitted to a second port of the dual port.
제 15 항에 있어서,
상기 호스트 버스 어댑터는 상기 복수의 더트들에 대응하는 복수의 버스 어댑터 유닛들을 포함하는 테스트 시스템.
16. The method of claim 15,
Wherein the host bus adapter comprises a plurality of bus adapter units corresponding to the plurality of dots.
제 15 항에 있어서,
상기 호스트 장치의 소프트웨어 계층은, 듀얼 포트 커맨드를 발행하는 어플리케이션 계층과, 상기 듀얼 포트 커맨드에 응답하여 상기 제 1 및 제 2 포트들에 전송할 상기 제 1 및 제 2 커맨드들 발생하는 커맨드 계층을 포함하는 테스트 시스템.
16. The method of claim 15,
Wherein the software layer of the host device comprises an application layer for issuing a dual port command and a command layer for generating the first and second commands to be transmitted to the first and second ports in response to the dual port command Test system.
제 17 항에 있어서,
상기 듀얼 포트 커맨드는 동작 코드, 제 1 어드레스, 섹터 카운트, 피쳐스, 듀얼 포트 딜리미터, 제 2 어드레스를 포함하고,
상기 제 1 커맨드는 상기 동작 코드, 상기 제 1 어드레스, 상기 섹터 카운트, 및 상기 피쳐스를 포함하고,
상기 제 2 커맨드는 상기 동작 코드, 상기 제 2 어드레스, 상기 섹터 카운트, 및 상기 피쳐스를 포함하는 테스트 시스템.
18. The method of claim 17,
Wherein the dual port command comprises an operation code, a first address, a sector count, a feature, a dual port delimiter, a second address,
Wherein the first command includes the operation code, the first address, the sector count, and the feature,
Wherein the second command comprises the operation code, the second address, the sector count, and the feature.
제 15 항에 있어서,
상기 복수의 더트들의 각각은 SAS(serial attached small computer system interface)SSD(solid state drive)인 테스트 시스템.
16. The method of claim 15,
Wherein each of the plurality of dots is a SAS (serial attached small computer system interface) solid state drive (SSD).
저장 장치의 테스트 방법에 있어서:
제 1 포트를 통하여 제 1 커맨드를 수신하는 단계;
상기 제 1 커맨드를 수신하면서 제 2 포트를 통하여 제 2 커맨드를 수신하는 단계;
상기 제 1 커맨드에 응답하여 제 1 메모리를 테스트 하는 단계; 및
상기 제 1 메모리를 테스트하면서, 상기 제 2 커맨드에 응답하여 제 2 메모리를 테스트하는 단계를 포함하는 방법.
A method of testing a storage device comprising:
Receiving a first command through a first port;
Receiving a second command via a second port while receiving the first command;
Testing a first memory in response to the first command; And
Testing the first memory while testing the second memory in response to the second command.
KR1020160099603A 2016-08-04 2016-08-04 Storage device, test system for testing the same, and method thereof KR20180016680A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160099603A KR20180016680A (en) 2016-08-04 2016-08-04 Storage device, test system for testing the same, and method thereof
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 (en) 2016-08-04 2017-06-30 Storage device, test system and method for testing the storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160099603A KR20180016680A (en) 2016-08-04 2016-08-04 Storage device, test system for testing the same, and method thereof

Publications (1)

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

Family

ID=61071423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160099603A KR20180016680A (en) 2016-08-04 2016-08-04 Storage device, test system for testing the same, and method thereof

Country Status (3)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106771A (en) * 2018-03-09 2019-09-18 삼성전자주식회사 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 (en) * 2020-11-04 2022-02-14 주식회사 더원 Memory Test Equipment
KR20230065067A (en) * 2021-11-04 2023-05-11 주식회사 엑시콘 Apparatus for Testing Solid State Drive based on PCIe Interface

Families Citing this family (12)

* 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 (en) * 2018-04-13 2019-10-25 北京忆恒创源科技有限公司 Dual-port solid storage device and its data processing method
CN109032866A (en) * 2018-07-25 2018-12-18 太仓市同维电子有限公司 A kind of multimachine test method of more network interface card test same network segment products
CN109144802A (en) * 2018-09-12 2019-01-04 杭州智享新电科技有限公司 Internet of Things module health control diagnostic method
TW202022626A (en) * 2018-12-14 2020-06-16 威聯通科技股份有限公司 Multiple-path thunderbolt storage apparatus and system
KR20200123680A (en) * 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 Test board
CN110297735B (en) * 2019-06-28 2023-06-06 深圳忆联信息系统有限公司 Universal re-judging test system based on solid state disk
KR20210012439A (en) * 2019-07-25 2021-02-03 삼성전자주식회사 Master device and method of controlling the same
US11899550B2 (en) * 2020-03-31 2024-02-13 Advantest Corporation Enhanced auxiliary memory mapped interface test systems and methods
CN113254297B (en) * 2021-05-28 2022-05-24 长江存储科技有限责任公司 Device and system for testing dual-port hard disk
CN113468083B (en) * 2021-07-02 2024-01-26 成都忆芯科技有限公司 Dual-port NVMe controller and control method
TWI789122B (en) * 2021-11-17 2023-01-01 瑞昱半導體股份有限公司 Command transforming system and command transforming method

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 (en) * 2006-02-21 2007-08-02 삼성전자주식회사 Multi-port semiconductor memory device and method for signals input/output therefore
US20070208968A1 (en) * 2006-03-01 2007-09-06 Anand Krishnamurthy At-speed multi-port memory array test method and apparatus
JP4897387B2 (en) 2006-08-10 2012-03-14 株式会社日立製作所 Storage apparatus and data management method using the same
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 (en) 2007-11-08 2013-01-25 삼성전자주식회사 Vertical type semiconductor device and Method of manufacturing the same
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 (en) 2010-08-26 2016-12-30 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
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 (en) 2010-08-11 2016-12-07 삼성전자주식회사 Nonvolatile memory devicwe, channel boosting method thereof, programming method thereof, and memory system having the same
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 (en) 2012-08-13 2013-04-15 주식회사 유니테스트 Apparatus for storage interface in solid state drive tester
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 (en) 2013-08-29 2015-05-21 주식회사 유니테스트 Test device capable of individual control for a plurality storage
KR101547317B1 (en) 2013-09-30 2015-08-26 주식회사 유니테스트 System for detecting fail block using logic block address and data buffer address in storage test device
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 (en) 2014-08-19 2021-07-28 삼성전자주식회사 Computer device and storage device
US9946620B2 (en) * 2015-02-03 2018-04-17 Invecas, Inc. Memory built-in self test system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106771A (en) * 2018-03-09 2019-09-18 삼성전자주식회사 Adaptive interface high availability storage device
KR20220127798A (en) * 2018-03-09 2022-09-20 삼성전자주식회사 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 (en) * 2020-11-04 2022-02-14 주식회사 더원 Memory Test Equipment
WO2022097895A1 (en) * 2020-11-04 2022-05-12 주식회사 더원 Memory testing apparatus
KR20230065067A (en) * 2021-11-04 2023-05-11 주식회사 엑시콘 Apparatus for Testing Solid State Drive based on PCIe Interface

Also Published As

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

Similar Documents

Publication Publication Date Title
US10372570B2 (en) Storage device, test system for testing the same, and method thereof
US11281601B2 (en) Multi-device storage system with hosted services on peer storage devices
CN111373362B (en) Multi-device memory system with distributed read/write processing
US10496312B2 (en) Method of operating a storage device to compress or decompress data and a data storage system including the storage device
US20190018805A1 (en) System and method for fast execution of in-capsule commands
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 (en) Storage device and operating method thereof
KR20140145834A (en) Storage device, global garbage collection method of data storage system having the same
US10127103B2 (en) System and method for detecting and correcting mapping table errors in a non-volatile memory system
US20190114114A1 (en) Storage compute offloads on sharded and erasure-coded data
CN110689915A (en) Remote SSD debug via host/serial interface and method of performing same
KR20150015764A (en) Memory sub-system and computing system including the same
CN113448497A (en) Dynamic allocation of sub-blocks
US10614890B2 (en) Memory system and operating method thereof
US9940034B2 (en) Reducing read access latency by straddling pages across non-volatile memory channels
KR20220124318A (en) Storage controller redirecting a write operation and operating method thereof
CN112540869A (en) Memory controller, memory device, and method of operating memory device
TW202334807A (en) Firmware updating method, device and data system
US11119855B2 (en) Selectively storing parity data in different types of memory
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
US11734094B2 (en) Memory component quality statistics