CN1256681C - 从***设备向主计算机***传输中断的方法和装置 - Google Patents
从***设备向主计算机***传输中断的方法和装置 Download PDFInfo
- Publication number
- CN1256681C CN1256681C CNB018224040A CN01822404A CN1256681C CN 1256681 C CN1256681 C CN 1256681C CN B018224040 A CNB018224040 A CN B018224040A CN 01822404 A CN01822404 A CN 01822404A CN 1256681 C CN1256681 C CN 1256681C
- Authority
- CN
- China
- Prior art keywords
- lcp
- data
- adapter
- impact damper
- descriptor
- 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
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 title claims description 26
- 239000000872 buffer Substances 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 64
- 230000005540 biological transmission Effects 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 54
- 238000004891 communication Methods 0.000 claims description 20
- 230000001143 conditioned effect Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 239000003550 marker Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 36
- 230000015572 biosynthetic process Effects 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 18
- 238000013519 translation Methods 0.000 description 10
- 230000014616 translation Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 241000143437 Aciculosporium take Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了一种从***设备向主计算机***传输中断的装置。该装置包括缓冲器,用于存储由***设备产生的中断的指示。响应于已满足预设条件,控制器产生具有有效负载部分的控制数据块,将缓冲器的内容移动到控制数据块的有效负载部分,并将控制数据块发送到主计算机***。
Description
技术领域
本发明涉及从***设备向主计算机***传输中断的方法和装置。
背景技术
传统数据处理网络包括多个主计算机***和多个附加器件,所有附加器件通过诸如以太网体系结构的居间(intervening)网络体系结构而互相连接。网络体系结构通常包括一个或多个数据通信交换机。主计算机***和附加器件每个形成数据处理网络中的节点。每个主计算机***通常包括通过诸如PCI总线体系结构的总线体系结构互相连接的多个中央处理单元和数据存储器件。网络适配器也连接到总线体系结构,用于在主计算机***和数据处理网络中其它节点之间经由网络体系结构传递数据。为了在主计算机***和网络之间的迅速的数据通信,希望尽可能有效地在网络适配器和主计算机***之间传输中断。
发明内容
根据本发明,提供了一种从***设备向主计算机***传输中断的装置,该装置包括:缓冲器,用于存储对由***设备产生的中断给出的指示;以及控制器,用于响应已满足预设条件,产生具有有效负载部分的控制数据块,所述控制器还将缓冲器的内容移动到控制数据块的有效负载部分,并向主计算机***发送控制数据块。缓冲器最好包括先入先出存储缓冲器。
最好,预设条件包括缓冲器已满。预设条件可以包括在缓冲器中存储了预定的多个指示,并且过去了预定时间段。相似地,预设条件可以包括在缓冲器中存储了至少一个指示,并且过去了预定的时间段。
在本发明的优选实施例中,控制数据块包括:首标部分,具有用于识别ICB的标识符;以及计数,指示有效负载部分中包括的指示的数量。首标部分包括日时标记(a time of day stamp)。
本发明还扩展为包括有前述装置的***设备和包括有这样的***设备的数据通信网络接口。本发明还扩展为一种数据处理***,包括:主机处理***,其具有存储器;数据通信接口,用于在主计算机***和数据通信网络之间进行数据通信;此前描述的装置,用于控制从数据通信接口向主计算机***的存储器的中断流。
从另一方面看本发明,提供了一种从***设备向主计算机***传输中断的方法,该方法包括:在缓冲器中存储对由***设备产生的中断给出的指示;确定是否满足预设条件,以及响应于已满足预设条件,产生包括有效负载部分和首标部分的控制数据块,该有效负载部分具有多个字段,每个字段对应于各端口中的不同的一个,该首标部分具有用于识别控制数据块的识别符,将缓冲器的内容移动到有效负载部分的相应字段,并经各端口中的一个向主计算机***发送控制数据块。
附图说明
下面将参考附图,只作为示例,描述本发明的优选实施例,其中:
图1是数据处理网络的例子的方框图;
图2是数据处理网络的网络接口适配器卡的方框图;
图3是数据网络的主计算机***的例子的方框图;
图4是网络适配器卡的芯片上集成***(ISOC)的例子的方框图;
图5是ISOC的另一个方框图;
图6是表明经ISOC的信息流的ISOC的方框图;
图7是经ISOC的逻辑发送路径的方框图;
图8是经ISOC的逻辑接收路径的方框图;
图9A是循环描述符表的方框图;
图9B是已链接的描述符表集合的方框图;
图10是虚拟缓冲器及其物理对应缓冲器的方框图;
图11是完成队列的方框图;
图12是从主机向网络发送数据流的方框图;
图13是从主机向网络发送数据流的另一个方框图;
图14是从网络向主机接收数据流的方框图;以及
图15是从网络向主机接收数据流的另一个方框图。
图16是ISOC的另一个方框图;
图17是ISOC和主计算机***之间的中断流程;以及
图18是中断控制块的方框图。
具体实施方式
首先参考图1,体现本发明的数据处理网络的例子包括通过诸如InfiniBand网络体系结构(InfiniBand是InfiniBand贸易联合会的商标)的居间网络结构30互相连接的多个主计算机***10和多个附加器件20。网络体系结构30通常包括多个数据通信交换机40。主计算机***10和附加器件20各自形成数据处理网络中的节点。每个计算机***10包括通过诸如PCI总线体系结构的总线体系结构70互相连接的多个中央处理单元(CPU)50和存储器60。网络适配器80也连接到总线体系结构,用于在主计算机***10和数据处理网络中其它节点间经由网络体系结构30传递数据。
现在参考图2,在本发明的具体的优选实施例中,网络适配器80包括可***的选项卡,该卡具有诸如边缘连接器的连接器,用于可移动的***主计算机***10的总线体系结构70中。选项卡携带可经由连接器170连接到总线体系结构70的专用集成电路(ASIC)或芯片上集成***(ISOC)120,一个或多个第三级存储模块250连接到ISOC 120,而内插器260连接到ISOC120,用于在网络体系结构30和ISOC 120的介质之间传递数据。内插器260提供到网络的物理连接。在本发明的一些实施例中,内插器260可以实现在单个ASIC中。然而,在本发明的其它实施例中,内插器260可以由多个元件实现。例如,如果网络30包括光学网络,内插器260可以包括驱动分离的光学收发信机的重新定时器。存储器250可以由SRAM、SDRAM或其组合实现。在存储器250的实现中也可以采用其它形式的存储器。ISOC 120包括第一和第二存储器。下面简短地描述适配器80的存储器子***。正如从下面的描述中可以清楚地看到,该配置提供:在数据处理网络上操作的分布式应用程序的改善了的性能;改善了的***可缩放性;与一定范围的通信协议的兼容性;以及主计算机***中的减少了的处理要求。更具体地说,该配置允许适配器80与主机***10之间不同种类的通信协议共存。这些协议可以适应各种应用程序,使用相同的适配器80,并使用预定的数据结构集合,从而增强主机和适配器80之间的数据传输。可以并行打开的应用程序信道的数量由分配给适配器80的存储器资源的量确定,并且与嵌入适配器的处理功率无关。从下面的描述可以明白,将多个元件集成到单个集成电路芯片元件中的ISOC 120概念有利地最小化了制造成本,并提供可重复使用的***构件块。然而,还应该明白,在本发明的其它实施例中,ISOC 120的部件可以由离散的元件实现。
在下面的描述中,术语帧(Frame)指适配器80和在主计算机***10上运行的软件之间传输的数据单元或消息。每个帧包括帧首标和数据有效负载(data payload)。数据有效负载可以包含用户数据、高级协议首标数据、确认、流控制或其任何组合。下面将简短而又详细地描述帧首标的内容。适配器80只处理帧首标。适配器80可以将帧分割为较小的分组,其在网络体系结构30中更有效地传送。然而,这样的分割一般并不变换数据有效负载。
在本发明的具体实施例中,数据在网络体系结构30中以下面称其为分组(Packet)的基本单位传送。每个分组包括路由信息,其后跟随着硬件首标数据和有效负载数据。在本发明的典型例子中,采用至多1024字节的分组大小。将更大尺寸的帧分割为1024字节的分组。应该明白,在本发明的其它实施例中,可以采用不同的分组大小。
在本发明的优选实施例中,经由逻辑通信端口体系结构(LCP)激活适配器80和主计算机***10上运行的多个应用程序之间的通信。适配器80包括存储器分级结构,其使得能够最优化对不同内部数据结构的访问延迟时间。下面简短地描述存储器分级结构。在本发明的优选实施例中,适配器80为去往网络体系结构30的出站(TX)数据和去往主计算机***10的入站(RX)数据提供分离的路径。每个路径包括起自身的数据传输引擎、首标处理逻辑以及网络体系结构接口。也将简短而又详细地描述这些路径。
下面参考图3,LCP体系结构为在主计算机***10和适配器80上运行的局部消费装置之间的接口定义架构。这样的消费装置的例子包括应用程序和线程。可以将计算机***10细分为用户应用程序空间90和内核空间110。LCP体系结构为每个消费装置提供进入网络体系结构30的逻辑端口。可以直接从用户空间90访问该端口。在本发明的具体实施例中,硬件保护机制处理访问许可。由内核空间110在数据帧传输之前进行LCP注册。LCP体系结构不需要定义通信协议。相反,其定义应用程序和适配器80之间的接口,以传输数据和控制信息。改为可以由适配器80中执行的应用程序和程序代码设置通信协议细节。可以在适配器80上使用的信道的数量只受对LCP相关信息可用的适配器卡80上的存储量的限制。每个LCP端口可以是可编程的,以具有特定的特征集合。根据特定的协议选择特征集合,以最好地支持主计算机***中的存储器60和适配器80之间的数据传输。可以同时支持各种通信协议,每个协议使用不同的LCP端口。
LCP体系结构包括LCP客户(Client)100、驻留在内核空间110中的LCP管理器130、以及一个或多个驻留在适配器80中的LCP上下文(Context)140。
每个LCP客户100是连接到LCP端口的单向应用程序端点。LCP客户100可以位于用户应用程序空间90或内核空间110中。在操作中,每个LCP客户100产生要从存储器60读取并由适配器80经由TX LCP信道传输的命令和数据,或消费由适配器80经由RX LCP信道向存储器60传输的数据。
LCP管理器130是受托(trusted)元件,其为每个信道的LCP信道分配和重新分配(deallocation)以及其在存储器60中的读/写区的注册的请求服务。LCP管理器130准许用户空间应用程序使用适配器80的资源,而不损害其它通信操作、应用程序、或主计算机***70的操作***。
每个LCP上下文140是适配器80服务特定LCP客户100所需要的控制信息的集合。LCP上下文140可以包括诸如可能命令、指针结构、以及缓冲器描述符定义的LCP信道属性,其在信道的全部存在中不变。LCP上下文140也可以包括对LCP信道的特定LCP服务信息,例如服务等待数据量和相关LCP信道的下一访问地址。LCP上下文140存储在位于适配器80中的存储器中,以在适配器80停止对一个信道的服务,并起动对另一个信道的服务时,启动快速LCP上下文。
需要初始化LCP端口的LCP客户100转向LCP管理器130,并请求分配LCP信道。此时确定LCP信道属性,并规定LCP端口的行为和授权LCP客户100联合LCP端口进行的操作。给LCP客户100授予地址,其将用于以唯一而且安全的方式访问适配器80。该地址公知为门铃地址(DoorbellAddress)。
LCP管理器130还负责注册主机存储器60的区域,以使得能够由适配器从虚拟向物理地址转换,并且准许用户空间客户访问这些主机存储器区域,而不需窜改其它程序。
在运行时间中,每个LCP客户100都可以请求新缓冲器的注册和先前缓冲器的撤销注册。这样的改变需要一系列LCP客户100、LCP管理器130、以及适配器80之间的信息交换。
每个LCP客户100和端口与LCP上下文140关联,所述LCP上下文140提供适配器80为执行命令而对LCP端口发送的未决请求服务所需要的所有信息。
为了初始化LCP客户100和适配器80之间的存储器传输,并初始化帧的发送,LCP客户100准备持有特定操作的信息的描述符。然后,LCP客户100对映射到适配器80的门铃地址进行I/O写。对门铃地址的写更新适配器80上的LCP上下文140,添加要执行的新的请求。
适配器80在各种具有未决请求的传输LCP端口之间仲裁,并选择下一个要服务的端口。
一旦接收到数据,识别接收到的分组的帧和LCP。产生描述符以定义接收LCP所需要的操作。由适配器80的LCP引擎对这些描述符的执行在主计算机***10的存储器60中分配给LCP信道的适当数据缓冲器中存储到来数据。
对于已服务的LCP信道,适配器装载相关的LCP上下文信息,并使用该信息进行想要的数据传输的集合。然后,适配器80继续处理所选择的下一LCP上下文140。
下面参考图3,如前所述,ISOC 120包括第一存储空间220和230以及第二存储空间240,而适配器80还包括第三级存储器250。第一、第二、以及第三存储空间是适配器80的存储器子***的部分。在本发明的优选实施例中,ISOC 120包括专用于数据发送操作的TX处理器(TX MPC)150和专用于数据接收操作的RX处理器(RX MPC)160。在本发明的具体的优选实施例中,由诸如IBM PowerPC 405 RISC微处理器的精简指令集计算(RISC)微处理器实现处理器150和160。在存储器子***210中,除了第一和第二存储空间,ISOC 120包括与TX处理器150关联的数据超高速缓存(cache)180和指令超高速缓存170,以及与RX处理器160相关的第二数据超高速缓存190和第二指令超高速缓存190。三级之间的差异在于存储器的尺寸和相关的访问时间。通过简短的描述可以明白,存储器子***210有利于:TX处理器150和RX处理器160对指令和数据的方便的访问;可扩展性;为了降低制造成本而在TX处理器150和RX处理器160之间的资源共享。
第一级存储空间(M1)220和230包括TX-M1存储空间220和RX-M1存储空间230。TX-M1存储空间220只能由TX处理器150访问,而RX-M1存储空间230只能由RX处理器160访问。在操作中,使用第一级存储空间220和230以保存临时数据结构、首标模板(template)、堆栈等。第一级存储空间220和230都对零等待状态做出反应。第一级存储空间220和230中每一个都只连接到处理器150和160中对应的一个的数据接口,而不连接到指令接口。这一配置使得能够在保持对第一级存储空间230和240中的数据的有效访问的同时,可超高速缓存的和不可超高速缓存的第一级存储区都可用。
第二级存储空间(M2)240是对处理器150和160、适配器80的其它元件、以及主计算机***10都可用的共享存储器。因为第二级存储空间240由更多代理经由共享内部总线而使用,所以对第二级存储空间240的访问要慢于对第一级存储区220和230的访问。第三级存储空间250也是共享资源。在本发明的具体实施例中,适配器80包括计算机***电路卡,在其上,第一级存储空间220和230以及第二级存储空间240都集成在与处理器150和160相同的ASIC上。共享存储空间240和250一般用于不需要快速和高频访问周期的数据类型。这样的数据类型包括LCP上下文140和虚拟地址转换表。共享存储空间240和250对处理器150和160的指令和数据接口都可访问。
适配器80分离地处理数据流的发送和接收。用于发送和接收路径的分离的处理器150和160避免了在任务间切换的开销,在一个路径中与其它路径隔离了临时处理负荷,并且能更便利地使用两个嵌入式处理器来处理到来和外出的数据流。下面参考图5,ISOC 120包括发送路径逻辑280和接收路径逻辑290、以及共享逻辑300。发送路径逻辑280包括:LCP TX引擎310,用于对每个LCP信道的细节解码,并取出要执行的LCP相关命令;TX逻辑320,用于控制帧向适配器80的传输,前述TX处理器150用于管理TX帧和分组处理;前述第一级TX存储器220,用于保存指令和临时数据结构;链接逻辑330;以及用于辅助TX处理器150来管理数据流和分组处理(例如将帧分割为数据分组的路由处理)的逻辑。TX处理器150基于其中处理器只对意外和错误中断的只轮询方案(polling only scheme)连续地处理任务。处理器150采用第一级TX存储器220来与TX逻辑320通信。接收路径逻辑290包括:链接逻辑340;用于在对到来分组的首标的处理和将该分组变换或组装成帧时,辅助前述RX处理器160的硬件;前述RX处理器160,用于RX帧和分组处理;前述第一级RX存储器,用于保存指令;RX逻辑350,用于控制帧从网络体系结构30的传输;以及LCP RX引擎360,用于对每个LCP信道的细节解码,在主计算机***的存储器60中的相关LCP数据结构中存储到来数据,并且在LCP客户100提供指向空帧缓冲器的指针时,接收和注册该指针,以备适配器80使用。RX处理器160使用其中RX处理器160只对意外和错误中断的只轮询方案连续地处理任务。RX处理器160使用第一级RX存储器230来与RX逻辑350通信。
如前所述,ISOC方案允许减少与适配器80及其中诸如电路板和其它支持模块的其它元件相关联的制造成本。ISOC方案也提高适配器80的简单性,从而提高可靠性。有效地使ISOC 120的元件间的连接数不受限制。所以可以实现多个宽的相互连接的路径。为了减少主计算机***10中的数据处理开销,向和从主机存储器60的数据传输操作绝大多数由ISOC 120执行。ISOC120也对到来和外出分组的首标进行处理。在发送期间,ISOC 120建立首标,并将其发往网络体系结构30。在接收期间,适配器80处理首标,以便确定其在***存储器中的位置。第一级存储器220和230是零等待状态存储器,其提供诸如堆栈、模板、表、以及临时存储位置的处理器数据空间。在本发明的具体优选实施例中,从被称为内核(core)的较小的逻辑元件建立发送路径逻辑280、接收路径逻辑290、以及共享逻辑300。使用内核一词是因为元件被设计为独立片段的逻辑,其具有独立属性,使其用于不同应用程序。
如前文中已指出,传输路径逻辑280负责处理发送或输出帧。由诸如主计算机***10的CPU 50的CPU经由总线体系结构70初始化帧传输。ISOC120包括总线接口逻辑370,用于与总线体系结构70通信。ISOC 120还包括总线桥接逻辑390,其将总线接口逻辑370连接到ISOC 120的处理器逻辑总线(PLB)390。TX LCP引擎310从主机存储器60中取回命令和帧。TX处理器150将每个帧的首标处理为适于在网络体系结构30上作为分组发送的格式。TX逻辑320不作修改的传输帧数据。链接逻辑330将每个要发送的分组处理为在网络体系结构30上发送的最终形式。链接逻辑330可以包括一个多个端口,每一个都可连接到网络体系结构30。
如前文中已指出,接收路径逻辑290负责处理到来分组。起初,由链接逻辑340处理从网络体系结构30接收到的分组。链接逻辑340以首标和有效负载格式来再造分组。为了确定分组格式及其在主机存储器60中的目的地,由RX处理器230处理首标。链接逻辑340可以包括一个或多个端口,每一个都可连接到网络体系结构30。RX LCP引擎负责经由总线体系结构70向主机存储器60传输数据。
发送路径逻辑280包括TX LCP引擎310和TX处理器220之间的HeaderIn(首标入)先入先出存储器(FIFO)400。接收路径逻辑包括RX处理器230和RX LCP引擎360之间的HeaderOut(首标出)FIFO 410。在TX逻辑320和RX逻辑350中提供了附加的FIFO和队列。下面将简短地描述这些FIFO和队列。
共享逻辑300包括由发送路径逻辑280和接收路径逻辑290共享的所有逻辑元件。这些元件包括前述总线接口逻辑370、总线桥接逻辑380、PLB390、第二级存储器240以及用于提供对远程第三级存储器250的访问的控制器420。总线接口逻辑370在总线体系结构70中既作为主设备又作为从设备。作为从设备,总线接口逻辑准许CPU 50经由控制器420访问第二级存储器240、第三级存储器250、并访问ISOC 120的结构寄存器和状态寄存器。通常可以由CPU 50、TX处理器150以及RX处理器160来访问这样的寄存器。作为主设备,总线接口逻辑准许TX LCP引擎310和RX LCP引擎360访问主计算机***10的存储器60。在图5中,“M”表示主设备连接,而“S”表示从设备连接。
现在参考图6,经ISOC 120的分组流通常是对称的。换句话说,在发送和接收方向上,流的一般结构都相似。可以认为ISOC 120包括第一接口440、第一控制逻辑460、处理器逻辑480、第二控制逻辑470、以及第二接口逻辑450。以下述方式处理分组:
A.在发送方向上,将信息从总线体系结构70经第一接口逻辑引入ISOC120。在接收方向上,将信息从网络体系结构30经第二接口逻辑450引入ISOC 120。
B.在发送方向上,由第一控制逻辑460处理经第一接口逻辑440引入ISOC120的信息。在接收方向上,由第二控制逻辑470处理经第二接口逻辑450引入ISOC的信息。
C.在发送方向上,在第一控制逻辑460对外出帧提取帧首标,并由处理器逻辑480处理该帧首标。处理器逻辑480基于帧首标产生对第二控制逻辑470的指令。将外出帧的有效负载传到第二接口逻辑470。在接收方向上,在第二控制逻辑470从到来中帧提取帧首标,并由处理器逻辑480处理该帧首标。处理器逻辑480基于帧首标产生对第一控制逻辑460的指令。将到来帧的有效负载传到第一控制逻辑460。在两个方向上,处理器480都不直接处理有效负载数据。
D.在发送方向上,第二控制逻辑470根据从处理器逻辑480接收到的指令对外出有效负载数据打包。在接收方向上,第一控制逻辑460根据从处理器逻辑480接收到的指令对到来有效负载数据打包。
E.在发送方向上,将信息通过第二接口逻辑450经由网络体系结构30转移到其目的地。在接收方向上,将信息通过第一接口逻辑经由总线体系结构70转移到其目的地。
430展示了对操作在主计算机***10上的软件的接口。相似地,490和500展示了对操作在处理器输入和输出的微码的接口。
参考图7,下面将更详细地描述经ISOC 120发送的数据帧的流的一个例子。可以基于ISOC 120内信息的各种格式,将ISOC 120划分为LCP上下文域510、帧域520以及网络域530。TX LCP引擎310包括LCP请求FIFO550、直接存储器存取(DMA)逻辑560、帧逻辑580、以及前述LCP上下文逻辑140。LCP请求FIFO 550、DMA逻辑560、以及LCP TX上下文逻辑590位于LCP上下文域510中。帧逻辑580位于帧域520中。TX逻辑320、第一级TX存储空间220、以及TX处理器150跨在帧域520和网络域530之间的边界上。TX链接逻辑330位于网络域530中。在本发明的具体实施例中,HeaderIn FIFO 400与第一级TX存储空间220成一整体。一般而言,在主计算机***10上执行的应用程序创建帧。然后使用适配器80上的TX LCP信道发送帧。应用程序和适配器80之间的信息交换假定了由LCP管理器130进行了在先初始化。为了添加LCP服务请求,LCP客户100向适配器80通知,预备执行一个或多个附加发送帧。这通过将控制字写入门铃(Doorbell)中而进行。使用唯一地与LCP端口关联、并被保护不被其它处理访问的地址,以这样的方式分配门铃地址,即将写操作转换为在总线体系结构70上的物理写周期。适配器80检测写操作,并通过增加对特定LCP客户100的先前请求的条目(entry)而将新的请求写入日志。这是相关LCP上下文140的部分。同样更新适配器80的存储器子***210中保留的仲裁列表。在简单的例子中,使用所有具有未决请求的发送LCP信道之间的前述FIFO方案550仲裁。在为一个LCP信道服务的同时,选择下一个LCP信道。当把对应的LCP上下文装载到TX LCP引擎310中时,服务周期开始。然后,访问LCP上下文140,以获得用于服务LCP信道的原子(atomic)操作,确定这些操作的参数。例如,这样的原子操作可以基于LCP上下文140中记录的LCP信道属性。完整的服务周期通常包括一组由适配器80进行的活动,用于取回并执行多个由LCP客户100创建的原子描述符。在TX LCP信道的情况下。服务周期一般包括将多个帧从主机存储器60读取到适配器80的存储器子空间210中。一旦结束,在适配器80的存储器子***210中更新所有需要修改的LCP上下文信息(换句话说,LCP服务信息)。一般说来,适配器80在LCp服务周期内进行的第一个动作是取出下一个要处理的描述符。
由ISOC 120处理发送帧通常包括下述步骤:
A.取出后续LCP端口帧描述符。
要取出的下一描述符的地址作为LCP信道的上下文140的部分存储。适配器80从主机存储器60读取描述符,并基于LCP信道属性对描述符解码。描述符定义新帧首标的大小、数据有效负载的大小、以及这些项目的位置。
B.将虚拟地址转换为物理地址。
如果在应用程序中通过虚拟存储地址引用数据缓冲器,地址需要经过地址转换的附加处理。在这种情况下,将应用程序使用的虚拟地址转换为适配器80在其访问主机存储器60时可使用的物理地址。这通过监控页面边界交叉,并使用由LCP管理器130写入适配器80的存储子***210的物理页面位置信息而完成。从虚拟到物理的转换处理在由未受托的LCP客户100创建描述符表的情况下,还起到安全措施的作用。这避免了对主机存储器60的不相关区域的未授权访问。
C.读取帧首标。
使用物理寻址,从主机存储器60的缓冲器中读取TX帧的首标和有效负载数据。然后,将首标存储在TX HeaderIn FIFO 400中。当完成首标取出时,适配器80设置内部标记,其指示可以由TX处理器150初始化对首标的处理。
D.读取帧数据。
从主机存储器60读取有效负载数据,并由适配器80将其存储在数据FIFO 570中。图7所示数据FIFO 570位于TX逻辑320中。然而,数据FIFO 570也可以与第一级TX存储空间320为一整体。继续数据读取事务,直到所有要发送的数据都已存储在适配器80的存储器子***210中。在完成读操作之后,将状态指示返回LCP客户100。注意,一旦将首标读入HeaderIn FIFO 400,就可以开始对首标的处理。不需要等待读取全部数据。
E.处理帧首标。
由TX处理器150进行首标处理。首标处理与协议相关,并涉及LCP体系结构外部的协议信息。TX处理器150运行TX协议首标微码,并访问已在协议和路由初始化序列期间存储到适配器80的存储器子***210中的路由表和其它相关信息。当TX处理器150接收到指示,表明有新首标在HeaderIn FIFO 400中等待时,其开始首标处理。首标处理产生一个或多个分组首标,其为用于在网络体系结构30上递送分组的格式,并且其包括路由信息。如果有效负载大小大于网络体系结构30所准许的最大分组尺寸,则通过产生几个分组首标来分割有效负载,所述每个分组首标各自连同原始有效负载数据的连续数据段使用,以形成要在网络体系结构30上通信的分组。
F.排列要发送的分组首标。
由TX处理器150将为分组定义首标字的数量和数据字的数量的命令和分组首标本身写到第一级存储空间220的TX HeaderOut FIFO 540中。
G.合并要发送的分组首标和分组数据。
只要命令在HeaderOut FIFO 540中就绪,就触发分组在网络体系结构30上的发送,而数据FIFO 570包含足够的数据来完成相关分组的发送。可以向每个分组的首标和数据添加循环冗余校验(CRC)。将每个完成的分组经由TX链接逻辑330传输到网络体系结构30。
当在网络体系结构30上发送了所有帧数据时,借助于一个或多个分组完成了对每个帧的发送处理。对于每个由适配器80处理的帧,可以经由第二LCP客户100向应用程序返回状态。该状态指示从主机存储器60到适配器80的帧数据传输的完成,帧传输自身的完成,或传输状态的其它级。
在任何时候,适配器80可以同时执行下述一些或全部动作:选择要服务的下一个LCP;初始化对LCP信道A的服务;为LCP信道B的最后一帧执行数据的DMA取回;为LCP信道C处理帧首标和分段;以及由LCP信道D创建发送分组。
现在,参考图8,只作为示例描述由使用RX LCP端口的应用程序进行的数据帧接收。ISOC 120的操作可以根据LCP支持的协议的类型而改变。应用程序和适配器80之间的信息交换假定由LCP管理器130进行的在先初始化。RX LCP引擎360包括LCP分配逻辑620、LCP上下文逻辑610以及DMA逻辑630,其全都位于LCP域520中。RX处理器160、第一级RX存储空间230以及RX逻辑350都跨在帧域520和网络域530的边界上。RX链接逻辑340和分组辅助逻辑600位于网络域530中。在本发明的具体实施例中,HeaderOut FIFO 410位于第一级RX存储空间230。由ISOC 120从网络体系结构30接收到的帧被写到主机存储器60的LCP客户缓冲器中。由LCPRX确定存储缓冲器的可用性,并指示到适配器80以***到来数据帧。与前述向发送路径逻辑280通知准备好要发送的新帧的方式相似,LCP客户100通过写入ISOC 120上的接收门铃提供缓冲器。分配门铃寄存器地址,以便将写操作转换为在总线体系结构70上的物理写周期。适配器80检测写操作,并通过增加特定LCP RX客户100的可用字条目的数量而将新提供空白存储区写入日志。可用字计数是相关LCP上下文140的部分。只要应用程序完成对缓冲器内的接收到的帧的处理,其写入门铃。写周期指示新近可用存储空间中的字数。将LCP上下文内的计数增加该数量。从网络体系结构30接收到的分组可以是将由适配器80组装到主机存储器60中相连的空间中的较大的帧的部分。ISOC 120对接收到的帧的处理一般包括下述步骤:
A.分离分组首标和数据
RX链接逻辑340将来自网络体系结构30的信息转换为分组流。由RX链接逻辑340处理每个接收到的分组,以分离分组首标和有效负载数据。将首标推进到第一级RX存储空间230中的RX HeaderIn FIFO 640中。将有效负载数据推进到RX逻辑350中的RX数据FIFO 650中。也可以在第一级RX存储空间230中实现RX数据FIFO 650。
B.将分组首标解码,并产生LCP帧首标
将分组首标解码,以提供指示分组所属帧的ID、有效负载大小以及帧数据大小的字段。一旦为RX HeaderIn FIFO 640读取了分组首标,就向RX处理器160发送指示。RX处理器处理分组首标信息,并产生与LCP相关的命令,其包括传输分组数据所需信息。这样的信息包括分组地址和长度。在首标处理的末尾,将一个描述符或一组描述符写入LCP RXHeaderOut FIFO 410,并触发指示。
C.在RX LCP上下文内传输数据
由RX LCP引擎360从RX HeaderOut FIFO 410取出描述符,然后解码。描述符包括适配器80的存储子***210中要传输的数据的LCP号、分组地址、分组数据长度以及源地址。RX LCP引擎340使用LCP上下文信息创建要写入主机存储器60中的目标物理地址(或者,如果页面被交叉则是多个地址),并初始化DMA传输,以写数据。
D.ISOC DMA事务
ISOC 120的目的在于通过选择适当的总线命令并进行可能的最长脉冲,最优化总线体系结构70上的事务。
在任何时候,适配器80可以同时执行下述一些或全部动作:处理LCP信道X的缓冲器分配;初始化LCP信道A的入站数据写服务;执行LCP信道B的数据的DMA存储;处理朝向LCP信道C的分组的帧组装;以及接收LCP信道D的分组。
为了最小化有关RX处理器160和TX处理器150的帧处理开销,分组辅助逻辑600包括帧分割逻辑、CRC与校验和计算逻辑、以及组播处理逻辑。
现在详细描述TX及RX LCP引擎310及360与主机10之间的数据流。TX和RX LCP端口都使用存储缓冲器来传输数据和指向这样的存储缓冲器的描述符结构。描述符结构用于管理数据提供装置和数据消费装置之间的数据缓冲器,并返回由数据提供装置使用的空存储缓冲器。描述符基于物理或虚拟地址指向存储缓冲器。
TX LCP信道负责从主机存储器60到ISOC 120的缓冲器的数据传输。逻辑的其它层负责将来自ISOC 120的缓冲器的数据传输到网络30。RX LCP信道负责将从网络30接收到的数据传输到主机存储器60。
TX和RX LCP引擎310和360能够处理相对大量的LCP信道。每个LCP信道具有一组包含对其特定的全部信息的参数。该信息包括信道构造、当前情况和状态。在信道初始化期间由LCP管理器130设置与信道关联的LCP上下文140。在信道操作期间,只由ISOC 120更新LCP上下文140的内容。在适配器80的存储器子***210内的上下文表中保存LCP上下文140。根据LCP号进行对LCP信道的LCP上下文140的访问。LCP RX和TX信道使用不同的LCP上下文结构。
数据缓冲器是主机10的存储器60中的钉住(pinned)区域。发送缓冲器保持要发送的数据。TX LCP引擎310将位于这些缓冲器中的数据移动到ISOC120的内部缓冲器中。由RX LCP引擎360将从网络30接收到的到来数据移动到主机10的存储器60中的缓冲器中。缓冲器的所有权在主机10的软件和ISOC 120中之间变换。有关LCP TX信道的事件的顺序如下:
A.主机10中的软件在主机10的存储器60中准备具有要发送的数据的缓冲器;
B.软件通知ISOC 120缓冲器中的数据已发送准备就绪;
C.ISOC 120从缓冲器读取数据;以及
D.ISOC 120对主机10中的软件识别已被读取并可以由主机10中的软件重新使用的缓冲器,以传输新的数据。
有关LCP RX信道的事件的顺序如下:
A.主机10中的软件准备ISOC 120可向其中写入接收到的数据的缓冲器;
B.软件通知ISOC 120在主机的存储器60中空缓冲器已准备就绪;
C.ISOC 120向缓冲器写数据;以及
D.ISOC 120对主机10中的软件识别已填满接收数据并可以由软件处理的缓冲器。
当软件准备将由ISOC 120使用的缓冲器时,经由门铃寄存器跟踪缓冲器信息。使用状态更新或经完成队列向软件返回涉及ISOC 120所使用的缓冲器的信息。对于TX LCP信道,缓冲器包括由TX LCP引擎310传输到ISOC120中、并被处理以变为一个或多个要在网络30上发送的分组的数据和首标信息。由ISOC 120的TX处理器150使用首标,来产生要在网络30上发送的分组的首标。对于RX LCP信道,由主机10中的软件对适配器80分配空缓冲器。适配器80用接收到的分组填满该缓冲器。
描述符已定义对ISOC 120和主机10中的软件都已知的数据结构。软件使用描述符向ISOC 120传输控制信息。根据希望的功能,控制信息可以是帧描述符、指针描述符、或分支描述符的形式。软件中和ISOC 120中的描述符逻辑根据要采取的控制措施(control measure)产生并修改描述符。将简短地描述这样的措施。帧描述符包括对分组的描述(例如:数据长度、首标长度等)。指针描述符包括对数据位置的描述。分支描述符包括对描述符位置的描述(例如:描述符的链接列表)。描述符中的信息用于由主机10中的软件控制由TX和RX LCP引擎310和360进行的数据移动操作。用于处理帧以产生TX分组首标的信息位于帧的首标中。参考图9A,可以以单一表700提供描述符,而LCP上下文140指向表700的头部。参考图9B,也可以以已链接的描述符表720-740的结构布置描述符。在LCP信道初始化之后,LCP上下文140指向该结构中第一描述符表720的头部。使用分支描述符750-770产生表720-740的链接列表,其中描述符表720-740的末尾的分支描述符750-770指向另一表720-740的起点。返回参考图9A,也可以使用分支描述符产生循环缓冲器,其中表700的末端的分支描述符710指向同一表700的起点。在接收路径中也可以使用循环缓冲器。在这种情况下,初始化LCP 140上下文以指向缓冲器的头部。当ISOC 120到达其末尾时,缓冲器被绕回。主机10中的软件可以将描述符写到主机10中的存储器60中(对于接收和发送路径)或写到适配器80的存储器250中(只对于发送路径)。将描述符写入适配器80的存储器子***210的涉及主机10中的软件的I/O操作,并占用适配器80的存储器子***210。将描述符写入主机80的存储器60需要适配器80访问主机10的存储器60,只要其读新的描述符。由LCP管理器130为每个LCP信道单独定义软件描述符的位置。根据***性能最优化来定义描述符的位置。描述符提供了队列结构的灵活性。
RX和TX LCP引擎310和360使用地址来访问描述符表中的描述符,并访问数据缓冲器。地址既可以是物理地址,也可以是虚拟地址。物理地址一词描述ISOC 120可以,照现在的样子,为总线70驱动的地址。术语虚拟地址描述非物理的地址,并由软件或微码使用。虚拟地址必须经历映射,以便产生物理地址。TX和RX LCP引擎310和360使用的地址可以具有如下不同的来源:LCP信道上下文140中的指针;由在主机10上运行的软件准备的描述符中的指针;由RX处理器160准备的描述符中的指针;以及由TX处理器150准备的描述符中的指针(用于返回完成消息)。指针可以指向描述符或数据缓冲器。可以将TX和RX LCP引擎310和360使用的每个地址任意地映射到在总线70上作为物理地址使用的新地址。由TX和RX LCP引擎310和360进行地址映射。ISOC 120使用本地存储器210保持转换表。在存储器注册期间,LCP管理器130将转换表写入适配器80。地址映射使得能够对缓冲器或描述符表使用虚拟寻址。虚拟寻址使得能够管理物理上位于多于一个物理页面中的虚拟缓冲器。地址映射也使得主机10能够直接与使用虚拟地址的应用程序工作,而不需要对软件的转换处理器。
参考图10,其中展示了缓冲器880的映像800,其出现在主机10的软件中。还展示了地址的物理映射810,其用于访问主机10中的存储器60。虚拟指针820指向缓冲器中的位置。该例子中的缓冲器是占用主机10的存储器60中几个不连续页面840-870的虚拟缓冲器。LCP引擎310和360通过经由转换表830转换地址来进行映射。转换表保持指向每个从虚拟缓冲器880映射的物理缓冲器840-870的头部的物理地址指针。适配器80中的地址映射允许了当映射主机10中存储器60中的描述符和数据缓冲器时的灵活性。适配器80中的地址映射还使得能够直接连接到使用虚拟地址的软件缓冲器,而不需要主机10中的软件来将地址转换为物理地址。
适配器80写到主机的存储器60中的每个分组具有与其关联的状态。该状态使得适配器80和主机10中的软件之间能够同步。该状态可用于指示分组的不同可靠等级。ISOC 120提供下述状态写回(write back):发送DMA完成(Transmit DMA Completion)指示已将TX分组中的数据读入适配器80中;可靠发送(Reliable Transmission)被返回,以指示网络30中数据发送已完成;接收DMA完成(Receive DMA Completion)指示接收数据向存储器60的传输已完成;以及可靠接收(Reliable Reception)指示网络30中的目标节点接收到了发送分组。
TX帧描述符包括2字节状态字段。状态写回意味着事务状态被回写到描述符中。该状态包括可以由主机10中的软件查询的完成比特。当主机10中的软件发现一组完成比特时,其重新使用与帧描述符定义的帧关联的缓冲器。
由RX LCP信道实现完成队列。完成队列使用的LCP信道具有可以由任何RX LCP信道实现的所有灵活性和属性。TX和RX处理器150和160产生状态写回,以指示可靠发送、可靠接收、接收DMA完成、或发送DMA完成。在不同的情况下使用不同的涉及帧的指示。例如,在可靠发送的情况下,是TX处理器150。读取指示分组发送状态的内部寄存器。在可靠接收的情况下,RX处理器160获得完成指示,作为包括确认的接收分组。在接收DMA完成的情况下,RX处理器160使用帧完成信息。在发送DMA完成的情况下,TX处理器150指示适配器80中接收到了要发送的帧。可以由单个TX或RX LCP信道使用完成队列,或由多个信道共享完成队列。适配器80中的微码通过将帧描述符初始化为RX LCP引擎360的命令队列来更新状态队列。参考图11,经由包括完成队列920的完成状态LCP 900,将状态传输到主机10的存储器60。完成队列900是连续的(要么是物理的要么是虚拟的),并且位于主机10的存储器60中。例如可以在连续缓冲器中保存完成队列。完成队列中的条目930最好具有固定大小。每个条目拥有指针940,其指向与接收LCP 910关联的缓冲器950的头部。缓冲器950中充满了与完成状态关联的分组960。
TX软件/适配器信号交换包括TX LCP端口和完成RX LCP端口。每个LCP发送信道使用下述数据结构:
门铃条目,作为存储映射地址实现,通知适配器80增加处理描述符和数据的请求。每项处理具有为门铃访问使用的进入单页面存储映射地址的唯一的访问权。
适配器存储空间210中的LCP上下文条目,包含LCP属性和状态字段。
发送描述符的结构。该结构可以跨越主机10的存储器60中的多个物理页面。如果为描述符使用了虚拟寻址,则使用转换表来将一个页面移动到下一个页面。如果为描述符使用了物理寻址,则使用分支描述符来将一个页面移动到下一个页面。发送描述符包含状态字段,其可以在向适配器80传输所有与描述符相关的数据之后更新。
发送数据缓冲器,钉在主机10的存储器60中,由指针描述符指向其。如果为数据缓冲器使用虚拟寻址,则转换表将指针转换为适配器80使用的物理地址,以访问主机10中的存储器60。
适配器存储空间210中的转换表和保护块,用于地址映射。
参考图12,发送分组流程包括,在步骤1000,主机10中的软件1020用要发送的数据填充缓冲器1030。在步骤1010,软件1020更新描述符1040。描述符1040可以在主机10的存储器60中,或在适配器80的存储空间210中。在步骤1050,软件1020呼叫(ring)门铃,以通知适配器80新数据发送准备就绪。在步骤1060,适配器80管理来自不同LCP信道的请求之间的仲裁。当一信道在仲裁中获胜时,则适配器80读取新的描述符1040。在步骤1070,适配器80读取数据。在步骤1080,向网络30发送数据。在步骤1090,在描述符1040或在完成队列中更新状态。
当访问数据缓冲器时,TX LCP信道可以使用地址转换。在这种情况下,数据缓冲器由多个存储页面组成。就该处理而言,这些存储页面在连续的虚拟存储空间中。然而,就适配器80而言,这些存储页面可以在不连续的物理存储空间中。完成状态结构包含指示已发送的帧的状态的信息。这作为单独的LCP信道而实现。作为每个帧的第一个描述符的帧描述符具有任选状态字段,其可以在向适配器80传输帧之后更新。
参考图13,在发送LCP信道流程的例子中,描述符1100位于主机10的存储器60中。访问描述符1110和存储分组1120的缓冲器1110需要经过位于适配器80中的转换表1130的地址转换。缓冲器1110使用主机10中的软件的虚拟地址空间中的连续空间。由两类描述符描述每个帧1120:帧描述符1140,提供涉及分组的信息;和指针描述符1150,其指向保持数据1120的缓冲器1110。每个分组包括数据有效负载1170,在同一缓冲器1180中,其前面是首标1160。
对门铃的写事务1190更新适配器80可用的字1200的数量。这一信息存储在LCP上下文140中。发送LCP上下文140包括指针1210,其指向拥有要发送的数据的缓冲器1110的头部。当LCP信道赢得了ISOC 120的内部信道仲裁时,ISOC 120根据LCP上下文140中的指针1210读取LCP信道的描述符。对LCP信道的缓冲器1110和描述符1100,使用位于适配器80的存储器子***210中的转换表1130,将虚拟地址转换成物理地址。在存储缓冲器的注册期间,由LCP管理器140更新转换表1130。ISOC 120从缓冲器1110向适配器80读取数据和帧首标。然后,在ISOC 1320上,由用于网络30的首标替换帧首标1160。然后,将分组首标和对应的数据发送的网络30。
RX LCP端口用于从ISOC 120向由主机10上运行的软件应用程序使用的存储器60传输到来数据。TX LCP信道完全通过由主机10上的软件初始化的描述符控制。RX LCP信道使用来自主机10上的软件和ISOC 120两者描述符。由ISOC 120初始化的描述符用于控制LCP信道操作,以定义接收到的帧在主机10的存储器60中的目的地。由主机10中的软件初始化的描述符可以用于定义未通过转换表中的映射定义缓冲器的缓冲器位置。为了实现主机10的软件和适配器80之间的信息交换,最好使用两个LCP信道:RXLCP信道,用于处理接收到的到来数据结构;和RX LCP信道,用于处理完成状态队列。适配器80使用完成状态来发信号通知主机10中的软件向主机10的存储器60的帧传输已完成。向顺序地址中的完成队列结构中***条目。每个完成状态条目包含由适配器80标记,并由主机10中的软件集中(pool)的字段,以检验已从适配器80向主机10中的软件传输条目所有权。一个或多个RX LCP信道可以使用相同的完成状态队列。由ISOC 120执行RX LCP信道对完成状态队列的共享。
RX LCP信道需要指示到来分组的目的地址的信息。ISOC 120具有两种用于寻找空缓冲器位置的寻址方法:
直接寻址模式,参考不使用指针描述符来指出缓冲器的LCP信道。由ISOC 120中的微码定义或从上下文140中读取目的地址。
间接寻址模式,参考维护描述符结构中指向数据缓冲器的指针的LCP信道。描述符最好位于主机10的存储器60中。
直接寻址大大减少了到来分组通过适配器80的处理的延迟时间。然而,其需要由LCP管理器130注册存储缓冲器,包括存储有关适配器80的虚拟向物理转换信息。主机10中的软件向信道门铃写入,以指示添加到可以由该信道使用的空缓冲器的字的数量。在直接模式中,使用下述步骤来确定目的缓冲器的地址:
A.驱动地址A作为对LCP引擎的命令。
B.(可选的)将地址A映射到地址A’。
C.地址A’(如果执行了步骤B)或A(如果没有执行步骤B)是目的缓冲器的基地址。
在间接模式中,适配器80使用描述符来发现数据缓冲器的地址。描述符由主机10中的软件来管理。描述符最好位于主机10的存储器60中。术语“间接”用于强调适配器80读取附加信息来定义目的地址。适配器80在运行时期访问该信息。间接寻址减少了存储转换表所需的适配器80中的存储量n。通常,描述符位于主机10的存储器60中。在间接模式中,使用下述步骤来确定目的缓冲器的地址:
A.驱动地址A作为对LCP引擎的命令。
B.(可选的)将地址A映射到地址A’。
C.地址A’(如果执行了步骤B)或A(如果没有执行步骤B)是指针描述符的地址。
D.从描述符中读取指向缓冲器的指针,地址B。
E.(可选的)将地址B映射到地址B’。
F.地址B’(如果执行了步骤E)或B(如果没有执行步骤E)是目的缓冲器的基地址。
每个RX LCP信道使用下述数据结构:
门铃入口,作为存储映射地址实现,通知适配器80有附加数据或描述符可用于适配器80写分组数据。
适配器80的存储空间210中的LCP上下文条目,包含LCP属性、情形、结构和状态字段。
指向存储器的描述符,用于在间接模式下使用。
主机10的存储器60中连续虚拟地址中的缓冲器。
适配器80的存储空间210中的转换表和保护块,用于地址映射。
接收分组的流程取决于下述特性:
直接还是间接寻址模式。
对于间接模式,描述符位于主机10的存储器60中。
对于直接模式,在访问描述符期间可以或不可以使用地址映射。
在访问缓冲器期间可以或不可以使用地址映射。
对于间接模式,在访问描述符期间可以或不可以使用地址保护。
在访问缓冲器期间可以或不可以使用地址保护。
在LCP信道初始化期间,为每个LCP信道设置这些特性,作为信道的上下文140的部分。
参考图14,接收分组的流程包括,在步骤1300,由主机10中的软件1310为接收到的数据准备空缓冲器1320。在步骤1330,在直接模式下,主机10中的软件1310更新描述符1340。描述符1340位于主机10的存储器60中。在步骤1350,主机10中的软件呼叫门铃,以向适配器80通知空缓冲器空间。对于间接模式,门铃提供指示新描述符1340的信息。对于直接模式,门铃提供指示附加的自由缓冲空间的信息。在这一级,适配器80已准备好从网络30向主机10的存储器60传输接收数据。只要主机10中的软件1310给RX LCP信道添加空缓冲器1320,就重复步骤1300、1330以及1350。ISOC120为每个接收到的分组重复下述步骤。在步骤1360,适配器80接收数据。在步骤1370,在间接模式下,适配器80读取指向空数据缓冲器1320的位置的描述符1340。在步骤1380,将数据和首标写入数据缓冲器1340中。在步骤1390,在完成队列中更新状态。
参考图15,在接收LCP信道流程的例子中,没有使用指针描述符。此外,没有使用转换表。数据缓冲器1400使用利用缓冲器1400的主机10中的软件的物理地址空间中的连续空间。将首标和数据有效负载都写到缓冲器1400中。对门铃的写事务1410更新可由适配器80使用的数据空间。该信息存储在LCP上下文140中。接收/完成LCP上下文140包括指向缓冲器1400的指针1420和用于写新的数据/完成条目的到下一个/当前的地址的偏移1430。当适配器980接收到分组时,其将偏移1430增加到下一个分组的位置,并更新可用数据空间。一旦完成帧接收、一旦帧超时、或对于其它任何需要从LCP客户100了解的帧事件,就将完成条目1440添加到完成LCP1450。完成条目1440包含LCP客户100在LCP数据缓冲器1400中给帧定位所需要的所有信息。主机10中的软件使用完成条目1440中的字段来识别其已被授予对完成条目1440的所有权。
ISOC 120准许LCP信道用于在适配器80的存储器子***210和主机10的存储器60之间移动数据。为了从主机10的存储器60向适配器80传输数据,使用了发送信道。为了从适配器80向主机10的存储器60传输数据,使用了接收信道。当要从主机10的存储器60向适配器80传输数据时,帧描述符包括ISOC 120的总线340上的目的地址。该地址定义帧数据有效负载的目的地。分组首标以平常的方式传输。这使得能够将表和代码装载到ISOC 120的存储空间中。为了使用接收信道从ISOC 120的存储空间向主机10的存储器60传输数据,由RX处理器160初始化描述符。该描述符包括既指示主机10的存储器60中的目的地址又指示源地址的信息。
现在参考图16,如前面所指出,ISOC 120包括RX逻辑1500和TX逻辑1510。RX逻辑1500包括多个用于处理中断的寄存器1520-1540。同样地,TX逻辑1510包括多个用于处理中断的寄存器1550-1570。TX逻辑1510中的寄存器1550-1570包括状态寄存器1570、处理器中断掩码(mask)寄存器1560、以及主机中断寄存器1550。RX逻辑1500中的寄存器1520-1540也包括状态寄存器1540、处理器中断掩码寄存器1530、以及主机中断寄存器1520。TX逻辑1510和RX逻辑1500中的寄存器以相似地构造连接。ISOC级中断1580是指向主计算机***10的中断。中断线1580包括对状态寄存器1570、1540中那些未被对应的掩码寄存器1560、1530屏蔽的位进行的逻辑或(OR)。这些中断源于下面的来源:LCP操作完成1590;来自TX处理器150的调用;来自RX处理器160的调用;由TX逻辑1510检测的事件;以及由RX逻辑检测的事件。通过写入TX和RX调用寄存器,分别产生来自TX处理器150和RX处理器160的调用。在TX逻辑1510中,掩码寄存器1560控制中断从对应的状态寄存器1540向TX处理器150的传送,而掩码寄存器1550控制中断向主机10的传送。在RX逻辑1500中,掩码寄存器1530控制中断从对应的状态寄存器1540向RX处理器160的传输,而掩码寄存器1520控制中断向主机10的传送。这样的配置使得主机10确认由ISOC 120上的事件产生的每个可能中断。可以采用该配置,以便在因为,例如任务太复杂以至于不能由微码处理,或者因为在发生错误时微码已崩溃,而不期望ISOC 120中的微码能够处理事件的情况下,因错误而中断主机10。还可以采用该配置来调用主机10作为对微码的保护。在这种情况下,微码负责在已报告的错误或事件之后采取行动。微码在处理例外之后,向主机10返回完成指示。
作为对状态寄存器1570中未屏蔽的位的逻辑或(OR)而产生对TX处理器150的中断。该状态寄存器是第一级中断寄存器,其不定义中断原因的全部细节。TX处理器150从第二级中断寄存器中读取中断原因。通过写入在第二级中断寄存器中的清除地址而清除中断。对TX处理器150的中断源自下述来源:来自主机10上的软件的全部;来自RX处理器160的调用;以及由TX逻辑1510检测的事件。相似地,作为对状态寄存器1540中未屏蔽的位的逻辑或而产生对RX处理器160的中断。该状态寄存器是第一级中断寄存器,其不定义中断原因的全部细节。RX处理器160从第二级中断寄存器中读取中断原因。通过写入在第二级中断寄存器中的清除地址而清除中断。对RX处理器160的中断源自下述来源:来自主机10上的软件的全部;来自TX处理器150的调用;以及由RX逻辑1500检测的事件。
在本发明的一些实施例中,TX处理器150可以额外的负责处理由发送和接收路径之间共享的逻辑报告的错误。在其它实施例中,RX处理器160可以负责处理来自共享逻辑的这种错误。
在本发明的优选实施例中,为了降低主机10上的软件的处理负担,对LCP中断1590进行预处理。在主机10的存储器60中写入LCP中断信息,以降低源自ISOC 120重复访问的软件等待时间。推迟由每个LCP信道产生新的中断指示,直到完成对前面的信道中断的处理。现在将参考图17详细描述LCP中断的处理。
现在参考图17,ISOC 120和主机10之间的中断流程包括,在步骤1600,发送方向上的软件应用程序1610或接收方向上的RX处理器160设置需要中断的描述符1620中的完成事件请求(CompletionEventRequest)位。描述符1620存储在描述符队列1630中。在步骤1640,一旦完成了对描述符的处理,就由ISOC 120的中断控制器向ISOC 120中的中断FIFO缓冲器1660发送完成时间指示1650。在LCP上下文140中设置事件掩码(EventMask)。在中断FIFO 1660中排列完成事件指示。在步骤1670,当满足预设条件时,由ISOC120从中断FIFO 1660中存储的信息中产生中断控制块(ICB)1680。下面简要描述预设条件。在步骤1690,将ICB 1680传输到主机10的存储器60中。将来自ISOC 120的ICB 1680存储在主机10的存储器60中的绕回(wrapped)队列1700。在步骤1710,主机10的软件中的中断处理程序1720读取ICB1680。在步骤1730,中断处理程序1720将来自ICB 1680的完成事件1650发送到应用程序1610。在步骤1750,应用程序1610将清除事件掩码(ClearEventMask)位写入LCP信道的门铃寄存器中,以起动来自信道的中断。
激活的LCP信道可以在操作期间产生一个或多个完成事件1650。当完成了对已设置完成事件请求位的描述符1620的处理时,产生完成事件1650。完成事件之后的ISOC 120的操作根据上下文140中的事件掩码和完成事件位的值而变化。如果清除事件掩码位,则向ISOC 120的中断控制器发送指示,并由ISOC 120设置事件掩码位。如果设置了事件掩码位,并且清除了信道的上下文140中的完成事件(CompletionEvent)位,则不向中断控制器传输指示,并由ISOC 120设置完成事件位。如果信道的上下文140中的事件掩码位和完成事件位都已设置,则不采取行动。在信道初始化时清除事件掩码位。其还在经由门铃寄存器向信道的上下文140写入清除事件掩码(ClearEventMask)位之后被清除。如果设置了信道的上下文140中的完成事件,并且由门铃寄存器中的清除事件掩码位清除了掩码位,则向中断控制器发送事件完成指示,并清除完成事件位。由中断控制器在FIFO 1660中将完成事件记录到目志中。FIFO 1660中的每个条目保存用于描述产生事件的LCP信道的数量的字段。
ICB 1680是由ISOC 120经由专用LCP信道向主机10的存储器60传送的数据结构。参考图18,ICB包括首标部分和有效负载部分。首标部分包括:在字0处的状态字,其包括用于识别ICB 1680的ICB索引、指示有效负载部分中的中断数的LCP中断有效计数、以及目时(TOD)标记。ICB 1680中剩余部分专用于有效负载部分。有效负载部分包括多个字段,每个字段包含指示完成事件的LCP信道的身份(identity)。在图18所示的例子中,每个字段有2字节长,并且在ICB 1680中有28个字段。然而,应该明白,在本发明其它实施例中,字段尺寸、或ICB尺寸、或者两者都可以与此不同。
经由DMA动作向主机10的存储器60传输ICB 1680。由下述任何一个事件初始化ICB DMA:
在FIFO 1660中有至少预定数量的事件完成指示,并且过去了预定最小时间间隔;
在ICB 1680中有至少一个事件,并且过去了预定最大时间间隔;以及
中断FIFO缓冲器1660已满。
将ICB 1680复制到主机的存储器60中由中断接收者LCP信道的上下文140当前所指向的位置。当完成了ICB写操作时,ISOC 120在其中断寄存器中声明LCP完成位。对LCP完成位的声明产生了可屏蔽的中断。由从ISOC 120的中断寄存器读取的主机清除LCP完成位。从ISOC 120向主机10的存储器60移动ICB 1680的ICB LCP信道的行为与其它LCP接收信道相似。具体说来,由LCP管理器130初始化与ICB LCP信道关联的上下文140和缓冲器;由ICB LCP信道使用的缓冲器的格式可以与其它接收LCP信道相同;以及通过经与信道关联的门铃寄存器设置新自由空间字或缓冲器描述符,来进行主机10上的软件和ISOC之间的同步。在本发明的一些实施例中,ICB信道与其它LCP信道的不同之处在于:ICB信道不使用ICB中断方案;该信道上的操作的完成(处理描述符或将新ICB 1680移动到主机10的存储器60)可以产生中断;以及通过ISOC 120中的逻辑,而不是ISOC 120中的处理器,来管理信道。
主机10上的ISOC中断处理程序1720读取ISOC 120的中断寄存器。读取中断寄存器导致主机10的存储器中的ICB写操作完成。通过经由交替使用中断信道,在存储器60中轮询ICB 1680的下一个索引,可以监控LCP完成。这是因为ICB具有固定的位置,所以下一个ICB的位置已知。中断处理程序1740调用处理每一个指示完成事件1650的信道的应用程序1610。为了避免主机10中的ICB处理的开销,直到清除了信道上下文140中的事件掩码位,LCP信道才需要(经ICB 1680)发送完成指示。通过在门铃写中设置清除事件掩码位,来清除事件掩码位。
在前面描述的本发明的优选实施例中,适配器80经由总线体系结构70连接到主计算机***10的存储器60和CPU 50。然而,在本发明的其它实施例中,可以将适配器80集成到主计算机***10中,而不需依靠总线体系结构70。例如,在本发明的其它实施例中,适配器80可以经由连接到主机存储器60的存储控制器来集成到主计算机***中。
此外,在前面描述的本发明的优选实施例中,以可插适配器卡的形式实现适配器80,以***主计算机***10。然而,应该明白,在本发明的其它实施例中,适配器80的不同实现也是可能的。例如,适配器80可以与CPU 50和存储器60一起位于主计算机***的主板上。
Claims (16)
1.一种从***设备向主计算机***传输中断的装置,该***设备具有多个端口,该装置包括:
缓冲器,用于存储对由***设备的端口产生的中断给出的指示;以及
控制器,用于响应于已满足预设条件,产生包括有效负载部分和首标部分的控制数据块,该有效负载部分具有多个字段,每个字段对应于各端口中的不同的一个,该首标部分具有用于识别控制数据块的识别符,所述控制器还将缓冲器的内容移动到有效负载部分的相应字段,并经多个端口中的一个向主计算机***发送控制数据块。
2.如权利要求1所述的装置,其特征在于:预设条件包括缓冲器已满。
3.如权利要求1所述的装置,其特征在于:预设条件包括在缓冲器中存储了至少预定的多个指示,并且过去了预定时间段。
4.如权利要求1所述的装置,其特征在于:预设条件包括在缓冲器中存储了至少一个指示,并且过去了预定的时间段。
5.如权利要求1所述的装置,其特征在于首标部分包括:计数,指示有效负载部分中包括的指示的数目。
6.如权利要求1所述的装置,其特征在于,首标部分包括日时标记。
7.如权利要求1所述的装置,其特征在于,缓冲器是先入先出存储缓冲器。
8.一种***设备,包括前述任何一个权利要求所述的装置。
9.一种数据通信网络接口,包括如权利要求8所述的***设备。
10.一种数据处理***,包括:
主机处理***,其具有存储器;
数据通信接口,用于在主计算机***和数据通信网络之间进行数据通信;
如权利要求1至6中任何一个所述的装置,用于控制从数据通信接口向主计算机***的存储器的中断流。
11.一种从***设备向主计算机***传输中断的方法,该***设备具有多个端口,该方法包括:
在缓冲器中存储对由***设备的端口产生的中断给出的指示;
确定是否满足预设条件,以及响应于已满足预设条件,产生包括有效负载部分和首标部分的控制数据块,该有效负载部分具有多个字段,每个字段对应于各端口中的不同的一个,该首标部分具有用于识别控制数据块的识别符,将缓冲器的内容移动到有效负载部分的相应字段,并经各端口中的一个向主计算机***发送控制数据块。
12.如权利要求11所述的方法,其特征在于,确定是否满足预设条件包括确定缓冲器是否已满。
13.如权利要求11所述的方法,其特征在于,确定是否满足预设条件包括确定在缓冲器中是否已存储了预定的多个指示,以及是否已过去了预定的时间段。
14.如权利要求11所述的方法,其特征在于,确定是否满足预设条件包括确定是否在缓冲器中存储了至少一个指示,以及是否已过去了预定的时间段。
15.如前述任何一个权利要求所述的方法,其特征在于,首标部分包括:计数,指示有效负载部分中包括的指示的数目。
16.如权利要求11所述的方法,其特征在于,缓冲器是先入先出存储缓冲器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2001/000121 WO2002061590A1 (en) | 2001-01-31 | 2001-01-31 | Method and apparatus for transferring interrupts from a peripheral device to a host computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1507591A CN1507591A (zh) | 2004-06-23 |
CN1256681C true CN1256681C (zh) | 2006-05-17 |
Family
ID=11004036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018224040A Expired - Fee Related CN1256681C (zh) | 2001-01-31 | 2001-01-31 | 从***设备向主计算机***传输中断的方法和装置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20040054822A1 (zh) |
EP (1) | EP1358561A1 (zh) |
JP (1) | JP4317365B2 (zh) |
KR (1) | KR100640515B1 (zh) |
CN (1) | CN1256681C (zh) |
CA (1) | CA2432386A1 (zh) |
CZ (1) | CZ20032079A3 (zh) |
HU (1) | HUP0302843A3 (zh) |
PL (1) | PL363432A1 (zh) |
WO (1) | WO2002061590A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1312600C (zh) * | 2003-07-09 | 2007-04-25 | 明基电通股份有限公司 | 用于减少对处理器的中断次数的控制装置及方法 |
US7342934B1 (en) * | 2004-03-29 | 2008-03-11 | Sun Microsystems, Inc. | System and method for interleaving infiniband sends and RDMA read responses in a single receive queue |
US7058738B2 (en) * | 2004-04-28 | 2006-06-06 | Microsoft Corporation | Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices |
US7721033B2 (en) * | 2004-12-03 | 2010-05-18 | Emulex Design & Manufacturing Corporation | Interrupt notification block |
CN100369021C (zh) * | 2004-12-31 | 2008-02-13 | 英业达股份有限公司 | 计算机外设操作事件响应处理方法及*** |
CN100557586C (zh) * | 2005-06-01 | 2009-11-04 | 索尼株式会社 | 信息处理装置和信息处理方法 |
US7675931B1 (en) * | 2005-11-08 | 2010-03-09 | Altera Corporation | Methods and apparatus for controlling multiple master/slave connections |
US7676192B1 (en) * | 2005-12-21 | 2010-03-09 | Radio Shack, Corp. | Radio scanner programmed from frequency database and method |
CN101449262B (zh) * | 2006-03-30 | 2012-07-04 | 晶像股份有限公司 | 多端口存储器件中的端口间通信 |
JP4966238B2 (ja) * | 2008-03-27 | 2012-07-04 | 株式会社東芝 | タイマ制御装置、タイマ制御システム、タイマ制御方法およびタイマ制御プログラム |
US9032100B2 (en) * | 2008-04-03 | 2015-05-12 | International Business Machines Corporation | I/O hub-supported atomic I/O operations |
JP4990250B2 (ja) * | 2008-09-18 | 2012-08-01 | 株式会社日立産機システム | 割込制御装置、割込制御システム、割込制御方法および割込制御プログラム |
JP2011180653A (ja) * | 2010-02-26 | 2011-09-15 | Oki Joho Systems:Kk | データ転送装置およびデータ転送方法 |
US8700819B2 (en) * | 2011-03-09 | 2014-04-15 | Apple Inc. | Host device suspending communication link to client device based on client device notification |
CN102123158A (zh) * | 2011-04-11 | 2011-07-13 | 深圳市同洲软件有限公司 | 一种实现网络数据处理的方法和*** |
US8364854B2 (en) * | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
GB2497528B (en) * | 2011-12-12 | 2020-04-22 | Nordic Semiconductor Asa | Peripheral communication |
US9542345B2 (en) * | 2012-09-28 | 2017-01-10 | Apple Inc. | Interrupt suppression strategy |
US8880756B1 (en) * | 2013-07-01 | 2014-11-04 | Atmel Corporation | Direct memory access controller |
US9246592B2 (en) * | 2013-08-19 | 2016-01-26 | International Business Machines Corporation | Structured substrate for optical fiber alignment |
US10095891B2 (en) * | 2015-06-08 | 2018-10-09 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
CN108197046A (zh) * | 2017-12-30 | 2018-06-22 | 盛科网络(苏州)有限公司 | 一种实现原子操作的***及方法 |
US11269803B1 (en) * | 2020-12-01 | 2022-03-08 | Quanta Computer Inc. | Method and system for processor interposer to expansion devices |
CN113342721B (zh) * | 2021-07-06 | 2022-09-23 | 无锡众星微***技术有限公司 | 存储控制器dma设计方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493021A (en) * | 1981-04-03 | 1985-01-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Multicomputer communication system |
US5185864A (en) * | 1989-06-16 | 1993-02-09 | International Business Machines Corporation | Interrupt handling for a computing system with logical devices and interrupt reset |
EP0414651A1 (en) * | 1989-08-14 | 1991-02-27 | International Business Machines Corporation | Prolog interrupt processing |
US5325536A (en) * | 1989-12-07 | 1994-06-28 | Motorola, Inc. | Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine |
JP3078000B2 (ja) * | 1990-07-24 | 2000-08-21 | 三菱電機株式会社 | 情報処理装置 |
US5265255A (en) * | 1990-09-24 | 1993-11-23 | International Business Machines Corp. | Personal computer system with interrupt controller |
EP0556295B1 (en) * | 1990-11-09 | 1998-06-03 | AST RESEARCH, Inc. | Protected hot key function for microprocessor-based computer system |
US5319753A (en) * | 1992-09-29 | 1994-06-07 | Zilog, Inc. | Queued interrupt mechanism with supplementary command/status/message information |
US5481724A (en) * | 1993-04-06 | 1996-01-02 | International Business Machines Corp. | Peer to peer computer-interrupt handling |
JPH07191899A (ja) * | 1993-12-27 | 1995-07-28 | Hitachi Ltd | ファイル転送方法、データアクセス方法およびデータ書き込み方法 |
US5553293A (en) * | 1994-12-09 | 1996-09-03 | International Business Machines Corporation | Interprocessor interrupt processing system |
US5630059A (en) * | 1995-02-06 | 1997-05-13 | International Business Machines Corporation | Expedited message transfer in a multi-nodal data processing system |
FR2737590B1 (fr) * | 1995-08-03 | 1997-10-17 | Sgs Thomson Microelectronics | Dispositif de gestion d'interruptions |
US5708814A (en) * | 1995-11-21 | 1998-01-13 | Microsoft Corporation | Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
US5742791A (en) * | 1996-02-14 | 1998-04-21 | Advanced Micro Devices, Inc. | Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor |
US6070219A (en) * | 1996-10-09 | 2000-05-30 | Intel Corporation | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller |
US6122700A (en) * | 1997-06-26 | 2000-09-19 | Ncr Corporation | Apparatus and method for reducing interrupt density in computer systems by storing one or more interrupt events received at a first device in a memory and issuing an interrupt upon occurrence of a first predefined event |
US6430183B1 (en) * | 1997-09-18 | 2002-08-06 | International Business Machines Corporation | Data transmission system based upon orthogonal data stream mapping |
US5968158A (en) * | 1997-10-06 | 1999-10-19 | International Business Machines Corporation | Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor |
US6178180B1 (en) * | 1997-11-26 | 2001-01-23 | International Business Machines Corp. | Communications adapter for processing ATM and ISDN data |
US6765685B1 (en) * | 1999-01-22 | 2004-07-20 | Ricoh Company, Ltd. | Printing electronic documents with automatically interleaved separation sheets |
US6715099B1 (en) * | 1999-06-02 | 2004-03-30 | Nortel Networks Limited | High-availability architecture using high-speed pipes |
US6493772B1 (en) * | 1999-08-23 | 2002-12-10 | International Business Machines Corporation | System and method with guaranteed maximum command response time |
IL148259A0 (en) * | 1999-09-08 | 2002-09-12 | Mellanox Technologies Ltd | Remote event handling in a packet network |
US6618779B1 (en) * | 2000-05-30 | 2003-09-09 | Intel Corporation | Method and apparatus for chaining interrupt service routines |
-
2001
- 2001-01-31 EP EP01273593A patent/EP1358561A1/en not_active Withdrawn
- 2001-01-31 CA CA002432386A patent/CA2432386A1/en not_active Abandoned
- 2001-01-31 CN CNB018224040A patent/CN1256681C/zh not_active Expired - Fee Related
- 2001-01-31 WO PCT/IB2001/000121 patent/WO2002061590A1/en active Application Filing
- 2001-01-31 CZ CZ20032079A patent/CZ20032079A3/cs unknown
- 2001-01-31 HU HU0302843A patent/HUP0302843A3/hu unknown
- 2001-01-31 PL PL01363432A patent/PL363432A1/xx unknown
- 2001-01-31 KR KR1020037009849A patent/KR100640515B1/ko not_active IP Right Cessation
- 2001-01-31 JP JP2002561693A patent/JP4317365B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-15 US US10/619,989 patent/US20040054822A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
HUP0302843A3 (en) | 2004-08-30 |
CN1507591A (zh) | 2004-06-23 |
US20040054822A1 (en) | 2004-03-18 |
PL363432A1 (en) | 2004-11-15 |
CA2432386A1 (en) | 2002-08-08 |
EP1358561A1 (en) | 2003-11-05 |
HUP0302843A2 (hu) | 2003-12-29 |
WO2002061590A1 (en) | 2002-08-08 |
JP2004520646A (ja) | 2004-07-08 |
JP4317365B2 (ja) | 2009-08-19 |
KR20040012716A (ko) | 2004-02-11 |
CZ20032079A3 (cs) | 2003-12-17 |
KR100640515B1 (ko) | 2006-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1256681C (zh) | 从***设备向主计算机***传输中断的方法和装置 | |
CN1488105A (zh) | 控制数据处理***间经由存储器的数据流的方法和装置 | |
CN1488104A (zh) | 控制数据处理***间经由存储器的数据流的方法和装置 | |
CN1149806C (zh) | 高性能通信控制器 | |
CN1253802C (zh) | 计算机组件间直接传输数据的集线器链路 | |
US6611883B1 (en) | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system | |
CN1279469C (zh) | 一种处理器中处理数据的方法和处理数据的*** | |
CN1640089A (zh) | 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制 | |
US6622193B1 (en) | Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system | |
US20060129699A1 (en) | Network interface adapter with shared data send resources | |
CN1146804C (zh) | 快速16位分离事务i/o总线 | |
CN115687234A (zh) | 用于软件定义的互连交换机的架构 | |
CN1910571A (zh) | 单芯片协议转换器 | |
CN1969267A (zh) | 用户级栈 | |
CN1134069A (zh) | 桥接非兼容网络体系结构的装置 | |
CN1100822A (zh) | ***总线***总线间最佳数据传送用多总线***总线桥 | |
WO2010078017A2 (en) | Interrupt techniques | |
CN101040268A (zh) | 宽带网络计算机体系结构中的外部数据接口 | |
CN1531684A (zh) | 数据处理器及运行数据处理器的方法 | |
CN1770110A (zh) | 对I/O完成进行无锁InfiniBandTM轮询的方法、***和存储介质 | |
JP2006085400A (ja) | データ処理システム | |
CN1570907A (zh) | 多处理器*** | |
CN1504905A (zh) | 实现重叠操作的方法和*** | |
CN1819554A (zh) | 数据处理***及其数据接口连接方法 | |
CN1504902A (zh) | 在存储器部件之间保持数据一致性的方法和*** |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060517 Termination date: 20110131 |