预习计算机组成原理之概论简介与系统总线——笔记1

计算机组成系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
第一章 计算机系统概论简介
第二章 计算机的发展以及应用(曾经作为过考点)
第三章 系统总线


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

这里是计算机组成的第一章,计算机系统的简介,大二刚结束,记录一下跟着老师学习下学期的计算机组成的心得体会吧。
本篇应该是第一章计算机系统概论核和第三章的系统总线


提示:以下是本篇文章正文内容,下面案例可供参考

一、计算机系统概论

1.1 现代计算机系统由哪两部分构成?——软硬件概念

在这里插入图片描述
软件包括系统软件和应用软件
硬件包括主机和外设,主机包括CPU和主存
在这里插入图片描述

1.2 层次结构

上层调用下层提供的接口调用下层的功能来实现自己的功能。
在这里插入图片描述
实际机器M1和微程序机器M0两个是硬件
虚拟机器对应的是软件
M0由硬件直接执行微指令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 冯·诺依曼计算机

1.3.1 它的特点:

  1. 由五大部件组成:运算器、控制器、存储器、输入设备、输出设备
  2. 指令和数据以同等的地位存于存储器,可按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码(要做什么操作)和地址码(操作数存放的地址)组成 停机指令没有地址码!!
  5. ** 存储程序(核心特征!!!!) **
  6. 以运算器为中心

1.3.2 冯·诺依曼计算机硬件框图

运算器为中心
输入设备要通过运算器存入存储器
存储器要通过运算器到输出设备
实线是数据通过
虚线是控制和状态反馈
运算器: 算术运算和逻辑运算
存储器: 存放数据和程序
控制器: 指挥控制程序运行
输入设备 将信息转化为机器能识别的形式
输出设备 将结果转换为人们熟悉的形式
问题:不具有层次化的特征、运算器过于繁忙
在这里插入图片描述

1.3.3 改进的以存储器为中心的计算器硬件框图

双线的箭头表示数据的传输
在这里插入图片描述

1.3.4 现代计算器硬件框图

CPU包括ALU、CU
主机包括CPU和主存(所以电脑中的硬盘是辅存,不属于主机)
I/O设备包括辅存和输入设备输出设备(注意是包括辅存的)
而硬件则包括主机和I/O设备
在这里插入图片描述

系统复杂性管理的方法——3Y
层次化: 将被设计的系统分为多个模块或子模块,分别对子模块进行设计
模块化: 有明确定义的功能和接口,这样才可以将子模块组装在一起
规则性: 模块更容易被重用,设计的模块在别的系统也能用(比如只要内存的接口是标准化的,可以插到任何一个电脑上使用)

1.3.5 指令格式

指令格式组成:操作码+地址码
冯诺依曼机器:指令和数据都以同等地位保存在存储器中
都以二进制形式存储
将指令和数据互换,修改对应的地址码对应需要修改,然后将PC设置好到第一条指令即可继续运行!
在这里插入图片描述

存储器基本组成

在这里插入图片描述

存储元件构成存储单元,存储单元构成存储体

1.4.1 MAR

存储器地址寄存器,保存了存储单元的地址或者说存储单元的编号 ——它的长度说明着有多少个地址

1.4.2 MDR

存储器数据寄存器
要送到CPU的数据,或者从存储体取出或者送入存储体的数据——它的长度说明了存储字长的位数
在这里插入图片描述

运算器结构与功能

1.5.1 运算器的基本组成

为了让ALU(算逻运算单元,通常是组合电路),但是为了保存结果,需要在ALU之前用两个寄存器保存参与运算的数据,一个是ACC一个是X(数据寄存器)。为了保存运算结果,ACC还有保存运算结果的作用,但是有时候因为乘法的需要,还要一个MQ来作为另一个储存结果的寄存器。
在这里插入图片描述
各个运算时的寄存器用处如下:
其实可以注意一下,这个MQ用来保存乘数和商还有乘法的一个结果,所以被称为乘商寄存器
在这里插入图片描述

1.5.2 加法操作过程

指令是操作码+加数地址
首先把被加数存到ACC中,为加法做准备。
然后才把内存中的加数M存到X寄存器,结果保存到ACC
在这里插入图片描述

1.5.3 减法操作过程

指令是操作码+减数地址
被减数在初态被放入ACC
在这里插入图片描述

1.5.4 乘法操作过程

同样被乘数在初始状态就通过取数指令,放入ACC
M是乘数,送到MQ
再把ACC中的被乘数放到X寄存器(这一步不能忘!!)
由于乘法是通过累加和移位进行的,因此用ACC作为累加的寄存器,但是注意要先把ACC清零

这些操作的先后顺序由控制器进行控制
在这里插入图片描述

1.5.5 除法操作过程

对应减法一样,操作指令的M里面是除数的地址
在这里插入图片描述

控制器结构与功能

1.6.1 它的功能

解释指令
保证指令按序执行

1.6.2 控制器的基本组成

控制器由程序计数器PC、指令寄存器IR以及控制单元CU组成,控制器不只是CU!!!
完成一条指令分为三个阶段:
取指令PC:把内存单元保存的指令取出送到控制器
分析指令IR:操作码送到控制单元分析
执行指令CU:控制单元控制相应的执行部件完成相关操作

取指令 —> PC程序计数器,它与主存的MAR之间有一条通路,保存当前欲执行指令的地址,也就是说存放是预执行指令地址,存的是没有执行的指令
分析指令 ——>IR指令寄存器,它的内容来自MDR,存放当前要执行的指令,控制单元可以把操作码取出进行分析
执行指令 ——>操作的控制是CU进行控制
CU是控制器的核心,各种控制信号从CU发出来
在这里插入图片描述

主机完成一条指令的过程

1.7.1 以取数指令为例观察过程

1~4:取值操作
1:从PC取指令地址,送到MAR
2:保存地址,根据地址取出指令
3:取出的指令保存在MDR
4:IR存储现在要执行的指令

5:将指令寄存器的操作码部分存入CU
6:CU控制之下,IR将操作数地址送到MAR
7:取数
8:取出数送到MDR
9:将MDR中取出的数送到ACC

在这里插入图片描述

1.7.2 观察存数指令

在这里插入图片描述

1.7.3 一个普通程序的运行举例

在运行之前要先取出程序的指令首地址放到PC中
然后取指令、分析指令、执行指令完成一个动作
打印结果是最后一个动作,也是取指令、分析指令和执行指令的顺序
一定要记好这里的(PC)+1 对于PC的重新赋值是重要考点!!!
在这里插入图片描述

计算机硬件的主要技术指标

1.8.1 主要技术指标

  1. 机器字长:CPU一次能处理数据的位数,与CPU中寄存器位数有关。机器字长越长,性能越好
    比如可以让CPU对一个八位二进制做加法得到的还是八位二进制数,那么说机器字长为八。在模型机中,这与寄存器的位数是一致的
    早期计算机的存储字长一般和机器的指令字长与数据字长相等,但是现在的计算机要求指令字长与数据字长可变
    64位一般是说机器字长64,但是存储字长还有指令字长这三者都不一定相等,但是他们都必须是字节的整数倍

  2. 存储容量
    存储器的容量包括主存储器还有辅存储器
    存储容量= 存储单元个数(由MAR位数得到) × \times ×存储字长(MDR的位数,存储字长)
    存放二进制信息的总位数
    在这里插入图片描述

  3. 运算速度:有几个可以衡量的方面,
    主频 越高可能意味着运算速度越快,但是没有直接关系
    核数 每个核支持的线程数,但是也不是直接指标
    指令执行的速度 按照指令频率计算指令执行时间的加权平均值——吉普森法(两种计算方法)
    一种:指令的静态使用频率,用程序清单直接计算,不用执行
    另一种:动态使用频率,程序执行时候,每一条指令执行的频率,需要执行
    CPI 执行一条指令需要的时钟周期数,它的计算也需要计算平均值,静态使用频率或者动态使用频率,加权计算出来
    MIPS 每秒执行百万条指令
    FLOPS 每秒浮点运算次数,这个更加科学
    在这里插入图片描述

二、计算机的发展以及应用

2.1 计算机的产生历史

第一代电子管计算机
第二代晶体管计算机
第三代集成电路计算机
在这里插入图片描述

2.2 摩尔定理

在这里插入图片描述

2.3 软件

2.3.1 系统软件(考试区分)

操作系统属于大型系统软件
编译程序属于语言处理程序
连接程序属于服务型程序
数据库管理系统是系统软件,但是“数据库系统”不是
在这里插入图片描述

2.3.2 软件发展的特点

在这里插入图片描述

2.4 计算机的应用(考过CAD的名字)

这里一定注意CAD/CAM/CIMS
CAD 计算机辅助设计 Computer Aided Design
CAM 计算机辅助制造 Computer Aided Manufacturing
CIMS 计算机集成制造系统 Computer Integrated Manufacturing Systems
在这里插入图片描述
在这里插入图片描述

2.5 计算机的展望

在这里插入图片描述
在这里插入图片描述

三、系统总线

3.1 总线的基本概念

总线各个部件共享的传输介质,总线方便扩展计算机的各个设备

总线的概念: 总线是连接各个部件信息传输线,是各个部件共享的传输介质

总线上信息的传送: 分为串行和并行,但是不能直接比较两种方式谁块,如果是时钟周期相同情况下并行快,实际实现种并行总线如果时钟频率过高可能会出现问题。但是串行方式的实现的时候可能时钟频率很高

并行时候线与线之间可能存在干扰,因此应用的距离比较短,只有几厘米
而长距离的传输应该用串行,几十米甚至上百米
在这里插入图片描述
总线结构的计算机举例:

  1. 单总线结构框图
    一般来说CPU快于主存快于I/O
    这里存在的问题:
    首先,因为总线只能支持一对也就是两个设备使用 这里在I/O设备和主存进行数据传输时,CPU只能停止工作,他不能跟主存进行数据传输,影响效率。有的I/O设备很慢会影响结果
    其次,当主存与I/O设备很远时,数据传输需要通过较长时间
    在这里插入图片描述
  2. 面向CPU的双总线结构
    以CPU为中心
    这里增加了一个总线来让CPU和主存进行传输,CPU的数据和指令都来自主存,他们之间的信息交换十分繁忙,单独拿一个总线
    但是主存和I/O设备进行数据传输的时候还是需要经过CPU,打断了CPU的工作
    在这里插入图片描述
    3.以存储器为中心的双总线结构框图
    在这里插入图片描述

3.2 总线的分类 重点!!!!

  1. 片内总线——芯片内部的总线
  2. 系统总线——计算机各部件之间的信息传输线
    包括三类,数据总线;地址总线;控制总线
    数据总线: 双向,与机器字长、存储字长有关,通常是小于或者等于机器字长和存储字长
    地址总线: 单向,与存储地址、I/O地址有关,在我们的模型中是与MAR寄存器的宽度一致。都是由CPU发出到主存或者I/O
    控制总线: 方向有出(CPU的发出:存储器读,存储器写,总线允许,中断确认) 有入(传入CPU:中断请求、总线请求信号)
    出和入对应的不是同一根线,双向的数据总线则对应同一根线,两者不同
    在这里插入图片描述
    在这里插入图片描述
  3. 通信总线——用于计算机系统之间或计算机系统与其它系统(如控制仪表、移动通信等)之间的通信
    传输方式:串行通信总线和并行通信总线
    在这里插入图片描述

3.3 总线特性及性能指标

3.3.1 总线物理实现

在主板上
在这里插入图片描述

3.3.2 总线特性

机械特性:让总线能和插板能有效连接,尺寸、形状。管脚数以及排列顺序,什么样的卡插到什么样的槽中
电气特性:包括传输方向(数据线是双向的,地址线是单向的,注意这是电气特性而不是功能特性)有效的电平范围(0和1分别加上多少电压)是多少
功能特性:地址信号、数据信号、控制信号还有状态反馈信号
时间特性:信号的时序关系
在这里插入图片描述

3.3.3 总线的性能指标

首先是总线的宽度——>数据线的根数,根数越多,同时传输的位数越多,性能越好(可能4、8、16、32)
串行的总线的宽度就是1

标准传输率——> 通常用每秒做了多少操作传输多少数据,两个关键词:最大 满功率的、字节数

时钟同步还是异步 用一个时钟总线提供时钟

总线复用 ——>地址线与数据线的复用(8086 地址线20根,这20根地址线有16条同时作为数据线来使用,复用是一部分线复用,一部分专用,20位送到MAR,因为有D锁存器,16位可以被修改继续用来传输数据而不会修改结果)这样可以减少芯片管脚数量
总线复用的代价是加入了锁存器用来支持复用,锁存住地址低位,后面可以继续传输数据

信号线数——>地址线、数据线和控制线的总和(片选、读、写)(读写信号线和使能信号线)计算信号线数的时候要注意总线的复用

总线控制方式
其他指标
在这里插入图片描述

3.3.4 总线标准(可能选择,会考,比如记住他们的名字,小测考过)

在这里插入图片描述

不同企业生产不同的部件,需要一定的标准来进行集成
USB不是系统总线,他是通信总线
注意区分PCI和CPI还有IPC PCI是总线标准,但是CPI是表示每条计算机指令执行所需的时钟周期数,IPC是CPI倒数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3.5 总线结构

  1. 单总线结构
    总线成为了系统的瓶颈
    在这里插入图片描述
  2. 双总线结构
    存储总线和I/O总线分离
    存储总线上连接CPU和存储器。I/O总线上连接各种I/O设备
    通过 通道 把I/O总线和主存总线进行连接,实现I/O设备与主存与CPU的通信
    这里的 “通道” 是具有特殊功能、结构简单的处理器,专门用于输入输出操作
    通道 有自己的控制器,有自己的指令系统,通道可以执行一些简单指令,通道是由操作系统编写而不是人工编写
    在这里插入图片描述
  3. 三总线结构
    除了主存总线和I/O总线外,增加了一个DMA总线
    DMA:直接存储器访问(外部设备直接访问存储器内存)
    高速外设直接从I/O接口通过DMA总线访问主存
    而低速设备仍然要通过I/O总线经CPU访问主存(中低速设备用的还是程序中断或者是程序查询)

    在这里插入图片描述
    三总线结构的另一种形式:(局部总线的作用是重点)
    CPU和主存之间的信息交换是最大的,但是从内存读取过慢,为解决这个问题,从cache缓存中读更快
    局部总线将两者连起来,局部I/O控制器也可以连接一些局部的高速设备
    各种设备都可以连到扩展总线上,解决I/O设备的扩展问题
    但是存在一定问题,不同速度的外部设备都连接到扩展总线上,影响外部设备的工作速度
    在这里插入图片描述
  4. 四总线结构
    四总线结构加入了高速总线,将高速设备与低速设备分隔开
    在这里插入图片描述
  5. 举例在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  6. USB总线结构
    可以有多层的扩展,总外部设备连接个数少于或等于127
    在这里插入图片描述

3.3.6 总线控制(重点!难点!)

总线上连接了多个设备,设备之间进行通讯
总线的判优控制 到底哪一对设备使用总线
占用总线后,如何完成通讯过程 如何完成通讯过程以保证正确性

3.3.6.1 总线判优控制

基本概念:
是否能提出总线请求,把总线上的设备分为两类:
主设备(主模块),对总线具有控制权,可以提出对总线的占用申请,占用总线后可以控制和另外一台设备之间进行通信过程(CPU、DMA控制器等)
至少有一个主设备是CPU,DMA控制器也可能是主设备,对总线有控制权

从设备(从模块),响应从主设备发来的总线命令
有些设备既可以当主设备,又可以当从设备
有些总线只有一个主设备,有些可以有多个主设备

总线判优控制 分为集中式和分布式
集中式: 将判优逻辑放到一个逻辑部件中,放在CPU中。集中式又分为链式查询方式、计数器定时查询方式、独立请求方式
分布式: 将判优逻辑分布到各个设备,或者各个端口上

在这里插入图片描述

  1. 链式查询方式
    总线控制部件是集中在一起的,这是集中式总线判优控制的特征
    几个概念:
    数据总线: 用于信息交换过程中信息的传输
    地址总线: 主设备占用总线后,需要通过地址线找到从设备
    BR: 总线请求,提出总线占用或者总线使用的请求(所有设备)
    BS: 总线忙,如果某一个设备占用总线的控制权,通过总线忙这条信号告诉总线控制部件总线忙
    BG: 总线授权线,它的特点让这个方式叫做链式查询方式。当有请求到达总线控制部件后,决定可以让出总线控制权,

过程: 因为只通过一条线提出的请求,不知道哪个设备优先权更高,总线控制权不知道应该交给谁。BG逐个查看I/O接口,查看每个接口是否提出了总线占用请求,若没有则总线授权信号继续向下进行传送,直到碰到第一个提出总线占用的I/O接口。让他获得总线占用权,接口通过BS设置总线忙。

特点: (网友总结:链式会导致饥饿现象,且一处故障全局瘫痪)
优先级的确定:与BG这条线的查询顺序有直接关系,它的查询顺序在一开始便已经确定
对电路故障特别敏感,尤其是BG,有一个地方发生电路故障信号无法向下传送的话,后面的I/O设备都无法接收到信号
优点是结构简单,优先级和总线仲裁的线只有三条。增删设备十分简单。可靠性设计也非常简单,比如将某一条线换成两条线,避免一些电路故障

速度比较慢,一般使用在微型计算机和简单的嵌入式系统中
在这里插入图片描述
2. 计数器定时查询方式
数据线
地址线
设备地址:传输的地址是由计数器给出的,通过这个地址查找某一个设备是否发出了总线的占用请求
BR
BS
特点:
总线控制部件有一个计数器,初值可以是0也可以是其他,如果某一个主设备请求总线使用权,并且如果此时总线可以让出总线使用权,启动计数器,通过设备地址这条线向外输出。如果计数器为0,那么就会查找0号设备是否提出了总线占用请求。如果设备未提出总线占用请求,那么计数器+1,继续查找。直到有一个接口响应,然后通过BS这条线进行应答,I/O接口被选中。

优点:
可以修改优先级顺序,只要修改设备地址即可

  • 优先级确定非常灵活,可以事先确定,比如每一次计数器初始值都是从0开始,然后1234一直到n,此时优先级确定。但是优先级也可以从上一次结束的位置开始,此时就是循环优先级,这种条件下认为优先级是相同的,被选中机会相等。也可以软件进行设置初值等设置,可以进行更灵活的优先级确定。

区分: 除了数据线和地址线两条线以外,跟链式查询方式相比少了一个BG线,多了一个设备地址线。设备地址线的宽度应该是至少需要 ⌈ log ⁡ 2 n ⌉ \lceil \log_2 n \rceil log2n条, ⌈ log ⁡ 2 n ⌉ + 2 \lceil \log_2 n \rceil+2 log2n+2则是算上了BS和BR
在这里插入图片描述
3.独立请求方式
其实前两个都是按照顺序查找哪一个设备提出总线占用信号
每条线每个接口两条线,一个 B R n BR_n BRn B G n BG_n BGn,通过 B R n BR_n BRn发送请求,然后总线控制部件会有排队器进行排队,这样可以灵活确定优先级,然后通过 B G n BG_n BGn返回响应信号。

优点:即使哪一条线出现问题不会影响其他设备
缺点:线太多了

在这里插入图片描述
4. 分布式控制
在这里插入图片描述

3.3.6.2 总线通信控制

主设备取得总线使用权后和从设备进行信息交换

  • 目的:解决通信双方协调配合 问题
  • 总线传输周期:主设备和从设备完成一次完整的并且可靠的一次通信所需要的时间。
    这需要完成以下几个过程

申请分配阶段,经过优先级的判断,分配总线给谁使用,若只有一个主设备,主设备直接占用不需要再申请,可以没有申请分配阶段

撤销有关信息:清除传的数据、地址、命令以及申请分配阶段的一些握手信号

在这里插入图片描述

  • 总线通信的四种方式

异步通信的时候,时钟不同随着时间的推移,相差会越来越大,采用应答方式来进行统一

半同步通信:既有统一时钟信号又有应答信号

分离式通信是在CPU不占用总线的时候,释放总线使用权让总线做别的事情
在这里插入图片描述

  • 同步通信
    同步通信,主从设备都是按照统一时标进行的,快的设备需要等待慢的设备

特点:
有定宽定距的时钟
发送方用系统时钟前沿发信号
接收方用系统时钟后沿判断、识别

应用在总线长度比较短,各个模块存取时间比较一致的情况下用同步通信
假设总线的传输周期有为4T,定宽定距的时钟,控制整个数据输出的过程——下面我们以同步的数据输入为例,
我们可以看到每一个时钟上升沿,各个信号的变化
读命令通常低电平有效
在这里插入图片描述
在第一个时钟上升沿,给出地址信号,这个信号是主设备给出的:
在这里插入图片描述
第二个时钟上升沿,读命令信号,告诉从设备读入数据
在这里插入图片描述
第三个周期的时钟上升沿,从设备通过数据总线给出数据信号
在这里插入图片描述
第四个时钟上升沿,数据信号和控制信号撤销。第四个时钟周期结束后,地址信号也撤销了
在这里插入图片描述
若是同步式数据输出,第一个时钟周期上升沿,给出地址信号。第一个时钟下降沿,给出数据。第二个时钟上升沿给出写命令,向从设备进行数据写入,第三个时钟的上升沿在进行写入操作。第四个时钟上升沿撤销数据,撤销写命令。第四个时钟的结束之前,地址信息也撤销掉。
在这里插入图片描述

  • 异步通信

解决同步通信时主从设备频率不统一的情况,在规定的节拍内不能完成任务,出现错误

没有定宽顶距的时钟,增加两条线,一条线是请求线(主设备发出请求信号),一条是应答线(从设备对主设备的应答)

特点: 允许不同速度的模块和谐工作

不互锁:主设备发出通信请求,从设备接收请求后进行应答,之后主设备撤销请求信号,从设备也撤销应答信号
主设备发出通信请求后无论之后是否接到了应答信号,都会在一段时间后都会撤销请求信号
从设备不管主设备是否接收到了应答信号,都会在一段时间后都会撤销应答信号
不互锁的方式通信可靠性存在问题

半互锁:主设备发出请求,从设备接收到请求后发出应答信号,等主设备接收到了应答信号后才撤销请求信号。若接收不到的话,接收会保持。但是从设备会在一定时间后撤销响应信号。
半互锁方式可能让主设备的请求信号一直保持高电平

全互锁:主设备发出请求,从设备发出应答信号。主设备接收到应答信号后才会撤销请求信号,从设备在主设备接收到应答信号后才会撤销应答信号
如果传输过程中数据出错,半互锁和全互锁可以请求从设备重新发送或者接受数据
在这里插入图片描述

  • 半同步通信
    有同步和异步的特点,除此之外增加一条“等待信号” W A I T ‾ \overline{WAIT} WAIT
    在这里插入图片描述
    以CPU读入数据为例的半同步通信时序
    当从模块比主模块慢的时候,就需要从模块发出wait信号,让主模块等等他,一次等一个时钟周期,
    在下个时钟周期开始前检测wait,低电平继续等,高电平说明准备好数据了,拿就完事
    在这里插入图片描述

但是我们注意到以上三种通信的特点,发现从模块准备数据这一阶段总线空闲。这是对总线资源的一种浪费。
因此提出第四种方法,分离式通信。

发命令和地址的时候占用的是控制总线和地址总线
从模块向主模块发数据占用数据总线

在这里插入图片描述

  • 分离式通信
    原来的从模块临时变成了主模块

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值