明 細 書
メモリアクセス装置 方法
技術分野
[0001] 本発明は、中央処理装置(CPU : Central Processing Unit、以下、 CPU)等の メモリへの書き込み及び読み出しを行うデバイスを搭載した携帯電話やパーソナルコ ンピュータ等の機器における、メモリへの書き込み処理及び読み出し処理を行うメモ リアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法に関する ものである。
背景技術
[0002] 携帯電話、パーソナルコンピュータ、その他通信、制御など多くの分野の機器にお いては、その内部に CPU等のようなメモリへの書き込み及び読み出しを行うデバイス が使用されている。例えば CPUの場合、演算処理に伴うデータの記憶素子として R AM (Random Access Memory)等のメモリが必須である力 演算処理の高度化 '複雑化に伴い、必要なメモリの容量は増大しつつある。ここで、一般にメモリは容量 が大き 、ものほどデータの読み書き(以下、アクセス)速度が遅!ヽと 、う欠点を有する 。従って機器の全体性能を向上するためには、大きなメモリ容量を保ちつつ、ァクセ スを高速ィ匕することが必要となる。
[0003] メモリのアクセスを高速ィ匕する従来手段として、次の 2つの方法が知られている。ま ず、通常のアクセス対象のメモリは大容量だが低速アクセスしかできないことから、こ れ以外に高速にアクセスできる小容量のメモリ(以下、内部メモリ)を併用する方法( 従来方法 1)がある。従来方法 1では、 CPUは内部メモリへ優先的にアクセスすること で高速ィ匕を図ることができる。例えば、内部メモリの一種であるキャッシュメモリ(以下 、キャッシュ)を使用し、キャッシュコントローラで動作を制御する方法がある。具体的 には CPU力もメモリに書き込む際にはデータを一時的にキャッシュに保存し、キヤッ シュコントローラがアクセス対象のメモリをキャッシュのデータで更新する。反対に CP Uがデータを読み込む際には優先的にキャッシュにアクセスすることで低速なメモリ
へ直接アクセスしな 、で済むため、高速なメモリアクセスが可能となる。
[0004] 一方、メモリ自体に高速アクセスが可能な動作モードを備え、これを優先的に利用 する方法 (従来方法 2)も知られて 、る。従来方法の具体例としては特許文献 1に開 示されており、 RAM自体が元々具備して 、る高速ページモード等の高速アクセスモ ードを効率的に利用する。高速アクセスモードを利用するためにはアクセスするメモリ アドレスが連続している必要がある。特許文献 1では、 CPUがアクセスするアドレスを メモリアクセス装置のノ ッファに蓄積し、蓄積されたアドレスの連続性が損なわれた等 の所定の条件下で高速アクセスモードを使用することとしている。これにより、総合的 に高速なメモリアクセスが可能となる。
[0005] 特許文献 1 :特開平 9 106372号公報 (第 4頁、第 1図)
発明の開示
発明が解決しょうとする課題
[0006] 従来方法 1では、アクセス対象のメモリにキャッシュが対応しな 、領域がある場合、 当該領域に対する高速アクセスを行うことはできな 、。またキャッシュは CPU力ものァ クセスに対してのみ有効であるため、 CPU以外のデバイスからのアクセス時には使 用できない。またキャッシュ方式のうちライトバック方式では、キャッシュにのみデータ を書き込み、特定条件によってメモリにデータを書き込むため、キャッシュとメモリ間の データの整合性を確保するための制御が複雑となり、キャッシュコントローラの回路規 模が大きくなる。またライトスルー方式では、キャッシュとメモリ双方に対する書き込み 処理を完了しな 、と次処理に移行できな 、ため、書き込み処理を高速ィ匕できな 、と いう課題があった。
[0007] 一方、従来方法 2において高速アクセスモードを使用するためには、アクセスするァ ドレスが連続であることが必要である力 アドレスの連続性はプログラムに依存して異 なる。すなわち従来方法 2では常に高速アクセスモードを使用できるとは限らないた め、常に効果を期待できるわけではない。またメモリが高速アクセスモードを備えてい る必要があるため、高速アクセスモードを備えて ヽな 、メモリには適用できな 、と 、う 課題があった。
課題を解決するための手段
[0008] この発明に係るメモリアクセス装置は、デバイスから書き込みアドレス及び書き込み データを受け取りメモリへ書き込みデータを書き込み処理し、デバイス力 読み出し アドレスを受け取りメモリから読み出しデータを読み出し処理してデバイスに読み出し データを送るメモリアクセス装置にぉ 、て、デバイス力 受け取った書き込みアドレス 及び書き込みデータを蓄積する蓄積手段と、メモリへ書き込みデータを書き込み処 理するための第 1の制御信号とメモリからの読み出しデータを読み出し処理するため の第 2の制御信号を作成する制御信号作成手段と、デバイス力 第 1の書き込み命 令を受け取ると前記蓄積手段から第 1の書き込みアドレス及び第 1の書き込みデータ を受け取り、前記制御信号作成手段へ前記第 1の制御信号を作成する指示を与え、 リアルタイムで前記第 1の制御信号によりメモリへ前記第 1の書き込みデータを書き込 み処理するとともにデバイスへ書き込み完了信号を送る書き込み制御部と、デバイス 力 第 1の読み出し命令を受け取るとデバイス力 第 1の読み出しアドレスを受け取り 、前記制御信号作成手段へ前記第 2の制御信号を作成する指示を与え、前記第 2の 制御信号によりリアルタイムでメモリから第 1の読み出しデータを読み出し処理しデバ イスへ送るとともにデバイスへ読み出し完了信号を送る読み出し制御部とを備えたも のである。
[0009] また、この発明に係るメモリアクセス方法は、デバイス力 第 1の書き込み命令を受 け取った場合は、デバイス力 受け取った第 1の書き込みアドレス及び第 1の書き込 みデータを蓄積するステップと、メモリへ書き込みデータを書き込み処理するための 第 1の制御信号を作成するステップと、リアルタイムで前記第 1の制御信号によりメモ リへ前記第 1の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了 信号を送るステップとを備え、デバイス力ゝら第 1の読み出し命令を受け取った場合は、 デバイス力も第 1の読み出しアドレスを受け取るステップと、メモリから読み出しデータ を読み出し処理するための第 2の制御信号を作成するステップと、前記第 2の制御信 号によりリアルタイムでメモリから第 1の読み出しデータを読み出し処理しデバイスへ 送るとともにデバイスへ読み出し完了信号を送るステップとを備えたものである。
[0010] また、この発明に係るメモリアクセス方法は、デバイス力 第 2の書き込み命令を受 け取った場合は、デバイス力 受け取った第 2の書き込みアドレス及び第 2の書き込
みデータを蓄積するステップと、第 1の書き込みデータの書き込み処理を完了した後 に、メモリへ書き込みデータを書き込み処理するための第 1の制御信号を作成するス テツプと、前記第 1の制御信号によりメモリへ前記第 2の書き込みデータを書き込み処 理するとともに当該書き込み処理が完了した力否かに関わらずデバイスへ書き込み 完了信号を送るステップとを備え、デバイス力も第 2の読み出し命令を受け取った場 合は、第 1の書き込みデータの書き込み処理を完了した後に、デバイス力も第 2の読 み出しアドレスを受け取るステップと、メモリから読み出しデータを読み出し処理する ための第 2の制御信号を作成するステップと、前記第 2の制御信号によりリアルタイム でメモリから第 2の読み出しデータを読み出し処理しデバイスへ送るとともにデバイス へ読み出し完了信号を送るステップとを備えたものである。
発明の効果
[0011] この発明によれば、いずれのメモリ領域へのアクセスであるかまたはどのようなメモリ であるかに関わらず、 CPU以外のデバイスからのアクセスであっても、プログラムに依 存したり回路規模を増大したりすることなぐデータの整合性を保ったまま高速ァクセ スが可能なメモリアクセス装置を実現できる。
[0012] また、この発明によれば、 、ずれのメモリ領域へのアクセスである力またはどのような メモリであるかに関わらず、 CPU以外のデバイスからのアクセスであっても、プロダラ ムに依存したり回路規模を増大したりすることなぐ高速アクセスが可能なメモリァクセ ス方法を実現できる。
[0013] また、この発明によれば、 、ずれのメモリ領域へのアクセスであるかに関わらず、 CP U以外のデバイスからのアクセスであっても、データの整合性を保ったまま高速ァク セスが可能なメモリアクセス方法を実現できる。
図面の簡単な説明
[0014] [図 1]この発明の実施の形態 1ないし 5に用いられるメモリアクセス装置を適用した機 器の一部を示すブロック図である。
[図 2]この発明の実施の形態 1及び 2に用いられるメモリアクセス装置を示すブロック 図である。
[図 3]この発明の実施の形態 1に用いられるメモリアクセス装置の書き込み処理に関
する動作を示すフローチャートである。
[図 4]この発明の実施の形態 1に用いられるメモリアクセス装置の読み出し処理に関 する動作を示すフローチャートである。
[図 5]この発明の実施の形態 2に用いられるメモリアクセス装置の書き込み処理に関 する動作を示すフローチャートである。
[図 6]この発明の実施の形態 2に用いられるメモリアクセス装置の読み出し処理に関 する動作を示すフローチャートである。
[図 7]この発明の実施の形態 3に用いられるメモリアクセス装置を示すブロック図であ る。
[図 8]この発明の実施の形態 3に用いられるメモリアクセス装置の書き込み処理に関 する動作を示すフローチャートである。
[図 9]この発明の実施の形態 4に用いられるメモリアクセス装置を示すブロック図であ る。
圆 10]この発明の実施の形態 4に用いられる多段バッファとアドレス監視部の関係を 示す図である。
[図 11]この発明の実施の形態 5に用いられるメモリアクセス装置を示すブロック図であ る。
[図 12]この発明の実施の形態 6に用いられるメモリアクセス機構を示すブロック図であ る。
符号の説明
1 デバイスである CPU
2 メモリアクセス装置
21 バス制御部
211 書き込み制御部である書き込み部
212 読み出し制御部である読み出し部
22 蓄積手段であるシングルバッファ
24 制御信号作成手段である制御信号作成部
25 多段バッファ
26 監視手段であるアドレス監視部
3 メモリ
4 デバイスであるバスマスタ
5 調停器
発明を実施するための最良の形態
[0016] 以下この発明を、その実施の形態を示す図面に基づいて具体的に説明する。なお 実施の形態 1では、この発明に係るメモリアクセス装置を携帯電話端末等の CPUを 搭載した機器へ適用した場合を例にとり説明する。
実施の形態 1.
図 1はこの発明に係るメモリアクセス装置を適用した機器の一部を示すブロック図で ある。デバイスである CPU1からメモリ 3に対するアクセスは、すべてメモリアクセス装 置 2を経由して行われる。 CPU1とメモリアクセス装置 2は、 CPUアドレスバス la及び CPUデータバス lbによって接続されている。また CPU1からは書き込み命令である 書き込み信号 lcまたは読み出し命令である読み出し信号 Idがメモリアクセス装置 2 に送られる。これに対してメモリアクセス装置 2からは書き込み完了信号 2aまたは読 み出し完了信号 2bが CPU1へ送られる。一方、メモリアクセス装置 2とメモリ 3は、メモ リアドレスバス 2c及びメモリデータバス 2dによって接続されて!、る。さらにメモリァクセ ス装置 2からはメモリ制御信号 2eがメモリ 3に送られる。
[0017] 次にメモリアクセス装置 2の動作を 2つの場合に分けて説明する。第 1の場合として 、初期状態すなわちメモリアクセス装置 2が書き込み処理も読み出し処理も行って ヽ ない状態で、 CPU1からメモリ 3にデータを書き込む場合の動作を説明する。この場 合、図 1において CPU1は第 1の書き込み命令である書き込み信号 lcをメモリァクセ ス装置 2に送るとともに、第 1の書き込みアドレスである書き込みアドレス及び第 1の書 き込みデータである書き込みデータを、それぞれ CPUアドレスバス la及び CPUデー タバス lbを介してメモリアクセス装置 2に出力する。このとき、 CPU1は書き込み信号 lcと読み出し信号 Idを同時に送ることがないように制御する。すなわちメモリアクセス 装置 2に対して、 CPU1から書き込みと読み出しの命令が同時に行われることはない
[0018] 図 2はメモリアクセス装置 2を示すブロック図であり、 CPUアドレスバス la及び CPU データバス lbは、バス制御部 21の読み出し制御部である読み出し部 212と蓄積手 段であるシングルバッファ 22の双方と接続される。またシングルバッファ 22とバス制 御部 21の書き込み制御部である書き込み部 211は、バッファアドレスバス 22a及び ノ ッファデータバス 22bで接続される。さらに読み出し部 212とインタフェース部 23は 、読み出しアドレスバス 21a及び読み出しデータノ ス 21bで、また書き込み部 211とィ ンタフェース部 23は、書き込みアドレスバス 21c及び書き込みデータバス 21dで接続 される。なお制御信号作成手段である制御信号作成部 24は、バス制御部 21からの 信号に基づき第 1の制御信号である書き込み制御信号 24aまたは第 2の制御信号で ある読み出し制御信号 24bを作成する。
[0019] 図 2において、 CPU1から送られた書き込み信号 lcは、バス制御部 21の書き込み 部 211に渡される。書き込み部 211は書き込み信号 lcを受け取ると、シングルバッフ ァ 22に書き込みアドレス及び書き込みデータが蓄積されて 、るか否かを、バッファ状 態信号 22cに基づき判断する。シングルバッファ 22は書き込みアドレスと書き込みデ ータをそれぞれ 1個ずつ保持することができ、例えば 1段のファイフォ(FIFO: First— in First— out)で構成される。ファイフォはデータの蓄積量を表す信号としてフルフ ラグを出力し、蓄積量が一杯 (Full)であればフルフラグが H論理となる力 それ以外 では L論理となる。従ってバッファ状態信号 22cとしてフルフラグを用いれば、書き込 み部 211からファイフォへ特に要求をしなくても、ファイフォの蓄積状況を判断できる
[0020] すなわち 1段のファイフォの場合、フルフラグ力 論理であれば書き込みアドレス及 び書き込みデータが蓄積されて ヽな 、が、フルフラグが H論理であれば書き込みアド レス及び書き込みデータが蓄積されて ヽると判断できる。初期状態では未だ書き込 み処理は行われて 、な 、ため、書き込みアドレス及び書き込みデータは蓄積されて おらず、フルフラグは L論理である。すると書き込み部 211は以前の書き込み処理は 完了して!/ヽると判断し、 CPU 1から送られた書き込みアドレス及び書き込みデータを 蓄積する蓄積命令をバッファ制御信号 21eによりシングルバッファ 22へ送る。この蓄 積命令に基づき、シングルバッファ 22は CPU1から送られた書き込みアドレス及び書
き込みデータを蓄積する。シングルバッファがファイフォの場合、書き込みアドレスと 書き込みデータが蓄積されたことでフルフラグは H論理に変化する。
[0021] 書き込み部 211は、書き込みアドレス及び書き込みデータをシングルバッファ 22に 蓄積すると、メモリ 3への書き込み処理の完了を待たずに CPU1へ書き込み完了信 号 2aを送る。 CPU1は書き込み完了信号 2aを受け取ると、メモリ 3への書き込みが完 了したと判断するので、次処理に移行することができる。
[0022] 一方、書き込み部 211は制御信号作成部 24に対して、書き込み制御信号 24aの 生成信号 21fを送る。制御信号作成部 24は書き込み制御信号 24aの生成信号 21f を受け取ると、チップセレクトやライトイネーブル等、メモリ 3への書き込み処理に必要 な書き込み制御信号 24aを作成し、インタフェース部 23に送る。書き込み制御信号 2 4aは、アクセス対象のメモリの種類等により異なるため、制御信号作成部 24では対 象のメモリに応じた所定の信号が作成される。
[0023] さらに書き込み部 211は、書き込みアドレス及び書き込みデータを出力する命令を バッファ制御信号 21eによりシングルバッファ 22へ送る。この出力命令に基づき、シ ングルバッファ 22はバッファアドレスバス 22a及びバッファデータバス 22bを介して、 それぞれ書き込みアドレス及び書き込みデータを書き込み部 211に渡す。アドレス及 びデータを受取ると、書き込み部 211は書き込みアドレスバス 21c及び書き込みデー タバス 21dを介して、書き込みアドレス及び書き込みデータをインタフェース部 23に 送る。また同時に、書き込み制御信号 24aの生成信号 21fもインタフェース部 23に送 る。インタフェース部 23は書き込み制御信号 24aの生成信号 21fを受け取ると、書き 込みアドレスバス 21c及び書き込みデータバス 21dを、それぞれメモリアドレスバス 2c 及びメモリデータバス 2dと接続する。換言すれば読み出しアドレスバス 21a及び読み 出しデータバス 21bは、メモリアドレスバス 2c及びメモリデータバス 2dとは接続されな V、。さらに書き込み制御信号 24aをメモリ制御信号 2eへ接続する。
[0024] インタフェース部 23は、書き込み部 211から送られた書き込みアドレス及び書き込 みデータを、メモリアドレスバス 2c及びメモリデータバス 2dを介してメモリ 3へ送るとと もに、メモリ制御信号 2eとして書き込み制御信号 24aをメモリ 3へ送る。メモリ 3はメモリ 制御信号 2eに基づき、与えられた書き込みアドレスに書き込みデータを記憶し、デ
ータの書き込みが完了する。
[0025] 以上のように、書き込み処理はシングルバッファ 22にデータが蓄積されるとすぐに、 すなわちリアルタイムに実施される。なお、シングルバッファ 22がファイフォの場合、 蓄積して 、た書き込みアドレス及び書き込みデータを出力することで、フルフラグは L 論理に変化し、初期状態に戻る。また、メモリ 3に対するメモリ制御信号 2eと書き込み アドレス及び書き込みデータとのタイミングの関係は、一般に使用するメモリの種類等 により異なる。そこで、あら力じめ書き込み部 211からの書き込みアドレス及び書き込 みデータの出力タイミングと、メモリ制御信号 2eの出力タイミングとの関係力 Sメモリ毎 に適した所定の関係となるよう、書き込み部 211が出力する書き込みアドレス及び書 き込みデータの出力タイミングを調整するものとする。
[0026] 図 3に、以上で説明した第 1の場合におけるメモリアクセス装置 2の動作を表すフロ 一チャートを示す。初期状態ではフルフラグは L論理であり、ステップ S31で書き込み 信号 lcが書き込み部 211へ入力される。次に書き込み部 211ではステップ S32でフ ルフラグが L論理であることを判別する。次にステップ S33で書き込みアドレス及び書 き込みデータをシングルバッファ 22に蓄積するとフルフラグは H論理に変化する。次 にステップ S34で書き込み完了信号 2aを出力する。次にステップ S35でシングルバ ッファ 22からアドレス及びデータを出力し、ステップ S36でタイミング調整のうえ、これ らをメモリアクセス装置 2から出力する。同時にステップ S37で書き込み制御信号 24a を作成し、ステップ S38でメモリ制御信号 2eとしてメモリアクセス装置 2から出力する。 このとき、インタフェース部 23はステップ S39で書き込みアドレスバス 21c及び書き込 みデータバス 21dを選択しておく。最後にメモリ 3への書き込み処理をステップ S3aで 実行する。
[0027] 次に、第 2の場合として、初期状態すなわちメモリアクセス装置 2が書き込み処理も 読み出し処理も行つて ヽな 、状態で、 CPU 1がメモリ 3からデータを読み出す場合の 動作を説明する。この場合、図 1において CPU1は第 1の読み出し命令である読み出 し信号 Idをメモリアクセス装置 2に送るとともに、 CPUアドレスバス laを介して第 1の 読み出しアドレスである読み出しアドレスをメモリアクセス装置 2に送る。データ書き込 み時と同様に、 CPU1は書き込み信号 lcと読み出し信号 Idを同時に送ることはない
[0028] CPU1から送られた読み出し信号 Idは、図 2においてバス制御部 21の読み出し部 212に渡される。読み出し部 212は読み出し信号 Idを受け取ると、シングルバッファ 22に書き込みアドレス及び書き込みデータが蓄積されている力否かを、ノ ッファ状態 信号 22cに基づき判断する。すなわち、もしシングルバッファ 22に書き込みアドレス 及び書き込みデータが蓄積されて 、れば、以前の書き込み処理が完了して!/、な 、と 判断する。上述のようにシングルバッファ 22に 1段のファイフォを適用する場合、読み 出し処理におけるバッファ状態信号 22cとしてェンプティフラグを用いることができる。 ェンプティフラグはファイフォのデータの蓄積量を表す信号として出力され、蓄積量 が空 (Empty)であればェンプティフラグが H論理となる力 それ以外では L論理とな る。従ってバッファ状態信号 22cとしてェンプティフラグを用いれば、読み出し部 212 力もファイフォへ特に要求をしなくても、ファイフォの蓄積状況を判断できる。 1段のフ アイフォでは、空(Empty)か一杯(Full)の 2つの状態しかありえないため、ェンプテ ィフラグとフルフラグは相補的な信号となる。
[0029] すなわちェンプティフラグが L論理であれば書き込みアドレス及び書き込みデータ が蓄積されて 、るが、ェンプティフラグが H論理であれば書き込みアドレス及び書き 込みデータが蓄積されて 、な 、と判断できる。初期状態では上述のように書き込み アドレス及び書き込みデータは蓄積されておらず、ェンプティフラグは H論理となる。 すると読み出し部 212は以前の書き込み処理は完了していると判断し、 CPU1から 送られた読み出しアドレスを受け取る。
[0030] アドレスを受け取ると、読み出し部 212は制御信号作成部 24に対して、読み出し制 御信号 24bの生成信号 21gを送る。制御信号作成部 24は読み出し制御信号 24bの 生成信号 21gを受け取ると、チップセレクトやリードィネーブル等、メモリ 3からの読み 出し処理に必要な読み出し制御信号 24bを作成し、インタフェース部 23に送る。書き 込み処理時と同様に、読み出し制御信号 24bは、アクセス対象のメモリの種類等によ り異なるため、制御信号作成部 24では対象のメモリに応じた所定の信号が作成され る。
[0031] 一方、読み出し部 212は、読み出しアドレスバス 21aを介して、読み出しアドレスを
インタフェース部 23に送り、同時に読み出し制御信号 24bの生成信号 21gもインタフ エース部 23に送る。インタフェース部 23は読み出し制御信号 24bの生成信号 21gを 受け取ると、読み出しアドレスノ ス 21a及び読み出しデータバス 21bを、それぞれメモ リアドレスバス 2c及びメモリデータバス 2dと接続する。換言すれば書き込みアドレス バス 21c及び書き込みデータバス 21dは、メモリアドレスバス 2c及びメモリデータバス 2dとは接続されない。さらに読み出し制御信号 24bをメモリ制御信号 2eへ接続する。
[0032] インタフェース部 23は、読み出し部 212から送られた読み出しアドレスを、メモリアド レスバス 2cを介してメモリ 3へ送るとともに、メモリ制御信号 2eとして読み出し制御信 号 24bをメモリ 3へ送る。メモリ 3はメモリ制御信号 2eに基づき、与えられた読み出しァ ドレスに記憶されて 、る第 1の読み出しデータである読み出しデータをメモリデータバ ス 2dに出力する。出力された読み出しデータはインタフェース部 23に送られ、さらに 読み出しデータバス 21bを介して読み出し部 212へ渡される。読み出し部 212は CP Uデータバス lbを介して読み出しデータを CPU1へ渡すとともに、読み出し完了信 号 2bを CPU1へ出力する。 CPU1は読み出し完了信号 2bを受け取ることで、読み出 しデータの読み出しが完了したと判断するので、次処理に移行することができる。
[0033] 以上のように、読み出し処理は読み出し信号 Idが入力されるとすぐに、すなわちリ アルタイムに実施される。なお書き込み処理時と同様、メモリ 3に対するメモリ制御信 号 2eと読み出しアドレスとのタイミングの関係は、一般に使用するメモリの種類等によ り異なるため、あら力じめ読み出しアドレスとメモリ制御信号 2eの出力タイミングの関 係がメモリ毎に適した所定の関係となるよう、読み出し部 212が出力する読み出しァ ドレスの出力タイミングを調整するものとする。一方、書き込み処理時と異なり読み出 し処理時は、読み出し処理が完了するまで読み出し完了信号 2bが CPU1へ出力さ れないので、読み出し処理の完了前に CPUが次処理に移行することはない。
[0034] 図 4に、以上で説明した実施の形態 1の第 2の場合におけるメモリアクセス装置 2の 動作を表すフローチャートを示す。初期状態ではェンプティフラグは H論理であり、ス テツプ S41で読み出し信号 Idが読み出し部 212へ入力される。次に読み出し部 212 ではステップ S42でェンプティフラグが H論理であることを判別する。次にステップ S4 3で読み出しアドレスを受け取り、ステップ S44でタイミング調整のうえ、これをメモリア
クセス装置 2から出力する。同時にステップ S45で読み出し制御信号 24bを作成し、 ステップ S46でメモリ制御信号 2eとしてメモリアクセス装置 2から出力する。このとき、 インタフェース部 23はステップ S47で読み出しアドレスバス 21a及び読み出しデータ バス 21bを選択しておく。メモリ 3へ読み出しアドレスを送ると、ステップ S48で読み出 しデータを受け取る。受け取った読み出しデータはステップ S49で CPU1へ出力され ると共に、読み出し完了信号 2bが出力される。
[0035] 以上のように、実施の形態 1に係るメモリアクセス装置 2はメモリ 3への書き込み処理 が完了する前に書き込み完了信号 2aを CPU1に出力するので、 CPU1は次処理に 移ることができる。このためライトスルー方式と異なり書き込み処理を高速ィ匕でき、高 速アクセスを実現できる。また、書き込み処理をリアルタイムで実施するため制御が簡 単ですみ、ライトバック方式と比べて回路規模を小さくできる。また実施の形態 1では キャッシュを使用しな 、ため、メモリ 3の全ての領域に対して上述のような高速ァクセ スを実現できる。また高速モードを持たないメモリであっても、さらにアクセスするアド レスが連続でな 、場合であっても、上述のような高速アクセスを実現できる。
[0036] なお、上記実施の形態 1においてはメモリアクセス装置 2にアクセスするのは CPU1 であるとして説明したが、アクセス元は必ずしも CPUである必要はなぐノ スの制御 主体(以下、バスマスタ)となるデバイスであればよぐ例えば DMAC (Direct Mem ory Access Controller)などであってもよい。すなわち、メモリアクセス装置 2は C PUlから独立しているため、メモリアクセス装置 2を経由してメモリ 3にアクセスする全 てのバスマスタに対して適用できる。
[0037] なお、上記実施の形態 1ではシングルバッファ 22としてファイフォを適用するものと して説明をしたが、これは必ずしもファイフォでなくても良い。すなわち 1個のアドレス とデータを保持することができる素子であればよぐ RAM等やフリップフロップ等であ つてもよい。
[0038] なお、上記実施の形態 1ではメモリ 3からの読み出し処理においてシングルバッファ 22がファイフォの場合、ェンプティフラグに基づき制御をするものとした力 これは必 ずしもェンプティフラグでなくても良 、。上述のようにシングルバッファ 22ではェンプ ティフラグとフルフラグが相補的な関係となるため、フルフラグに基づき制御をするも
のとしてもよい。なお反対に、メモリ 3への書き込み処理においてはフルフラグに基づ き制御をするものとした力 同様の論理でェンプティフラグに基づ ヽても制御できるこ とは言うまでもない。
[0039] 実施の形態 2.
実施の形態 1では、初期状態すなわちメモリアクセス装置 2がメモリ 3へ書き込み処 理も読み出し処理も行って 、な ヽ状態で、書き込み命令または読み出し命令がなさ れた場合について説明した。実施の形態 2では、メモリアクセス装置 2がメモリ 3への 書き込み処理を実行中に、 CPU1が重ねて書き込み命令または読み出し命令をメモ リアクセス装置 2に対して行った場合について説明する。例えば CPU1がメモリ 3への 書き込み命令をメモリアクセス装置 2へ送り、メモリアクセス装置 2から書き込み完了信 号 2aを受け取った後、次処理で再び同じメモリ 3へのアクセスが生じた場合力これに あたる。なお図面については実施の形態 1と同様に図 1及び図 2を使用する。また動 作も、実施の形態 1と同様に 2つの場合に分けて説明する。
[0040] 第 1の場合として、初期状態でないとき、すなわちメモリアクセス装置 2がメモリ 3へ 第 1の書き込み処理を実行している状態で、 CPU1からメモリアクセス装置 2に対して 書き込み命令が重ねてなされた場合について説明する。実施の形態 1と同様に、 CP U1は第 2の書き込み命令である書き込み信号 lcをメモリアクセス装置 2に送るととも に、第 2の書き込みアドレスである新たな書き込みアドレス及び第 2の書き込みデータ である新たな書き込みデータをメモリアクセス装置 2に出力する。書き込み信号 lcは バス制御部 21の書き込み部 211に渡され、書き込み部 211はシングルバッファ 22に 書き込みアドレス及び書き込みデータが蓄積されているか否かをバッファ状態信号 2 2cに基づき判断する。
[0041] ここでメモリアクセス装置 2はメモリ 3への第 1の書き込み処理を実行中であるため、 シングルバッファ 22には第 1の書き込みアドレスである以前の書き込みアドレス及び 第 1の書き込みデータである以前の書き込みデータがまだ蓄積されたままである。す ると例えばシングルバッファ 22としてファイフォを適用した場合、そのフノレフラグは H 論理のままである。従って書き込み部 211は、書き込みアドレス及び書き込みデータ がシングルバッファ 22に蓄積されていると判断し、実行中であるメモリ 3への第 1の書
き込み処理を «続する。一方、書き込み部 211はシングルバッファ 22に対して CPU 1から送られた新たな書き込みアドレス及び新たな書き込みデータを蓄積する命令を 行わず、また CPU1へ書き込み完了信号 2aを送らない。この場合、 CPU1は書き込 み完了信号 2aを受け取らないためメモリ 3への書き込みが完了したと判断できない。 すなわち CPU 1は次処理へ移行することができず、そのまま新たな書き込みアドレス 及び新たな書き込みデータをメモリアクセス装置 2へ出力し続ける。
[0042] メモリアクセス装置 2がメモリ 3への第 1の書き込み処理を継続した結果、この処理が 完了すると、実施の形態 1で述べたようにシングルバッファ 22に蓄積されていた以前 の書き込みアドレス及び書き込みデータがなくなり、フルフラグは L論理に変化する。 すると書き込み部 211は以前の書き込み処理は完了していると判断し、 CPU1から 送られた新たな書き込みアドレス及び新たな書き込みデータを蓄積する命令をシン ダルバッファ 22へ送る。この蓄積命令に基づき、シングルバッファ 22は新たな書き込 みアドレス及び新たな書き込みデータを蓄積する。シングルバッファがファイフォの場 合、書き込みアドレスと書き込みデータが蓄積されるのでフルフラグは再び H論理に 変化する。書き込み部 211は上述のように、メモリ 3への第 2の書き込み処理の完了 を待たずに CPU1へ書き込み完了信号 2aを送り、 CPU1はメモリ 3への書き込みが 完了したと判断するので次処理に移行することができる。なお新たな書き込みァドレ スへのデータの書き込み処理については実施の形態 1と同じであるため、以後の処 理についての説明は省略する。
[0043] 図 5に、以上で説明した実施の形態 2の第 1の場合におけるメモリアクセス装置 2の 動作を表すフローチャートを示す。なお図 3と同一のフローについては、同一の符号 を付して説明を省略し、異なるフローであるステップ S51ないしステップ S53について 説明する。まずステップ S51で書き込み信号 lcが書き込み部 211へ入力されるが、 初期状態ではないため、フルフラグは L論理とは限らない。次に書き込み部 211では ステップ S52でフルフラグの論理を判別する。そしてフルフラグ力 論理であれば実 施の形態 1と同様の動作となる力 H論理であれば、フルフラグ力 論理となるまで判 別処理を繰り返す。一方、フルフラグが H論理の場合、以前の書き込み処理はステツ プ S33以降のフローを継続して行い、ステップ S3aで書き込み処理を実行する。実施
の形態 2では、ステップ S3aで書き込み処理を実行後、次処理があるか否かをステツ プ S52で判別し、次処理があればステップ S52まで戻るものとする。このときステップ S35でフルフラグは L論理となって 、るため、ステップ S52で判別処理を繰り返して ヽ た書き込み命令についても、以前の書き込み処理に引き続いてステップ S33以降の 書き込み処理を実行することとなる。
[0044] 次に第 2の場合として、初期状態でな!、とき、すなわちメモリアクセス装置 2がメモリ 3へ書き込み処理を実行して 、る状態で、 CPU1からメモリアクセス装置 2に対して読 み出し命令がなされた場合について説明する。実施の形態 1と同様に、 CPU1は第 2 の読み出し命令である読み出し信号 Idをメモリアクセス装置 2に送るとともに、第 2の 読み出しアドレスである読み出しアドレスをメモリアクセス装置 2に出力する。読み出し 信号 Idはバス制御部 21の読み出し部 212に渡され、読み出し部 212はシングルバ ッファ 22に書き込みアドレス及び書き込みデータが蓄積されているか否かをバッファ 状態信号 22cに基づき判断する。
[0045] ここでメモリアクセス装置 2はメモリ 3への第 1の書き込み処理を実行中であるため、 シングルバッファ 22には第 1の書き込みアドレスである以前の書き込みアドレス及び 第 1の書き込みデータである以前の書き込みデータがまだ蓄積されたままである。す ると例えばシングルバッファ 22としてファイフォを適用した場合、そのェンプティフラグ は L論理のままである。従って読み出し部 212は、書き込みアドレス及び書き込みデ ータがシングルバッファ 22に蓄積されて 、ると判断し、実行中であるメモリ 3への第 1 の書き込み処理を継続する。一方、読み出し部 212は CPU1が出力する第 2の読み 出しアドレスを受け取らず、また CPU1へ読み出し完了信号 2bを送らない。この場合 、 CPU1は読み出し完了信号 2bを受け取らないためメモリ 3からの読み出し処理が 完了したと判断できない。すなわち CPU1は次処理へ移行することができず、そのま ま読み出しアドレスをメモリアクセス装置 2へ出力し続ける。
[0046] メモリアクセス装置 2がメモリ 3への第 1の書き込み処理を継続した結果、この処理が 完了すると、実施の形態 1で述べたようにシングルバッファ 22に蓄積されていた以前 の書き込みアドレス及び書き込みデータがなくなり、ェンプティフラグは H論理に変化 する。すると読み出し部 212は以前の書き込み処理は完了していると判断し、 CPU1
力も送られた読み出しアドレスを受け取る。なお以降の読み出し処理については実 施の形態 1と同様であるため、説明は省略する。
[0047] 図 6に、以上で説明した実施の形態 2の第 2の場合におけるメモリアクセス装置 2の 動作を表すフローチャートを示す。なお図 4と同一のフローについては、同一の符号 を付して説明を省略し、異なるフローであるステップ S61ないしステップ S64について 説明する。まずステップ S61で読み出し信号 Idが読み出し部 212へ入力されるが、 初期状態ではないため、ェンプティフラグは H論理とは限らない。次に読み出し部 21 2ではステップ S62でェンプティフラグの論理を判別する。そしてェンプティフラグが H論理であれば実施の形態 1と同様の動作となる力 L論理であれば、ステップ S63 で全ての書き込み処理が完了したか否かを判別する。書き込み処理の継続中は、シ ングルバッファ 22に書き込みアドレス及び書き込みデータが蓄積されているので、ェ ンプティフラグは L論理のままであり、ステップ S63での判別処理を繰り返す。そして 全ての書き込み処理が完了すれば、ステップ S64でェンプティフラグが H論理となり 、ステップ S62まで戻る。このときェンプティフラグは H論理となっているため、読み出 し命令について、ステップ S43以降の読み出し処理を実行することとなる。
[0048] 以上のように、実施の形態 2に係るメモリアクセス装置 2は、 CPU1がメモリアクセス 装置 2から書き込み完了信号 2aを受信した後、重ねてメモリ 3への第 2の書き込み命 令が発生した場合、メモリアクセス装置 2は実行中の第 1の書き込み処理の完了後に 第 2の書き込み処理を開始するとともに CPU1に対し書き込み完了信号 2aを送る。こ のように、 CPU1からの第 2の書き込み命令が実行されるのは、必ずメモリアクセス装 置 2が第 1の書き込み処理を完了した後となるため、書き込み処理が消失することが ない。
[0049] さらに、 CPU1がメモリアクセス装置 2から書き込み完了信号 2aを受信した後、第 2 の読み出し命令が発生した場合、メモリアクセス装置 2は実行中の第 1の書き込み処 理の完了後に第 2の読み出し処理を開始する。すなわち、 CPU1による第 2の読み 出し処理が行われるのは必ずメモリアクセス装置 2が第 1の書き込み処理を完了した 後となるため、複雑な制御を行わなくてもメモリ 3上のデータの整合性を保つことがで きる。
[0050] なお、上記実施の形態 2においてはメモリアクセス装置 2がメモリ 3への書き込み処 理を実行中に、重ねて CPU1から書き込み命令または読み出し命令があった場合に ついて説明した。これに対してメモリ 3からの読み出し処理を実行している場合には、 CPU1がメモリ 3からデータを読み出さなければ読み出し完了信号 2bが CPU1へ出 力されないため、重ねて CPU1から書き込み命令または読み出し命令がなされること はない。
[0051] 実施の形態 3.
実施の形態 2では、メモリアクセス装置 2がメモリ 3への第 1の書き込み処理を実行 中に、 CPU1が重ねて書き込み命令または読み出し命令を行った場合に、メモリァク セス装置 2は実行中の第 1の書き込み処理を完了した後に新たな書き込み処理また は読み出し処理を開始するものとした。すなわち新たな書き込み命令がなされた場 合は、第 1の書き込み処理が完了して新たな書き込みアドレス及び新たな書き込み データが書き込み部 211に渡されるまでは、 CPU1は新たな書き込み命令に対応す る書き込み完了信号 2aを受け取らな 、。したがって CPU1が次処理に移行するまで に、無用な待ち時間が発生する。実施の形態 3では、当該無用な待ち時間を短縮す るメモリアクセス装置 2につ 、て説明する。
[0052] 実施の形態 3では、メモリアクセス装置 2内のバッファを、有限長の多段バッファ 25 とする。図 7は実施の形態 3におけるメモリアクセス装置 2のブロック図である。図 2に おけるシングルバッファ 22を、図 7では多段バッファ 25に置き換えている点で相違す る。また、メモリアクセス装置 2を適用した機器の一部を示すブロック図としては図 1を 兼用する。次にメモリアクセス装置 2の動作を説明する。初期状態での動作は実施の 形態 1と同様であるため説明を省略し、初期状態でない場合の動作を実施の形態 2 と同様に 2つの場合に分けて説明する。第 1の場合として、メモリアクセス装置 2がメモ リ 3へ書き込み処理を実行している状態で、 CPU1からメモリアクセス装置 2に対して 書き込み命令が重ねてなされた場合について説明する。実施の形態 2と同様に、 CP U1は書き込み信号 lcをメモリアクセス装置 2に送るとともに、新たな書き込みアドレス 及び新たな書き込みデータをメモリアクセス装置 2に出力する。
[0053] 図 7において書き込み信号 lcがノ ス制御部 21の書き込み部 211に渡されると、書
き込み部 211は多段バッファ 25に蓄積された書き込みアドレス及び書き込みデータ がー杯である力否かを、ノ ッファ状態信号 25cに基づき判断する。多段バッファ 25は 書き込みアドレスと書き込みデータをそれぞれ蓄積容量である N個ずつ保持すること ができ、例えば N段 (N: 2以上の整数)のファイフォで構成される。ファイフォを適用し た場合、実施の形態 2と同様にバッファ状態信号 25cとしてフルフラグを用いることが できる。すなわちフルフラグ力 論理であればアドレス及びデータの蓄積量が N個未 満であり一杯ではな!/、が、フルフラグが H論理であればアドレス及びデータの蓄積量 力 個に達しており一杯であると判断できる。実施の形態 1または 2では、書き込みァ ドレス及び書き込みデータを 1つずつ蓄積するとフルフラグが H論理に変化するが、 実施の形態 3では書き込みアドレス及び書き込みデータを N個ずつ蓄積するまでは フルフラグ力 論理を保つ点で相違する。
[0054] ここでメモリアクセス装置 2はメモリ 3への以前の書き込み処理を実行中であり、多段 ノ ッファ 25には以前の書き込みアドレス及び書き込みデータがまだ蓄積されている。 すると例えば多段バッファ 25として N段のファイフォを適用した場合、書き込みァドレ ス及び書き込みデータの蓄積量が N個未満であればフルフラグは L論理であるが、 書き込みアドレス及び書き込みデータの蓄積量が N個に達して ヽれば、フルフラグは H論理である。実施の形態 3では、もしフルフラグ力 論理であれば、多段バッファ 25 に新たな書き込みアドレス及び書き込みデータを蓄積することができると判断する。し かし、もしフルフラグが H論理であれば、多段バッファ 25に新たな書き込みアドレス及 び書き込みデータを蓄積することはできないと判断する。
[0055] 従ってフルフラグ力 論理であれば、書き込み部 211は新たな書き込みアドレス及 び書き込みデータを多段バッファ 25に蓄積する蓄積命令を行う。この蓄積により多段 ノ ッファ 25の蓄積量が N個に達すればフルフラグは H論理に変化する力 N個未満 のままであればフルフラグは L論理のままである。そして書き込み部 211は新たな書 き込みアドレス及び書き込みデータによるメモリ 3への書き込み処理の完了を待たず に、 CPU1へ書き込み完了信号 2aを送り、 CPU1はメモリ 3への書き込みが完了した と判断するので、次処理に移行することができる。
[0056] 一方フルフラグが H論理であれば、書き込み部 211は実行中の書き込み処理を継
続するものの、新たな書き込みアドレス及び書き込みデータを多段バッファ 25に蓄積 せず、また CPU1へ書き込み完了信号 2aを送らない。 CPU1は書き込み完了信号 2 aを受け取らないためメモリ 3への書き込み処理が完了したと判断できない。すなわち CPU1は次処理へ移行することができず、そのまま新たな書き込みアドレス及び書き 込みデータをメモリアクセス装置 2へ出力し続ける。そしてメモリアクセス装置 2がメモ リ 3への書き込み処理を 1個完了すると、多段バッファ 25に蓄積された書き込みアド レス及び書き込みデータの数が N— 1個になる。すなわち多段バッファ 25の蓄積量が 一杯ではなくなるため、フルフラグは L論理に変化する。従って書き込み部 211は、 書き込みアドレス及び書き込みデータを蓄積することができると判断し、多段バッファ 25に新たな書き込みアドレス及び書き込みデータを蓄積する蓄積命令を行う。すると 多段バッファ 25の蓄積量は再び N個に達して一杯になるため、フルフラグは H論理 に変化する。書き込み部 211は上述のように、メモリ 3への書き込み処理の完了を待 たずに CPU1へ書き込み完了信号 2aを送り、 CPU1はメモリ 3への書き込みが完了 したと判断するので次処理に移行することができる。
[0057] メモリアクセス装置 2は、多段バッファ 25に蓄積された書き込みアドレス及び書き込 みデータに関して、 CPU1から受け取った順にメモリ 3へ書き込み処理を実行する。 そして蓄積量が 0個になるまで、すなわち全ての書き込み処理を完了するまで継続 する。なお、メモリ 3への書き込み処理については実施の形態 2と同様であるため説 明を省略する。
[0058] 図 8に、以上で説明した実施の形態 3の第 1の場合におけるメモリアクセス装置 2の 動作を表すフローチャートを示す。なお図 3及び図 5と同一のフローについては、同 一の符号を付して説明を省略し、異なるフローであるステップ S81な 、しステップ S8 6について説明する。図 8においてステップ S51で書き込み信号 lcが入力されると、 ステップ S52でフルフラグの論理を判別した結果、フルフラグ力 論理であれば、ステ ップ S81で多段バッファ 25に書き込みアドレス及び書き込みデータが蓄積される。次 に、この蓄積により多段バッファ 25がー杯になったか否かをステップ S82で判断する 。もし一杯であればステップ S83でフルフラグが H論理に変化した後、書き込み処理 を行うが、一杯にならなければ、フルフラグ力 論理のまま書き込み処理を行うととも
にステップ S52に戻る。ステップ S52まで戻るのは、次処理で CPU1から書き込み命 令があった場合、書き込みアドレス及び書き込みデータを蓄積できるようにするため である。図 5では、このフローが存在しないが、これは実施の形態 2ではシングルバッ ファ 22のフルフラグが必ず H論理に変化するため不要だ力もである。
[0059] また図 8において、ステップ S84で多段バッファ 25から書き込みアドレスと書き込み データを出力するので、多段バッファ 25は一杯ではなくなる。そこで、フルフラグの論 理をステップ S85で判断し、 H論理であればステップ S86で L論理に変化して処理を 継続することとしている。
[0060] 第 2の場合として、メモリアクセス装置 2がメモリ 3へ書き込み処理を実行している状 態で、 CPU1からメモリアクセス装置 2に対して読み出し命令が重ねてなされた場合 について説明する。実施の形態 2と同様に、 CPU1は読み出し信号 Idをメモリァクセ ス装置 2に送るとともに、読み出しアドレスをメモリアクセス装置 2に出力する。
[0061] 図 7において読み出し信号 Idがバス制御部 21の読み出し部 212に渡されると、読 み出し部 212は多段バッファ 25に書き込みアドレス及び書き込みデータが 1つでも 蓄積されている力否かを、ノ ッファ状態信号 25cに基づき判断する。上述のように多 段バッファ 25を N段のファイフォとすれば、読み出し処理の場合はバッファ状態信号 25cとしてェンプティフラグを用いることができる。すなわちェンプティフラグ力 論理 であれば書き込みアドレス及び書き込みデータが 1個以上蓄積されている力 ェンプ ティフラグが Hであれば書き込みアドレス及び書き込みデータが 1個も蓄積されて!ヽ ないと判断できる。
[0062] ここでメモリアクセス装置 2はメモリ 3への以前の書き込み処理を実行中であり、多段 ノ ッファ 25には以前の書き込みアドレス及び書き込みデータがまだ蓄積されている。 すると例えば多段バッファ 25として N段のファイフォを適用した場合、ェンプティフラ グは必ず L論理となる。するとバス制御部 211の書き込み部 211はメモリ 3への書き込 み処理を継続するものの、読み出し部 212は読み出しアドレスを CPU1から受け取ら ず、また CPU1へ読み出し完了信号 2bを送らない。この場合、 CPU1は読み出し完 了信号 2bを受け取らないためメモリ 3からの読み出し処理が完了したと判断できない 。すなわち CPU1は次処理へ移行することができず、そのまま読み出しアドレスをメモ
リアクセス装置 2へ出力し続ける。
[0063] そしてメモリアクセス装置 2がメモリ 3への書き込み処理を全て完了すると、多段バッ ファ 25に蓄積されたアドレス及びデータの数が 0個になる。すなわち多段バッファ 25 の蓄積量が 0となるため、ェンプティフラグは H論理に変化する。従って読み出し部 2 12は、読み出し処理が可能と判断し、 CPU1から読み出しアドレスを受け取る。なお 、メモリアクセス装置 2が読み出しアドレスを受け取った以降の動作は実施の形態 2と 同様なため説明を省略する。また、実施の形態 3における第 2の場合のメモリアクセス 装置 2の動作を表すフローは、ェンプティフラグが H論理になった場合のみ読み出し 処理を行うという点で実施の形態 2と同じであり、図 6と同一となるため、フローチヤ一 トを省略する。
[0064] 以上のように、実施の形態 3では、メモリアクセス装置 2内のバッファを多段バッファ 25とすること〖こより、メモリアクセス装置 2がメモリ 3への書き込み処理を実行中に、 CP U1が重ねて書き込み命令を行った場合であっても、以前の書き込み処理が完了す るまで待つことなく書き込みアドレス及び書き込みデータをメモリアクセス装置 2へ渡 すことができるので、 CPU1が待機状態に陥る無用な待ち時間を減少させることがで きるという効果がある。
[0065] 実施の形態 4.
実施の形態 3では、多段バッファ 25に蓄積された書き込みアドレスの連続性を考慮 せず、 CPU1から受け取った順に、常に 1つずつメモリ 3へ書き込み処理を行うものと したが、必ずしも 1つずつ処理を行う必要はない。実施の形態 4では、多段バッファ 2 5に蓄積された書き込みアドレス力 直前の書き込み処理においてアクセスするアド レスと連続していた場合、メモリアクセス装置 2がメモリ 3に対してページアクセスゃバ 一ストアクセス等の高速アクセスモードを使用して書き込み処理を行うものとする。な お実施の形態 4では、メモリ 3は高速アクセスモードに対応可能なメモリであるとして 説明する。
[0066] 図 9は実施の形態 4におけるメモリアクセス装置 2のブロック図である。図 7との主な 相違は、多段バッファ 25に蓄積された書き込みアドレスを監視する監視手段である アドレス監視部 26を備える点である。また、メモリアクセス装置 2を適用した機器の一
部を示すブロック図としては図 1を兼用する。次にメモリアクセス装置 2の動作につい て説明する。初期状態において書き込み命令または読み出し命令があった場合は 実施の形態 1と同様の動作であるため説明を省略する。次に初期状態でないとき、す なわちメモリアクセス装置 2がメモリ 3へ書き込み処理を実行している場合に、 CPU1 からメモリアクセス装置 2に対して書き込み命令が重ねてなされた場合について説明 する。実施の形態 3と同様に、 CPU1は書き込み信号 lcをメモリアクセス装置 2に送 るとともに、新たな書き込みアドレス及び書き込みデータをメモリアクセス装置 2に出 力する。書き込み信号 lcはバス制御部 21の書き込み部 212に渡され、書き込み部 2 12は多段バッファ 25に蓄積された書き込みアドレス及び書き込みデータが一杯であ る力否かを、ノッファ状態信号 25cに基づき判断する。
[0067] 実施の形態 3と同様に、ノ ッファ状態信号 25cのフルフラグが L論理であれば、書き 込み部 212は新たな書き込みアドレス及び書き込みデータを多段バッファ 25に蓄積 する。一方フルフラグが H論理であれば、バス制御部 21は実行中であるメモリ 3への 書き込み処理を継続し、処理を完了すると、多段バッファ 25に新たな書き込みァドレ ス及び書き込みデータを蓄積する。
[0068] 実施の形態 4では、アドレス監視部 26が多段バッファ 25に蓄積された複数の書き 込みアドレスを監視する。多段バッファ 25に蓄積された書き込みアドレスとアドレス監 視部 26との関係の一例を図 10に示す。図 10では、 N個の記憶素子 101ないし 10N に N個の書き込みアドレスが蓄積され、別の N個の記憶素子 111な!、し 11Nに N個 の書き込みアドレスに対応する N個の書き込みデータが蓄積される。なお、記憶素子 101及び 102の 2個は書き込みアドレスが連続しているものとする。アドレス監視部 2 6は記憶素子 101ないし 10Nに蓄積された書き込みアドレスを監視し、記憶素子 101 及び 102の書き込みアドレスが連続していると判断すると、これらの書き込みアドレス に対する書き込み処理が行われるタイミングで、書き込み部 211にモード指示信号 2 6aを出力する。
[0069] 書き込み部 211は、アドレス監視部 26からモード指示信号 26aを受け取ると、制御 信号作成部 24にモード切替指示信号 21hを出力する。制御信号作成部 24はモード 切替指示信号 21hを受け取ると、チップセレクトやリードィネーブル等、通常の書き込
み処理に必要な信号の他、メモリ 3の高速アクセスモードに必要な信号を書き込み制 御信号 24aとして作成し、インタフェース部 23に送る。書き込み部 211は高速ァクセ スモードにおける書き込み制御に合致するタイミングで、連続する 2つの書き込みアド レス及び対応する 2つの書き込みデータを出力する。メモリ 3はメモリ制御信号 2eとし て送られた書き込み制御信号 24aに基づき、与えられた 2つの書き込みアドレスにそ れぞれの書き込みデータを高速アクセスモードで記憶する。
[0070] なお、メモリアクセス装置 2がメモリ 3へ書き込み処理を実行して 、る場合に、 CPU1 からメモリアクセス装置 2に対して読み出し命令がなされた場合にっ 、ては、実施の 形態 3と同様の動作であるため説明を省略する。
[0071] 以上のように実施の形態 4によれば、アドレス監視部 26が多段バッファ 25に蓄積さ れた書き込みアドレスを監視し、アドレスの連続した書き込み処理を行う場合には書 き込み部 211にモード指示信号 26aを出力して、メモリ 3の高速アクセスモードを使用 して書き込み処理を行うものとした。高速アクセスモードの使用によりメモリアクセス装 置 2によるメモリ 3への書き込み処理に要する時間を減少することができるため、 CPU 1がメモリアクセス装置 2による書き込み処理の完了を待つ時間を総合的に減少させ ることがでさる。
[0072] なお、上記実施の形態 4では、アドレス監視部 26が記憶素子 101及び 102におけ る書き込みアドレスの連続のみを判断した力 S、連続部分が複数個存在する場合にこ れを判断するものとしてもよ 、。例えば図 10の記憶素子 10K及び 10K+ 1につ 、て も書き込みアドレスが連続して 、れば、これらの書き込みアドレスに対する書き込み 処理時にも高速アクセスモードを使用するものとしてもよい。
[0073] なお、上記実施の形態 4では、アドレス監視部 26が高速アクセスモードの適用を判 断するための書き込みアドレスの連続個数を 2個としたが、これは必ずしも 2個とは限 らない。例えば記憶素子 101ないし 103の 3個の書き込みアドレスが連続した場合に 高速アクセスモードを適用するものとしてもよぐ一般に任意の M個(M : 2以上の整 数)の書き込みアドレスが連続した場合に高速アクセスモードを適用するとしてもよ ヽ 。 Mが大きくなるほど、アドレス 1個ずつを処理する場合に比べて書き込み処理に要 する時間を短くすることができるため、高速アクセスモードを使用する効果が大きくな
る。
[0074] なお、上記実施の形態 4では、アドレス監視部 26が高速アクセスモードの適用を判 断するために書き込みアドレスの連続性を基準とした力 必ずしも書き込みアドレス の連続性を判断の基準とする必要はな 、。例えば連続して 、る書き込みアドレスが 不連続となる場合に、それまで連続した書き込みアドレスにつ 、て高速アクセスモー ドを適用するものとしてもよい。すなわち記憶素子 10Kないし 102までの書き込みァ ドレスが連続している場合に、記憶素子 101で連続性が途切れたとすると、記憶素子 10Kないし 102までの書き込みアドレスに対して高速アクセスモードを使用してもよ い。この場合、書き込みアドレスの連続性を基準とする方法と比べて連続する個数を カウントする必要がなぐまた連続数が多くても常に高速アクセスモードの適用が期待 できる。
[0075] 実施の形態 5.
実施の形態 3では、メモリアクセス装置 2がメモリ 3への書き込み処理を実行中に、 C PU1が読み出し命令を行った場合には、蓄積された書き込み処理が全て完了して 力 読み出し処理を行うこととした。このため多段バッファ 25の蓄積容量が大きぐ多 くの書き込みアドレス及び書き込みデータが蓄積されている場合は、読み出し処理の 実行が後回しにされて CPU1には長い待ち時間が発生する。実施の形態 5では当該 長い待ち時間を短縮するメモリアクセス装置 2について説明する。
[0076] 実施の形態 5では、多段バッファ 25内に読み出しアドレスと同一の書き込みァドレ スが存在する場合に、読み出し処理を割り込んで実行することで、読み出し処理の高 速ィ匕を図る。図 11は、実施の形態 5におけるメモリアクセス装置 2のブロック図である 。また、メモリアクセス装置 2を適用した機器の一部を示すブロック図としては図 1を兼 用する。次にメモリアクセス装置 2の動作を説明する。初期状態での動作及び初期状 態以外の第 1の場合の動作は実施の形態 3と同様であるため説明を省略する。実施 の形態 5では初期状態以外の第 2の場合、すなわちメモリアクセス装置 2がメモリ 3へ 書き込み処理を実行して 、る状態で、 CPU1からメモリアクセス装置 2に対して読み 出し命令が重ねてなされた場合にっ 、て説明する。
[0077] 図 11において読み出し信号 Idがバス制御部 21の読み出し部 212に渡されると、
読み出し部 212は多段バッファ 25に書き込みアドレス及び書き込みデータが 1つで も蓄積されている力否かを、ノッファ状態信号 25cに基づき判断する。メモリアクセス 装置 2はメモリ 3への以前の書き込み処理を実行中であり、多段バッファ 25には以前 の書き込みアドレス及び書き込みデータがまだ蓄積されて ヽるため、ェンプティフラ グは必ず L論理となる。
[0078] ェンプティフラグ力 論理の場合、実施の形態 5における読み出し部 212は CPU1 が出力する読み出しアドレスを受け取るとともに、第 2バッファ制御信号 21iによりアド レス走査命令を多段バッファ 25に送る。多段バッファ 25はアドレス走査命令を受け 取ると、蓄積している書き込みアドレスをバッファ状態信号 25cにより逐次的に読み出 し部 212へ出力する。読み出し部 212は多段バッファ 25に蓄積されている書き込み アドレスと、 CPU1から受け取った読み出しアドレスを比較する。そして比較した結果 、読み出しアドレスと一致する書き込みアドレスが多段バッファ 25に存在しな力つた 場合は、読み出し部 212は実施の形態 3と同様に、全ての書き込み処理が完了する まで読み出し処理を行わな!/、。
[0079] 一方アドレスを比較した結果、読み出しアドレスと一致する書き込みアドレスが多段 ノ ッファ 25に存在した場合は、読み出し部 212は第 2バッファ制御信号 21iにより該 当する書き込みアドレスに対応する書き込みデータを出力するデータ出力命令を行 う。多段バッファ 25はデータ出力命令を受けると、 CPUデータバス lbに、該当する 書き込みデータを読み出しデータとして出力する。また同時に、読み出し部 212は読 み出し完了信号 2bを CPU1に出力する。 CPU1は多段バッファ 25が出力する読み 出しデータを受け取るとともに読み出し完了信号 2bを受け取ると、読み出し処理が完 了したと判断して次処理に移行することができる。
[0080] なお多段バッファ 25から CPUデータバス lbへの出力は、書き込み部 211に対する 動作とは反対方向のデータの流れであり、書き込み処理とは独立して行われるものと する。
[0081] 実施の形態 6.
実施の形態 1ないし 5では、 CPU1のみ力もメモリ 3へのアクセスがなされる場合に ついて説明した。実施の形態 6では、 CPU1以外のアクセス元のデバイスとして、別
のバスマスタが存在する場合について説明する。この場合メモリ 3は、 CPU1及び当 該別のバスマスタ力も共通にアクセスされ得る。そして同時にメモリ 3へのアクセス命 令が発生する可能性がある。しかしメモリ 3へ同時に複数のアクセスを行うと、アドレス が衝突してしまう等により正常なメモリアクセスを確保することが難しい。実施の形態 6 では、各アクセス元が調停器を経由してメモリアクセス装置 2にアクセスするものとす る。
[0082] 図 12は実施の形態 6におけるメモリアクセス装置 2を適用したメモリアクセス機構を 示すブロック図であり、実施の形態 1ないし 5における図 1に相当する。 CPU1の他に メモリ 3へのアクセス命令を発生するバスマスタ 4がある。バスマスタ 4はバスマスタアド レスバス 4a及びバスマスタデータバス 4bを介して調停器 5と接続されるとともに、書き 込み信号 4c及び読み出し信号 4dを調停器 5へ送る。調停器 5は調停器アドレスバス 5a及び調停器データバス 5bを介してメモリアクセス装置 2と接続される。また調停器 5 は書き込み信号 5cまたは読み出し信号 5dをメモリアクセス装置 2へ送る一方、書き込 み完了信号 5eもしくは読み出し完了信号 5fを CPU1へ送る力、または書き込み完了 信号 5gもしくは読み出し完了信号 5hをバスマスタ 4へ送る。
[0083] 次に動作について説明する。 CPU1またはバスマスタ 4のいずれか一方のアクセス 元のみからメモリ 3へのアクセスが発生した場合、調停器 5は当該アクセスが発生した アクセス元力ものバスを調停器アドレスバス 5a及び調停器データノ ス 5bと接続する。 すなわち、例えば CPU1のみ力 アクセスが発生した場合、書き込み信号 lcまたは 読み出し信号 Idが調停器 5に送られる。すると調停器 5は CPUアドレスバス la及び CPUデータバス lbを、それぞれ調停器アドレスバス 5a及び調停器データバス 5bに 接続し、書き込み信号 5cまたは読み出し信号 5dをメモリアクセス装置 2へ送る。そし て調停器 5がメモリアクセス装置 2から書き込み完了信号 2aまたは読み出し完了信号 2bを受け取ると、書き込み完了信号 5eまたは読み出し完了信号 5fを CPU1へ送る。
[0084] 同様に、バスマスタ 4のみ力 アクセスが発生した場合、書き込み信号 4cまたは読 み出し信号 4dが調停器 5に送られる。すると調停器 5はバスマスタアドレスバス 4a及 びバスマスタデータバス 4bを、それぞれ調停器アドレスバス 5a及び調停器データバ ス 5bに接続し、書き込み信号 5cまたは読み出し信号 5dをメモリアクセス装置 2へ送る
。そして調停器 5がメモリアクセス装置 2から書き込み完了信号 2aまたは読み出し完 了信号 2bを受け取ると、書き込み完了信号 5gまたは読み出し完了信号 5hをバスマ スタ 4へ送る。
[0085] このように調停器 5を設けたことで、 CPU1またはバスマスタ 4のいずれかのアクセス 元カゝらアクセスがあった場合には、調停器 5及びメモリアクセス装置 2を介してメモリ 3 へのアクセスを確保することができる。なお、以降の処理は実施の形態 3及び実施の 形態 4と同様であるため説明を省略する。
[0086] 次に、 CPU1及びバスマスタ 4の双方のアクセス元から同時にアクセスが発生した 場合について説明する。この場合、調停器 5は CPU1からのアクセスのみを許可して 上述のようにメモリアクセス装置 2との接続を行う。一方、バスマスタ 4からのアクセスは 許可しない。すなわち書き込み完了信号 5gまたは読み出し完了信号 5hはバスマス タ 4へ送られず、バスマスタ 4は処理を待機する。
[0087] CPU1からのアクセスが完了した場合、メモリアクセス装置 2は書き込み完了信号 2 aまたは読み出し完了信号 2bを出力するので、調停器 5はこれを受け取ると CPU1か らのアクセスが完了したと判断し、書き込み完了信号 5eまたは読み出し完了信号 5f を CPU1へ送る。そして CPUアドレスバス la及び CPUデータバス lbと調停器ァドレ スバス 5a及び調停器データバス 5bとの接続を切り、引き続きバスマスタ 4からのァク セスを許可する。すなわち上述と同様にバスマスタ 4からのアクセスを許可してメモリ アクセス装置 2との接続を行う。
[0088] 以上のように、調停器 5が複数のアクセス元からのアクセスを制御することで、メモリ アクセス装置 2へのアクセス元を常に 1つだけにすることができる。従って、 CPU1以 外のアクセス元としてバスマスタ 4が存在する場合であっても、メモリ 3へ同時に複数 のアクセスがなされてアドレスが衝突する等の不都合は生じず、正常なメモリアクセス を確保することができるという効果を奏する。
[0089] なお、上記実施の形態 6では、 CPU1以外のノ スマスタ 4を 1個備えるものとしたが 、これは 2個以上でもよい。また、上記実施の形態 6では、調停器 5は CPU1とバスマ スタ 4から同時にアクセスが発生した場合、 CPU1からのアクセスを優先してメモリァク セス装置 2へ接続するものとして説明した力 これは必ずしも必要ではない。例えば
バスマスタ 4からのアクセスを優先してメモリアクセス装置 2へ接続するものとしてもよ い。
産業上の利用可能性
この発明は携帯電話やパソコン、その他通信、制御などの分野にお!、て CPU等の ようにメモリへの書き込み及び読み出しを行うデバイスを用いて制御を行う機器に利 用できる。