專利名稱:多處理器系統(tǒng)以及從系統(tǒng)的啟動方法
技術領域:
本發(fā)明涉及包括多個處理器的多處理器系統(tǒng),更具體而言,涉及在多處理器系統(tǒng)中使用的從系統(tǒng)的啟動方法,所述多處理器系統(tǒng)包括主系統(tǒng)和從系統(tǒng)。
背景技術:
作為對如何改進嵌入式設備的性能以及節(jié)約能量等問題的解決方案,包括多個處理器核的多處理器系統(tǒng)受到了關注(例如,參見CQpublishing Co.,Ltd.2005年8月發(fā)行的Design Wave Magzine,吉田正康(YOSHIDA Masayasu)、本田晉也(HONDA Shinya)的“嵌入領域中的‘多核’,在硬件/軟件組件中實現(xiàn)多功能的任務,OS的概要和封裝實例”)。
圖4是常規(guī)的多處理器系統(tǒng)的示意圖。如圖4所示,該常規(guī)多處理器系統(tǒng)包括主系統(tǒng)10和從系統(tǒng)20。主系統(tǒng)10包括CPU(中央處理器)11、RAM(隨機存儲器)12、程序ROM(只讀存儲器)13和數(shù)據(jù)接口(I/F)電路14。類似于主系統(tǒng)10,從系統(tǒng)20包括CPU 21、RAM22、程序ROM 24和數(shù)據(jù)接口(I/F)電路23。
在圖4的相關技術中,主系統(tǒng)10和從系統(tǒng)20每個包括程序ROM。主系統(tǒng)10和從系統(tǒng)20分別根據(jù)存儲在程序ROM中的啟動程序來啟動CPU 11和21。因此,圖4的相關技術具有如下問題由于主系統(tǒng)10和從系統(tǒng)20都包括程序ROM,如掩模ROM或FLASH,組件的數(shù)量很大。特別是,隨著系統(tǒng)配置的提升,近來的多處理器系統(tǒng)常包括兩個和更多個從系統(tǒng),從而應該提供與從系統(tǒng)一樣多的程序ROM。組件數(shù)量的增加成為嚴重的問題。
日本未審專利公開No.2000-137671公開了一種有關使用多總線支架(multi-bus rack)的控制系統(tǒng)的技術,并且更具體地是針對一種從主基板上的ROM向另一基板(從基板)上的RAM傳送程序的技術。此外,日本未審專利公開No.10-320366公開了一種從主CPU向從CPU傳送公共啟動程序由此啟動從CPU的技術。日本未審專利公開No.4-98448公開了在多CPU存儲器系統(tǒng)中的多個CPU之間共享程序ROM的技術,但是沒有給出任何關于包括主系統(tǒng)和從系統(tǒng)的多處理器系統(tǒng)的說明。此外,日本未審專利公開No.2005-31796公開了一種從另一通信設備下載程序到包括多個CPU的通信設備的技術,但是沒有給出任何關于包括主系統(tǒng)和從系統(tǒng)的多處理器系統(tǒng)的說明。
在日本未審專利公開No.2000-137671中公開的技術具有以下問題因為通過公共存儲器總線從主基板向從基板傳送程序,因此需要復雜的硬件構(gòu)造來傳送程序。
對于日本未審專利公開No.10-320366中公開的技術而言,來自主CPU的公共啟動程序被暫時存儲在雙端口RAM中,所述從CPU下載該程序并執(zhí)行啟動操作。對于這種配置,必須準備昂貴的雙端口RAM并在RAM的兩側(cè)布置存儲器總線線路。這導致了組件數(shù)量和成本增加的問題。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面的多處理器系統(tǒng)包括主系統(tǒng);和從系統(tǒng),其通過處理器間通信接口與主系統(tǒng)相連,該主系統(tǒng)包括程序存儲器,其存儲用于從系統(tǒng)的啟動程序,該從系統(tǒng)包括加載器,其通過處理器間通信接口下載在程序存儲器中存儲的啟動程序。根據(jù)本發(fā)明的以上構(gòu)造,不需要提供具有用于存儲啟動程序的程序存儲器的從系統(tǒng),從而能夠減少組件的數(shù)量。特別是,通過處理器間通信接口下載啟動程序,由此能夠簡化加載器的構(gòu)造。
從以下說明,結(jié)合附圖,本發(fā)明的上述和其他目的、優(yōu)點及特征將更加明顯,其中圖1是根據(jù)本發(fā)明的實施例的多處理器系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明的實施例的多處理器系統(tǒng)的處理流程的流程圖;圖3A和3B是根據(jù)本發(fā)明的實施例的多處理器系統(tǒng)的示意圖;圖4是常規(guī)多處理器系統(tǒng)的示意圖。
具體實施例方式
在此,參考示例性的實施例來描述本發(fā)明。本領域技術人員會認識到,利用本發(fā)明的教導,能夠?qū)崿F(xiàn)許多替代實施例,并且本發(fā)明不限于為了說明目的所示出的實施例。
圖1是根據(jù)本發(fā)明的實施例的多處理器系統(tǒng)的示意圖。本實施例的多處理器系統(tǒng)可以嵌入在例如蜂窩電話中。在圖1中,多處理器系統(tǒng)包括主系統(tǒng)10和從系統(tǒng)20。本實施例的多處理器系統(tǒng)封裝在一個芯片中并具有不同的(heterogeneous)結(jié)構(gòu)。盡管在圖1示出的例子中,提供了一個主系統(tǒng)10和一個從系統(tǒng)20,但該系統(tǒng)可以包括多個從系統(tǒng)20。
主系統(tǒng)10包括CPU 11、RAM 12、程序ROM 13和數(shù)據(jù)接口(I/F)電路14。CPU 11通過數(shù)據(jù)總線與RAM 12、程序ROM 13和數(shù)據(jù)接口(I/F)電路14相連。
本實施例的程序ROM 13除了存儲用于主系統(tǒng)10的啟動程序之外,還存儲用于從系統(tǒng)20的啟動程序。
從系統(tǒng)20包括CPU 21、RAM 22、數(shù)據(jù)接口(I/F)電路23、加載器25和糾錯電路26。本實施例的從系統(tǒng)20不包括程序ROM 24。CPU 21與RAM 22、糾錯電路26相連,并通過糾錯電路26與數(shù)據(jù)I/F電路23相連。加載器25通過控制線路與CPU 21、數(shù)據(jù)I/F電路23相連。
加載器25是自動初始程序加載器,其在從系統(tǒng)20中的CPU 21啟動之前從主系統(tǒng)10下載用于從系統(tǒng)20a的啟動程序,并且由硬件組件而不是軟件組件構(gòu)成。加載器25實現(xiàn)簡單的通信協(xié)議,并具有傳送數(shù)據(jù)給RAM 22的功能。
糾錯電路26對從主系統(tǒng)10下載的啟動程序執(zhí)行糾錯。
主系統(tǒng)10的數(shù)據(jù)I/F電路14和從系統(tǒng)20的數(shù)據(jù)I/F電路23是接口電路,它們實現(xiàn)在具有程序傳送階段的正常模式中使用的CPU間通信I/F。在本實施例中,特別地,數(shù)據(jù)I/F電路14和數(shù)據(jù)I/F電路23經(jīng)由串行數(shù)據(jù)總線直接連接在一起,而不通過存儲器。亦即,本實施例的數(shù)據(jù)I/F電路14和數(shù)據(jù)I/F電路23不通過公共存儲器總線連接。替代串行數(shù)據(jù)總線,數(shù)據(jù)I/F電路14和數(shù)據(jù)I/F電路23可以通過兩個或四個并行數(shù)據(jù)總線連接。
此外,主系統(tǒng)10的CPU 11和加載器25通過控制線路連接。
接下來參考圖2的流程圖,描述本實施例的多處理器系統(tǒng)的處理流程。關于流程開始之前的系統(tǒng)狀態(tài),主系統(tǒng)10啟動,而從系統(tǒng)在一個階段沒有啟動。
首先,主系統(tǒng)10的CPU 11通過控制線路向從系統(tǒng)20的加載器25發(fā)出下載用于從系統(tǒng)的啟動程序的命令(S101)。
接收到下載命令后,從系統(tǒng)20的加載器25根據(jù)命令來啟動從系統(tǒng)20的數(shù)據(jù)I/F電路23。隨著啟動,數(shù)據(jù)I/F電路23被啟動。此外,加載器25向主系統(tǒng)10的CPU 11發(fā)送執(zhí)行下載命令的確認(S102)。
主系統(tǒng)10的CPU 11接收來自加載器25的確認。響應該確認,CPU通過數(shù)據(jù)I/F電路14向加載器25傳送與傳送代碼的數(shù)量和傳送模式有關的數(shù)據(jù)(S103)。
從系統(tǒng)20的加載器25通過數(shù)據(jù)I/F電路23接收從主系統(tǒng)10的CPU 11經(jīng)由數(shù)據(jù)I/F電路14和串行數(shù)據(jù)線路傳送的與傳送代碼數(shù)量和傳送模式有關的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲在預定的存儲器中。在接收到與傳送代碼的數(shù)量和傳送模式有關的數(shù)據(jù)之后,加載器25通過控制線路向主系統(tǒng)10的CPU 11發(fā)出接收到數(shù)據(jù)的確認(S104)。
當通過控制線路接收到確認時,主系統(tǒng)10的CPU 11通過數(shù)據(jù)I/F電路14和23向從系統(tǒng)20的加載器25傳送啟動程序的程序代碼(S105)。此時,可以向程序代碼賦予或不賦予ECC(錯誤校驗碼)比特。
從系統(tǒng)20的加載器25通過數(shù)據(jù)I/F電路23將從主系統(tǒng)10傳送的程序代碼存儲在RAM 22中。此時,如果從主系統(tǒng)10傳送的程序代碼被賦予了ECC比特,則在糾錯電路26執(zhí)行糾錯之后將代碼存儲在RAM22中(S106)。然后,將步驟S105和S106的上述處理重復與用于從系統(tǒng)20的啟動程序的程序代碼一樣多的次數(shù)。
從系統(tǒng)20的加載器25確定在步驟S103中是否接收了與從CPU 11傳送的傳送代碼一樣多的程序代碼。如果確定接收了與傳送代碼一樣多的程序代碼,則加載器25通過控制線路向主系統(tǒng)10的CPU 11發(fā)送代碼數(shù)量和傳送狀態(tài)信息,作為傳送完成的確認(S107)。
通過控制線路接收到傳送完成的確認之后,主系統(tǒng)10的CPU 11檢查該確認。作為檢查該確認的結(jié)果,如果確定成功完成了傳送,則CPU 11通過控制線路向從系統(tǒng)20的加載器25發(fā)出啟動從系統(tǒng)20的CPU 21的命令(S108)。
通過控制線路接收到來自主系統(tǒng)10的CPU 11的啟動命令后,從系統(tǒng)20的加載器25取消重置(resetting)從系統(tǒng)20的CPU 21(S109)。
然后,從系統(tǒng)20的CPU 21根據(jù)在從系統(tǒng)20的RAM 22中存儲的啟動程序開始運行(S110)。
如上所述,根據(jù)本發(fā)明的實施例,程序ROM只需要在主系統(tǒng)10中提供,而不需要在從系統(tǒng)20中提供。因此,能夠減少組件的數(shù)量和成本。
此外,根據(jù)本發(fā)明的實施例,存儲在主系統(tǒng)10的程序ROM 13中的用于從系統(tǒng)20的啟動程序經(jīng)由CPU間通信I/F傳送到從系統(tǒng)20的RAM 22,而不是通過存儲器,這使得能夠減少組件的數(shù)量和成本。特別是,用于數(shù)據(jù)傳送的電路構(gòu)造變得比通過公共存儲器總線傳送用于從系統(tǒng)20的啟動程序的構(gòu)造更簡單。
附帶地,在上面的例子中,從系統(tǒng)20的加載器25檢查傳送代碼的數(shù)量,以鑒別在啟動程序末端的程序代碼。然而,本發(fā)明不限于此,主系統(tǒng)10的CPU 11可以在程序的末端添加末端代碼。作為替換,從系統(tǒng)20的加載器25可以用計時器測量自接收到程序代碼以來經(jīng)過的時間,并且如果經(jīng)過的時間超過了預定時間段則確定傳送完成。
此外,上面的實施例描述了從系統(tǒng)20和主系統(tǒng)10以一對一關系提供的構(gòu)造,但是本發(fā)明不限于這種構(gòu)造。如圖3A所示,多個從系統(tǒng)201、202、……、20n可以并行連接到主系統(tǒng)10,它們每一個都包括加載器25。作為替換,如圖3B所示,多個從系統(tǒng)201、202、……、20n可以和主系統(tǒng)10串行連接,它們每一個都包括加載器25。此外,從系統(tǒng)可以以矩陣形式連接。
在圖3A的構(gòu)造中,主系統(tǒng)10的程序ROM 13可以獨立存儲用于從系統(tǒng)201、202、……、20n的啟動程序,但是從系統(tǒng)可以共享一個啟動程序。
在圖3B的構(gòu)造中,與主系統(tǒng)10連接的從系統(tǒng)201可以從主系統(tǒng)10接收用于從系統(tǒng)202至203n的啟動程序,并將這些程序暫時存儲在RAM 22中,然后按順序重復傳送和中繼這些程序。
很顯然,本發(fā)明不限于上述實施例,其可以修改和變化,而不脫離本發(fā)明的范圍和要旨。
權(quán)利要求
1.一種多處理器系統(tǒng),包括主系統(tǒng);和從系統(tǒng),其通過處理器間通信接口與主系統(tǒng)相連,所述主系統(tǒng)包括程序存儲器,存儲用于從系統(tǒng)的啟動程序,以及所述從系統(tǒng)包括加載器,其通過所述處理器間通信接口下載存儲在所述程序存儲器中的啟動程序。
2.根據(jù)權(quán)利要求1的多處理器系統(tǒng),其中,所述主系統(tǒng)還包括主處理器,并且所述從系統(tǒng)還包括從處理器;程序執(zhí)行存儲器,存儲要用所述從處理器執(zhí)行的程序,所述主處理器包括向所述加載器發(fā)出下載命令以下載所述啟動程序的單元;和向所述加載器傳送所述啟動程序的單元,并且所述加載器包括向所述主處理器發(fā)出確認的單元,所述確認是對于執(zhí)行所發(fā)出的下載命令的確認;和接收所傳送的啟動程序并將所接收的啟動程序存儲在所述程序執(zhí)行存儲器中的單元。
3.根據(jù)權(quán)利要求1的多處理器系統(tǒng),其中,所述處理器間通信接口是不通過存儲器來傳送數(shù)據(jù)的通信接口。
4.根據(jù)權(quán)利要求2的多處理器系統(tǒng),其中,所述處理器間通信接口是不通過存儲器來傳送數(shù)據(jù)的通信接口。
5.根據(jù)權(quán)利要求3的多處理器系統(tǒng),其中,所述處理器間通信接口是串行通信接口。
6.根據(jù)權(quán)利要求4的多處理器系統(tǒng),其中,所述處理器間通信接口是串行通信接口。
7.一種從系統(tǒng)的啟動方法,所述從系統(tǒng)通過處理器間通信接口與主系統(tǒng)相連,該方法包括通過所述處理器間通信接口從所述主系統(tǒng)向所述從系統(tǒng)傳送用于所述從系統(tǒng)的啟動程序;將所傳送的啟動程序存儲在所述從系統(tǒng)的程序執(zhí)行存儲器中;和根據(jù)存儲在所述程序執(zhí)行存儲器中的所述啟動程序啟動所述從系統(tǒng)。
8.根據(jù)權(quán)利要求7的從系統(tǒng)的啟動方法,還包括從所述主系統(tǒng)的主處理器向所述從系統(tǒng)的加載器發(fā)出下載命令以下載所述啟動程序;從所述從系統(tǒng)的加載器向所述主處理器發(fā)出確認,確認執(zhí)行所發(fā)出的下載命令,和從所述主處理器向所述加載器傳送所述啟動程序;在所述加載器接收到所傳送的啟動程序之后,由所述加載器在所述程序執(zhí)行存儲器中存儲所述啟動程序;以及根據(jù)存儲在所述程序執(zhí)行存儲器中的啟動程序,由所述加載器啟動所述從系統(tǒng)。
全文摘要
本發(fā)明提供一種多處理器系統(tǒng)和從系統(tǒng)的啟動方法,其能夠以簡單的構(gòu)造減少組件數(shù)量。根據(jù)本發(fā)明實施例的多處理器系統(tǒng)包括主系統(tǒng)和從系統(tǒng),從系統(tǒng)通過處理器間通信接口與主系統(tǒng)相連。主系統(tǒng)包括程序ROM,其存儲用于從系統(tǒng)的啟動程序。從系統(tǒng)包括加載器,其通過處理器間通信接口下載存儲在程序ROM中的啟動程序。
文檔編號G06F9/445GK101017440SQ20071000547
公開日2007年8月15日 申請日期2007年2月8日 優(yōu)先權(quán)日2006年2月9日
發(fā)明者植村真理子, 須田敬偉 申請人:恩益禧電子股份有限公司