本發(fā)明涉及用于系統(tǒng)管理的混合有限狀態(tài)機(FSM)。本發(fā)明具體地涉及用于計算機芯片上的系統(tǒng)管理的混合FSM。
背景技術(shù):現(xiàn)今的復(fù)雜片上系統(tǒng)(SOC)包含硅的單個裸片上的多種不同功能模塊,包括數(shù)十億個晶體管。這些SOC通常包含一個或多個嵌入式處理器、片上存儲器、用于例如密碼術(shù)的硬件加速器以及用于人類接口技術(shù)的外圍控制器(例如,鍵盤、屏幕)等。使用不同頻率和潛在地甚至不同協(xié)議、經(jīng)由總線的層級來互連所有這些單元,利用專用總線橋?qū)⑦@些總線段相連接。首要的是系統(tǒng)管理控制器,其通常連接至負(fù)責(zé)用于SOC的適當(dāng)功率和時鐘供給的主應(yīng)用處理器,系統(tǒng)管理控制器與潛在地片外的電壓調(diào)節(jié)器、PLL以及時鐘分頻器和時鐘脈沖門進(jìn)行相互作用。圖1示出了現(xiàn)有技術(shù)的SOC11的實施例,其中,系統(tǒng)管理12連接至與多個模塊相連接的外圍總線15、時鐘供給13和電壓供給14;鍵盤114、觸摸板115、音頻116、LCD117和攝像機118連接至外圍總線15;外圍總線15經(jīng)由總線橋119連接至處理器總線16;應(yīng)用處理器18、RAM19、密碼機110和以太網(wǎng)111連接至處理器總線16;處理器總線16經(jīng)由總線橋120連接至存儲器總線17;以及ROM112和閃存113連接至存儲器總線17。這些芯片的系統(tǒng)管理也變得越發(fā)復(fù)雜,并且簡單的開/關(guān)/待機的時間漫長。尤其對于移動設(shè)備,采用積極主動的功率管理以延長電池壽命,而且具有壁插電源的系統(tǒng)也嘗試控制功率消耗以最小化熱設(shè)計功率,從而允許針對更好的用戶體驗的更慢的風(fēng)扇速度和/或更緊湊的情況。此外,現(xiàn)代SOC需要若干個不同時鐘和電壓,這通常還需要特定的定序。因此,現(xiàn)代系統(tǒng)管理具有各種各樣的任務(wù)要處理:·控制系統(tǒng)提升(ramp-up),即,按具體順序開啟電壓和時鐘·將系統(tǒng)帶入和帶出待機,即,關(guān)閉系統(tǒng)的大多數(shù)部分·再次,確保適當(dāng)定序·系統(tǒng)的部分可能保持處于保留,即,防止休眠狀態(tài)中的數(shù)據(jù)丟失·待機還意味著:當(dāng)關(guān)閉SOC的其余部分時,系統(tǒng)管理保持被供電(始終開啟域)·對喚醒事件起作用·在正常操作期間對功率消耗進(jìn)行微調(diào),這包括:·放慢或關(guān)閉當(dāng)前不需要的系統(tǒng)部分的時鐘;·當(dāng)需要處理能力時,暫時提高時鐘速度;·根據(jù)時鐘速度,動態(tài)提高/降低電壓。在抽象級,系統(tǒng)管理是一種有限狀態(tài)機(FSM),其存儲狀態(tài)向量,該狀態(tài)向量可以:包含系統(tǒng)狀態(tài),例如休眠、慢處理、高速處理等;以及作用于輸入,例如功率和時鐘請求、喚醒事件等;以及生成輸出,例如電壓控制、時鐘使能等。在物理級,存在實質(zhì)上兩種方案來實現(xiàn)該FSM:a)如圖2所示的硬接線的。狀態(tài)向量25是觸發(fā)器的陣列,并且組合邏輯22處理輸入21,以基于當(dāng)前狀態(tài)23,計算接下來的狀態(tài)24并通過輸出邏輯26來生成輸出27。b)作為如圖3所示的嵌入式處理器中的程序:狀態(tài)向量35僅是處理器的存儲器36中的位置,并且軟件代碼32處理輸入條件以計算接下來的狀態(tài)和輸出向量。處理器31可以是系統(tǒng)管理單元中的專用小型嵌入式處理器,或者該任務(wù)與其其他任務(wù)一起由主應(yīng)用處理器來處理。這兩種方案均具有其優(yōu)勢和缺點:·硬接線的FSM較小且容易包含始終開啟的功率域。然而,在其狀態(tài)及這些狀態(tài)的轉(zhuǎn)移的意義上,其在功能上也是固定的。當(dāng)調(diào)整變得必要時,這可能成為有問題的,因為這隨后會需要硅自旋?!で度胧教幚砥魃系能浖鄬θ菀渍{(diào)整,從而添加或刪除狀態(tài)或轉(zhuǎn)移僅需要新程序。然而,嵌入式處理器需要相對較大的硅面積、更多功率,并且在待機期間通常還需要比硬接線FSM將需要的更高的時鐘。
技術(shù)實現(xiàn)要素:因此,本發(fā)明的目的是提供一種具有改進(jìn)效率的有限狀態(tài)機和相應(yīng)系統(tǒng)。具體地,目的是提供一種具有改進(jìn)靈活性和較小硅覆蓋區(qū)(footprint)的有限狀態(tài)機和相應(yīng)系統(tǒng)。該目的利用獨立權(quán)利要求的特征來實現(xiàn)的。從屬權(quán)利要求涉及本發(fā)明的其他方面。本發(fā)明涉及一種可編程的有限狀態(tài)機,其被配置為在接收到輸入符號之后從當(dāng)前狀態(tài)轉(zhuǎn)移至接下來的狀態(tài),所述輸入符號包括多個輸入,接下來的狀態(tài)和當(dāng)前狀態(tài)中的每一個由N個比特表示,并且每個輸入符號由I個比特表示,所述有限狀態(tài)機還被配置為生成包括多個輸出的輸出符號,所述輸出符號由W個比特表示,所述輸出符號取決于當(dāng)前狀態(tài),其中,F(xiàn)SM是混合FSM。所述混合FSM基于微編碼處理器以及對查找表的使用來實現(xiàn)組合邏輯。微編碼用于描述FSM的狀態(tài)轉(zhuǎn)移,并且查找表用于確定狀態(tài)轉(zhuǎn)移的條件并根據(jù)狀態(tài)而生成輸出。因此,F(xiàn)SM包括具有多個條目的微代碼表,每個條目表示一個狀態(tài)轉(zhuǎn)移。這確定了FSM如何根據(jù)當(dāng)前狀態(tài)而作用于輸入事件,例如喚醒、定時器到期、用戶輸入、處理速度需求等。微代碼表基本上是作為可能狀態(tài)轉(zhuǎn)移的總數(shù)的長度為L的表?;旌螰SM還包括:寄存器,被配置為存儲當(dāng)前狀態(tài);以及第一查找表,被配置為存儲多個輸出符號,其中,當(dāng)前狀態(tài)是第一查找表的地址。作為查找表的構(gòu)造允許輸出邏輯在被實現(xiàn)為RAM或觸發(fā)器陣列的情況下可編程。查找表可以具有長度2N和寬度W。輸出信號可以包括電壓控制、時鐘使能和時鐘速度。本發(fā)明的一個方面涉及微代碼表的配置。微代碼表可以被配置為根據(jù)當(dāng)前狀態(tài)來選擇用于轉(zhuǎn)移的所有條目。每個微代碼表條目可以包括狀態(tài)信息字段和轉(zhuǎn)移條件字段。作為靈活性與必要存儲器大小之間的折衷,確定這些字段的布局。所述狀態(tài)信息字段可以被配置為將有限狀態(tài)機要被轉(zhuǎn)移至的狀態(tài)存儲在所至的狀態(tài)字段(to-state-field)中。所述轉(zhuǎn)移條件字段可以被配置為存儲用于通過處理所述輸入符號從當(dāng)前狀態(tài)轉(zhuǎn)移至接下來的狀態(tài)的布爾函數(shù)。本發(fā)明的一個方面涉及一種具有每狀態(tài)的固定數(shù)目的可能轉(zhuǎn)移的微代碼表配置。所述狀態(tài)信息字段僅包含與狀態(tài)向量相同寬度的N個比特,這是由于其僅需要描述FSM要被轉(zhuǎn)移至的那個狀態(tài)。此外,將微代碼表的固定部分指派給每個狀態(tài),并且然后當(dāng)前狀態(tài)僅選擇需要針對處理而考慮的微代碼部分。本發(fā)明的一個方面涉及一種微代碼表配置,其具有與具有每狀態(tài)的可變數(shù)目的轉(zhuǎn)移的微代碼表的數(shù)字長度L相等的固定轉(zhuǎn)移總數(shù)。所述狀態(tài)信息字段需要兩倍寬(即,2*N),這是由于其需要存儲條目所意指的狀態(tài)(當(dāng)前狀態(tài),F(xiàn)SM要從該當(dāng)前狀態(tài)轉(zhuǎn)移)和轉(zhuǎn)移應(yīng)引導(dǎo)至的狀態(tài)。這還意味著:微代碼表需要是CAM(內(nèi)容尋址存儲器),在所來自的狀態(tài)字段(from-state-field)與當(dāng)前狀態(tài)相匹配的情況下選擇用于處理的所有條目。因此,該配置需要每條目的更多比特,而且還提供更靈活得多的FSM。本發(fā)明的一個方面涉及轉(zhuǎn)移條件字段。在最一般的形式中,條件字段將針對I個輸入信號需要2I個比特。輸入對包含針對每個輸入組合的函數(shù)值的2I個比特進(jìn)行尋址,其再次作為查找表。本發(fā)明的一個方面涉及轉(zhuǎn)移條件字段,其可以被配置為存儲可對給定轉(zhuǎn)移條件做出貢獻(xiàn)的限制數(shù)目的輸入。這是可能的,原因在于:通常系統(tǒng)狀態(tài)的改變是逐步的且稍微分組的。例如,通常存在從休眠狀態(tài)至基于喚醒信號的上電狀態(tài)的轉(zhuǎn)移,但是,一旦上電,系統(tǒng)就不需要查看喚醒信號,而是作用于其他信號,例如針對不同時鐘速度,以對處理速度和功率消耗進(jìn)行微調(diào)。因此,可以將條件字段劃分為兩部分,一個信號選擇字段(具有S個選擇比特),以及一個函數(shù)字段(具有V個值比特)。盡管信號選擇需要多個比特,但是給定總數(shù)的輸入信號的和字段寬度S+V仍可以小于單獨的(所有輸入的)函數(shù)的。因此,F(xiàn)SM微代碼的大小被減小,并且結(jié)果,硅覆蓋區(qū)也減小。本發(fā)明的一個方面涉及單個微代碼表和輸出查找表條目作為ROM(或組合邏輯)的實現(xiàn),從而提供了FSM“骨架”并進(jìn)一步使硅覆蓋區(qū)最小化。在存在與針對微代碼表的兩個不同編程相同的轉(zhuǎn)移(即,描述在相同條件下從一個狀態(tài)至第二狀態(tài)的轉(zhuǎn)移)的情況下,其相應(yīng)微代碼表條目可以由固定值替換。通常,這是真實系統(tǒng)中的情況,這是由于例如始終存在從休眠狀態(tài)至由喚醒信號觸發(fā)的喚醒狀態(tài)的轉(zhuǎn)移。這允許實現(xiàn)狀態(tài)和轉(zhuǎn)移的固定“骨架”。這也適用于輸出信號查找表。利用其余的可編程微代碼和輸出查找表條目,仍剩下足夠的靈活性。本發(fā)明的一個方面涉及用于描述FSM狀態(tài)的實質(zhì)上不同的集合(例如,休眠對(vs.)處理模式)的動態(tài)重新編程,這允許利用比以其他方式實現(xiàn)全系統(tǒng)狀態(tài)圖將必需的更小的FSM來工作。所提出的微代碼FSM的動態(tài)重新編程允許進(jìn)一步優(yōu)化。當(dāng)設(shè)計包括所有休眠狀態(tài)(例如,具有各個斷電部分和不同喚醒時間的淺和深度休眠)和所有處理狀態(tài)(具有例如不同時鐘速度和供給電壓)的系統(tǒng)的總體狀態(tài)圖時,這可能變得相當(dāng)大,從而需要具有寬狀態(tài)向量的FSM,以便對所有狀態(tài)和長微代碼表進(jìn)行編碼,以便存儲具有其相應(yīng)條件的所有轉(zhuǎn)移。然而,針對休眠和處理模式,通常存在狀態(tài)和轉(zhuǎn)移的相當(dāng)分離的集合。因此,有可能使SOC的應(yīng)用處理器在進(jìn)入休眠之前不久以及在喚醒之后不久對FSM進(jìn)行重新編程。在進(jìn)入休眠狀態(tài)之前不久,處理器將以允許進(jìn)入休眠并處理喚醒序列(例如,上電電壓和時鐘)的狀態(tài)和轉(zhuǎn)移對FSM進(jìn)行編程。在系統(tǒng)從休眠出來之后,處理器將對FSM進(jìn)行重新編程,以便現(xiàn)在處理在正常處理期間需要的細(xì)粒度動態(tài)電壓頻率擴(kuò)縮,優(yōu)選地基于計算速度需求。該方案允許最小化FSM為了自主處理而需要的轉(zhuǎn)移和狀態(tài)的數(shù)目二者。本發(fā)明的一個方面涉及一種包括有限狀態(tài)機的片上系統(tǒng)。所述有限狀態(tài)機被配置為提供系統(tǒng)管理功能。所述系統(tǒng)管理功能被配置為管理芯片上的多個組件。本發(fā)明的一個方面涉及片上系統(tǒng),其中,有限狀態(tài)機的狀態(tài)可以包括休眠和/或高速處理和/或慢速處理;和/或其中,有限狀態(tài)機的輸入包括功率請求和/或時鐘請求;和/或其中,有限狀態(tài)機的輸出包括電壓控制和/或時鐘。本發(fā)明的一個方面涉及一種用于提供并執(zhí)行內(nèi)容尋址存儲器微代碼的方法,微代碼表示有限狀態(tài)機功能,其具有從當(dāng)前狀態(tài)至接下來的狀態(tài)的狀態(tài)轉(zhuǎn)移和根據(jù)輸入的改變的輸出,其中,微代碼的每個微代碼條目包含用于存儲所來自的狀態(tài)的字段、用于存儲所至的狀態(tài)的字段、用于存儲選擇符號的字段和用于存儲函數(shù)符號的字段。所述方法包括以下步驟:a)將當(dāng)前狀態(tài)與所有微代碼條目的所來自的狀態(tài)字段同時進(jìn)行比較;b)根據(jù)所述選擇符號,從輸入符號中選擇至少一個輸入;c)使用所述至少一個所選輸入,將索引形成至查找表中,以導(dǎo)出函數(shù)值,以及在函數(shù)值為0的情況下,F(xiàn)SM保持處于當(dāng)前狀態(tài);以及在函數(shù)值為1的情況下,輸出所述具體微代碼條目,其中,通過查找表來生成輸出符號,其中,所述所至的狀態(tài)是所述查找表的地址。本發(fā)明的主旨在于一種包括基于微代碼和查找表的FSM的系統(tǒng)管理的新型結(jié)構(gòu)。系統(tǒng)管理FSM的該新型結(jié)構(gòu)將硬接線FSM的優(yōu)勢(例如小的硅覆蓋區(qū)和低功率消耗)與在嵌入式處理器上運行的軟件的優(yōu)勢(例如靈活性)進(jìn)行組合,易于帶來流片(tape-out)后的改變而無需硅自旋。附圖說明下面在這里通過示例性實施例并參照附圖,更詳細(xì)地描述根據(jù)本發(fā)明的方法和相關(guān)系統(tǒng),在附圖中:圖1示出了現(xiàn)有技術(shù)的復(fù)雜片上系統(tǒng);圖2示出了現(xiàn)有技術(shù)的硬接線FSM實施方式;圖3示出了現(xiàn)有技術(shù)的軟件FSM實施方式;圖4示出了微代碼FSM實施方式;以及圖5示出了可表述的狀態(tài)圖的實施例。具體實施方式圖4示出了基于微代碼實施方式的FSM的原理結(jié)構(gòu)。微代碼表41的每個微代碼條目42包括狀態(tài)字段46和轉(zhuǎn)移條件字段49。微代碼表41基于CAM功能。狀態(tài)字段46包括所來自的狀態(tài)字段47和所至的狀態(tài)字段48。將轉(zhuǎn)移條件字段49分割成信號選擇字段410和轉(zhuǎn)移函數(shù)字段411。FSM包括用于存儲狀態(tài)向量的寄存器44和與狀態(tài)向量寄存器44相連接的輸出表45。將當(dāng)前狀態(tài)417存儲在狀態(tài)向量寄存器44中。當(dāng)前狀態(tài)417和輸入416由FSM微代碼讀取。通過比較單元412將所來自的狀態(tài)字段47中存儲的所來自的狀態(tài)與當(dāng)前狀態(tài)417進(jìn)行比較,并且在確定相等的情況下,針對邏輯狀態(tài)決定信號418生成邏輯真。多路復(fù)用器413從I個輸入416中選擇S個輸入421。所選輸入421通過轉(zhuǎn)移單元414將索引形成至存儲在轉(zhuǎn)移函數(shù)字段411中的轉(zhuǎn)移條件函數(shù)表,并生成邏輯轉(zhuǎn)移決定信號419。將邏輯狀態(tài)決定信號418、邏輯轉(zhuǎn)移決定信號419以及所至的狀態(tài)字段48中存儲的所至的狀態(tài)420輸入至邏輯與門415中,該邏輯與門415在兩個邏輯決定信號均為真的情況下輸出所至的狀態(tài)420并在邏輯決定信號中的任一個為假的情況下輸出0。這是針對每個微代碼條目進(jìn)行的。在或門43中輸入每個微代碼條目42的輸出423。由于所述或門43的除一個輸入外的所有輸入均為0,因此僅輸出已進(jìn)行轉(zhuǎn)移的所至的狀態(tài)420作為接下來的狀態(tài)422,并將該所至的狀態(tài)420存儲在狀態(tài)向量寄存器44中。然后,通過輸出查找表45來生成輸出423。在具有每狀態(tài)的固定數(shù)目的可能轉(zhuǎn)移的微代碼表配置的一個實施例中,微代碼長度是64個條目,并且狀態(tài)向量是4比特寬,即,16個可能狀態(tài)。給每個狀態(tài)指派描述從該狀態(tài)至某其他狀態(tài)的轉(zhuǎn)移的4個條目。在具有與具有每狀態(tài)的可變數(shù)目的轉(zhuǎn)移的微代碼表的長度相等的固定轉(zhuǎn)移總數(shù)的微代碼表配置的一個實施例中,微代碼長度是64個條目,并且狀態(tài)的數(shù)目是16。這16個狀態(tài)中的每一個可以具有不同數(shù)目的所指派的條目,只是它們的和被限制為64。在一個實施例中,微代碼表的各個條目被實現(xiàn)為ROM,而不是被實現(xiàn)為RAM或觸發(fā)器。這將使硅覆蓋區(qū)和功率消耗最小化。針對第一情況51和第二情況52實現(xiàn)固定狀態(tài)圖骨架,如圖5所示:如圖可見,在這兩種情況下,存在從狀態(tài)A至狀態(tài)B的轉(zhuǎn)換和至狀態(tài)C的另一轉(zhuǎn)移。如果這些轉(zhuǎn)移在相同條件下發(fā)生,則它們的相應(yīng)微代碼表條目由固定值替換。盡管在附圖和以上描述中詳細(xì)示意和描述了本發(fā)明,但是這種示意和描述應(yīng)被視為示意性或示例性而非限制性的。將理解,在后面的權(quán)利要求的范圍和精神內(nèi),本領(lǐng)域普通技術(shù)人員可以進(jìn)行改變和修改。