由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 问个delayed branch的问题
相关主题
ML和WSN方向比较 (phd), wsn业界工作是不是很难找?VLDB 2007 Accepted Papers
从decision tree各个branch path中抽取出的rule 如何评价其有效性?sigmod09挂了
求下载一篇ieee和一篇springerPython script 用来抓MITBBS一个版
请教一个概率问题 (转载)SUTD-MIT Postdoctoral Programme
请教矩阵计算谁能帮我下载一篇文章 (ICDM 2011)?
谁有Mario Martin 的SVM Incremental Regression 包update on Niu Ren ..
about ART (Adaptive Resonance Theory)Delay differential equation 中文啥意思啊?
++ a faster or a++ faster in C?问个delayed branch的问题
相关话题的讨论汇总
话题: rx话题: ry话题: delayed话题: load话题: branch
进入CS版参与讨论
1 (共1页)
l******y
发帖数: 204
1
Computer Architecture的一个问题
话说有这么一个Scalar MIPS code for DAXPY (aX + Y):
L.D F0,a ;load scalar a
DADDIU R4,Rx,#392 ;last address to load
Loop: L.D F2,0(Rx) ;load X(i)
MUL.D F2,F2,F0 ;a × X(i)
L.D F4,0(Ry) ;load Y(i)
ADD.D F4,F4,F2 ;a × X(i) + Y(i)
S.D 0(Ry),F4 ;store into Y(i)
DADDIU Rx,Rx,#8 ;increment index to X
DADDIU Ry,Ry,#8 ;increment index to Y
DSUBU R20,R4,Rx ;compute bound
BNEZ R20,Loop ;check if done
问 How does the order of the code change due to the delayed branch?
老师提示我 Having a delayed branch does not reorder the
code drastically as you have proposed but moves one instruction (since the
delayed branch was one cycle).
So given this new
information, which statement changes its position relative to the BNEZ
statement.
我说把loop里面的第一个Load放到BNEZ后面好让branch delay slot填上,别闲着。这
厮说不对。不知道是不是我没有理解delayed branching,哪位能给再讲解一下。谢了
DK
发帖数: 194
2
整个loopbody 里面好几个 instruction都depend on 第一个load哪,你怎么能这样放
,除非你理解成把下个iteration的load放进来,那就是错误的理解了
比较靠普的做法你就把 Daddiu Ry Ry , #8 放到delay slot就好了
l******y
发帖数: 204
3
是这样啊,你这么说了,我觉得很有道理!
但是我觉得我对delayed branching理解可能有点问题
我之前是想把第一个load放到前一个loop interation里面先把新的x值放进去,不过看
完你说的...觉得很对
能给讲解一下reorder的基本原则么,谢谢!

【在 DK 的大作中提到】
: 整个loopbody 里面好几个 instruction都depend on 第一个load哪,你怎么能这样放
: ,除非你理解成把下个iteration的load放进来,那就是错误的理解了
: 比较靠普的做法你就把 Daddiu Ry Ry , #8 放到delay slot就好了

DK
发帖数: 194
4
最基本的就是不能violate data dependency,如果后面的instruction用前面的
instruction的结果,那他们之间的顺序就不
能变,delayed branch就是把一个一定会execute的instruction放到branch 后面,不
过这个reorder不能违反前面的基本
原则
你要把下一个iteration的load放到delay branch slot不可以是因为下一个load并不是
一定会发生的, 假设branc 的结果
是不loop back,你这样移就造成跟原本的程序不同了

【在 l******y 的大作中提到】
: 是这样啊,你这么说了,我觉得很有道理!
: 但是我觉得我对delayed branching理解可能有点问题
: 我之前是想把第一个load放到前一个loop interation里面先把新的x值放进去,不过看
: 完你说的...觉得很对
: 能给讲解一下reorder的基本原则么,谢谢!

1 (共1页)
进入CS版参与讨论
相关主题
问个delayed branch的问题请教矩阵计算
问个delayed branch的问题谁有Mario Martin 的SVM Incremental Regression 包
中国在特朗普的关税延迟橄榄枝上倾注冷水about ART (Adaptive Resonance Theory)
我已经跟Bank of America的老同学联系了++ a faster or a++ faster in C?
ML和WSN方向比较 (phd), wsn业界工作是不是很难找?VLDB 2007 Accepted Papers
从decision tree各个branch path中抽取出的rule 如何评价其有效性?sigmod09挂了
求下载一篇ieee和一篇springerPython script 用来抓MITBBS一个版
请教一个概率问题 (转载)SUTD-MIT Postdoctoral Programme
相关话题的讨论汇总
话题: rx话题: ry话题: delayed话题: load话题: branch