-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebref.htm
43 lines (27 loc) · 4.62 KB
/
webref.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<HTML>
<HEAD>
<TITLE>fnami: Referring Webpages</TITLE>
</HEAD>
<BODY>
<H1>Webページを見て思ったこと</H1>
ニュースサイトなど他人のWebページを見て思ったことを書きます。古い順に並べます。
<HR>
<H2>2008-4-20 Intel AVXとLES,LDS命令の関係</H2>
後藤弘茂のWeekly海外ニュースの<A HREF="http://pc.watch.impress.co.jp/docs/2008/0407/kaigai434.htm">x86からの脱却を図るIntelの新ロードマップ</A>によると「命令フォーマットが根底から変わるAVX」とされる、Intel Advanced Vector Extensions (AVX)について書く。調べたところ「x86からの脱却」と言えるほど変わるわけではない。C4またはC5で始まる、3または2バイトの新しいプリフィックス(VEXプリフィックス)ができただけである。他のx86命令と同様に、オペコードの後にはModR/Mバイトが(そして必要ならSIBバイト、変位、即値が)続く。
<P>C4,C5はまた、LES,LDS命令の第一バイトでもある。最初に見たときは、AVX命令は64ビットモード専用かと思った。64ビットモードでは、LES,LDS命令は使えないからである(<A HREF="asm2.htm#INVALID">使用できない命令</A>を参照)。しかし、そうではなかった。
<P>まず、<A HREF="http://softwareprojects.intel.com/avx/">Intel(R) AVX</A>からダウンロードできるIntel Advanced Vector Extensions Programming ReferenceのFigure 4-2. VEX bitfieldsを見てほしい。C4,C5の次のバイト(Byte 1)の上位2ビットは、RかXかvvvvの最上位ビットである。これらの説明をよく見ると、「in 1’s complement (inverted) form」と書いてある。ここで思い出してほしいのは、AMD64/Intel 64で追加されたレジスタ(R8、XMM9など、レジスタ番号8-15のもの)は、64ビットモード以外では使えないことである。つまり、LES,LDS命令が使えるモードでは、レジスタ番号は常に0-7であり、Byte 1の上位2ビットは両方とも常に1である。
<P>次に、LES,LDS命令の第二オペランドはModR/Mバイトのr/mフィールドで指定されるメモリであり、レジスタではないことを思い出してほしい。つまり、LES,LDS命令のModR/Mバイトの上位2ビットがともに1になることはない。結局C4,C5の次のバイトは、上位2ビットの値によって
<UL>
<LI>00,01,10 → LES,LDS命令のModR/Mバイト
<LI>11 → VEXプリフィックスのByte 1
</UL>
と解釈できる。このようにしてVEXプリフィックスは、32ビットモードなどでもLES,LDS命令と共存可能なように作られていた。レジスタ番号を値反転するのはきたないが、互換性のためにここまでするのかと感心した。
<P>IntelのAVXは、AMDのSSE5とともに、今後どうなるか楽しみである。
<HR>
<H2>2018-9-30 ニュースの信頼性</H2>
朝日新聞の記事「<A HREF="https://www.asahi.com/articles/ASL8P5F59L8PULBJ00M.html">AI、医師を上回る診断精度も 全自動治療の時代来る?</A>」に、まともに校正をしたとは思えない表現があった。最初の段落の「データにバグが起こり」のところである。そのせいで、続く記事本体も読む価値がないものに思えてきた。
<P>コンピュータのソフトウェアの技術者ならこんな言い方はしない。その用語である「バグ」を使うなら、使い方も倣うべきである。おそらく、「プログラムのバグのせいでデータに誤りが入った」というようなことを言いたいのであろう。わざわざ「バグ」という言葉は使わずに、「プログラムのミスにより」で十分だと思う。なお、バグのせいで実際に誤動作が起きることを「バグが発生」と言うことはあるので、「バグが起こり」だけで誤りとは言い切れない。
<P>これで思い出したのだが、1989年にNHKのニュースで、「ソースコードと呼ばれる高度な先端技術」の話をしていた。これには笑ってしまった。「原稿という洗練された文学作品」みたいな表現であることに気がつかなかったのであろうか。
<P>自分の専門分野に関係あるニュースがどのように報道されているかを見聞きすれば、他の分野のニュースをどれくらい信じてよいかがわかってくる。コンピュータに関するニュースのレベルは、パソコンがこれだけ普及してもあまり変わっていないように思う。
</BODY>
</HTML>