[go: up one dir, main page]

KR100827287B1 - 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법 - Google Patents

반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법 Download PDF

Info

Publication number
KR100827287B1
KR100827287B1 KR1020070015838A KR20070015838A KR100827287B1 KR 100827287 B1 KR100827287 B1 KR 100827287B1 KR 1020070015838 A KR1020070015838 A KR 1020070015838A KR 20070015838 A KR20070015838 A KR 20070015838A KR 100827287 B1 KR100827287 B1 KR 100827287B1
Authority
KR
South Korea
Prior art keywords
data
memory
controller
backup
backup storage
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020070015838A
Other languages
English (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 주식회사 태진인포텍
Application granted granted Critical
Publication of KR100827287B1 publication Critical patent/KR100827287B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

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

Abstract

본 발명은 호스트와의 인터페이스에서 DMA(Direct Memory Access: DMA) 컨트롤 장치의 데이터 전송 속도를 향상시키며, 저장 매체를 기계식(예를 들어, HDD 및 FDD 등)에서 반도체(메모리)로 대체하여 데이터 저장 속도를 향상시키도록 한 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법에 관한 것으로, 전원을 공급하는 외부 전원부 및 데이터를 저장하고 있는 시스템 주 기억 장치가 연결되어 있는 시스템 버스에 연결되어 있으며, 데이터 저장 수단인 메모리 및 백업용 저장장치를 구비한 반도체 보조 기억 장치에 있어서, 상기 시스템 버스에 연결되어 있으며, 호스트로부터의 명령을 입력받는 호스트 인터페이스부와; 상기 메모리에 데이터를 입출력하는 메모리 컨트롤러와; 상기 백업용 저장장치에 데이터를 입출력하는 백업용 저장장치 컨트롤러와; 상기 호스트 인터페이스부를 통한 호스트로부터의 명령에 따라 상기 메모리 컨트롤러 및 상기 백업용 저장장치 컨트롤러를 제어하여 상기 메모리와 상기 시스템 주 기억 장치 사이에서 데이터를 읽거나 쓰고, 상기 백업용 저장장치와 상기 메모리 사이에서 데이터를 백업/복원하는 DMA 컨트롤 장치와; 상기 외부 전원부로부터의 전원을 상기 호스트 인터페이스부, 메모리 컨트롤러, 백업용 저장장치 컨트롤러 및 상기 DMA 컨트롤 장치에 공급하는 전원 제어부를 포함함으로써, 메모리에 데이터 저장 속도를 향상시켜 주고, 보조 기억 장치가 다른 기능 수행시 중앙처리장치의 부하를 감소시키며, 데이터 백업 속도를 향상시켜 데이터 저장시 신뢰성을 높여주는 효과가 있다.

Description

반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법{Semiconductor Secondary Memory Unit and Data Saving Method Using the Same}
도 1은 본 발명의 실시 예에 따른 반도체 보조 기억 장치의 구성을 도시한 블록도.
도 2는 도 1에 있어서, DMA 컨트롤 장치의 구성을 도시한 블록도.
도 3은 본 발명의 실시 예에 따른 반도체 보조 기억 장치를 이용한 데이터 저장 방법의 순서를 도시한 순서도.
*** 도면의 주요 부분에 대한 부호의 설명 ***
100: 시스템 주 기억 장치 200: 시스템 버스
300: 반도체 보조 기억 장치 310: 호스트 인터페이스
320: DMA 컨트롤 장치 321: 호스트 인터페이스 제어부
322: DMA 상태 레지스터 323: DMA 상태 머신
324: 메모리 컨트롤러 제어부 325: 제1버퍼
326: 제2버퍼 327: 백업용 저장장치 컨트롤러 제어부
328: 제3버퍼 329: 제4버퍼
330: 메모리 컨트롤러 340: 백업용 저장장치 컨트롤러
350: 메모리 360: 백업용 저장장치
370: 전원 제어부 380: 보조 전원부
본 발명은 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법에 관한 것으로, 호스트와의 인터페이스에서 DMA(Direct Memory Access: DMA) 컨트롤 장치의 데이터 전송 속도를 향상시키며, 저장 매체를 기계식(예를 들어, HDD 및 FDD 등)에서 반도체(메모리)로 대체하여 데이터 저장 속도를 향상시키도록 한 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법에 관한 것이다.
일반적으로 반도체 보조 기억 장치는 직접 메모리 접속(이하, DMA라 함) 관련 기능을 보유하고 있다.
DMA는 부착된 주변장치로부터 컴퓨터 마더보드 상의 저장매체로 데이터를 직접 보낼 수 있는 몇몇 컴퓨터의 버스 기능이다.
이러한, DMA 방식은 각종 보조 기억 장치와 주 기억 장치 사이의 데이터 전송시, 중앙처리장치(Central Processing Unit: CPU) 또는 마이크로프로세서(Micro-Processor)에 의해 속도가 제한되는 것을 방지하고자 데이터 전송 경로에서 중앙처 리장치를 제거하고, 주변장치가 직접 메모리 버스를 관리하여 전송 속도를 증가시키는 방식이다. 즉, 중앙처리장치 또는 마이크로프로세서는 데이터 전송에 관여하지 않으므로, 전체적인 컴퓨터 성능이 높아진다.
다시 말하면, DMA 기능 수행 동안 중앙처리장치는 메모리 버스를 제어하지 않고 쉬게 된다.
이를 위하여 보조 기억 장치와의 연결에 있어서 각종 DMA 방식을 스팩(Specification) 상에 정의하고 있다. 이 스팩들은 사용자가 각각의 필요에 맞도록 DMA 엔진(Engine)을 각각 설계할 수 있도록 유연성을 가진다.
이러한 DMA 엔진 중 대표적인 엔진으로는 버퍼 DMA(Buffered DMA) 엔진을 들 수 있다.
버퍼 DMA는 다수의 데이터 프레임에 대한 정보 및 주소를 버퍼 디스크립터(Buffer Descriptor)라는 이름의 구조(Structure)로 관리하며, 버퍼 디스크립터는 링크드 리스트(Linded List)구조로 연결되어 있다.
그러나, 현재까지 나와 있는 보조 기억 장치를 위한 DMA 엔진들은 기본적으로 자화(Magnetization)를 이용한 보조 기억 장치를 위한 것으로 자화되는 속도가 호스트 인터페이스 부분의 속도보다 느리기 때문에, 해당 호스트 인터페이스 쪽의 속도 제어는 개발되지 않고 있다.
한편, 컴퓨터 시스템에서는 대용량의 데이터를 오랜 기간 또는 안전하게 보존하기 위하여 데이터 저장 기술로 데이터 백업(Back-up) 기술을 사용하는데, 이러한 데이터 백업 기술은 중앙처리장치가 일정 시간 또는 공간 등을 지정한 백업 정 책을 설정하고, 이에 따라 보조 기억 장치를 제어하여 저장하는 기술이다.
이러한, 데이터 백업은 중요한 데이터를 지정한 백업 정책에 기인하여 다른 별도의 저장 공간에 사본을 저장하는 것을 말한다.
하지만, 최근 데이터 전송 기술의 발달로 점차 전송해야 할 데이터 용량이 늘어남에 따라 백업 시간이 기하 급수적으로 증가하게 되고, 이에 따라 백업 정책을 잘못 세울 경우 중앙처리장치는 백업을 수행하기 위하여 다른 중요한 작업을 수행할 수 없게 되는 현상이 발생하게 되는 문제점이 있었다.
전술한 바와 같은 문제점을 해결하기 위한 것으로, 본 발명은 호스트와의 인터페이스에서 DMA 컨트롤 장치의 데이터 전송 속도를 향상시키며, 저장 매체를 기계식(예를 들어, HDD 및 FDD 등)에서 반도체(메모리)로 대체하여 데이터 저장 속도를 향상시키도록 한 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법을 제공하는데, 그 목적이 있다.
또한, 본 발명은 보조 기억 장치에서 메모리에 저장된 데이터를 자체적으로 백업함으로써, 보조 기억 장치가 다른 기능 수행시 중앙처리장치의 부하를 감소시키며, 데이터 백업 속도를 향상시켜 데이터 저장시 신뢰성을 높여주도록 하는데, 그 목적이 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 반도체 보조 기억 장치는, 전원을 공급하는 외부 전원부 및 데이터를 저장하고 있는 시스템 주 기억 장치가 연결되어 있는 시스템 버스에 연결되어 있으며, 데이터 저장 수단인 메모리 및 백업용 저장장치를 구비한 반도체 보조 기억 장치에 있어서, 상기 시스템 버스에 연결되어 있으며, 호스트로부터의 명령을 입력받는 호스트 인터페이스부와; 상기 메모리에 데이터를 입출력하는 메모리 컨트롤러와; 상기 백업용 저장장치에 데이터를 입출력하는 백업용 저장장치 컨트롤러와; 상기 호스트 인터페이스부를 통한 호스트로부터의 명령에 따라 상기 메모리 컨트롤러 및 상기 백업용 저장장치 컨트롤러를 제어하여 상기 메모리와 상기 시스템 주 기억 장치 사이에서 데이터를 읽거나 쓰고, 상기 백업용 저장장치와 상기 메모리 사이에서 데이터를 백업/복원하는 DMA 컨트롤 장치와; 상기 외부 전원부로부터의 전원을 상기 호스트 인터페이스부, 메모리 컨트롤러, 백업용 저장장치 컨트롤러 및 상기 DMA 컨트롤 장치에 공급하는 전원 제어부를 포함하여 이루어지는 것을 특징으로 한다.
한편, 본 발명의 실시 예에 따른 반도체 보조 기억 장치를 이용한 데이터 저장 방법은, 전원을 공급하는 외부 전원부 및 데이터를 저장하고 있는 시스템 주 기억 장치가 연결되어 있는 시스템 버스에 연결되어 있으며, 데이터 저장 수단인 메모리 및 백업용 저장장치를 구비한 반도체 보조 기억 장치를 이용한 데이터 저장 방법에 있어서, 상기 외부 전원부로부터의 전원 이상 여부를 확인하여 이상이 없는 경우에, 호스트로부터의 명령을 분석하는 제1과정과; 상기 분석된 명령에 따라 상기 메모리에 데이터를 쓰거나, 또는 상기 메모리로부터 데이터를 읽는 제2과정과; 상기 분석된 명령에 따라 상기 메모리에 기록된 데이터를 상기 백업용 저장장치에 백업시키거나, 상기 백업용 저장장치에 백업된 데이터를 상기 메모리로 복원시키는 제3과정을 포함하여 이루어지는 것을 특징으로 한다.
본 발명의 실시 예에 따른 반도체 보조 기억 장치는 컴퓨터 시스템 내에서 도 1에 도시된 바와 같이, 시스템 주 기억 장치(100)와 시스템 버스(200)를 통해 연결되어 있는 호스트 인터페이스(310)와, DMA 컨트롤 장치(320)와, 메모리 컨트롤러(330)와, 백업용 저장장치 컨트롤러(340)와, 메모리(350)와, 백업용 저장장치(360)와, 전원 제어부(370)를 구비하여 이루어진다.
예를 들어, 상기 백업용 저장장치(360)는 하드디스크(HDD), FDD, MMC, SD 및 PCMCI 등으로 이루어진다.
상기 DMA 컨트롤 장치(320)는 상기 호스트 인터페이스(310), 메모리 컨트롤러(330) 및 백업용 저장장치 컨트롤러(340)와 연결되어 이루어진다. 그리고, 상기 메모리 컨트롤러(330)는 상기 메모리(350)와 연결되어 이루어지며, 상기 백업용 저장장치 컨트롤러(340)는 상기 백업용 저장장치(360)와 연결되어 이루어진다. 그리고, 상기 전원 제어부(370)는 상기 시스템 버스(200) 및 보조 전원부(380)와 연결되어 이루어진다.
상기 호스트 인터페이스(310)는 호스트로부터의 명령을 상기 DMA 컨트롤 장치로 전달하며, 상기 DMA 컨트롤 장치로부터의 정보를 외부 출력하여 호스트에게 제공한다. 즉, 상기 호스트 인터페이스(310) 호스트와의 인터페이스에 따라 물리적인 접속을 지원한다.
예를 들어, 상기 호스트 인터페이스(310)는 호스트와의 인터페이스에 따라 SCSI(Small Computer System Interface), SATA(Serial Advanced Technology Attachment), PCI(Peripheral Component Interconnect), PCI-X 및 PCI Express 등의 물리적인 접속을 지원한다.
상기 DMA 컨트롤 장치(320)는 상기 호스트 인터페이스(310)를 통해 전달받은 호스트로부터의 명령에 따라 상기 메모리 컨트롤러(330)를 제어하여 상기 메모리(350)에 데이터를 읽거나 쓴다.
또한, 상기 DMA 컨트롤 장치(320)는 상기 호스트 인터페이스(310)를 통해 전달받은 호스트로부터의 명령에 따라 백업용 저장장치 컨트롤러(340)를 제어하여 백업용 저장장치(360)에 데이터를 백업/복원시킨다.
이러한, 상기 DMA 컨트롤 장치(320)의 구성을 살펴보면 도 2에 도시된 바와 같이, 호스트 인터페이스 제어부(321), DMA 상태(State) 레지스터(322), DMA 상태 머신(Machine)(323), 메모리 컨트롤러 제어부(324), 제1,2버퍼(325,326), 백업용 저장장치 컨트롤러 제어부(327) 및 제3,4버퍼(328,329)를 구비하여 이루어진다.
상기 호스트 인터페이스 제어부(321)는 상기 호스트 인터페이스(310)를 통해 입력된 호스트로부터의 명령을 분석하여 해당 분석된 명령에 대한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 DMA 상태 머신(323)의 요 청에 따라 상기 시스템 버스(200)의 점유 가능 여부를 확인하고, 상기 시스템 버스(200)의 점유가 가능한 경우에, 상기 시스템 버스(200)를 점유하고 해당 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 접속한 후에, 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 호스트 인터페이스 제어부(321)는 호스트로부터의 명령을 분석하여 해당 분석된 명령이 데이터 쓰기인 경우에, 상기 메모리(350)에 쓸 데이터를 상기 시스템 주 기억 장치(100)로부터 가져와서 상기 제1버퍼(325)에 버퍼링시킨 후에, 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 DMA 상태 머신(323)의 통보에 따라 상기 제2버퍼(326)에 버퍼링된 데이터를 상기 시스템 주 기억 장치(100)에 쓴다.
또한, 상기 호스트 인터페이스 제어부(321)는 호스트로부터의 명령 수행이 완료되면 상기 시스템 버스(200)의 점유를 해제한다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 제2버퍼(326)에 버퍼링된 데이터를 상기 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 쓴다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 메모리(350)로부터 데이터를 읽는 도중에 데이터 읽기 오류 발생 여부를 지속적으로 확인하여, 상기 메모리(350)로부터 데이터 읽기 도중에 오류가 확인되지 않고, 상기 메모리(350)에 데이터 읽기가 완료된 경우에, 데이터 읽기가 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보한다.
여기서, 상기 호스트 인터페이스 제어부(321)에서 상기 메모리(350)로부터 데이터를 읽는 도중에 데이터 읽기 오류 발생 여부를 지속적으로 확인하는 것은, 다시 말해서 상기 호스트 인터페이스 제어부(321)에서 상기 제2버퍼(326)에 버퍼링된 데이터를 상기 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 쓰는 도중에, 데이터 읽기 오류 발생 여부를 지속적으로 확인하는 것을 의미한다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 메모리(350)에 데이터 읽기 도중 오류가 확인된 경우에, 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보한다.
또한, 상기 호스트 인터페이스 제어부(321)는 상기 전원 제어부(370)로부터의 공급 전원 이상 검출 통보에 따라 상기 호스트 인터페이스(320)와의 통신을 차단하고, 자체 백업 명령을 발생시켜 해당 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
상기 DMA 상태 레지스터(322)는 상기 호스트 인터페이스 제어부(321)로부터 데이터 쓰기/읽기/백업/복원 명령에 대한 정보를 전달받아 이를 기록한다.
상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)의 값에 따라 상기 호스트 인터페이스 제어부(321), 메모리 컨트롤러 제어부(324) 및 백업용 저장 장 치 컨트롤러 제어부(327) 등의 각 모듈을 컨트롤하기 위한 명령 신호를 발생시키며, 해당 각 모듈의 상태를 감시한다.
또한, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 명령에 대한 정보에 따라 상기 호스트 인터페이스 제어부(321)와 상기 메모리 컨트롤러 제어부(324), 및 상기 메모리 컨트롤러 제어부(324)와 상기 백업용 저장장치 컨트롤러 제어부(327) 상호 간에 데이터 전송 명령을 한다.
또한, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 시스템 주 기억 장치(100)에 접속하기 위해 상기 호스트 인터페이스 제어부(321)로 상기 시스템 버스(200) 점유 요청을 한다.
또한, 상기 DMA 상태 머신(323)은 상기 호스트 인터페이스 제어부(321)의 통보에 따라 상기 메모리(350)에 쓸 데이터가 상기 제1버퍼(325)에 버퍼링되어 있음을 상기 메모리 컨트롤러 제어부(324)에게 통보한다.
또한, 상기 DMA 상태 머신(323)은 상기 메모리 컨트롤러 제어부(324)에게 메모리(350)로부터 데이터 읽기 요청을 한다.
또한, 상기 DMA 상태 머신(323)은 상기 제2버퍼(326)에 상기 메모리(350)로부터 읽을 데이터가 버퍼링되어 있음을 상기 호스트 인터페이스 제어부(321)에게 통보한다.
또한, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 백업용 저장장치 컨트롤러 제어부(327)에게 데이터를 백업할 백업용 저장장치(360)에게 데이터 입력이 가능한지 여부 확인을 요청한다.
또한, 상기 DMA 상태 머신(323)은 상기 메모리 컨트롤러 제어부(324)에게 메모리(350) 내의 데이터 백업 요청을 한다.
또한, 상기 DMA 상태 머신(323)은 상기 제3버퍼(328)에 상기 메모리(350)로부터 백업할 데이터가 버퍼링되어 있음을 상기 백업용 저장장치 컨트롤러 제어부(327)에게 통보한다.
또한, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 백업용 저장장치 컨트롤러 제어부(327)에게 데이터를 복원할 백업용 저장장치(360)로부터 데이터 출력이 가능한지 여부 확인을 요청한다.
또한, 상기 DMA 상태 머신(323)은 상기 백업용 저장장치 컨트롤러 제어부(327)에게 백업용 저장장치(360) 내의 데이터 복원 요청을 한다.
또한, 상기 DMA 상태 머신(323)은 상기 제4버퍼(329)에 상기 백업용 저장장치(360)로부터 복원할 데이터가 버퍼링되어 있음을 상기 메모리 컨트롤러 제어부(324)에게 통보한다.
상기 메모리 컨트롤러 제어부(324)는 메모리(350)의 종류에 따라 해당 메모리(350)에 연결을 위한 상기 메모리 컨트롤러(330)를 제어한다.
예를 들어, 상기 메모리(350)는 DDR(Dual Data Rate) SDRAM, DDR2 SDRAM, QDR(Quad Data Rate) SDRAM, SRAM, FRAM, PRAM 및 Flash Memory 등으로 이루어진다.
또한, 상기 메모리 컨트롤러 제어부(324)는 상기 DMA 상태 머신(323)의 요청에 따라 데이터를 써넣을 메모리(350)에 데이터 입력이 가능한지 여부를 확인하고, 상기 메모리(350)에 데이터 입력이 가능한 경우에, 상기 제1버퍼(325)에 버퍼링되어 있는 데이터를 상기 메모리(350)에 쓰거나 복원한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 상기 메모리(350)에 데이터를 쓰기/복원 도중에 데이터 쓰기/복원 오류 발생 여부를 지속적으로 확인하여, 상기 메모리(350)에 데이터 쓰기/복원 도중에 오류가 확인되지 않고, 상기 메모리(350)에 데이터 쓰기/복원이 완료된 경우에, 데이터 쓰기/복원이 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 쓰기/복원 관여한 모든 모듈에게 데이터 쓰기가 완료되었음을 통보한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 상기 메모리(350)에 데이터 쓰기/복원 도중에 오류가 확인된 경우에, 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 쓰기/복원에 관여한 모든 모듈에게 데이터 쓰기/복원이 완료되었음을 통보한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 데이터를 읽을 메모리(350)로부터 데이터 출력이 가능한지 여부를 확인하고, 상기 메모리(350)에 데이터 출력이 가능한 경우에, 상기 메모리(350)로부터 읽을 데이터를 가져와서 이를 상기 제2버퍼(326)에 버퍼링시킨 후에, 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 데이터를 백업할 메모리(350)의 데이터 출력 가능 여부를 확인하여, 상기 메모리(350)부로부터 데이터 출력이 가능한 경우에, 상기 메모리(350)로부터 백업할 데이터를 가져와서 이를 상기 제3버퍼(328)에 버퍼링시킨 후에, 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 데이터를 복원할 메모리(350)에 데이터 입력이 가능한지 여부를 확인하고, 상기 메모리(350)에 데이터 입력이 가능한 경우에, 상기 메모리(350)에 데이터 복원이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 메모리 컨트롤러 제어부(324)는 상기 DMA 상태 머신(323)의 통보에 따라 상기 제4버퍼(329)에 버퍼링된 데이터를 상기 메모리(350)로 복원시킨다.
상기 백업용 저장장치 컨트롤러 제어부(327)는 각종 백업을 위한 저장장치를 위한 인터페이스를 컨트롤하는 백업용 저장장치 컨트롤러(340)를 제어한다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 일정 시간 간격으로 자체적으로 백업 명령을 발생하여 이를 상기 DMA 상태 레지스터에 기록한다.
예를 들어, 상기 백업용 저장장치 컨트롤러(340)는 마이크로프로세서로 이루어지기 때문에, 중앙처리장치와 같은 외부로부터의 영향을 받지 않고, 독립적으로 백업을 수행할 수 있다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 백업용 저장장치(360)에 데이터 입력이 가능한지 여부를 확인하여, 상기 백업용 저장장치(360)에 데이터 입력이 가능한 경우에, 상기 백업용 저장장치(360)에 데이터 백업이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 통보에 따라 상기 제3버퍼(328)에 버퍼링된 데이터를 상기 백업용 저장 장치(360)로 백업시킨다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 데이터 백업 오류 발생 여부를 지속적으로 확인하여, 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 오류가 확인되지 않고, 상기 백업용 저장장치(360)에 데이터 백업이 완료된 경우에, 데이터 백업이 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보한다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 오류가 확인된 경우에, 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보한다.
또한, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 백업용 저장장치(360)로부터 데이터 출력이 가능한지 여부를 확인하고, 상기 백업용 저장장치(360)로부터 데이터 출력이 가능한 경우에, 상기 백업용 저장장치(360)로부터 데이터 복원이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
또한, 상기 백업용 저장장치 컨트롤러(340)는 백업용 저장장치(360)로부터 복원할 데이터를 가져와서 이를 상기 제4버퍼(329)에 버퍼링시킨 후에, 이에 대하 여 상기 DMA 상태 머신(323)에게 통보한다.
상기 제1,2버퍼(325,326)는 상기 호스트 인터페이스 제어부(321)와 상기 메모리 컨트롤러 제어부(324)사이에서 데이터 전송시 버퍼링을 통해 빠른 데이터 전송 및 전송 동기화를 제공한다.
또한, 상기 제1버퍼(325)는 상기 호스트 인터페이스 제어부(321)로부터 데이터를 전달받아 이를 버퍼링하고, 해당 버퍼링된 데이터를 상기 메모리 컨트롤러 제어부(324)로 전달한다.
또한, 상기 제2버퍼(326)는 상기 메모리 컨트롤러 제어부(324)로부터 데이터를 전달받아 이를 버퍼링하고, 해당 버퍼링된 데이터를 상기 호스트 인터페이스 제어부(321)로 전달한다.
상기 제3,4버퍼(328,329)는 상기 메모리 컨트롤러 제어부(324)와 상기 백업용 저장장치 컨트롤러 제어부(327) 사이에서 데이터 전송시 버퍼링을 통해 빠른 데이터 전송 및 전송 동기화를 제공한다.
또한, 상기 제3버퍼(328)는 상기 메모리 컨트롤러 제어부(324)로부터 데이터를 전달받아 이를 버퍼링하고 해당 버퍼링된 데이터를 상기 백업용 저장장치 컨트롤러 제어부(327)로 전달한다.
또한, 상기 제4버퍼(329)는 상기 백업용 저장장치 컨트롤러 제어부(327)로부터 데이터를 전달받아 이를 버퍼링하고 해당 버퍼링된 데이터를 상기 메모리 컨트롤러 제어부(324)로 전달한다.
상기 메모리 컨트롤러(330)는 상기 DMA 컨트롤 장치(320)의 제어에 따라 상 기 메모리(350)에 저장되어 있는 데이터를 가져와서 상기 DMA 컨트롤 장치(320)에게 제공한다.
또한, 상기 메모리 컨트롤러(330)는 상기 DMA 컨트롤 장치(320)의 제어에 따라 상기 메모리(350)에 데이터를 기록한다.
상기 백업용 저장장치 컨트롤러(340)는 상기 DMA 컨트롤 장치(320)의 제어에 따라 상기 백업용 저장장치(360)에 저장되어 있는 데이터를 가져와서 상기 DMA 컨트롤 장치(320)에게 제공한다.
또한, 상기 백업용 저장장치 컨트롤러(340)는 상기 DMA 컨트롤 장치(320)의 제어에 따라 상기 백업용 저장장치(360)에 데이터를 백업한다.
상기 전원 제어부(370)는 상기 시스템 버스(200)를 통해 외부 전원부(미도시)로부터의 전원을 공급받아 이를 상기 호스트 인터페이스(310), DMA 컨트롤 장치(320), 메모리 컨트롤러(330) 및 백업용 저장장치 컨트롤러(340)로 각각 공급한다.
또한, 상기 전원 제어부(370)은 상기 외부 전원부로부터의 공급 전원의 이상 여부를 확인하여 공급 전원 이상 검출시 이를 상기 DMA 컨트롤 장치(320)로 통보하며, 상기 보조 전원부(380)로부터 상기 호스트 인터페이스(310), DMA 컨트롤 장치(320), 메모리 컨트롤러(330) 및 백업용 저장장치 컨트롤러(340)로 각각 공급해야할 전원을 공급받는다.
구체적으로는, 상기 전원 제어부(370)는 상기 외부 전원부로부터 공급되는 전원의 이상 여부를 확인하여 이상 상태 검출시 이를 상기 DMA 컨트롤 장치(320)의 호스트 인터페이스 제어부(321)에게 통보한다.
또한, 상기 보조 전원부(380)는 충전식 배터리로 이루어지며, 평상시 상기 외부 전원부의 전원을 이용하여 일정 전압을 유지하도록 자체적으로 자신을 충전시킨다.
상술한 바와 같은 구성에 있어서, 본 발명의 실시 예에 따른 반도체 보조 기억 장치를 이용한 데이터 저장 방법을 도 3에 도시된 도면을 참조하여 설명하면 다음과 같다.
먼저, 상기 반도체 보조 기억 장치(300)에 있어서, 상기 시스템 버스(200)를 통해 외부 전원부로부터 전원을 공급받는 중에 해당 공급 전원에 이상이 없는 경우에, 상기 DMA 컨트롤 장치(320), 메모리 컨트롤러(330), 백업용 저장장치 컨트롤러(340)는 상기 전원 제어부(370)로부터 전원을 공급받음과 동시에, 각각 자체 리셋(초기화)을 수행한다(단계 S31).
예를 들어, 상기 전원 제어부(370)는 상기 외부 전원부로부터의 공급 전원의 전압이 기준 전압(예를 들어, 4.7V) 이하로 떨어지는 경우를 전원 이상으로 간주하게 된다.
이후에, 호스트가 데이터 쓰기/읽기/백업/복원 명령을 상기 호스트 인터페이스(310)를 통해 입력하면, 상기 호스트 인터페이스(310)는 해당 입력받은 명령을 상기 호스트 인터페이스 제어부(321)로 전달한다.
그러면, 상기 호스트 인터페이스 제어부(321)는 상기 호스트 인터페이 스(310)를 통해 입력받은 명령을 분석한다.
구체적으로 설명하면, 상기 호스트 인터페이스 제어부(321)는 상기 호스트 인터페이스(310)를 통해 입력받은 명령이 호스트와 상기 메모리(350) 사이에서 데이터 읽기/쓰기에 관한 것인지, 아니면 상기 메모리(350)와 백업용 저장장치(360) 사이에서 데이터 백업/복원에 관한 것인지를 확인한다(단계 S32).
이때, 상기 명령이 호스트와 메모리(350) 사이에서 데이터 읽기/쓰기에 관한 것인 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령이 호스트와 메모리(350) 사이에서 데이터 읽기인지 또는 쓰기인지를 확인한다(단계 S33).
그 결과로, 상기 명령이 호스트와 메모리(350) 사이에서 데이터 쓰기에 해당하는 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
이에, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 시스템 주 기억 장치(100)에 접속하기 위해 상기 호스트 인터페이스 제어부(321)로 상기 시스템 버스(200) 점유 요청을 한 후에(단계 S34), 그 결과를 기다린다. 즉, 상기 DMA 상태 머신(323)은 상기 호스트 인터페이스 제어부(321)로부터의 상기 시스템 버스(200) 점유 응답을 기다린다.
여기서, 상기 DMA 상태 머신(323)은 상기 호스트 인터페이스 제어부(321)로부터의 상기 시스템 버스(200) 점유 응답을 받을 때까지 기다리면서, 상기 메모리(350)에 쓸(Write) 데이터의 데이터량과 블록 사이즈를 계산하고, 데이터 쓰기를 위한 호스트와 메모리(350) 사이의 데이터 통신 연결을 준비한다. 즉, 상기 호스트 인터페이스 제어부(321)와 상기 메모리 컨트롤러 제어부(324) 사이의 통신을 연결한다.
이에, 상기 호스트 인터페이스 제어부(321)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 시스템 버스(200)의 점유 가능 여부를 확인한다(단계 S35). 즉, 상기 시스템 버스(200)가 다른 시스템에 의해 사용중인지를 확인한다.
이때, 상기 시스템 버스(200)의 점유가 가능한 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 시스템 버스(200)를 점유하고 해당 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 접속하여 상기 메모리(350)에 쓸 데이터를 가져와서 이를 상기 제1버퍼(325)에 버퍼링시킨 후에(단계 S36), 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 제1버퍼(325)에 메모리(350)에 쓸 데이터가 버퍼링되어 있음을 상기 메모리 컨트롤러 제어부(324)에게 통보한다.
그러면, 상기 메모리 컨트롤러 제어부(324)는 데이터를 써넣을 메모리(350)에 데이터 입력이 가능한지 여부를 확인한다(단계 S37). 즉, 상기 메모리 컨트롤러 제어부(324)는 해당 데이터를 써넣을 메모리(350)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 메모리(350)에 데이터 입력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 메모리 컨트롤러 제어부(324)는 상기 제1버퍼(325)에 버퍼링되어 있는 데이터를 상기 메모리(350)에 쓴다(단계 S38).
여기서, 상기 메모리 컨트롤러 제어부(324)는 상기 메모리(350)에 데이터를 쓰는 도중에 데이터 쓰기 오류 발생 여부를 지속적으로 확인한다(단계 S39).
이때, 상기 메모리(350)에 데이터 쓰기 도중에 오류가 확인되지 않은 경우에, 상기 메모리(350)에 데이터 쓰기가 완료되었는지를 확인한 후(단계 S40), 완료된 경우에, 상기 메모리 컨트롤러 제어부(324)는 데이터 쓰기가 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 쓰기에 관여한 모든 모듈에게 데이터 쓰기가 완료되었음을 통보한 후에, 상기 시스템 버스(200)의 점유를 해제하고(단계 S41), 초기 단계 제31단계(S31)로 돌아간다.
반면에, 상기 메모리(350)에 데이터 쓰기 도중에 오류가 확인된 경우에, 상기 메모리 컨트롤러 제어부(324)는 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 쓰기에 관여한 모든 모듈에게 데이터 쓰기가 완료되었음을 통보한 후에, 상기 시스템 버스(200)의 점유를 해제하고(단계 S41), 초기 단계 제31단계(S31)로 돌아간다.
만일, 상기 명령이 호스트와 메모리(350) 사이에서 데이터 읽기에 해당하는 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
이에, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 시스템 주 기억 장치(100)에 접속하기 위해 상기 호스트 인터페이스 제어부(321)로 상기 시스템 버스(200) 점유 요청을 한 후에(단계 S42), 그 결과를 기다린다. 즉, 상기 DMA 상태 머신(323)은 상기 호스트 인터페이스 제어부(321) 로부터의 상기 시스템 버스(200) 점유 응답을 기다린다.
여기서, 상기 DMA 상태 머신(323)은 상기 호스트 인터페이스 제어부(321)로부터의 상기 시스템 버스(200) 점유 응답을 받을 때까지 기다리면서, 상기 메모리(350)에 쓸(Write) 데이터의 데이터량과 블록 사이즈를 계산하고, 데이터 쓰기를 위한 호스트와 메모리(350) 사이의 데이터 통신 연결을 준비한다. 즉, 상기 호스트 인터페이스 제어부(321)와 상기 메모리 컨트롤러 제어부(324) 사이의 통신을 연결한다.
이에, 상기 호스트 인터페이스 제어부(321)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 시스템 버스(200)의 점유 가능 여부를 확인한다(단계 S43). 즉, 상기 시스템 버스(200)가 다른 시스템에 의해 사용중인지를 확인한다.
이때, 상기 시스템 버스(200)의 점유가 가능한 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 시스템 버스(200)를 점유하고, 해당 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 접속한 후에(단계 S44), 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 메모리 컨트롤러 제어부(324)에게 메모리(350)로부터 데이터 읽기 요청을 한다.
이에, 상기 메모리 컨트롤러 제어부(324)는 데이터를 읽을 메모리(350)로부터 데이터 출력이 가능한지 여부를 확인한다(단계 S45). 즉, 상기 메모리 컨트롤러 제어부(324)는 해당 데이터를 읽을 메모리(350)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 메모리(350)에 데이터 출력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 메모리 컨트롤러 제어부(324)는 메모리(350)로부터 읽을 데이터를 가져와서 이를 상기 제2버퍼(326)에 버퍼링시킨 후에(단계 S46), 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 제2버퍼(326)에 상기 메모리(350)로부터 읽을 데이터가 버퍼링되어 있음을 상기 호스트 인터페이스 제어부(321)에게 통보한다.
그러면, 상기 호스트 인터페이스 제어부(321)는 상기 제2버퍼(326)에 버퍼링된 데이터를 상기 점유된 시스템 버스(200)를 통해 상기 시스템 주 기억 장치(100)에 쓴다(단계 S47).
여기서, 상기 호스트 인터페이스 제어부(321)는 상기 메모리(350)로부터 데이터를 읽는 도중에 데이터 읽기 오류 발생 여부를 지속적으로 확인한다. 즉, 상기 메모리(350)로부터 읽어온 데이터를 상기 시스템 주 기억 장치(100)에 쓰는 도중에 데이터 읽기 오류 발생 여부를 지속적으로 확인한다(단계 S48).
이때, 상기 메모리(350)로부터 데이터 읽기 도중에 오류가 확인되지 않은 경우에, 상기 메모리(350)에 데이터 읽기가 완료되었는지를 확인한 후(단계 S49), 완료된 경우에, 상기 호스트 인터페이스 제어부(321)는 데이터 읽기가 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보한 후에, 상기 시스템 버스(200)의 점유를 해제하고(단계 S50), 초기 단계 제31단 계(S31)로 돌아간다.
반면에, 상기 메모리(350)에 데이터 읽기 도중에 오류가 확인된 경우에, 호스트 인터페이스 제어부(321)는 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보한 후에, 상기 시스템 버스(200)의 점유를 해제하고(단계 S50), 초기 단계 제31단계(S31)로 돌아간다.
한편으로, 상기 명령이 메모리(350)와 백업용 저장장치(360) 사이에서 데이터 백업/복원에 관한 것인 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령이 메모리(350)와 백업용 저장장치(360) 사이에서 데이터 백업 또는 복원에 관한 것인지를 확인한다(단계 S51).
그 결과로, 상기 명령이 메모리(350)와 백업용 저장장치(360) 사이에서 데이터 백업에 해당하는 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
이에, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 백업용 저장장치 컨트롤러 제어부(327)에게 상기 백업용 저장장치(360)에 데이터 입력이 가능한지 여부 확인을 요청한다.
이에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 백업용 저장장치(360)에게 데이터 입력이 가능한지 여부를 확인한다(단계 S52). 즉, 상기 백업용 저장장치 컨트롤러 제어부(327)는 해당 데이터를 백업할 백업용 저장장치(360)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 백업용 저장장치(360)에 데이터 입력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 백업용 저장장치(360)에 데이터 백업이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 메모리 컨트롤러 제어부(324)에게 메모리(350) 내의 데이터 백업 요청을 한다(단계 S53).
이에, 상기 메모리 컨트롤러 제어부(324)는 데이터를 백업할 메모리(350)로부터 데이터 출력이 가능한지 여부를 확인한다(단계 S54). 즉, 상기 메모리 컨트롤러 제어부(324)는 해당 데이터를 백업할 메모리(350)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 메모리(350)에 데이터 출력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 메모리 컨트롤러 제어부(324)는 메모리(350)로부터 백업할 데이터를 가져와서 이를 상기 제3버퍼(328)에 버퍼링시킨 후에(단계 S55), 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 제3버퍼(328)에 상기 메모리(350)로부터 백업할 데이터가 버퍼링되어 있음을 상기 백업용 저장장치 컨트롤러 제어부(327)에게 통보한다.
그러면, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 제3버퍼(328)에 버퍼링된 데이터를 상기 백업용 저장장치(360)로 백업시킨다(단계 S56).
여기서, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 데이터 백업 오류 발생 여부를 지속적으로 확인한다(단계 S57).
이때, 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 오류가 확인되지 않은 경우에, 상기 백업용 저장장치(360)에 데이터 백업이 완료되었는지를 확인한 후(단계 S58), 완료된 경우에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 데이터 백업이 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보한 후에, 초기 단계 제31단계(S31)로 돌아간다.
반면에, 상기 백업용 저장장치(360)에 데이터를 백업하는 도중에 오류가 확인된 경우에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보한 후에, 초기 단계 제31단계(S31)로 돌아간다.
만일, 상기 명령이 메모리(350)와 백업용 저장장치(360) 사이에서 데이터 복원에 해당하는 경우에, 상기 호스트 인터페이스 제어부(321)는 상기 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
이에, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정 보에 따라 상기 백업용 저장장치 컨트롤러 제어부(327)에게 데이터를 복원할 백업용 저장장치(360)로부터 데이터 출력이 가능한지 여부 확인을 요청한다.
이에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 백업용 저장장치(360)로부터 데이터 출력이 가능한지 여부를 확인한다(단계 S59). 즉, 상기 메모리 컨트롤러 제어부(324)는 해당 데이터를 복원할 백업용 저장장치(360)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 백업용 저장장치(360)로부터 데이터 출력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 백업용 저장장치(360)로부터 데이터 복원이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 메모리 컨트롤러 제어부(324)에게 메모리(350)에 데이터 복원하기 위한 데이터 복원 요청을 한다(단계 S60).
그러면, 상기 메모리 컨트롤러 제어부(324)는 데이터를 복원할 메모리(350)에 데이터 입력이 가능한지 여부를 확인한다(단계 S61). 즉, 상기 메모리 컨트롤러 제어부(324)는 해당 데이터를 복원할 메모리(350)가 이전 명령에 의한 데이터 입출력이 진행중인지를 확인한다.
이때, 상기 메모리(350)에 데이터 입력이 가능한 경우에, 즉 이전 명령에 의한 데이터 입출력 진행중이 아닌 경우에, 상기 메모리 컨트롤러 제어부(324)는 상기 메모리(350)에 데이터 복원이 가능함을 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 백업용 저장장치 컨트롤러 제어부(327)에게 백업용 저장장치(360) 내의 데이터 출력 요청을 한다.
이에, 상기 백업용 저장장치 컨트롤러(340)는 백업용 저장장치(360)로부터 복원할 데이터를 가져와서 이를 상기 제4버퍼(329)에 버퍼링시킨 후에(단계 S62), 이에 대하여 상기 DMA 상태 머신(323)에게 통보한다.
이에, 상기 DMA 상태 머신(323)은 상기 제4버퍼(329)에 상기 백업용 저장장치(360)로부터 복원할 데이터가 버퍼링되어 있음을 상기 메모리 컨트롤러 제어부(324)에게 통보한다.
그러면, 상기 메모리 컨트롤러 제어부(324)는 상기 제4버퍼(329)에 버퍼링된 데이터를 상기 메모리(350)로 복원시킨다(단계 S63).
여기서, 상기 메모리 컨트롤러 제어부(324)는 상기 메모리(350)에 데이터를 복원하는 도중에 데이터 복원 오류 발생 여부를 지속적으로 확인한다(단계 S64).
이때, 상기 메모리(350)에 데이터를 복원하는 도중에 오류가 확인되지 않은 경우에, 상기 메모리(350)에 데이터 복원이 완료되었는지를 확인한 후(단계 S65), 완료된 경우에, 상기 메모리 컨트롤러 제어부(324)는 데이터 복원이 정상적으로 종료되었다는 것을 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 복원에 관여한 모든 모듈에게 데이터 복원이 완료되었음을 통보한 후에, 초기 단계 제31단계(S31)로 돌아간다.
반면에, 상기 메모리(350)에 데이터를 복원하는 도중에 오류가 확인된 경우에, 상기 메모리 컨트롤러 제어부(324)는 해당 확인된 오류의 종류를 분석하고 그 결과를 상기 호스트 인터페이스(310)를 통해 출력하여 호스트에게 통보하고, 해당 데이터 복원에 관여한 모든 모듈에게 데이터 복원이 완료되었음을 통보한 후에, 초기 단계 제31단계(S31)로 돌아간다.
한편, 상기 외부 전원부로부터의 공급 전원에 이상이 있는 경우에, 상기 전원 제어부(370)는 이를 상기 DMA 컨트롤 장치(320)에게 통보하고, 상기 보조 전원부(380)로부터 전원을 공급받아 이를 상기 호스트 인터페이스(310), DMA 컨트롤 장치(320), 메모리 컨트롤러(330) 및 백업용 저장장치 컨트롤러(340)로 각각 공급한다.
구체적으로는, 상기 전원 제어부(370)는 상기 외부 전원부로부터 공급되는 전원의 이상 여부를 확인하여 이상 상태 검출시 이를 상기 DMA 컨트롤 장치(320)의 호스트 인터페이스 제어부(321)에게 통보한다.
그러면, 상기 호스트 인터페이스 제어부(321)는 상기 전원 제어부(370)로부터의 공급 전원 이상 검출 통보에 따라 상기 호스트 인터페이스(320)와의 통신을 차단하고, 자체 백업 수행 명령을 발생시켜 해당 명령에 관한 정보를 상기 DMA 상태 레지스터(322)에 써넣고, 상기 DMA 상태 머신(323)을 구동시킨다.
이에, 상기 DMA 상태 머신(323)은 상기 DMA 상태 레지스터(322)에 기록된 정보에 따라 상기 백업용 저장장치 컨트롤러 제어부(327)에게 상기 백업용 저장장치(360)에 데이터 입력이 가능한지 여부 확인을 요청한다.
이에, 상기 백업용 저장장치 컨트롤러 제어부(327)는 상기 DMA 상태 머신(323)의 요청에 따라 상기 백업용 저장장치(360)에게 데이터 입력이 가능한지 여 부를 확인한다.
즉, 상기 외부 전원부에서의 전원 공급이 중단되거나, 공급 전원의 이상이 발생하는 경우, 상기 메모리(350)에 저장된 데이터를 보호하기 위해 상기 전원 제어부(370)는 상기 보조 전원부(380)로부터 전원을 공급받아 이를 상기 호스트 인터페이스(310), DMA 컨트롤 장치(320), 메모리 컨트롤러(330) 및 백업용 저장장치 컨트롤러(340)로 각각 공급하는 것이다.
이 후에, 상기 제52단계(S52)부터 제56단계(S56)까지의 데이터 백업 단계가 자체적으로 수행된다.
여기서, 상기 외부 전원부에서의 전원 공급의 중단 또는 공급 전원의 이상이 발생하지 않는 경우에는, 상기 전원 제어부(370)에서 상기 보조 전원부(380)로부터의 공급 전원을 차단하고 있으며, 상기 외부 전원부에서의 전원 공급 중단 또는 공급 전원의 이상이 발생하면 이를 검출하여 상기 보조 전원부(380)로부터의 공급 전원 차단을 해제하여 상기 보조 전원부(380)로부터 전원을 공급받는 것임을 잘 이해해야 한다.
이러한, 상기 보조 전원부(380)는 충전식 배터리로 이루어지며, 평상시 상기 외부 전원부의 전원을 이용하여 일정 전압을 유지하도록 자체적으로 자신을 충전시킨다. 예를 들어, 보조 전원부(380)는 충전 전원의 전압을 12V로 유지한다.
다르게는, 상기 백업용 저장장치 컨트롤러 제어부(327)는 일정 시간 간격으로 자체적으로 백업 명령을 발생하여 이를 상기 DMA 상태 레지스터에 기록한다.
이로 인해, 시스템 중앙처리장치(미도시)로부터의 명령의 제어 없이 보조 기억 장치에서 메모리에 저장된 데이터를 자체적으로 백업함으로써, 메모리에 저장된 데이터의 안정성을 확보할 수 있으며, 시스템 중앙처리장치의 부하를 감소시킬 수 있다.
전술한 바와 같은 본 발명에 의하면, 호스트와의 인터페이스에서 DMA(Direct Memory Access: DMA) 컨트롤 장치의 데이터 전송 속도를 향상시키며, 저장 매체를 기계식(예를 들어, HDD 및 FDD 등)에서 반도체(메모리)로 대체하여 데이터 저장 속도를 향상시켜 주는 효과가 있다.
또한, 보조 기억 장치에서 메모리에 저장된 데이터를 자체적으로 백업함으로써, 보조 기억 장치가 다른 기능 수행시 중앙처리장치의 부하를 감소시키며, 데이터 백업 속도를 향상시켜 데이터 저장시 신뢰성을 높여주는 효과가 있다.

Claims (28)

  1. 전원을 공급하는 외부 전원부 및 데이터를 저장하고 있는 시스템 주 기억 장치가 연결되어 있는 시스템 버스에 연결되어 있으며, 데이터 저장 수단인 메모리 및 백업용 저장장치를 구비한 반도체 보조 기억 장치에 있어서,
    상기 시스템 버스에 연결되어 있으며, 호스트로부터의 명령을 입력받는 호스트 인터페이스부와;
    상기 메모리에 데이터를 입출력하는 메모리 컨트롤러와;
    상기 백업용 저장장치에 데이터를 입출력하는 백업용 저장장치 컨트롤러와;
    상기 호스트 인터페이스부를 통한 호스트로부터의 명령에 따라 상기 메모리 컨트롤러 및 상기 백업용 저장장치 컨트롤러를 제어하여 상기 메모리와 상기 시스템 주 기억 장치 사이에서 데이터를 읽거나 쓰고, 상기 백업용 저장장치와 상기 메모리 사이에서 데이터를 백업/복원하는 DMA 컨트롤 장치와;
    상기 외부 전원부로부터의 전원을 상기 호스트 인터페이스부, 메모리 컨트롤러, 백업용 저장장치 컨트롤러 및 상기 DMA 컨트롤 장치에 공급하는 전원 제어부를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치.
  2. 제1항에 있어서,
    상기 외부 전원부로부터의 공급 전원의 이상 여부를 확인하여 공급 전원 이 상 검출시 상기 호스트 인터페이스, DMA 컨트롤 장치, 메모리 컨트롤러 및 백업용 저장장치 컨트롤러로 공급해야할 전원을 상기 전원 제어부에 공급하는 보조 전원부를 더 구비하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치
  3. 제2항에 있어서,
    상기 전원 제어부는, 상기 외부 전원부로부터의 공급 전원 이상 검출시 이를 상기 DMA 컨트롤 장치로 통보하는 것을 특징으로 하는 반도체 보조 기억 장치.
  4. 제3항에 있어서,
    상기 DMA 컨트롤 장치는, 상기 전원 제어부의 통보에 따라 호스트로부터의 명령을 차단하고, 상기 메모리 컨트롤러 및 백업용 저장장치 컨트롤러를 제어하여 상기 메모리에 저장된 데이터를 상기 백업용 저장장치로 백업시키는 것을 특징으로 하는 반도체 보조 기억 장치.
  5. 제1항에 있어서,
    상기 DMA 컨트롤 장치는, 상기 메모리 컨트롤러 및 백업용 저장장치 컨트롤러를 제어하여 일정 시간 간격으로 상기 메모리에 저장된 데이터를 상기 백업용 저 장장치로 백업시키는 것을 특징으로 하는 반도체 보조 기억 장치.
  6. 제1항에 있어서,
    상기 DMA 컨트롤 장치는, 호스트로부터의 명령을 분석하며, 상기 메모리로부터 출력되어 버퍼링된 데이터를 시스템 주 기억 장치에 입력하거나, 또는 시스템 주 기억 장치로부터 데이터를 가져와서 이를 버퍼링하는 호스트 인터페이스 제어부와;
    상기 메모리로부터 출력되어 버퍼링된 데이터를 상기 백업용 저장장치에 입력하거나, 해당 백업용 저장장치로부터 데이터를 출력하여 이를 버퍼링하는 백업용 저장장치 컨트롤러 제어부와;
    상기 백업용 저장장치 컨트롤러 제어부 및 호스트 인터페이스 제어부에서 버퍼링한 데이터를 메모리에 입력하거나, 또는 메모리로부터 데이터를 출력하여 이를 버퍼링하는 메모리 컨트롤러 제어부와;
    상기 호스트 인터페이스 제어부로부터의 명령에 대한 정보를 기록하는 DMA 상태 레지스터와;
    상기 DMA 상태 레지스터에 기록된 명령에 대한 정보에 따라 상기 호스트 인터페이스 제어부와 상기 메모리 컨트롤러 제어부 상호 간, 및 상기 메모리 컨트롤러 제어부와 상기 백업용 저장장치 컨트롤러 제어부 상호 간에 데이터 전송 명령을 하는 DMA 상태 머신과;
    상기 호스트 인터페이스 제어부와 상기 메모리 컨트롤러 제어부 사이, 및 상기 메모리 컨트롤러 제어부와 상기 백업용 저장장치 컨트롤러 제어부 사이에서 데이터 전송시 해당 전송되는 데이터를 버퍼링하는 버퍼부를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치.
  7. 제6항에 있어서,
    상기 호스트 인터페이스 제어부는, 호스트로부터의 명령이 데이터 쓰기/읽기에 관한 것인지, 아니면 데이터 백업/복원에 관한 것인지를 분석하는 것을 특징으 로 하는 반도체 보조 기억 장치.
  8. 삭제
  9. 제6항에 있어서,
    상기 호스트 인터페이스 제어부는, 공급 전원 이상 검출시 상기 호스트 인터페이스부와의 통신을 차단하고, 백업 명령을 자체적으로 발생시켜 이를 상기 DMA 상태 레지스터에 기록하는 것을 특징으로 하는 반도체 보조 기억 장치.
  10. 제6항에 있어서,
    상기 백업용 저장장치 컨트롤러 제어부는, 일정 시간 간격으로 데이터 백업 명령을 발생시켜 이를 상기 DMA 상태 레지스터에 기록하는 것을 특징으로 하는 반도체 보조 기억 장치.
  11. 제10항에 있어서,
    상기 백업용 저장장치 컨트롤러 제어부는, 마이크로프로세서인 것을 특징으로 하는 반도체 보조 기억 장치.
  12. 제6항에 있어서,
    상기 버퍼부는, 상기 호스트 인터페이스 제어부에서 상기 메모리 컨트롤러 제어부로 전송하는 데이터를 버퍼링하는 제1버퍼와;
    상기 메모리 컨트롤러 제어부에서 상기 호스트 인터페이스 제어부로 전송하는 데이터를 버퍼링하는 제2버퍼와;
    상기 메모리 컨트롤러 제어부에서 상기 백업용 저장장치 컨트롤러 제어부로 전송하는 데이터를 버퍼링하는 제3버퍼와;
    상기 백업용 저장장치 컨트롤러 제어부에서 상기 메모리 컨트롤러 제어부로 전송하는 데이터를 버퍼링하는 제4버퍼를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치.
  13. 제1항에 있어서,
    상기 메모리는, DDR(Dual Data Rate) SDRAM, DDR2 SDRAM, QDR(Quad Data Rate) SDRAM, SRAM, FRAM, PRAM 및 Flash Memory로 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치.
  14. 제1항에 있어서,
    상기 백업용 저장장치는, HDD, FDD, MMC, SD 및 PCMCI로 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치.
  15. 전원을 공급하는 외부 전원부 및 데이터를 저장하고 있는 시스템 주 기억 장치가 연결되어 있는 시스템 버스에 연결되어 있으며, 데이터 저장 수단인 메모리 및 백업용 저장장치를 구비한 반도체 보조 기억 장치를 이용한 데이터 저장 방법에 있어서,
    상기 외부 전원부로부터의 전원 이상 여부를 확인하여 이상이 없는 경우에, 호스트로부터의 명령을 분석하는 제1과정과;
    상기 분석된 명령에 따라 상기 메모리에 데이터를 쓰거나, 또는 상기 메모리로부터 데이터를 읽는 제2과정과;
    상기 분석된 명령에 따라 상기 메모리에 기록된 데이터를 상기 백업용 저장장치에 백업시키거나, 상기 백업용 저장장치에 백업된 데이터를 상기 메모리로 복원시키는 제3과정을 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  16. 제15항에 있어서,
    상기 제1과정은, 호스트로부터의 명령이 데이터 쓰기/읽기에 관한 것인지, 아니면 데이터 백업/복원에 관한 것인지를 분석하는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  17. 제15항에 있어서,
    상기 제2과정은, 상기 분석된 명령이 데이터 쓰기인 경우에, 상기 시스템 버스 점유 요청을 하는 단계와;
    상기 점유 가능 여부를 확인하며, 점유 가능한 경우에 상기 시스템 버스를 점유하고 메모리에 쓸 데이터를 버퍼링하는 단계와;
    상기 메모리에 데이터 입력이 가능한지를 확인하며, 가능한 경우에 상기 버퍼링된 데이터를 메모리에 쓰는 단계와;
    상기 메모리에 쓰는 도중에 오류 발생 여부를 확인하며, 오류가 발생하지 않은 경우에, 데이터 쓰기가 완료되었는지를 확인하는 단계와;
    상기 데이터 쓰기가 완료된 경우에, 상기 시스템 버스의 점유를 해제하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  18. 제17항에 있어서,
    상기 데이터 쓰기가 완료되었는지를 확인하는 단계는, 상기 오류가 발생하지 않은 경우에, 데이터 쓰기가 정상적으로 종료되었다는 것을 출력하여 호스트에게 통보하는 단계와;
    상기 데이터 쓰기에 관여한 모든 모듈에게 데이터 쓰기가 완료되었음을 통보하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  19. 제18항에 있어서,
    상기 오류가 발생한 경우에, 해당 발생된 오류의 종류를 분석하고 그 결과를 출력하여 호스트에게 제공하는 단계와;
    상기 데이터 쓰기에 관여한 모든 모듈에게 데이터 쓰기가 완료되었음을 통보하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  20. 제15항에 있어서,
    상기 제2과정은, 상기 분석된 명령이 데이터 읽기인 경우에, 상기 시스템 버스 점유 요청을 하는 단계와;
    상기 점유 가능 여부를 확인하며, 점유 가능한 경우에 상기 시스템 버스를 점유하고 시스템 주 기억 장치에 접속하는 단계와;
    상기 메모리로부터 데이터 출력이 가능한지를 확인하며, 가능한 경우에 상기 메모리로부터 데이터를 가져와서 버퍼링하는 단계와;
    상기 버퍼링된 데이터를 시스템 주 기억 장치에서 읽는 단계와;
    상기 시스템 주 기억 장치가 데이터를 읽는 도중에, 오류 발생 여부를 확인하며, 오류가 발생하지 않은 경우에, 데이터 읽기가 완료되었는지를 확인하는 단계와;
    상기 데이터 읽기가 완료된 경우에, 상기 시스템 버스의 점유를 해제하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데 이터 저장 방법.
  21. 제20항에 있어서,
    상기 데이터 읽기가 완료되었는지를 확인하는 단계는, 상기 오류가 발생하지 않은 경우에, 데이터 읽기가 정상적으로 종료되었다는 것을 출력하여 호스트에게 통보하는 단계와;
    상기 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  22. 제21항에 있어서,
    상기 오류가 발생한 경우에, 해당 발생된 오류의 종류를 분석하고 그 결과를 출력하여 호스트에게 제공하는 단계와;
    상기 데이터 읽기에 관여한 모든 모듈에게 데이터 읽기가 완료되었음을 통보하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  23. 제15항에 있어서,
    상기 제3과정은, 상기 분석된 명령이 데이터 백업인 경우에, 상기 백업용 저장장치에 데이터 입력이 가능한지를 확인하며, 가능한 경우에 상기 메모리 내의 데이터 백업을 요청하는 단계와;
    상기 메모리 내의 데이터 백업 요청에 따라 상기 메모리로부터 데이터 출력이 가능한지를 확인하며, 가능한 경우에 상기 메모리로부터 백업할 데이터를 가져와서 버퍼링하는 단계와;
    상기 버퍼링된 데이터를 백업용 저장장치로 백업하는 단계와;
    상기 백업용 저장장치로 데이터 백업 도중에, 오류 발생 여부를 확인하며, 오류가 발생하지 않은 경우에, 데이터 백업이 정상적으로 종료되었다는 것을 호스트 인터페이스를 통해 출력하여 호스트에게 통보하는 단계와;
    상기 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  24. 제23항에 있어서,
    상기 호스트 인터페이스를 통해 출력하여 호스트에게 통보하는 단계는 상기 오류가 발생한 경우에, 해당 발생된 오류의 종류를 분석하고 그 결과를 출력하여 호스트에게 제공하는 단계와;
    상기 데이터 백업에 관여한 모든 모듈에게 데이터 백업이 완료되었음을 통보하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  25. 제15항에 있어서,
    상기 제3과정은, 상기 분석된 명령이 데이터 복원인 경우에, 상기 백업용 저장장치로부터 데이터 출력이 가능한지를 확인하며, 가능한 경우에 상기 메모리에 데이터 복원을 요청하는 단계와;
    상기 메모리에 데이터 복원 요청에 따라 상기 메모리에 데이터 입력이 가능한지를 확인하며, 가능한 경우에 상기 백업용 저장장치로부터 복원할 데이터를 가져와서 버퍼링하는 단계와;
    상기 버퍼링된 데이터를 상기 메모리로 복원하는 단계와;
    상기 메모리로 데이터 복원 도중에, 오류 발생 여부를 확인하며, 오류가 발생하지 않은 경우에, 데이터 복원이 정상적으로 종료되었다는 것을 호스트 인터페이스를 통해 출력하여 호스트에게 통보하는 단계와;
    상기 데이터 복원에 관여한 모든 모듈에게 데이터 복원이 완료되었음을 통보하는 단계를 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  26. 제25항에 있어서,
    상기 호스트 인터페이스를 통해 출력하여 호스트에게 통보하는 단계는, 상기 오류가 발생한 경우에, 해당 발생된 오류의 종류를 분석하고 그 결과를 출력하여 호스트에게 제공하는 단계와;
    상기 데이터 복원에 관여한 모든 모듈에게 데이터 복원이 완료되었음을 통보하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  27. 제15항에 있어서,
    상기 반도체 보조 기억 장치에 공급되는 전원의 이상 발생시, 상기 호스트로부터의 명령을 차단하는 단계와;
    상기 호스트로부터의 명령을 차단한 후, 보조 전원을 이용하여 구동하며, 백업용 저장장치에 데이터 입력이 가능한지를 확인하고, 가능한 경우에 메모리 내의 데이터 백업을 요청하는 단계와;
    상기 메모리 내의 데이터 백업 요청에 따라 상기 메모리로부터 데이터 출력이 가능한지를 확인하며, 가능한 경우에 상기 메모리로부터 백업할 데이터를 가져와서 버퍼링하는 단계와;
    상기 버퍼링된 데이터를 상기 백업용 저장장치로 백업하는 단계를 더 포함하 여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
  28. 제15항에 있어서,
    상기 호스트로부터의 명령에 상관없이 일정 시간 간격으로 상기 메모리에 저장된 데이터를 상기 백업용 저장장치로 백업시키는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 반도체 보조 기억 장치를 이용한 데이터 저장 방법.
KR1020070015838A 2006-12-29 2007-02-15 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법 Active KR100827287B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060138665 2006-12-29
KR1020060138665 2006-12-29

Publications (1)

Publication Number Publication Date
KR100827287B1 true KR100827287B1 (ko) 2008-05-07

Family

ID=39649602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070015838A Active KR100827287B1 (ko) 2006-12-29 2007-02-15 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법

Country Status (1)

Country Link
KR (1) KR100827287B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100928438B1 (ko) 2008-11-24 2009-11-25 주식회사 태진인포텍 Sas/sata 타입의 스토리지 장치
KR101134069B1 (ko) * 2010-07-19 2012-04-13 주식회사 태진인포텍 멀티 레벨 raid 구조를 위한 하이브리드 저장 시스템
WO2011136480A3 (ko) * 2010-04-13 2012-04-19 주식회사 태진인포텍 반도체 저장장치
WO2012099434A3 (en) * 2011-01-20 2012-11-22 Taejin Info Tech Co., Ltd. Sas-based semiconductor storage device memory disk unit
WO2012124976A3 (en) * 2011-03-14 2012-12-27 Taejin Info Tech Co., Ltd. Hybrid system architecture for random access memory
WO2013015561A1 (en) * 2011-07-22 2013-01-31 Taejin Info Tech Co., Ltd. Semiconductor storage device-based data restoration
WO2013039319A3 (en) * 2011-09-12 2013-05-10 Taejin Info Tech Co., Ltd. Semiconductor storage device having multiple host interface units for increased bandwidth

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204825A (ja) * 1991-10-15 1993-08-13 Internatl Business Mach Corp <Ibm> 直接メモリ・アクセス・コントローラ及び情報処理装置
KR20030085898A (ko) * 2002-05-02 2003-11-07 주식회사 케이티 인터페이스 카드의 양방향 에뮬레이터
KR20040019451A (ko) * 2002-08-26 2004-03-06 삼성전자주식회사 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러
US6874039B2 (en) 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204825A (ja) * 1991-10-15 1993-08-13 Internatl Business Mach Corp <Ibm> 直接メモリ・アクセス・コントローラ及び情報処理装置
US6874039B2 (en) 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
KR20030085898A (ko) * 2002-05-02 2003-11-07 주식회사 케이티 인터페이스 카드의 양방향 에뮬레이터
KR20040019451A (ko) * 2002-08-26 2004-03-06 삼성전자주식회사 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100928438B1 (ko) 2008-11-24 2009-11-25 주식회사 태진인포텍 Sas/sata 타입의 스토리지 장치
WO2010059007A3 (en) * 2008-11-24 2010-08-12 Taejin Infotech Co., Ltd. Storage device of serial attached small computer system interface/serial advanced technology attachment type
WO2011136480A3 (ko) * 2010-04-13 2012-04-19 주식회사 태진인포텍 반도체 저장장치
KR101134069B1 (ko) * 2010-07-19 2012-04-13 주식회사 태진인포텍 멀티 레벨 raid 구조를 위한 하이브리드 저장 시스템
WO2012099434A3 (en) * 2011-01-20 2012-11-22 Taejin Info Tech Co., Ltd. Sas-based semiconductor storage device memory disk unit
KR101209920B1 (ko) * 2011-01-20 2012-12-11 주식회사 태진인포텍 Ssd 메모리 시스템
WO2012124976A3 (en) * 2011-03-14 2012-12-27 Taejin Info Tech Co., Ltd. Hybrid system architecture for random access memory
WO2013015561A1 (en) * 2011-07-22 2013-01-31 Taejin Info Tech Co., Ltd. Semiconductor storage device-based data restoration
KR101317763B1 (ko) * 2011-07-22 2013-10-11 주식회사 태진인포텍 반도체 저장 장치 기반 데이터 복구
WO2013039319A3 (en) * 2011-09-12 2013-05-10 Taejin Info Tech Co., Ltd. Semiconductor storage device having multiple host interface units for increased bandwidth
KR101512742B1 (ko) * 2011-09-12 2015-04-21 주식회사 태진인포텍 향상된 밴드폭을 위한 복수의 호스트 인터페이스 유닛을 갖는 반도체 저장 장치 및 이에 따른 반도체 저장 장치 기반 시스템

Similar Documents

Publication Publication Date Title
JP4041473B2 (ja) マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ
JP4723290B2 (ja) ディスクアレイ装置及びその制御方法
KR100827287B1 (ko) 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
US8826066B2 (en) Information processing apparatus, control method of the information processing apparatus, and recording medium
US7464220B2 (en) Storage apparatus and method of controllng the same
KR101512743B1 (ko) 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템
JP2004038290A (ja) 情報処理システムおよび同システムで用いられるディスク制御方法
US8631198B2 (en) Dynamic cache reduction utilizing voltage warning mechanism
JP2011170589A (ja) ストレージ制御装置、ストレージ装置およびストレージ制御方法
KR20120089214A (ko) Raid 기반 저장소 컨트롤 보드
KR101512741B1 (ko) 반도체 저장 장치를 위한 네트워크 사용 가능 raid 컨트롤러
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
US7421596B2 (en) Disk array system
US9836359B2 (en) Storage and control method of the same
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
US10528275B2 (en) Storage system, storage control device, and method of controlling a storage system
US11385815B2 (en) Storage system
JP5661313B2 (ja) 記憶装置
JP2010204885A (ja) ディスクアレイ装置及びその制御方法
KR20110034436A (ko) 하이브리드 메모리 구조 및 데이터 저장 방법
US8132196B2 (en) Controller based shock detection for storage systems
US8667218B2 (en) Storage apparatus comprising RAID groups of RAID 1 series and control method of writing to RAID group of RAID 1 series
JP6901534B2 (ja) データ記憶装置、制御装置、記憶データ管理方法、及び、プログラム
US8159779B2 (en) Method and apparatus utilizing shock sensors on storage devices
KR20110037092A (ko) 램 및 플래시 인터페이스를 가지는 하이브리드 메모리 구조 및 데이터 저장 방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070215

PA0201 Request for examination
A302 Request for accelerated examination
PA0302 Request for accelerated examination

Patent event date: 20070216

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20070215

Patent event code: PA03021R01I

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20070430

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20070814

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080213

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080428

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080429

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110428

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20120430

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130425

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130425

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140425

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140425

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20150428

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150428

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20160428

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20170522

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20180525

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20190429

Start annual number: 12

End annual number: 12

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20210111

PR0401 Registration of restoration

Patent event code: PR04011E01D

Patent event date: 20210111

Comment text: Registration of Restoration

PR1001 Payment of annual fee

Payment date: 20210112

Start annual number: 13

End annual number: 13

R401 Registration of restoration
PR1001 Payment of annual fee

Payment date: 20210726

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20220413

Start annual number: 15

End annual number: 15

PR1001 Payment of annual fee

Payment date: 20230403

Start annual number: 16

End annual number: 16