处理器数据处理器对吗

新配的电脑帮我看看CPU和显卡数据对吗?_显卡吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,493,952贴子:
新配的电脑帮我看看CPU和显卡数据对吗?收藏
点击立抢!更多惊喜就在活动会场!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或1153人阅读
软核处理器or1200内部设计分析(40)
以下内容摘自《步步惊芯——软核处理器内部设计分析》一书
& & & 上文中提到过流水线相关的问题,本节将对流水线相关的问题进行说明。流水线中经常有一些被称为“相关”的情况发生,它使得指令序列中下一条指令无法按照设计的时钟周期执行,这些“相关”会降低流水线的性能。流水线中的相关分为三种类型:
& & & (1)结构相关:指令在执行的过程中,由于硬件资源满足不了指令执行的要求,发生硬件资源冲突而产生的相关。比如:指令和数据都共享一个存储器,在某个时钟周期内.流水线既要完成某条指令对存储器中数据的访问操作,又要完成后续指令的取指令操作,这样就会发生存储器访问冲突,产生结构相关。
& & & (2)数据相关:指在流水线中执行的几条指令中,一条指令依赖于前面指令的执行结果。
& & & (3)控制相关:指流水线中的分支指令或者其他需要改写PC的指令造成的相关。
& & & 结构相关、控制相关将在后续指令分析中讨论。本小节重点讨论流水线数据相关的有关情况,同时介绍OR1200中对数据相关的处理方法。流水线数据相关又分为三种情况:RAW、WAR、WAW。
& RAW:Read AfterWrite,假设指令j是指令i后面执行的指令,RAW表示指令i将数据写入寄存器后,指令j才能从这个寄存器读取数据。如果指令j在指令i写入寄存器前尝试读出该寄存器的内容,将得到不正确的数据。& WAR:Write AfterRead,假设指令j是指令i后面执行的指令,WAR表示指令i读出数据后,指令j才能写这个寄存器。& WAW:Write AfterWrite,假设指令j是指令i后面执行的指令,WAW表示指令i将数据写入寄存器后,指令j才能将数据写入这个寄存器。
& & & 对于OR1200处理器而言,这是一个三级流水线的处理器,从前几节对数据处理类指令的分析可知只有在流水线执行阶段才会写寄存器(实际上其余类指令也是一样的),因此不会存在WAW相关,又因为只能在流水线译码阶段读寄存器,所以不存在WAR相关,所以OR1200的流水线只存在RAW相关。在示例代码中就存在RAW相关的问题,如下部分:
l.add r4,r2,r3
l.sfeqi r4,0x1234
& & & 在指令l.add中会写r4,随后的指令l.sfeqi会读出r4的数据进行比较运算,通过前面的分析知道l.add在执行阶段的时序逻辑中写r4,此时l.sfeqi处于译码阶段的时序逻辑,而在l.sfeqi的译码阶段的组合逻辑中已经得到了r4的值,如果得到的是修改前的值,那么l.sfeqi使用这个r4的值进行比较运算就会出现错误。如图4.5所示。使用ModelSim仿真可以更加清晰地认识到这个问题,如图4.6所示。
图4.5 流水线数据相关的示例
图4.6 ModelSim仿真波形呈现的数据相关问题
& & & 解决这种问题的方法有三种:
& & & (1)插入暂停周期:当检测到相关时,在流水线中插入一些暂停周期,如图4.7所示。
图4.7 在流水线中插入暂停周期消除数据相关
& & & (2)编译器调度:编译器检测到相关后,可以改变部分指令的执行顺序,如图4.8所示。此时的流水线情况如图4.9所示。
4.8 编译器通过改变指令执行顺序消除相关
4.9 编译器调度改变指令的执行顺序
& & & (3)数据前推:将计算结果从其产生处直接送到其他指令需要处或所有有需要的功能单元处,避免流水线暂停。在OR1200中l.add在执行阶段的组合逻辑过程中会得到要写入r4的新值,可以直接将该值送入下一条指令l.sfeqi的译码阶段,从而使得l.sfeqi在译码阶段得到r4的新值,如图4.10所示。
图4.10 数据前推解决流水线相关
& & & OR1200就是采用数据前推的方法来解决流水线数据相关的问题。通过补充完善图4.3,添加部分信号使得可以完成数据前推的工作,如图4.11所示。主要是将WB_MUX的输出mux_out直接送入OPERAND_MUX模块的输入ex_forw,在OPERAND_MUX模块中参与ALU操作数的选择过程。
图4.11 mux_out输出到OPERAND_MUX的ex_forw实现数据前推
& & & 假设指令j是指令i后面执行的指令,在指令i执行阶段的组合逻辑中,WB_MUX将要写入目的寄存器的值通过mux_out输出到RF的dataw,同时也输出到OPERAND_MUX的ex_forw。
& & & 指令i处于执行阶段的组合逻辑输出的时候,指令j正处于译码阶段的组合逻辑输出,此时在CTRL模块中会判断指令j与其上一条指令i是否存在数据相关。代码如下:
or1200_ctrl.v
//此时的rf_addrw是指令i要写的目的寄存器序号,rfwb_op[0]为1,
//表示要写目的寄存器,反之不写目的寄存器,id_insn[20:16]是
//指令j需要的源寄存器rA的序号,所以此处就是判断rA是否是指
//令i要写入的寄存器
always @(rf_addrw or id_insn or rfwb_op or wbforw_valid or wb_rfaddrw)
if ((id_insn[20:16] == rf_addrw) && rfwb_op[0])
sel_a = `OR1200_SEL_EX_FORW;
else if ((id_insn[20:16] == wb_rfaddrw) && wbforw_valid)
sel_a = `OR1200_SEL_WB_FORW;
sel_a = `OR1200_SEL_RF;
//此时的rf_addrw是指令i要写的目的寄存器序号,rfwb_op[0]为1,
//表示要写目的寄存器,反之不写目的寄存器,id_insn[15:11]是
//指令j需要的源寄存器rB的序号,所以此处就是判断rB是否是指
//令i要写入的寄存器
always @(rf_addrw or sel_imm or id_insn or rfwb_op or wbforw_valid or wb_rfaddrw)
if (sel_imm)
sel_b = `OR1200_SEL_IMM;
else if ((id_insn[15:11] == rf_addrw) && rfwb_op[0])
sel_b = `OR1200_SEL_EX_FORW;
else if ((id_insn[15:11] == wb_rfaddrw) && wbforw_valid)
sel_b = `OR1200_SEL_WB_FORW;
sel_b = `OR1200_SEL_RF;
& & & 如果指令i要写目的寄存器,且指令i的目的寄存器就是指令j的源寄存器rA或者rB,则会使得sel_a或者sel_b为OR1200_SEL_EX_FORW,参考图4.11可知sel_a、sel_b都输出到OPERAND_MUX模块,后者会依据sel_a、sel_b的值选择ALU的操作数,代码如下:
or1200_operandmuxes.v
always @(ex_forw or wb_forw or rf_dataa or sel_a) begin
casez (sel_a) // synopsys parallel_case
//如果指令j需要读取的寄存器rA正是指令i要写的目的寄存器,
//那么就直接把要写入的值赋给muxed_a
`OR1200_SEL_EX_FORW:
muxed_a = ex_
`OR1200_SEL_WB_FORW:
muxed_a = wb_
muxed_a = rf_
//rf_dataa是从RF的rf_a中读出的寄存器值
// Forwarding logic for operand B register
always @(simm or ex_forw or wb_forw or rf_datab or sel_b) begin
casez (sel_b) // synopsys parallel_case
`OR1200_SEL_IMM:
//如果指令j需要读取的寄存器rB正是指令i要写的目的寄存器,
//那么就直接把要写入的值赋给muxed_b
`OR1200_SEL_EX_FORW:
muxed_b = ex_
`OR1200_SEL_WB_FORW:
muxed_b = wb_
muxed_b = rf_ //rf_datab是从RF的rf_b中读出的寄存器值
& & & 而此时OPERAND_MUX模块的输入ex_forw正是WB_MUX的输出muxout,也就是指令i要写的目的寄存器的新值。从而实现了数据前推,解决了流水线数据相关问题。图4.12显示的是ModelSim仿真呈现的OR1200处理器数据相关的解决步骤。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:224308次
积分:3580
积分:3580
排名:第8429名
原创:126篇
转载:12篇
评论:152条
(4)(2)(4)(2)(2)(8)(2)(3)(1)(6)(1)(4)(8)(13)(13)(19)(11)(8)(8)(12)(2)(1)(1)(1)(1)(1)(1)2016第三届物联网大会
智能后视镜产品方案对接会
中国LED智能照明高峰论坛
第三届·无线通信技术研讨会
第二届·中国IoT大会
ETFo智能安防技术论坛
移入鼠标可放大二维码
数据解析:手机处理器那么多核心到底有啥必要 - 全文
来源:cnBeta 作者:佚名日 09:34
[导读] 桌面平台上,多核心处理器大多采用了相同的架构,但是在移动SoC上,大多数制造商都选择了ARM的big.LITTLE方案,即多个低性能核心+少量高性能核心。
  桌面计算机的多核处理器已经发展了多年,并且一路走过了双核、四核,甚至六核、八核。智能手机的历史也有点类似,虽然起步较晚,但是在大约5年前,我们先是看到了基于ARM架构的双核节能处理器,然后4、6、8、甚至更多核心的又冒了出来。与台式处理器不同的是,移动 SoC走上了稍有些不一样的道路。
  桌面平台上,多核心处理器大多采用了相同的架构,但是在移动SoC上,大多数制造商都选择了ARM的big.LITTLE方案,即多个低性能核心+少量高性能核心。
  移动SoC对于功耗更加敏感,当然也有些例外,比如某些8核SoC支持异构多处理(HMP)技术,能够同时启用不同架构的全部核心。
  多核心与多处理,显然还需要操作系统和应用软件的支持。具体到Linux、Windows、OS X、以及Android OS,它们都有着不同的调度方式。
  在&核心大战&打得火热的时候,也有人提出了一些理性的质疑,比如那么多的核心是否真有必要。显然,要评估这一点,我们不能只看某兔跑分,还应该拿日常使用的app来测试一番。
  以热门的Android系统为例,外媒Android Authority特地对Chrome、Gmail、YouTube、Riptide GP2、以及Temple Run 2等应用和游戏进行了实地评测。
  首先来看一下Chrome(分别在四核高通骁龙801和八核高通骁龙615设备上执行):
  这是四核模式下的Chrome浏览器(核心活跃度)。
  四核模式下的Chrome浏览器(CPU平均使用率)。
  八核模式下的Chrome浏览器(核心活跃度)。
  八核模式下的Chrome浏览器(CPU平均使用率)。
  需要指出的是,骁龙615是一款big.LITTLE处理器,所以核心调度的表现有些与众不同。当然,额外的核心是出于能源效率方面的考虑,而不是性能。
  下面是其它应用程序的多核SoC使用情况:
  上图为闲置时的八核SoC平台(手机屏幕点亮,但无其它操作)。
  上图为在四核SoC平台上运行YouTube应用时的表现。
  上图为在八核SoC平台上运行YouTube应用时的表现。
  上图为在四核SoC平台上运行《神庙逃亡2》时的表现。
  上图为在八核SoC平台上运行《神庙逃亡2》时的表现。
  上图为在MTK八核SoC平台上运行《神庙逃亡2》时的表现。
  上图为在四核SoC平台上运行Gmail应用时的表现。
  上图为在八核SoC平台上运行Gmail应用时的表现。
  上图为在四核SoC平台上运行《激流快艇2》游戏时的表现。
  上图为在八核SoC平台上运行《激流快艇2》游戏时的表现。
  & 比较有趣的是,在八核SoC平台上运行《安兔兔评测》的时候,我们看到的情况是这样的。
  &《史诗城堡》(Epic Citadel)在八核SoC平台上的 big vs LITTLE 表现。&
  总结:轻量应用是否需要用到全部8个SoC核心?
  ① 需要事先声明的是,上述评测不能完全反映用户的实际使用情况,而且测试中也没有遇到有啥app能够彻底榨干SoC八个核心性能(100%使用率)的例子。
  ② 此外,我们也没能够在Cortex-A53 / Cortex-A57或Cortex-A53 / Cortex-A72的平台上运行同样的测试,而高通骁龙615则是一款采用了四核1.7GHz(Cortex-A53)+四核 1.0GHz(Cortex-A53)的集群的处理器。
  ③ 上述统计数据的扫描间隔为大约1/3秒(330ms左右),所以曲线图表中可能会出现几个核心均汇报使用率为25%(或其它相同数值)、但实际可能在150ms的时间内只有一颗核心达到了25%的情况。
  言而总之,Android应用确实能够利用多个处理器核心,并在高负载时发挥big.LITTLE架构的巨大优势。如果有人在一旁吹风说&那么多核心没必要&,那你大可在对设备功耗、发热、以及续航都满意的情况下,猛力地回击一句&不服跑个分&?
如今,物联网浪潮已然席卷至汽车电子产业,发动机控制系统、底盘控制系统和车身电子控制系统已模型初显,安全...
ADAS市场或破千亿
国产汽车雷达将爆发
抢占智能汽车制高点
为自动驾驶保驾护航
电动汽车面临的挑战
Android相关文章
Android相关下载
智能手机相关文章
智能手机相关下载
ARM相关文章
ARM相关下载
处理器相关文章
处理器相关下载
同伟总结,物联网将创造巨大的市场商机,只是物联网的市场属性过于分散,而且有太多标准规范。因此要了解物联网的市场潜力,就必须通过创新来驱动...
MathWorks中国有限公司资深应用工程师陈建平表示:“2015年80%的公司开始认识到大数据对公司未来发展的重要性,38%的公司认为非常重要,而2014年的比例分...
创新实用技术专题
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-

我要回帖

更多关于 牛牛数据处理器的教程 的文章

 

随机推荐