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

每100MS内完成1M字节的逐字节转移,竟然占了80的CPU时间,这是怎么回事?

楼主#
更多 发布于:2002-11-24 16:15
WIN2K,P4 1.6G 512MDDR内存,INTER芯片组,程序用VC6写的,目的是组织32路每路32K数据源到1M缓冲用于PCI输出,没想到这么简单的的数据移动操作竟然这么占资源!!谁能告诉我该怎么办??
lvhaow
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-24 21:51
估计用DMA可能快些!!
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-11-25 00:06
哥哥哎,本来就是内存间的数据移动,再者要组织数据,也就是说把一个数组内的数据转移到另一个数组中,但数据在数组中的位置却要重新安排,DMA?扯远啦!
lvhaow
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-11-26 12:45
问题可能出在CPU的高速缓存上,由于我的处理中,组织数据时,访问的内存空间地址跨度很大,超出了高速缓存的可用尺寸,导致内存指针每移动一次,就要刷新一次高速缓存,也就是说我只处理了一个字节,却让CPU读了整个缓存尺寸的的内存,速度不慢才奇怪了!想了一天才想到这个问题,今天改个算法试试!
lvhaow
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-26 13:12
不好意思,老眼昏花,没看清题目,一看到32路我以为从外设读取数据呢?(我正在做一个16路的读外设数据的程序)
游客

返回顶部