前面的幾篇文章已經說明了pcm的特性,它可以和傳統的dram構成混合記憶體提高計算機系統的效能的同時降低記憶體功耗。然而仍然有人提出將pcm用於外存,這種非易失的新型儲存器用於外存必將大幅提高計算機的速度。但是鑑於pcm的**較高,所以可以使用pcm和flash的混合外存。
首先介紹flash,快閃儲存器是一種讀寫速度快、低功耗、耐高溫且無雜訊的新型儲存裝置。快閃儲存器分為nor型和nand型,不同型別的快閃儲存器具有不同的特點,nor型隨機性比較好,但是讀和擦除的速度慢,nand型的優點是寫速度快,但是隨機性差。另外快閃儲存器具有讀寫次數的限制,一般為10的4-5次方左右。快閃儲存器必須有擦除步驟,其擦除的過程就是將所有的空閒塊全部置「1」,因為快閃儲存器的特點是只能寫「0」,因此寫資料的過程也就是寫「0」的過程。為了延長快閃儲存器的壽命,需要一種負載均衡策略。
均衡演算法主要包括了兩種策略,動態和靜態均衡演算法。動態演算法是儲存有資料的塊可能會不斷進行更新,當該塊到達一定的閾值的時候就將該快重新定位到另乙個資料塊,拷貝相應的資料資訊並改變各個鍊錶資訊。這種動態的策略保證了同乙個資料塊不會被頻繁的訪問。但是還有乙個問題,有些資料塊是很少更新甚至不會更新的(比如**段),對於這些資料占用的段不會被多次寫。為了更進一步的平衡寫次數,還需要一種靜態分配策略。最簡單的靜態分配策略就是記錄每個塊發生更新的次數,當這些塊更新的總次數到達一定的閾值的時候就將」冷資料塊「(寫次數少的塊)和「熱資料
」塊進行互換;從而到達負載均衡的目的。還有一種策略是建立起兩個空閒資料塊鍊錶,乙個是較少更新空閒表,乙個是較頻更新空閒表。當發生資料更新的時候,物理塊也會發生變化,這樣就會使冷的資料熱起來,熱的資料塊冷下去。
pcm作為儲存器也可以使用與flash同樣的方式。另外由於pcm的寫不是以塊為單位的,同時pcm在寫的時候也沒必要先擦除(全部置1)。為了降低pcm寫的數量,在寫盤的時候,先執行讀操作,將
讀出的資料
與將要寫入的資料
進行比較,修改不同的位。為了進一步減少寫的數量,可以設定乙個標誌位代表資料是否相反。比如讀出的資料與將要寫入的資料的海明距離大於n/2,則將該標誌位置1,以保證修改的資料永遠小於n/2。
IoT STM32 Flash 均衡儲存演算法
在實際應用中,經常需要在程式執行過程中儲存或讀取一些資料,這些資料在工作中經常會變化,而且掉電後也不能丟失,所以需要及時地進行儲存,儲存這些資料常用的儲存器是 eeprom。stm32 雖然本身不帶 eeprom,但是它支援自程式設計技術,可以利用內部 flash 來模擬 eeprom,這樣不僅簡化...
Nginx的用途和負載均衡演算法
nginx應該是現在最火的web和反向 伺服器,沒有之一。她是一款誕生於俄羅斯的高效能web伺服器,尤其是在高併發的情況下,相較於apache,有優異的表現。那除了負載均衡,她還有什麼其他的用途呢。nginx擅長處理靜態檔案,是非常好的 檔案伺服器。把所有的靜態資源放到nginx上,可以使應用動靜分...
FLASH變數和FLASH計 次 器的構成
flash變數和flash計 次 器的構成 由於flash寫入次數和寫入擦除等待時間等方面的約束,flash變數和flash計數器很難構成.因為有 0 不能變 1 的束縛,所以flash變數不可以定位到某個儲存單元位址上.同理flash計數器也一樣.仔細分析 flash二次寫入技術 後不難看出,若稍...