CN1222876C - 磁盘冗余阵列控制器和使其与主机连接的方法 - Google Patents

磁盘冗余阵列控制器和使其与主机连接的方法 Download PDF

Info

Publication number
CN1222876C
CN1222876C CNB008159610A CN00815961A CN1222876C CN 1222876 C CN1222876 C CN 1222876C CN B008159610 A CNB008159610 A CN B008159610A CN 00815961 A CN00815961 A CN 00815961A CN 1222876 C CN1222876 C CN 1222876C
Authority
CN
China
Prior art keywords
controller
ide
interface
ata
storage devices
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.)
Expired - Lifetime
Application number
CNB008159610A
Other languages
English (en)
Other versions
CN1391672A (zh
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/zh
Application granted granted Critical
Publication of CN1222876C publication Critical patent/CN1222876C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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

Description

磁盘冗余阵列控制器和使其与主机连接的方法
本申请是1999年9月22日提出的美国临时申请No.60/156001的继续并要求其权益。
技术领域
本发明涉及计算机数据存储设备控制器,具体地说,涉及一种RAID(廉价磁盘冗余阵列)控制器,具有模拟ATA标准控制器及所连接的IDE设备的主机接口。
背景技术
第一台IBM PC机以及兼容机只有软盘驱动器用于大容量存储。随后的XT和AT型号包含用于连接大容量数据存储的5.25英寸固定盘(非拆卸的)的适配器。这些最初的适配器提供了用于驱动器的大部分低级控制信号,其中包括用于读信号和预补偿写信号的数据分离电路。在适配器中包含了这些功能避免了复制一对驱动器,其中一次只存取一个驱动器。不幸的是,适配器中5MB的读/写信道不允许随着技术的改进而连接速度更快的驱动器。
通过将控制器的“实时”方式引入驱动器,解决了这个问题。集成驱动电路,即IDE驱动器,结合了读或写驱动器所需的全部控制及数据信道,在本地缓冲器和媒体之间传输数据。制造商可以选择数据速率。对于数据存储设备与主机***的连接,定义了一种新的接口,即ATA(具有分组接口扩展的AT嵌入式接口(ATA/ATAP14))(IBM AT嵌入式接口)。第一个IDE接口只不过包含了ISA总线和ATA电缆连接器之间的地址解码及缓冲。接口协议采用了程控输入和输出指令来存取IDE设备的寄存器。数据传输采用了主处理器的输入串及输出串指令,调节所连接的驱动器的传输速率。在较近版本的规范中,这些传输速率达到16MBPS。这是存储设备的缓冲器和ISA总线的存储器之间的传输速率。媒体和缓冲器之间的传输速率则要低得多。
随着PCI总线的出现,Intel公司发布了PCI IDE文献(PCI IDE控制器技术规范,修订版1.0,3/4/94),它提供了以前基于ISA总线的主机接口到PCI总线的映射。该标准描述了一种双IDE信道控制器。一对设备,即主设备和从设备,可以连接到每个信道。对于数据传输,还可以将该设备作为PCI总线目标来进行存取。
Intel公司还发布了总线主控器IDE文献(总线主控器IDE控制器的编程接口,修订版1.0,5/16/94)。该文献定义了在IDE信道中结合DMA设备的标准。总线主控接口允许IDE信道通过PCI总线向***存储器或从***存储器传输数据,作为总线主控器(PCI总线启动器)。传输到32位/33MHz PCI总线的最大传输速率是133MBPS。
ATA规范的修订版定义了一种新的传输模式,即Ultra DMA。通过紧缩电缆中数据传输的设置及保持时间要求,改进了以前的传输速率。在16MBPS时,由发送读选通脉冲、存取数据以及回送该数据的往返行程极大限制了读取传输速率。Ultra DMA协议最初保持了所有信号和电缆的电气特性,只是重新定义了其中三种信号的功能以提供新的协议。在这个协议中,从同一端把提供数据定时的选通脉冲信号作为数据进行传送,即:对于写入,由控制器进行,而对于读取,则由设备进行。在这种配置中,传输速率只是受到电缆单转移(single transition)的电缆歪斜失真的限制。第一UDMA设备使程控IO传输速率倍增到33MBPS。随后的修订版使最初的UDMA传输速率倍增到66MBPS,但要求使用具有交替信号和接地连接件的80带状电缆。目前的版本支持100MBPS的传输速率。目前有一种趋势,就是用高速串行链路来取代ATA并行接口,但可能首先会发布更多增加并行速度的并行接口。
常见的个人计算机包括以芯片组为中心而设计的主板,包括处理器、DRAM接口、各种输入/输出适配器及BIOS ROM。IO适配器通常包括IDE接口。当前版本的IDE控制器的特色在于有一对IDE端口,每个端口均能够与一对IDE存储设备连接。这些设备通常包括一个或多个IDE硬盘和CDROM、DVD ROM或CD WORM驱动器。基本输入输出***,即BIOS,是一种程序,用来引导PC并为主板上的适配器提供低级IO例程。所有这些PC基本上都可以使用主板BIOS从IDE硬盘进行引导及运行。
在小办公室/家庭办公室(SOHO)市场的服务器或工作站应用中配置了越来越多的个人计算机。历史上,具有小型计算机***接口(SCSI)的硬盘为更加要求严格的应用提供了一些性能增益。但是在今天,随着85%以上的驱动器做成IDE驱动器,SCSI驱动器也趋向于采用同样的媒体和读/写头来建造,具有极少或没有性能增益并极大地增加了成本。另一种流行的选择方案是,采用廉价磁盘冗余阵列(RAID),它最初是由Patterson建议(D.Patterson等人的“廉价磁盘冗余阵列(RAID)的情况”一文(Univ.Cal.Report No.UCB/CSD87/391,Dec.1987)。RAID***致力于可靠性和性能这两个方面。首先,通过两个或多个驱动器以冗余方式储存数据,以便在单个驱动器故障时不会丢失数据,从而实现可靠性。其次,相对于单个驱动器,由于该阵列的集合性能,实现了性能增加。以冗佘方式储存的数据的不同部分可以同时从两个驱动器中进行读取。另外,数据能以数据条的形式写入,其中,数据条贯穿于所有可用的驱动器,在读回数据时,可以实现集合传输速率。在本发明的美国专利No.6018778中对RAID阵列控制器进行了进一步说明。
不幸的是,现有的几种RAID解决方案存在一些缺陷。SCSI盘驱动器的控制器中的智能和及使用代表一类RAID解决方案的特征。这类解决方案展示了高性能,虽然驱动器和控制器的成本极高。另一类流行的RAID解决方案的特征在于使用IDE驱动器但缺乏控制器中的智能或缓冲。这主要是软件解决方案。控制多个驱动器以便保特冗余或者使数据成条所需的软件均必须在主机***中运行,极大地增加了磁盘驱动器在处理器及***总线中开销。这样,RAID效益是以由于所述增加的***开销而引起***性能下降的代价来实现的。这两种解决方案都有一个附加的问题。这些RAID控制器没有直接被主板的BIOS所支持。要求额外的软件驱动程序。这些驱动程序可能随操作***的功能而有所变化,所述操作***例如有Windows、Windows NT、UNIX、LINUX等,从而给控制器生产商、OEM、市场小组以及***集成商带来额外的负担。
因此,仍然需要一种RAID存储设备控制器,它不需要专门的软件在主处理器中执行,并且不需要额外的软件驱动程序或对BIOS进行改变。不需要对BIOS进行改变的RAID控制器通常具有以下优点:与实际上所有实现ATA顺应接口的标准的现成计算机具有“即插即用”的兼容性。RAID控制器对主机是透明的,且能以设备接口的任意组合来配置多个存储设备(不限于四个),并能够实现RAID镜像、成条等,而不给主机增加开销。这种RAID控制器以低成本和极为简易的安装来把RAID功能带给所有PC用户。
发明内容
本发明实现一种RAID控制器,它与所有操作***兼容,所述操作***可以使用标准IDE控制器和IDE驱动器在给定的PC主板上进行引导和运行。通过模拟标准控制器和所连接的驱动器来实现所述兼容性。例如,对于可靠性,给定***可在RAID1或“镜像”配置中要求一对驱动器。在连接到本发明所述的控制器时,BIOS将看到单个极为可靠的驱动器。该***还可要求三个驱动器的阵列,配置为RAID3或RAID5配置。这将提供两倍于三个驱动器的其中任何一个的传输速率,同时具有高可靠性。同样地,在本发明中,对于BIOS,这种三个驱动器的阵列看起来似乎为单个驱动器,告知有两倍于这三个驱动器的其中任何一个的容量,并展示有两倍的传输速率,具有高可靠性。在任何情况下,RAID对于BIOS中现有的驱动程序是透明的。
本发明的控制器模拟标准两信道IDE控制器。象标准控制器一样,它在逻辑上被连接到PCI总线。它在物理上可以存在于主板上,可能集成在主板芯片组中,或者存在于PCI槽的***式卡中。它可以模拟可连接到标准控制器的所有四个设备。这些逻辑设备的每一个均提供对连接到所述控制器的物理设备的阵列的可能接口。虽然本实施例提供ATA端口用于物理驱动器的连接,但其它类型的接口或接口组合均可被使用。
附图说明
通过以下结合附图对最佳实施例的详细说明,本发明的其它目的和优点将会明显。
图1是现有技术ATA双信道控制器应用的简化方框图,说明物理及软件/寄存器视图。
图2A是一种根据本发明的具有ATA端口仿真的RAID控制器的简化方框图。
图2B说明本发明的编程接口。
图3是一种具有ATA端口仿真的RAID控制器的目前最佳商业实施例的高层简化方框图。
图4更为详细地说明图3的控制器的ATA寄存器文件的一种实现。
图5更为详细地说明图4的命令块和控制块。
具体实施方式
图1中说明了个人计算机中ATA控制器10的典型现有技术应用,它提供***总线12和存储设备14之间的接口。***总线12是PCI总线。在逻辑上连接到PCI总线时,ATA控制器通常集成在主板芯片组中。对于给定的应用,其它或附加的控制器可以***到主板上PCI总线插槽(未示出)的其中之一。PCI总线提供配置机制,通过这种机制,可以将唯一地址指定给各控制器。典型的控制器10提供两个信道,它们端接于一对分别标识为基本、次要IDE连接器的连接器16和18。每个次要信道将支持一对共享连接器和电缆的存储设备。例如,在图1中,次要信道电缆19连接到主控存储设备20以及从存储设备22。另一对驱动器同样地连接到基本信道电缆24。这样,这两个信道控制器10支持总共四个设备,如图1所示。
图1的附图标记28说明从PCI总线的角度看到的IDE控制器的编程接口及驱动器。每个块的物理地址通过控制器的PCI总线配置空间来指配,正如业内所知的那样,以及在前面引用的Intel PCI IDE控制器规范文献中被描述。前面引述的另一个Intel文献“总线主IE控制器的编程接口”说明了总线主IDE控制器的编程接口。在这个机制标准化之前,存储设备数据通常是通过程控I/O进行传输的,其中,数据传输所需的载入和储存均由***处理器来执行。虽然仍然支持程控I/O机制,然而总线主接口允许ATA控制器通过直接存取***存储器,即通过DMA,来传输数据。总线主IDE控制器文献定义了寄存器的十六字节块,它支持一对总线主控制器,一个用于基本ATA信道,一个则用于次要ATA信道。该寄存器块在物理上是控制器的组成部分。如图所示,它分割为两个部分30和32,一个部分与每个信道关联。
ATA规范定义了储存储设备的编程接口。该接口包括两个寄存器块:命令块和控制块。命令块是字节宽度寄存器的八字节块。控制块是字节宽度寄存器的四字节块。这些寄存器的所有实现细节均公布在ATA规范中。
图1示出四组命令和控制寄存器块,一个组对应于四个所连接的存储设备的其中一个。例如,一组寄存器块36包括命令块38和相应控制块40。这些寄存器在物理上是图1所示的相应存储设备的组成部分。这样,寄存器组36(基本信道)便位于主存储设备25中。如果没有连接一个给定的存储设备,则其命令和控制寄存器块将不会出现在编程接口中。
ATA规范还定义了存储设备所支持的协议。一般来说,存取命令及所有相关参数被装入命令块的寄存器中。存储设备将执行该命令。对于设备写入,它将首先请求写入数据。对于程控I/O操作,主处理器将从***存储器中读取数据,并使用一部分命令块作为十六比特窗口,将所述数据写入该设备中的缓冲器(未示出)。对于总线主DMA操作,ATA控制器将根据信道的总线主控制器寄存器块的配置,直接从***存储器中存取数据。存储设备则存取存储媒体,在媒体及其本地缓冲器之间传输数据。对于媒体读取,利用上述程控I/O或总线主DMA,把本地缓冲器中的数据传输给***存储器。最后,存储设备将通过ATA控制器、或通过状态寄存器轮询、或采用中断,向主机***指示操作完成。
上电时,个人计算机执行物理上储存于主板上非易失性存储器中的代码。基本输入输出***,即BIOS代码,从连接到ATA控制器的ATA存储设备中装载个人计算机操作***,并为这样的存储设备提供低级I/O***驱动程序。
本发明模拟图1所示及如上所述的ATA控制器,并且与其在编程层完全兼容。图2A是根据本发明的控制器的方框图,它可以配置为例如RAID控制器。控制器块50的左侧代替标准双信道ATA控制器而连接到PCI总线,并模拟一至四个所连接的ATA存储设备。下面将要详细说明的ATA存储设备的仿真,将控制器的主机接口同物理设备接口分离,在要提供的设备接口类型和接口数方面允许相当大的自由度。例如,本发明的应用可以实现X个SCSI端口和/或Y个ATA端口,其中,X和Y绝不限于主机***中出现的四个逻辑驱动器。图2A是实现编号为0至N-1的N+1个ATA端口的示例。
图2B说明本发明的编程接口。主机接口56实现从标准ATA控制器的PCI总线的角度可见的所有寄存器块:双信道总线主控制器块58、60以及四组编号分别为62、64、66和68的命令和控制寄存器块。主机接口块56模拟ATA控制器和ATA存储设备的寄存器,模拟至支持ATA规范协议所需的层。
图2B的块70说明控制器块50的主要组件。除了主机接口块56之外,控制器70还包括RAM缓冲高速缓冲存储器72、DMA信道74及处理器80,下面将进一步说明。控制器块70还包括多个ATA端口接口,例如接口82、84以及86。每个ATA端口接口都提供标准接口连接给诸如盘驱动器的IDE类型存储设备。如前面所述,每个存储设备在主板上包括命令和控制寄存器块。例如,将它们作为命令寄存器块90和控制器块92来进行说明,这两者均与单个设备关联,即与主驱动器关联,它们与ATA端口接口82、标准连接器电缆96相连接。控制器块70可以被配置为包括任何所需数量的ATA端口,同时仍然提供标准双信道控制器接口56给主机PCI总线12。
图3示出本发明目前最佳实施例的详细方框图。该***是作为专用集成电路(ASIC)以0.18微米的CMOS工艺来实现的。所述设备在逻辑上划分为四个模块,每个模块具有到设备外部的有关端口。
主机接口100是以PCI核心104为基础用铟硅制造的。CS6464AF是软核心(为特定应用合成的Verilog源),它支持32位和64位两种PCI总线,PCI总线时钟速率为33MHZ或66MHZ。该核心支持主操作和目标操作。目标特征(target feature)106提供对前面所述的ATA兼容寄存器文件的存取。主能力(master capability)108用来模拟ATA控制器的总线主DMA特征。PCI核心包括模拟双端口ATA控制器的配置空间110的配置空间。
DRAM接口块120支持外部连接的SDRAM 122。64位宽、100MHZ单一数据速率端口124支持800MBPS的最大传输速率。在本地,通过经主机接口100向或从PCI总线进行传输,通过经驱动器接口130向或从盘驱动器进行传输,可以共享DRAM接口,并由处理器块150中的本地处理器进行存取。
驱动器接口块130提供五个ATA端口,例如134,每个端口均能够支持主和从驱动器。每个端口支持达到16MBPS传输速率的程控输入输出(PIO)以及达到100MBPS传输速率的Ultra DMA。
处理器块是围绕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总线目标之间的传输。
图4说明ATA寄存器文件实现细节。寄存器全部为双端口,并可以由主机***或由本地处理器160从PCI总线进行存取。从PCI总线的角度看,每个ATA信道具有与其相关的两寄存器块。命令块208是字节宽寄存器的八字节范围。控制块210是四字节范围,其中仅使用单个存储单元。如前所述,单个ATA端口可以用来存取一对连接到公共电缆的驱动器。每个设备均具有其自己的命令和控制寄存器块。设备在物理上配置了跳线,以便将其中一个指定为主,而将另一个指定为从。通过将一个字节数据以地址偏移量六写入命令块的设备标题寄存器中,来选择一个特定的设备用于存取(见图5)。如果申明为位四,则对于随后的操作,选择从设备而取消选择主设备。如果对同一个寄存器进行写入,其中位四被清除,则选择主设备,而取消选择从设备。为了在本发明中模拟这种行为,实现主和从寄存器组。此外,提供单比特从寄存器230,它记录最近写入设备标题寄存器的位四。从寄存器控制从PCI总线的读复用及写地址解码,从而将根据最近的设备选择来存取适当的寄存器块对。
上电时或复位后,ATA设备最初为忙。通过读取命令块中地址偏移七的状态寄存器,或读取控制块中的备用状态寄存器块,可以检测到忙状态。在设备忙时,没有其它的寄存器可以被存取。为了在本发明中模拟这种行为,提供了单个比特忙寄存器232。通过从PCI总线进行复位,通过对控制块的设备控制寄存器中的软复位比特的写入,或者在命令寄存器块的地址偏移七写入命令寄存器时,来设置该寄存器。本地处理器可对忙寄存器进行清除。
如果在设备中已允许中断,则每个ATA设备能够向主机***申明中断请求。为了模拟这种行为,为主和从设备提供单个比特中断请求234和中断允许236寄存器。通过各设备的设备控制寄存器来控制中断允许。每个设备可以向主机***申明中断请求,以便传输数据或返回完成状态。在本发明中,中断请求可以由本地处理器进行设置或清除。通过读取设备的状态寄存器(但不是备用状态寄存器),也对中断请求进行清除,如ATA规范的协议所述。主和从设备的中断请求和中断允许状态可以独立地保持,从而在主机改变设备选择时可以获得适当的行为。
对于次要信道,主和从设备的命令和控制寄存器文件以及从、忙、中断“边缘效应”均被复制。所有四个设备的命令及控制寄存器文件块全部线性地被映射到本地处理器的地址空间中。
共享的双信道总线主控制器块250可以从PCI总线或由本地处理器来进行存取。
根据ATA协议,选择设备,给定命令所需的所有参数均被装载到命令寄存器文件,随后该命令本身也以偏移量七载入所述寄存器。如上所述,这将设置信道为忙。忙的上升边引起到本地处理器的中断,本地处理器将通过解释该命令及其参数来进行响应。大多数命令将被重新映射为所连物理设备阵列的存取。这些存取可以用来实现任何公共RAID协议,包括但不限制于RAID0、1、3和5。本地处理器具有读取多于所请求的数据的选项。附加数据预先储存在SDRAM中以备随后的读取。本地处理器可以按命令要求使用程控IO或DMA来安排在SDRAM和主机***之间的数据传输。
总之,本发明包括RAID存储设备控制器,提供主机接口,用于将控制器与主机***总线连接。主机接口与例如如IDE盘驱动器的所连存储设备隔离,使实际连接的驱动器不受数量或接口协议的限制。可以实现各种设备端口,并且可以使用各种RAID策略,例如RAID3和RAID5。在各种情况下,主机接口提供对主机的标准统一接口,即ATA接口,最好是双信道ATA接口。主机接口模拟ATA单信道接口或双信道接口,并模拟每个信道所连的一或两个IDE设备,而不管物理上与该控制器连接设备的实际数量。例如,这样就可以在RAID5中部署五或七个IDE驱动器,而不用改变PCI主机中的标准BIOS。这样,RAID控制器对于标准的双信道ATA控制器板是透明的。
本领域的技术人员将清楚,在不脱离本发明的基本原则的情况下,可以对本发明的上述实施例细节进行许多改变。因此,本发明的范围应当由后附权利要求来定义。

Claims (21)

1.一种RAID存储设备控制器,包括:
一个主机接口,用于将所述控制器与一个主机***总线连接,所述主机接口模拟一个标准IDE信道,并且还模拟一个连接到所述IDE信道的IDE设备;和
至少一个物理接口,用于将所述存储设备控制器与物理存储设备连接。
2.如权利要求1所述的RAID存储设备控制器,其特征在于,所述物理接口的其中至少一个实现ATA端口,用于将ATA兼容存储设备连接到所述控制器。
3.如权利要求1所述的RAID存储设备控制器,其特征在于,所述主机接口模拟至少一个基本信道和次要信道。
4.如权利要求3所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到各个所述基本和次要信道的单个IDE设备。
5.如权利要求3所述的RAID存储设备控制器,其特征在于,所述主机接口模拟主IDE存储设备和从IDE存储设备,所述主IDE存储设备和从IDE存储设备连接到所述基本和次要信道的其中之一。
6.如权利要求3所述的RAID存储设备控制器,其特征在于,还包括用于模拟一个标准双端口IDE控制器的一个总线主DMA控制器的装置。
7.如权利要求1所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到所述IDE信道的单个IDE设备。
8.如权利要求1所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到所述IDE信道的主IDE存储设备和从IDE存储设备。
9.如权利要求1所述的RAID存储设备控制器,其特征在于,还包括用于模拟一个标准双端口IDE控制器的一个总线主DMA控制器的装置。
10.一种RAID存储设备控制器,包括:
一个主机接口,用于将所述控制器与一个主机***总线连接,所述主机接口模拟至少一个ATA控制器信道;
一个连接到所述主机接口的存储器,其中所述主机接口还通过实现存储器中的逻辑命令和控制块,来模拟连接到所述模拟的ATA控制器信道的至少一个IDE设备;
至少两个物理接口,用于将所述存储设备控制器连接到多个存储设备;和
一个所述控制器中的本地处理器,用于控制物理存储设备存取操作。
11.如权利要求10所述的RAID存储设备控制器,其特征在于,还包括用于模拟一个标准双端口IDE控制器的一个总线主DMA控制器的装置。
12.如权利要求10所述的RAID存储设备控制器,其特征在于,还包括:一个缓冲存储器,用于缓存所述主机***总线和所述连接的存储设备之间的数据传输;以及一个DMA引擎,它被布置用于在所述主机接口和所述缓冲存储器之间传输数据。
13.如权利要求12所述的RAID存储设备控制器,其特征在于,包括一个DMA引擎,它被布置用于在所述缓冲存储器和物理驱动接口之间传输数据,该物理驱动接口向一个或多个所连接的物理盘驱动器传送数据。
14.如权利要求10所述的RAID存储设备控制器,其特征在于,所述ATA控制器信道模拟一个基本ATA信道和一个次要ATA信道两者。
15.如权利要求14所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到各个所述基本和次要信道的单个IDE设备。
16.如权利要求14所述的RAID存储设备控制器,其特征在于,所述主机接口模拟主IDE存储设备和从IDE存储设备,所述主IDE存储设备和从IDE存储设备连接到所述基本和次要信道的其中至少一个。
17.如权利要求10所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到所述IDE信道的主IDE设备和从IDE设备。
18.如权利要求10所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到所述IDE信道的单个IDE设备。
19.如权利要求10所述的RAID存储设备控制器,其特征在于,所述主机接口模拟连接到所述IDE信道的主IDE存储设备和从IDE存储设备。
20.如权利要求10所述的RAID存储设备控制器,其特征在于,所述的要实现逻辑命令缺和控制块的存储器包括连接到所述主机接口的寄存器文件。
21.一种不用修改现有主机BIOS软件而将RAID存储设备控制器与PCI总线主机连接的方法,所述方法包括以下步骤:
在所述控制器中,模拟一个连接到所述主机的ATA控制器;
在所述控制器中,还模拟一个连接到所述ATA控制器的IDE存储设备;
提供至少两个物理端口接口,用于将一个物理存储设备连接到所述控制器;以及
通过与主机交换命令和数据,把所述控制器的主机接口与所述物理存储设备分离,所述主机来作为经由ATA接口所连接的IDE设备,而不管实际连接到所述控制器的所述物理端口接口的物理存储设备的实际数量和接口类型。
CNB008159610A 1999-09-22 2000-09-21 磁盘冗余阵列控制器和使其与主机连接的方法 Expired - Lifetime CN1222876C (zh)

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 CN1391672A (zh) 2003-01-15
CN1222876C true CN1222876C (zh) 2005-10-12

Family

ID=22557665

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008159610A Expired - Lifetime CN1222876C (zh) 1999-09-22 2000-09-21 磁盘冗余阵列控制器和使其与主机连接的方法

Country Status (9)

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

Families Citing this family (32)

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

Family Cites Families (5)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1222876C (zh) 磁盘冗余阵列控制器和使其与主机连接的方法
US8073675B2 (en) ATA emulation host interface in a RAID controller
US7073010B2 (en) USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US6029209A (en) Method and arrangement for allowing a computer to communicate with a data storage device
CA2098988C (en) Parity calculation in an efficient array of mass storage devices
US8539174B2 (en) Use by a host device having a first file system of a portable storage device having a second file system and supporting file segmentation
US5548783A (en) Composite drive controller including composite disk driver for supporting composite drive accesses and a pass-through driver for supporting accesses to stand-alone SCSI peripherals
JP5128079B2 (ja) ユニバーサルストレージバスアダプタ
US5073854A (en) Data processing system with search processor which initiates searching in response to predetermined disk read and write commands
US5694581A (en) Concurrent disk array management system implemented with CPU executable extension
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
JPH0427580B2 (zh)
WO1996032674A2 (en) Semiconductor memory device for mass storage block access applications
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
US5668957A (en) Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
EP2350842B1 (en) Redundant array of independent disks (raid) write cache sub-assembly
US7143234B2 (en) Bios storage array
CA2134016A1 (en) Data storage device and method of operation
KR100467102B1 (ko) 데이터 저장 시스템

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

Granted publication date: 20051012

CX01 Expiry of patent term