深入浅出计算机组成原理--概述

算是读书笔记吧

极客时间--深入浅出计算机组成原理


冯·诺依曼体系结构(存储程序计算机)

任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。

存储程序计算机

无论是“不可编程”还是“不可存储”,都会让使用计算机的效率大大下降。而这个对于效率的追求,也就是“存储程序计算机”的由来。

  • “可编程”计算机
    程序在计算机硬件层面是“写死”的。
    最常见的就是老式计算器,电路板设好了加减乘除,做不了任何计算逻辑固定之外的事情。

  • “存储”计算机
    典型的就是早年的“Plugboard”这样的插线板式的计算机。整个计算机就是一个巨大的插线板,通过在板子上不同的插头或者接口的位置插入线路,来实现不同的功能。

五大组成部分

  • 运算器

完成各种算术和逻辑运算

包含算术逻辑单元(Arithmetic Logic Unit,ALU)和处理器寄存器(Processor Register)的处理器单元(Processing Unit)。因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫作数据通路(Datapath)或者运算器。

  • 控制器

用来控制程序的流程,通常就是不同条件下的分支和跳转

包含指令寄存器(Instruction Register)和程序计数器(Program Counter)的控制器单元(Control Unit/CU)。

在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的 CPU。

  • 存储器

存储数据(Data)和指令(Instruction)

主要是内存,以及更大容量的外部存储。
在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。

  • 输入设备和输出设备

个人电脑的鼠标键盘是输入设备,显示器是输出设备。我们用的智能手机,触摸屏既是输入设备,又是输出设备。而跑在各种云上的服务器,则是通过网络来进行输入和输出。这个时候,网卡既是输入设备又是输出设备。

所有的计算机程序,也都可以抽象为从输入设备读取输入信息,通过运算器和控制器来执行存储在存储器里的程序,最终把结果输出到输出设备中。


计算机的性能

  • 响应时间(Response time)

也叫执行时间(Execution time)。指的就是,我们执行一个程序,到底需要花多少时间。
花的时间越少,自然性能就越好。

  • 吞吐率

也叫带宽(Bandwidth)。指我们在一定的时间范围内,到底能处理多少事情。
这里的“事情”,在计算机里就是处理的数据或者执行的程序指令。

  • 性能
    我们一般把性能,定义成响应时间的倒数,也就是:性能 = 1/ 响应时间

  • 跑分软件

而在业界,各大 CPU 和服务器厂商组织了一个叫作 SPEC(Standard Performance Evaluation Corporation)的第三方机构,专门用来指定各种“跑分”的规则。

SPEC 提供的 CPU 基准测试程序,就好像 CPU 届的“高考”,通过数十个不同的计算程序,对于 CPU 的性能给出一个最终评分。这些程序丰富多彩,有编译器、解释器、视频压缩、人工智能国际象棋等等,涵盖了方方面面的应用场景。


主频

print出来的时间差,不能代表真实的性能

这个时间叫Wall Clock Time 或者 Elapsed Time。就是在运行程序期间,挂在墙上的钟走掉的时间。

他受到很多条件的影响:程序之间进行切换、IO读取数据、降频运行等等。

主频

我们 CPU 的一个“钟表”能够识别出来的最小的时间间隔

以2.8GHz的主频为例:CPU 在 1 秒时间内,晶振2.8G次,可以执行的简单指令的数量就是 2.8G 条。

  • 晶体振荡器(Oscillator Crystal)
    CPU 内部,和我们平时戴的电子石英表类似,简称为晶振。
    我们的 CPU,是按照这个“时钟”提示的时间来进行自己的操作。
    主频就是一秒钟内晶振滴答的次数。
  • 超频

调高CPU的主频,以获得更高的性能

程序的 CPU 执行时间

一个程序,真正在CPU中运行的标准化时间。

程序的 CPU 执行时间 =CPU 时钟周期数×CPU 时钟周期时间

  • CPU 时钟周期时间

等于每次晶振的时间也就是1/主频。

  • CPU 时钟周期数

测试程序需要执行多少个CPU 执行时间。

比如需要执行10条简单指令的测试程序,他的时钟周期数就是10。
但是可能有的复杂指令一个时钟周期数搞不定。

所以我们可以进一步拆分
把CPU 时钟周期数进一步量化成:

指令数×每条指令的平均时钟周期数(Cycles Per Instruction,简称 CPI)

于是:

程序的 CPU 执行时间 = CPU 时钟周期数×时钟周期时间 就变为
程序的 CPU 执行时间 = 指令数×每条指令的平均时钟周期数×时钟周期时间

如何提升性能(摩尔定律)

  1. 时钟周期时间
    计算机主频,这个取决于计算机硬件。
  2. 每条指令的平均时钟周期数 CPI
    一条指令到底需要多少 CPU Cycle。比如流水线技术、分支预测、数据冒险
  3. 指令数
    代表执行我们的程序到底需要多少条指令、用哪些指令。

性能提升的5个基本途径

  1. 摩尔定律(主频)
    响应时间

  2. 并行计算(多核)
    吞吐率
    Amdahl定律

  3. 流水线法
    并发编程、异步编程、音视频播放器边播放边缓冲

  4. 加速大概率事件
    各种缓存(内存缓存、CDN缓存)

  5. 预测法
    小说的下一页预加载
    电商大促的CDN预热

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342