KR20040039709A - apparatus and method for high-speed storage - Google Patents

apparatus and method for high-speed storage Download PDF

Info

Publication number
KR20040039709A
KR20040039709A KR1020020067854A KR20020067854A KR20040039709A KR 20040039709 A KR20040039709 A KR 20040039709A KR 1020020067854 A KR1020020067854 A KR 1020020067854A KR 20020067854 A KR20020067854 A KR 20020067854A KR 20040039709 A KR20040039709 A KR 20040039709A
Authority
KR
South Korea
Prior art keywords
memory module
command
data
host
controller
Prior art date
Application number
KR1020020067854A
Other languages
Korean (ko)
Other versions
KR100464788B1 (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 KR10-2002-0067854A priority Critical patent/KR100464788B1/en
Publication of KR20040039709A publication Critical patent/KR20040039709A/en
Application granted granted Critical
Publication of KR100464788B1 publication Critical patent/KR100464788B1/en

Links

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time

Landscapes

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

Abstract

PURPOSE: A very high speed storage and a method thereof are provided to offer a high speed memory access while keeping an interface rule between a sub storage and a CPU, and increase an entire service quality and stability without using an expensive server on a server-grade computer offering a service to many users. CONSTITUTION: A memory module(200) stores data by forming more than one module in parallel. A backup HDD(Hard Disk Drive)(300) performs backup of the data stored in the memory module in preparation for power interception and transfer. A controller(100) performs an instruction by interpreting a protocol instruction through an interface with a host, and records a change to the backup HDD if contents of the memory module are changed according to the instruction.

Description

초고속 저장장치 및 방법{apparatus and method for high-speed storage}{Apparatus and method for high-speed storage}

본 발명은 컴퓨터에서 사용되는 저장장치에 관한 것으로, 특히 컴퓨터의 보조기억장치의 속도를 증가시킬 수 있는 저장장치 및 그 방법에 관한 것이다.The present invention relates to a storage device used in a computer, and more particularly, to a storage device and a method for increasing the speed of a secondary storage device of the computer.

컴퓨터는 입력장치, 출력장치, 기억장치, 연산장치로 이루어지는데 그 중 기억장치는 연산장치에서 연산을 위해 직접 제어하며 실행을 위한 명령어 등을 일시적으로 기억시키는 주기억장치와, 연산된 결과 및 각종 데이터 등을 기억시키는 보조기억장치가 있다.The computer consists of input device, output device, memory device, and arithmetic device. Among them, the memory device is a main memory device that directly controls for operation in the arithmetic device and temporarily stores instructions for execution, and calculated results and various data. There is an auxiliary memory for storing the back.

따라서, 주기억장치는 연산장치인 중앙처리장치에서 연산을 위해 사용되기 때문에 고속동작에 중점을 두고, 보조기억장치는 각종 데이터 등을 기억시키는 목적으로 용량에 중점을 두고 있다. 그래서, 주기억장치로는 반도체기억장치인 롬(ROM)이나 램(RAM)이 주로 이용되며, 보조기억장치로는 플로피디스크, 하드디스크, 자기드럼, 자기테이프 등이 사용된다.Therefore, since the main memory device is used for the calculation in the central processing unit, which is an arithmetic unit, the main memory unit focuses on high-speed operation, and the auxiliary memory unit focuses on the capacity for storing various data. As a main memory device, a semiconductor memory device (ROM) or a RAM is mainly used, and as a secondary memory device, a floppy disk, a hard disk, a magnetic drum, a magnetic tape, or the like is used.

이와 같은 보조기억장치는 대용량의 데이터를 자유롭게 읽기(read)/쓰기(write)동작을 할 수 있어야 하며, 전원이 차단되었을 경우에도 데이터를 보존할 수 있어야 하는 비휘발성(non-volatile) 특성을 갖는다.Such an auxiliary memory device must be able to freely read / write a large amount of data, and has a non-volatile characteristic that must be able to preserve data even when the power is cut off. .

이러한 특성들로 인해 오래 전부터 보조기억장치로 많이 사용되고 있는 하드디스크(Hard Disk Drive : HDD)는 기록매체로서 자기디스크를 사용하며, 전술한 보조기억장치의 특성을 잘 만족하고 있다.Due to these characteristics, a hard disk (HDD), which has been widely used as an auxiliary memory device for a long time, uses a magnetic disk as a recording medium, and satisfies the characteristics of the aforementioned auxiliary memory device well.

그러나 최근 빠른 속도로 발전하고 있는 컴퓨터의 연산장치(CPU)에 비해 하드디스크는 상대적으로 더딘 속도로 발전하고 있어 내부 CPU와 기억장치간의 액세스(access) 처리 속도의 괴리가 점점 커지고 있다.However, hard disks are developing at a relatively slow speed compared to computer computing units (CPUs), which are rapidly progressing in recent years, and the gap between access processing speeds between internal CPUs and storage devices is increasing.

즉, 상기 전술한 하드디스크의 원리는 원형의 플래터를 고속으로 회전시키며, 자기정보를 기록할 수 있는 헤드와 암이 플래터 위를 이동하며 데이터를 기록하는 방식을 사용하고 있다.That is, the aforementioned principle of the hard disk uses a method in which a circular platter is rotated at a high speed, and a head and an arm capable of recording magnetic information move on the platter to record data.

이 방식은 상대적으로 저렴한 비용으로 손쉽게 대용량의 데이터 저장장치를만들 수 있지만, 기계적 장치라는 근본적인 구조 때문에 전자적 장치인 컴퓨터 메인보드의 속도를 따라오기에는 그 한계가 있다.This approach makes it easy to create large amounts of data storage at relatively low cost, but the limitations of keeping up with the speed of electronics, computer motherboards, are due to the fundamental structure of mechanical devices.

따라서 데이터의 액세스 속도를 높여 이런 한계를 극복하기 위해서는 플래터를 고속으로 회전하여야 하는데 현재 시장에 출시되고 있는 하드디스크는 최고 15000rpm 정도가 한계이다. 또한 앞으로 이 속도가 더 증가한다고 하여도 다른 전자부품(CPU, 메모리, 제어기)의 기술력 개발로 인해 속도의 격차는 점점 더 커질 것으로 예상된다.Therefore, in order to overcome this limitation by increasing the speed of data access, the platter must be rotated at high speed, and hard disks currently on the market are limited to about 15000 rpm. In addition, even if this speed increases further, the speed gap is expected to increase due to the development of technology of other electronic components (CPU, memory, controller).

한편, 대량의 사용자를 대상으로 서비스를 하는 서버급 컴퓨터의 경우 단 몇 초의 서비스 중지로 인해 수십, 수백 개의 서비스가 큐(queue)나 버퍼(buffer)에 적체되어 전체적인 서비스의 품질과 안정성을 떨어뜨리게 되므로, 보조기억장치로 하드디스크를 사용하는데는 더욱 큰 문제점을 가지게 된다.On the other hand, a server-class computer serving a large number of users may cause tens or hundreds of services to accumulate in queues or buffers because of a few seconds of service interruption, thereby degrading the quality and stability of the overall service. As a result, the use of a hard disk as an auxiliary storage device has a bigger problem.

따라서 최근 반도체 기술의 지속적인 발전에 힘입어 대용량의 데이터를 쉽게 지우고 기록할 수 있는 메모리 소자가 개발되고 있으며, 상기 메모리 소자를 이용하여 상술한 하드디스크를 대체하여 보조기억장치로 사용되도록 하는 많은 시도가 있어 왔다.Accordingly, in recent years, memory devices capable of easily erasing and writing a large amount of data have been developed due to the continuous development of semiconductor technology, and many attempts have been made to replace the above-described hard disks using the memory devices to be used as auxiliary storage devices. It has been.

이러한 시도 중에 대표적인 예가 보조기억장치로 플래시(flash) 메모리를 사용하는 방법이다.A representative example of such attempts is to use flash memory as a secondary memory.

상기 플래시 메모리는 전술한 보조기억장치의 특성을 모두 만족하고 있으며, 또한 전자적인 소자이므로 현재 주로 USB(Universal Serial Bus) 인터페이스를 이용한 보조기억장치로 널이 쓰이고 있다.Since the flash memory satisfies all the characteristics of the above-described auxiliary memory device and is also an electronic device, a null memory is mainly used as an auxiliary memory device using a universal serial bus (USB) interface.

그러나 전원공급이 중단되어도 데이터가 유지된다는 장점에도 불구하고, 상기 플래시 메모리는 특정 회수 이상 쓰기(write)를 할 수 없는 단점이 있다. 즉, 어느 정도 일정한 회수 동안 데이터를 지우거나 쓰기를 반복하면 메모리 기능이 상실된다.However, in spite of the advantage that the data is maintained even when the power supply is interrupted, the flash memory has a disadvantage that it cannot write more than a certain number of times. That is, if you erase or write data for a certain number of times, the memory function will be lost.

아울러 상기 플래시 메모리는 주기억장치로 사용되는 DRAM에 비해 속도가 현저히 떨어져, 빈번한 데이터 읽기/쓰기 연산 수행에는 적합하지 않다는 단점이 있다. 그러므로 플래시 메모리는 현재까지는 주로 이동성에 중점을 둔(플로피 디스크나 CDROM을 대체하는) 휴대용 보조기억장치로 사용되고 있다.In addition, the flash memory is significantly slower than the DRAM used as the main memory, and thus is not suitable for frequent data read / write operations. Therefore, flash memory is currently used as a portable auxiliary memory device which mainly focuses on mobility (replacement of floppy disk or CDROM).

이런 읽기/쓰기 회수의 제한과 속도의 문제를 해결하기 위한 방법으로 주기억장치로 사용되는 DRAM을 늘리는 경우를 생각할 수 있는데, 이 또한 어려움을 가지고 있다.As a way to solve this limitation of read / write times and speed, the increase of DRAM used as main memory can be considered.

즉, 워크스테이션급 PC의 경우 주기판에 장착되는 메모리(통상 RAM)의 슬롯 개수가 3개 이상 제공하지 않고 있는데, 그 이유는 4개 이상의 모듈을 병렬적으로 연결하기 위해서는 전개(fan-out)의 문제 및 제어신호의 레이싱 문제 등 각 모듈들이 서로 다른 모듈에 영향을 주어 안정된 회로를 구성하는 것이 매우 어렵기 때문이다.In other words, the workstation-class PC does not provide more than three slots of memory (typically RAM) installed in the main board. The reason is that in order to connect four or more modules in parallel, a fan-out is required. This is because it is very difficult to construct a stable circuit because each module affects different modules such as problems and racing problems of control signals.

거기에다 상기 3개의 슬롯 중 주기억장치를 위해 사용되는 모듈을 제외하면 보조기억장치로 사용할 수 있는 슬롯은 1~2개로 제한되므로 대용량의 보조기억장치를 구현하는데는 그 한계가 있다.In addition, except for the module used for the main memory among the three slots, the slot that can be used as the auxiliary storage device is limited to one or two, there is a limitation in implementing a large capacity auxiliary storage device.

예를 들어 DDRRAM 메모리 모듈의 표준인 PC2100이나 PC2700의 경우 한 개의모듈의 이론적인 최대용량은 4GB이므로 최대 12GB 이상 확장하는 것은 불가능하다는 결과가 나온다.For example, in the case of PC2100 or PC2700, which is the standard for DDRRAM memory modules, the theoretical maximum capacity of one module is 4GB, so it is impossible to extend it beyond 12GB.

그나마 이는 보조기억장치로 사용할 수 없는 주기억장치와 공유되는 용량이므로 실제 용량은 12GB 미만이라고 할 수 있다.However, since the capacity is shared with main memory that cannot be used as auxiliary memory, the actual capacity is less than 12GB.

한편, 서버로 사용되는 서버급 컴퓨터의 경우 제조사가 별도의 메모리 기판을 제작하여 10GB이상까지 대용량 메모리를 지원하는 경우가 있으나 이런 컴퓨터는 컴퓨터 자체의 가격이 1대 당 수억 이상의 고가 장비이고, 메모리 모듈도 천만원대에 이르기 때문에 단지 메모리를 많이 사용하기 위해 이런 고가의 장비를 사용하는 것은 경제성이 떨어진다. 또한 주기억장치를 확장한다 하여도 그와 상응하게 보조기억장치 또한 커지게 되므로 주기억장치의 용량이 커지는 것은 큰 의미를 갖지 않게 된다.In the case of a server-class computer used as a server, a manufacturer may support a large memory of up to 10GB or more by manufacturing a separate memory board, but such a computer is a high-priced device with hundreds of millions of expensive equipment per unit. Since it costs ten million won, using such expensive equipment just to use a lot of memory is not economical. In addition, even if the main memory is expanded, the auxiliary memory is also correspondingly large, so that the capacity of the main memory is not significant.

그리고 주기억장치인 RAM을 보조기억장치로 이용할 경우 시스템의 전원을 항상 유지해야하며, 아울러 이동시에는 본체와 항상 같이 이동해야 하므로 이동성 또한 떨어지게 된다.In addition, when the main memory RAM is used as an auxiliary memory device, the power of the system must be maintained at all times, and when moving, the mobility must also be reduced with the main body at all times.

이와 같은 문제로 인해 상기 플래시 메모리 및 주기억장치가 많은 장점을 가지고 있음에도 불구하고 보조기억장치로서 널리 사용되지 못하고 있다.Due to such a problem, although the flash memory and the main memory have many advantages, they are not widely used as auxiliary memories.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 기존의 보조기억장치와 CPU간의 인터페이스 규약을 그대로 유지하면서 고속의 메모리 액세스를 제공하는 저장장치 및 방법을 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a storage device and a method for providing high-speed memory access while maintaining an existing interface protocol between an auxiliary storage device and a CPU.

본 발명의 다른 목적은 대량의 사용자를 대상으로 서비스하는 서버급 컴퓨터에서 고가의 서버를 사용하지 않고도 전체적인 서비스의 품질과 안정성을 높일 수 있는 저장장치를 제공하는데 있다.Another object of the present invention is to provide a storage device that can increase the quality and stability of the overall service without using an expensive server in a server-class computer serving a large number of users.

본 발명의 또 다른 목적은 기존의 보조기억장치에 비해 적은 비용으로 데이터의 가용성이 뛰어나며, 고성능의 서버를 제공하는데 있다.It is still another object of the present invention to provide a high-performance server with excellent data availability at a lower cost than conventional auxiliary storage devices.

도 1 은 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 실시예를 나타낸 구성도1 is a block diagram showing an embodiment of an ultra-fast storage device using a memory device according to the present invention

도 2a, 도 2b 는 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 나타낸 흐름도2A and 2B are flowcharts showing the operation of the ultrafast storage device using the memory device according to the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

110 : 메모리 콘트롤러120 : 인터페이스 콘트롤러110: memory controller 120: interface controller

122 : 데이터 버퍼130 : 더티 버퍼122: data buffer 130: dirty buffer

140 : 백업 콘트롤러200 : 메모리 모듈140: backup controller 200: memory module

300 : 백업 HDD400 : 인터페이스 커넥터300: backup HDD400: interface connector

상기와 같은 목적을 달성하기 위한 본 발명에 따른 초고속 저장장치의 특징은 한 개 이상의 모듈이 결합되어 데이터를 저장하는 메모리 모듈과, 상기 메모리 모듈에 저장된 데이터를 백업하는 백업 HDD와, 호스트와 상기 메모리 모듈과의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈의 내용이 변화되면 상기 백업 HDD에 기록하는 콘트롤러를 포함하여 구성되는데 있다.Features of the ultra-fast storage device according to the present invention for achieving the above object is a memory module for storing data by combining one or more modules, a backup HDD for backing up the data stored in the memory module, the host and the memory The controller may be configured to decode a corresponding protocol command through an interface with a module to perform a command, and write a controller to the backup HDD when the contents of the memory module change according to the command.

이때, 상기 콘트롤러는 상기 인터페이스 커넥터를 통한 호스트와의 인터페이스에 따라 해당 프로토콜 명령어를 받아서 해독한 후 명령을 수행하기 위한 제어신호를 출력하는 인터페이스 콘트롤러와, 상기 인터페이스 콘트롤러의 제어신호를 입력으로 LBA(Linear Block Addressing)를 해당 메모리 어드레스(address)로 변환하여 상기 메모리 모듈의 메모리 I/O를 수행하는 메모리 콘트롤러와, 상기 호스트에서의 쓰기 명령으로 상기 메모리 모듈의 내용이 변하면 상기 변화된 내용을 읽어서 상기 백업 HDD에 기록하는 백업 콘트롤러를 포함하여 구성되는데 다른 특징이 있다.In this case, the controller receives and decodes a corresponding protocol command according to an interface with the host through the interface connector, and then outputs a control signal for executing the command, and the LBA (Linear) as a control signal of the interface controller as an input. A memory controller that performs memory I / O of the memory module by converting a block addressing into a corresponding memory address, and reads the changed contents when the contents of the memory module are changed by a write command from the host. It has a different feature, including a backup controller that writes to a.

상기 백업 콘트롤러는 상기 메모리 모듈의 변화된 내용을 백업하기 위한 상기 백업 HDD(300)의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼를 더 포함하여 구성되는데 또 다른 특징이 있다.The backup controller further includes a dirty buffer for recording a sector number of a corresponding sector of the backup HDD 300 for backing up the changed contents of the memory module.

이때, 상기 인터페이스 콘트롤러, 메모리 콘트롤러 및 백업 콘트롤러를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성되는 것이 바람직하다.In this case, it is preferable that the interface controller, the memory controller, and the backup controller are composed of ICs in which all circuits are integrated in one integrated controller.

그리고 상기 메모리 모듈은 SDRAM, DDRRAM 또는 RDRAM중 적어도 하나 이상으로 구성되는 것이 바람직하다.The memory module may be configured of at least one of SDRAM, DDRRAM, and RDRAM.

상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터를 더 포함하며, 상기 인터페이스 커넥터는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 적어도 어느 하나로 구성되는 것이 바람직하다.It further comprises an interface connector for connecting a connection cable according to the interface with the host, wherein the interface connector is composed of at least one of IEEE1394, SCSI series (Series), ATA series, PCI series and AGP (Acceration Graphic Port) desirable.

상기 메모리 모듈은 한 개 이상의 모듈이 병렬적으로 구성되는데 다른 특징이 있다.The memory module has one or more features in which one or more modules are configured in parallel.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 초고속 저장장치의 특징은 데이터를 저장하는 메모리 모듈과, 메모리 모듈의 데이터를 백업하는 백업 HDD과, 상기 메모리 모듈과 백업 HDD를 제어하는 콘트롤러로 구성되는 초고속 저장장치의 저장 방법에 있어서, 전원이 공급되면 각각의 콘트롤러가 자체 리셋 절차를 수행하고, 상기 백업 HDD에 저장되어 있는 데이터를 순차적으로 읽어 메모리 모듈에 기록하는 초기화 절차 단계와, 호스트로부터 전송되는 명령어를 해독하고, 상기명령이 읽기 명령인지, 쓰기 명령인지, 제어 명령인지를 판단하는 단계와, 상기 판단 결과, 읽기 명령이면 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터를 읽어서 호스트에 전송하는 읽기 수행 단계와, 상기 판단 결과, 쓰기 명령이면, 호스트로부터 데이터를 전송받아 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD에 기록하는 쓰기 수행 단계와, 상기 판단 결과, 제어 명령이면 제어 명령에 따른 동작을 제어하는 제어 수행 단계를 포함하여 이루어지는데 있다.Features of the ultra-fast storage device according to the present invention for achieving the above object is composed of a memory module for storing data, a backup HDD for backing up the data of the memory module, and a controller for controlling the memory module and the backup HDD In the storage method of the ultra-fast storage device, each controller performs its own reset procedure when the power is supplied, the initialization procedure step of sequentially reading the data stored in the backup HDD to write to the memory module, and is transmitted from the host Deciphering the command, and determining whether the command is a read command, a write command, a control command, and if the result of the determination is a read command, reading a few sectors starting from a specific LBA of the memory module and transmitting the read command to the host. And if the determination result is a write command, the data is received from the host. And a write performing step of writing a plurality of sectors starting from a specific LBA of a memory module and writing the recorded data to the backup HDD, and a control performing step of controlling an operation according to a control command if the control result is a control command. To lose.

이때, 상기 읽기 수행 단계는 호스트로부터 읽기 명령이 전송되면 해당 명령어를 해독한 후, LBA 값과 섹터개수를 검출하는 단계와, 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하여 상기 메모리 모듈에서 원하는 해당 데이터를 읽는 단계와, 상기 읽어진 해당 데이터를 호스트로 전송하는 단계를 포함하여 이루어지는데 다른 특징이 있다.In this case, the reading step is to decode the command when the read command is transmitted from the host, detect the LBA value and the number of sectors, convert the detected LBA value and the number of sectors into a physical memory address to the memory The module comprises reading the corresponding data desired by the module and transmitting the read data to the host.

그리고 상기 쓰기 수행 단계는 호스트로부터 쓰기 명령이 전송되면 해당 명령어를 해독한 후, 상기 호스트로부터 전송된 데이터를 제 1 버퍼에 저장하는 단계와, 데이터가 상기 제 1 버퍼에 모두 저장되면 LBA값과 섹터개수를 검출하는 단계와, 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하고 상기 제 1 버퍼에 저장된 데이터를 상기 메모리 모듈의 해당 위치에 기록하는 단계와, 상기 LBA값을 제 2 버퍼에 기록하고 호스트에 기록 완료 회답(reply)을 전송하는 단계와, 상기 제 2 버퍼를 모니터링하여 LBA 값이 기록되면 실시간으로 상기 메모리 모듈에서 해당 데이터를 읽어서 백업 HDD의 소정 영역에 저장하는 단계를 포함하여 이루어지는데 또 다른 특징이 있다.The write operation may include decrypting a corresponding command when a write command is transmitted from a host, and storing the data transmitted from the host in a first buffer; and storing the LBA value and sector when the data is stored in the first buffer. Detecting a number, converting the detected LBA value and the number of sectors into a physical memory address, writing the data stored in the first buffer to a corresponding position of the memory module, and storing the LBA value in a second buffer. Recording the data and transmitting a write completion reply to the host; and monitoring the second buffer and reading the corresponding data from the memory module in real time when the LBA value is recorded, and storing the data in a predetermined area of the backup HDD. There is another feature.

본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치 및 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.A preferred embodiment of the ultrafast storage device and method using a memory device according to the present invention will be described below with reference to the accompanying drawings.

도 1 은 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 실시예를 나타낸 구성도이다.1 is a block diagram showing an embodiment of an ultrafast storage device using the memory device according to the present invention.

도 1을 보면, 한 개 이상의 모듈이 병렬적으로 형성되어 데이터를 저장하는 메모리 모듈(200)과, 전원 차단 및 이동을 대비하여 상기 메모리 모듈(200)에 저장된 데이터를 백업하는 백업 HDD(300)와, 호스트와의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈(200)의 내용이 변화되면 상기 백업 HDD에 기록하도록 제어하는 콘트롤러(100)로 구성된다.Referring to FIG. 1, one or more modules are formed in parallel to store data, and a backup HDD 300 for backing up data stored in the memory module 200 in preparation for power interruption and movement. And a controller 100 that decodes the corresponding protocol command through an interface with the host to perform the command, and writes the data to the backup HDD when the contents of the memory module 200 change according to the command.

이때, 상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터(400)를 더 포함하여 구성된다.At this time, it further comprises an interface connector 400 for connecting the connection cable according to the interface with the host.

그리고 상기 콘트롤러(100)는 상기 인터페이스 커넥터(400)를 통한 호스트와의 인터페이스에 따라 데이터 전송 인터페이스(AT Attachment Packet Interface : ATAPI), SCSI(Small Computer System Interface), 시리얼 ATA(SerialATA) 등 해당 프로토콜 명령어를 받아서 해독한 후 명령을 수행하기 위한 제어신호를 출력하는 인터페이스 콘트롤러(120)와, 상기 인터페이스 콘트롤러(120)의 제어신호를 입력으로 LBA를 해당 메모리 어드레스(address)로 변환하여 상기 메모리 모듈(200)의 메모리 입출력(I/O)을 수행하는 메모리 콘트롤러(110)와, 상기 호스트에서의 쓰기 명령으로 상기 메모리 모듈(200)의 내용이 변하면 해당 섹터의 내용을 상기 메모리 모듈(200)에서 읽어서 상기 백업 HDD(300)에 기록하는 백업 콘트롤러(140)로 구성된다.And the controller 100 according to the interface with the host through the interface connector 400, the corresponding protocol commands such as AT Attachment Packet Interface (ATAPI), SCSI (Small Computer System Interface), Serial ATA (SerialATA) The controller receives the decoding and outputs a control signal for performing a command, and converts the LBA into a corresponding memory address by inputting the control signal of the interface controller 120 to the memory module 200. Memory controller 110 that performs memory input / output (I / O), and when the contents of the memory module 200 change due to a write command from the host, the contents of the corresponding sector are read from the memory module 200. The backup controller 140 records the backup HDD 300.

이때, 상기 백업 콘트롤러(140)는 상기 메모리 모듈(200)의 변화된 내용을 백업하기 위한 상기 백업 HDD(300)의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼(130)를 더 포함하여 구성하고 있다.In this case, the backup controller 140 further includes a dirty buffer 130 for recording a sector number of a corresponding sector of the backup HDD 300 for backing up the changed contents of the memory module 200.

그리고 상기 각 콘트롤러들(110)(120)(140)은 기존 ATAPI-7이나 Ultra320 SCSI 인터페이스의 표준을 준수하기 위해서 1ns 단위로 고속의 데이터 프로세싱을 수행해야 하므로, 전통적인 전자회로처럼 독립적인 IC를 기판에 실장하여 동작시키는 것은 불가능하다. 따라서 이런 고속 데이터 프로세싱을 위해 상기 인터페이스 콘트롤러(120), 메모리 콘트롤러(110) 및 백업 콘트롤러(140)를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성하는 것이 바람직하다.Since each of the controllers 110, 120, and 140 must perform high-speed data processing in units of 1 ns in order to comply with the standard of the existing ATAPI-7 or Ultra320 SCSI interface, an independent IC board may be used as a conventional electronic circuit. It is not possible to mount and operate on. Therefore, for such high-speed data processing, it is preferable to configure the interface controller 120, the memory controller 110, and the backup controller 140 as an IC in which all circuits are integrated in one integrated controller.

또한, 고속의 데이터 프로세싱을 위해 상기 인터페이스 커넥터(400)는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 하나를 사용한다.In addition, the interface connector 400 uses one of IEEE 1394, SCSI series, ATA series, PCI series, and Acceleration Graphic Port (AGP) for high speed data processing.

그리고 상기 LBA는 백업 HDD(300)에서 특정한 섹터를 찾기 위해 통상적으로 사용되는 방식중의 하나로 크게 CHS(Cylinder Head Sector) 방식과 LBA(Linear Block Addressing) 방식이 있다.The LBA is one of the methods commonly used to find a specific sector in the backup HDD 300. The LBA includes a CS (Cylinder Head Sector) method and a LBA (Linear Block Addressing) method.

상기 CHS 방식은 호스트가 직접 백업 HDD(300)의 실린더, 헤드, 섹터의 값을 지정하여 엑세스하는 방식이고, 상기 LBA 방식은 각각의 섹터에 일련번호를 부여하여 마치 연속된 섹터가 있는 것처럼 간주하여 호스트에서는 LBA 값만 지정하면 이 값을 실제적인 CHS 값으로 변환하여 엑세스하는 방식이다.The CHS method is a method in which a host directly accesses by designating a cylinder, a head, and a sector value of a backup HDD 300. The LBA method assigns a serial number to each sector, as if there are consecutive sectors. By specifying only the LBA value in the host, this value is converted to the actual CHS value and accessed.

이때, 상기 CHS값은 각 하드디스크마다 고유 파라메터가 달라서 엑세스가 번거로우므로, 본 발명에서는 바람직한 실시예로 LBA 방식을 사용한다.At this time, the CHS value has a unique parameter for each hard disk, so access is cumbersome. In the present invention, the LBA method is used as a preferred embodiment.

그리고 상기 메모리 모듈(200)은 SDRAM, DDRRAM, RDRAM 등으로 구성되며, 자체적인 램 보드를 이용하는 서버급의 컴퓨터를 제외한 대부분의 표준화된 모듈의 형태로 사용된다. 본 발명에서는 상기 메모리 모듈(200)을 바람직한 실시예로서 현재 시장에서 가장 많이 사용되는 DDRRAM으로 사용한다.The memory module 200 is composed of SDRAM, DDRRAM, RDRAM, and the like, and is used in the form of most standardized modules except for a server-class computer using its own RAM board. In the present invention, the memory module 200 is used as the most preferred DDRRAM on the market.

이때, 상기 DDRRAM은 PC2100과 PC2700이라는 규격에 따라 184핀의 모듈 형태로 제공되며, 64비트(bit)의 대역폭(bandwidth)으로 각각 2.1GB/sec, 2.7GB/sec의 데이터 전송 속도를 제공한다.In this case, the DDRRAM is provided in the form of a module of 184 pins according to the specifications of PC2100 and PC2700, and provides data transfer speeds of 2.1 GB / sec and 2.7 GB / sec, respectively, with a bandwidth of 64 bits.

아울러 내부적으로 상기 메모리 콘트롤러(110)는 다수의 모듈을 병렬적으로 장착한 상기 메모리 모듈(200)의 임의의 영역을 읽고 쓰는 역할을 수행한다.In addition, the memory controller 110 internally reads and writes an arbitrary area of the memory module 200 in which a plurality of modules are mounted in parallel.

또한, 백업 콘트롤러(140)는 상기 메모리 모듈(200)의 임의의 부분에 내용이 바뀌었을 때 이를 후작업으로 백업 HDD(300)에 변경내용을 반영시켜 전원 차단에 대비하도록 한다.In addition, when the contents are changed in any part of the memory module 200, the backup controller 140 reflects the changes to the backup HDD 300 as a post-operation to prepare for power cut.

이와 같이 구성된 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.The operation of the ultrafast storage device using the memory device according to the present invention configured as described above will be described in detail with reference to the accompanying drawings.

일반적으로 ATAPI 방식이건, SCSI 방식이건 간에 통신 프로토콜의 핵심은 크게 읽기 명령, 쓰기 명령, 제어 명령으로 분류할 수 있다.Generally, the core of communication protocol, whether ATAPI or SCSI, can be classified into read command, write command, and control command.

그러나 기존 HDD는 이런 명령을 처리하는 콘트롤러가 HDD 내에 구현되어 있으나, 본 발명에서는 이 역할을 대신하는 인터페이스 콘트롤러(120)를 별도로 설치하여 호스트와의 인터페이스를 담당하는데 그 차이가 있다고 할 수 있다.However, in the existing HDD, a controller for processing such a command is implemented in the HDD. However, in the present invention, the interface controller 120 may be installed separately in place of this role to handle the interface with the host.

도 2a, 2b 는 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 나타낸 흐름도 이다.2A and 2B are flowcharts illustrating the operation of the ultrafast storage device using the memory device according to the present invention.

도 2a, 2b와 같이, 초고속 저장장치의 동작은 크게 초기화 절차 단계(S100)와, 읽기 명령 단계(S200)와, 쓰기 명령 단계(S300)와, 제어 명령 단계(S400)로 이루어진다.As shown in FIGS. 2A and 2B, the operation of the ultrafast storage device is largely composed of an initialization procedure step S100, a read command step S200, a write command step S300, and a control command step S400.

상기 초기화 절차 단계(S100)로 최초에 전원이 공급되면(S110) 메모리 콘트롤러(110), 백업 콘트롤러(140), 그리고 인터페이스 콘트롤러(120) 각각은 자체 리셋 절차를 수행한다(S120).When power is initially supplied to the initialization procedure step S100 (S110), each of the memory controller 110, the backup controller 140, and the interface controller 120 performs its own reset procedure (S120).

이어 백업 HDD(300)에 저장되어 있는 데이터의 최초 LBA로부터 마지막 LBA까지를 순차적으로 읽어 메모리 콘트롤러(110)의 제어를 받으며 메모리 모듈(200)에 기록한다(S130).Subsequently, the data is sequentially read from the first LBA to the last LBA of the data stored in the backup HDD 300 and is then controlled by the memory controller 110 and recorded in the memory module 200 (S130).

그리고 이후 호스트에서 요청한 데이터는 항상 상기 메모리 모듈(200)을 통해 읽게 된다.After that, the data requested by the host is always read through the memory module 200.

이와 같이 초기화 절차가 모두 끝나면, 상기 인터페이스 콘트롤러(120)를 통해 호스트로부터 전송되는 명령어가 읽기 명령인지, 쓰기 명령인지, 아니면 제어명령인지를 판단한다(S200).When the initialization procedure is completed as described above, it is determined whether the command transmitted from the host through the interface controller 120 is a read command, a write command, or a control command (S200).

상기 판단 결과, 읽기 명령인 경우는 특정 LBA부터 몇 개의 섹터를 읽어서 호스트에 전송하는 읽기 명령 단계(S300)를 수행하고, 쓰기 명령인 경우는 호스트로부터 데이터를 전송받아 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD(300)에 기록하는 쓰기 명령 단계(S400)를 수행하고, 제어 명령인 경우는 백업 HDD(300)의 리셋 및 모드 변환 등을 제어하는 제어 명령 단계(S500)를 수행한다.As a result of the determination, in the case of a read command, a read command step (S300) of reading several sectors from a specific LBA is transmitted to the host, and in the case of a write command, data is received from the host and written to several sectors from a specific LBA And a write command step (S400) for recording the recorded data on the backup HDD 300, and in the case of a control command, a control command step (S500) for controlling the reset and mode conversion of the backup HDD 300, and the like. Perform

상기 읽기 명령, 쓰기 명령, 제어 명령의 단계를 좀더 상세히 설명하면 다음과 같다.The steps of the read command, write command, and control command will be described in more detail as follows.

상기 읽기 명령 단계(S300)는 먼저, 호스트로부터 읽기 명령이 전송되면 인터페이스 콘트롤러(120)는 해당 명령어를 해독한 후(S310), LBA 값과 섹터개수를 검출하여 메모리 콘트롤러(110)에 전송한다(S320).In the read command step (S300), first, when a read command is transmitted from the host, the interface controller 120 decodes the corresponding command (S310), and then detects the LBA value and the number of sectors and transmits it to the memory controller 110 ( S320).

그러면, 상기 메모리 콘트롤러(110)는 전송된 LBA 값과 섹터개수를 읽고 이를 물리적인 메모리 어드레스로 변환하여 메모리 모듈(200)에서 원하는 해당 데이터를 읽는다(S330).Then, the memory controller 110 reads the transmitted LBA value and the number of sectors, converts the LBA value into a physical memory address, and reads desired data from the memory module 200 (S330).

그리고 상기 읽어진 해당 데이터를 인터페이스 콘트롤러(120)를 통해 호스트로 전송한다(S340).The read data is transmitted to the host through the interface controller 120 (S340).

상기 쓰기 명령 단계(S400)는 먼저, 호스트로부터 쓰기 명령이 전송되면 인터페이스 콘트롤러(120)는 해당 명령어를 해독한 후(S410), 호스트로부터 전송된 데이터를 데이터 버퍼(121)에 저장한다(S420).In the write command step (S400), first, when a write command is transmitted from the host, the interface controller 120 decodes the corresponding command (S410), and then stores the data transmitted from the host in the data buffer 121 (S420). .

그리고 상기 데이터 전송이 끝나서 모든 데이터가 상기 데이터 버퍼(121)에 저장되면 상기 인터페이스 콘트롤러(120)는 LBA값과 섹터개수를 메모리 콘트롤러(110)에 전송한다(S430).When all data is stored in the data buffer 121 after the data transfer is completed, the interface controller 120 transmits the LBA value and the number of sectors to the memory controller 110 (S430).

이어 메모리 콘트롤러(110)는 상기 전송된 LBA 값과 섹터개수를 읽고 이를 물리적인 메모리 어드레스로 변환하여 상기 데이터 버퍼(121)에 저장된 데이터를 상기 메모리 모듈(200)의 해당 위치에 기록한다(S440).Next, the memory controller 110 reads the transmitted LBA value and the number of sectors, converts the LBA value into a physical memory address, and writes the data stored in the data buffer 121 at a corresponding position of the memory module 200 (S440). .

그리고 상기 데이터 버퍼(121)의 데이터가 모두 상기 메모리 모듈(200)에 기록되면 상기 인터페이스 콘트롤러(120)는 해당 LBA값을 더티(dirty) 버퍼(130)에 기록한다(S450).When all data of the data buffer 121 is written to the memory module 200, the interface controller 120 writes the corresponding LBA value to the dirty buffer 130 (S450).

상기 기록이 완료되면 인터페이스 콘트롤러(120)는 호스트에 기록 완료 회답(reply)을 보내어 호스트가 다음 작업을 수행할 수 있도록 한다(S460).When the recording is completed, the interface controller 120 sends a recording completion reply to the host so that the host can perform the next operation (S460).

그리고 백업 콘트롤러(140)는 상기 더티 버퍼(130)를 모니터링하고 있다가 LBA 값이 기록되면 메모리 모듈(200)에서 해당 데이터를 읽어서 상기 백업 HDD(300)의 소정영역에 저장한다(S470).The backup controller 140 monitors the dirty buffer 130 and reads the corresponding data from the memory module 200 and stores the data in the predetermined area of the backup HDD 300 when the LBA value is recorded (S470).

이는 전원이 차단된 상태에서도 데이터를 유지하기 위해 상기 백업 콘트롤러(140)는 메모리 모듈(200)의 내용이 변환되는 부분을 모니터링하다가 필요한 부분을 실시간으로 백업 HDD(300)에 반영하게 된다.The backup controller 140 monitors the portion where the contents of the memory module 200 are converted and reflects the necessary portion to the backup HDD 300 in real time in order to maintain data even when the power is cut off.

이때, 상기 메모리 콘트롤러(110)와 백업 콘트롤러(140)는 독립적으로 수행되는 작업으로 호스트에서 데이터 A, B, C가 차례로 쓰여질 때 메모리 모듈(200)에 A저장, 백업 HDD(300)에 A백업, 메모리 모듈(200)에 B저장, 백업 HDD(300)에 B백업, 메모리 모듈(200)에 C저장, 백업 HDD(300)에 C백업의 순으로 실행될 수도 있지만 연속적으로 메모리 모듈(200)에 A, B, C 저장, 백업 HDD(300)에 A, B, C 백업의 순으로 실행될 수 있다.At this time, the memory controller 110 and the backup controller 140 is a task that is performed independently, when the data A, B, and C are written in the host in order, A is stored in the memory module 200 and A is backed up in the backup HDD 300. , May be executed in the order of B storage in the memory module 200, B backup in the backup HDD 300, C storage in the memory module 200, and C backup in the backup HDD 300, but successively in the memory module 200. A, B, C storage, the backup HDD 300 may be executed in the order of A, B, C backup.

이와 같이 데이터 저장시에 메모리 모듈(200)에 저장하는 것과 백업 HDD(300)에 백업하는 것은 독립적인 콘트롤러가 각각 처리하므로, 메모리 모듈(200)저장, 백업 HDD(300)에 백업이 항상 순차적으로 이루어지지는 않는다.As described above, since the independent controller processes each of the data stored in the memory module 200 and the backup HDD 300 during data storage, the backup is always performed sequentially in the memory module 200 and the backup HDD 300. There is no support.

백업 HDD(300)의 백업 속도가 메모리 모듈(200)에 저장하는 것보다 속도가 느리므로 순간적으로 많은 데이터가 저장될 때는 일단 메모리에만 기록해두고 더티버퍼(121)에 LBA들만 저장하여 두기 때문에 이런 경우 데이터의 백업은 메모리 모듈(200)에 저장된 후 나중에 수행될 수 있다.In this case, since the backup speed of the backup HDD 300 is slower than that stored in the memory module 200, when a large amount of data is momentarily stored, only the LBAs are stored in the memory and the dirty buffer 121 once. The backup of the data may be performed later after being stored in the memory module 200.

상기 데이터가 백업 HDD(300)에 저장이 완료되면 더티 버퍼(130)에 저장된 LBA는 삭제되거나, 또는 다음에 기록되는 LBA에 덮어 씌워지게 된다.When the data is completed to be stored in the backup HDD 300, the LBA stored in the dirty buffer 130 is deleted or overwritten to the next recorded LBA.

마지막으로 상기 제어 명령 단계(S500)는 먼저, 호스트로부터 쓰기 명령이 전송되면 인터페이스 콘트롤러(120)에서 해당 명령어를 해독한다(S510).Finally, the control command step (S500), first, when a write command is transmitted from the host, the interface controller 120 decrypts the corresponding command (S510).

그리고 상기 해독된 제어 명령에 따라 백업 HDD(300)의 리셋 및 모드 변환 등 적절한 동작을 수행한다(S520). 이때, 필요에 따라서는 이 명령어를 메모리 콘트롤러(110)나 백업 콘트롤러(140)에 전달하여 메모리 모듈(200)과 백업 HDD(300)에 제어 명령을 수행한다.According to the decrypted control command, an appropriate operation such as resetting of the backup HDD 300 and mode switching is performed (S520). At this time, if necessary, the command is transmitted to the memory controller 110 or the backup controller 140 to perform a control command to the memory module 200 and the backup HDD 300.

이후 다음 작업이 호스트를 통해 전송되면 상기 과정을 반복 수행한다(S600).Thereafter, if the next job is transmitted through the host, the process is repeated (S600).

이상에서 설명한 바와 같은 본 발명에 따른 초고속 저장장치 및 방법은 다음과 같은 효과가 있다.The ultrafast storage device and method according to the present invention as described above has the following effects.

첫째, 기존의 하드디스크와 호스트간의 인터페이스 규약을 그대로 유지하고, 또한 기존의 장비에서 확장이나 교체없이 바로 메모리 디바이스만을 증설하여 고속의 I/O를 제공할 수 있다.First, it maintains the interface protocol between the existing hard disk and the host, and can provide high-speed I / O by expanding only the memory device without expansion or replacement in the existing equipment.

둘째, 기존의 하드디스크에 비해 데이터의 가용성이 뛰어나고 상대적으로 적은 비용으로 고성능 서버의 효과를 발휘할 수 있다.Second, data availability is higher than that of a conventional hard disk, and a high performance server can be achieved at a relatively low cost.

셋째, 기계적 장치로 되어 있는 하드디스크를 전자적 장치인 다수의 RAM 모듈과 백업용 HDD로 대체함으로써, 기존의 하드디스크보다 20배 이상의 처리속도를 증가시킬 수 있다.Third, by replacing a hard disk that is a mechanical device with a plurality of RAM modules and a backup HDD that are electronic devices, a processing speed of 20 times or more can be increased.

넷째, 메모리 모듈의 단점을 보완하기 위해 백업용 HDD를 운용함으로써, 전원을 항상 유지해야하는 어려움을 해결함과 동시에 전원이 차단되거나 갑작스런 이상이 발생할 경우에도 데이터의 손실을 방지할 수 있어 보다 안정적인 저장장치를 구현할 수 있다.Fourth, by operating the backup HDD to make up for the shortcomings of the memory module, it is possible to solve the difficulty of maintaining the power at all times and to prevent data loss in the event of a power failure or sudden failure. Can be implemented.

다섯째, 본체와 인터페이스 케이블로 연결되어 있기 때문에 이동시에 본체와 떨어져서 사용 가능함으로써, 이동성이 뛰어난 효과가 있다.Fifth, since it is connected to the main body and the interface cable can be used apart from the main body at the time of movement, there is an excellent mobility effect.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이아니라 특허 청구의 범위에 의하여 정해져야 한다.Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (13)

한 개 이상의 모듈이 결합되어 데이터를 저장하는 메모리 모듈과,A memory module in which one or more modules are combined to store data; 호스트와 상기 메모리 모듈과의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈의 내용을 읽기/쓰기 하는 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.And a controller configured to decode a corresponding protocol command through an interface between a host and the memory module to perform a command, and to read / write the contents of the memory module according to the command. 제 1 항에 있어서, 상기 콘트롤러는The method of claim 1, wherein the controller 상기 인터페이스 커넥터를 통한 호스트와의 인터페이스에 따라 해당 프로토콜 명령어를 받아서 해독한 후 명령을 수행하기 위한 제어신호를 출력하는 인터페이스 콘트롤러와,An interface controller for receiving and decoding a corresponding protocol command according to an interface with a host through the interface connector and outputting a control signal for executing the command; 상기 인터페이스 콘트롤러의 제어신호를 입력으로 LBA(Linear Block Addressing)를 해당 메모리 어드레스(address)로 변환하여 상기 메모리 모듈의 메모리 I/O를 수행하는 메모리 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.And a memory controller configured to convert LBA (Linear Block Addressing) into a corresponding memory address by inputting the control signal of the interface controller to perform memory I / O of the memory module. . 제 2 항에 있어서,The method of claim 2, 상기 인터페이스 콘트롤러, 메모리 콘트롤러를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성되는 것을 특징으로 하는 초고속 저장장치.And the interface controller and the memory controller are configured as ICs in which all circuits are physically integrated in one integrated controller. 제 1 항에 있어서,The method of claim 1, 상기 메모리 모듈에 저장된 데이터를 백업하는 백업 HDD를 더 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.And a backup HDD for backing up data stored in the memory module. 제 4 항에 있어서,The method of claim 4, wherein 상기 호스트에서의 쓰기 명령으로 상기 메모리 모듈의 내용이 변하면 상기 변화된 내용을 읽어서 상기 백업 HDD에 기록하는 백업 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.And a backup controller which reads the changed contents and writes them to the backup HDD when the contents of the memory module change due to a write command from the host. 제 5 항에 있어서,The method of claim 5, wherein 상기 백업 콘트롤러는 상기 메모리 모듈의 변화된 내용을 백업하기 위한 상기 백업 HDD의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼를 더 포함하여 구성하고 있다.The backup controller further includes a dirty buffer for recording a sector number of a corresponding sector of the backup HDD for backing up the changed contents of the memory module. 제 1 항에 있어서,The method of claim 1, 상기 메모리 모듈은 SDRAM, DDRRAM 또는 RDRAM중 적어도 하나 이상으로 구성되는 것을 특징으로 하는 초고속 저장장치.The memory module of claim 1, wherein the memory module comprises at least one of SDRAM, DDRRAM, and RDRAM. 제 1 항에 있어서,The method of claim 1, 상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터를 더 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.And an interface connector for connecting a connection cable according to the interface with the host. 제 8 항에 있어서,The method of claim 8, 상기 인터페이스 커넥터는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 적어도 어느 하나로 구성되는 것을 특징으로 하는 초고속 저장장치.The interface connector is characterized in that at least one of the IEEE1394, SCSI series (Series), ATA series, PCI series and AGP (Acceration Graphic Port) characterized in that the configuration. 제 1 항에 있어서,The method of claim 1, 상기 메모리 모듈은 한 개 이상의 모듈이 병렬적으로 구성되는 것을 특징으로 하는 초고속 저장장치.The memory module of claim 1, wherein at least one module is configured in parallel. 데이터를 저장하는 메모리 모듈과, 메모리 모듈의 데이터를 백업하는 백업 HDD과, 상기 메모리 모듈과 백업 HDD를 제어하는 콘트롤러로 구성되는 초고속 저장장치의 저장 방법에 있어서,In the storage method of the ultra-fast storage device comprising a memory module for storing data, a backup HDD for backing up the data of the memory module, and a controller for controlling the memory module and the backup HDD, 전원이 공급되면 각각의 콘트롤러가 자체 리셋 절차를 수행하고, 상기 백업 HDD에 저장되어 있는 데이터를 순차적으로 읽어 메모리 모듈에 기록하는 초기화 절차 단계와,An initialization procedure step in which each controller performs its own reset procedure when the power is supplied and sequentially reads data stored in the backup HDD and writes the data to the memory module; 호스트로부터 전송되는 명령어를 해독하고, 상기 명령이 읽기 명령인지, 쓰기 명령인지, 제어 명령인지를 판단하는 단계와,Decoding a command transmitted from a host, and determining whether the command is a read command, a write command, or a control command; 상기 판단 결과, 읽기 명령이면 상기 메모리 모듈의 특정 LBA부터 몇 개의섹터를 읽어서 호스트에 전송하는 읽기 수행 단계와,A read performing step of reading a few sectors starting from a specific LBA of the memory module and transmitting the read command to the host if the read command is performed; 상기 판단 결과, 쓰기 명령이면, 호스트로부터 데이터를 전송받아 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD에 기록하는 쓰기 수행 단계와,If it is determined that the command is a write command, write data is received from a host and written to several sectors starting from a specific LBA of the memory module, and the recorded data is written to the backup HDD; 상기 판단 결과, 제어 명령이면 제어 명령에 따른 동작을 제어하는 제어 수행 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.And a control execution step of controlling an operation according to the control command if the control command is a result of the determination. 제 11 항에 있어서, 상기 읽기 수행 단계는12. The method of claim 11, wherein performing a read 호스트로부터 읽기 명령이 전송되면 해당 명령어를 해독한 후, LBA 값과 섹터개수를 검출하는 단계와,When a read command is sent from the host, the command is decoded and the LBA value and the number of sectors are detected. 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하여 상기 메모리 모듈에서 원하는 해당 데이터를 읽는 단계와,Converting the detected LBA value and the number of sectors into a physical memory address and reading desired data from the memory module; 상기 읽어진 해당 데이터를 호스트로 전송하는 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.And transmitting the read data to a host. 제 11 항에 있어서, 상기 쓰기 수행 단계는12. The method of claim 11, wherein the writing step is performed. 호스트로부터 쓰기 명령이 전송되면 해당 명령어를 해독한 후, 상기 호스트로부터 전송된 데이터를 제 1 버퍼에 저장하는 단계와,Decrypting the command when the write command is transmitted from the host, and storing the data transmitted from the host in a first buffer; 데이터가 상기 제 1 버퍼에 모두 저장되면 LBA값과 섹터개수를 검출하는 단계와,Detecting the LBA value and the number of sectors when all data is stored in the first buffer; 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하고 상기 제 1 버퍼에 저장된 데이터를 상기 메모리 모듈의 해당 위치에 기록하는 단계와,Converting the detected LBA value and the number of sectors into a physical memory address and writing data stored in the first buffer to a corresponding position of the memory module; 상기 LBA값을 제 2 버퍼에 기록하고 호스트에 기록 완료 회답(reply)을 전송하는 단계와,Writing the LBA value to a second buffer and sending a write complete reply to a host; 상기 제 2 버퍼를 모니터링하여 LBA 값이 기록되면 실시간으로 상기 메모리 모듈에서 해당 데이터를 읽어서 백업 HDD의 소정 영역에 저장하는 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.And monitoring the second buffer and reading the corresponding data from the memory module in real time when the LBA value is recorded, and storing the data in a predetermined area of the backup HDD.
KR10-2002-0067854A 2002-11-04 2002-11-04 apparatus and method for high-speed storage KR100464788B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0067854A KR100464788B1 (en) 2002-11-04 2002-11-04 apparatus and method for high-speed storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0067854A KR100464788B1 (en) 2002-11-04 2002-11-04 apparatus and method for high-speed storage

Publications (2)

Publication Number Publication Date
KR20040039709A true KR20040039709A (en) 2004-05-12
KR100464788B1 KR100464788B1 (en) 2005-01-05

Family

ID=37337248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0067854A KR100464788B1 (en) 2002-11-04 2002-11-04 apparatus and method for high-speed storage

Country Status (1)

Country Link
KR (1) KR100464788B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645738B2 (en) 2009-10-27 2014-02-04 Nokia Corporation Nonvolatile device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758589B1 (en) 2005-07-15 2007-09-18 주식회사 태진인포텍 Memory disk device through high interface and control method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
JPH05298197A (en) * 1992-04-22 1993-11-12 Uin Syst:Kk Memory device and data backup method therefor
KR200153975Y1 (en) * 1996-10-25 1999-08-02 권율 Virtual memory device using the ram
JPH10161938A (en) * 1996-11-29 1998-06-19 Toshiba Corp Disk controller
JPH11353120A (en) * 1998-06-11 1999-12-24 Nec Ibaraki Ltd Magnetic disk drive and backup method for write data
JP3541349B2 (en) * 1999-07-21 2004-07-07 日本電気エンジニアリング株式会社 Cache memory backup system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645738B2 (en) 2009-10-27 2014-02-04 Nokia Corporation Nonvolatile device

Also Published As

Publication number Publication date
KR100464788B1 (en) 2005-01-05

Similar Documents

Publication Publication Date Title
EP1960888B1 (en) Optimizing write and wear performance for a memory
US6772108B1 (en) Raid controller system and method with ATA emulation host interface
US7003623B2 (en) Solid state disk on module with high speed data transmission
US9164703B2 (en) Solid state drive interface controller and method selectively activating and deactivating interfaces and allocating storage capacity to the interfaces
US20080162788A1 (en) Memory Controller with Automatic Command Processing Unit and Memory System Including the Same
US20140075102A1 (en) Controller of a nonvolatile memory device and a command scheduling method thereof
US20150081953A1 (en) Ssd (solid state drive) device
US5887128A (en) Method and apparatus for redundant disk storage system with offset
US20020138694A1 (en) Magnetic disc drive, method for recording data, and method for reproducing data
JP2007102653A (en) Method and apparatus for testing function of data storage apparatus
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
EP3772682A1 (en) Method and apparatus to improve write bandwidth of a block-based multi-level cell non-volatile memory
US20020083288A1 (en) Addressing system for use in storage devices
KR100843199B1 (en) High speed IDE interface device and method for the same
US7406562B2 (en) Information read/write device
KR100464788B1 (en) apparatus and method for high-speed storage
US20030046499A1 (en) Integrated drive controller for systems with integrated mass storage
US20060277326A1 (en) Data transfer system and method
US6917490B2 (en) System and method for storing information in a disk drive
US7587538B2 (en) Disk controller, channel interface and methods for use therewith
US20060242359A1 (en) Data storage device
US20100153635A1 (en) Storage device with expandable solid-state memory capacity
KR100467102B1 (en) Data storage system
JP2008262565A (en) Data writing/reading system, memory device, method, and computer-readable medium
US20070299994A1 (en) Disk controller, host interface module and methods for use therewith

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee