
计算机硬件能识别的数据只有二进制0/1,代表高、低电平。

在这里插入图片描述
发展趋势:更微型、用途更广,或者更巨型、更智能。
1946年第一台电子计算机 冯诺依曼(ENIAC)诞生,主要用于二战。其逻辑元件采用电子管,占地面积大,耗电量高,运行慢。并且程序员直接使用纸带0(打孔)1(无孔)编程,格蕾丝·赫伯小姐也是在那段时间提出了 bug 的概念。
贝尔实验室发明了晶体管,体积功耗都降低了,速度上升,也可以用晶体管设计出更复杂的电路。
高级编程语言 FORTRAN 在这段时期出现。
操作系统也随之出现,计算机可以连续完成一些任务。
缺点在于:几十万格晶体管都是手焊的,容易出错。
摩尔定律:集成电路每18个月,晶体管数、整体性能就会翻倍。
发明了集成电路,元件都集成在基片上,体积、功耗进一步减小。
在这段时间高级语言快速发展,也出现了分时操作系统。(当时计算机要同时给多个用户共享使用,轮流切换给各个终端用户的程序。由于时间间隔很短,每个用户都感觉自己好像独占全机一样,这就解决了主机共享问题)
不过计算机主要还是用于科学计算等专业用途,没有太普及。
出现了微处理器 (CPU),微型计算机,个人计算机等。 Windows Mac Linux 操作系统也都出现了。
最开始机器语言,后来汇编语言(除了要解决的问题,还要考虑及其特性)最后是现在流行的较为高级的编程语言 (FORTRAN, JAVA, PASCAL…)
操作系统也由只能命令行操作的 DOS 转为更加图形化的 Windows, Android, IOS…
两大结构:早期冯诺依曼结构,和现代计算机结构。
ENIAC:手动接线控制运算,并且首次提出了存储程序的想法(将指令以二进制代码的形式事先输入计算机的主储存器即内存中,计算机按顺序执行其中的所有指令直到程序结束),实现了自动化执行代码。

冯诺依曼计算机特点:
软件和硬件在逻辑上是等效的。对于同一个功能,两者都能实现。如设计一个乘法电路,可以专门设计一个做乘法的硬件电路,给予一次乘法指令;或者进行多次加法指令。区别在于成本、效率上都是硬件高于软件。
ENIAC 计算机以运算器为中心,比较低效。
现代计算机则以存储器为中心。

其中运算器和控制器关系较为紧密,合并为 CPU。

存储器分为主存储器、辅存储器。
主存储器是运行时的内存,辅存储器是机械硬盘,APP存放在其中,使用时加载到主存中。
包括存储体、MAR( Memory Address Register 存储地址寄存器 )、MDR( Memory Data Register 存储数据寄存器 ),相当于货架、店员、柜台。
店员根据取件号,去对应的货架找到货物,并放到柜台。
CPU 将要取的数据地址给 MAR,MAR 去存储体中找到数据放到 MDR,CPU 再取走数据。(CPU 还可以写入数据)
存储体中每个地址对应一个存储单元,其中存储一串二进制代码,被称为存储字;其长度被称为存储字长,与 MAR 位数相同(MDR 则是和存储地址的位数相同,是地址为8的存储单元);
存储元是用于存储二进制数据的电子元件,每个1 bit(原理:可存储电荷的电容)。
实现算术运算和逻辑运算。
其中包括累加器(也是寄存器)、乘商寄存器、通用寄存器、算术逻辑单元。
累加器 ACC(accumulator) 用于存储操作数和操作结果;
乘商计算器 MQ(multiple-quotient Regesiter) 用于存放乘除运算的操作数和操作结果。
通用寄存器 X 也用于存放操作数。
算术逻辑单元 ALU (Arithmetic and Logic Unit) 用于实现运算。
其中包括指令寄存器、控制单元、程序计数器。
控制单元 CU ( Control Unit )用于分析当前指令并给出控制信号。
程序计数器 PC ( Program Counter )用于存放下一条指令的地址,每次 IR 取下一条指令时 PC 自动++。
指令寄存器 IR ( instruction register )用于存放当前要执行的指令。
其中 CPU 是通过指令周期,判断取到的是数据还是指令。
如果过程中发生了停机,直接利用终端机制通知操作系统终止进程。