深入浅出计算机组成原理
徐文浩
bothub创始人
立即订阅
13019 人已学习
课程目录
已完结 62 讲
0/4登录后,你可以任选4讲全文学习。
入门篇 (5讲)
开篇词 | 为什么你需要学习计算机组成原理?
免费
01 | 冯·诺依曼体系结构:计算机组成的金字塔
02 | 给你一张知识地图,计算机组成原理应该这么学
03 | 通过你的CPU主频,我们来谈谈“性能”究竟是什么?
04 | 穿越功耗墙,我们该从哪些方面提升“性能”?
原理篇:指令和运算 (12讲)
05 | 计算机指令:让我们试试用纸带编程
06 | 指令跳转:原来if...else就是goto
07 | 函数调用:为什么会发生stack overflow?
08 | ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?
09 | 程序装载:“640K内存”真的不够用么?
10 | 动态链接:程序内部的“共享单车”
11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?
12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?
13 | 加法器:如何像搭乐高一样搭电路(上)?
14 | 乘法器:如何像搭乐高一样搭电路(下)?
15 | 浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?
16 | 浮点数和定点数(下):深入理解浮点数到底有什么用?
原理篇:处理器 (18讲)
17 | 建立数据通路(上):指令+运算=CPU
18 | 建立数据通路(中):指令+运算=CPU
19 | 建立数据通路(下):指令+运算=CPU
20 | 面向流水线的指令设计(上):一心多用的现代CPU
21 | 面向流水线的指令设计(下):奔腾4是怎么失败的?
22 | 冒险和预测(一):hazard是“危”也是“机”
23 | 冒险和预测(二):流水线里的接力赛
24 | 冒险和预测(三):CPU里的“线程池”
25 | 冒险和预测(四):今天下雨了,明天还会下雨么?
26 | Superscalar和VLIW:如何让CPU的吞吐率超过1?
27 | SIMD:如何加速矩阵乘法?
28 | 异常和中断:程序出错了怎么办?
29 | CISC和RISC:为什么手机芯片都是ARM?
30 | GPU(上):为什么玩游戏需要使用GPU?
31 | GPU(下):为什么深度学习需要使用GPU?
32 | FPGA和ASIC:计算机体系结构的黄金时代
33 | 解读TPU:设计和拆解一块ASIC芯片
34 | 理解虚拟机:你在云上拿到的计算机是什么样的?
原理篇:存储与I/O系统 (17讲)
35 | 存储器层次结构全景:数据存储的大金字塔长什么样?
36 | 局部性原理:数据库性能跟不上,加个缓存就好了?
37 | 高速缓存(上):“4毫秒”究竟值多少钱?
38 | 高速缓存(下):你确定你的数据更新了么?
39 | MESI协议:如何让多核CPU的高速缓存保持一致?
40 | 理解内存(上):虚拟内存和内存保护是什么?
41 | 理解内存(下):解析TLB和内存保护
42 | 总线:计算机内部的高速公路
43 | 输入输出设备:我们并不是只能用灯泡显示“0”和“1”
44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?
45 | 机械硬盘:Google早期用过的“黑科技”
46 | SSD硬盘(上):如何完成性能优化的KPI?
47 | SSD硬盘(下):如何完成性能优化的KPI?
48 | DMA:为什么Kafka这么快?
49 | 数据完整性(上):硬件坏了怎么办?
50 | 数据完整性(下):如何还原犯罪现场?
51 | 分布式计算:如果所有人的大脑都联网会怎样?
应用篇 (5讲)
52 | 设计大型DMP系统(上):MongoDB并不是什么灵丹妙药
53 | 设计大型DMP系统(下):SSD拯救了所有的DBA
54 | 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣
55 | 理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?
结束语 | 知也无涯,愿你也享受发现的乐趣
免费
答疑与加餐 (5讲)
特别加餐 | 我在2019年F8大会的两日见闻录
FAQ第一期 | 学与不学,知识就在那里,不如就先学好了
用户故事 | 赵文海:怕什么真理无穷,进一寸有一寸的欢喜
FAQ第二期 | 世界上第一个编程语言是怎么来的?
特别加餐 | 我的一天怎么过?
深入浅出计算机组成原理
登录|注册

47 | SSD硬盘(下):如何完成性能优化的KPI?

徐文浩 2019-08-14
如果你平时用的是 Windows 电脑,你会发现,用了 SSD 的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除,对应块的寿命就少了一点点。这个 SSD 的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实也很影响我们的日常使用。
我们的操作系统上,并没有 SSD 硬盘上各个块目前已经擦写的情况和寿命,所以它对待 SSD 硬盘和普通的机械硬盘没有什么区别。
我们日常使用 PC 进行软件开发的时候,会先在硬盘上装上操作系统和常用软件,比如 Office,或者工程师们会装上 VS Code、WebStorm 这样的集成开发环境。这些软件所在的块,写入一次之后,就不太会擦除了,所以就只有读的需求。
一旦开始开发,我们就会不断添加新的代码文件,还会不断修改已经有的代码文件。因为 SSD 硬盘没有覆写(Override)的功能,所以,这个过程中,其实我们是在反复地写入新的文件,然后再把原来的文件标记成逻辑上删除的状态。等 SSD 里面空的块少了,我们会用“垃圾回收”的方式,进行擦除。这样,我们的擦除会反复发生在这些用来存放数据的地方。
有一天,这些块的擦除次数到了,变成了坏块。但是,我们安装操作系统和软件的地方还没有坏,而这块硬盘的可以用的容量却变小了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入浅出计算机组成原理》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • 💪😊
    类似Kafka hbase leveldb 这些都是先写log,标记然后异步整理的系统都是lfs吧。适合ssd的原因,这些系统顺序写,可以设置不删数据,或者异步删除数据,减少了磁盘被频繁擦除问题

    作者回复: 👍 这些数据库的确都是LFS的思路。

    2019-08-14
    3
  • 许童童
    LFS文件系统的设计木主要是为了解决以前文件系统所存在的两个问题:随机输入输出的性能和序列输入输出的性能相差很大;还有就是磁盘搜索和旋转延迟比较大。

    LFS文件系统的主要算法就是首先把所有的更新(包括元数据)缓存在内存中的成为segment的单位中。当segment填满之后,里面的数据就写入到磁盘中未使用的地方。 特别要注意的是:LFS并不会覆写已有的数据,而是把segment中的数据写入到磁盘中新的位置。

    作者回复: 👍有很多数据库系统为了性能也都借鉴了LFS的思路。

    2019-08-14
    2
  • 明翼
    看了这个文档都想把我 的ssd换回HDD硬盘哈哈,我上面装的一些软件比如qq,整天都再写磁盘。

    作者回复: 这倒大可不必,日常使用其实SSD寿命是足够的,不过重要数据备份最好是云+NAS

    2019-08-17
    1
  • prader
    ssd硬盘的寿命和擦除次数有关,因此ssd硬盘引入了FTL这个映射层。引入FTL之后ssd中的数据只是逻辑删除,为了减少数据搬运的次数,引入了TRIM指令,数据在ssd上可以直接物理删除。
    AeroSpirke是专门为ssd设计的key-value数据库,在采用了超水位算法,和半存储方式,可以更快的查询。
    2019-10-17
  • 秋天
    对于 mac 这样的 使用 ssd 能更换硬盘吗?
    2019-10-14
  • 古夜
    所以FTL到底是系统层面的还是SSD层面的?如果是后者和文章就说不通了

    作者回复: 古夜同学,你好,

    FTL是在SSD的硬件的控制器里面的,也就是所谓的主控芯片,不是操作系统层面的。

    2019-09-29
  • 关于存储器我有一个疑问,我们这些硬盘,内存的存储器最终都是存了电子或者磁符号形式的0和1吗?比如拍的一张照片。

    作者回复: 成同学,

    你好,是的,都是0和1

    2019-09-17
  • 活的潇洒
    2018年入手一个笔记本、硬盘是PCI Express接口128GB的SSD,速度一下子提升上来了,但是对于SSD为什么快的底层原理还是不知道
    day 47天笔记:https://www.cnblogs.com/luoahong/p/11395273.html
    2019-08-26
  • allen
    怪不得我的Mac越用越慢,想要电脑用的久,还是要买大容量SSD

    作者回复: 👍现在SSD硬盘也便宜很多了。

    2019-08-19
  •  
    请问:对于ssd硬盘上面文件内容的修改是一个什么样的过程?既然不能覆写,那是不是只能重新分配一个页写入修改后的数据?但这样又要修改inode。。。

    作者回复: 是的,不过这个不是通过改inode,而是在FTL这里处理掉的,就是逻辑块和物理块的映射层面可以处理掉。

    2019-08-18
  • wahaha
    Dear teacher, how to get the erase block size of a ssd disk?
    2019-08-16
  • 有铭
    AeroSpike为什么现在的受欢迎程度不如Redis?

    作者回复: 有铭同学,

    你好,其实AeroSpike据我所知在国内外应用都很普遍了。没有Redis火的核心原因我觉得是因为开源得晚了。

    另外,就是对于大部分数据量没有那么大的创业公司,用内存作为缓存,存储空间也就够了,那用Redis也就足够了,暂时还用不上AeroSpike。

    2019-08-14
  • Linuxer
    请问怎么启用, FTL、TRIM

    作者回复: 现在的SSD你买来以后自己内部有FTL的硬件,而且默认是做了TRIM的,所以不需要担心啦

    2019-08-14
收起评论
13
返回
顶部