当前位置: 首页 > news >正文

《深入浅出计算机组成原理》学习笔记 Day1

文章目录

    • 1. 学习计算机组成原理的意义
    • 2. 性能的概念
    • 3. 性能的提升途径
      • 3.1 “堆硬件”
      • 3.2 加速大概率事件
      • 3.3 通过流水线提升性能
      • 3.4 通过预测提升性能

1. 学习计算机组成原理的意义

理解计算机是怎么运作的,以及为什么要这么运作。
一方面,整个组成乃至体系结构,都是基于冯·诺依曼架构组成的软硬件一体的解决方案。另一方面,这里方方面面的设计和考虑,除了体系结构层面的抽象和通用性之外,“为什么”所要解决的事情,很多时候就是提升“性能”

2. 性能的概念

衡量性能的公式:
T c p u = n × C P I × C l o c k C y c l e T i m e T_{cpu} = n \times CPI \times Clock Cycle Time Tcpu=n×CPI×ClockCycleTime
其中,
T c p u T_{cpu} Tcpu:程序的CPU执行时间;
n n n :指令数;
C P I CPI CPI :每条指令的平均周期数(Cycles Per Instruction)。
这也就指出了提升性能的三种方式:

  1. 提升主频
  2. 优化CPU设计使得在单个时钟周期内可以执行更多指令
  3. 通过编译器来减少需要的指令数

3. 性能的提升途径

3.1 “堆硬件”

无论是简单地提升主频,还是增加更多的CPU核心数量,通过并行来提升性能,都会遇到相应的瓶颈。仅仅简单地通过这样“堆硬件”的方式,在今天已经不能很好地满足我们对于程序性能的期望了。

3.2 加速大概率事件

一个很好的例子。在深度学习流行的今天,整个计算过程中,99%都是向量和矩阵的计算。于是,工程师通过用GPU来替代CPU,大幅提升了深度学习的模型训练过程。本来一个CPU需要跑几小时甚至几天的程序,GPU只需要几分钟就好了。

3.3 通过流水线提升性能

我们把CPU指令执行的过程进行拆分,细化运行,这也是现代CPU在主频没有办法提升那么多的情况下,性能仍然可以提升的重要原因之一。

3.4 通过预测提升性能

通过预测下一步该干什么,而不是等上一步运行的结果,提前进行运算,也是让程序跑得更快一点的办法。一个典型的例子:当要循环访问数组的时候,凭经验,你也会猜到下一步我们会访问数组的下一项,也就是利用“程序的局部性原理”。

相关文章:

  • 如何开一个网站/注册域名后怎么建网站
  • 陕西省城乡建设厅的网站/旺道seo推广效果怎么样
  • 门户系统1号线wordpress/短视频seo询盘获客系统
  • 网站分类导航代码/seo关键字优化教程
  • seo网站内部优化/seo推广软
  • 做宣传用什么网站好/bt磁力种子
  • 蚂蚁智能内容合规产品,提供一站式营销合规管控解决方案
  • 怎么恢复360删除的文件?360文件恢复,快速完成
  • SpringCloud-Netflix学习笔记06——Eureka对比Zookeeper
  • 【数据结构和算法】栈—模拟实现Stack和栈相关算法题
  • 迪文屏OS汇编代码开发-参数修改 保存 翻页(七)
  • 43. 【农产品溯源项目前后端Demo】后端二次开发的重点修改位置
  • Android | DataStrorage 与 ContentProvider
  • 天天都接触的以太网接口,你知道有哪些类型和参数吗?
  • 绕任一向量旋转矩阵计算思考与实现
  • Java 设计模式-目的和设计原则
  • 目前流媒体开发工程师工作主要是做什么?
  • synchronized锁机制 之 代码块锁