首页 / 专利库 / 生物工程 / 调控序列 / 计算机系统内部数据存取方法与相关装置

计算机系统内部数据存取方法与相关装置

阅读:818发布:2023-02-08

专利汇可以提供计算机系统内部数据存取方法与相关装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种于 计算机系统 内存取数据的方法与相关装置。计算机系统中的 外围设备 可要求对系统存储空间进行需窥探或不需窥探 中央处理器 的数据存取。在以可支持多虚拟通道的 芯片组 来服务单一虚拟通道的外围设备时,本发明即可根据需/不需窥探的要求以不同的处理序列分派外围设备的存取要求,以将外围设备不需窥探的读取要求直接传输至系统 存储器 ,并以芯片组中不同虚拟通道的缓冲资源来分别寄存中央处理器及系统存储器所响应的数据或信息,以增进外围设备数据存取的效能。,下面是计算机系统内部数据存取方法与相关装置专利的具体信息内容。

1.一计算机系统内进行数据存取的方法,该计算机系统包括中央处理器 和系统存储器以进行数据存取,而该方法包含有:
依序接收至少一交易数据包;每一交易数据包内记录有一属性数据;
利用两个地址序列,并根据各交易数据包内的属性数据来分别将不同需 求的数据存取地址排入不同的地址序列;
根据该两个地址序列,对应地存取中央处理器和系统存储器;以及
将由中央处理器和系统存储器存取到的数据分别寄存于该计算机系统的 不同缓冲器中,使同一缓冲器中不会存有来自中央处理器和系统存储器的数 据。
2.如权利要求1所述的计算机系统内进行数据存取的方法,其中该属性 数据根据要窥探与不用窥探中央处理器来区别。
3.如权利要求2所述的计算机系统内进行数据存取的方法,其中该属性 数据更包括是否进行写入的运作来区别。
4.如权利要求1所述的计算机系统内进行数据存取的方法,其另包含有:
在存取该中央处理器时,若该中央处理器中未存储有要存取的数据,则 改由该系统存储器存取。
5.如权利要求1所述的计算机系统内进行数据存取的方法,其中当根据 各交易数据包内的属性数据,对应地存取中央处理器和系统存储器时,更包 括一顺序控制步骤,控制先接收的一写入交易数据包的数据存取,优先于后 收到的一读取交易数据包的数据存取。
6.一种芯片组,可于一计算机系统内中央处理器和系统存储器中进行数 据存取,其包含有:
一分派模,其可依序接收至少一交易数据包,并根据每一交易数据包 内记录有一属性数据于不同输出端输出;两个序列模块,分别对应连接中央 处理器和系统存储器之一,并分别对应接收该分派模块不同输出端的该交易 数据包后,送到对应连接的中央处理器和系统存储器之一;以及
多个缓冲器,分别用来寄存由中央处理器和系统存储器存取到的数据, 使同一缓冲器中不会存有来自中央处理器和系统存储器的数据。
7如权利要求6所述的芯片组,其中该属性数据根据要窥探与不用窥探 中央处理器来区别。
8.如权利要求7所述的芯片组,其中该属性数据更包括是否进行写入的 运作来区别。
9.如权利要求6所述的芯片组,其中芯片组另包括:
信号流控管模块,连接到中央处理器和系统存储器以及该两个序列模 块,用以将该两个序列模块的交易数据包对应传输到对应的中央处理器和系 统存储器;以及
多个调控模块,根据该信号流控管模块的控制状况,来控制该两个序列 模块的一进行该交易数据包传输到对应连接的中央处理器和系统存储器之 一。
10.如权利要求6所述的芯片组,其另包含有:
一定序模块,控制该两个序列模块传输到对应连接的中央处理器和系统 存储器的顺序。
11.如权利要求10所述的芯片组,其中该定序模块控制该两个序列模块 传输到对应连接的中央处理器和系统存储器的顺序,使该分派模块依序所先 接收的一写入交易数据包的数据存取,优先于后收到的一读取交易数据包的 数据存取。
12.如权利要求6所述的芯片组,其另包含有:
一传输模块,控制该多个缓冲器的数据输出。

说明书全文

技术领域

发明提供一种计算机系统内部数据存取的方法或相关装置,特别指一 种根据存取要求中窥探(snooping)/不窥探的属性而分派数据存取路径的数 据存取方法与相关装置。

背景技术

计算机系统是现代信息社会最重要的硬件基础之一,如何增进计算机系 统的效能,也就成为现代信息厂商研发的重点之一。一般来说,计算机系统 中会设有一中央处理器、一系统存储器、一芯片组及各种各样的外围设备装 置与电路;其中,中央处理器可运算数据、处理数据及执行程序,以主控计 算机系统的运作,系统存储器即用来提供系统存储空间/资源以寄存计算机系 统运作所需的数据、数据及程序;外围设备则可包括有处理图像显示输出的 显示卡、处理网络连接的网络卡,乃至于各种非易失性的存储装置等。而芯 片组即可管理各个外围设备与系统存储器、中央处理器之间的数据往来传输; 当各个外围设备要存取系统存储空间时,就可向芯片组发出存取要求,由芯 片组来统一管理/服务各个外围设备的数据存取要求。在外围设备提出的存取 要求中,会指明要在系统存储空间中存取哪些地址的数据;而芯片组就会将 这些地址排序为地址序列,依序处理相关的数据存取要求,并将数据存取的 响应(譬如说是由系统存储空间存取到的数据)寄存于芯片组本身的缓冲器 中,再依序传输至外围设备。
为了增进芯片组管理外围设备数据存取的效能,现代的芯片组可实现“多 虚拟通道”(multiple VCs,VC为virtual channel)的机制,以在同一实体 连接电路上实现出多个虚拟的通道;芯片组可通过这些虚拟通道分别接收/ 处理不同的数据存取要求,等效于就如可经由不同的通道来分别接收/处理相 互独立(互不干扰/互不相关)的存取要求。举例来说,如在快速外围设备装 置互连(PCI-E,PCI为peripheral components interconnection,E为Express) 的规格下,就制订有多虚拟通道的基本结构。为能支持多虚拟通道的机制, 芯片组中需增设额外的硬件电路,譬如说,芯片组中要为不同的虚拟通道设 置互相独立的缓冲器,以分别缓冲不同虚拟通道上的数据及信息。同理,要 充分利用多虚拟通道的机制,外围设备本身同样也要能支持多虚拟通道,以 通过多虚拟通道进行数据存取。
不过,在现行的外围设备发展技术下,各种外围设备装置/电路多半都只 能支持单虚拟通道。即使芯片组本身可支持多虚拟通道,但若外围设备仅能 在单虚拟通道下运作,两者间仍然无法实现多虚拟通道的高效能数据存取, 而芯片组中为支持多虚拟通道而增设的硬件则形同浪费。而公知的改进作法 之一,就是在服务单一虚拟通道的外围设备时,将多虚拟通道芯片组中不同 虚拟通道上的各个寄存器串连为一个较大的寄存器,当外围设备的存取要求 得到响应时,这些响应的数据/信息可先寄存于其中一个虚拟通道的寄存器, 若该寄存器存满了则继续寄存于次一虚拟通道的寄存器,以此类推。
然而,上述这种公知技术也有缺点,因为此公知技术仅能增加芯片组中 的缓冲资源,对效能的改进不大,尤其是当芯片组中的地址序列的空间有限 时。如前所述,当芯片组处理外围设备的存取要求时,会先将外围设备要求 要存取数据的地址排入地址序列中,再根据地址序列中的地址依序进行存取 以取得响应,并将响应缓冲于缓冲器后再回传至外围设备。若是芯片组中寄 存地址序列的空间有限,芯片组能服务的存取要求就连带受限,即使将芯片 组中不同虚拟通道的各个缓冲器串连成较大的缓冲器空间来缓冲存取要求的 响应,也不能有效改善芯片组服务的整体效能。

发明内容

因此,本发明的主要目的,即是要提出一种较佳的数据存取技术与相关 装置,使多虚拟通道的芯片组能充分运用其硬件资源来服务单虚拟通道外围 设备,增进外围设备数据存取的效能。
一般来说,现行的中央处理器中都设有快取的存储器;在中央处理器运 作期间,中央处理器可将系统存储器中的一些数据/数据存入至快取中,让中 央处理器可直接运用快取中的数据/数据,不必频繁地存取系统存储器。举例 来说,当中央处理器需要处理系统存储器中某地址的数据时,中央处理器就 可先将该地址的数据读入快取中,以直接由快取中处理该地址的数据;若处 理后需要更新该数据的内容,中央处理器还可直接在快取中更新该地址的数 据内容。不过,此时就会造成快取与系统存储器的数据不一致(incoherent), 因为在快取中,该地址的数据内容已经更新;但在系统存储器中,该地址的 数据还维持更新前的内容。若此时外围设备向芯片组要求要存取该地址的数 据,就有可能存取到不一致的数据。因此,当外围设备向芯片组提出存取要 求时,可一并指明是否要对中央处理器进行窥探(snooping)。若外围设备在 要求芯片组存取某一地址的数据时指明要进行窥探,芯片组就会将该地址传 输至中央处理器,由中央处理器检查该地址的数据是否已经被读入至快取中; 若该地址的数据已经被读入至快取,中央处理器会在快取中进行存取,并向 芯片组响应该存取要求;反之,若该地址的数据未被读入至快取,则中央处 理器会向系统存储器发出存取周期(cycle),由系统存储器存取该地址的数据 并向芯片组响应该存取要求。
在进行数据存取时窥探中央处理器检查快取,可以存取到最新的数据, 但也会降低数据存取的速度。因为,在窥探中央处理器时,若要存取的数据 已经存在快取中,虽可直接由快取中存取数据,但与存取系统存储器相比, 存取快取的延迟时间(latency)会较长,效能较低;另一方面,若窥探中央处 理器后发现所要存取的数据未被存入快取中,还要由中央处理器发出存取周 期来存取系统存储器,这样由中央处理器绕道系统存储器的存取过程,当然 比直接存取系统存储器更耗费时间。事实上,在实际应用中,也有许多的情 况可允许数据存取时不必进行窥探;举例来说,如显示卡这种外围设备要存 取系统存储空间时,大部分的数据存取要求都不会要求要窥探中央处理器。 而在本发明要以多虚拟通道的芯片组服务单虚拟通道的外围设备时,就是根 据外围设备是否指明要进行窥探来分派/序列/处理其存取要求,并利用芯片 组中多虚拟通道的各个缓冲器来分别缓冲接收自中央处理器及系统存储器的 响应。
也就是说,当单虚拟通道的外围设备发出存取要求时,本发明可根据存 取要求中是否要求窥探中央处理器来分派存取要求;若一存取要求是要读取 系统存储空间中某一地址的数据且不需窥探中央处理器,本发明就可将该地 址排入一个特定的地址序列,并使此序列中的地址可以直接传输至系统存储 器,直接由系统存储器响应该存取要求;反之,若外围设备的存取要求是其 他种类的数据存取(譬如说是需要窥探中央处理器的数据读取或写入),数据 存取的地址会被排入另一个地址序列,而此序列中的地址会被传输至中央处 理器以进行窥探及快取的检查。当中央处理器或系统存储器进行数据存取而 有所响应时,本发明则是利用不同虚拟通道的缓冲器来缓冲来自不同元件的 响应:来自中央处理器的响应可利用一个虚拟通道的缓冲器来缓冲处理,来 自系统存储器的响应则利用另一个虚拟通道的缓冲器来缓冲处理,最后再统 一回传至外围设备。
由于公知的芯片组只能维持一个地址序列,故只能将这些存取要求的数 据地址排入同一个地址序列,也只能将这些地址统一地传输至中央处理器进 行窥探,无论外围设备有没有指明需要窥探。由于数据存取的处理过程一定 要经过中央处理器转系统存储器(若外围设备要存取的数据未存入至快取), 故数据存取的效能也较低。相较之下,本发明的芯片组则可利用两个地址序 列,以依照是否要进行窥探来分别将不同需求的数据存取地址排入不同的地 址序列,需要窥探的地址会传输至中央处理器进行窥探,而不需窥探的数据 存取地址就能直接传输至系统存储器,以快速地由系统存储器取得响应,让 那些不需窥探的存取要求能被快速的处理,不需绕道至中央处理器。另外, 中央处理器、系统存储器进行数据存取所产生的响应会被寄存入不同虚拟通 道的缓冲器中,若系统存储器较快地将响应传输至缓冲器中,本发明就可直 接将响应回传至外围设备,有效增进数据存取的整体效能。
附图说明
图1为本发明功能方的示意图。
图2至图7示意的是图1中芯片组在服务单虚拟通道外围设备时的情况。
图8示意的是图1中芯片组在服务单虚拟通道外围设备时的时序。
图9示意的是图1中芯片组在服务多虚拟通道外围设备时的情形。
主要元件符号说明
10         计算机系统                12       中央处理器
14         存储器                    16-18    外围设备
20         芯片组                    22-24    接口电路
26         信号流控管模块            28、M1   序列模块
30A-30B    缓冲器                    M2       分派模块
M3         定序模块                  M4       传输模块
M5a-M5b    调控模块
TLP(.)  交易数据包                 A(.)   地址区域
Ad(.)   地址                       R(.)   响应
t0-t2   时点                       T、Tp  时段

具体实施方式

请参考图1;图1为本发明计算机系统10一实施例的功能方块示意图; 计算机系统10中设有一中央处理器12、一存储器14、一芯片组20及各个外 围设备装置/电路(图1中以外围设备16、18做为代表)。中央处理器12用 来执行程序、运算数据与处理数据;作为系统存储器的存储器14可以是动态 随机存取存储器,以寄存计算机系统10运作期间所需的程序、数据与数据, 提供系统存储空间与资源。外围设备16、18可以是用来处理图形图像输出的 显示卡、处理音效输出的音效卡、可扩充网络连接能的网络卡,或是硬盘 阵列的控制卡等。而芯片组20即电连于各个外围设备16、18与中央处理器 12、存储器14之间,用来管理这些元件之间的数据往来传输。
如前所述,现代的芯片组可通过多虚拟通道的互连规格(如快速外围设 备装置互连,PCI-E)来服务/管理各个外围设备的数据存取要求,而芯片组 20就可以是一个可支持多虚拟通道(譬如说是双虚拟通道)的芯片组。为了 管理各个外围设备的数据存取要求,芯片组20中可设有连接至各种外围设备 的接口电路22、24、一序列模块28、一信号流控管模块26、以及缓冲器30A、 30B;而这两个缓冲器30A、30B就可分别用来支持双虚拟通道所需的缓冲资 源。为了实现本发明的技术,芯片组20中还另设有一分派模块M2、一额外 的序列模块M1、一定序模块M3、一传输模块M4及调控模块M5a、M5b。
在芯片组20中,各个接口电路22、24可分别经由不同规格的总线连接 至各种外围设备16、18;举例来说,外围设备16可以是图形加速端口(AGP, accelerated graphic port)规格的外围设备,而接口电路22则可以是支持 图形加速端口的接口电路。同理,外围设备18可以是快速外围设备装置互连 (PCI-E)规格的外围设备,而接口电路24就可以接收/传输快速互连规格的信 号,服务快速外围设备装置互连的外围设备18。一般来说,如快速外围设备 装置互连(PCI-E)规格这类型的互连协定,外围设备装置与芯片组交换的存取 要求、数据、消息(message)等信息均是打包于数据包中,以数据包的形式来 传递的。而接口电路24就可在接收外围设备的数据包后对数据包进行初步的 处理,或是将要传输至外围设备的数据/信息进行打包。举例来说,在快速外 围设备装置互连(PCI-E)规格中,数据包内会打包有实体层(physical layer)、数据连接层(data link layer)及交易层(transaction layer)等信 息;当外围设备18要求要存取系统存储空间时,就可将数据存取要求以数据 包的形式上传至芯片组20时,而接口电路24就可接收外围设备上传的数据 包,并进行初步的处理(如解打包),将数据包中交易层的数据(也就是交易 数据包(transaction layer packet))取出;而此交易数据包中就会包含有 数据存取的相关信息,如外围设备18要求要在哪些地址存取多少的数据等, 并会以特定的属性数据(attributes)来记录是否需要窥探中央处理器等相关 信息。这些交易数据包会被传输至分派模块M2。另一方面,在完成外围设备 18的数据存取要求后,芯片组20要下传至外围设备18的数据/消息/响应, 也会由接口电路24打包为完整的数据包,再输出/下传至外围设备18。
另外,序列模块28及M1可以是先进先出(FIFO,first in first out) 的寄存器;当外围设备18要求要存取系统存储空间中某些地址的数据时,分 派模块M2就可根据外围设备18的存取要求而将这些地址选择性地寄存于序 列模块28及M1中,以实现出两个不同的地址序列(address queue),以排序 处理外围设备的存取要求。经由信号流控管(traffic control)模块26,序 列模块28及M1中的地址就可分别被上传至中央处理器12及存储器14。在 将序列模块28及M1中的地址上传时,定序模块M3可决定两序列模块中地址 上传的顺序,进行一顺序控制。譬如说,定序模块M3可以先允许控制序列模 28上传其寄存的某些地址,之后才允许序列模块M1上传其内的某些地址。 而调控模块M5a、M5b则根据信号流控管模块26的控制状况(即接收不同信号 输入到信号流控管模块26的使用权时间),来分别协调、控制序列模块28及 M1上传地址的传输比率。举例来说,当序列模块28要将地址上传至中央处 理器12进行窥探时,可能会有其他的外围设备(如外围设备16)同样也要 通过芯片组20的信号流控管模块26而将其消息/地址传输至中央处理器12; 此时调控模块M5a就可决定何者要优先,是否要优先传输序列模块28的地址。 同理,当序列模块M1与其他外围设备皆须通过信号流控管模块26上传地址/ 信息时,调控模块M5b就可控制是何者要优先传输,是否可让序列模块M1优 先传输其地址。
经由信号流控管模块26将地址上传而完成数据存取后,进行数据存取所 响应的数据/消息会再度由信号流控管模块26接收,并将这些数据/消息分别 缓冲于缓冲器30A、30B中。传输模块M4则可切换选择是要将缓冲器30A或 30B中的数据/信息下传至外围设备18,而这些要下传至外围设备18的数据/ 消息就会经由接口电路24的处理后传输至外围设备18。
如前面讨论过的,本发明主要目的之一,就是在以多虚拟通道的芯片组服 务单虚拟通道的外围设备时,利用多虚拟通道芯片组中的硬件资源来加速外 围设备数据存取的效能。而本发明以图1中芯片组20来协助单虚拟通道外围 设备进行数据存取的实施情形即可描述如下。假设外围设备18为一单虚拟通 道的外围设备,当外围设备18要存取系统存储空间时,外围设备18会将存 取要求以数据包形式上传至芯片组20,并由接口电路24解打包为交易数据 包;这些交易数据包中就会包含存取要求的种种相关信息,如要存取哪些地 址的数据,是否需要窥探中央处理器等。而在本发明的较佳实施例中,分派 模块M2就会解码出交易数据包中的信息/属性数据,并根据是否需要窥探的 属性数据而将这些存取要求分类;若交易数据包中的存取要求是在系统存储 空间中读取某些地址的数据且不需窥探中央处理器,分派模块M2就可将这些 地址排入序列模块M1中。反之,若交易数据包中的存取要求是要在系统存储 空间中的某些地址写入数据(不论是否要窥探),或是要在窥探情况下读取系 统存储空间中某些地址的数据,分派模块M2就可将这些地址排入至序列模块 28中。经过分派模块M2的分派后,需要进行窥探的地址就会被排序于序列 模块28中,而这些地址就可依先入先出的原则依序经由信号流控管模块26 而上传至中央处理器12以进行窥探,也就是检查这些地址的数据是否已经被 寄存于中央处理器12的快取。另一方面,排入至序列模块M1而不需窥探的 地址就可经由信号流控管模块26而直接传输至存储器14,直接于存储器14 中进行数据存取,也就不需绕道至中央处理器12进行窥探。
就像前面讨论过的,“系统存储器直接数据存取”会比“经由中央处理器 进行窥探的数据存取”更快,效能更高;但在公知芯片组中,即使外围设备 指明其数据存取不需窥探,由于公知芯片组仅能维持单一地址序列,故公知 芯片组还是只能将此地址序列的地址统一传输至中央处理器进行窥探。相较 之下,本发明则可实际依据需/不需窥探的需求而将外围设备的存取要求分派 于两个不同的地址序列,这样一来,就可将不需窥探的存取要求直接交由系 统存储器来进行。
一般来说,在单一虚拟通道外围设备的存取要求中,不同的存取要求间要 维持固定的顺序(ordering)。举例来说,若一外围设备经由同一虚拟通道先 要求要将数据写入至系统存储空间,再要求将数据由系统存储空间中读出, 芯片组一定要先执行写入要求,再执行读取要求,这也就是所谓的“读取不 能超越(pass)写入”的顺序规则。相对地,若外围设备在同一虚拟通道中先 后发出一个第一读取要求及第二读取要求,则芯片组可以先进行第二读取要 求再进行第一读取要求,换句话说,同一虚拟通道的不同读取要求间并没有 不可互相超越的顺序规则。当本发明的芯片组20服务单一虚拟通道的外围设 备时,虽然可依据需不需窥探的特性而将存取要求分别排入不同的处理序列 (也就是不同的地址序列),但是还是要维持存取要求间的顺序。而定序模块 M3就是用来适当地维持不同存取要求间的顺序。举例来说,若外围设备先发 出一个需窥探的写入要求,再发出一个不需窥探的读取要求,定序模块M3就 会确定该写入要求的写入地址会先由序列模块28传输至中央处理器12,再 使该序列模块M1将该读取要求的读取地址传输至存储器14,使先发出的写 入要求不会被后发出的读取要求超越。
经由序列模块28及M1分别上传至中央处理器12及存储器14的地址会使 中央处理器12及存储器14进行数据存取,并产生数据存取完成后的响应(包 括存取的数据或存取完成(completion)的消息);而此响应就会下传回芯片组 20,经由信号流控管模块26而分别缓冲于缓冲器30A及30B。换句话说,当 本发明的芯片组20在服务单虚拟通道外围设备时,原本用来支持双虚拟通道 的两个缓冲器,就可分别用来寄存来自中央处理器及存储器的响应。而传输 模块M4就可切换选择是将缓冲器30A或30B中的响应下传回外围设备。在本 发明的较佳实施例中,传输模块M4可尽快将缓冲器30A或30B中的响应下传, 举例来说,若缓冲器30B已先取得存储器14的响应,传输模块M4就可优先 将缓冲于缓冲器30B的响应经由接口电路24下传回外围设备。另外,配合缓 冲器30A、30B的运作,分派模块M2也会依据存取要求来分配(allocate)缓 冲器30A及30B中的缓冲资源。举例来说,若某一不需窥探的读取指令要求 要由系统存储空间中的某地址读取某一给定大小/容量的数据,分派模块M2 除了将地址排入序列模块M1外,还会分配缓冲器30B中的缓冲容量,确定缓 冲器30B有足够的存储空间来缓冲该数据。同理,对一需要窥探的读取指令, 分派模块M2除了会将读取地址排入至序列模块28之外,也会分配缓冲器30A 中的缓冲容量。
为了进一步说明本发明以多虚拟通道芯片组服务单虚拟通道外围设备的 情形,请参考图2至图7(并一并参考图1);图2至图7即为本发明芯片组 20运作情形的示意图。为了方便说明,图2至图7中已省略了芯片组20中 的部分元件/方块。首先,如图2所示,假设有一单虚拟通道的外围设备(譬 如说是图1中的外围设备18)依序上传了数个存取要求,接口电路24(图1) 就可将这些存取要求中的交易数据包TLP(1)、TLP(2)至TLP(7)等依序传输至 分派模块M2;而这些交易数据包就记录了存取要求的相关信息。如图2所示, 交易数据包TLP(1)是要求在系统存储空间中的地址区域A(1)进行数据读取 并需进行窥探(图1中标示为R/S,reading/snooping);交易数据包TLP(2) 则要求在地址区域A(2)写入数据并需进行窥探(标示为W/S, writing/snooping)。交易数据包TLP(3)至TLP(5)分别要求在地址区域A(3) 至A(5)进行不需窥探的数据读取(标示为R/NS,reading/non-snooping), 交易数据包TLP(6)则要求在地址区域A(6)进行不需窥探的数据写入(标示为 W/NS)。以此类推,交易数据包TLP(7)则是一不需窥探的读取要求。由于这 些交易数据包都是由单虚拟通道的外围设备发出的,故这些交易数据包中都 会记录其属于同一虚拟通道VC0。
延续图2中的例子,请参考图3。如图3所示,当分派模块M2接收各个 交易数据包TLP(1)至TLP(7)之后,就会根据各存取要求中是否要进行窥探的 属性来将各存取要求所对应的地址分别依序排入至不同的地址序列。由于交 易数据包TLP(3)至TLP(5)、TLP(7)为不需窥探的读取要求,故这些交易数据 包的相关地址Ar(3)至Ar(5)、Ar(7)等会依序被排入至序列模块M1;其他交 易数据包的相关地址Ar(1)、Ar(2)、Ar(6)、Ar(8)等则会被依序排入至序列 模块28(其中,Ar(6)虽不需窥探但要写入,所以仍放入序列模块28交由中 央处理器运作)。其中,地址Ar(n)就是根据各交易数据包TLP(n)中记录的地 址区域A(n)所产生的。
延续图3的情形,请参考图4。如图4所示,排入至序列模块28及M1的 各个地址就可被分别传输至中央处理器12及存储器14。不过,就如前面提 到过的,同一虚拟通道间的交易数据包还是必须维持适当的顺序。由于交易 数据包TLP(2)比交易数据包TLP(3)的时序更早发出且具有较高的顺序(交易 数据包TLP(2)为写入,交易数据包TLP(3)的读取不可超越写入),故序列模 块28中的地址Ar(1)、Ar(2)会比序列模块M1中的地址Ar(3)至Ar(5)具有 更为优先的顺序,而定序模块M3就会先使序列模块28将地址Ar(1)、Ar(2) 传输至中央处理器12,同时间序列模块M1中的地址Ar(3)至Ar(5)就还不能 传输。如图5所示,在将地址Ar(1)、Ar(2)传输至中央处理器12之后,定 序模块M3就可使序列模块M1将地址Ar(3)至Ar(5)传输至存储器14,而序 列模块28也就能将地址Ar(6)、Ar(8)传输至中央处理器12。同样地,为了 要维持顺序关系,定序模块M3会在将地址Ar(6)传输至中央处理器12之后, 才能让序列模块M1将地址Ar(7)传输至存储器14。
在将各个存取要求的地址分别传输至中央处理器12与存储器14时,中央 处理器12与存储器14就会进行对应的数据存取。中央处理器12会检查这些 地址的数据是否已经被读入快取;若是,则存取快取,若否,就会向存储器 14发出存取周期,改于存储器14进行存取。直接由序列模块M1传输至存储 器14的地址就可直接于存储器14中进行数据存取。中央处理器/存储器结束 存取后,就会将存取的响应回传至芯片组20;举例来说,若存取要求是要读 取数据,中央处理器/存储器就会响应其所读取的数据,或是在读取完后响应 一完成(completion)消息。如图6所示,当芯片组20接收响应后,来自中央 处理器的响应可被缓冲寄存于缓冲器30A中,来自存储器14的响应则可被缓 冲寄存于缓冲器30B。由于存储器14中的数据存取会进行地较为快速,故存 储器14可能会较快地将数据存取的响应回传至芯片组20;像在图6中,存 储器14对交易数据包TLP(3)至TLP(5)的响应R(3)至R(5)已经陆续回传至缓 冲器30B;同时,中央处理器12对交易数据包TLP(1)的响应R(1)也将回传 至缓冲器30A。而传输模块M4就能将缓冲器30A、30B中的响应依序输出, 经由接口电路(图1)下传回外围设备。由于各个响应之间不必考虑顺序关 系,基本上传输模块M4可随意于两缓冲器间择一输出其响应,尽快让外围设 备得到响应;如图7所示,若响应R(3)、R(4)已经先缓冲于缓冲器30B的中, 传输模块M4就可优先将响应R(3)、R(4)回传至外围设备,再让缓冲器30A 中的响应R(1)回传;若后续的响应R(5)又已经缓冲于缓冲器30B的中,传输 模块M4可再选择由缓冲器30B输出响应。对各个交易数据包进行上述的程序, 芯片组20也就能一一完成对各个交易数据包的服务。
请参考图8(及图1);图8为本发明芯片组20(图1)在服务单虚拟通道 外围设备时相关数据信号的时序示意图;图8的横轴为时间。当芯片组20接 收外围设备的存取要求时,可将存取要求中的交易数据包取出,并根据交易 数据包中的内容得知外围设备要求要在系统存储空间中存取哪些地址的数 据;像在图8中,芯片组20可由时点t0开始依序取得交易数据包TLP(a)、 TLP(b)、TLP(c)、TLP(d)等;到了时点t1,芯片组20完整取得交易数据包 TLP(a)的内容,就可得知其存取要求的地址Ad(a)。同理,在时点t2,芯片 组20可取得交易数据包TLP(b)的完整内容,并求出其存取要求的地址Ad(b), 以此类推。而分派模块M2(图1)就可根据各个交易数据包是否指明要进行 窥探的属性,将各个交易数据包对应的地址排入序列模块28或M1(图1)。 在图8中,假设交易数据包TLP(a)、TLP(c)为不需窥探的读取要求,而交易 数据包TLP(b)、TLP(d)为需要窥探的读取要求;在这种情形下,交易数据包 TLP(a)、TLP(c)存取要求的地址Ad(a)、Ad(c)就可经由序列模块M1直接传 输至存储器14(图1)。相对地,交易数据包TLP(b)、TLP(d)存取要求的地 址Ad(b)、Ad(d)就可经由序列模块28被传输至中央处理器12。如前面讨论 过的,存储器14可以比中央处理器更快速地响应存取要求,所以存储器14 可以较快地对交易数据包TLP(a)、TLP(c)的存取要求做出响应,并将对应的 响应R(a)、R(c)下传至芯片组20,由芯片组20将其缓冲于缓冲器30B。另 一个缓冲器30A也可在稍后陆续取得绕道至中央处理器所取得的响应R(b)、 R(d)。当缓冲器30A、30B中缓冲有响应数据时,传输模块M4就能尽快地将 这些响应下传回外围设备。像在图8中,传输模块M4可在时点t 3先将缓冲 器30B中的响应R(a)、R(c)下传,再切换至缓冲器30A,将响应R(b)、R(d) 下传。
为了方便与公知技术的比较,图8中也绘出了公知技术在相同情况下进行 数据存取的时序。在本发明中,不需窥探的存取要求可直接由存储器来处理, 故可较快地取得响应,也就具有较佳的数据存取效能,如图8中的时段T所 示意的。相较之下,由于公知技术仅能维持单一地址序列,故交易数据包中 存取要求的地址会被统一传输至中央处理器;就因为公知技术需绕道至中央 处理器进行数据存取,故需等待较长的延迟(latency)时间才能取得响应,如 时段Tp所示意的。
请参考图9(与图1)。图2至图8讨论的是本发明的多虚拟通道芯片组服 务单虚拟通道外围设备的情形;图9示意的则是本发明芯片组20在服务多虚 拟通道外围设备时的情形。如图9所示,由于外围设备是多虚拟通道的外围 设备,故其存取要求的交易数据包中会标示该数据包所属的虚拟通道;在图 9中,标示有VC0的交易数据包属于同一虚拟通道,标示VC1的交易数据包 则同属另一虚拟通道。在接收各交易数据包之后,分派模块M2可统一利用序 列模块28来为这些交易数据包所对应的存取地址排序,并依序上传。定序模 块M3、调控模块M5b也就可停止作用。而数据存取的响应会依照其对应的虚 拟通道而分别缓冲于缓冲器30A及30B。举例来说,对虚拟通道VC0的交易 数据包所取得的响应可缓冲于缓冲器30A,虚拟通道VC1的交易数据包所对 应的响应则可缓冲于缓冲器30B。而这些缓冲的响应就可经由传输模块M4的 安排而下传回外围设备。
一般来说,当外围设备与芯片组开始连接运作时(如开机时),就会进行 一定的交握(shaking-hand)程序以相互确定对方是否可支持多虚拟通道, 而本发明的芯片组就可在此程序中决定是否要支持多虚拟通道的外围设备, 或是要以多虚拟通道的资源来服务单虚拟通道的外围设备。
总结来说,在公知技术以多虚拟通道的芯片组服务单虚拟通道的外围设备 时,无法有效利用芯片组中为多虚拟通道增设的硬件资源,也就无法增进其 存取数据的效能。相较之下,本发明则是依据存取要求是否要进行窥探来分 派数据存取的路径,不需窥探的数据存取要求可直接交由系统存储器处理, 并可利用多虚拟通道增设的硬件资源来缓冲,故本发明不仅可充分利用多虚 拟通道的硬件资源来服务单虚拟通道的外围设备,还能实际增进外围设备数 据存取的效能,进而增进计算机系统整体的效能。本发明芯片组中的各个模 块可以用固件或硬件方式来实现,举例来说,分派模块M2的功能可用硬件的 逻辑电路来实现。
以上所述仅为本发明的优选实施例,凡依本发明权利要求所进行的等效 变化与修改,皆应属本发明的涵盖范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈