Index
/
Reload
Edit on
2006-08-11
このコメントを修正します。
内容を修正した後で投稿時のパスワードを入力してください。
現在、コメントを削除する機能がありません。
コメントを削除したい場合には、 コメント欄を空欄にしておいてください (管理人が後で削除します)。
お名前:
E-mail or URL:
Password:
コメント:
うんのさんのコメント[17]へ: > これだけ先にすませてしまいましょう。 (snip) > 「削るだけで済む」とは主張していないし、ほのめかしてもいません。 うんのさんがそうおっしゃるとは意外です。 我々は "global visibility order" について議論してきたわけで、ESA/390 PoO の中でそれをもっとも端的に定義しているのはコメント[10]の中でうんのさん自身があげられている 5.13.10 Relation between Operand Accesses (http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/DZ9AR006/5.13.10?DT=19990630131355 ) の節ですよね。 (A) As observed by other CPUs and by channel programs, storage-operand fetches associated with one instruction execution appear to precede all storage-operand references for conceptually subsequent instructions. A storage-operand store specified by one instruction appears to precede all storage-operand stores specified by conceptually subsequent instructions, but it does not necessarily precede storage-operand fetches specified by conceptually subsequent instructions. (B) However, a storage-operand store appears to precede a conceptually subsequent storage-operand fetch from the same main-storage location. 同様の箇所は 5.13.8 節などにもあるのですが、だいたい同じことを言っていますので 5.13.10 節で代表できるでしょう。(A) の文は store buffer による「load による store の追い越し」を認める文言です。(B) の文は store forwarding を禁止しています。(B) は (A) の付帯的な禁則条項ですね。 > 私が指摘したのは、"However, a storage-operand store appears ..." > の一文が store forwarding の禁止に相当するということ。 これは認めます。 > つまり、store forwarding は、 > a conceptually subsequent storage-operand fetch from the same main-storage location が storage-operand store を追い越させる効果があると読める、ということのみです。 ここが分からないのです。 PoO の一番素直な解釈では「a conceptually subsequent storage-operand fetch from the same main-storage location が storage-operand store を追い越した状態」とは、self-consistency が壊れた状態ですよ。無論、これは store forwarding ではありません。しかしうんのさんは「a conceptually ... を追い越した状態」に、後続 local load が先行 store を追い抜いた状態を含むのだとお考えです。 うんのさんが (B) の一文だけを PoO の想定しているメモリモデルから切り離して考えているなら別ですが、そうでないなら後続 local load による先行 store の追い抜きという状況が (A) の記述や PoO の他のメモリモデルに関する記述と整合性を保っている必要がありますよね? そしてコメント[13]で「Store forwarding をした場合、後続の load が先行の store を追い抜くことになるという私と同じ言葉使いを IBM もしてますよ」とおっしゃったからには、その整合性はあると考えられたはずです。 もし store forwarding を実現するために (B) とそれと同内容の箇所以外に修正を加える必要があるのだとしたら、それはうんのさんの言葉使いと (IBM の) PoO のモデルが異なっていることになりませんか? # あるいは『「削るだけで済む」とは主張していないし、ほのめかしてもいません。』という一文は、 # (B) を削る以外にも PoO のメモリモデルの本質を変えないもっとよい修正方法があると # お考えだったからかもしれませんが。
Powered by
くっつき BBS