lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1292回复:6

为什么会占这么多CPU资源?没道理啊?

楼主#
更多 发布于:2002-11-27 23:38
9052PCI卡,操作系统是WIN2K。100ms一次中断,一次中断输出1M字节。9052局部总线时钟为33M(利用BCLK0),数据宽度为32位,BURST方式,一次BURST四个周期,无延时。

这种配置下,就算一次BURST四个周期导致局部总线速度只有PCI速度的一半,那么传输1M字节,不过是占了256K个PCI写周期,也仅仅需要15.5ms,扣除系统占用的一些时间,就算5MS,那么也不过20MS,只占到总时间的20%,这还是在输出期间独占CPU的情况。

可现在的情况是,输出操作放在驱动的DPC例程中(级别高一点),CPU占用量达到45%,而输出操作放在系统线程中,占用CPU竟然达到66%,剩下的时间,连读几个文件,调整几百K字节的数据都不够了!究竟计算机在干什么??

lvhaow
stroll
驱动小牛
驱动小牛
  • 注册日期2001-10-26
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分161分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-28 09:35
估计是需要仲裁或有其他pci设备的干扰。
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-11-28 12:38
问题可能出在9052的配置上。
在地址空间描述寄存器中,定义的值是00800003,也就是说:
位0:  迸发操作许可。值为1,许可。
位1: LRDYi# 输入许可。值为1许可。
位23:22:总线宽度。值10,32位。
其它位全部为0。
但又仔细看了DATABOOK,发现有问题,关于位0(迸发操作许可)的描述是
Burst Enable. Value of 1 indicates bursting is enabled. Value of 0 indicates bursting is disabled. Bursting occurs if the prefetch count is not equal to 00.
后面一句话,是不是指出迸发操作,不论读写,一定要以预取计数器的值不为0为先决条件呢?那么,预取计数器又要以位5(Prefetch Count Enable)为1为条件,那么,要真正实现BURST操作,是不是连位5也要置1?
lvhaow
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-11-28 14:10
改过了9052的配置,可似乎并没见有什么不同!!!!!!!!!
lvhaow
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-11-28 15:05
可能是总线瓶颈的原因.
io 访问时,一次就需要将近 1us 的时间,
你用 burst 方式会好一些,但我想也不会特别好.
www.bjjcz.com
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-11-30 16:58
PCI写操作占用CPU过多的原因找到了,主板CMOS设置中,关于CPU&PCI的项目中有设置POST WRITE的选项。不知道什么时候把它设置为\"禁止\"了,导致CPU每一次PCI写周期都必须等到操作完成,CPU是1.6G的主频,而PCI是33M,其效率的损失是显而易见的。现在把该项设置为\"许可\",结果原来达到66%的系统占用量,一下子降到了10%不到。
呵呵,再也不用费神去琢磨SLAVEDMA了!
lvhaow
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-02 08:33
谢谢贴主,以后少走弯路了
游客

返回顶部