KR101547317B1 - 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템 - Google Patents

스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템 Download PDF

Info

Publication number
KR101547317B1
KR101547317B1 KR1020130116138A KR20130116138A KR101547317B1 KR 101547317 B1 KR101547317 B1 KR 101547317B1 KR 1020130116138 A KR1020130116138 A KR 1020130116138A KR 20130116138 A KR20130116138 A KR 20130116138A KR 101547317 B1 KR101547317 B1 KR 101547317B1
Authority
KR
South Korea
Prior art keywords
data
address
ssd
device driver
hba
Prior art date
Application number
KR1020130116138A
Other languages
English (en)
Other versions
KR20150037001A (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 KR1020130116138A priority Critical patent/KR101547317B1/ko
Priority to US14/453,647 priority patent/US9613718B2/en
Publication of KR20150037001A publication Critical patent/KR20150037001A/ko
Application granted granted Critical
Publication of KR101547317B1 publication Critical patent/KR101547317B1/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/273Tester hardware, i.e. output processing circuits
    • 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/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • 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/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • 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
    • G11C29/56004Pattern generation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/5606Error catch memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

본 발명은 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템에 관한 것으로서, 기대 값 버퍼없이, SSD 테스트에서 읽은 데이터를 비교할 수 있는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템을 제공함에 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명은, HBA를 제어하는 디바이스 드라이버; 루트 콤플렉스(Root Complex)에 요청되는 요청(request)을 판독하여 디바이스 드라이버와 데이터 엔진에 전달하는 요청 처리기; 및SSD에 전송될 데이터를 생성하고, 읽어온 데이터를 비교하기 위한 데이터 엔진; 을 포함한다.

Description

스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템{System for detecting fail block using logic block address and data buffer address in storage test device}
본 발명은 불량 블록 검출 시스템에 관한 것으로서, 더욱 상세하게는 솔리드 스테이트 드라이브(Solid State Drive; SSD) 테스트 시, 패턴 데이터 생성기와 패턴 생성기로부터 생성된 데이터를 버퍼에 저장하던 종래와 달리, 기대 값 버퍼없이, SSD 테스트에서 읽은 데이터를 비교할 수 있는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템에 관한 것이다.
스토리지를 테스트 하는 장치와 관련해서는, 한국공개특허 10-2010-0114697호(이하, '선행문헌') 외에 다수 출원 및 공개되어 있다.
상기한 선행문헌은, 스토리지(storage)와의 인터페이스를 유지하는 스토리지 인터페이스부; 사용자로부터 상기 스토리지의 테스트를 위한 테스트 조건을 입력 받는 사용자 인터페이스부; 상기 사용자로부터 입력 받은 상기 테스트 조건에 대응하는 상기 스토리지의 테스트를 위한 테스트 패턴(test pattern)을 생성하는 테스트 패턴 생성부; 및 상기 테스트 패턴을 통해 상기 스토리지의 테스트를 제어하는 테스트 제어부; 를 포함한다.
그러나 선행문헌을 포함한 종래의 테스트 장치는, 플래시 어레이의 불량(fail) 로직 블록 어드레스(Logic Block Address: LBA)를 검출하기 위해, SSD Device에 특정 패턴의 데이터 쓰기를 수행하고, 다시 읽어들여, 데이터가 유효한지 비교를 하게 된다. 이러한 장치에는 패턴 데이터 생성기와 패턴 데이터 생성기로부터 생성된 데이터를 버퍼(기대 값버퍼, expected data buffer)에 저장하게된다. 이 저장된 데이터는 SSD Device로부터 다시 데이터를 읽어, 이 데이터 버퍼에 내용과 비교하여, 불량(Fail) 여부를 판단하게 된다. 이러한 방식은 가용 버퍼 용량제한의 문제점을 갖게 된다.
현재 SSD의 용량은 수백기가 바이트에 이르고 있다. 이러한 장치를 테스트 하기 위해서, 기대 값 버퍼의 크기를 늘리는 것은 여러가지 제약사항을 발생 시킨다. 예컨데 너무 작게 잡는다면, 작은 데이터 블록으로 dataRead/Write를 수행하게 되어, 전체 테스트 시간이 늘어나게 된다. 너무 크게 잡는다면, 성능은 증가하지만, 시스템 관점에서 수용할 수 없는 메모리의 양을 요구하게 된다.
본 발명은 상기와 같은 문제점을 감안하여 안출된 것으로, 기대 값 버퍼없이, SSD 테스트에서 읽은 데이터를 비교할 수 있는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템을 제공함에 그 목적이 있다.
이러한 기술적 과제를 달성하기 위한 본 발명은 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템에 관한 것으로서, HBA를 제어하는 디바이스 드라이버; 루트 콤플렉스(Root Complex)에 요청되는 요청(request)을 판독하여 디바이스 드라이버와 데이터 엔진에 전달하는 요청 처리기; 및 SSD에 전송될 데이터를 생성하고, 읽어온 데이터를 비교하기 위한 데이터 엔진; 을 포함한다.
또한 상기 디바이스 드라이버는, 상기 SSD에 읽기/쓰기(Read/Write) 명령을 생성하며, 테스트 모드 및 각종 명령을 제어하는 제어부; 및 상기 제어부의 명령 생성 시, SSD의 LBA에 액세스(Access)하기 위한 무작위 LBA 또는 순차 LBA를 생성하는 LBA 발생부; 를 포함하는 것을 특징으로 한다.
또한 상기 제어부는, 상기 SSD에 사용되는 ATA(Advanced Technology Attachment) 명령을 생성하는 블록으로서, 상기 SSD를 관리하는 HBA(Host Bridge Adapter)와 통신하며, SSD에 데이터를 읽고/쓰기(Read/Write) 하기 위해, 상기 HBA의 레지스터(register)를 액세스(access)하여, HBA가 DMA 동작을 수행하도록 하는 것을 특징으로 한다.
또한 상기 명령에는, 읽고/쓰기(Read/Write) 위한 데이터 버퍼(Data Buffer)의 기준 주소(base address)와 크기(size), 상기 SSD의 로직 블록 어드레스(Logic Block Address: LBA) 정보가 포함되어 있는 것을 특징으로 한다.
또한 상기 요청 처리기는, 상기 디바이스 드라이버가 HBA의 레지스터(Register)에 액세스(access)하기 위한 Mwr 패킷 전달 플래그를 전달할 경우, 상기 플래그를 디코딩해서 루트 콤플렉스(Root Complex)가 HBA의 레지스터(Register)에 쓰기(Write)를 완료하도록 하며, 상기 HBA가 루트 콤플렉스(Root Complex)에 명령 헤더(Command Header) 정보를 요청하기 위해 Mrd(Memory Read Request) 패킷을 보낼 경우, 상기 패킷을 디바이스 드라이버에 연결하여, 해당 정보를 디바이스 드라이버에서 Cpld(Completion with Data) 패킷으로 보낼 수 있도록 패킷(patcket)을 판독하고 연결하는 것을 특징으로 한다.
그리고 상기 데이터 엔진은, 상기 디바이스 드라이버의 제어에 의해 SSD에 데이터를 읽거나 쓰기 위한 DMA(Direct Memory Access) 동작을 수행하며, 상기 디바이스 드라이버를 통해 생성된 LBA와 요청 처리기로 요청된 메모리 주소를 이용하여 만든 시드(Seed)값으로 무작위 데이터를 생성하며, 패킷의 요청 데이터량이 일정 섹터만큼 누적된 경우, 데이터 생성 로직을 리셋하는 패턴 데이터 발생부; 읽기 및 비교(Read & compare) 동작 시, 상기 패턴 데이터 발생부를 통해 생성된 기대 값(Expected data)과, HBA Mwr(Memory Wite Request)의 데이터인 SSD에서 읽은 데이터를 비교하여, 해당 LBA의 데이터가 동일한지 여부를 판단하는 비교부; 및 상기 비교부의 판단결과, 동일하지 않을 경우, 불량(Fail) 정보를 저장하는 불량 기록 저장부; 를 포함하는 것을 특징으로 한다.
상기와 같은 본 발명에 따르면, 기대 값을 저장하며 전체 테스트 시간이 줄이기 위한, 메모리 양을 늘리지 않아도 되는 효과가 있다.
그리고 본 발명에 따르면, SSD의 전체 LBA를 랜덤 모드로 쓰고/읽고(write/read)하여 비교가 가능하며, 어드레스를 일정한 값으로 계속 증가시키는 순차 모드에서도 사용이 가능한 효과가 있다.
도 1 은 본 발명에 따른 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템을 개념적으로 도시한 전체 구성도.
도 2 는 본 발명에 따른 디바이스 드라이버에 관한 세부 구성도.
도 3 은 본 발명에 따른 데이터 엔진에 관한 세부 구성도.
본 발명의 구체적 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다.
본 발명에 따른 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템에 관하여 도 1 내지 도 3 을 참조하여 설명하면 다음과 같다.
도 1 은 본 발명에 따른 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템(S)을 개념적으로 도시한 전체 구성도로서, 도시된 바와 같이 HBA를 제어하는 디바이스 드라이버(100), 루트 콤플렉스(Root Complex)에 요청되는 요청(request)을 판독하여 디바이스 드라이버(100)와 데이터 엔진(300)에 전달하는 요청 처리기(200) 및 SSD에 전송될 데이터를 생성하고, 읽어온 데이터를 비교하기 위한 데이터 엔진(300)을 포함하여 이루어진다.
도 1 에 도시된 바와 같이, PCIe Root Complex(RC)를 중심으로 디바이스 드라이버(100), 요청 처리기(200) 및 데이터 엔진(300)으로 구성된 사용자 로직 블록과, RC 하단에 Host Bridge Adapter Endpoint(HBA EP)들이 위치하고 있다. EP들은 RC와 데이터 링크로 통신하게 되고, SSD는 endpoint와 SATA나 SAS와 같은 방식으로 통신하게 된다. 디바이스 드라이버(100), 요청 처리기(200) 및 데이터 엔진(300)로 구성된 사용자 로직 블록은 RC로 요청되는 패킷(Packet)을 판독하여 대응하게 된다.
현재 SSD는 HBA를 외장형태로 필요로 하는 SSD, 즉 SAS, SATA 디바이스와 HBA가 포함된 PCI express(PCIe)형태 크게 두 가지가 존재한다. 앞에 기술한 SSD는 외부에 HBA를 거쳐 컴퓨터 시스템의 PCIe Bus에 연결되고, 후자는 디바이스 자체가 PCIe에 연결되어 운용되는 차이점을 가지고 있다.
(a) ~ (e)로 표시한 데이터 링크(Data Link)는 다음 내용과 같다.
(e) 링크는 SATA, SAS와 같은 SCSI 레벨의 패킷으로 데이터 링크가 구성되며, (d) 링크는 PCIe의 패킷, 예를 들면, Memory Read Request(Mrd), Memory Wite Request(Mrw), Completion with Data(Cpld) 등의 패킷으로 데이터 링크를 구성한다. 본 발명에서 Mrd, Mwr는 SSD로부터 읽혀지거나, 쓰여지는 데이터 버퍼의 어드레스(Address) 정보가 담겨 있다. 그리고, (a), (b) 및 (c) 링크는 본 발명의 사용자 로직으로서, Root Complex(RC)에 들어오는 패킷 정보, 가령 Mrd에 응답으로 Cpld를 보내거나, Mwr의 데이터를 데이터 버퍼에 연결해준다.
디바이스 드라이버(100)는 도 2 에 도시된 바와 같이 제어부(110) 및 LBA 발생부(120)를 포함한다.
구체적으로, 제어부(110)는 SSD에 읽기/쓰기(Read/Write) 명령을 생성하며, 테스트 모드 및 각종 명령을 제어한다.
이때, 제어부(110)는 SSD에 사용되는 ATA(Advanced Technology Attachment) 명령을 생성하는 블록으로서, SSD를 관리하는 AHCI(Advanced Host Contoller Interface)와 같은 HBA(Host Bridge Adapter)와 통신하게 된다.
이러한 명령에는, 읽고/쓰기(Read/Write) 위한 데이터 버퍼(Data Buffer)의 기준 주소(base address)와 크기(size), SSD의 로직 블록 어드레스(Logic Block Address: LBA) 정보가 포함되어 있다. 이 정보를 바탕으로 HBA는 SSD에 읽거나 쓰기 위한, DMA(Direct Memory Access) 동작을 수행하게 된다.
즉, 제어부(110)는 HBA(SATA, SAS)를 제어한다. 즉, SSD에 데이터를 읽고/쓰기(Read/Write) 하기 위해, HBA의 레지스터(register)를 액세스(access)하여, HBA가 DMA 동작을 수행하도록 한다.
LBA 발생부(120)는 SSD 테스트 시 LBA를 순차적으로 증가시키며 액세스(Access)하는 순차 LBA 모드(Sequential LBA Mode)와, 무작위 LBA를 사용하는 랜덤 LBA 모드(Random LBA Mode)를 가진다.
이에 따라, LBA 발생부(120)는 SSD의 LBA에 액세스(Access)하기 위한 무작위 LBA 또는 순차 LBA를 생성한다. 즉, LBA 발생부(120)는 제어부(110)의 명령 생성 시, 테스트 모드에 따른 LBA를 생성한다.
요청 처리기(200)는 HBA EndPoint(EP)가 루트 콤플렉스(Root Complex)로 보내온 요청(Request)에 대한 정보를 받아, 디바이스 드라이버(100)와 데이터 엔진(300)에 전달한다.
예를 들면, 디바이스 드라이버(100)가 HBA의 레지스터(Register)에 액세스(access)하기 위한 Mwr 패킷 전달 플래그를 전달하면, 이 플래그를 디코딩해서 루트 콤플렉스(Root Complex)가 HBA의 레지스터(Register)에 쓰기(Write)를 완료하도록 한다.
그 후, HBA가 루트 콤플렉스(Root Complex)에 명령 헤더(Command Header) 정보를 요청하기 위해 Mrd(Memory Read Request) 패킷을 보내면, 이 패킷을 디바이스 드라이버(100)에 연결하여, 해당 정보를 디바이스 드라이버(100)에서 Cpld(Completion with Data) 패킷으로 보낼 수 있도록 패킷(patcket)을 판독하고 연결한다.
데이터 엔진(300)은 도 3 에 도시된 바와 같이 패턴 데이터 발생부(310), 비교부(320) 및 불량 기록 저장부(330)를 포함한다.
구체적으로, 패턴 데이터 발생부(310)는 제어부(110)의 제어에 의해 SSD에 데이터를 읽거나 쓰기 위한 DMA(Direct Memory Access) 동작을 수행한다.
이때, 패턴 데이터 발생부(310)는 LBA 발생부(120)를 통해 생성된 LBA와 요청 처리기(200)로 요청된 메모리 주소를 이용하여 만든 시드(Seed)값으로 무작위 데이터를 생성한다.
더욱 구체적으로, 패턴 데이터 발생부(310)는 SSD에 쓰기(Write)에 필요한 데이터를 생성하고, 읽기 및 비교(Read & compare) 동작 시, 기대 값(Expected Data)을 생성한다. 또한, 쓰기(Write) 동작 시에는, 요청 처리기(200)로 Mrd 요청(reqeust)을 수신한다.
이 패킷에서 요청 데이터량을 누적하여, 요청 데이터량이 1-섹터(Sector) 만큼 누적됐을 때, 요청된 어드레스(Address)와 명령(Command)의 LBA를 합하여 시드(Seed)를 생성하여 로직을 리셋한다.
이때, 해당 LBA는 시드 팩터(Seed Factor)만 같다면, 항상 같은 시드(Seed) 값으로 생성된 무작위 데이터를 저장하게 되어 무작위, 순차 LBA에 상관없이 같은 데이터를 저장하게 된다.
이 때문에, 기대 값(Expected data)을 저장할 추가적인 메모리가 필요 없게 된다. 여기서, 시드 팩터(Seed Factor)란, 기본 시드(Seed) 값 더하여, LBA에 항상 동일한 패턴 데이터이 저장되는 것을 피할 수 있도록 하는 변수이다.
비교부(320)는 읽기 및 비교(Read & compare) 동작 시, 패턴 데이터 발생부(310)를 통해 생성된 기대 값(Expected data)과, HBA Mwr(Memory Wite Request)의 데이터, 즉 SSD에서 읽은 데이터를 비교하여, 해당 LBA의 데이터가 동일한지 여부를 판단하고, 동일하지 않을 경우, 불량(Fail) 정보를 불량 기록 저장부(330)에 저장한다.
즉, 불량 기록 저장부(330)에는 불량(Fail)이 발생한 LBA와 기대 값 및 읽은 데이터 등이 저장된다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
S: 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
100: 디바이스 드라이버 110: 제어부
120: LBA 발생부 200: 요청 처리기
300: 데이터 엔진 310: 패턴 데이터 발생부
320: 비교부 330: 불량 기록 저장부

Claims (6)

  1. HBA를 제어하는 디바이스 드라이버(100);
    루트 콤플렉스(Root Complex)에 요청되는 요청(request)을 판독하여 디바이스 드라이버(100)와 데이터 엔진(300)에 전달하는 요청 처리기(200); 및
    SSD에 전송될 데이터를 생성하고, 읽어온 데이터를 비교하기 위한 데이터 엔진(300); 을 포함하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
  2. 제 1 항에 있어서,
    상기 디바이스 드라이버(100)는,
    상기 SSD에 읽기/쓰기(Read/Write) 명령을 생성하며, 테스트 모드 및 각종 명령을 제어하는 제어부(110); 및
    상기 제어부(110)의 명령 생성 시, SSD의 LBA에 액세스(Access)하기 위한 무작위 LBA 또는 순차 LBA를 생성하는 LBA 발생부(120); 를 포함하는 것을 특징으로 하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
  3. 제 2 항에 있어서,
    상기 제어부(110)는,
    상기 SSD에 사용되는 ATA(Advanced Technology Attachment) 명령을 생성하는 블록으로서, 상기 SSD를 관리하는 HBA(Host Bridge Adapter)와 통신하며, SSD에 데이터를 읽고/쓰기(Read/Write) 하기 위해, 상기 HBA의 레지스터(register)를 액세스(access)하여, HBA가 DMA 동작을 수행하도록 하는 것을 특징으로 하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
  4. 제 3 항에 있어서,
    상기 ATA 명령에는,
    읽고/쓰기(Read/Write) 위한 데이터 버퍼(Data Buffer)의 기준 주소(base address)와 크기(size), 상기 SSD의 로직 블록 어드레스(Logic Block Address: LBA) 정보가 포함되어 있는 것을 특징으로 하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
  5. 제 1 항에 있어서,
    상기 요청 처리기(200)는,
    상기 디바이스 드라이버(100)가 HBA의 레지스터(Register)에 액세스(access)하기 위한 Mwr 패킷 전달 플래그를 전달할 경우, 상기 플래그를 디코딩해서 루트 콤플렉스(Root Complex)가 HBA의 레지스터(Register)에 쓰기(Write)를 완료하도록 하며, 상기 HBA가 루트 콤플렉스(Root Complex)에 명령 헤더(Command Header) 정보를 요청하기 위해 Mrd(Memory Read Request) 패킷을 보낼 경우, 상기 패킷을 디바이스 드라이버(100)에 연결하여, 해당 정보를 디바이스 드라이버(100)에서 Cpld(Completion with Data) 패킷으로 보낼 수 있도록 패킷(patcket)을 판독하고 연결하는 것을 특징으로 하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
  6. 제 1 항에 있어서,
    상기 데이터 엔진(300)은,
    상기 디바이스 드라이버(100)의 제어에 의해 SSD에 데이터를 읽거나 쓰기 위한 DMA(Direct Memory Access) 동작을 수행하며, 상기 디바이스 드라이버(100)를 통해 생성된 LBA와 요청 처리기(200)로 요청된 메모리 주소를 이용하여 만든 시드(Seed)값으로 무작위 데이터를 생성하며, 패킷의 요청 데이터량이 일정 섹터만큼 누적된 경우, 데이터 생성 로직을 리셋하는 패턴 데이터 발생부(310);
    읽기 및 비교(Read & compare) 동작 시, 상기 패턴 데이터 발생부(310)를 통해 생성된 기대 값(Expected data)과, HBA Mwr(Memory Wite Request)의 데이터인 SSD에서 읽은 데이터를 비교하여, 해당 LBA의 데이터가 동일한지 여부를 판단하는 비교부(320); 및
    상기 비교부(320)의 판단결과, 동일하지 않을 경우, 불량(Fail) 정보를 저장하는 불량 기록 저장부(330); 를 포함하는 것을 특징으로 하는 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템.
KR1020130116138A 2013-09-30 2013-09-30 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템 KR101547317B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130116138A KR101547317B1 (ko) 2013-09-30 2013-09-30 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
US14/453,647 US9613718B2 (en) 2013-09-30 2014-08-07 Detection system for detecting fail block using logic block address and data buffer address in a storage tester

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130116138A KR101547317B1 (ko) 2013-09-30 2013-09-30 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템

Publications (2)

Publication Number Publication Date
KR20150037001A KR20150037001A (ko) 2015-04-08
KR101547317B1 true KR101547317B1 (ko) 2015-08-26

Family

ID=52741391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130116138A KR101547317B1 (ko) 2013-09-30 2013-09-30 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템

Country Status (2)

Country Link
US (1) US9613718B2 (ko)
KR (1) KR101547317B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180016680A (ko) 2016-08-04 2018-02-19 삼성전자주식회사 저장 장치, 그것을 테스트 하는 테스트 시스템 및 방법
KR20180027656A (ko) * 2016-09-05 2018-03-15 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN106776404B (zh) * 2016-12-19 2020-04-07 湖南国科微电子股份有限公司 SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法
CN107704350A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种自动化测试SSD Qos的测试方法
CN108346453B (zh) * 2017-12-28 2021-01-15 北京兆易创新科技股份有限公司 一种闪存测试设备和方法
CN109445974A (zh) * 2018-10-10 2019-03-08 南宁磁动电子科技有限公司 一种希捷硬盘修复方法
US11237202B2 (en) * 2019-03-12 2022-02-01 Advantest Corporation Non-standard sector size system support for SSD testing
CN109994147B (zh) * 2019-04-11 2021-02-02 环旭电子股份有限公司 一种固态硬盘的测试装置及方法
CN110427289A (zh) * 2019-07-31 2019-11-08 东莞记忆存储科技有限公司 自动测试ssd掉电对数据一致性影响的方法及装置
CN113496746B (zh) * 2020-04-03 2024-05-14 澜起科技股份有限公司 用于检测存储模块缺陷的装置和方法以及存储器系统
US11669464B1 (en) * 2020-04-24 2023-06-06 Xilinx, Inc. Multi-addressing mode for DMA and non-sequential read and write patterns
CN112000591B (zh) * 2020-08-24 2023-12-05 深圳忆联信息系统有限公司 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010532023A (ja) 2007-06-08 2010-09-30 サンディスク コーポレイション 記憶装置のためのストレージアドレス再マッピングのための方法およびシステム
KR101254646B1 (ko) 2012-08-13 2013-04-15 주식회사 유니테스트 솔리드 스테이트 드라이브 테스터에서 스토리지 인터페이스장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086311A1 (en) * 2007-12-10 2013-04-04 Ming Huang METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS
US8706950B2 (en) * 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US8966155B1 (en) * 2008-04-01 2015-02-24 Daniel P. Mulligan System and method for implementing a high performance data storage system
US8225019B2 (en) * 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
TWI410976B (zh) * 2008-11-18 2013-10-01 Lite On It Corp 固態儲存媒體可靠度的測試方法
KR101087182B1 (ko) 2009-04-16 2011-11-25 (주) 제노맥스 스토리지 테스터 및 ssd 디바이스
WO2010137070A1 (en) * 2009-05-27 2010-12-02 Hitachi, Ltd. Storage system and processing efficiency improving method of storage system
EP2446345A1 (en) * 2009-06-26 2012-05-02 Hitachi, Ltd. Storage system and controlling methods for the same
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US9606863B2 (en) * 2010-10-25 2017-03-28 SMART High Reliability Solutions, LLC Fabric-based solid state drive architecture
US20120110259A1 (en) * 2010-10-27 2012-05-03 Enmotus Inc. Tiered data storage system with data management and method of operation thereof
EP2742429A4 (en) * 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US10803970B2 (en) * 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
US20140059278A1 (en) * 2011-11-14 2014-02-27 Lsi Corporation Storage device firmware and manufacturing software
US8645594B2 (en) * 2012-06-29 2014-02-04 Intel Corporation Driver-assisted base address register mapping
US9983992B2 (en) * 2013-04-30 2018-05-29 WMware Inc. Trim support for a solid-state drive in a virtualized environment
US9111598B2 (en) * 2013-09-16 2015-08-18 Netapp, Inc. Increased I/O rate for solid state storage
KR101537759B1 (ko) * 2013-09-30 2015-07-22 국방과학연구소 지상무인체계 시뮬레이터 및 그 운용방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010532023A (ja) 2007-06-08 2010-09-30 サンディスク コーポレイション 記憶装置のためのストレージアドレス再マッピングのための方法およびシステム
KR101254646B1 (ko) 2012-08-13 2013-04-15 주식회사 유니테스트 솔리드 스테이트 드라이브 테스터에서 스토리지 인터페이스장치

Also Published As

Publication number Publication date
US9613718B2 (en) 2017-04-04
US20150095723A1 (en) 2015-04-02
KR20150037001A (ko) 2015-04-08

Similar Documents

Publication Publication Date Title
KR101547317B1 (ko) 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
KR101561854B1 (ko) Fpga 기반의 비실장형 스토리지 테스트 장치
US9378846B2 (en) Non-mounted storage test device based on FPGA
CN107111535B (zh) 存储系统中的加速数据恢复
US7873885B1 (en) SSD test systems and methods
CN107168886B (zh) 数据存储装置及其操作方法
KR102589402B1 (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR101522293B1 (ko) 복수개의 스토리지를 개별 제어 가능한 테스트 장치
US20140149607A1 (en) Storage device, computing system including the same and data transferring method thereof
US9824777B2 (en) Storage system managing run-time bad cells
US9442834B2 (en) Data management method, memory controller and memory storage device
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11036493B2 (en) Memory system and operating method thereof
US7921265B2 (en) Data access method, channel adapter, and data access control device
US10949096B2 (en) Method using logical based addressing for latency reduction
KR102474937B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102634776B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
KR102469098B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치
US11593242B2 (en) Method of operating storage device for improving reliability, storage device performing the same and method of operating storage using the same
KR20210034456A (ko) 메모리 컨트롤러, 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20210079894A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9639417B2 (en) Storage control apparatus and control method

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: 20180523

Year of fee payment: 4