KR20020048414A - RAID controller system and method with ATA emulation host interface - Google Patents

RAID controller system and method with ATA emulation host interface Download PDF

Info

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

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 제어기 보드에 대해 투과적이다.The RAID storage device controller 70 provides a host interface 56 for interfacing the controller to a host system bus. The host interface is isolated from attached storage devices such as, for example, IDE disk drives, so that the actual attached drives are not limited to the number or interface protocol. Various device ports may be implemented, and various RAID strategies such as level 3 and level 5 may be used, for example. In all cases, the host interface provides a standard, uniform interface to the host, i.e., ATA interfaces 82, 84, and 86, and preferably provides a dual channel ATA interface. The host interface emulates an ATA single or dual channel interface, and emulates one or two attached IDE devices per channel regardless of the actual number of devices physically connected to the controller. Thus, five or seven IDE drives can be deployed to RAID level 5, without changing the standard BIOS in the PCI host device. Thus, the RAID controller is transparent to the standard dual channel ATA controller board.

Description

ATA 에뮬레이션 호스트 인터페이스를 가진 RAID 제어기 시스템 및 방법{RAID controller system and method with ATA emulation host interface}RAID controller system and method with AT emulation host interface

최초의 IBM PC 및 호환 기기들은 대용량 저장 장치용으로 단지 플로피 디스크 드라이브들만을 가지고 있었다. 후속하는 XT 및 AT 모델들은 대용량 데이터 저장 장치용으로 5.25" 고정 디스크들(제거불가)의 연결을 위한 어댑터들을 포함하고 있었다. 이들 원래의 어뎁터들은 판독 신호들과 사전 보상된 기록 신호들(pre-compensated write signals)을 위한 데이터 분리 회로들을 포함하는 드라이브들을 위한 대부분의 로우레벨 제어 신호들을 제공하였다. 어뎁터에 이들 기능들을 포함시키는 것은 한번에 하나씩만 액세스되는 한쌍의 드라이버들의 복제를 회피하였다.불행히도, 상기 어뎁터상의 5M 비트 판독/기록 채널은 기술 진보에 따라 보다 빠른 드라이버들을 부착하는 것이 불가능하였다.The first IBM PCs and compatible devices had only floppy disk drives for mass storage. Subsequent XT and AT models included adapters for the connection of 5.25 "fixed disks (non-removable) for mass data storage devices. These original adapters used read signals and pre-compensated write signals (pre- Most low-level control signals have been provided for drives that include data isolation circuits for compensated write signals, including incorporating these functions in the adapter avoided the duplication of a pair of drivers accessed only one at a time. The 5M bit read / write channel on the adapter has made it impossible to attach faster drivers as technology advances.

제어기의 "실시간(real time)" 특성을 드라이브내로 이동시키는 것이 이 문제점을 해결하였다. 집적 구동 전자 기기들(Integrated Drive Electronics) 또는 IED 드라이브는 드라이브를 판독 또는 기록하고, 로컬 버퍼와 매체 사이에서 데이터를 전송하기 위해 필요한 모든 제어들과 데이터 채널을 통합하고 있다. 제조업자들은 데이터 레이트를 선택할 수도 있다. 새로운 인터페이스인 ATA(AT Attachment with Packet Interface Extension(ATA/ATAP1-4))(IBM AT Attachment Interface)가 호스트 시스템에 대한 데이터 저장 디바이스들의 연결을 위해 정의되었다. 최초의 IDE 인터페이스들은 ISA 버스와 ATA 케이블 커넥터 사이에서의 어드레스 디코딩 및 버퍼링 정도로 구성되었다. 상기 인터페이스 프로토콜은 IDE 디바이스의 레지스터들을 액세스하기 위해 프로그래밍된 입력 및 출력 명령들을 사용하였다. 데이터 전송 방식은 부착된 드라이브들의 전송 레이트들로 스로틀링된(throttled) 호스트 프로세서의 입력 스트링 및 출력 스트링 명령들을 사용하였다. 이들 전송 레이트들은 상기 명세의 최근 개정에서는 초당 16메가바이트에 달하였다. 이는 저장 디바이스상의 버퍼와 ISA 버스 상의 메모리 사이의 전송 레이트이다. 매체와 버퍼 사이의 전송 레이트들은 보다 낮다.Moving the "real time" characteristics of the controller into the drive solved this problem. Integrated Drive Electronics or IED drives integrate all the controls and data channels needed to read or write the drive and transfer data between the local buffer and the media. Manufacturers may choose a data rate. A new interface, AT Attachment with Packet Interface Extension (ATA / ATAP1-4) (IBM AT Attachment Interface), has been defined for the connection of data storage devices to a host system. The first IDE interfaces consisted of address decoding and buffering between the ISA bus and the ATA cable connector. The interface protocol used programmed input and output instructions to access the registers of the IDE device. The data transfer scheme used input string and output string instructions of the host processor throttled at the transfer rates of the attached drives. These transmission rates amounted to 16 megabytes per second in the latest revision of the specification. This is the transfer rate between the buffer on the storage device and the memory on the ISA bus. The transmission rates between the medium and the buffer are lower.

PCI 버스의 출현과 함께, 인텔사는 PCI IDE 문헌(PCI IDE Controller Specification, Revision 1.0, 3/4/94)을 공개했으며, 이는 PCI 버스에 대한 기존 ISA 버스 기반 호스트 인터페이스의 표준 맵핑을 제공한다. 상기 표준은 이중 IDE채널 제어기(Dual IDE Channel Controller)를 개시하고 있다. 마스터 및 슬레이브의 한쌍의 디바이스들이 상기 채널들 각각에 부착될 수 있었다. 데이터 전송을 위해서, 상기 디바이스는 여전히 PCI 버스 타겟으로서 액세스되었다.With the advent of the PCI bus, Intel has released the PCI IDE Controller Specification (Revision 1.0, 3/4/94), which provides a standard mapping of existing ISA bus-based host interfaces to the PCI bus. The standard discloses a dual IDE channel controller. A pair of devices of master and slave could be attached to each of the channels. For data transfer, the device was still accessed as a PCI bus target.

또한, 인텔사는 버스 마스터 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메가바이트이다.Intel has also published the Programming Interface for Bus Master IDE Controller, Revision 1.0, 5/16/94. This document defines a standard for integrating DMA devices into IDE channels. The bus mastering interface allows the IDE channel to transfer data to or from the system memory as a bus master (PCI BUS Initiator) over the PCI bus. The peak transfer rate for a 32bit / 32MHz PCI bus is 133 megabytes per second.

ATA 명세의 개정은 새로운 전송 모드인 울트라 DMA(Ultra DMA)를 정의했다. 기존 전송 레이트 개선들은 셋업을 긴밀화하고, 케이블상에서의 데이터 전송을 위한 시간 요건을 유지함으로써 얻어져왔다. 초당 16메가바이트에서, 판독 전송 레이트는 판독 스트로브(read strobe)를 발송하고 데이터를 액세스하며 데이터를 반환하는 라운드 트립(round trip)에 의해 크게 제한되었다. 울트라 DMA 프로토콜은 초기에 모든 신호 및 케이블의 전기적 특성을 보유하고 있었으며, 새로운 프로토콜을 제공하기 위해서 단순히 3개의 신호들의 기능들을 재정의 한다. 이 프로토콜에서, 데이터 타이밍을 제공하는 스트로브 신호는 데이터와 동일한 종단(end)으로부터, 즉, 기록을 위한 제어기와, 판독을 위한 디바이스에 의해 보내진다. 이 구성에서, 전송 레이트는 케이블의 단일 트랜지션을 위한 케이블 스큐에 의해서만 제한된다. 최초의 UDMA 디바이스들은 프로그래밍된 IO 전송 레이트들을 초당 33메가바이트로배증시켰다. 후속하는 개정들은 초기 UDMA 전송 레이트를 초당 66메가바이트로 배증시켰지만, 교류 신호와 접지 도전체를 가진 80 도전체 리본 케이블을 사용할 필요가 있었다. 현재의 버전에서는 초당 100 메가바이트의 전송 레이트를 지원한다. 현재는 ATA 병렬 인터페이스가 고속 직렬 링크로 교체되는 중이지만, 먼저, 병렬 속도 증가가 한번 더 이루어질 수도 있다.The revision of the ATA specification defined a new transmission mode, Ultra DMA. Existing transmission rate improvements have been achieved by tightening the setup and maintaining the time requirements for data transmission on the cable. At 16 megabytes per second, the read transfer rate was greatly limited by round trips that issue read strobes, access data, and return data. The Ultra DMA protocol initially retained the electrical properties of all signals and cables and simply redefines the functions of the three signals to provide a new protocol. In this protocol, the strobe signal providing data timing is sent from the same end as the data, ie by the controller for writing and the device for reading. In this configuration, the transmission rate is limited only by the cable skew for a single transition of the cable. The first UDMA devices doubled the programmed IO transfer rates to 33 megabytes per second. Subsequent revisions multiplied the initial UDMA transfer rate to 66 megabytes per second, but required the use of 80 conductor ribbon cables with alternating signals and ground conductors. The current version supports transfer rates of 100 megabytes per second. Currently, the ATA parallel interface is being replaced with a high speed serial link, but first, the parallel speed increase may be made once more.

문제점problem

통상적인 퍼스널 컴퓨터는 프로세서, DRAM 인터페이스, 다양한 입력/출력 어뎁터들 및 BIOS ROM을 포함하는 칩셋을 위주로 설계된 마더보드로 구성되어 있다. IO 어댑터들은 일반적으로 IDE 인터페이스를 포함한다. 현 버전의 IDE 제어기들은 한 쌍의 IDE 포트들로 이루어져 있으며, 상기 IDE 포트들 각각은 한쌍의 IDE 저장 디바이스들과 인터페이스를 이룰 수 있다. 이들 디바이스들은 통상적으로, 하나 이상의 IDE 하드 디스크들과 CD ROM, DVD ROM 또는 CD WORM 드라이브들을 포함한다. 기본 입력 출력 시스템 또는 BIOS는, PC를 부팅시키고 마더보드상의 어뎁터들에 로우레벨 IO 루틴들을 제공하기 위해 사용되는 프로그램이다. 실질적인 모든 이런 PC들은 마더보드 BIOS를 사용하여 IDE 하드 디스크로부터 부팅 및 구동될 수 있다.A typical personal computer consists of a motherboard designed around a chipset that includes a processor, a DRAM interface, various input / output adapters, and a BIOS ROM. IO adapters generally include an IDE interface. Current versions of IDE controllers consist of a pair of IDE ports, each of which can interface with a pair of IDE storage devices. These devices typically include one or more IDE hard disks and CD ROM, DVD ROM or CD WORM drives. The basic input output system or BIOS is a program used to boot a PC and provide low level IO routines to the adapters on the motherboard. Virtually all of these PCs can be booted and run from an IDE hard disk using the motherboard BIOS.

점차적으로, 퍼스널 컴퓨터들이 소규모 사무실/가정 사무실(SOHO) 시장에서 서버 또는 워크스테이션 용도로 배치되고 있다. 역사적으로, 소형 컴퓨터 시스템 인터페이스(SCSI)를 가진 하드 디스크들은 보다 많은 요구사항을 가진 응용들에 대한 소정의 성능 이득을 제공하였다. 그러나, 최근, IDE 드라이브들로서 제조되는 모든 드라이브들 중 85% 이상에서, SCSI 드라이브들은 성능 이득이 거의 없거나 아예 없으면서, 그리고, 현저히 비용이 증가된, 동일한 매체 및 판독/기록 헤드들을 사용하여 구성되는 경향이 있다. 다른 대중적인 대안은 패터슨(Patterson)에 의해 제안된 바와 같은 저가 디스크들의 리던던트 어레이(RAID, Redundant Array Of Inexpensive Disks))이다(디. 패터슨 등, "저가 디스크들의 리던던트 어레이(RAID)용 케이스", Univ. Cal. Report No. UCB/CSD87/391, 1987년 12월). RAID 시스템들은 신뢰성과 성능 관점 모두에 주안점을 둔 것이다. 먼저, 단일 드라이브가 손상되었을 경우 어떠한 데이터도 손실되지 않도록 둘 이상의 드라이브들에 걸쳐 이중적으로 데이터를 저장함으로써 신뢰성이 얻어진다. 두번째째로, 어레이의 집합 성능으로 인해, 단일 드라이브의 성능에 비해 향상된 성능이 얻어진다. 이중적으로 저장된 데이터의 서로 다른 섹션들이 두 드라이브들로부터 동시에 판독될 수도 있다. 또한, 데이터가 재판독될 때 집합 전송 레이트가 실현될 수 있도록 데이터가 모든 가용 드라이브들에 걸친 스트립들내에 기록될 수도 있다. RAID 어레이 제어기들은 본 발명자의 미국 특허 제 6,018,778 호에 보다 상세히 설명되어 있다.Increasingly, personal computers are being deployed for server or workstation use in the small office / home office (SOHO) market. Historically, hard disks with a small computer system interface (SCSI) have provided some performance gains for applications with more requirements. Recently, however, in more than 85% of all drives manufactured as IDE drives, SCSI drives tend to be configured using the same media and read / write heads, with little or no performance gain and significantly increased cost. There is this. Another popular alternative is Redundant Array Of Inexpensive Disks (RAID) as proposed by Patterson (D. Patterson et al., "Case for Redundant Array of Low Cost Disks (RAID)", Univ.Cal. Report No. UCB / CSD87 / 391, December 1987). RAID systems focus on both reliability and performance aspects. First, reliability is achieved by storing data redundantly across two or more drives so that no data is lost if a single drive is damaged. Secondly, due to the aggregate performance of the array, improved performance is obtained over the performance of a single drive. Different sections of dually stored data may be read from both drives simultaneously. In addition, data may be written in strips across all available drives so that the aggregate transfer rate can be realized when the data is reread. RAID array controllers are described in more detail in the inventor's US Pat. No. 6,018,778.

불행히도, 가용한 다수의 RAID 솔루션들에는 단점이 존재한다. 로컬 인텔리전스(local intelligence)와, SCSI 디스크 드라이브들의 사용은 RAID 솔루션 중 한 부류의 특징이다. 이 부류는 드라이브들과 제어기 모두에 대하여 매우 고가이기는 하지만 높은 성능을 나타낸다. 다른 대중적인 RAID 솔루션 부류는 임의의 로컬 인텔리전스 또는 버퍼링의 결핍과, IDE 드라이브들의 사용으로 특징지어 진다. 이는 본질적으로 소프트웨어 솔루션이다. 리던던시를 유지하기 위해서, 또는 데이터를 스트라이프(stripe)하기 위해서 드라이브들의 집합을 제어하는데 필요한 소프트웨어는 모두 호스트 시스템상에서 구동되어야만 하며, 이는 시스템 버스와 프로세서상의 디스크 드라이브 오버헤드를 크게 증가시킨다. 따라서, 이 증가된 오버헤드로 인해 감소된 시스템 성능의 비용에서 RAID의 장점이 얻어진다. 이들 솔루션들 모두는 부가적인 문제점을 공유하고 있다. 이들 RAID 제어기들은 마더보드상의 BIOS에 의해 직접적으로 지원되지 않는다. 부가적인 소프트웨어 드라이버들이 필요하다. 이들 드라이버들은, 예를 들어, 윈도우즈, 윈도우즈 NT, UNIX, LINUX 등의 오퍼레이팅 시스템의 기능에 따라 변화될 수도 있으며, 이는 제어기 제조업자들, OEM들, 마케팅 그룹들 및 시스템 조립자들에게 부가적인 부담을 초래한다.Unfortunately, there are drawbacks to the many RAID solutions available. Local intelligence and the use of SCSI disk drives are a feature of a class of RAID solutions. This class exhibits high performance, although very expensive for both drives and controllers. Another popular RAID solution class is characterized by the lack of any local intelligence or buffering and the use of IDE drives. This is essentially a software solution. All the software needed to control the set of drives to maintain redundancy or to stripe data must all be run on the host system, which greatly increases the disk drive overhead on the system bus and the processor. Thus, the increased overhead yields the benefits of RAID at the expense of reduced system performance. All of these solutions share additional problems. These RAID controllers are not directly supported by the BIOS on the motherboard. Additional software drivers are needed. These drivers may vary depending on the functionality of the operating system, for example Windows, Windows NT, UNIX, LINUX, etc., which adds additional burden to controller manufacturers, OEMs, marketing groups and system integrators. Brings about.

따라서, 호스트 프로세서상에서 실행시키기 위한 특별한 소프트웨어를 필요로 하지 않으면서, 부가적인 소프트웨어 드라이브들이나 BIOS에 대한 변화를 필요로 하지 않는 RAID 저장 디바이스 제어기에 대한 필요성이 남아있다. BIOS에 대한 어떠한 변화도 필요로 하지 않는 RAID 제어기는 ATA 컴플라이언트 인터페이스를 구현하는 실질적인 모든 표준, 기성품(off-the-shelf) 컴퓨터들과의 "플러그-앤-플레이(plug-and-play)" 호환성의 장점을 갖는다. RAID 제어기는 호스트에 대해 투명(transparent)하며, 디바이스 인터페이스들의 임의의 조합으로 다수의 저장 디바이스들(4개로 제한되지 않음)을 배치하도록 사용될 수 있으며, 호스트에 오버헤드를 부가하지 않고 RAID 미러링(mirroring), 스트립핑 등을 실행할 수 있다. 이와 같은 RAID 제어기는 모든 PC 사용자들에게 저가로, 그리고, 매우 단순한 설치로 RAID 기능을 제공한다.Thus, there remains a need for a RAID storage controller that does not require special software to run on the host processor, but does not require additional software drives or changes to the BIOS. The RAID controller, which does not require any changes to the BIOS, "plug-and-play" with virtually any standard, off-the-shelf computer that implements an ATA compliant interface. Has the advantage of compatibility. The RAID controller is transparent to the host and can be used to place multiple storage devices (but not limited to four) in any combination of device interfaces, RAID mirroring without adding overhead to the host. ), Stripping and so on. Such a RAID controller provides RAID functionality to all PC users at a low cost and in a very simple installation.

관련 출원Related Applications

본 출원은 1999년 9월 22일 출원된 미국 가출원 제 60/156,001 호를 우선권으로 주장하는 연속 출원이다.This application is a sequential application claiming priority in US Provisional Application No. 60 / 156,001, filed September 22, 1999.

기술 분야Technical field

본 발명은 컴퓨터 데이터 저장 디바이스 제어기들에 관한 것으로, 특히, ATA 표준 제어기들과 부착된 IDE 디바이스들을 에뮬레이트하는 호스트 인터페이스를 가진 RAID 제어기에 관한 것이다.The present invention relates to computer data storage device controllers, and more particularly to a RAID controller having a host interface that emulates ATA standard controllers and attached IDE devices.

도 1은 물리적 및 소프트웨어/레지스터 뷰들을 도시하는 종래의 ATA 이중 채널 제어기 응용의 단순화된 블록도.1 is a simplified block diagram of a conventional ATA dual channel controller application showing physical and software / register views.

도 2a, 도 2b는 본 발명에 따른 ATA 포트 에뮬레이션을 갖는 RAID 제어기의 단순화된 블록도.2A and 2B are simplified block diagrams of a RAID controller with ATA port emulation according to the present invention.

도 3은 ATA 포트 에뮬레이션을 갖는 RAID 제어기의 바람직한 상업적 실시예의 하이레벨 블록도.3 is a high level block diagram of a preferred commercial embodiment of a RAID controller with ATA port emulation.

도 4는 도 3의 제어기의 ATA 레지스터 파일의 일 구현예를 보다 상세히 도시하는 도면.4 illustrates in more detail an implementation of an ATA register file of the controller of FIG.

본 발명은 표준 IDE 제어기와 IDE 드라이브를 사용하여 소정의 PC 마더보드상에서 부팅 및 구동되는 모든 운영 체제들과 호환성을 갖는 RAID 제어기를 실현한다. 이는 표준 제어기와 부착된 드라이브를 에뮬레이트함으로써 이러한 호환성을 달성한다. 예를 들어, 소정의 시스템은 RAID 1에서 한 쌍의 드라이브들을 필요로하거나, 또는 신뢰성을 위해 "미러링" 구성을 필요로 할 수도 있다. 본 발명에서 설명된 제어기에 접속되었을 때, BIOS는 단일의 매우 신뢰성있는 드라이브가 될 것이다. 또한, 동일한 시스템이 RAID 3 또는 RAID 5 구조 중 어느 하나에 따라 구성된 3개의 드라이브들의 어레이를 필요로 할 수도 있다. 이는 높은 신뢰성을 가진 3개의 드라이브들 중 임의의 한 드라이브의 2배의 전송 레이트를 제공한다. 또한, 본 발명에서, 이 3개의 드라이브들의 어레이는 3개의 드라이브들 중 임의의 한 드라이브의 2배의 용량을 갖고, 높은 신뢰성을 갖는 2배의 전송 레이트를 나타내는 단일 드라이브로서 BIOS에 나타날 것이다. 어떤 경우에, RAID는 BIOS에서 현존하는 드라이브들에 대해 투명하다.The present invention uses a standard IDE controller and IDE drive to realize a RAID controller that is compatible with all operating systems booted and run on a given PC motherboard. This achieves this compatibility by emulating a drive attached with a standard controller. For example, some systems may require a pair of drives in RAID 1, or may require a "mirror" configuration for reliability. When connected to the controller described in the present invention, the BIOS will be a single highly reliable drive. Also, the same system may require an array of three drives configured according to either RAID 3 or RAID 5 architecture. This provides twice the transfer rate of any one of the three drives with high reliability. In addition, in the present invention, the array of these three drives will appear in the BIOS as a single drive having twice the capacity of any one of the three drives and exhibiting twice the transfer rate with high reliability. In some cases, RAID is transparent to existing drives in the BIOS.

본 발명의 제어기는 표준 2-채널 IDE 제어기를 에뮬레이트한다. 표준 제어기와 마찬가지로, 이는 논리적으로 PCI 버스에 접속되어 있다. 이는 물리적으로 마더보드상에, 가능하게는 마더보드 칩셋내에 통합되어 있을 수도 있고, 또는, PCI 슬롯의 플러그-인 카드 상에 배치될 수도 있다. 이것은 표준 제어기에 부착될 수 있는 4개의 디바이스들 모두를 에뮬레이트할 수도 있다. 이들 논리 디바이스들 각각은 제어기에 부착된 물리적 디바이스들의 어레이에 대한 가능한 인터페이스를 제공한다. 본 실시예가 물리적 디바이스들의 부착을 위해 ATA 포트들을 제공하지만, 다른 형태의 인터페이스들 또는 인터페이스들의 조합들이 사용될 수도 있다.The controller of the present invention emulates a standard two-channel IDE controller. Like a standard controller, it is logically connected to the PCI bus. It may be physically integrated on the motherboard, possibly within the motherboard chipset, or placed on a plug-in card in a PCI slot. This may emulate all four devices that may be attached to a standard controller. Each of these logic devices provides a possible interface to an array of physical devices attached to a controller. Although this embodiment provides ATA ports for attachment of physical devices, other forms of interfaces or combinations of interfaces may be used.

본 발명의 부가적인 목적들 및 장점들은 첨부 도면을 참조로 설명되는 이하의 바람직한 실시예들에 대한 상세한 설명으로부터 명백해질 것이다.Additional objects and advantages of the present invention will become apparent from the following detailed description of the preferred embodiments described with reference to the accompanying drawings.

도 1a의 상단은 시스템 버스(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개의 디바이스들 모두를 지원한다.The top of FIG. 1A illustrates a typical prior art application of an ATA controller 10 of a personal computer providing an interface between the system bus 12 and the storage devices 14. System bus 12 is a PCI bus. As long as it is logically attached to the PCI bus, the ATA controller is typically integrated within the motherboard chipset. In a given application, an additional or alternative controller may be pluggably connected to one of the PCI bus slots on the motherboard (not shown). The PCI bus provides a configuration mechanism in which unique addresses are assigned to each of the controllers. Conventional controller 10 provides two channels terminated in a pair of connectors 16, 18, identified as primary and secondary IDE connectors. Each of the channels supports a pair of storage devices that share a connector and a cable. For example, in FIG. 1, the secondary channel cable 19 is connected to the master storage device 20 and the slave storage device 22. Other pairs of drives are similarly connected to the primary channel cable 24. Thus, the two-channel controller 10 supports all four devices as shown in FIG.

도 1b의 하단은 PCI 버스로부터 볼 수 있는 바와 같이 IDE 제어기와 드라이브들의 프로그래밍 인터페이스를 도시하고 있다. 각 블록들에 대한 물리적 어드레스는 이 기술 분야에서 널리 공지되어 있고, 상기 언급한 인텔 PCI IDE 제어기 명세 문헌에 설명되어 있는 바와 같이 제어기의 PCI 버스 구성 공간을 통해 할당된다. 다른 상술된 인텔 문헌인 버스 마스터 IDE 제어기를 위한 프로그래밍 인터페이스에서는 버스 마스터 IDE 제어기를 위한 프로그래밍 인터페이스를 설명하고 있다. 이 메카니즘의 표준화에 앞서, 저장 디바이스 데이터는 통상적으로, 데이터 전송을 위해 필요한 로드들(loads)과 스토어들(stores)이 시스템 프로세서에 의해 실행되는 프로그래밍된 I/O를 통해 전달된다. 프로그래밍된 I/O 메카니즘이 여전히 지원되지만, 버스 마스터 인터페이스는 ATA 제어기가 시스템 메모리, 즉, DMA의 직접 액세스를 통해 데이터를 전송할 수 있도록 한다. 버스 마스터 IDE 제어기 문헌은 한쌍의 버스 마스터 제어기들을 지원하는 레지스터의 16바이트 블록을 정의하며, 상기 버스 마스터 제어기들 중 하나는 1차 ATA 채널을 위한 것이고, 하나는 2차 ATA 채널을 위한 것이다. 이 레지스터 블록은 물리적으로 제어기의 일부이다. 이것은 각 채널들과 하나씩 관련되는 두 부분들(30, 32)로 분할되어 있는 것이 도시되어 있다.The bottom of FIG. 1B shows the programming interface of the IDE controller and drives as seen from the PCI bus. The physical address for each block is well known in the art and is assigned through the PCI bus configuration space of the controller as described in the Intel PCI IDE controller specification document mentioned above. Another aforementioned Intel document, Programming Interface for Bus Master IDE Controller, describes a programming interface for a bus master IDE controller. Prior to standardization of this mechanism, storage device data is typically delivered via programmed I / O where the loads and stores needed for data transfer are executed by the system processor. Although the programmed I / O mechanism is still supported, the bus master interface allows the ATA controller to transfer data through direct access of system memory, ie DMA. The bus master IDE controller document defines a 16-byte block of registers supporting a pair of bus master controllers, one of which is for the primary ATA channel and one for the secondary ATA channel. This register block is physically part of the controller. It is shown to be divided into two parts 30, 32 which are associated with each channel one by one.

ATA 명세는 저장 디바이스들에 대한 프로그래밍 인터페이스를 정의한다. 이 인터페이스는 2개의 레지스터 블록들, 즉, 명령 블록 및 제어 블록으로 구성된다. 명령 블록은 바이트-폭(byte-wide) 레지스터들의 8-바이트 블록이다. 제어 블록은 바이트-폭 레지스터들의 4-바이트 블록이다. 이들 레지스터들을 구현하기 위한 모든 세부 사항들은 ATA 명세에 공개되어 있다.The ATA specification defines a programming interface for storage devices. This interface consists of two register blocks, namely a command block and a control block. An instruction block is an eight-byte block of byte-wide registers. The control block is a 4-byte block of byte-width registers. All details for implementing these registers are disclosed in the ATA specification.

도 1의 우측은 4 세트의 명령 및 제어 레지스터 블록들을 도시하고 있으며, 하나의 세트가 4개의 부착된 저장 디바이스들 각각에 대응한다. 예를 들어, 한 세트의 레지스터 블록들(36)은 명령 블록(38)과 대응하는 제어 블록(40)으로 구성된다. 이들 레지스터들은 도 1의 상반부에 도시된 대응하는 저장 디바이스들의 물리적인 일부이다. 따라서, 레지스터 세트(36)(1차 채널)는 마스터 저장 디바이스(25)에 위치된다. 소정의 저장 디바이스가 부착되어 있지 않은 경우에, 그 명령 및 제어 레지스터 블록들은 프로그래밍 인터페이스에 나타나지 않을 것이다.The right side of FIG. 1 shows four sets of command and control register blocks, with one set corresponding to each of four attached storage devices. For example, a set of register blocks 36 consists of an instruction block 38 and a corresponding control block 40. These registers are the physical part of the corresponding storage devices shown in the upper half of FIG. Thus, register set 36 (primary channel) is located in master storage device 25. If no storage device is attached, the command and control register blocks will not appear in the programming interface.

또한, ATA 명세는 저장 디바이스들에 의해 지원되는 프로토콜들을 정의하고 있다. 일반적으로, 액세스 명령 및 모든 관련 파라미터들은 명령 블록의 레지스터들에 로딩된다. 그후, 저장 디바이스는 명령을 실행한다. 디바이스 기록을 위해, 가장 먼저 기록 데이터를 요청한다. 프로그래밍된 I/O 동작을 위해, 호스트 프로세서는 시스템 메모리로부터 데이터를 판독하여, 버퍼 내의 16비트 윈도우로서 명령 블록의 일부를 사용하여 디바이스(도시되지 않음)내의 버퍼에 기록한다. 버스 마스터 DMA 동작을 위해서, ATA 제어기는 그 채널에 대한 버스 마스터 제어기 레지스터 블록의 구조에 기초하여 시스템 메모리로부터 직접적으로 데이터를 액세스한다. 그후, 저장 디바이스가 매체와 그 로컬 버퍼 사이에서 데이터를 전송하는 저장 매체를 액세스한다. 매체 판독을 위해서, 그후, 로컬 버퍼내의 데이터가 상술된 바와 같이 버스 마스터 DMA 또는 프로그래밍된 I/O 중 어느 하나를 사용하여 시스템 메모리로 전송된다. 마지막으로, 저장 디바이스는 상태 레지스터의 폴링을 통해서 또는 인터럽트에 의해 호스트 시스템에 ATA 제어기를 통해 완료를 알린다.The ATA specification also defines the protocols supported by storage devices. In general, the access instruction and all related parameters are loaded into registers of the instruction block. The storage device then executes the command. For device recording, the record data is first requested. For programmed I / O operations, the host processor reads data from system memory and writes to a buffer in a device (not shown) using a portion of the instruction block as a 16-bit window in the buffer. For bus master DMA operation, the ATA controller accesses data directly from system memory based on the structure of the bus master controller register block for that channel. The storage device then accesses a storage medium that transfers data between the medium and its local buffer. For media reading, the data in the local buffer is then transferred to system memory using either bus master DMA or programmed I / O as described above. Finally, the storage device informs the host system of the completion through the ATA controller through polling of the status register or by interrupt.

전원이 들어왔을 때, 퍼스널 컴퓨터들은 비휘발성 메모리에서 마더보드상에 물리적으로 저장되어 있는 코드를 실행한다. 이 기본 입출력 시스템 또는 BIOS 코드는 ATA 제어기에 부착된 ATA 저장 디바이스로부터 퍼스널 컴퓨터의 운영체제를 로딩하며, 이와 같은 저장 디바이스들에 대한 로우레벨 I/O 시스템 드라이버들을 제공한다.When powered on, personal computers execute code that is physically stored on the motherboard in nonvolatile memory. This basic input / output system or BIOS code loads the personal computer's operating system from an ATA storage device attached to the ATA controller and provides low-level I / O system drivers for such storage devices.

본 발명은 도 1에 도시되고 상술된 ATA 제어기를 에뮬레이트하며, 프로그래밍 레벨에서 이와 완전히 호환된다. 도 2를 참조하면, 도 2a는 본 발명에 따른 제어기의 블록도이며, 이는 예를 들어, RAID 제어기로서 구성될 수 있다. 제어기 블록(50)의 좌측은 표준 이중 채널 ATA 제어기 대신 PCI 버스에 부착되며, 하나 내지 4개의 부착된 ATA 저장 디바이스들을 에뮬레이트한다. 이하 보다 상세히 설명될 ATA 저장 디바이스들의 에뮬레이션은 물리적 디바이스 인터페이스로부터 제어기의 호스트 인터페이스를 분리시켜, 디바이스 인터페이스들의 수 및 유형에 상당히 자유로울 수 있도록 한다. 예를 들어, 본 발명의 응용은 X SCSI 포트들 및/또는 YATA 포트들을 구현할 수 있으며, 여기서, X 및 Y는 호스트 시스템에 나타나는 4개의 논리적 드라이브들에 결코 제한되지 않는다. 도 2는 0에서 N-1까지 번호가 매겨진 N+1 ATA 포트들을 구현하는 예이다.The present invention emulates the ATA controller shown in FIG. 1 and described above and is fully compatible at the programming level. Referring to FIG. 2, FIG. 2A is a block diagram of a controller according to the present invention, which may be configured, for example, as a RAID controller. The left side of the controller block 50 is attached to the PCI bus instead of the standard dual channel ATA controller, emulating one to four attached ATA storage devices. The emulation of ATA storage devices, which will be described in more detail below, separates the host interface of the controller from the physical device interface, allowing for greater freedom in the number and type of device interfaces. For example, an application of the present invention may implement X SCSI ports and / or YATA ports, where X and Y are by no means limited to four logical drives present in the host system. 2 is an example implementation of N + 1 ATA ports numbered from 0 to N-1.

도 2b는 본 발명의 프로그래밍 인터페이스를 도시하고 있다. 호스트 인터페이스(56)는 표준 ATA 제어기의 PCI 버스로부터 볼 수 있는 모든 레지스터 블록들, 즉, 이중 채널 버스 마스터 제어기 블록(58, 60) 및 네 세트의 명령 및 제어 레지스터 블록들(62, 64, 66, 68)을 구현한다. 호스트 인터페이스 블록(56)은 ATA 제어기 및 ATA 저장 디바이스들의 레지스터들을 ATA 명세 프로토콜들을 지원하는데 필요한 레벨로 에뮬레이트한다.2B illustrates the programming interface of the present invention. Host interface 56 includes all register blocks visible from the PCI bus of the standard ATA controller, i.e. dual channel bus master controller block 58, 60 and four sets of command and control register blocks 62, 64, 66. , 68). Host interface block 56 emulates the registers of the ATA controller and ATA storage devices to the level required to support the ATA specification protocols.

도 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 포트들을 포함하도록 구성될 수 있다.Block 70 of FIG. 2B shows the main components of controller block 50. In addition to the host interface block 56, the controller 70 includes a RAM buffer cache 72, a DMA channel 74 and a processor 80, as described below. The controller block 70 further includes a plurality of ATA port interfaces, such as, for example, the interfaces 82, 84, 86. Each ATA port interface provides standard interface access to IDE-type storage devices such as disk drives. As described above, each storage device is equipped with an instruction and control register block. These are shown, for example, as command register block 90 and control block 92, all of which are associated with a single device, i.e., the master drive, which is connected to the ATA port interface 82, standard connector It is connected to the cable 96. The controller block 70 can be configured to include any number of ATA ports while still providing a standard dual channel controller interface 56 on the host PCI bus 12.

본 발명의 양호한 실시예의 세부적인 블록도가 도 3에 도시되어 있다. 이 시스템은 0.18미크론 COMS 프로세스의 (ASIC, Application Specific Integrated Circuit)로서 구현된다. 상기 디바이스는 논리적으로 4개의 모듈들로 분할되어 있으며, 이들 각각은 상기 디바이스의 외부에 대한 관련 포트를 가지고 있다.A detailed block diagram of a preferred embodiment of the present invention is shown in FIG. The system is implemented as an Application Specific Integrated Circuit (ASIC) in a 0.18 micron COMS process. The device is logically divided into four modules, each of which has an associated port to the outside of the device.

호스트 인터페이스(100)는 인듐-실리콘으로부터 PCI 코어(104) 주변에 설치된다. CS6464AF는 33㎒ 또는 66㎒ PCI 버스 클록 레이트에서 32비트 및 64비트 PCI 버스들 모두를 지원하는 소프트-코어(특정 응용을 위해 합성된 베릴로그 소스(Verilog source))이다. 상기 코어는 마스터 및 타겟 동작들 모두를 지원한다. 타겟 부분(106)은 상술된 ATA 호환성 레지스터 파일들에 대한 액세스를 제공한다. 마스터 기능(108)은 ATA 제어기의 버스 마스터 DMA 부분을 에뮬레이트하기 위해 사용된다. PCI 코어는 이중 포트형 ATA 제어기의 구성 공간(110)을 에뮬레이트하는 구성 공간을 포함한다.The host interface 100 is installed around the PCI core 104 from indium silicon. The CS6464AF is a soft-core (a synthesized Verilog source for certain applications) that supports both 32-bit and 64-bit PCI buses at 33 MHz or 66 MHz PCI bus clock rates. The core supports both master and target operations. Target portion 106 provides access to the ATA compatibility register files described above. The master function 108 is used to emulate the bus master DMA portion of the ATA controller. The PCI core includes a configuration space that emulates the configuration space 110 of the dual ported ATA controller.

DRAM 인터페이스 블록(120)은 외부적으로 접속된 SDRAM(122)을 지원한다. 64 비트 폭, 100㎒ 단일 데이터 레이트 포트(124)는 초당 800 메가바이트의 피크 전송 레이트를 지원한다. 로컬적으로, DRAM 인터페이스는 호스트 인터페이스(100)를 통해 PCI 버스로 또는 그로부터, 드라이브 인터페이스(130)를 통해 디스크 드라이브들로 또는 그로부터의 전송에 의해, 및 프로세서 블록(150)의 로컬 프로세서에 의한 액세스에 의해 공유된다.DRAM interface block 120 supports SDRAM 122 that is externally connected. A 64-bit wide, 100 MHz single data rate port 124 supports a peak transfer rate of 800 megabytes per second. Locally, the DRAM interface is accessed to or from the PCI bus via the host interface 100, to or from disk drives via the drive interface 130, and by the local processor of the processor block 150. Is shared by.

드라이버 인터페이스 블록(130)은 5개의 ATA 포트들(예를 들어, 134)을 제공하며, 이들 각각은 마스터 및 슬레이브 드라이브를 지원할 수 있다. 각 포트는 초당 16 메가바이트에 달하는 전송 레이트로 프로그래밍된 입출력(PIO)을 지원하며, 울트라 DMA는 초당 100 메가바이트에 달하는 전송 레이트로 전송한다.Driver interface block 130 provides five ATA ports (eg, 134), each of which may support master and slave drives. Each port supports programmed input / output (PIO) at transfer rates up to 16 megabytes per second, while Ultra DMA transmits at transfer rates up to 100 megabytes per second.

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 사이의 전송들을 조화시킨다.A processor block is installed around the EZ4102 TinyRISC core 160 from the LSI logic. This processor is a variant of the MIPS processor. At power up, the processor loads code from external flash memory that is accessed through expansion bus port 166. This code is sent to the SRAM block 170 in the processor block. The processor 160 configures each of the other modules and may access PCI bus, SDRAM or ATA drives through these modules. In general, system transfer rates are improved by not requiring a processor to process the data. The processor coordinates data movement between the DSRAM and the drive by configuring the DMA engines 136, 146 to load or unload the FIFO 148 between them in these blocks. In the same way, the DMA engines 172, 102 of the DRAM interface and the host interface are configured to load or unload the FIFO 174 between these blocks to coordinate the transfers between the PCI bus targets and the SDRAM.

도 4는 ATA 레지스터 파일 구현의 세부 사항들을 도시하고 있다. 레지스터들은 모두 이중 포트형이며, 호스트 시스템 또는 로컬 프로세서(160)에 의해 PCI 버스로부터 액세스될 수도 있다. PCI 버스로부터 알 수 있는 바와 같이, 각 ATA 채널은 그와 관련된 2개의 레지스터들의 블록들을 갖는다. 명령 블록(208)은 바이트 폭 레지스터들의 8-바이트 범위이다. 제어 블록(210)은 단일 위치만이 사용되는 4-바이트 범위이다. 상술된 바와 같이, 단일 ATA 포트는 공통 케이블에 부착된 한 쌍의 디바이스들을 액세스하는데 사용될 수도 있다. 각 디바이스는 그 소유의 명령 및 제어 레지스터 블록들을 갖는다. 디바이스들은 물리적으로, 하나를 마스터로서 지정하고, 다른 하나를 슬레이브로서 지정하기 위해 점퍼들을 구비하도록 구성된다. 명령 블록의 어드레스 오프셋 6에서 디바이스 헤드 레지스터에 데이터의 바이트를 기록함으로써 특정 디바이스가 액세스를 위해 선택된다. 비트 4가 선택되는 경우에, 슬레이브 디바이스가 선택되고, 마스터는 후속 동작들을 위해 선택 해제된다. 동일 레지스터가 비트 4가 클리어된 것으로 기록되는 경우에, 마스터 디바이스가 선택된 상태가 되고, 슬레이브는 선택 해제될 것이다. 본 발명에서 이 동작을 에뮬레이트하기 위해서, 마스터 및 슬레이브 레지스터 세트들 모두가 구현된다. 부가적으로, 단일 비트 슬레이브 레지스터(230)가 제공되어 디바이스 헤드 레지스터에 가장 최근의 비트 4 기록을 디바이스 헤드 레지스터에 기록한다. 슬레이브 레지스터는 적절한 레지스터 블록들의 쌍이 가장 최근의 디바이스 선택에 기초하여 액세스되도록 PCI 버스로부터의 판독 멀티플렉싱과 기록 어드레스 디코딩을 제어한다.4 shows details of the ATA register file implementation. The registers are all dual ported and may be accessed from the PCI bus by the host system or local processor 160. As can be seen from the PCI bus, each ATA channel has two registers of blocks associated with it. Instruction block 208 is an 8-byte range of byte width registers. Control block 210 is a 4-byte range in which only a single location is used. As mentioned above, a single ATA port may be used to access a pair of devices attached to a common cable. Each device has its own command and control register blocks. The devices are physically configured to have jumpers to designate one as a master and the other as a slave. A particular device is selected for access by writing a byte of data to the device head register at address offset 6 of the instruction block. If bit 4 is selected, the slave device is selected and the master is deselected for subsequent operations. If the same register is written with bit 4 cleared, the master device will be selected and the slave will be deselected. In order to emulate this operation in the present invention, both master and slave register sets are implemented. Additionally, a single bit slave register 230 is provided to write the most recent bit 4 write to the device head register. The slave register controls read multiplexing and write address decoding from the PCI bus so that the appropriate pair of register blocks are accessed based on the most recent device selection.

전력 공급시 또는 후속하는 리셋시, ATA 디바이스들은 초기에 비지(Busy) 상태가 된다. 비지 상태는 명령 블록의 어드레스 오프셋 7에서 상태 레지스터를 판독함으로써, 또는 제어 블록의 대용 상태 레지스터 블록을 판독함으로써 검출될 수도 있다. 디바이스가 비지 상태인 동안, 다른 레지스터들 중 어떠한 것도 액세스되지 않을 수도 있다. 본 발명에서 이 동작을 에뮬레이트 하기 위해서, 단일 비트 비지 레지스터(232)가 제공된다. 이 레지스터는 PCI 버스로부터의 리셋에 의해, 제어 블록의 디바이스 제어 레지스터의 소프트 리셋 비트에 대한 기록에 의해 설정되거나, 또는 명령 레지스터가 명령 레지스터 블록의 어드레스 오프셋 7에 기록될 때 설정된다. 로컬 프로세서는 비지 레지스터를 클리어할 수도 있다.Upon power up or subsequent reset, the ATA devices are initially busy. The busy state may be detected by reading the status register at address offset 7 of the instruction block, or by reading the surrogate status register block of the control block. While the device is busy, none of the other registers may be accessed. In order to emulate this operation in the present invention, a single bit busy register 232 is provided. This register is set by reset from the PCI bus, by writing to the soft reset bit of the device control register of the control block, or when the command register is written to address offset 7 of the command register block. The local processor may clear the busy register.

각 ATA 디바이스는, 인터럽트들이 상기 디바이스 내에서 인에이블되었을 경우, 호스트 시스템에 인터럽트 요청을 요구할 수 있다. 이 동작을 에뮬레이트 하기 위해서, 단일 비트 인터럽트 요청(234) 및 인터럽트 인에이블(236) 레지스터들이 마스터 및 슬레이브 디바이스들 모두에 제공된다. 인터럽트 인에이블들은 각 디바이스의 디바이스 제어 레지스터를 통해 제어된다. 각 디바이스는 데이터를 전송하기 위해 또는 완료 상태를 반환하기 위해 호스트 시스템에 인터럽트 요청을 요구할 수도 있다. 본 발명에서, 인터럽트 요청은 로컬 프로세서에 의해 설정되거나 클리어될 수도 있다. 또한, 인터럽트 요청은 ATA 명세의 프로토콜들에 기술된 바와 같이 디바이스의 상태 레지스터(그러나, 대용 상태 레지스터는 아님)를 판독함으로써 클리어된다. 마스터 및 슬레이브 디바이스들에 대한 인터럽트 요청 및 인터럽트 인에이블 상태는 호스트가 디바이스 선택을 변경할 때 적절한 동작이 유지되도록 독립적으로 유지된다.Each ATA device may request an interrupt request from the host system when interrupts are enabled in the device. To emulate this operation, single bit interrupt request 234 and interrupt enable 236 registers are provided to both master and slave devices. Interrupt enable is controlled through the device control register of each device. Each device may request an interrupt request from the host system to send data or to return completion status. In the present invention, the interrupt request may be set or cleared by the local processor. In addition, the interrupt request is cleared by reading the device's status register (but not the surrogate status register) as described in the protocols of the ATA specification. Interrupt request and interrupt enable states for master and slave devices are maintained independently so that proper operation is maintained when the host changes device selection.

마스터 및 슬레이브 디바이스들에 대한 명령 및 제어 레지스터 파일들과, 슬레이브, 비지 및 인터럽트 "사이드 이펙트들(side effects)"은 모두 2차 채널을 위해 복제된다. 4개의 디바이스들 모두를 위한 명령 및 제어 레지스터 파일 블록들은 모두 로컬 프로세서의 어드레스 공간에 선형적으로 맵핑된다.Command and control register files for the master and slave devices, and slave, busy and interrupt "side effects" are all duplicated for the secondary channel. Command and control register file blocks for all four devices are all linearly mapped to the address space of the local processor.

공유된 이중 채널 버스 마스터 제어 블록(250)은 PCI 버스로부터 또는 로컬프로세서에 의해서 액세스될 수도 있다.The shared dual channel bus master control block 250 may be accessed from the PCI bus or by a local processor.

ATA 프로토콜에 따라서, 디바이스가 선택되며, 소정의 명령을 위해 필요한 모든 파라미터들이 명령 레지스터 파일내로 로딩되고, 이어서, 명령 자체가 오프셋 7에서 레지스터내로 로딩된다. 상술된 바와 같이, 이것은 채널 비지를 세팅한다. 비지의 상승 에지는 로컬 프로세서에 인터럽트를 유발하며, 상기 로컬 프로세서는 명령과 그 파라미터들을 해석함으로써 응답한다. 대부분의 명령들은 부착된 물리적 디바이스 어레이의 액세스들로 재맵핑된다. 이들 액세스들은 RAID 레벨들 0, 1, 3 및 5를 포함하지만, 이에 제한되지는 않는 공통 RAID 프로토콜들 중 임의의 프로토콜을 구현하는데 사용될 수 있다. 로컬 프로세서는 요청된 것 보다 많은 데이터를 판독하는 옵션을 갖는다. 부가적인 데이터는 후속하는 판독들의 선조치로서 SDRAM 캐시된다. 로컬 프로세서는 명령에 의해 요청된 바에 따라 프로그래밍된 IO 또는 DMA 중 어느 하나를 사용하여 호스트 시스템과 SDRAM 사이에서 데이터를 전송하도록 배치될 수도 있다.According to the ATA protocol, the device is selected and all the necessary parameters for a given command are loaded into the command register file, and then the command itself is loaded into the register at offset 7. As mentioned above, this sets the channel busy. Busy's rising edge causes an interrupt to the local processor, which responds by interpreting the command and its parameters. Most instructions are remapped to accesses of the attached physical device array. These accesses can be used to implement any of the common RAID protocols, including but not limited to RAID levels 0, 1, 3, and 5. The local processor has the option to read more data than requested. Additional data is SDRAM cached as a predecessor of subsequent reads. The local processor may be arranged to transfer data between the host system and the SDRAM using either programmed IO or DMA as requested by the instruction.

간략하게 요약하면, 본 발명은 호스트 시스템 버스에 제어기를 인터페이스 연결하기 위한 호스트 인터페이스를 제공하는 RAID 저장 디바이스 제어기를 포함한다. 호스트 인터페이스는, 예를 들어, IDE 디스크 드라이브들인 부착된 저장 디바이스들로부터 격리되어 있으며, 따라서, 실제 부착된 드라이브들은 수 또는 인터페이스 프로토콜에 제한되지 않는다. 다양한 디바이스 포트들이 구현될 수 있으며, 다양한 RAID 전략들, 예를 들어, 레벨 3 및 레벨 5가 사용될 수 있다. 모든 경우에, 호스트 인터페이스는 호스트에 대한 표준의 균일 인터페이스, 즉, ATA 인터페이스를 제공하며, 이중 채널 ATA 인터페이스를 제공하는 것이 바람직하다. 호스트 인터페이스는 ATA 단일 또는 이중 채널 인터페이스를 에뮬레이트하고, 제어기에 물리적으로 접속된 실제 디바이스들의 수에 무관하게 채널당 하나 또는 2개의 부착된 IDE 디바이스들을 에뮬레이트한다. 따라서, PCI 호스트 머신의 표준 BIOS를 변화시키지 않고, 예를 들어, 5개 또는 7개의 IDE 드라이브들이 RAID 레벨 5 프로토콜로 전개될 수 있다. 따라서, RAID 제어기는 표준 이중 채널 ATA 제어기 보드에 대하여 투명하다.Briefly summarized, the invention includes a RAID storage device controller that provides a host interface for interfacing the controller to a host system bus. The host interface is isolated from attached storage devices that are, for example, IDE disk drives, so the actual attached drives are not limited in number or interface protocol. Various device ports may be implemented, and various RAID strategies may be used, for example, level 3 and level 5. In all cases, the host interface provides a standard uniform interface to the host, that is, an ATA interface, and preferably a dual channel ATA interface. The host interface emulates an ATA single or dual channel interface and emulates one or two attached IDE devices per channel regardless of the number of actual devices physically connected to the controller. Thus, for example, five or seven IDE drives can be deployed in a RAID level 5 protocol without changing the standard BIOS of the PCI host machine. Thus, the RAID controller is transparent to the standard dual channel ATA controller board.

본 기술 분야의 숙련자들은 본 발명의 배경 원리로부터 벗어나지 않고도 상술된 본 발명의 실시예의 세부 사항들에 대한 다양한 변화를 이룰 수 있다는 것은 명백하다. 따라서, 본 발명의 범위는 하기의 청구범위에 의해서만 결정되어야 한다.It will be apparent to those skilled in the art that various changes may be made in the details of the embodiments of the invention described above without departing from the background principles of the invention. Accordingly, the scope of the invention should be determined only by the claims that follow.

Claims (20)

저장 디바이스 제어기에 있어서:In the storage device controller: 호스트 시스템 버스에 상기 제어기를 인터페이스하고, 표준 IDE 채널을 에뮬레이트하며, 또한, IDE 채널에 접속된 것과 같이 IDE 디바이스를 에뮬레이트하기 위한 호스트 인터페이스; 및A host interface for interfacing the controller to a host system bus, emulating a standard IDE channel, and also for emulating an IDE device as connected to an IDE channel; And 상기 저장 디바이스 제어기를 물리적 저장 디바이스에 접속하기 위한 적어도 하나의 물리적 인터페이스를 포함하는, 저장 디바이스 제어기.At least one physical interface for connecting the storage device controller to a physical storage device. 제 1 항에 있어서,The method of claim 1, 적어도 하나의 상기 물리적 인터페이스는 상기 제어기에 ATA-호환 저장 디바이스를 접속하기 위한 ATA 포트를 구현하는, 저장 디바이스 제어기.At least one physical interface implements an ATA port for connecting an ATA-compatible storage device to the controller. 제 1 항에 있어서,The method of claim 1, 상기 호스트 인터페이스는 적어도 1차 채널과 2차 채널을 에뮬레이트하는, 저장 디바이스 제어기.The host interface emulates at least a primary channel and a secondary channel. 제 3 항에 있어서,The method of claim 3, wherein 상기 호스트 인터페이스는 상기 1차 및 2차 채널들 각각에 부착된 단일 IDE 디바이스를 에뮬레이트하는, 저장 디바이스 제어기.The host interface emulates a single IDE device attached to each of the primary and secondary channels. 제 3 항에 있어서,The method of claim 3, wherein 상기 호스트 인터페이스는 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하며, 상기 마스터 및 슬레이브 IDE 저장 디바이스들은 상기 1차 및 2차 채널들 중 하나의 채널에 부착되는, 저장 디바이스 제어기.Said host interface emulates both a master IDE storage device and a slave IDE storage device, said master and slave IDE storage devices being attached to one of said primary and secondary channels. 제 3 항에 있어서,The method of claim 3, wherein 표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는 수단을 더 포함하는, 저장 디바이스 제어기.And means for emulating a bus master DMA controller of a standard dual ported IDE controller. 제 1 항에 있어서,The method of claim 1, 상기 호스트 인터페이스는 상기 IDE 채널에 부착된 단일 IDE 디바이스를 에뮬레이트하는, 저장 디바이스 제어기.The host interface emulates a single IDE device attached to the IDE channel. 제 1 항에 있어서,The method of claim 1, 상기 호스트 인터페이스는 상기 IDE 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, 저장 디바이스 제어기.The host interface emulates both a master IDE storage device and a slave IDE storage device attached to the IDE channel. 제 1 항에 있어서,The method of claim 1, 표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는수단을 더 포함하는, 저장 디바이스 제어기.And means for emulating a bus master DMA controller of a standard dual ported IDE controller. RAID 저장 디바이스 제어기에 있어서:For a RAID storage device controller: 호스트 시스템 버스에 상기 제어기를 인터페이스하고, 적어도 하나의 ATA 제어기 채널을 에뮬레이트 하기 위한 호스트 인터페이스;A host interface for interfacing the controller to a host system bus and emulating at least one ATA controller channel; 상기 저장 디바이스 제어기를 복수의 저장 디바이스들에 접속하기 위한 적어도 2개의 물리적 인터페이스들; 및At least two physical interfaces for connecting the storage device controller to a plurality of storage devices; And 물리적 저장 디바이스 액세스 동작들을 제어하기 위한 상기 제어기에 탑재된 로컬 프로세서를 포함하고,A local processor mounted to the controller for controlling physical storage device access operations, 상기 호스트 인터페이스는, IDE-컴플라이언트 명령 및 제어 레지스터 블록들을 구현함으로써, 에뮬레이트된 ATA 제어기 채널에 접속된 것 처럼 적어도 하나의 IDE 디바이스를 더 에뮬레이트하는, RAID 저장 디바이스 제어기.The host interface further emulates at least one IDE device as connected to an emulated ATA controller channel by implementing IDE-compliant command and control register blocks. 제 10 항에 있어서,The method of claim 10, 표준 이중 포트형 IDE 제어기의 버스 마스터 DMA 제어기를 에뮬레이트하는 수단을 더 포함하는, RAID 저장 디바이스 제어기.And means for emulating a bus master DMA controller of a standard dual ported IDE controller. 제 10 항에 있어서,The method of claim 10, 상기 호스트 시스템 버스와 상기 접속된 저장 디바이스들간의 데이터 전송들을 버퍼링하기 위한 버퍼 메모리; 및A buffer memory for buffering data transfers between the host system bus and the connected storage devices; And 상기 호스트 인터페이스와 상기 버퍼 메모리간에 데이터를 전송하기 위해 배열된 DMA 엔진을 더 포함하는, RAID 저장 디바이스 제어기.And a DMA engine arranged to transfer data between the host interface and the buffer memory. 제 12 항에 있어서,The method of claim 12, 상기 버퍼 메모리와 상기 포트 인터페이스들간에 데이터를 전송하기 위해 배열된 DMA 엔진을 포함하는, RAID 저장 디바이스 제어기.And a DMA engine arranged to transfer data between the buffer memory and the port interfaces. 제 10 항에 있어서,The method of claim 10, 상기 호스트 인터페이스는 1차 ATA 채널과 2차 ATA 채널 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.And the host interface emulates both a primary ATA channel and a secondary ATA channel. 제 14 항에 있어서,The method of claim 14, 상기 호스트 인터페이스는 상기 1차 및 2차 채널들 각각에 부착된 단일 IDE 디바이스를 에뮬레이트하는, RAID 저장 디바이스 제어기.And the host interface emulates a single IDE device attached to each of the primary and secondary channels. 제 14 항에 있어서,The method of claim 14, 상기 호스트 인터페이스는 상기 1차 및 2차 채널들 중 적어도 하나의 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.And the host interface emulates both a master IDE storage device and a slave IDE storage device attached to at least one of the primary and secondary channels. 제 10 항에 있어서,The method of claim 10, 상기 호스트 인터페이스는 상기 IDE 채널에 접속된 마스터 IDE 디바이스와 슬레이브 IDE 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.The host interface emulates both a master IDE device and a slave IDE device connected to the IDE channel. 제 10 항에 있어서,The method of claim 10, 상기 호스트 인터페이스는 상기 IDE 채널에 부착된 단일 IDE 디바이스를 에뮬레이트하는, RAID 저장 디바이스 제어기.And the host interface emulates a single IDE device attached to the IDE channel. 제 10 항에 있어서,The method of claim 10, 상기 호스트 인터페이스는 상기 IDE 채널에 부착된 마스터 IDE 저장 디바이스와 슬레이브 IDE 저장 디바이스 모두를 에뮬레이트하는, RAID 저장 디바이스 제어기.And the host interface emulates both a master IDE storage device and a slave IDE storage device attached to the IDE channel. 현존하는 호스트 BIOS 소프트웨어를 수정하지 않고 PCI 버스 호스트에 RAID 저장 디바이스 제어기를 인터페이스하는 방법에 있어서:To interface a RAID storage device controller to a PCI bus host without modifying existing host BIOS software: 상기 제어기에서, 상기 호스트에 인터페이스된 ATA 제어기를 에뮬레이트하는 단계;Emulating, at the controller, an ATA controller interfaced to the host; 상기 제어기에서, 상기 ATA 제어기에 연결된 것 처럼 IDE 저장 디바이스를 더 에뮬레이트하는 단계;At the controller, further emulating an IDE storage device as if connected to the ATA controller; 상기 제어기에 물리적 저장 디바이스를 접속하기 위한 적어도 2개의 물리적포트 인터페이스들을 제공하는 단계; 및Providing at least two physical port interfaces for connecting a physical storage device to the controller; And 상기 저장 디바이스 제어기가, 상기 제어기의 물리적 포트 인터페이스들에 실제로 접속된 물리적 저장 디바이스들의 실제 수 및 인터페이스 유형들에 무관하게, ATA 인터페이스를 통해 접속된 IDE 디바이스로서 상기 호스트에 나타나도록, 상기 물리적 저장 디바이스로부터 상기 제어기의 호스트 인터페이스를 분리시키는 단계를 포함하는, PCI 버스 호스트에 RAID 저장 디바이스 제어기를 인터페이스하는 방법.The physical storage device such that the storage device controller appears to the host as an IDE device connected via an ATA interface, regardless of the actual number of physical storage devices and interface types actually connected to the physical port interfaces of the controller. Disconnecting the host interface of the controller from the PCI bus host.
KR10-2002-7003752A 1999-09-22 2000-09-21 RAID controller system and method with ATA emulation host interface KR100441189B1 (en)

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 true KR20020048414A (en) 2002-06-22
KR100441189B1 KR100441189B1 (en) 2004-07-21

Family

ID=22557665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7003752A KR100441189B1 (en) 1999-09-22 2000-09-21 RAID controller system and method with ATA emulation host interface

Country Status (9)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736928B1 (en) * 2005-12-05 2007-07-10 삼성전자주식회사 Combination apparatus having data communication between host devices and method thereof
WO2011132923A2 (en) * 2010-04-20 2011-10-27 주식회사 태진인포텍 Raid control semiconductor storage device and manufacturing method thereof
WO2012169823A2 (en) * 2011-06-08 2012-12-13 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with programmable host interface
WO2012169820A2 (en) * 2011-06-08 2012-12-13 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with multiple host interfaces

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3812928B2 (en) * 1999-07-14 2006-08-23 株式会社日立製作所 External storage device and information processing system
JP4742443B2 (en) * 2001-04-25 2011-08-10 ソニー株式会社 Recording / reproducing apparatus, recording / reproducing control method, and recording / reproducing control apparatus
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 (en) * 2003-01-24 2007-01-24 华为技术有限公司 Magnetic disk storage system
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
DE60309706T2 (en) * 2003-09-19 2007-03-29 Harman Becker Automotive Systems Gmbh Data transmission interface
CN100383757C (en) * 2003-09-23 2008-04-23 华为技术有限公司 Disk data backup system and method thereof
JP4578794B2 (en) * 2003-09-30 2010-11-10 ソニー株式会社 MULTISYSTEM, DATA STORAGE ACCESS DEVICE, AND DATA STORAGE ACCESS METHOD
DE10351019A1 (en) * 2003-10-31 2005-06-30 P21 - Power For The 21St Century Gmbh Method for controlling and / or regulating at least one unit in a technical system and technical 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 (en) * 2005-01-13 2008-12-31 普安科技股份有限公司 Redundant storage virtualization computer system
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 (en) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd Disk array control device and control method
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
KR100843199B1 (en) 2006-08-10 2008-07-02 삼성전자주식회사 High speed IDE interface device and method for the same
JP2008276691A (en) * 2007-05-07 2008-11-13 Kwok-Yan Leung Interface card emulating hard disk interface
KR20100069067A (en) * 2008-12-16 2010-06-24 (주)인디링스 Redundant array of independent/inexpensive disks controller of independently managing file system
JP5360883B2 (en) * 2009-02-20 2013-12-04 エヌイーシーコンピュータテクノ株式会社 Disk device mounting method, method, and disk device mounting adapter
TWI465923B (en) * 2011-11-21 2014-12-21 Acer Inc Interface apparatus, connecting system thereof and connecting method thereof
US9117037B2 (en) 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
KR101988287B1 (en) * 2012-11-26 2019-06-12 삼성전자주식회사 Storage device and computing system havint its and data transfering method thereof
TW201634190A (en) 2015-03-18 2016-10-01 Hong Ann Tool Ind Co Ltd Wrench having drawing apparatus
DE102015115950A1 (en) 2015-09-22 2017-03-23 Powagrip Industrial Co., Ltd. Fastener for a wrench
KR102567279B1 (en) * 2016-03-28 2023-08-17 에스케이하이닉스 주식회사 Power down interrupt of non-volatile dual in line memory system

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736928B1 (en) * 2005-12-05 2007-07-10 삼성전자주식회사 Combination apparatus having data communication between host devices and method thereof
WO2011132923A2 (en) * 2010-04-20 2011-10-27 주식회사 태진인포텍 Raid control semiconductor storage device and manufacturing method thereof
WO2011132923A3 (en) * 2010-04-20 2012-05-10 주식회사 태진인포텍 Raid control semiconductor storage device and manufacturing method thereof
WO2012169823A2 (en) * 2011-06-08 2012-12-13 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with programmable host interface
WO2012169820A2 (en) * 2011-06-08 2012-12-13 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with multiple host interfaces
WO2012169823A3 (en) * 2011-06-08 2013-03-07 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with programmable host interface
WO2012169820A3 (en) * 2011-06-08 2013-03-07 Taejin Info Tech Co., Ltd. Semiconductor storage device memory disk unit with multiple host interfaces

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100441189B1 (en) RAID controller system and method with ATA emulation host interface
US6772108B1 (en) Raid controller system and method with ATA emulation host interface
US7073010B2 (en) USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US6065096A (en) Integrated single chip dual mode raid controller
US6286057B1 (en) Method and arrangement for allowing a computer to communicate with a data storage device
US5812814A (en) Alternative flash EEPROM semiconductor memory system
JP3137293B2 (en) ATA interface architecture using state machine
US5729767A (en) System and method for accessing peripheral devices on a non-functional controller
US20080065796A1 (en) High-Level Bridge From PCIE to Extended USB
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
WO2006105548A1 (en) A method and apparatus for indpendent and concurrent data transfer on host controllers
US5668957A (en) Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
US7249253B2 (en) Booting from a re-programmable memory on an unconfigured bus
US7162565B1 (en) Universal serial bus interface to mass storage device
KR20050086832A (en) Bios storage array
US20030229727A1 (en) Method and apparatus of virtual COM port
US10628042B2 (en) Control device for connecting a host to a storage device
US20020194405A1 (en) Disk array system with large storage capacity
GB2367918A (en) Batch methods for accessing IDE task registers
US7730233B2 (en) Data transfer control device and electronic instrument
KR19990074053A (en) Atapi (ID) RAID Controller

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