用於控制數據處理裝置滿負荷的方法
2023-05-14 02:02:51 4
專利名稱:用於控制數據處理裝置滿負荷的方法
技術領域:
本發明涉及一種用於控制具有順序設置的計算部件的數據處理裝置由於待處理的數據值引起的滿負荷的方法。
背景技術:
在數據處理設備或者數據處理裝置中,經常藉助於在各個數據處理裝置中包含的計算部件、在依次的計算步驟中對數據值進行處理。作為數據處理裝置可以是一般的微處理器控制的電氣設備,特別是用於監視和控制自動化過程的現場或遙控設備,例如能量提供和分配裝置。在本發明意義下的數據值可以例如是測量值、提示、故障提示、狀態值和參數。在此,各個處理步驟可以由作為硬體或者軟體實現的計算部件執行。
例如,代表電流或電壓測量值的數據值,其由作為數據處理裝置的現場設備在供電線路上所採集,並經歷依次的處理步驟,如濾波、傅立葉變換和電壓或電路向量計算函數。在此,通常在第一計算部件的輸入端讀入一個或一組數據值,該第一計算部件對數據值進行處理並最後將其存放在分配給該計算部件的臨時存儲器,跟隨在該第一計算部件後的下一個計算部件從該臨時存儲器讀出有關數據值作為其輸入值用於其處理。
在此,各計算部件的計算速度根據各個計算部件執行的函數的複雜性以及效率可以完全不同。在短時間內到來並必須由數據處理裝置處理的大數據量的情況下,可以由於較慢的計算部件產生數據擁堵,並且使各臨時存儲器沒有足夠的存儲容量來容納出現的數據值,而其它臨時存儲器則近乎「空載」。這意味著數據丟失,這尤其可以在敏感的數據值(例如故障提示)的情況下產生消極的影響。
為了避免這一點,迄今為止通常執行所謂的「握手方法」。其中,由第一計算部件將一個數據值或者一組數據值通過為其設置的臨時存儲器送入到下一個計算部件。如果下一個計算部件執行了其計算函數,則其將該對應的數據值或者該組對應的數據值傳遞到跟隨在後面的計算部件,並回復第一計算部件對其數據值或其一組數據值的處理完畢,據此其通過第一計算部件的臨時存儲器得到傳送的後續數據或者後續數據值組。
在握手方法的另一種實施方式中,也可以在數據值經過了整個數據處理裝置的最後一個計算部件之後,才進行對對應數據值處理的回覆。只有在這之後,第一計算部件才讀入下一個數據值、對其進行處理並傳遞到下一個計算部件。
因此,藉助於握手方法實現了所有計算部件的相對均勻的滿負載,並由此避免了單個存儲器的過載。不過,因為在該方法中整個數據處理裝置的工作速度取決於最慢的計算部件,由此相對緩慢,並且此外通過各個回復相對花費大,所以由此也不能完全排除數據丟失。
另一種可能性是為特定的數據值事先分配較高的優先權,使得這樣的數據值優選地由數據處理裝置的各個計算部件通過系統得到處理。由此,至少使得敏感數據值的數據丟失相對好地避免。
此外,例如由德國專利文獻DE 2723667 C3公開了一種電話交換裝置,其中將等待的數據按所謂的要求刺激(Anforderungsreize)在存儲器中臨時存儲。在此,在一個存儲器過載時可以在一個還沒有加載的存儲器區域中進行平衡。
此外,美國專利文獻US 6192428 B′公開了一種計算機系統,其中通過輸入數據的不同優選和將其分配到不同的在FIFO(先進先出)臨時存儲器可以避免FIFO數據臨時存儲區域的溢出。
發明內容
本發明要解決的技術問題是,按照簡單的方式在數據處理裝置中儘可能地避免由於數據處理裝置的單個臨時存儲器過載引起的數據丟失。
為了解決該技術問題,提出了一種用於控制具有順序設置的計算部件的數據處理裝置由於待處理的數據值而引起的滿負荷的方法,其中,確定分配給各個計算部件的臨時存儲器的存儲器滿負載,並識別超過預定滿負載邊界值的存儲器滿負載的臨時存儲器。然後,暫時中斷設置在所識別出的臨時存儲器之前的計算部件的工作。
通過監視每個臨時存儲器是否保持由最大允許存儲器滿負載給出的滿負載邊界值,進一步防止了由於單個臨時存儲器溢出的數據丟失。按照本發明方法的基本優點在於,總是暫時停止位於涉及過高存儲器滿負載的臨時存儲器之前的計算部件,而其它計算部件可以按正常的方式繼續工作。由此,在整個數據處理裝置上的滿負載相對靈活地分配,因為在一個計算部件的工作中斷時將過載的臨時存儲器的負載短時間地傳送給位於停止的計算部件之前的、沒有過載的臨時存儲器。由此,在單個的臨時存儲器過高滿負載的條件下不必停止整個數據處理裝置。
按照一個優選的擴展,可以這樣實施本發明的方法,即,為了確定臨時存儲器的存儲器滿負載分別建立滿負載參數。將滿負載參數分別與給出最大存儲器滿負載的滿負載邊界值進行比較,並且如果在臨時存儲器中識別出了對滿負載邊界值的超出,則產生一個用於暫時中斷計算部件的工作的暫停命令。然後,將所述暫停命令傳送至設置在超出滿負載邊界值的臨時存儲器之前的計算部件。該擴展的基本優點在於,可以在使用相對更少和簡單構造的量(即滿負載參數和暫停命令)的條件下,執行用於控制數據處理裝置的滿負荷的方法。
在該擴展的一個優選的實施方式中,在臨時存儲器中建立滿負載參數,將該滿負載參數傳送至一個對計算部件共同的滿負載控制裝置,並且該滿負載控制裝置發出所述暫停命令。該實施方式的基本特徵在於,為了控制整個數據處理裝置的滿負載僅僅需要單一的滿負載控制裝置。為此,該滿負載控制裝置從每個臨時存儲器得到各自的給出各臨時存儲器的當前存儲器滿負載的滿負載參數。在高於滿負載邊界值的滿負載參數條件下,該滿負載控制裝置產生一個暫停命令,利用該命令暫時停止處於有關臨時存儲器之前的計算部件。
通常,可以停止任意個位於所識別出的臨時存儲器之前的計算部件,以便有助於減輕該臨時存儲器的負擔。不過,作為特別優選的是,允許直接設置在所識別出的臨時存儲器之前的計算部件暫時中斷工作。該實施方式具有這樣的優點,在這種情況下在停止的計算部件和所涉及的臨時存儲器之間沒有其它計算部件,而該計算部件的停止的影響僅為減輕該臨時存儲器的負擔;即不會導致位於中間的臨時存儲器的不希望的「空載」。也就是說,在該實施方式中分別僅僅停止剛好直接設置在所識別出的臨時存儲器之前的計算部件,而所有其它計算部件可以按正常的方式繼續工作。
按照本發明的方法的另一個擴展,將被允許暫時中斷工作的計算部件保持預先設定的時間長度。按照該方式可以按相對簡單的方式和方法將所選擇的計算部件停止一個適當長的時間段。對於位於其後的臨時存儲器在該預先設定的時間段過後還總是強烈地滿負載的情況,重新向計算部件發送暫停命令,據此再次將其停止該固定的時間長度。
按照本發明的方法的另一個擴展,也可以將所述允許暫時中斷工作的計算部件一直停止,直到所識別出的臨時存儲器的存儲器滿負載低於一個釋放存儲器滿負載邊界值。該實施方式的優點在於,只有在臨時存儲器已經可以接收更新的數據值並且其存儲器滿負載低於該釋放存儲器滿負載邊界值時,所停止的計算部件才再次向該臨時存儲器傳送新的數據。
通常,可以使該釋放存儲器滿負載具有與最大滿負載邊界值完全一致的值。不過,特別優選的是,該釋放存儲器滿負載邊界值低於的滿負載邊界值。即,按照該方式有效地避免了對所選擇的計算部件的不希望的始終停止和繼續運行形式的振蕩效應。
按照本發明的方法的另一個優選的擴展,將各臨時存儲器的分別確定的存儲器滿負載與一個對於所有臨時存儲器相同的滿負載邊界值進行比較。通過為所有臨時存儲器允許的存儲器滿負載選擇一個單一的值,使得可以相對簡單地將為各存儲器確定的存儲器滿負載與該滿負載邊界值進行比較。
不過,此外也可以替換地將各臨時存儲器的分別確定的存儲器滿負載與各個臨時存儲器特有的滿負載邊界值進行比較。按照這種方式例如可以,為一個設置為相對迅速計算部件的輸出存儲器的臨時存儲器規定一個這樣的滿負載邊界值,該邊界值比用於另一個設置為相對緩慢計算部件的輸出存儲器的臨時存儲器的要低一些。
特別優選的是,可以分別藉助於由各臨時存儲器提供的計數變量確定各個臨時存儲器的存儲器滿負載。在這種變形中,如果臨時存儲器具有這樣一個計數變量,其值分別在數據值進入存儲器時增加而在數據值被讀出時減小,則該變量就可以滿足要求。如果這種計數變量對於數據處理裝置被說明為全局變量,則滿負載控制裝置可以毫無問題地訪問這樣一個計數變量,並根據該變量識別各個臨時存儲器的存儲器滿負載。
此外,按照本發明方法的另一個優選的實施方式,將各臨時存儲器的存儲器滿負載在數據處理裝置的顯示裝置上進行顯示。例如,藉助於這種顯示可以為數據處理裝置的操作者顯示該數據處理裝置各個臨時存儲器的當前滿負載狀態。這點尤其在對這種數據處理裝置進行布置和設計的階段是有優勢的。
此外,在本發明方法的另一個優選的實施方式中,藉助於至少一個計算部件預先連接的預處理部件設定待處理的數據值的優先權。即,按照這種方式可以根據該通過預處理部件設定的優先權實現,由各個計算部件快速和優先(即按較高的優先權)處理敏感數據,而在敏感數據之後才處理不重要的數據。
按照本發明方法的一個優選的實施方式可以針對優先權,預處理部件將待處理的數據值根據其優先權存放在一個其所屬的優先權臨時存儲器的不同存儲區域中。按照這種方式,相對簡單地實現了按照各種數據的優先權對其進行預先分類的方式;例如,為了進一步處理各數據,其中存放較高優先權的數據值的存儲區域要比其中存放較低優先權的數據值的存儲區域更經常地由後續的計算部件訪問。
此外,被視為特別優選的是,預處理部件將待處理的數據根據其優先權存放在劃分為三個存儲區域的優先權臨時存儲器的一個存儲區域中。通過將優先權臨時存儲器的三分可以特別簡單地將數據值分為高、中和低優先權的數據值。這對於在多數數據處理裝置中的處理來說是完全足夠了。
為了進一步解釋本發明,圖中示出圖1舉例示出數據處理裝置的示意框圖,圖2同樣用示意框圖示出了數據處理裝置的另一種實施方式。
具體實施例方式
圖1示出了數據處理裝置1,其包括多個計算部件2a,2b,2c,2d和這些計算部件2a至2d所屬的臨時存儲器3a,3b,3c和3d。在此,計算部件2a,2b和2c與其所屬的臨時存儲器3a,3b和3c,以及計算部件2a,2b和2d與其所屬的臨時存儲器3a,3b和3d,分別順次地依次設置。而計算部件2c和2d與其所屬的臨時存儲器3c和3d則並行設置。計算部件2a至2d分別與滿負載控制裝置4的輸出端連接,而臨時存儲器3a至3d則與滿負載控制裝置4的輸入端連接。
其中,數據處理裝置1如下工作在數據處理裝置1的輸入端5上讀入由單個數據值組成的數據流。該數據流的數據值例如是自動化過程的測量值、提示、故障提示、控制值和參數。在下面的實施方式中假設其是由作為數據處理裝置的現場設備在供電導線上採集的電流值。這裡為電流值的數據值首先由第一計算部件2a讀入。計算部件2a對讀入的數據值進行預定的計算,例如假設計算部件2a進行數據值的濾波。在完成其計算之後各個被處理後的數據值被送至計算部件2a所屬的臨時存儲器3a,該臨時存儲器由此成為計算部件2a的輸出存儲器。此時,後續的計算部件2b從該臨時存儲器3a中讀入已經由計算部件2a處理的數據值並對其再次進行自身的計算。例如假設計算部件2b從這些數據值中分別建立電流向量。在執行了該計算之後,這樣被繼續處理後的數據值被存放在計算部件2b所屬的臨時存儲器3b中。計算部件2c以及計算部件2d都從臨時存儲器3b中讀入這樣被繼續處理後的數據值,並對其再次進行它們各自的計算。例如,計算部件2c可以對讀入的數據值進行統計分析,而計算部件2d則確定作為數據值基礎的供電導線中電流變化的頻率。計算部件2c以及計算部件2d都將其計算結果分別存放在另一臨時存儲器3c和3d中。從這些臨時存儲器可以將這樣處理的電流值通過數據處理裝置1的輸出端6和7輸出,並且例如傳輸到其它的數據處理裝置、存儲介質或者具有顯示裝置的計算機。
在圖1中示出的、具有計算部件2a,2b,2c和2d的數據處理裝置1的結構僅僅是作為數據處理裝置示例性的可能性來被考察的。自然,在本發明的範圍內也可以設想這種數據處理裝置的任意其它配置。
根據各計算部件2a至2d的效率或者由這些計算部件2a至2d實施計算的複雜性的不同,可以較快或者較慢地處理各數據值。例如,假設計算部件2c與其它計算部件2a,2b和2d相比需要相對長的時間用於其計算。不過,例如如果計算部件2b比計算部件2c工作得更快,則在臨時存儲器3b中存放的數據值比從其中讀出的數據值要多。因此,臨時存儲器3b所存儲的數據值的數量和由此的存儲器滿負載隨著時間而增加,直到在可以預見的時間之後臨時存儲器3b的存儲能力不再足夠容納所有輸入的數據值。因此,可能由於臨時存儲器3b的溢出而造成數據丟失。
不過,對於這種情況設置了滿負載控制裝置4,其連續地對各臨時存儲器3a至3d的存儲器滿載進行查詢。例如,這可以如下實現,即,各臨時存儲器3a至3d分別具有一個計數變量,在這些計數變量中將所存儲的數據值的當前數量作為輸入的數據值和被讀出的數據值之間的差來表示。由此可以產生一個給出存儲器滿負載的滿負載參數,該參數在了解對應於臨時存儲器3a至3d的整個存儲能力的條件下例如按照該整個存儲能力的百分比的形式給出各個臨時存儲器3a至3d的滿負載。如果各個計數變量被說明為全局變量(即可以由數據處理裝置的所有部件讀取),則滿負載控制裝置可以毫無問題地訪問這種變量,並由此確定各個臨時存儲器3a至3d的滿負載參數。然後,滿負載控制裝置4分別將所確定的滿負載參數與給出各個臨時存儲器3a至3d的最大允許的存儲器滿負載的滿負載邊界值進行比較。這樣的滿負載邊界值可以對於所有臨時存儲器3a至3d取同一個值(例如各自存儲能力的70%)。不過,也可以對於臨時存儲器3a至3d的每個確定一個自身(特定)的滿負載邊界值。按照這種方式可以將滿負載邊界值靈活地例如分別與各計算部件2a至2d的計算速度進行匹配。
如果在數據處理裝置1運行中滿負載控制裝置4發現臨時存儲器3a至3d中的一個(在假設的例子中為臨時存儲器3b)溢出(即,所確定的臨時存儲器3b的滿負載參數超過了為該臨時存儲器3b設置的滿負載邊界值),則滿負載控制裝置4作為對此的反應向位於被識別出的臨時存儲器3b之前的計算部件(在所述情況下即為計算部件2a或2b之一)給出暫停命令,由此暫時中斷該計算部件的工作,即停止其計算活動。
如果在這種情況下通過暫停命令暫時停止直接在所涉及的臨時存儲器3b之前的計算部件(在此即計算部件2b),則可以特別靈活地對整個數據處理裝置1進行控制。如果暫時停止計算部件2b,則從該計算部件不繼續向臨時存儲器3b輸出數據值。不過,由於計算部件2c仍從臨時存儲器3b中讀出數據,因此在臨時存儲器3b中所存儲的數據值和由此其存儲器滿負載下降。
可以將停止的計算部件2b停止一個預定的時間長度,例如2毫秒,然後自動地由滿負載控制裝置4再次「釋放」,即再次獲得其計算能力。在此,這樣選擇該預定的暫停時間長度,即,在計算部件2b通過重新獲得計算能力而再次在臨時存儲器3b中存放新的數據值之前,通過隨後的計算部件2c已經可以從所涉及的臨時存儲器3b中讀出一定的數據值。如果臨時存儲器3b的存儲器滿負載一直高於滿負載邊界值或者在較短的時間之後再次達到該滿負載邊界值,則向所選出的計算部件2b給出更新的暫停命令。
或者,也可以使滿負載控制裝置4繼續監視有關的臨時存儲器3b的存儲器滿負載參數,並且僅當該存儲器滿負載參數降低到低於預定的釋放存儲器滿負載邊界值時才再次將其釋放。為了避免振蕩,即計算部件2b被重複地停止和釋放,在此有意義的是將該釋放存儲器滿負載邊界值選擇為低於臨時存儲器3b的滿負載邊界值一定的距離。例如,如果臨時存儲器3b的滿負載邊界值為70%(即,在超過70%的「填充率」時滿負載控制裝置4識別出,臨時存儲器3b的滿負載參數超過滿負載邊界值並向例如計算部件2b發出暫停命令),則例如將釋放存儲器滿負載邊界值(即,允許計算部件2b重新獲得其計算工作的臨時存儲器3b的填充狀態)選擇為50%。
此外,可以將關於各臨時存儲器3a至3d的存儲器滿負載的信息由滿負載控制裝置4提供給數據處理裝置1的一個在圖1中沒有示出的顯示裝置,然後在該顯示裝置上進行顯示,並由此使得數據處理裝置1的使用者可以獲得。這點尤其在數據處理裝置1的投入運行階段或者規劃階段期間具有優勢。此外,也可以由此觀察數據處理裝置1在其輸入端5上出現「數據波浪」(即,在時間上接近出現的大量數據值)期間的特性。
在圖2中示出了數據處理裝置1的另一個實施方式;其中,對應於圖1的部件利用了同樣的附圖標記標示出。
圖2與圖1的差別在於,在數據處理裝置1的輸入端5和計算部件2a的輸入端之間設置了一個預處理部件8。藉助於該預處理部件8可以對在數據處理裝置1的輸入端5上出現的數據值簡單地賦予優先權。設置各數據值的優先權是為了允許特定的數據值(具有較高的優先權)優先地由計算部件2a至2d進行進一步處理,而較低優先權的數據值只有在高優先權的數據值處理完之後才能得到處理。以這種方式可以使重要或者敏感的數據儘可能快速地通過數據處理裝置得到處理並被送至例如顯示裝置或者用於產生故障信號的裝置。
為此,預處理部件8具有識別裝置9,後者為輸入端5上出現的數據流的各數據值賦予優先權。例如,這可以如下進行識別裝置9識別特殊的數據類型,並且例如按照預定的優先權清單將其分別賦予相應的優先權。例如,識別裝置9可以將出現的電流值按照優先權清單設置一個低的優先權,而將出現的故障提示按照優先權清單設置一個高的優先權。不過,也可以是出現的數據值已經被設置了一個優先權標誌,根據該標誌識別裝置9分別識別出為各數據值賦予何種優先權。
對應於由識別裝置9分別賦予各數據值的優先權,將這些數據值存放在預處理部件8的不同存儲區域10a,10b和10c中;例如,將具有較高優先權的數據值存放在預處理部件8的存儲區域10a中,而將具有較低優先權的數據值存放在存儲區域10c中。在這種情況下,存儲區域10b用於中間優先權的數據值。例如,出現的電流值由識別裝置9設置為低優先權,因此被存放在預處理部件8的存儲區域10c中,而出現的故障提示被設置為高優先權並存放在預處理部件8的存儲區域10a中。
可以這樣設計計算部件2a,使得其相應地比對低優先權的存儲區域10c更經常地訪問高優先權的存儲區域10a,並且使在存儲區域10a中存儲的數據值比在優先權低的存儲區域10c中存儲的數據值更早地得到進一步的處理。
或者,例如也可以,在存儲區域10a中出現數據值之後分別向計算部件2a發送一個短的提示,計算部件2a據此從該存儲區域讀取所存放的數據值。
作為對於圖2中示出的實施方式的補充,在一些或者所有其餘的計算部件2b至2d之前設置類似於預處理部件8的其它預處理部件。在這種情況下,則可以在數據處理裝置1的每個位置上檢驗,是否存在具有較高優先權的數據值,以便隨後允許這種數據值對應地較快通過整個數據處理裝置1。
權利要求
1.一種用於控制具有順序設置的計算部件的數據處理裝置由於待處理的數據值引起的滿負荷的方法,其中執行下列步驟-確定分配給各個計算部件的臨時存儲器的存儲器滿負載,-識別具有超過預定滿負載邊界值的存儲器滿負載的臨時存儲器,-暫時中斷設置在所識別出的臨時存儲器之前的計算部件的工作。
2.根據權利要求1所述的方法,其特徵在於,-為了確定臨時存儲器的存儲器滿負載分別建立滿負載參數,-將所述滿負載參數分別與由最大存儲器滿負載給出的滿負載邊界值進行比較,-如果識別出臨時存儲器超出滿負載邊界值,則產生一個用於暫時中斷計算部件的工作的暫停命令,和-將所述暫停命令傳送至設置在該超出滿負載邊界值的臨時存儲器之前的計算部件。
3.根據權利要求2所述的方法,其特徵在於,-在臨時存儲器中建立滿負載參數,-將所述滿負載參數傳送至一個對計算部件共同的滿負載控制裝置,和-所述滿負載控制裝置發出所述暫停命令。
4.根據上述權利要求中任一項所述的方法,其特徵在於,-允許直接設置在所識別出的臨時存儲器之前的計算部件暫時中斷工作。
5.根據上述權利要求中任一項所述的方法,其特徵在於,-將所述被允許暫時中斷工作的計算部件保持預先設定的時間長度。
6.根據權利要求1至4中任一項所述的方法,其特徵在於,-將所述被允許暫時中斷工作的計算部件一直保持停止,直到所識別出的臨時存儲器的存儲器滿負載低於一個釋放存儲器滿負載邊界值為止。
7.根據權利要求6所述的方法,其特徵在於,-所述釋放存儲器滿負載邊界值低於最大允許的存儲器滿負載。
8.根據上述權利要求中任一項所述的方法,其特徵在於,-將各臨時存儲器的分別確定的存儲器滿負載與一個對所有臨時存儲器都相同的滿負載邊界值進行比較。
9.根據權利要求1至7中任一項所述的方法,其特徵在於,-將各臨時存儲器的分別確定的存儲器滿負載與對各個臨時存儲器特有的滿負載邊界值進行比較。
10.根據上述權利要求中任一項所述的方法,其特徵在於,-分別藉助於由各臨時存儲器提供的計數變量確定各個臨時存儲器的存儲器滿負載。
11.根據上述權利要求中任一項所述的方法,其特徵在於,-將各臨時存儲器的存儲器滿負載在所述數據處理裝置的顯示裝置上進行顯示。
12.根據上述權利要求中任一項所述的方法,其特徵在於,-藉助於至少一個計算部件預先連接的預處理部件為待處理的數據值設置優先權。
13.根據權利要求12所述的方法,其特徵在於,-所述預處理部件將待處理的數據值根據其優先權存放在與其對應的優先權臨時存儲器的不同存儲區域中。
14.根據權利要求13所述的方法,其特徵在於,-所述預處理部件將待處理的數據根據其優先權存放在劃分為三個存儲區域的優先權臨時存儲器的一個存儲區域中。
全文摘要
本發明涉及一種用於控制具有順序設置的計算部件的數據處理裝置由於待處理的數據值引起的滿負荷的方法。為了按照簡單的方式在數據處理裝置中儘可能避免由於數據處理裝置的單個臨時存儲器的過載引起的數據丟失,按照本發明在上述方法中執行下列步驟確定分配給各個計算部件的臨時存儲器的存儲器滿負載;識別具有超過預定滿負載邊界值的存儲器滿負載的臨時存儲器;暫時中斷設置在所識別出的臨時存儲器之前的計算部件的工作。
文檔編號G06F9/00GK1629820SQ20041010214
公開日2005年6月22日 申請日期2004年12月20日 優先權日2003年12月18日
發明者克勞斯·特雷斯徹爾 申請人:西門子公司