返回列表 发帖

提高CPU的频率造成死机的原因分析

提高CPU的频率造成死机的原因分析

好文章,客户经常会问这个问题,这个帖子和我的想法差不多,证明我还是能忽悠客户的,哈哈。
---osboy



软硬件高手,这个问题困惑我好久了,麻烦各位分析下原因,shuiyan也能帮忙分析下吗?

问题是这样的:
我们采用的三星的S3C2450平台,做的CMMB电视,处理器跑400M时没见有问题,跑533M后,播放音视频没问题,
但是通过电视播放器收看CMMB电视后会死机,死机时间距播放开始的时间不等,有时间播放后半小时死,有时候
几个小时死,不知道大家有没这方面的经验?

————————————————————

shuiyan:

三星的只用过2410、2440、2443,更高的只调研过6400,对2450没有碰过,没有经验。
“调频”这个动作只在xscale的pxa270/pxa3xx上做过,估计要碰到问题的话都差不多。

1. 提升核心频率后,运行时间过长,系统发热,尤其是CPU,而散热措施不够,导致不规律的死机、重启。

2. 提升了核心频率,但没有同步增加CPU核心的供电电压,导致CPU以低频的电压推动高频的运转,相当于“摩托骡拉”,系统会无规律死机。

3. 确保了核心电压,确保了系统散热,还有个关键问题:确保CPU的型号是533MHz的,而不是400MHz的,从订货型号、CPU正面的MASK标志上可以判断出来。datasheet说2450 support 400MHz/533MHz,并不是说每颗2450都支持,而是根据你的需要来提供的。
产线上按照533MHz的进行流水线生产,但是总是会有次品无法达到533MHz的标准,那么这些货能通过400MHz的测试的话,就会按照400MHz的进行出货,能通过533MHz测试的,就按照高频的出货。两者价格是不同的。

之前做PXA270,最常用的是416MHz,最高的是624MHz,但是624MHz的比416MHz的贵$3-5。一般用416MHz超频跑624MHz,有的能行,有的不稳定,有的直接不启。
而现在用PXA3xx,可以确保每颗都是624MHz的,这是工艺提升的原因。

其实,400->500,这个就类似PC上的“超频”了,当然是指“内频”超频。

AMD首先推出1GHz的CPU,Intel赶紧跟着推出,但是运行总是死机,分析出来其实是888MHz的CPU超频后的产品,自然不稳定。

——————————————————————————————————

非常感谢shuiyan大侠,以及其他大侠的回答,shuiyan大侠一语到了点子上!

1. 提升核心频率后,运行时间过长,系统发热,尤其是CPU,而散热措施不够,导致不规律的死机、重启。

我们测试机器没有装壳,散热它再热不至于要用风扇吧,core跑533后其工作电流是一百多个毫安,个人觉得因散热措施不够可能性不大。

2. 提升了核心频率,但没有同步增加CPU核心的供电电压,导致CPU以低频的电压推动高频的运转,相当于“摩托骡拉”,系统会无规律死机。

2450处理器,三星推荐的是跑400M时,core,mpll,epll,interface都供1.2V电压,
                          500M时,core供1.275到1.375V电压,mpll,epll,interface供1.2V电压。

这里为了省成本,我们将core,mpll,epll,interface的电源直接连到一起,通过一个1.3V的DC-DC连到一起了。也就是说core在推荐电压范围,
但是mpll,epll,interface已经超过了规定范围,如果需要调整成推荐范围得改板,这样周期会比较长,个人觉得这里影响应该不会那么大,但是
也绝不排除不是这里的可能性。不知道这地方您有没经验?

3. 确保了核心电压,确保了系统散热,还有个关键问题:确保CPU的型号是533MHz的,而不是400MHz的,从订货型号、CPU正面的MASK标志上可以判断出来。datasheet说2450 support 400MHz/533MHz,并不是说每颗2450都支持,而是根据你的需要来提供的。
产线上按照533MHz的进行流水线生产,但是总是会有次品无法达到533MHz的标准,那么这些货能通过400MHz的测试的话,就会按照400MHz的进行出货,能通过533MHz测试的,就按照高频的出货。两者价格是不同的。

可以确保型号是533MHZ的,芯片的尾缀是-53.我们也有用270做的,跑的是416M,只是我们这里用533M播放视频会更流畅,反应速度会更快,不跑533M就不怎么体现出2450的优点了,还不如用回2440.

不知道DMA是否对死机有影响,播放电视时用到了一路DMA

———————————————————————————

shuiyan:

2部分,我们刚做270板子,买的是416MHz的CPU,eboot部分初始化成了624MHz,而外部供电是按416MHz给的,导致有的板子跑的顺利,有的跑不起来,有的USB下载不稳定,有的跑一段就死,有的正常应用没关系,放视频一会儿就死。总之情况各异。调整了频率后就正常了。

你400MHz时是否用CMMB播放电视了?如果没有可以试着在400MHz放电视看是否会死机,以此可以排除DMA的问题。

———————————————————————————

400M可以播电视而且不会死机,如果频率上升到533M DMA同样能够健壮的播放?今晚开了几台机,有些改了DMA的通道,有些不采用DMA播放在测试,之前通过N种方法尝试硬件的改变,只是mpll,epll,core电压无法分开,一直没有结果,eboot和NK的频率是可以保证都是533的。有两台比较特别,将原来DC-DC的外围电感换成功率电感,能够耐流1A的电感之后, 一台播了近20个小时没死,第二天重测,过半小时死一次,变的就是测试的位置以及电源,另一台播了一晚上没死,第二天测试几个小时后同样死机了,问题相当的怪异

———————————————————————————

shuiyan:

400M下使用DMA和不使用DMA都试过?
533M下播放同样的源,应该更轻松才对。
如果你们的测试用例完整,结果无遗漏,而你的描述没偏差,那么从经验判断,软件相关造成死机的可能性不大。可以看看各个clk是否正确,毕竟核心频率上升了,对应的分频系数也应该修改的。

DC-DC的纹波会有50mV-100mV,而且还有输出精度(具体要看DC-DC资料),可能会接近下限值,导致CPU运行在一种临界状态。用示波器测一下最大、最小值,还有峰峰值。

难道原来用的不是电源用功率电感吗?

——————————————————

之前用的电感耐流只有一百MA的,昨天测试了两台不采用DMA播放电视的,一台播了一天一夜没死,另外一台播了一天没死,但是采用DMA方式的死了,问题应该与电源有很大关系,就是不知道具体什么原因,
至于画PCB的问题,也不是不可能,已经重画PCB打板,现有的还在调,找原因,示波器测过了工作电压都是正常的
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

返回列表
网页右侧QQ悬浮滚动在线客服
网页右侧QQ悬浮滚动在线客服