在使用卷标的管线化微处理器中执行结合写入的装置及方法

文档序号:6483211阅读:229来源:国知局
专利名称:在使用卷标的管线化微处理器中执行结合写入的装置及方法
技术领域
本发明是有关于微处理器中储存数据结合写入领域,且特别是有关于使用数据上的卷标而不是地址来结合写入。
背景技术
典型的计算器系统包含微处理器,用来写入或储存数据至诸如系统内存或影像画面缓冲区的系统内存装置中,微处理器由处理器总线连结至内存装置,处理器中执行的软件程序的储存指令产生处理器总线的写入交易来将数据写入内存中,有些时候会需要将处理器至内存总线上储存指令的数据延迟写入,而将数据缓冲,并与紧接着的一或更多储存指令的数据结合,成为处理器至内存总线的单一写入操作,这种操作通常称为结合写入(Write-combining)。
根据使用者的输入来更新画面的影像游戏程序,就是需要结合写入的一个例子,程序的画面更新部分产生大量的影像数据,储存至系统影像控制器的画面缓冲区的连续地址,因为影像数据的储存是连续的,便可将其缓冲并结合,得到较少的处理器总线入交易,结合写入的主要优点是更有效率地使用处理器总线,如下所述。
典型的处理器的内存总线写入交易包括一仲裁时相、地址时相、一或更多的数据时相、错误时相及完成时相。假定微处理器有两个数据储存要写入内存,如果微处理器以分开的两个总线写入交易来执行,那就除了数据时相以外,必须执行两组的仲裁、地址、错误及完成时相,相反地,如果微处理器缓冲第一个储存的数据,并将其与第二个储存结合,成为一个处理器总线写入交易,微处理器就只要执行一组仲裁、地址、错误及完成时相。此外,依据写入数据的大小及处理器总线度间的关系,也可能可以除去一些数据时相,由结合写入来避免过多时相是有效使用处理器总线的方法,并可能改善写入内存的处理能力((throughput)。
典型的处理器总线会致能微处理器,以将大小由单一字节改为整个储存线(cache line)的方式,来执行总线写入区块数据交易,储存线的大小通常是32个字节数据,但是典型的处理器数据总线宽度是8个字节,假定微处理器以8个字节地址边界的安排,来执行4次连续的8字节数据储存,如果微处理器分别执行4次总线写入交易,那么总线上将执行4个数据时相—每个交易一个,但是如果微处理器将这些储存结合为单一写入交易,那么4个数据时相就会在单一写入交易中执行,除去了多余的非数据时相,因而更有效率地使用处理器总线。
再者,于画面更新至影像画面缓冲区情形中,数百个结合写入储存线写入交易可能会于处理器总线上执行写入至画面缓冲区的连续地址,此情形中,微处理器会管线化许多这种处理器总线的储存线写入交易,由此以效率观点将非数据时相有效地除去,以完成接近于处理器总线上可能的最大写入处理能力,因而很快地更新画面缓冲区。
为了决定新写入与等待中的写入是否可以结合写入,微处理器必须比较新写入与等待中的写入的地址,以决定新数据是否可以合并或覆盖等待中数据,在相同的微处理器时序周期中执行地址比较,并将新写入数据加载保有等待中数据的缓冲区中,对微处理器的效能是有典型助益的。
典型地,必须比较的地址数量相当大大约32位,所以,执行新写入地址与等待中写入地址比较、决定结合写入是否可能、及重排数据进入写入缓冲区来执行结合写入,会花掉相当长的时间,而造成处理器周期时序问题,也就是说,执行结合写入的逻辑会成为微处理器的重要时序路径,因而减少了处理器周期时间,这是不想要的结果。
此外,通常新写入数据的地址来源和要结合的等待写入数据的写入缓冲区占据相当大的距离,这个事实也造成结合写入逻辑变成重要时序路径。
因此,一种降低决定可否执行结合写入所需时间的装置是必需的。

发明内容
本发明提供一种装置和方法,用以根据卷标比较而非地址比较,来决定储存数据可否与既有的储存数据在写入缓冲区中结合,以降低决定时间。据此,为了达成上述目的,本发明的一个特征是提供微处理器中的结合写入装置,此装置经由总线耦接内存,此微处理器具有写入缓冲器,用以缓冲要写入总线上内存的数据。此装置包括卷标分配逻辑,用来分配卷标给微处理器中执行的储存指令相关的储存数据,卷标分配逻辑根据储存数据总线地址的比较来分配卷标。此装置也包含复数个卷标比较器,耦接至卷标分配逻辑,用以比较卷标分配逻辑分配的卷标。此装置也包括写入缓冲控制逻辑,耦接至复数个卷标比较器,用以根据复数个卷标比较器的卷标比较结果,决定把储存数据加载至哪一个写入缓冲器。
另一方面,本发明的一个特征是提供一种微处理器中的装置,用以决定第一储存操作的第一数据是否可以和第二储存操作的第二数据结合,成为耦接处理器的总线上的单一写入操作,第一及第二数据分别具有第一及第二地址,此装置包含卷标分配逻辑,用以根据第一地址与第二地址的比较结果,分配第一卷标给第一数据。此装置也包含卷标比较器,耦接至卷标分配逻辑,用以比较第一卷标与先前卷标分配逻辑分配给第二数据的第二卷标。此装置也包括写入结合逻辑,耦接卷标比较器,用来根据卷标比较器比较第一和第二卷标的结果,来决定是否可结合第一和第二数据。
另一方面,本发明的一个特征是提供一种结合写入处理器,此处理器包括复数个写入缓冲器,用以缓冲要写入与处理器耦接的总线上的内存相关复数数据。此处理器也包括复数个卷标缓存器,耦接至复数个写入缓冲器,用以储存与复数个数据相关的复数个卷标。此处理器也包括一储存缓冲器,耦接至复数个写入缓冲器,用以缓冲等待写入处理器储存器(cache)的储存数据。此处理器也包括一卷标缓存器,耦接至储存缓冲器,用以储存与储存数据相关的卷标。此处理器也包括复数个卷标比较器,耦接至复数个卷标缓存器,用以比较此卷标与复数个卷标。此处理器根据复数个卷标比较器的比较结果,选择性地将储存数据与缓冲于写入缓冲器的先前写入总线上内存的复数个数据之一相结合。
另一方面,本发明的一个特征是提供一种具有管线阶(pipeline ofstages)的微处理器中执行结合写入的方法,此方法包括产生第一储存数据的第一卷标、在产生第一卷标后,比较第一储存数据的第一总线地址与第二储存数据的第二总线地址、及对应于第一和第二总线地址的比较结果,产生第二储存数据的第二卷标。此方法也包括比较第一和第二卷标,并根据第一和第二卷标的比较结果,选择性地结合第一和第二数据。
本发明的优点是由减低结合写入逻辑成为重要路径的可能性,可能地减少结合写入微处理器中的处理器周期时间,本发明由充分比较极少位来执行结合写入和可能地减少比较结果讯号的传播延迟时间,来减低结合写入逻辑成为重要路径的可能性,传播延迟时间的降低是由安排卷标比较逻辑在空间上接近于结合写入逻辑来完成,因而减少了比较结果讯号的长度,而且,本优点只增加相对少量的额外逻辑即可完成。


图1是根据本发明实施例的一种管线化微处理器中的结合写入装置方框图;图2说明图1中的结合写入装置操作流程图;以及图3至图5是依据图2的流程图说明图1的结合写入装置操作例表格。
附图标记说明100结合写入装置102卷标分配逻辑104最后可结合写入储存卷标(LWST)缓存器106最后可结合写入储存地址(LWSA)缓存器108控制逻辑112选择逻辑114总线接口单元(BIU)116地址比较器118处理器总线122A、122B、122C、122D卷标比较器124卷标126比较结果132缓存器134缓存器136储存缓冲卷标缓存器(SBTR)138储存缓冲器152储存数据总线地址154qword地址位(qwab)156储存数据158控制信号162A、162B、162C、162D写入缓冲卷标缓存器(WBTR)164A、164B、164C、164D写入缓冲器166A、166B、166C、166D结果信号172储存阶(S-stage)174写回阶(W-stage)176储存缓冲阶(SB-stage)178写入缓冲阶(WB-stage)202~232操作步骤具体实施方式
请参考图1,其为根据本发明一实施例的一种管线化微处理器中的结合写入装置100方框图,微处理器经由处理器总线118耦接内存,此内存包括诸如系统动态随机存取内存(DRAM)或影像画面缓冲区的一或更多内存装置,在一实施例中,微处理器包含用来表明允许结合写入的处理器总线范围的可规划缓存器。
微处理器包括多阶管线,图1显示下面的4阶管线储存阶172(S-stage)、跟着是写回阶174(W-stage)、跟着是储存缓冲阶176(SB-stage)、跟着是写入缓冲阶178(WB-stage),结合写入装置包括这4阶。
S-stage 172接收储存数据156和相关的储存数据总线地址152,储存数据156包括与微处理器执行的储存指令相关的数据,在一实施例中,储存数据156包括1至8字节之间。
储存数据总线地址152代表储存数据156要写入的内存位置的处理器总线118地址,在一实施例中,处理器总线118的地址总线部分和储存数据总线地址包含32位,在一实施例中,微处理器的储存线大小为32字节,因此,储存数据总线地址152的上27位代表储存数据156所在的储存线,位3和4代表储存数据156所在的储存线中8字节字组,此处一个8字节所构成的字组称为quad-word或qword,因此,储存数据总线地址152的位3和4称为qword地址位(qwab)154。
结合写入装置100包括S-stage 172中的卷标分配逻辑102,卷标分配逻辑102分配卷标124给可结合写入储存指令,也就是说,当储存数据到达S-stage 172,而储存数据总线地址152是在允许结合写入的范围中时,卷标分配逻辑102分配卷标124给储存数据156,卷标分配逻辑102根据新可结合写入储存指令的储存数据总线地址与通过S-stage 172的最后可结合写入储存指令的储存数据总线地址的关系,来分配卷标124,在一实施例中,卷标124包含3个位,用来代表最多8个不同卷标,卷标分配逻辑的卷标分配方法详述如下。
此结合写入装置100也包括最后可结合写入储存地址(LWSA)缓存器106,耦接至卷标分配逻辑102,LWSA缓存器106储存通过S-stage172的最后可结合写入储存指令的储存地址,在一实施例中,LWSA缓存器106只储存最后可结合写入储存指令的储存数据总线地址的上27位。
此结合写入装置100在S-stage 172中,也包括最后可结合写入储存卷标(LWST)缓存器104,耦接至卷标分配逻辑102,LWST缓存器104储存通过S-stage 172的最后可结合写入储存指令的卷标,其处理器总线118地址对应地储存于LWSA缓存器中。
此结合写入装置100在S-stage 172中,也包括地址比较器116,此地址比较器116由LWSA缓存器106接收LWSA及接收储存数据总线地址152,并比较这两个地址。在一实施例中,地址比较器116比较LWSA缓存器106及接收储存数据总线地址152的上27位,以决定这两个地址是否代表相同储存线的储存数据,此地址比较器116提供比较结果126给卷标分配逻辑102。
此结合写入装置100于W-stage 174中也包括一缓存器132,用以自S-stage 172接收储存数据,此结合写入装置100于W-stage 174中包括一缓存器134,用以接收储存数据总线地址152的qwab 154及自卷标分配逻辑102接收卷标124,此W-stage 174用来回写指令结果至缓存器文件,以便更新微处理器状态。
此结合写入装置100于SB-stage 176中也包括储存缓冲卷标缓存器(SBTR)136,此储存缓冲卷标缓存器136由W-stage 174中的缓存器134接收卷标和qwab。
此结合写入装置100于SB-stage 176中也包括复数个储存缓冲器,图1以单一储存缓冲器138作为复数个储存缓冲器的一例,此储存缓冲器138从W-stage 174中的缓存器132接收储存数据,当储存数据正等待写入微处理器中的数据储存器(cash),或用来写入内存的结合写入装置100的复数个写入缓冲器之一,或两者时,储存缓冲器138储存储存数据,在一实施例中,储存缓冲器设定可储存8字节的储存数据。
此结合写入装置100于SB-stage 176中也包括选择逻辑(muxinglogic)112,此选择逻辑112除了由储存缓冲卷标缓存器136接收卷标和qwab外,并由储存缓冲器138接收储存数据。
此结合写入装置100于WB-stage 178中也包括复数个写入缓冲器164,此写入缓冲器164由选择逻辑112接收储存数据,此选择逻辑112经由控制逻辑108的控制信号158控制,以将储存缓冲器138的储存数据导入写入缓冲器164,如下所述。
图1的实施例中包括4个写入缓冲器164,分别以164A、164B、164C及164D来表示,并分别称为第1写入缓冲器(WB1)、第2写入缓冲器(WB2)、第3写入缓冲器(WB3)及第4写入缓冲器(WB4),在一实施例中,每一写入缓冲器164设定为可储存8字节,因此,4个写入缓冲器164共可储存微处理器的一储存线(cache line),写入缓冲器164中的每一字节均可个别寻址,控制逻辑108维护状态信息,以便决定可用的写入缓冲器164,也就是说,写入缓冲器164是否包含有效储存数据,如果是的话,储存数据的哪一个字节是有效的,控制逻辑108也维护关于是否写入缓冲器164的储存数据为连续与总线接口单元(BIU)114通信用,是否写入缓冲器164的储存数据可以在处理器总线118上以单一写入交易而非分开的写入交易来写入的状态信息。
此结合写入装置100于WB-stage 178中也包括复数个写入缓冲卷标缓存器(WBTR)162,此写入缓冲卷标缓存器162由选择逻辑112接收卷标和qwab,此选择逻辑112经由控制逻辑108的控制,以将储存缓冲卷标缓存器136的卷标和qwab导入对应于储存数据所写入的写入缓冲器164的写入缓冲卷标缓存器162。
图1的实施例中包括4个写入缓冲卷标缓存器162,分别以WBTR1162A、WBTR2 162B、WBTR3 162C、及WBTR4 162D来表示,此写入缓冲卷标缓存器162与写入缓冲器164相关,每一个写入缓冲卷标缓存器162储存一个与储存于相对应的写入缓冲器164数据相关的卷标和qwab。
此写入结合装置100也包括一总线接口单元(BIU)114,此BIU 114是作为微处理器与处理器总线118的接口,此BIU 114由写入缓冲器164接收处理器总线118上要写入内存的储存数据,此BIU 114依据总线118协议执行处理器总线118上的总线交易,以便在微处理器与内存间传送数据。
特别地,此BIU 114执行总线118上的写入交易,以便将数据由微处理器传送至内存,此BIU 114执行的写入交易可能是微处理器所执行的个别储存指令的结果,也可能是结合多个储存指令的储存数据成为比储存指令还要少的总线118写入交易的结果。
在一实施例中,此总线118包括一兼容于Pentium II处理器总线协议的总线118,其它实施例则考虑为其它X86处理器总线协议的总线118,特别地,此总线118协议支持大于单一储存指令数据量的数据的写入交易,然而,本发明并不限定于特别的处理器总线协议,而是适用于各种容许结合写入的处理器总线协议,在一实施例中,处理器总线118的数据总线部分是8字节宽。
此结合写入装置100也包括复数个卷标比较器122,图1的实施例中包括4个卷标比较器,分别标示为122A、122B、122C、及122D,每一个卷标比较器122由SB-stage 176中的储存缓冲卷标缓存器136接收卷标和qwab,每一个卷标比较器122也由WB-stage 178中对应的写入缓冲卷标缓存器162接收卷标和qwab,此卷标比较器122产生相关于储存缓冲器138的储存数据的卷标/qwab和相关于写入缓冲器164的储存数据的卷标/qwab间的比较结果,并分别以结果信号166A至166D来表示,此比较结果166提供给控制逻辑108,有益地,此控制逻辑108使用比较结果166来控制选择逻辑112,以便选择性地由储存缓冲器138加载数据至写入缓冲器164,来辅助结合写入,将说明如下。
现在请参照图2,其为图1中的结合写入装置100操作流程图,流程由方框202开始。
在方框202,新的结合写入储存指令到达图1的S-stage 172,也就是说,图1的新的储存数据156和新的储存数据总线地址152到达S-stage 172,此新的储存指令具有像是允许与其它储存结合写入的内存储存属性,也就是说,新的储存数据总线地址152是落于微处理器容许结合写入的处理器总线118地址空间的区域,流程由方框202进入方框204。
在方框204,图1的地址比较器116比较新的储存数据总线地址152与图1的LWSA 106,流程由204进入判断方框206。
在判断方框206,图1的卷标分配逻辑102根据地址比较器116在方框204所产生的比较结果126来决定新的储存数据总线址1152是否与LWSA 106相符合,特别地,卷标分配逻辑102决定新的储存数据156是否与LWSA 106所表示的最后储存数据位于相同的32字节储存线,如果不是,流程进入方框208,否则,流程进入方框214。
在方框208,卷标分配逻辑102分配图1的LWST 104后的下一递增卷标给新储存数据156,因为新的储存数据总线地址152如方框206所决定地与LWSA 106不符合,也就是说,卷标分配逻辑102提供图1的卷标124给图1的缓存器134,而并入新的储存数据156,此新卷标124是与LWST 104不同的卷标,以便指明新的储存数据156与LWSA106所表示的最后储存数据并非位于相同的储存线。在一实施例中,卷标分配逻辑102以递增LWST 104的方式来分配下一递增卷标,且当卷标值溢出卷标大小,也就是在卷标值到达7时,将卷标值绕回零值,流程由方框208进入方框212。
在方框212,卷标分配逻辑102以新的储存数据总线地址152来更新LWSA缓存器106,及以方框208所分配的新卷标124来更新LWST缓存器104,流程由方框212进入方框216。
在方框214,卷标分配逻辑102指定相符合的卷标,也就是LWST104给新的储存数据156,因为新的储存数据总线地址152如方框206所决定,与LWSA 106相符合,也就是说,卷标分配逻辑102提供图1的卷标124给图1的缓存器134,以并入新的储存数据156,新卷标124与LWST 104为相同的卷标,以便指明新的储存数据156与LWSA 106所表示的最后储存数据是位于相同的储存线,流程由方框214进入方框216。
在方框216,新储存指令继续进入图1的储存缓冲器138,并准备加载图1的写入缓冲器164之一,流程由方框216进入方框218。
在方框218,图1的卷标比较器122比较储存缓冲卷标缓存器136的新储存卷标和qwab卷标缓存器162的卷标和qwab,流程由方框218进入判断方框222。
在判断方框222,卷标控制逻辑108根据方框218产生的卷标比较器122比较结果166,以决定新储存卷标和qwab是否与诸写入缓冲卷标和qwab中之一相符合,如果是,流程进入方框224,否则流程进入判断方框226。
在方框224,控制逻辑108将新储存数据与判断方框222所决定的具有与新储存卷标和qwab相符合的卷标和qwab的写入缓冲器之一的储存数据合并,也就是说,控制逻辑108控制选择逻辑112,以便由储存缓冲器138将新储存数据加载至相符合的写入缓冲器164,有益地,因为合并自两个不同储存指令的储存数据,能够以单一写入交易而不是两个不同的写入交易,写入处理器总线118上的内存,形成了结合写入的结果,依据符合的写入缓冲器164中储存数据的大小和字节位置及储存缓冲器138中的新储存数据的大小和位置,数据会并入及/或覆盖已经在写入缓冲器164中的储存数据,流程在方框224结束。
在判断方框226,因为新储存卷标和qwab不符合任一写入缓冲卷标和qwab,控制逻辑108决定是否有写入缓冲器164之一为可用,以便由储存缓冲器138加载新储存数据,也就是说,控制逻辑108决定是否有最少一个写入缓冲器164是空的,可以储存数据,如果没有,流程进入方框228,否则进入方框232。
在方框228,控制逻辑108和BIU 114运作以清除写入缓冲器164,写入缓冲器164以存在于写入缓冲器164的储存数据可执行的最大处理器总线118上写入交易来清除,比如,假定写入缓冲器164包含整个储存线,BIU 114执行处理器总线118上的单一写入交易来写入整个储存线,然而,假定一个储存线写入是不可能的,也就是说,假定写入缓冲器164包含位于不同储存线或不连续的储存数据,那么BIU 114执行多个尽可能大的写入交易,以便最有效率地使用处理器总线118,流程由方框228进入方框232。
在方框232,控制逻辑108分配一可用的写入缓冲器,并由储存缓冲器138将新储存数据加载新分配的写入缓冲器164,流程在方框232结束。
现在请参考图3,其为图1的结合写入装置100依据图2所显示的流程图操作的实例的表格,此表为如下例一的码序(code sequence)由结合写入装置100执行情形
例一STORE A ST 0x00001000 0xAASTORE B ST 0x00002000 0xBBSTORE C ST 0x00003000 0xCCSTORE D ST 0x00004000 0xDDSTORE E ST 0x00005000 0xEE此码序包括5个可结合写入单一字节储存指令,标示为STORE A、B、C、D、及E,每个储存指令的图1的储存数据156和储存数据总线地址152的值也有显示,正如以下将看到的说明,例一的码序并没有提供结合写入装置100执行结合写入的机会。
此表包括8行,第1行是列号,第2行说明一个事件,第3行说明结合写入装置100对应于事件产生的动作,第4行说明第3行中的动作后图1中的LWSA缓存器106和LWST缓存器104的内容,第5至8行说明第3行中的动作后图1中的写入缓冲卷标缓存器162和写入缓冲器164的内容。
特别地,第5至8行说明对应的写入缓冲器164的哪一个字节是有效的、对应的写入缓冲卷标缓存器162的卷标值、写入缓冲卷标缓存器162中qwab的值、及写入缓冲器164中的储存数据。
表中第1列为起始情况,因而没有动作,起始时,LWSA 106是0x0000、LWST 104是0、及写入缓冲器164是空的,也就是说,所有数据字节都是无效的。
第2列中,STOREA的储存数据总线地址152与LWSA 106不符合,如图2的方框206所决定,因此,图1的卷标分配逻辑102分别依据图2的方框208和212分配下一递增卷标-卷标1给STORE A并将LWSA 106和LWST 104更新为STORE A的储存数据总线地址152-0x1000和新分配的卷标值-卷标1。
第3列中,控制逻辑108依据图2的方框222,决定STORE A的卷标与所有写入缓冲卷标,也就是写入缓冲卷标缓存器162的所有卷标不符合,因此,控制逻辑108分配WB1 164A给STORE A,并依据图2的方框232将STORE A的数据0xAA加载WB1 164A。
第4列中,STORE B的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标2给STORE B并将LWSA 106和LWST104更新为STORE B的储存数据总线地址152-0x2000和新分配的卷标值-卷标2。
第5列中,控制逻辑108依据方框222,决定STORE B的卷标与所有写入缓冲卷标不符合,因此,控制逻辑108分配WB2 164B给STORE B,并依据方框232将STORE B的数据0xBB加载WB2 164B。
第6列中,STORE C的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标3给STORE C并将LWSA 106和LWST104更新为STORE C的储存数据总线地址152-0x3000和新分配的卷标值-卷标3。
第7列中,控制逻辑108依据方框222,决定STORE C的卷标与所有写入缓冲卷标不符合,因此,控制逻辑108分配WB3 164C给STORE C,并依据方框232将STORE C的数据0xCC加载WB3 164C。
第8列中,STORED的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标4给STORE D并将LWSA 106和LWST104更新为STORE D的储存数据总线地址152-0x4000和新分配的卷标值-卷标4。
第9列中,控制逻辑108依据方框222,决定STORED的卷标与所有写入缓冲卷标不符合,因此,控制逻辑108分配WB4 164D给STORE D,并依据方框232将STORE D的数据0xDD加载WB4 164D。
第10列中,STORE E的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标5给STORE E并将LWSA 106和LWST104更新为STORE E的储存数据总线地址152-0x5000和新分配的卷标值-卷标5。
第11列中,控制逻辑108依据方框222,决定STORE E的卷标与所有写入缓冲卷标不符合,控制逻辑108也依据图2的方框226决定没有写入缓冲器164可用,因此,控制逻辑108和图1的BIU 114经由执行4次1字节的处理器总线118上写入交易,来清除写入缓冲器164。
第12列中,写入缓冲器164清除完成,且控制逻辑108分配WB1164A给STORE E,并依据方框232将STORE E的数据0xEE加载WB1164A。
如表格说明所述,例一的码序并没有提供结合写入装置100执行结合写入的机会,也就是说,四个储存指令A至D的储存数据总线地址152的关系,造成产生处理器总线118上四次写入交易的结果,特别地,储存指令数据是位于不同储存线,现在,将要描述一个储存指令的储存数据总线地址152的关系,是结合写入装置100执行结合写入关系的实例。
现在请参考图4,其为图1的结合写入装置100依据图2显示的流程图的另一操作例表格,此表类似于图3的表格,说明如下例二码序由结合写入装置100执行情形例二STORE A ST 0x00001000 0xAASTORE B ST 0x00002000 0xBBSTORE C ST 0x00003000 0xCCSTORE D ST 0x00004000 0xDDSTORE E ST 0x00004001 0xEESTORE F ST 0x00005000 0xFF此码序包含六个可结合写入单一字节储存指令,标示为STORE A、B、C、D、E、及F,前四个储存指令和图3的例1的一样,如下的说明将看到的,例2的码序提供结合写入装置100执行结合写入的机会。
表中第1列说明起始情况,表中的起始情况为前四个储存指令执行后的状态,也就是说,STORE A、B、C、和D的储存数据已经加载写入缓冲器164,如图3例1的表格的第9列中一样,起始时,LWSA106是0x4000,LWST 104是4,而每一个写入缓冲器164的最小字节存有有效数据。
第2列中,STORE E的储存数据总线地址152与LWSA 106相符合,如方框206所决定,也就是STORE E与最后通过S-stage 172的储存指令STORE D的储存线相同,因此,卷标分配逻辑102依据方框214指定一致的卷标-卷标4给STORE E。
第3列中,控制逻辑108依据方框222决定STORE E的卷标和qwab与WBTR4 162D中的卷标和qwab相符合,因此,控制逻辑108依据图2的方框224将STORE E数据0xEE并入WB4。
第4列中,STORE F的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标5给STORE F并将LWSA 106和LWST104更新为STORE F的储存数据总线地址152-0x5000和新分配的卷标值-卷标5。
第5列中,控制逻辑108依据方框222,决定STORE F的卷标与所有写入缓冲卷标不符合,控制逻辑108也依据方框226决定没有写入缓冲器164可用,因此,控制逻辑108和BIU 114依据图2的方框228,经由执行3次1字节的处理器总线118上写入交易,来清除写入缓冲器164A、164B、和164C,及1次2字节写入交易来清除写入缓冲器164D。
第6列中,写入缓冲器164清除完成,且控制逻辑108分配WB1164A给STORE F,并依据方框232将STORE F的数据0xFF加载WB1164A。
正如表格说明所见,例二的码序提供结合写入装置100执行结合写入的机会,也就是五个储存指令A至E的储存数据总线地址152的关系,是导致只产生四个处理器总线118上的写入交易而不是五个的关系,特别地,储存指令D和E的数据是位于相同储存线的相同qword中,现在,将说明储存指令的储存数据总线地址152的关系是结合写入装置100执行完整储存线的结合写入关系的实例。
现在请参考图5,其为图1的结合写入装置100依据图2显示的流程图的另一操作例表格,此表类似于图3和图4的表格,说明如下例三码序由结合写入装置100执行情形
例三STORE AST 0x00001000 0xAAAAAAAAAAAAAAAASTORE BST 0x00001008 0xBBBBBBBBBBBBBBBBSTORE CST 0x00001010 0xCCCCCCCCCCCCCCCCSTORE DST 0x00001018 0xDDDDDDDDDDDDDDDDSTORE EST 0x00001020 0xEEEEEEEEEEEEEEEE此码序包含五个可结合写入qword储存指令,标示为STORE A、B、C、D、及E,其显示每一储存指令的图1的储存数据156和储存数据总线地址152,如下的说明将看到的,例3的码序提供结合写入装置100执行整个储存线的结合写入的机会。
表中第1列说明起始情况,因而没有动作,起始时,LWSA 106是0x0000、LWST 104是0、及写入缓冲器164是空的,也就是说,所有数据字节都是无效的。
第2列中,STOREA的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标1给STORE A并将LWSA 106和LWST104更新为STORE A的储存数据总线地址152-0x1000和新分配的卷标值-卷标1。
第3列中,控制逻辑108依据方框222,决定STORE A的卷标与所有写入缓冲卷标不符合,因此,控制逻辑108依据方框232分配WB1164A给STORE A,并将STORE A的数据0xAAAAAAAAAAAAAAAA加载WB1 164A。
第4列中,STORE B的储存数据总线地址152与LWSA 106相符合,如方框206所决定,也就是STORE B的储存线地址与LWSA 106相符合,因此,卷标分配逻辑依据方框214指定相符的卷标-卷标1给STORE B。
第5列中,控制逻辑108依据方框222决定STORE B的qwab与所有写入缓冲qwab不符合,因此,控制逻辑108依据方框232,分配WB2 164B给STORE B,并将STORE B数据0xBBBBBBBBBBBBBBBB加载WB2 164B。
第6列中,STORE C的储存数据总线地址152与LWSA 106相符合,如方框206所决定,因此,卷标分配逻辑依据方框214指定相符的卷标-卷标1给STORE C。
第7列中,控制逻辑108依据方框222决定STORE C的qwab与所有写入缓冲qwab不符合,因此,控制逻辑108依据方框232,分配WB3 164C给STORE C,并将STORE C数据0xCCCCCCCCCCCCCCCC加载WB3 164C。
第8列中,STORED的储存数据总线地址152与LWSA 106相符合,如方框206所决定,因此,卷标分配逻辑依据方框214指定相符的卷标-卷标1给STORE D。
第9列中,控制逻辑108依据方框222决定STORE D的qwab与所有写入缓冲qwab不符合,因此,控制逻辑108依据方框232,分配WB4 164D给STORE D,并将STORE D数据0xDDDDDDDDDDDDDDDD加载WB4 164D。
第10列中,STORE E的储存数据总线地址152与LWSA 106不符合,如方框206所决定,因此,卷标分配逻辑102分别依据方框208和212分配下一递增卷标-卷标2给STORE E,并将LWSA 106和LWST 104更新为STORE E储存数据总线地址152-0x1020和新分配的卷标值-卷标2。
第11列中,控制逻辑108依据方框222决定STORE E的卷标与所有写入缓冲卷标不符合,控制逻辑也依据方框226决定没有写入缓冲器164可用,因此,图1的控制逻辑108和BIU 114依据图2的方框228,以执行一次32字节的处理器总线118上写入交易来清除总线缓冲器164。
第12列中,清除写入缓冲器164完成,控制逻辑108依据方框232分配WB1 164A给STORE E,并将STORE E数据0xEEEEEEEEEEEEEEEE加载WB1 164A。
正如表格说明所见,例三的码序提供结合写入装置100执行整个储存线的结合写入的机会,也就是4个储存指令A至D的储存数据总线地址152的关系是导致产生处理器总线118上单一32字节写入交易的关系,特别地,4个储存指令的数据包含了整个储存线的4个qword。
于是,由前述的说明可知,本发明有益地提供了一种装置,其于加载储存数据至写入缓冲器执行周期时,比较小的地址卷标而不是大的地址来执行结合写入。有益地,因为卷标比较快于地址比较,且卷标比较比地址比较可以更接近写入缓冲控制逻辑来执行,故相关的结合写入电路的逻辑成为微处理器周期时序重要路径的可能也避免了。
虽然本发明及其目的、特征和优点已详细说明如上,本发明也可包含其它实施例,例如,比较卷标而不是地址来决定哪一个写入缓冲器要放进储存数据的观念,可以适用于各种不同大小的写入缓冲器宽度、处理器总线的数据总线宽度、处理器总线的地址总线宽度、和储存线宽度,此外,可分配卷标数目和不同卷标的分配方式也可以改变。
虽然本发明以一实施例说明如上,然其并非用以限定本发明,任何熟悉此技术者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当以权利要求书为准。
权利要求
1.一种微处理器中的结合写入装置,经由一总线耦接一内存,该微处理器具有复数个写入缓冲器,用以缓冲写入该总线上的该内存的数据,其特征为该装置包括一卷标分配逻辑,用以分配卷标给与该微处理器中执行的储存指令相关的一储存数据,其中该卷标分配逻辑根据比较该储存数据的总线地址,来分配该卷标;复数个卷标比较器,耦接该卷标分配逻辑,用以比较该卷标分配逻辑分配的该卷标;以及一写入缓冲控制逻辑,耦接该复数个卷标比较器,用以根据该些卷标比较器的该卷标比较结果,决定加载该储存数据至该些写入缓冲器的哪一个。
2.如权利要求1所述的装置,其特征为还包括复数个卷标缓存器,耦接该复数个卷标比较器,用以储存写入缓冲卷标,该些写入缓冲卷标包括该卷标分配逻辑所分配的该些卷标的一相关于储存在相关的该些写入缓冲器的该储存数据的一部分卷标。
3.如权利要求2所述的装置,其特征为其中每一该些卷标比较器将相关的该些写入缓冲卷标之一与一新卷标作比较。
4.如权利要求3所述的装置,其特征为其中该新卷标包括该卷标分配逻辑分配的该些卷标中的一相关于新储存数据卷标。
5.如权利要求4所述的装置,其特征为其中该新储存数据包括还没有存入该些写入缓冲器之一的该储存数据的一部分。
6.如权利要求5所述的装置,其特征为其中该卷标分配逻辑根据该新储存数据相关的一新总线地址与一最后总线地址的比较,来分配该新卷标。
7.如权利要求6所述的装置,其特征为其中该最后总线地址包括该卷标分配逻辑先前分配的该些卷标之一的最后该储存数据相关的一总线地址。
8.如权利要求7所述的装置,其特征为其中如果该新总线地址与该最后总线地址是位于相同储存线,则该卷标分配逻辑以一与最后卷标相同的值来分配该新卷标。
9.如权利要求8所述的装置,其特征为其中该最后卷标包括该些卷标的一该卷标分配逻辑分配给该最后总线地址相关的最后该储存数据的卷标。
10.如权利要求9所述的装置,其特征为其中如果该新总线地址与该最后总线地址并非位于相同的储存线,则该卷标分配逻辑以一与该最后卷标不同的值来分配该新卷标。
11.如权利要求10所述的装置,其特征为其中与该最后卷标不同的该值包括该最后卷标的下一递增值。
12.如权利要求5所述的装置,其特征为其中如果该新卷标与该些写入缓冲卷标之一相符合,则该写入缓冲控制逻辑将该新数据加载该相符合的写入缓冲卷标相关的该些写入缓冲器之一。
13.如权利要求12所述的装置,其特征为其中只有当该新数据与该相符合的写入缓冲卷标相关的一该写入缓冲器中的该储存数据的一部分位于相同储存线子集时,该写入缓冲控制逻辑将该新数据加载该相符合的写入缓冲卷标相关的一该写入缓冲器。
14.如权利要求13所述的装置,其特征为其中该储存线的该子集包括等于该些写入缓冲器之一宽度的该储存线的一部分。
15.如权利要求13所述的装置,其特征为其中该储存线的该子集包括等于该总线的数据总线部分宽度的该储存线的一部分。
16.如权利要求13所述的装置,其特征为其中该储存线的该子集包括8字节。
17.如权利要求12所述的装置,其特征为其中如果该新卷标并不符合任何的该写入缓冲卷标,则该写入缓冲控制逻辑将该新数据加载该些写入缓冲器之一空的该写入缓冲器。
18.如权利要求17所述的装置,其特征为其中如果没有任何该些写入缓冲器是空的,则该写入缓冲控制逻辑将该些写入缓冲器的一或更多该写入缓冲器中的该数据写入该总线上的该内存,以产生该些写入缓冲器之一空的该写入缓冲器。
19.一种处理器中的装置,用以决定一第一储存操作的一第一数据是否可与一第二储存操作的一第二数据结合成为耦接该处理器的一总线上的单一写入操作,该第一和第二数据分别具有第一和第二地址,其特征为该装置包括一卷标分配逻辑,用以根据该第一地址与该第二地址的比较,来分配第一卷标给该第一数据;一卷标比较器,耦接该卷标分配逻辑,用以比较该第一卷标与该卷标分配逻辑先前分配给该第二数据的该第二卷标;以及一结合写入逻辑,耦接该卷标比较器,用以根据该卷标比较器比较该第一和第二卷标的比较结果,决定是否可以结合该第一和第二数据。
20.如权利要求19所述的装置,其特征为其中如果该第一和第二地址表示相同的储存线,则该卷标分配逻辑以等于该第二卷标的值,来分配该第一卷标。
21.如权利要求20所述的装置,其特征为其中如果该第一和第二地址没有表示相同的储存线,则该卷标分配逻辑以不同于该第二卷标的值,来分配该第一卷标。
22.如权利要求19所述的装置,其特征为其中该卷标比较器和该结合写入逻辑设定为在该处理器中的单一时序周期比较该第一和第二卷标,并将该第一数据加载该处理器的一写入缓冲器中。
23.如权利要求22所述的装置,其特征为其中该卷标分配逻辑设定于该第一数据写入该写入缓冲器的该单一时序周期前至少一处理器时序周期,根据该第一地址与该第二地址的比较结果,分配该第一卷标给该第一数据。
24.如权利要求19所述的装置,其特征为其中该第一和第二卷标包括较该第一和第二地址少许多的位数。
25.如权利要求24所述的装置,其特征为其中该第一和第二卷标包括较该第一和第二地址少于一半的位数。
26.如权利要求19所述的装置,其特征为其中该第一和第二地址包括最少25位。
27.一种结合写入处理器,其特征为包括复数个写入缓冲器,用以缓冲要写入耦接至处理器的总线上内存的相关复数个数据;复数个卷标缓存器,耦接该些写入缓冲器,用以储存与该些数据相关的复数个卷标;一储存缓冲器,耦接该些写入缓冲器,用以缓冲等待写入该处理器储存器的储存数据;一卷标缓存器,耦接该储存缓冲器,用以储存与该储存数据相关的卷标;以及复数个卷标比较器,耦接该些卷标缓存器,用以比较该卷标与该些卷标;其中,该处理器根据该些卷标比较器的比较结果,在该储存数据写入该总线的内存前,选择性地将该储存数据与缓冲于该些写入缓冲器的该些数据之一相结合。
28.如权利要求27所述的结合写入处理器,其特征为还包括一总线接口单元,耦接于该些写入缓冲器与该总线之间,用以将该些相关数据写入该总线上的该内存。
29.如权利要求28所述的结合写入处理器,其特征为其中该总线接口单元以较该处理器执行产生储存于该些写入缓冲器的该些数据的储存指令为少的总线交易,来将该些相关数据写入该总线上的该内存。
30.如权利要求27所述的结合写入处理器,其特征为还包括一卷标分配逻辑,耦接该些卷标缓存器,用以分配该卷标和该些卷标。
31.如权利要求30所述的结合写入处理器,其特征为还包括一写入缓冲控制逻辑,耦接该些写入缓冲器,用以根据该些卷标比较器的比较结果,在该储存数据写入该总线的内存前,选择性地将该储存数据与缓冲于该些写入缓冲器的该些数据之一相结合。
32.如权利要求31所述的结合写入处理器,其特征为其中该微处理器包括管线阶,其中该卷标分配逻辑位于该写入缓冲控制逻辑所在的管线阶前。
33.如权利要求31所述的结合写入处理器,其特征为其中该微处理器包括管线阶,其中该些卷标比较器位于与该写入缓冲控制逻辑所在相同的管线阶。
34.如权利要求27所述的结合写入处理器,其特征为其中每一该些卷标比较器执行少于6个位的比较。
35.一种具有管线阶的微处理器中执行结合写入的方法,其特征为包括产生第一储存数据的一第一卷标;在产生该第一卷标后,比较该第一储存数据的第一总线地址与第二储存数据的第二总线地址;对应于该第一和第二总线地址的比较结果,产生该第二储存数据的一第二卷标;比较该第一和第二卷标;以及根据该第一和第二卷标的比较结果,选择性地结合该第一和第二数据。
36.如权利要求35所述的方法,其特征为其中比较该第一和第二总线地址包括决定该第一和第二总线地址是否代表相同的储存线。
37.如权利要求36所述的方法,其特征为其中产生该第二卷标包括如果该第一和第二总线地址代表相同的储存线,则以该第一卷标的相同值来产生该第二卷标。
38.如权利要求37所述的方法,其特征为其中产生该第二卷标包括如果该第一和第二总线地址代表不相同的储存线,则以不同于该第一卷标的值来产生该第二卷标。
39.如权利要求35所述的方法,其特征为其中比较该第一和第二卷标包括决定该第一和第二卷标是否相符合。
40.如权利要求39所述的方法,其特征为其中选择性地结合该第一和第二数据包括如果该第一和第二数据相符合,则结合该第一和第二数据。
41.如权利要求40所述的方法,其特征为其中选择性地结合该第一和第二数据包括如果该第一和第二数据相符合,且该第一和第二数据位于耦接该微处理器的处理器总线地址空间的相同字组,则结合该第一和第二数据。
42.如权利要求41所述的方法,其特征为其中该字组包括该处理器总线的数据总线部分的宽度。
43.如权利要求41所述的方法,其特征为其中该字组包括8字节的宽度。
44.如权利要求40所述的方法,其特征为其中该结合包括将该第二储存数据并入已经加载该第一数据的写入缓冲器中。
45.如权利要求39所述的方法,其特征为其中选择性地结合该第一和第二数据包括如果该第一和第二卷标不相符合,则将该第一和第二数据加载不同的写入缓冲器;以及以单一的该总线交易,将该第一和第二数据由该不同的写入缓冲器写入耦接该处理器总线上的内存。
全文摘要
一种微处理器中依据卷标(tag-based)来结合写入(write-combining)的装置,此装置包括一储存通过管线储存阶(store stage of the pipeline)的最后可结合写入储存的储存地址的缓存器,卷标分配逻辑比较最后储存地址与新储存的储存地址,如果地址是在相同的储存线(cacheline),则分配与先前分配给最后储存相同的卷标,否则指定下一递增卷标,卷标缓存器储存写入缓冲器中等待写入处理器总线上内存的储存数据相关的写入缓冲卷标,当新储存到达写入缓冲阶,卷标比较器比较新储存卷标与写入缓冲储存卷标,如果卷标相符合,则写入缓冲控制逻辑将新储存数据与拥有相符卷标的写入缓冲器中的储存数据相结合。
文档编号G06F9/38GK1367440SQ02107190
公开日2002年9月4日 申请日期2002年3月14日 优先权日2001年7月31日
发明者葛林G·亨利, 罗德尼E·虎克 申请人:智权第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1