JPH07200287A - 保護されたプログラム式メモリ・カートリッジとこれを使用するコンピュータ・システム - Google Patents

保護されたプログラム式メモリ・カートリッジとこれを使用するコンピュータ・システム

Info

Publication number
JPH07200287A
JPH07200287A JP6260179A JP26017994A JPH07200287A JP H07200287 A JPH07200287 A JP H07200287A JP 6260179 A JP6260179 A JP 6260179A JP 26017994 A JP26017994 A JP 26017994A JP H07200287 A JPH07200287 A JP H07200287A
Authority
JP
Japan
Prior art keywords
memory
bus
cpu
circuit
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6260179A
Other languages
English (en)
Other versions
JP2720909B2 (ja
Inventor
Lee Combs James
ジェームズ・リー・コームズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07200287A publication Critical patent/JPH07200287A/ja
Application granted granted Critical
Publication of JP2720909B2 publication Critical patent/JP2720909B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/201Playing authorisation given at platform level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2121Chip on media, e.g. a disk or tape with a chip embedded in its case

Abstract

(57)【要約】 【目的】 ロックされたメモリ・カートリッジとオーデ
ィオ、ビデオ、CDドライブ・コントローラ、補助プロ
セッサを含む、高性能のビデオおよびオーディオ操作の
ためのコンピュータ・システム。 【構成】 このコンピュータ・システムは、少なくとも
1つのバスが関連付けられたCPUを有し、バスは、少
なくとも1つのバス線を有する。カートリッジには、読
取り可能メモリ、メモリ制御回路、ロック制御回路およ
びコネクタが含まれ、これらのすべてが互いに回路接続
されている。コネクタを用いて、メモリ、メモリ制御回
路およびロック制御回路を、CPUに対して取外し可能
に回路接続することができる。メモリ制御回路は、リセ
ット時に、バス線の一部をスクランブルし、これによっ
てメモリ内のデータをスクランブルし、ロック制御回路
からの入力に応答してバス線のスクランブルを解除す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的にはコンピュー
タ・システム・アーキテクチャに関し、具体的には、コ
ンピュータ・システムで無許可のカートリッジを使用で
きなくし、無許可のシステムでカートリッジを使用でき
なくするためのアドレス・スクランブル式保護回路を有
する取外し可能プログラム式メモリ・カートリッジを有
するコンピュータ・システムに関する。
【0002】
【従来の技術】ビデオ・グラフィック・コンピュータ・
システムは、周知の人気のある消費者製品である。典型
的なシステムには、ゲームその他のアプリケーションの
画像を表示するため通常のテレビジョン・セットに接続
されるデータ処理装置が含まれる。このデータ処理装置
は、通常はカートリッジ形式でパッケージ化されている
読取り専用メモリ(ROM)から制御ソフトウェアを受
け取る。カートリッジは、データ処理装置に取外し可能
なかたちで挿入される。マウス、ジョイスティック、タ
ッチパッド、スイッチ・パッド、光線銃などの少なくと
も1つのポインティング装置も、データ処理装置に接続
され、これによって、制御ソフトウェアがアプリケーシ
ョンの実行に使用する位置情報を人間が入力できるよう
になっている。
【0003】データ処理装置には通常、単一の中央演算
処理装置(CPU)と、ランダム・アクセス・メモリ
(RAM)およびブートストラップ読取り専用メモリ
(ブートROM)のすべてを含む関連する揮発性および
不揮発性のメモリと、テレビジョン(RFビデオ)信号
ジェネレータと、さまざまなポインティング装置へイン
ターフェースするための入出力プロセッサとが含まれ
る。これらのデバイスは、回路接続されている。これら
のシステムの際立った特徴の1つが、マザーボードまた
はシステム・プレーナを使用して、これらの構成要素を
互いに電気接続することである。
【0004】このようなコンピュータ・システムでは、
構成要素は、電気信号を介して通信する。したがって、
多くの構成要素を電気回路接続して、構成要素から構成
要素へ信号を渡せるようにしなければならない。これら
の電気信号は、通常は、システム構成要素間の電気接続
によって伝えられる。典型的なタイプの電気接続には、
プリント回路ボード(PCB)上の金属トレース、多層
PCBの異なる層の間のバイア、めっきスルー・ホー
ル、プラグ、システム構成要素のピンからピンへと接続
された個々のワイヤが含まれる。通常は、電気信号のグ
ループと、その電気信号を伝える電気接続のグループ
を、「バス」と称する。したがって、「バス」と言え
ば、電気信号のグループ、電気信号を伝える電気接続の
グループ、または電気信号のグループと電気信号を伝え
る電気接続のグループの両方を指している可能性があ
る。
【0005】バスは、通常は「バス線」から構成され
る。個々の「バス線」に言及する場合、バスの電気接続
またはバスの電気信号を指す。コンピュータ・システム
内のメモリは、「バイト」と呼ばれる小さな部分に分割
される。メモリ内の各バイトは、個人の住居の独自の住
所(アドレス)に似た独自の「アドレス」を有する。メ
モリに記憶された情報を、「データ」と呼ぶ。コンピュ
ータ・システムには、通常は3つのバス、すなわち、ア
ドレス・バス、データ・バスおよび制御バスがある。コ
ンピュータが、メモリの特定のアドレスから情報を読み
取る時、CPUは、メモリ内のその特定の点のアドレス
をアドレス・バスにアサートし、制御バスを使用して、
そのアドレスに記憶された情報のアクセスを所望するこ
とをメモリ・チップに通信する。次に、メモリ・チップ
が、その位置に記憶された情報をデータ・バスにアサー
トする。最後に、CPUが、データ・バスからデータを
読み取る。この処理は非常に高速であり、毎秒数百万回
発生し得る。
【0006】通常のカートリッジを使用するシステムで
は、アドレス・バス、データ・バスおよび制御バスが、
データ処理装置からコネクタを介してカートリッジ内の
電気デバイスに引き出される。したがって、カートリッ
ジがデータ処理装置に接続されている間は、カートリッ
ジ内のプログラムROMが、データ処理装置内のブート
ストラップROMやシステムRAMと同様に、CPUに
電気回路接続している。
【0007】このようなシステムの商業的成功は、第三
者が競合カートリッジや競合データ処理装置を設計製造
する動機となる。無許可のカートリッジは、許可された
データ処理装置で実行でき、同様に、無許可のデータ処
理装置は、許可されたカートリッジに含まれるプログラ
ムを実行できる。このような競合装置は、必ずしも許可
された装置と「完全互換」ではない。したがって、無許
可の装置には誤動作の恐れがある。さらに、このような
無許可の装置の非互換性が、許可された装置の誤動作を
引き起こす可能性があり、したがって、メーカー許可さ
れたカートリッジおよびメーカー許可されたデータ処理
装置を製造する実体の印象を損なう可能性がある。
【0008】さらに、許可された装置は、通常は、設計
が多少は洗練され、実行に磨きをかけられたプログラム
を実行するように設計され、販売される。同様の洗練や
品質に欠けたプログラムまたはデータ処理装置を第三者
に市販させると、許可されたカートリッジや許可された
データ処理装置を製造する実体の印象がさらに損なわれ
る。したがって、カートリッジを使用するコンピュータ
・システムにおいては、2種類の無許可の使用、すなわ
ち(1)許可された処理装置での無許可のカートリッジ
の使用と(2)無許可の処理装置での許可されたカート
リッジの使用を防止することが望ましい。したがって、
データ処理装置での使用に関してカートリッジを認証
し、カートリッジの無許可の使用を防止する能力を有す
ることが望ましい。通常の従来技術装置は、この問題に
対するコスト効率のよい満足な解決を提供していない。
【0009】このような従来技術の1例が、カートリッ
ジ使用のゲーム装置の認証技法を対象とする米国特許第
4799635号明細書に見られる。ソフトウェア制御
式マイクロプロセッサが、データ処理装置とカートリッ
ジのそれぞれに存在し、関連アルゴリズムを実行してそ
の結果を比較する。カートリッジをデータ処理装置に挿
入する時、ゲーム装置がそのカートリッジを受け入れ、
それを用いて動作する前に、比較に成功しなければなら
ない。この手法は、かなり複雑であり、マイクロコント
ローラをカートリッジ設計に追加しなければならないの
で、カートリッジの製造コストが高くなる。
【0010】
【発明が解決しようとする課題】したがって、ホスト・
データ処理装置に許可されたカートリッジだけを受け入
れさせ、無許可のシステムでの許可されたカートリッジ
の使用を防止する、ROMカートリッジ用の単純な安全
保護回路を提供することが望ましい。
【0011】さらに、通常の従来技術システムは、さま
ざまな構成要素の間でデータを受け渡しするために1つ
のシステム・バスだけを有する。システム・バスが1つ
しかないと、すべての入出力装置が、メモリ・アクセス
に関してCPUに依存するので、システム性能が低下す
る。さらに、通常のシステムは、高性能のビデオ、グラ
フィックスおよび音声の処理という問題に対する一体化
された解決策を提供しない。
【0012】
【課題を解決するための手段】本発明によれば、プログ
ラム・カートリッジに、CPUとそのカートリッジ内の
プログラムROMの間に挿入されるアドレス・スクラン
ブル回路とロック制御回路が設けられる。システムの電
源投入時に、アドレス・スクランブル回路がカートリッ
ジを「ロック」し、データをアクセスできなくする。デ
ータ処理装置は、ロック制御回路にある「組合せ」を通
信し、アドレス・スクランブル回路にプログラム・カー
トリッジを「ロック解除」させることによって、プログ
ラム・カートリッジを「ロック解除」する。
【0013】アドレス・スクランブル回路は、CPUと
カートリッジ内のROMの間のアドレス・バスのアドレ
ス線をスクランブル(信号暗号化)することによって、
カートリッジをロックする。アドレス線がスクランブル
されている時でも、CPUはROM内のメモリ位置をア
クセスできる。しかし、メモリ内のデータは、メモリ内
の誤ったアドレスにあるように見える。したがって、C
PUは、アドレス・スクランブル回路がアドレス線をス
クランブルしている間は、カートリッジ内のROMから
プログラムを実行できない。したがって、カートリッジ
が「ロック」される。
【0014】カートリッジを「ロック解除」するには、
CPUが、アドレス・バス上に所定のアドレスのシーケ
ンスをアサートする。このアサートは、プログラムRO
Mがスクランブルされており、したがってプログラムR
OM内のコードを実際には実行できないので、メモリ対
レジスタ演算に過ぎない。ROM内のコードを実行しよ
うと試みても、システム・クラッシュが発生する。とい
うのは、通常の命令が多バイト命令であり、バイトの順
序がスクランブルされているので命令を正しく実行でき
ないからである。
【0015】アドレスのシーケンスは、カートリッジを
ロック解除するための「組合せ」として働く。ロック制
御回路は、アドレス・バスを監視し、CPUによってア
ドレス・バスに正しい「組合せ」が書き込まれるのを待
つ。一旦正しいアドレスのシーケンスを検出したなら
ば、ロック制御回路は、アドレス・スクランブル回路
に、ROMとCPUの間のアドレス線のスクランブルを
停止させる。アドレス線はもはやスクランブルされてい
ないので、CPUは、カートリッジ内のROMからプロ
グラムを実行できるようになる。カートリッジが「ロッ
ク解除」されたのである。
【0016】カートリッジにアドレス・スクランブル回
路とロック制御回路を追加しても、カートリッジのコス
トはほとんどまたは全く増加しない。ROMの他に、通
常の従来技術のカートリッジは、当技術分野で周知の
「アドレス・デコーダ」と呼ばれるプログラム可能論理
チップを内蔵している。通常のプログラム可能論理チッ
プは、アドレス・デコーダならびに本発明のアドレス・
スクランブル回路およびロック制御回路を実施するのに
十分な容量を有する。したがって、本発明は、追加チッ
プなしでカートリッジに追加でき、したがって追加コス
トはほとんどまたは全くなしに機能を追加できる。
【0017】したがって、カートリッジおよびデータ処
理装置の無許可の使用を防止する非常にコスト効率の良
い方法を提供することが、本発明の長所である。
【0018】ロック式カートリッジのほかに、本発明
は、大容量カスタム・チップを利用して、高速高解像度
高分解能オーディオ・ビデオ・システムを実施するのに
必要な多くの作業を実行する。このチップには、CPU
へのインターフェース、CPU「キャッシュ」、メモリ
・コントローラ、メモリ・アービトレータ、DRAMリ
フレッシュ機構、ビデオ・コントローラ、コンパクト・
ディスク(CD)コントローラ、ディジタル信号プロセ
ッサ(DSP)音響プロセッサおよびブリッタ(ブロッ
ク転送機能)グラフィックス補助プロセッサが含まれ
る。この「オーディオ/ビデオ/CDコントローラ/補
助プロセッサ」(A/V/CDコントローラ/補助プロ
セッサ)を使用すると、超高速高解像度システムのコス
ト効率が非常に高くなる。データ処理システム全体に
は、CPU、A/V/CDコントローラ/補助プロセッ
サ、メモリ、TV信号生成回路、入出力プロセッサ、2
つのデコーダ・プログラム可能アレイ論理デバイス(デ
コードPAL)、2つのカートリッジ・コネクタおよび
拡張コネクタが含まれる。
【0019】A/V/CDコントローラ/補助プロセッ
サは、CPUによって生成されたシステム・バスから第
2システム・バス(システム'・バス)を生成する。シ
ステム・メモリ(ビデオRAM、システムRAMおよび
ブートROMを含む)は、システム'・バスを介してイ
ンターフェースされる。カートリッジROMは、システ
ム・バスを介してインターフェースされる。さらに、プ
ロセッサ・「キャッシュ」は、システム・バスを介して
インターフェースされる。したがって、CPUは、A/
V/CDコントローラ/補助プロセッサがシステム・メ
モリに関する機能を実行している間にカートリッジRO
Mと「キャッシュ」をアクセスでき、これによって、C
PUとA/V/CDコントローラ/補助プロセッサの並
列動作が可能になる。
【0020】したがって、本発明のもう1つの長所は、
高速高分解能コンピュータ・システムを設計するための
複数チップ解決を提供することである。
【0021】上記その他の本発明の長所は、本発明の詳
細な説明からより明らかになるはずである。
【0022】
【実施例】図1および図2を参照すると、本発明のコン
ピュータ・システム10が示されている。図1からわか
るように、コンピュータ・システム10には、プログラ
ム・カートリッジ14が取外し可能に接続されたデータ
処理装置12が含まれる。また、データ処理装置12に
は、標準テレビジョン・セット(TV)16と、任意指
定のキーボード18と、1つまたは複数の任意指定のコ
ントローラ20aおよび20bと、任意指定のCDドラ
イブ22が接続される。図1には示されていないが、T
V16は、コンポジット・ビデオ信号を受け入れる表示
装置と1対のスピーカに置き換えることができる。
【0023】データ処理装置12には、中央演算処理装
置(CPU)30、オーディオ/ビデオ/CDドライブ
(A/V/CD)コントローラ/補助プロセッサ32、
システム・メモリ34、第1のデコード・チップPAL
1 35a、第2のデコード・チップPAL2 35b
(図5にも示されている)、入出力補助プロセッサ3
6、2つのカートリッジ・コネクタ(1つは符号37a
として図示され、もう一方は図示されていない)、オー
ディオ信号とビデオ信号の生成に必要な追加回路38、
および拡張コネクタ(図5の39)が含まれる。これら
のデバイスは、図1に示された回路接続で接続される。
追加回路38を、図2に示し、図2に関連する文で詳細
に説明する。
【0024】CPU30は、当技術分野で周知のとお
り、複数のバス、すなわちデータ・バス31a、アドレ
ス・バス31bおよび制御バス31cを生成する。これ
ら3つのバスをまとめて、システム・バス31と称す
る。好ましい実施例では、CPU30は、Intel Corp社
(3065 Bowers Ave., Santa Clara, California, 9505
1)製造の80376である。80376は、周知の8
0386SXのバリエーションであり、当技術分野で周
知であり、Intel Corp社から入手可能である。8037
6は、16ビット・モードではなく32ビット・モード
で起動する点が80386SXと異なる。具体的に言う
と、CR0レジスタは、強制的に0011H(16進表
記の0011)状態にされ、ビット0が強制的に論理1
にされているので、結果として376が32ビット・メ
モリ・モードで動作する。仮想386動作を可能にする
ため、ページングがイネーブル回路される。
【0025】A/V/CDコントローラ/補助プロセッ
サ32は、図5に関連する文で詳細に説明する。ここで
は、A/V/CDコントローラ/補助プロセッサ32
に、メモリ・リフレッシュ機構、ビデオ・コントロー
ラ、ブリッタ(ブロック転送機能)グラフィックス補助
プロセッサ、CDドライブ・コントローラ、ディジタル
信号プロセッサ(DSP)音響補助プロセッサ、および
6つの可能なバス・マスタ(CPU、ブリッタ、DS
P、メモリ・リフレッシュ機構、ビデオ・コントローラ
およびCDドライブ・コントローラ)の間でシステム・
メモリへのアクセスを調停するためのアービトレータが
含まれると言うだけに留めておく。アービトレータは、
本明細書に記載のとおり変動するデバイス優先順位を制
御し、A/V/CDコントローラ/補助プロセッサ32
内のすべてのデバイスと電気回路接続している。たとえ
ば、CPU30は、割込みが発生するまではすべてのバ
ス・マスタのうちで最低の優先順位を有する。したがっ
て、アービトレータは、CPUインターフェース60と
割込みコントローラ68の両方に回路接続している。
【0026】CPU30には、システム・バス31が関
連付けられている。システム・バス31とは、図1に示
されたデータ・バス31a、アドレス・バス31bおよ
び制御バス31cの組合せを指す。A/V/CDコント
ローラ/補助プロセッサ32は、システム・メモリ34
に関するアービトレータである。したがって、システム
・バス31は、A/V/CDコントローラ/補助プロセ
ッサ32によって、システム・バス'61(データ'・バ
ス61a、アドレス'・バス61bおよび制御'バス61
cを含む)に変更される。
【0027】システム・メモリ34には、画面RAM、
システムRAM、およびブートストラップROMが含ま
れる。システム・メモリ34については、図5に関連す
る文で詳細に説明する。
【0028】入出力補助プロセッサ36は、CPU30
を、キーボード18、コントローラ20aおよび20
b,デジタイザ(図示せず)、マウス(図示せず)、プ
リンタ(図示せず)、タッチパッド(図示せず)など、
多数の入出力装置にインターフェースする。好ましい実
施例では、入出力補助プロセッサ36が、Motorola Cor
p社製造の2MHzで走行する事前プログラムされたM
C68HC705C8(以下では「68HC705」と
称する)である。68HC705入出力補助プロセッサ
36は、68HC705を周辺装置として構成すること
によって、すなわち(1)PA0ないしPA7をデータ
・バス31aのD0ないしD7に接続し、(2)PB
7、PB1およびPB2を、それぞれアドレス・バス3
1bおよび制御バス31cのGPIO1(下で説明する
ように、A/V/CDコントローラ/補助プロセッサ3
2によってデコードされる32バイト・アドレス範
囲)、A1およびA2に接続し、(3)PB3、PB4
およびPB5を、それぞれ制御バス31cのADS、R
EADYおよびW/Rに接続することによって、CPU
30にインターフェースされる。したがって、入出力補
助プロセッサは、入出力空間内で4つの16ビット・ア
ドレス(以下ではAS0、AS2、AS4およびAS6
と称する)を有するものとしてデコードされる。
【0029】68HC705内のプログラムは、下記に
従ってCPU30とインターフェースする。68HC7
05は、プロセッサ・バスに直接取り付けられ、CPU
30に対する入出力ポートとして働くように設計されて
いる。1対の内部ラッチが、各プロセッサ間で受け渡し
されるデータを、もう一方のプロセッサが受取りの準備
ができるまで保持する。各プロセッサに対する状況ビッ
トが、データ・ラッチの状態を示す。各プロセッサは、
状況ビットを検査することによって、前のデータが読み
取られたかどうかを知り、新しいデータが待機中である
かどうかを知ることができる。
【0030】入出力補助プロセッサ36は、(1)50
msタイマ、(2)入力装置用の直列コントローラ・リ
ンク、(3)カートリッジ感知、(4)システム・リセ
ットおよび(5)CDドライブ22用のデータ/ストロ
ーブ/確認(DSA)CD制御通信リンクという機能を
実施する。
【0031】50msタイマは、入出力補助プロセッサ
36の67HC705のウォッチドッグ・タイマを使用
して実施される。ウォッチドッグ・タイマが満了した
時、入出力補助プロセッサ36は、A/V/CDコント
ローラ/補助プロセッサ32のアナログ割込み1(AI
1)を使用してCPU30に割り込む。CPU30は、
上で述べた16ビット入出力ポートAS0を読み取るこ
とによってこれに応答する。これによって、A/V/C
Dコントローラ/補助プロセッサ32が、入出力補助プ
ロセッサ36を活動化し、これによって、CPU30と
入出力補助プロセッサ36の間のデータ転送を引き起こ
す。
【0032】コントローラ20aおよび20b、キーボ
ード18その他すべての入出力装置は、直列コントロー
ラ・リンクを介して入出力補助プロセッサ36に接続さ
れる。コントローラは、制御装置の移動を、直列リンク
に沿った伝送に適したフォーマットに変換する。コント
ローラは、コントローラ直列データ・リンクを介して、
システム装置にデータ・パケットを送る。データ・パケ
ットは、入出力装置のタイプによって異なる。座標型装
置(マウス、アナログ・ジョイスティック、タッチパッ
ドなど)は、スイッチ開閉型装置(キーボード、ディジ
タル・ジョイスティック、スイッチ・パッドなど)と異
なるデータ・パケットを有する。
【0033】直列コントローラ・リンクは、データ受信
線、VCC(+5V直流)線およびグラウンド線という
3本の信号線から構成される。68HC705は、PD
0/RDIピンを使用してコントローラ直列リンクのデ
ータ受信線を実施する。このピンは、周知の非同期フォ
ーマットを使用する直列装置へのインターフェースとし
て使用するように設計されている。その代わりに、クロ
ック同期フォーマットを使用することも可能である。直
列コントローラ・リンクは、3導体コネクタによって外
部装置に接続される。入力装置は、デイジー・チェーン
式に接続され、したがって、物理的には、1つの装置だ
けがデータ処理装置12に接続される。
【0034】カートリッジ感知は、入出力補助プロセッ
サ36にカートリッジ・コネクタ37aのピンをポーリ
ングさせることによって実施される。ピンは、システム
・プレーナ上のプルアップ抵抗によって論理1にプルア
ップされ、正しく接続されたカートリッジは、このピン
を論理0にプルダウンする。
【0035】リセットは、入出力補助プロセッサ36
に、CPU30およびA/V/CDコントローラ/補助
プロセッサ32のリセット信号に対する制御を与えるこ
とによって実施される。CPU30は、入出力補助プロ
セッサ36にコンピュータ・システム10をリセットす
るように指令することができる。さらに、入出力補助プ
ロセッサ36は、システムのリセット・スイッチ(図示
せず)を監視し、スイッチが閉じられるのを検出した時
にシステムをリセットする。
【0036】DSA CD制御通信プロトコルは、68
HC705の3つのピンを使用することによって実施さ
れる。入出力補助プロセッサ36は、このプロトコルを
使用して、CDドライブ22にコマンドを通信し、CD
ドライブ22からのメッセージをCPU30にリレーす
る。
【0037】第1のデコード・チップPAL1 35a
は、図1に示されるように、アドレス・バス31bおよ
び制御バス31cを介して、CPU30、A/V/CD
コントローラ/補助プロセッサ32および2つのカート
リッジ・コネクタ37a(一方のみ図示)と電気回路接
続している。デコード・チップPAL1 35aは、入
力として上位2つのアドレス線を受け入れ、80376
であるCPU30の16MBアドレス空間を、3つのチ
ップ選択線によって表される4つの4MB空間にデコー
ドする。4MB空間のうちの2つは、カートリッジ・コ
ネクタ37a(一方のみ図示)用であり、1つはA/V
/CDコントローラ/補助プロセッサ32用である。上
位4MBと下位4MBは、A/V/CDコントローラ/
補助プロセッサ・チップ選択に対してデコードされ、残
り2つの4MB領域は、2つのカートリッジ・コネクタ
・チップ選択に対してデコードされる。
【0038】データ処理装置12は、プログラム・カー
トリッジ14をCPU30および他のシステム構成要素
と回路接続させるための1対のカートリッジ・コネクタ
37a(一方のみ図示)を有する。プログラム・カート
リッジ14は、金めっきされた70ピン(2列の35導
体)カード・エッジ・コネクタ37bを介して、データ
処理装置12に接続される。データ処理装置12は、カ
ード・エッジ・コネクタ37bのカード・エッジ接続を
受け入れるためのカートリッジ・コネクタ37aを2つ
有する。プログラム・カートリッジ14は、カートリッ
ジ・コネクタ37aに一致する金めっきされたカード・
エッジ接続を有し、プログラム・カートリッジ14をデ
ータ処理装置12に取外し可能に接続できるようになっ
ている。下記の信号が、カートリッジ・コネクタ37a
(一方のみ図示)を介して外部装置と通信される。シス
テム・バス31信号、DSA CD制御信号、I2
CDデータ信号、カートリッジ感知線、電源、グラウン
ド、アナログ割込み1またはアナログ割込み2(各カー
トリッジが独自の割込みを有する)、GPIO2または
GPIO3、ロック線(80376または80386S
Xのシステム・バス31の通常の信号)、および、デコ
ード・チップPAL1 35aによって生成されるカー
トリッジ選択。
【0039】さらに、データ処理装置12は、単一の1
00ピン(50ピンが2行)カード・エッジ拡張コネク
タを有する(図1には示されておらず、図5に符号39
として示されている)。拡張コネクタ39を用いると、
装置によってシステム・メモリ34にメモリを追加で
き、他のさまざまな特徴を追加できるようになる。拡張
コネクタ39に接続される装置は、拡張コネクタに一致
する金めっきされたカード・エッジを有し、装置をデー
タ処理装置12に取外し可能に接続できるようになって
いる。下記の信号が拡張コネクタ39を介して外部装置
に通信される。システム'・バス信号(図5に関連する
文で説明する)、DSA CD制御信号、I2S CD
データ信号、拡張コネクタ39感知線、電源、グラウン
ド、CAS線、RAS線および、デコード・チップPA
L2 35bによって生成される拡張コネクタ39選
択。
【0040】図1の追加回路38を、図2に示す。図2
を参照すると、追加回路38には、4つのデバイス、す
なわちビデオ・ディジタル・アナログ変換器(ビデオD
AC)40、NTSC/PAL(PALは周知の欧州テ
レビジョン信号標準規格を指す)エンコーダ42、RF
変調器44、およびオーディオ・アナログ・ディジタル
変換器/ディジタル・アナログ変換器/圧縮器/伸長器
(ADC/DAC/コーデック)46が含まれる。
【0041】A/V/CDコントローラ/補助プロセッ
サ32は、図5に関連する文で詳細に説明する複数の機
能ブロックを有する。ここでは、そのようなブロックの
2つが、ビデオ・コントローラ66とディジタル信号プ
ロセッサ(DSP)74であると述べれば十分である。
【0042】A/V/CDコントローラ/補助プロセッ
サ32のビデオ・コントローラ66は、外部のビデオD
AC40と接続され、ビデオDAC40は、ビデオ・コ
ントローラ66からの18ビットの画素情報(赤、緑、
青にそれぞれ6ビット)を、当技術分野で周知のRGB
信号に変換する。ビデオDACの各カラー・チャネル
(赤、緑および青)は、図3に示されるように、R2R
抵抗ツリーと2N2222トランジスタによって実施さ
れる。図3のデバイスは、図示のように回路接続され
る。図3の抵抗41aないし41jは、図示の値を有す
る、すべて0.25Wの抵抗であり、5%以内の公差を
有する。トランジスタ43は、2N2222である。
【0043】もう一度図2を参照すると、RGB信号
は、NTSC/PALエンコーダ42によってNTSC
コンポジット・ビデオに変換される。NTSC/PAL
エンコーダ42は、A/V/CDコントローラ/補助プ
ロセッサ32のビデオ・コントローラ66によって生成
されるクロマ(彩度)・クロック信号、HSYNC信号
およびVSYNC信号と、ビデオDAC40によって生
成される赤、緑および青のビデオ出力とを受け入れ、周
知のNTSCビデオ・フォーマットまたはベースバンド
・ビデオ・フォーマットのコンポジット・ビデオ信号を
生成する。その代わりに、周知のPAL(欧州テレビジ
ョン信号標準規格)フォーマットを生成できる。コンポ
ジット・ビデオ信号は、当技術分野で周知のとおり、単
一のメスRCA型フォノジャックを用いて外部装置に接
続される。好ましい実施例では、NTSC/PALエン
コーダ42が、Motorola Corp社製造のMC1377で
ある。
【0044】RF変調器44は、MC1377からのコ
ンポジット・ビデオ信号を、オーディオADC/DAC
/コーデック46からの左右のオーディオ・ライン・ア
ウト信号と共に搬送周波数に乗せて、「RFビデオ」と
記された、TV16への直接入力に適したRFビデオ信
号を生成する。異なるPAL(欧州テレビジョン信号標
準規格)フォーマットとNTSCフォーマットを生成す
るためには、異なるRF変調器と水晶発振器を使用する
必要がある。RFビデオ信号は、当技術分野で周知のよ
うに、単一のメスF型同軸コネクタによって外部装置に
接続される。
【0045】オーディオADC/DAC/コーデック4
6は、周知のPhilips I2Sプロトコルに適合する直列
リンクを用いてDSP74にリンクされる。オーディオ
ADC/DAC/コーデック46は、アナログ信号をデ
ィジタル信号に変換し、ディジタル信号をアナログ信号
に変換し、ディジタル・データの圧縮と伸長を行う。オ
ーディオADC/DAC/コーデック46は、任意指定
のマイクロホンからの外部ステレオ・アナログ・データ
をA/V/CDコントローラ/補助プロセッサ32にイ
ンターフェースする。アナログ入力は、標準ステレオ1
/4インチ(6.35mm)コネクタを用いて外部装置
に接続される。また、オーディオADC/DAC/コー
デック46は、左右のオーディオ・ライン・アウト信号
を生成することによって、A/V/CDコントローラ/
補助プロセッサからのディジタル・データを外部装置に
インターフェースする。これらの信号は、当技術分野で
周知のとおり、任意指定のスピーカなどの外部装置に、
2つのメスRCAフォノジャックを用いて接続される。
上で述べたように、オーディオ・ライン信号も、RFビ
デオ信号に追加される。
【0046】好ましい実施例では、オーディオADC/
DAC/コーデック46は、Crystal Semiconductor社
製造のCS4216である。この部品には、プログラム
可能利得を有するマイクロホン入力ならびにプログラム
可能減衰器を有する出力が含まれる。利得と減衰は、ど
ちらもDSP74によってプログラム式に制御される。
【0047】その代わりに、オーディオADC/DAC
/コーデック46をPhilips社製造のTDA1311
DACで置き換えることも可能である。このチップを使
用する場合、ADC機能とコーデック機能が使用不能に
なる。
【0048】最後に、データ処理装置12は、拡張コネ
クタ39のチップ選択を実施するのに使用される、デコ
ード・チップPAL2 35bを有する。デコード・チ
ップPAL2 35bは、システム'・バス61を介し
て、A/V/CDコントローラ/補助プロセッサ32と
拡張コネクタ39に回路接続している。デコード・チッ
プPAL2 35bは、A/V/CDコントローラ/補
助プロセッサ32に、F20000Hから始まる128
KブロックのシステムROMのデコードだけを許可す
る。F40000HからFFFFFFHまでの範囲は、
拡張コネクタ39が使用できるようにデコード・チップ
PAL2 35bがデコードする。デコード・チップP
AL2 35bによってデコードされるこのROMブロ
ックは、拡張コネクタ39を介してコンピュータ・シス
テム10にROMを追加するのに使用される。
【0049】図1からわかるように、プログラム・カー
トリッジ14には、プログラムROM50とロック回路
52が含まれる。プログラムROM50には、CPU3
0での実行に適したコードが、読取り専用メモリ・フォ
ーマットで格納される。代替方法では、バッテリ・バッ
クアップ式RAMなど、他のメモリ・タイプを、プログ
ラム・カートリッジ14内の記憶装置として使用でき
る。プログラムROM50は、図1に示されるようにC
PU30と回路接続している。好ましい実施例では、ロ
ック回路52に、アドレス・スクランブル回路54など
のメモリ制御回路と、ロック制御回路56が含まれる。
【0050】アドレス・スクランブル回路54は、図1
および図4からわかるように、アドレス・バス31b上
でプログラムROM50とCPU30の間に挿入され、
スクランブルされたアドレス"・バス55を生成する。
図からわかるように、アドレス・スクランブル回路54
は、入力としてすべてのアドレス線を有する必要はな
い。アドレス・スクランブル回路54は、nビットのア
ドレス・バス31bのうちm本のアドレス線だけがスク
ランブルされるように実施することができる。図4で
は、アドレス線A0ないしAmをスクランブルしてA0'な
いしAm'を生成し、これらがプログラムROM50に入
力される。データを十分にスクランブルするためには、
下位2つのアドレス線のうちの少なくとも1つをスクラ
ンブルしなければならない。図1および図4からわかる
ように、アドレス・スクランブル回路54は、当技術分
野で周知のとおり、プログラムROM50の通常のチッ
プ選択57も生成する。
【0051】好ましい実施例では、アドレス・バス31
bの3本のアドレス線A0、A1およびA2をスクランブ
ルして、アドレス"・バス55を形成する。アドレス・
バス31bの残りの線は、アドレス"・バス55と同一
である。アドレス・バス31bの線A0は、アドレス"・
バス55の線A2と入替えられる。アドレス・バス31
bの線A2は、アドレス"・バス55の線A1と入替えら
れる。最後に、アドレス・バス31bの線A1は、アド
レス"・バス55の線A0と入替えられる。これによっ
て、プログラムROM50内のデータが効果的にスクラ
ンブルされ、実行不能になる。さらに、プログラムRO
M50内の各データ・バイトは、それでも独自のアドレ
スを有しているので、カートリッジのロック解除を試み
る前にプログラムROM50のチェックサム(繰上りを
無視してすべてのバイトを加算すること)を計算でき
る。
【0052】ロック回路52全体は、当技術分野で周知
のデバイスの中でも、プログラム可能アレイ論理(PA
L)、プログラム可能論理デバイス(PLD)、応用分
野特定集積回路(ASIC)またはフィールド・プログ
ラム可能ゲート・アレイ(FPGA)で実施できる。ロ
ック制御回路56には、同期式状態生成回路と回路接続
された複数の比較器が含まれる。この状態生成回路は、
「ロック」状態に初期設定され、アドレス・スクランブ
ル回路54にアドレス線をスクランブルさせる。誤った
アドレスを与えられると、状態生成回路はロック状態に
留まる。アドレスの正しいシーケンスのアドレスのそれ
ぞれが、アドレス・バスにアサートされるごとに、適当
な比較器がそのアドレスの存在を示し、状態生成回路に
次の状態に遷移させる。正しいアドレスが正しい順序で
提示された場合、状態生成回路は「ロック解除」状態に
入り、アドレス・スクランブル回路54にアドレス線の
スクランブルを停止させる。アドレス・スクランブル回
路54が「ロック解除」される前のどの時点でも、誤っ
たアドレスを与えると、ロック制御回路56は初期の
「ロック」状態に戻る。ロック制御回路56がアドレス
・スクランブル回路54をロック解除した後には、ロッ
ク制御回路56は、この機械がリセットされるか、シス
テム電源の切断と再投入が行われない限り、アドレス・
スクランブル回路54をロック解除状態に保つ。
【0053】代替方法では、1つまたは複数の事前に選
択された事象が発生した時に、ロック制御回路56がロ
ック状態に再入して、アドレス・バス上に正しいアドレ
スのシーケンスが正しい順序でアサートされるまで、ア
ドレス・スクランブル回路54にアドレス線をスクラン
ブルさせるように、ロック制御回路56を構成すること
ができる。この代替方法でも、ロック制御回路56は、
アドレスが正しいシーケンスでアサートされることを必
要とする設計にする必要はない。そうではなくて、正し
い順序に無関係に、事前に選択されたアドレスのすべて
がアサートされることだけを必要とするように、状態生
成回路を設計することができる。
【0054】システムの電源投入時には、ロック制御回
路56が、アドレス・スクランブル回路54に、CPU
30からプログラムROM50へのアドレス線のうちの
1つまたは複数をスクランブルさせる。さらに、ロック
制御回路56は、アドレス・スクランブル回路54に、
システムのリセットや単安定マルチバイブレータの満了
など、他の事象に応答してアドレス線をスクランブルさ
せるように設計することも可能である。後者の場合、C
PUが周期的にアドレス・バス31b上に正しい組合せ
をアサートすることが必要になる。スクランブルは、2
つ以上のアドレス線の入替え(たとえば、アドレス線A
3とアドレス線A6の入替え)か、1つまたは複数のア
ドレス線を1つまたは複数の他のアドレス線に複製する
(たとえば、アドレス線A3に現れる信号が、アドレス
線A3、A4およびA5に同時に現れるようにするな
ど)という形にすることができる。好ましい実施例で
は、アドレス・バスの導体経路を物理的にスクランブル
する(アドレス線のスクランブルに電気機械式リレーを
使用する場合にはそうなる)のではなく、アドレス・バ
ス導体経路上の信号を電子的に入替える。さらに、代替
方法では、アドレス・スクランブル回路54が、ランダ
ムに選択される複数のスクランブル・パターンを使用す
ることも可能である。
【0055】したがって、カートリッジは「ロック」さ
れ、無許可の装置では使用できない。代替方法では、メ
モリ制御回路を、アドレス・スクランブル回路54に制
限する必要はない。ロック効果は、データ・バス31a
のスクランブル、制御バス31cのスクランブル、また
は、データ・バス31a、アドレス・バス31bおよび
制御バス31cのスクランブルの任意の組合せもしくは
置換を使用して達成できるはずである。したがって、よ
り包括的な「バス線スクランブル」を使用してメモリ制
御回路を実施できるので、アドレス・スクランブル回路
54は、アドレス・バス31bの線をスクランブルしな
くてもよい。
【0056】アドレス・スクランブル回路54は、ロッ
ク制御回路56からの出力に応答して、正しいアドレス
とスクランブルされたアドレスの間で切り替わるマルチ
プレクサとして実施できる。
【0057】したがって、プログラムROM50によっ
て出力されるデータが、正しいシーケンスの実行可能コ
ードに対応しなくなるので、プログラム・カートリッジ
14は無許可の装置に対して「ロック」される。アドレ
ス線の入替えまたは複製には、個々のアドレスを置換
し、したがって、コードの順序をシャフルするという効
果がある。したがって、アドレス・スクランブル回路5
4がアドレスをスクランブルしている間にプログラム・
カートリッジ14内のプログラムROM50を読み取ろ
うとする無許可の装置は、シャフルされたオペコードと
オペランドを、ほぼ確実に無意味な順序で読み取ること
になる。どのような場合でも、アドレス線がシャフルさ
れている間には、アプリケーション・プログラムは、予
期された通りには実行されない。
【0058】カートリッジを「ロック解除」するために
は、CPU30が、アドレス・バス31bを介して1つ
または複数のアドレスを特定のシーケンスでアクセスす
る。ロック制御回路56が、アドレス・バス31bを監
視する。アドレス・バス31b上に適切なアドレスのシ
ーケンスが現れたならば、ロック制御回路が、アドレス
・スクランブル回路54に、プログラムROM50をC
PU30に接続するアドレス線のスクランブルを停止さ
せる。アドレス・スクランブル回路54がアドレス線の
スクランブルを停止した後には、CPU30が、プログ
ラムROM50内のコードをアクセスし、そこにあるプ
ログラムを実行できる。
【0059】アドレス・スクランブル回路54とロック
制御回路56をプログラム・カートリッジ14に追加し
ても、プログラム・カートリッジ14のコストは、仮に
あったとしてもごくわずかしか増加しない。通常、カー
トリッジは、プログラム・カートリッジ14内のアドレ
ス・デコーダを利用して、アドレス・バス31bの全幅
をプログラムROM50に適したメモリ範囲にデコード
する。たとえば、1MB ROMは、20本のアドレス
線を有する。しかし、CPU30のアドレス・バス31
b全体が、プログラム・カートリッジ14に引き出され
ている。CPU30が、80376または80386S
Xの場合、アドレス・バス31bは、24ビット幅にな
る。したがって、この24ビットアドレス空間を20ビ
ット領域にデコードするためにメモリ・デコーダが必要
である。したがって、プログラム・カートリッジ14
は、アドレス・デコーダを内蔵しているのが通常であ
る。
【0060】アドレス・デコーダは、通常はプログラム
可能アレイ論理(PAL)またはプログラム可能論理デ
バイス(PLD)である。適当なPALの1つが、当技
術分野で周知であり、AMD Corp社など多数の業者によっ
て製造されている16V8である。16V8PALは、
必要なアドレス・デコーダのほかに、アドレス・スクラ
ンブル回路54とロック制御回路56を実施するのに十
分な内部論理回路を提供する。したがって、本発明のロ
ック回路52は、プログラム・カートリッジ14内で、
1個あたりの追加コストがほとんどまたは全くない状態
で実施できる。
【0061】アドレス・スクランブル回路54は、無許
可のシステムでの使用に対してプログラム・カートリッ
ジ14を「ロック」するための方法を提供する。さら
に、本発明のコンピュータ・システム10は、本発明の
許可されたされたコンピュータ・システム10で無許可
のカートリッジを使用できなくする手段を提供する。
【0062】アドレス・バス31bの線のスクランブル
には、スクランブルされないメモリ空間と比較して、メ
モリ空間内のバイトを入替えまたは複製するという効果
がある。したがって、無許可のカートリッジは、(1)
CPU30が、プログラムROMからスクランブルされ
たメモリ・ブロックを読み取り、その値をシステム・メ
モリ34内のシステムRAMにセーブし、(2)CPU
30が、アドレス・バス31b上に正しいN個のアドレ
スのシーケンスをアサートし、カートリッジ内のロック
制御回路(あるならば)によって、アドレス・スクラン
ブル回路(あるならば)にアドレス線のスクランブルを
停止させ、(3)CPU30が、プログラムROMのス
テップ(1)と同一位置からスクランブル解除されたメ
モリ・ブロックを読み取り、(4)CPU30が、スク
ランブルされたメモリ・ブロックとスクランブル解除さ
れたメモリ・ブロックを比較することによって検出でき
る。
【0063】上の方法の「N」は、アドレスの順次読取
りによって誤ってロック解除されることがないように選
択しなければならない。アドレスの順次読取りは、通常
はチェックサム計算またはプログラム実行の一部として
実行される。N=2が最小値であり、値が連続していな
い場合に限って許容できる。好ましい実施例では、約6
(N=6)アドレスのシーケンスを使用する。使用され
るアドレスの正確な個数は、アドレス・スクランブル回
路54を実施するのに使用されるプログラム可能部分で
使用可能なラッチと入力ピンの数の直接の関数である。
使用可能なラッチや入力ピンが多ければ多いほど、ロッ
ク制御回路56を実施する状態生成回路を大きくするこ
とができる。
【0064】2つのブロックが正確に同一のデータであ
る場合、問題のカートリッジは、アドレス・スクランブ
ル回路54を有しておらず、したがって無許可のカート
リッジであり、CPU30は、それ相応に反応できる
(たとえば、停止する、メッセージを表示してから停止
する、無限ループに入るなど)。その一方で、メモリ内
の正確に同一の位置から読み取られたデータ・ブロック
が異なる場合、そのカートリッジはアドレス・スクラン
ブル回路54を有しており、このカートリッジは許可さ
れたプログラム・カートリッジであるとみなされる。
【0065】試験するブロックは、事実上どのようなサ
イズでもよい。16ビットが適当なサイズのブロックで
ある。さらに、コンピュータ・システム10が許可され
たカートリッジを検査するたびに、同一のメモリ・ブロ
ックをテストする必要はない。さらに、ロック制御回路
56は、誤ったアドレスがアドレス・バス31bにアサ
ートされた時に状態生成回路をロック状態に入らせない
ように設計することもできる。こうすれば、試験される
アドレスを、システムのロック解除に使用されるアドレ
スと混合することができる。
【0066】もう一度図1を参照すると、CDドライブ
22とデータ処理装置12の間のインターフェースが示
されている。2つのバスすなわち(1)CDドライブ2
2を制御するためのDSAバスと(2)I2S CDデ
ータ・バスが、CDドライブ22を制御する。DSAバ
スは、入出力補助プロセッサ36によって生成され、I
2S CDデータ・バスは、A/V/CDコントローラ
/補助プロセッサ32によって生成される。
【0067】ここで図5を参照すると、A/V/CDコ
ントローラ/補助プロセッサ32の電子回路の大部分
が、ASIC(応用分野特定集積回路)として知られる
1つの大きなカスタム論理チップに含まれている。本明
細書の記載に合致するA/V/CDコントローラ/補助
プロセッサ32は、MSU Ltd.社(270 Upper 4th Stree
t, Witan Gate West, Central Milton Keynes, MK9 1DP
England)から購入できる。A/V/CDコントローラ
/補助プロセッサ32には、CPUインターフェース6
0、プロセッサ・キャッシュ62、メモリ・インターフ
ェース/リフレッシュ64、ビデオ・コントローラ6
6、割込みコントローラ68、ビデオ・ブリッタ70、
CDドライブ・コントローラ72、DSP74およびD
SPメモリ76が含まれる。CPUインターフェース6
0、メモリ・インターフェース/リフレッシュ64およ
びビデオ・コントローラ66をまとめて、ビデオ/メモ
リ・コントローラ67と称する。システム・メモリ3
4、CPU30および他のデバイスは、A/V/CDコ
ントローラ/補助プロセッサ32の外部にある。
【0068】システム'・バス61は、さまざまなデバ
イスをシステム・メモリ34に電気接続する。システ
ム'・バス61を共用するのが、6つの可能なバス・マ
スタ、すなわち(優先順位の高いものから順に)メモリ
・インターフェース/リフレッシュ64、ビデオ・コン
トローラ66、CDドライブ・コントローラ72、DS
P74、ブリッタ70およびCPU30(CPUインタ
ーフェース60を介して)である。どの時点でも、バス
・マスタのうちの1つだけが、システム'・バス61
(A/V/CDコントローラ/補助プロセッサ32とシ
ステム・メモリ34の間のデータ'・バス61a、アド
レス'・バス61bおよび制御'バス61c)を制御でき
る。
【0069】ビデオ/メモリ・コントローラ67は、シ
ステム'・バス61を制御し、当技術分野で周知のよう
に、システム'・バス61に接続されたメモリ・デバイ
ス用のメモリ・タイミング信号(たとえば、CAS、R
AS、書込みイネーブルなど)を供給する。ビデオ/メ
モリ・コントローラ67は、メモリ・サイクルを必要と
し(ビデオ・メモリ・サイクルは、システムRAMから
ビデオ・データを読み取るのに必要である。ビデオはこ
の処理によって実時間で生成されるので、ビデオ論理機
構は、ビデオ・データが必要な時にメモリ・アクセス権
を有する必要がある)、上で述べたように、システム'
・バス61に対して効果的に最高の優先順位を有する。
ビデオ/メモリ・コントローラ67は、ビデオ表示デー
タを取り出すため、また、ダイナミックRAM(DRA
M)をリフレッシュするために、ビデオ・ライン中の短
期間の間にバス・マスタ動作を中断する。ビデオ/メモ
リ・コントローラ67は、CPU30とのインターフェ
ースも制御する。
【0070】DSP74は、音声合成用の単純な超高速
プロセッサであり、33MIPS(1MIPS=百万命
令毎秒)までの速度で動作する。DSP74は、DSP
DMAコントローラ(図示せず)を介してシステム'
・バス61へのアクセス権を有し、DSP DMAコン
トローラは、DSP74がシステム・メモリ34にバイ
トまたはワードを読み書きできるようにする。これらの
転送は、短いバーストで行われ、DSPプログラムの制
御下にある。DSP74は、実際にプログラムを実行
し、それ自体の専用の高速メモリであるDSPメモリ7
6にデータを格納する。
【0071】CDドライブ・コントローラ72のコンパ
クト・ディスク読取りDMAチャネルを用いると、この
システムが、ソフトウェアのオーバーヘッドなしにシス
テム・メモリ34にCD読取りデータを転送できるよう
になる。CDドライブ・コントローラ72は、データを
直接に転送でき、CDドライブ・コントローラ72に
は、CDブロック・デコーダも含まれる。
【0072】割込みコントローラ68は、6つの内部割
込みすなわち、ビデオ割込み(最高優先順位)、アナロ
グ割込み1(AI1)、アナログ割込み2(AI2)、
アナログ割込み3(AI3)、CDブロック・デコーダ
割込みおよびDSP割込み(最低優先順位)を、CPU
30にインターフェースする。割込みコントローラは、
CPU30が割込み確認サイクルを実行する時に、自動
的に割込みをクリアする。割込みのそれぞれについて1
ビットのマスク・ビットが使用可能である。
【0073】ブリッタ70は、高速の画面更新およびア
ニメーション用の、CPU30またはDSP74のため
のハードウェア・グラフィックス・サブルーチンとして
働くグラフィックス・プロセッサである。ブリッタ70
は、ブリッタ(ブロック転送機能)プログラム動作を介
してバス・マスタになり、したがって、かなりの期間に
わたってシステム'・バス61を所有する可能性があ
る。しかし、ブリッタ70のCPU30に対する優先順
位は、絶対的なものではない。割込みが発生した時に
は、システム'・バス61をCPU30に譲るように要
求される可能性がある。CPU30は、システム・レベ
ルでは最低優先順位のバス・マスタである。しかし、C
PU30は、他のハードウェアの完全な制御を有してお
り、したがって、システム'・バス61の使用は、完全
にCPU30のプログラム制御の下にある。
【0074】A/V/CDコントローラ/補助プロセッ
サ32は、4つの主要ブロックすなわち、ビデオ/メモ
リ・コントローラ67、CDドライブ・コントローラ7
2、グラフィックス補助プロセッサであるブリッタ70
およびオーディオ補助プロセッサであるDSP74を有
する。CPU30のアドレス空間は、A/V/CDコン
トローラ/補助プロセッサ32内の複数の8ビット・レ
ジスタにデコードされる。内部位置のすべてが、偶数ア
ドレス境界上にあるので、適切な時に、ワード幅入出力
の読み書きを行うことができる。この具体的な実施例で
は、ワード幅レジスタに対してバイト幅の書込を行うこ
とはできず、奇数アドレスのアクセスに入出力サイクル
を使用することもできない。
【0075】上記のレジスタのほかに、A/V/CDコ
ントローラ/補助プロセッサ32は、それぞれが32ビ
ットの入出力アドレス範囲を提供する、システム・バス
31からの3つの予備汎用入出力デコーダ線(GPIO
1、GPIO2およびGPIO3)を生成する。この汎
用デコーダは、A/V/CDコントローラ/補助プロセ
ッサ32の外部のデバイスに3つのアクティブ・ローの
チップ・イネーブルを供給するのに使用できる。データ
処理装置12内では、この汎用デコーダが、入出力補助
プロセッサ36に対するアドレス範囲のデコード(GP
IO1)と、上で詳細に説明した2つのカートリッジ・
コネクタ37aに対するアドレス範囲のデコード(GP
IO2およびGPIO3)に使用される。
【0076】ビデオ/メモリ・コントローラ67は、4
つの機能すなわち、ビデオ・タイミングと、割込み処理
と、ビデオ表示生成と、メモリの構成、リフレッシュお
よびタイミングとを実行する。
【0077】ビデオ/メモリ・コントローラ67は、異
なるTV標準規格や640×480VGA標準規格まで
のモニタに適するようにプログラムすることのできる柔
軟なビデオ・タイミング・ジェネレータ(発生回路)を
有する。同期パルスの位置、帰線消去、表示区域、アク
ティブ・ビデオ(A/V/CDコントローラ/補助プロ
セッサ32がメモリからデータを取り出している時)
は、水平方向ではクロック・サイクル単位、垂直方向で
はライン番号単位でプログラムされる。ビデオ・タイミ
ングは、2つの部分に分割される。水平タイミングは、
クロック・サイクルに関して定義され、複数の11ビッ
ト・レジスタによって決定される。垂直タイミングは、
表示ラインに関して定義され、複数の10ビット・レジ
スタによって決定される。
【0078】水平レジスタは、水平期間、水平同期、水
平帰線消去終了、水平帰線消去開始、水平表示開始、水
平表示終了、水平取出し開始、水平取出し終了および水
平垂直同期の9つがある。水平期間レジスタに書き込ま
れる値によって、クロック・サイクル単位での水平ライ
ン長が決定される。1実施例では、ライン長が、水平期
間レジスタに書き込まれる値より1つ大きい。必要な数
を求めるための式は、水平期間=(ライン長×クロック
周波数)−1である。
【0079】水平同期レジスタに書き込まれる値によっ
て、水平同期パルスの幅が決定される。水平同期のクロ
ック・サイクル単位での幅は、水平周期レジスタと水平
同期レジスタの間の差によって与えられる。必要な数を
求めるための式は、水平同期=水平期間−(水平同期幅
×クロック周波数)である。水平帰線消去終了レジスタ
は、水平帰線消去が終了する時を決定し、クロック・サ
イクル単位でのバック・ポーチの幅である。水平帰線消
去開始レジスタは、水平帰線消去が始まる位置を決定す
るレジスタである。必要な数を求めるための式は、水平
帰線消去開始=水平期間−((水平同期幅+フロント・
ポーチ幅)×クロック周波数)である。
【0080】水平表示開始レジスタは、水平同期の後端
エッジの後のいつビデオが生成されるかを、クロック・
サイクル単位で指定するレジスタである。水平表示開始
レジスタが、水平帰線消去終了レジスタより大きい値を
有する場合、ビデオ/メモリ・コントローラ67は、そ
の間にボーダー・カラーを出力する。このレジスタに書
き込まれる値は、通常は、絵がテレビジョン画面の中央
にくるように選択しなければならない。こうなるレジス
タ値を求めるための式は、水平表示開始=(水平帰線消
去終了+水平帰線消去開始−(アクティブ表示幅×クロ
ック周波数))/2である。
【0081】水平表示終了レジスタは、表示が終了する
位置を指定するレジスタであり、したがって、画素単位
でのビデオ表示の幅を決定するレジスタである。このレ
ジスタは、次の値を用いてプログラムされなければなら
ない:水平表示終了=水平表示開始+(画素数×画素ご
とのクロック数)。水平帰線消去開始レジスタが、水平
表示終了レジスタより大きい値を有する場合、帰線消去
が始まるまで、ボーダー・カラーが出力される。
【0082】水平取出し開始レジスタは、ライン上でビ
デオ取出しが初めて開始される位置を決定するレジスタ
である。これは、表示が開始される時に16バイト画素
バッファがちょうど満たされているようにプログラムし
なければならない。実際には、これは、水平取出し開始
レジスタの値が、水平表示開始レジスタの値より、表示
モードに依存する一定値だけ少ない値によって与えられ
ることを意味する。下の表には、画素ごとのビット数と
画素ごとのクロック数のさまざまな組合せに対するこの
定数が含まれている。たとえば、画素ごとに4ビット
で、画素ごとに5クロックの場合、定数は160であ
る。同様に、画素ごとに4ビットで画素ごとに1クロッ
クの場合、定数は32である。画素ごとに16ビットで
画素ごとに1クロックの場合、適用可能な定数が存在し
ないことに留意されたい。
【表1】 画素ごとのクロック数 画素ごとの 4 160 128 96 64 32 ビット数 8 80 64 48 32 16 16 40 32 24 16 なし
【0083】水平取出し終了レジスタは、ラインのどこ
でビデオ取出しが終わるかを決定するレジスタである。
実際には、これは、水平表示終了から上の定数を引いた
値である。しかし、水平取出し終了レジスタから水平取
出し開始レジスタを減じた値が上記定数の整数倍になる
ように、水平取出し開始を切り上げなければならない。
【0084】水平垂直同期は、ある数のラインに対して
発生する、より幅広の同期パルスとして識別される。こ
のパルスの幅は、水平垂直同期レジスタによって決定さ
れ、水平垂直同期レジスタは、式:水平垂直同期=水平
期間−(垂直同期幅×クロック周波数)に従ってプログ
ラムされなければならない。
【0085】ビデオ/メモリ・コントローラ67は、多
数の垂直レジスタ、すなわち、垂直期間レジスタ、垂直
同期レジスタ、垂直帰線消去終了レジスタ、垂直帰線消
去開始レジスタ、垂直表示開始レジスタ、垂直表示終了
レジスタ、ビデオ割込みレジスタおよびライト・ペン・
レジスタを有する。垂直期間レジスタは、フィールドご
とのビデオ・ライン数を指定するレジスタである。垂直
同期レジスタは、垂直同期を生成するラインの数を決定
するレジスタである。これは、垂直同期=(垂直期間−
垂直同期のライン数)に従ってプログラムしなければな
らない。
【0086】垂直帰線消去終了レジスタは、垂直同期の
後に消去されるラインの数を決定するレジスタである。
垂直帰線消去開始レジスタは、垂直同期の前に消去され
るラインの数を決定するレジスタである。これは、垂直
帰線消去開始=(垂直同期−垂直同期の前に消去される
ライン数)に従ってプログラムしなければならない。
【0087】垂直表示開始レジスタは、アクティブ・ビ
デオの最初のラインを決定するレジスタである。このレ
ジスタが垂直帰線消去終了レジスタより大きい値を有す
る場合、その間のラインが、ボーダー・カラーで表示さ
れる。アクティブ区域を画面の中央に置くためには、こ
のレジスタを、垂直表示開始=(垂直帰線消去終了+垂
直帰線消去開始−アクティブ・ライン数)/2に従って
プログラムしなければならない。垂直表示終了レジスタ
は、アクティブ・ビデオの最後のラインを決定するレジ
スタである。このレジスタが垂直帰線消去開始レジスタ
より小さい値を有する場合、その間のラインが、ボーダ
ー・カラーで表示される。アクティブ区域を画面の中央
に置くためには、このレジスタを、垂直表示終了=(垂
直帰線消去終了+垂直帰線消去開始+アクティブ・ライ
ン数)/2に従ってプログラムしなければならない。
【0088】ビデオ割込みレジスタは、ビデオ割込みが
生成されるビデオ・ラインを決定するレジスタである。
この割込みは、INTレジスタを介してイネーブルまた
はディスエーブルすることができる。この割込みは、ビ
デオ機構が表示ラインの末尾で停止する時に発生する。
これは、プロセッサによって、表示モードの変更や、ビ
ーム同期アニメーションの実行に使用することができ
る。このレジスタは、1フィールド内で再プログラムし
て、フィールドごとに複数の割込みをもたらすことがで
きる。
【0089】A/V/CDコントローラ/補助プロセッ
サ32は、ライト・ペン(または光線銃)入力を有す
る。各フィールドのこの入力の最初の立ち上がりエッジ
で、水平カウントがレジスタLP0に、垂直カウントが
レジスタLP1に転送される。これらの値は、指されて
いる画素のXY座標に変換できる。ライト・ペン入力の
立ち上がりエッジがこのフィールドで発生した場合に
は、レジスタSTATのビット1がセットされる。この
レジスタ・ビットは、垂直同期の直前に読み取らなけれ
ばならない。
【0090】下記の表は、さまざまな表示フォーマット
に対する上記レジスタの典型的な値を示す表である。諸
レジスタに下記の値をロードした後に、レジスタMOD
E2のVIDENビットをセットすることによって、ビ
デオ・タイミング・レジスタをイネーブルする。
【表2】
【0091】ビデオ/メモリ・コントローラ67は、3
つのカラー分解能、すなわち画素ごとに4ビット、画素
ごとに8ビットおよび画素ごとに16ビットを使用でき
る。4ビット・モードと8ビット・モードでは、画素
が、パレットに格納された18ビット物理カラーをイン
デクス付けする論理カラーである。16ビット・モード
では、画素が、物理カラーであり、ビット0からビット
4までが青、ビット5からビット10までが緑、ビット
11からビット15までが緑を表す。緑は6ビットだ
が、青と赤には5ビットしかないので、チップから出力
される青と赤の最下位ビットは、16ビット・モードで
は必ず論理0になる。ボーダー・カラーは、16ビット
画素として表示される16ビット・レジスタである。
【0092】8ビット・モードでは、画素が、256×
18パレットの全体をアドレスする。4ビット・モード
では、画素が、パレットからの16個の項目をアドレス
し、この場合、アドレスの上位4ビットが、インデック
ス・レジスタから供給される。
【0093】8ビット・モードでは、2つの変形を使用
できる。カラー保持モードでは、画素が0の値をとる場
合に、前の画素のカラーが表示される。これは、単に左
端の画素をセットすることによって、大面積のカラーを
塗り潰すのに使用できる。
【0094】可変分解能モードでは、最上位ビットによ
って、その画素が1つの7ビット画素として表示される
か、2つの3ビット画素として表示されるかが決定され
る。最上位ビットがクリアされている場合、その画素
は、1つの7ビット画素として表示され、最上位ビット
がセットされている場合、まずビット0からビット2ま
でが表示され、次にビット4からビット6までが表示さ
れる。この場合、2つの高解像度画素が、パレットから
8つの項目をアドレスする。アドレスの上位5ビット
は、インデックス・レジスタから供給される。可変解像
度モードは、低解像度だがよりカラフルな背景の中に、
高解像度テキストの小さい領域を表示するのに有用であ
る。このモードは、画素ごとに1クロックの解像度では
使用不能である。
【0095】8ビット・モードでは、ビットのうちのい
くつでも、犠牲にして他の目的に使用することができ
る。たとえば、1ビットを、衝突検出用の「ホット・ス
ポット」の識別に使用できる。その代わりに、複数のビ
ットを使用して、画像の「深さ」を符号化し、その結
果、ある画像を別の画像の前または後で移動させること
ができるようになる。1ビットを犠牲にするためには、
マスク・レジスタ内の同一ビットをセットする。そうす
ると、そのビットは、インデックス・レジスタ内の対応
するビットから置換されるようになる。
【0096】画素幅には、1クロック、2クロック、3
クロック、4クロックおよび5クロックの5つがある。
これらは、24MHz、12MHzおよび6MHz付近
のドット・クロックに対応する。最高のドット・クロッ
クは、画素ごとに16ビットの表示モードでは使用でき
ない。他の2つの組合せ、すなわち1クロック8ビット
と2クロック16ビットは、32ビットDRAMを取り
付けている場合に限って使用可能である。外部ハードウ
ェアを取り付けている場合、A/V/CDコントローラ
/補助プロセッサ32は、外部ビデオ供給源にゲンロッ
クし、局所ビデオと外部ビデオを画素単位で混合(エン
クラスト)することができる。
【0097】画面のメモリ・マップは、ビデオ表示幅に
結び付けられておらず、独立に定義される。画面のベー
ス・アドレスは、システム・メモリ34内のどこにでも
設定できる。画面メモリの幅は、128バイトから20
48バイトまでの2のべきである。画面の高さは、32
KBから2MBまでの2のべきである。同一ライン上の
ビデオ・アドレスは、より小さな境界内でラップアラウ
ンド(循環)する。この配置構成を用いると、画面をよ
り大きな仮想画面内に置き、その中で縦横にスクロール
することが可能になる。
【0098】さまざまなレジスタが、上で述べたビデオ
・モードを制御する。ビデオ・モード・レジスタは、上
にリストした特徴を制御するレジスタである。ビット0
およびビット1によって、画素ごとのビット数が決定さ
れる。ビット2およびビット3によって、クロック・サ
イクル単位での画素幅が決定される。ビット4ないしビ
ット6によって、ビデオ・アドレス内の最初の中断が決
定され、したがって、バイト単位の表示幅が決定され
る。ビット7ないしビット9によって、ビデオ・アドレ
ス内の第2の中断が決定され、したがって、バイト単位
の表示高さが決定される。ビット10によって、外部ビ
デオ供給源に対する高速ロックのために水平タイマおよ
び垂直タイマをリセットできる入力へ同期出力が入力さ
れる。ビット11によって、外部ビデオ・マルチプレク
サを使用する外部ビデオ供給源のオーバーレイであるエ
ンクラステーション(合成画像)が制御される。このマ
ルチプレクサは、A/V/CDコントローラ/補助プロ
セッサの「INC」ピンによって制御される。カラーの
うちの選択されたビットが、エンクラステーションの制
御に使用される。ビット12によって、ボーダー・エン
クラステーションを制御する。これは、ボーダー・カラ
ーに適用される点を除いてビット11と同一である。ビ
ット13によって、可変解像度モードをセットする。ビ
ット14によって、カラー保持モードをセットする。こ
のモードでは、カラー0が現走査線の前の非0カラーに
置換される。ビット15によって、下の表に示されるよ
うに、ビット2、ビット3およびビット15に基づいて
3クロックおよび5クロックの画素クロック幅がイネー
ブルされる。
【表3】
【0099】ビデオ/メモリ・コントローラ67は、画
素マスク・レジスタとパレット・インデックス・レジス
タも有する。マスク・レジスタ内でセットされているビ
ットのそれぞれについて、画素内の対応するビットが、
インデックス・レジスタからのビットによって置換され
る。インデックス・レジスタの上位ビットは、4ビット
画素のパレット・アドレスの上位部分を形成する。ボー
ダー・カラー・レジスタは、ボーダー・カラーを定義す
る16ビット・レジスタである。このカラーは、16ビ
ット画素と同じ形、すなわちビット0ないしビット4が
青、ビット5ないしビット10が緑、ビット11ないし
ビット15が赤として表示される。
【0100】ビデオ/メモリ・コントローラ67は、シ
ステム・メモリ34内の画面の24ビットを使用するア
ドレスを定義する2つの画面アドレス・レジスタも有す
る。これは、画面の左上画素のアドレスである。
【0101】ビデオ/メモリ・コントローラ67は、ビ
デオに対する追加の制御とさまざまな試験論理を提供す
る補助ビデオ・モード・レジスタMODE2も有する。
ビット0によって、ライト・ペン・レジスタがイネーブ
ルされ、その結果、水平カウンタと垂直カウンタを読み
取れるようになる。ビット2によって、ビデオ・タイマ
がイネーブルされ、ビット3およびビット4によって、
リフレッシュ周波数が決定される。ビット3およびビッ
ト4の値は、1がクロック/128のリフレッシュ周波
数を表し、2がクロック/256のリフレッシュ周波数
を表し、3がクロック/512のリフレッシュ周波数を
表す。ほとんどのDRAMが、64KHz以上のリフレ
ッシュ周波数を必要とする。リフレッシュ・コントロー
ラは、8サイクル以上のリフレッシュ・サイクルが要求
されるまで待った後に、システム'・バス61を要求
し、必要な回数のRAS前CASサイクルを実行する。
ビット6がセットされている時には、ビデオ・モードが
二重バッファリングされ、帰線消去中でなければ変更で
きなくなる。CPU30は、分割画面動作でのきれいな
モード変更のためにこのビットをセットする。ビット7
によって、垂直同期の極性が反転される。ビット8によ
って、水平同期の極性が反転され、ビット9は未使用で
ある。
【0102】パレットは、アドレスF10000Hから
F103FFHまでにある256×18ビットのRAM
ブロックである。各項目には、それぞれ6ビットの赤、
緑および青が含まれる。各項目は、2ワードにまたが
る。青と緑のビットは、上位ワードに現れる。赤のビッ
トは、下位ワードに現れる。上位ワードのビット2ない
しビット7が、青であり、上位ワードのビット10ない
しビット15が、緑であり、下位ワードのビット2ない
しビット7が、赤である。パレット内の項目に書き込む
には、CPU30は、まず下位ワードに赤のビットを書
き込み、次に上位ワードに緑と青のビットを書き込まな
ければならない。CPU30は、ボーダー中または帰線
消去中にパレットに書き込まなければならない。さもな
いと、ビデオにゴミが現れる。
【0103】プロセッサ・キャッシュ62は、CPU3
0のために命令を事前取出するという意味でのキャッシ
ュではない。そうではなくて、プロセッサ・キャッシュ
62は、プログラム実行を高速化するためにCPU30
が変数、スタック、またはプログラム・コードのために
使用することのできる、アドレスF14000HからF
143FFHまでに置かれた512×16ビットのスタ
ティックRAMである。これは、スタティックRAMか
らなり、ページ不在の対象にはならない。データ、スタ
ックまたはプログラム・コードをプロセッサ・キャッシ
ュ62に置くことによって、アクセスを高速化でき、ペ
ージ不在の頻度を下げることができる。この実施例で
は、キャッシュが小さく、キャッシュ区域に対するバイ
ト書込みは許可されない。割込みサービス・ルーチン
が、スタックにバイトをプッシュしてはならない。
【0104】ビデオ/メモリ・コントローラ67は、6
つの割込み源、すなわちビデオ入力割込み、3つのアナ
ログ割込み、CDブロック・デコーダ割込みおよびDS
P74割込みをサポートする。アナログ割込みを使用す
ると、単純なアナログ・ディジタル変換器を実施できる
ようになる。単安定バイブレータを、ダイオード、コン
デンサおよびポテンショメータから実施する。コンデン
サは、垂直同期によって放電され、ポテンショメータの
設定に依存する速度での充電が開始される。コンデンサ
の電圧がA/V/CDコントローラ/補助プロセッサ3
2への入力の閾値に達した時に、割込みが生成される。
その後、プロセッサは、垂直カウンタを読み取って、コ
ンデンサがどれほど早く充電されたかの尺度を得、した
がって、ポテンショメータの設定の尺度を得ることがで
きる。
【0105】ビデオ/メモリ・コントローラ67は、6
つの割込みのすべてを独立にイネーブルまたはディスエ
ーブルできる、割込みイネーブル・レジスタも有する。
割込み確認書込みレジスタのビットのどれかに論理1を
書き込むと、対応する割込みがクリアされる。割込み読
取りレジスタは、保留中のすべての割込みを反映する。
【0106】ビデオ/メモリ・コントローラ67は、8
0376CPU30の16MBアドレス範囲を、下記の
メモリ・マップにデコードする。すなわち、8MBのD
RAM0(0Hから7FFFFFHまで)、7MBのD
RAM1(800000HからEFFFFFHまで)、
64KBのROM0(F00000HからF0FFFF
Hまで)、64KBの内部メモリ(F10000Hから
F1FFFFHまで)および896KBのROM1(F
20000HからFFFFFFHまで)である。64K
Bの内部メモリには、パレットRAM、ブリッタ(ブロ
ック転送機能)レジスタ、DSPレジスタおよびDSP
メモリが含まれる。パレットのアドレス範囲は、上で説
明した。ブリッタ(ブロック転送機能)レジスタは、F
10400HからF107FFHまでの範囲にある。D
SPメモリは、F10800HからF18000Hまで
の範囲にある。
【0107】オンボードの画面RAMとシステムRAM
は、512KBのDRAMである。画面RAMとシステ
ムRAMを構成するオンボードDRAMは、16ビット
幅または32ビット幅のいずれかとすることができる。
適当なDRAMは、東芝製造のTCS14170BJ
256KB×16ビット・メモリ・チップである。DR
AMのサイズは、リセット中にA/V/CDコントロー
ラ/補助プロセッサ32によって判定されるが、CPU
30には直接影響しない。そして、DRAMサイズが大
きいと、ビデオ/メモリ・コントローラ67がより高速
に動作できるようになり、他のバス・マスタ候補が使用
可能な帯域幅が広がる。いくつかの表示モードおよびブ
リッタ(ブロック転送機能)モードは、32ビット・メ
モリの場合にのみ可能である。上で示したように、2バ
ンクのDRAMを取り付けることができる。少量のDR
AMを取り付ける場合、これらのDRAMは、上で示し
たメモリ・マップ全体を通して繰り返される。
【0108】ブートストラップROMは、必ず16ビッ
ト幅である。ブートストラップROMは、多数の製造業
者によって製造されている27C512消去可能プログ
ラム可能読取り専用メモリ2個から構成され、したがっ
て、128KのブートストラップROMが与えられる。
リセットの後、ROMと内部メモリを含むF20000
HからFFFFFFHまでの1MBウィンドウが、16
MBアドレス範囲全体を通じて繰り返される。これによ
って、さまざまプロセッサがA/V/CDコントローラ
/補助プロセッサ32を用いてブートできるようにな
る。上記のメモリ・マップは、メモリ・タイプ・レジス
タがCPU30によって初めて書き込まれる時に採用さ
れる。ビデオ/メモリ・コントローラ67は、可能な場
合には必ずシステム・メモリ34に対してページ・モー
ド・サイクルを実行する。これは、通常のメモリ・サイ
クルより高速であり、連続した読取りまたは書込みが同
一ページ内で行われる場合に発生する。ビデオ/メモリ
・コントローラ67は、DRAM内のカラム数を知る必
要がある。カラム数は、メモリ・タイプ・レジスタにプ
ログラムされている。メモリ・タイプ・レジスタ内で
は、ビット0およびビット1によって、DRAM内のカ
ラム数が決定され、0が256カラムを表し、1が51
2カラムを表し、2が1024カラムを表し、3が20
48カラムを表す。
【0109】ビデオ/メモリ・コントローラ67は、7
タイプの転送すなわち、通常DRAMサイクル(4クロ
ック)、ページ・モードDRAMサイクル(2クロッ
ク)、ROMサイクル(6クロック)、内部メモリ(2
クロック)、外部入出力(6クロック)、割込み確認
(2クロック)および内部入出力(2クロック)をサポ
ートする。CPU30は、実際の転送よりも1サイクル
余分にサイクルする。内部バス・マスタは、転送時間で
サイクルできる。
【0110】ビデオ/メモリ・コントローラ67は、C
PU30の2X(2倍速)クロックであり、テレビジョ
ン・クロマ副搬送波の倍数である水晶クロックに水晶発
振器を使用する。この水晶クロックは、バッファリング
され、CPU30に出力される。同一のクロックが、1
/2分周器に通され、主システム・クロックとして出力
される。このクロックは、独立のピンを介してA/V/
CDコントローラ/補助プロセッサ32に入力される。
クロックを出力し入力する理由は、CPUの2Xクロッ
クと主システム・クロックの間の相対スキューを、どち
らかの経路にわずかな遅延を追加することによってどち
らかに調節できるようにするためである。水晶周波数
は、水晶周波数を1から15までの数で割ることがで
き、50%のデューティ比を有する出力波形を作ること
のできるプログラム式分周器によって分周される。これ
は、テレビジョン・カラー副搬送波として使用される。
【0111】クロマ分周器レジスタは、2X水晶周波数
に対するテレビジョン・カラー副搬送波(クロマ)の比
を定義する4ビット・レジスタである。これは、次式に
従ってプログラムしなければならない:クロマ=2X水
晶周波数/クロマ周波数−1。
【0112】ビデオ/メモリ・コントローラ67は、状
況(ステータス)レジスタも有する。状況レジスタのビ
ット0がセットされている場合、ビデオ・タイミング
を、PAL(欧州テレビジョン信号標準規格)用にセッ
トアップしなければならない。状況レジスタのビット0
がクリアされている場合、ビデオ・タイミングをNTS
C用にセットアップしなければならない。状況レジスタ
のビット1がセットされている場合、現フィールド内で
ライト・ペン入力があった。このビットは、ライト・ペ
ンによってセットされ、垂直同期によってクリアされ
る。
【0113】ビデオ/メモリ・コントローラ67は、リ
セット中にあるモードにすることができ、その後には、
2ワード幅入出力位置と64Kメモリ位置だけに応答す
るようになる。入出力位置の実際の位置は、チップ選択
入力によって決定され、したがって、この位置は、外部
から決定できる。この「覗き穴」モードを用いると、A
/V/CDコントローラ/補助プロセッサ32が、コン
ピュータ・システム10の入出力およびアドレスのメモ
リ・マップ内の小さなギャップだけを占有するようにす
ることができる。
【0114】これらのレジスタは、32ビット幅であ
り、したがって、2回の16ビット・アクセスとしてア
クセスしなければならない。A/V/CDコントローラ
/補助プロセッサ32内の入出力レジスタのすべてをア
ドレスするには、必要なレジスタの通常の入出力アドレ
スに、まず下位ワード(a[1]ロー)を書き込む。そ
の後、そのレジスタは、上位ワード(a[1]ハイ)で
読み書きできるようになる。A/V/CDコントローラ
/補助プロセッサ32の内部と外部のすべてのメモリを
アドレスするには、バンク・レジスタに書き込むことに
よって、ビデオ/メモリ・コントローラ67によって普
通にデコードされる16MBアドレス空間内の任意の6
4K境界に64Kウィンドウを移動することができる。
バンク・レジスタは、8ビット・レジスタであり、覗き
穴モードでメモリをアドレスする時に最上位8ビットを
供給する。たとえば、形式上はF10000Hにあるパ
レットをアクセスするには、CPU30は、バンク・レ
ジスタに0F1Hを書き込んだ後に、外部チップ選択に
よって決定される覗き穴位置の最下位で読み書きしなけ
ればならない。
【0115】ブリッタ70は、グラフィカル補助プロセ
ッサであり、その目的は、グラフィックス作成とアニメ
ーションをできる限り高速に(メモリ帯域幅によって制
限される)実行することである。ブリッタ70は、CP
U30またはDSP74によってメモリに書き込まれた
コマンドを実行する。ブリッタ70は、システム・メモ
リ34から新しいコマンド・セットを読み取ることによ
って、任意の長さのグラフィックス動作のシーケンスを
実行できる。グラフィックス動作を実行している間、ブ
リッタ70は、システム'・バス61のマスタになり、
CPU30によるバス活動を全て拒否する。ブリッタ7
0は、普通ならCPU30が実行するはずの動作を実行
するのに使用されており、したがってプログラム動作を
高速化しているので、これは合理的である。また、これ
によって、ブリット動作に関する同期制御プログラミン
グの必要と、ブリッタ70内に割込み生成ハードウェア
を設ける必要がなくなる。しかし、他の2つのプロセッ
サ(DSP74とコンパクト・ディスクDMA)のいず
れかの実時間プログラミングを可能にするために、ブリ
ッタ70は、これらのプロセッサがDMA転送を要求す
る場合に、その動作を中断し、DSP74またはコンパ
クト・ディスクDMAチャネルにシステム'・バス61
を与える。また、割込みが発生した場合にも、ブリッタ
70はそれ自体を中断させ、システム'・バス61をC
PU30に与える。これらの転送のどれの間にも、現動
作は中断されるが、割込み信号がインアクティブになっ
た時またはDSP74のDMAアクセスが完了した時
に、現動作が再開される。
【0116】ブリッタ70の動作は、下記の単純なプロ
グラムとみなすことができる。
【数1】 コマンドとオペランドは、CPU30またはDSP74
のいずれかによってメモリに書き込まれる。
【0117】ブリッタ70は、A/V/CDコントロー
ラ/補助プロセッサ32の入出力空間内に複数のレジス
タを有する。すなわち(1)2つの読取り可能なブリッ
タ宛先レジスタと同一の入出力アドレスを共用する、2
つの書込み可能なブリッタ(ブロック転送機能)プログ
ラム・アドレス・レジスタと、(2)読取り可能な第1
ブリッタ(ブロック転送機能)ソース・アドレス・レジ
スタと同一のアドレスを共用する、書込み可能なブリッ
タ(ブロック転送機能)コマンド・レジスタと、(3)
読取り可能な第2ブリッタ(ブロック転送機能)ソース
・アドレス・レジスタと同一のアドレスを共用する、書
込み可能なブリッタ制御レジスタと、(4)読取り可能
な内側カウント・レジスタと、(5)読取り可能なブリ
ッタ外側カウント・レジスタと同一の入出力アドレスを
共用する、書込み可能な第1ブリッタ診断レジスタと、
(6)読取り可能なブリッタ状況レジスタと同一の入出
力アドレスを共用する、書込み可能な第2ブリッタ診断
レジスタと、(7)書込み可能な第3ブリッタ診断レジ
スタである。
【0118】ブリッタ70は、グラフィックス動作とブ
ロック移動動作を実行するためさまざまなモードで動作
できる。ブリッタ70は、主として3つの別々のブロッ
ク、すなわちデータ経路、アドレス・ジェネレータ、お
よびシーケンサに分割された内部アーキテクチャを有す
る。データ経路には、3つのデータ・レジスタ、すなわ
ちソース・データ・レジスタ、宛先データ・レジスタ、
およびパターン・データ・レジスタが含まれる。データ
経路には、知的ブリット動作を可能にするための多才な
比較器と、出力データを生成するための論理機能ユニッ
ト(LFU)も含まれる。
【0119】アドレス・ジェネレータ(生成回路)に
は、3つのアドレス・レジスタ、すなわちブリッタ(ブ
ロック転送機能)コマンドを取り出すのに使用されるプ
ログラム・アドレス・レジスタ、ソース・レジスタ、お
よび宛先アドレス・レジスタが含まれる。アドレス・ジ
ェネレータには、アドレスを更新するための関連するス
テップ・レジスタを有する論理演算機構(ALU)と、
出力アドレスを生成するためのマルチプレクサも含まれ
る。
【0120】シーケンサは、ソフトウェアに関して、上
で短い単純なプログラムを用いて示したように、2つの
ループ(内側ループと外側ループ)と複数の手順とを有
する、ブリッタ70が走行させるプログラムとして働
く。このプログラムは固定されているが、その動作のさ
まざまな部分が、ブリッタ(ブロック転送機能)コマン
ド・レジスタ内のフラグに基づいて条件実行され、ルー
プ・カウントも、コマンドの一部である。
【0121】データ経路には、3つのレジスタと、2つ
のデータ操作ブロックが含まれる。2つのデータ操作ブ
ロックとは、出力データを作るために複数の有用な方法
で複数のデータ・レジスタの内容を組み合わせることの
できる論理機能ユニットと、書込み動作を禁止し、任意
指定としてブリッタ動作を停止させるためにデータに対
する比較を実行することのできる比較器である。
【0122】データ経路は、4つのサイズ、すなわち3
2ビット、16ビット、8ビットおよび4ビットのデー
タを扱うことができる。ロング・ワード(32ビット・
ワード)は、高速ブロック移動および高速ブロック・フ
ィルを実行する時に使用される。画素(4ビット幅、8
ビット幅または16ビット幅)は、線描、多重プレーン
操作、キャラクタ・ペイントなど、すべてのブリッタ
(ブロック転送機能)モードを使用して操作できる。
【0123】データ経路の大多数は、最大画面画素サイ
ズである16ビット幅である。しかし、ソース・データ
・レジスタは32ビット幅であり、ソース・データ・レ
ジスタの上位16ビットは、論理機能ユニットのモード
に無関係に、32ビット・モードで書き込まれるデータ
の上位16ビットを作るのに使用される。したがって、
2つの16ビット幅レジスタ(パターン・データと宛先
データ)と1つの32ビット幅データ・レジスタ(ソー
ス・データ・レジスタ)が存在する。ソース・データ・
レジスタと宛先データ・レジスタは、内側ループ内で対
応する読取りサイクルがイネーブルされた時に、システ
ム・メモリ34内のソース・アドレスと宛先アドレスか
らロードされる。しかし、パターン・データを用いるブ
リッタ動作の開始時には、3つのデータ・レジスタのす
べてがロードされ、パターン・データは、出力データの
制作の際または比較器内のいずれかで、データの追加供
給源としてこれを使用できる。たとえば、パターン・デ
ータ・レジスタ内のデータは、たとえばマスク、書込み
用のパターン、または基準値とすることができる。パタ
ーン・データは、ソース・データ・レジスタの両方のワ
ードにロードされる。
【0124】論理機能ユニットは、出力データを生成
し、この出力データは、システム・メモリ34内の宛先
に書き込まれる。論理機能ユニットは、ソース・レジス
タ画素と宛先レジスタ画素のすべての論理組合せを実行
できる。「ソース・データ画素」は、ソース・データ・
レジスタまたはデータ・パターン・データ・レジスタの
うちのいずれかから選択できる。LFUは、データ・レ
ジスタからの入力データの2組の4つのブール最小項
【数2】 のうちのいずれかを選択し、2つの選択された最小項の
論理和を生成する。これによって、入力データの任意の
論理組合せが可能になり、したがって、16個の機能の
可能性が存在する。
【0125】32ビット・モードでは、LFUが、通常
はソース・データを作るようにセットされる。というの
は、LFUが16ビット幅しかないからである。ロング
・ワード書込み中に書き込まれる上位16ビットは、必
ずソース・レジスタの上位16ビットから導出される。
【0126】比較器は、ソース・データ・レジスタ、宛
先データ・レジスタおよびパターン・データ・レジスタ
内のデータに対してさまざまな比較を実行することがで
きる。その比較条件が満たされる場合、比較器は禁止信
号を生成する。禁止信号は、書込み動作を禁止するのに
使用され、任意指定として、ブリット(ブロック転送)
動作を停止させるのに使用される。比較器は、画素プレ
ーン効果をもたらすため、透明カラーを与えるため、衝
突検査動作のため、システム・メモリ34探索動作のた
め、およびキャラクタ・ペイント動作の補助として使用
することができる。
【0127】複数プレーン動作は、すべての画素にプレ
ーン番号を割り当てることによってサポートされる。こ
のモードは、4ビット画素および8ビット画素だけに適
用可能である。8ビット画素モードでは、8ビットのう
ちの2ビット(ビット6とビット7)が、2プレーンま
たは4プレーンを与えるのに使用され、4ビット(ニブ
ル)画素モードでは、4ビットのうちの1ビット(2ニ
ブル・バイトのビット3とビット7)が、2プレーンを
与えるのに使用される。比較器は、宛先データのプレー
ン番号がソース・データのプレーン番号と等しくない場
合、それを超える場合、またはこれらの任意の組合せの
場合に、禁止出力を生成できる。これは、画面に書き込
まれるデータを、異なるプレーンに既に存在するデータ
によってマスクできることを意味する。
【0128】比較器は、ソース画素全体が宛先画素と等
しいもしくは等しくない場合に、禁止出力を作ることが
できる。これは、たとえば、特定の値を求めてシステム
・メモリ34を探索するために使用でき、より重要なこ
とに、透明になる(トランスペアレントな)カラーを指
定し、データ・レジスタ内に透明カラー値を保持するの
に使用できる。これは、16ビット画素、8ビット画素
または4ビット画素に適用される。
【0129】ブリッタ70は、比較器ビット対画素拡張
モード動作も有する。この比較器動作によって、たとえ
ばキャラクタ・ペイントに使用される、データのビット
から画素への拡張が可能になる。このモードでは、比較
器が、内側カウンタの値に基づいてソース・バイトの1
ビットを選択し、そのビットが論理0の場合に書込み動
作を禁止する。
【0130】ブリッタ70には、3つの画素解像度モー
ドを扱うための手段がある。3つの画素解像度モードと
は、各ワードが1画素に対応する16ビット・モード、
各バイトが1画素に対応する8ビット・モード、および
各バイトが2画素に対応する4ビット・モードである。
8ビット画素モードと16ビット画素モードでは、デー
タ経路が1時に1画素を扱っており、動作は単純であ
る。しかし、4ビット画素モードでは、システム・メモ
リから読み書きされるバイトの半分だけが現画素であ
り、したがって、データ経路に対してある追加の必要条
件が課せられる。4ビット・モードの書込み動作時に
は、未変更の宛先データが、データ・バイトのうち現画
素に対応しない半分に書き込まれる。したがって、4ビ
ット・モードでは、宛先の読取りを必ずイネーブルしな
ければならない(制御ビットDSTENをセットす
る)。こうしなければならないのは、メイン・メモリに
1バイト未満を書き込むための手段がないからである。
【0131】また、ソース4ビット画素アドレスと宛先
4ビット画素アドレスが、RAMの対応するバイトの異
なる半分を指している可能性もある。この場合、シフタ
によって、ソース・データの2つの半分を入替える。4
ビット・モードでは、パターン・バイトの2つのニブル
(1バイトの半分すなわち4ビット)を、通常は同一の
値にセットしなければならない。ブリッタ70内のプロ
グラムに関する画素は、表示幅と一致する必要がなく、
大量のデータを移動するための最も効率的な方法は、3
2ビット・モードであることに留意されたい。このよう
なモードの転送は、ロング・ワード整列されなければな
らず、このシステムには、32ビットRAMを装着して
いなければならないことを想起されたい。
【0132】ブリッタ70は、アドレス・ジェネレータ
も有する。アドレス・ジェネレータには、3つのアドレ
ス・レジスタ、増分レジスタまたはステップ・レジス
タ、アドレス加算器、およびアドレス出力マルチプレク
サが含まれる。3つのアドレス・レジスタは、ソース・
アドレス、宛先アドレスおよびプログラム・アドレスを
保持する。これら3つのレジスタのそれぞれが、24ビ
ット・レジスタであって、ブリッタ70が16MBまで
アドレスできるようになっている。さらに、ソース・ア
ドレス・レジスタと宛先アドレス・レジスタには、4ビ
ット画素モードで使用されるニブル・ビットが含まれ
る。プログラム・アドレス・レジスタは、プログラムが
取り出されるアドレスを保持し、それを使用してメモリ
・サイクルが実行されるたびに、1ワードだけ増分され
る。このレジスタは、常に偶数であり、したがって、ビ
ット0は必ず論理0になっていなければならない。
【0133】ソース・アドレス・レジスタと宛先アドレ
ス・レジスタは、各サイクルの後と、他の時刻に、加算
器を使用して更新され、これによって、それらが参照す
る対象に関してかなりの柔軟性がもたらされる。ソース
・アドレス更新と宛先アドレス更新のすべては、任意指
定として、アドレス・レジスタの下位16ビットないし
19ビットだけに対して行うことができる。これは、ブ
リッタ70が効果的に64Kページ、128Kページ、
256Kページ、または512Kページ内で動作するこ
とを意味する。このモードでは、ページ内でアドレスが
オーバーフローする場合に、アドレスがラップ(循環)
し、オーバーフローやアンダーフローがなくなる。
【0134】ブリッタ70は、アドレスの更新に使用さ
れる25ビット幅加算器であるアドレス加算器も有す
る。このアドレス加算器を用いると、0.5、1または
2の定数値か、ステップ・レジスタのうちの1つに記憶
された変数を、アドレス値に加算することができる。こ
のアドレス加算器は、同じ値を減算することもできる。
第25ビットは、上で述べたアドレスのニブル部分であ
る。1画素の増分は、画面解像度の現在の設定に応じ
て、アドレスに対して異なる影響を及ぼす。
【0135】すべてのアドレス・レジスタが、適当なメ
モリ・サイクルすなわち、アドレス・レジスタのソース
に関してはソース読取りの終り、宛先アドレス・レジス
タに関しては宛先の書込みの終りに、自動的に更新され
る。アドレスは、ブリッタ(ブロック転送機能)コマン
ド内のSWRAPビットおよびDWRAPビットを使用
することによって垂直にラップするようにでき、ブリッ
タ制御レジスタ内のSLWRAPビットおよびDLWR
APビットを使用することによって水平にラップするよ
うにすることができる。
【0136】アドレス出力マルチプレクサは、システム
・メモリ34に対する外部アドレスを提供する。これ
は、3種類のアドレス、すなわちソース・アドレス、宛
先アドレスおよびプログラム・アドレスを提供する。こ
れらは、対応するアドレス・レジスタから直接に獲得さ
れる。
【0137】ブリッタ70が線を描く時には、アドレス
・レジスタが、通常とは異なる形で使用される。宛先ア
ドレス・レジスタは、線描画アドレスとして使用され、
ソース・アドレス・レジスタはデルタ1、ステップ・レ
ジスタはデルタ2として使用される。線描画中には、デ
ルタ1からデルタ2を減算し、その時に作られた借り出
力を使用して、宛先アドレス・レジスタに何を加算する
かを決定する。これ以上の詳細については、下の線描画
に関する節を参照されたい。
【0138】ブリッタ70は、ブリッタ70の動作を制
御するシーケンサも有する。この制御の流れは、2つの
水準で検討するのが最適である。制御の全体の流れを支
配する外側ループと、実際のブリット動作または線描画
動作を実行する内側ループがある。外側ループの中に
は、コマンド読取り手順、パラメータ読取り手順および
内側ループという3つの部分がある。
【0139】内側ループは、実際のブリット動作または
線描画動作を実行する。内側ループ・サイクルには、3
つまでのメモリ・サイクルを含めることができる。この
サイクルは、ソース・アドレスからの読取りと、宛先ア
ドレスからの読取りと、宛先アドレスへの書込みであ
る。3つのサイクルのいずれも任意指定である。このル
ープにソース読取りが含まれるか、あるいはソース読取
りと宛先読取りが含まれる場合、宛先書込みが発生する
前に、比較器の禁止機構がテストされる。これによっ
て、比較器の禁止条件が満たされる時に書込みサイクル
を迂回できるようになる。比較器の禁止条件が満たされ
る時には、現在の動作を停止させ、制御をCPU30に
返すことができる。その後、プログラムは、アドレス・
レジスタを検査して、禁止がどこで発生したかを判定
し、その結果、衝突検出を実行できる。その後、CPU
30は、動作を再開するか、打ち切るかを決定できる。
内側ループでは、内側ループ・カウンタが0に達するま
で動作が実行される。内側ループ・カウンタは、10ビ
ット・カウンタであり、したがって、内側ループは、1
回から1024回までのどの回数でも繰り返すことがで
きる。
【0140】ブリッタ70には、比較器の書込み禁止が
発生する時に動作を停止させることによる、衝突検出の
ための手段がある。これが発生する時には、制御をCP
U30に返し、CPU30は、ブリッタ70の内部状態
を検査して、何が衝突を引き起こしたかを判定する。こ
の時点で、CPU30は、ブリッタ70に実行中であっ
た動作を再開させるか、ブリッタ70をリセットして遊
休状態にするかを選択できる。ブリッタ70を別の動作
に使用する前に、リセット・コマンドまたは再開コマン
ドのいずれかを発行しなければならない。ブリッタ70
が延期状態にある間に、コマンド・レジスタに新しい値
を書き込むことができ、その結果、衝突停止機構をディ
スエーブルできることに留意されたい。
【0141】パラメータ読取り手順は、新しいパラメー
タの組を内側ループにロードするという非常に単純なシ
ーケンスである。この手順では、メモリから、データ・
レジスタの事前設定に使用される内側ループ・カウンタ
値、ステップ・レジスタ値およびパターン値をこの順番
で読み取る。内側カウントは、効果的には内側ループが
実行される回数になる。ステップ・レジスタは、アドレ
ス増分に使用され、パターン・レジスタは、データ操作
に使用される。
【0142】パラメータ読取り手順は、ブリット動作の
開始時にコマンド読取り手順の一部として呼び出され、
PARRD制御ビットによる決定に従ってブリット動作
によって要求された場合にも呼び出される。内側ループ
を通過するパスの間に余分なパラメータ読取りを発生さ
せて、パラメータを変更し、これによって、不規則な形
状のペイントや、ラン・レングス(RLL)符号化デー
タの伸長などの動作を行うことができる。
【0143】コマンド読取り手順は、新しいブリット動
作を開始するために使用される。ブリッタ70は、イン
アクティブのリセット状態で始動する。この状態は、ブ
リッタ70の通常のインアクティブ状態を表す。この状
態からコマンド・レジスタ書込みを実行して、ブリッタ
70を始動するが、通常はプログラム・アドレス・レジ
スタへの書込みを先に行う。動作パラメータの完全な組
が、自動増分されるプログラム・カウント・アドレスか
らロードされ、制御がコマンド読取りループから出る。
ブリット動作が完了した時、プログラム・カウント・ア
ドレスから次のコマンドを読み取り、このコマンドがブ
リッタ70を走行モードのままにする場合、新しいパラ
メータの組をロードし、次の動作を開始する。そうでな
い場合、ブリッタ70は、その停止状態に入り、システ
ム'・バス61をCPU30に返す。上記の機構を用い
ると、ブリッタ70が、プロセッサの介入を全く必要と
せずに任意の長さのグラフィックス・コマンド・シーケ
ンスを実行できるようになる。プロセッサ入出力書込み
サイクルは、ブリッタのメモリ読取りと比較して相対的
に低速であるので、これは非常に有用である。
【0144】外側ループの通常動作は、コマンド読取り
ループから脱出する時に開始される。その後、パラメー
タ読取りループに入って、パラメータの最初の組を読み
取り、動作開始前に内側カウンタに初期値をロードされ
た状態で内側ループに入る。その後、外側カウンタを減
分し、0になったならば、コマンド読取りループに入
る。その後、ソース・アドレス・レジスタと宛先アドレ
ス・レジスタのいずれかまたは両方を、ステップ・レジ
スタの内容を用いて更新することができる。その後、任
意指定としてパラメータ読取りループに入って、内側ル
ープにもう一度入る前にさまざまな内側ループ・カウン
タを更新することができる。この2つのループを用いる
と、ブリッタ70が、2次元画面構造に関する動作を実
行できるようになり、外側アドレス・レジスタの更新に
よって、画面アドレス・ポインタがその構造の次のライ
ンの始点を指すように移動する。パラメータ読取りルー
プによって、柔軟性が追加されると同時に、ラインごと
に画面構造パラメータを変更できるようになる。
【0145】ブリッタ70は、メモリ・インターフェー
ス状態生成回路も有する。この状態生成回路は、すべて
のメモリ・サイクルのサイクル・タイミング生成とバス
・アービトレーションを制御する。ブリッタ70は、ブ
リッタ(ブロック転送機能)コマンド・シーケンスの持
続時間の間、CPU30からシステム'・バス61の制
御を奪う。これは、上で述べたバス委譲の対象である
が、ブリッタ70は、システム'・バス61を与えられ
るとすぐにその動作を開始する。好ましい実施例では、
ブリッタ70が、CPU30にプログラムROM50と
プロセッサ・キャッシュ62へのアクセスを許可する
が、A/V/CDコントローラ/補助プロセッサ内のす
べてのデバイスが、システム'・バス61に対する制御
を有する。しかし、単純化のために、代替方法では、C
PU30がシステム'・バス61のマスタでない間、ブ
リッタ70がCPU30を停止させることができる。
【0146】メモリ・インターフェースは、DSP74
またはコンパクト・ディスク読取りチャネルがシステ
ム'・バス61を要求すると、現メモリ・サイクルを完
了すると同時にシステム'・バス61をこれらに譲る。
【0147】割込みも、ブリッタ制御レジスタ内でマス
クされていない限り、ブリッタ70に動作を中断させ
る。ブリッタ70は、割込み線自体の状態を検出し、こ
れを使用して動作を中断する。割込み線が前の状態に戻
ると同時に動作が再開されるが、割込み線が前の状態に
戻るのは、CPU30が確認ポートへの書込みを行った
時である。これは、必ずしも割込みサービス・ルーチン
の終りではなく、したがって、プログラマは、スタック
のあふれに注意しなければならず、通常はサービス・ル
ーチン中には割込みをディスエーブルしたままにしてお
かなければならない。ブリッタ70は、割込み線がクリ
アされると同時に、CPU30からの介入なしに動作を
再開する。ブリッタ70は、内部割込み源(ビデオ割込
み、アナログ入力割込みおよびコンパクト・ディスク割
込み)だけに応答する。外部CPU割込み源は、ブリッ
タ70に全く影響しない。
【0148】ブリッタ70は、多数の動作モードを有す
る。ブリッタ70が実行する最も単純な動作には、シス
テム・メモリ34の1ブロックを別のブロックにコピー
する動作や、システム・メモリ34のブロックを所定の
値で満たす動作が含まれる。これらの動作は、システム
・メモリ34の線形部分と、任意の画面長方形に対して
実行できる。コピー動作の場合、宛先データ・レジスタ
が、変更されるシステム・メモリ34のアドレスとして
使用され、ソース・アドレス・レジスタが、コピーされ
るデータのアドレスとして使用される。
【0149】動作がメモリの線形区域に対して実行され
る時には、アドレス制御ビットのほとんどが0にセット
される。ステップ・レジスタは使用されず、唯一の必要
条件は、DSIGNビットおよびSSIGNビットを適
切に設定することによって、コピーを行う際にアドレス
を増分するか減分するかを決定することである。アドレ
ス・レジスタに置かれる初期値は、DSIGNビットま
たはSSIGNビットがセットされていない場合には動
作が行われる区域の最下位であり、DSIGNビットま
たはSSIGNビットがセットされている場合には最上
位であることに留意されたい。どちらの場合でも、最初
に読み書きされる画素が最初のアドレスになる。動作の
長さは、内側カウンタに置かれ、外側カウンタは0にセ
ットされる。
【0150】操作されるブロックが非常に大きい場合、
内側ループ・カウンタと外側ループ・カウンタの両方を
使用しなければならない可能性があり、この場合、操作
される画素の個数は、内側ループ・カウンタ値と外側ル
ープ・カウンタ値の積によって与えられる。ソース・デ
ータまたは宛先データのどちらかまたは両方が、線形区
域ではなく長方形の時には、内側ループ・カウンタに長
方形の幅を格納し、外側ループ・カウンタに長方形の高
さを格納する。
【0151】適当なステップ・レジスタに、長方形の右
端から次のラインの左端までのアドレス増分をセットす
る。SRCUPビットとDSTUPビットは、ソースま
たは宛先が長方形であるかどうかに従ってセットする。
画素ごとに8ビット以上のモードでは、SRCENやD
STENはメモリ・フィルに使用されず、メモリ・コピ
ーのためには、ビットSRCENをセットしなければな
らない。4ビット画素モードでは、他方の画素との衝突
を避けるために宛先の読取りが実行されるように、DS
TENも必ずセットしなければならない。この方法を使
用すると、他の方法より低速になることに留意された
い。
【0152】ブリッタ70は、周知のディジタル微分解
析器(DDA)アルゴリズムに基づいて線を描く。この
アルゴリズムの基礎は、所与の線に関して、Xアドレス
またはYアドレスのうちの一方を、1画素を描くたびに
必ず増分し、もう一方のアドレスは、適当な算術条件が
満たされる場合に限って増分するというものである。ブ
リッタ70が使用するアルゴリズムでは、dxとdyの
うちの小さい方を作業値からくり返し減算し、アンダー
フロー発生時にはdxとdyのうちの大きい方を加算す
ることによって条件増分を引き起こす算術条件を計算
し、効果的に除算を使用して傾きを計算する。表記「d
x」は、その線が対応するX軸に沿った距離を指し、|
(X1−X2)|によって与えられる。ただし、X1と
X2は、2点のX座標であり、垂直棒表記は、これらの
差の絶対値を意味する。したがって、(X1,Y1)か
ら(X2,Y2)まで線を描く場合、dx=|(X1−
X2)|であり、dy=|(Y1−Y2)|である。こ
れらの値から、D1(DDAでは「デルタ1」と称す
る)は、dxとdyのうちの大きい方、D2(DDAで
は「デルタ2」と称する)は、dxとdyのうちの小さ
い方によって与えられる。その後、描かれる画素ごと
に、当初はD1/2にセットされる作業値からD2を減
算し、この減算の結果の符号(アンダーフローを示す)
が、画面アドレス更新の条件部の算術条件になる。この
アンダーフローが発生する時には、D1の元の値を作業
値に加算する。dyに対するdxの比によって、このア
ンダーフローと加算の発生する頻度が与えられることが
わかる。この比はもちろん、線の傾きである。
【0153】線描を作成するのに使用される値は、ブリ
ッタ(ブロック転送機能)コマンド内で下記に従ってセ
ットされる。線の始点は、宛先アドレスであり、D1
は、ソース・アドレス・レジスタのビット10ないしビ
ット19に置かれ、D1/2は、ソース・アドレス・レ
ジスタのビット0ないしビット9に置かれる。D1は、
内側カウンタ値でもある。ただし、線の両端の点を描画
する場合には、D1+1を使用しなければならない。D
2は、宛先ステップ・レジスタに置かれる。dxがdy
より大きい場合、YFRACフラグをセットし、そうで
なければYFRACフラグをクリアする。SSIGN
は、Xアドレス更新の符号を示し、DSIGNは、Yア
ドレス更新の符号を示す。
【0154】線を描いている間、アドレス部分のすべて
のレジスタが、線アドレスの計算に占有される。したが
って、ブリッタは、線を描く時には他の位置からデータ
を移動する能力を有しない。したがって、線アドレスに
書き込まれるデータは、パターン・データによって直接
与えるか、論理機能ユニットに従ってパターン・データ
と既にそこにあるデータを組み合わせることによって与
えなければならない。その結果、SRCENをセットし
てはならず、そうしないと、ブリッタは一見ランダムな
データを生じるはずである。線を描いている間、内側カ
ウンタは、線の長さにセットされ、外側カウンタは1に
セットされる。画素ごとに8ビット以上のモードでは、
読取り−変更−書込み動作のために使用するのでない限
り、DSTENをセットする必要はない。4ビット画素
モードでは、他方の画素との衝突を避けるために宛先の
読取りが実行されるように、DSTENを必ずセットし
なければならない。
【0155】ブリッタ70は、単一の動作で画面上にキ
ャラクタをペイントする能力も有する。ブリッタ70に
関する限り、キャラクタ・ペイントは、8画素までの幅
と任意の高さを有する長方形区域のペイントを意味す
る。この区域内の画素は、ビット・パターンに従って書
き込まれるか未変更のまま残されるかのどちらかにな
る。このモードは、キャラクタ・ペイントに制限され
ず、モノクローム・ビット・パターンとして記憶される
すべてのグラフィックスを拡張するのに使用できる。
【0156】キャラクタ・ペイント中には、ソース・レ
ジスタが、通常はフォントの一部であり、各バイトがキ
ャラクタの1行に対応するビット・パターンをアドレス
する。したがって、ブリッタ(ブロック転送機能)フォ
ントは、8画素までの幅とすることができるが、より幅
広のフォントを使用することもできる。しかし、幅広フ
ォントは、1キャラクタをペイントするのに複数のブリ
ッタ(ブロック転送機能)ペイント動作を必要とする。
キャラクタ・ペイントは、本質的にはシステム・メモリ
34内に置かれたキャラクタ・フォントから宛先アドレ
スへのブロック移動である。
【0157】データは、左端画素に対応するビットを最
下位ビットに配置され、キャラクタの頂部を最低位アド
レスに配置される。データが8画素幅未満の場合、フォ
ント・データの下位ビットは使用されない。
【0158】宛先アドレス・レジスタを使用して、キャ
ラクタをペイントする画面の区域をアドレスする。通
常、この区域は、前のブリッタ動作によって、必要な背
景色にクリアされている。宛先アドレスは、キャラクタ
の左上角に初期設定される。ペイントするキャラクタ
は、長方形であり、したがって、宛先アドレスは、それ
相応にプログラムされる。内側カウンタには、キャラク
タの幅が送られ、外側カウンタには、キャラクタの高さ
が送られる。宛先ステップ・レジスタは、画面幅からキ
ャラクタ幅を減じた値にセットされる。DSTUPビッ
トを使用して、内側ループを通るパスの間に宛先アドレ
スが更新されるようにする。
【0159】内側ループ制御ビットであるDSTENと
SRCENFをセットする。キャラクタ・ペイントは、
SRCENFが存在する理由である。これによって、各
行のフォント・バイトを1回だけ読み取ることが可能に
なる。比較器は画素のペイントを制御するのに使用さ
れ、したがって、CMPBIT制御ビットをセットし
て、ビット対バイト拡張機構をイネーブルする。
【0160】ペイントされるカラーは、パターンとして
セットされ、これは、通常はパターン・データ・レジス
タに保持される。4ビット画素モードの場合、DSTE
Nをセットし、宛先データ・レジスタが読取り値を保持
し、その結果、バイトの他方の半分が無変更で書き戻さ
れるようにする。ソース・データ・レジスタは、上で述
べたようにフォント・パターンを保持する。
【0161】ブリッタの回転スケーリング・モードで
は、シェーディング(陰影作成)ALUを使用するが、
3つのDDAに基づくデータ値を作るのではなく、2つ
のDDAに基づくアドレス値、XおよびYを作る。通
常、これらの値は、ソース・データ・フィールドを任意
の角度と速度で横断し、その結果、宛先データがスケー
リングまたは回転もしくはその両方を受けた版のデータ
に対応するようにするのに使用される。
【0162】赤値ジェネレータが、X値を与え、緑値ジ
ェネレータが、Y値を与える。青値ジェネレータは使用
されず、明らかに、このモードと共にシェーディングを
使用することはできない。回転は、シェーディングより
高い精度を必要とするので、X値とY値に4つの余分の
整数ビットを追加する。これらは、回転レジスタ内で0
と1にセットアップされる。すべての計算が、10小数
点ビット精度で実行される。
【0163】シェーディングと同様に、デルタ値は、各
画素が内側ループで描画された後にXとYに加算され
る。ステップ値は外側ループで加算され、これらが加算
されるようにSRCUPフラグとDSTUPフラグの両
方をセットしなければならない。デルタ値とステップ値
は、正負のいずれかとすることができ、シェーディング
・モードと異なって、無加算または飽和が発生しない。
【0164】通常、回転とスケーリング(拡大縮小)
は、宛先長方形に対する通常のラスタ走査を実行し、そ
の間にソース・ポインタが適当な傾きと速度でソースを
横断するように宛先アドレス・ポインタをセットするこ
とによって実行される。これによって、宛先データが連
続的になり、必要以上のブリット(ブリッタ動作)が要
求されないことが保証される。宛先区域が長方形でない
場合、ソース・データは、適当な透明カラーによって囲
まれていなければならない。
【0165】ブリッタ(ブロック転送機能)コマンド
は、メモリ内のデータのテーブルとして与えられる。ブ
リッタ70は、そのレジスタにこのテーブルの内容をロ
ードし、指定された動作を実行する。ブリッタ70は、
コマンド・レジスタにSTOP(停止)命令が読み込ま
れるまで、連続したコマンドの組を受け取る。
【0166】ブリッタ(ブロック転送機能)プログラム
・アドレスは、コマンド・ワードを発行する前にセット
・アップしなければならない。ブリッタ(ブロック転送
機能)プログラム・アドレスは、プログラム・アドレス
・レジスタ群によって与えられ、これらのレジスタが一
緒になって、完全な24ビット・アドレスを形成する。
プログラムは、ワード境界に整列していなければならな
い。
【0167】ブリッタ(ブロック転送機能)コマンド・
データの完全なテーブルは、コマンド・ワードから始ま
る。しかし、シーケンス内の最初のブリッタ(ブロック
転送機能)コマンドは、CPU30の入出力サイクルに
よってそのコマンド・ワードをコマンド・レジスタに書
き込まれている。したがって、ブリッタ(ブロック転送
機能)コマンドは、第2ワードからのコマンド・データ
の読取りを開始する。同様に、最後のブリッタ(ブロッ
ク転送機能)コマンドは、RUN(走行)ビットをクリ
アされたコマンドだけからなる必要がある。
【0168】ブリッタ(ブロック転送機能)コマンド
は、多数のコマンド・ビットと制御ビット、24ビット
のソース・アドレス、24ビットの宛先アドレス、10
ビットの外側カウンタ値、10ビットの内側カウンタ
値、12ビットの符号付きソース・ステップ、12ビッ
トの符号付き宛先ステップおよび15ビットのパターン
値という形式になる。SHADEビットがセットされて
いる場合、9つの追加ワードが取り出される。すなわ
ち、いずれも整数部6ビットと小数部10ビットからな
る、赤、緑および青の初期値と、赤、緑および青のデル
タ値と、赤、緑および青のステップ値である。
【0169】コマンド・ビットは次のとおりである。R
UNビットをセットすると、ブリッタ70が動作を開始
する。これは、入出力ポートとしてコマンド・レジスタ
に書き込んで、ブリッタ70にコマンド読取りを開始さ
せる時に使用される。ブリッタ70が、コマンド読取り
の一部としてRUNビットをクリアされたコマンドをロ
ードした場合、動作が停止する。COLSTビットをセ
ットすると、衝突(書込み禁止)が発生する場合に動作
が停止するようになる。その地点から、CPU30によ
ってプリント動作を再開するか打ち切ることができ、さ
まざまな内部レジスタを読み取ることができる。PAR
RDビットをセットすると、内側ループを脱出するたび
に、外側ループが0に到達していないならば、ブリッタ
70が、プログラム・カウンタ・アドレスから新パラメ
ータ・セットを読み取るようになる。SRCUPビット
をセットすると、内側ループから脱出した時に、外側カ
ウンタが0に達していないならば、ステップ・レジスタ
の内容がソース・アドレスに加算されるようになる。D
STUPビットをセットすると、内側ループから脱出し
た時に、外側カウンタが0に達していないならば、ステ
ップ・レジスタの内容が宛先アドレスに加算されるよう
になる。SRCENビットをセットすると、内側ループ
でのソース・アドレス読取りがイネーブルされる。ま
た、これによって、画素サイズに従ってソース・アドレ
ス・レジスタが増分されるようになる。DSTENビッ
トをセットすると、内側ループでの宛先アドレス読取り
がイネーブルされる。これは、宛先アドレス・レジスタ
には影響しない。宛先アドレス・レジスタは、宛先書込
みサイクルの一部として増分される。SRCENFビッ
トをセットすると、内側ループに初めて入る時にソース
・アドレスが読み取られ、その後内側ループに入る時に
は読み取られなくなる。これはSRCENの特殊な場合
であり、上で述べたキャラクタ・ペイント・モードに関
連する。SRCENがセットされている場合、SRCE
NFは無効になる。2つのビットPSIZE0およびP
SIZE1は、画素サイズを選択するビットであり、0
が4ビット、1が8ビット、2が16ビット、3が32
ビットに対応する。32ビットは、上で述べたように3
2ビット・システムのみのデータ移動用の画素サイズで
ある。2つのビットWIDTH0およびWIDTH1
は、画面幅をバイト単位で選択するビットであり、0が
256バイト、1が512バイト、2が1024バイ
ト、3が2048バイトに対応する。LINDRをセッ
トすると、ブリッタ70が線描画モードになる。このモ
ードでは、ソース・アドレス・レジスタと宛先アドレス
・レジスタの両方が線描画アドレスの生成に使用され、
これらのレジスタは、読取りと書込みの両方に使用され
る可能性がある。YFRACビットをセットすることに
よって、ブリッタ70に、線描画モードでXアドレスと
Yアドレスのどちらが小数増分を有するかを示す。YF
RACビットは、Yアドレスが小数増分を有する場合に
セットされる。PATSELビットをセットすることに
よって、論理機能ユニットへのソース入力としてソース
・データ・レジスタをパターン・データ・レジスタに置
換するように選択される。このビットは、キャラクタ・
ペイントに関連し、この場合、ソース・データ・レジス
タにフォント・データが格納され、パターン・データ・
レジスタにインク・カラーが格納される。SHADEビ
ットをセットすると、シェーディングALUからの書込
みデータとしての出力がイネーブルされる。このビット
は、8ビット画素と16ビット画素の場合にのみ有効で
ある。
【0170】ブリッタ70は、数種の制御ビットすなわ
ち、ソース制御ビット、宛先制御ビット、論理機能ユニ
ット制御ビットおよび比較器制御ビットを有する。ブリ
ッタ70は、複数のソース制御ビットを有する。SWR
APビットをセットすると、ソース・アドレス更新が、
メモリを線形に進むのではなく、プログラム可能な境界
でラップするようになる。ビットSWRAP0およびS
WRAP1は、ソース・アドレス・ポインタを垂直にラ
ップさせるSWRAP機能のサイズを制御し、0が64
K画面、1が128K画面、2が256K画面、3が5
12K画面に対応する。SRCCMPビットをセットす
ると、比較器へのソース入力としてソース・データ・レ
ジスタが選択される。このビットがクリアされている場
合、パターン・データ・レジスタが使用される。SLW
RAPレジスタをセットすると、ソース・ポインタが、
内側ループ更新の際にライン幅でラップするようにな
る。SSIGNビットをセットすることによって、ソー
ス・アドレスを更新する時に使用される符号がセットさ
れる。このビットをセットすると、ソース・アドレス
が、増分ではなく減分されるようになる。このビットを
セットすると、線描画の際にXが負になる。
【0171】ブリッタ70は、複数の宛先制御ビットも
有する。DWRAPビットをセットすると、宛先アドレ
スの更新が、メモリを線形に進むのではなく、プログラ
ム可能な境界でラップするようになる。ビットDWRA
P0およびDWRAP1は、ソース・アドレス・ポイン
タを垂直にラップさせるDWRAP機能のサイズを制御
し、0が64K画面、1が128K画面、2が256K
画面、3が512K画面に対応する。DSTCMPビッ
トをセットすると、比較器へのソース入力としてソース
・データ・レジスタが選択される。このビットがクリア
されている場合、パターン・データ・レジスタが使用さ
れる。DLWRAPレジスタをセットすると、ソース・
ポインタが、内側ループ更新の際にライン幅でラップす
るようになる。DSIGNビットをセットすることによ
って、ソース・アドレスを更新する時に使用される符号
がセットされる。このビットをセットすると、ソース・
アドレスが、増分ではなく減分されるようになる。この
ビットをセットすると、線描画の際にYが負になる。
【0172】ブリッタ70は、論理機能ユニット制御ビ
ットも有する。論理機能ユニットは、宛先書込みサイク
ル中に書き込まれるデータを制御する。論理機能ユニッ
トを使用すると、ソース・データと宛先データのすべて
の論理組合せが可能になる。これはLFUビットLFU
0ないしLFU3のそれぞれによって最小項のうちの1
つを選択することによって達成され、出力は、選択され
た項の論理和によって与えられる。0の値はNOT(ソ
ース)かつNOT(宛先)に対応し、1はNOT(ソー
ス)かつ(宛先)に対応し、2は(ソース)かつNOT
(宛先)に対応し、3は(ソース)かつ(宛先)に対応
する。したがって、16通りの可能性がある。
【0173】ブリッタ70は、複数の比較器制御ビット
も有する。CMPPLNをセットすると、3つの比較器
機能が、画素全体ではなくプレーン番号ビットに対して
動作するプレーン・モードがイネーブルされる。CMP
EQビットをセットすると、プレーン・モードでは宛先
画素の優先順位がソース画素のプレーン優先順位と等し
い場合、プレーン・モード以外では画素全体が同一の場
合に、比較器が内側ループ書込みを禁止するようにな
る。CMPNEビットをセットすると、プレーン・モー
ドでは宛先画素の優先順位がソース画素のプレーン優先
順位と異なる場合、プレーン・モード以外では画素全体
が異なる場合に、比較器が内側ループ書込みを禁止する
ようになる。CMPGTビットは、プレーン・モードで
のみ動作し、これをセットすると、宛先画素のプレーン
優先順位がソース画素のプレーン優先順位より大きい場
合に、比較器が書込みを禁止するようになる。CMPB
ITをセットすると、ビット対バイト拡張方式がイネー
ブルされる。この場合、比較器は、内側カウンタを使用
してソース・データ・レジスタの1ビットを選択するこ
とによって禁止を生成し、選択されたビットが0の場合
に禁止を生成するようになる。この選択は、内側カウン
タの値が8の時にビット0が選択され、7の時にビット
1、6の時にビット2、以下同様である。
【0174】プログラム・アドレス・レジスタは、ブリ
ット動作コマンドのソースを指す。データは、そこから
メモリの上位方向に順次読み取られる。これは、必ず偶
数でなければならない(すなわち、ブリッタ動作は、ワ
ード境界に整列していなければならない)。レジスタ0
は、アドレス・ビット0ないしビット15に対応し、レ
ジスタ1のビット0ないしビット7は、アドレス・ビッ
ト16ないしビット23に対応する。
【0175】上記のブリッタ(ブロック転送機能)アド
レス・レジスタの一部は、CPU30の入出力空間で可
視である。さらに、ブリッタの状況ビットと制御ビット
の一部は、CPU30からアクセス可能である。上で述
べたように、ブリッタ70は、7つのワード幅読取りレ
ジスタと4つのワード幅書込みレジスタを有する。書込
みレジスタ内の未使用ビットには、0を書き込まなけれ
ばならない。入出力レジスタは、入出力アドレス40H
から始まる位置に現れる。これらのレジスタは、主にD
SP74がこれらにアクセスできるように、メモリ・マ
ップ内でも使用可能であり、入出力と同一のオフセット
だが、基底アドレスF10400Hから始まる(すなわ
ち、40Hを引いてF10400Hを足すとメモリ・ア
ドレスになる)。第1ブリッタ宛先レジスタは、宛先ア
ドレス・レジスタのビット0ないしビット15に対応す
る。第2ブリッタ宛先レジスタのビット0ないし7が、
宛先アドレス・レジスタのビット16ないしビット23
に対応する。第2ブリッタ宛先レジスタのビット15
は、宛先アドレス・レジスタの宛先アドレス・ニブル部
分に対応する。第1ブリッタ(ブロック転送機能)ソー
ス・レジスタは、ソース・アドレス・レジスタのビット
0ないしビット15に対応する。第2ブリッタ(ブロッ
ク転送機能)ソース・レジスタのビット0ないしビット
7は、ソース・アドレス・レジスタのビット16ないし
ビット23に対応し、第2ブリッタ(ブロック転送機
能)ソース・レジスタのビット15は、ソース・アドレ
ス・ニブル部分に対応する。ブリッタ内側カウンタのビ
ット0ないしビット9は、内側カウンタ値に対応する。
ブリッタ外側カウンタのビット0ないしビット9は、外
側カウンタ値に対応する。ブリッタ状況レジスタは、さ
まざまなブリッタ状況情報を与える。ビット0は、比較
器プレーン優先順位の「〜超」条件が満たされたことを
示す。ビット1は、比較器プレーン優先順位の「〜に等
しい」条件が満たされたことを示す。ビット2は、比較
器プレーン優先順位の「〜に等しくない」条件が満たさ
れたことを示す。ビット3は、比較器画素の「〜に等し
い」条件が満たされたことを示す。ビット4は、比較器
画素の「〜に等しくない」条件が満たされたことを示
す。ビット5は、比較器ビット対画素条件が満たされた
ことを示す。ビット13は、ブリッタが現在アクティブ
であるか、CPU割込みまたは衝突停止によって動作が
中断されているかを示すRUNビットに対応する。ビッ
ト14は、ブリッタがCPU割込みのために停止したこ
とを示す。ビット15は、ブリッタが衝突検出のために
停止したことを示す。ブリッタ(ブロック転送機能)プ
ログラム・アドレス・レジスタには、ブリッタ(ブロッ
ク転送機能)プログラム・アドレスのビット0ないしビ
ット15がロードされる。ブリッタ(ブロック転送機
能)プログラムはワード境界に整列していなければなら
ないので、このレジスタのビット0は必ず0であること
を想起されたい。第2ブリッタ(ブロック転送機能)プ
ログラム・アドレス・レジスタのビット0ないしビット
7には、ブリッタ(ブロック転送機能)プログラム・ア
ドレスのビット16ないしビット23がロードされる。
他の8ビットは0である。ブリッタ(ブロック転送機
能)コマンド・レジスタは、ブリッタ(ブロック転送機
能)コマンドのワード0に対応し、ブリッタを起動する
時にコマンドをセット・アップするのに使用される。そ
の後、ブリッタDMAが、コマンドのワード1から開始
される。
【0176】ブリッタ制御レジスタは、3つのビットを
有する。割込み停止マスクであるビット0をセットする
と、ブリッタのバス制御ユニットからの割込みがマスク
され、その結果、割込み発生時にブリッタが停止しなく
なる。ビット1は、衝突の後にブリッタに動作を再開さ
せるビットであり、衝突を検出した後にブリッタを再始
動するのに使用される。衝突は、COLSTビットがセ
ットされている時に検出されることを想起されたい。ブ
リッタは、中断した動作を再開する。ブリッタが衝突停
止状態である間にブリッタのコマンド・レジスタを再プ
ログラムすることが可能であり、したがって、とりわけ
COLSTビットを変更でき、ビット2は、衝突後のブ
リッタを静止状態にリセットするビットであり、衝突停
止が発生した時にブリッタが実行していた動作を打ち切
るのに使用されることに留意されたい。ブリッタ衝突停
止が発生した後には、ブリッタに再開またはリセットを
発行しなければならないことに留意されたい。ブリッタ
70は、3つの回転レジスタも有する。ビット0ないし
ビット3は、Xアドレスの整数部の上位4ビットに対応
し、この10ビット値の下位6ビットは、赤値の整数部
である。ビット4ないしビット7は、X増分の整数部の
上位4ビットに対応し、この10ビット値の下位6ビッ
トは、赤整数値の整数部である。ビット8ないしビット
11は、Xステップの整数部の上位4ビットに対応し、
この10ビット値の下位6ビットは、赤整数値の整数部
である。第2回転レジスタに関して、ビット0ないしビ
ット3は、Yアドレスの整数部の上位4ビットに対応
し、この10ビット値の下位6ビットは、緑整数値の整
数部である。ビット4ないしビット7は、Y増分の整数
部の上位4ビットに対応し、この10ビット値の下位6
ビットは、緑整数値の整数部である。ビット8ないしビ
ット11は、Yステップの整数部の上位4ビットに対応
し、この10ビット値の下位6ビットは、緑整数値の整
数部である。第3回転レジスタでは、ビット0をセット
すると、宛先が回転アドレスに置換される。ビット1を
セットすると、ソース・アドレスが回転アドレスに置換
される。ビット2をセットすると、シェーディング・モ
ードではなく回転モードにセットされる。ビット10な
いしビット15は、回転アドレスの上位ビットに対応す
る。
【0177】オーディオ補助プロセッサであるDSP7
4は、高性能音楽シンセサイザを実施するのに十分な能
力を有する汎用算術補助プロセッサである。16ビット
精度のステレオ・オーディオ信号を生成し、通常はコン
パクト・ディスク技術に関連する音響品質をもたらすた
め、同期式の直列出力を設ける。DSP74は、ホスト
であるCPU30からマイクロプログラム可能であり、
その命令セットは、「音楽シンセサイザ」の機能と全く
異なる多数の異なる機能を実現するためにユーザがこの
デバイスをプログラムできるようにするのに十分な柔軟
性を有する。このような応用例には、アルゴリズム的音
声合成、高速フーリエ変換技法を使用する音声分析、3
次元グラフィックス回転などが含まれるであろう。DS
P74は、データ・スループットを最大にするためにハ
ーバード・アーキテクチャ(プログラム・バスとデータ
・バスを分離したアーキテクチャ)を使用する。DSP
74は、論理演算機構(ALU)を有する。
【0178】このALUは、16ビット対16ビットの
ハードウェア乗算、乗算累算ならびに加算、減算および
論理機能のハードウェアを特徴とする。1チックごとに
商の1ビットを生成する独立の直列除算機構もある。加
算器または減算器からの繰上りビットは、別のラッチに
記憶され、多倍精度算術演算のために繰上りを伝播する
のに使用するか、あるいは条件命令に使用することがで
きる。すべての命令を、このビットの状態に依存するよ
うにすることができる。デバイス内のデータ転送は、乗
算器/累算器内の内部転送を除いてすべて16ビット幅
である。
【0179】DSP74は、主に音声合成を目的とする
非常に単純で超高速のプロセッサであるが、上で述べた
ように他の計算作業を行うこともできる。DPS74
は、どの命令でも1プロセッサ・サイクルで実行する。
これらの命令は、システム・クロック速度(通常は20
MHzないし33MHz)で実行される。音声合成中に
は、DSP74のタイミングが、オーディオ・ディジタ
ル・アナログ変換器(DAC)インターフェース内のタ
イマによって制御される。これらのDACは、二重バッ
ファ式であり、あるDAC書込みがオーバーフローを引
き起こそうとしている場合には、バッファが空になるま
でその動作が延期される。サンプリング速度でループを
実行するソフトウェアに関する限り、また、平均ループ
時間がサンプリング周期未満である限り、2倍までなら
ばループが偶発的に長くなってもよい。ループには、プ
ログラムRAMに収まりきらない量の命令が含まれる可
能性があるので、DSP74は、指標付きアドレッシン
グ・モードを有し、このモードでは、同一のコード部分
が複数の音声に作用することができる。
【0180】DSP74は、ハーバード・アーキテクチ
ャ・デバイスであり、したがって、プログラムRAMと
データRAMが分離されており、両方のRAMブロック
で同時にサイクルが発生するようになっている。1サイ
クル・パイプラインが使用される。したがって、各クロ
ック・サイクルの間に2つの事象が発生する。すなわ
ち、命令の取出しと、前に実行された命令に関連するデ
ータ転送である。これは、ジャンプを実行した後の命令
に奇妙な効果を及ぼす。DSP74は、2つの論理演算
機構(ALU、図示せず)すなわち通常のALUおよび
乗算/累算ALUと、複数のレジスタを有する。複数の
レジスタとは、Xオペランド・レジスタ、第2オペラン
ド・レジスタ、ALUの結果を保持するAZレジスタ、
乗算/累算ALUの結果を保持するMZレジスタであ
る。DSP74は、DMAチャネルと除算器も有する。
【0181】DSP74の動作は、かなり単純である。
命令実行の第1チックでは、プログラムRAMから命令
デコーダにオペコードを読み取る。第2チックでは、次
の命令をプログラムRAMから読み取っている間に、第
1の命令に従って、システム・メモリ34からレジスタ
へ、またはレジスタからシステム・メモリ34へのいず
れかのデータ転送が実行される。
【0182】DSP74内のALUは、16ビット論理
演算機構であり、当技術分野で周知のTexas Instrument
s社の74181と同一の機能を有する。一般的な算術
演算は、命令として符号化される。一般的でない命令
は、汎用算術命令(GAI)を用いてALUモード・ビ
ットを直接セット・アップすることによって実行でき
る。
【0183】DSP74は、乗算器/累算器も有する。
これは、16ビット対16ビットの符号付きまたは符号
なし乗算を実行して32ビットの結果をもたらす第2A
LUである。このほかに、この乗算/累算ALUは、乗
算結果を前の結果に加算する乗算累算演算も実行でき
る。結果は、オーバーフローに備えて36ビットまで累
算される。乗算命令自体は1チックで完了するが、乗算
器の動作は、実際には2チックかかる。これは、乗算ま
たは乗算累算の次の命令が、MZレジスタまたはXレジ
スタを使用してはならないことを意味する。
【0184】DSP74は、除算器も有する。除算機構
は、DSP74の内部空間にある1組のレジスタとして
現れる。これは、16ビットまたは32ビットのオペラ
ンドに対する符号なし除算を行い、商と剰余を作ること
ができる。
【0185】DSP74は、DMAチャネルも有する。
DMAチャネルは、DSP74のデータ・メモリ空間内
の1組のレジスタとして現れる。2つのアドレス・レジ
スタと1つのデータ・レジスタがある。DMA転送は、
2つのアドレス・レジスタのうちの第1のレジスタにア
ドレスを書き込むことによって開始される。DMA転送
は、待ち時間期間を有し、これは、次のDMAを実行す
る前に待機しなければならない時間である。DMA状態
生成回路は、システム'・バス61を要求し、バスを与
えられた時に、転送を実行する責任を負う。この転送の
後に、システム'・バス61が解放される。
【0186】代替方法では、2つのアドレス・レジスタ
のうちの第2のレジスタに、ホールド・ビットをセット
して1ワードを書き込むことができる。これによって、
システム'・バス61が要求され、ホールド・ビットが
クリアされるまでそのバスが保持される。このようなD
MA転送は、連続した複数の転送を実行する時には効率
的になる可能性があるが、単一転送の場合には一般に非
効率的である。というのは、DSP74のプログラム
が、いつシステム'・バス61を与えられたかを判定で
きず、したがって、最大の可能な待ち時間だけ待機しな
ければならないからである。DSP74のメモリは、一
般に、DSPの内部アドレス・ベースでも、ホスト・ア
ドレス・ベースでも可視である。
【0187】DSP74は、それに関連するDSPメモ
リ76を有する。DSPメモリ76には、プログラムR
AM、データRAM、レジスタ/定数テーブルおよびサ
インROM(すべて図示せず)が含まれる。DSPメモ
リ76は、一般に、DSPの内部アドレス空間でも、シ
ステム・メモリ34のアドレス空間でもアクセス可能で
ある。DSPのプログラムRAMは、512個の18ビ
ット・ワードである。これらの位置は、CPU30によ
ってのみ書込み可能であり、DSP74に関する限り、
読取り専用のプログラムである。プログラムRAMは、
DSPの内部アドレス空間には現れない。プログラムR
AMは、DSP74が走行している時にはホストからア
クセスできない。DSP命令のそれぞれは、7ビットの
オペコードと11ビットのアドレス・ベクトルを有す
る。マイクロコード化された命令のすべて(乗算演算と
乗算累算演算を除く)が、185ナノ秒サイクルで完了
する。命令はすべて、システム・メモリ34対レジスタ
転送か、レジスタ間転送であり、即値は認められない。
したがって、所与の命令のために定数が必要な場合、そ
の定数は定数テーブルからは使用できず、データRAM
位置をその値のためにとっておかなければならない。D
SP74は、条件命令と指標付きアドレッシングも許容
する。命令コードのビット12がセットされている場
合、その命令は、ALU内の繰上りビットがセットされ
ている場合に限って実行される。命令コードのビット1
1がセットされている場合、その命令コード内の9ビッ
ト・アドレス・ベクトルを、指標レジスタ内の9ビット
値と加算して、その命令によって操作されるアドレスと
データ・メモリを得る。余分の2ビットは、エクストラ
・ビット・レジスタに値をロードし、所望の位置にワー
ドを書き込むことによってプログラムされる。
【0188】DSP74は、メモリとレジスタの間でデ
ータを移動する、多数の移動コマンドを有する。その他
に、加算、減算、論理積、論理和、繰上り付き加算、N
OP、上述のGAI、および、DSPメモリ76をCP
U30がアクセスできるようにするINTRUDEコマ
ンドを含む複数のコマンドを使用できる。
【0189】サインROMは、2の補数表現の正弦波全
体の正弦波値の256個の16ビット・ワードである。
【0190】データRAMは、512個の16ビット・
ワードである。
【0191】データは、DSP74の制御の下またはC
PU30の制御の下で、CPU30とDSP74の間で
転送できる。
【0192】DMA転送機構は、DSP74がシステ
ム'・バス61のバス・マスタになり、システム・メモ
リ34をアクセスすることに基づいている。DSP74
は、最高の優先順位を有するバス・マスタの1つであ
り、したがって、現バス・マスタがシステム'・バス6
1を放棄できるようになるとすぐに、現バス・マスタか
らシステム'・バス61を与えられる。システム'・バス
61の放棄に関する最悪条件は、CPU30がバス・マ
スタになっている情況である。というのは、80376
または80386SXプロセッサは、システム'・バス
61を解放するのにかなりの時間を要する可能性がある
からである。DMA転送は、上で述べたように第1のD
MAアドレス・レジスタに書き込むことによって開始さ
れる。状況情報とアドレスの上位部分の転送は、第2の
DMAアドレス・レジスタに既に書き込まれていなけれ
ばならず、同様に、書込み転送の場合には、書込みデー
タがDMAデータ・レジスタに既に書き込まれていなけ
ればならない。転送開始時に、DSP74は、システ
ム'・バス61を要求し、システム'・バス61がDSP
74に与えられた時に、DSP74が、転送を実行し、
その後、システム'・バス61を解放する。この動作の
完了をポーリングすることができ、もしくは、プログラ
マが、読取りデータの使用または別の転送の開始の前に
最大の可能な待ち時間を経過させることを選択してもよ
い。
【0193】2つのDMAアドレス・レジスタのうちの
第2のレジスタのホールド・ビットを使用してシステ
ム'・バス61を要求するという第2のバス獲得技法を
実行することもできる。これは、DSP74が複数の転
送を連続して実行したい場合により効率的になる可能性
がある。というのは、転送と転送の間にシステム'・バ
ス61が解放されないからである。DSP74がシステ
ム'・バス61を解放する前に、第2のDMAアドレス
・レジスタのホールド・ビットをクリアしなければなら
ない。この機構は、一般的には推奨されない。というの
は、DSP74が何の処置も行わずにかなりの期間にわ
たってシステム'・バス61の制御を有することにな
り、これは、総合的なメモリ・バス帯域幅の浪費であ
り、潜在的にCDのDMA転送を妨害する可能性がある
からである。第2の技法を使用する場合、DSP74
は、DMA転送を実行する前に、まずシステム'・バス
61を要求しなければならない。DSP74は、システ
ム'・バス61を得たことを検出する手段を持たず、し
たがって、最大個数のバス命令だけ待たなければならな
い。DSP74がシステム'・バス61の所有権を獲得
したならば、バス・サイクル実行に進むことができる。
DSP74は、読取りサイクルまたは書込みサイクルま
たはその両方の任意のシーケンスを実行でき、これらの
終りにシステム'・バス61の制御を放棄しなければな
らない。
【0194】データ転送は、ホストであるCPU30の
制御の下でCPU30とDSP74の間で実行すること
もできる。DSP74の内部メモリのすべてが、ホスト
のアドレス空間にマッピングされる。DSP74が停止
モードの時、ホストは、通常のシステム・メモリ34に
あるかのようにDSPのプログラム・メモリ位置に書き
込むことができる。しかし、DSP74が走行している
時には、プログラム・メモリはホストから使用できな
い。DSP74のデータ・メモリは、INTRUDE機
構によってのみ使用可能になる。DSP74の動作がど
のような形でも邪魔されないことを保証するために、D
SP74がINTRUDE命令を実行している時に限っ
て、データ・トランザクションをデータ・メモリ内で実
行できる。DSP74が停止している時には、効果的に
INTRUDE命令を絶えず実行しているとみなすこと
ができる。
【0195】CPU30からDSPメモリ76への転送
は、DSP74が走行中でない時に限って、ブリッタ7
0を使用して実行できる。同様に、ブリッタ70は、D
SP74の実行中には、DSPのデータRAMをアクセ
スできない。要するに、ブリッタ70とCPU30は、
DSP74がINTRUDE命令を実行している間に限
ってDSPメモリ76を変更できる。
【0196】DSP74は、ブリッタ70に、システム
RAMからDSPプログラムRAMへのDSPコードの
超高速ブロック移動を行わせることができる。したがっ
て、DSP74とブリッタ70が協力して、実際に使用
可能な量以上のRAMをDSP74に効果的に提供する
ことができる。
【0197】DSP74は、直列オーディオ・ディジタ
ル・アナログ変換器(DAC)インターフェースも有す
る。直列DACインターフェースを用いると、DSP7
4が、同期式直列(I2Sまたは同様の)DACの駆動
と、CDドライブなどの同期式直列データ供給源からの
データ入力の両方を行えるようになる。インターフェー
ス・タイミングは、入力装置が取り付けられていない場
合には内部で生成できるが、データ供給源が存在する場
合には、それを使用してタイミングを決定しなければな
らない。内部オーバーフロー検出器によって、DSP7
4が、前の出力データが完全に出力されないうちにDA
Cに書き込まないようにする。これは、2つのDACレ
ジスタのうちの第1のレジスタに書き込むことによって
制御される。したがって、DAC転送は、第1DACレ
ジスタへの書込み、第2DACレジスタへの書込み、入
力値の読取りという形式にならなければならない。これ
らは、短時間で連続して(16命令以内で)実行されな
ければならない。アンダーフローの検出はなく、万一ア
ンダーフローが発生した場合には、前の出力値がもう一
度出力される。DAC値は、二重バッファリングされ、
その結果、オーディオ・コードはサンプリング周期以下
の平均速度でループしなければならないが、偶発的にル
ープの通過に2つまでのサンプル期間を要しても構わな
くなっている。これは、例外処理に有用であろう。
【0198】DSP74には、Texas Instruments社の
74181デバイスに互換の論理演算機構(ALU)が
含まれる。
【0199】A/V/CDコントローラ/補助プロセッ
サ32も、コンパクト・ディスクDMAコントローラを
有する。このCDコントローラには、単純な同期式直列
インターフェース(I2Sまたは同様のもの用)、CD
ROMブロック・デコーダおよびDMAチャネルとい
う機能ブロックが含まれる。この機構を用いると、直列
データ・ストリームをシステム・メモリ34に、直接に
またはまずブロック・デコーダを通してから、転送でき
るようになる。これによって、内部ブロック・デコーダ
に問題があるか互換性がない場合に、外部ブロック・デ
コーダを使用できるようになる。転送長カウンタが0に
達するならば、転送の完了時に割込みを生成できる。
【0200】コンパクト・ディスク・コントローラの同
期式直列インターフェースは、当技術分野で周知のPhil
ipsデータ・フォーマットをサポートする。Philipsデー
タ・フォーマットは、クロック線、ワード選択線および
データ線を有する。ワード選択は、クロックの1チック
ごとにデータを導き、データは、32ビット・データの
最上位ビット(MSB)に対して整列される。ワード選
択線は、ローであれば左データ、ハイであれば右データ
を示す。同期式直列インターフェースは、Philipsブロ
ック・デコーダ出力方式もサポートする。ビット順序が
逆転され、先頭ビットがデータの第1ビットに整列され
る。ワード選択フォーマットは、Philipsデータ・フォ
ーマット、ソニー・データ・フォーマットまたは松下デ
ータ・フォーマットのいずれかとすることができる。
【0201】CDドライブ・コントローラ72は、ブロ
ック・デコーダも有する。このブロック・デコーダは、
2352バイト・セクタの先頭に同期化し、スクランブ
ル解除を実行し、エラー検出のためEDC(エラー検出
コード)を計算する。これは、ヘッダの後に2048バ
イトが転送されるショート・モードか、同期パターンの
後に2340バイトが転送されるロング・モードのいず
れかで動作する。これによって、望むならばヘッダ・デ
ータとエラー訂正データとを読み取れるようになる。ヘ
ッダ・サイズは、CDドライブ・モード1とCDI/X
Aモード2フォーム1をサポートするために、4バイト
または12バイトのいずれかにプログラム可能である
が、ヘッダ突合せは、4バイトの主ヘッダに対してのみ
実行される。モード2の諸フォームは、ロング・モード
で動作し、必要なデータを抽出することによってのみサ
ポートされる。ヘッダ突合せは、正しいデータが読み取
られていることを保証するために、転送の第1セクタに
対して実行される。所望のヘッダ値を、ヘッダ・レジス
タにプログラムしなければならない。多重セクタ転送を
実行する場合、第1セクタの後にはヘッダ突合せは行わ
れない。
【0202】通常は、通常転送がショート・モードで実
行され、ロング・モードは、エラーが検出された時に使
用され、その結果、オペレーティング・ソフトウェアが
エラー訂正を試行できるようになっている。多重セクタ
転送は、転送すべきロング・ワードの総数のカウントを
与えることによってサポートされる。エラーが発生する
と、多重セクタ転送が打ち切られる。エラーは、信頼で
きないデータ、EDCエラーまたは無同期という形にな
る。デコーダをポーリングして、現在の状態を判定する
ことができる。CDドライブ・コントローラは、DMA
インターフェースも有する。DMAインターフェース
は、1時に2つの16ビット・ワードをシステム・メモ
リ34に転送できる。DMAインターフェースは、内部
ブロック・デコーダからの出力か、同期式直列インター
フェースからの出力のいずれかを受け取ることができ
る。DMAインターフェースは、システム・メモリ34
内で上位に向かって走行するアドレス・カウンタを有す
る。DMAインターフェースは、直列インターフェース
からの直接転送のための転送長カウンタを有する。「永
久モード」では、DMAアドレス・レジスタが、32K
Bバッファ内でラップし、カウンタは無視される。これ
は、CDオーディオ・データや、「フル・モーション・
ビデオ」伸長などの実時間データ処理に有用であろう。
アドレス・ポインタがバッファをラップアラウンドする
たびに、CPU30割込みが生成される。
【0203】ここで図6を参照すると、カートリッジを
「ロック」する方法の代替方法が示されている。上で述
べたように、図1および図4のアドレス・スクランブル
54が、無許可の使用に対してプログラム・カートリッ
ジ14を「ロック」するための方法の1つを提供する。
もう1つの方法は、図6に示されるように、トーンを生
成するマイクロコントローラ100をカートリッジ内に
置くことである。このカートリッジには、上で図1に関
連して説明したプログラムROM50、アドレス・スク
ランブル54を説明した文章で全般的に説明したアドレ
ス・デコーダ102、およびマイクロコントローラ10
0が含まれる。
【0204】このアドレス・デコーダは、通常のカート
リッジに見られるアドレス・デコーダに非常に似ている
が、マイクロコントローラ100がイネーブル線103
を介してアドレス・デコーダ102をイネーブルする時
に限って、アドレス・デコーダ102がプログラムRO
M50へのチップ選択57信号を生成するようになって
いる。マイクロコントローラ100は、アドレス・デコ
ーダ102をディスエーブルすることによってプログラ
ム・カートリッジ14を「ロック」する。
【0205】マイクロコントローラ100は、図6から
わかるように、CPU30およびアドレス・デコーダ1
02と電気回路接続している。システムがリセットされ
た時、マイクロコントローラ100は、アドレス・デコ
ーダ102をディスエーブルし、これによってカートリ
ッジを「ロック」する。マイクロコントローラ100
は、アドレス・バス31bまたは別のバスを監視して、
アドレスまたはアドレスのシーケンスを探す。マイクロ
コントローラ100は、正しいアドレスのシーケンスを
検出した時に、アドレス・デコーダ102をイネーブル
し、これによってカートリッジを「ロック解除」する。
【0206】マイクロコントローラ100は、楽音のシ
ーケンスを生成することによって正しいアドレス・シー
ケンスを確認し、この楽音シーケンスが、ユーザに聞き
取られ、CPU30によって検出される。試みられたキ
ーのすべてが、マイクロコントローラ100にトーンを
作らせる。システム装置は、いくつかの方法のいずれか
でトーンを検出できる。たとえば、離散トーン検出回路
(通常の電話回路に使用されるDTMFトーン・デコー
ダに類似の)を使用してトーンを検出でき、また、A/
D変換器を用いてトーンをディジタル化し、FFTアル
ゴリズムを用いて分析して、生成されたトーンのシグネ
チャを検出できる。後者の場合、DSP74が、分析を
実行し、正しいトーンまたはトーンの組が奏でられたこ
とをCPU30に伝え、カートリッジがロック解除され
たことを示す。
【0207】ここで図7を参照すると、カートリッジを
「ロック」するための第3の代替方法が示されている。
図1および図4のアドレス・スクランブル回路54と図
6のマイクロコントローラ100は、アドレス線とデー
タ線のハードウェア操作を使用してメモリ・デバイスを
「ロック」するための2つの異なる方法を提供する。し
かし、すべてのメモリ・デバイスが、個々のプログラム
の保護をハードウェアを用いて実現可能にする形でシス
テムにインターフェースされているわけではない。たと
えば、一部の記憶装置は、取外し可能な記憶媒体を有す
る。したがって、事前にプログラムされたフロッピー・
ディスクや事前にプログラムされたCDドライブ・ディ
スクなど、アドレス線とデータ線がない記憶装置を「ロ
ック」するためには、異なるタイプの方法が必要であ
る。このような装置は、アドレス線もデータ線も有しな
い。したがって、これらの装置は、アドレス・スクラン
ブル回路や選択的にロックされるチップ選択線を用いて
ロックすることができない。
【0208】このような装置をロックする技法の1つ
が、本発明のコンピュータ・システム10が、オペコー
ドに互換性のないCPU30とDSP74の両方を有す
るという事実を利用することである。すなわち、CPU
30上で実行するためにコンパイルされたコードは、D
SP74上では直接実行できず、逆も同様である。
【0209】互換性のないオペコードを利用するロック
装置を、図7に示す。図7には、プログラムROMのメ
モリ・マップ200が示されており、このプログラムR
OMには、少なくとも2つのデータ・ブロック、すなわ
ち(1)DSP74上では実行可能であるがCPU30
上では実行不能な実行可能コードのブロック(図7のブ
ロック1 202)と、(2)まず伸長またはスクラン
ブル解除しなければCPU30上でも実行できないよう
に圧縮またはスクランブルされた、CPU30上で実行
可能なコードのブロック(図7のブロック2 204)
が含まれる。この2つのコード・ブロックは、事実上す
べてのタイプのメモリ・デバイス、すなわちプログラム
・カートリッジ14、事前にプログラムされたフロッピ
ー・ディスク、事前にプログラムされたCDドライブ・
ディスクなどに置くことができる。
【0210】コードの第1ブロックであるブロック1
202は、DSP74上で実行可能な小さなコード・ブ
ロックである。これは、(1)メモリ・デバイスの存在
を検証する、(2)メモリ・デバイスからシステム・メ
モリ34にデータの第2ブロックをロードする、(3)
メモリの第2ブロックであるブロック2 204をCP
U30によって実行可能な形式に伸長またはスクランブ
ル解除する、および(4)CPUにその実行可能コード
を実行させる、という4つの機能だけのために働く小さ
なプログラムである。ステップ(2)およびステップ
(3)は、データの小さな部分を読み取り、それを伸長
またはスクランブル解除し、結果のコードをメモリに書
き込むことによって、並列に実行できる。
【0211】コードの第2ブロックであるブロック2
204は、コードが圧縮またはスクランブルされている
点を除いて、CPU30で実行可能なアプリケーション
・コードの大きなブロックである。したがって、ブロッ
ク2 204にロードされている状態では、そのデータ
は、DSP74およびCPU30のいずれによっても実
行不能である。実行可能コードを周知のラン・レングス
符号化(RLE)フォーマットにすることが、ブロック
2 204のデータを圧縮またはスクランブルする方法
の1つである。第2ブロックを単にスクランブルするに
は、そのデータに周知のピケット・フェンス暗号化を実
行し、これによって、非暗号化可能な形でデータのバイ
トを交換する。データのスクランブルは、1バイトの上
位ニブルと下位ニブルの交換のように簡単なものでも、
普通に順次式にアクセスした時にはコードが解読不能に
なる周知の暗号化方法のいずれかを使用するといった複
雑なものでも構わない。これは、上で説明したように、
命令が2バイト以上の長さであるから通常の順次取出し
が異常になるというアドレス線のスクランブルとは異な
る。
【0212】ブロック2 204全体を圧縮またはスク
ランブルする必要はない。無許可の装置によってアプリ
ケーションが実行されないようにするのに十分なコード
だけを圧縮またはスクランブルすればよい。残りの未圧
縮または未スクランブルのデータは、任意指定のブロッ
ク3 206に置くことができる。たとえば、グラフィ
ック・データは、圧縮する必要がない。もう1つの例と
して、高水準プログラムの実行可能コードを完全にスク
ランブルする場合には、サブルーチンのすべてを圧縮し
なくてもよい。
【0213】図1および図2のシステムは、上で説明し
た3ブロック・カートリッジをロック解除する能力を有
する。しかし、互換CPUを備えるが互換DSPのない
システムは、CPUがメモリ・デバイス上のコードのブ
ロックのどちらも実行できないので、アプリケーション
を実行することができない。というのは、ブロック12
02が、CPU30に対して全く互換性のないオペコー
ドを有し、ブロック2 204が、圧縮またはスクラン
ブルされ、実行不能にされているからである。したがっ
て、このメモリ・デバイスは「ロック」されている。
【0214】このメモリ・デバイスは、図1および図2
のシステムによって、下記に従って「ロック解除」され
る。まず、CPU30が、コンピュータ・システム10
を初期設定し、CDドライブ22などのメモリ・デバイ
スの存在を検査する。メモリ・デバイスが検出される場
合、CPU30は、メモリ・デバイスからシステム・メ
モリ34にブロック1 202をロードする。次に、C
PU30は、DSP74に、メモリ・デバイスからシス
テム・メモリ34に転送されたコードを実行させる。ブ
ロック1 202を実行することによって、DSP74
は、たとえばデバイス上でチェックサムを実行するなど
によってメモリ・デバイスの存在を確認し、メモリ・デ
バイスからシステム・メモリ34にブロック2 204
をコピーし、ブロック2 204を伸長またはスクラン
ブル解除して、CPU30上で実行可能な形にする。最
後に、DSP74が、CPU30に、ブロック2 20
4から変換された実行可能コードを実行させ、これによ
ってアプリケーションを始動させる。
【0215】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0216】(1)少なくとも1つのバスを関連付けら
れた中央演算処理装置(CPU)を有するコンピュータ
・システムで使用するためのメモリ・カートリッジであ
って、前記バスが、少なくとも1つのバス線を有し、前
記メモリ・カートリッジが、(a)読取り可能なメモリ
と、(b)前記メモリと回路接続しているメモリ制御回
路と、(c)前記メモリ制御回路と回路接続しているロ
ック制御回路と、(d)前記メモリ、前記メモリ制御回
路および前記ロック制御回路をCPUに対して取外し可
能な回路接続に接続するための、前記メモリ、前記メモ
リ制御回路および前記ロック制御回路と回路接続してい
るコネクタとを具備し、 (1)前記メモリ制御回路が、2つの状態すなわち、C
PUが前記メモリをアクセスする時に、所与のアドレス
に関してCPU内に読み取られた前記メモリの出力が、
前記メモリ内のそのアドレスに記憶された値に対応す
る、前記メモリとの相互作用を特徴とするロック解除状
態と、CPUが前記メモリをアクセスする時に、所与の
アドレスに関してCPU内に読み取られた前記メモリの
出力が、前記メモリ内のそのアドレスに記憶された値以
外の値に対応する、前記メモリとの相互作用を特徴とす
るロック状態とを有し、 (2)前記メモリ制御回路が、前記ロック制御回路から
の入力に応答して前記ロック状態から前記ロック解除状
態へ切り替わるように構成されており、 (3)前記ロック制御回路が、事前に選択された事象の
第1の組の発生に応答して、前記メモリ制御回路に前記
ロック状態に入らせるように構成され、前記ロック制御
回路がさらに、事前に選択された事象の第2の組の発生
に応答して、前記メモリ制御回路に前記ロック解除状態
に入らせるように構成されているメモリ・カートリッ
ジ。 (2)少なくとも1つのバスを関連付けられた中央演算
処理装置(CPU)を有するコンピュータ・システムで
使用するためのメモリ・カートリッジであって、前記バ
スが、少なくとも1つのバス線を有し、前記メモリ・カ
ートリッジが、(a)読取り可能なメモリと、(b)前
記メモリと回路接続しているバス線スクランブル回路
と、(c)前記バス線スクランブル回路と回路接続して
いるロック制御回路と、(d)前記メモリ、前記バス線
スクランブル回路および前記ロック制御回路をCPUに
対して取外し可能な回路接続に接続するための、前記メ
モリ、前記バス線スクランブル回路および前記ロック制
御回路と回路接続しているコネクタとを具備し、 (1)前記ロック制御回路が、事前に選択された事象の
第1の組の発生に応答して、前記バス線スクランブル回
路に前記少なくとも1つのバスの少なくとも1つのバス
線をスクランブルさせるように構成され、 (2)前記ロック制御回路がさらに、事前に選択された
事象の第2の組の発生に応答して、前記バス線スクラン
ブル回路に前記少なくとも1つのバス線のスクランブル
を停止させるように構成されているメモリ・カートリッ
ジ。 (3)少なくとも1つのバスを関連付けられた中央演算
処理装置(CPU)を有するコンピュータ・システムで
使用するためのメモリ・カートリッジであって、前記バ
スが、少なくとも1つのバス線を有し、前記メモリ・カ
ートリッジが、(a)読取り可能なメモリと、(b)前
記メモリと回路接続しているバス線デコーダと、(c)
前記バス線デコーダと回路接続しているロック制御回路
と、(d)前記メモリ、前記バス線デコーダおよび前記
ロック制御回路をCPUに対して取外し可能な回路接続
に接続するための、前記メモリ、前記バス線デコーダお
よび前記ロック制御回路と回路接続しているコネクタと
を具備し、 (1)前記ロック制御回路が、事前に選択された事象の
第1の組の発生に応答して、前記バス線デコーダに前記
少なくとも1つのバスのデコードを停止させるように構
成され、 (2)前記ロック制御回路がさらに、事前に選択された
事象の第2の組の発生に応答して、前記バス線デコーダ
に前記少なくとも1つのバス線をデコードさせるように
構成されているメモリ・カートリッジ。 (4)さらに、事前に選択された事象の第3の組のうち
の少なくとも1つの発生に応答して、トーンを生成する
ように構成されたトーン生成回路を具備する、上記
(3)に記載のメモリ・カートリッジ。 (5)読取り可能なメモリを有するメモリ・カートリッ
ジが、少なくとも1つのバス線を有する少なくとも1つ
のバスを介して前記読取り可能メモリと回路接続されて
いる中央演算処理装置(CPU)を有するコンピュータ
・システムでの使用を許可されたされていることを認証
する方法であって、 a.前記少なくとも1つのバスの前記少なくとも1つの
バス線をスクランブルするステップと、 b.事前に選択された事象の組を検出するステップと、 c.前記事前に選択された事象の組の前記検出に応答し
て、前記少なくとも1つのバスの前記少なくとも1つの
バス線をスクランブル解除するステップとを含む方法。 (6)前記事前に選択された事象の組を検出するステッ
プが、前記少なくとも1つのバスにアサートされた少な
くとも1つのバス値の検出を含むことを特徴とする、上
記(5)に記載の方法。 (7)メモリ・カートリッジがコンピュータ・システム
での使用を許可されたされているかどうかを判定するた
めの認証システムであって、 (a)少なくとも1つのバスを関連付けられた中央演算
処理装置(CPU)であって、前記少なくとも1つのバ
スが、少なくとも1つのバス線を含むことを特徴とす
る、前記中央演算処理装置と、 (b)前記CPUに対して取外し可能に回路接続されて
おり、(i)前記CPUと回路接続されている読取り可
能メモリと、(ii)前記1つのバスに沿って前記CP
Uと前記メモリとの間に挿入された、前記CPUおよび
前記メモリと回路接続されているバス線スクランブル回
路と、(iii)前記CPUおよび前記バス線スクラン
ブル回路に回路接続されているロック制御回路とを有す
る、アドレス可能メモリ・カートリッジとを具備し、 (1)前記ロック制御回路が、事前に選択された事象の
第1の組の発生に応答して、前記バス線スクランブル回
路に前記少なくとも1つのバスの前記少なくとも1つの
バス線をスクランブルさせるように構成され、 (2)前記ロック制御回路がさらに、事前に選択された
事象の第2の組の発生に応答して、前記バス線スクラン
ブル回路に前記少なくとも1つのバス線のスクランブル
回路を停止させるように構成されている認証システム。 (8)メモリ・カートリッジがコンピュータ・システム
での使用を許可されたされているかどうかを判定するた
めの認証システムであって、 (a)少なくとも1つのバスを関連付けられた中央演算
処理装置(CPU)であって、前記少なくとも1つのバ
スが、少なくとも1つのバス線を含むことを特徴とす
る、前記中央演算処理装置と、 (b)前記CPUに対して取外し可能に回路接続されて
おり、(i)前記CPUと回路接続されている読取り可
能メモリと、(ii)前記1つのバスに沿って前記CP
Uと前記メモリとの間に挿入された、前記CPUおよび
前記メモリと回路接続されているバス線スクランブル回
路と、(iii)前記CPUおよび前記バス線スクラン
ブル回路に回路接続されているロック制御回路とを有す
る、アドレス可能メモリ・カートリッジとを具備し、 (1)前記バス線スクランブル回路が、2つの状態すな
わち、前記バス線スクランブル回路が前記少なくとも1
つのバスの前記少なくとも1つのバス線をスクランブル
することを特徴とするスクランブル状態と、前記バス線
スクランブル回路が前記少なくとも1つのバスの前記少
なくとも1つのバス線をスクランブルしないことを特徴
とするスクランブル解除状態とを有し、 (2)前記バス線スクランブル回路が、前記ロック制御
回路からの入力に応答して、前記スクランブル状態から
前記スクランブル解除状態に切り替わるように構成さ
れ、 (3)前記ロック制御回路が、事前に選択された事象の
第1の組の発生に応答して、前記バス線スクランブル回
路に前記スクランブル状態に入らせるように構成され、
前記ロック制御回路がさらに、事前に選択された事象の
第2の組の発生に応答して、前記バス線スクランブル回
路に前記スクランブル解除状態に入らせるように構成さ
れている認証システム。 (9)前記事前に選択された事象のうちの1つが、シス
テム電源投入を含むことを特徴とする、上記(1)、上
記(2)、上記(3)、上記(5)、上記(7)または
上記(8)に記載のシステム。 (10)前記事前に選択された事象のうちの1つが、シ
ステム・リセットを含むことを特徴とする、上記
(1)、上記(2)、上記(3)、上記(5)、上記
(7)または上記(8)に記載のシステム。 (11)前記事前に選択された事象のうちの1つが、前
記少なくとも1つのバスにアサートされた少なくとも1
つのバス値を含むことを特徴とする、上記(1)、上記
(2)、上記(3)、上記(5)、上記(7)または上
記(8)に記載のシステム。 (12)第1アドレス可能メモリ・デバイスにマッピン
グされたメモリの第1領域と、第2アドレス可能メモリ
・デバイスにマッピングされたメモリの第2領域とを有
するコンピュータ・システムで使用するための認証の方
法であって、 a.メモリの第1領域からコードを実行するステップ
と、 b.それぞれのアドレスに関連する第2メモリ・デバイ
ス内のコードを実行せずに、メモリ内の第2領域にアド
レスをアサートするステップと、 c.メモリ内の第2領域からコードを実行するステップ
とを含む方法。 (13)第1アドレス可能メモリ・デバイスにマッピン
グされたメモリの第1領域と、第2アドレス可能メモリ
・デバイスにマッピングされたメモリの第2領域と、ラ
ンダム・アクセス・メモリとを有するコンピュータ・シ
ステムで使用するための認証の方法であって、 a.メモリの第1領域からコードを実行するステップ
と、 b.それぞれのアドレスに関連する第2メモリ・デバイ
ス内のコードを実行せずに、メモリ内の第2領域に対応
するアドレスをアサートするステップと、 c.メモリの第2領域からRAMへ、メモリのブロック
をコピーするステップと、 d.メモリ内の第2領域からコピーされた前記コードを
実行するステップとを含む方法。 (14)読取り可能メモリを有するメモリ・デバイス
が、読取り可能メモリに回路接続された第1中央演算処
理装置(CPU)および第2中央演算処理装置を有し、
第1CPUおよび第2CPUに回路接続されたランダム
・アクセス・メモリ(RAM)を有するコンピュータ・
システムでの使用を許可されたされることを確認する方
法であって、 a.第1CPUを用いて、読取り可能メモリからRAM
へ、第2CPU上で実行可能な第1プログラムをコピー
するステップと、 b.第2CPUを用いて、前記第1プログラムを実行す
るステップと、 c.前記第2CPUを用いて、第1CPU上で実行不能
なメモリのブロックをRAMにコピーするステップと、 d.前記メモリのブロックを、前記第1CPU上で実行
可能な第2プログラムに変換するステップと、 e.前記第1CPU上で前記第2プログラムを実行する
ステップとを含む方法。 (15)前記メモリのブロックを変換するステップが、
前記メモリのブロックを伸長するステップを含むことを
特徴とする、上記(14)に記載の方法。 (16)前記メモリのブロックを変換するステップが、
前記メモリのブロックをスクランブル解除するステップ
を含むことを特徴とする、上記(14)に記載の方法。 (17)前記メモリのブロックを変換するステップが、
前記メモリのブロックの実行可能部分を突き止めるステ
ップと、前記メモリのブロックの前記実行可能部分の位
置を前記第1CPUに通信するステップとを含むことを
特徴とする、上記(14)に記載の方法。 (18)(a)第1システム・バスを介してオーディオ
/ビデオ/CDドライブ・コントローラ/補助プロセッ
サと回路接続されている中央演算処理装置(CPU)
と、(b)第2システム・バスを介して前記オーディオ
/ビデオ/CDドライブ・コントローラ/補助プロセッ
サと回路接続されているシステム・メモリとを含み、
(c)前記オーディオ/ビデオ/CDドライブ・コント
ローラ/補助プロセッサが、すべて前記CPUおよび前
記システム・メモリに回路接続されている、前記第2シ
ステム・バスに対する制御を調停するためのアービトレ
ータ、メモリ・インターフェース、グラフィックス補助
プロセッサ、ディジタル信号プロセッサ、コンパクト・
ディスク・コントローラおよびビデオ・コントローラを
含み、これらのそれぞれが、前記CPU、前記グラフィ
ックス補助プロセッサ、前記ディジタル信号プロセッ
サ、前記コンパクト・ディスク・コントローラおよび前
記ビデオ・コントローラのうちのいずれか1つが前記第
2システム・バスのバス・マスタになれるように構成さ
れている、コンピュータ・システム。 (19)割込みを前記CPUにインターフェースするた
めの割込みコントローラをさらに含み、前記アービトレ
ータが、割込みが発生し、前記割込みコントローラによ
って検出されない限り前記CPUが前記第2システム・
バスに対する制御に関して最高の優先順を有しないよう
に、前記割込みコントローラに応答することを特徴とす
る、上記(18)に記載のコンピュータ・システム。 (20)(a)前記少なくとも1つのバスを介して前記
CPUと回路接続されているオーディオ/ビデオ/CD
ドライブ・コントローラ/補助プロセッサと、(b)第
2バスを介して前記オーディオ/ビデオ/CDドライブ
・コントローラ/補助プロセッサと回路接続されている
システム・メモリとをさらに具備し、(c)前記オーデ
ィオ/ビデオ/CDドライブ・コントローラ/補助プロ
セッサが、すべて前記CPUおよび前記システム・メモ
リに回路接続されている、前記システム・バスに対する
制御を調停するためのアービトレータ、メモリ・インタ
ーフェース、グラフィックス補助プロセッサ、ディジタ
ル信号プロセッサ、コンパクト・ディスク・コントロー
ラおよびビデオ・コントローラを含み、これらのそれぞ
れが、前記CPU、前記グラフィックス補助プロセッ
サ、前記ディジタル信号プロセッサ、前記コンパクト・
ディスク・コントローラおよび前記ビデオ・コントロー
ラのうちのいずれか1つが前記第2バスのバス・マスタ
になれるように構成されている上記(7)または上記
(8)に記載のシステム。 (21)(a)前記少なくとも1つのバスを介して前記
CPUと回路接続されているオーディオ/ビデオ/CD
ドライブ・コントローラ/補助プロセッサと、(b)第
2システム・バスを介して前記オーディオ/ビデオ/C
Dドライブ・コントローラ/補助プロセッサと回路接続
されているシステム・メモリとをさらに具備し、(c)
前記オーディオ/ビデオ/CDドライブ・コントローラ
/補助プロセッサが、すべて前記CPUおよび前記シス
テム・メモリに回路接続されている、前記第2バスに対
する制御を調停するためのアービトレータ、メモリ・イ
ンターフェース、グラフィックス補助プロセッサ、ディ
ジタル信号プロセッサ、コンパクト・ディスク・コント
ローラおよびビデオ・コントローラを含み、これらのそ
れぞれが、前記CPU、前記グラフィックス補助プロセ
ッサ、前記ディジタル信号プロセッサ、前記コンパクト
・ディスク・コントローラおよび前記ビデオ・コントロ
ーラのうちのいずれか1つが前記第2バスのバス・マス
タになれるように構成されており、(d)さらに、割込
みを前記CPUにインターフェースするための割込みコ
ントローラ含み、前記アービトレータが、割込みが発生
し、前記割込みコントローラによって検出されない限り
前記CPUが前記第2システム・バスに対する制御に関
して最高の優先順を有しないように、前記割込みコント
ローラに応答する上記(7)または上記(8)に記載の
システム。
【0217】
【発明の効果】この方法の長所は、メモリ・デバイス内
に追加のハードウェアを必要としないことである。上で
説明したように、第1ブロックと第2ブロックのデータ
をメモリ・デバイスに置くだけで良い。したがって、こ
の2ブロック方法は、プログラム・カートリッジ14な
らびに事前にプログラムされたフロッピー・ディスクお
よびCDドライブ・ディスクに適している。
【0218】代替方法では、ブロック2 204を、実
行可能ではあるが、特定の方法でロードしなければなら
ない形式にすることができる。そのような形式の例が、
周知の.EXE形式の実行可能ファイルである。このような
データ・ブロックは、実行可能部分が正しくメモリにロ
ードされた時に限って実行可能である。このロックの実
施には、DSP74上でのみ実行可能なローダ・プログ
ラムをブロック1 202に置くことが必要である。こ
のローダ・プログラムは、ブロック2 204をアクセ
スし、システム・メモリ34にロードし、実行可能部分
を突き止め、制御をCPU30に渡す。
【0219】本発明の実施例によって本発明を説明し、
実施例をかなり詳細に説明してきたが、いかなる形であ
れ請求の範囲をそのような詳細に限定することは、本出
願人の意図するところではない。追加の長所と修正は、
当業者であれば容易に理解できよう。たとえば、図4の
アドレス・スクランブル回路54を、上で述べた2ブロ
ック・ロック方法と組み合わせることができる。さら
に、図1のロック制御回路56を、トーンを生成するマ
イクロコントローラ100を必要とせずに図6のアドレ
ス・デコーダ102と組み合わせることができる。した
がって、本発明は、その広義の態様において、図または
明細書に記載の具体的な詳細、代表的な装置および方法
に限定されるものではない。したがって、本出願人の発
明的着想の趣旨または範囲から逸脱せずに、そのような
詳細から離れることができる。
【図面の簡単な説明】
【図1】本発明のシステムの概略配置を示すブロック図
である。
【図2】本発明のシステムの概略配置を示すブロック図
である。
【図3】本発明に使用されるビデオ・ディジタル・アナ
ログ・コンバータの一部の電気的な概略を示す図であ
る。
【図4】本発明のアドレス・スクランブル回路の1実施
例の概略を示す図である。
【図5】本発明のオーディオ/ビデオ/CDコントロー
ラ/補助プロセッサを示すブロック図である。
【図6】プログラム・カートリッジを「ロック」する回
路の代替回路のブロック図である。
【図7】プログラム・カートリッジを「ロック」する回
路の第3の代替回路のブロック図である。
【符号の説明】
14 プログラム・カートリッジ 22 CDドライブ 30 中央演算処理装置(CPU) 31 システム・バス 32 オーディオ/ビデオ/CDドライブ(A/V/C
D)コントローラ/補助プロセッサ 34 システム・メモリ 35a デコード・チップPAL1 35b デコード・チップPAL2 36 入出力補助プロセッサ 37a カートリッジ・コネクタ 37b カード・エッジ・コネクタ 38 追加回路 50 プログラムROM 52 ロック回路 54 アドレス・スクランブル回路 55 アドレス"・バス 56 ロック制御回路 61 システム'・バス

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つのバスを関連付けられた中
    央演算処理装置(CPU)を有するコンピュータ・シス
    テムで使用するためのメモリ・カートリッジであって、
    前記バスが、少なくとも1つのバス線を有し、前記メモ
    リ・カートリッジが、 (a)読取り可能なメモリと、 (b)前記メモリと回路接続しているメモリ制御回路
    と、 (c)前記メモリ制御回路と回路接続しているロック制
    御回路と、 (d)前記メモリ、前記メモリ制御回路および前記ロッ
    ク制御回路をCPUに対して取外し可能な回路接続に接
    続するための、前記メモリ、前記メモリ制御回路および
    前記ロック制御回路と回路接続しているコネクタとを具
    備し、 (1)前記メモリ制御回路が、2つの状態すなわち、C
    PUが前記メモリをアクセスする時に、所与のアドレス
    に関してCPU内に読み取られた前記メモリの出力が、
    前記メモリ内のそのアドレスに記憶された値に対応す
    る、前記メモリとの相互作用を特徴とするロック解除状
    態と、CPUが前記メモリをアクセスする時に、所与の
    アドレスに関してCPU内に読み取られた前記メモリの
    出力が、前記メモリ内のそのアドレスに記憶された値以
    外の値に対応する、前記メモリとの相互作用を特徴とす
    るロック状態とを有し、 (2)前記メモリ制御回路が、前記ロック制御回路から
    の入力に応答して前記ロック状態から前記ロック解除状
    態へ切り替わるように構成されており、 (3)前記ロック制御回路が、事前に選択された事象の
    第1の組の発生に応答して、前記メモリ制御回路に前記
    ロック状態に入らせるように構成され、前記ロック制御
    回路がさらに、事前に選択された事象の第2の組の発生
    に応答して、前記メモリ制御回路に前記ロック解除状態
    に入らせるように構成されているメモリ・カートリッ
    ジ。
  2. 【請求項2】少なくとも1つのバスを関連付けられた中
    央演算処理装置(CPU)を有するコンピュータ・シス
    テムで使用するためのメモリ・カートリッジであって、
    前記バスが、少なくとも1つのバス線を有し、前記メモ
    リ・カートリッジが、 (a)読取り可能なメモリと、 (b)前記メモリと回路接続しているバス線スクランブ
    ル回路と、 (c)前記バス線スクランブル回路と回路接続している
    ロック制御回路と、 (d)前記メモリ、前記バス線スクランブル回路および
    前記ロック制御回路をCPUに対して取外し可能な回路
    接続に接続するための、前記メモリ、前記バス線スクラ
    ンブル回路および前記ロック制御回路と回路接続してい
    るコネクタとを具備し、 (1)前記ロック制御回路が、事前に選択された事象の
    第1の組の発生に応答して、前記バス線スクランブル回
    路に前記少なくとも1つのバスの少なくとも1つのバス
    線をスクランブル回路させるように構成され、 (2)前記ロック制御回路がさらに、事前に選択された
    事象の第2の組の発生に応答して、前記バス線スクラン
    ブル回路に前記少なくとも1つのバス線のスクランブル
    回路を停止させるように構成されているメモリ・カート
    リッジ。
  3. 【請求項3】少なくとも1つのバスを関連付けられた中
    央演算処理装置(CPU)を有するコンピュータ・シス
    テムで使用するためのメモリ・カートリッジであって、
    前記バスが、少なくとも1つのバス線を有し、前記メモ
    リ・カートリッジが、 (a)読取り可能なメモリと、 (b)前記メモリと回路接続しているバス線デコーダ
    と、 (c)前記バス線デコーダと回路接続しているロック制
    御回路と、 (d)前記メモリ、前記バス線デコーダおよび前記ロッ
    ク制御回路をCPUに対して取外し可能な回路接続に接
    続するための、前記メモリ、前記バス線デコーダおよび
    前記ロック制御回路と回路接続しているコネクタとを具
    備し、 (1)前記ロック制御回路が、事前に選択された事象の
    第1の組の発生に応答して、前記バス線デコーダに前記
    少なくとも1つのバスのデコードを停止させるように構
    成され、 (2)前記ロック制御回路がさらに、事前に選択された
    事象の第2の組の発生に応答して、前記バス線デコーダ
    に前記少なくとも1つのバス線をデコードさせるように
    構成されているメモリ・カートリッジ。
  4. 【請求項4】さらに、事前に選択された事象の第3の組
    のうちの少なくとも1つの発生に応答して、トーンを生
    成するように構成されたトーン生成回路を具備する、請
    求項3に記載のメモリ・カートリッジ。
  5. 【請求項5】読取り可能なメモリを有するメモリ・カー
    トリッジが、少なくとも1つのバス線を有する少なくと
    も1つのバスを介して前記読取り可能メモリと回路接続
    されている中央演算処理装置(CPU)を有するコンピ
    ュータ・システムでの使用を許可されたされていること
    を認証する方法であって、 a.前記少なくとも1つのバスの前記少なくとも1つの
    バス線をスクランブル回路するステップと、 b.事前に選択された事象の組を検出するステップと、 c.前記事前に選択された事象の組の前記検出に応答し
    て、前記少なくとも1つのバスの前記少なくとも1つの
    バス線をスクランブル回路解除するステップとを含む方
    法。
  6. 【請求項6】前記事前に選択された事象の組を検出する
    ステップが、前記少なくとも1つのバスにアサートされ
    た少なくとも1つのバス値の検出を含むことを特徴とす
    る、請求項5に記載の方法。
  7. 【請求項7】メモリ・カートリッジがコンピュータ・シ
    ステムでの使用を許可されたされているかどうかを判定
    するための認証システムであって、 (a)少なくとも1つのバスを関連付けられた中央演算
    処理装置(CPU)であって、前記少なくとも1つのバ
    スが、少なくとも1つのバス線を含むことを特徴とす
    る、前記中央演算処理装置と、 (b)前記CPUに対して取外し可能に回路接続されて
    おり、(i)前記CPUと回路接続されている読取り可
    能メモリと、(ii)前記1つのバスに沿って前記CP
    Uと前記メモリとの間に挿入された、前記CPUおよび
    前記メモリと回路接続されているバス線スクランブル回
    路と、(iii)前記CPUおよび前記バス線スクラン
    ブル回路に回路接続されているロック制御回路とを有す
    る、アドレス可能メモリ・カートリッジとを具備し、 (1)前記ロック制御回路が、事前に選択された事象の
    第1の組の発生に応答して、前記バス線スクランブル回
    路に前記少なくとも1つのバスの前記少なくとも1つの
    バス線をスクランブルさせるように構成され、 (2)前記ロック制御回路がさらに、事前に選択された
    事象の第2の組の発生に応答して、前記バス線スクラン
    ブル回路に前記少なくとも1つのバス線のスクランブル
    を停止させるように構成されている認証システム。
  8. 【請求項8】メモリ・カートリッジがコンピュータ・シ
    ステムでの使用を許可されたされているかどうかを判定
    するための認証システムであって、 (a)少なくとも1つのバスを関連付けられた中央演算
    処理装置(CPU)であって、前記少なくとも1つのバ
    スが、少なくとも1つのバス線を含むことを特徴とす
    る、前記中央演算処理装置と、 (b)前記CPUに対して取外し可能に回路接続されて
    おり、(i)前記CPUと回路接続されている読取り可
    能メモリと、(ii)前記1つのバスに沿って前記CP
    Uと前記メモリとの間に挿入された、前記CPUおよび
    前記メモリと回路接続されているバス線スクランブル
    と、(iii)前記CPUおよび前記バス線スクランブ
    ルに回路接続されているロック制御回路とを有する、ア
    ドレス可能メモリ・カートリッジとを具備し、 (1)前記バス線スクランブル回路が、2つの状態すな
    わち、前記バス線スクランブル回路が前記少なくとも1
    つのバスの前記少なくとも1つのバス線をスクランブル
    することを特徴とするスクランブル状態と、前記バス線
    スクランブル回路が前記少なくとも1つのバスの前記少
    なくとも1つのバス線をスクランブルしないことを特徴
    とするスクランブル解除状態とを有し、 (2)前記バス線スクランブル回路が、前記ロック制御
    回路からの入力に応答して、前記スクランブル状態から
    前記スクランブル解除状態に切り替わるように構成さ
    れ、 (3)前記ロック制御回路が、事前に選択された事象の
    第1の組の発生に応答して、前記バス線スクランブル回
    路に前記スクランブル状態に入らせるように構成され、
    前記ロック制御回路がさらに、事前に選択された事象の
    第2の組の発生に応答して、前記バス線スクランブル回
    路に前記スクランブル解除状態に入らせるように構成さ
    れている認証システム。
  9. 【請求項9】前記事前に選択された事象のうちの1つ
    が、システム電源投入を含むことを特徴とする、請求項
    1、請求項2、請求項3、請求項5、請求項7または請
    求項8に記載のシステム。
  10. 【請求項10】前記事前に選択された事象のうちの1つ
    が、システム・リセットを含むことを特徴とする、請求
    項1、請求項2、請求項3、請求項5、請求項7または
    請求項8に記載のシステム。
  11. 【請求項11】前記事前に選択された事象のうちの1つ
    が、前記少なくとも1つのバスにアサートされた少なく
    とも1つのバス値を含むことを特徴とする、請求項1、
    請求項2、請求項3、請求項5、請求項7または請求項
    8に記載のシステム。
  12. 【請求項12】第1アドレス可能メモリ・デバイスにマ
    ッピングされたメモリの第1領域と、第2アドレス可能
    メモリ・デバイスにマッピングされたメモリの第2領域
    とを有するコンピュータ・システムで使用するための認
    証の方法であって、 a.メモリの第1領域からコードを実行するステップ
    と、 b.それぞれのアドレスに関連する第2メモリ・デバイ
    ス内のコードを実行せずに、メモリ内の第2領域にアド
    レスをアサートするステップと、 c.メモリ内の第2領域からコードを実行するステップ
    とを含む方法。
  13. 【請求項13】第1アドレス可能メモリ・デバイスにマ
    ッピングされたメモリの第1領域と、第2アドレス可能
    メモリ・デバイスにマッピングされたメモリの第2領域
    と、ランダム・アクセス・メモリとを有するコンピュー
    タ・システムで使用するための認証の方法であって、 a.メモリの第1領域からコードを実行するステップ
    と、 b.それぞれのアドレスに関連する第2メモリ・デバイ
    ス内のコードを実行せずに、メモリ内の第2領域に対応
    するアドレスをアサートするステップと、 c.メモリの第2領域からRAMへ、メモリのブロック
    をコピーするステップと、 d.メモリ内の第2領域からコピーされた前記コードを
    実行するステップとを含む方法。
  14. 【請求項14】読取り可能メモリを有するメモリ・デバ
    イスが、読取り可能メモリに回路接続された第1中央演
    算処理装置(CPU)および第2中央演算処理装置を有
    し、第1CPUおよび第2CPUに回路接続されたラン
    ダム・アクセス・メモリ(RAM)を有するコンピュー
    タ・システムでの使用を許可されたされることを確認す
    る方法であって、 a.第1CPUを用いて、読取り可能メモリからRAM
    へ、第2CPU上で実行可能な第1プログラムをコピー
    するステップと、 b.第2CPUを用いて、前記第1プログラムを実行す
    るステップと、 c.前記第2CPUを用いて、第1CPU上で実行不能
    なメモリのブロックをRAMにコピーするステップと、 d.前記メモリのブロックを、前記第1CPU上で実行
    可能な第2プログラムに変換するステップと、 e.前記第1CPU上で前記第2プログラムを実行する
    ステップとを含む方法。
  15. 【請求項15】前記メモリのブロックを変換するステッ
    プが、前記メモリのブロックを伸長するステップを含む
    ことを特徴とする、請求項14に記載の方法。
  16. 【請求項16】前記メモリのブロックを変換するステッ
    プが、前記メモリのブロックをスクランブル解除するス
    テップを含むことを特徴とする、請求項14に記載の方
    法。
  17. 【請求項17】前記メモリのブロックを変換するステッ
    プが、前記メモリのブロックの実行可能部分を突き止め
    るステップと、前記メモリのブロックの前記実行可能部
    分の位置を前記第1CPUに通信するステップとを含む
    ことを特徴とする、請求項14に記載の方法。
  18. 【請求項18】(a)第1システム・バスを介してオー
    ディオ/ビデオ/CDドライブ・コントローラ/補助プ
    ロセッサと回路接続されている中央演算処理装置(CP
    U)と、 (b)第2システム・バスを介して前記オーディオ/ビ
    デオ/CDドライブ・コントローラ/補助プロセッサと
    回路接続されているシステム・メモリとを含み、 (c)前記オーディオ/ビデオ/CDドライブ・コント
    ローラ/補助プロセッサが、すべて前記CPUおよび前
    記システム・メモリに回路接続されている、前記第2シ
    ステム・バスに対する制御を調停するためのアービトレ
    ータ、メモリ・インターフェース、グラフィックス補助
    プロセッサ、ディジタル信号プロセッサ、コンパクト・
    ディスク・コントローラおよびビデオ・コントローラを
    含み、これらのそれぞれが、前記CPU、前記グラフィ
    ックス補助プロセッサ、前記ディジタル信号プロセッ
    サ、前記コンパクト・ディスク・コントローラおよび前
    記ビデオ・コントローラのうちのいずれか1つが前記第
    2システム・バスのバス・マスタになれるように構成さ
    れている、コンピュータ・システム。
  19. 【請求項19】割込みを前記CPUにインターフェース
    するための割込みコントローラをさらに含み、前記アー
    ビトレータが、割込みが発生し、前記割込みコントロー
    ラによって検出されない限り前記CPUが前記第2シス
    テム・バスに対する制御に関して最高の優先順を有しな
    いように、前記割込みコントローラに応答することを特
    徴とする、請求項18に記載のコンピュータ・システ
    ム。
  20. 【請求項20】(a)前記少なくとも1つのバスを介し
    て前記CPUと回路接続されているオーディオ/ビデオ
    /CDドライブ・コントローラ/補助プロセッサと、 (b)第2バスを介して前記オーディオ/ビデオ/CD
    ドライブ・コントローラ/補助プロセッサと回路接続さ
    れているシステム・メモリとをさらに具備し、 (c)前記オーディオ/ビデオ/CDドライブ・コント
    ローラ/補助プロセッサが、すべて前記CPUおよび前
    記システム・メモリに回路接続されている、前記システ
    ム・バスに対する制御を調停するためのアービトレー
    タ、メモリ・インターフェース、グラフィックス補助プ
    ロセッサ、ディジタル信号プロセッサ、コンパクト・デ
    ィスク・コントローラおよびビデオ・コントローラを含
    み、これらのそれぞれが、前記CPU、前記グラフィッ
    クス補助プロセッサ、前記ディジタル信号プロセッサ、
    前記コンパクト・ディスク・コントローラおよび前記ビ
    デオ・コントローラのうちのいずれか1つが前記第2バ
    スのバス・マスタになれるように構成されている請求項
    7または請求項8に記載のシステム。
  21. 【請求項21】(a)前記少なくとも1つのバスを介し
    て前記CPUと回路接続されているオーディオ/ビデオ
    /CDドライブ・コントローラ/補助プロセッサと、 (b)第2システム・バスを介して前記オーディオ/ビ
    デオ/CDドライブ・コントローラ/補助プロセッサと
    回路接続されているシステム・メモリとをさらに具備
    し、 (c)前記オーディオ/ビデオ/CDドライブ・コント
    ローラ/補助プロセッサが、すべて前記CPUおよび前
    記システム・メモリに回路接続されている、前記第2バ
    スに対する制御を調停するためのアービトレータ、メモ
    リ・インターフェース、グラフィックス補助プロセッ
    サ、ディジタル信号プロセッサ、コンパクト・ディスク
    ・コントローラおよびビデオ・コントローラを含み、こ
    れらのそれぞれが、前記CPU、前記グラフィックス補
    助プロセッサ、前記ディジタル信号プロセッサ、前記コ
    ンパクト・ディスク・コントローラおよび前記ビデオ・
    コントローラのうちのいずれか1つが前記第2バスのバ
    ス・マスタになれるように構成されており、 (d)さらに、割込みを前記CPUにインターフェース
    するための割込みコントローラ含み、前記アービトレー
    タが、割込みが発生し、前記割込みコントローラによっ
    て検出されない限り前記CPUが前記第2システム・バ
    スに対する制御に関して最高の優先順を有しないよう
    に、前記割込みコントローラに応答する請求項7または
    請求項8に記載のシステム。
JP6260179A 1993-12-16 1994-10-25 保護されたプログラム式メモリ・カートリッジとこれを使用するコンピュータ・システム Expired - Lifetime JP2720909B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US168675 1993-12-16
US08/168,675 US5666516A (en) 1993-12-16 1993-12-16 Protected programmable memory cartridge having selective access circuitry

Publications (2)

Publication Number Publication Date
JPH07200287A true JPH07200287A (ja) 1995-08-04
JP2720909B2 JP2720909B2 (ja) 1998-03-04

Family

ID=22612467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6260179A Expired - Lifetime JP2720909B2 (ja) 1993-12-16 1994-10-25 保護されたプログラム式メモリ・カートリッジとこれを使用するコンピュータ・システム

Country Status (7)

Country Link
US (5) US5666516A (ja)
EP (1) EP0660215A3 (ja)
JP (1) JP2720909B2 (ja)
KR (1) KR0167814B1 (ja)
CN (1) CN1104685C (ja)
CA (1) CA2130979C (ja)
TW (2) TW332268B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032268A (ja) * 2000-07-13 2002-01-31 Fujitsu Ltd 処理装置および集積回路
JP2003500786A (ja) * 1999-05-12 2003-01-07 ギーゼッケ ウント デフリエント ゲーエムベーハー アドレスのスクランブリング機能付きメモリアレー
WO2006051639A1 (ja) * 2004-11-15 2006-05-18 Ikuo Yamaguchi 半導体メモリ装置
US7770027B2 (en) 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP2011507086A (ja) * 2007-12-13 2011-03-03 トムソン ライセンシング コピープロテクトされたソフトウエア・カートリッジ

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5719920A (en) * 1995-03-31 1998-02-17 The Messenger Group Llc Method and apparatus for processing and downloading sound messages onto a permanent memory of a communication package
US6750902B1 (en) 1996-02-13 2004-06-15 Fotonation Holdings Llc Camera network communication device
US6510520B1 (en) 1998-06-26 2003-01-21 Fotonation, Inc. Secure storage device for transfer of digital camera data
US6587949B1 (en) 1998-06-26 2003-07-01 Fotonation Holdings, Llc Secure storage device for transfer of data via removable storage
US5838901A (en) * 1996-08-05 1998-11-17 Xilinx, Inc. Overridable data protection mechanism for PLDs
US5911778A (en) * 1996-12-31 1999-06-15 Sun Microsystems, Inc. Processing system security
US5896499A (en) * 1997-02-21 1999-04-20 International Business Machines Corporation Embedded security processor
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates
FR2764413B1 (fr) * 1997-06-10 1999-07-09 Sgs Thomson Microelectronics Procede d'authentification de circuit integre
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
US7551201B2 (en) 1997-07-15 2009-06-23 Silverbrook Research Pty Ltd Image capture and processing device for a print on demand digital camera system
EP0902598A1 (fr) * 1997-09-10 1999-03-17 Koninklijke Philips Electronics N.V. Appareil téléphonique comportant une station de base et au moins un dispositif de combiné, procédé de souscription d'un dispositif de combiné, dispositif de combiné et station de base convenant à un tel appareil
US6750876B1 (en) * 1997-11-16 2004-06-15 Ess Technology, Inc. Programmable display controller
US5943283A (en) * 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
DE19757195A1 (de) * 1997-12-22 1999-06-24 Philips Patentverwaltung Verfahren zum Übertragen eines asynchronen Datenstroms über einen synchronen Datenbus, sowie Schaltungsanordnung zur Durchführung des Verfahrens
US6311014B1 (en) * 1997-12-24 2001-10-30 Texas Instruments Incorporated Unified audio/video interface for a digital video disk system
US7782328B1 (en) * 1998-03-24 2010-08-24 Ati Technologies Ulc Method and apparatus of video graphics and audio processing
JP3127883B2 (ja) * 1998-04-30 2001-01-29 日本電気株式会社 画像処理装置
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
US7324133B2 (en) * 1998-11-06 2008-01-29 Fotomedia Technologies, Llc Method and apparatus for controlled camera useability
US6256699B1 (en) * 1998-12-15 2001-07-03 Cisco Technology, Inc. Reliable interrupt reception over buffered bus
US6275242B1 (en) * 1998-12-31 2001-08-14 Intel Corporation Method and apparatus for terminating direct memory access transfers from system memory to a video device
DE19901829A1 (de) * 1999-01-19 2000-07-20 Philips Corp Intellectual Pty Schaltungsanordnung zur elektronischen Datenverarbeitung
MY131509A (en) * 1999-03-15 2007-08-30 Sony Corp Data processing method, apparatus and system for encrypted- data transfer
AUPQ056099A0 (en) 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
US6330647B1 (en) * 1999-08-31 2001-12-11 Micron Technology, Inc. Memory bandwidth allocation based on access count priority scheme
US6636904B2 (en) * 1999-11-18 2003-10-21 Hewlett-Packard Development Company, L.P. Dynamic PCI device identification redirection on a configuration space access conflict
US6246254B1 (en) 1999-12-06 2001-06-12 International Business Machines Corporation Method and circuit for providing copy protection in an application-specific integrated circuit
US6668287B1 (en) * 1999-12-15 2003-12-23 Transmeta Corporation Software direct memory access
US6606628B1 (en) 2000-02-14 2003-08-12 Cisco Technology, Inc. File system for nonvolatile memory
US6625783B2 (en) * 2000-02-16 2003-09-23 Logic Research Co., Ltd. State machine, semiconductor device using state machine, and method of design thereof
US6487646B1 (en) * 2000-02-29 2002-11-26 Maxtor Corporation Apparatus and method capable of restricting access to a data storage device
US20010037450A1 (en) * 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
JP2001306400A (ja) 2000-04-21 2001-11-02 Sharp Corp 半導体記憶装置、その制御装置、および電子機器
US6785860B1 (en) * 2000-05-31 2004-08-31 Robert Patti Error-correcting code adapted for memories that store multiple bits per storage cell
JP3891539B2 (ja) * 2000-06-15 2007-03-14 シャープ株式会社 半導体装置およびその制御装置
US6963565B1 (en) * 2000-08-14 2005-11-08 Advanced Micro Devices, Inc. Apparatus and method for identifying data packet at wire rate on a network switch port
US20030035430A1 (en) * 2000-10-03 2003-02-20 Junaid Islam Programmable network device
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US6772249B1 (en) * 2000-11-27 2004-08-03 Hewlett-Packard Development Company, L.P. Handheld option pack interface
US20020080782A1 (en) * 2000-12-22 2002-06-27 Broadband Gateways, Inc. Method and system for central control of terminal units
WO2002071231A1 (en) * 2001-02-15 2002-09-12 Nokia Corporation Method and arrangement for protecting information
US6996721B2 (en) * 2001-03-27 2006-02-07 Micron Technology, Inc. Flash device security method utilizing a check register
US20050114553A1 (en) * 2001-04-02 2005-05-26 Lada Henry F. Handheld option pack interface
US7260820B1 (en) 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US7428636B1 (en) * 2001-04-26 2008-09-23 Vmware, Inc. Selective encryption system and method for I/O operations
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US7418344B2 (en) * 2001-08-02 2008-08-26 Sandisk Corporation Removable computer with mass storage
US6665782B2 (en) 2001-08-16 2003-12-16 International Business Machines Corporation Method and apparatus for preventing unauthorized access of memory devices
EP1286242A1 (en) * 2001-08-22 2003-02-26 Sonera SmartTrust, Ltd. System and method for protected data input of security data
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
US6678874B1 (en) * 2001-11-28 2004-01-13 Unisys Corporation Computer-aided design (CAD) tool
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US7421693B1 (en) * 2002-04-04 2008-09-02 Applied Micro Circuits Corporation Logic for synchronizing multiple tasks at multiple locations in an instruction stream
US6938132B1 (en) * 2002-04-04 2005-08-30 Applied Micro Circuits Corporation Memory co-processor for a multi-tasking system
US6978330B1 (en) * 2002-04-04 2005-12-20 Applied Micro Circuits Corporation Shared resource access via declarations that contain a sequence number of a packet
CN1292356C (zh) 2002-04-17 2006-12-27 松下电器产业株式会社 非易失性半导体存储装置及其机密保护方法
US7606364B1 (en) 2002-04-23 2009-10-20 Seagate Technology Llc Disk drive with flexible data stream encryption
US6996699B2 (en) * 2002-09-10 2006-02-07 Microsoft Corporation Secondary processor execution kernel framework
US7409722B2 (en) * 2003-05-01 2008-08-05 Sun Microsystems, Inc. Control status register access to enable domain reconfiguration
TW587374B (en) * 2003-06-03 2004-05-11 Acer Labs Inc Method and related apparatus for generating high frequency signals by a plurality of low frequency signals with multiple phases
US7870367B1 (en) * 2003-06-17 2011-01-11 Altera Corporation Methods and apparatus for implementing complex parallel instructions using control logic
US20040268033A1 (en) * 2003-06-24 2004-12-30 Seagate Technology Llc Refreshing data in a data storage device
US20040264479A1 (en) * 2003-06-30 2004-12-30 Makaram Raghunandan Method for generating a trie having a reduced number of trie blocks
TWI258658B (en) * 2003-07-07 2006-07-21 Sunplus Technology Co Ltd Device in CPU using address line to proceed scrambling processing and method thereof
TWI222598B (en) * 2003-07-09 2004-10-21 Sunplus Technology Co Ltd Device and method protecting data by scrambling address lines
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US8060756B2 (en) * 2003-08-07 2011-11-15 Rao G R Mohan Data security and digital rights management system
US7376968B2 (en) * 2003-11-20 2008-05-20 Microsoft Corporation BIOS integrated encryption
US20050114590A1 (en) * 2003-11-26 2005-05-26 Jan Klier Drive controller user interface
EP1544704A1 (en) * 2003-12-19 2005-06-22 STMicroelectronics Limited Monolithic semiconductor integrated circuit and method for selective memory encryption and decryption
DE10360998B4 (de) * 2003-12-23 2008-09-04 Infineon Technologies Ag Schutz von Chips gegen Attacken
TWI282939B (en) * 2004-03-30 2007-06-21 Mediatek Inc Data storing system with card reader
US7756594B2 (en) * 2004-06-14 2010-07-13 Microsoft Corporation Systems and methods for parsing flexible audio codec topologies
US20060041895A1 (en) * 2004-08-04 2006-02-23 Microsoft Corporation Systems and methods for interfacing with codecs across an architecture optimized for audio
US7590065B2 (en) * 2004-08-04 2009-09-15 Microsoft Corporation Equal-opportunity bandwidth regulation
US20060031607A1 (en) * 2004-08-05 2006-02-09 Microsoft Corporation Systems and methods for managing input ring buffer
US7706901B2 (en) * 2004-10-01 2010-04-27 Microsoft Corporation Low latency real-time audio streaming
JP4419074B2 (ja) * 2004-11-15 2010-02-24 エルピーダメモリ株式会社 半導体記憶装置
CN1838323A (zh) * 2005-01-19 2006-09-27 赛芬半导体有限公司 可预防固定模式编程的方法
EP2194476B1 (en) 2005-03-22 2014-12-03 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a record of a software-verification attestation
US7546634B2 (en) * 2005-04-08 2009-06-09 Victor Chuan-Chen Wu Encryption removable storage system
US7543122B2 (en) * 2005-08-11 2009-06-02 Research In Motion Limited System and method for obscuring hand-held device data traffic information
US20070083770A1 (en) * 2005-09-17 2007-04-12 Technology Group Northwest Inc. System and method for foiling code-injection attacks in a computing device
US20070124554A1 (en) * 2005-10-28 2007-05-31 Honeywell International Inc. Global memory for a rapidio network
TWI310924B (en) * 2005-11-10 2009-06-11 Delta Electronics Inc Display apparatus
US7990737B2 (en) * 2005-12-23 2011-08-02 Intel Corporation Memory systems with memory chips down and up
US20070177363A1 (en) * 2006-01-31 2007-08-02 Symbol Technologies, Inc. Multilayer printed circuit board having tamper detection circuitry
TWI311312B (en) * 2006-02-21 2009-06-21 Realtek Semiconductor Corp Optical drive operating system
US7375034B2 (en) * 2006-03-21 2008-05-20 International Business Machines Corporation Recessing trench to target depth using feed forward data
US7640440B2 (en) * 2006-04-25 2009-12-29 Apple Inc. Method and apparatus for facilitating device hibernation
US7587663B2 (en) * 2006-05-22 2009-09-08 Intel Corporation Fault detection using redundant virtual machines
EP1914990A1 (en) * 2006-10-19 2008-04-23 Advanced Digital Broadcast S.A. Electronic module for digital television receiver
US8813260B2 (en) * 2006-11-20 2014-08-19 International Business Machines Corporation Self-contained device security
KR100913025B1 (ko) * 2006-12-27 2009-08-20 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 암호화 방법
TWI360803B (en) * 2007-01-26 2012-03-21 Realtek Semiconductor Corp Apparatus and method for reducing output speed of
US20090067625A1 (en) * 2007-09-07 2009-03-12 Aceurity, Inc. Method for protection of digital rights at points of vulnerability in real time
US20090080665A1 (en) * 2007-09-25 2009-03-26 Aceurity, Inc. Method of Generating Secure Codes for a Randomized Scrambling Scheme for the Protection of Unprotected Transient Information
US7848142B2 (en) * 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
JP2009141780A (ja) * 2007-12-07 2009-06-25 Canon Inc 情報処理装置及び情報処理方法
KR101012398B1 (ko) * 2008-03-03 2011-02-11 삼성전자주식회사 O/s를 이용하는 유닛 및 이를 이용하는 화상형성장치
US9246899B1 (en) 2008-03-03 2016-01-26 Jpmorgan Chase Bank, N.A. Authentication and interaction tracking system and method
US8255971B1 (en) 2008-03-03 2012-08-28 Jpmorgan Chase Bank, N.A. Authentication system and method
US8751990B2 (en) * 2008-12-19 2014-06-10 L3 Communications Integrated Systems, L.P. System for determining median values of video data
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
KR20120105150A (ko) * 2011-03-15 2012-09-25 삼성전자주식회사 이미지 디스플레이 시스템 및 이미지 데이터 처리 방법
US9141438B2 (en) 2011-06-30 2015-09-22 Net Navigation Systems, Llc Logic for synchronizing multiple tasks
US20160108723A1 (en) * 2014-10-21 2016-04-21 Alkhorayef Petroleum Company Systems and Methods of Communication Signal Processing For Downhole Applications
US10162558B2 (en) 2015-10-30 2018-12-25 Micron Technology, Inc. Data transfer techniques for multiple devices on a shared bus
CN108111149A (zh) * 2017-12-20 2018-06-01 中国科学院长春光学精密机械与物理研究所 一种多通道模拟开关的抗串扰的方法
CN110598412B (zh) * 2018-06-12 2021-12-14 杨力祥 将权力信息隔离并依托它进行权力检查的方法及计算装置
TWI758675B (zh) * 2019-12-31 2022-03-21 新唐科技股份有限公司 微控制電路及印刷電路板
US11573854B2 (en) * 2021-02-02 2023-02-07 Nvidia Corporation Techniques for data scrambling on a memory interface
CN117171075B (zh) * 2023-10-27 2024-02-06 上海芯联芯智能科技有限公司 一种电子设备及任务处理方法

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02143350A (ja) * 1988-11-24 1990-06-01 Nec Corp 半導体メモリ
JPH0399347A (ja) * 1989-09-12 1991-04-24 Hitachi Ltd 半導体集積回路装置とパスワード方式
JPH03113656A (ja) * 1989-09-28 1991-05-15 Mitsubishi Electric Corp 半導体記憶装置
JPH03257557A (ja) * 1990-03-07 1991-11-18 Mitsubishi Electric Corp マイクロコンピュータ
JPH03276346A (ja) * 1990-03-27 1991-12-06 Nec Corp メモリカード
JPH0474240A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 半導体メモリ
JPH0476749A (ja) * 1990-07-19 1992-03-11 Toshiba Corp セキュリティ回路
JPH04114247A (ja) * 1990-09-05 1992-04-15 Nec Corp マイクロ・コンピュータ
JPH04160584A (ja) * 1990-10-24 1992-06-03 Toppan Printing Co Ltd Icカード
JPH04163649A (ja) * 1990-10-29 1992-06-09 Toshiba Corp 外部記憶装置のデータ保護方式
JPH04163650A (ja) * 1990-10-26 1992-06-09 Seiko Epson Corp Icメモリーカード
JPH04213137A (ja) * 1990-12-07 1992-08-04 Tokimec Inc メモリモジュールのデータ秘匿装置
JPH04266051A (ja) * 1991-02-20 1992-09-22 Kyocera Corp 半導体素子収納用パッケージの製造方法
JPH04367045A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 半導体記憶装置
JPH0520204A (ja) * 1991-07-11 1993-01-29 Matsushita Electric Ind Co Ltd 半導体装置
JPH05100958A (ja) * 1991-10-08 1993-04-23 Mitsubishi Electric Corp 半導体記憶装置
JPH05134778A (ja) * 1991-11-12 1993-06-01 Nec Home Electron Ltd 機密保護付き情報処理装置
JPH05265867A (ja) * 1992-03-23 1993-10-15 Nec Corp シングルチップマイクロコンピュータ
JPH05324486A (ja) * 1992-03-17 1993-12-07 Toshiba Corp 記憶装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4432067A (en) * 1981-05-07 1984-02-14 Atari, Inc. Memory cartridge for video game system
US4454594A (en) 1981-11-25 1984-06-12 U.S. Philips Corporation Method and apparatus to secure proprietary operation of computer equipment
US4442486A (en) 1981-11-25 1984-04-10 U.S. Philips Corporation Protected programmable apparatus
US4462076A (en) 1982-06-04 1984-07-24 Smith Engineering Video game cartridge recognition and security system
US4597054A (en) * 1982-12-02 1986-06-24 Ncr Corporation Arbiter circuit and method
US4680731A (en) * 1983-03-17 1987-07-14 Romox Incorporated Reprogrammable cartridge memory with built-in identification circuitry and programming method
US4583196A (en) * 1983-10-28 1986-04-15 Honeywell Inc. Secure read only memory
JPS60107155A (ja) 1983-11-16 1985-06-12 Hitachi Ltd 記憶ボリユ−ムのデ−タ保護方式
US4870704A (en) * 1984-10-31 1989-09-26 Flexible Computer Corporation Multicomputer digital processing system
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4685056A (en) * 1985-06-11 1987-08-04 Pueblo Technologies, Inc. Computer security device
CA1270339A (en) * 1985-06-24 1990-06-12 Katsuya Nakagawa System for determining a truth of software in an information processing apparatus
US5155829A (en) * 1986-01-21 1992-10-13 Harry M. Weiss Memory system and method for protecting the contents of a ROM type memory
US4787082A (en) * 1986-07-24 1988-11-22 American Telephone And Telegraph Company, At&T Bell Laboratories Data flow control arrangement for local area network
US4884234A (en) * 1987-06-29 1989-11-28 Ncr Corporation Dynamic RAM refresh circuit with DMA access
IL83549A (en) * 1987-08-16 1992-08-18 Yossi Matias Video scrambling apparatus and method based on space filling curves
JP2710316B2 (ja) 1987-08-26 1998-02-10 任天堂株式会社 パスワード作成装置およびパスワード作成装置を用いたゲーム機
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
US5239636A (en) * 1988-09-09 1993-08-24 Advanced Micro Devices, Inc. Buffer memory subsystem for peripheral controllers
FI99250C (fi) 1989-01-10 1997-12-29 Nintendo Co Ltd Järjestelmä ulkoisen muistin luvattoman käytön estämiseksi
US4962497A (en) * 1989-09-21 1990-10-09 At&T Bell Laboratories Building-block architecture of a multi-node circuit-and packet-switching system
US5004232A (en) 1989-10-13 1991-04-02 Macronix, Inc. Computer game cartridge security circuit
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP2560124B2 (ja) 1990-03-16 1996-12-04 株式会社セガ・エンタープライゼス ビデオゲームシステム及び情報処理装置
FR2661585B1 (fr) * 1990-04-25 1992-08-07 Telediffusion Fse Procede et dispositif d'embrouillage-desembrouillage de donnees d'images numeriques.
US5163143A (en) * 1990-11-03 1992-11-10 Compaq Computer Corporation Enhanced locked bus cycle control in a cache memory computer system
CA2064162C (en) * 1991-05-28 2002-07-09 Daniel Paul Fuoco Personal computer with local bus arbitration
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer
WO1993010498A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Security for on-chip microcontroller memory
US5265211A (en) * 1992-01-02 1993-11-23 International Business Machines Corporation Arbitration control logic for computer system having dual bus architecture
US5442341A (en) * 1992-04-10 1995-08-15 Trw Inc. Remote control security system
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5392404A (en) * 1992-06-22 1995-02-21 International Business Machines Corp. Bus control preemption logic
US5452358A (en) * 1994-02-08 1995-09-19 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
US5577230A (en) * 1994-08-10 1996-11-19 At&T Corp. Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02143350A (ja) * 1988-11-24 1990-06-01 Nec Corp 半導体メモリ
JPH0399347A (ja) * 1989-09-12 1991-04-24 Hitachi Ltd 半導体集積回路装置とパスワード方式
JPH03113656A (ja) * 1989-09-28 1991-05-15 Mitsubishi Electric Corp 半導体記憶装置
JPH03257557A (ja) * 1990-03-07 1991-11-18 Mitsubishi Electric Corp マイクロコンピュータ
JPH03276346A (ja) * 1990-03-27 1991-12-06 Nec Corp メモリカード
JPH0474240A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 半導体メモリ
JPH0476749A (ja) * 1990-07-19 1992-03-11 Toshiba Corp セキュリティ回路
JPH04114247A (ja) * 1990-09-05 1992-04-15 Nec Corp マイクロ・コンピュータ
JPH04160584A (ja) * 1990-10-24 1992-06-03 Toppan Printing Co Ltd Icカード
JPH04163650A (ja) * 1990-10-26 1992-06-09 Seiko Epson Corp Icメモリーカード
JPH04163649A (ja) * 1990-10-29 1992-06-09 Toshiba Corp 外部記憶装置のデータ保護方式
JPH04213137A (ja) * 1990-12-07 1992-08-04 Tokimec Inc メモリモジュールのデータ秘匿装置
JPH04266051A (ja) * 1991-02-20 1992-09-22 Kyocera Corp 半導体素子収納用パッケージの製造方法
JPH04367045A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 半導体記憶装置
JPH0520204A (ja) * 1991-07-11 1993-01-29 Matsushita Electric Ind Co Ltd 半導体装置
JPH05100958A (ja) * 1991-10-08 1993-04-23 Mitsubishi Electric Corp 半導体記憶装置
JPH05134778A (ja) * 1991-11-12 1993-06-01 Nec Home Electron Ltd 機密保護付き情報処理装置
JPH05324486A (ja) * 1992-03-17 1993-12-07 Toshiba Corp 記憶装置
JPH05265867A (ja) * 1992-03-23 1993-10-15 Nec Corp シングルチップマイクロコンピュータ

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003500786A (ja) * 1999-05-12 2003-01-07 ギーゼッケ ウント デフリエント ゲーエムベーハー アドレスのスクランブリング機能付きメモリアレー
JP2002032268A (ja) * 2000-07-13 2002-01-31 Fujitsu Ltd 処理装置および集積回路
JP4683442B2 (ja) * 2000-07-13 2011-05-18 富士通フロンテック株式会社 処理装置および集積回路
WO2006051639A1 (ja) * 2004-11-15 2006-05-18 Ikuo Yamaguchi 半導体メモリ装置
US7770027B2 (en) 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP2011507086A (ja) * 2007-12-13 2011-03-03 トムソン ライセンシング コピープロテクトされたソフトウエア・カートリッジ

Also Published As

Publication number Publication date
TW300971B (ja) 1997-03-21
TW332268B (en) 1998-05-21
US5666516A (en) 1997-09-09
CN1115058A (zh) 1996-01-17
CN1104685C (zh) 2003-04-02
KR0167814B1 (ko) 1999-01-15
US5761698A (en) 1998-06-02
EP0660215A3 (en) 1996-06-05
US5765197A (en) 1998-06-09
CA2130979C (en) 1999-09-07
CA2130979A1 (en) 1995-06-17
JP2720909B2 (ja) 1998-03-04
US6173358B1 (en) 2001-01-09
US6122716A (en) 2000-09-19
EP0660215A2 (en) 1995-06-28

Similar Documents

Publication Publication Date Title
JP2720909B2 (ja) 保護されたプログラム式メモリ・カートリッジとこれを使用するコンピュータ・システム
US5802544A (en) Addressing multiple removable memory modules by remapping slot addresses
JP3534372B2 (ja) テレビジョン・ビデオ・ディスプレイのためのカーソル制御ユーザ・インターフェースを有する事前チャネル・リスティング・システム
EP0672980B1 (en) Keyboard-touchpad combination in a bivalve enclosure
US5791992A (en) Video game system with internet cartridge
CA2142798C (en) Computer system with touchpad support in operating system
JPH08328800A (ja) ビデオ・オーバーレー・メニューのビデオ・レシーバ・ディスプレイ装置および方法
JPH08331412A (ja) カーソル重畳ビデオのビデオ信号のディスプレイ装置及び方法
US6756965B2 (en) Input device having two joysticks and touchpad with default template
JPH08331414A (ja) メニュー・オーバレイ・ビデオのビデオ受信ディスプレイ・システム及び方法
JPH08331415A (ja) ビデオ受信ディスプレイ・システム及び方法
US5657091A (en) Video display controller, user interface and programming structure for such interface
JPH08331411A (ja) テレビジョン視聴者のための気分転換システム及び方法
US6011546A (en) Programming structure for user interfaces
US5539478A (en) Video receiver display and three axis remote control
JPH07261922A (ja) タッチパッド、入力装置及びコンピュータ・システム
US5762555A (en) Two cartridge video game system with text based internet access
CA2232826C (en) Protected programmable memory cartridge and computer system using same
JPH08339340A (ja) コンピュータ装置及びそのリセット方法
JPH096534A (ja) コンピュータ・システムおよび入力装置