コード密度

読み:コードみつど
外語:code density 英語
品詞:名詞

同じメモリーサイズにどれだけの命令を詰め込めるかという、マイクロプロセッサーの設計上の指標。

目次

たとえば、256オクテットのメモリーがあったとする。

命令1語が32ビットであれば、この中に最大64語を置くことができる。命令1語が16ビットならば、同じ中に最大128語を置くことができる。

また、命令が可変長であれば置ける命令語数は変化する。さらに、命令1語に複数の命令を格納できる仕様であれば、その分置ける命令数は増えることになる。

CISC/RISC

全ての命令が固定長であるよりは、必要に応じて命令長が可変の方がコード密度は高まる。ただし可変長命令は命令の解読に時間を要し、処理時間に影響するようになる。

初期からあるCISCは、かつて高価で少ないメモリーで多くの作業をする必要があったため可変長であり、処理効率を犠牲にする代わりにコード密度を高くするよう設計された。

一方、メモリーの低価格化にともない登場したRISCは、命令セットを単純化するかわりに処理効率を高めたプロセッサーであり、そのぶんコード密度は低下している。

VLIW

一般的なプロセッサーは、命令1語で1機能である。しかしもし一つの命令語に複数の機能を含めていれば、その分コード密度が高まる可能性がある(コンパイラーの性能次第)。

VLIWなどは、このようなコンセプトのプロセッサーアーキテクチャーである。

GPUDSPなどはVLIWを採用する傾向が強かったが、肝心のコンパイラーの性能が向上しなかったことから、近年ではGPUなどからVLIW離れが進んでいる。

ARM

ARMは自称RISCだが、CISCに近い設計である。このため、Thumb命令AArch64ではRISCらしくない可変長命令が導入されている。

まず、32ビットである通常のARM命令「A32」は、主たる機能のほかに、ほぼ全ての命令が実行条件を持ち、さらに命令により、加減算や比較、論理演算、インクリメント/デクリメントの機能を含めることが可能となっており、命令1語で複雑な処理を表現できる。

このため1命令語が32ビットとは言っても、CISC並みにコード密度を高めることも可能と言える(コンパイラーの性能次第)。ユークリッドの互除法が最小4命令で実行できることが知られる。

ARMのThumb命令は、命令語長が16ビットと半分に小さくなったため、命令や機能の種類は必然的に減っている。単純な処理であればコード量は少なく済むが、やや複雑な機能を使う場合は複数の命令の組み合わせで実現する必要が生じることとなり、その分、命令数や実行速度に影響を及ぼす。

関連する用語
マイクロプロセッサー

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club