多总线管线化数据处理系统及提升其总线效能的方法

文档序号:6652148阅读:198来源:国知局
专利名称:多总线管线化数据处理系统及提升其总线效能的方法
技术领域
本发明涉及一种可改进总线(bus)效能的装置及方法。特别是,一种可缩短输出入装置占用管线总线(pipeline bus)上之交易处理时间的装置及方法。
在管线总线的系统中,待处理的每笔交易(transaction)通常会包含若干个执行层面(phase),例如裁定层(arbitration phase)、请求层(request phase)、窥探层(snooping phase)、响应层(responsephase)及数据层(data phase)等。各层面间可能会有相依性(dependency)执行下一层前须等待目前的层面执行完毕,或者,下一笔交易某个层面的执行须等到目前交易的相同层面执行完毕才可开始被执行。
每个层面会有至少一个代理者(agent)负责,每一层所需要的时间长短决定于该负责的代理者执行完毕的时间。为了更有效率的使用总线并加速每笔交易的完成,系统除了可以尽可能的减低每层执行所需的时间,也可缩短下一笔交易中相同的层面等待执行的时间,如此一来系统的效能便可被大大的提升。
一个系统通常有多个总线,每个总线会和若干个装置(device)相连,装置间常会有数据的往来,并且往来两端不一定要在同一条总线上。当某一个装置有数据需求时,不论目标装置(destination device)是否在同一条总线上,数据需求端会在其相连的总线上启始一笔交易,处理该笔交易的过程,会使该总线处于使用中(occupied)的状态。
有些装置会有高速缓存(cache)用来储存其它装置存储器中的内容,如此,便可让该装置较快取得其它装置存储器的内容。然而,系统必须保持数据的一致性(data coherency),任何存取目标装置的动作,必须被其它高速缓存中包含目标装置数据的装置知道,因为目标装置的数据可能会在其它高速缓存中被改变。存取修改过的高速缓存会引起内部的写回动作(implicit write back)高速缓存被改变的装置必须提供被更新的数据以维持数据的一致性。
一个读或写的交易会包含数据层来进行数据传输的动作,数据层所需时间的长短和传输的数据量有关。一条总线上通常会有多个代理者,每个代理者都需要用总线来传输数据,由于总线是共享的,代理者无法同时进行数据传输的动作,因此要开始执行下一笔交易的数据层须等到目前交易的数据层执行完毕。
一条高度管线化的总线会有多个代理者共享,总线上数据传输的数量也会很多,因此,总线的频宽(bandwidth)在影响系统效能上扮演了一个很重要的角色。总线的频宽会受传输数据速度(operatingfrequency)及数据宽度(data width)等因素所影响,然而这些因素无法无限制的改进,因此,提高总线效率是增进系统效能的最好方法。增加总线使用率、管线化交易、减少总线上的数据传输均是提高总线效率的方法。在已管线化的总线中,减少总线上的数据传输便是唯一的方法,然而减少系统须传输的数据量是不可能的,因此,可以减少总线上数据传输的前提便是存在另一个传输数据的管道。


图1是一个传统的系统架构,包含一个处理器101、一个处理器总线102、一个输出入总线103及一个系统存储器104;一个输出入/处理器总线桥(I/O and processor bus bridge)105,简称总线桥一,连接了输出入总线103及处理器的总线102,一个系统存储器/处理器总线桥(system memory and processor bus bridge)106,简称总线桥二,提供了一个系统存储器104和处理器总线102间数据传输的管道;处理器101通常包含一个高速缓存。在很多应用中,输出入总线103上的装置会经常存取系统存储器104,处理器101必须知道任何输出入总线103上的装置对系统存储器104的需求,以便维持数据的一致性。
当输出入总线103上的装置存取系统存储器104中的数据,最新的数据可能存在系统存储器104中或处理器的高速缓存中,因此,必须在处理器总线102上启始一项需求,使处理器101窥探(snoop)相对应的高速缓存。总线桥一105负责传递输出入总线103的需求,并发出交易到处理器总线102上。在看到输出入总线103的需求后,处理器101会窥探输出入总线103所需数据的高速缓存是否被改变,然后,处理器101会将窥探的结果通知总线桥一105及总线桥二106。根据窥探的结果,总线桥二106才在处理器总线102及系统存储器104间传输数据。总线桥一105也会在处理器总线102及输出入总线103间传输数据。
输出入总线103的需求可能是读取数据或写入数据的需求。读取数据的流程如图2所示,包含以下几个步骤1.输出入总线103上的一个装置发出数据读取需求。
2.经由总线桥一105发出数据读取需求至处理器汇流排102。
3.处理器101必须窥探被需求数据所在的高速缓存是否被修改。
4.如果该高速缓存被修改,则会引发内部写回的动作,处理器101会驱动写回的数据到处理器总线102上;如果该高速缓存没有被修改,则总线桥二106会将数据由系统存储器104送至处理器总线102。
5.总线桥一105由处理器总线102取得数据并将其送至输出入总线103。
6.如果被需求数据所在的系统高速缓存有被修改,则汇流排桥二106须将处理器101所提供的新数据送回系统存储器104。
图3是一个由输出入装置发出数据读取需求,再由处理器101发出数据读取需求的例子,本图系依据P6外部总线规格(P6 external busspecification)来表示。输出入装置发出的数据读取需求在第三个脉冲(clock)开始执行(BPRI#及ADS#皆为高电位),处理器101发出的数据读取需求在第六个脉冲开始执行(BPRI#为高电位,ADS#为低电位)。处理器101窥探第一个需求的结果(在第七个脉冲HITM#为低电位),显示第一个需求并没有读取到被修改的高速缓存数据,因此,总线桥二106会响应第一个需求,开始在第十二个脉冲传输数据(DRDY#为高电位)。在第十六个脉冲会响应第二个需求并开始传输数据。
图4和图3相似,除了输出入装置发出的需求读取到被修改的数据(在第七个脉冲显示窥探的结果HITM#为高电位),一个内部的写回动作在第十一个脉冲被执行。在第十六个脉冲会响应处理器101的需求并开始传输数据。
写入数据的流程如图5所示,包含以下几个步骤1.输出入总线103上的一个装置发出写入数据的需求。
2.经由总线桥一105发出数据写入需求至处理器总线102。
3.总线桥一105驱动输出入总线103送来的数据至处理器总线102。
4.总线桥二106收到该数据并等待处理器101的窥探结果。
5.如果该需求数据所在的系统高速缓存有被修改,则处理器101会将被修改的数据写回,总线桥二106会把要写回的数据和先前送来的数据结合,再写回系统存储器104。如果该需求数据所在的系统高速缓存没有被修改,则总线桥二106直接将收到的数据写到系统存储器104。
图6是一个由输出入装置发出数据写入需求,再由处理器101发出数据写入需求的例子。输出入装置发出的数据写入需求在第三个脉冲(clock)开始执行(BPRI#及ADS#皆为高电位),处理器101发出的数据写入需求在第六个脉冲开始执行(BPRI#为低电位,ADS#为高电位)。处理器101窥探第一个需求的结果,显示第一个需求并没有读取到被修改的高速缓存数据,因此,响应第一个需求并开始在第八个脉冲传输数据(DRDY#为高电位),在第十三个脉冲响应第二个需求并开始传输数据(DRDY#为高电位)。
图7和图6相似,除了输出入装置发出的需求写到被修改的数据(在第七个脉冲显示窥探的结果HITM#为高电位),第一个需求的数据会在第十一个脉冲被开始传送,窥探的结果所引发的数据写回在第十四个脉冲开始。总线桥二106结合这两笔数据,并将其中最新的一笔送至系统存储器104。在第十九个脉冲会响应第二个需求并开始传输数据。
总线桥一105发出的读或写的交易会引发数据传输,并且在传输数据的过程会占据数据总线,因此,当目前交易的数据层未被完成前,接下来交易中的数据层便无法开始。如果下一笔交易是处理器101发出的,处理器101在得到数据前要等待一段时间,则处理器的效能便会降低。如果该总线高度管线化并很忙碌,则交易延迟的时间将会累积并严重影响系统效能,这种情形在输出入总线103上的装置高度需要存取系统存储器104时特别明显。因此,提升处理器效能最好的方法,便是减低输出入总线103上装置发出的交易中的数据层的时间,然而,任何减低处理器总线102上数据传输的新方法,都必须符合数据一致性的需求。
本发明提出一种可最小化输出入装置占用处理器总线频宽的装置及方法,以减低输出入总线上的装置发出的交易中数据层所需的时间。本发明的主要目的是提供两个总线桥间一条直接的通路,数据可直接经由这条通路传输,如此一来便可减低总线的上的数据传输。本发明的另一个目的是在使用直接通路存取系统存储器的架构下,提供提升总线效能的方法。另外,本发明也提供可以维持数据一致性的系统存储器存取方法。
同时,本发明的多总线管线化数据处理系统,包含至少一个在处理器总线上的处理器、一个在输出入总线上的输出入装置、一个系统存储器、一个总线桥(总线桥一)连接处理器总线及输出入总线、一个总线桥(总线桥二)连接处理器总线及系统存储器,及一条连接两个总线桥的通路。
当输出入总线上的输出入装置发出读取系统存储器数据的需求时,总线桥一会发出一个假的(null)数据读取需求到处理器总线,以便处理器做窥探的动作,该需求也经由两个总线桥间的通路交由总线桥二来传递。如果窥探的结果为该需求没有读取到被修改的高速缓存数据,总线桥二便将存储器中的数据经由两者间的通路直接送到总线桥一,待该数据传送到输出入装置后便完成此需求。如果窥探的结果为该需求读取到被修改的高速缓存数据,处理器会驱动修改过的数据到处理器总线上,再经由总线桥二写回系统存储器,总线桥一也由处理器总线取得数据并传送给输出入装置。
当输出入总线上的输出入装置发出数据写入系统存储器的需求时,总线桥一同样会发出一个假的数据读取需求到处理器总线,以便处理器做窥探的动作,该需求也经由两个总线桥间的通路交由总线桥二来传递,然后要写入的数据也由总线桥一经由直接通路写到总线桥二。如果窥探的结果为该需求没有写到被修改的高速缓存的数据,总线桥二便将数据直接写到系统存储器;如果窥探的结果为该需求写到被修改的高速缓存数据,处理器会驱动修改过的数据到处理器总线上,总线桥二会将要写回的数据和先前送来的数据结合,再将结合的结果写到系统存储器。
图1为一传统系统的方框图;图2为一传统系统中输出入总线上的装置读取需求的处理流程图;图3为两个连续的读取需求的时序图。第一个需求是输出入总线上的装置所发出,第二个需求是由一个P6处理器所发出。第一个需求并未读取到处理器中修改过的高速缓存的数据。本图系依据传统系统中P6总线协议(P6 bus protocol)来表示。
图4为两个连续的读取需求的时序图。第一个需求是输出入总线上的装置所发出,第二个需求是由一个P6处理吕所发出。第一个需求读取到处理中修改过的高速缓存数据。本图系依据一传统系统中P6总线协议来表示。
图5为一传统系统中输出入总线上的装置写入需求的处理流程图;图6为两个连续写入需求的时序图。第一个需求是输出入总线上的装置所发出,第二个需求是由一个P6处理器所发出。第一个需求并未写到处理器中修改过的高速缓存的数据。本图系依据一传统系统中P6总线协议来表示。
图7为两个连续的写入需求的时序图。第一个需求是输出入总线上的装置所发出,第二个需求是由一个P6处理器所发出。第一个需求写到处理器中修改过的高速缓存的数据。本图系依据一传统系统中P6总线协议来表示。
图8为本发明的系统方框图,包含两总线桥间可以传输数据的直接通路。
图9为本发明中输出入总线上的装置读取需求的处理流程图;图10为本发明中两个连续的读取需求的时序图。第一个需求为输出入装置发出假数据读取需求,第二个需求是处理器所发出。第一个需求并未读取到处理器中修改过的高速缓存的数据。
图11为本发明中输出入总线上的装置写入需求的处理流程图;图12为本发明中两个连续的读取需求的时序图。第一个需求为输出入装置发出假数据读取及一个无效的需求,第二个需求是处理器所发出。第一个需求并未读取到处理器中修改过的高速缓存的数据。
图13为三发明中两个连续的读取需求的时序图。第一个需求为输出入装置发出假数据读取及一个无效的需求,第二个需求是处理器所发出。第一个需求读取到处理器中修改过的高速缓存的数据。
兹配合附图、实施例之详细说明及专利申请保护范围,将上述及本发明之其它目的与优点详述于后。
根据图8,本发明的系统架构,包含一个处理器101、一个处理器总线102、一个输出入总线103及一个系统存储器104;一个输出入/处理器总线桥(总线桥一)105连接了输出入总线103及处理器的总线102,一个系统存储器/处理器总线桥(总线桥二)106提供了一个系统存储器104和处理器总线102间数据传输的管道。处理器101通常包含一个高速缓存。在总线桥一105和总线桥二106间建构一条通路以提供较快的数据传输管道,便可以不需要用到处理器总线102来传输数据。然而,存取系统存储器104的需求,必须被处理器101知道以维持数据的一致性,因为处理器中的高速缓存可能包含被需求的数据内容,该内容可能已被处理器更新。因此,处理器总线102上的窥探动作仍是必要的。根据图8的架构,新的处理器总线102的使用方法将描述如后。
不论输出入总线上任何一个装置发出给系统存储器数据传输的需求,总线桥一105必须完成下述两个动作1.通知总线桥二106有数据传输的需求。
2.产生一个假数据读取交易(所有字节的致能位(enable bit)均设为0)到处理器总线102。
这两个动作不相关因此可同时进行。动作1的目的是要通知总线桥二106有数据要进出系统存储器104,因此,存取动作(读或写)、数据长度和数据地址(address)在动作一中都是必要的信息。动作2的假数据读取交易的目的是为了让处理器窥探该交易读 取的数据,因此,只需要数据地址的信息。输出入总线103上的装置发出数据读取需求的新流程如图9。完成一个在输出入总线103的读取需求包含下列步骤1.数据读取需求由输出入总线103上的装置发出。
2.总线桥一105发出一个假数据读取需求到处理器总线102,并直接传递输出入总线103上的需求到总线桥二106。假数据读取需求在这里指的是数据读取需求但需要传输的数据长度为零。
3.如果该需求读取到处理器中修改过的高速缓存数据,会引发内部的写回动作,处理器101会驱动写回的数据到处理器总线102;如果没有读取到修该过的数据,则数据总线便可立即给下一笔交易使用。
4.如果读取到修改过的数据,总线桥一105会由处 理器总线102取得数据;否则,由总线桥二106取得数据。
5.总线桥一105传输数据至输出入总线103。
将本发明的技术应用在图3,结果显示了不同的讯号,如图10。图10中输出入装置和处理器101发出需求的脉冲和图3完全一样。第一个需求占据处理器总线102来传输数据的时间(图3中的第十二脉冲到第十五脉冲),因为数据传输不再利用处理器总线102,在图10便被移除了。因此,如果输出入总线103上的装置发出的读取需求,需要的数据没有在处理器101的高速缓存被修改过,则处理器总线102便不会在数据层中等待数据传输完毕,因为数据直接经由总线桥一105和总线桥二106的通路来传输。如此一来,第二个需求的数据传输便可在第十二个脉冲开始,比图3早了四个脉冲。
如果由总线桥一105送出的第一个需求,读取了处理器101的高速缓存所修改过的数据,如图4的例子,利用本发明的方法,处理器总线102运作的方式和图4一样。处理器101驱动写回的数据到处理器总线102,并由总线桥一105传输数据到输出入总线103上的装置。处理器总线102上的数据层所占据的时间和图4一样,输出入总线上读取数据需求的延迟也是一样。因此,在本发明中,不论需求的数据内容是否在高速缓存中被修改,输出入总线上数据读取需求的延迟不会比原来的方法长,也就是本发明不会对输出入总线造成任何副作用;如果需求的数据是未被修改的情形,则下一笔交易的数据层可更早被开始,处理器的效能可因此被改进,系统整体效能也因而会改进。
输出入总线103上的装置发出数据写入需求的新流程如图11,完成该需求包含下列步骤1.数据写入需求由输出入总线103上的装置发出。
2.数据写入需求及该数据由总线桥一105直接送到总线桥二106,不须再经由处理器总线102。
3.总线桥一105同时发出一个假数据读取需求到处理器总线102。假数据读取需求在这里指的是传输长度为零的数据,并且,处理器总线102上的假数据读取需求是一个「读取并无效」(read and invalidate)的需求,而不是真的存储器读取的需求。「读取并无效」的需求会使相对应的高速缓存暂时无效,以便维持数据的一致性。
4.如果该需求存取到高速缓存修改过的数据,则处理器101会驱动写回的数据到处理器总线102;如果没有读取到修该过的数据,处理器总线102上便不会有数据的传输。
5.总线桥二106传输数据到系统存储器104。
将本发明的技术应用在图6,结果显示了不同的讯号,如图12。图6中第一个需求占据处理器总线102来传输数据的时间,由第八脉冲到第十一脉冲,第一个需求并没有写到被修改的高速缓存数据,因此数据直接经由总线桥一105和总线桥二106的通路来传输,处理器总线102不再传输数据。处理器总线102在第十脉冲后便被释出(release),下一笔交易的数据层可在第十二脉冲开始,比图6早了一个脉冲,系统效能因而提升。
将本发明的技术应用在图7,第一个需求写到被修改的高速缓存数据,结果显示了不同的讯号,如图13。第一个需求的数据由总线桥一105和总线桥二106的通路来传输,窥探结果所引发的写回数据由处理器101传输到总线桥二106。如果写入需求只和部分高速缓存的数据重复(partial line transfer),则欲写入的数据需和窥探结果所引发的写回数据合并后,再写入系统存储器中;如果写入需求完全和高速缓存的数据重复(full line transfer),则忽略窥探结果所引发的写回数据,仅将欲写入的数据写入系统存储器中。
在本发明中,总线桥二106保存总线桥一105及处理器101而来最新的数据。因为第一个需求的数据并未占据处理器总线102,因此图7中写回数据的传输须等待第一个需求数据传输完毕的情形便不会发生,写回数据的传输可在第十一脉冲开始,比图7提早两个脉冲,因而数据层所需的时间便缩短了。输出入总线103在图7及图13没有不同,但处理器总线102变的更有效率,系统整体效能也因此提升。
根据本发明,处理器总线102上数据传输节省的时间如以下表格。本实验依据P6外部总线规格,并且!HITM#指数据需求未存取到被修改的高速缓存,HITM#指数据需求存取到被修改的高速缓存。
以上所述,仅为本发明之较佳实施例而已,当不能以此限定本发明实施之范围。及大凡依本发明申请专利范围所做之等效变化与修饰,皆应属本发明专利涵盖之范围内。
权利要求
1.一种多总线管线化数据处理系统,该系统包含有一处理器总线;至少一个处理器和该处理器总线相连;一输出入总线;一个总线桥一连结该处理器总线及该输出入总线;一个系统存储器;一个总线桥二连结该处理器总线及该系统存储器;其特征在于还有一条通路连结该总线桥一及该总线桥二。
2.一种在多总线管线化数据处理系统中提升总线效能 的方法,其特征在于该多总线管线化数据处理系统包含至少一个处理器在处理器总线上、第一个总线桥连结一个输出入总线及该处理器总线、第二个总线桥连结一个系统存储器及该处理器总线、一条通路连结该第一总线桥及该第二总线桥;该方法包含有下列步骤(a)读取该系统存储器的数据读取需求,由该输出入总线上的一个装置,经由该第一总线桥发出;(b)将该数据读取需求暂置于该第一总线桥;(c)经由该通路通知该第二总线桥该数据读取需求,同时,发出一个假数据读取需求至该处理器总线;(d)在该处理器总线上进行数据窥探的动作,同时,由该系统存储器取得所需求的数据到该第二总线桥;(e)经由该通路将该第二总线桥上的数据传输到该第一总线桥,并且如果步骤(d)的窥探结果为没有读取到在高速缓存中被修改过的数据,则完成该数据读取需求,否则继续进行步骤(f);(f)将窥探结果引发的写回数据由该处理器送到该处理器总线;(g)将该窥探结果引发的写回数据由该处理器总线传输到该第一总线桥;以及,(h)将该窥探结果引发的写回数据由该处理器总线经由该第二总线桥写回该系统存储器。
3.如权利要求2所述之一种在多总线管线化数据处理系统中提升总线效能的方法,其特征在于,该假数据读取需求为一个读取长度为零的数据的存储器读取指令。
4.一种在多总线管线化数据处理系统中提升总线效能的方法,其特征在于该多总线管线化数据处理系统包含至少一个处理器在处理器总线上、第一个总线桥连结一个输出入总线及该处理器总线、第二个总线桥连结一个系统存储器及该处理器总线、一条通路连结该第一总线桥及第二总线桥;该方法包含有下列步骤(a)写入该系统存储器的数据写入需求,由该输出入总线上的一个装置,经由该第一总线桥发出;(b)将该数据写入需求及欲写入的数据暂置于该第一总线桥;(c)经由该通路通知该第二总线桥该数据写入需求,同时,发出一个假数据读取需求到该处理器总线;(d)在该处理器总线上进行数据窥探的动作,同时,将暂置于该第一总线桥欲写入的数据送到该第二总线桥;(e)将该欲写入的数据由该第二总线桥送到该系统存储器,并且如果步骤(d)的窥探结果为没有写到在高速缓存中被修改过的数据,则完成该数据写入需求,否则继续进行步骤(f);(f)将窥探结果引发的写回数据由该处理器送到该处理器总线;(g)结合在该处理器总线上的该窥探结果引发的写回数据及该欲写入的数据;以及,(h)将该结合的数据由该第二总线桥写回该系统存储器。
5.如权利要求4所述之一种在多总线管线化数据处理系统中提升总线效能的方法,其特征在于,在步骤(g)中,如果该写入需求只和部分高速缓存的数据重复,则该写入的数据需和该窥探结果所引发的写回数据合并后,再写入该系统存储器中;如果该写入需求完全和高速缓存的数据重复,则忽略该窥探结果所引发的写回数据,仅将该写入的数据写入该系统存储器中。
6.如权利要求4所述之一种在多总线管线化数据处理系统中提升总线效能的方法,其特征在于,该假数据读取需求为一个「读取且无效」的指令,使相对应的高速缓存无效以维持数据的一致性。
全文摘要
一种多总线管线化数据处理系统,包含一条通路连结第一总线桥及第二总线桥,第一总线桥连结输出入总线及处理器总线,第二总线桥连结系统存储器及处理器总线。该通路允许输出入总线上的输出入装置存取系统存储器时,不须经由处理器总线,以此增进总线使用效率,并增进系统效能。
文档编号G06F13/38GK1371061SQ01103838
公开日2002年9月25日 申请日期2001年2月22日 优先权日2001年2月22日
发明者张志宇, 陈灿辉 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1