TWI381315B - Synchronization elements for multi-core embedded systems - Google Patents
Synchronization elements for multi-core embedded systems Download PDFInfo
- Publication number
- TWI381315B TWI381315B TW097140978A TW97140978A TWI381315B TW I381315 B TWI381315 B TW I381315B TW 097140978 A TW097140978 A TW 097140978A TW 97140978 A TW97140978 A TW 97140978A TW I381315 B TWI381315 B TW I381315B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- thread
- synchronization
- core embedded
- embedded system
- 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
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
本發明係有關一種多核心嵌入式系統,特別是一種可改善多核心嵌入式系統之同步問題的同步元件。
按,在電腦系統中,常常發生不同的元件要對同一筆資料同時進行存取之同步問題,或兩個以上的程式(或程序)的執行流程、順序都需透過同一筆資料內容來決定的同步問題,通常在針對不同程序之間的同步問題,可以分成通用處理器架構(Common processor architecture)與嵌入式系統架構(embedded system architecture)之兩種架構來討論。
在通用處理器架構中,例如Intelx86架構,同步問題是交由軟體處理,即作業系統。作業系統對不同的處理程序(process)之間,需要作資料同步或流程控制的工作時,有許多的工作是必須要互斥的,所謂的互斥是指某一個資料變數或某一段處理流程在同一時間只能有一個處理程序可以存取或處理。其中,作業系統具有多種處理資料同步的方法,例如Linux作業系統是採用共享記憶體(shared memory)、導管(pipe)等,另,作業系統在流程控制方面,一般是採用多執行緒(multi-threading)的執行方式中,故會需要大量流程控制的機制,例如Linux系統的POSIX執行緒資料庫。
然,在作業系統處理中,會發生處理程序無意義切換的狀況,這是因為當某一個處理程序正在存取一筆共享資料時,若有其他處理程序也要存取這筆資料,就會不斷發出詢問要求,詢問這筆資料是否已經可存取,若被拒絕,則再度切換處理程序,重複提出詢問要求,所以這將會造成處理程序不斷切換,浪費中央處理
器資源,卻又沒完成任何工作。
在嵌入式系統架構中,同步問題是交由函式庫(Library),或特定硬體處理。函式庫的方式類似作業系統的方式,擁有可程式化、模組化之優點,且比作業系統的執行速度快,但缺乏安全性及沒有受其他函式庫的支援。且,嵌入式系統使用特定硬體的好處在於速度快,並可以有不同於軟體的作法來做不同的功能面以及加速,但就是無法可程式化,即缺少彈性與擴充性。
再者,在嵌入式系統中會發生匯流排流量(bus traffic)無意義超載的狀況,這乃起因於每一元件要搶奪同一資源時,都會發出一個要求(request)給資源,而大部分的資源都只能允許一個處理程序使用,所以其他的處理程序將不斷將“要求”送到匯流排,這將造成匯流排流量超載,並且造成所有需要使用匯流排的元件都被阻擋以及強迫等待中。且,在嵌入式系統採用特定硬體所產生的主要問題是沒有統一介面,因為每一個硬體有各自的規格,並沒有統一的介面,故導致每一次設計新的系統架構時,都得重新設計相關的同步硬體,而大幅浪費時間與資源,缺乏統一的介面亦帶來另一問題,就是大部分的設計都傾向小數量的支援,即同一時間內只支援小量的元件,因為是特定的硬體,所以不支援其他介面的元件。
有鑑於此,本發明係針對上述之困擾,提供一種用於多核心嵌入式系統的同步元件,以克服上述缺失。
本發明之一目的係在提出一種用於多核心嵌入式系統的同步元件,可統一處理資料同步、流程控制或資料共享等工作,改善中央處理器使用率及妥善規劃處理程序。
本發明之另一目的係在提出一種用於多核心嵌入式系統的同步元件,作為不同性質與組態元件間之一統一同步介面。
本發明之再一目的係在提出一種用於多核心嵌入式統的同步元件,其具有金鑰擴充功能。
根據本發明所揭示的用於多核心嵌入式系統的同步元件,係包括一金鑰管理模組、一執行緒排程單元與一擴充單元。金鑰管理模組可儲存金鑰及分配、管理金鑰,並於金鑰發給一資料同步程序時,支援資料同步,執行緒排程單元則於金鑰發給一執行緒程序時,提供執行緒管理。擴充單元是用於提供金鑰管理模組記憶容量擴充,可外接一外部記憶體,故一旦金鑰擴充或內部記憶體儲存空間不足時,可存在外部記憶體中。
本發明之目的或其他目的對於此技藝之通常知識者而言,閱讀以下實施例之詳細內容後係顯而易知的。
先前的概述與接下來的詳細敘述都是範例,以便能進一步解釋本發明之專利請求項。
本發明揭示一種用於多核心嵌入式系統的同步元件,即應用於任意內部連結所有元件的系統中,如第一圖所示,本發明之內連結系統(interconnect system)1可連結一同步元件10與多種不同的元件11,其中同步元件10是一種具有統一介面的元件,可作為不同性質、不同組態的元件11之間的同一同步介面。
請連同參照第二圖,乃本發明同步元件的結構示意圖。如圖所示,同步元件10包括一暫存器存取介面12,其可耦接至少一暫存器13,且係採用記憶體映射(Memory mapping)方式來存取暫存器13,其中記憶體映射技術係指每一暫存器分配到一單一記憶體位址,故不同種類的元件只要使用各自的記憶體存取功能讀寫此記憶體位址,就會自動轉換成讀寫暫存器,並藉由讀寫暫存器來控制元件,一金鑰管理模組14耦接暫存器存取介面12,係用以儲存金鑰及分配、管理金鑰,且主要係由一金鑰管理器(key manager)
141、一金鑰埠(key pool)142與一金鑰佇列(key queue)143所組成,其中金鑰埠142是儲存金鑰,金鑰佇列143是支援資料同步與執行緒處理,金鑰管理器141利用金鑰埠142與金鑰佇列143分配及管理金鑰,一執行緒排程器16耦接金鑰管理模組14,係用以提供執行緒管理,以及一擴充單元18耦接金鑰管理模組14,用以提供金鑰管理模組14記憶容量擴充,且擴充單元18主要是由一金鑰-記憶體位址轉換器181與一相耦接的外部記憶體存取介面182所組成,外部記憶體存取介面182可外接一外部記憶體19。
且,金鑰結構20如第三圖所示,乃包括一致能位元(enable bit)201與一類型位元(type bit)202,其中致能位元201是判別金鑰是否在使用,類型位元202是判別金鑰要發給一資料同步程序或一執行緒程序。
其中,資料同步程序係受多核心嵌入式系統的作業系統所執行,作業系統所執行的資料同步之常見程序包括利用金鑰決定資料是否可存取,及利用金鑰建立一程式之臨界區間(critical section),決定程式是否可執行。
以下是進一步解釋前述之資料同步程序:請參照第四(a)-四(d)圖,分別係本發明之同步元件於嵌入式系統中進行資料同步的流程狀態圖。首先,如第四(a)圖所示,在嵌入式系統中,當有處理程序1與處理程序2要執行某一段程式,但由於此段程式同一時間只能受一程序執行,所以作業系統22會先向同步元件10要求一金鑰,之後同步元件10給子作業系統22金鑰,作業系統22再將金鑰給處理程序1與處理程序2,所以每個處理程序就設法取得同步元件10之金鑰管理器141的同意,得到同意的一方,就可以執行臨界區間,如第四(b)圖所示,是由處理程序2得到同意並執行臨界區間,而沒得到同意
的處理程序1會被替換到金鑰佇列143中,可先執行其他程序。然後如第四(c)、四(d)圖所示,等到處理程序2處理完畢,釋放金鑰給同步元件10,同步元件10再經由作業系統通知處理程序1,處理程序1得到金鑰後就可繼續執行臨界區間,執行此程式。
由此可知,這樣的規劃可使等待中處理程序不需再忙碌等待(busy waiting),可以先切換別的處理程序來執行,等到其金鑰獲得同意時,再切換回來,以增加整體的執行效能。
其中,執行緒程序係受多核心嵌入式系統的作業系統所執行,作業系統所執行的執行緒之常見程序包括:(1)產生(Create)-產生一新執行緒到不同元件;(2)結合(Join)-等待某至少一指定的執行緒結束,一加入的執行緒再往下執行;(3)障礙(Barrier)-等待相關的執行緒執行到相同地方,加入的執行緒再同時開始執行;及(4)結束(Terminal)-通知等待中的執行緒,至少一原指定執行的執行緒已結束。
以下是進一步解釋前述之執行緒程序:因為執行緒的代號跟金鑰是相同的,所以執行緒的管理是建立在金鑰的管理上。當有一「要求」進來,且金鑰管理器141發現是屬於執行緒方面,就會把「要求」送到執行緒排程器16。且,當此「要求」為“產生”要求,執行緒排程器16就送一金鑰與一特定指定記憶體位址給指定的元件,之後指定的元件收到金鑰,就到指定的記憶體位址開始一新的執行緒;當此「要求」為“結合”要求,執行緒排程器16將執行緒代號送到執行緒佇列暫存,等待原至少一指定的執行緒結束,加入的執行緒才往下執行;當此「要求」為“障礙”要求,執行緒排程者將執行緒代號送到執行緒佇列暫存,等待相關的執行緒送來相關的要求,加入的執行緒才開始同時執行;當此「要求」為“結束”要求,執行緒排程者將送執行緒代號到金鑰佇列143檢查,通知等待中的執行緒,
至少一原指定執行的執行緒已結束,可全部重新啟動。
再者,由於金鑰埠142之金鑰儲存空間是有限的,故同步元件10可藉由擴充單元18提供金鑰擴充功能,擴充單元18之金鑰-記憶體位址轉換器181的結構如第五圖所示。假設金鑰的總長度是N位元,而內部記憶體(金鑰埠142與金鑰佇列143)的索引總共需要k位元,當金鑰埠142送出金鑰索引時,若發現索引是位在內部記憶體時,就把值回傳,若是發現索引是位在記憶體的最後位址,就把記憶體位址傳出來以作為記憶體的基底位址(base address),並把金鑰之N-k位元值當作位移量(offset vale),兩者相加以得到實際金鑰存在外部記憶體的位址,再透過外部記憶體存取介面182就可儲存在一外部記憶體19中。
由此可知,本發明利用金鑰埠與金鑰佇列的概念同時達到資料同步與執行緒管理的功能,進而解決習知軟體不斷查詢所造成的內部連接機制流阻塞的問題,以及特定硬體介面不統一的問題,藉此提升整體系統效能以及穩定性,減少系統開發複雜度及縮短開發時程、降低軟體開發成本,並增加系統設計者彈性以及軟體開發人員空間。
以上所述之實施例僅係為說明本發明之技術思想及特點,其目的在使熟習此項技藝之人士能夠瞭解本發明之內容並據以實施,當不能以之限定本發明之專利範圍,即大凡依本發明所揭示之精神所作之均等變化或修飾,仍應涵蓋在本發明之專利範圍內。
1‧‧‧內連結系統
10‧‧‧同步元件
11‧‧‧元件
12‧‧‧暫存器存取介面
13‧‧‧暫存器
14‧‧‧金鑰管理模組
141‧‧‧金鑰管理器
142‧‧‧金鑰埠
143‧‧‧金鑰佇列
16‧‧‧執行緒排程器
18‧‧‧擴充單元
181‧‧‧金鑰-記憶體位址轉換器
182‧‧‧外部記憶體存取介面
19‧‧‧外部記憶體
20‧‧‧金鑰
201‧‧‧致能位元
202‧‧‧類型位元
第一圖為本發明之同步元件作為內連結系統之統一介面元件的示意圖。
第二圖為本發明之同步元件的方塊結構示意圖。
第三圖為本發明之金鑰結構示意圖。
第四(a)至四(d)圖為本發明之同步元件於嵌入式系統中進行
資料同步的流程狀態圖。
第五圖為本發明之同步元件的金鑰-記憶體位址轉換器之結構示意圖。
10‧‧‧同步元件
12‧‧‧暫存器存取介面
14‧‧‧金鑰管理模組
141‧‧‧金鑰管理器
142‧‧‧金鑰埠
143‧‧‧金鑰佇列
16‧‧‧執行緒排程器
18‧‧‧擴充單元
181‧‧‧金鑰-記憶體位址轉換器
182‧‧‧外部記憶體存取介面
Claims (13)
- 一種用於多核心嵌入式系統的同步元件,包括:一金鑰管理模組,可儲存金鑰及分配、管理該金鑰,並於該金鑰發給一資料同步程序時,支援資料同步;一執行緒排程器,其耦接該金鑰管理模組,並於該金鑰發給一執行緒程序時,提供執行緒管理;及一擴充單元,用以提供該金鑰管理模組記憶容量擴充,可外接一外部記憶體。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,其中該同步元件係作為不同性質與組態元件間之一統一同步介面。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,更包括一暫存器存取介面耦接該金鑰管理模組,並耦接至少一暫存器。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,其中該擴充單元包括一金鑰-記憶體位址轉換器與一相耦接的外部記憶體存取介面,且該外部記憶體存取介面耦接該外部記憶體。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,其中該金鑰管理模組包括:一金鑰埠,用於儲存該金鑰及支援該擴充單元的擴充功能;一金鑰佇列,支援資料同步與執行緒處理;及一金鑰管理器,利用該金鑰埠與該金鑰佇列分配及管理該金鑰。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,其中該金鑰包括一致能位元(enable bit)判別該金鑰是否在使用,及一類型位元(type bit)判別該金鑰是發給該資料同步 程序或執行緒程序。
- 如申請專利範圍第1項所述之用於多核心嵌入式系統的同步元件,其中該資料同步程序與該執行緒程序係受多核心嵌入式系統的作業系統所執行。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,該作業系統所執行的該資料同步程序包括利用該金鑰決定資料是否可存取。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,該作業系統所執行的該資料同步程序包括利用該金鑰建立一程式之臨界區間,決定該程式是否可執行。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,其中該作業系統所執行的該執行緒程序包括產生一新執行緒到不同元件。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,其中該作業系統所執行的該執行緒程序包括等到至少一原指定執行的執行緒結束,再執行一加入的執行緒。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,其中該作業系統所執行的該執行緒程序包括相關的執行緒執行到相同處,再開始同時執行一加入的執行緒。
- 如申請專利範圍第7項所述之用於多核心嵌入式系統的同步元件,其中該作業系統所執行的該執行緒程序包括通知等待中的執行緒,至少一原指定執行的執行緒已結束。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097140978A TWI381315B (zh) | 2008-10-24 | 2008-10-24 | Synchronization elements for multi-core embedded systems |
US12/366,699 US8250580B2 (en) | 2008-10-24 | 2009-02-06 | Multi-core SOC synchronization component |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097140978A TWI381315B (zh) | 2008-10-24 | 2008-10-24 | Synchronization elements for multi-core embedded systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201017541A TW201017541A (en) | 2010-05-01 |
TWI381315B true TWI381315B (zh) | 2013-01-01 |
Family
ID=42118773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097140978A TWI381315B (zh) | 2008-10-24 | 2008-10-24 | Synchronization elements for multi-core embedded systems |
Country Status (2)
Country | Link |
---|---|
US (1) | US8250580B2 (zh) |
TW (1) | TWI381315B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411600B2 (en) * | 2013-12-08 | 2016-08-09 | Intel Corporation | Instructions and logic to provide memory access key protection functionality |
CN117573609B (zh) * | 2024-01-16 | 2024-05-03 | 宁波中控微电子有限公司 | 一种具有冗余功能的片上系统及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044323A1 (en) * | 2002-10-08 | 2005-02-24 | Hass David T. | Advanced processor with out of order load store scheduling in an in order pipeline |
TW200602981A (en) * | 2004-03-31 | 2006-01-16 | Ignios Ltd | Resource management in a multicore architecture |
TW200709051A (en) * | 2005-03-18 | 2007-03-01 | Marvell World Trade Ltd | Real-time control apparatus having a multi-thread processor |
US20070294694A1 (en) * | 2006-06-16 | 2007-12-20 | Cisco Technology, Inc. | Techniques for hardware-assisted multi-threaded processing |
TW200809632A (en) * | 2006-08-11 | 2008-02-16 | Inventec Corp | A method for distributing threads executed in a multi-core central processing unit computer system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334159B1 (en) * | 1998-12-22 | 2001-12-25 | Unisys Corporation | Method and apparatus for scheduling requests within a data processing system |
US6401149B1 (en) * | 1999-05-05 | 2002-06-04 | Qlogic Corporation | Methods for context switching within a disk controller |
US6421741B1 (en) * | 1999-10-12 | 2002-07-16 | Nortel Networks Limited | Switching between active-replication and active-standby for data synchronization in virtual synchrony |
US7984268B2 (en) * | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US6990560B2 (en) * | 2003-01-16 | 2006-01-24 | International Business Machines Corporation | Task synchronization mechanism and method |
US7594089B2 (en) * | 2003-08-28 | 2009-09-22 | Mips Technologies, Inc. | Smart memory based synchronization controller for a multi-threaded multiprocessor SoC |
JP4448784B2 (ja) * | 2005-03-15 | 2010-04-14 | 株式会社日立製作所 | 並列計算機の同期方法及びプログラム |
GB0519981D0 (en) * | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US7555607B2 (en) * | 2005-11-10 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Program thread syncronization for instruction cachelines |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US7814243B2 (en) * | 2007-06-01 | 2010-10-12 | Sonics, Inc. | Shared storage for multi-threaded ordered queues in an interconnect |
-
2008
- 2008-10-24 TW TW097140978A patent/TWI381315B/zh not_active IP Right Cessation
-
2009
- 2009-02-06 US US12/366,699 patent/US8250580B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044323A1 (en) * | 2002-10-08 | 2005-02-24 | Hass David T. | Advanced processor with out of order load store scheduling in an in order pipeline |
TW200602981A (en) * | 2004-03-31 | 2006-01-16 | Ignios Ltd | Resource management in a multicore architecture |
TW200709051A (en) * | 2005-03-18 | 2007-03-01 | Marvell World Trade Ltd | Real-time control apparatus having a multi-thread processor |
US20070294694A1 (en) * | 2006-06-16 | 2007-12-20 | Cisco Technology, Inc. | Techniques for hardware-assisted multi-threaded processing |
TW200809632A (en) * | 2006-08-11 | 2008-02-16 | Inventec Corp | A method for distributing threads executed in a multi-core central processing unit computer system |
Also Published As
Publication number | Publication date |
---|---|
TW201017541A (en) | 2010-05-01 |
US8250580B2 (en) | 2012-08-21 |
US20100107167A1 (en) | 2010-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100573456C (zh) | 一种并行多处理器虚拟机系统 | |
KR102571293B1 (ko) | 충돌들의 존재시 효율적인 작업 스케줄링을 위한 방법 | |
US7007108B2 (en) | System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address | |
CN100422940C (zh) | 在数据处理系统中仲裁线程访问共享资源的系统和方法 | |
US8301717B2 (en) | Extended virtual memory system and method in a computer cluster | |
US20020129115A1 (en) | Dynamic memory placement policies for NUMA architecture | |
KR100985318B1 (ko) | 운영 체계 서비스의 투명한 지원을 위한 방법 및 제품 | |
US20150213105A1 (en) | Data processing method, apparatus, and storage medium | |
JP2012104140A (ja) | 待機状態にあるプロセッサ実行リソースの共有 | |
JP2018534676A5 (zh) | ||
US9244734B2 (en) | Mechanism of supporting sub-communicator collectives with o(64) counters as opposed to one counter for each sub-communicator | |
US10031697B2 (en) | Random-access disjoint concurrent sparse writes to heterogeneous buffers | |
Dang et al. | Advanced thread synchronization for multithreaded MPI implementations | |
Yilmazer et al. | HQL: A scalable synchronization mechanism for GPUs | |
WO2024193096A1 (zh) | 数据迁移方法及计算设备 | |
WO2024188050A1 (zh) | 分布式文件系统的文件锁管理方法、设备及介质 | |
TWI381315B (zh) | Synchronization elements for multi-core embedded systems | |
US9250977B2 (en) | Tiered locking of resources | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
US8219762B1 (en) | Computer system and method for leasing memory location to allow predictable access to memory location | |
Maroun et al. | Time-predictable synchronization support with a shared scratchpad memory | |
Wellings et al. | Ada and cc-NUMA Architectures What can be achieved with Ada 2005? | |
Ma et al. | The performance improvements of highly-concurrent grid-based server | |
US7210018B2 (en) | Multiple-stage pipeline for transaction conversion | |
US20240338330A1 (en) | Apparatus and method for supporting data input/output operation based on a data attribute in a shared memory device or a memory expander |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |