(57)【要約】【課題】メモリ上の或る特定の領域又は特定の箇所へのメモリアクセスに対して割り込みを発生させて、より多様な割り込み処理を行うことのできるメモリアービタを有する画像処理装置を提供すること。【解決手段】入力される画像データをＣＰＵを介さずにメモリ５に受け渡しを行うＤＭＡコントローラ４と、外部設置されたＣＰＵとメモリ５に接続されたメモリアービタ３と、を備えた半導体集積回路であって、メモリアービタ３は、メモリ上の特定領域をアドレスで指定するレジスタを設け、ＤＭＡコントローラ４からの画像データのライトアクセスが特定領域へのアクセスであるときに、メモリアービタ３はレジスタの指定アドレスを参照して割り込みを発生させＣＰＵに通知すること。レジスタの指定アドレスは、画像データの書き込みを禁止する領域のスタートアドレスとエンドアドレスである構成とする。【選択図】図１
2006011645.tif 000002
【特許請求の範囲】
【請求項１】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、
前記メモリアービタは、前記メモリ上の特定領域をアドレスで指定するレジスタを設け、
前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記特定領域へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項２】
請求項１において、
前記レジスタの指定アドレスは、画像データの書き込みを禁止する領域のスタートアドレスとエンドアドレスである
ことを特徴とする半導体集積回路。
【請求項３】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、
前記メモリアービタは、前記メモリ上の周期的な特定の箇所をアドレスで指定するレジスタを設け、
前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的特定箇所へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項４】
請求項３において、
前記レジスタの指定アドレスは、上位ビットをマスクするマスクアドレスレジスタによる下位ビットのアドレスである
ことを特徴とする半導体集積回路。
【請求項５】
請求項３又は４において、
前記メモリはデュアルポートを有するメモリであり、前記画像データのライトとリードを前記デュアルポートを通して同時並行で実施する
ことを特徴とする半導体集積回路。
【請求項６】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、
前記メモリはデュアルポートを有するメモリであり、
前記メモリアービタは、前記メモリ上の周期的な特定の箇所をアドレスで指定するレジスタを設け、
さらに、前記メモリアービタは、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的特定箇所へアクセスした回数をカウントし、前記カウント回数が指定回数に達したときに、前記メモリアービタは割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項７】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、
前記メモリはデュアルポートを有してリングバッファとして使用するメモリであり、
前記メモリアービタは、前記メモリ上の周期的な特定の箇所をアドレスで指定するレジスタを設け、
さらに、前記メモリアービタは、前記メモリへのリードアクセスが前記周期的特定箇所へアクセスした回数をカウントし、前記カウント回数が指定回数に達したときに、前記メモリアービタは割り込みを発生させ前記ＣＰＵに通知し、
前記ＣＰＵからの指示で前記指定回数に達したメモリ領域に前記画像データを書き込む
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等からの画像データをメモリにライト又はリードする際に、メモリアクセスに対して割り込みを発生させるメモリ調停機能を備えた半導体集積回路に関する。
【背景技術】
【０００２】
スキャナ等のエンジンから送られてきた画像データについて、メモリ空間の或る特定の領域であるバッファ１とバッファ２（スタートアドレスとエンドアドレスとがバッファ１と２とでそれぞれを指定されている）に記憶する際に、メモリへのライトアクセスでバッファ１のエンドアドレスに達するとこれを検知して、割り込みを発生してＣＰＵに通知し、ＣＰＵは割り込みによってＤＭＡＣを起動してバッファ１の読み出しを行うとともにバッファ２へのライトアクセスをバッファ２のスタートアドレスから始めるという手法が従来から提案されている（例えば、特許文献１を参照）。
【０００３】
また、複数ソースからのアクセスに対してＤＭＡ同士で調停を行った上でメモリバスを専有する権利を得たＤＭＡリクエストと、ＣＰＵリクエストとを調停するものにおいて、ＣＰＵリクエストがどの外部メモリにアクセスしたかにより分割し、分割したＣＰＵリクエストのそれぞれに対して、同時に入力されるＤＭＡリクエストに対する優先順位付けを行うことで、効率的なメモリバスの使用を可能とするような技術が提案されています（例えば、特許文献２を参照）。
【特許文献１】特開２００３−２８３７１０
【特許文献２】特開２００１−５１９４３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に示すような従来技術においては、メモリ空間内のバッファ１とバッファ２をトグルで使用するために、バッファの最終アドレスへのライトアクセスを要因として割り込みを発生させていて、割り込み発生の要因がバッファのトグル使用態様に限られていた。さらに、特許文献１においては、ライトアクセスがあった場合に、ＣＰＵからのアクセスであるかスキャナからの直接のメモリアクセスかに関わらず、割り込みを発生させていたが、バッファのトグル回数を用いて原稿の読み取りライン数を決定する手法を採用しているので、ＣＰＵからのアクセスに対してもトグル回数をカウントしてしまうと、原稿のライン数を誤って計算してしまうという不具合があった。
【０００５】
また、特許文献２に示すような従来技術においては、ＣＰＵリクエストとＤＭＡリクエストの同時発生時に、正常なプリントデータの保障ができなくなるようなオーバーランの発生防止を発明課題とするものであり、ＣＰＵリクエストとＤＭＡリクエストのそれぞれのアクセスをカウントしてアクセスの優先順位付けを調停していて、メモリへのアクセスにおける割り込みの発生という観点とは異なるものである。
【０００６】
本発明の目的は、メモリ上の或る特定の箇所または特定の領域へのメモリアクセスに対して割り込みを発生させて、より多様な割り込み処理を行うことのできるメモリアービタを含めた画像処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明は主として次のような構成を採用する。  
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、前記メモリアービタは、前記メモリ上の特定領域をアドレスで指定するレジスタを設け、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記特定領域へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する構成とする。
【０００８】
また、前記半導体集積回路において、前記レジスタの指定アドレスは、画像データの書き込みを禁止する領域のスタートアドレスとエンドアドレスである構成とする。
【０００９】
また、入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、各種Ｉ／Ｆと、を備えた半導体集積回路であって、前記メモリアービタは、前記メモリ上の周期的な特定の箇所をアドレスで指定するレジスタを設け、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的特定箇所へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する構成とする。
【００１０】
また、前記半導体集積回路において、前記メモリはデュアルポートを有するメモリであり、前記画像データのライトとリードを前記デュアルポートを通して同時並行で実施する構成とする。
【発明の効果】
【００１１】
本発明によれば、メモリへのデータ転送において、メモリアービタに各種レジスタを設定してＤＭＡＣからのアクセス要求のアクセスを監視することによって、より多様な割り込みを発生させることができる。
【００１２】
また、メモリにライト又はリードする際に、メモリアービタによる割り込みの発生とＣＰＵによるＤＭＡＣの起動とによって、上書き禁止領域にデータを書き込むことを無くすることができる。
【００１３】
また、２ポートメモリを用いてライトとリードとの同時並行的な動作を実施する上で、一定量のデータ転送毎に割り込みを発生させてその都度リードＤＭＡＣを起動させてリードすることによって、データの処理速度を高めるとともにメモリの利用効率を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態に係る半導体集積回路について、図１〜図５を参照しながら以下詳細に説明する。図１は本発明の実施形態に係る半導体集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｏｉｎ  Ｓｐｅｃｉｆｉｅｄ  Ｉ．Ｃ．）の内部構成と外部構成を示すブロック図である。図２は本実施形態に係る半導体集積回路に接続されるメモリ空間の構成例を示す図である。図３は本実施形態に係る半導体集積回路内のメモリアービタに存する各種レジスタを示す図である。図４はデュアルポートを有するＲＡＭなどにおけるメモリ空間の構成例と割り込み発生を示す図である。図５はデュアルポートを有するＲＡＭなどにおけるメモリ空間の他の構成例と割り込み発生を示す図である。
【００１５】
ここで、１は汎用バス（ＰＣＩバスなど）、２は割り込み信号、３はメモリアービタ、４はＤＭＡコントローラ（Ｄｙｎａｍｉｃ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ：ＤＭＡＣ）、５はメモリデバイス（ＳＤＲＡＭなど）、６は画像処理装置であるＡＳＩＣ、７はスタートアドレスレジスタで設定したアドレス、８はエンドアドレスレジスタで設定したアドレス、９はアクセスを監視する領域、をそれぞれ表す。なお、メモリアービタ３には、アクセス監視領域設定用のスタートアドレスレジスタ、エンドアドレスレジスタ、エラーステータスレジスタ、マスクアドレスレジスタを内蔵している。
【００１６】
図１において、スキャナなどのエンジンからの画像データは、ＰＣＩバスなどの汎用バスを通してＡＳＩＣで構成される画像処理装置６に送られ、メモリ５にライトされる。また、メモリからのデータがリードされてＡＳＩＣ６を介しプロッタに出力される。さらに、ＡＳＩＣ６はメモリ５からデータをリードしてＨＤＤやＳＤカードに格納する。ＡＳＩＣ６は、各種レジスタを有してメモリ５へのアクセスを調停するメモリアービタ３と、外部装置であるスキャナやプロッタ、ＨＤＤやＳＤカード等とのインタフェースであるＰＣＩＩ／Ｆ、ＨＤＤＩ／Ｆ、ＳＤＩ／Ｆと、各Ｉ／Ｆとメモリアービタ３との間でデータを授受するリードＤＭＡＣ及びライトＤＭＡＣ４と、メモリ５からリードしたデータに圧縮、伸長処理を施す圧縮伸長器（圧縮されたデータは符号データとして再びメモリ５に記憶されても良く、この圧縮伸長器は必ずしも必須要素ではない）と、を備えている。また、メモリ５にアクセスしてライト又はリードの処理の最中に別の処理を行わせるように、メモリアービタ３が割り込み信号２を発生してこれをＣＰＵに通知するようになっている。なお、割り込み信号２を受けたＣＰＵは適宜のＤＭＡＣを起動して所要の処理を実行させる。
【００１７】
図２はメモリ５におけるメモリ空間を示し、このメモリ空間には、アクセスを監視する領域９として、例えば、ディザ処理のためのテーブルを示すルックアップテーブル領域（画像処理を実施するためのテーブル領域）がスタートアドレス（ＳＡ１）とエンドアドレス（ＥＡ１）で指定されて領域が確保されている。同様に、例えば、ＤＭＡＣへの指示内容であるスタートアドレス、ライン数、画像種類（符号データ等）が書き込まれたディスクリプタデータ領域９がスタートアドレス（ＳＡ２）とエンドアドレス（ＥＡ２）で指定されて領域が確保されていて、スキャナ等のエンジンからの画像データについて書き込み禁止したいデータ領域であることを示している。なお、割り込み発生を通知されたＣＰＵによって起動されたＤＭＡＣは（ＣＰＵは割り込みによってＤＭＡＣを起動する）、ＤＭＡＣへの指示内容（例えば、スタートアドレス、ライン数など）を記載したディスクリプタ領域にアクセスして読み出しを行いその指示内容にしたがってデータをメモリに転送する。
【００１８】
図１に示すメモリアービタ３には、メモリ５への上述した書き込み禁止のスタートアドレスやエンドアドレスを設定するスタートアドレスレジスタとエンドアドレスレジスタが備わっており、図２に示す符号７は、メモリアービタ内のスタートアドレスレジスタで設定したアドレスであり、符号８はメモリアービタ内のエンドアドレスレジスタで設定したアドレスである。すなわち、メモリアービタ３は、アクセス監視領域用のスタートアドレスレジスタ、エンドアドレスレジスタの他に、マスクアドレスレジスタやエラーステータスレジスタを内蔵している。ここで、メモリアービタ３は、スタートアドレスレジスタで設定したメモリ５への書き込み禁止のスタートアドレスと、スキャナからの読み出しデータをＤＭＡＣによるライトの指定アドレスとを監視して、このライト指定アドレスがスタートアドレスに達したときに、メモリアービタ３は割り込み２を発生してＣＰＵに通知して、その後の処理によって（後述する）、スキャナからの画像データをルックアップテーブル領域（当該領域のデータ保護のため）に上書きすることを禁止している。
【００１９】
このように、メモリアービタには上書き禁止領域の監視機能とエラー情報の保持機能（例えば、割り込み２を発生した要因となったエラーの内容）を備えているものである。そして、図２に示すように、スキャナからの画像データ（ＡＳＩＣの外部から送られてきたデータに限らず、ＡＳＩＣ内部の圧縮伸長器からのデータでも良い）がメモリ空間の空いた箇所から順に記憶されてＳＡ１（図２参照）に達すると、割り込みを発生してＣＰＵに通知し、この通知によってＣＰＵはメモリアービタのエラーレジスタ（上書きのエラービットのフラグが立っているか否か）をリードして、ルックアップテーブルへの上書きを検知することとなる。そうした場合に、ＣＰＵは、ディスクリプタデータ領域の、例えばＤＭＡＣへの指示内容であるスタートアドレスをリードして上書きしないように当該アドレスをソフトウェアにより更新する。更新した指示内容に基づいてＤＭＡＣはデータライトすることで監視領域への上書きを防ぐことができる。監視領域であるルックアップテーブル領域やディスクリプタデータ領域へのＤＭＡＣによるデータ上書きは禁止するが、ＣＰＵによる更新はメモリアービタの機能で可能となっている。
【００２０】
図３はメモリアービタ３におけるマスクアドレスレジスタを説明する図であり、メモリアービタ３は、スタートアドレスレジスタ、エンドアドレスレジスタに加えて、マスクアドレスレジスタを有している。マスクアドレスレジスタで指定した値により、３２ｂｉｔのアドレスにおける上位アドレスを任意にマスクすることができ、図３の例示では、上位１６ｂｉｔをマスクする設定になっており、当該マスクアドレスレジスタで設定したアドレスとアクセス要求されたアドレスとを比較する対象のアドレスは下位の１６ｂｉｔとなる。
【００２１】
メモリアービタ３は、各ＤＭＡＣ及びＣＰＵからのアクセス要求のアドレスを見張っていて、すなわち、マスクアドレスレジスタでマスクされていない下位１６ｂｉｔを比較対象として、それらのアドレスが等しくなったときに割り込み信号２を発生する。図３のマスクアドレスレジスタのマスク設定の場合、ＤＭＡＣからの要求アドレスはインクリメントされていくので、スタートアドレスからエンドアドレスの範囲において、一定のデータ転送毎（図示の設定例では２５６Ｂｙｔｅ毎）に、下位１６ｂｉｔが０ｘ００００になり割り込みが発生するという構成例となっている。換言すると、マスクアドレスレジスタで設定したアドレスとＤＭＡＣからの要求アドレスとを、マスクしたあとの有効アドレス部分においてアドレスが等しくなるとき割り込みを発生させる。例えば、マスクアドレスレジスタを上位２３ｂｉｔマスクするように設定すれば、図４に示すように５１２Ｂｙｔｅの転送ごとに割り込みを発生させる。
【００２２】
図４にはデュアルポートを備えたＲＡＭなどのメモリ空間において、デュアルポートを用いてライトとリードを同時並行的に行う動作態様を示したものであり、ライト領域を先頭アドレス（スタートアドレスＳＡ）と最終アドレス（エンドアドレスＥＡ）でまず指定する。さらに、メモリアービタ３内のマスクアドレスレジスタで上位の任意のｂｉｔをマスクして下位の任意数のアドレスが一致する都度に、すなわち、一定量のデータ転送毎に、例えば図４で５１２Ｂｙｔｅ毎のデータ量に対応するアドレスがライトＤＭＡＣから現出する毎に（ライトＤＭＡＣからのアドレスとマスクアドレスの下位数ｂｉｔを比較して一致する毎に）、メモリアービタは割り込みを発生してＣＰＵに通知する。
【００２３】
割り込みを通知されたＣＰＵはメモリアービタのレジスタをリードしてメモリへの一定量のデータ書き込みがあったことを検知して、適宜のリードＤＭＡＣを起動する。図４の例では、５１２Ｂｙｔｅ毎のライトに達したときにリードＤＭＡＣを起動してＨＤＤやＳＤカードにリードデータを転送する。ここで、５１２Ｂｙｔｅの一定量データはＨＤＤやＳＤカードが取り扱うデータの単位量（セクタ単位）である。このように、メモリへのライトとリードを同時並行して行うことにより、データの処理速度を高めるとともにメモリの利用効率を向上させることになる。また、図４の動作説明で、メモリにライトしたデータをリードしてＨＤＤやＳＤカードに書き込むことについて述べたが、これに限らず、メモリへの一定量のデータ転送があった場合に、リードＤＭＡＣでリードして圧縮処理を施し符号データに変換して、メモリの他の領域に書き戻すようにしても良い。
【００２４】
図５はメモリアービタの内部にカウンタを備え、図４に示すメモリへの一定量のデータ書き込み（一定量のメモリアクセス）が指定した回数Ｎに達すると割り込みを発生する場合の例である。ＨＤＤへ１回のアクセスで一度に書き込むデータ量はセクタ数（例えば、２５６セクタ）で規定されているので、このデータ量のアクセスで割り込みを発生させ、ＣＰＵによるリードＤＭＡＣを起動してＨＤＤにデータ転送する。すなわち、セクタの概念をもつＨＤＤ等のデータを扱う際に、（セクタサイズ×Ｎ）の単位で定期的に割り込みを発生させるものである。
【００２５】
また、メモリをリングバッファとして使用する場合、一定量のデータ書き込みが指定回数Ｎに達し、その指定回数Ｎ分のデータについてリードが完了したことを検知して割り込みを発生させ、この割り込みによってＣＰＵはＤＭＡＣを起動して当該指定回数Ｎ分の領域に新たなデータを書き込むようにする。指定回数分のデータの読み出しが完了していない段階で当該領域に新たなデータを書き込むと旧データを破壊してしますことが発生し得るからである。この場合においては、割り込み発生の要因はリードの完了である。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る半導体集積回路の内部構成と外部構成を示すブロック図である。
【図２】本実施形態に係る半導体集積回路に接続されるメモリ空間の構成例を示す図である。
【図３】本実施形態に係る半導体集積回路内のメモリアービタに存する各種レジスタを示す図である。
【図４】デュアルポートを有するＲＡＭなどにおけるメモリ空間の構成例と割り込み発生を示す図である。
【図５】デュアルポートを有するＲＡＭなどにおけるメモリ空間の他の構成例と割り込み発生を示す図である。
【符号の説明】
【００２７】
１  汎用バス（ＰＣＩバスなど）
２  割り込み信号
３  メモリアービタ
４  ＤＭＡコントローラ
５  メモリデバイス（ＳＤＲＡＭなど）
６  ＡＳＩＣ（画像処理装置）
７  スタートアドレスレジスタで設定したアドレス
８  エンドアドレスレジスタで設定したアドレス
９  アクセスを監視する領域
【図１】
2006011645.tif 000003
【図２】
2006011645.tif 000004
【図３】
2006011645.tif 000005
【図４】
2006011645.tif 000006
【図５】
2006011645.tif 000007
【手続補正書】
【提出日】平成17年6月20日(2005.6.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、
前記メモリアービタは、前記メモリ上の特定領域をアドレスで指定するレジスタを設け、
前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記特定領域へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項２】
請求項１において、
前記レジスタの指定アドレスは、画像データの書き込みを禁止する領域のスタートアドレスとエンドアドレスである
ことを特徴とする半導体集積回路。
【請求項３】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、
前記メモリアービタは、前記メモリ上の周期的な繰り返し箇所をアドレスで指定するマスクアドレスレジスタを設け、
前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的繰り返し箇所へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項４】
請求項３において、
前記レジスタの指定アドレスは、上位ビットをマスクするマスクアドレスレジスタによる下位ビットのアドレスである
ことを特徴とする半導体集積回路。
【請求項５】
請求項３又は４において、
前記メモリはデュアルポートを有するメモリであり、前記画像データのライトとリードを前記デュアルポートを通して同時並行で実施する
ことを特徴とする半導体集積回路。
【請求項６】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、
前記メモリはデュアルポートを有するメモリであり、
前記メモリアービタは、前記メモリ上の周期的な繰り返し箇所をアドレスで指定するマスクアドレスレジスタを設け、
さらに、前記メモリアービタは、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的繰り返し箇所へアクセスした回数をカウントし、前記カウント回数が指定回数に達したときに、前記メモリアービタは割り込みを発生させ前記ＣＰＵに通知する
ことを特徴とする半導体集積回路。
【請求項７】
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、
前記メモリはデュアルポートを有してリングバッファとして使用するメモリであり、
前記メモリアービタは、前記メモリ上の周期的な繰り返し箇所をアドレスで指定するレジスタを設け、
さらに、前記メモリアービタは、前記メモリへのリードアクセスが前記周期的繰り返し箇所へアクセスした回数をカウントし、前記カウント回数が指定回数に達したときに、前記メモリアービタは割り込みを発生させ前記ＣＰＵに通知し、
前記ＣＰＵからの指示で前記指定回数に達したメモリ領域に前記画像データを書き込む
ことを特徴とする半導体集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等からの画像データをメモリにライト又はリードする際に、メモリアクセスに対して割り込みを発生させるメモリ調停機能を備えた半導体集積回路に関する。
【背景技術】
【０００２】
スキャナ等のエンジンから送られてきた画像データについて、メモリ空間の或る特定の領域であるバッファ１とバッファ２（スタートアドレスとエンドアドレスとがバッファ１と２とでそれぞれを指定されている）に記憶する際に、メモリへのライトアクセスでバッファ１のエンドアドレスに達するとこれを検知して、割り込みを発生してＣＰＵに通知し、ＣＰＵは割り込みによってＤＭＡＣを起動してバッファ１の読み出しを行うとともにバッファ２へのライトアクセスをバッファ２のスタートアドレスから始めるという手法が従来から提案されている（例えば、特許文献１を参照）。
【０００３】
また、複数ソースからのアクセスに対してＤＭＡＣ同士で調停を行った上でメモリバスを専有する権利を得たＤＭＡリクエストと、ＣＰＵリクエストとを調停するものにおいて、ＣＰＵリクエストがどの外部メモリにアクセスしたかにより分割し、分割したＣＰＵリクエストのそれぞれに対して、同時に入力されるＤＭＡリクエストに対する優先順位付けを行うことで、効率的なメモリバスの使用を可能とするような技術が提案されている（例えば、特許文献２を参照）。
【特許文献１】特開２００３−２８３７１０
【特許文献２】特開２００１−５１９４３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に示すような従来技術においては、メモリ空間内のバッファ１とバッファ２をトグルで使用するために、バッファの最終アドレスへのライトアクセスを要因として割り込みを発生させていて、割り込み発生の要因がバッファのトグル使用態様に限られていた。さらに、特許文献１においては、ライトアクセスがあった場合に、ＣＰＵからのアクセスであるかスキャナからの直接のメモリアクセスかに関わらず、割り込みを発生させていたが、バッファのトグル回数を用いて原稿の読み取りライン数を決定する手法を採用しているので、ＣＰＵからのアクセスに対してもトグル回数をカウントしてしまうと、原稿のライン数を誤って計算してしまうという不具合があった。
【０００５】
また、特許文献２に示すような従来技術は、ＣＰＵリクエストとＤＭＡリクエストの同時発生時に、正常なプリントデータの保障ができなくなるようなオーバーランの発生防止を発明課題としており、ＣＰＵリクエストとＤＭＡリクエストのそれぞれのアクセスをカウントしてアクセスの優先順位付けを調停しているものであり、メモリへのアクセスにおける割り込みの発生という観点とは異なるものである。
【０００６】
本発明の目的は、メモリ上の或る特定の箇所または特定の領域へのメモリアクセスに対して割り込みを発生させて、より多様な割り込み処理を行うことのできるメモリアービタを含めた半導体集積回路を提供することにある。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明は主として次のような構成を採用する。  
入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、前記メモリアービタは、前記メモリ上の特定領域をアドレスで指定するレジスタを設け、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記特定領域へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する構成とする。
【０００８】
また、前記半導体集積回路において、前記レジスタの指定アドレスは、画像データの書き込みを禁止する領域のスタートアドレスとエンドアドレスである構成とする。
【０００９】
また、入力される画像データをＣＰＵを介さずにメモリに受け渡しを行うＤＭＡコントローラと、外部設置されたＣＰＵとメモリに接続されたメモリアービタと、を備えた半導体集積回路であって、前記メモリアービタは、前記メモリ上の周期的な繰り返し箇所をアドレスで指定するレジスタを設け、前記ＤＭＡコントローラからの前記画像データのライトアクセスが前記周期的繰り返し箇所へのアクセスであるときに、前記メモリアービタは前記レジスタの指定アドレスを参照して割り込みを発生させ前記ＣＰＵに通知する構成とする。
【００１０】
また、前記半導体集積回路において、前記メモリはデュアルポートを有するメモリであり、前記画像データのライトとリードを前記デュアルポートを通して同時並行で実施する構成とする。
【発明の効果】
【００１１】
本発明によれば、メモリへのデータ転送において、メモリアービタに各種レジスタを設定してＤＭＡＣからのアクセス要求のアクセスを監視することによって、より多様な割り込みを発生させることができる。
【００１２】
また、メモリにライト又はリードする際に、メモリアービタによる割り込みの発生とＣＰＵによるＤＭＡＣの起動とによって、上書き禁止領域にデータを書き込むことを無くすることができる。
【００１３】
また、デュアルポートメモリを用いてライトとリードとの同時並行的な動作を実施する上で、一定量のデータ転送毎に割り込みを発生させてその都度リードＤＭＡＣを起動させてリードすることによって、データの処理速度を高めるとともにメモリの利用効率を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態に係る半導体集積回路について、図１〜図５を参照しながら以下詳細に説明する。図１は本発明の実施形態に係る半導体集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｏｉｎ  Ｓｐｅｃｉｆｉｅｄ  Ｉ．Ｃ．）の内部構成とこれに接続される外部構成を示すブロック図である。図２は本実施形態に係る半導体集積回路に接続されるメモリ空間の構成例を示す図である。図３は本実施形態に係る半導体集積回路内のメモリアービタに存する各種レジスタを示す図である。図４はデュアルポートを有するＲＡＭなどにおけるメモリ空間の構成例と割り込み発生を示す図である。図５はデュアルポートを有するＲＡＭなどにおけるメモリ空間の他の構成例と割り込み発生を示す図である。
【００１５】
ここで、１は汎用バス（ＰＣＩバスなど）、２は割り込み信号、３はメモリアービタ、４はＤＭＡコントローラ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ：ＤＭＡＣ）、５はメモリデバイス（ＳＤＲＡＭなど）、６は少なくともメモリアービタ３やＤＭＡＣ４を含むＡＳＩＣ、７はスタートアドレスレジスタで設定したアドレス、８はエンドアドレスレジスタで設定したアドレス、９はアクセスを監視する領域の内のルックアップテーブル領域、１０アクセスを監視する領域の内のディスクリプタデータ領域、をそれぞれ表す。なお、メモリアービタ３には、アクセス監視領域設定用のスタートアドレスレジスタ、エンドアドレスレジスタ、エラーステータスレジスタ、マスクアドレスレジスタを内蔵している。
【００１６】
図１において、スキャナなどのエンジンからの画像データは、ＰＣＩバスなどの汎用バス１を通して、少なくともＤＭＡＣ４やメモリアービタ３を含むＡＳＩＣ６に送られ、メモリ５にライトされる。また、メモリ５からのデータがリードされてＡＳＩＣ６を介しプロッタに出力される。さらに、ＡＳＩＣ６はメモリ５からデータをリードしてＨＤＤやＳＤカードに格納する。ＡＳＩＣ６は、各種レジスタを有してメモリ５へのアクセスを調停するメモリアービタ３と、外部装置であるスキャナやプロッタ、ＨＤＤやＳＤカード等とのインタフェースであるＰＣＩＩ／Ｆ、ＨＤＤＩ／Ｆ、ＳＤＩ／Ｆと、各Ｉ／Ｆとメモリアービタ３との間でデータを授受するリードＤＭＡＣ及びライトＤＭＡＣ４と、メモリ５からリードしたデータに圧縮、伸長処理を施す圧縮伸長器（圧縮されたデータは符号データとして再びメモリ５に記憶されても良く、この圧縮伸長器は必ずしも必須要素ではない）と、を備えている。また、メモリ５にアクセスしてライト又はリードの処理の最中に別の処理を行わせるように、メモリアービタ３が割り込み信号２を発生してこれをＣＰＵに通知するようになっている。なお、割り込み信号２を受けたＣＰＵは適宜のＤＭＡＣ４を起動して所要の処理を実行させる。
【００１７】
図２はメモリ５におけるメモリ空間を示し、このメモリ空間には、アクセスを監視する領域として、例えば、ディザ処理のためのテーブルを示すルックアップテーブル領域９（画像処理を実施するためのテーブル領域）がスタートアドレス（ＳＡ１）７とエンドアドレス（ＥＡ１）８で指定されて領域が確保されている。同様に、例えば、ＤＭＡＣ４への指示内容であるスタートアドレス、ライン数、画像種類（符号データ等）が書き込まれたディスクリプタデータ領域１０がスタートアドレス（ＳＡ２）７とエンドアドレス（ＥＡ２）８で指定されて領域が確保されていて、スキャナ等のエンジンからの画像データについて書き込み禁止したいデータ領域であることを示している。なお、割り込み発生を通知されたＣＰＵによって起動されたＤＭＡＣ４は（ＣＰＵは割り込みによってＤＭＡＣ４を起動する）、ＤＭＡＣ４への指示内容（例えば、スタートアドレス、ライン数など）を記載したディスクリプタデータ領域１０にアクセスして読み出しを行いその指示内容にしたがってデータをメモリに転送する。
【００１８】
図１に示すメモリアービタ３には、図３に示すように、メモリ５への上述した書き込み禁止のスタートアドレス７やエンドアドレス８を設定するスタートアドレスレジスタとエンドアドレスレジスタが備わっており、図２に示す符号７は、メモリアービタ３内のスタートアドレスレジスタで設定したアドレスであり、符号８はメモリアービタ３内のエンドアドレスレジスタで設定したアドレスである。すなわち、メモリアービタ３は、アクセス監視領域用のスタートアドレスレジスタ、エンドアドレスレジスタの他に、マスクアドレスレジスタやエラーステータスレジスタを内蔵している。ここで、メモリアービタ３は、スタートアドレスレジスタで設定したメモリ５への書き込み禁止のスタートアドレス７と、スキャナからの読み出しデータをＤＭＡＣ４によるライトの指定アドレスとを監視して、このライト指定アドレスがスタートアドレス７に達したときに、メモリアービタ３は割り込み信号２を発生してＣＰＵに通知して、その後の処理によって（後述する）、スキャナからの画像データをルックアップテーブル領域９（当該領域のデータ保護のため）に上書きすることを禁止している。
【００１９】
このように、メモリアービタ３には上書き禁止領域の監視機能とエラー情報の保持機能（例えば、割り込み信号２を発生した要因となったエラーの内容）を備えているものである。そして、図２に示すように、スキャナからの画像データ（ＡＳＩＣ６の外部から送られてきたデータに限らず、ＡＳＩＣ６内部の圧縮伸長器からのデータでも良い）がメモリ空間の空いた箇所から順に記憶されてＳＡ１（７）（図２参照）に達すると、割り込み信号２を発生してＣＰＵに通知し、この通知によってＣＰＵはメモリアービタ３のエラーレジスタ（上書きのエラービットのフラグが立っているか否か）をリードして、ルックアップテーブル領域９への上書きを検知することとなる。そうした場合に、ＣＰＵは、ディスクリプタデータ領域１０の、例えばＤＭＡＣ４への指示内容であるスタートアドレス７をリードして上書きしないように当該アドレスをソフトウェアにより更新する（画像データをメモリ５に記憶するライトアドレスをＣＰＵが更新する）。更新した指示内容に基づいてＤＭＡＣ４はデータライトすることで監視領域への上書きを防ぐことができる。監視領域であるルックアップテーブル領域９やディスクリプタデータ領域１０へのＤＭＡＣ４によるデータ上書きは禁止するが、ＣＰＵによる更新はメモリアービタ３の機能で可能となっている。
【００２０】
図３はメモリアービタ３におけるマスクアドレスレジスタを説明する図であり、メモリアービタ３は、スタートアドレスレジスタ、エンドアドレスレジスタに加えて、マスクアドレスレジスタを有している。マスクアドレスレジスタで指定した値により、３２ｂｉｔのアドレスにおける上位アドレスを任意にマスクすることができ、図３の例示では、上位１６ｂｉｔをマスクする設定になっており、当該マスクアドレスレジスタで設定したアドレスとアクセス要求されたアドレスとを比較する対象のアドレスは下位の１６ｂｉｔとなる。このマスクアドレスレジスタは、メモリ上の周期的な繰り返し箇所をアドレスで指定するものである。
【００２１】
メモリアービタ３は、各ＤＭＡＣ４及びＣＰＵからのアクセス要求のアドレスを見張っていて、すなわち、マスクアドレスレジスタでマスクされていない下位１６ｂｉｔを比較対象として、それらのアドレスが等しくなったときに割り込み信号２を発生する。図３のマスクアドレスレジスタのマスク設定の場合、ＤＭＡＣ４からの要求アドレスはインクリメントされていくので、スタートアドレスからエンドアドレスの範囲において、一定のデータ転送毎（図示の設定例では２５６Ｂｙｔｅ毎）に、下位１６ｂｉｔが０ｘ００００になり割り込みが発生するという構成例となっている。換言すると、マスクアドレスレジスタで設定したアドレスとＤＭＡＣ４からの要求アドレスとを、マスクしたあとの有効アドレス部分においてアドレスが等しくなるとき割り込み信号２を発生させる。例えば、マスクアドレスレジスタを上位２３ｂｉｔマスクするように設定すれば（下位９ｂｉｔを比較対象）、図４に示すように５１２Ｂｙｔｅの転送ごとに割り込み信号２を発生させる。
【００２２】
図４にはデュアルポートを備えたＲＡＭなどのメモリ空間において、デュアルポートを用いてライトとリードを同時並行的に行う動作態様を示したものであり、ライト領域を先頭アドレス（スタートアドレスＳＡ）と最終アドレス（エンドアドレスＥＡ）でまず指定する。さらに、メモリアービタ３内のマスクアドレスレジスタで上位の任意のｂｉｔをマスクして下位の任意数のアドレスが一致する都度に、すなわち、一定量のデータ転送毎に、例えば図４で５１２Ｂｙｔｅ毎のデータ量に対応するアドレスがライトＤＭＡＣ（図４に図示）から現出する毎に（ライトＤＭＡＣからのアドレスとマスクアドレスの下位数ｂｉｔを比較して一致する毎に）、メモリアービタ３は割り込み信号２を発生してＣＰＵに通知する。
【００２３】
割り込みを通知されたＣＰＵはメモリアービタ３のレジスタをリードしてメモリへの一定量のデータ書き込みがあったことを検知して、適宜のリードＤＭＡＣ（図４に図示）を起動する。図４の例では、５１２Ｂｙｔｅ毎のライトに達したときにリードＤＭＡＣを起動してＨＤＤやＳＤカードにリードデータを転送する。ここで、５１２Ｂｙｔｅの一定量データはＨＤＤやＳＤカードが取り扱うデータの単位量（セクタ単位）である。このように、メモリ５へのライトとリードを同時並行して行うことにより、データの処理速度を高めるとともにメモリ５の利用効率を向上させることになる。また、図４の動作説明で、メモリ５にライトしたデータをリードしてＨＤＤやＳＤカードに書き込むことについて述べたが、これに限らず、メモリ５への一定量のデータ転送があった場合に、リードＤＭＡＣでリードして圧縮処理を施し符号データに変換して、メモリの他の領域に書き戻すようにしても良い。
【００２４】
図５はメモリアービタ３の内部にカウンタを備え、図４に示すメモリ５への一定量のデータ書き込み（一定量のメモリアクセス）が指定した回数Ｎに達すると割り込み信号２を発生する場合の例である。ＨＤＤへ１回のアクセスで一度に書き込むデータ量はセクタ数（例えば、２５６セクタ）で規定されているので、このデータ量のアクセスで割り込みを発生させ、ＣＰＵによるリードＤＭＡＣを起動してＨＤＤにデータ転送する。すなわち、セクタの概念をもつＨＤＤ等のデータを扱う際に、（セクタサイズ×Ｎ）の単位で定期的に割り込みを発生させるものである。
【００２５】
また、メモリ５をリングバッファとして使用する場合、一定量のデータ書き込みが指定回数Ｎに達し、その指定回数Ｎ分のデータについてリードが完了したことを検知して割り込み信号２を発生させ、この割り込み信号２によってＣＰＵはＤＭＡＣ４を起動して当該指定回数Ｎ分の領域に新たなデータを書き込むようにする。指定回数分のデータの読み出しが完了していない段階で当該領域に新たなデータを書き込むと旧データを破壊してしまうことが発生し得るからである。この場合においては、割り込み発生の要因はリードの完了である。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る半導体集積回路の内部構成とこれに接続される外部構成を示すブロック図である。
【図２】本実施形態に係る半導体集積回路に接続されるメモリ空間の構成例を示す図である。
【図３】本実施形態に係る半導体集積回路内のメモリアービタに存する各種レジスタを示す図である。
【図４】デュアルポートを有するＲＡＭなどにおけるメモリ空間の構成例と割り込み発生を示す図である。
【図５】デュアルポートを有するＲＡＭなどにおけるメモリ空間の他の構成例と割り込み発生を示す図である。
【符号の説明】
【００２７】
１  汎用バス（ＰＣＩバスなど）
２  割り込み信号
３  メモリアービタ
４  ＤＭＡコントローラ
５  メモリデバイス（ＳＤＲＡＭなど）
６  ＡＳＩＣ（半導体集積回路）
７  スタートアドレスレジスタで設定したアドレス
８  エンドアドレスレジスタで設定したアドレス
９  アクセスを監視する領域の内のルックアップテーブル領域
１０  アクセスを監視する領域の内のディスクリプタデータ領域