專利名稱:使用鐵電隨機(jī)存取存儲器且具有優(yōu)化指令集的堆棧處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及包含非易失性存儲器的可定制的集成電路裝置領(lǐng)域。本發(fā)明尤其涉及為代碼和數(shù)據(jù)空間使用鐵電隨機(jī)存取存儲器(F-RAM)且具有優(yōu)化指令集的堆棧處理器以最小化存儲器提取操作。
背景技術(shù):
現(xiàn)有的非易失性存儲器技術(shù)尤其包括電可擦可編程只讀存儲器(EEPROM)和閃存。盡管該技術(shù)不斷改進(jìn),但閃存的耐用率仍在F-RAM的耐用率之下的多個數(shù)量級。因此,對于使用需要高耐用度的閃存的應(yīng)用,一些產(chǎn)品實(shí)際上將包括大的具有相關(guān)用戶/程序的閃存陣列,確保將數(shù)據(jù)存儲在特定存儲單元(例如存儲器組)中。一旦存儲器組接近其耐用度極限,用戶/程序會將所有數(shù)據(jù)移動到新的存儲器組,將之前的存儲器組標(biāo)記為報廢且指示不應(yīng)再使用該存儲器組。這樣的浮置柵極裝置的標(biāo)準(zhǔn)耐用度大約在10萬 100萬個寫入周期之間。還已知,相比F-RAM的寫入,EEPROM和閃存的寫入相對較慢。幾乎瞬間完成F-RAM的寫入周期,EEPROM和閃存的寫入時間花費(fèi)更長。進(jìn)一步,F(xiàn)-RAM存儲單元的寫入發(fā)生在相對較低的電壓上,且需要很小的電流來改變單元中的數(shù)據(jù)。堆棧處理器的當(dāng)前實(shí)現(xiàn)架構(gòu)為在2003年2月2日的Paysan,B.的“A ForthProcessor in an FPGA,,; 2006 年 7 月 9 日的 Paysan, B.的 “bl6-small_Less is More,,;和2005年4月29日的Paysan, B.的“bl6 Modern Processor Core”中所描述的以及在http: //www. iwdt. com/ paysan/bl6. html上所公開的b!6處理器?;诙褩5腷l6處理器具有保存在易失性寄存器中的堆棧的頂部和在兩個互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)存儲器中的堆棧的底部。這樣的架構(gòu)將導(dǎo)致可以同時訪問數(shù)據(jù)和返回堆棧以及代碼空間。此夕卜,因為在斷電時必須將相對大量的寄存器的內(nèi)容存儲到非易失性存儲器中,所以支持堆棧保存在易失性存儲器中的堆棧處理器架構(gòu)會導(dǎo)致堆棧經(jīng)受很長的且需要能量的斷電時間。為了改善這種情況,將一些寄存器放在非易失性閃存中一定會導(dǎo)致閃存中固有的耐用問題。進(jìn)一步,由于在正常操作中可以同時訪問所有存儲器,因此為代碼和堆棧利用不同類型存儲器的堆棧處理器架構(gòu)會經(jīng)受高的功率消耗峰值。在bl6堆棧處理器中,將每16位字映射為3條5位指令和額外的只可以為“空操作”(NOP)或CALL的I位指令。實(shí)際上這意味著在大多數(shù)情況中,第四指令通常為Ν0Ρ,因此,指令集浪費(fèi)每字中的I位和每3條指令的I個時鐘周期(需要執(zhí)行Ν0Ρ)。進(jìn)一步,bl6堆棧處理器不共享代碼和數(shù)據(jù)空間,所以當(dāng)同時訪問所有代碼空間及數(shù)據(jù)和返回堆棧時,bl6堆棧處理器架構(gòu)需要更多的能量。
發(fā)明內(nèi)容
可定制的集成電路裝置一般需要提供某種片上處理單元以使裝置能夠根據(jù)用戶所定義的程序執(zhí)行不同的功能??啥ㄖ频难b置的一示例市場在計量功能領(lǐng)域,相比例如閃存的非易失性存儲器技術(shù)所適度提供的耐用周期,該可定制的裝置需要更高的耐用周期。另一可能的市場為需要低功率存儲單元的射頻識別(RFID)。
目前許多公司也打算開發(fā)在可偶爾失去電源電壓的環(huán)境中工作的產(chǎn)品。在這些應(yīng)用中,在發(fā)生斷電前需要將當(dāng)前數(shù)據(jù)快速存儲到非易失性存儲器中。為此,需要包含處理器和相關(guān)的F-RAM存儲器的集成電路架構(gòu)。因為在電源電壓中斷的情況中,斷電時間應(yīng)盡可能快,所以在非易失性存儲器中具有盡可能多的數(shù)據(jù)是有利的。由于基于堆棧的處理器所操作的大多數(shù)寄存器在堆棧中,因此在這樣的應(yīng)用中,基于堆棧的處理器是特別有用的。 因此,使用基于堆棧的處理器時,如果一些或所有堆棧在F-RAM存儲器中,則在任意給定時間上,大部分?jǐn)?shù)據(jù)已在非易失性存儲器中。即使一些數(shù)據(jù)還未存儲到F-RAM存儲器中,該存儲器技術(shù)的非??焖俚膶懭霑r間也允許數(shù)據(jù)的快速備份。此外,通過改變處理器程序,可以很容易地定制這樣的架構(gòu),以允許寬范圍的潛在應(yīng)用,例如計量功能、RFID等。另夕卜,F(xiàn)-RAM存儲器的操作中的固有特征是其低漏電和動態(tài)能量要求。因為在本發(fā)明的具體實(shí)施方式
中,只有一條可使用的代碼/數(shù)據(jù)總線且該總線只與一個存儲器通信,所以本申請所公開的架構(gòu)也導(dǎo)致較少的線路擁堵。在本文所公開的本發(fā)明的架構(gòu)的一具體實(shí)施方式
中,基于堆棧的處理器將自身的所有堆棧都存儲在F-RAM存儲器中。由于堆棧指針自身為存儲器地址,因此這呈現(xiàn)簡單的堆棧指針管理的優(yōu)勢。還最小化存儲所有重要寄存器到存儲器的時間,因為已將所有寄存器保存到非易失性F-RAM本身中。如前所述,F(xiàn)-RAM中所固有的快速寫入時間和低功率訪問提供許多優(yōu)勢,同時使用單一的、獨(dú)特的片上類型的存儲器可以負(fù)擔(dān)更簡單的硬件管理、更少的知識產(chǎn)權(quán)(IP)費(fèi)用,且還可導(dǎo)致更小的片上死區(qū)。根據(jù)本文所公開的本發(fā)明的架構(gòu)的另一具體實(shí)施方式
,基于堆棧的處理器將自身的一些而非所有堆棧存儲在非易失性F-RAM存儲器中,其余的堆棧在易失性存儲器中。通過將一些相關(guān)的堆棧存儲在互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)和其它易失性存儲器中,避免僅針對F-RAM的讀取/寫入操作。雖然相比其它非易失性存儲器技術(shù),F(xiàn)-RAM存儲器需要相對較低的能量,但是易失性存儲器的訪問反而可以至少提供一些能量優(yōu)勢。另外,F(xiàn)-RAM存儲器的讀取/寫入訪問只稍微減慢程序運(yùn)行,且使堆棧存儲器的訪問并行于代碼運(yùn)行將導(dǎo)致一定的速度優(yōu)勢。這尤其涉及RFID的應(yīng)用,在RFID的應(yīng)用中,能量僅當(dāng)卡進(jìn)入相關(guān)控制器的射頻(RF)區(qū)域時在相對較短的、有限的時間內(nèi)可用。實(shí)施具有這種類型的架構(gòu)的堆棧處理器導(dǎo)致在提供較快斷電時間、較小片上死區(qū)和相對較慢較多功耗程序執(zhí)行的所有F-RAM存儲器的實(shí)施與稍長斷電時間、較大片上死區(qū)和較快較少功耗的具有較快程序執(zhí)行時間的操作之間的折中。將處理器堆棧僅部分地保存在F-RAM存儲器中也具有優(yōu)勢,如果程序編譯器有效使用這種特定架構(gòu),則程序編譯器可產(chǎn)生固件代碼,所述固件代碼傾向于將更密集的計算集中到堆棧在易失性存儲器中的那部分且最小化堆棧的F-RAM部分的彈出/壓入操作。通過并行訪問易失性寄存器,這樣的應(yīng)用將導(dǎo)致更快的程序運(yùn)行,這也比F-RAM存儲器省電。此外,因為只有堆棧的頂部在易失性存儲器中,所以堆棧的大部分保存在F-RAM中,這意味著該應(yīng)用仍可得益于高的F-RAM耐用性和較短的斷電時間。根據(jù)本文所公開的本發(fā)明的架構(gòu)的又一實(shí)施方式,為一種利用優(yōu)化指令集的具體處理器的實(shí)現(xiàn),以最小化存儲器讀取,從而最小化程序運(yùn)行時間。這提供許多明顯的優(yōu)勢,包括各種低功耗的應(yīng)用和那些電源電壓僅在有限時間內(nèi)可用的應(yīng)用,例如RFID實(shí)現(xiàn)。使用具有這樣的優(yōu)化指令集的處理器還允許通過多個裝置舉例說明本發(fā)明的架構(gòu)以支持寬范 圍的可能的操作,并允許通過支持中斷使外圍設(shè)備的數(shù)量不同,在下文中將更全面地描述。本發(fā)明的這個具體實(shí)施方式
提供堆棧處理器架構(gòu)的指令集,該指令集相對較小使得相關(guān)邏輯本身不太大,從而降低電流泄漏和動態(tài)功率的要求。所公開的內(nèi)容還為完整的指令集,使得可以利用不太長的程序運(yùn)行時間支持大量的可能應(yīng)用。另外,所公開的指令集既不太復(fù)雜也不太容易。即沒有太多F-RAM存儲器提取,也沒有太多邏輯泄漏。如所公開,本發(fā)明的指令集支持基本的福思(Forth)命令和其它通用操作的操作代碼,同時也支持中斷。根據(jù)本文所公開的本發(fā)明的架構(gòu)的再一實(shí)施方式,為一種操作的具體方法,在相關(guān)的堆棧僅部分地實(shí)施在F-RAM存儲器中時該操作最小化處理器堆棧訪問。本文所描述和公開的F-RAM堆棧訪問的最小化和具體處理器導(dǎo)致比訪問F-RAM堆棧時不能讀取代碼的、所有堆棧保存在非易失性F-RAM存儲器中的情況下更小的功率損耗和整體上更快的程序運(yùn)行。本文具體公開一種集成電路裝置,該集成電路裝置包括堆棧處理器,所述堆棧處理器包括處理器核心和中斷控制器。所述堆棧處理器還包括非易失性存儲器,例如鐵電隨機(jī)存取存儲器,所述非易失性存儲器聯(lián)接所述處理器核心以存儲相關(guān)的程序代碼和數(shù)據(jù)。在這里所公開的具體實(shí)施方式
中,所述堆棧處理器有效響應(yīng)高達(dá)基于16位字的64條指令。在16位字中的每條指令包括3條5位指令和適用于3條5位指令的每條指令的第16位,從而使每條指令有效6位寬。
通過參照下文的結(jié)合附圖的優(yōu)選的實(shí)施方式的描述,本發(fā)明的上述和其它特征與目標(biāo)及其實(shí)現(xiàn)方法將變得更明顯且將充分理解本發(fā)明,附圖中圖I為根據(jù)本發(fā)明的具體的典型的實(shí)施方式的為代碼和數(shù)據(jù)空間使用鐵電隨機(jī)存取存儲器(F-RAM)的堆棧處理器的原理方框圖;圖2為根據(jù)本發(fā)明的另一具體的典型的實(shí)施方式的利用F-RAM和CMOS存儲器的堆棧處理器的一部分的后續(xù)原理方框圖;圖3A到圖3D為將數(shù)據(jù)堆棧的頂部(“T”)復(fù)制到返回堆棧的頂部(“R”)的指令的示例性圖解;圖4為根據(jù)圖2所示的本發(fā)明的典型的實(shí)施方式的方法的示例性圖解,其中,當(dāng)需要時只更新CMOS寄存器,不更新CMOS堆棧的不用的部分以節(jié)約能量;圖5為根據(jù)本發(fā)明的具體實(shí)施方式
的優(yōu)化以最小化存儲器提取的16位指令集的示例性圖解;圖6為前述圖I和圖2的Forth核心的可能的操作碼的映射的示例性表格。
具體實(shí)施例方式現(xiàn)在參照圖1,示出根據(jù)本發(fā)明的具體的典型的實(shí)施方式的為代碼和數(shù)據(jù)空間使 用鐵電隨機(jī)存取存儲器(F-RAM)的堆棧處理器100的原理方框圖。堆棧處理器100在相關(guān)的部分中包括F-RAM存儲器陣列102和相關(guān)的處理器104。F-RAM存儲器陣列102可以是本申請的申請人瑞創(chuàng)國際公司(科羅拉多斯普林斯,科羅拉多)提供的類型。如圖所示,處理器104可以包括本申請的申請人瑞創(chuàng)國際公司所開發(fā)的Forth核心106。如圖所示,相關(guān)的中斷控制器108形成處理器104的一部分,該部分也連同時鐘復(fù)位電路110 —起運(yùn)轉(zhuǎn)。在示出的典型的實(shí)施方式中,分別標(biāo)記為1121到1128的8個模塊(模塊I到模塊8)與堆棧處理器100相關(guān)。如圖所示,單一的代碼/數(shù)據(jù)總線將Forth核心106聯(lián)接到F-RAM存儲器陣列102,且包括存儲器讀取和寫入行(mem_rd,mem_wr)和16位存儲器地址、存儲器寫入數(shù)據(jù)和存儲器讀取數(shù)據(jù)總線(mem_address, mem_wr_data, mem_rd_data)。時鐘復(fù)位電路110提供時鐘中斷信號(clk_int)給中斷控制器108,并提供復(fù)位n (rst_n)信號給Forth核心106和中斷控制器108。時鐘復(fù)位電路110還提供核心時鐘信號(clk_core)給 Forth 核心 106,且從 Forth 核心 106 接收 core_need_clock。中斷控制器108提供中斷信號(int)和3位的int_nb信號給Forth核心106,且從Forth核心106接收中斷清除(int_clr)信號和持續(xù)中斷(int_ongoing)信號?,F(xiàn)在再參照圖2,示出根據(jù)本發(fā)明的另一具體的典型的實(shí)施方式的利用F-RAM和CMOS存儲器的堆棧處理器200的部分的后續(xù)原理方框圖。如圖所示,只有一條處理器代碼/數(shù)據(jù)總線,且該總線只通向F-RAM存儲器陣列202。堆棧處理器200包括具有數(shù)據(jù)堆棧210和返回堆棧212的Forth核心204,同時F-RAM存儲器陣列202具有相應(yīng)的數(shù)據(jù)堆棧的底部206和返回堆棧的底部208。在本圖中示出堆棧處理器200的實(shí)施方式的結(jié)構(gòu)。在這種情況中,數(shù)據(jù)堆棧210具有在處理器核心204中且在易失性CMOS寄存器中的頂部。數(shù)據(jù)堆棧的底部206在非易失性F-RAM存儲器陣列202中。同樣地,返回堆棧212的頂部在處理器核心204中且在易失性CMOS寄存器中,返回堆棧的底部208在F-RAM存儲器陣列202中。因此,如果程序只需要修改數(shù)據(jù)堆棧的頂部,而不壓入/彈出F-RAM存儲器陣列202的堆棧,則只涉及CMOS寄存器的訪問。這將導(dǎo)致總體較低的功率損耗。如果將要發(fā)生斷電,則在發(fā)生斷電之前,只保存有限數(shù)量的CMOS寄存器的內(nèi)容。應(yīng)當(dāng)注意,這個具體的堆棧處理器200實(shí)現(xiàn)的部分性能是由指令集所決定。然而,一些性能也源于程序相對較小且可被寫入以從在CMOS寄存器中的堆棧的頂部受益的事實(shí)?,F(xiàn)在 再參照圖3A到圖3D,示出將數(shù)據(jù)堆棧的頂部(“T”)復(fù)制到返回堆棧的頂部(“R”)的指令的示例性圖解。所示的提出的堆棧訪問方法持續(xù)跟蹤堆棧指針相對于堆棧的CMOS和F-RAM部分之間的邊界的位置。如圖所示,數(shù)據(jù)堆棧和返回堆棧之間的數(shù)據(jù)傳送可以形成四種可能的初始組態(tài)。陰影框指示在這個堆棧存儲器地址中具有有效數(shù)據(jù)。在圖3A中,數(shù)據(jù)堆棧和返回堆棧未經(jīng)過F-RAM的邊界。在圖3B中,只有數(shù)據(jù)堆棧經(jīng)過F-RAM的邊界。在圖3C中,只有返回堆棧經(jīng)過F-RAM的邊界,在圖3D中,數(shù)據(jù)堆棧和返回堆棧都經(jīng)過F-RAM的邊界??梢钥闯觯鶕?jù)具體組態(tài),所提出的算法執(zhí)行或不執(zhí)行堆棧彈出/壓入,且對于上述具體指令,該算法如下如圖3A所示,復(fù)制T到R;如圖3B所示,彈出數(shù)據(jù)堆棧且復(fù)制T到R;如圖3C所示,壓入返回堆棧且復(fù)制T到R ;以及如圖3D所示,壓入返回堆棧,彈出數(shù)據(jù)堆棧且復(fù)制T到R0以這種方式,僅需要最小數(shù)量的F-RAM存儲器陣列訪問?,F(xiàn)在再參照圖4,示出根據(jù)圖2所示的本發(fā)明的典型的實(shí)施方式的方法的示例性圖解,其中,當(dāng)需要時只更新CMOS寄存器,不更新CMOS堆棧的不用的部分以節(jié)約能量。在本發(fā)明的這個實(shí)現(xiàn)中,不更新或復(fù)位堆棧的第三CMOS寄存器總線,由于該總線現(xiàn)在在堆棧的不用的部分中,因此該總線的當(dāng)前值為“不關(guān)心”??梢源_定,不更新那條寄存器總線可以節(jié)省更多的能量?,F(xiàn)在再參照圖5,示出根據(jù)本發(fā)明的具體實(shí)施方式
的已經(jīng)被優(yōu)化以最小化存儲器提取的16位指令集的示例性圖解。在本發(fā)明的這個具體實(shí)現(xiàn)中,所公開的指令集基于16位存儲器代碼空間。為了確定合適的指令集,可檢查下列可能性一任意4位指令集(或更少)將允許高達(dá)16條指令(或更少),所以當(dāng)程序要花費(fèi)太長時間以執(zhí)行太多F-RAM存儲器陣列提取時,4位指令集是不足夠的;—任意7位指令集(或更多)將規(guī)定128條指令或更多,所以需要太多泄漏/動態(tài)功耗且邏輯過大;-6位指令集將規(guī)定64條指令,雖然足夠,但是非常難以映射到16位字中而不浪費(fèi)太多位;—5位指令集將規(guī)定32條指令,且會出現(xiàn)非常受限的位??梢钥闯?,在示出的示例性指令集中可以提供64條指令,同時最小化存儲器位的浪費(fèi)。16位字的最高有效位(MSB)為每條指令都使用的位,因此每條指令為6位寬(這給出最大64條指令的總數(shù))。因此,使用完整的16位代碼。現(xiàn)在再參照圖6,示出前述圖I和圖2的Forth核心的可能的操作碼(opcode)的映射的示例性表格。如圖所示,將Forth核心的指令按照如下類別分組分支、存儲器訪問、邏輯、算術(shù)以及數(shù)據(jù)堆棧,且那些所示出的操作碼共享相同的5個較低有效位并僅通過一個最高有效組位區(qū)分,如前面圖5所示。盡管上文結(jié)合具體電路和技術(shù)描述本發(fā)明的原理,但需要清楚地明白,前面的描述僅通過示例方式進(jìn)行而不限制本發(fā)明的范圍。尤其要認(rèn)識到,前面說明書的教義將暗示本領(lǐng)域的技術(shù)人員其它變型。這些變型可以涉及本身已知的其它特征,且可用于替換或附加到這里已描述的特征。盡管在本申請中明確地表達(dá)了對具體特征組合的要求,但是應(yīng)當(dāng)理解,這里說明書的范圍也包括本領(lǐng)域技術(shù)人員顯而易見的任何新穎特征、或顯式地或隱式地公開的特征的新穎組合、或任何結(jié)構(gòu)或其變型,無論是否涉及如當(dāng)前任一項權(quán)利要求所述的同樣的發(fā)明,且無論是否緩解如本發(fā)明所面對的任一或全部同樣的技術(shù)問題。在進(jìn)行本申請或源自本申請的進(jìn)一步申請期間,申請人據(jù)此保留明確表達(dá)關(guān)于這些特征和/或這些特征的組合的新權(quán)利要求的權(quán)利。這里所使用的術(shù)語“包括”或其任何其它變型,旨在涵蓋非排它性包含,例如列舉 某些元素的過程、方法、物體、或設(shè)備不一定僅包括那些元素,但可包括未明確列舉的或這些過程、方法、物體、或設(shè)備所固有的其它元素。當(dāng)暗示任一具體元件、步驟、或功能為一定包含在權(quán)利要求范圍內(nèi)的必要元素時,應(yīng)當(dāng)閱讀本申請之外的描述,且僅通過授權(quán)的權(quán)利要求定義專利主題的范圍。此外,沒有附加聲明是打算調(diào)用35U. S. C. Sect. 112的第6段,除非使用精確短語“手段方式”且隨后跟著分詞。
權(quán)利要求
1.一種集成電路裝置,包括 堆棧處理器,該堆棧處理器包括處理器核心和中斷控制器;以及 非易失性存儲器,該非易失性存儲器聯(lián)接所述處理器核心以存儲相關(guān)的程序代碼和數(shù)據(jù)。
2.如權(quán)利要求I所述的集成電路裝置,其中,所述非易失性存儲器包括鐵電隨機(jī)存取存儲器。
3.如權(quán)利要求I所述的集成電路裝置,其中,所述堆棧處理器能響應(yīng)于基于16位字的64條可能的指令而有效運(yùn)行。
4.如權(quán)利要求3所述的集成電路裝置,其中,在所述16位字中的所述指令中的每條指令包括3條5位指令和適用于所述3條5位指令中的每條指令的第16位。
5.如權(quán)利要求4所述的集成電路裝置,其中,所述第16位為最高有效位。
6.如權(quán)利要求I所述的集成電路裝置,還包括 時鐘電路,該時鐘電路聯(lián)接所述處理器核心和所述中斷控制器以提供時鐘信號給所述處理器核心和所述中斷控制器。
7.如權(quán)利要求I所述的集成電路裝置,還包括 復(fù)位電路,該復(fù)位電路聯(lián)接所述處理器核心和所述中斷控制器以提供復(fù)位信號給所述處理器核心和所述中斷控制器。
8.如權(quán)利要求I所述的集成電路裝置,還包括 至少一個模塊,該模塊聯(lián)接所述堆棧處理器。
9.如權(quán)利要求I所述的集成電路裝置,其中,所述非易失性存儲器從所述處理器核心接收讀取和寫入命令。
10.如權(quán)利要求5所述的集成電路裝置,其中,所述非易失性存儲器另外地從所述處理器核心接收地址命令。
11.如權(quán)利要求10所述的集成電路裝置,其中,所述非易失性存儲器響應(yīng)于所述寫入命令將數(shù)據(jù)寫入由來自所述處理器核心的所述地址命令所指示的存儲單元。
12.如權(quán)利要求10所述的集成電路裝置,其中,所述非易失性存儲器響應(yīng)于所述讀取命令從由來自所述處理器核心的所述地址命令所指示的存儲單元讀取數(shù)據(jù)。
13.如權(quán)利要求I所述的集成電路裝置,其中,將所述處理器核心的至少一個數(shù)據(jù)堆棧存儲在所述非易失性存儲器中。
14.如權(quán)利要求I所述的集成電路裝置,其中,將所述處理器核心的至少一個返回堆棧存儲在所述非易失性存儲器中。
全文摘要
一種使用鐵電隨機(jī)存取存儲器且具有優(yōu)化指令集的堆棧處理器,所述堆棧處理器有效響應(yīng)多達(dá)基于16位字的64條指令。在16位字中的每條指令包括3條5位指令和適用于3條5位指令中的每條指令的第16位,從而使每條指令有效6位寬。
文檔編號G06F9/30GK102841775SQ201210154919
公開日2012年12月26日 申請日期2012年5月16日 優(yōu)先權(quán)日2011年5月16日
發(fā)明者弗蘭克·菲萊爾 申請人:瑞創(chuàng)國際公司