TWI748513B - 資料處理方法、系統、電子裝置及存儲介質 - Google Patents
資料處理方法、系統、電子裝置及存儲介質 Download PDFInfo
- Publication number
- TWI748513B TWI748513B TW109119874A TW109119874A TWI748513B TW I748513 B TWI748513 B TW I748513B TW 109119874 A TW109119874 A TW 109119874A TW 109119874 A TW109119874 A TW 109119874A TW I748513 B TWI748513 B TW I748513B
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- performance
- memory
- chip memory
- user
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明提供一種資料處理方法,包括選擇下一個執行的執行緒;判斷選擇的執行緒是否為高效能執行緒;當選擇的執行緒是高效能執行緒時,確認晶片內記憶體的使用者是否為所選擇的高效能執行緒;若否,則備份晶片內記憶體中的內容至使用者對應的執行緒的堆疊記憶體中;備份選擇的執行緒的堆疊記憶體中的內容至晶片內記憶體中;更新晶片內記憶體的使用者為選擇的執行緒;將晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及執行選擇的執行緒。本發明還提供一種資料處理系統、電子裝置及存儲介質。
Description
本發明涉及電腦技術領域,具體涉及一種資料處理方法、系統、電子裝置及存儲介質。
在許多(如果不是大多數)應用微控制器必須提供任務切換和多執行緒功能。某些時間緊迫事件(例如,計時器,通訊連接埠或外部電路的中斷)會中斷微控制器中當時使用的微處理器所做的任何事情,並重新定向微處理器以執行更高優先順序的任務。現有的微控制器在即時任務切換和多執行緒處理時,容易出現處理速度變慢的情況。
鑒於以上問題,本發明提出一種資料處理方法、系統、電子裝置及存儲介質,以提高資料處理的速度。
本申請的第一方面提供一種資料處理方法,所述方法包括:選擇下一個執行的執行緒;判斷選擇的執行緒是否為高效能執行緒;當所述選擇的執行緒是高效能執行緒時,確認晶片內記憶體的使用者是否為所選擇的高效能執行緒;
當所述晶片內記憶體的使用者不是所述選擇的高效能執行緒時,備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中;備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中;更新所述晶片內記憶體的使用者為所述選擇的執行緒;將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及執行所述選擇的執行緒。
優選地,所述方法還包括:當所述選擇的執行緒不是高效能執行緒時,將所述選擇的執行緒的堆疊記憶體中的內容存入所述CPU暫存器中完成上下文切換;執行所述選擇的執行緒。
優選地,所述方法還包括:當所述晶片內記憶體的使用者是所述選擇的高效能執行緒時,將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及執行所述選擇的執行緒。
優選地,在選擇下一個執行的執行緒後,所述方法還包括:判斷當前執行的執行緒是否為最高優先順序執行緒;若當前執行的執行緒不是最高優先順序執行緒,存入當前CPU暫存器中的內容至所述當前執行的執行緒的堆疊記憶體中;若當前執行的執行緒是所述最高優先順序執行緒,繼續執行當前的執行緒。
優選地,所述判斷選擇的執行緒是否為高效能執行緒包括:通過查看所述選擇的執行緒是否存在標記來確認所述下一個執行的執行緒是否為高效能執行緒;當所述選擇的執行緒中存在標記時,確認下一個執行的執行緒是高效能執行緒;
當所述選擇的執行緒中不存在標記時,確認下一個執行的執行緒不是高效能執行緒。
優選地,通過更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數,以更新所述晶片內記憶體的使用者為所述選擇的執行緒。
優選地,所述高效能執行緒為在執行緒活動期間需要加速區域變數訪問的執行緒。
本申請的第二方面提供一種資料處理系統,所述系統包括:選擇模組,用於選擇下一個執行的執行緒;判斷模組,用於判斷選擇的執行緒是否為高效能執行緒;所述判斷模組,還用於當所述選擇的執行緒是高效能執行緒時,確認晶片內記憶體的使用者是否為所選擇的高效能執行緒;備份模組,用於當所述晶片內記憶體的使用者不是所述選擇的高效能執行緒時,備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中;所述備份模組,還用於備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中;更新模組,用於更新所述晶片內記憶體的使用者為所述選擇的執行緒;處理模組,用於將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及所述處理模組,還用於執行所述選擇的執行緒。
本發明第三方面提供一種電子裝置,所述電子裝置包括:處理器;以及記憶體,所述記憶體中存儲有多個程式模組,所述多個程式模組由所述處理器載入並執行如上所述的資料處理方法。
本發明第四方面提供一種電腦可讀存儲介質,其上存儲有電腦程式,所述電腦程式被處理器執行時實現如前所述的資料處理方法。
本發明提供的資料處理方法、系統、裝置及存儲介質,本申請提供的資料處理方法,可以根據執行緒的類型來選擇是否通過所述晶片內記憶體來執行執行緒之間的上下文切換。當執行緒的類型為高效能執行緒時,通過所述晶片內記憶體執行所述上下文切換。由於所述晶片內記憶體具有高速處理的特點,從而實現加速資料處理的效果。
20:資料處理系統
201:選擇模組
202:判斷模組
203:備份模組
204:更新模組
205:處理模組
1:電子裝置
11:記憶體
12:處理器
13:電腦程式
圖1是本發明一實施例所提供的資料處理方法的流程示意圖。
圖2是本發明一實施例所提供的瑕疵等級判定系統示意圖。
圖3是本發明一實施方式提供的電子裝置架構示意圖。
為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施例對本發明進行詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。
在下面的描述中闡述了很多具體細節以便於充分理解本發明,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。本文中在本發明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在於限制本發明。
請參閱圖1,圖1為本發明一個實施例提供的資料處理方法的流程示意圖。根據不同的需求,所述流程圖中步驟的順序可以改變,某些步驟可以省略。為了便於說明,僅示出了與本發明實施例相關的部分。本發明實施例的資料處理方法應用在電子裝置中。所述對於需要進智慧交互的電子設備,可以直接在電子裝置上集成本發明的方法所提供的資料處理功能,或者安裝用於實
現本發明的資料處理方法的用戶端。再如,本發明所提供的資料處理方法還可以以軟體開發套件(Software Development Kit,SDK)的形式運行在伺服器等設備上,以SDK的形式提供資料處理功能的介面,電子裝置或其他設備通過提供的介面即可實現資料處理功能。所述資料處理方法包括以下步驟。
步驟S1、選擇下一個執行的執行緒。
在本實施例中,當中斷服務結束時或系統調用時,啟動調度器來調度執行緒執行任務,所述調度器選擇下一個執行的執行緒。
步驟S2、判斷當前執行的執行緒是否為最高優先順序執行緒。當所述當前執行的執行緒為最高優先順序執行緒時,流程進入步驟S3;當所述當前執行的執行緒不是最高優先順序執行緒時,流程進入步驟S4。
在調度器調度執行緒的過程中,可以根據執行緒的優先順序來選擇下一個執行的執行緒。所述優先順序作為可供調度器調度使用的參數。在本實施方式中,通過判斷當前執行的執行緒是否為最高優先順序執行緒,來確認當前執行的執行緒是否為選擇的執行緒。若當前執行的執行緒為最高優先順序執行緒時,確認當前執行的執行緒是所述選擇的執行緒,流程進入步驟S3;若當前執行的執行緒不是最高優先順序執行緒時,確認當前執行的執行緒不是所述選擇的執行緒,流程進入步驟S4。
步驟S3、繼續執行當前的執行緒。
在本實施方式中,若當前執行的執行緒不是最高優先順序執行緒時,繼續執行當前的執行緒。
步驟S4、存入當前CPU暫存器中的內容至所述當前執行的執行緒的堆疊記憶體中。
由於可能當前執行的執行緒的任務並沒有執行完畢,所以在後文進行切換時需要保存執行緒的運行狀態,以便下次重新切換回來時能夠繼續切
換之前的狀態運行。舉個簡單的例子:比如一個執行緒A正在讀取一個檔的內容,正讀到檔的一半,此時需要暫停執行緒A,轉去執行執行緒B,當再次切換回來執行執行緒A的時候,我們不希望執行緒A又從檔的開頭來讀取。因此,需要保存當前執行的執行緒的內容。
當執行緒在上下文切換的過程中需要保存當前執行緒Id、執行緒狀態、堆疊、暫存器狀態等資訊。其中暫存器主要包括SP、PC和EAX等暫存器,其主要功能如下:SP為堆疊指標,指向當前棧的棧頂地址;PC為程式計數器,存儲下一條將要執行的指令;EAX為累加暫存器,用於加法乘法的缺省暫存器。
在本實施方式中,當前CPU暫存器中的內容包括堆疊指標和暫存器狀態。
步驟S5、判斷選擇的執行緒是否為高效能執行緒。當所述選擇的執行緒不是高效能執行緒時,進入步驟S6;當所述選擇的執行緒是高效能執行緒時,進入步驟S8。
在本實施方式中,一個任務可以包括多個執行緒,所述多個執行緒中包括多個高效能執行緒和非高效能執行緒。所述高效能執行緒是指在執行緒活動期間需要加速區域變數訪問的執行緒。開發人員需要在執行緒初始化期間定義哪些執行緒是高效能執行緒。具體地,在創建執行緒時,根據執行緒執行內容確認創建的執行緒是否為高效能執行緒。當確認創建的執行緒為高效能執行緒時,標記創建的執行緒為高效能執行緒,並將標記後的高效能執行緒添加至執行緒列表;當確認創建的執行緒不是高效能執行緒時,添加創建的執行緒至執行緒列表。
在本實施方式中,通過查看所述選擇的執行緒是否存在標記來確認所述下一個執行的執行緒是否為高效能執行緒。當所述選擇的執行緒中存在標記時,確認下一個執行的執行緒是高效能執行緒;當所述選擇的執行緒中不
存在標記時,確認下一個執行的執行緒不是高效能執行緒。
步驟S6、將所述選擇的執行緒的堆疊記憶體中的內容存入所述CPU暫存器中。
當所述選擇的執行緒不是高效能執行緒時,將所述選擇的執行緒的內容(如PC、SP和其他暫存器等)從所述選擇的執行緒的堆疊記憶體中複製到所述CPU暫存器中,以完成上下文切換。
步驟S7、執行所述選擇的執行緒。
在本實施方式中,當確認選擇的執行緒不是高效能執行緒時,完成當前的執行緒與選擇的執行緒之間的上下文切換後,執行所述選擇的執行緒。
步驟S8、確認所述晶片內記憶體的使用者是否為所選擇的高效能執行緒。當所述晶片內記憶體的使用者是所選擇的高效能執行緒時,流程進入步驟S9;當所述晶片內記憶體的使用者不是所選擇的高效能執行緒時,流程進入步驟S10。
在本實施方式中,當所述選擇的執行緒為高效能執行緒時,需要通過晶片內記憶體對選擇的執行緒進行上下文切換。但是在切換前,需要確認所述晶片內記憶體的使用者是否為所選擇的高效能執行緒。
步驟S9、將晶片內記憶體中的內容存入所述CPU暫存器中,之後流程進入步驟S7。
在本實施方式中,當所述晶片內記憶體的使用者是所選擇的高效能執行緒時,直接將所述晶片內記憶體中的內容存入CPU暫存器中,以完成所述上下文切換,之後執行所選擇的高效能執行緒。
步驟S10、備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中。
在本實施方式中,當所述晶片內記憶體的使用者不是所選擇的高
效能執行緒時,需要將所述晶片內記憶體中的內容備份至當前晶片內記憶體的使用者對應的執行緒的堆疊記憶體中。需要說明的是,每一個執行緒都有自身的堆疊記憶體。為了保證資料不丟失,需要先備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中。
步驟S11、備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中。
在本實施方式中,所述晶片內記憶體具有小而高速的特點,可以作為多個執行緒共用的堆疊記憶體。當所述選擇的執行緒為高效能執行緒時,需要所述晶片內記憶體來執行,可以加速資料存取。將晶片內記憶體中的內容備份至所述使用者對應的執行緒的堆疊記憶體中後,將選擇的執行緒的內容載入到所述晶片內記憶體中,以通過所述晶片內記憶體處理所述選擇的執行緒。
步驟S12、更新所述晶片內記憶體的使用者為所述選擇的執行緒,之後流程進入步驟S9。
在本實施方式中,在備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中後,還需要更新所述晶片內記憶體的使用者為所述選擇的執行緒。再將所述晶片內記憶體中的內容存入CPU暫存器中以完成上下文切換,之後再執行所述選擇的執行緒。
在本實施方式中,可以通過更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數。
在本實施例中,所述晶片內記憶體包括佔用參數,所述佔用參數與執行緒對應。當載入所述選擇的執行緒的內容至所述晶片內記憶體中後,更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數,以確認所述晶片內記憶體被所述選擇的執行緒佔用。
舉例而言,若當前執行的執行緒C為非高效能執行緒,而下一個執
行的執行緒N為高效能執行緒時,先確認晶片內記憶體中當前的使用者P是否為高效能執行緒。若所述晶片內記憶體中當前的使用者P是高效能執行緒時,則需要將所述晶片內記憶體中的內容存入CPU暫存器以完成上下文切換。若所述晶片內記憶體中當前的使用者P不是高效能執行緒時,需要先將所述晶片內記憶體中的內容備份至所述使用者P對應的執行緒的堆疊記憶體中。再將執行緒N的堆疊記憶體中的內容備份到所述晶片內記憶體中,並更新所述晶片內記憶體的使用者為所述執行緒N,之後將所述晶片內記憶體中的內容存入CPU暫存器中以完成上下文切換。如此,可以根據執行緒的類型來選擇是否通過所述晶片內記憶體來執行。例如,當執行緒的類型為高效能執行緒時,通過所述晶片內記憶體來執行。由於所述晶片內記憶體具有高速處理的特點,從而實現加速資料處理的效果。
圖1詳細介紹了本發明的資料處理方法,通過所述方法,能夠提高資料處理速度。下面結合圖2和圖3,對實現所述資料處理方法的軟體系統的功能模組以及硬體裝置架構進行介紹。應所述瞭解,所述實施例僅為說明之用,在專利申請範圍上並不受此結構的限制。
圖2為本發明一實施方式提供的資料處理系統的功能模組圖。
在一些實施方式中,所述資料處理系統20可以包括多個由程式碼段所組成的功能模組。所述資料處理系統20中的各個程式段的程式碼可以存儲於電子裝置的記憶體中,並由電子裝置中的至少一個處理器所執行,以實現快速處理資料的功能。
參考圖2,本實施方式中,資料處理系統20根據其所執行的功能,可以被劃分為多個功能模組,所述各個功能模組用於執行圖1對應實施方式中的各個步驟,以實現加速資料處理的功能。本實施方式中,所述資料處理系統20的功能模組包括:選擇模組201、判斷模組202、備份模組203、更新模組204和
處理模組205。各個功能模組的功能將在下面的實施例中進行詳述。
所述選擇模組201用於選擇下一個執行的執行緒。
在本實施例中,當中斷服務結束時或系統調用時,啟動調度器來調度執行緒執行任務,所述調度器選擇下一個執行的執行緒。
所述判斷模組202用於判斷當前執行的執行緒是否為最高優先順序執行緒。
在調度器調度執行緒的過程中,可以根據執行緒的優先順序來選擇下一個執行的執行緒。所述優先順序作為可供調度器調度使用的參數。在本實施方式中,通過判斷當前執行的執行緒是否為最高優先順序執行緒,來確認當前執行的執行緒是否為選擇的執行緒。若當前執行的執行緒為最高優先順序執行緒時,確認當前執行的執行緒是所述選擇的執行緒;若當前執行的執行緒不是最高優先順序執行緒時,確認當前執行的執行緒不是所述選擇的執行緒。
處理模組205用於繼續執行當前的執行緒。
在本實施方式中,若當前執行的執行緒不是最高優先順序執行緒時,繼續執行當前的執行緒。
處理模組205還用於存入當前CPU暫存器中的內容至所述當前執行的執行緒的堆疊記憶體中。
由於可能當前執行的執行緒的任務並沒有執行完畢,所以在後文進行切換時需要保存執行緒的運行狀態,以便下次重新切換回來時能夠繼續切換之前的狀態運行。舉個簡單的例子:比如一個執行緒A正在讀取一個檔的內容,正讀到檔的一半,此時需要暫停執行緒A,轉去執行執行緒B,當再次切換回來執行執行緒A的時候,我們不希望執行緒A又從檔的開頭來讀取。因此,需要保存當前執行的執行緒的內容。
當執行緒在上下文切換的過程中需要保存當前執行緒Id、執行緒狀
態、堆疊、暫存器狀態等資訊。其中暫存器主要包括SP、PC和EAX等暫存器,其主要功能如下:SP為堆疊指標,指向當前棧的棧頂地址;PC為程式計數器,存儲下一條將要執行的指令;EAX為累加暫存器,用於加法乘法的缺省暫存器。
在本實施方式中,當前CPU暫存器中的內容包括堆疊指標和暫存器狀態。
判斷模組202用於判斷選擇的執行緒是否為高效能執行緒。
在本實施方式中,一個任務可以包括多個執行緒,所述多個執行緒中包括多個高效能執行緒和非高效能執行緒。所述高效能執行緒是指在執行緒活動期間需要加速區域變數訪問的執行緒。開發人員需要在執行緒初始化期間定義哪些執行緒是高效能執行緒。具體地,在創建執行緒時,根據執行緒執行內容確認創建的執行緒是否為高效能執行緒。當確認創建的執行緒為高效能執行緒時,標記創建的執行緒為高效能執行緒,並將標記後的高效能執行緒添加至執行緒列表;當確認創建的執行緒不是高效能執行緒時,添加創建的執行緒至執行緒列表。
在本實施方式中,通過查看所述選擇的執行緒是否存在標記來確認所述下一個執行的執行緒是否為高效能執行緒。當所述選擇的執行緒中存在標記時,確認下一個執行的執行緒是高效能執行緒;當所述選擇的執行緒中不存在標記時,確認下一個執行的執行緒不是高效能執行緒。
所述處理模組205還用於將所述選擇的執行緒的堆疊記憶體中的內容存入所述CPU暫存器中。
當所述選擇的執行緒不是高效能執行緒時,將所述選擇的執行緒的內容(如PC、SP和其他暫存器等)從所述選擇的執行緒的堆疊記憶體中複製到所述CPU暫存器中,以完成上下文切換。
所述處理模組205還用於執行所述選擇的執行緒。
在本實施方式中,當確認選擇的執行緒不是高效能執行緒時,完成當前的執行緒與選擇的執行緒之間的上下文切換後,執行所述選擇的執行緒。
所述判斷模組202還用於確認所述晶片內記憶體的使用者是否為所選擇的高效能執行緒。
在本實施方式中,當所述選擇的執行緒為高效能執行緒時,需要通過晶片內記憶體對選擇的執行緒進行上下文切換。但是在切換前,需要確認所述晶片內記憶體的使用者是否為所選擇的高效能執行緒。
所述處理模組205還用於將晶片內記憶體中的內容存入所述CPU暫存器中。
在本實施方式中,當所述晶片內記憶體的使用者是所選擇的高效能執行緒時,直接將所述晶片內記憶體中的內容存入CPU暫存器中,以完成所述上下文切換,之後執行所選擇的高效能執行緒。
所述備份模組203用於備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中。
在本實施方式中,當所述晶片內記憶體的使用者不是所選擇的高效能執行緒時,需要將所述晶片內記憶體中的內容備份至當前晶片內記憶體的使用者對應的執行緒的堆疊記憶體中。需要說明的是,每一個執行緒都有自身的堆疊記憶體。為了保證資料不丟失,需要先備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中。
所述備份模組203用於備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中。
在本實施方式中,所述晶片內記憶體具有小而高速的特點,可以作為多個執行緒共用的堆疊記憶體。當所述選擇的執行緒為高效能執行緒時,需要所述晶片內記憶體來執行,可以加速資料存取。將晶片內記憶體中的內容
備份至所述使用者對應的執行緒的堆疊記憶體中後,將選擇的執行緒的內容載入到所述晶片內記憶體中,以通過所述晶片內記憶體處理所述選擇的執行緒。
所述更新模組204用於更新所述晶片內記憶體的使用者為所述選擇的執行緒。
在本實施方式中,在備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中後,還需要更新所述晶片內記憶體的使用者為所述選擇的執行緒。再將所述晶片內記憶體中的內容存入CPU暫存器中以完成上下文切換,之後再執行所述選擇的執行緒。
在本實施方式中,可以通過更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數。
在本實施例中,所述晶片內記憶體包括佔用參數,所述佔用參數與執行緒對應。當載入所述選擇的執行緒的內容至所述晶片內記憶體中後,更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數,以確認所述晶片內記憶體被所述選擇的執行緒佔用。
圖3為本發明一實施方式提供的電子裝置的功能模組示意圖。所述電子裝置1包括記憶體11、處理器12以及存儲在所述記憶體11中並可在所述處理器12上運行的電腦程式13,例如資料處理的程式。
在本實施方式中,所述電子裝置1可以是但不限於智慧手機、平板電腦、電腦設備、伺服器等。
所述處理器12執行所述電腦程式13時實現所述方法實施例中資料處理方法的步驟。或者,所述處理器12執行所述電腦程式13實現所述系統實施例中各模組/單元的功能。
示例性的,所述電腦程式13可以被分割成一個或多個模組/單元,所述一個或者多個模組/單元被存儲在所述記憶體11中,並由所述處理器12執行,
以完成本發明。所述一個或多個模組/單元可以是能夠完成特定功能的一系列電腦程式指令段,所述指令段用於描述所述電腦程式13在所述電子裝置1中的執行過程。例如,所述電腦程式13可以被分割成圖2中的模組201-205。
所述選擇模組201用於選擇下一個執行的執行緒;所述判斷模組202用於判斷選擇的執行緒是否為高效能執行緒;所述判斷模組,還用於當所述選擇的執行緒是高效能執行緒時,確認晶片內記憶體的使用者是否為所選擇的高效能執行緒;所述備份模組203用於當所述晶片內記憶體的使用者不是所述選擇的高效能執行緒時,備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中;所述備份模組203還用於備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中;所述更新模組204用於更新所述晶片內記憶體的使用者為所述選擇的執行緒;所述處理模組205用於將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及所述處理模組205還用於執行所述選擇的執行緒。
本領域技術人員可以理解,所述示意圖3僅僅是電子裝置1的示例,並不構成對電子裝置1的限定,電子裝置1可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如所述電子裝置1還可以包括輸入輸出設備等。
所稱處理器12可以是中央處理單元(Central Processing Unit,CPU),還可以包括其他通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘
陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者所述處理器也可以是任何常規的處理器等,所述處理器12是所述電子裝置1的控制中心,利用各種介面和線路連接整個電子裝置1的各個部分。
所述記憶體11可用於存儲所述電腦程式13和/或模組/單元,所述處理器12通過運行或執行存儲在所述記憶體11內的電腦程式和/或模組/單元,以及調用存儲在記憶體11內的資料,實現所述電子裝置1的各種功能。記憶體11可以包括外部存儲介質,也可以包括記憶體。此外,記憶體11可以包括高速隨機存取記憶體,還可以包括非易失性記憶體,例如硬碟、記憶體、插接式硬碟,智慧存儲卡(Smart Media Card,SMC),安全數位(Secure Digital,SD)卡,快閃記憶體卡(Flash Card)、至少一個磁碟記憶體件、快閃記憶體器件、或其他易失性固態記憶體件。
所述電子裝置1集成的模組/單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本發明實現所述實施例方法中的全部或部分流程,也可以通過電腦程式來指令相關的硬體來完成,所述的電腦程式可存儲於一電腦可讀存儲介質中,所述電腦程式在被處理器執行時,可實現所述各個方法實施例的步驟。需要說明的是,所述電腦可讀介質包含的內容可以根據司法管轄區內立法和專利實踐的要求進行適當的增減,例如在某些司法管轄區,根據立法和專利實踐,電腦可讀介質不包括電載波信號和電信信號。
最後應說明的是,以上實施例僅用以說明本發明的技術方案而非限制,儘管參照較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換,而不脫離本發明技術方案的精神和範圍。
Claims (9)
- 一種資料處理方法,所述方法包括:選擇下一個執行的執行緒;判斷選擇的執行緒是否為高效能執行緒,包括:藉由查看所述選擇的執行緒是否存在標記來確認所述下一個執行的執行緒是否為高效能執行緒,其中標記後的高效能執行緒存儲在執行緒列表;當所述選擇的執行緒中存在標記時,確認所述下一個執行的執行緒是高效能執行緒;當所述選擇的執行緒中不存在標記時,確認所述下一個執行的執行緒不是高效能執行緒;當所述選擇的執行緒是高效能執行緒時,確認晶片內記憶體的使用者是否為所選擇的高效能執行緒;當所述晶片內記憶體的使用者不是所述選擇的高效能執行緒時,備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中;備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中;更新所述晶片內記憶體的使用者為所述選擇的執行緒;將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及執行所述選擇的執行緒。
- 如請求項1所述之資料處理方法,其中,所述方法還包括:當所述選擇的執行緒不是高效能執行緒時,將所述選擇的執行緒的堆疊記憶體中的內容存入所述CPU暫存器中完成上下文切換;執行所述選擇的執行緒。
- 如請求項2所述之資料處理方法,其中,所述方法還包括:當所述晶片內記憶體的使用者是所述選擇的高效能執行緒時,將所述晶片 內記憶體中的內容存入CPU暫存器中完成上下文切換;及執行所述選擇的執行緒。
- 如請求項1所述之資料處理方法,其中,在選擇下一個執行的執行緒後,所述方法還包括:判斷當前執行的執行緒是否為最高優先順序執行緒;若所述當前執行的執行緒不是最高優先順序執行緒,將當前所述CPU暫存器中的內容存入至所述當前執行的執行緒的堆疊記憶體中;若所述當前執行的執行緒是所述最高優先順序執行緒,繼續執行所述當前執行的執行緒。
- 如請求項1所述之資料處理方法,其中,通過更新所述晶片內記憶體的佔用參數為所述選擇的執行緒對應的參數,以更新所述晶片內記憶體的使用者為所述選擇的執行緒。
- 如請求項1所述之資料處理方法,其中,所述高效能執行緒為在執行緒活動期間需要加速區域變數訪問的執行緒。
- 一種資料處理系統,所述系統包括:選擇模組,用於選擇下一個執行的執行緒;判斷模組,用於判斷選擇的執行緒是否為高效能執行緒,包括:藉由查看所述選擇的執行緒是否存在標記來確認所述下一個執行的執行緒是否為高效能執行緒,其中標記後的高效能執行緒存儲在執行緒列表;當所述選擇的執行緒中存在標記時,確認下一個執行的執行緒是高效能執行緒;當所述選擇的執行緒中不存在標記時,確認下一個執行的執行緒不是高效能執行緒;所述判斷模組,還用於當所述選擇的執行緒是高效能執行緒時,確認晶片 內記憶體的使用者是否為所選擇的高效能執行緒;備份模組,用於當所述晶片內記憶體的使用者不是所述選擇的高效能執行緒時,備份所述晶片內記憶體中的內容至所述使用者對應的執行緒的堆疊記憶體中;所述備份模組,還用於備份所述選擇的執行緒的堆疊記憶體中的內容至所述晶片內記憶體中;更新模組,用於更新所述晶片內記憶體的使用者為所述選擇的執行緒;處理模組,用於將所述晶片內記憶體中的內容存入CPU暫存器中完成上下文切換;及所述處理模組,還用於執行所述選擇的執行緒。
- 一種電子裝置,其中,所述電子裝置包括:處理器;以及記憶體,所述記憶體中存儲有多個程式模組,所述多個程式模組由所述處理器載入並執行如請求項1至請求項6中任意一項所述的資料處理方法。
- 一種電腦可讀取儲存媒體,其上存儲有電腦程式,其中,所述電腦程式被處理器執行時實現如請求項1至請求項6中任意一項所述的資料處理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109119874A TWI748513B (zh) | 2020-06-12 | 2020-06-12 | 資料處理方法、系統、電子裝置及存儲介質 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109119874A TWI748513B (zh) | 2020-06-12 | 2020-06-12 | 資料處理方法、系統、電子裝置及存儲介質 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI748513B true TWI748513B (zh) | 2021-12-01 |
TW202147107A TW202147107A (zh) | 2021-12-16 |
Family
ID=80680834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109119874A TWI748513B (zh) | 2020-06-12 | 2020-06-12 | 資料處理方法、系統、電子裝置及存儲介質 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI748513B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI544409B (zh) * | 2014-07-21 | 2016-08-01 | 英特爾股份有限公司 | 執行緒暫停處理器、方法、系統與指令 |
TW201823971A (zh) * | 2016-12-12 | 2018-07-01 | 美商英特爾股份有限公司 | 用於處理器架構的設備及方法 |
US10209998B2 (en) * | 2016-06-17 | 2019-02-19 | Via Alliance Semiconductor Co., Ltd. | Multi-threading processor and a scheduling method thereof |
US10467053B2 (en) * | 2012-10-17 | 2019-11-05 | Renesas Electronics Corporation | Multi-thread processor with rescheduling when threads are nondispatchable |
-
2020
- 2020-06-12 TW TW109119874A patent/TWI748513B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467053B2 (en) * | 2012-10-17 | 2019-11-05 | Renesas Electronics Corporation | Multi-thread processor with rescheduling when threads are nondispatchable |
TWI544409B (zh) * | 2014-07-21 | 2016-08-01 | 英特爾股份有限公司 | 執行緒暫停處理器、方法、系統與指令 |
US10209998B2 (en) * | 2016-06-17 | 2019-02-19 | Via Alliance Semiconductor Co., Ltd. | Multi-threading processor and a scheduling method thereof |
TW201823971A (zh) * | 2016-12-12 | 2018-07-01 | 美商英特爾股份有限公司 | 用於處理器架構的設備及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202147107A (zh) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893126A (zh) | 一种任务调度方法及装置 | |
JP2006502470A (ja) | 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
US20240160474A1 (en) | Multi-core processor task scheduling method, and device and storage medium | |
CN104104705B (zh) | 分布式存储系统的接入方法和设备 | |
JP2009238197A (ja) | 共有メモリの制御回路、制御方法及び制御プログラム | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
EP1760580B1 (en) | Processing operation information transfer control system and method | |
CN114168271A (zh) | 一种任务调度方法、电子设备及存储介质 | |
CN112698793A (zh) | 一种数据存储方法、装置、机器可读介质及设备 | |
WO2024198748A1 (zh) | 数据处理方法、系统、芯片及终端 | |
CN111309494A (zh) | 一种多线程事件处理组件 | |
CN103003769B (zh) | 时钟电路、电子设备以及提供时钟信号的方法 | |
TWI748513B (zh) | 資料處理方法、系統、電子裝置及存儲介質 | |
CN109002286A (zh) | 基于同步编程的数据异步处理方法及装置 | |
CN116107728B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN112153114A (zh) | 一种分时访问共享器件的方法、系统、设备及介质 | |
JP2008537248A (ja) | デジタルシグナルプロセッサ上でのマルチタスクの実施 | |
CN113806025B (zh) | 数据处理方法、系统、电子装置及存储介质 | |
CN115686891A (zh) | 一种日志回放控制方法、装置以及设备 | |
JP5678347B2 (ja) | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN110083469B (zh) | 一种异构硬件组织运行统一内核方法及系统 | |
WO2020082354A1 (zh) | 一种系统状态检测方法、系统状态装置及终端设备 | |
US7124288B2 (en) | Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units |