适配器读取和写入系统存储器的方法和系统的制作方法

文档序号:6630586阅读:146来源:国知局
专利名称:适配器读取和写入系统存储器的方法和系统的制作方法
技术领域
本发明涉及一种适配器读取和写入系统存储器的方法、系统和程序。
背景技术
在某些计算环境中,多个主机系统可以和一个或多个控制单元例如IBM企业存储服务器(ESS)通信,以获得由接收请求的ESS管理的存储设备中的数据。控制单元管理对诸如通过一条或多条逻辑路径互连的硬盘驱动器的存储设备的访问。(IBM和ESS是IBM的注册商标)。互连的驱动器可配置为直接存取存储设备(DASD)、独立盘冗余阵列(RAID)、仅一组盘(JBOD,Just aBunch of Disks)等。控制单元包括主机适配器,以便从主机接收I/O请求。在某些系统中,主机可以读取和写入具有某种格式的数据块,例如512字节的块,并且控制单元可以通过将元数据从主机添加到块中而以不同的格式存储数据,从而导致每块524字节。
在一个系统中,主机适配器可以将要写入逻辑块地址的块传输给高速缓冲存储器的存储控制器。然后,存储控制器可以处理逻辑块的虚拟地址映射,以便写入高速缓冲存储器中的物理页。当请求数据时,主机适配器可以给存储控制器提供要读取的逻辑块,并且存储控制器可以将所请求的逻辑块转换为高速缓冲存储器中的物理页。然后,存储控制器从所确定的物理页中取出数据,以便返回给主机适配器,从而又被返回给主机。

发明内容
提供了一种适配器读取和写入系统存储器的方法、系统和程序。在适配器处接收要写入存储器的多个数据块。这些数据块被添加到适配器中的缓冲器。对存储设备中的页进行确定,并产生将缓冲器中的块写入所确定的页的I/O请求,其中,产生两个I/O请求,以便写入分拆(split)在存储设备中的两页之间的一个块。适配器执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。


图1图示计算环境的实施例。
图2图示页映射的实施例。
图3图示I/O请求中的信息。
图4和5图示写入数据操作的实施例。
图6图示读取数据操作的实施例。
具体实施例方式
图1图示了计算环境的实施例。一个或多个主机2将指向一个或多个存储系统4(图中只示出一个)的输入/输出(I/O)请求传送给控制单元6,其中,控制单元6管理对存储系统4的访问。控制单元6包括主机适配器8,用来使能与主机2的网络通信;和设备适配器10,使能与一个或多个存储系统4的通信。控制单元6还包括处理器12,其执行I/O代码14以管理I/O请求;和高速缓冲存储器16,用来存储对存储系统4中的数据的更新或由主机2请求的数据。非易失性存储系统(NVS)18用来提供附加的对存储系统4中数据的更新的非易失性备份,例如电池备份存储设备。总线19使能不同的控制单元6的组件之间的通信,并且可以包括一个或多个总线接口。控制单元6可以包括双处理器系统以及附加的处理器、高速缓冲存储器和NVS。
主机适配器8包括顺序缓冲器(sequence buffer)20,用来在存储系统4中存储数据块,以返回给主机2或者要在存储系统4中进行更新。顺序缓冲器20中的分拆缓冲器(split buffer)21用来如下面所述的那样缓冲分拆块。主机适配器8还包括适配器控制器22,其包括用来执行主机适配器操作8的固件或代码;以及直接存储器存取(DMA)引擎24,其使主机适配器8能够不经过处理器12而直接对高速缓冲存储器16和NVS 18进行读取和写入。适配器控制器12建立页映射26,其中,该页映射26提供逻辑块例如一个或多个逻辑轨道(track)中的逻辑块地址(LBA)与高速缓冲存储器16中的物理页的映射。适配器控制器22使用页映射26来产生DMA I/O请求,以使DMA引擎24在页映射26中指明的对应页处读取或写入逻辑块。
主机2、存储系统4和控制单元6可以通过网络(未示出)通信,该网络可包括局域网(LAN)、存储区域网络(SAN)、总线接口、串行接口等。控制单元6可包括任何种类的服务器,例如企业存储服务器、存储控制器等,或者用来管理对所附接的存储服务器4的I/O请求的其它设备。存储系统4可包括本领域公知的存储设备,例如互连的硬盘驱动器(例如,被配置为DASD、RAID、JBOD等)、磁带、电子存储器等。
图2将页映射26的实施例示例图示为示出受I/O请求支配的每个逻辑块如何映射到高速缓冲存储器16中的物理页。如果控制单元6将逻辑块写入高速缓冲存储器16和NVS 28,则控制单元6可以维持多个页映射26,其中,一个页映射提供逻辑块与高速缓冲存储器16中的页的对应,而另一个页映射提供逻辑块与NVS 18中的页的对应。页映射26可包括具有对应逻辑块的页的页索引。在一种实现中,可以通过将页的尺寸例如4K字节(KB)乘以索引编号来确定存储器(高速缓冲存储器16或NVS 18)中对应于页ID的页的起始位置。连续的逻辑块可以映射到高速缓冲存储器16或NVS 28中的不连续页。
图3图示了DMA I/O请求50中的信息的实施例,其中,适配器控制器22产生该DMA I/O请求50,以使DMA引擎24直接在高速缓冲存储器16或NVS 18中读取或写入数据。DMA请求50包括I/O类型52,指示请求是要读取还是要写入;源地址54,指示顺序缓冲器20中从中写入更新后数据的位置;目的地地址56,指示高速缓冲存储器16或NVS 18中向其写入源数据的位置、或者顺序缓冲器20中向其传输从高速缓冲存储器16读取的数据的位置、或者高速缓冲存储器16中在将所读取的数据返回给主机2之前从中传输该数据的位置;字节计数58,指示要传输的字节数目。源地址54和目的地地址56可以指示页和页中距要传输的数据开始处的偏移量。转换操作60字段指示要对受到DMA传输操作的数据执行的转换操作,例如添加元数据、或在将源地址52处的数据写入目的地地址56之前从该数据去除元数据。
图4图示了由适配器控制器2和DMA引擎24执行以便将从主机2接收的逻辑轨道写入存储器的操作的实施例。当在适配器8处接收到(在框100)要写入存储系统4的逻辑轨道中的多个数据块时,适配器控制器22确定(在框102)第一存储设备例如高速缓冲存储器16中的页(即,物理页的页ID)。在一个实施例中,可以通过向处理器12发送(在框102)对页的请求,并从处理器12接收(在框104)存储逻辑块的高速缓冲存储器16中的页,来确定这些页,其中,这些页可以是不连续的。在一个实施例中,对于轨道写入操作,处理器12可以自动返回足够的页,以存储逻辑轨道中的所有逻辑块。这样,如果要写入的逻辑轨道具有128个块,每个逻辑块加上元数据是524字节,并且每页是4KB,则处理器12返回17个空闲页,以供适配器控制器22使用。然后,适配器控制器22将数据块添加到(在框106)缓冲器20中。这样,可以防止主机2向适配器缓冲器20发送数据,直到适配器8接收到对要使用的页的指示为止。
适配器控制器22在适配器8中的数据结构如页映射26中指明(在框108)要写入第一存储设备中的物理页的逻辑轨道中的块的映射。逻辑轨道中的连续块可以映射到存储设备16中的不连续物理页。适配器控制器22使用页映射26来产生(在框110)将缓冲器20中的块写入第一存储设备例如高速缓冲存储器16中所确定的页DMA I/O请求。产生两个I/O请求,以便写入分拆在存储设备16中的两页之间的块。然后,在适配器8中执行(在框112)所产生的I/O请求,以便将缓冲器中的块(包括附加的元数据)写入第一存储设备例如高速缓冲存储器16中所确定的页。在一个实施例中,DMA引擎24执行I/O请求,以便将这些块直接写入高速缓冲存储器16。
适配器控制器22还可以通过确定(在框114)第二存储设备例如NVS 18中的页,来执行将更新后的块写入第二存储设备例如NVS 18的操作。与高速缓冲存储器16的情况一样,适配器控制器22可以通过从处理器12请求NVS 18中的页来确定要写入数据的页。适配器控制器22产生(在框116)将缓冲器中的块写入第二存储设备(NVS 18)中所确定的页的I/O请求,其中,产生两个I/O请求,以便写入分拆在第二存储设备(NVS 18)中的两页之间的块。适配器8中的DMA引擎24执行(在框118)所产生的I/O请求,以便将缓冲器20中的块写入第二存储设备例如NVS 18中所确定的页。以这一方式,主机适配器8产生将更新后的逻辑轨道写入高速缓冲存储器16和NVS 18两者的I/O请求。
在一个实施例中,适配器控制器22可以向处理器12返回(在框120)对未写入块的至少一页的至少一个标识符的指示。由于在所返回的指示中指明的页没有被适配器写入,因此,响应于该指示,处理器12可以释放这些页。例如,处理器可以向控制器22提供能够包括逻辑轨道中的所有块例如全部128个块的固定数目的页。如果主机2没有请求写入逻辑轨道中的所有块,则可以释放未用于写入的那些页。对要释放的页的指示可以包括指示未被写入的那些轨道和被写入的那些轨道的位图。然后,处理器12可以通过按照位图所示将被写入的块映射到处理器12提供给控制器22以供使用的页,来确定没有将块写入其中的页,并且,可以释放被写入的块没有映射到的所提供的那些页。
图5图示了适配器控制器22如何产生I/O请求以便将块写入高速缓冲存储器16中的页、并在将块写入高速缓冲存储器16和/或NVS 18时将元数据附加到块上的一个实施例。图5的操作可以在图5中的块110或116处执行。当发起产生I/O请求的操作(在框150)时,适配器控制器22按照页映射26所示按顺序处理(在框152)逻辑轨道的块,并执行块154-160处的操作。适配器控制器22产生(在框154)一个对如映射26所示映射到一页的缓冲器20中的连续(未分拆)块的I/O请求,其中,该I/O请求指明在将块写入所确定的页时将元数据添加到这些块中。在一个实施例中,I/O请求可包括DMA请求50,其中转换操作60字段指示将元数据添加到正被写入的块中。然后,产生一个I/O请求(在框156),以便将刚才写入的未分拆连续块之后的分拆块(如果有的话)写入适配器8的分拆缓冲器21,并添加元数据作为写入的一部分。在添加元数据之后,产生一个I/O请求(在框158),以便将分拆缓冲器21中分拆块的第一部分写入该第一部分所映射的页,并产生一个I/O请求(在框160),以便将分拆缓冲器21中分拆块的第二部分写入该第二部分所映射的下一页。如果(在框162)仍然存在页映射26中指示的要写入其它页的其它逻辑块,则控制返回块154,以产生一个或多个I/O请求,以便将剩余的逻辑块写入一个或多个页。或者,如果已经为页映射26中指示的所有逻辑块产生了I/O请求例如DMA写入请求,则产生I/O请求的过程结束。
图6图示了处理来自主机2的读取请求的操作的实施例。当从主机2接收到(在框200)对可能跨越一个逻辑轨道的多个数据块的读取请求时,适配器控制器22确定(在框202)包括所请求的数据的存储设备例如高速缓冲存储器16中的页。在一个实施例中,适配器控制器22可以通过向处理器12发送对包括所请求的块的页的请求来确定页。控制器22从处理器12接收(在框204)对包括所请求的块的至少一页的指示。控制器22产生I/O请求,以便将块从存储设备例如高速缓冲存储器16中所确定的页读入适配器8中的缓冲器例如顺序缓冲器20。至少一个块被分拆在高速缓冲存储器16中的两页之间。I/O请求可包括对DMA引擎24的DMA请求。块206-218提供了用来产生I/O请求的一个实施例。
在框206,将一页设置为所接收的页的第一页。适配器控制器22产生(在框208)一个将该页中所请求的所有连续(未分拆)的块读入缓冲器20的I/O请求,其中,该I/O请求指明在将块写入缓冲器时从这些块中去除元数据。可以在转换操作字段60中指明当写入块时从这些块中去除元数据的操作。产生(在框210)一个对该页中所请求的分拆块的I/O请求,以便将该页中分拆块的第一部分读入适配器8中的分拆缓冲器21,并产生(在框212)一个对该分拆块的I/O请求,以便将该块的第二部分读入分拆缓冲器21的下一页。然后,适配器控制器22产生(在框214)一个对在分拆缓冲器21中重组的分拆块的I/O请求,以便从该分拆块中去除元数据,并在被写入缓冲器20的未分拆块之后写入缓冲器20。这样,可以将被读入分拆缓冲器21的具有元数据的524字节的块减小为被剥离了其元数据的512字节的块,以便写入缓冲器20,并返回给主机2。如果(在框216)存在要处理的所确定的页的下一页,则将该页设置(在框218)为所确定的页的下一页。在产生I/O请求时,控制器22可以构建块到由处理器返回的页的页映射26。如果要读取的第一请求块处于第一返回页的偏移量处,即,不是该第一页中包括的逻辑轨道的第一块,则控制器22在第一I/O请求中包括第一请求块所在的页中的偏移量。
如果不存在其它要从中进行读取的页,则适配器控制器22执行(在框220)所产生的I/O请求,以便将块从存储设备例如高速缓冲存储器16中所确定的页读入缓冲器20,诸如DMA引擎24的适配器8执行(在框222)所产生的I/O请求,以便将块从存储设备例如高速缓冲存储器16中所确定的页读入缓冲器20。响应于执行一个I/O请求而被读取的数据被附加到来自先前被读入顺序缓冲器20的读取请求的数据。响应于从块中去除元数据,将缓冲器20中的块通过网络传送(在框212)给请求这些块的主机2。在此实施例中,在适配器8中执行添加和去除元数据的操作。
利用所述实施例,主机适配器8处理逻辑块到I/O请求所指向的存储设备中的物理页的映射。然后,适配器将数据直接传输给存储器,而绕过处理器12。在所述实施例中,主机适配器8查询处理器12,以便确定将用于I/O请求的存储设备中的物理页。此外,在一个实施例中,所产生的I/O请求可以在单独的I/O请求中取回或写入跨越多个页的块。
其它实施例细节可以将所述实施例作为使用标准编程和/或工程技术来产生软件、固件、硬件或其任何组合的方法、装置或产品来实现。在此使用的术语“产品”是指在硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、特定用途集成电路(ASIC)等)或计算机可读介质(例如磁存储介质(例如硬盘驱动器、软盘驱动器、磁带等)、光存储器(CD-ROM、光盘等)、易失性和非易失性存储设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等))中实现的代码或逻辑。计算机可读介质中的代码由处理器访问和执行。实现优选实施例的代码还可以通过传输介质或者从文件服务器通过网络来访问。在这样的情况下,在其中实现代码的产品可包括传输介质,例如网络传输线、无线传输介质、通过空间、无线电波、红外信号等传播的信号等。因而,“产品”可包括在其中实施所述代码的介质。此外,“产品”可包括在其中实施、处理和执行所述代码的硬件和软件组件的组合。当然,本领域技术人员将认识到,在不脱离本发明的范围的情况下,可以对该配置进行多种修改,并且产品可包括本领域公知的任何信息承载介质。
图2和3示出了在页映射和DMA请求中包括的某些信息。在替换实施例中,可以将该信息存储在具有与所示出的不同的格式和信息的不同数据结构中。
一些实施例可以针对用于由人或者通过将计算机可读代码集成到计算系统中的自动处理配置(deploy)计算指令的方法,其中,启动与计算系统相结合的代码而执行所述实施例的操作。
图4、5和6所示的操作示出了以一定顺序发生的某些事件。在替换实施例中,可以以不同的顺序执行、修改或去除一些操作。此外,可以将步骤添加到上述逻辑中,并且它们仍然符合所述实施例。此外,在此描述的操作可以按顺序发生,或者可以并行处理某些操作。另外,可以由单个处理单元或分布式处理单元来执行操作。
出于说明和描述的目的而提供了以上对本发明各种实施例的描述。其意图不是毫无遗漏的、或者将本发明限制为所公开的精确形式。根据以上讲述内容,很多修改和变化都是有可能的。本发明的范围不受该详细描述的限制,而是由所附权利要求限定。以上说明、示例和数据提供了对本发明的结构的制造和使用的完整描述。由于可以在不脱离本发明的精神的范围的情况下产生本发明的很多实施例,因此本发明在于所附权利要求。
权利要求
1.一种方法,包括在适配器处接收要写入存储器的多个数据块;将数据块添加到适配器的缓冲器中;确定存储设备中的页;产生将缓冲器中的块写入所确定的页的I/O请求,其中产生两个I/O请求,以便写入分拆在存储设备中的两页之间的一个块;以及在适配器中执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。
2.如权利要求1所述的方法,其特征在于,所接收的块包括逻辑轨道中的块,并且其中所确定的页包括存储设备中的物理页的标识符,该方法还包括在适配器的数据结构中指明逻辑轨道中的块到物理页的映射,其中逻辑轨道中的连续块可以映射到存储设备中的不连续物理页,并且其中使用该数据结构来产生I/O请求。
3.如权利要求1所述的方法,其特征在于,确定页包括向处理器发送对要写入块的页的请求;以及从处理器接收要存储块的页的标识符,其中这些页可以是不连续的。
4.如权利要求3所述的方法,其特征在于,所指明的页可包括能够包含逻辑轨道中所有块的固定数目的页,并且该方法还包括向处理器返回对没有被写入块的至少一页的至少一个标识符的指示,其中处理器释放在所返回的指示中指明的页。
5.如权利要求1所述的方法,还包括将元数据附加到被写入存储设备中的页的块上。
6.如权利要求1所述的方法,其特征在于,产生I/O请求包括产生将缓冲器中的一组块写入存储设备中所确定的一页的I/O请求;产生将缓冲器中这组块之后的分拆块的第一部分写入存储设备中所确定的页的I/O请求;产生将缓冲器中的分拆块的第二部分写入存储器中下一个所确定的页的I/O请求,其中第二部分不适合所述所确定的页;重复产生I/O请求的操作,以便从下一个所确定的页开始写入块,直到产生了将缓冲器中的所有块连续写入所确定的页的I/O请求为止。
7.如权利要求6所述的方法,其特征在于,将所述一组块写入一页的I/O请求在将这些块写入该页的同时将元数据附加到这些块上。
8.如权利要求7所述的方法,其特征在于,将元数据附加到分拆块上包括产生将缓冲器中的分拆块写入该缓冲器中的分拆缓冲器的I/O请求;将元数据附加到分拆缓冲器中的分拆块上,其中,写入分拆块的第一和第二部分的I/O请求写入来自分拆缓冲器的第一和第二部分以及元数据。
9.如权利要求1所述的方法,其特征在于,存储设备包括第一存储设备,该方法还包括确定第二存储设备中的页;产生将缓冲器中的块写入第二存储设备中所确定的页的I/O请求,其中,至少一个块被分拆在第二存储设备中的两页之间;在适配器中执行所产生的I/O请求,以便将缓冲器中的块写入第二存储设备中所确定的页。
10.如权利要求1所述的方法,其特征在于,I/O请求包括由适配器中的DMA引擎执行的直接存储器存取(DMA)请求。
11.一种方法,包括接收对多个数据块的读取请求;确定包括所请求的块的存储设备中的页;产生将这些块从存储设备中所确定的页读入适配器中的缓冲器的I/O请求,其中,至少一个块被分拆在存储设备中的两页之间;以及在适配器中执行所产生的I/O请求,以便将这些块从存储设备中所确定的页读入缓冲器。
12.如权利要求11所述的方法,其特征在于,确定存储器中的页包括向处理器发送对包括所请求的块的页的请求;以及从处理器接收对包括所请求的块的至少一页的指示,其中,所确定的页包括已接收的所指示的页。
13.如权利要求11所述的方法,其特征在于,页中的块包括元数据,该方法还包括从被读入缓冲器的页中的块中去除元数据。
14.如权利要求11所述的方法,其特征在于,产生I/O请求还包括产生将所确定的一页中的所请求的块读入缓冲器的I/O请求;产生将所确定的页中的分拆块的第一部分读入缓冲器中的分拆缓冲器的I/O请求;产生将存储设备中下一个所确定的页中的分拆块的第二部分读入分拆缓冲器的I/O请求,其中,该第二部分不适合所述所确定的页;产生将分拆缓冲器中的分拆块读入缓冲器的I/O请求;以及重复产生I/O请求的操作,以便将所请求的块从所确定的页连续读入缓冲器。
15.如权利要求14所述的方法,其特征在于,从分拆缓冲器读取分拆块的I/O请求在将分拆块读入缓冲器之前从该分拆块中去除元数据。
16.如权利要求11所述的方法,还包括响应于从块中去除元数据,将缓冲器中的块通过网络传送到请求这些块的主机系统。
17.一种与存储器通信的系统,包括存储设备;处理器,与存储设备通信;适配器,与存储设备和处理器通信,并且具有缓冲器适配器,其中该适配器能够引起操作,该操作包括(a)接收要写入存储器的多个数据块;(b)将数据块添加到适配器缓冲器中;(c)从处理器确定存储设备中的页;(d)产生将适配器缓冲器中的块写入所确定的页的I/O请求,其中产生两个I/O请求,以便写入分拆在存储设备的两页之间的一个块;以及(e)在适配器中执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。
18.如权利要求17所述的系统,其特征在于,所接收的块包括逻辑轨道中的块,并且其中所确定的页包括存储设备中的物理页的标识符,其中适配器还能够引起操作,该操作包括在数据结构中指明逻辑轨道中的块到物理页的映射,其中可以将逻辑轨道中的连续块映射到存储设备中的不连续物理页,并且其中使用数据结构来产生I/O请求。
19.如权利要求17所述的系统,其特征在于,确定页包括向处理器发送对要写入块的页的请求;以及从处理器接收对要存储块的页的标识符,其中页可以是不连续的。
20.如权利要求19所述的系统,其特征在于,所指明的页可包括能够包含逻辑轨道中的所有块的固定数目的页,并且其中适配器还能够引起操作,该操作包括向处理器返回对未被写入块的至少一页的至少一个标识符的指示,其中处理器释放在所返回的指示中指明的页。
21.如权利要求17所述的系统,其特征在于,适配器还能够引起操作,该操作包括将元数据附加到被写入存储设备中的页的块上。
22.如权利要求17所述的系统,其特征在于,产生I/O请求包括产生将缓冲器中的一组块写入存储设备中所确定的一页的I/O请求;产生将缓冲器中这组块之后的分拆块的第一部分写入存储设备中所确定的页的I/O请求;产生将缓冲器中的分拆块的第二部分写入存储设备中的下一个所确定的页的I/O请求,其中第二部分不适合所述所确定的页;重复产生I/O请求的操作,以便从下一个所确定的页开始写入块,直到产生了将缓冲器中的所有块连续写入所确定的页的I/O请求为止。
23.一种系统,包括存储设备;处理器,与存储设备通信;以及适配器,与存储设备和处理器通信,并具有缓冲器适配器,其中该适配器能够引起操作,该操作包括(a)接收对多个数据块的读取请求;(b)确定包括所请求的块的存储设备中的页;(c)产生将块从存储设备中所确定的页读入适配器中的缓冲器的I/O请求,其中至少一个块被分拆在存储设备的两页之间;以及(d)执行所产生的I/O请求,以便将块从存储设备中所确定的页读入缓冲器。
24.如权利要求23所述的系统,其特征在于,确定存储器中的页包括向处理器发送对包括所请求的块的页的请求;以及从处理器接收对包括所请求的块的至少一页的指示,其中所确定的页包括已接收的所指示的页。
25.如权利要求23所述的系统,其特征在于,页中的块包括元数据,并且其中适配器还能够引起操作,该操作包括从被读入缓冲器的页内的块中去除元数据。
26.如权利要求23所述的系统,其特征在于,产生I/O请求还包括产生将所确定的一页中的所请求的块读入缓冲器的I/O请求;产生将所确定的页中的分拆块的第一部分读入缓冲器中的分拆缓冲器的I/O请求;产生将存储设备中下一个所确定的页中的分拆块的第二部分读入分拆缓冲器的I/O请求,其中第二部分不适合所述所确定的页;产生将分拆缓冲器中的分拆块读入缓冲器的I/O请求;以及重复产生I/O请求的操作,以便将所请求的块从所确定的页连续读入缓冲器。
27.如权利要求26所述的系统,其特征在于,从分拆缓冲器读取分拆块的I/O请求在将分拆块读入缓冲器之前从该分拆块中去除元数据。
28.一种能够引起将在适配器中执行的操作的产品,其特征在于,所述操作与适配器中的缓冲器以及高速缓存用于存储器的数据的存储设备通信,其中所述操作包括接收要写入存储器的多个数据块;将数据块添加到缓冲器中;确定存储设备中的页;产生将缓冲器中的块写入所确定的页的I/O请求,其中产生两个I/O请求,以便写入分拆在存储设备中的两页之间的一个块;以及执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。
29.如权利要求28所述的产品,其特征在于,所接收的块包括逻辑轨道中的块,并且其中所确定的页包括存储设备中的物理页的标识符,其中该操作还包括在适配器中的数据结构内指明逻辑轨道中的块到物理页的映射,其中可以将逻辑轨道中的连续块映射到存储设备中的不连续物理页,并且其中使用该数据结构来产生I/O请求。
30.如权利要求28所述的产品,其特征在于,所述操作还与处理器通信,其中确定页包括向处理器发送对要写入块的页的请求;以及从处理器接收要存储块的页的标识符,其中页可以是不连续的。
31.如权利要求30所述的产品,其特征在于,所指明的页可包括能够包含逻辑轨道中的所有块的固定数目的页,并且其中所述操作还包括向处理器返回对未被写入块的至少一页的至少一个标识符的指示,其中处理器释放在所返回的指示中指明的页。
32.如权利要求28所述的产品,其特征在于,所述操作还包括将元数据附加到被写入存储设备中的页的块上。
33.如权利要求28所述的产品,其特征在于,产生I/O请求包括产生将缓冲器中的一组块写入存储设备中所确定的一页的I/O请求;产生缓冲器中这组块之后的分拆块的第一部分写入存储设备中所确定的页的I/O请求;产生将缓冲器中的分拆块的第二部分写入存储器中下一个所确定的页的I/O请求,其中第二部分不适合所述所确定的页;重复产生I/O请求的操作,以便从下一个所确定的页开始写入块,直到产生了将缓冲器中的所有块连续写入所确定的页的I/O请求为止。
34.如权利要求33所述的产品,其特征在于,将所述一组块写入一页中的I/O请求在将这些块写入该页的同时将元数据附加到这些块上。
35.如权利要求34所述的产品,其特征在于,所述操作还与缓冲器内的分拆缓冲器通信,其中将元数据附加到分拆块包括产生将缓冲器中的分拆块写入分拆缓冲器的I/O请求;以及将元数据附加到分拆缓冲器中的分拆块上,其中写入分拆块的第一和第二部分的I/O请求写入来自分拆缓冲器的第一和第二部分以及元数据。
36.如权利要求28所述的产品,其特征在于,存储设备包括第一存储设备,其中所述操作还与第二存储设备通信,并且其中所述操作还包括确定第二存储设备中的页;产生将缓冲器中的块写入第二存储设备中所确定的页的I/O请求,其中至少一个块被分拆在第二存储设备中的两页之间;在适配器中执行所产生的I/O请求,以便将缓冲器中的块写入第二存储设备中所确定的页。
37.如权利要求28所述的产品,其特征在于,I/O请求包括由适配器中的DMA引擎执行的直接存储器存取(DMA)请求。
38.一种能够引起将在适配器中执行的操作的产品,其特征在于,所述操作与适配器中的缓冲器以及高速缓存用于存储器的数据的存储设备通信,其中所述操作包括接收对多个数据块的读取请求;确定包括所请求的块的存储设备中的页;产生将块从存储设备中所确定的页读入缓冲器的I/O请求,其中至少一个块被分拆在存储设备的两页之间;以及在适配器中执行所产生的I/O请求,以便将块从存储设备中所确定的页读入缓冲器。
39.如权利要求38所述的产品,其特征在于,确定存储器中的页包括向处理器发送对包括所请求的块的页的请求;以及从处理器接收对包括所请求的块的至少一页的指示,其中所确定的页包括已接收的所指示的页。
40.如权利要求38所述的产品,其特征在于,页中的块包括元数据,其中所述操作还包括从被读入缓冲器的页内的块中去除元数据。
41.如权利要求38所述的产品,其特征在于,所述操作还与缓冲器中的分拆缓冲器通信,并且其中产生I/O请求还包括产生将所确定的一页中的所请求的块读入缓冲器的I/O请求;产生将所确定的页中的分拆块的第一部分读入分拆缓冲器的I/O请求;产生将存储设备中下一个所确定的页中的分拆块的第二部分读入分拆缓冲器的I/O请求,其中第二部分不适合所述所确定的页;产生将分拆缓冲器中的分拆块读入缓冲器的I/O请求;以及重复产生I/O请求的操作,以便将所请求的块从所确定的页连续读入缓冲器。
42.如权利要求41所述的产品,其特征在于,从分拆缓冲器读取分拆块的I/O请求在将分拆块读入缓冲器之前从该分拆块中去除元数据。
43.如权利要求38所述的产品,还包括响应于从块中去除元数据,将缓冲器中的块通过网络传送到请求这些块的主机系统。
44.一种用于配置计算指令的方法,包括将计算机可读代码集成到第一和第二处理联合体中,其中启动与第一和第二处理联合体相结合的代码而使第一和第二处理联合体执行在适配器处接收要写入存储器的多个数据块;将数据块添加到适配器中的缓冲器;确定存储设备中的页;产生将缓冲器中的块写入所确定的页的I/O请求,其中产生两个I/O请求,以便写入分拆在存储设备中的两页之间的一个块;以及在适配器中执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。
45.如权利要求44所述的方法,还包括将元数据附加到被写入存储设备中的页的块上。
46.如权利要求44所述的方法,其特征在于,产生I/O请求包括产生将缓冲器中的一组块写入存储设备中所确定的一页中的I/O请求;产生缓冲器中这组块之后的分拆块的第一部分写入存储设备中所确定的页的I/O请求;产生将缓冲器中的分拆块的第二部分写入存储器中下一个所确定的页的I/O请求,其中该第二部分不适合所确定的页;重复产生I/O请求的操作,以便从下一个所确定的页开始写入块,直到产生了将缓冲器中的所有块连续写入所确定的页的I/O请求为止。
全文摘要
提供了一种适配器读取和写入系统存储器的方法、系统和程序。在适配器处接收要写入存储器的多个数据块。这些数据块被添加到适配器的缓冲器中。对存储设备中的页进行确定,并产生将缓冲器中的块写入所确定的页的I/O请求,其中,产生两个I/O请求,以便写入分拆在存储设备中的两页之间的一个块。适配器执行所产生的I/O请求,以便将缓冲器中的块写入存储设备中所确定的页。
文档编号G06F3/06GK1776590SQ200510084989
公开日2006年5月24日 申请日期2005年7月26日 优先权日2004年11月15日
发明者迈克尔·T·本哈斯, 詹姆斯·C-C·陈, 许育诚, 马修·J·卡洛斯, 卡尔·斯帕内尔, 安德鲁·D·沃尔斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1