1.计算机组成原理,掌握如何实现的具体细节。。

1.计算机组件原理介绍

计算机:数字电子计算机

组成:计算机硬件系统的逻辑实现

原理:基本实现原理不以具体模型为准。

计算机组成原理:掌握其实现方式的细节。

1.1 计算机系统简介

计算机系统由两部分组成:硬件和软件。软件包括系统软件和应用软件。

系统软件管理整个计算机系统:

应用软件是根据任务需要编写的程序。

软件可以简单地看成一种层次结构,硬件为软件提供接口,系统软件为应用软件形成接口,完成不同的程序。

针对计算机的物理结构层次,本课程主要研究逻辑层和微电路层的具体实现方法。

计算机系统的指令层次结构如下图所示

操作系统管理硬件和软件资源。

计算机系统结构定义了系统的软件和硬件之间的接口,定义了哪些功能由软件实现,哪些功能由硬件实现,定义为==计算机系统所见的属性程序员的概念结构和功能特点==。 (指令系统、数据类型、寻址技术、I/O机制),也就是程序员需要了解的。

计算机组成:计算机体系结构所体现的属性的实现,即具体指令的实现。

1.2 计算机的基本组成1.2.1 冯诺依曼结构

上图中实线表示数据流向,虚线表示控制反馈。

冯诺依曼结构以算子为中心,容易形成瓶颈。我们可以使用内存作为枢纽进行优化,但这还不够。

1.2.2 现代计算机硬件框图

指令和数据存储在内存中。

1.2.内存的3个基本组成部分

MAR是内存地址寄存器,保存着存储单元的地址和编号,长度反映了存储单元的个数。

MDR为内存数据寄存器,保存要存入存储区的数据或刚从存储区取出的数据,长度反映存储字长。

使用 MAR 和 MDR 将数据放入内存。

1.2.4个组件结构

ALU(算术逻辑单元),通常是组合电路,取消输入,取消输出,所以需要增加一个寄存器来保存运算所涉及的计算。

数据寄存器X保存输入参数,ACC是累加寄存器,保存结果,乘法可能使数据位数不保存,使用MQ寄存器保存低位。

上表存储了计算器在不同操作中的工作过程。以乘法为例,其运算过程如下:

这些操作的顺序由控制器控制。

1.2.5 控制器的基本结构

控制器的作用是解释指令(完成指令)并保证指令的有序执行。

下面以fetch指令为例,分析指令的执行过程(fetch发送到ACC)

PC 保存指令的地址并将其发送到 MAR 进行寻址。 MAR根据地址在内存条中找到存储的指令。 MDR 从存储库中取出指令并将其发送到 IR。 IR 存储要执行的指令。 IR 将操作码发送到 CU 中的分析中,并将地址码发送到 MAR 以查找该编号的数据。 MAR根据地址在内存条中找到要取出的号码。 MDR 保存要从存储库中获取的数字。在CU的控制下有关触发器寄存器的诗,将要取的号码发送给ACC。

CU 分析控制这些步骤的过程。

1.3 计算机硬件主要技术指标2. 计算机发展与应用2.1 计算机发展历程

第一台计算机,1946 年的 ENIAC,以十进制运行。

电子技术的发展和计算机体系结构技术的发展对计算机的发展起到了决定性的作用。

按照硬件技术划分计算机代码

管→晶体管→大规模集成电路→大规模集成电路→VLSI

软件技术的发展:机器语言(面向机器)、汇编语言(面向机器)、高级语言(面向问题)。

2.2计算机应用3.系统总线3.1总线基本概念

总线是连接各个组件的信息传输线,是各个组件共享的传输介质,是信号的公共传输线。

如果采用单总线结构(系统总线),则只能有一对元件同时进行信号传输,效率较低。使用双总线结构会更高效。

上述结构不能直接在I/O和主存之间传递信息,必须经过CPU。

3.2总线分类

通信总线:计算机之间或计算机与其他设备之间的通信有关触发器寄存器的诗,并行通信总线和串行通信总线。 3.3 总线特性和性能指标

总线印在电路板(主板)上,其他设备板插在电路板上。

总线性能指标:

3.4总线结构

增加了DMA(Direct Memory Access)总线,外部设备直接访问内存内存。高速设备直接通过 DMA 访问主存。

CPU和缓存通过本地总线连接,扩展总线连接外部设备。

高速设备和低速设备分开,分别连接到高速总线和扩展总线。

PCI高速总线连接高速设备,PCI总线可以通过网桥扩展。

3.5总线控制3.5.1总线仲裁控制

我们根据设备是否可以向总线发出占用请求,将设备分为主设备(主模块)和从设备(从模块)。主设备可以控制总线,从设备响应主设备发送的总线命令。

总线仲裁控制可以分为集中式和分布式两种。下面介绍几种集中式总线仲裁控制结构。

主设备通过BR申请对总线的控制。如果有设备使用总线,设置 BS。总线控制组件通过链式BG查询这些接口是否已经提出BR,遇到BR时交出控制权。

因此,优先顺序是BG的查询顺序。这种结构对电路故障特别敏感,尤其是 BG。如果BG后面有问题,后面的设备是不会响应的。

数据线用于数据传输,地址线用于从设备的搜索。使用设备地址线查明设备是否正在发出总线请求。计数器的值通过设备地址线传输,以确定设备是否正在发出请求。可以自定义计数器的计数方式,改变先查询哪个设备等。

在每个I/O接口上增加了BR和BG,通过排队设备优先排队。此方法使用更多行。

3.5.2总线通讯控制

为了解决通信双方(主从设备)之间的协调问题。

总线的传输周期(主从设备完成一次完整可靠传输所需的时间):

强制同步,如果设备之间的速度不同,快的设备需要等待慢的设备。

不互锁:无论从设备是否收到请求信号,主设备都会在一段时间后取消请求。无论主设备是否收到回复信号,从设备都会在一段时间内撤回回复。

半联锁和全联锁针对上述情况进行了改进。

增加等待响应信号,当等待为低时,等待一个T。

使用拆分通信,充分利用总线空闲时间。

图片[1]-1.计算机组成原理,掌握如何实现的具体细节。。-老王博客

4. 存储 4.1 概述

按访问方式对内存进行分类:

在计算机中按功能分类:

存储层次结构:

4.2 主存储器 4.2.1 概述

主存的基本组成:

主存和CPU之间的链接:

主存中位置地址的分配:

主存技术指标:

4.2.2 主存半导体芯片简介

基本结构:

解码驱动:

第一种方法是选线法

第二种方法是复制规律

4.2.3 随机存取存储器 (RAM) 4.2.3.1 静态 RAM (SRAM)

SRAM的基本电路:

SRAM 芯片示例(Intel 2114):

4.2.3.2 动态 RAM (DRAM)

DRAM的基本电路:

另一种结构是单管动态RAM:

三管DRAM芯片示例(Intel 1103):

单管DRAM芯片示例(Intel 4116 16k×1 bit):

动态 RAM 刷新:

4.2.3.3 两种RAM的比较

4.2.4 只读存储器(ROM)

ROM 一般保存系统信息或系统程序。早期是只读的,不能写。经过多年的发展和完善,目前的ROM可以自行多次读写。

4.2.5 CPU和内存连接

内存扩容可以通过位扩容(增加存储字长)、字扩容(增加存储字数)、同时扩容。

CPU与内存的连接:

4.2.6 内存检查

检查、检测合法代码并纠正非法代码。

码的纠错和检错能力与码的最小距离有关。最小距离是任何两组法律代码之间的二进制数字的最小差异。 $$ L-1 = D + C\ (D≥C) $$L是最小距离,D是检测错误的位数,C是纠正错误的位数。

汉明码是一种具有一位纠错能力的码。汉明码采用奇偶校验和块校验(包的奇偶校验,包之间有重叠,校验位放在2^k,k=0,1,2,3…)。

汉明码的分组,将码中的每一位分组(1、2、3、4、5、6、7序号),将每一位的序号分组,二进制数的最右位分组序号为1,第一组,右边第二位为1,第二组……

==最后的校验结果,哪个位为1,则对应组序号的码位错误。如果有多个 1,则这些组的公共位是错误的。 ==

4.2.7 提高主存访问和存储速度

CPU 提速快,但内存提速较慢。

我们可以使用高速设备,采用分层结构(Cache-main memory),==调整主存结构。 ==

4.3 缓存4.3.1 概述

CPU和主存(DRAM)之间存在速度差异,为了避免CPU“空等待”的现象,使用缓存。

程序访问的局部性原则:

缓存的工作原理:

主存和缓存被分成大小相等的块,每个块大小相等,主存中的块数远大于缓存中的块数。 ==主存和缓存之间的信息传递是以块为单位传递的,块中的地址保持不变,缓存中每个块的标记标记了这个块是主存的哪个块。 ==

主存块被调入缓存(即缓存被标记),称为命中,CPU可以直接获取缓存中的数据;如果没有被调用,则称为未命中。

我们希望程序每次执行的时候,尽可能的从缓存中提取数据,这样速度会非常快。 CPU 想要访问的信息在 Cache 中的比例称为命中率,命中率与 Cache 的容量和块长度有关。一般每块占用4-8个字,一般是一个访问周期内从主存调出的信息长度。

缓存和主存的访问效率:

这里的平均访问时间是每次访问的平均时间(可能来自缓存,也可能来自主存)。

4.3.2缓存基本结构及读写操作

缓存的基本结构:

读写操作:

缓存改进:

4.3.3 主存的缓存-地址映射

主内存的任何块都加载到缓存中的哪个块中。

直接映射:

即主存中的任何块都只能映射到指定的缓存块,并且缓存块可以是一对多的。相当于对主存进行分区,每个区域的这些块对应缓存中的所有块;这样,在缓存的标记中,有一个t位的标记,表示当前缓存块存放在主存信息的哪个区域的对应位置。

此方法缓存块利用率低,可能会发生冲突。

全关联映射:

主存中的任何块都可以放在缓存中的任何块中。

这种情况下,虽然block的利用率很高,但是因为block可以映射到任意位置,如果查询某个主存block是否已经放入cache,需要对比所有cache标签,比较慢。

==组关联映射==:

类似于直接映射,==分组缓存,每组可以有多个块;对主存进行分区,每个区域的大小就是缓存组的数量==。这样每个区域的第0块可以放在缓存第0组的任意位置,因为每组有多个块,解决了直接映射的冲突问题;我想查询主存中的某块是否放置缓存,只需要在对应的组中查询即可,解决了全关联映射的问题。

4.3.4 种替换算法

如果内存块已满,如何更换,谁弹出。

先进先出(FIFO)算法

最近最少使用 (LRU) 算法

4.4 辅助存储

辅助存储器的主要功能是保存程序、文件和音像资料。它不能直接与CPU交换信息,需要转移到主存进行读写。

包括磁盘存储和光盘存储等

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论