主板略析

之所以想研究下主板,主要是有点好奇,因为微机原理教科书上没提到南北桥芯片,而提到的8259中断控制器、8254定时器之类的芯片在现在的主板上找不到,再就是出于兴趣想玩玩OS,OS不得不涉及到底层硬件。所以就找了一些资料来研究一下,主要是Intel 815E主板的原理图,及815芯片组(82815 GMCH+82801BA ICH2)的DATASHEET。

先来张图,815E主板的原理框图,简单了解下主板的各功能单元:

除电源脚、地外,CPU的大部分引脚(地址/数据/控制总线等)都是与北桥GMCH相连,而中断引脚INTR、NMI,地址位20屏蔽脚A20M等(见上图)与南桥ICH相连;南北桥之间通过HUB-LINK接口连接,包括HL[11:0]HL_STBHL_STB#HLCOMP十几个信号(应该还有个时钟信号)。

北桥GMCH815,集成内存控制器以连接物理内存条,通过AGP接口连接显卡,通过HUB-LINK接口连接南桥。北桥——按我理解——主要就是个地址译码器和数据分配器,它根据地址/数据/控制总线的信号,把来自CPU的信息转发给内存、显卡、或通过南桥转发给外设,反之也成立。(补充一下,815北桥集成有Graphcs Controller,只要加上适当的外围电路就可以连接CRT显示器,而无需独立显卡或显示芯片)。

南桥ICH2,带PCI接口可连接PCI设备(包络网卡芯片),集成IDE控制器连接硬盘及光驱,集成USB控制器连接USB设备,通过AC'97 Link接口连接音效芯片再连至音箱,通过FWH接口连接FirmWare(也就是BIOS),通过LPC接口连接IO芯片(LPC接口与FWH接口复用同一组导线);此外,南桥内部还集成2个级联的8259中断控制器、8237DMA控制器、8254定时器、RTC实时时钟、等等。与北桥相比,南桥主要连接相对低速的外设,而北桥连接的是高速设备,如PCI-E×16接口就是由北桥(intel 965芯片组提供的。

IO芯片,集成8042连接键鼠,集成8250连接串口,集成8255连接并口,集成软盘控制器连软驱,等等。IO芯片通过LPC接口将键鼠等设备的数据送至南桥,再到北桥,到CPU。

北桥与南桥:

从物理上看,CPU是与内存,显卡,BIOS芯片,IO控制芯片等是隔离的,大多数引脚都是与北桥相连。因此,北桥应当具备地址译码器/数据变换器/数据分配器的基本功能,充当一个快递公司的角色,而南桥就相当于快递公司的分部。快递公司(北桥)根据顾客(CPU)提供的地址(CPU的地址/控制总线上的电平信号)将货物进行适当包装(如CPU-北桥间的64位数据格式要转化为北桥-南桥间的HUB-LINK数据格式),再送至相应的地方(显卡、内存),或送到分部(南桥)再转发到实际收货点(IO芯片,网卡控制芯片或南桥内部集成的8259中断控制器等等)。

当然,要实现以上功能,北桥南桥内部集成了很复杂的接口电路和控制电路,这些只有芯片组厂商清楚了。不过通过芯片组DATASHEET可以了解到它们是可编程的,通过其内部的寄存器可以获取一些硬件信息,还可以设置寄存器值来改变芯片的工作状态:例如可以设置北桥选用内部的Graphics Controler还是经过AGP接口使用外部独立显卡。

那如何对南北桥内的寄存器进行编程/配置呢?从配置角度上看,这些寄存器都是挂在PCI总线上的,每个寄存器都有个唯一的

PCI  BUS NUM:DEVICE NUM:FUNCTION NUM:REGISTER NUM。

这一系列的编号可以从芯片组DATASHEET中查到。读/写寄存器值需要通过两个专门的IO端口:CONF_ADDR(0CF8)和CONF_DATA(0CFC),大约是通过INSD/OUTSD这两IO指令来实现。CONF_ADDR是32位的,定义如下:

OUTSDCONF_ADDR(0CF8)的值就是所要配置的寄存器的编号,然后再INSD/OUTSD CONF_DATA(0CFC)的值,也就是所要配置的寄存器的值。

下图来自书《PCI局部总线 开发者指南》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值