微处理器系统结构与嵌入式系统设计(跨选)期末整理

第一章

1.就集成电路而言,计算机系统的主要组成部分有哪些

集成电路级别:

  1. CPU
  2. 存储型片
  3. 总线接口芯片

模块级别:

  1. CPU
  2. 内存
  3. I/O端口
  4. 外设

🌟2.阐述摩尔定律🌟

微处理器每两年

  1. 内晶体管的集成度增加一倍
  2. 价格降低一倍
  3. 运算性能提高一倍

🌟3.什么是SoC?什么是IP核?IP核有哪几种实现形式🌟

SoC(System on Chip):

  • SoC也称片上系统、系统性片或系统集成芯片

  • 从开发角度上讲:在单芯片上集成了微电子系统产品所需的所有功能

IP核(Intellectual Property core):

  • IP核是能够在设计中反复重用的功能模块

IP核实现方式:

名称 提交形式 与实现工艺的相关性 灵活性 可靠性
软核 RTL描述 无关
固核 门级网表 相关 一般 一般
硬核 版图 相关

🌟5.什么是嵌入式系统?嵌入式系统有哪些主要特点🌟

**嵌入式系统:**以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统,对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统,即“嵌入应用对象体系中的专用计算机系统”

特点:

  1. 嵌入式系统通常是面向特定应用
  2. 嵌入式系统是先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合的产物
  3. 嵌入式系统的硬件和软件都必须高效率地设计
  4. 软件是实现嵌入式系统功能的关键
  5. 嵌入式系统本身不具备自开发能力

第二章

🌟2.二进制数加减运算🌟

101+1.01=110.01101+1.01=110.01

1010.00110.1=1000.0010.1=111.1011010.001-10.1=1000.001-0.1=111.101

🌟3.逻辑运算(与/或/异或)🌟

1011\quad0101\or1111\quad0000=1111\quad0101 1101\quad0001\and1010\quad1011=1000\quad0001

⊕相同为0,不同为1

1010101100011100=101101111010\quad1011\oplus0001\quad1100=1011\quad0111

1.在机器数补码中,零的表示形式是唯一的

  • 原码:符号位+二进制 +0:00 -0:10
  • 反码:正数不变,负数除符号位皆取反 +0:00 -0:11
  • 补码:正数不变,负数反码+1 +0:00 -0:00

2.编译程序与解释程序相比

编译程序:编译后生成计算机可直接执行的指令

  1. 编译时间长,编译后执行速度快

解释程序:运行时才由解释器逐语句执行

  1. 比较容易发现和排除源程序错误

5.逻辑运算AND将两个位组合的方法同乘法运算一样。哪一种逻辑运算和两个位的加法几乎相同?会导致什么问题?

  • OR与两个位的加法相同。问题:逻辑运算没有进位机制,多个位的乘或加运算不能用AND或OR替代

🌟6.相机容量256MB,每个像素3字节,照片为1024✖️1024像素,可以存几张照片🌟

256220102410243=256385\frac{256*2^{20}}{1024*1024*3}=\frac{256}{3}≈85

🌟8.什么是冯·诺伊曼体系结构?其运行的基本原理是什么?是什么导致了冯·诺伊曼计算机的性能瓶颈?如何克服?🌟

  • 结构:由运算器、控制器、存储器、输入输出设备组成
  • 基本原理:以存储器为中心,按存储程序原理工作
  • 瓶颈:指令执行的串行性、存储器读取的串行性
  • 克服:改变冯·诺伊曼机的串行执行方式、控制驱动方式

9.RISC和CISC体系结构之间的区别

  • RISC: 指令简单且只有32位固定长度
  • CISC: 指令是变长结构,不利于流水线

10.计算体系结构可以分为几种?试分别说明各种体系结构的优缺点。

  • 硬连逻辑:指令硬件做了专门优化,指令门少

  • 微码体系:微码不容易出错,省时易修改

  • 流水线体系:并行执行指令的不同阶段,增加了指令执行的吞吐量

  • 超标量体系: 并行运行,一个指令周期执行一条指令

11.指令的乱序执行能带有什么好处?

  • 克服流水线冲突,降低指令间的相关特性

🌟14.某测试程序在一个40MHz处理器上运行,其目标代码有100000条指令,试确定这个程序的有效CPI(平均执行周期数)、MIPS的值和执行时间。🌟

指令周期 指令计数 时钟周期计数
整数算术 45000 1
数据传送 32000 2
浮点数 15000 2
控制传送 8000 2

(统计意义上)CPI=45000100000×1+32000100000×2+...=1.55(统计意义上)CPI=\frac{45000}{100000}\times1+\frac{32000}{100000}\times2+...=1.55

MIPS=40M1.55=25.8MIPS=\frac{40M}{1.55}=25.8

执行时间=105×1.5540×106=3.875×103执行时间=10^5\times\frac{1.55}{40\times10^6}=3.875\times10^{-3}

🌟15.假设一条指令的执行过程分为“取指”“分析”“执行”三段,每一段的时间分别为Δt、Δ2t、Δ3t。在下列各种情况中,分别写出连续执行n条指令所需要的时间表达式。🌟

(1)顺序执行方式

T=6nΔtT=6n\Delta t

(2)“取指”与“执行”重叠

取指 分析 分析 执行 执行 执行
取指 分析 分析 执行 执行 执行
取指

T=(5n+1)ΔtT=(5n+1)\Delta t

第三章

🌟1.微处理器有哪些基本功能?说明实现这些功能各需要哪些部件,并画出微处理器结构图🌟

  • **基本功能:**数据的存储、运算、控制
  • **主要功能:**指令控制、操作控制、时间控制、数据加工、中断处理
  • Screenshot 2022-11-17 at 15.34.39

2.微处理器内部有哪些基本操作?这些基本操作各包含哪些微操作?

取指、取数、执行、中断

3.指令系统的设计会影响到计算机系统的哪些性能?

指令分类:

  1. 数据传送指令
  2. 数据处理指令
  3. 控制指令
  4. I/O输入输出指令

**影响:**传输、数学运算、逻辑分析、速度、兼容性

4.固定长度指令编码有什么优缺点?(ARM)

优点:

  1. 简化硬件设计
  2. 减少指令译码时间

缺点:

  1. 编码效率不高
  2. 信息冗余大

🌟5.时钟速率2.5GHz,150万条指令。流水线有5段并以每时钟周期1条的速率发射指令。不考虑转移指令和乱序执行带来的性能损失🌟

a)加速比

Sp=T串行T流水=nmΔtmΔt+(n1)Δt=m1+(m1)/nm=5S_p=\frac{T_{串行}}{T_{流水}}=\frac{n\cdot m\Delta t}{m\Delta t+(n-1)\Delta t}=\frac{m}{1+(m-1)/n}≈m=5

b)吞吐量(MIPS)

Tp=nT流水=nmΔt+(n1)Δt=1[1+(m1)/n]ΔtΔt=2500MIPST_p=\frac{n}{T_{流水}}=\frac{n}{m\Delta t+(n-1)\Delta t}=\frac{1}{[1+(m-1)/n]\Delta t}≈\Delta t = 2500MIPS

🌟6.时钟频率2.5GHz非流水线处理器,CPI=4,升级版本引入5段流水,但时钟频率降低为2GHz🌟

a)新版处理器加速比

Sp=T串行T流水=4n/2.5GHZm/2GHz+(n1)/2Ghz=1.6n×109n+42×1093.2S_p=\frac{T_{串行}}{T_{流水}}=\frac{4n/2.5GHZ}{m/2GHz+(n-1)/2Ghz}=\frac{1.6n\times10^{-9}}{\frac{n+4}{2}\times10^{-9}}≈3.2

b)新、旧处理器吞吐量(MIPS)

Tp1=nT串行=nnmΔt=2.5GHZ4=625MIPST_{p1}=\frac{n}{T_{串行}}=\frac{n}{nm\Delta t}=\frac{2.5GHZ}{4}=625MIPS

Tp2=nT流水=1m/2GHz+(n1)/2Ghz=1(12+2n)×109=2000MIPS ❌T_{p2}=\frac{n}{T_{流水}}=\frac{1}{m/2GHz+(n-1)/2Ghz}=\frac{1}{(\frac{1}{2}+\frac{2}{n})\times10^{-9}}=2000MIPS

®Tp2=Sp×Tp1=2000⭕️T_{p2} = S_p\times T_{p1} = 2000

®Tp2=1×2GHz=2000MIPS⭕️T_{p2} = 1\times 2GHz = 2000MIPS

🌟 9.微程序体系结构与硬连逻辑体系结构有什么区别?🌟

第四章

🌟1.现代微处理器系统中采用了怎样的层次化总线结构🌟

  1. CPU与主存之间采用高性能的存储总线相连

  2. CPU与外设之间的总线再划分为高速和低速两个层次

🌟2.如何评价一种总线的性能🌟

  1. 时钟频率——总线基本工作速度的快慢程度(1秒内的时钟周期数)
  2. 宽度——数据线的条数
  3. 速率——每秒能传输数据的最大次数(总线时钟频率/总线周期数)
  4. 带宽——每秒字节数(总线速率✖️总线宽度/8)
  5. 同步方式——同步、异步
  6. 驱动能力(负载能力)——能挂载的模块数

🌟3.现代高性能微处理器系统中有哪些并行总线和串行总线🌟

第六章

🌟3.CPU对I/O端口的编址方式有哪几种?各有什么特点?x86和ARM各属于哪一种?🌟

独立遍址(x86):

  • 特点:系统视端口和存储单元为不同的对象
  • 优点:系统中存储单元和I/O端口的数量可达最大
  • 缺点:需专门信号指示是存储单元地址还是端口地址;专用端口操作指令单一

存储器映像编址(ARM):

  • 特点:将端口看作存储单元,以地址范围来区别
  • 优点:对两者操作相同,系统简单,端口指令较多
  • 缺点:系统中存储单元和I/O端口的数量不可达最大

🌟6.CPU与I/O设备之间的数据传送方式有哪几种?特点及场所?🌟

程序查询传送方式

  • 特点:不能实时响应,电路简单
  • 场所:简单、无实时性要求

程序中断传送方式

  • 特点:实时响应,需要中断控制电路
  • 场所:传输数据量较少,实时性较高

DMA方式:

  • 特点:实时响应,需要DMA控制电路
  • 场所:M、I/O之间大量数据的高速传输

🌟7.中断的响应过程🌟

中断检测

  • 判断是否有中断请求

中断判优

  • 确认已有中断请求中优先级最高的中断源

中断相应

  • 保护断点、现场,并获取中断向量

中断服务

  • 运行用户自行编制的服务子程序

中断返回

  • 恢复现场、断点

🌟8.波特率的计算方式🌟

波特率:每秒传输数据的位数

波特率因子:每Bit占用的时钟周期数

波特率=fSCLKPD×BD波特率=\frac{f_{SCLK}}{PD \times BD}

ƒSCLK:串行接口本地时钟频率

PD:预分频因子

BD:波特率因子

第九章

🌟例9.1🌟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        AREA add64, CODE, READONLY
ENTER
start
LDR RO, =data1 ;R0保存data1首地址
LDR R1, [R0] ; [R1] = 0x11223344
LDR R2, [R0, #4] ;低32位 [R2] = 0xFFDDCCBB
LDR R0, =data2
LDR R3, [R0] ; [R3] = 0x11223344
LDR R4, [R0, #4] ; [R4] = 0Xffddccbb
ADDS R6, R2, R4
ADC R5, R1, R3
LDR R0, =result
STR R5, [R0]
STR R0, [R0, #4]
AREA Dadd64, DATA, READONLY
data1 DCD 0x11223344, 0xFFDDCCBB
data2 DDD 0x11223344, 0xffddccbb
AREA Dradd64, DATA, READWRITE
result DCD 0, 0
END

🌟例9.3🌟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        AREA max, CODE, READONLY
ENTER
start LDR R0, data1
LDR R1, data2
CMP R0, R1
BHI save ; R0>R1 跳转
MOV R0, R1 ;否则RO = R1
save LDR R2, =result
str RO, R2
data1 DCD 0X100
data2 DCD 0x200
AREA Drmax, DATA, READWRITE
result DCD 0

END

作图

1.无条件输入输出

特点:

  • 外设数据变化缓慢,始终处于就绪状态,如开关或LED

  • 接口结构简单,适用面较窄

Screenshot 2022-11-19 at 14.31.28

🌟2.程序查询输入接口电路🌟

Screenshot 2022-11-19 at 16.12.35

🌟3.程序查询输出接口电路🌟

Screenshot 2022-11-19 at 16.12.58

🌟4.例5.5:🌟

​ 采用全译码法设计一个12KB的内存储器系统,其中包括8KB的EEPROM和4KB的SRAM。设系统地址总线宽度为16位,EEPROM存储器起始地址位0x0000。设8KB的EEPROM由两片2734A芯片(4K✖️8)组成,4KB的SRAM由两片6116芯片(2K✖️8)组成。

片内:

  • 2734A----2^12----A11~A0
  • 6116----2^11----A10~A0

片选:

Screenshot 2022-11-19 at 16.38.46

编程

🌟1.ARM汇编语言,将存储器0x4000 0000单元开始的100个字数据转存到0x6000 0000开始的存储器🌟

1
2
3
4
5
6
7
8
9
10
11
				LDR R0, =0x40000000
LDR R2, =0x60000000
MOV R3, #0
LOOP1 LDR R1, [R0]
STR R1, [R2]
ADD R0, R0, #4
ADD R1, R2, #4
ADD R3, R3, #1
CMP R3, #100
BNE LOOP1
END

🌟2.ARM汇编语言,将存储器0x40000000单元开始的100个无符号字数据求和,并将和存入R7(高位),R6(低位)中🌟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
				LDR R0, =0X40000000
MOV R2, #0
LOOP1 LDR R1, [R0]
ADDS R6, R6, R1 ; 低位
ADC R7, R7, #0 ; 进位
ADD R0, R0, #4 ; R0地址移动
ADD R2, R2, #1 ; 计数器+1
CMP R2, #100 ; 比较
BNE LOOP1
END
---
LDR R3, =RESULT
STR R6, [R3]
STR R7, [R3, #4]