smp 双核处理器的访问内存的顺序

小陆zi 2013-06-11 02:47:26
hi 大家好:

有个问题想不明白,希望可以得到大家的帮助。

前提是:硬件提供两个cpu。那么当两个cpu同时想要通过总线去访问sdram。那么这个时候是哪个cpu先得到总线控制权?这个有先后吗。假设第一个cpu{0}得到了控制权,在某几个clk访问了sdram。那么同时,在这几个clk之中,另外一个cpu{1}是在等待状态?
这样看来如果使用双核或者多核,其实在和外设读取的时候也是顺序执行的,而不是并行的。我这样理解对吗?

谢谢。
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小陆zi 2013-06-21
  • 打赏
  • 举报
回复
感谢回复。最近公司鸟事一堆...... 假设流水线是:取指 译码 执行 分为三步。(个人理解,欢迎讨论) 第一步 可能和总线上的设备交互(指令存储在外设上) 第二步 指令送入cpu内部(译码器) 第三步 指令处理(这里我觉的可能和外设交互了,应为取决于wback还是wthrough的模式) 假设cpu[0]和cpu[1]同时处于第一步这个状态,那么两个cpu中的一个会取得控制权,从而去运行。那么这个时候只有等到两个中的一个从第一步的返回后,另外一个才可能去取指。那么等待其中以个cpu返回的时间中,另外一个cpu只能处于等待状态。 楼上的两位描述的情况我觉的 是在交错的情况下发生。比如cpu[0]在第一步 cpu[1]在第二部。那么两个cpu运行所需要的对象不再同一个设备上,那么无需等待。 最近上班之余看了一写相关的书籍 叫做 “指令预测” 这是不是就是尽量让两个cpu不要处于同时等待的状态? 谢谢 望回复。
DDR2013 2013-06-15
  • 打赏
  • 举报
回复
另外的cpu做其他事,不会等的。
SLZ2011 2013-06-15
  • 打赏
  • 举报
回复
cpu[0] cpu[1] 同时申请总线,假设仲裁后cpu[0]得到了总线控制权,然后cpu[0]控制总线进行取指令,cpu[0]取完指令后放弃总线控制权进行指令解析,同时cpu[1]获得总线控制权,然后cpu[1]进行取指.... 这不并行了?

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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