Android存储系统如何优化?

本文探讨了Android手机存储系统变慢的原因,主要聚焦在EMMC存储芯片上。通过介绍NAND Flash的工作原理,包括SLC、MLC、TLC的不同,分析了存储老化、写放大和预留空间(Over Provisioning)对性能的影响。尽管内核层面的优化有限,但建议从文件系统、块层和MMC驱动等层面进行优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android存储系统如何优化?
答案是我也不知道…

那为什么会想到要写这篇文章哪?主要是因为有天晚上和以前一个同事讨论到Android手机存储系统的优化问题,我想把我知道的写下来。用过Android手机的人可能都会有这么个感觉,就是手机用久了之后系统会越来越慢。慢,其中很重要的一点就是和Android的存储系统有关。我们现在主流手机的内置存储芯片一般都是EMMC,一些旗舰级的Android手机已经在使用UFS接口的存储芯片,而iphone 6S开始更是用上了NVME接口的存储芯片。同事是做linux kernel相关工作的,他在想,是不是可以在kernel层面优化下Android的存储系统,改善下EMMC的坏块管理、磨损均衡等内容。

接触过一年的SSD固件开发,没有接触过EMMC。但是根据我的理解,EMMC其实就是一个弱化版或者叫精简版的SSD,核心原理和思想是一样的。所以我得出的答案是:同事想做的那些事,kernel什么也做不了。首先来一张大图,我们可以看到,磨损均衡、垃圾回收、坏块管理,这些事情已经全部被SSD、EMMC做掉了,主机端在这些事情上可以说是完全透明的。同事的想法其实还停留在若干年前嵌入式系统使用裸的FLASH芯片,需要自己管理这些繁杂事情的年代。

这里写图片描述

作为一篇科普贴,这篇文章的阅读对象是对当今的FLASH和SSD不甚了解的朋友们,而并不是那些存储界的老鸟们^_^

首先说下nand flash的种类,当今的nand flash主要分为三种:slc、mlc和tlc。slc每个cell存储一个bit,可以表示0或者1。mlc每个cell存储两个bit,可以表示0-3。tlc每个cell存储三个bit,可以表示0-7。
这里写图片描述

先说说最简单的slc,它是怎么实现一个bit的存储的。看下图,四个黑点是可以加压的地方。floating gate周围包围着一层绝缘层,在初始状态下(也就是擦除状态下),floating gate里没有电子,表示逻辑1。
这里写图片描述

对这个cell编程就是把

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值