用于经处理器接口总线转发数据的方法和装置的制作方法

文档序号:6416651阅读:195来源:国知局
专利名称:用于经处理器接口总线转发数据的方法和装置的制作方法
技术领域
本发明一般地涉及转发数据,并且特别地涉及经处理器接口总线转发数据。
当前,各种总线协议被典型地用来处理对包含不在主存储器中保存的可高速缓存或非高速缓存数据的本地总线从器件的数据转发。一个独立的总线协议典型地被用于直接把保存在主存储器中的可高速缓存数据从一个高速缓冲存储器转发到另一个。由于各种总线协议中的每一个有一套不同的控制引脚,在一个系统内使用的协议越多,需要的控制引脚也越多,从而增加了系统成本和复杂度。因此,需要一种既支持高速缓冲存储器到高速缓冲存储器的转发器又支持包括本地总线从器件的数据转发器的更有效和更低成本的总线协议。
通常,本发明涉及经处理器接口总线转发数据的方法和装置。在一个实施例中,该发明涉及在一个与处理器接口总线通信的从器件之间转发数据,其中处理器接口总线与主器件通信。该方法包括步骤从处理器接口总线接收一个由主器件提供的地址,在处理器接口总线上声明一个第一信号指示从器件正在服务相关的数据转发处理,并在处理器接口总线上声明一个第二信号来指示使用处理器接口总线来转发的数据是否被与处理器接口总线通信的主存储器控制器存储到主存储器中。数据之后在从器件和处理器接口总线之间被转发。
在另一实施例中,该方法涉及在一个与处理器接口总线通信的从器件之间转发数据,其中处理器接口总线与主器件通信。该方法包括从处理器接口总线接收一个由主器件提供的地址,在处理器接口总线上声明一个第一信号指示从器件正在服务相关的数据转发处理,并在处理器接口总线上声明一个第二信号来指示使用处理器接口总线来转发的数据是否被与处理器接口总线通信的主存储器控制器存储到主存储器中。在处理器接口总线上声明一个第三信号来指示从器件准备好执行数据转发处理。数据之后在从器件和处理器接口总线之间被转发。
还是在另一实施例中,该方法涉及从一个外部源转发数据到与许多个器件通信的处理器接口总线。该方法包括从外部数据源接收数据和在响应处理器接口总线的控制器中的相关存储器地址。在确定这个相关存储器地址是否在用于许多个器件的存储器范围内之后,在处理器接口总线上起动一个写操作,并且处理器接口总线被监控用于来自许多个器件的许多个响应。来自许多个器件的子集的数据准备好信号经处理器接口总线被接收。处理器接口总线被控制,并且允许处理器接口总线接入到许多个器件的子集。从外部数据源接收的数据之后被转发到处理器接口总线。
在本发明的一个实施例中,装置是一个包括处理器接口总线,响应处理器接口总线的存储器控制器,响应存储器控制器的存储器器件,作为一个主器件工作的响应处理器接口总线的第一器件和第二器件的数据处理系统。第二器件作为一个从器件工作响应处理器接口总线,并在处理器接口总线上声明一个第一信号指示从器件正在服务一个的数据转发处理。第二器件在处理器接口总线上声明一个第二信号来指示使用处理器接口总线转发的数据是否被与处理器接口总线通信的主存储器控制器存储到存储器中。
在另一实施例中,装置是一个包括处理器接口总线,响应处理器接口总线的存储器控制器,响应存储器控制器的存储器器件,作为一个主器件工作的响应处理器接口总线并具有第一高速缓冲存储器的第一器件。数据处理系统也包括响应处理器接口总线的作为一个从器件工作并具有第二缓冲存储器的第二器件。处理器接口总线遵照总线协议来工作,其中总线协议处理包括在第一器件的第一缓冲存储器存储器和第二器件的第二缓冲存储器存储器之间转发数据的第一操作和包括在第一和第二器件中的一个和连到处理器接口总线的本地总线从器件之间转发数据的第二操作。


图1是示意根据本发明的一个实施例的一个数据处理系统的方框图。
图2是示意图1的总线的总体图。
图3是以图表方式示意在图1的数据处理系统内构成处理器接口总线的总线阶段。
图4是示意在图3的总线阶段106,108和110内执行的一种特定方法的流程图。
图5是示意在图3的总线阶段104,106,108和110期间在总线和一个从者之间通信的一种方法的流程图。
图6是示意图5的数据转发步骤的流程图。
图7是示意根据本发明的一个实施例的广播方法的流程图。
图1示意包含都连到处理器接口总线34的第一微处理器12,第二微处理器14,附加微处理器16(如果需要),一个三级高速缓存(levelthree Cache)18,其它从器件20,主从器件22和片设置32的数据处理系统10。第一微处理器12连到第一二级高速缓存(level two Cache)24,第二微处理器14连到第二二级高速缓存26。微处理器16连到二级高速缓存28。存储器30连到主从器件22。主存储器36连到片设置32。片设置32包括地址控制器44,数据控制器46和一个用于主存储器36的存储器控制器(未示出)。片设置32也包括一个总线仲裁单元48。片设置32也经由总线38连到输入/输出器件40和其它总线模块42。在一个实施例中,总线38是一个外围I/O总线。在另一个实施例中可以包括地址,数据和作为片设置32外部的独立单元的存储器控制器,或也可包括在一单个控制器内集成的所有这些控制器。片设置32功能类似于在现代台式计算机系统中可发现的片设置。因此,片设置的特定功能和设计取决于它被用于的系统。在图1中所示的数据系统10的操作将参考图2-7进一步描述。
图1的总线34的一个特定实施例在图2中示意。在一个实施例中,总线34包含2个部分一个地址总线50及其相关控制和特征比特和具有相关控制比特的数据总线60。在这个实施例中,地址和数据总线是分离的,但在另一实施例中,地址和数据可以连到一单个总线结构。另外的实施例也可以把总线分成各个不同部分,其中控制与控制和特征是单独的总线或连接在一起。总线尺寸取决于用于数据处理系统10所需的地址比特,数据比特和控制和特征比特的数目,这样可因系统而异并可作相应设计。处理器总线34功能类似于在现代台式计算机系统中可发现的那些总线。在本技术中的那些普通技术人员应注意总线设计取决于数据处理系统需求而改变。例如,为了实现所要求的总线协议,需要不同的控制信号用于处理器总线。
图3示意发生在图1的数据处理系统10内的一个高级处理流100。根据所发生的相对时间段的不同,处理流包括各个总线阶段102,104,106,108和110。在地址仲裁阶段102期间,位于片设置32的仲裁单元48确定请求地址总线50的那些器件中的哪个器件接收地址总线50的所有权用于处理。在另一实施例中,仲裁单元48可以作为一个独立单元位于片设置32外部。一旦仲裁单元48作了一个判决,在地址转发阶段104期间,拥有总线所有权的那个器件,即主器件,在地址总线50上放置一个主地址和它的相关控制比特。在地址(探查(snoop))响应阶段106,连到总线34的其它器件探查,即监控,地址总线50来确定他们是否需要响应主地址。对于一个给定的处理,请求处理的器件变为主器件,响应地址的器件变为为主器件的处理请求服务的从器件。
在数据仲裁阶段108,包含与主器件地址相关联的数据的器件之后请求对数据总线60的所有权。对数据总线60的所有权允许包含数据的器件在处理期间控制在数据总线60上的信息。一旦仲裁单元48将数据总线60授权给请求数据总线的那(几)个器件,数据转发阶段110出现,数据在主器件和从器件之间被转发。注意在另一实施例中,一些总线阶段根据数据处理系统10的设计要求可能同时出现或在时间上先后出现。而且,在另一实施例中,用于后续处理的总线阶段可能与用于前面处理的总线阶段重叠(或称流水线型)。而且,用于不同处理的数据转发阶段相对于他们的相关地址阶段可被重新排序。
图4示意描述运用片设置32经总线34的一个示意性数据转发处理的一个流程图200。流程图200以具有判决菱形202的图3的探查响应周期106开始。本地总线器件指连到总线34的那些器件,象器件22,20,12,14和18。如果在探查地址之后没有本地总线器件要求处理,片设置32于是如在方框204中所示服务处理本身。在另一方面,如果本地总线器件,例如主从器件22或其它从器件20,要求处理,流继续到判决菱形206。如果本地总线器件请求了处理并声明了一个snarf信号,那么本地总线器件已接受了一个处理(从而变为从器件)并通知片设置32主存储器36需要被更新。在本发明的一个实施例中,当它已变更了被请求的数据并从而希望把更新的数据写入主存储器36和请求器件时,本地总线从器件声明一个snarf信号。在另一实施例中,本地总线从器件(如写直通缓存器)当接收了来自另一个器件的数据从而数据也将向前送到主存储器36时,也声明一个snarf信号。在又一实施例中,片设置32可以缺省为snarf模式,除非由从器件声明了一个非snarf信号。在这种情况下,数据被写入主存储器36除非声明了一个信号来指示不是snarf。
一旦本地总线从器件准备好数据转发(判决菱形208),本地总线从器件声明一个数据准备好信号,通知仲裁单元48本地总线从器件在请求数据总线60(方框210)。如果由主器件最先请求的处理类型是一个读,那么执行一个snarf操作,并在本地总线从器件和主器件之间转发数据(方框212),同时写数据到主存储器36。另一方面,如果处理是一个读取并想修改(read-with-intent-to-modify)(RUITM),在本地总线从器件和主器件之间的数据转发出现,但没有数据被写入主存储器36(如在方框218中所示)。
如果在判决菱形206,从器件不声明一个snarf信号,那么对于该处理不写入主存储器36是必要的。一旦数据准备好发送,本地总线从器件声明数据准备好信号(在判决菱形214),请求数据总线60的控制。当在方框216中被授予了数据总线60的控制权时,在方框218中,在本地总线从器件和主器件之间的数据转发出现在数据总线60上。
在本发明的一个实施例中,主器件可以是一个微处理器,象微处理器12,14或16中的一个,或主/从器件22,从器件可以是另一个微处理器,三级高速缓存18,主/从器件22或其它从器件20。在某一特定实施例中,主/从器件22可以是具有存储器30作为它的帧缓冲器的图形控制器。在某一特定实施例中,其它从器件20可以是一个高速缓存控制器,用于控制一个其地址在主存储器36的地址外的存储器的存储器控制器,或一个专用协处理器。另一个实施例可以只包括一个微处理器和各种主/从器件和其它从器件的组合。
图5是运用总线34的本地总线器件转发数据的流程图。在方框302中,本地总线器件从地址总线50探查主器件地址,接着,取决于器件类型(判决菱形304),用一种特定的方法来确定是否将用数据转发器来服务该地址。如果本地总线器件是一个高速缓存控制器(因而具有一个高速缓存功能),那么本地总线器件的存储器是主存储器36的子集。例如,在图1中,二级高速缓存24和在微处理器12内发现的第一高速缓存是主存储器36的子集。在这种情况下,存储器一致性是在主存储器36和主存储器36的子集(例如二级高速缓存24或第一缓存器)之间的一个考虑。如果器件请求数据,包含被请求数据的器件需要获取数据的最近更新的版本。
然而,如果本地总线器件是一个独立的存储器范围控制器,那么它包含一个在主存储器36中不会找到的独立的存储器范围。例如,在图1中,存储器30(象用于图形控制器的帧缓冲器)可以是一个在主存储器36中不会找到的独立的存储器范围。
如果本地总线器件是一个高速缓存控制器,并且在地址总线50上探查到的地址在它的相关高速缓存内被找到,例如当地址与高速缓存内的一个标记匹配时,那么存储器命中发生。在判决菱形306,如果存储器命中不发生,流返回方框302。在一个实施例中,用于总线34的干预协议(intervention protocol)对于高速缓存到高速缓存的干预(intervention),可以是编程使能或不使能。另外地,干预协议可以在硬件上使能或不使能。干预协议,如果是使能的,允许直接在本地总线器件之间的数据转发,例如在处理器之间的高速缓存到高速缓存的转发,而不是不得不把数据转发到主存储器36或从主存储器36转发数据。
如果干预是不使能的(判决菱形308)和被请求的数据未被本地总线从器件变更(判决菱形310),那么本地总线从器件已完成了它的处理,而主器件将接收来自主存储器36而不是来自本地总线从器件的数据。流之后返回方框302。然而,如果数据已被变更,在方框312中,本地总线从器件发布一个指示重试请求的探查响应。重试请求通知主器件在主存储器36中的数据不是变更的版本,并等待和在稍后时间时重试它的处理请求。在方框314中,本地总线从器件之后把变更的数据写入主存储器36中。在这点上,本地总线从器件已完成了它的处理,并且在本地总线从器件内的数据不再被标记为变更的。流之后返回方框302。主者现在可以重新请求它的处理,并从主存储器36读取更新的数据。
在另一方面,如果在判决菱形308,干预是使能的,那么允许直接在本地总线器件之间的处理。如果干预是使能的并且被请求的数据已被本地总线从器件变更(判决菱形316),在方框318中,本地总线从器件通过声明一个第一信号,也称作一个命中信号来请求处理。本地总线从器件同时声明一个第二信号,也称作snarf信号,目的是强迫把变更的数据值写入主存储器36(方框320)。因此,即使主器件将直接把数据转发到本地总线从器件或转发来自本地总线从器件的数据,主存储器36将接收数据的一个更新拷贝。流之后继续到方框326中的数据转发步骤,将参考图6在下面进一步描述。
干预协议不仅允许变更的干预,而且对于未变更的干预也如此,如由判决菱形322所示意。即使数据未被本地总线器件变更而且因此也能从主存储器36释放时,未变更的干预也允许本地总线器件转发。如果数据未被变更并且未变更的干预不使能,那么本地总线从器件已完成了它的处理,主器件将从主存储器36获得它的信息。流再次回到方框302。然而,如果未变更的干预被使能并且数据未被本地总线从器件作变更,本地总线从器件将声明一个命中信号而不声明snarf信号(方框324),以致无snarf出现。Snarf在这种情况下是不必要的,因为数据未作变更;因此,由于主存储器36已有了数据的一个最新版本,不需要对主存储器36的写入。流之后继续到方框326的数据转发。
如果在判决菱形304处上述的器件类型是一个独立存储器范围的控制器,那么一旦找到了主地址,本地总线从器件在判决菱形328处确定如果主地址落入它的存储器范围,一个存储器命中发生。如果存储器命中出现并且本地总线从器件负责服务处理(判决菱形330),那么在方框324中,本地总线从器件将通过声明一个命中信号请求一个处理。再次,不需要snarf,因为本地总线器件的存储器范围在主存储器36之外。这样不需要并且不希望对主存储器36的写,因为地址位置根本不在主存储器36内。在这点上,我们到达了方框326的数据转发步骤。
图6示意到或来自本地总线从器件的数据转发步骤326。如果处理类型是一个读(判决菱形350),在方框352中,本地总线从器件提取要发送给主器件的数据。如果处理是一个写,在方框354中,本地总线从器件准备接收来自主器件的数据。在一个读处理中,从器件是准备提供数据的器件,而在一个写处理中,主器件是准备提供数据的器件。一旦从器件准备好要进行的转发,在方框356中,它将通过声明一个第三信号,也称作数据准备好信号来请求数据总线60。在这点上,提供要转发的数据的器件将等待接入到数据总线60(方框358)。一旦给予了数据总线60的所有权,提供数据的器件如在方框360中所示通过把数据放在数据总线60上来转发数据,以供接收器件接收(并写入它的存储器或高速缓存)。
在一个实施例中,数据总线60和地址总线50是分离的(如图2中所示),以便当本地总线从器件提取数据或准备接收数据时,数据总线60可自由被其它器件使用。在这种方式中,数据总线60被自由用于其它使用,直到仲裁单元48在已接收了数据准备好信号之后把数据总线60的所有权给予本地总线从器件。在另一实施例中,从器件被假定能够在一个写操作期间,立即地,接收来自主器件的数据。在这种情况下,当从器件请求了一个发自主器件的写时,不必声明一个数据准备好信号。
本发明的一个实施例使用如上所述的3个信号的混合。当存储器命中发生时,由本地总线从器件声明一个命中信号,当数据准备好被转发时,发送一个数据准备好信号,当要进行snarf从而允许数据向前送给主存储器36时,声明一个snarf信号。这些信号允许既支持高速缓存到高速缓存的转发又支持包含本地总线从器件和主存储器36的读和写的一单一协议(如参考图2-6中描述的)。由于在这个实施例中对于这个公共协议只需要3个信号,在数据处理系统10中为获得该协议,不需要总线34有多于3个的控制引脚。在一个特定实施例中,通过为了指示数据不需被snarf到主存储器36,在探查响应窗口后的一个附加周期声明命中信号,可把命中信号和snarf信号时分复用到一单个引脚上,这样就只要有两个控制引脚。这可被称为扩展的命中协议,其中对于命中和snarf信号只需一个扩展引脚,原因是他们通过这个共同引脚按顺序先后被声明。
探查窗是指片设置32将等待多长时间来接收来自找到主地址的从器件的探查响应。在一个实施例中,该探查窗可以是一个固定长度,或者在数据处理系统10中可由用户编程。在另一实施例中,可使用不同的方法来确定一个命中信号或snarf信号何时被从器件中的任何一个声明。
上面的实施例有几个优点。例如,对于提供高速缓存到高速缓存转发只使用2个扩展引脚和对写入主存储器的可选使用既降低了系统成本也降低了复杂度。使用用于许多个不同处理的一单个协议,例如从器件和内部处理器高速缓存转发,允许使用这样一个协议在数据处理系统上对相应的许多不同系统和软件功能方便地和低成本地执行。这样,上面的实施例满足了对一个既支持高速缓存到高速缓存转发又支持包括本地总线从器件的数据转发的低成本和有效的总线协议的需求。然而,本技术中的那些普通技术人员应该注意另外的实施例会需要使用更多的扩展引脚,不同的信号或对信号组的不同编码来实现该公共协议。
图7示意允许广播协议的本发明的另一实施例。在此实施例中,在方框402中,系统控制器接收了来自I/O40中的一个或在总线38上找到的其它总线模块42的外部数据。如果,在判决菱形404,系统控制器确定外部数据保存在主存储器36或I/O地址范围内,那么后面是一个正常处理(方框406),不执行广播。如果外部数据不落在主存储器36或I/O地址范围内,广播写处理的器件控制到总线34的写地址(方框408)。在另一实施例中,广播器件将确认数据不需拷贝到主存储器36和广播到在总线34上的本地总线器件的地址范围。在总线34上的所有器件,不管他们是主器件或从器件,为了确定地址是否落在他们的存储器范围,监控总线以探查地址(方框410)。如果这样,他们的存储器范围包含主地址的器件将通过声称一个命中信号作为他们的探查响应来请求处理。产生广播的器件,例如片设置32的仲裁单元48,监控来自所有其它器件的探查响应用于命中信号。
在一个实施例中,由片设置32产生广播,而在另一个实施例中,在总线34上的任何主器件将产生广播。一旦在总线34上器件准备好接收来自片设置32的广播写,器件通过声明它们的数据准备好信号请求数据总线60的所有权。一旦仲裁单元48接收了来自声明命中信号的每个器件的所有数据准备好信号(方框412和414),仲裁单元48把数据总线60的所有权给予这些器件的每一个和主器件(方框416)。在方框418中数据之后被转发到数据总线60,以便声明命中信号的这些器件的每一个将能吸收数据(读取来自总线34的数据并把数据写入它们的存储器或高速缓存)。一旦数据被转发给从器件,处理结束。
尽管本发明已参考特定的实施例来描述,对本技术的那些熟练人员可作进一步的变更和改进。而且,本技术的那些熟练人员应该注意在设计和部件上的改动仍能实现本发明的功能。因此,应该理解,本发明包含不偏离如附后的权利要求书中所定义的本发明范围的所有这些变更和它的等效。
权利要求
1.一种在与处理器接口总线通信的从器件之间转发数据的方法,其中处理器接口总线与主器件通信,其特征在于包括下列步骤接收来自处理器接口总线的地址,该地址由主器件提供;在处理器接口总线上声明一个第一信号指示从器件正在服务一个数据转发处理;在处理器接口总线上声明一个第二信号来指示将使用处理器接口总线来转发的数据是否将被与处理器接口总线通信的主存储器控制器存储到主存储器中;和在从器件和处理器接口总线之间转发数据。
2.权利要求1的方法,其中数据转发处理是一个读操作,并且还包括确定对于从器件是否使能了高速缓存到高速缓存的干预操作的步骤。
3.权利要求1的方法,其特征在于包括如果第二信号已被声明,把来自处理器接口总线的数据存储到外部存储器的步骤。
4.权利要求1的方法,其特征在于包括确定转发的数据是否已被变更的步骤。
5.权利要求4的方法,其中当转发的数据已被变更时,第二信号不被声明。
6.权利要求4的方法,其中当转发的数据未被变更时,第二信号被声明。
7.权利要求1的方法,其中第一信号和第二信号经处理器接口总线的一个共同引脚被先后声明。
8.权利要求1的方法,其特征在于包括确定被转发的数据是否是未变更的数据的步骤和确定对于未变更的数据是否使能了高速缓存到高速缓存的干预的步骤。
9.权利要求1的方法,其特征在于包括转发数据给主器件但不给主存储器的步骤。
10.一个数据处理系统,其特征为处理器接口总线;响应处理器接口总线的存储器控制器;响应存储器控制器的存储器器件;响应处理器接口总线作为一个主器件工作的第一器件;和响应处理器接口总线作为一个从器件工作的第二器件,第二器件在处理器接口总线上声明一个第一信号来指示从器件正在服务数据转发处理并在处理器接口总线上声明一个第二信号指示将被运用处理器接口总线转发的数据是否将被主存储器控制器存入存储器器件。
全文摘要
一种在与处理器接口总线(34)通信的从器件(20)之间转发数据的方法,其中处理器接口总线与主器件(12)通信,该方法包括接收来自处理器接口总线(34)的一个地址,其中地址由主器件提供(方框302)。在处理器接口总线(34)上声明一个第一信号(方框318和324)指示从器件(20)正在服务一个数据转发处理。在处理器接口总线(34)上声明一个第二信号(方框320)来指示将使用处理器接口总线(34)转发的数据是否将被与处理器接口总线(34)通信的主存储器控制器(32)存储到主存储器(36)中。数据在从器件(20)和处理器接口总线(34)之间被转发(方框326)。
文档编号G06F15/16GK1245929SQ9911016
公开日2000年3月1日 申请日期1999年7月5日 优先权日1998年7月6日
发明者戴维·威廉姆·托德, 迈克尔·蒂安·辛德, 布赖恩·凯斯·雷诺尔德斯, 迈克尔·朱里奥·噶西亚 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1