LXFY
驱动牛犊
驱动牛犊
  • 注册日期2001-12-11
  • 最后登录2003-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1513回复:9

系统是如何实现地址动态分配的?

楼主#
更多 发布于:2002-02-23 16:28
我一直无法理解,系统是如何实现地址动态分配的?
是PCI卡实现的地址动态分配,还是操作系统或主板实现的地址动态分配,还是PCI上的芯片的固定管脚接到PCI的固定管脚上自动实现的地址动态分配?
相信我说的都不对,还请大家给我一些帮助

什么是PCI-PCI桥?什么是CardBus桥?
我相信万有引力
greatwp
驱动牛犊
驱动牛犊
  • 注册日期2001-12-07
  • 最后登录2005-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-02-23 18:24
是由cpu进行地址的分配
wp
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-02-25 16:12
准确的说是BIOS实现的.这方面有具体的规范.
PCI_PCI桥好像没什么不可理解的吧.
CARD_BUS很类似于PCI,PCMCIA的一种
兄弟们,给点分吧
LXFY
驱动牛犊
驱动牛犊
  • 注册日期2001-12-11
  • 最后登录2003-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-02-25 16:41
多谢指点
我相信万有引力
LXFY
驱动牛犊
驱动牛犊
  • 注册日期2001-12-11
  • 最后登录2003-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-02-25 16:46
非常感谢楼上的答复
但我还是有几点不清楚
PCI配置寄存器中的信息在每次停电后都会丢失吗?如果会丢失是不是每次启动都由BIOS为配置寄存器初始化?
如果PCI设备可以由BIOS通知系统分配的地址,那么驱动程序如何知道PCI设备被分配的地址呢?

我相信万有引力
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-02-25 22:03
当然会丢失,每次启动都会重新分配,当然如果硬件没什么变化,同样的算法分配的地址是一样的。
如果是WDM的驱动,驱动程序你感觉不到操作了具体物理地址,系统提供了足够的调用。系统可以知道设备地址,configure register的访问有两种办法,PCI规范里有详细描述。
兄弟们,给点分吧
Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-18 16:34
是BIOS分配的,就问BIOS要就好了.BIOS中断1AH就是这个功能.另外CARDBUS不能说是PCMCIA的一种.它只是借用了PCMCIA的机械尺寸,外形,但它是32位的,基于PCI的协议规范.而PCMCIA是基于ISA的规范.
我读书少,不要欺负我呀!
Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-18 16:45
PCI设备都会有一个寄存器(一般用便宜的I2C ROM实现),里面保存了设备所要求的资源,包括基地址,长度,中断,等等.系统上电的时候PCI控制器会扫描每个设备,将其请求的资源报告BIOS,BIOS将根据情况分配资源给每个设备.就是说,不是你想要什么就能得到什么的.譬如对于中断,大家都知道PCI上只有4个中断信号线.大家都请求INTA(单功能设备要求只能接这个),最后每个设备得到的中断都是不一样的(够用的情况下,大家可以想想是怎么作到这一点的?).如果超过4个设备了,肯定得共享中断.
我读书少,不要欺负我呀!
Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-18 16:50
说错了,好象不是存在I2C ROM里的,那里面只是VENDOR ID等一些内容.
我读书少,不要欺负我呀!
Master_Yi
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-18 17:00
突然想到一个问题.BIOS是可以把PCI等配置信息保存下来的,BIOS中有这么一个PNP的信息块.只要硬件不变,它就不必每次开机都为设备重新分配资源.因为有的BIOS厂商的格式和MICROSOFT有冲突,很多机器在启动WINDOWS的时候都会出现那个什么ESCD....的信息,那就是因为WINDOWS不认识就会按自己的格式重写BIOS里的这部分内容.
我读书少,不要欺负我呀!
游客

返回顶部