PERQ

**PERQ**は、**Three Rivers PERQ**または **PERQ**とも呼ばれ、1970年代後半から1980年代初頭にかけて生産されたワークステーション・コンピューターの草分け的存在であった。 1979年6月、同社は英国のラザフォード・アップルトン研究所から最初の注文を受け、1979年8月にシカゴで開催されたSIGGRAPHで正式に発売された。  これは、グラフィカル・ユーザインタフェースを備えた最初の商業的に生産されたパーソナル・ワークステーションであった。 このデザインは、商業的に生産されることのなかったオリジナルのワークステーション・コンピューターであるゼロックス Altoに大きな影響を受けていた。 「PERQ」という名前の由来は、「より速く実行されるPascalエンジン」("Pascal Engine that Runs Quicker")の頭字語をとったもので、一般に「パークス」(*perks)*と呼ばれる「パーキシー」(*[[福利厚生|perquisite]])*という単語を連想させるために選ばれた。これは、従業員の追加給付金の意味である。  

このワークステーションは、1974年に(3RCC)を設立したカーネギーメロン大学の元卒業生で従業員の、ブライアン S.ローゼン、ジェームズ R.テター、ウィリアム H.ブロードリー、J. スタンリー・クリズ、ラジ・レディ、およびポール G.ニューベリーによって考案された。 ブライアン・ローゼンもゼロックスPARCでドルフィン・ワークステーションに従事していた。 英国科学研究評議会 (後の科学技術研究評議会) からの関心の結果、3RCCは1981年に英国のコンピュータ会社ICLとヨーロッパでの販売、その後の共同開発と製造のための関係を結んだ。 1980年代には、英国の多くの学術研究プロジェクトでPERQが使用された。 3RCCは1984年にPERQ System Corporationに社名を変更した。 1986年にはサン・マイクロシステムズ、アポロ・コンピュータ、シリコン・グラフィックスなどの他のワークステーションメーカーとの競合が主な原因となって廃業した。 

## ハードウェア

### プロセッサ
PERQ CPUは、マイクロプロセッサというよりは、マイクロコード化されたディスクリートロジック設計であった。74S181 ビットスライス ALUとAm2910マイクロコード・シーケンサーをベースにしていた。 PERQ CPUは、20ビット幅のレジスタと書き込み可能なコントロールストア(WCS)を備えており、マイクロコードの再定義を可能としたという点で異例であった。 このCPUのマイクロ命令サイクル周期は170 ns(5.88 MHz)であった。  

### PERQ 1
1980年に発売された初代PERQ (*PERQ 1と*も呼ばれる)は、茶色の横帯を施した台座型のキャビネットに収められ、上部には8インチフロッピーディスクドライブが水平に取り付けられていた。 

PERQ 1 CPUには、4k ワードの48ビットマイクロコード・メモリからなるWCSを搭載していた。 後の*PERQ 1A* CPUではWCSを16kワードに拡張した。 PERQ 1は、256 kB、1 MBまたは2 MBの64ビット幅RAM (16ビットバス経由でアクセス)、  12 MBまたは24 MBの14インチShugart SA-4000シリーズのハードディスクドライブ、および8インチのフロッピーディスクドライブで構成することができた。   PERQ 1の内部レイアウトは、垂直に取り付けられたハードディスクドライブによって占められていた。 筐体の高さと奥行きは、このことが大きく影響している。 

基本的なPERQ 1システムは、CPUボード、メモリボード(フレームバッファと、モニター・インタフェースを内蔵)、I/Oボード(IOB、CIOとも呼ばれた)で構成されていた。  IOBには、Zilog Z80 マイクロプロセッサ 、IEEE-488インタフェース、 RS-232 シリアルポート 、ハードディスクおよびフロッピーディスクのインタフェース、音声合成ハードウェアが含まれていた。  PERQ 1には、 イーサネットなどの追加インタフェース用の予備のオプションI/O (OIO)ボードスロットもあった。 

グラフィック・タブレットが標準装備されていた。 ほとんどのPERQ 1は、8½×11インチ、768×1024ピクセルの縦向き白色蛍光体モノクロモニタを搭載していた。 

### PERQ 2
1983年に*PERQ 2* (開発時のコードネームは*Kristmas*)が発表された。 PERQ 1との違いは、ICLの設計による幅広キャビネット、明るい色の横帯、縦型フロッピーディスクドライブ、3桁の診断用ディスプレイを備えていたことである。 

PERQ 2は、PERQ 1Aと同じ16k WCS CPUを使用し、グラフィック・タブレットの代わりに3ボタンマウスを搭載した。 静かな8インチの35 MB  1201ハードディスク、1MBまたは2MBのRAMを搭載し、PERQ 1の縦型モニタまたは19インチ1280×1024の横型モニタをオプションで選択できるよう構成されていた。  

オリジナルの3RCC PERQ 2 (*K1としても知られる)*の製造上の問題があったため、ICLはハードウェア設計を見直し、*PERQ 2 T1* (またはICL 8222)が誕生した。  

後の*PERQ 2 T2* (ICL 8223)、*PERQ 2 T4*モデルでは、8インチのハードディスクを5¼インチのハードディスクに置き換え、2台目のディスクを内蔵できるようにした。 

T4モデル(うち約10台しか生産されていないと考えられている)は、24ビットCPUとバックプレーンバスを拡張し、4MBのRAMボードを使用できるようにした。   

PERQ 2はPERQ 1のOIOスロットを保持していたが、IOBをEIO(イーサネットI/O)またはNIO(非イーサネットI/O)ボードに置き換えた。 これらはIOBに似ているが、不揮発性のリアルタイムクロック 、2番目のRS-232ポート、(EIOボードでは)イーサネット・インタフェースが追加されている。 

### PERQ 3
*PERQ 3A* (別名ICL 3300 Advanced Graphics Workstation)は、PERQ 2の後継機としてICLによって開発された。 PERQ 3Aは、約12.5 MHzのMotorola 68020 マイクロプロセッサと68881 浮動小数点ユニットに加えて、グラフィックス・コプロセッサとして機能するAMD 29116A 32ビット ビットスライスプロセッサを2基搭載した全く新しいハードウェア・アーキテクチャを採用していた。 また、最大2 MBのRAM、 SCSIハードディスクを搭載し、デスクトップの「ミニタワー」スタイルの筐体に収められていた。 オペレーティングシステムは、PNX 300と呼ばれるUNIX System Vリリース2の移植版であった。 試作機は1985年に生産されたが、完全生産が開始される前にプロジェクトは中止された (プロジェクトの実行が遅れたため、ICLはソリューションプロバイダとしてSunワークステーションを販売することに決定した)。   

同社の消滅時に開発中だったもう1つのワークステーション設計である*PERQ 3B*は、カラーモデル (*PERQ 5*と呼ばれることもある) で、社のCrosfield Studio 9500ページレイアウトワークステーションに採用された。 内部的にはPythonとしても知られていたこのワークステーションは、1986年にMegaScan社とConner Scelza Associates社(ともにピッツバーグの)とCrosfieldチーム(イギリスのヘメル・ヘムステッド)によって共同開発された。 MegaScan社(Brian Rosenが率いる)はワークステーションの電子機器を開発し、Conner Scelza Associates社(Jerry ConnerとDon Scelzaが率いる)はUNIXを移植し、その他すべてのサポートソフトウェアを作成した。 Crossfield社(Andrew Chapmanが率いる)が全体的なプロジェクトマネージャーを務め、MegaScan社(Simon ButlerとMark Somervail)とConner Scelza社(Roger Willcocks)には組み込みエンジニアがいた。  

Crosfield社の要件は、非常に高性能なグラフィックスシステム(Viperとして知られ、子会社のbenchMark Technologies社が開発)と大容量(当時)のディスクストレージであった。 Hemel HempsteadのCrosfieldチームは、5¼インチのフルハイトドライブとGALANとして知られる高速光ファイバーネットワークからのデータストリーミングと並行して動作する最大8台のSCSIコントローラをサポートする初期のRAIDソリューションを開発した。 プロトタイプは、1986年後半に米国と英国で稼働し、1987年初期にはCrosfieldのピーターバラ工場からの大量生産が開始された。 

### 周辺機器
PERQ 1と2のために、さまざまなオプションのOIOボードが製造された。3RCC OIOボードは、16ビットパラレルPERQlinkインタフェース (起動時に別のPERQからマイクロコードをダウンロードするためのもの)と、イーサネットおよび/またはキヤノンCXレーザープリンタコントローラを備えている。 したがって、PERQ 2は2つのイーサネットポート(EIOとOIO)で構成することができる。 ドットマトリックスプリンタもRS-232またはIEEE-488ポートに接続することができた。 他のサードパーティ製のOIOボードは、 QIC-02 テープドライブやビデオカメラなどの他のデバイスと接続するために製造された。  

## ソフトウェア
PERQのオリジナルのp-Codeライクな命令セット(*Q-Code*と呼ばれる)は、Pascal (具体的には拡張PERQ Pascal)用に最適化されていた。 Q-Code命令は、1秒あたり最大100万命令の速度で実行することができた。  このことから、PERQという名前の代替的な定義である*Pascal Evaluation Real Quick*が生まれた。 実際には、Q-Codeで直接「アセンブリ言語」プログラムを作成するよりも、Pascalを使用した方が一般に効率的であった。 

### オペレーティングシステム
PERQのために様々なオペレーティングシステムが開発された。 これらには次の様なものがある:  

; POS（PERQオペレーティングシステム） 
: 3RCCが開発したPERQワークステーション用の初期のシングルタスクOS。 POSとそのユーティリティはPERQ Pascalで書かれた。 

; MPOS（マルチタスクPOS） 
: 3RCCが公式にリリースしていないPOSのマルチタスク版。 

; Accent 
: Accent(アクセント)は、CMUで開発されたマルチタスクの研究用オペレーティングシステムで、Sapphire(サファイア)と呼ばれるウィンドウ・マネージャーを備えている。 AccentはMachカーネルの前身であり、後の多くのオペレーティングシステムで使用されることになる。 SapphireのウィンドウでAccentの下で実行するUNIX System V互換の環境は、*QNIX*と呼ばれ、によって開発された。

; PNX（   ） 
: PNX(ピーニックス)は、PERQのためのUNIXの移植版で、Version 7 UnixおよびUNIXシステムIIIをベースにしている。 ブラックネル 、 ダルケイス・パレス、後にキッズグローブ(スタッフォードシャー州)のICLによって英国の研究コミュニティ向けに開発された。 PNXでは、*C-Code*と呼ばれるCプログラミング言語に適した独自のマイクロコードを使用していた。 

; FLEX 
: Royal Signals and Radar Establishmentによって開発されたFLEXはマイクロコードで実装され、選択した言語がALGOL 68であることを除いては、Lispマシン、UCSD Pascal、Modula-2などの他の初期のワークステーションシステムに似ていた。

### アプリケーション

PERQは初期のグラフィカルワークステーションとして人気があり、それゆえに、グラフィカル・ユーザ・インタフェースとビットマップ・グラフィックスを利用した多くの初期のサードパーティアプリケーションが生まれた。 Intran(1982年頃)は、MetaFormと呼ばれる先駆的なグラフィカル・プログラム・スイートを開発したが、これは、グラフィックスビルダー、フォントビルダー、フォームビルダー、ファイルマネージャーの各プログラムから構成されていた。 また、PERQは、ZOG、KMS、Guideなどの先駆的なハイパーテキストプログラムの専用プラットフォームとしても機能した。 PERQ上で回路図を作成するためのCADシステムであるDP("Drawing Program", 描画プログラム)は、CMUのDario Giuseによって書かれた。  

## 参考文献

## 外部リンク

* PERQワークステーションについて 
* DigiBarn: The Three Rivers PERQ 
* bitsavers.orgのPERQドキュメント 
* グラフィカル・ユーザーインタフェース・ギャラリー: Three Rivers / ICL Perq
* ラザフォード研究所アトラスコンピューティング部門: シングルユーザーシステムプログラムのアーカイブ 。 Science and Engineering Research CouncilとICLの共同プロジェクトに影響を与えたPERQの歴史に関する詳細な資料が含まれている。 
* PERQemu: a PERQ 1 emulator for Microsoft Windows/Mono (開発中, v0.21はPOSを起動および実行できる)