TWI412999B - 平行化快速啟動方法及具有多處理單元之電子裝置 - Google Patents
平行化快速啟動方法及具有多處理單元之電子裝置 Download PDFInfo
- Publication number
- TWI412999B TWI412999B TW99109875A TW99109875A TWI412999B TW I412999 B TWI412999 B TW I412999B TW 99109875 A TW99109875 A TW 99109875A TW 99109875 A TW99109875 A TW 99109875A TW I412999 B TWI412999 B TW I412999B
- Authority
- TW
- Taiwan
- Prior art keywords
- processing unit
- library
- operating system
- electronic device
- application layer
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本發明是有關於一種具有多處理單元之電子裝置的啟動方法,特別是指一種加快具有多處理單元之電子裝置啟動速度的平行化快速啟動方法。
智慧型手機等手持式電子裝置兼具通訊、資料傳輸及多媒體等功能,隨著技術發展成熟而日益普及。這類型電子裝置之處理器(CPU)需要處理大量應用程式及多媒體檔案,近年來知名晶片廠為此極力發展雙核心(Dual Core)的CPU架構以提高運算效率。
舉例來說,美國高通(Qualcomm)其中一雙核心處理器架構即採用一較慢的處理核心,例如執行時脈為256MHz的ARM9,執行通訊專用作業系統及處理3G通訊協定,另外採一較快的處理核心,例如執行時脈為768~1000MHz的ARM11,執行應用層之作業系統(例如Windows Mobile或Linux)。
參閱圖1,在開機時,ARM9在第一階段中執行Boot Loader。Boot Loader主要運行任務包括初始化硬體設備,將軟硬體環境帶到一個合適的狀態。當第一階段完成後,ARM9一方面進行處理3G通訊協定用之作業系統(簡稱通訊作業系統)的載入動作,另一方面通知ARM11執行第二階段之工作─載入應用層之作業系統(以Linux舉例說明)。第二階段處理內容包括Linux核心(kernel)開機、載入程式庫(library)以及所有硬體周邊的初始化,大約需要20秒的時間來完成。接下來ARM11繼續執行第三階段,啟動圖形化使用者介面(簡稱UI)。然而,優美的UI設計,使得ARM11在第三階段所需載入的程式庫越來越龐大,拖慢開機時間。
在目前開機機制下,由於ARM11處理時間遠長於ARM9載入通訊用作業系統的時間,且即便通訊用作業系統早已載入完成,在Linux作業系統及使用者介面未載入完成的情況下,ARM9並無法啟用通訊相關運作而只能閒置空等。由於手持式電子裝置的使用者,總是希望該手持式電子裝置上電後能立即使用,數十秒的開機時間總讓使用者感覺相當漫長。
為了改善前述開機時間長的問題,通常是改換更高效能的處理核心執行開機作業,但成本勢必增加。
因此,本發明之目的,即在提供一種平行化快速啟動方法,適用於具有多處理單元的電子裝置,且藉由可初始化硬體設備之程式的改寫而實現。
本發明之另一目的,在於提供一種電子裝置,藉由可初始化硬體設備之程式的改寫加快開機速度。
為達到上述目的,本發明電子裝置包含一儲存一可初始化硬體設備之程式及多數程式庫的儲存媒體、一隨機存取記憶體,及一第一處理單元與一第二處理單元。該電子裝置執行之平行化快速啟動方法包含以下步驟:
(a)使該第一處理單元執行一可初始化硬體設備之程式;當初始化硬體設備完成,執行步驟(b)及(c)。
(b)該第一處理單元從一儲存媒體將至少一由該第二處理單元專屬呼叫使用的程式庫載入到隨機存取記憶體。
(c)使該第二處理單元執行一作業系統之核心開機,接著從該儲存媒體載入由其本身專屬呼叫的其餘程式庫。
較佳地,該步驟(b)所述載入的程式庫包括一應用層之作業系統的至少部分程式庫,甚至還包括圖形化使用者介面所含之至少部份程式庫。
較佳地,該電子裝置是一例如智慧型手機等嵌入式系統,且可初始化硬體設備之程式是指Boot Loader。然而本發明不以嵌入式系統為限,亦可以是一般電腦系統,藉由BIOS程式初始化硬體設備。
較佳地,該第一處理單元是依據一寫在Boot Loader之預設的程式庫列表進行預載程式庫的工作。
較佳地,該第一處理單元與第二處理單元是一雙核心處理器或多核心處理器當中的兩個處理核心,或是兩顆處理器。
本發明之功效在於藉助程式之改寫來讓第一處理單元分擔部分第二處理單元的載入工作,毋須更換硬體即能縮短整體啟動時間,縮短使用者等待時間。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一個較佳實施例的詳細說明中,將可
清楚的呈現。
參閱圖2,本發明電子裝置100之較佳實施例是一具有複數個處理單元的嵌入式系統(Embedded system),藉由Boot Loader程式或具有相同功能的積體電路(IC)初始化硬體設備。前述複數個處理單元,是指電子裝置100採用雙核心(Dual Core)或多核心處理器(CPU),或具有一個以上CPU。以下以雙核心CPU舉例說明。
該電子裝置100包含一第一處理單元1、一第二處理單元2、一例如為快閃記憶體(flash)的非揮發性儲存媒體3,及一隨機存取記憶體(RAM)4。本實施例之第一、第二處理單元1、2即雙核心處理器當中的兩個運算核心,第一處理單元1運算能力較低,執行一通訊專用的作業系統而具有數據及通訊之功能;第二處理單元2運算能力較高,執行一應用層的作業系統並用以處理各種應用程式。但本發明不以此為限,可採相同效能之運算核心。
儲存媒體3中儲存有一Boot Loader程式、該主要用於處理3G通訊協定的作業系統,以下以OS_1代稱,及該應用層的作業系統,例如為Linux或Windows Mobile等,以下以OS_2代稱。
配合參閱圖3及圖4,當電子裝置100上電時,第一處理單元1送出指令,透過該第一處理單元1專屬的虛擬記憶體(virtual memory)10將儲存媒體3中的Boot Loader程式讀出並開始執行。在Boot Loader執行過程中,可完成硬體設備初始化(步驟S1)。
為避免第一處理單元1在執行完硬體設備初始化之後直接開始載入OS_1,導致最後閒置空等第二處理單元2,本實施例之Boot Loader使第一處理單元1在執行硬體設備初始化之後,不但發出信號通知第二處理單元2進行OS_2核心(kernel)開機(步驟S4),且第一處理單元1本身還參照一預設的程式庫(library)列表進行預載OS_2部分程式庫的工作(步驟S2)。前述「部分程式庫」是指作業系統的複數個程式庫當中的一部分,當然,實作上也可設計為預載作業系統的所有程式庫。
本實施例將預設的程式庫列表寫在Boot Loader程式當中,當第一處理單元1讀取預載程式庫的指令,則從儲存媒體3中將該程式庫列表中所指定的程式庫讀出。讀出的程式庫儲存在一個第一處理單元1專屬的虛擬記憶體10中的第一邏輯位址,實際上是載入RAM 4中可映射到該第一邏輯位址的實體位址,該實體位址又可映射到第二處理單元2專屬的虛擬記憶體20中的第二邏輯位址,第二邏輯位址可供將來第二處理單元2呼叫使用。第一處理單元1將程式庫載入RAM 4的方法包括預先讀取程式(read ahead)、剖析程式檔頭(parse header)、函式/符號重定位(function or symbol relocation)的方式。
當第一處理單元1預載程式庫之工作完成,接著進行OS_1載入動作(步驟S3)。
第二處理單元2收到第一處理單元1的通知指令執行OS_2核心開機(步驟S4)之後,會判斷所需要的動態程式
庫(Shared Library)是否已經載入,若已被預先載入到RAM 4,則可逕行再處理下一程式庫,因而加速整體之載入速度(步驟S5)。當然,若第一處理單元1預載OS_2的所有的程式庫,第二處理單元2則可省略步驟S5,直接進入步驟S6進行圖形化使用者介面(UI)之載入工作。
實作上,該預設的程式庫列表包括OS_2全部或是當中部分程式庫,由系統開發者依實際條件決定。決定程式庫列表須考慮的參數包括第一處理單元1與第二處理單元2的效能、資源配置、程式庫大小、載入所需時間等;當然,也需考慮OS_1的載入時間,以做整體開機時間的估算。值得一提的是,除了OS_2的程式庫的預載之外,本發明也可設計使第一處理單元1預載部分圖形化使用者介面所需要使用的動態程式庫。
綜上所述,藉由本實施例提出的技術方案,第二處理單元2載入OS_2程式庫的時間縮短,進而提早載入使用者介面的時間,縮短整體開機時間,故確實能達成本發明之目的。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
100‧‧‧電子裝置
1‧‧‧第一處理單元
10‧‧‧虛擬記憶體
2‧‧‧第二處理單元
20‧‧‧虛擬記憶體
3‧‧‧儲存媒體
4‧‧‧RAM
S1~S6‧‧‧步驟
圖1是一習知具有雙核心處理器的電子裝置之開機流程示意圖,說明其中二處理核心的工作流程;
圖2是一裝置方塊圖,說明本發明具有多處理單元之電子裝置的較佳實施例;圖3是一開機流程示意圖,說明本實施例之第一處理單元與第二處理單元的工作流程;及圖4是一程式庫載入示意圖,說明程式庫從一儲存媒體載入一隨機存取記憶體的對應關係。
1...第一處理單元
2...第二處理單元
S1~S6...步驟
Claims (11)
- 一種平行化快速啟動方法,適用於具有多處理單元的電子裝置,其中,該電子裝置具有一第一處理單元、一執行一應用層之作業系統的第二處理單元、一儲存一可初始化硬體設備之程式及多數程式庫的儲存媒體,及一隨機存取記憶體,所述程式庫包括該應用層之作業系統的部分程式庫,該方法包含以下步驟:(a)使該電子裝置的該第一處理單元執行該可初始化硬體設備之程式;當初始化硬體設備完成,執行步驟(b)及(c);(b)該第一處理單元從該儲存媒體將其中至少一由該電子裝置的該第二處理單元專屬呼叫使用的程式庫載入到該隨機存取記憶體,所載入程式庫包括該應用層之作業系統的至少部分程式庫;及(c)使該第二處理單元執行該應用層之作業系統的核心開機,接著從該儲存媒體載入由其本身專屬呼叫的其餘程式庫,其中包括圖形化使用者介面的程式庫。
- 依據申請專利範圍第1項所述之平行化快速啟動方法,其中,該步驟(b)所述載入的程式庫還包括圖形化使用者介面所需要使用的至少部份程式庫。
- 依據申請專利範圍第1項所述之平行化快速啟動方法,其中,該可初始化硬體設備之程式是指Boot Loader。
- 依據申請專利範圍第3項所述之平行化快速啟動方法,其中,該第一處理單元是依據一寫在Boot Loader之預 設的程式庫列表進行預載程式庫的工作。
- 依據申請專利範圍第1項所述之平行化快速啟動方法,其中,該儲存媒體還儲存一通訊專用的作業系統,該第一處理單元在步驟(b)預載程式庫完成後,對該第二處理單元發出通知,並接著進行該通訊專用的作業系統的載入動作,該第一處理單元執行該通訊專用的作業系統。
- 一種具有多處理單元之電子裝置,包含:一儲存媒體,儲存一可初始化硬體設備之程式及多數程式庫,所述程式庫包括一應用層之作業系統的部分程式庫;一隨機存取記憶體;及一第一處理單元與一第二處理單元,其中該第二處理單元執行該應用層之作業系統,當該電子裝置上電,該第一處理單元執行該可初始化硬體設備之程式,並且當初始化硬體設備完成,該第一處理單元從該儲存媒體將其中至少一由該第二處理單元專屬呼叫使用的程式庫載入至該隨機存取記憶體,所載入程式庫包括該應用層之作業系統的至少部分程式庫,且該第二處理單元執行該應用層之作業系統的核心開機,接著從該儲存媒體載入由該第二處理單元專屬呼叫的其餘程式庫,其中包括圖形化使用者介面的程式庫。
- 依據申請專利範圍第6項所述之具有多處理單元之電子裝置,其中,該第一處理單元與第二處理單元是一雙核心處理器或多核心處理器當中的兩個處理核心,或是兩 顆處理器。
- 依據申請專利範圍第6項所述之具有多處理單元之電子裝置,其中,該第一處理單元載入之由該第二處理單元專屬呼叫使用的程式庫還包括圖形化使用者介面所需要使用的至少部份程式庫。
- 依據申請專利範圍第6項所述之具有多處理單元之電子裝置,是一嵌入式系統,且該可初始化硬體設備之程式是指Boot Loader。
- 依據申請專利範圍第9項所述之具有多處理單元之電子裝置,該第一處理單元是依據一寫在Boot Loader之預設的程式庫列表進行預載程式庫的工作。
- 依據申請專利範圍第6項所述之具有多處理單元之電子裝置,其中,該儲存媒體還儲存一通訊專用的作業系統,該第一處理單元在預載程式庫完成後,對該第二處理單元發出通知,並接著進行該通訊專用的作業系統的載入動作,該第一處理單元執行該通訊專用的作業系統。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99109875A TWI412999B (zh) | 2010-03-31 | 2010-03-31 | 平行化快速啟動方法及具有多處理單元之電子裝置 |
US13/071,085 US9003174B2 (en) | 2010-03-31 | 2011-03-24 | Method for boosting an electronic device with multiple processing units, and electronic device for implementing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99109875A TWI412999B (zh) | 2010-03-31 | 2010-03-31 | 平行化快速啟動方法及具有多處理單元之電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201133343A TW201133343A (en) | 2011-10-01 |
TWI412999B true TWI412999B (zh) | 2013-10-21 |
Family
ID=44711000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99109875A TWI412999B (zh) | 2010-03-31 | 2010-03-31 | 平行化快速啟動方法及具有多處理單元之電子裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9003174B2 (zh) |
TW (1) | TWI412999B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823664B (zh) * | 2012-11-19 | 2017-12-15 | 中兴通讯股份有限公司 | 一种二进制合一Boot程序及内核程序的设计方法 |
JP5899152B2 (ja) * | 2013-04-25 | 2016-04-06 | 京セラドキュメントソリューションズ株式会社 | メモリーアクセス制御システム及び画像形成装置 |
US9658858B2 (en) * | 2013-10-16 | 2017-05-23 | Xilinx, Inc. | Multi-threaded low-level startup for system boot efficiency |
US9319576B2 (en) | 2014-01-29 | 2016-04-19 | Google Technology Holdings LLC | Multi-processor support for array imagers |
KR102146857B1 (ko) * | 2014-04-07 | 2020-08-21 | 삼성전자주식회사 | 촬영 장치 및 이의 제어 방법 |
TWI557644B (zh) | 2014-11-12 | 2016-11-11 | 鴻海精密工業股份有限公司 | 雙處理器電子裝置及其快速開機啓動的方法 |
US11055105B2 (en) | 2018-08-31 | 2021-07-06 | Micron Technology, Inc. | Concurrent image measurement and execution |
US11403112B2 (en) * | 2018-11-08 | 2022-08-02 | Ricoh Company, Ltd. | Information processing apparatus, method of starting up an information processing apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040599A1 (en) * | 2006-08-10 | 2008-02-14 | Sony Corporation | Electronic appliance and startup method |
TW200941498A (en) * | 2008-03-26 | 2009-10-01 | Microsoft Corp | Booting an electronic device using flash memory and a limited function memory controller |
TW200951699A (en) * | 2008-06-10 | 2009-12-16 | Fujitsu Ltd | Electronic device, power-on method for an electronic device, and program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1275143C (zh) | 2003-06-11 | 2006-09-13 | 华为技术有限公司 | 数据处理系统及方法 |
JP4296996B2 (ja) | 2004-06-15 | 2009-07-15 | 富士通株式会社 | マルチコアプロセサ制御方式 |
US7814307B2 (en) * | 2006-03-16 | 2010-10-12 | Microsoft Corporation | Fast booting a computing device to a specialized experience |
US7689820B2 (en) * | 2006-09-27 | 2010-03-30 | L3 Communications Corporation | Rapid-boot computing device with dual operating systems |
KR101476691B1 (ko) * | 2008-04-23 | 2014-12-29 | 삼성전자주식회사 | 디바이스 구동장치 및 구동방법 |
CN101604252A (zh) | 2009-07-10 | 2009-12-16 | 深圳华为通信技术有限公司 | 多处理器系统以及多处理器系统启动方法 |
-
2010
- 2010-03-31 TW TW99109875A patent/TWI412999B/zh active
-
2011
- 2011-03-24 US US13/071,085 patent/US9003174B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040599A1 (en) * | 2006-08-10 | 2008-02-14 | Sony Corporation | Electronic appliance and startup method |
TW200941498A (en) * | 2008-03-26 | 2009-10-01 | Microsoft Corp | Booting an electronic device using flash memory and a limited function memory controller |
TW200951699A (en) * | 2008-06-10 | 2009-12-16 | Fujitsu Ltd | Electronic device, power-on method for an electronic device, and program |
Also Published As
Publication number | Publication date |
---|---|
US20110246759A1 (en) | 2011-10-06 |
US9003174B2 (en) | 2015-04-07 |
TW201133343A (en) | 2011-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI412999B (zh) | 平行化快速啟動方法及具有多處理單元之電子裝置 | |
JP5945292B2 (ja) | 異種システムをブートし、コアの対称的なビューを表示する方法 | |
JP7087029B2 (ja) | 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構 | |
JP6430970B2 (ja) | 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行 | |
US8327174B2 (en) | Loading operating systems using memory segmentation and ACPI based context switch | |
JP6399916B2 (ja) | 情報処理装置およびその制御方法 | |
US20100211769A1 (en) | Concurrent Execution of a Smartphone Operating System and a Desktop Operating System | |
JP5972981B2 (ja) | マルチコアプラットフォームにおける制約ブート法 | |
JP5710434B2 (ja) | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
KR20130127465A (ko) | 고속 컴퓨터 시동 | |
US11768691B2 (en) | Boot process for early display initialization and visualization | |
WO2019212696A1 (en) | Multithread framework for use in pre-boot environment of a system-on-chip | |
WO2022066301A1 (en) | Phased boot process to dynamically initialize devices in a verified environment | |
CN114296750A (zh) | 用于实现低等待时间引导性能的固件引导任务分发 | |
CN102214105B (zh) | 平行化快速启动方法及具有多处理单元的电子装置 | |
Yang et al. | Shortening the boot time of android os | |
CN105556461B (zh) | 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 | |
JP2007206933A (ja) | 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法 | |
US20100017588A1 (en) | System, method, and computer program product for providing an extended capability to a system | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
Song et al. | FSL: Fast system launch through persistent computing with nonvolatile memory | |
KR20140018134A (ko) | 오프 상태로부터의 운영 체제의 고속 부팅이 가능한 임베디드 시스템 및 임베디드 시스템에서의 부팅 방법 | |
CN117130732A (zh) | 一种设置接口启动项的方法、装置、设备及存储介质 | |
CN117075973A (zh) | 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 |