[中级奋斗] 不懂‘南桥’就不懂计算机硬件 —‘南桥’揭密(三)

 

现在我们来看看上面的系统架构图中对总线1(Bus 1)上的设备2(Device 2)中的存储地址(假设为00026800)进行操作(假设为写操作)的大致过程...





超硬工程师—这里有简单易懂的最新硬件技术和知识分享,也有求职和职业规划发展的经验之谈。点击标题下方蓝字“超硬工程师”免费关注,我们帮助您快速提升能力和经验!

设备地址解码过程



上篇最后讲到地址解码,每个PCI设备会有对应的存储空间,这个信息被设置在其内部对应的寄存器当中。通过查找和比对这个寄存器中的值,设备可以判断总线上操作指令所对应的存储地址是否属于自己。

怎么理解上面这段话的意思呢?其实,这和班级里学生编学号有点类似。假设一个班级里有40个学生,为方便平时的教学工作,老师往往会给每个学生设置一个学号,从#01到#40,小明同学的学号是#26。编制完学号以后,每当老师叫到#26号,小明同学就知道老师是在叫他,就会回答,然后配合老师完成相关要求。一个总线上的设备可以看作班级里的学生,每个总线分配到的存储空间对应于每个学生的学号。当总线上有指令操作某个存储地址时,该存储地址所对应的设备就会像学生听到老师叫自己学号一样去回应,并且配合完成相关指令操作。

现在我们来看看上面的系统架构图中对总线1(Bus 1)上的设备2(Device 2)中的存储地址(假设为00026800)进行操作(假设为写操作)的大致过程:

  1. CPU会把写操作指令以及地址信息(00026800)发送给HOST
  2. HOST会把这些信息发送到下面的一个总线也就是总线0 上
  3. 总线0上的设备们就会根据前面讲述的过程把总线上操作指令的地址和自己的存储空间进行比对,也就是进行地址解码。由于这个地址00026800是属于总线1上的设备2的,总线0上没有设备对应这个地址,所以也就没有设备会主动回应这个操作指令
  4. 这时总线0上挂着的扩展桥设备也会进行地址解码。前面也曾经讲过系统配置完成做资源分配时,也会对扩展桥设备的存储空间进行设置。扩展桥的存储空间也就是其后一级总线上所有设备(包括后面如果还有可能存在的扩展桥设备)的存储空间。这里的这个扩展桥其后端总线就是总线1,因而其存储空间寄存器内部设置的地址范围包含总线1上所有设备的地址空间,当然也包括设备2的地址。这也就是说地址00026800是在该扩展桥的存储空间范围内。于是扩展桥的地址解码成功,就会回应这个指令操作。
  5. 扩展桥设备并不是这个操作指令的最终目的地(最终目的地是总线1上的设备2),因地扩展桥并不能像终端设备那样正常去回应该指令,并完成相关操作,而是会以一个中转的方式去回应。简单地说,扩展桥设备会接受总线0上的指令以及数据,然后会把这个指令及相应数据发送到总线1上面
  6. 总线1上的设备就会像步骤4)中的描述的那样进行地址解码。不同的是总线1上的设备2就像被老师叫到自己学号的小明一样,跳出来大声宣布“这是我的菜”。这样设备就会作为终端设备正式回应这个指令,并完成这个指令的操作,接收相应的数据。


整个操作过程至此结束。

南桥芯片ICH8的主要功能

好了,现在我们终于可以回到这一节的正题,来介绍一下ICH8南桥芯片的主要功能。相信您一定会问,介绍南桥功能直接讲不就完了,为什么要洋洋洒洒花那么多篇幅去介绍总线和设备及其编号以及指令操作过程呢?先来看看下面这个图吧。



前面曾经说过,南桥芯片功能比较复杂,除了多种I/O控制器和外接口还集成复杂的系统管理功能。这些众多的功能在南桥内部都是由不同设备来控制和实现的。上面这个图就列出了ICH8南桥芯片中主要的设备,以及其所在总线,设备及功能编号。

如果没有前面章节关于总线和设备编号及其工作原理的简要解析,大家在这里就要丈二摸不着头脑了。今后在南桥芯片的深入剖析和学习中,还要经常接触总线和设备的概念,所以在介绍主要功能前做个铺垫。

了解更多南桥内部功能,请继续关注微信公众号“超硬工程师”。

技术资料免费申请

100页/4万字/《硬件新手入门宝典》-- 大赠送

60页/1.8万字/《硬件面试宝典》– 免费派送

绝对干货 - 内存设计电路图分享

拒绝鸡汤,专注干货

轻松快捷学习硬件设计知识,请扫一扫或长按下面二维码,关注微信公众号:超硬工程师 。


    关注 超硬工程师


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册