TW201926036A - 半導體裝置 - Google Patents
半導體裝置 Download PDFInfo
- Publication number
- TW201926036A TW201926036A TW107134592A TW107134592A TW201926036A TW 201926036 A TW201926036 A TW 201926036A TW 107134592 A TW107134592 A TW 107134592A TW 107134592 A TW107134592 A TW 107134592A TW 201926036 A TW201926036 A TW 201926036A
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual machine
- aforementioned
- flag
- ownership
- semiconductor device
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- G06F9/526—Mutual exclusion algorithms
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
在以往的技術中,半導體裝置的處理能力之利用效率不佳。本發明的目的即為了改善此問題。
解決手段為:依照一實施形態的半導體裝置具有:共有資源13,在處理器10上所實施的多個處理中共同利用;旗號12,控制共有資源13的佔有權;及旗號管理部21,因應於在處理器上所執行的處理之要求,對於旗號12執行共有資源13的佔有權之取得處理,旗號管理部21在從多個處理之中的第1處理接受共有資源13的佔有權之取得要求的情況,當無法取得該佔有權時,執行將在處理器20上所實施的處理切換為第2處理的控制,同時對於旗號重複執行藉由第1處理而要求的佔有權之取得處理。當可取得第1處理所要求的佔有權時,執行將處理器上的處理從第2處理切換為第1處理的控制。
解決手段為:依照一實施形態的半導體裝置具有:共有資源13,在處理器10上所實施的多個處理中共同利用;旗號12,控制共有資源13的佔有權;及旗號管理部21,因應於在處理器上所執行的處理之要求,對於旗號12執行共有資源13的佔有權之取得處理,旗號管理部21在從多個處理之中的第1處理接受共有資源13的佔有權之取得要求的情況,當無法取得該佔有權時,執行將在處理器20上所實施的處理切換為第2處理的控制,同時對於旗號重複執行藉由第1處理而要求的佔有權之取得處理。當可取得第1處理所要求的佔有權時,執行將處理器上的處理從第2處理切換為第1處理的控制。
Description
本發明係關於半導體裝置,例如關於具有由多個處理程序所共用的共有資源之半導體裝置。
近年,在執行程式的處理器等半導體裝置,為了提升處理速度,而使用多個演算核心並且在1個演算核心上以邏輯方式構築虛擬機器等手法,來同時執行處理。在執行此種並列處理的半導體裝置,具有在多個處理中共用1個資源(例如記憶體、DAC、計時器等)的情況。如此共用的資源稱為共有資源。利用共有資源的情況,在多個處理中無限制地利用共有資源的話,有來自1個處理所產生的處理結果會遭受其他處理破壞、或者基於1個處理的處理結果使得其他處理運作而導致錯誤運作之虞。因此,利用共有資源的情況,為了避免在處理間產生運作干渉,而執行共有資源的排他控制。該共有資源的排他控制之範例如專利文獻1所揭示。
在專利文獻1,於1個處理器上構築2個虛擬機器,對於1個共有資源,從2個虛擬機器執行存取。然後,在專利文獻1,使用執行共有資源的排他控制之旗號而對於該共有資源執行排他控制。
[先前技術文獻]
[專利文獻]
[先前技術文獻]
[專利文獻]
[專利文獻1]美國專利第6792497號說明書
[發明所期望解決的課題]
然而,在專利文獻1所記載的技術,雖然可對於共有資源執行排他控制,但問題在於:設定為執行排他性存取的共有資源之利用效率偏低,而無法使半導體裝置的處理能力充分發揮。
其他課題與新穎特徵透過本說明書的記述及附加圖式予以闡明。
[用於解決課題的手段]
[用於解決課題的手段]
依照一實施形態的半導體裝置具有:
共有資源,在處理器上所實施的多個處理中共同利用;
旗號,控制該共有資源的佔有權;及
旗號管理部,因應於在處理器上所執行的處理之要求,對於旗號執行共有資源的佔有權之取得處理,旗號管理部在從多個處理之中的第1處理接受共有資源的佔有權之取得要求的情況,當無法取得該佔有權時,執行將在處理器上所實施的處理切換為第2處理的控制,同時對於旗號重複執行第1處理所要求的佔有權之取得處理。當可取得第1處理所要求的佔有權時,執行將處理器上的處理從第2處理切換為第1處理的控制。
[發明效果]
共有資源,在處理器上所實施的多個處理中共同利用;
旗號,控制該共有資源的佔有權;及
旗號管理部,因應於在處理器上所執行的處理之要求,對於旗號執行共有資源的佔有權之取得處理,旗號管理部在從多個處理之中的第1處理接受共有資源的佔有權之取得要求的情況,當無法取得該佔有權時,執行將在處理器上所實施的處理切換為第2處理的控制,同時對於旗號重複執行第1處理所要求的佔有權之取得處理。當可取得第1處理所要求的佔有權時,執行將處理器上的處理從第2處理切換為第1處理的控制。
[發明效果]
依照前述一實施形態,可提高虛擬機器的處理效率而提高半導體裝置的處理能力。
為了清楚說明,以下的記載及圖式係經過適當省略及簡化。又,作為執行各種處理的功能方塊,圖式所記載的各要素在硬體方面可由CPU、記憶體、其他電路所構成,在軟體方面可由載入於記憶體的程式等所實現。因此,本領域的相關人士可理解這些功能方塊可僅由硬體、僅由軟體或者這兩者的組合以各種形式實現,並未限定於任一者。並且,在各圖式,對於同一要素附加同一符號,必要時省略重複說明。
又,上文所述的程式係可使用各種類型的非暫態電腦可讀取媒體(non-transitory computer readable medium)而被儲存,再供給到電腦。非暫態的電腦可讀取媒體包含各種類型之具有實體的記錄媒體(tangible storage medium)。非暫態的電腦可讀取媒體之範例包含磁記錄媒體(例如軟碟片、磁帶、硬碟驅動器)、光磁氣記錄媒體(例如光磁碟)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導體記憶體(例如光罩ROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、快閃ROM、RAM(Random Access Memory))。又,程式可由各種類型的暫態電腦可讀取媒體(transitory computer readable medium)而被供給到電腦。暫態電腦可讀取媒體之範例包含電訊號、光訊號及電磁波。暫態電腦可讀取媒體經由電線及光纖等有線通訊路、或者無線通訊路而可將程式供給到電腦。
實施形態1
圖1表示實施形態1的半導體裝置1之方塊圖。如圖1所示,實施形態1的半導體裝置1具有處理器單元10、縱橫式開關11、旗號12、共有資源13。並且,圖1表示1個共有資源作為共有資源,但可設置多個共有資源。
圖1表示實施形態1的半導體裝置1之方塊圖。如圖1所示,實施形態1的半導體裝置1具有處理器單元10、縱橫式開關11、旗號12、共有資源13。並且,圖1表示1個共有資源作為共有資源,但可設置多個共有資源。
處理器單元10例如為執行在內建記憶體(未圖示)或者外部的記憶裝置(未圖示)所儲存之程式的演算部。縱橫式開關11切換處理器單元10、旗號12、共有資源13之間的資料、控制訊號等的發送接收目的地。旗號12控制共有資源13的佔有權。共有資源13為例如具有記憶體、計時器、類比數位變換電路、數位類比變換電路、共處理器等的特定功能之電路。共有資源13為在處理器單元10上所執行的多個處理所共用的硬體資源。
在實施形態1的半導體裝置1,處理器單元10具有處理器核心20、旗號管理部21。然後,處理器核心20由虛擬機器管理部30、第1虛擬機器(例如虛擬機器31)、第2虛擬機器(例如虛擬機器32)所構成。虛擬機器管理部30及虛擬機器31、32為藉由在處理器核心20所執行的作業系統(Operating System)等的基本軟體的功能而在處理器核心20上以邏輯方式構成。
在處理器核心20,虛擬機器31、虛擬機器32分別執行處理。又,在處理器核心20,分時切換來決定虛擬機器管理部30使虛擬機器31運作或者使虛擬機器32運作。又,虛擬機器管理部30切換因應於後述的從旗號管理部21發出的中斷訊號訊號而運作的虛擬機器。又,在以下的說明,將虛擬機器31所處理的內容稱為第1處理,將虛擬機器32所處理的內容稱為第2內容。然後,虛擬機器31、32分別因應於處理內容而對於旗號12取得處理所需的共有資源相關的佔有權時,向旗號12發出佔有權取得要求。
在實施形態1的半導體裝置1,執行對於旗號12的佔有權取得要求之情況,將界定發出佔有權取得要求的虛擬機器之識別碼包含在佔有權取得要求之用的命令中作為旗號資訊。佔有權取得要求能夠以應用程式軟體單位或者構成軟體的編碼之步驟單位等各種單位執行。
以應用程式軟體單位執行佔有權取得要求的情況,在旗號資訊包含界定應用程式軟體之用的識別碼。並且,利用界定應用程式軟體之用的識別碼時,較佳為執行應用程式軟體與虛擬機器之間的對應關連。
又,以構成軟體的編碼之步驟單位執行佔有權取得要求的情況,在旗號資訊包含界定應用程式軟體之用的識別碼。例如,欲依序執行處理0~處理3的情況,處理0執行中的識別碼之值設定為0,處理0結束後,將旗號12內的計數器之計數值增量。然後,虛擬機器因應於旗號的計數值已成為1而開始處理1。虛擬機器在之後重複同樣的處理而執行到處理3為止的處理。並且,對於每個步驟設定識別碼的情況,必須執行虛擬機器與步驟之間的對應關連。
旗號管理部21具有自旋控制部40、暫存器41。自旋控制部40基於從虛擬機器31或者虛擬機器32發出的佔有權取得要求而對於旗號12執行佔有權取得處理。暫存器41收納在自旋控制部40執行的佔有權取得處理中所利用的各種資訊。圖1所示之範例具有自旋鎖控制暫存器51、自旋鎖狀態暫存器52、旗號位址暫存器53、旗號比較資料54、旗號鎖資料55。並且,在暫存器41也設置未圖示的暫存器,在自旋控制部40的處理中也利用圖1未顯示的資訊。例如,自旋控制部40在佔有權取得處理中利用各種計時器,但儲存由該計時器量測多少時間的設定值之暫存器被設置在暫存器41。就包含自旋控制部40的運作之旗號管理部21的具體運作,將於以下敘述。
在自旋鎖控制暫存器51儲存開始旗標。執行共有資源13的取得要求之虛擬機器將該開始旗標設為「1」。然後,因應於開始旗標已成為「1」,自旋控制部40開始運作。並且,開始旗標已成為「1」的情況,顯示旗號管理部21為忙碌狀態,因此虛擬機器係在執行佔有權取得要求的時點並且開始旗標已成為「1」的情況,視為佔有權取得要求已失敗而運作。
在自旋鎖狀態暫存器52,儲存表示共有資源13的佔有權之取得狀態或者自旋鎖處理的結果之值。例如,在自旋鎖狀態暫存器52所儲存的值係在成功取得共有資源13的佔有權時,成為成功值,在無法取得共有資源13的佔有權時,成為失敗值,即使為了取得共有資源13的佔有權,而將重複執行佔有權取得處理的自旋鎖處理執行規定時間以上,在未成功取得佔有權的情況,成為逾時值。
在旗號位址暫存器53,儲存旗號12的位址值。並且,具有複數個旗號12的情況,對於每個旗號設置自旋鎖控制暫存器51、自旋鎖狀態暫存器52、旗號位址暫存器53、旗號比較資料54、旗號鎖資料55的組合。
在旗號比較資料54,儲存表示旗號12未將佔有權賦予到任何的處理或者虛擬機器的狀態之值作為期待值。例如,在旗號12未將共有資源13的佔有權賦予到任何的處理或者虛擬機器的情況,在旗號比較資料54儲存值「0」。
在旗號鎖資料55,儲存用來執行自旋鎖處理的處理或者虛擬機器的識別碼之資訊(例如旗號鎖資料)。
旗號12係在從處理器單元10要求取得佔有權的情況下,若未就共有資源13對於任何的處理(例如虛擬機器)分配佔有權,則對於發出佔有權取得要求的虛擬機器賦予共有資源13的佔有權。又,旗號12係在從處理器單元10要求取得佔有權的情況,就共有資源13對於任何的處理(例如虛擬機器)分配佔有權時,對於發出佔有權取得要求的虛擬機器拒絕賦予共有資源13的佔有權。並且,旗號12具有儲存賦予共有資源13的佔有權之處理或者識別虛擬機器的識別資訊之暫存器。該識別資訊稱為旗號資訊(例如旗號鎖資料)。又,在實施形態1的半導體裝置1,對於旗號12發行佔有權取得要求的作業係由旗號管理部21處理或者執行以取代虛擬機器。旗號資訊的詳細內容係在旗號管理部21相關的詳細說明中予以說明。
其中,就旗號管理部21的運作予以詳細說明。旗號管理部21係在從虛擬機器31、32要求取得共有資源13相關的佔有權之情況,對於旗號12實施該取得處理。然後,在可取得共有資源13的佔有權之情況,在自旋鎖狀態暫存器52儲存表示取得作業已成功的成功值。
另外,旗號管理部21因應於從虛擬機器31、32要求取得共有資源13相關的佔有權而對於旗號12實施取得處理的結果,在無法取得共有資源13的佔有權之情況,在自旋鎖狀態暫存器52儲存表示取得作業已失敗的失敗值。其中,失敗值係指例如表示旗號管理部21執行自旋鎖處理的狀態之值。又,旗號管理部21係在無法取得共有資源13的佔有權之情況,執行重複執行佔有權的取得處理之自旋鎖處理。
另外,旗號管理部21係在虛擬機器31、32的一方之虛擬機器無法取得共有資源13的佔有權之情況,指示虛擬機器管理部30將成為運作狀態的虛擬機器從一方的虛擬機器切換為另一方的虛擬機器,同時重複由一方的虛擬機器所進行的共有資源13之佔有權的取得處理。又,旗號管理部21因應於一方的虛擬機器相關的共有資源之佔有權的取得狀態從失敗變化為成功,指示虛擬機器管理部將成為運作狀態的虛擬機器從另一方的虛擬機器切換為一方的虛擬機器。
接下來,就實施形態1的半導體裝置1之運作予以說明。於是,圖2表示說明實施形態1的半導體裝置1之運作的時序圖。在圖2所示之例,將虛擬機器管理部30表示為VMM,將虛擬機器31表示為VM1,將虛擬機器32表示為VM2。
又,圖2所示之範例係表示在虛擬機器31取得共有資源13的佔有權之狀態下,欲運作的虛擬機器從虛擬機器31切換為虛擬機器32,並且共有資源13的佔有權由虛擬機器31所取得的狀態被維持的情況。
參考圖2說明實施形態1的半導體裝置1之運作的詳細內容予以說明。在圖2所示之範例,首先,虛擬機器31向旗號12發出要求共有資源13的佔有權之佔有權取得要求(圖2的鎖定要求LR(VM0))。因應於該鎖定要求,旗號管理部21將排他性載入命令(Load Link)賦予到旗號12,並且在目前時點讀取被儲存在旗號12的旗號鎖資料。又,旗號管理部21將從虛擬機器31接收的鎖定要求所包含的虛擬機器31之識別碼也就是旗號資訊作為旗號鎖資料儲存在旗號鎖資料55。然後,在圖2所示之範例,由於旗號12在該時點對於任何的虛擬機器並不賦予共有資源13的佔有權,因此因應於排他性載入命令而傳回值「0」。藉此,旗號管理部21識別出旗號12對於任何的虛擬機器皆未賦予共有資源13的佔有權,再使用排他性儲存命令(Store Conditional)將從虛擬機器31賦予的旗號資訊寫入到旗號12。該排他性儲存命令已成功的情況在圖2表示為成功響應SR。然後,旗號管理部21基於響應要求SR而將成功值寫入到自旋鎖狀態暫存器52。虛擬機器31參考該成功值,而識別出已取得共有資源13的佔有權之情況。藉此,使虛擬機器31繼續利用共有資源13的處理。
之後,在預先決定的虛擬機器切換時序到達的時序,將由虛擬機器管理部30予以運作的虛擬機器從虛擬機器31切換成虛擬機器32(圖2的T_SCH)。然後,虛擬機器32因應於處理內容而就共有資源13發出佔有權取得要求(圖2的鎖定要求LR(VM1))。此時,旗號管理部21將從虛擬機器32接收的鎖定要求所包含的虛擬機器31之識別碼也就是旗號資訊作為旗號鎖資料而儲存在旗號鎖資料55。然後,因應於該鎖定要求LR(VM1),旗號管理部21將排他性載入命令賦予到旗號12,然後在目前時點讀取儲存在旗號12的旗號鎖資料。此時,在圖2所示之範例,將表示由於旗號12對虛擬機器31賦予共有資源13的佔有權,因此旗號12因應於排他性載入命令而對虛擬機器31賦予獨佔權之情況的旗號鎖資料傳回旗號管理部21。藉此,旗號管理部21識別出旗號12賦予虛擬機器31供給資源13的佔有權之情況。在圖2所示之例,使用排他性儲存命令將從虛擬機器31賦予的旗號資訊寫入到旗號12。就該排他性儲存命令已成功的情況而言,在圖2中,旗號12將表示賦予獨佔權到虛擬機器31之旗號鎖資料傳回之情況表示為失敗響應FR。
在旗號管理部21,因應於自旋控制部40接受失敗響應FR,在自旋鎖狀態暫存器52儲存失敗值。又,自旋控制部40因應於接受失敗響應FR而對虛擬機器管理部30發出分配訊號(旗號分配S_INT)。虛擬機器管理部30將因應於旗號分配S_INT被通知而運作的虛擬機器從虛擬機器32切換為虛擬機器31(圖2中的S_SCH)。藉此,虛擬機器31重新運作。又,自旋控制部40因應於對自旋鎖狀態暫存器52寫入失敗值而開始自旋鎖處理。在該自旋鎖處理,旗號管理部21基於虛擬機器32對旗號12發出的佔有權取得要求而週期性執行共有資源13的佔有權之取得處理。
而且,如圖2所示之範例,旗號管理部21繼續自旋鎖處理的期間,重新開始運作的虛擬機器31將佔有權開放要求(圖2的解鎖要求ULR(VM0))經由旗號管理部21對旗號12發出。更具體而言,接受解鎖要求ULR(VM0)的旗號管理部21向旗號12發出將旗號12的旗號鎖資料改寫為值「0」的排他性儲存命令。藉此,旗號12開放對虛擬機器31賦予的共有資源13之佔有權。然後,在之後的自旋鎖處理,旗號管理部21成功取得共有資源13相關的佔有權的話,從旗號12傳回成功響應SR。更具體而言,旗號管理部21將儲存在旗號鎖資料55的旗號鎖資料藉由排他性儲存命令寫入到旗號12,因應於該寫入已成功的情況,識別出虛擬機器32可取得共有資源13的佔有權之情況。在圖2,將旗號管理部21成功寫入旗號鎖資料的情況表示為成功響應SR。
然後,在旗號管理部21,因應於自旋控制部40接受成功響應SR,在自旋鎖狀態暫存器52儲存成功值。又,自旋控制部40因應於接受成功響應SR而對虛擬機器管理部30發出分配訊號(旗號分配S_INT)。虛擬機器管理部30將因應於旗號分配S_INT被通知而運作的虛擬機器從虛擬機器31切換為虛擬機器32(圖2中的S_SCH)。藉此,虛擬機器32在可利用共有資源13的狀態下重新運作。又,自旋控制部40因應於對自旋鎖狀態暫存器52寫入成功值而開始自旋鎖處理。進一步,自旋控制部40將自旋鎖控制暫存器51的開始旗標之值從「1」改寫為「0」之後,使自旋鎖處理結束而移動到待機狀態。
然後,將旗號管理部21的運作使用流程圖詳細說明。於是,圖3表示說明實施形態1的旗號管理部21之運作的流程圖。並且,在圖3及圖4的說明,將取得共有資源13相關的佔有權的情況表示為旗號取得。
如圖3所示,旗號管理部21因應於從虛擬機器接收鎖定要求而開始處理。在旗號管理部21,當自旋控制部40開始處理時,將自旋鎖控制暫存器51的開始旗標之值從「0」改寫為「1」(步驟S0)。又,雖已省略圖示,但在步驟S0,旗號管理部21儲存向旗號鎖資料發出鎖定要求的虛擬機器相關的旗號資訊。然後,自旋控制部40從旗號12取得旗號12所保持的旗號資訊(例如旗號鎖資料)(步驟S1)。在步驟S1,自旋控制部40執行使用排他性載入命令(Load Link)的讀取處理。然後,自旋控制部40會比較從旗號12取得的旗號資訊與在旗號比較資料54所儲存的旗號資訊(步驟S2)。在圖3及圖4所示之範例,於旗號比較資料54,設定旗號管理部21未賦予共有資源13的佔有權到任何的虛擬機器時之值(例如值「0」)。
然後,在步驟S2的比較處理,2個資訊一致的情況,自旋控制部40使用排他性儲存命令(Store Conditional),藉由將從虛擬機器賦予的旗號資訊(例如在旗號鎖資料55所儲存的旗號鎖資料)寫入到旗號12,而執行旗號取得處理(步驟S3)。然後,自旋控制部40因應於成功取得旗號而將自旋鎖狀態暫存器52之值(例如自旋鎖狀態資訊)設為成功值(步驟S4、S5)。
一方面,在步驟S2的比較處理,2個資訊不一致的情況,或者判斷在步驟S4無法取得旗號的情況,自旋控制部40會將自旋鎖狀態暫存器52之值(例如自旋鎖狀態資訊)以失敗值更新(步驟S6)。並且,作為在步驟S4無法取得旗號之例,在從步驟S2的旗號12之旗號鎖資料確認後到步驟S4的旗號取得處理前之期間,由於某項處理或者虛擬機器取得旗號而產生。又,自旋控制部40將旗號分配S_INT輸出到處理器核心20(步驟S7)。藉此,在處理器核心20上所運作的虛擬機器從虛擬機器32切換為虛擬機器31。之後,自旋控制部40執行自旋鎖處理(步驟S8)。
其中,就步驟S8的自旋鎖處理予以詳細說明。圖4表示說明實施形態1的旗號管理部21之自旋鎖處理的流程圖。如圖4所示,自旋鎖處理中,在自旋控制部40經過預先決定的重試循環時間之前,等待共有資源13的佔有權之取得處理(步驟S11)。然後,經過重試循環時間的話,自旋控制部40開始共有資源13的佔有權之取得處理。
在旗號取得處理,首先,自旋控制部40使用排他性載入命令(Load Link)從旗號12取得旗號12所保持的旗號資訊(步驟S12)。然後,自旋控制部40會比較從旗號12取得的旗號資訊與在旗號比較資料54所儲存之值「0」(步驟S13)。
而且,在步驟S13的比較處理,2個資訊一致的情況,自旋控制部40使用排他性儲存命令(Store Conditional),藉由將從虛擬機器賦予的旗號資訊(例如在旗號鎖資料55所儲存的旗號鎖資料)寫入到旗號12而執行旗號取得處理(步驟S14)。然後,自旋控制部40因應於成功取得旗號而將自旋鎖狀態暫存器52之值(例如自旋鎖狀態資訊)設為成功值(步驟S15、S16)。又,自旋控制部40將旗號分配S_INT輸出到處理器核心20(步驟S17)。藉此,在處理器核心20上運作的虛擬機器從虛擬機器31切換為虛擬機器32。
另外,在步驟S13的比較處理,2個資訊不一致的情況,或者在步驟S15判斷為無法取得旗號的情況,自旋控制部40在經過預先設定的逾時時間為止重複從步驟S11到步驟S15的處理(步驟S18)。該逾時時間用來避免處理未進行的情況,並且較佳為遠比被視為其他的虛擬機器解除旗號取得狀態之時間更長。然後,即使經過逾時時間,旗號管理部21也無法取得旗號的情況,自旋控制部40會以逾時值更新自旋鎖狀態暫存器52之值(例如自旋鎖狀態資訊)(步驟S19)。又,自旋控制部40將旗號分配S_INT輸出到處理器核心20,然後通知虛擬機器無法取得旗號(步驟S20)。因應於步驟S20或者步驟S17的處理結束,旗號管理部21使自旋鎖處理結束。
從上述說明可知,實施形態1的半導體裝置1在無法藉由虛擬機器(或者規定的處理單位)而取得共有資源13的佔有權之情況,將處理器核心20上的處理切換為發出佔有權取得要求的虛擬機器以外的虛擬機器,同時使用旗號管理部21執行原本虛擬機器所執行的自旋鎖處理。然後,實施形態1的半導體裝置1係在藉由旗號管理部21的運作而成功取得共有資源13的佔有權之情況,將處理器核心20上的處理在該時點從成為運作狀態的虛擬機器切換為發出佔有權取得要求的虛擬機器。
藉由此種處理,實施形態1的半導體裝置1係藉由虛擬機器執行自旋鎖處理而避免虛擬機器的處理停滯,可提高半導體裝置的處理效率。
例如,在專利文獻1的技術,虛擬機器以規定的時間間隔切換同時交互成為運作狀態。因此,專利文獻1的技術,在一方的虛擬機器從旗號取得佔有權的情況,並且處理作業由一方的虛擬機器切換為另一方的虛擬機器的情況,另一方的虛擬機器無法從旗號取得共有資源的佔有權,而執行重複排他權的取得處理之自旋鎖處理。如此一來,專利文獻1的技術具有在藉由一方的虛擬機器執行佔有權的開放之前,另一方的虛擬機器之自旋鎖處理會持續進行,而另一方的虛擬機器之處理不會進行的問題。然而,在實施形態1的半導體裝置1,如專利文獻1所記載的技術,虛擬機器的處理不會進行的問題得以解決。
實施形態2
在實施形態2,就作為實施形態1的半導體裝置1之其他形態的半導體裝置2予以說明。圖5表示實施形態2的半導體裝置2之方塊圖。並且,就與在實施形態1所說明的構成要素相同的構成要素,附加與實施形態1相同的符號而省略說明。
在實施形態2,就作為實施形態1的半導體裝置1之其他形態的半導體裝置2予以說明。圖5表示實施形態2的半導體裝置2之方塊圖。並且,就與在實施形態1所說明的構成要素相同的構成要素,附加與實施形態1相同的符號而省略說明。
如圖5所示,實施形態2的半導體裝置2係對實施形態1的半導體裝置1追加處理器單元10b。又,在圖5,將圖1所示的處理器單元10之符號視為處理器單元10a。處理器單元10b係如同處理器單元10,可為虛擬機器以邏輯方式構成,也可為虛擬機器未被構築並且執行1個運作的處理器單元。也就是說,在實施形態2的半導體裝置2,處理器單元10a與處理器單元10b的至少一方只要具有與處理器單元10相同的構成即可。
然後,就實施形態2的半導體裝置2之運作予以說明。圖6表示說明實施形態2的半導體裝置之運作的時序圖。在圖6所示之例,處理器單元10b執行(圖6的CPU_B)取得共有資源13的佔有權、再利用共有資源13的處理。
之後,處理器單元10a(圖6的CPU_A)的虛擬機器31對於旗號12發出佔有權取得要求(圖6的鎖定要求LR(VM0))。然而,共有資源13的佔有權已經由處理器單元10b所取得,因此旗號管理部21發出旗號分配S_INT,然後將在處理器核心20上所運作的虛擬機器從虛擬機器31切換為虛擬機器32。又,旗號管理部21開始自旋鎖處理。
之後,處理器單元10b開放共有資源13的佔有權之後,因應於旗號管理部21成功取得共有資源13的佔有權,旗號管理部21會輸出旗號分配S_INT,基於旗號分配S_INT,虛擬機器管理部30會使在處理器核心20上所運作的虛擬機器從虛擬機器32返回虛擬機器31。藉此,虛擬機器31成為可持續利用共有資源13的處理之狀態。
從上述說明可知,在實施形態2的半導體裝置2,除了設置有旗號管理部21的處理器單元10a,還設置有其他處理器單元10b。即使在此種情況,藉由在處理器單元10a設有旗號管理部21,實施形態2的半導體裝置2可避免虛擬機器31、32的處理發生停滯,而可提高半導體裝置的處理效率。
統整實施形態2的半導體裝置2之構成的話,半導體裝置具有:多個處理器10a、10b;由多個處理器所共享的共有資源11;及對於在多個處理器所執行的處理之每個單位,賦予共有資源13相關的佔有權之旗號12。然後,在半導體裝置,多個處理器的其中至少1者具有旗號管理部21。然後,旗號管理部21在無法由本身處理器所執行的第1處理取得共有資源13之佔有權的情況,將處理由第1處理切換為第2處理,同時在可藉由第1處理而取得共有資源13的佔有權之前,對於旗號重複佔有權的取得處理。又,旗號管理部21因應於藉由第1處理的共有資源之佔有權的取得狀態從失敗變化為成功的情況,將由本身處理器所執行的處理從第2處理切換為第1處理。
又,執行第1處理與第2處理的處理器具有:第1虛擬機器與第2虛擬機器;及一邊切換第1虛擬機器與第2虛擬機器,一邊控制運作的虛擬機器管理部。
以上,將由本發明者所完成的發明基於實施形態而具體說明,但誠然本發明並不限定於已經敘述的實施形態,只要在不脫離其要旨的範圍,即可進行各種變更。
1‧‧‧半導體裝置
2‧‧‧半導體裝置
10‧‧‧處理器單元
10a‧‧‧處理器單元
10b‧‧‧處理器單元
11‧‧‧縱橫式開關
12‧‧‧旗號
13‧‧‧共有資源
20‧‧‧處理器核心
21‧‧‧旗號管理部
30‧‧‧虛擬機器管理部
31‧‧‧虛擬機器
32‧‧‧虛擬機器
40‧‧‧自旋控制部
41‧‧‧暫存器
51‧‧‧自旋鎖控制暫存器
52‧‧‧自旋鎖狀態暫存器
53‧‧‧旗號位址暫存器
54‧‧‧旗號比較資料
55‧‧‧旗號鎖資料
【圖1】為實施形態1的半導體裝置之方塊圖。
【圖2】為說明實施形態1的半導體裝置之運作的時序圖。
【圖3】為說明實施形態1的旗號管理部之運作的流程圖。
【圖4】為說明實施形態1的旗號管理部之自旋鎖處理的流程圖。
【圖5】為實施形態2的半導體裝置之方塊圖。
【圖6】為說明實施形態2的半導體裝置之運作的時序圖。
Claims (8)
- 一種半導體裝置,其具有: 處理器,由第1虛擬機器與第2虛擬機器以邏輯方式構築; 共有資源,由前述第1、第2虛擬機器所共享;及 旗號,將前述共有資源的佔有權賦予前述第1虛擬機器與前述第2虛擬機器的任一者, 前述處理器具有: 虛擬機器管理部,決定是否將前述第1、第2虛擬機器的任一者切換為運作狀態;及 旗號管理部, 前述旗號管理部係 在前述第1、第2虛擬機器的其中一個虛擬機器無法成功取得前述共有資源之前述佔有權的情況,指示前述虛擬機器管理部將成為運作狀態的前述虛擬機器從前述一方的虛擬機器切換到另一方的虛擬機器,同時重複藉由前述一方的虛擬機器所執行的前述共有資源之前述佔有權的取得處理, 因應於前述一方的虛擬機器相關的前述共有資源之前述佔有權的取得狀態從失敗變化為成功,指示前述虛擬機器管理部將成為運作狀態的前述虛擬機器從前述另一方的虛擬機器切換為一方的虛擬機器。
- 如申請專利範圍第1項的半導體裝置,其中 前述旗號管理部具有: 旗號比較資料暫存器,將前述旗號賦予前述佔有權的前述虛擬機器相關之第1旗號資訊予以儲存, 將前述旗號比較資料暫存器所儲存的前述第1旗號資訊、及對於前述旗號而要求取得前述佔有權的前述虛擬機器向前述旗號發出的第2旗號資訊予以比較,若2個資訊不一致,則週期性重複取得使用前述第2旗號資訊的旗號之作業。
- 如申請專利範圍第2項的半導體裝置,其中 在前述第2旗號資訊,至少包含以下任一項:虛擬機器識別碼,識別發出前述第2旗號資訊的虛擬機器;應用程式識別碼,識別在前述虛擬機器上所處理的應用程式軟體;及步驟識別碼,識別在前述虛擬機器上所處理的應用程式軟體之編碼上的步驟。
- 如申請專利範圍第1項的半導體裝置,其中 已要求取得前述佔有權的前述虛擬機器會參考在前述旗號管理部所設置的自旋鎖狀態暫存器,而判斷是否已可取得本身所要求的前述佔有權。
- 如申請專利範圍第1項的半導體裝置,其中 前述旗號管理部對於前述旗號執行前述第1虛擬機器及前述第2虛擬機器之任一虛擬機器相關的前述佔有權之取得處理時,從另一方的虛擬機器已要求前述佔有權的取得處理之情況,向前述另一方的虛擬機器通知為忙碌狀態。
- 如申請專利範圍第1項的半導體裝置,其中 至少一方具有具備與前述處理器為相同構成的第1、第2處理器, 前述旗號對於前述第1、第2處理器的任一處理器也賦予前述共有資源的前述佔有權, 前述旗號管理部對於前述旗號執行前述第1虛擬機器及前述第2虛擬機器之任一虛擬機器相關的前述佔有權之取得處理時,從另一方的虛擬機器已要求前述佔有權的取得處理之情況,向前述另一方的虛擬機器通知為忙碌狀態。
- 一種半導體裝置,其具有 多個處理器; 共有資源,由前述多個處理器所共享;及 旗號,對於前述多個處理器所執行的處理之每個單位,賦予前述共有資源相關的佔有權, 前述多個處理器的至少一者具有旗號管理部, 前述旗號管理部在無法藉由本身處理器所執行的第1處理而取得前述共有資源的前述佔有權之情況,將處理由前述第1處理切換為第2處理,同時在可藉由前述第1處理而取得前述共有資源的前述佔有權之前,對於前述旗號重複前述佔有權的取得處理, 因應於藉由前述第1處理而執行的前述共有資源之前述佔有權的取得狀態從失敗變化為成功,將本身處理器所執行的處理由前述第2處理切換為前述第1處理。
- 如申請專利範圍第7項的半導體裝置,其中 執行前述第1處理與前述第2處理的處理器具有:第1虛擬機器與第2虛擬機器;及一邊切換前述第1虛擬機器與前述第2虛擬機器,一邊控制運作的虛擬機器管理部。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017194248A JP2019067289A (ja) | 2017-10-04 | 2017-10-04 | 半導体装置 |
JP2017-194248 | 2017-10-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201926036A true TW201926036A (zh) | 2019-07-01 |
Family
ID=63667732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107134592A TW201926036A (zh) | 2017-10-04 | 2018-10-01 | 半導體裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10884882B2 (zh) |
EP (1) | EP3467654A1 (zh) |
JP (1) | JP2019067289A (zh) |
KR (1) | KR20190039461A (zh) |
CN (1) | CN109614218B (zh) |
TW (1) | TW201926036A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7207133B2 (ja) * | 2019-04-23 | 2023-01-18 | 富士通株式会社 | 情報処理装置、同期装置及び情報処理装置の制御方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401110B1 (en) * | 1998-11-30 | 2002-06-04 | International Business Machines Corporation | Method for managing concurrent processes using dual locking |
US6757769B1 (en) * | 2000-11-28 | 2004-06-29 | Emc Corporation | Cooperative lock override procedure |
US6792497B1 (en) | 2000-12-12 | 2004-09-14 | Unisys Corporation | System and method for hardware assisted spinlock |
US7500036B2 (en) * | 2000-12-28 | 2009-03-03 | International Business Machines Corporation | Quad aware locking primitive |
TWI256553B (en) * | 2004-12-17 | 2006-06-11 | Ind Tech Res Inst | Apparatus and method for hardware semaphore |
JP3976065B2 (ja) * | 2006-01-16 | 2007-09-12 | セイコーエプソン株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム |
CN101546275B (zh) * | 2008-03-26 | 2012-08-22 | 中国科学院微电子研究所 | 一种获取多处理器硬件信号量的方法 |
US9201673B2 (en) * | 2008-07-30 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficient detection and response to spin waits in multi-processor virtual machines |
JP2010092101A (ja) * | 2008-10-03 | 2010-04-22 | Renesas Technology Corp | 情報処理装置 |
JP5349072B2 (ja) * | 2009-02-17 | 2013-11-20 | パナソニック株式会社 | 資源排他制御方法および資源排他制御装置 |
US20130111168A1 (en) * | 2011-10-27 | 2013-05-02 | Freescale Semiconductor, Inc. | Systems and methods for semaphore-based protection of shared system resources |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2014182507A (ja) * | 2013-03-18 | 2014-09-29 | Mitsubishi Electric Corp | 計算機及び排他制御方法及び排他制御プログラム |
US9542238B2 (en) * | 2013-05-23 | 2017-01-10 | Nxp Usa, Inc. | Systems and methods for direct memory access coherency among multiple processing cores |
US9076017B2 (en) * | 2013-11-27 | 2015-07-07 | Cisco Technology, Inc. | Hardware virtualization module for exclusive controlled access to CPU |
-
2017
- 2017-10-04 JP JP2017194248A patent/JP2019067289A/ja active Pending
-
2018
- 2018-09-04 US US16/121,327 patent/US10884882B2/en active Active
- 2018-09-13 CN CN201811069775.9A patent/CN109614218B/zh active Active
- 2018-09-20 EP EP18195623.6A patent/EP3467654A1/en not_active Withdrawn
- 2018-10-01 TW TW107134592A patent/TW201926036A/zh unknown
- 2018-10-02 KR KR1020180117501A patent/KR20190039461A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
CN109614218A (zh) | 2019-04-12 |
KR20190039461A (ko) | 2019-04-12 |
JP2019067289A (ja) | 2019-04-25 |
CN109614218B (zh) | 2023-10-24 |
EP3467654A1 (en) | 2019-04-10 |
US10884882B2 (en) | 2021-01-05 |
US20190102268A1 (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100733943B1 (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
JP6089349B2 (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
JP2016508647A5 (zh) | ||
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2010140290A (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
CN104104705B (zh) | 分布式存储系统的接入方法和设备 | |
WO2017075796A1 (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
JP4523910B2 (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
TW201926036A (zh) | 半導體裝置 | |
US20160210248A1 (en) | Information processing system, method and medium | |
US9372724B2 (en) | System and method for conditional task switching during ordering scope transitions | |
US20150220361A1 (en) | Parallel computer system, control method of parallel computer system, and computer-readable storage medium | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN115794317B (zh) | 一种基于虚拟机的处理方法、装置、设备及介质 | |
JP2018538632A (ja) | ノードの再起動後にデータを処理する方法及びデバイス | |
JP5641128B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
KR101818410B1 (ko) | 병렬 처리 시스템 | |
JP6251417B2 (ja) | ストレージシステム、及び、記憶制御方法 | |
US20220156074A1 (en) | Electronic device and multiplexing method of spatial | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
KR20100075116A (ko) | 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치 | |
US20230195523A1 (en) | Semiconductor device, control method for the same, and program | |
JP6481437B2 (ja) | トランザクション処理装置、トランザクション処理方法及び制御プログラム | |
US8566829B1 (en) | Cooperative multi-level scheduler for virtual engines |