LBA(逻辑区块地址)及PBA(物理区块地址)
LBA,全称为Logical Block Address,是PC数据存储装置上用来表示数据所在位置的通用机制,我们最常见到使用它的装置就是硬盘。LBA可以指某个数据区块的地址或者某个地址上所指向的数据区块。打个比方来说,LBA就等于我们平常使用的门牌地址(如:中华人民共和国广东省广州市中山四路26号)。而PBA全称为Physics Block Address,相对于LBA来说,它就如GPS定位所使用的经纬度(如上面地址的经纬度为:东经:113°16′40.0621″,北纬:23°07′37.6129″)。
在HDD上,由于HDD的数据可以直接覆盖,所以LBA和PBA的关系是1:1对应,不会变更,即LBA=PBA。但在SSD上,这种关系就变得复杂了,原因是SSD使用的存储介质NAND闪存有需要先擦除才能再写入,和读写以页为单位,擦除以块(多个页组成)为单位的特性,导致LBA和PBA的关系不再是固定不变的。因此SSD就需要一层叫做FTL的东西来作转换,以配合现有的文件系统。(FTL在后面将会独立介绍)
NAND闪存的擦除/写入关系请参考下图:

(闪存页大小一般为4KB或8KB,块一般有128至256页,详情请参考具体闪存颗粒数据手册)
由于NAND闪存的特性,SSD的主控制器是使用LBA和PBA的映射表来管理闪存的。当有需更新的数据要写入时,主控会把新数据写入到空白的闪存空间(已擦除状态的)内,然后更新映射表数据,把LBA指向新的PBA。原来的PBA就成了无效数据,这个PBA若要再次写入数据就需先进行擦除的操作。但这里会产生一个问题,闪存颗粒的寿命是按Program/Erase(编程/擦除,由于闪存不能覆盖,写入前必须擦除,所以习惯叫编程,不过为方便大家阅读,后面我们依然叫写入)次数计算的,MLC(多阶存储单元闪存)的寿命一般在1000-10000次,SLC(单阶存储单元闪存)则在10万次左右。
LBA(逻辑区块地址)及PBA(物理区块地址)的更多相关文章
- 转: PE rva to raw 虚拟偏移地址和文件物理偏移地址
+---------+---------+---------+---------+---------+---------+| 段名称 虚拟地址 虚拟大小 物理地址 物理大小 标志 |+-------- ...
- 快速查找和你聊天人的IP和具体的物理所在地址
附言 : 对于中秋佳节没有回家也没有外出的我,亦然选择闭关.本来是打算把这个公众号作为测试号的.但是发现这个号已经有注册有一年多了,怪可惜的!所以就用来发些教程图文,供给大家共同学习,也对自己进行不定 ...
- 对于指定区块div,如何区分区块内的点击 和 区块外的点击?
需求:对于区块div内点击事件, 需要展示区块内的附属操作区块,对于区块外的点击, 需要将前面说的附属操作区块隐藏掉. 分析:对于一般的HTML控件,有标准的js事件接口, focus和blur,来实 ...
- pt和px区别 pt是逻辑像素,px是物理像素
pt和px区别 pt是逻辑像素,px是物理像素字体大小的设置单位,常用的有2种:px.pt.这两个有什么区别呢?先搞清基本概念:px就是表示pixel,像素,是屏幕上显示数据的最基本的点:pt就是po ...
- 未来-区块链-IBM:IBM 区块链技术开发社区
ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...
- 安装Oracle11g时,检测到系统的主 IP 地址是 DHCP 分配的地址
检查完成.此次检查的总体结果为: 失败 <<<< 问题: 安装检测到系统的主 IP 地址是 DHCP 分配的地址. 建议案: Oracle 支持在具有 DHCP 分配的 IP ...
- 获取Mac、CPUID、硬盘序列号、本地IP地址、外网IP地址OCX控件
提供获取Mac.CPUID.硬盘序列号.本地IP地址.外网IP地址OCX控件 开发语言:vc++ 可应用与WEB程序开发应用 <HTML><HEAD><TITLE> ...
- Java根据ip地址获取Mac地址,Java获取Mac地址
Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...
- API之IP地址查询---权威的IP地址查询接口集合
原文地址:http://yushine.iteye.com/blog/1717586 推荐实用IP138 http://www.baidu.com/s?wd=IP&rsv_spt=1& ...
随机推荐
- 基于php常用正则表达整理(下)
61 \n 匹配一个换行符.等价于 \x0a 和 \cJ.62 \r 匹配一个回车符.等价于 \x0d 和 \cM.63 \s 匹配任何空白字符,包括空格.制 ...
- QT正则表达式
QT正则表达式有一个问题,当初始状态是不符合正则表达式时,能够输入任意字符,若在输入过程中符合正则表达式,马上进入字符检测状态,即只能接受符合正则表达式的字符.
- placeholder 兼容 IE
placeholder 是 html5 的新属性,仅支持 html5 的浏览器才支持 placeholder,目前最新的 FF.Chrome.Safari.Opera 以及 IE10 都支持,IE6- ...
- 一个简单的php函数调用实例
需求分析: funcs.php (这个文件,我们定义了一个函数) <?php //我们一个计算,+ - * / 的代码集合->函数 //1. function 是一个关键字 //2. ji ...
- Python 字符串格式化示例
先看代码吧. #!/usr/bin/env python #-*- coding: utf-8 -*- __author__ = 'jiang' __creattime__ = '2015/10/31 ...
- vb mid 函数使用说明
Mid就是从一个字符串中取子字符串,比如a="aabbcc",我们想取出"bb"就可以用Mid("aabbcc",3,2)Mid有3个参数, ...
- Xcode Coule not launch "aaa" press launch failed:timed out waiting for app launch
遇见这个问题 可能是 由于 runapp 的时候设置里面 设置为release了. 解决办法是:见图 build configuration 设置成 debug 状态就OK了. 要是上面的不行就试一下 ...
- 如何使Label带有链接??此法感觉有点取巧!!!
关键代码 /**************************************************************第一行***************************** ...
- Cortex-M3学习日志(四) -- UART0实验
LPC1768含有4 个符合16C550工业标准的异步串口UATR0-UART3,其中UART1具有标准的MODEM接口和RS-485/EIA-485接口模式.串口通讯接口是连接计算机.终端.通讯控制 ...
- javascript线程解释(setTimeout,setInterval你不知道的事)
john resig写的一篇文章: 原文地址:http://ejohn.org/blog/how-javascript-timers-work/ 作为入门者来说,了解JavaScript中timer的 ...