微处理器系统结构与嵌入式系统设计(二)

在这里插入图片描述
作者: Saint
掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a
微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1
GitHub:github.com/saint-000
CSDN: https://me.csdn.net/qq_40531974

微处理器系统结构与嵌入式系统设计

Chapter2

1.计算机系统的基本结构与组成
1.1计算机系统的层次模型:
在这里插入图片描述

          左图:软硬件层次 	                              右图:语言层次

左图自下而上反映了系统逐级生成的过程,自上而下反映了系统求解问题的过程。
软硬件的逻辑等价性可以表现为:硬件软化(如RISC思想)、软件硬化(如CISC思想)、固件化(如微程序)。
右图中的虚拟机:与某种特殊编程语言对应的假想硬件机器。

1.2体系结构、组成与实现

体系结构Architecture

程序员关心的计算机概念结构与功能特性
如:确定指令集中是否有乘法指令;

计算机组成Organization

从硬件角度关注物理机器的组织
如:乘法指令由专用乘法器还是用加法器实现

计算机实现Realization

底层的器件技术、微组装技术、冷却技术等
如:加法器底层的物理器件类型及微组装技术

2.1冯-诺依曼计算机架构
在这里插入图片描述
(1)硬件组成
五大部分:运算器、存储器、控制器、输入设备、输出设备
以存储器为中心
(2)信息表示:二进制
计算机内部的控制信息和数据信息均采用二进制表示,并存放在同一个存储器中。
(3)工作原理:存储程序/指令(控制)驱动
编制好的程序(包括指令和数据)预先经由输入设备输入并保存在存储器中;
计算机开始工作后,在不需要人工干预的情况下由控制器自动、高速地依次从存储器中取出指令并加以执行。

体系结构角度的多层结构
在这里插入图片描述

组织角度的多层结构
在这里插入图片描述

2.2模型机体系结构
在这里插入图片描述
基于总线的冯·诺依曼架构模型机

总线子系统:作为公共通道连接各子部件,用于实现各部件之间的数据、信息等的传输和交换。
存储器子系统:用来存放当前的运行程序和数据。
输入输出子系统:用于完成计算机与外部的信息交换。
CPU子系统:集成了运算器、控制器和寄存器的超大规模集成电路芯片(VLSI)。

2.2.1模型机总线结构
在这里插入图片描述
按传输信息的不同,可将总线分为数据总线DB、地址总线AB和控制总线CB三类:
地址总线通常是单向的,由主设备(如CPU)发出,用于选择读写对象(如某个特定的存储单元或外部设备);
数据总线用于数据交换,通常是双向的;
控制总线包括真正的控制信号线(如读/写信号)和一些状态信号线(如是否已将数据送上总线),用于实现对设备的监视和控制。

2.2.2模型机内存储器
在这里插入图片描述
存储器组织由许多字节单元组成,每个单元都有一个唯一的编号(存储单元地址),保存的信息称为存储单元内容。
访问(读或写)存储单元 :存储单元地址经地址译码后产生相应的选通信号,同时在控制信号的作用下读出存储单元内容到数据缓冲器,或将数据缓冲器中的内容写入选定的单元。

2.2.3模型机CPU子系统
在这里插入图片描述

2.2.4模型机指令系统
在这里插入图片描述
指令是发送到CPU的命令,指示CPU执行一个特定的处理,如从存储器取数据、对数据进行逻辑运算等。CPU可以处理的全部指令集合称为指令集(Instruction Set)。指令集结构(ISA,Instruction Set Architecture) 是体系结构的主要内容之一,对CPU的基本组织会产生非常大的影响。ISA功能设计实际就是确定软硬件的功能分配。

指令通常包含操作码和操作数两部分。操作码指明要完成操作的性质,如加、减、乘、除、数据传送、移位等;操作数指明参加上述规定操作的数据或数据所存放的地址。
在这里插入图片描述
2.2.5模型机工作原理
计算机的工作本质上就是执行程序的过程。
顺序执行
指令执行的基本过程可以分为取指令(fetch)、分析指令(decode)和执行指令(execute)三个阶段。
非顺序执行
转移(jump):执行条件/无条件转移指令,不返回
过程(procedure)调用:主程序调用子程序后返回断点
中断(interrupt):外界突发事件处理完后返回断点
异常(exception):程序本身产生的某些例外处理完后重新执行
陷阱 (trap) :程序本身产生某些例外条件处理完后返回断点

在这里插入图片描述
3.对冯·诺依曼体系结构的改进
在这里插入图片描述
冯·诺依曼型计算机的本质特点也造成了其瓶颈:
(1)指令执行的串行性
(2)存储器读取的串行性

改进:
CPU指令集 => 指令功能、指令格式、寻址方式
存储器子系统 => 分层结构
输入/输出子系统 => 高速总线+多种接口方式

改变:
改变串行执行模式,发展并行技术;
改变控制方式,发展数据、需求、模式等其它驱动方式

4.不同的指令集设计策略:CISC与RISC
CISC(Complex Instruction Set Computer,复杂指令集计算机)
不断增强指令的功能以及设置更复杂的新指令取代原先由程序段完成的功能,从而实现软件功能的硬化。
RISC(Reduced Instruction Set Computer,精简指令集计算机)
通过减少指令种类和简化指令功能来降低硬件设计复杂度,从而提高指令的执行速度。
现代计算机:RISC+CISC

CISC的特点及设计思想
(1)许多复杂指令很少被使用,“2-8原则”
(2)控制器硬件复杂(指令多,且具有不定长格式和复杂的数据类型),占用了大量芯
片面积,且容易出错;
(3)指令操作繁杂,速度慢;
(4)指令规整性不好,不利用采用流水线技术提高性能。

RISC的特点及设计思想
(1)指令条数少,格式简单,易于译码;
(2)提供足够的寄存器,只允许load和store指令访问内存;
(3)指令由硬件直接执行,在单个周期内完成;
(4)充分利用流水线;
(5)依赖优化编译器的作用;

5.分层的存储子系统
现代计算机系统通常把不同的存储设备按一定的体系结构组织起来,以解决存储容量、存取速度和价格之间的矛盾。
在这里插入图片描述
在这里插入图片描述
设计目标:整个存储系统速度接近M1而价格和容量接近Mn

6.计算机体系结构的演进:并行处理技术
并行处理技术实现多个处理器或处理器模块的并行性,其基本思想包括时间重叠(time interleaving)、资源重复(resource replicaiton)和资源共享(resource sharing)。

指令级并行技术ISP (流水线、超标量、超长指令字)
系统级并行技术SLP (多处理器(多机/多核)、多磁盘)
线程级并行技术TLP (同时多线程SMT)
电路级并行技术CLP (组相联cache、先行进位加法器)

7.流水线技术
在这里插入图片描述

可通过分割逻辑,插入缓冲寄存器(流水线Reg)来构建

流水线CPU的特点
优点:通过指令级并行来提高性能。
缺点:
(1)增加了硬件成本。
(2)流水寄存器会引入延迟和时钟偏移,这些额外开销会使每条指令的执行时间有所增加,(3)同时限制了流水线的深度。
(4)流水线中各段的操作存在关联(dependence)时可能会引起流水线中断,从而影响流水线的性能和效率。

流水线冲突
理想流水线的性能:每个时钟周期完成一条指令
实际流水机器中可能存在冒险(hazard)导致停顿:
① 数据冲突(如后面的计算要用到前面的结果)
定向技术可将结果数据从其产生的地方直接传送到所有需要它的功能部件
编译器可利用流水线调度(scheduling)技术来重新组织指令顺序
②结构冲突(硬件资源不够)
增加额外的同类型资源
改变资源的设计使其能被同时使用
③控制冲突(分支等跳转指令引起 )
可采用分支预测及预测执行技术最大限度地使处理器各部分保持运行状态。

流水线数据冲突及解决方案
在这里插入图片描述
在这里插入图片描述
8.超标量CPU的体系结构
超标量技术:可在一个时钟周期内对多条指令进行并行处理,使CPI小于1;
特点:处理器中有两个或两个以上的相同的功能部件; 要求操作数之间必须没有相关性;
在这里插入图片描述

9.多线程技术
单片多处理器(Chip MulitProcessor,CMP)
问题:晶体管数量、芯片面积及芯片发热量

线程:程序执行流的最小单元。
多线程处理器(Multithreaded Processor):
细粒度多线程(Fine-Grail Multithreading)在每个指令中切换线程,处理器必须能在每个时钟周期切换线程。

其优点是可以隐藏停顿引起的吞吐量损失;缺点是单个线程处理速度变慢了。

粗粒度多线程(Coarse-Grail Multithreading) 仅当遇到开销大的阻塞时才切换线程其缺陷在于流水线启动开销引起吞吐量损失,特别是对于短的阻塞。

10.计算机系统的性能测定
计算机系统的性能由硬件性能和程序特性决定,通常可利用标准测试程序来测定性能。
用MIPS (Million Instructions Per Second,每秒百万条指令)或MFLOPS(每秒百万次浮点操作)的数值来衡量计算机系统的硬件速度。
用 CPU执行时间T来量化硬软件结合系统的有效速度。

MIPS = f(MHz)/CPI 
T(s) = (IC × CPI)/f(Hz) 

f(时钟频率): CPU的基本工作频率
IC(指令数目):运行程序的指令总数
CPI(Cycles Per Instruction):指令执行的平均周期数,可从运行大量测试程序或实际程序产生的统计数据中计算出来 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值