根据共享属性而由压缩的队列对来建立多重虚拟队列对的配置的制作方法

文档序号:6422708阅读:149来源:国知局
专利名称:根据共享属性而由压缩的队列对来建立多重虚拟队列对的配置的制作方法
技术领域
本发明是关于主机信道适配卡与目的信道适配卡,通讯作业的装配,并且于InfiniBandTM服务器系统中以队列对方式来处理资料封包的传送。
背景技术
网络科技在服务器架构上,以及设计目标以提供更具执行速度与可靠性来达成关键网络应用软件为任务所使用的服务器方面,已有长足的进步。尤其是服务器对于客户端需求的响应,对服务器的运作会要求极高的可靠性以确保网络作业正常无误。因此服务器的可靠性、存取性与服务品质,受到非常的关注。
另外,服务器中的中央处理器也有很大的进步。微处理器的速度与频宽都已经超过与其连结的输出输入总线的容量,使得服务器的总处里能力受制于总线的容量。因此,各种服务器的建议标准都是讨论寻址方法、处理器分组方法、高速输入输出等,以能提高服务器的能力。
这些各样的服务器标准的讨论与建议促成了InfiniBandTM TradeAssociation公司致力发展InfiniBandTM架构规范(发行版本1.0)。此规范定义介于中央处理器单元、外围以及服务器系统里面的交换器之间,建立高速网络连接。所以所谓″InfiniBandTM网络″是指在一个服务器系统内的网络系统;InfiniBandTM架构规范定义有关输出输入操作作业,以及处理器之间的传输(IPC)。
InfiniBandTM架构规范有一个特色是,于现有的网络协议(例如以传输控制协议/网际网络协议(TCP/IP)为基础的协议)的传输层服务来定义其硬件的建置。此项传输层服务的硬件基础的建置提供了一个优点,是降低了中央处理器单元必须执行处理工作(即,卸载),服务器系统的操作系统因此被卸载。
然而随意式的硬件建置可能造成硬件设计的重大浪费。主机信道适配卡(HCA)可以处理多重队列对(QPs),这些是消费应用程序于InfiniBandTM网络节点上当作通讯的资料。可惜的是,将会有极大数量的队列对随之产生,造成主机信道适配卡必须衍生出非常大量的资源来处理这些数量的队列对。

发明内容
设计安排来建置一个有效率、节省资源的主机信道适配卡,有实际的需求。
另外又有一个需求,设计安排来建置主机信道适配卡,使得该主机信道适配卡可以不必花费大量资源及可以处理多重队列对。
本发明可以达到这些需求,也包括其它的需求,本发明将主机信道适配卡安装成为,将相似属性的队列对压缩到专门储存共享属性的队列对表格之中,以期有效率的处理多重队列对。
本发明的其中观点是提供主机信道适配卡的方法,此方法包括接受创造新队列对的要求,又包括使用匹配方式,从新队列对之中至少一个选定的属性与队列对表格之中个别的共享属性来作比对,以便能够从多重的队列对表格中辨认出其中的一,而每一个队列对表格具有多个压缩队列对登入项,每个登入项代表多重队列对有相对的共享属性。本方法也包括储存,那些不同于相对共享属性并且具有规定的新队列对,成为新的压缩队列对登入项,而在该队列对表格之中的共享属性至少有一个与选定的属性相同。
本发明又提供主机信道适配卡的论点。主机信道适配卡包括一个队列对属性数据库以及队列对属性管理模块。队列对属性数据库规划储存队列对的规定属性,队列对属性数据库包括具有各样共享属性的多重队列对表格,每个队列对表格则规划储存压缩队列对登入项,代表着具有相对共享属性的队列对。队列对属性管理模块规划储存新的队列对,以比对辨认某队列对表格中相对的共享属性与该新的队列对的选定属性至少一项相符者,以新的压缩队列对登入项储存,该新的压缩队列对登入项具有新的队列对的规定属性,不同于相对应共享属性。
本发明的额外优点及新颖特征将于后面章节中部分提出说明,该等说明部分则是由对于此项技艺熟悉者对后续说明的检视,或者对于本发明的实习而了解来得知。本发明的优点将利用工具以及专利范围中所提各样特点的结合,而获得或实现。


请参照所附图式,各图中相同的参考号码指示的组件是表示相对应的部分,其中图1为显示依照本发明的实施例,主机信道适配卡规划产生传输封包的图标。
图2为显示依照本发明的实施例,对于图1中的队列对属性数据库作更进一部描述的图标。
图3为显示依照本发明的实施例,储存新的队列对到队列对属性数据库的方法的图标。
具体实施例方式
图1为显示依照本发明的实施例主机信道适配卡(HCA)12,规划产生与传输封包的方块图。与InfiniBandTM架构规范兼容的HCA12,其规划设计依照优先级的排序,来产生传输封包以便保证硬件资源得以最有效率运用的方式来施行。再者,揭示的HCA12提供加入致能崁入式程序处理的弹性,而不阻断传输的通讯流量。因此,HCA12可以规划设计以最小的复杂性,相对于传统设计技术以便达到经济节省方法。
运用传统技术规划设计一个依照InfiniBandTM架构规范的HCA12,有一个问题,就是会先执行传输层的服务,例如建置传输层的表头(Header)、产生封包的序号、确认服务型态(如可靠稳定连接、可靠稳定资料封包、非可靠稳定连接、非可靠稳定资料封包等),以及其它传输层的作业。一旦传输层的作业完成,封包就会送到连接层服务以便执行连接层作业,包括服务层及虚拟道映对、连接层流程控制封包产生、连接层传输信用查验、和其它作业。虽然这种传统式的建构方法具有在InfiniBandTM架构规范准确地依据网络层次规范的优点,但是如此处理安排需要相当庞大数量的硬件。尤其传输层通常会比连接层需要更多处理能力,因为传输层牵涉到更复杂的作业。所以对于在硬件建构传输层而不会造成大量运用复杂的硬件,已经有实际的需求。并且在低优先权的作业上浪费很多不必要的传输层资源也时常被列入考量。
依照所揭示的实施例,连接层作业的安排分割是依据需求性来决定传输资料封包的优先级。尤其在第4图中的HCA12包含一个预先连结模块来决定接收WQEs(工作队列元素)的优先级,以及一个后置连接模块配置来准备于网络上传输的资料封包。预先连结模块40是依据由预先连结模块所决定的优先级来排序WQEs,并且依据预定的顺序传送到传输服务模块42,该模块是依照关联队列对属性配置为WQEs来产生适当的传输层的表头。换言的,预先连结模块40可以避免让传输服务模块42浪费资源于低优先权的WQE,或者避免高优先权的WQE阻塞于传输层处理之内。因此,经由HCA,高优先权的连结在传输层可以得到更佳的服务效能。
以一个特殊运用集成电路来作为例子的HCA12,包含预先连结模块40、传输服务模块42、后置连接模块44、以及媒介存取控制模块(MAC)46。HCA12并且具有区域存取内存48,配置用来储存传输资料和流程缓冲器,如下文的描述。
预先连结模块40包括一个工作队列元素FIFO(先入先出)50、虚拟道FIFO 52、一个预先连结处理模块54、SL-VL对应表格56可以将服务层映对到虚拟道,以及虚拟道仲裁表格58、虚拟道仲裁模块60。
HCA12建构来接收以WQE形式,从中央处理单元传来的资料,并储存于WQE FIFO 50里面。每个WQE是一个从CPU执行的耗用运用程序(即,请求者),指定一个相对的请求,并且藉由目的端的InfiniBandTM网络节点(即,响应者)执行相对预定作业,例如一个目标。请求者与响应者之间的交换作用是经由队列对(QP)来定义,该队列对包括传送工作队列及接收工作队列。
WQE则包含服务层(SL)信息、和指针可指出系统内存48里实际讯息的位置。InfiniBandTM架构规范定义一个服务层(SL)的属性,它允许封包横跨InfiniBandTM网络10的十六个服务层里的其中一层来执行作业。因此请求者可以依照WQE选定的优先级来选择可适用的服务层(例如依照服务品质、优先权等)。
预先连结模块40提供包括服务层映对至虚拟道(SL-VL映对),与虚拟道仲裁。尤其是,由InfiniBandTM架构规范定义的各虚拟道,可以使得多重逻辑流程再单独一条实际联机上执行,该连结层流程控制能运用于某一虚拟道,而不会影响其它虚拟道。预先连结处理模块54是建构来处理、维护服务层到虚拟层的映对表格56。其中预先连结处理模块54从WQE FIFO 50中萃取WQE,并且根据由WQE里定义的服务层来决定相对的虚拟道。一旦从萃取的WQE辨认出适当的虚拟道,则预先连结处理模块54传递该WQE到相对的虚拟道FIFO 52。
预先连结模块40包括虚拟道FIFOs 52a、52b、52c、52d、52e与52f,依照预先连结处理模块54所指定来储存WQE。例如虚拟道FIFO 52a是储存与崁入的处理机作业相关的WQE,如连结层控制封包与错误状况处理。换言之,当某一预定执行作业,而硬件并没有相对的机制时,该请求会送到一个崁入处理器队列78,等待稍后由崁入处理器80来执行,以下文描述的。由此,崁入处理器80拥有自己的指定的队列52a,以将封包输出至输出数据流通的流程里面。虚拟道FIFO 52b储存与管理流通作业相关的WQE。虚拟道FIFOs 52c、52d、52e与52f用来储存与个别指定虚拟道作业相关的WQE。虽然揭示的实施例揭示只使用了四个指定虚拟道,但可以加入更多的虚拟道FIFOs,以便增加指定虚拟道。
虚拟道仲裁模块60是建构利用缓存器来作为状态机器,并且为了服务虚拟道配置来管控虚拟道仲裁表格58,包括设立、管理以及拆除虚拟道。虚拟道仲裁模块60同时可以依照虚拟道决定的优先权,来决定应该服务那一个虚拟道,以及从虚拟道FIFO 52输出WQE。例如,虚拟道FIFO 52b一般是来储存管控(高优先权)流通,所以虚拟道仲裁模块60在服务其它虚拟道FIFOs 52c、52d、52e与52f之前,会先清空虚拟道FIFO 52b。虚拟道仲裁模块60会依照虚拟道仲裁表格58里的个别加权表所储存的加权优先级从虚拟道FIFOs 52c、52d、52e或52f来选择性地输出WQE。
所以预先连结模块40依据WQE决定的优先权来执行预定的程序以输出WQE,例如依据指定虚拟道,或者该WQE是否为崁入处理作业、管控流程,或流程控制流通。
传输服务模块42是建构以管理传输服务,包括设立、管控以及拆除队列对。尤其是HCA12包括一个队列对设立FIFO 62,是建构来储存从通讯管理代理者接收的队列对指令。通讯管理代理者则负责传输连接的设立与拆除通讯管理代理者与子网络管理者沟通以建立与HCA12的传输连结,并且通讯管理代理者在每次建立传输连结最后时,不同于传统传输层服务,它会执行一个越过服务(下文将会描述越过服务子模块68a)以建立传输连接。
传输服务模块42包括队列对属性数据库64以及队列对属性管理模块66。该队列对属性管理模块66是建构来处理于队列对设立FIFO 62里的队列对指令,并且依据接收到的队列对指令来更新队列对属性数据库64的内容。例如队列对属性数据库64储存的信息是有关于资源队列对号码、目的队列对号码以及可能的资源端代理者、目的端代理者。所以队列对属性数据库64将会纳入所有支持各样不同传输服务所需要的信息,包括可靠连结服务、可靠资料报服务、非可靠连结服务、非可靠资料报服务以、及原始资料报服务。有关队列对属性数据库64的队列对属性的储存更进一步细节,将在下列参照图2、图3中说明。
队列对属性管理模块66于区域与远距的代理者之间作沟通时,利用更新队列对属性数据库64的内容来管理传输服务,例如当讯息在区域与远距的通讯代理者之间交换时,封包的序号会增加。
队列对属性管理模块66还包括服务子模块68,每个是建构来依照从预先连结模块40来的相对应接收到的WQE来管理相对应传输服务类型。例如,越过服务子模块68a是建构于建立连接的时,或者管理与网络管理者运用的管理作业相关联的队列对的时候,例如原始资料报服务,作越过服务管理。有CPU支持的服务子模块68b则是建构于依据使用崁入虚拟道FIFO 52a的崁入式处理作业来管控队列对;所以有CPU支持的服务子模块68b可以协调区域与远距的崁入式处理作业之间;此外,有CPU支持的服务子模块68b与崁入虚拟道FIFO 52a的结合建构,更使得由远距网络代理者所接收的重新传送的需求下,讯息得以再传送。可靠连结(RC)服务子模块68c以及非可靠连结(UC)服务子模块68d,则是建构来管控分别与可靠连结、非可靠连结传送服务相关的队列对。虽然本文未有呈现,队列对属性管理模块66也包含子模块68,来管控可靠与非可靠数据报服务,和原始资料报服务。
从此传输服务模块42,只要一收到从预先连结模块40送来的WQE,就会提供WQE至适当的子模块68用于处理(例如由可靠连结(RC)服务子模块68c来操控WQE作可靠连接服务)。WQE包括服务层次(SL)讯息和一个指针可指出系统内存48里实际讯息的位置。子模块68则反应于所接收到适当的WQE,来解析该WQE,并萃取该WQE的可以指出内存里传输讯息的位置的指针(例如传输层的有效承载)。子模块68执行(DMA)直接内存存取来抓取传输资料,更新于队列对属性数据库64里面合宜的队列对属性,并且为WQE以相对的传输格式来创造并储存一个传输层的表头于外部内存48,例如子模块68a会产生一个原始传输表头,而模块68c或模块68d则分别依循可靠连结服务、非可靠连结服务来产生传输表头。
然后子模块68产生一个表头指针(p1)来辨认传输层表头的位置子模块68又传送一个包含有效承载指针(p2)与表头指针(p1)的封包请求90,到后置连接模块44,以供后置连接模块44依据供应指针来组合一个可以传输的传输封包。另外子模块68也可以产生一个资料框指针,指至储存传输层资料框的系统内存位置,包括传输层表头以及传输数据。如果喜欢,子模块68也可以传送传输层数据框(包含传输层表头以及传输数据)到后置连接模块。另外当写入外部内存时,CPU可能于资料的开始端处填入些空白,以便在子模块68创造出来的实际表头资料可以存入相对的空白处内存空间。传下来到后置连接模块44的指针可以就是指到外部内存里资料框的开始端。
后置连接模块44于接收到传输层数据(例如传输层资料框、封包请求等)之下,会从系统内存48抓取传输层表头以及传输层净承载,以便产生一个传输封包并且储存于传输FIFO 70。尤其后置连接模块44也包括一个连接层控制模块72,以便建构由产生连接层字段来产出传输封包(例如区域与全面路由表头、周期性冗余检查法(CRC)字段等),储存传输封包于传输FIFO 70,并依照InfiniBandTM架构规范来管控连接层控制处理作业。一旦传输封包产生,则指针将会转移到空白可用缓冲器管理器76,详细描述如下文中。
连接层控制模块72是依照授权信用度基础的流量控制来输出传输封包。详言的,连接层控制模块72对于某一特定虚拟道上的传输封包,来监控其传输的可用信用度。尤其是,信用度是以每一个虚拟道为授与基础,该处接收器依照从传来的虚拟道缓冲器取来的封包,授与信用度;将信用度送到传送端,使得传送端能管理流程控制。因此如果连接层控制模块72决定某一特定虚拟道拥有不足的信用度,则连接层控制模块72会延缓相对传输封包的传送,直到接收到足够数量的信用度为止。如果虚拟道已经有够数量的信用度,则连接层控制模块72会将传输封包传递给媒介存取控制模块(MAC)46,以供传输。
MAC模块46是依照InfiniBandTM架构规范建构以便输出储存于传输FIFO 70的传输封包。尤其MAC模块46包括传输模块74、空白缓冲器管理器76、崁入式处理器输入队列78、以及具有连接流程控制封包结构模块82的崁入式处理器80。传输模块74是建构来执行媒介存取控制作业,或者是选用的实体层的收发作业,以便将传输封包传送到InfiniBandTM网络10。
空白缓冲器管理器76是建构来释放在外部内存48中的可运用空间,一旦传输封包已经由响应器成功地接收。尤其是,一旦传输封包产生后,传输封包的内存指针会从后置连接模块44送出;如果响应器传送一个必须以可靠连结服务来重新传送的讯息,则可由后置连接模块44再次产生该传输封包,并重新传送到响应器。一旦传输封包成功地接收了,则讯框指针将释放以便其它代理者可以运用。
流程控制是由崁入式处理器80依照从崁入式处理器输入队列78送来的接收讯息来处理,尤其是流程控制协议是依据InfiniBandTM架构规范,使用信用度为基础的流程控制。崁入式处理器80运用连接流程控制封包结构模块82来产生连接流程控制封包,它是以储存在崁入式处理器输入队列78的讯息为依据。崁入式处理器80将连接流程控制封包写入外部内存48,然后崁入式处理器80产生一个WQE,包括相关作业与指针来指定崁入处理机的虚拟道FIFO 52a里面流程控制封包的位置。而后连接流程控制封包将会传送出去,来指定用于另外一个传输通知的许多个可用的信用度。
所以崁入式处理器80可以产生一个连接流程控制讯框,包括流程控制表头,并将流程控制表头输出到错误处理器输入队列78以便传输到网络。
图2是以更为详细的图表来描述,依照本发明的实施例建构的队列对属性数据库64。本队列对属性数据库64包括多重队列对表格100,是由队列对属性管理模块66来建立与维护,该表格是建构来储存压缩队列对的登入项102。尤其是,每一个队列对表格100都有一个相对的指定的共享属性群组,在共享属性标记104有说明纪录。例如每一个队列对表格100可以是由队列对属性管理模块来建构,以便储存具有相同传输服务的队列对,其中的表格100a、100b、100c、100d以及100e是由队列对属性管理模块66运用来储存队列对,分别运用于可靠连结(RC)、可靠资料报(RD)、非可靠连结(UC)、非可靠资料报(UD)以及原始资料报(RWD);在此实例之中100a表格将只有储存队列对登入项102,特定为提供可靠连结传送服务。
另外每一个队列对表格100可以建构来储存具有相同服务层级(SL)、或相同虚拟道(VL)以为相关的共享属性的队列对,在共享属性标记104有说明纪录。更甚者,每一个队列对表格100可以建构来储存多重的共享数值,也许该处队列对表格100只有储存特定为提供相关共享数值的队列对登入项102,(例如可靠连结和一个数值为SL1的服务层级;或者是可靠连结和一个数值为VL1的虚拟道)。依据虚拟道来储存队列对与选定队列对表格,提供较高层次的压缩,但是以运用处理执行资源为其代价,可能会影响HCA的效率;然而,依据服务层级来储存队列对与选定队列对表格,提供较低层次的压缩,比起根据虚拟道的压缩使用较少的处理执行资源,使得HCA可以提供较高层次的执行效率。
此外,依照虚拟道将压缩队列对登入项加入某队列对表格100,维持着交通流动的优先级,因为流通控制使用信用度来控制,是属于虚拟道的基础。
所以图2中所显示的每一个队列对表格100,是可以建构来储存对于拥有相同传输服务的队列对的队列则登入项102;相同传输服务并且/或者相同服务层次;或者相同传输服务并且/或者相同虚拟道。因此,队列对属性数据库64可以在部分的队列对表格100中使用比较少的实际队列对,来储存多重的虚拟队列对。值得注意的是,其它相关属性可以用来,将队列对登入项102放入某一选定的队列对表格,所需要的压缩讯息,运用其为一个共享属性。
图3是以图表来描述,依照本发明的实施例,创造、储存一个新的压缩队列对登入项至队列对属性数据库64的方法。这个方法于第110步骤开始,该步骤队列对属性管理模块66将队列对属性数据库64分成几个部分,以便依照特定的共享属性来建立多重队列对表格100。例如传输服务的种类、服务层次与虚拟道等。
队列对表格100建立以后,队列对属性数据库64就可以开始储存新的压缩队列对登入项。尤其是,队列对属性管理模块66于第112步骤接受到创造一个新队列对的请求,例如依照从区域或远程通讯管理代理者,或者子网络管理者接收到的队列对指令。
队列对属性管理模块66于第114步骤,从接收的队列对指令中,得到新的队列对属性,又在第116步骤解析选定的新队列对属性,来辨认将用来储存新压缩队列对登入所述的队列对表格100。详言的,队列对属性管理模块66又于第118步骤,比对新队列对的特定属性,和队列对表格100的个别的共享属性(在个别的标记104有说明纪录),以便来决定是否相符。
如果于第120步骤,侦测没有相符合,则队列对属性管理模块66会于第122步骤创造一个新的队列对表格100,其具有选定的队列对属性来当作共享属性。然而如果于第120步骤侦测到相符时,队列对属性管理模块66会于第124步骤,储存一个包括新队列对所需的属性,但是共享属性除外的新压缩队列对登入项102,将的储存到具有比对相符属性104的选定队列对表格100。所以新登入项102只需要储存与共享属性104不同的讯息资料,使得储存多重虚拟队列对时,所使用数据库64中的实际队列对要减少。
虽然本发明以藉实施例加以说明,但理应了解在不违背本发明所附申请专利范围内所界定的广义精神和观点情况下,各种的变更方式或修饰,皆应属于本发明的范围。
权利要求
1.一种主机频道适配卡(HCA)的方法,该方法包括接收一个创造新队列对的请求;藉由从新队列对之中至少一个选定的属性与队列对表格之中个别的共享属性来前定匹配,以便能够从复数个队列对表格中辨认出其中的一,而每一个队列对表格具有压缩队列对登入项,该登入项代表队列对有相对的共享属性;以及储存那些不同于相对共享属性并且具有规定的新队列对属性的新的压缩队列对登入项,于该一个具有匹配于至少一个选定的属性的相对应共享属性的队列对表格中。
2.如权利要求1所述的方法,其中该至少一个选定属性来特定一种传输服务类型,这个决定的步骤包括判定特定的传输服务类型与个别的传输服务类型之间的匹配,而指定为队列对表格的个别共享属性。
3.如权利要求2所述的方法,其中每一个队列对表格的该共享属性包括,相对的传输服务类型,与相对的服务层次,这个决定的步骤更包括,判定特定的传输服务类型,与新队列对所指定的服务层次之间的匹配;其中的新队列对是指与传输服务类型,以及指定到每一个队列对表格的服务层次有关者。
4.如权利要求3所述的方法,其中特定传输服务类型是指定可靠连结服务、可靠资料报服务、非可靠连结服务、非可靠资料报服务以及原始资料报服务,其中的一项。
5.如权利要求2所述的方法,又包含指定新队列对到指定的虚拟道,每一个队列对表格的该共享属性,包括相对的传输服务类型,以及一个相对的规定虚拟道,这个决定的步骤又包括判定特定的传输服务类型,对于新队列对相关传输服务类型的指定的虚拟道和对于各队列对表格的规定的虚拟道之间的匹配。
6.如权利要求1所述的方法,其中至少一个选定的属性特定到某一指定的虚拟道,这个决定的步骤包括,判定指定的虚拟道,与个别的规定虚拟道之间的匹配,而指定为队列对表格的个别共享属性。
7.一种主机频道适配卡,包括队列对属性数据库,配置储存队列对的规定属性,该队列对属性数据库包括具有个别共享属性的复数个队列对表格,每个队列对表格配置用来储存压缩队列对登入项,代表着具有相对共享属性的队列对;以及队列对属性管理模块,配置储存新的队列对,以辨认其中一个队列对表格中具有相对的共享属性与该新的队列对的选定属性至少一项匹配者,作为新的压缩队列对登入项,该新的压缩队列对登入项具有新的队列对的规定属性,不同于相对应共享属性。
8.如权利要求7所述的装置,其中该共享属性包括至少一种传输服务类型,与服务层次。
9.如权利要求7所述的装置,其中该共享属性包括至少一种传输服务类型,与虚拟道。
10.如权利要求9所述的装置,其中该新的队列对至少有一个选定的属性,特定为传输服务类型,为可靠连结服务、可靠资料报服务、非可靠连结服务、非可靠资料报服务以及原始资料报服务其中的一项。
全文摘要
本发明提供一种主机频道适配卡,藉由压缩具有相似特性的队列对到队列对表格,而配置用来有效管理多个队列对,该队列对表格用来储存具有共享属性的压缩队列对入口。因此,多重虚拟队列对可以创造出储存于队列对属性数据库内令较少的实际队列对。
文档编号G06F9/46GK1514977SQ02811620
公开日2004年7月21日 申请日期2002年1月29日 优先权日2001年6月18日
发明者B·埃里姆莉, Y·阿沙里, B 埃里姆莉, 忱 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1