🥺

メモリと仲良しになろう![超入門編]

に公開
3

Discussion

vxcallvxcall

他にもハーフワード(ワードの半分である単位)や 1byte 単位でのアクセスが得意だったりします

ワードの半分は1byteなので同じことをおっしゃってる気がします!
DWORDやQWORDの間違いですかね?

tomoikeytomoikey

ご精読・ご指摘ありがとうございます!とても嬉しいです!

詳しく調べてみると、ワードは文化圏で定義が異なる語であることが分かりました。(多重定義であることを初めて知りました...)

例えば Intel® 64 and IA-32 Architectures Software Developer Manuals を読んでみると「a word is 2byte (16 bits)」と記載されていますが、「Arm Architecture Reference Manual for A-profile architecture」では「Word 32bits」と記載されており、アーキテクチャによって異なる固定された定義があるようです。

また、CPU が1回で扱えるデータ量をワードと定義することもあります。(本記事ではこちらの意味でワードを定義しておりました)

まとめると、「Intel® 64 and IA-32 Architectures や 16bit CPU ではハーフワード 1byte となるが、Arm Architecture や 32/64bit CPU ではハーフワードが 1byte とならない」となりました。

私の調査不十分によって誤解を招く表現をしてしまい大変申し訳ございませんでした。記事の該当部分につきましては下記の注釈をいれるように修正しました!ありがとうございます。

vxcallvxcall

丁寧な返信ありがとうございます!
自分はx86, x86_64の文化しか知らなかったためarmアーキテクチャだと32bitをwordと呼んでいるのを知りませんでした!
また、x86ではCPUの1サイクルはDWORD(32bit), x86_64ではQWORDと認識していたのでそこも違和感を感じていたのですが、アーキテクチャがarmということで納得できました。