马未都老师教育我,在古玩行一直有这么个鄙视链:
搞玉器的看不上搞杂项的,搞瓷器的看不上搞玉器的,搞字画的看不上搞瓷器的,搞碑帖的看不上搞字画的.
这个好理解:
那些个鼻烟壶,竹子,漆器什么的,确实比不上玉器那么价值连城
瓷器这种烟熏火燎的体力活,哪有字画这样的闲情逸致
字画跟碑帖比起来,又少了一份高古和神秘,弄个碑给你,不仔细研究写的是啥都不知道…
其实在我们SSD这个行业,同样有这么一个鄙视链:
做ASIC的看不上写FW的,写FW的看不上写Driver的,写Driver的看不上写Application的,写Application的只好看不上做测试的。
要不说搞SSD的没有搞古玩挣得多呢,人家不同专业之间互相鄙视也就罢了,阵营内部还是很团结的,时不时的还搞个鉴宝:
请和中堂当主持人,拉上一群专家,旧货给估个价,’新’货给来上一锤子。
在我们大SSD圈,不仅有External鄙视链,还有Internal鄙视链。
以写FW的为例,NVMe看不上AHCI,PCIE看不上SATA,Backend看不上Frontend,FTL看不上Backend
虽然本人不是写FW的,但是不妨碍我追求进步,求知若渴,我就想搞明白为啥FTL这么niubility。
FTL是什么?
FTL= Flash Translation Layer (闪存转换层)
昨天(HDD时代):操作系统认为磁盘是一连串 512Byte的Sector (现在也有4K的HDD),同时操作系统对磁盘进行Read/Write的最小单位是Block,512B/1KB/4KB(具体大小在格式化时设定)
今天(SSD时代):闪存的Read/Write是以page(通常为4K)为单位,而Erase是按照Block(128或256个page)来操作,Write不能直接overwrite,必须Erase整个Block。
原有的文件系统操作方式完全不能愉快的玩耍了,秉承一贯的向下兼容的优良传统,就有了FTL,它位于文件系统和物理介质之间,把闪存的操作习惯虚拟成以传统硬盘的 512B 扇区进行操作。这样,操作系统就可以按照传统的扇区方式操作,而不用担心之前说的擦除/读/写问题。一切逻辑到物理的转换,都交给FTL搞定。
借用一下PCEVA上的一张图总结一下FTL对于SSD的重要性。
FTL做什么?
- Mapping LBA和PBA
- Garbage Collection
- Over Provision
- 坏块管理
- Wear Leveling
- 掉电恢复
- ECC
- 加密
- 压缩