第一章 计算机系统概述

免责声明:

目录

1 计算机发展历程

计算机系统由硬件和软件两部分组成。

  • 硬件:看得见摸得着的物理设备
  • 软件:各类在硬件上运行的具有特殊功能的程序
    • 系统软件:操作系统、数据库管理系统、标准程序库、网络软件、语言处理程序(如编译器)、服务程序(如代码调试程序)等
    • 应用软件

计算机的性能需要根据软、硬件功能综合判定。
计算机组成原理课程主要探讨的是计算机硬件部分的内容。

1.1 计算机硬件的发展

计算机发展历程上的四个时代

① 1946年,第一台电子数字计算机问世(ENIAC,美国国防部用它来进行弹道计算),开启计算机历程上的第一个时代——电子管时代:

  • 使用电子管作为逻辑元件
  • 使用机器语言、汇编语言进行编程
  • 内存使用延迟线、磁鼓,外存使用穿孔卡片、纸带
  • 体积大、速度慢、耗电量高

② 1947年,贝尔实验室发明晶体管,被列在IEEE里程碑列表中;1955年,贝尔实验室研制出世界上第一台全晶体管计算机(TRADIC);1958年,IBM公司制成了第一台全部使用晶体管的计算机RCA501型,计算机发展逐步进入第二个时代——晶体管时代:

  • 使用晶体管替代电子管作为计算机的逻辑元件使其体积大幅缩小、功耗降低、提升计算速度
  • 内存使用磁芯存储器、外存使用磁盘
  • 操作系统开始雏形
  • 出现了高级语言如 Fortran、COBOL

③ 1958年Jack Kilby发明了集成电路,1964年,计算机发展步入第三个时代——小规模集成电路时代:

  • 逻辑元件采用小规模集成电路
  • 内存储器使用半导体,外存使用磁带、磁盘
  • 计算机语言也进入第三个时代,面向人类的语言阶段
  • 出现分时操作系统

④ 1972年,计算机发展进入第四个时代——大规模、超大规模集成电路时代:

  • 逻辑元件采用大规模集成电路和超大规模集成电路
  • 产生微处理器(CPU)、微型计算机
  • 出现并行、流水线、高速缓存、虚拟存储等概念

摩尔定律

当价格不变时,集成电路上可容纳的晶体管数目,大约每隔18个月便会增加一倍,性能也将提升一倍。大体意思就是,大约18个月后,能够以相同的价格买到性能比现在高一倍的CPU。

微处理器位数概念

微处理器的8位(如Intel 8008)、16位(Intel 8086)、32位(如Intel80486)、64位(如Pentium4),其中的位数是指机器字长,计算机进行一次整数运算所能处理的二进制位数。

1.2 计算机软件的发展

编程语言的发展

  • 机器语言、汇编语言
  • 高级语言
    • FORTRAN 应用于科学计算、工程计算
    • PASCAL 结构化程序设计语言
    • C++ 面向对象程序设计语言
    • Java 适用网络环境的面向对象程序设计语言

操作系统的发展

  • UNIX
  • Linux
  • Windows

1.3 计算机的分类

计算机的分类

  • 电子模拟计算机
  • 电子数字计算机
    • 专用计算机
    • 通用计算机
      • 巨型机
      • 大型机
      • 中型机
      • 小型机
      • 微型机
      • 单片机

计算机按机器指令与数据流分类

  • 单指令、单数据流(SISD):传统的冯·诺依曼体系结构
  • 单指令、多数据流(SIMD):阵列处理器、向量处理系统
  • 多指令、单数据流(MISD):实际上不存在
  • 多指令、多数据流(MIMD):多处理器、多计算机系统

2 计算机系统层次结构

2.1 计算机系统的组成

计算机系统由硬件系统和软件系统组成。对于某一个功能,如果既可以使用软件实现,也可以使用硬件实现,那么称之为软硬件在逻辑上是等效的。

2.2 计算机硬件的基本组成

世界上第一台计算机 ENIAC,是通过程序员手动连接线路来控制计算机执行指令,计算机的效率因此受到很大的影响。

早期 冯·诺依曼体系结构

首次提出“存储程序”的概念:将指令以二进制代码的形式实现输入计算机的主存储器,然后按其在主存中的首地址执行程序第一条指令,之后就按程序指定的顺序执行其他指令直到程序结束。

在这里插入图片描述
在这里插入图片描述

现代计算机组织结构

随着微电子信息技术的发展,IO设备的速度与CPU的速度差距越来越大,早期的以运算器为中心的结构无法满足计算机发展需求,现代计算机逐步发展为以存储器器为中心的结构,使得IO操作尽可能避开CPU,以提高整体运行效率。

在这里插入图片描述

在这里插入图片描述

计算机硬件基本组成总览

在这里插入图片描述

2.3 计算机硬件部件

虽然传统的冯诺依曼体系结构与现代计算机的组织结构有所不同,但是五大功能部件基本一致。
一般将运算器和控制器集成到同一个芯片上,称为中央处理器CPU,CPU与主存共同构成主机,其他的硬件设备称为外设。
在这里插入图片描述

主存储器

主存储器按照存储单元的地址进行存取。

  • 存储体:存放二进制信息
  • 地址寄存器MAR:存放地址,经过地址译码后找到目标存储单元
  • 数据寄存器MDR:暂存从存储器中读写的信息

在这里插入图片描述

在这里插入图片描述

运算器

运算器用于进行算术运算和逻辑运算,其核心是算术逻辑单元 ALU。其中包含了多个通用寄存器,用于暂存操作数和中间结果。
在这里插入图片描述

控制器

控制器是计算机的指挥中心,协调各部件工作。
在这里插入图片描述

2.4 计算机的工作过程

计算机的工作过程大概分为三步:

  • 把程序数据装入主存
  • 将源程序转为可执行文件
  • 从可执行文件的首地址开始逐条执行指令

一段C代码如下:

int a = 2
int b = 3;
int c = 1;
int y = 0;

void main(){
	y = a * b + c;
	return 0;
}

程序编译装入主存:

在这里插入图片描述
在这里插入图片描述
计算机内部运行工作大体如下:
① 初始,控制器中的程序计数器PC指向第一条指令的地址 0,即(PC)= 0

  • 取指
    • 控制器会据此告诉主存接下来要读取 0 号地址对应的数据→(MAR)= 0
    • 主存根据MAR记录的地址到存储体中找出0号地址对应的二进制数据,放在数据寄存器 MDR中→(MDR)= 000001 0000000101
    • CPU 通过数据总线将 MDR 中的数据取出放在指令寄存器 IR 中→(IR)= 000001 0000000101
    • PC 自动加一,指向下一条将要执行的指令→ (PC) = 1
  • 分析
    • 操作码 000001 会送到控制单元CU中,CU分析得出指令执行的操作是取数
  • 执行
    • 将地址码 0000000101(十进制的5)送到主存的MAR中→(MAR) = 5 ,指向原始数据a的地址 0000000000000010
    • 主存根据MAR中的地址去存储体中取出对应的数据放到 MDR 中→(MDR) = 0000000000000010 = 2
    • 在控制单元CU的控制下,MDR中的数据会传送到累加寄存器 ACC中→ (ACC) = 0000000000000010 = 2

② 执行完第一条指令,执行第二条指令(此时PC为1)

  • 取指(与上面同样的步骤)
    • (PC)= 1 → (MAR) = 1
    • M(MAR)→(MDR) = 000100 0000000110
    • (MDR)→ (IR) = 000100 0000000110
    • PC 加一→(PC) = 3
  • 分析
    • OP(IR)→CU,操作码 000100 会送到控制单元CU中,CU分析得出指令执行的操作是乘法计算
  • 执行
    • 将地址码 0000000110(十进制的6)送到主存的MAR中→(MAR) = 6 ,指向原始数据b的地址 0000000000000011
    • 主存根据MAR中的地址去存储体中取出对应的数据放到 MDR 中→(MDR) = 0000000000000011 = 3
    • MDR 中的数据 通过数据总线传送到 乘商寄存器MQ中→(MQ) = 0000000000000011 = 3
    • 把a的值放入通用寄存器X中→(X) = 2
    • CU控制算术逻辑单元进行乘法运算,计算结果放入累加寄存器ACC中→(ACC) = 6,此时如果乘积太大,ACC无法完成存储,就需要 MQ辅助存储(存储乘法运算结果的低位)

③ 执行完第二条指令,指行第三条指令(此时PC为2)

  • 取指(与上面同样的步骤)
    • (PC)= 2 → (MAR) = 2
    • M(MAR)→(MDR) = 000011 0000000111
    • (MDR)→ (IR) = 000011 0000000111
    • PC 加一→(PC) = 2
  • 分析
    • 操作码 000011 会送到控制单元CU中,CU分析得出指令执行的操作是加法运算
  • 执行
    • 将地址码 0000000111(十进制的7)送到主存的MAR中→(MAR) = 7 ,指向原始数据c的地址 0000000000000001
    • 主存根据MAR中的地址去存储体中取出对应的数据放到 MDR 中→(MDR) = 0000000000000001 = 1
    • 把a的值放入通用寄存器X中→(X) = 1
    • CU控制算术逻辑单元进行加法运算,将ACC中的6与X中的1进行加法运算,将结构放入累加寄存器ACC中→(ACC) = 7

④ 执行完第三条指令,指行第四条指令(此时PC为3)

  • 取指(与上面同样的步骤)
    • (PC)= 3 → (MAR) = 3
    • M(MAR)→(MDR) = 000010 0000001000
    • (MDR)→ (IR) = 000010 0000001000
    • PC 加一→(PC) = 4
  • 分析
    • 操作码 000010 会送到控制单元CU中,CU分析得出指令执行的操作是存数
  • 执行
    • 将地址码 0000001000(十进制的8)送到主存的MAR中→(MAR) = 8 ,指向原始数据y的地址 0000000000000000
    • 通过数据总线,将ACC中暂存的计算结果传送到MDR中箭头(MDR)= 7
    • CU控制单元通过控制总线告诉主存进行存数操作,将 MDR 中的数据存到 MAR中地址对应的存储单元→ 内存地址 0000000000000000 的8号存储单元 存储的值为 7,即 y = 7

⑤ 执行完第四条指令,执行第五条指令(此时PC为4)

  • 取出指令,分析出要执行的是停机操作,程序运行结束(通过操作系统相关指令完成)

主要硬件部件总结

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

计算机系统五层结构

在这里插入图片描述

三种级别的语言

在这里插入图片描述

知识点总结

在这里插入图片描述

3 计算机性能指标

3.1 存储器的性能指标

主存容量

是指主存储器所能存储信息的最大容量,通常以字节来衡量。

在这里插入图片描述
为什么MAR为32位最只能表示 2^32 个不同的状态?
在这里插入图片描述

3.2 CPU 的性能指标

主频

机器内部主时钟的频率(CPU的时钟脉冲频率),是衡量机器速度的重要参数。单位通常使用 HZ(赫兹,1HZ表示每秒一次),常见的主频有 1.8GHZ,2.4GHZ,3.2GHZ等。

时钟周期

CPU中最小的时间单位,完成一个动作至少需要一个时钟周期。与主频互为倒数。

CPI

执行一条指令所需要的时钟周期数。

CPU 执行时间

运行一个程序所花费的时间。

CPU执行时间 = CPU时钟周期数 / 主频 = (指令条数 * CPI) / 主频

IPS

每秒执行多少条指令。

IPS = 主频 / 平均CPI

MIPS

每秒执行多少百万条指令。

MIPS = 指令条数 / (执行时间 * 10^6)= 主频 / CPI

k , K , M , G , T 不同应用场景的区别

  • 当用于描述文件大小、存储容量等时,(K , M , G , T )通常使用2的幂次表示(注意K 是大写的),比如 1Kb = 2^10 b
  • 当用于表示速率、频率等时,(k , M , G , T)通常使用10的幂次表示(注意,k 是小写的),如 1k b/s = 10^3 b/s
    在这里插入图片描述
    在这里插入图片描述

3.3 系统整体性能指标

在这里插入图片描述

3.4 知识点总结

在这里插入图片描述

4 常见问题及易混淆概念

软硬件在逻辑功能上是等效的,并不是等价的

在计算机中,许多功能既可以使用软件实现,也可以使用硬件实现。

翻译程序、汇编程序、编译程序、解释程序

  • 翻译程序:将高级语言程序翻译成机器语言程序(目标代码)的软件:
    • 编译程序:将高级语言源程序一次性全部翻译成目标程序(汇编语言程序或者机器语言程序)
    • 解释程序:将高级语言源程序,逐条语句翻译成目标机器代码并执行(翻译一条,执行一条),不会生成目标程序。
    • 汇编程序:把汇编语言源程序翻译成机器语言程序。

计算机中的透明性

平常我们所说的透明性是指“看得见”,而计算机中的透明性是指,某个东西实际上存在,但是看上去好像不存在,就像是透明的一样。例如,指令寄存器IR,主存中的存储地址寄存器 MAR、存储数据寄存器MDR等,对于程序员来说就是透明的。

机器字长、指令字长、存储字长

  • 机器字长:处理器的位数,计算机能直接处理的二进制数据位数,一般等于内部寄存器的大小,决定计算机的运算精度
  • 指令字长:一条指令中,包含的二进制代码位数
  • 存储字长:一个存储单元存储的二进制代码长度
  • 三者都必须是字节的整数倍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值