求对CPU精通的大神回答关于excel乱序排列处理的问题

请完成以下验证码
查看: 1519|回复: 11
盈通AN68V3好奇怪的问题 。上CPU短路,不上CPU就不短路。求大神指点,或给下图纸
下载分315 分
原创币0 点
主题帖子积分
会员等级:
初学乍练, 积分 21, 距离下一级还需 9 积分
盈通AN68V3主板上电保护,用手摸CPU电源芯片很烫,换了,芯片不烫了,
不上CPU不掉电,一上CPU下管短路,立即掉电
把电源芯片取了,上CPU打值,下管短路,不上CPU打值,下管不短路,
上下管都正常。主丶驱动芯片都拆了,只要上CPU就短路。
不上CPU就不短路。不知道是那个地方的问题,
求大神指点一下,到底是哪里出了问题。(不关桥的问题)
下载分210 分
原创币1 点
下载682 次
金币4121 ¥
主题帖子积分
会员等级:
兄弟。。。。换板算了。。
换板确实是个好主意,但是对于我这种小白来说却是一种练习是不是,见的多才能长见识&
下载分315 分
原创币0 点
主题帖子积分
会员等级:
初学乍练, 积分 21, 距离下一级还需 9 积分
兄弟。。。。换板算了。。
换板确实是个好主意,但是对于我这种小白来说却是一种练习是不是,见的多才能长见识
下载分720 分
原创币0 点
金币3142 ¥
主题帖子积分
会员等级:
正式维客, 积分 90, 距离下一级还需 30 积分
你都说了上CPU短路,那就是CPU的问题了。是完全短还是有8左右的数值?上CPU后有8左右的值是正常的。
下载分720 分
原创币0 点
金币3142 ¥
主题帖子积分
会员等级:
正式维客, 积分 90, 距离下一级还需 30 积分
你都说了上CPU短路,那就是CPU的问题了。是完全短还是有8左右的数值?上CPU后有8左右的值是正常的。
下载分720 分
原创币0 点
金币3142 ¥
主题帖子积分
会员等级:
正式维客, 积分 90, 距离下一级还需 30 积分
你都说了上CPU短路,那就是CPU的问题了。是完全短还是有8左右的数值?上CPU后有8左右的值是正常的。
只有2的数值,不知道是不是好的?还有CPU都换过了&
下载分315 分
原创币0 点
主题帖子积分
会员等级:
初学乍练, 积分 21, 距离下一级还需 9 积分
你都说了上CPU短路,那就是CPU的问题了。是完全短还是有8左右的数值?上CPU后有8左右的值是正常的。
只有2的数值,不知道是不是好的?还有CPU都换过了
下载分845 分
原创币0 点
下载111 次
金币1265 ¥
主题帖子积分
会员等级:
金牌维客, 积分 460, 距离下一级还需 240 积分
先排除U的问题,剩下就是CPU座子的问题……
下载分13126 分
原创币0 点
金币4898 ¥
主题帖子积分
会员等级:
维修大佬, 积分 1308, 距离下一级还需 92 积分
查电源管理芯片。记得论坛有编文章,说是芯片电源过低,场管驱动电压不足损坏。
下载分15014 分
原创币65 点
下载523 次
上传982 次
主题帖子积分
打值是不能装CPU的,装上CPU后由于CPU集成度高,值就会变小这很正常。
电脑维修、手机维修技术交流、技术咨询QQ:、,微信:ChatonFix
下载分131 分
原创币0 点
主题帖子积分
会员等级:
初学乍练, 积分 16, 距离下一级还需 14 积分
今天我修了块板也是这样,你查下CPU供电芯片旁边的电容有短路
下载分18 分
原创币3 点
下载1473 次
上传351 次
金币384 ¥
主题帖子积分
会员等级:
你不上CPU会出CPU供电吗?估计是CPU供电短路,上CPU出CPU供电就短路了。
详询QQ/微信:
Powered by Discuz! X3.4 -ALicensed
& 2017 Comsenz Inc.帖子很冷清,卤煮很失落!求安慰
手机签到经验翻倍!快来扫一扫!
求问,这个问题哪个大神能破?cpu fan error
!!!!!!!
533浏览 / 13回复
华硕的A97 .0,用的是大霜塔至尊版散热(双风扇,目前分别插在 fan口 2和 fan口 3 ),冷启动没有任何问题,但重启就会报错
fan error,然后从bois启动硬盘就正常启动了。。。换了好几个风扇接口,重启还是报错!&补充下,机箱有四个散热风扇,报错进入bios后cpu温度有小幅上升。。然后慢慢降下来了!~
CPU风扇直接插上就行,为啥用2-3口
对 第1楼 ssn760 说:=========================为了走背线啊,fan口1太中间了。。我试过fan口1 ,是这样做的:把两个风扇的接口利用购买风扇送的集成器串联,然后插到fan口1,两个风扇都达到了1500以上的转速,声音好吵。。
直接插cpu风扇
BIOS里把CPU风扇失效报警Disable掉就是了,或者拔了机箱喇叭也行。。
插上肯定不会报错
对 第3楼 我喜爱DIY 说:=========================我这就是直接插的啊,都是cpu风扇的接口
对 第4楼 nqyrh 说:=========================太暴力了。。我怕对cpu有损伤啊
对 第5楼 ssn760 说:=========================你说的cpu风扇就是接口一对吧,默认的那个接口。 但是大霜塔有两个风扇啊,也就是需要两个接口才能正常使用。我试过1个接默认cpu风扇接口,一个接到 风扇接口2 ,出现一个非常奇葩的现象,两个风扇的速度完全不一样,一个500多转速低的可怜(见红了,应该是默认接口的那个风扇),一个1500多转速。。
不懂,CPU风扇专门插CPU fan的吧,fan1 fan2这些是机箱风扇吧
两个风扇都接到CPU的风扇接口上去,但是得把一个扇的测速线剪断。
不是吧。。。买风扇的时候送了一个集线器,可以把两个风扇的线集成到一条线上面,但用了还是会报错。。
不会吧?这个风扇送了个集线器,我用了一下,虽然集成到一条线了,能接cpu风扇口了,但报错的情况还是有,风扇转速变大了,很吵啊
答案引用自问答堂 : http://ask.zol.com.cn/q/167480.html你可以参照这个方法解决,风扇出现问题怎么办?如有需要可再对问答堂专家追问 : http://ask.zol.com.cn/q/167480html
用户名/注册邮箱/注册手机号
其他第三方号登录http://blog.163.com/zhaojie_ding/blog/static/9/?suggestedreading
处理器的乱序和并发执行
目 前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常能够在一 个指令周期内并发执行多条指令。处理器从L1 I-Cache预取了一批指令后,就会分析找出那些互相没有关联可以并发执行的指令,然后送到几个独立的执行单元进行并发执行。比如下面这样的代码(假定 编译器不做优化):
z = x +p = m +
CPU就有可能将这两行无关代码分别送到两个算术单元去同时执行。像Freescale的MPC8541这种嵌入式处理器一个指令周期能够加载4条指令、发射2条指令到流水线、用5个独立的执行单元来并发执行。
通常来说访存指令(由LSU单元执行)所需要的指令周期可能很多(可能要几十甚至上百个周期),而一般的算术指令通常在一个指令周期就搞定。所以有 可能代码中的访存指令耗费了多个周期完成执行后,其他几个执行单元可能已经把后面有多条逻辑上无关的算术指令都执行完了,这就产生了乱序。
另外访存指令之间也存在乱序的问题。高级的CPU可以根据自己Cache的组织特性,将访存指令重新排序执行。访问一些连续地址的可能会先执行,因 为这时候Cache命中率高。有的还允许访存的Non-blocking,即如果前面一条访存指令因为Cache不命中,造成长延时的存储访问时,后面的 访存指令可以先执行以便从Cache取数。对写指令的访存乱序有可能造成的错误后果,所以处理器通常有专门的机制(通常是做了个缓冲)保证在出现异常或者 错误的时候,可以丢弃异常点后面的写指令的结果不做写入。
处理器的分支预测功能也能引起并发执行。处理器的分支预测单元有可能直接把两条分支的指令都预取来一块并发执行掉。等到分支判断的结果出来以后,再丢弃错误分支的计算结果。这样在很多情况下可以实现0周期跳转。比如这样的代码(假定编译器不做优化):
z = x + if (z & 0) then
p = m +else
看上去如果z不计算出来是无法继续的。但是实际上CPU有可能先把三个加法都同时进行计算,然后根据z=x+y的结果直接挑选正确的p值。
因此,即使是从汇编上看顺序正确的指令,其执行的顺序也是不可预知的。处理器能够保证并发和乱序执行不会得到错误结果,但是如果是对一些硬件寄存器 的操作不能允许乱序的话,程序员就必须把这个情况告诉CPU。告诉的方法就是通过CPU提供的一组同步指令实现,通常在CPU的文档里面有对同步指令的使 用说明。系统函数库里面的内存屏障(rmb/wmb/mb)实际上也是通过这些同步指令实现的。因此在C编码的时候,只要设置好内存屏障,就能告诉CPU 哪些代码是不能乱序的。
编译器的乱序优化
受到处理器预取单元的能力限制,处理器每次只能分析一小块指令的并发性,如果指令相隔比较远就无能为力了。但是从编译器的角度来看,编译器能够对很 大一个范围的代码进行分析,能够从更大的范围内分辨出可以并发的指令,并将其尽量靠近排列让处理器更容易预取和并发执行,充分利用处理器的乱序并发功能。 所以现代的高性能编译器在目标码优化上都具备对指令进行乱序优化的能力。并且可以对访存的指令进行进一步的乱序,减少逻辑上不必要的访存,以及尽量提高 Cache命中率和CPU的LSU(load/store unit)的工作效率。所以在打开编译器优化以后,看到生成的汇编码并不严格按照代码的逻辑顺序是正常的。和处理器一样,如果想要告诉编译器不要去对某些 指令乱序优化,也要通过一些方式来告诉编译器。通常可以通过volatile关键字来抑制(注意,不是禁止)编译器对相关变量的访问优化。举个例子:
int *p, *q; ......; *p = 1; *p = 2; *q = *p;
这样,编译器通常会优化掉前面一个对*p的写入(逻辑上冗余),仅对*p写入2。而对*q赋值的时候,编译器认为此时*q的结果就应该是上次*p的值,会优化掉从*p取数的过程,直接把在寄存器中保存的*p的值给*q(PowrPC汇编):
(假设r3=p,r4=q) li
// r5赋值2 stw
// 把r5写到*p stw
// 把r5写到*q
但是如果为p指针加上了volatile关键字,情况就不同了:
volatile int *p; int *q; ......; *p = 1; *p = 2; *q = *p;
在这种情况下,编译器看见*p是volatile的时候,就会:
不对*p操作生成乱序指令(通常如此,具体请看后面的解释)
每次从*p取数据的时候,一定会进行一次访存操作,哪怕前面不久才取过*p的值放在寄存器里。
不合并对*p的写操作(也只是通常如此,解释见后)
所以这回的结果如下(PowrPC汇编):
(假设r3=p,r4=q) li
// r5赋值1 stw
// 把r5写到*p li
// r5赋值2 stw
// 把r5写到*p lwz
// 从*p取值到r5 stw
// 把r5写到*q
这样编译器会在汇编码级别保证指令有序和不优化掉访存操作。通常简单地使用volatile关键字就可以解决编译器的乱序问题,但是这些指令到了处理器执行的时候,仍然可能被乱序。对于处理器乱序执行的避免就需要用到一组内存屏障函数(barrier)了。
绝大多数的编译器,通常不会优化掉对volatile对象的访问,并且通常保持同一个volatile对象的一系列读写操作是有序的(但是不能保证不同的volatile对象之间有序)。
但是,这不是绝对的。因为ANSI C99标准关于对volatile对象访问时编译器是否要绝对保证禁止乱序(reorder)和禁止访问合并(combine access)并没有做任何规定!仅仅是鼓励编译器最好不要去优化对volatile对象的访问,而唯一的强制要求仅仅是要求编译器保证对volatile对象的访问优化不会跨越&sequence point&即可(所谓sequence point是指一些诸如外部函数调用、条件或循环跳转等关键点,具体定义请查阅C99标准内的详细说明)。
这就是说,如果一个编译器在两个sequence point之间像对待普通变量一样去优化volatile变量,也是完全符合C99标准的!比如:
if (...) { ... }
// sequence pointa = 1;a = 2;a = 3;printk("...");
// sequence point
在两个sequence point之间,要是有编译器对a的赋值操作合并(即仅写入3)或者乱序(如写1和写2对调),都是完全符合C99标准的。所以,我们在使用的时候,不能指望用了volatile以后绝对能生成有序的完整的汇编码,即不要指望volatile来保证访存有序。实质上 volatile最大的作用主要还是在保证每次使用从内存中取值,而并不能保证编译器不做其他任何优化(毕竟volatile从字面上看意思是&易变&而不是&有序&。编译器只保证对volatile对象即时更新但不保证访问有序也不是说不过去的)。
从另一个角度看,即使是编译器生成的汇编码有序,处理器也不一定能保证有序。就算编译器生成了有序的汇编码,到了处理器那里也拿不准是不是会按照代码顺序执行。所以就算编译器保证有序了,程序员也还是要往代码里面加内存屏障才能保证绝对访存有序,这倒不如编译器干脆不管算了,因为内存屏障本身就是一个sequence point,加入后已经能够保证编译器也有序。
因此,对于切实是需要保障访存顺序的代码,就算当前使用的编译器能够编译出有序的目标码来,我们也还是必须通过设置内存屏障的方式来保证有序,否则都是不严谨,有隐患的。
Barrier屏障函数
Barrier函数可以在代码中设置屏障,这个屏障可以阻挡编译器的优化,也可以阻挡处理器的优化。
对于编译器来说,设置任何一个屏障都可以保证:
编译器的乱序优化不会跨越屏障,即屏障前后的代码不会乱序;
在屏障后所有对变量或者地址的操作,都会重新从内存中取值(相当于刷新寄存器中的变量副本)。
而对于处理器来说,根据不同的屏障有不同的表现(以下仅仅列举3种最简单的屏障):
读屏障rmb() 处理器对读屏障前后的取数指令(LOAD)能保证有序,但是不一定能保证其他算术指令或者是写指令的有序。对于读指令的执行完成时间也不能保证,即它不能保证在屏障之前的读指令一定都执行完成,只能保证屏障之前的读指令一定能在屏障之后的读指令之前完成。
写屏障wmb() 处理器对屏障前后的写指令(STORE)能保证有序,但是不一定能保证其他算术指令或者是读指令的有序。对于写指令的执行完成时间也不能保证,即它不能保证在屏障之前的写指令一定都执行完成,只能保证屏障之前的写指令一定能在屏障之后的写指令之前完成。
通用内存屏障mb() 处理器保障只有屏障之前的访存操作(包括读写)都完成以后才会执行屏障之后的访存操作。即可以保障读写之间的有序(但是同样无法保证指令完成的时 间)。这种屏障对处理器的执行单元效率产生的负面影响要比单纯用读屏障或者写屏障来的大。比如对于PowerPC来说这种通用屏障通常是使用sync指令实现的,在这种情况下处理器会丢弃所有预取的指令并清空流水线。所以频繁使用内存屏障会降低处理器执行单元的效率。
对于驱动开发者来说,一些对设备寄存器的操作,通常是必须保证有序的。在绝大部分情况下,一般都是写操作。对于有序的写操作,必须设置写屏障(wmb):
例:在驱动中使用写屏障
/* Mask out everything */ im_intctl-&ic_simrh = 0x; im_intctl-&ic_simrl = 0x;
/* Ack everything */ im_intctl-&ic_sipnrh = 0im_intctl-&ic_sipnrl = 0
这是一个对中断控制器操作的例子。在设置两个mask寄存器的值的时候,这两个写操作没有顺序要求,因此可以不加屏障。但是对ack寄存器的设置必须在mask寄存器完成设置以后,所以在中间要加入写屏障wmb()以保证对两组寄存器的写有序。
同样的,对于一系列的只读操作,也可以简单使用rmb()来保证有序。
任何一个rmb()或者wmb()都是可以被替换成mb()的。但是因为上面提到过的mb()的效率问题,所以应该只有在同时需要读屏障和写屏障的时候,才建议使用mb()。否则应该根据实际情况来选择合适的屏障。当然,在设备初始化的时候,即使是使用mb()也不会对性能带来什么影响,因为设备一般只会初始化一次。但是在发生很频繁的设备操作(比如网口的收发帧中断等)时,应该考虑到mb()对性能的影响。
如果驱动不仅仅需要在单纯的读指令或者写指令之间有序,还需要保证读写指令之间有序的时候,就需要设置mb()屏障了。下面将演示一个这样的例子:
例:使用mb()屏障保证读写有序
我们假设有一个设备,在读取设备信息时需要依次对REG1~3这三个寄存器进行写入操作(写入设备读取命令),然后才能依次读取REG4和REG5取得设备返回的信息。
REG1 = wmb();
// 保证REG1和REG2的写有序REG2 = wmb();
// 保证REG2和REG3的写有序REG3 =mb();
// 保证在对设备读之前,前面的配置操作都完成(读写之间有序)*d = REG4; rmb();
// 保证REG4和REG5的读有序*e = REG5;mb();
// 保证与未来对设备的操作有序
对于REG1~3的写入,可以通过设置写屏障来保证有序;
在进行REG4和5的读取之前,因为得保证前面的寄存器写操作都执行完才能读,所以需要设置一个内存屏障mb()来保证前面对寄存器的写都完成,以保障读写指令之间的有序;
后面两个读操作之间就可以通过设置读屏障来保证有序了;
最后通常在从设备操作函数返回之前,我们一般需要保证对设备的操作都执行完毕了。这样下次对设备进行操作的时候我们可以保证设备已经完成了上次操作,避免反复调用设备操作函数带来的函数间的乱序问题。所以在最后设置一个内存屏障mb(),保障和未来对设备的其他访问有序。
进一步阅读
如果还想进一步了解内存屏障的有关信息,特别是关于多处理器系统中的内存屏障,可以阅读:
Linux内核源码附带的《LINUX KERNEL MEMORY BARRIERS》by David Howells
阅读(...) 评论()授人以鱼不如授人以渔——CPU漏洞的Symantec解决之道
<span type="1" blog_id="2061251" userid='
分享到朋友圈
好的文章,和好友一起分享求大神回答卡的问题 多开模拟器显存内存CPU都有剩余为什么还是卡【cpu吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:347,951贴子:
求大神回答卡的问题 多开模拟器显存内存CPU都有剩余为什么还是卡收藏
求大神回答卡的问题 多开模拟器显存内存CPU都有剩余为什么还是卡
东芝为您提供各种微处理器产品.对应您不同场合的需要!
求大神回答卡的问题 多开模拟器显存内存CPU都有剩余为什么还是卡
内存 都剩余很充足 到30多个就卡爆了 为啥
求大神回答卡的问题 多开模拟器显存内存CPU都有剩余为什么还是卡
这个问题有谁能回答呢?首先我遇到2个问题,第一个是火狐浏览器打开分类贴吧的首页,然后挂着它一段时间不动,隔一会再去动它就会发现这个页面变卡了,疯狂滚动它,会发现CPU占用率大幅度上升,这个情况或许是辣鸡贴吧的代码不行,自己不断累积临时数据又不释放。第二个问题是,多开程序下会卡,即使硬盘、CPU和内存都有空余,但是内存虽然有所剩余,但物理内存占用似乎已经达到80%了,不知道为什么到这个时候就卡,难道8G内存实际能用的只有6G吗
苏宁易购,美的品牌,满300减30,满,满,套购送扫地机!「买家电,上苏宁易购」苏宁家电质量问题30天包退,365天包换!
可能是硬盘跟不上吧
系统也可能有问题我之前遇到过这样的情况,重装了一次系统就好了,我发现系统之家,一级其它诸如WIN10 之家之类的系统都存在一些毛病,很难找到一个没问题的
老铁,你没考虑过硬盘吗?
登录百度帐号

我要回帖

更多关于 新东方雅思词汇乱序版 的文章

 

随机推荐