SQUOZE(略称SQZ)は、パンチカード上のシンボルテーブルを備えたソースおよび再配置可能 オブジェクトプログラムファイルを組み合わせたメモリ効率の良い表現であり、1958年にIBM 709用のSHAREオペレーティングシステム(SOS)上のSCATアセンブラ[1] [2]とともに導入されました。[3] [4]この形式のプログラムはSQUOZEデッキと呼ばれていました。[5] [6] [7]これは、 IBM 7090や7094などの後のマシンでも使用されました。
SQUOZEデッキ
SQUOZEデッキには、元のアセンブリ言語コードのエンコードされたバイナリ形式が含まれています。SQUOZEデッキは絶対マシンコードに変換され、ローダープログラムによってメモリに保存されます。[8] [9] [10]
識別子名の文字エンコーディング
SQUOZEエンコーディングでは、シンボルテーブル内の識別子は50文字のアルファベットで表現され、36ビットのマシンワードで6つの英数字と2つのフラグビットを表現できるため、6文字あたり2ビットを節約できます。[6] [1]これは、通常各文字に割り当てられる6ビットで、アルファベットの50文字を表すために必要な50状態だけでなく、最大64状態を格納できるためです。50 6 < 2 34。
50 進数を使用すると、3 文字ごとに 1 ビット節約できるため、2 つの 3 文字のチャンクで使用されました。マニュアル[1]には、6 つの文字 ABCDEF をエンコードするための式が記載されています。
たとえば、「SQUOZE」は通常 36 ビット: 35 33 37 31 44 17(基数 8)ですが、34 ビットに収まるように 2 つの 17 ビット部分にエンコードされます( 0o220231 << 17 ) | 0o175473 == 0o110114575473。
同じロジックのより単純な例としては、3 桁のBCD 数値が 987: 9 8 7(基数 16) 1001 1000 0111(基数 2)のように 12 ビットを占めるが、このような値は 987: (基数 16 3db) 11 1101 1011(基数 2)のように 10 ビットで直接格納できるため、2 ビットを節約できるというものがあります。
語源
「Squoze」は動詞「squeeze」の冗談めいた過去分詞です。 [5] [6]
SQUOZEという名前は、後にDECマシンで使用された同様の文字エンコード方式に借用されました。[4]これらのマシンは40文字のアルファベット(8進数では50)を持ち、 DEC RADIX 50やMOD40と呼ばれていましたが、[11] DEC Squozeというニックネームで呼ばれることもありました。
参照
参考文献
- ^ abcd SHARE 709 System Committee、ed. (1961年6月) [1959]。「セクション02:SCAT言語、付録1:許容文字表、付録3:SQUOZEデッキフォーマット - 第8章:辞書」。SOSリファレンスマニュアル - IBM 709用SHAREシステム(PDF)。米国ニューヨーク:SOSグループ、International Business Machines Corporation。pp . 02.00.01 – 02.00.11、12.03.08.01 – 12.03.08.02、12.01.00.01。X28-1213。配布番号1–5。2020-06-18にオリジナルからアーカイブ(PDF)。2020-06-18に取得。 pp. 12.03.08.01 – 12.03.08.02:
[…] 使用されるビット位置 […] ビット 0 […] ビット 1 […] ビット 2–35 […]見出し文字付きのシンボルの 50進数表現。 […] シンボルの 50 進数表現は次のようにして得られます: […] a. シンボルの文字数が 5 文字未満の場合は、見出しが付けられます (見出しのない領域にある場合は空白で埋められます)。 […] b. 見出し文字付きのシンボルは左揃えにされ、使用されていない下位位置は空白で埋められます。 […] c. シンボル内の各文字は、その 50 進数相当の文字に置き換えられます。 […] d. 次に、結果を次のように変換します: 各文字を 50 進数相当の文字に置き換えた後のシンボルが ABCDEF である場合、その 50 進数表現は (A*50 2 +B*50+C)*2 17 +(D*50 2 +E*50+F) です。 […]
[1][2] - ^ Salomon, David (1993 年 2 月) [1992]。カリフォルニア州立大学ノースリッジ校 (米国カリフォルニア州) で執筆。Chivers, Ian D. (編)。アセンブラとローダー( PDF)。Ellis Horwood シリーズ コンピュータとその応用 (第 1 版)。英国ウェストサセックス州チスター: Ellis Horwood Limited / Simon & Schuster International Group。ISBN 0-13-052564-2. 2020年3月23日時点のオリジナルよりアーカイブ(PDF). 2008年10月1日閲覧。(xiv+294+4ページ)
- ^ Jacob, Bruce; Ng, Spencer W.; Wang, David T.; Rodrigez, Samuel (2008). 「パート I 第 3.1.3 章 オンライン局所性最適化: 命令とデータの動的圧縮」。メモリ システム: キャッシュ、DRAM、ディスク。Morgan Kaufmann シリーズ コンピューター アーキテクチャと設計。Morgan Kaufmann Publishers / Elsevier。p. 147。ISBN 978-0-12-379751-3。(900ページ)
- ^ ab Jones, Douglas W. (2018). 「講義 7、オブジェクト コード、ローダー、リンカー - マシン コードへの道の最終ステップ」。オペレーティング システム、2018 年春。CS:3620 オペレーティング システム コレクションの一部。アイオワ大学、コンピューター サイエンス学部。2020 年 6 月 6 日のオリジナルからアーカイブ。2020年 6 月 6 日に取得。
- ^ ab Boehm, Elaine M.; Steel, Jr., Thomas B. (1958年6月). 記号プログラミングの機械実装 - ACM 1958年夏季会議で発表される論文の要約。ACM '58: Association for Computing Machinery の第13回全国会議で発表された論文のプレプリント。pp. 17-1–17-3。doi : 10.1145 /610937.610953。2020年6月6日時点のオリジナルよりアーカイブ。 2020年6月6日閲覧。(3ページ)
- ^ abc Boehm, Elaine M.; Steel, Jr., Thomas B. (1959 年 4 月). 「SHARE 709 システム: シンボリック プログラミングのマシン実装」. Journal of the ACM . 6 (2): 134–140. doi : 10.1145/320964.320968 . S2CID 16545134. pp. 137–138:
[…] 辞書に含めるためのシンボルのエンコードに関連する興味深い機能があります。通常の表現モードでは、シンボルは 50 文字のセットから構成されます。エンコードが文字ごとに行われる場合、各文字の表現に 6 ビットが必要になります。シンボルには最大 6 文字が含まれるため、各シンボルの表現には合計 36 ビットが必要になります。 709 ワードの長さはちょうど 36 ビットなので、これは便利に思えるかもしれないが、少し考えてみると、シンボル表現と同じワードに 1 ビットか 2 ビット用意して、シンボルの性質の手がかりを与えることが望ましいので、残念なことであることがわかる。これらのフラグ ビットは取得できる。各文字が
50 を基数
とする数値システムの数字を表すとしよう。これで、6 つの文字シンボルが 50 を基数とするシステムで自然数として読み取ることができる。これらの数字を通常の 2 基数システムに変換すると、最大数に必要なのは 34 ビットだけとなり、フラグ ビットが 2 つ増える。これには、コード全体を表すために必要なビット数が減るという付随的な特徴があるが、709 ワードの特殊な長さがなければ、変換時間は節約分をはるかに上回る。これは、関連するマシンの正確な仕様がエンコード スキーマの詳細に及ぼす重大な影響を明確に示している。[…]
(7ページ)
- ^ Shell, Donald L. (1959 年4月) [1958 年 10 月]。「SHARE 709 システム: 協力的な取り組み」。Journal of the ACM。6 ( 2): 123–127。doi : 10.1145 /320964.320966。S2CID 16476514 。(5ページ)
- ^ 「IBM 7090 データ処理システム一般情報」(PDF)。IBM。1959 年。pp. 12–13。G22-6505-。
- ^ Ehrman, John Robert; Snyder, James N. (1964-04-15). 「3.3.2.1 SCAT」。IBM 7094 用 PORTHOS エグゼクティブ システム - ユーザーズ マニュアル(PDF)。イリノイ大学、大学院デジタル コンピュータ ラボ。2020-06-07にオリジナルからアーカイブ(PDF)されました。2020-06-07に取得。
[…] SCAT は 2 つの部分から成るアセンブラーで、簡単に説明すると次のように動作します。1 枚のカードにつき 1 つの命令として記号的に記述されたプログラムは、最初のフェーズで「コンパイラー」によって取り込まれ、コンパイラーはプログラムの記号をスキャンし、これらの記号のテーブルと、凝縮され効率的にコード化されたプログラムを含む凝縮カード デッキ (SQUOZE デッキ) を出力します。第 2 フェーズでは、この SQUOZE デッキは「変更とロード」プログラムによって取り込まれ、オブジェクト プログラムをバイナリ マシン言語に変換します。この言語は、オプションで実行可能な状態でロードするか、絶対バイナリ カード (カードあたり 23 命令) に出力して後でロードして実行することができます。「リスト作成者」は、これらのいずれかの段階でプログラムの印刷バージョンを作成できます。プログラムに対するシンボリック修正は、SQUOZE デッキとともに第 2 フェーズに挿入できます。[…]
- ^ SOS リファレンス マニュアル(PDF) . IBM . 1959 年 11 月.
- ^ "8.10 .RAD50". PAL-11R アセンブラ - プログラマーズ マニュアル - ディスク オペレーティング システム用プログラム アセンブリ言語および再配置可能アセンブラ (第 2 版改訂)。マサチューセッツ州メイナード、米国: Digital Equipment Corporation。1971年 5 月 [1971 年 2 月]。p. 8-8。DEC-11-ASDB-D。2020年 6 月 18 日取得。p. 8-8:
[…]
PDP-11システム プログラムは、多くの場合、
RADIX 50
(この形式は
MOD40
と呼ばれることもあります)と呼ばれる特別にコード化された形式でシンボルを処理します
。この形式では、3 文字を 16 ビットにパックできます […]
[3]
さらに読む
- Williams, Al (2016-11-22). 「Squoze your data」. Hackaday . 2020-06-06 にオリジナルからアーカイブ。2020-06-06に取得。
