KR102468381B1 - Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same - Google Patents

Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same Download PDF

Info

Publication number
KR102468381B1
KR102468381B1 KR1020210004056A KR20210004056A KR102468381B1 KR 102468381 B1 KR102468381 B1 KR 102468381B1 KR 1020210004056 A KR1020210004056 A KR 1020210004056A KR 20210004056 A KR20210004056 A KR 20210004056A KR 102468381 B1 KR102468381 B1 KR 102468381B1
Authority
KR
South Korea
Prior art keywords
storage medium
block
work units
inspection
target
Prior art date
Application number
KR1020210004056A
Other languages
Korean (ko)
Other versions
KR20220101946A (en
Inventor
손용석
Original Assignee
중앙대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 중앙대학교 산학협력단 filed Critical 중앙대학교 산학협력단
Priority to KR1020210004056A priority Critical patent/KR102468381B1/en
Publication of KR20220101946A publication Critical patent/KR20220101946A/en
Application granted granted Critical
Publication of KR102468381B1 publication Critical patent/KR102468381B1/en

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

병렬 스토리지(storage) 장치를 위한 저장매체 검사 장치는, 프로세서; 상기 프로세서에 의하여 실행되며, 검사 대상 저장매체의 블록 정보를 획득하도록 구성된 입력부; 및 상기 프로세서에 의하여 실행되며, 상기 블록 정보에 기초하여 상기 검사 대상 저장매체에서 서로 상이한 주소를 갖는 대상 블록들에 대한 검사를 병렬적으로 수행하도록 구성된 복수 개의 작업부로 이루어지는 스레드 풀(thread pool)을 포함할 수 있다. 상기 저장매체 검사 장치를 이용하면, 배드 블록(bad block)의 유무 검사와 같은 스토리지 검사를 수행함에 있어서 입출력(I/O), 작업 할당 및 검사 연산 등 일련의 작업을 병렬로 처리함으로써 처리 시간을 줄일 수 있다. A storage medium inspection device for a parallel storage device includes a processor; an input unit executed by the processor and configured to obtain block information of a storage medium to be tested; and a thread pool composed of a plurality of work units executed by the processor and configured to parallelly perform tests on target blocks having different addresses in the test target storage medium based on the block information. can include When the storage medium inspection device is used, processing time is reduced by parallelly processing a series of tasks such as input/output (I/O), task allocation, and inspection operation in performing storage inspection, such as checking for presence or absence of a bad block. can be reduced

Description

병렬 스토리지 장치를 위한 저장매체 검사 장치 및 방법과 이를 위한 컴퓨터 프로그램{APPARATUS AND METHOD FOR CHECKING STORAGE MEDIUM FOR PARALLELISM OF STORAGE DEVICES AND COMPUTER PROGRAM FOR THE SAME}Storage medium inspection device and method for parallel storage device and computer program therefor

실시예들은 병렬 스토리지(storage) 장치를 위한 저장매체 검사 장치와 방법 및 이를 위한 컴퓨터 프로그램에 관한 것이다. 보다 상세하게는, 실시예들은 배드 블록(bad block)의 유무 확인과 같은 저장매체의 검사에 있어서 스토리지 입출력 및 검사 등 작업을 병렬화함으로써 검사 시간을 단축시키는 기술에 대한 것이다. Embodiments relate to a storage medium inspection apparatus and method for a parallel storage device and a computer program therefor. More specifically, the embodiments relate to a technique of reducing inspection time by parallelizing operations such as storage input/output and inspection in a storage medium inspection, such as checking the presence or absence of a bad block.

클라우드(cloud) 컴퓨팅은 사용자에게 유연성을 제공하고 시스템 활용도를 높일 수 있는 장점이 있어 널리 사용되고 있다. 단일 머신 시스템과 비교했을 때, 클라우드 컴퓨팅 시스템은 대량의 데이터를 생성하는 다양한 애플리케이션 특성을 가진 많은 수의 사용자에게 서비스를 제공할 수 있는 특징을 갖는다. 또한 클라우드 컴퓨팅 시스템은 대량의 데이터를 처리하기 위해 다양한 고성능 대규모 클러스터(cluster) 스토리지(storage) 장치를 이용한다. Cloud computing is widely used because of its advantages of providing flexibility to users and increasing system utilization. Compared with a single machine system, a cloud computing system has a feature that can provide services to a large number of users with various application characteristics that generate a large amount of data. Cloud computing systems also use various high-performance large-scale cluster storage devices to process large amounts of data.

클라우드 환경에서 사용자에게 안정적이고 원활한 서비스를 제공하기 위해서는 스토리지의 유지보수가 매우 중요하다. 또한, 대용량으로 인하여 유지보수 도중의 서비스 중단 시간이 길어지게 되므로, 스토리지 유지보수 성능을 향상시키는 것이 매우 중요한 과제가 된다. 스토리지 유지보수의 일 예로, 배드 블록(bad block)을 확인함으로써 애플리케이션의 입출력(I/O) 장애를 방지할 수 있다. 배드 블록은 하드웨어 고장으로 인해 더 이상 액세스할 수 없는 스토리지 내부 블록으로서, 배드 블록이 계속 쌓이면 스토리지 용량에 영향을 주거나 시스템 또는 애플리케이션 장애로 이어질 수 있다. Storage maintenance is very important to provide stable and smooth services to users in a cloud environment. In addition, since the service interruption time during maintenance becomes long due to the large capacity, improving storage maintenance performance becomes a very important task. As an example of storage maintenance, an input/output (I/O) failure of an application can be prevented by checking a bad block. Bad blocks are blocks inside storage that are no longer accessible due to a hardware failure. Continued accumulation of bad blocks can affect storage capacity or lead to system or application failures.

예를 들어, 하드 디스크 드라이브(Hard Disk Drive; HDD)의 경우 배드 블록에 액세스할 때 오류로 인해 심각한 서비스 중단이 발생할 수 있어, 배드 블록의 점검은 시스템 및 서비스의 신뢰성과 유지보수에 있어 매우 중요하다. 또한, 고체상태 드라이브(Solid State Drive; SSD)의 경우 내부적으로 배드 블록을 관리하기는 하지만 그럼에도 주기적으로 배드 블록을 점검하는 것이 중요하다. 관리자가 배드 블록 수를 확인하여 교체 시간을 알아야 스토리지 장애를 사전에 예방할 수 있기 때문이다. For example, in the case of a Hard Disk Drive (HDD), serious service interruption can occur due to errors when accessing bad blocks, so checking bad blocks is very important for reliability and maintenance of systems and services. do. In addition, in the case of a solid state drive (SSD), bad blocks are internally managed, but it is still important to periodically check bad blocks. This is because administrators can prevent storage failures in advance by checking the number of bad blocks and knowing the replacement time.

배드 블록을 관리하기 위한 종래의 검사기로는, 리눅스(Linux) 운영체제의 배드락스(badlocks)와 같은 도구가 있다. 또한, 공개특허공보 특2001-0100939호는 메모리 셀의 배드 블록을 판정하는 메모리 시험장치를 개시한다. As a conventional checker for managing bad blocks, there is a tool such as badlocks of a Linux operating system. In addition, Patent Publication No. 2001-0100939 discloses a memory test apparatus for determining a bad block of a memory cell.

이러한 종래의 배드 블록 검사기는, 저장소의 첫 번째 블록부터 마지막 블록에 이르기까지 모든 블록을 순차적으로 검사하도록 구성된다. 즉, 종래의 검사기는 첫 번째 블록을 읽고 입출력 작업을 완료한 후 해당 블록이 배드 블록인지 여부를 검사하며, 배드 블록을 감지하면 해당 블록의 번호를 배드 블록 목록에 추가한다. 이와 같은 직렬화된 방식은 단일 HDD를 사용할 때에는 문제가 되지 않았으나, 스토리지가 디스크 어레이(disk array)나 멀티 채널(multi channel) SSD 등으로 병렬화된 환경에서는 대역폭 활용도가 불충분하여 스토리지 유휴 시간이 많이 소요된다. 이에 따라, 종래의 배드 블록 검사기는 스토리지 용량이 증가함에 따라 확인 시간이 크게 증가하여 성능이 제한되는 한계를 갖는다. Such a conventional bad block checker is configured to sequentially check all blocks from the first block to the last block of storage. That is, the conventional checker reads the first block, completes the input/output operation, and then checks whether the corresponding block is a bad block. This serialized method was not a problem when using a single HDD, but in a parallelized environment such as a disk array or multi-channel SSD, bandwidth utilization was insufficient and storage idle time was consumed. . Accordingly, the conventional bad block checker has a limitation in that the performance of the conventional bad block checker is limited because the confirmation time greatly increases as the storage capacity increases.

공개특허공보 특2001-0100939호Patent Publication No. 2001-0100939

본 발명의 일 측면에 따르면, 스토리지(storage) 장치의 병렬화를 이용하여 배드 블록(bad block)의 검사 시간을 단축하기 위하여, 작업의 병렬화를 통하여 입출력(I/O), 작업 할당 및 검사 연산 등 일련의 작업을 병렬로 처리하도록 구성된 저장매체 검사 장치와, 저장매체 검사 방법 및 이를 위한 컴퓨터 프로그램을 제공할 수 있다. According to one aspect of the present invention, in order to reduce the inspection time of a bad block by using parallelization of a storage device, input/output (I/O), task allocation and inspection operation, etc. A storage medium inspection device configured to process a series of tasks in parallel, a storage medium inspection method, and a computer program therefor may be provided.

본 발명의 일 측면에 따른 저장매체 검사 장치는, 프로세서(processor); 상기 프로세서에 의하여 실행되며, 검사 대상 저장매체의 블록 정보를 획득하도록 구성된 입력부; 및 상기 프로세서에 의하여 실행되며, 상기 블록 정보에 기초하여 상기 검사 대상 저장매체에서 서로 상이한 주소를 갖는 대상 블록들에 대한 검사를 병렬적으로 수행하도록 구성된 복수 개의 작업부로 이루어지는 스레드 풀(thread pool)을 포함한다. A storage medium inspection apparatus according to an aspect of the present invention includes a processor; an input unit executed by the processor and configured to obtain block information of a storage medium to be tested; and a thread pool composed of a plurality of work units executed by the processor and configured to parallelly perform tests on target blocks having different addresses in the test target storage medium based on the block information. include

일 실시예에서 상기 프로세서는 복수 개의 코어(core)를 포함한다. 이때 저장매체 검사 장치는, 상기 코어의 수에 기초하여 결정되는 수로 상기 복수 개의 작업부를 생성하도록 구성된 작업 생성부를 더 포함한다.In one embodiment, the processor includes a plurality of cores. At this time, the storage medium inspection apparatus further includes a job generator configured to generate the plurality of work units with a number determined based on the number of cores.

일 실시예에서, 상기 복수 개의 작업부 각각은 대상 블록의 데이터를 읽어들여 저장하기 위한 하나 이상의 버퍼(buffer)를 포함한다. In one embodiment, each of the plurality of work units includes one or more buffers for reading and storing data of a target block.

일 실시예에서, 상기 복수 개의 작업부는 상기 검사 대상 저장매체로부터 동시에 상기 대상 블록들을 읽어들이도록 더 구성된다.In one embodiment, the plurality of work units are further configured to simultaneously read the target blocks from the test target storage medium.

일 실시예에서, 상기 복수 개의 작업부 각각은, 동일한 주소를 가진 대상 블록의 데이터를 읽어들여 저장하기 위한 2개의 버퍼를 포함하며, 상기 2개의 버퍼에 저장된 데이터가 동일한지 여부를 검사하여 상기 2개의 버퍼에 저장된 데이터가 동일하지 않을 경우 상기 대상 블록을 배드 블록으로 결정하도록 더 구성된다. In one embodiment, each of the plurality of work units includes two buffers for reading and storing data of a target block having the same address, and checking whether the data stored in the two buffers is the same, and determining the target block as a bad block when the data stored in the buffers are not identical.

일 실시예에 따른 저장매체 검사 장치는, 상기 복수 개의 작업부에 의해 탐지된 배드 블록(bad block) 목록을 포함하는 검사 결과를 저장하도록 구성된 저장부를 더 포함한다. The storage medium inspection apparatus according to an embodiment further includes a storage unit configured to store inspection results including a list of bad blocks detected by the plurality of work units.

본 발명의 일 측면에 따른 저장매체 검사 방법은, 프로세서를 이용하여 동작하는 저장매체 검사 장치가, 검사 대상 저장매체의 블록 정보를 획득하는 단계; 상기 프로세서에 의하여 실행되며 스레드 풀을 구성하는 상기 저장매체 검사 장치의 복수 개의 작업부가, 상기 블록 정보를 이용하여, 상기 검사 대상 저장매체로부터 대상 블록들을 읽어들이는 단계; 및 상기 복수 개의 작업부가, 상기 검사 대상 저장매체에서 서로 상이한 주소를 갖는 상기 대상 블록들에 대한 검사를 병렬적으로 수행하는 단계를 포함한다. A storage medium inspection method according to an aspect of the present invention includes the steps of obtaining block information of a storage medium to be inspected by an apparatus for inspecting a storage medium that operates using a processor; reading target blocks from the storage medium to be tested, by using the block information, by a plurality of work units of the storage medium inspection apparatus that are executed by the processor and constituting a thread pool; and performing, by the plurality of work units, parallel examination of the target blocks having different addresses in the test target storage medium.

일 실시예에서, 상기 프로세서는 복수 개의 코어를 포함한다. 이때 저장매체 검사 방법은, 상기 대상 블록들을 읽어들이는 단계 전에, 상기 저장매체 검사 장치가, 상기 코어의 수에 기초하여 결정되는 수로 상기 복수 개의 작업부를 생성하는 단계를 더 포함한다. In one embodiment, the processor includes a plurality of cores. In this case, the storage medium inspection method further includes generating, by the storage medium inspection apparatus, the plurality of work units with a number determined based on the number of cores, before the step of reading the target blocks.

일 실시예에서, 상기 검사 대상 저장매체로부터 대상 블록들을 읽어들이는 단계는, 상기 복수 개의 작업부가 상기 검사 대상 저장매체로부터 동시에 상기 대상 블록들을 읽어들이는 단계를 포함한다.In one embodiment, the step of reading the target blocks from the storage medium to be tested includes reading the target blocks from the storage medium to be tested simultaneously by the plurality of work units.

일 실시예에서, 상기 복수 개의 작업부 각각은, 동일한 주소를 가진 대상 블록의 데이터를 읽어들여 저장하기 위한 2개의 버퍼를 포함한다. 이때 상기 대상 블록들에 대한 검사를 병렬적으로 수행하는 단계는, 상기 복수 개의 작업부 각각이 상기 2개의 버퍼에 저장된 데이터가 동일한지 여부를 검사하여 상기 2개의 버퍼에 저장된 데이터가 동일하지 않을 경우 상기 대상 블록을 배드 블록으로 결정하는 단계를 포함한다.In one embodiment, each of the plurality of work units includes two buffers for reading and storing data of a target block having the same address. At this time, in the step of performing the check on the target blocks in parallel, each of the plurality of work units checks whether the data stored in the two buffers is the same, and if the data stored in the two buffers is not the same, and determining the target block as a bad block.

일 실시예에 따른 저장매체 검사 방법은, 상기 저장매체 검사 장치가, 상기 복수 개의 작업부에 의해 검출된 배드 블록 목록을 포함하는 검사 결과를 상기 저장매체 검사 장치에 저장하는 단계를 더 포함한다. The storage medium inspection method according to an embodiment may further include storing, by the storage medium inspection device, an examination result including a list of bad blocks detected by the plurality of work units in the storage medium inspection device.

본 발명의 일 측면에 따른 컴퓨터 프로그램은 하드웨어와 결합되어 전술한 실시예들에 따른 저장매체 검사 방법을 실행하기 위한 것으로서 컴퓨터로 판독 가능한 기록매체에 저장된 것일 수 있다. A computer program according to an aspect of the present invention is combined with hardware to execute the storage medium inspection method according to the above-described embodiments, and may be stored in a computer-readable recording medium.

저장매체에 발생하는 배드 블록(bad block)은 스토리지(storage) 용량에 영향을 미치고 시스템 및 애플리케이션 장애로 이어질 수 있으므로, 시스템의 신뢰성을 향상시키기 위해서는 배드 블록을 감지하는 것이 중요한 작업이다. 그러나 종래의 배드 블록 검사기는 직렬화된 입출력(I/O) 작업으로 인해 실행 시간이 긴 한계를 가져 왔다. Since bad blocks generated in a storage medium affect storage capacity and may lead to system and application failures, it is important to detect bad blocks in order to improve system reliability. However, the conventional bad block checker has a long execution time limitation due to serialized input/output (I/O) operations.

반면, 본 발명의 일 측면에 따른 저장매체 검사 장치 및 방법에서는 검사 연산을 여러 개의 작업으로 나누어 병렬로 실행함으로써, 배드 블록 검사와 같은 검사 성능을 향상시키고, 디스크 어레이(array) 및 비휘발성 메모리 익스프레스(Non-Volatile Memory Express; NVMe) 고체상태 드라이브(Solid State Drive; SSD)와 같은 병렬 스토리지 장치를 위한 효율적이고 병렬적인 검사 기술을 제공한다. 본 발명의 일 측면에 따른 저장매체 검사 장치 및 방법을 이용하면 디스크 어레이 및 NVMe SSD의 배드 블록 검사 시 종래의 검사기에 비해 각각 최대 99% 및 98%의 성능을 개선할 수 있어 작업 시간을 현저하게 단축시킬 수 있다. On the other hand, in the storage medium inspection apparatus and method according to one aspect of the present invention, the inspection operation is divided into several tasks and executed in parallel, thereby improving inspection performance such as bad block inspection, disk array and non-volatile memory express. (Non-Volatile Memory Express; NVMe) It provides an efficient and parallel inspection technology for parallel storage devices such as Solid State Drives (SSD). Using the storage medium inspection apparatus and method according to one aspect of the present invention, it is possible to improve performance by up to 99% and 98%, respectively, compared to conventional inspection machines when inspecting bad blocks of disk arrays and NVMe SSDs, thereby significantly reducing work time. can be shortened

도 1은 일 실시예에 따른 저장매체 검사 장치의 개략적인 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 저장매체 검사 방법의 각 단계를 나타내는 순서도이다.
도 3은 일 실시예에 따른 저장매체 검사 방법에서 작업부에 의한 검사 과정의 각 단계를 나타내는 순서도이다.
도 4는 일 실시예에 따른 저장매체 검사 방법에 의한 검사 과정을 설명하기 위한 개념도이다.
도 5a 내지 5c는 실시예들에 따른 저장매체 검사 장치의 성능을 종래 기술과 비교하여 나타낸 그래프이다.
1 is a block diagram showing a schematic configuration of an apparatus for inspecting a storage medium according to an exemplary embodiment.
2 is a flowchart illustrating each step of a storage medium inspection method according to an embodiment.
3 is a flowchart illustrating each step of an inspection process by a work unit in a storage medium inspection method according to an embodiment.
4 is a conceptual diagram for explaining an inspection process by a storage medium inspection method according to an embodiment.
5A to 5C are graphs showing performance of storage medium inspection apparatuses according to embodiments in comparison with those of the prior art.

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, with reference to the drawings, look at the embodiments of the present invention in detail.

도 1은 일 실시예에 따른 저장매체 검사 장치의 개략적인 구성을 나타내는 블록도이다. 1 is a block diagram showing a schematic configuration of an apparatus for inspecting a storage medium according to an exemplary embodiment.

도 1을 참조하면, 본 실시예에 따른 저장매체 검사 장치(1)는 저장매체(2)를 대상으로 배드 블록(bad block)의 유무 검사와 같은 저장매체(2)의 무결성 또는 오류 발생 여부 등에 대한 검사를 수행하기 위한 것이다. 예를 들어, 저장매체(2)는 하드 디스크 드라이브(Hard Disk Drive; HDD) 또는 비휘발성 메모리 익스프레스(Non-Volatile Memory Express; NVMe) 고체상태 드라이브(Solid State Drive; SSD) 등과 같은 스토리지(storage)일 수 있으나 이에 한정되는 것은 아니다. 또한, 저장매체(2)는 전술한 스토리지가 어레이(disk array)나 멀티 채널(multi channel)로 병렬화된 장치일 수도 있다. 예컨대, 저장매체(2)는 HDD 어레이 또는 멀티 채널 SSD일 수 있다. Referring to FIG. 1 , the storage medium inspection apparatus 1 according to the present embodiment is used to inspect the storage medium 2 for the presence or absence of bad blocks, the integrity of the storage medium 2 or whether an error has occurred, etc. for performing an inspection. For example, the storage medium 2 is storage such as a hard disk drive (HDD) or a non-volatile memory express (NVMe) solid state drive (SSD). It may be, but is not limited thereto. In addition, the storage medium 2 may be a device in which the above-described storage is parallelized in a disk array or multi-channel. For example, the storage medium 2 may be an HDD array or a multi-channel SSD.

일 실시예에서, 저장매체 검사 장치(1)는 프로세서(processor)(11), 메모리(12) 등을 포함하는 하드웨어에 의하여 구동되는 컴퓨팅 장치이며, 상기 하드웨어를 통하여 실행되는 하드웨어 및/또는 소프트웨어 수단으로서 입력부(13), 저장부(14), 작업 생성부(15) 및/또는 스레드 풀(thread pool)(16) 등을 포함할 수 있다. 또한, 스레드 풀(16)은 복수 개의 작업부(161-16N)로 이루어질 수 있다. In one embodiment, the storage medium inspection device 1 is a computing device driven by hardware including a processor 11 and memory 12, and hardware and/or software means executed through the hardware. As such, it may include an input unit 13, a storage unit 14, a task generator 15, and/or a thread pool 16. Also, the thread pool 16 may include a plurality of work units 161-16N.

즉, 실시예들에 따른 저장매체 검사 장치(1)의 각 구성요소는 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 저장매체 검사 장치(1)와 이에 포함된 각 부(unit)는 특정 형식 및 내용의 데이터를 처리하거나 또는/또한 전자통신 방식으로 주고받기 위한 하드웨어 및 이에 관련된 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부", "모듈", "장치", "단말기", "서버" 또는 "시스템" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU 또는 다른 프로세서를 포함하는 데이터 처리 기기일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.That is, each component of the storage medium inspection device 1 according to the embodiments may be entirely hardware, or may have an aspect of being partially hardware and partially software. The storage medium inspection device 1 and each unit included therein may collectively refer to hardware and related software for processing data of a specific format and content or/or exchanging data in an electronic communication method. In this specification, terms such as "unit", "module", "device", "terminal", "server" or "system" are intended to refer to a combination of hardware and software driven by the hardware. For example, the hardware may be a data processing device including a CPU or other processor. Also, software driven by hardware may refer to a running process, an object, an executable file, a thread of execution, a program, and the like.

또한, 저장매체 검사 장치(1)에 포함된 각각의 부(13-15, 161-16N)는 반드시 서로 물리적으로 구분되는 별개의 장치를 지칭하는 것으로 의도되지 않는다. 즉, 도 1의 각 부(13-15, 161-16N)는 저장매체 검사 장치(1)를 구성하는 하드웨어를 해당 하드웨어에 의해 수행되는 동작에 따라 기능적으로 구분한 것일 뿐, 각각의 부가 서로 독립적인 별개의 장치로 구비되어야 하는 것이 아니다. 물론, 실시예에 따라서는 각 부(13-15, 161-16N) 중 하나 이상이 서로 물리적으로 구분되는 별개의 장치로 구현되는 것도 가능하다.Also, each of the units 13 - 15 and 161 - 16N included in the storage medium inspection device 1 is not necessarily intended to refer to a separate device that is physically separated from each other. That is, each part 13-15, 161-16N in FIG. 1 functionally divides the hardware constituting the storage medium inspection apparatus 1 according to the operation performed by the corresponding hardware, and each part is independent of each other. It does not have to be provided as a separate device. Of course, depending on embodiments, one or more of the units 13-15 and 161-16N may be implemented as separate devices that are physically separated from each other.

입력부(13)는 검사 대상 저장매체(2)의 블록 정보를 획득하도록 구성된다. 이때 블록 정보란, 저장매체(2)에서 검사 대상이 되는 영역을 특정하는 정보를 지칭하며, 블록 정보가 지칭하는 영역은 저장매체(2)의 일부 또는 전부일 수 있다. 또한, 블록 정보에는 기존에 알려진 배드 블록에 대한 정보가 포함될 수 있다. The input unit 13 is configured to obtain block information of the storage medium 2 to be tested. At this time, the block information refers to information specifying an area to be inspected in the storage medium 2 , and the area indicated by the block information may be part or all of the storage medium 2 . Also, the block information may include information about a previously known bad block.

다음으로, 작업 생성부(15)는 블록 정보를 기초로 하여 저장매체(2)의 검사를 병렬적, 독립적으로 실행하기 위하여 복수 개의 작업부(161-16N)를 갖는 스레드 풀(16)을 생성하여 블록 정보를 스레드 풀(16)에 할당할 수 있다. 스레드 풀(16)을 이용함으로써, 복수의 작업부(161-16N)가 동시에 작업을 가져오면서도 서로 다른 작업부(161-16N)가 동일한 작업을 중복으로 수행하는 것을 방지할 수 있다. Next, the task generating unit 15 creates a thread pool 16 having a plurality of task units 161-16N to execute the inspection of the storage medium 2 in parallel and independently based on the block information. Thus, block information can be allocated to the thread pool 16. By using the thread pool 16, it is possible to prevent different task units 161 to 16N from performing the same task redundantly while the plurality of task units 161 to 16N simultaneously obtain tasks.

일 실시예에서, 스레드 풀(16)을 구성하는 작업부(161-161N)의 수는 저장매체 검사 장치(1)의 프로세서(11)의 코어(core) 수에 기초하여 결정될 수 있다. 예를 들어, 코어의 수와 동일한 개수로 작업부(161-161N)를 생성할 수 있으나, 이에 한정되는 것은 아니다. In one embodiment, the number of work units 161 to 161N constituting the thread pool 16 may be determined based on the number of cores of the processor 11 of the storage medium inspection apparatus 1 . For example, the same number of work units 161 to 161N as the number of cores may be generated, but is not limited thereto.

이와 같이 생성된 작업부(161-161N)는 검사 대상 저장매체(2)로부터 동시에 대상 블록들을 읽어들이고 검사 연산을 수행한다. 즉, 복수의 작업부(161-16N) 각각은 자체 입출력 기능을 통하여 저장매체(2)로부터 대상 블록의 데이터를 읽어들이고, 대상 블록이 배드 블록인지 여부 등을 검사할 수 있다. 복수의 작업부(161-16N) 각각은 버퍼(buffer)를 이용하여 검사 대상 블록의 데이터를 읽어들일 수도 있다. 이상의 입출력 및 검사 연산은 복수의 작업부(161-16N)에 의하여 병렬적으로 수행되므로, 정확성에 영향을 주지 않고 작업의 병렬 수행을 통하여 검사 시간을 단축시킬 수 있다. The work units 161 to 161N created in this way simultaneously read target blocks from the test target storage medium 2 and perform test operations. That is, each of the plurality of work units 161 to 16N may read data of a target block from the storage medium 2 through its own input/output function and check whether the target block is a bad block or not. Each of the plurality of work units 161 to 16N may read data of a block to be examined using a buffer. Since the above input/output and inspection operations are performed in parallel by the plurality of work units 161-16N, the inspection time can be shortened through the parallel execution of the work without affecting the accuracy.

저장부(14)는 각 작업부(161-16N)에 의하여 얻어진 검사 결과, 예컨대, 대상 블록이 배드 블록인지 여부에 대한 정보를 저장하는 역할을 한다. 예컨대, 배드 블록으로 결정된 블록의 헤드(head) 정보 및 주소 정보 등이 저장부(14)에 저장될 수 있다. 이상의 동작을 위하여, 저장부(14)는 일시적 또는 영구적인 스토리지를 포함할 수 있다. 또는, 저장부(14)는 유선 및/또는 무선 네트워크를 통한 통신 방식으로 외부 장치에 검사 결과를 저장하도록 구성될 수도 있다.The storage unit 14 serves to store inspection results obtained by each of the work units 161 to 16N, for example, information on whether a target block is a bad block. For example, head information and address information of blocks determined to be bad blocks may be stored in the storage unit 14 . For the above operation, the storage unit 14 may include temporary or permanent storage. Alternatively, the storage unit 14 may be configured to store test results in an external device in a communication method through a wired and/or wireless network.

한편, 일 실시예에 따라 비교 검사를 수행하는 경우, 각 작업부(161-16N)는 동일한 블록의 데이터를 2개의 버퍼에 읽어들여 읽어들인 데이터에 대한 상호 비교를 수행할 수 있으며, 2개의 버퍼에 읽어들인 데이터가 서로 상이할 경우 해당 블록을 배드 블록으로 결정하여 그 결과를 저장부(14)에 저장할 수도 있다. 이는 도 3 및 4를 참조하여 상세히 후술한다. On the other hand, in the case of performing a comparison test according to an embodiment, each of the work units 161 to 16N may read data of the same block into two buffers and perform mutual comparison on the read data, and the two buffers If the data read in is different from each other, the corresponding block may be determined as a bad block and the result may be stored in the storage unit 14 . This will be described later in detail with reference to FIGS. 3 and 4 .

도 2는 일 실시예에 따른 저장매체 검사 방법의 각 단계를 나타내는 순서도이다. 실시예들에 따른 저장매체 검사 방법은, 도 1을 참조하여 전술한 실시예들에 따른 저장매체 검사 장치(1)를 이용하여 수행될 수 있다. 이하에서는, 설명의 편의를 위하여 도 1 및 도 2를 함께 참조하여 실시예들에 따른 저장매체 검사 방법에 대하여 설명한다. 2 is a flowchart illustrating each step of a storage medium inspection method according to an embodiment. A storage medium inspection method according to embodiments may be performed using the storage medium inspection apparatus 1 according to the above-described embodiments with reference to FIG. 1 . Hereinafter, for convenience of description, a storage medium inspection method according to embodiments will be described with reference to FIGS. 1 and 2 together.

일 실시예에서 저장매체 검사 장치(1)는 저장부(14)에 배드 블록 목록을 생성하고, 기존에 알려져 있는 배드 블록의 정보를 목록에 저장할 수 있다(S11). 또한, 새로 검사해야 할 저장매체(2)에 대한 블록 정보가 입력부(13)에 입력되면(S12), 작업 생성부(15)에서는 메모리(12)를 기반으로 위한 버퍼를 할당하고(S14, S15) 스레드 풀(16)의 작업부(161-16N)를 생성할 수 있다(S16). 예를 들어, 블록 정보는 저장매체(2)의 처음 및 마지막 불록 주소에 대한 정보, 리드(read)할 버퍼 주소, 한 번에 처리될 블록의 수 등을 포함할 수도 있다. In an embodiment, the storage medium inspection device 1 may generate a bad block list in the storage unit 14 and store information on previously known bad blocks in the list (S11). In addition, when block information on the storage medium 2 to be newly inspected is input to the input unit 13 (S12), the job generator 15 allocates a buffer based on the memory 12 (S14, S15 ) The work units 161-16N of the thread pool 16 may be created (S16). For example, the block information may include information on the first and last block addresses of the storage medium 2, a buffer address to be read, the number of blocks to be processed at one time, and the like.

실시예들에서 각각의 작업부(161-16N)에 의한 처리가 병렬적으로 수행될 수 있도록 하기 위하여, 블록 정보는 복수 개의 작업부(161-16N) 각각을 위한 블록 정보로 분할되어 각 작업부(161-16N)에 할당된다. 각각의 작업부(161-16N)는 자신에게 할당된 블록 정보를 이용하여 저장매체(2)의 블록들에 대한 입출력 및 검사와 같은 작업을 병렬적으로 그리고 상호 간에 독립적으로 수행한다. In the embodiments, in order to allow processing by each of the work units 161-16N to be performed in parallel, block information is divided into block information for each of the plurality of work units 161-16N, and each work unit assigned to (161-16N). Each of the work units 161 to 16N performs tasks such as input/output and inspection of the blocks of the storage medium 2 in parallel and independently of each other using the block information assigned to them.

이러한 블록 정보의 분할은 작업부(161-16N)의 수 및 작업 효율을 고려하여 결정된다. 예를 들어, 작업이 너무 작은 단위로 분할되면, 작업부(161-16N) 간의 컨텍스트 스위칭(context switching)이 너무 빈번하게 일어날 수 있고, 작업이 너무 큰 단위로 분할되면 스레드 수준에서의 병렬 처리가 충분히 활용될 수 없다. 따라서, 실시예들에서는 컨텍스트 스위칭을 줄이고 블록이 하나의 작업부로부터 다른 작업부로 전달될 필요가 없도록 하나의 블록 단위로 해당 블록에 대한 읽기, 입출력 완료 및 배드 블록 검사를 포함하는 작업이 정의되고, 각각의 작업부(161-16N)는 자신에게 할당된 블록들에 대한 작업을 병렬적으로 수행한다. 또한 이때 각 작업부(161-16N)에 대한 작업의 할당은 스레드 풀(16)을 통하여 이루어지므로, 서로 다른 작업부(161-16N)가 하나의 블록을 중복하여 검사하는 것을 방지할 수 있다. The division of this block information is determined in consideration of the number and work efficiency of the work units 161-16N. For example, if a task is divided into too small units, context switching between the work units 161-16N may occur too frequently, and if a task is divided into too large units, parallelism at the thread level may occur. Can't be fully utilized. Therefore, in the embodiments, jobs including reading, input/output completion, and bad block checks for a corresponding block are defined in units of blocks so that context switching is reduced and blocks do not need to be transferred from one work unit to another, Each of the work units 161 to 16N parallelly performs work on blocks assigned to them. In addition, since the assignment of tasks to each of the work units 161 to 16N is performed through the thread pool 16, it is possible to prevent the different work units 161 to 16N from repeatedly inspecting one block.

일 실시예에서, 저장매체 검사 장치(1)에 의한 검사 과정은 저장매체(2)의 동일한 블록의 데이터를 두 번 읽어들여 읽어들인 데이터가 동일한지 여부를 확인하는 과정을 수반할 수 있으며, 본 명세서에서 이는 비교 검사 기능으로 명명된다. 저장매체 검사 장치(1)에 비교 검사 기능이 설정되어 있을 경우(S13), 작업 생성부(15)는 각 작업부(161-16N) 마다 블록의 데이터를 읽어들이기 위한 2개의 버퍼를 할당하여(S14) 스레드 풀을 생성할 수 있다(S16). 또는, 비교 검사 기능이 설정되어 있지 않을 경우에는, 작업 생성부(15)는 각 작업부(161-16N) 마다 하나의 버퍼를 할당하여(S15) 스레드 풀을 생성할 수 있다(S16). In one embodiment, the inspection process by the storage medium inspection device 1 may involve a process of reading data of the same block of the storage medium 2 twice and checking whether the read data is the same. In the specification this is called the compare check function. When the comparison test function is set in the storage medium inspection device 1 (S13), the job generator 15 allocates two buffers for reading block data to each work unit 161-16N ( S14) A thread pool may be created (S16). Alternatively, when the comparison check function is not set, the task creation unit 15 may create a thread pool by allocating one buffer to each task unit 161 to 16N (S15) (S16).

다음으로, 각각의 작업부(161-16N)는 블록 정보를 기반으로 저장매체(2)의 블록들에 대한 검사를 서로 병렬적으로 수행할 수 있다(S17). 구체적으로, 각각의 작업부(161-16N)는 소정의 검사 함수를 호출함으로써 블록 정보를 통해 각 작업부(161-16N)에 할당된 첫 번째 블록으로부터 마지막 블록을 대상으로 배드 블록의 유무 검사와 같은 무결성 또는 오류 발생 여부 검사를 수행할 수 있다. 모든 작업부(161-16N)에 의한 검사가 완료되면, 버퍼 할당이 해제되고 검사 결과가 저장부(14)에 저장될 수 있다(S18). 예를 들어, 검사 결과는 검출된 배드 블록의 수를 포함할 수 있으나, 검사 결과의 형태가 이에 한정되는 것은 아니다. Next, each of the work units 161 to 16N may perform tests on blocks of the storage medium 2 in parallel based on the block information (S17). Specifically, each of the work units 161-16N calls a predetermined inspection function to check whether or not there is a bad block for the first to last blocks assigned to each work unit 161-16N through block information. The same integrity or error checking can be performed. When the inspection by all the work units 161 to 16N is completed, the buffer allocation is released and the inspection result may be stored in the storage unit 14 (S18). For example, the inspection result may include the number of detected bad blocks, but the shape of the inspection result is not limited thereto.

도 3은 일 실시예에 따른 저장매체 검사 방법에서 작업부에 의한 검사 과정의 각 단계를 나타내는 순서도이다. 3 is a flowchart illustrating each step of an inspection process by a work unit in a storage medium inspection method according to an embodiment.

도 1 및 도 3을 참조하면, 스레드 풀(16)의 각 작업부(161-16N)는 검사 대상 저장매체(2)에 대한 블록 정보를 획득할 수 있다(S21). 다음으로, 각각의 작업부(161-16N)는 블록 정보에 기초하여 검사할 대상 블록을 설정할 수 있다(S22). 예를 들어, 작업부(161-16N)는 블록 정보의 첫 번째 블록을 현재 블록 주소로 설정하고, 검사가 끝날 때마다 현재 블록 주소를 미리 설정된 블록 수만큼 증가시키는 방식으로 대상 블록을 변경해나갈 수 있다. 이때 증가시킬 블록의 수는 각 작업부(161-16N)가 한 번에 처리 가능한 블록의 개수로 결정될 수 있다. Referring to FIGS. 1 and 3 , each work unit 161 to 16N of the thread pool 16 may acquire block information about the storage medium 2 to be tested (S21). Next, each of the work units 161 to 16N may set a target block to be examined based on the block information (S22). For example, the task units 161-16N may change the target block by setting the first block of block information as the current block address and increasing the current block address by the preset number of blocks each time inspection is finished. have. At this time, the number of blocks to be increased may be determined by the number of blocks that each work unit 161 to 16N can process at one time.

구체적으로, 각 작업부(161-16N)는 현재 대상 블록의 데이터를 각 작업부(161-16N)에 할당된 버퍼에 읽어들이고(S23), 버퍼에 읽어들인 데이터를 이용하여 대상 블록의 배드 블록 여부 등을 검사할 수 있다(S24). 이때 대상 블록은 하나의 블록일 수도 있고, 각 작업부(161-16N)가 한 번에 처리 가능한 블록의 개수에 의해 결정되는 복수의 블록일 수도 있다. 검사 결과 배드 블록이 탐지될 경우, 각 작업부(161-16N)는 탐지된 배드 블록을 저장부(14)의 배드 블록 목록에 추가할 수 있다(S25). 또는/또한, 각 작업부(161-16N)는 저장부(14)에 기록된 배드 블록의 수를 각 작업부(161-16N)가 탐지한 배드 블록의 수만큼 증가시킬 수 있다. Specifically, each work unit 161-16N reads the data of the current target block into the buffer allocated to each work unit 161-16N (S23), and uses the data read into the buffer to bad block the target block. Whether or not it can be checked (S24). At this time, the target block may be one block or may be a plurality of blocks determined by the number of blocks that each work unit 161 to 16N can process at one time. When a bad block is detected as a result of the inspection, each of the work units 161 to 16N may add the detected bad block to the bad block list of the storage unit 14 (S25). Alternatively, each work unit 161 - 16N may increase the number of bad blocks recorded in the storage unit 14 by the number of bad blocks detected by each work unit 161 - 16N.

일 실시예에서, 저장매체 검사 시스템(1)에 비교 검사 기능이 설정되어 있을 경우(S26), 각 작업부(161-16N)는 버퍼의 데이터를 읽어들이는 단계(S23)에서 현재 블록 주소의 데이터를 2개의 버퍼에 읽어들이고, 양 버퍼의 데이터가 동일한지 여부에 대한 검사를 추가로 진행할 수 있다(S27). 검사 결과 양 버퍼의 데이터가 동일하지 않을 경우, 각 작업부(161-16N)는 해당 블록이 배드 블록인 것으로 결정하고 해당 블록을 배드 블록 목록에 추가하고 또는/또한 배드 블록의 수를 증가시킬 수 있다. In one embodiment, if the comparison test function is set in the storage medium test system 1 (S26), each work unit (161-16N) reads the buffer data (S23) of the current block address. Data is read into the two buffers, and a check whether data in both buffers is the same may be additionally performed (S27). If the data in both buffers is not identical as a result of the check, each task unit 161-16N may determine that the corresponding block is a bad block, add the corresponding block to the bad block list, and/or increase the number of bad blocks. have.

전술한 검사 과정이 끝나면, 각각의 작업부(161-16N)는 현재 블록 주소를 미리 설정된 블록 수만큼 증가시킴으로써 대상 블록의 번호를 갱신하고(S28), 갱신된 대상 블록을 대상으로 다시 전술한 단계 S23 내지 S27에 따른 검사를 수행할 수 있다. 각 작업부(161-16N)에 의한 상기 검사 과정은 블록 정보의 마지막 블록에 이르기까지 반복 수행된다. 즉, 갱신된 대상 블록 주소가 블록 정보의 마지막 블록 주소보다 클 경우(S29) 검사 과정이 완료된다. After the above inspection process is finished, each work unit 161-16N updates the number of the target block by increasing the current block address by a preset block number (S28), and returns to the above-described steps for the updated target block. Inspections according to S23 to S27 may be performed. The inspection process by each work unit 161-16N is repeatedly performed until the last block of block information. That is, when the updated target block address is greater than the last block address of the block information (S29), the inspection process is completed.

도 4는 일 실시예에 따른 저장매체 검사 방법에 의한 검사 과정을 설명하기 위한 개념도이다. 4 is a conceptual diagram for explaining an inspection process by a storage medium inspection method according to an embodiment.

도 4를 참조하면, 본 실시예에 따른 저장매체 검사 방법에서는 검사 작업을 시작할 때 복수의 작업부(161-16N)를 포함하는 스레드 풀(16)을 생성한다. 일 실시예에서, 스레드 풀(16)은 저장매체 검사 장치의 프로세서의 코어 수와 동일한 수의 작업부(161-16N)를 포함할 수 있다. 각각의 작업부(161-16N)는 블록 정보(130)를 기반으로 검사 대상 저장매체(2)에 대한 입출력을 실행하고 배드 블록을 검사하는 자체 작업을 수행한다. Referring to FIG. 4 , in the storage medium inspection method according to the present embodiment, a thread pool 16 including a plurality of work units 161 to 16N is created when a inspection task is started. In one embodiment, the thread pool 16 may include the same number of work units 161-16N as the number of cores of the processor of the storage medium inspection device. Each of the work units 161 to 16N executes input/output for the storage medium 2 to be tested based on the block information 130 and performs its own task of inspecting bad blocks.

구체적으로, 각각의 작업부(161-16N)는 블록 정보(130)에 기초하여 자신에게 할당된 대상 블록 주소(예컨대, 논리블록주소(Logical Block Address; LBA))를 동시에 가져오고, 각 대상 블록(200-202)의 데이터를 버퍼(605, 615)로 리드(read)한 후 입출력 작업을 완료한다. 다음으로, 각각의 작업부(161-16N)는 버퍼(605, 615)에 저장된 데이터가 배드 블록인지 아닌지를 검사한다. 배드 블록이 검출되면 작업부(161-16N)는 해당 정보를 배드 블록 목록(140)에 추가하며, 배드 블록이 검출되지 않는 경우에는 자신에게 할당된 다음 블록에 대한 점검을 수행한다. Specifically, each task unit 161 to 16N simultaneously brings a target block address (eg, a logical block address (LBA)) assigned to it based on the block information 130, and each target block After reading the data of 200-202 into the buffers 605 and 615, the input/output operation is completed. Next, each of the work units 161 to 16N checks whether or not the data stored in the buffers 605 and 615 are bad blocks. If a bad block is detected, the work unit 161 - 16N adds the corresponding information to the bad block list 140, and if the bad block is not detected, it checks the next block assigned to it.

도면에는 설명의 편의를 위하여 몇 개의 대상 블록(200-202) 및 두 개의 작업만이 도시되었으나, 전술한 검사 과정이 복수 개의 작업부(161-16N)에 의하여 병렬적으로 수행되며 그 수는 도면에 도시된 블록이나 작업의 수에 의해 한정되지 않는다는 점이 통상의 기술자에게 용이하게 이해될 것이다. Although only a few target blocks 200-202 and two tasks are shown in the drawing for convenience of description, the above-described inspection process is performed in parallel by a plurality of task units 161-16N, and the number of It will be readily understood by those skilled in the art that it is not limited by the number of blocks or operations shown in .

도 5a 내지 5c는 실시예들에 따른 저장매체 검사 장치의 성능을 종래 기술과 비교하여 나타낸 그래프이다.5A to 5C are graphs showing performance of storage medium inspection apparatuses according to embodiments in comparison with those of the prior art.

도 5a 내지 도 5c에 도시된 시험 결과는 16GiB의 메모리와 32개의 물리적 코어를 가진 CPU로서 Intel(R) Xeon(R) Gold 6242(2.8)가 장착된 서버를 사용하여 얻어졌다. 스토리지 장치로는 RAID-0이 포함된 웨스턴 디지털(Western Digital) 사 하드 디스크 8개 및 NVMe SSD로서 Intel P3700 SSD를 사용하였다. 사용된 하드 디스크의 최대 처리량(스루풋)은 각각 50MB/s 순차 읽기 및 15MB/s 순차 쓰기이며, NVMe SSD의 최대 처리량은 2400MB/s 순차 읽기 및 1800MB/s 순차 쓰기이다. 실시예와의 비교를 위한 종래기술로는 Linux Kernel 4.4.0, Ubuntu 16.04.6 LTS 및 e2fsprogs-1.45.0의 배드블록스(badblocks) 프로그램이 사용되었다. 기본 읽기 전용 모드에서 실시예들과 종래 기술의 검사 성능을 비교하였으며, 모든 시험 결과는 평균 5회 실행의 결과이다.The test results shown in FIGS. 5A to 5C were obtained using a server equipped with an Intel(R) Xeon(R) Gold 6242 (2.8) as a CPU having 16 GiB of memory and 32 physical cores. As storage devices, 8 Western Digital hard disks with RAID-0 and an Intel P3700 SSD were used as NVMe SSDs. The maximum throughput (throughput) of the hard disk used is 50MB/s sequential read and 15MB/s sequential write, respectively, and the maximum throughput of the NVMe SSD is 2400MB/s sequential read and 1800MB/s sequential write. As prior art for comparison with the embodiment, Linux Kernel 4.4.0, Ubuntu 16.04.6 LTS, and badblocks program of e2fsprogs-1.45.0 were used. The testing performance of the examples and prior art was compared in the default read-only mode, and all test results are the results of an average of 5 runs.

도 5a는 하드 디스크 수에 따른 검사 성능을 비교한 것으로서, 그래프(401-404)는 종래 기술에 따른 스루풋(MB/s)을 나타내며, 그래프(411-414)는 본 발명의 일 실시예에 따른 스루풋을 나타낸다. 또한, 도면 상의 점선은 종래 기술에 따른 런타임(분)을 나타내고, 실선은 본 발명의 일 실시예에 따른 런타임을 나타낸다. 5A compares inspection performance according to the number of hard disks, graphs 401 to 404 show throughput (MB/s) according to the prior art, and graphs 411 to 414 show throughput according to an embodiment of the present invention. Indicates throughput. In addition, a dotted line on the drawing represents runtime (minutes) according to the prior art, and a solid line represents runtime according to an embodiment of the present invention.

도 5a에 도시된 바와 같이, 본 발명의 일 실시예에 따른 검사 방법을 사용함으로써 디스크 수가 1개, 2개, 4개 및 8개로 증가함에 따라 종래 기술에 비해 처리량이 각각 0%, 3.5%, 39.3%, 98.9% 향상되고 런타임이 각각 0.01%, 3.6%, 28.7% 및 49.8% 감소되는 이점을 갖는다. 단일 디스크의 경우 디스크 병렬화를 제공하지 않기 때문에 거의 아무런 이점이 없으나, 디스크의 수가 증가할수록 본 발명의 실시예에 따른 검사 방법을 사용함으로써 다중 디스크에서 제공하는 증가된 병렬 처리를 이용할 수 있기 때문에 성능 차이가 커지는 것을 확인할 수 있었다. 반면 종래 기술에서는 검사기가 입출력을 수행하고 연산을 순차적으로 점검하기 때문에 증가된 병렬 처리를 이용할 수 없다.As shown in FIG. 5A, as the number of disks increases to 1, 2, 4, and 8 by using the inspection method according to an embodiment of the present invention, the throughput is 0%, 3.5%, 39.3%, 98.9% improvement and runtime reduction of 0.01%, 3.6%, 28.7% and 49.8%, respectively. In the case of a single disk, there is almost no advantage because it does not provide disk parallelism, but as the number of disks increases, the increased parallelism provided by multiple disks can be used by using the inspection method according to the embodiment of the present invention, so there is a difference in performance could be observed to increase. On the other hand, in the prior art, since the checker performs input/output and checks operations sequentially, increased parallelism cannot be used.

도 5b는 동일한 8개의 하드 디스크로 디스크 어레이를 구성할 때 서로 다른 수의 코어를 이용하는 경우 검사 성능을 비교한 것으로서, 그래프(421-425)는 종래 기술에 따른 스루풋(MB/s)을 나타내며, 그래프(431-435)는 본 발명의 일 실시예에 따른 스루풋을 나타낸다. 또한, 도면 상의 점선은 종래 기술에 따른 런타임(분)을 나타내고, 실선은 본 발명의 일 실시예에 따른 런타임을 나타낸다. 또한, 도 5b의 시험 결과에서 작업부의 수는 코어의 수와 동일하게 하였다. 5B compares test performance when using different numbers of cores when configuring a disk array with the same eight hard disks, and graphs 421-425 show throughput (MB/s) according to the prior art, Graphs 431-435 represent throughput according to one embodiment of the present invention. In addition, a dotted line on the drawing represents runtime (minutes) according to the prior art, and a solid line represents runtime according to an embodiment of the present invention. In addition, in the test results of FIG. 5B, the number of work units was equal to the number of cores.

도 5b에 도시되는 바와 같이, 코어 수가 1개, 4개, 8개, 16개 및 32개로 증가함에 따라 본 발명의 일 실시예에 따른 검사 방법이 종래 기술에 비해 읽기 처리량을 각각 -1.2%, 18.6%, 41.2%, 68.9%, 98.9% 향상시키고, 런타임을 각각 -1.1%, 15.8%, 29.3%, 40.9%, 49.8% 감소시키는 것을 확인할 수 있다. 단일 코어의 경우에는 본 발명의 실시예에서 약간의 오버헤드(overhead)가 유발되었다. 그러나 종래 기술에 따르면 검사기가 직렬화된 방식으로 입출력 및 검사를 수행하기 때문에 코어 수가 증가하더라도 검사기의 성능이 향상되지 않는 반면, 본 발명의 일 실시예에서는 복수의 작업부가 배드 블록을 병렬적으로 검사함으로써 코어 수가 증가함에 따라 검사 성능이 크게 향상되는 것을 확인할 수 있다. As shown in FIG. 5B, as the number of cores increases to 1, 4, 8, 16, and 32, the test method according to an embodiment of the present invention increases the read throughput by -1.2%, respectively, compared to the prior art. It can be seen that it improves by 18.6%, 41.2%, 68.9%, and 98.9%, and reduces runtime by -1.1%, 15.8%, 29.3%, 40.9%, and 49.8%, respectively. In the case of a single core, some overhead is induced in the embodiment of the present invention. However, according to the prior art, since the tester performs input/output and inspection in a serialized manner, the performance of the tester does not improve even if the number of cores increases. However, in one embodiment of the present invention, a plurality of work units inspect bad blocks in parallel to It can be seen that the inspection performance greatly improves as the number of cores increases.

도 5c는 스토리지 장치로 NVMe SSD를 이용하는 경우 검사 성능을 비교한 것으로서, 그래프(441-445)는 종래 기술에 따른 스루풋(MB/s)을 나타내며, 그래프(451-455)는 본 발명의 일 실시예에 따른 스루풋을 나타낸다. 또한, 도면 상의 점선은 종래 기술에 따른 런타임(분)을 나타내고, 실선은 본 발명의 일 실시예에 따른 런타임을 나타낸다. 또한, 도 5c의 시험 결과에서 작업부의 수는 코어의 수와 동일하게 하였다.5C is a comparison of test performance in the case of using an NVMe SSD as a storage device, graphs 441-445 represent throughput (MB/s) according to the prior art, and graphs 451-455 represent one embodiment of the present invention. Shows the throughput according to the example. In addition, a dotted line on the drawing represents runtime (minutes) according to the prior art, and a solid line represents runtime according to an embodiment of the present invention. In addition, in the test results of FIG. 5C, the number of work units was the same as the number of cores.

도 5c에 도시되는 바와 같이, 코어 수가 1개, 4개, 8개, 16개 및 32개로 증가함에 따라 본 발명의 일 실시예에 따른 검사 방법이 종래 기술에 비해 처리량을 각각 5.6%, 43.9%, 75.7%, 92.1%, 97.3% 향상시키고, 런타임을 각각 5.2%, 30.5%, 43.0%, 47.9%, 49.3% 단축시키는 것을 확인할 수 있다. 이러한 결과는 본 발명의 일 실시예에서는 코어 수가 증가함에 따라 검사 성능이 향상된다는 것을 보여주며, 반면 종래 기술에 따르면 디스크 어레이를 사용하는 경우와 마찬가지로 NVMe SSD를 사용하는 경우에도 코어 수가 증가하더라도 검사 성능이 향상되지 않는다. As shown in FIG. 5C, as the number of cores increases to 1, 4, 8, 16, and 32, the inspection method according to an embodiment of the present invention increases throughput by 5.6% and 43.9%, respectively, compared to the prior art. , 75.7%, 92.1%, 97.3% improvement, and 5.2%, 30.5%, 43.0%, 47.9%, 49.3% reduction in runtime, respectively. These results show that the inspection performance improves as the number of cores increases in an embodiment of the present invention, whereas according to the prior art, as in the case of using a disk array, even when using an NVMe SSD, even when the number of cores increases, the inspection performance improves. this doesn't improve

이상에서 설명한 실시예들에 따른 저장매체 검사 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 실시예들에 따른 저장매체 검사 방법에 의한 동작을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The operation by the storage medium inspection method according to the embodiments described above may be at least partially implemented as a computer program and recorded on a computer-readable recording medium. The computer-readable recording medium on which the program for implementing the operation of the storage medium inspection method according to the embodiments is recorded includes all kinds of recording devices in which computer-readable data is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, computer-readable recording media may be distributed in computer systems connected through a network, and computer-readable codes may be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing this embodiment can be easily understood by those skilled in the art to which this embodiment belongs.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해서 정해져야 할 것이다.The present invention reviewed above has been described with reference to the embodiments shown in the drawings, but this is only exemplary, and those skilled in the art will understand that various modifications and variations of the embodiments are possible therefrom. However, such modifications should be considered within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

Claims (12)

프로세서;
상기 프로세서에 의하여 실행되며, 검사 대상 저장매체의 블록 정보를 획득하도록 구성된 입력부; 및
상기 프로세서에 의하여 실행되며, 상기 블록 정보에 기초하여 상기 검사 대상 저장매체에서 서로 상이한 주소를 갖는 대상 블록들에 대한 검사를 병렬적으로 수행하도록 구성된 복수 개의 작업부로 이루어지는 스레드 풀을 포함하고,
상기 프로세서는 복수 개의 코어를 포함하며,
상기 코어의 수에 기초하여 결정되는 수로 상기 복수 개의 작업부를 생성하도록 구성된 작업 생성부를 더 포함하고,
상기 스레드 풀은,
상기 복수 개의 작업부가 검사를 병렬적으로 수행하도록 상기 블록 정보를 상기 작업부의 수 및 작업 효율을 고려하여 분할하되, 해당 블록에 대한 읽기, 입출력 완료 및 배드 블록 검사를 포함하는 작업을 하나의 블록 단위로 정의하고,
상기 블록 정보는,
상기 검사 대상 저장매체의 처음 및 마지막 블록 주소에 대한 정보, 리드(read)할 버퍼 주소, 한 번에 처리될 블록의 수를 포함하는 것을 특징으로 하는, 저장매체 검사 장치.
processor;
an input unit executed by the processor and configured to obtain block information of a storage medium to be tested; and
It is executed by the processor and includes a thread pool composed of a plurality of work units configured to perform tests on target blocks having different addresses in the test target storage medium in parallel based on the block information,
The processor includes a plurality of cores,
Further comprising a job generation unit configured to generate the plurality of work units with a number determined based on the number of cores;
The thread pool,
The block information is divided in consideration of the number of work units and work efficiency so that the plurality of work units perform inspection in parallel, and tasks including reading, input/output completion, and bad block inspection for the block are performed in units of one block. defined as,
The block information,
The storage medium inspection apparatus characterized in that it includes information on the first and last block addresses of the storage medium to be inspected, a buffer address to be read, and the number of blocks to be processed at one time.
삭제delete 제1항에 있어서,
상기 복수 개의 작업부 각각은 대상 블록의 데이터를 읽어들여 저장하기 위한 하나 이상의 버퍼를 포함하는 저장매체 검사 장치.
According to claim 1,
Each of the plurality of work units includes one or more buffers for reading and storing data of a target block.
제3항에 있어서,
상기 복수 개의 작업부는 상기 검사 대상 저장매체로부터 동시에 상기 대상 블록들을 읽어들이도록 더 구성된 저장매체 검사 장치.
According to claim 3,
The plurality of work units are further configured to simultaneously read the target blocks from the test target storage medium.
제4항에 있어서,
상기 복수 개의 작업부 각각은, 동일한 주소를 가진 대상 블록의 데이터를 읽어들여 저장하기 위한 2개의 버퍼를 포함하며, 상기 2개의 버퍼에 저장된 데이터가 동일한지 여부를 검사하여 상기 2개의 버퍼에 저장된 데이터가 동일하지 않을 경우 상기 대상 블록을 배드 블록으로 결정하도록 더 구성된 저장매체 검사 장치.
According to claim 4,
Each of the plurality of work units includes two buffers for reading and storing data of a target block having the same address, and checking whether the data stored in the two buffers is identical to the data stored in the two buffers. The storage medium inspection apparatus further configured to determine the target block as a bad block when n is not the same.
제1항에 있어서,
상기 복수 개의 작업부에 의해 탐지된 배드 블록 목록을 포함하는 검사 결과를 저장하도록 구성된 저장부를 더 포함하는 저장매체 검사 장치.
According to claim 1,
and a storage unit configured to store a test result including a list of bad blocks detected by the plurality of work units.
프로세서를 이용하여 동작하는 저장매체 검사 장치가, 검사 대상 저장매체의 블록 정보를 획득하는 단계;
상기 프로세서에 의하여 실행되며 스레드 풀을 구성하는 상기 저장매체 검사 장치의 복수 개의 작업부가, 상기 블록 정보를 이용하여, 상기 검사 대상 저장매체로부터 대상 블록들을 읽어들이는 단계; 및
상기 복수 개의 작업부가, 상기 검사 대상 저장매체에서 서로 상이한 주소를 갖는 상기 대상 블록들에 대한 검사를 병렬적으로 수행하는 단계를 포함하고,
상기 프로세서는 복수 개의 코어를 포함하며,
상기 대상 블록들을 읽어들이는 단계 전에, 상기 저장매체 검사 장치가, 상기 코어의 수에 기초하여 결정되는 수로 상기 복수 개의 작업부를 생성하는 단계를 더 포함하고,
상기 스레드 풀은,
상기 복수 개의 작업부가 검사를 병렬적으로 수행하도록 상기 블록 정보를 상기 작업부의 수 및 작업 효율을 고려하여 분할하되, 해당 블록에 대한 읽기, 입출력 완료 및 배드 블록 검사를 포함하는 작업을 하나의 블록 단위로 정의하고,
상기 블록 정보는,
상기 검사 대상 저장매체의 처음 및 마지막 블록 주소에 대한 정보, 리드(read)할 버퍼 주소, 한 번에 처리될 블록의 수를 포함하는 것을 특징으로 하는, 저장매체 검사 방법.
obtaining block information of a storage medium to be inspected by an apparatus for inspecting a storage medium that operates using a processor;
reading target blocks from the storage medium to be tested, by using the block information, by a plurality of work units of the storage medium inspection apparatus that are executed by the processor and constituting a thread pool; and
Performing, by the plurality of work units, parallel examination of the target blocks having different addresses from each other in the test target storage medium;
The processor includes a plurality of cores,
Before the step of reading the target blocks, the storage medium inspection apparatus further comprises generating the plurality of work units with a number determined based on the number of cores,
The thread pool,
The block information is divided in consideration of the number of work units and work efficiency so that the plurality of work units perform inspection in parallel, and tasks including reading, input/output completion, and bad block inspection for the block are performed in units of one block. defined as,
The block information,
The storage medium inspection method comprising information on the first and last block addresses of the storage medium to be inspected, a buffer address to be read, and the number of blocks to be processed at one time.
삭제delete 제7항에 있어서,
상기 검사 대상 저장매체로부터 대상 블록들을 읽어들이는 단계는, 상기 복수 개의 작업부가 상기 검사 대상 저장매체로부터 동시에 상기 대상 블록들을 읽어들이는 단계를 포함하는 저장매체 검사 방법.
According to claim 7,
The step of reading the target blocks from the storage medium to be inspected includes the step of simultaneously reading the target blocks from the storage medium to be inspected by the plurality of work units.
제7항에 있어서,
상기 복수 개의 작업부 각각은, 동일한 주소를 가진 대상 블록의 데이터를 읽어들여 저장하기 위한 2개의 버퍼를 포함하며,
상기 대상 블록들에 대한 검사를 병렬적으로 수행하는 단계는, 상기 복수 개의 작업부 각각이 상기 2개의 버퍼에 저장된 데이터가 동일한지 여부를 검사하여 상기 2개의 버퍼에 저장된 데이터가 동일하지 않을 경우 상기 대상 블록을 배드 블록으로 결정하는 단계를 포함하는 저장매체 검사 방법.
According to claim 7,
Each of the plurality of work units includes two buffers for reading and storing data of a target block having the same address,
In parallelly performing the check on the target blocks, each of the plurality of work units checks whether data stored in the two buffers is the same, and if the data stored in the two buffers is not the same, the A storage medium inspection method comprising determining a target block as a bad block.
제7항에 있어서,
상기 저장매체 검사 장치가, 상기 복수 개의 작업부에 의해 검출된 배드 블록 목록을 포함하는 검사 결과를 상기 저장매체 검사 장치에 저장하는 단계를 더 포함하는 저장매체 검사 방법.
According to claim 7,
The storage medium inspection method further comprising storing, by the storage medium inspection device, an inspection result including a list of bad blocks detected by the plurality of work units in the storage medium inspection device.
하드웨어와 결합되어 제7항 및 제9항 내지 제11항 중 어느 한 항에 따른 저장매체 검사 방법을 실행하도록 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium to be combined with hardware to execute the storage medium inspection method according to any one of claims 7 and 9 to 11.
KR1020210004056A 2021-01-12 2021-01-12 Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same KR102468381B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210004056A KR102468381B1 (en) 2021-01-12 2021-01-12 Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210004056A KR102468381B1 (en) 2021-01-12 2021-01-12 Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same

Publications (2)

Publication Number Publication Date
KR20220101946A KR20220101946A (en) 2022-07-19
KR102468381B1 true KR102468381B1 (en) 2022-11-16

Family

ID=82607101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210004056A KR102468381B1 (en) 2021-01-12 2021-01-12 Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same

Country Status (1)

Country Link
KR (1) KR102468381B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139892A (en) * 2004-11-15 2006-06-01 Advantest Corp Test apparatus and test method
KR100911252B1 (en) 2008-12-31 2009-08-06 주식회사 네오셈 Apparatus and method for testing a memory device
US20100042880A1 (en) * 2007-02-16 2010-02-18 Advantest Corporation Test apparatus and test method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4601119B2 (en) 2000-05-02 2010-12-22 株式会社アドバンテスト Memory test method and memory test equipment
WO2008020555A1 (en) * 2006-08-14 2008-02-21 Advantest Corporation Test device and test method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139892A (en) * 2004-11-15 2006-06-01 Advantest Corp Test apparatus and test method
US20100042880A1 (en) * 2007-02-16 2010-02-18 Advantest Corporation Test apparatus and test method
KR100911252B1 (en) 2008-12-31 2009-08-06 주식회사 네오셈 Apparatus and method for testing a memory device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"멀티 코어 확장성을 제공하는 실시간 플래시 저장장치 시뮬레이션", 이현규 외 2명, 정보과학회논문지, Vol.44, No.6, 2017.06.30.*

Also Published As

Publication number Publication date
KR20220101946A (en) 2022-07-19

Similar Documents

Publication Publication Date Title
US9582312B1 (en) Execution context trace for asynchronous tasks
US10289336B1 (en) Relocating data from an end of life storage drive based on storage drive loads in a data storage system using mapped RAID (redundant array of independent disks) technology
US9442791B2 (en) Building an intelligent, scalable system dump facility
US9047187B2 (en) Defect management in memory systems
US11257565B2 (en) Management of test resources to perform testing of memory components under different temperature conditions
CN111124264B (en) Method, apparatus and computer program product for reconstructing data
US11101015B2 (en) Multi-dimensional usage space testing of memory components
CN113366452A (en) Management of event log information for a memory subsystem
US20190347165A1 (en) Apparatus and method for recovering distributed file system
US20200285510A1 (en) High precision load distribution among processors
CN115662489A (en) Hard disk test method and device, electronic equipment and storage medium
KR102468381B1 (en) Apparatus and method for checking storage medium for parallelism of storage devices and computer program for the same
US8819494B2 (en) Automatically changing parts in response to tests
US10102099B2 (en) Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program
US8756575B2 (en) Installing and testing an application on a highly utilized computer platform
US10963364B2 (en) Analysis system, analysis method and program
US11366743B2 (en) Computing resource coverage
US10740224B2 (en) Data processing system test suite management including dynamic resource reallocation and reconfiguration
CN115858172A (en) Processor instruction execution statistical method and device and processor system
US20210342085A1 (en) Method for storage management, device and computer program product
CN113468020A (en) Memory monitoring method and device, electronic equipment and computer readable storage medium
US9710319B2 (en) Information processing apparatus and information collection method
KR102514257B1 (en) Apparatus and Method for Detecting Violation of Control Flow Integrity
Chiba et al. Investigating Genome Analysis Pipeline Performance on GATK with Cloud Object Storage
CN117112140A (en) Docker container migration system based on cloud

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant