目录
一、计算机发展历程
小编是一名00后,并且本小编很明显的发现,小时候电脑可是好东西。当时很羡慕同学家里有电脑,天天偷偷的去小学同学家一起打游戏(赛尔号、植物大战僵尸之类的),但是到后来,中国人民的生活水准日益提高,好像每个人家中都有一两台电脑,小学对面的几家网吧也都陆陆续续的倒闭了。
是什么让人民水准日益提高,每家每户都能用上电脑了?如果这是一道政治题,想必大家第一个想到的就是中国共产党的领导!但是如果这是一道计算机的题目,我们是不是得从电脑更新换代的角度去考虑?
计算机发展的很快,每台计算机的制作水准在不断的提高,并且性价比也在不断提升。第一台计算机是1946年诞生的,我们把这台计算机称为ENIAC。这一时代普遍被称为电子管时代,原因是逻辑元采用的是电子管,并且采用的是机器语言编程。但是由于电子管本身就有一定的体积,所以导致这一时代的计算机体积庞大,制作成本还特别高。感兴趣的读者可以搜一下电子管的样子。
后来制作计算机的人发现,这电脑也忒大了,不行,我得改进!于是第二代计算机出生了。这一时代称为晶体管时代,显而易见,是以晶体管作为逻辑单元。除了硬件的发展,软件也变强了,开始有了高级语言,并且这一时代操作系统有了雏形。
再到后来,集成电路与半导体诞生了,计算机的制作人发现,诶嘿,这玩意儿不错,用这玩意儿还能减轻电脑的重量,并且计算速度还快。说干就干!第三代计算机我们称为中小规模集成电路时代,即用中小集成电路作为逻辑单元,用半导体作为存储单元,操作系统进一步发展。
第四代,即我们现在使用的电脑,它用的是超大规模集成电路,此时产生了微处理器,使电脑变得更高级了。
二、计算机层次结构
我们先来逐步分析,计算机可能拥有的层次。
首先,如果大家学习过c语言或者是java语言,它的第一章往往是介绍该语言的历史。而从中我们知道计算机有三个级别的语言,分别叫机器语言、汇编语言以及高级语言。
机器语言我们又称作是二进制语言,它需要编程人员记忆每一条二进制编码,并且机器语言是计算机唯一可以直接识别与执行的语言。而汇编语言则是使用英文单词或者缩写代替二进制语言的指令代码,比如说加法add、减法sub。虽然更容易被人们所记忆与理解,但是我们仍然认为这是一个复杂的语言。最后是高级语言,例如C语言、Java语言,他们是为了方便程序设计人员写出解决问题的处理方案和解题过程的程序,而这种语言是我们现在普遍使用的。
计算机难就难在有些地方难以理解,说着说着就不知道讲的是什么东西了。所以小编我打算将上一段文字给形象化,用一段类比来解释。看下面这张在小学课本上的图,假设小明要从学校走回家,请你给他设计路线。你会怎么做?(假设我们把小明当作是机器人)
相信大家肯定会说向西边走430米,然后向左转,往南走210米。很好!我们可以把这句话类比为高级语言的说法,简单明了,并且便于大家理解。那么如果使用汇编语言,我们会怎么表达呢?
先拿出指南针,确定西边的位置,抬起左腿往前走一步,再抬起右腿往前走一步,如此反复走了430米后,身体向左旋转,再抬起左腿往前走一步,抬起右腿往前走一步。直到走了210米为止。
很离谱是不是?没事,还有更离谱的。如果用机器语言告诉小明怎么走,那么我们需要告诉小明的每一块肌肉在某一时刻是否需要发力。比如说走路需要的腰大肌、竖脊肌、臀大肌、股四头肌、腘绳肌、胫前肌、小腿三头肌,这些肌肉我们告诉它指令1,即表明这些肌肉需要发力。而对于一些不需要使用的肌肉,我们则给它指令0。
通常高级语言需要经过编译程序编译为汇编语言程序,然后经过汇编操作得到及其语言程序,或者直接由高级语言程序翻译成机器语言程序。下面几种程序需要读者进行区分:
所以这么说下来,一台计算机至少是有一个使用机器语言的层次,一个使用汇编语言的层次以及一个使用高级语言的层次。那么,接下来,我们继续对层次扩展。显而易见,机器语言是比较低级的,考虑的是“肌肉”是否发力,其实还有更加低级的,我们可以考虑如何让它发力,这块肌肉的每一个细胞如何活动,并且不可再切分为更加低级的层次了。在计算机中我们称之为微指令系统。同时,随着软件和硬件变得复杂,操作系统层随之而生,这一层的指令能扩展机器的功能,并且定义和解释软件的指令,所以这一层也称为混合层。
所以依据上述分析,我们能得出这样一张层次图:
三、计算机性能指标
小编本来是打算先讲计算机硬件系统的,但限于篇幅,也怕读者们读又长又难的文章会累,于是就把简单一点的内容放在这篇文章,下篇文章在讲解计算机硬件系统,大家敬请期待。
想必大家都是去过手机店或者电脑店买过东西的。大家应该没有听过有人在店里面喊:“服务员,给我来五斤电脑”或者是“店小二,给我切一斤手机”吧?衡量电脑或者手机多少,我们用的是台数,那么衡量电脑性能,我们应该用什么呢?
1、存储容量
大家肯定也希望自己的电脑或者手机能存放的空间越多越好,这个空间,指的就是存储容量。主存容量是指的主存储器所能存储信息的最大容量,通常以字节为单位。在这里,大家要明白几个换算就行了,至于如何计算主存储器的最大容量,小编先给出公式,至于细节则会在下节课讲解存储器时细讲。
我们把8bits(也叫8位)称为一个字节。并且我们要注意,在生活中,我们数钱时,把1k当作是一千的简写,而在计算机内存中1k代表的是1024,即2的十次方,大家计算内存的时候千万要主义这一点!1M指的就是2的二十次方,1G代表的是2的三十次方,1T代表的是2的四十次方。
字长指的是计算机进行一词整数运算所能处理的二进制数据的位数,通常为字节的整数倍。字长越大表示计算精度越高。
而主存储量=存储单元个数乘上存储单元的字长(单位为bit)。如果还不理解的话,你可以把存储单元的字长理解为每个存储单元的大小。这就好比一个仓库堆满了螺狮粉,没有空隙,且每袋螺狮粉的体积是八的整数倍。那么这个仓库的内存可以表示为螺狮粉的袋数乘以每袋螺狮粉的体积。
2、机器字长
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大 小,它决定了计算机的运算精度
指令字长:⼀条指令中包含的二进制代码的位数
存储字长:⼀个存储单元存储的二进制代码的长度
注意:指令字长⼀般为存储字长的整数倍,因为有可能多个存储单元才能组成一条指令。 若指令字长等于存储字长的n倍,则需要n次访存才能取出一条指令,因此,取址周期为机器周期的n倍。
3、运算速度
这个就比较关键了,毕竟我们打游戏也不希望游戏内一卡一卡的,慢吞吞的。
①吞吐量与响应时间
系统在单位时间内处理请求的数量称为吞吐量。
用户向计算机发送一个请求,到系统对该请求做出回应并获得所需结果的等待时间称为响应时间。比如说你想打开王者荣耀,来一局紧张刺激的排位赛,那么响应时间指的就是你点击王者图标到它打开的时间。响应时间可以分为两部分:CPU时间与等待时间。CPU时间指运行一个时间所花费的时间,等待时间指访问存储器与磁盘、进行输入输出等的时间。
②CPI与CPU执行时间
首先我们要明白,计算机内最小的时间单位是CPU时钟周期。它指的是节拍脉冲。对应的主频指的是CPU时钟周期的倒数,也称作CPU时钟频率,即1秒有多少次节拍脉冲。
CPI的全称是Cycle Per Instruction,即执行一条指令所需要的时钟周期数。
那么问题来了,在手机或者电脑中,每一条指令的运行时间都相同吗?显然不是吧。因此,对于一个程序或者一台机器而言,其CPI指的是一个平均值。
而CPU执行时间指的是运行一个程序所花费的时间,那么,我们可以将CPI与CPU执行时间进行换算。
CPU执行时间=该程序的指令数×CPI×CPU时钟周期。
③其他
MIPS:每秒钟执行多少百万条指令,同样的可以与CPI换算。
我们可以发现MIPS=指令条数/(总共执行时间×),其中总共执行时间单位为秒,而不是时钟周期为单位。所以换算的话, 指令条数/总共执行时间 =主频/CPI,即
MIPS=主频/(CPI×)
FLOPS:每秒执行多少次浮点运算。
本期的计算机组成与设计文章到这里就结束了,一键三连,小编带你学习更多的考研知识!