[go: up one dir, main page]

CN1391672A - 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
CN1391672A
CN1391672A CN00815961A CN00815961A CN1391672A CN 1391672 A CN1391672 A CN 1391672A CN 00815961 A CN00815961 A CN 00815961A CN 00815961 A CN00815961 A CN 00815961A CN 1391672 A CN1391672 A CN 1391672A
Authority
CN
China
Prior art keywords
controller
storage device
ide
ata
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN00815961A
Other languages
Chinese (zh)
Other versions
CN1222876C (en
Inventor
M·C·斯托洛维茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetCell Corp
Original Assignee
NetCell Corp
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 NetCell Corp filed Critical NetCell Corp
Publication of CN1391672A publication Critical patent/CN1391672A/en
Application granted granted Critical
Publication of CN1222876C publication Critical patent/CN1222876C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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盘驱动器的存储设备隔离,使实际连接的驱动器不受数量或接口协议的限制。可以实现各种设备端口,并且可以使用各种RAID策略,例如RAID3和RAID5。在各种情况下,主机接口向主机提供标准统一的接口,即ATA接口(82、84及86),并且最好是双信道ATA接口。主机接口模拟ATA单信道接口或双信道接口,并模拟每信道一或两个所连接的IDE设备,而不管物理上与该控制器连接的设备的实际数量。例如,这样就可以在RAID5协议中配置五或七个IDE设备,而不用改变PCI主机中的标准BIOS。这样,RAID控制器对于标准双信道ATA控制器板是透明的。

Figure 00815961

The RAID storage device controller (70) provides a host interface (56) for connecting the controller to the host system bus. The host interface is isolated from the connected storage devices, such as IDE disk drives, so that the number of drives actually connected is not limited by the interface protocol. Various device ports can be implemented, and various RAID strategies, such as RAID3 and RAID5, can be used. In various cases, the host interface provides a standard, uniform interface to the host, namely the ATA interface (82, 84, and 86), and preferably a dual-channel ATA interface. The host interface emulates a single-channel or dual-channel ATA interface and emulates one or two connected IDE devices per channel, regardless of the actual number of devices physically connected to the controller. For example, this allows configuring five or seven IDE devices in a RAID5 protocol without changing the standard BIOS in the PCI host. Thus, the RAID controller is transparent to standard dual-channel ATA controller boards.

Figure 00815961

Description

具有先进技术嵌入式接口仿真主机接口的 廉价磁盘冗余阵列控制器系统及方法Inexpensive Disk Redundant Array Controller System and Method with Advanced Technology Embedded Interface Emulation Host Interface

相关申请related application

本申请是1999年9月22日提出的美国临时申请No.60/156001的继续并要求其权益。This application is a continuation of and claims the benefit of US Provisional Application No. 60/156001, filed September 22, 1999.

技术领域technical field

本发明涉及计算机数据存储设备控制器,具体地说,涉及一种RAID控制器,具有模拟ATA标准控制器及所连接的IDE设备的主机接口。The invention relates to a computer data storage device controller, in particular to a RAID controller with a host interface simulating an ATA standard controller and connected IDE devices.

发明背景Background of the invention

第一台IBM PC机以及兼容机只有软盘驱动器用于大容量存储。随后的XT和AT型号包含用于连接大容量数据存储的5.25英寸固定盘(非拆卸的)的适配器。这些最初的适配器提供了用于驱动器的大部分低级控制信号,其中包括用于读信号和预补偿写信号的数据分离电路。在适配器中包含了这些功能避免了复制一对驱动器,其中一次只存取一个驱动器。不幸的是,适配器中5MB的读/写信道不允许随着技术的改进而连接速度更快的驱动器。The first IBM PCs and compatibles had only floppy disk drives for mass storage. Subsequent XT and AT models included adapters for attaching 5.25-inch fixed (non-removable) drives for mass data storage. These initial adapters provided most of the low-level control signals for the drive, including data separation circuitry for read signals and precompensated write signals. Including these functions in the adapter avoids duplicating a pair of drives where only one drive is accessed at a time. Unfortunately, the 5MB read/write channel in the adapter doesn't allow faster drives to be connected as technology improves.

通过将控制器的“实时”方式引入驱动器,解决了这个问题。集成驱动电路,即IDE驱动器,结合了读或写驱动器所需的全部控制及数据信道,在本地缓冲器和媒体之间传输数据。制造商可以选择数据速率。对于数据存储设备与主机系统的连接,定义了一种新的接口,即ATA(具有分组接口扩展的AT嵌入式接口(ATA/ATAP14))(IBM AT嵌入式接口)。第一个IDE接口只不过包含了ISA总线和ATA电缆连接器之间的地址解码及缓冲。接口协议采用了程控输入和输出指令来存取IDE设备的寄存器。数据传输采用了主处理器的输入串及输出串指令,调节所连接的驱动器的传输速率。在较近版本的规范中,这些传输速率达到16MBPS。这是存储设备的缓冲器和ISA总线的存储器之间的传输速率。媒体和缓冲器之间的传输速率则要低得多。This problem was solved by bringing the "real-time" approach of the controller to the drive. The integrated drive circuit, or IDE drive, combines all the control and data channels required to read or write the drive, transferring data between the local buffer and the media. Manufacturers can choose the data rate. For the connection of data storage devices to host systems, a new interface is defined, ATA (AT Embedded Interface with Packet Interface Extension (ATA/ATAP14)) (IBM AT Embedded Interface). The first IDE interface simply included address decoding and buffering between the ISA bus and the ATA cable connector. The interface protocol uses program-controlled input and output commands to access the registers of the IDE device. Data transmission uses the input string and output string commands of the main processor to adjust the transmission rate of the connected drive. In more recent versions of the specification, these transfer rates reach 16MBPS. This is the transfer rate between the buffer of the storage device and the memory of the ISA bus. The transfer rate between the media and the buffer is much lower.

随着PCI总线的出现,Intel公司发布了PCI IDE文献(PCI IDE控制器技术规范,修订版1.0,3/4/94),它提供了以前基于ISA总线的主机接口到PCI总线的映射。该标准描述了一种双IDE信道控制器。一对设备,即主设备和从设备,可以连接到每个信道。对于数据传输,还可以将该设备作为PCI总线目标来进行存取。With the emergence of the PCI bus, Intel Corporation released the PCI IDE document (PCI IDE controller technical specification, revision 1.0, 3/4/94), which provides a mapping from the previous host interface based on the ISA bus to the PCI bus. This standard describes a dual IDE channel controller. A pair of devices, a master and a slave, can be connected to each channel. For data transfers, the device can also be accessed as a PCI bus target.

Intel公司还发布了总线主控器IDE文献(总线主控器IDE控制器的编程接口,修订版1.0,5/16/94)。该文献定义了在IDE信道中结合DMA设备的标准。总线主控接口允许IDE信道通过PCI总线向系统存储器或从系统存储器传输数据,作为总线主控器(PCI总线启动器)。传输到32位/33MHz PCI总线的最大传输速率是133MBPS。Intel Corporation has also released the Bus Master IDE Documentation (Programming Interface for Bus Master IDE Controllers, Revision 1.0, 5/16/94). This document defines a standard for incorporating DMA devices in IDE channels. The bus master interface allows the IDE channel to transfer data to or from the system memory through the PCI bus, acting as a bus master (PCI bus initiator). The maximum transfer rate to a 32-bit/33MHz PCI bus is 133MBPS.

ATA规范的修订版定义了一种新的传输模式,即Ultra DMA。通过紧缩电缆中数据传输的设置及保持时间要求,改进了以前的传输速率。在16MBPS时,由发送读选通脉冲、存取数据以及回送该数据的往返行程极大限制了读取传输速率。Ultra DMA协议最初保持了所有信号和电缆的电气特性,只是重新定义了其中三种信号的功能以提供新的协议。在这个协议中,从同一端把提供数据定时的选通脉冲信号作为数据进行传送,即:对于写入,由控制器进行,而对于读取,则由设备进行。在这种配置中,传输速率只是受到电缆单转移(single transition)的电缆歪斜失真的限制。第一UDMA设备使程控IO传输速率倍增到33MBPS。随后的修订版使最初的UDMA传输速率倍增到66MBPS,但要求使用具有交替信号和接地连接件的80带状电缆。目前的版本支持100MBPS的传输速率。目前有一种趋势,就是用高速串行链路来取代ATA并行接口,但可能首先会发布更多增加并行速度的并行接口。A revision of the ATA specification defines a new transfer mode, Ultra DMA. Improves on previous transfer rates by tightening setup and hold time requirements for data transfers in cables. At 16MBPS, the read transfer rate is greatly limited by the round trip of sending the read strobe, accessing the data, and sending that data back. The Ultra DMA protocol originally maintained the electrical characteristics of all signals and cables, but redefined the functions of three of the signals to provide a new protocol. In this protocol, the strobe signal that provides the timing of the data is transmitted as data from the same end, that is, by the controller for writes and by the device for reads. In this configuration, the transfer rate is limited only by the cable skew of the cable's single transition. The first UDMA device doubles the programmable IO transfer rate to 33MBPS. Subsequent revisions doubled the original UDMA transfer rate to 66MBPS, but required the use of 80 ribbon cables with alternating signal and ground connections. The current version supports a transfer rate of 100MBPS. There is a trend to replace the ATA parallel interface with a high-speed serial link, but more parallel interfaces that increase parallel speed may be released first.

问题question

常见的个人计算机包括以芯片组为中心而设计的主板,包括处理器、DRAM接口、各种输入/输出适配器及BIOS ROM。IO适配器通常包括IDE接口。当前版本的IDE控制器的特色在于有一对IDE端口,每个端口均能够与一对IDE存储设备连接。这些设备通常包括一个或多个IDE硬盘和CD ROM、DVD ROM或CD WORM驱动器。基本输入输出系统,即BIOS,是一种程序,用来引导PC并为主板上的适配器提供低级IO例程。所有这些PC基本上都可以使用主板BIOS从IDE硬盘进行引导及运行。A common personal computer includes a motherboard designed around a chipset, including a processor, DRAM interface, various input/output adapters, and BIOS ROM. IO adapters usually include IDE interfaces. The current version of the IDE controller features a pair of IDE ports, each capable of connecting to a pair of IDE storage devices. These devices usually 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 that boots a PC and provides low-level IO routines for adapters on the motherboard. Basically all of these PCs can use the motherboard BIOS to boot and run from an IDE hard drive.

在小办公室/家庭办公室(SOHO)市场的服务器或工作站应用中配置了越来越多的个人计算机。历史上,具有小型计算机系统接口(SCSI)的硬盘为更加要求严格的应用提供了一些性能增益。但是在今天,随着85%以上的驱动器做成IDE驱动器,SCSI驱动器也趋向于采用同样的媒体和读/写头来建造,具有极少或没有性能增益并极大地增加了成本。另一种流行的选择方案是,采用廉价磁盘冗余阵列(RAID),它最初是由Patterson建议(D.Patterson等人的“廉价磁盘冗余阵列(RAID)的情况”一文(Univ.Cal.Report No.UCB/CSD87/391,Dec.1987)。RAID系统致力于可靠性和性能这两个方面。首先,通过两个或多个驱动器以冗余方式储存数据,以便在单个驱动器故障时不会丢失数据,从而实现可靠性。其次,相对于单个驱动器,由于该阵列的集合性能,实现了性能增加。以冗余方式储存的数据的不同部分可以同时从两个驱动器中进行读取。另外,数据能以数据条的形式写入,其中,数据条贯穿于所有可用的驱动器,在读回数据时,可以实现集合传输速率。在本发明的美国专利No.6018778中对RAID阵列控制器进行了进一步说明。An increasing number of personal computers are deployed in server or workstation applications in the small office/home office (SOHO) market. Historically, hard drives with Small Computer System Interface (SCSI) provided some performance gains for more demanding applications. But today, with more than 85% of drives made as IDE drives, SCSI drives also tend to be built with the same media and read/write heads, with little or no performance gain and a huge increase in cost. Another popular option is to use Redundant Arrays of Inexpensive Disks (RAID), which was originally suggested by Patterson (D. Patterson et al. "The Case for Redundant Arrays of Inexpensive Disks (RAID)" (Univ. Cal. Report No.UCB/CSD87/391, Dec.1987). RAID systems are committed to these two aspects of reliability and performance. First, data is stored in a redundant manner through two or more drives so that no single drive fails Data is lost, thereby achieving reliability. Second, relative to a single drive, due to the collective performance of the array, performance increases are achieved. Different parts of data stored in a redundant manner can be read from two drives at the same time. In addition , data can be written in the form of data strips, wherein, data strips run through all available drives, and when data is read back, an aggregate transfer rate can be achieved. In US Patent No.6018778 of the present invention, the RAID array controller has been implemented Further explanation.

不幸的是,现有的几种RAID解决方案存在一些缺陷。SCSI盘驱动器的局部智能和及使用代表一类RAID解决方案的特征。这类解决方案展示了高性能,虽然驱动器和控制器的成本极高。另一类流行的RAID解决方案的特征在于使用IDE驱动器但缺乏局部智能或缓冲。这主要是软件解决方案。控制多个驱动器以便保持冗余或者使数据成条所需的软件均必须在主机系统中运行,极大地增加了磁盘驱动器在处理器及系统总线中开销。这样,RAID效益是以由于所述增加的系统开销而引起系统性能下降的代价来实现的。这两种解决方案都有一个附加的问题。这些RAID控制器没有直接被主板的BIOS所支持。要求额外的软件驱动程序。这些驱动程序可能随操作系统的功能而有所变化,所述操作系统例如有Windows、WindowsNT、UNIX、LINUX等,从而给控制器生产商、OEM、市场小组以及系统集成商带来额外的负担。Unfortunately, several existing RAID solutions have some drawbacks. The local intelligence and use of SCSI disk drives characterizes a class of RAID solutions. Such solutions exhibit high performance despite the high cost of drivers and controllers. Another popular class of RAID solutions is characterized by the use of IDE drives but lacks local intelligence or buffering. This is mostly a software solution. All the software required to control multiple drives for redundancy or to stripe data must run on the host system, greatly increasing disk drive overhead on the processor and system bus. Thus, RAID benefits are realized at the expense of system performance degradation due to the increased system overhead. Both solutions have an additional problem. These RAID controllers are not directly supported by the motherboard's BIOS. Additional software drivers are required. These drivers may vary with the functions of the operating system, such as Windows, Windows NT, UNIX, LINUX, etc., thereby bringing additional burdens to controller manufacturers, OEMs, marketing groups, and system integrators.

因此,仍然需要一种RAID存储设备控制器,它不需要专门的软件在主处理器中执行,并且不需要额外的软件驱动程序或对BIOS进行改变。不需要对BIOS进行改变的RAID控制器通常具有以下优点:与实际上所有实现ATA顺应接口的标准的现成计算机具有“即插即用”的兼容性。RAID控制器对主机是透明的,且能以设备接口的任意组合来配置多个存储设备(不限于四个),并能够实现RAID镜像、成条等,而不给主机增加开销。这种RAID控制器以低成本和极为简易的安装来把RAID功能带给所有PC用户。Therefore, there remains a need for a RAID storage device controller that does not require specialized software to execute in the host processor, and that does not require additional software drivers or changes to the BIOS. RAID controllers that do not require changes to the BIOS generally have the advantage of "plug and play" compatibility with virtually all off-the-shelf computers that implement the ATA-compliant interface standard. The RAID controller is transparent to the host, and can configure multiple storage devices (not limited to four) with any combination of device interfaces, and can implement RAID mirroring, stripes, etc., without adding overhead to the host. This RAID controller brings RAID functionality to all PC users with low cost and extremely easy installation.

发明概述Summary of the invention

本发明实现一种RAID控制器,它与所有操作系统兼容,所述操作系统可以使用标准IDE控制器和IDE驱动器在给定的PC主板上进行引导和运行。通过模拟标准控制器和所连接的驱动器来实现所述兼容性。例如,对于可靠性,给定系统可在RAID1或“镜像”配置中要求一对驱动器。在连接到本发明所述的控制器时,BIOS将看到单个极为可靠的驱动器。该系统还可要求三个驱动器的阵列,配置为RAID3或RAID5配置。这将提供两倍于三个驱动器的其中任何一个的传输速率,同时具有高可靠性。同样地,在本发明中,对于BIOS,这种三个驱动器的阵列看起来似乎为单个驱动器,告知有两倍于这三个驱动器的其中任何一个的容量,并展示有两倍的传输速率,具有高可靠性。在任何情况下,RAID对于BIOS中现有的驱动程序是透明的。The present invention implements a RAID controller that is compatible with all operating systems that can be booted and run on a given PC motherboard using standard IDE controllers and IDE drivers. This compatibility is achieved by simulating standard controllers and connected drives. For example, for reliability, a given system may require a pair of drives in a RAID1 or "mirrored" configuration. When connected to the controller of the present invention, the BIOS will see a single, extremely reliable drive. The system can also require an array of three drives, configured in a RAID3 or RAID5 configuration. This will provide twice the transfer rate of any of the three drives with high reliability. Likewise, in the present invention, to the BIOS, this three-drive array appears to be a single drive, advertises twice the capacity of any of the three drives, and exhibits twice the transfer rate, With high reliability. In any case, RAID is transparent to the existing drivers in the BIOS.

本发明的控制器模拟标准两信道IDE控制器。象标准控制器一样,它在逻辑上被连接到PCI总线。它在物理上可以存在于主板上,可能集成在主板芯片组中,或者存在于PCI槽的插入式卡中。它可以模拟可连接到标准控制器的所有四个设备。这些逻辑设备的每一个均提供对连接到所述控制器的物理设备的阵列的可能接口。虽然本实施例提供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 can physically exist on the motherboard, possibly integrated in the motherboard chipset, or in a plug-in card in a PCI slot. It can emulate all four devices that can be connected to a standard controller. Each of these logical devices provides a possible interface to the array of physical devices connected to the controller. Although this embodiment provides an ATA port for the connection of a physical drive, other types or combinations of interfaces may be used.

通过以下结合附图对最佳实施例的详细说明,本发明的其它目的和优点将会明显。Other objects and advantages of the present invention will become apparent through the following detailed description of the preferred embodiment with reference to the accompanying drawings.

附图概述Figure overview

图1是现有技术ATA双信道控制器应用的简化方框图,说明物理及软件/寄存器视图。Figure 1 is a simplified block diagram of a prior art ATA dual channel controller application illustrating the physical and software/register views.

图2是一种根据本发明的具有ATA端口仿真的RAID控制器的简化方框图。Figure 2 is a simplified block diagram of a RAID controller with ATA port emulation in accordance with the present invention.

图3是一种具有ATA端口仿真的RAID控制器的目前最佳商业实施例的高层简化方框图。Figure 3 is a high level simplified block diagram of a currently preferred commercial embodiment of a RAID controller with ATA port emulation.

图4更为详细地说明图3的控制器的ATA寄存器文件的一种实现。FIG. 4 illustrates an implementation of the ATA register file of the controller of FIG. 3 in more detail.

最佳实施例详细说明DETAILED DESCRIPTION OF THE BEST EMBODIMENTS

图1的上半部分说明了个人计算机中ATA控制器10的典型现有技术应用,它提供系统总线12和存储设备14之间的接口。系统总线12是PCI总线。在逻辑上连接到PCI总线时,ATA控制器通常集成在主板芯片组中。对于给定的应用,其它或附加的控制器可以插入到主板上PCI总线插槽(未示出)的其中之一。PCI总线提供配置机制,通过这种机制,可以将唯一地址指定给各控制器。典型的控制器10提供两个信道,它们端接于一对分别标识为基本、次要IDE连接器的连接器16和18。每个次要信道将支持一对共享连接器和电缆的存储设备。例如,在图1中,次要信道电缆19连接到主控存储设备20以及从存储设备22。另一对驱动器同样地连接到基本信道电缆24。这样,这两个信道控制器10支持总共四个设备,如图1所示。The upper part of FIG. 1 illustrates a typical prior art application of an ATA controller 10 providing an interface between a system bus 12 and a storage device 14 in a personal computer. The system bus 12 is a PCI bus. When logically connected to the PCI bus, the ATA controller is usually integrated in the motherboard chipset. For a given application, other or additional controllers may plug into one of the PCI bus slots (not shown) on the motherboard. The PCI bus provides a configuration mechanism by which each controller can be assigned a unique address. A typical controller 10 provides two channels terminated in a pair of connectors 16 and 18, identified as primary and secondary IDE connectors, respectively. Each secondary channel will support a pair of storage devices that share a connector and cable. For example, in FIG. 1 , secondary channel cable 19 connects to master storage device 20 and to slave storage device 22 . Another pair of drivers is similarly connected to the fundamental channel cable 24 . Thus, the two channel controllers 10 support a total of four devices, as shown in FIG. 1 .

图1的下半部分说明从PCI总线的角度看到的IDE控制器的编程接口及驱动器。每个块的物理地址通过控制器的PCI总线配置空间来指配,正如业内所知的那样,以及在前面引用的Intel PCI IDE控制器规范文献中被描述。前面引述的另一个Intel文献“总线主IE控制器的编程接口”说明了总线主IDE控制器的编程接口。在这个机制标准化之前,存储设备数据通常是通过程控I/O进行传输的,其中,数据传输所需的载入和储存均由系统处理器来执行。虽然仍然支持程控I/O机制,然而总线主接口允许ATA控制器通过直接存取系统存储器,即通过DMA,来传输数据。总线主IDE控制器文献定义了寄存器的十六字节块,它支持一对总线主控制器,一个用于基本ATA信道,一个则用于次要ATA信道。该寄存器块在物理上是控制器的组成部分。如图所示,它分割为两个部分30和32,一个部分与每个信道关联。The lower part of Fig. 1 illustrates the programming interface and driver of the IDE controller seen from the perspective of the PCI bus. The physical address of each block is assigned through the controller's PCI bus configuration space, as is known in the art and described in the previously referenced Intel PCI IDE Controller Specification document. Another Intel document cited earlier, "Programming Interface for Bus-Master IE Controllers," describes the programming interface for bus-master IDE controllers. Before this mechanism was standardized, storage device data was typically transferred via programmed I/O, where the loads and stores required for data transfers were performed by the system processor. Although the programmable I/O mechanism is still supported, the bus master interface allows the ATA controller to transfer data through direct access to system memory, ie through DMA. The bus master IDE controller documentation defines a sixteen-byte block of registers that supports a pair of bus masters, one for the primary ATA channel and one for the secondary ATA channel. This register block is physically an integral part of the controller. As shown, it is split into two sections 30 and 32, one section being associated with each channel.

ATA规范定义了储存储设备的编程接口。该接口包括两个寄存器块:命令块和控制块。命令块是字节宽度寄存器的八字节块。控制块是字节宽度寄存器的四字节块。这些寄存器的所有实现细节均公布在ATA规范中。The ATA specification defines the programming interface for storage devices. The interface consists of two register blocks: a command block and a control block. A command block is an eight-byte block of byte-wide registers. A control block is a four-byte block of byte-wide registers. All implementation details of these registers are published in the ATA specification.

图1的右侧示出四组命令和控制寄存器块,一个组对应于四个所连接的存储设备的其中一个。例如,一组寄存器块36包括命令块38和相应控制块40。这些寄存器在物理上是图1上半部分所示的相应存储设备的组成部分。这样,寄存器组36(基本信道)便位于主存储设备25中。如果没有连接一个给定的存储设备,则其命令和控制寄存器块将不会出现在编程接口中。The right side of Figure 1 shows four sets of command and control register blocks, one set corresponding to one of the four attached memory devices. For example, a set of register blocks 36 includes a command block 38 and a corresponding control block 40 . These registers are physically an integral part of the corresponding memory devices shown in the upper part of Figure 1. Thus, register set 36 (fundamental channel) is located in main storage device 25 . If a given memory device is not connected, its command and control register block will not appear in the programming interface.

ATA规范还定义了存储设备所支持的协议。一般来说,存取命令及所有相关参数被装入命令块的寄存器中。存储设备将执行该命令。对于设备写入,它将首先请求写入数据。对于程控I/O操作,主处理器将从系统存储器中读取数据,并使用一部分命令块作为十六比特窗口,将所述数据写入该设备中的缓冲器(未示出)。对于总线主DMA操作,ATA控制器将根据信道的总线主控制器寄存器块的配置,直接从系统存储器中存取数据。存储设备则存取存储媒体,在媒体及其本地缓冲器之间传输数据。对于媒体读取,利用上述程控I/O或总线主DMA,把本地缓冲器中的数据传输给系统存储器。最后,存储设备将通过ATA控制器、或通过状态寄存器轮询、或采用中断,向主机系统指示操作完成。The ATA specification also defines the protocols supported by storage devices. In general, access commands and all associated parameters are loaded into registers of the command block. The storage device will execute the command. For device writes, it will first request data to be written. For programmed I/O operations, the host processor will read data from system memory and write the data to a buffer (not shown) in the device using a portion of the command block as a sixteen bit window. For bus master DMA operations, the ATA controller will directly access data from system memory according to the configuration of the channel's bus master controller register block. Storage devices access storage media and transfer data between the media and its local buffers. For media reads, the data in the local buffer is transferred to system memory using the above-mentioned programmed I/O or bus master DMA. Finally, the storage device will indicate to the host system that the operation is complete through the ATA controller, either by polling the status register, or using an interrupt.

上电时,个人计算机执行物理上储存于主板上非易失性存储器中的代码。基本输入输出系统,即BIOS代码,从连接到ATA控制器的ATA存储设备中装载个人计算机操作系统,并为这样的存储设备提供低级I/O系统驱动程序。When powered on, a PC executes code that is physically stored in non-volatile memory on the motherboard. The Basic Input Output System, or BIOS code, loads the PC operating system from ATA storage devices connected to the ATA controller and provides low-level I/O system drivers for such storage devices.

本发明模拟图1所示及如上所述的ATA控制器,并且与其在编程层完全兼容。下面参照图2,图2的上半部分是根据本发明的控制器的方框图,它可以配置为例如RAID控制器。控制器块50的左侧代替标准双信道ATA控制器而连接到PCI总线,并模拟一至四个所连接的ATA存储设备。下面将要详细说明的ATA存储设备的仿真,将控制器的主机接口同物理设备接口分离,在要提供的设备接口类型和接口数方面允许相当大的自由度。例如,本发明的应用可以实现X个SCSI端口和/或Y个ATA端口,其中,X和Y绝不限于主机系统中出现的四个逻辑驱动器。图2是实现编号为0至N-1的N+1个ATA端口的示例。The present invention emulates the ATA controller shown in Figure 1 and described above, and is fully compatible with it at the programming level. Referring now to FIG. 2, the upper part of FIG. 2 is a block diagram of a controller according to the present invention, which can be configured as a RAID controller, for example. The left side of the controller block 50 connects to the PCI bus in place of a standard dual-channel ATA controller and emulates one to four connected ATA storage devices. The emulation of the ATA storage device, described in detail below, separates the controller's host interface from the physical device interface, allowing considerable freedom in the type and number of device interfaces to be provided. For example, an application of the present invention may implement X SCSI ports and/or Y ATA ports, where X and Y are by no means limited to the four logical drives present in the host system. FIG. 2 is an example of implementing N+1 ATA ports numbered from 0 to N−1.

图2的下半部分说明本发明的编程接口。主机接口56实现从标准ATA控制器的PCI总线的角度可见的所有寄存器块:双信道总线主控制器块58、60以及四组编号分别为62、64、66和68的命令和控制寄存器块。主机接口块56模拟ATA控制器和ATA存储设备的寄存器,模拟至支持ATA规范协议所需的层。The lower part of Figure 2 illustrates the programming interface of the present invention. The host interface 56 implements all the register blocks seen from the point of view of the standard ATA controller's PCI bus: the dual channel bus master controller blocks 58, 60 and four sets of command and control register blocks numbered 62, 64, 66 and 68 respectively. The host interface block 56 emulates the registers of the ATA controller and ATA storage device, down to the layers required to support the ATA specification protocol.

图2下部分的块70说明控制器块50的主要组件。除了主机接口块56之外,控制器70还包括RAM缓冲高速缓冲存储器72、DMA信道74及处理器80,下面将进一步说明。控制器块70还包括多个ATA端口接口,例如接口82、84以及86。每个ATA端口接口都提供标准接口连接给诸如盘驱动器的IDE类型存储设备。如前面所述,每个存储设备在主板上包括命令和控制寄存器块。例如,将它们作为命令寄存器块90和控制器块92来进行说明,这两者均与单个设备关联,即与主驱动器关联,它们与ATA端口接口82、标准连接器电缆96相连接。控制器块70可以被配置为包括任何所需数量的ATA端口,同时仍然提供标准双信道控制器接口56给主机PCI总线12。Block 70 in the lower portion of FIG. 2 illustrates 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 further described below. Controller block 70 also includes a number of ATA port interfaces, such as interfaces 82 , 84 and 86 . Each ATA port interface provides a standard interface to IDE type storage devices such as disk drives. As previously mentioned, each memory device includes a block of command and control registers on the motherboard. For example, they are illustrated as a command register block 90 and a controller block 92 , both associated with a single device, ie a host drive, connected to the ATA port interface 82 , standard connector cable 96 . The controller block 70 can be configured to include any desired number of ATA ports while still providing a standard dual channel controller interface 56 to the host PCI bus 12 .

图3示出本发明目前最佳实施例的详细方框图。该系统是作为专用集成电路(ASIC)以0.18微米的CMOS工艺来实现的。所述设备在逻辑上划分为四个模块,每个模块具有到设备外部的有关端口。Figure 3 shows a detailed block diagram of the presently preferred embodiment of the invention. The system is implemented as an Application Specific Integrated Circuit (ASIC) in a 0.18 micron CMOS process. The device is logically divided into four modules, each module having an associated port to the outside of the device.

主机接口100是以PCI核心104为基础用铟硅制造的。CS6464AF是软核心(为特定应用合成的Verilog源),它支持32位和64位两种PCI总线,PCI总线时钟速率为33MHZ或66MHZ。该核心支持主操作和目标操作。目标特征(target feature)106提供对前面所述的ATA兼容寄存器文件的存取。主能力(master capability)108用来模拟ATA控制器的总线主DMA特征。PCI核心包括模拟双端口ATA控制器的配置空间110的配置空间。The host interface 100 is based on the PCI core 104 fabricated in indium silicon. CS6464AF is a soft core (Verilog source synthesized for specific applications), which supports 32-bit and 64-bit PCI buses, and the PCI bus clock rate is 33MHZ or 66MHZ. The core supports master and destination operations. Target feature 106 provides access to the previously described ATA compatible register file. The master capability 108 is used to emulate the bus master DMA feature of the ATA controller. The PCI core includes a configuration space that emulates the configuration space 110 of a dual-port ATA controller.

DRAM接口块120支持外部连接的SDRAM 122。64位宽、100MHZ单一数据速率端口124支持800MBPS的最大传输速率。在本地,通过经主机接口100向或从PCI总线进行传输,通过经驱动器接口130向或从盘驱动器进行传输,可以共享DRAM接口,并由处理器块150中的本地处理器进行存取。The DRAM interface block 120 supports externally connected SDRAM 122. The 64-bit wide, 100MHZ single data rate port 124 supports a maximum transfer rate of 800MBPS. Locally, the DRAM interface may be shared and accessed by the local processor in processor block 150 by transferring to or from the PCI bus via host interface 100 and to or from the disk drive via drive interface 130 .

驱动器接口块130提供五个ATA端口,例如134,每个端口均能够支持主和从驱动器。每个端口支持达到16MBPS传输速率的程控输入输出(PIO)以及达到100MBPS传输速率的Ultra DMA。Drive interface block 130 provides five ATA ports, such as 134, each capable of supporting master and slave drives. Each port supports programmable input and output (PIO) up to 16MBPS transfer rate and Ultra DMA up to 100MBPS transfer rate.

处理器块是围绕EZ4102 TinyRISC核心160由LSI逻辑电路制造的。该处理器是MIPS处理器的变体。上电时,处理器从通过扩展总线端口166进行存取的外部快速存储器162中装载代码。该代码被传输给处理器块中的SRAM块170。处理器160配置其它每个模块,并且通过这些模块,它可以存取PCI总线、SDRAM或ATA驱动器。一般来说,通过不要求处理器来处理数据,系统传输速率得到增强。处理器通过配置这些块中的DMA引擎136、146来装载或者卸载其间的FIFO 148,来协调驱动器和DSRAM之间的数据传送。同样地,它通过配置DRAM接口和主机接口中的DMA引擎172、102来装载或卸载这些块之间的FIFO 174,来协调SDRAM和PCI总线目标之间的传输。The processor block is built around the EZ4102 TinyRISC core 160 by LSI Logic. This processor is a variant of the MIPS processor. On power up, the processor loads code from external flash memory 162 accessed through expansion bus port 166 . This code is transferred to the SRAM block 170 in the processor block. The processor 160 configures each of the other modules and through these modules it can access the PCI bus, SDRAM or ATA drives. In general, system transfer rates are enhanced by not requiring a processor to process data. The processor coordinates data transfers between the driver and DSRAM by configuring the DMA engines 136, 146 in these blocks to load and unload the FIFO 148 in between. Likewise, it coordinates transfers between SDRAM and PCI bus targets by configuring the DMA engines 172, 102 in the DRAM interface and the host interface to load and unload the FIFO 174 between these blocks.

图4说明ATA寄存器文件实现细节。寄存器全部为双端口,并可以由主机系统或由本地处理器160从PCI总线进行存取。从PCI总线的角度看,每个ATA信道具有与其相关的两寄存器块。命令块208是字节宽寄存器的八字节范围。控制块210是四字节范围,其中仅使用单个存储单元。如前所述,单个ATA端口可以用来存取一对连接到公共电缆的驱动器。每个设备均具有其自己的命令和控制寄存器块。设备在物理上配置了跳线,以便将其中一个指定为主,而将另一个指定为从。通过将一个字节数据以地址偏移量六写入命令块的设备标题寄存器中,来选择一个特定的设备用于存取。如果申明为位四,则对于随后的操作,选择从设备而取消选择主设备。如果对同一个寄存器进行写入,其中位四被清除,则选择主设备,而取消选择从设备。为了在本发明中模拟这种行为,实现主和从寄存器组。此外,提供单比特从寄存器230,它记录最近写入设备标题寄存器的位四。从寄存器控制从PCI总线的读复用及写地址解码,从而将根据最近的设备选择来存取适当的寄存器块对。Figure 4 illustrates the ATA register file implementation details. The registers are all dual ported and can be accessed by the host system or by the local processor 160 from the PCI bus. From the perspective of the PCI bus, each ATA channel has two register blocks associated with it. Command block 208 is an eight byte range of byte wide registers. Control block 210 is a four-byte range where only a single location of storage is used. As mentioned earlier, a single ATA port can be used to access a pair of drives connected to a common cable. Each device has its own block of command and control registers. The devices are physically configured with jumpers so that one is designated as master and the other as slave. A specific device is selected for access by writing a byte of data into the device header register of the command block with an address offset of six. If bit four is asserted, the slave is selected and the master is deselected for subsequent operations. A write to the same register with bit four cleared selects the master and deselects the slave. To simulate this behavior in the present invention, master and slave register sets are implemented. Additionally, a single bit slave register 230 is provided which records the bit four most recently written to the device header register. The slave registers control read multiplexing and write address decoding from the PCI bus so that the appropriate pair of register blocks will be accessed based on the most recent device selection.

上电时或复位后,ATA设备最初为忙。通过读取命令块中地址偏移七的状态寄存器,或读取控制块中的备用状态寄存器块,可以检测到忙状态。在设备忙时,没有其它的寄存器可以被存取。为了在本发明中模拟这种行为,提供了单个比特忙寄存器232。通过从PCI总线进行复位,通过对控制块的设备控制寄存器中的软复位比特的写入,或者在命令寄存器块的地址偏移七写入命令寄存器时,来设置该寄存器。本地处理器可对忙寄存器进行清除。On power-up or after reset, the ATA device is initially busy. The busy condition can be detected by reading the status register at address offset seven in the command block, or by reading the alternate status register block in the control block. While the device is busy, no other registers can be accessed. To simulate this behavior in the present invention, a single bit busy register 232 is provided. This register is set by a reset from the PCI bus, by a write to the soft reset bit in the device control register of the control block, or when the address offset seven of the command register block is written to the command register. The local processor can clear the busy register.

如果在设备中已允许中断,则每个ATA设备能够向主机系统申明中断请求。为了模拟这种行为,为主和从设备提供单个比特中断请求234和中断允许236寄存器。通过各设备的设备控制寄存器来控制中断允许。每个设备可以向主机系统申明中断请求,以便传输数据或返回完成状态。在本发明中,中断请求可以由本地处理器进行设置或清除。通过读取设备的状态寄存器(但不是备用状态寄存器),也对中断请求进行清除,如ATA规范的协议所述。主和从设备的中断请求和中断允许状态可以独立地保持,从而在主机改变设备选择时可以获得适当的行为。Each ATA device is capable of asserting an interrupt request to the host system if interrupts have been enabled in the device. To emulate this behavior, single bit interrupt request 234 and interrupt enable 236 registers are provided for master and slave devices. Interrupt enable is controlled by the device control register of each device. Each device can assert an interrupt request to the host system in order to transfer data or return a completion status. In the present invention, the interrupt request can be set or cleared by the local processor. Interrupt requests are also cleared by reading the device's status register (but not the alternate status register), as described in the protocol of the ATA specification. The interrupt request and interrupt enable states of master and slave devices can be maintained independently, allowing proper behavior when the master changes device selection.

对于次要信道,主和从设备的命令和控制寄存器文件以及从、忙、中断“边缘效应”均被复制。所有四个设备的命令及控制寄存器文件块全部线性地被映射到本地处理器的地址空间中。For secondary channels, the command and control register files of the master and slave devices and the slave, busy, interrupt "edge effects" are duplicated. The command and control register file blocks for all four devices are all linearly mapped into the address space of the local processor.

共享的双信道总线主控制器块250可以从PCI总线或由本地处理器来进行存取。The shared dual channel bus master controller block 250 can be accessed from the PCI bus or by a local processor.

根据ATA协议,选择设备,给定命令所需的所有参数均被装载到命令寄存器文件,随后该命令本身也以偏移量七载入所述寄存器。如上所述,这将设置信道为忙。忙的上升边引起到本地处理器的中断,本地处理器将通过解释该命令及其参数来进行响应。大多数命令将被重新映射为所连物理设备阵列的存取。这些存取可以用来实现任何公共RAID协议,包括但不限制于RAID0、1、3和5。本地处理器具有读取多于所请求的数据的选项。附加数据预先储存在SDRAM中以备随后的读取。本地处理器可以按命令要求使用程控IO或DMA来安排在SDRAM和主机系统之间的数据传输。According to the ATA protocol, selecting the device, all parameters required for a given command are loaded into the command register file, and then the command itself is also loaded into said registers at offset seven. As above, this will set the channel to busy. A busy rising edge causes an interrupt to the local processor, which will respond by interpreting the command and its parameters. Most commands will be remapped as accesses to arrays of attached physical devices. These accesses can be used to implement any common RAID protocol, including but not limited to RAID0, 1, 3 and 5. The local handler has the option to read more data than requested. Additional data is pre-stored in SDRAM for subsequent reading. The local processor can use program-controlled IO or DMA to arrange data transfer between SDRAM and host system as required by the command.

总之,本发明包括RAID存储设备控制器,提供主机接口,用于将控制器与主机系统总线连接。主机接口与例如如IDE盘驱动器的所连存储设备隔离,使实际连接的驱动器不受数量或接口协议的限制。可以实现各种设备端口,并且可以使用各种RAID策略,例如RAID3和RAID5。在各种情况下,主机接口提供对主机的标准统一接口,即ATA接口,最好是双信道ATA接口。主机接口模拟ATA单信道接口或双信道接口,并模拟每个信道所连的一或两个IDE设备,而不管物理上与该控制器连接设备的实际数量。例如,这样就可以在RAID5中部署五或七个IDE驱动器,而不用改变PCI主机中的标准BIOS。这样,RAID控制器对于标准的双信道ATA控制器板是透明的。In summary, the present invention includes a RAID storage device controller that provides a host interface for connecting the controller to a host system bus. The host interface is isolated from attached storage devices such as IDE disk drives, so that the number of drives actually connected is not limited by the interface protocol. Various device ports can be implemented, and various RAID strategies can be used, such as RAID3 and RAID5. In each case, the host interface provides a standard unified interface to the host, namely an ATA interface, preferably a dual-channel ATA interface. The host interface emulates an ATA single or dual channel interface and emulates one or two IDE devices per channel, regardless of the actual number of devices physically connected to the controller. This makes it possible, for example, to deploy five or seven IDE drives in RAID5 without changing the standard BIOS in the PCI host. This way, the RAID controller is transparent to standard dual-channel ATA controller boards.

本领域的技术人员将清楚,在不脱离本发明的基本原则的情况下,可以对本发明的上述实施例细节进行许多改变。因此,本发明的范围应当由后附权利要求来定义。It will be apparent to those skilled in the art that many changes may be made to the details of the above-described embodiments of the invention without departing from the basic principles of the invention. Accordingly, the scope of the invention should be defined by the appended claims.

Claims (20)

1.一种存储设备控制器,它包括:1. A storage device controller comprising: 主机接口,用于将所述控制器与主机系统总线连接,所述主机接口模拟标准IDE信道,并且还模拟好似连接到所述IDE信道的IDE设备;以及a host interface for connecting the controller to a host system bus, the host interface emulating a standard IDE channel and also emulating an IDE device as if connected to the IDE channel; and 至少一个物理接口,用于将所述存储设备控制器与物理存储设备连接。At least one physical interface is used to connect the storage device controller with a physical storage device. 2.如权利要求1所述的存储设备控制器,其特征在于所述物理接口的其中至少一个实现ATA端口,用于将ATA兼容存储设备连接到所述控制器。2. The storage device controller of claim 1, wherein at least one of the physical interfaces implements an ATA port for connecting an ATA compatible storage device to the controller. 3.如权利要求1所述的存储设备控制器,其特征在于所述主机接口模拟至少一个基本信道和次要信道。3. The storage device controller of claim 1, wherein the host interface emulates at least one of a primary channel and a secondary channel. 4.如权利要求3所述的存储设备控制器,其特征在于所述主机接口模拟连接到各个所述基本和次要信道的单个IDE设备。4. The storage device controller of claim 3, wherein said host interface emulates a single IDE device connected to each of said primary and secondary channels. 5.如权利要求3所述的存储设备控制器,其特征在于所述主机接口模拟主IDE存储设备和从IDE存储设备,所述主IDE存储设备和从IDE存储设备连接到所述基本和次要信道的其中之一。5. The storage device controller of claim 3, wherein the host interface emulates a primary IDE storage device and a secondary IDE storage device connected to the primary and secondary IDE storage devices. One of the channels to be channeled. 6.如权利要求3所述的存储设备控制器,其特征在于还包括用于模拟标准双端口IDE控制器的总线主DMA控制器的装置。6. The storage device controller of claim 3, further comprising means for simulating a bus master DMA controller of a standard dual port IDE controller. 7.如权利要求1所述的存储设备控制器,其特征在于所述主机接口模拟连接到所述IDE信道的单个IDE设备。7. The storage device controller of claim 1, wherein the host interface emulates a single IDE device connected to the IDE channel. 8.如权利要求1所述的存储设备控制器,其特征在于所述主机接口模拟连接到所述IDE信道的主IDE存储设备和从IDE存储设备。8. The storage device controller of claim 1, wherein the host interface emulates a master IDE storage device and a slave IDE storage device connected to the IDE channel. 9.如权利要求1所述的存储设备控制器,其特征在于还包括用于模拟标准双端口IDE控制器的总线主DMA控制器的装置。9. The storage device controller of claim 1, further comprising means for simulating a bus master DMA controller of a standard dual port IDE controller. 10.一种RAID存储设备控制器,它包括:10. A RAID storage device controller comprising: 主机接口,用于将所述控制器与主机系统总线连接,所述主机接口模拟至少一个ATA控制器信道;a host interface for connecting the controller to a host system bus, the host interface simulating at least one ATA controller channel; 所述主机接口还通过实现IDE顺应命令和控制寄存器块,来模拟好似连接到所述仿真ATA控制器信道的至少一个IDE设备;said host interface also emulates at least one IDE device as though connected to said emulated ATA controller channel by implementing an IDE compliant command and control register block; 至少两个物理接口,用于将所述存储设备控制器连接到多个存储设备;以及at least two physical interfaces for connecting the storage device controller to a plurality of storage devices; and 所述控制器中的本地处理器,用于控制物理存储设备存取操作。The local processor in the controller is used to control the access operation of the physical storage device. 11.如权利要求10所述的RAID存储设备控制器,其特征在于还包括用于模拟标准双端口IDE控制器的总线主DMA控制器的装置。11. The RAID storage device controller of claim 10, further comprising means for simulating a bus master DMA controller of a standard dual port IDE controller. 12.如权利要求10所述的RAID存储设备控制器,其特征在于还包括:缓冲存储器,用于缓存所述主机系统总线和所述连接的存储设备之间的数据传输;以及DMA引擎,它被布置用于在所述主机接口和所述缓冲存储器之间传输数据。12. The RAID storage device controller as claimed in claim 10, further comprising: a buffer memory for buffering data transmission between the host system bus and the connected storage device; and a DMA engine, which arranged for transferring data between said host interface and said buffer memory. 13.如权利要求12所述的RAID存储设备控制器,其特征在于包括DMA引擎,它被布置用于在所述缓冲存储器和端口接口之间传输数据。13. The RAID storage device controller of claim 12, comprising a DMA engine arranged to transfer data between the buffer memory and the port interface. 14.如权利要求10所述的RAID存储设备控制器,其特征在于所述主机接口模拟基本ATA信道和次要ATA信道。14. The RAID storage device controller of claim 10, wherein the host interface emulates a primary ATA channel and a secondary ATA channel. 15.如权利要求14所述的RAID存储设备控制器,其特征在于所述主机接口模拟连接到各个所述基本和次要信道的单个IDE设备。15. The RAID storage device controller of claim 14, wherein said host interface emulates a single IDE device connected to each of said primary and secondary channels. 16.如权利要求14所述的RAID存储设备控制器,其特征在于所述主机接口模拟主IDE存储设备和从IDE存储设备,所述主IDE存储设备和从IDE存储设备连接到所述基本和次要信道的其中至少一个。16. The RAID storage device controller as claimed in claim 14, wherein the host interface emulates a master IDE storage device and a slave IDE storage device, the master IDE storage device and the slave IDE storage device being connected to the primary and at least one of the secondary channels. 17.如权利要求10所述的RAID存储设备控制器,其特征在于所述主机接口模拟连接到所述IDE信道的主IDE设备和从IDE设备。17. The RAID storage device controller of claim 10, wherein the host interface emulates a master IDE device and a slave IDE device connected to the IDE channel. 18.如权利要求10所述的RAID存储设备控制器,其特征在于所述主机接口模拟连接到所述IDE信道的单个IDE设备。18. The RAID storage device controller of claim 10, wherein the host interface emulates a single IDE device connected to the IDE channel. 19.如权利要求10所述的RAID存储设备控制器,其特征在于所述主机接口模拟连接到所述IDE信道的主IDE存储设备和从IDE存储设备。19. The RAID storage device controller of claim 10, wherein the host interface emulates a master IDE storage device and a slave IDE storage device connected to the IDE channel. 20.一种不用修改现有主机BIOS软件来把RAID存储设备控制器与PCI总线主机连接的方法,所述方法包括以下步骤:20. A method for connecting a RAID storage device controller with a PCI bus host without modifying the existing host BIOS software, said method comprising the following steps: 在所述控制器中,模拟连接到所述主机的ATA控制器;In the controller, simulating an ATA controller connected to the host; 在所述控制器中,还模拟好似连接到所述ATA控制器的IDE存储设备;In said controller, also simulating an IDE storage device as if connected to said ATA controller; 提供至少两个物理端口接口,用于把物理存储设备连接到所述控制器;以及providing at least two physical port interfaces for connecting physical storage devices to the controller; and 把所述控制器的主机接口与所述物理存储设备分离,以便对所述主机来说,所述存储设备控制器似乎为经由ATA接口所连接的IDE设备,而不管实际连接到所述控制器的所述物理端口接口的物理存储设备的实际数量和接口类型。decoupling the host interface of the controller from the physical storage device so that the storage device controller appears to the host as an IDE device connected via the ATA interface regardless of the actual connection to the controller The actual number and interface type of the physical storage device interfaced by the physical port.
CNB008159610A 1999-09-22 2000-09-21 Raid controller system and method with ATA emulation host interface Expired - Lifetime CN1222876C (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
CN1391672A true CN1391672A (en) 2003-01-15
CN1222876C CN1222876C (en) 2005-10-12

Family

ID=22557665

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008159610A Expired - Lifetime CN1222876C (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 (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296845C (en) * 2003-01-24 2007-01-24 华为技术有限公司 Magnetic disk storage system
CN1328664C (en) * 2004-07-12 2007-07-25 普安科技股份有限公司 Self-monitoring controller, redundant storage system including the controller and monitoring method
CN100334567C (en) * 2003-07-02 2007-08-29 普安科技股份有限公司 Redundant external storage virtualization computer system
CN100412779C (en) * 2004-11-17 2008-08-20 国际商业机器公司 Method and system for providing a host accessing a device through a storage controller port
CN100447731C (en) * 2005-01-13 2008-12-31 普安科技股份有限公司 Redundant Storage Virtualization Computer System
US7676614B2 (en) 2005-01-13 2010-03-09 Infortrend Technology, Inc. Redundant storage virtualization computer system
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
CN101676857B (en) * 2005-09-22 2013-04-24 株式会社日立制作所 Storage system
CN103136153A (en) * 2011-11-21 2013-06-05 宏碁股份有限公司 Interface device, serial connection system and serial connection method thereof
CN103838687A (en) * 2012-11-26 2014-06-04 三星电子株式会社 Storage device, computing system including same and data transferring method thereof
US9117037B2 (en) 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
CN107239366A (en) * 2016-03-28 2017-10-10 爱思开海力士有限公司 The power-fail interrupt of non-volatile dual-in-line memories system

Families Citing this family (20)

* 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
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
US7603514B2 (en) * 2005-03-31 2009-10-13 Intel Corporation Method and apparatus for concurrent and independent data transfer on host controllers
JP2007087053A (en) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd Disk array control device and control method
KR100736928B1 (en) * 2005-12-05 2007-07-10 삼성전자주식회사 Data communication method between multi-device and host device capable of data communication between host devices
KR100843199B1 (en) 2006-08-10 2008-07-02 삼성전자주식회사 High speed I.D. Interface device and its method
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
US8504767B2 (en) * 2010-04-20 2013-08-06 Taejin Info Tech Co., Ltd. Raid controlled semiconductor storage device
KR101209914B1 (en) * 2011-06-08 2012-12-11 주식회사 태진인포텍 Semiconductor storage device memory disk unit with programmable host interface
KR101212809B1 (en) * 2011-06-08 2012-12-18 주식회사 태진인포텍 Semiconductor storage device memory disk unit with multiple host interfaces and driving method
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

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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296845C (en) * 2003-01-24 2007-01-24 华为技术有限公司 Magnetic disk storage system
CN100334567C (en) * 2003-07-02 2007-08-29 普安科技股份有限公司 Redundant external storage virtualization computer system
CN1328664C (en) * 2004-07-12 2007-07-25 普安科技股份有限公司 Self-monitoring controller, redundant storage system including the controller and monitoring method
CN100412779C (en) * 2004-11-17 2008-08-20 国际商业机器公司 Method and system for providing a host accessing a device through a storage controller port
US8412869B2 (en) 2005-01-13 2013-04-02 Infortrend Technology, Inc. Redundant storage virtualization computer system
CN100447731C (en) * 2005-01-13 2008-12-31 普安科技股份有限公司 Redundant Storage Virtualization Computer System
US7676614B2 (en) 2005-01-13 2010-03-09 Infortrend Technology, Inc. Redundant storage virtualization computer system
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
CN101676857B (en) * 2005-09-22 2013-04-24 株式会社日立制作所 Storage system
CN103136153A (en) * 2011-11-21 2013-06-05 宏碁股份有限公司 Interface device, serial connection system and serial connection method thereof
US9117037B2 (en) 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
CN103838687A (en) * 2012-11-26 2014-06-04 三星电子株式会社 Storage device, computing system including same and data transferring method thereof
CN103838687B (en) * 2012-11-26 2018-10-19 三星电子株式会社 Bunkerage including its computing system and its data transferring method
CN107239366A (en) * 2016-03-28 2017-10-10 爱思开海力士有限公司 The power-fail interrupt of non-volatile dual-in-line memories system
CN107239366B (en) * 2016-03-28 2020-09-08 爱思开海力士有限公司 Power Loss Interrupt for Non-Volatile Dual In-Line Memory Systems

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1222876C (en) Raid controller system and method with ATA emulation host interface
US8073675B2 (en) ATA emulation host interface in a RAID controller
US5875349A (en) Method and arrangement for allowing a computer to communicate with a data storage device
US6813688B2 (en) System and method for efficient data mirroring in a pair of storage devices
US7103684B2 (en) Single-chip USB controller reading power-on boot code from integrated flash memory for user storage
US5694581A (en) Concurrent disk array management system implemented with CPU executable extension
US9201778B2 (en) Smart scalable storage switch architecture
US5987627A (en) Methods and apparatus for high-speed mass storage access in a computer system
JP5128079B2 (en) Universal storage bus adapter
US5909592A (en) Method in a basic input-output system (BIOS) of detecting and configuring integrated device electronics (IDE) devices
US20090049222A1 (en) PCI Express-Compatible Controller And Interface For Flash Memory
WO2004081738A2 (en) Method and system for embedded disk controllers
WO1996018141A1 (en) Computer system
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
CN1685329A (en) Method, system and program for controlling multiple input/output devices
US7475279B2 (en) Data storage system, data storage control device, and write error diagnosis method for disks thereof
CN1685318A (en) Method, system, and program for memory based data transfer
US7143234B2 (en) Bios storage array
CN100356310C (en) Storage virtualization controller, subsystem, system and method
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
CN113190084B (en) Method and device for connecting hard disk backboard supporting multiple-bit-width hard disks
Peterson Designing A VME-To-SCSI Adapter

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20051012