專利名稱:系統(tǒng)總線控制裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種系統(tǒng)總線控制裝置及方法,特別涉及一種能有效率的管理一計(jì)算機(jī)系統(tǒng)中總線事務(wù)處理(Bus Transaction)的系統(tǒng)總線控制裝置及方法。
背景技術(shù):
眾所周知,總線(Bus)為一計(jì)算機(jī)系統(tǒng)中用來傳送指令及數(shù)據(jù)的信道,可提供計(jì)算機(jī)系統(tǒng)中各裝置間的總線事務(wù)處理。一公知計(jì)算機(jī)系統(tǒng)10如圖1所示,計(jì)算機(jī)系統(tǒng)10包含一總線(bus)12、一第一總線主控器(bus master)14、一第二總線主控器16、一第一總線受控器(bus slave)18及一第二總線受控器20,其中第一、第二總線主控器14、16及第一、第二總線受控器18、20都電連接于總線12。前述第一、第二總線主控器14、16如為一中央處理單元(CPU)或一微控制器(MCU),能發(fā)送及接收指令并執(zhí)行其所接收到的指令,而第一、第二總線受控器18、20等如為I/O裝置,僅能接收指令并執(zhí)行其所接收到的指令。
公知計(jì)算機(jī)系統(tǒng)10的工作方式說明如下第一總線主控器14(或第二總線主控器16)在取得總線12許可(grant)將指令由總線12傳送至第一總線受控器18(或第二總線受控器20)后,第一總線主控器14會(huì)一直等待并占用該總線12,直到第一總線受控器18執(zhí)行完指令后將一確認(rèn)信號(hào)(acknowledge)ACK及一回復(fù)信息(Response)由總線12傳送至第一總線主控器14為止(第一總線主控器14會(huì)因總線12種類的不同占用總線12方式也不同)。然后,該第一總線主控器14才會(huì)再恢復(fù)成一準(zhǔn)備模式(stand-by mode)以進(jìn)行下一筆指令的處理。也就是說,在第一總線主控器14等待第一總線受控器18發(fā)送的確認(rèn)信號(hào)及回復(fù)信息期間,第一總線主控器14無法再將任何指令由總線12傳送至第一總線受控器18,或計(jì)算機(jī)系統(tǒng)10內(nèi)的第一、第二總線主控器14、16無法將任何指令由總線12傳送至第一、第二總線受控器18、20。若第一總線受控器18執(zhí)行指令的速度相當(dāng)緩慢,整個(gè)計(jì)算機(jī)系統(tǒng)10的工作速率也會(huì)隨之降低,在對計(jì)算機(jī)系統(tǒng)工作速率要求日益迫切的今日,這項(xiàng)缺點(diǎn)無疑會(huì)阻礙計(jì)算機(jī)系統(tǒng)的發(fā)展。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題為提供一種系統(tǒng)總線控制裝置及方法,可使一計(jì)算機(jī)系統(tǒng)內(nèi)的總線工作速率不會(huì)受限總線主控器或總線受控器緩慢工作速率而拖累,以解決公知技術(shù)的缺點(diǎn)。
根據(jù)本發(fā)明的最佳實(shí)施例,本發(fā)明公開了一種適用于一計(jì)算機(jī)系統(tǒng)中的系統(tǒng)總線控制方法,該計(jì)算機(jī)系統(tǒng)至少包含一總線及一電連接于該總線的總線主控器(bus master),該方法包含(a)自該總線接收由總線主控器傳送的一指令;(b)將前述每一傳來的指令按順序加以隊(duì)列存儲(chǔ)在一內(nèi)存中;(c)根據(jù)前述每一隊(duì)列存儲(chǔ)的指令,由該總線按順序發(fā)出一相對應(yīng)的確認(rèn)信號(hào)至總線主控器;(d)使該總線主控器接收到每一確認(rèn)信號(hào)時(shí),相對發(fā)出一控制信號(hào)來釋放總線的信道,且該總線主控器恢復(fù)成一準(zhǔn)備模式;(e)根據(jù)前述每一隊(duì)列存儲(chǔ)的指令,按順序?qū)?yīng)產(chǎn)生一執(zhí)行結(jié)果;以及(f)使總線主控器按順序取得步驟(e)中所產(chǎn)生的每一執(zhí)行結(jié)果。
由于本發(fā)明的系統(tǒng)總線控制裝置可在接收到總線主控器由總線所傳來的每一項(xiàng)輸入指令時(shí),將每一指令按順序存儲(chǔ)于內(nèi)存中,并立即發(fā)出可釋放總線的確認(rèn)信號(hào)給總線主控器,使總線主控器恢復(fù)成準(zhǔn)備模式,以執(zhí)行其它工作或運(yùn)算;待指令執(zhí)行完成后,系統(tǒng)總線控制裝置再主動(dòng)將指令的執(zhí)行結(jié)果另行送回總線主控器或由系統(tǒng)總線控制裝置通知總線主控器進(jìn)行提取,因此在執(zhí)行指令時(shí),處理速度的快慢就不致于影響到整個(gè)計(jì)算機(jī)系統(tǒng)的工作效率。
圖1為一公知計(jì)算機(jī)系統(tǒng)的示意圖。
圖2為本發(fā)明較佳實(shí)施例中一計(jì)算機(jī)系統(tǒng)的功能方框圖。
圖3為圖2所示的計(jì)算機(jī)系統(tǒng)方法流程圖。
圖4為本發(fā)明較佳實(shí)施例中一計(jì)算機(jī)系統(tǒng)的功能方框圖。
圖5為圖4所示的計(jì)算機(jī)系統(tǒng)方法流程圖。
圖6為本發(fā)明較佳實(shí)施例中一計(jì)算機(jī)系統(tǒng)的功能方框圖。
圖7為圖6所示的計(jì)算機(jī)系統(tǒng)方法流程圖。
具體實(shí)施例方式
圖2為本發(fā)明較佳實(shí)施例中一計(jì)算機(jī)系統(tǒng)30的功能方框圖。計(jì)算機(jī)系統(tǒng)30包含一用來傳送指令/數(shù)據(jù)的總線(Bus)32、一總線主控器(Bus Master)34及一系統(tǒng)總線控制裝置(System Bus Controller)36,其中該總線主控器34及系統(tǒng)總線控制裝置36都電連接于總線32。
為使本發(fā)明計(jì)算機(jī)系統(tǒng)30具備較佳的工作效果,前述總線32是一點(diǎn)對點(diǎn)連接總線(point-to-point interconnect bus),換言之,計(jì)算機(jī)系統(tǒng)30中的總線32可同時(shí)提供多條指令/數(shù)據(jù)傳送信道來許可多組的總線主控器彼此間傳送指令/數(shù)據(jù)??偩€32可為一種ISA(industry standard architecture)、EISA(extendedindustry standard architecture)、或PCI(peripheral component interconnect)等總線架構(gòu)。而對應(yīng)于上述總線32的總線主控器34可為一中央處理器(CPU),而系統(tǒng)總線控制裝置36是設(shè)置于一I/O外圍設(shè)備(I/O Device)內(nèi),可使該I/O外圍設(shè)備收到總線主控器34傳來的指令時(shí)立即主動(dòng)響應(yīng),而無需持續(xù)占用總線主控器34及總線32的資源來等待指令已處理完畢的信息(待后詳述)。
點(diǎn)對點(diǎn)總線32具有至少一工作分配電路或稱仲裁器(Arbiter,未顯示)AR用于分配指令/數(shù)據(jù)傳送信道給第一總線主控器34,其工作方式說明如下當(dāng)總線主控器34要將輸入指令/數(shù)據(jù)傳送至系統(tǒng)總線控制裝置36時(shí),總線主控器34必需先傳送一對應(yīng)于總線主控器34的請求信號(hào)(request)REQ#至總線32內(nèi)的工作分配電路AR,工作分配電路AR在判斷由總線主控器34所傳來的請求信號(hào)REQ#優(yōu)先級(jí)(priority)后,會(huì)發(fā)出一許可信號(hào)(grant)GNT#,以允許總線主控器34與系統(tǒng)總線控制裝置36處理事務(wù)(Transaction),以將指令/數(shù)據(jù)傳送信道分配給總線主控器34,然后該總線主控器34就可將指令/數(shù)據(jù)由指令/數(shù)據(jù)傳送信道傳送至系統(tǒng)總線控制裝置36。
圖2中所示的計(jì)算機(jī)系統(tǒng)30中,該系統(tǒng)總線控制裝置36包含一用來存儲(chǔ)前述總線主控器34按順序傳送來的多組輸入指令(Entries)的主隊(duì)列(Queue)42、一用來執(zhí)行前述輸入指令的輸入隊(duì)列執(zhí)行器(Queue EntryExecutor)44、一電連接于總線32的總線主控接口(Bus Master Interface)46用來將輸入隊(duì)列執(zhí)行器44執(zhí)行該指令后所產(chǎn)生的執(zhí)行結(jié)果傳送至總線32、一電連接于總線32的總線受控接口(Bus Slave Interface)48用來接收由總線32所傳送來的輸入指令、以及一隊(duì)列管理單元(Queue Management Unit)50用來管理主隊(duì)列42的工作。
通過前述主/總線受控接口46及48的設(shè)計(jì),可使該系統(tǒng)總線控制裝置36同時(shí)具有總線主控器(Bus Master)及總線受控器(Bus Slave)兩種角色,因此使本發(fā)明的系統(tǒng)總線控制裝置36不但能接收其它總線主控器由總線32傳來的輸入指令/數(shù)據(jù),也能將執(zhí)行該輸入指令/數(shù)據(jù)后所產(chǎn)生的執(zhí)行結(jié)果主動(dòng)傳送給總線主控器34。前述總線主控器34由總線32傳來的每一筆輸入指令/數(shù)據(jù),可包括如下參數(shù)源地址(Source Address)、目標(biāo)地址(Target Address)、存取型態(tài)(Access Type)、腳位(Count Number)及額外的信息等。
每當(dāng)前述總線受控接口48接收到總線32送來的輸入指令/數(shù)據(jù)時(shí),隊(duì)列管理單元50會(huì)將每一筆輸入指令/數(shù)據(jù)的參數(shù)(Parameters)按先后順序放入主隊(duì)列42內(nèi)隊(duì)列存放,并能根據(jù)此輸入指令的接收,立即自動(dòng)對應(yīng)產(chǎn)生一確認(rèn)信號(hào)ACK回傳給該總線主控器34,使該總線主控器34得以立即恢復(fù)成準(zhǔn)備模式,而無需如公知技術(shù)的必須持續(xù)占用總線32信道及總線主控器34資源一直到此輸入指令被執(zhí)行完畢為止。前述主隊(duì)列42可為一設(shè)置在動(dòng)態(tài)隨機(jī)存取內(nèi)存(SDRAM)中的一暫存區(qū)(BUFFER),而隊(duì)列管理單元50包括一固化程序,存放在一可擦可編程只讀存儲(chǔ)器(EEPROM)中,及/或一內(nèi)存控制接口(Memory Controller Interface)。
該輸入隊(duì)列執(zhí)行器44,可為一固化程序或一微控制器(MCU)或一直接內(nèi)存存取單元(DMA),其由隊(duì)列管理單元50取得存放在主隊(duì)列42內(nèi)的每一輸入指令的參數(shù)并執(zhí)行指令。待執(zhí)行完成后,該輸入隊(duì)列執(zhí)行器44會(huì)由該隊(duì)列管理單元50至總線主控接口46開始一總線事務(wù)處理(Bus Transaction),以回復(fù)給該總線主控器34。
圖3為圖2所示計(jì)算機(jī)系統(tǒng)30進(jìn)行一系統(tǒng)總線控制方法300的流程圖(其中總線主控器34已得到總線32的工作分配電路的允許,可以對系統(tǒng)總線控制裝置36發(fā)送數(shù)據(jù)),方法300包含下列步驟步驟302開始;(其中總線主控器34將指令/數(shù)據(jù)由總線32傳送至系統(tǒng)總線控制裝置36)步驟304該系統(tǒng)總線控制裝置36以其總線受控接口48由總線32接收自總線主控器34發(fā)出的輸入指令/數(shù)據(jù);(總線主控器34所發(fā)出的每一輸入指令都包含來源地址、目標(biāo)地址、存取類型及補(bǔ)充信息等字段,舉例來說,某一輸入指令的來源地址字段中存儲(chǔ)關(guān)于總線主控器34的IP,而指令的目標(biāo)地址字段中存儲(chǔ)關(guān)于系統(tǒng)總線控制裝置36的IP)步驟306系統(tǒng)總線控制裝置36的隊(duì)列管理單元50判斷主隊(duì)列42內(nèi)是否尚有用于存儲(chǔ)輸入指令的多余空間,若是,進(jìn)行步驟308,若否,進(jìn)行步驟304;(若隊(duì)列管理單元50判斷主隊(duì)列42已沒有用于存儲(chǔ)輸入指令的多余空間時(shí),隊(duì)列管理單元50會(huì)一直“等待”主隊(duì)列42產(chǎn)生可用于存儲(chǔ)輸入指令的空間后(關(guān)于主隊(duì)列42如何產(chǎn)生用來存儲(chǔ)輸入指令的空間在后面描述),才將指令由總線受控接口48按順序存儲(chǔ)至主隊(duì)列42內(nèi)。為了避免上述會(huì)影響計(jì)算機(jī)系統(tǒng)30的工作速率的“等待”情形發(fā)生,該系統(tǒng)總線控制裝置36內(nèi)的主隊(duì)列42存儲(chǔ)指令的空間可按系統(tǒng)總線控制裝置36的使用狀況作適度的調(diào)整,也就是說,若系統(tǒng)總線控制裝置36經(jīng)常發(fā)生其所接收到指令的速率超過其內(nèi)的輸入隊(duì)列執(zhí)行器44所能處理指令的速率情況時(shí),系統(tǒng)總線控制裝置36內(nèi)就需配置具有較多存儲(chǔ)指令空間隊(duì)列)步驟308系統(tǒng)總線控制裝置36的隊(duì)列管理單元50將指令從該總線受控接口48存儲(chǔ)(push)至主隊(duì)列42,并隨即發(fā)出一確認(rèn)信號(hào)ACK釋放該指令/數(shù)據(jù)傳送信道,并使總線主控器34回到準(zhǔn)備模式;(在將指令存儲(chǔ)至主隊(duì)列42后,隊(duì)列管理單元50更新主隊(duì)列42的相關(guān)指針(pointer),由于此更新指標(biāo)的動(dòng)作為公知技術(shù),所以在此不再贅述)步驟310系統(tǒng)總線控制裝置36的輸入隊(duì)列執(zhí)行器44按順序?qū)⒋鎯?chǔ)于主隊(duì)列42內(nèi)的指令彈出(pop out),例如一指令被彈出,并根據(jù)存儲(chǔ)于指令各字段中的數(shù)據(jù)執(zhí)行指令,產(chǎn)生對應(yīng)于指令的執(zhí)行結(jié)果;(在指令從主隊(duì)列42被彈出后,隊(duì)列管理單元50更新(update)主隊(duì)列42的相關(guān)指針)步驟312系統(tǒng)總線控制裝置36的隊(duì)列管理單元50將輸入隊(duì)列執(zhí)行器44執(zhí)行指令所產(chǎn)生執(zhí)行結(jié)果傳送至總線主控接口48以傳送至總線主控器34,并將該執(zhí)行結(jié)果根據(jù)存儲(chǔ)于主隊(duì)列42的其它指令各字段中(例如源地址及目標(biāo)地址等);步驟314系統(tǒng)總線控制裝置36的隊(duì)列管理單元50判斷主隊(duì)列42內(nèi)是否存儲(chǔ)有尚未被輸入隊(duì)列執(zhí)行器44執(zhí)行過的指令,若是,進(jìn)行步驟310,若否,進(jìn)行步驟316;
步驟316結(jié)束。
圖4為本發(fā)明的第二實(shí)施例中一計(jì)算機(jī)系統(tǒng)60功能方框圖。計(jì)算機(jī)系統(tǒng)60包含總線32、總線主控器34及一系統(tǒng)總線控制裝置38。根據(jù)本發(fā)明第二實(shí)施例的系統(tǒng)總線控制裝置38與第一實(shí)施例同樣具有一主隊(duì)列62、一隊(duì)列管理單元70及一輸入隊(duì)列執(zhí)行器64。不同之處在于第一實(shí)施例的系統(tǒng)總線控制裝置36兼具有主控及受控兩種接口,而本第二實(shí)施例的系統(tǒng)總線控制裝置38僅具一總線受控接口66,因此僅能接收其它總線主控器(Bus Master)傳來的輸入指令及數(shù)據(jù)并執(zhí)行其所接收到的指令,而無主動(dòng)回復(fù)執(zhí)行結(jié)果的功能,故需額外由一輪詢模塊(Polling Unit)68的協(xié)助(待后詳述)來達(dá)成。
前述系統(tǒng)總線控制裝置38的輪詢模塊68,可為計(jì)算機(jī)初始化時(shí)加載RAM內(nèi)的一檢測軟件或一存放于ROM內(nèi)的固化程序,如當(dāng)總線主控器34為一計(jì)算機(jī)的中央處理器單元(CPU)時(shí),輪詢模塊68可為計(jì)算機(jī)初始化軟件/固化程序中的一部份,一旦該計(jì)算機(jī)開機(jī)(booting),即可加載輪詢模塊68的程序,定時(shí)輪詢(Polling)主隊(duì)列62中一存放執(zhí)行結(jié)果的特定地址內(nèi)是否具有一標(biāo)志值(flag),以判斷輸入隊(duì)列執(zhí)行器64是否已產(chǎn)生對應(yīng)于一指令的執(zhí)行結(jié)果。
圖5為根據(jù)本發(fā)明第二實(shí)施例一系統(tǒng)總線控制方法600的流程圖,包含下列步驟步驟602開始;(此時(shí),總線主控器34已可將一輸入指令/數(shù)據(jù)由總線32傳送至系統(tǒng)總線控制裝置38)步驟604系統(tǒng)總線控制裝置38以總線受控接口66接收由總線主控器34發(fā)出的輸入指令/數(shù)據(jù);步驟606系統(tǒng)總線控制裝置38的隊(duì)列管理單元70判斷主隊(duì)列62內(nèi)是否尚有用來存儲(chǔ)指令的多余空間,若主隊(duì)列62未滿,進(jìn)行步驟608,若已滿,進(jìn)行步驟604;(若隊(duì)列管理單元70判斷主隊(duì)列62已無存儲(chǔ)指令多余空間時(shí),隊(duì)列管理單元70會(huì)一直”等待”主隊(duì)列62產(chǎn)生可用的空間后,才將指令由總線受控接口66按順序存儲(chǔ)至主隊(duì)列62內(nèi)。為了避免上述會(huì)影響計(jì)算機(jī)系統(tǒng)60的工作速率的“等待”情形發(fā)生,系統(tǒng)總線控制裝置38內(nèi)的主隊(duì)列62存儲(chǔ)指令的空間可按系統(tǒng)總線控制裝置38的使用狀況而作適度的調(diào)整)步驟608系統(tǒng)總線控制裝置38的隊(duì)列管理單元70自總線受控接口66接收到一輸入指令并將其存儲(chǔ)至主隊(duì)列62內(nèi),并隨即發(fā)出一確認(rèn)信號(hào)ACK以釋放指令/數(shù)據(jù)傳送信道,使總線主控器34恢復(fù)成準(zhǔn)備模式;(在將此輸入指令存儲(chǔ)至主隊(duì)列62后,隊(duì)列管理單元70即更新主隊(duì)列62的相關(guān)指針)步驟610系統(tǒng)總線控制裝置38的輸入隊(duì)列執(zhí)行器64按順序?qū)⒋鎯?chǔ)于主隊(duì)列62內(nèi)的輸入指令彈出,產(chǎn)生一對應(yīng)于該指令的執(zhí)行結(jié)果;(在指令從主隊(duì)列62被彈出后,隊(duì)列管理單元70更新主隊(duì)列62的相關(guān)指針)步驟612系統(tǒng)總線控制裝置38的隊(duì)列管理單元70在輸入隊(duì)列執(zhí)行器64產(chǎn)生對應(yīng)于指令的執(zhí)行結(jié)果時(shí),在主隊(duì)列62內(nèi)一特定地址上設(shè)定一標(biāo)志值,以表示該輸入隊(duì)列執(zhí)行器64產(chǎn)生一執(zhí)行結(jié)果的狀態(tài)(status);(由于系統(tǒng)總線控制裝置38為一受控裝置,所以無法將該輸入隊(duì)列執(zhí)行器44的執(zhí)行結(jié)果主動(dòng)地傳送至總線32予總線主控器34,反而是必需被動(dòng)地等待計(jì)算機(jī)系統(tǒng)60中主控裝置-總線主控器34以定時(shí)輪詢(Polling)的方式提取對應(yīng)于其輸入指令的執(zhí)行結(jié)果)步驟614輪詢模塊68由總線主控器34定期輪詢到該系統(tǒng)總線控制裝置38的主隊(duì)列62內(nèi)存在一標(biāo)志值時(shí),即通知總線主控器34由總線32提取該執(zhí)行結(jié)果;步驟616系統(tǒng)總線控制裝置38的隊(duì)列管理單元70判斷主隊(duì)列62內(nèi)是否存儲(chǔ)有尚未被輸入隊(duì)列執(zhí)行器64執(zhí)行過的指令,若是,進(jìn)行步驟610,若否,進(jìn)行步驟618;步驟618結(jié)束。
圖6為本發(fā)明第三實(shí)施例中一計(jì)算機(jī)系統(tǒng)81的功能方框圖。該計(jì)算機(jī)系統(tǒng)81包含總線32、總線主控器34及一系統(tǒng)總線控制裝置40。根據(jù)本發(fā)明第三實(shí)施例的系統(tǒng)總線控制裝置40,與第一及第二實(shí)施例同樣具有一主隊(duì)列82、一隊(duì)列管理單元90及一輸入隊(duì)列執(zhí)行器84。其中不同之處在于第一實(shí)施例的系統(tǒng)總線控制裝置36兼具有主控及受控兩種接口,而本第三實(shí)施例的系統(tǒng)總線控制裝置40僅具一總線受控接口86(此與第二實(shí)施例類似),故僅能接收由如總線主控器34的其它總線主控器(Bus Master)傳來的輸入指令/數(shù)據(jù)并執(zhí)行該指令,而并無主動(dòng)回復(fù)執(zhí)行結(jié)果的功能,故需由一中斷控制器(Interrupt Controller)83(待后詳述)來達(dá)成(不同于前述第二實(shí)施例使用一輪詢模塊來達(dá)成)。
當(dāng)前述系統(tǒng)總線控制裝置40的輸入隊(duì)列執(zhí)行器84產(chǎn)生一相對指令的執(zhí)行結(jié)果后,由隊(duì)列管理單元90將該執(zhí)行結(jié)果放置于主隊(duì)列82的一特定地址上時(shí),同時(shí)產(chǎn)生一注冊(Register),使一電性連接中斷控制器83的針腳(PIN)的電位改變,以觸發(fā)(Trigger)中斷控制器83發(fā)出一中斷信息給總線主控器34,使總線主控器34開始提取該輸入隊(duì)列執(zhí)行器84產(chǎn)生的執(zhí)行結(jié)果。
圖7為根據(jù)本發(fā)明第三實(shí)施例的一系統(tǒng)總線控制方法800流程圖,包含下列步驟步驟802開始;(此時(shí),總線主控器34已可將輸入指令/數(shù)據(jù)由總線32傳送至該系統(tǒng)總線控制裝置40)步驟804系統(tǒng)總線控制裝置40以總線受控接口86接收由總線主控器34所發(fā)出的指令;步驟806該系統(tǒng)總線控制裝置40的隊(duì)列管理單元90判斷該主隊(duì)列82內(nèi)是否尚有用來存儲(chǔ)指令的多余空間,若是,進(jìn)行步驟808,若否,進(jìn)行步驟804;(若隊(duì)列管理單元90判斷主隊(duì)列82已沒有多余空間可存儲(chǔ)指令時(shí),隊(duì)列管理單元90會(huì)一直“等待”主隊(duì)列82產(chǎn)生可用來存儲(chǔ)指令的空間后,才將指令由總線受控接口86按順序存儲(chǔ)至主隊(duì)列82內(nèi)。為了避免上述會(huì)影響計(jì)算機(jī)系統(tǒng)81的工作速率的“等待”情形發(fā)生,該系統(tǒng)總線控制裝置40內(nèi)的主隊(duì)列82存儲(chǔ)指令空間可按該系統(tǒng)總線控制裝置40的使用狀況而作適度的調(diào)整)步驟808系統(tǒng)總線控制裝置40的隊(duì)列管理單元90自總線受控接口86接收傳來的輸入指令并將其存儲(chǔ)至主隊(duì)列82中,并隨即發(fā)出確認(rèn)信號(hào)ACK以釋放指令/數(shù)據(jù)傳送信道,并使該總線主控器34恢復(fù)到準(zhǔn)備模式;(在將指令存儲(chǔ)至主隊(duì)列82后,該隊(duì)列管理單元90更新主隊(duì)列82的相關(guān)指針)步驟810該系統(tǒng)總線控制裝置40的輸入隊(duì)列執(zhí)行器84按順序?qū)⒋鎯?chǔ)于主隊(duì)列82內(nèi)的指令彈出,并根據(jù)存儲(chǔ)于指令各字段中的數(shù)據(jù)執(zhí)行指令,以產(chǎn)生一對應(yīng)于指令的執(zhí)行結(jié)果;(在每一指令從主隊(duì)列82被彈出并執(zhí)行后,該隊(duì)列管理單元90更新主隊(duì)列82內(nèi)的相關(guān)指針)步驟812該系統(tǒng)總線控制裝置40的隊(duì)列管理單元90在輸入隊(duì)列執(zhí)行器84產(chǎn)生一對應(yīng)于前述指令的執(zhí)行結(jié)果,并將該執(zhí)行結(jié)果放置于主隊(duì)列82的一特定地址上,并產(chǎn)生一注冊(Register),使一電性連接中斷控制器83的針腳(PIN)的電位改變,以觸發(fā)(Trigger)該中斷控制器83產(chǎn)生一中斷信號(hào)給總線主控器34;(由于本第三實(shí)施例的系統(tǒng)總線控制裝置40也為一受控裝置(僅具有一總線受控接口86),所以必須由中斷方式通知計(jì)算機(jī)系統(tǒng)81中的主控裝置-總線主控器34提取對應(yīng)于前述指令的執(zhí)行結(jié)果)步驟814總線主控器34接收到來自中斷控制器83的中斷信號(hào)時(shí),總線主控器34就會(huì)由總線32提取該執(zhí)行結(jié)果;(中斷控制器83根據(jù)該中斷信號(hào)通知總線主控器34中斷其正在執(zhí)行的工作轉(zhuǎn)而由總線32提取該輸入隊(duì)列執(zhí)行器84執(zhí)行指令后所產(chǎn)生的執(zhí)行結(jié)果。)步驟816系統(tǒng)總線控制裝置40的隊(duì)列管理單元90判斷主隊(duì)列82內(nèi)是否已空,即代表有無尚未被輸入隊(duì)列執(zhí)行器84執(zhí)行過的指令,若否,則重復(fù)進(jìn)行步驟810,若是,進(jìn)行步驟818;步驟818結(jié)束。
綜上所述,較在圖1的公知計(jì)算機(jī)系統(tǒng)10中各總線受控器18,20在執(zhí)行指令時(shí)仍然占用總線12及各總線主控器14,16(如CPU)資源的缺點(diǎn),根據(jù)本發(fā)明第一、二及三實(shí)施例的系統(tǒng)總線控制裝置36、38、40可在收到總線主控器36由總線32所傳來的每一項(xiàng)輸入指令時(shí),利用一隊(duì)列管理單元按順序存儲(chǔ)每一指令于主隊(duì)列中,并立即發(fā)出可釋放總線32信道的一確認(rèn)信號(hào)ACK給總線主控器34,使總線主控器34恢復(fù)成該準(zhǔn)備模式,得以執(zhí)行其它工作或運(yùn)算,待該指令完成后,系統(tǒng)總線控制裝置36再主動(dòng)將該指令的執(zhí)行結(jié)果另行送回總線主控器34或由系統(tǒng)總線控制裝置38及40通知總線主控器34進(jìn)行提取,因此在執(zhí)行指令時(shí),處理速度的快慢就不致于影響到整個(gè)計(jì)算機(jī)系統(tǒng)30(60、81)的工作效率。
權(quán)利要求
1.一種系統(tǒng)總線控制方法,適用于一計(jì)算機(jī)系統(tǒng)中,且該計(jì)算機(jī)系統(tǒng)至少包含一總線及一電連接于該總線的總線主控器,該方法包含a、自該總線接收由總線主控器傳送的一指令;b、將前述每一傳來的指令按順序隊(duì)列存儲(chǔ)于一內(nèi)存中;c、根據(jù)前述每一隊(duì)列存儲(chǔ)的指令,由該總線按順序發(fā)出一相應(yīng)的確認(rèn)信號(hào)至總線主控器;d、使該總線主控器接收到每一確認(rèn)信號(hào)時(shí),發(fā)出一相應(yīng)控制信號(hào)來釋放該總線的信道,且總線主控器恢復(fù)成一準(zhǔn)備模式;e、根據(jù)前述每一隊(duì)列存儲(chǔ)的指令,按順序?qū)?yīng)產(chǎn)生一執(zhí)行結(jié)果;以及f、使總線主控器按順序取得步驟(e)中所產(chǎn)生的每一執(zhí)行結(jié)果。
2.如權(quán)利要求1所述的系統(tǒng)總線控制方法,其特征在于該計(jì)算機(jī)系統(tǒng)包括一系統(tǒng)總線控制裝置。
3.如權(quán)利要求2所述的系統(tǒng)總線控制方法,其特征在于該系統(tǒng)總線控制裝置包含一總線受控接口,電連接于總線,用來執(zhí)行步驟a中接收該總線主控器傳來的指令;一主隊(duì)列,用來執(zhí)行步驟b中隊(duì)列存儲(chǔ);一輸入隊(duì)列執(zhí)行器,用來執(zhí)行步驟e中該主隊(duì)列的每一隊(duì)列存儲(chǔ)的指令以產(chǎn)生一對應(yīng)的執(zhí)行結(jié)果;以及一隊(duì)列管理單元,用來管理該主隊(duì)列中的指令隊(duì)列并執(zhí)行步驟c中確認(rèn)信號(hào)的發(fā)送。
4.如權(quán)利要求3所述的系統(tǒng)總線控制方法,其特征在于該系統(tǒng)總線控制裝置還包含一總線主控接口,電連接于該總線,用來主動(dòng)輸出步驟e的執(zhí)行結(jié)果給該總線主控器。
5.如權(quán)利要求3所述的系統(tǒng)總線控制方法,其特征在于前述每一對應(yīng)指令的執(zhí)行結(jié)果再隊(duì)列存儲(chǔ)于該主隊(duì)列的特定地址中。
6.如權(quán)利要求5所述的系統(tǒng)總線控制方法,其特征在于該系統(tǒng)總線控制裝置還包含一輪詢模塊,定期輪詢該主隊(duì)列中有無對應(yīng)指令的執(zhí)行結(jié)果,以通知該總線主控器提取執(zhí)行結(jié)果。
7.如權(quán)利要求5所述的系統(tǒng)總線控制方法,其特征在于該系統(tǒng)總線控制裝置還包含一中斷控制器,與該隊(duì)列管理單元電性連接,當(dāng)該隊(duì)列管理單元存儲(chǔ)一對應(yīng)指令的執(zhí)行結(jié)果在該主隊(duì)列時(shí)觸發(fā)該中斷控制器,以使該總線主控器提取總線受控接口所輸出的執(zhí)行結(jié)果。
8.如權(quán)利要求1所述的系統(tǒng)總線控制方法,其特征在于步驟f還包括定期輪詢有無產(chǎn)生一對應(yīng)指令的執(zhí)行結(jié)果,以通知該總線主控器提取執(zhí)行結(jié)果。
9.如權(quán)利要求1所述的系統(tǒng)總線控制方法,其特征在于步驟f還包括在產(chǎn)生每一對應(yīng)指令的執(zhí)行結(jié)果后,觸發(fā)一中斷控制信號(hào)至該總線主控器,使總線主控器提取執(zhí)行結(jié)果。
10.一種系統(tǒng)總線控制裝置,適用于一計(jì)算機(jī)系統(tǒng)中,該計(jì)算機(jī)系統(tǒng)具有一總線及一電連接于該總線的總線主控器,該系統(tǒng)總線控制裝置包含一總線受控接口,電連接于該總線,用來接收該總線主控器由總線所傳來的指令;一主隊(duì)列,用來存儲(chǔ)該總線受控接口所接收的指令;一輸入隊(duì)列執(zhí)行器,用來執(zhí)行存儲(chǔ)于主隊(duì)列內(nèi)的指令,以產(chǎn)生一對應(yīng)的執(zhí)行結(jié)果;一總線主控接口,電連接于該總線,用來輸出輸入隊(duì)列執(zhí)行器所產(chǎn)生的執(zhí)行結(jié)果;以及一隊(duì)列管理單元,電連接于該總線主控接口、總線受控接口、輸入隊(duì)列執(zhí)行器及主隊(duì)列,用來管理該主隊(duì)列中每一指令的隊(duì)列,并根據(jù)收到的指令,對應(yīng)發(fā)出一確認(rèn)信號(hào)給總線主控器。
11.如權(quán)利要求10所述的系統(tǒng)總線控制裝置,其特征在于該主隊(duì)列位于一動(dòng)態(tài)隨機(jī)存取內(nèi)存中。
12.一種系統(tǒng)總線控制裝置,適用于一計(jì)算機(jī)系統(tǒng)中,該計(jì)算機(jī)系統(tǒng)具有一總線及一電連接于總線的總線主控器,該系統(tǒng)總線控制裝置包含一總線受控接口,電連接于該總線,用來接收總線主控器由總線所傳來的指令;一主隊(duì)列,用來存儲(chǔ)該總線受控接口所接收的指令;一輸入隊(duì)列執(zhí)行器,用來執(zhí)行存儲(chǔ)于該主隊(duì)列內(nèi)的指令,以對應(yīng)產(chǎn)生一執(zhí)行結(jié)果;一隊(duì)列管理單元,電性連接于該總線主控接口、總線受控接口、輸入隊(duì)列執(zhí)行器及該主隊(duì)列,用來管理該主隊(duì)列中每一指令的隊(duì)列,并根據(jù)收到的指令,對應(yīng)發(fā)出一確認(rèn)信號(hào)給總線主控器,使其恢復(fù)成一準(zhǔn)備模式;以及一裝置,經(jīng)隊(duì)列管理單元獲知該輸入隊(duì)列執(zhí)行器已產(chǎn)生前述執(zhí)行結(jié)果時(shí),發(fā)出一信號(hào)通知總線主控器開始提取前述執(zhí)行結(jié)果。
13.如權(quán)利要求12所述的系統(tǒng)總線控制裝置,其特征在于該主隊(duì)列位于一動(dòng)態(tài)隨機(jī)存取內(nèi)存中。
14.如權(quán)利要求12所述的系統(tǒng)總線控制裝置,其特征在于該通知總線主控器提取執(zhí)行結(jié)果的裝置為一輪詢模塊,是由隊(duì)列管理單元輪詢有無對應(yīng)的執(zhí)行結(jié)果產(chǎn)生。
15.如權(quán)利要求12所述的系統(tǒng)總線控制裝置,其特征在于該通知總線主控器提取執(zhí)行結(jié)果的裝置為一中斷控制器,由隊(duì)列管理單元在一執(zhí)行結(jié)果產(chǎn)生之后觸發(fā)該中斷控制器以使總線主控器提取執(zhí)行結(jié)果。
全文摘要
本發(fā)明提供一種適用于一計(jì)算機(jī)系統(tǒng)中的系統(tǒng)總線控制裝置及相關(guān)方法,該計(jì)算機(jī)系統(tǒng)至少具有一總線及一電連接于該總線的總線主控器。根據(jù)本發(fā)明第一實(shí)施例該系統(tǒng)總線控制裝置包含一總線受控接口、一主隊(duì)列、一總線主控接口、一輸入隊(duì)列執(zhí)行器及一隊(duì)列管理單元,因此可先隊(duì)列存儲(chǔ)總線主控器由總線所傳來的指令并隨即發(fā)出一確認(rèn)信號(hào)以釋放該總線信道后,才按順序執(zhí)行隊(duì)列存儲(chǔ)指令,輸出產(chǎn)生的一對應(yīng)執(zhí)行結(jié)果,再以主動(dòng)/從動(dòng)方式供該總線主控器取得。
文檔編號(hào)G06F13/42GK1553357SQ0313834
公開日2004年12月8日 申請日期2003年5月27日 優(yōu)先權(quán)日2003年5月27日
發(fā)明者蔡志銘 申請人:威達(dá)電股份有限公司