a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > MAXQ處理器的非易失存儲功能

MAXQ處理器的非易失存儲功能

作者: 時間:2016-09-12 來源:網絡 收藏

為滿足客戶對非易失數據存儲的要求,設計師通常會使用一個串行EEPROM。這些EEPROM器件體積很小、價格便宜、而且在市場上已經被長期使用,設計工程師使用這些器件非常便利。但是在當今對成本非常敏感的市場領域,增加一個并不昂貴的EEPROM可能會使設計超出預算。

本文引用地址:http://www.j9360.com/article/201609/303484.htm

很多使用閃存存儲程序代碼,使用靜態RAM存儲數據信息。盡管充分利用閃存未使用的部分作為非易失數據存儲很有吸引力,但是傳統的哈佛架構制約了這種應用。架構屬于哈佛架構,具有獨立的代碼和數據總線。但器件包含的硬件部分可以實現偽馮諾依曼架構,如同訪問數據空間一樣訪問代碼空間。這種額外的多功能性,結合的效用函數,可實現存儲器的擦寫服務,為完整的可讀寫子系統提供了解決方案。

關于閃存的基本考慮

閃存是一種電子可擦除存儲。通常也被認為是“主讀”。簡言之,盡管閃存是可寫的,但數據更新并不會很頻繁,多數的操作都是讀操作。多數閃存器件從字面意思來講都是可寫的,但每次只能整塊擦除。這使得那些存儲器件通常都不適合用于易變存儲,只適合用作從不改變內容的固定數據存儲。

有兩種類型的閃存:NAND閃存和NOR閃存。NAND閃存用在存儲卡和U盤中。通常,由于數據按時鐘串行傳輸,從NAND器件中讀數據需要數個周期。這種有序的操作使NAND閃存不適合用作程序代碼存儲,因為讀取時間會太長。相反,NOR閃存類似傳統字節寬度或字寬度存儲。讀取NOR閃存就像讀取 ROM器件:先發器件選擇和地址命令,在等待足夠的存取時間之后,從總線上讀取數據。NOR閃存用于MAXQ中。

MAXQ的閃存

MAXQ處理器中使用的閃存單元被擦除時會變成“1”狀態。因此,在擦除后,存儲單元中的每個位置都將包含0xFFFF。對某一存儲位置進行編程會把某些位從“1”變成“0”狀態。為了使被編程過的位重新變回“1”狀態,整個單元必須被擦除。

任何電擦除的存儲器件必須面臨的問題是持久性。根據特定的技術,一個閃存單元在完全失效之前,可以忍耐的擦除次數少達1,000次,多達 1,000,000次。因此,使用閃存做數據存儲的任何應用都必須保證寫操作循環在整個陣列中均勻分布,不允許某一個位置的擦除編程次數比其他位置多很多。

多數閃存器件都允許把之前已經編程過的位置中的沒有編程過的位從“1”變成“0”狀態。例如,對于多數器件,允許對某個位置編程,把數據從 0xFFFE變為0x7FFE,在這個編程過程中,沒有任一個位從“0”變成“1”。然而,MAXQ系列器件中使用的閃存,不允許對已經編程過的位置再編程,即使沒有發生從“0”到“1”的變化。這樣的寫操作會失敗,保持數據在0xFFFE狀態。

MAXQ器件編程受限制的理由如下。正在被編程的存儲單元起初是作為代碼空間的,所以必須很謹慎,禁止對已寫過的位置的任何寫操作。0xFFFF指令指一條無效的源代碼,它不太可能出現在有效的代碼單元內。因此,阻止對已編程過的位置的寫操作能夠幫助保持代碼單元的完整性。

使用MAXQ2000的設計方案

在這篇文章中,我們主要討論一個MAXQ器件:MAXQ2000。這個微處理器具有64kB的程序存儲空間,具體劃分為128個單元,每個單元具有 256個16位的字。下面介紹兩種設計方案。第一種方案適用于信息寫一次后在產品的生命周期內不會再頻繁改動,例如校準數據、版本信息和特征參數等等。第二種方案針對更普通的裝置,這種設計要允許數據頻繁改動,例如使用信息或者詳細記錄等。

方案1

問題:校準數據需要存儲在產品中。產品會一直需要重新校準,所以校準數據必須保存在一個可改寫的存儲空間中。

解決方案:這實際上是可以想象的到的最簡單的情況。MAXQ2000程序存儲空間中預留了兩個單元用于存儲校準數據,一個是字地址0x7E00,另一個是0x7F00。當MAXQ2000第一次收到保存校準數據的命令,它就會檢查這兩個單元并確保它們是空的。校準數據被保存到第一個單元。

當MAXQ2000第二次收到保存校準數據的命令,它會再次檢查這兩個單元。當發現0單元已被使用,它會把校準數據復制到1單元,接著擦除0單元。

當MAXQ2000收到讀校準數據的請求(例如在上電時),它會讀這兩個單元,看哪個正在被使用。沒有被擦除的單元用來配置器件到校準狀態。

這種方案的最主要優點是簡易性。當某些應用需要在上電時作配置時(或者其它恢復配置的情況),這種方法很適用。讀程序會接收到一個字指針,并返回這個地址的內容;寫程序會接收一個字指針,并嘗試對這個地址寫操作。擦除程序會擦除這兩個單元。

這種方案的缺點是:子程序極其不智能。無法判斷寫操作是否成功。假如寫操作失敗了,不會有任何動作來解決問題。為什么這種方案只適用于對已知的空單元寫操作,以上這種限制就是其原因。

方案2

問題:用來跟蹤用電量和其它會經常改變的數據。更新的頻率從一周數次到一天數次。電表是一個很好的應用舉例。

解決方案:在這種情況下即時傳統的EEPROM也需要另求幫助。問題在于:頻繁的更新、和可擦除存儲技術固有的有限電擦除壽命,排除了使用單個 EEPROM頻繁寫擦除操作的可能性。假如這種應用需要每小時更新一次。具有10,000次寫擦除次數限制的EEPROM只能工作一年,遠遠低于電表應用所需的10年壽命設計目標。

這個問題的解決方案是實現“損耗平衡”。也就是指不對單一位置重復寫操作。相反,在整個存儲陣列中執行均勻分布的寫操作。

正是基于此目的,損耗平衡技術被接受,并在閃存存儲設備中使用。它的算法非常復雜難以理解。但對于我們,介紹簡單的機理就足夠了。

在這種設計中,存儲陣列中的數據條目并不是以地址作參考,而是以數據元編號為參考。數據元編號是一個和數據元素一一對應的任意8位數值。所以在這個方案中最大可以有255個數據元(數據元0預留)。每個數據元包含:包括數據元編號和數據元長度的雙字節報頭(圖1);指示1、2、3或者4個16位字的兩位碼,以保留足夠的剩余空間進行錯誤管理。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉