(57)【要約】【課題】本発明は、スプリットトランザクションの伝送路経由での外部メモリへのアクセスを効率的に制御する半導体集積回路及びメモリアクセス制御方法に関する。【解決手段】ＡＳＩＣ４は、外部インターフェイスに接続されているＤＭＡＣから受け取ったメインメモリ３へのライトアクセスのライトデータをライトパケットバッファに一時保管し、リードリクエスト監視回路が、ＰＣＩｅバス５の伝送効率を所定の伝送効率判定基準に基づいて判定して、該判定結果に基づいてライトパケットバッファに保管されているライトデータを所定の分割データ量に分割してＰＣＩｅバス５経由でメインメモリ３に伝送している。【選択図】          図１
2010211349.tif 000002
【特許請求の範囲】
【請求項１】
外部インターフェイスに接続されているＤＭＡコントローラから外部メモリへのライトアクセスとリードアクセスをスプリットトランザクションの伝送路経由で行う半導体集積回路において、
前記ＤＭＡコントローラから受け取った前記外部メモリへのライトアクセスのライトデータを一時保管するデータ保管手段と、
前記伝送路の伝送効率を所定の伝送効率判定基準に基づいて判定する判定手段と、
前記判定手段の判定結果に基づいて前記データ保管手段に保管されている前記ライトデータを所定の分割データ量に分割して前記伝送路経由で前記外部メモリに伝送する分割伝送制御手段と、
を備えていることを特徴とする半導体集積回路。
【請求項２】
前記判定手段は、前記ＤＭＡコントローラから受け取って前記伝送路側に出力するリードリクエストのリクエスト時間間隔を監視して、該リクエスト時間間隔が予め設定されている所定の基準時間間隔を前記伝送効率判定基準として前記伝送路の伝送効率を判定することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記判定手段は、前記外部インターフェイスの動作状態を取得し、該動作状態を、予め設定されている所定の動作状態を前記伝送効率判定基準として前記伝送路の伝送効率を判定することを特徴とする請求項１または請求項２記載の半導体集積回路。
【請求項４】
前記半導体集積回路は、前記外部インターフェイスとして、ネットワークインターフェイス、スキャナインターフェイス、プロッタインターフェイス、外部メモリインターフェイスのいずれかの１つまたは複数を備え、前記判定手段は、前記ネットワークインターフェイスの通信モード、前記スキャナインターフェイスの動作中か否かの状態、前記プロッタインターフェイスの動作中か否かの状態を前記動作状態として取得することを特徴とする請求項３記載の半導体集積回路。
【請求項５】
外部インターフェイスに接続されているＤＭＡコントローラから外部メモリへのライトアクセスとリードアクセスをスプリットトランザクションの伝送路経由で行う半導体集積回路におけるメモリアクセス制御方法において、
前記ＤＭＡコントローラから受け取った前記外部メモリへのライトアクセスのライトデータをデータ保管手段に一時保管するデータ保管処理ステップと、
前記伝送路の伝送効率を所定の伝送効率判定基準に基づいて判定する判定処理ステップと、
前記判定処理ステップでの判定結果に基づいて前記データ保管手段に保管されている前記ライトデータを所定の分割データ量に分割して前記伝送路経由で前記外部メモリに伝送する分割伝送制御処理ステップと、
を有していることを特徴とするメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びメモリアクセス制御方法に関し、詳細には、スプリットトランザクションの伝送路経由した外部メモリへのアクセスのリクエストを効率的に制御する半導体集積回路及びメモリアクセス制御方法に関する。
【背景技術】
【０００２】
近年、要求と応答が分離され、応答を待たずに次の要求を発行できるＰＣＩ（Peripheral Component Interconnect） Express（以下、ＰＣＩｅという。）のような高速なスプリットトランザクションのバスが利用されるようになってきている。
【０００３】
一方、プリンタ、複写装置、複合装置、コンピュータ等の画像処理装置においては、半導体集積回路である外部とのインターフェイス処理を行うＡＳＩＣ（Application Specific Integrated Circuit）を搭載して、ネットワーク、ＵＳＢ（Universal Serial Bus）、スキャナ、プロッタ及びコンピュータ等の外部とのインターフェイス処理をＡＳＩＣで行って、外部からのデータをメインメモリに保管したり、メインメモリに保管したデータを読み出して外部に出力する等のインターフェイス処理を行うようになってきている。
【０００４】
すなわち、ＡＳＩＣは、ネットワーク、スキャナ、プロッタ等との間でデータの送受信を行うとともに、ＰＣＩｅエンドポイントを介して接続されたメインメモリとの間で、ＤＭＡ（Direct Memory Access）によってデータのやり取りを行う。
【０００５】
例えば、画像形成装置に搭載されているＡＳＩＣとしては、イーサネット（Ethernet：登録商標）  Ｉ／Ｆ等のネットワークＩ／ＦやＵＳＢ（Universal Serial Bus）  Ｉ／Ｆを制御するＩ／Ｏ機能を搭載するＡＳＩＣがあり、このようなＡＳＩＣは、ネットワーク用のリードＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）とライトＤＭＡＣ、ＵＳＢ用のリードＤＭＡＣとライトＤＭＡＣ、アービタ及びＰＣＩｅエンドポイント回路等を備えて、ネットワークデータやＵＳＢデータとのデータの送受信を、以下のように行う。
【０００６】
すなわち、ＡＳＩＣは、ネットワークへの送信においては、メインメモリ上に保管されている送信データをリードＤＭＡＣによって、ＰＣＩｅエンドポイント回路からアービタを経由してイーサネットＩ／Ｆにデータ転送して、イーサネットＩ／Ｆによりネットワーク上へデータを送信する。また、ネットワークからのデータの受信においては、イーサネットＩ／Ｆによりネットワークから受信したデータをライトＤＭＡＣによって、アービタを経由してメインメモリへライトさせる。
【０００７】
同様に、ＡＳＩＣは、ＵＳＢとの間のデータの送受信においても、メインメモリからデータをリードして、ＵＳＢ  Ｉ／Ｆに送り、ＵＳＢ  Ｉ／ＦがデータをＵＳＢに送信する。また、ＵＳＢ  Ｉ／Ｆからのデータを、ライトＤＭＡＣによってアービタを経由してメインメモリにライトする。
【０００８】
すなわち、ＡＳＩＣは、アービタを内蔵して、ＤＭＡＣによってＰＣＩｅバスを経由してメモリとの間でデータのリード及びライトを行うメモリアクセスを調停している。
【０００９】
このようなアービタを利用したメインメモリへのアクセスにおいては、アービタから出力されたリクエストがＰＣＩｅバスのインターフェイスを経由してメインメモリとのやり取りが行なわれ、送信と受信が全二重で行なわれる。
【００１０】
すなわち、ＰＣＩｅは、リードとライトがスプリットトランザクションで行なわれる。すなわち、ＰＣＩｅは、図１１に示すように、ライトトランザクションでは、Ｔｘ伝送路上で、ライトコマンド（ＷＣ）に続いて、ライトデータ（ＷＤ）が送信され、リードトランザクションでは、Ｔｘ伝送路上で、リードコマンド（ＲＣ）が送信された後に、その応答としてＲｘ伝送路上で、リードデータ（ＲＤ）が受信される。
【００１１】
しかし、従来のアービタは、規定された固定優先順位方式、または、ラウンドロビン方式で決定された順番でアクセスのリクエストを処理するだけであり、ＡＳＩＣの場合、ネットワークやＵＳＢ等からの受信データのオーバーフローを回避するために、アービタでのプライオリティーとして、受信動作であるライトＤＭＡＣの優先順位が高く設定されていて、ラウンドロビンで処理される。一方、ＤＭＡＣとアービタ間のデータ転送サイズは、１２８バイトであり、１回のトランザクションでやり取りされるデータ量は、１２８バイトである。また、アービタとＰＣＩｅエンドポイント（ＰＣＩｅバスのＩ／Ｆ）との間のデータ転送サイズは、１２８バイトであり、ＰＣＩｅバス上は、１２８バイトのパケットが送受信される。
【００１２】
そして、例えば、ＡＳＩＣが、ネットワーク、ＵＳＢ等のデバイスの外部Ｉ／Ｆとメインメモリとのデータ転送を行うＤＭＡＣを複数搭載している場合、複数のＤＭＡＣが並行動作すると、図１２に示すように、アービタからライトアクセスを連続して受けた場合、リードコマンドの発行が先送りになり、Ｔｘ伝送路の効率とＲｘ伝送路の効率のバランスが悪くなる。特に、１２８バイトのライトデータが送信されないとリードコマンドは送信することができないため、デバイスへのリードコマンドの伝達が遅くなって、Ｒｘ伝送路上の効率が悪くなる。
【００１３】
その結果、イーサネットＩ／ＦやＵＳＢ  Ｉ／Ｆ等の外部デバイスＩ／Ｆから外部デバイスへのデータ送信時に、メインメモリからの送信データのリードが遅くなって、送信アンダーランが発生し、プロトコル上の再送等が発生して、パフォーマンスの低下を招くという問題があった。
【００１４】
また、ＰＣＩｅバスは、スプリットトランザクションバスであるため、アービタによって複数のＤＭＡＣからのアクセスを調停するだけでは、Ｔｘ伝送路とＲｘ伝送路の効率が悪くなり、リードアクセスとライトアクセスを考慮した調停が必要となる。例えば、Ｔｘ伝送路の効率を高めるために、１回に送信するライトパケットのサイズを大きくすると、上述のようにＲｘ伝送路の効率が低下して、リードパケットのレイテンシー(遅延時間）が大きくなる。逆に、Ｒｘ伝送路の効率を高めるために、１回に送信するライトパケットのサイズを小さくすると、ライトパケットに付加するライトコマンドの数が増大し、Ｔｘ伝送路の効率が低下する。
【００１５】
そして、従来、アービタからのライトコマンドをバッファに保管し、ライトコマンドの保管中にリードコマンドを受け付けると、既に保管されているライトコマンドよりも先にリードコマンドをＰＣＩｅインターフェイスに渡すことにより、送信路と受信路の利用効率の向上を図った技術が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記公報記載の従来技術にあっては、アービタからのライトコマンドをバッファに保管して、このライトコマンドの保管中にリードコマンドを受け付けると、既に保管されているライトコマンドよりも先にリードコマンドをＰＣＩｅインターフェイスに渡しているため、ライトコマンドの受け付けとリードコマンドの受け付けが同時に発生した場合のタイミング制御やライトコマンド処理の受け付けの終了と同時にリードコマンドの受け付けが発生した場合のタイミング制御が複雑になり、回路規模が大きくなるとともに、コストが高くなるおそれがある。
【００１７】
そこで、本発明は、簡単な構成で、スプリットトランザクション伝送路の利用効率を向上させてスループットを向上させることのできる半導体集積回路及びメモリアクセス制御方法を提供することを目的としている。
【課題を解決するための手段】
【００１８】
本発明は、上記目的を達成するために、外部インターフェイスに接続されているＤＭＡコントローラから受け取った外部メモリへのライトアクセスのライトデータをデータ保管手段に一時保管し、前記伝送路の伝送効率を所定の伝送効率判定基準に基づいて判定して、該判定結果に基づいて前記データ保管手段に保管されている前記ライトデータを所定の分割データ量に分割して前記伝送路経由で前記メモリに伝送することを特徴としている。
【００１９】
また、本発明は、前記ＤＭＡコントローラから受け取って前記伝送路側に出力するリードリクエストのリクエスト時間間隔を監視して、該リクエスト時間間隔が予め設定されている所定の基準時間間隔を前記伝送効率判定基準として前記伝送路の伝送効率を判定することを特徴としてもよい。
【００２０】
さらに、本発明は、前記外部インターフェイスの動作状態を取得し、該動作状態を、予め設定されている所定の動作状態を前記伝送効率判定基準として前記伝送路の伝送効率を判定することを特徴としてもよい。
【発明の効果】
【００２１】
本発明によれば、トランザクション伝送路の伝送効率に応じてＤＭＡコントローラからのライトデータの分割伝送を制御しているので、簡単な構成で伝送路の利用効率を向上させることができ、伝送路を利用した処理のスループットを向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例を適用した画像形成装置の要部ブロック図。
【図２】アービタのブロック構成図
【図３】複数のＤＭＡＣが並行動作する場合のＰＣＩｅバスの状態例を示す図。
【図４】リードリクエスト時間間隔が長くなった状態のＰＣＩｅバスの状態例を示す図。
【図５】ライトデータを分割サイズに分割して送信した場合のＰＣＩｅバスの状態例を示す図。
【図６】外部インターフェイスの通信モードに基づいてパケットを分割制御する場合の画像形成装置のブロック構成図。
【図７】外部インターフェイスの通信モードに基づくパケット分割制御処理を示すフローチャート。
【図８】外部インターフェイスの動作状態に基づいてライトパケットを分割制御する場合の画像形成装置のブロック構成図。
【図９】外部インターフェイスの動作状態に基づくパケット分割制御処理を示すフローチャート。
【図１０】画像処理ＡＳＩＣを搭載する画像形成装置のブロック構成図。
【図１１】ＰＣＩｅにおけるライトとリードのトランザクションの説明図。
【図１２】ＰＣＩｅにおける送信伝送路と受信伝送路の効率のバランスが悪化した状態を示す図。
【発明を実施するための形態】
【００２３】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００２４】
図１〜図１０は、本発明の半導体集積回路及びメモリアクセス制御方法の一実施例を示す図であり、図１は、本発明の半導体集積回路及びメモリアクセス制御方法の一実施例を適用した画像形成装置１の要部ブロック構成図である。
【００２５】
図１において、画像形成装置１は、例えば、プリンタ、複合装置等であり、ＣＰＵ（Central Processing Unit ）チップセット２、メインメモリ（外部メモリ）３及び半導体集積回路としてのＡＳＩＣ（Application Specific Integrated Circuit）４等を備えている。ＡＳＩＣ４とＣＰＵチップセット２の内蔵するＭＣＨ（Memory Controller Hub）とは、スプリットトランザクションの伝送路であるＰＣＩｅバス５で接続されている。
【００２６】
ＡＳＩＣ４は、外部デバイスとの接続のＩ／Ｆ（インターフェイス）を行うイーサネットＩ／Ｆ１１とＵＳＢ  Ｉ／Ｆ１２、イーサネットＩ／Ｆ１１用のリードＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）１３ｒとライトＤＭＡＣ１３ｗ、ＵＳＢ  Ｉ／Ｆ１２用の２つのリードＤＭＡＣ１４ｒ、１５ｒとライトＤＭＡＣ１４ｗ、１５ｗ、アービタ１６及びＰＣＩｅインターフェイスであるＰＣＩｅエンドポイント１７等を備えており、外部デバイスとのインターフェイス処理を行う。
【００２７】
アービタ１６は、ＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗからのライトリクエスト及びリードリクエストを調停して、ＰＣＩｅエンドポイント１７に渡す。ＰＣＩｅエンドポイント１７は、ライトリクエスト及びリードリクエストをＰＣＩｅバス５を経由させてＣＰＵチップセット２を越してメインメモリ３にアクセスさせる。
【００２８】
ＡＳＩＣ４は、ネットワークへのデータ送信においては、メインメモリ３上の送信データをリードＤＭＡＣ１３ｒによって、ＰＣＩｅエンドポイント１７からアービタ１６を経由してイーサネットＩ／Ｆ１１にデータ転送を行って、イーサネットＩ／Ｆ１１によりネットワーク（イーサネット）上に送信し、ネットワークからのデータ受信においては、イーサネットＩ／Ｆ１１により受信したデータをライトＤＭＡＣ１３ｗによって、アービタ１６を経由してメインメモリ３にライトする。同様に、ＡＳＩＣ４は、ＵＳＢへのデータの出力においては、メインメモリ３上に保存されている出力データをリードＤＭＡＣ１４ｒ、１５ｒによって、ＰＣＩｅエンドポイント１７からアービタ１６を経由してＵＳＢ  Ｉ／Ｆ１２にデータ転送を行って、ＵＳＢ  Ｉ／Ｆ１２によりＵＳＢ上に出力し、ＵＳＢからのデータ受信においては、ＵＳＢ  Ｉ／Ｆ１２により受信したデータをライトＤＭＡＣ１４ｗ、１５ｗによって、アービタ１６を経由してメインメモリ３にライトする。
【００２９】
そして、ＰＣＩｅバス５を利用したＣＰＵチップセット２を越したメインメモリ３へのアクセスにおいては、アービタ１６から出力されたリクエストがＰＣＩｅエンドポイント１７を経由してメインメモリ３との間でやり取りされる。
【００３０】
アービタ１６は、上述のように、リードＤＭＡＣ１３ｒ、１４ｒ、１５ｒからのリードコマンドとライトＤＭＡＣ１３ｗ、１４ｗ、１５ｗからのライトコマンドを調停して、ＰＣＩｅエンドポイント１７に渡すが、本実施例のアービタ１６は、図２に示すように、ライトパケットバッファ２１、ライトパケットサイズ制御回路２２、リードリクエスト監視回路２３及びレジスタ２４等を備えている。
【００３１】
リードリクエスト監視回路（判定手段）２３は、アービタ１６から送信されるリードリクエストの時間間隔ｔｒを監視し、リードリクエスト時間間隔ｔｒを効率低下判定時間間隔（伝送効率判定基準）ｔｐと比較して、効率低下判定時間間隔ｔｐを上回る（長い）リードリクエスト時間間隔ｔｒが時間継続すると、リードトランザクションの効率（伝送効率）が低下していると判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行う。レジスタ２４は、上記効率低下判定時間間隔ｔｐや後述するライトパケットの分割サイズが設定されて、保持する。また、リードリクエスト監視回路２３は、各外部インターフェイスであるイーサネットＩ／Ｆ１１及びＵＳＢ  Ｉ／Ｆ１２から動作状態を伝送効率判定基準として取得して、伝送効率の低下の有無を判定する。
【００３２】
ライトパケットバッファ（データ保管手段）２１は、各ライトＤＭＡＣ１３ｗ、１４ｗ、１５から受信したライトデータを一旦保管する。
【００３３】
ライトパケットサイズ制御回路（分割伝送制御手段）２２は、リードリクエスト監視回路２３から伝送効率低下通知を受けると、ライトパケットバッファ２１に保管されているライトデータを、レジスタ２４に保持されている分割サイズによって、分割ライトパケットに分割してＰＣＩｅエンドポイント１７へ送信する。
【００３４】
なお、ＡＳＩＣ４は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のメモリアクセス制御方法を実行するメモリアクセス制御プログラムを読み込んで、ＡＳＩＣ４内の図示しないＲＯＭ等に導入することで、後述するＰＣＩｅバス５の利用効率を向上させるメモリアクセス制御方法を実行する半導体集積回路として構築されている。このメモリアクセス制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００３５】
次に、本実施例の作用を説明する。本実施例のＡＳＩＣ４は、アービタ１６がＰＣＩｅバス５の伝送効率を判定してライトデータを分割してメインメモリ３にライトアクセスすることで、ＰＣＩｅバス５の伝送効率を向上させる。
【００３６】
すなわち、ＡＳＩＣ４は、イーサネットＩ／Ｆ１１用にリードＤＭＡＣ１３ｒとライトＤＭＡＣ１３ｗを、ＵＳＢ  Ｉ／Ｆ１２用に２つのリードＤＭＡＣ１４ｒ、１５ｒと２つのライトＤＭＡＣ１４ｗ、１５ｗを備えており、これらのＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗが並行動作する。これらのＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗが並行動作する場合、各ＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗからのアクセスをアービタ１６が調整してＰＣＩｅエンドポイント１７に渡す。
【００３７】
このとき、ＰＣＩｅバス５には、図３に示すように、ライト側のＴｘ伝送路では、ライトコマンドＷＣ１、ライトデータＷＤ１、リードコマンドＲＣ１、ライトコマンドＷＣ２、ライトデータＷＤ２、リードコマンドＲＣ２、ライトコマンドＷＣ３、ライトデータＷＤ３・・・とアクセスが実行されることとなり、リード側のＲｘ伝送路では、リードコマンドＲＣ１によるリードデータＲＤ１、リードコマンドＲＣ２によるリードデータＲＤ２のアクセスが実行されることとなる。
【００３８】
ところが、上述のように、ＰＣＩｅバス５は、スプリットトランザクションバスであるため、アービタ１６によって複数のＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗからのアクセスを単に調停するだけでは、Ｔｘ伝送路とＲｘ伝送路の効率が悪くなる。
【００３９】
すなわち、リードリクエスト時間間隔ｔｒは変動的であり、アービタ１６に接続されるＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗの数やリクエストの発行能力、画像形成装置１の動作によって大きく（長く）なったり、小さく（短く）なったりする。例えば、リードＤＭＡＣ１３ｒ、１４ｒ、１５ｒのうちの１つ、例えば、リードＤＭＡＣ１３ｒと複数のライトＤＭＡＣ１３ｗ、１４ｗ、１５ｗが並行動作した場合、アービタ１６は、リードＤＭＡＣ１３ｒからのリードリクエストの間に複数のライトＤＭＡＣ１３ｗ、１４ｗ、１５ｗからのライトリクエストに割り込まれ、リードリクエスト時間間隔ｔｒは、大きくなる。また、ライトＤＭＡＣ１３ｗ、１４ｗ、１５ｗの動作が１つの場合は、リードリクエストとライトリクエストが交互に処理され、リードリクエスト時間間隔ｔｒは、ライトパケットサイズの転送時間とほぼ等しくなる。
【００４０】
そこで、本実施例のＡＳＩＣ４は、ＰＣＩｅバス５の伝送効率を、リードリクエスト時間間隔ｔｒと外部インターフェイスの動作状態に基づいて判定してＤＭＡＣ１３ｒ、１３ｗ、１４ｒ、１４ｗ、１５ｒ、１５ｗからのリードデータを所定の分割データ量に分割してＰＣＩｅバス５を経由させてメインメモリ３に伝送する分割伝送を行う。
【００４１】
すなわち、アービタ１６は、ライトパケットバッファ２１が、各ライトＤＭＡＣ１３ｗ、１４ｗ、１５から受信したライトデータを一旦保管し、リードリクエスト監視回路２３が、アービタ１６からリードリクエスト時間間隔ｔｒを計測して、レジスタ２４に保管されている効率低下判定時間間隔ｔｐと比較する。リードリクエスト監視回路２３は、図４に示すように、リードリクエスト時間間隔ｔｒが効率低下判定時間間隔ｔｐを上回る（長い）リードリクエスト時間間隔ｔｒが時間継続すると、ＰＣＩｅバス５のリードトランザクションの効率が低下していると判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行う。
【００４２】
ライトパケットサイズ制御回路２２は、リードリクエスト監視回路２３から伝送効率低下通知があると、ライトパケットバッファ２１に格納したライトデータ（ライトパケット）を、図５に示すように、レジスタ２４に設定されている分割サイズに応じて分割して、アービタ１６からＰＣＩｅエンドポイント１７へ送信する。
【００４３】
したがって、ＰＣＩｅバス５上のライトパケットサイズが分割サイズに応じて小さくなり、ＰＣＩｅバス５上の状態が、図５から分かるように、リードリクエスト時間間隔ｔｒが短くなって、リード側のＲｘ伝送路の転送効率が向上する。
【００４４】
また、ＡＳＩＣ４のアービタ６は、外部インターフェイスの動作状態を取得し、該動作状態を、予め設定されている所定の動作状態を伝送効率判定基準として伝送路の伝送効率を判定して、ライトパケットバッファ２１に格納したライトデータを分割してＰＣＩｅエンドポイント１７に送るか分割しないで送るかを決定する。
【００４５】
この外部インターフェイスの動作状態としては、種々の状態に対応することができ、まず、図６に示すように、イーサネットインターフェイス１１とＵＳＢ  Ｉ／Ｆ１２の動作状態を取得してライトデータの分割を制御する場合について説明する。
【００４６】
図６では、画像形成装置１は、ＡＳＩＣ４のイーサネットＩ／Ｆ１１にイーサネット３１が接続され、ＵＳＢ  Ｉ／Ｆ１２にパーソナルコンピュータ（ＰＣ）３２が接続されている。アービタ１６は、外部インターフェイスであるイーサネットＩ／Ｆ１１及びＵＳＢ  Ｉ／Ｆ１２から外部インターフェイスの動作状態を取得する。すなわちイーサネットＩ／Ｆ１１に接続されているイーサネット３１は、全二重モードと半二重モードで動作が可能であり、アービタ１６は、イーサネットＩ／Ｆ１１から全二重モードと半二重モードのいずれで動作しているかを取得する。また、イーサネット３１が、高速の１０００ＢＡＳＥ−Ｔであるのか、比較的低速の１００ＢＡＳＥ−Ｔであるのかを取得する。
【００４７】
そして、イーサネット３１が半二重モードの場合には、送信と受信が同時に行われることがないので、ＰＣＩｅエンドポイント１７とＣＰＵチップセット２との間のＰＣＩｅバス５のＴｘ伝送路でリードリクエストがライトリクエストとライトデータに邪魔されることはないが、イーサネット３１が全二重モードの場合には、送信と受信が同時に行われるので、ＰＣＩｅバス５上でのバランスが悪くなる。
【００４８】
そこで、リードリクエスト監視回路２３は、図７に示すように、外部インターフェイスの状態信号（動作状態）を取り込み（ステップＳ１０１）、イーサネットＩ／Ｆ１１に接続されているイーサネット３１が全二重モードであるかチェックする（ステップＳ１０２）。ステップＳ１０２で、イーサネット３１が半二重モードであると、ＰＣＩｅバス５のＴｘ伝送路でリードリクエストがライトリクエストとライトデータに邪魔されることはないため、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ１０３）。
【００４９】
ステップＳ１０２で、イーサネット３１が全二重モードであると、リードリクエスト監視回路２３は、イーサネット３１の通信速度が高速の１０００ＢＡＳＥ−Ｔであるかチェックし（ステップＳ１０４）、１０００ＢＡＳＥ−Ｔでないときには、ＰＣＩｅバス５の効率がパケットを分割する程度には悪化しないと判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ１０３）。
【００５０】
ステップＳ１０４で、イーサネット３１の通信速度が高速の１０００ＢＡＳＥ−Ｔであると、リードリクエスト監視回路２３は、リードリクエスト時間間隔ｔｒがレジスタ２４に設定されている設定値である効率低下判定時間間隔ｔｐより長いかチェックし（ステップＳ１０５）、リードリクエスト時間間隔ｔｒが効率低下判定時間間隔ｔｐ以下であると、ＰＣＩｅバス５の効率が低下していないと判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ１０３）。
【００５１】
ステップＳ１０５で、リードリクエスト時間間隔ｔｒが効率低下判定時間間隔ｔｐよりも長いときには、リードリクエスト監視回路２３は、ＰＣＩｅバス５の効率が低下していると判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行い、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割をレジスタ２４に設定されている分割サイズに応じて分割して、ＰＣＩｅエンドポイント１７へ送信する（ステップＳ１０６）。
【００５２】
このように、本実施例のＡＳＩＣ４は、外部インターフェイスに接続されているＤＭＡＣから受け取ったメインメモリ３へのライトアクセスのライトデータをライトパケットバッファ２１に一時保管し、リードリクエスト監視回路２３が、ＰＣＩｅバス５の伝送効率を所定の伝送効率判定基準に基づいて判定して、該判定結果に基づいてライトパケットバッファ２１に保管されているライトデータを所定の分割データ量に分割してＰＣＩｅバス５経由でメインメモリ３に伝送している。
【００５３】
したがって、ＰＣＩｅバス５の伝送効率に応じてＤＭＡＣからのライトデータの分割伝送を制御して、簡単な構成でＰＣＩｅバス５の利用効率を向上させることができ、ＰＣＩｅバス５を利用した処理のスループットを向上させることができる。
【００５４】
また、ＡＳＩＣ４は、ＵＳＢ  Ｉ／Ｆ１２が、ＵＳＢ  Ｉ／Ｆ１２に接続されているパーソナルコンピュータ３２との通信状態を取得して、ライトデータの分割送信を行ってもよい。
【００５５】
例えば、アービタ１６は、ＵＳＢ  Ｉ／Ｆ１２がパーソナルコンピュータ３２からのプロッタ印刷を処理する動作中であるか否か、パーソナルコンピュータ３２へスキャナデータを送信する動作中であるか否かの情報を取得し、ＵＳＢ  Ｉ／Ｆ１２からのライトＤＭＡＣ１４ｗ、１５ｗからのライトデータを分割送信するか否かを制御する。
【００５６】
すなわち、パーソナルコンピュータ３２からのプロッタ印刷用のデータを受信して該データによるプロッタ印刷動作中であるが、スキャナ動作によって読み取ったデータのパーソナルコンピュータ３２への送信中でない場合には、パーソナルコンピュータ３２から印刷データを受信する動作、すなわち、ライトＤＭＡＣ１４ｗ、１５ｗによるメモリ３へのライト処理のみであるので、アービタ１６は、ライトデータ（ライトパケット）の分割を行うことなく、ＰＣＩｅエンドポイント１７に送信する。
【００５７】
また、パーソナルコンピュータ３２からのプロッタ印刷データを受信して印刷するプロッタ印刷動作中であって、かつ、パーソナルコンピュータ３２へのスキャナデータ送信中である場合には、ＰＣＩｅバス５上でのバランスが悪くなるおそれがあるため、アービタ１６は、パーソナルコンピュータ３２からのプロッタ印刷データであるライトパケットを分割すると判定して、ライトパケットを分割サイズに分割して、ＰＣＩｅエンドポイント１７に送信する。
【００５８】
このようにすると、ＰＣＩｅバス５上のバランスを向上させることができ、パーソナルコンピュータ３２からのプロッタ処理とパーソナルコンピュータ３２へのスキャナデータ送信動作を効率的に行うことができる。
【００５９】
さらに、外部インターフェイスの動作状態としては、その通信状態だけでなく、例えば、図８及び図９に示すように、ＡＳＩＣ４０が、外部インターフェイスとして、ビデオインＩ／Ｆ４１とビデオアウトＩ／Ｆ４２を備え、ビデオインＩ／Ｆ４１用に、ライトＤＭＡＣ４３ｗを、ビデオアウトＩ／Ｆ４２用に、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）の各版に対応する４つのリードＤＭＡＣ４４ｒ〜４７ｒを搭載していて、これらのビデオインＩ／Ｆ４１とビデオアウトＩ／Ｆ４２に接続される外部デバイスとしてのスキャナ５１とプロッタ５２の動作状態を取得して、ライトデータの分割を制御してもよい。
【００６０】
すなわち、ビデオインＩ／Ｆ４１には、原稿の画像を読み取って読み取り画像データをビデオインＩ／Ｆ４１に入力するスキャナ５１が接続され、ビデオアウトＩ／Ｆ４２には、ビデオアウトＩ／Ｆ４２からの画像データに基づいて用紙に画像形成するプロッタ５２が接続される。そして、ライトＤＭＡＣ４３ｗは、アービタ１６にメインメモリ３へのライトコマンドを出して、ビデオインＩ／Ｆ４１がスキャナ５１から取り込んだ画像データをライトデータとしてアービタ１６に渡す。リードＤＭＡＣ４４ｒ〜４７ｒは、リードコマンドをアービタ１６に出して、メインメモリ３の画像データをリードデータとして取り込んで、ビデオアウトＩ／Ｆ４２に渡して、ビデオアウトＩ／Ｆ４２がプロッタ５２に出力する。
【００６１】
そして、アービタ１６は、ビデオアウトＩ／Ｆ４２からプロッタ５２の動作状態信号を取得し、また、ビデオインＩ／Ｆ４１からスキャナ５１の動作状態信号を取得して、ライトデータの分割を制御する。
【００６２】
すなわち、アービタ１６のリードリクエスト監視回路２３は、図９に示すように、外部インターフェイスであるビデオインＩ／Ｆ４１とビデオアウトＩ／Ｆ４２の状態信号（動作状態）を取り込み（ステップＳ２０１）、ビデオアウトＩ／Ｆ４２に接続されているプロッタ５２が動作中であるかチェックする（ステップＳ２０２）。ステップＳ２０２で、プロッタ５２が動作中でないときには、リードリクエスト監視回路２３は、リードコマンドが発生しないため、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ２０３）。
【００６３】
ステップＳ２０２で、プロッタ５２が動作中であると、リードリクエスト監視回路２３は、ビデオインＩ／Ｆ４１に接続されているスキャナ５１が動作中であるかチェックし（ステップＳ２０４）、スキャナ５１が動作中でないときには、ライトコマンドが発生しないため、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ２０３）。
【００６４】
ステップＳ２０４で、スキャナ５１が動作中であると、すなわち、コピーアプリやプリンタアプリとスキャナアプリのマルチ動作（複合動作）の場合は、リードリクエスト監視回路２３は、リードリクエスト時間間隔ｔｒがレジスタ２４に設定されている設定値である効率低下判定時間間隔ｔｐより長いかチェックし（ステップＳ２０５）、リードリクエスト時間間隔ｔｒが効率低下判定時間間隔ｔｐ以下であると、ＰＣＩｅバス５の効率が低下していないと判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行わず、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割を行うことなくＰＣＩｅエンドポイント１７に送信する（ステップＳ２０３）。
【００６５】
ステップＳ２０５で、リードリクエスト時間間隔ｔｒが効率低下判定時間間隔ｔｐよりも長いときには、リードリクエスト監視回路２３は、ＰＣＩｅバス５の効率が低下していると判定して、ライトパケットサイズ制御回路２２に伝送効率低下通知を行い、ライトパケットサイズ制御回路２２は、ライトデータ（ライトパケット）の分割をレジスタ２４に設定されている分割サイズに応じて分割して、ＰＣＩｅエンドポイント１７へ送信する（ステップＳ２０６）。
【００６６】
このようにすると、外部インターフェイスの動作状態に応じて、ライトパケットを分割して、ＰＣＩｅバス５のＴｘとＲｘの伝送効率のバランスを向上させることができ、比較的高速の線速で動作するスキャナ５１やプロッタ５２に対しても適切に対応して動作させて、スループットを向上させることができる。
【００６７】
また、上述のように、スキャナ５１からのビデオ入力用のライトＤＭＡＣ４３ｗとプロッタ５２へのビデオ出力用のリードＤＭＡＣ４４ｒ〜４７ｒに適用して、ビデオインＩ／Ｆ４１とビデオアウトＩ／Ｆ４２が動作中であるか否かの情報を伝送効率判定基準として取得して、ライトパケットの分割を行うか否かの判定を行っている。
【００６８】
したがって、スキャナ５１及びプロッタ５２とメインメモリ３との間のＰＣＩｅバス５を介したデータ転送を効率的に行うことができ、より一層高速で動作するスキャナ５１やプロッタ５２の動作性能を向上させて、スループットをより一層向上させることができる。
【００６９】
また、半導体集積回路が、図１０に示すような画像処理モジュールを搭載した画像処理ＡＳＩＣ６０である場合にも、同様に適用することができる。なお、図１０においては、図１及び図８と同様の構成部分には、同一の符号を付して、その詳細な説明を省略する。
【００７０】
図１０において、画像処理ＡＳＩＣ６０は、図１と同様のアービタ１６とＰＣＩｅエンドポイント１７、図８と同様のビデオインＩ／Ｆ４１、ビデオアウトＩ／Ｆ４２、ビデオインＩ／Ｆ４１用のライトＤＭＡＣ４３ｗ、ビデオアウトＩ／Ｆ４２用のリードＤＭＡＣ４４ｒ〜４７ｒを備えているとともに、圧縮伸長器６１、回転器６２、ハードディスク（ＨＤＤ）Ｉ／Ｆ６３、メモリクリア６４、圧縮伸長器６１用のライトＤＭＡＣ６５ｗ、リードＤＭＡＣ６５ｒ、回転器６２用のライトＤＭＡＣ６６ｗ、リードＤＭＡＣ６６ｒ、ハードディスクＩ／Ｆ用のライトＤＭＡＣ６７ｗ、リードＤＭＡＣ６７ｒ及びメモリクリア６４用のライトＤＭＡＣ６８ｗを備えており、ビデオインＩ／Ｆ４１には、スキャナ５１が、ビデオアウトＩ／Ｆ４２には、プロッタ５２が、ハードディスクＩ／Ｆ６３には、ハードディスク（ＨＤＤ）７１がそれぞれ接続されている。
【００７１】
この画像処理ＡＳＩＣ６０は、外部インターフェイスであるビデオインＩ／Ｆ４１、ビデオアウトＩ／Ｆ４２及びハードディスクＩ／Ｆ６３から動作状態信号を取得して、ライトデータの分割送信を制御する。例えば、画像処理ＡＳＩＣ６０は、コピー動作の場合、スキャナ５１からの画像データをビデオインＩ／Ｆ４１を経由して、ライトＤＭＡＣ４３ｗによりメインメモリ３にライトする。次に、画像処理ＡＳＩＣ６０は、メインメモリ３に保管されている画像データをリードＤＭＡＣ６５ｒでリードして圧縮伸長器６１に送って符号化し、ライトＤＭＡＣ６５ｗによってメインメモリ３へ符号データをライトする。次に、画像処理ＡＳＩＣ６０は、ジャム用バックアップまたはドキュメントボックスによるスキャン無しでの再印刷を可能とするために、ハードディスクＩ／Ｆ６３が、メインメモリ３にライトされた符号データをリードＤＭＡＣ６７ｒによってリードし、ハードディスク７１へ格納する。そして、画像処理ＡＳＩＣ６０は、ハードディスクＩ／Ｆ６３が、ハードディスク７１に格納された符号データをライトＤＭＡＣ７５ｗによってメインメモリ３へライトし、メインメモリ３にライトされた符号データをリードＤＭＡＣ６５ｒによってリードして圧縮伸長器６１で復号化して、ライトＤＭＡＣ６５ｗによって、復号化した画像データを再びメインメモリ３へライトする。次に、画像処理ＡＳＩＣ６０は、印刷用紙の方向がメインメモリ３上に展開された画像データの方向と異なる場合等に必要に応じて、リードＤＭＡＣ６６ｒによってメインメモリ３上の画像データをリードして、回転器６２で用紙の方向に合わせる等の回転を行って、ライトＤＭＡＣ６６ｗによって再度メインメモリ３にライトする。次に、画像処理ＡＳＩＣ６０は、ビデオアウトＩ／Ｆ４２が、リードＤＭＡＣ４４ｒ〜４７ｒによりメインメモリ３上のＣＭＹＫ各版の画像データをリードし、プロッタ５２へ出力する。なお、メモリクリア６４は、各機能がメインメモリ３上へ画像データまたは符号データをライトする場合に、確保したメモリ領域（ページメモリ）を初期化するために使用される。
【００７２】
アービタ１６は、上記処理において、スキャナ動作とドキュメントＢＯＸからの印刷動作、すなわち、スキャナ５１の読み取り動作で読み取った画像データのメインメモリ３へのライト動作とハードディスク７１の画像データをプロッタ５２で印刷出力する印刷動作を並列に行った場合、メインメモリ３に対しては、スキャナ５１で読み取った画像データのビデオインＩ／Ｆ４１用のライトＤＭＡＣ４３ｗによるライト、ハードディスクＩ／Ｆ６３用のライトＤＭＡＣ６７ｗによる符号データのライト、圧縮伸長器６１用のリードＤＭＡＣ６５ｒによる符号データ（少量）のリード、ライトＤＭＡＣ６５ｗによる画像データのライト、メモリクリア６４用のライトＤＭＡＣ６８ｗによるページメモリ領域の初期化のためのライト及びビデオアウトＩ／Ｆ４２用のリードＤＭＡＣ４４ｒ〜４７ｒによる画像データのリードの各メモリアクセスが発生する。
【００７３】
このようなメモリアクセスが発生するため、ＰＣＩｅバス５上では、リードリクエストよりもライトリクエストの数の方が多くなり、ＰＣＩｅバス５の効率の低下が発生して、リードリクエストに対する応答が遅くなる。その結果、ビデオアウトＩ／Ｆ４２への画像データの供給がプロッタ５２のラインシンク間に間に合わず、印刷時に異常画像となるおそれがある。
【００７４】
そこで、アービタ１６は、ビデオアウトＩ／Ｆ４２からプロッタ５２へのデータ出力中であるか否かの動作状態信号を取得して、ビデオアウトＩ／Ｆ４２からプロッタ５２へのデータ出力と上記他の動作が平行動作を行なう場合には、ビデオアウトＩ／Ｆ５２のリードＤＭＡＣ４４ｒ〜４７ｒが画像データをリードしている間は、他のライトＤＭＡＣ４３ｗ、６５ｗ、６６ｗ、６７ｗ、６８ｗからのライトパケットを分割パケットに分割して、ＰＣＩｅエンドポイント１７に送信する。
【００７５】
このようにすると、ビデオアウトＩ／Ｆ４２のリードＤＭＡＣ４４ｒ〜４７ｒからのリードリクエストに対する応答速度を速くすることができ、プロッタ５２のラインシンク間に画像データを供給できる。その結果、印刷時の異常画像を回避することができる。
【００７６】
特に、プロッタ５２のラインシンク時間が短い高速の画像形成装置の場合にも、画像データをラインシンク間に供給することができ、印刷時の異常画像の発生を適切に回避することができる。また、プロッタ５２が、ＣＭＹＫの４ドラム間の距離が物理的に離れている機種の場合、ビデオアウトＩ／Ｆ４２の各版用のリードＤＭＡＣ４４ｒ〜４７ｒによる起動タイミングが重なることが無くなり、リードＤＭＡＣ４４ｒ〜４７ｒのリードリクエスト間に他のライトリクエストが割り込む状態が発生しやすくなるが、このような状態を適切に解消することができる。
【００７７】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７８】
本発明は、ＰＣＩｅ等のスプリットトランザクションの伝送路経由で外部メモリへのアクセスを効率的に行うＡＳＩＣ等の半導体集積回路及びメモリアクセス制御方法に利用することができる。
【符号の説明】
【００７９】
１  画像形成装置
２  ＣＰＵチップセット
３  メインメモリ
４  ＡＳＩＣ
５  ＰＣＩｅバス
１１  イーサネットＩ／Ｆ
１２  ＵＳＢ  Ｉ／Ｆ
１３ｒ  リードＤＭＡＣ
１３ｗ  ライトＤＭＡＣ
１４ｒ、１５ｒ  リードＤＭＡＣ
１４ｗ、１５ｗ  ライトＤＭＡＣ
１６  アービタ
１７  ＰＣＩｅエンドポイント
２１  ライトパケットバッファ
２２  ライトパケットサイズ制御回路
２３  リードリクエスト監視回路
２４  レジスタ
ｔｒ  リードリクエスト時間間隔
ｔｐ  効率低下判定時間間隔
３１  イーサネット
３２  パーソナルコンピュータ
４０  ＡＳＩＣ
４１  ビデオインＩ／Ｆ
４２  ビデオアウトＩ／Ｆ
４３ｗ  ライトＤＭＡＣ
４４ｒ〜４７ｒ  リードＤＭＡＣ
５１  スキャナ
５２  プロッタ
６０  画像処理ＡＳＩＣ
６１  圧縮伸長器
６２  回転器
６３  ハードディスク（ＨＤＤ）Ｉ／Ｆ
６４  メモリクリア
６５ｗ  ライトＤＭＡＣ
６５ｒ  リードＤＭＡＣ
６６ｗ  ライトＤＭＡＣ
６６ｒ  リードＤＭＡＣ
６７ｗ  ライトＤＭＡＣ
６７ｒ  リードＤＭＡＣ
６８ｗ  ライトＤＭＡＣ
７１  ハードディスク（ＨＤＤ）
【先行技術文献】
【特許文献】
【００８０】
【特許文献１】特開２００８−２５０９８５号公報
【図１】
2010211349.tif 000003
【図２】
2010211349.tif 000004
【図３】
2010211349.tif 000005
【図４】
2010211349.tif 000006
【図５】
2010211349.tif 000007
【図６】
2010211349.tif 000008
【図７】
2010211349.tif 000009
【図８】
2010211349.tif 000010
【図９】
2010211349.tif 000011
【図１０】
2010211349.tif 000012
【図１１】
2010211349.tif 000013
【図１２】
2010211349.tif 000014