作者: 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):指令执行的平均周期数,可从运行大量测试程序或实际程序产生的统计数据中计算出来 。

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

  1. 微处理器系统结构与嵌入式系统设计笔记(一)

    第一章 概述 1.1 计算机发展历程 1.2 集成电路与SoC技术 1.3 先进的处理器技术 1.4 信息在计算机中的表示方法 1.5 指令.程序的概念以及程序的执行过程 1.6 嵌入式系统的概念.特 ...

  2. 嵌入式系统设计(一)

    嵌入式系统设计 [课程来源:电子科技大学 陈虹老师 研究生课程 <嵌入式系统设计>] [说明:个人课程笔记,仅供参考] 课程体系: 理论与实践相结合 以嵌入式硬件的核心嵌入式微处理器及嵌入 ...

  3. 北航研究生课程嵌入式系统设计与应用(17系)知识点总结

    嵌入式系统大纲2019 1.嵌入式系统目前被大多数人接受的一般性定义是什么?举例说明嵌入式系统的应用 嵌入式系统是"以应用为中,以计算机为技术基础,软硬件可裁减,适用于应用系统对功能. 可靠 ...

  4. 系统架构设计笔记(64)—— 嵌入式系统设计

    嵌入式系统设计的主要任务是定义系统的功能 . 决定系统的架构,并将功能映射到系统实现架构上.这里,系统架构既包括软件系统架构也包括硬件系统架构.一种架构可以映射到各种不同的物理实现,每种实现表示不同的 ...

  5. Xilinx Zynq-7000嵌入式系统设计与实现 学习教程(1)

    开篇体会; Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,ARM处理器的串行执行+FPGA的并行执行,着力于解决大数据处理.人工智能等复杂高性能算法处理. 新的设计工具的推出,vi ...

  6. 嵌入式系统设计--课堂总结(概述)

    一.嵌入式系统设计课程内容 目标: 1.了解嵌入式技术: 2.掌握嵌入式Linux操作的使用:(命令) (80%以上的开发平台都是Linux) 3.掌握嵌入式Linux开发工具的使用:(gcc.gbd ...

  7. 干货:嵌入式系统设计开发大全!(万字总结)-道合顺大数据infinigo

    01 嵌入式系统设计方法变化的背景 嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动,随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高.硅材料与人类智慧的结 ...

  8. 无线互联 嵌入式系统设计的新挑战

    一.嵌入式系统应用市场广阔 嵌入式系统已经广泛渗入到我们日常生活和工业控制领域,商业应用领域的的方方面面.在日常生活中,数码相机.手机.mp3.pda.电视机,甚至电饭 锅.手表,玩具等里都有嵌入式系 ...

  9. 简谈Xilinx Zynq-7000嵌入式系统设计与实现

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货.    Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,ARM处理器的串行执行+FPGA的并行 ...

  10. 干货:嵌入式系统设计开发大全!(万字总结)

    出品 21ic中国电子网 付斌整理 网站:21ic.com 01 嵌入式系统设计方法变化的背景 嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动,随着微电子技术的不断创新和发展,大 ...

最新文章

  1. grails 环境找不到java_home
  2. nginx 安装及使用命令
  3. imu与gps之间的时间戳_一个时间戳精度问题,引发了一个MySQL血案
  4. android html图片点击事件,Android TextView加载HTMl图文之添加点击事件和查看图片
  5. 自行车房车,还是第一次看到,惊倒一片!
  6. 数字信号处理——时频分析(短时傅里叶变换)
  7. CUDA C程序中的函数类型
  8. 基于JAVA+SpringMVC+MYSQL的学生成绩管理系统
  9. LeetCode 119. Pascal’s Triangle II
  10. python爬取美女图片
  11. HFSS天线设计实例_BLE天线仿真
  12. android instance区别,Android singleTask 和singleInstance的区别
  13. 电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析)
  14. 微分方程求解一(常微分方程求解)
  15. kubeadm High availability cluster
  16. Chap.20 总结《CL: An Introduction》 (Vyvyan Evans)
  17. Redux 异步数据流-- thunk中间件源码解析
  18. android 默认勾选权限_Android系统Framework定制默认值预置修改
  19. 20个最好的在线网站 Fav 图标生成工具
  20. Android CE DE加密小结

热门文章

  1. UCSC 基因组浏览器配置详解
  2. 屌丝程序猿的中国合伙人之路
  3. html 强制复制粘贴,强制复制粘贴神器一键复制粘贴文本教程
  4. 《诗六十首》一个会写诗的程序员
  5. java 重写泛型方法_java – 泛型方法重写8
  6. excel表转成PDF文档
  7. 关于触发器原理及选型参数
  8. 苹果计算机格式化磁盘,MAC格式化移动硬盘
  9. 6、numpy之文件保存与加载
  10. 计算机管理恢复分区,如何在Windows10中删除磁盘管理器中的恢复分区