KR20150025393A - 복수개의 스토리지를 개별 제어 가능한 테스트 장치 - Google Patents

복수개의 스토리지를 개별 제어 가능한 테스트 장치 Download PDF

Info

Publication number
KR20150025393A
KR20150025393A KR20130103034A KR20130103034A KR20150025393A KR 20150025393 A KR20150025393 A KR 20150025393A KR 20130103034 A KR20130103034 A KR 20130103034A KR 20130103034 A KR20130103034 A KR 20130103034A KR 20150025393 A KR20150025393 A KR 20150025393A
Authority
KR
South Korea
Prior art keywords
data
storage
embedded processor
sas
sata
Prior art date
Application number
KR20130103034A
Other languages
English (en)
Other versions
KR101522293B1 (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 KR1020130103034A priority Critical patent/KR101522293B1/ko
Priority to CN201410353049.5A priority patent/CN104425041B/zh
Priority to US14/453,654 priority patent/US9411700B2/en
Publication of KR20150025393A publication Critical patent/KR20150025393A/ko
Application granted granted Critical
Publication of KR101522293B1 publication Critical patent/KR101522293B1/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/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
    • 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

Abstract

본 발명은 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 관한 것으로서, 스토리지를 테스트 하기 위한 사용자의 제어신호를 입력받는 호스트 단말기; 호스트 단말기, 임베디드 프로세서, 데이터 엔진부 간에 데이터를 송수신할 수 있도록 인터페이스를 수행하는 통신 인터페이스부; 데이터 엔진부 및 시퀀스 제어부와 스토리지를 테스트 하기 위한 각종 데이터를 송수신하는 임베디드 프로세서; 스토리지에 라이트(write)하기 위한 패턴 데이터 및 SATA/SAS/PCIe 인터페이스부의 제어를 위한 명령 데이터를 실시간으로 생성하고, 스토리지로부터 라이트(write)된 결과 패턴 데이터를 읽어(read), 생성한 패턴 데이터와 비교하는 데이터 엔진부; 상기 임베디드 프로세서로부터 수신한 명령 데이터에 따라, 복수개의 SATA/SAS/PCIe 인터페이스부를 개별적으로 제어하는 시퀀스 제어부; 및 복수개로 형성되어, 상기 임베디드 프로세서에서 발생하는 인터페이스 선택신호에 따라, SATA, SAS, PCIe 인터페이스 중, 어느 하나로 스토리지와 연결되며, 연결된 각각의 스토리지를 테스트 할 수 있도록 임베디드 프로세서에 의한 시퀀스 제어부의 제어에 따라 복수개의 스토리지를 제어하는 SATA/SAS/PCIe 인터페이스부; 를 포함한다.

Description

복수개의 스토리지를 개별 제어 가능한 테스트 장치{TEST DEVICE CAPABLE OF INDIVIDUAL CONTROL FOR A PLURALITY STORAGE}
본 발명은 스토리지 테스트 장치에 관한 것으로서, 더욱 상세하게는 복수개의 SATA/SAS/PCIe를 제어하는 복수개의 시퀀스 제어모듈을 통해 스토리지(storage) 테스트를 각각 다르게 제어할 수 있는 테스트 장치에 관한 것이다.
현재까지 대용량의 디지털 미디어 저장장치로 가장 일반적으로 알려지고 사용된 것은 바로 하드디스크(HDD)이다. 하지만, 최근 들어 메모리 기능의 반도체 소자 중에서 가장 대용량을 저장할 수 있고, 전원이 공급되지 않아도 내부에 저장된 데이터가 지워지지 않는 특성을 지닌 낸드 플래시 반도체 소자의 가격이 낮아짐에 따라, 메모리 기능의 반도체 소자를 이용한 SSD와 같은 대용량 디지털 미디어 저장장치가 새로 등장하고 있다.
이러한 SSD의 성능은 SSD 테스터를 통해 이루어지며, 상기 SSD를 테스트하기 위한 종래의 SSD 테스트 장치는 도 1 에 도시된 바와 같다.
도 1 에 도시된 바와 같이, 호스트 단말기(100), 네트워크(200), 통신 인터페이스부(300), 메모리(400), 임베디드 프로세서(500), 데이터 엔진부(600) 및 SATA/SAS/PCIe 인터페이스부(700) 등이 한 개의 FPGA 또는 원칩으로 구성된다.
이때, 호스트 단말기(100)에서 네트워크(200)와 통신 인터페이스부(300)를 통하여 임베디드 프로세서(500)에 스토리지(10)를 테스트하는 매크로 명령을 내리면 임베디드 프로세서(500)에서는 데이터 엔진부(600)와 SATA/SAS/PCIe 인터페이스부(700) 등에 명령을 내려 스토리지(10)에 데이터를 라이트(write)하고, 라이트(write)된 데이터를 읽어 기대값과 비교하여 스토리지(10)의 정상/고장(pass/fail)을 판정하여 그 결과를 호스트 단말기(100)에 전달한다.
또한, 통신 인터페이스부(300)는 호스트 단말기(100)와 임베디드 프로세서(500), 데이터 엔진부(600), SATA/SAS/PCIe 인터페이스부(700) 간에 데이터를 주고 받을 수 있도록 인터페이스 역할을 한다.
또한, 임베디드 프로세서(500)는 FPGA나 ASIC chip내부에 구현된 마이크로 프로세서로서, 데이터 엔진부(600), SATA/SAS/PCIe 인터페이스부(700) 등을 제어하고, 데이터 엔진부(600), SATA/SAS/PCIe 인터페이스부(700) 등을 이용하여 스토리지(10)를 테스트할 수 있도록 제어하는 역할을 수행한다.
또한, 데이터 엔진부(600)는 실시간으로 패턴 데이터, 명령 데이터 등을 생성하고, 실시간으로 스토리지(10)로 부터 데이터를 읽어서 데이터 엔진에서 만들어진 패턴 데이터와 비교하여 fail memory에 저장한다.
또한, SATA/SAS/PCIe 인터페이스부(700)는 스토리지(10)의 인터페이스에 대응하여 필요한 인터페이스를 이용하여 스토리지(10)에 데이트를 기록하고 읽을 수 있도록 한다.
한편, 스토리지를 테스트 하는 장치와 관련해서는, 한국공개특허 10-2010-0114697호(이하, '선행문헌') 외에 다수 출원 및 공개되어 있다.
상기한 선행문헌은, 스토리지(storage)와의 인터페이스를 유지하는 스토리지 인터페이스부; 사용자로부터 상기 스토리지의 테스트를 위한 테스트 조건을 입력 받는 사용자 인터페이스부; 상기 사용자로부터 입력 받은 상기 테스트 조건에 대응하는 상기 스토리지의 테스트를 위한 테스트 패턴(test pattern)을 생성하는 테스트 패턴 생성부; 및 상기 테스트 패턴을 통해 상기 스토리지의 테스트를 제어하는 테스트 제어부; 를 포함한다.
선행문헌을 포함한 상기한 종래에는, 복수개의 SATA/SAS/PCIe 인터페이스부를 제어하기 위해 한 개의 임베디드 프로세서를 이용하기 때문에, 임베디드 프로세서가 복수개의 SATA/SAS/PCIe 인터페이스부를 제어하는데 있어 부담이 많이 가고, 처리시간이 많이 걸리는 문제점이 있었다.
복수개의 SATA/SAS/PCIe 인터페이스부를 동시에 같은 제어 명령을 전달하고 각각의 개별 SATA/SAS/PCIe 인터페이스부의 상태를 확인하는데 있어서는 크게 문제가 되지 않는다.
그러나, 복수개의 SATA/SAS/PCIe 인터페이스부를 각각 다른 시점에서 다른 제어 명령을 전달하고 상태를 확인할 때는 한 개의 임베디드 프로세서를 이용한다면 테스트 시간이 늘어나게 된다.
따라서, 이러한 문제를 해결하기 위해 복수개의 SATA/SAS/PCIe 인터페이스부에 각기 다른 제어 명령을 전달할 때 복수개의 임베디드 프로세서를 이용하거나, 한 개의 임베디드 프로세서를 이용하고 사용자 로직(user logic)을 이용하여 복수개의 SATA/SAS/PCIe 인터페이스부를 제어하는 시퀀스 제어부를 설계하여 구현할 수 있다.
이때, 복수개의 임베디드 프로세서를 이용하여 복수개의 SATA/SAS/PCIe 인터페이스부를 제어하는 방식은, 임베디드 프로세서의 게이트수가 크고, 부가적인 페리페럴(peripheral)이 필요하기 때문에 로직의 크기를 증가시키게 되어 실제적으로 구현하기 어려운 문제점이 있다.
따라서, 본 발명에서는 한 개의 임베디드 프로세서를 이용하고, 복수개의 시퀀스 제어모듈을 구현하여 복수개의 SATA/SAS/PCIe 인터페이스부를 제어하도록 한다.
본 발명은 상기와 같은 문제점을 감안하여 안출된 것으로, 복수개의 스토리지 테스를 수행할 경우, 한 개의 임베디드 프로세서를 이용하고, 복수개의 시퀀스 제어모듈을 구현하여 복수개의 SATA/SAS/PCIe 인터페이스를 개별 제어함으로써, 스토리지 테스트 시간을 단축할 수 있는 테스트 장치를 제공함에 그 목적이 있다.
이러한 기술적 과제를 달성하기 위한 본 발명은 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 관한 것으로서, 스토리지를 테스트 하기 위한 사용자의 제어신호를 입력받는 호스트 단말기; 호스트 단말기, 임베디드 프로세서, 데이터 엔진부 간에 데이터를 송수신할 수 있도록 인터페이스를 수행하는 통신 인터페이스부; 데이터 엔진부 및 시퀀스 제어부와 스토리지를 테스트 하기 위한 각종 데이터를 송수신하는 임베디드 프로세서; 스토리지에 라이트(write)하기 위한 패턴 데이터 및 SATA/SAS/PCIe 인터페이스부의 제어를 위한 명령 데이터를 실시간으로 생성하고, 스토리지로부터 라이트(write)된 결과 패턴 데이터를 읽어(read), 생성한 패턴 데이터와 비교하는 데이터 엔진부; 상기 임베디드 프로세서로부터 수신한 명령 데이터에 따라, 복수개의 SATA/SAS/PCIe 인터페이스부를 개별적으로 제어하는 시퀀스 제어부; 및 복수개로 형성되어, 상기 임베디드 프로세서에서 발생하는 인터페이스 선택신호에 따라, SATA, SAS, PCIe 인터페이스 중, 어느 하나로 스토리지와 연결되며, 연결된 각각의 스토리지를 테스트 할 수 있도록 임베디드 프로세서에 의한 시퀀스 제어부의 제어에 따라 복수개의 스토리지를 제어하는 SATA/SAS/PCIe 인터페이스부; 를 포함한다.
또한 상기 임베디드 프로세서는, 상기 데이터 엔진부를 통해 사용자의 테스트 조건에 대응하는 테스트 패턴을 생성하도록 제어하며, 상기 시퀀스 제어부를 통해 스토리지에 대한 데이터 라이트(write) 명령을 생성하도록 제어하며, 상기 SATA/SAS/PCIe 인터페이스부를 통해 테스트 하고자 하는 스토리지의 인터페이스 종류에 따라 인터페이스를 선택하고, 테스트 패턴을 기초로 스토리지를 테스트 하도록 제어하고, 그 결과를 수신하는 것을 특징으로 한다.
또한 상기 데이터 엔진부는, 상기 임베디드 프로세서로부터 수신한 명령을 바탕으로, 스토리지에 라이트(write)할 패턴 데이터를 생성하여, 임베디드 프로세서, 시퀀스 제어부 및 SATA/SAS/PCIe 인터페이스부로 전송하며, 스토리지에 라이트(write)된 패턴 결과 데이터를 수신하는 패턴 데이터 생성모듈; 상기 임베디드 프로세서로부터 수신한 명령을 바탕으로, SATA/SAS/PCIe 인터페이스부의 제어를 위한 명령 데이터를 생성하여, 임베디드 프로세서, 시퀀스 제어부 및 SATA/SAS/PCIe 인터페이스부로 전송하는 명령 생성모듈; 및 상기 SATA/SAS/PCIe 인터페이스부로부터 스토리지에 라이트(write)된 패턴 결과 데이터를 수신하여, 상기 패턴 데이터 생성모듈을 통해 생성된 패턴 데이터를 각 채널별로 비교하여 정상(pass) 또는 고장(fail)을 판정한 후 그 결과를 저장하고, 저장된 정보를 통신 인터페이스부 및 네트워크를 통해 호스트 단말기로 전송하는 데이터 비교모듈; 을 포함하는 것을 특징으로 한다.
또한 상기 패턴 데이터 생성모듈은, 상기 호스트 단말기로부터 패턴 데이터를 입력받으며, 상기 임베디드 프로세서로부터 패턴 데이터 선택신호를 입력받는 것을 특징으로 한다.
또한 상기 시퀀스 제어부는, 상기 임베디드 프로세서로부터 수신한 명령을 시퀀스 제어모듈로 전송하는 임베디드 프로세서 인터페이스 모듈; 및 복수개의 SATA/SAS/PCIe 인터페이스부와 각각 연결되어, 상기 임베디드 프로세서 인터페이스 모듈을 통해 명령이 수신될 경우, 복수개의 SATA/SAS/PCIe 인터페이스부로 각각 명령을 전송하는 복수개의 시퀀스 제어모듈; 을 포함하는 것을 특징으로 한다.
또한 상기 임베디드 프로세서 인터페이스 모듈은, 수신한 명령에 따라, 각 시퀀스 제어모듈에 대한 어드레스(address) 및 스토리지에 대한 데이터 라이트(write) 제어신호를 생성하여, 해당 어드레스에 따라 지정된 시퀀스 제어모듈에 명령을 전송하는 것을 특징으로 한다.
또한 상기 시퀀스 제어모듈은, 상기 SATA/SAS/PCIe 인터페이스부를 동작시키기 위해, 스토리지에 데이터를 라이트(write)하고, 읽어(read) 수신할 수 있도록 명령 리스트 및 명령 테이블을 생성하고, 필요한 레지스터(register)들을 셋팅한 후, 지정된 크기만큼 데이터가 스토리지에 전송되었는지 확인하는 것을 특징으로 한다.
그리고 상기 SATA/SAS/PCIe 인터페이스부는, 상기 시퀀스 제어부로부터 스토리지에 대한 데이터를 라이트(write)하고, 읽고(read) 할 수 있도록 하는 명령 데이터를 수신하는 고급 호스트 컨트롤러 인터페이스(Advanced Host Controller Interface: AHCI)모듈; 상기 시퀀스 제어부로부터 스토리지에 라이트(write)할 패턴 데이터를 수신하고, 스토리지에 라이트(write)된 패턴 결과 데이터를 수신하여 시퀀스 제어부로 전송하는 직접 메모리 액세스(Direct Memory Access: DMA)모듈; 상기 고급 호스트 컨트롤러 인터페이스모듈 및 직접 메모리 액세스모듈과 스토리지 간의 SATA(Serial-ATA) 인터페이스를 지원하는 SATA 인터페이스모듈; 상기 고급 호스트 컨트롤러 인터페이스모듈 및 직접 메모리 액세스모듈과 스토리지 간의 SAS(Serial Attached SCSI) 인터페이스를 지원하는 SAS 인터페이스모듈; 상기 고급 호스트 컨트롤러 인터페이스모듈 및 직접 메모리 액세스모듈과 스토리지 간의 PCIe(PCI express) 인터페이스를 지원하는 PCIe 인터페이스모듈; 및 상기 임베디드 프로세서에서 발생하는 인터페이스 선택신호에 따라, SATA 인터페이스모듈, SAS 인터페이스모듈 및 PCIe 인터페이스모듈 중, 어느 하나를 선택하여 스토리지와 임베디드 프로세서를 연결하여, 스토리지 테스트를 위한 데이터를 송수신하는 멀티플렉서(MUX); 를 포함하는 것을 특징으로 한다.
상기와 같은 본 발명에 따르면, SATA/SAS/PCIe 인터페이스부를 제어하는 역할로서 시퀀스 제어부를 이용함으로써, 전체적인 테스트 시간을 줄일 수 있는 효과가 있다.
도 1 은 종래 테스트 장치에 관한 구성도.
도 2 는 본 발명에 따른 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 관한 전체 구성도.
도 3 은 본 발명에 따른 데이터 엔진부에 관한 세부 구성도.
도 4 는 본 발명에 따른 시퀀스 제어부에 관한 세부 구성도.
도 5 는 본 발명에 따른 SATA/SAS/PCIe 인터페이스부에 관한 세부 구성도.
본 발명의 구체적 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다.
본 발명에 따른 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 관하여 도 2 내지 도 5 를 참조하여 설명하면 다음과 같다.
도 2 는 본 발명에 따른 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 관한 전체 구성도로서, 도시된 바와 같이 호스트 단말기(100), 네트워크(200), 통신 인터페이스부(300), 메모리(400), 임베디드 프로세서(500), 데이터 엔진부(600), 시퀀스 제어부(700) 및 SATA/SAS/PCIe 인터페이스부(800)를 포함하여 이루어진다.
호스트 단말기(100)는 스토리지(10)를 테스트 하기 위한 사용자의 제어신호를 입력받으며, 네트워크(200)는 호스트 단말기(100)와 통신 인터페이스부(300) 간의 데이터 인터페이스를 수행하며, 통신 인터페이스부(300)는 호스트 단말기(100), 임베디드 프로세서(500), 데이터 엔진부(600) 간에 데이터를 송수신할 수 있도록 인터페이스를 수행하며, 메모리(400)는 테스트를 위한 프로그램이 내장되어 있다.
임베디드 프로세서(500)는 데이터 엔진부(600) 및 시퀀스 제어부(700)와 스토리지(10)를 테스트 하기 위한 각종 데이터를 송수신한다.
구체적으로, 임베디드 프로세서(500)는 데이터 엔진부(600)를 통해 사용자의 테스트 조건에 대응하는 테스트 패턴을 생성하도록 제어하며, 시퀀스 제어부(700)를 통해 스토리지(10)에 대한 데이터 라이트(write) 명령을 생성하도록 제어하며, SATA/SAS/PCIe 인터페이스부(800)를 통해 테스트 하고자 하는 스토리지(10)의 인터페이스 종류에 따라 인터페이스를 선택하고, 테스트 패턴을 기초로 스토리지(10)를 테스트 하도록 제어하고, 그 결과를 수신한다.
데이터 엔진부(600)는 스토리지(10)에 라이트(write)하기 위한 패턴 데이터 및 SATA/SAS/PCIe 인터페이스부(800)의 제어를 위한 명령 데이터를 실시간으로 생성하고, 스토리지(10)로부터 라이트(write)된 결과 패턴 데이터를 읽어(read), 생성한 패턴 데이터와 비교하는 기능을 수행하는 바, 도 3 에 도시된 바와 같이 패턴 데이터 생성모듈(610), 명령 생성모듈(620) 및 데이터 비교모듈(630)을 포함한다.
구체적으로, 패턴 데이터 생성모듈(610)은 임베디드 프로세서(500)로부터 수신한 명령을 바탕으로, 스토리지(10)에 라이트(write)할 패턴 데이터를 생성하여, 임베디드 프로세서(500), 시퀀스 제어부(700) 및 SATA/SAS/PCIe 인터페이스부(800)로 전송하며, 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신한다. 이때, 패턴 데이터는 호스트 단말기(100)로부터 입력될 수 있으며, 임베디드 프로세서(500)로부터 패턴 데이터 선택신호가 입력될 수 있다.
명령 생성모듈(620)은 임베디드 프로세서(500)로부터 수신한 명령을 바탕으로, SATA/SAS/PCIe 인터페이스부(800)의 제어를 위한 명령 데이터를 생성하여, 임베디드 프로세서(500), 시퀀스 제어부(700) 및 SATA/SAS/PCIe 인터페이스부(800)로 전송한다.
데이터 비교모듈(630)은 SATA/SAS/PCIe 인터페이스부(800)로부터 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신하여, 상기 패턴 데이터 생성모듈(610)을 통해 생성된 패턴 데이터를 각 채널별로 비교하여 정상(pass) 또는 고장(fail)을 판정한 후 그 결과를 저장하고, 저장된 정보를 통신 인터페이스부(300) 및 네트워크(200)를 통해 호스트 단말기(100)로 전송한다.
시퀀스 제어부(700)는 임베디드 프로세서(500)로부터 수신한 명령 데이터에 따라, 복수개의 SATA/SAS/PCIe 인터페이스부(800)를 개별적으로 제어하는 기능을 수행하는 바, 도 4 에 도시된 바와 같이 임베디드 프로세서 인터페이스 모듈(710) 및 복수개의 시퀀스 제어모듈(720)을 포함한다.
구체적으로, 임베디드 프로세서 인터페이스 모듈(710)은 임베디드 프로세서(500)로부터 수신한 명령을 시퀀스 제어모듈(720)로 전송한다.
이때, 임베디드 프로세서 인터페이스 모듈(710)은 수신한 명령에 따라, 각 시퀀스 제어모듈(720)에 대한 어드레스(address) 및 스토리지(10)에 대한 데이터 라이트(write) 제어신호를 생성하여, 해당 어드레스에 따라 지정된 시퀀스 제어모듈(720)에 명령을 전송할 수 있다.
복수개의 시퀀스 제어모듈(720)은 복수개의 SATA/SAS/PCIe 인터페이스부(800)와 각각 연결되어, 임베디드 프로세서 인터페이스 모듈(710)을 통해 명령이 수신될 경우, 복수개의 SATA/SAS/PCIe 인터페이스부(800)로 각각 명령을 전송하되, SATA/SAS/PCIe 인터페이스부(800)를 동작시키기 위하여 스토리지(10)에 데이터를 라이트(write)하고, 읽어(read) 수신할 수 있도록 명령 리스트 및 명령 테이블을 생성하고, 필요한 레지스터(register)들을 셋팅한 후, 지정된 크기만큼 데이터가 스토리지(10)에 전송되었는지 확인한다.
한편, SATA 인터페이스를 가지는 스토리지(10)를 제어하는 시퀀스 제어모듈(720)의 제어 흐름을 살펴보도록 한다.
데이터 엔진부(600)의 SATA 인터페이스의 레지스터(register)를 초기화 시키고, 임베디드 프로세서(500)로부터 수신한 명령에 따라 명령 리스트 및 명령 테이블 등을 생성한다. 그리고, 생성된 명령들은 고급 호스트 컨트롤러 인터페이스(Advanced Host Controller Interface: AHCI)모듈(810) 레지스터(register)를 통해 SATA/SAS/PCIe 인터페이스부(800)의 SATA 인터페이스모듈(830)로 전송되어 SATA 인터페이스모듈(830)이 동작을 하도록 준비한다.
고급 호스트 컨트롤러 인터페이스(Advanced Host Controller Interface: AHCI)모듈(810) 레지스터(register)를 셋팅(setting)한 후, CI(command issue) 레지스터(register)를 셋팅(setting)하면, SATA 인터페이스모듈(830)은 셋팅된 명령에 따라 동작한다.
이후, SATA 인터페이스모듈(830)에 전달된 명령을 끝냈는지 확인하기 위하여, CI 레지스터(register)를 읽어서 전송되었는지 확인한다.
SATA 인터페이스모듈(830)에 전달된 명령이 끝나게 되면, RFIS(Read FIS)를 읽어 스토리지(10)에 명령이 제대로 전달되었는지 확인한다.
이때, 명령이 제대로 전달되었으면 에러가 발생되지 않는다. 에러가 발생되지 않는다면 지정된 양만큼의 데이터들이 전송(또는 수신)되었는지 확인하여 모든 데이터가 전송(또는 수신)되었으면, 시퀀스 제어모듈(720)은 프로세스를 종료하고, 임베디드 프로세서(500)로부터 다음 명령을 기다린다. RFIS(Read FIS)를 읽었을 때, 에러가 발생되었다면 복구될 수 있는 지를 확인하여 재시도한다. 한편, 복구 가능한 에러일 경우, 다시 초기상태로 가서 명령을 수행하고, 복구 가능하지 않은 에러일 경우, 프로세스를 종료하고, 임베디드 프로세서(500)로 에러 메세지를 전송한다.
만약, 이러한 동작을 임베디드 프로세서(500)가 하게 된다면 한 개 채널에 스토리지(10)에 데이터를 라이트(write)하도록 명령을 생성하고, 레지스터(register)를 설정하고, 데이터가 전부 전송되었는지를 감시하는 동안에 다른 채널의 SATA/SAS/PCIe 인터페이스부(800)를 제어할 수 없으므로, 시간적인 손실이 생기게 된다. 제어되는 스토리지(10)가 많이질수록 시간의 손실은 증가하게 된다.
SATA/SAS/PCIe 인터페이스부(800)는 복수개로 형성되어, 상기 임베디드 프로세서(500)에서 발생하는 인터페이스 선택신호에 따라, SATA, SAS, PCIe 인터페이스 중, 어느 하나로 스토리지(10)와 연결되며, 연결된 각각의 스토리지(10)를 테스트 할 수 있도록 임베디드 프로세서(500)에 의한 시퀀스 제어부(700)의 제어에 따라 복수개의 스토리지(10)를 제어하는 기능을 수행하는 바, 도 5 에 도시된 바와 같이 고급 호스트 컨트롤러 인터페이스모듈(810), 직접 메모리 액세스모듈(820), SATA 인터페이스모듈(830), SAS 인터페이스모듈(840), PCIe 인터페이스모듈(850) 및 멀티플렉서(860)를 포함한다.
구체적으로, 고급 호스트 컨트롤러 인터페이스(Advanced Host Controller Interface: AHCI)모듈(810)은 시퀀스 제어부(700)로부터 스토리지(10)에 대한 데이터를 라이트(write)하고, 읽고(read) 할 수 있도록 하는 명령 데이터를 수신한다.
직접 메모리 액세스(Direct Memory Access: DMA)모듈(820)은 시퀀스 제어부(700)로부터 스토리지(10)에 라이트(write)할 패턴 데이터를 수신하고, 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신하여 시퀀스 제어부(700)로 전송한다.
SATA 인터페이스모듈(830)은 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 SATA(Serial-ATA) 인터페이스를 지원한다.
SAS 인터페이스모듈(840)은 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 SAS(Serial Attached SCSI) 인터페이스를 지원한다.
PCIe 인터페이스모듈(850)은 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 PCIe(PCI express) 인터페이스를 지원한다.
멀티플렉서(MUX)(860)는 임베디드 프로세서(500)에서 발생하는 인터페이스 선택신호에 따라, SATA 인터페이스모듈(830), SAS 인터페이스모듈(840) 및 PCIe 인터페이스모듈(850) 중, 어느 하나를 선택하여 스토리지(10)와 임베디드 프로세서(500)를 연결하여, 스토리지(10) 테스트를 위한 데이터를 송수신한다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
100: 호스트 단말기
200: 네트워크
300: 통신 인터페이스
400: 메모리
500: 임베디드 프로세서
600: 데이터 엔진부
700: 시퀀스 제어부
800: SATA/SAS/PCIe 인터페이스부
610: 패턴 데이터 생성모듈
620: 명령 생성모듈
630: 데이터 비교모듈
710: 임베디드 프로세서 인터페이스부
720: 시퀀스 제어모듈
810: 고급 호스트 컨트롤러 인터페이스모듈
820: 직접 메모리 액세스모듈
830: SATA 인터페이스모듈
840: SAS 인터페이스모듈
850: PCIe 인터페이스모듈
860: 멀티플렉서

Claims (8)

  1. 복수개의 스토리지를 개별 제어 가능한 테스트 장치에 있어서,
    스토리지(10)를 테스트 하기 위한 사용자의 제어신호를 입력받는 호스트 단말기(100);
    호스트 단말기(100), 임베디드 프로세서(500), 데이터 엔진부(600) 간에 데이터를 송수신할 수 있도록 인터페이스를 수행하는 통신 인터페이스부(300);
    데이터 엔진부(600) 및 시퀀스 제어부(700)와 스토리지(10)를 테스트 하기 위한 각종 데이터를 송수신하는 임베디드 프로세서(500);
    스토리지(10)에 라이트(write)하기 위한 패턴 데이터 및 SATA/SAS/PCIe 인터페이스부(800)의 제어를 위한 명령 데이터를 실시간으로 생성하고, 스토리지(10)로부터 라이트(write)된 결과 패턴 데이터를 읽어(read), 생성한 패턴 데이터와 비교하는 데이터 엔진부(600);
    상기 임베디드 프로세서(500)로부터 수신한 명령 데이터에 따라, 복수개의 SATA/SAS/PCIe 인터페이스부(800)를 개별적으로 제어하는 시퀀스 제어부(700); 및
    복수개로 형성되어, 상기 임베디드 프로세서(500)에서 발생하는 인터페이스 선택신호에 따라, SATA, SAS, PCIe 인터페이스 중, 어느 하나로 스토리지(10)와 연결되며, 연결된 각각의 스토리지(10)를 테스트 할 수 있도록 임베디드 프로세서(500)에 의한 시퀀스 제어부(700)의 제어에 따라 복수개의 스토리지(10)를 제어하는 SATA/SAS/PCIe 인터페이스부(800); 를 포함하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  2. 제 1 항에 있어서,
    상기 임베디드 프로세서(500)는,
    상기 데이터 엔진부(600)를 통해 사용자의 테스트 조건에 대응하는 테스트 패턴을 생성하도록 제어하며, 상기 시퀀스 제어부(700)를 통해 스토리지(10)에 대한 데이터 라이트(write) 명령을 생성하도록 제어하며, 상기 SATA/SAS/PCIe 인터페이스부(800)를 통해 테스트 하고자 하는 스토리지(10)의 인터페이스 종류에 따라 인터페이스를 선택하고, 테스트 패턴을 기초로 스토리지(10)를 테스트 하도록 제어하고, 그 결과를 수신하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  3. 제 1 항에 있어서,
    상기 데이터 엔진부(600)는,
    상기 임베디드 프로세서(500)로부터 수신한 명령을 바탕으로, 스토리지(10)에 라이트(write)할 패턴 데이터를 생성하여, 임베디드 프로세서(500), 시퀀스 제어부(700) 및 SATA/SAS/PCIe 인터페이스부(800)로 전송하며, 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신하는 패턴 데이터 생성모듈(610);
    상기 임베디드 프로세서(500)로부터 수신한 명령을 바탕으로, SATA/SAS/PCIe 인터페이스부(800)의 제어를 위한 명령 데이터를 생성하여, 임베디드 프로세서(500), 시퀀스 제어부(700) 및 SATA/SAS/PCIe 인터페이스부(800)로 전송하는 명령 생성모듈(620); 및
    상기 SATA/SAS/PCIe 인터페이스부(800)로부터 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신하여, 상기 패턴 데이터 생성모듈(610)을 통해 생성된 패턴 데이터를 각 채널별로 비교하여 정상(pass) 또는 고장(fail)을 판정한 후 그 결과를 저장하고, 저장된 정보를 통신 인터페이스부(300) 및 네트워크(200)를 통해 호스트 단말기(100)로 전송하는 데이터 비교모듈(630); 을 포함하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  4. 제 3 항에 있어서,
    상기 패턴 데이터 생성모듈(610)은,
    상기 호스트 단말기(100)로부터 패턴 데이터를 입력받으며, 상기 임베디드 프로세서(500)로부터 패턴 데이터 선택신호를 입력받는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  5. 제 1 항에 있어서,
    상기 시퀀스 제어부(700)는,
    상기 임베디드 프로세서(500)로부터 수신한 명령을 시퀀스 제어모듈(720)로 전송하는 임베디드 프로세서 인터페이스 모듈(710); 및
    복수개의 SATA/SAS/PCIe 인터페이스부(800)와 각각 연결되어, 상기 임베디드 프로세서 인터페이스 모듈(710)을 통해 명령이 수신될 경우, 복수개의 SATA/SAS/PCIe 인터페이스부(800)로 각각 명령을 전송하는 복수개의 시퀀스 제어모듈(720); 을 포함하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  6. 제 5 항에 있어서,
    상기 임베디드 프로세서 인터페이스 모듈(710)은,
    수신한 명령에 따라, 각 시퀀스 제어모듈(720)에 대한 어드레스(address) 및 스토리지(10)에 대한 데이터 라이트(write) 제어신호를 생성하여, 해당 어드레스에 따라 지정된 시퀀스 제어모듈(720)에 명령을 전송하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  7. 제 5 항에 있어서,
    상기 시퀀스 제어모듈(720)은,
    상기 SATA/SAS/PCIe 인터페이스부(800)를 동작시키기 위해, 스토리지(10)에 데이터를 라이트(write)하고, 읽어(read) 수신할 수 있도록 명령 리스트 및 명령 테이블을 생성하고, 필요한 레지스터(register)들을 셋팅한 후, 지정된 크기만큼 데이터가 스토리지(10)에 전송되었는지 확인하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.
  8. 제 1 항에 있어서,
    상기 SATA/SAS/PCIe 인터페이스부(800)는,
    상기 시퀀스 제어부(700)로부터 스토리지(10)에 대한 데이터를 라이트(write)하고, 읽고(read) 할 수 있도록 하는 명령 데이터를 수신하는 고급 호스트 컨트롤러 인터페이스(Advanced Host Controller Interface: AHCI)모듈(810);
    상기 시퀀스 제어부(700)로부터 스토리지(10)에 라이트(write)할 패턴 데이터를 수신하고, 스토리지(10)에 라이트(write)된 패턴 결과 데이터를 수신하여 시퀀스 제어부(700)로 전송하는 직접 메모리 액세스(Direct Memory Access: DMA)모듈(820);
    상기 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 SATA(Serial-ATA) 인터페이스를 지원하는 SATA 인터페이스모듈(830);
    상기 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 SAS(Serial Attached SCSI) 인터페이스를 지원하는 SAS 인터페이스모듈(840);
    상기 고급 호스트 컨트롤러 인터페이스모듈(810) 및 직접 메모리 액세스모듈(820)과 스토리지(10) 간의 PCIe(PCI express) 인터페이스를 지원하는 PCIe 인터페이스모듈(850); 및
    상기 임베디드 프로세서(500)에서 발생하는 인터페이스 선택신호에 따라, SATA 인터페이스모듈(830), SAS 인터페이스모듈(840) 및 PCIe 인터페이스모듈(850) 중, 어느 하나를 선택하여 스토리지(10)와 임베디드 프로세서(500)를 연결하여, 스토리지(10) 테스트를 위한 데이터를 송수신하는 멀티플렉서(MUX)(860); 를 포함하는 것을 특징으로 하는 복수개의 스토리지를 개별 제어 가능한 테스트 장치.



KR1020130103034A 2013-08-29 2013-08-29 복수개의 스토리지를 개별 제어 가능한 테스트 장치 KR101522293B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130103034A KR101522293B1 (ko) 2013-08-29 2013-08-29 복수개의 스토리지를 개별 제어 가능한 테스트 장치
CN201410353049.5A CN104425041B (zh) 2013-08-29 2014-07-23 能够对多个存储器进行独立控制的测试装置
US14/453,654 US9411700B2 (en) 2013-08-29 2014-08-07 Storage tester capable of individual control for a plurality of storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130103034A KR101522293B1 (ko) 2013-08-29 2013-08-29 복수개의 스토리지를 개별 제어 가능한 테스트 장치

Publications (2)

Publication Number Publication Date
KR20150025393A true KR20150025393A (ko) 2015-03-10
KR101522293B1 KR101522293B1 (ko) 2015-05-21

Family

ID=52585003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130103034A KR101522293B1 (ko) 2013-08-29 2013-08-29 복수개의 스토리지를 개별 제어 가능한 테스트 장치

Country Status (3)

Country Link
US (1) US9411700B2 (ko)
KR (1) KR101522293B1 (ko)
CN (1) CN104425041B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130204A1 (ko) * 2018-12-21 2020-06-25 주식회사 태진인포텍 다중 인터페이스의 저장 장치를 제어하기 위한 시스템 및 그 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563591B2 (en) * 2014-03-06 2017-02-07 International Business Machines Corporation Peripheral component interconnect express (PCIe) ping in a switch-based environment
WO2016154079A1 (en) 2015-03-20 2016-09-29 Burlywood, LLC Configurable multi-level error correction in a storage controller
US9997251B2 (en) * 2015-03-26 2018-06-12 Burlywood, LLC Medium defect management method for storage systems requiring an integrated controller
US9792048B2 (en) * 2015-06-22 2017-10-17 Western Digital Technologies, Inc. Identifying disk drives and processing data access requests
US9858177B2 (en) * 2015-10-30 2018-01-02 International Business Machines Corporation Automated test generation for multi-interface enterprise virtualization management environment
KR20170130013A (ko) 2016-05-17 2017-11-28 삼성전자주식회사 바이너리 벡터 기반의 테스트 장치
KR20180016680A (ko) 2016-08-04 2018-02-19 삼성전자주식회사 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법
CN107423177A (zh) * 2017-06-30 2017-12-01 郑州云海信息技术有限公司 一种sas链路的测试方法及装置
KR20200093363A (ko) 2019-01-28 2020-08-05 에스케이하이닉스 주식회사 메모리 시스템
TWI717952B (zh) * 2019-12-26 2021-02-01 慧榮科技股份有限公司 獨立橋接測試方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873885B1 (en) * 2004-01-20 2011-01-18 Super Talent Electronics, Inc. SSD test systems and methods
JP2007157303A (ja) * 2005-12-08 2007-06-21 Advantest Corp 試験装置および試験方法
KR100735751B1 (ko) * 2005-12-26 2007-07-06 삼성전자주식회사 반도체 메모리 장치
JP4939428B2 (ja) * 2007-03-09 2012-05-23 株式会社アドバンテスト 試験装置
CN101853692B (zh) * 2009-04-03 2014-06-18 群联电子股份有限公司 具闪存测试功能的控制器及其储存系统与测试方法
KR101087182B1 (ko) * 2009-04-16 2011-11-25 (주) 제노맥스 스토리지 테스터 및 ssd 디바이스
US8737136B2 (en) * 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US8858478B2 (en) * 2011-06-09 2014-10-14 William Purdy Method and system for fluidized lower leg protection
KR101240633B1 (ko) * 2012-08-13 2013-03-11 주식회사 유니테스트 솔리드 스테이트 드라이브 테스트장치
US9952276B2 (en) * 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130204A1 (ko) * 2018-12-21 2020-06-25 주식회사 태진인포텍 다중 인터페이스의 저장 장치를 제어하기 위한 시스템 및 그 방법

Also Published As

Publication number Publication date
KR101522293B1 (ko) 2015-05-21
CN104425041B (zh) 2017-12-26
CN104425041A (zh) 2015-03-18
US9411700B2 (en) 2016-08-09
US20150067418A1 (en) 2015-03-05

Similar Documents

Publication Publication Date Title
KR101522293B1 (ko) 복수개의 스토리지를 개별 제어 가능한 테스트 장치
KR101561854B1 (ko) Fpga 기반의 비실장형 스토리지 테스트 장치
JP5032027B2 (ja) 半導体ディスク制御装置
US20190018615A1 (en) Host for controlling non-volatile memory card, system including the same, and methods operating the host and the system
KR101547317B1 (ko) 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
CN102841872B (zh) 用于命令处理的高性能路径
US9378846B2 (en) Non-mounted storage test device based on FPGA
US8086919B2 (en) Controller having flash memory testing functions, and storage system and testing method thereof
KR101254647B1 (ko) 솔리드 스테이트 드라이브 테스트장치
US9159454B2 (en) Failure detection apparatus for solid state drive tester
US10607714B2 (en) Verification of storage media upon deployment
US9245613B2 (en) Storage interface apparatus for solid state drive tester
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
US8883521B2 (en) Control method of multi-chip package memory device
US20140164845A1 (en) Host computer and method for testing sas expanders
US10191533B2 (en) Method of enabling sleep mode, memory control circuit unit and storage apparatus
US20180364946A1 (en) Data storage device
KR102469098B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치
US9153345B2 (en) Error generating apparatus for solid state drive tester
US20190087275A1 (en) Memory system
KR20150070528A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR101365430B1 (ko) 솔리드 스테이트 드라이브 테스터에서 플래시 메모리 상태검출장치
KR101972535B1 (ko) 반도체 저장 장치
CN117577164A (zh) 存储器控制器测试方法及装置
CN114333960A (zh) 闪存物理层的测试方法及闪存设备

Legal Events

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

Payment date: 20180320

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190305

Year of fee payment: 5