處理器高速緩存與隨機(jī)訪問(wèn)存儲(chǔ)器之間的切換的制作方法
【專(zhuān)利摘要】本發(fā)明描述了用于在處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間進(jìn)行切換的技術(shù)和裝置。在一些方面,該技術(shù)和裝置能夠通過(guò)放棄專(zhuān)用的隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)而減小專(zhuān)用組件的裸片大小。具有高速緩存配置的存儲(chǔ)器在專(zhuān)用組件的操作期間被重新配置為RAM配置,并且隨后在操作完成時(shí),該存儲(chǔ)器被配置回高速緩存配置,而不使用專(zhuān)用RAM。由于許多專(zhuān)用組件已經(jīng)包括了具有高速緩存配置的存儲(chǔ)器,所以對(duì)該存儲(chǔ)器進(jìn)行重新配置而不是包括專(zhuān)用RAM減小了應(yīng)用組件的裸片大小。
【專(zhuān)利說(shuō)明】處理器高速緩存與隨機(jī)訪問(wèn)存儲(chǔ)器之間的切換
[0001]相關(guān)申請(qǐng)
[0002]本公開(kāi)要求于2011年7月29日提交的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)序列號(hào)61/513,443的優(yōu)先權(quán),其公開(kāi)內(nèi)容通過(guò)引用全文并入于此。
【背景技術(shù)】
[0003]這里所提供的【背景技術(shù)】描述是為了在總體上給出本公開(kāi)的環(huán)境。除非這里另外指出,否則這部分中所描述的方法并不構(gòu)成針對(duì)本公開(kāi)中的權(quán)利要求書(shū)的現(xiàn)有技術(shù)也并不被認(rèn)可通過(guò)由于包括在該部分之中而作為現(xiàn)有技術(shù)。
[0004]許多常規(guī)的片上系統(tǒng)(SoC)包括專(zhuān)用組件,諸如應(yīng)用處理器和專(zhuān)用集成電路。這些專(zhuān)用組件諸如通過(guò)提供各種功能的定制指令集或電路而至少部分地被定制以利于具體應(yīng)用。為了繼續(xù)提高這些專(zhuān)用組件的性能,越來(lái)越多的功能被添加至這些專(zhuān)用組件,由此增加了裸片大小和生產(chǎn)成本。
【發(fā)明內(nèi)容】
[0005]提供該
【發(fā)明內(nèi)容】
以對(duì)以下【具體實(shí)施方式】和附圖中進(jìn)一步描述的主題進(jìn)行介紹。因此,該
【發(fā)明內(nèi)容】
并不應(yīng)當(dāng)被認(rèn)為描述了必要特征,也并不被用來(lái)對(duì)請(qǐng)求保護(hù)的主題加以限制。
[0006]描述了一種片上系統(tǒng),其包括被配置為在處理器高速緩存配置和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置之間進(jìn)行切換的可切換存儲(chǔ)器以及控制器。該控制器被配置為響應(yīng)于掉電事件或上電事件而將該可切換存儲(chǔ)器從處理器高速緩存配置動(dòng)態(tài)切換至RAM配置,在該可切換存儲(chǔ)器處于RAM配置的同時(shí)將引導(dǎo)代碼從非易失性存儲(chǔ)器加載到該可切換存儲(chǔ)器中,在該可切換存儲(chǔ)器處于RAM配置的同時(shí)執(zhí)行來(lái)自該可切換存儲(chǔ)器的引導(dǎo)代碼,并且響應(yīng)于完成對(duì)來(lái)自該可切換存儲(chǔ)器的引導(dǎo)代碼的執(zhí)行將該可切換存儲(chǔ)器從RAM配置動(dòng)態(tài)切換至處理器高速緩存配置。
[0007]描述了一種方法,其包括響應(yīng)于上電事件而將可切換存儲(chǔ)器從處理器高速緩存配置切換至隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置,將引導(dǎo)代碼從非易失性存儲(chǔ)器加載到被配置成RAM配置的可切換存儲(chǔ)器,執(zhí)行來(lái)自該可切換存儲(chǔ)器的引導(dǎo)代碼中的第一部分有效用于檢測(cè)并配置具有操作系統(tǒng)鏡像的引導(dǎo)設(shè)備,執(zhí)行來(lái)自該可切換存儲(chǔ)器的引導(dǎo)代碼中的第二部分有效用于從引導(dǎo)設(shè)備引導(dǎo)該操作系統(tǒng)鏡像,并且在從引導(dǎo)設(shè)備引導(dǎo)該操作系統(tǒng)鏡像之后,將該可切換存儲(chǔ)器從RAM配置切換至處理器高速緩存配置。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0008]附圖中給出了一種或多種實(shí)施方式的細(xì)節(jié)并且在下文中對(duì)其進(jìn)行詳細(xì)描述。在圖中,附圖標(biāo)記最左側(cè)的數(shù)字標(biāo)示出該附圖標(biāo)記首次出現(xiàn)的示圖。在描述和示圖中的不同實(shí)例中使用相同附圖標(biāo)記指示同樣的要素。
[0009]圖1圖示了可以在其中實(shí)施用于在處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間進(jìn)行切換的技術(shù)的操作環(huán)境。
[0010]圖2圖示了用于在處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間進(jìn)行切換的方法。
[0011]圖3圖示了用于部分通過(guò)將可切換存儲(chǔ)器從處理器高速緩存配置切換至RAM配置而引導(dǎo)操作系統(tǒng)的方法。
[0012]圖4圖示了包括使用可切換的二級(jí)(level-two) (L2)處理器高速緩存的可切換存儲(chǔ)器的示例的示例應(yīng)用處理器。
[0013]圖5圖示了用于從L2處理器高速緩存配置切換至SRAM配置的方法。
[0014]圖6圖示了用于從SRAM配置切換至L2處理器高速緩存配置的方法。
[0015]圖7圖示了用于實(shí)施這里所描述的技術(shù)的各方面的片上系統(tǒng)(SoC)環(huán)境。
【具體實(shí)施方式】
[0016]概述
[0017]本文描述了用于對(duì)存儲(chǔ)器在處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間進(jìn)行切換的技術(shù)和裝置。在一些方面,這些技術(shù)和裝置使得專(zhuān)用組件的裸片大小能夠有所減小,這在許多情況下降低了生產(chǎn)成本或者提高了性能。在一些方面,該技術(shù)和裝置能夠通過(guò)放棄專(zhuān)用的隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)同時(shí)仍然使得專(zhuān)用組件執(zhí)行其操作而減小裸片大小。具有高速緩存配置的存儲(chǔ)器在操作期間被重新配置為RAM配置,并且隨后在操作完成時(shí)被配置回高速緩存配置,而不是使用專(zhuān)用RAM。由于專(zhuān)用組件已經(jīng)包括了具有高速緩存配置的存儲(chǔ)器,所以對(duì)該存儲(chǔ)器進(jìn)行重新配置而不是包括專(zhuān)用RAM減小了應(yīng)用組件的裸片大小。
[0018]例如,考慮針對(duì)諸如還包括蜂窩或基帶處理器的智能電話之類(lèi)的移動(dòng)設(shè)備所定制的專(zhuān)用組件。當(dāng)該智能電話被首次開(kāi)機(jī)或者當(dāng)從休眠或待機(jī)狀態(tài)恢復(fù)時(shí),該智能電話的操作系統(tǒng)可以由專(zhuān)用組件進(jìn)行引導(dǎo)或恢復(fù)。該專(zhuān)用組件常規(guī)地包括具有引導(dǎo)代碼的只讀存儲(chǔ)器(ROM)(引導(dǎo)ROM)、將引導(dǎo)代碼加載至其中的隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、具有操作系統(tǒng)鏡像的引導(dǎo)設(shè)備以及用于執(zhí)行加載到RAM之中的引導(dǎo)代碼的處理器。針對(duì)該專(zhuān)用組件,處理器將引導(dǎo)代碼加載到RAM中并且隨后執(zhí)行來(lái)自RAM的該引導(dǎo)代碼以檢測(cè)引導(dǎo)設(shè)備、配置引導(dǎo)設(shè)備、對(duì)操作系統(tǒng)進(jìn)行認(rèn)證并且引導(dǎo)操作系統(tǒng)。
[0019]然而,該技術(shù)和裝置使得專(zhuān)用組件能夠在不使用常規(guī)RAM的情況下引導(dǎo)操作系統(tǒng)。反而,被配置為L(zhǎng)2高速緩存配置的存儲(chǔ)器在引導(dǎo)處理之前或期間被重新配置為靜態(tài)RAM(SRAM)配置。引導(dǎo)代碼被加載到處于SRAM配置的存儲(chǔ)器中,其隨后由處理器所執(zhí)行以引導(dǎo)操作系統(tǒng)。在操作系統(tǒng)被引導(dǎo)之后,該存儲(chǔ)器被切換回L2高速緩存配置。通過(guò)如此,該技術(shù)和裝置使得專(zhuān)用組件能夠以較少的存儲(chǔ)器構(gòu)建,這允許較小的裸片大小并降低成本。
[0020]以下討論描述了操作環(huán)境,可以在該操作環(huán)境中采用的技術(shù),以及能夠在其中體現(xiàn)操作環(huán)境的組件的片上系統(tǒng)(SoC)。在以下討論中,僅通過(guò)示例參考操作環(huán)境。
[0021]操作環(huán)境
[0022]圖1圖示了操作環(huán)境100的示例,其具有專(zhuān)用組件102和引導(dǎo)設(shè)備104,它們均被配置為通過(guò)數(shù)據(jù)總線106進(jìn)行通信,該數(shù)據(jù)總線106諸如為集成電路至集成電路(I2C)總線、低引腳數(shù)(LPC)總線、串行外設(shè)互連(SPI)總線、通用異步接收器/發(fā)射器(UART)總線、單線路(Ι-wire)總線等。
[0023]專(zhuān)用組件102包括一個(gè)或多個(gè)微處理器108、可切換存儲(chǔ)器110、引導(dǎo)只讀存儲(chǔ)器(引導(dǎo)ROM) 112和控制器114。微處理器108可以是單核或多核的任意適當(dāng)類(lèi)型的處理器,其用于執(zhí)行與專(zhuān)用組件102的程序和/或操作系統(tǒng)相關(guān)聯(lián)的指令或代碼。微處理器108可以利用諸如硅和其它半導(dǎo)體的任意適當(dāng)材料進(jìn)行構(gòu)造或構(gòu)建。可切換存儲(chǔ)器110是被配置為在諸如處理器高速緩存配置和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置的至少兩種配置之間進(jìn)行切換的存儲(chǔ)器。引導(dǎo)R0M112可以從任意適當(dāng)?shù)姆且资源鎯?chǔ)器進(jìn)行配置,諸如可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)等。引導(dǎo)R0M112包括引導(dǎo)代碼,在被執(zhí)行時(shí),該引導(dǎo)代碼幫助引導(dǎo)與專(zhuān)用組件102相關(guān)聯(lián)的系統(tǒng)。注意,專(zhuān)用組件102至少部分被定制以利于具體應(yīng)用,在以上所提到的示例中其被定制以引導(dǎo)智能電話的操作系統(tǒng)。
[0024]然而,該技術(shù)和裝置并不局限于針對(duì)智能電話所定制的專(zhuān)用組件。反而,各種類(lèi)型的專(zhuān)用組件都可以結(jié)合這里所描述的技術(shù)一起使用以便在各種電子或計(jì)算設(shè)備中進(jìn)行部署。例如,專(zhuān)用組件可以被配置為集成電路(ASIC)、片上系統(tǒng)(SoC)或?qū)S脴?biāo)準(zhǔn)產(chǎn)品(ASSP)??梢栽谄渲胁渴疬@些專(zhuān)用組件的設(shè)備包括打印機(jī)、相機(jī)、復(fù)印機(jī)、傳真機(jī)、家用電器、游戲設(shè)備、移動(dòng)互聯(lián)網(wǎng)設(shè)備、電視機(jī)、電子相框等。在一些情況下,專(zhuān)用組件可以在利用最小的重新配置甚至沒(méi)有重新配置的情況下在多個(gè)此類(lèi)設(shè)備中進(jìn)行部署。
[0025]控制器114被配置為諸如在處理器高速緩存配置和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置之間進(jìn)行動(dòng)態(tài)切換而將可切換存儲(chǔ)器110在配置之間進(jìn)行切換??刂破?14可以以各種方式來(lái)實(shí)現(xiàn),諸如存儲(chǔ)在引導(dǎo)R0M112中以便由微處理器108、狀態(tài)機(jī)、硬件(例如,邏輯電路)、固件或其任意適當(dāng)組合所執(zhí)行的可執(zhí)行代碼。控制器114如何使用和實(shí)施是有所變化的,并且在下文中更為詳細(xì)地進(jìn)行描述。
[0026]引導(dǎo)設(shè)備104存儲(chǔ)專(zhuān)用組件102的操作固件或操作系統(tǒng)。在該特定示例中,引導(dǎo)設(shè)備104存儲(chǔ)操作系統(tǒng)鏡像116。引導(dǎo)設(shè)備104可以從任意適當(dāng)類(lèi)型的硬件存儲(chǔ)器或存儲(chǔ)器設(shè)備進(jìn)行配置,諸如非易失性RAM(NVRAM)、EEPR0M、閃存等。固件或操作系統(tǒng)可以以各種方式被引導(dǎo)設(shè)備104所存儲(chǔ),諸如作為操作系統(tǒng)鏡像、固件模塊、偽代碼等。備選地或附加地,引導(dǎo)設(shè)備104的內(nèi)容能夠在安全執(zhí)行環(huán)境中進(jìn)行執(zhí)行之前被認(rèn)證為是安全或置信的代碼。雖然在示例環(huán)境100中被示為單獨(dú)的實(shí)體,但是引導(dǎo)設(shè)備104和專(zhuān)用組件102在這里所公開(kāi)的技術(shù)和裝置的其它方面中可以是物理集成的。
[0027]處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間的切換
[0028]以下討論描述了用于將存儲(chǔ)器在處理器高速緩存與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置之間進(jìn)行切換的技術(shù)。這些技術(shù)可以使用之前所描述的環(huán)境(諸如圖1的控制器114)來(lái)實(shí)施。這些技術(shù)包括圖2、圖3、圖5和/或圖6中所圖示的方法,它們均被示為由一個(gè)或多個(gè)實(shí)體所執(zhí)行的操作集。這些方法并非必然局限于用于執(zhí)行操作而示出的順序。另外,無(wú)論是由相同實(shí)體、單獨(dú)實(shí)體還是其組合來(lái)執(zhí)行,這些方法都可以整體或部分地互相結(jié)合使用。在以下討論的部分中,將通過(guò)示例參考圖1的操作環(huán)境100。這樣的參考并非被認(rèn)為是局限于操作環(huán)境100而是作為對(duì)各種示例之一的說(shuō)明。
[0029]圖2圖示了用于在處理器高速緩存和隨機(jī)訪問(wèn)存儲(chǔ)器之間進(jìn)行切換的方法200。在202,響應(yīng)于掉電事件或上電事件而將可切換存儲(chǔ)器從處理器高速緩存配置動(dòng)態(tài)切換至隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置。掉電事件可以包括軟重啟或硬重啟、進(jìn)入低功率狀態(tài)(例如,待機(jī)或休眠模式)、完全系統(tǒng)關(guān)機(jī)等。上電事件可以包括上電重啟(硬或軟)、重新引導(dǎo)、冷機(jī)引導(dǎo)(例如,從關(guān)機(jī)狀態(tài)系統(tǒng)啟動(dòng))、熱機(jī)引導(dǎo)、從待機(jī)或休眠模式恢復(fù)等。考慮圖1的控制器114接收到發(fā)生或即將發(fā)生掉電事件的指示的情形。假設(shè)該掉電事件指示計(jì)算系統(tǒng)(例如,臺(tái)式計(jì)算機(jī)、智能電話、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、游戲系統(tǒng)等)正在或即將進(jìn)入低功率或無(wú)供電狀態(tài),諸如休眠或待機(jī)狀態(tài)。在這種情況下,控制器114在進(jìn)入休眠或待機(jī)狀態(tài)之前將可切換存儲(chǔ)器110從當(dāng)前的處理器高速緩存配置切換至RAM配置而為計(jì)算系統(tǒng)將被弓I導(dǎo)的后續(xù)上電事件進(jìn)行準(zhǔn)備。
[0030]控制器114可以另外響應(yīng)于諸如重啟或系統(tǒng)啟動(dòng)之類(lèi)的上電事件進(jìn)行行動(dòng)以將可切換存儲(chǔ)區(qū)切換至RAM配置。在這種情況下,控制器114在準(zhǔn)備從引導(dǎo)ROMl 12執(zhí)行引導(dǎo)代碼時(shí)將可切換存儲(chǔ)器110從現(xiàn)有的處理器高速緩存配置動(dòng)態(tài)切換至RAM配置??刂破?14可以以其進(jìn)行行動(dòng)以在諸如二級(jí)處理器高速緩存配置(L2配置)到靜態(tài)RAM(SRAM)配置之類(lèi)的配置之間進(jìn)行切換的各種方式作為以下圖5和圖6的方法500和600的一部分詳細(xì)給出。
[0031]在204,在可切換存儲(chǔ)器處于RAM配置的同時(shí)將引導(dǎo)代碼從非易失性存儲(chǔ)器加載到可切換存儲(chǔ)器中。該非易失性存儲(chǔ)器可以是如以上所描述的被配置為存儲(chǔ)引導(dǎo)代碼的引導(dǎo)ROM。例如,控制器114將來(lái)自引導(dǎo)ROMl 12的引導(dǎo)代碼從弓I導(dǎo)ROMl 12加載到可切換存儲(chǔ)器110中而有效使得微處理器108能夠執(zhí)行該引導(dǎo)代碼。在某些情況下,操作系統(tǒng)鏡像可以被存儲(chǔ)在閃存中的引導(dǎo)設(shè)備104上。在這樣的情況下,控制器114可以使用快閃控制器來(lái)加載操作系統(tǒng)鏡像116。作為引導(dǎo)計(jì)算系統(tǒng)的一部分,控制器114還可以對(duì)操作系統(tǒng)鏡像116進(jìn)行認(rèn)證。
[0032]在206,在可切換存儲(chǔ)器被配置為RAM配置的同時(shí)從該可切換存儲(chǔ)器執(zhí)行引導(dǎo)代碼。引導(dǎo)代碼的執(zhí)行可以有效用于引導(dǎo)專(zhuān)用組件的操作系統(tǒng)或固件。該操作系統(tǒng)或固件可以存儲(chǔ)在引導(dǎo)設(shè)備中,諸如處于專(zhuān)用組件內(nèi)部或外部的快閃或EEPROM模塊。在一些情況下,操作系統(tǒng)或固件可以在引導(dǎo)之前被認(rèn)證為置信或安全。繼續(xù)當(dāng)前示例,微處理器108從可切換存儲(chǔ)器110執(zhí)行引導(dǎo)代碼以認(rèn)證并引導(dǎo)來(lái)自引導(dǎo)設(shè)備104的操作系統(tǒng)鏡像116。
[0033]在208,響應(yīng)于引導(dǎo)操作系統(tǒng),將可切換存儲(chǔ)器從RAM配置動(dòng)態(tài)切換至處理器高速緩存配置。在如此操作時(shí),控制器114可以使得可切換存儲(chǔ)器能夠在其之前的配置中使用。例如,在執(zhí)行操作系統(tǒng)的同時(shí),微處理器108可以使用可切換存儲(chǔ)器110作為與操作系統(tǒng)或其它程序的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù)或指令的高速緩存。
[0034]總結(jié)該示例,微處理器108訪問(wèn)處于處理器高速緩存配置之中的可切換存儲(chǔ)器110的數(shù)據(jù)。這在210進(jìn)行圖示,其中在將可切換存儲(chǔ)器從RAM配置動(dòng)態(tài)切換至處理器高速緩存配置之后,使得可切換存儲(chǔ)器能夠在處理器高速緩存配置中使用。如以上所提到的,以下詳細(xì)給出控制器114能夠進(jìn)行行動(dòng)以在配置之間進(jìn)行切換的各種方式。
[0035]圖3圖示了用于部分通過(guò)將可切換存儲(chǔ)器從處理器高速緩存配置切換至RAM配置而引導(dǎo)操作系統(tǒng)的方法300。在以下討論的部分中,將作為示例參考圖1的操作環(huán)境100和圖4的實(shí)體。這樣的參考并非被理解為局限于圖1或圖4,而是被作為對(duì)各個(gè)示例之一的說(shuō)明。
[0036]在302,響應(yīng)于上電事件,將可切換存儲(chǔ)器從處理器高速緩存配置切換至RAM配置。該上電事件可以是重啟、冷機(jī)引導(dǎo)或者從諸如睡眠或休眠狀態(tài)的低功率模式恢復(fù)。
[0037]作為示例,在圖4的應(yīng)用處理器402的環(huán)境中考慮方法300,該應(yīng)用處理器402是圖1的專(zhuān)用組件102的示例。應(yīng)用處理器402包括均屬于圖1的引導(dǎo)R0M112和控制器114,以及可切換存儲(chǔ)器110的示例,其在這里是可切換的二級(jí)(L2)處理器高速緩存404。應(yīng)用處理器402還包括雙倍數(shù)據(jù)速率同步DRAM控制器406 (DDR控制器406)、一級(jí)(LI)執(zhí)行變換旁視緩沖器(ITLB或簡(jiǎn)稱(chēng)為I)處理器高速緩存408、一級(jí)(LI)讀/寫(xiě)變換旁視緩沖器(DTLB或簡(jiǎn)稱(chēng)為D)高速緩存410以及快閃控制器412??扉W控制器412被配置為控制外部快閃414。DDR控制器406被配置為控制雙倍數(shù)據(jù)速率同步DRAM416 (DDR存儲(chǔ)器416)。
[0038]控制器114被配置為與蜂窩處理器418進(jìn)行通信和/或整體或部分地使用其來(lái)執(zhí)行。在302,諸如由應(yīng)用處理器402的電源管理子系統(tǒng)(未示出)檢測(cè)上電事件。這里,對(duì)L2高速緩存404進(jìn)行配置以使得其配置能夠有所改變,包括在引導(dǎo)處理期間動(dòng)態(tài)改變(或在掉電序列期間逆向改變)。在302,控制器114將被配置為處理器高速緩存的L2高速緩存404切換至靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)配置。雖然方法并未要求以特定方式切換該配置,但是考慮到方法500,其提供了示出可以如何執(zhí)行配置從L2高速緩存配置到SRAM配置的這種切換的詳細(xì)實(shí)施例。下面詳細(xì)描述方法500。
[0039]在304,將引導(dǎo)代碼從非易失性存儲(chǔ)器設(shè)備加載到被配置為RAM配置的可切換存儲(chǔ)器中。這里,引導(dǎo)代碼被從引導(dǎo)ROMl 12加載到應(yīng)用處理器402的L2處理器高速緩存404中。
[0040]在306,執(zhí)行引導(dǎo)代碼中的第一部分有效用于檢測(cè)和配置引導(dǎo)設(shè)備。該引導(dǎo)設(shè)備可以存儲(chǔ)專(zhuān)用組件的操作系統(tǒng)、操作系統(tǒng)鏡像或固件。該引導(dǎo)設(shè)備可以從任意適當(dāng)類(lèi)型的存儲(chǔ)器或存儲(chǔ)器模塊進(jìn)行配置,諸如EEPROM或閃存。繼續(xù)當(dāng)前實(shí)施方式,應(yīng)用處理器402執(zhí)行來(lái)自L2高速緩存404的引導(dǎo)代碼有效用于檢測(cè)和配置外部快閃414。這里,快閃控制器412在外部快閃414的檢測(cè)和配置中被用作應(yīng)用處理器402,如目前所配置的,其無(wú)法直接訪問(wèn)閃存414。
[0041]可選地,在308,執(zhí)行引導(dǎo)代碼中的第二部分有效用來(lái)將引導(dǎo)設(shè)備的操作系統(tǒng)鏡像認(rèn)證為置信或安全。在一些情況下,在認(rèn)證失敗時(shí)可以防止對(duì)引導(dǎo)設(shè)備的內(nèi)容進(jìn)行執(zhí)行或引導(dǎo)。在其它情況下,可以進(jìn)行引導(dǎo)或執(zhí)行,同時(shí)失敗認(rèn)證的指示被呈現(xiàn)給用戶或者報(bào)告給安全策略管理員。在該示例的環(huán)境中,應(yīng)用處理器402執(zhí)行附加引導(dǎo)代碼以對(duì)外部快閃414中存儲(chǔ)的操作系統(tǒng)鏡像進(jìn)行認(rèn)證。
[0042]在310,執(zhí)行引導(dǎo)代碼中的第三部分有效用于從引導(dǎo)設(shè)備引導(dǎo)操作系統(tǒng)鏡像。雖然也可以包括諸如用于執(zhí)行控制器114的操作的可執(zhí)行指令之類(lèi)的其它代碼,但是如所提到的,引導(dǎo)代碼包括至少一些有效用于引導(dǎo)操作系統(tǒng)的代碼。在操作系統(tǒng)鏡像存儲(chǔ)在外部快閃414上的當(dāng)前示例中,從可切換存儲(chǔ)器執(zhí)行ROM代碼有效用來(lái)經(jīng)由快閃控制器412從外部快閃414引導(dǎo)操作系統(tǒng)鏡像。
[0043]在312,在從引導(dǎo)設(shè)備引導(dǎo)操作系統(tǒng)鏡像之后,可切換存儲(chǔ)器從SRAM配置切換至處理器高速緩存配置。這允許可切換存儲(chǔ)器的其它使用,這里是允許可切換存儲(chǔ)器被用作處理器高速緩存。總結(jié)該示例,控制器114從用來(lái)引導(dǎo)應(yīng)用處理器402的操作系統(tǒng)的SRAM配置將L2高速緩存404配置回到L2高速緩存配置??紤]如以下所描述的方法600,其提供了示出可以如何執(zhí)行配置從SRAM配置回到L2高速緩存配置的這種切換的詳細(xì)實(shí)施例。
[0044]注意,無(wú)論是根據(jù)方法200、方法300還是其組合,該技術(shù)可以整體或部分地執(zhí)行計(jì)算系統(tǒng)的置信或非置信引導(dǎo)(例如,操作308)。
[0045]圖5圖示了用于從L2處理器高速緩存配置切換至SRAM配置的方法500。方法500僅是該技術(shù)可以對(duì)可切換存儲(chǔ)器的配置進(jìn)行切換的一種示例方式。如所提到的,在一些情況下,這通過(guò)減少專(zhuān)用組件上的存儲(chǔ)器而允許較低的成本或較高的性能。
[0046]在502,可切換存儲(chǔ)器的控制寄存器的使能位被寫(xiě)入以禁用作為L(zhǎng)2高速緩存的可切換存儲(chǔ)器。在504,使用“clean all”指令清除可切換存儲(chǔ)器。在506,清除可切換存儲(chǔ)器的配置寄存器中的選擇位。在508,“invalidate all”指令被用于使得作為L(zhǎng)2高速緩存的可切換存儲(chǔ)器無(wú)效。在510,方法500等待可切換存儲(chǔ)器變?yōu)榭臻e。在512,對(duì)可切換存儲(chǔ)器的配置寄存器中的SRAM選擇位進(jìn)行設(shè)置。在514,針對(duì)SRAM配置可切換存儲(chǔ)器的庫(kù)(bank)。
[0047]圖6描繪了用于從SRAM配置切換至L2處理器高速緩存配置的方法600。方法600僅是該技術(shù)可以切換可切換存儲(chǔ)器的配置的一種示例方式。
[0048]在602,來(lái)自可切換存儲(chǔ)器的庫(kù)的數(shù)據(jù)被復(fù)制到另一個(gè)存儲(chǔ)器。因此,針對(duì)SRAM進(jìn)行配置的L2高速緩存404的庫(kù)中的數(shù)據(jù)被復(fù)制到諸如應(yīng)用處理器402外部的另一個(gè)存儲(chǔ)器,諸如通過(guò)DDR控制器406被復(fù)制到DDR416或者通過(guò)快閃控制器412被復(fù)制到外部快閃414。在604,禁用可切換存儲(chǔ)器的庫(kù)。在606,清除L2選擇位。在608,清除控制器寄存器中的L2高速緩存使能位。在610,使用L2高速緩存“invalidate all”指令使得可切換存儲(chǔ)器無(wú)效。
[0049]雖然方法500和方法600通過(guò)與可切換存儲(chǔ)器相關(guān)聯(lián)的各個(gè)寄存器中的特定位并且使用特定指令來(lái)執(zhí)行,但是這些旨在作為示例而并非將方法500或方法600或者方法200或方法300限制為這些說(shuō)明性示例。還預(yù)見(jiàn)到備選方面,諸如與監(jiān)視和/或控制專(zhuān)用組件的功率狀態(tài)變換相關(guān)聯(lián)的邏輯電路或狀態(tài)機(jī)的使用。
[0050]片上系統(tǒng)
[0051]圖7圖示了能夠?qū)嵤┮陨纤枋龅母鱾€(gè)方面的片上系統(tǒng)(SoC) 700。SoC可以在任意適當(dāng)設(shè)備中實(shí)施,諸如視頻游戲機(jī)、支持IP的電視機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能電話、服務(wù)器、支持網(wǎng)絡(luò)的打印機(jī)、機(jī)頂盒、打印機(jī)、掃描儀、相機(jī)、相框和/或移動(dòng)互聯(lián)網(wǎng)設(shè)備。
[0052]SoC700可以與電子電路、微處理器、存儲(chǔ)器、輸入-輸出(I/O)邏輯控件、通信接口和組件、其它硬件、固件和/或軟件進(jìn)行集成。SoC700還可以包括將SoC的各個(gè)組件進(jìn)行耦合以便在組件之間進(jìn)行數(shù)據(jù)通信的集成數(shù)據(jù)總線(未示出)。
[0053]在該示例中,SoC700包括各種組件,諸如輸入-輸出(I/O)邏輯控件702(例如,包括電子電路)和微處理器704 (例如,任意的微控制器或數(shù)字信號(hào)處理器)。SoC700還包括存儲(chǔ)器706,其可以為任意類(lèi)型的RAM、低延時(shí)非易失性存儲(chǔ)器(例如,閃存)、R0M和/或其它適當(dāng)電子數(shù)據(jù)存儲(chǔ)。SoC700還可以包括各種固件和/或軟件,諸如操作系統(tǒng)708,其可以是由存儲(chǔ)器706所保存并且由微處理器704所執(zhí)行的計(jì)算機(jī)可執(zhí)行指令。SoC700還可以包括其它各種通信接口和組件、通信組件、其它硬件、固件和/或軟件。
[0054]SoC700包括可切換存儲(chǔ)器110、引導(dǎo)ROMl 12和控制器114。這些各種組件、功能和/或?qū)嶓w及其相對(duì)應(yīng)功能的示例參考圖1和圖4所示的環(huán)境100的相應(yīng)組件進(jìn)行描述。控制器114和其它組件可以被實(shí)施為結(jié)合SoC700的I/O邏輯控件702和/或其它信號(hào)處理和控制電路所實(shí)施的硬件、固件、固定邏輯電路或者其任意組合。
[0055]雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法操作的語(yǔ)言對(duì)主題進(jìn)行了描述,但是所要理解的是,所附權(quán)利要求書(shū)中所限定的主題并非必然局限于以上所描述的包括它們所執(zhí)行的順序在內(nèi)的具體特征或操作。
【權(quán)利要求】
1.一種片上系統(tǒng)(SoC),包括: 可切換存儲(chǔ)器,被配置為在處理器高速緩存配置和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置之間進(jìn)行切換;以及 控制器,被配置為: 響應(yīng)于掉電事件或上電事件而將所述可切換存儲(chǔ)器從所述處理器高速緩存配置動(dòng)態(tài)切換至所述RAM配置; 在所述可切換存儲(chǔ)器處于RAM配置的同時(shí)將引導(dǎo)代碼從非易失性存儲(chǔ)器加載到所述可切換存儲(chǔ)器中; 在所述可切換存儲(chǔ)器處于所述RAM配置時(shí)執(zhí)行來(lái)自所述可切換存儲(chǔ)器的所述引導(dǎo)代碼以有效用于引導(dǎo)所述SoC的操作系統(tǒng);以及 響應(yīng)于引導(dǎo)所述SoC的所述操作系統(tǒng)而將所述可切換存儲(chǔ)器從所述RAM配置動(dòng)態(tài)切換至所述處理器高速緩存配置。
2.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述非易失性存儲(chǔ)器是所述SoC內(nèi)被配置為存儲(chǔ)所述引導(dǎo)代碼的引導(dǎo)只讀存儲(chǔ)器(ROM)。
3.根據(jù)權(quán)利要求2的片上系統(tǒng),其中所述SoC并不包括專(zhuān)用于執(zhí)行所述引導(dǎo)代碼的隨機(jī)訪問(wèn)存儲(chǔ)器。
4.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述控制器進(jìn)一步被配置為響應(yīng)于所述掉電事件并且在所述上電事件之前將所述可切換存儲(chǔ)器從所述處理器高速緩存配置動(dòng)態(tài)切換至所述RAM配置,所述掉電事件是休眠或待機(jī)模式,所述上電事件是重啟或冷機(jī)引導(dǎo)。
5.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述控制器進(jìn)一步被配置為響應(yīng)于所述上電事件而將所述可切換存儲(chǔ)器從所述處理器高速緩存配置動(dòng)態(tài)切換至所述RAM配置,所述上電事件是從休眠模式或待機(jī)模式重啟。
6.根據(jù)權(quán)利要求1的片上系統(tǒng),其中執(zhí)行所述引導(dǎo)代碼有效用于從引導(dǎo)設(shè)備引導(dǎo)所述SoC的所述操作系統(tǒng),所述引導(dǎo)設(shè)備被配置為存儲(chǔ)所述操作系統(tǒng)的操作系統(tǒng)鏡像。
7.根據(jù)權(quán)利要求6的片上系統(tǒng),其中所述SoC進(jìn)一步包括快閃控制器,所述引導(dǎo)設(shè)備包括閃存,并且其中引導(dǎo)所述SoC的所述操作系統(tǒng)包括使用所述快閃控制器訪問(wèn)來(lái)自所述閃存的所述操作系統(tǒng)鏡像。
8.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述控制器進(jìn)一步被配置為在將所述可切換存儲(chǔ)器從所述RAM配置動(dòng)態(tài)切換至所述處理器高速緩存配置之后,在所述可切換存儲(chǔ)器處于所述處理器高速緩存配置中的同時(shí)使用或啟用所述可切換存儲(chǔ)器。
9.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述處理器高速緩存配置是二級(jí)(L2)配置并且所述RAM配置是靜態(tài)RAM(SRAM)配置,并且所述控制器進(jìn)一步被配置為通過(guò)以下操作而將所述存儲(chǔ)器從所述L2高速緩存配置動(dòng)態(tài)切換至所述SRAM配置: 通過(guò)對(duì)控制寄存器中的使能位進(jìn)行寫(xiě)入而禁用作為L(zhǎng)2高速緩存的所述可切換存儲(chǔ)器; 清除所述可切換存 儲(chǔ)器; 清除配置寄存器中的只讀存儲(chǔ)器(ROM)選擇位; 使得作為L(zhǎng)2高速緩存的所述可切換存儲(chǔ)器無(wú)效; 等待所述可切換存儲(chǔ)器變?yōu)榭臻e;設(shè)置所述配置寄存器中的所述RAM選擇位;以及 針對(duì)SRAM對(duì)所述可切換存儲(chǔ)器的庫(kù)進(jìn)行配置。
10.根據(jù)權(quán)利要求1的片上系統(tǒng),其中所述處理器高速緩存配置是二級(jí)(L2)配置并且所述RAM配置是靜態(tài)RAM(SRAM)配置,并且所述控制器進(jìn)一步被配置為通過(guò)以下操作而將所述存儲(chǔ)器從所述SRAM配置動(dòng)態(tài)切換至所述L2高速緩存配置: 將數(shù)據(jù)從所述可切換存儲(chǔ)器的庫(kù)復(fù)制到第二存儲(chǔ)器; 禁用所述可切換存儲(chǔ)器的所述庫(kù); 清除L2選擇位; 清除控制寄存器中的所述L2高速緩存使能位;以及 使得所述可切換存儲(chǔ)器無(wú)效。
11.根據(jù)權(quán)利要求10的片上系統(tǒng),其中所述第二存儲(chǔ)器是所述SoC外部的動(dòng)態(tài)RAM(DRAM)或閃存。
12.—種方法,包括 響應(yīng)于上電事件而將可切換存儲(chǔ)器從處理器高速緩存配置切換至隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)配置; 將引導(dǎo)代碼從非易失性存儲(chǔ)器加載到被配置為所述RAM配置的所述可切換存儲(chǔ)器;執(zhí)行來(lái)自所述可切換存儲(chǔ)器的所述引導(dǎo)代碼的第一部分以有效用于檢測(cè)并配置具有操作系統(tǒng)鏡像的引導(dǎo)設(shè)備; 執(zhí)行來(lái)自所述可切換存儲(chǔ)器 的所述引導(dǎo)代碼的第二部分以有效用于從所述引導(dǎo)設(shè)備引導(dǎo)所述操作系統(tǒng)鏡像;以及 在從所述引導(dǎo)設(shè)備引導(dǎo)所述操作系統(tǒng)鏡像之后,將所述可切換存儲(chǔ)器從所述RAM配置切換至所述處理器高速緩存配置。
13.根據(jù)權(quán)利要求12的方法,其中所述上電事件是重啟、冷機(jī)引導(dǎo)、從待機(jī)模式恢復(fù)或者從休眠模式恢復(fù)。
14.根據(jù)權(quán)利要求12的方法,其中所述處理器高速緩存配置是二級(jí)(L2)高速緩存配置并且所述RAM配置是靜態(tài)RAM(SRAM)配置。
15.根據(jù)權(quán)利要求14的方法,其中將所述可切換存儲(chǔ)器從所述處理器高速緩存配置切換至所述RAM配置包括: 通過(guò)對(duì)控制寄存器中的使能位進(jìn)行寫(xiě)入而禁用作為L(zhǎng)2高速緩存的所述可切換存儲(chǔ)器; 清除所述可切換存儲(chǔ)器; 清除配置寄存器中的RAM選擇位; 使得作為L(zhǎng)2高速緩存的所述可切換存儲(chǔ)器無(wú)效; 等待所述可切換存儲(chǔ)器變?yōu)榭臻e; 設(shè)置所述配置寄存器中的所述RAM選擇位;以及 針對(duì)SRAM對(duì)所述可切換存儲(chǔ)器的庫(kù)進(jìn)行配置。
16.根據(jù)權(quán)利要求14的方法,其中將所述可切換存儲(chǔ)器從所述RAM配置切換至所述處理器高速緩存配置包括: 將數(shù)據(jù)從所述可切換存儲(chǔ)器的庫(kù)復(fù)制到第二存儲(chǔ)器;禁用所述可切換存儲(chǔ)器的所述庫(kù); 清除L2選擇位; 清除控制寄存器中的L2高速緩存使能位;以及 使得所述可切換存儲(chǔ)器無(wú)效。
17.根據(jù)權(quán)利要求16的方法,其中所述第二存儲(chǔ)器是所述可切換存儲(chǔ)器集成于其中的片上系統(tǒng)外部的動(dòng)態(tài)RAM(DRAM)或閃存。
18.根據(jù)權(quán)利要求12的方法,其中所述方法由專(zhuān)用集成電路(ASIC)、片上系統(tǒng)(SoC)、應(yīng)用處理器或蜂窩處理器執(zhí)行。
19.根據(jù)權(quán)利要求12的方法,其中所述引導(dǎo)設(shè)備包括閃存,并且執(zhí)行來(lái)自所述可切換存儲(chǔ)器的所述引導(dǎo)代碼的所述第二部分有效用于使用快閃控制器從所述引導(dǎo)設(shè)備引導(dǎo)所述操作系統(tǒng)鏡像。
20.根據(jù)權(quán)利要求12的方法,進(jìn)一步包括在引導(dǎo)所述操作系統(tǒng)鏡像之前執(zhí)行來(lái)自所述可切換存儲(chǔ)器的所述引導(dǎo)代碼的另一部分以有效用于將所述操作系統(tǒng)鏡像認(rèn)證為置信操作系統(tǒng)鏡像。
【文檔編號(hào)】G06F9/44GK103649911SQ201280033662
【公開(kāi)日】2014年3月19日 申請(qǐng)日期:2012年7月19日 優(yōu)先權(quán)日:2011年7月29日
【發(fā)明者】P·薩卡達(dá) 申請(qǐng)人:馬維爾國(guó)際貿(mào)易有限公司