POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 6873|回复: 8
打印 上一主题 下一主题

发一条老消息,解惑X38与NVIDIA显卡的PCIE2.0问题。更新解决办法

[复制链接]
跳转到指定楼层
1#
发表于 2011-8-13 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 efficient3d 于 2014-12-6 20:18 编辑

  X38是Intel推出的第一款支持PCIe2.0的芯片组。第一款东西不可能样样都完美,即便是老道的Intel也不例外,难免会出现一些小错误--当然也是2年后NV的新驱动出来了(分界点大概在180版本驱动前后),有些X38的用户才意识到他们的NVIDIA显卡无论如何都不能工作在PCIE2.0下了,才向主板厂家与Intel提出这个问题。因X38属于高端产品,用户群可能少一些,而且大家可能不太关心X38的PCIe2.0的支持完美与否的问题,所以在这里只有一两个帖子有所反应,当然最后都是不了了之(http://we.pcinlife.com/thread-1373752-1-1.htmlhttp://we.pcinlife.com/thread-1101146-1-1.html)。
  OK,现在这个问题终于有了一点眉目,在国外的一些硬件论坛与NVIDIA官网都有类似的主题(NV官网的详见:http://forums.nvidia.com/index.p ... owtopic=153911&st=0;另外一个解释得算比较清楚的论坛详见:http://www.xtremesystems.org/for ... 2.0-Bug-X38-X48-X58
  也许很多人懒得看其中的过程了,鄙人英文水平也很一般,粗略的看了一下第二个链接中的帖子,简单概括来说--就是这样的:
X38的PCIe2.0控制器确实存在一个硬件设计上的Bug,导致在PCIe1.0向2.0切换的时候引起系统挂起与不稳定。所以NVIDIA随后的驱动中在X38上关闭了这个功能,使X38上的N卡只能工作在1.1模式下。不过也有少数幸运儿能够正常使用N卡的最新驱动并且自由切换PCIe1.0与2.0的。之前X48、X58也有类似的问题,但是有人向NVIDIA反应后,NV在后来的驱动修正了这个Bug,但是对于X38,很可惜,没有办法修正,所以就一直遗留了下来。
  最后要说明一下,尽管X48和X38本质上根本就是一个东西,但是X48在硬件上修正了这个Bug,可恶的Intel并没有提及,所以X48是并没有这个问题的。
  不过我还是想说,毕竟所有X38用户当年花不少钱买这块板子是冲着它的新特性去的,尤其是其中的PCIe2.0支持,但是4年后的今天遇到这样的尴尬问题实在是让我们这些用户有点无奈--我想你们的CPU即便放到现在来看也不算落伍吧?不过,我认为这并不能够阻碍我们对NVIDIA新显卡的热情,该上的还是得上,性能损失是有点但毕竟瑕不掩瑜,你说是不?

  有人可能会问,为什么ATI的没有这个问题。我想原因可能是这样的:NV是在显卡BIOS中切换1.0与2.0,ATI只是在驱动中切换1.0与2.0,而X38对于显卡在BIOS中切换1.0与2.0存在硬件上的兼容性问题,但是对于驱动上的切换却是可行的,这也就是为什么在GPU-Z里面显示N卡在1.0的时候是PCIeX16@16而A卡是PCIe2.0X16@16了。

  感谢NVIDIA论坛的“xXlAinXx”这位网友提供的一条重要线索,具体参见:http://forums.nvidia.com/index.p ... =findpost&p=1230591,在inf安装文件中加入以下语句
HKR,,VarBusLinkWidth,%REG_DWORD%,0x000
HKR,,RmForceEnableGen2,%REG_DWORD%,0x001
HKR,,RMNoGen2,%REG_DWORD%,0x000
HKR,,RmDisableGen2LinkRetraining,%REG_DWORD%,0x000
HKR,,RmForceEnablePcieGenSwitching,%REG_DWORD%,0x000
HKR,,RmOverrideSupportChipsetAspm,%REG_DWORD%,0x000
HKR,,RMDisableGpuASPMFlags,%REG_DWORD%,0x000
可能会改变NVIDIA显卡的总线控制方式。(注:红色语句为必须语句,光加入这两条也可使显卡一直工作在2.0模式并且不影响稳定性。从字面理解是其中一条强制显卡工作在PCIe2.0模式,另外一条是关闭了显卡的总线自动切换功能)其余语句作用未知。
  现在的问题是,究竟加在哪一行呢?
  经过我的试验,加在[nv_commonBase_addreg]这一项列表的最后是有效的(XP下是这样,WIn7下则为[nv_commonBase_addreg1]、[nv_commonBase_addreg2]),这样显卡就会一直运行在PCIe2.0模式并且不影响核心频率的动态调整。经过验证,GF550Ti在我的X38上已经运行在PCIe2.0模式(其它支持PCIe2.0的芯片组情况也是一样,这个修改与芯片组无关,但是在PCIe1.0芯片组上面没有试验过)。X38用户终于可以松一口气了。
  最后,让我们来验证是否真正开启了PCIe2.0模式。除了用GPU-Z查看信息外,还有一个软件叫CUDA-Z的。运行之后查看第三栏Performance Information,其中的Host Pinned to Device,Device to Host Pinned这两项的带宽。如果显卡运行在PCIe1.1模式,那么这两项的带宽一般不超过3000MB每秒;而运行在PCIe2.0模式下这两项带宽即便在QuadroFX1700这样的老核心下也能达到3400MB每秒左右,现在的显卡基本在5000MB每秒左右。
  
  另外,根据NV官方论坛的讨论(具体详见上面提到的链接),安装SLi补丁也可以让X38运行在PCIe2.0模式,并且可以根据节能要求动态切换1.0与2.0.这个我就没有试过了。鉴于SLi补丁不是很容易找,具体可以翻翻这个帖子:http://we.pcinlife.com/thread-1610969-1-1.html,里面有兄弟把SLi所有的版本都贡献了出来,我也下了留作备份,有需要的朋友可以PM我。这个方法有些人可行但是有些又不行,具体我就没试过了。

2014.12更新
事隔多年,一次偶然的机会让我重新试验了X38的这个bug,取得了一些新的进展。在Win7 64位系统下(XP 32bit也一样),当采用GT218核心的QuadroFX380LP并且采用最新驱动时,PCIe2.0模式是正常的,初步分析是Quadro系列的PCIe速率电源调节方式与GF系列略有不同,或者说NV没有在Quadro系列显卡中将X38的PCIe2.0功能屏蔽掉。。
  同样的采用GT系列核心的GT240经过试验仍然不行(采用最新驱动)。令人欣慰的是,采用GK系列核心(即开普勒核心)的显卡PCIe2.0模式正常,并且可以根据显卡负载自动调节1.0与2.0模式。初步分析是:从开普勒核心开始,NV采用的PCIe速率调节策略由显卡BIOS转向驱动程序(即和ATI显卡类似),所以调节的时候显示是PCIe2.0X16@PCIe1.1X16(费米、GT、9、8系列核心低负载都是显示PCIe1.1X16@1.1X16,高负载显示PCIe2.0X16@2.0X16)。所以X38平台的用户可以放心的升级GK核心的NV显卡,至于麦克斯韦核心没有试验过,就不知道了。
2#
发表于 2011-8-14 00:40 | 只看该作者
这个···1.02.0的也没多大区别,忍忍吧
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2011-8-18 09:12 | 只看该作者
现在已经初步找到解决办法,具体详见一楼更新
回复 支持 反对

使用道具 举报

4#
发表于 2011-8-18 10:21 | 只看该作者
16x来说 没什么影响
回复 支持 反对

使用道具 举报

5#
发表于 2011-9-6 21:25 | 只看该作者
1. Download the latest driver and extract it.

2. Enter into the "Display.Driver" folder and find the file named "nv4_disp"(For XP,it is the "nv4_disp".For Win7 ,it is the "nv_disp" )

3.Find the line "[nv_commonBase_addreg]" (For Win7,there are"[nv_commonBase_addreg__01]" and "[nv_commonBase_addreg__02]")and add the lines that xXlAinXx mentioned at the end of it.For example,before we tweak it,the line is:

[nv_commonBase_addreg]
HKR,,Acceleration.Level,%REG_DWORD%,0
HKR,,DevSwitchSuppressMask,%REG_DWORD%,7
HKR,,InstalledDisplayDrivers,%REG_MULTI_SZ%,"nv4_disp"
HKR,,MultiFunctionSupported,%REG_DWORD%,1
HKR,,UseBestResolution,%REG_DWORD%,1

After we tweak it,the line is:
[nv_commonBase_addreg]
HKR,,Acceleration.Level,%REG_DWORD%,0
HKR,,DevSwitchSuppressMask,%REG_DWORD%,7
HKR,,InstalledDisplayDrivers,%REG_MULTI_SZ%,"nv4_disp"
HKR,,MultiFunctionSupported,%REG_DWORD%,1
HKR,,UseBestResolution,%REG_DWORD%,1
HKR,,VarBusLinkWidth,%REG_DWORD%,0x000
HKR,,RmForceEnableGen2,%REG_DWORD%,0x001
HKR,,RMNoGen2,%REG_DWORD%,0x000
HKR,,RmDisableGen2LinkRetraining,%REG_DWORD%,0x000
HKR,,RmForceEnablePcieGenSwitching,%REG_DWORD%,0x000
HKR,,RmOverrideSupportChipsetAspm,%REG_DWORD%,0x000
HKR,,RMDisableGpuASPMFlags,%REG_DWORD%,0x000

4.Save it and exit.

Then reinstall the modified driver.Choose the Custom(Advance) option and then next,choose the Perform a clean installation option and then next,choose continue when display the warning.After that reboot your computer.

OK.Now your video card is forced to work on PCIe2.0 mode.You can use the GPU-Z or CUDA-Z to check the video card's working situation.In my system,the GPU-Z shows the card working on PCIe 2.0 X16 @ X16 2.0 mode,and the CUDA-Z shows the memory copy "Host Pinned to Device","Device to Host Pinned" are about 5000 MB/S.So it is really working on PCIe 2.0 mode.

回复 支持 反对

使用道具 举报

6#
发表于 2011-9-6 21:52 | 只看该作者
世纪强帖,lz太强大了,顶一个。
回复 支持 反对

使用道具 举报

7#
发表于 2011-9-6 22:59 | 只看该作者
顶一下,,虽然没用过X38,
回复 支持 反对

使用道具 举报

8#
发表于 2011-9-7 11:34 | 只看该作者
A卡AU的路过
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2011-9-9 02:14 | 只看该作者
lovelove 发表于 2011-9-6 21:25
1. Download the latest driver and extract it.

2. Enter into the "Display.Driver" folder and find  ...

呵呵,其实这个就是我在NV网站发的帖子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-4-19 23:47

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表