JP4039302B2 - メモリコントローラ、及び、プリンタ - Google Patents
メモリコントローラ、及び、プリンタ Download PDFInfo
- Publication number
- JP4039302B2 JP4039302B2 JP2003111337A JP2003111337A JP4039302B2 JP 4039302 B2 JP4039302 B2 JP 4039302B2 JP 2003111337 A JP2003111337 A JP 2003111337A JP 2003111337 A JP2003111337 A JP 2003111337A JP 4039302 B2 JP4039302 B2 JP 4039302B2
- Authority
- JP
- Japan
- Prior art keywords
- priority
- access
- access request
- period
- bank
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Storing Facsimile Image Data (AREA)
Description
【発明の属する技術分野】
本発明は、メモリコントローラ及びプリンタに関し、特に、メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリをコントロールするメモリコントローラ、及び、そのようなメモリを有するプリンタに関する。
【0002】
【従来の技術】
プリンタに搭載されるRAM(Random Access Memory)の一種類として、SDRAM(Synchronous DRAM)がある。このSDRAMが搭載されたプリンタにおいては、CPU(Central Processing Unit)やASCI(Application Specific IC)が、メモリコントローラを介してSDRAMにアクセスを行い、SDRAMからデータを読み出したり、SDRAMにデータを書き込んだりする。このようなSDRAMを搭載したプリンタは、例えば、特許文献1にも開示されている。
【0003】
【特許文献1】
特願2002−290404号
【0004】
【発明が解決しようとする課題】
しかしながら、SDRAMはメモリ領域が複数のバンクに分かれて構成されており、同一バンクに連続してアクセスするには、所定時間以上、間隔をあけなければならないという制約がある。例えば、図11に示すように、バンク1に対するリードアクセス(動作期間)に3サイクル必要であり、同一バンクに対するアクセスが2サイクル禁止(禁止期間)されるSDRAMを想定する。
【0005】
この場合、バンク1に対してリードアクセスした後は、動作期間が経過した後でも、少なくとも2サイクル経過後でなければ、バンク1に再びアクセスすることができない。しかし、SDRAMにおいては、このバンク1以外の他のバンクには、動作期間さえ経過していれば、禁止期間経過後でなくともアクセスすることができる。例えば、バンク1にアクセスした後、バンク2にアクセスする場合には、バンク1へのアクセスが終了した直後にアクセスすることが可能である。
【0006】
このような制約のため、これまでのプリンタにおいては、同一バンクに連続したアクセスがあった場合には、その禁止期間の経過を待って、再度、同一バンクにアクセスをしていた。このため、SDRAMを有効に活用しきれていないとともに、処理時間がその分長くなっているという問題があった。
【0007】
そこで本発明は、前記課題に鑑みてなされたものであり、同一バンクにアクセスする際に禁止期間のあるメモリを有効に活用し、処理時間の短縮を図れるメモリコントローラを提供することを目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するため、本発明に係るメモリコントローラは、
メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリに対するアクセスをコントロールするメモリコントローラであって、
複数の処理から前記メモリに対するアクセス要求を受け付ける、アクセス要求受付手段と、
前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択する、第1選択手段と、
前記第1選択手段で選択されたアクセス要求によりアクセスしようとしているバンクを特定し、そのバンクが禁止期間であるか否かを判断する、禁止期間判断手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間でないと判断した場合には、第1選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第1アクセス手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、前記アクセス要求受付手段で受け付けた他のアクセス要求の中から、最も優先順位の高いものを選択する、第2選択手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、第2選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第2アクセス手段と、
アクセス要求を当該メモリコントローラに送信する各処理の優先順位を動的に保持する、第1優先順位テーブルと、
前記メモリにアクセスした場合に、特定の処理については、前記第1優先順位テーブルにおける優先順位を移動せず、前記特定の処理以外の処理については、動作期間と禁止期間とを合わせた期間だけ、前記第1優先順位テーブルにおけるそのアクセス要求を送信した処理の優先順位を最下位に移動する、第1優先順位テーブル変更手段と、
を備えることを特徴とする。
【0009】
この場合、前記第2選択手段は、前記第1優先順位テーブルを参照して、前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択するようにしてもよい。
【0010】
また、アクセス要求を当該メモリコントローラに送信する各処理の優先順位を固定的に保持する、第2優先順位テーブルをさらに備えるようにしてもよい。
【0011】
この場合、前記第1選択手段は、前記第2優先順位テーブルを参照して、前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択するようにしてもよい。
【0012】
本発明に係るプリンタは、
メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリと、
前記メモリに対するアクセスをコントロールするメモリコントローラとを有するプリンタであって、
前記メモリコントローラは、
複数の処理から前記メモリに対するアクセス要求を受け付ける、アクセス要求受付手段と、
前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択する、第1選択手段と、
前記第1選択手段で選択されたアクセス要求によりアクセスしようとしているバンクを特定し、そのバンクが禁止期間であるか否かを判断する、禁止期間判断手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間でないと判断した場合には、第1選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第1アクセス手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、前記アクセス要求受付手段で受け付けた他のアクセス要求の中から、最も優先順位の高いものを選択する、第2選択手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、第2選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第2アクセス手段と、
アクセス要求を当該メモリコントローラに送信する各処理の優先順位を動的に保持する、第1優先順位テーブルと、
前記メモリにアクセスした場合に、特定の処理については、前記第1優先順位テーブルにおける優先順位を移動せず、前記特定の処理以外の処理については、動作期間と禁止期間とを合わせた期間だけ、前記第1優先順位テーブルにおけるそのアクセス要求を送信した処理の優先順位を最下位に移動する、第1優先順位テーブル変更手段と、
を備えることを特徴とする。
【0016】
【発明の実施の形態】
本実施形態に係るプリンタは、メモリ領域が複数のバンクに区分されたローカルSDRAMに対して、同一バンクに連続したアクセス要求があった場合には、その処理を後回しにして、優先順位の最も高い他の処理のアクセス要求を先に処理するようにしたものである。そして、これにより、ローカルSDRAMをアクセスする必要のある処理の全体的な速度を向上させたものである。より詳しくを、以下に説明する。
【0017】
図1は、本実施形態に係るプリンタの制御部の構造を説明するブロック図である。この図1に示すように、本実施形態に係るプリンタの制御部は、制御用LSI10により構成されている。
【0018】
制御用LSI10は、システム・オン・チップと呼ばれ、1つのチップの中にCPUとASICとその周辺回路が形成されている。本実施形態においては、制御用LSI10は、CPU20と、ASIC30と、印刷エンジン40と、SDRAMコントローラ50と、スキャナコントローラ60と、インターフェース70、80を備えて構成されている。
【0019】
CPU20は、インターフェース70を介して、SDRAMコントローラ50に接続されており、このSDRAMコントローラ50を介して、この制御用LSI10の外部に設けられているローカルSDRAM100にアクセスする。本実施形態においては、CPU20とインターフェース70との間は、32ビットバスで接続されており、インターフェース70とSDRAMコントローラ50との間は、128ビットバスで接続されている。このため、インターフェース70は、バス速度の違いを吸収して、CPU20とSDRAMコントローラ50とが適切に接続されるように制御する。
【0020】
また、CPU20は、CPU専用のCPU用SDRAM110にも、接続されている。CPU20が、ローカルSDRAM100にアクセスするか、それとも、CPU用SDRAM110にアクセスするかは、処理の内容により定まっている。
【0021】
さらに、CPU20は、インターフェース70、80を介して、ASIC30に接続されている。ASIC30では、複数の処理が、ハードウェアを用いて実現されている。詳しくは後述するが、本実施形態においては、ASIC30により、JPEG解凍処理と、リサイズ処理と、色変換処理と、並べ替え処理と、ヘッドコントロール処理などの処理が、実現されている。
【0022】
ASIC30は、印刷エンジン40を介して、モータ駆動部120とヘッド駆動部130とを制御することにより、印刷の実行を管理する。また、ASIC30は、SDRAMコントローラ50に接続されており、このSDRAMコントローラ50を介して、ローカルSDRAM100にアクセスする。
【0023】
ASIC60は、スキャナコントローラ60にも接続されている。スキャナコントローラ60は、スキャナ140の動作を制御する。すなわち、本実施形態に係るプリンタは、プリンタ機能とスキャナ機能とを有するマルチファンクションプリンタである。このスキャナコントローラ60も、SDRAMコントローラ50に接続されており、このSDRAMコントローラ50を介して、ローカルSDRAM100にアクセスする。
【0024】
図2は、このプリンタで印刷処理を行う場合のASIC30とローカルSDRAM100との間のデータの流れを説明する図である。この図2に示すように、本実施形態に係るASIC30では、少なくとも、JPEG解凍処理P1と、リサイズ処理P2と、色変換処理P3と、並べ替え処理P4と、ヘッドコントロール処理P5とを、ハードウェア的に実現している。また、本実施形態においては、これらの各処理の起動と終了は、CPU20により管理されている。
【0025】
図2に示すように、CPU20は、ハードディスクやメモリカードから、デジタルカメラ等で撮像した画像データを取り込んで、ローカルSDRAM100に格納する。この図2の例では、画像データは、JPEG圧縮されており、JPEGデータD1として格納される。
【0026】
この状態で、CPU20がJPEG解凍処理P1を起動すると、このJPEG解凍処理P1は、ローカルSDRAM100からJPEGデータD1を読み出して、解凍処理を行い、RGBデータを生成する。そして、JPEG解凍処理P1は、このRGBデータD2をローカルSDRAM100に格納する。
【0027】
この状態で、CPU20がリサイズ処理P2を起動すると、このリサイズ処理P2は、ローカルSDRAM100からRGBデータD2を読み出して、リサイズ(サイズの調整)を行い、リサイズ後のRGBデータD3を、ローカルSDRAM100に格納する。
【0028】
この状態で、CPU20が色変換処理P3を起動すると、この色変換処理P3は、リサイズ後のRGBデータD3をローカルSDRAM100から読み出して、色変換処理を行い、CMYK(シアン、マゼンタ、イエロー、ブラック)の印刷2値データD6に変換する。色変換処理P3では、この色変換の処理において、必要に応じて、ローカルSDRAM100に格納されているルックアップテーブルD4を参照する。また、色変換処理P3は、色変換の処理をしている間に必要となるワークエリアを、色変換誤差バッファD5として、ローカルSDRAM100に確保している。そして、色変換処理P3は、生成された印刷2値データD6を、ローカルSDRAM100に格納する。
【0029】
この状態で、CPU20が並べ替え処理P4を起動すると、この並べ替え処理P4は、印刷2値データD6をローカルSDRAM100から読み出して、印刷ヘッドのインクノズルの並びに合わせてデータの順番の並べ替えを行い、ヘッドイメージデータD7を生成する。そして、並べ替え処理P4は、このヘッドイメージデータD7を、ローカルSDRAM100に格納する。このヘッドイメージデータD7を格納する領域は、一般に、ヘッドイメージバッファと呼ばれている。
【0030】
この状態で、CPU20がヘッドコントロール処理P5を起動すると、このヘッドコントロール処理P5は、ローカルSDRAM100からヘッドイメージデータD7を読み出して、印刷ヘッドへ転送する。具体的には、印刷ヘッドに設けられているRAMに、このヘッドイメージデータD7を転送する。印刷ヘッドは、このRAMからヘッドイメージデータD7を読み出して、印刷を行うこととなる。
【0031】
以上のような流れで、印刷が実行されるが、これらの各処理P1〜P5は、CPU20からの起動指令により並列に起動され、実行され得る。すなわち、1つの画像データを印刷する際には、その画像データが複数に分割されて、各処理P1〜P5が実行され、その際には、異なる処理がASIC30内で並列に実行される。例えば、JPEG解凍処理P1が実行されている間に、色変換処理P3が並列に実行されるなどである。このため、ローカルSDRAM100へのアクセスが各処理P1〜P5の間で競合する場合もあり得る。例えば、JPEG解凍処理P1がローカルSDRAM100からJPEGデータD1を読み出している間に、色変換処理P3がRGBデータD3を読み出そうとする場合もある。このような場合の調停も、SDRAMコントローラ50が行う。
【0032】
図3は、本実施形態に係るローカルSDRAM100のバンク構成を示す図である。この図3に示すように、本実施形態に係るローカルSDRAM100は、バンク1〜バンク4の4つのバンクで構成されている。上述したように、ローカルSDRAM100においては、同一バンクに連続してアクセスする場合には、禁止期間経過後でなければならないという制約がある。本実施形態では、この制約を加味して、各処理P1〜P5のローカルSDRAM100に対するアクセスの優先順位を決定する。
【0033】
図4は、本実施形態に係る各処理P1〜P5の優先順位に関する優先順位テーブルTB10の一例を示す図である。この優先順位テーブルTB10は、禁止期間内に同一バンクへのアクセスがあった場合に、SDRAMコントローラ50が参照するテーブルである。
【0034】
この図4に示すように、本実施形態では、各処理P1〜P5のリードとライトは、別々に優先順位が定められている。これは、同じ処理でも、SDRAM100に対するリードとライトでは、優先順位が異なるためである。
【0035】
本実施形態では、最も高い優先順位に、ヘッドコントロール処理P5のリードが割り当てられている。これは、ヘッドコントロール処理P5により印刷ヘッドを駆動した印刷が一旦開始されると、途中で印刷ヘッドを止めることができないため、ヘッドイメージデータD7は最優先で印刷ヘッドに転送する必要があるからである。このため、ヘッドコントロール処理P5のリードの優先順位は、最も高い優先順位に固定されている。
【0036】
このヘッドコントロール処理P5のリードの次の優先順位に、JPEG解凍処理P1のリードが割り当てられており、次にリサイズ処理P2のリードが割り当てられており、次にJPEG解凍処理P1のリードが割り当てられている。このように、各処理のリードとライトにそれぞれ優先順位が割り当てられている。
【0037】
ヘッドコントロール処理P5のリード以外の処理は、1回、SDRAM100へのアクセスする権利が割り当てられると、割り当てられた処理と同じバンクの処理の優先順位が最下位に移動する。例えば、JPEG解凍処理P1のリード処理に、SDRAM100をアクセスする権利が与えられると、動作期間(3サイクル)に、禁止期間(2サイクル)を加えた5サイクルの期間だけ、同じバンクの処理の優先順位が最下位に移動する。そして、5サイクルの期間経過後に、元の優先順位の位置に戻る。
【0038】
したがって、この5サイクルの間に、例えばJPEG解凍処理P1が今アクセスしているバンクと同じバンクをアクセスしようとした場合には、JPEG解凍処理P1のアクセスの優先順位は最下位に移動しているため、SDRAM100へのアクセス要求がある処理の中で最も優先順位の高い処理に、SDRAM100へアクセスする権利が与えられることとなる。
【0039】
図5は、本実施形態に係る各処理P1〜P5の優先順位に関する優先順位初期テーブルTB20の一例を示す図である。この優先順位初期テーブルTB20は、このプリンタに予め登録されている各処理P1〜P5の優先順位を固定的に保持しているテーブルである。したがって、この優先順位初期テーブルTB20は、このプリンタの電源がオフにされても保持される。この優先順位初期テーブルTB20は、SDRAM100への禁止期間内での同一バンクに対するアクセスではない場合に、参照されるテーブルである。
【0040】
この図5に示すように、本実施形態に係る優先順位初期テーブルTB20では、最も高い優先順位に、ヘッドコントロール処理P5のリードが割り当てられており、次の優先順位に、JPEG解凍処理P1のリードが割り当てられており、次にリサイズ処理P2のリードが割り当てられており、次にJPEG解凍処理P1のリードが割り当てられている。優先順位初期テーブルTB20においては、これらの優先順位は固定的なものであり変動しない。
【0041】
これら図4に示した優先順位テーブルTB10と図5に示した優先順位初期テーブルTB20は、優先順位判定回路32に形成され、保持されている。
【0042】
図6は、本実施形態に係るSDRAMコントローラ50において、ローカルSDRAM100へのアクセスと関連する回路部分を示すブロック図である。この図6に示すように、本実施形態に係るSDRAMコントローラ50は、少なくとも、優先順位判定回路32とSDRAMコマンド生成回路34とを備えている。
【0043】
優先順位判定回路32には、CPU20及びASIC30から、様々な処理のアクセス要求が入力される。すなわち、SDRAM100からデータを読み出す要求や、SDRAM100にデータを書き込む要求が、CPU20とASCI30の双方から入力される。優先順位判定回路32は、入力されたアクセス要求に応じて、SDRAMコマンド生成回路34に、必要なコマンドを生成してローカルSDRAM100に送信するように指示する。
【0044】
また、複数の処理からローカルSDRAM100へのアクセス要求を受け付けた場合は、優先順位判定回路32は、優先順位テーブルTB10を参照して、その優先順位に従って、SDRAM100へのアクセス要求を実行する処理を選択する。さらに、選択した処理のアクセス要求が、禁止期間内にあるバンクへのアクセス要求である場合には、優先順位判定回路32は、優先順位初期テーブルTB20を参照して、アクセス要求を実行する別の処理を選択する。
【0045】
SDRAMコマンド生成回路34は、優先順位判定回路32からのコマンド生成要求に基づいて、コマンドを生成し、ローカルSDRAM100に送信する。また、SDRAMコマンド生成回路34からローカルSDRAM100に送信される情報のうち、実行バンク情報とリード/ライト情報とは、優先順位判定回路32にフィードバックされる。優先順位判定回路32は、このフィードバックされた情報に基づいて、優先順位テーブルTB10における各処理の優先順位を動的に変更していく。
【0046】
図7は、優先順位判定回路32で実行される優先順位テーブル動的変更処理の内容を説明するフローチャートを示す図である。この優先順位テーブル動的変更処理は、SDRAMコマンド生成回路34からローカルSDRAM100にコマンドが送信された際に、起動され実行される処理である。この優先順位テーブル動的変更処理により、優先順位テーブルTB10の優先順位を動的に変更する。
【0047】
この図7に示すように、本実施形態に係る優先順位テーブル動的変更処理では、まず、SDRAMコマンド生成回路34から実行バンク情報を取得する(ステップS10)。本実施形態においては、SDRAMコマンド生成回路34からローカルSDRAM100に送信するアドレスのうち、下位2ビットが、この実行バンク情報に相当している。すなわち、本実施形態においては、ローカルSDRAM100は4つのバンクで構成されているので、アドレスの下位2ビットで1つのバンクを特定するのである。なお、アドレスの上位2ビットでなく、下位2ビットでバンクを特定することとしたのは、1つの処理で連続的にSDRAM100をアクセスする場合には、連続したアドレスであることが多いが、その際には異なるバンクが順次アクセスされるようにして、禁止期間の経過を待つ必要が生じないようにするためである。
【0048】
次に、優先順位テーブル動的変更処理は、SDRAMコマンド生成回路34から、リード/ライト情報を取得する(ステップS12)。次に、優先順位テーブル動的変更処理は、ローカルSDRAM100へのアクセスが、ヘッドコントロール処理P5のリード処理によるものであるかどうかを判断する(ステップS14)。ローカルSDRAM100へのアクセスがヘッドコントロール処理P5のリード処理によるものであると判断した場合(ステップS14:Yes)には、優先順位テーブルTB10の優先順位を変更することなく、この処理を終了する。
【0049】
一方、ローカルSDRAM100へのアクセスがヘッドコントロール処理P5のリード処理によるものでないと判断した場合(ステップS14:No)には、SDRAM100へのアクセスを実行している処理の優先順位を、優先順位テーブルTB10の最下位に移動する(ステップS16)。そして、優先順位テーブル動的変更処理は、優先順位を移動した処理の動作期間と禁止期間とが経過した後に、その優先順位を元の位置に戻す(ステップS18)。例えば、動作期間が3サイクルで、禁止期間が2サイクルである場合には、5サイクル経過後に、優先順位を移動した処理を、元の優先順位に戻す。これにより、この処理を終了する。
【0050】
図8乃至図10は、優先順位判定回路32で実行される優先順位判定処理の内容を説明するフローチャートを示す図である。この優先順位判定処理は、定常的に実行される処理である。この優先順位判定処理により、SDRAM100へのアクセスが実現される。
【0051】
図8に示すように、優先順位判定処理では、まず、未処理のアクセス要求が存在するかどうかが判断される(ステップS30)。すなわち、優先順位判定回路32には、CPU30及びASIC30の各種の処理から、SDRAM100へのアクセス要求(書き込み要求、読み出し要求)が入力される。このため、優先順位判定処理では、以下に述べる処理により優先順位にしたがって、SDRAM100へのアクセスを調停する。
【0052】
すなわち、優先順位判定処理では、まず優先順位初期テーブルTB20を参照し、未処理のアクセス要求の中から、最も高い優先順位の処理を選択する(ステップS32)。
【0053】
次に、優先順位判定処理は、ステップS32で選択した処理を実行すると、禁止期間内における同一バンクへのアクセスになるかどうかを判断する(ステップS34)。具体的には、選択した処理のSDRAMにアクセスするアドレスの下位2ビットで特定されるバンクが、禁止期間内にあるかどうかを判断する。
【0054】
選択した処理のアクセスが禁止期間内における同一バンクへのアクセスである場合(ステップS34:Yes)には、優先順位テーブルTB10を参照し、最も高い優先順位の他の処理を再度選択する(ステップS36)。このステップS36の後、又は、上述したステップ34で禁止期間内における同一バンクへのアクセスでないと判断した場合(ステップS34:No)には、最終的に選択された処理が書き込み処理であるか、読み出し処理であるかを判断する(ステップS38)。
【0055】
選択された処理が書き込み処理である場合(ステップS38:Yes)には、図9に示すように、この選択された処理に対して、アクノーレッジ信号(ACK信号)を返信する(ステップS50)。
【0056】
次に、優先順位判定処理は、選択された処理から送信されたSDRAM100の書き込み用のアドレスと、書き込み用のデータとを取り込む(ステップS52)。
【0057】
次に、優先順位判定処理は、ウエイトカウンタCTW(X)が0であるかどうかを判断する(ステップS54)。ここで、本実施形態に係る優先順位判定処理では、書き込み用のウエイトカウンタCTW(1)〜CTW(4)と、読み出し用のウエイトカウンタCTR(1)〜CTR(4)とが設けられている。また、変数Xは、アクセスするバンクを示している。
【0058】
後述するように、ウエイトカウンタCTW(1)〜CTW(4)は、それぞれ、バンク1〜バンク4に再び書き込みアクセスできるまでのサイクル数をカウントするための変数であり、ウエイトカウンタCTR(1)〜CTR(4)は、それぞれ、バンク1〜バンク4に再び読み出しアクセスできるまでのサイクル数をカウントするための変数である。これらの変数は、1サイクル経過毎に1ずつ減少し、0になれば、該当するバンクは、書き込みアクセスや読み出しアクセスができる状態であることを示している。なお、書き込みアクセスと読み出しアクセスとを別々の変数にしているのは、再度アクセスできるまでの待ち時間が、次のアクセスが書き込みアクセスである場合と、次のアクセスが読み出しアクセスである場合とで、異なっているからである。
【0059】
ウエイトカウンタCTW(X)が0でない場合(ステップS54:No)には、1サイクルだけ待って(ステップS56)、再びステップS54の処理を繰り返す。一方、ウエイトカウンタCTW(X)が0である場合(ステップS54:Yes)には、SDRAMコマンド生成回路34に、書き込みをするアドレスと、書き込みするデータとを送信する(ステップS58)。これにより、SDRAMコマンド生成回路34は、ローカルSDRAM100に対する書き込みコマンドを生成し、この書き込みコマンドと書き込みアドレスと書き込みデータとをSDRAM100に送信する。この結果、SDRAM100に対する書き込みが実行される。
【0060】
次に、優先順位判定処理は、ウエイトカウンタCTW(X)、CTR(X)の設定を行う(ステップS60)。例えば、バンク1に書き込みアクセスをした場合には、ウエイトカウンタCTW(1)を5に設定し、ウエイトカウンタCTR(1)を4に設定する。そして、上述したステップS30の処理に戻る。
【0061】
これに対して、上述した図8のステップS38で、選択された処理が書き込み処理でないと判断された場合(ステップS38:No)、つまり、選択された処理が読み出し処理である場合には、図10に示すように、選択された処理に対して、リードアクノーレッジ信号(RACK信号)を返信する(ステップS70)。
【0062】
次に、優先順位判定処理は、選択された処理から送信されたSDRAM100の読み出し用のアドレスを取り込む(ステップS72)。続いて、優先順位判定処理は、ウエイトカウンタCTR(X)が0であるかどうかを判断する(ステップS74)。
【0063】
ウエイトカウンタCTR(X)が0でない場合(ステップS74:No)には、1サイクルだけ待って(ステップS76)、再びステップS74の処理を繰り返す。一方、ウエイトカウンタCTR(X)が0である場合(ステップS74:Yes)には、SDRAMコマンド生成回路34に、読み出しをするアドレスを送信する(ステップS78)。これにより、SDRAMコマンド生成回路34は、ローカルSDRAM100に対する読み出しコマンドを生成し、この読み出しコマンドと読み出しアドレスとをSDRAM100に送信する。この結果、SDRAM100に対する読み出しが実行される。
【0064】
次に、優先順位判定処理は、ウエイトカウンタCTW(X)、CTR(X)の設定を行う(ステップS80)。例えば、バンク1に読み出しアクセスをした場合には、ウエイトカウンタCTW(1)を5に設定し、ウエイトカウンタCTR(1)を4に設定する。
【0065】
SDRAMコマンド生成回路34は、SDRAM100から読み出したデータを、SDRAMコマンド生成回路34の所定の領域に格納するので、優先順位判定処理は、この格納されたデータを取り込んで、優先順位判定回路32の所定の領域に格納する(ステップS82)。
【0066】
次に、優先順位判定処理は、この読み出し処理を要求した処理に対して、アクノーレッジ信号(ACK信号)を返信する(ステップS84)。このアクノーレッジ信号を受信したCPU20又はASIC30の処理は、優先順位判定回路32に格納されているデータを取り込むことにより、SDRAM100からの読み出しが実現できたこととなる。このステップS84の後、上述したステップS30の処理に戻る。
【0067】
以上のように、本実施形態に係るプリンタによれば、SDRAM100へのアクセスにあたり、アクセスの禁止期間内に同一バンクへのアクセス要求があった場合には、SDRAM100へのアクセスを要求している他の処理を優先してSDRAM100へアクセスする権利を認めることとしたので、SDRAM100へのアクセスを効率的に制御することができる。このため、SDRAM100への全体的なアクセス時間を短くすることができる。
【0068】
また、リアルタイム性が強く要求されるヘッドコントロール処理P5のリード処理に関しては、最優先にSDRAM100へのアクセスを認めるようにしたので、SDRAM100へのアクセスの優先順位を動的に変更したとしても、プリンタの動作に何ら問題が生じないようにすることができる。
【0069】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、本発明は、SDRAM以外のメモリをコントロールするメモリコントローラにも適用することができる。すなわち、メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリに対するアクセスをコントロールするメモリコントローラであれば、本発明を適用することができる。
【0070】
また、本発明の適用されたメモリコントローラは、プリンタ以外の他の機器にも同様に使用することができる。また、上述したハードウェアによる処理はソフトウェアによる処理に置き換えることが可能であり、上述したソフトウェアによる処理はハードウェアによる処理に置き換えることが可能である。
【0071】
【発明の効果】
以上説明したように、本発明によれば、同一バンクにアクセスする際に禁止期間のあるメモリを有効に活用し、全体的な処理時間の短縮を図ることができる。
【図面の簡単な説明】
【図1】本実施形態に係るプリンタの制御部の構成を説明するブロック図である。
【図2】本実施形態に係るプリンタで印刷処理をする場合のデータの流れの代表例を示す図である。
【図3】本実施形態に係るローカルSDRAMのバンク構成を示す図である。
【図4】本実施形態に係る優先順位テーブルの一例を示す図である。
【図5】本実施形態に係る優先順位初期テーブルの一例を示す図である。
【図6】本実施形態に係るSDRAMコントローラにおいて、ローカルSDRAMへのアクセスと関連する回路部分を示すブロック図である。
【図7】本実施形態に係る優先順位テーブル動的変更処理の内容を説明するフローチャートを示す図である。
【図8】本実施形態に係る優先順位判定処理の内容を説明するフローチャートを示す図である(その1)。
【図9】本実施形態に係る優先順位判定処理の内容を説明するフローチャートを示す図である(その2)。
【図10】本実施形態に係る優先順位判定処理の内容を説明するフローチャートを示す図である(その3)。
【図11】SDRAMにおける動作期間と禁止期間とを説明する図である。
【符号の説明】
10 制御用LSI
20 CPU
30 ASIC
40 印刷エンジン
50 SDRAMコントローラ
60 スキャナコントローラ
70、80 インターフェース
100 ローカルSDRAM
110 CPU用SDRAM
120 モータ駆動部
130 ヘッド駆動部
140 スキャナ
Claims (5)
- メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリに対するアクセスをコントロールするメモリコントローラであって、
複数の処理から前記メモリに対するアクセス要求を受け付ける、アクセス要求受付手段と、
前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択する、第1選択手段と、
前記第1選択手段で選択されたアクセス要求によりアクセスしようとしているバンクを特定し、そのバンクが禁止期間であるか否かを判断する、禁止期間判断手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間でないと判断した場合には、第1選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第1アクセス手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、前記アクセス要求受付手段で受け付けた他のアクセス要求の中から、最も優先順位の高いものを選択する、第2選択手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、第2選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第2アクセス手段と、
アクセス要求を当該メモリコントローラに送信する各処理の優先順位を動的に保持する、第1優先順位テーブルと、
前記メモリにアクセスした場合に、特定の処理については、前記第1優先順位テーブルにおける優先順位を移動せず、前記特定の処理以外の処理については、動作期間と禁止期間とを合わせた期間だけ、前記第1優先順位テーブルにおけるそのアクセス要求を送信した処理の優先順位を最下位に移動する、第1優先順位テーブル変更手段と、
を備えることを特徴とするメモリコントローラ。 - 前記第2選択手段は、前記第1優先順位テーブルを参照して、前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択することを特徴とする請求項1に記載のメモリコントローラ。
- アクセス要求を当該メモリコントローラに送信する各処理の優先順位を固定的に保持する、第2優先順位テーブルをさらに備えることを特徴とする請求項1又は請求項2に記載のメモリコントローラ。
- 前記第1選択手段は、前記第2優先順位テーブルを参照して、前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択することを特徴とする請求項3に記載のメモリコントローラ。
- メモリ領域が複数のバンクに区分され、ある1つのバンクにアクセスした場合には、そのアクセス動作に要する期間である動作期間を経過した後でも、所定の時間だけ、そのバンクに再びアクセスするのが禁止される禁止期間を有するメモリと、
前記メモリに対するアクセスをコントロールするメモリコントローラとを有するプリンタであって、
前記メモリコントローラは、
複数の処理から前記メモリに対するアクセス要求を受け付ける、アクセス要求受付手段と、
前記アクセス要求受付手段で受け付けたアクセス要求の中から、最も優先順位の高いものを選択する、第1選択手段と、
前記第1選択手段で選択されたアクセス要求によりアクセスしようとしているバンクを特定し、そのバンクが禁止期間であるか否かを判断する、禁止期間判断手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間でないと判断した場合には、第1選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第1アクセス手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、前記アクセス要求受付手段で受け付けた他のアクセス要求の中から、最も優先順位の高いものを選択する、第2選択手段と、
前記禁止期間判断手段で、アクセスしようとしているバンクが禁止期間であると判断した場合には、第2選択手段で選択されたアクセス要求に基づいてメモリをアクセスする、第2アクセス手段と、
アクセス要求を当該メモリコントローラに送信する各処理の優先順位を動的に保持する、第1優先順位テーブルと、
前記メモリにアクセスした場合に、特定の処理については、前記第1優先順位テーブルにおける優先順位を移動せず、前記特定の処理以外の処理については、動作期間と禁止期間とを合わせた期間だけ、前記第1優先順位テーブルにおけるそのアクセス要求を送信した処理の優先順位を最下位に移動する、第1優先順位テーブル変更手段と、
を備えることを特徴とするプリンタ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111337A JP4039302B2 (ja) | 2003-04-16 | 2003-04-16 | メモリコントローラ、及び、プリンタ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111337A JP4039302B2 (ja) | 2003-04-16 | 2003-04-16 | メモリコントローラ、及び、プリンタ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004318476A JP2004318476A (ja) | 2004-11-11 |
JP4039302B2 true JP4039302B2 (ja) | 2008-01-30 |
Family
ID=33471917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003111337A Expired - Fee Related JP4039302B2 (ja) | 2003-04-16 | 2003-04-16 | メモリコントローラ、及び、プリンタ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4039302B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199816A (ja) * | 2006-01-24 | 2007-08-09 | Megachips Lsi Solutions Inc | バンクコントローラ、情報処理装置、撮像装置、および制御方法 |
-
2003
- 2003-04-16 JP JP2003111337A patent/JP4039302B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004318476A (ja) | 2004-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5530901A (en) | Data Transmission processing system having DMA channels running cyclically to execute data transmission from host to memory and from memory to processing unit successively | |
JPH07200386A (ja) | 共有メモリのアクセス制御装置および画像形成装置 | |
JP5108578B2 (ja) | 画像処理コントローラ及び画像形成装置 | |
JP6180398B2 (ja) | メモリーアクセス装置 | |
JP3532318B2 (ja) | プログラム可能な裁定装置 | |
JPH0918618A (ja) | 画像形成装置 | |
JP4039302B2 (ja) | メモリコントローラ、及び、プリンタ | |
US7006258B2 (en) | Image processing apparatus, control method therefor, and image processing system | |
US6122699A (en) | Data processing apparatus with bus intervention means for controlling interconnection of plural busses | |
JP4314559B2 (ja) | プリンタ及びプリンタの制御方法 | |
JP6233287B2 (ja) | メモリーアクセス装置、画像処理装置 | |
JP3714840B2 (ja) | データ転送方法とデータ転送制御装置 | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
US20080028109A1 (en) | Direct memory access control method and direct memory access controller | |
JP4034323B2 (ja) | 画像データ処理方法と画像データ処理装置及び画像形成装置 | |
JP3359977B2 (ja) | 画像形成装置 | |
JP2000099391A (ja) | プリンタ装置およびプリンタ制御方法、並びに記録媒体 | |
JP2008282135A (ja) | 画像処理装置、画像読取り装置、画像形成装置および画像処理方法 | |
JPS6372556A (ja) | 拡大印字方式 | |
JP2006277363A (ja) | 情報転送方式,画像形成装置 | |
JP2001047677A (ja) | プリンタ制御装置 | |
JPH1097433A (ja) | 多機能並行処理型電子装置 | |
JPH09265367A (ja) | プリンタ制御装置およびプリンタ制御方法 | |
JPH09186836A (ja) | ディジタル複写機 | |
JP2004322598A (ja) | プリンタ、及び、情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071016 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071029 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131116 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |