计算机组成原理-第一章 计算机系统概述(详细知识点总结)

第一章 计算机系统概述

大纲
大纲:
(一)、计算机发展历程
(二)、计算机系统层次结构
计算机硬件的基本组成、计算机软件的分类、计算机的工作过程
(三)、计算机性能指标
吞吐量、响应时间、CPU时钟周期、主频、CPI、CPU执行时间、MIPS、MFLOPS、GFLOPS、TFLOPS

1.1计算机发展历程

1.1.1 计算机四代变化

  1. 第一代计算机(1946-1957)电子管时代
  2. 第二代计算机(1957-1964)晶体管时代
  3. 第三代计算机(1965-1971)中小规模集成电路时代
  4. 第四代计算机(1971-至今)超大规模集成电路时代

1.1.2 计算机元件的更新换代

  1. 摩尔定律(现在和18个月之后同样价钱买到的cpu后者性能是前者的十倍)
  2. 半导体存储器的发展
  3. 微处理器的发展

1.1.3 计算机分类与发展方向

  1. 电子计算机分为电子模拟计算机和电子数字计算机
  2. 数字计算机按照用途可划分为专用计算机和通用计算机。这些是根据计算机的效率、速度、价格及运行的经济性和适应性来划分的。
  3. 通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类,谈们的体积、功耗性能、数据存储量、指令系统的复杂程度和价格依次递减。

计算机按照指令和数据流可以划分为:

  1. 单指令流和单数据流系统(SISD),即传统冯·诺依曼体系结构。
  2. 单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。
  3. 多指令流和单数据流系统(MISD),这种计算机实际不存在。
  4. 多指令流和多数据流系统(MIMD),包括多处理器和多就三级系统。

计算机发展趋势“两极”分化:

  1. 微型计算机向更微型化、网络化、高性能、多用途方向发展。
  2. 巨型计算机向更巨型化、超高速、并行处理、智能化方向发展。

1.2 计算机系统层次结构

1.2.1 计算机系统的组成

  完整的计算机系统是由硬件系统和软件系统共同构成的。硬件是有形的物理设备,是计算机系统中实际物理装置的总称。软件是指在硬件上运行的程序和相关数据的文档。

  计算机系统心梗的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。

   对某一个功能来说,既可以用硬件实现,也可以用软件实现,则称为软硬件在逻辑上是等效的。
   通常来说,一个功能若是较为频繁且使用硬件实现的成本较为理想,则使用硬件解决可以提高效率,而用软件的实现可以提高灵活性,但是效率往往不如硬件实现高。

1.2.2 计算机硬件的基本组成

   冯·诺依曼在研究EDVAC机提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称为冯·诺依曼机,特点如下:

1、 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
2、 指令和数据以通的呢过地位存储在存储器中,并可按地址寻访。
3、 指令和数据均用二进制代码表示。
4、 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
5、 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
6、 早起的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。

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

   在微处理器问世之前,运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。
计算机组成原理-第一章 计算机系统概述(详细知识点总结)_第1张图片

  现代计算机已发展为以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。
计算机组成原理-第一章 计算机系统概述(详细知识点总结)_第2张图片
计算机功能部件

  1. 输入设备
    输入设备主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。
  2. 输出设备
    输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统要求的信息形式输出。
  3. 存储器
    存储器是计算机的存储部件,用来存放程序和数据。
    存储器分为主存储器(简称主存,也称内存储器)和辅助存储器(简称辅存,也称外存储器)。CPU能够直接访问的是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问。

  主存储器由许多存储原件组成,每个存储单元包含若干存储元件,每个存储元件存储以为二进制代码“0”或“1”。因此存储单元可存储遗传二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1B(8bit)或是字节的偶数倍。
    主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式(相联存储器是按内容访问的)。
主存储器的基本组成如图所示
计算机组成原理-第一章 计算机系统概述(详细知识点总结)_第3张图片
存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)用于暂存从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需要的各种时序信号。

**注:**MAR与MDR虽然是存储器的一部分,但是在现代CPU中确实存在于CPU中的;另外,高速存储器(Cache)也是存在于CPU中。

  1. 运算器
    运算器是计算机的执行部件,用于进行算数运算和逻辑运算。
    运算器的核心是算数逻辑单元(Arithmetic and Logical Unit,ALU)。运算器包含若干通用寄存器,用于暂存操作数和中间结果,如**累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)**等,其中前三个寄存器是必须有的。

运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否一处,有无产生进位或借位、结果是否为负等。

  1. 控制器
    控制器是计算机的指挥中心,由其指挥各部件自动协调进行工作。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。

PC用来存放当前欲执行指令的地址,可以自动加1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。
IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码AD(IR)送往MAR,用以取操作数。

一般运算器和控制器集成到同一个芯片上,称为中央处理器(CPU) 。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。

CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器地址寄存器MAR和存储器数据寄存器MDR。

下图为冯·诺依曼结构的模型机。

从控制器送出的虚线是控制信号,可以控制如何修改PC以得到下一条指令的地址,可以控制ALU执行什么运算,可以控制主存时进行读操作还是写操作(读/写控制信号)。

CPU和主存之间通过一组总线相连,总线中有地址、控制和数据三组信号线。MAR中的地址信息会直接送到地址线上,用以指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU中写入主存还是从主存读出到CPU,根据市读操作还是写操作来控制将MDR中的数据直接送到数据线上还是将数据线上的数据接收到MDR中。

1.2.3 计算机软件的分类

1.系统软件和应用软件
    软件按其功能分类,可以分为系统软件和应用软件。
    系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。
    应用软件是指用户为解决某个应用领域中的各类问题编制的程序,如科学计算类程序、工程设计类程序、数据与统计处理程序。

**注:**数据库管理系统(DBMS)和数据库系统(DBS)是有区别的。DBMS是位于用户和操作系统之间的一层数据管理软件,是系统软件。而DBS是指计算机系统中引入数据库后的系统,一般由、数据库管理系统、数据库管理员(DBA)和应用系统构成。

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

1.2.4计算机的工作过程

计算机的工作过程分为以下三步:

  1. 把程序和数据装入主存储器。
  2. 将源程序转化为可执行文件。
  3. 从可执行文件的首地址开始逐条执行指令。

1.从源程序到可执行文件
在计算机编写的c语言程序,都必须被转化为一系列的低级指令机器,这些指令按照一种称为可执行目标文件的格式打好包,并以二进制磁盘文件的形式存放起来。
以UNIX刺痛中的GCC编译程序为例,读取源程序文件hello.c,并把它翻译成一个可执行文件目标hello,整个翻译过程可以分为4个阶段完成。
计算机组成原理-第一章 计算机系统概述(详细知识点总结)_第4张图片
(1)预处理阶段
预处理器(CPP)对源程序中以字符#开头的命令进行处理,例如将#include命令后面的.h文件插入程序文件。输出结果是一个以.i为扩展名的源文件hello.i。
(2)编译阶段
编译器(CLL)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s。汇编语言源程序中的每条预计都以一种文本格式描述了一条机器语言指令。
(3)汇编阶段
汇编器(AS)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可以重定位的目标文件hello.o,它是一种二进制文件,因此在文本编辑器中打开会乱码。
(4)链接阶段
链接器(Id)将多个可重定位目标文件和标准函数合并为一个可执行目标文件,或简称可执行文件。

2.指令执行过程的描述
程序中第一条指令的地址置于PC中,根据PC去除第一条指令,经过译码,执行步骤等,控制计算机各功能部件协同运行,完成者条指令的功能,并计算下一条指令的地址。用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。

以取数指令为例(即将指令地址吗知识的存储单元中的操作数取出后送至运算器的ACC中)为例进行说明,信息流程如下:
(1)取指令:PC->MAR->M->MDR->IR
PC(程序计数器)中的地址传递到AM(地址寄存器)中,由AM选中内存中响应的地址。然后M(内存地址中的数据)回传到DR(数据寄存器中),最后从DR传到IR(指令寄存器)中完成取指。
(2)分析指令:OP(IR)->CU
指令译码并送出控制信号。控制器根据IR指令的操作码,生成相应的控制信号,送到不同的执行部件。在本例中,IR是取数指令,因此读控制信号被送到总线的控制线上。
(3)执行指令:Ad(IR)->MAR->M->MDR->ACC
取数操作。将IR中指令的地址码送MAR,MAR中的内容送地址线,同事控制器将读信号送读/写信号线,从主存制定存储单元读出操作数,并通过数据线送至MDR,在传送到ACC。
此外,每取完一条指令,还需为下一条指令做准备,形成下一条指令的地址,即(PC)+1->PC。

注: (PC)指程序计算器中存放的内容。PC->MAR应理解为(PC)->MAR,即程序计数器中的值经过数据通路送到MAR,也即表示数据通路时括号可以省略(因为只是表示数据流经的途径,而不是强调数据本身的流动)。但运算时括号不能省略,即(PC)+1->PC不能写为PC+1->PC。

1.2.5 计算机系统的多级层次结构

计算机系统的多级层次结构的作用,根据从各种急角度看到的机器之间的有机联系,来分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统。
计算机组成原理-第一章 计算机系统概述(详细知识点总结)_第5张图片

第一级是微程序机器层
这是一个实在的硬件层,它由机器硬件直接执行微指令。

第二级是传统机器语言层
它也是一个实在的硬件层,由微程序解释机器指令系统。

第三级是操作系统层
它由操作系统好处呢个系实现,操作系统程序是有机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,多以这一层也称为混合层

第四级是汇编语言层
它为用户提供一种符号化的语言,借此可编写汇编语言的源程序,这一层由汇编程序支持和执行。

第五级是高级语言层
它是面向用户的,是为方便用户编写应用程序设置的。该层由各种高级语言编译程序支持和执行。

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

1.3 计算机的性能指标

1.3.1 计算机的主要性能指标

  1. 机器字长
    机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数,加法器有关,因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8位)的整数倍。
  2. 数据通路带宽
    数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部数据总线宽度(内部寄存器的大小)有可能不同。
    (各个子系统通过数据总线连接形成的数据传送路径称为数据通路)
  3. 主存容量
    主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数x字长(如512kx16)来表示存储容量。其中MAR的位数反映存储单元的个数,MAR的位数反映可寻址范围的最大值(而不一定是实际存储器的存储容量)。
  4. 运算速度
    (1)吞吐量和响应时间
  • 吞吐量
    指系统在单位时间内处理请求的数量。就几乎每步都关系到主存美因茨系统吞吐量主要取决于主存的存取周期。
  • 响应时间
    指从用户向计算机发送一个请求,到系统到该请求做出响应并获得所需结果的等待时间。通常包括CPu时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等的时间)。

(2)主频和CPU时钟周期

  • cpu时钟周期
    通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要一个时钟周期。
  • 主频(CPu时钟频率)
    机器内部主时钟的频率,是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的一个步骤所用的时间越短,执行指令的速度越快。

注: CPU时钟周期=1/主频,主频通常以Hz(赫兹)为单位,1Hz表示每秒一次

(3)CPI(Clock cycle Per Instruction)
    即执行一条指令所需的时钟周期数。
(4)CPU执行时间,指运行一个程序花费的时间。
         CPU执行时间=CPU时钟周期数/主频=(指令条数xCPI)/主频

上式表明,CPU的性能(CPU执行时间)取决于三个要素:

  1. 主频(时钟频率)
  2. 每条指令执行所用的时钟周期数(CPI)
  3. 指令条数

(5)MIPS、GFLOPS、MFLOPS、TFLOPS

  • MIPS(Million Instruction Per Second)
    即每秒执行多少百万条指令。
    MIPS=指令条数/(执行时间x10^6)=主频/CPI。

  • MFLOPS(Mega Floating-point Operations Per Second)
    即每秒执行多少百万次浮点运算。
    MFLOPS=浮点操作次数/(执行时间x10^6)。

  • GFLOPS(Giga Floating-point Operations Per Second)
    即每秒执行多少十亿次浮点运算。
    GFLOPS=浮点操作次数/(执行时间x10^9)。

TFLOPS(Tera Floating-point Operations Per Second)
即每秒执行多少万亿次浮点运算。
TFLOPS=浮点操作次数/(执行时间x10^12)。

注: 在描述存储容量,文件大小等时,K、M、G、T通常用2的幂次表示,如1kb=2^10b;在描述速率、频率等时,K、M、G、T通常用10的幂次表示,如1kb/s=10 ^3b/s。通常前者用大写的K,后者用小写的k,其他前缀均为代谢,表示的含义取决于所用的场景。

1.3.2 专业术语

  1. 系列机
    具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。
  2. 兼容
    指计算机软件或硬件的通用性,即使用或运行在某个型号的计算机系统中的硬件/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性。
  3. 软件可移植性
    指把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性。
  4. 固件
    将程序固定在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,护肩的性能指标介于硬件与软件之间,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物。

你可能感兴趣的:(cpu,计算机组成原理,操作系统)