馮海英,范學(xué)仕
(中科芯集成電路股份有限公司,江蘇無(wú)錫 214072)
隨著智能可穿戴設(shè)備、智能硬件的普及以及物聯(lián)網(wǎng)的興起,MCU在消費(fèi)電子、工業(yè)控制、醫(yī)療設(shè)備以及人工智能等領(lǐng)域得到了廣泛應(yīng)用[1]。為了減少外圍分立器件,增加通用型,MCU通常采用內(nèi)嵌非易失性存儲(chǔ)器(Non-Volatile Memory,NVM)保存程序和少量數(shù)據(jù),而Flash作為典型的NVM,具有體積小、成本低、高靈活性、多次擦除編程等特點(diǎn),可以滿足高速訪問(wèn)和系統(tǒng)安全性等不同需求,逐漸成為MCU存儲(chǔ)器的首選[2],因此MCU市場(chǎng)的蓬勃發(fā)展使得嵌入式Flash得到了越來(lái)越廣泛的研究和應(yīng)用[3]。十多年來(lái),F(xiàn)lash以高于摩爾定律的增長(zhǎng)速度高速發(fā)展。目前,F(xiàn)lash已成為集成電路(Integrate Circuit,IC)技術(shù)發(fā)展的主要驅(qū)動(dòng)器,已和傳統(tǒng)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(Dynamic Random Access Memory,DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,SRAM)一起構(gòu)成IC存儲(chǔ)的三大支柱產(chǎn)業(yè)[4]。
嵌入式Flash特定的接口協(xié)議與標(biāo)準(zhǔn)的總線接口協(xié)議不同,不能直接集成到芯片中。因此需要設(shè)計(jì)控制器實(shí)現(xiàn)兩種接口協(xié)議的轉(zhuǎn)換,完成Flash的基本操作[5]。同時(shí),與處理器較高的運(yùn)行頻率相比,嵌入式Flash屬于低速存儲(chǔ)設(shè)備。自20世紀(jì)80年代起,處理器性能以每年60%的速率提升,而存儲(chǔ)器訪問(wèn)時(shí)間的改善速率每年大約為7%[6]。相對(duì)于處理器可以通過(guò)指令集并行[7]、超標(biāo)量設(shè)計(jì)[8]和大量使用寄存器提高自身性能,而Flash性能的提升只能依賴于工藝改良等方法[9]。當(dāng)前大多數(shù)MCU可以工作在100 MHz以上的系統(tǒng)頻率上,而Flash的讀取速度大多在30~60 ns之間。例如本文使用的Flash最大讀取速度為40 ns,理想情況最高速率為25 MHz;UMC推出的UM055EFLLP128KX032CAA的最大速度為40 ns;華虹公司推出的HKEFLYTxxK01系列片上Flash,最大讀取速度為63 ns,理想最高頻率為 15.9 MHz[10~11]。Flash與處理器之間的巨大速度差異會(huì)大大降低處理器取指效率,制約系統(tǒng)整體性能。因此設(shè)計(jì)帶預(yù)取加速的Flash控制器至關(guān)重要。
本文基于預(yù)取和緩存原理,采用位寬擴(kuò)展技術(shù)和改進(jìn)預(yù)取技術(shù)相結(jié)合的方式,設(shè)計(jì)了具有預(yù)取加速功能的Flash控制器,完成Flash特定接口協(xié)議與AHB協(xié)議的轉(zhuǎn)換,提高了取指效率,提升系統(tǒng)性能。本文首先詳細(xì)分析了當(dāng)前的Flash研究背景及現(xiàn)狀,隨后對(duì)Flash的接口協(xié)議進(jìn)行了闡述,接著重點(diǎn)介紹了預(yù)取加速控制器的設(shè)計(jì)思路與實(shí)現(xiàn)方法,最后通過(guò)仿真數(shù)據(jù)和實(shí)測(cè)數(shù)據(jù)證明該設(shè)計(jì)的可行性。
作為SoC片上高速總線,AMBA AHB主要負(fù)責(zé)對(duì)帶寬有較高要求的IP(Intellectual Property)的互連。AHB可以支持多主機(jī)、請(qǐng)求仲裁、突發(fā)傳輸、分離操作、流水操作等復(fù)雜操作,以滿足中央處理器(Central Processing Unit,CPU)、直接內(nèi)存存取(Direct Memory Access,DMA)控制器、片內(nèi)存儲(chǔ)器、外部存儲(chǔ)器接口等高速設(shè)備之間的帶寬要求。而系統(tǒng)的大部分低速外設(shè)則連接在高級(jí)外設(shè)總線(Advanced Peripheral Bus,APB)上,系統(tǒng)總線和外設(shè)總線之間使用橋接器進(jìn)行連接[12~14]。本文的嵌入式Flash預(yù)取加速控制器屬于AHB從機(jī)。
本文所選用的嵌入式Flash為ISSI公司推出的64位PFXXXXX,它包括128 kB的主存儲(chǔ)區(qū)和3 kB的信息區(qū),支持編程、頁(yè)擦除以及整片擦除,主要由地址緩存單元、地址解碼單元、邏輯控制單元、高電壓發(fā)生單元、輸入輸出驅(qū)動(dòng)單元和存儲(chǔ)陣列單元組成,其整體框架如圖1所示。
圖1 嵌入式Flash整體架構(gòu)
其關(guān)鍵信號(hào)介紹如下。
(1)CS:Flash 片選信號(hào),高有效;(2)IFREN:信息區(qū)選擇信號(hào),高有效;(3)AE:地址使能信號(hào),高有效;(4)OE:輸出使能信號(hào),高有效;(5)ADDR/DIN/DOUT:地址信號(hào)/寫(xiě)入數(shù)據(jù)/讀出數(shù)據(jù);(6)PROG/SERA/MASE:編程信號(hào)/頁(yè)擦除信號(hào)/整片擦除信號(hào),在AE上升沿有效,F(xiàn)lash開(kāi)始編程/頁(yè)擦除/整片擦除操作;(7)NVSTR:定義非易失性存儲(chǔ)周期,高有效,F(xiàn)lash 處于正在編程/擦除狀態(tài);(8)TBIT:編程/擦除結(jié)束指示信號(hào)。
與SRAM不同,嵌入式Flash屬于異步低速存儲(chǔ)設(shè)備,本文選用的Flash最快讀取速度為40 ns,編程操作時(shí)間20 μs,頁(yè)擦除時(shí)間2 ms,整片擦除時(shí)間10 ms。
圖2為Flash讀取訪問(wèn)時(shí)序圖。OE信號(hào)是數(shù)據(jù)輸出的使能信號(hào),在讀取Flash的過(guò)程中需維持高電平狀態(tài),而PORG、SERA、MASE、NVSTR必須為低。AE信號(hào)是地址的使能信號(hào),在一次讀過(guò)程中,AE需要經(jīng)過(guò)低-高-低的變化,tAAD≥40 ns,tAE≥10 ns,因此 Flash的最高讀速率為25 MHz。
圖2 Flash讀取訪問(wèn)時(shí)序
圖3為Flash編程時(shí)序圖。PROG信號(hào)觸發(fā)編程操作,AE為地址使能信號(hào),TBIT信號(hào)為Flash輸出信號(hào),下降沿表示編程操作結(jié)束,NVSTR用來(lái)控制高電壓產(chǎn)生。
圖3 Flash編程操作時(shí)序
圖4 為Flash頁(yè)擦除時(shí)序圖,圖5為Flash整片擦除時(shí)序圖。由SERA/MASE觸發(fā)擦除操作,TBIT下降沿表示擦除操作結(jié)束,NVSTR用來(lái)控制高低壓產(chǎn)生。
圖4 Flash頁(yè)擦除時(shí)序
圖5 Flash整片擦除時(shí)序
嵌入式Flash預(yù)取加速控制器整體架構(gòu)如圖6所示,其一端作為從機(jī)連接AHB總線,另一端連接64位嵌入式Flash,主要由寄存器模塊、保護(hù)機(jī)制、預(yù)取加速、仲裁機(jī)制、編程和擦除控制器、讀模塊、選擇字節(jié)區(qū)加載和測(cè)試模式組成。
各主要模塊功能如下。
(1)寄存器模塊:主要包括實(shí)現(xiàn)編程擦除操作的控制寄存器,讀出Flash狀態(tài)的狀態(tài)寄存器,地址寄存器,解鎖相關(guān)寄存器,保護(hù)寄存器和預(yù)取控制寄存器。
圖6 Flash預(yù)取加速控制器整體架構(gòu)
(2)保護(hù)機(jī)制:主要實(shí)現(xiàn)對(duì)Flash的讀保護(hù)和寫(xiě)保護(hù),讀保護(hù)防止程序被竊取,寫(xiě)保護(hù)防止程序被篡改。
(3)預(yù)取加速模塊:通過(guò)增加緩存的方式,實(shí)現(xiàn)對(duì)指令和數(shù)據(jù)的預(yù)取加速,該功能可以寄存器控制開(kāi)啟或關(guān)閉。
(4)仲裁機(jī)制:本設(shè)計(jì)中Cortex-M3核通過(guò)3組總線訪問(wèn)Flash控制器以實(shí)現(xiàn)不同操作,其中I-BUS為核取指令的總線,指令預(yù)取在該總線上進(jìn)行,D-BUS為核取數(shù)據(jù)的總線,S-BUS為核配置Flash寄存器的總線。其中I-BUS和D-BUS可以通過(guò)仲裁機(jī)制同時(shí)訪問(wèn)Flash控制器,D-BUS擁有更高的優(yōu)先級(jí)。
(5)編程和擦除控制器:實(shí)現(xiàn)對(duì)Flash的編程/頁(yè)擦除/整片擦除操作,在訪問(wèn)該模塊時(shí)需先進(jìn)行解鎖操作。
(6)讀模塊:從Flash讀出數(shù)據(jù)送到AHB總線上。
(7)選擇字節(jié)區(qū)加載:選擇字節(jié)區(qū)存儲(chǔ)了Flash和系統(tǒng)的相關(guān)配置信息,復(fù)位后首先加載該部分內(nèi)容,選擇字節(jié)區(qū)的值發(fā)生改變后,需重新復(fù)位方可生效。
(8)測(cè)試模式:用于芯片測(cè)試以及出廠相關(guān)配置信息的燒錄,也可用于量產(chǎn)燒錄用戶程序,提高效率。
在本設(shè)計(jì)中,采用Cortex-M3,整個(gè)系統(tǒng)的最高運(yùn)行頻率72 MHz,而所選Flash的最大讀取速度25 MHz,因此需要添加等待周期以實(shí)現(xiàn)高頻核對(duì)低頻Flash的訪問(wèn)。具體做法為配置相關(guān)寄存器的LATENCY位,決定是否插入等待周期:
(1)LATENCY=0,0< 系統(tǒng)時(shí)鐘≤24 MHz,無(wú)需額外插入等待周期;
(2)LATENCY=1,24 MHz< 系統(tǒng)時(shí)鐘≤48 MHz,需要額外插入1個(gè)時(shí)鐘等待周期;
(3)LATENCY=2,48 MHz< 系統(tǒng)時(shí)鐘≤72 MHz,需要額外插入2個(gè)時(shí)鐘等待周期。
Flash預(yù)取的開(kāi)關(guān)由相關(guān)寄存器的PRFTBE(預(yù)取緩沖區(qū)使能)控制,該信號(hào)為高時(shí)開(kāi)啟Flash預(yù)取。
當(dāng)預(yù)取開(kāi)時(shí),在LATENCY=0時(shí),AE信號(hào)頻率與HCLK時(shí)鐘頻率一致;在LATENCY=1時(shí),將時(shí)鐘二分頻作為AE信號(hào);在LAYTENCY=2時(shí),將時(shí)鐘三分頻作為AE信號(hào),通過(guò)判斷當(dāng)前總線狀態(tài)及跳轉(zhuǎn)狀態(tài),選擇與AE匹配的地址,產(chǎn)生對(duì)Flash讀訪問(wèn)。當(dāng)預(yù)取關(guān)時(shí),根據(jù)當(dāng)前是否有有效傳輸產(chǎn)生AE信號(hào)和相應(yīng)的ADDR信號(hào),產(chǎn)生Flash讀訪問(wèn),此時(shí)可適當(dāng)降低讀Flash產(chǎn)生的功耗。
擦除和編程控制器實(shí)現(xiàn)Flash的頁(yè)擦除/整片擦除和半字編程操作。編程/擦除過(guò)程如下:
(1)讀取Flash狀態(tài)寄存器,判斷當(dāng)前時(shí)刻Flash是否進(jìn)行其他操作;(2)配置Flash控制寄存器的編程/擦除位;(3)向指定地址寫(xiě)入半字/選擇需要擦除的頁(yè);(4)等待編程/擦除過(guò)程結(jié)束;(5)讀出相應(yīng)的內(nèi)容加以驗(yàn)證。
其具體的狀態(tài)轉(zhuǎn)換過(guò)程如圖7所示。收到總線寫(xiě)操作命令時(shí),狀態(tài)跳轉(zhuǎn)到WR_PRP1狀態(tài),判斷是否為保護(hù)地址,若被寫(xiě)保護(hù),跳回WR_IDLE狀態(tài);若可寫(xiě),跳到WR_PRP2,讀對(duì)應(yīng)地址單元,判斷是否為全F,若非全F,返回WR_IDLE狀態(tài);若可寫(xiě),跳到WR_TT,發(fā)送AE及擦除或編程命令后,經(jīng)WR_TT2跳到WR_WAIT,若在WR_TT之后有其他擦除或編程要求,在WR_WAIT狀態(tài)等到Tbit后,將跳回WR_TT,發(fā)起下一次擦除或編程,否則跳回WR_IDLE。
圖7 編程/擦除狀態(tài)轉(zhuǎn)換圖
預(yù)取加速模塊是Flash控制器的關(guān)鍵單元,負(fù)責(zé)提高Flash的讀取性能。本文基于預(yù)取和緩存原理,采用位寬擴(kuò)展技術(shù)和改進(jìn)預(yù)取技術(shù)相結(jié)合的方式,設(shè)計(jì)了一種具有預(yù)取加速功能的Flash控制器。
首先采用位寬擴(kuò)展技術(shù),通過(guò)擴(kuò)展Flash位寬,實(shí)現(xiàn)一次Flash訪問(wèn)取出多條指令,本文采用64位Flash,對(duì)于Cortex-M3的32位指令而言可以提高一倍的取指效率。單純使用位寬擴(kuò)展技術(shù),處理器仍然必須等到Flash讀取結(jié)束才能獲取第一條指令,依舊存在單次訪問(wèn)延遲的問(wèn)題。本文利用處理器處理已取出指令的間隙,發(fā)起硬件預(yù)取操作。
以順序取指為例,如圖8所示,使用兩組預(yù)取BUFF來(lái)記錄訪問(wèn)Flash的地址和取出的數(shù)據(jù)。其具體操作流程如下:
(1)當(dāng)處理器讀取N時(shí),將數(shù)據(jù)和地址分別存入BUFF0的數(shù)據(jù)和地址寄存器,向總線返回?cái)?shù)據(jù)D(N);(2)讀取 N+4地址時(shí),D(N+4)已在 BUFF0 中,直接讀出;(3)讀取N+4地址的同時(shí)預(yù)取N+8地址的值,并在讀取N+8地址時(shí),將數(shù)據(jù)和地址存入BUFF1的數(shù)據(jù)和地址寄存器;(4)以此類推讀出其余地址。
從圖8中可以看出,增加一組64位的BUFF0并不斷更新其讀地址和數(shù)據(jù),即可實(shí)現(xiàn)預(yù)取技術(shù)。考慮到本文的32位CPU為Cortex-M3,受到流水線結(jié)構(gòu)、數(shù)據(jù)和控制相關(guān)的影響,指令會(huì)出現(xiàn)跳轉(zhuǎn)、間斷,此時(shí)預(yù)取BUFF中的值將是無(wú)效的,需重新訪問(wèn)Flash,通過(guò)增加一組64位BUFF1,配合BUFF0共同完成硬件預(yù)取加速,如圖9所示。之所以不多增加幾組BUFF,是因?yàn)橛捎谔D(zhuǎn)指令的存在,過(guò)多的預(yù)取操作反而會(huì)導(dǎo)致系統(tǒng)性能的降低,同時(shí)會(huì)增加成本。
圖8 預(yù)取加速時(shí)序圖
整個(gè)預(yù)取加速功能的實(shí)現(xiàn)可總結(jié)如下。
(1)選取Flash地址。若等待傳輸?shù)牡刂罚ㄔ谧xFlash期間鎖存的地址)不在BUFF中,F(xiàn)lash地址選取等待地址(鎖存地址);若當(dāng)前總線傳輸?shù)刂凡辉贐UFF中,F(xiàn)lash地址選取當(dāng)前地址;若當(dāng)前總線傳輸?shù)刂?等待傳輸?shù)刂吩贐UFF中 (無(wú)等待傳輸),F(xiàn)lash地址選取當(dāng)前地址+8的地址。
(2)判斷是否預(yù)取。若當(dāng)前地址和當(dāng)前地址+8均在BUFF中,暫停預(yù)取,否則開(kāi)啟預(yù)取。
(3)是否更新BUFF。正在讀取當(dāng)前傳輸對(duì)應(yīng)的Flash單元時(shí),當(dāng)前傳輸?shù)刂穼?duì)應(yīng)為跳轉(zhuǎn)地址且跳轉(zhuǎn)失敗,讀取單元不等于新地址,也不等于新地址+8,不更新BUFF;預(yù)取當(dāng)前地址+8對(duì)應(yīng)Flash單元時(shí),在讀Flash周期的中間周期(LATENCY=2)時(shí),發(fā)生成功跳轉(zhuǎn)且預(yù)取地址不等于當(dāng)前地址,也不等于當(dāng)前地址+8,不更新BUFF;預(yù)取當(dāng)前地址+8對(duì)應(yīng)Flash單元,在Flash數(shù)據(jù)鎖定信號(hào)有效時(shí),發(fā)生跳轉(zhuǎn)且當(dāng)前地址不等于讀Flash期間READY信號(hào)為低的鎖定地址,也不等于當(dāng)前地址,更不等于當(dāng)前地址+8,不更新BUFF。
(4)成功跳轉(zhuǎn)判斷。在更新標(biāo)志發(fā)生時(shí)或之前,跳轉(zhuǎn)狀態(tài)由1或2跳轉(zhuǎn)為8,或者有其他跳轉(zhuǎn)發(fā)生,此時(shí)可不更新BUFF。
圖9 帶跳轉(zhuǎn)的預(yù)取加速時(shí)序圖
Flash中的用戶代碼程序(主存儲(chǔ)區(qū))可以防止非法讀出,通過(guò)設(shè)置讀保護(hù)實(shí)現(xiàn)這一保護(hù)措施。在設(shè)置讀保護(hù)后,除用外代碼本身外的任何操作均無(wú)法讀出Flash中的用戶代碼程序,在解除讀保護(hù)時(shí)將產(chǎn)生一次整片擦除。
同樣也可以對(duì)Flash加以頁(yè)保護(hù),防止程序在跑飛的情況下被意外改寫(xiě),可通過(guò)設(shè)置寫(xiě)保護(hù)實(shí)現(xiàn),任何試圖在一個(gè)寫(xiě)保護(hù)的頁(yè)面進(jìn)行編程或者擦除時(shí)均會(huì)在Flash控制器的狀態(tài)寄存器中反饋保護(hù)錯(cuò)誤標(biāo)準(zhǔn)。
本文采用Cortex-M3的內(nèi)核,并且支持3種啟動(dòng)方式:Flash啟動(dòng),SRAM啟動(dòng)和系統(tǒng)Memory啟動(dòng)。Flash的內(nèi)存空間可分為 main flash、option byte和system memory,本文設(shè)計(jì)的讀保護(hù)訪問(wèn)權(quán)限如表1所示,“√”表示允許訪問(wèn),“×”表示禁止訪問(wèn)。
考慮到芯片測(cè)試以及出廠相關(guān)配置信息的燒錄,以使其量產(chǎn)時(shí)更高效地?zé)浻脩舫绦?,本文設(shè)計(jì)了Flash測(cè)試模式,此測(cè)試模式可以直接與標(biāo)準(zhǔn)SPI進(jìn)行通信,方便操作,提高燒寫(xiě)效率,降低成本。同時(shí)增加了低功耗設(shè)計(jì),系統(tǒng)進(jìn)入低功耗模式后Flash也進(jìn)入相應(yīng)的低功耗模式。
為驗(yàn)證本文設(shè)計(jì)的Flash預(yù)取加速控制器的功能,同時(shí)對(duì)性能和功耗進(jìn)行評(píng)估。本文搭建的SoC實(shí)驗(yàn)平臺(tái),集成了ARM公司Cortex-M3的32位低功耗處理器、AHB總線、Flash預(yù)取加速控制器、ISSI的64位某型Flash和SRAM??刂破鲗?shí)現(xiàn)對(duì)Flash的讀、編程和擦除3類操作,具體仿真波形如圖10~14所示。
圖10 LATENCY為0時(shí)預(yù)取及仲裁時(shí)序
圖11 LATENCY為1時(shí)預(yù)取時(shí)序
圖12 LATENCY為2時(shí)預(yù)取時(shí)序
圖13 頁(yè)擦除時(shí)序
圖14 編程時(shí)序
圖10為L(zhǎng)ATENCY為0時(shí)預(yù)取及仲裁時(shí)序。在I-Bus和D-Bus同時(shí)讀取0x080007a8地址時(shí),D-Bus具有更好的優(yōu)先級(jí),優(yōu)先讀出數(shù)據(jù)0x20000068,隨后I-Bus讀出該值。I-Bus及D-Bus讀取和仲裁正確。
圖11和圖12分別為L(zhǎng)ATENCY為1和2時(shí)的預(yù)取時(shí)序,其讀取結(jié)果正確,預(yù)取時(shí)序符合圖8所述本文設(shè)計(jì)的預(yù)取加速原理。
圖13和圖14分別為Flash擦除和編程時(shí)序仿真圖,其結(jié)果與Flash本身擦除及編程時(shí)序一致,即圖3和圖4所示。
在對(duì)預(yù)取加速控制器的預(yù)取效率評(píng)估中,采用上述實(shí)驗(yàn)平臺(tái),分別在預(yù)取開(kāi)啟和關(guān)閉的情況下讀取相同的地址空間內(nèi)容(地址包含連續(xù)、跳轉(zhuǎn)等),以耗費(fèi)時(shí)間作為標(biāo)準(zhǔn)進(jìn)行評(píng)估。具體實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表2。
表1 讀保護(hù)/非讀保護(hù)時(shí)對(duì)Flash空間的訪問(wèn)權(quán)限表
表2 預(yù)取開(kāi)關(guān)耗時(shí)實(shí)驗(yàn)結(jié)果表
實(shí)驗(yàn)結(jié)果表明,時(shí)鐘頻率在24 MHz、48 MHz和72 MHz時(shí)(即LATENCY分別為0/1/2),預(yù)取開(kāi)啟比預(yù)取關(guān)閉耗時(shí)更少,效率分別提高了16.3%、5%和11.6%。其中在48 MHz時(shí),由于時(shí)鐘頻率剛好為Flash讀取速度的兩倍,兩個(gè)時(shí)鐘周期完成一次讀操作,故預(yù)取開(kāi)關(guān)耗時(shí)相差不大,僅在跳轉(zhuǎn)發(fā)生時(shí),預(yù)取開(kāi)具有更高的效率。
搭載本文設(shè)計(jì)的Flash預(yù)取加速控制器的MCU芯片,已完成樣品流片和測(cè)試,其結(jié)果與預(yù)期設(shè)計(jì)一致。
本文基于預(yù)取和緩存原理,采用位寬擴(kuò)展技術(shù)和改進(jìn)預(yù)取技術(shù)相結(jié)合的方式,設(shè)計(jì)了具有預(yù)取加速功能的Flash控制器,完成Flash特定接口協(xié)議與AHB協(xié)議的轉(zhuǎn)換。搭建了SoC仿真實(shí)驗(yàn)平臺(tái),驗(yàn)證了設(shè)計(jì)的正確性。實(shí)驗(yàn)結(jié)果表明,本設(shè)計(jì)最多提高了16.3%的Flash取指效率,提升了系統(tǒng)性能。同時(shí)設(shè)計(jì)了明確的保護(hù)機(jī)制以保護(hù)用戶程序;實(shí)現(xiàn)了Flash測(cè)試模式與通用串口的通信,提高測(cè)試和燒錄效率,降低成本。實(shí)際樣片結(jié)果表明本設(shè)計(jì)的正確性和合理性。
[1]郭煒,魏繼增,郭箏,謝憬.SoC設(shè)計(jì)方法與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2011.
[2]Brewer J,Gill M.Nonvolatile memory technologies with emphasison flash:acomprehensive guide to understanding and usingflashmemorydevice[M].Hoboken:Wiley,2011:19-62.
[3]潘立陽(yáng),朱鈞.Flash存儲(chǔ)器技術(shù)與發(fā)展[J].微電子學(xué),2002,1:47-52.
[4]劉衛(wèi).NAND Flash控制器的設(shè)計(jì)與驗(yàn)證[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2008:23.
[5]Ma D,Huang K,et al.An automatic SoC design methodology for integration and verification[J].Advanced Material Research,2011,383-390:2222-2230.
[6]Cappelletti P,Golla C.Flash memories[M].Kluwer Academic Publishers,1999.
[7]Wong C L.Methods for increasing instruction-level parallelism in microprocessors and digital system[M].US,US6988183,2006.
[8]Aagaard M D,Cook B,et al.A framework for superscalar microprocessor correctness statements[J].International Journal on Software Tools for Technology Transfer,2003,4(3):298-312.
[9]鄭文靜,李明強(qiáng),舒繼武.Flash存儲(chǔ)技術(shù)[J].計(jì)算機(jī)研究與發(fā)展,2010,47(4):716-726.
[10]蔣進(jìn)松.高效的片上Flash加速控制器軟硬件設(shè)計(jì)[D].杭州:浙江大學(xué),2016.
[11]王鈺博.嵌入式Flash加速控制器的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2014.
[12]AMBA Specification(Rev 2.0)[P].ARM,ARM IHI 0011A.
[13]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[14]Jungwook P,Cheong K,et al.An energy efficient cache memory architecture forembedded systems[C].Proceedings of the 2004 ACM Symposium on Applied Computing.NewYork,USA:ACM,2004:884-890.