計算機科学において、群符号化記録(英: group coded recording)または群符号記録(英: group code recording, GCR)とは、磁気メディア上のデータを表現するための、別個ではあるが関連するいくつかの符号化方法を指す。1つ目は、1973年以来6250 bpiの磁気テープで使用されている、ランレングス制限 (RLL) 符号化方式と組み合わせられた誤り訂正符号であり、変調符号のグループに属する。もう1つは、1980年代後半まで一部のマイクロコンピュータで使用されていた、メインフレームのハードディスクとフロッピーディスクの異なるエンコード方式である。GCRはNRZI符号の修正形式であるが、必然的に遷移密度は高くなる。

## 磁気テープ

群符号化記録は、9トラックオープンリールテープの磁気テープ・データストレージで初めて使用された。この用語は、両方とも1973年に導入されたIBM 3420 モデル4/6/8 磁気テープ・ユニットおよび対応する3803 モデル2 テープ・コントロールユニットの開発中に造られた。IBMは、誤り訂正符号自体を「群符号化記録」と呼んでいる。しかし、GCRは6250bpi (250ビット/mm) の記録形式テープの全体を指すようになり、後に誤り訂正符号のない同様のRLL符号を使用する形式を指すようになった。

磁気テープに確実に読み取りおよび書き込みを行うには、書き込まれる信号に関するいくつかの制約に従う必要がある。1つ目は、2つの隣接する磁束反転が媒体上で媒体自体の磁気特性によって定義される一定の距離だけ離れていなければならないということ。2つ目は、読み取りクロックと書き込まれた信号の位相を保つために十分な頻度で反転が必要であるということである。つまり、信号はセルフクロッキングである必要があり、最も重要なことは、再生出力は磁束遷移の密度に比例するため再生出力を十分に高く保つことである。6250bpiテープが使用される前は、1600bpiテープは位相エンコード (PE) と呼ばれる技術を使用してこれらの制約を満たしていたが、その効率はわずか50%であった。6250bpi GCRテープの場合、(0, 2) RLL符号、またはより具体的には時々GCR (4B-5B) エンコーディングとも呼ばれる、4/5 (0, 2) ブロック符号が使用される。この符号では、4ビットのデータごとに5ビットを書き込む必要がある。符号はデータが何であったとしても、符号内または符号間で、0ビット (磁束反転の欠如によって表される) が2つを超えて連続して発生できないように構造化されている。このRLL符号は9つのトラックのそれぞれに送信されるデータに独立して適用される。

32の5ビット・パターンのうち、8つは連続する2つの0ビットで始まり、他の6つは連続する2ビットで終わり、さらに1つ (10001) には3つの連続する0ビットが含まれる。残りからオール1パターン (11111) を除去すると、16個の適切な符号ワードが残る。

6250bpi GCR RLL 符号一覧:

|  |  |
| --- | --- |
|  |  |

ニブルのうち11個 (xx00と0001を除く) は、最上位ビットの補数を先頭に追加することによって形成された符号を持つ、つまりabcdはaabcdとしてエンコードされる。他の5つの値には、11で始まる符号が割り当てられる。ab00形式のニブルには符号11baa、つまりab11の符号のビット反転が含まれる。符号0001には残りの値11011が割り当てられる。

当時の6250bpiテープは非常に高密度であったため、RLL符号では信頼性の高いデータストレージを確保するには十分ではなかった。RLL符号の上に、Optimal Rectangular Code (ORC) と呼ばれる誤り訂正符号が適用される。この符号は、パリティトラックとCRCに似た多項式符号の組み合わせだが、誤り検出ではなく誤り訂正用に構造化されている。テープに7バイトが書き込まれるごとに (RLLエンコード前)、8番目のチェックバイトが計算されてテープに書き込まれる。読み取り時には、パリティが各バイトで計算され、パリティトラックの内容と排他的論理和が計算され、多項式チェック符号が計算され、受信したチェック符号と排他的論理和が計算され、2つの8ビット・シンドローム(※原文ママ)・ワードが生成される。これらが両方とも0の場合、データには誤りがない。それ以外の場合は、テープコントローラの誤り訂正ロジックがデータをホストに転送する前に訂正する。誤り訂正符号は、任意の1つのトラック、または誤りのあるトラックが他の手段で識別できる場合は2つのトラック内の任意の数の誤りを訂正できる。

24000bpiで記録する新しいIBMハーフインチ 18トラック テープドライブでは、4/5 (0, 2) GCR が、8ビットを9ビットにマッピングする、より効率的な8/9 (0, 3) 変調符号に置き換えられた。

## ハードディスク

1970年代半ば、(スペリー・UNIVACの)ISS部門は、群符号を使用してメインフレームビジネス向けの大型ハードドライブの開発に取り組んでいた。

## フロッピーディスク

磁気テープドライブと同様、フロッピーディスクドライブには磁束反転 (遷移とも呼ばれ、1ビットで表される) の間隔に物理的な制限がある。

### マイクロポリス

GCR互換のディスケットドライブとフロッピー ディスクコントローラ (100163-51-8や100163-52-6など) を提供し、Micropolisは 51⁄4インチ 100tpi 77トラック ディスケットでの群符号化記録によるデータエンコーディングを承認した。1977~78年以来ドライブはトラックあたり12個の512バイトセクタを保存するようになった。

### マイクロ・ペリフェラルズ

Micro Peripherals, Inc. (MPI) は、1978年初頭から倍密度51⁄4インチ ディスクドライブ (片面B51ドライブや両面B52ドライブなど) とGCRを実装したコントローラソリューションを販売した。

### デュランゴ

デュランゴ・システムズ F-85 (1978年9月発表) は、独自の高密度4/5群符号化エンコーディングを利用して480KBを提供する片面51⁄4インチ 100tpi ディスケットドライブを使用した。このマシンは、元スペリーISSエンジニアによって設計されたWestern Digital FD1781フロッピーディスクコントローラを使用しており、77トラックのマイクロポリスドライブが搭載されていた。デュランゴ800シリーズなどの後のモデルでは、これはディスケットあたり960KB (フォーマット済み946KB) の両面オプションに拡張された。

### アップル

Apple IIフロッピー ドライブについては、スティーブ・ウォズニアックが (Disk IIドライブ自体とともに) 2つの制約を課すフロッピーコントローラを発明した:

- 任意の2つの1ビットの間に、最大1つの0ビットが存在する可能性がある。
- 8ビットの各バイトは1ビットで始まる必要がある。

これらの制限への準拠を保証する最も簡単な方式は、差動マンチェスタ符号化または  FM (周波数変調) に従って、各データビットの前に追加の「クロック」遷移を記録することである。4-and-4エンコーディングとして知られるこのAppleの実装では、トラックあたり256バイトのセクタを10個だけ単密度の51⁄4インチ フロッピーに記録することができた。各バイトに2バイトを使用する。

1978年春のディスクドライブの出荷の1か月近く前に、ウォズニアックは、より複雑なエンコード方式により、ディスク上の8ビットの各バイトに4ビットではなく5ビットの有用なデータを保持できることに気付いた。これは先頭ビットが設定されたバイトが34バイトあり、連続する2つの0ビットがないためである。このエンコーディングスキームは5-and-3エンコーディングとして知られるようになり、トラックあたり13セクタが許可された。これはApple DOS 3.1、3.2、および3.2.1、およびApple CP/Mの初期バージョン:で使用された。

予約済みGCRコード: 0xAAおよび0xD5。

ウォズニアックはこのシステムを「アップルでの私の最も素晴らしい経験であり、私が行った最高の仕事」と呼んだ。

その後フロッピードライブ コントローラの設計が変更され、ディスク上の1バイトに最大1組の0ビットを連続して含めることができるようになった。これにより各8ビットバイトに6ビットの有用なデータを保持できるようになり、トラックあたり16セクタが可能になった。このスキームは6-and-2エンコーディングとして知られており、Apple Pascal、Apple DOS 3.3、およびApple ProDOSで使用され、その後Apple LisaのApple FileWareドライブとMacintoshおよびApple IIの400Kおよび800K 31⁄2インチディスクでも使用された。Appleは当初このスキームを「GCR」と呼んでいなかったが、後にMFMエンコーディングスキームを使用するIBM PCフロッピーと区別するためにこの用語が適用された。

予約済み GCR コード: 0xAA および 0xD5。

### コモドール

独立して、Commodore Business Machines (CBM) は、Commodore 2040フロッピーディスクドライブ (1979年春発売) 用の群符号化記録スキームを作成した。2040ドライブに関連する制約は、連続して発生する0ビットが2つまでであるということであった; ドライブはバイトの最初のビットに特別な制約を課さなかった。これにより6250bpiテープドライブで使用されているものと同様のスキームを使用できるようになった。次の表に従ってデータの4ビットごとがディスク上で5ビットに変換される:

|  |  |
| --- | --- |
|  |  |

各コードは最大1つの0ビットで開始および終了するため、コードが連結された場合でも、エンコードされたデータに連続して2つを超える0ビットが含まれることはない。このエンコードでは、最大8つの1ビットを連続して使用できる。したがって、コモドールは10個以上の1ビットが連続するシーケンスを同期マークとして使用した。

このより効率的なGCRスキームでは、クロックレートを段階的に増加させることによる一定のビット密度記録でのアプローチ(ゾーン一定角速度、ZCAV)と、内側のトラックよりも外側のトラックに多くの物理セクタを保存する(ゾーンビットレコーディング、ZBR)を組み合わせることにより、コモドールは標準の片面単密度5.25インチ フロッピーに170KBを収めることができた(Appleは140KB(6-and-2エンコードの場合)または114KB(5-and-3エンコードの場合)もしくは(標準)FMエンコードフロッピーの容量は88KBのみであった)。

### シリウス/ヴィクター

同様に、1981~82年にチャック・ペドルによって設計されたVictor 9000 (別名 Sirius 1) の 5.25インチ フロッピードライブは、10ビットGCRと、9つのゾーンに分割された外側のトラックのドライブの回転速度を徐々に下げることによる一定のビット密度記録 (w:ゾーン等線速度 (ZCLV) の一種)維持と同時にトラックあたりのセクタ数を増加させて (ゾーンビットレコーディング (ZBR) の一種)の組み合わせを使い、96tpiメディアで606kB (片面) / 1188kB (両面) のフォーマット済み容量を達成した。

### ブラザー

1985年頃から、ブラザーは3.5インチ38トラックディスケットドライブを内蔵した専用ワードプロセッサ タイプライターシリーズを発売した。WPおよびLWシリーズの初期モデルは、12個の256バイト セクタを備えたブラザー独自の群符号化記録スキームを使用して、片面(倍密度)で最大120KB、両面倍密度 (DD) ディスケットで最大240KBを保存した。伝えられるところによると、プロトタイプはすでにベルリン国際コンシューマ・エレクトロニクス展1979 (IFA) で披露されていた。

### シャープ

1986年シャープはGCR (4/5) 記録を備えた片面あたり62464バイト(公称64kB×2、16トラック、8セクタ/トラック、512バイト/セクタ、48tpi、250kbit/s、270rpm)のフォーマット済み容量を持つポケットコンピュータシリーズ用に回転可能な2.5インチポケットディスクドライブソリューション(ドライブ: CE-1600F、CE-140F; 内部的にはFDU-250シャーシに基づく。メディア: CE-1650F)を発表した。

## その他の用途

GCRは、バーコード・エンコード方式 (パッキング効率、タイミング許容値、タイミング情報のストレージ・バイト量、およびDC出力レベル) での使用の可能性についても評価された。