硬件外设接口总线IO
- 格式:doc
- 大小:273.50 KB
- 文档页数:5
总线入口的概念总线入口,简称BI(Bus Interface),是指计算机系统中连接外部设备和中央处理器(CPU)的一个接口。
它允许CPU与外设进行数据传输和通信,是计算机系统中非常重要的一个组成部分。
总线入口有很多种不同的形式和类型,包括内存总线、IO总线、扩展总线等。
不同的总线入口有着不同的功能和特点,用于连接不同类型的设备。
内存总线入口(Memory Bus Interface)是连接CPU和主存储器模块的通道。
它用于在CPU和内存之间传输指令和数据,是计算机系统中最重要的总线入口之一。
内存总线入口的带宽和速度会影响整个系统的性能。
IO总线入口(I/O Bus Interface)是连接CPU和输入/输出设备的通道。
它用于在CPU和外部设备之间传输数据和命令,例如硬盘、光驱、键盘、鼠标等。
IO总线入口通常比内存总线入口的速度和带宽要低,因为外设传输的数据量较小。
扩展总线入口(Expansion Bus Interface)是连接CPU和扩展插槽的通道。
它用于连接插入到计算机主板上的扩展卡,例如显卡、网卡、声卡等。
扩展总线入口允许这些插件设备与CPU进行数据和命令传输,扩展了计算机的功能和性能。
总线入口的作用主要有三个方面:1. 数据传输:总线入口用于在CPU和外部设备之间传输数据。
例如,当用户在键盘上输入字符时,键盘将通过IO总线入口将数据传输到CPU,CPU再将数据传输给显示器进行显示。
总线入口的带宽和速度直接影响数据传输的效率和速度。
2. 控制命令传输:总线入口还用于在CPU和外设之间传输控制命令。
例如,当用户点击鼠标按钮时,鼠标会通过IO总线入口向CPU发送相应的命令,CPU 根据命令执行相应的操作。
总线入口的稳定性和可靠性对于保证命令传输顺利进行非常重要。
3. 中断处理:总线入口还用于处理外设的中断请求。
当外设需要CPU的处理时,它会通过总线入口发送中断请求信号给CPU,触发CPU的中断处理程序。
计算机组成原理——IO接⼝以及IO设备数据传送控制⽅式接⼝可以看作是两个部件之间交接的部分。
硬件与硬件之间有接⼝,硬件与软件之间有接⼝,软件与软件之间也有接⼝。
这⾥我们所说的I/O接⼝,⼀边连接着主机,⼀边连接着外设。
I/O接⼝的功能I/O接⼝的基本结构CPU和外设之间通常传递的信息:数据、状态、控制。
组成:寄存器组、控制逻辑电路、主机与接⼝和接⼝与I/O设备之间的信号联接线、数据地址线、控制状态信号线。
其实中间红框内的部分就是对应到电路板上的插⼝,⼜分为内部接⼝和外部接⼝两种。
内部接⼝:与系统总线相连,实质上是与内存、CPU相连。
数据的传输⽅式也只能是并⾏传输。
外部接⼝:通过接⼝电缆与外设相连,外部接⼝的数据传输可能是串⾏⽅式,因此I/O接⼝需具有串并转换功能。
接⼝与端⼝接⼝就是I/O接⼝,端⼝实质接⼝电路中可以被CPU访问的寄存器。
I/O端⼝及其编址为了便于CPU对I/O设备进⾏寻址和选择,必须给众多的I/O设备进⾏编址,也就是说给每⼀台设备规定⼀些地址码,称之为设备号或端⼝地址。
统⼀编址:与存储器共⽤地址,⽤访存指令访问I/O设备。
独⽴编址:单独使⽤⼀套地址,有专门的I/O指令。
接⼝类型I/O设备数据传送控制⽅式1.程序直接控制传送⽅式⼜叫查询⽅式。
是完全通过程序来控制主机和外围设备之间的信息传送。
通常的办法是在⽤户的程序中安排⼀段由输⼊输出指令和其他指令所组成的程序段直接控制外围设备的⼯作。
也就是说CPU要不断地查询外围设备的⼯作状态,⼀旦外围设备“准备好”或“不忙”,即可进⾏数据的传送。
该⽅法是主机与外设之间进⾏数据交换的最简单、最基本的控制⽅法。
⽆条件传送:只有在外设总处于准备好状态程序查询⽅式优点:较好协调主机与外设之间的时间差异,所⽤硬件少。
缺点:主机与外设只能串⾏⼯作,主机⼀个时间段只能与⼀个外设进⾏通讯,CPU效率低。
程序查询⽅式接⼝结构:⼀次只能查询⼀个字的原因?在这种传送⽅式下,外部数据是要存到CPU寄存器中的,故需要⼀个字。
计算机io太慢的原因计算机IO(Input/Output)的速度慢是指计算机在读取或写入数据时,所需的时间较长,导致整体性能下降。
而造成计算机IO速度慢的原因有多种,下面将从硬件和软件两个方面进行分析。
一、硬件方面的原因:1. 存储设备速度慢:计算机的硬盘或固态硬盘(SSD)读写速度较慢,成为IO速度瓶颈。
特别是在大量数据读写的情况下,存储设备速度会成为影响IO性能的主要因素。
2. 总线带宽瓶颈:计算机内部的总线连接各个硬件设备,如果总线带宽较小,会限制数据的传输速度。
特别是在同时进行多个IO操作时,总线带宽瓶颈将导致IO速度下降。
3. 外设接口速度限制:如USB、SATA等接口的速度较慢,会影响计算机与外部设备的数据传输速度。
如果外设接口速度不能满足需求,会导致计算机IO速度变慢。
二、软件方面的原因:1. 磁盘碎片:磁盘碎片是指文件在物理磁盘上不连续存储,而是分散在不同的磁道中,这会导致读写数据时需要进行多次寻道操作,降低了IO速度。
2. 操作系统调度算法:操作系统负责管理计算机的资源分配和调度,不合理的调度算法可能导致IO操作的效率低下。
例如,如果操作系统优先级设置不合理,会导致IO操作被其他任务阻塞,从而降低IO速度。
3. 程序设计不合理:程序设计中,如果没有充分考虑IO操作的效率,可能导致频繁的IO操作,从而降低整体的IO速度。
例如,过多的磁盘读写操作、大量的文件操作等都会对IO性能产生负面影响。
三、解决计算机IO速度慢的方法:1. 硬件升级:可以通过更换高速硬盘(如固态硬盘)、增加内存、升级总线等方式来提升计算机的IO性能。
这些硬件升级可以有效减少IO速度慢的问题。
2. 磁盘优化:通过定期进行磁盘整理和优化,可以解决磁盘碎片问题,提高磁盘的读写速度。
可以使用操作系统自带的磁盘工具或第三方磁盘优化软件来进行磁盘优化。
3. 操作系统优化:合理配置操作系统的参数和优化系统调度算法,可以提高IO操作的效率。
SPI、I2C、I2S、UART、GPIO、SDIO、CAN的介绍,各自的特点是什么?SPI:SPI(Serial Peripheral Interface)是MOTOROLA公司提出的同步串行总线方式。
高速同步串行口。
3~4线接口,收发独立、可同步进行.因其硬件功能强大而被广泛应用。
在单片机组成的智能仪器和测控系统中。
如果对速度要求不高,采用SPI总线模式是个不错的选择。
它可以节省I/O端口,提高外设的数目和系统的性能。
标准SPI总线由四根线组成:串行时钟线(SCK)、主机输入/从机输出线(MISO)。
主机输出/从机输入线(MOSI)和片选信号(CS)。
有的SPI接口芯片带有中断信号线或没有MOSI。
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C:(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。
I2C是OD输出的,大部分I2C 都是2线的(时钟和数据),一般用来传输控制信号。
I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。
总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。
高速串行接口的编码技术串行互连接口的速率在过去几年里得到了显著提高,每线的速率从2.5Gbit/s提高到10Gbit/s,而每个接口可以容纳1到32线。
8B10B作为互连接口的一种编码技术,设计简单、性能出众,因此成为应用最广泛的技术。
然而,它的系统开销高达25%,问题突出。
为了解决这个问题,设计者们一直在探寻改进的方法。
本文就将介绍一些低开销的编码技术,并讨论它们的优势与存在的问题。
编码技术基础理论目前,高速接口正在被广泛应用于包括SATA、SAS、高速PCI等多种标准中。
这些接口的速率甚至可以达到并超过每线10Gbits/s。
同时,所有主流ASIC和FPGA平台也都支持这些高速接口技术。
从结构上看,这些高速接口主要包括三个组成部分:电路部分(串行/解串行)物理部分(实现编码)链路与协议部分(高层)支持多速率、多协议的串行/解串行器已经实现。
以OIF(光互联论坛)为例,他们已经为两组速率制定了电路规范,分别为5Gbits/s- 6.375Gbits/s和10Gbits/s-11Gbits/s。
OIF同样为两种应用距离制定了规范,分别为短距离(采用一个连接器,8英寸)和长距离(采用两个连接器,40英寸)。
串行/解串行器还可以被设计用来满足更多的规范,包括不同的速率、距离、电路规格等等。
物理部分的主要任务是对数据进行编码,以保证串行/解串行器的正常运行。
这些编码的目的包括:确保必须的变换(“1”到“0”和“0”到“1”的变换),保证稳定的直流均衡(“0”码与“1”码的个数相当),以及满足其它标准的要求(最大化信道带宽利用率,提高对误差的容忍能力等等)。
以Manchester编码为例,这种编码技术被广泛应用于10Mbit/s以太网连接中。
它的编码方式非常简单,就是将“1”编码为“01”,将“0”编码为“10”。
从编码原理我们可以推断出:最大相同连续字符数为2(正常情况下连续出现两个以上连续“0”或“1”是不可能的)。
保证稳定的直流均衡(“0”的个数与“1”的个数总是相同的)。
具备1bit误码纠错能力(“00”或者“11”是无效码)。
高达100%的系统开销。
扰码技术是串行链路常用的另一种编码技术。
这种技术将伪随机序列与原始码流混合,以实现转换、直流均衡等目的。
伪随机发生器由线性反馈移位寄存器产生的最长序列(m序列)构成1。
此序列的周期为2n,其中n为线性反馈移位寄存器特征多项式的最高阶。
例如SONET/SDH的特征多项式为x7+x6+1,它的序列长度为27-1,即127。
扰码器包括两种类型,分别为边扰码器与自同步扰码器。
通常,边扰码器的寄存器状态与发送数据异或构成它的下一个状态,这需要在输入与输出之间“重置/同步”扰码器状态。
自同步扰码器直接将输入数据作为扰码器状态,不需要重置和同步过程。
8B10B编码技术8B10B是应用最广泛的编码技术。
它被用于串行连接SCSI、串行A TA、光纤链路、吉比特以太网、XAUI(10吉比特接口)、PCI Express总线、InfiniBand、Seria RapidIO、HyperTransport 总线以及IEEE1394b接口(火线)技术中。
8B10B2将8bit代码组合编码成10bit代码,代码组合包括256个数据字符编码和12个控制字符编码(如表1所示)。
通过仔细选择编码方法可以获得不同的优化特性。
这些特性包括满足串行/解串行器功能必须的变换;确保“0”码元与“1”码元个数的一致,又称为直流均衡;确保字节同步易于实现(在一个比特流中找到字节的起始位);以及对误码率有足够的容忍能力和降低设计复杂度。
8B10B中所有的编码都具备3到10种变换。
每个码字确保:在一行中不会产生超过四个连“1”或连“0”;“1”与“0”的不平衡度(不平衡度指“0”的个数减去“1”的个数)不会超过2个码字(5个“1”/5个“0”,4个“1”/6个“0”或4个“0”/6个“1”)。
8B10B采用一种简单的方法保证了编码的直流平衡。
在不平衡时,采用两个10bit字符表示一个8bit字符,其中一个称为RD-,表示“1”的个数比“0”多2个,另一个称为RD+,表示“1”的个数比“0”少2个。
选取合适的RD字符可以保证不平衡度不大于1。
同时,采用只有在控制字符(K28.5,K28.1,K28.7)中才有的特殊字符可以保证同步定位的准确。
8B10B借助总共268个字符及它们的反转码,还可以检测任何可能破坏不平衡的误码。
但是,即使接收机接收到了正确的码字,有时它们也有可能因为不平衡性而导致误码,这种现象被称为误码复制。
8B10B编码技术将8bit数据分成3bit和5bit两组,因此可以看作是3B4B 和5B6B编码技术的组合。
改进传统8B10B编码技术的一种方法是,在编码之前增加扰码过程。
有证据证明,特殊的模式3或差分群时延可能会导致重复模式产生不可预测的误码。
解决这个问题最直接的办法就是在编码之前对数据进行扰码。
以上这些特点保证了8B10B编码成为使用最广泛的编码技术。
它最主要的缺点只有一个,就是高达25%的系统开销。
低开销编码最近,人们提出了几种降低8B10B编码技术系统开销的改进方法。
这些改进主要基于以下两个基础:一是随着链路速率与数量的增加,25%系统开销的问题显得越来越突出;二是集成技术的进步,使得硬件复杂度不再像过去那样重要。
在这些低开销的改进技术中,有四个非常相似的技术脱颖而出,受到人们的广泛关注:64B66B编码技术,应用于10G以太网4;OIF CEIP5;10GBase-KR6,应用于10GbE背板连接;Interlaken7。
这些技术的共同点是,都以提高硬件设计复杂度(门数目)为代价,换取了较低的系统开销。
64B66B编码技术。
这种技术应用于10G以太网(10GBase-R),是一种编码与扰码相结合的技术。
首先,数据被分成8个字节一组(总共64比特)。
然后,这些字节采用自同步扰码实现随机化,其特征多项式为x58+x39+1。
最后,如果这些8字节组是数据字符,那么会加上“01”标识;如果有一个或多个字节是控制字符,那么就会加上“10”标识。
表1. 主要标准中的控制码字使用在此编码技术中,将8个字节的字符(由8B10B编码定义,可能是数据或控制字符)编码为64比特长字符的过程通常被称为转换代码。
GFP-T8为组合8B10B的8比特为64比特字符提供了标准方法。
而10GbE为10G以太网和10Gbit/s光纤链路提供了相关子集的映射表。
用于同步定位的“01”和“10”比特不参与扰码过程。
这是因为其它比特在扰码后可能取任何值,只有同步比特“01”和“10”在经历长途传输后基本保持不变。
同步比特还可以保证每隔66比特至少会发生一次转换。
CEI-P编码技术。
这种技术由OIF定义。
它的系统开销与64B66B编码相等,大约为3%。
当然,它还有很多不同之处。
CEI-P采用边扰码,特征多项式为x17+x14+1。
这样做的优点是可以有效防止误码复制的产生(扰码的状态不会受之前产生的误码影响),缺点是需要在发送与接收之间同步扰码状态。
当边扰码与线路误码无关时,如果发送数据与扰码值相同(或恰好相反),那么扰码器会输出非常长的“1”或“0”序列。
而这种非常长的扰码输出序列比短的序列对误码的容忍能力更强。
CEI-P编码采用帧同步取代定位同步。
64B66B采用同步比特实现定位,而CEI-P将24个64比特码字看作一帧,这样用1个比特就可以实现数据或控制字符的判定。
附加的24比特用于误码校验与信令。
其中误码校验使用20比特,采用fire-code技术,可以纠正长达7比特的突发误码串。
10GBase-KR编码技术。
这种技术的系统开销与CEI-P一致,都是3%,主要的不同在于帧的长度是32个码字,而不是24个码字。
这样一来纠错码长度就是32比特,可以纠正比CEI-P 更长的突发误码串。
而它采用的扰码规则与10GbE相似。
只不过它的扰码多项式与10GBase-R 一致,寄存器采用的初始序列为“010101……”,而且每一帧重置一次。
Interlaken PHY编码技术。
Interlaken编码技术的系统开销为4.5%(64/67)。
它的码字基于64比特。
与其它低开销编码技术相比,Interlaken的主要不同之处在于:同步信号为3个比特,其中两个比特用于区分数据与控制,一个比特用于标识数据是否转化。
数据转化比特的目的与8B10B类似,都是为了保证直流平衡;Interlaken采用与10GbE相同的边扰码特征多项式实现扰码。
这样可以避免因采用自同步扰码器所导致的误码复制问题。
一个同步码字用于传递扰码器状态,而且它非常长的扰码长度保证不会出现很长的连“0”或者连“1”;表2. 编码技术的对比整个链路采用CRC32循环冗余校验方式保证误码校验。
表2对比了以上讨论的几种编码技术的异同,主要包括以下几点:实际采用情况;系统开销;转换密度与直流平衡;同步定位;误码(保护、校验、复制);硬件复杂度(门数目)。
虽然8B10B编码行之有效,而且被广泛采用,但是它高达25%系统开销的缺点在未来数百吉比特链路与系统应用中显得越来越突出。
现在已经有若干种低开销的编码技术,它们具备不同的优势与缺点。
但是到目前为止,还没有哪种低开销技术能够脱颖而出,成为继8B10B 之后被广泛采用的首选技术。
不过,本文所提到的几种技术都以提高硬件复杂度为代价,以满足低开销的要求。