快閃記憶體

快閃記憶體，是一種像-不足之處.區塊抹除.快閃記憶體的一種限制在於即使它可以單一位元組的方式讀或寫入，但是抹除一定是一整個區塊。一般來說都是設定某一區中的所有位元為“1”，剛開始區塊內的所有部分都可以寫入，然而當有任何一個位元被設為“0”時，就只能藉由清除整個區塊來回復“1”的狀態。換句話說快閃記憶體。例如：有一小區塊的值已抹除為1111，然後寫入1110的訊息。接下來這個區塊還可以依序寫入1010、0010，最後則是0000。可是實際上少有演演算法可以從這種連續寫入相容性得到好處，一般來說還是整塊抹除再重寫。儘管快閃記憶體的資料結構不能完全以一般的方式做更新，但這允許它以“標記為不可用”的方式刪除訊息。這種技巧在每單元儲存大於1位元資料的MLC裝置中必須稍微做點修改。記憶耗損.另一項快閃記憶體的限制是它有抹寫迴圈的次數限制等唯讀式應用，這些裝置往往在使用年限內也只會寫入一次或少數幾次而已。讀取幹擾.所使用的快閃記憶體讀取方式隨著時間的推移會導致在同一區塊中相近的記憶單元內容改變。這即是所謂的讀取幹擾。會導致讀取幹擾現象的讀取次數門檻介於區塊被抹除間，通常為100,000次。假如連續從一個記憶單元讀取，此記憶單元將不會受損，而受損卻是接下來被讀取的周圍記憶單元。為避免讀取幹擾問題，快閃記憶體控制器通常會計算從上次抹除動作後的區塊讀取動作總次數。當計數值超過所設定的目標值門檻時，受影響的區塊會被複製到一個新的區塊，然後將原區塊抹除後釋放到區塊回收區中。原區塊在抹除動作後就會像新的一樣。若是快閃記憶體控制器沒有即時介入時，讀取幹擾錯誤就會發生，如果錯誤太多而無法被ECC機制修復時就會伴隨著可能的資料遺失。寫入幹擾.寫入幹擾也被升高，從而造成相鄰的位出錯。快閃記憶體電荷非常不穩定，相鄰儲存電荷的懸浮門間會相互幹擾，造成相鄰懸浮門間的bit錯誤，MLC由於存在4組接近的電壓，與SLC相比更容易受到幹擾。現在的主控韌體已經支援使用異或的方式儘可能的將資料打亂到儘量每個bit之間是互相反轉的方式來儘可能減少這種情況對資料儲存穩定性的干擾低階存取.快閃記憶體晶片的低階介面通常與透過支援外界的定址匯流排行隨機存取的DRAM、ROM、EEPROM等記憶體不同。NOR Flash本身為讀取操作執行，包含讀、寫、解鎖與抹除。NOR Flash.從NOR Flash讀取資料的方式與從RAM讀取資料相近，只要提供資料的位址，資料匯流排就可以正確的匯出資料。基於以上原因，多數微處理器可以將NOR Flash當作原地執行記憶體使用，這意味著儲存在NOR Flash上的程式不需複製到RAM就可以直接執行。由於NOR Flash沒有原生壞區管理，所以一旦儲存區塊發生毀損，軟體或驅動程式必須接手這個問題，否則可能會導致裝置發生異常。在解鎖、抹除或寫入NOR Flash區塊時，特殊的指令會先寫入已繪測的記憶區的第一頁所界定的。與用於隨機存取的ROM不同，NOR Flash也可以用在儲存裝置上；不過與NAND Flash相比，NOR Flash的寫入速度一般來說會慢很多。NOR Flash最常見用途之一就是BIOS ROM晶片。NAND Flash.東芝在1989年發表了NAND Flash架構，這種記憶體的存取方式類似硬碟、記憶卡之類的區塊性儲存裝置，每個區塊由數個頁所構成。一般來說這些頁的大小為512或2048或4096位元組。在各個頁之間彼此的連線區域會有幾個位元組，這些空間用於儲存錯誤修正碼的校驗和。以下是一些典型的區塊大小：讀取與寫入動作可以以“頁”為單位偏移量進行，抹除動作只能以“區塊”為單位偏移量進行。NAND Flash還有一項限制就是區塊內的資料只能序列性的寫入。操作次數則代表“頁”可以被寫入的次數。目前MLC的NOPs是1；而SLC則是4。NAND Flash也需要由裝置驅動程式軟體或分離的控制器晶片來進行壞區管理，例如SD卡內部便包含實行壞區管理與耗損平衡的電路。當一個邏輯區被高階軟體存取時，邏輯區對應到實體區的工作則由驅動程式或控制器進行。標準化.（Open NAND Flash Interface Working Group (ONFI))已為快閃記憶體晶片開發完成一份標準化低階存取介面規格書。這份規格允許並確認了來自不同供應商的快閃記憶體元件間的互通性。《開放式快閃記憶體介面規格書版本1.0》於2006年12月28日釋出。規定著：支援ONFI小組的主要快閃記憶體製造商包含有：海力士、英特爾、美光科技與，也有與快閃記憶體晶片結合元件的主要製造商。一群供應商，包含英特爾、戴爾與微軟成立非揮發性記憶體主控制器介面(Non-Volatile Memory Host Controller Interface (NVMHCI))工作小組。此小組的目的是提供標準的非揮發性記憶體軟硬體程式設計介面，包含有連線到PCI Express匯流排的"快閃快取"元件。NOR型與NAND型快閃記憶體的差異.NOR型與NAND型快閃記憶體最主要的兩個差異點如下：以上兩點是相關的NAND型快閃記憶體研發所做出的設計抉擇。NAND型快閃記憶體發展的一個目標是為了減少所需的晶片面積來實現給定的快閃記憶體容量，從而降低每位元的成本，並推升晶片最大容量，如此就可與磁性儲存裝置相互競爭，如硬碟。NOR和NAND型快閃記憶體由記憶單元間的內部連線結構而得名。NOR型快閃記憶體內部記憶單元以平行方式連線到位元線，允許個別讀取與程式化記憶單元。這種記憶單元的平行連線類似於CMOS NOR閘中的電晶體平行連線。NAND型快閃記憶體內部記憶單元以順序方式連線，類似於NAND閘。順序連線方式所佔空間較平行連線方式為小，降低了NAND型快閃記憶體的成本。NOR型快閃記憶體面世後，成為比現有的EPROM與EEPROM記憶體更經濟、更方便的複寫型唯讀記憶體。因此，隨機存取的讀取電路是需要的。然而，NOR型快閃記憶體當成唯讀記憶體使用時的讀取次數在預期上通常遠大於寫入次數，所以其內含的寫入電路是相當慢的，並且只提供區塊抹除功能。另一方面，使用快閃記憶體的應用，如取代硬碟，無需字元組層級的位址線，因為字元組層級的位址線只會增加無謂的複雜度與成本。因為採用順序連線方式及去除字元組的接觸點，NAND型快閃記憶體記憶單元的大型閘格所佔面積只有NOR型記憶單元的60%。NAND型記憶體的設計者理解到快閃記憶體的面積，在移除外部位址線及資料匯流排電路後，將可進一步縮小。取而代之的是，外部裝置可使用順序存取命令與資料暫存器與NAND型快閃記憶體溝通，由記憶體內部取得所需資料並將其輸出。選擇這種設計方式使得NAND型快閃記憶體無法隨機存取，但是NAND型快閃記憶體的主要目標是取代硬碟，而不是唯讀記憶體。寫入續航力.NOR型快閃記憶體SLC浮閘的寫入續航力通常大於或等於NAND型快閃記憶體，然而MLC NOR型與NAND型快閃記憶體有著相近的續航能力。NAND型與NOR型快閃記憶體規格書所提供的寫入續航週期速率如下：以上資料只是大概的標稱數值，實際寫入壽命與不同廠商的產品技術及定位有關。使用更細微化的製程，可以提高產品讀寫效能和容量，但同時在寫入壽命方面可能會面臨更大的挑戰。使用如記憶損耗調節及寫入放大的特定演演算法及設計範例，可以用來調節儲存系統的續航率來符合特定的需求。損耗平衡是快閃記憶體產品使用壽命的必要保證，在隨身碟和固態硬碟等產品中，均有相關支援。快閃記憶體檔案系統.因為快閃記憶體的獨特特性，最好使用一個額外的控制器來實行記憶耗損平衡與錯誤修正。特別的是，快閃記憶體檔案系統只使用於MTDs，此裝置具有內嵌式快閃記憶體，但沒有控制器。可攜式快閃記憶卡與隨身碟均有內建控制器來實行記憶耗損平衡與錯誤修正，所以使用特別的快閃記憶體檔案系統並不會增加任何的好處。多數情況下，快閃記憶體與計算機間存在一箇中間層，將快閃記憶體模擬成磁碟使用。對於上層軟體和使用者來說，並不需要關心快閃記憶體的實際細節。容量.一般採用多顆快閃記憶體晶片組成陣列的方式來達到增高容量的目的，這種方式使用於消費性電子產品中，如多媒體撥放器或全球定位系統中。因為快閃記憶體屬於積體電路，所以快閃記憶體晶片的容量通常遵循摩爾定律。快閃記憶體可以透過工藝的進化和3D IC多層堆疊的方式獲得更高的容量。但是快閃記憶體工藝到16nm以下時會出現嚴重漏電，導致內部短路或者寫入時干擾其它塊，所以目前的快閃記憶體工藝大部分是16nm到24nm之間以防止過高的漏電。而在市售的快閃記憶體封裝產品中，可以透過包含多個快閃記憶體晶體來獲得更高的容量。控制器可以透過不同的CE訊號，選擇不同的管芯進行操作。消費性快閃記憶體儲存裝置一般使用2的整數次冪。快閃記憶體晶片內部的容量大小是以2進位倍數計算，但並非所有實際容量空間均能被驅動器介面所使用。快閃記憶體晶片實際的容量會大於出廠可用容量，或者說，可用容量會小於晶片容量，這是為了存放寫入的快閃記憶體壽命磨損均衡表、出廠預留空間、分割槽表、錯誤修正碼、及裝置內部韌體程式運算所需要的其他中繼資料。2005年，東芝與新帝公司使用多層儲存單元技術開發出可儲存1GB資料量的NAND型快閃記憶體晶片，MLC擁有在最小記憶單元中儲存兩個位元資料的能力。2005年9月，三星電子宣佈開發出世界上第一顆2GB快閃記憶體晶片。2006年3月，三星電子宣佈開發出容量為4GB的固態硬碟機，比膝上型電腦所使用的同樣容量硬碟還要來的小。2006年9月，三星電子宣佈使用40奈米製程量產8GB快閃記憶體晶片。2008年1月，新帝公司宣佈16GB的MicroSDHC與32GB的SDHC Plus記憶卡開始販售。2012年後的快閃記憶體儲存裝置有了較大的容量，如64、128及256GB。一些更大容量的固態硬碟，根據容量大小，能被使用來當作整個電腦的備份硬碟。仍有小容量的快閃記憶體晶片生產以供BIOS-ROM與嵌入式應用使用，容量大小約為1MB或以下。傳輸速率.NAND型快閃記憶卡的讀取速度遠大於寫入速度。當晶片磨損，抹除與程式的操作速度會降到相當慢，主控需要需要更大電壓進行操作和更長的時間保證資料完整和建立ECC資料。傳遞多個小型檔案時，若是每個檔案長度均小於快閃記憶體晶片所定義的區塊大小時，因為每次擦寫一整個塊，導致寫入時需要將已有資料移至空閒的區域，每次讀寫都需要操作多次，就可能導致很低的傳輸速率。存取的遲滯也會影響效能，但還是比硬碟的遲滯影響小。但是在現有的分割槽的檔案系統中，已經開始預設以快閃記憶體和Advanced format扇區配機械硬碟相同的4096位元組為一個扇區對齊快閃記憶體塊和機械硬碟的物理扇區進行扇區讀寫解決這個問題，每次當寫入資料小於一個扇區時，會將不足一個扇區的資料寫入後的扇區空閒空間置空，並且下次寫入一個檔案的時候只能單獨再使用一個扇區以防止二次讀寫同一個塊挪動資料導致的寫入緩慢。有些時候速度以MB/s表示，或是以舊式單速光碟機速度的倍數表示，如60×、100×或150×。在這裡，1×等於150KB/s。舉例來說，100×的記憶卡的傳輸速率為150kB/s×100 = 15,000kB/s。快閃記憶體控制器的品質也是影響效能的因素之一。即使快閃記憶體只有在製造時做縮小晶粒的改變，但如果欠缺合適的控制器，就可能引起速度的降級。不同種類、不同工藝、不同技術水平的NAND快閃記憶體在讀寫速率上存在差異，同時，快閃記憶體產品的讀寫效能也與讀寫方式有關。一般快閃記憶體的資料介面為8位或者16位，其中8位較為常見。如果產品支援多通道並行讀寫，那麼就會有更高的速度。同時，若產品支援DDR、interleave技術，也可以提高速度。DDR是儲存產品在時脈(clock)上升沿和下降沿都可以讀寫資料，從而提高效能。interleave是儲存產品內不同bank或plane間交錯讀寫，控制器在操作物件尚處於忙狀態時，即可以轉到另一方進行操作，從而提高速度。如果同類快閃記憶體中有非同步模式和同步模式之分，其中同步模式的讀寫速度會更快。應用.序列介面快閃記憶體.序列介面快閃記憶體是一種使用序列式介面來循序存取資料內容，小型且低功率的快閃記憶體。當其使用於嵌入式系統上時，序列式快閃記憶體比平行式快閃記憶體在印刷電路板上所需的連線線數要少得多；因為序列式介面可以一次同時傳送與接受資料的一個位元，這使得序列式快閃記憶體具有減少在印刷電路板上所佔面積、耗電量及整體系統成本的優勢。有好幾個理由說明瞭為何使用較少外部接腳的序列式元件，而不是使用平行式元件，可以大大的降低整體的成本：SPI快閃記憶體的型式主要有兩種：一種是小頁特性且內含一個或多個內部SRAM的頁緩衝區，能夠讓整個頁的資料都讀入緩衝區、修改部分資料、而後再寫回快閃記憶體中功能的系統上，是一個不錯的選擇。而這兩種型式的快閃記憶體不容易做到簡單的直接置換，因為沒有相同的外部接腳且命令集也互不相容。韌體儲存.隨著現下CPU的速度越來越快，平行式介面快閃記憶體元件的速度通常遠小於與其連線的電腦系統記憶體匯流排速度。相較之下，目前的SRAM存取的時間通常小於10ns，而DDR2 SDRAM存取時間一般則小於20ns。因為這個因素，一般合理的使用方式是將要存放於對映記憶體裡的程式碼預先存放於快閃記憶體中，並在CPU執行程式碼前將快閃記憶體中的程式碼複製到對映記憶體中，如此一來，CPU就可以用最高速度來取用程式碼。裝置上的韌體也可以預先存放於序列式介面快閃記憶體中，在裝置開機後，將其複製到SDRAM或SRAM裡。使用外部序列式快閃記憶體而不用晶片中內嵌快閃記憶體是因為晶片製程上的考慮而妥協的結果。如果有需要將一個大區塊的韌體程式碼讀入時，通常會事先將程式碼壓縮後再存入快閃記憶體中，就可以縮小快閃記憶體晶片上被使用的區域。典型的序列式介面快閃記憶體應用於韌體儲存上有：硬碟、乙太網路控制器、DSL資料機、無線網絡卡等等。對於UEFI而言，因為在UEFI啟動過程的DXE階段前UEFI對主記憶體的訪問有限，所以UEFI韌體通常儲存在NOR Flash中。快閃記憶體作為硬碟的替代品.近期另一個快閃記憶體的應用就是作為硬碟的替代品。因為快閃記憶體沒有硬碟機械因素的限制並且可以多單元並行存取，所以固態硬碟在速度、噪音、耗電量與可靠度等因素的考量上是非常吸引人的。快閃記憶體元件正取得可攜式行動裝置上第二儲存元件的地位。同時使用在高效能桌上型電腦及一些具有RAID和SAN架構的伺服器上作為硬碟的替代品。但是以快閃記憶體為基礎的固態硬碟，也存在其他方面因素，使得它並不具有吸引力。例如快閃記憶體每千兆位元的成本依舊比硬碟高出許多。另一個不具吸引的因素就是快閃記憶體有著有限的P/E迴圈次數，但是這個因素可以透過程式最佳化，目前似乎已在人為控制能力範圍內，加上容量的增大使得每單位讀寫次數減少，讓它的使用壽命可以達到傳統硬碟甚至更高的水準，因此以快閃記憶體為基礎的固態硬碟也施行了與現有硬碟相同的保固政策。對於關聯性資料庫或其他使用ACID的資料庫事務系統上，即使是使用目前最慢的快閃記憶體儲存媒體也可以比使用硬碟所組成的陣列，在速度的表現上有著顯著的提升。於2006年6月，三星釋出第一批配備快閃記憶體固態硬碟的個人電腦：Q1-SSD及Q30-SSD，均使用32GB的固態硬碟，並且初期只在南韓地區發售。在2008年，固態硬碟成為第一版MacBook Air的選用配備，並且從2010年起，固態硬碟成為所有Macbook Air膝上型電腦的標準配備。2011年後開始，由於固態硬碟成為Intel所倡議Ultrabook的一部份，超薄膝上型電腦以固態硬碟為標準配備的數量逐漸增加。因為固態硬碟的效能遠高於機械硬碟，所以2011年以後固態硬碟在PC上逐步得到普及。也有混合型技術，諸如混合型硬碟和ReadyBoost，嘗試將兩種技術的優點合併，使用快閃記憶體作為硬碟上常用且鮮少修改的檔案，如應用程式及作業系統的執行檔，的高速非揮發性快取；或者使用固態硬碟加快機械硬碟的讀寫速度。快閃記憶體作為隨機存取記憶體.截至2012年，有許多的嘗試想把快閃記憶體作為電腦的主記憶體，動態隨機存取記憶體。在這個應用角色上，快閃記憶體的速度是比現有的DRAM慢，但是耗電量卻遠小於DRAM。但是快閃記憶體的壽命也是需要注意的問題。快閃記憶體的壽命通常是幾千次P/E，而RAM的壽命幾乎是無盡的P/E次數，快閃記憶體壽命耗盡有可能會導致資料丟失，系統崩潰。快閃記憶體作為長時間檔案儲存媒體.目前大部分廠家都會標明保修期和資料儲存時常，目前大部分的3D TLC快閃記憶體為基礎的SSD已經可以達到10年穩定儲存資料。但是某些晶片穩定性極差，儘管是原廠的原裝正式版快閃記憶體，但是有可能會很快就有資料錯誤新型儲存介質.2015年，英特爾及美光聯合釋出了xPoint新型儲存介質，這種介質是一種相變儲存材料，當下主要用於英特爾的Optane固態硬碟中。工業產值.2008年，一份資料中表示快閃記憶體在製造與銷售上的工業產值約為US$91億。2006年，另一些資料將快閃記憶體市場規模預估為超過US$200億，這是根據整體半導體市場超過8%與全部半導體記憶體市場超過34%的成長。根據DRAMeXchange的研究報告，2007年全球Flash產業的市場規模為133億6千8百萬美元，2008年則是114億1千8百萬美元，整體營收降低了14.6％，主要的原因是受到產品平均單價下滑的影響。根據DRAMeXchange於2009年2月所釋出的2008年全年NAND型快閃記憶體品牌廠商營收排名資料，第一為南韓廠商三星。於2012年，預估快閃記憶體市場落在$268億。然而根據2013年4月DRAMeXchange的調查資料顯示，2012年全年NAND型快閃記憶體品牌廠商總營收落在190億6千2百萬美元，較2011年衰退6.6%。現今技術發展.由於NAND型快閃記憶體本身相對簡單的結構及對高容量的高需求關係，使它成為電子元件中，在技術規模上發展最積極的。只有少數幾家頂尖的製造商能夠在高度的競爭中，積極的開發出縮小設計規則或是製程技術里程點。雖然原始版本摩爾定律所預測尺寸縮小一半時程因子為每三年，但是在近期NAND型快閃記憶體的例子上這個因子卻是每兩年。於2012年11月，三星宣佈已經開始量產10nm的晶片，這暗示著最小幾何形狀介於10至19nm間。由於快閃記憶體的最小組成元件已被最小化到極致的關係，未來的快閃記憶體密度的增加，將依靠更高階別的MLC，或是多層堆疊與製程的改善來驅動。從縮小尺寸伴隨而來的耐久性降低與不正確位元錯誤率增加，這些都可以藉由改善錯誤修正機制來彌補。即使有了這些進步，已有經濟規模的快閃記憶體在尺寸上也難以越來越小。快閃記憶體本身的讀寫速度有限，並且有寫入次數限制。有些具有光明展望的新技術與其他)均在探索與研發中，希望能更大規模的取代快閃記憶體。隨著NAND製程越來越小，縮短製程提高儲存密度已經非常困難。最新的NAND技術被稱為3D-NAND，這種材料改變了2D-NAND單層的設計，將32層、64層NAND進行堆疊，從而提高儲存密度。當前美光、SK-海力士、東芝、西部資料、三星幾大NAND廠商均已擁有自己的3D-NAND產品。第一代基於3D-NAND的固態硬碟也已經開始廣泛應用於資料中心和消費級計算機。藉助3D-NAND，固態硬碟容量得到了質的提升，在2017年中國國內一家廠商Memblaze釋出的PBlaze5 PCIe SSD已經最高可以做到11TB可用容量。