计算机组成原理----计算机系统(1)

简介: 计算机组成原理----计算机系统

1.计算机的硬件和软件

计算机组成原理由硬件和软件组成:


硬件:计算机的实体,如主机,外设等。


软件:由具体各类特殊功能的程序组成。


计算机性能的好坏取决于"软","硬"件功能的总结


软件又可分为系统软件,应用软件:


系统软件:用来管理整个计算机系统。例如,操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序。


应用软件:按任务需要编制成的各种程序。例如各类APP等。

2.硬件的发展

第一代(电子管时代):

这一代计算机采用电子管作为逻辑元件,体积大,耗电量超大,程序员在纸带机上用机器语言编程,若纸带机上出现"死了的小虫子",可能会导致读程序错误,这就是bug(小虫子)的起源。


第二代(晶体管时代):


使用晶体管作为逻辑元件的电脑,体积比使用电子管作为逻辑元件的电脑体积更小,功耗较低,晶体管是手动焊接在电路板上的,所以很容易导致焊接错误。这一代中,出现了面向过程的程序设计语言:FORTRAN


第三代(中小规模集成电路时代):


集成电路就是将元件集成在基片上,集成电路的可靠性,比晶体管手动焊接的方式更可靠。这一代计算机主要用于科学计算等专业用途,高级语言迅速发展,开始有了分时操作系统。


第四代(大规模、超大规模集成电路时代):


开始出现"微处理器"、微型计算机,并且个人计算机(PC)萌芽


操作系统:Windows、MacOs、Linux...


3.软件的发展

(1)应用软件


编程语言的发展,决定了应用软件的丰富度。在计算机发展初期,程序都需要用机器语言编写,由于机器语言可读性差,所以发明了汇编语言。汇编语言将机器语言翻译为了更易懂的符号。而后出现了高级语言(C++,Java等)。


(2)系统软件


初期的操作系统,如DOS操作系统,只能用命令行操作,后期则出现了包含图形化界面的操作系统,如Windows,Android等


目前计算机存在"两极"分化的发展趋势:


一极是微型计算机,向更微型化、网络化、高性能、多用途方向发展。


另一极是巨型机,向更巨型化、超高速、并行处理、智能化方向发展。


4.计算机硬件的基本组成

(1)早期冯诺依曼机的结构

早期的ENIAC计算机是通过手动接线来控制计算的,即说一步做一步,为了解决这个问题,冯诺依曼提出了”存储程序“


“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

冯诺依曼机的结构如下:

输入设备将信息转换成机器能识别的形式

数据程序通过输入设备的处理后,流向运算器,通过运算器中转,传递给存储器,存储器用于存放数据和程序。


运算器将数据进行算术运算和逻辑运算的处理后,会将数据传递给输出设备,输出设备会将结果转换成人们能看懂的形式。


控制器用于协调部件间协调工作,同时控制器也用于解析存储器中存储的数据,控制器解析数据后,才会指挥运算器进行相应操作。

在计算机系统中,软件和硬件在逻辑上是等效的,也就是说,对于某一种功能,既可以通过软件实现,也可以通过硬件实现,用软件实现成本更低,但效率不高,硬件实现成本更高,但效率也会提升很多。例如,对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执

行多次加法运算来实现。

冯诺伊曼计算机的特点:

1.计算机由五大部件组成:输入/输出设备(I/O设备),控制器,运算器,存储器


2.指令和数据以同等地位存于存储器,只是存储位置不一样而已。可按地址寻访,无论要读出指令或数据,都需要给出其在主存中的位置。


往后看计算机工作过程会更加理解的,这里不太理解没关系。


3.指令和数据用二进制表示


4.指令由操作码和地址码组成,地址码可以有多个,例如二地址指令就有2个地址码


5.存储程序,将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

6.以运算器为中心,输入/输出设备与存储器之间的数据传送通过运算器完成。

运算器本来的工作为数据的运算,现在还要兼任数据的中转,这会导致数据计算的效率降低。所以改进了计算机的结构。

(2)现代计算机的结构

现代计算机以存储器为中心,也就是输入设备输入的数据都是直接存储在存储器中的,当运算器处理完数据后,输出设备也直接从存储器取走数据。

由于运算器和控制器两者的逻辑关系十分紧密,所以这两个芯片通常被集成在同一芯片中,这一芯片就是CPU:CPU=运算器+控制器

如下图所示,控制器通过控制线告诉运算器执行何种运算,同时控制器会控制主存储器的读/写,也会控制外设的启动和停止。


主存储器与CPU会进行数据交换,例如需要参与运算的数据,如x,y等变量,还有一些是指令,指令会放到控制器中,由控制器解析指令的含义,并且发出相应的控制信号。


输入/输出设备会与主存储器进行数据交换。  

所以现代计算机的结构如下:

/

5.各硬件的工作原理

(1)主存储器

主存储器包含存储体,MAR(Memory Address Register,存储地址寄存器),MDR(Memory Data Register,存储数据寄存器),地址寄存器用于保存地址相关的二进制数据,数据寄存器用于保存数据。


CPU往主存储器读数据流程如下:


CPU想从主存中取某个数据,那么CPU会将该数据的地址保存在地址寄存器中,主存储器会根据MAR的地址信息,从存储体中取相应数据,并写到数据寄存器中,最后CPU就可以通过数据线,取走他想要的数据了。


CPU往主存储器写数据流程如下:


CPU会指明写入到主存的什么位置,该地址会通过地址线保存在MAR中,要写入的数据则通过数据线保存在MDR中,并且CPU会通过控制总线,告诉主存储器这次执行的操作是写操作。通过CPU发出的这3个信息,主存储器就能在相应的位置写入信息了。

存储体:


数据在存储体内按地址存储,每个地址对应一个存储单元。一个存储体会被分为一个个的存储单元,每个存储单元存放一串二进制代码,这个二进制代码就是存储字(word),而二进制代码的位数就是存储字长。通常每个单元存放的二进制数的位数为8bit的整数倍。存储元就是存储二进制的电子元

件,每个存储元可存 1bit。

存储单元:每个存储单元存放一串二进制代码

存储字(word):存储单元中二进制代码的组合

存储字长:存储单元中二进制代码的位数

存储元:即存储二进制的电子元件,每个存储元可存1bit

MAR指明了MAR的地址,所以MAR位数反映存储单元的个数,而MDR是要保存存储单元数据的,所以MDR位数=存储字长。


例如MAR=4位,那么总共有24个存储单元。MDR=16位,那么每个存储单元可存放16bit,也就是1个字(word)


注:其实现在的计算机通常把MAR、MDR也集成在CPU内

(2)运算器

用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)

运算器的结构如下:

ACC:累加器,用于存放操作数,或运算结果。

MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。

X:通用的操作数寄存器,用于存放操作数。

ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。由于电路成本复杂,所以成本也是最高的。

ACC,ALU,MQ三个部件在进行不同运算时,存放的数据各不相同:

3)控制器

控制器的结构如下:

CU(control Unit):控制单元,分析指令,给出控制信号

IR(Instruction Register):指令寄存器,存放当前执行的指令


PC(Program Counter):程序计数器,存放下一条指令地址,有自动加1功能


计算机执行一条指令需要完成以下阶段:


1.取指令:根据PC记录的下一条指令的地址,取出指令。


2.分析指令:取出的指令会被放到IR中,CU就会分析这条指令的功能。


3.执行指令:分析过后,CU这一部件就会配合其他部件执行指令。

计算机组成原理----计算机系统(2):https://developer.aliyun.com/article/1511518

目录
相关文章
|
11月前
【计算机组成原理】计算机组成原理(三)
计算机组成原理(三) 奇偶校验码: 校验原理:
82 0
|
4月前
|
存储 固态存储 芯片
计算机组成原理(1)----存储器相关(2)
计算机组成原理(1)----存储器相关
91 1
|
4月前
|
存储 JavaScript 前端开发
计算机组成原理----计算机系统(2)
计算机组成原理----计算机系统
84 0
|
11月前
|
C语言
【计算机组成原理】综合测试
【计算机组成原理】综合测试
135 0
|
C语言
计算机组成原理相关知识
计算机组成原理相关知识
94 0
|
存储 芯片
01 计算机组成原理与体系结构----02计算机结构(下)
01 计算机组成原理与体系结构----02计算机结构(下)
01 计算机组成原理与体系结构----02计算机结构(上)
01 计算机组成原理与体系结构----02计算机结构
|
移动开发
01 计算机组成原理与体系结构----01数据的表示
01 计算机组成原理与体系结构----01数据的表示
|
存储 算法 芯片
|
存储 编译器 图形学