芯片组的数据链结层及用于其处理包的方法

文档序号:6611789阅读:164来源:国知局
专利名称:芯片组的数据链结层及用于其处理包的方法
技术领域
本发明有关于芯片组,特别是有关于芯片组与处理器间的包传输。
背景技术
芯片组(Chipset)是一组被安置在主机板上的芯片,是主机板不可或缺的元件。芯片组的功能主要是作为处理器和其他周边、零组件沟通的桥梁。处理器负责运算和处理数据,而处理器所需的数据或处理完成的数据,都由芯片组负责转换或传递。每一个处理器都需要有一套芯片组搭配,才能顺利完成工作。
图1为已知的一计算机系统100的区块图。计算机系统100包括芯片组102、处理器104、存储器106、以及多个外围设备112~116。处理器104负责处理整个计算机系统的数据。当处理器104的运算需要储存数据时,便储存于存储器106中。多个外围设备112~116可为硬盘、光盘、鼠标等等。当处理器104欲存取外围设备112~116时,必须透过芯片组102以进行存取;而外围设备112~116欲传送数据至处理器104时,亦须透过芯片组102以进行传递。因此芯片组与处理器间数据传递的效率对于处理器的效能影响很大。
图2为计算机系统200的芯片组210与处理器240间进行数据传送的示意图。芯片组210与处理器240间的数据传送皆分工为多个阶层,其中由底层至高层分别为实体层(physical layer)212及242、数据链结层(data link layer)214及244、传输层(transactionlayer)216及246。当传输层将欲发送的数据包递送至数据链结层时,数据链结层会将传输层的数据包再拆解成为在实体网络上可传送的最小单位,往下交到实体层做实质上的传输。
然而,芯片组210与处理器240间实体层的连线有时可能会中断。此时芯片组210的传输层216便无法向数据链结层214传送数据包,造成系统效能的下降。若于芯片组210与处理器240间实体层的连线中断时,让芯片组210的传输层216可持续向数据链结层214传送数据包,便可提升计算机系统整体的效能。因此,需要一种于芯片组与处理器间的连线中断时,仍旧可让传输层持续向数据链结层传送数据包的芯片组。

发明内容
有鉴于此,本发明的目的在于提供一种用于芯片组(chipset)的数据链结层(data link layer)处理包的方法,以解决已知技术存在的问题。若该数据链结层自该芯片组的一传输层收到包,便将包的种类存入一包种类队列。若该芯片组与一处理器的连线中断时,分别计算该包种类队列中各种类的包的第一数目。接着,当该芯片组与该处理器的连线重建后,比较连线重建后该芯片组自该处理器首先收到的包的第二确认序号(ACK serialnumber)与连线中断前该芯片组最后自该处理器收到的包的第一确认序号。若该第二确认序号与该第一确认序号不同,依据该第二确认序号分别计算该包种类队列中各种类的不需重发送的包的第二数目。最后,依据所述第一数目及所述第二数目向该处理器发送包。
本发明提供一种芯片组(chipset)的数据链结层(data linklayer)。该数据链结层包括一包种类队列及一控制电路。若该数据链结层自该芯片组的一传输层收到包时,便将包的种类存入其中。该控制电路,用以从该芯片组与一处理器的连线中断时分别计算该包种类队列中各种类的包的第一数目,当该芯片组与该处理器的连线重建后比较连线重建后该芯片组自该处理器首先收到的包的第二确认序号(ACK serial number)与连线中断前该芯片组最后自该处理器收到的包的第一确认序号,若该第二确认序号与该第一确认序号不同时依据该第二确认序号分别计算该包种类队列中各种类的不需重发送的包的第二数目,以及依据所述第一数目及所述第二数目向该处理器发送包。
本发明所述的芯片组的数据链结层及用于其处理包的方法,在芯片组与处理器间的连线中断时,芯片组的传输层仍可向数据链结层传输包,因此可增进整体系统的效能。


图1为已知的一计算机系统的区块图;图2为计算机系统的芯片组与处理器间进行数据传送的示意图;图3为依据本发明的芯片组的区块图;图4显示依据本发明的包种类队列的示意图;图5为依据本发明的芯片组的数据链结层于连线中断时处理包的方法的流程图。
具体实施例方式
为了让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举数较佳实施例,并配合所附图示,作详细说明如下。
图3为依据本发明的芯片组300的区块图。芯片组300包括实体层(physical layer)模块312、数据链结层(data link layer)模块314、以及传输层(transaction layer)316。当芯片组300欲向处理器传送数据时,首先由芯片组300传输层模块316向数据链结层模块314传送数据包。数据链结层模块314将数据编码、加框、侦错,并进行流程控制、错误控制、链结顺序控制和码框同步等。接着再由实体层模块312通过实体连线传送数据至处理器。
数据链结层模块314包括控制电路322、包种类队列324、包数据队列326。控制电路322控制数据链结层314的包的传送流程。包种类队列324储存传输层316发送至数据链结层314的包种类,而包数据队列326储存传输层316发送至数据链结层314的包数据。数据链结层模块314尚包括多个第一包种类计数器及多个第二包种类计数器(未图示),用以依据包种类队列324储存的包种类分别计算各种类的包的数目。
于一实施例中,包种类队列324中所储存的包种类可分为4种,分别为读取命令(read command)、写入命令(writecommand)、读取回应命令(read response command)、回应命令(response command)。举例来说,当图1的芯片组102欲读取存储器106的数据,便向处理器104发出读取命令;当图1的芯片组102欲将数据写入存储器106,便向处理器104发出写入命令。当处理器104欲读取外围设备112~116的数据,而芯片组102欲将外围设备112~116的数据回传至处理器,便向处理器104发出读取回应命令。另外,外围设备112~116欲向处理器104发出一些信息时,芯片组102便向处理器104发出回应命令。例如,外围设备112~116对处理器104发出的写入命令配置成功时,芯片组102便向处理器104发出回应命令。于此情况下,第一包种类计数器及第二包种类计数器便各自包括读取命令计数器、写入命令计数器、读取回应命令计数器、回应命令计数器,以分别计算各种类的包的数目。
图4显示依据本发明的包种类队列400的示意图。包种类队列400包括存入队列指标402、取出队列指标404、第一指标406、及第二指标408等4个指标。每当控制电路312存入(push)一笔包种类至包种类队列400,存入队列指标402便递加一,以指向最后存入的一笔包种类。每当控制电路312接收到处理器所回应一相应的确认序号时,取出队列指标404便等于该相应的确认序号,以指向尚未被确认取出(pop)的头一笔包种类。因此,自取出队列指标404起算至存入队列指标402两者间的包种类,便是包种类队列400中所储存的所有包种类,如图4中斜线部分所示。
图5为依据本发明的芯片组的数据链结层于连线中断时处理包的方法500的流程图。此处将以图3的芯片组300进行说明。首先于步骤502中,每当数据链结层314自传输层316接到一包,控制电路312便将包数据储存于包数据队列326中,同时控制电路312亦将包种类储存于包种类队列324中。无论芯片组300与处理器间的连线是否中断,本发明不阻止传输层316继续往数据链结层314输送数据包。
若在步骤504中,被实体层312通知到芯片组300与处理器间的连线中断时,接着,控制电路322便可于步骤506中依据包种类队列324中储存的包种类计算所储存的各种包的数目。控制电路322首先将第一指标406指向取出队列指标404的位置,此即包种类队列400中储存的第一笔包种类。接着,逐次将第一指标406递增至存入队列指标402的位置,此即包种类队列400中储存的最后一笔包种类。每当第一指标406增加一时,控制电路322便将第一指标406指到的包种类所对应的第一包种类计数器中的值累加一,以分别累计各种类的包的数目。举例来说,若第一指标406指到的包种类为读取命令,则第一读取命令计数器的值便增加一;若第一指标406指到的包种类为写入命令,则第一写入命令计数器的值便增加一。
当各种包的数目累计完毕后,于芯片组300与处理器的连线建立的准备期间,控制电路322必须暂时于步骤508中防止传输层316继续向数据链结层314传输包,以防止于连线建立的准备期间,各第一包种类计数器的包数目累计发生错误。进一步来说,芯片组300与处理器的连线建立的准备期间,控制电路322防止传输层316继续向数据链结层314传输包的时间需大于传输层316向数据链结层314传输包传输所需要的时间,即可防范各第一包种类计数器的包数目累计发生错误。
接着,当芯片组300与处理器的连线重新建立后,芯片组300便会与处理器开始相互传输包。芯片组300与处理器间传输的包,会带有一确认序号(ACK serial number)。此时控制电路322便可于步骤510中记录连线重建后自处理器收到的包的第二确认序号,并将第二确认序号与步骤504的连线中断前芯片组300自处理器收到的包的第一确认序号比较。若第二确认序号与第一确认序号相同,表示连线于步骤504中断后,处理器未多传送出确认序号。因此控制电路322可于步骤516中直接以各第一包种类计数器所储存的值作为数据链结层需向处理器发送的各种类包数目,并据此向处理器发送储存于包数据队列326中的包。
反之,若第二确认序号与第一确认序号不同,表示连线于步骤504中断后,实体层312未收到处理器发出的确认序号。也就是说,实体层312在连线中断前发出的包已被处理器正确地接收,但随后连线中断,造成处理器发出的确认序号未被实体层312所接收。因此控制电路322必须先自包数据队列326中剔除多传送的包,才可再向处理器发送包。此时控制电路322可于步骤512中先将第二指标408指向取出队列指标404的位置,此即包种类队列400中储存的第一笔包种类。接着,逐次将第二指标408递增至第二确认序号的包对应的位置,此即应自包种类队列400中剔除的最后一笔包种类。每当第二指标408增加一时,控制电路322便将第二指标408指到的包种类所对应的第二包种类计数器中的值累加一,以分别累计已于连线中断前传送而不需重新发送的各种类的包的数目。
此时各第一包计数器中已分别储存了包种类队列324中各种类包的总数目,而各第二包计数器中已分别储存了应自包种类队列324中剔除的各种类包的数目。因此,控制电路322可于步骤514中以各第一包种类计数器中所储存的值减去所对应的第二包种类计数器中所储存的值,作为数据链结层314需向处理器发送的各种类包数目,并据此向处理器发送储存于包数据队列326中的包。
本发明提供一种芯片组,即使在芯片组与处理器间的连线中断时,其传输层仍可向数据链结层传输包。通过于数据链结层增加包种类队列以储存包的种类及多个包种类计数器以计算各种类包的数目,可于连线重建后计算出应重新发送的各种类包的数目,以作为包发送的依据。由于在芯片组与处理器间的连线中断时,芯片组的传输层仍可向数据链结层传输包,因此可增进整体系统的效能。
经由以上的实施例与其说明,对于本领域技术人员,可运用电路设计软件及现有技术,将本发明的方法体现在控制电路。据此,以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下100计算机系统102芯片组
104处理器106存储器112-116外围设备210芯片组240处理器212、242实体层214、244数据链结层216、246传输层300芯片组312实体层314数据链结层316传输层322控制电路324包种类队列326包数据队列400包种类队列402存入队列指标404取出队列指标406第一指标408第二指标
权利要求
1.一种用于芯片组的数据链结层处理包的方法,其特征在于,包括下列步骤若该数据链结层自该芯片组的一传输层收到包,便将包的种类存入一包种类队列;若该芯片组与一处理器的连线中断时,分别计算该包种类队列中各种类的包的第一数目;当该芯片组与该处理器的连线重建后,比较连线重建后该芯片组自该处理器首先收到的包的第二确认序号与连线中断前该芯片组最后自该处理器收到的包的第一确认序号;若该第二确认序号与该第一确认序号不同,依据该第二确认序号分别计算该包种类队列中各种类的不需重发送的包的第二数目;以及依据所述第一数目及所述第二数目向该处理器发送包。
2.根据权利要求1所述的用于芯片组的数据链结层处理包的方法,其特征在于,该方法更包括下列步骤当该芯片组与一处理器的连线中断时,每当该数据链结层自该传输层收到包,便将包的数据存入一包数据队列;以及当该芯片组与该处理器的连线重建后,自该包数据队列取出包以向该处理器发送。
3.根据权利要求1所述的用于芯片组的数据链结层处理包的方法,其特征在于,该方法更包括下列步骤若该第二确认序号与该第一确认序号相同,向该处理器分别发送各种类的所述第一数目的包;若该第二确认序号与该第一确认序号不同,向该处理器分别发送各种类的由所述第一数目减去对应的所述第二数目的包。
4.根据权利要求1所述的用于芯片组的数据链结层处理包的方法,其特征在于,该包种类队列包括一存入队列指标及一取出队列指标,该存入队列指标指向该包种类队列中最后一个存入的包种类,而该取出队列指标指向该包种类队列中最先一个存入且未被处理器确认的包种类。
5.根据权利要求4所述的用于芯片组的数据链结层处理包的方法,其特征在于,所述第一数目的计算包括下列步骤以一第一指标自该取出队列指标指向的包种类逐次递增至该存入队列指标指向的包种类;以及每当该第一指标更换所指向的包种类时,依据该第一指标指向的包种类分别以多个第一包种类计数器累计各包种类,而得到所述第一数目。
6.根据权利要求4所述的用于芯片组的数据链结层处理包的方法,其特征在于,所述第二数目的计算包括下列步骤以一第二指标自该取出队列指标指向的包种类逐次递增至该第二确认序号对应的包的包种类;以及每当该第二指标更换所指向的包种类时,依据该第二指标指向的包种类分别以多个第二包种类计数器累计各包种类,而得到所述第二数目。
7.根据权利要求1所述的用于芯片组的数据链结层处理包的方法,其特征在于,该方法更包括于该芯片组与该处理器的连线建立的准备期间,防止该传输层向该数据链结层传输包。
8.一种芯片组的数据链结层,其特征在于,包括一包种类队列,若该数据链结层自该芯片组的一传输层收到包时,便将包的种类存入其中;一包数据队列,若该数据链结层自该芯片组的一传输层收到包时,便将包的数据存入其中;一控制电路,用以从该芯片组与一处理器的连线中断时分别计算该包种类队列中各种类的包的第一数目,当该芯片组与该处理器的连线重建后比较连线重建后该芯片组自该处理器首先收到的包的第二确认序号与连线中断前该芯片组最后自该处理器收到的包的第一确认序号,若该第二确认序号与该第一确认序号不同时依据该第二确认序号分别计算该包种类队列中各种类的不需重发送的包的第二数目,以及依据所述第一数目及所述第二数目向该处理器发送包。
9.根据权利要求8所述的芯片组的数据链结层,其特征在于,若该第二确认序号与该第一确认序号相同,则该控制电路向该处理器分别发送各种类的所述第一数目的包,而若该第二确认序号与该第一确认序号不同,则该控制电路向该处理器分别发送各种类的由所述第一数目减去对应的所述第二数目的包。
10.根据权利要求8所述的芯片组的数据链结层,其特征在于,该包种类队列包括一存入队列指标及一取出队列指标,该存入队列指标指向该包种类队列中最后一个存入的包种类,而该取出队列指标指向该包种类队列中最先一个存入且未被处理器确认的包种类。
11.根据权利要求10所述的芯片组的数据链结层,其特征在于,该数据链结层更包括多个第一包种类计数器,该控制电路以一第一指标自该取出队列指标指向的包种类逐次递增至该存入队列指标指向的包种类,同时每当该第一指标更换所指向的包种类时,所述第一包种类计数器依据该第一指标指向的包种类分别累计各包种类,而得到所述第一数目;以及多个第二包种类计数器,该控制电路以一第二指标自该取出队列指标指向的包种类逐次递增至该第二确认序号对应的包的包种类,同时每当该第二指标更换所指向的包种类时,所述第二包种类计数器依据该第二指标指向的包种类分别累计各包种类,而得到所述第二数目。
全文摘要
本发明提供一种芯片组的数据链结层及用于其处理包的方法。首先,若该数据链结层自该芯片组的一传输层收到包,便将包的种类存入一包种类队列。若该芯片组与一处理器的连线中断时,分别计算该包种类队列中各种类的包的第一数目。接着,当该芯片组与该处理器的连线重建后,比较连线重建后该芯片组自该处理器首先收到的包的第二确认序号与连线中断前该芯片组最后向该处理器发送的包的第一确认序号。若该第二确认序号与该第一确认序号不同,依据该第二确认序号分别计算该包种类队列中各种类的不需重发送的包的第二数目。最后,依据所述第一数目及所述第二数目向该处理器发送包。本发明可增进整体系统的效能。
文档编号G06F13/42GK101082898SQ20071014370
公开日2007年12月5日 申请日期2007年7月30日 优先权日2007年7月30日
发明者秦鹏, 张斌 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1