專利名稱:用于提高mcu存儲性能的方法及其對應的mcu芯片的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機存儲技術(shù),更具 體地,涉及ー種能夠提高自身存儲性能的方法及其對應的新型MCU芯片。
背景技術(shù):
目前,通用MCU應用日趨廣泛,各領(lǐng)域需求逐漸増大,如何在已有元件性能的基礎(chǔ)上提高芯片整體性能并且擴大應用范圍,是人們廣泛關(guān)注的焦點。雖然芯片性能與特點千差萬別,但就其內(nèi)部存儲器而言,主要分為可擦寫非易失性存儲器(諸如FLASH、EEPR0M、ROM、OPT、MTP等)及易失性存儲器(諸如SRAM)??刹翆懛且资源鎯ζ鞯綦姾髷?shù)據(jù)不會消失,但性能相對較低,通常需要多個周期才能完成一次操作,主要用于存儲程序。易失性存儲器掉電后數(shù)據(jù)消失,但性能較高,單周期可完成ー個操作,主要用于程序執(zhí)行過程中的中間數(shù)據(jù)存儲。在一款芯片中,兩者大小及所占地址是固定的,程序需要根據(jù)芯片所提供的硬件資源進行編寫,要求相對較高,靈活度有限。同時由于片內(nèi)可擦寫非易失性存儲器對芯片制造エ藝提出了特殊的要求,使得生產(chǎn)制造成本與可靠性變得更加敏感。因此,可擦寫非易失性存儲器與易失性存儲器在芯片內(nèi)的容量大小、性能高低以及其所影響的成品率與成本是當前芯片設(shè)計與制造的很重要考量因素。與存儲器相依托的通用MCU芯片上電工作流程可抽象為如下三個過程上電引導過程;程序執(zhí)行過程;燒錄程序過程。芯片的上電過程與芯片的存儲規(guī)劃是緊密相連的。在對芯片性能需求日益增長的今天,用于存儲程序的可擦寫非易失性存儲器的性能已經(jīng)成為讀取程序的瓶頸。其帶來的成品率下降與成本上升也為人所詬病。在物理受限的前提下,可通過改變程序運行介質(zhì)可以解決這ー問題,但運行流程也將隨之改變。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)的上述缺陷,本發(fā)明提出ー種能夠提高自身存儲性能的方法及其對應的MCU芯片。根據(jù)本發(fā)明的ー個方面,該MCU芯片包括外部存儲器地址轉(zhuǎn)換電路、片內(nèi)地址產(chǎn)生邏輯、片內(nèi)易失性存儲器配置與控制器、片內(nèi)易失性存儲器、以及非易失性存儲器;其特征在于,片內(nèi)易失性存儲器包括用于存儲程序的程序區(qū)和用于存儲數(shù)據(jù)的數(shù)據(jù)區(qū);所述片內(nèi)地址產(chǎn)生邏輯和片內(nèi)易失性存儲器配置與控制器通過易失性存儲器地址總線通信連接,或兩者一體形成于片內(nèi)。根據(jù)本發(fā)明的另一方面,提出了一種提高MCU存儲性能的方法,該方法包括以下步驟第一歩,判斷外部非易失性存儲器是否存在;如不存在,直接引入第五步;第二歩,在第一步檢測成功的條件下,獲取該存儲器上用戶程序信息;第三歩,識別用戶程序信息,匹配則根據(jù)程序數(shù)據(jù)量大小從片外非易失性存儲器拷貝至片內(nèi)易失性存儲器中;第四步,識別存儲器轉(zhuǎn)換標識,存在則進行片內(nèi)存儲器地址切換;第五步,執(zhí)行用戶程序。
本發(fā)明提出的用于提高MCU存儲性能的方法,同時配合相應的上電執(zhí)行流程以及程序燒錄方式,可以克服所提到的程序區(qū)與數(shù)據(jù)區(qū)容量固定的局限性,同時解決可擦寫非易失性存儲器讀取性能低的不足而導致程序執(zhí)行效率低的問題,并可提升芯片生產(chǎn)制造成品率,降低成本。
圖I為本發(fā)明存儲區(qū)域布局示意圖;圖2為本發(fā)明所對應的MCU上電流程圖;圖3為存儲器映射切換示意圖;圖4為本發(fā)明應用于MCU控制器的實際上電流程圖。如圖所示,為了能明確實現(xiàn)本發(fā)明的實施例的結(jié)構(gòu),在圖中標注了特定的結(jié)構(gòu)和 器件,但這僅為示意需要,并非意圖將本發(fā)明限定在該特定結(jié)構(gòu)、器件和環(huán)境中,根據(jù)具體需要,本領(lǐng)域的普通技術(shù)人員可以將這些器件和環(huán)境進行調(diào)整或者修改,所進行的調(diào)整或者修改仍然包括在后附的權(quán)利要求的范圍中。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明提供的一種提高MCU存儲性能的方法及其對應的新型MCU芯片進行詳細描述。同時,在這里做以說明的是,為了使實施例更加詳盡,下面的實施例為最佳、優(yōu)選實施例,對于ー些公知技術(shù)本領(lǐng)域技術(shù)人員也可采用其他替代方式而進行實施;而且附圖部分僅是為了更具體的描述實施例,而并不g在對本發(fā)明進行具體的限定。圖I表示本發(fā)明最優(yōu)實施例中提出的新型MCU芯片1,其中該MCU芯片I包括外部存儲器地址轉(zhuǎn)換電路5,該外部存儲器地址轉(zhuǎn)換電路5優(yōu)選采用外部通用或?qū)S每偩€接ロ控制器;片內(nèi)地址產(chǎn)生邏輯6,其優(yōu)選為外設(shè)通訊控制器、處理器地址累加器等地址產(chǎn)生硬件中的一個或多個組合;通過片內(nèi)易失性存儲器地址總線7連接到片內(nèi)地址產(chǎn)生邏輯6的片內(nèi)易失性存儲器配置與控制器8 ;片內(nèi)易失性存儲器9,例如sram等;以及非易失性存儲器;該非易失性存儲器優(yōu)選包括片內(nèi)用于存儲數(shù)據(jù)的可擦寫非易失性存儲器12以及片內(nèi)用于存儲引導程序的非易失性存儲器13。其中外部存儲器地址轉(zhuǎn)換電路5通過外部存儲器數(shù)據(jù)/地址總線3、4與芯片外部的片外可擦寫非易失性存儲器2通信連接,該片外可擦寫非易失性存儲器2優(yōu)選于采用例如FLASH、EEPROM等。片內(nèi)地址產(chǎn)生邏輯6通過片內(nèi)易失性存儲器地址總線7與片內(nèi)易失性存儲器配置與控制器8相連接,也可以將片內(nèi)地址產(chǎn)生邏輯6與片內(nèi)易失性存儲器配置與控制器8 —體形成,從而可以省略片內(nèi)易失性存儲器地址總線7。進ー步如圖I所示,片內(nèi)易失性存儲器9包括兩部分一部分為用于存儲程序的片內(nèi)易失性存儲器10 (程序區(qū));另一部分是用于存儲數(shù)據(jù)的片內(nèi)易失性存儲器11 (數(shù)據(jù)區(qū))。當MCU主控芯片與外部存儲器通訊使用串行總線時,外部存儲器數(shù)據(jù)/地址存儲總線3、4為同一串行總線。用于存儲程序的片內(nèi)易失性存儲器10和用于存儲數(shù)據(jù)的片內(nèi)易失性存儲器11這兩部分區(qū)域?qū)μ幚砥骶哂胁煌目偩€基址,邏輯上獨立訪問。程序區(qū)和數(shù)據(jù)區(qū)的容量的配比可以根據(jù)外部存儲器中所儲存的程序內(nèi)容大小、所存儲程序中記錄的配置項以及芯片外部引腳配置而改變各自所占內(nèi)部易失性存儲器的容量比例。成功上電開始執(zhí)行用戶程序后,片內(nèi)程序與數(shù)據(jù)存放在片內(nèi)易失性存儲器9中。在片內(nèi)易失性存儲器9中程序區(qū)與數(shù)據(jù)區(qū)的容量大小比例調(diào)整的方法是由片內(nèi)易失性存儲器配置與控制器8實現(xiàn)的。程序區(qū)與數(shù)據(jù)區(qū)具有不同的片內(nèi)總線基址。處理器發(fā) 出的針對這兩個不同區(qū)域的訪問請求會被片內(nèi)易失性存儲器配置與控制器8翻譯后,映射為同一個物理區(qū)域的訪問。容量大小比例調(diào)整可由多種方法實現(xiàn),包括a)根據(jù)外部可擦寫或不可擦寫非易失存儲器中記錄的程序大小信息智能調(diào)整山)根據(jù)外部可擦寫或不可擦寫非易失存儲器中記錄的指定的容量大小比例配置調(diào)整;c)根據(jù)芯片的特定引腳電平信息調(diào)整等方法。需要注意的是,根據(jù)本領(lǐng)域技術(shù)人員可知該附圖I僅是示意性的,對于芯片的中的ー些公知技術(shù),也可以采用其他本領(lǐng)域已知的技術(shù)手段或技術(shù)方案來代替,如非易失性存儲器13與可擦寫非易失性存儲器12 —體形成,或僅保留其中ー個而實現(xiàn)上述兩個的功能;又或者外部存儲器地址總線3與外部存儲器數(shù)據(jù)總線4可以采用相同的總線或串ロ來形成等。在本發(fā)明的教導、啟示下,上述變形、替換以及修改均包含在本發(fā)明的保護范圍內(nèi)。如圖2所示,上電后主控芯片引導程序工作流程如下第一歩檢測外部非易失性存儲器的ID或其中特定的內(nèi)容等信息判斷外部非易失性存儲器是否存在;如不存在,直接引入第五步;第二步在第一步檢測成功的條件下,獲取該存儲器上用戶程序信息,包括程序標識、數(shù)據(jù)量大小、存儲器轉(zhuǎn)換標識等;第三步識別程序標識,如果匹配,則根據(jù)程序數(shù)據(jù)量大小從片外非易失性存儲器拷貝至片內(nèi)易失性存儲器中;第四歩識別存儲器轉(zhuǎn)換標識,如果存在,則進行片內(nèi)存儲器地址切換,將存在用戶程序部分的易失性存儲器用作只讀區(qū),作用相當于傳統(tǒng)MCU非易失性存儲器,另一部分依然作為執(zhí)行區(qū);第五步清理現(xiàn)場,執(zhí)行用戶程序。下面針對具體的MCU芯片實施例,來更加具體的描述本發(fā)明。XXX型號MCU控制器使用FLASH作為片外非易失性存儲器,并通過SPI串行通訊端ロ與之相連組成系統(tǒng)。在微控制器上具有專用存儲器獨占連接管腳。同時在微控制器中具有通訊模塊。上電后,將此通訊模塊接ロ切換至專用存儲器芯片連接端ロ,經(jīng)存儲器獨占鏈接管腳與專用存儲器芯片進行通信。在完成外部專用存儲器操作后,將通訊模塊端ロ再切換回微控制器通訊端ロ。在MCU控制器中提供了 18k的易失性存儲區(qū),存儲區(qū)分為兩部分,一部分是程序存儲器區(qū)(code area),另一部分是數(shù)據(jù)存儲器區(qū)(data area)。這兩部分區(qū)域具有不同的總線基址。程序區(qū)和數(shù)據(jù)區(qū)的容量的配比可以根據(jù)當前使用程序的大小不同而改變。程序區(qū)與數(shù)據(jù)區(qū)總線基址不同及區(qū)域空間大小的不同是由可擦寫非易失性存儲器控制器中特殊的地址譯碼器實現(xiàn)。例如當存儲空間配置由程序區(qū)占16k,數(shù)據(jù)區(qū)占2k切換至程序區(qū)占12k,數(shù)據(jù)區(qū)占6k時,原有程序區(qū)12k-16k區(qū)域會有地址譯碼器重映射至數(shù)據(jù)區(qū)的2k-6k區(qū)域。如圖3所示。上電后過程主要完成以下五步工作,流程圖如圖4所示。
引導程序需要獲取用戶代碼信息用以作為拷貝代碼及切換存儲區(qū)域的依據(jù)。第一歩判斷片外FLASH是否存在。可以采用讀取FLASH ID的方式進行判斷,若能夠讀取到FLASH ID,則繼續(xù)進行后續(xù)過程;若無法讀取,則不進行拷貝,根據(jù)目前SRAM內(nèi)已有信息進行存儲區(qū)域的切換工作,并跳至第五步,重映射芯片地址,以SRAM為載體執(zhí)行用戶程序,以達到在不掉電情況下,即使移除片外flash,也可通過復位執(zhí)行程序的目的。第二步讀取片外用戶代碼中指定位置的數(shù)據(jù)信息并判斷是否合法。該信息大小即為用戶代碼中只讀可執(zhí)行區(qū)代碼的大小。合法時,執(zhí)行第三步,否則跳至第五歩。第三步,根據(jù)第二步中所獲得的程序代碼大小,進行代碼拷貝工作,并根據(jù)程序內(nèi)所包含的信息決定是否需要進行代碼區(qū)與執(zhí)行區(qū)地址的切換。首先根據(jù)第二步中所獲得的程序代碼信息,初始化FLASH連接端ロ,并將外置FLASH的程序拷貝至內(nèi)置的SRAM中,以提 高執(zhí)行效率。同時,識別用戶程序內(nèi)信息,決定是否需要切換。若需要切換,執(zhí)行第四步,否則跳至第五歩。第四步,根據(jù)用戶程序信息進行存儲切換,更改SRAM劃分。依據(jù)執(zhí)行區(qū)最大的原貝1J,根據(jù)所拷貝的用戶程序大小,選擇能夠容納該程序且執(zhí)行區(qū)最大的級別,進行代碼區(qū)與執(zhí)行區(qū)的切換,將已存在用戶代碼的一部分區(qū)域劃分為傳統(tǒng)芯片中的FLASH區(qū),用于存儲用戶程序只讀的可執(zhí)行代碼部分。程序在執(zhí)行過程中,對該區(qū)域進行讀寫,但與傳統(tǒng)芯片比較,該部分讀取速度會大幅提升。SRAM另一部劃分為傳統(tǒng)芯片的RAM區(qū),用作程序執(zhí)行過程中可變數(shù)據(jù)的讀寫及保存,該部分所起作用與傳統(tǒng)芯片無差異。完成切換后,執(zhí)行第五歩。第五步,進行地址映射的轉(zhuǎn)換,重新映射芯片地址,并跳轉(zhuǎn)至用戶程序代碼的執(zhí)行。以上即為上電的總體過程。當片外FLASH已存儲用戶程序吋,該過程可順利完成。當片外FLASH不存在用戶程序吋,需要進行下載。下載過程主要完成將上位機編譯好的程序傳輸至芯片外部FLASH的任務,通過ISP(In System Programming)下載方式實現(xiàn)。傳統(tǒng)ISP下載通常將程序存儲至芯片內(nèi)部FLASH,而本技術(shù)方案中ISP模式將程序存儲至片外FLASH,需要涉及FLASH連接端ロ。與上位機使用串ロ進行數(shù)據(jù)傳輸,此部分同樣可以使用弓I導程序?qū)崿F(xiàn)。最后應說明的是,以上實施例僅用以描述本發(fā)明的技術(shù)方案而不是對本技術(shù)方法進行限制,本發(fā)明在應用上可以延伸為其他的修改、變化、應用和實施例,并且因此認為所有這樣的修改、變化、應用、實施例都在本發(fā)明的精神和教導范圍內(nèi)。
權(quán)利要求
1.ー種MCU芯片,該MCU芯片包括外部存儲器地址轉(zhuǎn)換電路、片內(nèi)地址產(chǎn)生邏輯、片內(nèi)易失性存儲器配置與控制器、片內(nèi)易失性存儲器、以及非易失性存儲器;其特征在于,片內(nèi)易失性存儲器包括用于存儲程序的程序區(qū)和用于存儲數(shù)據(jù)的數(shù)據(jù)區(qū);所述片內(nèi)地址產(chǎn)生邏輯和片內(nèi)易失性存儲器配置與控制器通過易失性存儲器地址總線通信連接,或兩者一體形成于片內(nèi)。
2.根據(jù)權(quán)利要求I所述的MCU芯片,其特征在于,所述程序區(qū)和數(shù)據(jù)區(qū)的容量的配比根據(jù)外部存儲器中所儲存的程序內(nèi)容大小、所存儲程序中記錄的配置項或芯片外部引腳配置而改變。
3.根據(jù)權(quán)利要求I所述的MCU芯片,其特征在于,所述轉(zhuǎn)換電路采用外部通用或?qū)S每偩€接ロ控制器;所述片內(nèi)地址產(chǎn)生邏輯外設(shè)通訊控制器、處理器地址累加器中的一個或多個組合。
4.根據(jù)權(quán)利要求I所述的MCU芯片,其特征在于,所述片內(nèi)易失性存儲器是SRAM;所述非易失性存儲器包括片內(nèi)用于存儲數(shù)據(jù)的可擦寫非易失性存儲器以及片內(nèi)用于存儲引導程序的非易失性存儲器。
5.根據(jù)權(quán)利要求2所述的MCU芯片,其特征在于所述外部存儲器地址轉(zhuǎn)換電路通過外部存儲器數(shù)據(jù)/地址總線與片外可擦寫非易失性存儲器通信連接。
6.一種提高MCU存儲性能的方法,包括 第一歩判斷外部非易失性存儲器是否存在;如不存在,直接進入第五步; 第二步在第一步檢測外部非易失性存儲器存在的情況下,獲取該存儲器上用戶程序信息; 第三步識別用戶程序信息,如果信息匹配,則根據(jù)程序數(shù)據(jù)量大小從片外非易失性存儲器拷貝至片內(nèi)易失性存儲器中; 第四步識別存儲器轉(zhuǎn)換標識,如果該標識存在,則進行片內(nèi)存儲器地址切換; 第五步執(zhí)行用戶程序。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一步還包括通過檢測外部非易失性存儲器的ID或其中特定的內(nèi)容信息來判斷外部非易失性存儲器是否存在。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述用戶程序信息包括程序標識、數(shù)據(jù)量大小和存儲器轉(zhuǎn)換標識。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,第四步還包括將存在用戶程序部分的易失性存儲器用作只讀區(qū),當做傳統(tǒng)MCU非易失性存儲器;另一部分依然作為執(zhí)行區(qū)。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于所述片內(nèi)易失性存儲器包括用于存儲程序的程序區(qū)和用于存儲數(shù)據(jù)的數(shù)據(jù)區(qū);所述程序區(qū)和數(shù)據(jù)區(qū)的容量的配比根據(jù)外部存儲器中所儲存的程序內(nèi)容大小、所存儲程序中記錄的配置項或芯片外部引腳配置而改變。
全文摘要
本發(fā)明提出一種用于提高MCU存儲性能的方法及其對應的新型MCU芯片,該MCU芯片包括外部存儲器地址轉(zhuǎn)換電路、片內(nèi)地址產(chǎn)生邏輯、片內(nèi)易失性存儲器配置與控制器、片內(nèi)易失性存儲器、以及非易失性存儲器;片內(nèi)易失性存儲器包括用于存儲程序的程序區(qū)和用于存儲數(shù)據(jù)的數(shù)據(jù)區(qū)。本發(fā)明提出的用于提高MCU存儲性能的方法,同時配合相應的上電執(zhí)行流程以及程序燒錄方式,可以克服所提到的程序區(qū)與數(shù)據(jù)區(qū)容量固定的局限性,同時解決可擦寫非易失性存儲器讀取性能低的不足導致程序執(zhí)行效率受到影響的問題,并可提升芯片生產(chǎn)制造成品率,降低成本。
文檔編號G06F15/78GK102662913SQ20121008912
公開日2012年9月12日 申請日期2012年3月29日 優(yōu)先權(quán)日2012年3月29日
發(fā)明者孫有陽, 張煒, 張琢, 胡杰, 韓智毅 申請人:佛山華芯微特科技有限公司