快閃記憶體轉換層

快閃記憶體轉換層(Flash Translation Layer)，是對快閃記憶體檔案系統讀、寫、抹除操作的管理。

快閃記憶體的硬體特性 
快閃記憶體(Flash Memory)具有以下的硬體特性：
一個記憶單元經過寫入(program)，將可由邏輯1變成邏輯0，但無法再經由寫入將此單元回復到邏輯1，需經過抹除(erase)才可回復邏輯1。
一般快閃記憶體中抹除的最小單位稱為块，讀取(read)和寫入的最小單位稱為区，一個块的大小遠大於一個区。
抹除的操作時間一般大於讀取和寫入的操作時間。
因為以上的硬體特性，快閃記憶體的寫入往往需要耗費大量的時間在抹除操作上。因此在快閃記憶體檔案系統中，會經由快閃記憶體轉換層(Flash Translation Layer)來進行對讀、寫、抹除操作的管理。

一般快閃記憶體轉換層需要包含的功能有：
逻辑地址到物理地址的映射
斷電回復(Power-off recovery)
耗損平均(Wear-leveling)

逻辑地址到物理地址的映射 
快閃記憶體轉換層(Flash Translation Layer)中最核心的部分，是逻辑地址到物理地址的映射表。由快閃記憶體的硬體特性可知，一個已寫入的区，需經過抹除後，方可再寫入(reprogram)新的資料。然而，抹除的最小單位块卻遠大於寫入的最小單位区，即使只是想要更新一個块當中某一個区的資料，我們仍需要做整個块的抹除。此時，若想要保存此块中其他区的資料，則需要在抹除前事先搬移到其他块，假設有n次搬移需進行，則將再花費n次读取以及n次写入的操作，耗費相當多的時間。
因此，快閃記憶體轉換層中運用了逻辑地址到物理地址的映射表，當某個逻辑区所對應到的物理区中已寫入資料時，FTL會將此寫入資料導向到另外一個空的物理区當中，並將此logical與物理区的對應關係，更新到映射表當中。若要讀取此逻辑区的資料時，FTL會根據映射表當中的資訊，找到所對應的物理区。
在實作上，逻辑地址到物理地址的映射的設計將決定對快閃記憶體的操作效率。其中，若抹除的次數越多，則快閃記憶體檔案系統的效能將會越差。另外，在嵌入式的應用中，許多設計是將映射表存放在RAM中，因此映射表的大小也是在設計時的考量重點。
依照地址映射設計方式的不同，可分成以下三大類：

区映射
在区映射的方式中，每一個逻辑，都可以對應到一個物理区。此方式具有最好的快閃記憶體存取效率，但缺點是映射表的大小將會很大。對於嵌入式的應用而言，RAM是昂貴的資源，越大的映射表，將導致越高的成本。
块映射
在块映射的方式中，每一個逻辑块對應到一個物理块。在块映射方式中，映射表只記錄了逻辑块和物理块的對應資訊，因此映射表的大小減少很多。而要找到一個逻辑区所對應到的物理区時，只要找到在對應的物理块中同樣偏移量的位置即可。
混合映射
在混合映射的方式中，同時使用了块映射與区映射的方式。

電腦記憶體