我们在之前的文章中介绍了一张出自Google大神 Jeff Dean的图,这张图展示系统中各种关键操作的时延具体有多少。
需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的最新数据见这里:
这张图中一个小的黑方块代表1纳秒,一个蓝色的方块代表100纳秒,一个绿色的方块代表10微秒,一个红色的方块代表1毫秒。
尽管这种表示方法已经比第一张图形象很多了,但在我们(人类)看来对这些纳秒没太多概念,毕竟人类的反应时间仅仅0.2 -0.3秒,比这更短的时间人类是没有太多感觉的。
为了让大家能更加直观的感受速度差异,我们依然以第一张表为例,并且把计算机世界中的0.5纳秒当做1秒来换算一下,这样你就能清楚的感受到这些计算机世界中各个硬件巨大的速度差异了。
我们再来看一下:
现在就很有意思了,假定L1 cache的访问延迟为1s,那么访问内存的延迟就高达3分钟。
从内存上读取1MB数据需要5天,从SSD上读取1MB需要20天,磁盘上读取1MB数据高达1年的时间。
更有趣的来了,假设物理机重启的时间为2分钟,如果也将0.5ns视为1s的话那么2分钟就相当于5600年,中华文明上下五千年,大概就是这样一个尺度。
现在你应该能直观的感受到CPU的速度到底有多快了吧。
以上都是基于时间维度换算的。
接下来我们基于距离维度进行了一次更有意思的换算。
CPU访问L1 cache 的时延为0.5ns,假定在这个时间尺度下我们能行走1米,大概是你从在家里走两步拿个快递的距离。
CPU访问内存的时延里我们可以行走200米,大概是你出门去个便利店的距离。
CPU从内存中读取1MB的时延我们可以行走500公里,这个距离大概是从北京到青岛的直线距离。
网络包在数据中心内部走一圈的时延可以让我们行走1000公里,大概是从北京到上海的直线距离。
从SSD中读取1MB的时延可以让我们行走2000公里,大概是从北京到深圳的距离。
从磁盘中读取1MB的时延可以让我们行走40000公里,正好是围绕地球转一圈的距离。
而网络数据包从美国加利福尼亚到荷兰转一圈的时延可以让我们行走30万公里,正好是从地球到月球的距离。
物理机一次重启的时延可以让我们行走1.2亿公里,差不多是从地球到火星的距离。
现在你应该对计算机系统中各种时延有一个直观上的认知了吧。
RECOMMEND
推荐阅读
01
作者:汪文祥、邢金璋
龙芯中科技术股份有限公司首席工程师汪文祥作品
一本书带你从零开始设计自己的CPU
推荐理由
深入剖析CPU设计与开发的关键环节;从零开始构建一个功能逐步完善的CPU;全面培养CPU设计的工程化思维与实战能力。
本书作者从事CPU产品自主研发工作近20年,在CPU设计方面积累了丰富的经验,并一直尝试在教学过程中将这些经验转化为教学内容,探索一条培养CPU设计人才的行之有效的途径。本书面向初学者,以实战的方式带领读者了解CPU设计的流程,并从零开始逐步开发出自己的CPU。本书将计算机组成与体系结构的理论知识和工业实践充分结合,使读者在实际的CPU设计与开发过程中更加深入地理解计算机系统的工作原理,掌握CPU设计理念、方法和技术。
02
作者:胡伟武 等
龙芯团队作品
采用龙芯团队推出的LoongArch指令系统
全面展现指令系统设计的发展趋势
从硬件工程师的角度理解软件
从软件工程师的角度理解硬件
推荐理由
本书由国内从事微处理器设计的一线科研人员编写而成。作者从微处理器设计的角度出发,充分考虑计算机体系结构的学科完整性,强调体系结构、基础软件、电路和器件的融会贯通。全书共分12章,包括指令系统结构、计算机硬件结构、CPU微结构、并行处理结构、计算机性能分析等主要内容,重点放在作为软硬件界面的指令系统结构,以及包含CPU、GPU、南北桥协同的计算机硬件结构上。
03
作者:陈云霁、李玲、李威 等
推荐理由
本书通过一个贯穿始终的应用案例——图像风格迁移,全面系统地介绍智能计算系统的软硬件技术栈,涵盖神经网络基础算法、深度学习编程框架、智能芯片体系结构、智能编程语言等。领衔作者陈云霁带领的团队曾研制了国际上*个深度学习处理器芯片“寒武纪1号”,本书凝聚了作者团队多年的科研和教学成果,是前沿研究与技术实践结合,快速提升智能领域系统能力的教材和技术参考书。
04
作者:李玲 郭崎 陈云霁 等
寒武纪陈云霁团队出品
《智能计算系统》配套实验
推荐理由
《智能计算系统》通过一个贯穿始终的应用案例——图像风格迁移,全面系统地介绍智能计算系统的软硬件技术栈。《智能计算系统实验教程》是实验与理论一对一设计,切实培养系统能力,以稠密知识点构建知识树,有机掌握全栈体系。实验设计游戏化,好学好玩,轻松上手又上头。
05
作者:[美]乔纳森·E.斯坦哈特(Jonathan E. Steinhart )
译者:张开元、张淼
计算机程序硬件软件从底层实现到高层展现原理讲解
对底层知识的多个主题进行了公平的覆盖
推荐阅读
计算机编程不是抽象的,程序是在机器上运行的。了解计算机如何工作以及程序如何在计算机上运行是成为一名更好的程序员的必要条件。在本书中,资深工程师Jonathan E. Steinhart深入探讨了计算机背后的基础概念,比如计算机硬件,软件在硬件上的行为,如何编写高效的程序,计算机安全基础知识,以及在编写代码时需要考虑的现实问题。本书对底层知识的多个主题进行了公平的覆盖——介绍有助于提高整个系统质量的许多领域的知识(包括计算机硬件、组合逻辑、时序逻辑、计算机体系结构、计算机组成原理、操作系统、系统程序设计等)。
06
作者:[美] 兰德尔 E.布莱恩特(Randal E. Bryant)
大卫 R. 奥哈拉伦(David R. O'Hallaron)
译者:龚奕利 贺莲
将所有计算机系统相关知识融会贯通
助你成为凤毛麟角的高级程序员的必备神书。
如果你研究和领会了这本书里的概念
你将开始成为极少数的“牛人”!
推荐理由
本书是一本将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。卡内基-梅隆大学、北京大学、上海交大等国内外众多知名高校选用指定教材。本书的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为,以及造成效率低下的原因。从程序员的角度来学习计算机系统是如何工作的会非常有趣。最理想的学习方法是在真正的系统上解决具体的问题,或是编写和运行程序。这个主题观念贯穿本书始终。
扫码关注【CSAPP】视频号
更多精彩回顾
书讯 | 11月书讯(上)| 拿下这些新书,赢在起跑线
书讯 | 11月书讯(下) | 拿下这些新书,赢在起跑线
资讯 | 为什么 Rust 是编程的未来?
书单 | 数据大牛都在啃的15本书
干货 | 聊聊“企业架构”这个连很多IT老兵都陌生的词
收藏 | 看漫画来告诉你:什么是 “元宇宙” ?
上新 | 【新书速递】产品经理应该知道的72件事
赠书 | 【第81期】4道题测试一下,你适不适合做产品经理
点击阅读全文进入专题