《大话存储》第2章—走进计算机IO世界

2.1 IO的通路——总线

  • IO是通过共享一条总线的方式来实现的。总线也就是一条或者多条物理上的导线,每个部件都接到这些导线上,导线上的电位每个时刻都是相等的,这样总线上的所有部件每个时刻都会收到相同的信号。也就是说,这条总线是共享的,同一时刻只能有一个部件在接收或者发送,是半双工的工作模式。
    在这里插入图片描述
  • 所有部件按照另一条总线,仲裁总线或中断总线给出的信号来判断这个时刻总线可以由哪个部件来使用。产生仲裁总线或中断电位的可以是CPU,也可以是总线上的其他设备。
  • 总线密集地印刷在电路板上,由于导线之间非常密集,在高频振荡时会产生很大干扰,通常将这些导线分组印刷到不同电路板上,再压合形成一块板,就是多层印刷电路板/PCB。

1. PCI总线

  • PCI总线是目前台式机与服务器所普遍使用的一种南桥与外设连接的总线技术。
  • PCI总线的地址总线与数据总线是分时复用的。一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在数据传输时,一个PCI设备作为发起者(主控,Initiator或Master),而另一个PCI设备作为目标(从设备,Target或Slave)。总线上的所有时序的产生与控制,都由Master来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构(Arbiter),来决定谁有权利拿到总线的控制权。
  • 当PCI总线进行操作时,Master先置REQ#信号用来请求总线使用权,当得到Arbiter的许可时(GNT#信号),会将FRAME#信号(传输开始或者结束信号)置低,并在地址总线(也就是数据总线,地址总线和数据总线是共享的)上放置Slave地址,同时C/BE#(命令信号)放置命令信号,说明接下来的传输类型。
  • 所有PCI总线上的设备都需对此地址译码,被选中的设备要置DEVSEL#(被选中信号)以声明自己被选中。当IRDY#(Master可以发送数据)与TRDY#(Slave可以发送数据)都置低时,可以传输数据。当Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。

2. PCI总线的中断共享

  • PCI总线可以实现中断共享,即不同的设备使用同一个中断而不发生冲突。
  • 硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低电平;而只有当所有板卡的中断都得到处理后,中断信号才会恢复高电平。
  • 软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。依次类推,就会形成一个中断链。

2.2 计算机内部通信

  • 网络是什么,用一句话来说就是将要通信的所有节点连接起来,然后找到目标,找到后就发送数据。
  • IO总线其实不是一条总线,它分成数据总线、地址总线和控制总线。寻址用地址总线,发数据用数据总线,发中断信号用控制总线。而且IO总线是并行而不是串行的,有32位或者64位总线。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值