TWI639955B - 多處理器系統及其處理器管理方法 - Google Patents
多處理器系統及其處理器管理方法 Download PDFInfo
- Publication number
- TWI639955B TWI639955B TW106138347A TW106138347A TWI639955B TW I639955 B TWI639955 B TW I639955B TW 106138347 A TW106138347 A TW 106138347A TW 106138347 A TW106138347 A TW 106138347A TW I639955 B TWI639955 B TW I639955B
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- processor
- priority
- interrupt request
- immediacy
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本發明提供一多處理器系統。一暫存器中記錄有一特定處理器對於一共用周邊中斷請求之接受度。一執行緒產生電路接收多個請求,據以產生多個執行緒。每當執行緒產生電路接收到該多個請求之一時,一標記決定電路根該執行緒之屬性為該執行緒決定一即時性標記。一排程器選擇該特定處理器將執行之一優先執行緒。一調整電路根據優先執行緒之即時性標記,至暫存器設定該特定處理器於執行優先執行緒時對於該共用周邊中斷請求之接受度。一中斷控制器在分派中斷請求時將該暫存器所記錄之該接受度納入考慮。
Description
本發明與多處理器系統相關。
為了提高效能,除了個人電腦與筆記型電腦,近年有愈來愈多的消費性電子產品採用包含多個獨立中央處理器的電路架構。這些處理器通常被設計為受到單一作業系統控制,並且能夠支持多個應用程式同時運作。圖一呈現一個此類型多處理器系統的示意圖。多處理器系統100包含N個處理器(標示為1101、1102、…、110N,統稱處理器110,N為大於一之整數)、一執行緒(thread)產生電路120、一總排程器130、N個排程器(標示為1401、1402、…、140N,統稱排程器140)與一中斷控制器(interrupt controller)150。
執行緒產生電路120負責接收來自應用程式191~194的請求,將各應用程式須交由處理器110執行的任務包裝為相對應的多個執行緒。總排程器130會根據各個處理器目前的工作量,決定應如何將執行緒產生電路120產生的執行緒分配至該等處理器各自的佇列(queue)。每一個處理器110各自搭配的排程器140係用以自其佇列中挑選出優先程度最高的執行緒來,令處理器110執行。
中斷控制器150負責接收記憶體、計時器、影像處理器等電路(未繪示)發出的中斷請求(interrupt request,IRQ),並傳達給處理器110。在一多處理器系統內,通常有數種中斷請求,包含針對性(per-processor)中斷請求與共用周邊(shared peripheral)中斷請求。針對性中斷請求係指
針對一個特定處理器發出的中斷請求,只能由該特定處理器處理,例如是處理器本身的計時器發出的中斷請求或者是兩兩處理器之間的溝通所產生的中斷請求(inter-processor interrupt)。相對地,共用周邊中斷請求則是N個處理器110中任一個處理器都可以處理的。
在一般作業系統的運作邏輯中,中斷請求的優先順序高於所有的執行緒。每當出現一個針對性中斷請求,相對應的特定處理器會暫停原本正在進行中的執行緒,開始處理這個針對性中斷請求。另一方面,每當出現一個共用周邊中斷請求,則是任何一個當時並未正在處理其他中斷請求的處理器110,都會加入競爭的行列,爭取這個共用周邊中斷請求的處理權。隨後,贏得處理權的處理器110便會開始處理這個共用周邊中斷請求;原本由該處理器110正在進行中的執行緒會被暫停(即使此工作週期尚未結束),置回其佇列中等待,直到下一次被該處理器110的排程器140選中,才會被重新執行。
上述做法的缺點在於,某些執行緒若因中斷請求介入的關係被處理器中途暫停過久,會造成問題。一經典的情況發生於當某處理器正在處理某個高即時性的執行緒時,又接收了二中斷請求,使得該執行緒的停滯時間長度超過一預設時間長度,造成執行緒的資料漏失或其他錯誤。以音樂播放程式的執行緒為例,如果正在進行中的執行緒被中途放棄,原本在播放當中的樂曲可能會出現不連續的中斷情況,導致不良的使用者經驗。
為解決上述問題,本發明提出一種新的多處理器系統及其處理器管理方法。
根據本發明之一具體實施例為一種多處理器系統,其中包含多個處理器、一暫存器、一執行緒產生電路、一標記決定電路、一排程器、
一調整電路以及一中斷控制器。該暫存器中記錄有該多個處理器中一特定處理器對於一共用周邊中斷請求之接受度。該執行緒產生電路係用以接收多個請求,據以產生將交由該多個處理器執行之多個執行緒,其中該多個執行緒係對應於多個應用程式。每當該執行緒產生電路接收到該多個請求之一時,該標記決定電路至少根據對應之該執行緒之一屬性決定該執行緒之一即時性標記以提供給該執行緒產生電路。該排程器係用以自分派給該特定處理器之多個執行緒中選擇該特定處理器將執行之一優先執行緒。該調整電路根據該優先執行緒之該即時性標記,至該暫存器設定該特定處理器於執行該優先執行緒時對於該共用周邊中斷請求之接受度。該中斷控制器係用以將多個中斷請求分派給該多個處理器,並且在分派該多個中斷請求時將該暫存器所記錄之該接受度納入考慮。
根據本發明之另一具體實施例為一種處理器管理方法,用以配合一多處理器系統中之一處理器。該管理方法包含:(a)接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記;(b)自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定處理器於執行該優先執行緒時對於一共用周邊中斷請求之接受度;以及(c)根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
根據本發明之又一具體實施例為一種非暫態電腦可讀取儲存媒體,應用於一多處理器系統,其中儲存有能由一處理器讀取並執行之一程式碼。該程式碼係用以管理該多處理器系統中之一處理器。於該程式碼中,一第一程式碼係用以接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記。一第二程式碼係用以自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定處理器於執行該優
先執行緒時對於一共用周邊中斷請求之接受度。一第三程式碼係用以根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
100、200‧‧‧多處理器系統
110、210‧‧‧處理器
120、220‧‧‧執行緒產生電路
130、230‧‧‧總排程器
140、240‧‧‧排程器
150、250‧‧‧中斷控制器
2521‧‧‧暫存器
260‧‧‧標記決定電路
270‧‧‧調整電路
191~194、291~294‧‧‧應用程式
S41~S43‧‧‧流程步驟
圖一為一現行多處理器系統的示意圖。
圖二為根據本發明之一實施例中的多處理器系統之示意圖。
圖三(A)與圖三(B)為對應於一處理器的中斷遮罩暫存器之示意圖。
圖四為根據本發明之一實施例中的處理器管理方法之流程圖。
須說明的是,本發明的圖式包含呈現多種彼此關聯之功能性模組的功能方塊圖。該等圖式並非細部電路圖,且其中的連接線僅用以表示信號流。功能性元件及/或程序間的多種互動關係不一定要透過直接的電性連結始能達成。此外,個別元件的功能不一定要如圖式中繪示的方式分配,且分散式的區塊不一定要以分散式的電子元件實現。
根據本發明之一具體實施例為一種多處理器系統,其示意圖係繪示於圖二。多處理器系統200包含N個處理器(標示為2101、2102、…、210N,統稱處理器210,N為大於一之整數)、一執行緒產生電路220、一總排程器230、N個排程器(標示為2401、2402、…、240N,統稱排程器240)、一中斷控制器250、一標記決定電路260,以及一調整電路270。
以下會詳述標記決定電路260的功用。執行緒產生電路220負
責接收來自多個應用程式291~294的執行緒請求,並據此產生將交由處理器210執行的執行緒。在多處理器系統200中,每當執行緒產生電路220接收到為某一個應用程式產生執行緒的請求時,會收到上述應用程式的屬性,或者該執行緒本身屬性等相關資訊,並將此資訊提供給標記決定電路260。標記決定電路260根據上述屬性至少其一為這個執行緒決定一即時性標記,以標記出此新執行緒在開始被執行後需要被即時完成、不宜中斷的迫切程度。實務上,該即時性標記可以是一個二進制旗標。舉例而言,標記決定電路260可設定:該旗標的內容為二進制一表示此執行緒具有高即時性、該旗標的內容為二進制零表示此執行緒具有低即時性。例如,以應用程式屬性搭配執行緒本身屬性而產生的即時性標記可以採用一個範圍在0到1之間的數字,數值愈大表示有愈高的即時性。
在一實施例中,標記決定電路260據以判斷的應用程式屬性可以是應用程式主要處理的資料類型,而標記決定電路260可被設計為:只要是用於連續播放多媒體資料的應用程式(例如電影播放程式、歌曲伴唱程式……),便賦予其執行緒對應於高即時性的標記。或者,應用程式291~294的編寫者與標記決定電路260的電路設計者可事先達成共識,由應用程式編寫者主動在一應用程式的基本資訊中載明此應用程式之執行緒在開始被執行後是否需要被即時完成、不宜中斷,讓標記決定電路260在判讀一應用程式的基本資訊後即可得知應賦予此應用程式的執行緒哪一種即時性標記。另一實施例中,由於同一應用程式在不同時間點處理的資料類型可能不盡相同,則標記決定電路260可依照執行緒屬性對同一應用程式的個別執行緒進行標記。
標記決定電路260所決定的即時性標記會被傳送給執行緒產生電路220。在收到標記決定電路260提供的即時性標記後,執行緒產生電路220便會產生並送出包含此即時性標記的新執行緒(例如將即時性標記寫入新執行緒的一個特定欄位),交由總排程器230進行分配。總排程器
230根據各個處理器210之佇列中的工作量、處理器的特性等等來決定應如何分配執行緒,其運作邏輯為本發明所屬應用領域中具有通常知識者所知,於此不贅述,亦不對本發明的範疇構成限制。每個處理器210各自的排程器240會定時自其佇列中選擇一個執行緒(以下稱優先執行緒)交由該處理器執行,例如以固定的工作週期為單位,每隔一個工作週期重新選擇一優先執行緒。在不需要處理任何中斷請求的情況下,各處理器210便是聽從其排程器240的安排,在每一段工作週期中,執行排程器240為該工作週期選出的優先執行緒。
中斷控制器250負責接收記憶體、計時器、影像處理器等電路(未繪示)發出的中斷請求,並傳達給處理器210。如先前所述,針對性中斷請求係針對特定處理器發出的中斷請求,只能由該特定處理器處理,而共用周邊中斷請求則是N個處理器210中任一個處理器都可以處理的。不同於圖一的中斷控制器150,中斷控制器250內設有一個暫存器2521,用以記錄處理器2101對於共用周邊中斷請求的接受度。在分派中斷請求的處理權時,中斷控制器250會參考暫存器2521的內容。更具體地說,當暫存器2521儲存的內容顯示處理器2101目前不適合接受共用周邊中斷請求,中斷控制器250便不會將共用周邊中斷請求的處理權分派給處理器2101。
請參閱圖二,調整電路270耦接於排程器2401與中斷控制器250之間。每當排程器2401為處理器2101選出一個優先執行緒,調整電路270便根據該優先執行緒的即時性標記來設定暫存器2521的內容,亦即設定處理器2101於執行該優先執行緒期間對於共用周邊中斷請求的接受度。舉例而言,電路設計者可令暫存器2521的內容為二進制一表示處理器2101無法接受共用周邊中斷請求、二進制零表示處理器2101能夠接受共用周邊中斷請求。若標記決定電路260同樣係採用二進制一來表示高即時性、二進制零來表示低即時性,則調整電路270可直接採用優先執行緒的即時性標記來設定暫存器2521的內容。意即,正在處理具有高即時性標記的優先執
行緒的處理器無法接受共同周邊中斷請求、正在處理具有低即時性標記的優先執行緒的處理器能夠接受共用周邊中斷請求。於一實施例中,調整電路270係考量該即時性標記是否指出優先執行緒的即時性高於一預設門檻值。舉例而言,若標記決定電路260係採用一個範圍在0到1之間的數字做為即時性標記,且數值愈大表示有愈高的即時性,則調整電路270可將即時性標記高於0.5的優先執行緒視為具有高即時性,因此將暫存器2521的內容設定為二進制一。反之,即時性標記低於或等於0.5的優先執行緒會被調整電路270視為具有低即時性,因此將暫存器2521的內容設定為二進制零。
藉由標記決定電路260、調整電路270與暫存器2521的合作,處理器2101所處理的具有高即時性之執行緒便不會遭遇因共用周邊中斷請求介入而被暫停的問題。換句話說,當暫存器2521儲存的內容顯示處理器2101目前不適合接受共用周邊中斷請求,中斷控制器250便會對處理器2101遮蔽共用周邊中斷請求,只允許指向處理器2101的針對性中斷請求打斷處理器2101正在處理的執行緒。
實務上,中斷控制器250可利用中斷遮罩暫存器(interrupt mask register)來記錄處理器210對於各種中斷請求的接受度,而暫存器2521的功能可被整合在對應於處理器2101的中斷遮罩暫存器中。舉例而言,假設處理器2101可能接收到的中斷請求共有十五種,其中有三種為針對性中斷請求、十二種為共用周邊中斷請求。對應於處理器2101的中斷遮罩暫存器可包含十五個位元(以下稱遮罩位元)的儲存空間,用來記錄這十五種中斷請求是否能被處理器2101回應。當處理器2101能接受某一種中斷請求時,對應於該中斷請求的遮罩位元被設定為二進制零。反之,當處理器2101不能接受某一種中斷請求時,對應於該中斷請求的遮罩位元被設定為二進制一。
調整電路270可被賦予修改對應於處理器2101的中斷遮罩暫存
器之內容的能力。圖三(A)與圖三(B)為對應於處理器2101的中斷遮罩暫存器之示意圖。當調整電路270判定排程器2401選出的優先執行緒具有高即時性,調整電路270可將對應於十二種共用周邊中斷請求的遮罩位元之內容皆設定為二進制一,如圖三(A)所示,藉此遮蔽這些中斷請求。直到處理器2101對此優先執行緒的工作週期結束、排程器2401將重新選擇優先執行緒時,調整電路270才將這十二個遮罩位元重新設定為二進制零。反之,當調整電路270判定排程器2401選出的優先執行緒具有低即時性,調整電路270可以不動作,令這十二個遮罩位元的內容保持在二進制零,如圖三(B)所示。在這個情況下,出現任一種共用周邊中斷請求時,處理器2101都會去爭取這個中斷請求的處理權。
於一實施例中,不同種類的共用周邊中斷請求可被賦予高低不同的優先性。某些類型的共用周邊中斷請求的優先性可能高於上述高即時性的執行緒。舉例而言,假設已知上述十二種共用周邊中斷請求中有四種具有較高的優先性,則調整電路270在判定排程器2401選出的優先執行緒具有高即時性後,可以只將另外八種共用周邊中斷請求的遮蔽位元之內容設定為二進制一,而非將所有共用周邊中斷請求的遮蔽位元之內容皆設定為二進制一。在這個情況下,藉由標記決定電路260、調整電路270與暫存器2521的合作,處理器2101所處理的具有高即時性之執行緒因共用周邊中斷請求介入而被暫停的機率可被降低,而非完全消除。
實務上,中斷控制器250本身在處理各種中斷請求的過程中,亦可能修改中斷遮罩暫存器的內容,例如在處理器2101正在處理某一種中斷請求的過程中將相對應的遮蔽位元之內容設定為二進制一,其詳細運作方式為本發明所屬技術領域中具有通常知識者所知,於此不贅述。
須說明的是,利用調整電路270來調節中斷請求接受度的做法,可被套用在不只一個處理器上。舉例來說,電路設計者亦可為處理器2102另設置一個耦接於排程器2402與中斷控制器250之間的調整電路270,藉
此降低具有高即時性之執行緒被處理器2102暫停的機率。理想上,在多處理器系統200包含N個處理器210的情況下,可設置N個調整電路270,讓每個處理器210都搭配有一調整電路270。為了保留至少一個處理器210可供處理共用周邊中斷請求,排程器240可被設計為具有彼此溝通協調的機制,藉由適當選擇優先執行緒,令同一時間點至多有(N-1)個處理器在處理具高即時性的優先執行緒。或者,總排程器230可被設計為在分派執行緒時會參考各佇列的狀態,不讓N個佇列在同一時間都排有具高即時性的執行緒。實務上,電路設計者可根據經驗法則與實際應用場合,決定調整電路270的數量。
在實際應用中,標記決定電路260與調整電路270可被實現為固定式及/或可程式化數位邏輯電路,包含可程式化邏輯閘陣列、特定應用積體電路、微控制器、微處理器、數位信號處理器,與其他必要電路。
此外,本發明的範疇並不限於以某種特定型態的作業系統來控制多處理器系統200。
根據本發明之另一具體實施例為一種處理器管理方法,用以配合一多處理器系統中之一處理器,其流程圖係繪示於圖四。首先,步驟S41為接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記。步驟S42則是自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定處理器於執行該優先執行緒時對於一共用周邊中斷請求之接受度。隨後,步驟S43為根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
本發明所屬技術領域中具有通常知識者可理解,先前在介紹多處理器系統200時描述的各種操作變化亦可應用至圖四中的處理器管理
方法,其細節不再贅述。
根據本發明之又一具體實施例為一種非暫態電腦可讀取儲存媒體,應用於一多處理器系統,其中儲存有能由一處理器讀取並執行之一程式碼。該程式碼係用以管理該多處理器系統中之一處理器。於該程式碼中,一第一程式碼係用以接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記。一第二程式碼係用以自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定處理器於執行該優先執行緒時對於一共用周邊中斷請求之接受度。一第三程式碼係用以根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
實務上,上述非暫態電腦可讀取媒體可為電子、磁性及光學儲存裝置,例如唯讀記憶體(ROM)、隨機存取記憶體(RAM)、CD-ROM、DVD、磁帶、軟碟、硬碟。舉例而言,上述程式碼可以被編寫為一作業系統之程式碼的一部份。此外,該程式碼可利用各種程式語言實現。
本發明所屬技術領域中具有通常知識者可理解,先前在介紹多處理器系統200時描述的各種操作變化亦可應用至上述非暫態電腦可讀取媒體,其細節不再贅述。
藉由以上具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
Claims (9)
- 一種多處理器系統,包含:多個處理器;一暫存器,其中記錄有該多個處理器中一特定處理器對於一共用周邊中斷請求之接受度;一執行緒產生電路,用以接收多個請求,據以產生將交由該多個處理器執行之多個執行緒,該多個執行緒對應於多個應用程式;一標記決定電路,耦接於該執行緒產生電路,每當該執行緒產生電路接收到該多個請求之一時,該標記決定電路至少根據對應該執行緒之一屬性決定將包含在該執行緒中之一即時性標記;一排程器,用以自分派給該特定處理器之多個執行緒中選擇該特定處理器將執行之一優先執行緒;一中斷控制器,用以將多個中斷請求分派給該多個處理器,並且在分派該多個中斷請求時將該暫存器所記錄之該接受度納入考慮;以及一調整電路,耦接於該排程器與該中斷控制器之間,用以根據該優先執行緒之該即時性標記,至該暫存器設定該特定處理器於執行該優先執行緒時對於該共用周邊中斷請求之接受度。
- 如申請專利範圍第1項所述之多處理器系統,其中若該即時性標記指出該優先執行緒之即時性高於一預設門檻值,該調整電路至該暫存器將該特定處理器對於該共用周邊中斷請求之接受度調整為:該特定處理器於執行該優先執行緒時不接受任何共用周邊中斷請求。
- 如申請專利範圍第1項所述之多處理器系統,其中若該即時性標記指出該優先執行緒之即時性低於一預設門檻值,該調整電路至該暫存器將該特定處理器對於中斷之該接受度調整為:該特定處理器於執行該優先執行緒時可接受該共用周邊中斷請求。
- 一種處理器管理方法,用以配合一多處理器系統中之一特定處理器,該管理方法包含:(a)接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記;(b)自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定處理器於執行該優先執行緒時對於一共用周邊中斷請求之接受度;以及(c)根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
- 如申請專利範圍第4項所述之管理方法,其中步驟(c)包含:若該即時性標記指出該優先執行緒之即時性高於一預設門檻值,將該特定處理器對於該共用周邊中斷請求之接受度調整為:該特定處理器於執行該優先執行緒時不接受任何共用周邊中斷請求。
- 如申請專利範圍第4項所述之管理方法,其中步驟(c)包含:若該即時性標記指出該優先執行緒之即時性低於一預設門檻值,將該特定處理器對於該共用周邊中斷請求之接受度調整為:該特定處理器於執行該優先執行緒時接受所有種類的共用周邊中斷請求。
- 一種非暫態電腦可讀取儲存媒體,應用於一多處理器系統,其中儲存有能由一處理器讀取並執行之一程式碼,該程式碼係用以管理該多處理器系統中之一特定處理器且包含:一第一程式碼,用以接收對應於多個應用程式之多個請求,據以產生多個執行緒,並針對每一執行緒之一屬性為該執行緒決定一即時性標記;一第二程式碼,用以自分派給該特定處理器之多個執行緒中選擇一優先執行緒,並根據該優先執行緒之該即時性標記,設定該特定 處理器於執行該優先執行緒時對於一共用周邊中斷請求之接受度;以及一第三程式碼,用以根據該特定處理器對於該共用周邊中斷請求之接受度,決定是否將該共用周邊中斷請求分派給該特定處理器。
- 如申請專利範圍第7項所述之非暫態電腦可讀取儲存媒體,其中該第三程式碼被編寫為:若該即時性標記指出該優先執行緒之即時性高於一預設門檻值,將該特定處理器對於該共用周邊中斷請求之接受度調整為:該特定處理器於執行該優先執行緒時不接受任何共用周邊中斷請求。
- 如申請專利範圍第7項所述之非暫態電腦可讀取儲存媒體,其中該第三程式碼被編寫為:若該即時性標記指出該優先執行緒之即時性低於一預設門檻值,將該特定處理器對於該共用周邊中斷請求之接受度調整為:該特定處理器於執行該優先執行緒時接受所有種類的共用周邊中斷請求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106138347A TWI639955B (zh) | 2017-11-06 | 2017-11-06 | 多處理器系統及其處理器管理方法 |
US15/873,027 US20190138364A1 (en) | 2017-11-06 | 2018-01-17 | Multi-processor system and processor management method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106138347A TWI639955B (zh) | 2017-11-06 | 2017-11-06 | 多處理器系統及其處理器管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI639955B true TWI639955B (zh) | 2018-11-01 |
TW201918876A TW201918876A (zh) | 2019-05-16 |
Family
ID=65034463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106138347A TWI639955B (zh) | 2017-11-06 | 2017-11-06 | 多處理器系統及其處理器管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190138364A1 (zh) |
TW (1) | TWI639955B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI768649B (zh) * | 2021-01-08 | 2022-06-21 | 國立成功大學 | 執行緒束排程方法及使用該方法的串流多處理器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155536A1 (en) * | 2006-12-22 | 2008-06-26 | Konstantin Levit-Gurevich | Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor |
CN101366008A (zh) * | 2006-01-31 | 2009-02-11 | 精工爱普生株式会社 | 多处理器系统以及用于在计算机中执行多处理器系统的控制方法的程序 |
TW201023043A (en) * | 2008-09-19 | 2010-06-16 | Qualcomm Inc | Methods and systems for allocating interrupts in a multithreaded processor |
CN101976206A (zh) * | 2010-10-28 | 2011-02-16 | 北京中星微电子有限公司 | 一种中断处理方法和装置 |
CN102147722A (zh) * | 2011-04-08 | 2011-08-10 | 深圳中微电科技有限公司 | 实现中央处理器和图形处理器功能的多线程处理器及方法 |
CN102341780A (zh) * | 2009-03-17 | 2012-02-01 | 高通股份有限公司 | 实时多线程调度器及调度方法 |
TW201413594A (zh) * | 2012-09-21 | 2014-04-01 | Htc Corp | 多核心裝置以及其多執行緒排程方法 |
TW201432565A (zh) * | 2013-02-07 | 2014-08-16 | Htc Corp | 用於執行緒排程的方法以及系統 |
CN102567090B (zh) * | 2010-12-02 | 2016-03-16 | 国际商业机器公司 | 在计算机处理器中创建执行线程的方法和系统 |
TW201701170A (zh) * | 2015-05-29 | 2017-01-01 | 高通公司 | 用於多執行緒處理器之頻寬/資源管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080295104A1 (en) * | 2004-07-23 | 2008-11-27 | Matsushita Electric Industrial Co., Ltd. | Realtime Processing Software Control Device and Method |
JP5173712B2 (ja) * | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ |
US9183030B2 (en) * | 2011-04-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Virtual processor allocation techniques |
US9342374B2 (en) * | 2013-06-28 | 2016-05-17 | Dell Products, L.P. | Method of scheduling threads for execution on multiple processors within an information handling system |
US9830187B1 (en) * | 2015-06-05 | 2017-11-28 | Apple Inc. | Scheduler and CPU performance controller cooperation |
-
2017
- 2017-11-06 TW TW106138347A patent/TWI639955B/zh not_active IP Right Cessation
-
2018
- 2018-01-17 US US15/873,027 patent/US20190138364A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101366008A (zh) * | 2006-01-31 | 2009-02-11 | 精工爱普生株式会社 | 多处理器系统以及用于在计算机中执行多处理器系统的控制方法的程序 |
US20080155536A1 (en) * | 2006-12-22 | 2008-06-26 | Konstantin Levit-Gurevich | Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor |
TW201023043A (en) * | 2008-09-19 | 2010-06-16 | Qualcomm Inc | Methods and systems for allocating interrupts in a multithreaded processor |
CN102341780A (zh) * | 2009-03-17 | 2012-02-01 | 高通股份有限公司 | 实时多线程调度器及调度方法 |
CN101976206A (zh) * | 2010-10-28 | 2011-02-16 | 北京中星微电子有限公司 | 一种中断处理方法和装置 |
CN102567090B (zh) * | 2010-12-02 | 2016-03-16 | 国际商业机器公司 | 在计算机处理器中创建执行线程的方法和系统 |
CN102147722A (zh) * | 2011-04-08 | 2011-08-10 | 深圳中微电科技有限公司 | 实现中央处理器和图形处理器功能的多线程处理器及方法 |
TW201413594A (zh) * | 2012-09-21 | 2014-04-01 | Htc Corp | 多核心裝置以及其多執行緒排程方法 |
TW201432565A (zh) * | 2013-02-07 | 2014-08-16 | Htc Corp | 用於執行緒排程的方法以及系統 |
TW201701170A (zh) * | 2015-05-29 | 2017-01-01 | 高通公司 | 用於多執行緒處理器之頻寬/資源管理 |
Also Published As
Publication number | Publication date |
---|---|
US20190138364A1 (en) | 2019-05-09 |
TW201918876A (zh) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9742869B2 (en) | Approach to adaptive allocation of shared resources in computer systems | |
US9207977B2 (en) | Systems and methods for task grouping on multi-processors | |
US20110119674A1 (en) | Scheduling method, scheduling apparatus and multiprocessor system | |
CN101980169B (zh) | 信息处理装置及信息处理方法 | |
JP4996519B2 (ja) | 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 | |
JP5309703B2 (ja) | 共有メモリの制御回路、制御方法及び制御プログラム | |
JPWO2007004696A1 (ja) | アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法 | |
JP2011044165A (ja) | システムにおける要求のスケジューリング | |
CN113316767A (zh) | 处理器处的松弛度感知、动态优先级变化 | |
US20180239652A1 (en) | Lightweight thread synchronization using shared memory state | |
US8799912B2 (en) | Application selection of memory request scheduling | |
TWI639955B (zh) | 多處理器系統及其處理器管理方法 | |
US20130262834A1 (en) | Hardware Managed Ordered Circuit | |
WO2024041625A1 (zh) | 多线程处理器的指令分发方法、装置和存储介质 | |
JP2007280253A (ja) | 情報処理装置及び情報処理方法 | |
US11068308B2 (en) | Thread scheduling for multithreaded data processing environments | |
US8910181B2 (en) | Divided central data processing | |
US20200097326A1 (en) | Dynamic Access of Task Queues in a Parallel Processing System | |
EP3591518B1 (en) | Processor and instruction scheduling method | |
JP2013114538A (ja) | 情報処理装置、情報処理方法及び制御プログラム | |
CN109871275A (zh) | 多处理器系统及其处理器管理方法 | |
US11481250B2 (en) | Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values | |
EP3238085B1 (en) | Virtual legacy wire | |
JP2013041361A (ja) | リソース調停システム及び調停方法 | |
JP2010113414A (ja) | マルチコアシステム、スレッドスケジューリング方法、プログラム、記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |