国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

L-DSP 片上Flash 控制器設(shè)計(jì)與實(shí)現(xiàn)

2020-11-11 08:02:06鄒望輝
關(guān)鍵詞:緩沖器寄存器總線

曹 韜, 鄒望輝, 汪 東

(1 長沙理工大學(xué) 物理與電子科學(xué)學(xué)院, 長沙410114; 2 湖南轂梁微電子有限公司, 長沙410005)

0 引 言

隨著半導(dǎo)體制造工藝的發(fā)展和計(jì)算機(jī)體系結(jié)構(gòu)等方面的改進(jìn),DSP(Digital Signal Processors)芯片功能日益強(qiáng)大,被廣泛應(yīng)用于語音圖像識(shí)別與處理、自動(dòng)控制、醫(yī)學(xué)、通信、軍事等領(lǐng)域等。 片上Flash存儲(chǔ)器是一種內(nèi)嵌于芯片的非易失性存儲(chǔ)器,具有低成本、高安全性和高靈活性等優(yōu)點(diǎn),因此被作為程序和數(shù)據(jù)存儲(chǔ)器用于DSP 設(shè)計(jì)中[1-2]。 DSP 是一種專用于數(shù)字信號(hào)處理的嵌入式微處理器,其核心部分是中央處理單元CPU(Central Processor Unit)負(fù)責(zé)從各存儲(chǔ)器中獲取指令并執(zhí)行,因此CPU 對Flash 的訪問較為頻繁[3]。 這兩者相較而言,CPU擁有較高運(yùn)行頻率,但片上Flash 屬于低速存儲(chǔ)設(shè)備,并且具有特定的接口與時(shí)序要求,因此CPU 無法直接對片上Flash 進(jìn)行訪問[4],需要用控制器實(shí)現(xiàn)這兩種協(xié)議的轉(zhuǎn)換,使兩者能夠正常通信;由于CPU對Flash 的讀訪問時(shí)間較長導(dǎo)致系統(tǒng)性能降低[5],因此需要先進(jìn)的控制器結(jié)構(gòu)來提高訪問效率。

由于Flash 生產(chǎn)工藝的限制[6],芯片量產(chǎn)時(shí)部分Flash 會(huì)出現(xiàn)小范圍損壞稱為初始?jí)膲K,這些壞塊的出現(xiàn)會(huì)導(dǎo)致整塊芯片無法正常使用[7]。 利用Flash 的冗余空間替代損壞區(qū)域進(jìn)行存儲(chǔ)能對Flash起到修復(fù)作用,替換邏輯需要由外部控制器實(shí)現(xiàn)。

L-DSP 是一款單核低功耗DSP,系統(tǒng)頻率為15MHz ~150MHz,擁有特殊的總線協(xié)議Memory Bus,并需要通過總線搭載4Mbit 大小的片上Flash作為唯一的片上非易失性存儲(chǔ)器。 本文根據(jù)LDSP 對片上Flash 存儲(chǔ)器的需求及其總線特點(diǎn),設(shè)計(jì)一種應(yīng)用于L-DSP 的片上Flash 控制器。 L-DSP取指主要發(fā)生在片上Flash 空間,通過提高Flash 取指效率能有效提高系統(tǒng)的運(yùn)行速度。 為提高芯片性能,控制器中還設(shè)計(jì)了一種基于指令預(yù)?。?-10]的加速模塊;因?yàn)長-DSP 片上Flash 空間較大,易產(chǎn)生初始?jí)膲K,所以控制器中還對初始?jí)膲K進(jìn)行修復(fù),在一定程度上避免了因Flash 損壞造成流片失敗。

1 Flash 控制器設(shè)計(jì)方案與實(shí)現(xiàn)

控制器包括總線接口、預(yù)取單元、讀控制、壞塊替換和控制寄存器五個(gè)部分,其結(jié)構(gòu)如圖1 虛線內(nèi)所示。

圖1 Flash 控制器結(jié)構(gòu)圖Fig. 1 Structure diagram of Flash controller

所選用 Flash 為上海宏力 GSMC FLS004M56DA,其結(jié)構(gòu)如圖2 所示。 控制邏輯部分列出與讀取訪問相關(guān)的接口,存儲(chǔ)部分包含主空間,非易失性寄存器空間(NVR)和冗余空間(RDN),其中NVR 主要用于存放芯片出廠時(shí)的測試數(shù)據(jù),冗余空間是獨(dú)立于主空間的備用空間。

圖2 Flash 結(jié)構(gòu)圖Fig. 2 Structure diagram of Flash

1.1 控制器接口設(shè)計(jì)

控制器擁有總線接口與Flash 接口。 總線接口連接Memory Bus,用于接收總線的讀Flash 請求并送出讀數(shù)據(jù),主要信號(hào)如表1 所示。 總線接口收到讀請求后將讀地址送給讀控制模塊,讀控制模塊讀Flash 需要的控制信號(hào),并直接與Flash 外部接口連接。 產(chǎn)生Flash 接口讀控制時(shí)序如圖3 所示。 A1,A2,A3為三次讀訪問的地址,D1,D2,D3為對應(yīng)的讀數(shù)據(jù)。 TAA(Address Access Time)是Flash 固有的讀訪問時(shí)間,其最大值為40 ns,所以讀地址及控制接口信號(hào)至少要穩(wěn)定40 ns 才能確保DOUT 每次輸出的讀數(shù)據(jù)都正確。

表1 總線接口信號(hào)列表Tab. 1 Bus interface signal list

圖3 Flash 讀取訪問時(shí)序圖Fig. 3 Read access timing diagram of Flash

1.2 讀控制邏輯設(shè)計(jì)

由于訪問Flash 存在固有延時(shí)TAA,因此在不同系統(tǒng)頻率下控制器的讀控制邏輯會(huì)存在差異。 如圖4(a)所示,當(dāng)系統(tǒng)頻率較慢,一個(gè)周期大于40 ns時(shí),控制器只需要等待一個(gè)周期就能送出數(shù)據(jù)和數(shù)據(jù)有效信號(hào);而當(dāng)系統(tǒng)頻率較快時(shí),一個(gè)周期無法滿足40 ns 的訪問時(shí)間,就在數(shù)據(jù)返回前插入N 個(gè)等待周期,同時(shí)維持Flash 讀時(shí)序穩(wěn)定。 如圖4(b)所示,當(dāng)周期為13.33 ns 到40 ns 之間時(shí),至少需要插入3 個(gè)等待周期才能在數(shù)據(jù)有效拍輸出穩(wěn)定的數(shù)據(jù)。 如果當(dāng)前的系統(tǒng)頻率是fs,則必須滿足

將其變換并統(tǒng)一單位,則

當(dāng)頻率一定時(shí), N 取到滿足公式(2)的最小整數(shù)即為最少等待周期數(shù),即控制器達(dá)到當(dāng)前頻率最快讀取速率。

L-DSP 系統(tǒng)頻率可變,若將等待周期數(shù)固定為某一數(shù)值并且保證所有頻率下正常讀取,則必須讓N 在最大頻率下能滿足公式(2)。 那么在未達(dá)到最大系統(tǒng)頻率時(shí)將造成等待時(shí)間的過長從而降低系統(tǒng)性能。 為避免時(shí)間浪費(fèi),利用控制寄存器靈活配置控制器等待周期。 根據(jù)當(dāng)前系統(tǒng)頻率將其配置為滿足公式(2)的最小整數(shù),控制器就能每次以最快速度讀出Flash 某一地址中的數(shù)據(jù)。

1.3 指令預(yù)取設(shè)計(jì)

即使以最快速度讀取Flash,總線每次對Flash的讀訪問仍存在等待時(shí)間,同樣造成了系統(tǒng)運(yùn)行速度減慢,利用指令預(yù)取方式減少部分等待時(shí)間。 在圖4(a)和(b)中控制器對Flash 兩次讀訪問之間有一段間隔時(shí)間Tint,實(shí)際上是Flash 等待總線處理并發(fā)出請求的時(shí)間,期間Flash 處于未被訪問狀態(tài)。其長度由CPU 執(zhí)行的程序以及總線的仲裁機(jī)制共同決定,經(jīng)分析Tint最短為3 個(gè)時(shí)鐘周期,如遇總線非優(yōu)先處理Flash 訪問請求,Tint將被延長。 若控制器能夠在Tint時(shí)間內(nèi)預(yù)測到總線的下一個(gè)讀地址,并且提前向Flash 發(fā)起讀訪問,就能在預(yù)測成功時(shí)減少總線下一次讀Flash 的等待時(shí)間。

因?yàn)榇蠖鄶?shù)指令地址是連續(xù)的,即后一條指令地址為前一條指令地址加2,所以控制器做連續(xù)地址預(yù)取設(shè)計(jì)可以大概率加快取指速度。 如圖4(c)所示,當(dāng)總線處理CPU 下一個(gè)取指請求或其他事務(wù)時(shí),控制器預(yù)先將下一地址中的指令讀取并存放在緩沖器中??刂破魇盏较乱坏刂稟1+ 2 的取指令請求時(shí),下一拍從緩沖器中將數(shù)據(jù)輸出, 達(dá)到加速取指的目的。 當(dāng)頻率更高,間隔時(shí)間Tint不足以完成對Flash 下一個(gè)地址讀取訪問,預(yù)取過程中控制器收到A1+2 地址的取指請求,需在預(yù)取時(shí)間Tint基礎(chǔ)上穩(wěn)定讀時(shí)序,直到滿足TAA后將DOUT 端口數(shù)據(jù)經(jīng)過緩沖器輸出到總線,同樣能夠達(dá)到預(yù)取加速的效果。

圖4 控制器不同條件下的讀時(shí)序Fig. 4 Read timing of controller under different condition

設(shè)計(jì)如圖5 所示預(yù)取結(jié)構(gòu),預(yù)取單元包含虛線內(nèi)所示的3 部分。 緩沖器利用數(shù)據(jù)寄存器實(shí)現(xiàn),由于數(shù)字寄存器面積開銷較大容易增加成本,并且LDSP 系統(tǒng)運(yùn)行時(shí)Tint不會(huì)太長,預(yù)取不足以填滿大量緩沖器,因此緩沖器數(shù)量太大反而造成資源浪費(fèi)。經(jīng)實(shí)驗(yàn)測試,4 個(gè)緩沖器的結(jié)構(gòu)利用率較高,預(yù)取加速效果較好,所以選用4 個(gè)緩沖器存放預(yù)取的指令。

圖5 預(yù)取緩沖結(jié)構(gòu)Fig. 5 Pre-fetch buffer structure

預(yù)取過程中控制器與總線保持通信,預(yù)取單元根據(jù)收到的讀請求控制預(yù)取進(jìn)程并送出預(yù)取數(shù)據(jù),其處理過程如圖6 所示。 請求解析模塊接收讀請求,解析請求類型和地址信息,判斷數(shù)據(jù)在緩沖器中的位置以及是否沖刷預(yù)??;數(shù)據(jù)控制模塊控制緩沖器中的數(shù)據(jù)輸出,并且收到?jīng)_刷信號(hào)后清空緩沖器數(shù)據(jù);預(yù)取控制模塊負(fù)責(zé)發(fā)出預(yù)取請求,并在緩沖器填滿時(shí)暫停預(yù)取,直到指令被取出。

圖6 預(yù)取發(fā)生時(shí)的讀請求解析Fig. 6 Read request parsing when pre-fetch occurs

1.4 壞塊替換設(shè)計(jì)

對壞塊的檢測在芯片出廠時(shí)完成,單個(gè)壞塊信息以16 位數(shù)據(jù)形式被保存在無法修改的NVR 中。Flash 主空間分為1024 個(gè)扇區(qū),單個(gè)扇區(qū)大小與單片RDN 大小相同,而壞塊信息只會(huì)記錄損壞的地址所處扇區(qū),即無法正常存儲(chǔ)地址的高10 位,存放在NVR 保留地址的數(shù)據(jù)低10 位,同時(shí)需要將最高位寫0 表示低10 位壞塊信息有效。 主空間中某個(gè)扇區(qū)出現(xiàn)一個(gè)或多個(gè)無法存儲(chǔ)的地址時(shí),控制器將訪問該段地址的讀寫訪問映射,對某RDN 片區(qū)的訪問。

壞塊信息在Flash 內(nèi)不便于利用,因此控制器對Flash 進(jìn)行任何操作之前,先將壞塊信息讀出并保存。 L-DSP 上電時(shí)CPU 固定會(huì)在另一個(gè)片上空間取指執(zhí)行一段初始化程序,之后跳轉(zhuǎn)到Flash 執(zhí)行,因此控制器利用芯片上電到CPU 執(zhí)行完初始化程序這段時(shí)間將Flash 中的壞塊信息載入到數(shù)據(jù)寄存器中,壞塊替換結(jié)構(gòu)如圖7 所示。

圖7 壞塊替換結(jié)構(gòu)Fig. 7 Structure of bad block replacement

帶有初始?jí)膲K替換的Flash 控制器訪問流程如圖8 所示。

圖8 壞塊替換訪問流程Fig. 8 Access process of bad block replacement

芯片上電后,控制器先將NVR 中固定存放壞塊信息的地址中的數(shù)據(jù)加載到若干內(nèi)部寄存器,最高位為0 的數(shù)據(jù)表示需要替換的壞塊信息,最高位為1 的數(shù)據(jù)被視為無效。 控制器將對Flash 的讀寫訪問地址高10 位與這些寄存器的低10 位進(jìn)行對比,若匹配則訪問用于替換的RDN 扇區(qū)。 讀RDN 片區(qū)時(shí)需要將RDN 信號(hào)拉高,其他信號(hào)與主空間訪問時(shí)序相同。 主空間中可能存在多個(gè)扇區(qū)出現(xiàn)損壞,則需要多片RDN 進(jìn)行替換。 廠家經(jīng)驗(yàn)得出,F(xiàn)lash 每1Mbit 易出現(xiàn)1 處壞塊,使用4 個(gè)壞塊信息寄存器。當(dāng)出現(xiàn)4 個(gè)不同扇區(qū)的壞塊時(shí),取原主空間訪問地址低8 位作為對RDN 扇區(qū)訪問的偏移地址,即低8位地址;用第9、10 位地址作為RDN 片選信號(hào),其他高位補(bǔ)0。 替換數(shù)量更多時(shí)繼續(xù)拓寬高位地址。

2 功能驗(yàn)證與綜合

Flash 控制器設(shè)計(jì)和仿真激勵(lì)都是由Verilog HDL 描述,因此采用NC-Verilog 仿真工具。 仿真使用由生產(chǎn)商提供的Flash IP 的Behavior model 行為級(jí)模型模擬Flash 存儲(chǔ)電路,模型為控制器提供Flash 接口以及存儲(chǔ)空間。 將Flash 控制器搭載到L-DSP芯片總線,搭建系統(tǒng)級(jí)仿真環(huán)境,利用CPU通過總線和控制器從Flash 模型中獲取指令并運(yùn)行。 在Flash 中存入一段無跳轉(zhuǎn)順序執(zhí)行的程序,改變系統(tǒng)頻率、控制器讀取速率以及預(yù)取的使能,通過仿真記錄各種系統(tǒng)配置下程序運(yùn)行的時(shí)間,對比分析程序運(yùn)行的效率。

2.1 讀控制邏輯驗(yàn)證

驗(yàn)證非預(yù)取模式下讀速率控制邏輯,系統(tǒng)頻率固定在150 MHz,由前面可得此頻率下最快讀取周期數(shù)為6,因此測試周期數(shù)為6 和默認(rèn)最大值15 之間程序運(yùn)行的幾種情況。 對比運(yùn)行時(shí)間可以得出將讀周期數(shù)配置成最優(yōu)數(shù)值能夠有效加快程序運(yùn)行的結(jié)論。

表2 同頻率不同讀速率下的運(yùn)行時(shí)間Tab. 2 Run time at different read rates and the same frequency

2.2 指令預(yù)取驗(yàn)證

表3 為默認(rèn)配置,所有頻率下單次讀訪問周期數(shù)為最大值15,即最慢讀取速率;表4 配置為滿足各頻率讀時(shí)序要求的最短讀周期數(shù),即最快讀取速率。

表3 數(shù)據(jù)表明,在默認(rèn)相同讀訪問周期條件下,無論系統(tǒng)工作在哪一頻率,預(yù)取加速比率同為8.563%,而由表4 數(shù)據(jù)可以得出,將讀周期數(shù)配置為最優(yōu)數(shù)值能提高預(yù)取加速比率,并且預(yù)取加速比率隨著讀周期數(shù)減少而提高,在額定150 MHz 頻率下加速17.61%。

表3 默認(rèn)讀取速率下運(yùn)行時(shí)間Tab. 3 Run time at default read rate

表4 最快讀取速率下運(yùn)行時(shí)間Tab. 4 Run time at the fastest read rate

2.3 壞塊替換驗(yàn)證

啟用壞塊替換后的讀訪問如圖9 所示,給入唯一壞塊信息0x3ff,當(dāng)總線訪問0x3_ff00 和0x3_ff02地址時(shí),RDN 變?yōu)楦唠娖剑現(xiàn)lash 讀地址為0x0 和0x2,讀出數(shù)據(jù)為RDN1 空間中默認(rèn)值0xffff 而非主空間中的預(yù)設(shè)值,表明控制器已將對主空間0x3_ff00 和0x3_ff02 的訪問轉(zhuǎn)換為對RDN1 空間0x0 和0x2 的訪問。 壞塊替換邏輯正確。

2.4 DC 綜合

綜合工具使用的是Synopsys 公司的Design Compiler,在0.18 μm CMOS 工藝下對Flash 控制器進(jìn)行綜合,系統(tǒng)頻率為150 MHz,得到綜合后的面積開銷為0.13 mm2,總功耗為10.17 mW。

3 FPGA 原型驗(yàn)證

將搭載有此Flash 控制器的L-DSP 全芯片設(shè)計(jì)固化到FPGA,L-DSP 芯片擁有片上調(diào)試系統(tǒng),可以利用JTAG 接口通過XDS 仿真器連接PC 上的調(diào)試軟件CCS,驗(yàn)證環(huán)境如圖10 所示。 利用CCS 對LDSP 進(jìn)行編程并將程序下載到Flash 模型中,訪問程序空間并控制程序運(yùn)行,驗(yàn)證Flash 控制器功能正確性。

圖9 壞塊地址轉(zhuǎn)換Fig. 9 Address translation of bad block

圖10 FPGA 驗(yàn)證環(huán)境Fig. 10 FPGA verification environment

利用CCS 編程并下載到Flash 中,通過片上調(diào)試系統(tǒng)調(diào)用Flash 控制器對程序空間進(jìn)行讀訪問,界面效果截圖如圖11 所示,控制器能夠正確完成對Flash 的數(shù)據(jù)訪問。 再利用CCS 修改指針運(yùn)行該段程序,運(yùn)行結(jié)果如圖12 所示,正確的將SRAM 中的0x9000 地址修改為0x1235,程序運(yùn)行正確。

圖11 Flash 程序空間訪問圖Fig. 11 Program space access map of Flash

圖12 運(yùn)行結(jié)果Fig. 12 Operation result

4 結(jié)束語

本文根據(jù)L-DSP 對于片上Flash 存儲(chǔ)器的要求,針對系統(tǒng)總線Memory Bus 協(xié)議以及所選型的Flash 接口時(shí)序,設(shè)計(jì)了一種將總線對Flash 地址空間讀請求轉(zhuǎn)換為Flash 接口有效讀訪問時(shí)序的控制器電路,其兼容系統(tǒng)15 MHz~150 MHz 的工作頻率區(qū)間,并能通過配置系統(tǒng)控制寄存器達(dá)到其中任一頻率下的最快讀取訪問速率;實(shí)現(xiàn)了指令預(yù)取功能,提高了系統(tǒng)連續(xù)取指運(yùn)行情況下的取指效率,在額定150 MHz 頻率下取指效率提高17.61%;利用Flash 冗余空間替換主空間壞塊,實(shí)現(xiàn)主空間初始?jí)膲K修復(fù),提高了芯片出廠良率。

猜你喜歡
緩沖器寄存器總線
更正
輕兵器(2022年3期)2022-03-21 08:37:28
重載貨車用緩沖器選型的研究及分析
鐵道車輛(2021年4期)2021-08-30 02:07:14
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于PCI Express總線的xHC與FPGA的直接通信
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
分簇結(jié)構(gòu)向量寄存器分配策略研究*
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
河南科技(2014年16期)2014-02-27 14:13:22
面向TIA和緩沖器應(yīng)用的毫微微安偏置電流運(yùn)放可實(shí)現(xiàn)500MHz增益帶寬
車輛緩沖器故障及選型
——以冶金企業(yè)為例
河南科技(2011年8期)2011-10-26 07:12:30
镇江市| 兴化市| 嘉禾县| 富源县| 泸水县| 迁安市| 长沙县| 读书| 鸡西市| 凌云县| 澳门| 孝昌县| 怀安县| 南投市| 萝北县| 大同市| 同心县| 荣昌县| 奉节县| 宝丰县| 锡林郭勒盟| 修武县| 新泰市| 新昌县| 广灵县| 丰都县| 迁西县| 玉山县| 万全县| 界首市| 榆中县| 乐安县| 托克逊县| 陆丰市| 武强县| 石台县| 双峰县| 武定县| 金塔县| 迁安市| 东台市|