www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀] 摘要:Nand Flash以其優(yōu)越的特性和更高的性價(jià)比,在現(xiàn)代數(shù)碼產(chǎn)品中得到了廣泛的應(yīng)用。在片上系統(tǒng)芯片中集成Nand Flash控制器成為一種趨勢。本文提出了在一款基于ARM7TDMI CPU CORE的片上系統(tǒng)( SoC)芯片中的Nand Fl

    摘要:Nand Flash以其優(yōu)越的特性和更高的性價(jià)比,在現(xiàn)代數(shù)碼產(chǎn)品中得到了廣泛的應(yīng)用。在片上系統(tǒng)芯片中集成Nand Flash控制器成為一種趨勢。本文提出了在一款基于ARM7TDMI CPU CORE的片上系統(tǒng)( SoC)芯片中的Nand Flash控制器實(shí)現(xiàn)方案。通過直接內(nèi)存存取(DMA)的數(shù)據(jù)傳輸方式,使Nand Flash的數(shù)據(jù)傳輸速率得到了一定提高,滿足了實(shí)際應(yīng)用的設(shè)計(jì)要求。該設(shè)計(jì)方法已通過了RTL級(jí)驗(yàn)證、FGPA驗(yàn)證,并在實(shí)際芯片的演示樣機(jī)上得到了具體實(shí)現(xiàn)。

關(guān)鍵詞:片上系統(tǒng);Nand Flash;直接內(nèi)存存取

1 引 言

    Flash因?yàn)榫哂蟹且资约翱刹脸栽跀?shù)碼相機(jī)、手機(jī)、個(gè)人數(shù)字助理( PDA)、掌上電腦、MP3播放器等手持設(shè)備中得到廣泛的應(yīng)用。自1989年東芝公司發(fā)表了Nand Flash結(jié)構(gòu)以來, Nand Flash以其相對(duì)于Nor Flash具有更小的體積,更快的寫入和擦除速度,更多次的可擦除次數(shù),以及更低廉的每bit價(jià)格得到了迅速發(fā)展。大容量的Nand Flash特別適合現(xiàn)在數(shù)碼設(shè)備中大數(shù)據(jù)量的存儲(chǔ)攜帶,可以降低成本,提高性能。

ARM7TDMI是世界上廣泛使用的32位嵌入式RISC低端處理器內(nèi)核,在基于ARM7TDMI內(nèi)核的SoC( System on Chip )芯片中集成Nand Flash控制器將大大擴(kuò)寬芯片應(yīng)用范圍、降低芯片成本、提升產(chǎn)品性能。但是,Nand型閃存的使用相對(duì)于Nor型閃存在硬件設(shè)計(jì)和軟件控制上都有相當(dāng)?shù)碾y度,值得在技術(shù)上進(jìn)一步探索和研究。

2 Nand Flash的結(jié)構(gòu)特點(diǎn)對(duì)其讀寫的限制

   筆者選用的Nand Flash是東芝TC58512FT(見圖1) ,該款的Nand Flash 以528個(gè)byte 組成一個(gè)頁(page) , 32個(gè)頁組成一個(gè)塊( block) ,由4096個(gè)塊組成整個(gè)Flash存儲(chǔ)器。在每頁中前512bytes是用于存儲(chǔ)數(shù)據(jù),而后16bytes則用于存放ECC數(shù)據(jù)校驗(yàn)碼,稱為OOB(Out of Bank)區(qū)。對(duì)Nand Flash讀出和寫入是以頁為單位,而對(duì)其擦除則是以塊為單位,在存儲(chǔ)組織上和硬盤采用的方式類似。在讀出和寫入時(shí)數(shù)據(jù)量都必須是頁大小的整數(shù)倍,這一點(diǎn)上和NorFlash可以隨機(jī)讀寫的方式完全不同,但對(duì)于大數(shù)據(jù)量的讀寫而言這正是Nand Flash其優(yōu)點(diǎn)的體現(xiàn)。

   基于Nand Flash特殊的組織結(jié)構(gòu),在設(shè)計(jì)時(shí)考慮了一種適合其讀寫按單位大小特點(diǎn)的傳輸方式,即利用DMA(DirectMemory Access)方式,每次讀寫配置DMA通道,使傳輸一整頁的數(shù)據(jù)量。在傳輸過程中, DMA 模塊占用總線,傳輸完成后,釋放總線。因?yàn)镈MA地?cái)?shù)據(jù)傳輸效率要高于CPU CORE通過直接向Flash發(fā)送指令然后讀寫Nand Flash I/O口數(shù)據(jù),所以這樣的設(shè)計(jì)有利于提高讀寫速度,從而提高Nand Flash控制器性能。

圖1 TC58512FT 512M-bit   Nand Fla sh組織結(jié)構(gòu)圖

3 Nand Flash控制器的結(jié)構(gòu)和工作流程

  如圖2所示,Nand Flash控制器和DMA控制器(DMAC) 都是AMBA (ARM 總線標(biāo)準(zhǔn)) 高速總線AHB上的master模塊,都包含符合AMBA標(biāo)準(zhǔn)的總線接口模塊與之交互工作。

圖2 Nand Flash控制器和DMA模塊組織結(jié)構(gòu)圖

Nand Flash控制器包含總線接口模塊,控制狀態(tài)機(jī)轉(zhuǎn)換的狀態(tài)控制模塊,用以緩沖數(shù)據(jù)、收發(fā)命令和狀態(tài)字的寄存器組,提供ECC校驗(yàn)糾錯(cuò)碼的ECC算法編程/解碼器模塊和直接控制“裸”Nand Flash體的接口模塊。

   總線接口模塊負(fù)責(zé)接受ARM CORE(CPU核)發(fā)送的指令,將收發(fā)數(shù)據(jù)送至相應(yīng)數(shù)據(jù)寄存器和指令寄存器,并將狀態(tài)寄存器內(nèi)容返回給CORE。寄存器組負(fù)責(zé)整個(gè)Flash控制器的控制工作,包含指令、狀態(tài)、數(shù)據(jù)、錯(cuò)誤地址寄存器等等,是控制器的核心。ECC算法編程/解碼器模塊提供校驗(yàn)功能,提供糾錯(cuò)信息。

   狀態(tài)控制模塊提供包括命令字發(fā)送狀態(tài)組、地址發(fā)送狀態(tài)組、讀狀態(tài)組、寫狀態(tài)組共21種Nand Flash狀態(tài)的翻轉(zhuǎn),用以發(fā)出對(duì)Nand flash讀寫控制信號(hào)。與Nand Flash直接連接的接口模塊提供Nand Flash體工作電壓、使能和動(dòng)作時(shí)所需的相應(yīng)的電平狀態(tài),例如圖3所示讀時(shí)序要求。該模塊受到狀態(tài)機(jī)控制模塊的控制。該控制器對(duì)電平的控制 簡化了軟件工作,驅(qū)動(dòng)軟件不必再按照讀寫時(shí)序配置繁瑣的控制電平。

圖3 Nand Flash讀時(shí)序圖
 
以從Nand Flash中讀取一頁數(shù)據(jù)塊到內(nèi)存首地址0x30000000為例,分析該控制器的工作過程。首先,由ARM CORE發(fā)出配置DMA某一通道的指令,配置DMA源地址寄存器為Nand Flash數(shù)據(jù)寄存器地址,目標(biāo)地址寄存器為0x30000000,配置DMA _Control、DMA _ Config 寄存器, 設(shè)定DMA傳輸?shù)腂urst傳輸大小、數(shù)據(jù)寬度、總數(shù)據(jù)量(應(yīng)為頁大小512bytes)等等并使能該通道,等待其他master模塊發(fā)送的請(qǐng)求信號(hào);其次,配置Nand Flash控制器的地址寄存器(指定從Flash 中哪一頁讀取數(shù)據(jù)) 和Nand _ Config 寄存器; 最后, 發(fā)送讀命令字0x80000000,向DMAC發(fā)出傳輸請(qǐng)求信號(hào)。一旦請(qǐng)求被接受,DMAC占用AHB總線,開始高速塊傳輸。

Nand Flash控制器不斷從Nand Flash體中通過8位I/O口分4次讀取32位數(shù)據(jù)放置到Flash數(shù)據(jù)寄存器中,DMA從該數(shù)據(jù)寄存器中讀取數(shù)據(jù)到DMA數(shù)據(jù)緩沖fifo中。當(dāng)fifo內(nèi)數(shù)據(jù)量達(dá)到設(shè)定的Burst大小時(shí),運(yùn)送至指定內(nèi)存地址, DMA數(shù)據(jù)計(jì)數(shù)器減1,然后繼續(xù)從Nand Flash數(shù)據(jù)寄存器中讀取數(shù)據(jù),填充DMA數(shù)據(jù)緩沖區(qū),直至計(jì)數(shù)器至0,即完成預(yù)先設(shè)定搬運(yùn)數(shù)量, DMA釋放總線,這樣就完成一頁數(shù)據(jù)的讀取工作。如果繼續(xù)讀,則需要由CORE重新發(fā)起命令,配置DMA和Nand Flash各寄存器。當(dāng)然,DMAC和Nand Flash必須用同一個(gè)HCLK進(jìn)行同步,保持模塊間動(dòng)作的一致。而向Nand Flash中寫數(shù)據(jù),控制過程大致相同,數(shù)據(jù)流方向相反。

相比與直接由CORE 發(fā)送命令字給NandFlash,然后直接從I/O 口讀寫數(shù)據(jù)的工作方式而言,通過DMA方式的傳輸,效率明顯要高。特別在連續(xù)讀取大批量數(shù)據(jù)的情況下,這種工作方式優(yōu)點(diǎn)能更好的體現(xiàn)。在實(shí)際產(chǎn)品應(yīng)用中(如數(shù)碼照片的存取) ,讀寫數(shù)據(jù)量一般都是頁大小的上千倍,所以這樣的設(shè)計(jì)有助于提高實(shí)用性。出于SOC芯片面積和功耗的考慮,簡化了通用控制器的一些功能,如識(shí)別芯片型號(hào)。因?yàn)樵诰唧w應(yīng)用時(shí),具體的NandFlash型號(hào)是確定的,只需在驅(qū)動(dòng)開發(fā)時(shí)跳過這一步,直接填上具體已知的信息即可。

4 模塊驗(yàn)證和應(yīng)用開發(fā)

4. 1 模塊驗(yàn)證
該模塊已經(jīng)先后通過了帶有ARM7TDMI CORE的SUN服務(wù)器上進(jìn)行寄存器級(jí)(RTL)仿真、后仿真驗(yàn)證和在ARM FPGA開發(fā)板上的驗(yàn)證,并在實(shí)際芯片演示樣機(jī)上得到了具體的應(yīng)用驗(yàn)證。編寫測試向量( Testbench)在SUN服務(wù)器上進(jìn)行VCS驗(yàn)證,截圖見圖4。圖中信號(hào)內(nèi)容為系統(tǒng)總線信號(hào)。


圖4 SUNSERVER Nand Fla sh控制器RTL信號(hào)仿真時(shí)序圖
  
在ARM FPGA開發(fā)板上,使用ADS開發(fā)套件和ARM Multi - ICE進(jìn)行驗(yàn)證程序的屏幕截圖見圖5。



圖5 ARM ADS開發(fā)系統(tǒng)界面
  
內(nèi)存區(qū)內(nèi)顯示的是用C語言編寫的測試程序。一般過程是先擦除Flash某塊地址的數(shù)據(jù),然后向該地址寫入一定量數(shù)據(jù),再將其讀出,在內(nèi)存區(qū)就可以看到開發(fā)板上SDRAM或者SRAM的內(nèi)容,該內(nèi)容應(yīng)該和寫入的數(shù)據(jù)完全一致,如果一致則讀寫都成功。ADS開發(fā)套件的使用在此就不展開描述。

4. 2 關(guān)于bootloader和從Nand Flash啟動(dòng)系統(tǒng)
由于Nand Flash生產(chǎn)廠家保證第一個(gè)block是available block (可用塊) ,可以把啟動(dòng)代碼( bootloader)放置在Flash的第一個(gè)page內(nèi),以實(shí)現(xiàn)從NandFlash啟動(dòng)系統(tǒng)。設(shè)置外部跳線,選擇系統(tǒng)從Nand Flash啟動(dòng)方式。當(dāng)帶有芯片的系統(tǒng)板上電啟動(dòng)時(shí), DMAC默認(rèn)占用系統(tǒng)總線,自動(dòng)從Nand Flash的第一個(gè)page搬運(yùn)數(shù)據(jù)(即事先燒入的bootloader程序)到芯片片內(nèi)的ESRAM,并從ESRAM開始順序執(zhí)行bootloader語句。
該段代碼用匯編語言編寫,完成的主要工作是:
(1) 片外存儲(chǔ)控制器( EMI)的初始化,使內(nèi)存可讀寫;
(2) 搬運(yùn)存儲(chǔ)在Nand Flash中的操作系統(tǒng)Kernel代碼到較大容量的內(nèi)存(一般是SDRAM) ,然后設(shè)置remap寄存器,使Kernel所在內(nèi)存地址指向零,以滿足中斷向量表必須從零地址開始存放的要求;
(3) 最后設(shè)置程序計(jì)數(shù)器( PC)到零,從Kernel代碼開始運(yùn)行,真正的開始啟動(dòng)操作系統(tǒng)。
上述應(yīng)用在實(shí)際芯片的演示樣機(jī)中已經(jīng)得到具體的實(shí)現(xiàn),達(dá)到了預(yù)期的設(shè)計(jì)目的。

5 結(jié)束語

本文提出了在一款片上系統(tǒng)( SoC)芯片設(shè)計(jì)中的Nand Flash控制器實(shí)現(xiàn)方案,并介紹了驗(yàn)證過程和應(yīng)用。該設(shè)計(jì)方案已在成品芯片的演示樣機(jī)的應(yīng)用中得到證實(shí),具有相當(dāng)?shù)膽?yīng)用價(jià)值,達(dá)到了預(yù)期設(shè)計(jì)效果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

我們知道 Flash 讀時(shí)序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡講過《串行NOR Flash的Continuous read模式》,Continuous r...

關(guān)鍵字: CMD ADDR Flash

為增進(jìn)大家對(duì)控制器的認(rèn)識(shí),本文將對(duì)影響控制器可靠性的因素以及控制器的常見故障和維修方法予以介紹。

關(guān)鍵字: 控制器 指數(shù) 集成電路

為增進(jìn)大家對(duì)控制器的認(rèn)識(shí),本文將對(duì)溫度控制器的分類以及溫度控制器的功能予以介紹。

關(guān)鍵字: 溫度控制器 指數(shù) 控制器

為增進(jìn)大家對(duì)控制器的認(rèn)識(shí),本文將對(duì)控制器結(jié)構(gòu)類異常以及常見的幾種電機(jī)控制器予以介紹。

關(guān)鍵字: 控制器 指數(shù) 電機(jī)

據(jù)業(yè)內(nèi)消息,近日三星在一年一度的技術(shù)日研討會(huì)上公布了未來的3大規(guī)劃方向,其中包括1.4納米的代工制程工藝以及包括NAND、DRAM在內(nèi)的各類內(nèi)存和無晶圓廠的整體解決方案。

關(guān)鍵字: 存儲(chǔ) 三星 NAND DRAM

NAND Flash閃存芯片已經(jīng)低迷一年了,但看起來對(duì)應(yīng)的SSD價(jià)格還沒觸底。知名分析機(jī)構(gòu)Trendfocus分析師在最新報(bào)告中指出,盡管主要顆粒廠已經(jīng)開始削減產(chǎn)能,然而存儲(chǔ)芯片和固態(tài)硬盤庫存過剩的情況極其嚴(yán)重,他甚至預(yù)...

關(guān)鍵字: SSD NAND PCIE 固態(tài)硬盤

Flash Memory 是一種非易失性的存儲(chǔ)器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。

關(guān)鍵字: Flash 存儲(chǔ)器 嵌入式系統(tǒng)

在如今大數(shù)據(jù)時(shí)代,NAND閃存無疑是數(shù)據(jù)存儲(chǔ)的奠基者。不管是手機(jī)、電腦、家電還是汽車、安防等行業(yè),都少不了NAND閃存的身影,其重要性可見一斑。

關(guān)鍵字: NAND 閃存 密度

一直以來,MCU微控制器都是大家的關(guān)注焦點(diǎn)之一。因此針對(duì)大家的興趣點(diǎn)所在,小編將為大家?guī)鞰CU微控制器的相關(guān)介紹,詳細(xì)內(nèi)容請(qǐng)看下文。

關(guān)鍵字: MCU 微控制器 控制器

近日,市場研究機(jī)構(gòu)TrendForce發(fā)布的最新報(bào)告顯示,在2022年二季度全球NAND Flash閃存市場,三星電子但仍穩(wěn)居第一,SK海力士則超越鎧俠躍居第二,這兩家韓國閃存廠商合力拿下了全球52.9%的市場份額。具體...

關(guān)鍵字: NAND NAND Flash 三星 SK海力士

消費(fèi)電子

95864 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉