與fpga結(jié)合的flash芯片及指令處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及芯片技術(shù)領(lǐng)域,特別是涉及一種與FPGA結(jié)合的FLASH芯片及指令處理方法。
【背景技術(shù)】
[0002]RPMC (Replay Protect1n Monotonic Counter,應(yīng)答保護(hù)單調(diào)計(jì)數(shù)器)是 Intel 主推的基本輸入輸出系統(tǒng)(Basic Input-Output System, B1S)芯片的一個(gè)新功能。它包含一個(gè)大容量的Flash芯片和RPMC電路。其中,F(xiàn)lash芯片的容量為8M、16M、32M、64M、128M、256M或者更高,用來存儲CPU B1S的代碼和數(shù)據(jù);RPMC電路保證讀寫數(shù)據(jù)的機(jī)密性和完整性。RPMC電路與其集成的FLASH —起構(gòu)成了個(gè)人計(jì)算機(jī)(Personal Computer, PC)系統(tǒng)中B1S的硬件平臺。
[0003]在設(shè)計(jì)具有RPMC功能的FLASH芯片時(shí),設(shè)計(jì)者通常會把大容量Flash和RPMC集成在一個(gè)芯片上,即RPMC電路和Flash —起設(shè)計(jì)。
[0004]但是,這種設(shè)計(jì)方法存在以下缺點(diǎn):由于需要將FLASH和RPMC集成在一個(gè)芯片上,因此單片芯片的面積大、封裝成本高,導(dǎo)致設(shè)計(jì)成本較高;并且RPMC電路和FLASH —起設(shè)計(jì),導(dǎo)致芯片設(shè)計(jì)復(fù)雜度高、設(shè)計(jì)周期長;芯片在一個(gè)時(shí)刻只能做一種操作;另外,芯片的重復(fù)利用性差,功能升級困難,并且該芯片的Flash的容量不可擴(kuò)展。
[0005]因此,本領(lǐng)域技術(shù)人員迫切需要解決的問題之一在于,提出一種與FPGA結(jié)合的FLASH芯片及指令處理方法,用以解決設(shè)計(jì)復(fù)雜度高,設(shè)計(jì)周期長,設(shè)計(jì)成本高,通用性弱,工作效率低等問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是提供一種與FPGA結(jié)合的FLASH芯片及指令處理方法,用以解決設(shè)計(jì)復(fù)雜度高,設(shè)計(jì)周期長,設(shè)計(jì)成本高,通用性弱,工作效率低等問題。
[0007]為了解決上述問題,本發(fā)明公開了一種與FPGA結(jié)合的FLASH芯片,包括:
[0008]現(xiàn)場可編程門陣列FPGA,第一存儲芯片F(xiàn)lash-Ι,以及,第二存儲芯片F(xiàn)lash-2 ;所述FPGA中設(shè)置有應(yīng)答保護(hù)單調(diào)計(jì)數(shù)器RPMC及配置信息;所述第一存儲芯片F(xiàn)lash-1中存儲有所述RPMC的值,其中,
[0009]所述Flash-1和所述FPGA各自包括內(nèi)部10引腳,所述Flash-1的內(nèi)部10引腳與所述FPGA的內(nèi)部10引腳互連,所述FPGA與所述Flash-1之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信;
[0010]所述FPGA與所述Flash-2中相同的10引腳相連,并且連接到所述芯片的同一外部共享引腳上;
[0011 ] 外部指令通過所述芯片的外部共享引腳傳輸?shù)剿鯢lash-2與所述FPGA中;外部指令通過所述芯片的外部共享引腳傳輸?shù)剿鯢lash-2與所述FPGA中,所述Flash-2與所述FPGA分別判斷是否執(zhí)行所述外部指令;
[0012]其中,所述外部指令包括RPMC驗(yàn)證指令;若所述外部指令為所述Flash-2無法識別的RPMC驗(yàn)證指令,則所述FPGA依據(jù)配置信息與所述RPMC的值生成第一 RPMC驗(yàn)證值,并判斷是否與所述RPMC驗(yàn)證指令中的第二 RPMC驗(yàn)證值一致;若不一致,則所述芯片為非法芯片。
[0013]優(yōu)選地,當(dāng)通過外部共享引腳接收到外部指令時(shí),所述FPGA通過與所述Flash-1之間互連的內(nèi)部1引腳通知將所述RPMC的值加I。
[0014]優(yōu)選地,所述外部指令包括RPMC更新指令;
[0015]當(dāng)通過外部共享引腳接收到外部指令為所述Flash-2無法識別的RPMC更新指令,則所述FPGA通過與所述Flash-1之間互連的內(nèi)部1引腳通知依據(jù)RPMC更新指令對所述RPMC的值進(jìn)行更新。
[0016]優(yōu)選地,所述Flash-1及所述Flash-2為NOR型非易失性存儲器N0R_Flash、NAND型非易失性存儲器NAND-Flash,或者,電可擦只讀存儲器EEPR0M。
[0017]優(yōu)選地,所述FPGA中還存儲有糾錯碼ECC,和/或,壞塊管理BBM。
[0018]本發(fā)明實(shí)施例還公開了一種與FPGA結(jié)合的FLASH芯片外部指令處理的方法,所述芯片包括現(xiàn)場可編程門陣列FPGA,第一存儲芯片F(xiàn)lash-Ι,以及,第二存儲芯片F(xiàn)lash-2 ;所述FPGA中設(shè)置有應(yīng)答保護(hù)單調(diào)計(jì)數(shù)器RPMC及配置信息;所述第一存儲芯片F(xiàn)lash-1中存儲有所述RPMC的值,所述的方法包括:
[0019]接收外部指令;
[0020]若所述外部指令為RPMC驗(yàn)證指令,則獲取所述配置信息及RPMC的值;
[0021 ] 依據(jù)所述配置信息與RPMC的值生成第一 RPMC驗(yàn)證值;
[0022]判斷所述第一 RPMC驗(yàn)證值與所述RPMC驗(yàn)證指令中的第二 RPMC驗(yàn)證值是否一致;若不一致,則判定所述芯片為非法芯片。
[0023]優(yōu)選地,所述的方法還包括:
[0024]當(dāng)接收到所述外部指令時(shí),所述RPMC的值加I。
[0025]優(yōu)選地,所述的方法還包括:
[0026]若所述外部指令為RPMC更新指令,則依據(jù)所述RPMC更新指令對所述RPMC的值進(jìn)行更新并存儲。
[0027]優(yōu)選地,所述的方法還包括:
[0028]在預(yù)置的時(shí)間段接收到所述RPMC更新指令。
[0029]優(yōu)選地,所述的方法還包括:
[0030]當(dāng)接收到多個(gè)外部指令時(shí),分別判斷是否執(zhí)行所述多個(gè)外部指令。
[0031]與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點(diǎn):
[0032]1、本發(fā)明實(shí)施例所提出的與FPGA結(jié)合的FLASH芯片可以包括現(xiàn)場可編程門陣列FPGA,第一存儲芯片F(xiàn)lash-Ι,以及,第二存儲芯片F(xiàn)lash-2 ;Flash_l和FPGA各自包括內(nèi)部1引腳,所述Flash-1的內(nèi)部1引腳與所述FPGA的內(nèi)部1引腳互連,所述FPGA與所述Flash-1之間通過互連的內(nèi)部1引腳對進(jìn)行內(nèi)部相互通信;所述FPGA與Flash-2中相同的1引腳相連,并且連接到所述芯片的同一外部共享引腳上;外部指令通過所述芯片的外部共享引腳傳輸?shù)剿鯢lash-2與所述FPGA中。在具體實(shí)現(xiàn)中,還將定期接收到RPMC驗(yàn)證指令,F(xiàn)PGA依據(jù)本地配置以及Flash-1中的RPMC的值生成驗(yàn)證值,并與RPMC驗(yàn)證指令中的驗(yàn)證值進(jìn)行比對,判斷是否一致,若一致,說明該芯片為合法芯片,可以繼續(xù)運(yùn)行,若不一致,說明該芯片為非法芯片,為了保證數(shù)據(jù)的機(jī)密性和完整性,可以禁止該芯片繼續(xù)運(yùn)行。另外,由于在本發(fā)明實(shí)施例中可以利用現(xiàn)有的Flash芯片即可實(shí)現(xiàn),并且,不需要像流水線一樣需通過一系列工藝步驟制造芯片,因此,芯片設(shè)計(jì)復(fù)雜度低、設(shè)計(jì)周期短、成本低。
[0033]2、Flash-1及Flash-2的容量可以擴(kuò)展,通用性強(qiáng),例如,可以增加單片F(xiàn)lash的容量,或者將多個(gè)Flash封裝在一起。
[0034]3、選擇 Flash-1 及 Flash-2 的自由度高,例如可以選擇 NOR-Flash, NAND-Flash,或者EEPROM等其他存儲器類型芯片。
[0035]4、FPGA可以多次重開發(fā),并且速度快,只需對FPGA開發(fā)即可實(shí)現(xiàn)算法的升級,成本低。
[0036]5,Flash和FPGA中的RPMC還可以同時(shí)執(zhí)行不同的指令,即Flash和RPMC可以并行工作,因此,提高了芯片的性能。
[0037]6、利用FPGA與通用Flash來實(shí)現(xiàn)特殊功能的FLASH芯片,提升了開發(fā)速度,降低了開發(fā)成本。
【附圖說明】
[0038]圖1是本發(fā)明的一種與FPGA結(jié)合的FLASH芯片的結(jié)構(gòu)圖;
[0039]圖2是本發(fā)明的一種與FPGA結(jié)合的FLASH芯片外部指令處理的方法實(shí)施例的步驟流程圖。
【具體實(shí)施方式】
[0040]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0041]本發(fā)明實(shí)施例的核心構(gòu)思之一在于,與FPGA結(jié)合的FLASH芯片包括現(xiàn)場可編程門陣列FPGA,第一存儲芯片F(xiàn)lash-1,以及,第二存儲芯片F(xiàn)lash-2 ;Flash_l和FPGA各自包括內(nèi)部1引腳,所述Flash-1的內(nèi)部1引腳與所述FPGA的內(nèi)部1引腳互連,所述FPGA與所述Flash-1之間通過互連的內(nèi)部1引腳對進(jìn)行內(nèi)部相互通信;所述FPGA與Flash-2中相同的1引腳相連,并且連接到所述芯片的同一外部共享引腳上;外部指令通過所述芯片的外部共享引腳傳輸?shù)剿鯢lash-2與所述FPGA中。在本發(fā)明實(shí)施例中可以利用現(xiàn)有的Flash芯片即可實(shí)現(xiàn),并且,不需要像流水線一樣需通過一系列工藝步驟制造芯片,因此,芯片設(shè)計(jì)復(fù)雜度低、設(shè)計(jì)周期短、成本低。
[0042]參照圖1,示出了本發(fā)明一種與FPGA結(jié)合的FLASH芯片的結(jié)構(gòu)圖,所述芯片可以包括:
[0043]現(xiàn)場可編程門陣列FPGA,第一存儲芯片F(xiàn)lash-Ι,以及,第二存儲芯片F(xiàn)lash-2 ;所述FPGA中可以設(shè)置有應(yīng)答保護(hù)單調(diào)計(jì)數(shù)器RPMC及配置信息;所述第一存儲芯片F(xiàn)lash-1中可以存儲有所述RPMC的值;
[0044]本發(fā)明實(shí)施例中,F(xiàn)lash-1,F(xiàn)lash-2和RPMC可以是各自獨(dú)立的芯片。Flash-1和Flash-2可以選擇不同的容量來滿足不同系統(tǒng)的需求,由于可以復(fù)用已設(shè)計(jì)好的Flash芯片,因此不必重新設(shè)計(jì),大大減少了開發(fā)周期;FPGA中的設(shè)計(jì)了 RPMC,故具備了應(yīng)答保護(hù)單調(diào)計(jì)數(shù)的功能,也可以單獨(dú)使用。
[00