TW202144998A - 控制命令列隊的裝置及方法 - Google Patents
控制命令列隊的裝置及方法 Download PDFInfo
- Publication number
- TW202144998A TW202144998A TW109117923A TW109117923A TW202144998A TW 202144998 A TW202144998 A TW 202144998A TW 109117923 A TW109117923 A TW 109117923A TW 109117923 A TW109117923 A TW 109117923A TW 202144998 A TW202144998 A TW 202144998A
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- unit
- storage memory
- commands
- mode
- Prior art date
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
一種用於控制命令列隊的裝置,包含有一內部儲存記憶體,用來儲存複數個命令以及對應於該複數個命令之細節資訊;以及一命令檢查單元,用來檢查該複數個命令之一第一命令之型態;至少一命令執行單元,用來讀取該內部儲存記憶體之該複數個命令,其中該至少一命令執行單元之每一命令執行單元包含有一命令模式切換單元,用來根據該第一命令之型態,決定以一第一模式或一第二模式執行該第一命令;其中,該第一模式係根據該第一命令之操作碼及運算元執行該第一命令,該第二模式係以該第一命令之簡單位址資料格式執行該第一命令。
Description
本發明係指一種控制命令列隊的裝置及方法,尤指一種提高電腦系統之處理命令的效率的控制命令列隊的裝置及方法。
現有電腦系統的硬體架構於建置完成後,針對輸入裝置(例如,感測器、相機)、影像格式(例如,bmp、png、jpg)、顏色編碼方式(例如,YUV、YCbCr、RGB)、輸出裝置(例如,顯示器、面板或另一電腦系統的硬體架構之輸入裝置)、應用程式或者不同的使用者習慣,皆需要透過電腦系統的一中央處理器調整週邊組件的系統參數。因此,現有的系統的中央處理器除了必須執行龐大的運算之外,同時也需控制並處理來自週邊組件的中斷要求。對於各個週邊組件而言,週邊組件發送一中斷請求至中央處理器回應請求的時間將過於冗長,而降低整個系統的性能。因此,現有技術有改進的必要。
因此,本發明提供一種控制命令列隊的裝置及方法,降低中央處理器的運算量以提升系統的硬體架構的靈活性及彈性,進而提高整個系統的工作效率。
本發明揭露一種用於控制命令列隊的裝置,包含有一內部儲存記憶體,用來儲存複數個命令以及對應於該複數個命令之細節資訊;以及一命令檢查單元,用來檢查該複數個命令之一第一命令之型態;至少一命令執行單元,用來讀取該內部儲存記憶體之該複數個命令,其中該至少一命令執行單元之每一命令執行單元包含有一命令模式切換單元,用來根據該第一命令之型態,決定以一第一模式或一第二模式執行該第一命令;其中,該第一模式係根據該第一命令之操作碼及運算元執行該第一命令,該第二模式係以該第一命令之簡單位址資料格式執行該第一命令。
本發明另揭露一種控制命令列隊的方法,用於一控制命令列隊的裝置,其中該裝置包含有一內部儲存記憶體、至少一命令執行單元、一記憶體控制單元、一低延遲介面仲裁單元及一硬體存取管理單元,該方法包含有觸發一命令;確認該內部儲存記憶體是否具有任一命令;當該內部儲存記憶體具有一第一命令時,讀取該內部儲存記憶體之該第一命令;檢查該第一命令之型態;以及根據該第一命令之型態,決定以一第一模式或一第二模式執行該第一命令。
請參考第1圖,第1圖為本發明實施例一電腦系統10之示意圖。電腦系統10包含一外部儲存記憶體102、一控制命令列隊裝置104及一中央處理器106。外部儲存記憶體102可以是用來儲存資料的快閃記憶體,中央處理器106用來執行電腦系統10的運算。控制命令列隊裝置104可以是一積體電路(Integrated Circuit,IC),包含有一記憶體控制單元1042、一內部儲存記憶體1044、一命令檢查單元1046、至少一命令執行單元1048、一低延遲介面仲裁單元1050及一硬體存取管理單元1052。其中,內部儲存記憶體1044另包含有一命令儲存記憶體1044A及一資料儲存記憶體1044B用來儲存複數個命令以及對應於命令之細節資訊,換言之,內部儲存記憶體1044可以作為一緩衝記憶體,以維持外部儲存記憶體102與控制命令列隊裝置104之間的記憶體平衡。舉例而言,內部儲存記憶體1044可決定關於命令的讀寫要求之細節資訊,例如命令的一位址資訊或一資料數量,並且當內部儲存記憶體1044無任何命令時,控制命令列隊裝置104可透過記憶體控制單元1042讀取儲存於外部儲存記憶體102之命令。
命令檢查單元1046用來檢查所有送往命令執行單元1048的命令之型態,例如,檢查命令之長度或格式。命令執行單元1048用來讀取內部儲存記憶體1044之命令,每一命令執行單元1048包含有一命令模式切換單元1048_2、一命令解碼單元1048_4、一時間控制單元1048_6、一內部暫存器1048_8及一處理器1048_ALU。命令模式切換單元1048_2用來根據命令檢查單元1046所確定的命令之型態,決定以一第一模式或一第二模式執行命令。其中,第一模式係根據命令之操作碼及運算元後執行命令,而第二模式係以命令之簡單位址資料格式執行命令。因此,本發明的控制命令列隊裝置104即可根據命令模式切換單元1048_2所切換的模式執行命令,進而減少中央處理器106的負擔,以提升電腦系統10的整體表現。
詳細而言,電腦系統10的低延遲介面仲裁單元1050耦接於命令執行單元1048及中央處理器106,用來接收並處理來自命令執行單元1048或中央處理器106之命令,以決定對內部儲存記憶體1044之資料儲存記憶體1044_B及至少一外部組件P0-Pn之一存取順序。硬體存取管理單元1052耦接於命令執行單元1048及低延遲介面仲裁單元1050,用來管理命令執行單元1048或中央處理器106對外部組件P0-Pn之存取權限,例如存取申請、仲裁存取申請、權限查詢及釋出權限。在一實施例中,當多個命令執行核心1046及中央處理器106對外部組件P0-Pn中的同一外部組件進行存取動作時,有可能因為命令的存取順序的不同,而造成命令執行核心1046或中央處理器106在錯誤的時間點向外部組件P0-Pn讀取錯誤的資料。此外,當命令執行單元1048或中央處理器106欲控制資料儲存記憶體1044B讀取記憶體控制單元1042時,需經由低延遲介面仲裁單元1050仲裁後,才可讀取記憶體控制單元1042。
因此,硬體存取管理單元1052可透過管理不同多個命令執行核心1046及中央處理器106對外部組件P0-Pn的存取權限,直到任一命令執行核心1046或中央處理器106所申請的一執行緒完成時,才會釋出存取權限,以避免讀取錯誤資料的情形發生。
值得注意的,在一實施例中,外部組件P0-Pn的其中之一可以是一資料交換區,以用來儲存命令執行單元1048與中央處理器106之間的訊息,例如命令執行單元1048與中央處理器106的內部單元狀態、外部單元狀態、命令標誌或計數器資料。此外,資料交換區也可用來作為外部儲存記憶體102之一暫存器。因此,本發明的電腦系統10可利用資料交換區儲存多個執行緒的資訊,以避免高延遲而降低電腦系統10的效能,及避免存放於外部儲存記憶體102的資料遺失或錯誤的情形,進而提升系統效能、減少耗能及提高電腦系統10的可靠性。
另一方面,每一命令執行單元1048的命令解碼單元1048_4用來根據命令模式切換單元1048_2所決定執行命令的第一模式或第二模式,對命令進行解碼。在一實施例中,當命令模式切換單元1048_2決定以第一模式執行命令時,命令解碼單元1048_4可依照一命令集架構(instruction set architecture)解碼命令,其中命令集架構可包含數據處理命令、程序狀態暫存器之處理命令、算數/邏輯運算命令、分支命令、外/內部儲存記憶體存取命令、中斷訊號處理命令、異常產生命令、外部輸入/輸出存取命令等。因此,命令解碼單元1048_4可解碼命令中的操作碼(operation code)及運算元(operand)並據以執行命令。具體而言,操作碼可代表不同的命令類別,例如,ABASE類型描述設定外部組件的高位元位址、WFE類型描述指定一特定組件、中央處理器106或命令執行單元1048執行命令、DONE類型描述命令執行單元1048已完成的命令,並發出中斷要求以告知中央處理器106、BRANCH類型描述包含一條件判斷式的分支命令,及外部儲存記憶體102的一絕對或相對位址、STORE類型描述將一個位元組或是兩個位元組寫入至外部組件P0-Pn、LOAD類型描述將一個位元組、兩個位元組或是四個位元組的資料寫進內部暫存器1048_8、AI類型描述更新內部暫存器1048_8於算數運算之後的資料、LI類型描述將內部暫存器1048_8內的資料做完邏輯運算後更新及擴增之命令集。值得注意的是,命令集架構的操作碼所代表的類別,並不限於上述實施例,其他複雜運算、多項中斷事件處理或將多個命令定義為一巨集命令以減少錯誤產生,皆屬於本發明之範疇。
當命令模式切換單元1048_2決定以第二模式執行命令時,命令執行單元1048可根據命令之簡單位址資料格式大量填寫連續位址或者循環填寫一相同位址。詳細而言,第二模式為用來解析一無時序、無關作業流程、無複雜運算之特殊命令,換言之,特殊命令相對於第一模式的命令簡易,並且具有命令資料量較小且無須花費大量運算時間的特色。因此,針對大量填寫連續位址的命令,命令執行單元1048可設定命令具有一最小單位長度(例如,n個m位元組,其中n、m皆為可程式化的數值) 以適用於不同週邊暫存器的定址方式。週邊暫存器的控制可以是一二維命令列表,其包含有週邊暫存器的位址及對應的資料,以提升電腦系統10撰寫命令程式碼的速度,進而減少命令所需的儲存空間。
針對循環填寫相同位址的命令,當週邊暫存器為一先進先出(First In, First Out,FIFO)的控制方式,在一回合內寫入暫存器的特定位置,且每回合皆寫入相同位址,於填寫完同一回合的暫存器後,需要處理中斷才會進入下一回合時,命令模式切換單元1048_2可根據命令檢查單元1046所確定命令之型態,以第一模式或第二模式執行命令,進而減化命令撰寫的複雜度及命令所需儲存空間。
此外,內部暫存器1048_8另包含有暫存器R1-R15,其中暫存器R1-R13為用來暫時存放命令執行單元1048的資料(例如,待計算的資料、暫時存放的資料或待存取的資料),暫存器R14可以是一連結暫存器,用來存放一副函式返回位址,及呼叫副函式的下一位返回位址,暫存器R15可以是一程式計數器,用來存放分支命令所需之位址資料,以於命令執行單元1048執行分支命令時,下一個執行之命令跳轉至暫存器R15中的命令位址。
每一命令執行單元1048的時間控制單元1048_6可用來控制命令送達低延遲介面仲裁單元1050之一先後順序,也就是說,時間控制單元1048_6控制命令的一執行時間,藉以控制存取要求送至低延遲介面仲裁單元1050的時間點,以平衡多個執行緒欲同時存取外部組件P0-Pn之衝突狀況。舉例來說,當多個執行緒同時要利用低延遲介面仲裁單元1050向外部組件進行資料存取時,時間控制單元1048_6可將各執行緒對外部組件P0-Pn的存取時間錯開,同時將優先權較高之命令以較短時間送達至低延遲介面仲裁單元1050,以平衡多個執行緒及優先權高低不一之命令,進而優化電腦系統10的效能。此外,處理器1048_ALU可用來執行命令執行單元1048的所有邏輯運算、算數運算。如此一來,本發明的命令執行單元1048即可藉由控制命令的執行時間點,以提升電腦系統10之效能。
進一步地,關於電腦系統10之控制命令列隊的運作方式可歸納為一控制命令列隊流程20,如第2圖所示。控制命令列隊流程20的步驟包含有:
步驟202:開始。
步驟204:觸發命令。
步驟206:確認內部儲存記憶體1044是否具有任一命令。若有,執行步驟208;若無,執行步驟214。
步驟208:讀取內部儲存記憶體1044之命令。
步驟210:檢查命令之型態。
步驟212:根據命令之型態,決定以第一模式或第二模式執行命令。
步驟214:讀取儲存於外部儲存記憶體102之一第二命令,並執行步驟210。
步驟216:終止命令。
步驟218:結束。
根據控制命令列隊流程20,於步驟204可由中央處理器106或控制命令列隊裝置104觸發命令。接著,於步驟206確認內部儲存記憶體1044是否具有任一命令,以於步驟208讀取內部儲存記憶體1044之命令,於步驟210檢查命令的型態,以及步驟212中根據命令的型態,決定以第一模式或第二模式進行解碼以及執行命令。相反地,當步驟206內部儲存記憶體1044不具有任一命令時,則執行步驟214以提取儲存於外部儲存記憶體102的命令,於步驟210檢查命令的型態,並且於步驟212中根據命令的型態,決定以第一模式或第二模式進行解碼以及執行命令。
綜上所述,本發明實施例提供一種控制命令列隊的裝置及方法,透過切換處理不同的命令的模式以快速地處理命令、透過資料交換區處理中央處理器與命令執行單元之間的訊息,以及透過時間控制單元排程執行緒的優先順序,進而降低中央處理器的運算量以提升系統的硬體架構的靈活性及彈性,提高整個系統的工作效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電腦系統
102:外部儲存記憶體
104:控制命令列隊裝置
1042:記憶體控制單元
1044:內部儲存記憶體
1044A:命令儲存記憶體
1044B:資料儲存記憶體
1046:命令檢查單元
1048:命令執行單元
1048_2:命令模式切換單元
1048_4:命令解碼單元
1048_6:時間控制單元
1048_8:內部暫存器
1048_ALU:處理器
1050:低延遲介面仲裁單元
1052:硬體存取管理單元
106 :中央處理器
20:控制命令列隊流程
202、204、206、208、210、212、214、216、218:步驟
P0-Pn:外部組件
R1-R15:暫存器
第1圖為本發明實施例一電腦系統之示意圖。
第2圖為本發明實施例一控制命令列隊流程之示意圖。
10:電腦系統
102:外部儲存記憶體
104:控制命令列隊裝置
1042:記憶體控制單元
1044:內部儲存記憶體
1044A:命令儲存記憶體
1044B:資料儲存記憶體
1046:命令檢查單元
1048:命令執行單元
1048_2:命令模式切換單元
1048_4:命令解碼單元
1048_6:時間控制單元
1048_8:內部暫存器
1048_ALU:處理器
1050:低延遲介面仲裁單元
1052:硬體存取管理單元
106:中央處理器
P0-Pn:外部組件
R1-R15:暫存器
Claims (13)
- 一種用於控制命令列隊的裝置,包含有: 一內部儲存記憶體,用來儲存複數個命令以及對應於該複數個命令之細節資訊; 一命令檢查單元,用來檢查該複數個命令之一第一命令之型態;以及 至少一命令執行單元,用來讀取該內部儲存記憶體之該複數個命令,其中該至少一命令執行單元之每一命令執行單元包含有: 一命令模式切換單元,用來根據該第一命令之型態,決定以一第一模式或一第二模式執行該第一命令; 其中,該第一模式係根據該第一命令之操作碼及運算元執行該第一命令,該第二模式係以該第一命令之簡單位址資料格式執行該第一命令。
- 如請求項1所述之裝置,另包含有: 一記憶體控制單元,用來於該內部儲存記憶體無任何命令時,讀取儲存於一外部儲存記憶體之命令; 一低延遲介面仲裁單元,耦接於該至少一命令執行單元及一中央處理器,用來接收並處理來自該至少一命令執行單元或該中央處理器之命令,以決定對該內部儲存記憶體之一資料儲存記憶體及至少一外部組件之一存取順序;以及 一硬體存取管理單元,耦接於該至少一命令執行單元及該低延遲介面仲裁單元,用來管理來自該至少一命令執行單元或該中央處理器對該至少一外部組件之存取權限。
- 如請求項2所述之裝置,其中該至少一外部組件包含一資料交換區用來儲存該至少一命令執行單元與該中央處理器之間的訊息,以及作為該外部儲存記憶體之一暫存器。
- 如請求項2所述之裝置,其中該每一命令執行單元另包含有: 一時間控制單元,用來控制該複數個命令送達該低延遲介面仲裁單元之一先後順序;以及 一命令解碼單元,用來於以該第一模式執行該第一命令時,對該第一命令進行解碼。
- 如請求項1所述之裝置,其中該內部儲存記憶體所儲存對應於該複數個命令之細節資訊係根據該至少一命令執行單元之一內部暫存器決定對應於該複數個命令之一位址資訊或一資料數量。
- 如請求項1所述之裝置,其中該第二模式係根據該第一命令之該簡單位址資料格式大量填寫連續位址或者循環填寫一相同位址。
- 一種控制命令列隊的方法,用於一控制命令列隊的裝置,其中該裝置包含有一內部儲存記憶體、至少一命令執行單元、一記憶體控制單元、一低延遲介面仲裁單元及一硬體存取管理單元,該方法包含有: 觸發一命令; 確認該內部儲存記憶體是否具有任一命令; 當該內部儲存記憶體具有一第一命令時,讀取該內部儲存記憶體之該第一命令; 檢查該第一命令之型態;以及 根據該第一命令之型態,決定以一第一模式或一第二模式執行該第一命令。
- 如請求項7所述之方法,另包含有: 當該內部儲存記憶體無任何命令時,讀取儲存於一外部儲存記憶體之一第二命令; 檢查該第二命令之型態;以及 根據該第二命令之型態,決定以該第一模式或該第二模式執行該第二命令。
- 如請求項8所述之方法,另包含有: 該低延遲介面仲裁單元接收並處理來自該至少一命令執行單元或一中央處理器之命令,以決定對該內部儲存記憶體之一資料儲存記憶體及至少一外部組件之一存取順序;以及 該硬體存取管理單元管理來自該至少一命令執行單元或該中央處理器對該至少一外部組件之存取權限。
- 如請求項9所述之方法,其中該至少一外部組件包含一資料交換區用來儲存該至少一命令執行單元與該中央處理器之間的交換訊息,以及作為該外部儲存記憶體之一暫存器。
- 如請求項9所述之方法,其中該至少一命令執行單元之該每一命令執行單元包含有一時間控制單元以控制複數個命令送達該低延遲介面仲裁單元之一先後順序,以及該每一命令執行單元包含有一命令解碼單元於以該第一模式執行該第一命令時,對該第一命令進行解碼。
- 如請求項8所述之方法,其中該內部儲存記憶體儲存根據該至少一命令執行單元之一內部暫存器決定對應於該第一命令及該第二命令之一位址資訊或一資料數量。
- 如請求項8所述之方法,其中該第二模式係根據該第一命令之該簡單位址資料格式大量填寫連續位址或者循環填寫一相同位址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117923A TWI755744B (zh) | 2020-05-28 | 2020-05-28 | 控制命令列隊的裝置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117923A TWI755744B (zh) | 2020-05-28 | 2020-05-28 | 控制命令列隊的裝置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202144998A true TW202144998A (zh) | 2021-12-01 |
TWI755744B TWI755744B (zh) | 2022-02-21 |
Family
ID=80783637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109117923A TWI755744B (zh) | 2020-05-28 | 2020-05-28 | 控制命令列隊的裝置及方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI755744B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5357475B2 (ja) * | 2008-09-09 | 2013-12-04 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
US8281110B2 (en) * | 2009-07-15 | 2012-10-02 | Via Technologies, Inc. | Out-of-order microprocessor with separate branch information circular queue table tagged by branch instructions in reorder buffer to reduce unnecessary space in buffer |
US9176738B2 (en) * | 2011-01-12 | 2015-11-03 | Advanced Micro Devices, Inc. | Method and apparatus for fast decoding and enhancing execution speed of an instruction |
GB2510655B (en) * | 2013-07-31 | 2015-02-25 | Imagination Tech Ltd | Prioritizing instructions based on type |
US20160011876A1 (en) * | 2014-07-11 | 2016-01-14 | Cavium, Inc. | Managing instruction order in a processor pipeline |
US20160011877A1 (en) * | 2014-07-11 | 2016-01-14 | Cavium, Inc. | Managing instruction order in a processor pipeline |
-
2020
- 2020-05-28 TW TW109117923A patent/TWI755744B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI755744B (zh) | 2022-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3787167B2 (ja) | フラッシュメモリ | |
US5717952A (en) | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command | |
JP4598858B2 (ja) | ダイレクトメモリアクセスタスク要求のアービトレーションを行うためのデバイスおよび方法 | |
US7406550B2 (en) | Deterministic microcontroller with configurable input/output interface | |
JP2009510543A (ja) | Dmaタスクの実行を制御するためのデバイスおよび方法 | |
JP2008077294A (ja) | マイクロプロセッサおよびそれを用いたマイクロコンピュータ | |
JP2001216194A (ja) | 演算処理装置 | |
JPH10187642A (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
WO2008020389A2 (en) | Flash memory access circuit | |
WO1996008769A1 (en) | Computer instruction prefetch system | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
JPH10207717A (ja) | マイクロコンピュータ | |
US20020184566A1 (en) | Register pointer trap | |
TWI755744B (zh) | 控制命令列隊的裝置及方法 | |
US7680967B2 (en) | Configurable application specific standard product with configurable I/O | |
KR100321745B1 (ko) | 외부메모리액세스를위한마이크로컨트롤러유닛 | |
JPH06103225A (ja) | チェーン式dma方式及びそのためのdmaコントローラ | |
KR100960095B1 (ko) | 마이크로컨트롤러 명령어 셋트 | |
EP1227401B1 (en) | Task management device, method and program therefor | |
US20120271973A1 (en) | Data transfer system and data transfer method | |
US20030204686A1 (en) | Queue mechanism | |
KR100264758B1 (ko) | 마이크로컴퓨터 | |
JP7137058B2 (ja) | 演算処理装置、情報処理装置及び情報処理装置の制御方法 | |
JP2002278753A (ja) | データ処理システム | |
JPS61133439A (ja) | 命令先取り制御方式 |