TW201324337A - 內嵌式系統及其執行緒與緩衝區管理方法 - Google Patents
內嵌式系統及其執行緒與緩衝區管理方法 Download PDFInfo
- Publication number
- TW201324337A TW201324337A TW100144113A TW100144113A TW201324337A TW 201324337 A TW201324337 A TW 201324337A TW 100144113 A TW100144113 A TW 100144113A TW 100144113 A TW100144113 A TW 100144113A TW 201324337 A TW201324337 A TW 201324337A
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- buffer
- data
- flag
- external storage
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種內嵌式系統,包括一處理單元以及一記憶體。處理單元同時運行第一執行緒以及第二執行緒,其中第一執行緒係用以進行一資料擷取操作並具有一旗標,第二執行緒係用以對擷取資料進行一資料處理及輸出操作。旗標係標示第一執行緒之狀態為一執行狀態和一休息狀態二者其中之一。記憶體耦接至處理單元,提供第一執行緒以及第二執行緒一共用緩衝區。當處理單元欲運行第二執行緒時檢查旗標,當旗標為休息狀態時運行第二執行緒,當旗標為執行狀態時暫停運行第二執行緒。
Description
本發明係有關於一種內嵌式系統及其執行緒與共用緩衝區管理方法,且特別有關於一種可同時處理多執行緒之內嵌式系統及其執行緒與共用緩衝區管理方法。
內嵌式系統(embedded system)因功能單純、製造成本較低,已廣泛使用在許多領域中,例如各種機械控制器、工具機機上盒、資訊家電、手機、行車電腦......等等都是嵌入式系統。當應用在工具機機上盒時,主要是用來進行遠端的控制和資料擷取,進而可進行工具機的遠端監控和工具機頻域診斷。一般當工具機要進行頻域診斷時,工具機的機上盒必須維持高速且穩定的擷取頻率向工具機來擷取資料,經過初步處理之後再將處理過的資料傳送到遠端,若資料擷取過程不穩定(亦即無法以固定的頻率來擷取資料),經常會使所得到資料不精準而造成誤判。然而,內嵌式系統由於成本考量,通常使用價格較低廉中央處理單元(CPU),因此運算能力通常都會受到限制。當內嵌式系統的處理單元同時需擷取資料並進行資料處理與輸出操作時,常因運算能力有限來不及處理使得前面的執行緒而無法準時擷取資料,或是先前已擷取的資料來不及處理使得記憶體滿載,導致擷取頻率延遲,影響訊號擷取穩定性。
近年來,隨著電腦技術的提升以及處理器技術的演進,具有多核心(multi-core)的處理器也開始廣泛的使用。多核心係指從硬體上實現同時執行多個執行緒並行執行的技術。具有多核心的處理/電腦系統因處理器效能佳、有硬體支援,而能夠在同一時間執行多於一個執行緒,進而提升整體處理效能。內嵌式系統因成本考量,目前仍以單核心(single-core)為主,以單一核心同時執行擷取資料和資料處理,為避免即時診斷處理影響擷取頻率,一般採用生產者與消費者模式,由不同執行緒分別執行擷取資料(生產者)與資料處理(消費者),以避免互相干擾和互相等待。然而,雖然採用不同執行緒可將擷取資料和資料處理區分開來,但因兩種執行緒之間的執行順序仍依照作業系統的排程執行,無法控制其執行順序,故當內嵌式系統中的處理器或記憶體將滿載時,仍無法確保擷取穩定性,亦即穩定準時地擷取資料。此外,不同執行緒之間係採用共用記憶體(或稱共用緩衝區)的方式來進行記憶體存取,由於共用記憶體(緩衝區)的儲存空間有限,長時間執行下會發生記憶體滿載之情形,而記憶體滿載將會造成資料遺失。
因此,目前業界非常需要一種可運行在內嵌式系統的執行緒控制與緩衝區管理方法,於不大幅增加內嵌式系統上硬體成本、不需提高內嵌式系統中處理器或記憶體規格之條件下,使得內嵌式系統可持續高頻擷取訊號以及進行資料處理與輸出,且不會有擷取頻率不穩定、因記憶體緩衝區不足造成資料遺失的缺點。
有鑑於此,本發明提供一種內嵌式系統及其執行緒與緩衝區管理之方法。
本發明實施例之一種內嵌式系統,包括一處理單元以及一記憶體。處理單元同時運行至少一第一執行緒以及一第二執行緒,其中第一執行緒係用以進行一資料擷取操作並具有一旗標,第二執行緒係用以對擷取資料進行一資料處理及輸出操作,其中旗標係用以標示第一執行緒之狀態為一執行狀態和一休息狀態二者其中之一。記憶體係耦接至處理單元,用以提供第一執行緒以及第二執行緒一共用緩衝區。其中,當處理單元欲運行第二執行緒時,檢查旗標,當旗標為休息狀態時,運行第二執行緒,當旗標為執行狀態時,暫停運行第二執行緒。
本發明實施例之一種執行緒與緩衝區管理之方法,適用於一內嵌式系統,其中上述內嵌式系統同時運行至少一第一執行緒以及一第二執行緒,上述第一執行緒係用以進行一資料擷取操作,上述第二執行緒係用以對擷取資料進行一資料處理及輸出操作,且提供上述第一執行緒以及上述第二執行緒一共用緩衝區,上述方法包括下列步驟:提供上述第一執行緒一旗標,用以標示上述第一執行緒之狀態為一執行狀態或一休息狀態二者其中之一;以及當欲運行上述第二執行緒時,檢查上述旗標,當上述旗標為上述休息狀態時,運行上述第二執行緒,而當上述旗標為上述執行狀態時,暫停運行上述第二執行緒。
上述實施例中,更可包括有一計時器,記錄上述第一執行緒之下次執行時間。內嵌式系統更用以依據上述計時器所記錄上述第一執行緒之下次執行時間,運行上述第一執行緒且將上述旗標標示為上述執行狀態,而當上述第一執行緒執行完畢時,將上述旗標標示為上述休息狀態並更新上述計時器所記錄之上述第一執行緒之下次執行時間。
上述實施例中,更可包括有一匯流排以及一緩衝區管理電路,透過該匯流排連接至上述記憶體以及上述處理單元,用以存取上述共用緩衝區,從上述共用緩衝區取出資料而寫入一外接儲存單元,以及從上述外接儲存單元中取出資料寫入上述共用緩衝區。
本發明上述方法可以透過程式碼方式而存在,儲存於一記錄媒體中。當程式碼被機器載入並執行時,上述機器就會變成用於實行本發明之系統及裝置。
為使本發明之上述目的、特徵與優點能更明顯易懂,下文特舉實施例,並配合所附圖示,詳細說明如下。
本發明實施例提供一種內嵌式系統及其執行緒控制及共用緩衝區管理機制,在內嵌式系統(例如:工具機機上盒)上於不增加硬體成本例如處理單元(例如:CPU)/記憶體之條件下,使得內嵌式系統可持續高頻擷取外部訊號以及資料處理與輸出,具有擷取頻率穩定的優點。
第1圖顯示依據本發明一實施例之內嵌式系統100之示意圖。舉例來說,內嵌式系統100係為一工具機機上盒,但不限於此。依據本發明實施例之內嵌式系統100主要包括一處理單元110、一記憶體120和一旗標130。處理單元110係可處理多執行緒,可同時運行至少一第一執行緒112以及一第二執行緒114,其中第一執行緒112係用以進行一資料擷取操作,例如擷取來自一外部裝置10(例如一工具機、一測試機台或是一監控設備)的訊號或資訊,而第二執行緒114係用以對第一執行緒112所擷取出的資料進行一資料處理及輸出操作,再將已處理過資料輸出至一儲存裝置20(例如:一硬碟、一遠端主機或是一資料庫等)。一般來說,所擷取的資料可能過多或過頻繁,並不適宜直接全部傳送到遠端,因此將擷取資料進行資料處理後再輸出到一儲存裝置是較佳做法。上述資料處理例如可以是正規化處理、平均處理、篩選過濾處理、或是進行初步分析處理等。
記憶體120係透過一匯流排150耦接至處理單元110,用以提供第一執行緒112以及第二執行緒114一共用緩衝區122。其中,匯流排150係可為任何常用的匯流排結構,例如PCI、ISA等匯流排。也就是說,第一執行緒112將把擷取到的資料寫入至共用緩衝區122,第二執行緒114將自共用緩衝區122中讀取資料以進行前述資料處理及輸出操作。而旗標130係用以標示第一執行緒112的目前狀態為一執行狀態和一休息狀態二者中的哪一種,也就是說旗標130主要目的是用來標示第一執行緒112目前是屬於執行狀態還是休息狀態。
當處理單元110欲運行第二執行緒114以執行前述資料處理及輸出操作時,會先檢查旗標130以決定是否運行第二執行緒114。其中,當旗標130標示為休息狀態時,處理單元110便運行第二執行緒114,而當旗標標示為執行狀態時,處理單元110則暫停運行第二執行緒114。
更進一步時,內嵌式系統100更可包括一計時器140。計時器140主要是用來記錄第一執行緒112的下次執行時間。於本實施例中,旗標130以及計時器140係設置於處理單元110中。於另一實施例中,旗標130以及計時器140也可設計為獨立於處理單元110之外的硬體和/或韌體元件。
在內嵌式系統100具有計時器140的實施例中,處理單元110是依據計時器140所記錄的第一執行緒112下次執行時間,來運行第一執行緒112並且將旗標130標示為執行狀態。當第一執行緒112執行完畢時,將旗標130標示為休息狀態並更新計時器140記錄的第一執行緒112下次執行時間。詳細地說,處理單元110於每次欲執行第二執行緒114前需先檢查第一執行緒112之目前狀態,亦即旗標130,當第一執行緒112之狀態為執行狀態時,旗標130將被標示為執行狀態,就不會執行第二執行緒114直到第一執行緒112執行完成,處理單元110將等待旗標130修改標示為休息狀態之後,再運行第二執行緒114。反之,當第一執行緒112之狀態為休息狀態時,旗標130將被標示為休息狀態,處理單元110運行第二執行緒114至計時器140所記錄的第一執行緒112的下次執行時間為止,也就是說,第二執行緒114將執行至下次第一執行緒112執行之前。其中,處理單元110可依據旗標的設定狀態來得知第一執行緒112之目前狀態,並且可透過計時器140來得知下次第一執行緒112執行時間。
旗標130係由第一執行緒112依據其目前執行狀態來設定(例如為執行狀態時可將旗標130設為1,為休息狀態時可清除旗標設定亦即將旗標130設為0)。其中,當第一執行緒112之目前執行狀態為一執行狀態時,此旗標130係被設定為1,用以標示一執行狀態,而當第一執行緒112執行完畢時,亦即目前執行狀態改為休息狀態時,此旗標310係被清除(將旗標130設為0),用以標示休息狀態,同時更新計時器140的第一執行緒112下次執行時間。第一執行緒112的下次執行時間主要是依據事先決定的擷取頻率而決定,因此可確保內嵌式系統100可以依據擷取頻率來穩定地擷取資料。相應內嵌式系統100之執行緒管理方法將於後進行說明。
第2圖顯示依據本發明實施例之執行緒管理方法之流程圖,適用於一內嵌式系統,此內嵌式系統同時運行至少一第一執行緒以及一第二執行緒,第一執行緒進行一資料擷取操作,第二執行緒對擷取資料進行一資料處理及輸出操作,此實施例係下列執行步驟列入執行緒中,由處理單元依據執行緒來執行。請同時參考第1圖與第2圖進行說明。其中,旗標130可用以標示第一執行緒112之目前執行狀態。於此實施例中,假設初始計時器140以及旗標1均設為0。首先,當第一執行緒112要執行資料擷取操作時,此時第一執行緒112之目前執行狀態為一執行狀態,因此經由第一執行緒112設定旗標130(例如將旗標設為1)以標示一執行狀態並開始執行資料擷取操作,自外部裝置10上擷取資料(步驟S202)。接著,於第一執行緒112執行完成之後即將目前執行狀態改為一休息狀態,例如第一執行緒112清除此旗標設定,將旗標設為0(步驟S204)。更進一步時,在此步驟中,將目前執行狀態改為休息狀態時可同時更新計時器140的值,以供第一執行緒112可依據計時器140的值來進行下一次執行(步驟S204)。於此實施例中,計時器140的值將經由第一執行緒112而更新,計時器140的值表示第一執行緒112下次執行時間,其可依據事先決定的擷取頻率來決定。隨後,運行第二執行緒114先檢查旗標130,來判斷第一執行緒112是否正在執行中,當旗標130為休息狀態時則繼續運行第二執行緒114,亦即執行資料處理的部份,而當旗標130為執行狀態時則暫停運行第二執行緒114,等待執行狀態修改為休息狀態時再繼續運行第二執行緒114(步驟S206)。
第3圖顯示依據本發明另一實施例之執行緒管理方法之流程圖。請同時參考第1圖與第3圖進行說明。其中,處理單元110可運行第二執行緒114來執行資料處理與輸出操作。此實施例亦適用於內嵌式系統,同時運行至少一第一執行緒以及一第二執行緒,第一執行緒進行一資料擷取操作,第二執行緒對擷取資料進行一資料處理及輸出操作,此實施例係下列執行步驟係由處理單元直接執行。
當處理單元110欲運行第二執行緒114以執行一資料處理與輸出操作時,先檢查旗標130是否被設定為執行狀態(步驟S302)。處理單元110可透過旗標130來得知第一執行緒112之目前狀態,當旗標130被設定為執行狀態時(例如旗標設為1,亦即步驟S302的是),於是處理單元110暫停運行第二執行緒114,等待旗標130修改標示為休息狀態之後,再運行第二執行緒114,因此第二執行緒114直到第一執行緒112執行完成之後才運行(步驟S304)。
反之,當旗標130被設定為休息狀態時(例如旗標設為0,亦即步驟S302的否),表示第一執行緒112之狀態為休息狀態,處理單元110便運行第二執行緒114。更進一步時,在此步驟中為了確保可準時執行第一執行緒112,處理單元110係運行第二執行緒114至計時器140的第一執行緒112的下次執行時間為止(步驟S306)。在此步驟中,處理單元110可依據旗標130的設定狀態來得知第一執行緒112之目前狀態,並且可透過計時器140來得知下次第一執行緒112的下次執行時間。
由於處理單元110於每次運行第二執行緒114前,會先透過旗標130以及計時器140來得知第一執行緒112之執行狀態,並且只有在第一執行緒112不要求執行時才運行第二執行緒114,因此可確保負責資料擷取操作之第一執行緒112的擷取頻率穩定且不會被中斷。
於一實施例中,本發明可更提供一執行緒管理韌體套件,可用以執行前述第2圖與第3圖的資料擷取操作與資料處理與輸出操作。此執行緒管理韌體套件可適用於任何未支援本案之執行緒管理方法之內嵌式系統。當此執行緒管理套件被安裝在未支援的內嵌式系統中時,可透過註冊第一執行緒、註冊第二執行緒並設定第一執行緒的執行頻率來提供第一執行緒本案之旗標及計時器,以實現前述第2圖與第3圖的資料擷取操作與診斷處理與輸出操作。
於一些實施例中,本發明更提供另一實施例,其包含一種緩衝區管理電路(buffer management hardware)和一外接儲存單元,用以提供更多的緩衝區儲存空間,以解決前述的共用記憶體不足的情形。請參照第4圖。
第4圖顯示依據本發明另一實施例之內嵌式系統100’之示意圖。請同時參考第1圖與第4圖進行說明。第4圖係與第1圖相似,差別在於額外增加了一個可用以管理共用緩衝區的緩衝區管理電路400以及一外接儲存單元430。緩衝區管理電路400至少包括一微控制器(MCU)410、以及一直接記憶體存取控制器(DMA Controller)420,外接儲存單元430例如快閃記憶體(flash memory)、或是原本的儲存裝置20。再另一實施例中,外接儲存單元430亦可和緩衝區管理電路400整合成一硬體套件。其中,緩衝區管理電路400可透過一匯流排500與內嵌式系統100的主機板中的處理單元110以及記憶體120連接,將記憶體120中的共用緩衝區122與外接儲存單元430同步。其中,匯流排500係可為任何常用的匯流排結構,例如PCI、ISA等匯流排。具體來說,微控制器410係為一特定積體電路晶片,可視為將中央處理器、記憶體、定時/計數器、輸入輸出介面等都整合在一塊積體電路晶片上的微型電腦,相較於應用在個人電腦中的通用型微控制器來說,微控制器410可節約硬體成本。微控制器410最大的優點為體積小、整合性高,但儲存量小,輸入輸出介面簡單,功能較低。直接記憶體存取控制器420可執行一直接記憶體存取操作(direct memory access,DMA),允許緩衝區管理電路400與記憶體120之間直接轉移資料,而不需經由處理單元110的參與。在週邊與記憶體之間需要大量資料轉移時,直接記憶體存取操作可不需要中斷服務程式的中斷服務,直接由硬體完成,可節省許多程式執行的時間。其中,直接記憶體存取控制器420可依據共用緩衝區122的使用狀況產生一操作訊號,透過匯流排500對內嵌式系統100中的記憶體120進行直接記憶體存取操作。其中,操作訊號可為一資料取出訊號或一資料存入訊號。微控制器410係耦接至直接記憶體存取控制器420以及外接儲存單元430(例如:快閃記憶體、外接記憶卡或其他可儲存外接裝置等),用以相應直接記憶體存取控制器420產生的操作訊號,對外接儲存單元430進行存取,用以控制外接儲存單元430的存取。當操作訊號為一資料取出訊號時,直接記憶體存取操作係取出共用緩衝區122的資料,而微控制器410將從共用緩衝區122所取出的資料寫入外接儲存單元430。當操作訊號係為一資料存入訊號時,微控制器410從外接儲存單元430中取出資料,而直接記憶體存取操作係將從外接儲存單元430所取出資料寫入共用緩衝區122。其中,共用緩衝區122係與外接儲存單元430同步更新,且微控制器410將記錄關於資料區塊搬移至外接儲存單元430的位置的資訊,以及要從外接儲存單元430的那個位置搬出資料區塊的資訊。
此外,共用緩衝區122可更進一步分為一第一緩衝區以及一第二緩衝區兩個部分,用以分別作為第一執行緒112以及第二執行緒114的緩衝區。在一實施例中,第一緩衝區包括複數區塊且第二緩衝區也包括複數區塊。依據本實施例方法,當共用緩衝區122的使用狀況為第一緩衝區之其中一第一緩衝區指定區塊已滿時,直接記憶體存取控制器420產生資料取出訊號並取出之第一緩衝區之資料,且微控制器410將所取出第一緩衝區之資料寫入至外接儲存單元430,而當共用緩衝區122的使用狀況為第二緩衝區之其中一第二緩衝區指定區塊已空時,直接記憶體存取控制器420產生資料存入訊號,使得微控制器410從外接儲存單元430取出資料,直接記憶體存取控制器420再將從外接儲存單元430取出資料寫入第二緩衝區。具體來說,當處理單元110於第一緩衝區存取中的其中一記憶體區塊已滿(full),會觸發一資料取出訊號通知直接記憶體存取控制器420進行搬移,處理單元110將改寫入下一區塊。此時,直接記憶體存取控制器420透過匯流排500將已滿的記憶體區塊搬移至微控制器410,而微控制器410再將其寫入外接儲存單元430中。當處理單元110於第二緩衝區存取中的其中一記憶體區塊已空(empty)時,會觸發觸發一資料存入訊號通知直接記憶體存取控制器420進行搬移,處理單元110將改讀取下一區塊。此時,直接記憶體存取控制器420透過匯流排500得知記憶體區塊將空,於是通知微控制器410,微控制器410於是從外接儲存單元430中讀出一指定的記憶體區塊,再將其搬移至直接記憶體存取控制器420,直接記憶體存取控制器410再將其透過匯流排500寫回記憶體中。
在另一實施例中,觸發資料取出訊號和資料存入訊號以進行資料搬移,可依據第一緩衝區使用比率和第二緩衝區使用比率來決定。例如,當共用緩衝區中使用狀況為第一緩衝區使用已超過一第一緩衝區指定比率(例如80%)時,直接記憶體存取控制器420產生資料取出訊號並取出第一緩衝區之資料,由微控制器410將所取出第一緩衝區資料寫入外接儲存單元430。當共用緩衝區的使用狀況為第二緩衝區使用已低於一第二緩衝區指定比率(例如50%)時,直接記憶體存取控制器420產生資料存入訊號,微控制器410從外接儲存單元430取出資料,由直接記憶體存取控制器420將外接儲存單元430取出的資料寫入第二緩衝區。資料取出訊號和資料存入訊號的觸發,可由處理單元110或是另設計一獨立於處理單元110之外的硬體和/或韌體元件,來定時偵測和監控第一緩衝區、第二緩衝區的使用比率以決定是否觸發資料取出訊號和資料存入訊號。
於另一實施例中,本發明可更提供一緩衝區管理韌體套件,其具有如第4圖所示之緩衝區管理電路400,可用以執行前述的緩衝區管理操作。此緩衝區管理韌體套件可適用於任何未支援本案之緩衝區管理方法之內嵌式系統。當此緩衝區管理韌體套件被安裝在前述未支援的內嵌式系統中時,可透過匯流排安裝此緩衝區管理套件、設定共用記憶體位址(亦即共用緩衝區的位址)並且可安裝快閃記憶體擴充來實現前述的緩衝區管理操作。
因此,透過本案之內嵌式系統及其相關執行緒與緩衝區管理方法,採用多執行緒處理方式並於負責資料擷取之執行緒中加入計時器及旗標,可確保負責資料擷取之執行緒可優先執行,因此,讀取與處理/寫入不會互相干擾並可提供穩定的高速擷取頻率。此外,透過本案之硬體緩衝區管理電路與共用緩衝區管理方法,採用直接記憶體存取(DMA)快速映射共用記憶體以及獨立微控制器將共用記憶體存放到外接的擴充緩衝空間例如快閃記憶體中,可有效避免記憶體不足的問題。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可以包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可以透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10...裝置
20...儲存裝置
100、100’...內嵌式系統
110...處理單元
112...第一執行緒
114...第二執行緒
120...記憶體
122...共用緩衝區
130...旗標
140...計時器
150...匯流排
S202-S206...步驟
S302-S306...步驟
400...緩衝區管理電路
410...微控制器
420...直接記憶體存取控制器
430...外接儲存單元
500...匯流排
第1圖顯示依據本發明一實施例之內嵌式系統之示意圖。
第2圖顯示依據本發明實施例之內嵌式系統之執行緒管理方法之流程圖,用以執行一資料擷取操作。
第3圖顯示依據本發明另一實施例之內嵌式系統之執行緒管理方法之流程圖,用以執行一診斷處理與輸出操作。
第4圖顯示依據本發明另一實施例之內嵌式系統之示意圖。
10...裝置
20...儲存裝置
100...內嵌式系統
110...處理單元
112...第一執行緒
114...第二執行緒
120...記憶體
122...共用緩衝區
130...旗標
140...計時器
150...匯流排
Claims (15)
- 一種內嵌式系統,包括:一處理單元,同時運行至少一第一執行緒以及一第二執行緒,上述第一執行緒係用以進行一資料擷取操作並具有一旗標,上述第二執行緒係用以對擷取資料進行一資料處理及輸出操作,其中上述旗標係用以標示上述第一執行緒之狀態為一執行狀態和一休息狀態二者其中之一;以及一記憶體,耦接至上述處理單元,用以提供上述第一執行緒以及上述第二執行緒一共用緩衝區;其中,當上述處理單元欲運行上述第二執行緒時,檢查上述旗標,當上述旗標為上述休息狀態時,運行上述第二執行緒,當上述旗標為上述執行狀態時,暫停運行上述第二執行緒。
- 如申請專利範圍第1項所述之內嵌式系統,更包括:一計時器,用以記錄上述第一執行緒之下次執行時間;上述處理單元更用以依據上述計時器所記錄上述第一執行緒之下次執行時間,運行上述第一執行緒且將上述旗標標示為上述執行狀態,而當上述第一執行緒執行完畢時,將上述旗標標示為上述休息狀態並更新上述計時器所記錄之上述第一執行緒之下次執行時間。
- 如申請專利範圍第1項所述之內嵌式系統,其中上述處理單元更用以當上述旗標為上述執行狀態且暫停運行上述第二執行緒時,等待上述旗標修改標示為上述休息狀態之後,再運行上述第二執行緒。
- 如申請專利範圍第2項所述之內嵌式系統,其中當上述旗標標示為上述休息狀態時,上述處理單元運行上述第二執行緒係運行至上述計時器之上述第一執行緒之下次執行時間為止。
- 如申請專利範圍第1項所述之內嵌式系統,更包括:一匯流排;以及一緩衝區管理電路,透過該匯流排連接至上述記憶體以及上述處理單元,用以存取上述共用緩衝區,從上述共用緩衝區取出資料而寫入一外接儲存單元,以及從上述外接儲存單元中取出資料寫入上述共用緩衝區。
- 如申請專利範圍第5項所述之內嵌式系統,其中上述緩衝區管理電路更包括:一直接記憶體存取控制器,用以依據上述共用緩衝區之使用狀況產生一操作訊號,透過上述匯流排對上述共用緩衝區執行一直接記憶體存取操作;以及一微控制器,耦接至上述直接記憶體存取控制器以及上述外接儲存單元,用以相應上述操作訊號,對上述外接儲存單元進行存取;且其中當上述操作訊號為一資料取出訊號時,上述直接記憶體存取操作係取出上述共用緩衝區之資料,而上述微控制器將從上述共用緩衝區所取出之資料寫入上述外接儲存單元;以及,當上述操作訊號係為一資料存入訊號時,上述微控制器從上述外接儲存單元中取出資料,而上述直接記憶體存取操作係將從上述外接儲存單元所取出資料寫入上述共用緩衝區。
- 如申請專利範圍第6項所述之內嵌式系統,其中上述共用緩衝區更分為一第一緩衝區以及一第二緩衝區,分別作為上述第一執行緒以及上述第二執行緒之緩衝區。
- 如申請專利範圍第7項所述之內嵌式系統,其中上述第一緩衝區包括複數區塊,並且當上述共用緩衝區之使用狀況為上述第一緩衝區之其中一第一緩衝區指定區塊已滿時,上述直接記憶體存取控制器產生上述資料取出訊號並取出上述第一緩衝區之資料,且上述微控制器將所取出上述第一緩衝區之資料寫入至上述外接儲存單元;以及上述第二緩衝區包括複數區塊,並且當上述共用緩衝區之使用狀況為上述第二緩衝區之其中一第二緩衝區指定區塊已空時,上述直接記憶體存取控制器產生上述資料存入訊號,上述微控制器從上述外接儲存單元取出資料,且上述直接記憶體存取控制器將從上述外接儲存單元取出資料寫入上述第二緩衝區。
- 如申請專利範圍第7項所述之內嵌式系統,其中當上述共用緩衝區之使用狀況為上述第一緩衝區使用已超過一第一緩衝區指定比率時,上述直接記憶體存取控制器產生上述資料取出訊號並取出上述第一緩衝區之資料,且上述微控制器將所取出上述第一緩衝區之資料寫入至上述外接儲存單元;以及當上述共用緩衝區之使用狀況為上述第二緩衝區使用已低於一第二緩衝區指定比率時,上述直接記憶體存取控制器產生上述資料存入訊號,上述微控制器從上述外接儲存單元取出資料,且上述直接記憶體存取控制器將從上述外接儲存單元取出資料寫入上述第二緩衝區。
- 一種執行緒與緩衝區管理之方法,適用於一內嵌式系統,其中上述內嵌式系統同時運行至少一第一執行緒以及一第二執行緒,上述第一執行緒係用以進行一資料擷取操作,上述第二執行緒係用以對擷取資料進行一資料處理及輸出操作,且提供上述第一執行緒以及上述第二執行緒一共用緩衝區,上述方法包括下列步驟:提供上述第一執行緒一旗標,用以標示上述第一執行緒之狀態為一執行狀態或一休息狀態二者其中之一;以及當欲運行上述第二執行緒時,檢查上述旗標,當上述旗標為上述休息狀態時,運行上述第二執行緒,而當上述旗標為上述執行狀態時,暫停運行上述第二執行緒。
- 如申請專利範圍第10項所述之執行緒與緩衝區管理之方法,更包括:提供一計時器,用以記錄上述第一執行緒之下次執行時間;依據上述計時器所紀錄上述第一執行緒之下次執行時間,運行上述第一執行緒且將上述旗標標示為上述執行狀態;以及於上述第一執行緒執行完畢時,將上述旗標標示為上述休息狀態並更新上述計時器所紀錄上述第一執行緒之下次執行時間。
- 如申請專利範圍第10項所述之執行緒與緩衝區管理之方法,其中檢查上述旗標以決定是否運行上述第二執行緒更包括:當上述旗標為上述執行狀態且暫停運行上述第二執行緒時,等待上述旗標修改標示為上述休息狀態之後,再運行上述第二執行緒。
- 如申請專利範圍第11項所述之執行緒與緩衝區管理之方法,其中檢查上述旗標以決定是否運行上述第二執行緒更包括:當上述旗標標示為上述休息狀態時,運行上述第二執行緒係運行至上述計時器之上述第一執行緒之下次執行時間為止。
- 如申請專利範圍第10項所述之執行緒與緩衝區管理之方法,其中該內嵌式系統更包括一緩衝區管理電路以及一外接儲存單元,且該方法更包括下列步驟:上述緩衝區管理電路存取上述共用緩衝區,從上述共用緩衝區取出資料而寫入一外接儲存單元,以及從上述外接儲存單元中取出資料寫入上述共用緩衝區係。
- 如申請專利範圍第14項所述之執行緒與緩衝區管理之方法,其中上述緩衝區管理電路存取上述共用緩衝區更包括以下步驟:依據上述共用緩衝區之使用狀況產生一操作訊號,並透過一匯流排對上述共用緩衝區執行一直接記憶體存取操作,從而相應上述操作訊號,對上述外接儲存單元進行存取;其中當上述操作訊號為一資料取出訊號時,上述直接記憶體存取操作係取出上述共用緩衝區之資料,並透過上述匯流排將從上述共用緩衝區所取出之資料寫入上述外接儲存單元;以及,當上述操作訊號係為一資料存入訊號時,從上述外接儲存單元中取出資料,而上述直接記憶體存取操作係取出上述共用緩衝區之資料,並將從上述外接儲存單元所取出資料寫入上述共用緩衝區。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100144113A TWI439925B (zh) | 2011-12-01 | 2011-12-01 | 內嵌式系統及其執行緒與緩衝區管理方法 |
CN2011104140996A CN103136038A (zh) | 2011-12-01 | 2011-12-13 | 嵌入式系统及其线程与缓冲区管理方法 |
US13/550,223 US9239742B2 (en) | 2011-12-01 | 2012-07-16 | Embedded systems and methods for threads and buffer management thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100144113A TWI439925B (zh) | 2011-12-01 | 2011-12-01 | 內嵌式系統及其執行緒與緩衝區管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201324337A true TW201324337A (zh) | 2013-06-16 |
TWI439925B TWI439925B (zh) | 2014-06-01 |
Family
ID=48495902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100144113A TWI439925B (zh) | 2011-12-01 | 2011-12-01 | 內嵌式系統及其執行緒與緩衝區管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9239742B2 (zh) |
CN (1) | CN103136038A (zh) |
TW (1) | TWI439925B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9645738B2 (en) * | 2012-08-09 | 2017-05-09 | Spectra Logic Corporation | Direct memory access of remote data |
US20170031724A1 (en) * | 2015-07-31 | 2017-02-02 | Futurewei Technologies, Inc. | Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks |
CN105447810B (zh) * | 2015-11-17 | 2018-08-24 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
JP7046862B2 (ja) | 2019-03-28 | 2022-04-04 | 株式会社日立製作所 | アプリケーション実行装置およびアプリケーション実行方法 |
US11086672B2 (en) * | 2019-05-07 | 2021-08-10 | International Business Machines Corporation | Low latency management of processor core wait state |
CN113438362B (zh) * | 2020-03-04 | 2022-12-09 | 京东方科技集团股份有限公司 | 一种终端定时开机的方法、终端及存储介质 |
CN113076069A (zh) * | 2021-04-29 | 2021-07-06 | 平安科技(深圳)有限公司 | 双缓存方法、装置、电子设备及计算机可读存储介质 |
CN113672624A (zh) * | 2021-08-25 | 2021-11-19 | 中汽创智科技有限公司 | 一种数据处理方法、系统及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272703B2 (en) * | 1997-08-01 | 2007-09-18 | Micron Technology, Inc. | Program controlled embedded-DRAM-DSP architecture and methods |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US8756605B2 (en) * | 2004-12-17 | 2014-06-17 | Oracle America, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
WO2008155797A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算装置 |
CN101196832B (zh) * | 2007-12-29 | 2012-12-19 | 北京航空航天大学 | 一种面向照明异构设备的资源代理器 |
CN100562854C (zh) * | 2008-03-11 | 2009-11-25 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
JP5379122B2 (ja) * | 2008-06-19 | 2013-12-25 | パナソニック株式会社 | マルチプロセッサ |
CN102047224B (zh) * | 2008-06-25 | 2013-10-02 | 松下电器产业株式会社 | 信息处理装置、信息处理方法及信息处理程序 |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
US20130191846A1 (en) * | 2010-10-12 | 2013-07-25 | Nec Corporation | Data processing method, data processing device, and non-transitory computer readable medium storing data processing program |
CN102110019B (zh) * | 2010-12-31 | 2013-01-30 | 北京航空航天大学 | 一种基于众核处理器和分区结构的事务存储方法 |
-
2011
- 2011-12-01 TW TW100144113A patent/TWI439925B/zh active
- 2011-12-13 CN CN2011104140996A patent/CN103136038A/zh active Pending
-
2012
- 2012-07-16 US US13/550,223 patent/US9239742B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20130145372A1 (en) | 2013-06-06 |
TWI439925B (zh) | 2014-06-01 |
US9239742B2 (en) | 2016-01-19 |
CN103136038A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI439925B (zh) | 內嵌式系統及其執行緒與緩衝區管理方法 | |
US10089014B2 (en) | Memory-sampling based migrating page cache | |
TWI397009B (zh) | 基本輸入輸出系統的資料處理裝置 | |
US8713370B2 (en) | Non-intrusive processor tracing | |
US8510518B2 (en) | Bandwidth adaptive memory compression | |
TWI335512B (en) | Technique for using memory attributes | |
US20060005083A1 (en) | Performance count tracing | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
TWI497278B (zh) | 微處理器、死結或活結狀態解除方法以及其電腦程式產品 | |
TW201322124A (zh) | 資料傳輸裝置及多個指令的整合方法 | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
WO2020191549A1 (zh) | 一种soc芯片、确定热点函数的方法及终端设备 | |
US10216634B2 (en) | Cache directory processing method for multi-core processor system, and directory controller | |
CN106469119A (zh) | 一种基于nvdimm的数据写缓存方法及其装置 | |
US9342472B2 (en) | PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units | |
KR101735590B1 (ko) | 트랜잭션 추출 장치 및 방법 | |
US8719542B2 (en) | Data transfer apparatus, data transfer method and processor | |
TWI779338B (zh) | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 | |
US20130227221A1 (en) | Cache access analyzer | |
US9251023B2 (en) | Implementing automated memory address recording in constrained random test generation for verification of processor hardware designs | |
US9734078B2 (en) | Resetting memory locks in a transactional memory system | |
CN105453062A (zh) | 实现硬件自动设备操作启动器 | |
TWI840795B (zh) | 主機系統及其操作方法 | |
JP2012063875A (ja) | データ記憶装置、コマンド制御装置及び電子機器 | |
TWI521349B (zh) | 攜帶式電子裝置資料寫入方法 |