计组——概述

概述

计算机系统由硬件软件组成,其中硬件是计算机的实体(如主机、外设等),软件是由具有各类特殊功能的程序组成。

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

发展历程

世界上第一台真正意义上的电子数字计算机约翰.文森特.阿塔纳索夫和其合作者克利福特.贝瑞研制成功的,但只是样机,并未完全实现阿塔纳索夫的构想。

国际计算机公认:第一台电子计算机的真正发明人是美国的约翰.文森特.阿塔纳索夫电子计算机之父

世界上第一台现代电子数字计算机埃尼阿克(ENIAC),它研制主要是为了解决美军复杂的弹道计算问题。冯诺依曼等人在ENIAC研制的同时,开始考虑研制另一台计算机EDVAC。

在这里插入图片描述

占地170平方米,耗电量150千瓦,逻辑元件是电子管,运算速度为5000次加法/秒

1945年,冯诺依曼在《关于EDVAC的报告草案》的报告中,发表了全新的存储程序通用电子计算机方案,宣告了现代计算机结构思想的诞生。

硬件的发展

从20世纪40年代计算机诞生以来,硬件技术经历了电子管、晶体管、集成电路、超大规模集成电路4个发展阶段,计算机体系结构也取得了很大发展,但绝大部分通用计算机的硬件基本组成仍然具有冯诺依曼结构特征。

在这里插入图片描述

第一阶段:电子管时代(1946-1957年)

逻辑元件采用电子管,使用机器语言进行编程,运算速度较低,一般只有几千次或几万次每秒,体积庞大成本高

在这里插入图片描述

第二阶段:晶体管时代(1958-1964年)

逻辑元件采用晶体管,出现了高级语言及其编译程序(FORTRAN),操作系统雏形形成,运算速度提高到几万次到几十万次每秒,体积功耗降低

在这里插入图片描述

第三阶段:中小规模集成电路时代(1965-1971年)

逻辑元件采用中小规模集成电路,高级语言发展迅速,分时操作系统诞生,运算速度提高,体积功耗进一步降低
在这里插入图片描述

第四阶段:大规模、超大规模集成电路时代(1972年至今)

逻辑元件采用大规模集成电路和超大规模集成电路,产生了微处理器,采用并行、流水线、高速缓存和虚拟存储器等概念,Windows、Linux、MacOS等操作系统出现,运算速度提高,体积功耗进一步降低

在这里插入图片描述

软件的发展

计算机语言的发展经历了面向机器的机器语言和汇编语言、面向问题的高级语言。其中高级语言的发展真正促进了软件的发展,它经历了从科学计算和工程计算的FORTRAN、结构化程序设计的PASCAL,到面向对象的C++和适应网络环境的Java。

在这里插入图片描述

与此同时,直接影响计算机系统性能提升的各种操作系统软件也有了长足的发展,特别是操作系统,如Windows、UNIX、Linux等。

在这里插入图片描述

发展趋势

两极分化:

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

在这里插入图片描述

二、巨型机向更巨型化、超高速、并行处理、智能化方向发展

在这里插入图片描述

硬件

在这里插入图片描述

五大部件
输入设备

将程序和数据以及其所能识别和接受的信息形式输入计算机,如鼠标、键盘等

输出设备

将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出,如显示器、打印机等

主存储器

CPU能够直接访问,按存储单元的地址进行存取(地址存取方式)

在这里插入图片描述

其中:

  • 存储体:数据在存储体内按地址存储
  • MAR:存储地址寄存器(Memory Address Register),MAR位数反映存储单元的个数
  • MDR:存储数据寄存器(Memory Data Register ),MDR位数 = 存储字长

辅存则用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问

MAR=4位 → 总共有 24 个存储单元;MDR=16位 → 每个存储单元可存放 16bit,1个字(word)=16bit

数据存储在存储体中,存储体由一系列的存储单元组成

在这里插入图片描述

其中:

  • 存储单元:每个存储单元存放一串二进制代码
  • 存储字(word):存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数
  • 存储元:即存储二进制的电子元件,每个存储元可存 1bit

MAR中存储的是地址,存储元相当于电容,存储字长一般为8的倍数

字由设计计算机规定

运算器

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

在这里插入图片描述

其中:

  • ACC:累加器,用于存放操作数,或运算结果
  • MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果
  • X:通用的操作数寄存器,用于存放操作数
  • ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

ALU制造成本最高

在这里插入图片描述

控制器

控制器是计算机的指挥中心,由其指挥各部件自动协调地进行工作

在这里插入图片描述

其中:

  • CU:控制单元(Control Unit),分析指令,给出控制信号
  • IR:指令寄存器(Instruction Register),存放当前执行的指令
  • PC:程序计数器(Program Counter ),存放下一条指令地址,有自动加1功能

完成一条指令分为取指令(PC)、分析指令(IR)、执行指令(CU)三个步骤,其中PC和IR属于取指,CU属于执行

基本结构
冯诺依曼机

冯诺依曼在研究EDVAC机时提出了存储程序的概念,存储程序的概念奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯诺依曼机。

在这里插入图片描述

存储程序思想:

将实现编制好的程序和原始数据送入主存后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束

在这里插入图片描述

在计算机系统中,软件和硬件在逻辑上是等效的,对于乘法运算可以设计一个专门的硬件电路来实现,也可以采用多次加法运算的软件法师来实现

特点:

  • 采用存储程序的工作方式
  • 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成
  • 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们
  • 指令和数据均用二进制代码表示
  • 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
  • 以运算器为中心,输入输出设备与存储器之间的数据传输均通过运算器完成
现代计算机结构

现代计算机结构以存储器为中心

在这里插入图片描述

软件

编程语言

按照从低级到高级的顺序,可分为:

  • 机器语言,又称二进制代码语言,是计算机机唯一可以直接识别和执行的语言。
  • 汇编语言,用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转化为机器语言程序后,才能在计算机的硬件系统上执行
  • 高级语言,如C、C++、Java等是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
翻译程序

由于计算机无法直接理解和执行高级语言程序,需要将高级语言程序转换为机器语言程序,通常把进行这种转换的软件系统称为翻译程序,翻译程序有以下三类:

  • 汇编程序(汇编器):将汇编语言程序翻译成机器语言程序
  • 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行(每次执行都要翻译)
  • 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序(只需要翻译一次)

在这里插入图片描述

编译、汇编、解释程序可统称为翻译程序

多级层次结构

在这里插入图片描述

自下而上,共有5层:

  • 微程序机器层:硬件层,由机器硬件直接执行微指令
  • 传统机器语言层:机器层,由微程序解析机器指令系统
  • 操作系统层:混合层,由操作系统程序实现,操作系统程序是由机器指令和广义指令组成的(广义指令是为了拓展机器功能而设置的,由操作系统定义和解释的软件指令)
  • 汇编语言层:由汇编程序支持和执行,为用户提供一种符号化的语言,借此可编写汇编语言源程序
  • 高级语言层:由各种高级语言编译程序支持和执行,是面向用户的,是为方便用户编写应用程序而设置的

在高级语言层之上,还可以有应用程序层,它由解决实际问题的处理程序组成,如文字处理软件、多媒体处理软件和办公自动软件等。

计算机体系结构:机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性(指令系统、数据类型、寻址技术、1/0机理)(如何设计硬件与软件之间的接口,如有无乘法指令)

计算机组成原理:实现计算机体系结构所体现的属性,对程序员透明(具体指令的实现)(如何用硬件实现所定义的接口,如如何实现乘法指令)

程序执行过程

在这里插入图片描述

执行可执行文件hello.exe,过程如下:

  1. shell程序会将用户从键盘输入的每个字符逐一读入CPU寄存器中

  2. 然后再保存到主存储器中,在主存的缓冲区形成字符串(“./hello”)

  3. 等到接收到【Enter】按键时,shell将调出操作系统内核中相应的服务例程,由内核来加载磁盘上的可执行文件hello到存储器

  4. 内核加载完可执行文件中的代码及其所要处理的数据(”hello,world\n“)后,将hello第一条指令的地址送到程序计数器PC中,CPU随后开始执行hello程序,它将加载到主存中的字符串(”hello,world\n“)中的每一个字符从主存取到CPU的寄存器中

  5. 然后将CPU寄存器中的字符送到显示器中显示出来

性能指标

在这里插入图片描述

存储器
主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数x字长(512K x 16位)来表示存储容量

在这里插入图片描述

CPU
CPU时钟周期

通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,执行指令的每个动作至少需要1个时钟周期

CPI

执行一条指令所需的时钟周期数,不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数

CPU时钟频率(主频)

CPU内数字脉冲信号震荡的频率

在这里插入图片描述

主频越高,CPU速度越快,性能越好

主频高的CPU不一定比主频低的CPU快,还需要考虑其他因素,如A主频2GHz,平均CPI=10,而B的主频1GHz,平均CPI=1。即使A与B的平均CPI相同,A也不一定比B快,还要看指令系统,如A不支持乘法指令,只能用多次加法实现乘法;而B支持乘法指令。

CPU执行时间

指运行一个程序所花费的时间,CPU执行时间 = CPU时钟周期数 / 主频 = (指令条数 x CPI)/ 主频

IPS

MIPS,每秒执行多少百万条指令,MIPS = 指令条数/(执行时间 x 10^6) = 主频/(CPIx10^6)

MIPS对不同机器进行性能比较是有缺陷的,因为不同机器的指令集不同,指令的功能也就不同,同一功能在不同机器上实现需要使用的指令条数不同,而不同机器的CPI和时钟周期也不同

FLOPS

分为:

  • MFLOPS:每秒执行多少百万次浮点运算,MFLOPS = 浮点操作次数 / (执行时间 x 10^6)
  • GFLOPS:每秒执行多少十亿次浮点运算,GFLOPS = 浮点操作次数 / (执行时间 x 10^9)
  • TFLOPS:每秒执行多少万亿次浮点运算,TFLOPS = 浮点操作次数 / (执行时间 x 10^12)
  • PFLOPS:PFLOPS = 浮点操作次数 / (执行时间 x 10^15)
  • EFLOPS:EFLOPS = 浮点操作次数 / (执行时间 x 10^18)
  • ZFLOPS:ZFLOPS = 浮点操作次数 / (执行时间 x 10^21)
系统
字长

字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,字长通常与CPU的寄存器位数、加法器有关,一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高,字长通常选定为字节(8位)的整数倍

数据通路带宽

数据通路带宽是指数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据),一般指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同,会直接影响到各个硬件部件之间的数据传输效率

各个子系统通过数据总线连接形成的数据传送路径称为数据通路

吞吐量

吞吐量是指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。由于每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。

吞吐量可以以指令或程序为基底

响应时间

响应时间是指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/0操作、操作系统开销等时间)

专业术语

基准程序

专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能

在这里插入图片描述

跑分软件

注意:

  • 可以在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能,但对于不同的应用场合,应该选择不同的基准程序

  • 使用基准程序进行计算机性能的评测也存在一些缺陷,因为基准程序的性能可能与某一小段的短代码密切相关,而硬件系统设计人员或编译器开发者可能会针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快,以至于得不到准确的性能评测结果

  • 基准程序执行得越快并不能说明机器性能越好,因为基准程序中的语句存在频度差异,运行结果也不能完全说明问题

系列机

具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列

兼容

指软件或硬件的通用性,即运行在某个型号的计算机系统中的硬件/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性

软件可移植性

指把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性

固件

将程序固化在ROM中组成的部件称为固件,固件是一种具有软件特性的硬件,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物。

附:思维导图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值