ACOS-6

ACOS-6（エイコスシックス）は日本電気のメインフレームおよびOSであるACOSの一系列である。同社のメインフレーム事業草創期にハネウェル社から導入した技術が元となっている。ただし、元にしたハネウェルの技術の内訳には、ハネウェルがGEから買収したコンピュータ部門の所有していたものが多く含まれている（たとえば、MITがGEのマシンを使用して開発していたMulticsの技術の一部を含む）。 2003年現在の名称はACOS-6/NVX PX、対象となるハードウェアはパラレルACOS PX7900である。 数少ないワードマシンである。1バイト=9ビットで処理をし、1ワード=36ビットである。 初期のアーキテクチャと後期のアーキテクチャではかなり構造が異なる。 コンピュータの中心にSCU（システム制御ユニット）があり、この配下に演算部(EPU)、メモリ、入出力プロセッサ(IOP)が繋がる。パラレルACOS以前は、初期の機種を除き、1つのSCUに最大2つのEPUを繋げることが出来る。システム2000では、SCPを2つ繋げて、1つのシステムとして4EPUをサポートしている。 RモードとVモードという2つのモードがある。 Rモードは、18ビットのメモリ空間（256Kワード=1Mバイト）の中で処理をする。その範囲でフラットなメモリ空間を提供する。アドレス空間が18ビットしかないので、最大256Kワード（=1Mバイト）しかアクセスできない。しかし、アドレスマッピングのためのレジスタがあり、256Kワード以上のメモリ空間をアクセスできる仕組みが用意されている。 アドレスマッピング機能はVモードでは無効になる。 Vモードは、セグメントを多用し、各種の保護機能を付加し、さらにメモリ空間を拡張したモードである。80386のプロテクトモードのようなもの、と思うと理解が早い。アドレスレジスタがセグメントのポインタ+オフセットとなり(名前もデータレジスタと変わる）、セグメント記述子に指定されたメモリ空間、保護機能等が有効に働くようになる。1つのプログラムは、複数のセグメントから構成されるようになる。システム1000以降は、アドレス空間が拡張され、72ビットになる。ただし、Vモードは、ごく初期のマシン（システム600など）では利用できない。また、システム2000以降では、命令空間も拡張される。PentiumプロセッサのEM-64Tモードのようなもの、と思うと理解が早い。 システム1000から取り入れられた機能である。ベクトル演算を実行する命令群である。システム2000からは、マスク制御付きベクトル演算が可能になり、FORTRANで、IF文を含むDOループがベクトル化可能になっている。1つのベクトル命令で処理可能な要素は、S1000では2の18乗個、S2000では2の36乗個である。 システム2000から取り入れられた機能である。ハードウェアが仮想計算機機能をサポートするようになった。このため、同時に複数のOSを動作させることが出来るようになった。 レジスタが、他のアーキテクチャに比べて少ないのも特徴である。演算が可能なレジスタは A レジスタ と Q レジスタの2つしかない（それぞれ36ビット）。そのほかにインデックスレジスタ（18ビット）とアドレスレジスタが存在する。インデックスレジスタ、アドレスレジスタともに、実効アドレスを生成する際にアドレスを修飾する際に使われる。Vモードではアドレスレジスタの機能が変わる。 アドレスレジスタを使う場合には、命令語（36ビット）のアドレスレジスタを使用するためのビットをonにする。この時、インデックスフィールド（18ビット）の先頭3ビットがアドレスレジスタのレジスタ番号を指定するようになる。 命令体系は比較的COBOL向けである。COBOLのMOVE、ADD、SUBTRACT等の演算命令をほぼ機械語レベルで1命令に対応可能である。そのため、データ部分の修飾機能が豊富で、パック/アンパック十進数を直接操作可能である。さらに、COBOLの文字列編集機能（PIC で指定するもの）をそのまま機械語に変換する機能もある。 最近のCPUのような、スタックの概念はRモードにはない。関数コールを行うときには、飛び先で戻りアドレスを保存するような処理が必要である。Vモードではスタックセグメントが存在する。 特権モードがある。特権モードに遷移する命令で特権モードに移行する。特権モードには複数のランク付けがされている。 専用のサービスプロセッサがある。メインのOSが稼働するプロセッサとは別に、ファームウェアが動作するプロセッサがある。そのプロセッサに対して操作を行なうことで、メインのOSの起動等を行なえる。 内部で使うコードは、6ビットの文字コードおよびJISコード(JIS X 0201)である。6ビットの文字コードは、BCDコードと呼ばれ、英数字のみ（かつ、大文字のみ）のコードであり、1ワード中に6文字を詰め込んで処理をしている。内部処理ルーチン等で使われている。JISコードは、通常の（COBOL等の）文字処理を行なうときに利用されている。メインフレームではあるが、EBCDICを使っていない。日本語（漢字）は、JIPS(J)コードと呼ばれるコード体系を使っている。このコードにはACOS-4系で使われるJIPS(E)や、A-VXで使われるNEC内部コード(E)への変換手段が用意されている。 ACOS-6はMulticsの流れを汲むOSである。UNIXの遠い親戚とも言える。そのため、UNIXに似た（というよりも、Multics風の、と言うべきだろう）機能がある。 FMSというファイルシステムは、UNIXのような階層構造ディレクトリを提供する。ただし、rootディレクトリは1つではなく、複数のトップディレクトリがあり得る。1ファイル名は12文字までである。使用できる文字は、英文字、数字文字と、"-"（ハイフン）などの一部の特殊記号。英文字に大文字と小文字の区別はない（そもそも基本となるキャラクタコードが6ビットのため、小文字用のコードを定義する場所が確保できなかった）。ディレクトリやファイルの間を区切る文字は、UNIX系OSと同じく"/"（スラッシュ文字）である。 入出力が標準化されている。標準形式で書くのであれば、テープだろうがディスク上のファイルだろうが、細かなパラメータを指定しなくても簡単に入出力が行なえる。実デバイス（ファイル）とプログラム上の入出力の切り替え作業は、実行用のJCLを修正するだけで完了する。 TSSがUNIXのようなコマンドベース（初期のもの）である。TSS上で簡単にファイルの作成等が行える。UNIX上のedのような行指向エディタが用意されている。 ACOS-6 ACOS-6/MVX ACOS-6/NVX ACOS-6/NVX PX GE-600シリーズ GCOS Multics 草創期のACOS-6開発の元となったOS技術情報の出自等について： 高橋茂 (8 2003). “日本のコンピュータ・メーカと7人の小人(1)” (pdf). 情報処理（ISPJ Magazine） 44 (8): 836p-842p. http://museum.ipsj.or.jp/guide/pdf/magazine/IPSJ-MGN440812.pdf 2007年2月19日閲覧。.  高橋茂 (9 2003). “日本のコンピュータ・メーカと7人の小人(2)” (pdf). 情報処理（ISPJ Magazine） 44 (9): 970p-975p. http://museum.ipsj.or.jp/guide/pdf/magazine/IPSJ-MGN440917.pdf 2007年2月19日閲覧。.  日本電気株式会社 (2007年). “ACOS Club ACOS-6（nec.co.jp）”. ACOS Club ACOSシリーズポータルサイト（ホーム＞製品＞ACOSシリーズ）. 日本電気株式会社. 2007年2月19日閲覧。 Groupe Bull (2001年7月11日). “from GECOS to GCOS8” (英語). Groupe Bull. 2007年2月19日閲覧。 -GEやハネウェル（HIS）のコンピュータ部門を最終的に買収・手中に収めたBullから見たGCOSの歴史 【日本電気】 ACOS-6 - コンピュータ博物館（情報処理学会）