999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

L-DSP 片上Flash 控制器設計與實現(xiàn)

2020-11-11 08:02:06鄒望輝
智能計算機與應用 2020年6期

曹 韜, 鄒望輝, 汪 東

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

0 引 言

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

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

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

1 Flash 控制器設計方案與實現(xiàn)

控制器包括總線接口、預取單元、讀控制、壞塊替換和控制寄存器五個部分,其結構如圖1 虛線內所示。

圖1 Flash 控制器結構圖Fig. 1 Structure diagram of Flash controller

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

圖2 Flash 結構圖Fig. 2 Structure diagram of Flash

1.1 控制器接口設計

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

表1 總線接口信號列表Tab. 1 Bus interface signal list

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

1.2 讀控制邏輯設計

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

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

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

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

1.3 指令預取設計

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

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

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

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

圖5 預取緩沖結構Fig. 5 Pre-fetch buffer structure

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

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

1.4 壞塊替換設計

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

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

圖7 壞塊替換結構Fig. 7 Structure of bad block replacement

帶有初始壞塊替換的Flash 控制器訪問流程如圖8 所示。

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

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

2 功能驗證與綜合

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

2.1 讀控制邏輯驗證

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

表2 同頻率不同讀速率下的運行時間Tab. 2 Run time at different read rates and the same frequency

2.2 指令預取驗證

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

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

表3 默認讀取速率下運行時間Tab. 3 Run time at default read rate

表4 最快讀取速率下運行時間Tab. 4 Run time at the fastest read rate

2.3 壞塊替換驗證

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

2.4 DC 綜合

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

3 FPGA 原型驗證

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

圖9 壞塊地址轉換Fig. 9 Address translation of bad block

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

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

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

圖12 運行結果Fig. 12 Operation result

4 結束語

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

主站蜘蛛池模板: 免费午夜无码18禁无码影院| 亚洲AV永久无码精品古装片| 中国毛片网| 亚洲婷婷丁香| 国产一级毛片高清完整视频版| 亚洲视频二| 国产99精品久久| 亚洲国产精品久久久久秋霞影院| 日韩av手机在线| 国产男女免费视频| 一级毛片网| 伊人久久久大香线蕉综合直播| 日本在线欧美在线| 国产精品成| 久久毛片免费基地| 99精品在线看| 成人免费网站在线观看| 国产成人久久综合一区| 欧美亚洲国产精品第一页| 日本色综合网| 手机永久AV在线播放| 国产色婷婷视频在线观看| 国产拍在线| 国产成人无码AV在线播放动漫 | 亚洲国产精品无码久久一线| 亚洲国产精品VA在线看黑人| 国产成人在线无码免费视频| 草草影院国产第一页| 精品视频一区二区三区在线播| 亚洲成a人在线观看| 国产高清色视频免费看的网址| 五月婷婷伊人网| 浮力影院国产第一页| 国产无遮挡猛进猛出免费软件| 欧美综合区自拍亚洲综合天堂| 动漫精品中文字幕无码| 国产微拍一区二区三区四区| 国产精品jizz在线观看软件| 欧美中出一区二区| 免费xxxxx在线观看网站| 无码专区在线观看| 日韩亚洲综合在线| 无码一区二区三区视频在线播放| 国产精品熟女亚洲AV麻豆| 国产成人精品午夜视频'| 福利片91| 国产噜噜噜视频在线观看| 第一区免费在线观看| 尤物亚洲最大AV无码网站| 精品一区二区三区水蜜桃| 亚洲性影院| 日本a∨在线观看| 97se亚洲综合不卡| 欧洲成人在线观看| 亚洲国产精品无码久久一线| 狠狠色综合网| 黑人巨大精品欧美一区二区区| 亚洲AV免费一区二区三区| 国产精品太粉嫩高中在线观看| 国产成人喷潮在线观看| 久久青青草原亚洲av无码| 婷婷六月在线| 好吊妞欧美视频免费| 亚洲一道AV无码午夜福利| 视频在线观看一区二区| 欧美色综合网站| 日韩欧美国产三级| 国产精品蜜芽在线观看| 精品国产中文一级毛片在线看| 97久久免费视频| 国产男女XX00免费观看| 久久精品人妻中文系列| 欧美精品二区| 国产成人精品高清不卡在线 | 国产亚洲美日韩AV中文字幕无码成人 | 国产视频一二三区| 国产亚洲欧美日韩在线一区二区三区| 日韩精品专区免费无码aⅴ| 一级做a爰片久久免费| 久久久久国产精品熟女影院| 国产精品v欧美| 国产成人h在线观看网站站|