ルックアップテーブルの理解:ROMから高度なALUまで
前章でデジタルメモリデバイスを探求し、固体ストレージセルがバイナリ値で精密にアドレス指定できることを発見しました。ROMのアドレスラインを特定のバイナリパターンで駆動することで、メモリセルから格納データを直接取得できます。
特定のロジック機能の真理値表でROMを事前プログラミングしたと想像してください。アドレスラインが関数の入力として機能し、データラインが対応する出力を提供。このセットアップで、単一ROMチップが物理的再配線なしで——ハーフアダー、フルアダー、または全く異なる組み合わせ回路——任意の望ましいロジック機能をエミュレートできます。
以下はハーフアダーを実装するために設定された4×2ビットROMです。AとB入力をアドレスピンに印加すると、ROMは正しい和(Σ)とキャリーアウト(Cout)ビットを出力します。

ゲートベースのハーフアダーが固定ロジックゲートネットワークを通じて入力を処理するのに対し、このROMは各入力ペアに対する正しい出力を単に「記憶」しています。別のROM、またはイレイサブルEPROMに新しい真理値表を書き込むことで、ロジック機能を瞬時に再構成でき、比類なき柔軟性を提供します。
本質的に、あらゆる可能な入力に対して所定の出力を提供するROMをルックアップテーブルと呼びます。この概念は、学校で九九を暗記するのと似ています:5×6を毎回再計算するのではなく、30に等しいことを思い出します。
ハードウェアではなくソフトウェア(ROMの格納データ)を使用することでいくつかの利点があります:
- ソフトウェア変更はハードウェア修正よりはるかに容易。
- ソフトウェアはディスク、テープ、その他媒体にアーカイブ可能で、文書化と移転を容易に。
- ソフトウェアはデバイス間でコピー可能で、1チップが別チップから学習可能。
- 離散ゲートでは扱いにくい複雑な機能をシンプルに実装可能。
ルックアップテーブルの力は関数複雑性とともに増大します。例えば、4ビットアダーは8アドレスライン(2つの4ビットオペランド)と符号付き和用4データラインを持つROMで構築可能。256アドレス可能ロケーションで、各入力組み合わせを慎重にプログラミングする必要があります。

このようなテーブルのプログラミングには精度が必要ですが、誤プログラミングエントリのリスクを上回るソフトウェア定義動作のメリットがあります。
ルックアップテーブルはエッジケース処理でも優れます。例えば、2の補数加算でのオーバーフロー。4ビットフィールドで0111(7)と0110(6)を加算すると、正しい13ではなく1001(-7)になります。ROMにカスタム値——おそらく表現可能な最大正数——を出力하도록プログラミングすることで、オーバーフロー条件への応答を制御できます。
単純な加算を超えて、ROMに2本のアドレスラインを追加すると容量が256から1,024エントリに拡張。これにより、2つの制御ビット(A8とA9)に基づいて複数の演算——加算、減算(両順序)、等価性テスト——を4ビットオペランドで実行可能になります。

さらに多くのアドレスラインで、パリティチェックやXORなど幅広いバイナリ演算をホストでき、実質的に算術論理演算ユニット(ALU)として機能します。歴史的に、IBM 1401と1620コンピュータは加算にルックアップテーブルを採用し、「CADET」(Can't Add, Doesn't Even Try)の愛称で呼ばれました。
ROMベースルックアップテーブルの一般的な現代用途は、精密な数学関数を必要とする制御システムです。例えば、自動車燃料噴射システムはエンジン負荷、外気温、気圧に基づいて空燃比を調整。センサがこれらの変数を測定、アナログ出力がデジタル化され、結果のデジタルベクトルがROMアドレスとして機能。ROMが最適な噴射パラメータを出力します。
ROMはデジタル化信号の補正にも使用されます。サーモカップル伝送器は、非線形ミリ電圧を温度値に変換。補正データをROMに格納することで、デバイスが出力を線形化し、精度を向上。この応用はしばしばデジタルキャラクタライザと呼ばれます。

もう1つの古典的例はコード変換。128×8 ROMは、各入力をROMテーブル内の対応する出力にマッピングすることで、7ビットASCIIコードを8ビットEBCDICコードに変換できます。
関連ワークシート:Memory Devices Worksheet
産業技術
- ラダー・ロジック 202:PLCメモリ構成をマスターする
- デジタルメモリの基礎:アドレッシング、アクセス、揮発性
- ROM、PROM、EPROM、EEPROMの理解:設計、プログラミング、識別
- マイクロプロセッサ:ストアドプログラムコンピューティングの進化
- 磁気ニューロモーフィックコンピューティングがAI効率を人間並みに向上
- リフティングテーブルが職場エルゴノミクスを改善し傷害リスクを低減する仕組み
- Cervoz、産業用AIおよびIoTソリューション向け高度DDR4-2666メモリを発売
- C言語 動的メモリ確保: malloc, calloc, realloc, free をマスターする
- C言語動的メモリ管理:calloc、malloc、freeの解説
- C++動的メモリ管理完全解説:スタックとヒープ、new/delete
- Java 10でヒープをNV-DIMMに割り当て:-XX:AllocateHeapAtオプション