KR100441189B1 - Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법 - Google Patents

Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법 Download PDF

Info

Publication number
KR100441189B1
KR100441189B1 KR10-2002-7003752A KR20027003752A KR100441189B1 KR 100441189 B1 KR100441189 B1 KR 100441189B1 KR 20027003752 A KR20027003752 A KR 20027003752A KR 100441189 B1 KR100441189 B1 KR 100441189B1
Authority
KR
South Korea
Prior art keywords
controller
ide
storage device
ata
host
Prior art date
Application number
KR10-2002-7003752A
Other languages
English (en)
Other versions
KR20020048414A (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 네트셀 코포레이션
Publication of KR20020048414A publication Critical patent/KR20020048414A/ko
Application granted granted Critical
Publication of KR100441189B1 publication Critical patent/KR100441189B1/ko

Links

Classifications

    • 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
    • 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/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Bus Control (AREA)

Abstract

RAID 저장 디바이스 제어기(70)는 호스트 시스템 버스에 제어기를 인터페이스하기 위한 호스트 인터페이스(56)를 제공한다. 호스트 인터페이스는, 예를 들어, IDE 디스크 드라이브들과 같은 부착된 저장 디바이스들로부터 격리되어 있으며, 따라서, 실제 부착된 드라이브들이 수 또는 인터페이스 프로토콜에 제한되지 않는다. 다양한 디바이스 포트들이 구현될 수 있으며, 예를 들어, 레벨 3 및 레벨 5와 같은 다양한 RAID 전략들이 사용될 수 있다. 모든 경우에, 호스트 인터페이스는 호스트에 표준의 균일 인터페이스, 즉, ATA 인터페이스(82, 84 및 86)를 제공하며, 바람직하게는 이중 채널 ATA 인터페이스를 제공한다. 호스트 인터페이스는 ATA 단일 또는 이중 채널 인터페이스를 에뮬레이트하고, 제어기에 물리적으로 접속된 디바이스들의 실제 수에 무관하게 채널당 하나 또는 두 개의 부착 IDE 디바이스들을 에뮬레이트한다. 따라서, 예를 들어, PCI 호스트 머신 내의 표준 BIOS를 변화시키지 않고, 다섯 개 또는 일곱 개의 IDE 드라이브들이 RAID 레벨 5로 배치될 수 있다. 따라서, RAID 제어기는 표준 이중 채널 ATA 제어기 보드에 대해 투명하다.

Description

ATA 에뮬레이션 호스트 인터페이스를 가진 RAID 제어기 시스템 및 방법{RAID controller system and method with ATA emulation host interface}
최초의 IBM PC 및 호환 기기들은 대용량 저장 장치용으로 단지 플로피 디스크 드라이브들만을 가지고 있었다. 후속하는 XT 및 AT 모델들은 대용량 데이터 저장 장치용으로 5.25" 고정 디스크들(제거불가)의 접속을 위한 어댑터들을 포함하고 있었다. 이들 원래의 어뎁터들은 판독 신호들과 사전 보상된 기록 신호들(pre-compensated write signals)을 위한 데이터 분리 회로들을 포함하는 드라이브들을 위한 대부분의 로우레벨 제어 신호들을 제공하였다. 어뎁터에 이들 기능들을 포함시키는 것은 한번에 하나씩만 액세스되는 한쌍의 드라이버들의 복제를 회피하였다. 불행히도, 상기 어뎁터상의 5M 비트 판독/기록 채널은 기술 진보에 따라 보다 빠른 드라이버들을 부착하는 것이 불가능하였다.
제어기의 "실시간(real time)" 특성을 드라이브내로 이동시키는 것이 이 문제점을 해결하였다. 집적 구동 전자 기기들(Integrated Drive Electronics) 또는 IDE 드라이브는 드라이브를 판독 또는 기록하고, 로컬 버퍼와 매체 사이에서 데이터를 전송하기 위해 필요한 모든 제어들과 데이터 채널을 통합하고 있다. 제조업자들은 데이터 레이트를 선택할 수도 있다. 새로운 인터페이스인 ATA(AT Attachment with Packet Interface Extension(ATA/ATAP1-4))(IBM AT Attachment Interface)가 호스트 시스템에 대한 데이터 저장 디바이스들의 접속을 위해 정의되었다. 최초의 IDE 인터페이스들은 ISA 버스와 ATA 케이블 커넥터 사이에서의 어드레스 디코딩 및 버퍼링 정도로 구성되었다. 인터페이스 프로토콜은 IDE 디바이스의 레지스터들을 액세스하기 위해 프로그래밍된 입력 및 출력 명령들을 사용하였다. 데이터 전송 방식은 부착된 드라이브들의 전송 레이트들로 스로틀링된(throttled) 호스트 프로세서의 입력 스트링 및 출력 스트링 명령들을 사용하였다. 이들 전송 레이트들은 상기 명세의 최근 개정에서는 초당 16메가바이트에 달하였다. 이는 저장 디바이스상의 버퍼와 ISA 버스 상의 메모리 사이의 전송 레이트였다. 매체와 버퍼 사이의 전송 레이트들은 보다 낮았다.
PCI 버스의 출현과 함께, 인텔사는 PCI IDE 문헌(PCI IDE Controller Specification, Revision 1.0, 3/4/94)을 공개했으며, 이는 PCI 버스에 대한 기존 ISA 버스 기반 호스트 인터페이스의 표준 맵핑을 제공한다. 상기 표준은 이중 IDE 채널 제어기(Dual IDE Channel Controller)를 개시하고 있다. 마스터 및 슬레이브의 한쌍의 디바이스들이 채널들 각각에 부착될 수 있었다. 데이터 전송을 위해서, 디바이스는 여전히 PCI 버스 타겟으로서 액세스되었다.
또한, 인텔사는 버스 마스터 IDE 문헌(Programming Interface for Bus Master IDE Controller, Revision 1.0, 5/16/94)을 공개하였다. 이 문헌은 IDE 채널들내에 DMA 디바이스들을 통합하기 위한 표준을 정의한다. 버스 마스터링 인터페이스는 IDE 채널이 버스 마스터(PCI BUS Initiator)로서 시스템 메모리로 또는 그로부터 PCI 버스를 통해 데이터를 전송하는 것을 허용한다. 32bit/32㎒ PCI 버스에 대한 피크 전송 레이트는 초당 133메가바이트이다.
ATA 명세의 개정은 새로운 전송 모드인 울트라 DMA(Ultra DMA)를 정의했다. 기존 전송 레이트 개선들은, 셋업을 긴밀화하고 케이블상에서의 데이터 전송을 위한 시간 요건을 유지함으로써 얻어져왔다. 초당 16메가바이트에서, 판독 전송 레이트는 판독 스트로브(read strobe)를 발송하고 데이터를 액세스하며 데이터를 반환하는 라운드 트립(round trip)에 의해 크게 제한되었다. 울트라 DMA 프로토콜은 초기에 신호 및 케이블의 모든 전기적 특성들을 보유하고 있었으며, 새로운 프로토콜을 제공하기 위해서 단순히 3개의 신호들의 기능들을 재정의한다. 이 프로토콜에서, 데이터 타이밍을 제공하는 스트로브 신호는 데이터와 동일한 종단(end)으로부터, 즉, 기록을 위한 제어기와 판독을 위한 디바이스에 의해 전송된다. 이 구성에서, 전송 레이트는 케이블의 단일 트랜지션을 위한 케이블 스큐에 의해서만 제한된다. 최초의 UDMA 디바이스들은 프로그래밍된 IO 전송 레이트들을 초당 33메가바이트로 배증시켰다. 후속하는 개정들은 초기 UDMA 전송 레이트를 초당 66메가바이트로 배증시켰지만, 교류 신호와 접지 도전체를 가진 80 도전체 리본 케이블을 사용할 필요가 있었다. 현재의 버전에서는 초당 100 메가바이트의 전송 레이트를 지원한다. 현재는 ATA 병렬 인터페이스가 고속 직렬 링크로 교체되는 중이지만, 먼저, 병렬 속도 증가가 한번 더 이루어질 수도 있다.
문제점
통상적인 퍼스널 컴퓨터는 프로세서, DRAM 인터페이스, 다양한 입력/출력 어뎁터들 및 BIOS ROM을 포함하는 칩셋을 위주로 설계된 마더보드로 구성되어 있다. IO 어댑터들은 일반적으로 IDE 인터페이스를 포함한다. 현 버전의 IDE 제어기들은 한 쌍의 IDE 포트들로 이루어져 있으며, 상기 IDE 포트들 각각은 한쌍의 IDE 저장 디바이스들과 인터페이스할 수 있다. 이들 디바이스들은 통상적으로, 하나 이상의 IDE 하드 디스크들과 CD ROM, DVD ROM 또는 CD WORM 드라이브들을 포함한다. 기본 입력 출력 시스템 또는 BIOS는, PC를 부팅시키고 마더보드상의 어뎁터들에 로우레벨 IO 루틴들을 제공하기 위해 사용되는 프로그램이다. 실질적으로 모든 이런 PC들은 마더보드 BIOS를 사용하여 IDE 하드 디스크로부터 부팅 및 구동될 수 있다.
점차적으로, 퍼스널 컴퓨터들이 소규모 사무실/가정 사무실(SOHO) 시장에서 서버 또는 워크스테이션 용도로 배치되고 있다. 역사적으로, 소형 컴퓨터 시스템 인터페이스(SCSI)를 가진 하드 디스크들은 보다 많은 요구사항을 가진 응용들에 대한 소정의 성능 이득을 제공하였다. 그러나, 최근, IDE 드라이브들로서 제조되는 모든 드라이브들 중 85% 이상에서, SCSI 드라이브들은 성능 이득이 거의 없거나 아예 없고, 현저히 비용이 증가된, 동일한 매체 및 판독/기록 헤드들을 사용하여 구성되는 경향이 있다. 다른 대중적인 대안은 패터슨(Patterson)에 의해 제안된 바와 같은 저가 디스크들의 리던던트 어레이(RAID, Redundant Array Of Inexpensive Disks)이다(디. 패터슨 등, "저가 디스크들의 리던던트 어레이(RAID)용 케이스", Univ. Cal. Report No. UCB/CSD87/391, 1987년 12월). RAID 시스템들은 신뢰성과 성능 관점 모두에 주안점을 둔 것이다. 먼저, 단일 드라이브가 손상되었을 경우 어떠한 데이터도 손실되지 않도록 둘 이상의 드라이브들에 걸쳐 이중적으로 데이터를 저장함으로써 신뢰성이 얻어진다. 두번째로, 어레이의 집합 성능(aggregate performance)으로 인해, 단일 드라이브의 성능에 비해 향상된 성능이 얻어진다. 이중적으로 저장된 데이터의 서로 다른 섹션들이 두 드라이브들로부터 동시에 판독될 수도 있다. 또한, 데이터가 재판독될 때 집합 전송 레이트가 실현될 수 있도록 데이터가 모든 가용 드라이브들에 걸친 스트립들내에 기록될 수도 있다. RAID 어레이 제어기들은 본 발명자의 미국 특허 제 6,018,778 호에 보다 상세히 설명되어 있다.
불행히도, 가용한 다수의 RAID 솔루션들에는 단점들이 존재한다. 로컬 인텔리전스(local intelligence)와, SCSI 디스크 드라이브들의 사용은 RAID 솔루션 중 한 부류의 특징이다. 이 부류는 드라이브들과 제어기 모두에 대하여 매우 고가이기는 하지만 높은 성능을 나타낸다. 다른 대중적인 RAID 솔루션 부류는 임의의 로컬 인텔리전스 또는 버퍼링의 결핍과, IDE 드라이브들의 사용으로 특징지어 진다. 이는 본질적으로 소프트웨어 솔루션이다. 리던던시를 유지하기 위해서, 또는 데이터를 스트라이프(stripe)하기 위해서 드라이브들의 집합을 제어하는데 필요한 소프트웨어는 모두 호스트 시스템상에서 구동되어야만 하며, 이는 시스템 버스와 프로세서상의 디스크 드라이브 오버헤드를 크게 증가시킨다. 따라서, 이 증가된 오버헤드로 인해 감소된 시스템 성능의 비용에서 RAID의 장점들이 얻어진다. 이들 솔루션들 모두는 부가적인 문제점을 공유하고 있다. 이들 RAID 제어기들은 마더보드상의 BIOS에 의해 직접적으로 지원되지 않는다. 부가적인 소프트웨어 드라이버들이 필요하다. 이들 드라이버들은, 예를 들어, 윈도우즈, 윈도우즈 NT, UNIX, LINUX 등의 운영 체제의 기능에 따라 변화될 수도 있으며, 이는 제어기 제조업자들, OEM들, 마케팅 그룹들 및 시스템 조립자들에게 부가적인 부담을 초래한다.
따라서, 호스트 프로세서상에서 실행시키기 위한 특별한 소프트웨어를 필요로 하지 않으면서, 부가적인 소프트웨어 드라이브들이나 BIOS에 대한 변화를 필요로 하지 않는 RAID 저장 디바이스 제어기에 대한 필요성이 남아있다. BIOS에 대한 어떠한 변화도 필요로 하지 않는 RAID 제어기는 ATA 컴플라이언트 인터페이스(ATA compliant interface)를 구현하는 실질적인 모든 표준, 기성품(off-the-shelf) 컴퓨터들과의 "플러그-앤-플레이(plug-and-play)" 호환성의 장점을 갖는다. RAID 제어기는 호스트에 대해 투명(transparent)하며, 디바이스 인터페이스들의 임의의 조합으로 다수의 저장 디바이스들(4개로 제한되지 않음)을 배치하도록 사용될 수 있으며, 호스트에 오버헤드를 부가하지 않고 RAID 미러링(mirroring), 스트립핑 등을 실행할 수 있다. 이와 같은 RAID 제어기는 모든 PC 사용자들에게 저가로, 그리고, 매우 단순한 설치로 RAID 기능을 제공한다.
관련 출원
본 출원은 1999년 9월 22일 출원된 미국 가출원 제 60/156,001 호를 우선권으로 주장하는 연속 출원이다.
기술 분야
본 발명은 컴퓨터 데이터 저장 디바이스 제어기들에 관한 것으로, 특히, ATA 표준 제어기들과 부착된 IDE 디바이스들을 에뮬레이트하는 호스트 인터페이스를 가진 RAID 제어기에 관한 것이다.
도 1은 물리적 및 소프트웨어/레지스터 뷰들을 도시하는 종래의 ATA 이중 채널 제어기 응용의 단순화된 블록도.
도 2a, 도 2b는 본 발명에 따른 ATA 포트 에뮬레이션에 대한 RAID 제어기의 단순화된 블록도.
도 3은 ATA 포트 에뮬레이션에 대한 RAID 제어기의 바람직한 상업적 실시예의 하이레벨 블록도.
도 4는 도 3의 제어기의 ATA 레지스터 파일의 일 구현예를 보다 상세히 도시하는 도면.
본 발명은 표준 IDE 제어기와 IDE 드라이브를 사용하여 소정의 PC 마더보드상에서 부팅 및 구동될 수 있는 모든 운영 체제들과 호환될 수 있는 RAID 제어기를 실현한다. 이는 표준 제어기 및 부착된 드라이브를 에뮬레이트함으로써 이러한 호환성을 달성한다. 예를 들어, 소정의 시스템은 RAID 1에서 한 쌍의 드라이브들을 필요로 하거나, 또는 신뢰성을 위해 "미러링" 구성을 필요로 할 수도 있다. 본 발명에서 설명된 제어기에 접속되었을 때, BIOS는 단일의 매우 신뢰성있는 드라이브가 될 것이다. 또한, 동일한 시스템이 RAID 3 또는 RAID 5 구성 중 어느 하나에 따라 구성된 3개의 드라이브들의 어레이를 필요로 할 수도 있다. 이는 높은 신뢰성을 가진 3개의 드라이브들 중 임의의 한 드라이브의 2배의 전송 레이트를 제공한다. 또한, 본 발명에서, 이 3개의 드라이브들의 어레이는 3개의 드라이브들 중 임의의 한 드라이브의 2배의 용량을 갖고, 높은 신뢰성을 갖는 2배의 전송 레이트를 나타내는 단일 드라이브로서 BIOS에 나타날 것이다. 어떤 경우에, RAID는 BIOS에서 현존하는 드라이브들에 대해 투명하다.
본 발명의 제어기는 표준 2-채널 IDE 제어기를 에뮬레이트한다. 표준 제어기와 마찬가지로, 이는 논리적으로 PCI 버스에 접속되어 있다. 이는 물리적으로 마더보드상에, 바람직하게는 마더보드 칩셋내에 통합되어 있을 수도 있거나, 또는, PCI 슬롯의 플러그-인 카드 상에 배치될 수도 있다. 이것은 표준 제어기에 부착될 수 있는 4개의 디바이스들 모두를 에뮬레이트할 수도 있다. 이들 논리 디바이스들 각각은 제어기에 부착된 물리적 디바이스들의 어레이에 가능한 인터페이스를 제공한다. 본 실시예가 물리적 디바이스들의 부착을 위해 ATA 포트들을 제공하지만, 다른 형태의 인터페이스들 또는 인터페이스들의 조합들이 사용될 수도 있다.
본 발명의 부가적인 목적들 및 장점들은 첨부 도면을 참조로 설명되는 이하의 바람직한 실시예들에 대한 상세한 설명으로부터 명백해질 것이다.
도 1의 상단은 시스템 버스(12)와 저장 디바이스들(14) 사이에 인터페이스를 제공하는 퍼스널 컴퓨터의 ATA 제어기(10)의 통상적인 종래 기술의 응용을 도시하고 있다. 시스템 버스(12)는 PCI 버스이다. 논리적으로는 PCI 버스에 부착되지만, ATA 제어기는 일반적으로 마더보드 칩셋내에 통합된다. 주어진 응용에서, 부가 또는 대용 제어기가 마더보드(도시되지 않음)상의 PCI 버스 슬롯들 중 하나의 슬롯에 플러그식으로 접속될 수도 있다. PCI 버스는 고유 어드레스들이 제어기들 각각에 할당되는 구성 메카니즘을 제공한다. 통상적인 제어기(10)는 1차 및 2차 IDE 커넥터들로서 식별되는 한쌍의 커넥터들(16, 18)에서 종결되는 2개의 채널들을 제공한다. 채널들 각각은 커넥터 및 케이블을 공유하는 한쌍의 저장 디바이스들을 지원한다. 예를 들어, 도 1에서, 2차 채널 케이블(19)은 마스터 저장 디바이스(20)와 슬레이브 저장 디바이스(22)에 접속된다. 다른 드라이브들의 쌍은 유사하게 1차 채널 케이블(24)에 접속된다. 따라서, 2-채널 제어기(10)는 도 1에 도시된 바와 같이 4개의 디바이스들 모두를 지원한다.
도 1의 하단은 PCI 버스로부터 볼 수 있는 바와 같이 IDE 제어기와 드라이브들의 프로그래밍 인터페이스를 도시하고 있다. 각 블록들에 대한 물리적 어드레스는, 이 기술 분야에서 널리 공지되어 있고 상기 언급한 인텔 PCI IDE 제어기 명세 문헌에 설명되어 있는 바와 같이 제어기의 PCI 버스 구성 공간을 통해 할당된다. 다른 상술된 인텔 문헌인 버스 마스터 IDE 제어기를 위한 프로그래밍 인터페이스에서는 버스 마스터 IDE 제어기를 위한 프로그래밍 인터페이스를 설명하고 있다. 이 메카니즘의 표준화에 앞서, 저장 디바이스 데이터는 통상적으로, 데이터 전송을 위해 필요한 로드들(loads)과 스토어들(stores)이 시스템 프로세서에 의해 실행되는 프로그래밍된 I/O를 통해 전달된다. 프로그래밍된 I/O 메카니즘이 여전히 지원되지만, 버스 마스터 인터페이스는 ATA 제어기가 시스템 메모리의 직접 액세스, 즉, DMA를 통해 데이터를 전송할 수 있도록 한다. 버스 마스터 IDE 제어기 문헌은 한쌍의 버스 마스터 제어기들을 지원하는 레지스터의 16바이트 블록을 정의하며, 상기 버스 마스터 제어기들 중 하나는 1차 ATA 채널을 위한 것이고, 하나는 2차 ATA 채널을 위한 것이다. 이 레지스터 블록은 물리적으로 제어기의 일부이다. 이것은 각 채널들과 하나씩 관련되는 두 부분들(30, 32)로 분할되어 있는 것이 도시되어 있다.
ATA 명세는 저장 디바이스들에 대한 프로그래밍 인터페이스를 정의한다. 이 인터페이스는 2개의 레지스터 블록들, 즉, 명령 블록 및 제어 블록으로 구성된다. 명령 블록은 바이트-폭(byte-wide) 레지스터들의 8-바이트 블록이다. 제어 블록은 바이트-폭 레지스터들의 4-바이트 블록이다. 이들 레지스터들을 구현하기 위한 모든 세부 사항들은 ATA 명세에 공개되어 있다.
도 1의 우측은 4 세트의 명령 및 제어 레지스터 블록들을 도시하고 있으며, 하나의 세트가 4개의 부착된 저장 디바이스들 각각에 대응한다. 예를 들어, 한 세트의 레지스터 블록들(36)은 명령 블록(38) 및 대응하는 제어 블록(40)으로 구성된다. 이들 레지스터들은 물리적으로는 도 1의 상단에 도시된 대응하는 저장 디바이스들의 일부이다. 따라서, 레지스터 세트(36)(1차 채널)는 마스터 저장 디바이스(25)에 위치된다. 소정의 저장 디바이스가 부착되어 있지 않은 경우에, 그 명령 및 제어 레지스터 블록들은 프로그래밍 인터페이스에 나타나지 않을 것이다.
또한, ATA 명세는 저장 디바이스들에 의해 지원되는 프로토콜들을 정의하고 있다. 일반적으로, 액세스 명령 및 모든 관련 파라미터들은 명령 블록의 레지스터들에 로딩된다. 그후, 저장 디바이스는 명령을 실행한다. 디바이스 기록을 위해, 먼저 기록 데이터를 요청한다. 프로그래밍된 I/O 동작을 위해, 호스트 프로세서는 시스템 메모리로부터 데이터를 판독하여, 버퍼 내의 16비트 윈도우로서 명령 블록의 일부를 사용하여 디바이스(도시되지 않음) 내의 버퍼에 기록한다. 버스 마스터 DMA 동작을 위해서, ATA 제어기는 그 채널에 대한 버스 마스터 제어기 레지스터 블록의 구성에 기초하여 시스템 메모리로부터 직접적으로 데이터를 액세스한다. 그후, 저장 디바이스가 매체와 그 로컬 버퍼 사이에서 데이터를 전송하는 저장 매체를 액세스한다. 매체 판독을 위해서, 그후, 로컬 버퍼내의 데이터가 상술된 바와 같이 버스 마스터 DMA 또는 프로그래밍된 I/O 중 어느 하나를 사용하여 시스템 메모리로 전송된다. 마지막으로, 저장 디바이스는 상태 레지스터의 폴링을 통해서 또는 인터럽트에 의해 호스트 시스템에 ATA 제어기를 통해 완료를 알린다.
전원이 들어왔을 때, 퍼스널 컴퓨터들은 비휘발성 메모리에서 마더보드상에 물리적으로 저장되어 있는 코드를 실행한다. 이 기본 입출력 시스템 또는 BIOS 코드는 ATA 제어기에 부착된 ATA 저장 디바이스로부터 퍼스널 컴퓨터의 운영체제를 로딩하며, 로우레벨 I/O 시스템 드라이버들을 이와 같은 저장 디바이스들에 제공한다.
본 발명은 도 1에 도시되고 상술된 ATA 제어기를 에뮬레이트하며, 프로그래밍 레벨에서 이와 완전히 호환된다. 도 2를 참조하면, 도 2a는 본 발명에 따른 제어기의 블록도이며, 이는 예를 들어, RAID 제어기로서 구성될 수 있다. 제어기 블록(50)의 좌측은 표준 이중 채널 ATA 제어기 대신 PCI 버스에 부착되며, 하나 내지 4개의 부착된 ATA 저장 디바이스들을 에뮬레이트한다. 이하 보다 상세히 설명될 ATA 저장 디바이스들의 이러한 에뮬레이션은 물리적 디바이스 인터페이스들로부터 제어기의 호스트 인터페이스를 분리시켜, 디바이스 인터페이스들의 수 및 유형에 상당히 자유로울 수 있도록 한다. 예를 들어, 본 발명의 응용은 X SCSI 포트들 및/또는 Y ATA 포트들을 구현할 수도 있으며, 여기서, X 및 Y는 호스트 시스템에 나타나는 4개의 논리적 드라이브들에 결코 제한되지 않는다. 도 2는 0에서 N-1까지 번호가 매겨진 N+1 ATA 포트들을 구현하는 예이다.
도 2b는 본 발명의 프로그래밍 인터페이스를 도시하고 있다. 호스트 인터페이스(56)는 표준 ATA 제어기의 PCI 버스로부터 볼 수 있는 모든 레지스터 블록들, 즉, 이중 채널 버스 마스터 제어기 블록(58, 60) 및 네 세트의 명령 및 제어 레지스터 블록들(62, 64, 66, 68)을 구현한다. 호스트 인터페이스 블록(56)은 ATA 제어기 및 ATA 저장 디바이스들의 레지스터들을 ATA 명세 프로토콜들을 지원하는데 필요한 레벨로 에뮬레이트한다.
도 2b의 블록(70)은 제어기 블록(50)의 주 콤포넌트들을 도시한다. 호스트 인터페이스 블록(56)에 부가하여, 제어기(70)는 후술될 바와 같이, RAM 버퍼 캐시(72), DMA 채널(74) 및 프로세서(80)를 포함한다. 제어기 블록(70)은, 예를 들어, 인터페이스들(82, 84, 86)과 같은 복수의 ATA 포트 인터페이스들을 더 포함한다. 각 ATA 포트 인터페이스는 디스크 드라이브 같은 IDE 형 저장 디바이스에 대한 표준 인터페이스 접속을 제공한다. 상술된 바와 같이, 각 저장 디바이스는 명령 및 제어 레지스터 블록을 탑재하고 있다. 이들은, 예를 들어, 명령 레지스터 블록(90) 및 제어 블록(92)으로서 도시되어 있으며, 이들 모두는 단일 디바이스, 즉, 마스터 드라이브와 관련되며, 상기 마스터 드라이브는 ATA 포트 인터페이스(82), 표준 커넥터 케이블(96)에 접속된다. 제어기 블록(70)은 호스트 PCI 버스(12)에 표준 이중 채널 제어기 인터페이스(56)를 여전히 제공하면서 임의의 원하는 수의 ATA 포트들을 포함하도록 구성될 수 있다.
본 발명의 양호한 실시예의 세부적인 블록도가 도 3에 도시되어 있다. 이 시스템은 0.18미크론 COMS 프로세스의 ASIC(Application Specific Integrated Circuit)로서 구현된다. 이 디바이스는 논리적으로 4개의 모듈들로 분할되어 있으며, 이들 각각은 상기 디바이스의 외부에 대한 관련 포트를 가지고 있다.
호스트 인터페이스(100)는 인듐-실리콘의 PCI 코어(104) 주변에 설치된다. CS6464AF는 33㎒ 또는 66㎒ PCI 버스 클록 레이트들에서 32비트 및 64비트 PCI 버스들 모두를 지원하는 소프트-코어(특정 응용을 위해 합성된 베릴로그 소스(Verilog source))이다. 코어는 마스터 및 타겟 동작들 모두를 지원한다. 타겟 부분(106)은 상술된 ATA 호환성 레지스터 파일들에 대한 액세스를 제공한다. 마스터 기능(108)은 ATA 제어기의 버스 마스터 DMA 부분을 에뮬레이트하기 위해 사용된다. PCI 코어는 이중 포트형 ATA 제어기의 구성 공간(110)을 에뮬레이트하는 구성 공간을 포함한다.
DRAM 인터페이스 블록(120)은 외부적으로 접속된 SDRAM(122)을 지원한다. 64 비트 폭, 100㎒ 단일 데이터 레이트 포트(124)는 초당 800 메가바이트의 피크 전송 레이트를 지원한다. 로컬적으로, DRAM 인터페이스는 호스트 인터페이스(100)를 통해 PCI 버스로 또는 그로부터, 드라이브 인터페이스(130)를 통해 디스크 드라이브들로 또는 그로부터의 전송에 의해, 및 프로세서 블록(150)의 로컬 프로세서에 의한 액세스에 의해 공유된다.
드라이브 인터페이스 블록(130)은 5개의 ATA 포트들(예를 들어, 134)을 제공하며, 이들 각각은 마스터 및 슬레이브 드라이브를 지원할 수 있다. 각 포트는 프로그래밍된 입출력(PIO)을 초당 16 메가바이트에 달하는 전송 레이트로 지원하며, 울트라 DMA는 초당 100 메가바이트에 달하는 전송 레이트로 전송한다.
LSI 로직으로부터 EZ4102 TinyRISC 코어(160) 둘레에 프로세서 블록이 설치된다. 이 프로세서는 MIPS 프로세서의 변형이다. 전원 공급시, 프로세서는 확장 버스 포트(166)를 통해 액세스되는 외부 플래시 메모리로부터 코드를 로딩한다. 이 코드는 프로세서 블록내의 SRAM 블록(170)으로 전송된다. 프로세서(160)는 다른 모듈들 각각을 구성하고, 이들 모듈들을 통해서, PCI 버스, SDRAM 또는 ATA 드라이브들을 액세스할 수도 있다. 일반적으로, 데이터를 처리하기 위한 프로세서를 필요로 하지 않음으로써 시스템 전송 레이트들이 향상된다. 프로세서는 이들 블록들에서 DMA 엔진들(136, 146)을 그들 사이의 FIFO(148)를 로딩 또는 언로딩 하도록 구성함으로써 DSRAM과 드라이브 사이의 데이터 이동을 조화시킨다. 동일한 방식으로, DRAM 인터페이스와 호스트 인터페이스의 DMA 엔진들(172, 102)을 이들 블록들 사이에의 FIFO(174)를 로딩 또는 언로딩하도록 구성함으로써 PCI 버스 타겟들과 SDRAM 사이의 전송들을 조화시킨다.
도 4는 ATA 레지스터 파일 구현의 세부 사항들을 도시하고 있다. 레지스터들은 모두 이중 포트형이며, 호스트 시스템 또는 로컬 프로세서(160)에 의해 PCI 버스로부터 액세스될 수도 있다. PCI 버스로부터 알 수 있는 바와 같이, 각 ATA 채널은 그와 관련된 2개의 레지스터들의 블록들을 갖는다. 명령 블록(208)은 바이트 폭 레지스터들의 8-바이트 범위이다. 제어 블록(210)은 단일 위치만이 사용되는 4-바이트 범위이다. 상술된 바와 같이, 단일 ATA 포트는 공통 케이블에 부착된 한 쌍의 디바이스들을 액세스하는데 사용될 수도 있다. 각 디바이스는 그 소유의 명령 및 제어 레지스터 블록들을 갖는다. 디바이스들은 물리적으로는, 하나를 마스터로서 지정하고, 다른 하나를 슬레이브로서 지정하기 위해 점퍼들을 구비하도록 구성된다. 명령 블록의 어드레스 오프셋 6에서 디바이스 헤드 레지스터에 데이터의 바이트를 기록함으로써 특정 디바이스가 액세스를 위해 선택된다. 비트 4가 선택되는 경우에, 슬레이브 디바이스가 선택되고 마스터는 후속 동작들을 위해 선택 해제된다. 동일 레지스터가 비트 4가 클리어된 것으로 기록되는 경우에, 마스터 디바이스가 선택된 상태가 되고 슬레이브는 선택 해제될 것이다. 본 발명에서 이 동작을 에뮬레이트하기 위해서, 마스터 및 슬레이브 레지스터 세트들 모두가 구현된다. 부가적으로, 단일 비트 슬레이브 레지스터(230)가 제공되어 가장 최근의 비트 4 기록을 디바이스 헤드 레지스터에 기록한다. 슬레이브 레지스터는 적절한 레지스터 블록들의 쌍이 가장 최근의 디바이스 선택에 기초하여 액세스되도록 PCI 버스로부터의 판독 멀티플렉싱과 기록 어드레스 디코딩을 제어한다.
전력 공급시 또는 후속하는 리셋시, ATA 디바이스들은 초기에 비지(Busy) 상태가 된다. 비지 상태는 명령 블록의 어드레스 오프셋 7에서 상태 레지스터를 판독함으로써, 또는 제어 블록의 대용 상태 레지스터 블록을 판독함으로써 검출될 수도 있다. 디바이스가 비지 상태인 동안, 다른 레지스터들 중 어떠한 것도 액세스되지 않을 수도 있다. 본 발명에서 이 동작을 에뮬레이트 하기 위해서, 단일 비트 비지 레지스터(232)가 제공된다. 이 레지스터는 PCI 버스로부터의 리셋에 의해, 제어 블록의 디바이스 제어 레지스터의 소프트 리셋 비트에 대한 기록에 의해 설정되거나, 또는 명령 레지스터가 명령 레지스터 블록의 어드레스 오프셋 7에 기록될 때 설정된다. 로컬 프로세서는 비지 레지스터를 클리어할 수도 있다.
각 ATA 디바이스는, 인터럽트들이 상기 디바이스 내에서 인에이블되었을 경우, 호스트 시스템에 인터럽트 요청을 요구할 수 있다. 이 동작을 에뮬레이트 하기 위해서, 단일 비트 인터럽트 요청(234) 및 인터럽트 인에이블(236) 레지스터들이 마스터 및 슬레이브 디바이스들 모두에 제공된다. 인터럽트 인에이블들은 각 디바이스의 디바이스 제어 레지스터를 통해 제어된다. 각 디바이스는 데이터를 전송하기 위해 또는 완료 상태를 반환하기 위해 호스트 시스템에 인터럽트 요청을 요구할 수도 있다. 본 발명에서, 인터럽트 요청은 로컬 프로세서에 의해 설정되거나 클리어될 수도 있다. 또한, 인터럽트 요청은 ATA 명세의 프로토콜들에 기술된 바와 같이 디바이스의 상태 레지스터(그러나, 대용 상태 레지스터는 아님)를 판독함으로써 클리어된다. 마스터 및 슬레이브 디바이스들에 대한 인터럽트 요청 및 인터럽트 인에이블 상태는 호스트가 디바이스 선택을 변경할 때 적절한 동작이 유지되도록 독립적으로 유지된다.
마스터 및 슬레이브 디바이스들에 대한 명령 및 제어 레지스터 파일들과, 슬레이브, 비지 및 인터럽트 "사이드 이펙트들(side effects)"은 모두 2차 채널을 위해 복제된다. 4개의 디바이스들 모두를 위한 명령 및 제어 레지스터 파일 블록들은 모두 로컬 프로세서의 어드레스 공간에 선형적으로 맵핑된다.
공유된 이중 채널 버스 마스터 제어 블록(250)은 PCI 버스로부터 또는 로컬프로세서에 의해서 액세스될 수도 있다.
ATA 프로토콜에 따라서, 디바이스가 선택되며, 소정의 명령을 위해 필요한 모든 파라미터들이 명령 레지스터 파일 내에 로딩되고, 이어서, 명령 자체가 오프셋 7에서 레지스터 내에 로딩된다. 상술된 바와 같이, 이것은 채널 비지를 설정한다. 비지의 상승 에지는 로컬 프로세서에 인터럽트를 유발하며, 이 로컬 프로세서는 명령과 그 파라미터들을 해석함으로써 응답한다. 대부분의 명령들은 부착된 물리적 디바이스 어레이의 액세스들로 재맵핑된다. 이들 액세스들은 RAID 레벨들 0, 1, 3 및 5를 포함하지만, 이에 제한되지는 않는 공통 RAID 프로토콜들 중 임의의 프로토콜을 구현하는데 사용될 수 있다. 로컬 프로세서는 요청된 것 보다 많은 데이터를 판독하는 옵션을 갖는다. 부가적인 데이터는 후속하는 판독들의 선조치로서 SDRAM 캐시된다. 로컬 프로세서는 명령에 의해 요청된 바에 따라 DMA 또는 프로그래밍된 IO 중 어느 하나를 사용하여 호스트 시스템과 SDRAM 사이에서 데이터를 전송하도록 배치될 수도 있다.
간략하게 요약하면, 본 발명은 호스트 시스템 버스에 제어기를 인터페이스하기 위한 호스트 인터페이스를 제공하는 RAID 저장 디바이스 제어기를 포함한다. 호스트 인터페이스는, 예를 들어, IDE 디스크 드라이브들과 같은 부착된 저장 디바이스들로부터 격리되어 있으며, 따라서, 실제 부착된 드라이브들은 수 또는 인터페이스 프로토콜에 제한되지 않는다. 다양한 디바이스 포트들이 구현될 수 있으며, 다양한 RAID 전략들, 예를 들어, 레벨 3 및 레벨 5가 사용될 수 있다. 모든 경우에, 호스트 인터페이스는 호스트에 표준의 균일 인터페이스, 즉, ATA 인터페이스를 제공하며, 바람직하게는 이중 채널 ATA 인터페이스를 제공한다. 호스트 인터페이스는 ATA 단일 또는 이중 채널 인터페이스를 에뮬레이트하고, 제어기에 물리적으로 접속된 실제 디바이스들의 수에 무관하게 채널당 하나 또는 2개의 부착된 IDE 디바이스들을 에뮬레이트한다. 따라서, PCI 호스트 머신의 표준 BIOS를 변화시키지 않고, 예를 들어, 5개 또는 7개의 IDE 드라이브들이 RAID 레벨 5 프로토콜로 배치될 수 있다. 따라서, RAID 제어기는 표준 이중 채널 ATA 제어기 보드에 대하여 투명하다.
본 기술 분야의 숙련자들은 본 발명의 배경 원리로부터 벗어나지 않고 상술된 본 발명의 실시예의 세부 사항들에 대한 다양한 변화를 이룰 수 있다는 것은 명백하다. 따라서, 본 발명의 범위는 하기의 청구범위에 의해서만 결정되어야 한다.

Claims (20)

  1. 저장 디바이스 제어기에 있어서:
    호스트 시스템 버스에 상기 제어기를 인터페이스하고, 표준 IDE 채널을 에뮬레이트하며, 또한, 상기 IDE 채널에 접속된 것과 같이 IDE 디바이스를 에뮬레이트하기 위한 호스트 인터페이스; 및
    상기 저장 디바이스 제어기를 물리적 저장 디바이스에 접속하기 위한 적어도 하나의 물리적 인터페이스를 포함하는, 저장 디바이스 제어기.
  2. 제 1 항에 있어서,
    적어도 하나의 상기 물리적 인터페이스는 상기 제어기에 ATA-호환 저장 디바이스를 접속하기 위한 ATA 포트를 구현하는, 저장 디바이스 제어기.
  3. 제 1 항에 있어서,
    상기 호스트 인터페이스는 적어도 1차 채널과 2차 채널을 에뮬레이트하는, 저장 디바이스 제어기.
  4. 제 3 항에 있어서,
    상기 호스트 인터페이스는 상기 1차 및 2차 채널들 각각에 부착된 단일 IDE 디바이스를 에뮬레이트하는, 저장 디바이스 제어기.
  5. 제 3 항에 있어서,
    상기 호스트 인터페이스는 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하며, 상기 마스터 및 슬레이브 IDE 저장 디바이스들은 상기 1차 및 2차 채널들 중 하나의 채널에 부착되는, 저장 디바이스 제어기.
  6. 제 3 항에 있어서,
    표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는 수단을 더 포함하는, 저장 디바이스 제어기.
  7. 제 1 항에 있어서,
    상기 호스트 인터페이스는 상기 IDE 채널에 부착된 단일 IDE 디바이스를 에뮬레이트하는, 저장 디바이스 제어기.
  8. 제 1 항에 있어서,
    상기 호스트 인터페이스는 상기 IDE 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, 저장 디바이스 제어기.
  9. 제 1 항에 있어서,
    표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는수단을 더 포함하는, 저장 디바이스 제어기.
  10. RAID 저장 디바이스 제어기에 있어서:
    호스트 시스템 버스에 상기 제어기를 인터페이스하고, 적어도 하나의 ATA 제어기 채널을 에뮬레이트 하기 위한 호스트 인터페이스;
    상기 저장 디바이스 제어기를 복수의 저장 디바이스들에 접속하기 위한 적어도 2개의 물리적 인터페이스들; 및
    물리적 저장 디바이스 액세스 동작들을 제어하기 위한 상기 제어기에 탑재된 로컬 프로세서를 포함하고,
    상기 호스트 인터페이스는, IDE-컴플라이언트 명령 및 제어 레지스터 블록들을 구현함으로써, 상기 에뮬레이트된 ATA 제어기 채널에 접속된 것 처럼 적어도 하나의 IDE 디바이스를 더 에뮬레이트하는, RAID 저장 디바이스 제어기.
  11. 제 10 항에 있어서,
    표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는 수단을 더 포함하는, RAID 저장 디바이스 제어기.
  12. 제 10 항에 있어서,
    상기 호스트 시스템 버스와 상기 접속된 저장 디바이스들간의 데이터 전송들을 버퍼링하기 위한 버퍼 메모리; 및
    상기 호스트 인터페이스와 상기 버퍼 메모리간에 데이터를 전송하기 위해 배열된 DMA 엔진을 더 포함하는, RAID 저장 디바이스 제어기.
  13. 제 12 항에 있어서,
    상기 버퍼 메모리와 상기 포트 인터페이스들간에 데이터를 전송하기 위해 배열된 DMA 엔진을 포함하는, RAID 저장 디바이스 제어기.
  14. 제 10 항에 있어서,
    상기 호스트 인터페이스는 1차 ATA 채널과 2차 ATA 채널 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  15. 제 14 항에 있어서,
    상기 호스트 인터페이스는 상기 1차 및 2차 채널들 각각에 부착된 단일 IDE 디바이스를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  16. 제 14 항에 있어서,
    상기 호스트 인터페이스는 상기 1차 및 2차 채널들 중 적어도 하나의 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  17. 제 10 항에 있어서,
    상기 호스트 인터페이스는 상기 IDE 채널에 접속된 마스터 IDE 디바이스와 슬레이브 IDE 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  18. 제 10 항에 있어서,
    상기 호스트 인터페이스는 상기 IDE 채널에 부착된 단일 IDE 디바이스를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  19. 제 10 항에 있어서,
    상기 호스트 인터페이스는 상기 IDE 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.
  20. 현존하는 호스트 BIOS 소프트웨어를 수정하지 않고 PCI 버스 호스트에 RAID 저장 디바이스 제어기를 인터페이스하는 방법에 있어서:
    상기 제어기에서, 상기 호스트에 인터페이스된 ATA 제어기를 에뮬레이트하는 단계;
    상기 제어기에서, 상기 ATA 제어기에 연결된 것 처럼 IDE 저장 디바이스를 더 에뮬레이트하는 단계;
    상기 제어기에 물리적 저장 디바이스를 접속하기 위한 적어도 2개의 물리적포트 인터페이스들을 제공하는 단계; 및
    상기 저장 디바이스 제어기가, 상기 제어기의 물리적 포트 인터페이스들에 실제로 접속된 물리적 저장 디바이스들의 실제 수 및 인터페이스 유형들에 무관하게, ATA 인터페이스를 통해 접속된 IDE 디바이스로서 상기 호스트에 나타나도록, 상기 물리적 저장 디바이스로부터 상기 제어기의 호스트 인터페이스를 분리시키는 단계를 포함하는, PCI 버스 호스트에 RAID 저장 디바이스 제어기를 인터페이스하는 방법.
KR10-2002-7003752A 1999-09-22 2000-09-21 Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법 KR100441189B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15600199P 1999-09-22 1999-09-22
US60/156,001 1999-09-22

Publications (2)

Publication Number Publication Date
KR20020048414A KR20020048414A (ko) 2002-06-22
KR100441189B1 true KR100441189B1 (ko) 2004-07-21

Family

ID=22557665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7003752A KR100441189B1 (ko) 1999-09-22 2000-09-21 Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법

Country Status (9)

Country Link
EP (1) EP1236106A4 (ko)
JP (1) JP2003510683A (ko)
KR (1) KR100441189B1 (ko)
CN (1) CN1222876C (ko)
AU (1) AU7714700A (ko)
CA (1) CA2385492C (ko)
HK (1) HK1050935A1 (ko)
TW (1) TW476030B (ko)
WO (1) WO2001022221A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3812928B2 (ja) * 1999-07-14 2006-08-23 株式会社日立製作所 外部記憶装置及び情報処理システム
JP4742443B2 (ja) * 2001-04-25 2011-08-10 ソニー株式会社 記録再生装置、記録再生制御方法及び記録再生制御装置
US6763398B2 (en) 2001-08-29 2004-07-13 International Business Machines Corporation Modular RAID controller
US6904498B2 (en) 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
CN1296845C (zh) * 2003-01-24 2007-01-24 华为技术有限公司 一种磁盘存储系统
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
DE60309706T2 (de) * 2003-09-19 2007-03-29 Harman Becker Automotive Systems Gmbh Datenübertragungsschnittstelle
CN100383757C (zh) * 2003-09-23 2008-04-23 华为技术有限公司 磁盘数据备份系统及其方法
JP4578794B2 (ja) * 2003-09-30 2010-11-10 ソニー株式会社 マルチシステム、データ格納部アクセス装置およびデータ格納部アクセス方法
DE10351019A1 (de) * 2003-10-31 2005-06-30 P21 - Power For The 21St Century Gmbh Verfahren zum Steuern und/oder Regeln wenigstens eines Aggregats in einem technischen System sowie technisches System
TWI306241B (en) * 2004-07-12 2009-02-11 Infortrend Technology Inc A controller capable of self-monitoring, a redundant storage system having the same, and its method
US7694038B2 (en) * 2004-11-17 2010-04-06 International Business Machines Corporation Maintaining and using nexus information on a host, port and device connection
TWI344602B (en) 2005-01-13 2011-07-01 Infortrend Technology Inc Redundant storage virtualization computer system
CN100447731C (zh) * 2005-01-13 2008-12-31 普安科技股份有限公司 冗余存储虚拟化计算机系统
US7603514B2 (en) * 2005-03-31 2009-10-13 Intel Corporation Method and apparatus for concurrent and independent data transfer on host controllers
US7774514B2 (en) 2005-05-16 2010-08-10 Infortrend Technology, Inc. Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
JP2007087053A (ja) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd ディスクアレイ制御装置および制御方法
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
KR100736928B1 (ko) * 2005-12-05 2007-07-10 삼성전자주식회사 호스트 디바이스 간의 데이터 통신이 가능한 복합기기 및호스트 디바이스 간의 데이터 통신방법
KR100843199B1 (ko) 2006-08-10 2008-07-02 삼성전자주식회사 고속 아이.디.이. 인터페이스 장치 및 그 방법
JP2008276691A (ja) * 2007-05-07 2008-11-13 Kwok-Yan Leung ハードディスクインターフェースを模擬したインターフェースカード
KR20100069067A (ko) * 2008-12-16 2010-06-24 (주)인디링스 독립적으로 파일 시스템을 관리하는 레이드 컨트롤러
JP5360883B2 (ja) * 2009-02-20 2013-12-04 エヌイーシーコンピュータテクノ株式会社 ディスク装置実装方式、方法及びディスク装置実装用アダプタ
US8504767B2 (en) * 2010-04-20 2013-08-06 Taejin Info Tech Co., Ltd. Raid controlled semiconductor storage device
KR101209914B1 (ko) * 2011-06-08 2012-12-11 주식회사 태진인포텍 프로그램 가능한 호스트 인터페이스를 갖는 반도체 저장 장치 메모리 디스크 유닛
WO2012169820A2 (en) * 2011-06-08 2012-12-13 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with multiple host interfaces
TWI465923B (zh) * 2011-11-21 2014-12-21 Acer Inc 介面裝置及其串接系統與串接方法
US9117037B2 (en) 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
KR101988287B1 (ko) * 2012-11-26 2019-06-12 삼성전자주식회사 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법
TW201634190A (zh) 2015-03-18 2016-10-01 Hong Ann Tool Ind Co Ltd 具有卡掣裝置之扳手
DE102015115950A1 (de) 2015-09-22 2017-03-23 Powagrip Industrial Co., Ltd. Befestigungsmittel für einen Schraubenschlüssel
KR102567279B1 (ko) * 2016-03-28 2023-08-17 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템의 파워 다운 인터럽트

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
EP0582370B1 (en) * 1992-06-05 1998-10-07 Compaq Computer Corporation Disk drive controller with a posted write cache memory
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5890014A (en) * 1996-08-05 1999-03-30 Micronet Technology, Inc. System for transparently identifying and matching an input/output profile to optimal input/output device parameters

Also Published As

Publication number Publication date
CN1222876C (zh) 2005-10-12
EP1236106A4 (en) 2002-10-30
KR20020048414A (ko) 2002-06-22
CA2385492A1 (en) 2001-03-29
AU7714700A (en) 2001-04-24
CA2385492C (en) 2005-08-16
WO2001022221A1 (en) 2001-03-29
CN1391672A (zh) 2003-01-15
HK1050935A1 (zh) 2003-07-11
EP1236106A1 (en) 2002-09-04
TW476030B (en) 2002-02-11
JP2003510683A (ja) 2003-03-18

Similar Documents

Publication Publication Date Title
KR100441189B1 (ko) Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법
US6772108B1 (en) Raid controller system and method with ATA emulation host interface
US6286057B1 (en) Method and arrangement for allowing a computer to communicate with a data storage device
US5812814A (en) Alternative flash EEPROM semiconductor memory system
US6065096A (en) Integrated single chip dual mode raid controller
US5333277A (en) Data buss interface and expansion system
US7073010B2 (en) USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US6529989B1 (en) Intelligent expansion ROM sharing bus subsystem
US5996045A (en) IDE disk drive arrangement that combines the capacity of a master drive and slave drive while hiding the presence of slave drive to a host computer
US5887157A (en) Local bus interface
US7725664B2 (en) Configuration definition setup method for disk array apparatus, and disk array apparatus
KR20070108410A (ko) 호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치
US5668957A (en) Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
US20060168358A1 (en) Storage control system
KR100829651B1 (ko) 바이오스 스토리지 어레이
US7249253B2 (en) Booting from a re-programmable memory on an unconfigured bus
US7162565B1 (en) Universal serial bus interface to mass storage device
US10628042B2 (en) Control device for connecting a host to a storage device
US20030229727A1 (en) Method and apparatus of virtual COM port
US20020194405A1 (en) Disk array system with large storage capacity
GB2367918A (en) Batch methods for accessing IDE task registers
Naeem et al. A Frame Work for Virtual USB Devices under Linux Environment
KR19990074053A (ko) 아타피(아이디이) 방식의 레이드 컨트롤러

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130620

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190711

Year of fee payment: 16