專利名稱:總線系統(tǒng)及其存取命令的執(zhí)行調度方法
技術領域:
本發(fā)明涉及總線系統(tǒng)及其存取命令的執(zhí)行調度方法,更具體地說涉及一種包括多個從屬器的總線系統(tǒng),其中主控器發(fā)布的命令按照執(zhí)行準備所定的順序由從屬器執(zhí)行,和該系統(tǒng)的一種執(zhí)行調度方法。
總線主控器是能夠通過提供地址和控制信息啟動讀和寫操作的系統(tǒng)模塊??偩€從屬器是在指定地址空間范圍內響應讀或寫操作的系統(tǒng)模塊。主控器和從屬器有代表性的例子為處理器和存儲器。主控器和從屬器通過總線相互聯(lián)系。換一種說法就是,主控器發(fā)出的命令傳送給從屬器,和通過從從屬器到主控器或者從主控器到從屬器傳送預定的數據,完成執(zhí)行傳送的命令。
為了使多個主控器能夠公平、有效地使用公用總線,已經開發(fā)、應用了多種常規(guī)仲裁方法。但是,常規(guī)的仲裁方法包括仲裁地址/控制總線和數據總線的所屬權。換句話說就是,總線仲裁器只用來仲裁總線所屬權,在此情況下,主控器對總線具有控制權和使用權。因此,如果根據仲裁算法數據總線和地址/控制總線所屬權給予特定的主控器,則此主控器完全擁有數據總線和地址/控制總線直到命令執(zhí)行完畢。
所以,如果執(zhí)行與多個傳輸帶寬比主數據總線窄的局部數據總線相連的從屬器的命令,比如連接到I/O器的輸入/輸出(I/O)總線和耦合到引導ROM的ROM總線,那么主數據總線在某些時鐘周期內是空閑的。這是因為在數據傳輸時主數據總線被發(fā)布命令的主控器獨占,直到要傳輸的數據通過比主數據總線慢的局部數據總線,也就是直到命令執(zhí)行完畢。在寫命令情況下,數據從主數據總線傳輸到局部數據總線,主數據總線的空閑時鐘周期可以通過將數據保持在位于主數據總線和局部數據總線之間的橋接器中并結束主控器對主數據總線的獨占來減少。但是在讀命令情況下,數據必須通過主數據總線傳輸到主控器,主控器需要和主數據總線一起處于空閑狀態(tài),直到要傳輸的數據從局部數據總線傳遞給主數據總線。因此,整個系統(tǒng)的運行速度由于主數據總線的大量空閑時鐘周期被降低。
為了解決上述問題,本發(fā)明的目的是提供一種通過調度命令的執(zhí)行來提高數據傳輸速度的總線系統(tǒng),及用于這種系統(tǒng)總線的執(zhí)行調度方法。
相應地為了實現上述目的,本發(fā)明提供了一種存取命令的調度執(zhí)行方法,包括步驟(a)傳送一條或多條由一個或多個主控器發(fā)布的存取命令到相應的從屬器,(b)存儲傳送的存取命令,和(c)從屬器按照執(zhí)行準備完成的存取命令順序執(zhí)行存儲的存取命令。步驟(a)最好包括步驟(a1)暫存存取命令,和(a2)基于先進先出(FIFO)傳送存儲的存取命令到相應的從屬器。步驟(c)包括步驟(c1)從從屬器接收表明執(zhí)行準備完成的提示,和(c2)給相應的從屬器發(fā)送指令,開始執(zhí)行存取命令。在這種情況下,主控器發(fā)布的存取命令由預定的仲裁器作為仲裁結果傳送。
本發(fā)明還提供一種總線系統(tǒng),包括仲裁器,用于按照預定的仲裁結果順序輸出來自一個或多個主控器的一條或多條存取命令;和執(zhí)行調度器,用于按照仲裁器輸出的存取命令授予從屬器數據總線,從而使存取命令按照執(zhí)行準備完成的存取命令順序執(zhí)行。執(zhí)行調度器最好包括存取命令分配單元,用于接收仲裁器輸出的存取命令并傳送存取命令到相應的從屬器;和執(zhí)行調度單元,用于將被傳遞的存取命令的開始執(zhí)行信號傳輸給在收到存取命令分配單元存取命令的所有從屬器中已經發(fā)送執(zhí)行準備完成信號的從屬器。
從屬器最好包括執(zhí)行命令存儲單元,用于存儲從執(zhí)行調度器傳送來的存取命令;和執(zhí)行單元,用于傳送執(zhí)行準備完成信號給執(zhí)行調度器,在收到開始執(zhí)行信號后執(zhí)行存儲在執(zhí)行命令存儲單元里的存取命令,并且在執(zhí)行完畢后傳送一執(zhí)行完成信號給執(zhí)行調度單元。
存取命令分配單元最好還包括命令存儲單元,用于存儲從仲裁器接收的存取命令。命令存儲單元包括用于存儲存取命令的命令存儲隊列和用于控制命令存儲隊列的命令存儲隊列控制器。
執(zhí)行調度單元最好包括含有一個或多個存儲單元的識別符存儲隊列,用于存儲從存取命令分配單元接收存取命令的相應從屬器的識別符;識別符存儲隊列控制器,用于控制識別符存儲隊列;比較器,每一個均與各自的存儲單元相對應,用于確認存儲在存儲單元里的識別符是否與傳送執(zhí)行準備完成信號的從屬器的識別符一致;和譯碼器,用于在比較器確認兩個識別符一致后將開始執(zhí)行信號傳送給發(fā)送執(zhí)行準備完成信號的從屬器。
執(zhí)行命令存儲單元最好包括執(zhí)行命令存儲隊列,用于存儲存取命令;和執(zhí)行命令存儲隊列控制器,用于控制執(zhí)行命令存儲隊列。
本發(fā)明的上述目的及優(yōu)點隨著結合附圖對本發(fā)明優(yōu)選實施例的詳細描述顯得更加清楚。附圖中
圖1是按照本發(fā)明優(yōu)選實施例的總線系統(tǒng)的示意圖;圖2為圖1中執(zhí)行調度器和從屬器的方框圖;圖3為圖2中執(zhí)行調度器和從屬器的詳細方框圖;圖4為說明執(zhí)行調度器中存取命令分配單元和相應從屬器的處理過程流程圖;圖5為說明執(zhí)行調度器中執(zhí)行調度單元的處理過程流程圖;圖6為說明需要執(zhí)行調度的從屬器的處理過程流程圖;和圖7為說明不需要執(zhí)行調度的從屬器的處理過程流程圖。
參照圖1,總線系統(tǒng)100包括多個主控器11、12、13和14,多個從屬器21、22、23、24和25,總線仲裁器3,和執(zhí)行調度器4。為了簡單起見,未示出多個主控器11-14和多個從屬器21-25之間內部連接的數據總線。數據總線包括不同傳輸速度的主數據總線和局部數據總線。
主控器11-14通常指處理器或直接存儲器存取(DMA)控制器,從屬器21-25指存儲器比如RAM和ROM、I/O器或其他外圍器。任一個主控器11-14均可以變?yōu)楸涣硪恢骺仄?1-14控制的從屬器。更進一步講,主控器和從屬器的數目在需要時可以改變。
常規(guī)總線系統(tǒng)中的總線仲裁器授權地址/控制總線的所有權給主控器,并允許主控器直接管理從屬器和處理來自從屬器的響應。但是,依照本發(fā)明的總線仲裁器不授權地址/控制總線的所有權給主控器。而是總線仲裁器3接收比如地址、讀/寫標志、在塊中傳送數據的長度和主控器11-14所輸出的位長之類的用于數據傳輸的必要信息(指下文中的“存取命令”),然后將存取命令直接傳送給從屬器21-25并管理從屬器21-25。
執(zhí)行調度器4將總線仲裁器3傳送的存取命令發(fā)送給相應的從屬器21、22、23、24、或25,然后允許從屬器21、22、23、34、或25按照執(zhí)行準備完成的順序執(zhí)行存取命令。在這種情況下,執(zhí)行存取命令意思是通過存取命令想要的數據傳輸已經完成。
參照圖2,圖2為圖1中執(zhí)行調度器4和從屬器21-25的方框圖。執(zhí)行調度器4包括存取命令分配單元41,用于將總線仲裁器3輸出的存取命令傳送給相應的從屬器21、22、23、24或25;和執(zhí)行調度單元46,用于將被傳遞的存取命令的開始執(zhí)行信號傳輸給在由存取命令分配單元41傳送存取命令到的所有從屬器21-25中已經發(fā)送執(zhí)行準備完成信號的從屬器21、22、23、24或25。
各從屬器21、22、23、24和25均包括執(zhí)行命令存儲單元210、220、230、240或250和執(zhí)行單元211、221、231、241或251。執(zhí)行命令存儲單元210、220、230、240或250存儲從執(zhí)行調度器4傳送來的存取命令。執(zhí)行單元211、221、231、241或251執(zhí)行存儲在執(zhí)行命令存儲單元210、220、230、240或250里的存取命令,并且在執(zhí)行完畢后傳送一執(zhí)行完成信號給執(zhí)行調度單元46。
圖3為圖2中執(zhí)行調度器4和從屬器21的詳細方框圖。余下的從屬器22-25與從屬器21具有相同的結構,因此為了簡單起見不再敘述其結構。參照圖3,執(zhí)行調度器4的存取命令分配單元41包括命令存儲隊列410和用于控制命令存儲隊列410的命令存儲隊列控制器411,命令存儲隊列410作為命令存儲單元用于存儲從總線仲裁器3收到的存取命令。執(zhí)行調度器4的執(zhí)行調度單元46包括作為用于存儲從屬器21-25的識別符的識別符存儲單元的識別符存儲隊列460和識別符存儲隊列控制器461、比較器462和譯碼器463。
識別符存儲隊列460包含有用于存儲通過存取命令分配單元41接收存取命令的從屬器21、22、23、24或25的識別符的一個或多個存儲單元和控制識別符存儲隊列460的輸入和輸出的識別符存儲隊列控制器461。與各自的存儲單元相對應的各比較器462確認存儲在各自存儲單元里的識別符是否與傳送執(zhí)行準備完成信號的從屬器21、22、23、24或25的識別符一致。如果比較器462確認兩個識別符一致,則譯碼器463將開始執(zhí)行信號傳送給發(fā)送執(zhí)行準備完成信號的從屬器21、22、23、24或25。在此種情況中,比較器462和譯碼器463稱作邏輯判定,從而可以用不同的電路結構實現。
從屬器21的執(zhí)行命令存儲單元210包括執(zhí)行命令存儲隊列212,用于存儲存取命令;和執(zhí)行命令存儲隊列控制器213,用于控制執(zhí)行命令存儲隊列212的輸入和輸出。
基于上述結構,下面將敘述依照本發(fā)明優(yōu)選實施例執(zhí)行存取命令的調度方法。首先敘述在執(zhí)行調度器4里的執(zhí)行處理過程。參照圖4,圖4為說明執(zhí)行調度器4中存取命令分配單元41和相應從屬器的處理過程流程圖。存取命令分配單元41按照預定仲裁結果的順序接收總線仲裁器3輸出的存取命令(步驟4001)。接收的存取命令存儲在用作先進先出(FIFO)隊列的命令存儲隊列410中。
存取命令分配單元41基于地址映射表譯碼存儲在命令存儲隊列410中的存取命令,以識別相應的從屬器21、22、23、24或25,然后傳送存取命令給相應的從屬器21、22、23、24或25(步驟4002)。收到存取命令的從屬器21、22、23、24或25應答存取命令分配單元41已經收到存取命令。存取命令的肯定應答到達存取命令分配單元41(步驟4003)。一旦收到存取命令肯定應答信號,存取命令分配單元41輸出存取命令肯定應答信號已經到達執(zhí)行調度單元46的從屬器21、22、23、24或25的識別符(步驟4004)。同時,在步驟4002中分配的存取命令由相應的從屬器21、22、23、24或25接收(步驟4005)。相應的從屬器21、22、23、24或25檢查執(zhí)行命令存儲隊列212是否全部充滿(步驟4006),如果還有空余存儲單元,則接收的存取命令被存入執(zhí)行命令存儲隊列212(步驟4007)。
圖5為說明執(zhí)行調度器4中執(zhí)行調度單元46的處理過程流程圖。參照圖3和圖5,如果收到來自預定從屬器21、22、23、24或25的存取命令執(zhí)行完成信號(步驟5001),執(zhí)行調度單元46檢查識別符存儲隊列460提供的各個存儲單元是否為空余,以檢查是否還有需要執(zhí)行的存取命令(步驟5002)。如果識別符存儲隊列460中存有識別符,執(zhí)行調度單元46等待來自從屬器21、22、23、24或25的存取命令執(zhí)行準備完成信號(步驟5003)。如果與任何一個存儲的識別符相應的從屬器21、22、23、24或25的存取命令執(zhí)行準備完成信號到達(步驟5004),則在各存儲單元中提供的比較器462檢查存儲在相應存儲單元中的識別符與到達的存取命令執(zhí)行準備完成信號的從屬器21、22、23、24或25的識別符是否一致。如果兩者一致,識別符存儲隊列控制器461將存儲在相應存儲單元中的從屬器21、22、23、24或25的識別符從識別符存儲隊列460輸出到譯碼器463。譯碼器463將識別符存儲隊列460輸出的識別符解碼,然后相應于解碼結果發(fā)送開始執(zhí)行信號給從屬器21、22、23、24或25(步驟5005)。
下面將闡述從屬器21-25中的處理過程。在此種情況下,處理過程分為兩類一種為在從屬器中處理過程不需要執(zhí)行調度,這是因為只對主數據總線存??;另一種為在從屬器中處理過程需要執(zhí)行調度。
圖6為說明需要執(zhí)行調度的從屬器中的處理過程流程圖。為了便于解釋,假定需要執(zhí)行調度的從屬器為圖3中的從屬器21。參照圖6,從屬器21的執(zhí)行單元211通過執(zhí)行命令存儲隊列控制器213檢查在執(zhí)行命令存儲隊列212中是否存儲有存取命令(步驟6001)。如果在執(zhí)行命令存儲隊列212中存儲有存取命令(步驟6002),執(zhí)行命令存儲隊列控制器213基于FIFO從執(zhí)行命令存儲隊列212中輸出存取命令,并且執(zhí)行單元211準備傳輸數據以執(zhí)行從執(zhí)行命令存儲隊列212中輸入的存取命令(步驟6003)。
如果傳輸數據準備完畢(步驟6004),則執(zhí)行單元211置位執(zhí)行準備完成信號線從而給執(zhí)行調度單元46發(fā)送執(zhí)行準備完成信號(步驟6005)。已經發(fā)送執(zhí)行準備完成信號的執(zhí)行單元211等待從執(zhí)行調度單元46來的開始執(zhí)行信號到達(步驟6006)。如果從執(zhí)行調度單元46來的開始執(zhí)行信號到達,則執(zhí)行單元211發(fā)送準備好的數據給相應的主控器11、12、13或14(步驟6008)。如果數據傳輸完畢,執(zhí)行單元211發(fā)送執(zhí)行完成信號給執(zhí)行調度單元46(步驟6009)。一旦收到執(zhí)行完成信號,執(zhí)行調度器4檢查數據總線處于空閑時,循環(huán)執(zhí)行調度存儲在識別符存儲隊列460中的另一個存取命令。
圖7為說明不需要執(zhí)行調度的從屬器中的處理過程流程圖。為了便于解釋,假定不需要執(zhí)行調度的從屬器為圖3中的從屬器21。如果在執(zhí)行命令存儲隊列212中存儲有存取命令,則將從屬器21的識別符存儲于執(zhí)行調度器4的識別符存儲隊列460中。此時,由于當從屬器21的識別符輸入到識別符存儲隊列460時執(zhí)行單元211一直置位執(zhí)行準備完成信號線,執(zhí)行調度器4的執(zhí)行調度單元46立即發(fā)送開始執(zhí)行信號給執(zhí)行單元211,然后執(zhí)行單元211收到開始執(zhí)行信號(步驟7001)。
然后,執(zhí)行單元211準備傳輸數據以執(zhí)行從執(zhí)行命令存儲隊列212中輸入的存取命令(步驟7002)。如果傳輸數據準備完畢,執(zhí)行單元存取主數據總線并傳輸數據給相應的主控器11、12、13或14(步驟7003)。如果數據傳輸完畢,執(zhí)行單元211發(fā)送執(zhí)行完成信號給執(zhí)行調度單元46(步驟7004)。一旦收到執(zhí)行完成信號,執(zhí)行調度器4確認數據總線處于空閑時,循環(huán)執(zhí)行調度相應于存儲在識別符存儲隊列460中的識別符的另一個存取命令。
依照本發(fā)明優(yōu)選實施例的存取命令執(zhí)行調度方法,在總線系統(tǒng)中包括需要存取數據傳輸速度比主數據總線慢的局部數據總線的從屬器時非常高效。這是因為在數據從局部數據總線傳輸到主數據總線情況下,總線主控器的等待時間通過執(zhí)行調度方法被減至最少。但是,在從屬器實際上不需要執(zhí)行調度情況下,由于它只存取主數據總線,提供單獨的執(zhí)行調度模塊增加了硬件和軟件的復雜性。由于這個原因,在上述實施例中,如果從屬器21、22、23、24或25只存取主數據總線,從屬器21、22、23、24或25一直使執(zhí)行準備完成信號線有效,從而若主數據總線處于空閑時,立即從執(zhí)行調度器4接收開始執(zhí)行信號以傳輸數據。
盡管實施例是參照包括主數據總線和局部數據總線且主數據總線高速傳輸數據的總線系統(tǒng)闡述的,本發(fā)明并不受限于此。舉例來說,即使在存取命令的執(zhí)行順序已經由預定的仲裁算法決定之后,除非總線系統(tǒng)具有多個從屬器,可以重新調整執(zhí)行調度,從而存取命令可以由從屬器按照與執(zhí)行準備完成一樣的順序執(zhí)行,因此提高整個系統(tǒng)的處理速度。
正如前面所述,本發(fā)明重新調整命令執(zhí)行順序,以便于首先完成執(zhí)行準備的從屬器首先執(zhí)行命令或存取數據總線,因此提供了一種提高了整個數據處理速度的總線系統(tǒng)及其存取命令執(zhí)行調度方法。具體地說,依照本發(fā)明,如果從屬器連接在數據傳輸速度比主數據總線慢的局部數據總線上,從屬器可以有效存取局部數據總線,因此減少主數據總線的空閑時鐘周期并提高整個系統(tǒng)的處理速度。
權利要求
1.一種存取命令的調度執(zhí)行方法,包括步驟(a)傳送一條或多條由一個或多個主控器發(fā)布的存取命令到相應的從屬器;(b)存儲傳送的存取命令;和(c)從屬器按照執(zhí)行準備完成的存取命令順序執(zhí)行存儲的存取命令。
2.如權利要求1所述的方法,其中步驟(a)包括步驟(a1)暫存存取命令;和(a2)基于先進先出(FIFO)傳送存儲的存取命令到相應的從屬器。
3.如權利要求1所述的方法,其中步驟(c)包括步驟(c1)從從屬器接收表明執(zhí)行準備完成的提示;和(c2)給相應的從屬器發(fā)送指令,開始執(zhí)行存取命令。
4.如權利要求1所述的方法,其中主控器發(fā)布的存取命令由預定的仲裁器作為仲裁結果傳送。
5.如權利要求2所述的方法,其中主控器發(fā)布的存取命令由預定的仲裁器作為仲裁結果傳送。
6.如權利要求3所述的方法,其中主控器發(fā)布的存取命令由預定的仲裁器作為仲裁結果傳送。
7.一種總線系統(tǒng),包括仲裁器,用于按照預定的仲裁結果順序輸出來自一個或多個主控器的一條或多條存取命令;和執(zhí)行調度器,用于按照仲裁器輸出的存取命令授予從屬器數據總線,從而使存取命令按照執(zhí)行準備完成的存取命令順序執(zhí)行。
8.如權利要求7所述的總線系統(tǒng),其中的執(zhí)行調度器包括存取命令分配單元,用于接收仲裁器輸出的存取命令并傳送存取命令到相應的從屬器;和執(zhí)行調度單元,用于將被傳遞的存取命令的開始執(zhí)行信號傳輸給在收到存取命令分配單元存取命令的所有從屬器中已經發(fā)送執(zhí)行準備完成信號的從屬器;和其中的從屬器包括執(zhí)行命令存儲單元,用于存儲從執(zhí)行調度器傳送來的存取命令;和執(zhí)行單元,用于傳送執(zhí)行準備完成信號給執(zhí)行調度器,在收到開始執(zhí)行信號后執(zhí)行存儲在執(zhí)行命令存儲單元里的存取命令,并且在執(zhí)行完畢后傳送一執(zhí)行完成信號給執(zhí)行調度單元。
9.如權利要求8所述的總線系統(tǒng),其中存取命令分配單元進一步包括命令存儲單元,用于存儲從仲裁器接收的存取命令。
10.如權利要求9所述的總線系統(tǒng),其中命令存儲單元包括用于存儲存取命令的命令存儲隊列和用于控制命令存儲隊列的命令存儲隊列控制器。
11.如權利要求8所述的總線系統(tǒng),其中執(zhí)行調度單元包括識別符存儲隊列,含有一個或多個存儲單元,用于存儲從存取命令分配單元接收存取命令的相應從屬器的識別符;識別符存儲隊列控制器,用于控制識別符存儲隊列;比較器,每一個均與各自的存儲單元相對應,用于確認存儲在存儲單元里的識別符是否與傳送執(zhí)行準備完成信號的從屬器的識別符一致;和譯碼器,用于在比較器確認兩個識別符一致后將執(zhí)行開始信號傳送給發(fā)送執(zhí)行準備完成信號的從屬器。
12.如權利要求9所述的總線系統(tǒng),其中執(zhí)行調度單元包括識別符存儲隊列,含有一個或多個存儲單元,用于存儲從存取命令分配單元接收存取命令的相應從屬器的識別符;識別符存儲隊列控制器,用于控制識別符存儲隊列;比較器,每一個均與各自的存儲單元相對應,用于確認存儲在存儲單元里的識別符是否與傳送執(zhí)行準備完成信號的從屬器的識別符一致;和譯碼器,用于在比較器確認兩個識別符一致后將執(zhí)行開始信號傳送給發(fā)送執(zhí)行準備完成信號的從屬器。
13.如權利要求10所述的總線系統(tǒng),其中執(zhí)行調度單元包括識別符存儲隊列,含有一個或多個存儲單元,用于存儲從存取命令分配單元接收存取命令的相應從屬器的識別符;識別符存儲隊列控制器,用于控制識別符存儲隊列;比較器,每一個均與各自的存儲單元相對應,用于確認存儲在存儲單元里的識別符是否與傳送執(zhí)行準備完成信號的從屬器的識別符一致;和譯碼器,用于在比較器確認兩個識別符一致后將執(zhí)行開始信號傳送給發(fā)送執(zhí)行準備完成信號的從屬器。
14.如權利要求8所述的總線系統(tǒng),其中執(zhí)行命令存儲單元包括執(zhí)行命令存儲隊列,用于存儲存取命令;和執(zhí)行命令存儲隊列控制器,用于控制執(zhí)行命令存儲隊列。
全文摘要
一種總線系統(tǒng)及用于該總線系統(tǒng)的執(zhí)行調度方法。執(zhí)行調度方法包括步驟:(a)傳送一條或多條由一個或多個主控器發(fā)布的存取命令到相應的從屬器;(b)存儲傳送的存取命令;和(c)從屬器按照執(zhí)行準備完成的存取命令順序執(zhí)行存儲的存取命令。照此方法,重新調整了存取命令的執(zhí)行順序,從而提供了一種提高了數據處理速度的總線系統(tǒng)及其執(zhí)行調度方法。
文檔編號G06F13/38GK1334516SQ0013646
公開日2002年2月6日 申請日期2000年12月26日 優(yōu)先權日2000年7月21日
發(fā)明者金鎮(zhèn)守 申請人:三星電子株式會社