JP2000211216A - 複合機器の情報処理方法及びシステム - Google Patents
複合機器の情報処理方法及びシステムInfo
- Publication number
- JP2000211216A JP2000211216A JP11055958A JP5595899A JP2000211216A JP 2000211216 A JP2000211216 A JP 2000211216A JP 11055958 A JP11055958 A JP 11055958A JP 5595899 A JP5595899 A JP 5595899A JP 2000211216 A JP2000211216 A JP 2000211216A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- signal
- data
- controller
- transfer
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32561—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
- H04N1/32598—Bus based systems
- H04N1/32603—Multi-bus systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00912—Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
- H04N1/00954—Scheduling operations or managing resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32561—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0081—Image reader
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0082—Image hardcopy reproducer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0086—Image transceiver
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
- Record Information Processing For Printing (AREA)
Abstract
な処理しかできなかった。 【解決手段】情報処理装置から送信された手続きを解釈
し、手続きの解釈に基きジョブを生成する。生成したジ
ョブはページ単位に分割され、該ページの処理を実行す
るデバイスが割り当てられる。ページを処理単位とした
デバイスの処理結果は複数のバスの使用を制御してデー
タの書込みと読取りを並列に行う。
Description
クス(FAX)、複写機等、複合機器に関して情報を処
理する方法及びシステムに関する。
リンタなどの画像出力装置とを組み合わせた複写機やフ
ァクシミリ、あるいはそれらを単体として備えたコンピ
ュータシステムなど、複合機器と呼ばれる画像処理装置
が実用化されている。このような装置では、画像入力機
能、画像出力機能、コピー機能等の複合機能を実現する
ために、画像入力装置及び画像出力装置が同期して動作
することが不可能な場合には、画像入力装置から一旦メ
モリに取り込んだ画像データを画像出力装置に出力する
ことでコピー機能を実現していた。また、画像入力装置
及び画像出力装置が同期して動作することが可能な場合
には、画像入力装置から画像出力装置へ直接画像信号を
転送する経路を設けてコピー機能を実現していた。
クス機能を追加したものや、ファックスにプリンタ機能
を追加したもの等、従来機の機能追加という形で発展し
てきており、複合動作ができてもジョブ単位の複合動作
及び並列動作しか行えなかった。従来のデジタル複合機
では、扱う種々のデータを入出力のために授受する十分
なバスの使用が確保できない場合のために、スキャナ、
プリンタ等のインタフェース部にローカルなメモリを分
散させた構成となっていた。
の、ジョブ処理を説明するタイミングチャートである。
プリントジョブ1及びプリントジョブ2が複合機器で処
理するべきジョブである。これらのジョブが、あるリソ
ース(例えばページメモリ)を獲得する場合を考える。
時刻T1で先に投入されたプリントジョブ1がリソース
を獲得する。T2のタイミングで後続のプリントジョブ
2がリソースの獲得を行うが、プリントジョブ1がリソ
ースを占有しており(ロック)しており、獲得できず、
リソースの獲得要求はキューイングされる。そしてT3
のタイミングでプリントジョブ1がリソースを開放する
と、キューイング中のプリントジョブ2のリソース獲得
要求に従い、プリントジョブ2がリソースを獲得し、処
理を行う。つまり、T1からT3の時間、プリントジョ
ブ1は排他的にリソースを使用するためにプリントジョ
ブ1とプリントジョブ2の処理はシリアルになる。
デジタル複合機では、一連のジョブの処理をジョブ単位
ごとに順序だてて実行させていたために、複数のジョブ
がデジタル複合機に入力された場合は先行するジョブの
処理終了まで、後続のジョブは待機状態となり、ジョブ
のスループットは低下した。
リは、デバイスごとに重複した情報を格納する場合もあ
り、必要な領域以上の冗長なメモリ領域を必要としてい
た。
理を単一のCPUでまかなう場合、リアルタイム性を必
要とする処理が、リアルタイム性を要さない処理の犠牲
となり、システム全体の処理能力を低下させていた。
びシステムは上記課題のいずれかを解決するためののも
であり、主として以下の構成からなることを特徴とす
る。
報処理装置から送信された手続きを解釈する解釈工程
と、前記手続きの解釈に基き、ジョブを生成するジョブ
生成工程と、前記生成されたジョブを構成する要素に分
割する分割工程と、前記分割した要素を処理するための
デバイスの割り付けと解放とを管理するデバイス管理工
程と、前記分割した要素の処理を並列に処理するために
データの書込みと、読取りを行う複数のバスの使用を制
御するバス制御工程とを備え、前記要素の並列処理によ
り、スループットを最短にすることを特徴とする。ある
いは、複合機器の情報処理システムは、情報処理装置か
ら送信された手続きを解釈する解釈手段と、前記手続き
の解釈に基き、ジョブを生成するジョブ生成手段と、前
記生成されたジョブを構成する要素に分割する分割手段
と、前記分割した要素を処理するためのデバイスの割り
付けと解放とを管理するデバイス管理手段と、前記分割
した要素の処理を並列に処理するためにデータの書込み
と、読取りを行う複数のバスの使用を制御するバス制御
手段とを備え、前記要素の並列処理により、スループッ
トを最短にすることを特徴とする。
周辺コントローラ、メモリコントローラ、スキャナ/プ
リンタコントローラ、PCIインターフェースなどを内
蔵したシングルチップ・スキャニング・プリンティング
エンジンである“DoEngine”を説明する。
00プロセッサとコンパチブルなプロセッサコア、プロ
セッサ周辺コントローラ、メモリコントローラ、スキャ
ナー/プリンタコントローラ、PCIインターフェース
などを内蔵したシングルチップ・スキャニング・プリン
ティングエンジンである。高速並列動作、ビルディング
ブロック手法を採用し実装される。
プロセッサ周辺回路の総称)内には最大でインストラク
ション、データそれぞれ16Kバイトの計32Kバイト
のキャッシュメモリ、FPU(浮動小数点演算ユニッ
ト)、MMU(メモリ管理ユニット)、ユーザー定義可
能なコプロセッサなどを内蔵することが可能である。
で、PCIバススロットを有するコンピュータシステム
と共に用いることができる。また、PCIサテライト構
成に加え、PCIホストバスブリッジ構成にてPCIバ
スコンフィギュレーションを発行することが可能であ
り、安価なPCI周辺デバイスと組み合わせることによ
り、マルチファンクションペリフェラル(複合機能周辺
機器)のメインエンジンとして使用することも可能であ
る。さらにPCIバスインターフェースを有するレンダ
リングエンジン、圧縮・伸長エンジンと組み合わせるこ
とも可能である。
バス(Bバス)、及び、画像データ転送に最適化したグ
ラフィックバス(Gバス:Graphics Bus)
の2系統の独立したバスを有し、メモリ、プロセッサと
これらのバスをクロスバスイッチを介して接続すること
により、マルチファンクションシステムにおける同時動
作に必須の、並列性の高い高速データ転送を実現してい
る。
続したデータ列のアクセスに対し、最高のコストパフォ
ーマンスを有するシンクロナスDRAM(SDRAM)
をサポートし、SDRAMのバーストアクセス高速デー
タ転送のメリットを享受できない小さなデータ単位での
ランダムアクセスにおける性能低下を最小に抑えるため
に、8Kバイトの2ウェイセットアソシアティブ・メモ
リフロントキャッシュをメモリコントローラ内に備え
る。メモリフロントキャッシュは、すべてのメモリライ
トに対するバススヌープが難しい、クロスバスイッチを
採用したシステム構成においても、複雑な機構なしに、
キャッシュメモリによる高性能化が達成出来る方式であ
る。また、リアルタイムデータ転送(機器制御)が可能
な、プリンタ及びスキャナーとのデータインターフェー
ス(VideoInterface)を有し、さらにハ
ードウェアによる、機器間同期のサポート及び画像処理
を行う事により、スキャナ、プリンタ分離型の構成にお
いても、高品質で高速なコピー動作の実現が可能な構成
となっている。
Vで動作し、IOは5Vトレラントである。
を用いた装置あるいはシステムの構成例を示している。
図1は分離構成型であり、パーソナルコンピュータ10
2には、それが備えるPCIインターフェースを介して
DoEngineを備えたローカルボード101が装着
される。ローカルボード101にはDoEngineの
ほか、後述するメモリバスを介してDoEngineと
接続されたメモリと、色処理回路(チップ)が設けられ
ている。このローカルボード101を介して、高速スキ
ャナ103とカラー/モノクロプリンタ104とがパー
ソナルコンピュータ102に接続される。この構成によ
り、パーソナルコンピュータの制御のもとで,ローカル
ボード101により、スキャナ103から入力された画
像情報を処理し、プリンタ104から出力させることが
できる。
リンタ202とを一体に組み込んだ例で、図2は通常の
複写機に類する構成を、図3(a)はファクシミリ装置
などの構成を示している。図3(b)は、図3(a)を
コントロールするコンピュータを示している。
ーフェースを介して接続された外部のCPUによりDo
Engineが制御されるというスレーブモードで使用
されている例であり、図3は、DoEngineのCP
Uが主体となり、PCIインターフェースを介して接続
されたデバイスを制御するマスタモードで使用されてい
る例である。
す。外部インターフェースとして、PCI,メモリバ
ス,ビデオ,汎用入出力,IEEE1284,RS23
2C,100baseT/10baseT,LCDパネ
ル及びキーを備えるが、更にUSBを有していてもよ
い。内蔵ブロックとして、CPUコアに加えて、1次キ
ャッシュ,キャッシュ付きメモリコントローラ,コピー
エンジン,IOバスアービタ(Bバスアービタ),グラ
フィックバスアービタ(Gバスアービタ)などを備えて
いる。また、DMAコントローラはチャネル数が5であ
り、グラフィックバス(Gバス),IOバス(Bバス)
ともに、アービトレーションは優先度付きの先着順処理
方式で行われる。
ック毎のブロック図、概要、詳細、コアインターフェー
ス、タイミング図などを解説する。
oEngine400は次世代複合機能周辺機器(シス
テム)(MFP:Multi Function Pe
ripheral or MFS:Multi Fun
ction System)の主たるコントローラとし
て設計、開発された。
MIPSテクノロジー社のMIPSR4000コアを採
用する。プロセッサコア401内には、8Kバイトずつ
のインストラクション,データのキャッシュメモリ、M
MUなどが実装される。プロセッサコア401は、64
ビットのプロセッサバス(SCバス)を介して、システ
ム・バス・ブリッジ(SBB)402に接続される。S
BB402は4×4の64ビットクロスバスイッチであ
り、プロセッサコア401の他に、キャッシュメモリを
備えたSDRAMやROMを制御するメモリコントロー
ラ403と専用のローカルバス(MCバス)で接続され
ており、さらに、グラフィックバスであるGバス40
4、IOバスであるBバス405と接続され、全部で4
つのバスに接続される。システムバスブリッジ402
は、これら4モジュール間を、可能な限り、同時平行接
続を確保することができるように設計されている。
406により協調制御されており、スキャナやプリンタ
と接続するためのスキャナコントローラ4302やプリ
ンタコントローラ4303に接続される。また、Bバス
405は、Bバスアービタ(BBA)407により協調
制御されており、スキャナ/プリンタコントローラのほ
か、電力管理ユニット(PMU)409,インタラプト
コントローラ(IC)410,UARTを用いたシリア
ルインターフェースコントローラ(SIC)411,U
SBコントローラ412,IEEE1284を用いたパ
ラレルインターフェースコントローラ(PIC)41
3,イーサネットを用いたLANコントローラ(LAN
C)414,LCDパネル,キー,汎用入出力コントロ
ーラ(PC)415,PCIバスインターフェース(P
CIC)416にも接続されている。
(Memory Management Unit)、
命令キャッシュ、データキャッシュ、ライトバックバッ
ファ及び掛け算ユニットを含んだブロックを指す。
に、キャッシュメモリコントローラは、無効(Inva
lid),有効かつクリーン(Valid Clea
n:キャッシュが更新されていない),有効かつダーテ
ィ(Valid Dirty:キャッシュが更新されて
いる)の3つのステートキャッシュを管理する。この状
態に応じて、キャッシュは制御される。
示す。
スインターフェース605を介してBバス405に接続
され、DoEngineチップ内の各機能ブロック及
び、チップ外部からのインタラプトを集積し、CPUコ
ア401がサポートする、6レベルの外部インタラプト
及び、ノンマスカブルインタラプト(NMI)に再分配
する。各機能ブロックとは、電力管理ユニット409,
シリアルインターフェースコントローラ411,USB
コントローラ412,パラレルインターフェースコント
ローラ413,イーサネットコントローラ414,汎用
IOコントローラ415,PCIインターフェースコン
トローラ416,スキャナコントローラ4302,プリ
ンタコントローラ4303などである。
ョン可能なマスクレジスタ(IntMask Logi
c0−5)602により、各要因毎に割り込みをマスク
をすることが可能である。また、外部インタラプト入力
は、選択的エッジ検出回路601により、信号線ごと
に、エッジセンス/レベルセンスを選択することが出来
る。要因レジスタ(Detect and set C
ause Reg 0−5)603は、各レベルごと
に、どのインタラプトがアサートされているかを示すと
ともに、ライト動作を行うことで、レベルごとにクリア
を行う事が出来る。
なくともひとつの割り込みがあれば割込み信号を出力す
べく、論理和回路604により論理和として出力され
る。なお、各レベル内での複数要因間のレベル付けはソ
フトウェアにて行う。
る。メモリコントローラ403は、メモリコントローラ
専用のローカルバスであるMCバスにMCバスインター
フェース701を介して接続され、最大1ギガバイトの
シンクロナスDRAM(SDRAM)と、32メガバイ
トのフラッシュROMあるいはROMをサポートする。
SDRAMの特徴であるバースト転送時の高速性を活か
すため、64(16×4)バースト転送を実現する。ま
た、CPUやBバスよりの連続したアドレスのシングル
転送を考慮し、メモリコントローラ内にSRAM(メモ
リフロントキャッシュ)702を内蔵し、SDRAMへ
直接シングル転送を行うことを可能な限り回避して転送
効率を向上させる。メモリコントローラーSDRAM間
のデータバス幅は、信号ramData及びramPa
rをあわせて72ビット(このうち8ビットの信号ra
mParはパリティ)、フラッシュROM間のデータバ
スfntromData,prgromDataの幅は
32ビットとする。
成となっている。
MCバスは、SBB402−メモリコントローラ403
間の専用のバスであり、またSBB内部の基本バスとし
て用いられている。
続する専用バスPBusのバースト転送が4バーストの
み規定しているのに対し、MCバスにおいては16バー
スト×4までの転送を追加している。このためにバース
ト長を示す信号としてmTType[6:0]を新たに
定義した。 (MCバス信号の定義) MCバスの各信号は下記の通り定義される。 ・mClk(出力) … MCバスクロック ・mAddr[31:0](出力) … MCバスアドレス 32ビットのアドレスバスであり、mTs_Lがアサートされた時点からmBR dy_Lがアサートされるまで保持される。 ・mDataOut[63:0](出力) … MCバスデータ出力 64ビットの出力データバスであり、mDataOe_Lがアサートされている 時のみ有効である。 ・mDataOe_L(出力) … MCバスデータ出力イネーブル mDataOut[63:0]が有効であることを示す。またその転送がWri teであることを示す。 ・mDataIn[63:0](入力) … MCバスデータ入力 64ビットの入力データバスであり、mBRdy_LがアサートされているmC lkの立ち上がりでサンプリングされる。 ・mTs_L(出力) … MCバストランザクション開始ストローブ 転送が開始したことを示す。転送の最初の1クロックの間だけアサートされる。 転送が1クロックで終了し、次の転送がすぐに始められるのならばmTs_Lは 引続きアサートされたままになる。 ・mTType[6:0](出力) … MCバストランザクションタイプ MCバス上の転送のタイプを示す。シングル転送時はその転送の間、バースト転 送時は最初の転送(beat)の間保持される。上位3ビットがソース(マスタ )をあらわし、下位ビットがシングル/バースト長をあらわす。タイプには次の ようなものがある。
ての定義である。 (MCバストランザクション)MCバス上のトランザク
ションとしては、以下のトランザクションをサポートす
る。 ベーシックトランザクション(1,2,3,4,8バ
イト Read/Write) mBE_L[7:0]信号に従い、1,2,3,4,8
バイトのシングルトランザクションをサポートする。 バーストトランザクション (CPUからの)4−ダブルワードバーストまでのトラ
ンザクションをサポートする。 Gバスからの16−ダブルワードバーストx4までの
トランザクションをサポートする。 In−page write(ページ内書き込み)ト
ランザクション mTPW_Lで示される同一ページ内の書き込みに関し
て、連続的なWriteアクセスをサポートする。 バスリトライ メモリコントローラ内の制限によりメモリアクセスがで
きない場合は、mBRty_L信号をアサートし、バス
リトライを通知する。
モリコントローラ403は、次のような構成を有するS
DRAMを以下のように制御する。
は、x4,x8,x16ビットタイプの16/64メガ
ビットSDRAMを64ビットデータバスで8バンク制
御することができる。
のアドレスビットの割付けについては、64ビットSD
RAMの場合にはMA[13:0]を、16ビットSD
RAMの場合にはMA[11:0]を使用する。
レジスタ))SDRAMは内部にモードレジスタを持
ち、モードレジスタ設定コマンドを用いて下記の項目を
設定する。 バースト長 バースト長は、1,2,4,8,フルページのいずれか
が設定可能であるが、CPUからのバースト転送長が4
であることから、バースト長4が最適である。Gバスか
らの16バースト以上の転送は、Read/Write
コマンド(オートプリチャージ無し)を連続して発行す
ることにより実現する。 ラップタイプ(Wrap Type) バースト転送時のアドレスのインクリメント順を設定す
る。「シーケンシャル」または「インターリーブ」のど
ちらかが設定可能である。 CASレイテンシ CASレイテンシは、1,2,3のいずれかが設定可能
であり、使用するSDRAMのグレードと動作クロック
により決定される。
て以下のコマンドをサポートする。各コマンドの詳細
は、SDRAMデータブックに記載されている。 ・モードレジスタ設定コマンド ・アクティブコマンド ・プリチャージコマンド ・ライトコマンド ・リードコマンド ・CBR(Auto)リフレッシュコマンド ・セルフリフレッシュ開始コマンド ・バーストストップコマンド ・NOPコマンド (SDRAMリフレッシュ)SDRAMは、2048サ
イクル/32ms(4096/64ms)であるので、
16,625nsおきにCBRリフレッシュコマンドを
発行する。メモリコントローラは設定可能なリフレッシ
ュカウンタを持ち、自動的にCBRリフレッシュコマン
ドを発行する。Gバスからの16−バーストxnの転送
中は、リフレッシュ要求を受け付けない。したがって、
リフレッシュカウンタは16−バーストx4転送の時間
だけ余裕を持った値を設定しなければならない。また、
セルフリフレッシュをサポートする。このコマンドを発
行すると、パワーダウンモード(ramclke_L=
Low)時にセルフリフレッシュが続行される。
はパワーオンリセット後、SDRAMに対して以下の初
期化を行なう。すなわち、電源投入後100μsのポー
ズ期間をおいて、 プリチャージウコマンドを用いて全バンクをプリチャ
ージする。 SDRAMのモードレジスタを設定する。 オートリフレッシュコマンドを用いて、リフレッシュ
を8回行う。
4)>フラッシュROMコントローラ704は、rom
Addr[23:2]のアドレス信号と4個のチップセ
レクト(romCs_L[3:0])信号をサポートす
る。アドレス信号romAddr2〜romAddr9
はパリティ信号ramPar0〜ramPar7とマル
チプレクスされ、アドレス信号romAddr10〜r
omAddr23は、DRAMアドレスramAddr
0〜ramAddr13とマルチプレクスされている。
キャッシュ)>メインメモリとして用いられるSDRA
Mは、バースト転送は非常に高速であるが、シングル転
送においてはその高速性が発揮できない。そこで、メモ
リコントローラ内にメモリフロントのキャッシュを実装
し、シングル転送の高速化をはかる。メモリフロントキ
ャッシュは、キャッシュコントローラ706とSRAM
702より構成される。MCバスに定義されたmTTy
pe[6:0]信号により、その転送マスターと転送長
を知ることができるので、各マスターごと、あるいは転
送長ごとにキャッシュのオン/オフが設定可能である。
キャッシュの方式は、次の通りである。なお、以下、特
に断らない限り、単なるキャッシュあるいはキャッシュ
メモリという呼称は、プロセッサコアに内蔵されたキャ
ッシュではなく、メモリコントローラが内蔵するメモリ
フロントキャッシュを指すものとする。 ・2ウェイセットアソシアティブ ・8kバイトデータRAM ・128x21x2 タグRAM ・LRU(Least Recently Used)
アルゴリズム ・ライトスルー ・No Write Allocate 次にキャッシュコントローラ706を中心とする詳細な
ブロック図を図8に示す。
りメモリリード/ライト転送が要求された場合のキャッ
シュの動作を図8のブロック図と、図9及び図10に示
すフローチャートを用いて説明する。
その転送の最初にMCバス上で示されるmTType
[6:0]によって、その転送がキャッシュオンでおこ
なうか、オフでおこなうかの判断がおこなわれる。この
説明では、転送がシングル転送であればオン、バースト
転送であればオフと判断することにする(ステップS9
01)。すなわち、mTType(3)が“1”hであ
れば、シングル転送をあらわすのでキャッシュオンで、
“0”hであればバースト転送をあらわすのでキャッシ
ュオフで転送を行う。
アドレスlmaddr[31:0]が与えられると、l
maddr[11:5]がインデックスとしてb1_t
ag_ram801,b2_tag_ram802,b
1_data_ram702−a,b2_data_r
am702−b,lru803へ与えられ、それぞれの
ブロックから、入力されたインデックスに対応するバリ
ッドビット″v″及びb1_tag_addr,バリッ
ドビット″v″及びb2_tag_addr,b1 o
ut data,b2 out data,lru i
nがそれぞれ出力される(ステップS902)。
g_ram802より出力されたb1_tag_add
rとb2_tag_addrがそれぞれb1_comp
arater804,b2−comparater80
5でアドレス lmaddr[31:12]と比較さ
れ、その結果、すなわちヒットか否かがb1_hit m
iss_L,b2_hit_miss_L信号によりキ
ャッシュコントローラ706へ知らされ、判定される
(ステップS903)。
が判定される(ステップS904)。ヒットであると
は、b1_tag_addrとb2_tag_addr
のいずれかにアドレスlmaddr[31:12]と一
致するものがある場合である。ヒットかつリードの場合
にはつぎのようになる。すなわち、b1がヒットであ
り、要求された転送がリードであった場合は、すでに読
み出されているb1_out_dataとb2_out
_dataのうちb1_out_dataを選択し、l
maddr[4:3]で示される8バイトのデータをM
Cバスへ出力する(ステップS905)。同時にそのイ
ンデックスに対応するlruを“0”(=b1ヒット)
に書き換えて、転送が終了する。b2がヒットであり、
要求された転送がリードであった場合は、すでに読み出
されているb1_out_dataとb2_out_d
ataのうちb2_out_dataを選択し、lma
ddr[4:3]で示される8バイトのデータをMCバ
スへ出力する(ステップS905)。同時にそのインデ
ックスに対応するlruを“1”h(=b2ヒット)に
書き換えて、転送が終了する。
ようになる。すなわち、b1がヒットであり、要求され
た転送がライトであった場合は、インデックスで示され
るb1_data_ram702−aのlmaddr
[4:3]で示される8バイトのデータのうちmBE_
L[7:0]で示される有効なバイトレーンのみを書き
換え、同時にそのインデックスに対応するlruを
“0”h(=b1ヒット)に書き換える。またSDRA
Mも同様に書き換えて転送が終了する(ステップS90
6)。b2がヒットであり、要求された転送がライトで
あった場合は、インデックスで示されるb2_data
_ram702−bのlmaddr[4:3]で示され
る8バイトのデータのうちmBE_L[7:0]で示さ
れる有効なバイトレーンのみを書き換え、同時にそのイ
ンデックスに対応するlruを“1”h(=b2ヒッ
ト)に書き換える。またSDRAMも同様に書き換えて
転送が終了する(ステップS906)。
も、リードかライトか判定される(ステップS100
1)。要求された転送がリードであった場合は、そのl
maddr[31:3]で示される8バイトのデータが
SDRAMより読み出され(ステップS1003)、M
Cバスへ出力される(ステップS1004)。同時にそ
のインデックスに対応するlruが読み出され、“0”
hであった場合はb2_data_ramへSDRAM
からのデータを書きlruも“1”hへ書き換える。l
ruが“1”hであった場合はb1_data ram
へSDRAMからのデータを書き、lruも“0”hへ
書き換え終了する(ステップS1005)。b1,b2
ともにミスであり、要求された転送がライトであった場
合は、SDRAMに書き込むだけで転送が終了する(ス
テップS1002)。
(キャッシュオフ)の場合、リード、ライトともSDR
AMに対してだけ行われ(ステップS907−S90
9)、キャッシュデータやタグの書き換え等は行わな
い。
7)>ROM/RAMコントローラ707の構成を図1
1に示す。ブロック1101〜ブロック1104によ
り、SDRAMのデータ信号、アドレス信号、パリティ
信号が、フラッシュROMのデータ信号、アドレス信号
と多重化される。
出し・書き込み等の処理のタイミングを、図12〜図1
9を用いて説明する。
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS909における処理に
相当する。
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS908における処理に
相当する。
読み出しのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS909における処理に相当
する。
書き込みのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS908における処理に相当
する。
ットした場合のシングル読み出しのタイミングを示す。
読み出されるデータmDataIn[63:0]として
は、キャッシュメモリであるb1_data_ram7
02−aあるいはb2_data_ram702−bか
ら読み出されたb1/b2_out_dataが出力さ
れる。SDRAMのバースト長は4、CASレイテンシ
は3である。図9のステップS905における処理に相
当する。
ットしなかった場合のシングル読み出しのタイミングを
示す。読み出されるデータmDataIn[63:0]
としては、SDRAMから読み出されたデータramD
ata[63:0]が出力される。また、このデータは
b1/b2_in_dataとしてキャッシュメモリで
あるb1_data_ram702−aあるいはb2_
data_ram702−bにも書き込まれる。SDR
AMのバースト長は4、CASレイテンシは3である。
図10のステップS1004及びS1005における処
理に相当する。
ットした場合のシングル書き込みのタイミングを示す。
書き込まれるデータmDataOut[63:0]は、
キャッシュメモリであるb1_data_ram702
−aあるいはb2−data_ram702−bに書き
込まれるとともに、SDRAMにも書き込まれる。SD
RAMのバースト長は4、CASレイテンシは3であ
る。図9のステップS906における処理に相当する。
ットしなかった場合のシングル書き込みのタイミングを
示す。書き込まれるデータmDataOut[63:
0]は、キャッシュメモリであるb1_data_ra
m702−aあるいはb2−data_ram702−
bには書き込まれず、SDRAMに対してだけ書き込ま
れる。SDRAMのバースト長は4、CASレイテンシ
は3である。図10のステップS1002における処理
に相当する。
が開始されると、その転送の最初にMCバス上で示され
るmTType[6:0]によって、転送がシングル転
送であればオン、バースト転送であればオフと判断して
いるが、バースト転送の場合に、さらにバースト長を判
定し、バースト長がキャッシュの1ラインよりも小さい
場合にはキャッシュオンとし、そうでない場合にはキャ
ッシュオフとして動作するようにしてもよい。
を要求したバスマスタの識別子を示す信号を含ませるこ
とで、メモリコントローラがその識別子を判定し、識別
子に応じてキャッシュオン/キャッシュオフの制御を行
うこともできる。この場合には、識別子とキャッシュオ
ン/オフの別とを対応させた書換え可能なテーブルを用
意し、それを参照してキャッシュのオンオフを切り替え
ることもできる。このテーブルは、例えば特定のアドレ
スを割り当ててCPU401などから書換え可能にする
こともできる。
及びBバス,Gバス 図20としてシステムバスブリッジ(SBB)402の
ブロック図を示す。
Gバス(グラフィックバス),SCバス(プロセッサロ
ーカルバス)及びMCバス間の相互接続をクロスバスイ
ッチを用いて提供する、マルチチャネル双方向バスブリ
ッジである。クロスバスイッチにより、2系統の接続を
同時に確立することが出来、並列性の高い高速データ転
送を実現出来る。
ためのBバスインターフェース2906と、Gバス40
4と接続するためのGバスインターフェース2006
と、プロセッサコア401と接続するためのCPUイン
ターフェーススレーブポート2002と、メモリコント
ローラ403と接続するためのメモリインターフエース
マスターポートを備えるほか、アドレスバスを接続する
アドレススイッチ2003,データバスを接続するデー
タスイッチ2004を含む。また、プロセッサコアのキ
ャッシュメモリを無効化するキャッシュ無効化ユニット
2005を備えている。
バスデバイスからのDMAライトを高速化するライトバ
ッファと、Bバスデバイスのリードを効率化するリード
プリフェッチキューを実装する。これらのキュー内に一
時的に存在するデータに関するコヒーレンシ管理はハー
ドウェアにて行う。なお、Bバスに接続されたデバイス
をデバイスと呼ぶ。
ダイナミックバスサイジングをサポートしているが、S
BB402ではこれをサポートしない、将来、バスサイ
ジングをサポートしないプロセッサを用いる場合にもS
BBに必要な改造を最小限におさえるためである。
動作 <Bバスインターフェース>図21は、Bバスインター
フェースのブロック図である。
スとMCバス間の双方向ブリッジ回路である。Bバスは
DoEngineの内部汎用バスである。
マスタコントロールブロック2011、スレーブコント
ロールブロック2010、データインターフェース20
12、DMAC2013、Bバスバッファの5ブロック
が含まれる。図21上で、DMAC2013は、機能上
3個のシーケンサとレジスタブロックに分割される。そ
れら3つのシーケンサのうち、DMAメモリアクセスシ
ーケンサはBバススレーブコントロールブロック201
0に、DMAregシーケンサはBバスマスターコント
ロールブロック2011に内蔵される。レジスタブロッ
クであるDMAレジスタはBバスデータインターフェー
ス2012部に内蔵される。
バス側からのメモリへの書き込み時、及びDMAによる
デバイスからメモリへの転送が起こった時に、キャッシ
ュ無効化インターフェースを介してCPUシェル内のデ
ータ、命令両キャッシュの無効化の制御を行う。
ファはBバスインターフェースには実装しないが、Bバ
ス上の外部マスタライト時のライトバッファを実装す
る。これにより、バースト転送でない、連続した外部マ
スタからの書き込みが高速化される。このライトバッフ
ァのフラッシュは、Bバスアービタ407によるメモリ
への接続が許された時点で行われる。Bバスマスタリー
ドのライトバッファバイパスは行わない。
ューを実行する。これにより、外部マスタからの連続し
た、データストリームの読み出しの高速化を図る。リー
ドバッファの無効化は、 1.Bバスの新たなリードがバッファにヒットしなかっ
た場合。 2.CPUからメモリへのライトが行われた場合。 3.Gバスからメモリへのライトが行われた場合。 4.Bバスからメモリへのライトが行われた場合。 に行われる。
Bバス405上の各デバイスとメモリ間のDMAコント
ローラ2013が内蔵される。システムバスブリッジ4
02にDMAコントローラを内蔵することにより、ブリ
ッジ双方へ、同時にアクセス要求が発行出来、効率的な
DMA転送が実現出来る。
ッサ401からのアクセス要求に対して、ダイナミック
バスサイジングの使用を要求しない。またBバスマスタ
からのメモリアクセス要求時に、メモリコントローラ4
03からのバスサイジングにも対応しない。すなわち、
メモリコントローラはバスサイジングを期待すべきでは
ない。
汎用IOバスであり、以下の仕様を持つ。 ・アドレス、データ分離型32ビットバス。 ・任意のウェイトサイクルを挿入可能、最短はノーウェ
イト。 ・バーストトランザクションのサポート。 ・最大転送速度は、クロックが50MHz時に200M
byte/Sec。 ・バスエラーとバスリトライのサポート。 ・複数バスマスタのサポート。
を説明する。各信号毎に、「信号名(英語呼称):入力
元>出力先(,3States)…信号の説明」の要領
で記載されている。なお、3ステートの項は3ステート
の信号に限り記載した。
ddress Bus) :Master>Slab
e,3State… IOBusアドレスバス。
ata Bus) :DataDriver>Data
Receiver,3State …IOBusデータ
バス。
taOeReq(IOBus Data Output
Enable Request):Datadriv
er>DefaultDriverLogic … 後
述する双方向IOバスを実現するため、デフォルトドラ
イバーコントロールロジックへの出力信号である。Da
tadrivernameを持つデバイスが、バス上に
データをドライブするための要求信号である。データの
出力を許可されたデバイスには、デフォルトドライバー
コントロールロジックよりb(Datadrivern
ame)DataOe_Lが出力される。Datadr
iverの例:Pci,Sbb,Jpeg,Spu。
taOe_L(IOBus Data Output
Enable):dfaultDriverLogic
>Datadriver … b(Datadrive
rname)DataOeReqを出力したデバイスに
対し、デフォルトドライバーロジックがデータバスへの
データのドライブを許す場合 b(Datadrive
rname)DataOe_L信号をそのデバイスに対
して返す。
Error) :Slave>Master 3Sta
te … IOバストランザクションがエラーで終了し
たことを示す。
(IOBus Grant):Arbiter>Mas
ter … バスアービトレーションにより当マスタが
バスの使用権を得たことを示す。Mastername
の例:Pci,Sbb,Jpeg,Spu。
Instruction/DataOutput In
dicator):Master>Slave,3St
ate … Bバスマスタがインストラクションフェッ
チをBバススレーブに対して行う場合にHighにドラ
イブする。データトランザクションの場合はLowにド
ライブする。
Req (IOBus Master Control
Output EnableRequest) :M
aster>DefaultDriverLogic
… Bバスマスタが、bStart_L,bTx_L,
bWr_L,vInstNotDataとbAddr
[31:2]を3ステートバス上にドライブしたい場合
に、IOBus Output Control Lo
gicに対してアサートする。IOBus Outpu
t Control Logicは各マスタからの、b
MCntlOeReqに基づきドライブを許すマスタに
対し、b(Mastername)CntlOe_L信
号を返す。
_L(IOBus MasterControl Ou
tput Enable):DefaultDrive
rLogic>Master … b(Mastern
ame)CntlOeReqを出力したマスタに対し、
デフォルトドライバーロジックがドライブを許す場合b
(Mastername)CntlOe_L信号をその
マスタに対して返す。
:Slave>Master,3State… Bバ
ススレーブは、現在のBバスデータトランザクションが
現在のクロックサイクルを最後に終了することを示すた
めにこの信号をアサートする。Bバスマスタは、この信
号により、現在のトランザクションがこのクロックサイ
クルで終了することを知る。
(IOBus Bus Request) :Mast
er>Arbiter … Bバスマスタが、Bバスア
ービタに対し、バスの使用権要求を行う事を示す。
Retry) :Slave>Master 3Sta
te … Bバススレーブがマスタに対し、バストラン
ザクションの最実行を要求する。
q(IOBus Slave Ready Outpu
t Enable Request):Slave>D
efaultDriverLogic … Bバススレ
ーブが、bRdy_L,bWBurstReq_L,b
BurstAck_Lを3ステートバス上にドライブし
たい場合に、IOBus Output Contro
l Logicに対してアサートする。IOBusDe
faultDriverLogicは各マスタからの、
b(Slavename)RdyOeReqに基づきド
ライブを許すスレーブに対し、b(Slavenam
e)RdyOe_L信号を返す。
(IOBus Slave Ready Outpu
t Enable)DefaultDriverLog
ic>Slave … b(Slavename)Rd
yOeReqを出力したマスタに対し、デフォルトドラ
イバーロジックがドライブを許す場合b(Slaven
ame)RdyOe_L信号をそのマスタに対して返
す。
oop Wait) :SBB>NextMaster
… BバスインターフェースがBバスに接続された他
のデバイスに対し、キャッシュのスヌーピング実行中で
あることを示す。Bバスに接続されたデバイスはこの信
号がアサートされている間は新たなトランザクションを
発行できない。
saction START) :Master>Sl
ave 3State … BバスマスタがBバストラ
ンザクションをスタートすることを示す信号、Bバスス
レーブは、この信号を監視することにより、Bバストラ
ンザクションのスタートを知ることが出来る。
tion Indicator Input) :Ma
ster>Slave 3State… Bバスマスタ
がBバススレーブに対し、Bバストランザクションが現
在実行中である事を示すためにアサートする。
Burst Write Grant):Master
>Slave,3State… Bバスマスタが、Bバ
スバーストライトのリクエストに対し、バーストライト
実行することを示すためにドライブする。
Burst Write Request) :Sla
ve>Master,3Stete …Bバススレーブ
がBバスマスタに対し、バースとライトを要求する場合
にアサートする。
ransaction Indicater) :Ma
ster>Slave,3State… Bバスマスタ
が、Bバススレーブに対し、現在のトランザクションが
ライトである事を示すためにアサートする。
Byte Enables):DataDriver>
DataReceiver,3State…Bバス上に
データをドライブするエージェントが、各ビットに対応
したbData[31:0]上のバイトレーンが有効で
ある事を示すためにHighにドライブする。本信号の
各ラインとbDataのバイトレーンは表4の対応関係
にある。
nded Burst Request) :Mast
er>Slave,3Sate… Bバスマスタが拡張
バーストを行いたい事を示す。アサート、ネゲートタイ
ミングはbTx_Lと同一。
xtended Burst Acknowledg
e):Slave>Maste,3State… Bバ
ススレーブが拡張バーストを行える事を示す。アサー
ト、ネゲートタイミングはbRdy_Lと同一。
L(IOBus Burst Length) :Ma
ster>Slave,3State…Bバスマスタが
拡張バーストを行う場合のバースト長を示す。アサー
ト、ネゲートタイミングはbTx_Lと同一であり、信
号値とバースト長との対応は表5に示したとおりであ
る。
gine内部のバスである、Bバス(及びGバス)は接
続される機能ブロック数が10以上になるので、InO
ut分離バスですべてのブロックを接続することは、困
難である。DoEngineでは、チップ内双方向バス
を採用する。
スインターフェース2006のブロック図を示す。この
概要は下記の通りである。
プコントローラDoEngine内部において、各画像
データ処理部間のデータ転送を高速に実行するために定
義されたバスである。64ビットのデータバスをもち、
4Gbyte(128byte boundary)の
アドレス空間をサポートする。16ビート(128by
te=64ビットx16)を1ロングバーストとした転
送を基本とし、連続して4ロングバースト(512by
te=16ビートx4)までを可能とする。(シングル
ビートなど16ビート以下の転送はサポートしない) (Gバス信号定義)信号の定義に用いる記号をまず定め
ておく。信号名の直後には、必要に応じて信号の方向が
記述されている。それは次のように定める。 In(Input signal) … バスエージェ
ントに対する入力信号 Out(Output Signal) … バスエー
ジェントからの出力信号 InOut(Bi−Directional Tri−
State signal) … 双方向の信号で、複
数のバスエージェントがドライブする。一度にひとつの
エージェントだけがドライブする。信号をドライブする
各エージェントのイネーブルリクエスト信号をデフォル
トドライバで集中管理し、どのエージェントがドライブ
するかはデフォルトドライバが決定する。どのエージェ
ントもイネーブルリクエストを出さない場合や、複数の
エージェントが同時にイネーブルリクエストを出してい
る場合はデフォルトドライバ信号をドライブする。エー
ジェントは、信号をロウにドライブする場合は、前後1
クロックの間ハイにドライブしなければならない。信号
のアサートはドライブを初めてから1クロック以上経過
してからしか行えない。基本的に信号のリリースはネゲ
ートした次のクロックで行う。
がローアクティブであることを示す。信号の記述のしか
たは、ほぼBバス信号の記述に準ずる。説明は、システ
ム信号、アドレス及びデータ信号、インターフェース制
御信号、アービトレーション信号に分けて行う。また、
バスエージェントとは、バスに接続されるバスマスタや
バススレーブの総称である。
Clock) … Gバス上のすべてのトランザクショ
ンについてタイミングを提供し、すべてのデバイスに対
して入力となる。
… Gバス上のすべてのデバイスをリセットする。す
べての内部レジスタはクリアーされ、すべての出力信号
はネゲートされる。
[31:7],InOut,(G−Bus Addre
ss) :Master>Slave … Gバス上の
データ転送はすべて128byte(16ビート)単位
で行われるため、gAddr[31]〜gAddr
[7]の25ビットで4Gbyteのアドレス空間をサ
ポートする。 drive:gTs_Lと同時にマスターがドライブ assert:ドライブした次のクロック negate:gAack_Lのアサートを確認したク
ロック。
eq(G−Bus AddressOutPut En
able Request):Master>Defa
ultDriverLogic … 双方向Gバスを実
現するための、デフォルトドライバロジックへの出力信
号。バスマスタがアドレスバスをドライブするための要
求信号。
_L (G−Bus Address OutPut
Enablet)DefaultDriveLogic
>Master … g(Mastername)Ad
drOeReqを出力したバスマスタに対し、デフォル
トドライバロジックがアドレスバスのドライブを許可す
ることを示す信号。
(G−Bus Data) :DataDriver>
DataReceiver… 64ビットデータバス
で、ライト時はマスタがドライブ、リード時はスレーブ
がドライブ。
だし、gSlvBsy_Lがアサートされている時はネ
ゲートされるまで待ってドライブ。 assert:ドライブした次のクロック。 change:gAack_Lのアサートを確認したク
ロック、その後は毎クロック。 negate:転送終了時、またはgTrStp_Lに
よる転送停止要求を確認した場合は、gAack_Lの
アサートを確認したクロック。
ブ。 assert:スレーブがReadyであればドライブ
した次のクロックで、ReadyでなければReady
になるまで待ってアサートされる。 change:gAack_Lのアサートを確認したク
ロック、その後は毎クロック。リードの場合はアサート
したクロックから毎クロック。 negate:転送終了時。 release:ネゲートの1クロック後、またはgT
rStp_Lによる転送停止要求を確認したクロック。
taOeReq(G−Bus Data OutPut
Enable Request):DataDriv
er>DefaultDriverLogic … デ
ータドライバがデータバスをドライブするための要求信
号。
taOe_L (G−Bus Data OutPut
Enablet)DefaultDriverLog
ic>DataDriver … g(DataDri
vername)DataOeReqを出力したデータ
ドライバに対し、デフォルトドライバロジックがデータ
バスのドライブを許可することを示す信号。
(InOut G−Bus Transaction
Sart):Master>Slave … マスター
により1クロックの間Lowにアサートされ、転送の開
始(アドレスフェーズ)をあらわす。マスターはgTs
_Lと共に、gAddr,gRdNotWr,gBst
Cntをドライブし、転送の種類、データ量を明確にす
る。マスタは、ライトの場合ここで明確にした転送デー
タ量をウエイトなしで出せることを保証しなければなら
ない。また、リードの場合は明確にした転送データ量を
ウェイトなしで受けることを保証しなければならない。
スレーブは途中でデータ転送ができなくなった場合はg
BsStep_Lにより、次の16ビートの転送をキャ
ンセルすることがある。ただし、16ビートの途中でキ
ャンセルすることはない。 drive:gGnt_Lのアサートを確認したクロッ
クでドライブ。 assert:ドライブした次のクロック。 negate:1クロックアサート後にネゲートされ
る。
q (G−Bus Transaction Star
t OutPut EnableRequest) :
Master>DefaultDriverLogic
… バスマスタがgTs Lをドライブするための要求
信号。
(G−Bus Transaction Start
OutPut Enablet):DefaultD
riverLogic>Master … g(Mas
tername)TsOeReqを出力したバスマスタ
に対し、デフォルトドライバクロックがgTs_Lのド
ライブを許可することを示す信号。
s Address Acknowledge):Sl
ave>Master … スレーブにより1クロック
の間Lowにドライブされる。該当するスレーブが、転
送を認識し、バスが空いていることを確認して、データ
転送がスタートできることをマスターに知らせる。ライ
トの場合、スレーブはマスタから要求された転送データ
量をウェイトなしで受けることを保証しなければならな
い。またリードの場合は、要求された転送データ量をウ
ェイトなしで出せることを保証しなければならない。万
が一、途中でデータ転送ができなくなった場合は、gB
stStp_Lにより、次の16ビートの転送をキャン
セルすることができる。ただし、16ビートの途中でキ
ャンセルすることはできない。 drive:アドレスデコードビット時、gTs_Lの
アサートを確認したクロックでドライブが開始される。
ただし、gSlvBsy_Lがアサートされている時は
ネゲートされるまで待ってドライブされる。また、デー
タバス使用中のため、まだドライブされていなかった場
合は、gTrStp_Lによる転送停止要求を確認した
クロックでドライブ開始される。 assert:スレーブがReadyであればドライブ
した次のクロックで、ReadyでなければReady
になるまで待ってアサートされる。gTrStp_Lに
よる転送停止に対する応答のときには、ドライブした次
のクロックでアサートされる。 negate:ドライブ後にgTrStp_Lがアサー
トされた場合は、gTrStp_Lを確認したクロック
でアサートされる。また、1クロックアサート後にネゲ
ートされる。
eq(G−Bus AddressAcknowled
ge OutPut EnableRequest)
:Slave>DefaultDriverLogi
c … スレーブがgAack_Lをドライブするため
の要求信号。
L(G−Bus AddressAcknowledg
e OutPut Enablet):Default
DriverLogic>Slave … g(Sla
vename)AackOeReqを出力したスレーブ
に対し、デフォルトドライバロジックがgAack_L
のドライブを許可することを示す信号。
−Bus Slave Busy):Slave>Ma
ster … スレーブがドライブし、データバスでデ
ータを転送中であることをあらわす。 drive:アドレスデコードヒット時、gTs_Lの
アサートを確認したクロックでドライブ開始。ただし、
gSlvBsy_Lがアサートされている時はネゲート
されるまで待ってドライブ。 assert:スレーブがReadyであればドライブ
した次のクロックで、ReadyでなければReady
になるまで待ってアサート。 negate:転送終了時にネゲート。 release:ネゲートの1クロック後、またはgT
rStp_Lによる転送停止要求を確認したクロック。
eReq(G−Bus SlaveBusy OutP
ut Enable Request):Slave>
DefaultDriverLogic … スレーブ
がgSlvBsy_Lをドライブするための要求信号 g(Slavename)SlvBsyOe_L (G
−Bus SlaveBusy OutPut Ena
ble)DefaultDriverLogic>Sl
ave … g(Slavename)SlvBsyO
eReqを出力したスレーブに対し、デフォルトドライ
バロジックがgSlvBsy Lのドライブを許可する
ことを示す信号。
Bus Read(High)/Write(Lo
w)) :Master>Slave …マスターによ
りドライブされ、HighでREAD、LOWでWRI
TEをあらわす。ドライブする期間はGAと同じであ
る。 derive:gTs_Lと同時にマスターがドライ
ブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したク
ロック。
rOeReq (G−Bus Read/Write
OutPut EnableReques):Mast
er>DefaultDriverLogic … バ
スマスタがgRdNotWrをドライブするための要求
信号。
rOe_L (G−Bus Read/Write O
utPut Enablet):DefaultDri
verLogic>Master … g(Maste
rname)RdNotWrOeReqを出力したバス
マスタに対し、デフォルトドライバロジックがgRdN
otWrのドライブを許可することを示す信号。
(G−Bus Burst Counter) :Ma
ster>Slave … マスターによりドライブさ
れ、連続して行うバースト転送の数(1〜4)をあらわ
す。信号の値とバースト転送するバイト数との対応は表
6のようになる。 derive:gTs_Lと同時にマスターがドライ
ブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したク
ロック。
OeReq (G−Bus Burst Counte
r OutPut EnableRequest) :
Master>DefaultDriverLogic
… バスマスタがgBstCntをドライブするため
の要求信号。
Oe_L (G−Bus Burst Counter
OutPut Enablet):DefaultD
riverLogic>Master … g(Mas
tername)BstCntOeReqを出力したバ
スマスタに対し、デフォルトドライバロジックがgBs
tCntのドライブを許可することを示す信号。
−Bus Burst Stop):Slave>Ma
ster … スレーブによりドライブされ、連続する
次のバースト転送を受付不可であることをあらわす。1
バースト(16ビート)の転送の15ビート目にアサー
トする。ストップしない場合にはドライブしない。 drive:14ビート目。 assert:15ビート目。 negate:1クロックアサート後 g(Slavename)BstStpOeReq(G
−Bus BurstStop OutPut Ena
ble Request):Slave>Defaul
tDriverLogic … スレーブがgBstS
tp_L上をドライブするための要求信号。
e_L (G−Bus BurstStop OutP
ut Enablet):DefaultDriver
logic>Slave … g(Slavenam
e)BstStpOeReqを出力したスレーブに対
し、デフォルトドライバロジックがgBstStp_L
のドライブを許可することを示す信号。
(G−Bus Request) :Master>A
rbiter … マスターによりドライブされ、アー
ビタに対してバスを要求する。各マスターデバイスごと
に専用のgReq_Lを持つ。 assert:データ転送が必要なマスターがアサート negate:gGnt_Lを受ければネゲート g(Mastername)Gnt_L,In, (G
−Bus GNT):Arbiter>Master
… アービタによりドライブされ、バス要求に対して次
のバス権を与える。各マスタデバイスごとに専用のgG
nt_Lを持つ。プライオリティーの高いバスマスタか
ら順にバス権を与える。同じプライオリティーのマスタ
に対しては、バス要求のあった順番にバス権を与える。 assert:他のマスターにgGnt_Lを与えてい
ない時、または次のクロックで他のマスタに与えていた
gGnt_Lをネゲートする時に、アービトレーション
によって選ばれたマスタに対してアサートする。 negate:gAack_Lのアサートを確認したク
ロック gTrStp_L,In, (G−Bus Trans
uaction Stop) :Arbiter>Ma
ster,Slave… アービタによりドライブさ
れ、gGnt_Lによりすでにアドレスフェーズを開始
されたトランザクションを中止する。ただ、すでにgA
ack_Lによりデータフェーズを開始してしまったト
ランザクションについては中止できない。また、この信
号はgAack_Lによりマスクがかけられており、g
Aack_Lがアサートされた時には、たとえアサート
していてもネゲートされ出力される。 assert:すでにアドレスフェーズを開始したトラ
ンザクションよりも高いプライオリティのマスタからバ
ス要求がきた時。 negate:gAack_Lのアサートを確認したク
ロック (Gバスライトサイクル)Gバスのライトサイクルは次
のようになる。 マスタがバス要求、gReq_Lアサート。 アービタが許可、gGnt_Lアサート。gReq_
Lネゲート。 gGnt_Lを受けて、マスタはgTs_L,gAd
dr,gRdNotWr,gBstCnt,をドライ
ブ。ライト動作の場合、gSlvBsy_Lがアサート
されていなければ、同時にgDataもドライブする。
gSlvBsy_Lがドライブされていれば、gSlv
Bsy_Lがフリーになるのを待ってドライブする。 スレーブはgTs_Lがアサートされている時にアド
レスをデコードし、ヒットすれば自分に対する転送であ
ることを認識する。この時gSlvBsy_Lが他のス
レーブによりアサートされていなければ、gSlvBs
y_LとgAack_Lのドライブを始める。また、リ
ードの場合はgDataもドライブする。gSlvBs
y_Lが他のスレーブによりアサートされていれば、デ
ータバスは使用中であるということなので、ネゲートさ
れるまで待ってドライブを始める。gSlvBsy_
L,gAack_L,(gData)のドライブ開始
後、スレーブがデータ転送の準備ができれば、それぞれ
の信号をアサートし、データ転送を開始する。 gAack_Lがアサートされた時点でアドレスフェ
ーズは終了し、マスタはgAddr,gRdNotW
r,gBstCntをネゲートする。また、その時点か
らマスタはライトデータを毎クロック切り替え、gBs
tCntで指定されたデータ量だけ転送を行う。マスタ
とスレーブは、それぞれ自分でクロックをカウントし
て、データ転送の終了を知らなければならない。
れたデータ転送量を転送できなくなった場合は、bSt
Stp_Lを15ビート目でアサートすることで、次の
16ビートの転送をキャンセルすることがただし、16
ビートの途中でキャンセルすることはできない。
_Lがアサートされれば、次のクロックでデータの転送
を終了させなければならない。
(CIU)>キャッシュインバリデーションユニット
(以下CIU)2005は、Bバスからメモリへのライ
トトランザクションを監視し、これが起こった場合は、
メモリへの書込が終了する前に、CPUシェルのキャッ
シュインバリデーションインターフェースを用い、CP
Uシェルに内蔵されたキャッシュの無効化を行う。
する。 ・SnoopADDR[31:5](Cache In
validationAddress) ・DCINV(Dcache(データキャッシュ)In
validationStrobe) ・ICINV(Icache(インストラクションキャ
ッシュ)Invalidation Strobe) キャッシュの無効化は最大3クロックで行われる、Bバ
スからメモリへのライトは3クロックで終了することは
ないので、キャッシュインバリデーションユニット20
05は、CPUシェル401から出力されるStop_
L信号を用いて無効化終了のハンドシェイクを行うこと
はしない。但し、将来の変更に備え、Bバス上にはbS
noopWaitをStop_Lと同一サイクルだけド
ライブする。
は、Bバスからのライトが起こった場合は、安全のため
にIcacheもインバリデーションしている、もし、
OSでセルフモディファイングコードを禁止し、インス
トラクションとして使われる可能性のあるデータのロー
ディング時に、意図的にインストラクションキャッシュ
のインバリデーションを行うなら、Icacheのイン
バリデーションはいらない。この場合は若干のパフォー
マンスアップが望める。
リマップを示す。図23は、左から順に、仮想メモリマ
ップ、物理メモリマップ、Gバスのアドレス空間でのメ
モリマップ、Bバスのアドレス空間でのメモリマップで
ある。また、図24は、レジスタ等を含む図23におけ
る斜線部の512メガバイトを示すマップである。
0をベースにしている。プロセッサコアの物理アドレス
空間は32ビットアドレッシングにより4Gバイトあ
る。仮想空間も同様に32ビットアドレッシングを行な
う。ユーザープロセスの最大サイズは2Gバイトであ
る。アドレスマッピングはカーネルモードとユーザーモ
ードで異なる。図はMMUを使用しない場合のメモリマ
ップである。
ーザーモードの仮想アドレッシングでは2Gバイトのユ
ーザ仮想アドレス空間(kuseg)が有効となる。こ
のユーザーセグメントのアドレスは0x0000000
0から始まり、すべての有効なアクセスは0にクリアさ
れたmsbを持つ。ユーザーモードにおいてmsbをセ
ットしたアドレスの参照はアドレスエラー例外処理を引
き起こす。TLBはkusegへのすべての参照をユー
ザーモードとカーネルモードで同様にマッピングする。
また、キャッシャブルである。kusegは通常ユーザ
ーコードやデータを保持するために使用される。
ーネルモードの仮想アドレス空間には4つのアドレスセ
グメントを持っている。 ・kuseg 仮想アドレスの0x00000000か
ら2Gバイト。ページと単位としたキャッシングとマッ
ピングが可能。このセグメントはカーネルメモリアクセ
スとユーザーメモリアクセスでオーバーラップしてい
る。 ・kseg0 仮想アドレスの0x80000000か
ら512Mバイト。物理メモリの最初の512Mバイト
にダイレクトにマップされる。参照はキャッシュされる
が、アドレス変換にはTLBは使われない。kseg0
は通常カーネルの実行コードやカーネルデータのために
使用される。 ・kseg1 仮想アドレスの0xA0000000か
ら512Mバイト。物理メモリの最初の512Mバイト
にダイレタトにマップされる。参照はキャッシュされ
ず、アドレス変換にはTLBは使われない。kseg1
は通常OSによって、I/Oレジスタ、ROMコード、
ディスクバッファのために使用される。 ・kseg2 仮想アドレスの0xC0000000か
ら1Gバイト。kusegと同様、TLBにより仮想ア
ドレスから物理アドレスにマップされる。キャッシング
は自由。OSは通常kseg2をスタックやコンテキス
トスイッチによるリマップが必要なプロセス毎のデータ
のために使用する。
(a),図24(a)))仮想アドレス空間は4Gバイ
トあり、システム上のすべてのメモリ、I/Oがアクセ
ス可能である。kusegにはSYSTEM MEMO
RY(1GB)が存在する。
存在する。これは、例外処理のベクタをプログラミング
したい場合にインプリメントし、例外ベクタベースアド
レスを0x80000000に設定する。このアドレス
は物理アドレス空間の0x00000000にマッピン
グされる。
が存在し、ブートROM(16MB),SBB内部レジ
スタとMC内部レジスタ(16MB),IOBusI/
O1(16MB:Gバスアービタ内部レジスタ、Bバス
アービタ内部レジスタ、PMU内部レジスタなどのプリ
ミティブなBバスレジスタ),IOBusI/O2(1
6MB),IOBusMEM(16MB),GbusM
EM(32MB),FONT ROM(240MB)、
FONT ROMorRAM(16MB)が含まれる。
B),PCI MEM(512MB)が存在する。
ドレス空間の最初の512Mバイトにマッピングされる
ため、kseg0,kseg1とkusegの最初の5
12Mバイトはすべて同じ物理アドレス空間を参照して
いることになる。
(b),図24(b)))物理アドレス空間も仮想アド
レス空間と同様4Gバイトあり、システム上のすべての
メモリ、I/Oがアクセス可能である。
TEM MEMORYについては仮想アドレスメモリマ
ップと同一である。
ドレス空間の最初の512Mバイトにマッピングされる
ので、ROM,I/O,Regは0x00000000
からの空間に存在している。
24(c)))Gバスアドレス空間は4Gバイトあり、
SYSTEM MEMORY,GBusMEM,FON
Tのみがアクセス可能である。
24(d)))Bバスアドレス空間は4Gバイトあり、
PCI I/O,PCI MEM,SYSTEMMEM
ORY,IOBusI/O2,IOBusMEM,FO
NTのみがアクセス可能である。
スタのため、0x1C000000から0x20000
000までの空間はPCIからプロテクトがかけられて
おり、PCIからアクセスできない。
003は、SCバス,Gバス,Bバス,MCバス間のデ
ータ転送を行なうために、マスターとなるバスからスレ
ーブとなるバスへ、SBB402を経由してアドレス信
号を送るためのものである。SBB402を経由する転
送において、マスターとなり得るバスは、SCバス,G
バス,Bバスであり、スレーブとなり得るバスはBバ
ス,MCバスである。MCバスに対してはSCバス,G
バス,Bバス,のいずれかがマスターとなり、Bバスへ
はSCバスのみがマスターとなってアドレス信号を送
る。
ス−MCバス間の転送は同時に行なうことができる。
ロック図を示す。スイッチシーケンサ2003aによ
り、スイッチ2003bを切り替えてスレーブをBバス
とMCバスとで切り換え、スイッチ2003cを切り替
えてマスタをSCバス,Gバス,Bバスで切り換える。
この構成により、MCバスに対してはSCバス,Gバ
ス,Bバス,のいずれかがマスターとなり、Bバスへは
SCバスのみがマスターとなり、また、SCバス−Bバ
ス間の転送と、Gバス−MCバス間の転送は同時に行な
うことができる。
バス,Gバス,Bバス,MCバス間のデータ転送を行な
う際に,SBB内でデータの流れを切り替えるものであ
る。ライト時はマスターからスレーブ、リード時はスレ
ーブからマスターへデータが送られる。
ク図を示す。この構成において、セレクタA−1〜A−
3及びB−1,B−2を表7のように切り替えること
で、SCバス,Gバス,Bバスのいずれかをマスタと
し、Bバス,MCバスのいずれかをスレーブとして、書
き込みあるいは読み出しを行うように制御できる。
スイッチシーケンサ2003aは、各スイッチを切り替
えるにあたって、SBB外部からの以下の3種類の接続
要求間のアービトレーションを行う。 1.CPU 2.Gバスバスマスタ 3.Bバスバスマスタ このアービトレーションは、現在のバススイッチ接続状
況、及び、あらかじめ設定された優先順位により決定さ
れ、その結果アドレススイッチ、データスイッチの接続
が切り替えられる。
2にタイミング図を示す。図27はGバスからの書き込
み/読み出しサイクルのタイミング図、図28はGバス
のバースト停止サイクルのタイミング図、図29〜図3
2は、Gバスのトランザクション停止サイクルのタイミ
ング図である。
ク図である。
oEngine内部汎用IOバスであるBバスと、チッ
プ外部IOバスであるPCIバスの間をインターフェー
スするブロックである。入力ピン設定により、リセット
時にPCIバスコンフィギュレーション発行可能な、ホ
ストブリッジ構成と、PCIバスコンフィギュレーショ
ンは発行しないターゲット構成とを切り替えることがで
きる。
ントローラ3301は、PCIバスシグナルインターフ
ェース3302を介してPCIバスマスタからDoEn
gine内部のリソースにアクセス要求があった場合
に、Bバスマスタとしてこのアクセス要求をBバス内部
にブリッジする。
01は、PCIバス上でマッピングされるメモリからD
oEngineMemoryへのDMA転送を行う事が
出来る。この際、プログラマが意図したBバスDMA
と、GバスDMAのアクセスの順番を守って動作させる
ために、転送先アドレス(bPciAddr[31:
0])と、PCIマスターコントローラ3301のID
信号(bPciID)を、Bバスとアービトレーション
シーケンサに対して、バスリクエストと同時に発行す
る。
グラント(bPciBGnt_L)を受け取り、バスを
使用しデータ転送が終了した時点で、ID信号(bPc
iID)のアサートを取りやめる。
ット,PCI2.1準拠とする。
図である。
ビトレーション方式であり、各バスマスタに対して専用
のリクエスト信号(g(mastername)Req
_L)とグラント信号(g(mastername)G
nt_L)を持つ。図34は、masternameは
M1〜M4となっている。Busアービタ406は、G
バス上のバスマスタを4つまでサポートしており、以下
のような特徴を持つ。 ・アービタ内部のレジスタ3401aの設定によりアー
ビタをプログラミングすることが出来る。レジスタ設定
はBバスより行なう。 ・すべてのバスマスタを同じ優先権として、公平にバス
権を与える公平アービトレーションモードと、いずれか
ひとつのバスマスタの優先権を上げ、優先的にバスを使
用させる優先アービトレーションモードがある。どのバ
スマスタに優先権を与えるかはレジスタ3401bの設
定により決定される。 ・優先バスマスタが連続してバスを使用することができ
る回数を設定することが可能。 ・すでにアドレスフェーズを開始したが、データフェー
ズをまだ開始していないトランザクションについて、そ
のトランザクションをストップするためのトランザクシ
ョンストップサイクルをサポート。 ・複数のバスマスタにおける順序処理のプログラミング
ができる(後述)。プログラムされた順序は、レジスタ
テーブル3401aに格納される。 ・GバスマスタとBバスマスタが同一メモリアドレスに
順次書き込みを発行した場合に、プログラマの意図した
アクセス順序を維持するための機構として、同期ユニッ
トからのマスタID信号、ストップ信号に基づき、特定
のマスタに対し、バス使用許可を与えることを保留する
機構を持つ。
バスを介してCPU401から行われる。
アービタの中核となるアービトレーションシーケンサ3
402a,bは、1つの優先マスタとその他の4つの非
優先マスタの間で5つのマスタによるアービトレーショ
ンを行なう。4つのバスマスタからのリクエスト信号と
グラント信号を、リクエストディスパッチ回路3403
とグラントディスパッチ回路3404によって4つの非
優先マスタに割り付けることにより、公平アービトレー
ションモードが実現される。また、4つのバスマスタの
うちのひとつを、高優先アービトレーションシーケンサ
3402aの優先マスタに割り付けることで、優先アー
ビトレーションモードとして動作する。これらの割り付
けは、レジスタ3401a,bの設定にしたがって行わ
れる。これにより、優先バスマスタは、他のマスタより
高い確率でバスの使用権を取得することが出来る。
え、高優先シーケンサ3402aに割り当てられたマス
タは、連続してバスを使用する事が出来、連続して使用
出来る回数をプログラマブルなレジスタにより可変する
事ができる。これは、バスの占有率を調整出来、ある特
定のマスタにより多くバスを使用させる様に出来ること
を意味する。
ードでは、すべてのバスマスタは同じ優先順位にあり、
バス権を与えられる機会は公平である。バスがフリーの
時は、一番最初にリクエストを出したバスマスタがバス
権を得ることができる。また、複数のバスマスタが同時
にリクエストを出した場合は、あらかじめ決められた順
序にしたがって順次バス権が与えられる(ラウンドロビ
ン方式)。例えば、M1からM4までのすべてのバスマ
スタが同じクロックでリクエストを出した場合は、M1
→M2→M3→M4といった順序でバス権が与えられ
る。M4のトランザクションの終了時に再びすべてのバ
スマスタがリクエストを出している場合は、M1→M2
→M3→M4→M1→M2…というように、同様の順序
でバス権を与えていく。一部のバスマスタがリクエスト
を出している場合は、M4からM1へラウンドラップす
るとして、最後にバスを使用したマスタにもっとも近い
大きい番号を持ったマスタへグラントを与える。
にリクエストを出しているすべてのバスマスタにバス権
を与えた後でないと再びバス権を得ることができない。
は、ひとつのバスマスタ(レジスタ3401bに登録さ
れたバスマスタ)が他のバスマスタよりも高い優先権を
持つ優先バスマスタになり、他のバスマスタに比べ優先
的にバス権が与えられる。優先バスマスタ以外のバスマ
スタの優先順位はすべて同じである。
り、また優先バスマスタが連続したリタエストを行う場
合、優先バスマスタと他の非優先バスマスタは交互にバ
ス権を得る。
ス権が移ると、他にリクエストを出しているすべてのバ
スマスタにバス権を与えた後でないと、その非優先バス
マスタは再びバス権を得ることができない。
ル)優先アービトレーションモードにおいて、優先バス
マスタがリクエストを出した時、すでに他のバスマスタ
がアドレスフェーズを開始していても、データフェーズ
をまだ開始していなければ、そのトランザクションをス
トップし、優先バスマスタがバス権を得ることができ
る。ただし、その直前に優先バスマスタがバス権を持っ
ていた場合は、連続したバス権を得ることができる回数
を超えることはできない。
した時、中止されたバスマスタがリクエストを出してい
れば、優先してバス権が与えられる。
スタの切り替えを行なうには、レジスタ3401bを書
き換えればよい。優先バスマスタを選択するレジスタが
書き換えられると、その時に実行中のトランザクション
の終了を待って、優先バスマスタが切り替えられる。ア
ービタのステートはアイドル状態にもどり、その時点で
リクエストを出していたバスマスタは、その時同時にリ
クエストを出したものとして、あらためてアービトレー
ションが行われる。
払う必要がある。優先させるべきバスマスタのDMAが
終了しないうちに、異なったバスマスタに優先バスマス
タを切り替えてしまうと、最初の優先バスマスタのDM
Aの優先度が下がってしまう。もしも最初の優先バスマ
スタの優先度を下げたくないのであれば、DMAが終了
したのを確認してから優先バスマスタの切り替えを行な
う必要がある。
ト時のみでなく、システム稼働中も動的に行う必要のあ
るソフトウェアでは、優先バスマスタの切り替えは、い
ったんGバス上に新たなDMAリクエストが発生しない
よう、すべてのバスマスタ及びDMAコントローラに対
する設定を中止し、その後、Gバスアービタ406内の
レジスタに適切な値をセットし、さらに、Gバスアービ
タ406内のステータスレジスタをチェックし、バスマ
スタの優先権が切り替わったのを確認した上で新たなG
バス上へのアクセス及びDMAの起動を行うべきであ
る。
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは違反させてしまう可能性があり、十
分な考慮の上行われなければならない。
400内におけるGバス404を中心とする、Gバス上
のバスマスタによるDMAに係るブロック図である。
が必要な場合、例えば、メモリ3501上のデータに対
して、バスマスタ1により処理Aを行った後、バスマス
タ2により処理Bを行い、その処理後のデータをバスマ
スタ4に送るといった一連の処理を考える。
PU401により実行されるプログラムにより、Bバス
405を介して、バスアービタ406内のレジスタテー
ブル3401aに、バスマスタがバスを使用する順序
と、バス権の付与の開始条件と、終了条件がセットされ
る。この例では、 バスマスタ : 開始条件 :終了条件 1.バスマスタ1:gM2BufEmpty:gM1BufReady 2.バスマスタ2:gM1BufReady:gM1BufEmpty 3.バスマスタ4:gM2BufReady:gM2BufEmpty というようにセットする。すなわち、Gバスアービタ4
06は、それぞれのバスマスタから、開始条件として設
定された信号を受けるとそのバスマスタにバス使用権を
与え、終了条件として設定された信号を受けるとバス使
用権を奪う。
MAをセットする。それによって、それぞれのマスタは
Gバスアービタ404に対してリクエスト(g(mas
tername)Req_L)を発行する。Gバスアー
ビタ404はレジスタテーブル3401aに登録された
順序に従ってバスマスタ1にバス権を与える(gM1G
nt_L)。バスマスタ1はメモリ3501からある単
位のデータをリードし、処理Aを行って、バスマスタ1
内部のバッファにデータをライトする。バスマスタ1は
ひとつの単位の処理が終了し、バッファの準備ができた
ことをgM1BufReady信号によりアービタ40
6に対して通知する。
ーブル3401aに登録された、バスマスタがバス権を
与える条件とバス権を奪う条件にしたがって、バス権を
バスマスタ1から奪いバスマスタ2に与える。バスマス
タ2はバスマスタ1のバッファのデータをリードし、処
理Bを行って、バスマスタ2内部のバッファにデータを
格納する。この間にバスマスタ1のバッファが空になる
とgM1BufEmptyがアサートされ、アービタ4
06はバスマスタ2にバス権を与えていたのを取りやめ
る。バスマスタ2は処理Bを行って、バッファの準備が
できるとgM2BufReady信号により通知する。
401aの内容にしたがって、今度はバスマスタ4にバ
ス権を与える。バスマスタ4はバスマスタ2のバッファ
からデータをリードする。バスマスタ2のバッファが空
になると、gM2BufEmptyによってアービタ4
06に通知し、アービタ406はそれを受け、レジスタ
3401aの内容に従って再びバスマスタ1にバス権を
与え、次のデータの処理を始める。
Aがすべて終了すると、それぞれのバスマスタはプロセ
ッサに割り込みによって通知する。ソフトウェアはすべ
てのバスマスタからの終了通知がそろったとき、一連の
処理が終了したことを知る。
作であり、順次処理に関わるバスマスタ以外のバスマス
タは、バスを使用することができない。この順次処理中
でも、順次処理に関係のないバスマスタがバスを使用す
ることを可能にするために優先順次モードが用意されて
いる。これらのモードの切り替えではアービタ406内
部のレジスタにプログラミングすることによって行な
う。優先順次モードでは、順次処理を行なうバスマスタ
は優先的にバスを使用できるが、順次処理に関わらない
バスマスタであればバスを使用することが許される。順
次処理を行なうバスマスタと関わらないバスマスタの間
のアービトレーションは、前述した優先アービトレーシ
ョンモードと同等である。当然、順次処理に係わるバス
マスタで、バス権を与えられる条件が満足されずに自分
の順番が回ってきていないバスマスタにはバス権は与え
られない。
号stopSpcがアサートされた場合は、Gバスマス
タのひとつであるスキャナコントローラ/プリンタコン
トローラはアービトレーションの対象から除外され、た
とえリクエストをアサートしていてもバス使用権を与え
られることはない。アービトレーションはこのマスタを
除外したマスタ間で行われる。詳細な説明はBバスアー
ビタの節で行なう。
9において、Gバスアービトレーションのタイミングを
説明する。図36は、連続してバスを使用する回数が、
バスマスタ1〜4のすべてについて1に設定されている
場合の公平アービトレーションモード(フェアモード)
の例である。バスマスタ1による2回目の(タイミング
4から出されている)バス要求は、バス要求を出してい
る他のバスマスタがすべて1回ずつ処理されるまで待た
されている。
が、バスマスタ1についてのみ2であり、他のバスマス
タは1に設定されている場合の公平アービトレーション
モードの例である。バスマスタ1が出している2回目の
(タイミング4から出されている)バス要求は1回目の
要求に続いて直ちに許可され、他のバスマスタはその処
理がすむまで待たされている。
それぞれ1ずつであり、バスマスタ1が優先バスマスタ
と設定されている場合の優先アービトレーションモード
の例である。優先バスマスタと非優先バスマスタとは交
互にバス使用権が認められるために、バスマスタ1の2
回目のバス要求はバスマスタ2のバスの使用後に認めら
れており、バスマスタ4のバス要求は、バスマスタ1の
2回目のバスの使用後に認められている。また、バスマ
スタ2の2回目のバス要求は、バス要求を出している他
のすべてのバスマスタ、図38ではバスマスタ1及びバ
スマスタ4のバス使用が終了した後で認められている。
より、バスマスタ4のバス要求が許可されているにもか
かわらず中断された例である。この場合、バスマスタ1
のバス使用が終了すると、バスマスタ2のバス要求に優
先してバスマスタ4のバス要求が認められる。
e内部のIO汎用バスであるBバス405のバス使用要
求を受け付け、調停の後、使用許可を選択された一つの
マスタに対して与え、同時に2つ以上のマスタがバスア
クセスを行う事を禁止する。
イオリティを持ち、それぞれのプライオリティに複数の
マスタをプログラマブルに割り当てられる構成になって
いる。割り当ては、それぞれ最大で、最高のプライオリ
ティに3マスタ、中間に7マスタ、最低レベルに3マス
タとなる。
一メモリアドレスに順次書き込みを発行した場合に、プ
ロブラマの意図したアクセス順序を維持するための機構
として、同期ユニットからの、マスタID信号、ストッ
プ信号に基づき、特定のマスタに対し、バス使用許可を
与えることを保留する機構を持つ。
アービタは3つのアービトレーションシーケンサ400
2,4003,4004から構成される。それぞれ、高
優先権、中優先権、低優先権を持ち、それぞれのシーケ
ンサ内に、3,7,3本のバスマスタ用アービトレーシ
ョンシーケンサが内蔵される。Bバス上のすべてのバス
マスタになる可能性のあるユニットからのリクエスト信
号とそれらへのグラント信号を、リクエストセレクタと
グラントセレクタによって、これらの3つのシーケンサ
ユニットに分配する。この分配は、BBusインタフェ
ース4005内のソフトウェアプログラマブルなレジス
タ4005aにより、複数の組み合わせのなかから、一
意の組み合わせを選択することが出来る。
を中優先アービトレーションシーケンサ4003に接続
することにより、7つのマスタ間で公平なアービトレー
ションが実現される。また、バスマスタのうちのいくつ
かを、高優先アービトレーションシーケンサ4002に
割り付けることで、これらのマスタは他のマスタより、
より高い確率でバスの使用権を取得することが出来る。
さらに、いくつかのリクエストを低優先シーケンサ40
04に接続することで、これらのバスの使用率を低く抑
える事が出来る。さらに、バスの取得機会確率の調整に
加え、高優先シーケンサ4002に割り当てられたマス
タは、連続してバスを使用する事ができ、連続して使用
出来る回数をプログラマブルなレジスタ4005aによ
り可変する事ができる。これは、バスの占有率を調整で
き、ある特定のマスタにより多くの時間バスを使用させ
る様に出来る事を意味する。
先シーケンサ4003を例にとり、公平アービトレーシ
ョンの実現方法を説明する。一つのシーケンサに接続さ
れたすべてのバスマスタは同じ優先順位にあり、バス権
を与えられる機会は公平である。バスがフリーの時は、
一番最初にリクエストを出したバスマスタがバス権を得
ることができる(ファーストカムファーストサーブ)。
また、複数のバスマスタが同時にリクエストを出した場
合は、あらかじめ決められた順序にしたがって順次バス
権が与えられる(同時リクエスト発行時ラウンドロビ
ン)。例えば、M1からM7までのすべてのバスマスタ
が同じクロックでリクエストを出した場合は、M1→M
2→M3→M4→M5→M6→M7といった順序でバス
権が与えられる。M7のトランザクションの終了時に再
びすべてのバスマスタがリクエストを出している場合
は、M1→M2→M3→M4→M5→M6→M7→M1
→M2というように、同様の順序でバス権を与えてい
く。一部のバスマスタがリクエストを出している場合
は、M7からM1へラウンドラップするとして、最後に
バスを使用したマスタにもっとも近い大きい番号を持っ
たマスタへグラントを与える。
ーフェースは、高優先、中優先、低優先の3つのアービ
トレーションシーケンサが存在する。優先順位をつけた
アービトレーションは、複数のバスリクエストを選択的
に、高優先、低優先、のアービタに割り振ることにより
実現される。
当て、残りを中優先に割り当てることにより、ひとつの
バスマスタが他のバスマスタよりも高い優先権を持つ優
先バスマスタになり、他のバスマスタに比べ優先的にバ
ス権が与えられる。同じ優先権のアービトレーションシ
ーケンサに割り当てられたバスマスタの優先順位はすべ
て同じである。
り、また優先バスマスタが連続してリクエストを行う場
合、優先バスマスタと他のバスマスタは交互にバス権を
得る。M3が優先マスタでM1,M2,M3,M4がリ
クエストを出し続けた場合M3→M1→M3→M2→M
3→M4→M3→M1の順でバス使用権を与える。
プログラマブルなレジスタにあらかじめ設定された回数
だけ連続したバス権を得ることができる。連続したバス
を使用出来る回数は最大で4回である。
バスマスタにバス権が移ると、そのバスマスタは、他に
リクエストを出しているすべてのバスマスタにバス権を
与えた後でないと再びバス権を得ることができない。ひ
とつのバスマスタが連続してリクエストを行う場合、他
にリクエストを行っているバスマスタがいなければ、連
続してバス権を得ることができるが、他のバスマスタが
リクエストを行っていれば、そのバスマスタはあらかじ
め設定された回数だけ連続してバス権を得ることができ
る。一度バス権が他のバスマスタに移ると、他にリクエ
ストを出しているすべてのバスマスタにバス権を与えた
後でないと再びバス権を得ることができない。
04には最大3本のリクエストを割り当てる事が出来
る。低優先シーケンサ4004に割り当てられたマスタ
へは、中優先、高優先シーケンサに割り当てられた、す
べてのマスタのリクエストがなくならないと、バスの使
用権が与えられない。このシーケンサへのバスマスタの
割り当ては十分な注意を持って行われなければならな
い。
スタの切り替えを行なうには、アービタ内のレジスタを
書き換えればよい。優先バスマスタを選択するレジスタ
が書き換えられると、その時に実行中のトランザクショ
ンの終了を待って、優先バスマスタが切り替えられる。
アービタのステートはアイドル状態にもどり、その時点
でリクエストを出していたバスマスタは、その時同時に
リクエストを出したものとして、あらためてアービトレ
ーションが行われる。
優先させるべきバスマスタのDMAが終了しないうち
に、異なったバスマスタに優先バスマスタを切り替えて
しまうと、最初の優先バスマスタのDMAの優先度が下
がってしまう。もしも最初の優先バスマスタの優先度を
下げたくないのであれば、DMAが終了したのを確認し
てから優先バスマスタの切り替えを行なう必要がある。
ト時のみでなく、システム稼働中も動的に行なう必要の
あるソフトウェアでは、優先バスマスタの切り替えは、
いったんBバス上に新たなDMAリクエストが発生しな
いよう、すべてのバスマスタ及びDMAコントローラに
対する設定を中止し、その後、Bバスアービタ407内
のレジスタに適切な値をセットし、さらに、Bバスアー
ビタ内のステータスレジスタをチェックし、バスマスタ
の優先権が切り替わったのを確認した上で新たなBバス
上へのアクセス及びDMAの起動を行うべきである。
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは、違反させてしまう可能性があり、
十分な考慮の上行われなければならない。
407はアクセス順序制御機構を含む。アクセス順序制
御機構は、同期ユニット4001と、Bバスアービタ4
07,Gバスアービタ406内に組み込まれたバス使用
権発行抑制機構によって実現される。Bバスアービタ4
07内に組み込まれたバス使用権発行抑制機構は、Gバ
スアービタのそれと同様に動作する。つまり、stop
Pci信号が入力された場合は、Pciバスマスタから
のバスリクエストが発行され、アービトレーションの結
果、このマスタにバスの使用権を与えることが可能な状
態でも、バスの使用権発行は行わず、他のマスタへバス
使用権をあたえる。具体的には、stopPci信号が
入力された場合は、直ちにbPciReq Lをマスク
することにこれを行う。
エストおよび、ストップ信号の場合もまったく同様に動
作する。図41に同期ユニット4001のブロック図を
示す。同期ユニット内には複数のDMAマスタ間すべて
の組み合わせに関して、それぞれコンペアユニット41
01〜4103が接続される、DoEngineでは、
Gbus上のDMAマスタはスキャナコントローラ/プ
リンタコントローラのみ存在する。Bバス上には、DM
APCIユニット、LANユニットの二つが存在する。
SBB内のBバスインターフェースはBバス上のバスマ
スタであるが、メモリには直接アクセスしないので、同
期ユニット4001にはIDと転送先アドレスを出力し
ない。
ニット(ComparationUnit 1)を以下
に示す。他のコンペアユニットも同様の構成を有する。
DMAブロックもしくは、スキャナコントローラ/プリ
ンタコントローラから、同期ユニット4001に対し、
DMAライトがプログラミングされた時点で、転送先の
アドレスとそのDMAブロック固有のリクエスト信号が
通知される。
からリクエストが出力された時点で、アドレスを内部に
持つタイマによる現在時刻とともに記憶する、次に他の
DMAブロックから、DMAライトに関するアドレスと
リクエストが入力された時点で、コンペアユニットは両
アドレスを比較する。一致した場合にはさらに、それぞ
れのレジスタに格納された時間を比較し、時間的に後か
らDMAライトの要求を出してきたDMAブロックが接
続されたバスのバスアービタに対し、このマスタに対す
るバス使用強化を与えないようにする。これは、sto
p(ID)という信号により各バスのバスアービタに通
知される。
より通知されたマスタに対しては、アービトレーション
によるバス使用権の割り当てを行わない。
バスマスタにより当該メモリアドレスへのDMAライト
が終了すると、先のマスタは、同期ユニットに対するリ
クエストを取り下げる、同期ユニットは、2番目にDM
Aライトの要求を出した、DMAブロックの接続するバ
スのバスアービタに対し、このDMAブロックへの、バ
ス使用権許可禁止信号の発行をとりさげる。そして、後
からDMAライトを行うべきマスタのDMAライトが行
われる。
エストが取り下げられると、タイマーがリセットされ
る。タイマーのカウントアップは再度どちらかのマスタ
からのリクエストが出力された時点で再度行われる。
コントローラ 図43は、スキャナコントローラ/プリンタコントロー
ラ及びその周辺の回路のブロック図である。スキャナ/
プリンタコントローラは、スキャナおよびプリンタを、
GバスまたはBバスにインターフェースするブロックで
ある。以下の3つの機能ブロックから構成される。 1.スキャナコントローラ スキャナとビデオI/Fで接続され、動作制御およびデ
ータ転送制御を行う。Gバス/BバスI/Fユニット4
301AとはIF−バスで接続され、データ転送および
レジスタのリード・ライトが行われる。データ転送はマ
スタ機能を備える。 2.プリンタコントローラ プリンタとビデオI/Fで接続され、動作制御およびデ
ータ転送制御を行う。Gバス/BバスI/Fユニット4
301BとはI/F−バスで接続され、データ転送およ
びレジスタのリード・ライトが行われる。データ転送は
マスタとスレーブの両機能を備える。 3.Gバス/BバスI/Fユニット スキャナコントローラ4302およびプリンタコントロ
ーラ4303をGバスまたはBバスに接続するためのユ
ニットである。スキャナコントローラ4302とプリン
タコントローラ4302にそれぞれ独立して接続され、
GバスとBバスに接続する。 4.CPバス スキャナとプリンタの、画像データおよび水平、垂直同
期のための同期信号を直結するためのバスである。
示す。スキャナコントローラ4302は、ビデオI/F
によってスキャナと接続し、Gバス/BバスI/Fユニ
ット(scc GBI)4301Aにインターフェース
するブロックである。Gバス/BバスI/Fユニット
(scc GBI)4301Aには、sccI/F−バ
スを介してインターフェースされる。大別して以下のブ
ロックから構成される。 1.スキャナデバイスI/F4401 スキャナのビデオI/Fと信号の入出力をおこなう入出
力ポート。 2.スキャナビデオクロックユニット4402 スキャナのビデオクロックで動作するユニット。 3.スキャナ画像データFIFOコントローラ4403 画像データ転送用のFIFOを制御する。 4.スキャナコントローラコントロールレジスタユニッ
ト4404 スキャナコントローラ全体を制御するためのレジスタ。 5.IRQコントローラ4406 スキャナコントローラ(Scc)内部で発生する割込み
信号を制御する。 6.メモリフィルモードコントローラ4405 レジスタに設定された固定データをメモリに対して転送
するモードをコントロールする。スキャナからの画像デ
ータと選択的に切り替えをおこなう。 7.FIFO(FIFO SCC)4407 スキャナからのビデオデータを出力する際に、出力先の
デバイスがビデオデータと非同期の可能性がある場合に
用いられるFIFOである。
種類は、 1.RGB各8ビットのカラー多値データ 2.8ビット白黒多値データ 3.1ビット白黒2値データ などが含まれる。
ブロックの概要を説明する。
45に、スキャナデバイスI/F4401のブロック図
を示す。スキャナデバイスI/Fは、スキャナユニット
のスキャナビデオI/F4501との間で信号を入出力
する入出力ポートである。スキャナビデオI/Fからの
入力ビデオ信号SVideoR[7:0],SVide
oG[7:0],SVideoB[7:0]の各信号
を、スキャナコントローラコントロールレジスタ440
4からのVDInvt信号に応じて、レベル反転するか
どうかを切り替えることが可能である。
概要]図46に、スキャナビデオクロックユニット44
02のブロック図を示す。スキャナビデオクロックユニ
ット4402は、スキャナからのビデオクロックで動作
するブロックである。以下のブロックから構成される。 1.スキャナビデオデータマスク4601 スキャナからの画像データに対してデータマスクを行う
ブロックである。マスクされたデータはレジスタに設定
された値のデータとなる。 2.スキャナビデオ同期コントロールユニット4602 スキャナからのビデオクロック,VSYNC,HSYN
Cの信号から、画像データを取り込むタイミング信号等
を生成するブロックである。画像データの水平方向、垂
直方向のデータ数とライン数を管理する。 3.ビデオデータ幅コンバータ スキャナから入力した画像データを64ビット幅のデー
タにパッキングして変換するブロックである。
47にスキャナビデオデータマスク4601のブロック
図を示す。スキャナビデオデータマスク4601は、ス
キャナから入力する画像データに対してピクセル単位で
マスクを行う。マスクされた画像データはレジスタによ
り設定された値となる(RDMask[7:0],GD
Mask[7:0],BDMask[7:0])。
トの概要)図48にスキャナビデオデータマスク460
2のブロック図を示す。スキャナビデオ同期コントロー
ルユニット4602は、スキャナから入力される画像デ
ータの垂直同期信号(SVSYNC)、水平同期信号
(SHSYNC)、画像データ同期クロック(GTSV
CLK)により、取り込む画像データのイネーブル信号
(IVE)を生成する。また、画像データの主走査方向
の遅延、取り込みピクセル数、副走査方向の遅延、取り
込みライン数を管理する。さらに、設定量の画像データ
取り込みを終了したタイミングでの状態信号(PEND
P)を生成する。
延と取り込みライン数を管理して、画像読み取り有効ラ
インの垂直同期信号(EH)を生成する。ピクセルカウ
ンタ4802は主走査方向の画像取り込み遅延と取り込
み画素数を管理する。ページカウンタ4803は入力す
る画像データをページ単位で管理する。設定されたペー
ジ数分の画像データ入力を終了すると、終了信号(AL
LPEND)を生成する。
03の概要)図49にスキャナビデオデータ幅コンバー
タ4603のブロック図を示す。これは、スキャナから
入力する画像データを64ビット幅にならべるユニット
である。ならべたデータはFIFOに64ビットデータ
で書き込まれる。入力できる画像データのタイプは、R
GB各8ビットのカラー画像データ、多値8ビットの白
黒画像データ、2値1ビットの白黒画像データの3種類
である。スキャナコントローラコントロールレジスタ4
404においてモード設定される。モードとしては、R
GBカラー画像データをメモリ内に24ビットでならべ
るモードと、1バイト付加して32ビットでならべるモ
ードとを備える。3種類の画像データは以下の信号ライ
ンから入力される。 1.RGB各8ビットのカラー画像データ … R
[7:0],G[7:0],B[7:0] 2.多値8ビットの白黒画像データ … R[7:
0] 3.2値1ビットの白黒画像データ … R7 64ビットデータへのならべかたとメモリ上でのならび
かたは以下のとおりである。
(24ビット格納モード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット39−32 第2ピクセルG8ビット→ビット31−24 第2ピクセルB8ビット→ビット23−16 第3ピクセルR8ビット→ビット15−8 第3ピクセルG8ビット→ビット7−0 メモリ上でのならびは、図50の通りである。
(32ビット格納モード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット31−24 第2ピクセルG8ビット→ビット23−16 第2ピクセルB8ビット→ビット15−8 メモリ上でのならびは、図51の通りである。
する。
01により、多値8ビットの白黒画像データを64ビッ
ト幅に変換する際のタイミング図である。スキャナから
の8ビット白黒画像データR[7:0]は、信号VEが
ハイレベルになると取り込まれ、1ピクセルずつ信号L
P0〜LP7に同期して64ビットラッチにラッチされ
る。8画素分揃うと、信号LP64に同期して、ラッチ
された8画素64ビットが信号BW8[63:0]とし
て出力される。
2値白黒画像データを64ビット幅に変換する際の画像
データ入力のタイミング図である。スキャナからの2値
白黒画像データR7(SVIDEOR0)は、信号VE
がハイレベルになると取り込まれ、1ビットずつシフト
レジスタによりシフトされて、64ビット取り込まれる
と。信号SVLATCH64に同期して、信号BW1
[63:0]として出力される。
03により、RGB各8ビット(全24ビット)の画像
データを64ビット幅に変換する際のタイミング図であ
る。また、図57は、RGBパッキングユニット490
3のブロック図である。図において、スキャナビデオデ
ータマスク4601から入力された画像データR[7:
0],G[7:0],B[7:0]は、24ビットデー
タラッチ5701A,Bに入力される。データラッチ
A,Bは、クロックCLKを2分の1に分周した、互い
に逆位相のラッチ信号LP0,LP1に同期してそれぞ
れ入力される24ビットデータをラッチする。データラ
ッチ5701A,Bにラッチされたデータは、48→3
2ビットデータセレクタ5702に入力信号RGBHT
[47:0]として入力され、2ビットの選択信号LP
[3:2]に応じて32ビット信号DATA[31:
0]として出力される。出力の仕方は、選択信号の値に
応じて3通りある。まず第1番目は、入力信号RGBH
T[47:16]を出力信号DATA[31:0]とす
る方法である。第2番目は、入力信号RGBHT[1
5:0]を出力信号DATA[31:16]とし、入力
信号RGBHT[47:32]を出力信号DATA[1
5:0]とする方法である。第3番目は、入力信号RG
BHT[31:0]を出力信号DATA[31:0]と
する方法である。
号に同期させて交互に24ビット画像データをラッチ
し、上記3通りの選択の仕方を順に切り換えることで、
データセレクタ5702からの出力は、24ビット/ピ
クセルのデータを32ビットにまとめたデータとなる。
ただし、上記第3の方法でセレクタ5702のデータが
選択された後は、データセレクタに入力された2つのピ
クセル分のデータは両方とも更新されねばならない。そ
こで、図56に示されている通り、選択信号SELUL
[3:2]は1クロック分遅延される。
ビット幅に一旦変換されたデータは、データラッチ57
40A,Bに交互にラッチされ、データラッチ5704
Bの内容が更新されたタイミング、すなわちラッチ信号
SELUL1がハイレベルになるタイミングで、64ビ
ット幅に変換されたデータとして出力される。
ントローラ4403の概要]図58に、スキャナ画像デ
ータ転送FIFOコントローラ4403のブロック図を
示す。このブロックは、スキャナから入力された画像デ
ータをGバスもしくはBバスを介して転送するためのバ
ッファとしてのFIFO5801と、そのFIFO58
01をコントロールする回路から構成されている。FI
FOとしては、容量512バイト(64ビット×64)
のFIFOを備える。FIFOのデータ出力は、スキャ
ナFIFOライトリードアービタ5802が、FIFO
5801のエンプティフラグ(EF)を監視しながら制
御する。FIFOのデータ入力はスキャナビデオクロッ
クユニット4402からの要求信号(WREQ)により
おこなわれる。
レジスタ4404の概要]図59に、スキャナコントロ
ーラコントロールレジスタ4404のブロック図を示
す。このブロックは、スキャナコントローラ内部を制御
するレジスタを備えたブロックである。内部のレジスタ
は以下のとおりである。 1.スキャナ・コントローラ・パワー・マネージメント
・コントロールレジスタ 2.スキャナコントローラ・コントロールレジスタ 3.スキャナ・コントローラ・割り込み要因ステータス
レジスタ 4.スキャナ・コントローラ・割り込み要因マスクレジ
スタ 5.スキャナ副走査マスクライン数設定レジスタ 6.スキャナ主走査マスクピクセル数設定レジスタ 7.スキャナ副走査ライン数設定レジスタ 8.スキャナ副走査ライン数カウンタ読み出しレジスタ 9.スキャナ副走査ピクセル数設定レジスタ 10.スキャナ主走査ピクセル数カウンタ読み出しレジ
スタ 11.スキャン・ページ数設定レジスタ 12.スキャン・ページ数カウンタ読み出しレジスタ 13.スキャナ・デバイス・コントロール・レジスタ 14.スキャナ・デバイス・ステータス・レジスタ 15.スキャナ・ビデオ・マスクデータ・レジスタ 16.メモリ・フィル・データ・レジスタ [5.IRQコントローラ4406の概要]図60に、
IRQコントローラ4406のブロック図を示す。この
ブロックは、スキャナコントローラ内で発生する割り込
み信号を管理する。割り込み発生要因には次のようなも
のがある。 1.設定されたページ分の画像データを入力終了(AL
LEND) 2.1ページ分の画像データを入力終了(PageEn
d) 3.スキャナからのSPRDY信号の立ち上がり(fa
lse→true)(INSPRDY) 4.スキャナからのSPRDY信号の立ち下がり(tr
ue→false)(INSPRDY) 5.スキャナからのSVSYNC信号の立ち上がり(f
alse→true)(INSVSYNC) 6.スキャナからのSVSYNC信号の立ち下がり(t
rue→false)(INSVSYNC) 7.画像データFIFOのEMPTY信号の立ち上がり
(false→true)(EMPTY) 8.画像データFIFOのEMPTY信号の立ち下がり
(true→false)(EMPTY) 9.画像データFIFOのFULL信号の立ち上がり
(false→true)(FULL) 10.画像データFIFOのFULL信号の立ち下がり
(true→false)(FULL) 11.画像データFIFOにオーバーライトが発生(F
OW) 上記の割り込み要因に対応するフラグ情報(SCIRQ
[31:21])をスキャナコントローラコントロール
レジスタ4406に出力する。スキャナコントローラコ
ントロールレジスタ4406から、各割り込み要因に対
するマスクビット(SCIMask[31:21])と
クリア信号(SCICLRP[31:21])とが入力
される。各割り込み要因の論理和をintSccに出力
する。
405の概要]図61にメモリフィルモードコントロー
ラ4405のブロック図を示す。このブロックは、レジ
スタに設定された固定データをGBIを介してメモリに
転送するモードを制御する。このモード設定はMemf
ill信号によりおこなわれる。固定データの転送モー
ド指定がなされると、sccGBIに出力されるデータ
は、レジスタに設定されたデータ(MFData[3
1:0])が選択される。また、sccGBIにデータ
転送するタイミング信号(sccWrite)はこのブ
ロック内で生成される。
は、Gバス/BバスI/Fユニット4301Aとスキャ
ナコントローラ4302とを接続するローカルなバスで
ある。このバスに含まれる信号には次のようなものであ
る。なお、信号の入出力は、スキャナコントローラから
Gバス/BバスI/Fユニット(GBI)に出力する信
号をOUT,Gバス/BバスI/Fユニット(GBI)
からスキャナコントローラに入力する信号をINで示
す。なお、IF−バスはスキャナコントローラとプリン
タコントローラに対して同一規定とするため、スキャナ
コントローラのサポートしない機能のための信号も記述
する。基本クロックはBバスのBclkを使用する。 ・sccRst0 L :IN この信号により、スキャナコントローラ内部のFIFO
を初期状態に戻す。 ・sccDataOut[63:0] :OUT スキャナコントローラからGバス/BバスI/Fユニッ
ト(GBI)に出力される64ビットのデータバスであ
る。スキャナコントローラがデータ転送動作する場合に
画像データが転送される。 ・sccWrite :OUT スキャナコントローラがデータ転送動作するときの、G
バス/BバスI/Fユニット(GBI)へのライト信号
である。Gバス/BバスI/Fユニットは、sccWr
ite信号がアサートされているBclkの立ち上がり
で、sccDataOut[63:0]を取り込む。s
ccWrite信号をアサートし続けることで、1クロ
ック単位でデータがライトできる。 ・sccWriteEnable :IN スキャナコントローラがデータ転送動作時における、G
バス/BバスI/Fユニット(GBI)へのライト信号
である。Gバス/BバスI/Fユニット(GBI)から
出力される。Bclkの立ち上がりで、sccWrit
eEnable信号がアサートされていれば、次のクロ
ックの立ち上がりで、ライト可能であることを示す。s
ccWrite信号のアサートは、sccWriteE
nable信号を確認して行う。 ・sccRegAddr[31:2] :IN Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタにアクセスするさいのレジ
スタアドレスバスである。sccRegStart L
アサートと同時に有効となり、スキャナコントローラ内
部レジスタへのアクセスであれば、sccRegAck
L信号で応答するまで有効である。 ・sccRegbyteEn[3:0] :IN Gバス/BバスI/Fユニット(GBI)から出力され
るsccRegDataIn[31:0]のバイトイネ
ーブル信号である。sccRegStart Lアサー
トと同時に有効となり、sccRegAck L信号で
応答するまで有効である。この信号で示された有効なバ
イトのみレジスタへの書き込みを行う。内部レジスタか
らの読み出し時は、この信号は無視し、全バイト出力す
る。この信号の各ビットとsccRegDataIn
[31:0]のバイトとの対応は次の通りである。 Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタにアクセスする際のアクセ
ス要求信号である。“Low”でレジスタのアクセス要
求を示す。sccRegAddr[31:2]信号、s
ccRegRdNotWr信号とともにアサートされ、
Bclk1クロック分だけアサートされる。スキャナコ
ントローラが、このアクセスに対するsccRegAc
k Lを返さない限り、次のアクセスのアサートはされ
ない。 ・sccRegDataOut[31:0] :OUT Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタをリードアクセスする場合
の32ビットデータバスである。sccRegAck
L信号がアサートされているときに有効となる。 ・sccRegDataIn[31:0] :IN Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタをライトアクセスする場合
の32ビットデータバスである。sccRegStar
t Lアサートと同時に有効となり、スキャナコントロ
ーラ内部レジスタへのアクセスであれば、sccAck
L信号で応答するまで有効である。 ・sccRegRdNotWr :IN Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタにアクセスするさいのアク
セス方向(リードまたはライト)を示す信号である。”
High”でスキャナコントローラ内部レジスタの内容
がsccRegDataOut[31:0]に読みださ
れ、”Low”でsccRegDataIn[31:
0]の内容がスキャナコントローラ内部レジスタに書き
込まれる。sccRegStart Lアサートと同時
に有効となり、スキャナコントローラ内部レジスタへの
アクセスであれば、sccRegAck L信号で応答
するまで有効である。 ・sccRegAck L :OUT スキャナコントローラ内部のレジスタアクセスが完了し
たことを示す信号である。スキャナコントローラからG
バス/BバスI/Fユニット(GBI)へ出力される。
Bclk1クロック分だけアサートされる。sccRe
gReq L信号がアサートされた次のクロックからセ
ンスされる。
イトEn[7:0],sccRead,sccData
In[63:0]は、IFバスに含まれているものの、
スキャナコントローラでは未使用である。
ングの一例を示すタイミングダイアグラムである。図6
2はスキャナコントローラ4302からデータを読み出
してDMA転送する際のタイミングであり、図63は、
スキャナコントローラ4302の内部レジスタに対して
読み出しあるいは書き込みを行うタイミングである。
ーラ内部では、スキャナ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B00500
0)の設定に応じたビデオクロック(SVCLK)のゲ
ートコントロールを行い、それによりパワーマネージメ
ントを行う。パワーマネジメントユニット(PMU)4
09に出力するPMステート信号(sccPmStat
[1:0])の値は、Gバス/BバスI/Fユニット4
301Aから入力されるsccDmaPmState
[1:0]の状態とクロックの状態とを合わせて決定さ
れる。sccPmState[1:0]は図64のとお
りである。
te[1:0]は、スキャナのGバス/Bバスインター
フェースGBI sccのパワー消費状態を示してい
る。GBI secにはパワー消費状態00〜11の4
段階がある。この状態信号sccDmaPmState
[1:0]は、GBI sccからスキャナコントロー
ラへ出力されている。
状態は2段階あり、内部信号SPStatで示される。
GBI sccとスキャナコントローラの2つの状態を
あわせた状態を示している。この信号がシステムのパワ
ーマネージメントユニットに出力される。すなわち、ス
キャナコントローラの電力消費状態は4段階でパワーマ
ネジメントユニットに伝えられる。その段階は信号sc
cPmstate[1:0]の値で示される。値00が
最低レベルであり、1増えるごとに示される電力消費量
は大きくなる。
ース)図65は、スキャナコントローラ4302におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、スキャナコントローラ4302は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接
続されている。
示す。プリンタコントローラはビデオI/Fによってプ
リンタと接続し、Gバス/BバスI/Fユニットにイン
ターフェースするブロックである。大別して以下のブロ
ックから構成される。 1.プリンタデバイスI/F6601 プリンタビデオI/FおよびオプションコントローラI
/Fと信号の入出力をおこなう入出力ポートである。 2.プリンタビデオクロックユニット6602 プリンタのビデオクロックで動作するユニットである。 3.プリンタ画像データFIFOコントローラ6603 画像データ転送用のFIFOを制御する。 4.プリンタコントローラコントロールレジスタユニッ
ト6604 プリンタコントローラ全体を制御するためのレジスタユ
ニットである。 5.IRQコントローラ6605 プリンタコントローラ(Prc)内部で発生する割込み
信号を制御する。 6.プリンタコマンド/ステータスコントロールユニッ
ト6606 ビデオI/Fを介してプリンタとのコマンド/ステータ
ス送受信を制御する。 7.オプションコントローラコントロールユニット66
07 プリンタオプションコントローラを制御するユニットで
ある。 8.FIFO(FIFO PRC)6608 プリンタへとビデオデータを出力する際に、プリンタが
ビデオデータと非同期の可能性がある場合に用いられる
FIFOである。
の5種類である。 1.RGB各8ビットのカラー多値データ(点順次) 2.8ビット白黒多値データ 3.1ビット白黒2値データ 4.CMYK各1ビットのカラーデータ(面順次) 5.CMYK各8ビットのカラーデータ(面順次) 次に、プリンタコントローラを構成する各ブロックの概
要を説明する。
67にプリンタデバイスI/F6601のブロック図を
示す。このブロックは、プリンタビデオI/Fおよびオ
プションコントローラI/Fから信号を入出力する入出
力ポートである。PビデオR[7:0],PビデオB
[7:0]の各信号はVDInvt信号により、出力信
号をレベル反転するかどうかを切り替えることが可能で
ある。
概要]図68にプリンタビデオクロックユニット660
2のブロック図を示す。このブロックは、プリンタから
のビデオクロックで動作し、以下のブロックから構成さ
れる。 1.プリンタビデオデータマスク6801(DFF8E
NMask) プリンタへの画像データに対して、データマスクを行う
ブロック。マスクされたデータはレジスタに設定された
値のデータとなる。 2.プリンタビデオ同期コントロールユニット6802
(Prc syncユニット) プリンタからのビデオクロック,VSYNC,HSYN
Cの信号から、画像データを出力するタイミング信号等
を生成するブロック。画像データの水平方向、垂直方向
のデータ数とライン数を管理する。 3.プリンタビデオデータ幅コンバータ6803(pv
dwconv) IFバスからの64ビット幅で送られてくる画像データ
を、モードにより、RGB24ビット、白黒8ビット、
白黒1ビットのデータに変換するブロック。モード設定
はレジスタにより行う。
プリンタビデオデータマスク6801のブロック図を示
す。このブロックは、プリンタへ出力する画像データに
対して、ピクセル単位でマスクを行う。マスクされた画
像データはレジスタに設定された値となる(RDMas
k[7:0],GDMask[7:0],BDMask
[7:0])。
ト)図70にプリンタビデオ同期コントロールユニット
6802のブロック図を示す。このブロックは、プリン
タへ出力する画像データの垂直同期信号(TOP)、水
平同期信号(INPHSYNC)、画像データ同期クロ
ック(GTVCLK)により、出力する画像データのイ
ネーブル信号(VDOEN)、プリンタ画像データ転送
FIFOコントローラ6603にデータの要求をする信
号(RREQ)を生成する。
り込みピクセル数、副走査方向の遅延、取り込みライン
数を管理する。ラインカウンタ7001は設定量の画像
データ出力を終了したタイミングでの状態信号(PEN
DP)を生成する。また、副走査方向の遅延と出力ライ
ン数を管理して、画像出力有効ラインの垂直同期信号
(EH)を生成する。ピクセルカウンタ7002は主走
査方向の画像出力遅延と出力画素数を管理する。ページ
カウンタ7003は出力する画像データをページ単位で
管理する。設定されたページ数分の画像データ出力を終
了すると、終了信号(ALLPEND)を生成する。
71にビデオデータ幅コンバータ6803のブロック図
を示す。このブロックは、GBI(Gバス/BバスI/
F)から入力する64ビット幅のデータを画像データの
形式に変換するユニットである。出力できる画像データ
のタイプは次の3種類。RGB各8ビットのカラー画像
データ、多値8ビットの白黒画像データ、2値1ビット
の白黒画像データである。RGB各8ビットのカラー画
像データは24ビット単位でメモリ上に格納されている
場合(24ビットモード)と、24ビットに1バイトデ
ータが付加されて32ビット単位でメモリに格納されて
いる場合(32ビットモード)の2つのモード出力をサ
ポートする。このモードは、プリンタコントローラコン
トロールレジスタ6604においてモード設定される。
3種類の画像データは以下の信号ラインへ出力される。 1.RGB各8ビットのカラー画像データ … IR
[7:0],IG[7:0],IB[7:0] 2.多値8ビットの白黒画像データ … IR[7:
0] 3.2値1ビットの白黒画像データ … IR7 64ビットデータのメモリ上でのならびかたは以下のと
おりとなる。
(24ビットモード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット39−32 第2ピクセルG8ビット→ビット31−24 第2ピクセルB8ビット→ビット23−16 第3ピクセルR8ビット→ビット15−8 第3ピクセルG8ビット→ビット7−0 この場合、メモリ上でのならびは、図72に示した通り
となる。
(32ビットモード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット31−24 第2ピクセルG8ビット→ビット23−16 第2ピクセルB8ビット→ビット15−8 この場合、メモリ上でのならびは、図73に示した通り
となる。
となる。
となる。
を構成するブロックについて説明する。
にRGBoutユニット7101のブロック図を示す。
このブロックは24ビットモードでパックされた64ビ
ット幅のデータをRGB各8ビットのカラー画像データ
に変換するユニットである。
ントローラの概要]図77にプリンタ画像データ転送F
IFOコントローラ6603のブロック図を示す。この
ブロックは、プリンタへ出力する画像データをGBI
(Gバス/BバスI/F)を介して転送するためのバッ
ファとしてのFIFOと、そのFIFOをコントロール
する回路でらう。容量512バイト(64ビット×6
4)のFIFO7701を備える。FIFOのデータ入
力は、プリンタFIFOライトリードアービタ7702
がFIFO7701のフルフラグ(FF)を監視しなが
ら制御する。FIFOのデータ出力はプリンタビデオク
ロックユニット6602からの要求信号(RREQ)に
よりおこなわれる。
レジスタユニット]図78にプリンタコントローラコン
トロールレジスタ6604のブロック図を示す。このブ
ロックは、プリンタコントローラ内部を制御するレジス
タを備えたブロックである。内部のレジスタは以下のと
おりである。 1.プリンタ・パワー・マネージメント・コントロール
レジスタ 2.プリンタ・コントローラ・コントロールレジスタ 3.プリンタ・コントローラ・割り込み要因ステータス
レジスタ 4.プリンタ・コントローラ・割り込み要因マスクレジ
スタ 5.プリンタ副走査マスクライン数設定レジスタ 6.プリンタ主走査マスクピクセル数設定レジスタ 7.プリンタ副走査ライン数設定レジスタ 8.プリンタ副走査ライン数カウンタ読み出しレジスタ 9.プリンタ主走査ピクセル数設定レジスタ 10.プリンタ主走査ピクセル数カウンタ読み出しレジ
スタ 11.プリント・ページ数設定レジスタ 12.プリント・ページ数カウンタ読み出しレジスタ 13.プリンタ・デバイス・コントロール・レジスタ 14.プリンタ・デバイス・ステータス・レジスタ 15.プリンタ・シリアル・コマンド・レジスタ 16.プリンタ・シリアル・ステータス・レジスタ 17.オプション・コントローラ・TX・レジスタ 18.オプション・コントローラ・RX・レジスタ 19.プリンタ・ビデオ・マスクデータ・レジスタ 20.4階調出力レベル設定レジスタ 21.16階調出力レベル設定レジスタ1 22.16階調出力レベル設定レジスタ2 23.16階調出力レベル設定レジスタ3 24.16階調出力レベル設定レジスタ4 [5.IRQコントローラ]図79及び図80にIRQ
コントローラ6605のブロック図を示す。このブロッ
クは、プリンタコントローラ内で発生する割り込み信号
を管理する。割り込み要因から、割り込みを発生させ
る。各割り込み要因に対してマスク機能をもち、個別に
クリアすることができる。割り込み要因は以下のとおり
である。 1.画像データ転送全ページ終了(MLLPEnd) 2.画像データ転送1ページ終了(PageEnd) 3.シリアルステータス1バイト受信完了(INPSB
SY) 4.シリアルコマンド1バイト送信完了(EndCBS
Y) 5.PPRDY信号立ち上がり(false→tru
e)(INPPRDY) 6.PPRDY信号立ち下がりtrue→false)
(INPPRDY) 7.RDY信号立ち上がり(false→true)
(INRDY) 8.RDY信号立ち下がり(true→false)
(INRDY) 9.PFED信号立ち上がり(false→true)
(INPFED) 10.PFED信号立ち下がり(true→fals
e)(INPFED) 11.SPCHG信号立ち上がり(false→tru
e)(INSPCHG) 12.SPCHG信号立ち下がり(true→fals
e)(INSPCHG) 13.PDLV信号立ち上がり(false→tru
e)(INPDLV) 14.PDLV信号立ち下がり(true→fals
e)(INPDLV) 15.TOPR信号立ち上がり(false→tru
e)(INTOPR) 16.TOPR信号立ち下がり(true→fals
e)(INTOPR) 17.CCRT信号立ち上がり(false→tru
e)(INCCRT) 18.CCRT信号立ち下がり(true→fals
e)(INCCRT) 19.VSREQ信号立ち上がり(false→tru
e)(INPVSYNC) 20.VSREQ信号立ち下がり(true→fals
e)(INPVSYNC) 21.オプションコントローラTX送信&RX受信完了 22.画像データ転送FIFOのEMPTY信号の立ち
上がり 23.画像データ転送FIFOのEMPTY信号の立ち
下がり 24.画像データ転送FIFOのFULL信号の立ち上
がり 25.画像データ転送FIFOのFULL信号の立ち下
がり 26.画像データ転送FIFOにオーバーリードが発生
(EERDOut) 上記の割り込み要因に対応するフラグ情報(PCIRQ
[31:6])をプリンタコントローラコントロールレ
ジスタ6604に出力する。プリンタコントローラコン
トロールレジスタ6604から、各割り込み要因に対す
る、マスクビット(PCIMask[31:6])とク
リア信号(PCICLRP[31:6])を入力する。
各割り込み要因の論理和がintPrcに出力する。
トロールユニット]図81に、プリンタコマンド/ステ
ータスコントロールユニット6606のブロック図を示
す。このブロックは、プリンタを制御するためのシリア
ルコマンド/ステータスを送受信するブロックである。
信している期間をあらわすINPCBSY信号、シリア
ルコマンドの同期クロックであるINPCCLK信号、
シリアルコマンドINPSRCMD信号が生成される。
が送信されている期間を示すINPSBSY信号、シリ
アルステータスINPSRSTS信号が入力されて、8
ビットのステータスPSRSTAT[7:0]を出力す
る。シリアルステータスを入力するための同期クロック
はプリンタから出力されるINPPCLK信号、また
は、本ブロックで生成されるPCCLK信号のどちらか
を選択可能である。選択はPSRCLKMode信号に
よりなされる。
ルユニット]図82に、オプションコントローラコント
ロールユニット6607のブロック図を示す。このブロ
ックは、オプションコントローラに対して、送信データ
(TX)を出力するユニットである。TX送信のため
の、INSTROBE信号、INCKEN信号、CLK
(OPCLK)信号を生成する。また、TX送信と同時
に、受信データ(RX)の受信を行う。
は、Gバス/BバスI/Fユニット4301Bとプリン
タコントローラ4303とを接続するローカルなバスで
ある。このバスに含まれる信号には次のようなものであ
る。なお、信号の入出力は、プリンタコントローラから
Gバス/BバスI/Fユニット(GBI)に出力する信
号をOUT,Gバス/BバスI/Fユニット(GBI)
からプリンタコントローラに入力する信号をINで示
す。IF−バスはスキャナコントローラとプリンタコン
トローラに対して同一規定とするため、プリンタコント
ローラのサポートしない機能のための信号も記述する。
基本クロックはBバスのBclkを使用する。 ・prcRst0 L :IN この信号により、プリンタコントローラ内部のFIFO
を初期状態に戻す。 ・prcDataIn[63:0] :IN Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラに出力される64ビットのデータバスであ
る。プリンタコントローラがデータ転送動作する場合に
画像データが転送される。 ・prcRead :OUT プリンタコントローラがデータ転送動作するとき、Gバ
ス/BバスI/Fユニット(GBI)からのリード信
号。Gバス/BバスI/Fユニット(GBI)は、pr
cRead信号がアサートされているBclkの立ち上
がりに対して、prcDataIn[63:0]を有効
とする。prcRead信号をアサートし続けること
で、1クロック単位でデータがリードできる。 ・prcReadEnable :IN プリンタコントローラがデータ転送動作時、Gバス/B
バスI/Fユニット(GBI)からのデータリード許可
を示す信号。Gバス/BバスI/Fユニット(GBI)
から出力される。Bclkの立ち上がりで、prcRe
adEnable信号がアサートされていれば、次のク
ロックの立ち上がりで、リード可能であることを示す。
prcRead信号のアサートは、prcReadEn
able信号を確認して行う。 ・prcRegAddr[31:2] :IN Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラ内部のレジスタにアクセスするさいのレジ
スタアドレスバス。prcRegStart Lアサー
トと同時に有効となり、スキャナコントローラ内部レジ
スタへのアクセスであれば、prcRegAck L信
号で応答するまで有効である。 ・prcRegbyteEn[3:0] :IN Gバス/BバスI/Fユニット(GBI)から出力され
るprcRegDataIn[31:0]のバイトイネ
ーブル信号。prcRegStart Lアサートと同
時に有効となり、prcRegAck L信号で応答す
るまで有効である。この信号で示された有効なバイトの
みレジスタへの書き込みを行う。内部レジスタからの読
み出し時は、この信号は無視し、全バイト出力する。こ
の信号の各ビットとprcRegDataIn[31:
0]のバイトとの対応は次の通りである。 Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラ内部のレジスタにアクセスするさいのアク
セス要求信号。”Low”でレジスタのアクセス要求を
示す。prcRegAddr[31:2]信号、prc
RegRdNotWr信号とともにアサートされ、Bc
lk1クロック分だけアサートされる。プリンタコント
ローラが、このアクセスに対する・prcRegAck
Lを返さない限り、次のアクセスのアサートはされな
い。 ・prcRegDataOut[31:0] :OU
T Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラ内部のレジスタをリードアクセスする場合
の32ビットデータバス。prcRegAck L信号が
アサートされているときに有効となる。 ・prcRegDataIn[31:0] :IN Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラ内部のレジスタをライトアクセスする場合
の32ビットデータバス。prcRegStart L
アサートと同時に有効となり、プリンタコントローラ内
部レジスタへのアクセスであれば、prcRegAck
L信号で応答するまで有効である。 ・prcRegRdNotWr :IN Gバス/BバスI/Fユニット(GBI)からプリンタ
コントローラ内部のレジスタにアクセスするさいのアク
セス方向(リードまたはライト)を示す信号。”Hig
h”でプリンタコントローラ内部レジスタの内容がpr
cRegDataOut[31:0]に読み出され、”
Low”でprcRegDataIn[31:0]の内
容がプリンタコントローラ内部レジスタに書き込まれ
る。PrcRegStart Lアサートと同時に有効
となり、プリンタコントローラ内部レジスタへのアクセ
スであれば、prcRegAck L信号で応答するま
で有効である。 ・prcRegAck L :OUT プリンタコントローラ内部のレジスタアクセスが完了し
たことを示す信号。プリンタコントローラからGバス/
BバスI/Fユニット(GBI)へ出力される。BCl
k1クロック分だけアサートされる。prcRegst
art L信号がアサートされた次のクロックからセン
スされる。
イトEn[7:0],prcWrite,prcDat
aOut[63:0],prcReadEnable
は、プリンタコントローラでは未使用となる。
ングの一例を示すタイミングダイアグラムである。図8
3はプリンタコントローラ4303へデータをDMA転
送する際のタイミングであり、図63は、プリンタコン
トローラ4303の内部レジスタに対して読み出しある
いは書き込みを行うタイミングである。
ーラ内部では、プリンタ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B00700
0)の設定に応じたビデオクロック(VCLK)のゲー
トコントロールを行い、それによりパワーマネージメン
トを行う。パワーマネジメントユニット(PMU)40
9に出力するPMステート信号(prcPmStat
[1:0])の値は、Gバス/BバスI/Fユニット4
301Bから入力されるprcDmaPmState
[1:0]の状態とクロックの状態とを合わせて決定さ
れる。prcPmState[1:0]は図85のとお
りである。
te[1:0]は、プリンタのGバス/Bバスインター
フェースGBI prcのパワー消費状態を示してい
る。GBI prcにはパワー消費状態00〜11の4
段階がある。この状態信号prcDmaPmState
[1:0]は、GBI prcからプリンタコントロー
ラへ出力されている。
状態は2段階あり、内部信号PPStatで示される。
GBI prcとプリンタコントローラの2つの状態を
あわせた状態を示している。この信号がシステムのパワ
ーマネージメントユニットに出力される。すなわち、プ
リンタコントローラの電力消費状態は4段階でパワーマ
ネジメントユニットに伝えられる。その段階は信号pr
cPmstate[1:0]の値で示される。値00が
最低レベルであり、1増えるごとに示される電力消費量
は大きくなる。
ト(GBI) 図92は、Gバス/BバスI/Fユニット4301のブ
ロック構成図である。Gバス/BバスI/Fユニット
は、スキャナ及びプリンタのそれぞれに用意されている
が、その構成は同じであるため、ここでまとめて説明す
る。
usと接続してこれを制御するGBusコントローラ
と、BBusと接続してこれを制御するBBusコント
ローラとを含む。これらの間には、DMAアドレスを制
御するDMAコントローラ9205のほか、機能ブロッ
クとGBus/BBusとの間をデータ転送に用いられ
るFIFO9204、種々の設定値が書き込まれるレジ
スタユニット9206が含まれる。このうち、GBUS
コントローラとFIFO9204は、GBusにあわせ
て100MHzのクロックで動作し、その他のブロック
はBBusにあわせて50MHzで動作する。
両方に接続されるべき機能ブロック(SCC:スキャナ
コントローラとPRC:プリンタコントローラ)の、G
BusとBBusの選択的接続及び、両バスのインター
フェースを提供する。GBIと各機能ブロックの間は、
IFBus9201で接続される。機能ブロックでは、
データの入出力先がGBusかBBusかを意識する必
要はない。また、GBI側でDMAをサポートするの
で、機能ブロック側でアドレスを発生する必要もない。
GBIは、各機能ブロックで共通に必要となる機能をま
とめて、独立のユニットにしたものである。
に接続される機能ブロックは、連続したデータを受け取
る、あるいは送り出すものとする。IFBusにアドレ
ス信号は含まれていない。GBIでは、Channel
0(GBus/BBuS→IFBus0)とChann
el1(GBus/BBus→IFBus1)の2つの
チャネルが用意され、それぞれに、DMAコントローラ
が用意されている。ただし、スキャナコントローラで
は、Channel0のみを、プリンタコントローラで
は、Channel1のみを使用(実装)する。
(アドレス固定)とメモリに対する設定が可能で、メモ
リの場合は、連続物理アドレスとチェーンテーブル方式
(後述)のDMAが設定できる。
能ブロックと入出力する。したがって、GBIがスレー
ブモードとして動作する場合、GBIのアドレスは、G
Bus側が、0x18n0 0000〜0x18n0
007F、BBus側が、0x19n0 0000〜0
x19n0 001Fのみで同じロケーションがアクセ
スされる。FIFOを使用しているため、バースト転送
時のラップアラウンドに対応するのが困難である。BB
usのラップアラウンドを伴うバースト転送要求に対し
ては、シングルアクセスとして応答する。GBusのラ
ップアラウンドを伴う転送要求に対しては応答しない。
を行う場合には、それぞれのDMAコントローラにより
制御が行われる。この際に、いずれの側がマスタになる
かは特に決めないが、よりデータ転送のタイミングが厳
格な方がマスタになることが望ましい。このため、本実
施例では、GBI PRCをマスタにし、GBI SC
CをスレーブにしてDMA転送を行っている。
ース)は、 1.機能ブロックとのデータの受け渡しをするFifo
ユニット 2.GBusに直結され、GBusとFifoユニット
をつなぐGBusコントローラ9202 3.BBusに直結され、BBusとFifoユニット
をつなぐBBusコントローラ9203 4.マスタモードの時に、DMA転送要求を各バスコン
トローラに発行するDMAコントローラ9205 5.レジスタの内容を保持し、各ブロックに信号を送る
レジスタユニット9206 から構成される。レジスタユニット内には、割込み制
御、パワー制御部も含んでいる。以下に、各部の説明を
する。
foユニットは、GBus/BBusとIFBusとの
間の転送データのバッファとなる部分である。Fifo
ユニットは、互いに独立したFifoユニット0とFi
foユニット1とから構成される。Fifoユニット0
はIFBusからのデータ入力及びGBusあるいはB
Busへのデータ出力のために用いられ、Fifoユニ
ット1はGBusあるいはBBuSからのデータ入力及
びIFBusへのデータ出力のために用いられる。
scGbiFifo1Clkはゲーテッドクロックで、
クロックを止めることで省電力モードを実現する。この
クロックは、GBI FIFOレジスタをライトするこ
とにより停止し、マスタモードかスレーブモードに入る
時に自動的に起動する。
0は、IFBus0(IFBusの仕様については後
述)からのデータをFifoに書き込み、GBus/B
Busに送り出す。信号ifDataOutB[63:
0]、ifWriteB、ifWriteEnable
Gは、IFBusと接続される。
0は、IFBusからの64ビットデータを入力とし、
GBus用の64ビットデータDataOut64とB
Bus用の32ビットデータDataOut32を出力
する、64ビット×17段のFifoである。
タス信号には次のような信号がある。 ・Fifo0EnableB1G:Fifo0Unit
からBBusへ1ワード(32ビット)転送可能である
ことを示す。マスタモードの時はDMAコントローラ
が、スレーブモードの時にはBBusコントローラが使
用する。 ・Fifo0EnableB4G:Fifo0Unit
からBBusへ4ワード連続転送可能であることを示
す。マスタモードの時はDMAコントローラが、スレー
ブモードの時にはBBusコントローラが使用する。 ・Fifo0EnableB8G:Fifo0Unit
からBBusへ8ワード連続転送可能であることを示
す。マスタモードの時はDMAコントローラが、スレー
ブモードの時にはBBusコントローラが使用する。 ・Fifo0EnableG4G:Fifo0Unit
からGBusへ4ワード(1ワードは64ビット)連続
転送可能であることを示す。マスタモードの時はDMA
コントローラが、スレーブモードの時にはGBusコン
トローラが使用する。 ・Fifo0EnableG16G:Fifo0Uni
tからGBusへ16ワード連続転送可能であることを
示す。マスタモードの時はDMAコントローラが、スレ
ーブモードの時にはGBusコントローラが使用する。 ・ifWriteEnable:Fifo0がFull
状態でないことを示す。IFBusと接続され、機能ブ
ロックにライト可能であることを伝える。
ットデータのリードは、Fifo0に入力されている信
号Rd64を使い、BBusの32ビットデータのリー
ドは、信号Rd32を使う。どちらのリードによって
も、ステータス信号及び、Fifo0からの出力データ
であるDataOut64とDataOut32は更新
される。
sのクロックは50MHzであり、GBusのクロック
は100MHzである。このため、Fifoユニット0
に含まれる不図示のB2Gなるブロックにより、IFB
usクロックに同期した書込み信号ifWriteFi
foB、あるいはBBUsクロックに同期した読出し信
号bReadFifoBの1クロック分を、Fifoユ
ニットのクロック(IFBusの2倍の周波数)のクロ
ックに変換する。
o0は、GBus/BBusにより共有される。マスタ
ーモードでは、DMAコントローラがGBus/BBu
sの排他使用を制御しているが、スレーブモードでは、
DMAマスターが排他使用を制御しなければならない。
このため、Fifoユニット0に含まれるChkIll
egalブロックでは、GBusとBBusから同時に
Fifo0にアクセスされた場合に、信号fifoEr
rorGをアサートする。すなわち、Gbusからの読
出し信号gReadFisoG、あるいはBBusから
の読出し信号bReadFisoBが同時にアサートさ
れると、信号fifoErrorGをアサートする。こ
の信号は、レジスタユニットでラッチされ、マスクされ
ていなければ、割り込みを発生する。
1は、GBus/BBusからのデータを内蔵するFi
fo1に書き込み、IFBus1に送り出す。ifDa
taIng[63:0],ifByteEnG[7:
0],ifReadB,ifReadEnableG
は、IFBusと接続される。
の逆方向DMAに対応するために、Fifo1の前段に
フロントバッファを設けてある。逆方向DMA(入力信
号reverseMODEがイネーブル)の時には、フ
ロントバッファにいったんバッファしてから、逆順でF
IFOにデータを送り出す。それ以外のモード(信号r
everseMODEがディスエーブル)の時には、通
常のFIFOとして機能する。
Busからのデータを入力とし、Fifo1へ出力す
る、バイトイネーブル付き64+4ビット×4段のバッ
ファである。BBusからの書き込みでは、データはバ
イトイネーブル信号とともに書き込まれる。GBusか
らの書き込みでは、バイトイネーブルをすべて有効と
し、データが書き込まれる。BBusからの書き込みで
の64ビットへのパッキングは行わない。
が空状態であることを示す信号BufEmptyが設け
られている。
eMODEがイネーブルであり、転送モードは、DMA
コントローラで、GBusの4beatバースト転送、
あるいはBBusのシングル転送のみに制限される。G
Busの4beatバースト転送のデータは、一度フロ
ントバッファに貯めてから、逆順にして、Fifo1に
データを送り出す(32ビット単位で逆順にする)。
rseMODEがディスエーブルであり、4段のFIF
Oとして機能する。入力信号dummyWriteFi
fo1Bは一度ラッチされ、フロントバッファが空にな
った時点で、Fifo1に送られる。
ッファからのデータを入力とし、入力されたデータをI
FBusへ出力する、バイトイネーブル付き64+8ビ
ット×16段のFifoである。BBusからのデータ
は、バイトイネーブル信号とともに書き込まれる。GB
usからのデータは、バイトイネーブルをすべて有効と
し、書き込まれる。BBusからのデータの書き込みで
は、64ビットへのパッキングを行う。
ァのBufEmpry信号を基に、以下のステータス信
号を設けている。 ・Fifo1EnableB1G:Fifoユニット1
へBBusから2ワード(32ビット)転送可能である
ことを示す。Fifo1にBBus1ワード以上の空き
があるか、フロントバッファが空の時に、イネーブルと
なる。 ・Fifo1EnableB4G:Fifoユニット1
へBBusから8ワード連続転送可能であることを示
す。Fifo1にBBus4ワード以上の空きがある
か、フロントバッファが空の時に、イネーブルとなる。 ・Fifo1EnableB8G:Fifoユニット1
へBBusから12ワード連続転送可能であることを示
す。Fifo1にBBus8ワード以上の空きがある
か、Fifo1にBBus4ワード以上の空きがあり、
かつフロントバッファが空の時に、イネーブルとなる。 ・Fifo1EnableG4G:Fifoユニット1
へGBusから4ワード(1ワードは64ビット)連続
転送可能であることを示す。Fifo1にGBus4ワ
ード以上の空きがあるか、フロントが空の時に、イネー
ブルとなる。 ・Fifo1EnableG16G:Fifoユニット
1へGBusから16ワード連続転送可能であることを
示す。Fifo1が空であるか、Fifo1にGBus
12ワード以上の空きがあり、かつフロントバッファが
空の時に、イネーブルとなる。 ・ifReadEnable:Fifo1が空状態でな
いことを示す。IFBusと接続され、機能ブロックに
リード可能であることを伝える。
fo1EnableB4G、Fifo1EnableB
8Gは、マスタモード時にはDMAコントローラが、ス
レーブモード時にはBBusコントローラが使用する。
fo1EnableG16Gは、マスタモード時にはD
MAコントローラが、スレーブモード時にはGBusコ
ントローラが使用する。
ニット0と同じく、B2Gブロック及びChkIlle
galブロックを備えている。
usコントローラ9202のブロック図である。Gbu
sコントローラ9202は、GBIがバスマスタとなっ
てGBusを制御するためのGBusマスタコントロー
ラと、スレーブとなった際の制御を行うためのGBus
スレーブコントローラと、データを制御するためのGB
usデータコントローラと、GBusインターフェース
バッファとを含む。この構成により、GBI4301
は、GBusのマスタあるいはスレーブとして動作する
ことができる。
ーラは、GBusマスタコントローラにより、以下のよ
うな手順でGBusマスタとしての制御を行う。
能な段階で、gMReq(N)信号を、gMAddr
(N)[31:5]信号、gMBst4Not16 N
信号とともに、bClk(Bbusクロック信号)で1
クロックだけアサートして、DMA転送を要求する。
MBst4Not16 N信号は、GBusマスタコン
トローラによりgMDone(N)信号、gMRtry
(N)信号、gMBErr(N)信号のいずれかがアサ
ートされるまで、変化させてはいけない。
ンターフェースでラッチされる(gLatchReq
(N)信号)。
不図示のGBusマスタリクエストアービタで調停さ
れ、GBusアービタ406に対し、DMA要求信号g
Req L信号をアサートすると同時に、GBusマスタ
アドレスフェーズに、gIntReq(N)信号を送
る。
L信号がアサートされると、GBusマスタアドレス
フェーズから、信号GGntSenseがアサートさ
れ、DMA要求信号gReq Lはネゲートされる。同
時に、gLatchReq(N)信号とgIntReq
(N)信号はネゲートされる。GBusマスタリクエス
トインターフェースは、信号gSlvBsyを監視し、
データバスが使用可能になると、GMDataRq
(N)信号をアサートする。この信号は、GBusマス
タジェネレートエンドデータとGBusデータコントロ
ーラに送られる。 4.GBusデータ転送 スレーブのgAack信号を確認すると、データ転送を
開始する。EndData以外のGBusの信号は、G
Busマスタアドレスフェーズで生成される。EndD
ataは、GBusマスタジェネレートエンドデータで
生成される。GBusからFifoあるいは、Fifo
からGBusへのデータの移動は、GMDataRq
(N)信号により、GBusデータコントローラが行
う。なお、gAack信号の前にgRtry信号を検出
すると、GBusデータコントローラはデータ転送を行
わない。 5.GBusデータ転送終了(あるいはリトライ) GBusマスタジェネレートエンドデータは、GBus
データ転送の終了を、checkBErr信号によりG
Busマスタリクエストインターフェースへ伝える。そ
の信号を受けたGBusマスタリクエストインターフェ
ースは、内部で保持している要求をクリアすると同時
に、バスエラーがなければ、gMDone信号をアサー
トする。バスエラーを検出した場合には、gMBErr
信号をアサートし、DMAコントローラ9205に転送
が完了したことを伝える。
usマスタリクエストインターフェースは、内部で保持
している要求をクリアすると同時に、gMRtry信号
をアサートする。
sコントローラ9202から受けた信号がgMDone
信号であれば、転送アドレスや転送長等を更新する。受
けた信号がgMRtry信号であれば、それらを更新せ
ずに、次のアクションを起こす。gMBErr信号の時
には、DMAコントローラ9202は転送を中止し、マ
スクされていなければ、割り込みを発生する。
ローラは、GBusスレーブコントローラにより、以下
のような手順でGBusスレーブとしての制御を行う。 1.マスタからの転送要求 GBusスレーブリクエストインターフェースでは、g
TsReg信号アサートのタイミングで、gAddrR
eg信号とgRdNotWrReg信号(チャネル0か
1)を確認する。GBIへのアクセスで、gSEnab
le(N)信号(スレーブモード:レジスタにより設
定)がアサートされていれば、gBst4Not16信
号とReadFifoEnable4/16信号(チャ
ネル0)かWriteFifoEnable4/16信
号(チャネル1)から、転送可能か判断する。可能であ
れば、gAack信号を、そうでなければ、gRtry
信号をアサートする。 2.GBusデータ転送 転送可能であれば、GBusスレーブリクエストインタ
ーフェースは、gSlvBsy信号のネゲートを確認
し、gAack信号をアサートし、そのタイミングを、
GSlvStart信号でGBusスレーブリクエスト
スレーブビジーに伝える。また、GBusスレーブリク
エストインターフェースは、データの転送開始を、GS
DataRq(N)信号をアサートすることでGBus
データコントローラに伝える。GBusからFifoあ
るいは、FifoからGBusへのデータの移動は、G
Busデータコントローラが行う。GBusスレーブリ
クエストスレーブビジーは、gSlvBsy信号を生成
する。 3.GBusデータ転送終了 転送終了を示す信号は特にない。gBErr信号をアサ
ートすることもない。ただし、gSEnable(N)
信号がネゲートしてあれば、マスタのアクセスに対して
応答しないので、タイムアウトによるバスエラーが発生
する。
usコントローラ9203のブロック図である。BBu
sコントローラ9203は、BBusマスタコントロー
ラと、BBusデータコントローラ、BBusスレーブ
コントローラ及びBBusインターフェースバッファを
含む。この構成により、GBI4301は、BBusの
マスタあるいはスレーブとして動作することができる。
能な段階で、bMReq(N)信号を、bMAddr
(N)[31:2]信号、bMBurst8n)信号、
bMBst4Not8 N信号とともに、BBusクロ
ック信号bClkで1クロックだけアサートする。ま
た、チェーンDMAモードでチェーンテーブルの読み込
みが必要な段階で、cMReq(N)信号を、cMAd
dr(N)[31:2]信号とともに、bClkで1ク
ロックだけアサートする。チェーンテーブルの読み込み
では、BBusのバースト転送を使用しない。こうし
て、DMAコントローラからBBusのDMA転送が要
求される。
MBurst(N)信号,bMBst4Not8 N信
号は、Fifoにアクセスを開始する(bReadFi
fo、bWriteFifoがアサートされる)まで変
化させてはいけない。
号は、cMDone(N)信号,cMrtry(N)信
号,cMBErr(N)信号のいずれかがアサートされ
るまで変化させてはいけない。
号は、BBusマスタリクエストインターフェースでラ
ッチされる(bLatchReq(N)信号及びcLa
tchReq(N)信号)。各要求信号は、BBusマ
スタリクエストアービタで調停され、BBusアービタ
407に対してbBReq L信号がアサートされる。
信号がアサートされると、BBusマスタリクエストア
ービタから、対応する要求元のBBusマスタリクエス
トインターフェースに、BGnt(N)信号あるいはC
Gnt(N)信号を送り、bBGnt L信号はネゲー
トされる。BBusマスタリクエストインターフェース
は、bLatchReq(N)信号あるいはcLatc
hReq(N)信号をネゲートし、bTx信号とbSn
oopWait信号を監視し、転送可能な状態になる
と、BMDataRq(N)信号及びCMDataRq
(N)信号をアサートする。この信号は、BBusマス
タシーケンサとBBusデータコントローラに送られ
る。
ブすべきデータ以外のBBusの信号をすべて生成す
る。BMDataRq(N)信号あるいはCMData
Rq(N)信号をトリガにして、bStartOut
L(バーストモードであれば、同時にbBurstOu
t L)をアサートし、bRdy(バーストモードであ
れば、bBurstAck)をチェックし、転送終了を
検出する。BBusからFifo、あるいはFifoか
らBBusへのデータの移動は、BMDataRq
(N)信号により、BBusデータコントローラが行
う。
に)にbRetry信号を検出すると、BBusデータ
コントローラはデータ転送を行わない。
リトライ、バスエラー) BBusデータコントローラは、BBusマスタシーケ
ンサのBMLastData信号でデータの移動を終了
する。また、BBusマスタシーケンサは、BBusデ
ータ転送の終了をDone信号により、BBusリクエ
ストインターフェースへ伝える。リトライあるいはバス
エラーであった場合には、それぞれ、Retry信号、
Error信号で伝える。BBusマスタリクエストイ
ンターフェースは、DMAコントローラに転送が完了し
たことを、[bc]MDone(N)(以下、bまたは
cのいずれかであることを[bc]と表す)で、リトラ
イ、バスエラー場合には、[bc]MRtry(N)信
号、[bc]MBErr信号でそれぞれ伝える。
ifo、bWriteFifoにより、転送アドレスや
転送長等を更新し、DMAのBBus転送の終了を示す
bMDone(N)信号か、bMRtry(N)信号
で、次のアクションを起こす。チェーンテーブルの読み
込みの終了を示すcMDone(N)信号は、内部のチ
ェーンテーブルを更新し、cMRtry(N)信号であ
れば、再び転送要求を発行する。
DMAコントローラは転送を中止し、マスクされていな
ければ割り込みを発生する。
tart Lと信号bBurst Lの同時アサート
で、スレーブが、信号bRetry Lのアサートなし
に、信号bRdy Lと信号bBurstAck Lの
同時アサートで応答した場合、スレーブはバースト転送
可能と判断される。そのバースト転送中は信号bRet
ry Lはチェックされない。つまり、最初のbRdy
Lのタイミングの時のみ、信号bRetry Lはチ
ェックされる。なお、バースト転送中でも、信号bEr
ror Lは、各クロックでチェックされる。
L、bRdy Lの同時アサートについて)信号bEr
ror Lがアサートされた場合、信号bRetry
Lがアサートされていても、バスエラーとみなされる。
信号bError Lがネゲートされ、信号bRetr
y Lがアサートされた場合、信号bRdy Lがアサ
ートされていてもリトライと見なされる。
[3:0]について)マスタモード時の信号byteE
n L[3:0]は、シングルアクセス、バーストアク
セスの最後の転送以外は、常に、“0000”である。
ス以外)] 1.マスタからの転送要求 BBusマスタシーケンサは、bStart L信号ア
サートのタイミングで、bAddr信号とbWr L信
号(チャネル0か1)を確認する。GBIへのアクセス
で、bSEnable(N)信号(スレーブモード:レ
ジスタにより設定)がアサートされていれば、bBur
stShortNotLong信号(bBurst L
信号がアサートされた時のみ)とReadFifoEn
able1/4/8信号(チャネル0)かWriteF
ifoEnable1/4/8信号(チャネル1)から
転送可能かを判断する。転送可能であれば、bRdyO
ut L信号(バーストモードであれば、bBurst
AckOut L信号も)をアサートし、そうでなけれ
ば、bRetryOut L信号をアサートする。
L信号がアサート)の要求に対して、Fifoの状態か
ら、バースト転送はできないがシングル転送は可能な場
合は、bRdyOut L信号のみアサートし、シング
ル転送を行う。また、マスタのバーストモード要求がラ
ップアラウンドを発生する場合、GBIがラップアラウ
ンドに対応していないため、可能であればシングル転送
を行う(bBurstAckOut L信号をアサート
しない)。
なクロック分だけ、bRdyOut L信号をアサート
し続ける。バースト転送の場合には、最初のbRdyO
ut L信号のアサートのタイミングで、bBurst
AckOut L信号を1BBusクロックだけアサート
する。また、データの転送開始をBSDataRq
(N)信号で、データの転送終了をbMLastDat
a信号で、BBusデータコントローラに伝える。BB
usからFifoあるいは、FifoからBBusへの
データの移動は、BBusデータコントローラが行う。
L信号をアサートすることもない。ただし、bSEna
ble(N)信号がネゲートしていれば、マスタのアク
セスに対して、応答しないので、タイムアウトによるバ
スエラーが発生する。
ス)]GBI及び機能ブロック内のレジスタのアクセス
はBBusから行う。レジスタのアクセスについては、
GBIのモードや状態によらず、いつでもアクセス可能
である。bRetryOut L、bErrorOut
L信号をアサートすることはない。マスタのバースト
モードの要求に対して、いつでもシングル転送で応答す
る(bBurstAckOut L信号をアサートしな
い)。
Start L、regAddr[31:2]、byt
eEnIn[3:0]、regWr L信号(BBus
の信号をBBusクロックで叩いた信号)をセンスし、
レジスタへの書き込みであれば、bDataIn[3
1:0]信号のデータを書き込み、Ack信号(GBI
では、regGbiAck L IFBusでは、re
gIfAck L)をアサートする。レジスタからの読
み出しであれば、データを内部バス(GBIでは、re
gGbiDataOut[31:0]、IFBusで
は、regIfDataOut[31:0])に乗せ
て、Ack信号(GBIでは、regGbiAck
L、IFBusでは、regIfAck L)をアサー
トする。
Ack信号からbRdyOut Lを作る。
sのサイクル)GBIのスレーブモードでは、シングル
転送のサイクルはいつも3BBusクロックである。バ
ースト転送は、シングル転送と同じタイミングで、最初
のbRdyOut L信号をアサートし、その後ネゲー
トすることなしに必要なクロック分アサートを続ける。
転送(シングルとバースト)ができない場合は、最初の
bRdyOut Lをアサートするタイミングで、bR
etryOut Lだけアサートする。
ロック)BBusスレーブジェネレートレディブロック
は、BBusスレーブシーケンサからのChannel
Rdy L信号と、GBIレジスタユニットからのre
gGbiAck L信号と機能ブロッタ(IFBus)
からのregIfAck L信号をORして、クロックで
叩く。
sは、GBIと機能ブロックを接続する簡単なバスであ
る。クロックは、bClk(50MHz)を使用する。
ここでいう入力信号とは、機能ブロックからGBIへの
方向の信号である。双方向信号はない。以下にIFBu
sの信号について説明する。“ L”で終わる信号名
は、ローアクティブであることを示す。これは、すでに
説明した部分においても同様である。なお、実際のイン
プリメンテーションでは、信号名の“if”は機能ブロ
ックの名前に置き換える。
Rst1 L(チャネル1)(出力)IFBusのリセ
ット信号である。この信号により、IFBusの状態を
初期状態に戻す。GBIの内部レジスタにより、アサー
トされる。GBIと機能ブロックとの転送に先立って、
必ずアサートする。
力:チャネル0のみ) 機能ブロックからGBIへのデータ信号である。この信
号は、Fifoユニット0に接続されている(図93参
照)。
み) 機能ブロックからGBIへのライト信号である。GBI
は、ifWrite信号がアサートされているifCl
kの立ち上がりで、ifDataOut[63:0]を
書き込む。ifWriteB信号をアサートし続けるこ
とで、1クロック単位でデータがライトできる。この信
号は、Fifoユニット0に接続されている(図93参
照)。
チャネル0のみ) 機能ブロックからGBIへのライト許可信号である。i
fClkの立ち上がりで、ifWriteEnable
G信号がアサートされていれば、次のクロックの立ち上
がりで、ライト可能であることを示す。ifWrite
B信号のアサートは、ifWriteEnableG信
号を確認して行う。この信号は、Fifoユニット0か
ら出力される。
ByteEnG[7:0](出力:チャネル1のみ) GBIから機能ブロックへのデータとバイトイネーブル
信号である。この信号は、Fifoユニット1に接続さ
れている。表8に信号ifByteEnG[7:0]の
各桁とifDataInG[63:0]の各バイトユニ
ットとの対応を示す。
は、ifRead信号がアサートされているifClk
の立ち上がりで、ifDataInG[63:0]とi
fByteEnG[7:0]を出力する。ifRead
信号をアサートし続けることで、1クロック単位でデー
タがリードできる。この信号は、Fifoユニット1に
接続されている。
ャネル1のみ) GBIから機能ブロックへのリード許可信号である。i
fClkの立ち上がりで、ifReadEnableG
信号がアサートされていれば、次のクロックの立ち上が
りで、リード可能であることを示す。ifRead信号
のアサートは、ifReadEnableG信号を確認
して行う。この信号は、Fifoユニット1から出力さ
れる。
通)(出力) BBusのbStart Lをクロックで叩いた信号で
ある。ifRegAddr[31:2]信号、ifRe
gRdNotWr信号ifByteEn L[3:0]
信号とともに1クロックだけアサートされる。機能ブロ
ックの内部レジスタへの書き込みの場合には、信号if
RegDataIn[31:0]も有効となっている。
機能ブロックでは、ifRegStart Lがアサー
トされた時点で、アドレスをチェックし、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
k L信号で応答する。そうでなければ、次のifRe
gStart Lのアサートを待つ。この信号は、BB
usコントローラから出力される。
ネル共通)(出力) BBusのbAddr[31:2]をクロックで叩いた
アドレス信号である。信号ifRegStart Lア
サートと同時に有効となり、機能ブロックの内部レジス
タへのアクセスであれば、ifRegAck L信号で
応答する間で有効である。この信号は、BBusコント
ローラから出力される。
ャネル共通)(出力) BBusのbyteEn L[3:0]をクロックで叩
いたバイトイネーブル信号である。信号ifRegSt
art Lアサートと同時に有効となり、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
k L信号で応答する間で有効である。機能ブロックの
内部レジスタへの書き込みの場合には、この信号で示さ
れた有効なバイトのみ書き込みを行う。機能ブロックの
内部レジスタからの読み出しの場合には、この信号は無
視され、全バイト出力される。この信号は、BBusコ
ントローラから出力される。表9に、信号ifRegB
yteEn[3:0]の各桁と信号ifRegData
InG[31:0]の各バイトユニットとの対応を示
す。
通)(出力) BBusのbWr Lをクロックで叩いた信号で、機能
ブロックの内部レジスタへのアクセスの方向を示す。ハ
イで、機能ブロックの内部レジスタの内容が信号ifR
eqDataOut[31:0]に出力され、ローで、
ifReqDataIn[31:0]のデータが、機能
ブロックの内部レジスタに書き込まれる。信号ifRe
gStart Lアサートと同時に有効となり、機能ブ
ロックの内部レジスタへのアクセスであれば、ifRe
gAck L信号で応答する間で有効である。この信号
は、BBusコントローラから出力される。
(入力) 機能ブロックが内部レジスタへのアクセスを完了したこ
とを示す信号である。信号ifRegStart Lが
アサートされた時点で、アドレスをチェックし、機能ブ
ロックの内部レジスタへのアクセスであれば、レジスタ
のリードあるいはライトを行い、必ず、1クロックだけ
アサートする。機能ブロックの内部レジスタへのアクセ
スでない場合には、決してアサートしてはいけない。こ
の信号は、BBusコントローラに接続される。
(チャネル共通)(入力) 機能ブロックの内部レジスタの内容が読み出されるデー
タバス信号である。信号ifRegAck L信号がア
サートされているときに有効でなければいけない。この
信号は、BBusコントローラに接続される。
(チャネル共通)(出力) 機能ブロックの内部レジスタに書き込まれるデータを示
すバス信号である。信号ifRegStart Lアサ
ートと同時に有効となり、機能ブロックの内部レジスタ
へのアクセスであれば、ifRegAck L信号で応
答する間で有効である。この信号は、BBusコントロ
ーラから出力される。
(チャネル共通)(出力) GBIの動作状態を示す信号。この出力は常に有効であ
る。機能ブロックは、この信号と機能ブロック自身の動
作状態を基に、パワーマネージメントユニットへのパワ
ーマネージメントステータス信号を生成する。この信号
は、レジスタユニットから出力される。どのような値が
出力されるかは、後述のパワーマネジメントの項で説明
する。
ネル0と1に、それぞれ図96のようなDMAコントロ
ーラ9205が存在する。
トローラ、フェッチチェインテーブル、カルキュレート
ピッチアドレス、ジェネレートアドレス、DMAリクエ
ストの各部ロックから成る。
の信号によりDMAのモードが伝えられる。
ついて説明する。
ンコントローラは、他の4つのブロックの起動と停止の
制御をする。チェーンテーブル方式のDMAでは、フェ
ッチチェインテーブル、ジェネレートアドレス、DMA
リクエストの順に、ブロックを1クロックずつずらして
起動する。ピッチ付きのDMAでは、カルキュレートピ
ッチアドレス、ジェネレートアドレス、DMAリクエス
トの順に、ブロックを1クロックずつずらして起動す
る。その他の場合には、ジェネレートアドレスとDMA
リクエストを1クロックずらして起動する。
の終了を判定する。フェッチチェインテーブルがアイド
ル状態(チェーンテーブルをすべて読み終わったか、あ
るいは起動されていない)かつ、カルキュレートピッチ
アドレスがアイドル状態(全ライン終わったか、あるい
は起動されていない)でのジェネレートアドレスのNe
xtAddreReq信号のアサート(レングスカウン
タがゼロになる)、あるいはバスエラー、stopDM
A信号のアサート(レジスタによるDMA強制終了)を
検出すると、DMAメインコントローラが各ブロック
に、stopDMAReq信号をアサートする。すべて
のブロックがアイドル状態になった時点で、DMAの終
了と判定する(endDMAをアサートする)。
ェインテーブルは、メモリ上のテーブルをフェッチする
ブロックで、チェーンテーブルを使わない場合は起動さ
れない。チェーンテーブルを指すメモリアドレスのため
のチェインテーブルポインタアドレスカウンタ、チェー
ンテーブルの残りのエントリ数を示すチェインテーブル
エントリカウンタ、チェーンテーブルからフェッチした
アドレスとレングスを記憶するネクストアドレスレジス
タ、ネクストレンクスレジスタ、およびこれらを制御す
るフェッチチェインテーブルコントローラから成る。
と、レジスタの内容がチェインテーブルポインタアドレ
スとチェインテーブルエントリカウンタにロードされ
る。chainReq信号により、BBusコントロー
ラにアドレスchainAddress[31:2]の
フェッチを要求する。BBusコントローラからのch
ainDone信号(正常終了)で、読み出した内容を
ネクストアドレスレジスタにラッチし、チェインテーブ
ルポインタアドレスカウンタをインクリメントする。B
Busコントローラから、ChainRtry信号(リ
トライ)が返ってくれば、再び、同じ要求をBBusコ
ントローラに対して発行する。
BBusコントローラにアドレスchain Addr
ess[31:2]のフェッチを要求する。Chain
Done信号で、読み出した内容をネクストレンクスレ
ジスタにラッチし、チェインテーブルポインタアドレス
カウンタをインクリメントし、チェインテーブルエント
リカウンタをデクリメントする。同時に、nextAd
drValid信号をアサートし、チェーンテーブルか
らアドレスとレングスを読み出したことを、ジェネレー
トアドレスブロックに伝える。
時のデータがゼロである場合には、ネクストアドレスレ
ジスタの内容がチェインテーブルポインタアドレスカウ
ンタにロードされる。
ト中に、ジェネレートアドレスブロックからNextA
ddrReq信号がアサートされるとジェネレートアド
レスブロックが、チェーンテーブルからのアドレス、レ
ングスを受け取ったと判断し、nextAddrVal
id信号をネゲートする。
をチェックし、ゼロでなければ、再度チェーンテーブル
のフェッチを続け、ゼロであればアイドル状態へ戻る。
受け取ると、直ちにアイドル状態へ戻る。DMAメイン
コントローラからstopDMAReqを受け取った場
合、BBusコントローラに要求を出していれば、その
終了を待って、そうでなければ直ちにアイドル状態へ戻
る。
は、起動されないので、アイドル状態を保ち、next
AddrValid信号はネゲートされたままである。
ドレスブロックは、メモリに対する転送アドレスを格納
するトランスファメモリアドレスカウンタと、転送すべ
き転送長を格納するトランスファレンクスカウンタと、
転送したバイト数を記憶するトランスファカウンタと、
これら3つのカウンタを制御するジェネレートアドレス
コントローラと、転送アドレスと転送長からGBus/
BBusに対して要求するモードを判定するCheck
GBusReq及びCheckBBusReqブロック
(CheckG/BBusReqと総称する)を有す
る。
インコントローラから起動されると、トランスファカウ
ンタをクリアし、フェッチチェインテーブルからのne
xtValidAddrCT信号待ちに入る。next
ValidAddrCT信号がアサートされると、チェ
ーンテーブルのアドレスとレングスが、それぞれトラン
スファメモリアドレスカウンタとトランスファレンクス
カウンタにロードされる。
usReqは転送できるモードを判定する。
リクエストブロックにG/BBusの転送モードを伝え
(転送不可の時にはg/b Valid信号がネゲート
されている)、DMAリクエストブロックは、GBus
優先で各バスコントローラに転送要求を発行する。
(GBus転送終了信号)とその時の転送モードによ
り、一度にトランスファメモリアドレスカウンタ、トラ
ンスファカウンタのインクリメントとトランスファレン
クスカウンタのデクリメントを行う。BBusでの転送
では、FIFOのアクセス信号により、トランスファメ
モリアドレスカウンタのインクリメントとトランスファ
レンクスカウンタのデクリメントを行う。
った時、フェッチチェインテーブルからのnextVa
lidAddrCT信号がネゲートされていれば、アサ
ートを待って、次のチェーンテーブルの内容をトランス
ファメモリアドレスカウンタとトランスファレンクスカ
ウンタにロードし、そうでなければ、直ちにロードす
る。そして、次の転送に入る。
わってトランスファレンクスカウンタがゼロになった時
には、フェッチチェインテーブルはアイドル状態で、n
extValidAddrCT信号はネゲートされてい
る。DMAメインコントローラはDMAの終了を検出す
るので、ジェネレートアドレスに対してstopDMA
Req信号をアサートする。これによりジェネレートア
ドレスはアイドル状態となる。
メインコントローラから起動されると、トランスファカ
ウンタをクリアし、カルキュレートピッチアドレスから
のnextValidAddrPA信号待ちに入る。n
extValidAddrPA信号がアサートされる
と、スタートアドレスとピッチから計算されたアドレス
とレングスが、それぞれトランスファメモリアドレスカ
ウンタとトランスファレンクスカウンタにロードされ
る。
ンスファメモリアドレスカウンタ、トランスファカウン
タのインクリメントとトランスファレンクスカウンタの
デクリメントが行われる。
った時、カルキュレートピッチアドレスからのnext
ValidAddrPA信号がネゲートされていれば、
アサートを待って、次のチェーンテーブルの内容をトラ
ンスファメモリアドレスカウンタとトランスファレンク
スカウンタにロードし、そうでなければ直ちにロードす
る。そして次の転送に入る。
ァレンクスカウンタがゼロになった時には、カルキュレ
ートピッチアドレスはアイドル状態で、nextVal
idAddrPA信号はネゲートされている。DMAメ
インコントローラはDMAの終了を検出するので、ジェ
ネレートアドレスに対してstopDMAReq信号を
アサートする。これによりジェネレートアドレスはアイ
ドル状態となる。
ントローラから起動されると、トランスファカウンタが
クリアされ、データ長を格納したGBIDMA転送長レ
ジスタの内容がトランスファレンクスカウンタにロード
される。CheckGBusReq/CheckBBu
sReq各ブロックは、対I/OのDMAアドレスを格
納したGBIDMAGBusI/Oアドレスレジスタ/
GBIDMABBusI/Oアドレスレジスタの内容を
それぞれ用いる。
クリメントとトランスファレンクスカウンタのデクリメ
ントが行われる。
った時、フェッチチェインテーブルとカルキュレートピ
ッチアドレスは起動されていないので、アイドル状態
で、nextValidAddr信号はネゲートされて
いる。DMAメインコントローラはDMAの終了を検出
するので、ジェネレートアドレスに対してstopDM
AReq信号をアサートする。これによりジェネレート
アドレスはアイドル状態となる。
リバースモードをサポートする。チェーンテーブルDM
Aの1ブロック、ピッチ付きのDMAの1ラインを、ア
ドレスの大きい方から小さい方へアクセスする。ブロッ
クあるいはライン単位の逆方向の指示は、チェーンテー
ブルDMAではチェーンテーブルを逆になるように作
る。ピッチ付きのDMAの場合は、ピッチの値を負の値
(2の補数)を設定する。
アドレスカウンタに値をロードする際に、転送レングス
を用いて、最後尾のアドレスを計算してロードする。ト
ランスファメモリアドレスカウンタのインクリメントの
代わりにデクリメントする。
ングル転送のみを要求する。CheckGBusReq
ブロックでは4ビートバースト転送のみを要求する。F
ifoユニットで、32ビット単位で逆順にして、機能
ブロックに送られる(現状では、チャネル1のみ対応す
る)。
BusReqブロックではGBus要求のチェックが行
われる。信号useGBusがアクティブでなければ常
に信号gValidはネゲートされている。
下がすべてゼロで、かつトランスファレンクスが128
以上の時、信号gValidがアサート、g4Not1
6Req=’0’となり、トランスファメモリアドレス
のビット4以下がすべてゼロで、かつトランスファレン
クスが32以上の時、信号gValidがアサート、g
4Not16Req=’1’となる。それ以外では、信
号gValidはネゲートされる。
BusReqブロックではBBus要求のチェックが行
われる。信号useBBusがアクティブでなければ常
に信号bValidはネゲートされている。
下がすべてゼロで、かつトランスファレンクスが29以
上の時、信号bValidがアサート、bBurstR
eq=’1’、b4Not8Req=’0’となり、ト
ランスファメモリアドレスのビット3以下がすべてゼロ
で、かつトランスファレンクスが13以上の時、bVa
lidがアサート、信号bBurstReq=’1’、
b4Not8Req=’1’となる。それ以外では、b
Validがアサート、bBurstReq=’0’と
なる。
ローラから起動されると、ジェネレートアドレスブロッ
クからのGBus/BBusに対する要求をチェックす
る。G/BBusの両方の要求がある場合には、常にG
Busが優先となる。この要求に従い、GBusコント
ローラかBBusコントローラに転送要求を発行し、応
答を待つ。応答は、g/bMDone、g/bMRtr
yあるいは、g/bMBErrのいずれかの信号であ
る。
であり、次のジェネレートアドレスからのGBus/B
Busに対する要求をチェックする。
ローラに再度転送要求を発行する。
ル状態に戻る。
エストブロックは、ジェネレートアドレスからのGBu
s/BBusに対して要求待ち状態となる。DMAメイ
ンコントローラがDMA終了を検出して、DMAリクエ
ストに対してstopDMAReqが発行されるので、
それにより、DMARequestはアイドル状態に戻
る。
エラーやレジスタによるDMA強制終了の場合も、DM
Aメインコントローラから、stopDMAReqが発
行されるが、バスコントローラに転送要求をしている時
は、転送終了を待って、要求していない時は直ちにアイ
ドル状態に戻る。
ト内には、各チャネルに対応するレジスタユニットが存
在する。各ユニットは、デコードするアドレスが異なる
以外は同じである。レジスタユニットは図97に示すよ
うに、レジスタユニット0とレジスタユニット1とを有
する。
アクションコントローラ、割り込みコントローラとパワ
ーステータスの各ブロックから構成される、GBIの各
ブロックに設定地値を供給するほか、割り込みコントロ
ーラによって割り込みを制御し、パワーステータスによ
り省電力可能なブロックを制御している。
力モード可能なユニットは、DMAコントローラとFI
FOユニットである。省電力モードはfifoInSl
eep信号、dmaInSleep信号により、各ブロ
ックのクロックをマスクすることで実現する。リセット
時は、ともに省電力モードに入る。DMAコントローラ
は、マスタモードで起動をかけると自動的に起動し、G
BIFIFOスリープレジスタのライトでスリープに入
る。
パワーマネージメントステータス信号(pmState
[1:0])は、各チャネルで、 pmState[1:0] 00 level0(DMA、FIFOともに停 止) 01 level1(FIFOのみ動作) 10 level2(DMA、FIFOともに動作) 11 NotDefine となる。
ントローラ(Scc)やプリンタコントローラ(Pr
c)が接続されるGBIは、1のチャネルしかないので
上のようになるが、2チャネル含む場合は各チャネルの
値を合計し、次のように4段階に縮退させる。
mState[1:0])は、IFBusを介して機能
ブロックへ送られる。機能ブロックでは、この信号と機
能ブロック自身の動作状態を基に、パワーマネージメン
トユニットへのパワーマネージメントステータス信号を
生成する。
成する各部について説明した。ここで、GBIの動作に
ついてまとめておく。GBIの動作モードには、大きく
分けて以下のものがある。
ページ単位で分割されていることを想定) のメモリに対して転送を行う。また、対メモリDMAで
は、逆方向モードもサポートする(チャネル1のみ)。
アドレス、一行の長さ、次の行までのピッチ、及び行数
を指定する、いわゆる2次元DMAである。1次元の場
合は行数を1とすることで実現する。
各メモリブロックの先頭アドレスと長さをメモリ上に配
置し、それを参照しながら、転送先のアドレスを計算
し、DMAを行う。この先頭アドレスと長さの組をチェ
ーンテーブルと呼ぶことにする。チェーンテーブルの一
例を図98に示す。不連続物理アドレスに対するDMA
では、チェーンテーブルを配置したメモリアドレスとア
ドレス・長さの組の数を指定する。もちろん、チェーン
テーブル自体は連続アドレスに配置しなければならない
が、もし、全チェーンテーブルが連続領域に置けない場
合には、先頭のアドレスの代わりに次のチェーンテーブ
ルのアドレスを、長さに0を設定することで、チェーン
テーブルをつなぐことができる。
の1ブロック、2次元DMAの1ラインをアドレスの大
きい方から、小さい方へアクセスする。ブロックあるい
はライン単位の逆方向の指示は、チェーンテーブルDM
Aでは、チェーンテーブルを逆になるように作る。ピッ
チ付きのDMAの場合は、ピッチの値を負の値(2の補
数)を設定する。
いて説明する。DBIからの割り込みは、以下の条件で
発生する。
中のバスエラーの検出 GBI停止レジスタによる強制終了の場合、DMAコン
トローラが各バスのコントローラに要求中の転送が正常
に終了した時点で、正常終了となる。もし、要求中の転
送がバスエラーとなった場合には、バスエラーによる異
常終了となる。
のFIFOに全データを書き込んだ時点で終了する(割
り込みを発生する)が、FIFOにデータが残ってい
る。GBIはFIFOのデータを転送した時に、DMA
終了となるので、これをもって転送終了と判断する。
FOに全データを書き込んだ時点で終了する(割り込み
を発生する)が、FIFOにデータが残っている。機能
ブロックはFIFOのデータを転送した時に、終了とな
るので、これをもって転送終了と判断する。
転送は、GBIのFIFOを介して行われる。
(DoEngineでは、GBus/BBusの両方使
用可能なマスタはGBIのみ)には、両方のバスからの
同時アクセスに対して、どちらのバスが最初にFIFO
をアクセスするかを知る方法がない。マスタはGBus
/BBusに対して、排他的に転送要求を行う必要があ
る(GBIのマスタモードでは排他的に転送要求してい
る)。もし、GBus/BBusの両方が同時にFIF
Oにアクセスした場合には、FIFOイリーガルアクセ
スとなる。
対応する割り込み許可ビットが、”1”にセットされて
いる場合に割り込みが発生する。
Iと、BBus/GBus/機能ブロックとのインター
フェースをまとめたコアインターフェースの図を示す。
GBIは、BBusスレーブ動作でバスエラーを発行し
ないので、bError(Func)Out Lはな
い。また、GBIはBBusスレーブ動作でbInst
NotData信号をチェックしないので、(fun
c)bInstNotData inはなく、(fun
c)bInstNotData outは、常に”0”
をドライブする。
スエラーを発行しないので、(func)gErr L
outはない。
Func(func)には、接続される機能ブロック、
すなわちscc(スキャナコントローラ)あるいはpr
c(プリンタコントローラ)の名前を入れる。
クとして、スキャナコントローラのScc(scc)
と、プリンタコントローラのPrc(prc)がある。
いずれの場合もデータの流れが双方向でないので、不要
なFIFO、DMAコントローラ、レジスタを削除した
形でインプリメントする。
ース>図86は、プリンタコントローラ4303におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、プリンタコントローラ4303は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接
続されている。
る。
模なASICである。このため、内部のロジックが全部
同時に動作してしまうと、大量の熱を発生し、チップ自
体が破壊されてしまう恐れがある。これを防ぐために、
DoEngineは、ブロック毎の電力の管理、すなわ
ちパワーマネジメントを行ない、更にチップ全体の消費
電力量の監視を行なう。
ックが各自個別に行なう。各ブロックの消費電力量の情
報は、パワーマネージメントレベルとして、電力管理ユ
ニット(PMU)409に集められる。PMU409で
は、各ブロックの消費電力量を合計し、その値が限界消
費電力を超えないように、DoEngineの各ブロッ
クの消費電力量を一括して監視する。
りである。 ・各ブロックは、4段階のパワーマネジメントレベルを
持つ。 ・PMUは、それぞれのレベルにおける消費電力の値を
レジスタとして持つ。このレベル構成及び消費電力の値
は、PM構成レジスタ5401に保持される。 ・PMUは、各ブロックからパワーマネジメントレベル
を2ビットのステータス信号として受け取り(後述)、
レジスタ5401に設定された値と照合させて各ブロッ
クの消費電力を知る。 ・PMUは各ブロックの消費電力を加算器5403で加
算し、DoEngine全体の消費電力量をリアルタイ
ムに計算する。 ・算出された消費電力量は、構成レジスタ5401に設
定された消費電力のリミット値(PMリミット)と比較
器5404で比較され、これを超えた場合には割込発生
器5405から割り込み信号を発行する。 ・このリミット値は2段階設定することができる。1段
階目は、本当の限界から少し余裕を持たせた値を設定し
ておく。この値を超えると、通常の割込み信号が発行さ
れる。ソフトウェアはこれを受けて、新たにブロックを
起動するような転送は始めないようにする。ただ、2段
階目のリミット値に達しない範囲内では、ソフトウェア
の管理の元で、新たなブロックを起動することができ
る。2段階目のリミット値は、デバイスが破壊される恐
れのある値を設定しておく。万が一、この値を超えてし
まった時には、NMI(割込マスクが設定できない割り
込み)を発行して安全のためにシステムを停止させる。 ・割込み信号は、PMUの状態レジスタ5402をリー
ドすることで解除される。この状態レジスタ5402を
リードした時点からタイマカウントを始め、タイマがエ
クスパイアするまで消費電力量が戻らなければ、再び割
込み信号を発行する。このタイマの値の設定はPMUの
構成レジスタ5401に設定される。
ブロックのパワーマネージメント制御は、ブロック毎に
自由に構成してよい。構成例の例を示す。
のクロックをオン/オフすることにより、パワーマネジ
メントを行なっているので、消費電力のレベルは2段階
しか持っていない。このレベルをステータス信号として
電力管理ユニット409に送る。図88にバスエージェ
ントのブロック図を示す。 ・バスエージェント5501は、各ユニット毎の内部ロ
ジック5502、アドレスをデコードするデコーダ55
03、クロックコントロール部5504、クロックゲー
ト5505を含む。 ・デコーダ5503とクロックコントロール部5504
は常に動作しており、パワーマネージメントコントロー
ルとして、バスのアクティビティーの監視、内部ロジッ
クへのクロックのゲーティングを行なっている。
し、クロックのオン/オフを自動で行なう。 ・バスエージェントには、Sleep,Wake U
p,Waitの3つのステートがある。 ・Sleepはバスエージェントにアクティビティーが
なく、クロックゲートクロックを停止させている状態で
ある。 ・Sleepの状態でも、デコーダ部5503、クロッ
クコントロール部5504は動作しており、バスをモニ
タリングして、要求を待っている。 ・デコーダ5503が自分のアドレスを検出すると、ク
ロックゲート5505を開き、内部ロジックのクロック
を動作させ、バスの要求に応える。ステートはWake
Upに移行する。また、この状態を電力管理ユニット
409に通知する。 ・データ転送が終了すると、Waitステートに移行
し、次の要求を待つ。この時クロックは動作したままで
ある。要求があれば、Wake Upステートに戻り、
転送を行なう。また、要求を待っている間はタイマによ
りカウントを行ない、要求がないままカウンタがタイム
アップした場合は、Sleepステートへ移り、クロッ
クを停止させる。この状態も電力管理ユニット409に
通知される。
えないように管理している。
ナから読み込んだ画像データをそのままプリンタへ転送
して、プリンタで画像形成する動作をコピー動作を行う
ことができる。本実施形態のDo Engineを用い
たスキャナ/プリンタシステムでは、以下に示す3種類
のコピーの方式がそのシステム構成に応じて選択され
る。
画像入力の垂直・水平タイミングと、プリンタによる画
像出力の水平・垂直タイミングがそれぞれ一致してい
て、ビデオデータの転送速度も一致している組み合わせ
のシステムにおける方式である。
ら出力されて、プリンタコントローラ(PRC)に入力
される。このVSYNC信号は、プリンタコントローラ
(PRC)からCPバスを介してスキャナコントローラ
(SCC)に入力される。そして、スキャナコントロー
ラ(SCC)からスキャナに対して出力される。これに
より、プリンタとスキャナの垂直同期がとられる。水平
同期についても、垂直同期信号VSYNCと同様に、水
平同期信号(HSYNC)がプリンタから出力され、プ
リンタコントローラ,CP−バス,スキャナコントロー
ラを介してスキャナに入力される。これによりスキャナ
とプリンタとの水平同期がとられる。このように、垂直
方向及び水平方向の同期がとられてスキャナとプリンタ
が動作する。ビデオデータは同期用のビデオクロックと
ともにスキャナから出力される。出力されたビデオクロ
ックとビデオデータはスキャナコントローラ(SCC)
に入力され、CPバスを介して、プリンタコントローラ
(PRC)に入力される。そして、プリンタコントロー
ラ(PRC)からプリンタに出力される。プリンタでは
ビデオクロックに同期してビデオデータを受け取り、画
像出力をおこなう。
り行われる。このコピー動作ではGバスおよびBバスを
使用せずにコピー動作がおこなわれる。
を介してスキャナからプリンタへ直接転送されるが、同
時にスキャナコントローラ(SCC)からGバスのDM
A転送によってSDRAMへ書き込むことが可能であ
る。コピー動作と同時にSDRAMに書き込まれた画像
データは、必要に応じて画像データとして格納すること
等が可能となる。また、SDRAM上の画像データをプ
リンタへ出力することにより、スキャナで読み取った画
像データを複数部の出力することが、スキャナの動作な
しに可能となる。
画像入力の水平タイミングと、プリンタによる画像出力
の水平タイミングとが一致しており、垂直タイミングと
ビデオデータの転送速度がそれぞれ一致していない組み
合わせのシステムにおける方式である。
る。スキャナが画像を読み取り始めると、垂直同期信号
(VSYNC)、水平同期信号(HSYNC)、ビデオ
クロックという3つのタイミング信号がスキャナコント
ローラ(SCC)に入力される。ビデオクロックに同期
してビデオデータもスキャナコントローラ(SCC)に
入力される。上記タイミング信号に同期して、スキャナ
コントローラ(SCC)はビデオデータを内部のFIF
O(FIFO SCC)に取り込む。FIFO SCCに
画像データが入り始めると同時に、FIFO SCCか
ら、スキャナのGバス/BバスI/Fユニット4301
A(GBI SCC)のFIFO(FIFO GBI
SCC)にデータ転送が開始される。スキャナからの画
像データは、FIFO SCCを介して順次FIFO
GBI SCCに転送される。FIFO GBI SC
Cにデータが入り始めると、プリンタのGバス/Bバス
I/Fユニット4301B(GBI PRC)がマスタ
ーで、スキャナのGバス/BバスI/Fユニット430
1A(GBI SCC)がスレーブとなるDMA転送が
開始される。この時のバスは、Gバスが空いていればそ
ちらを利用するが、空いていなければBバスであっても
良い。
の画像データはGBI PRC内のFIFO(FIFO
GBI PRC)へ転送される。FIFO GBI
PRCの画像データは、順次プリンタコントローラ(P
RC)のFIFO(FIFO PRC)へ転送される。F
IFO PRCに画像データが入り始めると、プリンタ
コントローラ(PRC)はプリンタに垂直同期信号(V
SYNC)を入力する。プリンタからは、VSYNCの
タイミングにより、水平同期信号(HSYNC)とビデ
オクロックを出力しはじめる。プリンタコントローラ
(PRC)は水平同期信号HSYNCで水平同期をと
り、ビデオクロックに同期して、ビデオデータをFIF
O PRCから出力する。そのビデオデータをプリンタ
が画像出力する。
キャナ,スキャナコントローラのFIFO(FIFO
SCC),Gバス/BバスI/FユニットのFIFO
(FIFO GBI SCC),Gバス/BバスI/F
ユニットのFIFO(FIFO GBI PRC),プリ
ンタコントローラのFIFO(FIFO PRC),プ
リンタの順で転送されて、画像コピー動作がなされる。
水平同期の間隔はスキャナとプリンタとで同一であるの
で、画像データの転送速度の違いは各FIFOにより緩
衝される。
ンタの垂直同期タイミング、水平同期タイミング、ビデ
オデータの転送速度がそれぞれすべて異なる組み合わせ
のシステムにおける方式である。
する。スキャナで画像の読み取りが開始すると、スキャ
ナは垂直同期信号(VSYNC)、水平同期信号(HS
YNC)、ビデオクロックをスキャナコントローラ(S
CC)に出力する。これらのタイミング信号に同期して
画像データが出力される。スキャナコントローラ(SC
C)は上記タイミング信号に同期して画像データを取り
込む。取り込まれた画像データはGBI SCCによ
り、DMA転送でメモリコントローラ(MC)403へ
転送される。MC403では、DMA転送された画像デ
ータをSDRAMに書き込む。SDRAMに書き込まれ
た画像データの量が、スキャナとプリンタの画像データ
転送速度の差を緩衝できる量に達すると、プリンタへの
画像データ転送が開始される。この画像データ量の判定
は、スキャナからのデータ転送時間による判定、SDR
AMに書き込まれるアドレスによる判定、GBI SC
CにおけるDMA転送量の判定等、種々の方式がある。
ントローラ(PRC)により行われる。プリンタコント
ローラ(PRC)は、GBI PRCのDMA転送によ
り、SDRAMに書き込まれた画像データを順次内部の
FIFOへ入力する。同時にプリンタへ垂直同期信号
(VSYNC)を出力する。その後、プリンタからは水
平同期信号(HSYNC)とビデオクロックを入力す
る。このHSYNCとビデオクロックと同期して、プリ
ンタコントローラ(PRC)は内部のFIFOから画像
データをプリンタへと出力する。上記画像データの流れ
により、スキャナで読み取られた画像データをプリンタ
から出力するコピー動作がおこなわれる。この場合の画
像データの流れは、スキャナ,スキャナコントローラ,
スキャナのGバス/BバスI/Fユニット(GBI S
CC),メモリコントローラ(MC),SDRAM,メ
モリコントローラ(MC),プリンタのGバス/Bバス
I/Fユニット(GBI PRC),プリンタコントロ
ーラ(RRC),プリンタの順となる。このように、一
旦メモリに格納し、それをスキャナとプリンタとの間の
緩衝メモリとして、スキャナからプリンタへと画像デー
タを転送し、コピーを行う。
を有する。(方式1)、(方式2)、(方式3)の順で
コピー動作時に動作する内部ブロックが多くなる。内部
ブロックの使用率が増加すると、システム全体のパフォ
ーマンスが効率を低下させる要因となりうる。本システ
ムは接続されるデバイス(プリンタ・スキャナ)に応じ
て、システム全体が最も効率的なコピー動作方式を選択
することが可能である。
ば次のようなものがある。 UART等を介して指定するコピー方式そのものを入
力させ、指定された方式でコピー動作を行う。 プリンタとスキャナのデータ転送速度や水平・垂直同
期周波数等、必要なパラメタをUART等から入力さ
せ、それらの値に応じて上記3通りの方式からCPU4
01がひとつを選択し、その方式でコピー動作を行わせ
る。 プリンタコントローラがプリンタのデータ転送速度や
水平・垂直同期周波数等、必要なパラメタを読取り、ス
キャナコントローラがスキャナからデータ転送速度や水
平・垂直同期周波数等、必要なパラメタを読取り、それ
らをCPU401により比較判定してコピー動作の方式
を決定する。
選択されたコピー方式はCPUからプリンタコントロー
ラ及びスキャナコントローラに知らされ、その方式でプ
リンタコントローラ及びスキャナコントローラ等により
コピーを行わせる。
る手順を説明する。
のコピー方式からシステムで使用するコピー方式を選択
する手順のフローチャートである。この動作はシステム
の電源立ち上げ時、ステップS1から開始される。
が行われる。CPU401はプリンタコントローラ43
03を介して、プリンタビデオI/Fに含まれるコマン
ド/ステータスラインを通じて、プリンタから種別を示
すIDを取得する。このコマンド/ステータスライン
は、プリンタコントローラとプリンタとが1対1にコマ
ンド/ステータスのやりとりができるシリアル通信ライ
ンである。
ナコントローラ4302を介して、スキャナビデオI/
Fに含まれるコマンド/ステータスラインを通じ、スキ
ャナから種別を示すIDを取得する。
判定された、スキャナとプリンタの組み合わせに適した
コピー経路の判定が行われる。スキャナとプリンタの組
み合わせに適したコピー経路の判定は、あらかじめテー
ブルの形式で、例えば、フラッシュROM等のCPUが
参照可能なメモリに準備されている。各コピー経路に適
したスキャナとプリンタの組み合わせは次のようなもの
がある。(方式1)スキャナとプリンタの水平、垂直タ
イミングが同期していて、ビデオデータの転送速度も同
期している組み合わせ (方式2)スキャナとプリンタの水平同期タイミングの
速度が同一で、垂直タイミングとビデオデータの転送速
度は同期していない組み合わせ (方式3)スキャナとプリンタの垂直同期タイミング、
水平同期タイミング、ビデオデータの転送速度がそれぞ
れ異なる組み合わせCPUは、あらかじめ用意されたテ
ーブル参照において、上記3方式から適切なコピー方式
を選択する。
れたコピー方式に応じたモード設定がスキャナコントロ
ーラ4302に対してなされる。このモード設定は、C
PUがBBusを介して行う。
2内部のデータバスの切り換え回路を示す図である。な
お、データバスセレクタは、図44のスキャナデバイス
I/F4401に含まれる。また、データバスの切り替
えの説明に不用なスキャナビデオクロックユニット等は
省略した。
定される。CPUは、図100のステップS4において
選択したコピー方式に応じたモードをレジスタ1に設定
する。セレクト制御信号4は、モード設定レジスタ1に
設定されたモードに応じてデータパスを選択するための
信号である。スキャナビデオバス2は、スキャナからの
ビデオデータのバスである。バス5は、スキャナからの
ビデオデータをFIFO SCC6に転送するバスであ
る。CPビデオバス7は、(方式1)のコピー動作を行
う場合に使用されるバスである。スキャンビデオバスか
らのビデオデータは(方式1)の場合はCPビデオバス
7に出力するようにデータパスがセレタトされる。(方
式2)、(方式3)の場合にはバス5にビデオデータが
出力されて、FIFO SCC4407に転送される。
る。ステップS6では、GBI sccの動作モード設
定を行う。このモード設定はCPUがステップS4で選
択したコピー方式に基づいて行う。(方式1)では、G
BI sccは非動作指定される。(方式2)では、D
MA転送のマスター指定がなされ、DMAの転送先には
GBI prcが設定される。(方式3)ではDMA転
送のマスター指定がなされ、DMAの転送先にはSDR
AMが設定される。
動作モード設定を行う。このモード設定はCPUがステ
ップS4で選択したコピー方式に基づいて行う。(方式
1)では、GBI prcは非動作指定がなされる。
(方式2)ではDMA転送のスレーブ指定がなされる。
(方式3)では、DMA転送のマスター指定がなされ、
DMA転送の読み出しもとはSDRAMが設定される。
ーラのモード設定がなされる。このモード設定はステッ
プS4で選択されたコピー方式に基づいてCPUが行
う。
3内部のデータバスの切り換え回路を示す図である。レ
ジスタ11には、データバスのモードが設定される。C
PUは、図100のステップS4において選択したコピ
ー方式に応じたモードをレジスタ11に設定する。セレ
クト制御信号14は、モード設定レジスタ11に設定さ
れたモードに応じてデータバスのセレクトを行う信号で
ある。バス15は、FIFO PRC16から出力され
るデータのバスである。バス12は、プリンタへのビデ
オデータバスである。CPビデオバス17は、(方式
1)のコピー動作を行う場合に使用する。プリンタへの
ビデオデータは(方式1)の場合はCPビデオバスのデ
ータがセレクトされ、出力される。(方式2)、(方式
3)の場合にはバス15からのデータがプリンタビデオ
バス12に出力される。
方式選択のフローが終了する。以上のようにして、CP
Uはスキャナ及びプリンタの種別に応じたコピー方式を
決定することができる。
の垂直同期タイミング、水平同期タイミング、ビデオデ
ータの転送速度に基づいて、コピー動作の方式を決定す
る手順であるが、単なるコピーでなく、画像の加工が加
わる場合にはこの限りではない。すなわち、図100の
ステップ2の前に、画像データを加工するか否かを判定
し、画像データを加工する場合には、スキャナ及びプリ
ンタの仕様に関わりなく、方式3を選択し、ステップS
5〜S8における設定では、データの径路が方式3にな
るよう各ブロックの設定を行う。こうすることで、画像
データを加工する場合には読み込んだ画像データはいっ
たんメモリに格納されるため、そこで画像データに対し
て必要な加工を施すことができる。
用する。この際、GバスあるいはBバスのいずれを使用
するかは、各バスの使用状況により決定される。すなわ
ち、Gバス/Bバスともにアイドル状態であれば、バス
幅の広いGバスを使用する。いずれかが使用中であれ
ば、未使用の方を使用する。
おいては、スキャナは、スキャナコントローラ4302
及びGBI SCC4301Aを介してバス(Gバス及
びBバス)に接続されている。スキャナコントローラ4
302及びGBI SCC4301Aは、それぞれFI
FOを介して互いに画像データを転送するように接続さ
れている。このように、それぞれがFIFOを有してい
るために、GBIは、64ビット幅で動作クロックが1
00MHzという非常に高速なGバスに接続されている
にも関わらず、比較的低速なスキャナから読み込まれた
画像データを効率的に転送することができる。これは、
プリンタコントローラに関しても同様である。
期信号の一致・不一致に応じて、コピー時のデータ経路
を選択することで、スキャナ及びプリンタの仕様がどの
ようなものであろうとも、可能な限り速いデータ転送を
用いてコピーを行うことができる。
びプリンタコントローラ及びそれぞれのGBIを用いて
スキャナ及びプリンタをDoEngineのバスに接続
することで、スキャナ及びプリンタの仕様からのDoE
ngineの独立性をより高めることが可能となった。 [その他の構成例]図9及び図10で示したキャッシュ
の動作手順は、図103及び図104のようなものであ
ってもよい。
転送が開始されると、その最初にMCバスで示されるm
TType[60:0]によってその転送をキャッシュ
オンで行うかオフで行うか判断される。ここでは、転送
がバースト転送の時、そのバースト転送データ量がキャ
ッシュの1ラインのデータ量より大か小かによって判断
する。なお、キャッシュの1ラインは256ビット=4
バースト分である。
転送の開始でmTType[3:0]をチェックし、m
TTypeが示すバースト長が1/2/4であれば、キ
ャッシュオンで動作し、6/8/16/2×16/3×
16/4×16の場合はキャッシュオフで動作する。キ
ャッシュオンあるいはオフ後の動作は、図9及び図10
と同様である。
バイスによってキャッシュのオンオフを切り替えること
もできる。図105において、メモリコントローラは転
送の開始でmTType[6:4]をチェックすること
により転送要求デバイスを識別し、そのデバイスの転送
要求をキャッシュオンで動作するか、オフで動作するか
を判断するために、あらかじめ設定されている構成レジ
スタの値を参照し、キャッシュオンで動作するか、オフ
で動作するか決定する。キャッシュオンあるいはオフ後
の動作は、図9及び図10と同様である。構成レジスタ
の設定は、ハードウエア的に決定(変更不可)していも
良いし、ソフトウエアで書換え可能にしてもよい。
図107〜図108を用いて説明する。本実施形態は、
デジタル複合機に投入された種々のジョブをページ単位
に処理をするためにデバイスの獲得と開放を並列に行い
情報を処理するものである。
テムの構成図であり、同図中、101a,102a,1
03aはホストコンピュータで、種々のジョブを生成し
周辺機器にジョブを送信する。104aはデジタル複合
機で、プリントジョブ、スキャンジョブ、ファックスジ
ョブ、コピージョブ等、種々のジョブを実行処理する。
第1、第2のホストコンピュータ101a,102a及
びデジタル複合機104aは、それぞれがLAN(ロー
カルエリアネットワーク)105aに接続されており、
デジタル複合機104aを使用することができる。
は、LANではなくパラレル(またはシリアル)等のイ
ンターフェース106aを介してデジタル複合機104
aに接続され、該デジタル複合機104aを使用するこ
とができる。
テムの基本的な構成を示すブロック図であり、同図にお
いて、201aはCPU(中央演算処理装置)で、本シ
ステム全体の制御及び演算処理等を行う。207aはエ
ンジンインターフェース(エンジンI/F)で、実際に
エンジンを制御するコマンド等をやり取りする。
(ネットワークI/F)で、このネットワークI/F2
08aを介して機器がネットワークに接続される。
/F)で、パラレル(またはシリアル)等のインターフ
ェースを介してホストコンピュータと接続される。21
0はシステムバスで、上述した各構成要素間のデータの
通路となる。
ス(エンジンI/F) 207a、ネットワークインタ
ーフェース(ネットワークI/F) 208a、外部イ
ンターフェース(外部I/F)209aはDoEngi
ne201(図2)を構成する。
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。203aはRAM(ランダムアク
セスメモリ)で、使用期限のない記憶領域で、ダウンロ
ードにより追加登録されたフォントデータが記憶された
り、様々な処理ごとにプログラムやデータがロードされ
実行される。
記憶装置で、印刷装置(プリンタ)が受け付けた印刷ジ
ョブ(プリントジョブ)をスプールしたり、プログラム
や各種情報ファイル等が格納されたり、作業用の領域と
して利用される。
装置の設定状態や、現在の印刷装置内部の処理状態や、
エラー状態等を表示する。
更したり、リセットするために使用される。
ル複合機104aの内部ソフトウエア構造を示す図であ
り、同図において、301はホストコンピュータ(図1
07の101a〜103aに相当する)である。302
はコントローラソフトウェアで、その内部はプロトコル
解釈部303、ジョブ制御部304及びデバイス部30
5に分割されている。
ュータ301から図1のLAN105または図2の外部
I/F209を介して送られてきたコマンド(プロトコ
ル)を解釈して、ジョブ制御部304に対してジョブの
実行を依頼する部分である。また、ジョブ制御部304
は、プロトコル解釈部303の依頼したジョブを実際に
処理する部分である。更に、デバイス部305は、ジョ
ブ制御部304がジョブを実行する際に使用される。
02の概略を説明するためのブロック図である。同図に
おいて、303はプロトコル解釈部、304はジョブ制
御部、305はデバイス部である。ジョブ制御部304
は、ジョブ生成部401a、ジョブ処理部402a、ド
キュメント処理部403a、ページ処理部404a、バ
ンド処理部405a、デバイス割り当て部406aを有
している。
407a、第2デバイス408a及び第3デバイス40
9aを有している。
103aから送られてきた一連の操作依頼は、コマンド
(プロトコル)という形で、ネットワークI/F208
a及び外部I/F209aを介して送られてくる。送ら
れてきたコマンドは、プロトコル解釈部303で解釈さ
れた後、ジョブ制御部401aに送られる。この時点で
コマンドは、ジョブ制御部304が理解できる形に変換
されることになる。
生成する。このジョブ410aはコピージョブ、プリン
トジョブ、スキャンジョブ及びファックスジョブ等、様
々なものが考えられる。
書の名前や印刷部数、出力先の排紙トレイの指定等の設
定情報や、印刷データ自体(PDLデータ)等も含まれ
る。ジョブ410aはジョブ処理部402aに送られ、
処理が行われる。ここでは、ジョブ410a全体に関す
る設定(複数の文書をまとめて印刷しステープルする
等)や処理が行われる。
410a全体に関する設定や処理以外は、更に小さな仕
事の単位である入力ドキュメント411aに分割する。
入力ドキュメント411aは、ドキュメント処理部40
3aにより出力ドキュメント414aに変換処理され
る。
み取り、複数のイメージデータに変換するスキャンジョ
ブを考えると、原稿の束に関する設定や操作の手順が書
かれているのが入力ドキュメント411aであり、複数
のイメージデータに関する設定や操作の手順が書かれて
いるのが出力ドキュメント414aである。そして、紙
の束を複数のイメージデータに変換する役割を持ってい
るのがドキュメント処理部403aである。
キュメント単位の処理のみ行い、更に小さな仕事の単位
である入力ページ412aを生成する。これは、ちょう
どジョブ処理部402aがジョブ単位の処理に専念し
て、更に細かい仕事のためにドキュメントを生成するの
と同じである。ドキュメント単位の設定及び操作は、具
体的にはページの並び替え、両面印刷の指定、表示の付
加、OHP中差し等のページ順序に関するものである。
404aにより出力ページ415aに変換される。例え
ば、上記の例のスキャンジョブの場合は、入力ページ4
12aには読み取りの解像度、読み取りの向き(ランド
スケープ/ポートレイト)等の設定や手順が書かれてお
り、出力ページ415aにはイメージデータの格納場所
(RAM203aや外部記憶装置204aのアドレスや
データ名)等の設定や手順が書かれている。
単位に分解して扱えるようになる。
メモリを持てるならば、最終的にページ単位までジョブ
を詳細化すればよい。しかし、現実にはメモリのコスト
等の問題や、印刷エンジンがインクジェットプリンタの
ような低速の場合には、数ライン分のメモリ(バンドメ
モリ)しか持たないシステムも考えられる。そのような
場合には、ページを更に細かい単位であるバンドに分け
て扱う。それが入力バンド413a、バンド処理部40
5a、出力バンド416aの役目である。これらの動作
に関しては、ページの場合と同様である。
部403a、ページ処理部404a及びバンド処理部4
05aは、いずれも処理を進める際にデバイスを使用す
る。複数の処理部が同時に仕事を進めるとデバイスの競
合が発生するので、それを調停するのがデバイス割り当
て部406aである。第1〜第3デバイス407a〜4
09aは、デバイス割り当て部406aにより上記処理
部に割り当てられるデバイスである。
ンドメモリ、ドキュメントフィーダー、マーキングエン
ジン及びスキャナ等が考えられる。
ジョブをページ単位に分解して、デバイスの割り当てを
行う処理を示した。次に、図111を用いて複合したジ
ョブの処理を説明する。
コピージョブであれば、スキャンジョブと、プリントジ
ョブとに分割され、FAX受信ジョブであれば、データ
の受信ジョブと、受信したデータのプリントジョブとに
分割される。分割されたジョブはページ単位にデバイス
が割り当てられ、処理される。以下その処理内容につい
て説明する。なお、情報処理システムの基本的な構成
は、上述した単一ジョブの分割で説明した図107〜図
109と同一であるから、必要に応じてこれらの図を流
用して説明する。
理システムにおける周辺機器のソフトウェア構造の詳細
を示す図である。同図において、303はプロトコル解
釈部、304はジョブ制御部、305はデバイス部であ
る。
では、2つのジョブ(スキャンジョブとプリントジョ
ブ)に分割され処理される。図107のホストコンピュ
ータ101a〜103aから送られてきた一連の操作依
頼は、コマンド(プロトコル)という形で図108のネ
ットワークI/F208a及び外部I/F209aを介
して送られてくる。
部303で解釈された後、ジョブ制御部304へ送られ
る。この時点でコマンドは、ジョブ制御部304が理解
できる形に変換されることになる。ジョブ生成部401
aは図110のジョブ410aを生成する。本実施の形
態では、コピージョブが生成されることになる。
1の複合ジョブ処理部501に送られ、スキャンジョブ
514とプリントジョブ521が生成される。スキャン
ジョブ514とプリントジョブ521は、生成と同時に
それぞれスキャンジョブ処理部502、プリントジョブ
処理部506に送られる。当然ながらスキャンの動作が
始まりプリンタ512に出力するデータができあがる
(または、準備ができる)ような状態にならないと、プ
リントの動作を開始することができない。従って、スキ
ャンに関する処理部(502,503,504,50
5)とプリントに関する処理部(506,507,50
8,509)は、中間データを意味する中間ドキュメン
ト518、中間ページ519、中間バンド520を介し
て同期をとりながら処理を進めることになる。当該コピ
ージョブでは、使用するデバイスとしてスキャナ51
0、ページメモリ511、プリンタ512が挙げられ
る。
図である。ホストコンピュータ301から送られてきた
コマンドがコピージョブである場合、ジョブ制御部30
4の処理は、コピージョブを更にプリントジョブとスキ
ャンジョブとに分割し、分割したジョブを処理するため
のデバイス(例えば、プリンタ、スキャナ、メモリ等)
が割り当てられ、それぞれ処理が進められる。
して、各々の処理を実行するデバイスの割り当てと解放
を先に説明したDoEngineと組合わせて行うこと
により、効率的な複合機の制御が可能になることを以下
に説明する。
て、コピー動作を行う場合のデータの流れを説明する。
この場合、処理系のデバイスとして割り当てられるのは
スキャナとプリンタである(図5の514、521)。
スキャンジョブ(514)の場合、スキャナからのイメ
ージデータはスキャナコントローラ4302により制御
され、GBUs404、システムバスブリッジ402を
介してメモリ403に書込まれる。プリントジョブの場
合、メモリ403に書込まれたデータは、システムバス
ブリッジ402、BBus405を介してプリンタコン
トローラ4303に送られプリント処理される。Dua
l−Bus構成とすることにより、Busの占有を解消
し、並列的に、CPU、メモリへのアクセスが可能にな
る。データの入力と平行して、出力を並列したタイミン
グで行うことが可能になる。
を分割したスキャンジョブ514とプリントジョブ52
1とは並列して処理することが可能になる。
入出力処理を行う際のデバイスの割り当てと解放を次に
説明する。
デバイス例として、ジョブ単位にシリアルに処理した従
来の場合(図113(a))と,本実施形態において、
ページ単位に並列に処理した場合(図113(b))の
デバイスの割り当てと解放をタイミングチャートとして
示した図である。
スの割り当ては時刻T1でスキャナが割り当てられ、時
刻T2で解放される。続いてプリンタが時刻T3で割り
当てられ、時刻T4で解放される。後続のジョブ2で必
要となるスキャナ処理は時刻T5で割り当てられるが、
ジョブ1の処理でT2からT4までの時間帯はスキャナ
の空き時間であり、ジョブ2に対するむだ時間となる。
ジョブ2のプリンタはスキャナの解放(時刻T6)後、
時刻T7で割り当てられ時刻T8で解放される。
バイスは処理可能な状態であるにもかかわらず、入力す
るべき情報の仕掛かりによりデバイスが処理に着手でき
ない時間をいう。
デバイスの割り当ては時刻T1でスキャナが割り当てら
れ、時刻T2で解放される。DoEngineによる処
理の並列化により、スキャナの解放前(時刻T2)に、
プリンタの割り当てが行われる(時刻T1a)。ジョブ
2に対するスキャナの割り当ては、時刻T2以降、可能
になる。例えば、T1cにスキャナの割り当て要求があ
った場合、T1cからT2までがスキャナ割り当てまで
の待機時間となる。
解放前(時刻T1d)に可能であり、時刻T1b以降割
り当てられ、時刻T1fに解放される。プリンタの割り
当て要求が時刻T1eにあった場合、T1eからT1b
までの時間帯はプリンタ割り当てまでの待機時間であ
る。以上の説明はコピージョブ同士を例に説明したが、
コピーとFAX、コピーとPDLプリント等を処理する
場合でも同様である。ジョブ1及び2のスループットは
(a),(b)を比較するとT8−T1fと短縮され
る。
ータはすでに用意されておりデバイスの解放待ちとなる
時間をいい、入出力データの並列的な処理を可能にし、
データの仕掛かりを解消する点において、従来とは異な
るものである。ジョブのプライオリティなどの条件を反
映した、アービトレーションをDoEngineにより
行いデバイスの割り当てを制御することにより、「待機
時間」の最適化(最短化)が可能である。
刷、コピー等があり、デバイス割り当て部406aは第
1〜第3デバイス407a〜409aの割当てを行う。
デバイスには、例えば、ページメモリやバンドメモリ、
ドキュメントフィーダー、マーキングエンジン及びスキ
ャナ等も含まれる。
3bとが生成された場合のブロック図である。基となる
ジョブが種々生成された場合であても、先に説明したよ
うに、ページ単位の分割を行い、並列的にデバイスの割
り当てと解放を行う点においては同様である。
−Bus(GBus404、BBus405)とを用い
たDoEngineアーキテクチャによれば、データ処
理の競合を解消することが可能となり、従来はインタフ
ェース等にローカルに保有していたメモリが不要とな
る。1元的に集中管理されたメモリ403により、情報
を共有することが可能になる。
08に示した構成では、リアルタイム性の要求される処
理部もリアルタイム性の低い処理部も共通のCPUを用
いていたが、DoEngineをサテライトとして使用
し、CPUの使い分けを行うことで、リアルタイム性を
更に向上させることができる。
うな構成を用いてもよい。図115(a)において、P
C115−1、115−2はホストコンピュータであ
り、115−3はDOEngineを備えたサテライト
PCである。DOEngineはPCIバスインターフ
ェースを有するので、PCIバススロットを有するコン
ピュータシステムと共に用いることができる。スキャナ
115−4、プリンタ115−5はPCIスロットを介
してPC115−3と接続したPCIサテライト構成と
なる。図115(b)はホストコンピュータと、サテラ
イトPCとが並列に接続した図(115−6、115−
7)であり、PCIバスを介して次世代複合機能周辺機
器(MFP)と接続した図である。
は、図115で示したサテライトPCにおけるDOEn
gineの接続に関するブロック図である。同図におい
て、DOEngine116−1はCPU401を備
え、リアルタイム性の高いジョブを優先的に処理をす
る。
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。
モリ)で、使用期限のない記憶領域で、ダウンロードに
より追加登録されたフォントデータが記憶されたり、様
々な処理ごとにプログラムやデータがロードされ実行さ
れる。
部記憶装置で、印刷装置(プリンタ)が受け付けた印刷
ジョブ(プリントジョブ)をスプールしたり、プログラ
ムや各種情報ファイル等が格納されたり、作業用の領域
として利用される。
刷装置の設定状態や、現在の印刷装置内部の処理状態
や、エラー状態等を表示する。
変更したり、リセットするために使用される。
(エンジンI/F)で、実際にエンジンを制御するコマ
ンド等をやり取りする。
ス(ネットワークI/F)で、このネットワークI/F
208aを介して機器がネットワークに接続される。
I/F)で、パラレル(またはシリアル)等のインター
フェースを介してホストコンピュータと接続される。2
10はシステムバスで、上述した各構成要素間のデータ
の通路となる。
エアの構成を示す図である。同図において、リアルタイ
ム性の低い部分とリアルタイム性の高い部分とを分割し
て処理する。全体の処理を単一のCPUでまかなうので
はなく、ホストコンピュータとサテライトコンピュータ
とでそれぞれ処理を使い分けることにより、CPUの負
荷を軽減し、システム全体としての処理能力の向上を図
ることができる。
7−3の処理は、リアルタイム性の要求は低いのでPC
117−2(例えば、図115のPC115−1、11
5−2)のCPUで処理し、解釈されたコマンドはPC
Iバスを介してサテライトコンピュータ117−6(図
115のPC115−3)に送られ、DoEngine
のCPUでリアルタイムに処理される。送られたコマン
ドはサテライトコンピュータで、ジョブ制御され(11
7−4)、デバイスの割付、解放が行われる(117−
5)。
単位にジョブ処理を分割し、その処理のためのデバイス
の割り当てと解放をDOEngineを用いて並列的に
行うことで、スループットの向上を図ることができる。
ムの構成例の図である。
ムの構成例の図である。
ムの構成例の図である。
トを示す図である。
である。
る。
細なブロック図である。
された場合のキャッシュの動作を示すフローチャートで
ある。
求された場合のキャッシュの動作を示すフローチャート
である。
示す図である。
を示すタイミング図である。
を示すタイミング図である。
イミングを示すタイミング図である。
イミングを示すタイミング図である。
のシングル読み出しのタイミングを示すタイミング図で
ある。
た場合のシングル読み出しのタイミングを示すタイミン
グ図である。
のシングル書き込みのタイミングを示すタイミング図で
ある。
た場合のシングル書き込みのタイミングを示すタイミン
グ図である。
ロック図である。
る。
図である。
スのアドレス空間でのメモリマップ、Bバスのアドレス
空間でのメモリマップの図である。
12メガバイトを示すマップの図である。
る。
る。
タイミング図である。
図である。
イミング図である。
イミング図である。
イミング図である。
イミング図である。
ク図である。
図である。
04を中心とする、Gバス上のバスマスタによるDMA
に係るブロック図である。
1〜4のすべてについて1に設定されている場合の公平
アービトレーションモード(フェアモード)の例を示す
図である。
1についてのみ2であり、他のバスマスタは1に設定さ
れている場合の公平アービトレーションモードの例を示
す図である。
つであり、バスマスタ1が優先バスマスタと設定されて
いる場合の優先アービトレーションモードの例を示す図
である。
スタ4のバス要求が許可されているにもかかわらず中断
された例を示す図である。
である。
図である。
である。
図である。
ブロック図である。
ック図である。
ック図である。
のブロック図である。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
らびを示す図である。
を示す図である。
多値8ビットの白黒画像データを64ビット幅に変換す
る際のタイミング図である。
データを64ビット幅に変換する際の画像データ入力の
タイミング図である。
RGB各8ビット(全24ビット)の画像データを64
ビット幅に変換する際のタイミング図である。
ク図である。
ラ4403のブロック図である。
4404のブロック図である。
ある。
ブロック図である。
読み出してDMA転送する際のタイミング図である。
タに対して読み出しあるいは書き込みを行うタイミング
図である。
ロックの状態と信号sccPmStateの値との関係
を示す図である。
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
である。
図である。
ブロック図である。
ック図である。
802のブロック図である。
ク図である。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
らびを示す図である。
を示す図である。
である。
ラ6603のブロック図である。
6604のブロック図である。
ある。
ある。
ユニット6606のブロック図である。
ト6607のブロック図である。
MA転送する際のタイミング図である。
タに対して読み出しあるいは書き込みを行うタイミング
図である。
ロックの状態と信号prcPmStateの値との関係
を示す図である。
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
る。
ーラへと直接画像データを転送してコピーする画像のコ
ピー方式で使用されるブロックを示す図である。
ーラへと、FIFOを介して画像データを転送してコピ
ーする画像のコピー方式で使用されるブロックを示す図
である。
ーラへと、メモリを介して画像データを転送してコピー
する画像のコピー方式で使用されるブロックを示す図で
ある。
る。
トである。
タバスの切り換え回路を示す図である。
タバスの切り換え回路を示す図である。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
ムの構成図である。
ムにおける周辺機器の基本的な構成を示すブロック図で
ある。
ムにおける周辺機器のソフトウェア構造を概要を示す図
である。
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
場合のタイミングチャートである。
明する図である。
明する図である。
する場合のシステムの構成例を示した図である。
で別々に処理する場合を説明する図である。
ソフトウェア構造の概要を示す図である。
ナ) 4301B Gバス/Bバスインターフェース(プリン
タ) 4302 スキャナコントローラ 4303 プリンタコントローラ
6)
クス(FAX)、複写機等、複合機器に関して情報を処
理する方法及びシステムに関する。
リンタなどの画像出力装置とを組み合わせた複写機やフ
ァクシミリ、あるいはそれらを単体として備えたコンピ
ュータシステムなど、複合機器と呼ばれる画像処理装置
が実用化されている。このような装置では、画像入力機
能、画像出力機能、コピー機能等の複合機能を実現する
ために、画像入力装置及び画像出力装置が同期して動作
することが不可能な場合には、画像入力装置から一旦メ
モリに取り込んだ画像データを画像出力装置に出力する
ことでコピー機能を実現していた。また、画像入力装置
及び画像出力装置が同期して動作することが可能な場合
には、画像入力装置から画像出力装置へ直接画像信号を
転送する経路を設けてコピー機能を実現していた。
クス機能を追加したものや、ファックスにプリンタ機能
を追加したもの等、従来機の機能追加という形で発展し
てきており、複合動作ができてもジョブ単位の複合動作
及び並列動作しか行えなかった。従来のデジタル複合機
では、扱う種々のデータを入出力のために授受する十分
なバスの使用が確保できない場合のために、スキャナ、
プリンタ等のインタフェース部にローカルなメモリを分
散させた構成となっていた。
の、ジョブ処理を説明するタイミングチャートである。
プリントジョブ1及びプリントジョブ2が複合機器で処
理するべきジョブである。これらのジョブが、あるリソ
ース(例えばページメモリ)を獲得する場合を考える。
時刻T1で先に投入されたプリントジョブ1がリソース
を獲得する。T2のタイミングで後続のプリントジョブ
2がリソースの獲得を行うが、プリントジョブ1がリソ
ースを占有しており(ロック)しており、獲得できず、
リソースの獲得要求はキューイングされる。そしてT3
のタイミングでプリントジョブ1がリソースを開放する
と、キューイング中のプリントジョブ2のリソース獲得
要求に従い、プリントジョブ2がリソースを獲得し、処
理を行う。つまり、T1からT3の時間、プリントジョ
ブ1は排他的にリソースを使用するためにプリントジョ
ブ1とプリントジョブ2の処理はシリアルになる。
デジタル複合機では、一連のジョブの処理をジョブ単位
ごとに順序だてて実行させていたために、複数のジョブ
がデジタル複合機に入力された場合は先行するジョブの
処理終了まで、後続のジョブは待機状態となり、ジョブ
のスループットは低下した。
リは、デバイスごとに重複した情報を格納する場合もあ
り、必要な領域以上の冗長なメモリ領域を必要としてい
た。
理を単一のCPUでまかなう場合、リアルタイム性を必
要とする処理が、リアルタイム性を要さない処理の犠牲
となり、システム全体の処理能力を低下させていた。
びシステムは上記課題のいずれかを解決するためののも
であり、主として以下の構成からなることを特徴とす
る。
報処理装置から送信された手続きを解釈する解釈工程
と、前記手続きの解釈に基き、ジョブを生成するジョブ
生成工程と、前記生成されたジョブを構成する要素に分
割する分割工程と、前記分割した要素を処理するための
デバイスの割り付けと解放とを管理するデバイス管理工
程と、前記分割した要素の処理を並列に処理するために
データの書込みと、読取りを行う複数のバスの使用を制
御するバス制御工程とを備え、前記要素の並列処理によ
り、スループットを最短にすることを特徴とする。
は、情報処理装置から送信された手続きを解釈する解釈
手段と、前記手続きの解釈に基き、ジョブを生成するジ
ョブ生成手段と、前記生成されたジョブを構成する要素
に分割する分割手段と、前記分割した要素を処理するた
めのデバイスの割り付けと解放とを管理するデバイス管
理手段と、前記分割した要素の処理を並列に処理するた
めにデータの書込みと、読取りを行う複数のバスの使用
を制御するバス制御手段とを備え、前記要素の並列処理
により、スループットを最短にすることを特徴とする。
周辺コントローラ、メモリコントローラ、スキャナ/プ
リンタコントローラ、PCIインターフェースなどを内
蔵したシングルチップ・スキャニング・プリンティング
エンジンである“DoEngine”を説明する。
00プロセッサとコンパチブルなプロセッサコア、プロ
セッサ周辺コントローラ、メモリコントローラ、スキャ
ナー/プリンタコントローラ、PCIインターフェース
などを内蔵したシングルチップ・スキャニング・プリン
ティングエンジンである。高速並列動作、ビルディング
ブロック手法を採用し実装される。
プロセッサ周辺回路の総称)内には最大でインストラク
ション、データそれぞれ16Kバイトの計32Kバイト
のキャッシュメモリ、FPU(浮動小数点演算ユニッ
ト)、MMU(メモリ管理ユニット)、ユーザー定義可
能なコプロセッサなどを内蔵することが可能である。
で、PCIバススロットを有するコンピュータシステム
と共に用いることができる。また、PCIサテライト構
成に加え、PCIホストバスブリッジ構成にてPCIバ
スコンフィギュレーションを発行することが可能であ
り、安価なPCI周辺デバイスと組み合わせることによ
り、マルチファンクションペリフェラル(複合機能周辺
機器)のメインエンジンとして使用することも可能であ
る。さらにPCIバスインターフェースを有するレンダ
リングエンジン、圧縮・伸長エンジンと組み合わせるこ
とも可能である。
バス(Bバス)、及び、画像データ転送に最適化したグ
ラフィックバス(Gバス:Graphics Bus)の2系統の独立
したバスを有し、メモリ、プロセッサとこれらのバスを
クロスバスイッチを介して接続することにより、マルチ
ファンクションシステムにおける同時動作に必須の、並
列性の高い高速データ転送を実現している。
続したデータ列のアクセスに対し、最高のコストパフォ
ーマンスを有するシンクロナスDRAM(SDRAM)
をサポートし、SDRAMのバーストアクセス高速デー
タ転送のメリットを享受できない小さなデータ単位での
ランダムアクセスにおける性能低下を最小に抑えるため
に、8Kバイトの2ウェイセットアソシアティブ・メモ
リフロントキャッシュをメモリコントローラ内に備え
る。メモリフロントキャッシュは、すべてのメモリライ
トに対するバススヌープが難しい、クロスバスイッチを
採用したシステム構成においても、複雑な機構なしに、
キャッシュメモリによる高性能化が達成出来る方式であ
る。また、リアルタイムデータ転送(機器制御)が可能
な、プリンタ及びスキャナーとのデータインターフェー
ス(Video Interface)を有し、さらにハードウェアによ
る、機器間同期のサポート及び画像処理を行う事によ
り、スキャナ、プリンタ分離型の構成においても、高品
質で高速なコピー動作の実現が可能な構成となってい
る。
Vで動作し、IOは5Vトレラントである。
を用いた装置あるいはシステムの構成例を示している。
図1は分離構成型であり、パーソナルコンピュータ10
2には、それが備えるPCIインターフェースを介して
DoEngineを備えたローカルボード101が装着
される。ローカルボード101にはDoEngineの
ほか、後述するメモリバスを介してDoEngineと
接続されたメモリと、色処理回路(チップ)が設けられ
ている。このローカルボード101を介して、高速スキ
ャナ103とカラー/モノクロプリンタ104とがパー
ソナルコンピュータ102に接続される。この構成によ
り、パーソナルコンピュータの制御のもとで,ローカル
ボード101により、スキャナ103から入力された画
像情報を処理し、プリンタ104から出力させることが
できる。
リンタ202とを一体に組み込んだ例で、図2は通常の
複写機に類する構成を、図3(a)はファクシミリ装置
などの構成を示している。図3(b)は、図3(a)を
コントロールするコンピュータを示している。
ーフェースを介して接続された外部のCPUによりDo
Engineが制御されるというスレーブモードで使用
されている例であり、図3は、DoEngineのCP
Uが主体となり、PCIインターフェースを介して接続
されたデバイスを制御するマスタモードで使用されてい
る例である。
す。外部インターフェースとして、PCI,メモリバ
ス,ビデオ,汎用入出力,IEEE1284,RS23
2C,100baseT/10baseT,LCDパネ
ル及びキーを備えるが、更にUSBを有していてもよ
い。内蔵ブロックとして、CPUコアに加えて、1次キ
ャッシュ,キャッシュ付きメモリコントローラ,コピー
エンジン,IOバスアービタ(Bバスアービタ),グラ
フィックバスアービタ(Gバスアービタ)などを備えて
いる。また、DMAコントローラはチャネル数が5であ
り、グラフィックバス(Gバス),IOバス(Bバス)
ともに、アービトレーションは優先度付きの先着順処理
方式で行われる。
ロック毎のブロック図、概要、詳細、コアインターフェ
ース、タイミング図などを解説する。
oEngine400は次世代複合機能周辺機器(シス
テム)(MFP:Multi Function Peripheral or MFS:Multi
Function System)の主たるコントローラとして設計、開
発された。
MIPSテクノロジー社のMIPSR4000コアを採
用する。プロセッサコア401内には、8Kバイトずつ
のインストラクション,データのキャッシュメモリ、M
MUなどが実装される。プロセッサコア401は、64
ビットのプロセッサバス(SCバス)を介して、システ
ム・バス・ブリッジ(SBB)402に接続される。S
BB402は4×4の64ビットクロスバスイッチであ
り、プロセッサコア401の他に、キャッシュメモリを
備えたSDRAMやROMを制御するメモリコントロー
ラ403と専用のローカルバス(MCバス)で接続され
ており、さらに、グラフィックバスであるGバス40
4、IOバスであるBバス405と接続され、全部で4
つのバスに接続される。システムバスブリッジ402
は、これら4モジュール間を、可能な限り、同時平行接
続を確保することができるように設計されている。
406により協調制御されており、スキャナやプリンタ
と接続するためのスキャナコントローラ4302やプリ
ンタコントローラ4303に接続される。また、Bバス
405は、Bバスアービタ(BBA)407により協調
制御されており、スキャナ/プリンタコントローラのほ
か、電力管理ユニット(PMU)409,インタラプト
コントローラ(IC)410,UARTを用いたシリア
ルインターフェースコントローラ(SIC)411,U
SBコントローラ412,IEEE1284を用いたパ
ラレルインターフェースコントローラ(PIC)41
3,イーサネットを用いたLANコントローラ(LAN
C)414,LCDパネル,キー,汎用入出力コントロ
ーラ(PC)415,PCIバスインターフェース(P
CIC)416にも接続されている。
(Memory Management Unit)、命令キャッシュ、データ
キャッシュ、ライトバックバッファ及び掛け算ユニット
を含んだブロックを指す。
に、キャッシュメモリコントローラは、無効(Invali
d),有効かつクリーン(Valid Clean:キャッシュが更
新されていない),有効かつダーティ(Valid Dirty:キ
ャッシュが更新されている)の3つのステートキャッシ
ュを管理する。この状態に応じて、キャッシュは制御さ
れる。
示す。
スインターフェース605を介してBバス405に接続
され、DoEngineチップ内の各機能ブロック及
び、チップ外部からのインタラプトを集積し、CPUコ
ア401がサポートする、6レベルの外部インタラプト
及び、ノンマスカブルインタラプト(NMI)に再分配
する。各機能ブロックとは、電力管理ユニット409,
シリアルインターフェースコントローラ411,USB
コントローラ412,パラレルインターフェースコント
ローラ413,イーサネットコントローラ414,汎用
IOコントローラ415,PCIインターフェースコン
トローラ416,スキャナコントローラ4302,プリ
ンタコントローラ4303などである。
ョン可能なマスクレジスタ(Int Mask Logic 0 - 5)60
2により、各要因毎に割り込みをマスクをすることが可
能である。また、外部インタラプト入力は、選択的エッ
ジ検出回路601により、信号線ごとに、エッジセンス
/レベルセンスを選択することが出来る。要因レジスタ
(Detect and set Cause Reg 0 - 5)603は、各レベ
ルごとに、どのインタラプトがアサートされているかを
示すとともに、ライト動作を行うことで、レベルごとに
クリアを行う事が出来る。
なくともひとつの割り込みがあれば割込み信号を出力す
べく、論理和回路604により論理和として出力され
る。なお、各レベル内での複数要因間のレベル付けはソ
フトウェアにて行う。
る。メモリコントローラ403は、メモリコントローラ
専用のローカルバスであるMCバスにMCバスインター
フェース701を介して接続され、最大1ギガバイトの
シンクロナスDRAM(SDRAM)と、32メガバイ
トのフラッシュROMあるいはROMをサポートする。
SDRAMの特徴であるバースト転送時の高速性を活か
すため、64(16×4)バースト転送を実現する。ま
た、CPUやBバスよりの連続したアドレスのシングル
転送を考慮し、メモリコントローラ内にSRAM(メモ
リフロントキャッシュ)702を内蔵し、SDRAMへ
直接シングル転送を行うことを可能な限り回避して転送
効率を向上させる。メモリコントローラ−SDRAM間
のデータバス幅は、信号ramData及びramParをあわせて
72ビット(このうち8ビットの信号ramParはパリテ
ィ)、フラッシュROM間のデータバスfntromData,pr
gromDataの幅は32ビットとする。
成となっている。
MCバスは、SBB402−メモリコントローラ403
間の専用のバスであり、またSBB内部の基本バスとし
て用いられている。
続する専用バスPBusのバースト転送が4バーストの
み規定しているのに対し、MCバスにおいては16バー
スト×4までの転送を追加している。このためにバース
ト長を示す信号としてmTType[6:0]を新たに
定義した。 (MCバス信号の定義) MCバスの各信号は下記の通り定義される。 ・mClk(出力) … MCバスクロック ・mAddr[31:0](出力) … MCバスアドレス 32ビットのアドレスバスであり、mTs_L がアサートされた時点からmBRdy_Lがア サートされるまで保持される。 ・mDataOut[63:0](出力) … MCバスデータ出力 64ビットの出力データバスであり、mDataOe_Lがアサートされている時のみ有効 である。 ・mDataOe_L(出力) … MCバスデータ出力イネーブル mDataOut[63:0]が有効であることを示す。またその転送がWriteであることを示 す。 ・mDataIn[63:0](入力) … MCバスデータ入力 64ビットの入力データバスであり、mBRdy_LがアサートされているmClkの立ち上 がりでサンプリングされる。 ・mTs_L(出力) … MCバストランザクション開始ストローブ 転送が開始したことを示す。転送の最初の1クロックの間だけアサートされる。 転送が1クロックで終了し、次の転送がすぐに始められるのならばmTs_Lは引続 きアサートされたままになる。 ・mTType[6:0](出力) … MCバストランザクションタイプ MCバス上の転送のタイプを示す。シングル転送時はその転送の間、バースト転 送時は最初の転送(beat)の間保持される。上位3ビットがソース(マスタ)を あらわし、下位ビットがシングル/バースト長をあらわす。タイプには次のよう なものがある。
ての定義である。 (MCバストランザクション)MCバス上のトランザク
ションとしては、以下のトランザクションをサポートす
る。 ベーシックトランザクション(1,2,3,4,8バイト Read/
Write) mBE_L[7:0]信号に従い、1,2,3,4,8バイトのシ
ングルトランザクションをサポートする。 バーストトランザクション (CPUからの)4-ダブルワードバーストまでのトランザ
クションをサポートする。 Gバスからの16-ダブルワードバーストx4までのトラ
ンザクションをサポートする。 In-page write(ページ内書き込み)トランザクショ
ン mTPW_Lで示される同一ページ内の書き込みに関して、連
続的なWriteアクセスをサポートする。 バスリトライ メモリコントローラ内の制限によりメモリアクセスがで
きない場合は、mBRty_L信号をアサートし、バスリトラ
イを通知する。
モリコントローラ403は、次のような構成を有するS
DRAMを以下のように制御する。
は、x4,x8,x16ビットタイプの16/64メガビットS
DRAMを64ビットデータバスで8バンク制御すること
ができる。
のアドレスビットの割付けについては、64ビットSD
RAMの場合にはMA[13:0]を、16ビットSDRAMの
場合にはMA[11:0]を使用する。
レジスタ))SDRAMは内部にモードレジスタを持
ち、モードレジスタ設定コマンドを用いて下記の項目を
設定する。 バースト長 バースト長は、1,2,4,8,フルページのいずれか
が設定可能であるが、CPUからのバースト転送長が4で
あることから、バースト長4が最適である。Gバスから
の16バースト以上の転送は、Read/Writeコマンド(オ
ートプリチャージ無し)を連続して発行することにより
実現する。 ラップタイプ(Wrap Type) バースト転送時のアドレスのインクリメント順を設定す
る。「シーケンシャル」または「インターリーブ」のど
ちらかが設定可能である。 CASレイテンシ CASレイテンシは、1,2,3のいずれかが設定可能で
あり、使用するSDRAMのグレードと動作クロックに
より決定される。
て以下のコマンドをサポートする。各コマンドの詳細
は、SDRAMデータブックに記載されている。 ・モードレジスタ設定コマンド ・アクティブコマンド ・プリチャージコマンド ・ライトコマンド ・リードコマンド ・CBR(Auto)リフレッシュコマンド ・セルフリフレッシュ開始コマンド ・バーストストップコマンド ・NOPコマンド (SDRAMリフレッシュ)SDRAMは、2048サイク
ル/32ms(4096/64ms)であるので、16,625nsおきにCBRリ
フレッシュコマンドを発行する。メモリコントローラは
設定可能なリフレッシュカウンタを持ち、自動的にCBR
リフレッシュコマンドを発行する。Gバスからの16-バ
ーストx nの転送中は、リフレッシュ要求を受け付けな
い。したがって、リフレッシュカウンタは16-バーストx
4転送の時間だけ余裕を持った値を設定しなければなら
ない。また、セルフリフレッシュをサポートする。この
コマンドを発行すると、パワーダウンモード(ramclke_L
=Low)時にセルフリフレッシュが続行される。
はパワーオンリセット後、SDRAMに対して以下の初
期化を行なう。すなわち、電源投入後100μsのポーズ
期間をおいて、 プリチャージウコマンドを用いて全バンクをプリチャ
ージする。 SDRAMのモードレジスタを設定する。 オートリフレッシュコマンドを用いて、リフレッシュ
を8回行う。
4))フラッシュROMコントローラ704は、romAdd
r[23:2]のアドレス信号と4個のチップセレクト(romCs_
L[3:0])信号をサポートする。アドレス信号romAddr2〜r
omAddr9はパリティ信号ramPar0〜ramPar7とマルチプレ
クスされ、アドレス信号romAddr10〜romAddr23は、DR
AMアドレスramAddr0〜ramAddr13とマルチプレクスさ
れている。
キャッシュ))メインメモリとして用いられるSDRA
Mは、バースト転送は非常に高速であるが、シングル転
送においてはその高速性が発揮できない。そこで、メモ
リコントローラ内にメモリフロントのキャッシュを実装
し、シングル転送の高速化をはかる。メモリフロントキ
ャッシュは、キャッシュコントローラ706とSRAM
702より構成される。MCバスに定義されたmTType
[6:0]信号により、その転送マスターと転送長を知るこ
とができるので、各マスターごと、あるいは転送長ごと
にキャッシュのオン/オフが設定可能である。キャッシ
ュの方式は、次の通りである。なお、以下、特に断らな
い限り、単なるキャッシュあるいはキャッシュメモリと
いう呼称は、プロセッサコアに内蔵されたキャッシュで
はなく、メモリコントローラが内蔵するメモリフロント
キャッシュを指すものとする。 ・2ウェイセットアソシアティブ ・8kバイトデータRAM ・128 x 21 x 2 タグRAM ・LRU(Least Recently Used)アルゴリズム ・ライトスルー ・No Write Allocate 次にキャッシュコントローラ706を中心とする詳細な
ブロック図を図8に示す。
りメモリリード/ライト転送が要求された場合のキャッ
シュの動作を図8のブロック図と、図9及び図10に示
すフローチャートを用いて説明する。
その転送の最初にMCバス上で示されるmTType[6:0]に
よって、その転送がキャッシュオンでおこなうか、オフ
でおこなうかの判断がおこなわれる。この説明では、転
送がシングル転送であればオン、バースト転送であれば
オフと判断することにする(ステップS901)。すな
わち、mTType(3)が“1”hであれば、シングル転送を
あらわすのでキャッシュオンで、“0”hであればバー
スト転送をあらわすのでキャッシュオフで転送を行う。
アドレスlmaddr[31:0]が与えられると、lmaddr[11:5]が
インデックスとしてb1_tag_ram801,b2_tag_ram80
2,b1_data_ram702−a,b2_data_ram702−b,
lru803ヘ与えられ、それぞれのブロックから、入力
されたインデックスに対応するバリッドビット"v"及びb
1_tag_addr,バリッドビット"v"及びb2_tag_addr,b1_o
ut_data,b2_out_data,lru_inがそれぞれ出力される
(ステップS902)。
出力されたb1_tag_addrとb2_tag_addrがそれぞれb1_com
parater804,b2_comparater805でアドレスlmaddr
[31:12]と比較され、その結果、すなわちヒットか否か
がb1_hit_miss_L,b2_hit_miss_L信号によりキャッシュ
コントローラ706へ知らされ、判定される(ステップ
S903)。
が判定される(ステップS904)。ヒットであると
は、b1_tag_addrとb2_tag_addrのいずれかにアドレスlm
addr[31:12]と一致するものがある場合である。ヒット
かつリードの場合にはつぎのようになる。すなわち、b1
がヒットであり、要求された転送がリードであった場合
は、すでに読み出されているb1_out_dataとb2_out_data
のうちb1_out_dataを選択し、lmaddr[4:3]で示される8
バイトのデータをMCバスへ出力する(ステップS90
5)。同時にそのインデックスに対応するlruを“0”
(=b1ヒット)に書き換えて、転送が終了する。b2がヒッ
トであり、要求された転送がリードであった場合は、す
でに読み出されているb1_out_dataとb2_out_dataのうち
b2_out_dataを選択し、lmaddr[4:3]で示される8バイト
のデータをMCバスへ出力する(ステップS905)。
同時にそのインデックスに対応するlruを“1”h(=b2
ヒット)に書き換えて、転送が終了する。
ようになる。すなわち、b1がヒットであり、要求された
転送がライトであった場合は、インデックスで示される
b1_data_ram702−aのlmaddr[4:3]で示される8バイ
トのデータのうちmBE_L[7:0]で示される有効なバイトレ
ーンのみを書き換え、同時にそのインデックスに対応す
るlruを“0”h(=b1ヒット)に書き換える。またSDR
AMも同様に書き換えて転送が終了する(ステップS9
06)。b2がヒットであり、要求された転送がライトで
あった場合は、インデックスで示されるb2_data_ram7
02−bのlmaddr[4:3]で示される8バイトのデータのう
ちmBE_L[7:0]で示される有効なバイトレーンのみを書き
換え、同時にそのインデックスに対応するlruを“1”
h(=b2ヒット)に書き換える。またSDRAMも同様に
書き換えて転送が終了する(ステップS906)。
リードかライトか判定される(ステップS1001)。
要求された転送がリードであった場合は、そのlmaddr[3
1:3]で示される8バイトのデータがSDRAMより読み
出され(ステップS1003)、MCバスヘ出力される
(ステップS1004)。同時にそのインデックスに対
応するlruが読み出され、“0”hであった場合はb2_da
ta_ramへSDRAMからのデータを書きlruも“1”h
へ書き換える。lruが“1”hであった場合はb1_data_r
amヘSDRAMからのデータを書き、lruも“0”hヘ
書き換え終了する(ステップS1005)。b1,b2とも
にミスであり、要求された転送がライトであった場合
は、SDRAMに書き込むだけで転送が終了する(ステ
ップS1002)。
(キャッシュオフ)の場合、リード、ライトともSDR
AMに対してだけ行われ(ステップS907−S90
9)、キャッシュデータやタグの書き換え等は行わな
い。
7))ROM/RAMコントローラ707の構成を図1
1に示す。ブロック1101〜ブロック1104によ
り、SDRAMのデータ信号、アドレス信号、パリティ
信号が、フラッシュROMのデータ信号、アドレス信号
と多重化される。
出し・書き込み等の処理のタイミングを、図12〜図1
9を用いて説明する。
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS909における処理に
相当する。
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS908における処理に
相当する。
読み出しのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS909における処理に相当
する。
書き込みのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS908における処理に相当
する。
ットした場合のシングル読み出しのタイミングを示す。
読み出されるデータmDataIn[63:0]としては、キャッシ
ュメモリであるb1_data_ram702−aあるいはb2_data
_ram702−bから読み出されたb1/b2_out_dataが出力
される。SDRAMのバースト長は4、CASレイテン
シは3である。図9のステップS905における処理に
相当する。
ットしなかった場合のシングル読み出しのタイミングを
示す。読み出されるデータmDataIn[63:0]としては、S
DRAMから読み出されたデータramData[63:0]が出力
される。また、このデータはb1/b2_in_dataとしてキャ
ッシュメモリであるb1_data_ram702−aあるいはb2_
data_ram702−bにも書き込まれる。SDRAMのバ
ースト長は4、CASレイテンシは3である。図10の
ステップS1004及びS1005における処理に相当
する。
ットした場合のシングル書き込みのタイミングを示す。
書き込まれるデータmDataOut[63:0]は、キャッシュメモ
リであるb1_data_ram702−aあるいはb2_data_ram7
02−bに書き込まれるとともに、SDRAMにも書き
込まれる。SDRAMのバースト長は4、CASレイテ
ンシは3である。図9のステップS906における処理
に相当する。
ットしなかった場合のシングル書き込みのタイミングを
示す。書き込まれるデータmDataOut[63:0]は、キャッシ
ュメモリであるb1_data_ram702−aあるいはb2_data
_ram702−bには書き込まれず、SDRAMに対して
だけ書き込まれる。SDRAMのバースト長は4、CA
Sレイテンシは3である。図10のステップS1002
における処理に相当する。
が開始されると、その転送の最初にMCバス上で示され
るmTType[6:0]によって、転送がシングル転送であれば
オン、バースト転送であればオフと判断しているが、バ
ースト転送の場合に、さらにバースト長を判定し、バー
スト長がキャッシュの1ラインよりも小さい場合にはキ
ャッシュオンとし、そうでない場合にはキャッシュオフ
として動作するようにしてもよい。
を要求したバスマスタの識別子を示す信号を含ませるこ
とで、メモリコントローラがその識別子を判定し、識別
子に応じてキャッシュオン/キャッシュオフの制御を行
うこともできる。この場合には、識別子とキャッシュオ
ン/オフの別とを対応させた書換え可能なテーブルを用
意し、それを参照してキャッシュのオンオフを切り替え
ることもできる。このテーブルは、例えば特定のアドレ
スを割り当ててCPU401などから書換え可能にする
こともできる。
及びBバス,Gバス図20としてシステムバスブリッジ
(SBB)402のブロック図を示す。
Gバス(グラフィックバス),SCバス(プロセッサロ
ーカルバス)及びMCバス間の相互接続をクロスバスイ
ッチを用いて提供する、マルチチャネル双方向バスブリ
ッジである。クロスバスイッチにより、2系統の接続を
同時に確立することが出来、並列性の高い高速データ転
送を実現出来る。
ためのBバスインターフェース2906と、Gバス40
4と接続するためのGバスインターフェース2006
と、プロセッサコア401と接続するためのCPUイン
ターフェーススレーブポート2002と、メモリコント
ローラ403と接続するためのメモリインターフェース
マスターポートを備えるほか、アドレスバスを接続する
アドレススイッチ2003,データバスを接続するデー
タスイッチ2004を含む。また、プロセッサコアのキ
ャッシュメモリを無効化するキャッシュ無効化ユニット
2005を備えている。
バスデバイスからのDMAライトを高速化するライトバッ
ファと、Bバスデバイスのリードを効率化するリードプ
リフェッチキューを実装する。これらのキュー内に一時
的に存在するデータに関するコヒーレンシ管理はハード
ウェアにて行う。なお、Bバスに接続されたデバイスを
デバイスと呼ぶ。
ダイナミックバスサイジングをサポートしているが、S
BB402ではこれをサポートしない、将来、バスサイ
ジングをサポートしないプロセッサを用いる場合にもS
BBに必要な改造を最小限におさえるためである。
動作 (Bバスインターフェース)図21は、Bバスインター
フェースのブロック図である。
スとMCバス間の双方向ブリッジ回路である。Bバスは
DoEngineの内部汎用バスである。
マスタコントロールブロック2011、スレーブコント
ロールブロック2010、データインターフェース20
12、DMAC2013、Bバスバッファの5ブロックが含
まれる。図21上で、DMAC2013は、機能上3個のシ
ーケンサとレジスタブロックに分割される。それら3つ
のシーケンサのうち、DMAメモリアクセスシーケンサは
Bバススレーブコントロールブロック2010に、DMA
regシーケンサはBバスマスターコントロールブロッ
ク2011に内蔵される。レジスタブロックであるDMA
レジスタはBバスデータインターフェース2012部に
内蔵される。
バス側からのメモリへの書き込み時、及びDMAによるデ
バイスからメモリへの転送が起こった時に、キャッシュ
無効化インターフェースを介してCPUシェル内のデー
タ、命令両キャッシュの無効化の制御を行う。
ァはBバスインターフェースには実装しないが、Bバス
上の外部マスタライト時のライトバッファを実装する。
これにより、バースト転送でない、連続した外部マスタ
からの書き込みが高速化される。このライトバッファの
フラッシュは、Bバスアービタ407によるメモリへの
接続が許された時点で行われる。Bバスマスタリードの
ライトバッファバイパスは行わない。
ューを実行する。これにより、外部マスタからの連続し
た、データストリームの読み出しの高速化を図る。リー
ドバッファの無効化は、 1.Bバスの新たなリードがバッファにヒットしなかっ
た場合。 2.CPUからメモリへのライトが行われた場合。 3.Gバスからメモリへのライトが行われた場合。 4.Bバスからメモリへのライトが行われた場合。 に行われる。
Bバス405上の各デバイスとメモリ間のDMAコントロ
ーラ2013が内蔵される。システムバスブリッジ40
2にDMAコントローラを内蔵することにより、ブリッジ
双方へ、同時にアクセス要求が発行出来、効率的なDMA
転送が実現出来る。
ッサ401からのアクセス要求に対して、ダイナミック
バスサイジングの使用を要求しない。またBバスマスタ
からのメモリアクセス要求時に、メモリコントローラ4
03からのバスサイジングにも対応しない。すなわち、
メモリコントローラはバスサイジングを期待すべきでは
ない。
汎用IOバスであり、以下の仕様を持つ。 ・アドレス、データ分離型32ビットバス。 ・任意のウェイトサイクルを挿入可能、最短はノーウェ
イト。 ・バーストトランザクションのサポート。 ・最大転送速度は、クロックが50MHz時に200Mbyte/Se
c。 ・バスエラーとバスリトライのサポート。 ・複数バスマスタのサポート。
を説明する。各信号毎に、「信号名(英語呼称):入力
元>出力先 (,3States)…信号の説明」の要領で記載
されている。なお、3ステートの項は3ステートの信号
に限り記載した。
er>Slabe,3State… IOBusアドレスバス。
iver>DataReceiver,3State …IOBusデータバス。
Output Enable Request):Datadriver>DefaultDrive
rLogic … 後述する双方向IOバスを実現するため、
デフォルトドライバーコントロールロジックヘの出力信
号である。Datadrivernameを持つデバイスが、バス上に
データをドライブするための要求信号である。データの
出力を許可されたデバイスには、デフォルトドライバー
コントロールロジックよりb(Datadrivername)DataOe_L
が出力される。Datadriverの例:Pci,Sbb,Jpeg,Spu。
Output Enable): dfaultDriverLogic>Datadriver
… b(Datadrivername)DataOeReqを出力したデバイスに
対し、デフォルトドライバーロジックがデータバスへの
データのドライブを許す場合b(Datadrivername)DataOe_
L信号をそのデバイスに対して返す。
ster 3State … IOバストランザクションがエラー
で終了したことを示す。
biter>Master … バスアービトレーションにより当
マスタがバスの使用権を得たことを示す。Masternameの
例:Pci,Sbb,Jpeg,Spu。
utput Indicator):Master>Slave,3State … Bバ
スマスタがインストラクションフェッチをBバススレー
ブに対して行う場合にHighにドライブする。データトラ
ンザクションの場合はLowにドライブする。
ontrol Output Enable Request):Master>DefaultDri
verLogic … Bバスマスタが、bStart_L,bTx_L,bWr_
L,vInstNotDataとbAddr[31:2]を3ステートバス上にド
ライブしたい場合に、IOBus Output Control Logicに対
してアサートする。IOBus Output Control Logic は各
マスタからの、bMCntlOeReqに基づきドライブを許すマ
スタに対し、b(Mastername)CntlOe_L信号を返す。
ntrol Output Enable):DefaultDriverLogic>Master
… b(Mastername)CntlOeReqを出力したマスタに対
し、デフォルトドライバーロジックがドライブを許す場
合b(Mastername)CntlOe_L信号をそのマスタに対して返
す。
3State … Bバススレーブは、現在のBバスデータト
ランザクションが現在のクロックサイクルを最後に終了
することを示すためにこの信号をアサートする。Bバス
マスタは、この信号により、現在のトランザクションが
このクロックサイクルで終了することを知る。b(Master
name)BReq_L(IOBus Bus Request):Master>Arbiter
… Bバスマスタが、Bバスアービタに対し、バスの
使用権要求を行う事を示す。
ster 3State … Bバススレーブがマスタに対し、バ
ストランザクションの最実行を要求する。
y Output Enable Request):Slave>DefaultDriverLog
ic … Bバススレーブが、bRdy_L,bWBurstReq_L,bBur
stAck_Lを3ステートバス上にドライブしたい場合に、I
OBus Output Control Logicに対してアサートする。IOB
us DefaultDriverLogicは各マスタからの、b(Slavenam
e)RdyOeReqに基づきドライブを許すスレーブに対し、b
(Slavename)RdyOe_L信号を返す。
Output Enable):DefaultDriverLogic>Slave … b
(Slavename)RdyOeReqを出力したマスタに対し、デフォ
ルトドライバーロジックがドライブを許す場合b(Slaven
ame)RdyOe_L信号をそのマスタに対して返す。
extMaster … BバスインターフェースがBバスに接
続された他のデバイスに対し、キャッシュのスヌーピン
グ実行中であることを示す。Bバスに接続されたデバイ
スはこの信号がアサートされている間は新たなトランザ
クションを発行できない。
aster >Slave 3State … BバスマスタがBバストラ
ンザクションをスタートすることを示す信号、Bバスス
レーブは、この信号を監視することにより、Bバストラ
ンザクションのスタートを知ることが出来る。
ut):Master>Slave 3State …BバスマスタがBバス
スレーブに対し、Bバストランザクションが現在実行中
である事を示すためにアサートする。
t):Master>Slave,3State … Bバスマスタが、B
バスバーストライトのリクエストに対し、バーストライ
ト実行することを示すためにドライブする。
t):Slave >Master,3Stete …BバススレーブがB
バスマスタに対し、バースとライトを要求する場合にア
サートする。
er):Master>Slave,3State …Bバスマスタが、B
バススレーブに対し、現在のトランザクションがライト
である事を示すためにアサートする。
taDriver>DataReceiver,3State… Bバス上にデータ
をドライブするエージェントが、各ビットに対応したbD
ata[31:0]上のバイトレーンが有効である事を示すため
にHighにドライブする。本信号の各ラインとbDataのバ
イトレーンは表4の対応関係にある。
t):Master>Slave,3Sate … Bバスマスタが拡張
バーストを行いたい事を示す。アサート、ネゲートタイ
ミングはbTx_Lと同一。
owledge):Slave>Maste,3State… Bバススレーブ
が拡張バーストを行える事を示す。アサート、ネゲート
タイミングはbRdy_Lと同一。
th):Master>Slave,3State …Bバスマスタが拡張
バーストを行う場合のバースト長を示す。アサート、ネ
ゲートタイミングはbTx_Lと同一であり、信号値とバー
スト長との対応は表5に示したとおりである。
gine内部のバスである、Bバス(及びGバス)は接
続される機能ブロック数が10以上になるので、InOut
分離バスですべてのブロックを接続することは、困難で
ある。DoEngineでは、チップ内双方向バスを採
用する。
スインターフェース2006のブロック図を示す。この
概要は下記の通りである。
コントローラDoEngine内部において、各画像デ
ータ処理部間のデータ転送を高速に実行するために定義
されたバスである。64ビットのデータバスをもち、4G
byte(128byte boundary)のアドレス空間をサポートす
る。16ビート(128byte=64ビット x 16) を1ロングバ
ーストとした転送を基本とし、連続して4ロングバース
ト(512byte=16ビート x 4) までを可能とする。(シン
グルビートなど16ビート以下の転送はサポートしな
い) (Gバス信号定義)信号の定義に用いる記号をまず定め
ておく。信号名の直後には、必要に応じて信号の方向が
記述されている。それは次のように定める。 In(Input signal) … バスエージェントに対する入
力信号 Out(Output signal) … バスエージェントからの出
力信号 InOut(Bi-Directional Tri-State signal) … 双方
向の信号で、複数のバスエージェントがドライブする。
一度にひとつのエージェントだけがドライブする。信号
をドライブする各エージェントのイネーブルリクエスト
信号をデフォルトドライバで集中管理し、どのエージェ
ントがドライブするかはデフォルトドライバが決定す
る。どのエージェントもイネーブルリクエストを出さな
い場合や、複数のエージェントが同時にイネーブルリク
エストを出している場合はデフォルトドライバ信号をド
ライブする。エージェントは、信号をロウにドライブす
る場合は、前後1クロックの間ハイにドライブしなけれ
ばならない。信号のアサートはドライブを初めてから1
クロック以上経過してからしか行えない。基本的に信号
のリリースはネゲートした次のクロックで行う。
ローアクティブであることを示す。信号の記述のしかた
は、ほぼBバス信号の記述に準ずる。説明は、システム
信号、アドレス及びデータ信号、インターフェース制御
信号、アービトレーション信号に分けて行う。また、バ
スエージェントとは、バスに接続されるバスマスタやバ
ススレーブの総称である。
ザクションについてタイミングを提供し、すべてのデバ
イスに対して入力となる。
すべてのデバイスをリセットする。すべての内部レジス
タはクリアーされ、すべての出力信号はネゲートされ
る。
ve … Gバス上のデータ転送はすべて128byte(16
ビート)単位で行われるため、gAddr[31]〜gAddr[7]の
25ビットで4Gbyteのアドレス空間をサポートする。 drive:gTs_Lと同時にマスターがドライブ assert:ドライブした次のクロック negate:gAack_Lのアサートを確認したクロック。
utPut Enable Request):Master>DefaultDriverLogic
… 双方向Gバスを実現するための、デフォルトドラ
イバロジックへの出力信号。バスマスタがアドレスバス
をドライブするための要求信号。
utPut Enablet):DefaultDriveLogic>Master … g
(Mastername)AddrOeReqを出力したバスマスタに対し、
デフォルトドライバロジックがアドレスバスのドライブ
を許可することを示す信号。
ataDriver>DataReceiver … 64ビットデータバス
で、ライト時はマスタがドライブ、リード時はスレーブ
がドライブ。
sy_Lがアサートされている時はネゲートされるまで待っ
てドライブ。 assert:ドライブした次のクロック。 change:gAack_Lのアサートを確認したクロック、その後
は毎クロック。 negate:転送終了時、またはgTrStp_Lによる転送停止要
求を確認した場合は、gAack_Lのアサートを確認したク
ロック。
ックで、Readyでなけれ ばReadyになるまで待ってアサートされる。 change:gAack_Lのアサートを確認したクロック、その後
は毎クロック。リードの場合はアサートしたクロックか
ら毎クロック。 negate:転送終了時。 release:ネゲートの1クロック後、またはgTrStp_Lによ
る転送停止要求を確認したクロック。
OutPut Enable Request):DataDriver>DefaultDrive
rLogic … データドライバがデータバスをドライブす
るための要求信号。
OutPut Enablet):DefaultDriverLogic>DataDriver
… g(DataDrivername)DataOeReqを出力したデータドラ
イバに対し、デフォルトドライバロジックがデータバス
のドライブを許可することを示す信号。
ve … マスターにより1クロックの間Lowにアサート
され、転送の開始(アドレスフェーズ)をあらわす。マ
スターはgTs_Lと共に、gAddr,gRdNotWr,gBstCntをドラ
イブし、転送の種類、データ量を明確にする。マスタ
は、ライトの場合ここで明確にした転送データ量をウェ
イトなしで出せることを保証しなければならない。ま
た、リードの場合は明確にした転送データ量をウェイト
なしで受けることを保証しなければならない。スレーブ
は途中でデータ転送ができなくなった場合はgBsStep_L
により、次の16ビートの転送をキャンセルすることが
ある。ただし、16ビートの途中でキャンセルすること
はない。 drive:gGnt_Lのアサートを確認したクロックでドライ
ブ。 assert:ドライブした次のクロック。 negate:1クロックアサート後にネゲートされる。
n Start OutPut Enable Request):Master>DefaultDr
iverLogic … バスマスタがgTs_Lをドライブするため
の要求信号。
Start OutPut Enablet):DefaultDriverLogic>Maste
r … g(Mastername)TsOeReqを出力したバスマスタに
対し、デフォルトドライバクロックがgTs_Lのドライブ
を許可することを示す信号。
ledge):Slave>Master … スレーブにより1クロッ
クの間Lowにドライブされる。該当するスレーブが、転
送を認識し、バスが空いていることを確認して、データ
転送がスタートできることをマスターに知らせる。ライ
トの場合、スレーブはマスタから要求された転送データ
量をウェイトなしで受けることを保証しなければならな
い。またリードの場合は、要求された転送データ量をウ
ェイトなしで出せることを保証しなければならない。万
が一、途中でデータ転送ができなくなった場合は、gBst
Stp_Lにより、次の16ビートの転送をキャンセルする
ことができる。ただし、16ビートの途中でキャンセル
することはできない。 drive:アドレスデコードビット時、gTs_Lのアサートを
確認したクロックでドライブが開始される。ただし、gS
lvBsy_Lがアサートされている時はネゲートされるまで
待ってドライブされる。また、データバス使用中のた
め、まだドライブされていなかった場合は、gTrStp_Lに
よる転送停止要求を確認したクロックでドライブ開始さ
れる。 assert:スレーブがReadyであればドライブした次のクロ
ックで、ReadyでなければReadyになるまで待ってアサー
トされる。gTrStp_Lによる転送停止に対する応答のとき
には、ドライブした次のクロックでアサートされる。 negate:ドライブ後にgTrStp_Lがアサートされた場合
は、gTrStp_Lを確認したクロックでアサートされる。ま
た、1クロックアサート後にネゲートされる。
cknowledge OutPut Enable Request):Slave>Default
DriverLogic … スレーブがgAack_Lをドライブするた
めの要求信号。
knowledge OutPut Enablet):DefaultDriverLogic>Sl
ave … g(Slavename)AackOeReqを出力したスレーブに
対し、デフォルトドライバロジックがgAack_Lのドライ
ブを許可することを示す信号。
y):Slave>Master … スレーブがドライブし、デー
タバスでデータを転送中であることをあらわす。 drive:アドレスデコードヒット時、gTs_Lのアサートを
確認したクロックでドライブ開始。ただし、gSlvBsy_L
がアサートされている時はネゲートされるまで待ってド
ライブ。 assert:スレーブがReadyであればドライブした次のクロ
ックで、ReadyでなければReadyになるまで待ってアサー
ト。 negate:転送終了時にネゲート。 release:ネゲートの1クロック後、またはgTrStp_Lによ
る転送停止要求を確認したクロック。
usy OutPut Enable Request):Slave>DefaultDriverL
ogic … スレーブがgSlvBsy_Lをドライブするための
要求信号 g(Slavename)SlvBsyOe_L(G-Bus Slave Busy OutPut En
able):DefaultDriverLogic>Slave … g(Slavenam
e)SlvBsyOeReqを出力したスレーブに対し、デフォルト
ドライバロジックがgSlvBsy_Lのドライブを許可するこ
とを示す信号。
ite(Low)):Master>Slave …マスターによりドライ
ブされ、HighでREAD、LOWでWRITEをあらわす。ドライブ
する期間はGAと同じである。 derive:gTs_Lと同時にマスターがドライブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したクロック。
Write OutPut Enable Reques):Master>DefaultDrive
rLogic … バスマスタがgRdNotWrをドライブするため
の要求信号。
rite OutPut Enablet):DefaultDriverLogic>Master
… g(Mastername)RdNotWrOeReqを出力したバスマス
タに対し、デフォルトドライバロジックがgRdNotWrのド
ライブを許可することを示す信号。
nter):Master>Slave … マスターによりドライブ
され、連続して行うバースト転送の数(1〜4)をあら
わす。信号の値とバースト転送するバイト数との対応は
表6のようになる。 derive:gTs_Lと同時にマスターがドライブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したクロック。
Counter OutPut Enable Request):Master>DefaultDr
iverLogic … バスマスタがgBstCntをドライブするた
めの要求信号。
ounter OutPut Enablet):DefaultDriverLogic>Maste
r … g(Mastername)BstCntOeReqを出力したバスマス
タに対し、デフォルトドライバロジックがgBstCntのド
ライブを許可することを示す信号。
p):Slave>Master … スレーブによりドライブさ
れ、連続する次のバースト転送を受付不可であることを
あらわす。1バースト(16ビート)の転送の15ビー
ト目にアサートする。ストップしない場合にはドライブ
しない。 drive:14ビート目。 assert:15ビート目。 negate:1クロックアサート後 g(Slavename)BstStpOeReq(G-Bus Burst Stop OutPut E
nable Request):Slave> DefaultDriverLogic …
スレーブがgBstStp_L上をドライブするための要求信
号。
op OutPut Enablet):DefaultDriverlogic>Slave …
g(Slavename)BstStpOeReqを出力したスレーブに対
し、デフォルトドライバロジックがgBstStp_Lのドライ
ブを許可することを示す信号。
>Arbiter … マスターによりドライブされ、アービ
タに対してバスを要求する。各マスターデバイスごとに
専用のgReq_Lを持つ。 assert:データ転送が必要なマスターがアサート negate:gGnt_Lを受ければネゲート g(Mastername)Gnt_L,In,(G-Bus GNT):Arbiter>Ma
ster … アービタによりドライブされ、バス要求に対
して次のバス権を与える。各マスタデバイスごとに専用
のgGnt_Lを持つ。プライオリティーの高いバスマスタか
ら順にバス権を与える。同じプライオリティーのマスタ
に対しては、バス要求のあった順番にバス権を与える。 assert:他のマスターにgGnt_Lを与えていない時、また
は次のクロックで他のマスタに与えていたgGnt_Lをネゲ
ートする時に、アービトレーションによって選ばれたマ
スタに対してアサートする。 negate:gAack_Lのアサートを確認したクロック gTrStp_L,In,(G-Bus Transuaction Stop):Arbiter
>Master,Slave …アービタによりドライブされ、gGnt
_Lによりすでにアドレスフェーズを開始されたトランザ
クションを中止する。ただ、すでにgAack_Lによりデー
タフェーズを開始してしまったトランザクションについ
ては中止できない。また、この信号はgAack_Lによりマ
スクがかけられており、gAack_Lがアサートされた時に
は、たとえアサートしていてもネゲートされ出力され
る。 assert:すでにアドレスフェーズを開始したトランザク
ションよりも高いプライオリティのマスタからバス要求
がきた時。 negate:gAack_Lのアサートを確認したクロック(Gバ
スライトサイクル)Gバスのライトサイクルは次のよう
になる。 マスタがバス要求、gReq_Lアサート。 アービタが許可、gGnt_Lアサート。gReq_Lネゲート。 gGnt_Lを受けて、マスタはgTs_L,gAddr,gRdNotWr,gBs
tCnt,をドライブ。ライト動作の場合、gSlvBsy_Lがアサ
ートされていなければ、同時にgDataもドライブする。g
SlvBsy_Lがドライブされていれば、gSlvBsy_Lがフリー
になるのを待ってドライブする。 スレーブはgTs_Lがアサートされている時にアドレス
をデコードし、ヒットすれば自分に対する転送であるこ
とを認識する。この時gSlvBsy_Lが他のスレーブにより
アサートされていなければ、gSlvBsy_LとgAack_Lのドラ
イブを始める。また、リードの場合はgDataもドライブ
する。gSlvBsy_Lが他のスレーブによりアサートされて
いれば、データバスは使用中であるということなので、
ネゲートされるまで待ってドライブを始める。gSlvBsy_
L,gAack_L,(gData)のドライブ開始後、スレーブがデー
タ転送の準備ができれば、それぞれの信号をアサート
し、データ転送を開始する。 gAack_Lがアサートされた時点でアドレスフェーズは
終了し、マスタはgAddr,gRdNotWr,gBstCntをネゲートす
る。また、その時点からマスタはライトデータを毎クロ
ック切り替え、gBstCntで指定されたデータ量だけ転送
を行う。マスタとスレーブは、それぞれ自分でクロック
をカウントして、データ転送の終了を知らなければなら
ない。
れたデータ転送量を転送できなくなった場合は、bStStp
_Lを15ビート目でアサートすることで、次の16ビー
トの転送をキャンセルすることがただし、16ビートの
途中でキャンセルすることはできない。
サートされれば、次のクロックでデータの転送を終了さ
せなければならない。
(CIU))キャッシュインバリデーションユニット
(以下CIU)2005は、Bバスからメモリへのライト
トランザクションを監視し、これが起こった場合は、メ
モリへの書込が終了する前に、CPUシェルのキャッシ
ュインバリデーションインターフェースを用い、CPU
シェルに内蔵されたキャッシュの無効化を行う。
する。 ・SnoopADDR[31:5] (Cache Invalidation Address) ・DCINV (Dcache(データキャッシュ)Invalidation St
robe) ・ICINV (Icache(インストラクションキャッシュ)Inv
alidation Strobe) キャッシュの無効化は最大3クロックで行われる、Bバ
スからメモリへのライトは3クロックで終了することは
ないので、キャッシュインバリデーションユニット20
05は、CPUシェル401から出力されるStop_L信号を
用いて無効化終了のハンドシェイクを行うことはしな
い。但し、将来の変更に備え、Bバス上にはbSnoopWait
をStop_Lと同一サイクルだけドライブする。
は、Bバスからのライトが起こった場合は、安全のため
にIcacheもインバリデーションしている、もし、OSで
セルフモディファイングコードを禁止し、インストラク
ションとして使われる可能性のあるデータのローディン
グ時に、意図的にインストラクションキャッシュのイン
バリデーションを行うなら、Icacheのインバリデーショ
ンはいらない。この場合は若干のパフォーマンスアップ
が望める。
リマップを示す。図23は、左から順に、仮想メモリマ
ップ、物理メモリマップ、Gバスのアドレス空間でのメ
モリマップ、Bバスのアドレス空間でのメモリマップで
ある。また、図24は、レジスタ等を含む図23におけ
る斜線部の512メガバイトを示すマップである。
ベースにしている。プロセッサコアの物理アドレス空間
は32ビットアドレッシングにより4Gバイトある。仮
想空間も同様に32ビットアドレッシングを行なう。ユ
ーザープロセスの最大サイズは2Gバイトである。アド
レスマッピングはカーネルモードとユーザーモードで異
なる。図はMMUを使用しない場合のメモリマップであ
る。
ーザーモードの仮想アドレッシングでは2Gバイトのユ
ーザ仮想アドレス空間(kuseg)が有効となる。このユー
ザーセグメントのアドレスは0x00000000から始まり、す
べての有効なアクセスは0にクリアされたmsbを持つ。
ユーザーモードにおいてmsbをセットしたアドレスの参
照はアドレスエラー例外処理を引き起こす。TLBはkuseg
へのすべての参照をユーザーモードとカーネルモードで
同様にマッピングする。また、キャッシャブルである。
kusegは通常ユーザーコードやデータを保持するために
使用される。
ーネルモードの仮想アドレス空間には4つのアドレスセ
グメントを持っている。 ・kuseg 仮想アドレスの0x00000000から2Gバイト。
ページと単位としたキャッシングとマッピングが可能。
このセグメントはカーネルメモリアクセスとユーザーメ
モリアクセスでオーバーラップしている。 ・kseg0 仮想アドレスの0x80000000から512Mバイ
ト。物理メモリの最初の512Mバイトにダイレクトに
マップされる。参照はキャッシュされるが、アドレス変
換にはTLBは使われない。kseg0は通常カーネルの実行コ
ードやカーネルデータのために使用される。 ・kseg1 仮想アドレスの0xA0000000から512Mバイ
ト。物理メモリの最初の512Mバイトにダイレクトに
マップされる。参照はキャッシュされず、アドレス変換
にはTLBは使われない。kseg1は通常OSによって、I/O
レジスタ、ROMコード、ディスクバッファのために使
用される。 ・kseg2 仮想アドレスの0xC0000000から1Gバイト。k
usegと同様、TLBにより仮想アドレスから物理アドレス
にマップされる。キャッシングは自由。OSは通常kseg
2をスタックやコンテキストスイッチによるリマップが
必要なプロセス毎のデータのために使用する。
(a),図24(a)))仮想アドレス空間は4Gバイ
トあり、システム上のすべてのメモリ、I/Oがアクセス
可能である。kusegにはSYSTEM MEMORY(1GB)が存在す
る。
これは、例外処理のベクタをプログラミングしたい場合
にインプリメントし、例外ベクタベースアドレスを0x80
000000に設定する。このアドレスは物理アドレス空間の
0x00000000にマッピングされる。
在し、ブートROM(16MB),SBB内部レジスタとMC
内部レジスタ(16MB),IOBusI/O1(16MB:Gバスアービタ
内部レジスタ、Bバスアービタ内部レジスタ、PMU内部
レジスタなどのプリミティブなBバスレジスタ),IOBusI
/O2(16MB),IOBusMEM(16MB),Gbus MEM(32MB),FONT ROM(2
40MB)、FONT ROM or RAM(16MB)が含まれる。
が存在する。
の最初の512Mバイトにマッピングされるため、kseg0,ks
eg1とkusegの最初の512Mバイトはすべて同じ物理アドレ
ス空間を参照していることになる。
(b),図24(b)))物理アドレス空間も仮想アド
レス空間と同様4Gバイトあり、システム上のすべての
メモリ、I/Oがアクセス可能である。
は仮想アドレスメモリマップと同一である。
の最初の512Mバイトにマッピングされるので、ROM,I/O,
Regは0x00000000からの空間に存在している。
24(c)))Gバスアドレス空間は4Gバイトあり、
SYSTEM MEMORY,GBus MEM,FONTのみがアクセス可能であ
る。
24(d)))Bバスアドレス空間は4Gバイトあり、
PCI I/O,PCI MEM,SYSTEM MEMORY,IOBusI/O2,IOBus MEM,
FONTのみがアクセス可能である。
め、0x1C000000から0x20000000までの空間はPCIからプ
ロテクトがかけられており、PCIからアクセスできな
い。
003は、SCバス,Gバス,Bバス,MCバス間のデー
タ転送を行なうために、マスターとなるバスからスレー
ブとなるバスへ、SBB402を経由してアドレス信号
を送るためのものである。SBB402を経由する転送
において、マスターとなり得るバスは、SCバス,Gバ
ス,Bバスであり、スレーブとなり得るバスはBバス,M
Cバスである。MCバスに対してはSCバス,Gバス,B
バス,のいずれかがマスターとなり、BバスへはSCバ
スのみがマスターとなってアドレス信号を送る。
ス-MCバス間の転送は同時に行なうことができる。
ロック図を示す。スイッチシーケンサ2003aによ
り、スイッチ2003bを切り替えてスレーブをBバス
とMCバスとで切り換え、スイッチ2003cを切り替
えてマスタをSCバス,Gバス,Bバスで切り換える。
この構成により、MCバスに対してはSCバス,Gバス,
Bバス,のいずれかがマスターとなり、BバスへはSC
バスのみがマスターとなり、また、SCバス-Bバス間
の転送と、Gバス-MCバス間の転送は同時に行なうこ
とができる。
バス,Gバス,Bバス,MCバス間のデータ転送を行なう
際に,SBB内でデータの流れを切り替えるものであ
る。ライト時はマスターからスレーブ、リード時はスレ
ーブからマスターへデータが送られる。
ク図を示す。この構成において、セレクタA−1〜A−
3及びB−1,B−2を表7のように切り替えること
で、SCバス,Gバス,Bバスのいずれかをマスタと
し、Bバス,MCバスのいずれかをスレーブとして、書
き込みあるいは読み出しを行うように制御できる。
スイッチシーケンサ2003aは、各スイッチを切り替
えるにあたって、SBB外部からの以下の3種類の接続
要求間のアービトレーションを行う。 1.CPU 2.Gバスバスマスタ 3.Bバスバスマスタ このアービトレーションは、現在のバススイッチ接続状
況、及び、あらかじめ設定された優先順位により決定さ
れ、その結果アドレススイッチ、データスイッチの接続
が切り替えられる。
2にタイミング図を示す。図27はGバスからの書き込
み/読み出しサイクルのタイミング図、図28はGバス
のバースト停止サイクルのタイミング図、図29〜図3
2は、Gバスのトランザクション停止サイクルのタイミ
ング図である。
ク図である。
Engine内部汎用IOバスであるBバスと、チップ外
部IOバスであるPCIバスの間をインターフェースするブ
ロックである。入力ピン設定により、リセット時にPCI
バスコンフィギュレーション発行可能な、ホストブリッ
ジ構成と、PCIバスコンフィギュレーションは発行しな
いターゲット構成とを切り替えることができる。
トローラ3301は、PCIバスシグナルインターフェー
ス3302を介してPCIバスマスタからDoEngin
e内部のリソースにアクセス要求があった場合に、Bバ
スマスタとしてこのアクセス要求をBバス内部にブリッ
ジする。
1は、PCIバス上でマッピングされるメモリからDoE
ngineMemoryへのDMA転送を行う事が出来る。この
際、プログラマが意図したBバスDMAと、GバスDMAのア
クセスの順番を守って動作させるために、転送先アドレ
ス(bPciAddr[31:0])と、PCIマスターコントローラ33
01のID信号(bPciID)を、Bバスとアービトレーション
シーケンサに対して、バスリクエストと同時に発行す
る。
ラント(bPciBGnt_L)を受け取り、バスを使用しデータ転
送が終了した時点で、ID信号(bPciID)のアサートを取
りやめる。
2.1準拠とする。
図である。
ビトレーション方式であり、各バスマスタに対して専用
のリクエスト信号(g(mastername)Req_L)とグラント信号
(g(mastername)Gnt_L)を持つ。図34は、masternameは
M1〜M4となっている。Busアービタ406は、Gバス上
のバスマスタを4つまでサポートしており、以下のよう
な特徴を持つ。 ・アービタ内部のレジスタ3401aの設定によりアー
ビタをプログラミングすることが出来る。レジスタ設定
はBバスより行なう。 ・すべてのバスマスタを同じ優先権として、公平にバス
権を与える公平アービトレーションモードと、いずれか
ひとつのバスマスタの優先権を上げ、優先的にバスを使
用させる優先アービトレーションモードがある。どのバ
スマスタに優先権を与えるかはレジスタ3401bの設
定により決定される。 ・優先バスマスタが連続してバスを使用することができ
る回数を設定することが可能。 ・すでにアドレスフェーズを開始したが、データフェー
ズをまだ開始していないトランザクションについて、そ
のトランザクションをストップするためのトランザクシ
ョンストップサイクルをサポート。 ・複数のバスマスタにおける順序処理のプログラミング
ができる(後述)。プログラムされた順序は、レジスタ
テーブル3401aに格納される。 ・GバスマスタとBバスマスタが同一メモリアドレスに
順次書き込みを発行した場合に、プログラマの意図した
アクセス順序を維持するための機構として、同期ユニッ
トからのマスタID信号、ストップ信号に基づき、特定の
マスタに対し、バス使用許可を与えることを保留する機
構を持つ。
バスを介してCPU401から行われる。
アービタの中核となるアービトレーションシーケンサ3
402a,bは、1つの優先マスタとその他の4つの非
優先マスタの間で5つのマスタによるアービトレーショ
ンを行なう。4つのバスマスタからのリクエスト信号と
グラント信号を、リクエストディスパッチ回路3403
とグラントディスパッチ回路3404によって4つの非
優先マスタに割り付けることにより、公平アービトレー
ションモードが実現される。また、4つのバスマスタの
うちのひとつを、高優先アービトレーションシーケンサ
3402aの優先マスタに割り付けることで、優先アー
ビトレーションモードとして動作する。これらの割り付
けは、レジスタ3401a,bの設定にしたがって行わ
れる。これにより、優先バスマスタは、他のマスタより
高い確率でバスの使用権を取得することが出来る。
え、高優先シーケンサ3402aに割り当てられたマス
タは、連続してバスを使用する事が出来、連続して使用
出来る回数をプログラマブルなレジスタにより可変する
事ができる。これは、バスの占有率を調整出来、ある特
定のマスタにより多くバスを使用させる様に出来ること
を意味する。
ードでは、すべてのバスマスタは同じ優先順位にあり、
バス権を与えられる機会は公平である。バスがフリーの
時は、一番最初にリクエストを出したバスマスタがバス
権を得ることができる。また、複数のバスマスタが同時
にリクエストを出した場合は、あらかじめ決められた順
序にしたがって順次バス権が与えられる(ラウンドロビ
ン方式)。例えば、M1からM4までのすべてのバスマ
スタが同じクロックでリクエストを出した場合は、M1
→M2→M3→M4といった順序でバス権が与えられ
る。M4のトランザクションの終了時に再びすべてのバ
スマスタがリクエストを出している場合は、M1→M2
→M3→M4→M1→M2…というように、同様の順序
でバス権を与えていく。一部のバスマスタがリクエスト
を出している場合は、M4からM1へラウンドラップす
るとして、最後にバスを使用したマスタにもっとも近い
大きい番号を持ったマスタへグラントを与える。
にリクエストを出しているすべてのバスマスタにバス権
を与えた後でないと再びバス権を得ることができない。
は、ひとつのバスマスタ(レジスタ3401bに登録さ
れたバスマスタ)が他のバスマスタよりも高い優先権を
持つ優先バスマスタになり、他のバスマスタに比べ優先
的にバス権が与えられる。優先バスマスタ以外のバスマ
スタの優先順位はすべて同じである。
り、また優先バスマスタが連続したリクエストを行う場
合、優先バスマスタと他の非優先バスマスタは交互にバ
ス権を得る。
ス権が移ると、他にリクエストを出しているすべてのバ
スマスタにバス権を与えた後でないと、その非優先バス
マスタは再びバス権を得ることができない。
ル)優先アービトレーションモードにおいて、優先バス
マスタがリクエストを出した時、すでに他のバスマスタ
がアドレスフェーズを開始していても、データフェーズ
をまだ開始していなければ、そのトランザクションをス
トップし、優先バスマスタがバス権を得ることができ
る。ただし、その直前に優先バスマスタがバス権を持っ
ていた場合は、連続したバス権を得ることができる回数
を超えることはできない。
した時、中止されたバスマスタがリクエストを出してい
れば、優先してバス権が与えられる。
スタの切り替えを行なうには、レジスタ3401bを書
き換えればよい。優先バスマスタを選択するレジスタが
書き換えられると、その時に実行中のトランザクション
の終了を待って、優先バスマスタが切り替えられる。ア
ービタのステートはアイドル状態にもどり、その時点で
リクエストを出していたバスマスタは、その時同時にリ
クエストを出したものとして、あらためてアービトレー
ションが行われる。
払う必要がある。優先させるべきバスマスタのDMAが終
了しないうちに、異なったバスマスタに優先バスマスタ
を切り替えてしまうと、最初の優先バスマスタのDMAの
優先度が下がってしまう。もしも最初の優先バスマスタ
の優先度を下げたくないのであれば、DMAが終了したの
を確認してから優先バスマスタの切り替えを行なう必要
がある。
ト時のみでなく、システム稼働中も動的に行う必要のあ
るソフトウェアでは、優先バスマスタの切り替えは、い
ったんGバス上に新たなDMAリクエストが発生しないよ
う、すべてのバスマスタ及びDMAコントローラに対する
設定を中止し、その後、Gバスアービタ406内のレジ
スタに適切な値をセットし、さらに、Gバスアービタ4
06内のステータスレジスタをチェックし、バスマスタ
の優先権が切り替わったのを確認した上で新たなGバス
上へのアクセス及びDMAの起動を行うべきである。
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは違反させてしまう可能性があり、十
分な考慮の上行われなければならない。
400内におけるGバス404を中心とする、Gバス上
のバスマスタによるDMAに係るブロック図である。
が必要な場合、例えば、メモリ3501上のデータに対
して、バスマスタ1により処理Aを行った後、バスマス
タ2により処理Bを行い、その処理後のデータをバスマ
スタ4に送るといった一連の処理を考える。
PU401により実行されるプログラムにより、Bバス
405を介して、バスアービタ406内のレジスタテー
ブル3401aに、バスマスタがバスを使用する順序
と、バス権の付与の開始条件と、終了条件がセットされ
る。この例では、 というようにセットする。すなわち、Gバスアービタ4
06は、それぞれのバスマスタから、開始条件として設
定された信号を受けるとそのバスマスタにバス使用権を
与え、終了条件として設定された信号を受けるとバス使
用権を奪う。
Aをセットする。それによって、それぞれのマスタはG
バスアービタ404に対してリクエスト(g(mastername)
Req_L)を発行する。Gバスアービタ404はレジスタテ
ーブル3401aに登録された順序に従ってバスマスタ
1にバス権を与える(gM1Gnt_L)。バスマスタ1はメモリ
3501からある単位のデータをリードし、処理Aを行
って、バスマスタ1内部のバッファにデータをライトす
る。バスマスタ1はひとつの単位の処理が終了し、バッ
ファの準備ができたことをgM1BufReady信号によりアー
ビタ406に対して通知する。
ーブル3401aに登録された、バスマスタがバス権を
与える条件とバス権を奪う条件にしたがって、バス権を
バスマスタ1から奪いバスマスタ2に与える。バスマス
タ2はバスマスタ1のバッファのデータをリードし、処
理Bを行って、バスマスタ2内部のバッファにデータを
格納する。この間にバスマスタ1のバッファが空になる
とgM1BufEmptyがアサートされ、アービタ406はバス
マスタ2にバス権を与えていたのを取りやめる。バスマ
スタ2は処理Bを行って、バッファの準備ができるとgM
2BufReady信号により通知する。
401aの内容にしたがって、今度はバスマスタ4にバ
ス権を与える。バスマスタ4はバスマスタ2のバッファ
からデータをリードする。バスマスタ2のバッファが空
になると、gM2BufEmptyによってアービタ406に通知
し、アービタ406はそれを受け、レジスタ3401a
の内容に従って再びバスマスタ1にバス権を与え、次の
データの処理を始める。
がすべて終了すると、それぞれのバスマスタはプロセッ
サに割り込みによって通知する。ソフトウェアはすべて
のバスマスタからの終了通知がそろったとき、一連の処
理が終了したことを知る。
作であり、順次処理に関わるバスマスタ以外のバスマス
タは、バスを使用することができない。この順次処理中
でも、順次処理に関係のないバスマスタがバスを使用す
ることを可能にするために優先順次モードが用意されて
いる。これらのモードの切り替えではアービタ406内
部のレジスタにプログラミングすることによって行な
う。優先順次モードでは、順次処理を行なうバスマスタ
は優先的にバスを使用できるが、順次処理に関わらない
バスマスタであればバスを使用することが許される。順
次処理を行なうバスマスタと関わらないバスマスタの間
のアービトレーションは、前述した優先アービトレーシ
ョンモードと同等である。当然、順次処理に係わるバス
マスタで、バス権を与えられる条件が満足されずに自分
の順番が回ってきていないバスマスタにはバス権は与え
られない。
号stopSpcがアサートされた場合は、Gバスマスタのひ
とつであるスキャナコントローラ/プリンタコントロー
ラはアービトレーションの対象から除外され、たとえリ
クエストをアサートしていてもバス使用権を与えられる
ことはない。アービトレーションはこのマスタを除外し
たマスタ間で行われる。詳細な説明はBバスアービタの
節で行なう。
9において、Gバスアービトレーションのタイミングを
説明する。図36は、連続してバスを使用する回数が、
バスマスタ1〜4のすべてについて1に設定されている
場合の公平アービトレーションモード(フェアモード)
の例である。バスマスタ1による2回目の(タイミング
4から出されている)バス要求は、バス要求を出してい
る他のバスマスタがすべて1回ずつ処理されるまで待た
されている。
が、バスマスタ1についてのみ2であり、他のバスマス
タは1に設定されている場合の公平アービトレーション
モードの例である。バスマスタ1が出している2回目の
(タイミング4から出されている)バス要求は1回目の
要求に続いて直ちに許可され、他のバスマスタはその処
理がすむまで待たされている。
それぞれ1ずつであり、バスマスタ1が優先バスマスタ
と設定されている場合の優先アービトレーションモード
の例である。優先バスマスタと非優先バスマスタとは交
互にバス使用権が認められるために、バスマスタ1の2
回目のバス要求はバスマスタ2のバスの使用後に認めら
れており、バスマスタ4のバス要求は、バスマスタ1の
2回目のバスの使用後に認められている。また、バスマ
スタ2の2回目のバス要求は、バス要求を出している他
のすべてのバスマスタ、図38ではバスマスタ1及びバ
スマスタ4のバス使用が終了した後で認められている。
より、バスマスタ4のバス要求が許可されているにもか
かわらず中断された例である。この場合、バスマスタ1
のバス使用が終了すると、バスマスタ2のバス要求に優
先してバスマスタ4のバス要求が認められる。
e内部のIO汎用バスであるBバス405のバス使用要
求を受け付け、調停の後、使用許可を選択された一つの
マスタに対して与え、同時に2つ以上のマスタがバスア
クセスを行う事を禁止する。
イオリティを持ち、それぞれのプライオリティに複数の
マスタをプログラマブルに割り当てられる構成になって
いる。割り当ては、それぞれ最大で、最高のプライオリ
ティに3マスタ、中間に7マスタ、最低レベルに3マス
タとなる。
一メモリアドレスに順次書き込みを発行した場合に、プ
ロブラマの意図したアクセス順序を維持するための機構
として、同期ユニットからの、マスタID信号、ストッ
プ信号に基づき、特定のマスタに対し、バス使用許可を
与えることを保留する機構を持つ。
アービタは3つのアービトレーションシーケンサ400
2,4003,4004から構成される。それぞれ、高
優先権、中優先権、低優先権を持ち、それぞれのシーケ
ンサ内に、3,7,3本のバスマスタ用アービトレーシ
ョンシーケンサが内蔵される。Bバス上のすべてのバス
マスタになる可能性のあるユニットからのリクエスト信
号とそれらへのグラント信号を、リクエストセレクタと
グラントセレクタによって、これらの3つのシーケンサ
ユニットに分配する。この分配は、BBusインタフェ
ース4005内のソフトウェアプログラマブルなレジス
タ4005aにより、複数の組み合わせのなかから、一
意の組み合わせを選択することが出来る。
を中優先アービトレーションシーケンサ4003に接続
することにより、7つのマスタ間で公平なアービトレー
ションが実現される。また、バスマスタのうちのいくつ
かを、高優先アービトレーションシーケンサ4002に
割り付けることで、これらのマスタは他のマスタより、
より高い確率でバスの使用権を取得することが出来る。
さらに、いくつかのリクエストを低優先シーケンサ40
04に接続することで、これらのバスの使用率を低く抑
える事が出来る。さらに、バスの取得機会確率の調整に
加え、高優先シーケンサ4002に割り当てられたマス
タは、連続してバスを使用する事ができ、連続して使用
出来る回数をプログラマブルなレジスタ4005aによ
り可変する事ができる。これは、バスの占有率を調整で
き、ある特定のマスタにより多くの時間バスを使用させ
る様に出来る事を意味する。
先シーケンサ4003を例にとり、公平アービトレーシ
ョンの実現方法を説明する。一つのシーケンサに接続さ
れたすべてのバスマスタは同じ優先順位にあり、バス権
を与えられる機会は公平である。バスがフリーの時は、
一番最初にリクエストを出したバスマスタがバス権を得
ることができる(ファーストカムファーストサーブ)。
また、複数のバスマスタが同時にリクエストを出した場
合は、あらかじめ決められた順序にしたがって順次バス
権が与えられる(同時リクエスト発行時ラウンドロビ
ン)。例えば、M1からM7までのすべてのバスマスタ
が同じクロックでリクエストを出した場合は、M1→M
2→M3→M4→M5→M6→M7といった順序でバス
権が与えられる。M7のトランザクションの終了時に再
びすべてのバスマスタがリクエストを出している場合
は、M1→M2→M3→M4→M5→M6→M7→M1
→M2というように、同様の順序でバス権を与えてい
く。一部のバスマスタがリクエストを出している場合
は、M7からM1へラウンドラップするとして、最後に
バスを使用したマスタにもっとも近い大きい番号を持っ
たマスタへグラントを与える。
ーフェースは、高優先、中優先、低優先の3つのアービ
トレーションシーケンサが存在する。優先順位をつけた
アービトレーションは、複数のバスリクエストを選択的
に、高優先、低優先、のアービタに割り振ることにより
実現される。
当て、残りを中優先に割り当てることにより、ひとつの
バスマスタが他のバスマスタよりも高い優先権を持つ優
先バスマスタになり、他のバスマスタに比べ優先的にバ
ス権が与えられる。同じ優先権のアービトレーションシ
ーケンサに割り当てられたバスマスタの優先順位はすべ
て同じである。
り、また優先バスマスタが連続してリクエストを行う場
合、優先バスマスタと他のバスマスタは交互にバス権を
得る。M3が優先マスタでM1,M2,M3,M4がリ
クエストを出し続けた場合M3→M1→M3→M2→M
3→M4→M3→M1の順でバス使用権を与える。
プログラマブルなレジスタにあらかじめ設定された回数
だけ連続したバス権を得ることができる。連続したバス
を使用出来る回数は最大で4回である。
バスマスタにバス権が移ると、そのバスマスタは、他に
リクエストを出しているすべてのバスマスタにバス権を
与えた後でないと再びバス権を得ることができない。ひ
とつのバスマスタが連続してリクエストを行う場合、他
にリクエストを行っているバスマスタがいなければ、連
続してバス権を得ることができるが、他のバスマスタが
リクエストを行っていれば、そのバスマスタはあらかじ
め設定された回数だけ連続してバス権を得ることができ
る。一度バス権が他のバスマスタに移ると、他にリクエ
ストを出しているすべてのバスマスタにバス権を与えた
後でないと再びバス権を得ることができない。
04には最大3本のリクエストを割り当てる事が出来
る。低優先シーケンサ4004に割り当てられたマスタ
へは、中優先、高優先シーケンサに割り当てられた、す
べてのマスタのリクエストがなくならないと、バスの使
用権が与えられない。このシーケンサへのバスマスタの
割り当ては十分な注意を持って行われなければならな
い。
スタの切り替えを行なうには、アービタ内のレジスタを
書き換えればよい。優先バスマスタを選択するレジスタ
が書き換えられると、その時に実行中のトランザクショ
ンの終了を待って、優先バスマスタが切り替えられる。
アービタのステートはアイドル状態にもどり、その時点
でリクエストを出していたバスマスタは、その時同時に
リクエストを出したものとして、あらためてアービトレ
ーションが行われる。
優先させるべきバスマスタのDMAが終了しないうちに、
異なったバスマスタに優先バスマスタを切り替えてしま
うと、最初の優先バスマスタのDMAの優先度が下がって
しまう。もしも最初の優先バスマスタの優先度を下げた
くないのであれば、DMAが終了したのを確認してから優
先バスマスタの切り替えを行なう必要がある。
ト時のみでなく、システム稼働中も動的に行なう必要の
あるソフトウェアでは、優先バスマスタの切り替えは、
いったんBバス上に新たなDMAリクエストが発生しない
よう、すべてのバスマスタ及びDMAコントローラに対す
る設定を中止し、その後、Bバスアービタ407内のレ
ジスタに適切な値をセットし、さらに、Bバスアービタ
内のステータスレジスタをチェックし、バスマスタの優
先権が切り替わったのを確認した上で新たなBバス上へ
のアクセス及びDMAの起動を行うべきである。
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは、違反させてしまう可能性があり、
十分な考慮の上行われなければならない。
407はアクセス順序制御機構を含む。アクセス順序制
御機構は、同期ユニット4001と、Bバスアービタ4
07,Gバスアービタ406内に組み込まれたバス使用
権発行抑制機構によって実現される。Bバスアービタ4
07内に組み込まれたバス使用権発行抑制機構は、Gバ
スアービタのそれと同様に動作する。つまり、stopPci
信号が入力された場合は、Pciバスマスタからのバスリ
クエストが発行され、アービトレーションの結果、この
マスタにバスの使用権を与えることが可能な状態でも、
バスの使用権発行は行わず、他のマスタへバス使用権を
あたえる。具体的には、stopPci信号が入力された場合
は、直ちにbPciReq_Lをマスクすることにこれを行う。
ストおよび、ストップ信号の場合もまったく同様に動作
する。図41に同期ユニット4001のブロック図を示
す。同期ユニット内には複数のDMAマスタ間すべての組
み合わせに関して、それぞれコンペアユニット4101
〜4103が接続される、DoEngineでは、Gbu
s上のDMAマスタはスキャナコントローラ/プリンタコン
トローラのみ存在する。Bバス上には、DMAPCIユニッ
ト、LANユニットの二つが存在する。SBB内のBバス
インターフェースはBバス上のバスマスタであるが、メ
モリには直接アクセスしないので、同期ユニット400
1にはIDと転送先アドレスを出力しない。
ニット(Comparation Unit 1)を以下に示す。他のコン
ペアユニットも同様の構成を有する。
ブロックもしくは、スキャナコントローラ/プリンタコ
ントローラから、同期ユニット4001に対し、DMAラ
イトがプログラミングされた時点で、転送先のアドレス
とそのDMAブロック固有のリクエスト信号が通知され
る。
らリクエストが出力された時点で、アドレスを内部に持
つタイマによる現在時刻とともに記憶する、次に他のDM
Aブロックから、DMAライトに関するアドレスとリクエス
トが入力された時点で、コンペアユニットは両アドレス
を比較する。一致した場合にはさらに、それぞれのレジ
スタに格納された時間を比較し、時間的に後からDMAラ
イトの要求を出してきたDMAブロックが接続されたバス
のバスアービタに対し、このマスタに対するバス使用強
化を与えないようにする。これは、stop(ID)という信号
により各バスのバスアービタに通知される。
されたマスタに対しては、アービトレーションによるバ
ス使用権の割り当てを行わない。
バスマスタにより当該メモリアドレスへのDMAライトが
終了すると、先のマスタは、同期ユニットに対するリク
エストを取り下げる、同期ユニットは、2番目にDMAラ
イトの要求を出した、DMAブロックの接続するバスのバ
スアービタに対し、このDMAブロックへの、バス使用権
許可禁止信号の発行をとりさげる。そして、後からDMA
ライトを行うべきマスタのDMAライトが行われる。
ストが取り下げられると、タイマーがリセットされる。
タイマーのカウントアップは再度どちらかのマスタから
のリクエストが出力された時点で再度行われる。
コントローラ図43は、スキャナコントローラ/プリン
タコントローラ及びその周辺の回路のブロック図であ
る。スキャナ/プリンタコントローラは、スキャナおよ
びプリンタを、GバスまたはBバスにインターフェース
するブロックである。以下の3つの機能ブロックから構
成される。 1.スキャナコントローラ スキャナとビデオI/Fで接続され、動作制御およびデー
タ転送制御を行う。Gバス/BバスI/Fユニット430
1AとはIF-バスで接続され、データ転送およびレジス
タのリード・ライトが行われる。データ転送はマスタ機
能を備える。 2.プリンタコントローラ プリンタとビデオI/Fで接続され、動作制御およびデー
タ転送制御を行う。Gバス/BバスI/Fユニット430
1BとはI/F-バスで接続され、データ転送およびレジス
タのリード・ライトが行われる。データ転送はマスタと
スレーブの両機能を備える。 3.Gバス/BバスI/Fユニット スキャナコントローラ4302およびプリンタコントロ
ーラ4303をGバスまたはBバスに接続するためのユ
ニットである。スキャナコントローラ4302とプリン
タコントローラ4302にそれぞれ独立して接続され、
GバスとBバスに接続する。 4.CPバス スキャナとプリンタの、画像データおよび水平、垂直同
期のための同期信号を直結するためのバスである。
示す。スキャナコントローラ4302は、ビデオI/Fに
よってスキャナと接続し、Gバス/BバスI/Fユニット
(scc GBI)4301Aにインターフェースするブロッ
クである。Gバス/BバスI/Fユニット(scc GBI)43
01Aには、sccI/F-バスを介してインターフェースさ
れる。大別して以下のブロックから構成される。 1.スキャナデバイスI/F4401 スキャナのビデオI/Fと信号の入出力をおこなう入出力
ポート。 2.スキャナビデオクロックユニット4402 スキャナのビデオクロックで動作するユニット。 3.スキャナ画像データFIFOコントローラ4403 画像データ転送用のFIFOを制御する。 4.スキャナコントローラコントロールレジスタユニッ
ト4404 スキャナコントローラ全体を制御するためのレジスタ。 5.IRQコントローラ4406 スキャナコントローラ(Scc)内部で発生する割込み信
号を制御する。 6.メモリフィルモードコントローラ4405 レジスタに設定された固定データをメモリに対して転送
するモードをコントロールする。スキャナからの画像デ
ータと選択的に切り替えをおこなう。 7.FIFO(FIFO_SCC)4407 スキャナからのビデオデータを出力する際に、出力先の
デバイスがビデオデータと非同期の可能性がある場合に
用いられるFIFOである。
種類は、 1.RGB各8ビットのカラー多値データ 2.8ビット白黒多値データ 3.1ビット白黒2値データ などが含まれる。
ブロックの概要を説明する。
5に、スキャナデバイスI/F4401のブロック図を示
す。スキャナデバイスI/Fは、スキャナユニットのスキ
ャナビデオI/F4501との間で信号を入出力する入出
力ポートである。スキャナビデオI/Fからの入力ビデオ
信号SVideoR[7:0], SVideoG[7:0], SVideoB[7:0]の各信
号を、スキャナコントローラコントロールレジスタ44
04からのVDInvt信号に応じて、レベル反転するかどう
かを切り替えることが可能である。
概要]図46に、スキャナビデオクロックユニット44
02のブロック図を示す。スキャナビデオクロックユニ
ット4402は、スキャナからのビデオクロックで動作
するブロックである。以下のブロックから構成される。 1.スキャナビデオデータマスク4601 スキャナからの画像データに対してデータマスクを行う
ブロックである。マスクされたデータはレジスタに設定
された値のデータとなる。 2.スキャナビデオ同期コントロールユニット4602 スキャナからのビデオクロック, VSYNC, HSYNCの信号か
ら、画像データを取り込むタイミング信号等を生成する
ブロックである。画像データの水平方向、垂直方向のデ
ータ数とライン数を管理する。 3.ビデオデータ幅コンバータ スキャナから入力した画像データを64ビット幅のデー
タにパッキングして変換するブロックである。
47にスキャナビデオデータマスク4601のブロック
図を示す。スキャナビデオデータマスク4601は、ス
キャナから入力する画像データに対してピクセル単位で
マスクを行う。マスクされた画像データはレジスタによ
り設定された値となる(RDMask[7:0], GDMask[7:0], BD
Mask[7:0])。
トの概要)図48にスキャナビデオデータマスク460
2のブロック図を示す。スキャナビデオ同期コントロー
ルユニット4602は、スキャナから入力される画像デ
ータの垂直同期信号(SVSYNC)、水平同期信号(SHSYN
C)、画像データ同期クロック(GTSVCLK)により、取り
込む画像データのイネーブル信号(IVE)を生成する。
また、画像データの主走査方向の遅延、取り込みピクセ
ル数、副走査方向の遅延、取り込みライン数を管理す
る。さらに、設定量の画像データ取り込みを終了したタ
イミングでの状態信号(PENDP)を生成する。
延と取り込みライン数を管理して、画像読み取り有効ラ
インの垂直同期信号(EH)を生成する。ピクセルカウ
ンタ4802は主走査方向の画像取り込み遅延と取り込
み画素数を管理する。ページカウンタ4803は入力す
る画像データをページ単位で管理する。設定されたペー
ジ数分の画像データ入力を終了すると、終了信号(ALLP
END)を生成する。
603の概要)図49にスキャナビデオデータ幅コンバ
ータ4603のブロック図を示す。これは、スキャナか
ら入力する画像データを64ビット幅にならべるユニッ
トである。ならべたデータはFIFOに64ビットデータで
書き込まれる。入力できる画像データのタイプは、RGB
各8ビットのカラー画像データ、多値8ビットの白黒画
像データ、2値1ビットの白黒画像データの3種類であ
る。スキャナコントローラコントロールレジスタ440
4においてモード設定される。モードとしては、RGBカ
ラー画像データをメモリ内に24ビットでならべるモー
ドと、1バイト付加して32ビットでならべるモードと
を備える。3種類の画像データは以下の信号ラインから
入力される。 1.RGB各8ビットのカラー画像データ … R[7:0], G
[7:0], B[7:0] 2.多値8ビットの白黒画像データ … R[7:0] 3.2値1ビットの白黒画像データ … R7 64ビットデータへのならべかたとメモリ上でのならび
かたは以下のとおりである。
(24ビット格納モード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット39−32 第2ピクセルG8ビット→ビット31−24 第2ピクセルB8ビット→ビット23−16 第3ピクセルR8ビット→ビット15−8 第3ピクセルG8ビット→ビット7−0 メモリ上でのならびは、図50の通りである。
(32ビット格納モード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット31−24 第2ピクセルG8ビット→ビット23−16 第2ピクセルB8ビット→ビット15−8 メモリ上でのならびは、図51の通りである。
する。
01により、多値8ビットの白黒画像データを64ビッ
ト幅に変換する際のタイミング図である。スキャナから
の8ビット白黒画像データR[7:0]は、信号VEがハイ
レベルになると取り込まれ、1ピクセルずつ信号LP0
〜LP7に同期して64ビットラッチにラッチされる。
8画素分揃うと、信号LP64に同期して、ラッチされ
た8画素64ビットが信号BW8[63:0]として出力され
る。
2値白黒画像データを64ビット幅に変換する際の画像
データ入力のタイミング図である。スキャナからの2値
白黒画像データR7(SVIDEOR0)は、信号VEがハイレ
ベルになると取り込まれ、1ビットずつシフトレジスタ
によりシフトされて、64ビット取り込まれると。信号
SVLATCH64に同期して、信号BW1[63:0]として出力
される。
03により、RGB各8ビット(全24ビット)の画像
データを64ビット幅に変換する際のタイミング図であ
る。また、図57は、RGBパッキングユニット4903
のブロック図である。図において、スキャナビデオデー
タマスク4601から入力された画像データR[7:0],G
[7:0],B[7:0]は、24ビットデータラッチ5701
A,Bに入力される。データラッチA,Bは、クロック
CLKを2分の1に分周した、互いに逆位相のラッチ信号L
P0,LP1に同期してそれぞれ入力される24ビットデー
タをラッチする。データラッチ5701A,Bにラッチ
されたデータは、48→32ビットデータセレクタ57
02に入力信号RGBHT[47:0]として入力され、2ビット
の選択信号LP[3:2]に応じて32ビット信号DATA[31:0]
として出力される。出力の仕方は、選択信号の値に応じ
て3通りある。まず第1番目は、入力信号RGBHT[47:16]
を出力信号DATA[31:0]とする方法である。第2番目は、
入力信号RGBHT[15:0]を出力信号DATA[31:16]とし、入力
信号RGBHT[47:32]を出力信号DATA[15:0]とする方法であ
る。第3番目は、入力信号RGBHT[31:0]を出力信号DATA
[31:0]とする方法である。
号に同期させて交互に24ビット画像データをラッチ
し、上記3通りの選択の仕方を順に切り換えることで、
データセレクタ5702からの出力は、24ビット/ピ
クセルのデータを32ビットにまとめたデータとなる。
ただし、上記第3の方法でセレクタ5702のデータが
選択された後は、データセレクタに入力された2つのピ
クセル分のデータは両方とも更新されねばならない。そ
こで、図56に示されている通り、選択信号SELUL[3:2]
は1クロック分遅延される。
ビット幅に一旦変換されたデータは、データラッチ57
40A,Bに交互にラッチされ、データラッチ5704
Bの内容が更新されたタイミング、すなわちラッチ信号
SELUL1がハイレベルになるタイミングで、64ビット幅
に変換されたデータとして出力される。
ローラ4403の概要]図58に、スキャナ画像データ
転送FIFOコントローラ4403のブロック図を示す。こ
のブロックは、スキャナから入力された画像データをG
バスもしくはBバスを介して転送するためのバッファと
してのFIFO5801と、そのFIFO5801をコントロー
ルする回路から構成されている。FIFOとしては、容量5
12バイト(64ビット×64)のFIFOを備える。FIFO
のデータ出力は、スキャナFIFOライトリードアービタ5
802が、FIFO5801のエンプティフラグ(EF)を監
視しながら制御する。FIFOのデータ入力はスキャナビデ
オクロックユニット4402からの要求信号(WREQ)に
よりおこなわれる。
レジスタ4404の概要]図59に、スキャナコントロ
ーラコントロールレジスタ4404のブロック図を示
す。このブロックは、スキャナコントローラ内部を制御
するレジスタを備えたブロックである。内部のレジスタ
は以下のとおりである。 1.スキャナ・コントローラ・パワー・マネージメント
・コントロールレジスタ 2.スキャナコントローラ・コントロールレジスタ 3.スキャナ・コントローラ・割り込み要因ステータス
レジスタ 4.スキャナ・コントローラ・割り込み要因マスクレジ
スタ 5.スキャナ副走査マスクライン数設定レジスタ 6.スキャナ主走査マスクピクセル数設定レジスタ 7.スキャナ副走査ライン数設定レジスタ 8.スキャナ副走査ライン数カウンタ読み出しレジスタ 9.スキャナ副走査ピクセル数設定レジスタ 10.スキャナ主走査ピクセル数カウンタ読み出しレジ
スタ 11.スキャン・ページ数設定レジスタ 12.スキャン・ページ数カウンタ読み出しレジスタ 13.スキャナ・デバイス・コントロール・レジスタ 14.スキャナ・デバイス・ステータス・レジスタ 15.スキャナ・ビデオ・マスクデータ・レジスタ 16.メモリ・フィル・データ・レジスタ [5.IRQコントローラ4406の概要]図60に、IRQ
コントローラ4406のブロック図を示す。このブロッ
クは、スキャナコントローラ内で発生する割り込み信号
を管理する。割り込み発生要因には次のようなものがあ
る。 1.設定されたページ分の画像データを入力終了(ALLE
ND) 2.1ページ分の画像データを入力終了(PageEnd) 3.スキャナからのSPRDY信号の立ち上がり(false→tr
ue)(INSPRDY) 4.スキャナからのSPRDY信号の立ち下がり(true→fal
se)(INSPRDY) 5.スキャナからのSVSYNC信号の立ち上がり(false→t
rue)(INSVSYNC) 6.スキャナからのSVSYNC信号の立ち下がり(true→fa
lse)(INSVSYNC) 7.画像データFIFOのEMPTY信号の立ち上がり(false→
true)(EMPTY) 8.画像データFIFOのEMPTY信号の立ち下がり(true→f
alse)(EMPTY) 9.画像データFIFOのFULL信号の立ち上がり(false→t
rue)(FULL) 10.画像データFIFOのFULL信号の立ち下がり(true→
false)(FULL) 11.画像データFIFOにオーバーライトが発生(FOW) 上記の割り込み要因に対応するフラグ情報(SCIRQ[31:2
1])をスキャナコントローラコントロールレジスタ44
06に出力する。スキャナコントローラコントロールレ
ジスタ4406から、各割り込み要因に対するマスクビ
ット(SCIMask[31:21])とクリア信号(SCICLRP[31:2
1])とが入力される。各割り込み要因の論理和をintScc
に出力する。
405の概要]図61にメモリフィルモードコントロー
ラ4405のブロック図を示す。このブロックは、レジ
スタに設定された固定データをGBIを介してメモリに転
送するモードを制御する。このモード設定はMemfill信
号によりおこなわれる。固定データの転送モード指定が
なされると、sccGBIに出力されるデータは、レジスタに
設定されたデータ(MFData[31:0])が選択される。ま
た、sccGBIにデータ転送するタイミング信号(sccWrit
e)はこのブロック内で生成される。
は、Gバス/BバスI/Fユニット4301Aとスキャナ
コントローラ4302とを接続するローカルなバスであ
る。このバスに含まれる信号には次のようなものであ
る。なお、信号の入出力は、スキャナコントローラから
Gバス/BバスI/Fユニット(GBI)に出力する信号をOUT,
Gバス/BバスI/Fユニット(GBI)からスキャナコント
ローラに入力する信号をINで示す。なお、IF-バスはス
キャナコントローラとプリンタコントローラに対して同
一規定とするため、スキャナコントローラのサポートし
ない機能のための信号も記述する。基本クロックはBバ
スのBclkを使用する。 ・sccRst0_L :IN この信号により、スキャナコントローラ内部のFIFOを初
期状態に戻す。 ・sccDataOut[63:0] :OUT スキャナコントローラからGバス/BバスI/Fユニット
(GBI)に出力される64ビットのデータバスである。ス
キャナコントローラがデータ転送動作する場合に画像デ
ータが転送される。 ・sccWrite :OUT スキャナコントローラがデータ転送動作するときの、G
バス/BバスI/Fユニット(GBI)へのライト信号である。
Gバス/BバスI/Fユニットは、sccWrite信号がアサー
トされているBclkの立ち上がりで、sccDataOut[63:0]を
取り込む。sccWrite信号をアサートし続けることで、1
クロック単位でデータがライトできる。 ・sccWriteEnable :IN スキャナコントローラがデータ転送動作時における、G
バス/BバスI/Fユニット(GBI)へのライト信号である。
Gバス/BバスI/Fユニット(GBI)から出力される。Bclk
の立ち上がりで、sccWriteEnable信号がアサートされて
いれば、次のクロックの立ち上がりで、ライト可能であ
ることを示す。sccWrite信号のアサートは、sccWriteEn
able信号を確認して行う。 ・sccRegAddr[31:2] :IN Gバス/BバスI/Fユニット(GBI)からスキャナコントロ
ーラ内部のレジスタにアクセスするさいのレジスタアド
レスバスである。sccRegStart_Lアサートと同時に有効
となり、スキャナコントローラ内部レジスタへのアクセ
スであれば、sccRegAck_L信号で応答するまで有効であ
る。 ・sccRegbyteEn[3:0] :IN Gバス/BバスI/Fユニット(GBI)から出力されるsccReg
DataIn[31:0]のバイトイネーブル信号である。sccRegSt
art_Lアサートと同時に有効となり、sccRegAck_L信号で
応答するまで有効である。この信号で示された有効なバ
イトのみレジスタへの書き込みを行う。内部レジスタか
らの読み出し時は、この信号は無視し、全バイト出力す
る。この信号の各ビットとsccRegDataIn[31:0]のバイト
との対応は次の通りである。 sccRegbyteEn: 3 2 1 0 sccRegDataIn: [31:24] [25:16] [15:8] [7:0] ・sccRegStart_L :IN Gバス/BバスI/Fユニット(GBI)からスキャナコントロ
ーラ内部のレジスタにアクセスする際のアクセス要求信
号である。“Low”でレジスタのアクセス要求を示す。s
ccRegAddr[31:2]信号、sccRegRdNotWr信号とともにアサ
ートされ、Bclk1クロック分だけアサートされる。スキ
ャナコントローラが、このアクセスに対するsccRegAck_
Lを返さない限り、次のアクセスのアサートはされな
い。 ・sccRegDataOut[31:0] :OUT Gバス/BバスI/Fユニット(GBI)からスキャナコントロ
ーラ内部のレジスタをリードアクセスする場合の32ビ
ットデータバスである。sccRegAck_L信号がアサートさ
れているときに有効となる。 ・sccRegDataIn[31:0] :IN Gバス/BバスI/Fユニット(GBI)からスキャナコントロ
ーラ内部のレジスタをライトアクセスする場合の32ビ
ットデータバスである。sccRegStart_Lアサートと同時
に有効となり、スキャナコントローラ内部レジスタへの
アクセスであれば、sccAck_L信号で応答するまで有効で
ある。 ・sccRegRdNotWr :IN Gバス/BバスI/Fユニット(GBI)からスキャナコントロ
ーラ内部のレジスタにアクセスするさいのアクセス方向
(リードまたはライト)を示す信号である。”High”で
スキャナコントローラ内部レジスタの内容がsccRegData
Out[31:0]に読みだされ、”Low”でsccRegDataIn[31:0]
の内容がスキャナコントローラ内部レジスタに書き込ま
れる。sccRegStart_Lアサートと同時に有効となり、ス
キャナコントローラ内部レジスタへのアクセスであれ
ば、sccRegAck_L信号で応答するまで有効である。 ・sccRegAck_L :OUT スキャナコントローラ内部のレジスタアクセスが完了し
たことを示す信号である。スキャナコントローラからG
バス/BバスI/Fユニット(GBI)へ出力される。Bclk1ク
ロック分だけアサートされる。sccRegReq_L信号がアサ
ートされた次のクロックからセンスされる。
sccRead, sccDataIn[63:0]は、IFバスに含まれている
ものの、スキャナコントローラでは未使用である。
ングの一例を示すタイミングダイアグラムである。図6
2はスキャナコントローラ4302からデータを読み出
してDMA転送する際のタイミングであり、図63は、ス
キャナコントローラ4302の内部レジスタに対して読
み出しあるいは書き込みを行うタイミングである。
ーラ内部では、スキャナ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B005000)の設定
に応じたビデオクロック(SVCLK)のゲートコントロール
を行い、それによりパワーマネージメントを行う。パワ
ーマネジメントユニット(PMU)409に出力するPMス
テート信号(sccPmStat[1:0])の値は、Gバス/BバスI/
Fユニット4301Aから入力されるsccDmaPmState[1:
0]の状態とクロックの状態とを合わせて決定される。sc
cPmState[1:0]は図64のとおりである。
スキャナのGバス/BバスインターフェースGBI_sccの
パワー消費状態を示している。GBI_secにはパワー消費
状態00〜11の4段階がある。この状態信号sccDmaPmState
[1:0]は、GBI_sccからスキャナコントローラへ出力さ
れている。
状態は2段階あり、内部信号SPStatで示される。
ャナコントローラの2つの状態をあわせた状態を示して
いる。この信号がシステムのパワーマネージメントユニ
ットに出力される。すなわち、スキャナコントローラの
電力消費状態は4段階でパワーマネジメントユニットに
伝えられる。その段階は信号sccPmstate[1:0]の値で示
される。値00が最低レベルであり、1増えるごとに示さ
れる電力消費量は大きくなる。
ース)図65は、スキャナコントローラ4302におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、スキャナコントローラ4302は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接続さ
れている。
示す。プリンタコントローラはビデオI/Fによってプリ
ンタと接続し、Gバス/BバスI/Fユニットにインター
フェースするブロックである。大別して以下のブロック
から構成される。 1.プリンタデバイスI/F6601 プリンタビデオI/FおよびオプションコントローラI/Fと
信号の入出力をおこなう入出力ポートである。 2.プリンタビデオクロックユニット6602 プリンタのビデオクロックで動作するユニットである。 3.プリンタ画像データFIFOコントローラ6603 画像データ転送用のFIFOを制御する。 4.プリンタコントローラコントロールレジスタユニッ
ト6604 プリンタコントローラ全体を制御するためのレジスタユ
ニットである。 5.IRQコントローラ6605 プリンタコントローラ(Prc)内部で発生する割込み信
号を制御する。 6.プリンタコマンド/ステータスコントロールユニッ
ト6606 ビデオI/Fを介してプリンタとのコマンド/ステータス
送受信を制御する。 7.オプションコントローラコントロールユニット66
07 プリンタオプションコントローラを制御するユニットで
ある。 8.FIFO(FIFO_PRC)6608 プリンタへとビデオデータを出力する際に、プリンタが
ビデオデータと非同期の可能性がある場合に用いられる
FIFOである。
の5種類である。 1.RGB各8ビットのカラー多値データ(点順次) 2.8ビット白黒多値データ 3.1ビット白黒2値データ 4.CMYK各1ビットのカラーデータ(面順次) 5.CMYK各8ビットのカラーデータ(面順次) 次に、プリンタコントローラを構成する各ブロックの概
要を説明する。
7にプリンタデバイスI/F6601のブロック図を示
す。このブロックは、プリンタビデオI/Fおよびオプシ
ョンコントローラI/Fから信号を入出力する入出力ポー
トである。PビデオR[7:0], PビデオB[7:0]の各信号はVD
Invt信号により、出力信号をレベル反転するかどうかを
切り替えることが可能である。
概要]図68にプリンタビデオクロックユニット660
2のブロック図を示す。このブロックは、プリンタから
のビデオクロックで動作し、以下のブロックから構成さ
れる。 1.プリンタビデオデータマスク6801(DFF8ENMask)
プリンタへの画像データに対して、データマスクを行う
ブロック。マスクされたデータはレジスタに設定された
値のデータとなる。 2.プリンタビデオ同期コントロールユニット6802
(Prc_syncユニット)プリンタからのビデオクロック, VS
YNC, HSYNCの信号から、画像データを出力するタイミン
グ信号等を生成するブロック。画像データの水平方向、
垂直方向のデータ数とライン数を管理する。 3.プリンタ ビデオデータ幅コンバータ6803(pvdw
conv)IFバスからの64ビット幅で送られてくる画像デ
ータを、モードにより、RGB24ビット、白黒8ビッ
ト、白黒1ビットのデータに変換するブロック。モード
設定はレジスタにより行う。
プリンタビデオデータマスク6801のブロック図を示
す。このブロックは、プリンタへ出力する画像データに
対して、ピクセル単位でマスクを行う。マスクされた画
像データはレジスタに設定された値となる(RDMask[7:
0], GDMask[7:0], BDMask[7:0])。
ト)図70にプリンタビデオ同期コントロールユニット
6802のブロック図を示す。このブロックは、プリン
タへ出力する画像データの垂直同期信号(TOP)、水平
同期信号(INPHSYNC)、画像データ同期クロック(GTVC
LK)により、出力する画像データのイネーブル信号(VD
OEN)、プリンタ画像データ転送FIFOコントローラ66
03にデータの要求をする信号(RREQ)を生成する。
り込みピクセル数、副走査方向の遅延、取り込みライン
数を管理する。ラインカウンタ7001は設定量の画像
データ出力を終了したタイミングでの状態信号(PEND
P)を生成する。また、副走査方向の遅延と出力ライン
数を管理して、画像出力有効ラインの垂直同期信号(E
H)を生成する。ピクセルカウンタ7002は主走査方
向の画像出力遅延と出力画素数を管理する。ページカウ
ンタ7003は出力する画像データをページ単位で管理
する。設定されたページ数分の画像データ出力を終了す
ると、終了信号(ALLPEND)を生成する。
図71にビデオデータ幅コンバータ6803のブロック
図を示す。このブロックは、GBI(Gバス/BバスI/F)か
ら入力する64ビット幅のデータを画像データの形式に
変換するユニットである。出力できる画像データのタイ
プは次の3種類。RGB各8ビットのカラー画像データ、
多値8ビットの白黒画像データ、2値1ビットの白黒画
像データである。RGB各8ビットのカラー画像データは
24ビット単位でメモリ上に格納されている場合(24
ビットモード)と、24ビットに1バイトデータが付加
されて32ビット単位でメモリに格納されている場合
(32ビットモード)の2つのモード出力をサポートす
る。このモードは、プリンタコントローラコントロール
レジスタ6604においてモード設定される。3種類の
画像データは以下の信号ラインへ出力される。 1.RGB各8ビットのカラー画像データ … IR[7:0],
IG[7:0], IB[7:0] 2.多値8ビットの白黒画像データ … IR[7:0] 3.2値1ビットの白黒画像データ … IR7 64ビットデータのメモリ上でのならびかたは以下のと
おりとなる。
(24ビットモード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット39−32 第2ピクセルG8ビット→ビット31−24 第2ピクセルB8ビット→ビット23−16 第3ピクセルR8ビット→ビット15−8 第3ピクセルG8ビット→ビット7−0 この場合、メモリ上でのならびは、図72に示した通り
となる。
(32ビットモード) 第1ピクセルR8ビット→ビット63−56 第1ピクセルG8ビット→ビット55−48 第1ピクセルB8ビット→ビット47−40 第2ピクセルR8ビット→ビット31−24 第2ピクセルG8ビット→ビット23−16 第2ピクセルB8ビット→ビット15−8 この場合、メモリ上でのならびは、図73に示した通り
となる。
となる。
となる。
を構成するブロックについて説明する。
にRGBoutユニット7101のブロック図を示す。このブ
ロックは24ビットモードでパックされた64ビット幅
のデータをRGB各8ビットのカラー画像データに変換す
るユニットである。
ローラの概要]図77にプリンタ画像データ転送FIFOコ
ントローラ6603のブロック図を示す。このブロック
は、プリンタへ出力する画像データをGBI(Gバス/Bバ
スI/F)を介して転送するためのバッファとしてのFIFO
と、そのFIFOをコントロールする回路でらう。容量51
2バイト(64ビット×64)のFIFO7701を備え
る。FIFOのデータ入力は、プリンタFIFOライトリードア
ービタ7702がFIFO7701のフルフラグ(FF)を監
視しながら制御する。FIFOのデータ出力はプリンタビデ
オクロックユニット6602からの要求信号(RREQ)に
よりおこなわれる。
レジスタユニット]図78にプリンタコントローラコン
トロールレジスタ6604のブロック図を示す。このブ
ロックは、プリンタコントローラ内部を制御するレジス
タを備えたブロックである。内部のレジスタは以下のと
おりである。 1.プリンタ・パワー・マネージメント・コントロール
レジスタ 2.プリンタ・コントローラ・コントロールレジスタ 3.プリンタ・コントローラ・割り込み要因ステータス
レジスタ 4.プリンタ・コントローラ・割り込み要因マスクレジ
スタ 5.プリンタ副走査マスクライン数設定レジスタ 6.プリンタ主走査マスクピクセル数設定レジスタ 7.プリンタ副走査ライン数設定レジスタ 8.プリンタ副走査ライン数カウンタ読み出しレジスタ 9.プリンタ主走査ピクセル数設定レジスタ 10.プリンタ主走査ピクセル数カウンタ読み出しレジ
スタ 11.プリント・ページ数設定レジスタ 12.プリント・ページ数カウンタ読み出しレジスタ 13.プリンタ・デバイス・コントロール・レジスタ 14.プリンタ・デバイス・ステータス・レジスタ 15.プリンタ・シリアル・コマンド・レジスタ 16.プリンタ・シリアル・ステータス・レジスタ 17.オプション・コントローラ・TX・レジスタ 18.オプション・コントローラ・RX・レジスタ 19.プリンタ・ビデオ・マスクデータ・レジスタ 20.4階調出力レベル設定レジスタ 21.16階調出力レベル設定レジスタ1 22.16階調出力レベル設定レジスタ2 23.16階調出力レベル設定レジスタ3 24.16階調出力レベル設定レジスタ4 [5.IRQコントローラ]図79及び図80にIRQ
コントローラ6605のブロック図を示す。このブロッ
クは、プリンタコントローラ内で発生する割り込み信号
を管理する。割り込み要因から、割り込みを発生させ
る。各割り込み要因に対してマスク機能をもち、個別に
クリアすることができる。割り込み要因は以下のとおり
である。 1.画像データ転送全ページ終了(ALLPEnd) 2.画像データ転送1ページ終了(PageEnd) 3.シリアルステータス1バイト受信完了(INPSBSY) 4.シリアルコマンド1バイト送信完了(EndCBSY) 5.PPRDY信号立ち上がり(false→true)(INPPRDY) 6.PPRDY信号立ち下がりtrue→false)(INPPRDY) 7.RDY信号立ち上がり(false→true)(INRDY) 8.RDY信号立ち下がり(true→false)(INRDY) 9.PFED信号立ち上がり(false→true)(INPFED) 10.PFED信号立ち下がり(true→false)(INPFED) 11.SPCHG信号立ち上がり(false→true)(INSPCH
G) 12.SPCHG信号立ち下がり(true→false)(INSPCH
G) 13.PDLV信号立ち上がり(false→true)(INPDLV) 14.PDLV信号立ち下がり(true→false)(INPDLV) 15.TOPR信号立ち上がり(false→true)(INTOPR) 16.TOPR信号立ち下がり(true→false)(INTOPR) 17.CCRT信号立ち上がり(false→true)(INCCRT) 18.CCRT信号立ち下がり(true→false)(INCCRT) 19.VSREQ信号立ち上がり(false→true)(INPVSYN
C) 20.VSREQ信号立ち下がり(true→false)(INPVSYN
C) 21.オプションコントローラ TX送信&RX受信完了 22.画像データ転送FIFOのEMPTY信号の立ち上がり 23.画像データ転送FIFOのEMPTY信号の立ち下がり 24.画像データ転送FIFOのFULL信号の立ち上がり 25.画像データ転送FIFOのFULL信号の立ち下がり 26.画像データ転送FIFOにオーバーリードが発生(EE
RDOut) 上記の割り込み要因に対応するフラグ情報(PCIRQ[31:
6])をプリンタコントローラコントロールレジスタ66
04に出力する。プリンタコントローラコントロールレ
ジスタ6604から、各割り込み要因に対する、マスク
ビット(PCIMask[31:6])とクリア信号(PCICLRP[31:
6])を入力する。各割り込み要因の論理和がintPrcに出
力する。
トロールユニット]図81に、プリンタコマンド/ステ
ータスコントロールユニット6606のブロック図を示
す。このブロックは、プリンタを制御するためのシリア
ルコマンド/ステータスを送受信するブロックである。
信している期間をあらわすINPCBSY信号、シリアルコマ
ンドの同期クロックであるINPCCLK信号、シリアルコマ
ンドINPSRCMD信号が生成される。
が送信されている期間を示すINPSBSY信号、シリアルス
テータスINPSRSTS信号が入力されて、8ビットのステー
タスPSRSTAT[7:0]を出力する。シリアルステータスを入
力するための同期クロックはプリンタから出力されるIN
PPCLK信号、または、本ブロックで生成されるPCCLK信号
のどちらかを選択可能である。選択はPSRCLKMode信号に
よりなされる。
ルユニット]図82に、オプションコントローラコント
ロールユニット6607のブロック図を示す。このブロ
ックは、オプションコントローラに対して、送信データ
(TX)を出力するユニットである。TX送信のための、IN
STROBE信号、INCKEN信号、CLK(OPCLK)信号を生成する。
また、TX送信と同時に、受信データ(RX)の受信を行
う。
は、Gバス/BバスI/Fユニット4301Bとプリンタ
コントローラ4303とを接続するローカルなバスであ
る。このバスに含まれる信号には次のようなものであ
る。なお、信号の入出力は、プリンタコントローラから
Gバス/BバスI/Fユニット(GBI)に出力する信号をOUT,
Gバス/BバスI/Fユニット(GBI)からプリンタコント
ローラに入力する信号をINで示す。IF-バスはスキャナ
コントローラとプリンタコントローラに対して同一規定
とするため、プリンタコントローラのサポートしない機
能のための信号も記述する。基本クロックはBバスのBc
lkを使用する。 ・prcRst0_L :IN この信号により、プリンタコントローラ内部のFIFOを初
期状態に戻す。 ・prcDataIn[63:0] :IN Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラに出力される64ビットのデータバスである。プリ
ンタコントローラがデータ転送動作する場合に画像デー
タが転送される。 ・prcRead :OUT プリンタコントローラがデータ転送動作するとき、Gバ
ス/BバスI/Fユニット(GBI)からのリード信号。Gバス
/BバスI/Fユニット(GBI)は、prcRead信号がアサート
されているBclkの立ち上がりに対して、prcDataIn[63:
0]を有効とする。prcRead信号をアサートし続けること
で、1クロック単位でデータがリードできる。 ・prcReadEnable :IN プリンタコントローラがデータ転送動作時、Gバス/B
バスI/Fユニット(GBI)からのデータリード許可を示す信
号。Gバス/BバスI/Fユニット(GBI)から出力される。
Bclkの立ち上がりで、prcReadEnable信号がアサートさ
れていれば、次のクロックの立ち上がりで、リード可能
であることを示す。prcRead信号のアサートは、prcRead
Enable信号を確認して行う。 ・prcRegAddr[31:2] :IN Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラ内部のレジスタにアクセスするさいのレジスタアド
レスバス。prcRegStart_Lアサートと同時に有効とな
り、スキャナコントローラ内部レジスタへのアクセスで
あれば、prcRegAck_L信号で応答するまで有効である。 ・prcRegbyteEn[3:0] :IN Gバス/BバスI/Fユニット(GBI)から出力されるprcReg
DataIn[31:0]のバイトイネーブル信号。prcRegStart_L
アサートと同時に有効となり、prcRegAck_L信号で応答
するまで有効である。この信号で示された有効なバイト
のみレジスタへの書き込みを行う。内部レジスタからの
読み出し時は、この信号は無視し、全バイト出力する。
この信号の各ビットとprcRegDataIn[31:0]のバイトとの
対応は次の通りである。 prcRegbyteEn: 3 2 1 0 prcRegDataIn: [31:24] [25:16] [15:8] [7:0] ・prcRegStart_L :IN Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラ内部のレジスタにアクセスするさいのアクセス要求
信号。”Low”でレジスタのアクセス要求を示す。prcRe
gAddr[31:2]信号、prcRegRdNotWr信号とともにアサート
され、Bclk1クロック分だけアサートされる。プリンタ
コントローラが、このアクセスに対する・prcRegAck_L
を返さない限り、次のアクセスのアサートはされない。 ・prcRegDataOut[31:0] :OUT Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラ内部のレジスタをリードアクセスする場合の32ビ
ットデータバス。prcRegAck_L信号がアサートされてい
るときに有効となる。 ・prcRegDataIn[31:0] :IN Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラ内部のレジスタをライトアクセスする場合の32ビ
ットデータバス。prcRegStart_Lアサートと同時に有効
となり、プリンタコントローラ内部レジスタへのアクセ
スであれば、prcRegAck_L信号で応答するまで有効であ
る。 ・prcRegRdNotWr :IN Gバス/BバスI/Fユニット(GBI)からプリンタコントロ
ーラ内部のレジスタにアクセスするさいのアクセス方向
(リードまたはライト)を示す信号。”High”でプリン
タコントローラ内部レジスタの内容がprcRegDataOut[3
1:0]に読み出され、”Low”でprcRegDataIn[31:0]の内
容がプリンタコントローラ内部レジスタに書き込まれ
る。PrcRegStart_Lアサートと同時に有効となり、プリ
ンタコントローラ内部レジスタへのアクセスであれば、
prcRegAck_L信号で応答するまで有効である。 ・prcRegAck_L :OUT プリンタコントローラ内部のレジスタアクセスが完了し
たことを示す信号。プリンタコントローラからGバス/
BバスI/Fユニット(GBI)へ出力される。BClk1クロック
分だけアサートされる。prcRegstart_L信号がアサート
された次のクロックからセンスされる。
prcWrite, prcDataOut[63:0], prcReadEnableは、プリ
ンタコントローラでは未使用となる。
ングの一例を示すタイミングダイアグラムである。図8
3はプリンタコントローラ4303へデータをDMA転送
する際のタイミングであり、図63は、プリンタコント
ローラ4303の内部レジスタに対して読み出しあるい
は書き込みを行うタイミングである。
ーラ内部では、プリンタ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B007000)の設定
に応じたビデオクロック(VCLK)のゲートコントロールを
行い、それによりパワーマネージメントを行う。パワー
マネジメントユニット(PMU)409に出力するPMステ
ート信号(prcPmStat[1:0])の値は、Gバス/BバスI/F
ユニット4301Bから入力されるprcDmaPmState[1:0]
の状態とクロックの状態とを合わせて決定される。prcP
mState[1:0]は図85のとおりである。
プリンタのGバス/BバスインターフェースGBI_prcの
パワー消費状態を示している。GBI_prcにはパワー消費
状態00〜11の4段階がある。この状態信号prcDmaPmState
[1:0]は、GBI_prcからプリンタコントローラへ出力さ
れている。
状態は2段階あり、内部信号PPStatで示される。
ンタコントローラの2つの状態をあわせた状態を示して
いる。この信号がシステムのパワーマネージメントユニ
ットに出力される。すなわち、プリンタコントローラの
電力消費状態は4段階でパワーマネジメントユニットに
伝えられる。その段階は信号prcPmstate[1:0]の値で示
される。値00が最低レベルであり、1増えるごとに示さ
れる電力消費量は大きくなる。
ト(GBI) 図92は、Gバス/BバスI/Fユニット4301のブロ
ック構成図である。Gバス/BバスI/Fユニットは、ス
キャナ及びプリンタのそれぞれに用意されているが、そ
の構成は同じであるため、ここでまとめて説明する。
usと接続してこれを制御するGBusコントローラ
と、BBusと接続してこれを制御するBBusコント
ローラとを含む。これらの間には、DMAアドレスを制
御するDMAコントローラ9205のほか、機能ブロッ
クとGBus/BBusとの間をデータ転送に用いられ
るFIFO9204、種々の設定値が書き込まれるレジ
スタユニット9206が含まれる。このうち、GBUS
コントローラとFIFO9204は、GBusにあわせ
て100MHzのクロックで動作し、その他のブロック
はBBusにあわせて50MHzで動作する。
両方に接続されるべき機能ブロック(SCC:スキャナ
コントローラとPRC:プリンタコントローラ)の、G
BusとBBusの選択的接続及び、両バスのインター
フェースを提供する。GBIと各機能ブロックの間は、
IFBus9201で接続される。機能ブロックでは、
データの入出力先がGBusかBBusかを意識する必
要はない。また、GBI側でDMAをサポートするの
で、機能ブロック側でアドレスを発生する必要もない。
GBIは、各機能ブロックで共通に必要となる機能をま
とめて、独立のユニットにしたものである。
に接続される機能ブロックは、連続したデータを受け取
る、あるいは送り出すものとする。IFBusにアドレ
ス信号は含まれていない。GBIでは、Channel
0(GBus/BBus→IFBus0)とChann
el1(GBus/BBus→IFBus1)の2つの
チャネルが用意され、それぞれに、DMAコントローラ
が用意されている。ただし、スキャナコントローラで
は、Channel0のみを、プリンタコントローラで
は、Channel1のみを使用(実装)する。
(アドレス固定)とメモリに対する設定が可能で、メモ
リの場合は、連続物理アドレスとチェーンテーブル方式
(後述)のDMAが設定できる。
能ブロックと入出力する。したがって、GBIがスレー
ブモードとして動作する場合、GBIのアドレスは、G
Bus側が、0x18n0_0000〜0x18n0_
007F、BBus側が、0x19n0_0000〜0
x19n0_001Fのみで同じロケーションがアクセ
スされる。FIFOを使用しているため、バースト転送
時のラップアラウンドに対応するのが困難である。BB
usのラップアラウンドを伴うバースト転送要求に対し
ては、シングルアクセスとして応答する。GBusのラ
ップアラウンドを伴う転送要求に対しては応答しない。
を行う場合には、それぞれのDMAコントローラにより
制御が行われる。この際に、いずれの側がマスタになる
かは特に決めないが、よりデータ転送のタイミングが厳
格な方がマスタになることが望ましい。このため、本実
施例では、GBI_PRCをマスタにし、GBI_SCCをスレーブに
してDMA転送を行っている。
ース)は、 1.機能ブロックとのデータの受け渡しをするFifo
ユニット 2.GBusに直結され、GBusとFifoユニット
をつなぐGBusコントローラ9202 3.BBusに直結され、BBusとFifoユニット
をつなぐBBusコントローラ9203 4.マスタモードの時に、DMA転送要求を各バスコン
トローラに発行するDMAコントローラ9205 5.レジスタの内容を保持し、各ブロックに信号を送る
レジスタユニット9206 から構成される。レジスタユニット内には、割込み制
御、パワー制御部も含んでいる。以下に、各部の説明を
する。
foユニットは、GBus/BBusとIFBusとの
間の転送データのバッファとなる部分である。Fifo
ユニットは、互いに独立したFifoユニット0とFi
foユニット1とから構成される。Fifoユニット0
はIFBusからのデータ入力及びGBusあるいはB
Busへのデータ出力のために用いられ、Fifoユニ
ット1はGBusあるいはBBusからのデータ入力及
びIFBusへのデータ出力のために用いられる。
はゲーテッドクロックで、クロックを止めることで省電
力モードを実現する。このクロックは、GBI FIF
Oレジスタをライトすることにより停止し、マスタモー
ドかスレーブモードに入る時に自動的に起動する。
0は、IFBus0(IFBusの仕様については後
述)からのデータをFifoに書き込み、GBus/B
Busに送り出す。信号ifDataOutB[63:0]、ifWriteB、
ifWriteEnableGは、IFBusと接続される。
0は、IFBusからの64ビットデータを入力とし、
GBus用の64ビットデータDataOut64とB
Bus用の32ビットデータDataOut32を出力
する、64ビット×17段のFifoである。
タス信号には次のような信号がある。 ・Fifo0EnableB1G:Fifo0Unit
からBBusへ1ワード(32ビット)転送可能である
ことを示す。マスタモードの時はDMAコントローラ
が、スレーブモードの時にはBBusコントローラが使
用する。 ・Fifo0EnableB4G:Fifo0Unit
からBBusへ4ワード連続転送可能であることを示
す。マスタモードの時はDMAコントローラが、スレー
ブモードの時にはBBusコントローラが使用する。 ・Fifo0EnableB8G:Fifo0Unit
からBBusへ8ワード連続転送可能であることを示
す。マスタモードの時はDMAコントローラが、スレー
ブモードの時にはBBusコントローラが使用する。 ・Fifo0EnableG4G:Fifo0Unit
からGBusへ4ワード(1ワードは64ビット)連続
転送可能であることを示す。マスタモードの時はDMA
コントローラが、スレーブモードの時にはGBusコン
トローラが使用する。 ・Fifo0EnableG16G:Fifo0Uni
tからGBusへ16ワード連続転送可能であることを
示す。マスタモードの時はDMAコントローラが、スレ
ーブモードの時にはGBusコントローラが使用する。 ・ifWriteEnable:Fifo0がFull
状態でないことを示す。IFBusと接続され、機能ブ
ロックにライト可能であることを伝える。
ットデータのリードは、Fifo0に入力されている信
号Rd64を使い、BBusの32ビットデータのリー
ドは、信号Rd32を使う。どちらのリードによって
も、ステータス信号及び、Fifo0からの出力データ
であるDataOut64とDataOut32は更新
される。
sのクロックは50MHzであり、GBusのクロック
は100MHzである。このため、Fifoユニット0
に含まれる不図示のB2Gなるブロックにより、IFB
usクロックに同期した書込み信号ifWriteFi
foB、あるいはBBUsクロックに同期した読出し信
号bReadFifoBの1クロック分を、Fifoユ
ニットのクロック(IFBusの2倍の周波数)のクロ
ックに変換する。
o0は、GBus/BBusにより共有される。マスタ
ーモードでは、DMAコントローラがGBus/BBu
sの排他使用を制御しているが、スレーブモードでは、
DMAマスターが排他使用を制御しなければならない。
このため、Fifoユニット0に含まれるChkIll
egalブロックでは、GBusとBBusから同時に
Fifo0にアクセスされた場合に、信号fifoEr
rorGをアサートする。すなわち、Gbusからの読
出し信号gReadFisoG、あるいはBBusから
の読出し信号bReadFisoBが同時にアサートさ
れると、信号fifoErrorGをアサートする。こ
の信号は、レジスタユニットでラッチされ、マスクされ
ていなければ、割り込みを発生する。
1は、GBus/BBusからのデータを内蔵するFi
fo1に書き込み、IFBus1に送り出す。ifDa
taIng[63:0],ifByteEnG[7:
0],ifReadB,ifReadEnableG
は、IFBusと接続される。
の逆方向DMAに対応するために、Fifo1の前段に
フロントバッファを設けてある。逆方向DMA(入力信
号reverseMODEがイネーブル)の時には、フ
ロントバッファにいったんバッファしてから、逆順でF
IFOにデータを送り出す。それ以外のモード(信号r
everseMODEがディスエーブル)の時には、通
常のFIFOとして機能する。
Busからのデータを入力とし、Fifo1へ出力す
る、バイトイネーブル付き64+4ビット×4段のバッ
ファである。BBusからの書き込みでは、データはバ
イトイネーブル信号とともに書き込まれる。GBusか
らの書き込みでは、バイトイネーブルをすべて有効と
し、データが書き込まれる。BBusからの書き込みで
の64ビットへのパッキングは行わない。
が空状態であることを示す信号BufEmptyが設け
られている。
eMODEがイネーブルであり、転送モードは、DMA
コントローラで、GBusの4beatバースト転送、
あるいはBBusのシングル転送のみに制限される。G
Busの4beatバースト転送のデータは、一度フロ
ントバッファに貯めてから、逆順にして、Fifo1に
データを送り出す(32ビット単位で逆順にする)。
rseMODEがディスエーブルであり、4段のFIF
Oとして機能する。入力信号dummyWriteFi
fo1Bは一度ラッチされ、フロントバッファが空にな
った時点で、Fifo1に送られる。
ッファからのデータを入力とし、入力されたデータをI
FBusへ出力する、バイトイネーブル付き64+8ビ
ット×16段のFifoである。BBusからのデータ
は、バイトイネーブル信号とともに書き込まれる。GB
usからのデータは、バイトイネーブルをすべて有効と
し、書き込まれる。BBusからのデータの書き込みで
は、64ビットへのパッキングを行う。
ァのBufEmpry信号を基に、以下のステータス信
号を設けている。 ・Fifo1EnableB1G:Fifoユニット1
へBBusから2ワード(32ビット)転送可能である
ことを示す。Fifo1にBBus1ワード以上の空き
があるか、フロントバッファが空の時に、イネーブルと
なる。 ・Fifo1EnableB4G:Fifoユニット1
へBBusから8ワード連続転送可能であることを示
す。Fifo1にBBus4ワード以上の空きがある
か、フロントバッファが空の時に、イネーブルとなる。 ・Fifo1EnableB8G:Fifoユニット1
へBBusから12ワード連続転送可能であることを示
す。Fifo1にBBus8ワード以上の空きがある
か、Fifo1にBBus4ワード以上の空きがあり、
かつフロントバッファが空の時に、イネーブルとなる。 ・Fifo1EnableG4G:Fifoユニット1
へGBusから4ワード(1ワードは64ビット)連続
転送可能であることを示す。Fifo1にGBus4ワ
ード以上の空きがあるか、フロントが空の時に、イネー
ブルとなる。 ・Fifo1EnableG16G:Fifoユニット
1へGBusから16ワード連続転送可能であることを
示す。Fifo1が空であるか、Fifo1にGBus
12ワード以上の空きがあり、かつフロントバッファが
空の時に、イネーブルとなる。 ・ifReadEnable:Fifo1が空状態でな
いことを示す。IFBusと接続され、機能ブロックに
リード可能であることを伝える。
fo1EnableB4G、Fifo1EnableB
8Gは、マスタモード時にはDMAコントローラが、ス
レーブモード時にはBBusコントローラが使用する。
fo1EnableG16Gは、マスタモード時にはD
MAコントローラが、スレーブモード時にはGBusコ
ントローラが使用する。
ニット0と同じく、B2Gブロック及びChkIlle
galブロックを備えている。
usコントローラ9202のブロック図である。Gbu
sコントローラ9202は、GBIがバスマスタとなっ
てGBusを制御するためのGBusマスタコントロー
ラと、スレーブとなった際の制御を行うためのGBus
スレーブコントローラと、データを制御するためのGB
usデータコントローラと、GBusインターフェース
バッファとを含む。この構成により、GBI4301
は、GBusのマスタあるいはスレーブとして動作する
ことができる。
ーラは、GBusマスタコントローラにより、以下のよ
うな手順でGBusマスタとしての制御を行う。
能な段階で、gMReq(N)信号を、gMAddr
(N)[31:5]信号、gMBst4Not16_N
信号とともに、bClk(Bbusクロック信号)で1
クロックだけアサートして、DMA転送を要求する。
MBst4Not16_N信号は、GBusマスタコン
トローラによりgMDone(N)信号、gMRtry
(N)信号、gMBErr(N)信号のいずれかがアサ
ートされるまで、変化させてはいけない。
ンターフェースでラッチされる(gLatchReq
(N)信号)。
不図示のGBusマスタリクエストアービタで調停さ
れ、GBusアービタ406に対し、DMA要求信号g
Req_L信号をアサートすると同時に、GBusマス
タアドレスフェーズに、gIntReq(N)信号を送
る。
_L信号がアサートされると、GBusマスタアドレス
フェーズから、信号GGntSenseがアサートさ
れ、DMA要求信号gReq_Lはネゲートされる。同
時に、gLatchReq(N)信号とgIntReq
(N)信号はネゲートされる。GBusマスタリクエス
トインターフェースは、信号gSlvBsyを監視し、
データバスが使用可能になると、GMDataRq
(N)信号をアサートする。この信号は、GBusマス
タジェネレートエンドデータとGBusデータコントロ
ーラに送られる。
開始する。EndData以外のGBusの信号は、G
Busマスタアドレスフェーズで生成される。EndD
ataは、GBusマスタジェネレートエンドデータで
生成される。GBusからFifoあるいは、Fifo
からGBusへのデータの移動は、GMDataRq
(N)信号により、GBusデータコントローラが行
う。なお、gAack信号の前にgRtry信号を検出
すると、GBusデータコントローラはデータ転送を行
わない。
トライ) GBusマスタジェネレートエンドデータは、GBus
データ転送の終了を、checkBErr信号によりG
Busマスタリクエストインターフェースへ伝える。そ
の信号を受けたGBusマスタリクエストインターフェ
ースは、内部で保持している要求をクリアすると同時
に、バスエラーがなければ、gMDone信号をアサー
トする。バスエラーを検出した場合には、gMBErr
信号をアサートし、DMAコントローラ9205に転送
が完了したことを伝える。
usマスタリクエストインターフェースは、内部で保持
している要求をクリアすると同時に、gMRtry信号
をアサートする。
sコントローラ9202から受けた信号がgMDone
信号であれば、転送アドレスや転送長等を更新する。受
けた信号がgMRtry信号であれば、それらを更新せ
ずに、次のアクションを起こす。gMBErr信号の時
には、DMAコントローラ9202は転送を中止し、マ
スクされていなければ、割り込みを発生する。
ローラは、GBusスレーブコントローラにより、以下
のような手順でGBusスレーブとしての制御を行う。
TsReg信号アサートのタイミングで、gAddrR
eg信号とgRdNotWrReg信号(チャネル0か
1)を確認する。GBIへのアクセスで、gSEnab
le(N)信号(スレーブモード:レジスタにより設
定)がアサートされていれば、gBst4Not16信
号とReadFifoEnable4/16信号(チャ
ネル0)かWriteFifoEnable4/16信
号(チャネル1)から、転送可能か判断する。可能であ
れば、gAack信号を、そうでなければ、gRtry
信号をアサートする。
ーフェースは、gSlvBsy信号のネゲートを確認
し、gAack信号をアサートし、そのタイミングを、
GSlvStart信号でGBusスレーブリクエスト
スレーブビジーに伝える。また、GBusスレーブリク
エストインターフェースは、データの転送開始を、GS
DataRq(N)信号をアサートすることでGBus
データコントローラに伝える。GBusからFifoあ
るいは、FifoからGBusへのデータの移動は、G
Busデータコントローラが行う。GBusスレーブリ
クエストスレーブビジーは、gSlvBsy信号を生成
する。
ートすることもない。ただし、gSEnable(N)
信号がネゲートしてあれば、マスタのアクセスに対して
応答しないので、タイムアウトによるバスエラーが発生
する。
usコントローラ9203のブロック図である。BBu
sコントローラ9203は、BBusマスタコントロー
ラと、BBusデータコントローラ、BBusスレーブ
コントローラ及びBBusインターフェースバッファを
含む。この構成により、GBI4301は、BBusの
マスタあるいはスレーブとして動作することができる。
能な段階で、bMReq(N)信号を、bMAddr
(N)[31:2]信号、bMBurst8n)信号、
bMBst4Not8_N信号とともに、BBusクロ
ック信号bClkで1クロックだけアサートする。ま
た、チェーンDMAモードでチェーンテーブルの読み込
みが必要な段階で、cMReq(N)信号を、cMAd
dr(N)[31:2]信号とともに、bClkで1ク
ロックだけアサートする。チェーンテーブルの読み込み
では、BBusのバースト転送を使用しない。こうし
て、DMAコントローラからBBusのDMA転送が要
求される。
MBurst(N)信号,bMBst4Not8_N信
号は、Fifoにアクセスを開始する(bReadFi
fo、bWriteFifoがアサートされる)まで変
化させてはいけない。
号は、cMDone(N)信号,cMrtry(N)信
号,cMBErr(N)信号のいずれかがアサートされ
るまで変化させてはいけない。
号は、BBusマスタリクエストインターフェースでラ
ッチされる(bLatchReq(N)信号及びcLa
tchReq(N)信号)。各要求信号は、BBusマ
スタリクエストアービタで調停され、BBusアービタ
407に対してbBReq_L信号がアサートされる。
信号がアサートされると、BBusマスタリクエストア
ービタから、対応する要求元のBBusマスタリクエス
トインターフェースに、BGnt(N)信号あるいはC
Gnt(N)信号を送り、bBGnt_L信号はネゲー
トされる。BBusマスタリクエストインターフェース
は、bLatchReq(N)信号あるいはcLatc
hReq(N)信号をネゲートし、bTx信号とbSn
oopWait信号を監視し、転送可能な状態になる
と、BMDataRq(N)信号及びCMDataRq
(N)信号をアサートする。この信号は、BBusマス
タシーケンサとBBusデータコントローラに送られ
る。
ブすべきデータ以外のBBusの信号をすべて生成す
る。BMDataRq(N)信号あるいはCMData
Rq(N)信号をトリガにして、bStartOut_
L(バーストモードであれば、同時にbBurstOu
t_L)をアサートし、bRdy(バーストモードであ
れば、bBurstAck)をチェックし、転送終了を
検出する。BBusからFifo、あるいはFifoか
らBBusへのデータの移動は、BMDataRq
(N)信号により、BBusデータコントローラが行
う。
に)にbRetry信号を検出すると、BBusデータ
コントローラはデータ転送を行わない。
リトライ、バスエラー) BBusデータコントローラは、BBusマスタシーケ
ンサのBMLastData信号でデータの移動を終了
する。また、BBusマスタシーケンサは、BBusデ
ータ転送の終了をDone信号により、BBusリクエ
ストインターフェースへ伝える。リトライあるいはバス
エラーであった場合には、それぞれ、Retry信号、
Error信号で伝える。BBusマスタリクエストイ
ンターフェースは、DMAコントローラに転送が完了し
たことを、[bc]MDone(N)(以下、bまたは
cのいずれかであることを[bc]と表す)で、リトラ
イ、バスエラー場合には、[bc]MRtry(N)信
号、[bc]MBErr信号でそれぞれ伝える。
ifo、bWriteFifoにより、転送アドレスや
転送長等を更新し、DMAのBBus転送の終了を示す
bMDone(N)信号か、bMRtry(N)信号
で、次のアクションを起こす。チェーンテーブルの読み
込みの終了を示すcMDone(N)信号は、内部のチ
ェーンテーブルを更新し、cMRtry(N)信号であ
れば、再び転送要求を発行する。
DMAコントローラは転送を中止し、マスクされていな
ければ割り込みを発生する。
tart_Lと信号bBurst_Lの同時アサート
で、スレーブが、信号bRetry_Lのアサートなし
に、信号bRdy_Lと信号bBurstAck_Lの
同時アサートで応答した場合、スレーブはバースト転送
可能と判断される。そのバースト転送中は信号bRet
ry_Lはチェックされない。つまり、最初のbRdy
_Lのタイミングの時のみ、信号bRetry_Lはチ
ェックされる。なお、バースト転送中でも、信号bEr
ror_Lは、各クロックでチェックされる。
L、bRdy_Lの同時アサートについて)信号bEr
ror_Lがアサートされた場合、信号bRetry_
Lがアサートされていても、バスエラーとみなされる。
信号bError_Lがネゲートされ、信号bRetr
y_Lがアサートされた場合、信号bRdy_Lがアサ
ートされていてもリトライと見なされる。
[3:0]について)マスタモード時の信号byteE
n_L[3:0]は、シングルアクセス、バーストアク
セスの最後の転送以外は、常に、“0000”である。
ス以外)] 1.マスタからの転送要求 BBusマスタシーケンサは、bStart_L信号ア
サートのタイミングで、bAddr信号とbWr_L信
号(チャネル0か1)を確認する。GBIへのアクセス
で、bSEnable(N)信号(スレーブモード:レ
ジスタにより設定)がアサートされていれば、bBur
stShortNotLong信号(bBurst_L
信号がアサートされた時のみ)とReadFifoEn
able1/4/8信号(チャネル0)かWriteF
ifoEnable1/4/8信号(チャネル1)から
転送可能かを判断する。転送可能であれば、bRdyO
ut_L信号(バーストモードであれば、bBurst
AckOut_L信号も)をアサートし、そうでなけれ
ば、bRetryOut_L信号をアサートする。
L信号がアサート)の要求に対して、Fifoの状態か
ら、バースト転送はできないがシングル転送は可能な場
合は、bRdyOut_L信号のみアサートし、シング
ル転送を行う。また、マスタのバーストモード要求がラ
ップアラウンドを発生する場合、GBIがラップアラウ
ンドに対応していないため、可能であればシングル転送
を行う(bBurstAckOut_L信号をアサート
しない)。
なクロック分だけ、bRdyOut_L信号をアサート
し続ける。バースト転送の場合には、最初のbRdyO
ut_L信号のアサートのタイミングで、bBurst
AckOut_L信号を1BBusクロックだけアサー
トする。また、データの転送開始をBSDataRq
(N)信号で、データの転送終了をbMLastDat
a信号で、BBusデータコントローラに伝える。BB
usからFifoあるいは、FifoからBBusへの
データの移動は、BBusデータコントローラが行う。
L信号をアサートすることもない。ただし、bSEna
ble(N)信号がネゲートしていれば、マスタのアク
セスに対して、応答しないので、タイムアウトによるバ
スエラーが発生する。
ス)]GBI及び機能ブロック内のレジスタのアクセス
はBBusから行う。レジスタのアクセスについては、
GBIのモードや状態によらず、いつでもアクセス可能
である。bRetryOut_L、bErrorOut
_L信号をアサートすることはない。マスタのバースト
モードの要求に対して、いつでもシングル転送で応答す
る(bBurstAckOut_L信号をアサートしな
い)。
Start_L、regAddr[31:2]、byt
eEnIn[3:0]、regWr_L信号(BBus
の信号をBBusクロックで叩いた信号)をセンスし、
レジスタへの書き込みであれば、bDataIn[3
1:0]信号のデータを書き込み、Ack信号(GBI
では、regGbiAck_L、IFBusでは、re
gIfAck_L)をアサートする。レジスタからの読
み出しであれば、データを内部バス(GBIでは、re
gGbiDataOut[31:0]、IFBusで
は、regIfDataOut[31:0])に乗せ
て、Ack信号(GBIでは、regGbiAck_
L、IFBusでは、regIfAck_L)をアサー
トする。
Ack信号からbRdyOut_Lを作る。
sのサイクル)GBIのスレーブモードでは、シングル
転送のサイクルはいつも3BBusクロックである。バ
ースト転送は、シングル転送と同じタイミングで、最初
のbRdyOut_L信号をアサートし、その後ネゲー
トすることなしに必要なクロック分アサートを続ける。
転送(シングルとバースト)ができない場合は、最初の
bRdyOut_Lをアサートするタイミングで、bR
etryOut_Lだけアサートする。
ロック)BBusスレーブジェネレートレディブロック
は、BBusスレーブシーケンサからのChannel
Rdy_L信号と、GBIレジスタユニットからのre
gGbiAck_L信号と機能ブロック(IFBus)
からのregIfAck_L信号をORして、クロック
で叩く。
sは、GBIと機能ブロックを接続する簡単なバスであ
る。クロックは、bClk(50MHz)を使用する。
ここでいう入力信号とは、機能ブロックからGBIへの
方向の信号である。双方向信号はない。以下にIFBu
sの信号について説明する。“_L”で終わる信号名
は、ローアクティブであることを示す。これは、すでに
説明した部分においても同様である。なお、実際のイン
プリメンテーションでは、信号名の“if”は機能ブロ
ックの名前に置き換える。
Rst1_L(チャネル1)(出力) IFBusのリセット信号である。この信号により、I
FBusの状態を初期状態に戻す。GBIの内部レジス
タにより、アサートされる。GBIと機能ブロックとの
転送に先立って、必ずアサートする。
力:チャネル0のみ) 機能ブロックからGBIへのデータ信号である。この信
号は、Fifoユニット0に接続されている(図93参
照)。
み) 機能ブロックからGBIへのライト信号である。GBI
は、ifWrite信号がアサートされているifCl
kの立ち上がりで、ifDataOut[63:0]を
書き込む。ifWriteB信号をアサートし続けるこ
とで、1クロック単位でデータがライトできる。この信
号は、Fifoユニット0に接続されている(図93参
照)。
チャネル0のみ) 機能ブロックからGBIへのライト許可信号である。i
fClkの立ち上がりで、ifWriteEnable
G信号がアサートされていれば、次のクロックの立ち上
がりで、ライト可能であることを示す。ifWrite
B信号のアサートは、ifWriteEnableG信
号を確認して行う。この信号は、Fifoユニット0か
ら出力される。
ByteEnG[7:0](出力:チャネル1のみ) GBIから機能ブロックへのデータとバイトイネーブル
信号である。この信号は、Fifoユニット1に接続さ
れている。表8に信号ifByteEnG[7:0]の
各桁とifDataInG[63:0]の各バイトユニ
ットとの対応を示す。
は、ifRead信号がアサートされているifClk
の立ち上がりで、ifDataInG[63:0]とi
fByteEnG[7:0]を出力する。ifRead
信号をアサートし続けることで、1クロック単位でデー
タがリードできる。この信号は、Fifoユニット1に
接続されている。
ャネル1のみ) GBIから機能ブロックへのリード許可信号である。i
fClkの立ち上がりで、ifReadEnableG
信号がアサートされていれば、次のクロックの立ち上が
りで、リード可能であることを示す。ifRead信号
のアサートは、ifReadEnableG信号を確認
して行う。この信号は、Fifoユニット1から出力さ
れる。
通)(出力) BBusのbStart_Lをクロックで叩いた信号で
ある。ifRegAddr[31:2]信号、ifRe
gRdNotWr信号ifByteEn_L[3:0]
信号とともに1クロックだけアサートされる。機能ブロ
ックの内部レジスタへの書き込みの場合には、信号if
RegDataIn[31:0]も有効となっている。
機能ブロックでは、ifRegStart_Lがアサー
トされた時点で、アドレスをチェックし、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
k_L信号で応答する。そうでなければ、次のifRe
gStart_Lのアサートを待つ。この信号は、BB
usコントローラから出力される。
ネル共通)(出力) BBusのbAddr[31:2]をクロックで叩いた
アドレス信号である。信号ifRegStart_Lア
サートと同時に有効となり、機能ブロックの内部レジス
タへのアクセスであれば、ifRegAck_L信号で
応答する間で有効である。この信号は、BBusコント
ローラから出力される。
ャネル共通)(出力) BBusのbyteEn_L[3:0]をクロックで叩
いたバイトイネーブル信号である。信号ifRegSt
art_Lアサートと同時に有効となり、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
k_L信号で応答する間で有効である。機能ブロックの
内部レジスタへの書き込みの場合には、この信号で示さ
れた有効なバイトのみ書き込みを行う。機能ブロックの
内部レジスタからの読み出しの場合には、この信号は無
視され、全バイト出力される。この信号は、BBusコ
ントローラから出力される。表9に、信号ifRegB
yteEn[3:0]の各桁と信号ifRegData
InG[31:0]の各バイトユニットとの対応を示
す。
通)(出力) BBusのbWr_Lをクロックで叩いた信号で、機能
ブロックの内部レジスタへのアクセスの方向を示す。ハ
イで、機能ブロックの内部レジスタの内容が信号ifR
eqDataOut[31:0]に出力され、ローで、
ifReqDataIn[31:0]のデータが、機能
ブロックの内部レジスタに書き込まれる。信号ifRe
gStart_Lアサートと同時に有効となり、機能ブ
ロックの内部レジスタへのアクセスであれば、ifRe
gAck_L信号で応答する間で有効である。この信号
は、BBusコントローラから出力される。
(入力) 機能ブロックが内部レジスタへのアクセスを完了したこ
とを示す信号である。信号ifRegStart_Lが
アサートされた時点で、アドレスをチェックし、機能ブ
ロックの内部レジスタへのアクセスであれば、レジスタ
のリードあるいはライトを行い、必ず、1クロックだけ
アサートする。機能ブロックの内部レジスタへのアクセ
スでない場合には、決してアサートしてはいけない。こ
の信号は、BBusコントローラに接続される。
(チャネル共通)(入力) 機能ブロックの内部レジスタの内容が読み出されるデー
タバス信号である。信号ifRegAck_L信号がア
サートされているときに有効でなければいけない。この
信号は、BBusコントローラに接続される。
(チャネル共通)(出力) 機能ブロックの内部レジスタに書き込まれるデータを示
すバス信号である。信号ifRegStart_Lアサ
ートと同時に有効となり、機能ブロックの内部レジスタ
へのアクセスであれば、ifRegAck_L信号で応
答する間で有効である。この信号は、BBusコントロ
ーラから出力される。
(チャネル共通)(出力) GBIの動作状態を示す信号。この出力は常に有効であ
る。機能ブロックは、この信号と機能ブロック自身の動
作状態を基に、パワーマネージメントユニットへのパワ
ーマネージメントステータス信号を生成する。この信号
は、レジスタユニットから出力される。どのような値が
出力されるかは、後述のパワーマネジメントの項で説明
する。
ネル0と1に、それぞれ図96のようなDMAコントロ
ーラ9205が存在する。
トローラ、フェッチチェインテーブル、カルキュレート
ピッチアドレス、ジェネレートアドレス、DMAリクエ
ストの各部ロックから成る。
の信号によりDMAのモードが伝えられる。
ついて説明する。
ンコントローラは、他の4つのブロックの起動と停止の
制御をする。チェーンテーブル方式のDMAでは、フェ
ッチチェインテーブル、ジェネレートアドレス、DMA
リクエストの順に、ブロックを1クロックずつずらして
起動する。ピッチ付きのDMAでは、カルキュレートピ
ッチアドレス、ジェネレートアドレス、DMAリクエス
トの順に、ブロックを1クロックずつずらして起動す
る。その他の場合には、ジェネレートアドレスとDMA
リクエストを1クロックずらして起動する。
の終了を判定する。フェッチチェインテーブルがアイド
ル状態(チェーンテーブルをすべて読み終わったか、あ
るいは起動されていない)かつ、カルキュレートピッチ
アドレスがアイドル状態(全ライン終わったか、あるい
は起動されていない)でのジェネレートアドレスのNe
xtAddreReq信号のアサート(レングスカウン
タがゼロになる)、あるいはバスエラー、stopDM
A信号のアサート(レジスタによるDMA強制終了)を
検出すると、DMAメインコントローラが各ブロック
に、stopDMAReq信号をアサートする。すべて
のブロックがアイドル状態になった時点で、DMAの終
了と判定する(endDMAをアサートする)。
ェインテーブルは、メモリ上のテーブルをフェッチする
ブロックで、チェーンテーブルを使わない場合は起動さ
れない。チェーンテーブルを指すメモリアドレスのため
のチェインテーブルポインタアドレスカウンタ、チェー
ンテーブルの残りのエントリ数を示すチェインテーブル
エントリカウンタ、チェーンテーブルからフェッチした
アドレスとレングスを記憶するネクストアドレスレジス
タ、ネクストレンクスレジスタ、およびこれらを制御す
るフェッチチェインテーブルコントローラから成る。
と、レジスタの内容がチェインテーブルポインタアドレ
スとチェインテーブルエントリカウンタにロードされ
る。chainReq信号により、BBusコントロー
ラにアドレスchainAddress[31:2]の
フェッチを要求する。BBusコントローラからのch
ainDone信号(正常終了)で、読み出した内容を
ネクストアドレスレジスタにラッチし、チェインテーブ
ルポインタアドレスカウンタをインクリメントする。B
Busコントローラから、ChainRtry信号(リ
トライ)が返ってくれば、再び、同じ要求をBBusコ
ントローラに対して発行する。
BBusコントローラにアドレスchain Addr
ess[31:2]のフェッチを要求する。Chain
Done信号で、読み出した内容をネクストレンクスレ
ジスタにラッチし、チェインテーブルポインタアドレス
カウンタをインクリメントし、チェインテーブルエント
リカウンタをデクリメントする。同時に、nextAd
drValid信号をアサートし、チェーンテーブルか
らアドレスとレングスを読み出したことを、ジェネレー
トアドレスブロックに伝える。
時のデータがゼロである場合には、ネクストアドレスレ
ジスタの内容がチェインテーブルポインタアドレスカウ
ンタにロードされる。
ト中に、ジェネレートアドレスブロックからNextA
ddrReq信号がアサートされるとジェネレートアド
レスブロックが、チェーンテーブルからのアドレス、レ
ングスを受け取ったと判断し、nextAddrVal
id信号をネゲートする。
をチェックし、ゼロでなければ、再度チェーンテーブル
のフェッチを続け、ゼロであればアイドル状態へ戻る。
受け取ると、直ちにアイドル状態へ戻る。 DMAメイ
ンコントローラからstopDMAReqを受け取った
場合、BBusコントローラに要求を出していれば、そ
の終了を待って、そうでなければ直ちにアイドル状態へ
戻る。
は、起動されないので、アイドル状態を保ち、next
AddrValid信号はネゲートされたままである。
ドレスブロックは、メモリに対する転送アドレスを格納
するトランスファメモリアドレスカウンタと、転送すべ
き転送長を格納するトランスファレンクスカウンタと、
転送したバイト数を記憶するトランスファカウンタと、
これら3つのカウンタを制御するジェネレートアドレス
コントローラと、転送アドレスと転送長からGBus/
BBusに対して要求するモードを判定するCheck
GBusReq及びCheckBBusReqブロック
(CheckG/BBusReqと総称する)を有す
る。
インコントローラから起動されると、トランスファカウ
ンタをクリアし、フェッチチェインテーブルからのne
xtValidAddrCT信号待ちに入る。next
ValidAddrCT信号がアサートされると、チェ
ーンテーブルのアドレスとレングスが、それぞれトラン
スファメモリアドレスカウンタとトランスファレンクス
カウンタにロードされる。
usReqは転送できるモードを判定する。
リクエストブロックにG/BBusの転送モードを伝え
(転送不可の時にはg/b Valid信号がネゲート
されている)、DMAリクエストブロックは、GBus
優先で各バスコントローラに転送要求を発行する。
(GBus転送終了信号)とその時の転送モードによ
り、一度にトランスファメモリアドレスカウンタ、トラ
ンスファカウンタのインクリメントとトランスファレン
クスカウンタのデクリメントを行う。BBusでの転送
では、FIFOのアクセス信号により、トランスファメ
モリアドレスカウンタのインクリメントとトランスファ
レンクスカウンタのデクリメントを行う。
った時、フェッチチェインテーブルからのnextVa
lidAddrCT信号がネゲートされていれば、アサ
ートを待って、次のチェーンテーブルの内容をトランス
ファメモリアドレスカウンタとトランスファレンクスカ
ウンタにロードし、そうでなければ、直ちにロードす
る。そして、次の転送に入る。
わってトランスファレンクスカウンタがゼロになった時
には、フェッチチェインテーブルはアイドル状態で、n
extValidAddrCT信号はネゲートされてい
る。DMAメインコントローラはDMAの終了を検出す
るので、ジェネレートアドレスに対してstopDMA
Req信号をアサートする。これによりジェネレートア
ドレスはアイドル状態となる。
メインコントローラから起動されると、トランスファカ
ウンタをクリアし、カルキュレートピッチアドレスから
のnextValidAddrPA信号待ちに入る。n
extValidAddrPA信号がアサートされる
と、スタートアドレスとピッチから計算されたアドレス
とレングスが、それぞれトランスファメモリアドレスカ
ウンタとトランスファレンクスカウンタにロードされ
る。
ンスファメモリアドレスカウンタ、トランスファカウン
タのインクリメントとトランスファレンクスカウンタの
デクリメントが行われる。
った時、カルキュレートピッチアドレスからのnext
ValidAddrPA信号がネゲートされていれば、
アサートを待って、次のチェーンテーブルの内容をトラ
ンスファメモリアドレスカウンタとトランスファレンク
スカウンタにロードし、そうでなければ直ちにロードす
る。そして次の転送に入る。
ァレンクスカウンタがゼロになった時には、カルキュレ
ートピッチアドレスはアイドル状態で、nextVal
idAddrPA信号はネゲートされている。DMAメ
インコントローラはDMAの終了を検出するので、ジェ
ネレートアドレスに対してstopDMAReq信号を
アサートする。これによりジェネレートアドレスはアイ
ドル状態となる。
ントローラから起動されると、トランスファカウンタが
クリアされ、データ長を格納したGBIDMA転送長レ
ジスタの内容がトランスファレンクスカウンタにロード
される。CheckGBusReq/CheckBBu
sReq各ブロックは、対I/OのDMAアドレスを格
納したGBIDMAGBusI/Oアドレスレジスタ/
GBIDMABBusI/Oアドレスレジスタの内容を
それぞれ用いる。
クリメントとトランスファレンクスカウンタのデクリメ
ントが行われる。
った時、フェッチチェインテーブルとカルキュレートピ
ッチアドレスは起動されていないので、アイドル状態
で、nextValidAddr信号はネゲートされて
いる。DMAメインコントローラはDMAの終了を検出
するので、ジェネレートアドレスに対してstopDM
AReq信号をアサートする。これによりジェネレート
アドレスはアイドル状態となる。
リバースモードをサポートする。チェーンテーブルDM
Aの1ブロック、ピッチ付きのDMAの1ラインを、ア
ドレスの大きい方から小さい方へアクセスする。ブロッ
クあるいはライン単位の逆方向の指示は、チェーンテー
ブルDMAではチェーンテーブルを逆になるように作
る。ピッチ付きのDMAの場合は、ピッチの値を負の値
(2の補数)を設定する。
アドレスカウンタに値をロードする際に、転送レングス
を用いて、最後尾のアドレスを計算してロードする。ト
ランスファメモリアドレスカウンタのインクリメントの
代わりにデクリメントする。
ングル転送のみを要求する。CheckGBusReq
ブロックでは4ビートバースト転送のみを要求する。F
ifoユニットで、32ビット単位で逆順にして、機能
ブロックに送られる(現状では、チャネル1のみ対応す
る)。
BusReqブロックではGBus要求のチェックが行
われる。信号useGBusがアクティブでなければ常
に信号gValidはネゲートされている。
下がすべてゼロで、かつトランスファレンクスが128
以上の時、信号gValidがアサート、g4Not1
6Req=’0’となり、トランスファメモリアドレス
のビット4以下がすべてゼロで、かつトランスファレン
クスが32以上の時、信号gValidがアサート、g
4Not16Req=’1’となる。それ以外では、信
号gValidはネゲートされる。
BusReqブロックではBBus要求のチェックが行
われる。信号useBBusがアクティブでなければ常
に信号bValidはネゲートされている。
下がすべてゼロで、かつトランスファレンクスが29以
上の時、信号bValidがアサート、bBurstR
eq=’1’、b4Not8Req=’0’となり、ト
ランスファメモリアドレスのビット3以下がすべてゼロ
で、かつトランスファレンクスが13以上の時、bVa
lidがアサート、信号bBurstReq=’1’、
b4Not8Req=’1’となる。それ以外では、b
Validがアサート、bBurstReq=’0’と
なる。
ローラから起動されると、ジェネレートアドレスブロッ
クからのGBus/BBusに対する要求をチェックす
る。G/BBusの両方の要求がある場合には、常にG
Busが優先となる。この要求に従い、GBusコント
ローラかBBusコントローラに転送要求を発行し、応
答を待つ。応答は、g/bMDone、g/bMRtr
yあるいは、g/bMBErrのいずれかの信号であ
る。
であり、次のジェネレートアドレスからのGBus/B
Busに対する要求をチェックする。
ローラに再度転送要求を発行する。
ル状態に戻る。
エストブロックは、ジェネレートアドレスからのGBu
s/BBusに対して要求待ち状態となる。DMAメイ
ンコントローラがDMA終了を検出して、DMAリクエ
ストに対してstopDMAReqが発行されるので、
それにより、DMARequestはアイドル状態に戻
る。
エラーやレジスタによるDMA強制終了の場合も、DM
Aメインコントローラから、stopDMAReqが発
行されるが、バスコントローラに転送要求をしている時
は、転送終了を待って、要求していない時は直ちにアイ
ドル状態に戻る。
ト内には、各チャネルに対応するレジスタユニットが存
在する。各ユニットは、デコードするアドレスが異なる
以外は同じである。レジスタユニットは図97に示すよ
うに、レジスタユニット0とレジスタユニット1とを有
する。
アクションコントローラ、割り込みコントローラとパワ
ーステータスの各ブロックから構成される、GBIの各
ブロックに設定地値を供給するほか、割り込みコントロ
ーラによって割り込みを制御し、パワーステータスによ
り省電力可能なブロックを制御している。
力モード可能なユニットは、DMAコントローラとFI
FOユニットである。省電力モードはfifoInSl
eep信号、dmaInSleep信号により、各ブロ
ックのクロックをマスクすることで実現する。リセット
時は、ともに省電力モードに入る。DMAコントローラ
は、マスタモードで起動をかけると自動的に起動し、G
BIFIFOスリープレジスタのライトでスリープに入
る。
パワーマネージメントステータス信号(pmState
[1:0])は、各チャネルで、 pmState[1:0] 00 level0(DMA、FIFOともに停止) 01 level1(FIFOのみ動作) 10 level2(DMA、FIFOともに動作) 11 NotDefine となる。
ントローラ(Scc)やプリンタコントローラ(Pr
c)が接続されるGBIは、1のチャネルしかないので
上のようになるが、2チャネル含む場合は各チャネルの
値を合計し、次のように4段階に縮退させる。
mState[1:0])は、IFBusを介して機能
ブロックへ送られる。機能ブロックでは、この信号と機
能ブロック自身の動作状態を基に、パワーマネージメン
トユニットへのパワーマネージメントステータス信号を
生成する。
成する各部について説明した。ここで、GBIの動作に
ついてまとめておく。GBIの動作モードには、大きく
分けて以下のものがある。
ページ単位で分割されていることを想定) のメモリに対して転送を行う。また、対メモリDMAで
は、逆方向モードもサポートする(チャネル1のみ)。
アドレス、一行の長さ、次の行までのピッチ、及び行数
を指定する、いわゆる2次元DMAである。1次元の場
合は行数を1とすることで実現する。
各メモリブロックの先頭アドレスと長さをメモリ上に配
置し、それを参照しながら、転送先のアドレスを計算
し、DMAを行う。この先頭アドレスと長さの組をチェ
ーンテーブルと呼ぶことにする。チェーンテーブルの一
例を図98に示す。不連続物理アドレスに対するDMA
では、チェーンテーブルを配置したメモリアドレスとア
ドレス・長さの組の数を指定する。もちろん、チェーン
テーブル自体は連続アドレスに配置しなければならない
が、もし、全チェーンテーブルが連続領域に置けない場
合には、先頭のアドレスの代わりに次のチェーンテーブ
ルのアドレスを、長さに0を設定することで、チェーン
テーブルをつなぐことができる。
の1ブロック、2次元DMAの1ラインをアドレスの大
きい方から、小さい方へアクセスする。ブロックあるい
はライン単位の逆方向の指示は、チェーンテーブルDM
Aでは、チェーンテーブルを逆になるように作る。ピッ
チ付きのDMAの場合は、ピッチの値を負の値(2の補
数)を設定する。
いて説明する。DBIからの割り込みは、以下の条件で
発生する。
中のバスエラーの検出 GBI停止レジスタによる強制終了の場合、DMAコン
トローラが各バスのコントローラに要求中の転送が正常
に終了した時点で、正常終了となる。もし、要求中の転
送がバスエラーとなった場合には、バスエラーによる異
常終了となる。
のFIFOに全データを書き込んだ時点で終了する(割
り込みを発生する)が、FIFOにデータが残ってい
る。GBIはFIFOのデータを転送した時に、DMA
終了となるので、これをもって転送終了と判断する。
FOに全データを書き込んだ時点で終了する(割り込み
を発生する)が、FIFOにデータが残っている。機能
ブロックはFIFOのデータを転送した時に、終了とな
るので、これをもって転送終了と判断する。
転送は、GBIのFIFOを介して行われる。
(DoEngineでは、GBus/BBusの両方使
用可能なマスタはGBIのみ)には、両方のバスからの
同時アクセスに対して、どちらのバスが最初にFIFO
をアクセスするかを知る方法がない。マスタはGBus
/BBusに対して、排他的に転送要求を行う必要があ
る(GBIのマスタモードでは排他的に転送要求してい
る)。もし、GBus/BBusの両方が同時にFIF
Oにアクセスした場合には、FIFOイリーガルアクセ
スとなる。
対応する割り込み許可ビットが、”1”にセットされて
いる場合に割り込みが発生する。
Iと、BBus/GBus/機能ブロックとのインター
フェースをまとめたコアインターフェースの図を示す。
GBIは、BBusスレーブ動作でバスエラーを発行し
ないので、bError(Func)Out_Lはな
い。また、GBIはBBusスレーブ動作でbInst
NotData信号をチェックしないので、(fun
c)bInstNotData_inはなく、(fun
c)bInstNotData_outは、常に”0”
をドライブする。
スエラーを発行しないので、(func)gErr_L
_outはない。
Func(func)には、接続される機能ブロック、
すなわちscc(スキャナコントローラ)あるいはpr
c(プリンタコントローラ)の名前を入れる。
クとして、スキャナコントローラのScc(scc)
と、プリンタコントローラのPrc(prc)がある。
いずれの場合もデータの流れが双方向でないので、不要
なFIFO、DMAコントローラ、レジスタを削除した
形でインプリメントする。
ース)図86は、プリンタコントローラ4303におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、プリンタコントローラ4303は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接続さ
れている。
る。
模なASICである。このため、内部のロジックが全部
同時に動作してしまうと、大量の熱を発生し、チップ自
体が破壊されてしまう恐れがある。これを防ぐために、
DoEngineは、ブロック毎の電力の管理、すなわ
ちパワーマネジメントを行ない、更にチップ全体の消費
電力量の監視を行なう。
ックが各自個別に行なう。各ブロックの消費電力量の情
報は、パワーマネージメントレベルとして、電力管理ユ
ニット(PMU)409に集められる。PMU409で
は、各ブロックの消費電力量を合計し、その値が限界消
費電力を超えないように、DoEngineの各ブロッ
クの消費電力量を一括して監視する。
りである。 ・各ブロックは、4段階のパワーマネジメントレベルを
持つ。 ・PMUは、それぞれのレベルにおける消費電力の値を
レジスタとして持つ。このレベル構成及び消費電力の値
は、PM構成レジスタ5401に保持される。 ・PMUは、各ブロックからパワーマネジメントレベル
を2ビットのステータス信号として受け取り(後述)、
レジスタ5401に設定された値と照合させて各ブロッ
クの消費電力を知る。 ・PMUは各ブロックの消費電力を加算器5403で加
算し、DoEngine全体の消費電力量をリアルタイ
ムに計算する。 ・算出された消費電力量は、構成レジスタ5401に設
定された消費電力のリミット値(PMリミット)と比較
器5404で比較され、これを超えた場合には割込発生
器5405から割り込み信号を発行する。 ・このリミット値は2段階設定することができる。1段
階目は、本当の限界から少し余裕を持たせた値を設定し
ておく。この値を超えると、通常の割込み信号が発行さ
れる。ソフトウェアはこれを受けて、新たにブロックを
起動するような転送は始めないようにする。ただ、2段
階目のリミット値に達しない範囲内では、ソフトウェア
の管理の元で、新たなブロックを起動することができ
る。2段階目のリミット値は、デバイスが破壊される恐
れのある値を設定しておく。万が一、この値を超えてし
まった時には、NMI(割込マスクが設定できない割り
込み)を発行して安全のためにシステムを停止させる。 ・割込み信号は、PMUの状態レジスタ5402をリー
ドすることで解除される。この状態レジスタ5402を
リードした時点からタイマカウントを始め、タイマがエ
クスパイアするまで消費電力量が戻らなければ、再び割
込み信号を発行する。このタイマの値の設定はPMUの
構成レジスタ5401に設定される。
ブロックのパワーマネージメント制御は、ブロック毎に
自由に構成してよい。構成例の例を示す。
のクロックをオン/オフすることにより、パワーマネジ
メントを行なっているので、消費電力のレベルは2段階
しか持っていない。このレベルをステータス信号として
電力管理ユニット409に送る。図88にバスエージェ
ントのブロック図を示す。 ・バスエージェント5501は、各ユニット毎の内部ロ
ジック5502、アドレスをデコードするデコーダ55
03、クロックコントロール部5504、クロックゲー
ト5505を含む。 ・デコーダ5503とクロックコントロール部5504
は常に動作しており、パワーマネージメントコントロー
ルとして、バスのアクティビティーの監視、内部ロジッ
クへのクロックのゲーティングを行なっている。
し、クロックのオン/オフを自動で行なう。 ・バスエージェントには、Sleep, Wake Up, Waitの3つ
のステートがある。 ・Sleepはバスエージェントにアクティビティーがな
く、クロックゲートクロックを停止させている状態であ
る。 ・Sleepの状態でも、デコーダ部5503、クロックコ
ントロール部5504は動作しており、バスをモニタリ
ングして、要求を待っている。 ・デコーダ5503が自分のアドレスを検出すると、ク
ロックゲート5505を開き、内部ロジックのクロック
を動作させ、バスの要求に応える。ステートはWake Up
に移行する。また、この状態を電力管理ユニット409
に通知する。 ・データ転送が終了すると、Waitステートに移行し、次
の要求を待つ。この時クロックは動作したままである。
要求があれば、Wake Upステートに戻り、転送を行な
う。また、要求を待っている間はタイマによりカウント
を行ない、要求がないままカウンタがタイムアップした
場合は、Sleepステートへ移り、クロックを停止させ
る。この状態も電力管理ユニット409に通知される。
えないように管理している。
ナから読み込んだ画像データをそのままプリンタへ転送
して、プリンタで画像形成する動作をコピー動作を行う
ことができる。本実施形態のDo Engineを用い
たスキャナ/プリンタシステムでは、以下に示す3種類
のコピーの方式がそのシステム構成に応じて選択され
る。
画像入力の垂直・水平タイミングと、プリンタによる画
像出力の水平・垂直タイミングがそれぞれ一致してい
て、ビデオデータの転送速度も一致している組み合わせ
のシステムにおける方式である。
力されて、プリンタコントローラ(PRC)に入力される。
このVSYNC信号は、プリンタコントローラ(PRC)からCP
バスを介してスキャナコントローラ(SCC)に入力され
る。そして、スキャナコントローラ(SCC)からスキャナ
に対して出力される。これにより、プリンタとスキャナ
の垂直同期がとられる。水平同期についても、垂直同期
信号VSYNCと同様に、水平同期信号(HSYNC)がプリンタ
から出力され、プリンタコントローラ,CP−バス,ス
キャナコントローラを介してスキャナに入力される。こ
れによりスキャナとプリンタとの水平同期がとられる。
このように、垂直方向及び水平方向の同期がとられてス
キャナとプリンタが動作する。ビデオデータは同期用の
ビデオクロックとともにスキャナから出力される。出力
されたビデオクロックとビデオデータはスキャナコント
ローラ(SCC)に入力され、CPバスを介して、プリンタ
コントローラ(PRC)に入力される。そして、プリンタコ
ントローラ(PRC)からプリンタに出力される。プリンタ
ではビデオクロックに同期してビデオデータを受け取
り、画像出力をおこなう。
り行われる。このコピー動作ではGバスおよびBバスを
使用せずにコピー動作がおこなわれる。
を介してスキャナからプリンタへ直接転送されるが、同
時にスキャナコントローラ(SCC)からGバスのDMA転送に
よってSDRAMへ書き込むことが可能である。コピー動作
と同時にSDRAMに書き込まれた画像データは、必要に応
じて画像データとして格納すること等が可能となる。ま
た、SDRAM上の画像データをプリンタへ出力することに
より、スキャナで読み取った画像データを複数部の出力
することが、スキャナの動作なしに可能となる。
画像入力の水平タイミングと、プリンタによる画像出力
の水平タイミングとが一致しており、垂直タイミングと
ビデオデータの転送速度がそれぞれ一致していない組み
合わせのシステムにおける方式である。
る。スキャナが画像を読み取り始めると、垂直同期信号
(VSYNC)、水平同期信号(HSYNC)、ビデオクロックと
いう3つのタイミング信号がスキャナコントローラ(SC
C)に入力される。ビデオクロックに同期してビデオデー
タもスキャナコントローラ(SCC)に入力される。上記タ
イミング信号に同期して、スキャナコントローラ(SCC)
はビデオデータを内部のFIFO(FIFO_SCC)に取り込
む。FIFO_SCCに画像データが入り始めると同時に、FIFO
_SCCから、スキャナのGバス/BバスI/Fユニット43
01A(GBI_SCC)のFIFO(FIFO_GBI_SCC)にデー
タ転送が開始される。スキャナからの画像データは、FI
FO_SCCを介して順次FIFO_GBI_SCCに転送される。FIFO_G
BI_SCCにデータが入り始めると、プリンタのGバス/B
バスI/Fユニット4301B(GBI_PRC)がマスターで、
スキャナのGバス/BバスI/Fユニット4301A(GBI
_SCC)がスレーブとなるDMA転送が開始される。この時
のバスは、Gバスが空いていればそちらを利用するが、
空いていなければBバスであっても良い。
タはGBI_PRC内のFIFO(FIFO_GBI_PRC)へ転送され
る。FIFO_GBI_PRCの画像データは、順次プリンタコント
ローラ(PRC)のFIFO(FIFO_PRC)へ転送される。FIF
O_PRCに画像データが入り始めると、プリンタコントロ
ーラ(PRC)はプリンタに垂直同期信号(VSYNC)を入力す
る。プリンタからは、VSYNCのタイミングにより、水平
同期信号(HSYNC)とビデオクロックを出力しはじめ
る。プリンタコントローラ(PRC)は水平同期信号HSYNCで
水平同期をとり、ビデオクロックに同期して、ビデオデ
ータをFIFO_PRCから出力する。そのビデオデータをプリ
ンタが画像出力する。
キャナ, スキャナコントローラのFIFO(FIFO_SC
C), Gバス/BバスI/FユニットのFIFO(FIFO_GBI
_SCC),Gバス/BバスI/FユニットのFIFO(FIFO_G
BI_PRC),プリンタコントローラのFIFO(FIFO_PR
C), プリンタの順で転送されて、画像コピー動作がな
される。水平同期の間隔はスキャナとプリンタとで同一
であるので、画像データの転送速度の違いは各FIFOによ
り緩衝される。
ンタの垂直同期タイミング、水平同期タイミング、ビデ
オデータの転送速度がそれぞれすべて異なる組み合わせ
のシステムにおける方式である。
する。スキャナで画像の読み取りが開始すると、スキャ
ナは垂直同期信号(VSYNC)、水平同期信号(HSYNC)、
ビデオクロックをスキャナコントローラ(SCC)に出力す
る。これらのタイミング信号に同期して画像データが出
力される。スキャナコントローラ(SCC)は上記タイミン
グ信号に同期して画像データを取り込む。取り込まれた
画像データはGBI_SCCにより、DMA転送でメモリコントロ
ーラ(MC)403へ転送される。MC403では、DMA転
送された画像データをSDRAMに書き込む。SDRAMに書き込
まれた画像データの量が、スキャナとプリンタの画像デ
ータ転送速度の差を緩衝できる量に達すると、プリンタ
への画像データ転送が開始される。この画像データ量の
判定は、スキャナからのデータ転送時間による判定、SD
RAMに書き込まれるアドレスによる判定、GBI_SCCにおけ
るDMA転送量の判定等、種々の方式がある。
ントローラ(PRC)により行われる。プリンタコントロー
ラ(PRC)は、GBI_PRCのDMA転送により、SDRAMに書き込ま
れた画像データを順次内部のFIFOへ入力する。同時にプ
リンタへ垂直同期信号(VSYNC)を出力する。その後、
プリンタからは水平同期信号(HSYNC)とビデオクロッ
クを入力する。このHSYNCとビデオクロックと同期し
て、プリンタコントローラ(PRC)は内部のFIFOから画像
データをプリンタへと出力する。上記画像データの流れ
により、スキャナで読み取られた画像データをプリンタ
から出力するコピー動作がおこなわれる。この場合の画
像データの流れは、スキャナ,スキャナコントローラ,
スキャナのGバス/BバスI/Fユニット(GBI_SCC),メ
モリコントローラ(MC),SDRAM,メモリコントローラ(M
C),プリンタのGバス/BバスI/Fユニット(GBI_PR
C),プリンタコントローラ(RRC),プリンタの順となる。
このように、一旦メモリに格納し、それをスキャナとプ
リンタとの間の緩衝メモリとして、スキャナからプリン
タへと画像データを転送し、コピーを行う。
を有する。(方式1)、(方式2)、(方式3)の順で
コピー動作時に動作する内部ブロックが多くなる。内部
ブロックの使用率が増加すると、システム全体のパフォ
ーマンスが効率を低下させる要因となりうる。本システ
ムは接続されるデバイス(プリンタ・スキャナ)に応じ
て、システム全体が最も効率的なコピー動作方式を選択
することが可能である。
ば次のようなものがある。 UART等を介して指定するコピー方式そのものを入
力させ、指定された方式でコピー動作を行う。 プリンタとスキャナのデータ転送速度や水平・垂直同
期周波数等、必要なパラメタをUART等から入力さ
せ、それらの値に応じて上記3通りの方式からCPU4
01がひとつを選択し、その方式でコピー動作を行わせ
る。 プリンタコントローラがプリンタのデータ転送速度や
水平・垂直同期周波数等、必要なパラメタを読取り、ス
キャナコントローラがスキャナからデータ転送速度や水
平・垂直同期周波数等、必要なパラメタを読取り、それ
らをCPU401により比較判定してコピー動作の方式
を決定する。
選択されたコピー方式はCPUからプリンタコントロー
ラ及びスキャナコントローラに知らされ、その方式でプ
リンタコントローラ及びスキャナコントローラ等により
コピーを行わせる。
る手順を説明する。
のコピー方式からシステムで使用するコピー方式を選択
する手順のフローチャートである。この動作はシステム
の電源立ち上げ時、ステップS1から開始される。
が行われる。CPU401はプリンタコントローラ43
03を介して、プリンタビデオI/Fに含まれるコマン
ド/ステータスラインを通じて、プリンタから種別を示
すIDを取得する。このコマンド/ステータスライン
は、プリンタコントローラとプリンタとが1対1にコマ
ンド/ステータスのやりとりができるシリアル通信ライ
ンである。
ナコントローラ4302を介して、スキャナビデオI/
Fに含まれるコマンド/ステータスラインを通じ、スキ
ャナから種別を示すIDを取得する。
判定された、スキャナとプリンタの組み合わせに適した
コピー経路の判定が行われる。スキャナとプリンタの組
み合わせに適したコピー経路の判定は、あらかじめテー
ブルの形式で、例えば、フラッシュROM等のCPUが
参照可能なメモリに準備されている。各コピー経路に適
したスキャナとプリンタの組み合わせは次のようなもの
がある。 (方式1)スキャナとプリンタの水平、垂直
タイミングが同期していて、ビデオデータの転送速度も
同期している組み合わせ (方式2)スキャナとプリンタの水平同期タイミングの
速度が同一で、垂直タイミングとビデオデータの転送速
度は同期していない組み合わせ (方式3)スキャナとプリンタの垂直同期タイミング、
水平同期タイミング、ビデオデータの転送速度がそれぞ
れ異なる組み合わせ CPUは、あらかじめ用意されたテーブル参照におい
て、上記3方式から適切なコピー方式を選択する。
れたコピー方式に応じたモード設定がスキャナコントロ
ーラ4302に対してなされる。このモード設定は、C
PUがBBusを介して行う。
2内部のデータバスの切り換え回路を示す図である。な
お、データバスセレクタは、図44のスキャナデバイス
I/F4401に含まれる。また、データバスの切り替
えの説明に不用なスキャナビデオクロックユニット等は
省略した。
定される。CPUは、図100のステップS4において
選択したコピー方式に応じたモードをレジスタ1に設定
する。セレクト制御信号4は、モード設定レジスタ1に
設定されたモードに応じてデータパスを選択するための
信号である。スキャナビデオバス2は、スキャナからの
ビデオデータのバスである。バス5は、スキャナからの
ビデオデータをFIFO_SCC6に転送するバスである。C
Pビデオバス7は、(方式1)のコピー動作を行う場合
に使用されるバスである。スキャンビデオバスからのビ
デオデータは(方式1)の場合はCPビデオバス7に出
力するようにデータパスがセレクトされる。(方式
2)、(方式3)の場合にはバス5にビデオデータが出
力されて、FIFO_SCC4407に転送される。
る。ステップS6では、GBI_sccの動作モード設定を行
う。このモード設定はCPUがステップS4で選択した
コピー方式に基づいて行う。(方式1)では、GBI_scc
は非動作指定される。(方式2)では、DMA転送のマ
スター指定がなされ、DMAの転送先にはGBI_prcが設
定される。(方式3)ではDMA転送のマスター指定が
なされ、DMAの転送先にはSDRAMが設定される。
ード設定を行う。このモード設定はCPUがステップS
4で選択したコピー方式に基づいて行う。(方式1)で
は、GBI_prcは非動作指定がなされる。(方式2)では
DMA転送のスレーブ指定がなされる。(方式3)で
は、DMA転送のマスター指定がなされ、DMA転送の
読み出しもとはSDRAMが設定される。
ーラのモード設定がなされる。このモード設定はステッ
プS4で選択されたコピー方式に基づいてCPUが行
う。
3内部のデータバスの切り換え回路を示す図である。レ
ジスタ11には、データバスのモードが設定される。C
PUは、図100のステップS4において選択したコピ
ー方式に応じたモードをレジスタ11に設定する。セレ
クト制御信号14は、モード設定レジスタ11に設定さ
れたモードに応じてデータバスのセレクトを行う信号で
ある。バス15は、FIFO_PRC16から出力されるデー
タのバスである。バス12は、プリンタへのビデオデー
タバスである。CPビデオバス17は、(方式1)のコ
ピー動作を行う場合に使用する。プリンタへのビデオデ
ータは(方式1)の場合はCPビデオバスのデータがセ
レクトされ、出力される。(方式2)、(方式3)の場
合にはバス15からのデータがプリンタビデオバス12
に出力される。
方式選択のフローが終了する。以上のようにして、CP
Uはスキャナ及びプリンタの種別に応じたコピー方式を
決定することができる。
の垂直同期タイミング、水平同期タイミング、ビデオデ
ータの転送速度に基づいて、コピー動作の方式を決定す
る手順であるが、単なるコピーでなく、画像の加工が加
わる場合にはこの限りではない。すなわち、図100の
ステップ2の前に、画像データを加工するか否かを判定
し、画像データを加工する場合には、スキャナ及びプリ
ンタの仕様に関わりなく、方式3を選択し、ステップS
5〜S8における設定では、データの径路が方式3にな
るよう各ブロックの設定を行う。こうすることで、画像
データを加工する場合には読み込んだ画像データはいっ
たんメモリに格納されるため、そこで画像データに対し
て必要な加工を施すことができる。
用する。この際、GバスあるいはBバスのいずれを使用
するかは、各バスの使用状況により決定される。すなわ
ち、Gバス/Bバスともにアイドル状態であれば、バス
幅の広いGバスを使用する。いずれかが使用中であれ
ば、未使用の方を使用する。
おいては、スキャナは、スキャナコントローラ4302
及びGBI_SCC4301Aを介してバス(Gバス及
びBバス)に接続されている。スキャナコントローラ4
302及びGBI_SCC4301Aは、それぞれFI
FOを介して互いに画像データを転送するように接続さ
れている。このように、それぞれがFIFOを有してい
るために、GBIは、64ビット幅で動作クロックが1
00MHzという非常に高速なGバスに接続されている
にも関わらず、比較的低速なスキャナから読み込まれた
画像データを効率的に転送することができる。これは、
プリンタコントローラに関しても同様である。
期信号の一致・不一致に応じて、コピー時のデータ経路
を選択することで、スキャナ及びプリンタの仕様がどの
ようなものであろうとも、可能な限り速いデータ転送を
用いてコピーを行うことができる。
びプリンタコントローラ及びそれぞれのGBIを用いて
スキャナ及びプリンタをDoEngineのバスに接続
することで、スキャナ及びプリンタの仕様からのDoE
ngineの独立性をより高めることが可能となった。
たキャッシュの動作手順は、図103及び図104のよ
うなものであってもよい。
転送が開始されると、その最初にMCバスで示されるm
TType[60:0]によってその転送をキャッシュ
オンで行うかオフで行うか判断される。ここでは、転送
がバースト転送の時、そのバースト転送データ量がキャ
ッシュの1ラインのデータ量より大か小かによって判断
する。なお、キャッシュの1ラインは256ビット=4
バースト分である。
転送の開始でmTType[3:0]をチェックし、m
TTypeが示すバースト長が1/2/4であれば、キ
ャッシュオンで動作し、6/8/16/2×16/3×
16/4×16の場合はキャッシュオフで動作する。キ
ャッシュオンあるいはオフ後の動作は、図9及び図10
と同様である。
バイスによってキャッシュのオンオフを切り替えること
もできる。図105において、メモリコントローラは転
送の開始でmTType[6:4]をチェックすること
により転送要求デバイスを識別し、そのデバイスの転送
要求をキャッシュオンで動作するか、オフで動作するか
を判断するために、あらかじめ設定されている構成レジ
スタの値を参照し、キャッシュオンで動作するか、オフ
で動作するか決定する。キャッシュオンあるいはオフ後
の動作は、図9及び図10と同様である。構成レジスタ
の設定は、ハードウエア的に決定(変更不可)していも
良いし、ソフトウエアで書換え可能にしてもよい。
図107〜図108を用いて説明する。本実施形態は、
デジタル複合機に投入された種々のジョブをページ単位
に処理をするためにデバイスの獲得と開放を並列に行い
情報を処理するものである。
テムの構成図であり、同図中、101a,102a,1
03aはホストコンピュータで、種々のジョブを生成し
周辺機器にジョブを送信する。104aはデジタル複合
機で、プリントジョブ、スキャンジョブ、ファックスジ
ョブ、コピージョブ等、種々のジョブを実行処理する。
第1、第2のホストコンピュータ101a,102a及
びデジタル複合機104aは、それぞれがLAN(ロー
カルエリアネットワーク)105aに接続されており、
デジタル複合機104aを使用することができる。
は、LANではなくパラレル(またはシリアル)等のイ
ンターフェース106aを介してデジタル複合機104
aに接続され、該デジタル複合機104aを使用するこ
とができる。
テムの基本的な構成を示すブロック図であり、同図にお
いて、201aはCPU(中央演算処理装置)で、本シ
ステム全体の制御及び演算処理等を行う。207aはエ
ンジンインターフェース(エンジンI/F)で、実際に
エンジンを制御するコマンド等をやり取りする。
(ネットワークI/F)で、このネットワークI/F2
08aを介して機器がネットワークに接続される。
/F)で、パラレル(またはシリアル)等のインターフ
ェースを介してホストコンピュータと接続される。21
0はシステムバスで、上述した各構成要素間のデータの
通路となる。
ス(エンジンI/F)207a、ネットワークインター
フェース(ネットワークI/F)208a、外部インタ
ーフェース(外部I/F)209aはDoEngine
201(図2)を構成する。
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。203aはRAM(ランダムアク
セスメモリ)で、使用期限のない記憶領域で、ダウンロ
ードにより追加登録されたフォントデータが記憶された
り、様々な処理ごとにプログラムやデータがロードされ
実行される。
記憶装置で、印刷装置(プリンタ)が受け付けた印刷ジ
ョブ(プリントジョブ)をスプールしたり、プログラム
や各種情報ファイル等が格納されたり、作業用の領域と
して利用される。
装置の設定状態や、現在の印刷装置内部の処理状態や、
エラー状態等を表示する。
更したり、リセットするために使用される。
ル複合機104aの内部ソフトウェア構造を示す図であ
り、同図において、301はホストコンピュータ(図1
07の101a〜103aに相当する)である。302
はコントローラソフトウェアで、その内部はプロトコル
解釈部303、ジョブ制御部304及びデバイス部30
5に分割されている。
ュータ301から図1のLAN105または図2の外部
I/F209を介して送られてきたコマンド(プロトコ
ル)を解釈して、ジョブ制御部304に対してジョブの
実行を依頼する部分である。また、ジョブ制御部304
は、プロトコル解釈部303の依頼したジョブを実際に
処理する部分である。更に、デバイス部305は、ジョ
ブ制御部304がジョブを実行する際に使用される。
02の概略を説明するためのブロック図である。同図に
おいて、303はプロトコル解釈部、304はジョブ制
御部、305はデバイス部である。ジョブ制御部304
は、ジョブ生成部401a、ジョブ処理部402a、ド
キュメント処理部403a、ページ処理部404a、バ
ンド処理部405a、デバイス割り当て部406aを有
している。
407a、第2デバイス408a及び第3デバイス40
9aを有している。
103aから送られてきた一連の操作依頼は、コマンド
(プロトコル)という形で、ネットワークI/F208
a及び外部I/F209aを介して送られてくる。送ら
れてきたコマンドは、プロトコル解釈部303で解釈さ
れた後、ジョブ制御部401aに送られる。この時点で
コマンドは、ジョブ制御部304が理解できる形に変換
されることになる。
生成する。このジョブ410aはコピージョブ、プリン
トジョブ、スキャンジョブ及びファックスジョブ等、様
々なものが考えられる。
書の名前や印刷部数、出力先の排紙トレイの指定等の設
定情報や、印刷データ自体(PDLデータ)等も含まれ
る。ジョブ410aはジョブ処理部402aに送られ、
処理が行われる。ここでは、ジョブ410a全体に関す
る設定(複数の文書をまとめて印刷しステープルする
等)や処理が行われる。
410a全体に関する設定や処理以外は、更に小さな仕
事の単位である入力ドキュメント411aに分割する。
入力ドキュメント411aは、ドキュメント処理部40
3aにより出力ドキュメント414aに変換処理され
る。
み取り、複数のイメージデータに変換するスキャンジョ
ブを考えると、原稿の束に関する設定や操作の手順が書
かれているのが入力ドキュメント411aであり、複数
のイメージデータに関する設定や操作の手順が書かれて
いるのが出力ドキュメント414aである。そして、紙
の束を複数のイメージデータに変換する役割を持ってい
るのがドキュメント処理部403aである。
キュメント単位の処理のみ行い、更に小さな仕事の単位
である入力ページ412aを生成する。これは、ちょう
どジョブ処理部402aがジョブ単位の処理に専念し
て、更に細かい仕事のためにドキュメントを生成するの
と同じである。ドキュメント単位の設定及び操作は、具
体的にはページの並び替え、両面印刷の指定、表示の付
加、OHP中差し等のページ順序に関するものである。
404aにより出力ページ415aに変換される。例え
ば、上記の例のスキャンジョブの場合は、入力ページ4
12aには読み取りの解像度、読み取りの向き(ランド
スケープ/ポートレイト)等の設定や手順が書かれてお
り、出力ページ415aにはイメージデータの格納場所
(RAM203aや外部記憶装置204aのアドレスや
データ名)等の設定や手順が書かれている。
単位に分解して扱えるようになる。
メモリを持てるならば、最終的にページ単位までジョブ
を詳細化すればよい。しかし、現実にはメモリのコスト
等の問題や、印刷エンジンがインクジェットプリンタの
ような低速の場合には、数ライン分のメモリ(バンドメ
モリ)しか持たないシステムも考えられる。そのような
場合には、ページを更に細かい単位であるバンドに分け
て扱う。それが入力バンド413a、バンド処理部40
5a、出力バンド416aの役目である。これらの動作
に関しては、ページの場合と同様である。
部403a、ページ処理部404a及びバンド処理部4
05aは、いずれも処理を進める際にデバイスを使用す
る。複数の処理部が同時に仕事を進めるとデバイスの競
合が発生するので、それを調停するのがデバイス割り当
て部406aである。第1〜第3デバイス407a〜4
09aは、デバイス割り当て部406aにより上記処理
部に割り当てられるデバイスである。
ンドメモリ、ドキュメントフィーダー、マーキングエン
ジン及びスキャナ等が考えられる。
ジョブをページ単位に分解して、デバイスの割り当てを
行う処理を示した。次に、図111を用いて複合したジ
ョブの処理を説明する。
コピージョブであれば、スキャンジョブと、プリントジ
ョブとに分割され、FAX受信ジョブであれば、データ
の受信ジョブと、受信したデータのプリントジョブとに
分割される。分割されたジョブはページ単位にデバイス
が割り当てられ、処理される。以下その処理内容につい
て説明する。なお、情報処理システムの基本的な構成
は、上述した単一ジョブの分割で説明した図107〜図
109と同一であるから、必要に応じてこれらの図を流
用して説明する。
理システムにおける周辺機器のソフトウェア構造の詳細
を示す図である。同図において、303はプロトコル解
釈部、304はジョブ制御部、305はデバイス部であ
る。
では、2つのジョブ(スキャンジョブとプリントジョ
ブ)に分割され処理される。図107のホストコンピュ
ータ101a〜103aから送られてきた一連の操作依
頼は、コマンド(プロトコル)という形で図108のネ
ットワークI/F208a及び外部I/F209aを介
して送られてくる。
部303で解釈された後、ジョブ制御部304へ送られ
る。この時点でコマンドは、ジョブ制御部304が理解
できる形に変換されることになる。ジョブ生成部401
aは図110のジョブ410aを生成する。本実施の形
態では、コピージョブが生成されることになる。
1の複合ジョブ処理部501に送られ、スキャンジョブ
514とプリントジョブ521が生成される。スキャン
ジョブ514とプリントジョブ521は、生成と同時に
それぞれスキャンジョブ処理部502、プリントジョブ
処理部506に送られる。当然ながらスキャンの動作が
始まりプリンタ512に出力するデータができあがる
(または、準備ができる)ような状態にならないと、プ
リントの動作を開始することができない。従って、スキ
ャンに関する処理部(502,503,504,50
5)とプリントに関する処理部(506,507,50
8,509)は、中間データを意味する中間ドキュメン
ト518、中間ページ519、中間バンド520を介し
て同期をとりながら処理を進めることになる。当該コピ
ージョブでは、使用するデバイスとしてスキャナ51
0、ページメモリ511、プリンタ512が挙げられ
る。
図である。ホストコンピュータ301から送られてきた
コマンドがコピージョブである場合、ジョブ制御部30
4の処理は、コピージョブを更にプリントジョブとスキ
ャンジョブとに分割し、分割したジョブを処理するため
のデバイス(例えば、プリンタ、スキャナ、メモリ等)
が割り当てられ、それぞれ処理が進められる。
して、各々の処理を実行するデバイスの割り当てと解放
を先に説明したDoEngineと組合わせて行うこと
により、効率的な複合機の制御が可能になることを以下
に説明する。
て、コピー動作を行う場合のデータの流れを説明する。
この場合、処理系のデバイスとして割り当てられるのは
スキャナとプリンタである(図5の514、521)。
スキャンジョブ(514)の場合、スキャナからのイメ
ージデータはスキャナコントローラ4302により制御
され、GBUs404、システムバスブリッジ402を
介してメモリ403に書込まれる。プリントジョブの場
合、メモリ403に書込まれたデータは、システムバス
ブリッジ402、BBus405を介してプリンタコン
トローラ4303に送られプリント処理される。Dua
l−Bus構成とすることにより、Busの占有を解消
し、並列的に、CPU、メモリへのアクセスが可能にな
る。データの入力と平行して、出力を並列したタイミン
グで行うことが可能になる。
を分割したスキャンジョブ514とプリントジョブ52
1とは並列して処理することが可能になる。
入出力処理を行う際のデバイスの割り当てと解放を次に
説明する。
デバイス例として、ジョブ単位にシリアルに処理した従
来の場合(図113(a))と,本実施形態において、
ページ単位に並列に処理した場合(図113(b))の
デバイスの割り当てと解放をタイミングチャートとして
示した図である。
スの割り当ては時刻T1でスキャナが割り当てられ、時
刻T2で解放される。続いてプリンタが時刻T3で割り
当てられ、時刻T4で解放される。後続のジョブ2で必
要となるスキャナ処理は時刻T5で割り当てられるが、
ジョブ1の処理でT2からT4までの時間帯はスキャナ
の空き時間であり、ジョブ2に対するむだ時間となる。
ジョブ2のプリンタはスキャナの解放(時刻T6)後、
時刻T7で割り当てられ時刻T8で解放される。
バイスは処理可能な状態であるにもかかわらず、入力す
るべき情報の仕掛かりによりデバイスが処理に着手でき
ない時間をいう。
デバイスの割り当ては時刻T1でスキャナが割り当てら
れ、時刻T2で解放される。DoEngineによる処
理の並列化により、スキャナの解放前(時刻T2)に、
プリンタの割り当てが行われる(時刻T1a)。ジョブ
2に対するスキャナの割り当ては、時刻T2以降、可能
になる。例えば、T1cにスキャナの割り当て要求があ
った場合、T1cからT2までがスキャナ割り当てまで
の待機時間となる。
解放前(時刻T1d)に可能であり、時刻T1b以降割
り当てられ、時刻T1fに解放される。プリンタの割り
当て要求が時刻T1eにあった場合、T1eからT1b
までの時間帯はプリンタ割り当てまでの待機時間であ
る。以上の説明はコピージョブ同士を例に説明したが、
コピーとFAX、コピーとPDLプリント等を処理する
場合でも同様である。ジョブ1及び2のスループットは
(a),(b)を比較するとT8−T1fと短縮され
る。
ータはすでに用意されておりデバイスの解放待ちとなる
時間をいい、入出力データの並列的な処理を可能にし、
データの仕掛かりを解消する点において、従来とは異な
るものである。ジョブのプライオリティなどの条件を反
映した、アービトレーションをDoEngineにより
行いデバイスの割り当てを制御することにより、「待機
時間」の最適化(最短化)が可能である。
刷、コピー等があり、デバイス割り当て部406aは第
1〜第3デバイス407a〜409aの割当てを行う。
デバイスには、例えば、ページメモリやバンドメモリ、
ドキュメントフィーダー、マーキングエンジン及びスキ
ャナ等も含まれる。
3bとが生成された場合のブロック図である。基となる
ジョブが種々生成された場合であても、先に説明したよ
うに、ページ単位の分割を行い、並列的にデバイスの割
り当てと解放を行う点においては同様である。
−Bus(GBus404、BBus405)とを用い
たDoEngineアーキテクチャによれば、データ処
理の競合を解消することが可能となり、従来はインタフ
ェース等にローカルに保有していたメモリが不要とな
る。1元的に集中管理されたメモリ403により、情報
を共有することが可能になる。
08に示した構成では、リアルタイム性の要求される処
理部もリアルタイム性の低い処理部も共通のCPUを用
いていたが、DoEngineをサテライトとして使用
し、CPUの使い分けを行うことで、リアルタイム性を
更に向上させることができる。
うな構成を用いてもよい。図115(a)において、P
C115−1、115−2はホストコンピュータであ
り、115−3はDOEngineを備えたサテライト
PCである。DOEngineはPCIバスインターフ
ェースを有するので、PCIバススロットを有するコン
ピュータシステムと共に用いることができる。スキャナ
115−4、プリンタ115−5はPCIスロットを介
してPC115−3と接続したPCIサテライト構成と
なる。図115(b)はホストコンピュータと、サテラ
イトPCとが並列に接続した図(115−6、115−
7)であり、PCIバスを介して次世代複合機能周辺機
器(MFP)と接続した図である。
は、図115で示したサテライトPCにおけるDOEn
gineの接続に関するブロック図である。同図におい
て、DOEngine116−1はCPU401を備
え、リアルタイム性の高いジョブを優先的に処理をす
る。
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。
モリ)で、使用期限のない記憶領域で、ダウンロードに
より追加登録されたフォントデータが記憶されたり、様
々な処理ごとにプログラムやデータがロードされ実行さ
れる。
部記憶装置で、印刷装置(プリンタ)が受け付けた印刷
ジョブ(プリントジョブ)をスプールしたり、プログラ
ムや各種情報ファイル等が格納されたり、作業用の領域
として利用される。
刷装置の設定状態や、現在の印刷装置内部の処理状態
や、エラー状態等を表示する。
変更したり、リセットするために使用される。
(エンジンI/F)で、実際にエンジンを制御するコマ
ンド等をやり取りする。
ス(ネットワークI/F)で、このネットワークI/F
208aを介して機器がネットワークに接続される。
I/F)で、パラレル(またはシリアル)等のインター
フェースを介してホストコンピュータと接続される。2
10はシステムバスで、上述した各構成要素間のデータ
の通路となる。
エアの構成を示す図である。同図において、リアルタイ
ム性の低い部分とリアルタイム性の高い部分とを分割し
て処理する。全体の処理を単一のCPUでまかなうので
はなく、ホストコンピュータとサテライトコンピュータ
とでそれぞれ処理を使い分けることにより、CPUの負
荷を軽減し、システム全体としての処理能力の向上を図
ることができる。
7−3の処理は、リアルタイム性の要求は低いのでPC
117−2(例えば、図115のPC115−1、11
5−2)のCPUで処理し、解釈されたコマンドはPC
Iバスを介してサテライトコンピュータ117−6(図
115のPC115−3)に送られ、DoEngine
のCPUでリアルタイムに処理される。送られたコマン
ドはサテライトコンピュータで、ジョブ制御され(11
7−4)、デバイスの割付、解放が行われる(117−
5)。
単位にジョブ処理を分割し、その処理のためのデバイス
の割り当てと解放をDOEngineを用いて並列的に
行うことで、スループットの向上を図ることができる。
ムの構成例の図である。
ムの構成例の図である。
ムの構成例の図である。
トを示す図である。
である。
る。
細なブロック図である。
された場合のキャッシュの動作を示すフローチャートで
ある。
求された場合のキャッシュの動作を示すフローチャート
である。
示す図である。
を示すタイミング図である。
を示すタイミング図である。
イミングを示すタイミング図である。
イミングを示すタイミング図である。
のシングル読み出しのタイミングを示すタイミング図で
ある。
た場合のシングル読み出しのタイミングを示すタイミン
グ図である。
のシングル書き込みのタイミングを示すタイミング図で
ある。
た場合のシングル書き込みのタイミングを示すタイミン
グ図である。
ロック図である。
る。
図である。
スのアドレス空間でのメモリマップ、Bバスのアドレス
空間でのメモリマップの図である。
12メガバイトを示すマップの図である。
る。
る。
タイミング図である。
図である。
イミング図である。
イミング図である。
イミング図である。
イミング図である。
ク図である。
図である。
04を中心とする、Gバス上のバスマスタによるDMAに
係るブロック図である。
1〜4のすべてについて1に設定されている場合の公平
アービトレーションモード(フェアモード)の例を示す
図である。
1についてのみ2であり、他のバスマスタは1に設定さ
れている場合の公平アービトレーションモードの例を示
す図である。
つであり、バスマスタ1が優先バスマスタと設定されて
いる場合の優先アービトレーションモードの例を示す図
である。
スタ4のバス要求が許可されているにもかかわらず中断
された例を示す図である。
である。
図である。
である。
である。
ブロック図である。
ック図である。
ック図である。
のブロック図である。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
らびを示す図である。
を示す図である。
多値8ビットの白黒画像データを64ビット幅に変換す
る際のタイミング図である。
データを64ビット幅に変換する際の画像データ入力の
タイミング図である。
RGB各8ビット(全24ビット)の画像データを64
ビット幅に変換する際のタイミング図である。
ク図である。
403のブロック図である。
4404のブロック図である。
る。
ブロック図である。
読み出してDMA転送する際のタイミング図である。
タに対して読み出しあるいは書き込みを行うタイミング
図である。
と信号sccPmStateの値との関係を示す図である。
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
である。
である。
ブロック図である。
ック図である。
802のブロック図である。
ク図である。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
ビット格納モード)のメモリ上でのならびを示す図であ
る。
らびを示す図である。
を示す図である。
る。
603のブロック図である。
6604のブロック図である。
ある。
ある。
ユニット6606のブロック図である。
ト6607のブロック図である。
A転送する際のタイミング図である。
タに対して読み出しあるいは書き込みを行うタイミング
図である。
と信号prcPmStateの値との関係を示す図である。
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
る。
ーラへと直接画像データを転送してコピーする画像のコ
ピー方式で使用されるブロックを示す図である。
ーラへと、FIFOを介して画像データを転送してコピ
ーする画像のコピー方式で使用されるブロックを示す図
である。
ーラへと、メモリを介して画像データを転送してコピー
する画像のコピー方式で使用されるブロックを示す図で
ある。
る。
トである。
タバスの切り換え回路を示す図である。
タバスの切り換え回路を示す図である。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
ムの構成図である。
ムにおける周辺機器の基本的な構成を示すブロック図で
ある。
ムにおける周辺機器のソフトウェア構造を概要を示す図
である。
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
場合のタイミングチャートである。
明する図である。
明する図である。
する場合のシステムの構成例を示した図である。
で別々に処理する場合を説明する図である。
ソフトウェア構造の概要を示す図である。
ナ) 4301B Gバス/Bバスインターフェース(プリン
タ) 4302 スキャナコントローラ 4303 プリンタコントローラ
Claims (12)
- 【請求項1】 情報処理装置から送信された手続きを解
釈する解釈工程と、 前記手続きの解釈に基き、ジョブを生成するジョブ生成
工程と、 前記生成されたジョブを構成する要素に分割する分割工
程と、 前記分割した要素を処理するためのデバイスの割り付け
と解放とを管理するデバイス管理工程と、 前記分割した要素の処理を並列に処理するためにデータ
の書込みと、読取りを行う複数のバスの使用を制御する
バス制御工程とを備え、 前記要素の並列処理により、スループットを最短にする
ことを特徴とする複合機器の情報処理方法。 - 【請求項2】 前記ジョブを構成する要素はドキュメン
トのページを単位とすることを特徴とする請求項1に記
載の複合機器の情報処理方法。 - 【請求項3】 前記要素を処理するためのデバイスは、
プリンタ、ファクシミリ、複写機、デジタル複合機を含
むことを特徴とする請求項1に記載の複合機器の情報処
理方法。 - 【請求項4】 前記手続きは、プロトコルであることを
特徴とする請求項1に記載の複合機器の情報処理方法。 - 【請求項5】 前記デバイスの割り付けと、解放は前記
ジョブを構成する要素ごとに行うことを特徴とする請求
項1または2に記載の複合機器の情報処理方法。 - 【請求項6】 前記複数のバスの使用制御は、前記ジョ
ブを構成する要素ごとに行うことを特徴とする請求項1
または2に記載の複合機器の情報処理方法。 - 【請求項7】 情報処理装置から送信された手続きを解
釈する解釈手段と、 前記手続きの解釈に基き、ジョブを生成するジョブ生成
手段と、 前記生成されたジョブを構成する要素に分割する分割手
段と、 前記分割した要素を処理するためのデバイスの割り付け
と解放とを管理するデバイス管理手段と、 前記分割した要素の処理を並列に処理するためにデータ
の書込みと、読取りを行う複数のバスの使用を制御する
バス制御手段とを備え、 前記要素の並列処理により、スループットを最短にする
ことを特徴とする複合機器の情報処理方法。 - 【請求項8】 前記ジョブを構成する要素はドキュメン
トのページを単位とすることを特徴とする請求項7に記
載の複合機器の情報処理システム。 - 【請求項9】 前記要素を処理するためのデバイスは、
プリンタ、ファクシミリ、複写機、デジタル複合機を含
むことを特徴とする請求項7に記載の複合機器の情報処
理システム。 - 【請求項10】 前記手続きは、プロトコルであること
を特徴とする請求項7に記載の複合機器の情報処理シス
テム。 - 【請求項11】 前記デバイスの割り付けと、解放は前
記ジョブを構成する要素ごとに行うことを特徴とする請
求項7または8に記載の複合機器の情報処理システム。 - 【請求項12】 前記複数のバスの使用制御は、前記ジ
ョブを構成する要素ごとに行うことを特徴とする請求項
7または8に記載の複合機器の情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11055958A JP2000211216A (ja) | 1999-01-25 | 1999-01-25 | 複合機器の情報処理方法及びシステム |
EP00300498A EP1022896A3 (en) | 1999-01-25 | 2000-01-24 | Information processing method and system for composite appliance |
US09/491,976 US6480916B1 (en) | 1999-01-25 | 2000-01-27 | Information processing method and system for composite appliance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11055958A JP2000211216A (ja) | 1999-01-25 | 1999-01-25 | 複合機器の情報処理方法及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000211216A true JP2000211216A (ja) | 2000-08-02 |
JP2000211216A5 JP2000211216A5 (ja) | 2005-12-22 |
Family
ID=13013598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11055958A Pending JP2000211216A (ja) | 1999-01-25 | 1999-01-25 | 複合機器の情報処理方法及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6480916B1 (ja) |
EP (1) | EP1022896A3 (ja) |
JP (1) | JP2000211216A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7352482B2 (en) | 2000-09-07 | 2008-04-01 | Minolta Co., Ltd. | Apparatus and method for processing data and printing the same, and recording medium |
CN100380308C (zh) * | 2003-06-30 | 2008-04-09 | 三星电子株式会社 | 多功能产品的打印方法和设备及其计算机可读记录介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000216935A (ja) * | 1999-01-25 | 2000-08-04 | Canon Inc | 複合機器の情報処理システム |
JP3976927B2 (ja) | 1999-01-25 | 2007-09-19 | キヤノン株式会社 | バス制御装置 |
US6850995B1 (en) * | 1999-01-25 | 2005-02-01 | Canon Kabushiki Kaisha | Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process |
JP2000211216A (ja) * | 1999-01-25 | 2000-08-02 | Canon Inc | 複合機器の情報処理方法及びシステム |
US6882359B1 (en) * | 2000-03-28 | 2005-04-19 | Eastman Kodak Company | Film scanner |
JP2001290751A (ja) * | 2000-04-04 | 2001-10-19 | Sony Corp | 情報処理装置、制御装置及び情報処理システム並びにそれらの方法 |
JP3740379B2 (ja) * | 2000-04-19 | 2006-02-01 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
US7315388B2 (en) * | 2001-01-24 | 2008-01-01 | Canon Kabushiki Kaisha | Image input/output control apparatus, image processing apparatus, image processing method, data communication apparatus, and data communication method |
US7130072B2 (en) * | 2002-02-08 | 2006-10-31 | Canon Kabushiki Kaisha | Multifunction system, image processing method, computer program and memory medium |
US7330281B2 (en) * | 2003-08-25 | 2008-02-12 | Sharp Laboratories Of America, Inc. | Systems and methods for providing imaging job control |
CN100514315C (zh) * | 2004-04-27 | 2009-07-15 | 日本冲信息株式会社 | 计算机的***装置 |
US7716387B2 (en) * | 2005-07-14 | 2010-05-11 | Canon Kabushiki Kaisha | Memory control apparatus and method |
JP5175703B2 (ja) * | 2008-12-11 | 2013-04-03 | 株式会社東芝 | メモリデバイス |
CN104123252A (zh) * | 2013-04-26 | 2014-10-29 | 韩国科亚电子股份有限公司 | 多通道直接存储器存取控制器及其控制方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4547845A (en) * | 1982-04-21 | 1985-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Split-BUS multiprocessor system |
US4800431A (en) * | 1984-03-19 | 1989-01-24 | Schlumberger Systems And Services, Inc. | Video stream processing frame buffer controller |
US5191647A (en) * | 1985-08-30 | 1993-03-02 | Minolta Camera Kabushiki Kaisha | Image data processing system |
EP0325384B1 (en) * | 1988-01-15 | 1993-09-29 | Quantel Limited | Data processing and communication |
US5276799A (en) * | 1991-10-29 | 1994-01-04 | Xerox Corporation | Expandable electronic subsystem for a printing machine |
GB2264022B (en) * | 1992-01-29 | 1995-08-30 | Fuji Xerox Co Ltd | Image processing apparatus |
US6657741B1 (en) * | 1995-08-07 | 2003-12-02 | Tr Systems, Inc. | Multiple print engine system with selectively distributed ripped pages |
US5768487A (en) * | 1995-10-31 | 1998-06-16 | Seiko Epson Corporation | System and method using a split printer driver to control a computer printer device |
JPH11175291A (ja) * | 1997-12-16 | 1999-07-02 | Canon Inc | 周辺装置のジョブ一時停止装置、方法、及び記憶媒体 |
JP2000211216A (ja) * | 1999-01-25 | 2000-08-02 | Canon Inc | 複合機器の情報処理方法及びシステム |
-
1999
- 1999-01-25 JP JP11055958A patent/JP2000211216A/ja active Pending
-
2000
- 2000-01-24 EP EP00300498A patent/EP1022896A3/en not_active Ceased
- 2000-01-27 US US09/491,976 patent/US6480916B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7352482B2 (en) | 2000-09-07 | 2008-04-01 | Minolta Co., Ltd. | Apparatus and method for processing data and printing the same, and recording medium |
CN100380308C (zh) * | 2003-06-30 | 2008-04-09 | 三星电子株式会社 | 多功能产品的打印方法和设备及其计算机可读记录介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1022896A2 (en) | 2000-07-26 |
US6480916B1 (en) | 2002-11-12 |
EP1022896A3 (en) | 2004-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3524337B2 (ja) | バス管理装置及びそれを有する複合機器の制御装置 | |
US7206869B2 (en) | Input/output control apparatus | |
US7716387B2 (en) | Memory control apparatus and method | |
JP2000216935A (ja) | 複合機器の情報処理システム | |
JP2000211216A (ja) | 複合機器の情報処理方法及びシステム | |
US7016984B2 (en) | System controller using plural CPU's | |
JP2000211210A (ja) | 複合機器の制御装置及び方法 | |
JP3976927B2 (ja) | バス制御装置 | |
JP2000148650A (ja) | 複合機器の制御装置 | |
JP2000215149A (ja) | 複合機器の制御装置 | |
JP7468112B2 (ja) | インタフェース回路およびインタフェース回路の制御方法 | |
JP2000215156A (ja) | 複合機器の情報処理システム | |
JP2004046851A (ja) | バス管理装置及びそれを有する複合機器の制御装置 | |
JP4136163B2 (ja) | データ入出力装置およびデータ入出力装置のコントローラ | |
JP2000215157A (ja) | バス制御装置 | |
JP5094050B2 (ja) | メモリ制御装置、メモリ制御方法および組み込みシステム | |
JP2000211215A (ja) | 複合機器の制御装置 | |
JP3206656B2 (ja) | バス上でのプリフェッチ装置およびプリフェッチ方法 | |
JP2004030672A (ja) | バス管理装置及びそれを有する複合機器の制御装置及びバス管理方法 | |
JP2007108882A (ja) | メモリコントローラ及びメモリ制御方法と情報処理装置 | |
JP2004062887A (ja) | 電力管理装置及びそれを有する複合機器の制御装置 | |
JPH10124445A (ja) | 情報処理装置およびコントローラ | |
JP2004220486A (ja) | メモリ制御装置 | |
JP2000332924A (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050609 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050609 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20050609 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20050609 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051102 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060418 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060825 |