專利名稱:一種程序緩時(shí)執(zhí)行的方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是一種程序緩時(shí)執(zhí)行的方法及其裝置。
背景技術(shù):
中斷處理功能是計(jì)算機(jī)非常重要的功能之一,因?yàn)榻柚袛嗵幚砉δ埽?jì)算機(jī)可實(shí)現(xiàn)多道程序功能、可實(shí)現(xiàn)實(shí)時(shí)控制功能等等。
傳統(tǒng)的中斷處理方法,由于受到馮.諾依曼體系結(jié)構(gòu)的在一臺CPU中在同一時(shí)刻只能執(zhí)行單道程序特性的局限,不僅需要多次的程序切換與轉(zhuǎn)移,而且需要多次的訪存操作,如取中斷處理程序的指令,以及保存與恢復(fù)現(xiàn)場等,因而需要花費(fèi)大量的系統(tǒng)時(shí)間和系統(tǒng)資源。在中斷頻繁的現(xiàn)代計(jì)算機(jī)應(yīng)用中,整個(gè)系統(tǒng)的效率無疑被顯著地降低了。在馮.諾依曼體系結(jié)構(gòu)的計(jì)算機(jī)中,由于其在同一臺CPU中在同一時(shí)刻只能執(zhí)行單道程序的特性,這種系統(tǒng)開銷是不可回避的。
然而,在L結(jié)構(gòu)CPU中,由于其可在同一時(shí)刻能夠執(zhí)行多道程序的特性,故而對中斷的需求相對而言減少了許多。因此需要一種開銷較小、效率高的中斷處理機(jī)制來替換傳統(tǒng)的中斷處理機(jī)制。
發(fā)明內(nèi)容
一種新型的計(jì)算機(jī)體系結(jié)構(gòu)已被發(fā)明,該種新型的計(jì)算機(jī)體系結(jié)構(gòu)的主要特點(diǎn)是在同一臺中央處理器(CPU)中在同一時(shí)刻能夠并行與并發(fā)地執(zhí)行多道程序。以下稱在同一臺CPU中在同一時(shí)刻能夠執(zhí)行多道程序的體系結(jié)構(gòu)為L計(jì)算機(jī)體系結(jié)構(gòu),采用L計(jì)算機(jī)體系結(jié)構(gòu)的CPU稱為L結(jié)構(gòu)CPU。然而,在相關(guān)的專利文件中未涉及有關(guān)中斷的處理。
有鑒于此,本發(fā)明提出一種程序緩時(shí)執(zhí)行的方法,簡稱程序緩執(zhí)方法,及使用這種方法的裝置,簡稱程序緩執(zhí)裝置。其目的主要是為L結(jié)構(gòu)CPU提供一種開銷小、效率高的方法及裝置用于實(shí)現(xiàn)傳統(tǒng)的中斷功能。在中斷的處理過程中,這種方法不僅能夠消除程序的多次切換與轉(zhuǎn)移,而且可以避免大量的訪存操作,從而可大大的提高計(jì)算機(jī)的總體效率。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于用程序的“緩時(shí)執(zhí)行”處理代替程序的“中斷”處理。
當(dāng)某道程序需要被中斷時(shí),它不是象傳統(tǒng)的中斷處理方法那樣實(shí)際上將其暫時(shí)中止執(zhí)行或中斷執(zhí)行,而是將其放置到一個(gè)緩時(shí)執(zhí)行的狀態(tài)中,即把它放到一個(gè)隊(duì)列中,稱為緩執(zhí)隊(duì)列,暫時(shí)不參與程序的正常執(zhí)行,以便讓其它程序執(zhí)行。被緩執(zhí)的程序在緩執(zhí)隊(duì)列中依據(jù)某種規(guī)則由緩執(zhí)隊(duì)列的入口逐級蠕動到隊(duì)列的出口,完成類似于傳統(tǒng)中斷處理中的中斷等待。處于緩執(zhí)隊(duì)列出口處的程序可相機(jī)自行返回到正常的程序執(zhí)行狀態(tài)中去。
根據(jù)在同一時(shí)刻在單臺CPU上能夠并行地執(zhí)行多道程序的計(jì)算機(jī)的特性,如用本發(fā)明提出的這種程序緩執(zhí)的方法與裝置代替?zhèn)鹘y(tǒng)的中斷處理,不僅可以免去程序的多次切換與轉(zhuǎn)移,而且可以避免大量的訪存操作,進(jìn)而可顯著的提高計(jì)算機(jī)的總體效率。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于1.有一個(gè)或多個(gè)用于緩存程序驅(qū)動器的隊(duì)列,稱為緩執(zhí)隊(duì)列;2.緩執(zhí)隊(duì)列設(shè)有N棧,即緩執(zhí)隊(duì)列的長度為N;第0棧是緩執(zhí)隊(duì)列的尾部,也是程序緩執(zhí)裝置的輸入緩存寄存器;第N-1棧是緩執(zhí)隊(duì)列的首部,也是程序緩執(zhí)裝置的輸出緩存寄存器;也稱N為程序緩時(shí)執(zhí)行裝置的緩執(zhí)深度;3.緩執(zhí)隊(duì)列的每一棧都有一個(gè)忙閑標(biāo)志;當(dāng)緩執(zhí)隊(duì)列的某一棧保存有某個(gè)程序驅(qū)動器時(shí),該棧對應(yīng)的忙閑標(biāo)志將被置為忙標(biāo)志;否則為閑標(biāo)志;4.每n拍,標(biāo)志為忙標(biāo)志的棧都檢測它下一棧的忙閑標(biāo)志是否為閑標(biāo)志;若是,則將保存在本棧的程序驅(qū)動器打入下一棧,將下棧的忙閑標(biāo)志置為忙標(biāo)志、將本棧的忙閑標(biāo)志置為閑標(biāo)志;其中n大于等于1;也稱n為程序緩時(shí)執(zhí)行裝置的棧周期;程序緩時(shí)執(zhí)行裝置的緩執(zhí)周期等于緩執(zhí)深度乘以棧周期,即N*n;5.有一個(gè)或多個(gè)棧周期計(jì)數(shù)器,初值為0,每拍遞增i,其中i≥1。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于1.程序緩時(shí)執(zhí)行裝置的輸入緩存寄存器,即程序緩執(zhí)隊(duì)列的隊(duì)列尾部,與L結(jié)構(gòu)CPU中的程序控制裝置的程序驅(qū)動器發(fā)送輸出部分相連;
2.程序緩時(shí)執(zhí)行裝置的輸出緩存寄存器,即程序緩執(zhí)隊(duì)列的隊(duì)列首部,與L結(jié)構(gòu)CPU中的取指令裝置的程序驅(qū)動器輸入接收部分相連。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于1.當(dāng)某道程序由于某種原因需要被中斷時(shí),L結(jié)構(gòu)CPU的程序控制裝置首先檢測程序緩執(zhí)裝置的接收緩存是否空閑,即緩執(zhí)隊(duì)列的第0棧的忙閑標(biāo)志是否為閑;若為閑,則將該道程序的程序驅(qū)動器發(fā)送到程序緩執(zhí)裝置的接收緩存寄存器,并置該棧的忙閑標(biāo)志為忙標(biāo)志;2.當(dāng)某道程序驅(qū)動器結(jié)束中斷等待需要離開程序緩執(zhí)裝置的輸出緩存寄存器時(shí),即緩執(zhí)隊(duì)列的第N-1棧的忙閑標(biāo)志為忙標(biāo)志時(shí),程序緩執(zhí)裝置首先檢測L結(jié)構(gòu)CPU的取指令裝置的接收緩存是否空閑;若為空閑,則該程序緩執(zhí)裝置將其輸出緩存寄存器中保存的程序驅(qū)動器發(fā)送到L結(jié)構(gòu)CPU的取指令裝置的接收緩存寄存器,置第N-1棧的忙閑標(biāo)志為閑標(biāo)志。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于根據(jù)需要,可設(shè)置多個(gè)可并行工作的程序緩執(zhí)裝置,也可在一個(gè)程序緩執(zhí)裝置中設(shè)置多個(gè)緩執(zhí)隊(duì)列,每個(gè)緩執(zhí)隊(duì)列又可有不同的緩執(zhí)深度N和棧周期n。
如上所述的一種程序緩執(zhí)方法及使用這種方法的程序緩執(zhí)裝置,其特征在于棧周期n的值可根據(jù)需要動態(tài)地調(diào)整;較大值的棧周期n意味著較長的緩時(shí)滯后時(shí)間、更長的等待時(shí)間,反之意味著較短的緩時(shí)滯后時(shí)間、更快的出對速率;某些事件的發(fā)生、或某些條件、狀態(tài)的改變可能導(dǎo)致某些處于緩時(shí)狀態(tài)的程序驅(qū)動器需要盡快結(jié)束緩時(shí)狀態(tài),此時(shí)可以以某種方式通知程序緩執(zhí)裝置調(diào)低相應(yīng)的緩執(zhí)隊(duì)列的棧周期n的值,以加快在該緩執(zhí)隊(duì)列中處于等待狀態(tài)的程序驅(qū)動器的出對速率;由于在該緩執(zhí)隊(duì)列中至多有N個(gè)程序驅(qū)動器,故提速N拍后,程序緩執(zhí)裝置可自動將棧周期n調(diào)回到正常值。
本發(fā)明提出的用于代替?zhèn)鹘y(tǒng)的中斷處理方法的核心思想是當(dāng)某道程序需要被中斷時(shí),它不是象傳統(tǒng)的中斷處理方法那樣實(shí)際上將其中止執(zhí)行,而是將其置放到一個(gè)緩行的狀態(tài)中,即把它放到緩行隊(duì)列中每n拍挪一棧,因而至少在n*N拍內(nèi)不參與程序的正常執(zhí)行,以便讓其它更需要執(zhí)行的程序執(zhí)行。
這里的“以便”是指一、如果更需要執(zhí)行的程序未執(zhí)行,則它有機(jī)會被執(zhí)行了;二、如果更需要執(zhí)行的程序在執(zhí)行中,則它獲取執(zhí)行所需資源的機(jī)會將大于被緩行的程序。
被緩執(zhí)的程序在緩執(zhí)隊(duì)列中依據(jù)某種規(guī)則由緩執(zhí)隊(duì)列的入口逐級蠕動到隊(duì)列的出口,完成類似于傳統(tǒng)中斷處理中的中斷等待。
當(dāng)中斷發(fā)生時(shí),只需要將相應(yīng)程序的程序驅(qū)動器發(fā)送到程序緩執(zhí)裝置,中斷的處理既告結(jié)束。由于被緩執(zhí)的程序沒有被真正的中止執(zhí)行,而是在緩執(zhí),因而沒有換道到系統(tǒng)管理程序、以及保存現(xiàn)場等操作所需要的開銷。
又由于當(dāng)中斷等待結(jié)束時(shí),即被緩執(zhí)的程序結(jié)束緩執(zhí)時(shí),它將自行檢測是否可以返回到正常的執(zhí)行狀態(tài)。如果可以就返回,否則就等在緩執(zhí)隊(duì)列中。因而也沒有系統(tǒng)管理程序挑選下一道程序、并恢復(fù)其現(xiàn)場、最后再換道等操作所需要的開銷。
本文所述僅為本發(fā)明技術(shù)構(gòu)思下的一些基本說明。基于本技術(shù)構(gòu)思,可有多種實(shí)施方法,如程序緩時(shí)執(zhí)行隊(duì)列可采用FIFO等,故而依據(jù)本發(fā)明的技術(shù)構(gòu)想所做的任何等效變換,均應(yīng)屬于本發(fā)明的保護(hù)范圍。本發(fā)明的應(yīng)用也不僅僅局限于本文所涉及的領(lǐng)域中。
圖1是本發(fā)明的程序緩時(shí)執(zhí)行裝置的硬件結(jié)構(gòu)圖。
圖2是本發(fā)明的程序緩時(shí)執(zhí)行方法的工作流程圖。
圖3是L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動流程圖。
圖4是增設(shè)本發(fā)明的程序緩時(shí)執(zhí)行裝置后的L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動流程圖。
具體實(shí)施例方式
圖1是本發(fā)明的程序緩時(shí)執(zhí)行裝置的硬件結(jié)構(gòu)圖。描述了程序緩時(shí)執(zhí)行裝置的硬件組成、及其相應(yīng)的主要功能。程序緩時(shí)執(zhí)行裝置的各組成部件之間的連接關(guān)系如圖所示。程序緩時(shí)執(zhí)行裝置的主要的組成部件是用于存放程序驅(qū)動器的程序緩時(shí)執(zhí)行隊(duì)列,共由N棧組成,每棧的位數(shù)與程序驅(qū)動器的位數(shù)相同。每棧都配備有一個(gè)忙/閑標(biāo)志位,標(biāo)明該棧當(dāng)前的忙/閑狀態(tài),即當(dāng)前該棧中是否存放有某個(gè)程序驅(qū)動器。棧移計(jì)數(shù)器每拍遞增,當(dāng)達(dá)到某個(gè)指定值時(shí)歸零,給出移棧許可信號。程序緩時(shí)執(zhí)行裝置的管理控制部件主要用于管理控制完成本裝置的各項(xiàng)操作,如判別程序緩時(shí)執(zhí)行裝置的輸入緩存是否非空、根據(jù)移棧許可信號以及各棧的忙/閑標(biāo)志位控制程序驅(qū)動器在程序緩時(shí)執(zhí)行隊(duì)列各棧間的移動等。
圖2是本發(fā)明的程序緩時(shí)執(zhí)行方法的工作流程步驟1棧深度計(jì)數(shù)器加一;若棧深度計(jì)數(shù)器的當(dāng)前值小于棧深度n,則繼續(xù)本步驟;否則轉(zhuǎn)步驟2;步驟2棧深度計(jì)數(shù)器置0;步驟3程序緩時(shí)執(zhí)行隊(duì)列各棧同時(shí)檢測本棧是否為滿;凡檢測到本棧為空的棧無操作;凡檢測到本棧為滿的棧轉(zhuǎn)步驟4;步驟4程序緩時(shí)執(zhí)行隊(duì)列滿足上述條件的各棧同時(shí)檢測下棧是否為空;凡檢測到下棧為滿的棧無操作;凡檢測到下棧為空的棧轉(zhuǎn)步驟5;步驟5程序緩時(shí)執(zhí)行隊(duì)列滿足上述條件的各棧同時(shí)將保存在本棧的程序驅(qū)動器打入到下棧,置下棧標(biāo)志為滿,置本棧標(biāo)志為空,轉(zhuǎn)步驟1。
圖3是L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動流程示意圖。當(dāng)沒有使用程序緩時(shí)執(zhí)行方法極其使用這種方法的裝置時(shí),在L結(jié)構(gòu)CPU中,程序驅(qū)動器驅(qū)動程序執(zhí)行的主要驅(qū)動流程,在L結(jié)構(gòu)CPU中,多個(gè)程序驅(qū)動器可在同一時(shí)刻同時(shí)驅(qū)動多道程序并行的執(zhí)行。一個(gè)程序驅(qū)動器驅(qū)動一道程序的驅(qū)動流開始于程序控制裝置,經(jīng)取指令裝置、指令譯碼裝置、到指令執(zhí)行裝置,最后返回到程序控制裝置,周而復(fù)始。其具體流程如下步驟1程序控制裝置按規(guī)定用程序驅(qū)動器中的ΔPC更新程序驅(qū)動器中的PC生成下一條指令的地址并完成其它一些相關(guān)的設(shè)置;如果檢測到該道程序無需中斷,則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的取指令裝置,即轉(zhuǎn)步驟2;步驟2取指令裝置按程序驅(qū)動器中的PC地址到程序存儲器中取到相應(yīng)的指令并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;之后,將攜帶有當(dāng)前指令的程序驅(qū)動器發(fā)送給指令譯碼裝置,即轉(zhuǎn)步驟3;步驟3;指令譯碼裝置對當(dāng)前程序驅(qū)動器攜帶的指令進(jìn)行譯碼并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;隨后將攜帶有已譯碼的當(dāng)前指令的程序驅(qū)動器發(fā)送給指令執(zhí)行裝置,即轉(zhuǎn)步驟4;步驟4;指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;最后將該程序驅(qū)動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉(zhuǎn)步驟1。
在L結(jié)構(gòu)CPU中,中斷處理是按照傳統(tǒng)的方法,在提供一些硬件支持的條件下,主要由一些專用的系統(tǒng)程序來完成。當(dāng)某道程序因某種原因需要中斷時(shí),程序控制裝置將保存需中斷的程序驅(qū)動器的相關(guān)現(xiàn)場,并啟動一道專用的系統(tǒng)程序?qū)⒈恢袛嗟某绦蝌?qū)動器的相關(guān)現(xiàn)場信息保存到某存儲器中,并根據(jù)程序調(diào)度規(guī)則選取另一道程序,恢復(fù)其程序驅(qū)動器的相關(guān)現(xiàn)場,交由程序控制裝置啟動執(zhí)行。
圖4是增設(shè)本發(fā)明的程序緩時(shí)執(zhí)行裝置后的L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動流程示意圖。是在使用了程序緩時(shí)執(zhí)行方法極其使用這種方法的裝置后,在L結(jié)構(gòu)CPU中,程序驅(qū)動器驅(qū)動程序執(zhí)行的新的驅(qū)動流程。
在無中斷發(fā)生時(shí),程序驅(qū)動器驅(qū)動一道程序的驅(qū)動流程與圖3所示的流程相同。不同的是當(dāng)某道程序因某種原因需要中斷時(shí),相應(yīng)的中斷處理是通過程序緩時(shí)執(zhí)行裝置完成的。其具體步驟如下步驟1程序控制裝置按規(guī)定用程序驅(qū)動器中的ΔPC更新程序驅(qū)動器中的PC生成下一條指令的地址并完成其它一些相關(guān)的設(shè)置;如果檢測到該道程序無需中斷,則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的取指令裝置,即轉(zhuǎn)步驟2;如果檢測到該道程序需要進(jìn)行中斷處理時(shí),則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的程序緩時(shí)執(zhí)行裝置,即轉(zhuǎn)步驟5;步驟2取指令裝置按程序驅(qū)動器中的PC地址到程序存儲器中取到相應(yīng)的指令并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;之后,將攜帶有當(dāng)前指令的程序驅(qū)動器發(fā)送給指令譯碼裝置,即轉(zhuǎn)步驟3;步驟3指令譯碼裝置對當(dāng)前程序驅(qū)動器攜帶的指令進(jìn)行譯碼并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;隨后將攜帶有已譯碼的當(dāng)前指令的程序驅(qū)動器發(fā)送給指令執(zhí)行裝置,即轉(zhuǎn)步驟4;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;最后將該程序驅(qū)動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉(zhuǎn)步驟1;步驟5程序緩時(shí)執(zhí)行裝置接收到需要進(jìn)行中斷處理的程序驅(qū)動器后,將其打入程序緩執(zhí)隊(duì)列的第0棧;此后,該道程序的程序驅(qū)動器就被動態(tài)地鎖在程序緩時(shí)執(zhí)行裝置中進(jìn)行動態(tài)等待;每隔n拍,如果下棧空閑,就下挪一棧;直到被中斷的程序驅(qū)動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊(duì)列的對首,即程序緩執(zhí)隊(duì)列的第N-1棧;此時(shí),被中斷的程序驅(qū)動器已經(jīng)經(jīng)過了一段時(shí)間的中斷等待、可以返回到正常的程序驅(qū)動流程中了;此時(shí),程序緩執(zhí)裝置以某種方式將存放在程序緩執(zhí)隊(duì)列第N-1棧的被中斷的程序驅(qū)動器發(fā)送給取指令裝置使該道程序轉(zhuǎn)入正常的執(zhí)行流程,即轉(zhuǎn)步驟2。
權(quán)利要求
1.一種程序緩時(shí)執(zhí)行的方法,其特征在于,用程序的“緩時(shí)執(zhí)行”處理代替程序的“中斷”處理;其步驟如下當(dāng)某道程序需要被中斷時(shí),就將其放置到一個(gè)緩時(shí)執(zhí)行的隊(duì)列中,暫時(shí)不參與程序的正常執(zhí)行,以便讓其它更需要執(zhí)行的程序執(zhí)行;被緩執(zhí)的程序在緩執(zhí)隊(duì)列中依據(jù)某種規(guī)則由緩執(zhí)隊(duì)列的入口逐級蠕動到隊(duì)列的出口,完成類似于傳統(tǒng)中斷處理中的中斷等待;處于緩執(zhí)隊(duì)列出口處的程序可相機(jī)自行返回到正常的執(zhí)行狀態(tài)中去。
2.根據(jù)權(quán)利要求1所述的程序緩時(shí)執(zhí)行的方法,其特征在于,還包括L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動的方法步驟和增設(shè)程序緩時(shí)執(zhí)行裝置后的L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動的方法步驟。
3.一種程序緩時(shí)執(zhí)行的裝置,其特征在于●有一個(gè)或多個(gè)用于存放程序執(zhí)行的相關(guān)信息、稱為程序驅(qū)動器,其隊(duì)列,稱為程序緩時(shí)執(zhí)行隊(duì)列,簡稱為緩執(zhí)隊(duì)列;●緩執(zhí)隊(duì)列設(shè)有N棧,即緩執(zhí)隊(duì)列的長度為N;第0棧是緩執(zhí)隊(duì)列的尾部,也是程序緩執(zhí)裝置的輸入緩存寄存器;第N-1棧是緩執(zhí)隊(duì)列的首部,也是程序緩執(zhí)裝置的輸出緩存寄存器;也稱N為程序緩時(shí)執(zhí)行裝置的緩執(zhí)深度;●緩執(zhí)隊(duì)列的每一棧都有一個(gè)忙閑標(biāo)志;當(dāng)緩執(zhí)隊(duì)列的某一棧保存有某個(gè)程序驅(qū)動器時(shí),該棧對應(yīng)的忙閑標(biāo)志將被置為忙標(biāo)志;否則為閑標(biāo)志;●每n拍,標(biāo)志為忙標(biāo)志的棧都檢測它下一棧的忙閑標(biāo)志是否為閑標(biāo)志;若是,則將保存在本棧的程序驅(qū)動器打入下一棧,將下棧的忙閑標(biāo)志置為忙標(biāo)志、將本棧的忙閑標(biāo)志置為閑標(biāo)志;其中n大于等于1;也稱n為程序緩時(shí)執(zhí)行裝置的棧周期;程序緩時(shí)執(zhí)行裝置的緩執(zhí)周期等于緩執(zhí)深度乘以棧周期,即N*n;●有一個(gè)或多個(gè)棧周期計(jì)數(shù)器,初值為0,每拍遞增i,其中i≥1。
4.根據(jù)權(quán)利要求3所述的程序緩時(shí)執(zhí)行裝置,其特征在于1.程序緩時(shí)執(zhí)行裝置的輸入緩存寄存器與L結(jié)構(gòu)CPU中的程序控制裝置的程序驅(qū)動器發(fā)送輸出部分相連;2.程序緩時(shí)執(zhí)行裝置的輸出緩存寄存器與L結(jié)構(gòu)CPU中的取指令裝置的程序驅(qū)動器輸入接收部分相連。
5.據(jù)權(quán)利要求1或2所述的程序緩時(shí)執(zhí)行方法,其特征在于1.當(dāng)某道程序由于某種原因需要被中斷時(shí),L結(jié)構(gòu)CPU的程序控制裝置首先檢測程序緩執(zhí)裝置的接收緩存是否空閑,即緩執(zhí)隊(duì)列的第0棧的忙閑標(biāo)志是否為閑;若為閑,則將該道程序的程序驅(qū)動器發(fā)送到程序緩執(zhí)裝置的接收緩存寄存器,并置該棧的忙閑標(biāo)志為忙標(biāo)志;2.當(dāng)某道程序驅(qū)動器結(jié)束中斷等待需要離開程序緩執(zhí)裝置的輸出緩存寄存器時(shí),即緩執(zhí)隊(duì)列的第N-1棧的忙閑標(biāo)志為忙標(biāo)志時(shí),程序緩執(zhí)裝置首先檢測L結(jié)構(gòu)CPU的取指令裝置的接收緩存是否空閑;若為空閑,則該程序緩執(zhí)裝置將其輸出緩存寄存器中保存的程序驅(qū)動器發(fā)送到L結(jié)構(gòu)CPU的取指令裝置的接收緩存寄存器,置第N-1棧的忙閑標(biāo)志為閑標(biāo)志。
6.根據(jù)權(quán)利要求1或2或5所述的程序緩時(shí)執(zhí)行方法,其特征在于根據(jù)需要,可設(shè)置多個(gè)可并行工作的程序緩執(zhí)裝置,也可在一個(gè)程序緩執(zhí)裝置中設(shè)置多個(gè)緩執(zhí)隊(duì)列,每個(gè)緩執(zhí)隊(duì)列又可有不同的緩執(zhí)深度N和棧周期n。
7.根據(jù)權(quán)利要求1或2或5或6所述的程序緩時(shí)執(zhí)行方法,其特征在于棧周期n的值可根據(jù)需要動態(tài)地調(diào)整;較大值的棧周期n意味著較長的緩時(shí)滯后時(shí)間、更長的等待時(shí)間,反之意味著較短的緩時(shí)滯后時(shí)間、更快的出對速率;某些事件的發(fā)生、或某些條件、狀態(tài)的改變可能導(dǎo)致某些處于緩時(shí)狀態(tài)的程序驅(qū)動器需要盡快結(jié)束緩時(shí)等待狀態(tài),此時(shí)可以以某種方式通知程序緩執(zhí)裝置調(diào)低相應(yīng)的緩執(zhí)隊(duì)列的棧周期n的值,以加快在該緩執(zhí)隊(duì)列中處于等待狀態(tài)的程序驅(qū)動器的出對速率;由于在該緩執(zhí)隊(duì)列中至多有N個(gè)程序驅(qū)動器,故提速N拍后,程序緩執(zhí)裝置可自動將棧周期n調(diào)回到正常值。
8.根據(jù)權(quán)利要求1所述的程序緩時(shí)執(zhí)行方法,其特征在于其步驟如下●步驟1棧深度計(jì)數(shù)器加一;若棧深度計(jì)數(shù)器的當(dāng)前值小于棧深度n,則繼續(xù)本步驟;否則轉(zhuǎn)步驟2;●步驟2棧深度計(jì)數(shù)器置0;●步驟3程序緩時(shí)執(zhí)行隊(duì)列各棧同時(shí)檢測本棧是否為滿;凡檢測到本棧為空的棧無操作;凡檢測到本棧為滿的棧轉(zhuǎn)步驟4;●步驟4程序緩時(shí)執(zhí)行隊(duì)列滿足上述條件的各棧同時(shí)檢測下棧是否為空;凡檢測到下棧為滿的棧無操作;凡檢測到下棧為空的棧轉(zhuǎn)步驟5;●步驟5程序緩時(shí)執(zhí)行隊(duì)列滿足上述兩項(xiàng)條件的各棧同時(shí)將保存在本棧的程序驅(qū)動器打入到下棧,置下棧標(biāo)志為滿,置本棧標(biāo)志為空,轉(zhuǎn)步驟1。
9.根據(jù)權(quán)利要求1或2或5或6或7所述的程序緩時(shí)執(zhí)行方法,其特征在于,L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動方法,其步驟如下步驟1程序控制裝置按規(guī)定用程序驅(qū)動器中的ΔPC更新程序驅(qū)動器中的PC生成下一條指令的地址并完成其它一些相關(guān)的設(shè)置;如果檢測到該道程序無需中斷,則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的取指令裝置,即轉(zhuǎn)步驟2;步驟2取指令裝置按程序驅(qū)動器中的PC地址到程序存儲器中取到相應(yīng)的指令并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;之后,將攜帶有當(dāng)前指令的程序驅(qū)動器發(fā)送給指令譯碼裝置,即轉(zhuǎn)步驟3;步驟3;指令譯碼裝置對當(dāng)前程序驅(qū)動器攜帶的指令進(jìn)行譯碼并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;隨后將攜帶有已譯碼的當(dāng)前指令的程序驅(qū)動器發(fā)送給指令執(zhí)行裝置,即轉(zhuǎn)步驟4;步驟4;指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;最后將該程序驅(qū)動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉(zhuǎn)步驟1。
10.據(jù)權(quán)利要求1或2或5或6或7所述的程序緩時(shí)執(zhí)行方法,其特征在于,增設(shè)程序緩時(shí)執(zhí)行裝置后的L結(jié)構(gòu)CPU的程序驅(qū)動器驅(qū)動方法,其步驟如下步驟1程序控制裝置按規(guī)定用程序驅(qū)動器中的ΔPC更新程序驅(qū)動器中的PC生成下一條指令的地址并完成其它一些相關(guān)的設(shè)置;如果檢測到該道程序無需中斷,則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的取指令裝置,即轉(zhuǎn)步驟2;如檢測到該道程序需要進(jìn)行中斷處理時(shí),則將該已更新的程序驅(qū)動器以某種方式發(fā)送給L結(jié)構(gòu)CPU的程序緩時(shí)執(zhí)行裝置,即轉(zhuǎn)步驟5;步驟2取指令裝置按程序驅(qū)動器中的PC地址到程序存儲器中取到相應(yīng)的指令并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;之后,將攜帶有當(dāng)前指令的程序驅(qū)動器發(fā)送給指令譯碼裝置,即轉(zhuǎn)步驟3;步驟3指令譯碼裝置對當(dāng)前程序驅(qū)動器攜帶的指令進(jìn)行譯碼并將其保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;隨后將攜帶有已譯碼的當(dāng)前指令的程序驅(qū)動器發(fā)送給指令執(zhí)行裝置,即轉(zhuǎn)步驟4;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC執(zhí)行狀態(tài),并將它們保存到當(dāng)前程序驅(qū)動器的相應(yīng)單元中;最后將該程序驅(qū)動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉(zhuǎn)步驟1;步驟5程序緩時(shí)執(zhí)行裝置接收到需要進(jìn)行中斷處理的程序驅(qū)動器后,將其打入程序緩執(zhí)隊(duì)列的第0棧;此后,該道程序的程序驅(qū)動器就被動態(tài)地鎖在程序緩時(shí)執(zhí)行裝置中進(jìn)行動態(tài)等待;每隔n拍,如果下棧空閑,就下挪一棧;直到被中斷的程序驅(qū)動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊(duì)列的對首,即程序緩執(zhí)隊(duì)列的第N-1棧;此時(shí),被中斷的程序驅(qū)動器已經(jīng)經(jīng)過了一段時(shí)間的中斷等待、可以返回到正常的程序驅(qū)動流程中了;此時(shí),程序緩執(zhí)裝置以某種方式將存放在程序緩執(zhí)隊(duì)列第N-1棧的被中斷的程序驅(qū)動器發(fā)送給取指令裝置使該道程序轉(zhuǎn)入正常的執(zhí)行流程,即轉(zhuǎn)步驟2。
全文摘要
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是一種程序緩時(shí)執(zhí)行的方法。該方法,用程序的“緩時(shí)執(zhí)行”處理代替程序的“中斷”處理;當(dāng)某道程序需要被中斷時(shí),就將其放置到一個(gè)緩時(shí)執(zhí)行的隊(duì)列中,暫時(shí)不參與程序的正常執(zhí)行,以便讓其它更需要執(zhí)行的程序執(zhí)行;被緩執(zhí)的程序在緩執(zhí)隊(duì)列中依據(jù)某種規(guī)則由緩執(zhí)隊(duì)列的入口逐級蠕動到隊(duì)列的出口,完成類似于傳統(tǒng)中斷處理中的中斷等待;處于緩執(zhí)隊(duì)列出口處的程序可相機(jī)自行返回到正常的執(zhí)行狀態(tài)中去。裝置包括存放程序驅(qū)動器的程序緩時(shí)執(zhí)行隊(duì)列,管理控制部件,棧移計(jì)數(shù)器。
文檔編號G06F9/48GK1652083SQ200510058828
公開日2005年8月10日 申請日期2005年3月30日 優(yōu)先權(quán)日2005年3月30日
發(fā)明者李曉波 申請人:李曉波