组成原理的一个小疑问

hefa 2013-09-13 11:17:49
我电脑cpu是Intel(R) Core(TM)2 Quad 64位的,意思应该就是数据总线是64根吧?64位意思是cpu可以同时处理一个64bit的数。
我的问题是:按理说在c中cpu可以将一个long long类型(64bit)的数以原操作的方式存入内存。应该是这样吧?但是我的实验的结果是,存一个64bit的数,cpu还是分了两步,第一步是先存高32位,第二步再存低32位,为什么会是这种结果?按道理说cpu一次就可以完成这个功能的呀?
希望哪位大神能详细的解释一下,谢谢
...全文
123 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hefa 2013-09-14
  • 打赏
  • 举报
回复
引用 9 楼 lbing7 的回复:
有用64位下的指令么?
这个我不太清楚,我使用的是gcc编译,gcc显示我的目标代码是x86_64的,我用的c,实现过程仅仅是开两个线程同时写一个long long的数,结果写完之后会出现四种结果,我猜,原因是线程写long long时分了两步,第一步写高32位,第二步写低32位,但是在写的过程中被另一个线程中断了,所以产生了四种结果,一直纳闷,为什么??
hefa 2013-09-13
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
你的OS是64位的吗? 你的测试程序时64位的吗?
忘说了,os是64的
hefa 2013-09-13
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
你的OS是64位的吗? 你的测试程序时64位的吗?
OS是redhat enterprise linux 6.2,至于测试程序是不是64位的,我不知道啊,我还不知道怎么编64位的应用程序,gcc的version是4.4.6
青松2 2013-09-13
  • 打赏
  • 举报
回复
你的OS是64位的吗? 你的测试程序时64位的吗?
lbing7 2013-09-13
  • 打赏
  • 举报
回复
有用64位下的指令么?
流型 2013-09-13
  • 打赏
  • 举报
回复
引用 7 楼 he_fa 的回复:
引用 6 楼 guojing3625 的回复:
我猜是不是你的cpu内部是2个32位的小cpu集成的呢
我cpu四核的,感觉配置应该不会太水
我理解错了,这是我百度到的,分享一下 双核与64位,不光与CPU还有芯片组有关,最重要的还是芯片组,芯片组不支持,还是不能运行在64位的。但是芯片组支持64位,上一颗32位的CPU照样能在32位下用。如果芯片组支持32位,不支持64位,上一颗64位的CPU,那就不可能开机的!还有一个问题,就是BIOS也要支持,BIOS不支持的话,你的64位CPU运行在32位状态你都还不知道呢! 看来大家对双核和64位有点混淆!先搞清楚几个问题; 1、双核问题 核就是CPU的物理内核,实际通过半导体工艺作出来的。双核就是两个核,分为两种 一种是真正的双核也就是CPU中有两个物理内核,另外一种是伪双核,它带有HT技术(超线呈技术),实际上只有一个物理内核。 2、64位问题 64位时针对CPU读取和处理数据的能力的衡量,64位的读进来,64位的处理,64位的送出去。 所以双核不一定是64位,64位不一定是双核,因为单核的也有64位的。
hefa 2013-09-13
  • 打赏
  • 举报
回复
引用 6 楼 guojing3625 的回复:
我猜是不是你的cpu内部是2个32位的小cpu集成的呢
我cpu四核的,感觉配置应该不会太水
流型 2013-09-13
  • 打赏
  • 举报
回复
我猜是不是你的cpu内部是2个32位的小cpu集成的呢
hefa 2013-09-13
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
可能 你这个变量 没在 64 的边界。
额,感觉这个解释很牵强
schlafenhamster 2013-09-13
  • 打赏
  • 举报
回复
可能 你这个变量 没在 64 的边界。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧