KR100464788B1 - 초고속 저장장치 및 방법 - Google Patents

초고속 저장장치 및 방법 Download PDF

Info

Publication number
KR100464788B1
KR100464788B1 KR10-2002-0067854A KR20020067854A KR100464788B1 KR 100464788 B1 KR100464788 B1 KR 100464788B1 KR 20020067854 A KR20020067854 A KR 20020067854A KR 100464788 B1 KR100464788 B1 KR 100464788B1
Authority
KR
South Korea
Prior art keywords
command
memory module
data
host
controller
Prior art date
Application number
KR10-2002-0067854A
Other languages
English (en)
Other versions
KR20040039709A (ko
Inventor
노윤호
Original Assignee
노윤호
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노윤호 filed Critical 노윤호
Priority to KR10-2002-0067854A priority Critical patent/KR100464788B1/ko
Publication of KR20040039709A publication Critical patent/KR20040039709A/ko
Application granted granted Critical
Publication of KR100464788B1 publication Critical patent/KR100464788B1/ko

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

본 발명은 기존의 하드디스크와 호스트간의 인터페이스 규약을 그대로 유지하면서 고속의 입출력(I/O)을 제공하는 저장장치 및 방법을 제공하기 위한 것으로서, 한 개 이상의 모듈이 결합되어 데이터를 저장하는 메모리 모듈과, 상기 메모리 모듈에 저장된 데이터를 백업하는 백업 HDD와, 호스트와의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈의 내용이 변화되면 상기 백업 HDD에 기록하는 콘트롤러를 포함하여 구성되어 기존의 하드디스크에 비해 데이터의 가용성이 뛰어나고, 또한 상대적으로 적은 비용으로 20배 이상의 속도 증가 효과가 있다.

Description

초고속 저장장치 및 방법{apparatus and method for high-speed storage}
본 발명은 컴퓨터에서 사용되는 저장장치에 관한 것으로, 특히 컴퓨터의 보조기억장치의 속도를 증가시킬 수 있는 저장장치 및 그 방법에 관한 것이다.
컴퓨터는 입력장치, 출력장치, 기억장치, 연산장치로 이루어지는데 그 중 기억장치는 연산장치에서 연산을 위해 직접 제어하며 실행을 위한 명령어 등을 일시적으로 기억시키는 주기억장치와, 연산된 결과 및 각종 데이터 등을 기억시키는 보조기억장치가 있다.
따라서, 주기억장치는 연산장치인 중앙처리장치에서 연산을 위해 사용되기 때문에 고속동작에 중점을 두고, 보조기억장치는 각종 데이터 등을 기억시키는 목적으로 용량에 중점을 두고 있다. 그래서, 주기억장치로는 반도체기억장치인 롬(ROM)이나 램(RAM)이 주로 이용되며, 보조기억장치로는 플로피디스크, 하드디스크, 자기드럼, 자기테이프 등이 사용된다.
이와 같은 보조기억장치는 대용량의 데이터를 자유롭게 읽기(read)/쓰기(write)동작을 할 수 있어야 하며, 전원이 차단되었을 경우에도 데이터를 보존할 수 있어야 하는 비휘발성(non-volatile) 특성을 갖는다.
이러한 특성들로 인해 오래 전부터 보조기억장치로 많이 사용되고 있는 하드디스크(Hard Disk Drive : HDD)는 기록매체로서 자기디스크를 사용하며, 전술한 보조기억장치의 특성을 잘 만족하고 있다.
그러나 최근 빠른 속도로 발전하고 있는 컴퓨터의 연산장치(CPU)에 비해 하드디스크는 상대적으로 더딘 속도로 발전하고 있어 내부 CPU와 기억장치간의 액세스(access) 처리 속도의 괴리가 점점 커지고 있다.
즉, 상기 전술한 하드디스크의 원리는 원형의 플래터를 고속으로 회전시키며, 자기정보를 기록할 수 있는 헤드와 암이 플래터 위를 이동하며 데이터를 기록하는 방식을 사용하고 있다.
이 방식은 상대적으로 저렴한 비용으로 손쉽게 대용량의 데이터 저장장치를만들 수 있지만, 기계적 장치라는 근본적인 구조 때문에 전자적 장치인 컴퓨터 메인보드의 속도를 따라오기에는 그 한계가 있다.
따라서 데이터의 액세스 속도를 높여 이런 한계를 극복하기 위해서는 플래터를 고속으로 회전하여야 하는데 현재 시장에 출시되고 있는 하드디스크는 최고 15000rpm 정도가 한계이다. 또한 앞으로 이 속도가 더 증가한다고 하여도 다른 전자부품(CPU, 메모리, 제어기)의 기술력 개발로 인해 속도의 격차는 점점 더 커질 것으로 예상된다.
한편, 대량의 사용자를 대상으로 서비스를 하는 서버급 컴퓨터의 경우 단 몇 초의 서비스 중지로 인해 수십, 수백 개의 서비스가 큐(queue)나 버퍼(buffer)에 적체되어 전체적인 서비스의 품질과 안정성을 떨어뜨리게 되므로, 보조기억장치로 하드디스크를 사용하는데는 더욱 큰 문제점을 가지게 된다.
따라서 최근 반도체 기술의 지속적인 발전에 힘입어 대용량의 데이터를 쉽게 지우고 기록할 수 있는 메모리 소자가 개발되고 있으며, 상기 메모리 소자를 이용하여 상술한 하드디스크를 대체하여 보조기억장치로 사용되도록 하는 많은 시도가 있어 왔다.
이러한 시도 중에 대표적인 예가 보조기억장치로 플래시(flash) 메모리를 사용하는 방법이다.
상기 플래시 메모리는 전술한 보조기억장치의 특성을 모두 만족하고 있으며, 또한 전자적인 소자이므로 현재 주로 USB(Universal Serial Bus) 인터페이스를 이용한 보조기억장치로 널이 쓰이고 있다.
그러나 전원공급이 중단되어도 데이터가 유지된다는 장점에도 불구하고, 상기 플래시 메모리는 특정 회수 이상 쓰기(write)를 할 수 없는 단점이 있다. 즉, 어느 정도 일정한 회수 동안 데이터를 지우거나 쓰기를 반복하면 메모리 기능이 상실된다.
아울러 상기 플래시 메모리는 주기억장치로 사용되는 DRAM에 비해 속도가 현저히 떨어져, 빈번한 데이터 읽기/쓰기 연산 수행에는 적합하지 않다는 단점이 있다. 그러므로 플래시 메모리는 현재까지는 주로 이동성에 중점을 둔(플로피 디스크나 CDROM을 대체하는) 휴대용 보조기억장치로 사용되고 있다.
이런 읽기/쓰기 회수의 제한과 속도의 문제를 해결하기 위한 방법으로 주기억장치로 사용되는 DRAM을 늘리는 경우를 생각할 수 있는데, 이 또한 어려움을 가지고 있다.
즉, 워크스테이션급 PC의 경우 주기판에 장착되는 메모리(통상 RAM)의 슬롯 개수가 3개 이상 제공하지 않고 있는데, 그 이유는 4개 이상의 모듈을 병렬적으로 연결하기 위해서는 전개(fan-out)의 문제 및 제어신호의 레이싱 문제 등 각 모듈들이 서로 다른 모듈에 영향을 주어 안정된 회로를 구성하는 것이 매우 어렵기 때문이다.
거기에다 상기 3개의 슬롯 중 주기억장치를 위해 사용되는 모듈을 제외하면 보조기억장치로 사용할 수 있는 슬롯은 1~2개로 제한되므로 대용량의 보조기억장치를 구현하는데는 그 한계가 있다.
예를 들어 DDRRAM 메모리 모듈의 표준인 PC2100이나 PC2700의 경우 한 개의모듈의 이론적인 최대용량은 4GB이므로 최대 12GB 이상 확장하는 것은 불가능하다는 결과가 나온다.
그나마 이는 보조기억장치로 사용할 수 없는 주기억장치와 공유되는 용량이므로 실제 용량은 12GB 미만이라고 할 수 있다.
한편, 서버로 사용되는 서버급 컴퓨터의 경우 제조사가 별도의 메모리 기판을 제작하여 10GB이상까지 대용량 메모리를 지원하는 경우가 있으나 이런 컴퓨터는 컴퓨터 자체의 가격이 1대 당 수억 이상의 고가 장비이고, 메모리 모듈도 천만원대에 이르기 때문에 단지 메모리를 많이 사용하기 위해 이런 고가의 장비를 사용하는 것은 경제성이 떨어진다. 또한 주기억장치를 확장한다 하여도 그와 상응하게 보조기억장치 또한 커지게 되므로 주기억장치의 용량이 커지는 것은 큰 의미를 갖지 않게 된다.
그리고 주기억장치인 RAM을 보조기억장치로 이용할 경우 시스템의 전원을 항상 유지해야하며, 아울러 이동시에는 본체와 항상 같이 이동해야 하므로 이동성 또한 떨어지게 된다.
이와 같은 문제로 인해 상기 플래시 메모리 및 주기억장치가 많은 장점을 가지고 있음에도 불구하고 보조기억장치로서 널리 사용되지 못하고 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 기존의 보조기억장치와 CPU간의 인터페이스 규약을 그대로 유지하면서 고속의 메모리 액세스를 제공하는 저장장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 대량의 사용자를 대상으로 서비스하는 서버급 컴퓨터에서 고가의 서버를 사용하지 않고도 전체적인 서비스의 품질과 안정성을 높일 수 있는 저장장치를 제공하는데 있다.
본 발명의 또 다른 목적은 기존의 보조기억장치에 비해 적은 비용으로 데이터의 가용성이 뛰어나며, 고성능의 서버를 제공하는데 있다.
도 1 은 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 실시예를 나타낸 구성도
도 2a, 도 2b 는 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 나타낸 흐름도
*도면의 주요부분에 대한 부호의 설명
110 : 메모리 콘트롤러 120 : 인터페이스 콘트롤러
122 : 데이터 버퍼 130 : 더티 버퍼
140 : 백업 콘트롤러 200 : 메모리 모듈
300 : 백업 HDD 400 : 인터페이스 커넥터
상기와 같은 목적을 달성하기 위한 본 발명에 따른 초고속 저장장치의 특징은 한 개 이상의 모듈이 결합되어 데이터를 저장하는 메모리 모듈과, 상기 메모리 모듈에 저장된 데이터를 백업하는 백업 HDD와, 호스트와 상기 메모리 모듈과의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈의 내용이 변화되면 상기 백업 HDD에 기록하는 콘트롤러를 포함하여 구성되는데 있다.
이때, 상기 콘트롤러는 상기 인터페이스 커넥터를 통한 호스트와의 인터페이스에 따라 해당 프로토콜 명령어를 받아서 해독한 후 명령을 수행하기 위한 제어신호를 출력하는 인터페이스 콘트롤러와, 상기 인터페이스 콘트롤러의 제어신호를 입력으로 LBA(Linear Block Addressing)를 해당 메모리 어드레스(address)로 변환하여 상기 메모리 모듈의 메모리 I/O를 수행하는 메모리 콘트롤러와, 상기 호스트에서의 쓰기 명령으로 상기 메모리 모듈의 내용이 변하면 상기 변화된 내용을 읽어서 상기 백업 HDD에 기록하는 백업 콘트롤러를 포함하여 구성되는데 다른 특징이 있다.
상기 백업 콘트롤러는 상기 메모리 모듈의 변화된 내용을 백업하기 위한 상기 백업 HDD(300)의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼를 더 포함하여 구성되는데 또 다른 특징이 있다.
이때, 상기 인터페이스 콘트롤러, 메모리 콘트롤러 및 백업 콘트롤러를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성되는 것이 바람직하다.
그리고 상기 메모리 모듈은 SDRAM, DDRRAM 또는 RDRAM중 적어도 하나 이상으로 구성되는 것이 바람직하다.
상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터를 더 포함하며, 상기 인터페이스 커넥터는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 적어도 어느 하나로 구성되는 것이 바람직하다.
상기 메모리 모듈은 한 개 이상의 모듈이 병렬적으로 구성되는데 다른 특징이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 초고속 저장장치의 특징은 데이터를 저장하는 메모리 모듈과, 메모리 모듈의 데이터를 백업하는 백업 HDD과, 상기 메모리 모듈과 백업 HDD를 제어하는 콘트롤러로 구성되는 초고속 저장장치의 저장 방법에 있어서, 전원이 공급되면 각각의 콘트롤러가 자체 리셋 절차를 수행하고, 상기 백업 HDD에 저장되어 있는 데이터를 순차적으로 읽어 메모리 모듈에 기록하는 초기화 절차 단계와, 호스트로부터 전송되는 명령어를 해독하고, 상기명령이 읽기 명령인지, 쓰기 명령인지, 제어 명령인지를 판단하는 단계와, 상기 판단 결과, 읽기 명령이면 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터를 읽어서 호스트에 전송하는 읽기 수행 단계와, 상기 판단 결과, 쓰기 명령이면, 호스트로부터 데이터를 전송받아 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD에 기록하는 쓰기 수행 단계와, 상기 판단 결과, 제어 명령이면 제어 명령에 따른 동작을 제어하는 제어 수행 단계를 포함하여 이루어지는데 있다.
이때, 상기 읽기 수행 단계는 호스트로부터 읽기 명령이 전송되면 해당 명령어를 해독한 후, LBA 값과 섹터개수를 검출하는 단계와, 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하여 상기 메모리 모듈에서 원하는 해당 데이터를 읽는 단계와, 상기 읽어진 해당 데이터를 호스트로 전송하는 단계를 포함하여 이루어지는데 다른 특징이 있다.
그리고 상기 쓰기 수행 단계는 호스트로부터 쓰기 명령이 전송되면 해당 명령어를 해독한 후, 상기 호스트로부터 전송된 데이터를 제 1 버퍼에 저장하는 단계와, 데이터가 상기 제 1 버퍼에 모두 저장되면 LBA값과 섹터개수를 검출하는 단계와, 상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하고 상기 제 1 버퍼에 저장된 데이터를 상기 메모리 모듈의 해당 위치에 기록하는 단계와, 상기 LBA값을 제 2 버퍼에 기록하고 호스트에 기록 완료 회답(reply)을 전송하는 단계와, 상기 제 2 버퍼를 모니터링하여 LBA 값이 기록되면 실시간으로 상기 메모리 모듈에서 해당 데이터를 읽어서 백업 HDD의 소정 영역에 저장하는 단계를 포함하여 이루어지는데 또 다른 특징이 있다.
본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치 및 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1 은 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 실시예를 나타낸 구성도이다.
도 1을 보면, 한 개 이상의 모듈이 병렬적으로 형성되어 데이터를 저장하는 메모리 모듈(200)과, 전원 차단 및 이동을 대비하여 상기 메모리 모듈(200)에 저장된 데이터를 백업하는 백업 HDD(300)와, 호스트와의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈(200)의 내용이 변화되면 상기 백업 HDD에 기록하도록 제어하는 콘트롤러(100)로 구성된다.
이때, 상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터(400)를 더 포함하여 구성된다.
그리고 상기 콘트롤러(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)로 구성된다.
이때, 상기 백업 콘트롤러(140)는 상기 메모리 모듈(200)의 변화된 내용을 백업하기 위한 상기 백업 HDD(300)의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼(130)를 더 포함하여 구성하고 있다.
그리고 상기 각 콘트롤러들(110)(120)(140)은 기존 ATAPI-7이나 Ultra320 SCSI 인터페이스의 표준을 준수하기 위해서 1ns 단위로 고속의 데이터 프로세싱을 수행해야 하므로, 전통적인 전자회로처럼 독립적인 IC를 기판에 실장하여 동작시키는 것은 불가능하다. 따라서 이런 고속 데이터 프로세싱을 위해 상기 인터페이스 콘트롤러(120), 메모리 콘트롤러(110) 및 백업 콘트롤러(140)를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성하는 것이 바람직하다.
또한, 고속의 데이터 프로세싱을 위해 상기 인터페이스 커넥터(400)는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 하나를 사용한다.
그리고 상기 LBA는 백업 HDD(300)에서 특정한 섹터를 찾기 위해 통상적으로 사용되는 방식중의 하나로 크게 CHS(Cylinder Head Sector) 방식과 LBA(Linear Block Addressing) 방식이 있다.
상기 CHS 방식은 호스트가 직접 백업 HDD(300)의 실린더, 헤드, 섹터의 값을 지정하여 엑세스하는 방식이고, 상기 LBA 방식은 각각의 섹터에 일련번호를 부여하여 마치 연속된 섹터가 있는 것처럼 간주하여 호스트에서는 LBA 값만 지정하면 이 값을 실제적인 CHS 값으로 변환하여 엑세스하는 방식이다.
이때, 상기 CHS값은 각 하드디스크마다 고유 파라메터가 달라서 엑세스가 번거로우므로, 본 발명에서는 바람직한 실시예로 LBA 방식을 사용한다.
그리고 상기 메모리 모듈(200)은 SDRAM, DDRRAM, RDRAM 등으로 구성되며, 자체적인 램 보드를 이용하는 서버급의 컴퓨터를 제외한 대부분의 표준화된 모듈의 형태로 사용된다. 본 발명에서는 상기 메모리 모듈(200)을 바람직한 실시예로서 현재 시장에서 가장 많이 사용되는 DDRRAM으로 사용한다.
이때, 상기 DDRRAM은 PC2100과 PC2700이라는 규격에 따라 184핀의 모듈 형태로 제공되며, 64비트(bit)의 대역폭(bandwidth)으로 각각 2.1GB/sec, 2.7GB/sec의 데이터 전송 속도를 제공한다.
아울러 내부적으로 상기 메모리 콘트롤러(110)는 다수의 모듈을 병렬적으로 장착한 상기 메모리 모듈(200)의 임의의 영역을 읽고 쓰는 역할을 수행한다.
또한, 백업 콘트롤러(140)는 상기 메모리 모듈(200)의 임의의 부분에 내용이 바뀌었을 때 이를 후작업으로 백업 HDD(300)에 변경내용을 반영시켜 전원 차단에 대비하도록 한다.
이와 같이 구성된 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
일반적으로 ATAPI 방식이건, SCSI 방식이건 간에 통신 프로토콜의 핵심은 크게 읽기 명령, 쓰기 명령, 제어 명령으로 분류할 수 있다.
그러나 기존 HDD는 이런 명령을 처리하는 콘트롤러가 HDD 내에 구현되어 있으나, 본 발명에서는 이 역할을 대신하는 인터페이스 콘트롤러(120)를 별도로 설치하여 호스트와의 인터페이스를 담당하는데 그 차이가 있다고 할 수 있다.
도 2a, 2b 는 본 발명에 따른 메모리 디바이스를 이용한 초고속 저장장치의 동작을 나타낸 흐름도 이다.
도 2a, 2b와 같이, 초고속 저장장치의 동작은 크게 초기화 절차 단계(S100)와, 읽기 명령 단계(S200)와, 쓰기 명령 단계(S300)와, 제어 명령 단계(S400)로 이루어진다.
상기 초기화 절차 단계(S100)로 최초에 전원이 공급되면(S110) 메모리 콘트롤러(110), 백업 콘트롤러(140), 그리고 인터페이스 콘트롤러(120) 각각은 자체 리셋 절차를 수행한다(S120).
이어 백업 HDD(300)에 저장되어 있는 데이터의 최초 LBA로부터 마지막 LBA까지를 순차적으로 읽어 메모리 콘트롤러(110)의 제어를 받으며 메모리 모듈(200)에 기록한다(S130).
그리고 이후 호스트에서 요청한 데이터는 항상 상기 메모리 모듈(200)을 통해 읽게 된다.
이와 같이 초기화 절차가 모두 끝나면, 상기 인터페이스 콘트롤러(120)를 통해 호스트로부터 전송되는 명령어가 읽기 명령인지, 쓰기 명령인지, 아니면 제어명령인지를 판단한다(S200).
상기 판단 결과, 읽기 명령인 경우는 특정 LBA부터 몇 개의 섹터를 읽어서 호스트에 전송하는 읽기 명령 단계(S300)를 수행하고, 쓰기 명령인 경우는 호스트로부터 데이터를 전송받아 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD(300)에 기록하는 쓰기 명령 단계(S400)를 수행하고, 제어 명령인 경우는 백업 HDD(300)의 리셋 및 모드 변환 등을 제어하는 제어 명령 단계(S500)를 수행한다.
상기 읽기 명령, 쓰기 명령, 제어 명령의 단계를 좀더 상세히 설명하면 다음과 같다.
상기 읽기 명령 단계(S300)는 먼저, 호스트로부터 읽기 명령이 전송되면 인터페이스 콘트롤러(120)는 해당 명령어를 해독한 후(S310), LBA 값과 섹터개수를 검출하여 메모리 콘트롤러(110)에 전송한다(S320).
그러면, 상기 메모리 콘트롤러(110)는 전송된 LBA 값과 섹터개수를 읽고 이를 물리적인 메모리 어드레스로 변환하여 메모리 모듈(200)에서 원하는 해당 데이터를 읽는다(S330).
그리고 상기 읽어진 해당 데이터를 인터페이스 콘트롤러(120)를 통해 호스트로 전송한다(S340).
상기 쓰기 명령 단계(S400)는 먼저, 호스트로부터 쓰기 명령이 전송되면 인터페이스 콘트롤러(120)는 해당 명령어를 해독한 후(S410), 호스트로부터 전송된 데이터를 데이터 버퍼(121)에 저장한다(S420).
그리고 상기 데이터 전송이 끝나서 모든 데이터가 상기 데이터 버퍼(121)에 저장되면 상기 인터페이스 콘트롤러(120)는 LBA값과 섹터개수를 메모리 콘트롤러(110)에 전송한다(S430).
이어 메모리 콘트롤러(110)는 상기 전송된 LBA 값과 섹터개수를 읽고 이를 물리적인 메모리 어드레스로 변환하여 상기 데이터 버퍼(121)에 저장된 데이터를 상기 메모리 모듈(200)의 해당 위치에 기록한다(S440).
그리고 상기 데이터 버퍼(121)의 데이터가 모두 상기 메모리 모듈(200)에 기록되면 상기 인터페이스 콘트롤러(120)는 해당 LBA값을 더티(dirty) 버퍼(130)에 기록한다(S450).
상기 기록이 완료되면 인터페이스 콘트롤러(120)는 호스트에 기록 완료 회답(reply)을 보내어 호스트가 다음 작업을 수행할 수 있도록 한다(S460).
그리고 백업 콘트롤러(140)는 상기 더티 버퍼(130)를 모니터링하고 있다가 LBA 값이 기록되면 메모리 모듈(200)에서 해당 데이터를 읽어서 상기 백업 HDD(300)의 소정영역에 저장한다(S470).
이는 전원이 차단된 상태에서도 데이터를 유지하기 위해 상기 백업 콘트롤러(140)는 메모리 모듈(200)의 내용이 변환되는 부분을 모니터링하다가 필요한 부분을 실시간으로 백업 HDD(300)에 반영하게 된다.
이때, 상기 메모리 콘트롤러(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 백업의 순으로 실행될 수 있다.
이와 같이 데이터 저장시에 메모리 모듈(200)에 저장하는 것과 백업 HDD(300)에 백업하는 것은 독립적인 콘트롤러가 각각 처리하므로, 메모리 모듈(200)저장, 백업 HDD(300)에 백업이 항상 순차적으로 이루어지지는 않는다.
백업 HDD(300)의 백업 속도가 메모리 모듈(200)에 저장하는 것보다 속도가 느리므로 순간적으로 많은 데이터가 저장될 때는 일단 메모리에만 기록해두고 더티버퍼(121)에 LBA들만 저장하여 두기 때문에 이런 경우 데이터의 백업은 메모리 모듈(200)에 저장된 후 나중에 수행될 수 있다.
상기 데이터가 백업 HDD(300)에 저장이 완료되면 더티 버퍼(130)에 저장된 LBA는 삭제되거나, 또는 다음에 기록되는 LBA에 덮어 씌워지게 된다.
마지막으로 상기 제어 명령 단계(S500)는 먼저, 호스트로부터 쓰기 명령이 전송되면 인터페이스 콘트롤러(120)에서 해당 명령어를 해독한다(S510).
그리고 상기 해독된 제어 명령에 따라 백업 HDD(300)의 리셋 및 모드 변환 등 적절한 동작을 수행한다(S520). 이때, 필요에 따라서는 이 명령어를 메모리 콘트롤러(110)나 백업 콘트롤러(140)에 전달하여 메모리 모듈(200)과 백업 HDD(300)에 제어 명령을 수행한다.
이후 다음 작업이 호스트를 통해 전송되면 상기 과정을 반복 수행한다(S600).
이상에서 설명한 바와 같은 본 발명에 따른 초고속 저장장치 및 방법은 다음과 같은 효과가 있다.
첫째, 기존의 하드디스크와 호스트간의 인터페이스 규약을 그대로 유지하고, 또한 기존의 장비에서 확장이나 교체없이 바로 메모리 디바이스만을 증설하여 고속의 I/O를 제공할 수 있다.
둘째, 기존의 하드디스크에 비해 데이터의 가용성이 뛰어나고 상대적으로 적은 비용으로 고성능 서버의 효과를 발휘할 수 있다.
셋째, 기계적 장치로 되어 있는 하드디스크를 전자적 장치인 다수의 RAM 모듈과 백업용 HDD로 대체함으로써, 기존의 하드디스크보다 20배 이상의 처리속도를 증가시킬 수 있다.
넷째, 메모리 모듈의 단점을 보완하기 위해 백업용 HDD를 운용함으로써, 전원을 항상 유지해야하는 어려움을 해결함과 동시에 전원이 차단되거나 갑작스런 이상이 발생할 경우에도 데이터의 손실을 방지할 수 있어 보다 안정적인 저장장치를 구현할 수 있다.
다섯째, 본체와 인터페이스 케이블로 연결되어 있기 때문에 이동시에 본체와 떨어져서 사용 가능함으로써, 이동성이 뛰어난 효과가 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (13)

  1. 한 개 이상의 모듈이 결합되어 데이터를 저장하는 메모리 모듈과,
    호스트와 상기 메모리 모듈과의 인터페이스를 통해 해당 프로토콜 명령어를 해독하여 명령을 수행하고, 상기 명령에 따라 상기 메모리 모듈의 내용을 읽기/쓰기 하는 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.
  2. 제 1 항에 있어서, 상기 콘트롤러는
    상기 인터페이스 커넥터를 통한 호스트와의 인터페이스에 따라 해당 프로토콜 명령어를 받아서 해독한 후 명령을 수행하기 위한 제어신호를 출력하는 인터페이스 콘트롤러와,
    상기 인터페이스 콘트롤러의 제어신호를 입력으로 LBA(Linear Block Addressing)를 해당 메모리 어드레스(address)로 변환하여 상기 메모리 모듈의 메모리 I/O를 수행하는 메모리 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.
  3. 제 2 항에 있어서,
    상기 인터페이스 콘트롤러, 메모리 콘트롤러를 물리적으로 하나의 집적된 컨트롤러에 모든 회로를 집적한 IC로 구성되는 것을 특징으로 하는 초고속 저장장치.
  4. 제 1 항에 있어서,
    상기 메모리 모듈에 저장된 데이터를 백업하는 백업 HDD를 더 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.
  5. 제 4 항에 있어서,
    상기 호스트에서의 쓰기 명령으로 상기 메모리 모듈의 내용이 변하면 상기 변화된 내용을 읽어서 상기 백업 HDD에 기록하는 백업 콘트롤러를 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.
  6. 제 5 항에 있어서,
    상기 백업 콘트롤러는 상기 메모리 모듈의 변화된 내용을 백업하기 위한 상기 백업 HDD의 해당 섹터의 섹터 번호를 기록하는 더티 버퍼를 더 포함하여 구성하고 있다.
  7. 제 1 항에 있어서,
    상기 메모리 모듈은 SDRAM, DDRRAM 또는 RDRAM중 적어도 하나 이상으로 구성되는 것을 특징으로 하는 초고속 저장장치.
  8. 제 1 항에 있어서,
    상기 호스트와의 인터페이스에 따라 연결 케이블을 연결하는 인터페이스 커넥터를 더 포함하여 구성되는 것을 특징으로 하는 초고속 저장장치.
  9. 제 8 항에 있어서,
    상기 인터페이스 커넥터는 IEEE1394, SCSI 시리즈(series), ATA 시리즈, PCI 시리즈 및 AGP(Acceration Graphic Port) 중 적어도 어느 하나로 구성되는 것을 특징으로 하는 초고속 저장장치.
  10. 제 1 항에 있어서,
    상기 메모리 모듈은 한 개 이상의 모듈이 병렬적으로 구성되는 것을 특징으로 하는 초고속 저장장치.
  11. 데이터를 저장하는 메모리 모듈과, 메모리 모듈의 데이터를 백업하는 백업 HDD과, 상기 메모리 모듈과 백업 HDD를 제어하는 콘트롤러로 구성되는 초고속 저장장치의 저장 방법에 있어서,
    전원이 공급되면 각각의 콘트롤러가 자체 리셋 절차를 수행하고, 상기 백업 HDD에 저장되어 있는 데이터를 순차적으로 읽어 메모리 모듈에 기록하는 초기화 절차 단계와,
    호스트로부터 전송되는 명령어를 해독하고, 상기 명령이 읽기 명령인지, 쓰기 명령인지, 제어 명령인지를 판단하는 단계와,
    상기 판단 결과, 읽기 명령이면 상기 메모리 모듈의 특정 LBA부터 몇 개의섹터를 읽어서 호스트에 전송하는 읽기 수행 단계와,
    상기 판단 결과, 쓰기 명령이면, 호스트로부터 데이터를 전송받아 상기 메모리 모듈의 특정 LBA부터 몇 개의 섹터에 기록하고, 기록된 데이터를 상기 백업 HDD에 기록하는 쓰기 수행 단계와,
    상기 판단 결과, 제어 명령이면 제어 명령에 따른 동작을 제어하는 제어 수행 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.
  12. 제 11 항에 있어서, 상기 읽기 수행 단계는
    호스트로부터 읽기 명령이 전송되면 해당 명령어를 해독한 후, LBA 값과 섹터개수를 검출하는 단계와,
    상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하여 상기 메모리 모듈에서 원하는 해당 데이터를 읽는 단계와,
    상기 읽어진 해당 데이터를 호스트로 전송하는 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.
  13. 제 11 항에 있어서, 상기 쓰기 수행 단계는
    호스트로부터 쓰기 명령이 전송되면 해당 명령어를 해독한 후, 상기 호스트로부터 전송된 데이터를 제 1 버퍼에 저장하는 단계와,
    데이터가 상기 제 1 버퍼에 모두 저장되면 LBA값과 섹터개수를 검출하는 단계와,
    상기 검출된 LBA 값과 섹터개수를 물리적인 메모리 어드레스로 변환하고 상기 제 1 버퍼에 저장된 데이터를 상기 메모리 모듈의 해당 위치에 기록하는 단계와,
    상기 LBA값을 제 2 버퍼에 기록하고 호스트에 기록 완료 회답(reply)을 전송하는 단계와,
    상기 제 2 버퍼를 모니터링하여 LBA 값이 기록되면 실시간으로 상기 메모리 모듈에서 해당 데이터를 읽어서 백업 HDD의 소정 영역에 저장하는 단계를 포함하여 이루어지는 것을 특징으로 하는 초고속 저장방법.
KR10-2002-0067854A 2002-11-04 2002-11-04 초고속 저장장치 및 방법 KR100464788B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0067854A KR100464788B1 (ko) 2002-11-04 2002-11-04 초고속 저장장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0067854A KR100464788B1 (ko) 2002-11-04 2002-11-04 초고속 저장장치 및 방법

Publications (2)

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

Family

ID=37337248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0067854A KR100464788B1 (ko) 2002-11-04 2002-11-04 초고속 저장장치 및 방법

Country Status (1)

Country Link
KR (1) KR100464788B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758589B1 (ko) 2005-07-15 2007-09-18 주식회사 태진인포텍 고속 인터페이스를 이용한 메모리 디스크 장치 및 그제어방법

Families Citing this family (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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298197A (ja) * 1992-04-22 1993-11-12 Uin Syst:Kk メモリ装置およびそのデータ・バックアップ方法
JPH0683708A (ja) * 1992-04-10 1994-03-25 Fujitsu Ltd データ記憶方法及び装置
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
KR19980022122U (ko) * 1996-10-25 1998-07-15 권율 램을 이용한 가상 기억장치
JPH11353120A (ja) * 1998-06-11 1999-12-24 Nec Ibaraki Ltd 磁気ディスク装置およびライトデータのバックアップ方法
JP2001034535A (ja) * 1999-07-21 2001-02-09 Nec Eng Ltd キャッシュメモリ・バックアップシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683708A (ja) * 1992-04-10 1994-03-25 Fujitsu Ltd データ記憶方法及び装置
JPH05298197A (ja) * 1992-04-22 1993-11-12 Uin Syst:Kk メモリ装置およびそのデータ・バックアップ方法
KR19980022122U (ko) * 1996-10-25 1998-07-15 권율 램을 이용한 가상 기억장치
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JPH11353120A (ja) * 1998-06-11 1999-12-24 Nec Ibaraki Ltd 磁気ディスク装置およびライトデータのバックアップ方法
JP2001034535A (ja) * 1999-07-21 2001-02-09 Nec Eng Ltd キャッシュメモリ・バックアップシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758589B1 (ko) 2005-07-15 2007-09-18 주식회사 태진인포텍 고속 인터페이스를 이용한 메모리 디스크 장치 및 그제어방법

Also Published As

Publication number Publication date
KR20040039709A (ko) 2004-05-12

Similar Documents

Publication Publication Date Title
US6772108B1 (en) Raid controller system and method with ATA emulation host interface
EP1960888B1 (en) Optimizing write and wear performance for a memory
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
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 (ja) データ記憶装置の機能試験方法及び機能試験装置
US7069409B2 (en) System for addressing a data storage unit used in a computer
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
US20080005384A1 (en) Hard disk drive progressive channel interface
KR100843199B1 (ko) 고속 아이.디.이. 인터페이스 장치 및 그 방법
KR100464788B1 (ko) 초고속 저장장치 및 방법
JP2006302343A (ja) 情報記録再生装置
US7587538B2 (en) Disk controller, channel interface and methods for use therewith
US20030046499A1 (en) Integrated drive controller for systems with integrated mass storage
US6917490B2 (en) System and method for storing information in a disk drive
US20100153635A1 (en) Storage device with expandable solid-state memory capacity
US20060242359A1 (en) Data storage device
KR100467102B1 (ko) 데이터 저장 시스템
US20070299994A1 (en) Disk controller, host interface module and methods for use therewith
JP2008262565A (ja) データを書き込み及び読み取りするシステム、メモリ装置、方法、およびコンピュータで読み取り可能な媒体
KR102583301B1 (ko) 디램 디바이스 및 그 랭크 매핑 방법과 이를 위한 컴퓨터 프로그램
JP2008158572A (ja) データ記憶装置

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