CE下PCI网卡的传输方式

jw212 2010-10-13 05:44:28
今天看到MSDN上有关的文章:

The Windows CE NDIS implementation does not support direct memory access (DMA). Do not use the NdisSetupDmaTransfer, NdisCompleteDmaTransfer, NdisMRegisterDmaChannel, NdisMDeregisterDmaChannel, NdisMAllocateMapRegisters, NdisMFreeMapRegisters, NdisMReadDmaCounter, and NdisGetSharedDataAlignment functions.

Use the NdisMAllocateSharedMemory and NdisMFreeSharedMemory functions for PCI bus master DMA transfers.

那在CE下PCI网卡用PIO么,会不会很慢啊?有没有人搞过这方面的研究啊

而且我看过CE下E100BeX代码,里面仍有对NdisMAllocateMapRegisters的调用:Mp_init.c L993
Status = NdisMAllocateMapRegisters(
Adapter->AdapterHandle,
0,
NDIS_DMA_32BITS,
Adapter->NumTbd,
NIC_MAX_PACKET_SIZE);

这个又是如何解释啊,NDIS不是不support了么?
...全文
80 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jw212 2010-10-14
  • 打赏
  • 举报
回复
今天在又翻了一些资料出来,在microsoft windows CE device driver kit中有一节是:Implementing DMA for NDIS Miniport Drivers
专门提到了这个问题,当前ce还没有自己的DMA机制,然而开发人员可以在他们自己的小端口卡驱动程序中实现相同的功能,但是写的太简单了,而且没有找到实例,不知道有没有人做过可以出来讲解一下啊?

Implementing DMA for NDIS Miniport Drivers
DMA is important for efficient networking because it enables the layers in
the networking architecture to share data without first copying that data

two categories of DMA: slave DMA and busmaster DMAB
 
Slave DMA
Slave DMA is appropriate for OEMs because it requires a block of memory that
is pre-allocated in the device memory map of the Windows CE–based platform.
Miniport drivers can map that block of physical memory to the driver’virtual
memory space,
and then use the VirtualAlloc and VirtualCopy functions to move
data in and out of that space
 
busmaster DMA
To receive data, the driver allocates a shared memory block, transfers the
data to buffers within that block, and uses NDIS functions to indicate that a
packet has arrived. To send data, the driver uses the LockPages and
UnlockPages functions to map the virtual memory to device memory, informs the
NIC of the addresses of the data, and instructs the NIC to send the data.
This method can be faster for larger data block sizes.

主板与CPU的搭配 主板 2008-10-24 21:09:32 阅读672 评论0 字号:大中小 订阅 我们都知道,内存的多少对系统的速度有很大的影响,增加内存成为系统升级的首选,很多用户都想为自己的爱机增加内存。内存容量当然是越大越好,但大部份人没有这个经济实力啊!装机需要多大的内存呢?下面介绍一个定量测量你的电脑需要多少内存的方法,以保证你爱机的内存达到够用好用的标准,而且不产生不必要的浪费。 前言:在动手写这东西前觉得这还不容易,在网上找点凑凑就行了。实际动起手来,就让人有眼高手低的感觉!如果要把主板结构、芯片组、支持CPU类型、CPU插槽类型、前端总线频率、显示芯片、板载音效、网卡芯片、板载RAID、内存插槽、支持内存类型、是否支持双通道内存、PCI插槽、AGP插槽、PCI Express插槽、扩展接口、电源回路、电容选用、硬件监控、硬件错误侦测等等主板方面的知识和选购注意事项讲清楚,没有几万字下不来,但写这么多谁会看啊!!! 这就只能挑选些重点的说说,但重点在哪呢,好象都很重要啊!只能来点抛砖引玉的,请各位高手指正和补充。 大家喜欢将CPU比作电脑的大脑或心脏,那么电脑主板就可称为电脑的神经系统。现在的CPU种类繁多,什么370、423、462、478、774、775、939、940等等,对初次装机的新手来说好似密码一样,其实它们是CPU的针脚接口类型;同一接口类型又分为不同的系列和频率,如此繁多的CPU该如何与主板搭配呢?决定选用什么平台,使用哪款CPU后,主板的选择就是重中之重了。受经济条件的限制不能买够快的CPU和够劲的显卡,那么最起码也要有一块使用稳定的主板,让你不会经常碰到烦心的兼容性问题。 一、首先介绍Intel Socket478接口的P4、赛杨D、赛杨4 CPU适用的主板 Socket478接口的P4、赛杨D、赛杨4是 Intel经典的CPU,但随着925/915平台的逐步普及,这种接口的主板正在变成午后的太阳-----虽然还很热,但毕竟是在走下坡路了。与其配套芯片组主要包括Intel的875P、865P/PE/G/GV、848P和845PE/GE,此外还有VIA推出的PT880/PT800等芯片组。G代表有内建绘图芯片、V表示无法外接独立图形芯片或显卡来加以升级、P象征效能。   875P最大的特点是支持800MHz前端总线、双通道内存技术和超线程技术,此外,875芯片组具备的PAT技术能够优化信号在北桥和内存之间的传输效率,而且该功能能够在各种外频下工作,对提高系统效能有一定的帮助。875P芯片组的南桥通常选用ICH5R,支持2路SATA接口和2路PATA接口,还可以组建SATA RAID模式,此外还支持8个USB2.0高速端口和CSA高速千兆网卡连接,而ICH5南桥则不具备组建RAID的功能。 与875P相比,865P/PE除了不提供对PAT技术的支持,其他方面则与875基本相同,南桥可以搭配ICH5R或ICH5,价格要便宜些。总体而言,875P、865P/PE还是目前装机的主流产品,打算选购Socket478接口的P4与P4E的朋友可以考虑采用这三款芯片组的主板,其中865P/PE相对较便宜,价格在450---1400元都有。875P稍稍贵一些(大概比865P/PE贵150元左右)。   848P是继875P、865P/PE主板之后发布的低端主板,它被Intel用来锁定低端Socket478 P4与Socket478赛杨D,能够很好的支持Prescott核心的P4E和赛杨D,除了不支持双通道内存技术外,其他方面与865P/PE基本相同,价格更便宜,适合与赛杨4D搭配。   至于845PE,则是845系列的最后一个版本,主板厂商经过改良同样提供了对赛杨D的支持,但是前端总线最高只能达到533MHz,仅支持单通道DDR266的内存,不过价格更有优势,目前主要与C4进行搭配。 奔腾4(2.4G以上,800FSB) 赛杨D -----875P,865PE,865G,848P,PT800 奔腾4、C4-D(2G以上,533或者400FSB)-----848P,845PE,845E,PT800 奔腾4(2G以下)赛扬4 ----845E,845D,845GE,845G,845GV、845GL,P4X400,P4M266,P4X266E 二、支持775接口的主板 Socket 775又称为Socket T,是目前应用于Intel LGA775封装的CPU所对应的处理器插槽,能支持LGA775封装的Pentium 4 5XX、Pentium 4 6XX系列、Celeron D等CPU。支持LGA775 P4的主板主要有Intel的915P/925X/875P/865P等芯片组,其中以925X/915P为主。   Intel将LGA775接口作为其未来CPU平台发展的方向,目前Intel的高端主板是925芯片组,它是接替前一代875P的产品。925芯片组可以细分为925X和925XE,前者只支持到800MHz前端总线而后者高达1066MHz。 先看看桌面平台中高端的925X芯片组。925X芯片组支持PCI ExpressX16显示总线,双向带宽高达8GB/s,是以往单向带宽仅为2GB/s的AGP8X显示总线的4倍,虽然目前对3D加速的作用还不明显,但为今后的发展铺平了道路,并提供了更广泛的扩展空间。其次,925X支持双通道的DDR2内存,频率高达533MHz,同样能够提供8.5GB/s的总线带宽来与前端总线匹配,此外,925X的南桥已经升级为ICH6R,支持更多的SATA接口和SATA RAID模式,最新的Intel High Definition Audio标准能够实现高品质7.1声道环绕输出和192KHz的音频采样,8个USB2.0高速接口完全能够满足人们对数字多媒体生活的追求。 至于925XE芯片组,它主要将前端总线的频率正式提高到1066MHz,能与CPU建立高达8.5GB/s的快速通道,用来配合更高端的P4EE。   915芯片组则对内存的支持上没有那么高的要求,可以使用目前最热门的DDR400内存,因此更适合家庭用户使用。它包括915G、915GV与915P芯片组, 915芯片组从规格来看几乎与925X/XE相当,它们的区别仅体现在内存的优化方面,925X在内存方面增加了ECC校验与降低内存延迟功能,在性能上比915P稍好些。在这三款915芯片组中,915P最适合渴望拥有当前硬件最高性能,未来2年内不用升级但价格又不会太高的家庭用户。由于915G内置显示输出,并提供对DX9.0标准的支持,它能够满足一般家庭的游戏和多媒体需要,配775接口的新赛杨D比较合适;而GV则取消了外接显卡的功能,一般不推荐作DIY装机使用。   还有一些经过“变种”的875P和865P芯片组,这两款Intel的主板芯片组原本只支持Socket478接口的P4,但经过改良后同样也能支持LGA775接口的P4E。它的优点就是价格便宜,可以让用户在不升级显卡的情况下轻松拥有LGA775接口的P4E,缺点则是稳定性问题值得考虑,同时升级空间也不大。 三、与AMD CPU搭配的常规主板 (一) K7平台:Socket462接口的Barton,Athlon XP,Athlon,Duron,Sempron 这种接口伴随我们已经走过了多个年头,那些我们熟悉的Athlon、AthlonXP和Duron、Sempron都采用了这种接口,即使在今天从兼容性和速度的角度上看,这类CPU仍然能够给我们服务一到两年而没多大问题。其搭配的主板芯片主要有NForce 2全系列,KT880,KT600,KT400/A ,KT400,KM400,KT333,KM266 具体为: Barton,Athlon XP,Athlon,Duron,Sempron ---NForce 2全系列,KT880,KT600,KT400/A    Duron ----KT400,KM400,KT333,KM266 (二)K8、K9平台 1、K8平台:AMD Socket754接口的Athlon64和Socket 754的新闪龙用主板 Socket 754接口的Athlon64的最大区别是只支持单通道内存技术,目前多采用0.13微米工艺进行生产,其中2800+、3000+和3200+采用的是二级缓存为512KB的Newcastle核心,虽然Socket754接口的Athlon 64从性能上看与Socket939接口的Athlon64有少许差距,但价格上却完全能被DIYer接受。 2、K9平台(非官方的称呼):AMD Socket939接口Athlon64 Athlon64一共提供了Socket939、940、754三个接口。其中Socket939接口的的Athlon 64目前最热门,其性能表现异常出色,具有64位处理功能且支持双通道内存技术。 3、AMD面向服务器的Socket940接口Athlon64 Socket940接口的Athlon64面世时间最长,其针脚数为940,虽然与Socket939相比只多了一根,但两者接口并不兼容,这种CPU主要面向服务器,并且价格高昂。 4、适合Socket939/754接口的nForce3/ nForce4和K8T800、K8T890芯片组主板 Athlon64将内存控制器集成到CPU内部后产生了一个很有意思的现象,其中之一就是主板的北桥功能减少从而有机会与南桥进行合并,主板成本能得到较好的控制;其次,相同的主板芯片组能够支持不同接口的CPU,比如nVIDIA推出的nForce3芯片组既能支持Socket939也支持Socket754接口的Athlon64,是否支持双通道技术完全交给CPU来负责。   在Athlon64平台中,我们首先要了解的就是最近刚刚上市的nForce4芯片组,其最大的特点是提供了对PCI-E显卡的支持,与Intel平台形成分庭抗礼的局面。nForce4主板芯片组细分为nForce4 Ultra、nForce4 SLI和nForce4三种,其中nForce4 Ultra支持1GHz的Hyper Transport总线与CPU实现更高速连接,并支持用户通过改变总线频率来超频。支持Socket939的Athlon64。此外,还内建了千兆网络连接和硬件防火墙功能,支持多种功能的SATA RAID模式,USB2.0接口数提升到了10个。nForce4 SLI则在Ultra的基础上多提供了两个PCI-EX16接口,通过特殊的转换来实现双显卡协同工作的SLI模式,进一步提高了显卡的3D加速能力。nForce4 SLI可以支持Socket939的Athlon64。nForce4则只支持800MHz的Hyper Transport总线,而且不允许用户通过改变此总线来超频,因此只适合与Socket754的Athlon64进行搭配。   nForce3芯片组推出的时间要早一些,虽然其不支持PCI-E显卡,但在速度和稳定性方面还是有着明显的优势,该芯片组细分为nForce3 150、nForce3 250、250Gb和250Ultra四种。nForce3 150属于nForce3系列首作,它并不成功,上市不久就惨被淘汰,大家选购时要注意。   nForce3 250系列支持800MHz Hyper Transport总线;内建SATA控制器直接支持两个SATA接口并保留两个SATA MAC可供与外置PHY配合实现另两个SATA。主板厂商主要用它来支持Socket754接口的Athlon64。   nForce3 250GB版本新增加了内建千兆以太网MAC并具备硬件防火墙功能;提供的USB2.0接口数目提升到8个。主板厂商主要用它来支持Socket754/939接口的Athlon64和Socket 754的新闪龙。   nForce3 250Ultra在上述产品的基础上再次改良,把Hyper transport总线速度提高到了1GHz。主板厂商主要用它来支持Socket939接口的Athlon64。   在AMD平台,除了nVIDIA以外,我们还有另一个选择---—VIA。在支持Socket754/939 Athlon64方面,VIA主推K8T800、K8T800Pro和K8T890芯组。K8T800适合于754接口的K8平台;K8T800Pro能够支持Socket939接口的Athlon64,而且在K8T800的800MHz Hyper transport总线的基础上增加到1GB,价格与nVIDIA的同类产品基本相当。 K8T890是VIA第一款支持PCI Express的K8芯片组。分为三个型号: K8T890、K8T890PRO及K8M890。其中K8T890属于标准版,支持Athlon 64/Sempron/Opteron处理器,支持1GHz的Hypertransport技术,提供一条PCI-EX16显卡插槽,四条PCI-E×1插槽。 K8T890PRO支持Athlon 64/Sempron/Opteron处理器,支持1GHz的Hypertransport技术, DualGFX Express,北、南芯片同样采用Ultra V-Link技术。 K8T890PRO芯片组采用最新的VT8251南桥,最大可以提供一条PCI CE X16显卡插槽,1条兼容PCI-EX16显卡的PCI CE X4插槽,二条PCI-E×1插槽,同时搭载Vinyl 音频芯片和Velocity千兆以太网卡。 K8M890属于K8T890标准版的整合版本。其也支持Athlon 64/Sempron/Opteron处理器,支持1GHz的Hypertransport技术,与VT8237南桥搭配,提供一条PCI-E X16显卡插槽、2条PCI-E X1插槽。其最大特点是整合了一款支持DX9的DeltaChrome IGP图形核心,支持DuoView显示技术,具有DVI/TV-out接口。 现在大部分的板子上都集成了声卡、网卡,就算是比较高档的板子也有。声卡,我觉得用集成的就行,现在好一点儿的板子都可以支持到6.0或以上,不是专业用户够用了。集成的网卡有好用的,也有不好用的。笔者的华硕主板集成的网卡就很好用,与独立网卡在速度上感觉不出什么差别;而另一台磐正865PE芯片的主板集成的网卡,经测试下载速度比独立网卡慢了一倍!!!这些细节都是选购主板时需要注意的。 至于集成显卡,在高档的板子上是不会出现的。如果希望游戏玩的爽,显卡是一定要独立的。集成显卡的板子一般只适合初级用户使用。需要注意的是,最好不要选不能升级显卡的GV系列小板,免得以后升级不便。 总的来说,选一块好的板卡首先要看他的扩充性,具体说来AGP、PCI、USB、IDE、IEEE 1394等等。第二看做工,着重看他的北桥芯片组 电解容及供电线路和布局,还有全局的排列,各个跳线做工是否精细。还有一点很重要就是提供的质保。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧