计算机组成与系统结构(物联网专业)

本文介绍了计算机系统的基础知识,包括冯·诺依曼结构、存储器的分类、运算器组成和浮点运算。内容涵盖指令系统、存储器层次结构、Cache工作原理、寻址方式和CPU功能。同时讲解了不同类型的存储器,如SRAM、DRAM、ROM和Flash,并分析了指令周期和数据传送方式。此外,还涉及了CPU中的主要寄存器和总线系统的概念。
摘要由CSDN通过智能技术生成

`考试题型:选择、问答、画图、计算

重点看标红的章节和题

另外,原题答案没有,我写的也没有,好好学习,别老想着白嫖 →_→

第一章 计算机系统概论

1.1 计算机的分类

  • 从总体上:电子模拟计算机 / 电子数字计算机(按位计算,不连续)
  • 从经济性和适应性:专用计算机(适应性比较差) / 通用计算机(单片机 → …… → 超级计算机)

1.2 计算机的性能指标

  • 吞吐量:表征一台计算机在单位时间内能够处理的信息量
  • 响应时间:表征从输入有效到系统产生响应之间的时间
  • 存储器带宽:单位时间内从存储器读出的二进制信息量,B/s

题型:计算程序的 CPI 和 MIPS

1. 假设一台计算机主频为 1 GHZ ,在其上运行由 2\times 10^{5} 条指令组成的目标代码,程序主要由 4 类指令组成,他们所占的比例和各自的 CPI 如下表所示,求程序的 CPI 和 MIPS。

指令类型                       CPI                    指令比例

算术和逻辑                      1                          60%

Load/Store                      2                          18%

转移                                 4                          12%

Cache缺失访存               8                          10%

首先明确下涉及到的几个计算量的概念和计算方法,

  • 时钟周期 T 与主频 / CPU 时钟频率 f

  • T = 1 / f
  • CPU 执行时间 / CPU 时间 t_{cpu}

  • 执行一段程序所占用的 CPU 时间
  • CPU 时间 = 程序中所有指令的时钟周期数之和 × 时钟周期时间 = 程序中所有指令的时钟周期之和 / 时钟频率
  • 程序中所有指令的时钟周期数之和 就是 CPU 周期数 N_{c}
  • CPI

  • 执行一条指令所需要的平均时钟周期数
  • CPI = 程序中所有指令的时钟周期数之和 / 指令条数 I_{N} = (程序中各类指令的 CPI × 程序中该类指令的比例)之和
  • MIPS

  • 表示每秒执行多少百万条指令
  • MIPS = 指令条数 /(执行时间 × 10^{6} )= 指令条数 /( CPU 时钟周期总数 × 10^{6} / f )= f /( CPI × 10^{6} )  
  • 程序的执行时间 Te

  • Te = 指令条数 /( MIPS × 10^{6} ) 

解题思路:

这道题里用不着解 CPU 时钟周期总数(即 CPU 周期数)

CPI =(表格中各类指令的 CPI × 程序中该类指令的比例)之和

MIPS = f /( CPI × 10^{6}

f 即为主频,但是注意单位,1 GHZ = 1 × 10^{9} Hz,1 MHZ = 1 × 10^{6}Hz,1 KHZ = 1000 Hz(读法分别是吉赫,兆赫,千赫)

1.3 计算机的硬件

1.3.1 冯·诺依曼型计算机

2. 冯·诺依曼型计算机的主要设计思想是什么? ①②③④

3. 画出冯·诺依曼计算机五大部件的连接结构图

  • ① 五大组成部分:控制器、运算器、存储器、输入设备、输出设备

  • ② 二进制表示:将数据和指令(操作码和地址码构成)用二进制的形式表示
  • ③ 存储程序:将程序(指令序列)和数据存放到存储器中,可以存放到存储器的任何位置
  • ④ 程序控制控制器依据存储的程序来全机协调地计算任务,按照指令在存储器里存放的顺序进行执行,程序分支由转移指令实现
  • 工作方式的特点:按地址访问并顺序执行指令

1.3.2 运算器

4. 运算器的主要功能是进行______。

A. 算术运算          B. 逻辑运算与算术运算          C. 初等函数的运算         D. 逻辑运算

  • 运算器主要进行的是算术运算和逻辑运算,参与运算的数是二进制形式,其长度即为计算机的字长
  • 运算器的核心部分是算术逻辑运算单元( ALU )

 位、字节、字、半字、字长:

位(bit):计算机内最小的数据单位,取值 0 或 1

5.32位的个人计算机,一个字节( Byte )由_____位( bit )组成。

A. 4                   B. 8                  C. 16                   D. 32

字节(Byte):8 位二进制数,计算机内部最基本的计量单位,1 Byte = 8 bit

KB、MB、GB里面的B就是字节,K/M/G 对应的是 2^{10}/2^{20}/2^{30} (应该是简化书写?注意点就是比如 4M 是 2^{2}\times 2^{20} = 2^{2 + 20}=2^{22} ,是数字转换成指数形式幂次相加计算的)

有的时候题目不会直接写 1MB 而是像上面题目里的主存容量写的是 1M 字节,记住字节就是B,计算带上就行

字:一个或多个字节组成,一串固定长度的二进制数,对应部件处理数据的固定长度(听 8086 听得我认为一个字固定等于两字节了×

半字:字的一半(双字同理)

6. 什么是计算机字长?

指运算器中一次能够完成二进制数运算的位数

另外,不同部件的字长可能不同,不过一般都是看计算机字长

1.3.3 存储器

7. 目前的计算机,从原理上讲_______。

A. 指令以二进制形式存放,数据以十进制形式存放

B. 指令以十进制形式存放,数据以二进制形式存放

C. 指令和数据都以二进制形式存放          D. 指令和数据都以十进制形式存放

  • 运算开始前,都是将程序和数据存入存储器(指令是顺序存放)
  • 有两种方式存储:
  • ① 冯诺依曼结构:存储器的任何位置既可以存放数据也可以存放指令
  • ② 哈佛结构:指令和数据存储器物理上独立
  • 存储器 → 存储单元(大量)→ 一个存储单元存入一个 2 进制数据串 → 存储器中存入的一个 2 进制位 :存储元
  • 存储器是按存储单元组织的,每个存储单元都会被分配一个地址,所以存储器通常都是按地址查找,线性编址的

解题思路:

存储器中存入的均是二进制数据串,而开始任务之前都会将数据和程序存入其中

而程序是一系列的机器指令的有序集合

所以指令和数据都以二进制形式存放

  • 容量一般按字节计算
  • 分类:内存、外存(区分:CPU 能否直接与其交互)
  • 写入新数据会覆盖旧数据,读出并不破坏数据并可反复读出

1.3.4 控制器

  • 计算机中给各部件提供控制信号的地方
  • 按照特定的顺序一条接一条取指令(从内存中)、指令译码、执行指令
  • 取指周期:从存储器中取指令到控制器的时间
  • 执行周期:在控制器中对指令译码、执行指令的时间

8. 什么是指令?什么是程序?

  • 指令是指挥计算机执行某种操作的命令,由操作码和地址码构成
  • 程序是一系列指令的有序集合
  • 指令系统:计算机的全部指令集合

9. 指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?

  • 根据不同的时间段区分:
  • 指令流:取指周期中从内存读出,流向控制器的信息流
  • 数据流:执行周期中从内存读出,流向运算器的信息流

1.3.5 适配器与输入输出设备

  • 输入设备:将一般的信息形式 → 二进制信息形式
  • 输出设备:把计算机处理结果 → 人或其他机器设备能识别接收的信息形式
  • 总线:构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路

1.4 软件的发展演变

10. 说明高级语言、汇编语言和机器语言三者之间的差别和联系。

  • 高级语言远离硬件,是一种指令集的体系,先需要通过编辑程序翻译成源程序,再经过汇编/编译程序翻译成目的程序,最后通过联接程序翻译成可执行程序
  • 汇编语言主要面向硬件,需要经过汇编程序翻译成机器语言才能成为可执行程序
  • 机器语言是手工编写的二进制码,计算机能直接执行

1.5 计算机系统的层次结构

  • 软件部分:高级语言级 → 汇编语言级 → 操作系统级
  • 硬件部分:一般机器级 → 微程序设计级

第二章 运算方法和运算器

2.1 数据与文字的表示方法

  • 两类数据:符号数据 / 数值数据

2.1.1 数据格式

1. 下列数中最小的数是______。

A. 二进制数( 1010010 )         B. 8421 BCD 码( 00101000 )

C. 8 进制数( 512 )                 D. 16 进制数( 35 )

无法直接进行比较大小,要比只能换成十进制再进行比较

转换什么的已经写烂了,懒得再写一遍,需要看的去找另一篇数字逻辑笔记

  • 计算机中的数值数据表示格式(符号位 0 为正数,1 为负数):
  • ① 定点表示:小数点位置固定(要么纯小数要么纯整数)
  • 由于字长一定,所以能表示的范围有限
  • 分为带符号数和不带符号数
  • 带符号定点纯小数的小数点位置在符号位后面,表示数的范围是 0 ≤ | x | ≤ 1 − 2^{-n}
  • 带符号定点纯整数的小数点在最低位后面,表示数的范围是 0 ≤ | x | ≤ 2^{n} -1
  • ② 浮点表示:小数点位置不固定,所以需要给小数点专门存放位置
  • 把数的 有效数字 和 数的范围 分别表示
  • 一个 R 进制数 N 可以写成:N = R^{e} M,其中 e 为指数,M 为尾数且低位以纯小数的格式存储

2. 浮点数的表示范围和精确度分别由什么决定?

阶码 E 决定了浮点数的表示范围,尾数 M 决定了浮点数的表示精度

  • IEEE 754 标准

  • 用于规定浮点数的表示格式,IEEE 754 规定的浮点数的指数偏移值比规约的浮点数的指数偏移值小 1(所以会有 1.M )
  • M 使用原码,e 使用移码,R 隐含
  • 32 位中 低 23 位为 M,64 位中 低 52 位为 M,最高位都为符号位,剩余放 E
  • 32 位的阶码 E = e + 127( 01111111 ),64 位的阶码 E = e +1023(就是 E 占多少位,加的数字就是以 2 为底位数 - 1 次方的指数)
  • 一般要么写成存储在计算机里的格式,要么由计算机里格式写成对应的十进制数

  • 当 M 不为 0 时,在规格化的过程中,若小数点右移 1 位,则阶码减 1(左规:尾数左移),若小数点左移 1 位,则阶码加 1(右规:尾数右移)
  • 由浮点数标准存储格式求十进制数值:x = \left ( -1 \right )^{s} × 1.M × 2^{e}(整数部分的 1 是隐藏位,没有存进去,所以这里要补上)

2.1.2 数的机器码表示

  • 真值 → 加符号位 → 原码 → 若为负数 → 符号位不变,余下按位取反 → 反码 → 加1 → 补码,均为有符号数
  • 1. 原码表示法:

  • 优点:实现乘除运算简单
  • 将真值写成二进制数的形式,正数符号位写 0 ,负数符号位写 1
  • 正 0 与负 0 有区别
  • 2. 补码表示法

3. 为什么计算机中采用补码表示带符号整数?

为了避免减法运算中需要比较绝对值的大小,还要给结果选择符号,所以采用补码简化运算

  • 优点:将减法运算转换成加法运算
  • 没有正 0 和 负 0 的区分

4. 已知 y = + 10001,则 [ y ] 补为__________。

A. 110001          B. 001111         C. 101111         D. 010001

  • 正数的补码 = 正数的原码
  • 负数的补码 = 负数的原码,其中,符号位不变,余下数值位按位取反再加 1
  • 负数补码 → 原码:对补码再次求补
  • 对于相同的机器字长,补码比原码和反码能多表示一个负数
  • 3. 反码表示法

  • 优点:电路很容易实现
  • 正数的反码 = 正数的原码
  • 负数的反码 = 负数的原码,其中,符号位不变,余下数值位按位取反
  • 4. 移码表示法

  • 可以直接比较大小
  • 用于表示浮点数中的阶码

题型:求能表示的数据范围

一看总共多少位,二看有无符号位

比如 16 位无符号整数,就是 1111 1111 1111 1111,即最大可表示 2^{16} - 1,最小可表示 0

若是 16 位有符号整数,就是 符号位111 1111 1111 1111,即最大可表示 2^{15}-1,最小可表示其的相反数

还需要注意是什么码和是定点整数还是定点小数,若是 16 位补码定点整数,那么范围就是 -2^{15} ≤ X ≤ 2^{15}-1

总之按照定义写出来二进制码,再转换成十进制就行

2.1.3 字符和字符串的表示方法

  • ASCII

  • 单字节编码系统,主要用于显示现代英文字母和符号
  • 用 7 位二进制编码表示一个字符,总共可以表示 128 个字符,在计算机中存储是以一字节的形式,最高位固定为 0
  • 数字的高三位为 011,大写字母的高三位:A ~ O 为 100,P ~ Z 为 101,小写字母的高三位:a ~ o 为 110,p ~ z 为 111
  • 低四位 0 是 0000,剩下依次 + 1,字母 A 和 a 是 0001 开始,剩下依次 + 1

2.1.4 汉字的表示方法

5. 汉字输入码、机内码和字形码在汉字处理过程中各有何作用?

  • 汉字输入码是用西文标准键盘上按键的不同排列组合来对汉字进行编码,可用数字、字音、字形、音形来编码
  • 汉字内码是汉字的机内代码,一般采用两个字节表示
  • 汉字输出码(汉字字形码)先存储汉字的字形,可以显示和打印汉字
  • 字形码:点阵字形(字模码)和矢量字形

2.1.5 奇偶校验码

  • 若干位有效信息加上 1 位校验位组成校验码
  • 奇校验:使校验码中 1 的个数为奇数
  • 偶校验:使校验码中 1 的个数为偶数
  • 奇校验:可以检测出一位或奇数位错误,但不能确定出错位置

2.2 定点加法、减法运算

2.2.1 补码加法

  • 任意两数的补码之和 = 该两数之和的补码
  • 特点:符号位一起参加运算,符号位的进位要丢掉

2.2.2 补码减法

  • 任意两数之差的补码 = 被减数的补码 + 减数的相反数的补码
  • 由 y 的补码 求 -y 的补码:对 y 的补码包括符号位按位求反且末位加 1

2.2.3 溢出的概念与检测方法

  • 数的补码表示范围为 -2^{n} ≤ X ≤ 2^{n} - 1,超出这个范围称为“溢出”
  • 溢出的实质是最高位产生了进位
  • 结果大于所能表示的最大数,称为正溢(上溢)
  • 结果小于所能表示的最小数,称为负溢(下溢)
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值