CPU 硬盘性能到底相差多少
本文以一个现代的、实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据吞吐量。通过粗略的估算PC各个组件的相对运行速度,希望能给大家留下一个比较直观的印象。本文中的数据来自实际应用,而非理论最大值。时间的单位是纳秒(ns,十亿分之一秒),毫秒(ms,千分之一秒),和秒(s)。吞吐量的单位是兆字节(MB)和千兆字节(GB)。让我们先从CPU和内存开始,下图是北桥部分:
wps_clip_image-14370
第一个令人惊叹的事实是:CPU快得离谱。在Core 2 3.0GHz上,大部分简单指令的执行只需要一个时钟周期,也就是1/3纳秒。即使是真空中传播的光,在这段时间内也只能走10厘米(约4英寸)。把上述事实记在心中是有好处的。当你要对程序做优化的时候就会想到,执行指令的开销对于当今的CPU而言是多么的微不足道。
当CPU运转起来以后,它便会通过L1 cache和L2 cache对系统中的主存进行读写访问。cache使用的是静态存储器(SRAM)。相对于系统主存中使用的动态存储器(DRAM),cache读写速度快得多、造价也高昂得多。cache一般被放置在CPU芯片的内部,加之使用昂贵高速的存储器,使其给CPU带来的延迟非常低。在指令层次上的优化(instruction-level optimization),其效果是与优化后代码的大小息息相关。由于使用了高速缓存技术(caching),那些能够整体放入L1/L2 cache中的代码,和那些在运行时需要不断调入/调出(marshall into/out of)cache的代码,在性能上会产生非常明显的差异。
正常情况下,当CPU操作一块内存区域时,其中的信息要么已经保存在L1/L2 cache,要么就需要将之从系统主存中调入cache,然后再处理。如果是后一种情况,我们就碰到了第一个瓶颈,一个大约250个时钟周期的延迟。在此期间如果CPU没有其他事情要做,则往往是处在停机状态的(stall)。为了给大家一个直观的印象,我们把CPU的一个时钟周期看作一秒。那么,从L1 cache读取信息就好像是拿起桌上的一张草稿纸(3秒);从L2 cache读取信息则是从身边的书架上取出一本书(14秒);而从主存中读取信息则相当于走到办公楼下去买个零食(4分钟)。
主存操作的准确延迟是不固定的,与具体的应用以及其他许多因素有关。比如,它依赖于列选通延迟(CAS)以及内存条的型号,它还依赖于CPU指令预取的成功率。指令预取可以根据当前执行的代码来猜测主存中哪些部分即将被使用,从而提前将这些信息载入cache。
看看L1/L2 cache的性能,再对比主存,就会发现:配置更大的cache或者编写能更好的利用cache的应用程序,会使系统的性能得到多么显著的提高。如果想进一步了解有关内存的诸多信息,读者可以参阅Ulrich Drepper所写的一篇经典文章《What Every Programmer Should Know About Memory》。
人们通常把CPU与内存之间的瓶颈叫做冯·诺依曼瓶颈(von Neumann bottleneck)。当今系统的前端总线带宽约为10GB/s,看起来很令人满意。在这个速度下,你可以在1秒内从内存中读取8GB的信息,或者10纳秒内读取100字节。遗憾的是,这个吞吐量只是理论最大值(图中其他数据为实际值),而且是根本不可能达到的,因为主存控制电路会引入延迟。在做内存访问时,会遇到很多零散的等待周期。比如电平协议要求,在选通一行、选通一列、取到可靠的数据之前,需要有一定的信号稳定时间。由于主存中使用电容来存储信息,为了防止因自然放电而导致的信息丢失,就需要周期性的刷新它所存储的内容,这也带来额外的等待时间。某些连续的内存访问方式可能会比较高效,但仍然具有延时。而那些随机的内存访问则消耗更多时间。所以延迟是不可避免的。
图中下方的南桥连接了很多其他总线(如:PCI-E, USB)和外围设备:
wps_clip_image-10158
令人沮丧的是,南桥管理了一些反应相当迟钝的设备,比如硬盘。就算是缓慢的系统主存,和硬盘相比也可谓速度如飞了。继续拿办公室做比喻,等待硬盘寻道的时间相当于离开办公大楼并开始长达一年零三个月的环球旅行。这就解释了为何电脑的大部分工作都受制于磁盘I/O,以及为何数据库的性能在内存缓冲区被耗尽后会陡然下降。同时也解释了为何充足的RAM(用于缓冲)和高速的磁盘驱动器对系统的整体性能如此重要。
虽然磁盘的“连续”存取速度确实可以在实际使用中达到,但这并非故事的全部。真正令人头疼的瓶颈在于寻道操作,也就是在磁盘表面移动读写磁头到正确的磁道上,然后再等待磁盘旋转到正确的位置上,以便读取指定扇区内的信息。RPM(每分钟绕转次数)用来指示磁盘的旋转速度:RPM越大,耽误在寻道上的时间就越少,所以越高的RPM意味着越快的磁盘。这里有一篇由两个Stanford的研究生写的很酷的文章,其中讲述了寻道时间对系统性能的影响:《Anatomy of a Large-Scale Hypertextual Web Search Engine》
当磁盘驱动器读取一个大的、连续存储的文件时会达到更高的持续读取速度,因为省去了寻道的时间。文件系统的碎片整理器就是用来把文件信息重组在连续的数据块中,通过尽可能减少寻道来提高数据吞吐量。然而,说到计算机实际使用时的感受,磁盘的连续存取速度就不那么重要了,反而应该关注驱动器在单位时间内可以完成的寻道和随机I/O操作的次数。对此,固态硬盘(SSD)可以成为一个很棒的选择。
硬盘的cache也有助于改进性能。虽然16MB的cache只能覆盖整个磁盘容量的0.002%,可别看cache只有这么一点大,其效果十分明显。它可以把一组零散的写入操作合成一个,也就是使磁盘能够控制写入操作的顺序,从而减少寻道的次数。同样的,为了提高效率,一系列读取操作也可以被重组,而且操作系统和驱动器固件(firmware)都会参与到这类优化中来。
最后,图中还列出了网络和其他总线的实际数据吞吐量。火线(fireware)仅供参考,Intel X48芯片组并不直接支持火线。我们可以把Internet看作是计算机之间的总线。去访问那些速度很快的网站(比如google.com),延迟大约45毫秒,与硬盘驱动器带来的延迟相当。事实上,尽管硬盘比内存慢了5个数量级,它的速度与Internet是在同一数量级上的。目前,一般家用网络的带宽还是要落后于硬盘连续读取速度的,但“网络就是计算机”这句话可谓名符其实。如果将来Internet比硬盘还快了,那会是个什么景象呢?
我希望这些图片能对您有所帮助。当这些数字一起呈现在我面前时,真的很迷人,也让我看到了计算机技术发展到了哪一步。前文分开的两个图片只是为了叙述方便,我把包含南北桥的整张图片也贴出来,供您参考。
wps_clip_image-25942
转载于:https://blog.51cto.com/13250313/2159006
CPU 硬盘性能到底相差多少相关推荐
- 鲲鹏服务器和英特尔服务器性能,华为服务器用的鲲鹏CPU与英特尔至强CPU,性能到底有多大差距?...
前不久,中国移动2020年PC服务器招标结果公布,华为以32%的份额位居第二,而作为世界最大PC服务器厂商的联想出局,在网友一片叫好声中,也有不少人问道:华为基于ARM的鲲鹏在性能上与英特尔的至强有多 ...
- 手机CPU与电脑CPU性能究竟相差多少?
随着手机CPU厂商(高通.海思.三星.联发科)的不断发力,手机CPU都是四核.八核,联发科甚至开始十核了,而且主频也越来越高,因此绝大部分人认为手机CPU可以和电脑CPU相媲美,但事实却完全不是这样. ...
- esxi 7.0 封装瑞昱网卡驱动_虚拟机(ESXi)下硬盘性能的探索
[本文不讨论的] 想获得最高的虚拟机硬盘效率,是可以直通sata控制器的,这样阵列.休眠.smart信息等特性都可以直接使用.其次,直通硬盘也不错,单盘的效率基本接近原生. 这两种直通在ESXi.PV ...
- 手机和工业计算机运算能力对比,手机CPU与电脑CPU的性能究竟差多少
手机CPU与电脑CPU的性能究竟差多少 如今,主流手机CPU都是四核.八核,联发科甚至开始研发十核了,而且主频也越来越高.因此,不少人认为手机CPU已经能够媲美电脑CPU了. 其实过CPU性能不能只看 ...
- 固态硬盘linux 性能,一种提高linux系统固态硬盘性能的方法与流程
本发明涉及服务器硬盘领域,具体涉及一种提高l inux系统固态硬盘性能的方法. 背景技术: 固态硬盘相比传统的机械盘,具有更高的读写速度,更好的防震抗摔性,低功耗.无噪音.轻便以及工作温度范围大等优点 ...
- SATA硬盘性能测试软件,趣味测试:实测SATA线对硬盘性能的影响
1不同主板附带SATA数据线对比 前言:随着硬盘技术的不断发展,SATAII接口已经逐渐成为了当前主流硬盘的必备接口.而具备热插拔特性.长度可达1米.拥有极小体积且安装和拆卸简单的SATA数据线,也取 ...
- Win8初体验 内存/SSD硬盘性能挑Win7(一)
最近Win8的消息非常火,而且官方也提供了Windows8开发者预览版的链接下载,官方统计已经下载了超50万次,可见用户对Win8的关注度.而Windows 8自带的Metro界面也的确让我们见识到了 ...
- 24核超级计算机,从CPU内部详解电脑CPU的性能:24核CPU什么样?
现如今的CPU技术已经相当成熟,每隔几年,生产技术上来说会有新的制程商用,生产技术更是几乎每两三个季度就会更新.目前电脑CPU市场几乎是被Intel和AMD霸占.国产龙芯CPU和麒麟系统虽然已经面世有 ...
- android内核超频修改,CPU主频性能跑分测试
CPU主频性能跑分测试 CPU主频性能跑分测试 接下来的测试,笔者以为是用户都比较关心的测试了(虽然得出的分值只是理论上的测试结果,注:这里忽略双核CPU的手机). 根据前面的参数设定.调试验证等顺序 ...
最新文章
- python 笔记 之 类的继承与重写
- java导入自定义类_导入自定义Java类
- Examine Scheduling Policies
- java 控制语句、数组、方法
- 在Windows的CMD中如何设置支持UTF8编码?
- Java面试题中高级,java引用数据类型和基本数据类型区别
- linux 定时执行搅拌,Linux上定时shell脚本
- decose oracle_ORACLE会话连接进程三者总结
- 【springBoot测试】【自定义配置】使用SpringBoot测试框架内容
- matlab进阶摸索篇——彩色图直方图均衡化
- 2019牛客暑期多校训练营(第五场)G	subsequence 1(dp+组合数)
- python2.7 安装第三方库
- Kotlin快速入门文档
- java线程的生命周期(图解)
- Google Code 中使用svn工具说明
- 矩阵标准型的系数是特征值吗_矩阵分解术,不得不从高斯说起
- 『论文笔记』目标追踪结合相关滤波器资料收集+机器学习基础知识补充!
- ★另人无比怀念的90年代动画片★ ‖最终整理篇‖
- 汉诺塔游戏c语言作业,C语言实现汉诺塔游戏.pdf
- 图扑智慧城市 | 搭建政务民生可视化管理系统