TW201321998A - 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸 - Google Patents

預設為猜測式資料交易的匯流排裝置及其非猜測的延伸 Download PDF

Info

Publication number
TW201321998A
TW201321998A TW101133544A TW101133544A TW201321998A TW 201321998 A TW201321998 A TW 201321998A TW 101133544 A TW101133544 A TW 101133544A TW 101133544 A TW101133544 A TW 101133544A TW 201321998 A TW201321998 A TW 201321998A
Authority
TW
Taiwan
Prior art keywords
bus
data transaction
busbar
master
data
Prior art date
Application number
TW101133544A
Other languages
English (en)
Other versions
TWI464598B (zh
Inventor
Chi-Chang Lai
Original Assignee
Andes Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Andes Technology Corp filed Critical Andes Technology Corp
Publication of TW201321998A publication Critical patent/TW201321998A/zh
Application granted granted Critical
Publication of TWI464598B publication Critical patent/TWI464598B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

本發明提供一種匯流排裝置,包括匯流排主控器以及匯流排奴控器,其透過匯流排介面相互耦接。當匯流排主控器發送資料交易至匯流排奴控器時,匯流排奴控器執行此資料交易。匯流排資料交易被預設為猜測式的且其命令指出此資料交易為寫入或是讀取。當匯流排資料交易為寫入時,匯流排奴控器將此資料交易的寫入資料儲存至此資料交易的位址。當匯流排資料交易為讀取時,匯流排奴控器以儲存於此資料交易位址的讀取資料回應此資料交易。匯流排奴控器藉由致能匯流排等待信號以通知匯流排主控器匯流排奴控器在特定時間內將不接受另外的資料交易。

Description

預設為猜測式資料交易的匯流排裝置及其非猜測的 延伸
本發明是有關於一種匯流排裝置,且特別是有關於一種預設猜測式的匯流排資料交易以及其非猜測式的延伸。
匯流排資料交易(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則可因為指令早已在管線中而省下時間。類似的用來加速匯流排系統的猜測式匯流排介面存在著。
匯流排主控器可能具有多個匯流排介面,其分別與多 個周邊裝置連接,也就是所謂的匯流排奴控器。每個匯流排介面可被映射(mapped)至不同的位址空間(address space)。對於這樣的匯流排主控器而言,要滿足三個條件才會交付(commit)指令以發出(issue)對應的匯流排資料交易。第一個條件為執行指令,這意味著此指令並沒有被清除或取消(cancelled)。第二個條件為完成由指令的位址轉換至對應到一個匯流排介面的位址空間的轉換(translation)過程。第三個條件為指令位址的權限允許此指令的存取。在非猜測式的匯流排系統中,只有在相對應的指令同時滿足上述的三個條件時,匯流排主控器才會發送資料交易至匯流排奴控器。
另一方面,在猜測式的匯流排系統中,只要匯流排主控器能以某種方式預測或猜測出此指令可能會產生上述被交付至匯流排奴控器的匯流排資料交易,匯流排主控器就可以在還沒完全符合上述三種情形時就發送資料交易至匯流排奴控器。這樣的匯流排資料交易被稱作猜測式的匯流排資料交易。當匯流排主控器稍後發現到此指令即將被終止(abort)時,相對應的猜測式匯流排資料交易也會被終止,而此終止作動是藉由捨棄(discard)即將寫入匯流排奴控器的資料或是即將從匯流排奴控器讀取的資料來達成。當指令被交付時,猜測式的匯流排資料交易速度總是能比非猜測式的匯流排資料交易來的快一些,因為猜測式匯流排資料交易早已先一步被發出(issued)。
因此,本發明是針對一種匯流排裝置,其可同時支援猜測式及非猜測式的匯流排資料交易。此匯流排裝置使用積極(aggressive)且有效率的匯流排協定(protocol)來改善匯流排系統的表現。
本發明同時針對另一種匯流排裝置,其包括仲裁器(arbiter)以及多個匯流排主控器。匯流排裝置能夠使用上述的匯流排協定的延伸來解決遵守上述匯流排協定的多個匯流排主控器間的匯流排資料交易衝突。
在本發明之一實施例中,提供了一種匯流排裝置。上述之匯流排裝置包括匯流排主控器以及匯流排奴控器,匯流排奴控器透過匯流排介面耦接於匯流排主控器。其中當匯流排主控器發送匯流排資料交易至匯流排奴控器時,匯流排奴控器執行匯流排資料交易。其中匯流排資料交易被預設為猜測式的且匯流排資料交易的命令(command)指出匯流排資料交易為寫入資料交易或是讀取資料交易。當匯流排資料交易為寫入資料交易,匯流排奴控器將匯流排資料交易的寫入資料儲存至匯流排資料交易的位址。當匯流排資料交易為讀取資料交易,匯流排奴控器以儲存於匯流排資料交易的位址的讀取資料回應匯流排資料交易。匯流排奴控器藉由致能(assert)匯流排等待信號以通知匯流排主控器匯流排奴控器在特定時間區間內將不接受另外的匯流排資料交易。
在本發明之另一實施例中,提供了另一種匯流排裝 置。上述之匯流排裝置包括仲裁器、第一匯流排主控器,其透過第一匯流排介面耦接至仲裁器、第二匯流排主控器,其透過第二匯流排介面耦接至仲裁器以及匯流排奴控器,其透過第三匯流排介面耦接至仲裁器。對於第一及第二匯流排主控器的各匯流排主控器而言,當匯流排主控器發出匯流排資料交易時,仲裁器即轉送匯流排資料交易至匯流排奴控器而匯流排奴控器執行匯流排資料交易。其中匯流排資料交易被預設為猜測式的而匯流排資料交易的命令指出匯流排資料交易為寫入資料交易或為讀取資料交易。
當匯流排資料交易為寫入資料交易,匯流排奴控器將匯流排資料交易的寫入資料儲存至匯流排資料交易的位址。當匯流排資料交易為讀取資料交易,匯流排奴控器以儲存於匯流排資料交易的位址的讀取資料回應匯流排資料交易,且仲裁器轉送讀取資料至匯流排主控器;
仲裁器傳送靜態等待狀態信號至匯流排主控器,其中靜態等待狀態信號決定時間長度,此時間長度是用來讓匯流排奴控器接收命令及位址的時間長度,同時也是匯流排主控器維持匯流排資料交易的命令及位址不變的時間長度。當匯流排資料交易為寫入資料交易時,匯流排主控器同樣根據此時間長度來維持匯流排資料交易的寫入資料不變,而此時間長度同時也用來使匯流排奴控器接收寫入資料。
在本發明之一實施例中,上述之由第二匯流排主控器 所決定的靜態等待狀態信號的時間長度被預設為比由第一匯流排主控器所決定的靜態等待狀態信號長。仲裁器無延遲地轉送第一匯流排主控器的匯流排資料交易至匯流排奴控器,而仲裁器以預定延遲轉送第二匯流排主控器的匯流排資料交易至匯流排奴控器。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
現將提供本申請案之實施例之細節用以參考,範例之說明是輔以所附之圖式進行,於圖式及文句中所對應之同樣或類似部分所使用之參考編號為相同的。
圖1是根據本發明之一實施例所繪示的匯流排裝置100的示意圖。匯流排裝置100包括匯流排主控器110及匯流排奴控器120。匯流排主控器110可為DPE,像是微處理器。匯流排奴控器則可為硬體儲存裝置,例如為記憶體。匯流排主控器110及匯流排奴控器120是透過匯流排介面130相互耦接至對方。匯流排介面130可為圖2中所繪示的猜測式匯流排介面(speculative bus interface,SBI)230、圖5中所繪示的延伸式猜測式匯流排介面(extended speculative bus interface,ESBI)530、圖9中所繪示的非猜測式/猜測式匯流排介面(non-speculative/speculative bus interface,NSBI)930或是圖13中所繪示的延伸式猜測式/非猜測式匯流排介面 (extended non-speculative/speculative bus interface,ENSBI)1330。這些匯流排介面將在之後進行詳細討論。圖1中雖然只繪示了一個匯流排奴控器,但匯流排介面130是可被用以連接多於一個的匯流排奴控器的。在本發明接下來所提出的實施例中,為了簡潔性而都只使用一個匯流排奴控器來作說明。
匯流排主控器110可發送匯流排資料交易至匯流排奴控器120。匯流排奴控器120藉由消耗(consuming)相關資料或是回傳資料來執行此匯流排資料交易。在本實施例中,所有的匯流排資料交易皆被預設為猜測式的。各匯流排資料交易是由匯流排主控器110中的某些內部操作(internal operation)所導出(induce)。舉例而言,由匯流排主控器110所發出的讀取資料交易可被執行於匯流排主控器110中的載入(load)指令所導出,而由匯流排主控器110所發出的寫入資料交易則可被執行於匯流排主控器110中的儲存(store)指令所導出。匯流排主控器110的內部操作可導出零個或更多的匯流排資料交易。
匯流排主控器110中的內部操作可能會多次發出其所對應的匯流排資料交易。而這些資料交易中至多只有一個對此內部操作而言是有意義的,而其他則為猜測式的。若此對內部操作而言為有意義的資料交易存在的話,即為眾多同樣的資料交易複製品(replication)中的最後一個。只有有意義的那個資料交易會被交付,而其他的資料交易複製品則會被取消或終止。這樣的匯流排主控器也同樣對其內 部操作使用猜測式地處理;也就是說,直到達到此匯流排主控器的內部處理的最後階段(final stage)之前,這個內部操作都不會被確認(confirm)。而在達到最後階段之前,內部操作都可能被取消,且內部操作所做的所有事情,不論是內部地或外部地,都不會影響到下一個沒被取消的(non-cancelled)內部操作。此種匯流排主控器的典型例子為管線式的(pipelined)微處理器。
為了達到更好的效率,一旦匯流排主控器110發送出匯流排資料交易時,匯流排奴控器120不可要求匯流排主控器110之後再重傳此匯流排資料交易。而匯流排奴控器120並不知道匯流排主控器110的某一內部操作是否具有多個匯流排資料交易複製品。換句話說,當匯流排奴控器120自匯流排主控器110收到一匯流排資料交易,匯流排奴控器120無法得知哪一個匯流排主控器110的內部操作導出此匯流排資料交易。此外,匯流排奴控器120也無法得知導出此匯流排資料交易的內部操作終將會被確認或是被取消。匯流排奴控器120必須平等地執行每個匯流排資料交易。所以,匯流排奴控器120必須容忍猜測式的匯流排資料交易,而這意味著匯流排奴控器120的元件(例如為暫存器)無論被同樣的匯流排資料交易存取了多少次,匯流排奴控器120產出的結果狀態都是一樣的。
圖2是根據本發明之一實施例所繪示的具有SBI 230的匯流排裝置200的示意圖。匯流排裝置200包括了匯流排主控器110及匯流排奴控器120。匯流排主控器110和 匯流排奴控器120是透過SBI 230互相耦接至對方。各匯流排主控器110及匯流排奴控器120皆接收匯流排時脈信號Bus_Clk。而時脈信號Bus_Clk是負責控制所有的匯流排資料交易的時間點。匯流排主控器110透過SBI 230傳送下列信號至匯流排奴控器120:匯流排請求(request)信號Bus_Req、匯流排命令信號Bus_WR、匯流排位址信號Bus_Addr以及匯流排寫入資料信號Bus_WData。而匯流排奴控器120透過SBI 230將匯流排等待信號Bus_Wait以及匯流排讀取資料信號Bus_RData傳送至匯流排主控器110。SBI 230是一種包括多個信號路徑的硬體介面,而這些信號路徑是用來傳送在匯流排主控器110及匯流排奴控器120間所傳送的信號。
當匯流排主控器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。
匯流排奴控器120藉由致能匯流排等待信號Bus_Wait來告知匯流排主控器110匯流排奴控器120在一特定時間區間內將不接受另外的匯流排資料交易。舉例來說,此特定時間區間可以起始於匯流排奴控器120致能匯流排等待信號Bus_Wait後,匯流排時脈信號Bus_Clk的下一個週期,而且結束於匯流排奴控器120禁能匯流排等待信號Bus_Wait的匯流排時脈信號Bus_Clk的週期中。當匯流排資料交易需要花多一點時間才能完成時,匯流排奴控器120可以致能匯流排等待信號Bus_Wait來指出匯流排奴控器120正忙碌(busy)於處理目前的匯流排資料交易,還沒準備好要接收下一個資料交易。
圖3是根據本發明之一實施例所繪示的在連續五個寫入資料交易期間中,匯流排裝置200的匯流排信號的示意圖。T1代表匯流排時脈信號Bus_Clk的第一個週期(也就是第一個時脈週期),T2代表匯流排時脈信號Bus_Clk的第二個週期(也就是第二個時脈週期),之後以此類推。A、B、C、D及E分別為第一、第二、第三、第四及第五個寫入資料交易的位址。同樣地DA、DB、DC、DD及DE則 分別為第一、第二、第三、第四及第五個寫入資料交易的寫入資料。各寫入資料皆需使用一個時脈週期來進行。
圖4是根據本發明之一實施例所繪示的在連續五個讀取資料交易期間中,匯流排裝置200的匯流排信號的示意圖。A、B、C及D及A分別為第一、第二、第三、第四及第五個讀取資料交易的位址。同樣地DA、DB、DC、DD及DA則分別為第一、第二、第三、第四及第五個讀取資料交易的讀取資料。事實上,第一及第五個資料交易是根據同樣的匯流排主控器110的內部操作所產生的複製品。而雖然與此內部操作相關連的匯流排資料交易已被匯流排奴控器120所完成,此導出第一讀取資料交易的內部操作終究還是被取消了。導出第五讀取資料交易的同一內部操作則被交付。在匯流排主控器110這類的猜測式匯流排系統中,除非讀取資料有被其他的寫入資料更改(modified)過,否則這些重複的猜測式讀取資料交易應當總是會得到相同的結果。
圖5是根據本發明之一實施例所繪示的具有ESBI 530的匯流排裝置500的示意圖。匯流排裝置500包括了匯流排主控器110及匯流排奴控器120。匯流排主控器110及匯流排奴控器120是透過ESBI 530互相耦接至對方。ESBI 530包括了SBI 230及圖2中所繪示的所有匯流排信號。此外,各匯流排主控器110及匯流排奴控器120從ESBI 530接收靜態(static)命令/位址等待狀態信號Cmd_Addr_WS、靜態寫入資料等待狀態信號WData_WS 以及靜態寫入資料等待狀態信號WData_WS。
靜態命令/位址等待狀態信號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都是不會為該匯流排資料交易而作改變的。
在此實施例中,靜態命令/位址等待狀態信號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在三個時脈週期內不變,以此類推。
在本實施例中,靜態寫入資料等待狀態信號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在三個時脈週期內不變,以此類推。
在本實施例中,靜態讀取資料等待狀態信號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回應讀取資料交易的時間則會多兩個時脈週期,以此類推。
靜態命令/位址等待狀態信號Cmd_Addr_WS、靜態寫入資料等待狀態信號WData_WS以及靜態讀取資料等待狀態信號RData_WS可為三個分開(separate)的信號。或者,靜態命令/位址等待狀態信號Cmd_Addr_WS、靜態寫入資料等待狀態信號WData_WS及靜態讀取資料等待狀態信號RData_WS也可被統一(unified)成一個單獨的靜態等待狀態信號Static_WS,其將會被繪示於接下來的圖示中。
在本實施例中,匯流排奴控器120可透過匯流排介面ESBI 530,至少傳送一動態命令/位址等待狀態信號、一動態寫入資料等待狀態信號以及一動態讀取資料等待狀態信號的其中之一至匯流排主控器110。「動態」一詞指的是 說這些動態等待狀態信號在匯流排資料交易的期間中可被改變,用意在於將其對應的靜態等待狀態信號的延長時間再進一步延長。
當匯流排奴控器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週期中。
當匯流排奴控器120在匯流排主控器110維持匯流排資料交易的寫入資料信號Bus_WData不變的時間長度中致能了動態寫入資料等待狀態信號,而且此時間長度是用來讓匯流排奴控器120接收寫入資料信號Bus_WData時,匯流排主控器110維持匯流排資料交易的寫入資料信號Bus_WData不變的時間長度會被進一步延長,而此延長是根據匯流排奴控器120禁能此動態寫入資料等待狀態信號的時間點而執行。在本實施例中,匯流排主控器110維持匯流排資料交易的寫入資料信號Bus_WData不變的時間 長度被進一步延長至匯流排奴控器120禁能此動態寫入資料等待狀態信號的匯流排時脈信號Bus_Clk週期中。
當匯流排奴控器120在匯流排奴控器120用來以讀取資料Bus_RData回應讀取資料交易的時間長度中,致能了動態讀取資料等待狀態信號時,此匯流排奴控器120用來以讀取資料Bus_RData回應讀取資料交易的時間長度被進一步延長,而此延長是根據匯流排奴控器120禁能此動態讀取資料等待狀態信號的時間點而執行。在本實施例中,匯流排奴控器120用來以讀取資料Bus_RData回應讀取資料交易的時間長度被進一步延長至匯流排奴控器120禁能此動態讀取資料等待狀態信號的匯流排時脈信號Bus_Clk週期中。
動態命令/位址等待狀態信號、動態寫入資料等待狀態信號以及動態讀取資料等待狀態信號可為三種分開的信號。或者,此三種信號也可被統一成一個單獨的動態等待狀態信號。在本實施例中,此三種動態等待狀態信號被統一成匯流排等待信號Bus_Wait,其被繪示於圖2中。
圖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所影響。
圖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而言並無影響。
圖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的致能及禁能作動。
圖9是根據本發明之一實施例所繪示的匯流排裝置900的示意圖。匯流排裝置900包括了匯流排主控器110及匯流排奴控器120。匯流排主控器110及匯流排奴控器120是透過NSBI 930互相耦接至對方。NSBI 930包括了SBI 230以及圖2中所繪示的所有匯流排信號。此外,各匯流排主控器110及匯流排奴控器120從NSBI 930接收靜態等待狀態信號Static_WS及非猜測式空間信號NS_Space。匯流排主控器110從NSBI 930接收非猜測式 致能(enable)信號NS_Enable。匯流排主控器110透過NSBI 930傳送非猜測式請求信號Bus_NS_Req至匯流排奴控器120。
這些額外的信號NS_Enable、NS_Space及Bus_NS_Req是用來支援非猜測式匯流排資料交易的。在本實施例中,被映射(mapped)至匯流排奴控器120的部分或所有的記憶體位址將只支援非猜測式的匯流排資料交易。換句話說,上述各個記憶體位址在用來對應每個匯流排主控器110內部操作的寫入資料或讀取資料時,只能被存取(accessed)唯一的一次而已。以下稱這樣的匯流排奴控器為非猜測式匯流排奴控器。位於非猜測式記憶體位址上的匯流排資料交易即為非猜測式匯流排資料交易。
當匯流排主控器110發送匯流排資料交易至匯流排奴控器120時,匯流排主控器110及匯流排奴控器120根據匯流排資料交易的非猜測式空間信號NS_Space以及位址Bus_Addr來決定此匯流排資料交易是猜測式或非猜測式的。匯流排主控器110及匯流排奴控器120用來決定上述的猜測式/非猜測式的方法是相同的,也就是將Bus_Addr作解碼後與非猜測式空間信號NS_Space所解碼出來的值作比較。在本實施例中,匯流排主控器110及匯流排奴控器120將Bus_Addr及非猜測式空間信號NS_Space中的幾個預選的位元(例如為兩個或四個最高有效位元)的值進行比較。當這些Bus_Addr的預選位元的值等於非猜測式空間信號NS_Space的預選位元的值時,此匯流排資料交易 即為非猜測式的。否則,此匯流排資料交易即為猜測式的。
非猜測式空間信號NS_Space可被提供至匯流排主控器110來進行禁能(disable)此非猜測式資料交易的決定作動。當有至少一個非猜測式匯流排奴控器被連接到NSBI 930時,非猜測式致能信號NS_Enable總是會被致能。在此例中,匯流排主控器及此非猜測式匯流排奴控器根據上述方法來決定各個匯流排資料交易為猜測式或為非猜測式的。當沒有非猜測式匯流排奴控器被連接到NSBI 930時,非猜測式致能信號NS_Enable則總是會被禁能。在此例中,匯流排主控器及匯流排奴控器則將所有的匯流排資料交易視為猜測式資料交易。
當匯流排奴控器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。
圖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。
圖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。
圖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。
在本發明的一些實施例中,匯流排主控器110或匯流排奴控器120可不支援非猜測式請求信號Bus_NS_Req。在這些實施例中,當匯流排主控器110根據匯流排資料交易的非猜測式空間信號NS_Space以及位址Bus_Addr決定匯流排資料交易為非猜測式時,匯流排主控器110必須暫停發送此匯流排資料交易至匯流排奴控器120,一直到匯流排主控器110之中引發此匯流排資料交易的內部操作即將被交付。
圖13是根據本發明之一實施例所繪示的匯流排裝置1300的示意圖。匯流排裝置1300包括了匯流排主控器110及匯流排奴控器120。匯流排主控器110及匯流排奴控器120透過ENSBI 1330互相耦接至對方。ENSBI 1330為圖9中所繪示的NSBI 930的延伸,並具有一額外的非猜測式完成(done)信號Bus_NS_Done。匯流排奴控器120透過ENSBI 1330傳送非猜測式完成信號Bus_NS_Done至匯流排主控器110。
在一些實施例中,匯流排奴控器120可支援在非猜測式記憶體位址區段(segment)中的猜測式記憶體。舉例而言,記憶體位址可被映射至匯流排奴控器120上的多數個可存取的暫存器(accessible register)。這些暫存器大部分都只支援非猜測式存取,而只有少部分支援猜測式存取。這裡可能會出現一種情況,起初匯流排奴控器120可能會決定匯流排資料交易為非猜測式的,而在將Bus_Addr進一步解碼之後發現此匯流排資料交易事實上為猜測式的。在此例中,匯流排奴控器120可以直接交付此匯流排資料交易並且藉由致能非猜測式完成信號Bus_NS_Done以通知匯流排主控器110此匯流排資料交易已被交付,如此一來匯流排主控器110即可接著執行接下來的內部操作以增進匯流排系統的效率。
圖14是根據本發明之一實施例所繪示的匯流排裝置1300的信號波形的示意圖。在本實施例中,靜態等待狀態信號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。
在本實施例中,匯流排奴控器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相同的時脈週期。
圖15是根據本發明之一實施例所繪示的匯流排裝置1500的示意圖。匯流排裝置1500包括了兩個匯流排主控器1510及1520、仲裁器1530以及匯流排奴控器1540。匯流排主控器1510及仲裁器1530是透過匯流排介面1550互相耦接至對方。匯流排主控器1520及仲裁器1530則是透過匯流排介面1560互相耦接至對方。仲裁器1530及匯流排奴控器1540是透過匯流排介面1570互相耦接至對方。各匯流排介面1550、1560及1570可為圖2中所繪示的SBI 230、圖5中所繪示的ESBI 530、圖9中所繪示的NSBI 930或是圖13中所繪示的ENSBI 1330。匯流排介面1550、1560及1570可為同類型或為不同類型的。
匯流排裝置1500扮演了在多個匯流排主控器間執行匯流排仲裁(bus arbitration)的重要角色。仲裁器1530可將匯流排主控器1510及1520連接至匯流排奴控器1540。仲裁器1530轉送所有連接的匯流排主控器的信號至匯流排奴控器1540並且也轉送匯流排奴控器1540的信號至所有連接的匯流排主控器。除了以下所討論的差別之外,其中的匯流排資料交易的發出、匯流排資料交易的執行以及在相連的匯流排主控器與匯流排奴控器上對應的匯流排資料交易交換皆與本發明中的上述實施例中的相對應物(counterpart)相同。
匯流排主控器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。
在本實施例中,匯流排主控器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。
在本發明的一些實施例中,可有更多的匯流排主控器 及更多的匯流排奴控器透過其對應的匯流排介面耦接至仲裁器1530。當上述的仲裁方法(arbitration scheme)被應用到多於兩個的匯流排主控器上時,其具有最高優先權的匯流排主控器的信號Static_WS的值維持不變,而仲裁器1530則將其餘各個匯流排主控器的信號Static_WS的值增加1。於是仲裁器1530會無延遲地轉送其具有最高優先權的匯流排主控器的匯流排資料交易至匯流排奴控器,而對於其餘各個匯流排主控器而言,仲裁器1530則以預定延遲轉送其資料交易至匯流排奴控器。為了簡潔性,只有繪示於圖15中的匯流排主控器1510及1520及匯流排奴控器1540會出現在接下來的討論中。
仲裁器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 禁能匯流排等待信號的時間而被進一步延長。
圖16、圖17及圖18是根據本發明之三實施例所繪示的匯流排裝置1500的信號波形的示意圖。在此三個圖式中,後綴(suffix)「_M1」代表是由匯流排主控器1510所傳送或接收的信號,而後綴「_M2」則代表是由匯流排主控器1520所傳送或接收的信號。「Bus_Addr(奴控器端)」是由匯流排主控器1510及1520所發出的匯流排資料交易的位址,並且由仲裁器1530轉送至與匯流排奴控器1540耦接的匯流排介面1570。而「Bus_RData(奴控器端)」則是由匯流排奴控器1540所輸出至匯流排介面1570的對應的讀取資料。
在圖16所繪示的實施例中,無論匯流排主控器1520是在何時發出匯流排資料交易,仲裁器1530會在同一個時脈週期中致能匯流排主控器1510的匯流排等待信號Bus_Wait_M1,如此一來匯流排主控器1510將不會在下一個時脈週期中發出匯流排資料交易。在這樣的方式下,仲裁器1530可在目前的時脈週期中將由匯流排主控器1510所發出的匯流排資料交易轉送至匯流排奴控器1540,然後在下個時脈週期中將由匯流排主控器1520所發出的匯流排資料交易轉送至匯流排奴控器1540以避免衝突。
或者,仲裁器1530可在由匯流排主控器1520的靜態等待狀態信號Static_WS_M2所延長的最後一個時脈週期中,致能傳送至匯流排主控器1510或1520其中之一的匯流排等待信號Bus_Wait,以決定當匯流排主控器1510及 1520同時想要在下個時脈週期中致能匯流排請求信號Bus_Req時,哪一個匯流排主控器可贏得匯流排奴控器1540的存取權。一般來說,此更換仲裁的過程(change-of-arbitration process)可在任何由匯流排主控器發出的任何匯流排資料交易完成之前進行。
圖17所繪示的實施例中繪示了另一種由仲裁器1530執行的替代的仲裁策略。在本實施例中,當匯流排主控器1520發出匯流排資料交易時,仲裁器1530不會致能匯流排主控器1510的匯流排等待信號Bus_Wait_M1。相反地,無論匯流排主控器1510在由匯流排主控器1520的靜態等待狀態信號Static_WS_M2所延長的匯流排資料交易時間長度中的任何時間點發出匯流排資料交易,仲裁器1530就會致能匯流排主控器1520的匯流排等待信號Bus_Wait_M2。
舉例而言,在同樣的時脈週期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而被進一步延長。
圖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的優先權。
在圖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。
綜上所述,本發明中所提供的匯流排介面被預設為支援猜測式的匯流排資料交易,且亦支援非猜測式的匯流排資料交易。在本發明中,匯流排主控器及匯流排奴控器間所使用的匯流排協定是非常積極(aggressive)的,這縮短了匯流排資料交易的潛伏期(latency)且改善了此匯流排系統的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100、200、500、900、1300、1500‧‧‧匯流排裝置
110‧‧‧匯流排主控器
120‧‧‧匯流排奴控器
130、230、530、930、1330、1530‧‧‧匯流排介面
Bus_Clk‧‧‧時脈信號
Bus_Req、Bus_Req_M1、Bus_Req_M2‧‧‧匯流排請求 信號
Bus_WR‧‧‧匯流排命令信號
Bus_Wait、Bus_Wait_M1、Bus_Wait_M2‧‧‧匯流排等待信號
Bus_Addr‧‧‧匯流排位址信號
Bus_WData‧‧‧匯流排寫入資料信號
Bus_Rdata‧‧‧匯流排讀取資料信號
T1~T6‧‧‧時脈週期
A~E、A(NS)、B(S)、C(S)、C(NS)、D(S)、A_M1、B_M2、C_M1、D_M2、E_M1‧‧‧匯流排資料交易
DA~DE‧‧‧資料
Cmd_Addr_WS‧‧‧靜態命令/位址等待狀態信號
WData_WS‧‧‧靜態寫入資料等待狀態信號
RData_WS‧‧‧靜態讀取資料等待狀態信號
Static_WS、Static_WS_M1、Static_WS_M2‧‧‧靜態等待狀態信號
Bus_NS_Req‧‧‧非猜測式請求信號
NS_Space‧‧‧非猜測式空間信號
NS_Enable‧‧‧非猜測式致能信號
Bus_NS_Done‧‧‧非猜測式完成信號
1530‧‧‧仲裁器
圖1是根據本發明之一實施例所繪示的匯流排裝置的示意圖。
圖2是根據本發明之一實施例所繪示的具有猜測式匯流排介面的匯流排裝置的示意圖。
圖3及圖4是繪示圖2中所繪示的匯流排裝置的信號波形的示意圖。
圖5是根據本發明之一實施例所繪示的具有延伸式猜測式匯流排介面的匯流排裝置的示意圖
圖6、圖7及圖8是繪示圖5中所繪示的匯流排裝置的信號波形的示意圖。
圖9是根據本發明之一實施例所繪示的具有非猜測式/猜測式匯流排介面的匯流排裝置的示意圖。
圖10、圖11及圖12是繪示圖9中所繪示的匯流排裝置的信號波形的示意圖。
圖13是根據本發明之一實施例所繪示的具有延伸式非猜測式/猜測式匯流排介面的匯流排裝置的示意圖。
圖14是繪示圖13中所繪示的匯流排裝置的信號波形的示意圖。
圖15是根據本發明之一實施例所繪示的具有仲裁器的匯流排裝置的示意圖。
圖16、圖17及圖18是繪示圖15中所繪示的匯流排裝置的信號波形的示意圖。
100‧‧‧匯流排裝置
110‧‧‧匯流排主控器
120‧‧‧匯流排奴控器
130‧‧‧匯流排介面

Claims (16)

  1. 一種匯流排裝置,包括:一匯流排主控器;以及一匯流排奴控器,其透過一匯流排介面耦接於該匯流排主控器,其中當該匯流排主控器發送一匯流排資料交易至該匯流排奴控器時,該匯流排奴控器執行該匯流排資料交易,其中該匯流排資料交易被預設為猜測式的且該匯流排資料交易的一命令指出該匯流排資料交易為一寫入資料交易或是一讀取資料交易;當該匯流排資料交易為該寫入資料交易,該匯流排奴控器將該匯流排資料交易的一寫入資料儲存至該匯流排資料交易的一位址;當該匯流排資料交易為該讀取資料交易,該匯流排奴控器以儲存於該匯流排資料交易的該位址的一讀取資料回應該匯流排資料交易;該匯流排奴控器藉由致能一匯流排等待信號以通知該匯流排主控器該匯流排奴控器在一特定時間區間內將不接受另外的匯流排資料交易。
  2. 如申請專利範圍第1項所述之匯流排裝置,其中該特定時間區間起始於該匯流排奴控器致能該匯流排等待信號後之下一時脈周期,結束於該匯流排奴控器禁能該匯流排等待信號之一時脈周期。
  3. 如申請專利範圍第1項所述之匯流排裝置,其中 該匯流排主控器以及該匯流排奴控器接收一靜態命令/位址等待狀態信號、一靜態寫入資料等待狀態信號,以及一靜態讀取資料等待狀態信號;在匯流排資料交易期間,該靜態命令/位址等待狀態信號、該靜態寫入資料等待狀態信號,以及該靜態讀取資料等待狀態信號皆維持不變;該靜態命令/位址等待狀態信號決定一時間長度,該時間長度為在該匯流排奴控器接收該命令與該位址時,該匯流排主控器維持該命令與該位址不變之時間長度;該靜態寫入資料等待狀態信號決定一時間長度,該時間長度為在該匯流排奴控器接收該寫入資料時,該匯流排主控器維持該匯流排資料交易的該寫入資料不變的時間長度;該靜態讀取資料等待狀態信號決定一時間長度,該時間長度為該匯流排奴控器用來以該讀取資料回應該讀取資料交易的時間長度;該靜態命令/位址等待狀態信號、該靜態寫入資料等待狀態信號以及該靜態讀取資料等待狀態信號為三個單獨的信號或被統一為一單獨靜態等待狀態信號。
  4. 如申請專利範圍第3項所述之匯流排裝置,其中,該靜態命令/位址等待狀態信號延長該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度,該延長的時間長度為一匯流排時脈信號的多數個週期,該週期數等於該靜態命令/位址等待狀態信號的值; 該靜態寫入資料等待狀態信號延長該匯流排主控器維持該匯流排資料交易的該寫入資料不變的該時間長度,該延長的時間長度為該匯流排時脈信號的多數個週期,該週期數等於該靜態寫入資料等待狀態信號的值;該靜態讀取資料等待狀態信號延長該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度,該延長的時間長度為該匯流排時脈信號的多數個週期,該週期數等於該靜態讀取資料等待狀態信號的值。
  5. 如申請專利範圍第4項所述之匯流排裝置,其中,該匯流排奴控器更透過該匯流排介面至少傳輸一動態命令/位址等待狀態信號、一動態寫入資料等待狀態信號以及一動態讀取資料等待狀態信號其中之一至該匯流排主控器;當該匯流排奴控器在該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度中,致能該動態命令/位址等待狀態信號時,該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度被進一步延長,該延長時間是根據該匯流排奴控器禁能該動態命令/位址等待狀態信號的一時間;當該匯流排奴控器在該匯流排主控器維持該匯流排資料交易的寫入資料不變的該時間長度中,致能該動態寫入資料等待狀態信號時,該匯流排主控器維持該匯流排資料交易的寫入資料不變的該時間長度被進一步延長,該延長時間是根據該匯流排奴控器禁能該動態寫入資料等待狀 態信號的一時間;當該匯流排奴控器在該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度中,致能該動態讀取資料等待狀態信號時,該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度被進一步延長,該延長時間是根據該匯流排奴控器禁能該動態讀取資料等待狀態信號的一時間。
  6. 如申請專利範圍第5項所述之匯流排裝置,其中,該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度被進一步延長直到該匯流排時脈信號的一週期,在該週期中該匯流排奴控器禁能該動態命令/位址等待狀態信號;該匯流排主控器維持該匯流排資料交易的該寫入資料不變的該時間長度被進一步延長直到該匯流排時脈信號的一週期,在該週期中該匯流排奴控器禁能該動態寫入資料等待狀態信號;該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度被進一步延長直到該匯流排時脈信號的一週期,在該週期中該匯流排奴控器禁能該動態讀取資料等待狀態信號。
  7. 如申請專利範圍第1項所述之匯流排裝置,其中,當該匯流排奴控器在該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的一時間長度中致能該匯流排等待信號,而且該時間長度是用來讓該匯流排奴控器 接收該命令及該位址時,該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度被進一步延長,該時間延長是根據該匯流排奴控器禁能該匯流排等待信號的一時間;當該匯流排奴控器在該匯流排主控器維持該匯流排資料交易的該寫入資料不變的一時間長度中致能該匯流排等待信號,而且該時間長度是用來讓該匯流排奴控器接收該寫入資料時,該匯流排主控器維持該匯流排資料交易的該寫入資料不變的該時間長度被進一步延長,該時間延長是根據該匯流排奴控器禁能該匯流排等待信號的一時間;當該匯流排奴控器在該匯流排奴控器用來以該讀取資料回應該讀取資料交易的一時間長度中,致能該匯流排等待信號時,該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度被進一步延長,該時間延長是根據該匯流排奴控器禁能該匯流排等待信號的一時間。
  8. 如申請專利範圍第7項所述之匯流排裝置,其中該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的該時間長度、該匯流排主控器維持該匯流排資料交易的該寫入資料不變的該時間長度以及該匯流排奴控器用來以該讀取資料回應該讀取資料交易的該時間長度皆被延長直到該匯流排時脈信號的一週期,在該週期中該匯流排奴控器禁能該匯流排等待信號。
  9. 如申請專利範圍第1項所述之匯流排裝置,其中該匯流排主控器及該匯流排奴控器接收一非猜測式 空間信號;以及該匯流排主控器及該匯流排奴控器根據該非猜測式空間信號以及該匯流排資料交易的該位址而決定該匯流排資料交易為猜測式的或是非猜測式的,其中,當該匯流排資料交易為非猜測式的,該匯流排奴控器暫停該匯流排資料交易的執行,直到被該匯流排主控器通知交付或是終止該匯流排資料交易。
  10. 如申請專利範圍第9項所述之匯流排裝置,其中當該匯流排資料交易為非猜測式的,該匯流排主控器藉由致能一非猜測式請求信號以通知該匯流排奴控器交付該匯流排資料交易;當該匯流排資料交易為非猜測式的,該匯流排主控器藉由不通知該匯流排奴控器交付該匯流排資料交易而發送另一匯流排資料交易至該匯流排奴控器以通知該匯流排奴控器終止該匯流排資料交易。
  11. 如申請專利範圍第10項所述之匯流排裝置,其中當該匯流排奴控器起初決定該匯流排資料交易為非猜測式的而後發現該匯流排資料交易為猜測式的時,該匯流排奴控器交付該匯流排資料交易且通知該匯流排主控器該匯流排資料交易已被交付。
  12. 如申請專利範圍第1項所述之匯流排裝置,其中該匯流排主控器及該匯流排奴控器接收一非猜測式空間信號;該匯流排主控器及該匯流排奴控器根據該非猜測式 空間信號及該匯流排資料交易的該位址而決定該匯流排資料交易為猜測式的或是非猜測式的;當該匯流排資料交易為非猜測式的,該匯流排主控器暫停發送該匯流排資料交易至該匯流排奴控器,直到該匯流排主控器之中引發該匯流排資料交易的一內部操作即將被交付。
  13. 一種匯流排裝置,包括:一仲裁器;一第一匯流排主控器,透過一第一匯流排介面耦接至該仲裁器;一第二匯流排主控器,透過一第二匯流排介面耦接至該仲裁器;以及一匯流排奴控器,透過一第三匯流排介面耦接至該仲裁器,其中對於該第一及第二匯流排主控器其中的各該匯流排主控器,當該匯流排主控器發出一匯流排資料交易時,該仲裁器轉送該匯流排資料交易至該匯流排奴控器而該匯流排奴控器執行該匯流排資料交易,其中該匯流排資料交易被預設為猜測式的而該匯流排資料交易的一命令指出該匯流排資料交易為一寫入資料交易或為一讀取資料交易;當該匯流排資料交易為該寫入資料交易,該匯流排奴控器儲存該匯流排資料交易的一寫入資料至該匯流排資料交易的一位址;當該匯流排資料交易為該讀取資料交易時,該匯流排 奴控器以被儲存在該匯流排資料交易的該位址的一讀取資料回應該匯流排資料交易,且該仲裁器轉送該讀取資料至該匯流排主控器;該仲裁器傳送一靜態等待狀態信號至該匯流排主控器,其中該靜態等待狀態信號決定一時間長度,該時間長度為該匯流排主控器維持該匯流排資料交易的該命令及該位址不變的時間長度,而該時間長度是用來讓該匯流排奴控器接收該命令及該位址的時間長度;當該匯流排資料交易為該寫入資料交易,該匯流排主控器同樣根據該時間長度來維持該匯流排資料交易的該寫入資料不變,而該時間長度是用來讓該匯流排奴控器接收該寫入資料;由該第二匯流排主控器的該靜態等待狀態信號所決定的該時間長度被預設為比由該第一匯流排主控器的該靜態等待狀態信號所決定的該時間長度更長;該仲裁器無延遲地轉送該第一匯流排主控器的該匯流排資料交易至該匯流排奴控器,而該仲裁器以一預定延遲轉送該第二匯流排主控器的該匯流排資料交易至該匯流排奴控器。
  14. 如申請專利範圍第13項所述之匯流排裝置,其中該仲裁器藉由致能一匯流排等待信號以告知該匯流排主控器該仲裁器在一特定時間區間內將不接受另外的匯流排資料交易;當該第二匯流排主控器發出該匯流排資料交易時,該 仲裁器致能該第一匯流排主控器的該匯流排等待信號。
  15. 如申請專利範圍第13項所述之匯流排裝置,其中對於該第一匯流排主控器及該第二匯流排主控器其中的各該匯流排主控器,該仲裁器更傳送一匯流排等待信號至該匯流排主控器;當該仲裁器在被該靜態等待狀態信號所決定的該時間長度內致能該匯流排等待信號時,該時間長度根據該仲裁器禁能該匯流排等待信號的一時間而被延長;當該第一匯流排主控器在由該第二匯流排主控器的該靜態等待狀態信號所決定的該時間長度內發出該匯流排資料交易時,該仲裁器致能該第二匯流排主控器的該匯流排等待信號。
  16. 如申請專利範圍第15項所述之匯流排裝置,其中該仲裁器先致能該第一及第二匯流排主控器的該匯流排等待信號,而後調整該第一及第二匯流排主控器的該靜態等待狀態信號,以調整該第一及第二匯流排主控器的該靜態等待狀態信號所決定的該時間長度。
TW101133544A 2011-11-30 2012-09-13 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸 TWI464598B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/307,007 US8825933B2 (en) 2011-11-30 2011-11-30 Bus apparatus with default speculative transactions and non-speculative extension

Publications (2)

Publication Number Publication Date
TW201321998A true TW201321998A (zh) 2013-06-01
TWI464598B TWI464598B (zh) 2014-12-11

Family

ID=48467848

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101133544A TWI464598B (zh) 2011-11-30 2012-09-13 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸

Country Status (3)

Country Link
US (1) US8825933B2 (zh)
CN (1) CN103139032A (zh)
TW (1) TWI464598B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI678625B (zh) * 2015-04-13 2019-12-01 韓商愛思開海力士有限公司 傳送輸出命令的控制器及其操作方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US20140223051A1 (en) * 2013-02-07 2014-08-07 Andes Technology Corporation Information collection system
JP6726136B2 (ja) * 2017-06-22 2020-07-22 ルネサスエレクトロニクス株式会社 データアクセス装置及びアクセスエラーの通知方法
GB2571538B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717931A (en) 1994-12-20 1998-02-10 Motorola, Inc. Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US5864692A (en) 1996-12-16 1999-01-26 Hewlett-Packard Company Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions
TW432286B (en) * 1999-03-18 2001-05-01 Via Tech Inc Bus retry read method
JP2000293485A (ja) * 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 通信インターフェース
US6256693B1 (en) * 1999-07-15 2001-07-03 3Com Corporation Master/slave data bus employing undirectional address and data lines and request/acknowledge signaling
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6772254B2 (en) * 2000-06-21 2004-08-03 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining
US6654860B1 (en) 2000-07-27 2003-11-25 Advanced Micro Devices, Inc. Method and apparatus for removing speculative memory accesses from a memory access queue for issuance to memory or discarding
US7028166B2 (en) * 2002-04-30 2006-04-11 Advanced Micro Devices, Inc. System and method for linking speculative results of load operations to register values
US6845442B1 (en) * 2002-04-30 2005-01-18 Advanced Micro Devices, Inc. System and method of using speculative operand sources in order to speculatively bypass load-store operations
JP4233373B2 (ja) * 2003-04-14 2009-03-04 株式会社ルネサステクノロジ データ転送制御装置
US7305510B2 (en) * 2004-06-25 2007-12-04 Via Technologies, Inc. Multiple master buses and slave buses transmitting simultaneously
CN100508454C (zh) * 2004-07-16 2009-07-01 佛山市顺德区顺达电脑厂有限公司 主从元件间的数据传输方法
US7822070B2 (en) * 2005-11-29 2010-10-26 St-Ericsson Sa Bus station and system and method of maintaining synchronizing of a bus station
JP2007334564A (ja) 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd ユニファイドメモリシステム
US8006015B2 (en) * 2006-11-08 2011-08-23 Freescale Semiconductor, Inc. Device and method for managing access requests
TWI379200B (en) * 2008-12-12 2012-12-11 Via Tech Inc Methods for preventing transaction collisions on a bus and computer system utilizing the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI678625B (zh) * 2015-04-13 2019-12-01 韓商愛思開海力士有限公司 傳送輸出命令的控制器及其操作方法
US10564851B2 (en) 2015-04-13 2020-02-18 SK Hynix Inc. Controller transmitting output commands and method of operating the same

Also Published As

Publication number Publication date
US8825933B2 (en) 2014-09-02
CN103139032A (zh) 2013-06-05
US20130138847A1 (en) 2013-05-30
TWI464598B (zh) 2014-12-11

Similar Documents

Publication Publication Date Title
KR100932408B1 (ko) 스위치 매트릭스를 통한 데이터 전송을 개선하는 흐름 제어방법
US6772254B2 (en) Multi-master computer system with overlapped read and write operations and scalable address pipelining
TWI464598B (zh) 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸
JP5238747B2 (ja) ハブベースのシステムメモリにおける書込みコマンドを終了させる方法とシステム
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
JP4715801B2 (ja) メモリアクセス制御装置
US7395364B2 (en) Data transfer control apparatus
TW486631B (en) Eliminate adjacent address collisions on a pipelined response bus
JP2002196974A (ja) ディジタル信号処理システム
US6457075B1 (en) Synchronous memory system with automatic burst mode switching as a function of the selected bus master
JP2012038293A5 (zh)
JP2002530731A (ja) 異常メモリアクセスまたは異なる時間のメモリアクセス実行の際のデータバス上のデータ衝突を検出するための方法および装置
WO2008023218A1 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
JP2532191B2 (ja) 複式バス・ア―キテクチャを有する計算システムに使用するデ―タ伝送の管理方法
JP2002530743A (ja) ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US7913013B2 (en) Semiconductor integrated circuit
JP2000163312A (ja) マイクロプロセッサ
US5913231A (en) Method and system for high speed memory address forwarding mechanism
JP2002163228A (ja) 多重コアdsp装置のための外部バス裁定技術
WO2008023219A1 (en) Pipelined device and a method for executing transactions in a pipelined device
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
JP4112813B2 (ja) バスシステム及びそのコマンドの伝達方法
US11847461B2 (en) Out-of-order input / output write
JPH10283302A (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム