《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于存儲(chǔ)器映射的Flash高速低功耗驅(qū)動(dòng)實(shí)現(xiàn)
基于存儲(chǔ)器映射的Flash高速低功耗驅(qū)動(dòng)實(shí)現(xiàn)
2016年電子技術(shù)應(yīng)用第3期
李 杰,任勇峰,李輝景
中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)高速大容量Flash芯片控制中面臨的高速可靠性不高與動(dòng)態(tài)功耗大的問(wèn)題,研究了一種將復(fù)雜狀態(tài)機(jī)操作映射到內(nèi)嵌RAM上運(yùn)行的方法。通過(guò)對(duì)內(nèi)嵌RAM讀地址的切換,實(shí)現(xiàn)了等延時(shí)的狀態(tài)跳變與輸出控制。同時(shí)采用加強(qiáng)時(shí)鐘管理、分割組合邏輯來(lái)避免信號(hào)不必要的翻轉(zhuǎn),極大地提高了時(shí)序運(yùn)行的可靠性并降低了其動(dòng)態(tài)功耗。實(shí)踐表明,該方法實(shí)現(xiàn)的Flash控制時(shí)序比傳統(tǒng)的狀態(tài)機(jī)在資源消耗和功耗方面均能降低50%以上,為復(fù)雜時(shí)序邏輯的實(shí)現(xiàn)提供了一個(gè)新思路。
中圖分類(lèi)號(hào): TP301
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.009
中文引用格式: 李杰,任勇峰,李輝景. 基于存儲(chǔ)器映射的Flash高速低功耗驅(qū)動(dòng)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(3):31-34.
英文引用格式: Li Jie,Ren Yongfeng,Li Huijing. High speed and low power driver realization of Flash based on RAM mapping[J].Application of Electronic Technique,2016,42(3):31-34.
High speed and low power driver realization of Flash based on RAM mapping
Li Jie,Ren Yongfeng,Li Huijing
National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China
Abstract: Considering the reliability and power consumption problems of FPGA in modern NAND Flash chip controlling, a new design method based on FPGA internal memory mapping for finite state machine(FSM) is proposed. In this way, transfer information and output information will be mapped to internal memory resources of FPGA, by means of controlling the address of memory to implement the state transfer of FSM, and reading data in corresponding memory address to implement state transfer information and corresponding output. The controller clock and combination of the combinational logic to avoid the unnecessary flip of signal greatly improve the reliability of working and reduce the dynamic power consumption. The practice shows that this method can reduce the resource consumption and the power consumption more than 50% of the traditional FSM, which provides a new way in the realization of complex sequential logic.
Key words : FSM mapping;dynamic power consumption;controller clock;division of the combinational logic

0 引言

    在FPGA對(duì)Flash控制操作中,有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)與多進(jìn)程描述方式相比有著層次分明、結(jié)構(gòu)清晰、易于修改和移植的明顯優(yōu)勢(shì)而被廣泛應(yīng)用。傳統(tǒng)狀態(tài)機(jī)在描述實(shí)現(xiàn)寄存器存儲(chǔ)狀態(tài)信息、組合邏輯產(chǎn)生下一個(gè)狀態(tài)和輸出值時(shí),大量使用了FPGA的布線(xiàn)、查找表、寄存器等寶貴資源[1]。

    為了實(shí)現(xiàn)FPGA的可編程性,在其內(nèi)部使用了大量的可編程邏輯開(kāi)關(guān)。由于可編程邏輯開(kāi)關(guān)的電阻較金屬線(xiàn)大得多,而且引入了大量的寄生電容,從而增加了電路功耗,降低了電路速度[2](研究表明,總動(dòng)態(tài)功耗中62%來(lái)自于可編程布線(xiàn)資源)。而且大量組合邏輯容易受到布局布線(xiàn)延遲,在查找表的輸出端產(chǎn)生“毛刺”,當(dāng)系統(tǒng)時(shí)鐘頻率、操作密度大幅提高時(shí),極易引起時(shí)序邏輯錯(cuò)誤[3]。為此,研究了一種基于存儲(chǔ)器映射的有限狀態(tài)機(jī)邏輯實(shí)現(xiàn)方法,對(duì)FPGA資源進(jìn)行選擇性使用,從而達(dá)到降低FPGA功耗、提高運(yùn)行可靠性的目的。

1 NAND Flash芯片接口及底層驅(qū)動(dòng)實(shí)現(xiàn)

    NAND Flash芯片是通過(guò)異步高性能I/O與主控芯片通信的,8位復(fù)用總線(xiàn)傳輸操作指令、操作地址以及數(shù)據(jù),多個(gè)控制信號(hào)來(lái)區(qū)分總線(xiàn)接口狀態(tài)以及獲取芯片工作狀態(tài),如圖1。

wdz2-t1.gif

    NAND Flash芯片控制器主要完成初始化、無(wú)效塊檢測(cè)、塊擦除、頁(yè)編程和頁(yè)讀取共5個(gè)基本操作模式。其中初始化操作與無(wú)效塊校驗(yàn)是在系統(tǒng)上電后需要率先完成的操作,隨后控制器將進(jìn)入到空閑狀態(tài),并根據(jù)輸入的相應(yīng)控制信號(hào)完成剩下的塊擦除、頁(yè)編程和頁(yè)讀取操作。各個(gè)操作模式都是狀態(tài)轉(zhuǎn)移實(shí)現(xiàn)一定時(shí)序的輸出與接收,并且用狀態(tài)機(jī)容易實(shí)現(xiàn)。以塊擦除為例,其中輸入信號(hào)有Erase_en、Earse_do和R/B 3個(gè)信號(hào),輸出信號(hào)有CLE、ALE、WE、RE 4個(gè)信號(hào),狀態(tài)轉(zhuǎn)移如圖2所示。

wdz2-t2.gif

2 基于存儲(chǔ)器映射的有限狀態(tài)機(jī)設(shè)計(jì)

2.1 基于優(yōu)化資源配置的低功耗、高可靠設(shè)計(jì)思路

    目前主流的FPGA芯片內(nèi)部除含有查找表、觸發(fā)器、布線(xiàn)資源等基本邏輯資源外,還集成了塊RAM、分部式RAM、時(shí)鐘管理等多種豐富的資源。FPGA的可編程特性主要靠布線(xiàn)結(jié)構(gòu)中的可編程開(kāi)關(guān)連接可編程邏輯塊實(shí)現(xiàn)。

    不同類(lèi)型資源所消耗的動(dòng)態(tài)功耗在FPGA總功耗中所占比例不同。其中總動(dòng)態(tài)功耗的62%來(lái)自于布線(xiàn)資源,19%來(lái)自于時(shí)鐘網(wǎng)絡(luò),而可編程邏輯塊只占動(dòng)態(tài)功耗的19%[4]。

    根據(jù)FPGA中各種資源性能、功耗不同的現(xiàn)象,提出了一種新的設(shè)計(jì)思路,即在滿(mǎn)足系統(tǒng)性能的前提下,對(duì)FPGA資源進(jìn)行優(yōu)化選擇性使用,盡可能使用相對(duì)較低功耗的資源完成設(shè)計(jì)任務(wù)。將有限狀態(tài)機(jī)映射到FPGA內(nèi)部RAM中執(zhí)行,不僅可以減少布線(xiàn)資源的使用,從而降低FPGA的動(dòng)態(tài)功耗,而且能夠消除高速狀態(tài)下切換布線(xiàn)延遲產(chǎn)生的錯(cuò)誤或者無(wú)效狀態(tài)[5]。

2.2 基于存儲(chǔ)器映射的有限狀態(tài)機(jī)設(shè)計(jì)方法

    狀態(tài)機(jī)組合邏輯都可以抽象為一定輸入編碼與一定輸出編碼的對(duì)應(yīng),即當(dāng)前狀態(tài)與輸入信號(hào)共同決定次態(tài)的編碼[6]。為了能在塊RAM中執(zhí)行有限狀態(tài)機(jī),需要將狀態(tài)機(jī)的編碼及狀態(tài)轉(zhuǎn)移等信息映射到塊RAM中。具體方法為:塊RAM中每個(gè)存儲(chǔ)單元內(nèi)容分為狀態(tài)機(jī)的狀態(tài)編碼信息與狀態(tài)機(jī)的輸出信息兩部分。由狀態(tài)機(jī)的當(dāng)前編碼信息和狀態(tài)機(jī)的輸入信息一起構(gòu)成下一個(gè)狀態(tài)編碼信息的存儲(chǔ)地址。

    如果采用[D2:D0]表示Flash塊擦除狀態(tài)機(jī)的8個(gè)操作狀態(tài)、[D4:D3]表示分3次發(fā)送的操作塊地址信息、[D5]表示所用的兩個(gè)操作命令,則操作狀態(tài)編碼、地址編碼、命令編碼即可唯一確定該狀態(tài)機(jī)當(dāng)前所處的狀態(tài)(具體編碼方式如圖3所示)。其中次態(tài)的高4位是狀態(tài)機(jī)向下一狀態(tài)轉(zhuǎn)化時(shí)的輸出值,用于對(duì)Flash芯片的控制;當(dāng)前態(tài)的高3位是狀態(tài)機(jī)的輸入控制信號(hào)。采用這種編碼方式容易將圖2所示的有限狀態(tài)機(jī)表示為當(dāng)前態(tài)與次態(tài)對(duì)應(yīng)的真值表見(jiàn)表1。

wdz2-t3.gif

wdz2-b1.gif

    將表1中當(dāng)前態(tài)作為RAM的存儲(chǔ)地址,次態(tài)作為RAM中存儲(chǔ)的數(shù)據(jù),即可以將圖2所示的有限狀態(tài)機(jī)映射到存儲(chǔ)器上執(zhí)行,如圖4所示。狀態(tài)機(jī)進(jìn)行轉(zhuǎn)化時(shí),下一狀態(tài)的編碼信息存儲(chǔ)地址由當(dāng)前狀態(tài)的編碼信息和狀態(tài)機(jī)的輸入信息共同決定。同樣,F(xiàn)lash操作中其他的操作模式均可以按這種方式編碼并映射為用存儲(chǔ)器執(zhí)行的有限狀態(tài)機(jī)。

wdz2-t4.gif

    實(shí)現(xiàn)有限狀態(tài)機(jī)到存儲(chǔ)映射所需要的存儲(chǔ)空間最大為:

    M=2i×(O+S)

其中i表示狀態(tài)機(jī)輸入的位數(shù),O表示狀態(tài)機(jī)輸出的位數(shù),S是狀態(tài)編碼的位數(shù)。

    當(dāng)然,當(dāng)有限狀態(tài)機(jī)越來(lái)越復(fù)雜時(shí),其所需的存儲(chǔ)空間容量越來(lái)越大,也可以適當(dāng)?shù)馗鶕?jù)實(shí)際情況通過(guò)邏輯控制對(duì)地址控制進(jìn)行修正來(lái)減小存儲(chǔ)空間需求。

3 NAND Flash控制中的低功耗優(yōu)化設(shè)計(jì)

    FPGA的功耗主要包含靜態(tài)功耗和動(dòng)態(tài)功耗兩部分。靜態(tài)功耗主要取決于所選FPGA的型號(hào);動(dòng)態(tài)功耗是所有電容性節(jié)點(diǎn)充放電產(chǎn)生的組合功耗和電路轉(zhuǎn)換過(guò)程中的短路電流形成的功耗[7]。降低FPGA動(dòng)態(tài)功耗的思路為:在保證滿(mǎn)足設(shè)計(jì)要求的情況下,通過(guò)降低內(nèi)部信號(hào)的翻轉(zhuǎn)率來(lái)降低功耗。其手段包括對(duì)時(shí)鐘進(jìn)行管理與增加防火墻寄存器。

3.1 基于時(shí)鐘管理模塊的低功耗優(yōu)化

    在FPGA內(nèi)部時(shí)鐘信號(hào)不斷翻轉(zhuǎn),由時(shí)鐘信號(hào)派生出的信號(hào)通常運(yùn)行在主時(shí)鐘頻率的較小分量[8](通常為12%~15%)。所以在所有高耗能信號(hào)中,時(shí)鐘是主要矛盾。通常情況下,一個(gè)狀態(tài)機(jī)會(huì)在某個(gè)時(shí)間段內(nèi)保持同一個(gè)狀態(tài)不變,但其時(shí)鐘始終處于翻轉(zhuǎn)狀態(tài)。因此,關(guān)閉閑置模塊程序的時(shí)鐘可以降低時(shí)鐘資源產(chǎn)生的功耗[9]。在Flash操作中,當(dāng)FPGA處于擦除模式時(shí),初始化操作、無(wú)效塊校驗(yàn)、頁(yè)編程和頁(yè)讀取模式均處于閑置狀態(tài)。圖4中時(shí)鐘管理模塊負(fù)責(zé)對(duì)FPGA內(nèi)部各模塊的時(shí)鐘進(jìn)行管理,只有該模塊處于工作狀態(tài)時(shí)時(shí)鐘信號(hào)才會(huì)翻轉(zhuǎn)。在設(shè)計(jì)中增加時(shí)鐘管理模塊非常簡(jiǎn)單,可以在硬件描述語(yǔ)言中添加,也可以通過(guò)綜合工具自動(dòng)添加。

3.2 增加防火墻寄存器的低功耗優(yōu)化

    在FPGA程序設(shè)計(jì)中大量組合邏輯很容易受到布局布線(xiàn)延遲在查找表的輸出端產(chǎn)生“毛刺”?!懊獭痹诤罄m(xù)組合邏輯電路的傳播中,可能導(dǎo)致多米諾骨牌效應(yīng),致使系統(tǒng)變得不穩(wěn)定,而且增加了調(diào)試難度,消耗了大量的能量。研究表明,由“毛刺”在大量組合邏輯中的傳遞引起的動(dòng)態(tài)功耗占總動(dòng)態(tài)功耗的10%。用FPGA實(shí)現(xiàn)大多數(shù)電路功能時(shí),F(xiàn)PGA內(nèi)部大部分的基本邏輯單元中的觸發(fā)器(Flip-Flop,F(xiàn)F)沒(méi)有使用,將這些未用的FF添加到信號(hào)傳輸路徑上被稱(chēng)作增加防火墻寄存器[10](如圖5)。通過(guò)在程序中添加防火墻寄存器來(lái)分割組合邏輯,把每個(gè)邏輯功能限制在相鄰的邏輯單元中,從而縮短布線(xiàn)長(zhǎng)度和減小負(fù)載電容,將“毛刺”波的傳遞限制在最小范圍,達(dá)到降低功耗的目的。

wdz2-t5.gif

4 仿真實(shí)驗(yàn)結(jié)果及分析

    為了比較分析傳統(tǒng)狀態(tài)實(shí)現(xiàn)方法與基于RAM映射的有限狀態(tài)機(jī)設(shè)計(jì)以及低功耗優(yōu)化方法的性能差別,對(duì)設(shè)計(jì)完成FPGA內(nèi)部資源消耗情況、功耗評(píng)估以及理論最高工作頻率3方面進(jìn)行測(cè)試。

    整個(gè)試驗(yàn)以Xilinx公司的Spartan-6系列FPGA XC6SLX150為目標(biāo)器件,選用ISE13.1版本的綜合工具,并利用ISE中自帶的XPower進(jìn)行功耗分析。XPower從布局和布線(xiàn)(.ncd)文檔中獲得FPGA設(shè)計(jì)信息,從Vcd文檔中獲得設(shè)計(jì)中所需的時(shí)鐘、開(kāi)關(guān)活動(dòng)等信息,該文件可在布局和布線(xiàn)時(shí)在Pwr文檔中得出功耗報(bào)告。仿真結(jié)果如表2。

wdz2-b2.gif

    從表中可以看出,基于RAM映射的有限狀態(tài)機(jī)設(shè)計(jì)僅僅增加一個(gè)片內(nèi)Block RAM資源的使用就使內(nèi)部其他資源占用率下降到傳統(tǒng)方式的1/3,總功耗也能下降到原來(lái)的50%以下,并且最大工作頻率有明顯提高。對(duì)基于RAM映射的有限狀態(tài)機(jī)進(jìn)行低功耗優(yōu)化后僅僅增加了小部分閑置FFs資源的使用,使FPGA總功耗進(jìn)一步下降到傳統(tǒng)狀態(tài)機(jī)設(shè)計(jì)的43.1%,而且最大工作頻率提高了65.6%。

5 結(jié)論

    文章針對(duì)Flash控制應(yīng)用中實(shí)現(xiàn)復(fù)雜狀態(tài)機(jī)的設(shè)計(jì)時(shí)存在高速可靠性與動(dòng)態(tài)功耗的問(wèn)題進(jìn)行研究,提出了一種優(yōu)化FPGA內(nèi)部資源使用方法,利用FPGA內(nèi)部存儲(chǔ)資源構(gòu)成有限狀態(tài)機(jī)的設(shè)計(jì)并進(jìn)行了低功耗優(yōu)化。其將傳統(tǒng)方式下的狀態(tài)機(jī)電路結(jié)構(gòu)中不斷變化的狀態(tài)機(jī)寄存器信息轉(zhuǎn)化成RAM中的固定模塊,減少了使用功耗較高的布線(xiàn)資源。不僅有效降低了FPGA動(dòng)態(tài)功耗,而且能夠消除高速狀態(tài)下切換布線(xiàn)延遲產(chǎn)生的錯(cuò)誤或者無(wú)效狀態(tài),特別適合大規(guī)模的復(fù)雜狀態(tài)機(jī)結(jié)構(gòu),使得各個(gè)狀態(tài)機(jī)切換具有等間隔的時(shí)間延遲。增加時(shí)鐘管理模塊關(guān)閉閑置模塊的運(yùn)行以及添加防火墻寄存器限制“毛刺”傳播,進(jìn)一步降低了FPGA的動(dòng)態(tài)功耗,提高了系統(tǒng)可靠性。該方法很容易遷移到其他FPGA應(yīng)用設(shè)計(jì)中,有較高的實(shí)用價(jià)值。

參考文獻(xiàn)

[1] 馬寅,安軍社,王連國(guó).基于Scrubbing的空間SRAM型FPGA抗單粒子翻轉(zhuǎn)系統(tǒng)設(shè)計(jì)[J].空間科學(xué)學(xué)報(bào),2012,32(2):270-276.

[2] SHANG L,KAVIANI A,BALHALA K.Dynamic power consumption in Vinex-I1 FPGA family[C].Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field-programmable gate arrays.2002:157-164.

[3] CROMAR S,LEE J,CHEN D M.FPGA-targeted high-level binding algorithm for power and area reduction with glitch-estimation[C].Proc of the 46th Annual Design Automation Conference.New York:ACM Press,2009:838-843.

[4] 李列文.FPGA低功耗設(shè)計(jì)相關(guān)技術(shù)研究[D].長(zhǎng)沙:中南大學(xué)信息科學(xué)與工程學(xué)院,2014.

[5] 吳強(qiáng),張逸中.FPGA位流解析及電路還原方法[J].計(jì)算機(jī)工程,2013,39(5):714-726.

[6] 儲(chǔ)成群.存儲(chǔ)測(cè)試系統(tǒng)若干關(guān)鍵技術(shù)研究[D].太原:中北大學(xué)儀器與電子學(xué)院,2015.

[7] 李宏鈞,胡小龍.流水線(xiàn)的FPGA低功耗設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(8):234-237.

[8] WANG Q,GUPTA S,ANDERSON J.Clock power reduction for Virtex-5 FPGAs[C].Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrys.2009:13-22.

[9] 何艷霞,何永泰.FPGA低功耗的設(shè)計(jì)研究[J].楚雄師范學(xué)院學(xué)報(bào),2012(6):22-25.

[10] 黃娟,楊海鋼,譚宜濤,等.防火墻寄存器技術(shù)的FPGA低功耗布線(xiàn)算法研究[J].計(jì)算機(jī)應(yīng)用研究,2011(8):2954-2957.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。