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

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

Info

Publication number
CN1301467C
CN1301467C CNB2005100543263A CN200510054326A CN1301467C CN 1301467 C CN1301467 C CN 1301467C CN B2005100543263 A CNB2005100543263 A CN B2005100543263A CN 200510054326 A CN200510054326 A CN 200510054326A CN 1301467 C CN1301467 C CN 1301467C
Authority
CN
China
Prior art keywords
data
access
processing unit
central processing
chipset
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.)
Active
Application number
CNB2005100543263A
Other languages
English (en)
Other versions
CN1648880A (zh
Inventor
苏俊源
赖瑾
蔡光爵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1648880A publication Critical patent/CN1648880A/zh
Application granted granted Critical
Publication of CN1301467C publication Critical patent/CN1301467C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

计算机系统内部数据存取方法与相关装置
技术领域
本发明提供一种计算机系统内部数据存取的方法或相关装置,特别指一种根据存取要求中窥探(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)规格中,数据包内会打包有实体层(physicallayer)、数据连接层(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的功能可用硬件的逻辑电路来实现。
以上所述仅为本发明的优选实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。

Claims (12)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52259304P 2004-10-19 2004-10-19
US60/522,593 2004-10-19

Publications (2)

Publication Number Publication Date
CN1648880A CN1648880A (zh) 2005-08-03
CN1301467C true CN1301467C (zh) 2007-02-21

Family

ID=34885922

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100543263A Active CN1301467C (zh) 2004-10-19 2005-03-08 计算机系统内部数据存取方法与相关装置

Country Status (3)

Country Link
US (1) US7472232B2 (zh)
CN (1) CN1301467C (zh)
TW (1) TWI277872B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464297C (zh) * 2007-01-26 2009-02-25 北京中星微电子有限公司 一种实现软件移植的方法、系统及芯片
US20080244118A1 (en) * 2007-03-28 2008-10-02 Jos Manuel Accapadi Method and apparatus for sharing buffers
US8654634B2 (en) * 2007-05-21 2014-02-18 International Business Machines Corporation Dynamically reassigning virtual lane resources
CN102890640A (zh) * 2011-07-18 2013-01-23 鸿富锦精密工业(深圳)有限公司 虚拟机管理系统及方法
CN110322979B (zh) * 2019-07-25 2024-01-30 美核电气(济南)股份有限公司 基于fpga的核电站数字控制计算机系统核心处理单元
CN114443532B (zh) * 2022-02-08 2024-09-03 广州小鹏汽车科技有限公司 一种总线控制方法、装置、车辆、存储介质
US12020037B2 (en) * 2022-06-29 2024-06-25 Microsoft Technology Licensing, Llc Centralized control of lighting-enabled peripheral devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205517B1 (en) * 1996-04-10 2001-03-20 Hitachi, Ltd. Main memory control apparatus for use in a memory having non-cacheable address space allocated to DMA accesses
CN1474969A (zh) * 2000-09-29 2004-02-11 英特尔公司 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
CN1504901A (zh) * 2002-12-05 2004-06-16 �Ҵ���˾ 用于动态管理保存的处理器状态的方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822611A (en) * 1995-06-05 1998-10-13 Donley; Greggory D. Method for cycle request with quick termination without waiting for the cycle to reach the destination by storing information in queue
US20040172493A1 (en) * 2001-10-15 2004-09-02 Advanced Micro Devices, Inc. Method and apparatus for handling split response transactions within a peripheral interface of an I/O node of a computer system
US20040103248A1 (en) * 2002-10-08 2004-05-27 Hass David T. Advanced telecommunications processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205517B1 (en) * 1996-04-10 2001-03-20 Hitachi, Ltd. Main memory control apparatus for use in a memory having non-cacheable address space allocated to DMA accesses
CN1474969A (zh) * 2000-09-29 2004-02-11 英特尔公司 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
CN1504901A (zh) * 2002-12-05 2004-06-16 �Ҵ���˾ 用于动态管理保存的处理器状态的方法和系统

Also Published As

Publication number Publication date
US20060085606A1 (en) 2006-04-20
TW200613990A (en) 2006-05-01
US7472232B2 (en) 2008-12-30
CN1648880A (zh) 2005-08-03
TWI277872B (en) 2007-04-01

Similar Documents

Publication Publication Date Title
CN1301467C (zh) 计算机系统内部数据存取方法与相关装置
CN100595720C (zh) 用于基于集线器的存储系统中直接存储器访问的设备和方法
JP3946873B2 (ja) ディスクアレイ制御装置
US8155134B2 (en) System-on-chip communication manager
US20050027900A1 (en) Method and apparatus for a shared I/O serial ATA controller
TW201741887A (zh) 用於具有可重配置多端口的快捷外設互聯標準儲存系統的服務品質感測輸入輸出管理的方法、系統及設備
JPH09223089A (ja) 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置
WO1990007154A1 (en) Memory address mechanism in a distributed memory architecture
CN1070751A (zh) 多媒体信号处理器计算机系统
KR101003102B1 (ko) 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치
JP2002049582A (ja) 再構成可能ファーストイン・ファーストアウト機構
US10007625B2 (en) Resource allocation by virtual channel management and bus multiplexing
US7836211B2 (en) Shared input/output load-store architecture
CN1109307C (zh) 在处理器单元之间交换数据的系统
CN115129621B (zh) 一种内存管理方法、设备、介质及内存管理模块
US5894586A (en) System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit
WO2004099995A2 (en) Hierarchical memory access via pipelining
CN1656470A (zh) 芯片处理器间的控制平面通信
US11029847B2 (en) Method and system for shared direct access storage
CN1666185A (zh) 支持包处理的可配置的多端口多协议网络接口
CN1902611A (zh) 数据处理系统
EP1533690A2 (en) Distributed task queues in a multiple-port storage system
JP2004527024A (ja) 多重チャネルを有するデータメモリアクセス用のスケジューラ
US7817651B2 (en) Method and apparatus for controlling storage of data
CN1783840A (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
CI01 Correction of invention patent gazette

Correction item: Inventor

Correct: Cai Zhaojue

False: Cai Guangjue

Number: 08

Volume: 23

CI03 Correction of invention patent

Correction item: Inventor

Correct: Cai Zhaojue

False: Cai Guangjue

Number: 08

Volume: 23

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: CAI GUANGJUE TO: CAI ZHAOJUE

ERR Gazette correction

Free format text: CORRECT: INVENTOR; FROM: CAI GUANGJUE TO: CAI ZHAOJUE