專利名稱:通過(guò)運(yùn)行不同代碼來(lái)對(duì)啟動(dòng)序列進(jìn)行掩碼的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本申請(qǐng)一般涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng)和方法。更具體地,本申請(qǐng)針對(duì)用于通過(guò)在多處理器系統(tǒng)的每個(gè)處理器上運(yùn)行不同代碼來(lái)對(duì)啟動(dòng)序列進(jìn)行掩碼的系統(tǒng)和方法。
背景技術(shù):
由于我們的社會(huì)變得越來(lái)越依賴電子通信和信息存儲(chǔ),所以對(duì)數(shù)字信息安全的關(guān)注也與日俱增,例如個(gè)人信息和數(shù)字權(quán)利管理(DRM)。而且,近年來(lái)計(jì)算機(jī)黑客和其他未授權(quán)入侵者進(jìn)入計(jì)算機(jī)系統(tǒng)的技巧也越發(fā)高明。結(jié)果,在用于計(jì)算裝置的安全系統(tǒng)的發(fā)展中投入了很多的努力,以便可以保護(hù)這種敏感的數(shù)字信息而不受未授權(quán)訪問(wèn)的威脅。
入侵者可以獲得對(duì)計(jì)算系統(tǒng)的訪問(wèn)的一種方法是通過(guò)電子接口和其他可觀察的電磁或熱活動(dòng)來(lái)觀察計(jì)算系統(tǒng)的啟動(dòng)活動(dòng)。通過(guò)按照這種方式來(lái)觀察啟動(dòng)活動(dòng),入侵者可以推斷出啟動(dòng)處理器正輸入和輸出什么數(shù)據(jù)信號(hào),處理器上正運(yùn)行什么加密算法等等。根據(jù)該信息,入侵者可以檢測(cè)到啟動(dòng)序列中可以進(jìn)行未授權(quán)侵入的點(diǎn)。此外,利用其中要求安全性密鑰用以啟動(dòng)系統(tǒng)的安全啟動(dòng)序列,入侵者可以逆推出啟動(dòng)處理器所使用的加密算法,以獲得對(duì)安全性密鑰的訪問(wèn),并且從而獲得對(duì)計(jì)算系統(tǒng)的完全訪問(wèn)。由于計(jì)算系統(tǒng)的總體安全性經(jīng)常取決于啟動(dòng)處理的安全性,所以當(dāng)入侵者獲得對(duì)啟動(dòng)序列的訪問(wèn)時(shí),整個(gè)系統(tǒng)的安全性就處于危險(xiǎn)當(dāng)中。
因此,提供一種增加監(jiān)控處理器的啟動(dòng)序列的難度以便使系統(tǒng)更安全而不受未授權(quán)入侵的威脅的裝置和方法是有益的。
發(fā)明內(nèi)容
示范性實(shí)施例提供一種用于選擇隨機(jī)處理器來(lái)啟動(dòng)多處理器系統(tǒng)以及用于通過(guò)在多處理器系統(tǒng)的每個(gè)處理器上運(yùn)行不同代碼來(lái)對(duì)啟動(dòng)序列進(jìn)行掩碼的系統(tǒng)和方法。通過(guò)使得哪個(gè)處理器將用來(lái)啟動(dòng)多處理器系統(tǒng)隨機(jī)化,來(lái)使未授權(quán)人員以擊敗系統(tǒng)的安全性為目的而監(jiān)控電子接口、熱活動(dòng)和其他電磁活動(dòng)來(lái)獲得有關(guān)啟動(dòng)序列的信息的能力變得更加困難。例如,在多處理器系統(tǒng)中,未來(lái)入侵者需要以多個(gè)不同的次數(shù)運(yùn)行啟動(dòng)序列,同時(shí)監(jiān)控單個(gè)處理器以期望它可能被隨機(jī)地選為啟動(dòng)處理器,或者未來(lái)入侵者需要在啟動(dòng)時(shí)監(jiān)控所有的處理器,以便確定哪個(gè)處理器是實(shí)際啟動(dòng)處理器。這兩種可選擇方案都需要未來(lái)入侵者方付出相當(dāng)大努力,這可以用作在實(shí)際中試圖監(jiān)控該系統(tǒng)來(lái)獲得啟動(dòng)序列信息的不利因素,或者至少顯著地延遲未來(lái)侵入者在危害系統(tǒng)時(shí)花費(fèi)的時(shí)間。
利用示范性實(shí)施例的機(jī)制,在多處理器系統(tǒng)(例如片上系統(tǒng))上提供普適邏輯,該普適邏輯控制多處理器系統(tǒng)的啟動(dòng)操作。普適邏輯包括隨機(jī)事件發(fā)生器,該隨機(jī)事件發(fā)生器隨機(jī)選擇在多處理器系統(tǒng)中的哪一個(gè)處理器將要成為啟動(dòng)處理器,該啟動(dòng)處理器運(yùn)行啟動(dòng)代碼,以由此使該系統(tǒng)達(dá)到操作狀態(tài)。根據(jù)對(duì)啟動(dòng)處理器的隨機(jī)選擇,設(shè)置與啟動(dòng)處理器相關(guān)聯(lián)的配置位,該配置位表示該處理器成為啟動(dòng)處理器。此后,所選擇的啟動(dòng)處理器被提供有為使多處理器系統(tǒng)安全啟動(dòng)到操作狀態(tài)所必需的安全性密鑰。
在某些示范性實(shí)施例中,當(dāng)隨機(jī)選擇的處理器執(zhí)行安全啟動(dòng)操作時(shí),多處理器系統(tǒng)中的其他處理器執(zhí)行操作來(lái)對(duì)真正的安全啟動(dòng)操作進(jìn)行掩碼(mask)。該掩碼包括執(zhí)行其他代碼序列而不是啟動(dòng)代碼序列,該其他代碼序列使處理器生成電磁和/或熱輸出,其中如果該電磁和/或熱輸出受到入侵者監(jiān)控,則會(huì)使入侵者難以辨識(shí)哪一個(gè)處理器正在執(zhí)行實(shí)際的安全啟動(dòng)操作。
一種可以生成不同的代碼序列的方法是將隨機(jī)延遲元素插入啟動(dòng)代碼內(nèi),該啟動(dòng)代碼運(yùn)行重復(fù)一個(gè)隨機(jī)量的循環(huán)。按照這種方式,每個(gè)處理器可以運(yùn)行啟動(dòng)代碼,但是具有不同的延遲量,從而使得生成不同的電磁和熱特征(signature)。從入侵者的角度來(lái)看,由于這種掩碼而使得很難從多處理器系統(tǒng)中的其他處理器中辨識(shí)實(shí)際啟動(dòng)處理器。
在另一個(gè)示范性實(shí)施例中,由其他處理器執(zhí)行的代碼序列是與隨機(jī)選擇的處理器所執(zhí)行的相同的啟動(dòng)代碼序列,但由其他處理器執(zhí)行的代碼序列具有偽(dummy)安全性密鑰。因此,對(duì)于入侵者來(lái)說(shuō),這些其他的處理器操作為以及看起來(lái)好像它們正在執(zhí)行安全啟動(dòng)操作一樣。然而,如果監(jiān)控這些處理器,就會(huì)識(shí)別出假電磁和熱輸出,這使入侵者難以確定所監(jiān)控的處理器是否為正在執(zhí)行安全啟動(dòng)操作的實(shí)際隨機(jī)選擇的處理器。
在另一個(gè)示范性實(shí)施例中,可以通過(guò)提供偽處理器來(lái)對(duì)隨機(jī)選擇的啟動(dòng)處理器進(jìn)行掩碼。通過(guò)在偽處理器上運(yùn)行不同于啟動(dòng)代碼序列的處理從而使系統(tǒng)上的攻擊改向該偽處理器,使得從電磁、熱等的監(jiān)控裝置的角度來(lái)看,偽處理器看起來(lái)好像是唯一的。按照這種方式,當(dāng)入侵者試圖通過(guò)避開(kāi)安全機(jī)制來(lái)訪問(wèn)該系統(tǒng)時(shí),該入侵者僅訪問(wèn)了偽處理器而沒(méi)有對(duì)多處理器系統(tǒng)的剩余部分進(jìn)行實(shí)際的訪問(wèn)。
在其他示范性實(shí)施例中,可以跨越多處理器系統(tǒng)中的多個(gè)處理器來(lái)分布啟動(dòng)代碼序列。通過(guò)跨越多處理器系統(tǒng)中的多個(gè)處理器來(lái)分布啟動(dòng)代碼序列,增加了必須被危害以便獲得關(guān)于啟動(dòng)序列的完整信息從而規(guī)避安全性措施的處理器的數(shù)目。因此,示范性實(shí)施例的分布式啟動(dòng)操作比利用單個(gè)安全核的多處理器數(shù)據(jù)處理系統(tǒng)更安全。此外,通過(guò)分布啟動(dòng)操作,如果啟動(dòng)操作的任何部分被危害,則啟動(dòng)操作都會(huì)失敗,從而阻止未授權(quán)個(gè)體規(guī)避系統(tǒng)的安全性。
利用該示范性實(shí)施例,將啟動(dòng)代碼序列劃分成多個(gè)分區(qū),以便可以將每個(gè)分區(qū)提供給多處理器系統(tǒng)的不同處理器。當(dāng)執(zhí)行啟動(dòng)代碼序列的每個(gè)分區(qū)時(shí),在啟動(dòng)代碼序列可以在另一個(gè)處理器上進(jìn)行之前,該分區(qū)必須在其各自的處理器上正確地完成。利用安全通信機(jī)制來(lái)傳達(dá)對(duì)啟動(dòng)代碼序列的先前分區(qū)的滿意完成。該安全通信機(jī)制可以包括安全令牌,例如加密的密碼或其他安全標(biāo)識(shí)符,例如公鑰/私鑰對(duì),其表示沒(méi)有危害先前的會(huì)話。按照這種方式,創(chuàng)建必須令人滿意地完成相關(guān)的“會(huì)話”鏈。
啟動(dòng)代碼的分布式執(zhí)行中所涉及的處理器可以是多處理器系統(tǒng)中的所有處理器或者是多處理器系統(tǒng)中的處理器子集。例如,可以按分布方式利用正如上述用于選擇單個(gè)啟動(dòng)處理器的隨機(jī)選擇機(jī)制來(lái)隨機(jī)地選擇將用于啟動(dòng)系統(tǒng)的多個(gè)啟動(dòng)處理器。而且,可以隨機(jī)地選擇由處理器所執(zhí)行的啟動(dòng)代碼的特定分區(qū),使得利用每個(gè)加電復(fù)位(POR)操作,相同的處理器可以執(zhí)行或不執(zhí)行與之前POR操作中相同的啟動(dòng)代碼分區(qū)。因此,可以對(duì)于分布式啟動(dòng)操作中涉及哪些處理器以及每個(gè)處理器將執(zhí)行哪些啟動(dòng)代碼分區(qū)進(jìn)行隨機(jī)化。
多處理器系統(tǒng)的其他處理器(即非啟動(dòng)處理器)可以在分布式啟動(dòng)操作期間不執(zhí)行任何工作,或者可以執(zhí)行上述各種掩碼代碼示范性實(shí)施例中的一個(gè)或多個(gè)掩碼代碼序列,以對(duì)隨機(jī)選擇的處理器子集上的啟動(dòng)代碼執(zhí)行進(jìn)行掩碼。換言之,該示范性實(shí)施例的分布式啟動(dòng)代碼序列操作可以與之前所述的示范性實(shí)施例的一個(gè)或者多個(gè)相結(jié)合。
在一個(gè)示范性實(shí)施例中,提供一種在數(shù)據(jù)處理系統(tǒng)中用于對(duì)該數(shù)據(jù)處理系統(tǒng)中的啟動(dòng)代碼序列的執(zhí)行進(jìn)行掩碼的方法,該數(shù)據(jù)處理系統(tǒng)具有啟動(dòng)處理器和多個(gè)非啟動(dòng)處理器。該方法可以包括在所述數(shù)據(jù)處理系統(tǒng)的所述啟動(dòng)處理器上執(zhí)行啟動(dòng)代碼序列,以由此將所述數(shù)據(jù)處理系統(tǒng)啟動(dòng)到操作狀態(tài);以及在所述多個(gè)非啟動(dòng)處理器的每個(gè)非啟動(dòng)處理器上執(zhí)行掩碼代碼序列。掩碼代碼的執(zhí)行產(chǎn)生電磁或熱特征中的至少一個(gè),用于對(duì)在所述啟動(dòng)處理器上的所述啟動(dòng)代碼序列的執(zhí)行進(jìn)行掩碼。所述掩碼代碼序列可以在每個(gè)所述非啟動(dòng)處理器上不同。在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的每個(gè)掩碼代碼序列可以產(chǎn)生不同的電磁或熱特征。
該方法還可以包括隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼序列。這種隨機(jī)選擇可以包括隨機(jī)選擇與存儲(chǔ)在存儲(chǔ)設(shè)備中的掩碼代碼序列相關(guān)聯(lián)的不同起始地址。所述非啟動(dòng)處理器可以執(zhí)行從所述隨機(jī)選擇的不同起始地址處開(kāi)始的掩碼代碼序列。
所述掩碼代碼序列可以是在其中插入具有一個(gè)或者多個(gè)隨機(jī)延遲元素的啟動(dòng)代碼序列。所述隨機(jī)延遲元素可以在每個(gè)所述非啟動(dòng)處理器中引起不同的延遲量。例如,所述一個(gè)或者多個(gè)隨機(jī)延遲元素可以是重復(fù)隨機(jī)次數(shù)的代碼循環(huán)。
該方法還可以包括從所述數(shù)據(jù)處理系統(tǒng)的多個(gè)處理器中隨機(jī)選擇所述啟動(dòng)處理器作為所述啟動(dòng)處理器。此外,所述數(shù)據(jù)處理系統(tǒng)可以是異構(gòu)多處理器片上系統(tǒng),所述異構(gòu)多處理器片上系統(tǒng)具有根據(jù)第一指令集進(jìn)行操作的第一處理器和一個(gè)或者多個(gè)根據(jù)第二指令集進(jìn)行操作的第二處理器,所述第二指令集不同于所述第一指令集。
在另一個(gè)示范性實(shí)施例中,提供一種數(shù)據(jù)處理系統(tǒng),包括啟動(dòng)處理器;多個(gè)非啟動(dòng)處理器;與所述啟動(dòng)處理器耦合的啟動(dòng)代碼存儲(chǔ)設(shè)備;以及與所述多個(gè)非啟動(dòng)處理器耦合的掩碼代碼存儲(chǔ)設(shè)備。所述啟動(dòng)處理器可以執(zhí)行存儲(chǔ)在所述啟動(dòng)代碼存儲(chǔ)設(shè)備中的啟動(dòng)代碼,以由此將所述數(shù)據(jù)處理系統(tǒng)啟動(dòng)到操作狀態(tài)。所述多個(gè)非啟動(dòng)處理器的每個(gè)非啟動(dòng)處理器可以執(zhí)行存儲(chǔ)在所述掩碼代碼存儲(chǔ)設(shè)備中的掩碼代碼,以由此產(chǎn)生電磁或熱特征中的至少一個(gè),用于對(duì)在所述啟動(dòng)處理器上的所述啟動(dòng)代碼的執(zhí)行進(jìn)行掩碼。在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的所述掩碼代碼可以是不同的。在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的每個(gè)掩碼代碼可以產(chǎn)生不同的電磁或熱特征。
所述數(shù)據(jù)處理系統(tǒng)還可以包括與所述啟動(dòng)處理器和所述多個(gè)非啟動(dòng)處理器耦合的普適邏輯。所述普適邏輯可以隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼。所述普適邏輯可以通過(guò)以下動(dòng)作來(lái)隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼隨機(jī)選擇與存儲(chǔ)在所述掩碼代碼存儲(chǔ)設(shè)備中的掩碼代碼序列相關(guān)聯(lián)的不同起始地址。所述非啟動(dòng)處理器可以執(zhí)行從所述隨機(jī)選擇的不同起始地址處開(kāi)始的掩碼代碼序列。
所述掩碼代碼序列可以是在其中插入具有一個(gè)或者多個(gè)隨機(jī)延遲元素的啟動(dòng)代碼序列。所述隨機(jī)延遲元素可以在每個(gè)所述非啟動(dòng)處理器中引起不同的延遲量。例如,所述一個(gè)或者多個(gè)隨機(jī)延遲元素可以是重復(fù)隨機(jī)次數(shù)的代碼循環(huán)。
與所述啟動(dòng)處理器和所述多個(gè)非啟動(dòng)處理器耦合的普適邏輯可以從所述數(shù)據(jù)處理系統(tǒng)的多個(gè)處理器中隨機(jī)選擇所述啟動(dòng)處理器作為所述啟動(dòng)處理器。所述數(shù)據(jù)處理系統(tǒng)可以是異構(gòu)多處理器片上系統(tǒng),所述異構(gòu)多處理器片上系統(tǒng)具有根據(jù)第一指令集進(jìn)行操作的第一處理器和一個(gè)或者多個(gè)根據(jù)第二指令集進(jìn)行操作的第二處理器,所述第二指令集不同于所述第一指令集。
在另一個(gè)示范性實(shí)施例中,提供包括具有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序產(chǎn)品。當(dāng)在所述處理系統(tǒng)上執(zhí)行所述計(jì)算機(jī)可讀程序時(shí),可以使數(shù)據(jù)處理系統(tǒng)執(zhí)行上述針對(duì)方法示范性實(shí)施例概述的各個(gè)操作及其組合。
本發(fā)明這些和其他特征與優(yōu)勢(shì)在以下本發(fā)明示范性實(shí)施例的詳細(xì)描述中將變得對(duì)本領(lǐng)域普通技術(shù)人員而言顯而易見(jiàn)。
在所附的權(quán)利要求中闡述了被認(rèn)為是本發(fā)明特性的新穎性特征。然而,在連同附圖一起進(jìn)行閱讀時(shí),參照以下示范性實(shí)施例的詳細(xì)描述,將更好地理解發(fā)明本身及其優(yōu)選使用方式、進(jìn)一步目的和優(yōu)勢(shì),其中圖1是其中可以實(shí)現(xiàn)示例性實(shí)施例的多處理器系統(tǒng)的示意性方框圖;圖2是描述根據(jù)一個(gè)示范性實(shí)施例的隨機(jī)啟動(dòng)處理器選擇機(jī)制的主要操作部件的示意圖;圖3A是描述了根據(jù)一個(gè)示范性實(shí)施例的隨機(jī)選擇機(jī)制的示意圖;圖3B是根據(jù)一個(gè)示范性實(shí)施例的抖動(dòng)的圖形表示,其中該抖動(dòng)被引入到隨機(jī)事件發(fā)生器的LFSR計(jì)數(shù)器的輸入中;圖3C是描述了一個(gè)示范性實(shí)施例的示意圖,其中利用平行信號(hào)線向處理器提供秘密密鑰和多個(gè)隨機(jī)生成的密鑰值;
圖4A-4D是描述根據(jù)示范性實(shí)施例的用于對(duì)隨機(jī)選擇的啟動(dòng)處理器的安全啟動(dòng)操作進(jìn)行掩碼的掩碼操作的示意圖;圖5是概述了用于在多處理器系統(tǒng)中隨機(jī)地選擇一個(gè)處理器作為啟動(dòng)處理器的示范性操作的流程圖;圖6是概述了根據(jù)一個(gè)示范性實(shí)施例的用于對(duì)啟動(dòng)代碼序列進(jìn)行掩碼的示范性操作的流程圖;圖7A是描述了根據(jù)一個(gè)示范性實(shí)施例配置成菊鏈或環(huán)形布置的分布式啟動(dòng)操作的示意圖;圖7B是描述了根據(jù)一個(gè)示范性實(shí)施例配置成主/從布置的分布式啟動(dòng)操作的示意圖;以及圖8是概述了根據(jù)一個(gè)示范性實(shí)施例用于分布式啟動(dòng)多處理器系統(tǒng)的示范性操作的流程圖。
具體實(shí)施例方式
示范性實(shí)施例提供了一種用于選擇隨機(jī)處理器來(lái)啟動(dòng)多處理器系統(tǒng)的裝置和方法。該示范性實(shí)施例可以供任何多處理器系統(tǒng)使用,可以在其中選擇一個(gè)處理器來(lái)啟動(dòng)多處理器系統(tǒng)。因此,示范性實(shí)施例的機(jī)制適用于對(duì)稱多處理器(SMP)系統(tǒng)、異構(gòu)多處理器系統(tǒng)、非相干不平衡多處理器系統(tǒng)等等。
一個(gè)可以在其中實(shí)現(xiàn)示范性實(shí)施例的多處理器系統(tǒng)是可從紐約阿芒克的國(guó)際商業(yè)機(jī)器公司獲得的單元寬帶引擎(CBE)。將參照CBE體系結(jié)構(gòu)來(lái)說(shuō)明該示范性實(shí)施例,然而,應(yīng)該理解,對(duì)示范性實(shí)施例的說(shuō)明僅僅是示范性的,而且并非旨在聲明或暗示任何關(guān)于可以實(shí)現(xiàn)示范性實(shí)施例的機(jī)制的多處理器系統(tǒng)的類型或結(jié)構(gòu)的限定。在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)所述的CBE體系結(jié)構(gòu)進(jìn)行許多修改。
圖1是在其中可以實(shí)現(xiàn)本發(fā)明的方面的數(shù)據(jù)處理系統(tǒng)的示意圖。圖1所示的示范性數(shù)據(jù)處理系統(tǒng)是單元寬帶引擎(CBE)數(shù)據(jù)處理系統(tǒng)的一個(gè)實(shí)例。雖然CBE將用于本發(fā)明優(yōu)選實(shí)施例的說(shuō)明中,但是正如本領(lǐng)域技術(shù)人員在閱讀以下描述后就會(huì)很容易理解的那樣,本發(fā)明并不局限于此。
如圖1所示,CBE 100包括電源處理器元件(PPE)110和多個(gè)協(xié)同處理器元件(SPE)120-134,其中電源處理器元件(PPE)110具有電源處理器單元(PPU)116及其L1和L2高速緩沖存儲(chǔ)器112和114,每個(gè)協(xié)同處理器元件(SPE)120-134都具有它自己的協(xié)同處理器單元(SPU)140-154、存儲(chǔ)器流量控制155-162、本地存儲(chǔ)器或存儲(chǔ)器(LS)163-170和總線接口單元(BIU單元)180-194,例如,該總線接口單元可以是組合直接存儲(chǔ)器訪問(wèn)(DMA)、存儲(chǔ)器管理單元(MMU)和總線接口單元。還提供了高寬帶內(nèi)部元件互連總線(EIB)196、總線接口控制器(BIC)197和存儲(chǔ)器接口控制器(MIC)198。
CBE 100可以是片上系統(tǒng),以便可以在單個(gè)多處理器芯片上提供圖1所述的每個(gè)元件。此外,CBE 100是一種異構(gòu)處理環(huán)境,其中每個(gè)SPU都可以從系統(tǒng)內(nèi)的每個(gè)其他SPU接收不同指令。而且,為SPU而設(shè)置的指令不同于為PPU設(shè)置的指令,例如,PPU可以執(zhí)行基于簡(jiǎn)化指令系統(tǒng)計(jì)算機(jī)(RISC)的指令,而SPU執(zhí)行單指令多數(shù)據(jù)(SIMD)指令。
SPE 120-134通過(guò)EIB 196相互耦合并與L2高速緩沖存儲(chǔ)器114耦合。另外,SPB 120-134通過(guò)EIB 196與MIC 198和BIC 197耦合。MIC 198提供到共享存儲(chǔ)器199的通信接口。舉例來(lái)說(shuō),BIC 197在CBE 100與其他外部總線和設(shè)備之間提供通信接口,例如SouthBridgeTM通信處理器。
PPE110是雙線程PPE 110。這種雙線程PPE110與8個(gè)SPE 120-134的組合使CBE 100能夠處理10個(gè)同時(shí)的線程和超過(guò)128個(gè)未決存儲(chǔ)器請(qǐng)求。PPE 110用作對(duì)于處理大部分計(jì)算工作負(fù)荷的其他8個(gè)SPE120-134的控制器。舉例來(lái)說(shuō),PPE110可用來(lái)運(yùn)行傳統(tǒng)操作系統(tǒng),而SPE 120-134進(jìn)行矢量化浮點(diǎn)代碼執(zhí)行。
SPE 120-134包括協(xié)同處理單元(SPU)140-154、存儲(chǔ)器流量控制單元155-162、本地存儲(chǔ)器或存儲(chǔ)器163-170以及總線接口單元180-194。在示范性實(shí)施例中,本地存儲(chǔ)器或存儲(chǔ)器163-170包括256KB的指令和數(shù)據(jù)存儲(chǔ)器,該指令和數(shù)據(jù)存儲(chǔ)器對(duì)于PPE 110是可見(jiàn)的并且可由軟件直接進(jìn)行尋址。
PPE110可以向SPE 120-134加載小程序或線程,使SPE鏈接在一起以處理復(fù)合操作中的每個(gè)步驟。例如,結(jié)合了CBE 100的機(jī)頂盒可以加載用于讀取DVD、視頻和音頻解碼以及顯示的程序,而且數(shù)據(jù)將會(huì)挨個(gè)經(jīng)過(guò)SPE,直至它最后在輸出顯示器上而結(jié)束。在4GHz處,每個(gè)SPE 120-134利用具有類似性能水平的PPE110給出理論上為32GELOPS的性能。
存儲(chǔ)器流量控制單元(MFC)155-162用作SPU與系統(tǒng)其他部分和其他部件的接口。MFC 155-162提供主要機(jī)制,用以在主存儲(chǔ)器與本地存儲(chǔ)器163-170之間進(jìn)行數(shù)據(jù)傳輸、保護(hù)和同步。邏輯上存在針對(duì)處理器內(nèi)的每個(gè)SPU的MFC。某些實(shí)現(xiàn)可以多個(gè)SPU之間共享單個(gè)MFC的資源。在這種情況下,對(duì)于每個(gè)SPU來(lái)說(shuō),所有為MFC定義的設(shè)備和命令都必須與軟件獨(dú)立地出現(xiàn)。將共享MFC的效果限定為實(shí)現(xiàn)相關(guān)的設(shè)備和命令。
示范性實(shí)施例提供了一種用于選擇一個(gè)隨機(jī)處理器(諸如SPE120-134中的一個(gè))來(lái)啟動(dòng)多處理器系統(tǒng)(例如CBE 100)的設(shè)備和方法。通過(guò)使將哪個(gè)SPE 120-134將用來(lái)啟動(dòng)CBE 100隨機(jī)化,使未授權(quán)人員為了擊敗CBE 100的安全性而監(jiān)控電子接口、熱活動(dòng)和其他電磁活動(dòng)來(lái)獲得關(guān)于啟動(dòng)序列的信息的能力變得更加困難。
利用示范性實(shí)施例的機(jī)制,在CBE 100上提供控制CBE 100的啟動(dòng)操作的普適邏輯193。普適邏輯193包括隨機(jī)事件發(fā)生器,它隨機(jī)地選擇哪一個(gè)SPE 120-134將會(huì)成為啟動(dòng)處理器,其中該啟動(dòng)處理器運(yùn)行啟動(dòng)代碼,以由此使系統(tǒng)啟動(dòng)到操作狀態(tài)。根據(jù)啟動(dòng)SPE 120-134的隨機(jī)選擇,設(shè)置與所選擇的SPE(例如SPE 120)相關(guān)聯(lián)的配置位,其表示SPE 120為實(shí)際啟動(dòng)處理器。此后,所選擇的SPE 120被提供有為使CBE 100安全啟動(dòng)到操作狀態(tài)所必需的安全性密鑰。當(dāng)所選擇的SPE成功地完成安全啟動(dòng)過(guò)程時(shí),該SPE將會(huì)從安全狀態(tài)轉(zhuǎn)變成解鎖狀態(tài),其中在安全狀態(tài)期間,關(guān)閉MIC 198、共享存儲(chǔ)器199和BIC197的一部分(除了到圖2中快速ROM 230的通信鏈路),并阻止它們進(jìn)行操作。一旦安全SPE進(jìn)入解鎖狀態(tài),它將通過(guò)執(zhí)行快速ROM 230所提供的加密的代碼來(lái)初始化充分啟用MIC 198、BIC 197(稱為“訓(xùn)練”的處理)和所有其他處理器(SPE和PPE)的處理。對(duì)于與用于單元寬帶引擎中的安全啟動(dòng)處理有關(guān)的更多信息,請(qǐng)參考公開(kāi)號(hào)為No.20050021944的共同未決和普通轉(zhuǎn)讓的美國(guó)專利申請(qǐng),在此引用該專利申請(qǐng)作為參考。
在某些示范性實(shí)施例中,當(dāng)隨機(jī)選擇的SPE 120執(zhí)行安全啟動(dòng)操作時(shí),其他SPE 122-134執(zhí)行操作,來(lái)對(duì)實(shí)際的安全啟動(dòng)操作進(jìn)行掩碼。該掩碼包括執(zhí)行其他代碼序列而不是啟動(dòng)代碼序列,該其他代碼序列使SPE 122-134能夠生成電、電磁和/或熱輸出,其中當(dāng)這些電、電磁和/或熱輸出受到入侵者監(jiān)控時(shí)會(huì)使入侵者難以辨識(shí)哪一個(gè)SPE120-134正在執(zhí)行實(shí)際的安全啟動(dòng)操作。
一種可以生成不同的代碼序列的方法是在啟動(dòng)代碼中插入隨機(jī)延遲元素,該啟動(dòng)代碼運(yùn)行重復(fù)了一個(gè)隨機(jī)量的循環(huán)。添加這些隨機(jī)延遲元素,以便在啟動(dòng)處理器時(shí),安全啟動(dòng)算法將以隨機(jī)的方式進(jìn)行改變,以導(dǎo)致不同的電磁和熱特征,從而使得難以隨著時(shí)間變化來(lái)比較兩個(gè)不同的啟動(dòng)操作。按照這種方式,每個(gè)SPE 120-134都可以運(yùn)行啟動(dòng)代碼,但是具有不同的延遲量,從而導(dǎo)致生成不同的電磁和熱特征。而且,相同的SPE 120-134將會(huì)在每次它運(yùn)行安全的啟動(dòng)代碼時(shí)生成不同的電磁和熱特征。從入侵者的角度來(lái)看,由于這種掩碼,使得很難從CBE 100的其他處理器中辨識(shí)實(shí)際的啟動(dòng)SPE 120。
在另一個(gè)實(shí)施例中,由其他SPE 122-134執(zhí)行的代碼序列是與隨機(jī)選擇的SPE 120所執(zhí)行的相同的啟動(dòng)代碼序列,但由其他SPE122-134執(zhí)行的代碼序列具有偽安全性密鑰。因此,對(duì)于入侵者來(lái)說(shuō),這些其他的SPE 122-134操作為并且看起來(lái)好像它們正在執(zhí)行安全啟動(dòng)操作一樣。然而,如果監(jiān)控SPE 122-134,則會(huì)識(shí)別到偽電、電磁和熱輸出,這使入侵者難以確定所監(jiān)控的SPE是否為正在執(zhí)行安全啟動(dòng)操作的實(shí)際隨機(jī)選擇的SPE 120。
在另一個(gè)示范性實(shí)施例中,可以通過(guò)提供一個(gè)偽SPE(未示出)來(lái)對(duì)隨機(jī)選擇的啟動(dòng)SPE 120進(jìn)行掩碼。通過(guò)在偽SPE上運(yùn)行不同于啟動(dòng)代碼序列的處理,從而使CBE 100上的攻擊改向到該偽SPE,使得從電磁、熱等監(jiān)控裝置的角度來(lái)看,偽SPE看起來(lái)好像是唯一的。按照這種方式,當(dāng)入侵者試圖通過(guò)避開(kāi)安全機(jī)制來(lái)訪問(wèn)該系統(tǒng)時(shí),該入侵者只訪問(wèn)了偽SPE而沒(méi)有對(duì)CBE 100的剩余部分進(jìn)行實(shí)際的訪問(wèn)。而且,如果入侵者危害偽SPE而試圖執(zhí)行代碼,則然后偽SPE可以關(guān)閉CBE 100的剩余部分以防止進(jìn)一步的侵入意圖。
現(xiàn)在將更詳細(xì)地描述上述每個(gè)示范性實(shí)施例。應(yīng)當(dāng)理解,雖然在這里分開(kāi)地描述了每個(gè)示范性實(shí)施例,但是可以按各種方式來(lái)組合示范性實(shí)施例,以便獲得多處理器系統(tǒng)(例如,CBE 100)更大的安全性。因此,被認(rèn)為適合特定情況和多處理器環(huán)境的示范性實(shí)施例的任何組合都在本發(fā)明的精神和范圍內(nèi)。
圖2是描述了根據(jù)一個(gè)示范性實(shí)施例的隨機(jī)啟動(dòng)處理器選擇機(jī)制的主要操作部件的示意圖。應(yīng)該理解,為了簡(jiǎn)化示范性實(shí)施例的解釋,圖2僅僅詳細(xì)地顯示了多處理器系統(tǒng)中的一個(gè)處理器。然而,應(yīng)該理解,多處理器系統(tǒng)中的每個(gè)處理器都具有類似的元件配置,并且按照與圖2清楚示出的處理器相同的方式進(jìn)行操作。在不脫離本發(fā)明精神和范圍的情況下,多處理器系統(tǒng)內(nèi)可以包括任意數(shù)量的處理器。然而,為了解釋示范性實(shí)施例,假設(shè)處理器的數(shù)目是如圖1所示的CBE體系結(jié)構(gòu)中的8個(gè)。
如圖2所示,隨機(jī)啟動(dòng)處理器選擇機(jī)制的主要操作部件包括系統(tǒng)控制器210、安全密鑰存儲(chǔ)器220、快速ROM 230和普適邏輯240。在一個(gè)示范性實(shí)施例中,以圖1的CBE體系結(jié)構(gòu)作為示范,元件210-240可以是在其中實(shí)現(xiàn)CBE體系結(jié)構(gòu)的芯片上所提供的元件。也就是說(shuō),可以將這些元件210-240整合到多處理器片上系統(tǒng)(SoC)的邏輯中,因而可以在片上執(zhí)行由這些元件210-240所執(zhí)行的操作??商鎿Q地,也可以在片外提供一個(gè)或多個(gè)元件,例如,可以在片外提供快速ROM230。
系統(tǒng)控制器210負(fù)責(zé)執(zhí)行加電復(fù)位(POR)的初始操作,以使系統(tǒng)電源達(dá)到一個(gè)可接受且穩(wěn)定的水平。也就是說(shuō),正如現(xiàn)有技術(shù)中通常已知的那樣,系統(tǒng)控制器210負(fù)責(zé)提升電壓,開(kāi)啟系統(tǒng)時(shí)鐘,以及為了使多處理器系統(tǒng)達(dá)到可以在其中開(kāi)始啟動(dòng)操作的狀態(tài)所需要的其他初始操作。作為該P(yáng)OR操作的一部分,使處理器280-290達(dá)到一種安全操作模式。在該安全操作模式中,在處理器以外無(wú)法訪問(wèn)該處理器的本地存儲(chǔ)器。一旦完成這些初始操作且系統(tǒng)處于可接受電源狀態(tài),系統(tǒng)控制器210就利用信號(hào)將“電源正?!睜顟B(tài)通知給普適邏輯240。
響應(yīng)于來(lái)自系統(tǒng)控制器210的“電源正常”信號(hào),普適邏輯240開(kāi)始啟動(dòng)操作,用于使多處理器系統(tǒng)啟動(dòng)到操作狀態(tài),以便軟件程序可以開(kāi)始執(zhí)行。作為啟動(dòng)操作的一部分,普適邏輯240的隨機(jī)事件發(fā)生器242隨機(jī)地選擇其中一個(gè)處理器(例如處理器280)作為多處理器系統(tǒng)的啟動(dòng)處理器。隨機(jī)事件發(fā)生器242生成一個(gè)信號(hào),其發(fā)送到多處理器系統(tǒng)中的每個(gè)處理器。該信號(hào)僅僅對(duì)于選為啟動(dòng)處理器的處理器在邏輯上為高。該信號(hào)有效地將隨機(jī)選擇的處理器280的配置位寄存器250內(nèi)的值設(shè)置成表示該處理器280為啟動(dòng)處理器的值,例如“1”。其他處理器將使它們各自的配置位寄存器內(nèi)的配置位值保持為初始值,從而表示這些處理器不是針對(duì)多處理器系統(tǒng)的隨機(jī)選擇的啟動(dòng)處理器。
在快速ROM 230中以加密的形式存儲(chǔ)用于啟動(dòng)多處理器系統(tǒng)的啟動(dòng)代碼??梢詫⒓用艿膯?dòng)代碼232提供給每個(gè)處理器280-290。也就是說(shuō),作為啟動(dòng)序列的一部分,每個(gè)處理器280-290都可以試圖從快速ROM 230中讀取加密的啟動(dòng)代碼232。然而,由于僅僅隨機(jī)選擇了其中一個(gè)處理器作為啟動(dòng)處理器,所以其中將只有一個(gè)處理器能夠?qū)用艿膯?dòng)代碼232進(jìn)行解密并適當(dāng)?shù)貓?zhí)行啟動(dòng)代碼,以便使多處理器系統(tǒng)達(dá)到操作狀態(tài)。這可以通過(guò)使用每個(gè)處理器中提供的選擇器260來(lái)實(shí)現(xiàn),該選擇器在秘密密鑰和隨機(jī)生成的密鑰值之間進(jìn)行選擇,其中秘密密鑰是用來(lái)對(duì)加密的啟動(dòng)代碼232進(jìn)行解密的密鑰值,而隨機(jī)生成的密鑰值將不能對(duì)加密的啟動(dòng)代碼232進(jìn)行解密。
利用配置位寄存器250存儲(chǔ)器儲(chǔ)的值來(lái)生成一個(gè)提供給選擇器260的選擇器信號(hào)。例如,選擇器260可以是多路轉(zhuǎn)換器,它接收來(lái)自于安全密鑰存儲(chǔ)器220的安全密鑰(Skey)作為一個(gè)輸入,它接收來(lái)自于隨機(jī)值發(fā)生器262的隨機(jī)生成的密鑰值作為第二輸入,并接收來(lái)自于配置位寄存器250的選擇信號(hào),該選擇信號(hào)表示選擇這兩個(gè)輸入中的哪一個(gè)。如果配置位寄存器250存儲(chǔ)一個(gè)表示該處理器是隨機(jī)選擇的啟動(dòng)處理器的值,則選擇Skey輸入。如果配置位寄存器250存儲(chǔ)一個(gè)表示該處理器不是隨機(jī)選擇的啟動(dòng)處理器的值,則可由選擇器260選擇該隨機(jī)生成的密鑰值輸入。然后將所選擇的密鑰值輸出到SPE 270。
SPE 270接收所選擇的密鑰值和加密的啟動(dòng)代碼232。然后SPE 270試圖對(duì)加密的啟動(dòng)代碼232進(jìn)行解密。如果所選擇的密鑰值是來(lái)自于安全密鑰存儲(chǔ)器220的Skey,則SPE 270將能夠適當(dāng)?shù)貙?duì)加密的啟動(dòng)代碼232進(jìn)行解密,并執(zhí)行在其中的啟動(dòng)代碼指令,以使系統(tǒng)達(dá)到操作狀態(tài)。如果所選擇的密鑰值不是來(lái)自于安全密鑰存儲(chǔ)器220的Skey,則解密將會(huì)失敗,而且SPE 270將無(wú)法執(zhí)行啟動(dòng)代碼指令。
可以利用多處理器系統(tǒng)所執(zhí)行的每個(gè)加電復(fù)位(POR)操作來(lái)執(zhí)行上述隨機(jī)選擇一個(gè)啟動(dòng)處理器并且利用隨機(jī)選擇的啟動(dòng)處理器來(lái)啟動(dòng)該多處理器系統(tǒng)的處理。因此,每當(dāng)啟動(dòng)多處理器系統(tǒng)時(shí),就會(huì)從多個(gè)處理器中隨機(jī)地選擇一個(gè)不同的處理器作為啟動(dòng)處理器。結(jié)果,潛在的系統(tǒng)入侵者將無(wú)法在之前就確定哪一個(gè)處理器是啟動(dòng)處理器以及將多處理器系統(tǒng)的電磁和熱狀況的測(cè)量導(dǎo)向該特定處理器。
相反,潛在的入侵者必須通過(guò)多處理器系統(tǒng)的多個(gè)啟動(dòng)操作來(lái)監(jiān)控單個(gè)處理器,以期望最后將選擇該單個(gè)處理器作為用作啟動(dòng)處理器的隨機(jī)處理器,或者潛在的入侵者必須監(jiān)控所有的處理器,從而識(shí)別哪一個(gè)處理器是啟動(dòng)處理器,并試圖通過(guò)測(cè)量其各自的電磁及熱狀況來(lái)獲得必要的信息。舉例來(lái)說(shuō),在八處理器系統(tǒng)中,由于必須監(jiān)控所有8個(gè)處理器,所以使監(jiān)控啟動(dòng)序列的難度增加了八倍。而且,需要更多的探針和硬件來(lái)進(jìn)行這種監(jiān)控,從而增加了試圖進(jìn)行這種監(jiān)控的難度。
圖3A是描述了根據(jù)一個(gè)示范性實(shí)施例的隨機(jī)選擇機(jī)制的示意圖。如上所述,支持該示范性實(shí)施例的原理概念是從多個(gè)處理器中隨機(jī)選擇一個(gè)處理器成為多處理器系統(tǒng)的啟動(dòng)處理器。為了進(jìn)行該隨機(jī)選擇,提供隨機(jī)事件發(fā)生器和選擇器機(jī)制。在示范性實(shí)施例中,在多處理器系統(tǒng)的普適邏輯中提供隨機(jī)事件發(fā)生器,并與每個(gè)處理器相關(guān)聯(lián)地提供選擇器。圖3A提供了對(duì)根據(jù)一個(gè)示范性實(shí)施例的隨機(jī)事件發(fā)生器和選擇器的一個(gè)實(shí)現(xiàn)的描述。
如圖3A所示,舉例來(lái)說(shuō),隨機(jī)事件發(fā)生器310包括線性反饋移位寄存器(LFSR)計(jì)數(shù)器320、環(huán)形振蕩器330和選擇器信號(hào)寄存器/解碼器340,其中隨機(jī)事件發(fā)生器310可以對(duì)應(yīng)于圖2中的隨機(jī)事件發(fā)生器242。環(huán)形振蕩器330是一種由奇數(shù)個(gè)非門組成的器件,這些非門的輸出在兩個(gè)電壓電平之間振蕩。該非門或反相器以鏈狀耦合,將最后一個(gè)反相器的輸出反饋到第一反相器中。一連串奇數(shù)個(gè)反相器的最后輸出是第一輸入的邏輯非。在斷言第一輸入之后的一段有限的時(shí)間后斷言該最后輸出。該最后輸出到輸入的反饋導(dǎo)致不穩(wěn)定的振蕩,它將根據(jù)隨機(jī)因素而隨時(shí)間改變,這些因素例如溫度和電源上的電磁噪聲。
連同時(shí)鐘信號(hào)clk一起將環(huán)形振蕩器330的輸出提供作為L(zhǎng)FSR計(jì)數(shù)器320的輸入。LFSR計(jì)數(shù)器320是移位寄存器,其輸入位是它的以前狀態(tài)的線性函數(shù)。單個(gè)位的唯一線性函數(shù)是異或和異或非(inverse-XOR),因此,LFSR是一種通過(guò)對(duì)整個(gè)移位寄存器值的某些位進(jìn)行異或操作(XOR)來(lái)驅(qū)動(dòng)其輸入位的移位寄存器。
LFSR計(jì)數(shù)器320的初始值稱為種子,而且由于寄存器的操作是確定性的,所以完全由LFSR計(jì)數(shù)器320目前(或以前)的狀態(tài)來(lái)確定LFSR計(jì)數(shù)器320所生成的序列值。帶有精選的反饋功能的LFSR計(jì)數(shù)器320可以生成出現(xiàn)隨機(jī)和具有很長(zhǎng)周期的序列位。在示范性實(shí)施例中,使該隨機(jī)性更加明顯,因?yàn)榈絃FSR計(jì)數(shù)器320的輸入是由環(huán)形振蕩器330所生成的振蕩結(jié)果與環(huán)形振蕩器330的頻率和輸入時(shí)鐘clk的頻率之間的差異的乘積,其中環(huán)形振蕩器330的頻率和輸入時(shí)鐘clk的頻率彼此獨(dú)立的變化。
LFSR計(jì)數(shù)器320接收來(lái)自于環(huán)形振蕩器330的輸出以及時(shí)鐘信號(hào)clk作為輸入,并生成一個(gè)輸出位流,其存儲(chǔ)在選擇器信號(hào)寄存器/解碼器340內(nèi)。環(huán)形振蕩器330的反相器在到LFSR計(jì)數(shù)器320的輸出信號(hào)中引入延遲,因此,在環(huán)形振蕩器330的頻率與輸入時(shí)鐘clk的頻率之間就存在差異。如圖3B所示,頻率之間的差異引起到LFSR計(jì)數(shù)器的輸入中的抖動(dòng)。該抖動(dòng)提供一種隨機(jī)性的度量,它使LFSR計(jì)數(shù)器320所生成的輸出隨機(jī)化。
在選擇器信號(hào)寄存器/解碼器340中存儲(chǔ)LFSR計(jì)數(shù)器320的輸出。在所述實(shí)例中,LFSR計(jì)數(shù)器320是一個(gè)3位的計(jì)數(shù)器,它生成一個(gè)3位的輸出,其中解釋該輸出來(lái)對(duì)值1-8進(jìn)行編碼。選擇器信號(hào)寄存器/解碼器340的解碼器功能根據(jù)隨機(jī)的3位的輸入值選擇8個(gè)唯一輸出中的一個(gè)。根據(jù)選擇器信號(hào)寄存器340中所存儲(chǔ)的位的狀態(tài),向各種處理器(例如圖1中的SPE0-SPE7 120-134)的配置位寄存器輸出高或低狀態(tài)信號(hào),從而設(shè)置配置位寄存器內(nèi)所存儲(chǔ)的值,因此選擇其中一個(gè)處理器成為多處理器系統(tǒng)的啟動(dòng)處理器。
一旦設(shè)置了配置位寄存器值,就使用這些值來(lái)向相應(yīng)的選擇器350-370提供選擇器信號(hào)。如圖3A所示,連同Skey輸入和隨機(jī)密鑰值輸入一起向多路轉(zhuǎn)換器352、362、372提供選擇器信號(hào)。根據(jù)選擇器信號(hào)的狀態(tài),由每個(gè)多路轉(zhuǎn)換器352、362、372選擇Skey輸入或隨機(jī)密鑰值輸入。可由一個(gè)或多個(gè)與上述用于選擇啟動(dòng)處理器的隨機(jī)事件發(fā)生器配置相同或不同類型的隨機(jī)值發(fā)生器來(lái)生成該隨機(jī)密鑰值輸入。也就是說(shuō),如上所述的類似的隨機(jī)事件發(fā)生器配置可以用來(lái)隨機(jī)生成一個(gè)長(zhǎng)度與Skey相同的密鑰值。然后將這些隨機(jī)密鑰值輸入多路轉(zhuǎn)換器352、362和372。
設(shè)計(jì)系統(tǒng),使得例如借助于上述解碼器功能,輸入到多路轉(zhuǎn)換器352、362、372中的選擇器信號(hào)中只有一個(gè)選擇器信號(hào)將選擇Skey輸入,同時(shí)其他所有的選擇器信號(hào)將選擇一個(gè)隨機(jī)密鑰值輸入。將來(lái)自于多路轉(zhuǎn)換器352、362、372的輸出提供給相應(yīng)的SPE,以便SPE可以在隨機(jī)選擇的啟動(dòng)處理器的情況下利用這些輸出對(duì)啟動(dòng)代碼進(jìn)行解密并執(zhí)行該啟動(dòng)代碼,或者正如在多處理器系統(tǒng)中其他所有的處理器的情況下,嘗試對(duì)啟動(dòng)代碼進(jìn)行解密并且未能啟動(dòng)該多處理器系統(tǒng)。
應(yīng)當(dāng)理解,上述用于提供隨機(jī)事件發(fā)生器和選擇器的機(jī)制僅僅是示范性的,而且并非旨在聲明或暗示任何鎮(zhèn)對(duì)可以用于示范性實(shí)施例的隨機(jī)事件發(fā)生器和選擇器的類型的限制。例如,可以使用其他隨機(jī)事件發(fā)生器,而不使用圖3A所示的環(huán)形振蕩器和LFSR計(jì)數(shù)器布置。例如,可以利用熱傳感器來(lái)測(cè)量熱噪聲,該熱噪聲然后可用來(lái)生成用于選擇其中一個(gè)處理器作為啟動(dòng)處理器的隨機(jī)事件。類似地,可以利用量子點(diǎn)(q-dot)或半導(dǎo)體鈉米晶體來(lái)測(cè)量量子源效應(yīng),其可用作用于選擇一個(gè)處理器作為啟動(dòng)處理器的隨機(jī)源。在該示范性實(shí)施例中可以使用任何強(qiáng)的隨機(jī)源來(lái)提供處理器隨機(jī)選擇,其中該處理器用作多處理器系統(tǒng)的啟動(dòng)處理器。
而且,應(yīng)當(dāng)理解,盡管圖3A顯示了具有5個(gè)反相器的環(huán)形振蕩器330,但是該示范性實(shí)施例并不局限于此。反而,在不脫離本發(fā)明的精神和范圍的情況下,可以使用任何數(shù)目的反相器,只要存在奇數(shù)個(gè)反相器。實(shí)際上,為了在到LFSR計(jì)數(shù)器320的輸入中提供附加的抖動(dòng),對(duì)環(huán)形振蕩器330中一連串的反相器添加附加的反相器是合乎要求的,以便在輸入時(shí)鐘信號(hào)clk的頻率和來(lái)自于環(huán)形振蕩器330的輸入之間引入甚至更多差異??梢愿鶕?jù)其中實(shí)現(xiàn)示范性實(shí)施例的特定多處理器系統(tǒng)所要求的操作特性來(lái)選擇差異的數(shù)量。
而且,盡管圖2和3A描述了由單獨(dú)的隨機(jī)密鑰值發(fā)生器為每個(gè)處理器生成隨機(jī)密鑰值,但是該示范性實(shí)施例并不局限于此。相反,可以為所有處理器提供單個(gè)隨機(jī)密鑰值發(fā)生器,該隨機(jī)密鑰值發(fā)生器生成一個(gè)或多個(gè)輸入到處理器的隨機(jī)密鑰值。因此,舉例來(lái)說(shuō),隨機(jī)密鑰值發(fā)生器可以生成提供給所有處理器的單個(gè)隨機(jī)密鑰值、對(duì)于每個(gè)單個(gè)處理器的單獨(dú)的隨機(jī)密鑰值(例如,在此情況下,可以生成7個(gè)不同的隨機(jī)密鑰值)或者生成可以有選擇地提供給多處理器系統(tǒng)的各個(gè)處理器的任何數(shù)量的隨機(jī)密鑰值。
在示范性實(shí)施例中,如圖3C所示,可以提供多個(gè)隨機(jī)密鑰值發(fā)生器390,其中每個(gè)隨機(jī)密鑰值發(fā)生器都輸出一個(gè)不同的隨機(jī)密鑰值??商鎿Q地,如上所述,可以用單個(gè)隨機(jī)密鑰值發(fā)生器來(lái)代替這些單獨(dú)的隨機(jī)密鑰值發(fā)生器??梢赃B同來(lái)自于Skey存儲(chǔ)器395的安全密鑰(Skey)一起提供這些隨機(jī)密鑰值作為多處理器系統(tǒng)中處理器(例如,SPE 393和SPE 394)的選擇器(例如,多路轉(zhuǎn)換器391和392)的輸入,其中該安全密鑰(Skey)例如eFuse,它實(shí)際上用來(lái)對(duì)用于啟動(dòng)多處理器系統(tǒng)的啟動(dòng)代碼進(jìn)行解密。如圖所示,可以對(duì)隨機(jī)生成的密鑰值和Skey值進(jìn)行多路復(fù)用,并在8個(gè)相同的信號(hào)線上將它們提供給每個(gè)多路轉(zhuǎn)換器391和392,以便使入侵者更難以從密鑰值存儲(chǔ)器395中分離出其中作為信號(hào)線的一條線路。
可以向多路轉(zhuǎn)換器391和392提供總共8個(gè)密鑰值輸入,而且可以用來(lái)自于普適邏輯397中的隨機(jī)事件發(fā)生器396的選擇信號(hào)來(lái)選擇8個(gè)輸入中的一個(gè)。在此情況下,多路轉(zhuǎn)換器391和392可以在Skey輸入和7個(gè)隨機(jī)密鑰值之間進(jìn)行選擇而不是簡(jiǎn)單地在Skey輸入和一個(gè)隨機(jī)密鑰值之間進(jìn)行選擇。因此,第一處理器可以在隨機(jī)選擇第一處理器作為啟動(dòng)處理器的基礎(chǔ)上選擇Skey輸入,第二處理器可以選擇第三隨機(jī)密鑰值,第三處理器可以選擇第四隨機(jī)密鑰值,第五處理器可以選擇第一隨機(jī)密鑰值,以此類推。因此,每個(gè)處理器可以接收不同的密鑰值,或者是Skey或者是隨機(jī)生成的密鑰值。結(jié)果,對(duì)于入侵者來(lái)說(shuō)就變得難以在監(jiān)控多處理器系統(tǒng)的總線業(yè)務(wù)量時(shí)辨識(shí)哪一個(gè)密鑰值是正確密鑰值。
還應(yīng)當(dāng)理解,如果是在單芯片上設(shè)計(jì)的話,優(yōu)選地在其中提供多處理器系統(tǒng)的陶瓷封裝的較低層金屬層或互連的最底層中提供圖3A和3C所示的機(jī)制。由于探測(cè)多處理器的電特征和熱特征的能力目前被限定在多處理器陶瓷封裝的上層,所以通過(guò)將這些元件放置在較低層金屬層中,使得探測(cè)這些元件的操作的能力變得更加困難。因此,如果可能的話,對(duì)于未來(lái)的入侵者來(lái)說(shuō),要監(jiān)控隨機(jī)事件發(fā)生器和選擇器的熱特征和電特征以便確定由這些元件所提供的密鑰值是非常困難的。
利用上述機(jī)制,可以在多處理器系統(tǒng)的多個(gè)處理器內(nèi)隨機(jī)地選擇一個(gè)處理器來(lái)啟動(dòng)該多處理器系統(tǒng)。按照這種方式,使監(jiān)控處理器的電特征和熱特征以便獲得用來(lái)啟動(dòng)多處理器系統(tǒng)的秘密信息(例如秘密密鑰)的能力變得更加困難,而且潛在地變成對(duì)那些希望訪問(wèn)多處理器系統(tǒng)而沒(méi)有得到授權(quán)的人員的不利因素。
盡管上述用于隨機(jī)選擇一個(gè)處理器來(lái)啟動(dòng)多處理器系統(tǒng)的機(jī)制針對(duì)監(jiān)控啟動(dòng)序列提供了良好的保護(hù),但是如果未授權(quán)個(gè)體足夠有耐心的話,他仍然有可能“攻擊(hack)”該系統(tǒng)。為了使得基本上不可能進(jìn)行這樣的監(jiān)控,示范性實(shí)施例提供了附加的機(jī)制用以在隨機(jī)選擇的處理器上對(duì)啟動(dòng)序列進(jìn)行掩碼,以便未授權(quán)個(gè)體無(wú)法辨識(shí)哪一個(gè)處理器正確地執(zhí)行用于啟動(dòng)多處理器系統(tǒng)的實(shí)際的啟動(dòng)序列。
在一個(gè)示范性實(shí)施例中,掩碼操作包括由每個(gè)未選為啟動(dòng)處理器的處理器運(yùn)行一個(gè)不同的指令集,從而生成掩碼的電和熱特征,它們使得難以對(duì)啟動(dòng)處理器與該系統(tǒng)中的其他處理器進(jìn)行辨識(shí)。由不同的處理器所運(yùn)行的代碼序列可以是相同的默認(rèn)代碼序列,默認(rèn)的代碼序列提供在與處理器相關(guān)聯(lián)的存儲(chǔ)器中,或者可以在處理器無(wú)法對(duì)啟動(dòng)代碼序列進(jìn)行解密時(shí)可由該處理器訪問(wèn)。例如,可以在與每個(gè)處理器相關(guān)聯(lián)的本地存儲(chǔ)器的安全部分中提供默認(rèn)代碼序列??商鎿Q地,可以在片上或片外所提供的快速ROM或其他存儲(chǔ)設(shè)備中提供默認(rèn)代碼序列。
當(dāng)處理器不能對(duì)從快速ROM中接收的實(shí)際的加密的啟動(dòng)代碼進(jìn)行解密時(shí),處理器默認(rèn)返回本地存儲(chǔ)器的安全部分,該安全部分使處理器執(zhí)行指令來(lái)對(duì)另一個(gè)處理器上正在執(zhí)行的啟動(dòng)代碼序列進(jìn)行掩碼。該指令序列也許不生成任何可用的信息,而且可能僅僅用作掩碼功能??商鎿Q地,舉例來(lái)說(shuō),可以利用該指令序列來(lái)執(zhí)行用于在啟動(dòng)操作期間對(duì)系統(tǒng)進(jìn)行監(jiān)控的操作或其他有用的操作。
在示范性實(shí)施例中,在每個(gè)非選擇的處理器(例如非啟動(dòng)處理器)上執(zhí)行的代碼是相同的。在其中由每個(gè)非選擇的處理器所執(zhí)行的代碼為相同的示范性實(shí)施例中,在這些非選擇的處理器的每一個(gè)上運(yùn)行的代碼優(yōu)選為生成電和熱特征文件(profile)的代碼,這些特征文件相似于實(shí)際啟動(dòng)代碼但不提供任何安全信息,其中入侵者為了規(guī)避多處理器系統(tǒng)的安全性就需要這些安全信息。這樣的代碼可以執(zhí)行類似于實(shí)際啟動(dòng)代碼的操作,但不訪問(wèn)多處理器系統(tǒng)的敏感部分。實(shí)際上,在一個(gè)示范性實(shí)施例中,用來(lái)啟動(dòng)多處理器系統(tǒng)的相同啟動(dòng)代碼可由非選擇的處理器使用,但是非選擇的處理器可訪問(wèn)安全密鑰(Skey),而不可訪問(wèn)其它特權(quán)信息。
結(jié)果,這些非選擇的處理器的熱特征文件和總線業(yè)務(wù)量將近似于實(shí)際啟動(dòng)序列。這樣,從利用監(jiān)控探針來(lái)監(jiān)控?zé)崽卣魑募?、總線業(yè)務(wù)量等等的入侵者的角度來(lái)看,由于通過(guò)監(jiān)控探針來(lái)看所有核都是相同的,所以該入侵者將無(wú)法譯碼出哪一個(gè)核正在執(zhí)行實(shí)際啟動(dòng)操作。這種不明確性阻止了篡改,并使得更加難以分離出真正的啟動(dòng)代碼序列、秘密密鑰信息等等。
在其他示范性實(shí)施例中,每個(gè)非選擇的處理器都可以執(zhí)行不同的指令集。通過(guò)在每個(gè)非選擇的處理器上執(zhí)行不同的指令集,在利用電或熱探針來(lái)監(jiān)控這些處理器時(shí),沒(méi)有一個(gè)處理器看上去是唯一的。結(jié)果,無(wú)法通過(guò)探針來(lái)識(shí)別諸如熱特征文件或總線業(yè)務(wù)量那樣的明顯特征以便識(shí)別哪一個(gè)處理器是啟動(dòng)處理器。
可以為多處理器系統(tǒng)中每個(gè)處理器隨機(jī)地選擇這些不同的指令集。因此,舉例來(lái)說(shuō),可以隨機(jī)地選擇針對(duì)在片上存儲(chǔ)設(shè)備(例如快速ROM等)上存儲(chǔ)的代碼序列的不同開(kāi)始地址,并將該不同的開(kāi)始地址提供給多處理器系統(tǒng)的處理器。然后處理器開(kāi)始執(zhí)行在隨機(jī)選擇的開(kāi)始地址處的指令,從而生成不同的熱特征文件和總線業(yè)務(wù)量,以對(duì)實(shí)際啟動(dòng)代碼序列進(jìn)行掩碼。
一種為不同的處理器提供不同的代碼序列的方法是提供啟動(dòng)代碼,該啟動(dòng)代碼具有插入到其內(nèi)的隨機(jī)延遲元素。舉例來(lái)說(shuō),這些延遲元素可以是重復(fù)隨機(jī)次數(shù)的循環(huán)??梢栽陔S機(jī)選擇的啟動(dòng)處理器所運(yùn)行的實(shí)際啟動(dòng)代碼序列中以及在非選擇的處理器所運(yùn)行的啟動(dòng)代碼中提供這樣的延遲元素。從監(jiān)控處理器的熱和總線業(yè)務(wù)量特性的入侵者的角度來(lái)看,該隨機(jī)延遲導(dǎo)致該啟動(dòng)代碼“看上去”在每個(gè)處理器上都不同。結(jié)果,入侵者不可能辨識(shí)出哪一個(gè)處理器正在運(yùn)行啟動(dòng)多處理器系統(tǒng)的實(shí)際啟動(dòng)代碼。
在另一個(gè)示范性實(shí)施例中,提供偽處理器,其中在入侵者監(jiān)控偽處理器時(shí)該偽處理器看起來(lái)像是唯一的。該示范性實(shí)施例是先前的實(shí)施例的組合,其中隨機(jī)地選擇一個(gè)處理器作為啟動(dòng)處理器,從非選擇的處理器中選擇一個(gè)處理器作為運(yùn)行代碼的偽處理器,該代碼提供來(lái)自于啟動(dòng)代碼序列的唯一熱和總線業(yè)務(wù)量特征文件,而其他處理器運(yùn)行盡可能對(duì)實(shí)際啟動(dòng)代碼序列的熱特征文件和總線業(yè)務(wù)量進(jìn)行復(fù)制的代碼序列。按照這種方式,入侵者將從其他處理器中檢測(cè)到唯一的偽處理器,并推斷該處理器正在運(yùn)行實(shí)際啟動(dòng)代碼序列。因此,入侵者將它的攻擊導(dǎo)向該偽處理器而不是實(shí)際啟動(dòng)處理器,其中從熱特征文件和總線業(yè)務(wù)量的觀點(diǎn)來(lái)看,啟動(dòng)處理器看起來(lái)與其他處理器類似。此外,如果入侵者試圖運(yùn)行啟動(dòng)或積極地干擾偽處理器,則偽處理器就可以利用信號(hào)通知系統(tǒng)關(guān)閉。
圖4A-4D是描述根據(jù)示范性實(shí)施例的用于對(duì)隨機(jī)選擇的啟動(dòng)處理器的安全啟動(dòng)操作進(jìn)行掩碼的掩碼操作的示意圖。圖4A描述了第一掩碼操作,其中從監(jiān)控探針角度來(lái)看與啟動(dòng)代碼序列相同的代碼運(yùn)行在每個(gè)非選擇的處理器上。如圖4A所示,例如借助于之前描述的機(jī)制,隨機(jī)地選擇SPE0 410作為多處理器系統(tǒng)400的啟動(dòng)處理器。因此,SPE0 410接收秘密密鑰,對(duì)來(lái)自于快速ROM的啟動(dòng)代碼序列進(jìn)行解密,并執(zhí)行為使多處理器系統(tǒng)400達(dá)到操作狀態(tài)所要求的實(shí)際啟動(dòng)代碼操作。其他SPE(即SPE1-SPE7 412-424)執(zhí)行從檢測(cè)探針的角度看起來(lái)好像啟動(dòng)代碼序列的代碼。
如上所述,其他SPE 412-424所運(yùn)行的代碼序列可以是在本地存儲(chǔ)器的安全部分中提供的默認(rèn)代碼序列,該安全部分使SPE 412-424執(zhí)行指令來(lái)對(duì)SPE 0 410上正在執(zhí)行的啟動(dòng)代碼序列進(jìn)行掩碼。優(yōu)選地,在這些非選擇的SPE 412-424中的每一個(gè)上運(yùn)行的代碼是生成電和熱特征文件的代碼,其中所述電和熱特征文件類似于實(shí)際啟動(dòng)代碼但并不提供任何秘密信息,其中入侵者為了規(guī)避多處理器系統(tǒng)的安全性就需要秘密安全信息。這樣的代碼可以執(zhí)行與實(shí)際啟動(dòng)代碼的操作相類似但并不訪問(wèn)多處理器系統(tǒng)400的敏感部分的操作。
圖4B描述了另一個(gè)示范性實(shí)施例,其中在每個(gè)非選擇的處理器上運(yùn)行不同的隨機(jī)選擇的算法。如圖4B所示,再次選擇SPE0作為啟動(dòng)處理器,并且因此,SPE0運(yùn)行用于將多處理器系統(tǒng)400啟動(dòng)到操作狀態(tài)的啟動(dòng)代碼。其他SPE 412-424中的每一個(gè)都運(yùn)行單獨(dú)的隨機(jī)選擇的算法,該算法在EIB上生成不同的熱特征文件和不同的總線業(yè)務(wù)量。因此,在與其他SPE 412-424中的每一個(gè)進(jìn)行比較時(shí),每個(gè)SPE0-7看起來(lái)是唯一的。因此,不可能辨識(shí)出哪一個(gè)SPE0-7 412-424是用于啟動(dòng)多處理器系統(tǒng)400的實(shí)際啟動(dòng)處理器。
如上所述,可以為多處理器系統(tǒng)中的每個(gè)SPE 412-424隨機(jī)地選擇這些不同的算法。因此,舉例來(lái)說(shuō),可以隨機(jī)地選擇在片上存儲(chǔ)設(shè)備(例如快速ROM等等)中存儲(chǔ)的代碼序列的不同開(kāi)始地址,并將該不同的開(kāi)始地址提供給SPE 412-424。然后,SPE 412-424可以開(kāi)始執(zhí)行在隨機(jī)選擇的開(kāi)始地址處的指令,從而生成對(duì)實(shí)際啟動(dòng)代碼序列進(jìn)行掩碼的不同的熱特征文件和總線業(yè)務(wù)量。
可替換地,可以將啟動(dòng)代碼提供給SPE 412-424中的每一個(gè),其中在啟動(dòng)代碼內(nèi)插入隨機(jī)延遲元素。舉例來(lái)說(shuō),這些延遲元素可以是迭代隨機(jī)次數(shù)的循環(huán)。從監(jiān)控處理器的熱和總線業(yè)務(wù)量特性的入侵者的角度,該隨機(jī)延遲導(dǎo)致啟動(dòng)代碼“看上去”在每個(gè)處理器上都不同。結(jié)果,入侵者不可能辨識(shí)出哪一個(gè)處理器正在運(yùn)行用于啟動(dòng)多處理器系統(tǒng)的實(shí)際啟動(dòng)代碼。
圖4C描述了另一個(gè)示范性實(shí)施例,其中提供一個(gè)偽處理器,可以使入侵者的攻擊改向到該偽處理器。如圖4C所示,SPE0是隨機(jī)選擇的啟動(dòng)處理器,它執(zhí)行啟動(dòng)序列。正如上述參照?qǐng)D4A的實(shí)施例中的那樣,SPE1-SPE4 412-418和SPE6-SPE7 422-424運(yùn)行從熱和總線業(yè)務(wù)量檢測(cè)角度看起來(lái)像啟動(dòng)代碼序列的代碼。另一方面,SPE5 420運(yùn)行隨機(jī)選擇的算法,其中可以按照上述參照?qǐng)D4B所描述的類似方式來(lái)隨機(jī)地選擇該算法。
因此,從監(jiān)控處理器410-424的特性的入侵者角度來(lái)看,所有SPE0-SPE4 410-418和SPE6-SPE7 422-424看起來(lái)都在執(zhí)行相同的代碼。然而,與其它SPE相比,SPE5 420看起來(lái)是唯一的。因此,希望攻擊多處理器系統(tǒng)的啟動(dòng)代碼序列的入侵者會(huì)改向?qū)PE 5 420進(jìn)行攻擊而不是實(shí)際啟動(dòng)處理器SPE 0 410,這是因?yàn)閷?duì)于入侵者來(lái)說(shuō)SPE5420看起來(lái)是實(shí)際啟動(dòng)處理器。
正如利用每個(gè)加電復(fù)位(POR)操作來(lái)隨機(jī)地選擇實(shí)際啟動(dòng)處理器,同樣可以從非選擇的處理器中隨機(jī)地選擇偽處理器。因此,利用每個(gè)POR操作,可以選擇不同的啟動(dòng)處理器和偽處理器,從而使入侵者難以推斷哪一個(gè)處理器正在執(zhí)行實(shí)際啟動(dòng)序列,該實(shí)際啟動(dòng)序列可能會(huì)被危害以便獲得對(duì)多處理器系統(tǒng)的訪問(wèn)。
為完整起見(jiàn),圖4D描述了之前上述的示范性實(shí)施例,其中由每個(gè)處理器來(lái)執(zhí)行用來(lái)啟動(dòng)該系統(tǒng)的啟動(dòng)代碼。在該示范性實(shí)施例中,只允許隨機(jī)選擇的啟動(dòng)處理器訪問(wèn)秘密密鑰(Skey),而其他處理器接收隨機(jī)選擇的密鑰(Rkey1-Rkey7)。每個(gè)處理器都試圖利用提供給它們的密鑰(例如Skey或Rkey)來(lái)解碼和執(zhí)行該啟動(dòng)代碼。只有隨機(jī)選擇的啟動(dòng)處理器能正確地對(duì)啟動(dòng)代碼進(jìn)行解密并執(zhí)行該啟動(dòng)代碼來(lái)使數(shù)據(jù)處理系統(tǒng)達(dá)到操作狀態(tài)。然而,對(duì)于外部的監(jiān)控器來(lái)說(shuō),看起來(lái)好像所有處理器都在啟動(dòng)該系統(tǒng),從而對(duì)實(shí)際啟動(dòng)處理器進(jìn)行掩碼,這是因?yàn)槊總€(gè)處理器都執(zhí)行類似的任務(wù)來(lái)試圖解密和啟動(dòng)該系統(tǒng)。也就是說(shuō),每個(gè)處理器都將生成類似的熱和/或電特征,這使得未來(lái)的入侵者利用檢測(cè)探針等難以辨識(shí)哪一個(gè)處理器是實(shí)際啟動(dòng)處理器。
通過(guò)使用如示范性實(shí)施例中所提供的對(duì)啟動(dòng)處理器的隨機(jī)選擇和對(duì)啟動(dòng)序列的掩碼,對(duì)于到多處理器系統(tǒng)的未來(lái)入侵者來(lái)說(shuō),辨識(shí)哪一個(gè)處理器正在執(zhí)行啟動(dòng)代碼序列就變得非常困難。因此,對(duì)于未來(lái)入侵者來(lái)說(shuō),要監(jiān)控處理器熱特征文件和總線業(yè)務(wù)量并識(shí)別用于訪問(wèn)加密的啟動(dòng)代碼的秘密密鑰信息就變得非常困難。此外,對(duì)于未來(lái)入侵者來(lái)說(shuō),變得難以識(shí)別啟動(dòng)代碼序列中可以侵入系統(tǒng)的位置。因此,使多處理器系統(tǒng)更加安全而沒(méi)有未授權(quán)訪問(wèn)啟動(dòng)序列的危險(xiǎn)。
圖5-6是概述用于在多處理器系統(tǒng)內(nèi)隨機(jī)地選擇一個(gè)處理器作為啟動(dòng)處理器并對(duì)啟動(dòng)代碼序列進(jìn)行掩碼的示范性操作的流程圖。應(yīng)當(dāng)理解,可以通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)流程圖示例中的每個(gè)塊和流程圖示例中的塊的組合。可以將這些計(jì)算機(jī)程序指令提供給處理器或其他可編程數(shù)據(jù)處理裝置來(lái)生成機(jī)器,以便在處理器或其他可編程數(shù)據(jù)處理裝置上執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)在流程圖塊中所指定功能的裝置。還可以在計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)介質(zhì)中存儲(chǔ)這些計(jì)算機(jī)程序指令,其中計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)介質(zhì)可以引導(dǎo)處理器或其他可編程數(shù)據(jù)處理裝置按照特定方式操作,以便存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)介質(zhì)內(nèi)的指令生成一個(gè)制造產(chǎn)品,包括指令裝置,該指令裝置實(shí)現(xiàn)流程塊內(nèi)所指定的功能。
因此,流程圖示例的塊支持用于執(zhí)行指定功能的裝置的組合、用于執(zhí)行指定功能的步驟的組合和用于執(zhí)行指定功能的程序指令裝置。還應(yīng)該理解,可由執(zhí)行指定功能和步驟的基于專用硬件的計(jì)算機(jī)系統(tǒng)或者通過(guò)專用硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)流程圖示例中的每個(gè)塊和流程圖示例中的塊的組合。
圖5概述了一種隨機(jī)選擇用于啟動(dòng)多處理器系統(tǒng)的啟動(dòng)處理器的示范性操作。如圖5所示,該操作從系統(tǒng)控制器執(zhí)行加電復(fù)位(POR)操作開(kāi)始(步驟510)。在執(zhí)行初始POR操作之后,系統(tǒng)控制器向多處理器系統(tǒng)的普適邏輯提供“電源正?!毙盘?hào)(步驟520),以及普適邏輯初始化一個(gè)隨機(jī)啟動(dòng)操作(步驟530)。
普適邏輯從多個(gè)處理器中隨機(jī)地選擇一個(gè)處理器作為啟動(dòng)處理器(步驟540)。然后普適邏輯根據(jù)該隨機(jī)選擇來(lái)設(shè)置處理器的配置位(步驟550)并利用信號(hào)通知處理器開(kāi)始啟動(dòng)操作(步驟560)。快速ROM向處理器提供加密的啟動(dòng)代碼,而且從秘密密鑰存儲(chǔ)器和隨機(jī)密鑰發(fā)生器向處理器提供密鑰值(步驟570)。然后處理器根據(jù)它們的配置位的設(shè)置來(lái)選擇將由處理器使用的密鑰(步驟580)。處理器試圖根據(jù)所選擇的密鑰來(lái)對(duì)啟動(dòng)代碼進(jìn)行解密(步驟590)。該選擇的處理器利用秘密密鑰對(duì)啟動(dòng)代碼進(jìn)行解密并啟動(dòng)該系統(tǒng)(步驟595)。應(yīng)當(dāng)注意,由所有其他非選擇的處理器解密啟動(dòng)代碼的試圖將會(huì)失敗,而且只有該選擇的處理器能夠啟動(dòng)該系統(tǒng),然后操作結(jié)束。
圖6是概述了根據(jù)一個(gè)示范性實(shí)施例對(duì)啟動(dòng)代碼序列進(jìn)行掩碼的示范性操作的流程圖。舉例來(lái)說(shuō),可以在多處理器系統(tǒng)的每個(gè)處理器中執(zhí)行圖6所述的操作。
如圖6所示,處理器接收信號(hào)以開(kāi)始啟動(dòng)操作(步驟610)。舉例來(lái)說(shuō),該步驟可以與圖5中的步驟530相對(duì)應(yīng)。處理器試圖對(duì)啟動(dòng)代碼進(jìn)行解密(步驟620),而且判斷該解密意圖是否失敗(步驟630)。如果解密成功,即該處理器是隨機(jī)選擇的啟動(dòng)處理器,則執(zhí)行啟動(dòng)代碼,以由此將多處理器系統(tǒng)啟動(dòng)到操作狀態(tài)(步驟640)。
如果解密失敗,則選擇執(zhí)行一個(gè)代碼序列來(lái)對(duì)啟動(dòng)序列進(jìn)行掩碼(步驟650)。如上所述,取決于特定實(shí)施例,可以根據(jù)本地存儲(chǔ)器的安全部分中的默認(rèn)代碼序列、隨機(jī)選擇的開(kāi)始地址、對(duì)具有隨機(jī)延遲元素的啟動(dòng)代碼的使用等等來(lái)進(jìn)行對(duì)掩碼代碼序列的選擇。運(yùn)行掩碼代碼序列(步驟660),而且判斷該系統(tǒng)是否處于操作狀態(tài),即是否完成了啟動(dòng)序列(步驟670)。如果否,該操作就返回到步驟660并繼續(xù)運(yùn)行掩碼代碼序列。如果該系統(tǒng)處于操作狀態(tài),則結(jié)束掩碼代碼序列的執(zhí)行(步驟680),并且操作終止。
因此,上述示范性實(shí)施例提供了一種機(jī)制,利用該機(jī)制可以從多個(gè)處理器中隨機(jī)地選擇一個(gè)處理器作為啟動(dòng)處理器,用以將多處理器系統(tǒng)啟動(dòng)到操作狀態(tài)。該示范性實(shí)施例還提了一種機(jī)制,用于對(duì)隨機(jī)選擇的處理器正執(zhí)行的啟動(dòng)代碼序列進(jìn)行掩碼,以便使入侵者難以辨識(shí)已經(jīng)隨機(jī)選擇了哪個(gè)處理器來(lái)執(zhí)行實(shí)際啟動(dòng)代碼序列。利用這些機(jī)制,通過(guò)使入侵者極難通過(guò)監(jiān)控啟動(dòng)代碼序列來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)的訪問(wèn)而使多處理器系統(tǒng)更加安全。
相對(duì)于多處理器系統(tǒng)中單個(gè)處理器正執(zhí)行的啟動(dòng)代碼序列描述了上述示范性實(shí)施例。然而,示范性實(shí)施例并不局限于此。如以下所描述的,在其他示范性實(shí)施例中,可以在多處理器系統(tǒng)中的多個(gè)處理器上來(lái)分配啟動(dòng)代碼序列。通過(guò)在多處理器系統(tǒng)中的多個(gè)處理器上分配啟動(dòng)代碼序列,增加了必須被危害以便獲得關(guān)于啟動(dòng)序列的完整信息從而避開(kāi)安全性測(cè)量的處理器的數(shù)目。
因此,以下所描述的示范性實(shí)施例的分布式啟動(dòng)操作比利用單個(gè)安全核的多處理器數(shù)據(jù)處理系統(tǒng)更為安全。此外,通過(guò)分布啟動(dòng)操作,如果危害了啟動(dòng)操作的任何部分,則啟動(dòng)操作失敗,從而防止未授權(quán)個(gè)體規(guī)避系統(tǒng)的安全性。換言之,盡管未來(lái)的入侵者可以危害啟動(dòng)操作的部分,但是該入侵者不能危害全部啟動(dòng)操作,因此不能獲得對(duì)多處理器數(shù)據(jù)處理系統(tǒng)的訪問(wèn)。
利用該示范性實(shí)施例,將啟動(dòng)代碼序列劃分成多個(gè)分區(qū),以便可以將每個(gè)分區(qū)提供給多處理器系統(tǒng)的不同的處理器。當(dāng)執(zhí)行啟動(dòng)代碼序列的每個(gè)分區(qū)時(shí),在啟動(dòng)代碼序列可以在另一個(gè)處理器上進(jìn)行之前,該分區(qū)必須在其各自的處理器上正確地完成。利用安全通信機(jī)制來(lái)傳達(dá)對(duì)啟動(dòng)代碼序列的先前分區(qū)的滿意完成。該安全通信機(jī)制可以包括一個(gè)安全令牌,例如加密的密碼或其他安全標(biāo)識(shí)符,例如公鑰/私鑰對(duì),其表示先前的會(huì)話沒(méi)有被危害。按照這種方式,創(chuàng)建必須令人滿意地完成的相關(guān)“會(huì)話”鏈。
啟動(dòng)代碼的分布式執(zhí)行中所涉及的處理器可以是多處理器系統(tǒng)中的所有處理器或者是多處理器系統(tǒng)中的處理器子集。例如,可以按分布方式利用隨機(jī)選擇機(jī)制(例如上述用于選擇單個(gè)啟動(dòng)處理器的隨機(jī)選擇機(jī)制)來(lái)隨機(jī)地選擇將用于啟動(dòng)系統(tǒng)的多個(gè)啟動(dòng)處理器。而且,可以隨機(jī)地選擇由處理器所執(zhí)行的啟動(dòng)代碼的特定分區(qū),使得利用每個(gè)加電復(fù)位(POR)操作,相同的處理器可以執(zhí)行或不執(zhí)行與之前POR操作中相同的啟動(dòng)代碼分區(qū)。因此,可以針對(duì)分布式啟動(dòng)操作中涉及哪些處理器以及每個(gè)處理器將執(zhí)行哪些啟動(dòng)代碼分區(qū)來(lái)進(jìn)行隨機(jī)化。
多處理器系統(tǒng)的其他處理器(即,非啟動(dòng)處理器)可以在分布式啟動(dòng)操作期間不執(zhí)行任何操作,或者可以執(zhí)行上述各種掩碼代碼示范性實(shí)施例中的一個(gè)或多個(gè)掩碼代碼序列,以此對(duì)隨機(jī)選擇的處理器子集上的啟動(dòng)代碼執(zhí)行進(jìn)行掩碼。換言之,在不脫離本發(fā)明精神和范圍的情況下,該示范性實(shí)施例的分布式啟動(dòng)代碼序列操作可以與之前所述的一個(gè)或多個(gè)示范性實(shí)施例相結(jié)合。
圖7A是描述根據(jù)一個(gè)示范性實(shí)施例配置為菊鏈或環(huán)形布置的分布式啟動(dòng)操作的示意圖。如圖7A所示,提供多個(gè)處理器720-750,用于啟動(dòng)多處理器數(shù)據(jù)處理系統(tǒng)。在所述實(shí)例中,在分布式啟動(dòng)操作中利用了所有協(xié)處理器,即SPE,而控制處理器(例如PPE)不執(zhí)行該分布式啟動(dòng)代碼。當(dāng)然,在其他示范性實(shí)施例中,PPE也可以包括在分布式啟動(dòng)操作中。而且,在其他示范性實(shí)施例中,正如之前所述的,只有多處理器數(shù)據(jù)處理系統(tǒng)中的處理器子集可以用來(lái)執(zhí)行分布式啟動(dòng)操作。
舉例來(lái)說(shuō),可以將加密的啟動(dòng)代碼710劃分成可單獨(dú)執(zhí)行的分區(qū),即啟動(dòng)代碼分區(qū)1至n,其中該加密的啟動(dòng)代碼710可以存儲(chǔ)在與多處理器數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的存儲(chǔ)設(shè)備中,例如圖2中的快速ROM230。例如,可以提供這些分區(qū)作為加密的啟動(dòng)代碼中的模塊或子程序,其中利用相同的加密算法和相同的秘密密鑰(Skey)對(duì)它們分別進(jìn)行加密。優(yōu)選地,啟動(dòng)代碼分區(qū)的數(shù)目等于分布式啟動(dòng)操作中將涉及的處理器的數(shù)目,即啟動(dòng)處理器的數(shù)目。然而,在某些示范性實(shí)施例中,例如在環(huán)形布置的啟動(dòng)處理器中,啟動(dòng)代碼分區(qū)的數(shù)目并不局限于啟動(dòng)處理器的數(shù)目,而可以是少于或多于啟動(dòng)處理器數(shù)目的任意多個(gè)分區(qū)。
舉例來(lái)說(shuō),在普適邏輯790的控制下執(zhí)行分布式啟動(dòng)操作,該普適邏輯790可以是圖1中相同的普適邏輯193。舉例來(lái)說(shuō),通過(guò)隨機(jī)事件發(fā)生器的用戶,普適邏輯790可以隨機(jī)地選擇將用作啟動(dòng)處理器的處理器720-750,以及可以隨機(jī)地選擇每個(gè)隨機(jī)選擇的處理器720-750將執(zhí)行哪個(gè)分區(qū)。在這一實(shí)施例中,普適邏輯790可以跟蹤啟動(dòng)代碼分區(qū)要執(zhí)行的次序,以便利用安全通信機(jī)制來(lái)確保啟動(dòng)代碼序列的安全性,其中安全通信機(jī)制指示分布式啟動(dòng)操作的前一個(gè)會(huì)話是否已經(jīng)被危害。然而,為了該描述的簡(jiǎn)單起見(jiàn),將假設(shè)在所述實(shí)例中,在分布式啟動(dòng)操作中利用了多處理器系統(tǒng)的所有處理器或至少協(xié)處理器,而且按相繼次序向處理器720-750提供啟動(dòng)代碼分區(qū)。
普適邏輯790向處理器720-750提供選擇器信號(hào),用以選擇每個(gè)處理器720-750將要執(zhí)行哪個(gè)啟動(dòng)代碼分區(qū)。另外,普適邏輯790提供密鑰值選擇器信號(hào),用以使處理器720-750從Skey存儲(chǔ)器中選擇Skey作為將用來(lái)對(duì)處理器720-750的相應(yīng)啟動(dòng)代碼分區(qū)進(jìn)行解密的密鑰。舉例來(lái)說(shuō),處理器720-750利用所提供的Skey對(duì)它們的啟動(dòng)代碼分區(qū)進(jìn)行解密,以及然后借助于按照菊鏈體系結(jié)構(gòu)的處理器720-750的布置或者在普適邏輯790的控制下,以合適的序列執(zhí)行啟動(dòng)代碼分區(qū)。
在所述實(shí)例中,SPE0 720通過(guò)以下步驟開(kāi)始分布式啟動(dòng)操作對(duì)其啟動(dòng)代碼分區(qū)1進(jìn)行解密,執(zhí)行該啟動(dòng)代碼分區(qū),然后向SPE1 730安全地傳達(dá)啟動(dòng)代碼分區(qū)1的成功完成。而且,可以在這些SPE之間利用安全機(jī)制用,用以表示沒(méi)有危害先前的會(huì)話,即,包括先前的啟動(dòng)代碼分區(qū)的執(zhí)行的會(huì)話。舉例來(lái)說(shuō),該安全機(jī)制可以傳送安全令牌、數(shù)字簽名、密碼、先前啟動(dòng)代碼分區(qū)的校驗(yàn)和,利用成功完成消息的公鑰/私鑰加密,等等。任何可以用來(lái)傳達(dá)是否危害了分布式啟動(dòng)操作的先前會(huì)話的安全機(jī)制都旨在本發(fā)明的精神和范圍內(nèi)。
在接收到啟動(dòng)代碼分區(qū)1執(zhí)行的成功和未危害的確認(rèn)之后,SPE1730可以對(duì)它的啟動(dòng)代碼分區(qū)2進(jìn)行解密,執(zhí)行啟動(dòng)代碼分區(qū),然后向SPE2 740傳達(dá)其成功完成啟動(dòng)代碼分區(qū)2。該處理可以繼續(xù)進(jìn)行,直至利用信號(hào)通知了所有處理器它們已經(jīng)完成了它們的分布式啟動(dòng)操作部分而沒(méi)有被危害。在這種啟動(dòng)代碼分區(qū)相關(guān)鏈中的任何中斷(例如利用信號(hào)通知未成功的執(zhí)行或者被危害的執(zhí)行)都會(huì)導(dǎo)致啟動(dòng)失敗,其中可以利用信號(hào)通知系統(tǒng)控制器啟動(dòng)失敗。一旦成功地完成了所有啟動(dòng)代碼分區(qū),該多處理器數(shù)據(jù)處理系統(tǒng)就處于操作狀態(tài),其中可以在各個(gè)處理器上執(zhí)行軟件應(yīng)用。
上述示范性實(shí)施例利用了針對(duì)啟動(dòng)代碼分區(qū)的處理器的菊鏈布置,其中在處理器上執(zhí)行該啟動(dòng)代碼分區(qū)。在不脫離本發(fā)明的精神和范圍的情況下可以使用確保連續(xù)執(zhí)行啟動(dòng)代碼分區(qū)的其它布置。例如,對(duì)上述菊鏈布置的擴(kuò)展是提供一種針對(duì)分布式啟動(dòng)操作的處理器的環(huán)形布置,以便最后一個(gè)的處理器(例如,SPE7 750)反過(guò)來(lái)向第一個(gè)處理器(例如,SPE0 720)傳達(dá)其啟動(dòng)代碼分區(qū)的執(zhí)行的成功的和未受危害的完成,其中選擇第一個(gè)處理器(例如,SPE0 720)作為“主要”啟動(dòng)處理器。按照這種方式,可以在主要啟動(dòng)處理器處使用通過(guò)環(huán)形布置從一個(gè)會(huì)話傳送到下一個(gè)會(huì)話的安全機(jī)制來(lái)對(duì)整個(gè)分布式啟動(dòng)操作的未被危害的執(zhí)行進(jìn)行檢驗(yàn),驗(yàn)證機(jī)制例如為安全令牌、增加的計(jì)數(shù)值等等。
而且,處理器的環(huán)形布置允許利用比啟動(dòng)處理器的數(shù)目多的啟動(dòng)代碼分區(qū)。因此,如果只選擇多處理器數(shù)據(jù)處理系統(tǒng)中的處理器子集作為啟動(dòng)處理器,則該處理器子集可以在針對(duì)分布式啟動(dòng)操作設(shè)置成的環(huán)形布置時(shí)執(zhí)行任意數(shù)目個(gè)啟動(dòng)代碼分區(qū)。這不僅提供了普適邏輯790在多處理器數(shù)據(jù)處理系統(tǒng)中隨機(jī)地選擇哪些處理器將成為啟動(dòng)處理器的能力,還提供了普適邏輯790隨機(jī)地選擇多少個(gè)處理器將在分布式啟動(dòng)操作中作為啟動(dòng)處理器的能力。因此,在第一POR操作中,可以選擇四個(gè)處理器作為啟動(dòng)處理器,而在隨后的POR操作中,可以選擇三個(gè)啟動(dòng)處理器。普適邏輯790可以包含用于隨機(jī)地選擇多個(gè)處理器來(lái)將其選擇為啟動(dòng)處理器的邏輯,然后如上所述,利用該邏輯來(lái)控制對(duì)處理器的隨機(jī)選擇。
另一種針對(duì)分布式啟動(dòng)操作的可能的啟動(dòng)處理器布置是提供了一種主/從布置。圖7B是描述根據(jù)一個(gè)示范性實(shí)施例配置為主/從布置的分布式啟動(dòng)操作的示意圖。如圖7B所示,指定處理器760為主機(jī)處理器。該處理器可以是其中的一個(gè)協(xié)處理器(例如,SPE)或控制處理器(例如,PPE)。每個(gè)從處理器(例如,SPE0-SPE7 720-750)都負(fù)責(zé)以類似于圖7A中所述的方式來(lái)完成它們的啟動(dòng)代碼分區(qū)并向主核安全地傳達(dá)它們已經(jīng)完成了執(zhí)行和沒(méi)有被危害。一旦主處理器760接收了來(lái)自每個(gè)從處理器720-750的信號(hào),并確認(rèn)它本身沒(méi)有被危害,則允許多處理器數(shù)據(jù)處理系統(tǒng)進(jìn)入其中可以執(zhí)行軟件應(yīng)用的操作狀態(tài)。
應(yīng)當(dāng)理解,盡管在這里描述了針對(duì)分布式啟動(dòng)操作的處理器菊鏈布置、環(huán)形布置和主/從布置,但是本發(fā)明并不局限于這些所述的布置。相反,在不脫離本發(fā)明的精神和范圍的情況下,任何針對(duì)分布式啟動(dòng)操作的處理器布置都可以與示范性實(shí)施例的機(jī)制一起使用。
圖8是概述了根據(jù)一個(gè)示范性實(shí)施例的用于多處理器系統(tǒng)的分布式啟動(dòng)的示范性操作的流程圖。如圖8中所示,該操作從普適邏輯接收來(lái)自于系統(tǒng)控制器的“電源正?!毙盘?hào)開(kāi)始(步驟810)。普適邏輯從多處理器數(shù)據(jù)處理系統(tǒng)中的多個(gè)處理器中選擇處理器作為啟動(dòng)處理器(步驟820)。如上所述,這種選擇會(huì)導(dǎo)致選擇所有處理器或選擇多處理器數(shù)據(jù)處理系統(tǒng)中的處理器子集作為啟動(dòng)處理器。舉例來(lái)說(shuō),可以利用普適邏輯中的隨機(jī)事件發(fā)生器來(lái)執(zhí)行這種選擇。
普適邏輯選擇將要分配給所選擇的啟動(dòng)處理器的啟動(dòng)代碼分區(qū)(步驟830)。由相關(guān)聯(lián)的啟動(dòng)處理器執(zhí)行下一個(gè)啟動(dòng)代碼分區(qū)(步驟840)。啟動(dòng)處理器判定啟動(dòng)代碼分區(qū)的執(zhí)行是否成功和沒(méi)有被危害(步驟850)。如果否,則利用信號(hào)通知系統(tǒng)控制器啟動(dòng)失敗(步驟860),并且操作結(jié)束。
如果啟動(dòng)代碼分區(qū)成功地執(zhí)行并且沒(méi)有被危害,則啟動(dòng)處理器判定是否已經(jīng)成功地執(zhí)行了所有啟動(dòng)代碼分區(qū)(步驟870)。如果否,則操作返回步驟840,并由其相關(guān)聯(lián)的啟動(dòng)處理器來(lái)執(zhí)行下一個(gè)啟動(dòng)代碼分區(qū)。如果成功地執(zhí)行了所有的啟動(dòng)代碼分區(qū),則啟動(dòng)處理器利用信號(hào)通知系統(tǒng)控制器數(shù)據(jù)處理系統(tǒng)的成功啟動(dòng)(步驟880),并且操作結(jié)束。
因此,如上所述,除了隨機(jī)地選擇單個(gè)啟動(dòng)處理器并對(duì)多處理器數(shù)據(jù)處理系統(tǒng)中的其他處理器上的操作進(jìn)行掩碼之外,示范性實(shí)施例還提供了用以在多個(gè)處理器上分布啟動(dòng)操作的機(jī)制。示范性實(shí)施例提供了用于以下內(nèi)容的機(jī)制隨機(jī)地選擇啟動(dòng)處理器;隨機(jī)地選擇要在所選擇的啟動(dòng)處理器上執(zhí)行的啟動(dòng)代碼分區(qū);以確保各個(gè)啟動(dòng)處理器執(zhí)行啟動(dòng)代碼分區(qū)的安全性。所有的這些機(jī)制旨在提高多處理器數(shù)據(jù)處理系統(tǒng)的安全性,保護(hù)該系統(tǒng)不受啟動(dòng)操作的未授權(quán)監(jiān)控的威脅。
示范性實(shí)施例可以采用完全硬件的實(shí)施例、完全軟件的實(shí)施例或包含硬件和軟件元素的實(shí)施例的形式。在優(yōu)選的實(shí)施例中,可以通過(guò)軟件來(lái)實(shí)現(xiàn)本發(fā)明,它包括但不局限于固件、常駐軟件、微代碼等。
此外,示范性實(shí)施例可以采用可通過(guò)計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式,該介質(zhì)提供為計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)所使用或與其結(jié)合使用的程序代碼。為了本描述目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何包含、存儲(chǔ)、傳送、傳播或傳輸程序的裝置,該程序供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其結(jié)合使用。
該介質(zhì)可以是電、磁、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的當(dāng)前實(shí)例包括致密盤-只讀存儲(chǔ)器(CD-ROM)、致密盤-讀/寫(CD-R/W)和DVD。
上述電路可以是集成電路芯片設(shè)計(jì)的一部分。可以利用圖形計(jì)算機(jī)編程語(yǔ)言來(lái)創(chuàng)建芯片設(shè)計(jì),并在計(jì)算機(jī)存儲(chǔ)介質(zhì)(例如盤、磁帶、物理硬盤驅(qū)動(dòng)器或諸如存儲(chǔ)訪問(wèn)網(wǎng)絡(luò)中的虛擬硬盤驅(qū)動(dòng)器)中存儲(chǔ)該芯片設(shè)計(jì)。如果設(shè)計(jì)者不制造芯片或用來(lái)制造芯片的光刻掩模,則設(shè)計(jì)者就可以直接或間接地通過(guò)物理裝置(例如,通過(guò)提供存儲(chǔ)該設(shè)計(jì)的存儲(chǔ)介質(zhì)的副本)或電子地(例如,通過(guò)因特網(wǎng))向這類實(shí)體發(fā)送生成的設(shè)計(jì)。然后可以將所存儲(chǔ)的設(shè)計(jì)轉(zhuǎn)換成合適的形式(例如,GDSII),用于光刻掩模的制造,光刻掩模通常包括將在晶片上形成的所討論的芯片設(shè)計(jì)的多個(gè)副本??梢岳霉饪萄谀?lái)限定將要蝕刻或進(jìn)行處理的晶片區(qū)域(和/或其上的層)。
可由制造者按原始晶片的形式來(lái)分布生成的集成電路芯片(也就是,作為具有多個(gè)非封裝芯片的單個(gè)晶片)作為裸模,或者按照封裝的形式來(lái)分布生成的集成電路芯片。在后一種情況中,可以將芯片安裝在單芯片封裝(例如,塑性載體,利用附著到主板或其他高層載體的引線)或多芯片封裝(例如,陶瓷載體,它具有表面互連結(jié)構(gòu)和埋藏的互連結(jié)構(gòu))內(nèi)。然后,在任何情況下芯片都可以與其他芯片、分立電路元件和/或其他作為(a)中間產(chǎn)品(例如主板)或(b)最終產(chǎn)品的一部分的信號(hào)處理裝置進(jìn)行集成。最終產(chǎn)品可以是任何包括集成電路芯片的產(chǎn)品,即從玩具和其他低端應(yīng)用到具有顯示器、鍵盤或其他輸入設(shè)備以及中央處理器的高級(jí)計(jì)算機(jī)產(chǎn)品。而且,在其中可以配備集成電路芯片的最終產(chǎn)品可以包括游戲機(jī)、游戲控制臺(tái)、手持計(jì)算設(shè)備、個(gè)人數(shù)字助理、諸如無(wú)線電話等的通信裝置、膝上型計(jì)算設(shè)備、桌面型計(jì)算設(shè)備、服務(wù)器計(jì)算設(shè)備或任何其他計(jì)算設(shè)備。
為了描述和說(shuō)明目的已經(jīng)提出了本發(fā)明的說(shuō)明,而本發(fā)明的說(shuō)明并非旨在窮盡性的或著將本發(fā)明限制為所公開(kāi)的形式。許多修改和變化對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是明顯的。選擇和說(shuō)明了實(shí)施例,以便最佳地解釋本發(fā)明地原理、特定應(yīng)用,而且使本領(lǐng)域其他技術(shù)人員能夠理解針對(duì)具有各種修改的各種實(shí)施例的本發(fā)明,正如所述各種修改適合于所考慮的特定用途。
權(quán)利要求
1.一種在數(shù)據(jù)處理系統(tǒng)中用于對(duì)該數(shù)據(jù)處理系統(tǒng)中的啟動(dòng)代碼序列的執(zhí)行進(jìn)行掩碼的方法,該數(shù)據(jù)處理系統(tǒng)具有啟動(dòng)處理器和多個(gè)非啟動(dòng)處理器,該方法包括在所述數(shù)據(jù)處理系統(tǒng)的所述啟動(dòng)處理器上執(zhí)行啟動(dòng)代碼序列,以由此將所述數(shù)據(jù)處理系統(tǒng)啟動(dòng)到操作狀態(tài);以及在所述多個(gè)非啟動(dòng)處理器的每個(gè)非啟動(dòng)處理器上執(zhí)行掩碼代碼序列,以由此產(chǎn)生電磁或熱特征中的至少一個(gè),用于對(duì)在所述啟動(dòng)處理器上的所述啟動(dòng)代碼序列的執(zhí)行進(jìn)行掩碼,其中所述掩碼代碼序列在每個(gè)所述非啟動(dòng)處理器上不同。
2.根據(jù)權(quán)利要求1所述的方法,其中在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的每個(gè)掩碼代碼序列產(chǎn)生不同的電磁或熱特征。
3.根據(jù)權(quán)利要求1所述的方法,還包括隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼序列。
4.根據(jù)權(quán)利要求3所述的方法,其中隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼序列包括隨機(jī)選擇與存儲(chǔ)在存儲(chǔ)設(shè)備中的掩碼代碼序列相關(guān)聯(lián)的不同起始地址,其中所述非啟動(dòng)處理器執(zhí)行從所述隨機(jī)選擇的不同起始地址處開(kāi)始的掩碼代碼序列。
5.根據(jù)權(quán)利要求1所述的方法,其中所述掩碼代碼序列是在其中插入具有一個(gè)或者多個(gè)隨機(jī)延遲元素的啟動(dòng)代碼序列,以及其中所述隨機(jī)延遲元素在每個(gè)所述非啟動(dòng)處理器中引起不同的延遲量。
6.根據(jù)權(quán)利要求5所述的方法,其中所述一個(gè)或者多個(gè)隨機(jī)延遲元素是重復(fù)隨機(jī)次數(shù)的代碼循環(huán)。
7.根據(jù)權(quán)利要求1所述的方法,還包括從所述數(shù)據(jù)處理系統(tǒng)的多個(gè)處理器中隨機(jī)選擇所述啟動(dòng)處理器作為所述啟動(dòng)處理器。
8.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)處理系統(tǒng)是異構(gòu)多處理器片上系統(tǒng),所述異構(gòu)多處理器片上系統(tǒng)具有根據(jù)第一指令集進(jìn)行操作的第一處理器和一個(gè)或者多個(gè)根據(jù)第二指令集進(jìn)行操作的第二處理器,所述第二指令集不同于所述第一指令集。
9.一種數(shù)據(jù)處理系統(tǒng),包括啟動(dòng)處理器;多個(gè)非啟動(dòng)處理器;與所述啟動(dòng)處理器耦合的啟動(dòng)代碼存儲(chǔ)設(shè)備;以及與所述多個(gè)非啟動(dòng)處理器耦合的掩碼代碼存儲(chǔ)設(shè)備,其中所述啟動(dòng)處理器執(zhí)行存儲(chǔ)在所述啟動(dòng)代碼存儲(chǔ)設(shè)備中的啟動(dòng)代碼,以由此將所述數(shù)據(jù)處理系統(tǒng)啟動(dòng)到操作狀態(tài);以及所述多個(gè)非啟動(dòng)處理器的每個(gè)非啟動(dòng)處理器執(zhí)行存儲(chǔ)在所述掩碼代碼存儲(chǔ)設(shè)備中的掩碼代碼,以由此產(chǎn)生電磁或熱特征中的至少一個(gè),用于對(duì)在所述啟動(dòng)處理器上的所述啟動(dòng)代碼的執(zhí)行進(jìn)行掩碼,其中在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的所述掩碼代碼是不同的。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中在每個(gè)所述非啟動(dòng)處理器上執(zhí)行的每個(gè)掩碼代碼產(chǎn)生不同的電磁或熱特征。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括與所述啟動(dòng)處理器和所述多個(gè)非啟動(dòng)處理器耦合的普適邏輯,以及其中所述普適邏輯隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述普適邏輯通過(guò)以下動(dòng)作來(lái)隨機(jī)選擇針對(duì)每個(gè)所述非啟動(dòng)處理器的掩碼代碼隨機(jī)選擇與存儲(chǔ)在所述掩碼代碼存儲(chǔ)設(shè)備中的掩碼代碼序列相關(guān)聯(lián)的不同起始地址,其中所述非啟動(dòng)處理器執(zhí)行從所述隨機(jī)選擇的不同起始地址處開(kāi)始的掩碼代碼序列。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述掩碼代碼序列是在其中插入具有一個(gè)或者多個(gè)隨機(jī)延遲元素的啟動(dòng)代碼序列,以及其中所述隨機(jī)延遲元素在每個(gè)所述非啟動(dòng)處理器中引起不同的延遲量。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述一個(gè)或者多個(gè)隨機(jī)延遲元素是重復(fù)隨機(jī)次數(shù)的代碼循環(huán)。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括與所述啟動(dòng)處理器和所述多個(gè)非啟動(dòng)處理器耦合的普適邏輯,以及其中所述普適邏輯從所述數(shù)據(jù)處理系統(tǒng)的多個(gè)處理器中隨機(jī)選擇所述啟動(dòng)處理器作為所述啟動(dòng)處理器。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述數(shù)據(jù)處理系統(tǒng)是異構(gòu)多處理器片上系統(tǒng),所述異構(gòu)多處理器片上系統(tǒng)具有根據(jù)第一指令集進(jìn)行操作的第一處理器和一個(gè)或者多個(gè)根據(jù)第二指令集進(jìn)行操作的第二處理器,所述第二指令集不同于所述第一指令集。
全文摘要
本發(fā)明提供一種用于通過(guò)在多處理器系統(tǒng)的每個(gè)處理器上運(yùn)行不同的代碼來(lái)對(duì)啟動(dòng)序列進(jìn)行掩碼的方法和系統(tǒng)。利用該系統(tǒng)和方法,選擇多處理器系統(tǒng)中的一個(gè)處理器作為啟動(dòng)處理器。多處理器系統(tǒng)的其他處理器執(zhí)行掩碼代碼,所述掩碼代碼產(chǎn)生電磁和/或熱特征,用于對(duì)實(shí)際的啟動(dòng)處理器的電磁和/或熱特征進(jìn)行掩碼。由每個(gè)非啟動(dòng)處理器執(zhí)行的掩碼代碼可以彼此不同,并且可以從存儲(chǔ)在掩碼代碼存儲(chǔ)設(shè)備中的多個(gè)掩碼代碼序列中隨機(jī)選擇。在每個(gè)非啟動(dòng)處理器上的掩碼代碼的每個(gè)執(zhí)行可以產(chǎn)生不同的電磁和/或熱特征,使得從外部監(jiān)控角度來(lái)看沒(méi)有處理器看起來(lái)是唯一的。
文檔編號(hào)G06F21/00GK101086707SQ20071010555
公開(kāi)日2007年12月12日 申請(qǐng)日期2007年5月25日 優(yōu)先權(quán)日2006年6月9日
發(fā)明者C·M·奧尼爾, S·L·羅伯茨, J·J·德門特, J·N·戴爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司