EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 多核cpu的原理 [打印本页]

作者: fengzhepianzhou    时间: 2013-6-7 21:06
标题: 多核cpu的原理
我们知道,上电后,cpu主动去读取地址0的指令,然后就可以顺序执行下去,问题是,在多核情况下,一方面是哪个核去读取地址0的指令,然后,在什么情况下,cpu2也去读取指令?还是说cpu1设置什么东西后cpu2就知道该去读取哪个地址?希望知道的人讨论下
作者: newnewsitter    时间: 2013-6-8 16:14
通过比较CPU ID,决定执行哪些代码
作者: fengzhepianzhou    时间: 2013-6-8 18:42
这位兄台能否说的再具体些
作者: feixiaku    时间: 2013-6-11 11:36
学习了~~~~~~~~
作者: newnewsitter    时间: 2013-6-21 17:31
SMP架构的CPU,每个核看到的是同一份代码,只不过程序中通过CPU ID来判断哪个核执行哪些代码
作者: fengzhepianzhou    时间: 2013-6-23 19:41
这兄台有点误解啊,程序是放在memory里面,cpu是主角,平时某个cpu核呆着,然后是不是等个中断什么的,开始去处理中断,这个时候开始读取memory里面的程序呢?
作者: newnewsitter    时间: 2013-6-24 00:04


   
这兄台有点误解啊,程序是放在memory里面,cpu是主角,平时某个cpu核呆着,然后是不是等个中断什么的,开始 ...
fengzhepianzhou 发表于 2013-6-23 19:41




   中断是如何处理的?不也是执行中断服务程序吗?归根到底还是运行程序啊!程序我说了,每个CPU看到的都是相同的代码。
作者: starsoi    时间: 2013-6-24 04:55
是先有其中一个核进行各种系统初始化,比如BIOS和载入操作系统内核(或者是你说的读RESET地址的代码),然后再初始化别的核,别的核执行哪些代码由操作系统来决定
可以参考下:http://www.linux-arm.org/LinuxBootLoader/SMPBoot 中的 ARM Linux 是怎么启动的。
还有这本Intel manual的8.4节MULTIPLE-PROCESSOR (MP) INITIALIZATION: http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf
作者: if1302    时间: 2013-6-28 09:13
回复 4# feixiaku


    学习
作者: matlinsas    时间: 2013-7-13 16:43
我觉得newnewsitter说的是对的。
就想我现在看的一个硬件多核多线程处理器的代码。
是通过CPU ID 和 Strand ID 来判断 CPU和线程号来执行程序的。程序是相同的。
作者: hengtze    时间: 2013-8-18 22:11
各个Core看到的Code是相同的,Code中可以添加CPU ID区分让不同的Core执行。
作者: 阿基里奥斯    时间: 2013-8-22 19:58
如果按CPU ID判断,那每个核岂不是要取到不属于自己的指令?
作者: 2ki    时间: 2013-8-28 23:31
mips可以指定启动地址,第一个核由硬件启动,启动后可以引导其他核启动。
作者: szminq    时间: 2014-2-28 10:09
准备搞双核设计,学习中
作者: zzbook    时间: 2014-3-18 10:09
受教了
作者: zzbook    时间: 2014-3-18 10:14
受教了
作者: zzbook    时间: 2014-3-18 10:15
受教了
作者: zzbook    时间: 2014-3-18 10:18
受教了
作者: zzbook    时间: 2014-3-18 10:18
受教了
作者: fengzhepianzhou    时间: 2014-7-20 14:10
本帖最后由 fengzhepianzhou 于 2014-7-20 14:19 编辑

摘录:http://blog.csdn.net/qianlong4526888/article/details/27695173
在bootloader启动时,会判断执行代码的是否为CPU0,如果不是,则执行wfe等待CPU0发出sev指令唤醒。如果是CPU0,则继续进行初始化工作。看来我误解那位了
作者: realjason    时间: 2014-7-20 23:58
不错的东西  学习了
作者: ibubapa    时间: 2018-7-30 11:11
thanks




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5