CN100474278C - 直接存储器存取电路以及使用该电路的盘阵列设备 - Google Patents

直接存储器存取电路以及使用该电路的盘阵列设备 Download PDF

Info

Publication number
CN100474278C
CN100474278C CNB2005100776884A CN200510077688A CN100474278C CN 100474278 C CN100474278 C CN 100474278C CN B2005100776884 A CNB2005100776884 A CN B2005100776884A CN 200510077688 A CN200510077688 A CN 200510077688A CN 100474278 C CN100474278 C CN 100474278C
Authority
CN
China
Prior art keywords
descriptor
data
circuit
dma
pointer
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 - Fee Related
Application number
CNB2005100776884A
Other languages
English (en)
Other versions
CN1794213A (zh
Inventor
高桥英宪
小川裕一
羽根田光正
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1794213A publication Critical patent/CN1794213A/zh
Application granted granted Critical
Publication of CN100474278C publication Critical patent/CN100474278C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

直接存储器存取电路以及使用该电路的盘阵列设备。直接存储器存取电路通过描述符来防止由于存储器的地址故障而导致的错误的数据传输。创建描述符时,数据处理单元将用于存储该描述符的指针写入该描述符的预定部分中,并将该描述符存储在存储器中,并且当直接存储器存取引擎从该存储器中读取该描述符时,直接存储器存取引擎确认该值是否正确,并判断是否可以对该存储器中的数据进行直接存储器存取传输。对于描述符的读取和写入,都可以防止由于地址故障而导致的数据损坏。

Description

直接存储器存取电路以及使用该电路的盘阵列设备
技术领域
本发明涉及DMA(直接存储器存取)电路以及使用该电路的盘阵列设备,其中DMA电路根据外部指令直接访问存储器并传输数据,更具体地,涉及一种适于保证用作计算机的外部存储设备的盘阵列设备上的数据的有效性的DMA电路,以及使用该DMA电路的盘阵列设备。
背景技术
由于计算机要计算和处理各种数据,所以如今需要独立于计算机有效地传输大量数据。为此,积极地采用了一种根据外部指令独立地访问对数据进行存储的存储器并传输数据的技术,即DMA(直接存储器存取)传输。
在能够安全地存储大量数据的盘阵列设备的情况下,通过主机的访问来读取和写入大量的数据,从而将存储器的数据发送到主机或者内部电路。
图9和图10示出了现有技术。如图9所示,CPU 100将数据写入高速缓冲存储器104,DMA电路(引擎)102读取该高速缓冲存储器104中所写入的数据并进行传输。当CPU 100从诸如主机的外部设备接收到该数据时,CPU 100生成描述符并将其写入在高速缓冲存储器104中创建的控制区域(描述符区域)106中。
该描述符是CPU 100发送到DMA引擎102的指令,并包括高速缓冲存储器104中的传输数据的地址和字节数,以及数据传输目的地(存储器)的地址。例如,如图10中的描述符的格式所示,该描述符包括四个字(一个字,64字节)的命令。第一字包括命令字段cmd、中断控制字段(例如,“1”表示当该描述符结束时生成一中断)、BCC校验模式BCC、传输目的地节点Tgt,以及传输目的地(写入侧)存储器地址DDA。
第二字包括传输字节数SIZE(例如,最大1M字节,最小8字节),以及传输源(读取侧)存储器地址SDA。第三字为用于校验的块ID初始值Check BKID,而第四字为用于生成(Replace)的块ID初始值。
CPU 100在每次向高速缓冲存储器104中写入数据时生成图10所示的描述符,并将其写入该高速缓冲存储器104中的描述符区域106中。分配大小为描述符N倍的存储区域作为描述符区域106。
当DMA启动时,CPU 100还将描述符区域106自身的第一地址写入DMA引擎102的描述符基地址寄存器110中。这样,DMA引擎102就可以知道高速缓冲存储器104中的写入了描述符的地址。
DMA引擎102具有描述符顶部指针寄存器112和描述符底部指针寄存器114。寄存器112和寄存器114分别表示了CPU 100在描述符区域106中所提供的描述符的号,以及DMA引擎102结束执行的描述符的号。换句话说,顶部寄存器112表示第一个描述符(图9中的描述符#5),而底部寄存器114表示最后一个描述符(图9中的描述符#1)。
从描述符基地址寄存器110所表示的地址到N倍于一个描述符大小的连续空间被用作所述描述符区域106。在图9中的示例的情况下,CPU100创建六个描述符#0~#5,并将它们存储在描述符区域106中,然后将DMA引擎102的描述符顶部指针寄存器112的值升至“6”。这样,DMA引擎102获知准备了描述符,并开始从最后一个描述符起读取这些描述符(例如,参见日本特开昭63-211032号公报,以及日本特开2004-110159号公报)。
换句话说,DMA引擎102从描述符区域106的描述符底部指针寄存器114所表示的位置起读取描述符,对其进行分析,并在指定数据传输完成时,对描述符底部指针寄存器114加“1”。例如,图9示出了描述符底部指针寄存器114为“1”的情况,并且已经完成了对描述符#0的处理。
数据本身具有待保证的校验码,并且高速缓冲存储器的数据还具有ECC(差错校验码),从而可以检测到由DRAM(动态随机存储器)元件与存储器控制器之间的数据通路的异常,以及构成该存储器的DRAM的异常而导致的数据损坏。
这样,在DMA引擎102的数据传输操作中通过上述校验码以及ECC来保护数据,但是对于描述符的保护并不充分。具体地,DMA传输过程中的地址不受保护,所以如果在存储器控制器与存储器之间的地址线中出现了故障,CPU可能将描述符写入不正确的地址,或者DMA引擎可能从不正确地址读取描述符。
这种情况下,对不同于原始数据的数据进行了DMA传输,结果,无法保证数据。
发明内容
鉴于上述情况,本发明的一个目的是提供一种DMA电路以及使用该电路的盘阵列设备,其中该DMA电路用于保护DMA传输的描述符,并进行准确的DMA传输。
本发明的另一目的是提供一种DMA电路以及使用该电路的盘阵列设备,其中该DMA电路用于对于DMA传输,检测出写入不正确地址中的描述符,以及从不正确地址读取的描述符。
本发明的再一目的是提供一种DMA电路以及使用该电路的盘阵列设备,其中该DMA电路用于对于DMA传输,检测存储器访问时地址线的故障,并用于防止不正确的DMA传输。
为了实现这些目的,本发明的DMA电路为如下的DMA电路:用于读取数据处理单元所写入的表示DMA传输内容的描述符;从存储器中读取由描述符所限定的地址中的数据;以及对该数据进行传输。该DMA电路包括:第一和第二寄存器,用于存储由数据处理单元写入存储器中的多个描述符的顶部指针和底部指针;传输电路,用于读取由所述底部指针表示的所述存储器的描述符、分析所述描述符、读取由所述存储器的描述符所限定的地址中的数据并传输该数据;以及比较电路,用于比较所读取的描述符中所包括的描述符指针和所述底部指针,并控制所述传输电路的传输操作。
本发明的盘阵列设备包括多个盘装置和用于根据来自主机的请求对该盘装置的数据进行读取/写入的控制单元。所述控制单元进一步包括:数据处理单元;高速缓冲存储器,用于为所述盘装置存储数据;以及DMA电路,用于读取对所述数据处理单元所写入的DMA传输内容进行表示的描述符,从所述高速缓冲存储器中读取由描述符限定的地址中的数据,并传输该数据。该DMA电路还包括:第一和第二寄存器,用于存储由所述数据处理单元写入高速缓冲存储器中的多个描述符的顶部指针和底部指针;传输电路,用于读取由所述底部指针所表示的高速缓冲存储器的描述符、分析该描述符、读取由所述高速缓冲存储器的描述符所指定的地址中的数据,并传输该数据;以及比较电路,用于比较所读取的描述符中所包括的描述符指针与所述底部指针,并控制所述传输电路的传输操作。
在本发明中,优选地,传输电路访问地址线和数据线分离的所述存储器。
在本发明中,优选地,当比较电路的比较结果不满意时,传输电路停止在由存储器中的描述符所指定的地址中读取数据的操作。
在本发明中,优选地,传输电路在通过读取和分析其中一个描述符来完成数据传输之后,更新用于存储底部指针的所述第二寄存器。
优选地,本发明还包括第二比较电路,用于比较第一寄存器的顶部指针和第二寄存器的底部指针,并且传输电路根据第二比较电路的比较结果结束所指定的DMA传输。
优选地,本发明还包括用于存储所读取的描述符的第三寄存器,并且所述比较电路比较包括在第三寄存器的所读取的描述符中的描述符指针和第二寄存器的底部指针。
优选地,本发明还包括第四寄存器,用于存储对该存储器的描述符区域的基位置进行表示的基指针,并且所述传输电路读取由所述第二寄存器的底部指针与所述第四寄存器的基指针相加的值所表示的存储器的描述符。
在本发明中,优选地,传输电路进一步包括:描述符读取控制电路,用于请求存储器来读取描述符;以及数据传输电路,用于请求存储器根据所读取的描述符来读取数据,并且该描述符读取控制电路根据比较电路的比较结果来控制数据传输电路的读取请求。
在本发明中,优选地,所述描述符读取控制电路请求由所述底部指针所表示的存储器的描述符,并且所述数据传输电路对所读取的描述符进行分析,并读取由所述存储器的描述符所指定的地址中的数据,并传输该数据。
优选地,本发明还包括用于存储所读取的描述符的第三寄存器,并且比较电路比较该第三寄存器的所读取描述符中所包含的描述符指针与第二寄存器的底部指针,并且数据传输电路根据描述符读取电路的传输许可来分析第三寄存器的描述符,读取由该存储器的描述符所指定的地址中的数据,并传输该数据。
在本发明中,优选地,控制单元还包括:通道适配器,用于和主机进行通信;具有高速缓冲存储器的控制电路,用于存储盘装置的部分数据;以及设备适配器,用于和盘装置进行通信,并且DMA电路在通道适配器的高速缓冲存储器与控制电路的高速缓冲存储器之间进行DMA传输。
优选地,本发明还包括多个控制单元,这些控制单元具有:通道适配器,用于和主机进行通信;具有高速缓冲存储器的控制电路,用于存储盘装置的部分数据;以及设备适配器,用于和盘装置进行通信,其中所述DMA电路通过在一个控制单元的高速缓冲存储器与另一个控制单元的高速缓冲存储器之间进行DMA传输,来进行镜像。
根据本发明,当创建了描述符后,数据处理单元将存储描述符的指针写入该描述符的预定部分中,并且当DMA引擎读取该描述符时,DMA引擎确认该值是否正确。
因此,如果在数据处理单元写入描述符时存储器发生地址故障,或者如果在DMA引擎读取描述符时发生地址故障,则该描述符中的指针信息不与要读取的指针相匹配,所以检测到所读取的描述符异常。
这样,对于描述符的读取和写入,都可以防止由于地址故障而导致的数据损坏。具体地,检测到地址线和数据线分离的存储器的地址故障,从而可以防止盘阵列设备的镜像处理和数据传输处理过程中的传输数据错误,并且可以构建高可靠性的系统。
附图说明
图1的框图表示根据本发明第一实施例的盘阵列设备的结构;
图2的框图表示图1中实施例的控制模块的结构;
图3表示根据本发明一实施例的描述符写入处理;
图4表示根据本发明一实施例的描述符读取处理;
图5表示根据本发明一实施例的描述符格式的结构;
图6的框图表示根据本发明一实施例的DMA电路的结构;
图7的框图表示根据本发明第二实施例的盘阵列设备的结构;
图8的框图表示图7中的实施例的控制模块的结构;
图9表示传统的DMA传输;而
图10表示传统描述符的格式的结构。
具体实施方式
下面将按照盘阵列设备的第一实施例、DMA传输电路、盘阵列设备的第二实施例和其它实施例的顺序来说明本发明的实施例,但是本发明并不限于这些实施例,而是可以以各种方式进行修改。
盘阵列设备的第一实施例
图1的框图表示本发明的盘阵列设备的第一实施例的总体结构,而图2的框图详细表示了图1中的主要部分。
如图1所示,盘阵列设备包括:高速缓存管理器(图1的“CM”)10-1至10-4,它们是分别具有高速缓冲存储器和高速缓存控制单元的主要单元;通道适配器(图1中的CA)11-1至11-8,它们是与主机(未示出)的接口;盘装置12-1至12-4,具有多个盘驱动器;以及设备适配器(图1中的DA)13-1至13-8,它们是与盘装置12-1至12-4的接口。
该盘阵列设备还包括:路由器(图1中的RT)14-1至14-4,其与高速缓存管理器10-1至10-4、通道适配器11-1至11-8以及设备适配器13-1至13-8互连,以在这些主要单元之间进行数据传输和通信。
该盘阵列设备包括四个高速缓存管理器10-1至10-4,以及与这些高速缓存管理器10-1至10-4相对应的四个路由器14-1至14-4。各个高速缓存管理器10-1至10-4都与各个路由器14-1至14-4逐一互连。这样,多个高速缓存管理器10-1至10-4之间的连接是冗余的,这增强了可用性。
换句话说,即使一个路由器14-1失效,也能够经由其它路由器14-2、14-3和14-4来保证多个高速缓存管理器10-1至10-4之间的连接,从而即使在这种情况下,该盘阵列设备也可以继续正常的操作。
在这种盘阵列设备中,两个通道适配器11-1至11-8以及两个盘适配器13-1至13-8都连接到各个路由器14-1至14-4。因此该盘阵列设备具有总共8个通道适配器11-1至11-8以及总共8个设备适配器13-1至13-8。
这些通道适配器11-1至11-8和设备适配器13-1至13-8可以通过高速缓存管理器10-1至10-4与路由器14-1至14-4之间的互连,与所有的高速缓存管理器10-1至10-4进行通信。
通道适配器11-1至11-4连接至主机(未示出),该主机例如通过光纤通道或者Ethernet(注册商标)对保存在多个盘中的数据进行处理。设备适配器13-1至13-8例如通过光纤通道连接到盘装置12的盘驱动器。
在通道适配器11-1至11-8与高速缓存管理器10-1至10-4之间,以及设备适配器13-1至13-8与高速缓存管理器10-1至10-4之间,不仅交换来自主机的用户数据,而且交换用来保持该盘阵列设备的内部操作(例如,多个高速缓冲存储器之间的数据的镜像处理)的一致性的各种信息。
为此,高速缓存管理器10-1至10-4、通道适配器11-1至11-8以及设备适配器13-1至13-8通过以下接口与路由器14-1至14-4相连,这些接口较之该盘阵列设备与主机或与盘装置之间的接口,可以实现更低的延迟(更快的响应速度)。
例如,高速缓存管理器10-1至10-4、通道适配器11-1至11-8以及设备适配器13-1至13-8通过以下总线与路由器14-1至14-4相连,该总线被设计用来连接LSI(大规模集成电路)和印刷电路板,例如PCI(周边器件互连)总线。
盘装置12-1至12-4具有两个光纤通道端口,并且属于不同路由器14-1至14-4的设备适配器13-1至13-8连接到各个端口。因此即使设备适配器13-1至13-8失效,或者如果路由器14-1至14-4失效,也不会中断与高速缓存管理器10-1至10-4的连接。
与单盘装置相比,这种盘阵列设备的可靠性由于使用了RAID技术而得到提高。另外,包含高速缓冲存储器可以减少数据访问时间。
对于RAID技术,使用了如下方法来提高可靠性,即将相同数据存储在多个盘中(RAID-1),或者将奇偶校验信息分散地存储在盘中(RAID-5)。另外,大多数盘阵列设备使用通过向数据添加校验码来保证数据的方法,来提高可靠性。
例如,对于512字节数据块,使用从数据计算出的CRC(循环冗余码)和用来表示数据的位置信息的块ID。有时将CRC和块ID统称为“块校验码”(BCC),这是因为它们都是数据块的校验码。
使用512字节数据并使用被称作“种子”的预定值来计算CRC。为第一个512字节数据块定义块ID,并且后续的512字节数据块的块ID为依次加“1”的值。
在ANSI(美国国家标准学会)标准中,BCC是名为T10码的作为两字节CRC和六字节块ID(由两字节Mega Tag和四字节Reference Tag构成)的校验码的标准。
如图2所示,通道适配器11(11-1至11-8)包括:用于与主机相连的光纤通道芯片30、具有DMA引擎40的接口电路32、CPU 34、存储器控制器36以及高速缓冲存储器38。
CPU 34操作光纤通道芯片30和存储器控制器36,来执行后述的主机接口控制以及与主机的读/写处理。
高速缓存管理器模块10(10-1至10-4)包括两个CPU 20和22、高速缓冲存储器26以及还用作桥接电路的存储器控制器24,并执行后述的访问处理。具有开关功能的路由器14(14-1至14-4)包括DMA引擎15。路由器14还连接至设备适配器(盘适配器)13(13-1至13-8)。
高速缓冲存储器38和26包括DDR(双数据速率)的DRAM(动态随机存储器),其中由地址总线A-BUS(如8比特)来指定地址,并且使用数据总线D-BUS来交换数据。
在以上说明中描述了在主机存储(写入)数据时盘阵列设备的操作。主机存储到盘中的数据首先被发送至通道适配器11。通道适配器11通过接口电路32和存储器控制器36将FC芯片30所接收的数据写入高速缓冲存储器38中。此时,CPU 34生成上述描述符并将其写入高速缓冲存储器38中的描述符区域中。
当完成了从主机接收数据的操作后,CPU 34启动DMA引擎40,DMA引擎40读取高速缓冲存储器38中的描述符,根据从该描述符中获取的地址读取高速缓冲存储器38中的写入数据(接收数据),向该数据添加块校验码(BBC),并将其通过路由器14传输到高速缓存管理器10的存储器控制器24。
存储器控制器24根据CPU 20和22的控制将传输数据存储在高速缓冲存储器26中。然后存储器控制器24启动DMA引擎15,并将该数据传输到另一高速缓存管理器10的存储器控制器24,如图1所示。这样就执行了镜像处理。
镜像正常完成后,高速缓存管理器10将此通知给通道适配器11,并且通道适配器11通知主机数据的存储正常结束。另外,高速缓存管理器10按照内部顺序将高速缓冲存储器中的写入数据回写(write back)到图1的盘装置12-1中,并将该数据存储在盘装置12-1中。
如果接下来从主机发出了读取请求,则通道适配器11从该主机接收读取请求。然后,接收到该读取请求的通道适配器11向主管的高速缓存管理器10请求该读取请求的目标数据。
如果该数据存在于该主管的高速缓存管理器10的高速缓冲存储器26中,则高速缓存管理器10将保存有该目标数据的高速缓冲存储器26的地址通知给通道适配器11和路由器14,并指示路由器14的DMA引擎15来读取该数据。这时,路由器14启动DMA引擎15,读取高速缓冲存储器26的目标数据,并将该数据传输给通道适配器11的高速缓冲存储器38。然后通道适配器11启动DMA引擎40,并将高速缓冲存储器38的目标数据传输给主机。
如果该目标数据不存在于该主管的高速缓存管理器10的高速缓冲存储器26中,则高速缓存管理器10请求设备适配器13从盘12-1读取该目标数据,并将其传输给高速缓冲存储器26。
设备适配器13从盘12-1读取该目标数据,将该目标数据写入到高速缓冲存储器26中,并通知高速缓存管理器10目标数据的写入已经结束。
当高速缓存管理器10从设备适配器13接收到将目标数据写入高速缓冲存储器26的操作已经结束的通知后,高速缓存管理器10通知通道适配器11已经完成了目标数据的准备,并指示路由器14读取该目标数据。
这时,路由器14启动DMA引擎15,读取高速缓冲存储器26的目标数据,并将其传输至通道适配器11的高速缓冲存储器38。然后通道适配器11启动DMA引擎40,并将高速缓冲存储器38的目标数据传输给主机。
在使用DRAM作为高速缓冲存储器26和38时,通过地址总线A-BUS向该DRAM发送一地址,并通过数据总线D-BUS交换数据,因此表现出高速性能。如上所述,该数据具有校验功能,如BCC,但是地址总线中的地址却没有校验功能。因此对于DMA传输来讲,需要地址保证功能。
DMA电路
图3示出了用于说明根据本发明一实施例的DMA传输的描述符写入操作,图4示出了用于说明根据本发明一实施例的DMA传输的描述符读取操作,而图5示出了根据本发明一实施例的描述符的格式。
图3和图4示出了当图2中的通道适配器11的DMA电路40将高速缓冲存储器38的数据DMA-传输至高速缓存管理器10的高速缓冲存储器26时的示例。
如图3所示,在描述符写入操作的情况下,(1)CPU 34启动描述符程序,并通过执行该程序来创建描述符(2)。此时,CPU 34将表示该描述符编号的描述符指针信息写入描述符的一部分中,如稍后所述。(3)并且CPU 34将所创建的描述符写入存储器38的描述符区域380。
在描述符读取操作的情况下,(1)CPU 34启动DMA程序,并且(2)通过执行该程序来启动DMA引擎40,如图4所示。DMA引擎40从存储器38的描述符区域380读取描述符(3)。
读取之后,DMA引擎40将CPU 34所写入的描述符指针信息与描述符底部指针寄存器110(参见图9)的值进行比较,其中描述符底部指针寄存器110的值表示读取时所使用的描述符的编号。并且如果这些值不同,则DMA引擎40判定该描述符无效,并停止DMA处理。
DMA引擎40还将由CPU 34写入该描述符的一部分中的描述符指针的携带信息(carry information)与描述符底部指针寄存器110的携带比特(carry bit)进行比较。并且如果这些值不同,则DMA引擎40判定该描述符无效,并停止DMA处理。
换句话说,描述符区域380用作循环缓冲器,所以当N倍于描述符大小的描述符区域用完时,从初始位置开始使用该描述符区域380。
此时,对于第一周期将“0”指定为描述符指针的携带信息,而对于第二周期和此后的周期,在每次重新使用描述符区域时都按照“1”→“0”→“1”的方式更新该携带信息。
下面将参照图5来说明描述符的格式示例。如上所述,描述符是CPU34发送给DMA引擎40的DMA传输指令,并且包括高速缓冲存储器104中的地址和字节数,以及要传输的数据的数据传输目的地(存储器)的地址。例如,如图5中的描述符格式所示,该描述符包括四个字(一个字64比特)的命令。第一字包括命令字段cmd、中断控制字段(例如,“1”表示该描述符结束时生成一中断)、BCC校验模式BCC、传输目的地节点Tgt,以及传输目的地(写入侧)存储器地址DDA。
第二字包括传输字节数SIZE(例如,最大1M字节,最小8字节),以及发送源(读取侧)存储器地址SDA。第三字为用于校验的Block-ID初始值Check BKID,而第四字为用于生成(Replace)的Block-ID初始值。根据本发明的该实施例,描述符指针信息DP及其携带信息C位于第四字(Word 3)中。
每一次向高速缓冲存储器38写入数据时,CPU 34都生成一描述符,如图5所示,该描述符包括用于存储该描述符的指针值DP和携带信息C,并且CPU 34将其写入高速缓冲存储器38中的描述符区域380中。
CPU 34还将描述符区域380的第一地址写入DMA引擎40的描述符基地址寄存器(图6的48)中。这样,DMA引擎40就可以知道向高速缓冲存储器38的描述符区域380的哪一部分写入该描述符。
通过这种方式,当创建描述符时,CPU将指针的值和用于存储该描述符的携带信息写入该描述符的预定部分中,并且当DMa引擎读取该描述符时,DMA引擎确认该值是否正确。
这样,如果在CPU 34写入描述符时,存储器控制器36和存储器38之间发生了地址故障,则不更新原定要更新的携带信息,从而在读取该描述符时,DMA引擎40可以检测到无效性。
如果在DMA引擎40读取描述符时发生了地址故障,则该描述符中的指针信息不与读取的指针匹配,所以能够检测出所读取的描述符为异常。
通过这种方式,对于描述符的写入和读取,都可以防止由于地址故障而导致的数据损坏。
图6是根据本发明的具有这种校验功能的DMa引擎的实施例的电路图。如图6所示,DMA引擎40包括:CPU I/F控制单元42、存储器I/F控制单元58、描述符读取控制单元60以及数据传输控制单元50。
DMA引擎40还包括描述符基地址寄存器48、描述符顶部指针寄存器44、描述符底部指针寄存器46和描述符存储寄存器62。
另外,DMa引擎40还包括:加法器47,用于在传输完成后将描述符底部寄存器46的指针值加“1”;加法器54,用于将寄存器48的基地址和寄存器46的底部指针相加;第一比较器52,用于比较寄存器44的顶部指针与寄存器46的底部指针;以及第二比较器56,用于将写入到寄存器62中的描述符中的指针DP和携带位C(Word3)与寄存器46的底部指针进行比较。
根据待存储在高速缓冲存储器38中的描述符的数量来确定描述符顶部指针寄存器44的比特数。例如,如果存储了1024个描述符,则顶部指针寄存器44需要10位。描述符底部指针寄存器46的位数是将携带的一比特与顶部指针寄存器44的比特数相加的值。
下面将说明该结构的操作。当CPU 34启动DMA引擎40时,通过CPU I/F控制单元42来接收基地址、顶部指针和底部指针的各个寄存器44、46和48的设定值,并且将各个寄存器44、46和48的值分别改写为指定的值。
当第一比较器52检测到顶部指针的值和底部指针的值不同时,描述符读取控制单元60判定待执行的描述符存在于高速缓冲存储器38上,并指示存储器I/F控制单元58从存储器38中读取由底部指针所指的一个描述符。此时,通过加法器将底部指针和基地址相加来获取待读取的描述符在存储器38上的地址,并且通过存储器I/F控制单元58将作为读取地址的该地址发送给具有高速缓冲存储器38的地址总线A-BUS。
这样,描述符数据通过数据总线D-BUS从存储器38返回到存储器I/F控制单元58,并按照word 0、1、2、3的顺序被存储在描述符存储寄存器62中,如图5中所描述的。
接收到所有的描述符后,第二比较器56将寄存器62的描述符中所指定的指针DP和携带位C与底部指针寄存器46的值进行比较。将比较结果通知给描述符读取控制单元60。
如果第二比较器56的比较结果为匹配,则描述符读取控制单元60指示数据传输控制单元50利用该描述符来传输数据。数据传输控制单元50根据描述符存储寄存器62中的描述符,通过存储器I/F控制单元58向存储器38输出数据读取请求,从存储器38读取传输数据,并将所读取的数据传输至指定的传输目的地。
传输完成时,传输控制单元50通过描述符读取控制单元60来操作加法器47,使底部寄存器46的底部指针加“1”,并更新底部寄存器46。描述符读取控制单元60重复该操作,直到第一比较器52的比较结果匹配(即,顶部寄存器44的值与底部寄存器46的值匹配)为止。
如果第二比较器56的比较结果为不匹配,则描述符读取控制单元60利用该描述符停止传输(即,不指示传输控制单元50开始传输),并利用中断将错误通知给CPU 34。
比较结果不匹配的原因例如为,在从CPU 34向高速缓冲存储器38写入描述符时,或者DMA引擎40从高速缓冲存储器38读取该描述符时,与高速缓冲存储器38之间的地址总线A-BUS发生异常(例如,断开),因此无法正确地传输地址。
具体地,当使用DRAM作为高速缓冲存储器38时,地址总线和数据总线是分离的,并且地址总线上的地址中不存在校验信息,所以本发明有效地防止了该DMA传输的数据错误。
盘阵列设备的第二实施例
图7是表示根据本发明的盘阵列设备的第二实施例的框图,而图8是详细表示其主要部分的框图。如图7所示,该盘阵列设备通过光纤通道链路18-1和18-2与两个主机17-1和17-2相连。
该盘阵列设备包括:负责主机接口的主机适配器11-1和11-2;高速缓冲存储器26-1和26-2;高速缓存控制器10-1和10-2,用于管理高速缓冲存储器26-1和26-2;以及负责盘接口的盘适配器13-1和13-2。
主机适配器11-1和11-2、高速缓冲存储器26-1和26-2、高速缓存控制器10-1和10-2,以及盘适配器13-1和13-2分别与图1中的通道适配器、高速缓存管理器和设备适配器相同。
该盘阵列设备还包括在盘适配器13-1和13-2与多个盘装置之间提供连接的开关16-1和16-2,以及盘驱动器组12-1和12-2。
高速缓存控制器10-1和10-2在主机适配器11-1和11-2与盘适配器13-1和13-2之间提供数据传输通道。另外还在高速缓存控制器10-1与10-2之间设置了数据传输通道,用于对高速缓冲存储器26-1和26-2的数据进行镜像。
如上所述,高速缓冲存储器26-1和26-2是诸如DRAM的易失性存储器,所以对于要存储在一个高速缓冲存储器26-1或26-2中的数据而言,总是将其副本存储在另一高速缓冲存储器26-2或26-1中。通过该复制操作,防止了故障发生时数据的丢失。将其称作“高速缓存的镜像”。
如稍后图8中所述,各个高速缓存控制器10-1和10-2都具有用于镜像的DMA引擎,并能够按照高速缓存控制器10-1或10-2中的CPU的指令,将存储在高速缓冲存储器26-1或26-2中的数据传输到另一高速缓存控制器的存储器中。
下面将说明使用具有该结构的盘阵列设备来存储主机的数据的操作。主机17-1(或17-2)存储在盘中的数据首先被传输到主机适配器11-1。主机适配器11-1在所接收的数据中添加块校验码(BCC),并将其传输给高速缓存控制器10-1。
高速缓存控制器10-1将传输来的数据存储在高速缓冲存储器26-1中,然后启动DMA引擎并将该数据传输给高速缓存控制器10-2。高速缓存控制器10-2将传输来的数据存储在高速缓冲存储器26-2中。这样就执行了镜像处理。
镜像正常完成后,高速缓存控制器10-1将此通知给主机适配器11-1,并且主机适配器11-1通知主机17-1正常结束了数据的存储。
向高速缓冲存储器26-1和26-2中的盘驱动器组12-1和12-2进行的回写以及从主机进行读取的操作与图1和图2的相同。
如图8所示,高速缓存控制器10-1或10-2用作桥接电路,其中CPU20和22以及DMa引擎28-1或28-2在中心处与用于控制该存储器的存储器控制器24相连。如图8所示,可以根据对CPU的性能要求安装多个CPU,或者仅安装一个CPU。CPU 20和22以及DMa引擎28-1和28-2可以通过存储器控制器24来访问高速缓冲存储器26-1和26-2。
DMA引擎28-1和28-2在高速缓存控制器10-1和10-2的外部具有接口,并且与其它高速缓存控制器相连。主机适配器11-1和11-2以及盘适配器13-1和13-2连接至存储器控制器24,并可以分别访问高速缓冲存储器26-1和26-2。
在从主机17-1或17-2接收到数据(写数据)后,高速缓存控制器10-1或10-2中的CPU 20和22判断是否开始了数据的镜像。根据该结构,如图3所示,当CPU 20和22从主机接收到数据时,CPU 20和22在高速缓冲存储器26-1或26-2中的控制区域(描述符区域)中创建描述符。
如参照图5所述,该描述符是使CPU 20和22将DMA传输指令发送给DMA引擎28-1和28-2的命令,并且包括命令字段、中断控制字段、传输源存储器地址、传输目的地存储器地址、传输数据字节长度、用于检查的Block-ID初始值、用于生成的Block-ID初始值、携带信息以及描述符指针。
如参照图4和图6所述,DMa引擎28-1和28-2具有与图6相同的结构,其中描述符区域的第一地址被写入描述符基地址寄存器48,并包括描述符顶部指针寄存器44和描述符底部指针寄存器46。这些寄存器表示了CPU在描述符区域中准备了多少描述符,以及DMA引擎完成了多少描述符的执行。
DMA引擎28-1和28-2读取到描述符后,对其进行分析,并完成指定的数据传输,DMA引擎28-1和28-2使描述符底部指针寄存器46加“1”。
根据本实施例,在用于镜像的DMA传输中附加图5和图6中的校验功能。换句话说,在为了提高数据的可靠性而进行的镜像操作过程中绝对不会损坏数据。
因此,存储装置通常如上所述通过附加校验码来保证数据,并且高速缓冲存储器本身具有用于数据的ECC码,从而可以检测到由于构成存储器的DRAM元件的异常或者存储器控制器与DRAM元件之间的数据路径的异常而导致的数据损坏,并且如果检测到了异常,则停止镜像。
在DMA引擎执行的镜像操作中,利用上述校验码和ECC来保护数据,但是描述符的保护是不充分的。所以例如,如果存储器控制器和存储器之间的地址线出现了故障,则CPU可能在不正确的地址中写入描述符,或者DMA引擎可能从不正确的地址中读取描述符。
这种情况下,不同于原始数据中的数据可能被写入另一高速缓冲存储器中,或者数据可能被镜像至与高速缓冲存储器的目标地址不同的地址中,结果,数据没有被正确镜像,从而无法保证高速缓冲存储器中的数据。
因此即使在用于镜像的DMA传输中,参照图5和图6所述的描述符的异常检测功能对于正确的镜像也是有效的。换句话说,当CPU创建描述符时,CPU将用于存储描述符的指针的值和携带信息写入该描述符的预定部分中,并且当DMA引擎读取该描述符时,DMA引擎确认该值是否正确。
如果在CPU写入描述符时,存储器控制器与该存储器之间发生了地址故障,则对于原定要更新的携带信息不进行更新,所以DMA引擎可以在读取描述符时将其检测为无效。
如果在DMA引擎读取描述符时发生了地址故障,则该描述符中的指针信息并不与待读取的指针匹配,所以将读取的描述符检测为异常。这样,对于描述符的写入和读取,都可以防止由于地址故障(例如,地址线断开、地址线驱动器故障)而导致的数据损坏。
根据本实施例,对要存储在高速缓冲存储器中的数据进行了镜像后,可以防止使用无效描述符进行数据的DMa传输,从而可以提高设备的稳定性。
其它实施例
本发明并不限于上述实施例,而是可以在本发明的实质特征的范围内以各种方式进行修改。例如,在以上实施例中,作为用于存储数据的存储单元的示例,描述了磁盘设备,但是本发明并不限于此,存储单元中的存储介质可以采用光盘或者磁光盘。
在第一实施例中描述了从通道适配器向控制模块写入数据的DMA传输,但是本发明还可以应用于读取数据的DMA传输以及用于镜像的DMA传输。
在本发明中,各个组成元件(盘装置、主机、控制模块、高速缓冲存储器管理器、通道适配器以及DMA引擎)的数量以及这些单元中的每一个所具有的端口数量并不受限制,而是可以根据需要进行改变或组合。
对DMA传输电路应用于上述盘阵列设备的情况进行了说明,但是还可以应用于其它数据处理设备,并且目标存储器也并不限于高速缓冲存储器。
当生成描述符时,数据处理单元将用于存储该描述符的指针写入该描述符的预定部分中,而DMA引擎读取该描述符时,DMa引擎确认该值是否正确,从而对于描述符的写入和读取,都可以防止由于地址故障而导致的数据损坏。具体地,对于地址线和数据线分离的存储器,可以检测到地址故障,并且可以防止盘阵列设备的镜像处理和数据传输处理中所传输数据的错误,从而可以构建出高度可靠的系统。
本申请基于2004年12月24日提交的在先日本专利申请No.2004-372441,并要求其优先权,此处通过引用并入其全部内容。

Claims (18)

1、一种直接存储器存取电路,用于读取由数据处理单元所写入的表示直接存储器存取传输内容的描述符、从存储器中读取由描述符所限定的地址处的数据,并且传输该数据,所述直接存储器存取电路包括:
第一和第二寄存器,用于存储顶部指针和底部指针,其中,该顶部指针表示由所述数据处理单元写入所述存储器中的顶部描述符,以及该底部指针表示由所述数据处理单元写入所述存储器中的多个描述符中的所述直接存储器存取传输的下一个目标描述符的位置;
传输电路,用于从写有被赋予了表示描述符的号的描述符指针的多个直接存储器存取传输的描述符的所述存储器中读取由所述底部指针表示的描述符、分析由此读取的描述符、读取由所述存储器的所述描述符限定的地址处的数据,并传输该数据;以及
比较电路,用于将所读取的描述符中包括的由所述数据处理单元所写入的描述符指针与所述底部指针进行比较,并控制所述传输电路的传输操作,
其中在通过读取并分析所述底部指针表示的描述符来完成数据传输之后,所述传输电路更新用于存储所述底部指针的所述第二寄存器。
2、根据权利要求1所述的直接存储器存取电路,其中所述传输电路访问地址线和数据线分离的所述存储器。
3、根据权利要求1所述的直接存储器存取电路,其中当所述比较电路的比较结果不满意时,所述传输电路停止在由所述存储器中的所述描述符所指定的地址处读取数据的操作。
4、根据权利要求1所述的直接存储器存取电路,还包括第二比较电路,其用于比较所述第一寄存器的顶部指针和所述第二寄存器的底部指针,
并且所述传输电路根据所述第二比较电路的比较结果来结束所指定的直接存储器存取传输。
5、根据权利要求1所述的直接存储器存取电路,还包括第三寄存器,其用于存储所述读取描述符,
并且所述比较电路对包括在所述第三寄存器的所述读取描述符中的描述符指针与所述第二寄存器的所述底部指针进行比较。
6、根据权利要求1所述的直接存储器存取电路,还包括第四寄存器,其用于存储对所述存储器的描述符区域的基位置进行表示的基指针,
其中所述传输电路读取由所述第二寄存器的所述底部指针和所述第四寄存器的基指针相加的值所表示的所述存储器的描述符。
7、根据权利要求1所述的直接存储器存取电路,其中所述传输电路进一步包括:
描述符读取控制电路,用于请求所述存储器来读取描述符;以及
数据传输电路,用于请求所述存储器根据所述读取描述符来读取数据,
并且其中所述描述符读取控制电路根据所述比较电路的比较结果来控制所述数据传输电路的读取请求。
8、根据权利要求7所述的直接存储器存取电路,其中所述描述符读取控制电路向所述存储器请求由所述底部指针所表示的所述存储器的描述符,
并且其中所述数据传输电路对所述读取描述符进行分析,读取由所述存储器的所述描述符指定的地址处的数据,并传输该数据。
9、根据权利要求7所述的直接存储器存取电路,还包括用于存储所述读取描述符的第三寄存器,
其中所述比较电路将包括在所述第三寄存器的所述读取描述符中的描述符指针与所述第二寄存器的所述底部指针进行比较,
并且其中所述数据传输电路根据所述描述符读取控制电路的传输许可来分析所述第三寄存器的所述描述符,读取由所述存储器的所述描述符指定的地址处的数据,并传输该数据。
10、一种盘阵列设备,包括:
多个盘装置;以及
用于根据来自主机的请求来进行所述盘装置的数据的读取/写入的控制单元,
其中所述控制单元包括:
数据处理单元;
高速缓冲存储器,用于为所述盘装置存储数据;以及
直接存储器存取电路,用于读取所述数据处理单元所写入的表示直接存储器存取传输内容的描述符,从所述高速缓冲存储器中读取由描述符限定的地址处的数据,并传输该数据,
并且其中所述直接存储器存取电路包括:
第一和第二寄存器,用于存储顶部指针和底部指针,其中,该顶部指针表示由所述数据处理单元写入所述高速缓冲存储器中的顶部描述符,以及该底部指针表示由所述数据处理单元写入所述高速缓冲存储器中的多个描述符中的所述直接存储器存取传输的下一个目标描述符的位置;
传输电路,用于从写有被赋予了表示描述符的号的描述符指针的多个直接存储器存取传输的描述符的所述高速缓冲存储器中读取由所述底部指针表示的所述高速缓冲存储器的描述符、分析该描述符、读取所述高速缓冲存储器的由所述描述符指定的地址处的数据,并传输该数据;以及
比较电路,用于将包括在所述读取描述符中的由所述数据处理单元所写入的描述符指针与所述底部指针进行比较,并控制所述传输电路的传输操作,
其中在通过读取并分析所述底部指针表示的描述符来完成数据传输之后,所述传输电路更新用于存储所述底部指针的所述第二寄存器。
11、根据权利要求10所述的盘阵列设备,其中所述传输电路访问地址线和数据线分离的所述存储器。
12、根据权利要求10所述的盘阵列设备,其中当所述比较电路的比较结果不满意时,所述传输电路停止在所述高速缓冲存储器中的由所述描述符指定的地址处读取数据的操作。
13、根据权利要求10所述的盘阵列设备,其中所述直接存储器存取电路还包括第二比较电路,其用于比较所述第一寄存器的顶部指针和所述第二寄存器的底部指针,
并且其中所述传输电路根据所述第二比较电路的比较结果来结束所指定的直接存储器存取传输。
14、根据权利要求10所述的盘阵列设备,其中所述直接存储器存取电路还包括第三寄存器,其用于存储所述读取描述符,
并且其中所述比较电路对包括在所述第三寄存器的所述读取描述符中的描述符指针与所述第二寄存器的所述底部指针进行比较。
15、根据权利要求10所述的盘阵列设备,其中所述直接存储器存取电路还包括第四寄存器,其用于存储对所述存储器的描述符区域的基位置进行表示的基指针,
其中所述传输电路读取由所述第二寄存器的所述底部指针和所述第四寄存器的基指针相加的值所表示的所述高速缓冲存储器的描述符。
16、根据权利要求10所述的盘阵列设备,其中所述传输电路进一步包括:
描述符读取控制电路,用于请求所述高速缓冲存储器来读取描述符;以及
数据传输电路,用于请求所述高速缓冲存储器根据所述读取描述符来读取数据,
并且其中所述描述符读取控制电路根据所述比较电路的比较结果来控制所述数据传输电路的读取请求。
17、根据权利要求10所述的盘阵列设备,其中所述控制单元还包括:
通道适配器,用于与所述主机进行通信;
具有高速缓冲存储器的控制电路,用于存储所述盘装置的部分数据;以及
设备适配器,用于与所述盘装置进行通信,
并且其中所述直接存储器存取电路在所述通道适配器的所述高速缓冲存储器与所述控制电路的所述高速缓冲存储器之间执行所述直接存储器存取传输。
18、根据权利要求10所述的盘阵列设备,还包括多个所述控制单元,各个所述控制单元都包括:通道适配器,用于与所述主机进行通信;控制电路,具有用于存储所述盘装置的部分数据的高速缓冲存储器;以及设备适配器,用于与所述盘装置进行通信,
其中所述直接存储器存取电路通过一个所述控制单元的所述高速缓冲存储器与另一个所述控制单元的所述高速缓冲存储器之间的所述直接存储器存取传输,来进行镜像。
CNB2005100776884A 2004-12-24 2005-06-22 直接存储器存取电路以及使用该电路的盘阵列设备 Expired - Fee Related CN100474278C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004372441 2004-12-24
JP2004372441A JP4390694B2 (ja) 2004-12-24 2004-12-24 Dma回路及びこれを用いたディスクアレイ装置

Publications (2)

Publication Number Publication Date
CN1794213A CN1794213A (zh) 2006-06-28
CN100474278C true CN100474278C (zh) 2009-04-01

Family

ID=36613089

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100776884A Expired - Fee Related CN100474278C (zh) 2004-12-24 2005-06-22 直接存储器存取电路以及使用该电路的盘阵列设备

Country Status (4)

Country Link
US (1) US7552249B2 (zh)
JP (1) JP4390694B2 (zh)
KR (1) KR100708567B1 (zh)
CN (1) CN100474278C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360967A (zh) * 2010-09-22 2015-02-18 株式会社东芝 存储器系统、主机控制器以及dma的控制方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183692A (ja) * 2005-12-29 2007-07-19 Fujitsu Ltd データ処理装置
JP4362135B2 (ja) 2007-02-13 2009-11-11 富士通株式会社 データ転送装置およびデータ転送方法
US10353633B2 (en) * 2013-12-19 2019-07-16 Sony Interactive Entertainment LLC Mass storage virtualization for cloud computing
CN110888675B (zh) * 2018-09-11 2021-04-06 深圳云天励飞技术有限公司 硬件系统和电子设备
FR3094122A1 (fr) * 2019-03-22 2020-09-25 Stmicroelectronics (Grenoble 2) Sas Dispositif électronique de traitement d’images
JP7476733B2 (ja) * 2020-09-07 2024-05-01 オムロン株式会社 通信制御機器および通信制御機器の制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211032A (ja) 1987-02-27 1988-09-01 Nippon Telegr & Teleph Corp <Ntt> 共通資源制御方式
JPH0358217A (ja) 1989-07-27 1991-03-13 Nec Corp 電子ディスクサブシステム
KR0182709B1 (ko) * 1996-04-19 1999-05-15 유기범 교환기에 있어서 프로세서간 통신방법
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JP2001229120A (ja) * 2000-02-18 2001-08-24 Sharp Corp チェーン式dmaの処理誤り検出方法及びdmaコントローラ
TWI226546B (en) * 2002-06-18 2005-01-11 Via Tech Inc Method for checking address of data to be transferred in DMA mode and DMA controller
CN1204500C (zh) 2002-06-27 2005-06-01 威盛电子股份有限公司 直接存储器存取控制器及直接存储器存取的控制方法
JP2004110159A (ja) 2002-09-13 2004-04-08 Ricoh Co Ltd データ転送制御装置
CN1296845C (zh) 2003-01-24 2007-01-24 华为技术有限公司 一种磁盘存储系统
US7659904B2 (en) * 2003-04-07 2010-02-09 Ati Technologies Ulc System and method for processing high priority data elements
JP4371724B2 (ja) 2003-07-03 2009-11-25 株式会社日立製作所 記憶システム及び記憶装置システム
US20050114561A1 (en) * 2003-11-24 2005-05-26 Ho-Keng Lu Method for performing DMA transfers with dynamic descriptor structure

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360967A (zh) * 2010-09-22 2015-02-18 株式会社东芝 存储器系统、主机控制器以及dma的控制方法
CN104360967B (zh) * 2010-09-22 2017-08-04 株式会社东芝 存储器系统、主机控制器以及dma的控制方法
USRE47659E1 (en) 2010-09-22 2019-10-22 Toshiba Memory Corporation Memory system having high data transfer efficiency and host controller
USRE48736E1 (en) 2010-09-22 2021-09-14 Kioxia Corporation Memory system having high data transfer efficiency and host controller
USRE49875E1 (en) 2010-09-22 2024-03-19 Kioxia Corporation Memory system having high data transfer efficiency and host controller

Also Published As

Publication number Publication date
US20060143329A1 (en) 2006-06-29
KR20060073420A (ko) 2006-06-28
KR100708567B1 (ko) 2007-04-19
JP2006178795A (ja) 2006-07-06
US7552249B2 (en) 2009-06-23
CN1794213A (zh) 2006-06-28
JP4390694B2 (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
JP3204276B2 (ja) ディスクアレーコントローラ
US7606971B2 (en) Storage control apparatus and external storage apparatus
KR102426619B1 (ko) 영구 메모리 시스템 등을 위한 데이터 무결성
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
CN100474278C (zh) 直接存储器存取电路以及使用该电路的盘阵列设备
US5499346A (en) Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
EP0986783B1 (en) Time-distributed ecc scrubbing to correct memory errors
US7917813B2 (en) Exception condition determination at a control unit in an I/O processing system
US4974144A (en) Digital data processor with fault-tolerant peripheral interface
US5381538A (en) DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
US6526477B1 (en) Host-memory based raid system, device, and method
US20080235485A1 (en) ECC implementation in non-ECC components
US20020124129A1 (en) Method for using RAM buffers with multiple accesses in flash-based storage systems
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
KR20120052303A (ko) 플래시 메모리 시스템에 판독 상태 및 예비 블록 관리 정보를 제공하기 위한 제어기 및 방법
US6543029B1 (en) Error corrector
GB1588806A (en) Input/output system for a multiprocessor system
JP2011508349A (ja) プロセッサを内部メモリに接続するクロスバー・スイッチを含むフラッシュメモリ用ストレージコントローラ
JP2007122476A (ja) データストレージシステム、データストレージ制御装置及びそのディスクのライト抜け診断方法
JPH02135534A (ja) 誤りプロセッサ
CN101405700A (zh) 错误管理拓扑结构
US7809899B2 (en) System for integrity protection for standard 2n-bit multiple sized memory devices
US7921265B2 (en) Data access method, channel adapter, and data access control device
US5838892A (en) Method and apparatus for calculating an error detecting code block in a disk drive controller
KR100308149B1 (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090401

Termination date: 20160622

CF01 Termination of patent right due to non-payment of annual fee