解析快閃碟的技術秘密 USB與NAND完美結合創造奇蹟

作者: Steve / Trevor Davis
2005 年 03 月 02 日

KolokowskyUSB已成為現今最為流行的傳輸介面,但讀者們是否真實了解到其內部的運作原理?為了讓讀者能明瞭USB驚人擴展背後的技術心血,新電子從本期特別開闢「USB應用專欄」以饗讀者。第一篇要談的就是USB快閃碟。
 


 

USB快閃碟聯盟網站發佈的Webfeet qResearch報告預估USB快閃碟在2007年的出貨量將超過2億顆,並持續每年快速成長,成為主流的儲存媒體。大家喜歡將這些神奇的電腦儲存裝置暱稱為「大姆哥」(thumbdrives、「快閃碟」(flash drive)、「鑰匙碟」(Pen drives)、「隨身碟」(Pocket drives)、「JumpDrives」或「磁碟筆」(Pen drives),同時也常談論到這類超炫的資料儲存裝置。事實上,USB快閃碟已成為成長最快的裝置之一,幾乎成為無所不在的儲存媒體。是甚麼原因造就它的成功?更重要的是它究竟是怎麼做到的?為什麼快閃碟能如此受歡迎?
 

對於大多數使用者而言,USB快閃碟是一項科技奇蹟。使用者再也不必在資料儲存方面受到1.44MB軟碟的容量限制;再也不必於使用Zip磁碟作資料儲存時擔心對方電腦是否也裝備Zip磁碟機。現在我們可以隨身帶著能儲存2GB資料,但只有口香糖大小的快閃碟,也就是相當於1,388片軟碟才有的容量!輕輕鬆鬆地就可以把這個快閃碟放到口袋中。有趣的是,很少人知道這類快閃碟如何運作,或這麼容易使用的原因。
 

真正的魔法是科技!精密且複雜的科技協助使用者享受簡易且便利的先進產品。通用序列匯流排(Universal Serial Bus, USB)技術以及NAND快閃記憶體的完美結合,為市場帶來輕巧且容易使用的產品。圖1顯示快閃碟成功的三項關鍵技術。
 

通用序列匯流排或「USB」已成為消費者普遍採用的介面。自從1997年推出以來,USB已成為最成功的消費性介面標準,幾乎每一台消費性桌上型電腦或筆記型電腦皆有配備USB介面。因此,將像Flash Drive這樣的高容量儲存裝置搭配USB介面,幾乎能支援世界上每一台個人電腦。Flash Drive提供PC間傳遞資料的彈性,使得這個產品相當受歡迎,消費者希望他們的PC都配有能連結大姆哥的介面,以進行資料傳輸。更厲害的是傳輸過程中不需使用者進行任何設定。
 

Mass Stroage Class解決相容性問題
 

Flash Drive系統中搭載USB介面最大的優點就是使用的簡便性;不需要任何複雜的使用簡介、不需要安裝任何軟體、不必「學習」如何使用這類裝置。事實上, USB一開始設計時便以開發真正隨插即用介面為目的。消費者僅需插入Flash Drive便能立即使用。簡易的使用流程背後隱藏著資料從作業系統傳送至Flash Drive時所涉及的複雜指令傳輸,以及眾多的技術標準。以USB快閃碟來說,必須經過許多層面的技術與步驟,才能讓最終使用者體驗如此流暢且簡易的使用流程。
 

PC作業系統的最外層是裝置的驅動程式。驅動程式是為了讓PC能判讀在PC與週邊裝置間傳送的資料,而在PC上安裝的複雜應用軟體。為了避免讓每家硬體廠商都要自行撰寫裝置驅動程式,USBIF(USB Implementers Forum)協會已經建立許多類別規格。類別規格是不受作業系統限制的技術定義,規範USB裝置在匯流排上的運作程序。這種抽象定義協助作業系統廠商(例如微軟)僅需開發一項驅動程式就能驅動所有掃描器或印表機,或Flash Drive等。「大量儲存設備類別」(Mass Storage Class)就是類別驅動程式的一種。大量儲存設備顧名思義便是為了讓裝置能儲存與傳輸大量的資料而設計的。微軟首次在Windows Millenium(ME)作業系統中加入大量儲存設備支援,並在之後的Windows 2000和XP作業系統,以及未來推出的Longhorn作業系統中加入這項技術。麥金塔電腦(Mac)在OS 9.6之後的版本也已加入大量儲存設備驅動程式支援,甚至Linux也已推出支援程式。此外,許多硬體廠商已加入對舊作業系統的支援,例如Windows 98。各大作業系統廣泛支援大量儲存設備類別驅動程式,協助使用者僅需插入USB介面的Flash Drive,便能在PC上立即辨識該硬碟裝置。
 

接下來從更細分的角度來看,技術層通常涉及搭載USB介面的PC以及USB-to-Flash控制器晶片(圖2)間的互動。從最簡單的層面來看,USB- to-Flash控制器晶片是一顆轉譯晶片。它接收USB協定與資料,並將這些資料轉譯成NAND快閃記憶體可讀取或可寫入的資訊。PC負責處理驅動程式堆疊相容性以及資料傳輸協定支援,USB-to-Flash控制晶片亦須具備大量儲存設備類別相容性,且須瞭解PC主控端所發出的指令類別。
 

大量儲存設備類別規格使用SCSI(Small Computer Systems Interface)標準中多種指令區塊規格以支援所有裝置,其中包括軟碟的UFI、快閃裝置的RBC以及CD-ROM與DVD的MMC。這些指令集支援 32位元的邏輯區塊位址(Logic Block Address, LBA)定址,最高能支援2 Terabytes的磁碟或磁碟陣列(然而目前NAND快閃記憶體還沒有如此大的容量!)。這些SCSI指令會透過一對USB端點來傳輸,這些端點由指令與資料共同使用。每項傳輸都以CBW(Command Block Wrapper)開頭,儲存了SCSI指令、傳輸方向、預估傳輸時間,以及獨特的標籤。當USB-to-Flash控制晶片收到CBW時,主控端會開始指令的資料傳輸階段。但從這階段開始,NAND快閃裝置的管理與儲存流程就開始變的複雜(雖然最終使用者完全毫無知覺)。
 

NAND快閃記憶體元件管理複雜性高
 

當USB-to-Flash控制晶片接收到有效的指令時,就會進行複雜的讀寫程序。若USB-to-Flash控制晶片與標準硬碟機進行通訊,而不是 NAND快閃記憶體(注意大量儲存設備類別協助通訊協定支援所有類型的儲存媒體,包括NAND、硬碟機、CD、DVD等),並會傳送一組指令到硬碟機,將資料寫至特定的邏輯區塊位址(Logic Block Address, LBA)並開始傳輸資料。NAND快閃記憶體還有許多特殊功能,協助控制晶片進行更多作業:
 

‧快閃記憶體必須先刪除資料後才能寫入資料
 

‧刪除作業僅能在大區塊記憶體中執行
 

‧快閃記憶體可能會有不良區塊,會因長久讀寫而損壞
 

USB-to-Flash控制晶片必須妥善管理所有項目,從快閃記憶體建立一個可靠的虛擬磁碟機。大多數USB快閃碟都使用Smart Media規格來管理快閃元件的特性。在系統內的USB方面,快閃碟的讀寫動作都由規格加以控制,故能明確瞭解控制晶片的反應。因此,包括Cypress Semiconductor在內的USB-to-Flash控制晶片廠商皆可確保自家能妥善管理NAND快閃資料儲存的作業。
 

在瞭解NAND記憶體的管理流程前,必須先瞭解NAND的資料結構與組織。
 

NAND記憶體的基本組織可從「分頁(page)」這個最小的資料單元談起。一個分頁是可寫入的最小單元,可儲存512位元組或2K位元組的資料。第二大的單元為「區塊(Block)」;一個區塊是NAND最小的刪除單元,含有32或64個分頁。更進一步的單元為「區域(Zone)」;區域是Smart Media規格所制定的邏輯結構,每個區域含有1024個區塊。因此,一個128M位元組的NAND包含:
 

8個區域 * 每個區域含有1024個區塊 * 每個區塊32個分頁 * 每個分頁512個位元組=128M位元
 

NAND快閃記憶體僅能在分頁下進行寫入動作,可是以區塊為單位作刪除作業,而這種限制對資料管理產生設計上的挑戰。
 

以下範例將介紹在讀寫過程中NAND快閃資料的管理。假設首次資料傳輸的寫入指令將512位元組的資料寫入區塊1中的LBA 0(邏輯區塊位址),為完成這項步驟,快閃控制晶片必須先完全刪除記憶體區塊(16K位元組),然後才能寫入512位元組。這個限制在寫入未使用的區塊時不會產生任何問題,但在寫入整個區塊時就會衍生出完全不同的問題。
 

例如,假設第二次寫入需要將一份512位元組資料寫至LBA 1,也就是位於區塊1旁的下一個LBA。由於整個區塊必須先刪除後才能寫入資料,因此之前寫入至LBA 0(在首次寫入過程)的資料必須在刪除前先儲存在某個位址。Smart Media針對這個問題提出的解決方案是在新資料傳來時,就立即搬移舊資料,流程如圖4所示。
 

控制晶片在寫入新資料時,會從舊區塊(在這個範例中就是區塊1)將資料複製至鄰近的區塊。當複製完成時,舊區塊就會被消除,並能儲存新資料。
 

下一個複雜流程就是追蹤所有資料的去向。由於控制晶片在複製時需從區塊0中LBA0移動資料,因此需以一個名為邏輯與實體對映表(logical to physical table)的表格追蹤實體快閃記憶體的位址以及相對應的LBA。圖5與圖6顯示在首次LBA 1的複製/寫入作業後的邏輯與實體對映表,圖7是在經過多次寫入後的典型對映表。當LBA項目被使用至少一次後,總是會被指定至快閃記憶體中的某處。當快閃記憶體被使用一段時間後,就沒有儲存單元會標示為「未指定」。
 

Smart Media規格將邏輯與實體對映表的項目數量限制為1,000個。這個限制讓快閃記憶體必須分割成數個區域。對於主控端的檔案系統而言,每個區域含有 1,000個區塊,但在快閃記憶體方面則顯示出1,024個區域。為何兩者間出現差異?NAND記憶體通常含有損毀的區塊。這些區塊在製造過程中不會被規劃,因為它會設定成給NAND快閃控制晶片使用,額外多出的24個區塊則用來調節損毀區塊,因此快閃記憶體中容許有2%的損壞區塊,且不會產生任何不良影響。
 

在上述範例中,已看到兩次寫入快閃記憶體的動作,包括LBA 0與LBA 1。當控制晶片收到第三筆寫入指令要寫入LBA 2時,必須挑選一個已刪除的區塊才能開始進行複製。控制晶片可重複使用第一個區塊,或是挑選其他區塊。哪一個區塊被選用會有影響嗎?答案是肯定的。
 

快閃記憶體的壽命會隨著不斷的讀寫而被損耗。每次存取都會輕微地降低快閃記憶體正確儲存資料的能力。在經過數十萬次的刪除過程後就會開始產生故障。這代表必須採取「平均讀寫」(wear leveling)的機制。NAND快閃元件就像是鞋子的鞋底,如果老是用腳跟走路,鞋跟就會很快被磨損掉;若您用腳尖走路,鞋尖就會很快被磨損掉。如果鞋底各部份接觸地面的機會相當平均,各部份的磨損程度就也會很均勻。平均讀寫的概念就是要平均使用NAND的各部份。刪除次數會儲存在每個區塊的備援區域 (redundant area)。當區塊需要寫入時,就會挑選刪除次數最少的區塊。
 

備援區域是快閃記憶體中每512位元組分頁內額外配置的16位元組空間(或每2,048位元組的分頁額外配置64位元組),讓快閃記憶體控制晶片儲存有關區塊的資訊。邏輯與實體對映表、損壞區塊標記、平均讀寫、錯誤校正碼(Error Correcting Codes, ECC)與其他資訊都會儲存在這個區域中。
 

當快閃記憶體某些區域在存取時,已寫入資料的有效性會隨著時間逐漸降低。一個flash cell的資料訊號會逐漸減弱,一直到偵測出錯誤為止。ECC就是用來校正這類錯誤的;它根據一小部份快閃記憶體(256位元組)的資料推算而出,被儲存在分頁的備援區域內。這類錯誤僅會在經過數十億次寫入後才會發生,但建置在控制晶片內的ECC能確保資料永遠安全。
 

NAND快閃記憶體為目前Flash Drive的贏家
 

目前業界在製造快閃記憶體有兩種熱門的架構:NAND快閃記憶體和NOR快閃記憶體。NOR快閃記憶體是較早開發的技術,其內部的架構類似隨機存取記憶體 (Random Access Memory, RAM),記憶體中任何區域的資料可隨時存取。NAND快閃記憶體則不能以這種方式存取。NAND快閃記憶體的內部結構會共用數個位元的元件邏輯。基本的原因是NAND快閃記憶體僅能採用序列的存取模式,需讀寫到鄰近的位置時才能存取到資料。這種架構促使業界開發出先前討論的分頁機制,也讓NAND快閃記憶體中每個電晶體能儲存比NOR快閃記憶體高出兩倍的資料量。
 

雖然NAND快閃記憶體有一些技術上的限制,但其效能仍足以支援Flash Drive的應用。曾有一段時間NAND與NOR都是這個領域中的可行方案,但因為表1與表2所顯示的各種因素,無疑地讓NAND成為目前的贏家。NOR 則逐漸在小容量的程式碼儲存與執行應用中找到利基市場。
 

目前在NAND快閃記憶體上衍生了一個新的爭議,就是多層Cell(Mutli-Level Cell)與單層Cell(Single-Level Cell)間的比較。這如同NAND與NOR的競爭關係,業界不斷邁向更快的讀寫速度、更高的密度、更少的成本(美元/位元比),以及更高的可靠度。
 

因此市場上少數的NAND供應商,包括Toshiba與SanDisk在內都已推出名為多層Cell NAND的技術。在這種NAND架構中,元件在每個cell單元中能儲存2位元(或更多)的資料,而不是像傳輸技術每個單元僅能儲存1位元。如圖8所示。結果就是能在相同的矽元件空間內構建出兩倍的記憶體資料密度。
 

在NAND快閃記憶體應用中MLC是否能取代SLC技術,仍有待觀察,但表1的資料明確顯示出在NAND領域裡,SLC在速度效能方面處於絕對的優勢。此外,MLC技術不僅可靠度較低,且更難偵測錯誤,反而USB-to-Flash控制晶片必須運用更複雜的ECC演算法對每個位元進行兩次的檢查與校正作業。隨著Flash Drive的密度持續攀升,將會顯示市場是否會容忍較慢的讀寫速度來換取較低價位的Flash Drive產品。
 

USB快閃碟技術複雜 但使用簡單
 

USB快閃碟的結構相當簡單,至少對消費者使用方面來說是這樣。在簡單的外表下,其實隱藏著技術間的複雜平衡。無所不在的USB介面、精密的USB-to -Flash控制晶片、加上NAND快閃記憶體的速度、密度,以及NAND快閃記憶體成本,創造出比其他消費性電子產品更簡易使用的產品。受惠於這些因素,Flash Drive市場將以驚人的速度持續成長,為全球使用者提供一套簡易的資料儲存與傳遞方式。
 

所以當下次有人給你一片Flash Drive要你迅速從PC中複製檔案時,你就可趁機告訴他這種簡單裝置內含的精密科技,對方將訝異從未瞭解現代神奇裝置–USB快閃碟背後的奧秘。
 

(本文作者任職於柏士半導體)
 

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

νMaicovicon製程與MID封裝技術 打造非CCD高像素模組新里程碑

2005 年 03 月 02 日

半導體測試專欄:半導體製程的監視器 參數測試讓製程更完善

2005 年 04 月 04 日

太陽能輔助供電再上層樓 DPPM強化鋰電池充電效率

2007 年 08 月 24 日

降低MTP移動時間延遲  VR視野穩定不頭暈

2017 年 01 月 03 日

揮發性化合物氣體感測 空氣品質監控有一套

2018 年 12 月 24 日

加速打造邊緣智慧應用 整合/開放/多元為關鍵

2019 年 12 月 30 日
前一篇
鉅景推出多項複合式記憶體
下一篇
寬頻接取版圖重分配 WiMAX後發先至