首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于X86处理器的问题

关于X86处理器的问题
EN

Stack Overflow用户
提问于 2011-03-29 11:51:56
回答 4查看 415关注 0票数 1

我有两个关于X86处理器的问题。

首先:什么是SSE?它是用来做什么的?它是CISC架构吗?一个不会用汇编语言编程,也不会学习程序编译器的程序员应该学习SSE吗?

第二:64位处理器支持32位处理器。如果64位处理器取代了32位处理器,程序员是否应该为32位编写使用少于2 GB RAM的应用程序?32位应用程序使用的内存更少,它的二进制文件也更小。操作系统必须存储32位和64位共享库,这可能是一个问题。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-29 12:08:25

嘿,在回答这个问题的时候,它被迁移到超级用户,然后被删除了,现在它似乎神奇地又回到了这里。第三次尝试是魅力!

我不太精通SSE,但它是一种在每个时钟周期内并行操作多个数据集的机制。(较旧的芯片在每个周期内留下惊人数量的空闲硅片;芯片在每个周期内独立执行多个指令的能力变得更好,但它涉及大量的猜测工作,并且在一些数据密集型算法上完全失败。)因此,SSE借鉴了旧的SIMD系统,它允许对多个数据片段执行相同的命令。设置时间可能会更长,但从长远来看,它完成了很多工作。

根据您试图完成的任务,它可以使用make a huge difference,但大多数程序员可能永远不需要SSE提供的工具。

至于在64位进程上执行32位进程来节省内存,这是一个真正的可能性。但是当AMD第一次引入x86-64指令集时,他们非常小心地指出了新的指令和额外的寄存器,这些指令和额外的寄存器可以提高不会耗尽地址空间或执行许多64位算术操作的任务的性能。他们提到,大多数人可能希望大多数代码在64位模式下执行,但在大多数情况下,性能加速将是微妙的。

因此,除了Firefox和Flash之外,64位是无处不在的,而且由于指针较大而导致的内存扩展似乎不是什么大问题。

票数 0
EN

Stack Overflow用户

发布于 2011-03-29 11:57:55

SSE是英特尔对单指令多数据的实现。在同一时间对多个值执行相同的操作,以加快速度。如果你做一些繁重的数值计算工作,特别是图像处理,它可能值得一看-尽管库可能已经做了,而且为了真正的bang/buck,你可以学习Cuda/openCL。

32/64位非常复杂,并且特定于操作系统/编译器。64位代码的空间开销很大--在64位操作系统上使用32位构建可能会有一些优势。但很多原因都是由于指针大小之外的操作系统原因-例如,需要在64位版本上进行签名构建。

票数 1
EN

Stack Overflow用户

发布于 2011-03-29 12:03:06

你可以读到关于

  1. here的文章。老实说,如果你不是在使用ASM或做大量的媒体工作,你可能不需要知道任何关于它的东西(即使这样,让你的编译器为你做优化可能是最好的)。
  2. 并不是所有的64位处理器都支持32位指令。现代64位PC处理器确实支持32位指令。您可以阅读有关该here的更多信息。您对发布64位和32位二进制文件有什么担忧?这完全取决于您的客户需要/想要什么。的确,64位二进制文件的大小往往更大。你的程序是否真的需要64位是你的决定。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5467704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档