技术领域
[0001] 本发明是有关于一种总线装置,且特别是有关于一种预设为猜测式数据交易的总线装置及其非猜测的延伸。
相关背景技术
[0002] 总线数据交易(bus transaction)是一种从总线主控器(bus master)载运数据到总线从控器(bus slave),或是从总线从控器取回数据至总线主控器的数据交易。总线主控器通常为数据处理引擎(data processing engine,简称:DPE),例如为可抓取(fetch)、解码(decode)和执行指令(instruction)的微处理器(microprocessor)。总线从控器通常为储存装置,例如为实体存储器(physical memory)。由于DPE的处理能力(throughput)永远都不够高,于是很多管线式的(pipelined)DPE通过支持猜测式(speculative)的指令抓取以达到更高的处理能力。当这样的DPE在抓取一个分支(branch)指令时,DPE会先预测此分支指令的目标地址(target address),接着从此目标地址抓取新指令后传(feed)入管线(pipeline),而不是闲置地(idly)等待目标地址的确认结果。当DPE发现此预测是错误的之后,仅须清除(flush)其管线内抓错(mis-fetched)的指令即可。当预测为正确时,DPE则可因为指令早已在管线中而省下时间。类似的用来加速总线系统的猜测式总线界面存在着。
[0003] 总线主控器可能具有多个总线界面,分别与多个周边装置连接,也就是所谓的总线从控器。每个总线界面可被映射(mapped)至不同的地址空间(address space)。对于这样的总线主控器而言,要满足三个条件才会交付(commit)指令以发出(issue)对应的总线数据交易。第一个条件为执行指令,这意味着此指令并没有被清除或取消(cancelled)。第二个条件为完成由指令的地址转换至对应到一个总线界面的地址空间的转换(translation)过程。第三个条件为指令地址的权限允许此指令的存取。在非猜测式的总线系统中,只有在相对应的指令同时满足上述的三个条件时,总线主控器才会发送数据交易至总线从控器。
[0004] 另一方面,在猜测式的总线系统中,只要总线主控器能以某种方式预测或猜测出此指令可能会产生上述被交付至总线从控器的总线数据交易,总线主控器就可以在还没完全符合上述三种情形时就发送数据交易至总线从控器。这样的总线数据交易被称作猜测式的总线数据交易。当总线主控器稍后发现到此指令即将被终止(abort)时,相对应的猜测式总线数据交易也会被终止,而此终止作动是通过舍弃(discard)即将写入总线从控器的数据或是即将从总线从控器读取的数据来达成。当指令被交付时,猜测式的总线数据交易速度总是能比非猜测式的总线数据交易来的快一些,因为猜测式总线数据交易早已先一步被发出(issued)。
具体实施方式
[0048] 现将提供本申请案的实施例的细节用以参考,范例的说明是辅以所示附图进行,在附图及文句中所对应的同样或类似部分所使用的参考编号为相同的。
[0049] 图1是根据本发明的一实施例所绘示的总线装置的示意图。总线装置100包括总线主控器110及总线从控器120。总线主控器110可为DPE,例如微处理器。总线从控器则可为硬件储存装置,例如为存储器。总线主控器110及总线从控器120是通过总线界面130相互耦接至对方。总线界面130可为图2中所绘示的猜测式总线界面(speculative bus interface,简称:SBI)230、图5中所绘示的延伸式猜测式总线界面(extendedspeculative bus interface,简称:ESBI)530、图9中所绘示的非猜测式/猜测式总线界面(non-speculative/speculative bus interface,简称:NSBI)930或是图13中所绘示的延伸式猜测式/非猜测式总线界面(extended non-speculative/speculative bus interface,简称:ENSBI)1330。这些总线界面将在之后进行详细讨论。图1中虽然只绘示了一个总线从控器,但总线界面130是可被用以连接多于一个的总线从控器的。在本发明接下来所提出的实施例中,为了简洁性而都只使用一个总线从控器来作说明。
[0050] 总线主控器110可发送总线数据交易至总线从控器120。总线从控器120通过消耗(consuming)相关数据或是回传数据来执行此总线数据交易。在本实施例中,所有的总线数据交易皆被预设为猜测式的。各总线数据交易是由总线主控器110中的某些内部操作(internal operation)所导出(induce)。举例而言,由总线主控器110所发出的读取数据交易可被执行于总线主控器110中的载入(load)指令所导出,而由总线主控器110所发出的写入数据交易则可被执行于总线主控器110中的储存(store)指令所导出。总线主控器110的内部操作可导出零个或更多的总线数据交易。
[0051] 总线主控器110中的内部操作可能会多次发出其所对应的总线数据交易。而这些数据交易中至多只有一个对此内部操作而言是有意义的,而其他则为猜测式的。若此对内部操作而言为有意义的数据交易存在的话,即为众多同样的数据交易复制品(replication)中的最后一个。只有有意义的那个数据交易会被交付,而其他的数据交易复制品则会被取消或终止。这样的总线主控器也同样对其内部操作使用猜测式地处理;也就是说,直到达到此总线主控器的内部处理的最后阶段(final stage)之前,这个内部操作都不会被确认(confirm)。而在达到最后阶段之前,内部操作都可能被取消,且内部操作所做的所有事情,不论是内部地或外部地,都不会影响到下一个没被取消的(non-cancelled)内部操作。此种总线主控器的典型例子为管线式的(pipelined)微处理器。
[0052] 为了达到更好的效率,一旦总线主控器110发送出总线数据交易时,总线从控器120不可要求总线主控器110之后再重传此总线数据交易。而总线从控器120并不知道总线主控器110的某一内部操作是否具有多个总线数据交易复制品。换句话说,当总线从控器120自总线主控器110收到一总线数据交易,总线从控器120无法得知哪一个总线主控器110的内部操作导出此总线数据交易。此外,总线从控器120也无法得知导出此总线数据交易的内部操作终将会被确认或是被取消。总线从控器120必须平等地执行每个总线数据交易。所以,总线从控器120必须容忍猜测式的总线数据交易,而这意味着总线从控器120的元件(例如为寄存器)无论被同样的总线数据交易存取了多少次,总线从控器120产出的结果状态都是一样的。
[0053] 图2是根据本发明的一实施例所绘示的具有猜测式总线界面的总线装置的示意图。总线装置200包括了总线主控器110及总线从控器120。总线主控器110和总线从控器120是通过SBI230互相耦接至对方。各总线主控器110及总线从控器120皆接收总线时脉信号Bus Clk。而时脉信号Bus Clk是负责控制所有的总线数据交易的时间点。总线主控器110通过SBI230传送下列信号至总线从控器120:总线请求(request)信号Bus Req、总线命令信号Bus WR、总线地址信号Bus Addr以及总线写入数据信号Bus WData。而总线从控器120通过SBI230将总线等待信号Bus Wait以及总线读取数据信号Bus RData传送至总线主控器110。SBI230是一种包括多个信号路径的硬件界面,而这些信号路径是用来传送在总线主控器110及总线从控器120间所传送的信号。
[0054] 当总线主控器110产生总线数据交易要交给总线从控器120执行时,总线主控器110致能总线请求信号Bus Req且将总线数据交易的命令包括在总线命令信号Bus WR,用以指出总线数据交易为写入数据交易或是读取数据交易。在此实施例中,总线命令信号Bus WR的致能(asserted)状态代表着写入命令,而总线命令信号Bus WR的禁能(de-asserted)状态代表着读取命令。当总线数据交易为写入数据交易时,总线主控器110将总线数据交易的地址包括在总线地址信号Bus Addr中,而将总线数据交易的写入数据包括在总线写入数据信号Bus WData中。而总线从控器120的回应作动为将总线数据交易的写入数据储存至总线数据交易的地址上。当总线数据交易为读取数据交易时,总线主控器110将总线数据交易的地址包括在总线地址信号Bus Addr中。而总线从控器120回应此读取数据交易的作动则为将储存在总线数据交易地址上的读取数据包括在总线读取数据信号Bus RData中之后,将总线读取数据信号Bus RData传送至总线主控器110。
[0055] 总线从控器120通过致能总线等待信号Bus Wait来告知总线主控器110总线从控器120在一特定时间区间内将不接受另外的总线数据交易。举例来说,此特定时间区间可以起始于总线从控器120致能总线等待信号Bus Wait后,总线时脉信号Bus Clk的下一个周期,而且结束于总线从控器120禁能总线等待信号Bus Wait的总线时脉信号Bus Clk的周期中。当总线数据交易需要花多一点时间才能完成时,总线从控器120可以致能总线等待信号Bus Wait来指出总线从控器120正忙碌(busy)于处理目前的总线数据交易,还没准备好要接收下一个数据交易。
[0056] 图3及图4是图2中所示总线装置的信号波形的示意图。图3是根据本发明的一实施例所绘示的在连续五个写入数据交易期间中,总线装置200的总线信号的示意图。T1代表总线时脉信号Bus Clk的第一个周期(也就是第一个时脉周期),T2代表总线时脉信号Bus Clk的第二个周期(也就是第二个时脉周期),之后以此类推。A、B、C、D及E分别为第一、第二、第三、第四及第五个写入数据交易的地址。同样地DA、DB、DC、DD及DE则分别为第一、第二、第三、第四及第五个写入数据交易的写入数据。各写入数据皆需使用一个时脉周期来进行。
[0057] 图4是根据本发明的一实施例所绘示的在连续五个读取数据交易期间中,总线装置200的总线信号的示意图。A、B、C及D及E分别为第一、第二、第三、第四及第五个读取总线数据交易的地址。同样地DA、DB、DC、DD及DE则分别为第一、第二、第三、第四及第五个读取数据交易的读取数据。事实上,第一及第五个数据交易是根据同样的总线主控器110的内部操作所产生的复制品。而虽然与此内部操作相关连的总线数据交易已被总线从控器120所完成,此导出第一读取数据交易的内部操作终究还是被取消了。导出第五读取数据交易的同一内部操作则被交付。在总线主控器110这类的猜测式总线系统中,除非读取数据有被其他的写入数据更改(modified)过,否则这些重复的猜测式读取数据交易应当总是会得到相同的结果。
[0058] 图5是根据本发明的一实施例所绘示的具有延伸式猜测式总线界面的总线装置的示意图。总线装置500包括了总线主控器110及总线从控器120。总线主控器110及总线从控器120是通过ESBI总线界面530互相耦接至对方。ESBI530包括了SBI230及图2中所绘示的所有总线信号。此外,各总线主控器110及总线从控器120从ESBI总线界面530接收静态(static)命令/地址等待状态信号Cmd Addr WS、静态写入数据等待状态信号WData WS以及静态写入数据等待状态信号WData WS。
[0059] 静态命令/地址等待状态信号Cmd Addr WS决定总线主控器110维持命令Bus WR及地址Bus Addr不变的时间长度,而此时间长度是用来让总线从控器120接收此命令及地址的。静态写入数据等待状态信号WData WS决定总线主控器110维持总线数据交易的写入数据信号Bus WData不变的时间长度,而此时间长度是用来让总线从控器120接收此写入数据的。静态读取数据等待状态信号RData WS决定总线从控器120用来以读取总线读取数据信号Bus RData回应读取数据交易的时间长度。根据静态读取数据等待状态信号RData WS,总线主控器110应当期望稍后会取回读取数据。上述三种静态等待状态信号皆为静态的。换句话说,在总线数据交易的期间中,静态命令/地址等待状态信号Cmd Addr WS、静态写入数据等待状态信号WData WS及静态读取数据等待状态信号RData WS都是不会为该总线数据交易而作改变的。
[0060] 在此实施例中,静态命令/地址等待状态信号Cmd Addr WS将总线主控器110维持总线数据交易的命令Bus WR以及地址Bus Addr不变的时间长度延长了数个总线时脉信号Bus Clk的周期,而此延长的周期数是等于静态命令/地址等待状态信号Cmd Addr WS的值。举例而言,图3中绘示的是静态命令/地址等待状态信号Cmd Addr WS的值为0的预设情况。于是总线主控器110维持各总线数据交易的总线命令信号Bus WR及总线地址信号Bus Addr在一个时脉周期内不变。当静态命令/地址等待状态信号Cmd Addr WS的值为1时,总线主控器110则维持各总线数据交易的总线命令信号Bus WR及总线地址信号Bus Addr在两个时脉周期内不变。当静态命令/地址等待状态信号Cmd Addr WS的值为2时,总线主控器110则维持各总线数据交易的总线命令信号Bus WR及总线地址信号Bus Addr在三个时脉周期内不变,以此类推。
[0061] 在本实施例中,静态写入数据等待状态信号WData WS将总线主控器110维持总线数据交易的写入数据信号Bus WData不变的时间长度延长了数个总线时脉信号Bus Clk的周期,而此延长的周期数是等于静态写入数据等待状态信号WData WS的值。举例而言,图3中绘示的是静态写入数据等待状态信号WData WS的值为0的预设情况。于是总线主控器110维持各总线数据交易的总线写入数据信号Bus WData在一个时脉周期内不变。当静态写入数据等待状态信号WData WS的值为1时,总线主控器110则维持各总线数据交易的总线写入数据信号Bus WData在两个时脉周期内不变。当静态写入数据等待状态信号WData WS的值为2时,总线主控器110则维持各总线数据交易的写入数据信号Bus WData在三个时脉周期内不变,以此类推。
[0062] 在本实施例中,静态读取数据等待状态信号RData WS将总线从控器120用来以读取数据Bus RData回应读取数据交易的时间长度延长数个总线时脉信号Bus Clk的周期,而此延长的周期数是等于静态读取数据等待状态信号RData WS的值。举例而言,图4中绘示的是静态读取数据等待状态信号RData WS的值为0的预设情况。于是总线从控器120用来以读取总线读取数据信号Bus RData回应读取数据交易的时间为一个时脉周期。当静态读取数据等待状态信号RData WS的值为1时,总线从控器120用来以读取数据Bus RData回应读取数据交易的时间则会多一个时脉周期。当静态读取数据等待状态信号RData WS的值为2时,总线从控器120用来以读取数据Bus RData回应读取数据交易的时间则会多两个时脉周期,以此类推。
[0063] 静态命令/地址等待状态信号Cmd Addr WS、静态写入数据等待状态信号WData WS以及静态读取数据等待状态信号RData WS可为三个分开(separate)的信号。或者,静态命令/地址等待状态信号Cmd Addr WS、静态写入数据等待状态信号WData WS及静态读取数据等待状态信号RData WS也可被统一(unified)成一个单独的静态等待状态信号Static WS,其将会被绘示在接下来的附图中。
[0064] 在本实施例中,总线从控器120可通过ESBI总线界面530,至少传送一动态命令/地址等待状态信号、一动态写入数据等待状态信号以及一动态读取数据等待状态信号的其中之一至总线主控器110。“动态”一词指的是说这些动态等待状态信号在总线数据交易的期间中可被改变,用意在于将其对应的静态等待状态信号的延长时间再进一步延长。
[0065] 当总线从控器120在总线主控器110维持总线数据交易的总线命令信号Bus WR及总线地址信号Bus Addr不变的时间长度中致能了动态命令/地址等待状态信号时,而且此时间长度是用来让总线从控器120接收总线命令信号Bus WR及总线地址信号Bus Addr时,总线主控器110维持总线数据交易的总线命令信号Bus WR以及总线地址信号Bus Addr不变的时间长度会被进一步延长,而此延长是根据总线从控器120禁能此动态命令/地址等待状态信号的时间点而执行。在本实施例中,总线主控器110维持总线数据交易的命令Bus WR以及地址Bus Addr不变的时间长度被进一步延长至总线从控器120禁能此动态命令/地址等待状态信号的总线时脉信号Bus Clk周期中。
[0066] 当总线从控器120在总线主控器110维持总线数据交易的总线写入数据信号Bus WData不变的时间长度中致能了动态写入数据等待状态信号,而且此时间长度是用来让总线从控器120接收总线写入数据信号Bus WData时,总线主控器110维持总线数据交易的总线写入数据信号Bus WData不变的时间长度会被进一步延长,而此延长是根据总线从控器120禁能此动态写入数据等待状态信号的时间点而执行。在本实施例中,总线主控器110维持总线数据交易的总线写入数据信号Bus WData不变的时间长度被进一步延长至总线从控器120禁能此动态写入数据等待状态信号的总线时脉信号Bus Clk周期中。
[0067] 当总线从控器120在总线从控器120用来以读取总线读取数据信号Bus RData回应读取数据交易的时间长度中,致能了动态读取数据等待状态信号时,此总线从控器120用来以读取总线读取数据信号Bus RData回应读取数据交易的时间长度被进一步延长,而此延长是根据总线从控器120禁能此动态读取数据等待状态信号的时间点而执行。在本实施例中,总线从控器120用来以读取总线读取数据信号Bus RData回应读取数据交易的时间长度被进一步延长至总线从控器120禁能此动态读取数据等待状态信号的总线时脉信号Bus Clk周期中。
[0068] 动态命令/地址等待状态信号、动态写入数据等待状态信号以及动态读取数据等待状态信号可为三种分开的信号。或者,此三种信号也可被统一成一个单独的动态等待状态信号。在本实施例中,此三种动态等待状态信号被统一成总线等待信号Bus Wait,其被绘示在图2中。
[0069] 图6、图7及图8是图5中所示的总线装置的信号波形的示意图。图6是根据本发明的一实施例所绘示的总线装置500的信号波形的示意图。图6中绘示了四个读取数据交易,其地址分别为A、B、C及D。以下将此四个读取数据交易表示为A、B、C及D。由总线从控器120所输出的读取数据DA、DB、DC及DD则分别回应于数据交易A、B、C及D。在本实施例中,静态等待状态信号Static WS的值被设为0。所以上述所提到的关于总线数据交易的时间长度皆未被延长。总线从控器120在时脉周期T1中致能了总线等待信号Bus Wait,而在时脉周期T2中禁能了总线等待信号Bus Wait,这意味着总线从控器120将不再识别在T2中所发出的总线数据交易。为了回应此作动,总线主控器110将下一个总线数据交易延后至T3。此外,被致能的总线等待信号Bus Wait将总线从控器120用来回应读取数据交易A的时间长度延长了一个时脉周期,这使得总线从控器120会在时脉周期T3而不是在时脉周期T2中回传数据DA。总线从控器120并未对总线数据交易B、C及D致能总线等待信号Bus Wait。所以总线数据交易B、C及D并没有被总线等待信号Bus Wait所影响。
[0070] 图7是根据本发明的一实施例所绘示的总线装置500的信号波形的另一示意图。在图7中,总线主控器110发出了三个读取数据交易A、B及C,而DA及DB则是分别回应于读取数据交易A及B的读取数据。在本实施例中,静态等待状态信号Static WS的值为1。
于是,总线从控器120用来回应各个读取数据交易的时间长度各被延长了一个时脉周期。
这导致总线主控器110只能在每两个时脉周期中发出一个总线数据交易。总线从控器120在时脉周期T1中致能了总线等待信号Bus Wait,而在时脉周期T2中禁能了总线等待信号Bus Wait。然而,由于总线从控器120是在总线从控器120用来回应读取数据交易A的时间长度中的最后一个时脉周期中,禁能了总线等待信号Bus Wait,因此总线等待信号Bus Wait对于读取数据交易A而言并无影响。
[0071] 图8是根据本发明的一实施例所绘示的总线装置500的信号波形的另一示意图。在本实施例中,静态等待状态信号Static WS的值为1。总线从控器120在时脉周期T2中致能了总线等待信号Bus Wait,而在时脉周期T3中禁能了总线等待信号Bus Wait。由于总线从控器120是在总线从控器120用来回应读取数据交易A的时间长度中,致能了总线等待信号Bus Wait,于是总线从控器120用来回应读取数据交易的时间被进一步延长至时脉周期T3,而在时脉周期T3中,总线从控器120禁能了总线等待信号Bus Wait。这造成的结果是,总线从控器120是在时脉周期T4中以读取数据DA回应读取数据交易A。而总线主控器110将下一个总线数据交易延后至时脉周期T4,用以回应上述总线等待信号Bus Wait的致能及禁能作动。
[0072] 图9是根据本发明的一实施例所绘示的具有非猜测式/猜测式总线界面的总线装置的示意图。总线装置900包括了总线主控器110及总线从控器120。总线主控器110及总线从控器120是通过NSBI930互相耦接至对方。NSBI930包括了SBI230以及图2中所绘示的所有总线信号。此外,各总线主控器110及总线从控器120从NSBI930接收静态等待状态信号Static WS及非猜测式空间信号NS Space。总线主控器110从NSBI930接收非猜测式致能(enable)信号NS Enable。总线主控器110通过NSBI930传送非猜测式请求信号Bus NS Req至总线从控器120。
[0073] 这些额外的信号NS Enable、NS Space及Bus NS Req是用来支持非猜测式总线数据交易的。在本实施例中,被映射(mapped)至总线从控器120的部分或所有的存储器地址将只支持非猜测式的总线数据交易。换句话说,上述各个存储器地址在用来对应每个总线主控器110内部操作的写入数据或读取数据时,只能被存取(accessed)唯一的一次而已。以下称这样的总线从控器为非猜测式总线从控器。位于非猜测式存储器地址上的总线数据交易即为非猜测式总线数据交易。
[0074] 当总线主控器110发送总线数据交易至总线从控器120时,总线主控器110及总线从控器120根据总线数据交易的非猜测式空间信号NS Space以及地址Bus Addr来决定此总线数据交易是猜测式或非猜测式的。总线主控器110及总线从控器120用来决定上述的猜测式/非猜测式的方法是相同的,也就是将Bus Addr作解码后与非猜测式空间信号NS Space所解码出来的值作比较。在本实施例中,总线主控器110及总线从控器120将Bus Addr及非猜测式空间信号NS Space中的几个预选的比特(例如为两个或四个最高有效比特)的值进行比较。当这些Bus Addr的预选比特的值等于非猜测式空间信号NS Space的预选比特的值时,此总线数据交易即为非猜测式的。否则,此总线数据交易即为猜测式的。
[0075] 非猜测式空间信号NS Space可被提供至总线主控器110来进行禁能(disable)此非猜测式数据交易的决定作动。当有至少一个非猜测式总线从控器被连接到NSBI930时,非猜测式致能信号NS_Enable总是会被致能。在此例中,总线主控器及此非猜测式总线从控器根据上述方法来决定各个总线数据交易为猜测式或为非猜测式的。当没有非猜测式总线从控器被连接到NSBI930时,非猜测式致能信号NS_Enable则总是会被禁能。在此例中,总线主控器及总线从控器则将所有的总线数据交易视为猜测式数据交易。
[0076] 当总线从控器120决定总线数据交易为非猜测式时,总线从控器120暂停此总线数据交易的执行,一直到被总线主控器110通知要交付或是终止此总线数据交易。当总线主控器110决定总线数据交易为非猜测式时,总线主控器110保留上述的通知,一直到相对应的内部操作有最终结果(final resolution)。当总线主控器110决定了总线数据交易为非猜测式,然后确认了相对应的内部操作的执行,总线主控器110通过致能非猜测式请求信号Bus_NS_Req来通知总线从控器120交付此总线数据交易。而总线从控器120作出的回应则为储存总线写入数据信号Bus_WData或是回传总线读取数据信号Bus_RData至总线主控器110。当总线主控器110决定了总线数据交易为非猜测式,然后删除相对应的内部操作时,其原因可能为错误的猜测(incorrect speculation)或是管线清除(pipeline flushing)等,则总线主控器110通过不通知总线从控器120交付目前的总线数据交易而发送另一个总线数据交易至总线从控器120的方式以通知总线从控器120终止目前的总线数据交易。而总线从控器120作出的回应则是终止此总线数据交易。在此情况下,总线写入数据信号Bus_WData不会被储存,总线读取数据信号Bus_RData也不会被输出至总线主控器110。
[0077] 图10、图11及图12是图9中所示的总线装置的信号波形的示意图。图10是根据本发明的一实施例所绘示的总线装置900的信号波形的示意图。在本实施例中,静态等待状态信号Static_WS的值为1,且非猜测式致能信号NS_Enable被致能。读取数据交易A为非猜测式的,而读取数据交易B及C则为猜测式的。由于总线主控器110需要时间来确认相对应的内部操作,数据交易A在时脉周期T2中的等待状态因而被导出。而由于非猜测式请求信号Bus NS Req被致能,且Static WS的值为1,于是时脉周期T3中的数据交易A的等待状态也被导出。总线从控器120只在总线主控器110在时脉周期T2中致能非猜测式请求信号Bus NS Req之后,才开始执行数据交易A。对于数据交易A而言,非猜测式请求信号Bus NS Req的致能等效(equivalent)于总线请求信号Bus Req的致能。所以,静态等待状态信号Static WS决定了从致能非猜测式请求信号Bus NS Req至完成总线数据交易A的时间长度。总线从控器120在时脉周期T4中回传总线读取数据信号Bus RData至总线主控器110。
[0078] 图11是根据本发明的一实施例所绘示的总线装置900的信号波形的示意图。在本实施例中,静态等待状态信号Static WS的值为0而非猜测式致能信号NS Enable则被致能。读取数据交易A为非猜测式的,而读取数据交易B及C则为猜测式的。对于非猜测式总线数据交易A而言,由于非猜测式请求信号Bus NS Req在时脉周期T2中并未被致能,总线主控器110必须要在其在时脉周期T1中所致能的总线请求信号Bus Req之后,接着在时脉周期T2中禁能总线请求信号Bus Req。否则,总线从控器120将会在时脉周期T2中识别总线请求信号Bus Req的第二个致能,并将其视为是下一个总线数据交易的发出以及终止总线数据交易A的通知。由于在时脉周期T3中,总线主控器110致能了非猜测式请求信号Bus NS Req且静态等待状态信号Static WS并没有延长总线从控器120的回应时间(response time),总线从控器120将在下一个时脉周期T4中输出读取数据DA。
[0079] 图12是根据本发明的一实施例所绘示的总线装置900的信号波形的示意图。在本实施例中,静态等待状态信号Static WS的值为0且非猜测式致能信号NS Enable被致能。读取总线数据交易A及C为非猜测式的,而读取总线数据交易B及D则为猜测式的。总线主控器110在时脉周期T1中同时致能了总线请求信号Bus Req以及非猜测式请求信号Bus NS Req,用意在于通知总线从控器120立即交付总线数据交易A。而总线从控器120作出的回应则为在下个时脉周期T2中输出读取数据DA。在时脉周期T4中,总线主控器110通过对下一个总线数据交易D致能总线请求信号Bus Req而没有致能非猜测式请求信号Bus NS Req的方式,通知总线从控器120终止非猜测式总线数据交易C。所以,总线从控器120并没有回传任何关于总线数据交易C的数据至总线主控器110。
[0080] 在本发明的一些实施例中,总线主控器110或总线从控器120可不支持非猜测式请求信号Bus NS Req。在这些实施例中,当总线主控器110根据总线数据交易的非猜测式空间信号NS Space以及地址Bus Addr决定总线数据交易为非猜测式时,总线主控器110必须暂停发送此总线数据交易至总线从控器120,一直到总线主控器110之中引发此总线数据交易的内部操作即将被交付。
[0081] 图13是根据本发明的一实施例所绘示的具有延伸式非猜测式/猜测式总线界面的总线装置的示意图。总线装置1300包括总线主控器110及总线从控器120。总线主控器110及总线从控器120通过ENSBI1330互相耦接至对方。ENSBI1330为图9中所绘示的NSBI930的延伸,并具有一额外的非猜测式完成信号Bus NS Done。总线从控器120通过ENSBI1330传送非猜测式完成信号Bus NS Done至总线主控器110。
[0082] 在一些实施例中,总线从控器120可支持在非猜测式存储器地址区段(segment)中的猜测式存储器。举例而言,存储器地址可被映射至总线从控器120上的多数个可存取的寄存器(accessible register)。这些寄存器大部分都只支持非猜测式存取,而只有少部分支持猜测式存取。这里可能会出现一种情况,起初总线从控器120可能会决定总线数据交易为非猜测式的,而在将Bus Addr进一步解码之后发现此总线数据交易事实上为猜测式的。在此例中,总线从控器120可以直接交付此总线数据交易并且通过致能非猜测式完成信号Bus NS Done以通知总线主控器110此总线数据交易已被交付,如此一来总线主控器110即可接着执行接下来的内部操作以增进总线系统的效率。
[0083] 图14是图13中所绘示的总线装置的信号波形的示意图。在本实施例中,静态等待状态信号Static WS的值为0且非猜测式致能信号NS Enable被致能。总线主控器110及总线从控器120起初决定读取数据交易A为非猜测式的,而读取数据交易B及C则为猜测式的。在总线主控器110致能非猜测式请求信号Bus NS Req之前,总线从控器120发现读取数据交易A事实上为猜测式的。于是,总线从控器120交付读取数据交易A,并通过在时脉周期T3中致能非猜测式完成信号Bus NS Done以通知总线主控器110,而后在时脉周期T4中回传读取数据DA至总线主控器110。
[0084] 在本实施例中,总线从控器120在非猜测式完成信号Bus NS Done的致能后才开始执行总线数据交易A。对于总线数据交易A的执行而言,非猜测式完成信号Bus NS Done的致能等效于总线请求信号Bus Req的致能。所以,静态等待状态信号Static WS决定了从非猜测式完成信号Bus NS Done的致能到完成总线数据交易A的时间长度。总线从控器120在时脉周期T4中将读取数据DA回传至总线主控器110,也就是在非猜测式完成信号Bus NS Done致能的下一个时脉周期。在本发明的另一实施例中,总线从控器120可更积极(aggressive)的在时脉周期T3中就回传读取数据DA,也就是与总线从控器120致能非猜测式完成信号Bus NS Done相同的时脉周期。
[0085] 图15是根据本发明的一实施例所绘示的具有仲裁器的总线装置的示意图。总线装置1500包括了两个总线主控器1510及1520、仲裁器1530以及总线从控器1540。总线主控器1510及仲裁器1530是通过总线界面1550互相耦接至对方。总线主控器1520及仲裁器1530则是通过总线界面1560互相耦接至对方。仲裁器1530及总线从控器1540是通过总线界面1570互相耦接至对方。各总线界面1550、1560及1570可为图2中所绘示的SBI230、图5中所绘示的ESBI530、图9中所绘示的NSBI930或是图13中所绘示的ENSBI1330。总线界面1550、1560及1570可为同类型或为不同类型的。
[0086] 总线装置1500扮演了在多个总线主控器间执行总线仲裁(busarbitration)的重要角色。仲裁器1530可将总线主控器1510及1520连接至总线从控器1540。仲裁器1530转送所有连接的总线主控器的信号至总线从控器1540并且也转送总线从控器1540的信号至所有连接的总线主控器。除了以下所讨论的差别之外,其中的总线数据交易的发出、总线数据交易的执行以及在相连的总线主控器与总线从控器上对应的总线数据交易交换皆与本发明中的上述实施例中的相对应物(counterpart)相同。
[0087] 总线主控器1510及1520可同时发出总线数据交易。而仲裁器1530则必须在由不同的总线主控器的总线数据交易组成的序列(sequence)上进行安排,以避免冲突(conflict)。为了达到此目的,仲裁器1530传送静态等待状态信号Static WS至各总线主控器1510及1520。对于总线主控器1510及1520而言,除了在本实施例中的信号Static WS是由仲裁器1530所发出而不是由总线从控器1540所发出以外,信号Static WS的意义和作用与本发明中的上述实施例相同。静态等待状态信号Static WS决定了对应于总线主控器维持总线数据交易的总线命令信号Bus WR及总线地址信号Bus Addr不变的时间长度,而此时间长度是用来让总线从控器1540接收命令及地址的。当总线数据交易为写入数据交易,静态等待状态信号Static WS也会决定对应的总线主控器维持总线数据交易的总线写入数据信号Bus WData不变的时间长度,而此时间长度是用来让总线从控器1540接收写入数据的。当总线数据交易为读取数据交易,静态等待状态信号Static WS也会决定此对应的总线主控器该在何时接收由总线从控器1540所输出的总线读取数据信号Bus RData。
[0088] 在本实施例中,总线主控器1510的优先权较总线主控器1520来的高。当此两个总线主控器同时发出总线数据交易时,仲裁器1530将先转送总线主控器1510的总线数据交易至总线从控器1540。而总线主控器1520则必须等待总线主控器1510。为了要达成上述作动的时间点,仲裁器1530将总线主控器1520的静态等待状态信号Static WS的值增加1,如此一来,在预设上,总线主控器1520的总线数据交易的延长时间会比总线主控器1510的总线数据交易的延长时间多出一个时脉周期。在本实施例中,总线主控器1510的信号Static WS的值为0,而总线主控器1520的信号Static WS的值则为1。仲裁器1530也会传送静态等待状态信号Static WS至总线从控器1540。在本实施例中,总线从控器1540的静态等待状态信号Static WS的值为0。此外,仲裁器1530会无延迟地转送总线主控器
1510的总线数据交易至总线从控器1540,而对于总线主控器1520而言,仲裁器1530则以预定延迟(在本实施例中为一个时脉周期)转送其数据交易至总线从控器1540。
[0089] 在本发明的一些实施例中,可有更多的总线主控器及更多的总线从控器通过其对应的总线界面耦接至仲裁器1530。当上述的仲裁方法(arbitration scheme)被应用到多于两个的总线主控器上时,具有最高优先权的总线主控器的信号Static_WS的值维持不变,而仲裁器1530则将其余各个总线主控器的信号Static_WS的值增加1。于是仲裁器1530会无延迟地转送其具有最高优先权的总线主控器的总线数据交易至总线从控器,而对于其余各个总线主控器而言,仲裁器1530则以预定延迟转送其数据交易至总线从控器。为了简洁性,只有绘示在图15中的总线主控器1510及1520及总线从控器1540会出现在接下来的讨论中。
[0090] 仲裁器1530可传送总线等待信号Bus_Wait至各总线主控器1510及1520。如图2中所绘示,这些总线等待信号被包括在总线界面1550及1560中。对于总线主控器1510及1520而言,除了这些总线等待信号Bus_Wait是由仲裁器1530所输出而不是由总线从控器1540所输出的以外,总线等待信号Bus_Wait的意义和作用与本发明中的上述实施例相同。总线等待信号Bus_Wait通知其对应的总线主控器仲裁器1530在特定时间区间内将不接受另外的总线数据交易,而此时间区间是根据总线等待信号Bus_Wait的致能及禁能所决定。当仲裁器1530为了总线数据交易而致能总线等待信号时,无论此总线数据交易是否被静态等待状态信号Static_WS所延长,此总线数据交易将根据仲裁器1530禁能总线等待信号的时间而被进一步延长。
[0091] 图16、图17及图18是图15中所示的总线装置的信号波形的示意图。在此三个附图中,后缀(suffix)“_M1”代表是由总线主控器1510所传送或接收的信号,而后缀「_M2」则代表是由总线主控器1520所传送或接收的信号。“Bus_Addr(从控器端)”是由总线主控器1510及1520所发出的总线数据交易的地址,并且由仲裁器1530转送至与总线从控器1540耦接的总线界面1570。而“Bus_RData(从控器端)”则是由总线从控器1540所输出至总线界面1570的对应的读取数据。
[0092] 在图16所绘示的实施例中,无论总线主控器1520是在何时发出总线数据交易,仲裁器1530会在同一个时脉周期中致能总线主控器1510的总线等待信号Bus Wait M1,如此一来总线主控器1510将不会在下一个时脉周期中发出总线数据交易。在这样的方式下,仲裁器1530可在目前的时脉周期中将由总线主控器1510所发出的总线数据交易转送至总线从控器1540,然后在下个时脉周期中将由总线主控器1520所发出的总线数据交易转送至总线从控器1540以避免冲突。
[0093] 或者,仲裁器1530可在由总线主控器1520的静态等待状态信号Static WS M2所延长的最后一个时脉周期中,致能传送至总线主控器1510或1520其中之一的总线等待信号Bus Wait,以决定当总线主控器1510及1520同时想要在下个时脉周期中致能总线请求信号Bus Req时,哪一个总线主控器可赢得总线从控器1540的存取权。一般来说,此更换仲裁的过程(change-of-arbitration process)可在任何由总线主控器发出的任何总线数据交易完成之前进行。
[0094] 图17所示的实施例中示出了另一种由仲裁器1530执行的替代的仲裁策略。在本实施例中,当总线主控器1520发出总线数据交易时,仲裁器1530不会致能总线主控器1510的总线等待信号Bus Wait M1。相反地,无论总线主控器1510在由总线主控器1520的静态等待状态信号Static WS M2所延长的总线数据交易时间长度中的任何时间点发出总线数据交易,仲裁器1530就会致能总线主控器1520的总线等待信号Bus Wait M2。
[0095] 举例而言,在同样的时脉周期T1中,此两个总线主控器分别发出了总线数据交易A M1及B M2。仲裁器1530在时脉周期T1中转送数据交易A M1至总线从控器1540而在下一个时脉周期T2中转送数据交易B M2至总线从控器1540。由于静态等待状态信号Static WS M2的值为1,于是总线主控器1520期望会在一个时脉周期之后接收到读取数据DB,也就是根据仲裁器1530所施加于总线主控器1520上的预定延迟。在时脉周期T3中,此两个总线主控器分别发出了总线数据交易C M1及E M2。此外,总线主控器1510又在下一个时脉周期T4中发出总线数据交易D M1。总线数据交易D M1及E M2在时脉周期T4中同时争取总线从控器1540。而仲裁器1530作出的回应则是在时脉周期T4中致能总线等待信号Bus Wait M2,这是因为总线主控器1510在已被总线主控器1520的静态等待状态信号Static WS M2延长过了的总线数据交易E M2期间发出了总线数据交易D M1。这造成的结果是,仲裁器1530在时脉周期T4中转送数据交易D M1至总线从控器1540,接着在时脉周期T5中转送数据交易E M2至总线从控器1540。总线数据交易E M2通过在时脉周期T4中所致能的总线等待信号Bus Wait M2而被进一步延长。
[0096] 图18绘示了本发明的一实施例,其中仲裁器1530先致能两个总线主控器的总线等待信号Bus Wait M1及Bus Wait M2,然后调整两个总线主控器的静态等待状态信号Static WS M1以及Static WS M2,以调整上述由两个总线主控器的静态等待状态信号Static WS M1以及Static WS M2所决定的时间长度。此信号Static WS M1及Static WS M2的调整等效于调整总线主控器1510及1520的优先权。
[0097] 在图18中,仲裁器1530在时脉周期T4中致能总线等待信号Bus Wait M1及Bus Wait M2以挡住(hold)所有对总线从控器1540的存取。接着,仲裁器1530在时脉周期T5中切换静态等待状态信号Static WS M1及Static WS M2的值,用以交换总线主控器1510及1520的优先权。新的优先权将在时脉周期T6中产生影响。换句话说,在时脉周期T6的开端,仲裁器1530无延迟地转送总线主控器1520的总线数据交易至总线从控器1540,而以预定延迟转送总线主控器1510的总线数据交易至总线从控器1540。
[0098] 综上所述,本发明中所提供的总线界面被预设为支持猜测式的总线数据交易,且也支持非猜测式的总线数据交易。在本发明中,总线主控器及总线从控器间所使用的总线协定是非常积极(aggressive)的,这缩短了总线数据交易的潜伏期(latency)且改善了此总线系统的效能。
[0099] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。