データゼネラルNova 技術的な説明
磁気コアメモリ（電源がなくても内容を保持する）を備えたシステムでは、電源障害からの回復が可能であった。 コンピュータの主電源の喪失を検出すると、CPU内の停電検出回路が割り込みを発行し、その時点から電源装置のコンデンサが充電されなくなってCPUへの電力供給が停止するまでにCPUには少し時間があった。 これは、IORST命令を発行して進行中のI/Oを停止し、4つのアキュムレータの内容とキャリービットをメモリに保存するのに十分な時間であった。 電源が回復したときに、CPUのフロントパネルのキースイッチがLOCK位置にあれば、CPUは起動してメモリアドレス2を経由して間接ジャンプを行う。 これは、アキュムレータとキャリービットを再ロードし、その後、通常の処理を再開するオペレーティングシステムのサービスルーチンのアドレスであると予想されていた。 電源障害によって中断されたI/O操作をどのようにして再開するかは、サービスルーチンにかかっていた。
当時の慣習として、ほとんどのNovaモデルには、CPU機能を制御したり監視するためのフロントパネルコンソールが装備されていた。 Nova 3より前のモデルでは、上記のNova 840パネル写真のような標準的なフロントパネルレイアウトが採用されていた。 このレイアウトには、キー付き電源スイッチ、2列のアドレスランプとデータ表示ランプ、1列のデータ入力スイッチ、および押すとさまざまなCPU機能を作動させるファンクションスイッチが含まれていた。 アドレスランプは常にプログラムカウンタの現在値をバイナリで表示していた。 データ表示ランプは、その時点でどのCPU機能が作動しているかによってさまざまな値を表示していた。 一番左のデータランプの左側には、キャリービットの現在値を表示するランプが追加されていた。 ほとんどのモデルでは、ランプは白熱電球で、パネルボードにはんだ付けされていた。切れたランプを交換することは、データゼネラルのフィールドサービスエンジニアにとって悩みの種であった。
各データスイッチは16ビット値の1ビットの値を制御し、データゼネラルの慣習に従って、左から右へ0〜15の番号が付けられていた。 データスイッチは、さまざまな機能のためのCPUに入力を提供し、READSアセンブリ言語命令を使用して実行中のプログラムから読み出すこともできる。 パネルの乱雑さを減らしてコスト削減のために、ファンクションスイッチは双方向のモーメンタリスイッチとして実装された。 ファンクションスイッチのレバーを上げると、パネル上のスイッチの上に記載されている名前の機能が作動し、レバーを押し下げると、スイッチの下に表示されている名前の機能が作動する。 スイッチレバーを離すと中立位置に戻った。
Nova 840の写真を参照すると、左から最初の4つのスイッチが4つのアキュムレータのEXAMINEとDEPOSIT機能を実行する。 これらのうちの1つでEXAMINEを押すと、アキュムレータの現在値がデータランプに二進数で表示された。 DEPOSITを押すと、データスイッチに現在設定された二進数値がアキュムレータに転送された。
右に進むと、次のスイッチはRESET/STOPスイッチであった。 STOPを押すと、CPUは現在の命令の完了後に停止する。 RESETを押すと、CPUは直ちに停止し、CPU内部レジスタをいくつかクリアし、接続されているすべてのデバイスにI/Oリセット信号を送信する。 その右側のスイッチがSTART/CONTINUEスイッチである。 CONTINUEを押すと、CPUは現在プログラムカウンタが指し示している命令の実行を再開する。 STARTを押すと、現在データスイッチ1〜15に設定されている値がプログラムカウンタに転送され、そこから実行が開始された。
次の2つのスイッチは、フロントパネルからのメモリの読み出しと書き込みを行う。 EXAMINEを押すと、データスイッチ1〜15に設定されている値がプログラムカウンタに転送され、対応するメモリに値が取り込まれ、その値がデータランプに表示される。 EXAMINE NEXTを押すと、プログラムカウンタの値がインクリメントされ、そのメモリ位置の検査操作が行われ、ユーザーは一連のメモリ位置をステップ実行できる。 DEPOSITを押すと、データスイッチに含まれている値がプログラムカウンタが指すメモリ位置に書き込まれる。 DEPOSIT NEXTを押すと、最初にプログラムカウンタがインクリメントされ、次にポイントされたメモリ位置に書き込まれた。
INST STEP機能により、CPUは現在のプログラムカウンタの位置で1つの命令を実行した後、停止した。 プログラムカウンタは命令実行の一部としてインクリメントされるため、これにより、ユーザはプログラムをシングルステップで実行することができた。 MEMORY STEPは誤記で、CPUは1クロックサイクルを実行して停止した。 これはユーザにとってはほとんど意味がなく、通常はフィールドサービス担当者が診断のためにのみ使用した。
PROGRAM LOADは、通常Novaの起動に使用されるメカニズムであった。 このスイッチがトリガーされると、32語のブートROMがメモリの最初の32語にマッピングされ、プログラムカウンタを0に設定して、CPUを起動した。 ブートROMには、選択されたI/Oデバイスから256語（512バイト）のコードをメモリに読み出し、次に読み出したコードに制御を移すコードが含まれていた。 データスイッチ8〜15は、ブートROMにどのI/Oチャネルからブートするかを指示するために使用された。 スイッチ0がオフの場合、ブートROMはデバイスをポーリングされたデバイス（たとえば、紙テープリーダー）であるとみなし、512バイトが読み込まれるまでポーリングされた入力ループを実行した。 スイッチ0がオンの場合、ブートROMはデバイスがDMA対応デバイスであると仮定し、DMAデータ転送を開始した。 ブートROMは、転送を開始する前にデバイスを配置するのに十分な賢さを持っていなかった。 これは、クラッシュ後の再起動時に問題となった。ブートデバイスがディスクドライブの場合、そのヘッドがランダムなシリンダーに残されていた可能性があった。 ブートシーケンスを動作させるには、RDOSが第1レベルのブートブロックを書き込んだシリンダ0に再配置する必要があった。 従来は、ドライブのロードシーケンスを循環させることで行われていたが、待ち時間（ドライブのモデルによっては最大5分）に不満を感じていたユーザは、フロントパネルからドライブの「再調整」I/Oコードを入力し、それをCPUにシングルステップで実行させる方法を学んだ。これは、経験豊富なユーザが数秒で完了した操作である。
電源スイッチは、OFF、ON、LOCKと書かれた3方向キースイッチであった。 OFFポジションでは、CPUからすべての電源が遮断されていた。 キーをONにすると、CPUに電源が供給された。 ただし、現在のCPUとは異なり、電源投入時にCPUが自動的に起動するわけではなく、ユーザは、PROGRAM LOADまたはその他の方法を使用してCPUを起動し、ブートシーケンスを開始する必要があった。 スイッチをLOCKにすると、フロントパネルのファンクションスイッチが無効になるため、スイッチをLOCKにしてキーを外すことで、CPUを改ざんされにくい状態にすることができた。また、磁気コアメモリを搭載しているシステムでは、LOCK状態にすることで自動停電復旧電機能が有効になった。 キーは OFFまたはLOCKポジションで取り外すことができた。
Nova 1200は、コアメモリアクセス命令（LDAおよびSTA）を2.55マイクロ秒（μs）で実行した。 リード・オンリー・メモリーを使用することで0.4μsを節約した。 アキュムレータ命令（ADD、SUB、COM、NEGなど）は1.55μs、MUL 2.55μs、DIV 3.75μs、ISZ 3.15-4.5μsであった。 後期のEclipse MV/6000では、LDAとSTAは0.44μs、ADDなどは0.33μs、MUL 2.2μs、DIV 3.19μs、ISZ 1.32μs、FAD 5.17μs、FMMD 11.66μsであった。