百科问答小站 logo
百科问答小站 font logo



将 CPU 主频性能降到极低还能正常运行各种操作系统么?如果不能,会有哪些问题? 第1页

  

user avatar   wu-cai-ze 网友的相关建议: 
      

答案当然是可以,只不过需要进行多处适配,这些坑就是由BSP工程师来踩。

下面就由高到低介绍下不同等效主频下启动linux的效果。

1. 24MHz

几个月前,我抽空从零开始diy了一块简单的cortex-a8水果派(

基于Cortex-A8内核的荔枝Pi_Cortex-A8开发板-打造工程师的专属众筹平台-电子发烧友网

荔枝派概览 - [ Lichee Pi 荔枝派 全流程指南 ] - 看云

),从板级硬件设计,产测,到boot适配,linux,安卓适配等的坑都踩了一遍。

过程中为了调试DDR以及测试在低主频下的功耗情况,就曾把ddr时钟和主频降到了最低的24M.

在24M ddr时钟下我甚至成功用入门级100M带宽示波器生成了眼图…

实测效果是,基本不用做太多适配,系统就能起来,只是速度慢了很多,原本在1g主频下20s不到启动的,现在需要超过五分钟(具体时间忘了,记得的另一个数据是96M时需要122s),而且由于时钟太慢,800*480的屏幕刷新不过来,出现了严重的图像的弹跳/抖动现象,已经无法保证屏幕时序了…不过估计在128*64的点阵屏上还可以 逃(

其实这个感觉有点像关掉icache/dcache的效果,关掉之后连串口终端的回显都不利索了…

看上去在24M时结果并没有什么特别的,只是简单的慢了小几十倍而已…其实这基本就是286的主频了,当年286跑dos不就很流畅吗?

为啥是24M,不能更低了吗?因为我用的芯片的外置晶振就是24M,主频是由它倍频上去,而无法分频…

2. 10KHz

相比前面的降两个数量级,这次直接降三个数量级看看,某些童鞋应该已经猜到这个等效主频是什么情况下的了:

Linux on an 8-bit micro?

对的,就是在本身主频只有24M的八位avr单片机上跑arm模拟器来启动linux,得到的等效主频不到10KHz,看看作者自己的评价:

uARM is certainly no speed demon. It takes about 2 hours to boot to bash prompt ("init=/bin/bash" kernel command line). Then 4 more hours to boot up the entire Ubuntu ("exec init" and then login). Starting X takes a lot longer. The effective emulated CPU speed is about 6.5KHz, which is on par with what you'd expect emulating a 32-bit CPU & MMU on a measly 8-bit micro. Curiously enough, once booted, the system is somewhat usable. You can type a command and get a reply within a minute. That is to say that you can, in fact, use it. I used it to day to format an SD card, for example.

作者博客里还有一些在单片机上写的模拟器,也挺有意思,可以看看。

所以到此我们对于电脑卡有了新的理解,也可以了解到做好系统适配,再慢的u都能跑起来。

因此再看题主的问题就不会觉得有什么奇怪的了。

3. <5Hz

再次降三个数量级,直接到题主的目标频率。

这个是我参考前面的数据估算的等效主频,权当yy吧。

多数人都知道32/64位cpu,了解dos时代的16位cpu,听过八位的单片机,少数人也许也知道更低成本的四位单片机(只能用汇编编程),但要实现数Hz的等效主频,这些都还太快…

其实在dos时代,工控领域还活跃着一朵奇葩: 一位机,以MC14500B为代表。

MC14500B - Wiki

自身主频是100KHz,再加上只有八位机八分之一的带宽,如果在这个一位机上跑avr模拟器,再跑arm模拟器,那等效主频绝对在5Hz以内。

真跑起来的话,可能就需要小半年才跑到init,快一年到login,若干年来startx...

4. mHz

编不下去了…mHz的话,应该MC的红石电路可以吧!那时可能要用一辈子去看linux启动了…

当然不跑模拟器的话,也许能跑到和一位机比肩的速度呢!

5.

其实计算机的发展就是从最开始几十Hz的继电器开始的,把我的答案倒回去看就是计算机发展史啊!

在这个多数人认为是大开脑洞的问题下,却正是半个多世纪前科学家们实际面临的问题,阿波罗登月时代的常规内存甚至不到1KB,就靠这种容量和主频的数字系统(这时都没有真正意义上的cpu),却能够完成登月任务。相比而言,现在程序员们做的压力测试是不是弱爆了…

所以那个时代的程序员多数可以被称为计算机科学家,而现在的程序员多数只能被称为程序员吧 逃 (

---

脑洞风的问题回答很受知乎欢迎呢,被编辑推荐破两百赞了~

就像评论里说的,我不是大V,而是个实战派的自由职业者,不会有太多时间答题,但实战干货还是挺多的,基本上想得到的产品我都能实现。

我也没有时间整个微信公众号什么的,这里就不放二维码了 /斜眼笑

不过业余时间我还是抽空搞了个开源的荔枝派,想交流 嵌入式、IC设计、射频、工业设计、前后端、DL/RL、EA、天文、军工、Lowifi等的朋友可以来本人大水群 荔枝派DIY交流群573832310 来水水。




  

相关话题

  AMD Zen2偶发,Zen3高发的WHEA-18错误,可能是由什么原因造成的? 
  现在手机 SoC 性能大概相当于哪个时代的 PC? 
  ARM 版处理器的 MacBook 推出后,你会选 X86 版还是 ARM 版? 
  迄今为止押宝多核的策略几乎都失败了,为什么开发者如此抵触多核? 
  x86架构CPU的超线程技术是否会长期保持逻辑处理器数量为物理核心两倍的现状?未来可能会怎样发展? 
  如果我们学会了和动物说话,你会第一时间去做什么事? 
  虽然 AMD YES 但现实推荐中,中高端机型绝大部份人还是推 Intel,这是我的错觉吗? 
  Windows 7用的时间久了变慢怎么办? 
  深度学习底层开发对数学有哪些要求? 
  假如你喜欢的人醉倒在你床上, 你会怎么做,? 

前一个讨论
无码编程的思想是否值得推行?
下一个讨论
如何评价艾玛·沃森(Emma Watson)?





© 2024-11-05 - tinynew.org. All Rights Reserved.
© 2024-11-05 - tinynew.org. 保留所有权利