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
Application number
JP11055958A
Other languages
English (en)
Other versions
JP2000211216A5 (ja
Inventor
Junichi Shishizuka
順一 宍塚
Atsushi Date
厚 伊達
Yasuhisa Ishizawa
康久 石沢
Satoshi Nagata
聡 永田
Takeshi Onodera
健 小野寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP11055958A priority Critical patent/JP2000211216A/ja
Priority to EP00300498A priority patent/EP1022896A3/en
Priority to US09/491,976 priority patent/US6480916B1/en
Publication of JP2000211216A publication Critical patent/JP2000211216A/ja
Publication of JP2000211216A5 publication Critical patent/JP2000211216A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits 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/32561Circuits 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/32598Bus based systems
    • H04N1/32603Multi-bus systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00954Scheduling operations or managing resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits 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/32561Circuits 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0082Image hardcopy reproducer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0086Image transceiver

Abstract

(57)【要約】 【課題】 従来の複合機器では、ジョブ単位にシリアル
な処理しかできなかった。 【解決手段】情報処理装置から送信された手続きを解釈
し、手続きの解釈に基きジョブを生成する。生成したジ
ョブはページ単位に分割され、該ページの処理を実行す
るデバイスが割り当てられる。ページを処理単位とした
デバイスの処理結果は複数のバスの使用を制御してデー
タの書込みと読取りを並列に行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリンタ、ファッ
クス(FAX)、複写機等、複合機器に関して情報を処
理する方法及びシステムに関する。
【0002】
【従来の技術】従来、スキャナなどの画像入力装置とプ
リンタなどの画像出力装置とを組み合わせた複写機やフ
ァクシミリ、あるいはそれらを単体として備えたコンピ
ュータシステムなど、複合機器と呼ばれる画像処理装置
が実用化されている。このような装置では、画像入力機
能、画像出力機能、コピー機能等の複合機能を実現する
ために、画像入力装置及び画像出力装置が同期して動作
することが不可能な場合には、画像入力装置から一旦メ
モリに取り込んだ画像データを画像出力装置に出力する
ことでコピー機能を実現していた。また、画像入力装置
及び画像出力装置が同期して動作することが可能な場合
には、画像入力装置から画像出力装置へ直接画像信号を
転送する経路を設けてコピー機能を実現していた。
【0003】従来のデジタル複合機は、複写機にファッ
クス機能を追加したものや、ファックスにプリンタ機能
を追加したもの等、従来機の機能追加という形で発展し
てきており、複合動作ができてもジョブ単位の複合動作
及び並列動作しか行えなかった。従来のデジタル複合機
では、扱う種々のデータを入出力のために授受する十分
なバスの使用が確保できない場合のために、スキャナ、
プリンタ等のインタフェース部にローカルなメモリを分
散させた構成となっていた。
【0004】図112はジョブ単位の制御をした場合
の、ジョブ処理を説明するタイミングチャートである。
プリントジョブ1及びプリントジョブ2が複合機器で処
理するべきジョブである。これらのジョブが、あるリソ
ース(例えばページメモリ)を獲得する場合を考える。
時刻T1で先に投入されたプリントジョブ1がリソース
を獲得する。T2のタイミングで後続のプリントジョブ
2がリソースの獲得を行うが、プリントジョブ1がリソ
ースを占有しており(ロック)しており、獲得できず、
リソースの獲得要求はキューイングされる。そしてT3
のタイミングでプリントジョブ1がリソースを開放する
と、キューイング中のプリントジョブ2のリソース獲得
要求に従い、プリントジョブ2がリソースを獲得し、処
理を行う。つまり、T1からT3の時間、プリントジョ
ブ1は排他的にリソースを使用するためにプリントジョ
ブ1とプリントジョブ2の処理はシリアルになる。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
デジタル複合機では、一連のジョブの処理をジョブ単位
ごとに順序だてて実行させていたために、複数のジョブ
がデジタル複合機に入力された場合は先行するジョブの
処理終了まで、後続のジョブは待機状態となり、ジョブ
のスループットは低下した。
【0006】また、ローカルに分散して確保されたメモ
リは、デバイスごとに重複した情報を格納する場合もあ
り、必要な領域以上の冗長なメモリ領域を必要としてい
た。
【0007】また、リアルタイム性の要否に差がある処
理を単一のCPUでまかなう場合、リアルタイム性を必
要とする処理が、リアルタイム性を要さない処理の犠牲
となり、システム全体の処理能力を低下させていた。
【0008】
【課題を解決するための手段】本発明にかかる方法、及
びシステムは上記課題のいずれかを解決するためののも
であり、主として以下の構成からなることを特徴とす
る。
【0009】すなわち、複合機器の情報処理方法は、情
報処理装置から送信された手続きを解釈する解釈工程
と、前記手続きの解釈に基き、ジョブを生成するジョブ
生成工程と、前記生成されたジョブを構成する要素に分
割する分割工程と、前記分割した要素を処理するための
デバイスの割り付けと解放とを管理するデバイス管理工
程と、前記分割した要素の処理を並列に処理するために
データの書込みと、読取りを行う複数のバスの使用を制
御するバス制御工程とを備え、前記要素の並列処理によ
り、スループットを最短にすることを特徴とする。ある
いは、複合機器の情報処理システムは、情報処理装置か
ら送信された手続きを解釈する解釈手段と、前記手続き
の解釈に基き、ジョブを生成するジョブ生成手段と、前
記生成されたジョブを構成する要素に分割する分割手段
と、前記分割した要素を処理するためのデバイスの割り
付けと解放とを管理するデバイス管理手段と、前記分割
した要素の処理を並列に処理するためにデータの書込み
と、読取りを行う複数のバスの使用を制御するバス制御
手段とを備え、前記要素の並列処理により、スループッ
トを最短にすることを特徴とする。
【発明の実施の形態】次にプロセッサコア、プロセッサ
周辺コントローラ、メモリコントローラ、スキャナ/プ
リンタコントローラ、PCIインターフェースなどを内
蔵したシングルチップ・スキャニング・プリンティング
エンジンである“DoEngine”を説明する。
【0010】1.DoEngine概要 DoEngineは、MIPSテクノロジー社のR40
00プロセッサとコンパチブルなプロセッサコア、プロ
セッサ周辺コントローラ、メモリコントローラ、スキャ
ナー/プリンタコントローラ、PCIインターフェース
などを内蔵したシングルチップ・スキャニング・プリン
ティングエンジンである。高速並列動作、ビルディング
ブロック手法を採用し実装される。
【0011】プロセッサシェル(プロセッサコアを含む
プロセッサ周辺回路の総称)内には最大でインストラク
ション、データそれぞれ16Kバイトの計32Kバイト
のキャッシュメモリ、FPU(浮動小数点演算ユニッ
ト)、MMU(メモリ管理ユニット)、ユーザー定義可
能なコプロセッサなどを内蔵することが可能である。
【0012】PCIバスインターフェースを有するの
で、PCIバススロットを有するコンピュータシステム
と共に用いることができる。また、PCIサテライト構
成に加え、PCIホストバスブリッジ構成にてPCIバ
スコンフィギュレーションを発行することが可能であ
り、安価なPCI周辺デバイスと組み合わせることによ
り、マルチファンクションペリフェラル(複合機能周辺
機器)のメインエンジンとして使用することも可能であ
る。さらにPCIバスインターフェースを有するレンダ
リングエンジン、圧縮・伸長エンジンと組み合わせるこ
とも可能である。
【0013】チップ内部に汎用IOコアを接続するIO
バス(Bバス)、及び、画像データ転送に最適化したグ
ラフィックバス(Gバス:Graphics Bus)
の2系統の独立したバスを有し、メモリ、プロセッサと
これらのバスをクロスバスイッチを介して接続すること
により、マルチファンクションシステムにおける同時動
作に必須の、並列性の高い高速データ転送を実現してい
る。
【0014】メモリには、画像データに代表される、連
続したデータ列のアクセスに対し、最高のコストパフォ
ーマンスを有するシンクロナスDRAM(SDRAM)
をサポートし、SDRAMのバーストアクセス高速デー
タ転送のメリットを享受できない小さなデータ単位での
ランダムアクセスにおける性能低下を最小に抑えるため
に、8Kバイトの2ウェイセットアソシアティブ・メモ
リフロントキャッシュをメモリコントローラ内に備え
る。メモリフロントキャッシュは、すべてのメモリライ
トに対するバススヌープが難しい、クロスバスイッチを
採用したシステム構成においても、複雑な機構なしに、
キャッシュメモリによる高性能化が達成出来る方式であ
る。また、リアルタイムデータ転送(機器制御)が可能
な、プリンタ及びスキャナーとのデータインターフェー
ス(VideoInterface)を有し、さらにハ
ードウェアによる、機器間同期のサポート及び画像処理
を行う事により、スキャナ、プリンタ分離型の構成にお
いても、高品質で高速なコピー動作の実現が可能な構成
となっている。
【0015】なお、DoEngineは、コアが3.3
Vで動作し、IOは5Vトレラントである。
【0016】図1及び図2,図3は、DoEngine
を用いた装置あるいはシステムの構成例を示している。
図1は分離構成型であり、パーソナルコンピュータ10
2には、それが備えるPCIインターフェースを介して
DoEngineを備えたローカルボード101が装着
される。ローカルボード101にはDoEngineの
ほか、後述するメモリバスを介してDoEngineと
接続されたメモリと、色処理回路(チップ)が設けられ
ている。このローカルボード101を介して、高速スキ
ャナ103とカラー/モノクロプリンタ104とがパー
ソナルコンピュータ102に接続される。この構成によ
り、パーソナルコンピュータの制御のもとで,ローカル
ボード101により、スキャナ103から入力された画
像情報を処理し、プリンタ104から出力させることが
できる。
【0017】また、図2及び図3はスキャナ203とプ
リンタ202とを一体に組み込んだ例で、図2は通常の
複写機に類する構成を、図3(a)はファクシミリ装置
などの構成を示している。図3(b)は、図3(a)を
コントロールするコンピュータを示している。
【0018】これらのうち、図1,2は、PCIインタ
ーフェースを介して接続された外部のCPUによりDo
Engineが制御されるというスレーブモードで使用
されている例であり、図3は、DoEngineのCP
Uが主体となり、PCIインターフェースを介して接続
されたデバイスを制御するマスタモードで使用されてい
る例である。
【0019】表1として、DoEngineの仕様を示
す。外部インターフェースとして、PCI,メモリバ
ス,ビデオ,汎用入出力,IEEE1284,RS23
2C,100baseT/10baseT,LCDパネ
ル及びキーを備えるが、更にUSBを有していてもよ
い。内蔵ブロックとして、CPUコアに加えて、1次キ
ャッシュ,キャッシュ付きメモリコントローラ,コピー
エンジン,IOバスアービタ(Bバスアービタ),グラ
フィックバスアービタ(Gバスアービタ)などを備えて
いる。また、DMAコントローラはチャネル数が5であ
り、グラフィックバス(Gバス),IOバス(Bバス)
ともに、アービトレーションは優先度付きの先着順処理
方式で行われる。
【0020】
【表1】
【0021】2.DoEngineの構成及び動作 本章では、DoEngineの総論に加え、各機能ブロ
ック毎のブロック図、概要、詳細、コアインターフェー
ス、タイミング図などを解説する。
【0022】2.1.DoEngineのチップ構成 図4として、DoEngineのブロック図を示す。D
oEngine400は次世代複合機能周辺機器(シス
テム)(MFP:Multi Function Pe
ripheral or MFS:Multi Fun
ction System)の主たるコントローラとし
て設計、開発された。
【0023】CPU(プロセッサコア)401として、
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モジュール間を、可能な限り、同時平行接
続を確保することができるように設計されている。
【0024】Gバス404はGバスアービタ(GBA)
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にも接続されている。
【0025】2.2.プロセッサシェル プロセッサシェルとは、プロセッサコアに加えMMU
(Memory Management Unit)、
命令キャッシュ、データキャッシュ、ライトバックバッ
ファ及び掛け算ユニットを含んだブロックを指す。
【0026】<キャッシュメモリ>図5に示したよう
に、キャッシュメモリコントローラは、無効(Inva
lid),有効かつクリーン(Valid Clea
n:キャッシュが更新されていない),有効かつダーテ
ィ(Valid Dirty:キャッシュが更新されて
いる)の3つのステートキャッシュを管理する。この状
態に応じて、キャッシュは制御される。
【0027】2.3.インタラプトコントローラ 図6にインタラプトコントローラ410のブロック図を
示す。
【0028】インタラプトコントローラ410は、Bバ
スインターフェース605を介してBバス405に接続
され、DoEngineチップ内の各機能ブロック及
び、チップ外部からのインタラプトを集積し、CPUコ
ア401がサポートする、6レベルの外部インタラプト
及び、ノンマスカブルインタラプト(NMI)に再分配
する。各機能ブロックとは、電力管理ユニット409,
シリアルインターフェースコントローラ411,USB
コントローラ412,パラレルインターフェースコント
ローラ413,イーサネットコントローラ414,汎用
IOコントローラ415,PCIインターフェースコン
トローラ416,スキャナコントローラ4302,プリ
ンタコントローラ4303などである。
【0029】この際、ソフトウェアコンフィギュレーシ
ョン可能なマスクレジスタ(IntMask Logi
c0−5)602により、各要因毎に割り込みをマスク
をすることが可能である。また、外部インタラプト入力
は、選択的エッジ検出回路601により、信号線ごと
に、エッジセンス/レベルセンスを選択することが出来
る。要因レジスタ(Detect and set C
ause Reg 0−5)603は、各レベルごと
に、どのインタラプトがアサートされているかを示すと
ともに、ライト動作を行うことで、レベルごとにクリア
を行う事が出来る。
【0030】各レベルの割込み信号は、各レベル毎に少
なくともひとつの割り込みがあれば割込み信号を出力す
べく、論理和回路604により論理和として出力され
る。なお、各レベル内での複数要因間のレベル付けはソ
フトウェアにて行う。
【0031】2.4.メモリコントローラ 図7は、メモリコントローラ403のブロック図であ
る。メモリコントローラ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ビットとする。
【0032】2.4.2.構成及び動作 メモリコントローラの各部はこれから説明するような構
成となっている。
【0033】<MCバスインターフェース(701)>
MCバスは、SBB402−メモリコントローラ403
間の専用のバスであり、またSBB内部の基本バスとし
て用いられている。
【0034】CPU401とバスブリッジ402とを接
続する専用バス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ビットがソース(マスタ )をあらわし、下位ビットがシングル/バースト長をあらわす。タイプには次の ようなものがある。
【0035】 ・mBE_L[7:0](出力) … MCバストランザクションバイトイ ネーブル シングル転送時、64ビットデータバス上の有効なバイトレーンを示す。バース ト転送時はWrite時のみ有効であり、Read時は無視される。 ・mBRdy_L(入力) …MCバスレディ 現在の転送(beat)が終了したことを示す。 ・mTPW_L(出力) … 次トランザクションがIn−page wr ite(ページ内書き込み) 次の転送が同じページ(同じRowアドレス)のWriteであることを示し、 最大4個までのWriteを続けることができる。ページサイズはあらかじめコ ンフィギュレーションレジスタに設定しておく。 ・mBPWA_L(入力) … バスのページ内書き込み許可 MCバススレーブ(メモリコントローラ)がページ内書き込みトランザクション を許可するかどうかを示し、mBRdy_Lと同じクロックでサンプリングされ る。この時mBPWA_LがディアサートされていればmTPW_Lは無意味と なる。 ・mBRty_L(入力) … バスリトライ MCバススレーブ(メモリコントローラ)がアクセスを未実行のまま終了させる 場合にアサートし、少なくとも1サイクル以上のアイドルの後に再試行しなけれ ばならないことを示す。(もしmBRdy_LとmBRty_Lが同時にアサー トされた場合は、mBRty_Lが優先される。) ・mBerr_L(入力) … バスエラー パリティエラーやその他のバスエラーが発生した場合にアサートされる。
【0036】なお、上述した入出力の別はSBBからみ
ての定義である。 (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信号をアサートし、バス
リトライを通知する。
【0037】<SDRAMコントローラ(705)>メ
モリコントローラ403は、次のような構成を有するS
DRAMを以下のように制御する。
【0038】(DRAM構成)DRAMの構成として
は、x4,x8,x16ビットタイプの16/64メガ
ビットSDRAMを64ビットデータバスで8バンク制
御することができる。
【0039】
【表2】
【0040】(DRAMアドレスビット構成)DRAM
のアドレスビットの割付けについては、64ビットSD
RAMの場合にはMA[13:0]を、16ビットSD
RAMの場合にはMA[11:0]を使用する。
【0041】
【表3】
【0042】(SDRAMプログラマブル構成(モード
レジスタ))SDRAMは内部にモードレジスタを持
ち、モードレジスタ設定コマンドを用いて下記の項目を
設定する。 バースト長 バースト長は、1,2,4,8,フルページのいずれか
が設定可能であるが、CPUからのバースト転送長が4
であることから、バースト長4が最適である。Gバスか
らの16バースト以上の転送は、Read/Write
コマンド(オートプリチャージ無し)を連続して発行す
ることにより実現する。 ラップタイプ(Wrap Type) バースト転送時のアドレスのインクリメント順を設定す
る。「シーケンシャル」または「インターリーブ」のど
ちらかが設定可能である。 CASレイテンシ CASレイテンシは、1,2,3のいずれかが設定可能
であり、使用するSDRAMのグレードと動作クロック
により決定される。
【0043】(SDRAMコマンド)SDRAMに対し
て以下のコマンドをサポートする。各コマンドの詳細
は、SDRAMデータブックに記載されている。 ・モードレジスタ設定コマンド ・アクティブコマンド ・プリチャージコマンド ・ライトコマンド ・リードコマンド ・CBR(Auto)リフレッシュコマンド ・セルフリフレッシュ開始コマンド ・バーストストップコマンド ・NOPコマンド (SDRAMリフレッシュ)SDRAMは、2048サ
イクル/32ms(4096/64ms)であるので、
16,625nsおきにCBRリフレッシュコマンドを
発行する。メモリコントローラは設定可能なリフレッシ
ュカウンタを持ち、自動的にCBRリフレッシュコマン
ドを発行する。Gバスからの16−バーストxnの転送
中は、リフレッシュ要求を受け付けない。したがって、
リフレッシュカウンタは16−バーストx4転送の時間
だけ余裕を持った値を設定しなければならない。また、
セルフリフレッシュをサポートする。このコマンドを発
行すると、パワーダウンモード(ramclke_L=
Low)時にセルフリフレッシュが続行される。
【0044】(SDRAM初期化)メモリコントローラ
はパワーオンリセット後、SDRAMに対して以下の初
期化を行なう。すなわち、電源投入後100μsのポー
ズ期間をおいて、 プリチャージウコマンドを用いて全バンクをプリチャ
ージする。 SDRAMのモードレジスタを設定する。 オートリフレッシュコマンドを用いて、リフレッシュ
を8回行う。
【0045】<フラッシュROMコントローラ(70
4)>フラッシュROMコントローラ704は、rom
Addr[23:2]のアドレス信号と4個のチップセ
レクト(romCs_L[3:0])信号をサポートす
る。アドレス信号romAddr2〜romAddr9
はパリティ信号ramPar0〜ramPar7とマル
チプレクスされ、アドレス信号romAddr10〜r
omAddr23は、DRAMアドレスramAddr
0〜ramAddr13とマルチプレクスされている。
【0046】<SRAMコントロール(メモリフロント
キャッシュ)>メインメモリとして用いられるSDRA
Mは、バースト転送は非常に高速であるが、シングル転
送においてはその高速性が発揮できない。そこで、メモ
リコントローラ内にメモリフロントのキャッシュを実装
し、シングル転送の高速化をはかる。メモリフロントキ
ャッシュは、キャッシュコントローラ706とSRAM
702より構成される。MCバスに定義されたmTTy
pe[6:0]信号により、その転送マスターと転送長
を知ることができるので、各マスターごと、あるいは転
送長ごとにキャッシュのオン/オフが設定可能である。
キャッシュの方式は、次の通りである。なお、以下、特
に断らない限り、単なるキャッシュあるいはキャッシュ
メモリという呼称は、プロセッサコアに内蔵されたキャ
ッシュではなく、メモリコントローラが内蔵するメモリ
フロントキャッシュを指すものとする。 ・2ウェイセットアソシアティブ ・8kバイトデータRAM ・128x21x2 タグRAM ・LRU(Least Recently Used)
アルゴリズム ・ライトスルー ・No Write Allocate 次にキャッシュコントローラ706を中心とする詳細な
ブロック図を図8に示す。
【0047】(キャッシュの動作)ここで、MCバスよ
りメモリリード/ライト転送が要求された場合のキャッ
シュの動作を図8のブロック図と、図9及び図10に示
すフローチャートを用いて説明する。
【0048】MCバスよりデータ転送が開始されると、
その転送の最初にMCバス上で示されるmTType
[6:0]によって、その転送がキャッシュオンでおこ
なうか、オフでおこなうかの判断がおこなわれる。この
説明では、転送がシングル転送であればオン、バースト
転送であればオフと判断することにする(ステップS9
01)。すなわち、mTType(3)が“1”hであ
れば、シングル転送をあらわすのでキャッシュオンで、
“0”hであればバースト転送をあらわすのでキャッシ
ュオフで転送を行う。
【0049】シングル転送(キャッシュオン)の場合、
アドレス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
ut data,b2 out data,lru
nがそれぞれ出力される(ステップS902)。
【0050】b1_tag_ram801とb2_ta
g_ram802より出力されたb1_tag_add
rとb2_tag_addrがそれぞれb1_comp
arater804,b2−comparater80
5でアドレス lmaddr[31:12]と比較さ
れ、その結果、すなわちヒットか否かがb1_hit
iss_L,b2_hit_miss_L信号によりキ
ャッシュコントローラ706へ知らされ、判定される
(ステップS903)。
【0051】ここでヒットであれば、リードかライトか
が判定される(ステップ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ヒット)に
書き換えて、転送が終了する。
【0052】一方、ヒットかつライトの場合にはつぎの
ようになる。すなわち、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)。
【0053】一方、b1,b2ともにミスである場合に
も、リードかライトか判定される(ステップ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)。
【0054】ステップS901においてバースト転送
(キャッシュオフ)の場合、リード、ライトともSDR
AMに対してだけ行われ(ステップS907−S90
9)、キャッシュデータやタグの書き換え等は行わな
い。
【0055】<ROM/RAMインターフェース(70
7)>ROM/RAMコントローラ707の構成を図1
1に示す。ブロック1101〜ブロック1104によ
り、SDRAMのデータ信号、アドレス信号、パリティ
信号が、フラッシュROMのデータ信号、アドレス信号
と多重化される。
【0056】2.4.3.タイミングダイアグラム 上述したメモリコントローラ403によるデータの読み
出し・書き込み等の処理のタイミングを、図12〜図1
9を用いて説明する。
【0057】図12は、CPUからのバースト読み出し
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS909における処理に
相当する。
【0058】図13は、CPUからのバースト書き込み
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS908における処理に
相当する。
【0059】図14は、Gバスデバイスからのバースト
読み出しのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS909における処理に相当
する。
【0060】図15は、Gバスデバイスからのバースト
書き込みのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS908における処理に相当
する。
【0061】図16は、メモリフロントキャッシュにヒ
ットした場合のシングル読み出しのタイミングを示す。
読み出されるデータmDataIn[63:0]として
は、キャッシュメモリであるb1_data_ram7
02−aあるいはb2_data_ram702−bか
ら読み出されたb1/b2_out_dataが出力さ
れる。SDRAMのバースト長は4、CASレイテンシ
は3である。図9のステップS905における処理に相
当する。
【0062】図17は、メモリフロントキャッシュにヒ
ットしなかった場合のシングル読み出しのタイミングを
示す。読み出されるデータ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における処
理に相当する。
【0063】図18は、メモリフロントキャッシュにヒ
ットした場合のシングル書き込みのタイミングを示す。
書き込まれるデータmDataOut[63:0]は、
キャッシュメモリであるb1_data_ram702
−aあるいはb2−data_ram702−bに書き
込まれるとともに、SDRAMにも書き込まれる。SD
RAMのバースト長は4、CASレイテンシは3であ
る。図9のステップS906における処理に相当する。
【0064】図19は、メモリフロントキャッシュにヒ
ットしなかった場合のシングル書き込みのタイミングを
示す。書き込まれるデータmDataOut[63:
0]は、キャッシュメモリであるb1_data_ra
m702−aあるいはb2−data_ram702−
bには書き込まれず、SDRAMに対してだけ書き込ま
れる。SDRAMのバースト長は4、CASレイテンシ
は3である。図10のステップS1002における処理
に相当する。
【0065】なお、ここでは、MCバスよりデータ転送
が開始されると、その転送の最初にMCバス上で示され
るmTType[6:0]によって、転送がシングル転
送であればオン、バースト転送であればオフと判断して
いるが、バースト転送の場合に、さらにバースト長を判
定し、バースト長がキャッシュの1ラインよりも小さい
場合にはキャッシュオンとし、そうでない場合にはキャ
ッシュオフとして動作するようにしてもよい。
【0066】また、MCバスに、メモリへのデータ転送
を要求したバスマスタの識別子を示す信号を含ませるこ
とで、メモリコントローラがその識別子を判定し、識別
子に応じてキャッシュオン/キャッシュオフの制御を行
うこともできる。この場合には、識別子とキャッシュオ
ン/オフの別とを対応させた書換え可能なテーブルを用
意し、それを参照してキャッシュのオンオフを切り替え
ることもできる。このテーブルは、例えば特定のアドレ
スを割り当ててCPU401などから書換え可能にする
こともできる。
【0067】2.5.システムバスブリッジ(SBB)
及びBバス,Gバス 図20としてシステムバスブリッジ(SBB)402の
ブロック図を示す。
【0068】SBB402は、Bバス(入出力バス),
Gバス(グラフィックバス),SCバス(プロセッサロ
ーカルバス)及びMCバス間の相互接続をクロスバスイ
ッチを用いて提供する、マルチチャネル双方向バスブリ
ッジである。クロスバスイッチにより、2系統の接続を
同時に確立することが出来、並列性の高い高速データ転
送を実現出来る。
【0069】SBB402は、Bバス405と接続する
ためのBバスインターフェース2906と、Gバス40
4と接続するためのGバスインターフェース2006
と、プロセッサコア401と接続するためのCPUイン
ターフェーススレーブポート2002と、メモリコント
ローラ403と接続するためのメモリインターフエース
マスターポートを備えるほか、アドレスバスを接続する
アドレススイッチ2003,データバスを接続するデー
タスイッチ2004を含む。また、プロセッサコアのキ
ャッシュメモリを無効化するキャッシュ無効化ユニット
2005を備えている。
【0070】Bバスインターフェース2009には、B
バスデバイスからのDMAライトを高速化するライトバ
ッファと、Bバスデバイスのリードを効率化するリード
プリフェッチキューを実装する。これらのキュー内に一
時的に存在するデータに関するコヒーレンシ管理はハー
ドウェアにて行う。なお、Bバスに接続されたデバイス
をデバイスと呼ぶ。
【0071】プロセッサコアは32ビットバスに対する
ダイナミックバスサイジングをサポートしているが、S
BB402ではこれをサポートしない、将来、バスサイ
ジングをサポートしないプロセッサを用いる場合にもS
BBに必要な改造を最小限におさえるためである。
【0072】2.5.1.SBB及び各バスの構成及び
動作 <Bバスインターフェース>図21は、Bバスインター
フェースのブロック図である。
【0073】Bバスインターフェース2009は、Bバ
スとMCバス間の双方向ブリッジ回路である。Bバスは
DoEngineの内部汎用バスである。
【0074】Bバスインターフェース2009内には、
マスタコントロールブロック2011、スレーブコント
ロールブロック2010、データインターフェース20
12、DMAC2013、Bバスバッファの5ブロック
が含まれる。図21上で、DMAC2013は、機能上
3個のシーケンサとレジスタブロックに分割される。そ
れら3つのシーケンサのうち、DMAメモリアクセスシ
ーケンサはBバススレーブコントロールブロック201
0に、DMAregシーケンサはBバスマスターコント
ロールブロック2011に内蔵される。レジスタブロッ
クであるDMAレジスタはBバスデータインターフェー
ス2012部に内蔵される。
【0075】またBバスインターフェース2009はB
バス側からのメモリへの書き込み時、及びDMAによる
デバイスからメモリへの転送が起こった時に、キャッシ
ュ無効化インターフェースを介してCPUシェル内のデ
ータ、命令両キャッシュの無効化の制御を行う。
【0076】なお、CPUライト時のライトバックバッ
ファはBバスインターフェースには実装しないが、Bバ
ス上の外部マスタライト時のライトバッファを実装す
る。これにより、バースト転送でない、連続した外部マ
スタからの書き込みが高速化される。このライトバッフ
ァのフラッシュは、Bバスアービタ407によるメモリ
への接続が許された時点で行われる。Bバスマスタリー
ドのライトバッファバイパスは行わない。
【0077】また、外部マスタのリードプリフェッチキ
ューを実行する。これにより、外部マスタからの連続し
た、データストリームの読み出しの高速化を図る。リー
ドバッファの無効化は、 1.Bバスの新たなリードがバッファにヒットしなかっ
た場合。 2.CPUからメモリへのライトが行われた場合。 3.Gバスからメモリへのライトが行われた場合。 4.Bバスからメモリへのライトが行われた場合。 に行われる。
【0078】またBバスインターフェース2009には
Bバス405上の各デバイスとメモリ間のDMAコント
ローラ2013が内蔵される。システムバスブリッジ4
02にDMAコントローラを内蔵することにより、ブリ
ッジ双方へ、同時にアクセス要求が発行出来、効率的な
DMA転送が実現出来る。
【0079】Bバスインターフェース2009はプロセ
ッサ401からのアクセス要求に対して、ダイナミック
バスサイジングの使用を要求しない。またBバスマスタ
からのメモリアクセス要求時に、メモリコントローラ4
03からのバスサイジングにも対応しない。すなわち、
メモリコントローラはバスサイジングを期待すべきでは
ない。
【0080】<Bバス>BバスはDoEngine内の
汎用IOバスであり、以下の仕様を持つ。 ・アドレス、データ分離型32ビットバス。 ・任意のウェイトサイクルを挿入可能、最短はノーウェ
イト。 ・バーストトランザクションのサポート。 ・最大転送速度は、クロックが50MHz時に200M
byte/Sec。 ・バスエラーとバスリトライのサポート。 ・複数バスマスタのサポート。
【0081】(Bバス信号定義)以下にバス信号の定義
を説明する。各信号毎に、「信号名(英語呼称):入力
元>出力先(,3States)…信号の説明」の要領
で記載されている。なお、3ステートの項は3ステート
の信号に限り記載した。
【0082】bAddr[31:2](IOBus A
ddress Bus) :Master>Slab
e,3State… IOBusアドレスバス。
【0083】bData[31:0](IOBus D
ata Bus) :DataDriver>Data
Receiver,3State …IOBusデータ
バス。
【0084】b(Datadrivername)Da
taOeReq(IOBus Data Output
Enable Request):Datadriv
er>DefaultDriverLogic … 後
述する双方向IOバスを実現するため、デフォルトドラ
イバーコントロールロジックへの出力信号である。Da
tadrivernameを持つデバイスが、バス上に
データをドライブするための要求信号である。データの
出力を許可されたデバイスには、デフォルトドライバー
コントロールロジックよりb(Datadrivern
ame)DataOe_Lが出力される。Datadr
iverの例:Pci,Sbb,Jpeg,Spu。
【0085】b(Datadrivername)Da
taOe_L(IOBus Data Output
Enable):dfaultDriverLogic
>Datadriver … b(Datadrive
rname)DataOeReqを出力したデバイスに
対し、デフォルトドライバーロジックがデータバスへの
データのドライブを許す場合 b(Datadrive
rname)DataOe_L信号をそのデバイスに対
して返す。
【0086】bError_L(IOBus Bus
Error) :Slave>Master 3Sta
te … IOバストランザクションがエラーで終了し
たことを示す。
【0087】b(Mastername)BGnt_L
(IOBus Grant):Arbiter>Mas
ter … バスアービトレーションにより当マスタが
バスの使用権を得たことを示す。Mastername
の例:Pci,Sbb,Jpeg,Spu。
【0088】blnstNotData(IOBus
Instruction/DataOutput In
dicator):Master>Slave,3St
ate … Bバスマスタがインストラクションフェッ
チをBバススレーブに対して行う場合にHighにドラ
イブする。データトランザクションの場合はLowにド
ライブする。
【0089】b(Mastername)CntlOe
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信
号を返す。
【0090】b(Mastername)CntlOe
_L(IOBus MasterControl Ou
tput Enable):DefaultDrive
rLogic>Master … b(Mastern
ame)CntlOeReqを出力したマスタに対し、
デフォルトドライバーロジックがドライブを許す場合b
(Mastername)CntlOe_L信号をその
マスタに対して返す。
【0091】bRdy_L(IOBusReady)
:Slave>Master,3State… Bバ
ススレーブは、現在のBバスデータトランザクションが
現在のクロックサイクルを最後に終了することを示すた
めにこの信号をアサートする。Bバスマスタは、この信
号により、現在のトランザクションがこのクロックサイ
クルで終了することを知る。
【0104】b(Mastername)BReq_L
(IOBus Bus Request) :Mast
er>Arbiter … Bバスマスタが、Bバスア
ービタに対し、バスの使用権要求を行う事を示す。
【0092】bRetry_L(IOBus Bus
Retry) :Slave>Master 3Sta
te … Bバススレーブがマスタに対し、バストラン
ザクションの最実行を要求する。
【0093】b(Slavename)RdyOeRe
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信号を返す。
【0094】b(Slavename)RdyOe_L
(IOBus Slave Ready Outpu
t Enable)DefaultDriverLog
ic>Slave … b(Slavename)Rd
yOeReqを出力したマスタに対し、デフォルトドラ
イバーロジックがドライブを許す場合b(Slaven
ame)RdyOe_L信号をそのマスタに対して返
す。
【0095】bSnoopWait(IOBus Sn
oop Wait) :SBB>NextMaster
… BバスインターフェースがBバスに接続された他
のデバイスに対し、キャッシュのスヌーピング実行中で
あることを示す。Bバスに接続されたデバイスはこの信
号がアサートされている間は新たなトランザクションを
発行できない。
【0096】bStart_L(IOBus Tran
saction START) :Master>Sl
ave 3State … BバスマスタがBバストラ
ンザクションをスタートすることを示す信号、Bバスス
レーブは、この信号を監視することにより、Bバストラ
ンザクションのスタートを知ることが出来る。
【0097】bTx_L(IOBus Transac
tion Indicator Input) :Ma
ster>Slave 3State… Bバスマスタ
がBバススレーブに対し、Bバストランザクションが現
在実行中である事を示すためにアサートする。
【0098】bWBurstGnt_L(IOBus
Burst Write Grant):Master
>Slave,3State… Bバスマスタが、Bバ
スバーストライトのリクエストに対し、バーストライト
実行することを示すためにドライブする。
【0099】bWBurstReq_L(IOBus
Burst Write Request) :Sla
ve>Master,3Stete …Bバススレーブ
がBバスマスタに対し、バースとライトを要求する場合
にアサートする。
【0100】bWr−L(IOBus Write T
ransaction Indicater) :Ma
ster>Slave,3State… Bバスマスタ
が、Bバススレーブに対し、現在のトランザクションが
ライトである事を示すためにアサートする。
【0101】bByteEn[3:0](IOBus
Byte Enables):DataDriver>
DataReceiver,3State…Bバス上に
データをドライブするエージェントが、各ビットに対応
したbData[31:0]上のバイトレーンが有効で
ある事を示すためにHighにドライブする。本信号の
各ラインとbDataのバイトレーンは表4の対応関係
にある。
【0102】
【表4】
【0103】bBurst_L(IOBus Exte
nded Burst Request) :Mast
er>Slave,3Sate… Bバスマスタが拡張
バーストを行いたい事を示す。アサート、ネゲートタイ
ミングはbTx_Lと同一。
【0104】bBurstAck_L(IOBus E
xtended Burst Acknowledg
e):Slave>Maste,3State… Bバ
ススレーブが拡張バーストを行える事を示す。アサー
ト、ネゲートタイミングはbRdy_Lと同一。
【0105】bBurstShortNotLong_
L(IOBus Burst Length) :Ma
ster>Slave,3State…Bバスマスタが
拡張バーストを行う場合のバースト長を示す。アサー
ト、ネゲートタイミングはbTx_Lと同一であり、信
号値とバースト長との対応は表5に示したとおりであ
る。
【0106】
【表5】
【0107】Bバス信号は上述の通りである。DoEn
gine内部のバスである、Bバス(及びGバス)は接
続される機能ブロック数が10以上になるので、InO
ut分離バスですべてのブロックを接続することは、困
難である。DoEngineでは、チップ内双方向バス
を採用する。
【0108】<Gバスインターフェース>図22にGバ
スインターフェース2006のブロック図を示す。この
概要は下記の通りである。
【0109】(Gバス概要)Gバスは、MFP用1チッ
プコントローラ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クロック以上経過
してからしか行えない。基本的に信号のリリースはネゲ
ートした次のクロックで行う。
【0110】なお、各信号名の後の“ L”はその信号
がローアクティブであることを示す。信号の記述のしか
たは、ほぼBバス信号の記述に準ずる。説明は、システ
ム信号、アドレス及びデータ信号、インターフェース制
御信号、アービトレーション信号に分けて行う。また、
バスエージェントとは、バスに接続されるバスマスタや
バススレーブの総称である。
【0111】(システム信号)gClk(G−Bus
Clock) … Gバス上のすべてのトランザクショ
ンについてタイミングを提供し、すべてのデバイスに対
して入力となる。
【0112】gRst_L(G−Bus Reset)
… Gバス上のすべてのデバイスをリセットする。す
べての内部レジスタはクリアーされ、すべての出力信号
はネゲートされる。
【0113】(アドレスおよびデータ信号)gAddr
[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のアサートを確認したク
ロック。
【0114】g(Mastename)AddrOeR
eq(G−Bus AddressOutPut En
able Request):Master>Defa
ultDriverLogic … 双方向Gバスを実
現するための、デフォルトドライバロジックへの出力信
号。バスマスタがアドレスバスをドライブするための要
求信号。
【0115】g(Mastername)AddrOe
_L (G−Bus Address OutPut
Enablet)DefaultDriveLogic
>Master … g(Mastername)Ad
drOeReqを出力したバスマスタに対し、デフォル
トドライバロジックがアドレスバスのドライブを許可す
ることを示す信号。
【0116】gData[63:0],InOut,
(G−Bus Data) :DataDriver>
DataReceiver… 64ビットデータバス
で、ライト時はマスタがドライブ、リード時はスレーブ
がドライブ。
【0117】[ライト] drive:gTs_Lと同時にマスタがドライブ。た
だし、gSlvBsy_Lがアサートされている時はネ
ゲートされるまで待ってドライブ。 assert:ドライブした次のクロック。 change:gAack_Lのアサートを確認したク
ロック、その後は毎クロック。 negate:転送終了時、またはgTrStp_Lに
よる転送停止要求を確認した場合は、gAack_Lの
アサートを確認したクロック。
【0118】[リード] drive:gAack_Lと同時にスレーブがドライ
ブ。 assert:スレーブがReadyであればドライブ
した次のクロックで、ReadyでなければReady
になるまで待ってアサートされる。 change:gAack_Lのアサートを確認したク
ロック、その後は毎クロック。リードの場合はアサート
したクロックから毎クロック。 negate:転送終了時。 release:ネゲートの1クロック後、またはgT
rStp_Lによる転送停止要求を確認したクロック。
【0119】g(DataDrivername)Da
taOeReq(G−Bus Data OutPut
Enable Request):DataDriv
er>DefaultDriverLogic … デ
ータドライバがデータバスをドライブするための要求信
号。
【0120】g(DataDrivername)Da
taOe_L (G−Bus Data OutPut
Enablet)DefaultDriverLog
ic>DataDriver … g(DataDri
vername)DataOeReqを出力したデータ
ドライバに対し、デフォルトドライバロジックがデータ
バスのドライブを許可することを示す信号。
【0121】(インターフェース制御信号)gTs_L
(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クロックアサート後にネゲートされ
る。
【0122】g(Mastername)TsOeRe
q (G−Bus Transaction Star
t OutPut EnableRequest) :
Master>DefaultDriverLogic
… バスマスタがgTs Lをドライブするための要求
信号。
【0123】g(Mastername)TsOe_L
(G−Bus Transaction Start
OutPut Enablet):DefaultD
riverLogic>Master … g(Mas
tername)TsOeReqを出力したバスマスタ
に対し、デフォルトドライバクロックがgTs_Lのド
ライブを許可することを示す信号。
【0124】gAack_L,InOut,(G−Bu
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クロックアサート後にネゲ
ートされる。
【0125】g(Slavename)AackOeR
eq(G−Bus AddressAcknowled
ge OutPut EnableRequest)
:Slave>DefaultDriverLogi
c … スレーブがgAack_Lをドライブするため
の要求信号。
【0126】g(Slavename)AackOe_
L(G−Bus AddressAcknowledg
e OutPut Enablet):Default
DriverLogic>Slave … g(Sla
vename)AackOeReqを出力したスレーブ
に対し、デフォルトドライバロジックがgAack_L
のドライブを許可することを示す信号。
【0127】gSlvBsy_L,InOut, (G
−Bus Slave Busy):Slave>Ma
ster … スレーブがドライブし、データバスでデ
ータを転送中であることをあらわす。 drive:アドレスデコードヒット時、gTs_Lの
アサートを確認したクロックでドライブ開始。ただし、
gSlvBsy_Lがアサートされている時はネゲート
されるまで待ってドライブ。 assert:スレーブがReadyであればドライブ
した次のクロックで、ReadyでなければReady
になるまで待ってアサート。 negate:転送終了時にネゲート。 release:ネゲートの1クロック後、またはgT
rStp_Lによる転送停止要求を確認したクロック。
【0128】g(Slavename)SlvBsyO
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のドライブを許可する
ことを示す信号。
【0129】gRdNotWr,InOut, (G−
Bus Read(High)/Write(Lo
w)) :Master>Slave …マスターによ
りドライブされ、HighでREAD、LOWでWRI
TEをあらわす。ドライブする期間はGAと同じであ
る。 derive:gTs_Lと同時にマスターがドライ
ブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したク
ロック。
【0130】g(Mastername)RdNotW
rOeReq (G−Bus Read/Write
OutPut EnableReques):Mast
er>DefaultDriverLogic … バ
スマスタがgRdNotWrをドライブするための要求
信号。
【0131】g(Mastername)RdNotW
rOe_L (G−Bus Read/Write O
utPut Enablet):DefaultDri
verLogic>Master … g(Maste
rname)RdNotWrOeReqを出力したバス
マスタに対し、デフォルトドライバロジックがgRdN
otWrのドライブを許可することを示す信号。
【0132】gBstCnt[1:0],InOut,
(G−Bus Burst Counter) :Ma
ster>Slave … マスターによりドライブさ
れ、連続して行うバースト転送の数(1〜4)をあらわ
す。信号の値とバースト転送するバイト数との対応は表
6のようになる。 derive:gTs_Lと同時にマスターがドライ
ブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したク
ロック。
【0133】
【表6】
【0134】g(Mastername)BstCnt
OeReq (G−Bus Burst Counte
r OutPut EnableRequest) :
Master>DefaultDriverLogic
… バスマスタがgBstCntをドライブするため
の要求信号。
【0135】g(Mastername)BstCnt
Oe_L (G−Bus Burst Counter
OutPut Enablet):DefaultD
riverLogic>Master … g(Mas
tername)BstCntOeReqを出力したバ
スマスタに対し、デフォルトドライバロジックがgBs
tCntのドライブを許可することを示す信号。
【0136】gBstStp_L,InOut, (G
−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上をドライブするための要求信号。
【0137】g(Slavename)BstStpO
e_L (G−Bus BurstStop OutP
ut Enablet):DefaultDriver
logic>Slave … g(Slavenam
e)BstStpOeReqを出力したスレーブに対
し、デフォルトドライバロジックがgBstStp_L
のドライブを許可することを示す信号。
【0138】(アービトレーション信号) g(Mastername)Req_L,Out,
(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で指定されたデータ量だけ転送を行う。マスタ
とスレーブは、それぞれ自分でクロックをカウントし
て、データ転送の終了を知らなければならない。
【0139】スレーブは転送の途中でマスタから要求さ
れたデータ転送量を転送できなくなった場合は、bSt
Stp_Lを15ビート目でアサートすることで、次の
16ビートの転送をキャンセルすることがただし、16
ビートの途中でキャンセルすることはできない。
【0140】マスタおよびスレーブは、gBstStp
_Lがアサートされれば、次のクロックでデータの転送
を終了させなければならない。
【0141】<キャッシュインバリデーションユニット
(CIU)>キャッシュインバリデーションユニット
(以下CIU)2005は、Bバスからメモリへのライ
トトランザクションを監視し、これが起こった場合は、
メモリへの書込が終了する前に、CPUシェルのキャッ
シュインバリデーションインターフェースを用い、CP
Uシェルに内蔵されたキャッシュの無効化を行う。
【0142】CPUシェルは、次の3種類の信号を使用
する。 ・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と同一サイクルだけド
ライブする。
【0143】なお、現在のインプリメンテーションで
は、Bバスからのライトが起こった場合は、安全のため
にIcacheもインバリデーションしている、もし、
OSでセルフモディファイングコードを禁止し、インス
トラクションとして使われる可能性のあるデータのロー
ディング時に、意図的にインストラクションキャッシュ
のインバリデーションを行うなら、Icacheのイン
バリデーションはいらない。この場合は若干のパフォー
マンスアップが望める。
【0144】<メモリマップ>図23及び図24にメモ
リマップを示す。図23は、左から順に、仮想メモリマ
ップ、物理メモリマップ、Gバスのアドレス空間でのメ
モリマップ、Bバスのアドレス空間でのメモリマップで
ある。また、図24は、レジスタ等を含む図23におけ
る斜線部の512メガバイトを示すマップである。
【0145】プロセッサコアのメモリモデルはR300
0をベースにしている。プロセッサコアの物理アドレス
空間は32ビットアドレッシングにより4Gバイトあ
る。仮想空間も同様に32ビットアドレッシングを行な
う。ユーザープロセスの最大サイズは2Gバイトであ
る。アドレスマッピングはカーネルモードとユーザーモ
ードで異なる。図はMMUを使用しない場合のメモリマ
ップである。
【0146】(ユーザーモード仮想アドレッシング)ユ
ーザーモードの仮想アドレッシングでは2Gバイトのユ
ーザ仮想アドレス空間(kuseg)が有効となる。こ
のユーザーセグメントのアドレスは0x0000000
0から始まり、すべての有効なアクセスは0にクリアさ
れたmsbを持つ。ユーザーモードにおいてmsbをセ
ットしたアドレスの参照はアドレスエラー例外処理を引
き起こす。TLBはkusegへのすべての参照をユー
ザーモードとカーネルモードで同様にマッピングする。
また、キャッシャブルである。kusegは通常ユーザ
ーコードやデータを保持するために使用される。
【0147】(カーネルモード仮想アドレッシング)カ
ーネルモードの仮想アドレス空間には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をスタックやコンテキス
トスイッチによるリマップが必要なプロセス毎のデータ
のために使用する。
【0148】(仮想アドレスメモリマップ(図23
(a),図24(a)))仮想アドレス空間は4Gバイ
トあり、システム上のすべてのメモリ、I/Oがアクセ
ス可能である。kusegにはSYSTEM MEMO
RY(1GB)が存在する。
【0149】kseg0には内蔵RAM(16MB)が
存在する。これは、例外処理のベクタをプログラミング
したい場合にインプリメントし、例外ベクタベースアド
レスを0x80000000に設定する。このアドレス
は物理アドレス空間の0x00000000にマッピン
グされる。
【0150】kseg1にはROM,I/O,レジスタ
が存在し、ブート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)が含まれる。
【0151】kseg2にはPCI I/O(512M
B),PCI MEM(512MB)が存在する。
【0152】kseg0,kseg1はどちらも物理ア
ドレス空間の最初の512Mバイトにマッピングされる
ため、kseg0,kseg1とkusegの最初の5
12Mバイトはすべて同じ物理アドレス空間を参照して
いることになる。
【0153】(物理アドレスメモリマップ(図23
(b),図24(b)))物理アドレス空間も仮想アド
レス空間と同様4Gバイトあり、システム上のすべての
メモリ、I/Oがアクセス可能である。
【0154】PCI I/O,PCI MEM,SYS
TEM MEMORYについては仮想アドレスメモリマ
ップと同一である。
【0155】kseg1,kseg2はどちらも物理ア
ドレス空間の最初の512Mバイトにマッピングされる
ので、ROM,I/O,Regは0x00000000
からの空間に存在している。
【0156】(Gバスメモリマップ(図23(c),図
24(c)))Gバスアドレス空間は4Gバイトあり、
SYSTEM MEMORY,GBusMEM,FON
Tのみがアクセス可能である。
【0157】(Bバスメモリマップ(図23(d),図
24(d)))Bバスアドレス空間は4Gバイトあり、
PCI I/O,PCI MEM,SYSTEMMEM
ORY,IOBusI/O2,IOBusMEM,FO
NTのみがアクセス可能である。
【0158】IOBusI/O1はプリミティブなレジ
スタのため、0x1C000000から0x20000
000までの空間はPCIからプロテクトがかけられて
おり、PCIからアクセスできない。
【0159】<アドレススイッチ>アドレススイッチ2
003は、SCバス,Gバス,Bバス,MCバス間のデ
ータ転送を行なうために、マスターとなるバスからスレ
ーブとなるバスへ、SBB402を経由してアドレス信
号を送るためのものである。SBB402を経由する転
送において、マスターとなり得るバスは、SCバス,G
バス,Bバスであり、スレーブとなり得るバスはBバ
ス,MCバスである。MCバスに対してはSCバス,G
バス,Bバス,のいずれかがマスターとなり、Bバスへ
はSCバスのみがマスターとなってアドレス信号を送
る。
【0160】また、SCバス−Bバス間の転送と、Gバ
ス−MCバス間の転送は同時に行なうことができる。
【0161】図25に、アドレススイッチ2003のブ
ロック図を示す。スイッチシーケンサ2003aによ
り、スイッチ2003bを切り替えてスレーブをBバス
とMCバスとで切り換え、スイッチ2003cを切り替
えてマスタをSCバス,Gバス,Bバスで切り換える。
この構成により、MCバスに対してはSCバス,Gバ
ス,Bバス,のいずれかがマスターとなり、Bバスへは
SCバスのみがマスターとなり、また、SCバス−Bバ
ス間の転送と、Gバス−MCバス間の転送は同時に行な
うことができる。
【0162】<データスイッチ>データスイッチはSC
バス,Gバス,Bバス,MCバス間のデータ転送を行な
う際に,SBB内でデータの流れを切り替えるものであ
る。ライト時はマスターからスレーブ、リード時はスレ
ーブからマスターへデータが送られる。
【0163】図26にデータスイッチ2004のブロッ
ク図を示す。この構成において、セレクタA−1〜A−
3及びB−1,B−2を表7のように切り替えること
で、SCバス,Gバス,Bバスのいずれかをマスタと
し、Bバス,MCバスのいずれかをスレーブとして、書
き込みあるいは読み出しを行うように制御できる。
【0164】
【表7】
【0165】<アービトレーション>SBB402内の
スイッチシーケンサ2003aは、各スイッチを切り替
えるにあたって、SBB外部からの以下の3種類の接続
要求間のアービトレーションを行う。 1.CPU 2.Gバスバスマスタ 3.Bバスバスマスタ このアービトレーションは、現在のバススイッチ接続状
況、及び、あらかじめ設定された優先順位により決定さ
れ、その結果アドレススイッチ、データスイッチの接続
が切り替えられる。
【0166】<タイミングダイアグラム>図27〜図3
2にタイミング図を示す。図27はGバスからの書き込
み/読み出しサイクルのタイミング図、図28はGバス
のバースト停止サイクルのタイミング図、図29〜図3
2は、Gバスのトランザクション停止サイクルのタイミ
ング図である。
【0167】2.6.PCIバスインターフェース 図33は、PCIバスインターフェース416のブロッ
ク図である。
【0168】PCIバスインターフェース416は、D
oEngine内部汎用IOバスであるBバスと、チッ
プ外部IOバスであるPCIバスの間をインターフェー
スするブロックである。入力ピン設定により、リセット
時にPCIバスコンフィギュレーション発行可能な、ホ
ストブリッジ構成と、PCIバスコンフィギュレーショ
ンは発行しないターゲット構成とを切り替えることがで
きる。
【0169】BバスインターフェースのマスタDMAコ
ントローラ3301は、PCIバスシグナルインターフ
ェース3302を介してPCIバスマスタからDoEn
gine内部のリソースにアクセス要求があった場合
に、Bバスマスタとしてこのアクセス要求をBバス内部
にブリッジする。
【0170】更に、このマスタDMAコントローラ33
01は、PCIバス上でマッピングされるメモリからD
oEngineMemoryへのDMA転送を行う事が
出来る。この際、プログラマが意図したBバスDMA
と、GバスDMAのアクセスの順番を守って動作させる
ために、転送先アドレス(bPciAddr[31:
0])と、PCIマスターコントローラ3301のID
信号(bPciID)を、Bバスとアービトレーション
シーケンサに対して、バスリクエストと同時に発行す
る。
【0171】マスタDMAコントローラ3301はバス
グラント(bPciBGnt_L)を受け取り、バスを
使用しデータ転送が終了した時点で、ID信号(bPc
iID)のアサートを取りやめる。
【0172】なお、PCIバスは、33MHz,32ビ
ット,PCI2.1準拠とする。
【0173】2.7.Gバスアービタ 図34は、Gバスアービタ(GBA)406のブロック
図である。
【0174】Gバスのアービトレーションは、中央アー
ビトレーション方式であり、各バスマスタに対して専用
のリクエスト信号(g(mastername)Req
_L)とグラント信号(g(mastername)G
nt_L)を持つ。図34は、masternameは
M1〜M4となっている。Busアービタ406は、G
バス上のバスマスタを4つまでサポートしており、以下
のような特徴を持つ。 ・アービタ内部のレジスタ3401aの設定によりアー
ビタをプログラミングすることが出来る。レジスタ設定
はBバスより行なう。 ・すべてのバスマスタを同じ優先権として、公平にバス
権を与える公平アービトレーションモードと、いずれか
ひとつのバスマスタの優先権を上げ、優先的にバスを使
用させる優先アービトレーションモードがある。どのバ
スマスタに優先権を与えるかはレジスタ3401bの設
定により決定される。 ・優先バスマスタが連続してバスを使用することができ
る回数を設定することが可能。 ・すでにアドレスフェーズを開始したが、データフェー
ズをまだ開始していないトランザクションについて、そ
のトランザクションをストップするためのトランザクシ
ョンストップサイクルをサポート。 ・複数のバスマスタにおける順序処理のプログラミング
ができる(後述)。プログラムされた順序は、レジスタ
テーブル3401aに格納される。 ・GバスマスタとBバスマスタが同一メモリアドレスに
順次書き込みを発行した場合に、プログラマの意図した
アクセス順序を維持するための機構として、同期ユニッ
トからのマスタID信号、ストップ信号に基づき、特定
のマスタに対し、バス使用許可を与えることを保留する
機構を持つ。
【0175】なお、レジスタへのプログラミングは、B
バスを介してCPU401から行われる。
【0176】(アービトレーションシーケンサ)Gバス
アービタの中核となるアービトレーションシーケンサ3
402a,bは、1つの優先マスタとその他の4つの非
優先マスタの間で5つのマスタによるアービトレーショ
ンを行なう。4つのバスマスタからのリクエスト信号と
グラント信号を、リクエストディスパッチ回路3403
とグラントディスパッチ回路3404によって4つの非
優先マスタに割り付けることにより、公平アービトレー
ションモードが実現される。また、4つのバスマスタの
うちのひとつを、高優先アービトレーションシーケンサ
3402aの優先マスタに割り付けることで、優先アー
ビトレーションモードとして動作する。これらの割り付
けは、レジスタ3401a,bの設定にしたがって行わ
れる。これにより、優先バスマスタは、他のマスタより
高い確率でバスの使用権を取得することが出来る。
【0177】さらに、バスの取得機会確率の調整に加
え、高優先シーケンサ3402aに割り当てられたマス
タは、連続してバスを使用する事が出来、連続して使用
出来る回数をプログラマブルなレジスタにより可変する
事ができる。これは、バスの占有率を調整出来、ある特
定のマスタにより多くバスを使用させる様に出来ること
を意味する。
【0178】(公平アービトレーションモード)このモ
ードでは、すべてのバスマスタは同じ優先順位にあり、
バス権を与えられる機会は公平である。バスがフリーの
時は、一番最初にリクエストを出したバスマスタがバス
権を得ることができる。また、複数のバスマスタが同時
にリクエストを出した場合は、あらかじめ決められた順
序にしたがって順次バス権が与えられる(ラウンドロビ
ン方式)。例えば、M1からM4までのすべてのバスマ
スタが同じクロックでリクエストを出した場合は、M1
→M2→M3→M4といった順序でバス権が与えられ
る。M4のトランザクションの終了時に再びすべてのバ
スマスタがリクエストを出している場合は、M1→M2
→M3→M4→M1→M2…というように、同様の順序
でバス権を与えていく。一部のバスマスタがリクエスト
を出している場合は、M4からM1へラウンドラップす
るとして、最後にバスを使用したマスタにもっとも近い
大きい番号を持ったマスタへグラントを与える。
【0179】一度バス権が他のバスマスタに移ると、他
にリクエストを出しているすべてのバスマスタにバス権
を与えた後でないと再びバス権を得ることができない。
【0180】(優先アービトレーション)このモードで
は、ひとつのバスマスタ(レジスタ3401bに登録さ
れたバスマスタ)が他のバスマスタよりも高い優先権を
持つ優先バスマスタになり、他のバスマスタに比べ優先
的にバス権が与えられる。優先バスマスタ以外のバスマ
スタの優先順位はすべて同じである。
【0181】複数のバスマスタがリクエストを出してお
り、また優先バスマスタが連続したリタエストを行う場
合、優先バスマスタと他の非優先バスマスタは交互にバ
ス権を得る。
【0182】非優先バスマスタから他のバスマスタにバ
ス権が移ると、他にリクエストを出しているすべてのバ
スマスタにバス権を与えた後でないと、その非優先バス
マスタは再びバス権を得ることができない。
【0183】(トランザクション・ストップ・サイク
ル)優先アービトレーションモードにおいて、優先バス
マスタがリクエストを出した時、すでに他のバスマスタ
がアドレスフェーズを開始していても、データフェーズ
をまだ開始していなければ、そのトランザクションをス
トップし、優先バスマスタがバス権を得ることができ
る。ただし、その直前に優先バスマスタがバス権を持っ
ていた場合は、連続したバス権を得ることができる回数
を超えることはできない。
【0184】優先バスマスタのトランザクションが終了
した時、中止されたバスマスタがリクエストを出してい
れば、優先してバス権が与えられる。
【0185】(優先バスマスタの切り替え)優先バスマ
スタの切り替えを行なうには、レジスタ3401bを書
き換えればよい。優先バスマスタを選択するレジスタが
書き換えられると、その時に実行中のトランザクション
の終了を待って、優先バスマスタが切り替えられる。ア
ービタのステートはアイドル状態にもどり、その時点で
リクエストを出していたバスマスタは、その時同時にリ
クエストを出したものとして、あらためてアービトレー
ションが行われる。
【0186】優先バスマスタの切り替えには十分注意を
払う必要がある。優先させるべきバスマスタのDMAが
終了しないうちに、異なったバスマスタに優先バスマス
タを切り替えてしまうと、最初の優先バスマスタのDM
Aの優先度が下がってしまう。もしも最初の優先バスマ
スタの優先度を下げたくないのであれば、DMAが終了
したのを確認してから優先バスマスタの切り替えを行な
う必要がある。
【0187】優先バスマスタ切り替えを、システムブー
ト時のみでなく、システム稼働中も動的に行う必要のあ
るソフトウェアでは、優先バスマスタの切り替えは、い
ったんGバス上に新たなDMAリクエストが発生しない
よう、すべてのバスマスタ及びDMAコントローラに対
する設定を中止し、その後、Gバスアービタ406内の
レジスタに適切な値をセットし、さらに、Gバスアービ
タ406内のステータスレジスタをチェックし、バスマ
スタの優先権が切り替わったのを確認した上で新たなG
バス上へのアクセス及びDMAの起動を行うべきであ
る。
【0188】優先バスマスタの動的切り替えは、オペレ
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは違反させてしまう可能性があり、十
分な考慮の上行われなければならない。
【0189】(順序処理)図35は、DoEngine
400内におけるGバス404を中心とする、Gバス上
のバスマスタによるDMAに係るブロック図である。
【0190】複数のバスマスタが順次に処理を行うこと
が必要な場合、例えば、メモリ3501上のデータに対
して、バスマスタ1により処理Aを行った後、バスマス
タ2により処理Bを行い、その処理後のデータをバスマ
スタ4に送るといった一連の処理を考える。
【0191】この処理を行うソフトウェア、すなわちC
PU401により実行されるプログラムにより、Bバス
405を介して、バスアービタ406内のレジスタテー
ブル3401aに、バスマスタがバスを使用する順序
と、バス権の付与の開始条件と、終了条件がセットされ
る。この例では、 バスマスタ : 開始条件 :終了条件 1.バスマスタ1:gM2BufEmpty:gM1BufReady 2.バスマスタ2:gM1BufReady:gM1BufEmpty 3.バスマスタ4:gM2BufReady:gM2BufEmpty というようにセットする。すなわち、Gバスアービタ4
06は、それぞれのバスマスタから、開始条件として設
定された信号を受けるとそのバスマスタにバス使用権を
与え、終了条件として設定された信号を受けるとバス使
用権を奪う。
【0192】ソフトウェアはそれぞれのバスマスタにD
MAをセットする。それによって、それぞれのマスタは
Gバスアービタ404に対してリクエスト(g(mas
tername)Req_L)を発行する。Gバスアー
ビタ404はレジスタテーブル3401aに登録された
順序に従ってバスマスタ1にバス権を与える(gM1G
nt_L)。バスマスタ1はメモリ3501からある単
位のデータをリードし、処理Aを行って、バスマスタ1
内部のバッファにデータをライトする。バスマスタ1は
ひとつの単位の処理が終了し、バッファの準備ができた
ことをgM1BufReady信号によりアービタ40
6に対して通知する。
【0193】アービタ406はそれを受け、レジスタテ
ーブル3401aに登録された、バスマスタがバス権を
与える条件とバス権を奪う条件にしたがって、バス権を
バスマスタ1から奪いバスマスタ2に与える。バスマス
タ2はバスマスタ1のバッファのデータをリードし、処
理Bを行って、バスマスタ2内部のバッファにデータを
格納する。この間にバスマスタ1のバッファが空になる
とgM1BufEmptyがアサートされ、アービタ4
06はバスマスタ2にバス権を与えていたのを取りやめ
る。バスマスタ2は処理Bを行って、バッファの準備が
できるとgM2BufReady信号により通知する。
【0194】アービタ406はそれを受け、レジスタ3
401aの内容にしたがって、今度はバスマスタ4にバ
ス権を与える。バスマスタ4はバスマスタ2のバッファ
からデータをリードする。バスマスタ2のバッファが空
になると、gM2BufEmptyによってアービタ4
06に通知し、アービタ406はそれを受け、レジスタ
3401aの内容に従って再びバスマスタ1にバス権を
与え、次のデータの処理を始める。
【0195】それぞれのバスマスタにセットされたDM
Aがすべて終了すると、それぞれのバスマスタはプロセ
ッサに割り込みによって通知する。ソフトウェアはすべ
てのバスマスタからの終了通知がそろったとき、一連の
処理が終了したことを知る。
【0196】以上説明した動作は完全順次モードでの動
作であり、順次処理に関わるバスマスタ以外のバスマス
タは、バスを使用することができない。この順次処理中
でも、順次処理に関係のないバスマスタがバスを使用す
ることを可能にするために優先順次モードが用意されて
いる。これらのモードの切り替えではアービタ406内
部のレジスタにプログラミングすることによって行な
う。優先順次モードでは、順次処理を行なうバスマスタ
は優先的にバスを使用できるが、順次処理に関わらない
バスマスタであればバスを使用することが許される。順
次処理を行なうバスマスタと関わらないバスマスタの間
のアービトレーションは、前述した優先アービトレーシ
ョンモードと同等である。当然、順次処理に係わるバス
マスタで、バス権を与えられる条件が満足されずに自分
の順番が回ってきていないバスマスタにはバス権は与え
られない。
【0197】(アクセス順序を維持するための機構)信
号stopSpcがアサートされた場合は、Gバスマス
タのひとつであるスキャナコントローラ/プリンタコン
トローラはアービトレーションの対象から除外され、た
とえリクエストをアサートしていてもバス使用権を与え
られることはない。アービトレーションはこのマスタを
除外したマスタ間で行われる。詳細な説明はBバスアー
ビタの節で行なう。
【0198】<タイミングダイアグラム>図36〜図3
9において、Gバスアービトレーションのタイミングを
説明する。図36は、連続してバスを使用する回数が、
バスマスタ1〜4のすべてについて1に設定されている
場合の公平アービトレーションモード(フェアモード)
の例である。バスマスタ1による2回目の(タイミング
4から出されている)バス要求は、バス要求を出してい
る他のバスマスタがすべて1回ずつ処理されるまで待た
されている。
【0199】図37は、連続してバスを使用する回数
が、バスマスタ1についてのみ2であり、他のバスマス
タは1に設定されている場合の公平アービトレーション
モードの例である。バスマスタ1が出している2回目の
(タイミング4から出されている)バス要求は1回目の
要求に続いて直ちに許可され、他のバスマスタはその処
理がすむまで待たされている。
【0200】図38は、連続してバスを使用する回数が
それぞれ1ずつであり、バスマスタ1が優先バスマスタ
と設定されている場合の優先アービトレーションモード
の例である。優先バスマスタと非優先バスマスタとは交
互にバス使用権が認められるために、バスマスタ1の2
回目のバス要求はバスマスタ2のバスの使用後に認めら
れており、バスマスタ4のバス要求は、バスマスタ1の
2回目のバスの使用後に認められている。また、バスマ
スタ2の2回目のバス要求は、バス要求を出している他
のすべてのバスマスタ、図38ではバスマスタ1及びバ
スマスタ4のバス使用が終了した後で認められている。
【0201】図39は、バスマスタ1からのバス要求に
より、バスマスタ4のバス要求が許可されているにもか
かわらず中断された例である。この場合、バスマスタ1
のバス使用が終了すると、バスマスタ2のバス要求に優
先してバスマスタ4のバス要求が認められる。
【0202】2.8.Bバスアービタ 図40は、Bバスアービタ407のブロックである。
【0203】Bバスアービタ407は、DoEngin
e内部のIO汎用バスであるBバス405のバス使用要
求を受け付け、調停の後、使用許可を選択された一つの
マスタに対して与え、同時に2つ以上のマスタがバスア
クセスを行う事を禁止する。
【0204】アービトレーション方式は、3段階のプラ
イオリティを持ち、それぞれのプライオリティに複数の
マスタをプログラマブルに割り当てられる構成になって
いる。割り当ては、それぞれ最大で、最高のプライオリ
ティに3マスタ、中間に7マスタ、最低レベルに3マス
タとなる。
【0205】また、GバスマスタとBバスマスタが、同
一メモリアドレスに順次書き込みを発行した場合に、プ
ロブラマの意図したアクセス順序を維持するための機構
として、同期ユニットからの、マスタID信号、ストッ
プ信号に基づき、特定のマスタに対し、バス使用許可を
与えることを保留する機構を持つ。
【0206】(アービトレーションシーケンサ)Bバス
アービタは3つのアービトレーションシーケンサ400
2,4003,4004から構成される。それぞれ、高
優先権、中優先権、低優先権を持ち、それぞれのシーケ
ンサ内に、3,7,3本のバスマスタ用アービトレーシ
ョンシーケンサが内蔵される。Bバス上のすべてのバス
マスタになる可能性のあるユニットからのリクエスト信
号とそれらへのグラント信号を、リクエストセレクタと
グラントセレクタによって、これらの3つのシーケンサ
ユニットに分配する。この分配は、BBusインタフェ
ース4005内のソフトウェアプログラマブルなレジス
タ4005aにより、複数の組み合わせのなかから、一
意の組み合わせを選択することが出来る。
【0207】たとえば、最大7つのマスタのリクエスト
を中優先アービトレーションシーケンサ4003に接続
することにより、7つのマスタ間で公平なアービトレー
ションが実現される。また、バスマスタのうちのいくつ
かを、高優先アービトレーションシーケンサ4002に
割り付けることで、これらのマスタは他のマスタより、
より高い確率でバスの使用権を取得することが出来る。
さらに、いくつかのリクエストを低優先シーケンサ40
04に接続することで、これらのバスの使用率を低く抑
える事が出来る。さらに、バスの取得機会確率の調整に
加え、高優先シーケンサ4002に割り当てられたマス
タは、連続してバスを使用する事ができ、連続して使用
出来る回数をプログラマブルなレジスタ4005aによ
り可変する事ができる。これは、バスの占有率を調整で
き、ある特定のマスタにより多くの時間バスを使用させ
る様に出来る事を意味する。
【0208】(公平バスアービトレーション方式)中優
先シーケンサ4003を例にとり、公平アービトレーシ
ョンの実現方法を説明する。一つのシーケンサに接続さ
れたすべてのバスマスタは同じ優先順位にあり、バス権
を与えられる機会は公平である。バスがフリーの時は、
一番最初にリクエストを出したバスマスタがバス権を得
ることができる(ファーストカムファーストサーブ)。
また、複数のバスマスタが同時にリクエストを出した場
合は、あらかじめ決められた順序にしたがって順次バス
権が与えられる(同時リクエスト発行時ラウンドロビ
ン)。例えば、M1からM7までのすべてのバスマスタ
が同じクロックでリクエストを出した場合は、M1→M
2→M3→M4→M5→M6→M7といった順序でバス
権が与えられる。M7のトランザクションの終了時に再
びすべてのバスマスタがリクエストを出している場合
は、M1→M2→M3→M4→M5→M6→M7→M1
→M2というように、同様の順序でバス権を与えてい
く。一部のバスマスタがリクエストを出している場合
は、M7からM1へラウンドラップするとして、最後に
バスを使用したマスタにもっとも近い大きい番号を持っ
たマスタへグラントを与える。
【0209】(優先アービトレーション)Bバスインタ
ーフェースは、高優先、中優先、低優先の3つのアービ
トレーションシーケンサが存在する。優先順位をつけた
アービトレーションは、複数のバスリクエストを選択的
に、高優先、低優先、のアービタに割り振ることにより
実現される。
【0210】たとえば、ひとつのマスタを高優先に割り
当て、残りを中優先に割り当てることにより、ひとつの
バスマスタが他のバスマスタよりも高い優先権を持つ優
先バスマスタになり、他のバスマスタに比べ優先的にバ
ス権が与えられる。同じ優先権のアービトレーションシ
ーケンサに割り当てられたバスマスタの優先順位はすべ
て同じである。
【0211】複数のバスマスタがリクエストを出してお
り、また優先バスマスタが連続してリクエストを行う場
合、優先バスマスタと他のバスマスタは交互にバス権を
得る。M3が優先マスタでM1,M2,M3,M4がリ
クエストを出し続けた場合M3→M1→M3→M2→M
3→M4→M3→M1の順でバス使用権を与える。
【0212】また、高優先バスマスタは、アービタ内の
プログラマブルなレジスタにあらかじめ設定された回数
だけ連続したバス権を得ることができる。連続したバス
を使用出来る回数は最大で4回である。
【0213】優先バスマスタ以外のバスマスタから他の
バスマスタにバス権が移ると、そのバスマスタは、他に
リクエストを出しているすべてのバスマスタにバス権を
与えた後でないと再びバス権を得ることができない。ひ
とつのバスマスタが連続してリクエストを行う場合、他
にリクエストを行っているバスマスタがいなければ、連
続してバス権を得ることができるが、他のバスマスタが
リクエストを行っていれば、そのバスマスタはあらかじ
め設定された回数だけ連続してバス権を得ることができ
る。一度バス権が他のバスマスタに移ると、他にリクエ
ストを出しているすべてのバスマスタにバス権を与えた
後でないと再びバス権を得ることができない。
【0214】低優先アービトレーションシーケンサ40
04には最大3本のリクエストを割り当てる事が出来
る。低優先シーケンサ4004に割り当てられたマスタ
へは、中優先、高優先シーケンサに割り当てられた、す
べてのマスタのリクエストがなくならないと、バスの使
用権が与えられない。このシーケンサへのバスマスタの
割り当ては十分な注意を持って行われなければならな
い。
【0215】(優先バスマスタの切り替え)優先バスマ
スタの切り替えを行なうには、アービタ内のレジスタを
書き換えればよい。優先バスマスタを選択するレジスタ
が書き換えられると、その時に実行中のトランザクショ
ンの終了を待って、優先バスマスタが切り替えられる。
アービタのステートはアイドル状態にもどり、その時点
でリクエストを出していたバスマスタは、その時同時に
リクエストを出したものとして、あらためてアービトレ
ーションが行われる。
【0216】切り替えには十分注意を払う必要がある。
優先させるべきバスマスタのDMAが終了しないうち
に、異なったバスマスタに優先バスマスタを切り替えて
しまうと、最初の優先バスマスタのDMAの優先度が下
がってしまう。もしも最初の優先バスマスタの優先度を
下げたくないのであれば、DMAが終了したのを確認し
てから優先バスマスタの切り替えを行なう必要がある。
【0217】優先バスマスタ切り替えを、システムブー
ト時のみでなく、システム稼働中も動的に行なう必要の
あるソフトウェアでは、優先バスマスタの切り替えは、
いったんBバス上に新たなDMAリクエストが発生しな
いよう、すべてのバスマスタ及びDMAコントローラに
対する設定を中止し、その後、Bバスアービタ407内
のレジスタに適切な値をセットし、さらに、Bバスアー
ビタ内のステータスレジスタをチェックし、バスマスタ
の優先権が切り替わったのを確認した上で新たなBバス
上へのアクセス及びDMAの起動を行うべきである。
【0218】優先バスマスタの動的切り替えは、オペレ
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは、違反させてしまう可能性があり、
十分な考慮の上行われなければならない。
【0219】(アクセス順序制御機構)Bバスアービタ
407はアクセス順序制御機構を含む。アクセス順序制
御機構は、同期ユニット4001と、Bバスアービタ4
07,Gバスアービタ406内に組み込まれたバス使用
権発行抑制機構によって実現される。Bバスアービタ4
07内に組み込まれたバス使用権発行抑制機構は、Gバ
スアービタのそれと同様に動作する。つまり、stop
Pci信号が入力された場合は、Pciバスマスタから
のバスリクエストが発行され、アービトレーションの結
果、このマスタにバスの使用権を与えることが可能な状
態でも、バスの使用権発行は行わず、他のマスタへバス
使用権をあたえる。具体的には、stopPci信号が
入力された場合は、直ちにbPciReq Lをマスク
することにこれを行う。
【0220】LANコントローラ414からのバスリク
エストおよび、ストップ信号の場合もまったく同様に動
作する。図41に同期ユニット4001のブロック図を
示す。同期ユニット内には複数のDMAマスタ間すべて
の組み合わせに関して、それぞれコンペアユニット41
01〜4103が接続される、DoEngineでは、
Gbus上のDMAマスタはスキャナコントローラ/プ
リンタコントローラのみ存在する。Bバス上には、DM
APCIユニット、LANユニットの二つが存在する。
SBB内のBバスインターフェースはBバス上のバスマ
スタであるが、メモリには直接アクセスしないので、同
期ユニット4001にはIDと転送先アドレスを出力し
ない。
【0221】図42に同期ユニット内の一つコンペアユ
ニット(ComparationUnit 1)を以下
に示す。他のコンペアユニットも同様の構成を有する。
【0222】PCIインターフェース416に付属する
DMAブロックもしくは、スキャナコントローラ/プリ
ンタコントローラから、同期ユニット4001に対し、
DMAライトがプログラミングされた時点で、転送先の
アドレスとそのDMAブロック固有のリクエスト信号が
通知される。
【0223】各コンペアユニットは、各DMAブロック
からリクエストが出力された時点で、アドレスを内部に
持つタイマによる現在時刻とともに記憶する、次に他の
DMAブロックから、DMAライトに関するアドレスと
リクエストが入力された時点で、コンペアユニットは両
アドレスを比較する。一致した場合にはさらに、それぞ
れのレジスタに格納された時間を比較し、時間的に後か
らDMAライトの要求を出してきたDMAブロックが接
続されたバスのバスアービタに対し、このマスタに対す
るバス使用強化を与えないようにする。これは、sto
p(ID)という信号により各バスのバスアービタに通
知される。
【0224】各バスアービタはstop(ID)信号に
より通知されたマスタに対しては、アービトレーション
によるバス使用権の割り当てを行わない。
【0225】時間が経過し、先にアクセス要求を行った
バスマスタにより当該メモリアドレスへのDMAライト
が終了すると、先のマスタは、同期ユニットに対するリ
クエストを取り下げる、同期ユニットは、2番目にDM
Aライトの要求を出した、DMAブロックの接続するバ
スのバスアービタに対し、このDMAブロックへの、バ
ス使用権許可禁止信号の発行をとりさげる。そして、後
からDMAライトを行うべきマスタのDMAライトが行
われる。
【0226】双方のDMAライトが終了し、双方のリク
エストが取り下げられると、タイマーがリセットされ
る。タイマーのカウントアップは再度どちらかのマスタ
からのリクエストが出力された時点で再度行われる。
【0227】2.9.スキャナコントローラ/プリンタ
コントローラ 図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バス スキャナとプリンタの、画像データおよび水平、垂直同
期のための同期信号を直結するためのバスである。
【0228】2.9.1.スキャナコントローラ 図44にスキャナコントローラ4302のブロック図を
示す。スキャナコントローラ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である。
【0229】なお、スキャナから入力する画像データの
種類は、 1.RGB各8ビットのカラー多値データ 2.8ビット白黒多値データ 3.1ビット白黒2値データ などが含まれる。
【0230】次に、スキャナコントローラを構成する各
ブロックの概要を説明する。
【0231】[1.スキャナデバイスI/Fの概要]図
45に、スキャナデバイスI/F4401のブロック図
を示す。スキャナデバイスI/Fは、スキャナユニット
のスキャナビデオI/F4501との間で信号を入出力
する入出力ポートである。スキャナビデオI/Fからの
入力ビデオ信号SVideoR[7:0],SVide
oG[7:0],SVideoB[7:0]の各信号
を、スキャナコントローラコントロールレジスタ440
4からのVDInvt信号に応じて、レベル反転するか
どうかを切り替えることが可能である。
【0232】[2.スキャナビデオクロックユニットの
概要]図46に、スキャナビデオクロックユニット44
02のブロック図を示す。スキャナビデオクロックユニ
ット4402は、スキャナからのビデオクロックで動作
するブロックである。以下のブロックから構成される。 1.スキャナビデオデータマスク4601 スキャナからの画像データに対してデータマスクを行う
ブロックである。マスクされたデータはレジスタに設定
された値のデータとなる。 2.スキャナビデオ同期コントロールユニット4602 スキャナからのビデオクロック,VSYNC,HSYN
Cの信号から、画像データを取り込むタイミング信号等
を生成するブロックである。画像データの水平方向、垂
直方向のデータ数とライン数を管理する。 3.ビデオデータ幅コンバータ スキャナから入力した画像データを64ビット幅のデー
タにパッキングして変換するブロックである。
【0233】(スキャナビデオデータマスクの概要)図
47にスキャナビデオデータマスク4601のブロック
図を示す。スキャナビデオデータマスク4601は、ス
キャナから入力する画像データに対してピクセル単位で
マスクを行う。マスクされた画像データはレジスタによ
り設定された値となる(RDMask[7:0],GD
Mask[7:0],BDMask[7:0])。
【0234】(スキャナビデオ同期コントロールユニッ
トの概要)図48にスキャナビデオデータマスク460
2のブロック図を示す。スキャナビデオ同期コントロー
ルユニット4602は、スキャナから入力される画像デ
ータの垂直同期信号(SVSYNC)、水平同期信号
(SHSYNC)、画像データ同期クロック(GTSV
CLK)により、取り込む画像データのイネーブル信号
(IVE)を生成する。また、画像データの主走査方向
の遅延、取り込みピクセル数、副走査方向の遅延、取り
込みライン数を管理する。さらに、設定量の画像データ
取り込みを終了したタイミングでの状態信号(PEND
P)を生成する。
【0235】ラインカウンタ4801は副走査方向の遅
延と取り込みライン数を管理して、画像読み取り有効ラ
インの垂直同期信号(EH)を生成する。ピクセルカウ
ンタ4802は主走査方向の画像取り込み遅延と取り込
み画素数を管理する。ページカウンタ4803は入力す
る画像データをページ単位で管理する。設定されたペー
ジ数分の画像データ入力を終了すると、終了信号(AL
LPEND)を生成する。
【0236】(スキャナビデオデータ幅コンバータ46
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ビットデータへのならべかたとメモリ上でのならび
かたは以下のとおりである。
【0237】1.RGB各8ビットのカラー画像データ
(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の通りである。
【0238】2.RGB各8ビットのカラー画像データ
(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の通りである。
【0239】3.多値8ビットの白黒画像データ 第1ピクセル8ビット→ビット63−56 第2ピクセル8ビット→ビット55−48 第3ピクセル8ビット→ビット47−40 第4ピクセル8ビット→ビット39−32 第5ピクセル8ビット→ビット31−24 第6ピクセル8ビット→ビット23−16 第7ピクセル8ビット→ビット15−8 第8ピクセル8ビット→ビット7−0 メモリ上でのならびは、図52の通りである。
【0240】4.2値1ビットの白黒画像データ 第1ピクセル1ビット→ビット63 第2ピクセル1ビット→ビット62 第3ピクセル1ビット→ビット61 第4ピクセル1ビット→ビット60 第61ピクセル1ビット→ビット3 第62ピクセル1ビット→ビット2 第63ピクセル1ビット→ビット1 第64ピクセル1ビット→ビット0 メモリ上でのならびは、図53の通りである。
【0241】次に、各パッキングユニットについて説明
する。
【0242】図54は、BW8パッキングユニット49
01により、多値8ビットの白黒画像データを64ビッ
ト幅に変換する際のタイミング図である。スキャナから
の8ビット白黒画像データR[7:0]は、信号VEが
ハイレベルになると取り込まれ、1ピクセルずつ信号L
P0〜LP7に同期して64ビットラッチにラッチされ
る。8画素分揃うと、信号LP64に同期して、ラッチ
された8画素64ビットが信号BW8[63:0]とし
て出力される。
【0243】図55は、シフトレジスタ4902により
2値白黒画像データを64ビット幅に変換する際の画像
データ入力のタイミング図である。スキャナからの2値
白黒画像データR7(SVIDEOR0)は、信号VE
がハイレベルになると取り込まれ、1ビットずつシフト
レジスタによりシフトされて、64ビット取り込まれる
と。信号SVLATCH64に同期して、信号BW1
[63:0]として出力される。
【0244】図56は、RGBパッキングユニット49
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]と
する方法である。
【0245】データラッチ5701A,Bに、ラッチ信
号に同期させて交互に24ビット画像データをラッチ
し、上記3通りの選択の仕方を順に切り換えることで、
データセレクタ5702からの出力は、24ビット/ピ
クセルのデータを32ビットにまとめたデータとなる。
ただし、上記第3の方法でセレクタ5702のデータが
選択された後は、データセレクタに入力された2つのピ
クセル分のデータは両方とも更新されねばならない。そ
こで、図56に示されている通り、選択信号SELUL
[3:2]は1クロック分遅延される。
【0246】このようにデータセレタタ5702で32
ビット幅に一旦変換されたデータは、データラッチ57
40A,Bに交互にラッチされ、データラッチ5704
Bの内容が更新されたタイミング、すなわちラッチ信号
SELUL1がハイレベルになるタイミングで、64ビ
ット幅に変換されたデータとして出力される。
【0247】[3.スキャナ画像データ転送FIFOコ
ントローラ4403の概要]図58に、スキャナ画像デ
ータ転送FIFOコントローラ4403のブロック図を
示す。このブロックは、スキャナから入力された画像デ
ータをGバスもしくはBバスを介して転送するためのバ
ッファとしてのFIFO5801と、そのFIFO58
01をコントロールする回路から構成されている。FI
FOとしては、容量512バイト(64ビット×64)
のFIFOを備える。FIFOのデータ出力は、スキャ
ナFIFOライトリードアービタ5802が、FIFO
5801のエンプティフラグ(EF)を監視しながら制
御する。FIFOのデータ入力はスキャナビデオクロッ
クユニット4402からの要求信号(WREQ)により
おこなわれる。
【0248】[4.スキャナコントローラコントロール
レジスタ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に出力
する。
【0249】[6.メモリフィルモードコントローラ4
405の概要]図61にメモリフィルモードコントロー
ラ4405のブロック図を示す。このブロックは、レジ
スタに設定された固定データをGBIを介してメモリに
転送するモードを制御する。このモード設定はMemf
ill信号によりおこなわれる。固定データの転送モー
ド指定がなされると、sccGBIに出力されるデータ
は、レジスタに設定されたデータ(MFData[3
1:0])が選択される。また、sccGBIにデータ
転送するタイミング信号(sccWrite)はこのブ
ロック内で生成される。
【0250】(sccIF−バス)sccIF−バス
は、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
アサートと同時に有効となり、スキャナコントローラ内
部レジスタへのアクセスであれば、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
Lを返さない限り、次のアクセスのアサートはされ
ない。 ・sccRegDataOut[31:0] :OUT Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタをリードアクセスする場合
の32ビットデータバスである。sccRegAck
L信号がアサートされているときに有効となる。 ・sccRegDataIn[31:0] :IN Gバス/BバスI/Fユニット(GBI)からスキャナ
コントローラ内部のレジスタをライトアクセスする場合
の32ビットデータバスである。sccRegStar
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信号がアサートされた次のクロックからセ
ンスされる。
【0251】なお、信号sccRst1 L,sccバ
イトEn[7:0],sccRead,sccData
In[63:0]は、IFバスに含まれているものの、
スキャナコントローラでは未使用である。
【0252】図62及び図63は、上述の信号のタイミ
ングの一例を示すタイミングダイアグラムである。図6
2はスキャナコントローラ4302からデータを読み出
してDMA転送する際のタイミングであり、図63は、
スキャナコントローラ4302の内部レジスタに対して
読み出しあるいは書き込みを行うタイミングである。
【0253】(パワーマネジメント)スキャナコントロ
ーラ内部では、スキャナ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B00500
0)の設定に応じたビデオクロック(SVCLK)のゲ
ートコントロールを行い、それによりパワーマネージメ
ントを行う。パワーマネジメントユニット(PMU)4
09に出力するPMステート信号(sccPmStat
[1:0])の値は、Gバス/BバスI/Fユニット4
301Aから入力されるsccDmaPmState
[1:0]の状態とクロックの状態とを合わせて決定さ
れる。sccPmState[1:0]は図64のとお
りである。
【0254】図64において、sccDmaPmSta
te[1:0]は、スキャナのGバス/Bバスインター
フェースGBI sccのパワー消費状態を示してい
る。GBI secにはパワー消費状態00〜11の4
段階がある。この状態信号sccDmaPmState
[1:0]は、GBI sccからスキャナコントロー
ラへ出力されている。
【0255】また、スキャナコントローラのパワー消費
状態は2段階あり、内部信号SPStatで示される。
【0256】信号sccPmstate[1:0]は、
GBI sccとスキャナコントローラの2つの状態を
あわせた状態を示している。この信号がシステムのパワ
ーマネージメントユニットに出力される。すなわち、ス
キャナコントローラの電力消費状態は4段階でパワーマ
ネジメントユニットに伝えられる。その段階は信号sc
cPmstate[1:0]の値で示される。値00が
最低レベルであり、1増えるごとに示される電力消費量
は大きくなる。
【0257】(スキャナコントローラコアインターフェ
ース)図65は、スキャナコントローラ4302におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、スキャナコントローラ4302は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接
続されている。
【0258】2.9.2.プリンタコントローラ 図66にプリンタコントローラ4303のブロック図を
示す。プリンタコントローラはビデオ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である。
【0259】プリンタへ出力する画像データの種類は次
の5種類である。 1.RGB各8ビットのカラー多値データ(点順次) 2.8ビット白黒多値データ 3.1ビット白黒2値データ 4.CMYK各1ビットのカラーデータ(面順次) 5.CMYK各8ビットのカラーデータ(面順次) 次に、プリンタコントローラを構成する各ブロックの概
要を説明する。
【0260】[1.プリンタデバイスI/Fの概要]図
67にプリンタデバイスI/F6601のブロック図を
示す。このブロックは、プリンタビデオI/Fおよびオ
プションコントローラI/Fから信号を入出力する入出
力ポートである。PビデオR[7:0],PビデオB
[7:0]の各信号はVDInvt信号により、出力信
号をレベル反転するかどうかを切り替えることが可能で
ある。
【0261】[2.プリンタビデオクロックユニットの
概要]図68にプリンタビデオクロックユニット660
2のブロック図を示す。このブロックは、プリンタから
のビデオクロックで動作し、以下のブロックから構成さ
れる。 1.プリンタビデオデータマスク6801(DFF8E
NMask) プリンタへの画像データに対して、データマスクを行う
ブロック。マスクされたデータはレジスタに設定された
値のデータとなる。 2.プリンタビデオ同期コントロールユニット6802
(Prc syncユニット) プリンタからのビデオクロック,VSYNC,HSYN
Cの信号から、画像データを出力するタイミング信号等
を生成するブロック。画像データの水平方向、垂直方向
のデータ数とライン数を管理する。 3.プリンタビデオデータ幅コンバータ6803(pv
dwconv) IFバスからの64ビット幅で送られてくる画像データ
を、モードにより、RGB24ビット、白黒8ビット、
白黒1ビットのデータに変換するブロック。モード設定
はレジスタにより行う。
【0262】(プリンタビデオデータマスク)図69に
プリンタビデオデータマスク6801のブロック図を示
す。このブロックは、プリンタへ出力する画像データに
対して、ピクセル単位でマスクを行う。マスクされた画
像データはレジスタに設定された値となる(RDMas
k[7:0],GDMask[7:0],BDMask
[7:0])。
【0263】(プリンタビデオ同期コントロールユニッ
ト)図70にプリンタビデオ同期コントロールユニット
6802のブロック図を示す。このブロックは、プリン
タへ出力する画像データの垂直同期信号(TOP)、水
平同期信号(INPHSYNC)、画像データ同期クロ
ック(GTVCLK)により、出力する画像データのイ
ネーブル信号(VDOEN)、プリンタ画像データ転送
FIFOコントローラ6603にデータの要求をする信
号(RREQ)を生成する。
【0264】また、画像データの主走査方向の遅延、取
り込みピクセル数、副走査方向の遅延、取り込みライン
数を管理する。ラインカウンタ7001は設定量の画像
データ出力を終了したタイミングでの状態信号(PEN
DP)を生成する。また、副走査方向の遅延と出力ライ
ン数を管理して、画像出力有効ラインの垂直同期信号
(EH)を生成する。ピクセルカウンタ7002は主走
査方向の画像出力遅延と出力画素数を管理する。ページ
カウンタ7003は出力する画像データをページ単位で
管理する。設定されたページ数分の画像データ出力を終
了すると、終了信号(ALLPEND)を生成する。
【0265】(プリンタビデオデータ幅コンバータ)図
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ビットデータのメモリ上でのならびかたは以下のと
おりとなる。
【0266】1.RGB各8ビットのカラー画像データ
(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に示した通り
となる。
【0267】2.RGB各8ビットのカラー画像データ
(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に示した通り
となる。
【0268】3.多値8ビットの白黒画像データ 第1ピクセル8ビット→ビット63−56 第2ピクセル8ビット→ビット55−48 第3ピクセル8ビット→ビット47−40 第4ピクセル8ビット→ビット39−32 第5ピクセル8ビット→ビット31−24 第6ピクセル8ビット→ビット23−16 第7ピクセル8ビット→ビット15−8 第8ピクセル8ビット→ビット7−0 この場合、メモリ上でのならびは、図74に示した通り
となる。
【0269】4.2値1ビットの白黒画像データ 第1ピクセル1ビット→ビット63 第2ピクセル1ビット→ビット62 第3ピクセル1ビット→ビット61 第4ピクセル1ビット→ビット60 第60ピクセル1ビット→ビット4 第61ピクセル1ビット→ビット3 第62ピクセル1ビット→ビット2 第63ピクセル1ビット→ビット1 第64ピクセル1ビット→ビット0 この場合、メモリ上でのならびは、図75に示した通り
となる。
【0270】次に、プリンタビデオデータ幅コンバータ
を構成するブロックについて説明する。
【0271】(RGBoutユニット7101)図76
にRGBoutユニット7101のブロック図を示す。
このブロックは24ビットモードでパックされた64ビ
ット幅のデータをRGB各8ビットのカラー画像データ
に変換するユニットである。
【0272】[3.プリンタ画像データ転送FIFOコ
ントローラの概要]図77にプリンタ画像データ転送F
IFOコントローラ6603のブロック図を示す。この
ブロックは、プリンタへ出力する画像データをGBI
(Gバス/BバスI/F)を介して転送するためのバッ
ファとしてのFIFOと、そのFIFOをコントロール
する回路でらう。容量512バイト(64ビット×6
4)のFIFO7701を備える。FIFOのデータ入
力は、プリンタFIFOライトリードアービタ7702
がFIFO7701のフルフラグ(FF)を監視しなが
ら制御する。FIFOのデータ出力はプリンタビデオク
ロックユニット6602からの要求信号(RREQ)に
よりおこなわれる。
【0273】[4.プリンタコントローラコントロール
レジスタユニット]図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に出力する。
【0274】[6.プリンタコマンド/ステータスコン
トロールユニット]図81に、プリンタコマンド/ステ
ータスコントロールユニット6606のブロック図を示
す。このブロックは、プリンタを制御するためのシリア
ルコマンド/ステータスを送受信するブロックである。
【0275】シリアルコマンドとしては、コマンドを送
信している期間をあらわすINPCBSY信号、シリア
ルコマンドの同期クロックであるINPCCLK信号、
シリアルコマンドINPSRCMD信号が生成される。
【0276】シリアルステータスとしては、ステータス
が送信されている期間を示すINPSBSY信号、シリ
アルステータスINPSRSTS信号が入力されて、8
ビットのステータスPSRSTAT[7:0]を出力す
る。シリアルステータスを入力するための同期クロック
はプリンタから出力されるINPPCLK信号、また
は、本ブロックで生成されるPCCLK信号のどちらか
を選択可能である。選択はPSRCLKMode信号に
よりなされる。
【0277】[7.オプションコントローラコントロー
ルユニット]図82に、オプションコントローラコント
ロールユニット6607のブロック図を示す。このブロ
ックは、オプションコントローラに対して、送信データ
(TX)を出力するユニットである。TX送信のため
の、INSTROBE信号、INCKEN信号、CLK
(OPCLK)信号を生成する。また、TX送信と同時
に、受信データ(RX)の受信を行う。
【0278】(prcIF−バス)prcIF−バス
は、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
アサートと同時に有効となり、プリンタコントローラ内
部レジスタへのアクセスであれば、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信号がアサートされた次のクロックからセン
スされる。
【0279】なお、信号prcReq0 L,prcバ
イトEn[7:0],prcWrite,prcDat
aOut[63:0],prcReadEnable
は、プリンタコントローラでは未使用となる。
【0280】図83及び図84は、上述の信号のタイミ
ングの一例を示すタイミングダイアグラムである。図8
3はプリンタコントローラ4303へデータをDMA転
送する際のタイミングであり、図63は、プリンタコン
トローラ4303の内部レジスタに対して読み出しある
いは書き込みを行うタイミングである。
【0281】(パワーマネジメント)プリンタコントロ
ーラ内部では、プリンタ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B00700
0)の設定に応じたビデオクロック(VCLK)のゲー
トコントロールを行い、それによりパワーマネージメン
トを行う。パワーマネジメントユニット(PMU)40
9に出力するPMステート信号(prcPmStat
[1:0])の値は、Gバス/BバスI/Fユニット4
301Bから入力されるprcDmaPmState
[1:0]の状態とクロックの状態とを合わせて決定さ
れる。prcPmState[1:0]は図85のとお
りである。
【0282】図85において、prcDmaPmSta
te[1:0]は、プリンタのGバス/Bバスインター
フェースGBI prcのパワー消費状態を示してい
る。GBI prcにはパワー消費状態00〜11の4
段階がある。この状態信号prcDmaPmState
[1:0]は、GBI prcからプリンタコントロー
ラへ出力されている。
【0283】また、プリンタコントローラのパワー消費
状態は2段階あり、内部信号PPStatで示される。
【0284】信号prcPmstate[1:0]は、
GBI prcとプリンタコントローラの2つの状態を
あわせた状態を示している。この信号がシステムのパワ
ーマネージメントユニットに出力される。すなわち、プ
リンタコントローラの電力消費状態は4段階でパワーマ
ネジメントユニットに伝えられる。その段階は信号pr
cPmstate[1:0]の値で示される。値00が
最低レベルであり、1増えるごとに示される電力消費量
は大きくなる。
【0285】2.9.3 Gバス/BバスI/Fユニッ
ト(GBI) 図92は、Gバス/BバスI/Fユニット4301のブ
ロック構成図である。Gバス/BバスI/Fユニット
は、スキャナ及びプリンタのそれぞれに用意されている
が、その構成は同じであるため、ここでまとめて説明す
る。
【0286】図92において、GBI4301は、GB
usと接続してこれを制御するGBusコントローラ
と、BBusと接続してこれを制御するBBusコント
ローラとを含む。これらの間には、DMAアドレスを制
御するDMAコントローラ9205のほか、機能ブロッ
クとGBus/BBusとの間をデータ転送に用いられ
るFIFO9204、種々の設定値が書き込まれるレジ
スタユニット9206が含まれる。このうち、GBUS
コントローラとFIFO9204は、GBusにあわせ
て100MHzのクロックで動作し、その他のブロック
はBBusにあわせて50MHzで動作する。
【0287】GBI4301は、GBusとBBusの
両方に接続されるべき機能ブロック(SCC:スキャナ
コントローラとPRC:プリンタコントローラ)の、G
BusとBBusの選択的接続及び、両バスのインター
フェースを提供する。GBIと各機能ブロックの間は、
IFBus9201で接続される。機能ブロックでは、
データの入出力先がGBusかBBusかを意識する必
要はない。また、GBI側でDMAをサポートするの
で、機能ブロック側でアドレスを発生する必要もない。
GBIは、各機能ブロックで共通に必要となる機能をま
とめて、独立のユニットにしたものである。
【0288】GBIがサポートするIFBus9201
に接続される機能ブロックは、連続したデータを受け取
る、あるいは送り出すものとする。IFBusにアドレ
ス信号は含まれていない。GBIでは、Channel
0(GBus/BBuS→IFBus0)とChann
el1(GBus/BBus→IFBus1)の2つの
チャネルが用意され、それぞれに、DMAコントローラ
が用意されている。ただし、スキャナコントローラで
は、Channel0のみを、プリンタコントローラで
は、Channel1のみを使用(実装)する。
【0289】DMAコントローラ9205は、I/O
(アドレス固定)とメモリに対する設定が可能で、メモ
リの場合は、連続物理アドレスとチェーンテーブル方式
(後述)のDMAが設定できる。
【0290】GBIは、データを、FIFOを介して機
能ブロックと入出力する。したがって、GBIがスレー
ブモードとして動作する場合、GBIのアドレスは、G
Bus側が、0x18n0 0000〜0x18n0
007F、BBus側が、0x19n0 0000〜0
x19n0 001Fのみで同じロケーションがアクセ
スされる。FIFOを使用しているため、バースト転送
時のラップアラウンドに対応するのが困難である。BB
usのラップアラウンドを伴うバースト転送要求に対し
ては、シングルアクセスとして応答する。GBusのラ
ップアラウンドを伴う転送要求に対しては応答しない。
【0291】なお、GBI間で画像データのDMA転送
を行う場合には、それぞれのDMAコントローラにより
制御が行われる。この際に、いずれの側がマスタになる
かは特に決めないが、よりデータ転送のタイミングが厳
格な方がマスタになることが望ましい。このため、本実
施例では、GBI PRCをマスタにし、GBI SC
CをスレーブにしてDMA転送を行っている。
【0292】GBI(GBus/BBusインターフェ
ース)は、 1.機能ブロックとのデータの受け渡しをするFifo
ユニット 2.GBusに直結され、GBusとFifoユニット
をつなぐGBusコントローラ9202 3.BBusに直結され、BBusとFifoユニット
をつなぐBBusコントローラ9203 4.マスタモードの時に、DMA転送要求を各バスコン
トローラに発行するDMAコントローラ9205 5.レジスタの内容を保持し、各ブロックに信号を送る
レジスタユニット9206 から構成される。レジスタユニット内には、割込み制
御、パワー制御部も含んでいる。以下に、各部の説明を
する。
【0293】<Fifoユニット>図93に示したFi
foユニットは、GBus/BBusとIFBusとの
間の転送データのバッファとなる部分である。Fifo
ユニットは、互いに独立したFifoユニット0とFi
foユニット1とから構成される。Fifoユニット0
はIFBusからのデータ入力及びGBusあるいはB
Busへのデータ出力のために用いられ、Fifoユニ
ット1はGBusあるいはBBuSからのデータ入力及
びIFBusへのデータ出力のために用いられる。
【0294】信号scGbiFifo0Clkあるいは
scGbiFifo1Clkはゲーテッドクロックで、
クロックを止めることで省電力モードを実現する。この
クロックは、GBI FIFOレジスタをライトするこ
とにより停止し、マスタモードかスレーブモードに入る
時に自動的に起動する。
【0295】[Fifoユニット0]Fifoユニット
0は、IFBus0(IFBusの仕様については後
述)からのデータをFifoに書き込み、GBus/B
Busに送り出す。信号ifDataOutB[63:
0]、ifWriteB、ifWriteEnable
Gは、IFBusと接続される。
【0296】このFifoユニット0が有するFifo
0は、IFBusからの64ビットデータを入力とし、
GBus用の64ビットデータDataOut64とB
Bus用の32ビットデータDataOut32を出力
する、64ビット×17段のFifoである。
【0297】Fifoユニット0から出力されるステー
タス信号には次のような信号がある。 ・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と接続され、機能ブ
ロックにライト可能であることを伝える。
【0298】また、Fifo0からのGBusの64ビ
ットデータのリードは、Fifo0に入力されている信
号Rd64を使い、BBusの32ビットデータのリー
ドは、信号Rd32を使う。どちらのリードによって
も、ステータス信号及び、Fifo0からの出力データ
であるDataOut64とDataOut32は更新
される。
【0299】(B2Gブロック)I/Fバス及びBBu
sのクロックは50MHzであり、GBusのクロック
は100MHzである。このため、Fifoユニット0
に含まれる不図示のB2Gなるブロックにより、IFB
usクロックに同期した書込み信号ifWriteFi
foB、あるいはBBUsクロックに同期した読出し信
号bReadFifoBの1クロック分を、Fifoユ
ニットのクロック(IFBusの2倍の周波数)のクロ
ックに変換する。
【0300】(ChkIllegalブロック)Fif
o0は、GBus/BBusにより共有される。マスタ
ーモードでは、DMAコントローラがGBus/BBu
sの排他使用を制御しているが、スレーブモードでは、
DMAマスターが排他使用を制御しなければならない。
このため、Fifoユニット0に含まれるChkIll
egalブロックでは、GBusとBBusから同時に
Fifo0にアクセスされた場合に、信号fifoEr
rorGをアサートする。すなわち、Gbusからの読
出し信号gReadFisoG、あるいはBBusから
の読出し信号bReadFisoBが同時にアサートさ
れると、信号fifoErrorGをアサートする。こ
の信号は、レジスタユニットでラッチされ、マスクされ
ていなければ、割り込みを発生する。
【0301】[Fifoユニット1]Fifoユニット
1は、GBus/BBusからのデータを内蔵するFi
fo1に書き込み、IFBus1に送り出す。ifDa
taIng[63:0],ifByteEnG[7:
0],ifReadB,ifReadEnableG
は、IFBusと接続される。
【0302】Fifoユニット1では、マスタモードで
の逆方向DMAに対応するために、Fifo1の前段に
フロントバッファを設けてある。逆方向DMA(入力信
号reverseMODEがイネーブル)の時には、フ
ロントバッファにいったんバッファしてから、逆順でF
IFOにデータを送り出す。それ以外のモード(信号r
everseMODEがディスエーブル)の時には、通
常のFIFOとして機能する。
【0303】(フロントバッファ)GBusまたは、B
Busからのデータを入力とし、Fifo1へ出力す
る、バイトイネーブル付き64+4ビット×4段のバッ
ファである。BBusからの書き込みでは、データはバ
イトイネーブル信号とともに書き込まれる。GBusか
らの書き込みでは、バイトイネーブルをすべて有効と
し、データが書き込まれる。BBusからの書き込みで
の64ビットへのパッキングは行わない。
【0304】ステータス信号として、フロントバッファ
が空状態であることを示す信号BufEmptyが設け
られている。
【0305】逆方向DMAの時には、信号revers
eMODEがイネーブルであり、転送モードは、DMA
コントローラで、GBusの4beatバースト転送、
あるいはBBusのシングル転送のみに制限される。G
Busの4beatバースト転送のデータは、一度フロ
ントバッファに貯めてから、逆順にして、Fifo1に
データを送り出す(32ビット単位で逆順にする)。
【0306】それ以外のモードの時には、信号reve
rseMODEがディスエーブルであり、4段のFIF
Oとして機能する。入力信号dummyWriteFi
fo1Bは一度ラッチされ、フロントバッファが空にな
った時点で、Fifo1に送られる。
【0307】(Fifo1)Fifo1は、フロントバ
ッファからのデータを入力とし、入力されたデータをI
FBusへ出力する、バイトイネーブル付き64+8ビ
ット×16段のFifoである。BBusからのデータ
は、バイトイネーブル信号とともに書き込まれる。GB
usからのデータは、バイトイネーブルをすべて有効と
し、書き込まれる。BBusからのデータの書き込みで
は、64ビットへのパッキングを行う。
【0308】Fifo1の内部状態と、フロントバッフ
ァの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と接続され、機能ブロックに
リード可能であることを伝える。
【0309】信号Fifo1EnableB1G、Fi
fo1EnableB4G、Fifo1EnableB
8Gは、マスタモード時にはDMAコントローラが、ス
レーブモード時にはBBusコントローラが使用する。
【0310】信号Fifo1EnableG4G、Fi
fo1EnableG16Gは、マスタモード時にはD
MAコントローラが、スレーブモード時にはGBusコ
ントローラが使用する。
【0311】また、Fifoユニット1は、Fifoユ
ニット0と同じく、B2Gブロック及びChkIlle
galブロックを備えている。
【0312】<GBusコントローラ>図94は、Gb
usコントローラ9202のブロック図である。Gbu
sコントローラ9202は、GBIがバスマスタとなっ
てGBusを制御するためのGBusマスタコントロー
ラと、スレーブとなった際の制御を行うためのGBus
スレーブコントローラと、データを制御するためのGB
usデータコントローラと、GBusインターフェース
バッファとを含む。この構成により、GBI4301
は、GBusのマスタあるいはスレーブとして動作する
ことができる。
【0313】[GBusマスタ動作]GBusコントロ
ーラは、GBusマスタコントローラにより、以下のよ
うな手順でGBusマスタとしての制御を行う。
【0314】1.DMAコントローラからの要求 DMAコントローラ9205は、チャネルNの転送が可
能な段階で、gMReq(N)信号を、gMAddr
(N)[31:5]信号、gMBst4Not16
信号とともに、bClk(Bbusクロック信号)で1
クロックだけアサートして、DMA転送を要求する。
【0315】gMAddr(N)[31:5]信号、g
MBst4Not16 N信号は、GBusマスタコン
トローラによりgMDone(N)信号、gMRtry
(N)信号、gMBErr(N)信号のいずれかがアサ
ートされるまで、変化させてはいけない。
【0316】2.GBusアービタへの転送要求 gMReq(N)信号は、GBusマスタリクエストイ
ンターフェースでラッチされる(gLatchReq
(N)信号)。
【0317】各チャネルのgLatchReq信号は、
不図示のGBusマスタリクエストアービタで調停さ
れ、GBusアービタ406に対し、DMA要求信号g
Req L信号をアサートすると同時に、GBusマスタ
アドレスフェーズに、gIntReq(N)信号を送
る。
【0318】3.GBusアービタからの転送許可 GBusアービタ406からのDMA許可信号gGnt
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に転送
が完了したことを伝える。
【0319】また、gRtry信号を検出すると、GB
usマスタリクエストインターフェースは、内部で保持
している要求をクリアすると同時に、gMRtry信号
をアサートする。
【0320】DMAコントローラ49205は、GBu
sコントローラ9202から受けた信号がgMDone
信号であれば、転送アドレスや転送長等を更新する。受
けた信号がgMRtry信号であれば、それらを更新せ
ずに、次のアクションを起こす。gMBErr信号の時
には、DMAコントローラ9202は転送を中止し、マ
スクされていなければ、割り込みを発生する。
【0321】[GBusスレーブ動作]GBusコント
ローラは、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)
信号がネゲートしてあれば、マスタのアクセスに対して
応答しないので、タイムアウトによるバスエラーが発生
する。
【0322】<BBusコントローラ>図95は、BB
usコントローラ9203のブロック図である。BBu
sコントローラ9203は、BBusマスタコントロー
ラと、BBusデータコントローラ、BBusスレーブ
コントローラ及びBBusインターフェースバッファを
含む。この構成により、GBI4301は、BBusの
マスタあるいはスレーブとして動作することができる。
【0323】[BBusマスタ動作] 1.DMAコントローラからの要求 DMAコントローラ9205は、チャネルNの転送が可
能な段階で、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転送が要
求される。
【0324】bMAddr(N)[31:2]信号,b
MBurst(N)信号,bMBst4Not8 N信
号は、Fifoにアクセスを開始する(bReadFi
fo、bWriteFifoがアサートされる)まで変
化させてはいけない。
【0325】また、cMAddr(N)[31:2]信
号は、cMDone(N)信号,cMrtry(N)信
号,cMBErr(N)信号のいずれかがアサートされ
るまで変化させてはいけない。
【0326】2.BBusアービタへの転送要求 BBusbMReq(N)信号及びcMReq(N)信
号は、BBusマスタリクエストインターフェースでラ
ッチされる(bLatchReq(N)信号及びcLa
tchReq(N)信号)。各要求信号は、BBusマ
スタリクエストアービタで調停され、BBusアービタ
407に対してbBReq L信号がアサートされる。
【0327】3.BBusアービタからの転送許可 BBusアービタからの許可信号であるbBGnt
信号がアサートされると、BBusマスタリクエストア
ービタから、対応する要求元のBBusマスタリクエス
トインターフェースに、BGnt(N)信号あるいはC
Gnt(N)信号を送り、bBGnt L信号はネゲー
トされる。BBusマスタリクエストインターフェース
は、bLatchReq(N)信号あるいはcLatc
hReq(N)信号をネゲートし、bTx信号とbSn
oopWait信号を監視し、転送可能な状態になる
と、BMDataRq(N)信号及びCMDataRq
(N)信号をアサートする。この信号は、BBusマス
タシーケンサとBBusデータコントローラに送られ
る。
【0328】4.BBusデータ転送 BBusマスタシーケンサは、BBusマスタがドライ
ブすべきデータ以外のBBusの信号をすべて生成す
る。BMDataRq(N)信号あるいはCMData
Rq(N)信号をトリガにして、bStartOut
L(バーストモードであれば、同時にbBurstOu
L)をアサートし、bRdy(バーストモードであ
れば、bBurstAck)をチェックし、転送終了を
検出する。BBusからFifo、あるいはFifoか
らBBusへのデータの移動は、BMDataRq
(N)信号により、BBusデータコントローラが行
う。
【0329】なお、bRdy信号の前(あるいは同時
に)にbRetry信号を検出すると、BBusデータ
コントローラはデータ転送を行わない。
【0330】5.BBusデータ転送終了(あるいは、
リトライ、バスエラー) BBusデータコントローラは、BBusマスタシーケ
ンサのBMLastData信号でデータの移動を終了
する。また、BBusマスタシーケンサは、BBusデ
ータ転送の終了をDone信号により、BBusリクエ
ストインターフェースへ伝える。リトライあるいはバス
エラーであった場合には、それぞれ、Retry信号、
Error信号で伝える。BBusマスタリクエストイ
ンターフェースは、DMAコントローラに転送が完了し
たことを、[bc]MDone(N)(以下、bまたは
cのいずれかであることを[bc]と表す)で、リトラ
イ、バスエラー場合には、[bc]MRtry(N)信
号、[bc]MBErr信号でそれぞれ伝える。
【0331】DMAコントローラは、信号bReadF
ifo、bWriteFifoにより、転送アドレスや
転送長等を更新し、DMAのBBus転送の終了を示す
bMDone(N)信号か、bMRtry(N)信号
で、次のアクションを起こす。チェーンテーブルの読み
込みの終了を示すcMDone(N)信号は、内部のチ
ェーンテーブルを更新し、cMRtry(N)信号であ
れば、再び転送要求を発行する。
【0332】[bc]MBErr(N)信号の時には、
DMAコントローラは転送を中止し、マスクされていな
ければ割り込みを発生する。
【0333】(バーストモードでのリトライ)信号bS
tart Lと信号bBurst Lの同時アサート
で、スレーブが、信号bRetry Lのアサートなし
に、信号bRdy Lと信号bBurstAck Lの
同時アサートで応答した場合、スレーブはバースト転送
可能と判断される。そのバースト転送中は信号bRet
ry Lはチェックされない。つまり、最初のbRdy
Lのタイミングの時のみ、信号bRetry Lはチ
ェックされる。なお、バースト転送中でも、信号bEr
ror Lは、各クロックでチェックされる。
【0334】(信号bError L、bRetry
L、bRdy Lの同時アサートについて)信号bEr
ror Lがアサートされた場合、信号bRetry
Lがアサートされていても、バスエラーとみなされる。
信号bError Lがネゲートされ、信号bRetr
Lがアサートされた場合、信号bRdy Lがアサ
ートされていてもリトライと見なされる。
【0335】(マスタモード時の信号byteEn
[3:0]について)マスタモード時の信号byteE
L[3:0]は、シングルアクセス、バーストアク
セスの最後の転送以外は、常に、“0000”である。
【0336】[BBusスレーブ動作(レジスタアクセ
ス以外)] 1.マスタからの転送要求 BBusマスタシーケンサは、bStart L信号ア
サートのタイミングで、bAddr信号とbWr L信
号(チャネル0か1)を確認する。GBIへのアクセス
で、bSEnable(N)信号(スレーブモード:レ
ジスタにより設定)がアサートされていれば、bBur
stShortNotLong信号(bBurst
信号がアサートされた時のみ)とReadFifoEn
able1/4/8信号(チャネル0)かWriteF
ifoEnable1/4/8信号(チャネル1)から
転送可能かを判断する。転送可能であれば、bRdyO
ut L信号(バーストモードであれば、bBurst
AckOut L信号も)をアサートし、そうでなけれ
ば、bRetryOut L信号をアサートする。
【0337】マスタのバーストモード(bBurst
L信号がアサート)の要求に対して、Fifoの状態か
ら、バースト転送はできないがシングル転送は可能な場
合は、bRdyOut L信号のみアサートし、シング
ル転送を行う。また、マスタのバーストモード要求がラ
ップアラウンドを発生する場合、GBIがラップアラウ
ンドに対応していないため、可能であればシングル転送
を行う(bBurstAckOut L信号をアサート
しない)。
【0338】2.BBusデータ転送 転送可能であれば、BBusマスタシーケンサは、必要
なクロック分だけ、bRdyOut L信号をアサート
し続ける。バースト転送の場合には、最初のbRdyO
ut L信号のアサートのタイミングで、bBurst
AckOut L信号を1BBusクロックだけアサート
する。また、データの転送開始をBSDataRq
(N)信号で、データの転送終了をbMLastDat
a信号で、BBusデータコントローラに伝える。BB
usからFifoあるいは、FifoからBBusへの
データの移動は、BBusデータコントローラが行う。
【0339】3.BBusデータ転送終了 転送終了を示す信号は特にない。bErrorOut
L信号をアサートすることもない。ただし、bSEna
ble(N)信号がネゲートしていれば、マスタのアク
セスに対して、応答しないので、タイムアウトによるバ
スエラーが発生する。
【0340】[BBusスレーブ動作(レジスタアクセ
ス)]GBI及び機能ブロック内のレジスタのアクセス
はBBusから行う。レジスタのアクセスについては、
GBIのモードや状態によらず、いつでもアクセス可能
である。bRetryOut L、bErrorOut
L信号をアサートすることはない。マスタのバースト
モードの要求に対して、いつでもシングル転送で応答す
る(bBurstAckOut L信号をアサートしな
い)。
【0341】レジスタコントローラ9206は、reg
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)をアサー
トする。
【0342】BBusスレーブジェネレートレディで、
Ack信号からbRdyOut Lを作る。
【0343】(GBIのレジスタアクセス以外のBBu
sのサイクル)GBIのスレーブモードでは、シングル
転送のサイクルはいつも3BBusクロックである。バ
ースト転送は、シングル転送と同じタイミングで、最初
のbRdyOut L信号をアサートし、その後ネゲー
トすることなしに必要なクロック分アサートを続ける。
転送(シングルとバースト)ができない場合は、最初の
bRdyOut Lをアサートするタイミングで、bR
etryOut Lだけアサートする。
【0344】(BBusスレーブジェネレートレディブ
ロック)BBusスレーブジェネレートレディブロック
は、BBusスレーブシーケンサからのChannel
Rdy L信号と、GBIレジスタユニットからのre
gGbiAck L信号と機能ブロッタ(IFBus)
からのregIfAck L信号をORして、クロックで
叩く。
【0345】<IFBusインターフェース>IFBu
sは、GBIと機能ブロックを接続する簡単なバスであ
る。クロックは、bClk(50MHz)を使用する。
ここでいう入力信号とは、機能ブロックからGBIへの
方向の信号である。双方向信号はない。以下にIFBu
sの信号について説明する。“ L”で終わる信号名
は、ローアクティブであることを示す。これは、すでに
説明した部分においても同様である。なお、実際のイン
プリメンテーションでは、信号名の“if”は機能ブロ
ックの名前に置き換える。
【0346】・ifRst0 L(チャネル0),if
Rst1 L(チャネル1)(出力)IFBusのリセ
ット信号である。この信号により、IFBusの状態を
初期状態に戻す。GBIの内部レジスタにより、アサー
トされる。GBIと機能ブロックとの転送に先立って、
必ずアサートする。
【0347】・ifDataOutB[63:0](入
力:チャネル0のみ) 機能ブロックからGBIへのデータ信号である。この信
号は、Fifoユニット0に接続されている(図93参
照)。
【0348】・ifWriteB(入力:チャネル0の
み) 機能ブロックからGBIへのライト信号である。GBI
は、ifWrite信号がアサートされているifCl
kの立ち上がりで、ifDataOut[63:0]を
書き込む。ifWriteB信号をアサートし続けるこ
とで、1クロック単位でデータがライトできる。この信
号は、Fifoユニット0に接続されている(図93参
照)。
【0349】・ifWriteEnableG(出力:
チャネル0のみ) 機能ブロックからGBIへのライト許可信号である。i
fClkの立ち上がりで、ifWriteEnable
G信号がアサートされていれば、次のクロックの立ち上
がりで、ライト可能であることを示す。ifWrite
B信号のアサートは、ifWriteEnableG信
号を確認して行う。この信号は、Fifoユニット0か
ら出力される。
【0350】・ifDataInG[63:0],if
ByteEnG[7:0](出力:チャネル1のみ) GBIから機能ブロックへのデータとバイトイネーブル
信号である。この信号は、Fifoユニット1に接続さ
れている。表8に信号ifByteEnG[7:0]の
各桁とifDataInG[63:0]の各バイトユニ
ットとの対応を示す。
【0351】
【表8】
【0352】・ifRead(入力:チャネル1のみ) GBIから機能ブロックへのリード信号である。GBI
は、ifRead信号がアサートされているifClk
の立ち上がりで、ifDataInG[63:0]とi
fByteEnG[7:0]を出力する。ifRead
信号をアサートし続けることで、1クロック単位でデー
タがリードできる。この信号は、Fifoユニット1に
接続されている。
【0353】・ifReadEnableG(出力:チ
ャネル1のみ) GBIから機能ブロックへのリード許可信号である。i
fClkの立ち上がりで、ifReadEnableG
信号がアサートされていれば、次のクロックの立ち上が
りで、リード可能であることを示す。ifRead信号
のアサートは、ifReadEnableG信号を確認
して行う。この信号は、Fifoユニット1から出力さ
れる。
【0354】・ifRegStart L(チャネル共
通)(出力) BBusのbStart Lをクロックで叩いた信号で
ある。ifRegAddr[31:2]信号、ifRe
gRdNotWr信号ifByteEn L[3:0]
信号とともに1クロックだけアサートされる。機能ブロ
ックの内部レジスタへの書き込みの場合には、信号if
RegDataIn[31:0]も有効となっている。
機能ブロックでは、ifRegStart Lがアサー
トされた時点で、アドレスをチェックし、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
L信号で応答する。そうでなければ、次のifRe
gStart Lのアサートを待つ。この信号は、BB
usコントローラから出力される。
【0355】・ifRegAddr[31:2](チャ
ネル共通)(出力) BBusのbAddr[31:2]をクロックで叩いた
アドレス信号である。信号ifRegStart Lア
サートと同時に有効となり、機能ブロックの内部レジス
タへのアクセスであれば、ifRegAck L信号で
応答する間で有効である。この信号は、BBusコント
ローラから出力される。
【0356】・ifRegByteEn[3:0](チ
ャネル共通)(出力) BBusのbyteEn L[3:0]をクロックで叩
いたバイトイネーブル信号である。信号ifRegSt
art Lアサートと同時に有効となり、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
L信号で応答する間で有効である。機能ブロックの
内部レジスタへの書き込みの場合には、この信号で示さ
れた有効なバイトのみ書き込みを行う。機能ブロックの
内部レジスタからの読み出しの場合には、この信号は無
視され、全バイト出力される。この信号は、BBusコ
ントローラから出力される。表9に、信号ifRegB
yteEn[3:0]の各桁と信号ifRegData
InG[31:0]の各バイトユニットとの対応を示
す。
【0357】
【表9】
【0358】・ifRegRdNotWr(チャネル共
通)(出力) BBusのbWr Lをクロックで叩いた信号で、機能
ブロックの内部レジスタへのアクセスの方向を示す。ハ
イで、機能ブロックの内部レジスタの内容が信号ifR
eqDataOut[31:0]に出力され、ローで、
ifReqDataIn[31:0]のデータが、機能
ブロックの内部レジスタに書き込まれる。信号ifRe
gStart Lアサートと同時に有効となり、機能ブ
ロックの内部レジスタへのアクセスであれば、ifRe
gAck L信号で応答する間で有効である。この信号
は、BBusコントローラから出力される。
【0359】・ifRegAck L(チャネル共通)
(入力) 機能ブロックが内部レジスタへのアクセスを完了したこ
とを示す信号である。信号ifRegStart Lが
アサートされた時点で、アドレスをチェックし、機能ブ
ロックの内部レジスタへのアクセスであれば、レジスタ
のリードあるいはライトを行い、必ず、1クロックだけ
アサートする。機能ブロックの内部レジスタへのアクセ
スでない場合には、決してアサートしてはいけない。こ
の信号は、BBusコントローラに接続される。
【0360】・ifRegDataOut[31:0]
(チャネル共通)(入力) 機能ブロックの内部レジスタの内容が読み出されるデー
タバス信号である。信号ifRegAck L信号がア
サートされているときに有効でなければいけない。この
信号は、BBusコントローラに接続される。
【0361】・ifRegDataIn[31:0]
(チャネル共通)(出力) 機能ブロックの内部レジスタに書き込まれるデータを示
すバス信号である。信号ifRegStart Lアサ
ートと同時に有効となり、機能ブロックの内部レジスタ
へのアクセスであれば、ifRegAck L信号で応
答する間で有効である。この信号は、BBusコントロ
ーラから出力される。
【0362】・IfDmaPmState[1:0]
(チャネル共通)(出力) GBIの動作状態を示す信号。この出力は常に有効であ
る。機能ブロックは、この信号と機能ブロック自身の動
作状態を基に、パワーマネージメントユニットへのパワ
ーマネージメントステータス信号を生成する。この信号
は、レジスタユニットから出力される。どのような値が
出力されるかは、後述のパワーマネジメントの項で説明
する。
【0363】<DMAコントローラ>GBIには、チャ
ネル0と1に、それぞれ図96のようなDMAコントロ
ーラ9205が存在する。
【0364】DMAコントローラは、DMAメインコン
トローラ、フェッチチェインテーブル、カルキュレート
ピッチアドレス、ジェネレートアドレス、DMAリクエ
ストの各部ロックから成る。
【0365】レジスタユニット9206からは、表10
の信号によりDMAのモードが伝えられる。
【0366】
【表10】
【0367】次に、DMAコントローラの各部ロックに
ついて説明する。
【0368】[DMAメインコントローラ]DMAメイ
ンコントローラは、他の4つのブロックの起動と停止の
制御をする。チェーンテーブル方式のDMAでは、フェ
ッチチェインテーブル、ジェネレートアドレス、DMA
リクエストの順に、ブロックを1クロックずつずらして
起動する。ピッチ付きのDMAでは、カルキュレートピ
ッチアドレス、ジェネレートアドレス、DMAリクエス
トの順に、ブロックを1クロックずつずらして起動す
る。その他の場合には、ジェネレートアドレスとDMA
リクエストを1クロックずらして起動する。
【0369】また、DMAメインコントローラはDMA
の終了を判定する。フェッチチェインテーブルがアイド
ル状態(チェーンテーブルをすべて読み終わったか、あ
るいは起動されていない)かつ、カルキュレートピッチ
アドレスがアイドル状態(全ライン終わったか、あるい
は起動されていない)でのジェネレートアドレスのNe
xtAddreReq信号のアサート(レングスカウン
タがゼロになる)、あるいはバスエラー、stopDM
A信号のアサート(レジスタによるDMA強制終了)を
検出すると、DMAメインコントローラが各ブロック
に、stopDMAReq信号をアサートする。すべて
のブロックがアイドル状態になった時点で、DMAの終
了と判定する(endDMAをアサートする)。
【0370】[フェッチチェインテーブル]フェッチチ
ェインテーブルは、メモリ上のテーブルをフェッチする
ブロックで、チェーンテーブルを使わない場合は起動さ
れない。チェーンテーブルを指すメモリアドレスのため
のチェインテーブルポインタアドレスカウンタ、チェー
ンテーブルの残りのエントリ数を示すチェインテーブル
エントリカウンタ、チェーンテーブルからフェッチした
アドレスとレングスを記憶するネクストアドレスレジス
タ、ネクストレンクスレジスタ、およびこれらを制御す
るフェッチチェインテーブルコントローラから成る。
【0371】DMAメインコントローラから起動される
と、レジスタの内容がチェインテーブルポインタアドレ
スとチェインテーブルエントリカウンタにロードされ
る。chainReq信号により、BBusコントロー
ラにアドレスchainAddress[31:2]の
フェッチを要求する。BBusコントローラからのch
ainDone信号(正常終了)で、読み出した内容を
ネクストアドレスレジスタにラッチし、チェインテーブ
ルポインタアドレスカウンタをインクリメントする。B
Busコントローラから、ChainRtry信号(リ
トライ)が返ってくれば、再び、同じ要求をBBusコ
ントローラに対して発行する。
【0372】ネクストアドレスレジスタのラッチ後に、
BBusコントローラにアドレスchain Addr
ess[31:2]のフェッチを要求する。Chain
Done信号で、読み出した内容をネクストレンクスレ
ジスタにラッチし、チェインテーブルポインタアドレス
カウンタをインクリメントし、チェインテーブルエント
リカウンタをデクリメントする。同時に、nextAd
drValid信号をアサートし、チェーンテーブルか
らアドレスとレングスを読み出したことを、ジェネレー
トアドレスブロックに伝える。
【0373】もし、ネクストレンクスレジスタのラッチ
時のデータがゼロである場合には、ネクストアドレスレ
ジスタの内容がチェインテーブルポインタアドレスカウ
ンタにロードされる。
【0374】nextAddrValid信号のアサー
ト中に、ジェネレートアドレスブロックからNextA
ddrReq信号がアサートされるとジェネレートアド
レスブロックが、チェーンテーブルからのアドレス、レ
ングスを受け取ったと判断し、nextAddrVal
id信号をネゲートする。
【0375】次に、チェインテーブルエントリカウンタ
をチェックし、ゼロでなければ、再度チェーンテーブル
のフェッチを続け、ゼロであればアイドル状態へ戻る。
【0376】chainBErr信号(バスエラー)を
受け取ると、直ちにアイドル状態へ戻る。DMAメイン
コントローラからstopDMAReqを受け取った場
合、BBusコントローラに要求を出していれば、その
終了を待って、そうでなければ直ちにアイドル状態へ戻
る。
【0377】チェーンテーブルを使わないモードの時に
は、起動されないので、アイドル状態を保ち、next
AddrValid信号はネゲートされたままである。
【0378】[ジェネレートアドレス]ジェネレートア
ドレスブロックは、メモリに対する転送アドレスを格納
するトランスファメモリアドレスカウンタと、転送すべ
き転送長を格納するトランスファレンクスカウンタと、
転送したバイト数を記憶するトランスファカウンタと、
これら3つのカウンタを制御するジェネレートアドレス
コントローラと、転送アドレスと転送長からGBus/
BBusに対して要求するモードを判定するCheck
GBusReq及びCheckBBusReqブロック
(CheckG/BBusReqと総称する)を有す
る。
【0379】(チェーンテーブルを使う場合)DMAメ
インコントローラから起動されると、トランスファカウ
ンタをクリアし、フェッチチェインテーブルからのne
xtValidAddrCT信号待ちに入る。next
ValidAddrCT信号がアサートされると、チェ
ーンテーブルのアドレスとレングスが、それぞれトラン
スファメモリアドレスカウンタとトランスファレンクス
カウンタにロードされる。
【0380】両カウンタの内容で、CheckG/BB
usReqは転送できるモードを判定する。
【0381】CheckG/BBusReqからDMA
リクエストブロックにG/BBusの転送モードを伝え
(転送不可の時にはg/b Valid信号がネゲート
されている)、DMAリクエストブロックは、GBus
優先で各バスコントローラに転送要求を発行する。
【0382】GBusでの転送では、gMDone信号
(GBus転送終了信号)とその時の転送モードによ
り、一度にトランスファメモリアドレスカウンタ、トラ
ンスファカウンタのインクリメントとトランスファレン
クスカウンタのデクリメントを行う。BBusでの転送
では、FIFOのアクセス信号により、トランスファメ
モリアドレスカウンタのインクリメントとトランスファ
レンクスカウンタのデクリメントを行う。
【0383】トランスファレンクスカウンタがゼロにな
った時、フェッチチェインテーブルからのnextVa
lidAddrCT信号がネゲートされていれば、アサ
ートを待って、次のチェーンテーブルの内容をトランス
ファメモリアドレスカウンタとトランスファレンクスカ
ウンタにロードし、そうでなければ、直ちにロードす
る。そして、次の転送に入る。
【0384】チェーンテーブルの最後の部分の転送が終
わってトランスファレンクスカウンタがゼロになった時
には、フェッチチェインテーブルはアイドル状態で、n
extValidAddrCT信号はネゲートされてい
る。DMAメインコントローラはDMAの終了を検出す
るので、ジェネレートアドレスに対してstopDMA
Req信号をアサートする。これによりジェネレートア
ドレスはアイドル状態となる。
【0385】(ピッチ付きのDMAを使う場合)DMA
メインコントローラから起動されると、トランスファカ
ウンタをクリアし、カルキュレートピッチアドレスから
のnextValidAddrPA信号待ちに入る。n
extValidAddrPA信号がアサートされる
と、スタートアドレスとピッチから計算されたアドレス
とレングスが、それぞれトランスファメモリアドレスカ
ウンタとトランスファレンクスカウンタにロードされ
る。
【0386】チェーンテーブルを使う時と同様に、トラ
ンスファメモリアドレスカウンタ、トランスファカウン
タのインクリメントとトランスファレンクスカウンタの
デクリメントが行われる。
【0387】トランスファレンクスカウンタがゼロにな
った時、カルキュレートピッチアドレスからのnext
ValidAddrPA信号がネゲートされていれば、
アサートを待って、次のチェーンテーブルの内容をトラ
ンスファメモリアドレスカウンタとトランスファレンク
スカウンタにロードし、そうでなければ直ちにロードす
る。そして次の転送に入る。
【0388】最後のラインの転送が終わってトランスフ
ァレンクスカウンタがゼロになった時には、カルキュレ
ートピッチアドレスはアイドル状態で、nextVal
idAddrPA信号はネゲートされている。DMAメ
インコントローラはDMAの終了を検出するので、ジェ
ネレートアドレスに対してstopDMAReq信号を
アサートする。これによりジェネレートアドレスはアイ
ドル状態となる。
【0389】(対I/ODMAの場合)DMAメインコ
ントローラから起動されると、トランスファカウンタが
クリアされ、データ長を格納したGBIDMA転送長レ
ジスタの内容がトランスファレンクスカウンタにロード
される。CheckGBusReq/CheckBBu
sReq各ブロックは、対I/OのDMAアドレスを格
納したGBIDMAGBusI/Oアドレスレジスタ/
GBIDMABBusI/Oアドレスレジスタの内容を
それぞれ用いる。
【0390】上と同様に、トランスファカウンタのイン
クリメントとトランスファレンクスカウンタのデクリメ
ントが行われる。
【0391】トランスファレンクスカウンタがゼロにな
った時、フェッチチェインテーブルとカルキュレートピ
ッチアドレスは起動されていないので、アイドル状態
で、nextValidAddr信号はネゲートされて
いる。DMAメインコントローラはDMAの終了を検出
するので、ジェネレートアドレスに対してstopDM
AReq信号をアサートする。これによりジェネレート
アドレスはアイドル状態となる。
【0392】(リバースモード)対I/ODMA以外は
リバースモードをサポートする。チェーンテーブルDM
Aの1ブロック、ピッチ付きのDMAの1ラインを、ア
ドレスの大きい方から小さい方へアクセスする。ブロッ
クあるいはライン単位の逆方向の指示は、チェーンテー
ブルDMAではチェーンテーブルを逆になるように作
る。ピッチ付きのDMAの場合は、ピッチの値を負の値
(2の補数)を設定する。
【0393】リバースモードでは、トランスファメモリ
アドレスカウンタに値をロードする際に、転送レングス
を用いて、最後尾のアドレスを計算してロードする。ト
ランスファメモリアドレスカウンタのインクリメントの
代わりにデクリメントする。
【0394】CheckBBusReqブロックではシ
ングル転送のみを要求する。CheckGBusReq
ブロックでは4ビートバースト転送のみを要求する。F
ifoユニットで、32ビット単位で逆順にして、機能
ブロックに送られる(現状では、チャネル1のみ対応す
る)。
【0395】(GBus要求のチェック)CheckG
BusReqブロックではGBus要求のチェックが行
われる。信号useGBusがアクティブでなければ常
に信号gValidはネゲートされている。
【0396】トランスファメモリアドレスのビット6以
下がすべてゼロで、かつトランスファレンクスが128
以上の時、信号gValidがアサート、g4Not1
6Req=’0’となり、トランスファメモリアドレス
のビット4以下がすべてゼロで、かつトランスファレン
クスが32以上の時、信号gValidがアサート、g
4Not16Req=’1’となる。それ以外では、信
号gValidはネゲートされる。
【0397】(BBus要求のチェック)CheckB
BusReqブロックではBBus要求のチェックが行
われる。信号useBBusがアクティブでなければ常
に信号bValidはネゲートされている。
【0398】トランスファメモリアドレスのビット4以
下がすべてゼロで、かつトランスファレンクスが29以
上の時、信号bValidがアサート、bBurstR
eq=’1’、b4Not8Req=’0’となり、ト
ランスファメモリアドレスのビット3以下がすべてゼロ
で、かつトランスファレンクスが13以上の時、bVa
lidがアサート、信号bBurstReq=’1’、
b4Not8Req=’1’となる。それ以外では、b
Validがアサート、bBurstReq=’0’と
なる。
【0399】(DMAリクエスト)DMAメインコント
ローラから起動されると、ジェネレートアドレスブロッ
クからのGBus/BBusに対する要求をチェックす
る。G/BBusの両方の要求がある場合には、常にG
Busが優先となる。この要求に従い、GBusコント
ローラかBBusコントローラに転送要求を発行し、応
答を待つ。応答は、g/bMDone、g/bMRtr
yあるいは、g/bMBErrのいずれかの信号であ
る。
【0400】g/bMDoneの場合は転送の正常終了
であり、次のジェネレートアドレスからのGBus/B
Busに対する要求をチェックする。
【0401】g/bMRtryの場合は同じバスコント
ローラに再度転送要求を発行する。
【0402】g/bMBErrの場合には直ちにアイド
ル状態に戻る。
【0403】最後の転送が終了した時には、DMAリク
エストブロックは、ジェネレートアドレスからのGBu
s/BBusに対して要求待ち状態となる。DMAメイ
ンコントローラがDMA終了を検出して、DMAリクエ
ストに対してstopDMAReqが発行されるので、
それにより、DMARequestはアイドル状態に戻
る。
【0404】また、チェーンテーブルフェッチ時のバス
エラーやレジスタによるDMA強制終了の場合も、DM
Aメインコントローラから、stopDMAReqが発
行されるが、バスコントローラに転送要求をしている時
は、転送終了を待って、要求していない時は直ちにアイ
ドル状態に戻る。
【0405】<レジスタユニット>内部レジスタユニッ
ト内には、各チャネルに対応するレジスタユニットが存
在する。各ユニットは、デコードするアドレスが異なる
以外は同じである。レジスタユニットは図97に示すよ
うに、レジスタユニット0とレジスタユニット1とを有
する。
【0406】各レジスタユニットは、レジスタI/F、
アクションコントローラ、割り込みコントローラとパワ
ーステータスの各ブロックから構成される、GBIの各
ブロックに設定地値を供給するほか、割り込みコントロ
ーラによって割り込みを制御し、パワーステータスによ
り省電力可能なブロックを制御している。
【0407】[パワーステータス]GBIにおいて省電
力モード可能なユニットは、DMAコントローラとFI
FOユニットである。省電力モードはfifoInSl
eep信号、dmaInSleep信号により、各ブロ
ックのクロックをマスクすることで実現する。リセット
時は、ともに省電力モードに入る。DMAコントローラ
は、マスタモードで起動をかけると自動的に起動し、G
BIFIFOスリープレジスタのライトでスリープに入
る。
【0408】パワーステータスブロックから出力される
パワーマネージメントステータス信号(pmState
[1:0])は、各チャネルで、 pmState[1:0] 00 level0(DMA、FIFOともに停 止) 01 level1(FIFOのみ動作) 10 level2(DMA、FIFOともに動作) 11 NotDefine となる。
【0409】DoEngineにおいては、スキャナコ
ントローラ(Scc)やプリンタコントローラ(Pr
c)が接続されるGBIは、1のチャネルしかないので
上のようになるが、2チャネル含む場合は各チャネルの
値を合計し、次のように4段階に縮退させる。
【0410】 pmState[1:0] 00 level0 (両チャネルのFIFO、DMAがともに停止) 01 level1 (1チャネルのFIFOのみ動作) 10 level2 (両チャネルのFIFOが動作、DMAは両方停止) 11 level3 (両チャネルのFIFOが動作、DMAは1つは動作) となる。
【0411】パワーマネージメントステータス信号(p
mState[1:0])は、IFBusを介して機能
ブロックへ送られる。機能ブロックでは、この信号と機
能ブロック自身の動作状態を基に、パワーマネージメン
トユニットへのパワーマネージメントステータス信号を
生成する。
【0412】<GBIの動作モード>以上、GBIを構
成する各部について説明した。ここで、GBIの動作に
ついてまとめておく。GBIの動作モードには、大きく
分けて以下のものがある。
【0413】1.スレーブモード 2.マスタモード マスタモードにおけるDMAの方式は、 A.対メモリ B.対I/O(アドレス固定) があり、対メモリDMAでは、 a.連続物理アドレス b.不連続物理アドレス(転送先メモリがメモリ管理の
ページ単位で分割されていることを想定) のメモリに対して転送を行う。また、対メモリDMAで
は、逆方向モードもサポートする(チャネル1のみ)。
【0414】連続物理アドレスに対するDMAは、先頭
アドレス、一行の長さ、次の行までのピッチ、及び行数
を指定する、いわゆる2次元DMAである。1次元の場
合は行数を1とすることで実現する。
【0415】不連続物理に対するDMAは、分割された
各メモリブロックの先頭アドレスと長さをメモリ上に配
置し、それを参照しながら、転送先のアドレスを計算
し、DMAを行う。この先頭アドレスと長さの組をチェ
ーンテーブルと呼ぶことにする。チェーンテーブルの一
例を図98に示す。不連続物理アドレスに対するDMA
では、チェーンテーブルを配置したメモリアドレスとア
ドレス・長さの組の数を指定する。もちろん、チェーン
テーブル自体は連続アドレスに配置しなければならない
が、もし、全チェーンテーブルが連続領域に置けない場
合には、先頭のアドレスの代わりに次のチェーンテーブ
ルのアドレスを、長さに0を設定することで、チェーン
テーブルをつなぐことができる。
【0416】逆方向モードは、チェーンテーブルDMA
の1ブロック、2次元DMAの1ラインをアドレスの大
きい方から、小さい方へアクセスする。ブロックあるい
はライン単位の逆方向の指示は、チェーンテーブルDM
Aでは、チェーンテーブルを逆になるように作る。ピッ
チ付きのDMAの場合は、ピッチの値を負の値(2の補
数)を設定する。
【0417】<割り込み制御>次に割り込みの制御につ
いて説明する。DBIからの割り込みは、以下の条件で
発生する。
【0418】[マスタモード] 1.DMA正常終了 2.GBusでのDMA転送中のバスエラーの検出 3.BBusでのDMA転送中のバスエラーの検出 4.チェーンDMAモードでのチェーンテーブルリード
中のバスエラーの検出 GBI停止レジスタによる強制終了の場合、DMAコン
トローラが各バスのコントローラに要求中の転送が正常
に終了した時点で、正常終了となる。もし、要求中の転
送がバスエラーとなった場合には、バスエラーによる異
常終了となる。
【0419】チャネル0では、機能ブロックがGBI内
のFIFOに全データを書き込んだ時点で終了する(割
り込みを発生する)が、FIFOにデータが残ってい
る。GBIはFIFOのデータを転送した時に、DMA
終了となるので、これをもって転送終了と判断する。
【0420】チャネル1では、GBIはGBI内のFI
FOに全データを書き込んだ時点で終了する(割り込み
を発生する)が、FIFOにデータが残っている。機能
ブロックはFIFOのデータを転送した時に、終了とな
るので、これをもって転送終了と判断する。
【0421】[スレーブモード] 5.FIFOイリーガルアクセス GBIに按続された機能ブロックとマスタとのデータの
転送は、GBIのFIFOを介して行われる。
【0422】GBus/BBusの両方使用する場合
(DoEngineでは、GBus/BBusの両方使
用可能なマスタはGBIのみ)には、両方のバスからの
同時アクセスに対して、どちらのバスが最初にFIFO
をアクセスするかを知る方法がない。マスタはGBus
/BBusに対して、排他的に転送要求を行う必要があ
る(GBIのマスタモードでは排他的に転送要求してい
る)。もし、GBus/BBusの両方が同時にFIF
Oにアクセスした場合には、FIFOイリーガルアクセ
スとなる。
【0423】上記の1から5のいずれかが起こり、かつ
対応する割り込み許可ビットが、”1”にセットされて
いる場合に割り込みが発生する。
【0424】<コアインターフェース>図99に、GB
Iと、BBus/GBus/機能ブロックとのインター
フェースをまとめたコアインターフェースの図を示す。
GBIは、BBusスレーブ動作でバスエラーを発行し
ないので、bError(Func)Out Lはな
い。また、GBIはBBusスレーブ動作でbInst
NotData信号をチェックしないので、(fun
c)bInstNotData inはなく、(fun
c)bInstNotData outは、常に”0”
をドライブする。
【0425】また、GBIはGBusスレーブ動作でバ
スエラーを発行しないので、(func)gErr
outはない。
【0426】なお、図99におけるGBIの信号名中の
Func(func)には、接続される機能ブロック、
すなわちscc(スキャナコントローラ)あるいはpr
c(プリンタコントローラ)の名前を入れる。
【0427】また、DoEngineでは、機能ブロッ
クとして、スキャナコントローラのScc(scc)
と、プリンタコントローラのPrc(prc)がある。
いずれの場合もデータの流れが双方向でないので、不要
なFIFO、DMAコントローラ、レジスタを削除した
形でインプリメントする。
【0428】<プリンタコントローラコアインターフェ
ース>図86は、プリンタコントローラ4303におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、プリンタコントローラ4303は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接
続されている。
【0429】2.10.電力管理ユニット 図87は、電力管理ユニット409のブロック図であ
る。
【0430】DoEngineはCPUを内蔵した大規
模なASICである。このため、内部のロジックが全部
同時に動作してしまうと、大量の熱を発生し、チップ自
体が破壊されてしまう恐れがある。これを防ぐために、
DoEngineは、ブロック毎の電力の管理、すなわ
ちパワーマネジメントを行ない、更にチップ全体の消費
電力量の監視を行なう。
【0431】パワーマネージメントは、それぞれのブロ
ックが各自個別に行なう。各ブロックの消費電力量の情
報は、パワーマネージメントレベルとして、電力管理ユ
ニット(PMU)409に集められる。PMU409で
は、各ブロックの消費電力量を合計し、その値が限界消
費電力を超えないように、DoEngineの各ブロッ
クの消費電力量を一括して監視する。
【0432】<動作>電力管理ブロックの動作は次の通
りである。 ・各ブロックは、4段階のパワーマネジメントレベルを
持つ。 ・PMUは、それぞれのレベルにおける消費電力の値を
レジスタとして持つ。このレベル構成及び消費電力の値
は、PM構成レジスタ5401に保持される。 ・PMUは、各ブロックからパワーマネジメントレベル
を2ビットのステータス信号として受け取り(後述)、
レジスタ5401に設定された値と照合させて各ブロッ
クの消費電力を知る。 ・PMUは各ブロックの消費電力を加算器5403で加
算し、DoEngine全体の消費電力量をリアルタイ
ムに計算する。 ・算出された消費電力量は、構成レジスタ5401に設
定された消費電力のリミット値(PMリミット)と比較
器5404で比較され、これを超えた場合には割込発生
器5405から割り込み信号を発行する。 ・このリミット値は2段階設定することができる。1段
階目は、本当の限界から少し余裕を持たせた値を設定し
ておく。この値を超えると、通常の割込み信号が発行さ
れる。ソフトウェアはこれを受けて、新たにブロックを
起動するような転送は始めないようにする。ただ、2段
階目のリミット値に達しない範囲内では、ソフトウェア
の管理の元で、新たなブロックを起動することができ
る。2段階目のリミット値は、デバイスが破壊される恐
れのある値を設定しておく。万が一、この値を超えてし
まった時には、NMI(割込マスクが設定できない割り
込み)を発行して安全のためにシステムを停止させる。 ・割込み信号は、PMUの状態レジスタ5402をリー
ドすることで解除される。この状態レジスタ5402を
リードした時点からタイマカウントを始め、タイマがエ
クスパイアするまで消費電力量が戻らなければ、再び割
込み信号を発行する。このタイマの値の設定はPMUの
構成レジスタ5401に設定される。
【0433】<各ブロックのパワーマネージメント>各
ブロックのパワーマネージメント制御は、ブロック毎に
自由に構成してよい。構成例の例を示す。
【0434】(構成例1)この例では、内部ロジックへ
のクロックをオン/オフすることにより、パワーマネジ
メントを行なっているので、消費電力のレベルは2段階
しか持っていない。このレベルをステータス信号として
電力管理ユニット409に送る。図88にバスエージェ
ントのブロック図を示す。 ・バスエージェント5501は、各ユニット毎の内部ロ
ジック5502、アドレスをデコードするデコーダ55
03、クロックコントロール部5504、クロックゲー
ト5505を含む。 ・デコーダ5503とクロックコントロール部5504
は常に動作しており、パワーマネージメントコントロー
ルとして、バスのアクティビティーの監視、内部ロジッ
クへのクロックのゲーティングを行なっている。
【0435】<クロックコントロール> ・バスエージェントは、バスのアクティビティーを検出
し、クロックのオン/オフを自動で行なう。 ・バスエージェントには、Sleep,Wake U
p,Waitの3つのステートがある。 ・Sleepはバスエージェントにアクティビティーが
なく、クロックゲートクロックを停止させている状態で
ある。 ・Sleepの状態でも、デコーダ部5503、クロッ
クコントロール部5504は動作しており、バスをモニ
タリングして、要求を待っている。 ・デコーダ5503が自分のアドレスを検出すると、ク
ロックゲート5505を開き、内部ロジックのクロック
を動作させ、バスの要求に応える。ステートはWake
Upに移行する。また、この状態を電力管理ユニット
409に通知する。 ・データ転送が終了すると、Waitステートに移行
し、次の要求を待つ。この時クロックは動作したままで
ある。要求があれば、Wake Upステートに戻り、
転送を行なう。また、要求を待っている間はタイマによ
りカウントを行ない、要求がないままカウンタがタイム
アップした場合は、Sleepステートへ移り、クロッ
クを停止させる。この状態も電力管理ユニット409に
通知される。
【0436】以上のようにして、消費電力が所定値を越
えないように管理している。
【0437】<コピー動作>上述の構成により、スキャ
ナから読み込んだ画像データをそのままプリンタへ転送
して、プリンタで画像形成する動作をコピー動作を行う
ことができる。本実施形態のDo Engineを用い
たスキャナ/プリンタシステムでは、以下に示す3種類
のコピーの方式がそのシステム構成に応じて選択され
る。
【0438】(方式1)第1の方式は、スキャナによる
画像入力の垂直・水平タイミングと、プリンタによる画
像出力の水平・垂直タイミングがそれぞれ一致してい
て、ビデオデータの転送速度も一致している組み合わせ
のシステムにおける方式である。
【0439】垂直同期信号(VSYNC)はプリンタか
ら出力されて、プリンタコントローラ(PRC)に入力
される。このVSYNC信号は、プリンタコントローラ
(PRC)からCPバスを介してスキャナコントローラ
(SCC)に入力される。そして、スキャナコントロー
ラ(SCC)からスキャナに対して出力される。これに
より、プリンタとスキャナの垂直同期がとられる。水平
同期についても、垂直同期信号VSYNCと同様に、水
平同期信号(HSYNC)がプリンタから出力され、プ
リンタコントローラ,CP−バス,スキャナコントロー
ラを介してスキャナに入力される。これによりスキャナ
とプリンタとの水平同期がとられる。このように、垂直
方向及び水平方向の同期がとられてスキャナとプリンタ
が動作する。ビデオデータは同期用のビデオクロックと
ともにスキャナから出力される。出力されたビデオクロ
ックとビデオデータはスキャナコントローラ(SCC)
に入力され、CPバスを介して、プリンタコントローラ
(PRC)に入力される。そして、プリンタコントロー
ラ(PRC)からプリンタに出力される。プリンタでは
ビデオクロックに同期してビデオデータを受け取り、画
像出力をおこなう。
【0440】このコピー動作は、図89に示す構成によ
り行われる。このコピー動作ではGバスおよびBバスを
使用せずにコピー動作がおこなわれる。
【0441】このコピー動作中、画像データはCPバス
を介してスキャナからプリンタへ直接転送されるが、同
時にスキャナコントローラ(SCC)からGバスのDM
A転送によってSDRAMへ書き込むことが可能であ
る。コピー動作と同時にSDRAMに書き込まれた画像
データは、必要に応じて画像データとして格納すること
等が可能となる。また、SDRAM上の画像データをプ
リンタへ出力することにより、スキャナで読み取った画
像データを複数部の出力することが、スキャナの動作な
しに可能となる。
【0442】(方式2)第2の方式は、スキャナによる
画像入力の水平タイミングと、プリンタによる画像出力
の水平タイミングとが一致しており、垂直タイミングと
ビデオデータの転送速度がそれぞれ一致していない組み
合わせのシステムにおける方式である。
【0443】この場合のコピー動作を図90で説明す
る。スキャナが画像を読み取り始めると、垂直同期信号
(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バスであっても
良い。
【0444】このDMA転送により、FIFO SCC
の画像データは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
PRCから出力する。そのビデオデータをプリンタ
が画像出力する。
【0445】このコピー動作の場合、画像データは、ス
キャナ,スキャナコントローラのFIFO(FIFO
SCC),Gバス/BバスI/FユニットのFIFO
(FIFO GBI SCC),Gバス/BバスI/F
ユニットのFIFO(FIFO GBI PRC),プリ
ンタコントローラのFIFO(FIFO PRC),プ
リンタの順で転送されて、画像コピー動作がなされる。
水平同期の間隔はスキャナとプリンタとで同一であるの
で、画像データの転送速度の違いは各FIFOにより緩
衝される。
【0446】(方式3)第3の方式は、スキャナとプリ
ンタの垂直同期タイミング、水平同期タイミング、ビデ
オデータの転送速度がそれぞれすべて異なる組み合わせ
のシステムにおける方式である。
【0447】この場合のコピー動作を図91により説明
する。スキャナで画像の読み取りが開始すると、スキャ
ナは垂直同期信号(VSYNC)、水平同期信号(HS
YNC)、ビデオクロックをスキャナコントローラ(S
CC)に出力する。これらのタイミング信号に同期して
画像データが出力される。スキャナコントローラ(SC
C)は上記タイミング信号に同期して画像データを取り
込む。取り込まれた画像データはGBI SCCによ
り、DMA転送でメモリコントローラ(MC)403へ
転送される。MC403では、DMA転送された画像デ
ータをSDRAMに書き込む。SDRAMに書き込まれ
た画像データの量が、スキャナとプリンタの画像データ
転送速度の差を緩衝できる量に達すると、プリンタへの
画像データ転送が開始される。この画像データ量の判定
は、スキャナからのデータ転送時間による判定、SDR
AMに書き込まれるアドレスによる判定、GBI SC
CにおけるDMA転送量の判定等、種々の方式がある。
【0448】プリンタへの画像データ転送はプリンタコ
ントローラ(PRC)により行われる。プリンタコント
ローラ(PRC)は、GBI PRCのDMA転送によ
り、SDRAMに書き込まれた画像データを順次内部の
FIFOへ入力する。同時にプリンタへ垂直同期信号
(VSYNC)を出力する。その後、プリンタからは水
平同期信号(HSYNC)とビデオクロックを入力す
る。このHSYNCとビデオクロックと同期して、プリ
ンタコントローラ(PRC)は内部のFIFOから画像
データをプリンタへと出力する。上記画像データの流れ
により、スキャナで読み取られた画像データをプリンタ
から出力するコピー動作がおこなわれる。この場合の画
像データの流れは、スキャナ,スキャナコントローラ,
スキャナのGバス/BバスI/Fユニット(GBI
CC),メモリコントローラ(MC),SDRAM,メ
モリコントローラ(MC),プリンタのGバス/Bバス
I/Fユニット(GBI PRC),プリンタコントロ
ーラ(RRC),プリンタの順となる。このように、一
旦メモリに格納し、それをスキャナとプリンタとの間の
緩衝メモリとして、スキャナからプリンタへと画像デー
タを転送し、コピーを行う。
【0449】本システムは上記3方式のコピー動作機能
を有する。(方式1)、(方式2)、(方式3)の順で
コピー動作時に動作する内部ブロックが多くなる。内部
ブロックの使用率が増加すると、システム全体のパフォ
ーマンスが効率を低下させる要因となりうる。本システ
ムは接続されるデバイス(プリンタ・スキャナ)に応じ
て、システム全体が最も効率的なコピー動作方式を選択
することが可能である。
【0450】コピー方式を選択する方法としては、例え
ば次のようなものがある。 UART等を介して指定するコピー方式そのものを入
力させ、指定された方式でコピー動作を行う。 プリンタとスキャナのデータ転送速度や水平・垂直同
期周波数等、必要なパラメタをUART等から入力さ
せ、それらの値に応じて上記3通りの方式からCPU4
01がひとつを選択し、その方式でコピー動作を行わせ
る。 プリンタコントローラがプリンタのデータ転送速度や
水平・垂直同期周波数等、必要なパラメタを読取り、ス
キャナコントローラがスキャナからデータ転送速度や水
平・垂直同期周波数等、必要なパラメタを読取り、それ
らをCPU401により比較判定してコピー動作の方式
を決定する。
【0451】上記〜の方法で決定された、あるいは
選択されたコピー方式はCPUからプリンタコントロー
ラ及びスキャナコントローラに知らされ、その方式でプ
リンタコントローラ及びスキャナコントローラ等により
コピーを行わせる。
【0452】次に、上記の方式でコピー方式を決定す
る手順を説明する。
【0453】図100は、CPU401による、3通り
のコピー方式からシステムで使用するコピー方式を選択
する手順のフローチャートである。この動作はシステム
の電源立ち上げ時、ステップS1から開始される。
【0454】ステップS2では、プリンタの種別の判定
が行われる。CPU401はプリンタコントローラ43
03を介して、プリンタビデオI/Fに含まれるコマン
ド/ステータスラインを通じて、プリンタから種別を示
すIDを取得する。このコマンド/ステータスライン
は、プリンタコントローラとプリンタとが1対1にコマ
ンド/ステータスのやりとりができるシリアル通信ライ
ンである。
【0455】ステップS3では、同様にCPUがスキャ
ナコントローラ4302を介して、スキャナビデオI/
Fに含まれるコマンド/ステータスラインを通じ、スキ
ャナから種別を示すIDを取得する。
【0456】ステップS4では、ステップS2とS3で
判定された、スキャナとプリンタの組み合わせに適した
コピー経路の判定が行われる。スキャナとプリンタの組
み合わせに適したコピー経路の判定は、あらかじめテー
ブルの形式で、例えば、フラッシュROM等のCPUが
参照可能なメモリに準備されている。各コピー経路に適
したスキャナとプリンタの組み合わせは次のようなもの
がある。(方式1)スキャナとプリンタの水平、垂直タ
イミングが同期していて、ビデオデータの転送速度も同
期している組み合わせ (方式2)スキャナとプリンタの水平同期タイミングの
速度が同一で、垂直タイミングとビデオデータの転送速
度は同期していない組み合わせ (方式3)スキャナとプリンタの垂直同期タイミング、
水平同期タイミング、ビデオデータの転送速度がそれぞ
れ異なる組み合わせCPUは、あらかじめ用意されたテ
ーブル参照において、上記3方式から適切なコピー方式
を選択する。
【0457】ステップS5では、ステップS4で選択さ
れたコピー方式に応じたモード設定がスキャナコントロ
ーラ4302に対してなされる。このモード設定は、C
PUがBBusを介して行う。
【0458】図101は、スキャナコントローラ430
2内部のデータバスの切り換え回路を示す図である。な
お、データバスセレクタは、図44のスキャナデバイス
I/F4401に含まれる。また、データバスの切り替
えの説明に不用なスキャナビデオクロックユニット等は
省略した。
【0459】レジスタ1には、データバスのモードが設
定される。CPUは、図100のステップS4において
選択したコピー方式に応じたモードをレジスタ1に設定
する。セレクト制御信号4は、モード設定レジスタ1に
設定されたモードに応じてデータパスを選択するための
信号である。スキャナビデオバス2は、スキャナからの
ビデオデータのバスである。バス5は、スキャナからの
ビデオデータをFIFO SCC6に転送するバスであ
る。CPビデオバス7は、(方式1)のコピー動作を行
う場合に使用されるバスである。スキャンビデオバスか
らのビデオデータは(方式1)の場合はCPビデオバス
7に出力するようにデータパスがセレタトされる。(方
式2)、(方式3)の場合にはバス5にビデオデータが
出力されて、FIFO SCC4407に転送される。
【0460】図100で、次にステップS6に移行す
る。ステップS6では、GBI sccの動作モード設
定を行う。このモード設定はCPUがステップS4で選
択したコピー方式に基づいて行う。(方式1)では、G
BI sccは非動作指定される。(方式2)では、D
MA転送のマスター指定がなされ、DMAの転送先には
GBI prcが設定される。(方式3)ではDMA転
送のマスター指定がなされ、DMAの転送先にはSDR
AMが設定される。
【0461】次にステップS7では、GBI prcの
動作モード設定を行う。このモード設定はCPUがステ
ップS4で選択したコピー方式に基づいて行う。(方式
1)では、GBI prcは非動作指定がなされる。
(方式2)ではDMA転送のスレーブ指定がなされる。
(方式3)では、DMA転送のマスター指定がなされ、
DMA転送の読み出しもとはSDRAMが設定される。
【0462】次にステップS8では、プリンタコントロ
ーラのモード設定がなされる。このモード設定はステッ
プS4で選択されたコピー方式に基づいてCPUが行
う。
【0463】図102は、プリンタコントローラ430
3内部のデータバスの切り換え回路を示す図である。レ
ジスタ11には、データバスのモードが設定される。C
PUは、図100のステップS4において選択したコピ
ー方式に応じたモードをレジスタ11に設定する。セレ
クト制御信号14は、モード設定レジスタ11に設定さ
れたモードに応じてデータバスのセレクトを行う信号で
ある。バス15は、FIFO PRC16から出力され
るデータのバスである。バス12は、プリンタへのビデ
オデータバスである。CPビデオバス17は、(方式
1)のコピー動作を行う場合に使用する。プリンタへの
ビデオデータは(方式1)の場合はCPビデオバスのデ
ータがセレクトされ、出力される。(方式2)、(方式
3)の場合にはバス15からのデータがプリンタビデオ
バス12に出力される。
【0464】ステップS9で、電源立ち上げ時のコピー
方式選択のフローが終了する。以上のようにして、CP
Uはスキャナ及びプリンタの種別に応じたコピー方式を
決定することができる。
【0465】なお、上述の手順はスキャナ及びプリンタ
の垂直同期タイミング、水平同期タイミング、ビデオデ
ータの転送速度に基づいて、コピー動作の方式を決定す
る手順であるが、単なるコピーでなく、画像の加工が加
わる場合にはこの限りではない。すなわち、図100の
ステップ2の前に、画像データを加工するか否かを判定
し、画像データを加工する場合には、スキャナ及びプリ
ンタの仕様に関わりなく、方式3を選択し、ステップS
5〜S8における設定では、データの径路が方式3にな
るよう各ブロックの設定を行う。こうすることで、画像
データを加工する場合には読み込んだ画像データはいっ
たんメモリに格納されるため、そこで画像データに対し
て必要な加工を施すことができる。
【0466】また、方式2あるいは方式3ではバスを使
用する。この際、GバスあるいはBバスのいずれを使用
するかは、各バスの使用状況により決定される。すなわ
ち、Gバス/Bバスともにアイドル状態であれば、バス
幅の広いGバスを使用する。いずれかが使用中であれ
ば、未使用の方を使用する。
【0467】以上説明したように、DoEngineに
おいては、スキャナは、スキャナコントローラ4302
及びGBI SCC4301Aを介してバス(Gバス及
びBバス)に接続されている。スキャナコントローラ4
302及びGBI SCC4301Aは、それぞれFI
FOを介して互いに画像データを転送するように接続さ
れている。このように、それぞれがFIFOを有してい
るために、GBIは、64ビット幅で動作クロックが1
00MHzという非常に高速なGバスに接続されている
にも関わらず、比較的低速なスキャナから読み込まれた
画像データを効率的に転送することができる。これは、
プリンタコントローラに関しても同様である。
【0468】さらに、スキャナとプリンタそれぞれの同
期信号の一致・不一致に応じて、コピー時のデータ経路
を選択することで、スキャナ及びプリンタの仕様がどの
ようなものであろうとも、可能な限り速いデータ転送を
用いてコピーを行うことができる。
【0469】すなわち、上述のスキャナコントローラ及
びプリンタコントローラ及びそれぞれのGBIを用いて
スキャナ及びプリンタをDoEngineのバスに接続
することで、スキャナ及びプリンタの仕様からのDoE
ngineの独立性をより高めることが可能となった。 [その他の構成例]図9及び図10で示したキャッシュ
の動作手順は、図103及び図104のようなものであ
ってもよい。
【0470】図103においては、MCバスよりデータ
転送が開始されると、その最初にMCバスで示されるm
TType[60:0]によってその転送をキャッシュ
オンで行うかオフで行うか判断される。ここでは、転送
がバースト転送の時、そのバースト転送データ量がキャ
ッシュの1ラインのデータ量より大か小かによって判断
する。なお、キャッシュの1ラインは256ビット=4
バースト分である。
【0471】図103において、メモリコントローラは
転送の開始でmTType[3:0]をチェックし、m
TTypeが示すバースト長が1/2/4であれば、キ
ャッシュオンで動作し、6/8/16/2×16/3×
16/4×16の場合はキャッシュオフで動作する。キ
ャッシュオンあるいはオフ後の動作は、図9及び図10
と同様である。
【0472】また、図105及び図106のように、デ
バイスによってキャッシュのオンオフを切り替えること
もできる。図105において、メモリコントローラは転
送の開始でmTType[6:4]をチェックすること
により転送要求デバイスを識別し、そのデバイスの転送
要求をキャッシュオンで動作するか、オフで動作するか
を判断するために、あらかじめ設定されている構成レジ
スタの値を参照し、キャッシュオンで動作するか、オフ
で動作するか決定する。キャッシュオンあるいはオフ後
の動作は、図9及び図10と同様である。構成レジスタ
の設定は、ハードウエア的に決定(変更不可)していも
良いし、ソフトウエアで書換え可能にしてもよい。
【0473】(実施の形態) <ジョブの分割>まず、本発明の実施の形態について、
図107〜図108を用いて説明する。本実施形態は、
デジタル複合機に投入された種々のジョブをページ単位
に処理をするためにデバイスの獲得と開放を並列に行い
情報を処理するものである。
【0474】図107は、本発明にかかる情報処理シス
テムの構成図であり、同図中、101a,102a,1
03aはホストコンピュータで、種々のジョブを生成し
周辺機器にジョブを送信する。104aはデジタル複合
機で、プリントジョブ、スキャンジョブ、ファックスジ
ョブ、コピージョブ等、種々のジョブを実行処理する。
第1、第2のホストコンピュータ101a,102a及
びデジタル複合機104aは、それぞれがLAN(ロー
カルエリアネットワーク)105aに接続されており、
デジタル複合機104aを使用することができる。
【0475】また、第3のホストコンピュータ103a
は、LANではなくパラレル(またはシリアル)等のイ
ンターフェース106aを介してデジタル複合機104
aに接続され、該デジタル複合機104aを使用するこ
とができる。
【0476】図108は、図107に示す情報処理シス
テムの基本的な構成を示すブロック図であり、同図にお
いて、201aはCPU(中央演算処理装置)で、本シ
ステム全体の制御及び演算処理等を行う。207aはエ
ンジンインターフェース(エンジンI/F)で、実際に
エンジンを制御するコマンド等をやり取りする。
【0477】208aはネットワークインターフェース
(ネットワークI/F)で、このネットワークI/F2
08aを介して機器がネットワークに接続される。
【0478】209aは外部インターフェース(外部I
/F)で、パラレル(またはシリアル)等のインターフ
ェースを介してホストコンピュータと接続される。21
0はシステムバスで、上述した各構成要素間のデータの
通路となる。
【0479】CPU201a、エンジンインターフェー
ス(エンジンI/F) 207a、ネットワークインタ
ーフェース(ネットワークI/F) 208a、外部イ
ンターフェース(外部I/F)209aはDoEngi
ne201(図2)を構成する。
【0480】202aはROM(リードオンリーメモ
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。203aはRAM(ランダムアク
セスメモリ)で、使用期限のない記憶領域で、ダウンロ
ードにより追加登録されたフォントデータが記憶された
り、様々な処理ごとにプログラムやデータがロードされ
実行される。
【0481】204aは例えばハードディスク等の外部
記憶装置で、印刷装置(プリンタ)が受け付けた印刷ジ
ョブ(プリントジョブ)をスプールしたり、プログラム
や各種情報ファイル等が格納されたり、作業用の領域と
して利用される。
【0482】205aは液晶表示機等の表示部で、印刷
装置の設定状態や、現在の印刷装置内部の処理状態や、
エラー状態等を表示する。
【0483】206aは操作部で、印刷装置の設定を変
更したり、リセットするために使用される。
【0484】図109は、ホストコンピュータとデジタ
ル複合機104aの内部ソフトウエア構造を示す図であ
り、同図において、301はホストコンピュータ(図1
07の101a〜103aに相当する)である。302
はコントローラソフトウェアで、その内部はプロトコル
解釈部303、ジョブ制御部304及びデバイス部30
5に分割されている。
【0485】プロトコル解釈部303は、ホストコンピ
ュータ301から図1のLAN105または図2の外部
I/F209を介して送られてきたコマンド(プロトコ
ル)を解釈して、ジョブ制御部304に対してジョブの
実行を依頼する部分である。また、ジョブ制御部304
は、プロトコル解釈部303の依頼したジョブを実際に
処理する部分である。更に、デバイス部305は、ジョ
ブ制御部304がジョブを実行する際に使用される。
【0486】図110は、コントローラソフトウェア3
02の概略を説明するためのブロック図である。同図に
おいて、303はプロトコル解釈部、304はジョブ制
御部、305はデバイス部である。ジョブ制御部304
は、ジョブ生成部401a、ジョブ処理部402a、ド
キュメント処理部403a、ページ処理部404a、バ
ンド処理部405a、デバイス割り当て部406aを有
している。
【0487】また、デバイス部305は、第1デバイス
407a、第2デバイス408a及び第3デバイス40
9aを有している。
【0488】図107のホストコンピュータ101a〜
103aから送られてきた一連の操作依頼は、コマンド
(プロトコル)という形で、ネットワークI/F208
a及び外部I/F209aを介して送られてくる。送ら
れてきたコマンドは、プロトコル解釈部303で解釈さ
れた後、ジョブ制御部401aに送られる。この時点で
コマンドは、ジョブ制御部304が理解できる形に変換
されることになる。
【0489】ジョブ生成部401aはジョブ410aを
生成する。このジョブ410aはコピージョブ、プリン
トジョブ、スキャンジョブ及びファックスジョブ等、様
々なものが考えられる。
【0490】例えば、プリントジョブならば印刷する文
書の名前や印刷部数、出力先の排紙トレイの指定等の設
定情報や、印刷データ自体(PDLデータ)等も含まれ
る。ジョブ410aはジョブ処理部402aに送られ、
処理が行われる。ここでは、ジョブ410a全体に関す
る設定(複数の文書をまとめて印刷しステープルする
等)や処理が行われる。
【0491】更に、ジョブ処理部402aでは、ジョブ
410a全体に関する設定や処理以外は、更に小さな仕
事の単位である入力ドキュメント411aに分割する。
入力ドキュメント411aは、ドキュメント処理部40
3aにより出力ドキュメント414aに変換処理され
る。
【0492】つまり、例えば、原稿の束をスキャナで読
み取り、複数のイメージデータに変換するスキャンジョ
ブを考えると、原稿の束に関する設定や操作の手順が書
かれているのが入力ドキュメント411aであり、複数
のイメージデータに関する設定や操作の手順が書かれて
いるのが出力ドキュメント414aである。そして、紙
の束を複数のイメージデータに変換する役割を持ってい
るのがドキュメント処理部403aである。
【0493】また、ドキュメント処理部403aは、ド
キュメント単位の処理のみ行い、更に小さな仕事の単位
である入力ページ412aを生成する。これは、ちょう
どジョブ処理部402aがジョブ単位の処理に専念し
て、更に細かい仕事のためにドキュメントを生成するの
と同じである。ドキュメント単位の設定及び操作は、具
体的にはページの並び替え、両面印刷の指定、表示の付
加、OHP中差し等のページ順序に関するものである。
【0494】また、入力ページ412aはページ処理部
404aにより出力ページ415aに変換される。例え
ば、上記の例のスキャンジョブの場合は、入力ページ4
12aには読み取りの解像度、読み取りの向き(ランド
スケープ/ポートレイト)等の設定や手順が書かれてお
り、出力ページ415aにはイメージデータの格納場所
(RAM203aや外部記憶装置204aのアドレスや
データ名)等の設定や手順が書かれている。
【0495】以上の処理により、ジョブの構成をページ
単位に分解して扱えるようになる。
【0496】高価なシステムでは、1ページ分のページ
メモリを持てるならば、最終的にページ単位までジョブ
を詳細化すればよい。しかし、現実にはメモリのコスト
等の問題や、印刷エンジンがインクジェットプリンタの
ような低速の場合には、数ライン分のメモリ(バンドメ
モリ)しか持たないシステムも考えられる。そのような
場合には、ページを更に細かい単位であるバンドに分け
て扱う。それが入力バンド413a、バンド処理部40
5a、出力バンド416aの役目である。これらの動作
に関しては、ページの場合と同様である。
【0497】ジョブ処理部402a、ドキュメント処理
部403a、ページ処理部404a及びバンド処理部4
05aは、いずれも処理を進める際にデバイスを使用す
る。複数の処理部が同時に仕事を進めるとデバイスの競
合が発生するので、それを調停するのがデバイス割り当
て部406aである。第1〜第3デバイス407a〜4
09aは、デバイス割り当て部406aにより上記処理
部に割り当てられるデバイスである。
【0498】デバイスの例としては、ページメモリやバ
ンドメモリ、ドキュメントフィーダー、マーキングエン
ジン及びスキャナ等が考えられる。
【0499】(複合ジョブの処理)図110では単一の
ジョブをページ単位に分解して、デバイスの割り当てを
行う処理を示した。次に、図111を用いて複合したジ
ョブの処理を説明する。
【0500】「複合したジョブ」とは、例えばジョブが
コピージョブであれば、スキャンジョブと、プリントジ
ョブとに分割され、FAX受信ジョブであれば、データ
の受信ジョブと、受信したデータのプリントジョブとに
分割される。分割されたジョブはページ単位にデバイス
が割り当てられ、処理される。以下その処理内容につい
て説明する。なお、情報処理システムの基本的な構成
は、上述した単一ジョブの分割で説明した図107〜図
109と同一であるから、必要に応じてこれらの図を流
用して説明する。
【0501】図111は、複合ジョブを処理する情報処
理システムにおける周辺機器のソフトウェア構造の詳細
を示す図である。同図において、303はプロトコル解
釈部、304はジョブ制御部、305はデバイス部であ
る。
【0502】コピージョブは、ジョブ制御部304の中
では、2つのジョブ(スキャンジョブとプリントジョ
ブ)に分割され処理される。図107のホストコンピュ
ータ101a〜103aから送られてきた一連の操作依
頼は、コマンド(プロトコル)という形で図108のネ
ットワークI/F208a及び外部I/F209aを介
して送られてくる。
【0503】送られてきたコマンドは、プロトコル解釈
部303で解釈された後、ジョブ制御部304へ送られ
る。この時点でコマンドは、ジョブ制御部304が理解
できる形に変換されることになる。ジョブ生成部401
aは図110のジョブ410aを生成する。本実施の形
態では、コピージョブが生成されることになる。
【0504】生成されたコピージョブ513は、図11
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が挙げられ
る。
【0505】図115はジョブの分割例を示すブロック
図である。ホストコンピュータ301から送られてきた
コマンドがコピージョブである場合、ジョブ制御部30
4の処理は、コピージョブを更にプリントジョブとスキ
ャンジョブとに分割し、分割したジョブを処理するため
のデバイス(例えば、プリンタ、スキャナ、メモリ等)
が割り当てられ、それぞれ処理が進められる。
【0506】以上のように、ジョブをページ単位に分割
して、各々の処理を実行するデバイスの割り当てと解放
を先に説明したDoEngineと組合わせて行うこと
により、効率的な複合機の制御が可能になることを以下
に説明する。
【0507】図4のDoEngineのブロックを用い
て、コピー動作を行う場合のデータの流れを説明する。
この場合、処理系のデバイスとして割り当てられるのは
スキャナとプリンタである(図5の514、521)。
スキャンジョブ(514)の場合、スキャナからのイメ
ージデータはスキャナコントローラ4302により制御
され、GBUs404、システムバスブリッジ402を
介してメモリ403に書込まれる。プリントジョブの場
合、メモリ403に書込まれたデータは、システムバス
ブリッジ402、BBus405を介してプリンタコン
トローラ4303に送られプリント処理される。Dua
l−Bus構成とすることにより、Busの占有を解消
し、並列的に、CPU、メモリへのアクセスが可能にな
る。データの入力と平行して、出力を並列したタイミン
グで行うことが可能になる。
【0508】つまり、図5の処理でコピージョブ513
を分割したスキャンジョブ514とプリントジョブ52
1とは並列して処理することが可能になる。
【0509】DoEngineを用いて、ページ単位の
入出力処理を行う際のデバイスの割り当てと解放を次に
説明する。
【0510】図113はスキャナとプリンタを処理系の
デバイス例として、ジョブ単位にシリアルに処理した従
来の場合(図113(a))と,本実施形態において、
ページ単位に並列に処理した場合(図113(b))の
デバイスの割り当てと解放をタイミングチャートとして
示した図である。
【0511】図113(a)の場合、ジョブ1のデバイ
スの割り当ては時刻T1でスキャナが割り当てられ、時
刻T2で解放される。続いてプリンタが時刻T3で割り
当てられ、時刻T4で解放される。後続のジョブ2で必
要となるスキャナ処理は時刻T5で割り当てられるが、
ジョブ1の処理でT2からT4までの時間帯はスキャナ
の空き時間であり、ジョブ2に対するむだ時間となる。
ジョブ2のプリンタはスキャナの解放(時刻T6)後、
時刻T7で割り当てられ時刻T8で解放される。
【0512】ここで、「むだ時間」とは資源としてのデ
バイスは処理可能な状態であるにもかかわらず、入力す
るべき情報の仕掛かりによりデバイスが処理に着手でき
ない時間をいう。
【0513】一方、図113(b)の場合、ジョブ1の
デバイスの割り当ては時刻T1でスキャナが割り当てら
れ、時刻T2で解放される。DoEngineによる処
理の並列化により、スキャナの解放前(時刻T2)に、
プリンタの割り当てが行われる(時刻T1a)。ジョブ
2に対するスキャナの割り当ては、時刻T2以降、可能
になる。例えば、T1cにスキャナの割り当て要求があ
った場合、T1cからT2までがスキャナ割り当てまで
の待機時間となる。
【0514】同様にプリンタの割り当ては、スキャナの
解放前(時刻T1d)に可能であり、時刻T1b以降割
り当てられ、時刻T1fに解放される。プリンタの割り
当て要求が時刻T1eにあった場合、T1eからT1b
までの時間帯はプリンタ割り当てまでの待機時間であ
る。以上の説明はコピージョブ同士を例に説明したが、
コピーとFAX、コピーとPDLプリント等を処理する
場合でも同様である。ジョブ1及び2のスループットは
(a),(b)を比較するとT8−T1fと短縮され
る。
【0515】ここで、「待機時間」とは、処理すべきデ
ータはすでに用意されておりデバイスの解放待ちとなる
時間をいい、入出力データの並列的な処理を可能にし、
データの仕掛かりを解消する点において、従来とは異な
るものである。ジョブのプライオリティなどの条件を反
映した、アービトレーションをDoEngineにより
行いデバイスの割り当てを制御することにより、「待機
時間」の最適化(最短化)が可能である。
【0516】ジョブの単位はFAXの送受信、PDL印
刷、コピー等があり、デバイス割り当て部406aは第
1〜第3デバイス407a〜409aの割当てを行う。
デバイスには、例えば、ページメモリやバンドメモリ、
ドキュメントフィーダー、マーキングエンジン及びスキ
ャナ等も含まれる。
【0517】図114はコピージョブ513aと、51
3bとが生成された場合のブロック図である。基となる
ジョブが種々生成された場合であても、先に説明したよ
うに、ページ単位の分割を行い、並列的にデバイスの割
り当てと解放を行う点においては同様である。
【0518】システムバスブリッジ402と、Dual
−Bus(GBus404、BBus405)とを用い
たDoEngineアーキテクチャによれば、データ処
理の競合を解消することが可能となり、従来はインタフ
ェース等にローカルに保有していたメモリが不要とな
る。1元的に集中管理されたメモリ403により、情報
を共有することが可能になる。
【0519】(リアルタイム性の向上)図107から1
08に示した構成では、リアルタイム性の要求される処
理部もリアルタイム性の低い処理部も共通のCPUを用
いていたが、DoEngineをサテライトとして使用
し、CPUの使い分けを行うことで、リアルタイム性を
更に向上させることができる。
【0520】図107の構成に代え図115(a)のよ
うな構成を用いてもよい。図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)と接続した図である。
【0521】(サテライトDoEngine)図116
は、図115で示したサテライトPCにおけるDOEn
gineの接続に関するブロック図である。同図におい
て、DOEngine116−1はCPU401を備
え、リアルタイム性の高いジョブを優先的に処理をす
る。
【0522】116−2はROM(リードオンリーメモ
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。
【0523】116−3はRAM(ランダムアクセスメ
モリ)で、使用期限のない記憶領域で、ダウンロードに
より追加登録されたフォントデータが記憶されたり、様
々な処理ごとにプログラムやデータがロードされ実行さ
れる。
【0524】116−4は例えばハードディスク等の外
部記憶装置で、印刷装置(プリンタ)が受け付けた印刷
ジョブ(プリントジョブ)をスプールしたり、プログラ
ムや各種情報ファイル等が格納されたり、作業用の領域
として利用される。
【0525】116−5は液晶表示機等の表示部で、印
刷装置の設定状態や、現在の印刷装置内部の処理状態
や、エラー状態等を表示する。
【0526】116−6は操作部で、印刷装置の設定を
変更したり、リセットするために使用される。
【0527】116−7はエンジンインターフェース
(エンジンI/F)で、実際にエンジンを制御するコマ
ンド等をやり取りする。
【0528】116−8はネットワークインターフェー
ス(ネットワークI/F)で、このネットワークI/F
208aを介して機器がネットワークに接続される。
【0529】116−9は外部インターフェース(外部
I/F)で、パラレル(またはシリアル)等のインター
フェースを介してホストコンピュータと接続される。2
10はシステムバスで、上述した各構成要素間のデータ
の通路となる。
【0530】図117は、図109に対応するソフトウ
エアの構成を示す図である。同図において、リアルタイ
ム性の低い部分とリアルタイム性の高い部分とを分割し
て処理する。全体の処理を単一のCPUでまかなうので
はなく、ホストコンピュータとサテライトコンピュータ
とでそれぞれ処理を使い分けることにより、CPUの負
荷を軽減し、システム全体としての処理能力の向上を図
ることができる。
【0531】例えば、図117のプロトコル解釈部11
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)。
【0532】
【発明の効果】以上のように、本発明によれば、ページ
単位にジョブ処理を分割し、その処理のためのデバイス
の割り当てと解放をDOEngineを用いて並列的に
行うことで、スループットの向上を図ることができる。
【0533】
【図面の簡単な説明】
【図1】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図2】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図3】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図4】DoEngineのブロック図である
【図5】キャッシュメモリコントローラの3つのステー
トを示す図である。
【図6】インタラプトコントローラ410のブロック図
である。
【図7】メモリコントローラ403のブロック図であ
る。
【図8】キャッシュコントローラ706を中心とする詳
細なブロック図である。
【図9】MCバスよりメモリリード/ライト転送が要求
された場合のキャッシュの動作を示すフローチャートで
ある。
【図10】MCバスよりメモリリード/ライト転送が要
求された場合のキャッシュの動作を示すフローチャート
である。
【図11】ROM/RAMコントローラ707の構成を
示す図である。
【図12】CPUからのバースト読み出しのタイミング
を示すタイミング図である。
【図13】CPUからのバースト書き込みのタイミング
を示すタイミング図である。
【図14】Gバスデバイスからのバースト読み出しのタ
イミングを示すタイミング図である。
【図15】Gバスデバイスからのバースト書き込みのタ
イミングを示すタイミング図である。
【図16】メモリフロントキャッシュにヒットした場合
のシングル読み出しのタイミングを示すタイミング図で
ある。
【図17】メモリフロントキャッシュにヒットしなかっ
た場合のシングル読み出しのタイミングを示すタイミン
グ図である。
【図18】メモリフロントキャッシュにヒットした場合
のシングル書き込みのタイミングを示すタイミング図で
ある。
【図19】メモリフロントキャッシュにヒットしなかっ
た場合のシングル書き込みのタイミングを示すタイミン
グ図である。
【図20】システムバスブリッジ(SBB)402のブ
ロック図である。
【図21】Bバスインターフェースのブロック図であ
る。
【図22】Gバスインターフェース2006のブロック
図である。
【図23】仮想メモリマップ、物理メモリマップ、Gバ
スのアドレス空間でのメモリマップ、Bバスのアドレス
空間でのメモリマップの図である。
【図24】レジスタ等を含む図23における斜線部の5
12メガバイトを示すマップの図である。
【図25】アドレススイッチ2003のブロック図であ
る。
【図26】データスイッチ2004のブロック図であ
る。
【図27】Gバスからの書き込み/読み出しサイクルの
タイミング図である。
【図28】Gバスのバースト停止サイクルのタイミング
図である。
【図29】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図30】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図31】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図32】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図33】PCIバスインターフェース416のブロッ
ク図である。
【図34】Gバスアービタ(GBA)406のブロック
図である。
【図35】DoEngine400内におけるGバス4
04を中心とする、Gバス上のバスマスタによるDMA
に係るブロック図である。
【図36】連続してバスを使用する回数が、バスマスタ
1〜4のすべてについて1に設定されている場合の公平
アービトレーションモード(フェアモード)の例を示す
図である。
【図37】連続してバスを使用する回数が、バスマスタ
1についてのみ2であり、他のバスマスタは1に設定さ
れている場合の公平アービトレーションモードの例を示
す図である。
【図38】連続してバスを使用する回数がそれぞれ1ず
つであり、バスマスタ1が優先バスマスタと設定されて
いる場合の優先アービトレーションモードの例を示す図
である。
【図39】バスマスタ1からのバス要求により、バスマ
スタ4のバス要求が許可されているにもかかわらず中断
された例を示す図である。
【図40】Bバスアービタ407のブロック図である。
【図41】同期ユニット4001のブロック図である。
【図42】同期ユニット内の一つコンペアユニットの図
である。
【図43】スキャナ/プリンタコントローラのブロック
図である。
【図44】スキャナコントローラ4302のブロック図
である。
【図45】スキャナデバイスI/F4401のブロック
図である。
【図46】スキャナビデオクロックユニット4402の
ブロック図である。
【図47】スキャナビデオデータマスク4601のブロ
ック図である。
【図48】スキャナビデオデータマスク4602のブロ
ック図である。
【図49】スキャナビデオデータ幅コンバータ4603
のブロック図である。
【図50】RGB各8ビットのカラー画像データ(24
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図51】RGB各8ビットのカラー画像データ(32
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図52】8ビットの白黒画像データのメモリ上でのな
らびを示す図である。
【図53】2値の白黒画像データのメモリ上でのならび
を示す図である。
【図54】BW8パッキングユニット4901により、
多値8ビットの白黒画像データを64ビット幅に変換す
る際のタイミング図である。
【図55】シフトレジスタ4902により2値白黒画像
データを64ビット幅に変換する際の画像データ入力の
タイミング図である。
【図56】RGBパッキングユニット4903により、
RGB各8ビット(全24ビット)の画像データを64
ビット幅に変換する際のタイミング図である。
【図57】RGBパッキングユニット4903のブロッ
ク図である。
【図58】スキャナ画像データ転送FIFOコントロー
ラ4403のブロック図である。
【図59】スキャナコントローラコントロールレジスタ
4404のブロック図である。
【図60】IRQコントローラ4406のブロック図で
ある。
【図61】メモリフィルモードコントローラ4405の
ブロック図である。
【図62】スキャナコントローラ4302からデータを
読み出してDMA転送する際のタイミング図である。
【図63】スキャナコントローラ4302の内部レジス
タに対して読み出しあるいは書き込みを行うタイミング
図である。
【図64】信号sccDmaPmStateの値及びク
ロックの状態と信号sccPmStateの値との関係
を示す図である。
【図65】スキャナコントローラ4302における、各
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
【図66】プリンタコントローラ4303のブロック図
である。
【図67】プリンタデバイスI/F6601のブロック
図である。
【図68】プリンタビデオクロックユニット6602の
ブロック図である。
【図69】プリンタビデオデータマスク6801のブロ
ック図である。
【図70】プリンタビデオ同期コントロールユニット6
802のブロック図である。
【図71】ビデオデータ幅コンバータ6803のブロッ
ク図である。
【図72】RGB各8ビットのカラー画像データ(24
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図73】RGB各8ビットのカラー画像データ(32
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図74】8ビットの白黒画像データのメモリ上でのな
らびを示す図である。
【図75】2値の白黒画像データのメモリ上でのならび
を示す図である。
【図76】RGBoutユニット7101のブロック図
である。
【図77】プリンタ画像データ転送FIFOコントロー
ラ6603のブロック図である。
【図78】プリンタコントローラコントロールレジスタ
6604のブロック図である。
【図79】IRQコントローラ6605のブロック図で
ある。
【図80】IRQコントローラ6605のブロック図で
ある。
【図81】プリンタコマンド/ステータスコントロール
ユニット6606のブロック図である。
【図82】オプションコントローラコントロールユニッ
ト6607のブロック図である。
【図83】プリンタコントローラ4303へデータをD
MA転送する際のタイミング図である。
【図84】プリンタコントローラ4303の内部レジス
タに対して読み出しあるいは書き込みを行うタイミング
図である。
【図85】信号pscDmaPmStateの値及びク
ロックの状態と信号prcPmStateの値との関係
を示す図である。
【図86】プリンタコントローラ4303における、各
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
【図87】電力管理ユニット409のブロック図であ
る。
【図88】バスエージェントのブロック図である。
【図89】スキャナコントローラからプリンタコントロ
ーラへと直接画像データを転送してコピーする画像のコ
ピー方式で使用されるブロックを示す図である。
【図90】スキャナコントローラからプリンタコントロ
ーラへと、FIFOを介して画像データを転送してコピ
ーする画像のコピー方式で使用されるブロックを示す図
である。
【図91】スキャナコントローラからプリンタコントロ
ーラへと、メモリを介して画像データを転送してコピー
する画像のコピー方式で使用されるブロックを示す図で
ある。
【図92】GBIのブロック図である。
【図93】FIFOユニットのブロック図である。
【図94】GBusコントローラのブロック図である。
【図95】BBusコントローラのブロック図である。
【図96】DMAコントローラのブロック図である。
【図97】レジスタユニットのブロック図である。
【図98】チェインテーブルの構成例を示す図である。
【図99】GBIのコアインターフェースを示す図であ
る。
【図100】コピー方式を選択する手順のフローチャー
トである。
【図101】スキャナコントローラ4302内部のデー
タバスの切り換え回路を示す図である。
【図102】プリンタコントローラ4303内部のデー
タバスの切り換え回路を示す図である。
【図103】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図104】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図105】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図106】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図107】本発明の実施の形態に係る情報処理システ
ムの構成図である。
【図108】本発明の実施の形態に係る情報処理システ
ムにおける周辺機器の基本的な構成を示すブロック図で
ある。
【図109】本発明の実施の形態に係る情報処理システ
ムにおける周辺機器のソフトウェア構造を概要を示す図
である。
【図110】本発明の第1の実施の形態に係る情報処理
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
【図111】本発明の第2の実施の形態に係る情報処理
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
【図112】従来におけるジョブを一体として処理する
場合のタイミングチャートである。
【図113】デバイスの割り当てと解放を行う処理を説
明する図である。
【図114】複数のジョブが生成された場合の処理を説
明する図である。
【図115】DoEngineをサテライトとして使用
する場合のシステムの構成例を示した図である。
【図116】システムソフトウェア処理を2つのCPU
で別々に処理する場合を説明する図である。
【図117】複数のCPUにより処理を分割する場合の
ソフトウェア構造の概要を示す図である。
【符号の説明】
401 CPU 402 バスブリッジ 403 メモリ 404 Gバス 405 Bバス 406 Gバスアービタ 407 Bバスアービタ 4301A Gバス/Bバスインターフェース(スキャ
ナ) 4301B Gバス/Bバスインターフェース(プリン
タ) 4302 スキャナコントローラ 4303 プリンタコントローラ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年4月16日(1999.4.1
6)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 複合機器の情報処理方法及びシステム
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリンタ、ファッ
クス(FAX)、複写機等、複合機器に関して情報を処
理する方法及びシステムに関する。
【0002】
【従来の技術】従来、スキャナなどの画像入力装置とプ
リンタなどの画像出力装置とを組み合わせた複写機やフ
ァクシミリ、あるいはそれらを単体として備えたコンピ
ュータシステムなど、複合機器と呼ばれる画像処理装置
が実用化されている。このような装置では、画像入力機
能、画像出力機能、コピー機能等の複合機能を実現する
ために、画像入力装置及び画像出力装置が同期して動作
することが不可能な場合には、画像入力装置から一旦メ
モリに取り込んだ画像データを画像出力装置に出力する
ことでコピー機能を実現していた。また、画像入力装置
及び画像出力装置が同期して動作することが可能な場合
には、画像入力装置から画像出力装置へ直接画像信号を
転送する経路を設けてコピー機能を実現していた。
【0003】従来のデジタル複合機は、複写機にファッ
クス機能を追加したものや、ファックスにプリンタ機能
を追加したもの等、従来機の機能追加という形で発展し
てきており、複合動作ができてもジョブ単位の複合動作
及び並列動作しか行えなかった。従来のデジタル複合機
では、扱う種々のデータを入出力のために授受する十分
なバスの使用が確保できない場合のために、スキャナ、
プリンタ等のインタフェース部にローカルなメモリを分
散させた構成となっていた。
【0004】図112はジョブ単位の制御をした場合
の、ジョブ処理を説明するタイミングチャートである。
プリントジョブ1及びプリントジョブ2が複合機器で処
理するべきジョブである。これらのジョブが、あるリソ
ース(例えばページメモリ)を獲得する場合を考える。
時刻T1で先に投入されたプリントジョブ1がリソース
を獲得する。T2のタイミングで後続のプリントジョブ
2がリソースの獲得を行うが、プリントジョブ1がリソ
ースを占有しており(ロック)しており、獲得できず、
リソースの獲得要求はキューイングされる。そしてT3
のタイミングでプリントジョブ1がリソースを開放する
と、キューイング中のプリントジョブ2のリソース獲得
要求に従い、プリントジョブ2がリソースを獲得し、処
理を行う。つまり、T1からT3の時間、プリントジョ
ブ1は排他的にリソースを使用するためにプリントジョ
ブ1とプリントジョブ2の処理はシリアルになる。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
デジタル複合機では、一連のジョブの処理をジョブ単位
ごとに順序だてて実行させていたために、複数のジョブ
がデジタル複合機に入力された場合は先行するジョブの
処理終了まで、後続のジョブは待機状態となり、ジョブ
のスループットは低下した。
【0006】また、ローカルに分散して確保されたメモ
リは、デバイスごとに重複した情報を格納する場合もあ
り、必要な領域以上の冗長なメモリ領域を必要としてい
た。
【0007】また、リアルタイム性の要否に差がある処
理を単一のCPUでまかなう場合、リアルタイム性を必
要とする処理が、リアルタイム性を要さない処理の犠牲
となり、システム全体の処理能力を低下させていた。
【0008】
【課題を解決するための手段】本発明にかかる方法、及
びシステムは上記課題のいずれかを解決するためののも
であり、主として以下の構成からなることを特徴とす
る。
【0009】すなわち、複合機器の情報処理方法は、情
報処理装置から送信された手続きを解釈する解釈工程
と、前記手続きの解釈に基き、ジョブを生成するジョブ
生成工程と、前記生成されたジョブを構成する要素に分
割する分割工程と、前記分割した要素を処理するための
デバイスの割り付けと解放とを管理するデバイス管理工
程と、前記分割した要素の処理を並列に処理するために
データの書込みと、読取りを行う複数のバスの使用を制
御するバス制御工程とを備え、前記要素の並列処理によ
り、スループットを最短にすることを特徴とする。
【0010】あるいは、複合機器の情報処理システム
は、情報処理装置から送信された手続きを解釈する解釈
手段と、前記手続きの解釈に基き、ジョブを生成するジ
ョブ生成手段と、前記生成されたジョブを構成する要素
に分割する分割手段と、前記分割した要素を処理するた
めのデバイスの割り付けと解放とを管理するデバイス管
理手段と、前記分割した要素の処理を並列に処理するた
めにデータの書込みと、読取りを行う複数のバスの使用
を制御するバス制御手段とを備え、前記要素の並列処理
により、スループットを最短にすることを特徴とする。
【0011】
【発明の実施の形態】次にプロセッサコア、プロセッサ
周辺コントローラ、メモリコントローラ、スキャナ/プ
リンタコントローラ、PCIインターフェースなどを内
蔵したシングルチップ・スキャニング・プリンティング
エンジンである“DoEngine”を説明する。
【0012】1.DoEngine概要 DoEngineは、MIPSテクノロジー社のR40
00プロセッサとコンパチブルなプロセッサコア、プロ
セッサ周辺コントローラ、メモリコントローラ、スキャ
ナー/プリンタコントローラ、PCIインターフェース
などを内蔵したシングルチップ・スキャニング・プリン
ティングエンジンである。高速並列動作、ビルディング
ブロック手法を採用し実装される。
【0013】プロセッサシェル(プロセッサコアを含む
プロセッサ周辺回路の総称)内には最大でインストラク
ション、データそれぞれ16Kバイトの計32Kバイト
のキャッシュメモリ、FPU(浮動小数点演算ユニッ
ト)、MMU(メモリ管理ユニット)、ユーザー定義可
能なコプロセッサなどを内蔵することが可能である。
【0014】PCIバスインターフェースを有するの
で、PCIバススロットを有するコンピュータシステム
と共に用いることができる。また、PCIサテライト構
成に加え、PCIホストバスブリッジ構成にてPCIバ
スコンフィギュレーションを発行することが可能であ
り、安価なPCI周辺デバイスと組み合わせることによ
り、マルチファンクションペリフェラル(複合機能周辺
機器)のメインエンジンとして使用することも可能であ
る。さらにPCIバスインターフェースを有するレンダ
リングエンジン、圧縮・伸長エンジンと組み合わせるこ
とも可能である。
【0015】チップ内部に汎用IOコアを接続するIO
バス(Bバス)、及び、画像データ転送に最適化したグ
ラフィックバス(Gバス:Graphics Bus)の2系統の独立
したバスを有し、メモリ、プロセッサとこれらのバスを
クロスバスイッチを介して接続することにより、マルチ
ファンクションシステムにおける同時動作に必須の、並
列性の高い高速データ転送を実現している。
【0016】メモリには、画像データに代表される、連
続したデータ列のアクセスに対し、最高のコストパフォ
ーマンスを有するシンクロナスDRAM(SDRAM)
をサポートし、SDRAMのバーストアクセス高速デー
タ転送のメリットを享受できない小さなデータ単位での
ランダムアクセスにおける性能低下を最小に抑えるため
に、8Kバイトの2ウェイセットアソシアティブ・メモ
リフロントキャッシュをメモリコントローラ内に備え
る。メモリフロントキャッシュは、すべてのメモリライ
トに対するバススヌープが難しい、クロスバスイッチを
採用したシステム構成においても、複雑な機構なしに、
キャッシュメモリによる高性能化が達成出来る方式であ
る。また、リアルタイムデータ転送(機器制御)が可能
な、プリンタ及びスキャナーとのデータインターフェー
ス(Video Interface)を有し、さらにハードウェアによ
る、機器間同期のサポート及び画像処理を行う事によ
り、スキャナ、プリンタ分離型の構成においても、高品
質で高速なコピー動作の実現が可能な構成となってい
る。
【0017】なお、DoEngineは、コアが3.3
Vで動作し、IOは5Vトレラントである。
【0018】図1及び図2,図3は、DoEngine
を用いた装置あるいはシステムの構成例を示している。
図1は分離構成型であり、パーソナルコンピュータ10
2には、それが備えるPCIインターフェースを介して
DoEngineを備えたローカルボード101が装着
される。ローカルボード101にはDoEngineの
ほか、後述するメモリバスを介してDoEngineと
接続されたメモリと、色処理回路(チップ)が設けられ
ている。このローカルボード101を介して、高速スキ
ャナ103とカラー/モノクロプリンタ104とがパー
ソナルコンピュータ102に接続される。この構成によ
り、パーソナルコンピュータの制御のもとで,ローカル
ボード101により、スキャナ103から入力された画
像情報を処理し、プリンタ104から出力させることが
できる。
【0019】また、図2及び図3はスキャナ203とプ
リンタ202とを一体に組み込んだ例で、図2は通常の
複写機に類する構成を、図3(a)はファクシミリ装置
などの構成を示している。図3(b)は、図3(a)を
コントロールするコンピュータを示している。
【0020】これらのうち、図1,2は、PCIインタ
ーフェースを介して接続された外部のCPUによりDo
Engineが制御されるというスレーブモードで使用
されている例であり、図3は、DoEngineのCP
Uが主体となり、PCIインターフェースを介して接続
されたデバイスを制御するマスタモードで使用されてい
る例である。
【0021】表1として、DoEngineの仕様を示
す。外部インターフェースとして、PCI,メモリバ
ス,ビデオ,汎用入出力,IEEE1284,RS23
2C,100baseT/10baseT,LCDパネ
ル及びキーを備えるが、更にUSBを有していてもよ
い。内蔵ブロックとして、CPUコアに加えて、1次キ
ャッシュ,キャッシュ付きメモリコントローラ,コピー
エンジン,IOバスアービタ(Bバスアービタ),グラ
フィックバスアービタ(Gバスアービタ)などを備えて
いる。また、DMAコントローラはチャネル数が5であ
り、グラフィックバス(Gバス),IOバス(Bバス)
ともに、アービトレーションは優先度付きの先着順処理
方式で行われる。
【0022】
【表1】
【0023】2.DoEngineの構成及び動作 本章では、DoEngine の総論に加え、各機能ブ
ロック毎のブロック図、概要、詳細、コアインターフェ
ース、タイミング図などを解説する。
【0024】2.1.DoEngineのチップ構成 図4として、DoEngineのブロック図を示す。D
oEngine400は次世代複合機能周辺機器(シス
テム)(MFP:Multi Function Peripheral or MFS:Multi
Function System)の主たるコントローラとして設計、開
発された。
【0025】CPU(プロセッサコア)401として、
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モジュール間を、可能な限り、同時平行接
続を確保することができるように設計されている。
【0026】Gバス404はGバスアービタ(GBA)
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にも接続されている。
【0027】2.2.プロセッサシェル プロセッサシェルとは、プロセッサコアに加えMMU
(Memory Management Unit)、命令キャッシュ、データ
キャッシュ、ライトバックバッファ及び掛け算ユニット
を含んだブロックを指す。
【0028】(キャッシュメモリ)図5に示したよう
に、キャッシュメモリコントローラは、無効(Invali
d),有効かつクリーン(Valid Clean:キャッシュが更
新されていない),有効かつダーティ(Valid Dirty:キ
ャッシュが更新されている)の3つのステートキャッシ
ュを管理する。この状態に応じて、キャッシュは制御さ
れる。
【0029】2.3.インタラプトコントローラ 図6にインタラプトコントローラ410のブロック図を
示す。
【0030】インタラプトコントローラ410は、Bバ
スインターフェース605を介してBバス405に接続
され、DoEngineチップ内の各機能ブロック及
び、チップ外部からのインタラプトを集積し、CPUコ
ア401がサポートする、6レベルの外部インタラプト
及び、ノンマスカブルインタラプト(NMI)に再分配
する。各機能ブロックとは、電力管理ユニット409,
シリアルインターフェースコントローラ411,USB
コントローラ412,パラレルインターフェースコント
ローラ413,イーサネットコントローラ414,汎用
IOコントローラ415,PCIインターフェースコン
トローラ416,スキャナコントローラ4302,プリ
ンタコントローラ4303などである。
【0031】この際、ソフトウェアコンフィギュレーシ
ョン可能なマスクレジスタ(Int Mask Logic 0 - 5)60
2により、各要因毎に割り込みをマスクをすることが可
能である。また、外部インタラプト入力は、選択的エッ
ジ検出回路601により、信号線ごとに、エッジセンス
/レベルセンスを選択することが出来る。要因レジスタ
(Detect and set Cause Reg 0 - 5)603は、各レベ
ルごとに、どのインタラプトがアサートされているかを
示すとともに、ライト動作を行うことで、レベルごとに
クリアを行う事が出来る。
【0032】各レベルの割込み信号は、各レベル毎に少
なくともひとつの割り込みがあれば割込み信号を出力す
べく、論理和回路604により論理和として出力され
る。なお、各レベル内での複数要因間のレベル付けはソ
フトウェアにて行う。
【0033】2.4.メモリコントローラ 図7は、メモリコントローラ403のブロック図であ
る。メモリコントローラ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ビットとする。
【0034】2.4.2.構成及び動作 メモリコントローラの各部はこれから説明するような構
成となっている。
【0035】(MCバスインターフェース(701))
MCバスは、SBB402−メモリコントローラ403
間の専用のバスであり、またSBB内部の基本バスとし
て用いられている。
【0036】CPU401とバスブリッジ402とを接
続する専用バス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ビットがソース(マスタ)を あらわし、下位ビットがシングル/バースト長をあらわす。タイプには次のよう なものがある。
【0037】 mTType[6:4] 信号源 −−−−−−− −−−−−−−−−− 001 CPU 010 Bバス 100 Gバス −−−−−−− −−−−−−−−−− mTType[3:0] シングル/バースト長 −−−−−−− −−−−−−−−−− 1xxx シングル(1−8byte) 0001 2バースト 0010 4バースト 0011 6バースト 0100 8バースト 0101 16バースト 0110 2×16バースト 0111 3×16バースト 0000 4×16バースト ・mBE_L[7:0](出力) … MCバストランザクションバイトイネーブル シングル転送時、64ビットデータバス上の有効なバイトレーンを示す。バースト 転送時はWrite時のみ有効であり、Read時は無視される。 ・mBRdy_L(入力) …MCバスレディ 現在の転送(beat)が終了したことを示す。 ・mTPW_L(出力) … 次トランザクションがIn-page write(ページ 内書き込み) 次の転送が同じページ(同じRowアドレス)のWriteであることを示し、最大4個 までのWriteを続けることができる。ページサイズはあらかじめコンフィギュレ ーションレジスタに設定しておく。 ・mBPWA_L(入力) … バスのページ内書き込み許可 MCバススレーブ(メモリコントローラ)がページ内書き込みトランザクション を許可するかどうかを示し、mBRdy_Lと同じクロックでサンプリングされる。こ の時mBPWA_LがディアサートされていればmTPW_Lは無意味となる。 ・mBRty_L(入力) … バスリトライ MCバススレーブ(メモリコントローラ)がアクセスを未実行のまま終了させる 場合にアサートし、少なくとも1サイクル以上のアイドルの後に再試行しなけれ ばならないことを示す。(もしmBRdy_LとmBRty_Lが同時にアサートされた場合は 、mBRty_Lが優先される。) ・mBerr_L(入力) … バスエラー パリティエラーやその他のバスエラーが発生した場合にアサートされる。
【0038】なお、上述した入出力の別はSBBからみ
ての定義である。 (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信号をアサートし、バスリトラ
イを通知する。
【0039】(SDRAMコントローラ(705))メ
モリコントローラ403は、次のような構成を有するS
DRAMを以下のように制御する。
【0040】(DRAM構成)DRAMの構成として
は、x4,x8,x16ビットタイプの16/64メガビットS
DRAMを64ビットデータバスで8バンク制御すること
ができる。
【0041】
【表2】
【0042】(DRAMアドレスビット構成)DRAM
のアドレスビットの割付けについては、64ビットSD
RAMの場合にはMA[13:0]を、16ビットSDRAMの
場合にはMA[11:0]を使用する。
【0043】
【表3】
【0044】(SDRAMプログラマブル構成(モード
レジスタ))SDRAMは内部にモードレジスタを持
ち、モードレジスタ設定コマンドを用いて下記の項目を
設定する。 バースト長 バースト長は、1,2,4,8,フルページのいずれか
が設定可能であるが、CPUからのバースト転送長が4で
あることから、バースト長4が最適である。Gバスから
の16バースト以上の転送は、Read/Writeコマンド(オ
ートプリチャージ無し)を連続して発行することにより
実現する。 ラップタイプ(Wrap Type) バースト転送時のアドレスのインクリメント順を設定す
る。「シーケンシャル」または「インターリーブ」のど
ちらかが設定可能である。 CASレイテンシ CASレイテンシは、1,2,3のいずれかが設定可能で
あり、使用するSDRAMのグレードと動作クロックに
より決定される。
【0045】(SDRAMコマンド)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)時にセルフリフレッシュが続行される。
【0046】(SDRAM初期化)メモリコントローラ
はパワーオンリセット後、SDRAMに対して以下の初
期化を行なう。すなわち、電源投入後100μsのポーズ
期間をおいて、 プリチャージウコマンドを用いて全バンクをプリチャ
ージする。 SDRAMのモードレジスタを設定する。 オートリフレッシュコマンドを用いて、リフレッシュ
を8回行う。
【0047】(フラッシュROMコントローラ(70
4))フラッシュROMコントローラ704は、romAdd
r[23:2]のアドレス信号と4個のチップセレクト(romCs_
L[3:0])信号をサポートする。アドレス信号romAddr2〜r
omAddr9はパリティ信号ramPar0〜ramPar7とマルチプレ
クスされ、アドレス信号romAddr10〜romAddr23は、DR
AMアドレスramAddr0〜ramAddr13とマルチプレクスさ
れている。
【0048】(SRAMコントロール(メモリフロント
キャッシュ))メインメモリとして用いられる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に示す。
【0049】(キャッシュの動作)ここで、MCバスよ
りメモリリード/ライト転送が要求された場合のキャッ
シュの動作を図8のブロック図と、図9及び図10に示
すフローチャートを用いて説明する。
【0050】MCバスよりデータ転送が開始されると、
その転送の最初にMCバス上で示されるmTType[6:0]に
よって、その転送がキャッシュオンでおこなうか、オフ
でおこなうかの判断がおこなわれる。この説明では、転
送がシングル転送であればオン、バースト転送であれば
オフと判断することにする(ステップS901)。すな
わち、mTType(3)が“1”hであれば、シングル転送を
あらわすのでキャッシュオンで、“0”hであればバー
スト転送をあらわすのでキャッシュオフで転送を行う。
【0051】シングル転送(キャッシュオン)の場合、
アドレス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)。
【0052】b1_tag_ram801とb2_tag_ram802より
出力されたb1_tag_addrとb2_tag_addrがそれぞれb1_com
parater804,b2_comparater805でアドレスlmaddr
[31:12]と比較され、その結果、すなわちヒットか否か
がb1_hit_miss_L,b2_hit_miss_L信号によりキャッシュ
コントローラ706へ知らされ、判定される(ステップ
S903)。
【0053】ここでヒットであれば、リードかライトか
が判定される(ステップ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
ヒット)に書き換えて、転送が終了する。
【0054】一方、ヒットかつライトの場合にはつぎの
ようになる。すなわち、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)。
【0055】一方、b1,b2ともにミスである場合にも、
リードかライトか判定される(ステップ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)。
【0056】ステップS901においてバースト転送
(キャッシュオフ)の場合、リード、ライトともSDR
AMに対してだけ行われ(ステップS907−S90
9)、キャッシュデータやタグの書き換え等は行わな
い。
【0057】(ROM/RAMインターフェース(70
7))ROM/RAMコントローラ707の構成を図1
1に示す。ブロック1101〜ブロック1104によ
り、SDRAMのデータ信号、アドレス信号、パリティ
信号が、フラッシュROMのデータ信号、アドレス信号
と多重化される。
【0058】2.4.3.タイミングダイアグラム 上述したメモリコントローラ403によるデータの読み
出し・書き込み等の処理のタイミングを、図12〜図1
9を用いて説明する。
【0059】図12は、CPUからのバースト読み出し
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS909における処理に
相当する。
【0060】図13は、CPUからのバースト書き込み
のタイミングを示す。バースト長は4、CASレイテン
シは3である。図9のステップS908における処理に
相当する。
【0061】図14は、Gバスデバイスからのバースト
読み出しのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS909における処理に相当
する。
【0062】図15は、Gバスデバイスからのバースト
書き込みのタイミングを示す。Gバスのバースト長は1
6、SDRAMのバースト長は4、CASレイテンシは
3である。図9のステップS908における処理に相当
する。
【0063】図16は、メモリフロントキャッシュにヒ
ットした場合のシングル読み出しのタイミングを示す。
読み出されるデータmDataIn[63:0]としては、キャッシ
ュメモリであるb1_data_ram702−aあるいはb2_data
_ram702−bから読み出されたb1/b2_out_dataが出力
される。SDRAMのバースト長は4、CASレイテン
シは3である。図9のステップS905における処理に
相当する。
【0064】図17は、メモリフロントキャッシュにヒ
ットしなかった場合のシングル読み出しのタイミングを
示す。読み出されるデータ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における処理に相当
する。
【0065】図18は、メモリフロントキャッシュにヒ
ットした場合のシングル書き込みのタイミングを示す。
書き込まれるデータmDataOut[63:0]は、キャッシュメモ
リであるb1_data_ram702−aあるいはb2_data_ram7
02−bに書き込まれるとともに、SDRAMにも書き
込まれる。SDRAMのバースト長は4、CASレイテ
ンシは3である。図9のステップS906における処理
に相当する。
【0066】図19は、メモリフロントキャッシュにヒ
ットしなかった場合のシングル書き込みのタイミングを
示す。書き込まれるデータmDataOut[63:0]は、キャッシ
ュメモリであるb1_data_ram702−aあるいはb2_data
_ram702−bには書き込まれず、SDRAMに対して
だけ書き込まれる。SDRAMのバースト長は4、CA
Sレイテンシは3である。図10のステップS1002
における処理に相当する。
【0067】なお、ここでは、MCバスよりデータ転送
が開始されると、その転送の最初にMCバス上で示され
るmTType[6:0]によって、転送がシングル転送であれば
オン、バースト転送であればオフと判断しているが、バ
ースト転送の場合に、さらにバースト長を判定し、バー
スト長がキャッシュの1ラインよりも小さい場合にはキ
ャッシュオンとし、そうでない場合にはキャッシュオフ
として動作するようにしてもよい。
【0068】また、MCバスに、メモリへのデータ転送
を要求したバスマスタの識別子を示す信号を含ませるこ
とで、メモリコントローラがその識別子を判定し、識別
子に応じてキャッシュオン/キャッシュオフの制御を行
うこともできる。この場合には、識別子とキャッシュオ
ン/オフの別とを対応させた書換え可能なテーブルを用
意し、それを参照してキャッシュのオンオフを切り替え
ることもできる。このテーブルは、例えば特定のアドレ
スを割り当ててCPU401などから書換え可能にする
こともできる。
【0069】2.5.システムバスブリッジ(SBB)
及びBバス,Gバス図20としてシステムバスブリッジ
(SBB)402のブロック図を示す。
【0070】SBB402は、Bバス(入出力バス),
Gバス(グラフィックバス),SCバス(プロセッサロ
ーカルバス)及びMCバス間の相互接続をクロスバスイ
ッチを用いて提供する、マルチチャネル双方向バスブリ
ッジである。クロスバスイッチにより、2系統の接続を
同時に確立することが出来、並列性の高い高速データ転
送を実現出来る。
【0071】SBB402は、Bバス405と接続する
ためのBバスインターフェース2906と、Gバス40
4と接続するためのGバスインターフェース2006
と、プロセッサコア401と接続するためのCPUイン
ターフェーススレーブポート2002と、メモリコント
ローラ403と接続するためのメモリインターフェース
マスターポートを備えるほか、アドレスバスを接続する
アドレススイッチ2003,データバスを接続するデー
タスイッチ2004を含む。また、プロセッサコアのキ
ャッシュメモリを無効化するキャッシュ無効化ユニット
2005を備えている。
【0072】Bバスインターフェース2009には、B
バスデバイスからのDMAライトを高速化するライトバッ
ファと、Bバスデバイスのリードを効率化するリードプ
リフェッチキューを実装する。これらのキュー内に一時
的に存在するデータに関するコヒーレンシ管理はハード
ウェアにて行う。なお、Bバスに接続されたデバイスを
デバイスと呼ぶ。
【0073】プロセッサコアは32ビットバスに対する
ダイナミックバスサイジングをサポートしているが、S
BB402ではこれをサポートしない、将来、バスサイ
ジングをサポートしないプロセッサを用いる場合にもS
BBに必要な改造を最小限におさえるためである。
【0074】2.5.1.SBB及び各バスの構成及び
動作 (Bバスインターフェース)図21は、Bバスインター
フェースのブロック図である。
【0075】Bバスインターフェース2009は、Bバ
スとMCバス間の双方向ブリッジ回路である。Bバスは
DoEngineの内部汎用バスである。
【0076】Bバスインターフェース2009内には、
マスタコントロールブロック2011、スレーブコント
ロールブロック2010、データインターフェース20
12、DMAC2013、Bバスバッファの5ブロックが含
まれる。図21上で、DMAC2013は、機能上3個のシ
ーケンサとレジスタブロックに分割される。それら3つ
のシーケンサのうち、DMAメモリアクセスシーケンサは
Bバススレーブコントロールブロック2010に、DMA
regシーケンサはBバスマスターコントロールブロッ
ク2011に内蔵される。レジスタブロックであるDMA
レジスタはBバスデータインターフェース2012部に
内蔵される。
【0077】またBバスインターフェース2009はB
バス側からのメモリへの書き込み時、及びDMAによるデ
バイスからメモリへの転送が起こった時に、キャッシュ
無効化インターフェースを介してCPUシェル内のデー
タ、命令両キャッシュの無効化の制御を行う。
【0078】なお、CPUライト時のライトバックバッフ
ァはBバスインターフェースには実装しないが、Bバス
上の外部マスタライト時のライトバッファを実装する。
これにより、バースト転送でない、連続した外部マスタ
からの書き込みが高速化される。このライトバッファの
フラッシュは、Bバスアービタ407によるメモリへの
接続が許された時点で行われる。Bバスマスタリードの
ライトバッファバイパスは行わない。
【0079】また、外部マスタのリードプリフェッチキ
ューを実行する。これにより、外部マスタからの連続し
た、データストリームの読み出しの高速化を図る。リー
ドバッファの無効化は、 1.Bバスの新たなリードがバッファにヒットしなかっ
た場合。 2.CPUからメモリへのライトが行われた場合。 3.Gバスからメモリへのライトが行われた場合。 4.Bバスからメモリへのライトが行われた場合。 に行われる。
【0080】またBバスインターフェース2009には
Bバス405上の各デバイスとメモリ間のDMAコントロ
ーラ2013が内蔵される。システムバスブリッジ40
2にDMAコントローラを内蔵することにより、ブリッジ
双方へ、同時にアクセス要求が発行出来、効率的なDMA
転送が実現出来る。
【0081】Bバスインターフェース2009はプロセ
ッサ401からのアクセス要求に対して、ダイナミック
バスサイジングの使用を要求しない。またBバスマスタ
からのメモリアクセス要求時に、メモリコントローラ4
03からのバスサイジングにも対応しない。すなわち、
メモリコントローラはバスサイジングを期待すべきでは
ない。
【0082】(Bバス)BバスはDoEngine内の
汎用IOバスであり、以下の仕様を持つ。 ・アドレス、データ分離型32ビットバス。 ・任意のウェイトサイクルを挿入可能、最短はノーウェ
イト。 ・バーストトランザクションのサポート。 ・最大転送速度は、クロックが50MHz時に200Mbyte/Se
c。 ・バスエラーとバスリトライのサポート。 ・複数バスマスタのサポート。
【0083】(Bバス信号定義)以下にバス信号の定義
を説明する。各信号毎に、「信号名(英語呼称):入力
元>出力先 (,3States)…信号の説明」の要領で記載
されている。なお、3ステートの項は3ステートの信号
に限り記載した。
【0084】bAddr[31:2](IOBus Address Bus):Mast
er>Slabe,3State… IOBusアドレスバス。
【0085】bData[31:0] (IOBus Data Bus):DataDr
iver>DataReceiver,3State …IOBusデータバス。
【0086】b(Datadrivername)DataOeReq(IOBus Data
Output Enable Request):Datadriver>DefaultDrive
rLogic … 後述する双方向IOバスを実現するため、
デフォルトドライバーコントロールロジックヘの出力信
号である。Datadrivernameを持つデバイスが、バス上に
データをドライブするための要求信号である。データの
出力を許可されたデバイスには、デフォルトドライバー
コントロールロジックよりb(Datadrivername)DataOe_L
が出力される。Datadriverの例:Pci,Sbb,Jpeg,Spu。
【0087】b(Datadrivername)DataOe_L(IOBus Data
Output Enable): dfaultDriverLogic>Datadriver
… b(Datadrivername)DataOeReqを出力したデバイスに
対し、デフォルトドライバーロジックがデータバスへの
データのドライブを許す場合b(Datadrivername)DataOe_
L信号をそのデバイスに対して返す。
【0088】bError_L(IOBus Bus Error):Slave>Ma
ster 3State … IOバストランザクションがエラー
で終了したことを示す。
【0089】b(Mastername)BGnt_L(IOBus Grant):Ar
biter>Master … バスアービトレーションにより当
マスタがバスの使用権を得たことを示す。Masternameの
例:Pci,Sbb,Jpeg,Spu。
【0090】blnstNotData(IOBus Instruction/Data O
utput Indicator):Master>Slave,3State … Bバ
スマスタがインストラクションフェッチをBバススレー
ブに対して行う場合にHighにドライブする。データトラ
ンザクションの場合はLowにドライブする。
【0091】b(Mastername)CntlOeReq(IOBus Master C
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信号を返す。
【0092】b(Mastername)CntlOe_L(IOBus Master Co
ntrol Output Enable):DefaultDriverLogic>Master
… b(Mastername)CntlOeReqを出力したマスタに対
し、デフォルトドライバーロジックがドライブを許す場
合b(Mastername)CntlOe_L信号をそのマスタに対して返
す。
【0093】bRdy_L(IOBus Ready):Slave>Master,
3State … Bバススレーブは、現在のBバスデータト
ランザクションが現在のクロックサイクルを最後に終了
することを示すためにこの信号をアサートする。Bバス
マスタは、この信号により、現在のトランザクションが
このクロックサイクルで終了することを知る。b(Master
name)BReq_L(IOBus Bus Request):Master>Arbiter
… Bバスマスタが、Bバスアービタに対し、バスの
使用権要求を行う事を示す。
【0094】bRetry_L(IOBus Bus Retry):Slave>Ma
ster 3State … Bバススレーブがマスタに対し、バ
ストランザクションの最実行を要求する。
【0095】b(Slavename)RdyOeReq(IOBus Slave Read
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信号を返す。
【0096】b(Slavename)RdyOe_L(IOBus Slave Ready
Output Enable):DefaultDriverLogic>Slave … b
(Slavename)RdyOeReqを出力したマスタに対し、デフォ
ルトドライバーロジックがドライブを許す場合b(Slaven
ame)RdyOe_L信号をそのマスタに対して返す。
【0097】bSnoopWait(IOBus Snoop Wait):SBB>N
extMaster … BバスインターフェースがBバスに接
続された他のデバイスに対し、キャッシュのスヌーピン
グ実行中であることを示す。Bバスに接続されたデバイ
スはこの信号がアサートされている間は新たなトランザ
クションを発行できない。
【0098】bStart_L(IOBus Transaction START):M
aster >Slave 3State … BバスマスタがBバストラ
ンザクションをスタートすることを示す信号、Bバスス
レーブは、この信号を監視することにより、Bバストラ
ンザクションのスタートを知ることが出来る。
【0099】bTx_L(IOBus Transaction Indicator Inp
ut):Master>Slave 3State …BバスマスタがBバス
スレーブに対し、Bバストランザクションが現在実行中
である事を示すためにアサートする。
【0100】bWBurstGnt_L(IOBus Burst Write Gran
t):Master>Slave,3State … Bバスマスタが、B
バスバーストライトのリクエストに対し、バーストライ
ト実行することを示すためにドライブする。
【0101】bWBurstReq_L(IOBus Burst Write Reques
t):Slave >Master,3Stete …BバススレーブがB
バスマスタに対し、バースとライトを要求する場合にア
サートする。
【0102】bWr_L(IOBus Write Transaction Indicat
er):Master>Slave,3State …Bバスマスタが、B
バススレーブに対し、現在のトランザクションがライト
である事を示すためにアサートする。
【0103】bByteEn[3:0](IOBus Byte Enables):Da
taDriver>DataReceiver,3State… Bバス上にデータ
をドライブするエージェントが、各ビットに対応したbD
ata[31:0]上のバイトレーンが有効である事を示すため
にHighにドライブする。本信号の各ラインとbDataのバ
イトレーンは表4の対応関係にある。
【0104】
【表4】
【0105】bBurst_L(IOBus Extended Burst Reques
t):Master>Slave,3Sate … Bバスマスタが拡張
バーストを行いたい事を示す。アサート、ネゲートタイ
ミングはbTx_Lと同一。
【0106】bBurstAck_L(IOBus Extended Burst Ackn
owledge):Slave>Maste,3State… Bバススレーブ
が拡張バーストを行える事を示す。アサート、ネゲート
タイミングはbRdy_Lと同一。
【0107】bBurstShortNotLong_L(IOBus Burst Leng
th):Master>Slave,3State …Bバスマスタが拡張
バーストを行う場合のバースト長を示す。アサート、ネ
ゲートタイミングはbTx_Lと同一であり、信号値とバー
スト長との対応は表5に示したとおりである。
【0108】
【表5】
【0109】Bバス信号は上述の通りである。DoEn
gine内部のバスである、Bバス(及びGバス)は接
続される機能ブロック数が10以上になるので、InOut
分離バスですべてのブロックを接続することは、困難で
ある。DoEngineでは、チップ内双方向バスを採
用する。
【0110】(Gバスインターフェース)図22にGバ
スインターフェース2006のブロック図を示す。この
概要は下記の通りである。
【0111】(Gバス概要)Gバスは、MFP用1チップ
コントローラ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
クロック以上経過してからしか行えない。基本的に信号
のリリースはネゲートした次のクロックで行う。
【0112】なお、各信号名の後の“_L”はその信号が
ローアクティブであることを示す。信号の記述のしかた
は、ほぼBバス信号の記述に準ずる。説明は、システム
信号、アドレス及びデータ信号、インターフェース制御
信号、アービトレーション信号に分けて行う。また、バ
スエージェントとは、バスに接続されるバスマスタやバ
ススレーブの総称である。
【0113】(システム信号) gClk(G-Bus Clock) … Gバス上のすべてのトラン
ザクションについてタイミングを提供し、すべてのデバ
イスに対して入力となる。
【0114】gRst_L(G-Bus Reset) … Gバス上の
すべてのデバイスをリセットする。すべての内部レジス
タはクリアーされ、すべての出力信号はネゲートされ
る。
【0115】(アドレスおよびデータ信号) gAddr[31:7],InOut,(G-Bus Address):Master>Sla
ve … Gバス上のデータ転送はすべて128byte(16
ビート)単位で行われるため、gAddr[31]〜gAddr[7]の
25ビットで4Gbyteのアドレス空間をサポートする。 drive:gTs_Lと同時にマスターがドライブ assert:ドライブした次のクロック negate:gAack_Lのアサートを確認したクロック。
【0116】g(Mastename)AddrOeReq(G-Bus Address O
utPut Enable Request):Master>DefaultDriverLogic
… 双方向Gバスを実現するための、デフォルトドラ
イバロジックへの出力信号。バスマスタがアドレスバス
をドライブするための要求信号。
【0117】g(Mastername)AddrOe_L(G-Bus Address O
utPut Enablet):DefaultDriveLogic>Master … g
(Mastername)AddrOeReqを出力したバスマスタに対し、
デフォルトドライバロジックがアドレスバスのドライブ
を許可することを示す信号。
【0118】gData[63:0],InOut,( G-Bus Data):D
ataDriver>DataReceiver … 64ビットデータバス
で、ライト時はマスタがドライブ、リード時はスレーブ
がドライブ。
【0119】[ライト] drive:gTs_Lと同時にマスタがドライブ。ただし、gSlvB
sy_Lがアサートされている時はネゲートされるまで待っ
てドライブ。 assert:ドライブした次のクロック。 change:gAack_Lのアサートを確認したクロック、その後
は毎クロック。 negate:転送終了時、またはgTrStp_Lによる転送停止要
求を確認した場合は、gAack_Lのアサートを確認したク
ロック。
【0120】[リード] drive:gAack_Lと同時にスレーブがドライブ。 assert:スレーブがReadyであればドライブした次のクロ
ックで、Readyでなけれ ばReadyになるまで待ってアサートされる。 change:gAack_Lのアサートを確認したクロック、その後
は毎クロック。リードの場合はアサートしたクロックか
ら毎クロック。 negate:転送終了時。 release:ネゲートの1クロック後、またはgTrStp_Lによ
る転送停止要求を確認したクロック。
【0121】g(DataDrivername)DataOeReq(G-Bus Data
OutPut Enable Request):DataDriver>DefaultDrive
rLogic … データドライバがデータバスをドライブす
るための要求信号。
【0122】g(DataDrivername)DataOe_L(G-Bus Data
OutPut Enablet):DefaultDriverLogic>DataDriver
… g(DataDrivername)DataOeReqを出力したデータドラ
イバに対し、デフォルトドライバロジックがデータバス
のドライブを許可することを示す信号。
【0123】(インターフェース制御信号) gTs_L(InOut G-Bus Transaction Sart):Master>Sla
ve … マスターにより1クロックの間Lowにアサート
され、転送の開始(アドレスフェーズ)をあらわす。マ
スターはgTs_Lと共に、gAddr,gRdNotWr,gBstCntをドラ
イブし、転送の種類、データ量を明確にする。マスタ
は、ライトの場合ここで明確にした転送データ量をウェ
イトなしで出せることを保証しなければならない。ま
た、リードの場合は明確にした転送データ量をウェイト
なしで受けることを保証しなければならない。スレーブ
は途中でデータ転送ができなくなった場合はgBsStep_L
により、次の16ビートの転送をキャンセルすることが
ある。ただし、16ビートの途中でキャンセルすること
はない。 drive:gGnt_Lのアサートを確認したクロックでドライ
ブ。 assert:ドライブした次のクロック。 negate:1クロックアサート後にネゲートされる。
【0124】g(Mastername)TsOeReq(G-Bus Transactio
n Start OutPut Enable Request):Master>DefaultDr
iverLogic … バスマスタがgTs_Lをドライブするため
の要求信号。
【0125】g(Mastername)TsOe_L(G-Bus Transaction
Start OutPut Enablet):DefaultDriverLogic>Maste
r … g(Mastername)TsOeReqを出力したバスマスタに
対し、デフォルトドライバクロックがgTs_Lのドライブ
を許可することを示す信号。
【0126】gAack_L,InOut,(G-Bus Address Acknow
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クロックアサート後にネゲートされる。
【0127】g(Slavename)AackOeReq(G-Bus Address A
cknowledge OutPut Enable Request):Slave>Default
DriverLogic … スレーブがgAack_Lをドライブするた
めの要求信号。
【0128】g(Slavename)AackOe_L(G-Bus Address Ac
knowledge OutPut Enablet):DefaultDriverLogic>Sl
ave … g(Slavename)AackOeReqを出力したスレーブに
対し、デフォルトドライバロジックがgAack_Lのドライ
ブを許可することを示す信号。
【0129】gSlvBsy_L,InOut,(G-Bus Slave Bus
y):Slave>Master … スレーブがドライブし、デー
タバスでデータを転送中であることをあらわす。 drive:アドレスデコードヒット時、gTs_Lのアサートを
確認したクロックでドライブ開始。ただし、gSlvBsy_L
がアサートされている時はネゲートされるまで待ってド
ライブ。 assert:スレーブがReadyであればドライブした次のクロ
ックで、ReadyでなければReadyになるまで待ってアサー
ト。 negate:転送終了時にネゲート。 release:ネゲートの1クロック後、またはgTrStp_Lによ
る転送停止要求を確認したクロック。
【0130】g(Slavename)SlvBsyOeReq(G-Bus Slave B
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のドライブを許可するこ
とを示す信号。
【0131】gRdNotWr,InOut,(G-Bus Read(High)/Wr
ite(Low)):Master>Slave …マスターによりドライ
ブされ、HighでREAD、LOWでWRITEをあらわす。ドライブ
する期間はGAと同じである。 derive:gTs_Lと同時にマスターがドライブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したクロック。
【0132】g(Mastername)RdNotWrOeReq(G-Bus Read/
Write OutPut Enable Reques):Master>DefaultDrive
rLogic … バスマスタがgRdNotWrをドライブするため
の要求信号。
【0133】g(Mastername)RdNotWrOe_L(G-Bus Read/W
rite OutPut Enablet):DefaultDriverLogic>Master
… g(Mastername)RdNotWrOeReqを出力したバスマス
タに対し、デフォルトドライバロジックがgRdNotWrのド
ライブを許可することを示す信号。
【0134】gBstCnt[1:0],InOut,(G-Bus Burst Cou
nter):Master>Slave … マスターによりドライブ
され、連続して行うバースト転送の数(1〜4)をあら
わす。信号の値とバースト転送するバイト数との対応は
表6のようになる。 derive:gTs_Lと同時にマスターがドライブ。 assert:ドライブした次のクロック。 negate:gAack_Lのアサートを確認したクロック。
【0135】
【表6】
【0136】g(Mastername)BstCntOeReq(G-Bus Burst
Counter OutPut Enable Request):Master>DefaultDr
iverLogic … バスマスタがgBstCntをドライブするた
めの要求信号。
【0137】g(Mastername)BstCntOe_L(G-Bus Burst C
ounter OutPut Enablet):DefaultDriverLogic>Maste
r … g(Mastername)BstCntOeReqを出力したバスマス
タに対し、デフォルトドライバロジックがgBstCntのド
ライブを許可することを示す信号。
【0138】gBstStp_L,InOut,(G-Bus Burst Sto
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上をドライブするための要求信
号。
【0139】g(Slavename)BstStpOe_L(G-Bus Burst St
op OutPut Enablet):DefaultDriverlogic>Slave …
g(Slavename)BstStpOeReqを出力したスレーブに対
し、デフォルトドライバロジックがgBstStp_Lのドライ
ブを許可することを示す信号。
【0140】(アービトレーション信号) g(Mastername)Req_L,Out,(G-Bus Request):Master
>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で指定されたデータ量だけ転送
を行う。マスタとスレーブは、それぞれ自分でクロック
をカウントして、データ転送の終了を知らなければなら
ない。
【0141】スレーブは転送の途中でマスタから要求さ
れたデータ転送量を転送できなくなった場合は、bStStp
_Lを15ビート目でアサートすることで、次の16ビー
トの転送をキャンセルすることがただし、16ビートの
途中でキャンセルすることはできない。
【0142】マスタおよびスレーブは、gBstStp_Lがア
サートされれば、次のクロックでデータの転送を終了さ
せなければならない。
【0143】(キャッシュインバリデーションユニット
(CIU))キャッシュインバリデーションユニット
(以下CIU)2005は、Bバスからメモリへのライト
トランザクションを監視し、これが起こった場合は、メ
モリへの書込が終了する前に、CPUシェルのキャッシ
ュインバリデーションインターフェースを用い、CPU
シェルに内蔵されたキャッシュの無効化を行う。
【0144】CPUシェルは、次の3種類の信号を使用
する。 ・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と同一サイクルだけドライブする。
【0145】なお、現在のインプリメンテーションで
は、Bバスからのライトが起こった場合は、安全のため
にIcacheもインバリデーションしている、もし、OSで
セルフモディファイングコードを禁止し、インストラク
ションとして使われる可能性のあるデータのローディン
グ時に、意図的にインストラクションキャッシュのイン
バリデーションを行うなら、Icacheのインバリデーショ
ンはいらない。この場合は若干のパフォーマンスアップ
が望める。
【0146】(メモリマップ)図23及び図24にメモ
リマップを示す。図23は、左から順に、仮想メモリマ
ップ、物理メモリマップ、Gバスのアドレス空間でのメ
モリマップ、Bバスのアドレス空間でのメモリマップで
ある。また、図24は、レジスタ等を含む図23におけ
る斜線部の512メガバイトを示すマップである。
【0147】プロセッサコアのメモリモデルはR3000を
ベースにしている。プロセッサコアの物理アドレス空間
は32ビットアドレッシングにより4Gバイトある。仮
想空間も同様に32ビットアドレッシングを行なう。ユ
ーザープロセスの最大サイズは2Gバイトである。アド
レスマッピングはカーネルモードとユーザーモードで異
なる。図はMMUを使用しない場合のメモリマップであ
る。
【0148】(ユーザーモード仮想アドレッシング)ユ
ーザーモードの仮想アドレッシングでは2Gバイトのユ
ーザ仮想アドレス空間(kuseg)が有効となる。このユー
ザーセグメントのアドレスは0x00000000から始まり、す
べての有効なアクセスは0にクリアされたmsbを持つ。
ユーザーモードにおいてmsbをセットしたアドレスの参
照はアドレスエラー例外処理を引き起こす。TLBはkuseg
へのすべての参照をユーザーモードとカーネルモードで
同様にマッピングする。また、キャッシャブルである。
kusegは通常ユーザーコードやデータを保持するために
使用される。
【0149】(カーネルモード仮想アドレッシング)カ
ーネルモードの仮想アドレス空間には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をスタックやコンテキストスイッチによるリマップが
必要なプロセス毎のデータのために使用する。
【0150】(仮想アドレスメモリマップ(図23
(a),図24(a)))仮想アドレス空間は4Gバイ
トあり、システム上のすべてのメモリ、I/Oがアクセス
可能である。kusegにはSYSTEM MEMORY(1GB)が存在す
る。
【0151】kseg0には内蔵RAM(16MB)が存在する。
これは、例外処理のベクタをプログラミングしたい場合
にインプリメントし、例外ベクタベースアドレスを0x80
000000に設定する。このアドレスは物理アドレス空間の
0x00000000にマッピングされる。
【0152】kseg1にはROM,I/O,レジスタが存
在し、ブート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)が含まれる。
【0153】kseg2にはPCI I/O(512MB),PCI MEM(512MB)
が存在する。
【0154】kseg0,kseg1はどちらも物理アドレス空間
の最初の512Mバイトにマッピングされるため、kseg0,ks
eg1とkusegの最初の512Mバイトはすべて同じ物理アドレ
ス空間を参照していることになる。
【0155】(物理アドレスメモリマップ(図23
(b),図24(b)))物理アドレス空間も仮想アド
レス空間と同様4Gバイトあり、システム上のすべての
メモリ、I/Oがアクセス可能である。
【0156】PCI I/O,PCI MEM,SYSTEM MEMORYについて
は仮想アドレスメモリマップと同一である。
【0157】kseg1,kseg2はどちらも物理アドレス空間
の最初の512Mバイトにマッピングされるので、ROM,I/O,
Regは0x00000000からの空間に存在している。
【0158】(Gバスメモリマップ(図23(c),図
24(c)))Gバスアドレス空間は4Gバイトあり、
SYSTEM MEMORY,GBus MEM,FONTのみがアクセス可能であ
る。
【0159】(Bバスメモリマップ(図23(d),図
24(d)))Bバスアドレス空間は4Gバイトあり、
PCI I/O,PCI MEM,SYSTEM MEMORY,IOBusI/O2,IOBus MEM,
FONTのみがアクセス可能である。
【0160】IOBus I/O1はプリミティブなレジスタのた
め、0x1C000000から0x20000000までの空間はPCIからプ
ロテクトがかけられており、PCIからアクセスできな
い。
【0161】(アドレススイッチ)アドレススイッチ2
003は、SCバス,Gバス,Bバス,MCバス間のデー
タ転送を行なうために、マスターとなるバスからスレー
ブとなるバスへ、SBB402を経由してアドレス信号
を送るためのものである。SBB402を経由する転送
において、マスターとなり得るバスは、SCバス,Gバ
ス,Bバスであり、スレーブとなり得るバスはBバス,M
Cバスである。MCバスに対してはSCバス,Gバス,B
バス,のいずれかがマスターとなり、BバスへはSCバ
スのみがマスターとなってアドレス信号を送る。
【0162】また、SCバス-Bバス間の転送と、Gバ
ス-MCバス間の転送は同時に行なうことができる。
【0163】図25に、アドレススイッチ2003のブ
ロック図を示す。スイッチシーケンサ2003aによ
り、スイッチ2003bを切り替えてスレーブをBバス
とMCバスとで切り換え、スイッチ2003cを切り替
えてマスタをSCバス,Gバス,Bバスで切り換える。
この構成により、MCバスに対してはSCバス,Gバス,
Bバス,のいずれかがマスターとなり、BバスへはSC
バスのみがマスターとなり、また、SCバス-Bバス間
の転送と、Gバス-MCバス間の転送は同時に行なうこ
とができる。
【0164】(データスイッチ)データスイッチはSC
バス,Gバス,Bバス,MCバス間のデータ転送を行なう
際に,SBB内でデータの流れを切り替えるものであ
る。ライト時はマスターからスレーブ、リード時はスレ
ーブからマスターへデータが送られる。
【0165】図26にデータスイッチ2004のブロッ
ク図を示す。この構成において、セレクタA−1〜A−
3及びB−1,B−2を表7のように切り替えること
で、SCバス,Gバス,Bバスのいずれかをマスタと
し、Bバス,MCバスのいずれかをスレーブとして、書
き込みあるいは読み出しを行うように制御できる。
【0166】
【表7】
【0167】(アービトレーション)SBB402内の
スイッチシーケンサ2003aは、各スイッチを切り替
えるにあたって、SBB外部からの以下の3種類の接続
要求間のアービトレーションを行う。 1.CPU 2.Gバスバスマスタ 3.Bバスバスマスタ このアービトレーションは、現在のバススイッチ接続状
況、及び、あらかじめ設定された優先順位により決定さ
れ、その結果アドレススイッチ、データスイッチの接続
が切り替えられる。
【0168】(タイミングダイアグラム)図27〜図3
2にタイミング図を示す。図27はGバスからの書き込
み/読み出しサイクルのタイミング図、図28はGバス
のバースト停止サイクルのタイミング図、図29〜図3
2は、Gバスのトランザクション停止サイクルのタイミ
ング図である。
【0169】2.6.PCIバスインターフェース 図33は、PCIバスインターフェース416のブロッ
ク図である。
【0170】PCIバスインターフェース416は、Do
Engine内部汎用IOバスであるBバスと、チップ外
部IOバスであるPCIバスの間をインターフェースするブ
ロックである。入力ピン設定により、リセット時にPCI
バスコンフィギュレーション発行可能な、ホストブリッ
ジ構成と、PCIバスコンフィギュレーションは発行しな
いターゲット構成とを切り替えることができる。
【0171】BバスインターフェースのマスタDMAコン
トローラ3301は、PCIバスシグナルインターフェー
ス3302を介してPCIバスマスタからDoEngin
e内部のリソースにアクセス要求があった場合に、Bバ
スマスタとしてこのアクセス要求をBバス内部にブリッ
ジする。
【0172】更に、このマスタDMAコントローラ330
1は、PCIバス上でマッピングされるメモリからDoE
ngineMemoryへのDMA転送を行う事が出来る。この
際、プログラマが意図したBバスDMAと、GバスDMAのア
クセスの順番を守って動作させるために、転送先アドレ
ス(bPciAddr[31:0])と、PCIマスターコントローラ33
01のID信号(bPciID)を、Bバスとアービトレーション
シーケンサに対して、バスリクエストと同時に発行す
る。
【0173】マスタDMAコントローラ3301はバスグ
ラント(bPciBGnt_L)を受け取り、バスを使用しデータ転
送が終了した時点で、ID信号(bPciID)のアサートを取
りやめる。
【0174】なお、PCIバスは、33MHz,32ビット,PCI
2.1準拠とする。
【0175】2.7.Gバスアービタ 図34は、Gバスアービタ(GBA)406のブロック
図である。
【0176】Gバスのアービトレーションは、中央アー
ビトレーション方式であり、各バスマスタに対して専用
のリクエスト信号(g(mastername)Req_L)とグラント信号
(g(mastername)Gnt_L)を持つ。図34は、masternameは
M1〜M4となっている。Busアービタ406は、Gバス上
のバスマスタを4つまでサポートしており、以下のよう
な特徴を持つ。 ・アービタ内部のレジスタ3401aの設定によりアー
ビタをプログラミングすることが出来る。レジスタ設定
はBバスより行なう。 ・すべてのバスマスタを同じ優先権として、公平にバス
権を与える公平アービトレーションモードと、いずれか
ひとつのバスマスタの優先権を上げ、優先的にバスを使
用させる優先アービトレーションモードがある。どのバ
スマスタに優先権を与えるかはレジスタ3401bの設
定により決定される。 ・優先バスマスタが連続してバスを使用することができ
る回数を設定することが可能。 ・すでにアドレスフェーズを開始したが、データフェー
ズをまだ開始していないトランザクションについて、そ
のトランザクションをストップするためのトランザクシ
ョンストップサイクルをサポート。 ・複数のバスマスタにおける順序処理のプログラミング
ができる(後述)。プログラムされた順序は、レジスタ
テーブル3401aに格納される。 ・GバスマスタとBバスマスタが同一メモリアドレスに
順次書き込みを発行した場合に、プログラマの意図した
アクセス順序を維持するための機構として、同期ユニッ
トからのマスタID信号、ストップ信号に基づき、特定の
マスタに対し、バス使用許可を与えることを保留する機
構を持つ。
【0177】なお、レジスタへのプログラミングは、B
バスを介してCPU401から行われる。
【0178】(アービトレーションシーケンサ)Gバス
アービタの中核となるアービトレーションシーケンサ3
402a,bは、1つの優先マスタとその他の4つの非
優先マスタの間で5つのマスタによるアービトレーショ
ンを行なう。4つのバスマスタからのリクエスト信号と
グラント信号を、リクエストディスパッチ回路3403
とグラントディスパッチ回路3404によって4つの非
優先マスタに割り付けることにより、公平アービトレー
ションモードが実現される。また、4つのバスマスタの
うちのひとつを、高優先アービトレーションシーケンサ
3402aの優先マスタに割り付けることで、優先アー
ビトレーションモードとして動作する。これらの割り付
けは、レジスタ3401a,bの設定にしたがって行わ
れる。これにより、優先バスマスタは、他のマスタより
高い確率でバスの使用権を取得することが出来る。
【0179】さらに、バスの取得機会確率の調整に加
え、高優先シーケンサ3402aに割り当てられたマス
タは、連続してバスを使用する事が出来、連続して使用
出来る回数をプログラマブルなレジスタにより可変する
事ができる。これは、バスの占有率を調整出来、ある特
定のマスタにより多くバスを使用させる様に出来ること
を意味する。
【0180】(公平アービトレーションモード)このモ
ードでは、すべてのバスマスタは同じ優先順位にあり、
バス権を与えられる機会は公平である。バスがフリーの
時は、一番最初にリクエストを出したバスマスタがバス
権を得ることができる。また、複数のバスマスタが同時
にリクエストを出した場合は、あらかじめ決められた順
序にしたがって順次バス権が与えられる(ラウンドロビ
ン方式)。例えば、M1からM4までのすべてのバスマ
スタが同じクロックでリクエストを出した場合は、M1
→M2→M3→M4といった順序でバス権が与えられ
る。M4のトランザクションの終了時に再びすべてのバ
スマスタがリクエストを出している場合は、M1→M2
→M3→M4→M1→M2…というように、同様の順序
でバス権を与えていく。一部のバスマスタがリクエスト
を出している場合は、M4からM1へラウンドラップす
るとして、最後にバスを使用したマスタにもっとも近い
大きい番号を持ったマスタへグラントを与える。
【0181】一度バス権が他のバスマスタに移ると、他
にリクエストを出しているすべてのバスマスタにバス権
を与えた後でないと再びバス権を得ることができない。
【0182】(優先アービトレーション)このモードで
は、ひとつのバスマスタ(レジスタ3401bに登録さ
れたバスマスタ)が他のバスマスタよりも高い優先権を
持つ優先バスマスタになり、他のバスマスタに比べ優先
的にバス権が与えられる。優先バスマスタ以外のバスマ
スタの優先順位はすべて同じである。
【0183】複数のバスマスタがリクエストを出してお
り、また優先バスマスタが連続したリクエストを行う場
合、優先バスマスタと他の非優先バスマスタは交互にバ
ス権を得る。
【0184】非優先バスマスタから他のバスマスタにバ
ス権が移ると、他にリクエストを出しているすべてのバ
スマスタにバス権を与えた後でないと、その非優先バス
マスタは再びバス権を得ることができない。
【0185】(トランザクション・ストップ・サイク
ル)優先アービトレーションモードにおいて、優先バス
マスタがリクエストを出した時、すでに他のバスマスタ
がアドレスフェーズを開始していても、データフェーズ
をまだ開始していなければ、そのトランザクションをス
トップし、優先バスマスタがバス権を得ることができ
る。ただし、その直前に優先バスマスタがバス権を持っ
ていた場合は、連続したバス権を得ることができる回数
を超えることはできない。
【0186】優先バスマスタのトランザクションが終了
した時、中止されたバスマスタがリクエストを出してい
れば、優先してバス権が与えられる。
【0187】(優先バスマスタの切り替え)優先バスマ
スタの切り替えを行なうには、レジスタ3401bを書
き換えればよい。優先バスマスタを選択するレジスタが
書き換えられると、その時に実行中のトランザクション
の終了を待って、優先バスマスタが切り替えられる。ア
ービタのステートはアイドル状態にもどり、その時点で
リクエストを出していたバスマスタは、その時同時にリ
クエストを出したものとして、あらためてアービトレー
ションが行われる。
【0188】優先バスマスタの切り替えには十分注意を
払う必要がある。優先させるべきバスマスタのDMAが終
了しないうちに、異なったバスマスタに優先バスマスタ
を切り替えてしまうと、最初の優先バスマスタのDMAの
優先度が下がってしまう。もしも最初の優先バスマスタ
の優先度を下げたくないのであれば、DMAが終了したの
を確認してから優先バスマスタの切り替えを行なう必要
がある。
【0189】優先バスマスタ切り替えを、システムブー
ト時のみでなく、システム稼働中も動的に行う必要のあ
るソフトウェアでは、優先バスマスタの切り替えは、い
ったんGバス上に新たなDMAリクエストが発生しないよ
う、すべてのバスマスタ及びDMAコントローラに対する
設定を中止し、その後、Gバスアービタ406内のレジ
スタに適切な値をセットし、さらに、Gバスアービタ4
06内のステータスレジスタをチェックし、バスマスタ
の優先権が切り替わったのを確認した上で新たなGバス
上へのアクセス及びDMAの起動を行うべきである。
【0190】優先バスマスタの動的切り替えは、オペレ
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは違反させてしまう可能性があり、十
分な考慮の上行われなければならない。
【0191】(順序処理)図35は、DoEngine
400内におけるGバス404を中心とする、Gバス上
のバスマスタによるDMAに係るブロック図である。
【0192】複数のバスマスタが順次に処理を行うこと
が必要な場合、例えば、メモリ3501上のデータに対
して、バスマスタ1により処理Aを行った後、バスマス
タ2により処理Bを行い、その処理後のデータをバスマ
スタ4に送るといった一連の処理を考える。
【0193】この処理を行うソフトウェア、すなわちC
PU401により実行されるプログラムにより、Bバス
405を介して、バスアービタ406内のレジスタテー
ブル3401aに、バスマスタがバスを使用する順序
と、バス権の付与の開始条件と、終了条件がセットされ
る。この例では、 というようにセットする。すなわち、Gバスアービタ4
06は、それぞれのバスマスタから、開始条件として設
定された信号を受けるとそのバスマスタにバス使用権を
与え、終了条件として設定された信号を受けるとバス使
用権を奪う。
【0194】ソフトウェアはそれぞれのバスマスタにDM
Aをセットする。それによって、それぞれのマスタはG
バスアービタ404に対してリクエスト(g(mastername)
Req_L)を発行する。Gバスアービタ404はレジスタテ
ーブル3401aに登録された順序に従ってバスマスタ
1にバス権を与える(gM1Gnt_L)。バスマスタ1はメモリ
3501からある単位のデータをリードし、処理Aを行
って、バスマスタ1内部のバッファにデータをライトす
る。バスマスタ1はひとつの単位の処理が終了し、バッ
ファの準備ができたことをgM1BufReady信号によりアー
ビタ406に対して通知する。
【0195】アービタ406はそれを受け、レジスタテ
ーブル3401aに登録された、バスマスタがバス権を
与える条件とバス権を奪う条件にしたがって、バス権を
バスマスタ1から奪いバスマスタ2に与える。バスマス
タ2はバスマスタ1のバッファのデータをリードし、処
理Bを行って、バスマスタ2内部のバッファにデータを
格納する。この間にバスマスタ1のバッファが空になる
とgM1BufEmptyがアサートされ、アービタ406はバス
マスタ2にバス権を与えていたのを取りやめる。バスマ
スタ2は処理Bを行って、バッファの準備ができるとgM
2BufReady信号により通知する。
【0196】アービタ406はそれを受け、レジスタ3
401aの内容にしたがって、今度はバスマスタ4にバ
ス権を与える。バスマスタ4はバスマスタ2のバッファ
からデータをリードする。バスマスタ2のバッファが空
になると、gM2BufEmptyによってアービタ406に通知
し、アービタ406はそれを受け、レジスタ3401a
の内容に従って再びバスマスタ1にバス権を与え、次の
データの処理を始める。
【0197】それぞれのバスマスタにセットされたDMA
がすべて終了すると、それぞれのバスマスタはプロセッ
サに割り込みによって通知する。ソフトウェアはすべて
のバスマスタからの終了通知がそろったとき、一連の処
理が終了したことを知る。
【0198】以上説明した動作は完全順次モードでの動
作であり、順次処理に関わるバスマスタ以外のバスマス
タは、バスを使用することができない。この順次処理中
でも、順次処理に関係のないバスマスタがバスを使用す
ることを可能にするために優先順次モードが用意されて
いる。これらのモードの切り替えではアービタ406内
部のレジスタにプログラミングすることによって行な
う。優先順次モードでは、順次処理を行なうバスマスタ
は優先的にバスを使用できるが、順次処理に関わらない
バスマスタであればバスを使用することが許される。順
次処理を行なうバスマスタと関わらないバスマスタの間
のアービトレーションは、前述した優先アービトレーシ
ョンモードと同等である。当然、順次処理に係わるバス
マスタで、バス権を与えられる条件が満足されずに自分
の順番が回ってきていないバスマスタにはバス権は与え
られない。
【0199】(アクセス順序を維持するための機構)信
号stopSpcがアサートされた場合は、Gバスマスタのひ
とつであるスキャナコントローラ/プリンタコントロー
ラはアービトレーションの対象から除外され、たとえリ
クエストをアサートしていてもバス使用権を与えられる
ことはない。アービトレーションはこのマスタを除外し
たマスタ間で行われる。詳細な説明はBバスアービタの
節で行なう。
【0200】(タイミングダイアグラム)図36〜図3
9において、Gバスアービトレーションのタイミングを
説明する。図36は、連続してバスを使用する回数が、
バスマスタ1〜4のすべてについて1に設定されている
場合の公平アービトレーションモード(フェアモード)
の例である。バスマスタ1による2回目の(タイミング
4から出されている)バス要求は、バス要求を出してい
る他のバスマスタがすべて1回ずつ処理されるまで待た
されている。
【0201】図37は、連続してバスを使用する回数
が、バスマスタ1についてのみ2であり、他のバスマス
タは1に設定されている場合の公平アービトレーション
モードの例である。バスマスタ1が出している2回目の
(タイミング4から出されている)バス要求は1回目の
要求に続いて直ちに許可され、他のバスマスタはその処
理がすむまで待たされている。
【0202】図38は、連続してバスを使用する回数が
それぞれ1ずつであり、バスマスタ1が優先バスマスタ
と設定されている場合の優先アービトレーションモード
の例である。優先バスマスタと非優先バスマスタとは交
互にバス使用権が認められるために、バスマスタ1の2
回目のバス要求はバスマスタ2のバスの使用後に認めら
れており、バスマスタ4のバス要求は、バスマスタ1の
2回目のバスの使用後に認められている。また、バスマ
スタ2の2回目のバス要求は、バス要求を出している他
のすべてのバスマスタ、図38ではバスマスタ1及びバ
スマスタ4のバス使用が終了した後で認められている。
【0203】図39は、バスマスタ1からのバス要求に
より、バスマスタ4のバス要求が許可されているにもか
かわらず中断された例である。この場合、バスマスタ1
のバス使用が終了すると、バスマスタ2のバス要求に優
先してバスマスタ4のバス要求が認められる。
【0204】2.8.Bバスアービタ 図40は、Bバスアービタ407のブロックである。
【0205】Bバスアービタ407は、DoEngin
e内部のIO汎用バスであるBバス405のバス使用要
求を受け付け、調停の後、使用許可を選択された一つの
マスタに対して与え、同時に2つ以上のマスタがバスア
クセスを行う事を禁止する。
【0206】アービトレーション方式は、3段階のプラ
イオリティを持ち、それぞれのプライオリティに複数の
マスタをプログラマブルに割り当てられる構成になって
いる。割り当ては、それぞれ最大で、最高のプライオリ
ティに3マスタ、中間に7マスタ、最低レベルに3マス
タとなる。
【0207】また、GバスマスタとBバスマスタが、同
一メモリアドレスに順次書き込みを発行した場合に、プ
ロブラマの意図したアクセス順序を維持するための機構
として、同期ユニットからの、マスタID信号、ストッ
プ信号に基づき、特定のマスタに対し、バス使用許可を
与えることを保留する機構を持つ。
【0208】(アービトレーションシーケンサ)Bバス
アービタは3つのアービトレーションシーケンサ400
2,4003,4004から構成される。それぞれ、高
優先権、中優先権、低優先権を持ち、それぞれのシーケ
ンサ内に、3,7,3本のバスマスタ用アービトレーシ
ョンシーケンサが内蔵される。Bバス上のすべてのバス
マスタになる可能性のあるユニットからのリクエスト信
号とそれらへのグラント信号を、リクエストセレクタと
グラントセレクタによって、これらの3つのシーケンサ
ユニットに分配する。この分配は、BBusインタフェ
ース4005内のソフトウェアプログラマブルなレジス
タ4005aにより、複数の組み合わせのなかから、一
意の組み合わせを選択することが出来る。
【0209】たとえば、最大7つのマスタのリクエスト
を中優先アービトレーションシーケンサ4003に接続
することにより、7つのマスタ間で公平なアービトレー
ションが実現される。また、バスマスタのうちのいくつ
かを、高優先アービトレーションシーケンサ4002に
割り付けることで、これらのマスタは他のマスタより、
より高い確率でバスの使用権を取得することが出来る。
さらに、いくつかのリクエストを低優先シーケンサ40
04に接続することで、これらのバスの使用率を低く抑
える事が出来る。さらに、バスの取得機会確率の調整に
加え、高優先シーケンサ4002に割り当てられたマス
タは、連続してバスを使用する事ができ、連続して使用
出来る回数をプログラマブルなレジスタ4005aによ
り可変する事ができる。これは、バスの占有率を調整で
き、ある特定のマスタにより多くの時間バスを使用させ
る様に出来る事を意味する。
【0210】(公平バスアービトレーション方式)中優
先シーケンサ4003を例にとり、公平アービトレーシ
ョンの実現方法を説明する。一つのシーケンサに接続さ
れたすべてのバスマスタは同じ優先順位にあり、バス権
を与えられる機会は公平である。バスがフリーの時は、
一番最初にリクエストを出したバスマスタがバス権を得
ることができる(ファーストカムファーストサーブ)。
また、複数のバスマスタが同時にリクエストを出した場
合は、あらかじめ決められた順序にしたがって順次バス
権が与えられる(同時リクエスト発行時ラウンドロビ
ン)。例えば、M1からM7までのすべてのバスマスタ
が同じクロックでリクエストを出した場合は、M1→M
2→M3→M4→M5→M6→M7といった順序でバス
権が与えられる。M7のトランザクションの終了時に再
びすべてのバスマスタがリクエストを出している場合
は、M1→M2→M3→M4→M5→M6→M7→M1
→M2というように、同様の順序でバス権を与えてい
く。一部のバスマスタがリクエストを出している場合
は、M7からM1へラウンドラップするとして、最後に
バスを使用したマスタにもっとも近い大きい番号を持っ
たマスタへグラントを与える。
【0211】(優先アービトレーション)Bバスインタ
ーフェースは、高優先、中優先、低優先の3つのアービ
トレーションシーケンサが存在する。優先順位をつけた
アービトレーションは、複数のバスリクエストを選択的
に、高優先、低優先、のアービタに割り振ることにより
実現される。
【0212】たとえば、ひとつのマスタを高優先に割り
当て、残りを中優先に割り当てることにより、ひとつの
バスマスタが他のバスマスタよりも高い優先権を持つ優
先バスマスタになり、他のバスマスタに比べ優先的にバ
ス権が与えられる。同じ優先権のアービトレーションシ
ーケンサに割り当てられたバスマスタの優先順位はすべ
て同じである。
【0213】複数のバスマスタがリクエストを出してお
り、また優先バスマスタが連続してリクエストを行う場
合、優先バスマスタと他のバスマスタは交互にバス権を
得る。M3が優先マスタでM1,M2,M3,M4がリ
クエストを出し続けた場合M3→M1→M3→M2→M
3→M4→M3→M1の順でバス使用権を与える。
【0214】また、高優先バスマスタは、アービタ内の
プログラマブルなレジスタにあらかじめ設定された回数
だけ連続したバス権を得ることができる。連続したバス
を使用出来る回数は最大で4回である。
【0215】優先バスマスタ以外のバスマスタから他の
バスマスタにバス権が移ると、そのバスマスタは、他に
リクエストを出しているすべてのバスマスタにバス権を
与えた後でないと再びバス権を得ることができない。ひ
とつのバスマスタが連続してリクエストを行う場合、他
にリクエストを行っているバスマスタがいなければ、連
続してバス権を得ることができるが、他のバスマスタが
リクエストを行っていれば、そのバスマスタはあらかじ
め設定された回数だけ連続してバス権を得ることができ
る。一度バス権が他のバスマスタに移ると、他にリクエ
ストを出しているすべてのバスマスタにバス権を与えた
後でないと再びバス権を得ることができない。
【0216】低優先アービトレーションシーケンサ40
04には最大3本のリクエストを割り当てる事が出来
る。低優先シーケンサ4004に割り当てられたマスタ
へは、中優先、高優先シーケンサに割り当てられた、す
べてのマスタのリクエストがなくならないと、バスの使
用権が与えられない。このシーケンサへのバスマスタの
割り当ては十分な注意を持って行われなければならな
い。
【0217】(優先バスマスタの切り替え)優先バスマ
スタの切り替えを行なうには、アービタ内のレジスタを
書き換えればよい。優先バスマスタを選択するレジスタ
が書き換えられると、その時に実行中のトランザクショ
ンの終了を待って、優先バスマスタが切り替えられる。
アービタのステートはアイドル状態にもどり、その時点
でリクエストを出していたバスマスタは、その時同時に
リクエストを出したものとして、あらためてアービトレ
ーションが行われる。
【0218】切り替えには十分注意を払う必要がある。
優先させるべきバスマスタのDMAが終了しないうちに、
異なったバスマスタに優先バスマスタを切り替えてしま
うと、最初の優先バスマスタのDMAの優先度が下がって
しまう。もしも最初の優先バスマスタの優先度を下げた
くないのであれば、DMAが終了したのを確認してから優
先バスマスタの切り替えを行なう必要がある。
【0219】優先バスマスタ切り替えを、システムブー
ト時のみでなく、システム稼働中も動的に行なう必要の
あるソフトウェアでは、優先バスマスタの切り替えは、
いったんBバス上に新たなDMAリクエストが発生しない
よう、すべてのバスマスタ及びDMAコントローラに対す
る設定を中止し、その後、Bバスアービタ407内のレ
ジスタに適切な値をセットし、さらに、Bバスアービタ
内のステータスレジスタをチェックし、バスマスタの優
先権が切り替わったのを確認した上で新たなBバス上へ
のアクセス及びDMAの起動を行うべきである。
【0220】優先バスマスタの動的切り替えは、オペレ
ーティングシステムの実時間保証、タスクの優先順位の
設定を変化もしくは、違反させてしまう可能性があり、
十分な考慮の上行われなければならない。
【0221】(アクセス順序制御機構)Bバスアービタ
407はアクセス順序制御機構を含む。アクセス順序制
御機構は、同期ユニット4001と、Bバスアービタ4
07,Gバスアービタ406内に組み込まれたバス使用
権発行抑制機構によって実現される。Bバスアービタ4
07内に組み込まれたバス使用権発行抑制機構は、Gバ
スアービタのそれと同様に動作する。つまり、stopPci
信号が入力された場合は、Pciバスマスタからのバスリ
クエストが発行され、アービトレーションの結果、この
マスタにバスの使用権を与えることが可能な状態でも、
バスの使用権発行は行わず、他のマスタへバス使用権を
あたえる。具体的には、stopPci信号が入力された場合
は、直ちにbPciReq_Lをマスクすることにこれを行う。
【0222】LANコントローラ414からのバスリクエ
ストおよび、ストップ信号の場合もまったく同様に動作
する。図41に同期ユニット4001のブロック図を示
す。同期ユニット内には複数のDMAマスタ間すべての組
み合わせに関して、それぞれコンペアユニット4101
〜4103が接続される、DoEngineでは、Gbu
s上のDMAマスタはスキャナコントローラ/プリンタコン
トローラのみ存在する。Bバス上には、DMAPCIユニッ
ト、LANユニットの二つが存在する。SBB内のBバス
インターフェースはBバス上のバスマスタであるが、メ
モリには直接アクセスしないので、同期ユニット400
1にはIDと転送先アドレスを出力しない。
【0223】図42に同期ユニット内の一つコンペアユ
ニット(Comparation Unit 1)を以下に示す。他のコン
ペアユニットも同様の構成を有する。
【0224】PCIインターフェース416に付属するDMA
ブロックもしくは、スキャナコントローラ/プリンタコ
ントローラから、同期ユニット4001に対し、DMAラ
イトがプログラミングされた時点で、転送先のアドレス
とそのDMAブロック固有のリクエスト信号が通知され
る。
【0225】各コンペアユニットは、各DMAブロックか
らリクエストが出力された時点で、アドレスを内部に持
つタイマによる現在時刻とともに記憶する、次に他のDM
Aブロックから、DMAライトに関するアドレスとリクエス
トが入力された時点で、コンペアユニットは両アドレス
を比較する。一致した場合にはさらに、それぞれのレジ
スタに格納された時間を比較し、時間的に後からDMAラ
イトの要求を出してきたDMAブロックが接続されたバス
のバスアービタに対し、このマスタに対するバス使用強
化を与えないようにする。これは、stop(ID)という信号
により各バスのバスアービタに通知される。
【0226】各バスアービタはstop(ID)信号により通知
されたマスタに対しては、アービトレーションによるバ
ス使用権の割り当てを行わない。
【0227】時間が経過し、先にアクセス要求を行った
バスマスタにより当該メモリアドレスへのDMAライトが
終了すると、先のマスタは、同期ユニットに対するリク
エストを取り下げる、同期ユニットは、2番目にDMAラ
イトの要求を出した、DMAブロックの接続するバスのバ
スアービタに対し、このDMAブロックへの、バス使用権
許可禁止信号の発行をとりさげる。そして、後からDMA
ライトを行うべきマスタのDMAライトが行われる。
【0228】双方のDMAライトが終了し、双方のリクエ
ストが取り下げられると、タイマーがリセットされる。
タイマーのカウントアップは再度どちらかのマスタから
のリクエストが出力された時点で再度行われる。
【0229】2.9.スキャナコントローラ/プリンタ
コントローラ図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バス スキャナとプリンタの、画像データおよび水平、垂直同
期のための同期信号を直結するためのバスである。
【0230】2.9.1.スキャナコントローラ 図44にスキャナコントローラ4302のブロック図を
示す。スキャナコントローラ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である。
【0231】なお、スキャナから入力する画像データの
種類は、 1.RGB各8ビットのカラー多値データ 2.8ビット白黒多値データ 3.1ビット白黒2値データ などが含まれる。
【0232】次に、スキャナコントローラを構成する各
ブロックの概要を説明する。
【0233】[1.スキャナデバイスI/Fの概要]図4
5に、スキャナデバイスI/F4401のブロック図を示
す。スキャナデバイスI/Fは、スキャナユニットのスキ
ャナビデオI/F4501との間で信号を入出力する入出
力ポートである。スキャナビデオI/Fからの入力ビデオ
信号SVideoR[7:0], SVideoG[7:0], SVideoB[7:0]の各信
号を、スキャナコントローラコントロールレジスタ44
04からのVDInvt信号に応じて、レベル反転するかどう
かを切り替えることが可能である。
【0234】[2.スキャナビデオクロックユニットの
概要]図46に、スキャナビデオクロックユニット44
02のブロック図を示す。スキャナビデオクロックユニ
ット4402は、スキャナからのビデオクロックで動作
するブロックである。以下のブロックから構成される。 1.スキャナビデオデータマスク4601 スキャナからの画像データに対してデータマスクを行う
ブロックである。マスクされたデータはレジスタに設定
された値のデータとなる。 2.スキャナビデオ同期コントロールユニット4602 スキャナからのビデオクロック, VSYNC, HSYNCの信号か
ら、画像データを取り込むタイミング信号等を生成する
ブロックである。画像データの水平方向、垂直方向のデ
ータ数とライン数を管理する。 3.ビデオデータ幅コンバータ スキャナから入力した画像データを64ビット幅のデー
タにパッキングして変換するブロックである。
【0235】(スキャナビデオデータマスクの概要)図
47にスキャナビデオデータマスク4601のブロック
図を示す。スキャナビデオデータマスク4601は、ス
キャナから入力する画像データに対してピクセル単位で
マスクを行う。マスクされた画像データはレジスタによ
り設定された値となる(RDMask[7:0], GDMask[7:0], BD
Mask[7:0])。
【0236】(スキャナビデオ同期コントロールユニッ
トの概要)図48にスキャナビデオデータマスク460
2のブロック図を示す。スキャナビデオ同期コントロー
ルユニット4602は、スキャナから入力される画像デ
ータの垂直同期信号(SVSYNC)、水平同期信号(SHSYN
C)、画像データ同期クロック(GTSVCLK)により、取り
込む画像データのイネーブル信号(IVE)を生成する。
また、画像データの主走査方向の遅延、取り込みピクセ
ル数、副走査方向の遅延、取り込みライン数を管理す
る。さらに、設定量の画像データ取り込みを終了したタ
イミングでの状態信号(PENDP)を生成する。
【0237】ラインカウンタ4801は副走査方向の遅
延と取り込みライン数を管理して、画像読み取り有効ラ
インの垂直同期信号(EH)を生成する。ピクセルカウ
ンタ4802は主走査方向の画像取り込み遅延と取り込
み画素数を管理する。ページカウンタ4803は入力す
る画像データをページ単位で管理する。設定されたペー
ジ数分の画像データ入力を終了すると、終了信号(ALLP
END)を生成する。
【0238】(スキャナ ビデオデータ幅コンバータ4
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ビットデータへのならべかたとメモリ上でのならび
かたは以下のとおりである。
【0239】1.RGB各8ビットのカラー画像データ
(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の通りである。
【0240】2.RGB各8ビットのカラー画像データ
(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の通りである。
【0241】3.多値8ビットの白黒画像データ 第1ピクセル8ビット→ビット63−56 第2ピクセル8ビット→ビット55−48 第3ピクセル8ビット→ビット47−40 第4ピクセル8ビット→ビット39−32 第5ピクセル8ビット→ビット31−24 第6ピクセル8ビット→ビット23−16 第7ピクセル8ビット→ビット15−8 第8ピクセル8ビット→ビット7−0 メモリ上でのならびは、図52の通りである。
【0242】4.2値1ビットの白黒画像データ 第1ピクセル1ビット→ビット63 第2ピクセル1ビット→ビット62 第3ピクセル1ビット→ビット61 第4ピクセル1ビット→ビット60 : 第61ピクセル1ビット→ビット3 第62ピクセル1ビット→ビット2 第63ピクセル1ビット→ビット1 第64ピクセル1ビット→ビット0 メモリ上でのならびは、図53の通りである。
【0243】次に、各パッキングユニットについて説明
する。
【0244】図54は、BW8パッキングユニット49
01により、多値8ビットの白黒画像データを64ビッ
ト幅に変換する際のタイミング図である。スキャナから
の8ビット白黒画像データR[7:0]は、信号VEがハイ
レベルになると取り込まれ、1ピクセルずつ信号LP0
〜LP7に同期して64ビットラッチにラッチされる。
8画素分揃うと、信号LP64に同期して、ラッチされ
た8画素64ビットが信号BW8[63:0]として出力され
る。
【0245】図55は、シフトレジスタ4902により
2値白黒画像データを64ビット幅に変換する際の画像
データ入力のタイミング図である。スキャナからの2値
白黒画像データR7(SVIDEOR0)は、信号VEがハイレ
ベルになると取り込まれ、1ビットずつシフトレジスタ
によりシフトされて、64ビット取り込まれると。信号
SVLATCH64に同期して、信号BW1[63:0]として出力
される。
【0246】図56は、RGBパッキングユニット49
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]とする方法である。
【0247】データラッチ5701A,Bに、ラッチ信
号に同期させて交互に24ビット画像データをラッチ
し、上記3通りの選択の仕方を順に切り換えることで、
データセレクタ5702からの出力は、24ビット/ピ
クセルのデータを32ビットにまとめたデータとなる。
ただし、上記第3の方法でセレクタ5702のデータが
選択された後は、データセレクタに入力された2つのピ
クセル分のデータは両方とも更新されねばならない。そ
こで、図56に示されている通り、選択信号SELUL[3:2]
は1クロック分遅延される。
【0248】このようにデータセレクタ5702で32
ビット幅に一旦変換されたデータは、データラッチ57
40A,Bに交互にラッチされ、データラッチ5704
Bの内容が更新されたタイミング、すなわちラッチ信号
SELUL1がハイレベルになるタイミングで、64ビット幅
に変換されたデータとして出力される。
【0249】[3.スキャナ画像データ転送FIFOコント
ローラ4403の概要]図58に、スキャナ画像データ
転送FIFOコントローラ4403のブロック図を示す。こ
のブロックは、スキャナから入力された画像データをG
バスもしくはBバスを介して転送するためのバッファと
してのFIFO5801と、そのFIFO5801をコントロー
ルする回路から構成されている。FIFOとしては、容量5
12バイト(64ビット×64)のFIFOを備える。FIFO
のデータ出力は、スキャナFIFOライトリードアービタ5
802が、FIFO5801のエンプティフラグ(EF)を監
視しながら制御する。FIFOのデータ入力はスキャナビデ
オクロックユニット4402からの要求信号(WREQ)に
よりおこなわれる。
【0250】[4.スキャナコントローラコントロール
レジスタ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
に出力する。
【0251】[6.メモリフィルモードコントローラ4
405の概要]図61にメモリフィルモードコントロー
ラ4405のブロック図を示す。このブロックは、レジ
スタに設定された固定データをGBIを介してメモリに転
送するモードを制御する。このモード設定はMemfill信
号によりおこなわれる。固定データの転送モード指定が
なされると、sccGBIに出力されるデータは、レジスタに
設定されたデータ(MFData[31:0])が選択される。ま
た、sccGBIにデータ転送するタイミング信号(sccWrit
e)はこのブロック内で生成される。
【0252】(sccIF−バス)sccIF−バス
は、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信号がアサ
ートされた次のクロックからセンスされる。
【0253】なお、信号sccRst1_L, sccバイトEn[7:0],
sccRead, sccDataIn[63:0]は、IFバスに含まれている
ものの、スキャナコントローラでは未使用である。
【0254】図62及び図63は、上述の信号のタイミ
ングの一例を示すタイミングダイアグラムである。図6
2はスキャナコントローラ4302からデータを読み出
してDMA転送する際のタイミングであり、図63は、ス
キャナコントローラ4302の内部レジスタに対して読
み出しあるいは書き込みを行うタイミングである。
【0255】(パワーマネジメント)スキャナコントロ
ーラ内部では、スキャナ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B005000)の設定
に応じたビデオクロック(SVCLK)のゲートコントロール
を行い、それによりパワーマネージメントを行う。パワ
ーマネジメントユニット(PMU)409に出力するPMス
テート信号(sccPmStat[1:0])の値は、Gバス/BバスI/
Fユニット4301Aから入力されるsccDmaPmState[1:
0]の状態とクロックの状態とを合わせて決定される。sc
cPmState[1:0]は図64のとおりである。
【0256】図64において、sccDmaPmState[1:0]は、
スキャナのGバス/BバスインターフェースGBI_sccの
パワー消費状態を示している。GBI_secにはパワー消費
状態00〜11の4段階がある。この状態信号sccDmaPmState
[1:0]は、GBI_sccからスキャナコントローラへ出力さ
れている。
【0257】また、スキャナコントローラのパワー消費
状態は2段階あり、内部信号SPStatで示される。
【0258】信号sccPmstate[1:0]は、GBI_sccとスキ
ャナコントローラの2つの状態をあわせた状態を示して
いる。この信号がシステムのパワーマネージメントユニ
ットに出力される。すなわち、スキャナコントローラの
電力消費状態は4段階でパワーマネジメントユニットに
伝えられる。その段階は信号sccPmstate[1:0]の値で示
される。値00が最低レベルであり、1増えるごとに示さ
れる電力消費量は大きくなる。
【0259】(スキャナコントローラコアインターフェ
ース)図65は、スキャナコントローラ4302におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、スキャナコントローラ4302は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接続さ
れている。
【0260】2.9.2.プリンタコントローラ 図66にプリンタコントローラ4303のブロック図を
示す。プリンタコントローラはビデオ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である。
【0261】プリンタへ出力する画像データの種類は次
の5種類である。 1.RGB各8ビットのカラー多値データ(点順次) 2.8ビット白黒多値データ 3.1ビット白黒2値データ 4.CMYK各1ビットのカラーデータ(面順次) 5.CMYK各8ビットのカラーデータ(面順次) 次に、プリンタコントローラを構成する各ブロックの概
要を説明する。
【0262】[1.プリンタデバイスI/Fの概要]図6
7にプリンタデバイスI/F6601のブロック図を示
す。このブロックは、プリンタビデオI/Fおよびオプシ
ョンコントローラI/Fから信号を入出力する入出力ポー
トである。PビデオR[7:0], PビデオB[7:0]の各信号はVD
Invt信号により、出力信号をレベル反転するかどうかを
切り替えることが可能である。
【0263】[2.プリンタビデオクロックユニットの
概要]図68にプリンタビデオクロックユニット660
2のブロック図を示す。このブロックは、プリンタから
のビデオクロックで動作し、以下のブロックから構成さ
れる。 1.プリンタビデオデータマスク6801(DFF8ENMask)
プリンタへの画像データに対して、データマスクを行う
ブロック。マスクされたデータはレジスタに設定された
値のデータとなる。 2.プリンタビデオ同期コントロールユニット6802
(Prc_syncユニット)プリンタからのビデオクロック, VS
YNC, HSYNCの信号から、画像データを出力するタイミン
グ信号等を生成するブロック。画像データの水平方向、
垂直方向のデータ数とライン数を管理する。 3.プリンタ ビデオデータ幅コンバータ6803(pvdw
conv)IFバスからの64ビット幅で送られてくる画像デ
ータを、モードにより、RGB24ビット、白黒8ビッ
ト、白黒1ビットのデータに変換するブロック。モード
設定はレジスタにより行う。
【0264】(プリンタビデオデータマスク)図69に
プリンタビデオデータマスク6801のブロック図を示
す。このブロックは、プリンタへ出力する画像データに
対して、ピクセル単位でマスクを行う。マスクされた画
像データはレジスタに設定された値となる(RDMask[7:
0], GDMask[7:0], BDMask[7:0])。
【0265】(プリンタビデオ同期コントロールユニッ
ト)図70にプリンタビデオ同期コントロールユニット
6802のブロック図を示す。このブロックは、プリン
タへ出力する画像データの垂直同期信号(TOP)、水平
同期信号(INPHSYNC)、画像データ同期クロック(GTVC
LK)により、出力する画像データのイネーブル信号(VD
OEN)、プリンタ画像データ転送FIFOコントローラ66
03にデータの要求をする信号(RREQ)を生成する。
【0266】また、画像データの主走査方向の遅延、取
り込みピクセル数、副走査方向の遅延、取り込みライン
数を管理する。ラインカウンタ7001は設定量の画像
データ出力を終了したタイミングでの状態信号(PEND
P)を生成する。また、副走査方向の遅延と出力ライン
数を管理して、画像出力有効ラインの垂直同期信号(E
H)を生成する。ピクセルカウンタ7002は主走査方
向の画像出力遅延と出力画素数を管理する。ページカウ
ンタ7003は出力する画像データをページ単位で管理
する。設定されたページ数分の画像データ出力を終了す
ると、終了信号(ALLPEND)を生成する。
【0267】(プリンタ ビデオデータ幅コンバータ)
図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ビットデータのメモリ上でのならびかたは以下のと
おりとなる。
【0268】1.RGB各8ビットのカラー画像データ
(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に示した通り
となる。
【0269】2.RGB各8ビットのカラー画像データ
(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に示した通り
となる。
【0270】3.多値8ビットの白黒画像データ 第1ピクセル8ビット→ビット63−56 第2ピクセル8ビット→ビット55−48 第3ピクセル8ビット→ビット47−40 第4ピクセル8ビット→ビット39−32 第5ピクセル8ビット→ビット31−24 第6ピクセル8ビット→ビット23−16 第7ピクセル8ビット→ビット15−8 第8ピクセル8ビット→ビット7−0 この場合、メモリ上でのならびは、図74に示した通り
となる。
【0271】4.2値1ビットの白黒画像データ 第1ピクセル1ビット→ビット63 第2ピクセル1ビット→ビット62 第3ピクセル1ビット→ビット61 第4ピクセル1ビット→ビット60 : 第60ピクセル1ビット→ビット4 第61ピクセル1ビット→ビット3 第62ピクセル1ビット→ビット2 第63ピクセル1ビット→ビット1 第64ピクセル1ビット→ビット0 この場合、メモリ上でのならびは、図75に示した通り
となる。
【0272】次に、プリンタビデオデータ幅コンバータ
を構成するブロックについて説明する。
【0273】(RGBoutユニット7101)図76
にRGBoutユニット7101のブロック図を示す。このブ
ロックは24ビットモードでパックされた64ビット幅
のデータをRGB各8ビットのカラー画像データに変換す
るユニットである。
【0274】[3.プリンタ画像データ転送FIFOコント
ローラの概要]図77にプリンタ画像データ転送FIFOコ
ントローラ6603のブロック図を示す。このブロック
は、プリンタへ出力する画像データをGBI(Gバス/Bバ
スI/F)を介して転送するためのバッファとしてのFIFO
と、そのFIFOをコントロールする回路でらう。容量51
2バイト(64ビット×64)のFIFO7701を備え
る。FIFOのデータ入力は、プリンタFIFOライトリードア
ービタ7702がFIFO7701のフルフラグ(FF)を監
視しながら制御する。FIFOのデータ出力はプリンタビデ
オクロックユニット6602からの要求信号(RREQ)に
よりおこなわれる。
【0275】[4.プリンタコントローラコントロール
レジスタユニット]図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に出
力する。
【0276】[6.プリンタコマンド/ステータスコン
トロールユニット]図81に、プリンタコマンド/ステ
ータスコントロールユニット6606のブロック図を示
す。このブロックは、プリンタを制御するためのシリア
ルコマンド/ステータスを送受信するブロックである。
【0277】シリアルコマンドとしては、コマンドを送
信している期間をあらわすINPCBSY信号、シリアルコマ
ンドの同期クロックであるINPCCLK信号、シリアルコマ
ンドINPSRCMD信号が生成される。
【0278】シリアルステータスとしては、ステータス
が送信されている期間を示すINPSBSY信号、シリアルス
テータスINPSRSTS信号が入力されて、8ビットのステー
タスPSRSTAT[7:0]を出力する。シリアルステータスを入
力するための同期クロックはプリンタから出力されるIN
PPCLK信号、または、本ブロックで生成されるPCCLK信号
のどちらかを選択可能である。選択はPSRCLKMode信号に
よりなされる。
【0279】[7.オプションコントローラコントロー
ルユニット]図82に、オプションコントローラコント
ロールユニット6607のブロック図を示す。このブロ
ックは、オプションコントローラに対して、送信データ
(TX)を出力するユニットである。TX送信のための、IN
STROBE信号、INCKEN信号、CLK(OPCLK)信号を生成する。
また、TX送信と同時に、受信データ(RX)の受信を行
う。
【0280】(prcIF−バス)prcIF−バス
は、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信号がアサート
された次のクロックからセンスされる。
【0281】なお、信号prcReq0_L, prcバイトEn[7:0],
prcWrite, prcDataOut[63:0], prcReadEnableは、プリ
ンタコントローラでは未使用となる。
【0282】図83及び図84は、上述の信号のタイミ
ングの一例を示すタイミングダイアグラムである。図8
3はプリンタコントローラ4303へデータをDMA転送
する際のタイミングであり、図63は、プリンタコント
ローラ4303の内部レジスタに対して読み出しあるい
は書き込みを行うタイミングである。
【0283】(パワーマネジメント)プリンタコントロ
ーラ内部では、プリンタ・コントローラ・パワー・マネ
ジメント・コントロールレジスタ(0X1B007000)の設定
に応じたビデオクロック(VCLK)のゲートコントロールを
行い、それによりパワーマネージメントを行う。パワー
マネジメントユニット(PMU)409に出力するPMステ
ート信号(prcPmStat[1:0])の値は、Gバス/BバスI/F
ユニット4301Bから入力されるprcDmaPmState[1:0]
の状態とクロックの状態とを合わせて決定される。prcP
mState[1:0]は図85のとおりである。
【0284】図85において、prcDmaPmState[1:0]は、
プリンタのGバス/BバスインターフェースGBI_prcの
パワー消費状態を示している。GBI_prcにはパワー消費
状態00〜11の4段階がある。この状態信号prcDmaPmState
[1:0]は、GBI_prcからプリンタコントローラへ出力さ
れている。
【0285】また、プリンタコントローラのパワー消費
状態は2段階あり、内部信号PPStatで示される。
【0286】信号prcPmstate[1:0]は、GBI_prcとプリ
ンタコントローラの2つの状態をあわせた状態を示して
いる。この信号がシステムのパワーマネージメントユニ
ットに出力される。すなわち、プリンタコントローラの
電力消費状態は4段階でパワーマネジメントユニットに
伝えられる。その段階は信号prcPmstate[1:0]の値で示
される。値00が最低レベルであり、1増えるごとに示さ
れる電力消費量は大きくなる。
【0287】2.9.3 Gバス/BバスI/Fユニッ
ト(GBI) 図92は、Gバス/BバスI/Fユニット4301のブロ
ック構成図である。Gバス/BバスI/Fユニットは、ス
キャナ及びプリンタのそれぞれに用意されているが、そ
の構成は同じであるため、ここでまとめて説明する。
【0288】図92において、GBI4301は、GB
usと接続してこれを制御するGBusコントローラ
と、BBusと接続してこれを制御するBBusコント
ローラとを含む。これらの間には、DMAアドレスを制
御するDMAコントローラ9205のほか、機能ブロッ
クとGBus/BBusとの間をデータ転送に用いられ
るFIFO9204、種々の設定値が書き込まれるレジ
スタユニット9206が含まれる。このうち、GBUS
コントローラとFIFO9204は、GBusにあわせ
て100MHzのクロックで動作し、その他のブロック
はBBusにあわせて50MHzで動作する。
【0289】GBI4301は、GBusとBBusの
両方に接続されるべき機能ブロック(SCC:スキャナ
コントローラとPRC:プリンタコントローラ)の、G
BusとBBusの選択的接続及び、両バスのインター
フェースを提供する。GBIと各機能ブロックの間は、
IFBus9201で接続される。機能ブロックでは、
データの入出力先がGBusかBBusかを意識する必
要はない。また、GBI側でDMAをサポートするの
で、機能ブロック側でアドレスを発生する必要もない。
GBIは、各機能ブロックで共通に必要となる機能をま
とめて、独立のユニットにしたものである。
【0290】GBIがサポートするIFBus9201
に接続される機能ブロックは、連続したデータを受け取
る、あるいは送り出すものとする。IFBusにアドレ
ス信号は含まれていない。GBIでは、Channel
0(GBus/BBus→IFBus0)とChann
el1(GBus/BBus→IFBus1)の2つの
チャネルが用意され、それぞれに、DMAコントローラ
が用意されている。ただし、スキャナコントローラで
は、Channel0のみを、プリンタコントローラで
は、Channel1のみを使用(実装)する。
【0291】DMAコントローラ9205は、I/O
(アドレス固定)とメモリに対する設定が可能で、メモ
リの場合は、連続物理アドレスとチェーンテーブル方式
(後述)のDMAが設定できる。
【0292】GBIは、データを、FIFOを介して機
能ブロックと入出力する。したがって、GBIがスレー
ブモードとして動作する場合、GBIのアドレスは、G
Bus側が、0x18n0_0000〜0x18n0_
007F、BBus側が、0x19n0_0000〜0
x19n0_001Fのみで同じロケーションがアクセ
スされる。FIFOを使用しているため、バースト転送
時のラップアラウンドに対応するのが困難である。BB
usのラップアラウンドを伴うバースト転送要求に対し
ては、シングルアクセスとして応答する。GBusのラ
ップアラウンドを伴う転送要求に対しては応答しない。
【0293】なお、GBI間で画像データのDMA転送
を行う場合には、それぞれのDMAコントローラにより
制御が行われる。この際に、いずれの側がマスタになる
かは特に決めないが、よりデータ転送のタイミングが厳
格な方がマスタになることが望ましい。このため、本実
施例では、GBI_PRCをマスタにし、GBI_SCCをスレーブに
してDMA転送を行っている。
【0294】GBI(GBus/BBusインターフェ
ース)は、 1.機能ブロックとのデータの受け渡しをするFifo
ユニット 2.GBusに直結され、GBusとFifoユニット
をつなぐGBusコントローラ9202 3.BBusに直結され、BBusとFifoユニット
をつなぐBBusコントローラ9203 4.マスタモードの時に、DMA転送要求を各バスコン
トローラに発行するDMAコントローラ9205 5.レジスタの内容を保持し、各ブロックに信号を送る
レジスタユニット9206 から構成される。レジスタユニット内には、割込み制
御、パワー制御部も含んでいる。以下に、各部の説明を
する。
【0295】(Fifoユニット)図93に示したFi
foユニットは、GBus/BBusとIFBusとの
間の転送データのバッファとなる部分である。Fifo
ユニットは、互いに独立したFifoユニット0とFi
foユニット1とから構成される。Fifoユニット0
はIFBusからのデータ入力及びGBusあるいはB
Busへのデータ出力のために用いられ、Fifoユニ
ット1はGBusあるいはBBusからのデータ入力及
びIFBusへのデータ出力のために用いられる。
【0296】信号scGbiFifo0ClkあるいはscGbiFifo1Clk
はゲーテッドクロックで、クロックを止めることで省電
力モードを実現する。このクロックは、GBI FIF
Oレジスタをライトすることにより停止し、マスタモー
ドかスレーブモードに入る時に自動的に起動する。
【0297】[Fifoユニット0]Fifoユニット
0は、IFBus0(IFBusの仕様については後
述)からのデータをFifoに書き込み、GBus/B
Busに送り出す。信号ifDataOutB[63:0]、ifWriteB、
ifWriteEnableGは、IFBusと接続される。
【0298】このFifoユニット0が有するFifo
0は、IFBusからの64ビットデータを入力とし、
GBus用の64ビットデータDataOut64とB
Bus用の32ビットデータDataOut32を出力
する、64ビット×17段のFifoである。
【0299】Fifoユニット0から出力されるステー
タス信号には次のような信号がある。 ・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と接続され、機能ブ
ロックにライト可能であることを伝える。
【0300】また、Fifo0からのGBusの64ビ
ットデータのリードは、Fifo0に入力されている信
号Rd64を使い、BBusの32ビットデータのリー
ドは、信号Rd32を使う。どちらのリードによって
も、ステータス信号及び、Fifo0からの出力データ
であるDataOut64とDataOut32は更新
される。
【0301】(B2Gブロック)I/Fバス及びBBu
sのクロックは50MHzであり、GBusのクロック
は100MHzである。このため、Fifoユニット0
に含まれる不図示のB2Gなるブロックにより、IFB
usクロックに同期した書込み信号ifWriteFi
foB、あるいはBBUsクロックに同期した読出し信
号bReadFifoBの1クロック分を、Fifoユ
ニットのクロック(IFBusの2倍の周波数)のクロ
ックに変換する。
【0302】(ChkIllegalブロック)Fif
o0は、GBus/BBusにより共有される。マスタ
ーモードでは、DMAコントローラがGBus/BBu
sの排他使用を制御しているが、スレーブモードでは、
DMAマスターが排他使用を制御しなければならない。
このため、Fifoユニット0に含まれるChkIll
egalブロックでは、GBusとBBusから同時に
Fifo0にアクセスされた場合に、信号fifoEr
rorGをアサートする。すなわち、Gbusからの読
出し信号gReadFisoG、あるいはBBusから
の読出し信号bReadFisoBが同時にアサートさ
れると、信号fifoErrorGをアサートする。こ
の信号は、レジスタユニットでラッチされ、マスクされ
ていなければ、割り込みを発生する。
【0303】[Fifoユニット1]Fifoユニット
1は、GBus/BBusからのデータを内蔵するFi
fo1に書き込み、IFBus1に送り出す。ifDa
taIng[63:0],ifByteEnG[7:
0],ifReadB,ifReadEnableG
は、IFBusと接続される。
【0304】Fifoユニット1では、マスタモードで
の逆方向DMAに対応するために、Fifo1の前段に
フロントバッファを設けてある。逆方向DMA(入力信
号reverseMODEがイネーブル)の時には、フ
ロントバッファにいったんバッファしてから、逆順でF
IFOにデータを送り出す。それ以外のモード(信号r
everseMODEがディスエーブル)の時には、通
常のFIFOとして機能する。
【0305】(フロントバッファ)GBusまたは、B
Busからのデータを入力とし、Fifo1へ出力す
る、バイトイネーブル付き64+4ビット×4段のバッ
ファである。BBusからの書き込みでは、データはバ
イトイネーブル信号とともに書き込まれる。GBusか
らの書き込みでは、バイトイネーブルをすべて有効と
し、データが書き込まれる。BBusからの書き込みで
の64ビットへのパッキングは行わない。
【0306】ステータス信号として、フロントバッファ
が空状態であることを示す信号BufEmptyが設け
られている。
【0307】逆方向DMAの時には、信号revers
eMODEがイネーブルであり、転送モードは、DMA
コントローラで、GBusの4beatバースト転送、
あるいはBBusのシングル転送のみに制限される。G
Busの4beatバースト転送のデータは、一度フロ
ントバッファに貯めてから、逆順にして、Fifo1に
データを送り出す(32ビット単位で逆順にする)。
【0308】それ以外のモードの時には、信号reve
rseMODEがディスエーブルであり、4段のFIF
Oとして機能する。入力信号dummyWriteFi
fo1Bは一度ラッチされ、フロントバッファが空にな
った時点で、Fifo1に送られる。
【0309】(Fifo1)Fifo1は、フロントバ
ッファからのデータを入力とし、入力されたデータをI
FBusへ出力する、バイトイネーブル付き64+8ビ
ット×16段のFifoである。BBusからのデータ
は、バイトイネーブル信号とともに書き込まれる。GB
usからのデータは、バイトイネーブルをすべて有効と
し、書き込まれる。BBusからのデータの書き込みで
は、64ビットへのパッキングを行う。
【0310】Fifo1の内部状態と、フロントバッフ
ァの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と接続され、機能ブロックに
リード可能であることを伝える。
【0311】信号Fifo1EnableB1G、Fi
fo1EnableB4G、Fifo1EnableB
8Gは、マスタモード時にはDMAコントローラが、ス
レーブモード時にはBBusコントローラが使用する。
【0312】信号Fifo1EnableG4G、Fi
fo1EnableG16Gは、マスタモード時にはD
MAコントローラが、スレーブモード時にはGBusコ
ントローラが使用する。
【0313】また、Fifoユニット1は、Fifoユ
ニット0と同じく、B2Gブロック及びChkIlle
galブロックを備えている。
【0314】(GBusコントローラ)図94は、Gb
usコントローラ9202のブロック図である。Gbu
sコントローラ9202は、GBIがバスマスタとなっ
てGBusを制御するためのGBusマスタコントロー
ラと、スレーブとなった際の制御を行うためのGBus
スレーブコントローラと、データを制御するためのGB
usデータコントローラと、GBusインターフェース
バッファとを含む。この構成により、GBI4301
は、GBusのマスタあるいはスレーブとして動作する
ことができる。
【0315】[GBusマスタ動作]GBusコントロ
ーラは、GBusマスタコントローラにより、以下のよ
うな手順でGBusマスタとしての制御を行う。
【0316】1.DMAコントローラからの要求 DMAコントローラ9205は、チャネルNの転送が可
能な段階で、gMReq(N)信号を、gMAddr
(N)[31:5]信号、gMBst4Not16_N
信号とともに、bClk(Bbusクロック信号)で1
クロックだけアサートして、DMA転送を要求する。
【0317】gMAddr(N)[31:5]信号、g
MBst4Not16_N信号は、GBusマスタコン
トローラによりgMDone(N)信号、gMRtry
(N)信号、gMBErr(N)信号のいずれかがアサ
ートされるまで、変化させてはいけない。
【0318】2.GBusアービタへの転送要求 gMReq(N)信号は、GBusマスタリクエストイ
ンターフェースでラッチされる(gLatchReq
(N)信号)。
【0319】各チャネルのgLatchReq信号は、
不図示のGBusマスタリクエストアービタで調停さ
れ、GBusアービタ406に対し、DMA要求信号g
Req_L信号をアサートすると同時に、GBusマス
タアドレスフェーズに、gIntReq(N)信号を送
る。
【0320】3.GBusアービタからの転送許可 GBusアービタ406からのDMA許可信号gGnt
_L信号がアサートされると、GBusマスタアドレス
フェーズから、信号GGntSenseがアサートさ
れ、DMA要求信号gReq_Lはネゲートされる。同
時に、gLatchReq(N)信号とgIntReq
(N)信号はネゲートされる。GBusマスタリクエス
トインターフェースは、信号gSlvBsyを監視し、
データバスが使用可能になると、GMDataRq
(N)信号をアサートする。この信号は、GBusマス
タジェネレートエンドデータとGBusデータコントロ
ーラに送られる。
【0321】4.GBusデータ転送 スレーブのgAack信号を確認すると、データ転送を
開始する。EndData以外のGBusの信号は、G
Busマスタアドレスフェーズで生成される。EndD
ataは、GBusマスタジェネレートエンドデータで
生成される。GBusからFifoあるいは、Fifo
からGBusへのデータの移動は、GMDataRq
(N)信号により、GBusデータコントローラが行
う。なお、gAack信号の前にgRtry信号を検出
すると、GBusデータコントローラはデータ転送を行
わない。
【0322】5.GBusデータ転送終了(あるいはリ
トライ) GBusマスタジェネレートエンドデータは、GBus
データ転送の終了を、checkBErr信号によりG
Busマスタリクエストインターフェースへ伝える。そ
の信号を受けたGBusマスタリクエストインターフェ
ースは、内部で保持している要求をクリアすると同時
に、バスエラーがなければ、gMDone信号をアサー
トする。バスエラーを検出した場合には、gMBErr
信号をアサートし、DMAコントローラ9205に転送
が完了したことを伝える。
【0323】また、gRtry信号を検出すると、GB
usマスタリクエストインターフェースは、内部で保持
している要求をクリアすると同時に、gMRtry信号
をアサートする。
【0324】DMAコントローラ49205は、GBu
sコントローラ9202から受けた信号がgMDone
信号であれば、転送アドレスや転送長等を更新する。受
けた信号がgMRtry信号であれば、それらを更新せ
ずに、次のアクションを起こす。gMBErr信号の時
には、DMAコントローラ9202は転送を中止し、マ
スクされていなければ、割り込みを発生する。
【0325】[GBusスレーブ動作]GBusコント
ローラは、GBusスレーブコントローラにより、以下
のような手順でGBusスレーブとしての制御を行う。
【0326】1.マスタからの転送要求 GBusスレーブリクエストインターフェースでは、g
TsReg信号アサートのタイミングで、gAddrR
eg信号とgRdNotWrReg信号(チャネル0か
1)を確認する。GBIへのアクセスで、gSEnab
le(N)信号(スレーブモード:レジスタにより設
定)がアサートされていれば、gBst4Not16信
号とReadFifoEnable4/16信号(チャ
ネル0)かWriteFifoEnable4/16信
号(チャネル1)から、転送可能か判断する。可能であ
れば、gAack信号を、そうでなければ、gRtry
信号をアサートする。
【0327】2.GBusデータ転送 転送可能であれば、GBusスレーブリクエストインタ
ーフェースは、gSlvBsy信号のネゲートを確認
し、gAack信号をアサートし、そのタイミングを、
GSlvStart信号でGBusスレーブリクエスト
スレーブビジーに伝える。また、GBusスレーブリク
エストインターフェースは、データの転送開始を、GS
DataRq(N)信号をアサートすることでGBus
データコントローラに伝える。GBusからFifoあ
るいは、FifoからGBusへのデータの移動は、G
Busデータコントローラが行う。GBusスレーブリ
クエストスレーブビジーは、gSlvBsy信号を生成
する。
【0328】3.GBusデータ転送終了 転送終了を示す信号は特にない。gBErr信号をアサ
ートすることもない。ただし、gSEnable(N)
信号がネゲートしてあれば、マスタのアクセスに対して
応答しないので、タイムアウトによるバスエラーが発生
する。
【0329】(BBusコントローラ)図95は、BB
usコントローラ9203のブロック図である。BBu
sコントローラ9203は、BBusマスタコントロー
ラと、BBusデータコントローラ、BBusスレーブ
コントローラ及びBBusインターフェースバッファを
含む。この構成により、GBI4301は、BBusの
マスタあるいはスレーブとして動作することができる。
【0330】[BBusマスタ動作] 1.DMAコントローラからの要求 DMAコントローラ9205は、チャネルNの転送が可
能な段階で、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転送が要
求される。
【0331】bMAddr(N)[31:2]信号,b
MBurst(N)信号,bMBst4Not8_N信
号は、Fifoにアクセスを開始する(bReadFi
fo、bWriteFifoがアサートされる)まで変
化させてはいけない。
【0332】また、cMAddr(N)[31:2]信
号は、cMDone(N)信号,cMrtry(N)信
号,cMBErr(N)信号のいずれかがアサートされ
るまで変化させてはいけない。
【0333】2.BBusアービタへの転送要求 BBusbMReq(N)信号及びcMReq(N)信
号は、BBusマスタリクエストインターフェースでラ
ッチされる(bLatchReq(N)信号及びcLa
tchReq(N)信号)。各要求信号は、BBusマ
スタリクエストアービタで調停され、BBusアービタ
407に対してbBReq_L信号がアサートされる。
【0334】3.BBusアービタからの転送許可 BBusアービタからの許可信号であるbBGnt_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データコントローラに送られ
る。
【0335】4.BBusデータ転送 BBusマスタシーケンサは、BBusマスタがドライ
ブすべきデータ以外のBBusの信号をすべて生成す
る。BMDataRq(N)信号あるいはCMData
Rq(N)信号をトリガにして、bStartOut_
L(バーストモードであれば、同時にbBurstOu
t_L)をアサートし、bRdy(バーストモードであ
れば、bBurstAck)をチェックし、転送終了を
検出する。BBusからFifo、あるいはFifoか
らBBusへのデータの移動は、BMDataRq
(N)信号により、BBusデータコントローラが行
う。
【0336】なお、bRdy信号の前(あるいは同時
に)にbRetry信号を検出すると、BBusデータ
コントローラはデータ転送を行わない。
【0337】5.BBusデータ転送終了(あるいは、
リトライ、バスエラー) BBusデータコントローラは、BBusマスタシーケ
ンサのBMLastData信号でデータの移動を終了
する。また、BBusマスタシーケンサは、BBusデ
ータ転送の終了をDone信号により、BBusリクエ
ストインターフェースへ伝える。リトライあるいはバス
エラーであった場合には、それぞれ、Retry信号、
Error信号で伝える。BBusマスタリクエストイ
ンターフェースは、DMAコントローラに転送が完了し
たことを、[bc]MDone(N)(以下、bまたは
cのいずれかであることを[bc]と表す)で、リトラ
イ、バスエラー場合には、[bc]MRtry(N)信
号、[bc]MBErr信号でそれぞれ伝える。
【0338】DMAコントローラは、信号bReadF
ifo、bWriteFifoにより、転送アドレスや
転送長等を更新し、DMAのBBus転送の終了を示す
bMDone(N)信号か、bMRtry(N)信号
で、次のアクションを起こす。チェーンテーブルの読み
込みの終了を示すcMDone(N)信号は、内部のチ
ェーンテーブルを更新し、cMRtry(N)信号であ
れば、再び転送要求を発行する。
【0339】[bc]MBErr(N)信号の時には、
DMAコントローラは転送を中止し、マスクされていな
ければ割り込みを発生する。
【0340】(バーストモードでのリトライ)信号bS
tart_Lと信号bBurst_Lの同時アサート
で、スレーブが、信号bRetry_Lのアサートなし
に、信号bRdy_Lと信号bBurstAck_Lの
同時アサートで応答した場合、スレーブはバースト転送
可能と判断される。そのバースト転送中は信号bRet
ry_Lはチェックされない。つまり、最初のbRdy
_Lのタイミングの時のみ、信号bRetry_Lはチ
ェックされる。なお、バースト転送中でも、信号bEr
ror_Lは、各クロックでチェックされる。
【0341】(信号bError_L、bRetry_
L、bRdy_Lの同時アサートについて)信号bEr
ror_Lがアサートされた場合、信号bRetry_
Lがアサートされていても、バスエラーとみなされる。
信号bError_Lがネゲートされ、信号bRetr
y_Lがアサートされた場合、信号bRdy_Lがアサ
ートされていてもリトライと見なされる。
【0342】(マスタモード時の信号byteEn_L
[3:0]について)マスタモード時の信号byteE
n_L[3:0]は、シングルアクセス、バーストアク
セスの最後の転送以外は、常に、“0000”である。
【0343】[BBusスレーブ動作(レジスタアクセ
ス以外)] 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信号をアサートする。
【0344】マスタのバーストモード(bBurst_
L信号がアサート)の要求に対して、Fifoの状態か
ら、バースト転送はできないがシングル転送は可能な場
合は、bRdyOut_L信号のみアサートし、シング
ル転送を行う。また、マスタのバーストモード要求がラ
ップアラウンドを発生する場合、GBIがラップアラウ
ンドに対応していないため、可能であればシングル転送
を行う(bBurstAckOut_L信号をアサート
しない)。
【0345】2.BBusデータ転送 転送可能であれば、BBusマスタシーケンサは、必要
なクロック分だけ、bRdyOut_L信号をアサート
し続ける。バースト転送の場合には、最初のbRdyO
ut_L信号のアサートのタイミングで、bBurst
AckOut_L信号を1BBusクロックだけアサー
トする。また、データの転送開始をBSDataRq
(N)信号で、データの転送終了をbMLastDat
a信号で、BBusデータコントローラに伝える。BB
usからFifoあるいは、FifoからBBusへの
データの移動は、BBusデータコントローラが行う。
【0346】3.BBusデータ転送終了 転送終了を示す信号は特にない。bErrorOut_
L信号をアサートすることもない。ただし、bSEna
ble(N)信号がネゲートしていれば、マスタのアク
セスに対して、応答しないので、タイムアウトによるバ
スエラーが発生する。
【0347】[BBusスレーブ動作(レジスタアクセ
ス)]GBI及び機能ブロック内のレジスタのアクセス
はBBusから行う。レジスタのアクセスについては、
GBIのモードや状態によらず、いつでもアクセス可能
である。bRetryOut_L、bErrorOut
_L信号をアサートすることはない。マスタのバースト
モードの要求に対して、いつでもシングル転送で応答す
る(bBurstAckOut_L信号をアサートしな
い)。
【0348】レジスタコントローラ9206は、reg
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)をアサー
トする。
【0349】BBusスレーブジェネレートレディで、
Ack信号からbRdyOut_Lを作る。
【0350】(GBIのレジスタアクセス以外のBBu
sのサイクル)GBIのスレーブモードでは、シングル
転送のサイクルはいつも3BBusクロックである。バ
ースト転送は、シングル転送と同じタイミングで、最初
のbRdyOut_L信号をアサートし、その後ネゲー
トすることなしに必要なクロック分アサートを続ける。
転送(シングルとバースト)ができない場合は、最初の
bRdyOut_Lをアサートするタイミングで、bR
etryOut_Lだけアサートする。
【0351】(BBusスレーブジェネレートレディブ
ロック)BBusスレーブジェネレートレディブロック
は、BBusスレーブシーケンサからのChannel
Rdy_L信号と、GBIレジスタユニットからのre
gGbiAck_L信号と機能ブロック(IFBus)
からのregIfAck_L信号をORして、クロック
で叩く。
【0352】(IFBusインターフェース)IFBu
sは、GBIと機能ブロックを接続する簡単なバスであ
る。クロックは、bClk(50MHz)を使用する。
ここでいう入力信号とは、機能ブロックからGBIへの
方向の信号である。双方向信号はない。以下にIFBu
sの信号について説明する。“_L”で終わる信号名
は、ローアクティブであることを示す。これは、すでに
説明した部分においても同様である。なお、実際のイン
プリメンテーションでは、信号名の“if”は機能ブロ
ックの名前に置き換える。
【0353】・ifRst0_L(チャネル0),if
Rst1_L(チャネル1)(出力) IFBusのリセット信号である。この信号により、I
FBusの状態を初期状態に戻す。GBIの内部レジス
タにより、アサートされる。GBIと機能ブロックとの
転送に先立って、必ずアサートする。
【0354】・ifDataOutB[63:0](入
力:チャネル0のみ) 機能ブロックからGBIへのデータ信号である。この信
号は、Fifoユニット0に接続されている(図93参
照)。
【0355】・ifWriteB(入力:チャネル0の
み) 機能ブロックからGBIへのライト信号である。GBI
は、ifWrite信号がアサートされているifCl
kの立ち上がりで、ifDataOut[63:0]を
書き込む。ifWriteB信号をアサートし続けるこ
とで、1クロック単位でデータがライトできる。この信
号は、Fifoユニット0に接続されている(図93参
照)。
【0356】・ifWriteEnableG(出力:
チャネル0のみ) 機能ブロックからGBIへのライト許可信号である。i
fClkの立ち上がりで、ifWriteEnable
G信号がアサートされていれば、次のクロックの立ち上
がりで、ライト可能であることを示す。ifWrite
B信号のアサートは、ifWriteEnableG信
号を確認して行う。この信号は、Fifoユニット0か
ら出力される。
【0357】・ifDataInG[63:0],if
ByteEnG[7:0](出力:チャネル1のみ) GBIから機能ブロックへのデータとバイトイネーブル
信号である。この信号は、Fifoユニット1に接続さ
れている。表8に信号ifByteEnG[7:0]の
各桁とifDataInG[63:0]の各バイトユニ
ットとの対応を示す。
【0358】
【表8】
【0359】・ifRead(入力:チャネル1のみ) GBIから機能ブロックへのリード信号である。GBI
は、ifRead信号がアサートされているifClk
の立ち上がりで、ifDataInG[63:0]とi
fByteEnG[7:0]を出力する。ifRead
信号をアサートし続けることで、1クロック単位でデー
タがリードできる。この信号は、Fifoユニット1に
接続されている。
【0360】・ifReadEnableG(出力:チ
ャネル1のみ) GBIから機能ブロックへのリード許可信号である。i
fClkの立ち上がりで、ifReadEnableG
信号がアサートされていれば、次のクロックの立ち上が
りで、リード可能であることを示す。ifRead信号
のアサートは、ifReadEnableG信号を確認
して行う。この信号は、Fifoユニット1から出力さ
れる。
【0361】・ifRegStart_L(チャネル共
通)(出力) 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コントローラから出力される。
【0362】・ifRegAddr[31:2](チャ
ネル共通)(出力) BBusのbAddr[31:2]をクロックで叩いた
アドレス信号である。信号ifRegStart_Lア
サートと同時に有効となり、機能ブロックの内部レジス
タへのアクセスであれば、ifRegAck_L信号で
応答する間で有効である。この信号は、BBusコント
ローラから出力される。
【0363】・ifRegByteEn[3:0](チ
ャネル共通)(出力) BBusのbyteEn_L[3:0]をクロックで叩
いたバイトイネーブル信号である。信号ifRegSt
art_Lアサートと同時に有効となり、機能ブロック
の内部レジスタへのアクセスであれば、ifRegAc
k_L信号で応答する間で有効である。機能ブロックの
内部レジスタへの書き込みの場合には、この信号で示さ
れた有効なバイトのみ書き込みを行う。機能ブロックの
内部レジスタからの読み出しの場合には、この信号は無
視され、全バイト出力される。この信号は、BBusコ
ントローラから出力される。表9に、信号ifRegB
yteEn[3:0]の各桁と信号ifRegData
InG[31:0]の各バイトユニットとの対応を示
す。
【0364】
【表9】
【0365】・ifRegRdNotWr(チャネル共
通)(出力) BBusのbWr_Lをクロックで叩いた信号で、機能
ブロックの内部レジスタへのアクセスの方向を示す。ハ
イで、機能ブロックの内部レジスタの内容が信号ifR
eqDataOut[31:0]に出力され、ローで、
ifReqDataIn[31:0]のデータが、機能
ブロックの内部レジスタに書き込まれる。信号ifRe
gStart_Lアサートと同時に有効となり、機能ブ
ロックの内部レジスタへのアクセスであれば、ifRe
gAck_L信号で応答する間で有効である。この信号
は、BBusコントローラから出力される。
【0366】・ifRegAck_L(チャネル共通)
(入力) 機能ブロックが内部レジスタへのアクセスを完了したこ
とを示す信号である。信号ifRegStart_Lが
アサートされた時点で、アドレスをチェックし、機能ブ
ロックの内部レジスタへのアクセスであれば、レジスタ
のリードあるいはライトを行い、必ず、1クロックだけ
アサートする。機能ブロックの内部レジスタへのアクセ
スでない場合には、決してアサートしてはいけない。こ
の信号は、BBusコントローラに接続される。
【0367】・ifRegDataOut[31:0]
(チャネル共通)(入力) 機能ブロックの内部レジスタの内容が読み出されるデー
タバス信号である。信号ifRegAck_L信号がア
サートされているときに有効でなければいけない。この
信号は、BBusコントローラに接続される。
【0368】・ifRegDataIn[31:0]
(チャネル共通)(出力) 機能ブロックの内部レジスタに書き込まれるデータを示
すバス信号である。信号ifRegStart_Lアサ
ートと同時に有効となり、機能ブロックの内部レジスタ
へのアクセスであれば、ifRegAck_L信号で応
答する間で有効である。この信号は、BBusコントロ
ーラから出力される。
【0369】・IfDmaPmState[1:0]
(チャネル共通)(出力) GBIの動作状態を示す信号。この出力は常に有効であ
る。機能ブロックは、この信号と機能ブロック自身の動
作状態を基に、パワーマネージメントユニットへのパワ
ーマネージメントステータス信号を生成する。この信号
は、レジスタユニットから出力される。どのような値が
出力されるかは、後述のパワーマネジメントの項で説明
する。
【0370】(DMAコントローラ)GBIには、チャ
ネル0と1に、それぞれ図96のようなDMAコントロ
ーラ9205が存在する。
【0371】DMAコントローラは、DMAメインコン
トローラ、フェッチチェインテーブル、カルキュレート
ピッチアドレス、ジェネレートアドレス、DMAリクエ
ストの各部ロックから成る。
【0372】レジスタユニット9206からは、表10
の信号によりDMAのモードが伝えられる。
【0373】
【表10】
【0374】次に、DMAコントローラの各部ロックに
ついて説明する。
【0375】[DMAメインコントローラ]DMAメイ
ンコントローラは、他の4つのブロックの起動と停止の
制御をする。チェーンテーブル方式のDMAでは、フェ
ッチチェインテーブル、ジェネレートアドレス、DMA
リクエストの順に、ブロックを1クロックずつずらして
起動する。ピッチ付きのDMAでは、カルキュレートピ
ッチアドレス、ジェネレートアドレス、DMAリクエス
トの順に、ブロックを1クロックずつずらして起動す
る。その他の場合には、ジェネレートアドレスとDMA
リクエストを1クロックずらして起動する。
【0376】また、DMAメインコントローラはDMA
の終了を判定する。フェッチチェインテーブルがアイド
ル状態(チェーンテーブルをすべて読み終わったか、あ
るいは起動されていない)かつ、カルキュレートピッチ
アドレスがアイドル状態(全ライン終わったか、あるい
は起動されていない)でのジェネレートアドレスのNe
xtAddreReq信号のアサート(レングスカウン
タがゼロになる)、あるいはバスエラー、stopDM
A信号のアサート(レジスタによるDMA強制終了)を
検出すると、DMAメインコントローラが各ブロック
に、stopDMAReq信号をアサートする。すべて
のブロックがアイドル状態になった時点で、DMAの終
了と判定する(endDMAをアサートする)。
【0377】[フェッチチェインテーブル]フェッチチ
ェインテーブルは、メモリ上のテーブルをフェッチする
ブロックで、チェーンテーブルを使わない場合は起動さ
れない。チェーンテーブルを指すメモリアドレスのため
のチェインテーブルポインタアドレスカウンタ、チェー
ンテーブルの残りのエントリ数を示すチェインテーブル
エントリカウンタ、チェーンテーブルからフェッチした
アドレスとレングスを記憶するネクストアドレスレジス
タ、ネクストレンクスレジスタ、およびこれらを制御す
るフェッチチェインテーブルコントローラから成る。
【0378】DMAメインコントローラから起動される
と、レジスタの内容がチェインテーブルポインタアドレ
スとチェインテーブルエントリカウンタにロードされ
る。chainReq信号により、BBusコントロー
ラにアドレスchainAddress[31:2]の
フェッチを要求する。BBusコントローラからのch
ainDone信号(正常終了)で、読み出した内容を
ネクストアドレスレジスタにラッチし、チェインテーブ
ルポインタアドレスカウンタをインクリメントする。B
Busコントローラから、ChainRtry信号(リ
トライ)が返ってくれば、再び、同じ要求をBBusコ
ントローラに対して発行する。
【0379】ネクストアドレスレジスタのラッチ後に、
BBusコントローラにアドレスchain Addr
ess[31:2]のフェッチを要求する。Chain
Done信号で、読み出した内容をネクストレンクスレ
ジスタにラッチし、チェインテーブルポインタアドレス
カウンタをインクリメントし、チェインテーブルエント
リカウンタをデクリメントする。同時に、nextAd
drValid信号をアサートし、チェーンテーブルか
らアドレスとレングスを読み出したことを、ジェネレー
トアドレスブロックに伝える。
【0380】もし、ネクストレンクスレジスタのラッチ
時のデータがゼロである場合には、ネクストアドレスレ
ジスタの内容がチェインテーブルポインタアドレスカウ
ンタにロードされる。
【0381】nextAddrValid信号のアサー
ト中に、ジェネレートアドレスブロックからNextA
ddrReq信号がアサートされるとジェネレートアド
レスブロックが、チェーンテーブルからのアドレス、レ
ングスを受け取ったと判断し、nextAddrVal
id信号をネゲートする。
【0382】次に、チェインテーブルエントリカウンタ
をチェックし、ゼロでなければ、再度チェーンテーブル
のフェッチを続け、ゼロであればアイドル状態へ戻る。
【0383】chainBErr信号(バスエラー)を
受け取ると、直ちにアイドル状態へ戻る。 DMAメイ
ンコントローラからstopDMAReqを受け取った
場合、BBusコントローラに要求を出していれば、そ
の終了を待って、そうでなければ直ちにアイドル状態へ
戻る。
【0384】チェーンテーブルを使わないモードの時に
は、起動されないので、アイドル状態を保ち、next
AddrValid信号はネゲートされたままである。
【0385】[ジェネレートアドレス]ジェネレートア
ドレスブロックは、メモリに対する転送アドレスを格納
するトランスファメモリアドレスカウンタと、転送すべ
き転送長を格納するトランスファレンクスカウンタと、
転送したバイト数を記憶するトランスファカウンタと、
これら3つのカウンタを制御するジェネレートアドレス
コントローラと、転送アドレスと転送長からGBus/
BBusに対して要求するモードを判定するCheck
GBusReq及びCheckBBusReqブロック
(CheckG/BBusReqと総称する)を有す
る。
【0386】(チェーンテーブルを使う場合)DMAメ
インコントローラから起動されると、トランスファカウ
ンタをクリアし、フェッチチェインテーブルからのne
xtValidAddrCT信号待ちに入る。next
ValidAddrCT信号がアサートされると、チェ
ーンテーブルのアドレスとレングスが、それぞれトラン
スファメモリアドレスカウンタとトランスファレンクス
カウンタにロードされる。
【0387】両カウンタの内容で、CheckG/BB
usReqは転送できるモードを判定する。
【0388】CheckG/BBusReqからDMA
リクエストブロックにG/BBusの転送モードを伝え
(転送不可の時にはg/b Valid信号がネゲート
されている)、DMAリクエストブロックは、GBus
優先で各バスコントローラに転送要求を発行する。
【0389】GBusでの転送では、gMDone信号
(GBus転送終了信号)とその時の転送モードによ
り、一度にトランスファメモリアドレスカウンタ、トラ
ンスファカウンタのインクリメントとトランスファレン
クスカウンタのデクリメントを行う。BBusでの転送
では、FIFOのアクセス信号により、トランスファメ
モリアドレスカウンタのインクリメントとトランスファ
レンクスカウンタのデクリメントを行う。
【0390】トランスファレンクスカウンタがゼロにな
った時、フェッチチェインテーブルからのnextVa
lidAddrCT信号がネゲートされていれば、アサ
ートを待って、次のチェーンテーブルの内容をトランス
ファメモリアドレスカウンタとトランスファレンクスカ
ウンタにロードし、そうでなければ、直ちにロードす
る。そして、次の転送に入る。
【0391】チェーンテーブルの最後の部分の転送が終
わってトランスファレンクスカウンタがゼロになった時
には、フェッチチェインテーブルはアイドル状態で、n
extValidAddrCT信号はネゲートされてい
る。DMAメインコントローラはDMAの終了を検出す
るので、ジェネレートアドレスに対してstopDMA
Req信号をアサートする。これによりジェネレートア
ドレスはアイドル状態となる。
【0392】(ピッチ付きのDMAを使う場合)DMA
メインコントローラから起動されると、トランスファカ
ウンタをクリアし、カルキュレートピッチアドレスから
のnextValidAddrPA信号待ちに入る。n
extValidAddrPA信号がアサートされる
と、スタートアドレスとピッチから計算されたアドレス
とレングスが、それぞれトランスファメモリアドレスカ
ウンタとトランスファレンクスカウンタにロードされ
る。
【0393】チェーンテーブルを使う時と同様に、トラ
ンスファメモリアドレスカウンタ、トランスファカウン
タのインクリメントとトランスファレンクスカウンタの
デクリメントが行われる。
【0394】トランスファレンクスカウンタがゼロにな
った時、カルキュレートピッチアドレスからのnext
ValidAddrPA信号がネゲートされていれば、
アサートを待って、次のチェーンテーブルの内容をトラ
ンスファメモリアドレスカウンタとトランスファレンク
スカウンタにロードし、そうでなければ直ちにロードす
る。そして次の転送に入る。
【0395】最後のラインの転送が終わってトランスフ
ァレンクスカウンタがゼロになった時には、カルキュレ
ートピッチアドレスはアイドル状態で、nextVal
idAddrPA信号はネゲートされている。DMAメ
インコントローラはDMAの終了を検出するので、ジェ
ネレートアドレスに対してstopDMAReq信号を
アサートする。これによりジェネレートアドレスはアイ
ドル状態となる。
【0396】(対I/ODMAの場合)DMAメインコ
ントローラから起動されると、トランスファカウンタが
クリアされ、データ長を格納したGBIDMA転送長レ
ジスタの内容がトランスファレンクスカウンタにロード
される。CheckGBusReq/CheckBBu
sReq各ブロックは、対I/OのDMAアドレスを格
納したGBIDMAGBusI/Oアドレスレジスタ/
GBIDMABBusI/Oアドレスレジスタの内容を
それぞれ用いる。
【0397】上と同様に、トランスファカウンタのイン
クリメントとトランスファレンクスカウンタのデクリメ
ントが行われる。
【0398】トランスファレンクスカウンタがゼロにな
った時、フェッチチェインテーブルとカルキュレートピ
ッチアドレスは起動されていないので、アイドル状態
で、nextValidAddr信号はネゲートされて
いる。DMAメインコントローラはDMAの終了を検出
するので、ジェネレートアドレスに対してstopDM
AReq信号をアサートする。これによりジェネレート
アドレスはアイドル状態となる。
【0399】(リバースモード)対I/ODMA以外は
リバースモードをサポートする。チェーンテーブルDM
Aの1ブロック、ピッチ付きのDMAの1ラインを、ア
ドレスの大きい方から小さい方へアクセスする。ブロッ
クあるいはライン単位の逆方向の指示は、チェーンテー
ブルDMAではチェーンテーブルを逆になるように作
る。ピッチ付きのDMAの場合は、ピッチの値を負の値
(2の補数)を設定する。
【0400】リバースモードでは、トランスファメモリ
アドレスカウンタに値をロードする際に、転送レングス
を用いて、最後尾のアドレスを計算してロードする。ト
ランスファメモリアドレスカウンタのインクリメントの
代わりにデクリメントする。
【0401】CheckBBusReqブロックではシ
ングル転送のみを要求する。CheckGBusReq
ブロックでは4ビートバースト転送のみを要求する。F
ifoユニットで、32ビット単位で逆順にして、機能
ブロックに送られる(現状では、チャネル1のみ対応す
る)。
【0402】(GBus要求のチェック)CheckG
BusReqブロックではGBus要求のチェックが行
われる。信号useGBusがアクティブでなければ常
に信号gValidはネゲートされている。
【0403】トランスファメモリアドレスのビット6以
下がすべてゼロで、かつトランスファレンクスが128
以上の時、信号gValidがアサート、g4Not1
6Req=’0’となり、トランスファメモリアドレス
のビット4以下がすべてゼロで、かつトランスファレン
クスが32以上の時、信号gValidがアサート、g
4Not16Req=’1’となる。それ以外では、信
号gValidはネゲートされる。
【0404】(BBus要求のチェック)CheckB
BusReqブロックではBBus要求のチェックが行
われる。信号useBBusがアクティブでなければ常
に信号bValidはネゲートされている。
【0405】トランスファメモリアドレスのビット4以
下がすべてゼロで、かつトランスファレンクスが29以
上の時、信号bValidがアサート、bBurstR
eq=’1’、b4Not8Req=’0’となり、ト
ランスファメモリアドレスのビット3以下がすべてゼロ
で、かつトランスファレンクスが13以上の時、bVa
lidがアサート、信号bBurstReq=’1’、
b4Not8Req=’1’となる。それ以外では、b
Validがアサート、bBurstReq=’0’と
なる。
【0406】(DMAリクエスト)DMAメインコント
ローラから起動されると、ジェネレートアドレスブロッ
クからのGBus/BBusに対する要求をチェックす
る。G/BBusの両方の要求がある場合には、常にG
Busが優先となる。この要求に従い、GBusコント
ローラかBBusコントローラに転送要求を発行し、応
答を待つ。応答は、g/bMDone、g/bMRtr
yあるいは、g/bMBErrのいずれかの信号であ
る。
【0407】g/bMDoneの場合は転送の正常終了
であり、次のジェネレートアドレスからのGBus/B
Busに対する要求をチェックする。
【0408】g/bMRtryの場合は同じバスコント
ローラに再度転送要求を発行する。
【0409】g/bMBErrの場合には直ちにアイド
ル状態に戻る。
【0410】最後の転送が終了した時には、DMAリク
エストブロックは、ジェネレートアドレスからのGBu
s/BBusに対して要求待ち状態となる。DMAメイ
ンコントローラがDMA終了を検出して、DMAリクエ
ストに対してstopDMAReqが発行されるので、
それにより、DMARequestはアイドル状態に戻
る。
【0411】また、チェーンテーブルフェッチ時のバス
エラーやレジスタによるDMA強制終了の場合も、DM
Aメインコントローラから、stopDMAReqが発
行されるが、バスコントローラに転送要求をしている時
は、転送終了を待って、要求していない時は直ちにアイ
ドル状態に戻る。
【0412】(レジスタユニット)内部レジスタユニッ
ト内には、各チャネルに対応するレジスタユニットが存
在する。各ユニットは、デコードするアドレスが異なる
以外は同じである。レジスタユニットは図97に示すよ
うに、レジスタユニット0とレジスタユニット1とを有
する。
【0413】各レジスタユニットは、レジスタI/F、
アクションコントローラ、割り込みコントローラとパワ
ーステータスの各ブロックから構成される、GBIの各
ブロックに設定地値を供給するほか、割り込みコントロ
ーラによって割り込みを制御し、パワーステータスによ
り省電力可能なブロックを制御している。
【0414】[パワーステータス]GBIにおいて省電
力モード可能なユニットは、DMAコントローラとFI
FOユニットである。省電力モードはfifoInSl
eep信号、dmaInSleep信号により、各ブロ
ックのクロックをマスクすることで実現する。リセット
時は、ともに省電力モードに入る。DMAコントローラ
は、マスタモードで起動をかけると自動的に起動し、G
BIFIFOスリープレジスタのライトでスリープに入
る。
【0415】パワーステータスブロックから出力される
パワーマネージメントステータス信号(pmState
[1:0])は、各チャネルで、 pmState[1:0] 00 level0(DMA、FIFOともに停止) 01 level1(FIFOのみ動作) 10 level2(DMA、FIFOともに動作) 11 NotDefine となる。
【0416】DoEngineにおいては、スキャナコ
ントローラ(Scc)やプリンタコントローラ(Pr
c)が接続されるGBIは、1のチャネルしかないので
上のようになるが、2チャネル含む場合は各チャネルの
値を合計し、次のように4段階に縮退させる。
【0417】 pmState[1:0] 00 level0 (両チャネルのFIFO、DMAがともに停止) 01 level1 (1チャネルのFIFOのみ動作) 10 level2 (両チャネルのFIFOが動作、DMAは両方停止) 11 level3 (両チャネルのFIFOが動作、DMAは1つは動作) となる。
【0418】パワーマネージメントステータス信号(p
mState[1:0])は、IFBusを介して機能
ブロックへ送られる。機能ブロックでは、この信号と機
能ブロック自身の動作状態を基に、パワーマネージメン
トユニットへのパワーマネージメントステータス信号を
生成する。
【0419】(GBIの動作モード)以上、GBIを構
成する各部について説明した。ここで、GBIの動作に
ついてまとめておく。GBIの動作モードには、大きく
分けて以下のものがある。
【0420】1.スレーブモード 2.マスタモード マスタモードにおけるDMAの方式は、 A.対メモリ B.対I/O(アドレス固定) があり、対メモリDMAでは、 a.連続物理アドレス b.不連続物理アドレス(転送先メモリがメモリ管理の
ページ単位で分割されていることを想定) のメモリに対して転送を行う。また、対メモリDMAで
は、逆方向モードもサポートする(チャネル1のみ)。
【0421】連続物理アドレスに対するDMAは、先頭
アドレス、一行の長さ、次の行までのピッチ、及び行数
を指定する、いわゆる2次元DMAである。1次元の場
合は行数を1とすることで実現する。
【0422】不連続物理に対するDMAは、分割された
各メモリブロックの先頭アドレスと長さをメモリ上に配
置し、それを参照しながら、転送先のアドレスを計算
し、DMAを行う。この先頭アドレスと長さの組をチェ
ーンテーブルと呼ぶことにする。チェーンテーブルの一
例を図98に示す。不連続物理アドレスに対するDMA
では、チェーンテーブルを配置したメモリアドレスとア
ドレス・長さの組の数を指定する。もちろん、チェーン
テーブル自体は連続アドレスに配置しなければならない
が、もし、全チェーンテーブルが連続領域に置けない場
合には、先頭のアドレスの代わりに次のチェーンテーブ
ルのアドレスを、長さに0を設定することで、チェーン
テーブルをつなぐことができる。
【0423】逆方向モードは、チェーンテーブルDMA
の1ブロック、2次元DMAの1ラインをアドレスの大
きい方から、小さい方へアクセスする。ブロックあるい
はライン単位の逆方向の指示は、チェーンテーブルDM
Aでは、チェーンテーブルを逆になるように作る。ピッ
チ付きのDMAの場合は、ピッチの値を負の値(2の補
数)を設定する。
【0424】(割り込み制御)次に割り込みの制御につ
いて説明する。DBIからの割り込みは、以下の条件で
発生する。
【0425】[マスタモード] 1.DMA正常終了 2.GBusでのDMA転送中のバスエラーの検出 3.BBusでのDMA転送中のバスエラーの検出 4.チェーンDMAモードでのチェーンテーブルリード
中のバスエラーの検出 GBI停止レジスタによる強制終了の場合、DMAコン
トローラが各バスのコントローラに要求中の転送が正常
に終了した時点で、正常終了となる。もし、要求中の転
送がバスエラーとなった場合には、バスエラーによる異
常終了となる。
【0426】チャネル0では、機能ブロックがGBI内
のFIFOに全データを書き込んだ時点で終了する(割
り込みを発生する)が、FIFOにデータが残ってい
る。GBIはFIFOのデータを転送した時に、DMA
終了となるので、これをもって転送終了と判断する。
【0427】チャネル1では、GBIはGBI内のFI
FOに全データを書き込んだ時点で終了する(割り込み
を発生する)が、FIFOにデータが残っている。機能
ブロックはFIFOのデータを転送した時に、終了とな
るので、これをもって転送終了と判断する。
【0428】[スレーブモード] 5.FIFOイリーガルアクセス GBIに按続された機能ブロックとマスタとのデータの
転送は、GBIのFIFOを介して行われる。
【0429】GBus/BBusの両方使用する場合
(DoEngineでは、GBus/BBusの両方使
用可能なマスタはGBIのみ)には、両方のバスからの
同時アクセスに対して、どちらのバスが最初にFIFO
をアクセスするかを知る方法がない。マスタはGBus
/BBusに対して、排他的に転送要求を行う必要があ
る(GBIのマスタモードでは排他的に転送要求してい
る)。もし、GBus/BBusの両方が同時にFIF
Oにアクセスした場合には、FIFOイリーガルアクセ
スとなる。
【0430】上記の1から5のいずれかが起こり、かつ
対応する割り込み許可ビットが、”1”にセットされて
いる場合に割り込みが発生する。
【0431】(コアインターフェース)図99に、GB
Iと、BBus/GBus/機能ブロックとのインター
フェースをまとめたコアインターフェースの図を示す。
GBIは、BBusスレーブ動作でバスエラーを発行し
ないので、bError(Func)Out_Lはな
い。また、GBIはBBusスレーブ動作でbInst
NotData信号をチェックしないので、(fun
c)bInstNotData_inはなく、(fun
c)bInstNotData_outは、常に”0”
をドライブする。
【0432】また、GBIはGBusスレーブ動作でバ
スエラーを発行しないので、(func)gErr_L
_outはない。
【0433】なお、図99におけるGBIの信号名中の
Func(func)には、接続される機能ブロック、
すなわちscc(スキャナコントローラ)あるいはpr
c(プリンタコントローラ)の名前を入れる。
【0434】また、DoEngineでは、機能ブロッ
クとして、スキャナコントローラのScc(scc)
と、プリンタコントローラのPrc(prc)がある。
いずれの場合もデータの流れが双方向でないので、不要
なFIFO、DMAコントローラ、レジスタを削除した
形でインプリメントする。
【0435】(プリンタコントローラコアインターフェ
ース)図86は、プリンタコントローラ4303におけ
る、上述した各ブロックを含むコア部分と、外部バスや
スキャナとの間で入出力される信号をまとめた図であ
る。このように、プリンタコントローラ4303は、シ
ステムバスブリッジ402との間をGバスにより接続さ
れ、IOデバイスやパワーマネジメントデバイス及びシ
ステムバスブリッジとの間をBバスにより接続され、プ
リンタコントローラとの間をCPバスで接続され、Gバ
ス/BバスI/Fユニットとの間をI/Fバスにより接続さ
れている。
【0436】2.10.電力管理ユニット 図87は、電力管理ユニット409のブロック図であ
る。
【0437】DoEngineはCPUを内蔵した大規
模なASICである。このため、内部のロジックが全部
同時に動作してしまうと、大量の熱を発生し、チップ自
体が破壊されてしまう恐れがある。これを防ぐために、
DoEngineは、ブロック毎の電力の管理、すなわ
ちパワーマネジメントを行ない、更にチップ全体の消費
電力量の監視を行なう。
【0438】パワーマネージメントは、それぞれのブロ
ックが各自個別に行なう。各ブロックの消費電力量の情
報は、パワーマネージメントレベルとして、電力管理ユ
ニット(PMU)409に集められる。PMU409で
は、各ブロックの消費電力量を合計し、その値が限界消
費電力を超えないように、DoEngineの各ブロッ
クの消費電力量を一括して監視する。
【0439】(動作)電力管理ブロックの動作は次の通
りである。 ・各ブロックは、4段階のパワーマネジメントレベルを
持つ。 ・PMUは、それぞれのレベルにおける消費電力の値を
レジスタとして持つ。このレベル構成及び消費電力の値
は、PM構成レジスタ5401に保持される。 ・PMUは、各ブロックからパワーマネジメントレベル
を2ビットのステータス信号として受け取り(後述)、
レジスタ5401に設定された値と照合させて各ブロッ
クの消費電力を知る。 ・PMUは各ブロックの消費電力を加算器5403で加
算し、DoEngine全体の消費電力量をリアルタイ
ムに計算する。 ・算出された消費電力量は、構成レジスタ5401に設
定された消費電力のリミット値(PMリミット)と比較
器5404で比較され、これを超えた場合には割込発生
器5405から割り込み信号を発行する。 ・このリミット値は2段階設定することができる。1段
階目は、本当の限界から少し余裕を持たせた値を設定し
ておく。この値を超えると、通常の割込み信号が発行さ
れる。ソフトウェアはこれを受けて、新たにブロックを
起動するような転送は始めないようにする。ただ、2段
階目のリミット値に達しない範囲内では、ソフトウェア
の管理の元で、新たなブロックを起動することができ
る。2段階目のリミット値は、デバイスが破壊される恐
れのある値を設定しておく。万が一、この値を超えてし
まった時には、NMI(割込マスクが設定できない割り
込み)を発行して安全のためにシステムを停止させる。 ・割込み信号は、PMUの状態レジスタ5402をリー
ドすることで解除される。この状態レジスタ5402を
リードした時点からタイマカウントを始め、タイマがエ
クスパイアするまで消費電力量が戻らなければ、再び割
込み信号を発行する。このタイマの値の設定はPMUの
構成レジスタ5401に設定される。
【0440】(各ブロックのパワーマネージメント)各
ブロックのパワーマネージメント制御は、ブロック毎に
自由に構成してよい。構成例の例を示す。
【0441】(構成例1)この例では、内部ロジックへ
のクロックをオン/オフすることにより、パワーマネジ
メントを行なっているので、消費電力のレベルは2段階
しか持っていない。このレベルをステータス信号として
電力管理ユニット409に送る。図88にバスエージェ
ントのブロック図を示す。 ・バスエージェント5501は、各ユニット毎の内部ロ
ジック5502、アドレスをデコードするデコーダ55
03、クロックコントロール部5504、クロックゲー
ト5505を含む。 ・デコーダ5503とクロックコントロール部5504
は常に動作しており、パワーマネージメントコントロー
ルとして、バスのアクティビティーの監視、内部ロジッ
クへのクロックのゲーティングを行なっている。
【0442】(クロックコントロール) ・バスエージェントは、バスのアクティビティーを検出
し、クロックのオン/オフを自動で行なう。 ・バスエージェントには、Sleep, Wake Up, Waitの3つ
のステートがある。 ・Sleepはバスエージェントにアクティビティーがな
く、クロックゲートクロックを停止させている状態であ
る。 ・Sleepの状態でも、デコーダ部5503、クロックコ
ントロール部5504は動作しており、バスをモニタリ
ングして、要求を待っている。 ・デコーダ5503が自分のアドレスを検出すると、ク
ロックゲート5505を開き、内部ロジックのクロック
を動作させ、バスの要求に応える。ステートはWake Up
に移行する。また、この状態を電力管理ユニット409
に通知する。 ・データ転送が終了すると、Waitステートに移行し、次
の要求を待つ。この時クロックは動作したままである。
要求があれば、Wake Upステートに戻り、転送を行な
う。また、要求を待っている間はタイマによりカウント
を行ない、要求がないままカウンタがタイムアップした
場合は、Sleepステートへ移り、クロックを停止させ
る。この状態も電力管理ユニット409に通知される。
【0443】以上のようにして、消費電力が所定値を越
えないように管理している。
【0444】(コピー動作)上述の構成により、スキャ
ナから読み込んだ画像データをそのままプリンタへ転送
して、プリンタで画像形成する動作をコピー動作を行う
ことができる。本実施形態のDo Engineを用い
たスキャナ/プリンタシステムでは、以下に示す3種類
のコピーの方式がそのシステム構成に応じて選択され
る。
【0445】(方式1)第1の方式は、スキャナによる
画像入力の垂直・水平タイミングと、プリンタによる画
像出力の水平・垂直タイミングがそれぞれ一致してい
て、ビデオデータの転送速度も一致している組み合わせ
のシステムにおける方式である。
【0446】垂直同期信号(VSYNC)はプリンタから出
力されて、プリンタコントローラ(PRC)に入力される。
このVSYNC信号は、プリンタコントローラ(PRC)からCP
バスを介してスキャナコントローラ(SCC)に入力され
る。そして、スキャナコントローラ(SCC)からスキャナ
に対して出力される。これにより、プリンタとスキャナ
の垂直同期がとられる。水平同期についても、垂直同期
信号VSYNCと同様に、水平同期信号(HSYNC)がプリンタ
から出力され、プリンタコントローラ,CP−バス,ス
キャナコントローラを介してスキャナに入力される。こ
れによりスキャナとプリンタとの水平同期がとられる。
このように、垂直方向及び水平方向の同期がとられてス
キャナとプリンタが動作する。ビデオデータは同期用の
ビデオクロックとともにスキャナから出力される。出力
されたビデオクロックとビデオデータはスキャナコント
ローラ(SCC)に入力され、CPバスを介して、プリンタ
コントローラ(PRC)に入力される。そして、プリンタコ
ントローラ(PRC)からプリンタに出力される。プリンタ
ではビデオクロックに同期してビデオデータを受け取
り、画像出力をおこなう。
【0447】このコピー動作は、図89に示す構成によ
り行われる。このコピー動作ではGバスおよびBバスを
使用せずにコピー動作がおこなわれる。
【0448】このコピー動作中、画像データはCPバス
を介してスキャナからプリンタへ直接転送されるが、同
時にスキャナコントローラ(SCC)からGバスのDMA転送に
よってSDRAMへ書き込むことが可能である。コピー動作
と同時にSDRAMに書き込まれた画像データは、必要に応
じて画像データとして格納すること等が可能となる。ま
た、SDRAM上の画像データをプリンタへ出力することに
より、スキャナで読み取った画像データを複数部の出力
することが、スキャナの動作なしに可能となる。
【0449】(方式2)第2の方式は、スキャナによる
画像入力の水平タイミングと、プリンタによる画像出力
の水平タイミングとが一致しており、垂直タイミングと
ビデオデータの転送速度がそれぞれ一致していない組み
合わせのシステムにおける方式である。
【0450】この場合のコピー動作を図90で説明す
る。スキャナが画像を読み取り始めると、垂直同期信号
(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バスであっても良い。
【0451】このDMA転送により、FIFO_SCCの画像デー
タはGBI_PRC内のFIFO(FIFO_GBI_PRC)へ転送され
る。FIFO_GBI_PRCの画像データは、順次プリンタコント
ローラ(PRC)のFIFO(FIFO_PRC)へ転送される。FIF
O_PRCに画像データが入り始めると、プリンタコントロ
ーラ(PRC)はプリンタに垂直同期信号(VSYNC)を入力す
る。プリンタからは、VSYNCのタイミングにより、水平
同期信号(HSYNC)とビデオクロックを出力しはじめ
る。プリンタコントローラ(PRC)は水平同期信号HSYNCで
水平同期をとり、ビデオクロックに同期して、ビデオデ
ータをFIFO_PRCから出力する。そのビデオデータをプリ
ンタが画像出力する。
【0452】このコピー動作の場合、画像データは、ス
キャナ, スキャナコントローラの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によ
り緩衝される。
【0453】(方式3)第3の方式は、スキャナとプリ
ンタの垂直同期タイミング、水平同期タイミング、ビデ
オデータの転送速度がそれぞれすべて異なる組み合わせ
のシステムにおける方式である。
【0454】この場合のコピー動作を図91により説明
する。スキャナで画像の読み取りが開始すると、スキャ
ナは垂直同期信号(VSYNC)、水平同期信号(HSYNC)、
ビデオクロックをスキャナコントローラ(SCC)に出力す
る。これらのタイミング信号に同期して画像データが出
力される。スキャナコントローラ(SCC)は上記タイミン
グ信号に同期して画像データを取り込む。取り込まれた
画像データはGBI_SCCにより、DMA転送でメモリコントロ
ーラ(MC)403へ転送される。MC403では、DMA転
送された画像データをSDRAMに書き込む。SDRAMに書き込
まれた画像データの量が、スキャナとプリンタの画像デ
ータ転送速度の差を緩衝できる量に達すると、プリンタ
への画像データ転送が開始される。この画像データ量の
判定は、スキャナからのデータ転送時間による判定、SD
RAMに書き込まれるアドレスによる判定、GBI_SCCにおけ
るDMA転送量の判定等、種々の方式がある。
【0455】プリンタへの画像データ転送はプリンタコ
ントローラ(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),プリンタの順となる。
このように、一旦メモリに格納し、それをスキャナとプ
リンタとの間の緩衝メモリとして、スキャナからプリン
タへと画像データを転送し、コピーを行う。
【0456】本システムは上記3方式のコピー動作機能
を有する。(方式1)、(方式2)、(方式3)の順で
コピー動作時に動作する内部ブロックが多くなる。内部
ブロックの使用率が増加すると、システム全体のパフォ
ーマンスが効率を低下させる要因となりうる。本システ
ムは接続されるデバイス(プリンタ・スキャナ)に応じ
て、システム全体が最も効率的なコピー動作方式を選択
することが可能である。
【0457】コピー方式を選択する方法としては、例え
ば次のようなものがある。 UART等を介して指定するコピー方式そのものを入
力させ、指定された方式でコピー動作を行う。 プリンタとスキャナのデータ転送速度や水平・垂直同
期周波数等、必要なパラメタをUART等から入力さ
せ、それらの値に応じて上記3通りの方式からCPU4
01がひとつを選択し、その方式でコピー動作を行わせ
る。 プリンタコントローラがプリンタのデータ転送速度や
水平・垂直同期周波数等、必要なパラメタを読取り、ス
キャナコントローラがスキャナからデータ転送速度や水
平・垂直同期周波数等、必要なパラメタを読取り、それ
らをCPU401により比較判定してコピー動作の方式
を決定する。
【0458】上記〜の方法で決定された、あるいは
選択されたコピー方式はCPUからプリンタコントロー
ラ及びスキャナコントローラに知らされ、その方式でプ
リンタコントローラ及びスキャナコントローラ等により
コピーを行わせる。
【0459】次に、上記の方式でコピー方式を決定す
る手順を説明する。
【0460】図100は、CPU401による、3通り
のコピー方式からシステムで使用するコピー方式を選択
する手順のフローチャートである。この動作はシステム
の電源立ち上げ時、ステップS1から開始される。
【0461】ステップS2では、プリンタの種別の判定
が行われる。CPU401はプリンタコントローラ43
03を介して、プリンタビデオI/Fに含まれるコマン
ド/ステータスラインを通じて、プリンタから種別を示
すIDを取得する。このコマンド/ステータスライン
は、プリンタコントローラとプリンタとが1対1にコマ
ンド/ステータスのやりとりができるシリアル通信ライ
ンである。
【0462】ステップS3では、同様にCPUがスキャ
ナコントローラ4302を介して、スキャナビデオI/
Fに含まれるコマンド/ステータスラインを通じ、スキ
ャナから種別を示すIDを取得する。
【0463】ステップS4では、ステップS2とS3で
判定された、スキャナとプリンタの組み合わせに適した
コピー経路の判定が行われる。スキャナとプリンタの組
み合わせに適したコピー経路の判定は、あらかじめテー
ブルの形式で、例えば、フラッシュROM等のCPUが
参照可能なメモリに準備されている。各コピー経路に適
したスキャナとプリンタの組み合わせは次のようなもの
がある。 (方式1)スキャナとプリンタの水平、垂直
タイミングが同期していて、ビデオデータの転送速度も
同期している組み合わせ (方式2)スキャナとプリンタの水平同期タイミングの
速度が同一で、垂直タイミングとビデオデータの転送速
度は同期していない組み合わせ (方式3)スキャナとプリンタの垂直同期タイミング、
水平同期タイミング、ビデオデータの転送速度がそれぞ
れ異なる組み合わせ CPUは、あらかじめ用意されたテーブル参照におい
て、上記3方式から適切なコピー方式を選択する。
【0464】ステップS5では、ステップS4で選択さ
れたコピー方式に応じたモード設定がスキャナコントロ
ーラ4302に対してなされる。このモード設定は、C
PUがBBusを介して行う。
【0465】図101は、スキャナコントローラ430
2内部のデータバスの切り換え回路を示す図である。な
お、データバスセレクタは、図44のスキャナデバイス
I/F4401に含まれる。また、データバスの切り替
えの説明に不用なスキャナビデオクロックユニット等は
省略した。
【0466】レジスタ1には、データバスのモードが設
定される。CPUは、図100のステップS4において
選択したコピー方式に応じたモードをレジスタ1に設定
する。セレクト制御信号4は、モード設定レジスタ1に
設定されたモードに応じてデータパスを選択するための
信号である。スキャナビデオバス2は、スキャナからの
ビデオデータのバスである。バス5は、スキャナからの
ビデオデータをFIFO_SCC6に転送するバスである。C
Pビデオバス7は、(方式1)のコピー動作を行う場合
に使用されるバスである。スキャンビデオバスからのビ
デオデータは(方式1)の場合はCPビデオバス7に出
力するようにデータパスがセレクトされる。(方式
2)、(方式3)の場合にはバス5にビデオデータが出
力されて、FIFO_SCC4407に転送される。
【0467】図100で、次にステップS6に移行す
る。ステップS6では、GBI_sccの動作モード設定を行
う。このモード設定はCPUがステップS4で選択した
コピー方式に基づいて行う。(方式1)では、GBI_scc
は非動作指定される。(方式2)では、DMA転送のマ
スター指定がなされ、DMAの転送先にはGBI_prcが設
定される。(方式3)ではDMA転送のマスター指定が
なされ、DMAの転送先にはSDRAMが設定される。
【0468】次にステップS7では、GBI_prcの動作モ
ード設定を行う。このモード設定はCPUがステップS
4で選択したコピー方式に基づいて行う。(方式1)で
は、GBI_prcは非動作指定がなされる。(方式2)では
DMA転送のスレーブ指定がなされる。(方式3)で
は、DMA転送のマスター指定がなされ、DMA転送の
読み出しもとはSDRAMが設定される。
【0469】次にステップS8では、プリンタコントロ
ーラのモード設定がなされる。このモード設定はステッ
プS4で選択されたコピー方式に基づいてCPUが行
う。
【0470】図102は、プリンタコントローラ430
3内部のデータバスの切り換え回路を示す図である。レ
ジスタ11には、データバスのモードが設定される。C
PUは、図100のステップS4において選択したコピ
ー方式に応じたモードをレジスタ11に設定する。セレ
クト制御信号14は、モード設定レジスタ11に設定さ
れたモードに応じてデータバスのセレクトを行う信号で
ある。バス15は、FIFO_PRC16から出力されるデー
タのバスである。バス12は、プリンタへのビデオデー
タバスである。CPビデオバス17は、(方式1)のコ
ピー動作を行う場合に使用する。プリンタへのビデオデ
ータは(方式1)の場合はCPビデオバスのデータがセ
レクトされ、出力される。(方式2)、(方式3)の場
合にはバス15からのデータがプリンタビデオバス12
に出力される。
【0471】ステップS9で、電源立ち上げ時のコピー
方式選択のフローが終了する。以上のようにして、CP
Uはスキャナ及びプリンタの種別に応じたコピー方式を
決定することができる。
【0472】なお、上述の手順はスキャナ及びプリンタ
の垂直同期タイミング、水平同期タイミング、ビデオデ
ータの転送速度に基づいて、コピー動作の方式を決定す
る手順であるが、単なるコピーでなく、画像の加工が加
わる場合にはこの限りではない。すなわち、図100の
ステップ2の前に、画像データを加工するか否かを判定
し、画像データを加工する場合には、スキャナ及びプリ
ンタの仕様に関わりなく、方式3を選択し、ステップS
5〜S8における設定では、データの径路が方式3にな
るよう各ブロックの設定を行う。こうすることで、画像
データを加工する場合には読み込んだ画像データはいっ
たんメモリに格納されるため、そこで画像データに対し
て必要な加工を施すことができる。
【0473】また、方式2あるいは方式3ではバスを使
用する。この際、GバスあるいはBバスのいずれを使用
するかは、各バスの使用状況により決定される。すなわ
ち、Gバス/Bバスともにアイドル状態であれば、バス
幅の広いGバスを使用する。いずれかが使用中であれ
ば、未使用の方を使用する。
【0474】以上説明したように、DoEngineに
おいては、スキャナは、スキャナコントローラ4302
及びGBI_SCC4301Aを介してバス(Gバス及
びBバス)に接続されている。スキャナコントローラ4
302及びGBI_SCC4301Aは、それぞれFI
FOを介して互いに画像データを転送するように接続さ
れている。このように、それぞれがFIFOを有してい
るために、GBIは、64ビット幅で動作クロックが1
00MHzという非常に高速なGバスに接続されている
にも関わらず、比較的低速なスキャナから読み込まれた
画像データを効率的に転送することができる。これは、
プリンタコントローラに関しても同様である。
【0475】さらに、スキャナとプリンタそれぞれの同
期信号の一致・不一致に応じて、コピー時のデータ経路
を選択することで、スキャナ及びプリンタの仕様がどの
ようなものであろうとも、可能な限り速いデータ転送を
用いてコピーを行うことができる。
【0476】すなわち、上述のスキャナコントローラ及
びプリンタコントローラ及びそれぞれのGBIを用いて
スキャナ及びプリンタをDoEngineのバスに接続
することで、スキャナ及びプリンタの仕様からのDoE
ngineの独立性をより高めることが可能となった。
【0477】[その他の構成例]図9及び図10で示し
たキャッシュの動作手順は、図103及び図104のよ
うなものであってもよい。
【0478】図103においては、MCバスよりデータ
転送が開始されると、その最初にMCバスで示されるm
TType[60:0]によってその転送をキャッシュ
オンで行うかオフで行うか判断される。ここでは、転送
がバースト転送の時、そのバースト転送データ量がキャ
ッシュの1ラインのデータ量より大か小かによって判断
する。なお、キャッシュの1ラインは256ビット=4
バースト分である。
【0479】図103において、メモリコントローラは
転送の開始でmTType[3:0]をチェックし、m
TTypeが示すバースト長が1/2/4であれば、キ
ャッシュオンで動作し、6/8/16/2×16/3×
16/4×16の場合はキャッシュオフで動作する。キ
ャッシュオンあるいはオフ後の動作は、図9及び図10
と同様である。
【0480】また、図105及び図106のように、デ
バイスによってキャッシュのオンオフを切り替えること
もできる。図105において、メモリコントローラは転
送の開始でmTType[6:4]をチェックすること
により転送要求デバイスを識別し、そのデバイスの転送
要求をキャッシュオンで動作するか、オフで動作するか
を判断するために、あらかじめ設定されている構成レジ
スタの値を参照し、キャッシュオンで動作するか、オフ
で動作するか決定する。キャッシュオンあるいはオフ後
の動作は、図9及び図10と同様である。構成レジスタ
の設定は、ハードウエア的に決定(変更不可)していも
良いし、ソフトウエアで書換え可能にしてもよい。
【0481】(実施の形態) (ジョブの分割)まず、本発明の実施の形態について、
図107〜図108を用いて説明する。本実施形態は、
デジタル複合機に投入された種々のジョブをページ単位
に処理をするためにデバイスの獲得と開放を並列に行い
情報を処理するものである。
【0482】図107は、本発明にかかる情報処理シス
テムの構成図であり、同図中、101a,102a,1
03aはホストコンピュータで、種々のジョブを生成し
周辺機器にジョブを送信する。104aはデジタル複合
機で、プリントジョブ、スキャンジョブ、ファックスジ
ョブ、コピージョブ等、種々のジョブを実行処理する。
第1、第2のホストコンピュータ101a,102a及
びデジタル複合機104aは、それぞれがLAN(ロー
カルエリアネットワーク)105aに接続されており、
デジタル複合機104aを使用することができる。
【0483】また、第3のホストコンピュータ103a
は、LANではなくパラレル(またはシリアル)等のイ
ンターフェース106aを介してデジタル複合機104
aに接続され、該デジタル複合機104aを使用するこ
とができる。
【0484】図108は、図107に示す情報処理シス
テムの基本的な構成を示すブロック図であり、同図にお
いて、201aはCPU(中央演算処理装置)で、本シ
ステム全体の制御及び演算処理等を行う。207aはエ
ンジンインターフェース(エンジンI/F)で、実際に
エンジンを制御するコマンド等をやり取りする。
【0485】208aはネットワークインターフェース
(ネットワークI/F)で、このネットワークI/F2
08aを介して機器がネットワークに接続される。
【0486】209aは外部インターフェース(外部I
/F)で、パラレル(またはシリアル)等のインターフ
ェースを介してホストコンピュータと接続される。21
0はシステムバスで、上述した各構成要素間のデータの
通路となる。
【0487】CPU201a、エンジンインターフェー
ス(エンジンI/F)207a、ネットワークインター
フェース(ネットワークI/F)208a、外部インタ
ーフェース(外部I/F)209aはDoEngine
201(図2)を構成する。
【0488】202aはROM(リードオンリーメモ
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。203aはRAM(ランダムアク
セスメモリ)で、使用期限のない記憶領域で、ダウンロ
ードにより追加登録されたフォントデータが記憶された
り、様々な処理ごとにプログラムやデータがロードされ
実行される。
【0489】204aは例えばハードディスク等の外部
記憶装置で、印刷装置(プリンタ)が受け付けた印刷ジ
ョブ(プリントジョブ)をスプールしたり、プログラム
や各種情報ファイル等が格納されたり、作業用の領域と
して利用される。
【0490】205aは液晶表示機等の表示部で、印刷
装置の設定状態や、現在の印刷装置内部の処理状態や、
エラー状態等を表示する。
【0491】206aは操作部で、印刷装置の設定を変
更したり、リセットするために使用される。
【0492】図109は、ホストコンピュータとデジタ
ル複合機104aの内部ソフトウェア構造を示す図であ
り、同図において、301はホストコンピュータ(図1
07の101a〜103aに相当する)である。302
はコントローラソフトウェアで、その内部はプロトコル
解釈部303、ジョブ制御部304及びデバイス部30
5に分割されている。
【0493】プロトコル解釈部303は、ホストコンピ
ュータ301から図1のLAN105または図2の外部
I/F209を介して送られてきたコマンド(プロトコ
ル)を解釈して、ジョブ制御部304に対してジョブの
実行を依頼する部分である。また、ジョブ制御部304
は、プロトコル解釈部303の依頼したジョブを実際に
処理する部分である。更に、デバイス部305は、ジョ
ブ制御部304がジョブを実行する際に使用される。
【0494】図110は、コントローラソフトウェア3
02の概略を説明するためのブロック図である。同図に
おいて、303はプロトコル解釈部、304はジョブ制
御部、305はデバイス部である。ジョブ制御部304
は、ジョブ生成部401a、ジョブ処理部402a、ド
キュメント処理部403a、ページ処理部404a、バ
ンド処理部405a、デバイス割り当て部406aを有
している。
【0495】また、デバイス部305は、第1デバイス
407a、第2デバイス408a及び第3デバイス40
9aを有している。
【0496】図107のホストコンピュータ101a〜
103aから送られてきた一連の操作依頼は、コマンド
(プロトコル)という形で、ネットワークI/F208
a及び外部I/F209aを介して送られてくる。送ら
れてきたコマンドは、プロトコル解釈部303で解釈さ
れた後、ジョブ制御部401aに送られる。この時点で
コマンドは、ジョブ制御部304が理解できる形に変換
されることになる。
【0497】ジョブ生成部401aはジョブ410aを
生成する。このジョブ410aはコピージョブ、プリン
トジョブ、スキャンジョブ及びファックスジョブ等、様
々なものが考えられる。
【0498】例えば、プリントジョブならば印刷する文
書の名前や印刷部数、出力先の排紙トレイの指定等の設
定情報や、印刷データ自体(PDLデータ)等も含まれ
る。ジョブ410aはジョブ処理部402aに送られ、
処理が行われる。ここでは、ジョブ410a全体に関す
る設定(複数の文書をまとめて印刷しステープルする
等)や処理が行われる。
【0499】更に、ジョブ処理部402aでは、ジョブ
410a全体に関する設定や処理以外は、更に小さな仕
事の単位である入力ドキュメント411aに分割する。
入力ドキュメント411aは、ドキュメント処理部40
3aにより出力ドキュメント414aに変換処理され
る。
【0500】つまり、例えば、原稿の束をスキャナで読
み取り、複数のイメージデータに変換するスキャンジョ
ブを考えると、原稿の束に関する設定や操作の手順が書
かれているのが入力ドキュメント411aであり、複数
のイメージデータに関する設定や操作の手順が書かれて
いるのが出力ドキュメント414aである。そして、紙
の束を複数のイメージデータに変換する役割を持ってい
るのがドキュメント処理部403aである。
【0501】また、ドキュメント処理部403aは、ド
キュメント単位の処理のみ行い、更に小さな仕事の単位
である入力ページ412aを生成する。これは、ちょう
どジョブ処理部402aがジョブ単位の処理に専念し
て、更に細かい仕事のためにドキュメントを生成するの
と同じである。ドキュメント単位の設定及び操作は、具
体的にはページの並び替え、両面印刷の指定、表示の付
加、OHP中差し等のページ順序に関するものである。
【0502】また、入力ページ412aはページ処理部
404aにより出力ページ415aに変換される。例え
ば、上記の例のスキャンジョブの場合は、入力ページ4
12aには読み取りの解像度、読み取りの向き(ランド
スケープ/ポートレイト)等の設定や手順が書かれてお
り、出力ページ415aにはイメージデータの格納場所
(RAM203aや外部記憶装置204aのアドレスや
データ名)等の設定や手順が書かれている。
【0503】以上の処理により、ジョブの構成をページ
単位に分解して扱えるようになる。
【0504】高価なシステムでは、1ページ分のページ
メモリを持てるならば、最終的にページ単位までジョブ
を詳細化すればよい。しかし、現実にはメモリのコスト
等の問題や、印刷エンジンがインクジェットプリンタの
ような低速の場合には、数ライン分のメモリ(バンドメ
モリ)しか持たないシステムも考えられる。そのような
場合には、ページを更に細かい単位であるバンドに分け
て扱う。それが入力バンド413a、バンド処理部40
5a、出力バンド416aの役目である。これらの動作
に関しては、ページの場合と同様である。
【0505】ジョブ処理部402a、ドキュメント処理
部403a、ページ処理部404a及びバンド処理部4
05aは、いずれも処理を進める際にデバイスを使用す
る。複数の処理部が同時に仕事を進めるとデバイスの競
合が発生するので、それを調停するのがデバイス割り当
て部406aである。第1〜第3デバイス407a〜4
09aは、デバイス割り当て部406aにより上記処理
部に割り当てられるデバイスである。
【0506】デバイスの例としては、ページメモリやバ
ンドメモリ、ドキュメントフィーダー、マーキングエン
ジン及びスキャナ等が考えられる。
【0507】(複合ジョブの処理)図110では単一の
ジョブをページ単位に分解して、デバイスの割り当てを
行う処理を示した。次に、図111を用いて複合したジ
ョブの処理を説明する。
【0508】「複合したジョブ」とは、例えばジョブが
コピージョブであれば、スキャンジョブと、プリントジ
ョブとに分割され、FAX受信ジョブであれば、データ
の受信ジョブと、受信したデータのプリントジョブとに
分割される。分割されたジョブはページ単位にデバイス
が割り当てられ、処理される。以下その処理内容につい
て説明する。なお、情報処理システムの基本的な構成
は、上述した単一ジョブの分割で説明した図107〜図
109と同一であるから、必要に応じてこれらの図を流
用して説明する。
【0509】図111は、複合ジョブを処理する情報処
理システムにおける周辺機器のソフトウェア構造の詳細
を示す図である。同図において、303はプロトコル解
釈部、304はジョブ制御部、305はデバイス部であ
る。
【0510】コピージョブは、ジョブ制御部304の中
では、2つのジョブ(スキャンジョブとプリントジョ
ブ)に分割され処理される。図107のホストコンピュ
ータ101a〜103aから送られてきた一連の操作依
頼は、コマンド(プロトコル)という形で図108のネ
ットワークI/F208a及び外部I/F209aを介
して送られてくる。
【0511】送られてきたコマンドは、プロトコル解釈
部303で解釈された後、ジョブ制御部304へ送られ
る。この時点でコマンドは、ジョブ制御部304が理解
できる形に変換されることになる。ジョブ生成部401
aは図110のジョブ410aを生成する。本実施の形
態では、コピージョブが生成されることになる。
【0512】生成されたコピージョブ513は、図11
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が挙げられ
る。
【0513】図115はジョブの分割例を示すブロック
図である。ホストコンピュータ301から送られてきた
コマンドがコピージョブである場合、ジョブ制御部30
4の処理は、コピージョブを更にプリントジョブとスキ
ャンジョブとに分割し、分割したジョブを処理するため
のデバイス(例えば、プリンタ、スキャナ、メモリ等)
が割り当てられ、それぞれ処理が進められる。
【0514】以上のように、ジョブをページ単位に分割
して、各々の処理を実行するデバイスの割り当てと解放
を先に説明したDoEngineと組合わせて行うこと
により、効率的な複合機の制御が可能になることを以下
に説明する。
【0515】図4のDoEngineのブロックを用い
て、コピー動作を行う場合のデータの流れを説明する。
この場合、処理系のデバイスとして割り当てられるのは
スキャナとプリンタである(図5の514、521)。
スキャンジョブ(514)の場合、スキャナからのイメ
ージデータはスキャナコントローラ4302により制御
され、GBUs404、システムバスブリッジ402を
介してメモリ403に書込まれる。プリントジョブの場
合、メモリ403に書込まれたデータは、システムバス
ブリッジ402、BBus405を介してプリンタコン
トローラ4303に送られプリント処理される。Dua
l−Bus構成とすることにより、Busの占有を解消
し、並列的に、CPU、メモリへのアクセスが可能にな
る。データの入力と平行して、出力を並列したタイミン
グで行うことが可能になる。
【0516】つまり、図5の処理でコピージョブ513
を分割したスキャンジョブ514とプリントジョブ52
1とは並列して処理することが可能になる。
【0517】DoEngineを用いて、ページ単位の
入出力処理を行う際のデバイスの割り当てと解放を次に
説明する。
【0518】図113はスキャナとプリンタを処理系の
デバイス例として、ジョブ単位にシリアルに処理した従
来の場合(図113(a))と,本実施形態において、
ページ単位に並列に処理した場合(図113(b))の
デバイスの割り当てと解放をタイミングチャートとして
示した図である。
【0519】図113(a)の場合、ジョブ1のデバイ
スの割り当ては時刻T1でスキャナが割り当てられ、時
刻T2で解放される。続いてプリンタが時刻T3で割り
当てられ、時刻T4で解放される。後続のジョブ2で必
要となるスキャナ処理は時刻T5で割り当てられるが、
ジョブ1の処理でT2からT4までの時間帯はスキャナ
の空き時間であり、ジョブ2に対するむだ時間となる。
ジョブ2のプリンタはスキャナの解放(時刻T6)後、
時刻T7で割り当てられ時刻T8で解放される。
【0520】ここで、「むだ時間」とは資源としてのデ
バイスは処理可能な状態であるにもかかわらず、入力す
るべき情報の仕掛かりによりデバイスが処理に着手でき
ない時間をいう。
【0521】一方、図113(b)の場合、ジョブ1の
デバイスの割り当ては時刻T1でスキャナが割り当てら
れ、時刻T2で解放される。DoEngineによる処
理の並列化により、スキャナの解放前(時刻T2)に、
プリンタの割り当てが行われる(時刻T1a)。ジョブ
2に対するスキャナの割り当ては、時刻T2以降、可能
になる。例えば、T1cにスキャナの割り当て要求があ
った場合、T1cからT2までがスキャナ割り当てまで
の待機時間となる。
【0522】同様にプリンタの割り当ては、スキャナの
解放前(時刻T1d)に可能であり、時刻T1b以降割
り当てられ、時刻T1fに解放される。プリンタの割り
当て要求が時刻T1eにあった場合、T1eからT1b
までの時間帯はプリンタ割り当てまでの待機時間であ
る。以上の説明はコピージョブ同士を例に説明したが、
コピーとFAX、コピーとPDLプリント等を処理する
場合でも同様である。ジョブ1及び2のスループットは
(a),(b)を比較するとT8−T1fと短縮され
る。
【0523】ここで、「待機時間」とは、処理すべきデ
ータはすでに用意されておりデバイスの解放待ちとなる
時間をいい、入出力データの並列的な処理を可能にし、
データの仕掛かりを解消する点において、従来とは異な
るものである。ジョブのプライオリティなどの条件を反
映した、アービトレーションをDoEngineにより
行いデバイスの割り当てを制御することにより、「待機
時間」の最適化(最短化)が可能である。
【0524】ジョブの単位はFAXの送受信、PDL印
刷、コピー等があり、デバイス割り当て部406aは第
1〜第3デバイス407a〜409aの割当てを行う。
デバイスには、例えば、ページメモリやバンドメモリ、
ドキュメントフィーダー、マーキングエンジン及びスキ
ャナ等も含まれる。
【0525】図114はコピージョブ513aと、51
3bとが生成された場合のブロック図である。基となる
ジョブが種々生成された場合であても、先に説明したよ
うに、ページ単位の分割を行い、並列的にデバイスの割
り当てと解放を行う点においては同様である。
【0526】システムバスブリッジ402と、Dual
−Bus(GBus404、BBus405)とを用い
たDoEngineアーキテクチャによれば、データ処
理の競合を解消することが可能となり、従来はインタフ
ェース等にローカルに保有していたメモリが不要とな
る。1元的に集中管理されたメモリ403により、情報
を共有することが可能になる。
【0527】(リアルタイム性の向上)図107から1
08に示した構成では、リアルタイム性の要求される処
理部もリアルタイム性の低い処理部も共通のCPUを用
いていたが、DoEngineをサテライトとして使用
し、CPUの使い分けを行うことで、リアルタイム性を
更に向上させることができる。
【0528】図107の構成に代え図115(a)のよ
うな構成を用いてもよい。図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)と接続した図である。
【0529】(サテライトDoEngine)図116
は、図115で示したサテライトPCにおけるDOEn
gineの接続に関するブロック図である。同図におい
て、DOEngine116−1はCPU401を備
え、リアルタイム性の高いジョブを優先的に処理をす
る。
【0530】116−2はROM(リードオンリーメモ
リ)で、システム起動プログラムやプリンタエンジンの
制御を行うプログラム及び文字データ、文字コード情報
等の記憶領域である。
【0531】116−3はRAM(ランダムアクセスメ
モリ)で、使用期限のない記憶領域で、ダウンロードに
より追加登録されたフォントデータが記憶されたり、様
々な処理ごとにプログラムやデータがロードされ実行さ
れる。
【0532】116−4は例えばハードディスク等の外
部記憶装置で、印刷装置(プリンタ)が受け付けた印刷
ジョブ(プリントジョブ)をスプールしたり、プログラ
ムや各種情報ファイル等が格納されたり、作業用の領域
として利用される。
【0533】116−5は液晶表示機等の表示部で、印
刷装置の設定状態や、現在の印刷装置内部の処理状態
や、エラー状態等を表示する。
【0534】116−6は操作部で、印刷装置の設定を
変更したり、リセットするために使用される。
【0535】116−7はエンジンインターフェース
(エンジンI/F)で、実際にエンジンを制御するコマ
ンド等をやり取りする。
【0536】116−8はネットワークインターフェー
ス(ネットワークI/F)で、このネットワークI/F
208aを介して機器がネットワークに接続される。
【0537】116−9は外部インターフェース(外部
I/F)で、パラレル(またはシリアル)等のインター
フェースを介してホストコンピュータと接続される。2
10はシステムバスで、上述した各構成要素間のデータ
の通路となる。
【0538】図117は、図109に対応するソフトウ
エアの構成を示す図である。同図において、リアルタイ
ム性の低い部分とリアルタイム性の高い部分とを分割し
て処理する。全体の処理を単一のCPUでまかなうので
はなく、ホストコンピュータとサテライトコンピュータ
とでそれぞれ処理を使い分けることにより、CPUの負
荷を軽減し、システム全体としての処理能力の向上を図
ることができる。
【0539】例えば、図117のプロトコル解釈部11
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)。
【0540】
【発明の効果】以上のように、本発明によれば、ページ
単位にジョブ処理を分割し、その処理のためのデバイス
の割り当てと解放をDOEngineを用いて並列的に
行うことで、スループットの向上を図ることができる。
【図面の簡単な説明】
【図1】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図2】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図3】DoEngineを用いた装置あるいはシステ
ムの構成例の図である。
【図4】DoEngineのブロック図である
【図5】キャッシュメモリコントローラの3つのステー
トを示す図である。
【図6】インタラプトコントローラ410のブロック図
である。
【図7】メモリコントローラ403のブロック図であ
る。
【図8】キャッシュコントローラ706を中心とする詳
細なブロック図である。
【図9】MCバスよりメモリリード/ライト転送が要求
された場合のキャッシュの動作を示すフローチャートで
ある。
【図10】MCバスよりメモリリード/ライト転送が要
求された場合のキャッシュの動作を示すフローチャート
である。
【図11】ROM/RAMコントローラ707の構成を
示す図である。
【図12】CPUからのバースト読み出しのタイミング
を示すタイミング図である。
【図13】CPUからのバースト書き込みのタイミング
を示すタイミング図である。
【図14】Gバスデバイスからのバースト読み出しのタ
イミングを示すタイミング図である。
【図15】Gバスデバイスからのバースト書き込みのタ
イミングを示すタイミング図である。
【図16】メモリフロントキャッシュにヒットした場合
のシングル読み出しのタイミングを示すタイミング図で
ある。
【図17】メモリフロントキャッシュにヒットしなかっ
た場合のシングル読み出しのタイミングを示すタイミン
グ図である。
【図18】メモリフロントキャッシュにヒットした場合
のシングル書き込みのタイミングを示すタイミング図で
ある。
【図19】メモリフロントキャッシュにヒットしなかっ
た場合のシングル書き込みのタイミングを示すタイミン
グ図である。
【図20】システムバスブリッジ(SBB)402のブ
ロック図である。
【図21】Bバスインターフェースのブロック図であ
る。
【図22】Gバスインターフェース2006のブロック
図である。
【図23】仮想メモリマップ、物理メモリマップ、Gバ
スのアドレス空間でのメモリマップ、Bバスのアドレス
空間でのメモリマップの図である。
【図24】レジスタ等を含む図23における斜線部の5
12メガバイトを示すマップの図である。
【図25】アドレススイッチ2003のブロック図であ
る。
【図26】データスイッチ2004のブロック図であ
る。
【図27】Gバスからの書き込み/読み出しサイクルの
タイミング図である。
【図28】Gバスのバースト停止サイクルのタイミング
図である。
【図29】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図30】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図31】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図32】Gバスのトランザクション停止サイクルのタ
イミング図である。
【図33】PCIバスインターフェース416のブロッ
ク図である。
【図34】Gバスアービタ(GBA)406のブロック
図である。
【図35】DoEngine400内におけるGバス4
04を中心とする、Gバス上のバスマスタによるDMAに
係るブロック図である。
【図36】連続してバスを使用する回数が、バスマスタ
1〜4のすべてについて1に設定されている場合の公平
アービトレーションモード(フェアモード)の例を示す
図である。
【図37】連続してバスを使用する回数が、バスマスタ
1についてのみ2であり、他のバスマスタは1に設定さ
れている場合の公平アービトレーションモードの例を示
す図である。
【図38】連続してバスを使用する回数がそれぞれ1ず
つであり、バスマスタ1が優先バスマスタと設定されて
いる場合の優先アービトレーションモードの例を示す図
である。
【図39】バスマスタ1からのバス要求により、バスマ
スタ4のバス要求が許可されているにもかかわらず中断
された例を示す図である。
【図40】Bバスアービタ407のブロック図である。
【図41】同期ユニット4001のブロック図である。
【図42】同期ユニット内の一つコンペアユニットの図
である。
【図43】スキャナ/プリンタコントローラのブロック
図である。
【図44】スキャナコントローラ4302のブロック図
である。
【図45】スキャナデバイスI/F4401のブロック図
である。
【図46】スキャナビデオクロックユニット4402の
ブロック図である。
【図47】スキャナビデオデータマスク4601のブロ
ック図である。
【図48】スキャナビデオデータマスク4602のブロ
ック図である。
【図49】スキャナビデオデータ幅コンバータ4603
のブロック図である。
【図50】RGB各8ビットのカラー画像データ(24
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図51】RGB各8ビットのカラー画像データ(32
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図52】8ビットの白黒画像データのメモリ上でのな
らびを示す図である。
【図53】2値の白黒画像データのメモリ上でのならび
を示す図である。
【図54】BW8パッキングユニット4901により、
多値8ビットの白黒画像データを64ビット幅に変換す
る際のタイミング図である。
【図55】シフトレジスタ4902により2値白黒画像
データを64ビット幅に変換する際の画像データ入力の
タイミング図である。
【図56】RGBパッキングユニット4903により、
RGB各8ビット(全24ビット)の画像データを64
ビット幅に変換する際のタイミング図である。
【図57】RGBパッキングユニット4903のブロッ
ク図である。
【図58】スキャナ画像データ転送FIFOコントローラ4
403のブロック図である。
【図59】スキャナコントローラコントロールレジスタ
4404のブロック図である。
【図60】IRQコントローラ4406のブロック図であ
る。
【図61】メモリフィルモードコントローラ4405の
ブロック図である。
【図62】スキャナコントローラ4302からデータを
読み出してDMA転送する際のタイミング図である。
【図63】スキャナコントローラ4302の内部レジス
タに対して読み出しあるいは書き込みを行うタイミング
図である。
【図64】信号sccDmaPmStateの値及びクロックの状態
と信号sccPmStateの値との関係を示す図である。
【図65】スキャナコントローラ4302における、各
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
【図66】プリンタコントローラ4303のブロック図
である。
【図67】プリンタデバイスI/F6601のブロック図
である。
【図68】プリンタビデオクロックユニット6602の
ブロック図である。
【図69】プリンタビデオデータマスク6801のブロ
ック図である。
【図70】プリンタビデオ同期コントロールユニット6
802のブロック図である。
【図71】ビデオデータ幅コンバータ6803のブロッ
ク図である。
【図72】RGB各8ビットのカラー画像データ(24
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図73】RGB各8ビットのカラー画像データ(32
ビット格納モード)のメモリ上でのならびを示す図であ
る。
【図74】8ビットの白黒画像データのメモリ上でのな
らびを示す図である。
【図75】2値の白黒画像データのメモリ上でのならび
を示す図である。
【図76】RGBoutユニット7101のブロック図であ
る。
【図77】プリンタ画像データ転送FIFOコントローラ6
603のブロック図である。
【図78】プリンタコントローラコントロールレジスタ
6604のブロック図である。
【図79】IRQコントローラ6605のブロック図で
ある。
【図80】IRQコントローラ6605のブロック図で
ある。
【図81】プリンタコマンド/ステータスコントロール
ユニット6606のブロック図である。
【図82】オプションコントローラコントロールユニッ
ト6607のブロック図である。
【図83】プリンタコントローラ4303へデータをDM
A転送する際のタイミング図である。
【図84】プリンタコントローラ4303の内部レジス
タに対して読み出しあるいは書き込みを行うタイミング
図である。
【図85】信号pscDmaPmStateの値及びクロックの状態
と信号prcPmStateの値との関係を示す図である。
【図86】プリンタコントローラ4303における、各
ブロックを含むコア部分と外部バスやスキャナとの間で
入出力される信号をまとめた図である。
【図87】電力管理ユニット409のブロック図であ
る。
【図88】バスエージェントのブロック図である。
【図89】スキャナコントローラからプリンタコントロ
ーラへと直接画像データを転送してコピーする画像のコ
ピー方式で使用されるブロックを示す図である。
【図90】スキャナコントローラからプリンタコントロ
ーラへと、FIFOを介して画像データを転送してコピ
ーする画像のコピー方式で使用されるブロックを示す図
である。
【図91】スキャナコントローラからプリンタコントロ
ーラへと、メモリを介して画像データを転送してコピー
する画像のコピー方式で使用されるブロックを示す図で
ある。
【図92】GBIのブロック図である。
【図93】FIFOユニットのブロック図である。
【図94】GBusコントローラのブロック図である。
【図95】BBusコントローラのブロック図である。
【図96】DMAコントローラのブロック図である。
【図97】レジスタユニットのブロック図である。
【図98】チェインテーブルの構成例を示す図である。
【図99】GBIのコアインターフェースを示す図であ
る。
【図100】コピー方式を選択する手順のフローチャー
トである。
【図101】スキャナコントローラ4302内部のデー
タバスの切り換え回路を示す図である。
【図102】プリンタコントローラ4303内部のデー
タバスの切り換え回路を示す図である。
【図103】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図104】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図105】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図106】MCバスよりメモリリード/ライト転送が
要求された場合のキャッシュの動作の他の例を示すフロ
ーチャートである。
【図107】本発明の実施の形態に係る情報処理システ
ムの構成図である。
【図108】本発明の実施の形態に係る情報処理システ
ムにおける周辺機器の基本的な構成を示すブロック図で
ある。
【図109】本発明の実施の形態に係る情報処理システ
ムにおける周辺機器のソフトウェア構造を概要を示す図
である。
【図110】本発明の第1の実施の形態に係る情報処理
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
【図111】本発明の第2の実施の形態に係る情報処理
システムにおける周辺機器のソフトウェア構造の詳細を
示す図である。
【図112】従来におけるジョブを一体として処理する
場合のタイミングチャートである。
【図113】デバイスの割り当てと解放を行う処理を説
明する図である。
【図114】複数のジョブが生成された場合の処理を説
明する図である。
【図115】DoEngineをサテライトとして使用
する場合のシステムの構成例を示した図である。
【図116】システムソフトウェア処理を2つのCPU
で別々に処理する場合を説明する図である。
【図117】複数のCPUにより処理を分割する場合の
ソフトウェア構造の概要を示す図である。
【符号の説明】 401 CPU 402 バスブリッジ 403 メモリ 404 Gバス 405 Bバス 406 Gバスアービタ 407 Bバスアービタ 4301A Gバス/Bバスインターフェース(スキャ
ナ) 4301B Gバス/Bバスインターフェース(プリン
タ) 4302 スキャナコントローラ 4303 プリンタコントローラ
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図51】
【図2】
【図3】
【図107】
【図4】
【図5】
【図6】
【図45】
【図89】
【図7】
【図11】
【図8】
【図97】
【図100】
【図9】
【図46】
【図10】
【図52】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図39】
【図35】
【図36】
【図37】
【図38】
【図40】
【図101】
【図41】
【図42】
【図43】
【図44】
【図93】
【図47】
【図48】
【図49】
【図50】
【図53】
【図54】
【図55】
【図56】
【図57】
【図58】
【図59】
【図62】
【図60】
【図61】
【図63】
【図64】
【図65】
【図66】
【図68】
【図67】
【図74】
【図69】
【図70】
【図71】
【図72】
【図73】
【図75】
【図76】
【図77】
【図78】
【図102】
【図109】
【図79】
【図80】
【図81】
【図82】
【図83】
【図84】
【図85】
【図115】
【図86】
【図92】
【図87】
【図88】
【図90】
【図91】
【図94】
【図106】
【図95】
【図96】
【図98】
【図99】
【図103】
【図111】
【図104】
【図105】
【図108】
【図110】
【図112】
【図113】
【図114】
【図116】
【図117】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 石沢 康久 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 永田 聡 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 小野寺 健 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 Fターム(参考) 2C061 AP01 AP03 AP04 AP07 AQ05 AR01 AR03 AS02 AS13 HH05 HH09 HH11 HJ06 HJ07 HJ10 HK05 HK11 HK14 HK18 HK19 HL02 HN04 HN05 HN13 HN15 HN16 HN18 HN21 HQ06 HQ20 HQ21 5B021 AA19 BB01 BB02 CC08 DD07 DD20 5C062 AA02 AA05 AA13 AA35 AB38 AC24 AC38 AF07 BA04

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 情報処理装置から送信された手続きを解
    釈する解釈工程と、 前記手続きの解釈に基き、ジョブを生成するジョブ生成
    工程と、 前記生成されたジョブを構成する要素に分割する分割工
    程と、 前記分割した要素を処理するためのデバイスの割り付け
    と解放とを管理するデバイス管理工程と、 前記分割した要素の処理を並列に処理するためにデータ
    の書込みと、読取りを行う複数のバスの使用を制御する
    バス制御工程とを備え、 前記要素の並列処理により、スループットを最短にする
    ことを特徴とする複合機器の情報処理方法。
  2. 【請求項2】 前記ジョブを構成する要素はドキュメン
    トのページを単位とすることを特徴とする請求項1に記
    載の複合機器の情報処理方法。
  3. 【請求項3】 前記要素を処理するためのデバイスは、
    プリンタ、ファクシミリ、複写機、デジタル複合機を含
    むことを特徴とする請求項1に記載の複合機器の情報処
    理方法。
  4. 【請求項4】 前記手続きは、プロトコルであることを
    特徴とする請求項1に記載の複合機器の情報処理方法。
  5. 【請求項5】 前記デバイスの割り付けと、解放は前記
    ジョブを構成する要素ごとに行うことを特徴とする請求
    項1または2に記載の複合機器の情報処理方法。
  6. 【請求項6】 前記複数のバスの使用制御は、前記ジョ
    ブを構成する要素ごとに行うことを特徴とする請求項1
    または2に記載の複合機器の情報処理方法。
  7. 【請求項7】 情報処理装置から送信された手続きを解
    釈する解釈手段と、 前記手続きの解釈に基き、ジョブを生成するジョブ生成
    手段と、 前記生成されたジョブを構成する要素に分割する分割手
    段と、 前記分割した要素を処理するためのデバイスの割り付け
    と解放とを管理するデバイス管理手段と、 前記分割した要素の処理を並列に処理するためにデータ
    の書込みと、読取りを行う複数のバスの使用を制御する
    バス制御手段とを備え、 前記要素の並列処理により、スループットを最短にする
    ことを特徴とする複合機器の情報処理方法。
  8. 【請求項8】 前記ジョブを構成する要素はドキュメン
    トのページを単位とすることを特徴とする請求項7に記
    載の複合機器の情報処理システム。
  9. 【請求項9】 前記要素を処理するためのデバイスは、
    プリンタ、ファクシミリ、複写機、デジタル複合機を含
    むことを特徴とする請求項7に記載の複合機器の情報処
    理システム。
  10. 【請求項10】 前記手続きは、プロトコルであること
    を特徴とする請求項7に記載の複合機器の情報処理シス
    テム。
  11. 【請求項11】 前記デバイスの割り付けと、解放は前
    記ジョブを構成する要素ごとに行うことを特徴とする請
    求項7または8に記載の複合機器の情報処理システム。
  12. 【請求項12】 前記複数のバスの使用制御は、前記ジ
    ョブを構成する要素ごとに行うことを特徴とする請求項
    7または8に記載の複合機器の情報処理システム。
JP11055958A 1999-01-25 1999-01-25 複合機器の情報処理方法及びシステム Pending JP2000211216A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000216935A (ja) * 1999-01-25 2000-08-04 Canon Inc 複合機器の情報処理システム
JP2000211216A (ja) * 1999-01-25 2000-08-02 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
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)

* Cited by examiner, † Cited by third party
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
DE4302391C2 (de) * 1992-01-29 2000-02-17 Fuji Xerox Co Ltd Bildprozessorvorrichtung
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 複合機器の情報処理方法及びシステム

Cited By (2)

* Cited by examiner, † Cited by third party
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
US6480916B1 (en) 2002-11-12
EP1022896A2 (en) 2000-07-26
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) 電力管理装置及びそれを有する複合機器の制御装置
JPH11232215A (ja) バスコントローラ、バスマスタ装置及びバス制御システムの制御方法
JPH10124445A (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