免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4502 | 回复: 1
打印 上一主题 下一主题

双核CPU是怎么工作的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-07 10:32 |显示全部楼层 |倒序浏览
hi,all,我们公司从单核换成了双核,我搞不明白原理,不清楚在实际编程时需要注意些什么,内核是linux3.0
我想知道从取指译码访存执行写回这方面双核CPU是怎么相互工作的,看到说市面上有2种INTEL和AMD的,随便哪种都行。或者其实如果能解释ARM的最好。
或者如果能从单CPU中不会调度的一段代码来说,双核在运行过程中是什么时候切换?一段代码在双核里怎么分配来执行?
能否简单讲解一下,或者提供详细描述文档的链接?或者哪个CPU手册会详细讲解到?
谢谢大家

还有一个疑问,如果单CPU不带cache的话,每次都要访存,那么RAM的速度比CPU慢很多,多CPU不是也没有用吗,如果每个CPU都带cache,那么2个cache怎么同步?

论坛徽章:
0
2 [报告]
发表于 2012-05-07 20:31 |显示全部楼层
回复 2# garyv
   
问了同事,更新一下
同事A说:该CPU双核ARM A9共用一个cache,在线程调度时做CPU切换,并没有特殊指令做切换,在什么命令附带下切换也不知道。代码也不能绑定到一个CPU上指令。用spin_lock可解决多CPU问题,否则出现中断就会让代码中(读寄存器->改值->写寄存器)这类顺序打断并写错值。或关中断。
同事B说:可以绑定,还说负载均衡是CPU自己做的。
但是大家都没文档,回答起来也不觉得有什么依据。
如果一个CPU执行一条线程,那另一个CPU不是白费了,越久切换不是越浪费吗。这和单核有什么差别?如果不考虑流水线,一时也只有一个CPU在执行
说icache和CPU速度差不多,那么每次取指都要访问icache,即使CPU0,1执行指令是1,3,5,2,4,6这样交叉,都受cache速度影响,另一个CPU也是浪费了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP