LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 18679|回复: 34

[体系结构]64bit 究竟比 32bit 快在哪里?

[复制链接]
发表于 2006-10-14 20:28:58 | 显示全部楼层 |阅读模式
遗憾小弟不是计算机专业,没有深入研究过cpu,所以目前只是知道在寻址上,64bit有先天优势,但是在4G以下内存的系统上无用武之地。
那么在执行程序上,究竟64bit比32bit优异在哪里呢?是不是每个时钟周期可以多执行几个指令什么的?
发表于 2006-10-14 21:06:03 | 显示全部楼层
数据单位吞吐量大一些, 所以批量处理一些数据有优势, 这在3D及视频类上会有很高的性能提升吧?
回复 支持 反对

使用道具 举报

发表于 2006-10-16 09:37:29 | 显示全部楼层
单纯讨论64和32意义不大吧,64和32只涉及到4G内存问题,基本上就是指针的长度问题。
回复 支持 反对

使用道具 举报

发表于 2006-10-16 13:30:01 | 显示全部楼层
我觉得64位上,寄存器也都是64位的了,这样可以直接处理64位的数据,这方面也能快一些。前题是软件编译完后能够用上的64位的新东西。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-16 14:55:19 | 显示全部楼层
Post by kingduanlian
我觉得64位上,寄存器也都是64位的了,这样可以直接处理64位的数据,这方面也能快一些。前题是软件编译完后能够用上的64位的新东西。

嗯,有道理,64位的cpu确实比32位的增加了几个64位的寄存器。
只不过工作在32位模式下的时候,这些寄存器被关闭了而已。
我其实也一直在纳闷:用到 long long 类型的程序好像并不多啊!
另外纳闷的是 int 类型在64位cpu上是不是64位?如果是,那么long类型呢?
这么说岂不是 int = long = long long ,呵呵,多没意思
回复 支持 反对

使用道具 举报

发表于 2006-10-16 21:25:52 | 显示全部楼层
it seems like that 64 bit is not  better than 32 bit .Is that true?
回复 支持 反对

使用道具 举报

发表于 2006-10-16 23:51:25 | 显示全部楼层
64位整数乘64位整数,在64位CPU上一条乘法指令就可以了;在32位CPU上至少3次乘法和若干次加法。所以涉及这种运算的话,64位比32位CPU快了接近3倍。

事实上用OpenSSL跑一下RSA的benchmark就知道64位在这类应用上的优势了。
回复 支持 反对

使用道具 举报

发表于 2006-10-17 01:07:08 | 显示全部楼层
Post by csfrank
嗯,有道理,64位的cpu确实比32位的增加了几个64位的寄存器。
只不过工作在32位模式下的时候,这些寄存器被关闭了而已。
我其实也一直在纳闷:用到 long long 类型的程序好像并不多啊!
另外纳闷的是 int 类型在64位cpu上是不是64位?如果是,那么long类型呢?
这么说岂不是 int = long = long long ,呵呵,多没意思


In fact, sizeof(int)=4 and sizeof(long)=8 on gcc
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-17 07:50:19 | 显示全部楼层
Post by hendric
In fact, sizeof(int)=4 and sizeof(long)=8 on gcc
:eek:
then what about sizeof(long long)??
16?:p :p
回复 支持 反对

使用道具 举报

发表于 2006-10-17 08:50:21 | 显示全部楼层
Post by csfrank
嗯,有道理,64位的cpu确实比32位的增加了几个64位的寄存器。
只不过工作在32位模式下的时候,这些寄存器被关闭了而已。
我其实也一直在纳闷:用到 long long 类型的程序好像并不多啊!
另外纳闷的是 int 类型在64位cpu上是不是64位?如果是,那么long类型呢?
这么说岂不是 int = long = long long ,呵呵,多没意思


编译方面我就不懂了,只能希望于64位的普及吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表