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




  

相关话题

  为何现在的手机芯片已经进入7nm时代,而pc芯片却大多还在10nm甚至14nm上? 
  如果从来不用IE,还有必要打上微软发布的IE安全补丁么? 
  操作系统中到底是谁分配的资源? 
  请教各位fused multiply–add (FMA)的前景以及重要性如何? 
  微处理器系统结构与嵌入式系统设计教材推荐? 
  多核 CPU 和多个 CPU 有何区别? 
  2021年操作系统设计与实现研讨会(OSDI)有哪些值得关注的文章? 
  为什么总有人极力推荐使用命令行操作而非图形界面? 
  SpaceX 龙飞船中的新触控交互操作系统,意味着什么? 
  macOS 和 MacBook 的缺点是什么? 

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





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利