计算机组成原理(五)

一、链式查询方式


接口的优先级固定不变

在链式查询的情况下,设备的优先级通常与其在链中的位置有关。具体来说,越靠近查询链的起始位置的设备通常具有较高的优先级,而越靠近链的末尾位置的设备优先级较低。

优点:
  • 简单实现:链式查询可以通过简单的硬件逻辑或软件控制实现,无需复杂的总线仲裁机制。
  • 低成本:相比于其他总线访问方式,链式查询的硬件成本较低,适用于成本敏感型应用。
  • 适用于少量设备:对于少量设备的系统,链式查询是一种有效的管理方式,可以简化系统设计和管理。
缺点:
  • 响应时间不稳定:由于设备的查询顺序是固定的,靠近链起始位置的设备响应时间较短,而靠近链末尾位置的设备响应时间较长,导致整体响应时间不稳定。

  • 单点故障影响大:如果链中的某个设备发生故障,可能会影响整个链式查询系统的正常工作。

  • 不适用于大规模系统:对于大规模设备的系统,链式查询可能会导致查询时间过长,降低系统性能。

适用场景:
  • 小型系统:链式查询适用于设备数量较少的小型系统,例如家庭电器控制系统、嵌入式系统等。
  • 低成本应用:由于链式查询的硬件成本低,适用于成本敏感型应用,例如消费类电子产品、嵌入式控制器等。

二、计数器定时查询方式


可以通过软件修改计数器的初始值,改变调用接口的优先级

地址线:

通过地址线,CPU可以确定要访问的内存或 I/O 设备的地址范围。例如,如果一个系统有 16 条地址线,那么它可以访问的地址范围为 2^16,即 0 到 65535。地址线不直接指向特定的设备,而是用于选择地址范围。

设备地址:

设备地址是特定的 I/O 设备在系统中的地址位置。这个地址通常是由设备的控制器或系统配置确定的,不同的设备有不同的地址。当 CPU 决定要访问某个 I/O 设备时,它会发送相应的地址信号,选择要与之通信的设备地址。

地址线用于选择要访问的地址范围,而设备地址用于选择具体的 I/O 设备。CPU可以通过地址线确定要访问的地址范围,然后通过发送设备地址来选择特定的 I/O 设备进行通信。

不过上面这两种都是按顺序进行查找的,这个速度依然慢

三、独立请求方式

可以通过修改排队器,改变调用接口的优先级
缺点:使用的线太多了




数据传输的每个阶段都严格按照定宽、定距的时钟信号进行同步,确保数据的采样和传输在预定的时刻进行。

固定的时刻进行固定的操作。

  1. T1上升沿:

    CPU给出地址信号,指定要访问的设备或内存位置。

  2. T2上升沿:

    在此期间,数据的读取准备工作在进行。CPU向外设发送读信号,指示其准备好接受数据。

  3. T3上升沿:

    外设将数据通过数据总线发送给CPU,CPU准备接收数据。

  4. T4上升沿:

    在T4上升沿时,CPU撤销控制(读)信号和数据信号,表示数据传输过程的结束。

  5. T4结束时:

    CPU撤销地址信号,表示数据输入过程的结束。

  1. T1上升沿:

    CPU给出地址信号,指定要从中读取数据的设备或内存位置。

  2. T1下降沿:

    外设在T1下降沿时,准备好数据并开始将数据发送到数据总线上。

  3. T2上升沿:

    CPU给出写命令,指示外设进行数据写入。

  4. T2至T3上升沿之间:

    外设进行写入操作,将数据写入到指定的设备或内存位置。

  5. T4上升沿:

    CPU撤销数据信号和写命令信号,表示数据写入过程的结束。

  6. T4结束时:

    CPU撤销地址信号,表示数据输出过程的结束。

异步通信是一种数据传输方式,其中发送方和接收方的时钟信号不同步。在异步通信中,数据的传输不依赖于定时的时钟信号,而是通过特定的起始位和停止位来标识数据的开始和结束。

不互锁(Non-Handshaking):

在不互锁的异步通信中,发送方和接收方之间没有任何确认或应答信号。发送方发送数据后,不等待接收方的确认,而是直接继续发送下一个数据。

这种方式简单直接,但可能会存在数据丢失或传输错误的风险。

半互锁(Half-Duplex Handshaking):

在半互锁的异步通信中,发送方在发送数据后会等待接收方发送确认信号。一旦接收方接收到数据并进行处理,就会发送一个确认信号给发送方。

这种方式可以确保数据的可靠传输,但仍存在一定的风险,如接收方无法及时发送确认信号导致数据丢失。

全互锁(Full-Duplex Handshaking):

在全互锁的异步通信中,发送方和接收方之间进行完全的双向确认。发送方在发送数据后会等待接收方发送确认信号,同时接收方在接收到数据后会发送一个确认信号给发送方。

这种方式提供了最高级别的数据传输可靠性和稳定性,确保了数据的完整性和准确性。

  1. T1上升沿:

    CPU给出地址信号,指定要访问的设备或内存位置。

  2. T2上升沿:

    CPU给出读信号

  3. 在T3开始之前:

    从设备如果不能把数据准备好

    通过wait信号给出一个低电平,告诉CPU进行等待

    CPU检测wait信号是低电平,就会在T3到来之前,插入Tw

    在下一个时钟周期开始之前,继续检测wait信号是否是高电平,否则重复上述操作

    高电平则是,数据已经在数据总线上了,CPU可以进行数据接收

  4. T3周期:

    CPU开始接收数据

  5. T4周期开始时:

    CPU撤销读命令信号和数据信号,表示数据传输过程的结束

  6. T4周期结束时:

    CPU撤销地址信号,表示数据输入过程的结束。

上诉三种的缺点如下图,总线会空闲,导致资源浪费

相关推荐
小松学前端4 分钟前
第六章 7.0 LinkList
java·开发语言·网络
二十雨辰11 分钟前
[linux]docker基础
linux·运维·docker
城南vision21 分钟前
计算机网络——TCP篇
网络·tcp/ip·计算机网络
Jason-河山1 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化
Ciderw1 小时前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
lihuhelihu1 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
哲讯智能科技1 小时前
SAP Business One市场价格解析
运维·sap·erp
山东布谷科技官方1 小时前
布谷直播源码部署服务器关于数据库配置的详细说明
运维·服务器·数据库·直播系统源码·直播源码·直播系统搭建·直播软件开发
One_Blanks1 小时前
渗透测试-Linux基础(1)
linux·运维·安全
爱吃喵的鲤鱼1 小时前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++