计算机组成原理

计算机组成原理
1,计算机三大件:
1)CPU(Central Processing Unit),所有计算在CPU中完成。
2)内存,编写的程序,打开的浏览器,运行的游戏都要加载到内存里才能运行,程序读取的数据、计算的结果,也都要放在内存里,内存越大,加载的东西也就越多。存放在内存里的程序和数据需要被CPU读取,CPU计算完之后再把数据写回到内存,但CPU不能直接插到内存上,反之亦然,于是带来另一大件—主板。
3)CPU和内存都插在主板上,主板的芯片组和总线解决了CPU和内存之间如何通信的问题。芯片组控制数据传输的流转,总线决定数据传输的速度。
2,冯·诺依曼体系结构,即存储程序计算机,可编程和可存储的计算机。
1)包含算术逻辑单元和处理寄存器的处理器单元,用来完成各种算术和逻辑运算,能够完成各种数据的处理和计算工作,也可叫数据通路或运算器。
2)以及指令寄存器和程序计数器的控制器单元,用来控制程序的流程,通常是不同条件下的分支和跳转。
3)存储数据和指令的内存,以及更大容量的外部存储。
4)最后就是输入输出设备。
3,在现在的计算机里,算术逻辑单元和控制器单元共同组成了CPU。
4,所有的计算机程序,都可以抽象为从输入设备读取输入信息,通过运算器和控制器来执行在存储器里的程序,最终把结果输出到输出设备中。

计算机的计时单位:CPU时针
1,计算机的性能衡量有两个指标,一是响应时间,二是吞吐率。提升吞吐率可以多加机器多堆硬件,但性能提升不那么容易。用响应时间衡量性能时存在两个问题:
1)时间不准,计算机可能同时运行多个程序,CPU实际上在各个程序之间来回切换,有些程序运行时还需要从网络、硬盘读取数据到内存和CPU,要准确统计程序的运行时间,需要去掉这些时间。Linux下有个time命令,返回三个值,一个real time,即运行程序整个过程流逝掉的时间Wall Clock Time,一个user time即CPU运行程序在用户态运行指令的时间,一个是sys time即CPU运行程序在操作系统内核里运行指令的时间,程序实际花费的CPU执行时间就是user time加上sys time。
2)即使知道CPU运行时间并不一定可以比较出两个程序的性能差异。除了CPU外,时间性能指标还受到主板、内存等相关硬件的影响。
2,将时间指标拆解,程序CPU执行时间变成CPU时钟周期数(CPU Cycles)和时钟周期时间(Clock Cycle)的乘积。程序的CPU执行时间=CPU时钟周期数*时钟周期时间。
3,最简单的提升性能的方案是缩短时钟周期时间(1/CPU主频),即提升CPU主频。
1)CPU主频固定的情况下,减少程序需要的CPU时钟周期数。
2)CPU时钟周期数可再次分解为指令数*每条指令的平均时钟周期数(Cycle Per Instruction,CPI),不同的指令需要的Cycles不同,加法和乘法都对应一条CPU指令,但乘法需要的Cycles比加法多。拆解后程序的CPU执行时间=指令数*CPI*Clock Cycle Time。
4,现代的CPU通过流水线技术(Pipeline)让一条指令需要的CPU Cycle尽可能的少,编绎器将代码编绎成计算机指令时有不同的表示方式。
5,CPU一般被叫做超大规模集成电路,这些电路实际上都是一个个晶体管组合而成,CPU计算其实就是让晶体管里面的开关不断地去打开和关闭,来组合完成各种运算和性能。想要计算的快,一方面在CPU同样的面积里多放晶体管增加密度,另一方面让晶体管打开和关闭的更快一点即提升主频,而这两者都会增加功耗,带来耗电和散热的问题。
1)提升CPU主频带来功耗的问题,功耗~=1/2 *负载电容*电压的平方*开关频率*晶体管数量。
2)同样的面积下增加晶体管,则需要晶体管造得小一点,也就是提升制程。功耗与电压的平方成正比,降低电压能有效地降低功耗。
6,提升主频较难的情况下可通过提升吞吐率通过多核CPU并行提高性能。
1)并行提升性能需要将问题分解成并行的任务,再汇总分解的任务,汇总阶段不可以并行须顺序执行。
2)性能优化中一个经验定律阿姆达尔定律,对一个程序进行优化后,处理器并行运算之后效率提升的情况可以公式表示:优化后的时间=受优化影响的执行时间/加速倍速 + 不受影响的执行时间。
7,在整个计算机组成层面,有几个原则性的性能提升方法:
1)加速大概率事件,在过去几年流行的深度学习,整个计算过程中,99%都是向量和矩阵计算,可通过GPU替代CPU大幅度提升深度学习的模型训练过程。
2)通过流水线提高性能,CPU指令执行过程拆分,细化运行。
3)通过预测提高性能,预先猜测下一步提前进行运算,典型例子是循环访问数组,后续的分支和冒险、局部性原理等CPU和存储系统设计方法,就是利用预测提前进行相应操作,来提升程序性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机组成原理是研究计算机硬件和软件之间相互关系的学科。它涉及到计算机的各个组成部分,包括中央处理器(CPU)、存储器、输入输出设备等。计算机组成原理的实际应用非常广泛,以下是一些实际应用的例子: 1. CPU设计:计算机组成原理的研究可以帮助设计和优化CPU的结构和功能。通过了解CPU的工作原理,可以提高CPU的性能和效率。 2. 存储器管理:计算机组成原理的研究可以帮助设计和管理计算机的存储器系统。了解存储器的层次结构和访问方式可以提高存储器的速度和容量。 3. 输入输出设备:计算机组成原理的研究可以帮助设计和开发各种输入输出设备。了解输入输出设备的工作原理可以提高设备的性能和可靠性。 4. 操作系统:计算机组成原理的研究可以帮助理解操作系统的工作原理。了解操作系统如何管理和调度计算机的资源可以提高系统的性能和稳定性。 5. 网络通信:计算机组成原理的研究可以帮助理解计算机网络的工作原理。了解网络通信的协议和技术可以提高网络的性能和安全性。 6. 并行计算:计算机组成原理的研究可以帮助设计和开发并行计算系统。了解并行计算的原理和技术可以提高计算的速度和效率。 以上是计算机组成原理的一些实际应用。通过深入研究计算机组成原理,可以更好地理解计算机系统的工作原理,并应用于实际的计算机系统设计和开发中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值