專利名稱:一種同步處理方法及其裝置的制作方法
技術領域:
本發(fā)明涉及計算機同步技術領域,特別是一種同步處理方法及其裝置。
背景技術:
同步處理功能是計算機的一項非常重要的功能,因為借助同步功能才能實現(xiàn)多道程序協(xié)同的目的。在現(xiàn)代的大規(guī)模應用中,同步會成為性能的重要瓶頸之一,導致較大的延遲開銷。
當某道程序需要等待某個同步標志時,傳統(tǒng)的同步處理方法主要是通過中斷的方法進行處理。這種方法由于需要多次換道,以及保存與恢復現(xiàn)場,開銷大效率低。一種新型的、可替換中斷處理的方法,即程序緩時執(zhí)行方法與裝置,已被發(fā)明。在L結構CPU中將程序緩時執(zhí)行方法與裝置用于同步處理將顯著減少同步處理的開銷。
發(fā)明內(nèi)容
一種新型的計算機體系結構已被發(fā)明,該種新型的計算機體系結構的主要特點是在同一臺CPU中在同一時刻能夠并行與并發(fā)地執(zhí)行多道程序。以下稱在同一臺CPU中在同一時刻能夠執(zhí)行多道程序的體系結構的計算機為L結構計算機,采用L計算機結構的CPU稱為L結構CPU。然而,在相關的專利文件中未涉及有關程序間的同步處理。
有鑒于此,本發(fā)明根據(jù)L結構CPU的特點,采用程序緩時執(zhí)行的方法及使用這種方法的裝置,提出一種可用于L結構CPU的同步方法及使用這種方法的裝置。其目的在于提供一種同步處理方法及其裝置。
一種同步處理方法,該方法是在同一臺CPU中在同一時刻能夠并行地執(zhí)行多道程序的計算機體系結構的特點并采用程序緩時執(zhí)行技術,方法包括同步處理方法、L結構CPU的程序驅動器驅動方法、增設同步處理裝置后的L結構CPU的程序驅動方法。主要是為L結構CPU提供一種開銷小、效率高的方法及裝置以實現(xiàn)各類同步功能。
如上所述的一種同步方法及使用這種方法的同步處理裝置,其特征在于1.設置兩組同步指令●測試與等待同步標志指令,指令格式如下Test&Wait_Flag Flag_No,F(xiàn)lag_Value,Pro_Type該指令的操作是當Pro_Type=0時如果參數(shù)Flag_Value的當前值等于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài),即請求順序執(zhí)行本程序的下一條指令;否則置本程序的后續(xù)執(zhí)行狀態(tài)為請求等待執(zhí)行狀態(tài),即請求緩時等待;當Pro_Type>0時如果參數(shù)Flag_Value的當前值大于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài);否則置本程序的后續(xù)執(zhí)行狀態(tài)為等待執(zhí)行狀態(tài);
當Pro_Type<0時如果參數(shù)Flag_Value的當前值小于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài);否則置本程序的后續(xù)執(zhí)行狀態(tài)為等待執(zhí)行狀態(tài);●設置同步標志指令Test&Wait_FlagFlag_No,F(xiàn)lag_Value,Pro_Type該指令的操作是當Pro_Type=0時將編號為Flag_No的同步標志的值置為參數(shù)Flag_Value的當前值;當Pro_Type>0時將編號為Flag_No的同步標志的值置為該同步標志當前值與參數(shù)Flag_Value的當前值之和;當Pro_Type<0時將編號為Flag_No的同步標志的值置為該同步標志當前值與參數(shù)Flag_Value的當前值之差;設置完成后,置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài)。
2.同步處理裝置的硬件部分的主要構成至少有●N個同步標志,每個同步標志有n位,其中N≥1,n≥1;●同步處理裝置的輸入緩存寄存器,用于接收需進行同步處理的程序驅動器;同步處理裝置的輸出緩存寄存器,用于發(fā)送已完成同步處理的程序驅動器;●輸入/出緩存寄存器的忙/閑標志,一個標志輸入緩存寄存器的忙閑狀態(tài),另一個標志輸出緩存寄存器的忙閑狀態(tài);●操作/控制部件,用于管理控制整個同步處理裝置的操作,如接收程序驅動器的處理、執(zhí)行各同步指令規(guī)定的操作、維護同步標志、發(fā)送程序驅動器的處理等;●同步處理裝置的輸入緩存寄存器以某種方式與L結構CPU的指令譯碼裝置以及程序緩時執(zhí)行裝置相連,用于接收攜帶有同步指令的程序驅動器;同步處理裝置的輸出緩存寄存器以某種方式與L結構CPU的程序控制裝置以及程序緩時執(zhí)行裝置相連,用于輸出已完成同步處理或需要緩時等待的程序驅動器。
3.同步處理裝置的主要操作是●查詢在輸入緩存寄存器中是否有接收到的需進行同步處理的程序驅動器,即輸入緩存寄存器的忙閑標志是否為忙;若為閑,則反復查詢,直到該標志為忙;●當輸入緩存寄存器的忙閑標志為忙時,從輸入緩存寄存器中取出待處理的程序驅動器,并執(zhí)行驅動器中所攜帶的同步指令;如是設置同步標志指令,則按本文所定義的同步設置指令的操作設置相應的同步標志;如是測試與等待同步標志指令,則按本文所定義的測試與等待指令的操作測試相應的同步標志、并根據(jù)測試結果設置當前程序的后續(xù)執(zhí)行狀態(tài)順序執(zhí)行狀態(tài)或等待執(zhí)行狀態(tài);●根據(jù)已設置的當前程序的后續(xù)執(zhí)行狀態(tài),置當前程序驅動器的下續(xù)目的裝置當當前程序的后續(xù)執(zhí)行狀態(tài)是順序執(zhí)行狀態(tài)時,置當前程序驅動器的下續(xù)目的裝置為程序控制裝置,以執(zhí)行當前程序的下一條指令;當當前程序的后續(xù)執(zhí)行狀態(tài)是等待執(zhí)行狀態(tài)時,置當前程序驅動器的下續(xù)目的裝置為程序緩時執(zhí)行裝置,以使當前程序進入緩時執(zhí)行的等待狀態(tài);●將處理結束的程序驅動器寫入到輸出緩存寄存器,并置輸出緩存寄存器的忙閑標志為忙;●查詢輸出緩存寄存器的忙閑標志是否為閑;若為忙,則反復查詢,直到該標志為閑;●置輸入緩存寄存器的忙閑標志為閑,允許接收并處理下一個攜帶有同步指令的程序驅動器。
在程序緩時執(zhí)行裝置中“等待”的攜帶有測試與等待同步指令的程序驅動器在結束“等待”后,將被重新送回到同步處理裝置再次執(zhí)行測試與等待同步指令,并根據(jù)測試結果或是發(fā)送到程序控制裝置以執(zhí)行該程序的下一條指令、或是再次發(fā)送到程序緩時執(zhí)行裝置中“等待”下一次的測試。由此不難看出,采用程序緩時執(zhí)行技術可較顯著的降低系統(tǒng)開銷。
本文所述僅為本發(fā)明技術構思下的一些基本說明。而依據(jù)本發(fā)明的技術構想所做的任何等效變換,均應屬于本發(fā)明的保護范圍。
圖1是本發(fā)明的同步處理裝置硬件結構圖。
圖2是本發(fā)明的同步處理方法的工作流程圖。
圖3是L結構CPU的程序驅動器驅動流程圖。
圖4是增設本發(fā)明的同步處理裝置后的L結構CPU的程序驅動器驅動流程圖。
具體實施例方式
圖1是本發(fā)明的同步處理裝置硬件結構圖。同步處理裝置的硬件部分主要由同步標志組、同步處理管理控制部件、輸入/輸出緩存部件等組成。同步處理裝置的各組成部件之間的連接關系如圖所示。輸入與輸出緩存寄存器用于存放輸入或輸出的程序驅動器。同步標志組包含有N個同步標志,每個同步標志有n位。同步處理管理控制部件用于管理控制整個同步處理裝置的操作,如管理程序驅動器的接收、執(zhí)行各同步指令規(guī)定的操作、維護同步標志、控制程序驅動器的發(fā)送等;圖2是本發(fā)明的同步處理的工作流程圖。其主要工作流程如下步驟1循環(huán)檢測輸入緩存寄存器的忙閑標志,直到其為忙時轉步驟2;步驟2從輸入緩存寄存器中取出待處理的程序驅動器,并根據(jù)當前程序驅動器所攜帶的同步指令類型分別進行處理如果是設置同步標志指令,轉步驟3;如果是測試與等待同步標志指令,轉步驟4;步驟3對于設置同步標志指令,按該指令所定義的操作設置相應的同步標志,并將當前程序驅動器的執(zhí)行狀態(tài)設置為順序執(zhí)行;轉步驟5;步驟4對于測試與等待同步標志指令,按該指令所定義的操作測試相應的同步標志、并根據(jù)測試結果設定當前程序驅動器的執(zhí)行狀態(tài);如果被測試的同步標志滿足測試條件,則置當前程序驅動器的執(zhí)行狀態(tài)為順序執(zhí)行,否則置當前程序驅動器的執(zhí)行狀態(tài)為等待執(zhí)行;
步驟5根據(jù)當前程序驅動器的執(zhí)行狀態(tài),置當前程序驅動器的下續(xù)目的裝置若當前程序驅動器的執(zhí)行狀態(tài)為順序執(zhí)行,則置當前程序驅動器的下續(xù)目的裝置為程序控制裝置,否則置當前程序驅動器的下續(xù)目的裝置為程序緩時執(zhí)行裝置;步驟6將已完成同步處理的當前程序驅動器發(fā)送到本裝置的輸出緩存寄存器,并置其狀態(tài)為忙;步驟7循環(huán)檢測輸出緩存寄存器的忙閑標志,直到其為閑;置輸入緩存寄存器的忙閑標志為閑,轉步驟1。
圖3是L結構CPU的程序驅動器驅動流程圖。當沒有使用同步處理方法極其使用這種方法的裝置時,在L結構CPU中,程序驅動器驅動程序執(zhí)行的主要驅動流程。在L結構計算機中,多個程序驅動器可在同一時刻同時驅動多道程序并行的執(zhí)行。一個程序驅動器驅動一道程序的驅動流開始于程序控制裝置,經(jīng)取指令裝置、指令譯碼裝置、到指令執(zhí)行裝置,最后返回到程序控制裝置,周而復始。
其具體步驟如下步驟1程序控制裝置按規(guī)定用程序驅動器中的ΔPC更新程序驅動器中的PC生成下一條指令的地址并完成其它一些相關的設置;如果檢測到該道程序無需中斷,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的取指令裝置,即轉步驟2;如果檢測到該道程序需要進行中斷處理時,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的程序緩時執(zhí)行裝置,即轉步驟5;
步驟2取指令裝置按程序驅動器中的PC地址到程序存儲器中取到相應的指令并將其保存到當前程序驅動器的相應單元中;之后,將攜帶有當前指令的程序驅動器發(fā)送給指令譯碼裝置,即轉步驟3;步驟3指令譯碼裝置對當前程序驅動器攜帶的指令進行譯碼并將其保存到當前程序驅動器的相應單元中;隨后將攜帶有已譯碼的當前指令的程序驅動器發(fā)送給指令執(zhí)行裝置,即轉步驟4;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當前程序驅動器的相應單元中;最后將該程序驅動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉步驟1。
步驟5程序緩時執(zhí)行裝置接收到需要進行中斷處理的程序驅動器后,將其打入程序緩執(zhí)隊列的第0棧;此后,該道程序的程序驅動器就被動態(tài)地鎖在程序緩時執(zhí)行裝置中進行動態(tài)等待;每隔n拍,如果下??臻e,就下挪一棧;直到被中斷的程序驅動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊列的對首,即程序緩執(zhí)隊列的第N-1棧;此時,被中斷的程序驅動器已經(jīng)經(jīng)過了一段時間的中斷等待、可以返回到正常的程序驅動流程中了。此時,程序緩執(zhí)裝置以某種方式將存放在程序緩執(zhí)隊列第N-1棧的被中斷的程序驅動器發(fā)送給取指令裝置使該道程序轉入正常的執(zhí)行流程,即轉步驟2。
圖4是增設本發(fā)明的同步處理裝置后的L結構CPU的程序驅動器驅動流程圖。在程序驅動器驅動攜代的不是同步指令時,程序驅動器驅動一道程序的驅動流程與圖3所示的流程相同。不同的是當指令譯碼裝置檢測到某程序驅動器當前攜帶的指令是一條同步指令時,該道程序的程序驅動器將由指令譯碼裝置控制發(fā)送到同步處理裝置的輸入緩存寄存器,同時將相應的忙閑標志置成為忙。其具體步驟如下步驟1程序控制裝置按規(guī)定用程序驅動器中的ΔPC更新程序驅動器中的PC生成下一條指令的地址并完成其它一些相關的設置;如果檢測到該道程序無需中斷,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的取指令裝置,即轉步驟2;如果檢測到該道程序需要進行中斷處理時,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的程序緩時執(zhí)行裝置,轉步驟5;步驟2取指令裝置按程序驅動器中的PC地址到程序存儲器中取到相應的指令并將其保存到當前程序驅動器的相應單元中;之后,將攜帶有當前指令的程序驅動器發(fā)送給指令譯碼裝置,轉步驟3;步驟3指令譯碼裝置對當前程序驅動器攜帶的指令進行譯碼并將其保存到當前程序驅動器的相應單元中;如果當前程序驅動器當前攜帶的指令不是一條同步指令,則將該道程序的程序驅動器發(fā)送給指令執(zhí)行裝置,轉步驟4;如果當前程序驅動器當前攜帶的指令是一條同步指令,則該道程序的程序驅動器將由指令譯碼裝置控制發(fā)送到同步處理裝置、并將相應的忙閑標志置成為忙,轉步驟6;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當前程序驅動器的相應單元中;最后將該程序驅動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉步驟1;步驟5程序緩時執(zhí)行裝置接收到需要進行中斷等待的程序驅動器后,將其打入程序緩執(zhí)隊列的第0棧;此后,該道程序的程序驅動器就被動態(tài)地鎖在程序緩時執(zhí)行裝置中進行動態(tài)等待;每隔n拍,如果下??臻e,就下挪一棧;直到被中斷的程序驅動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊列的對首,即程序緩執(zhí)隊列的第N-1棧;此時,被中斷的程序驅動器已經(jīng)經(jīng)過了一段時間的中斷等待、可以返回到正常的程序驅動流程中了;此時,程序緩執(zhí)裝置將根據(jù)當前程序驅動器的來源,以某種方式將存放在程序緩執(zhí)隊列第N-1棧的被中斷的程序驅動器或是發(fā)送給取指令裝置使該道程序轉入正常的執(zhí)行流程,即轉步驟2、或是發(fā)送給同步處理裝置再一次執(zhí)行同步測試指令,即轉步驟6;步驟6當同步處理裝置檢測到其輸入緩存寄存器的忙閑標志為忙時,從輸入緩存寄存器中取出待處理的程序驅動器,并執(zhí)行驅動器中所攜帶的同步指令如是設置同步標志指令,則按本文所定義的同步設置指令的操作設置相應的同步標志,置當前程序驅動器的下一目的裝置為程序控制程序控制部件;如是測試與等待同步標志指令,則按本文所定義的測試與等待指令的操作測試相應的同步標志、并根據(jù)測試結果設定當前程序驅動器的下一目的裝置程序控制程序控制部件或是程序緩時執(zhí)行裝置;
如果當前程序驅動器的下一目的裝置被設置成為程序控制裝置,則將該道程序的程序驅動器發(fā)送給指令執(zhí)行裝置,轉步驟1;如果當前程序驅動器的下一目的裝置被設置成為程序緩時執(zhí)行裝置,說明該道程序需要進行中斷等待,故將該道程序的程序驅動器發(fā)送給程序緩時執(zhí)行裝置,轉步驟5。
權利要求
1.一種同步處理方法,其特征在于,該方法是在同一臺CPU中在同一時刻能夠并行地執(zhí)行多道程序的計算機體系結構的特點并采用程序緩時執(zhí)行技術,方法包括同步處理方法、L結構CPU的程序驅動器驅動方法、增設同步處理裝置后的L結構CPU的程序驅動方法。
2.根據(jù)權利要求1所述的同步處理方法,其特征在于,至少設置兩組同步指令●測試與等待同步標志指令,指令格式如下Test&Wait_Flag Flag_No,F(xiàn)lag_Value,Pro_Type該指令的操作是當Pro_Type=0時如果參數(shù)Flag_Value的當前值等于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài),即請求順序執(zhí)行本程序的下一條指令;否則置本程序的后續(xù)執(zhí)行狀態(tài)為請求等待執(zhí)行狀態(tài),即請求緩時等待;當Pro_Type>0時如果參數(shù)Flag_Value的當前值大于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài);否則置本程序的后續(xù)執(zhí)行狀態(tài)為等待執(zhí)行狀態(tài);當Pro_Type<0時如果參數(shù)Flag_Value的當前值小于編號為Flag_No的同步標志的當前值,則置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài);否則置本程序的后續(xù)執(zhí)行狀態(tài)為等待執(zhí)行狀態(tài);●設置同步標志指令Test&Wait_Flag Flag_No,F(xiàn)lag_Value,Pro_Type該指令的操作是當Pro_Type=0時將編號為Flag_No的同步標志的值置成為參數(shù)Flag_Value的當前值;當Pro_Type>0時將編號為Flag_No的同步標志的值置成為該同步標志當前值與參數(shù)Flag_Value的當前值之和;當Pro_Type<0時將編號為Flag_No的同步標志的值置成為該同步標志當前值與參數(shù)Flag_Value的當前值之差;設置完成后,置當前程序的后續(xù)執(zhí)行狀態(tài)為順序執(zhí)行狀態(tài)。
3.一種同步處理裝置,其特征在于,其硬件部分的主要構成至少是●N個同步標志,每個同步標志有n位,其中N≥1,n≥1;●同步處理裝置的輸入緩存寄存器,用于接收需進行同步處理的程序執(zhí)行的相關信息、稱為程序驅動器;同步處理裝置的輸出緩存寄存器,用于發(fā)送已完成同步處理的程序驅動器;●輸入/出緩存寄存器的忙/閑標志,一個標志輸入緩存寄存器的忙閑狀態(tài),另一個標志輸出緩存寄存器的忙閑狀態(tài);●操作/控制部件,用于管理控制整個同步處理裝置的操作,如接收程序驅動器的處理、執(zhí)行各同步指令規(guī)定的操作、維護同步標志、發(fā)送程序驅動器的處理;●同步處理裝置的輸入緩存寄存器以某種方式與L結構CPU的指令譯碼裝置以及程序緩時執(zhí)行裝置相連,用于接收攜帶有同步指令的程序驅動器;同步處理裝置的輸出緩存寄存器以某種方式與L結構CPU的程序控制裝置以及程序緩時執(zhí)行裝置相連,用于輸出已完成同步處理或需要緩時等待的程序驅動器。
4.根據(jù)權利要求1所述的同步處理方法,其特征在于,其同步處理主要工作步驟如下步驟1循環(huán)檢測輸入緩存寄存器的忙閑標志,直到其為忙時轉步驟2;步驟2從輸入緩存寄存器中取出待處理的程序驅動器,并根據(jù)當前程序驅動器所攜帶的同步指令類型分別進行處理如果是設置同步標志指令,轉步驟3;如果是測試與等待同步標志指令,轉步驟4;步驟3對于設置同步標志指令,按該指令所定義的操作設置相應的同步標志,并將當前程序驅動器的執(zhí)行狀態(tài)設置為順序執(zhí)行;轉步驟5;步驟4對于測試與等待同步標志指令,按該指令所定義的操作測試相應的同步標志、并根據(jù)測試結果設定當前程序驅動器的執(zhí)行狀態(tài);如果被測試的同步標志滿足測試條件,則置當前程序驅動器的執(zhí)行狀態(tài)為順序執(zhí)行,否則置當前程序驅動器的執(zhí)行狀態(tài)為等待執(zhí)行;步驟5根據(jù)當前程序驅動器的執(zhí)行狀態(tài),置當前程序驅動器的下續(xù)目的裝置若當前程序驅動器的執(zhí)行狀態(tài)為順序執(zhí)行,則置當前程序驅動器的下續(xù)目的裝置為程序控制裝置,否則置當前程序驅動器的下續(xù)目的裝置為程序緩時執(zhí)行裝置;步驟6將已完成同步處理的當前程序驅動器發(fā)送到本裝置的輸出緩存寄存器,并置其狀態(tài)為忙;步驟7循環(huán)檢測輸出緩存寄存器的忙閑標志,直到其為閑;置輸入緩存寄存器的忙閑標志為閑,轉步驟1。
5.根據(jù)權利要求1所述的同步處理方法,其特征在于,在程序緩時執(zhí)行裝置中“等待”的攜帶有測試與等待同步指令的程序驅動器在結束“等待”后,將被重新直接送回到同步處理裝置再次執(zhí)行測試與等待同步指令,并根據(jù)測試結果或是發(fā)送到程序控制裝置以執(zhí)行該程序的下一條指令、或是再次發(fā)送到程序緩時執(zhí)行裝置中“等待”下一次的測試。
6.根據(jù)權利要求1所述的同步處理方法,其特征在于,L結構CPU的程序動器驅動方法,其步驟如下步驟1程序控制裝置按規(guī)定用程序驅動器中的ΔPC更新程序驅動器中的PC生成下一條指令的地址并完成其它一些相關的設置;如果檢測到該道程序無需中斷,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的取指令裝置,即轉步驟2;如果檢測到該道程序需要進行中斷處理時,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的程序緩時執(zhí)行裝置,即轉步驟5;步驟2取指令裝置按程序驅動器中的PC地址到程序存儲器中取到相應的指令并將其保存到當前程序驅動器的相應單元中;之后,將攜帶有當前指令的程序驅動器發(fā)送給指令譯碼裝置,即轉步驟3;步驟3指令譯碼裝置對當前程序驅動器攜帶的指令進行譯碼并將其保存到當前程序驅動器的相應單元中;隨后將攜帶有已譯碼的當前指令的程序驅動器發(fā)送給指令執(zhí)行裝置,即轉步驟4;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當前程序驅動器的相應單元中;最后將該程序驅動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉步驟1;步驟5程序緩時執(zhí)行裝置接收到需要進行中斷處理的程序驅動器后,將其打入程序緩執(zhí)隊列的第0棧;此后,該道程序的程序驅動器就被動態(tài)地鎖在程序緩時執(zhí)行裝置中進行動態(tài)等待;每隔n拍,如果下??臻e,就下挪一棧;直到被中斷的程序驅動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊列的對首,即程序緩執(zhí)隊列的第N-1棧;此時,被中斷的程序驅動器已經(jīng)經(jīng)過了一段時間的中斷等待、可以返回到正常的程序驅動流程中了。此時,程序緩執(zhí)裝置以某種方式將存放在程序緩執(zhí)隊列第N-1棧的被中斷的程序驅動器發(fā)送給取指令裝置使該道程序轉入正常的執(zhí)行流程,即轉步驟2。
7.根據(jù)權利要求1的同步處理方法,其特征在于,增設同步處理裝置后的L結構CPU的程序驅動方法,其步驟如下步驟1程序控制裝置按規(guī)定用程序驅動器中的ΔPC更新程序驅動器中的PC生成下一條指令的地址并完成其它一些相關的設置;如果檢測到該道程序無需中斷,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的取指令裝置,即轉步驟2;如果檢測到該道程序需要進行中斷處理時,則將該已更新的程序驅動器以某種方式發(fā)送給L結構CPU的程序緩時執(zhí)行裝置,轉步驟5;步驟2取指令裝置按程序驅動器中的PC地址到程序存儲器中取到相應的指令并將其保存到當前程序驅動器的相應單元中;之后,將攜帶有當前指令的程序驅動器發(fā)送給指令譯碼裝置,轉步驟3;步驟3指令譯碼裝置對當前程序驅動器攜帶的指令進行譯碼并將其保存到當前程序驅動器的相應單元中;如果當前程序驅動器當前攜帶的指令不是一條同步指令,則將該道程序的程序驅動器發(fā)送給指令執(zhí)行裝置,轉步驟4;如果當前程序驅動器當前攜帶的指令是一條同步指令,則該道程序的程序驅動器將由指令譯碼裝置控制發(fā)送到同步處理裝置、并將相應的忙閑標志置成為忙,轉步驟6;步驟4指令執(zhí)行裝置按指令所規(guī)定的操作執(zhí)行該指令、形成ΔPC等執(zhí)行狀態(tài),并將它們保存到當前程序驅動器的相應單元中;最后將該程序驅動器以某種方式發(fā)送給程序控制裝置,以執(zhí)行該道程序的下一條指令,即轉步驟1;步驟5程序緩時執(zhí)行裝置接收到需要進行中斷等待的程序驅動器后,將其打入程序緩執(zhí)隊列的第0棧;此后,該道程序的程序驅動器就被動態(tài)地鎖在程序緩時執(zhí)行裝置中進行動態(tài)等待;每隔n拍,如果下棧空閑,就下挪一棧;直到被中斷的程序驅動器已經(jīng)經(jīng)過逐棧移動到程序緩執(zhí)隊列的對首,即程序緩執(zhí)隊列的第N-1棧;此時,被中斷的程序驅動器已經(jīng)經(jīng)過了一段時間的中斷等待、可以返回到正常的程序驅動流程中了;此時,程序緩執(zhí)裝置將根據(jù)當前程序驅動器的來源,以某種方式將存放在程序緩執(zhí)隊列第N-1棧的被中斷的程序驅動器或是發(fā)送給取指令裝置使該道程序轉入正常的執(zhí)行流程,即轉步驟2、或是發(fā)送給同步處理裝置再一次執(zhí)行同步測試指令,即轉步驟6;步驟6當同步處理裝置檢測到其輸入緩存寄存器的忙閑標志為忙時,從輸入緩存寄存器中取出待處理的程序驅動器,并執(zhí)行驅動器中所攜帶的同步指令如是設置同步標志指令,則按本文所定義的同步設置指令的操作設置相應的同步標志,置當前程序驅動器的下一目的裝置為程序控制程序控制部件;如是測試與等待同步標志指令,則按本文所定義的測試與等待指令的操作測試相應的同步標志、并根據(jù)測試結果設定當前程序驅動器的下一目的裝置程序控制程序控制部件或是程序緩時執(zhí)行裝置;如果當前程序驅動器的下一目的裝置被設置成為程序控制裝置,則將該道程序的程序驅動器發(fā)送給指令執(zhí)行裝置,轉步驟1;如果當前程序驅動器的下一目的裝置被設置成為程序緩時執(zhí)行裝置,說明該道程序需要進行中斷等待,故將該道程序的程序驅動器發(fā)送給程序緩時執(zhí)行裝置,轉步驟5。
全文摘要
本發(fā)明涉及計算機同步技術領域,特別是一種同步處理方法及其裝置。該方法是在同一臺CPU中在同一時刻能夠并行地執(zhí)行多道程序的計算機體系結構的特點并采用程序緩時執(zhí)行技術,方法包括同步處理方法、L結構CPU的程序驅動器驅動方法、增設同步處理裝置后的L結構CPU的程序驅動方法。裝置包括N個同步標志、輸入緩存寄存器、輸出緩存寄存器、輸入/出緩存寄存器的忙/閑標志、操作/控制部件。這種同步處理方法及其裝置可用于協(xié)調(diào)同步多道具有數(shù)據(jù)相關的程序的執(zhí)行;特別地,是為L結構CPU提供一種開銷小、效率高的方法及裝置以實現(xiàn)各類同步功能。
文檔編號G06F9/46GK1652085SQ200510058829
公開日2005年8月10日 申請日期2005年3月30日 優(yōu)先權日2005年3月30日
發(fā)明者李曉波 申請人:李曉波