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



如果计算机没有浮点运算能力,系统能正常启动吗? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

以Windows来说吧,Windows7(64位环境),不能。不只是FPU这么简单。

虽然软件可以用整数模拟浮点计算,但绝大多数操作系统还是能用硬件就用硬件,毕竟软件实现起来很麻烦。

对于x86架构的CPU,浮点计算不仅仅是FPU里的FLD之类的指令,像XMM一类的操作也支持浮点,Windows还是会用到这方面的操作的,反汇编一下Windows内核文件就可以看到。

比如Windows的电源管理(入口函数PoInitSystem)就会用到SQRTPS指令,这是一个求平方根的指令,是一个明显的浮点计算,如果硬件不支持,这里肯定要挂。

但这条指令是XMM寄存器的指令(SSE),不是传统的FPU操作。Windows内核里的一堆数学函数(sin、cos)都会用到FPU,所以应该说也是离不开FPU的(好像这类数学函数实际没用到,只是编译进去了)。

所以,对于Windows来说,没浮点计算,答案就是:内核起不起来,系统不能正常工作。内核都没有,别的就更别想了。

当然,如果要求微软编译一个使用软浮点的内核,微软应该是有能力做到的,甚至把整个操作系统都改成软浮点也没问题,只是微软没有这么做而已。

现有的Windows二进制代码,无法直接运行在无浮点功能的硬件上。

如果有源码的情况下,通过修改编译参数,可以编译生成一套完全不依赖浮点的Windows版本。应用层面上,绝大多数软件都可以通过修改编译器参数实现软浮点方式运行(不依赖硬件)。




  

相关话题

  现在越来越多大学生转cs,那计算机专业会不会供大于求? 
  开启分页的x86保护模式和长模式下,操作系统是如何管理分页的? 
  如果未来国内普遍使用鸿蒙操作系统,中国人会不会面临难以接触国外软件(例如游戏)的问题? 
  为什么会有许多人认为C盘太满会影响电脑运行速度? 
  家用电脑装 Linux 系统能否在防止孩子玩游戏的同时满足他们 「查资料」的需求? 
  为什么 Windows 比 Linux 的文件搜索慢很多? 
  将 CPU 主频性能降到极低还能正常运行各种操作系统么?如果不能,会有哪些问题? 
  0.0.0.0和255.255.255.255这两个IP地址到底有啥用? 
  如何看待郑州大学招聘时,将AAAI, CVPR等计算机top会议与中科院四区期刊视为同等价值? 
  如果世界上某种操作系统马上消失,消失哪种操作系统对世界的冲击最大? 

前一个讨论
计算机windows7操作系统到底是属于多用户还是单用户?
下一个讨论
高考为了和她去一所学校少做三道大题有意义吗?





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