百科问答小站 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 来水水。




  

相关话题

  如何评价 Midori(Operating System)? 
  为什么编程更关注内存而很少关注CPU? 
  打印机使用什么系统?自己开发的系统?还是Windows系统? 
  CPU 为什么那么多引脚?都是什么作用的? 
  如何看待「鸿蒙系统一夜之间拥有 57 万个 App」这一说法? 
  为什么手机上的芯片制作工艺超过了电脑上的cpu和显卡? 
  为什么市面上没有山寨的 CPU 卖? 
  鸿蒙之于AOSP,是否Linux之于wine,Windows之于WSL?这么多人质疑鸿蒙说明了什么? 
  如何不依赖任何外界现成软件和其他计算机设备运行没安装操作系统的电脑? 
  为什么 KaiOS 超越 iOS 成为印度第二大移动操作系统? 

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





© 2025-04-22 - tinynew.org. All Rights Reserved.
© 2025-04-22 - tinynew.org. 保留所有权利