TWI703500B - 可縮短內文交換時間之方法及其半導體裝置 - Google Patents
可縮短內文交換時間之方法及其半導體裝置 Download PDFInfo
- Publication number
- TWI703500B TWI703500B TW108104153A TW108104153A TWI703500B TW I703500 B TWI703500 B TW I703500B TW 108104153 A TW108104153 A TW 108104153A TW 108104153 A TW108104153 A TW 108104153A TW I703500 B TWI703500 B TW I703500B
- Authority
- TW
- Taiwan
- Prior art keywords
- logic circuit
- processing unit
- central processing
- content
- task
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明涉及一種可縮短內文交換時間之方法及其半導體裝置,該半導體裝置包含有至少一中央處理器、一邏輯電路及至少一暫存器,其中該暫存器包含有一個或一個以上之一般暫存器群、一個或一個以上之控制狀態暫存器及程式計數暫存器,供利用該邏輯電路直接讀寫該中央處理器之所有暫存器與至少一記憶體的內文交換的至少一任務之內文,其中該邏輯電路係採直接記憶體存取技術【Direct Memory Access,簡稱為DMA】,令該邏輯電路能暫停及啟動該中央處理器的指令執行,且該邏輯電路並能夠讀寫該中央處理器的所有暫存器,藉此,當需要進行內文交換時,該邏輯電路會暫停中央處理器,將中央處理器的所有任務之內文用DMA技術存放於指定的記憶體中,並且修改運行順序之值,然後將預計執行之下一組任務中的內文用DMA技術存回中央處理器中,最後恢復中央處理器執行,如此就可以完成內文交換,而能縮短作業時間,並可提升多工處理效率。
Description
本發明係隸屬一種可縮短內文交換時間之技術,具體而言係指一種透過硬體電路之可縮短內文交換時間之方法及其半導體裝置,藉以能大幅縮短內文交換的時間,使處理器於多工處理效能更有效率、且更穩定。
電腦的核心是所謂中央處理器【Central Processing Unit,簡稱CPU】,其基本上就是接受指令、輸入資料、計算或輸出資料等動作,而早期的電腦,大多只有一個CPU,但要處理很多程式或任務而最簡單的想法就是一個程式或任務做完,然後做下一個程式或任務,但這樣感覺後面的程式或任務就一直在等待,因此有人想說把程式或任務切成很多片段,而CPU每次就處理這些程式或任務的一部份,這樣感覺就是同時在處理很多工作,稱為多工處理【Multi-Task】。如第一圖所示,“分時多工”是實現多工處理的一種方法、其將CPU的執行時間【CPU Time】拆成多個片段,每個片段執行某個程式或任務【Task】的工作,例如Task1、Task2、Task3、Task4…,而當其中一個片段如Task1時間到達後,必須要將目前正在執行任務的狀態儲存下來,在此稱之為快照【Snapshot】,並且載入另一個任務如Task2的快照,用以繼續執行下一個任務如Task2的工作,以此類推;
然而內文交換【Context-Switch,又稱環境切換】是目前分時多工中常用來做儲存快照、以及載入快照之方法,內文交換是將目前正在執行的CPU中所有跟Task相關的所有暫存器【Registers】儲存至記憶體【Memory】中,並且在另一個區域的記憶體載入下一個將被執行Task的暫存器,來達到儲存以及載入快照的功能。由於目前實現內文交換的方法皆由軟體自行將CPU暫存器中內文一個個的搬移至記憶體中儲存,然後將下一個Task的快照由記憶體搬移至CPU的暫存器中,在許多應用中,Task需要多工以及高速反應,在設計時是非常重要的考慮條件,但是為了完成快照的儲存以及載入,軟體需要耗費數百甚至數千的指令週期【Instruction Cycle】來達到此功能,如此可能對Task的執行效能造成影響。
如第二圖所示,在相同的時間【CPU Time】長度下,若是這個內文交換時間【Context-Switch Time】變長,相對地CPU能夠花費在處理Task的時間就會變少,故內文交換所花費的時間越多,就會使多工的效能變差;換言之,由於在大部分的多工處理環境下,實現內文交換的工作皆在軟體中完成,而由於軟體的作業需要消耗數百、數千個CPU之指令週期【Instruction Cycle】才能完成此工作,無法有效的提升多工效率,因此如何解決前述問題,而能夠縮短內文交換的時間,係業界的重要課題,也是本發明所探討者。
有鑑於此,本發明即基於上述需求與問題深入探討,並藉由本發明人多年從事相關開發的經驗,而積極尋求解決之道,經不斷努力之研究與發展,終於成功的發展出一種可縮短內文交
換時間之方法及其半導體裝置,其能有效解決現有內文交換時間無法有效縮短所造成的不便與困擾。
因此,本發明之主要目的係在提供一種可縮短內文交換時間之方法及其半導體裝置,其能透過直接記憶體存取的方式,使搬移資料所需之時間會遠低於現有軟體的搬移時間,而可以大幅降低內文交換之時間,以提高多工系統的執行效率。
另,本發明之再一主要目的係在提供一種可縮短內文交換時間之方法及其半導體裝置,其能使電腦系統之多工處理更為穩定,提升整體電腦系統的效率。
為此,本發明主要係透過下列的技術手段,來具體實現上述的各項目的與效能,該半導體裝置包含有至少一中央處理器及一邏輯電路,供利用該邏輯電路直接讀寫該中央處理器與至少一記憶體之內文交換的至少一任務之任務資訊;而所述之中央處理器包含有一控制單元、一處理單元及一暫存器,其中該暫存器包含有一個或一個以上之一般暫存器群、一個或一個以上之控制狀態暫存器及程式計數暫存器,其中該控制單元被修改為可執行邏輯電路之指令,又該一般暫存器群、控制狀態暫存器及程式計數暫存器能被修改為可供邏輯電路進行存取;又所述之邏輯電路係設於該半導體裝置內,該邏輯電路係採直接記憶體存取技術【DMA技術】,令該邏輯電路能暫停及啟動該中央處理器的指令執行,且該邏輯電路並能夠讀寫該中央處理器的所有暫存器;
至於,所述之記憶體的區域中定義出一塊區域,供存放多個任務資訊之編號、優先序、狀態及內文;藉此,當需要進行內文交換時,該邏輯電路會暫停中央處理器,將中央處理器中儲存所有任務之任務資訊的所有暫存器用DMA技術存放於指定的記憶體中,並且修改運行優先序之值,然後將預計執行之下一組任務中的內文用DMA技術存回中央處理器之暫存器中,最後恢復中央處理器執行,如此就可以完成,而能縮短作業時間,並可提升多工處理效率。
為使 貴審查委員能進一步了解本發明的構成、特徵及其他目的,以下乃舉本發明之若干較佳實施例,並配合圖式詳細說明如后,供讓熟悉該項技術領域者能夠具體實施。
10:中央處理器
12:控制單元
14:處理單元
16:一般暫存器群
18:控制狀態暫存器
19:程式計數暫存器
20:邏輯電路
21:交換遮罩暫存器
25:計時電路
30:記憶體
35:系統連接匯流排
第一圖:係現有處理器於多工處理中的工作執行片段執行示意圖。
第二圖:係現有處理器於多工處理之內文交換執行時間的時序圖。
第三圖:係本發明可縮短內文交換時間之半導體裝置的架構示意圖。
第四圖:係本發明可縮短內文交換時間之方法的流程示意圖。
第五圖:係本發明可縮短內文交換時間之半導體裝置於實際運作時的動作架構示意圖。
本發明係一種可縮短內文交換時間之方法及其半
導體裝置,隨附圖例示本發明之具體實施例及其構件中,所有關於前與後、左與右、頂部與底部、上部與下部、以及水平與垂直的參考,僅用於方便進行描述,並非限制本發明,亦非將其構件限制於任何位置或空間方向。圖式與說明書中所指定的尺寸,當可在不離開本發明之申請專利範圍內,根據本發明之具體實施例的設計與需求而進行變化。
如第三圖所示,該半導體裝置包含有至少一中央處理器10【Central Processing Unit,簡稱CPU】及一邏輯電路20。該邏輯電路20直接讀寫該中央處理器10與至少一記憶體30之資料移轉。在較佳實施例中,該半導體裝置有二中央處理器10。
每個中央處理器10包含有一控制單元12【Control Unit】、一處理單元14【Process Unit】及一暫存器【Registers】。該暫存器群包含有至少一個一般暫存器群16【Registers File】、至少一個控制狀態暫存器18【Control and Status Registers,簡稱CSR】及至少一個程式計數暫存器19【Program Counter Registers,簡稱PC】。控制單元12用於控制該中央處理器10內部其他單元的運行,並對外部接收或發送指令。該處理單元14可依控制單元12接受之指令處理中央處理器10之指令。一般暫存器群16可用於存放及執行任務【Task】之工作狀態。該一般暫存器群16是有限存貯容量的高速存貯部件,可用來暫存資料、位址、或者其他運算資訊。控制狀態暫存器18及程式計數暫存器19可供儲存控制單元12之控制及狀態等資訊。
所述之邏輯電路20【可以稱為Context-Changer】係設於該半導體裝置內,且在某些實施例中該邏輯電路20可以同
步操作該半導體裝置中的一個以上的中央處理器10。再者該邏輯電路20係採直接記憶體存取技術【Direct Memory Access,下稱DMA技術】,供獨立地直接讀寫及傳送各該中央處理器10之所有暫存器及各該記憶體30間的資料,且同時修改該中央處理器10之控制單元12,讓該邏輯電路20能透過控制單元12暫停該中央處理器10的指令執行,並修改該中央處理器10之一般暫存器群16、程式計數暫存器19及控制狀態暫存器18的存取方式,讓該邏輯電路20能夠讀寫該中央處理器10的所有暫存器。而根據某些實施例,該邏輯電路20包含有一交換遮罩暫存器21【Mask Swap Register】,供該邏輯電路20依據交換遮罩暫存器21的設定內文來決定是否對於對應的任務【Tasks】做內文交換【Context-Switch】動作,該交換遮罩暫存器21是由軟體來設定、以及清除,若邏輯電路20要做內文交換時,若發現交換遮罩暫存器21被設定時,其會暫停此任務的內文交換的動作,直到交換遮罩暫存器21被清除時,才會去執行內文交換動作。另根據某些實施例,該邏輯電路20進一步具有一計時電路25,供決定多少時間才執行一次內文交換。
所述之記憶體30可以是動態隨機存取記憶體【Dynamic Random Access Memory,DRAM】或靜態隨機存取記憶體【Static Random Access Memory,SRAM】。各該記憶體30透過至少一系統連接匯流排35【Bus】與前述之中央處理器10連結。且根據某些實施例,各該記憶體30與中央處理器10可以是同一半導體裝置。在記憶體30區域中定義出一塊區域,供存放多個任務資訊【Task-Info】之任務編號【ID】、優先序【Priority】、狀
態【Status】及內文【Context Data】。
藉此,組構成一種可縮短作業時間、且提升多工處理效率之可縮短內文交換時間之半導體裝置者。
當需進行分時工多之處理時,本發明利用前述半導體裝置之邏輯電路20於中央處理器10與記憶體30中進行多工處理之內文交換。該可縮短內文交換時間之方法如第四圖所示。
參考第四、五圖,首先,執行步驟(S101)、邏輯電路請求一中央處理器暫停執行指令:該邏輯電路20向一中央處理器10之控制單元12請求暫停執行指令,使該中央處理器10停止執行中之任務的運行。該邏輯電路20可以同時控制多顆中央處理器10,但是同一組任務之任務資訊,在同時間下,只能在某一顆中央處理器10中執行。之後執行步驟(S102)。
在步驟(S102),一邏輯電路讀取該中央處理器中一原執行任務之內文:該邏輯電路20以直接記憶體存取技術【DMA技術】讀取該暫停執行的任務之內文,之後執行步驟(S103)。
在步驟(S103),一邏輯電路將原執行任務之內文載入一記憶體中之指定位址:該邏輯電路20以DMA技術將該任務【Tasks】之內文由中央處理器之暫存器載入一記憶體30之指定位址,並設定修改該任務之任務資訊中的任務編號、優先序及狀態之值,以決定下一次被執行的順序及時間。而根據某些實施例,該邏輯電路20可依據交換遮罩暫存器21的設定內文來決定對應任務執行內文交換動作。再者,根據某些實施例,該邏輯電路20進一步可以利用計時電路25所設定時間進行對應任務
【Tasks】之內文交換動作。且根據某些實施例,該邏輯電路20也可以由軟體設定內文,使其立即執行內文交換動作一次。之後執行步驟(S104)。
在步驟(S104),一邏輯電路由一記憶體中抓取一將要執行任務之內文:該邏輯電路20依各記憶體30中各區段任務之任務編號、優先序及狀態之值的順序在第一順位者,利用前述DMA技術抓取該將要執行任務之任務資訊的內文,之後執行步驟(S105)。
在步驟(S105),一邏輯電路將要執行任務之內文寫入一中央處理器中:該邏輯電路20進一步利用DMA技術將前述要執行任務之內文寫入該中央處理器10中的暫存器,之後執行步驟(S106)。
在步驟(S106),一邏輯電路通知該中央處理器恢復指令運行:該邏輯電路20在將接下來要執行任務之內文寫入中央處理器10之暫存器後,進一步通知該中央處理器10之控制單元12恢復指令運行。
經由上述的說明,本發明就可以利用前述邏輯電路20之DMA技術完成儲存中央處理器10內舊的任務之內文,以及重新載入新的任務之內文之動作,並不斷的循環前述步驟(S101)至步驟(S106),而完成多工處理之運行,由於以硬體形式之邏輯電路20的DMA技術搬移資料所需之時間會遠低於現有以軟體的搬移時間,因此本發明可以大幅降低內文交換之時間,以提高多工系統的執行效率。
綜上所述,可以理解到本發明為一創意極佳之發明創作,除了有效解決習式者所面臨的問題,更大幅增進功效,且在相同的技術領域中未見相同或近似的產品創作或公開使用,同時具有功效的增進,故本發明已符合發明專利有關「新穎性」與「進步性」的要件,乃依法提出發明專利之申請。
10‧‧‧中央處理器
12‧‧‧控制單元
14‧‧‧處理單元
16‧‧‧一般暫存器群
18‧‧‧控制狀態暫存器
19‧‧‧程式計數暫存器
20‧‧‧邏輯電路
21‧‧‧交換遮罩暫存器
25‧‧‧計時電路
30‧‧‧記憶體
35‧‧‧系統連接匯流排
Claims (10)
- 一種可縮短內文交換時間之半導體裝置,該半導體裝置包含有至少一中央處理器及一邏輯電路,供利用該邏輯電路直接讀寫該中央處理器並在該中央處理器與至少一記憶體之間交換多個任務之任務資訊;而所述之中央處理器包含有一控制單元、一處理單元及一些暫存器,其中該控制單元被修改為可執行邏輯電路之指令,又該所有暫存器被修改為可供邏輯電路進行存取;又所述之邏輯電路係設於該半導體裝置內,該邏輯電路係採直接記憶體存取技術【DMA技術】,令該邏輯電路能暫停及啟動該中央處理器的指令執行,並能夠讀寫該中央處理器的所有暫存器;至於,所述之記憶體的區域中定義出一塊區域,供存放多個任務資訊之編號、優先序、狀態及內文。
- 如申請專利範圍第1項所述之可縮短內文交換時間之半導體裝置,其中該邏輯電路可以控制一個以上之中央處理器的架構。
- 如申請專利範圍第1項所述之可縮短內文交換時間之半導體裝置,其中該等暫存器包括至少一個一般暫存器群、至少一群控制狀態暫存器及至少一群程式計數暫存器。
- 如申請專利範圍第1項所述之可縮短內文交換時間之半導體裝置,其中該邏輯電路包含有一交換遮罩暫存器,供該邏輯電路依據交換遮罩暫存器的設定內文來決定是否對於對應的 任務做內文交換動作,該交換遮罩暫存器是由軟體來設定、以及清除。
- 如申請專利範圍第1項所述之可縮短內文交換時間之半導體裝置,其中該邏輯電路進一步具有一計時電路,供設定進行內文交換之時間。
- 如申請專利範圍第1項所述之可縮短內文交換時間之半導體裝置,其中該記憶體可以是動態隨機存取記憶體或可以是靜態隨機存取記憶體。
- 一種可縮短內文交換時間之半導體裝置,該半導體裝置包含至少一中央處理器、一邏輯電路及至少一記憶體;其中該邏輯電路直接讀寫該中央處理器並在該中央處理器與該記憶體之間交換多個任務之任務資訊;其中該中央處理器包含一控制單元、一處理單元及一些暫存器;其中該控制單元被修改為可執行邏輯電路之指令;其中該所有暫存器被修改為可供邏輯電路進行存取;其中該邏輯電路係採直接記憶體存取技術,令該邏輯電路能暫停及啟動該中央處理器的指令執行,並能夠讀寫該中央處理器的所有暫存器;其中該記憶體有一塊區域可貯存多個任務資訊之編號、優先序、狀態及內文。
- 一種如申請專利範圍第1~6項中任一項所述半導體裝置之可縮短內文交換時間之方法,該方法之流程包含有: 首先,執行步驟S101、邏輯電路請求一中央處理器暫停執行指令;接著,執行步驟S102、邏輯電路讀取該中央處理器中一原執行任務之內文:該邏輯電路以DMA技術讀取該暫停執行的任務之內文;之後,執行步驟S103、邏輯電路將原執行任務之內文由中央處理器之暫存器載入一記憶體中之指定位址;該邏輯電路以DMA技術將該任務之任務資訊載入一記憶體之指定位址,並設定修改該任務之順序值;再者,執行步驟S104、邏輯電路由一記憶體中抓取一將要執行任務之內文;該邏輯電路依各記憶體中各區段任務之順位值,利用前述DMA技術抓取該將要執行任務之內文;緊接著,執行步驟S105、邏輯電路將要執行任務之內文寫入一中央處理器中;該邏輯電路進一步利用DMA技術將前述要執行任務之內文寫入該中央處理器中的暫存器;以及最後,執行步驟S106、邏輯電路通知該中央處理器恢復指令運行;藉此,重覆依序執行前述步驟,供完成多工處理之內文交換的動作。
- 如申請專利範圍第8項所述之可縮短內文交換時間之方法,其中該步驟S103中,該邏輯電路具有一交換遮罩暫存器,其中該邏輯電路依據該交換遮罩暫存器的內文決定是否進行內文交換。
- 如申請專利範圍第8項所述之可縮短內文交換時間之方法,其中該步驟S103中,該邏輯電路設有一計時電路,供利用來決定多少時間才執行一次內文交換。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108104153A TWI703500B (zh) | 2019-02-01 | 2019-02-01 | 可縮短內文交換時間之方法及其半導體裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108104153A TWI703500B (zh) | 2019-02-01 | 2019-02-01 | 可縮短內文交換時間之方法及其半導體裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202030605A TW202030605A (zh) | 2020-08-16 |
TWI703500B true TWI703500B (zh) | 2020-09-01 |
Family
ID=73002856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108104153A TWI703500B (zh) | 2019-02-01 | 2019-02-01 | 可縮短內文交換時間之方法及其半導體裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI703500B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022428A1 (en) * | 2003-01-09 | 2007-01-25 | Japan Science And Technology Agency | Context switching method, device, program, recording medium, and central processing unit |
WO2012068494A2 (en) * | 2010-11-18 | 2012-05-24 | Texas Instruments Incorporated | Context switch method and apparatus |
US8261284B2 (en) * | 2007-09-13 | 2012-09-04 | Microsoft Corporation | Fast context switching using virtual cpus |
TW201502993A (zh) * | 2013-03-12 | 2015-01-16 | Microchip Tech Inc | 可程式化cpu暫存器硬體內文交換機制 |
US20160350236A1 (en) * | 2015-05-28 | 2016-12-01 | Red Hat Israel, Ltd. | Memory swap for direct memory access by a device assigned to a guest operating system |
TW201706829A (zh) * | 2015-04-30 | 2017-02-16 | 微晶片科技公司 | 具有數位信號處理引擎及增強上下文切換能力之中央處理單元 |
TW201826114A (zh) * | 2017-01-04 | 2018-07-16 | 南韓商三星電子股份有限公司 | 半導體裝置的處理器與其操作方法 |
-
2019
- 2019-02-01 TW TW108104153A patent/TWI703500B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022428A1 (en) * | 2003-01-09 | 2007-01-25 | Japan Science And Technology Agency | Context switching method, device, program, recording medium, and central processing unit |
US8261284B2 (en) * | 2007-09-13 | 2012-09-04 | Microsoft Corporation | Fast context switching using virtual cpus |
WO2012068494A2 (en) * | 2010-11-18 | 2012-05-24 | Texas Instruments Incorporated | Context switch method and apparatus |
TW201502993A (zh) * | 2013-03-12 | 2015-01-16 | Microchip Tech Inc | 可程式化cpu暫存器硬體內文交換機制 |
TW201706829A (zh) * | 2015-04-30 | 2017-02-16 | 微晶片科技公司 | 具有數位信號處理引擎及增強上下文切換能力之中央處理單元 |
US20160350236A1 (en) * | 2015-05-28 | 2016-12-01 | Red Hat Israel, Ltd. | Memory swap for direct memory access by a device assigned to a guest operating system |
TW201826114A (zh) * | 2017-01-04 | 2018-07-16 | 南韓商三星電子股份有限公司 | 半導體裝置的處理器與其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202030605A (zh) | 2020-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170329646A1 (en) | Graphical Processing Unit (GPU) Implementing a Plurality of Virtual GPUs | |
CN100573456C (zh) | 一种并行多处理器虚拟机系统 | |
KR101759266B1 (ko) | 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법 | |
US20070162640A1 (en) | Method and system for efficient context swapping | |
JP6387571B2 (ja) | 装置、方法、システム、プログラム、およびコンピュータ可読記録媒体 | |
WO2023103296A1 (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
JP2004220070A (ja) | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 | |
CN112199173B (zh) | 双核cpu实时操作系统数据处理方法 | |
CN109983440A (zh) | 数据处理 | |
WO2019028682A1 (zh) | 一种多系统共享内存的管理方法及装置 | |
JP2002163238A5 (zh) | ||
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
US20210055948A1 (en) | Fast thread execution transition | |
CN107632779B (zh) | 数据处理方法和装置、服务器 | |
US20140189329A1 (en) | Cooperative thread array granularity context switch during trap handling | |
WO2022083158A1 (zh) | 数据处理的方法、实例以及系统 | |
JP5131269B2 (ja) | マルチプロセッシングシステム | |
TWI703500B (zh) | 可縮短內文交換時間之方法及其半導體裝置 | |
CN103907108A (zh) | 共享闪存的方法、控制器及系统 | |
WO2023103397A1 (zh) | 用于存储管理的方法、介质、程序产品、系统和装置 | |
CN103631648B (zh) | 一种任务处理方法及系统 | |
JP4756599B2 (ja) | データ処理装置 | |
Yu et al. | TwinPilots: A New Computing Paradigm for GPU-CPU Parallel LLM Inference | |
CN111581124A (zh) | 可缩短内文交换时间的方法及其半导体装置 | |
Tseng et al. | Data-triggered multithreading for near data processing |