Skip to main content
QUICK REVIEW

[論文レビュー] Quantitative Expressiveness of Instruction Sequence Classes for Computation on Single Bit Registers

J.A. Bergstra|arXiv (Cornell University)|Apr 18, 2019
Computability, Logic, AI Algorithms参考文献 15被引用数 6
ひとこと要約

本稿は、1ビットレジスタ上で動作する命令列の定量的表現力フレームワークを導入し、LLOC(論理的コード行数)をプログラムサイズの指標として用いる。基本的な演算、たとえば加算やパリティチェックのための命令列長の上限を確立し、ビットの補数化がnビット加算のLLOCを14n−5から8nに削減することを示している。また、定義されたインターフェース下での最小命令列を同定している。

ABSTRACT

The number of instructions of an instruction sequence is taken for its logical SLOC, and is abbreviated with LLOC. A notion of quantitative expressiveness is based on LLOC and in the special case of operation over a family of single bit registers a collection of elementary properties are established. A dedicated notion of interface is developed and is used for stating relevant properties of classes of instruction sequences

研究の動機と目的

  • LLOC(論理的コード行数)をプログラムサイズの代理指標として用いて、命令列の定量的表現力を測定すること。
  • 1ビットレジスタ上で基本的な演算(加算やパリティチェックなど)を実行するための最小LLOCを分析すること。
  • 形式的インターフェースモデルを定義し、それを用いて命令列を制約・最適化し、最小LLOCを達成すること。
  • 命令の特徴(例:ビット補数化、ジャンプ)がLLOC効率に与える影響を調査すること。
  • 特定のインターフェース制約下で、加算を実行するより短い命令列が存在するかどうかを検討すること。

提案手法

  • LLOCは、PGAスタイルの命令列における命令数として定義され、セミコロンの数に1を加えた値が合計となる。
  • 形式的インターフェースモデルが導入され、入出力動作およびレジスタの役割(in、out、inout、aux)を指定することで、プログラムの意味の明確な定式化が可能になる。
  • 基本命令、テスト、ジャンプ、終了命令を用いて加算およびパリティのための命令列が構築され、LLOCが正確に数えられる。
  • 最適化技術として、出力レジスタをキャリービットとして再利用し、ビット補数化を用いて補助キャリーレジスタを排除する。
  • 後向きジャンプおよび大規模ジャンプの影響を分析し、背理法による上限を導出する。
  • インターフェース制限およびサービスファミリの合成を用いて制約を形式化し、LLOCに関する構成的推論を可能にする。

実験結果

リサーチクエスチョン

  • RQ1インターフェース $I''_n$ 上でnビット加算を1回パスで実行する命令列は、LLOCが $14n - 5$ よりも小さくできるか?
  • RQ2インターフェース $I'''_n$ 上でnビット加算を1回パスで実行するPGA命令列は、LLOCが $8n$ よりも小さくできるか?
  • RQ31ビットレジスタを用いてnビット入力のパリティチェックを実行する際、達成可能な最小LLOCは何か?
  • RQ4後向きジャンプおよび大規模ジャンプは、1ビットレジスタ上で関数を計算する際の最小LLOCにどのような影響を与えるか?
  • RQ5補助レジスタを導入せずに、ビット補数化の使用が算術演算におけるLLOCを短縮できるか?

主な発見

  • インターフェース $I'_n$ 上でのnビット加算について、LLOCが $14n + 3$ の命令列が構築され、最初のイテレーションを最適化することで $14n - 5$ に削減された。
  • 出力キャリーレジスタを一時保存領域として再利用することで、インターフェース $I''_n$ 上での加算のLLOCは $14n + 1$ に低下し、余分なチェックを排除することでさらに $14n - 5$ にまで削減された。
  • ビット補数化を用いることで、インターフェース $I'''_n$ 上でのnビット加算の命令列はLLOC $8n$ を達成し、コードサイズが顕著に削減された。
  • 本稿では、k入力のパリティを正しく計算するにはk+2個以下の命令を含む命令列は存在しないことを証明し、下限が確立された。
  • 背理法により、大規模ジャンプは、避けられない入力再読み込みとジャンプ命令のための空間不足のため、LLOCをある閾値未満にまで低下させることができないことが示された。
  • インターフェースの使用により、LLOCに対する明確な制御が可能となり、構造的最適化を通じて最小命令列の構築が可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。