相變化內存原理分析及設計使用技巧
在一個典型的系統中,非揮發(fā)性內存和RAM內存都會被用到,前者用于保存編碼,后者用作高速緩存,有時也用于儲存其它編碼。為了避免使程序員處理不同類型的記憶體,操作系統隱藏了各類內存間的差異,以對其它程序透明的方式,執(zhí)行對揮發(fā)性內存和非揮發(fā)性內存的管理任務,而這大大增加了系統的復雜程度。
即便有了這種輔助功能,當使用只讀編碼儲存空間儲存編碼,以只讀數據儲存空間儲存數據時,程序員還是受限某些限制。如果編碼或數據量大于內存的容量,即便超出一個字節(jié),那部分儲存空間就必須擴大一倍,導致價格大幅提升。在某些狀況下,使用基于相變化內存的系統就可以避免這個問題。
相變化內存改變了游戲規(guī)則。編碼和數據不必再分開儲存在非揮發(fā)性內存和RAM的兩個容量固定的模塊內。編碼和數據可以保存在一個內存內。對于小型系統的設計人員,這種方法可以減少芯片數量,降低功耗。讀寫內存和只讀存儲器之間不再有固定的界限,對于小型系統和大型系統的設計人員是莫大的福音。
閃存的復雜之處
閃存很難管理。曾有設計工程師形容管理閃存的過程是一種“非常復雜的舞蹈”。曾經采用NAND或NOR閃存設計系統的工程師可以證實這點,閃存管理需要考慮許多因素,例如:損耗均衡、讀寫同步和壞塊管理,這使閃存管理任務變得極其復雜。
與基于閃存的設計相比,相變化內存帶來的問題非常少。相變化內存支持位元組修改功能,因此沒有NAND和NOR閃存的寫入之前需先擦除區(qū)塊的步驟,因而大幅簡化了寫入操作。在相變化內存內,邏輯1可以變?yōu)檫壿?,反之亦然;所以在寫入操作之前無需進行一次擦除操作,相變化內存的寫入操作更類似于RAM,而不像NAND或NOR閃存。
相變化內存寫入操作速度快,無需NAND或NOR的擦除操作。因此,不再需要同步讀寫功能,程序設計師幾乎不必再寫專門的編碼,以防止在最新的寫入操作附近發(fā)生讀取操作。
相變化內存的隨機尋址類似于NOR或SRAM,非常符合處理器的要求。此外,相變化內存不需要NAND閃存的錯誤校驗功能,因為相變化內存能夠保證所有位保存的數據與寫入的數據完全相同。
相變化內存根本不需要閃存管理所需的全部算法,例如:損耗均衡和壞塊管理。有人稱相變化內存是“最適合韌體/軟件工程師用的非揮發(fā)性內存”。相變化記憶體另外還有一個好處:編碼儲存區(qū)和數據儲存區(qū)之間的界限比以前更加靈活。在今日的設計中,每個內存應用都需要自己獨有的內存拓撲,通常是:
_NOR和SRAM
_NOR+NAND和SRAM或PSRAM
_NOR或NAND+DRAM或移動SDRAM
這些系統很少用非揮發(fā)性內存保存臨時數據,也從來不用RAM保存編碼,因為在如果沒電RAM就會失去全部內容。相變化內存有助于簡化這些配置,保存數據和編碼可以只用單一相變化內存芯片或一個PCM數組,在一般情況下就不再需要將非揮發(fā)性內存芯片搭配RAM芯片使用。
相變化內存還有一個好處,程序員現在只需考慮編碼量和數據量,而不必擔心編碼和數據的儲存空間是兩個分開的儲存區(qū)。如果數據儲存空間增加幾個字節(jié),還可以從編碼儲存空間“借用”儲存空間,這在除相變化內存以外的其它任何拓撲中都是不可能的。
相變化內存的工作原理
評論