总线、I/O总线、I/O接口

news2024/11/25 6:49:56

总线是计算机内数据传输的公共路径,用于实现两个或以上部件之间的信息交换。计算机系统中有多种总线,它们在各个层次上提供部件之间的连接和信息交换通路。

  1. 核内总线:在处理器核内部各元件之间连线的总线称为核内总线,可连接核内各寄存器、ALU、指令部件等
  2. 系统总线:指连接处理器芯片、存储器芯片和各种I/O模块等主要部件的总线,通常所说的总线是指这类在系统主要模块之间互连的总线。

系统总线

一、组成:通常由一组控制线、一组数据线和一组地址线构成。也有些总线没有单独的地址线,即数据线和地址线复用
  1. 数据线:用来承载在源部件和目的部件之间传输的信息,可能是CPU和主存之间交换的数据或从主存取出的指令,也可能是CPU向I/O模块发出的控制命令或从I/O模块收集到的状态信息。数据线和地址线复用的话,数据线上也可以传送地址信息
  2. 地址线:用来给出源数据或目的数据所在的主存单元或I/O模块的地址。地址线是单向的,总是由CPU将地址信息送到地址线,然后传送给CPU要访问的主存储器或I/O模块
  3. 控制线:用来控制对数据线和地址线的访问和使用。用来传输定时信号和命令信息。除地址线和数据线以外的通信线都称为控制线,如用于传送时钟、复位、总线操作控制、总线请求和总线回答等信号的传输线
二、同步和异步问题
  1. 同步总线:传统的总线大多是同步总线,采用公共的时钟信号进行定时。挂接在总线上的所有设备都从时钟线上获得定时信号。
    • 工作方式:若处理器通过总线访问存储器,可规定协议如下:主控设备(即处理器)在第一个时钟周期发送地址和存储器读命令,从设备(即存储器)总是在第五个时钟周期将数据放到总线上作为响应,处理器也是在第五个时钟周期从数据线上取数据
    • 缺点:
      • 总线定时以最慢设备所用时间为标准,因此同步总线适合存取时间相差不大的多个功能部件之间的通信
      • 同步总线不能过长,否则会降低总线传输效率。同步总线通常采用并行传输方式,因此使用更快传送速度、更长传输线的总线时,会导致传送到另一端的波形变形
  2. 异步总线:现在大多采用异步串行总线。
    • 优点:因为串行,每次在一根信号线上传送数据位,因此传输速率可以比并行总线高得多。
三、总线的性能
  1. 总线宽度:每次能同时传输的信息位数,也即数据线的条数
  2. 总线工作频率
  3. 总线带宽:即总线在数据传输时单位时间内最多可传输的数据量,也即总线的最大数据传输率
  4. 总线寻址能力:即由地址线位数所确定的可寻址地址空间的大小
  5. 总线定时方式:
    • 同步:通信总线由时钟信号同步
    • 异步:前一个信号的结束就是下一个信号的开始,信息的改变是顺序的
    • 半同步:前两者的结合
  6. 总线传送方式:
    • 非突发方式:每个传送周期内都是先传送地址,再传送数据
    • 突发方式:开始先给出数据块在存储器中的首地址,然后可连续传送数据块中的后续数据,无需在地址线上传送后续数据的地址信息。
  7. 总线负载能力:指总线上所能挂接的遵循总线电气规范的总线设备的数目。

基于总线的互连结构

早期传统的基于总线互连的计算机结构示意图如下:
请添加图片描述

图解:

  • 北桥芯片和南桥芯片:是两块超大规模集成电路芯片,它们组成一个“芯片组”,是计算机中各个组成部分相互连接和通信的枢纽。主板上所有的存储器控制功能和I/O控制功能几乎都集成在该芯片组内,既实现了总线的功能,又提供了各种I/O接口及相关的控制功能
    • 北桥:是一个主存控制器集线器(Memory Controller Hub, MCH)芯片,本质上是一个DMA(direct memory access)控制器。因此可通过MCH芯片,直接访问主存和显卡中的显存
    • 南桥:是一个I/O控制器集线器(I/O controller hub, ICH)芯片,其中可以集成USB控制器、磁盘控制器、以太网络控制器等各种外设控制器,也可通过南桥芯片引出若干主板扩展槽,用以接插一些I/O控制卡。
  • CPU与主存之间:通过处理器总线(即前端总线、CPU总线)和存储器总线相连。处理器-存储器总线比较短,通常是高速总线。二者通常是分开的,它们之间可通过北桥芯片连接,CPU芯片连在处理器总线上,内存条连在存储器总线上。
  • I/O设备与主存、CPU之间:通过相应的设备控制器,连接到I/O总线上,而I/O总线通过芯片组与主存和CPU相连
一、处理器总线
  1. 功能:用作处理器与北桥芯片进行信息交换,是主板上最快的总线
  2. 后期:Intel推出Core i7时,北桥芯片的功能(主存控制)被集成到了CPU芯片内,而CPU通过存储器总线和内存条相连。而在CPU芯片内部的核与核之间、CPU芯片与其他CPU芯片之间、CPU芯片与IOH芯片之间,通过QPI(quick path interconnect)总线相连。这种图如下:

请添加图片描述

二、存储器总线
  1. 早期:如上图,早期的存储器总线由北桥芯片控制,处理器通过北桥芯片和主存储器、显卡以及南桥芯片进行互连
  2. 后期:Core i7以后的处理器芯片中集成了主存控制器,因而存储器总线直接连到处理器
三、I/O总线
  1. 功能:用于为系统中的各种I/O设备提供输入/输出通路
  2. 是什么:物理上通常是主板上的一些I/O扩展槽
  3. 后期:将北桥芯片功能集成到CPU芯片后,主板上的芯片组不再是传统的三芯片结构(CPU+北桥+南桥)。根据不同的组合,现在有多种主板芯片组结构,如:
    • 双芯片结构(CPU+PCH):PCH(platform controller hub)芯片包含原来南桥(ICH)的I/O控制器集线器功能,以及北桥中的图形显示控制单元、管理引擎单元、NVRAM控制单元
    • 三芯片结构(CPU+IOH+ICH)
  4. I/O接口:
    • 功能:在各个外设和主机之间的逻辑部件,用于解决它们之间的同步与协调、工作速度的匹配和数据格式的转换等问题。(因为CPU、内存等计算机主机部件采用高速元器件,使得主机和外设之间在技术特性上有很大差异,它们之间采用异步工作方式)
    • 在哪里:外设的I/O接口位于外设和I/O总线之间的部分,又称设备控制器、I/O控制器、I/O控制接口、I/O模块。不同的外设往往对应不同的设备控制器。其独立于外部设备,可集成在主板上或以插卡的形式插接在I/O总线扩展槽上,如下图就是一些外设I/O接口
    • 工作方式:外设的I/O接口根据从CPU接收到的控制命令来对相应外设进行控制。它在主机一侧与I/O总线相连(内部接口),进而和CPU、内存相连,在外设一侧提供相应的连接器插座(外部接口),在插座上连上相应的连接外设的电缆,就可以将外设通过相应的I/O接口连接到主机,下图即集中供暖连接外设的连接器插座。通过I/O接口,可以在CPU、主存和外设之间建立一个高效的信息传输“通路”,这个“通路”即:CPU和内存 ---- I/O总线 ---- I/O接口(带连接器插座的设备控制器)---- 电缆 ---- 外设
      请添加图片描述
    • 具体职能:
      • 数据缓冲:由于主存和CPU寄存器的存取速度非常快,而外设速度较低,所以在I/O接口中引入数据缓冲寄存器,可以实现主机和外设工作速度的匹配
      • 错误或状态检测:在I/O接口中提供状态寄存器,以保存各种状态信息,供CPU查用。
        • 状态检测:如设备是否完成打印或显示,是否已准备好输入数据以供主机来读取
        • 错误检测:如设备电路故障或异常情况,以及数据传输错(通过采用数据校验码来检测)
      • 控制和定时:提供控制和定时逻辑,以接收从I/O总线传来的控制命令(命令字)和定时信号。CPU根据程序中的I/O请求,选择相应的设备进行通信,要求一些内部资源(如主存或寄存器、总线等)参与到I/O过程中,这样I/O接口就必须提供定时和控制功能,以协调内部资源与外设之间动作的先后关系,控制数据通信过程
      • 数据格式转换:提供数据格式转换部件(如进行串-并转换的移位寄存器),使通过外部接口得到的数据转换为内部接口需要的格式,或在相反的方向进行数据格式转换。
    • 看图记I/O接口:
      请添加图片描述
      • I/O接口与内部:通过I/O总线与内存、CPU相连
        • 数据线:
          • 通过数据线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送。
          • 同时I/O接口和设备的状态信息记录在状态寄存器中,通过数据线可将状态信息送到CPU,以供查用。
          • CPU对外设的控制命令也是通过数据线传送的,一般将其送到I/O接口的控制寄存器。状态寄存器和控制寄存器在传送方向上相反,且CPU对它们的访问在时间上错开,因此有的I/O接口中它们合二为一
        • 地址线:用于给出要访问的I/O接口中寄存器的地址,和读写控制信号一起被送到I/O接口的I/O控制逻辑部件中
        • 控制线:通过控制线传送读/写控制信号,还有一些仲裁信号和握手信号等
        • I/O控制逻辑:
          • 通过地址线传送的地址信息,和通过控制线传送来的读/写控制信号一起被送到I/O接口的I/O控制逻辑部件中,其中地址信息用于选择和主机交换数据的寄存器,读/写控制信号也有可能参与地址译码。如利用读/写信号确定是接受寄存器还是发送寄存器。
          • 此外,I/O控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑(带连接器插座)送外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。
          • 另外,还要有收集外设状态到状态寄存器的功能
        • CPU通过地址线指明它要往哪个寄存器里读或写数据,通过控制线发出读还是写的命令,用于指明对这个寄存器是读还是写。此外控制线还会用于给CPU反馈中断请求信号(如I/O设备完成操作,会通过控制线给CPU发送一个中断请求,让它处理后续的操作)。CPU要输入或输出的数据都是通过数据线进行传送,此外数据线也会用于传输状态字和命令字(命令字也称控制字),此外数据线还会用于传输中断类型号(如一个设备工作已完成,需要给CPU发送一个中断,而若设备出现故障,也需要CPU进行不同的中断处理,所以为了让CPU知道当前这个中断请求到底应该怎么处理,需要通过数据线,再结合状态寄存器里的内容给CPU反馈一个具体的中断类型号,让CPU 知道接下来应该怎么处理)
        • 关于指明设备号的问题:有两种方式
          • 有的系统中,地址线除了指明CPU要读或写的寄存器之外,也会用来指明具体的设备编号。但需要分两次传输
          • 有的系统中,每一个外设都有一个与之对应的一组寄存器(数据寄存器+状态/控制寄存器),当CPU要操作不同设备时就往与该设备对应的寄存器组中读写数据即可
    • I/O端口的编址(即I/O接口中寄存器们的编址)
      • 独立编址方式:有独立的I/O地址空间,因此指令系统要有专门的I/O指令来访问I/O端口,并在I/O指令的地址码部分给出I/O端口号
      • 统一编址方式:I/O地址空间与主存地址空间统一编号,根据地址范围区分访问的是I/O端口还是主存单元,因此无需设置专门的I/O指令,只要一般的访存指令就可存取I/O端口,有非常大的灵活性

I/O数据传送控制方式

主要有三种:程序直接控制、中断控制、DMA控制

一、程序直接控制I/O方式

直接通过查询程序来控制主机和外设之间的数据交换,有无条件传送和条件传送两种:

  1. 无条件传送方式(同步)
    • 工作方式:处理器对外设的I/O接口进行周期性的定时访问,直接对I/O端口进行数据存取。即通过程序来定时,以在规定的时间用相应的I/O指令对接口中的寄存器进行信息的输入或输出
    • 评价:对于慢速设备,因为定时访问时间间隔长,所以I/O操作所用的处理器时间占整个处理器时间的比例较少,对处理器效率影响不大;对于快速设备,因为需要频繁I/O访问,所以很多处理器时间被I/O操作占用,因而这种方式不适用于高速设备的I/O
  2. 条件传送方式(异步)(也称为程序查询方式)
    • 工作方式:通过查询程序中安排相应的I/O端口访问指令,由这些指令直接从I/O接口中取得外设和接口的状态(如就绪、忙、完成),根据状态来控制外设和主机的信息交换
    • 评价:设备是否适合采用条件传送方式,主要取决于I/O设备本身的特点以及设备是否能够独立启动I/O等。
      • 对于用户按下键盘、移动鼠标这种,虽然可独立启动I/O设备,但由于设备的启动是由用户随机进行的,所以有可能用户长时间没有输入而引起查询程序长时间等待,从而降低处理器的使用效率;
      • 而对于像磁带、磁盘、光盘存储器等成块传送设备一旦被启动,便可连续不断传送一批数据,处理器无需对每个数据的传送进行启动,且每个数据之间的传输时间很短,若用定时查询方式,则会因为频繁查询而使处理器为I/O操作所花费的时间比例非常大,因此不适合采用程序查询方式
      • 对于针式打印机等字符类设备,每个字符之间的传输时间很长,并且每传送一个字符需要启动一次,因而可以使用程序查询方式
  3. 程序查询I/O方式特点:简单、易控制、外围接口控制逻辑少。但CPU需要从外设接口读取状态,并在外设未就绪时一直处于忙等待。由于外设速度比处理器慢得多,所以在CPU等待外设完成任务的过程中浪费了许多处理器的时间

二、中断控制I/O方式

未完待续…

三、DMA方式

用专门的DMA接口硬件来控制外设与主存间的直接数据交换,数据不通过CPU。
主要用于磁盘等高速设备的数据传送

未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/478457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-数据结构-并查集<二>

一.并查集的简单介绍 二. 并查集的主要构成和实现方式 三.HashMap模板和数组模板 由于在下文的模板基本一致,不再每次都罗列,大体的模板如下,若有错误可以在leetcode找到对应的题目解答,已经附上连接。 HashMap class UnionFi…

本周大新闻|苹果首款MR没有主打卖点;Meta认为AI是AR OS的基础

​本周XR大新闻,AR方面,苹果首款MR或没有主打卖点,反而尽可能支持更多App和服务;扎克伯格表示基于AI的AR眼镜操作系统是下一代计算平台的基础;微软芯片工程VP Jean Boufarhat加入Meta芯片团队;Humane展示了…

[计算机图形学]高级光线传播与复杂外观建模(前瞻预习/复习回顾)

本篇不涉及技术细节* 一、高级光线传播* 1.有偏和无偏估计 无偏估计,比如我们在之前做路径追踪的时候,我们用许多样本去近似定积分的值,无论我们取的样本数量是多少,它的期望永远是对的,也就是我们真实的定积分的值&…

Python入门(一)Python概述与环境搭建

Python概述与环境搭建 1.概述1.1版本及下载1.2 Python 特点 2.环境搭建3.第一个程序“hello,world”4.可能会存在的问题 1.概述 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言…

【WAF】雷池waf升级体验

文章目录 前言一、更新二、功能体验1.仪表板2.自定义规则:3. 通用配置: 更新总结新增优化: 前言 最近雷池有比较大的更新,安装可以参考以前文章雷池waf安装,更新了数据统计也就是仪表板和自定义规则和通用配置还有IP高…

AI行为分析预警系统 opencv

AI行为分析预警系统通过pythonopencv网络模型Ai视觉智能分析技术,AI行为分析预警系统可以对实际场景下如车间、电力场景、化工场景、工业生产场景下的人员作业操作行为规范进行有针对性的定制开发,根据每个项目的不同的识别预警需求。OpenCV可以在不同的…

BEV(0)---Transformer

1 Transformer Transformer是一个Sequence to Sequence model,特别之处在于它大量用到了self-attention,替代了RNN,既考虑了Sequence的全局信息也解决了并行计算的问题。 1.1 self-attention: ①. 输入x1 ~ x4为一个sequence&…

Mysql-SQL优化

SQL优化 插入数据优化1)批量插入数据2)手动控制事务3)主键顺序插入大批量插入数据 主键优化order by优化group by优化limit优化count优化update优化小结 插入数据优化 插入数据优化主要是对于insert进行批量插入时优化,下面我们就…

验证二叉搜索树-递归双指针法

1题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff1a…

初识springboot【手把手教你搭建springboot项目】+springboot日志详解【超详细】

目录 一.springboot的概念 1.什么是springboot? 二.使用springboot进行开发的优势 springboot的设计原则是什么,使用springboot进行开发具有怎样的优势?(M) 三.手把手搭建一个springboot项目 ①创建项目并选择依赖…

枚举二进制数的子集

思想: 如1011的二进制子集有1011,1010,1001,1000,0011,0010,0001,0000 思想是每次对当前最小子元素-1与目标x取与运算。枚举到0为止。 成立原因:因为我们是由大到小&a…

Python使用AI photo2cartoon制作属于你的漫画头像

Python使用AI photo2cartoon制作属于你的漫画头像 1. 效果图2. 原理3. 源码参考 git clone https://github.com/minivision-ai/photo2cartoon.git cd ./photo2cartoon python test.py --photo_path images/photo_test.jpg --save_path images/cartoon_result.png1. 效果图 官方…

计算机组成原理 存储器(下)

Cache和主存之间的映射: Cache的基本结构 Cache存储体以块为单位和主存交换信息,地址变换机制是由CPU送往主存的数据转换为Cacche的地址,主存和Cache的大小相同所以 ,如果能够建立对应关系,则代表命中。 Cache的读写操作 写操作…

链表:常见面试题-根据大小划分区域

将单向链表按某值划分为左边小、中间相等、右边大的形式 1)将链表放入数组里,在数组上做partition(类似快排),这是笔试时推荐的写法 2)分为小、中、大三部分,再把各个部分之间串起来&#xff…

1. 异常概述

目录 1.1 什么是生活的异常 1.2 什么是程序的异常 1.3 异常的抛出机制 1.4 如何对待异常 1.1 什么是生活的异常 男主角小明每天开车上班,正常车程 1 小时。但是,不出意外的话,可能会出现意外。 出现意外,即为异常情况。我们会…

自动化测试和selenium的使用

目录 自动化测试定义 为什么选择selenium来作为我们web自动化测试的工具? 自动化测试定位元素 使用cssSelector定位 使用XPath 定位 操作测试对象 模拟手动从键盘输入 点击对象 获取页面文本 清除对象输入的文本内容 添加等待(三种方式&#…

00 SQL介绍

什么是SQL Structured Query Language:结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。 SQL通用语法 SQL 语句可以单行或多行书写,以分号结尾。 可使用空…

干货 | 如何让Zotero更加强大?这六个插件是您的不二之选!

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ Zotero是由安德鲁w梅隆基金会斯隆基金会以及美国博物馆和图书馆服务协会资助开发,是一个免费易用的文献管理软件,可协助我们收集、管理及引用研究资源,包括期刊、书籍…

系统集成项目管理工程师 笔记(第20章:知识产权管理、第21章:法律法规和标准规范)

文章目录 20.1.2 知识产权的特性 58420.2.1 著作权及邻接权 58520.2.2 专利权 58920.2.3 商标权 59221.3 诉讼时效 59921.6.3 标准分级与标准类型 60321.7.2 信息系统集成项目管理常用的技术标准 6061、基础标准2、开发标准3、文档标准4、管理标准 第20章 知识产权管理 584 20.…

LeetCode刷题系列之----->(指针玩转链表篇)(三)

🍉博客主页:阿博历练记 📖文章专栏:数据结构与算法 🔍代码仓库:阿博编程日记 🌹欢迎关注:欢迎友友们点赞收藏关注哦 文章目录 🖋1.题目描述💡 逻辑分析&#…