计算机为什么普遍采用二进制?
这是一个很常识性但非常重要的问题,冯.诺依曼计算机
也叫存储程序 计算机
,其中“存储程序”的概念是 指 将指令以二进制代码的形式事先输入计算机的主存储器 ,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
我们更熟悉十进制的运算,0、1、2、3、4、5、6、7、8、9十个数字,逢十进一。比如中国人从小背的“九九乘法表”其实就是十进制变种。但是计算机中使用二进制,只有0和1两个数字,逢二进一。
采用二进制的原因:
- 二进制在自然界中最容易被表现出来。自然界中二值系统非常多,电压的高低、水位的高低、门的开关、电流的有无等等都可以组成二值系统,都可以用来做计算机。
- 计算机依靠电力工作,通过电子原件的电压高低反应,很容易就表现出二进制的特性。从某种意义上说,中国古人的八卦是利用符号的二元形态来表示事物,这一点与二进制颇为相同。
64位和32位CPU的区别
64位、32位指的是CPU寄存器
的数据宽度
,也叫 CPU 的位宽
,他们最主要区别在于CPU一次能计算多少字节数据
- 32位CPU,表明处理器 一次可以计算 4 个字节(Byte),即一次可以计算32位(bit)数据。
- 64位CPU,表明处理器 一次可以计算 8 个字节(Byte),即一次可以计算64位(bit)数据。
CPU的位数越高也将会使它的寻址范围、最大内存容量、数据传输和处理速度、数值精度等指标成倍增加,也就是CPU的处理能力得到大幅提升
我们都知道, 32位CPU最大支持4G内存 ,这是怎么算出来的?**2^32B = 4GB,2^35b = 4GB,**注意B和b的区别 "CPU中32位"中的"位"并不是 内存中的"位bit"的概念,对应到内存中其实是"字节Byte" 由于32位最大内存寻址能力只能达到是4G左右,我们就算给32位的电脑装8G的内存条,也无法提高其计算能力
计算机性能
接下来介绍一下关于计算机性能相关的基本概念:
储存器的性能指标
储存器的性能指标主要和以下3个方面有关:
- 存储容量:存储单元个数 * 储存字长(如1M*8bit)
其中:
- MAR位数反映储存单元的个数,即最多能表示多少个不同的状态
n个2进制位能表示 2^n个状态, 2^10=1 K,2^20=1 M,2^30=1 G,2^40=1 T
- MDR位数=储存字长=每个储存单元的大小
- 单位成本:每位价格=总成本/总容量。
- 存储速度:数据传输率=数据的宽度/存储周期
另外还有3个概念,再了解一下:
- **存取时间 **又称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。
- **存储周期 **又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间间隔。
- **存储器带宽 **是单位时间里存储器所存取得信息量。
CPU的性能指标
当我们去京东淘宝上去买,CPU的时候,商家一般会写下面的信息:
12代 酷睿 i7-12700KF 处理器 12核20线程 单核睿频至高可达5.0Ghz 25M三级缓存 台式机CPU
其中除了一下CPU的型号,5.0Ghz是表示CPU性能的一个重要的指标
CPU主频: CPU内核的时钟频率,表示在 CPU内数字脉冲信号震荡的频率 ,常用单位为Hz。平时我们打游戏常说的超频,超的就是这个CPU主频。 CPU时钟周期 :通常为节拍脉冲或T周期,即主频的倒数
,它是CPU中基本时间单位。执行一条指令的耗时 = CPI * CPU时钟周期, 其中CPI表示 执行一条指令所需的时钟周期数
一段程序的耗时 =指令数*CPI * CPU时钟周期, 如果我们想要提升CPU性能问题,其实就是要优化这三者。
系统整体的性能指标
计算机系统的性能主要受是下面3个指标
- 数据通路带宽
数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
- 吞吐量 指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或 存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系 到主存,因此,系统吞吐量主要取决于主存的存取周期。
- 响应时间 指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需 要的结果的等待时间。通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储 器访问、I/O操作、操作系统开销等时间)
跑分软件,像鲁大师等,就是把多个预设好的程序(基准程序)在计算机上运行,然后根据运行需要 的时间,算出一个分数来评估计算机的性能,以便和其他计算机进行比较。
计算机功耗
通过上文CPU 执行时间 = 指令数*CPI * CPU时钟周期
,我们知道程序的 CPU 的性能 受到 指令数、CPI 以及 CPU 主频 的影响, 指令数或者 CPI 工程师,由于影响条件复杂,没法直接干预,或者可能反向干预。主要手段是提高CPU的主频, CPU 变得更快,程序的执行时间自然就会缩短 ,
主频越高越好 ?
答案是否定的 由本文一开始,我们知道现在的计算机里的CPU,都是超大规模集成电路,实际上都是一个个晶体管组合而成的。通过电路的开关的"打开"和"关闭",来实现计算和储存的能力。
要想计算得更快,从硬件角度来说,就是单位体积多放一些晶体管。从软件角度,手动将CPU的主频提升。
但这2种手段,会增加CPU的耗电和散热,即功耗增加。虽然可以通过降低电压来缓解功耗的问题,但是一味地提升主频,提升的性能效果日益衰弱。后面为了提升性能,不再依赖堆硬件方面,计算机采用了从单核CPU到多核CPU,将CPU执行任务流水线化,高并发多线程等等更多的手段
参考资料:
深入理解计算机系统
计算机组成原理
计算机组成原理(第2版)-唐朔飞
-
存储器
+关注
关注
38文章
7452浏览量
163591 -
二进制
+关注
关注
2文章
793浏览量
41593 -
代码
+关注
关注
30文章
4742浏览量
68333
发布评论请先 登录
相关推荐
评论