计算机中执行的程序
在计算机中能执行的程序是由指令组成的,因此执行程序的过程实际上就是按照给定次序执行一组指令的过程。
一条指令通常分为两部分。
操作码:规定该指令执行什么样的运算(或操作)。
地址吗:规定对哪些数据进行运算,通常表示为数据地址。
计算机中的指令类型很多,各种指令的功能也不尽相同,设置有一些指令不需要地址,因此地址码其实是非必须的。这些指令在计算中就以比特串的形式存在,但由于二进制不易辨认,故后来人们开发出了汇编语言,例如加法指令的表示如下:
ADD A, B
其中 ADD 为指令的操作码, A, B为两个操作数的地址,并且将 A 和 B 中的数据相加后,将结果送到地址A处。类似的指令还有 MUL, SUB, MOV,HLT等,通过这些指令之间的各种排列顺序,计算机就能够正常运行起来了。
计算机的硬件组成
基本部件有中央处理器(CPU, 运算器和控制器),存储器和输入输出设备。
输入设备用来输入原始数据和处理这些数据的程序。
输出设备用来输出计算机的处理结果,可以是数字,字母,表格和图形图像等。
存储器用来存放程序和数据,又有主存储器和辅助存储器之分。主存(内存)读写速度快,但容量有限,直接服务于CPU,用于快速存取程序和数据。辅存(如硬盘)存储容量大,成本较低,但读写速度较慢,主要用于长期保存大量数据。两者协同工作,共同确保计算机高效、稳定地运行。
中央处理器又叫CPU,由运算器和控制器两部分集成组成。
运算器:对信息或数据进行处理和计算的部件。
控制器:用来实现计算机本身运行过程的自动化,即实现程序的自动执行。
各个部件之间通过信号进行通信,主要可分为三种类型,地址、数据和控制信号。这些信号是通过总线来传送的。
各部件之间的结构大致如上图所示。
计算机系统的分类
根据指令流和数据流数量进行分类,可分为以下四种:
1.单指令流单数据流(SISD)计算机系统
通常由一个处理器和一个存储器组成,每次执行一条指令,只从存储器中取一个数据。
2.单指令流多数据流(SIMD)计算机系统
通常由一个指令控制部件,多个处理器和多个存储器组成。各处理器和各存储器之间通过系统内部的互连逻辑电路进行通信。执行程序时,指令控制部件向各个处理器传送同一条指令,处理器执行指令时所需的数据是从存储器中取的,各处理器所处理的数据是各不相同的,这就是多数据流。
3.多指令流单数据流(MISD)计算机系统
在同一时刻执行多条指令,但处理同一个数据。多数人认为这种计算机或取根本不存在。
4.多指令流多数据流(MIMD)计算机系统
由多台处理器(包括指令控制部件和处理器)和多个存储器组成,并有一个系统内部的互连逻辑电路实现各处理器和各存储器之间的通信。每台处理器执行各自的指令,存取各自的数据。
再问一个问题,指令和数据都存放在内存中,计算机要如何区分呢?
如今的计算机硬件
可以看到目前,计算机的硬件部分占比越来越低,而软件的比重越来越高。由于固件的出现,如今要明确软件和硬件的界限其实也不是一件简单的事。