<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 用NiosII搭建的固態(tài)盤(pán)設備系統

用NiosII搭建的固態(tài)盤(pán)設備系統

作者:北京航空航天大學(xué) 楊鑫 刑小地 徐偉俊 夏宇聞 時(shí)間:2008-07-10 來(lái)源:?jiǎn)纹瑱C與嵌入式系統應用 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/85542.htm

  隨著(zhù)電子技術(shù)的發(fā)展,人們不斷地追求更好的新型存儲設備。目前海量存儲領(lǐng)域中的主流產(chǎn)品非莫屬,而則被認為是一種最有可能取代的全新解決方案。與相比,其主要的優(yōu)勢在于能夠達到更高速度、更小體積、更低功耗、更小噪聲、更高可靠性,同時(shí)與硬盤(pán)一樣使用方便。

  廣義上講,設備包括所有使用半導體芯片作為存儲介質(zhì)的存儲設備,例如使用動(dòng)態(tài)RAM存儲數據的某些特定設備,或是CF/SD/MMC卡等同樣使用存儲數據但使用了其他接口的存儲設備;但狹義上講,僅指使用NAND型存儲數據,使用/S/SCSI等接口,在行為上與硬盤(pán)完全一致的存儲器。在下文中,固態(tài)盤(pán)一詞僅指狹義上的固態(tài)盤(pán)。本文介紹的是一種使用接口的固態(tài)盤(pán)的實(shí)現方法。

  1 系統設計

  系統對外的主要功能是通過(guò)ATA接口完成數據的讀/寫(xiě),與NAND型芯片間的數據交換是通過(guò)緩存來(lái)完成的,對閃存芯片的讀/寫(xiě)操作由系統內部完成。

  ATA協(xié)議中含有專(zhuān)門(mén)針對閃存而設計的CFA指令部分,包含了閃存擦寫(xiě)等指令內容,CF(Compact Flash)卡即使用了該命令集;而普通硬盤(pán)使用的ATA接口一般不使用該命令集,操作中只涉及數據的讀/寫(xiě)操作和一些輔助特性的設置。因此在固態(tài)盤(pán)設計中不能利用CFA指令將ATA接口直接轉接至閃存接口,必須在系統內部自動(dòng)處理與閃存相關(guān)的操作,即通過(guò)系統的內部處理向上隱藏這一操作細節。

  可以在系統中通過(guò)數據緩存來(lái)把ATA端操作和閃存端操作分離開(kāi)來(lái),這樣就可以方便地解決傳輸協(xié)議的轉換和管理問(wèn)題?;谶@種設計思路,綜合考慮閃存的管理、與ATA協(xié)議的銜接等問(wèn)題,可以將實(shí)現系統時(shí)的主要問(wèn)題歸結為如下兩個(gè)方面:

 ?、?數據緩存管理,主要面對與主機端數據交換如何發(fā)生的問(wèn)題,包括緩存數據的建立、查詢(xún)、維護、失效、銷(xiāo)毀等問(wèn)題。

 ?、?數據存儲管理,主要面對數據在閃存中的物理存儲問(wèn)題,包括均衡磨損、壞塊映射等問(wèn)題。

  由此得到的系統邏輯結構框圖如圖1所示。

圖1 固態(tài)盤(pán)設備系統邏輯結構框圖

  在具體的實(shí)現中,系統使用獨立的硬件接口完成ATA接口控制和NAND型閃存控制;使用大容量SDRAM芯片作為數據緩存,由Nios處理器負責調度數據流;使用Avalon總線(xiàn)連接所有模塊,提供快速響應的控制連接和高帶寬的數據連接。

  在Nios上運行的軟件負責所有組件的控制。由于需要確保響應時(shí)間,軟件中不使用包括實(shí)時(shí)操作系統在內的任何嵌入式操作系統,所有軟件直接貼近硬件事件設計,重要事件采用中斷響應,普通事件采用輪詢(xún)響應。

  2 系統硬件設計

  系統采用SOPC的設計方式,使得硬件系統獲得相當高的靈活度;而將所有控制邏輯集成在一個(gè)FPGA內部的設計方法,在增強了系統可靠性的同時(shí),也降低了對外部板級電路的設計要求。系統除FPGA芯片以外,還使用了數據存儲用NAND型閃存芯片、緩存用SDRAM、ATA接口連線(xiàn)以及Nios程序的代碼存儲/運行的相關(guān)芯片。

  2.1 Nios系統簡(jiǎn)介

  一個(gè)基于Nios的SOPC系統主要包括Nios處理器、Avalon總線(xiàn)結構和其他通過(guò)總線(xiàn)互連的組件模塊。

  Nios處理器主要分為兩代,即Nios處理器和處理器?,F在廣泛使用的是處理器,下文均是針對處理器。最新的Avalon總線(xiàn)標準是一套擁有AvalonMM和AvalonST兩套分支標準的SOPC總線(xiàn)規范。下文中Avalon總線(xiàn)一詞泛指這兩套規范。在A(yíng)ltera提出的SOPC設計概念當中,兩者將分別用于不同的數據應用,因此兩者的基本結構差異很大:AvalonMM接口是一套互聯(lián)式總線(xiàn)接口,主要用于多節點(diǎn)的互聯(lián);而AvalonST接口是一種單向點(diǎn)對點(diǎn)的接口,主要用于單向高速數據流的傳輸。在SOPC設計中,可以針對不同需求將二者結合起來(lái)使用,以提高設計的工作性能。由于A(yíng)valonST接口是最近剛剛提出的,目前廣泛使用的是AvalonMM接口,在一般設計中,完全能夠提供足夠的傳輸帶寬。

  2.2 硬件平臺結構

  硬件系統即FPGA內部基于NiosII處理器的SOPC系統,包括ATA控制器、NAND型閃存控制器、DMA控制器、2個(gè)SDRAM控制器、CFI接口閃存控制器以及其他輔助組件等,其結構框圖如圖2所示。

圖2 固態(tài)盤(pán)設備硬件系統結構

  在該結構中,使用一塊SDRAM作為NiosII處理器的程序運行空間,使用一塊CFI接口的閃存作為NiosII處理器的軟件代碼的存儲空間,其他I/O和其他組件包括了定時(shí)器、調試端口以及用于顯示系統狀態(tài)的PIO端口等??偩€(xiàn)DMA控制器用于完成NAND型閃存與緩存空間之間的數據交換。ATA控制器則負責ATA接口的實(shí)現,并根據配置參數利用自帶的DMA控制器直接完成與緩存之間的數據交換。NiosII處理器通過(guò)控制總線(xiàn)DMA控制器和ATA控制器來(lái)管理整個(gè)系統的數據流,實(shí)現靈活的管理策略。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>