パンチカードシステム
パンチカードシステム(Unit record equipmentまたはPunched card system、略称:PCS)は電子計算機が登場する以前に、パンチカードを利用してデータ処理を行った際に使われた機器の総称で、カード穿孔機(キーパンチ)、分類機(ソーター)、会計機(タビュレーター)などがあった。
電子計算機の発明以前、データ処理はタビュレーティングマシンの進化したパンチカードシステム(Punch Card System、PCS)と呼ばれる電気機械式機器で行われるようになった。和製英語だという主張もあるようだが、英語圏での使用例もある。英語圏ではユニットレコード装置(Unit Record Equipment)、電気会計機(Electric Accounting Machine、EAM)などとも呼ぶ。
ユニットレコードとは、19世紀末から20世紀初頭にかけて使われた、1つの文書上のオブジェクトや処理に関する全情報の記録を指した言葉である。例えば、図書館の索引カードはユニットレコードの一例である。ユニットレコード用の机も製造されており、パンチカードなどで記録されたユニットレコードを格納しておく机を tub file と呼んだ。当時(1888年)の書籍には「我々は鉄道用のあらゆる車両や機関車についての記録をパンチカードまたは他のユニットレコードの形で保持しており、それらは Car Accountant's Office または他の手段で作成された」という記述も見られる。ここから、パンチカードはユニットレコードの一種だが、ユニットレコードの方が幅広い意味を持つことがわかる。Markus Krajewski はこのユニットレコードの概念を発展させた人物を書誌学者のコンラート・ゲスナーだとしている。
20世紀後半にコンピュータが担った役割を20世紀前半ではPCSが産業界や政府関連で果たしたのである。データ処理はパンチカードのデッキ(束)を入力として様々な機器を連結してなされた。機器間のカードデッキのフロー(流れ)は大きな紙に標準化されたシンボルを使って記述され、そのような図を今ではフローチャートと呼ぶ。各機器はパンチカードを高速に処理するための機械式フィーダーを備えており、毎分百枚から2千枚のカードを送り込み、電気的センサーか光センサーで穴の位置を調べる。多くの機器の動作は着脱可能なプラグボードを使って指定できる。初期の機器は電気機械式のカウンターと継電器を使って構築されていた。電子部品は1940年代後半から導入され始めた。
PCSの最大の供給業者はIBMである。以下では主にIBMのPCS各機器について解説する。
基本データ単位は80桁のパンチカードである。各桁は一つの数字、文字、特殊記号などを表している。データ値は隣接する複数の桁による「フィールド」から構成される。例えば、社員番号5桁、時給レート3桁、ある週の実働時間2桁、部門番号3桁、プロジェクト課金コード6桁というふうに並んでいる。
元のデータはキーパンチと呼ばれる機械を使って人手で入力された。キーパンチにはタイプライター状のキーボードと未入力のカードと入力済みカードが置かれるホッパーで構成される。後にはカードにパンチした内容がカード上端に印字されるようになった(IBM 026 など)。場合によってはパンチされたカードは次の「検孔機 verifier」と呼ばれるキーパンチによく似た機械に送られる。検孔機の操作者はキーパンチと同じ内容を入力し、検孔機内部でそれがパンチ済みの内容と合っているかチェックする。問題なければ、カードの右端に小さなポッチがパンチされる。
PCSの主要な機能のひとつはパンチされたデータに従ってパンチカードのデッキを適切な順に分類(ソート)することである。同じデッキでも処理手順によって異なったソートをすることがある。IBM 80シリーズのようなソータは、ひとつの入力デッキを指定された桁の内容に従って13個の出力デッキに振り分ける。なお、13番目のデッキ格納場所は指定された桁に情報がパンチされていないカードやリジェクトされたカードのためのものである。ソートアルゴリズムとしては基数ソートやバケットソート、あるいはそれらの組み合わせが使われた。
データ処理業務は毎日バッチ形式で一括処理するのが一般的であった。一日の業務でパンチされたカードをソートしてからマスターデッキにマージし、その後作表処理が行われる。
リポートや集計は作表機(別名:会計機、例えば IBM 407会計機)で行われる。ソートされたデッキを供給すると、作表機が各カードの内容をそれぞれ一行で印字したり、指定されたフィールドの値が内蔵のカウンターに加算され、特殊なパンチ穴のあるマスターカードを検出するとカウンターの値を合計値として小計・総計を印字する。
後にプラグボードによるプログラムが可能となり、ひとつのカードのふたつのフィールドの値を入力として乗算なども行えるようになった。また、その計算結果を同じカードの所定のフィールドにパンチして記録することもできるようになった。
集団穿孔機 (Gang Punch) - 多数のカードに同じ内容を一度にパンチする機械
複製穿孔機 (Reproducing Punch) - 入力されたカードデッキと同じ内容のカードデッキを作成する(あるいは指定されたフィールドだけをコピーする)機械。例えば給与計算用のカードデッキから実働時間と給料のフィールドを除いた複製を作ることで次の月の給与計算に使うことができる。プログラマはバックアップを作るためにこの機械を使った。
合計穿孔機 (Summary Punch) - タビュレーティングマシンに連結し、集計結果をカードにパンチして別の用途に使えるようにしたもの。
マークセンスリーダ - いわゆるマークシートを読み取って、その内容をパンチカードにパンチする機械。
後の集団穿孔機(IBM 519 など)はこれら全ての操作を実行することができた。
IBM 046 Tape-to-Card Punch と IBM 047 Tape-to-Card Printing Punch(印字機能の有無以外には違いはない)は、さん孔テープから読み取ってパンチカードに穴を開けることでデータを複写する。IBM 063 Card-Controlled Tape Punch は逆にパンチカードを読み取ってそのデータをさん孔テープに穴を開けることで複写する。
照合機 (Collators) - ふたつの入力ホッパーと4つ以上の出力ホッパーがあり、プラグボードのプログラムに基づいてカードデッキをマージしたり照合したりする。
印字機 (Interpreter) - カードの内容を上端に印字する。一般にフォントの幅が穴の幅より広いため、60文字までしか印字できない。
分離機 (Decollator) - 複数枚綴りの定型文書を分離して別々のスタックにし、カーボン紙を取り去る。厳密にはPCSと直接の関係はない。
バースター (Burster) - ミシン目でページを分離する機械。これもPCSと直接の関係はない。
基本的に、作表機はパンチカードを1枚ずつ読み込み、一部(フィールド)を(必要なら並べ替えた上で)連続帳票に印字し、パンチカード上の1つ以上の数値をカウンタ(アキュムレータ)に加算する。初期の機種ではアキュムレータによってダイヤルがセットされるので、最終的に人間がダイヤルから総計を読み取っていた。後の機種では総計を直接印字可能になった。特定位置に穴のあるカードをマスターカードと呼び、通常とは扱いが異なる。例えば、顧客マスターカードをその顧客の購入商品のカード群をソートしたものに付け加える。これを送り状を作るためにタビュレーティングマシンに読み込ませると、送付先住所と顧客番号がマスターカードから読み込まれて印字され、個々の購入商品と価格が印字される。次の顧客マスターカードを検出すると、アキュムレータにある総額を印字し、ページ送りする。
ソーター以外のPCSはプラグボード制御盤を使ってプログラム可能であった。パネルにはグループ化された穴の配列がある。これらの穴を導線でつなぐことでプログラムする。カードのフィールドに相当する穴と何らかの制御(集計、四則演算など)に対応する穴をつなぐことで処理が行われる。一般にある処理を行うための配線済みプラグボードを複数用意して、業務ごとにプラグボードを入れ替えて使う。
ワイヤは長さごとに色が決まっていて、たくさんのワイヤが集積することでプログラミングが困難になるのを防いでいた。またワイヤには一時的なものと永続的なものがあり、永続的なものは特殊な工具を使わないと取り外せないようになっていて、デバッグ完了後はそのような配線を使うのが一般的であった。
なお、プラグボードの配線を「プログラミング」と呼ぶのは後世の呼称であり、当時は "functional wiring" などと呼んでいた。
1948年、IBM 604 が発表された。この機械はカード・プログラムド・カリキュレータ(Card Programmed Calculator、CPC)と呼ばれ、真空管を使った計算機構を備えていた。これは10年間で5600台を販売するベストセラーとなった。これを代替する目的で開発されたコンピュータが IBM 650 である。
初期のコンピュータプログラムは入力および保管にパンチカードを使用した。企業や大学にはキーパンチ機が並んだ部屋があり、プログラマはそのような部屋で作業した。IBM 407 会計機を使ってパンチカードの内容を印字し、プログラムのデバッグに活用することもあった。IBM 519 を使ってプログラムのカードデッキのバックアップを作ることもあった。519 は73~80桁の位置に連続番号を打つのにも使われた。これはFORTRANやCOBOLがその桁位置を使っていないことから、それらのプログラムデッキに活用された。順番に並んでいたデッキを落とすなどしてバラバラにしてしまった場合には IBM 80シリーズのソーターを使った。より簡単な方法としては、カードデッキの上端の側面にペンなどで何かを書いておくと正しく並んでいることが確認できた。
IBM 1401 のような初期の商用コンピュータはパンチカードを入出力として、より複雑な結果を得られるようになっていた。しかし、多くの場合記憶媒体としては磁気テープが使われ、磁気テープへのデータ入力手段としてパンチカードが使われるようになっていった。
作業手順が変わることに抵抗を示す組織は多く、コンピュータが登場してからもPCSが使われることは多かった。料金集計、マイクロフィルムアパーチャーカード(パンチカードの一部にマイクロフィルムを埋め込んだカード)、投票システムなど、PCSは21世紀になっても使われている。
System/3 は IBM のミッドレンジコンピュータの先祖とも言うべき機種だが、PCSを完全に置き換える目的で開発された。
日本でも、パンチカードシステムは比較的早期から使われてきた。1920年に予定された国勢調査に利用できるように、逓信省技師の川口松太郎が「川口式電気集計機」
を1890年米国国勢調査に使われたホレリス機に似せて開発した。これは実際に国勢調査の集計に利用されたが、全11台の内10台を関東大震災で焼失したので試用に終わり、その後もこの国産化は行われなかった。
その後は次のようなパンチカードシステムが輸入された。
内閣統計局、鉄道省、横浜税関など (1923年、パワーズ)
日本生命 (1925年、パワーズ)
日本陶器 (1925年、ホレリス C-T-R/IBM機)
日本生命 (1934年、バロース)
帝国生命 (1934年、ホレリス)
住友生命 (1937年、ホレリス)
第一生命 (1938年、ホレリス)
川崎飛行機 (1938年、ホレリス)
こうして第二次世界大戦前は、1920年代にはパワーズ(Powers Accounting Machine、後にレミントンランドに吸収)が多く、鉄道省のは世界最大数ともいわれた。しかし、1930年代には米国でもIBMがほぼ独占的になり、ホレリス機が多くなった。
1880年代にハーマン・ホレリスは、機械で読み取り可能な媒体にデータを記録することを発明した。機械読み取り可能なメディアのそれまでの用途は、ジャカード織機や機械化楽器のようなプログラム機械を駆動するための命令(データではない)のリストであった。「紙テープを使った最初の試行の後、彼はパンチングカードに落ち着いた」。「ホレリス・カード」と呼ばれることもあるこれらのパンチカードを処理するために、彼はキーパンチ、ソーター、タビュレータ・ユニット・レコード・マシンを発明した。これらの発明は、データ処理産業の基礎となった。タビュレータは、機械式カウンタをインクリメントするために電気機械式リレーを使用していた。ホレリスの方法は 1890年の国勢調査で使用された。1896年に彼が設立した会社、Tabulating Machine Company (TMC)は4つの会社のうちの1つで、1911年には5つ目の会社、Computing-Tabulating-Recording Company (後にIBMと改名) が合併して設立された。
1900年の国勢調査の後、恒久的な国勢調査局が設立された。国勢調査局とホレリス社との間で契約上の紛争があったため、国勢調査機工場(Census Machine Shop)が設立され、ジェームズ・パワーズらが1910年の国勢調査処理の一部を行うための新しい機械を開発した。1911年、パワーズは開発した機械の特許権を得て、国勢調査局を退職し、パワーズ会計機社を設立した。1927年、パワーズ社はレミントン・ランド社に買収された。1919年、フレドリック・ロージング・ブルは、ホレリスの機械を調査した後、雇用主のためにユニット・レコード装置の開発を開始した。ブルの特許は1931年に売却され、グループ・ブルの基礎となった。
これらの企業やその他は、1950年代にコンピュータが開発された後も、パンチングカードの作成、仕分け、集計などを行う汎用のユニット・レコードマシンを製造・販売していた。パンチカード技術は、ビジネスデータ処理の強力なツールへ急速に発展した。
1884年: ハーマン・ホレリスが "Art of Compiling Statistics" と題した特許を出願し、1889年1月8日に395782として発効。
1890年: アメリカ国勢調査局がホレリスの製作した装置を使用。
1896年: ホレリスが Tabulating Machine Company を創業。
1901年: Hollerith Automatic Horizontal Sorter
1906年: Hollerith Type I Tabulator。自動カードフィーダーと制御パネル(プラグボード)付きの最初のタビュレータ。
1914年: CTR社は1日に200万枚のパンチカードを生産。
1920年: CTR初の印字機能付きタビュレータ
1921年: ノルウェー人で保険会社に勤めていた技術者 Fredrik Rosing Bull がホレリスのマシンを研究し、独自にタビュレータを設計・製作。その後数年間で1ダースほどの機械を製作した。
1925年: IBM初の水平型ソータ IBM Type 80
1928年: IBM 301 (Type IV) - 初めて80桁のパンチカードを採用し、減算が可能。IBMはベンジャミン・ウッド、ウォーレス・ジョン・エッカート、コロンビア大学統計局と共同研究を開始。
1930年: IBMのものより1枚のデータ格納量が大きく、アルファベットも記録できるというレミントンランドの90欄カードが登場。
1931年: Fredrik Rosing Bull のパンチカード技術を事業化するため Groupe Bull が創業。
1931年: IBM初の乗算できるマシン IBM 600 Multiplying Punch。IBM初のアルファベットを扱えるタビュレーティングマシン(完全ではない) Alphabetic Tabulator Model B とその直後にリリースされた完全アルファベット対応の ATC。
1931年: ニューヨークワールド紙が、コロンビア統計局のために作られた特別なタビュレータ Columbia Difference Tabulator を "Super Computing Machine" と称した。このマシンには国中(カーネギー財団、イェール大学、ピッツバーグ大学、シカゴ大学、オハイオ州立大学、ハーバード大学、カリフォルニア大学、プリンストン大学など)から利用者が集まった。
1933年: IBM 401 - 数字以外の文字も扱えるようになった。毎秒150枚のカードを加算処理でき、文字データは毎秒80枚処理可能。
1934年: IBM 405 - 加算機能の容量が拡張され、カウンタのグループ化の柔軟性も向上している。英字の直接印字、直接減算などが可能。第二次世界大戦後までIBMの主力製品となった。
1937年: 初の照合機 IBM 077 Collator。このころIBMは32台の印刷機で日産500万枚から1000万枚のパンチカードを生産。
1940年: IBMのユニットレコード装置(ソータ)で初めて電子部品(三極管)を使用。
1943年: このころ、IBMは1万台のタビュレータをレンタルに出していた(乗算器は約2000台、キーパンチは24,500台)。
1946年: 除算のできる初のマシン IBM 602 をリリースしたが信頼性が低く、1948年には 602-A にアップグレード。 計算機構を電子化した IBM 603 Electronic Multiplier を製品化。
1948年: IBM 402 - 405の後継機。
1948年: 高機能で小型な IBM 604 Electronic Punch。
1949年: IBM 407 - 最後の標準的タビュレーティングマシン。コンピュータの入出力装置としても使われた。IBM 1130 のプリンターはこのマシンの印字機構を流用しており、1970年代中ごろまで使われた。
1949年: IBM 024 Card Punch、026 Printing Card Punch、082 Sorter、403 Accounting machine、Card Programmed Calculator (CPC) をリリース。
1952年: Remington Rand 409 Calculator (aka. UNIVAC 60, UNIVC 120) リリース。
1955年: IBMのパンチカード生産量は日産7250万枚となった。
1958年: 基本会計機 "Series 50" を発表。性能や機能を抑えて、レンタル料を低くしたマシン。
1960年: IBM 1401 をリリース。PCSからコンピュータへの移行が加速することになる。
1960年: 磁気コアメモリを採用した最後のPCS IBM 609 Calculator
1969年: IBM System/3 が登場。月額レンタル料が1,000ドルであり、さらにPCSからの移行を加速させた。96欄のやや小さいパンチカードを採用。1974年7月までに25,000台が出荷されている。
1971年: IBM 129 Card Data Recorder - キーパンチ兼カードリーダ/パンチ機。80欄カードに対応した最後のユニットレコード装置。主にコンピュータシステムのパンチカード入出力用に使われた。
1976年: IBM 407 Accounting Machine が販売終了
1978年: IBM 082, 084, 085, 087, 514, 548 の生産終了。System/3 の後継 System/38 を発表。
1980年: IBM 519 Document Originating Punch の最後の修理が行われた。
1984年: 1964年に発表された IBM 029 Card Punch の販売終了。
2010年: コンピュータ歴史博物館が、IBM 402 Accounting Machine と関連する装置群がある企業で使われ続けていることを報告。