在处理器和高性能系统总线之间的信令协议转换 本发明一般涉及到高性能计算机系统,尤其涉及到与供先进微处理器使用的总线相关的信令协议和运算请求。
越来越先进的微处理器和相关的总线结构正以迅速的步伐持续发展。例如,加洲Santa Clala的Intel公司在对其先前生产的Pentium处理器的市场需求仍在继续扩大的时候最近介绍了他们最新地处理器,即:PentiumProTM。Pentium ProTM处理器在性能方面极大地超过了先前生产的Pentium处理器,并且它引进了一种新的高性能,即:流水线系统总线结构。
对于那些既希望根据最新总线结构设计系统、又希望在先前生产的处理器或具有其它总线结构的处理器的基础上调整处理器设计的计算机系统研制者来讲出现了一种进退两难的境地。例如,很多的系统设计者喜欢将他们的计算机系统设计得能够与Intel公司的新Pentium ProTM总线相兼容,以便利用艺术特性的状态(state of art feature),但是,他还必须满足当前市场对与Pentium处理器结构兼容性的要求。这通常意味着系统处理器必须具有与根据为Pentium处理器设计的总线结构相同的引出线和/或操作。
遗憾的是,PentimTM处理器的总线信令协议与Pentim处理器的总线信令协议根本不同。结果是系统研制者必须作出不能够令人满意的选择,即:或者是保持与主要处理器设计的兼容性,同时放弃与艺术总线结构相关的优点,或者是由于广大消费者基于以Pentim处理器为基础的系统而以减少市场接受能力为代价,根据PentiumTM处理器的先进总线结构的信令协议设计他们的系统。因此,需要一种计算机系统结构,它能够适应处理器类型的变化,从而使每个处理器类型能够使用其它的总线结构。
如将要看到的,本发明通过提供一个包括经过一个标准化计算机总线接口耦合到主机上的处理器子系统(或模块)的通用计算机结构克服了现有技术中存在的问题。本发明提供了与处理器类型广泛变化的兼容性,同时不需要对基本系统结构做任何修改。本发明优先允许在前生产的处理器(例如,Pentium处理器)以无间隙方式传输信息给/从耦合到高性能(例如,PentiumTM处理器)系统上的模块。
本发明提供了一种在具有不兼容信令协议的不同处理器之间的信号转换方法。本发明设想一种附加有一个处理器子系统的典型主计算机系统,所述处理器子系统包括一个处理器和总线转换装置。所述主计算机系统支持标准化的系统总线,利用该标准化的总线接口提供与系统的连接并允许处理器子系统和主机之间的通信。所述主机可以包括诸如主处理器、主存储器和外围设备等。子系统内的处理器根据不同于主系统标准总线接口的一个特殊总线接口工作。总线转换装置提供主系统标准总线接口和处理器特殊总线接口之间的转换。
在一个实施例中,工作方法包括首先将子系统处理器产生的判优信号从与处理器相关的第二信令协议转换到成主系统系统总线相关的第一信令协议的步骤。这允许子系统处理器获得系统总线的所有权。接着,处理器的输出请求编码被从第二信令协议转换成系统总线的第一信令协议。这个步骤是通过包括在处理器子系统中的总线转换装置执行的。附加逻辑根据由根据系统总线第一信令协议排序的适当信号编码的转换后输出请求在流水线总线上产生一个总线周期。
与处理器子系统接口的主计算机系统可以支持独立模块的变化。这些独立模块可以包括附加处理器以及诸如直接存储器存取(DAM)装置的各种公知装置或其它子系统。这些模块在一个实施例中经过流水线总线结构彼此相互通信。耦合到流水线总线上的模块被分类为对称模块或优先权模块。对称模块根据循环优先权算法支持分布式判优方案。
处理器子系统被分类为流水线总线上的对称模块,并根据循环优先权算法代表所述处理器请求总线所有权。在一个特殊的实施例中,可以使用循环算法。在多数情况下,优先权模块可以通过在总线上传送优先权请求优于任一对称模块直接获得总线所有权,
通过下面结合附图的详细描述可以对本发明作出更加详细的理解,但是,本发明并不局限于这些特定实施例,它们仅被用于解释和理解本发明。
图1示出了Pentium处理器的引出线;
图2的方框图示出了本发明的一个实施例;
图3示出了在一个包括经过高性能总线相互耦合的多个模块的计算机系统中本发明的一个实施例;
图4示出了图2所示总线转换装置一个实施例的概念性方框图;
图5示出了图4所示判优转换电路的一个实施例;
图6的方框图示出了图4所示输出请转换电路的一个实施例;
图7示出了图4所示总线锁定转换器的一个实施例;
图8示出了图4所示输入请求转换器的一个实施例;
图9的方框图示出了图4所示高速缓存一致性控制单元的一个实施例;和
图10示出了在本发明一个实施例中使用的总线请求协议转换逻辑单元。
下面描述与用于将处理器的信令协议转换成高性能总线信令协议的总线转换装置一起置于插入插件上的处理器。在下面的描述中,对诸如模块类型、逻辑块、信号连接等作了特殊详细说明,以便提供对本发明的完整理解。具有数据处理技术的普通专业人员将理解,没有这些特殊说明也可以实施本发明。在另一个例子中,为避免使本发明变的不清楚,公知的信号定时、部件和电路没有描述。
计算机领域内的普通专业人员还清楚,下面的描述包括各种术语,这些术语具有相关领域内的特殊定义。例如,术语“标准化总线接口”是本专业技术人员公知的,它意味着模块和总线之间的信号传输遵循应用于整个系统的通用信令协议。同时,标准总线接口不必参考由各行业组织指定的工业类型标准。另外,接口可以根据一定数量标准中的任一个选择。借助于举例,描述了本发明的实施例,在该实施例中,标准化总线接口是以提供与先前处理器生产反向兼容的高性能总线结构为基础的。在其它例子中,标准化总线接口可以以相对简单的总线结构为基础,以便降低成本,或在减少部件复杂性的情况下支持较高数量的市场。
图1示出了Intel公司的Pentium微处理器。利用背景技术详细解释图1所示信号的操作和功能,并能够在很多公开出版物中获得与Pentium微处理器相关的信令协议。例如,在一本由Addison-Wesley出版公司(1995年)出版、由Don Anderson和Tom Shanley撰写、名称为“Pentium处理器系统结构,第二版”的书中包含了这种描述。
虽然在关于本发明实施例中的下面讨论涉及了Pentium微处理器,但是,应当理解,现在存在、将来还会出现使用其它内部结构并同时保持与Pentium微处理器引线兼容的其它微处理器。类似的,其它处理器提供具有类似功能的信号并被设计成具有不同的引出线,但是,它们保留了与规定给Pentium微处理器总线结构的兼容性。
因此,本发明中涉及Pentium微处理器的内容将考虑包括这些等同物。为了将其置入其它方式,本发明不局限于Pentium微处理器,并且,本发明可以利用使用各种数据处理器装置的任何一种加以实现。另外,当在Pentium ProTM处理器结构基础上从主机系统的角度来描述本发明时,本专业技术领域内的普通技术人员应当理解,具有不同结构的处理器可以很容易地获得由本发明所提供的益处。
现在参看图2,该图示出了本发明一个实施例的高级方框图。在图2所示的实施例中,多个集成电路器件被安装或置于一个印刷电路插件(PCB)(或模块)200上。插件200包括沿线17耦合到一个或多个高速缓存12上的处理器11。插件200还包括经过线18连接到处理器11的总线转换装置15。总线转换装置15接下来被连接到系统总线101。在所描述的实施例中,系统总线101包括具有标准化总线接口的高性能流水线总线。
数据、地址和控制线19、13和16可以直接从处理器11分别连接到系统总线101(未示出)上,或经过转换装置15另外耦合。
如更加详细描述的,总线转换装置15用于将与处理器11相关的总线信令协议和电子特性转换成与系统总线101相关的信令协议和电子特性,或者相反。利用这种方式,信息可以在处理器和耦合到系统总线101上的其它模块之间进行传输。(注意,信号线14试图表示可以有其它的输入/输出线被连接到耦合到包括在所述插件其它装置上的处理器11上,例如,线14可以包括时钟输入信号、运算电位提供线以及到附加集成电路的连线等)。
现在参看图3,这里,示出了在一个计算机系统中本发明的一个实施例,该计算机系统包括耦合到高性能总线101上的多个模块。在图3所示的实施例中,总线101包括具有诸如为Pentium ProTM处理器设计的一种结构的流水线总线。所示处理器插件200具有沿一个缘配置的多个接口端子。这些端子被利用一组相应端子连线插入到具有一个槽缝的耦合连接器上。例如,这种机构可以表示一种通过计算机系统内可以获得的一个槽缝连接到母板上的子板。这种结构允许高性能总线101被连接到一定数量的处理器插件上,其中的每个处理器都可以包括各种不同处理器中的一种。
如能够看到的,处理器插件200包括耦合到高速缓存12a-12c并经过总线转换装置15与总线101互联的处理器(PA)11。耦合到总线101上的其它装置包括总线主控器205、直接存储器存取(DMA)装置202、I/O装置207、扩展装置203和被安置成一个群集器206的一组处理器(PB)。借助于这个例子,处理器PB可以包括与流水线总线101的总线结构兼容的Pentium ProTM处理器。这样,在图3的计算机系统中示出了一种多处理器(MP)系统。
为下面描述的目的,可以考虑将高性能总线设计成Intel公司的PentiumProTM处理器总线。在公开出版物“Pentium ProTM开发手册、卷1:说明”(1996)中设置了与Pentium ProTM处理器总线相关的信令协议,通过调用1-800-879-4683可以从Intel公司获得这种公开,并且,这种公开在这里一并作为参考。但是,为了更好理解本发明的某些方面,当属于本发明时,Pentium ProTM处理器总线的各种特性将予以讨论。
首先,应当理解,根据Pentium ProTM处理器总线的总线判优协议,存在有两种总线模块:对称模块和优先级模块。对称模块使用循环(即:循环优先级)算法支持清楚的分布式判优法。每个对称模块具有在RESET状态指定的唯一识别符(ID);反映关于下一个判优事件最低优先级中对称模块的旋转ID值和表示“忙”或“闲”状态的对称模块所有权状态指示符。例如,在图3所示的实施例中,处理器200是作为一个耦合到总线101上的服务对称模块出现的。
在诸如图3所示的一般系统结构中,对称模块包括诸如耦合到总线101上的单独的或被组织成群集器206的处理器PB、总线主控器205以及各种扩展装置203等。在图3所示的计算机系统中,由于需要到存储器的直接通路,所以,直接存储器存取(DMA)装置202可以用做高优先级模块。在其它的机构中,优先级模块可以包括高优先级判优程序,用于代表如图3所示I/O块207的多I/O装置进行判优。
所述判优事件是一种处理,通过这种处理,确定和改变一个新对称总线的所有者。在每个判优事件中,具有最高优先级的对称模块变成对称所有者。注意,由于具有比任一对称所有者都高优先级的优先级模块可以从对称模块中抢夺总线所有权,所以,对称所有者不必须是整个总线的所有者。一旦优先级模块对总线判优,就避免了对称所有者进入新的请求相位,除非这个新的事物是正在进行总线锁定操作的一部分。总线锁定操作是一种不能够被中断的自动操作。这种总线操作的一个例子是读-改-写循环。
现在参考图4,这里示出了先前示于图2和3的总线转换装置15的一个实施例的概念性方框图。虚线10和100分别表示位于处理器11和总线101中转换器15之间的总线信号接口。本专业技术领域内的专业人员可以理解:当需要变换和转换与各总线接口相关的电压和逻辑电平时,接口10和100中的每一个都可以包括数据和地址锁存电路、电压变换电路、信号转换逻辑等。
在与流水线总线101连接的总线接口100的情况下,其中锁包括的有接口单元按序队列(10Q)70。该10Q70是一个与Pentium ProTM处理器总线相关的标准逻辑块,用于跟踪总线101的状态。所有总线模块保持相同的10Q状态,以便跟踪发给所述总线的每个事物。当事物被发给所述总线时,它还进入每个模块的10Q。
10Q的深度受到总线上能够同时有多少按序事物未被解决的限制。由于事物以与它们被发出的相同顺序接收它们的响应和数据,所以,在10Q顶点的事物是进入所述响应和数据相位的下一个事物。在响应相位完成之后,事物被从10O中删除。所述10Q还可以响应作为其它总线协议信号的诸如HIT#/HITM#,DRDY#,DBSY#的传送信号。但是,10Q的故障深度是8,总线模块可以通过激活RESET#上的引线A7#将10Q的深度构成为1。
总线转换装置15包括一个总线判优转换器(BAC)60,用于转换与不同总线协议相关的判优信号。例如,BAC60允许处理器11通过具有它自己被适当转换成与总线101相关的总线协议的判优信号而获得对流水线总线101的控制或所有权。
图5示出了总线判优转换器60的详细方框图。BAC60包括模块识别符(ID)确定状态机构61、对称所有者确定状态机构62、暂停确认逻辑63和总线请求逻辑64。很清楚,在系统总线的对称判优方案中,每个请求对总线进行访问的模块都必须确认一个适当的请求(BREQ#)信号。例如,处理器11可以指出它试图通过根据处理器11的总线协议驱动BREQ#信号向总线101传送一个请求。
信号BREQ、LOCK#和HLDA被从总线请求逻辑64输入给处理器11。(注意,当利用循环符号#确认时,每个信号处于逻辑低状态,例如当处理器11执行一个自动事物时,LOCK#信号被确认)。
BREQ信号是由处理器11确认的总线请求输出,用于通知总线请求逻辑64它需要获得总线101的所有权,以便执行总线周期。HLDA信号是一个由处理器11确认的保存肯定输出,用于通知其它请求装置它不再拥有所述总线。根据与处理器11相关的总线协议,HLDA不被确认,直到所有未完成总线周期(即:在前已经被流水线传送的总线周期)被完成为止。总线请求逻辑64将由处理器11产生的总线请求信号转换成与和系统总线101的协议相关的总线请求信号兼容的BREQ#[0]信号。
在一个实施例中,总线判优转换器60根据在Pentium ProTM处理器总线上执行的循环判优方案获得作为对称模块的总线101的所有权。为了适当地连接到总线101上,每个对称模块必须被指定一个对称模块识别符(ID)。这是模块ID确定最后状态机构61的目的。根据电源的接通或复位,对称模块ID确定状态机构61接收BREQ#[3∶0]信号线,以便确定指定给处理器插件200的模块ID。模块ID信息被提供给对称所有者确定状态机构62。
未获得系统总线101的所有权,对称模块BREQ#[0]信号被确认,和对称所有者确定状态机构62检查总线的状态,以便指出根据Pentium ProTM处理器总线的总线协议可以获得作为对称模块的所有权的时间。与系统总线101相关的总线判优信号包括BREQ#[3∶0]、BPRI#、LOCK#(示于图7)和RESET#。BREQ#[3∶0]总线信号被以旋转方式连接到包括处理器插件200的总线转换器15在内的对称模块上。在电源接通或RESET期间,这个配置利用唯一模块ID初始化每个对称模块。总线1信号BREQ#[3∶0]提供一个机构,利用该机构,单独的对称模块传送和接收总线所有权请求,以便判优系统总线101的所有权。
BPRI#信号是一个优先权请求信号,对称模块利用该信号接收来自一个高优先权总线模块的总线所有权请求。例如,BPRI#信号可以由一个优先权模块确认,以便使它能够对总线101的直接所有权进行判优。耦合到总线101上的对称模块接收BPRI#信号,以表示该优先权模块正在请求总线所有权。
在总线101判优事件的基础上,如果处理器200具有系统中当前最高的优先权,那么,它可以变成总线的对称所有者。优先权模块可以连续地请求总线并获得对处理器插件的所有权。例如,除非处理器200正在执行一个原子事物和已经具有被确认的LOCK#信号,否则,I/O装置(见图3)可以通过确认BPRI#从子插件200获得总线所有权。当然,处理器插件200可以在另一个实施例中被指定一个优先权模块。
保存确认逻辑63被耦合,以便接收来自总线101的BPRI#信号,AHOLD信号被输入给处理器11。当在总线101上确认BPRI#信号时,这意味着一个高优先权模块正在被插入以获得总线的所有权,响应BPRI#信号,保存确认逻辑63通知处理器11不要再发出任何更多的请求。
注意,AHOLD(地址保存)信号使处理器11中止驱动它的地址总线,从而使处理器11不能够控制总线周期。因此,HOLD和AHOLD信号的驱动允许总线转换装置15在总线101上与其它对称模块一起工作。这迫使处理器11通过缺省不再拥有所述总线,而在Pentium处理器的总线结构中,处理器通过缺省拥有所述总线。在具有多处理器或模块的系统结构中,HOLD和AHOLD信号的使用排除了两个或多个处理器彼此反馈的可能性,借此导致“生命锁定”状态。
总线请求逻辑64也产生输入给处理器11的BOFF#信号,用于使处理器11直接放弃在一个高优先权模块使用BPRI#信号请求总线所有权事件中的总线控制。在BOFF#信号被消除之后,处理器11重新开始整个总线周期。
在另一个实施例中,处理器插件200在计算机系统中被用做一个高优先权模块,而不是一个对称模块。
参看图4和6,总线转换装置15还包括一个输出请求转换器(ORC)20,用于转换由处理器11产生的请求并在系统总线101上发出。在举例的这个实施例中,一旦总线101的所有权被Pentium处理器获得,输出请求的编码必须被从Pentium处理器的协议转换成Pentium ProTM处理器总线101的信令协议。另外,Pentium ProTM处理器总线执行两个时钟请求周期,而Pentium处理器仅利用一个时钟周期工作。因此,ORC20响应由处理器11发出的适当按序请求,并将其从Pentium处理器转换到Pentium ProTM处理器总线的不同请求类型引线上。
输出请求转换器20包括请求循环最后状态机构21、请求编码器22和23以及属性编码器26。请求循环状态机构21在线66上接收来自BAC60的一个表示处理器11已经获得总线101所有权的信号。在该点处,处理器11可以确认它的ADS#(地址状态)输出信号,以便指出存在有一个有效地址和总线周期定义。
状态机构21利用这个信息产生耦合到多网络电路24和25上的控制信号,用于各种请求和编码变化,以便使的单周期处理器请求能够在系统总线101上被适当地排序成两个单独的时钟周期。对两个请求周期的编码是由快22和23执行的,它们从处理器11接收作为输入信号的写/读(W/R#)信号、存储或I/O转换(M/IO#)信号和总线周期定义(CACHE#)信号。CACHE#信号是在高速缓存写回期间由所述处理器确认,并通知外部存储器:处理器希望使用总线周期执行高速缓存线填充。
另外,请求编码器22接收D/C#(数据/代码)信号,以便指出所请求读操作的类型。
由块22和23编码输出的信号被输入给多路转换器24。利用请求循环状态机构21控制从多路转换器24中选择输出,如图6所示。当利用请求循环状态机构21向总线101发出ADS#信号时,编码器22在第一周期内对来自处理器11的各种请求类型编码。此时,多路转换器25选择由处理器11提供的地址信号,以输出给系统总线地址线A#[35∶3]。关于请求类型的基本信息也在第一周期内经过REQ#[4∶0]线放置在系统总线101上。根据本发明的一个实施例,请求编码器22可以使用将Pentium型引线转换到在Pentium ProTM处理器总线上适当请求型信号的普通结合进行工作。
在第二时钟期间,多路转换器24选择编码器23的输出信号Reqb[4∶0],并输出给系统总线101。还是在第二周期,地址信号线被用于传送关于请求类型的附加信息给流水线总线。这个信息包括诸如类型使能信号线(BE#[7∶0])、用于通知逻辑锁定传输请求是所期望总线周期数量两倍的分割周期(SCYC#)信号、用于规定L2高速缓存是否应当使用与正在被写入线相关的写回或写穿过策略的页写穿过(PWT)信号,和CACHE#信号。在第二周期期间内,多路转换器25选择这些信号并将这些信号输出给系统总线101。
在包括有能够延迟事物(即:使它完成无序)ORC20的响应模块的系统结构中,应当包括这样一种逻辑,即它能够利用在总线101上发出的每个请求解确认DEN#信号。DEN#信号是一个使能延时信号,并且在总线101上EXF1#/Ab4#引线(即:第二周期地址引线的位4)上请求相位的第二时钟上被驱动。例如,这个信令逻辑可以被包括在状态机构2的普通组合之中。利用每个输出请求的解确认DEN#避免了任一响应模块去延迟一个事物。
块27和28还分别产生地址奇偶性和请求奇偶性信号,并作为输出请求的一部分输出给总线101。
总线转换装置15还包括总线锁定转换(BLC)电路50,该电路使得所述总线能够在原子事物期间被锁定,即:跨越多个时钟周期的事物不能够被中断。尽管在关于各总线协议变化的锁定能够被确认时,用于Pentium处理器的锁定协议类似于在Pentium ProTM处理器总线上执行的锁定信令协议。
图7示出了一个总线锁定转换器,包括用于从处理器11接收LOCK#信号以及从ORC20接收输入信号的锁定转换最终状态机构51。在系统总线101上,LOCK#信号是一个在所有模块之间在总线上传送的双向信号。根据Pentium ProTM处理器总线判优协议,当前的总线所有者可以确认LOCK#,以便规定不可分的总线锁定操作。
在处理器11确认它的LOCK#信号不久之后,系统总线101根据总线101的信令协议从所述锁定转换状态机构中接收转换后的LOCK#信号。状态机构51基本执行在它确认总线101上相应LOCK#之前将由ORC20产生的可变延时—等待诸如ADS#的信号。总线101上的LOCk#信号继续穿过一系列原子事物,然后,在所述事物被完成之后被解确认。然后,根据总线101的适当信令协议再次执行解确认。
如从图4所能看到的,总线转换装置15还包括一个输入请求转换器(IRC)30,用于将系统总线上的信号请求转换成能够被输入给处理器11的信号。根据Pentium处理器的信令协议,一个外部地址选通(EADS#)信号被确认,以便通知处理器11在它的局部地址总线上存在有有效地址,和这个地址能够被监测。当所述探听被激活时,处理器将所述存储地址从总线传输给高速缓存导引表并进行查询。但是,由于Pentium ProTM处理器总线不包括EADS#信号或它的等效信号,所以,本发明执行下述方案。
由于流水线总线101通常是一个多模块系统总线,所以,总线上的ADS#信号利用多个模块中的一个表示一个请求。耦合到总线上的所有模块监视这些请求,根据请求类型确定它是否适于探听总线101和利用该信息作些甚麽。
如图8所示,IRC30包括一个输入请求转换逻辑块31,用于从系统总线101接收请求信号REQ#[4∶0]。输入请求转换逻辑31被用于确定总线101上的请求是否是可由处理器11探听的。如果系统总线101上的当前事物是可探听的,逻辑块31使EADS#被与地址信息一起驱动给处理器。注意,IRC逻辑块31控制三态缓冲器33和34确认/解确认EADS#信号和处理器11的地址引线。
输入请求转换逻辑块31还产生使无效(INV)信号,用于指令处理器11或保持高速缓存线有效,或在探听命中的情况下将其标记为无效。在高速缓存线含有有效数据的事件的情况下,所述线被放置在共享高速缓存一致状态。注意,逻辑块31应当使地址保存(AHOLD)信号被确认,从而使处理器11能够适当地探听地址总线。这保证了高速缓存的一致性。
在这点上,应当理解,图8所示IRC的执行假设系统总线101已经被解流水线化,以用于信号转换。在本发明的另一个实施例中,可以希望不是解流水线总线101。在这种执行当中,总线转换装置15还包括一个排队结构,用于将所有的探听传送给处理器11,同时周期性地阻塞系统总线101。
注意,IRC31包括探听控制逻辑,用于避免系统总线101上32位请求被传送给处理器接口。例如,Pentium处理器被限制为32为请求。因此,IRC逻辑块31保证大于32位的请求不被处理器11探听到。
图9示出了在图3所示总线转换装置15中示出的高速缓存一致性控制单元(CCC)40的详细电路图。图9的实施例示出的CCC包括被耦合到无效数据缓冲器42上的探听结果转换状态机构41,无效数据缓冲器42接下来经过三态缓冲器43驱动数据总线。一旦IRC31向状态机构41发出信号,表示一个探听已经被驱动到处理器11之中,那么,在几个时钟之后,处理器向CCC40提供多个信号,表示发生了高速缓存命中、命中无效线的高速缓存或高速缓存未命中。这个信息经过信号线HIT/HITM和ADS进行传输。
探听结果转换状态机构41还与和总线101相关的输入指令队列(IOQ)通信。IOQ监视系统总线,并将适当的信号传送给状态机构和三态缓冲器43,从而使数据能够根据总线101的信令协议传输给总线101。在一个实施例中,IOQ包括普通总线状态跟踪逻辑。总线状态跟踪逻辑经过系统总线101简单地传送当前时间的状态信息。
在一个实施例中,IOQ包括多个入口,其中,每个入口调换到在流水线总线上当前的事物上。每个IOQ入口跟踪一个事物的状态,利用这种方式,当它经过总线上的流水线进行跟踪时,所有的模块都可以保持对每个事物的跟踪。对当前描述的实施例来讲,由于总线被解流水线以便用于到处理器11的转换,所以,IOQ的深度为“1”。
状态机构41还与来自返回到系统总线101总线跟踪逻辑的探听事件的某些信息通信。在命中空白线或高速缓存未命中的事件中,状态机构41在适当的时候简单地向系统总线101报告这个状态。但是,如果命中发生在无效线上(即:处理器确认HITM信号),那么,由于处理器11被设计成立即输出无效数据,所以,这个状态需要特殊处理。
当在探听命中之后ADS#信号被状态机构41检测时,这意味着无效数据将立即被处理器11传送出去。由于系统总线101的信令协议不允许数据以这种方式被转储,所以,当数据被从处理器11中输出时,无效数据缓冲器42捕获该数据,从而使得它在适当的时间处被传送给总线101。当然,这个处理是在探听结果转换状态机构41的控制之下。由于它具有表示无效数据甚麽时候可以被在系统总线101上传送的信息,所以,IOQ中的总线状态跟踪逻辑还被耦合到图9所示的无效数据缓冲器42上。
另外,探听结果转换机构41可以使用BRDY#信号压制正在由处理器11输出的数据。在这另外一个实施例中,缓冲器42可以被删除,来自处理器11的数据总线线可以在耦合到系统总线101之前通过三态装置43被三态地简化。注意,在这个实施例中,BRDY#被用于指出响应一个写入,当前被寻址的装置具有来自Pentium处理器可接受的数据。换信之,探听结果转换状态机构41工作,以便通过提供一个适当的交换信号允许数据被直接传输到系统总线101上。
为了重复,逻辑块41取用来自处理器11的探听结果,并经过处理器11到达与总线接口101协同工作的IOQ。在由处理器11确认HITM#信号的事件中,由于那个信号指令开始无效数据转储,所以,探听结果转换状态机构41在下一个ADS#信号被处理器11输出之前处于等待状态。
图10示出了总线请求协议转换逻辑单元70,该单元包括普通状态机构和组合逻辑。如图所示,逻辑党单元70包括总线协议转换最终状态机构72和有序队列71。状态机构72执行处理器11和系统总线101之间所需的协议信号转换。有序队列71被用于保持对在接口相对侧两个总线状态的跟踪。IOQ71包括根据系统总线101的协议规定的普通逻辑和用于保存总线状态信息的寄存器存储器。
除了跟踪在总线接口两侧上示出的信号状态以外,逻辑单元70还提供必须的交换信号,例如,数据传输交换信号。(注意,在某些例子中,在接口相对侧上的总线信号具有非常相关的功能。例如,耦合到处理器11上的ADS#信号是一个反向地址选通信号。相应的转换是到系统总线101的ADS#的转换,该转换在性质上是双向的。)
如所能够看见的,总线跟踪逻辑单元70转换在系统总线101和处理器11之间传输的各种信号。在这组信号中包括的有与本发明一个实施例相一致的地址奇偶性误差信号AERR#信号。检测奇偶性误差的模块在事物的误差相位期间确认AERR#信号。所有的总线模块监视AERR#信号,并在下一个时钟时通过从有序队列中删除所述事物放弃有误差的事物,并删除与该事物相关的所有剩余相位。接口处理器一侧的相应地址奇偶性信号是APCHK#。在地址奇偶性误差事件中,处理器11激活APCHK#。
另外,在逻辑单元70接口系统总线一侧上还包括有一个HIT#/HITM#信号。所述HIT#/HITM#信号被用于指出在所述探听模块中的一个线是有效的或无效的、所述线在高速缓存模块中是否处于被修改(无效)状态,或探听相位是否需要被扩展。HIT#和HITM#信号被用于保持系统电平方面的高速缓存一致性。如在前面所解释的,当探听模块确认HITM#时,所述模块担负起在数据相位期间写回被修改线的责任(隐式写回)。DEFER#信号也在探听相位期间被驱动。DEFER#信号被解确认,以便指出所述事物能够保证被完成。确认DEFER#的模块通过产生适当的响应保证从IOQ71中适当删除所述事物。在同一事物探听相位之后发生事物的响应信号组,该信号组包括用于提供描述所需探听结果编码的信号RS#[2∶0]。所述响应模块是对在IOQ71顶点处所述事物的完成作出响应的模块。对于写事物,响应模块确认TRDY#,以指出它已经准备好接收写或写回数据。
数据传输信号组包含在数据相位内被驱动的信号,并包括DBSY#/DRDY#(数据总线忙或数据准备好)。DRDY#指出在总线上具有有效数据,并且必须被锁存。数据总线所有者确认与用于传输有效数据的每个时钟相关的DRDY#。DBSY#被用于在第一DRDY#之前和两个DRDY#之间保持所述总线,以便用于多时钟数据传输。所述探听、响应和数据的所有相位信号经过IOQ71被跟踪。
总线协议转换状态机构72向处理器11提供一个输出,该输出包括下一个地址输入(NA#)。NA#输入被请求在当前周期编码之前在总线上传送下一个总线周期的装置确认。外部权缓冲器空闲(EWBE#)信号被提供给处理器11,以保证按照执行顺序(即:强存储顺序)发生存储器操作。这保证了通过执行下一个指令完成所有被缓冲的写入。如前所讨论的,BRDY#信号指出当前被寻址的装置响应一个读出在数据总线引线上存在有有效数据,或当前被寻址的装置响应一个写入已经接收了来自处理器的数据。类似的,KEN#是一个高速缓存控制信号,用于指出正在被读出的位置是否位于可被高速缓存的地址范围之内。如果一个地址不能够被高速缓存,那么,KEN#线被去激活,以便告诉处理器不要执行高速缓存线的填充。