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

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

系统总线

一、组成:通常由一组控制线、一组数据线和一组地址线构成。也有些总线没有单独的地址线,即数据线和地址线复用
  1. 数据线:用来承载在源部件和目的部件之间传输的数据信息(指令或操作数),可能是CPU和主存之间交换的数据或从主存取出的指令,也可能是CPU向I/O模块发出的控制命令或从I/O模块收集到的状态信息。数据线和地址线复用的话,数据线上也可以传送地址信息。位数(根数)与机器字长、存储字长有关
  2. 地址线:用来给出源数据或目的数据所在的主存单元或I/O端口的地址。地址线是单向的,总是由CPU将地址信息送到地址线,然后传送给CPU要访问的主存储器或I/O模块。位数(根数)与贮存地址空间大小及设备数量有关。
  3. 控制线:用来控制对数据线和地址线的访问和使用。用来传输定时信号和命令信息。除地址线和数据线以外的通信线都称为控制线,如用于传送时钟、复位、总线操作控制、总线请求和总线回答等信号的传输线
二、同步和异步问题(总线定时方式)
同步:
  1. 同步定时方式:指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系
  2. 同步总线:传统的总线大多是同步总线,采用公共的时钟信号进行定时。挂接在总线上的所有设备都从时钟线上获得定时信号。
    • 工作方式:若处理器通过总线访问存储器,可规定协议如下:主控设备(即处理器)在第一个时钟周期发送地址和存储器读命令,从设备(即存储器)总是在第五个时钟周期将数据放到总线上作为响应,处理器也是在第五个时钟周期从数据线上取数据
    • 优点:传送速度快,具有较高的传输速率,总线控制逻辑简单
    • 缺点:
      • 总线定时以最慢设备所用时间为标准,因此同步总线适合存取时间相差不大的多个功能部件之间的通信
      • 同步总线不能过长,否则会降低总线传输效率。同步总线通常采用并行传输方式,因此使用更快传送速度、更长传输线的总线时,会导致传送到另一端的波形变形
      • 主从设备属于强制性同步
      • 不能及时进行数据通信的有效性检验,可靠性较差
  3. 总线周期:若干个时钟产生相等的时间间隔,每个时间间隔构成一个总线周期。在一个总线周期中,发送方和接收方可进行一次数据传送。
异步:
  1. 异步定时方式:没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制
  2. 异步总线:现在大多采用异步串行总线。
    • 工作方式:主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号
    • 根据“请求”和“回答”信号的撤销是否互锁,分为三种类型:
      • 不互锁方式(速度最快、可靠性最差):主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是自己经过一段时间后便撤销“请求”信号;从设备接到“请求”信号后,发出“回答”信号,并经过一段时间自动撤销“回答”信号
      • 半互锁方式:主设备发出“请求”信号后,必须接到从设备的“回答”信号,才能撤销“请求”信号;从设备接到“请求”信号后,发出“回答”信号,并经过一段时间自动撤销“回答”信号
      • 全互锁方式(速度最慢、最可靠):主设备发出“请求”信号后,必须接到从设备的“回答”信号,才能撤销“请求”信号;从设备接到“请求”信号后,发出“回答”信号,且必须获知主设备“请求”信号已撤销后,才能撤销“回答”信号
    • 优点:
      • 总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合
      • 因为串行,每次在一根信号线上传送数据位,因此传输速率可以比并行总线高得多
    • 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢
半同步

半同步通信是指在统一时钟的基础上,增加一个“等待”相应信号 W A I T ‾ \overline{WAIT} WAIT

  1. 工作方式:主设备在第一个时钟发出地址信号,在第二个时钟的上升沿发出读命令,在同步定时方式中,第二个时钟后,从设备需要准备好数据,但有的从设备可能跟不上节奏,所以这时它会通过控制线路给总线的控制器进行反馈,让总线控制器等自己几个节拍。所以后面的 T W T_W TW​两个节拍其实就是总线控制器在等待从设备准备数据。经过两个等待节拍后,从设备准备好数据,并在 T 3 T_3 T3​节拍把准备好的数据通过数据总线发送给主设备。最后在 T 4 T_4 T4​节拍,主设备撤销读命令以及地址信息。这样就完成了半同步的总线传输工作
  2. 评价:同步定时方式,每个总线传输周期都是定长的,都是固定为四个总线的时钟周期;
    而半同步的通信方式结合了异步通信方式的一个优点,即增加了一个等待的反馈信号,这样,总线控制器就可以根据这个反馈信号来动态调节传输周期里面应该包含的时钟周期数。而之所以称为半同步通信方式,是因为它也有一个统一的时钟节拍,但是由于可以动态的调整每一个传输周期内包含的时钟节拍数,因此它也能够支持速度差异比较大的主设备和从设备之间进行数据的交互,是同步和异步思想的结合
分离式通信
  1. 上述三种的共同点是一个总线传输周期有这三个阶段:

    • 主模块发地址和命令(使用总线)
    • 从模块准备数据(总线空闲,但主从设备依然占着总线的控制权)
    • 从模块向主模块发数据(使用总线)
  2. 分离式通信:
    • 思想:把总线周期切分为两个独立的子周期,充分利用从设备准备数据的这段时间,在这段时间把总线的使用权分配给其他的设备来使用,让总线的数据传输效率更高

      • 子周期1:主模块申请占用主线,使用完后放弃总线的使用权
      • 子周期2:从设备(接收到主设备请求,并准备好数据后)申请占用总线,将各种信息送至总线
    • 特点:
      • 各模块均有权申请占用总线
      • 采用同步方式通信,不等对方回答(即主设备在规定的节拍内发出请求信号,不需要等待从设备的回应)
      • 各模块准备数据时,不占用总线
      • 总线利用率提高
三、总线的性能
  1. 总线宽度:每次能同时传输的信息位数,也即数据线的条数
  2. 总线带宽:即总线在数据传输时单位时间内最多可传输的数据量,也即总线的最大数据传输率。通常用每秒传送信息的字节数来衡量,单位可用字节/秒表示(B/s)。 总线带宽 = 总线工作频率 × ( 总线宽度 8 ) 总线带宽=总线工作频率\times\left(\dfrac{总线宽度}{8}\right) 总线带宽=总线工作频率×(8总线宽度​)
  3. 总线工作频率:总线上各种操作的频率,为总线周期的倒数。即一秒内传送几次数据。若总线周期=N个时钟周期,则总线的工作频率= 时钟频率 N \dfrac{时钟频率}{N} N时钟频率​
  4. 总线传输周期:指一次总线操作所需的时间,包括申请阶段、寻址阶段、传输阶段和结束阶段。总线传输周期通常由若干总线时钟周期构成
  5. 总线时钟周期:即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制
  6. 总线时钟频率:即机器的时钟频率,它为时钟周期的倒数
  7. 总线寻址能力:即由地址线位数所确定的可寻址地址空间的大小
  8. 总线定时方式:
    • 同步:通信总线由时钟信号同步
    • 异步:前一个信号的结束就是下一个信号的开始,信息的改变是顺序的
    • 半同步:前两者的结合
  9. 总线传送方式:
    • 非突发方式:每个传送周期内都是先传送地址,再传送数据
    • 突发方式:开始先给出数据块在存储器中的首地址,然后可连续传送数据块中的后续数据,无需在地址线上传送后续数据的地址信息。
  10. 总线负载能力:指总线上所能挂接的遵循总线电气规范的总线设备的数目。
  • 总线的最主要性能指标为总线宽度、总线(工作)频率、总线带宽,总线带宽是指总线本身所能达到的最高传输速率,是衡量总线性能的重要指标。总线带宽=总线宽度 × \times ×总线频率

基于总线的互连结构

早期传统的基于总线互连的计算机结构示意图如下:

图解:

  • 北桥芯片和南桥芯片:是两块超大规模集成电路芯片,它们组成一个“芯片组”,是计算机中各个组成部分相互连接和通信的枢纽。主板上所有的存储器控制功能和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控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑(带连接器插座)送外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。
          • 另外,还要有收集外设状态到状态寄存器的功能
        • 控制器与设备的接口:完成I/O接口与设备的通信。有三个部分:数据(传送输入/输出数据)、状态(设备要反馈状态)、控制(I/O控制器向设备发出控制信息,即通过CPU发送的命令和参数经过I/O控制逻辑译码后翻译成的控制设备的电路信号)
        • 过程:CPU通过地址线指明它要往哪个寄存器里读或写数据,通过控制线发出读还是写的命令,用于指明对这个寄存器是读还是写。此外控制线还会用于给CPU反馈中断请求信号(如I/O设备完成操作,会通过控制线给CPU发送一个中断请求,让它处理后续的操作)。CPU要输入或输出的数据都是通过数据线进行传送,此外数据线也会用于传输状态字和命令字(命令字也称控制字),此外数据线还会用于传输中断类型号(如一个设备工作已完成,需要给CPU发送一个中断,而若设备出现故障,也需要CPU进行不同的中断处理,所以为了让CPU知道当前这个中断请求到底应该怎么处理,需要通过数据线,再结合状态寄存器里的内容给CPU反馈一个具体的中断类型号,让CPU 知道接下来应该怎么处理)
        • 操作系统中讲的过程(和上述略有不同,待考证):CPU通过控制线像I/O控制器(的I/O逻辑中)发出一个具体的I/O指令,同时CPU在地址线说明要操纵的是哪个设备。若此时是输出一个数据的话,CPU会通过数据线将要输出的数据放到数据寄存器中。之后,I/O逻辑就从数据寄存器中取得CPU要输出的数据。而CPU此时发出的I/O指令可能会有一些相关的参数,这些参数会通过数据线被放到控制寄存器中,I/O逻辑从控制寄存器中读出相应的参数。此外,为了实现对各个设备的管理,I/O逻辑会往状态寄存器中写入相应的数据来告诉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端口,有非常大的灵活性

I/O数据传送控制方式

主要有4种:程序直接控制方式、中断驱动方式、DMA方式、通道控制方式

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

直接通过查询程序来控制主机和外设之间的数据交换,数据从设备->CPU->内存

  1. 过程:

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

二、中断驱动方式

  1. 过程:在CPU发出读/写命令后,将等待I/O的进程阻塞,切换到别的进程执行。当I/O完成后,控制器向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存,接着,CPU恢复等待I/O的进程(或其他进程)的运行环境,然后继续执行。
  2. 评价:
    • CPU只在每次I/O操作开始前和完成后介入,等待I/O完成的过程中CPU可切换到别的进程执行,因此提高效率,CPU和I/O设备可并行工作
    • 中断处理过程需要保存、恢复进程的运行环境,这个过程也需要一定的时间开销,若中断发生频率太高也会降低系统性能。而中断驱动方式每次只传送一个字的数据,且I/O设备和内存间的传输都要经过CPU

三、DMA方式

  1. 过程:首先CPU给(DMA控制器中的)I/O模块(I/O控制逻辑)发送读/写一个或多个块的指令(需要说明此次要读入或写出的到底有多少数据、这些数据要存放在内存的什么位置、数据在外部设备上又存放在什么位置),然后CPU转头去做其他事情。接下来DMA控制器会根据CPU发出的命令和参数,完成CPU指定的一系列读写工作。当CPU指定的这些块读完后,又会由DMA控制器向CPU发送一个中断信号,然后CPU介入处理这个中断(DMA在从设备将数据读入内存时,也是一个字一个字读入的,每次读入的一个字也是闲存放在DR,再从DR写到内存中)

    宏观图示:
  2. DMA控制器的组成:(和I/O控制器类似)
    • 主机-控制器接口

      • DR(数据寄存器):暂存从设备到内存或从内存到设备的数据
      • MAR(内存地址寄存器):在输入时,MAR表示数据应放到内存中的什么位置;输出时MAR表示要输出的数据在内存的什么位置
      • DC(数据计数器):表示剩余要读/写的字节数
      • CR(命令/状态寄存器):用于存放CPU发来的I/O命令,或设备的状态信息
    • I/O控制逻辑
    • 块设备-控制器接口
  3. 评价: 相比于中断驱动方式,又有如下改进
    • 数据的传送单位是每次读/写一个或多个块,不再是一个字、一个字的传送(每次读写的只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)
    • 数据的流向是从设备直接放入内存,或从内存直接到设备,不再需要CPU作为“快递小哥”
    • CPU对I/O操作的介入频率进一步降低:只在传送一个或多个数据块的开始和结束时,才需要CPU介入
    • 若读取离散的数据块,或读取的数据块要离散地存放在不同的内存区域中时,就需要发出多条I/O指令(这是DMA方式还可以进一步改进的特点)

四、通道控制方式

  1. 什么是通道:
    通道是一种硬件,可以理解成“弱鸡版的CPU”,通道可以识别并执行一系列通道指令。但是它可以执行的指令很单一,所以是弱鸡版。通道程序是放在内存中的,也就是通道和CPU共享内存。
    一个通道可以控制多个I/O控制器,而一个I/O控制器可以控制多个I/O设备。
    宏观图:
  2. 过程:
    • CPU向通道发出I/O指令,指明通道程序(可理解为任务清单,本质上是一系列通道指令的集合)在内存中的位置,并指明要操作的是哪个I/O设备。然后CPU转头执行其他进程
    • 通道根据CPU的指示,执行内存中的通道程序(其中指明了要读入/写入多少数据、读/写的数据放在内存的什么位置等信息)
    • 通道执行完规定任务后,向CPU发出中断信号,之后CPU对中断信号进行处理
  3. 评价:
    • 这种方式下CPU对I/O操作的频率极低,可以一下子扔给通道一堆事情做。通道只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预。 DMA是一次读写一个数据块或多个连续的数据块;而通道控制方式是可以每次读写一组数据块
    • 通道控制方式也是让数据直接从I/O设备读入内存,或直接将内存中的数据输出到I/O设备当中
    • 实现复杂,需要专门的通道硬件支持
    • CPU、通道、I/O设备可以并行工作,资源利用率很高

I/O控制器、DMA控制器、通道关系

I/O控制器和DMA控制器相当于同一种东西,只不过是为了不同种类的设备而设计的。I/O控制器是给低速设备如键盘使用的,DMA控制器是给高速设备(且一次要读写的数据较多)如磁盘使用的。二者不能共存。
而通道另一种机制,相当于多加了一个小CPU,是在I/O控制器的级别之上的,是用来向I/O控制器发送命令,进行控制的。

总线、I/O总线、I/O接口相关推荐

  1. Cortex-M3 I-Code,D-Code,系统总线及其他总线接口

    Cortex-M3 的总线接口 下图是Cortex-M3的连接方式样板图,大家可以根据需求自行更改, CM3 处理器的总线接口是基于 AHB-Lite 和 APB 协议.下图中总线复用器的作用是,让指 ...

  2. 片上总线Wishbone 学习(四)接口信号定义

    片上总线Wishbone 学习(四)接口信号定义 所有的Wishbone接口信号都是高电平有效,设计成高电平有效的主要原因是由于低电平有效信号的书写问题,不同的设计者表达低电平有效信号的方式不同,拿最 ...

  3. 工业通讯领域的总线、协议、规范、接口、数据采集与控制系统

    一.工控安全 工控,指的是工业控制自动化,主要利用电气.机械.软件组合的方式实现, 即是工业控制系统,或者是工厂自动化控制.工控安全指的是工业控制系统的数据.网络和系统安全. 随着工业信息化的迅猛发展 ...

  4. 总线与接口(内部总线、系统总线、外部总线)

    这种分类方式是根据离芯片远近等级分类的. 1.1 内部总线 内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连. 1.1.1 I2C总线 I2C(Inter-IC)总线10多年前由Ph ...

  5. AXI总线详解-总线和接口以及协议

      总线.接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别.   总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线.地址线.控制线等构成.接口是一种连接标准,又 ...

  6. AHCI协议、NVME协议、SATA总线、PCIe总线、SATA接口、PCIe接口、M.2接口

    内容来自 硬件茶谈 硬盘的SATA M.2 NGFF NVME是什么意思,详解硬盘的总线协议与接口 侵删. 一.协议 AHCI和NVME协议民用很多,而SCSI协议大多用在服务器上. 二.总线   总 ...

  7. pcie总线与cpci总线_基于通用PCI接口功能芯片和热插拔控制器实现CPCI总线控制的设计...

    CPCI总线简介 CPCI总线是一个开放式.国际性技术标准,由PCI总线工业计算机制造商组织PICMG(PCI Industrial Computer Manufacturer Group)负责制定和 ...

  8. 【计算机原理与接口技术(UNIX)⑬】——总线概述【总线与总线标准、总线结构、ISA、PCI、IDE】

    ✅ 通过对 [计算机与UNIX汇编原理 ① ~ ⑫]的学习,我们已经大致掌握了汇编程序设计的相关知识 接下来,我将其分栏名改为 [计算机原理与接口技术(UNIX) ],重点将放在 "计算机原 ...

  9. CAN总线基础(二)——CAN总线物理层介绍(物理介质及接口介绍)

    学习CAN总线物理层除了总线电压这一部分需要深刻理解之外,剩下的无非都是一些物理介质以及接口的规定.针对CAN总线的拓扑结构图: 我们对CAN总线的介质以及接口做一些说明讲解: CAN总线的终端电阻需 ...

  10. I2S音频总线学习(四)I2S接口设计

    I2S音频总线学习(四)I2S接口设计 一.数据发送端的设计 图1 发送端 随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器装入DATA LEFT或DATA RIGHT,从而输出数据被激 ...

最新文章

  1. C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
  2. 二叉树:root==NULL和*root==NULL的区别
  3. 天云数据CEO雷涛:从软件到数件,AI生态如何建立自己的“Android”?| 量子位·视点分享回顾...
  4. 第一篇 献给一次线上100%CPU
  5. 《101 Windows Phone 7 Apps》读书笔记-Silly Eye
  6. Hadoop_23_MapReduce倒排索引实现
  7. Serverless 如何落地?揭秘阿里核心业务大规模落地实现
  8. 美国国防部选择VMware View用于全球作战系统
  9. Python 代码混淆和加密技术
  10. 离线java人脸识别开源算法_Java 离线人脸识别 基于ArcFace 2.0 Demo
  11. MATLAB图像处理与数字信号处理资料分享来袭
  12. 遮掩java_css之图片下方定位遮掩层
  13. animation 先执行一次 在持续执行_这一次,彻底弄懂 JavaScript 执行机制
  14. 数据库操作php,一个数据库操作PHP类
  15. 【数据库】用户sa登录失败,错误:18456
  16. 一小时快速建立数据分析平台
  17. odoo使用word中的MERGEFIELD合并域和python包mailmerge来生成word文档
  18. jquery循环获取div之间的内容
  19. 【机器学习】多项式回归案例五:正则惩罚解决过拟合(Ridge回归和Lasso回归)
  20. python平方数_计算范围内的平方数(python)

热门文章

  1. ps和php哪个难学,ps自学难吗
  2. Python Replace函数升级版
  3. 给TextView 加上圆角和边框
  4. 企业级项目|用Python进行web开发企业统一用户认证和权限控制平台
  5. Java开发前的准备(一):JDK的安装与配置
  6. 广州市天河区2021-2022学年九年级第一学期期末考试英语试题
  7. tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
  8. 针对苹果最新审核要求为应用兼容IPv6
  9. 从零开始自制实现WebServer(六)---- 跌跌撞撞奔向HTTP状态机 学习途中拾慧纠正过往细节偏差
  10. BootStrap2学习日记20---定制缩略图