JPWO2006046272A1 - メモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法 - Google Patents

メモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法 Download PDF

Info

Publication number
JPWO2006046272A1
JPWO2006046272A1 JP2006542120A JP2006542120A JPWO2006046272A1 JP WO2006046272 A1 JPWO2006046272 A1 JP WO2006046272A1 JP 2006542120 A JP2006542120 A JP 2006542120A JP 2006542120 A JP2006542120 A JP 2006542120A JP WO2006046272 A1 JPWO2006046272 A1 JP WO2006046272A1
Authority
JP
Japan
Prior art keywords
write
read
memory
data
address
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.)
Withdrawn
Application number
JP2006542120A
Other languages
English (en)
Inventor
大西 貴之
貴之 大西
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2006046272A1 publication Critical patent/JPWO2006046272A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

CPU等のメモリへアクセスを行うデバイスを使用する機器において、キャッシュを使用することなく、また高速アクセスモードを備えていないメモリに対しても高速なメモリアクセスを実現するメモリアクセス装置を提供する。この目的を達成するため、本発明に係るメモリアクセス装置は、書き込み部211がCPU1から第1の書き込み命令を受け取ると、シングルバッファ22から第1の書き込みアドレス及び第1の書き込みデータを受け取り、リアルタイムで書き込み処理を実施しつつ、書き込み処理が完了したか否かに関わらずCPU1に書き込み完了信号2aを送り、読み出し部212がCPU1から第1の読み出し命令を受け取ると、CPU1から第1の読み出しアドレスを受け取り、リアルタイムで読み出し処理を実施し、メモリ3から第1の読み出しデータを受け取って、これをCPU1へ送るとともに読み出し完了信号2bを送る。

Description

本発明は、中央処理装置(CPU:Central Processing Unit、以下、CPU)等のメモリへの書き込み及び読み出しを行うデバイスを搭載した携帯電話やパーソナルコンピュータ等の機器における、メモリへの書き込み処理及び読み出し処理を行うメモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法に関するものである。
携帯電話、パーソナルコンピュータ、その他通信、制御など多くの分野の機器においては、その内部にCPU等のようなメモリへの書き込み及び読み出しを行うデバイスが使用されている。例えばCPUの場合、演算処理に伴うデータの記憶素子としてRAM(Random Access Memory)等のメモリが必須であるが、演算処理の高度化・複雑化に伴い、必要なメモリの容量は増大しつつある。ここで、一般にメモリは容量が大きいものほどデータの読み書き(以下、アクセス)速度が遅いという欠点を有する。従って機器の全体性能を向上するためには、大きなメモリ容量を保ちつつ、アクセスを高速化することが必要となる。
メモリのアクセスを高速化する従来手段として、次の2つの方法が知られている。まず、通常のアクセス対象のメモリは大容量だが低速アクセスしかできないことから、これ以外に高速にアクセスできる小容量のメモリ(以下、内部メモリ)を併用する方法(従来方法1)がある。従来方法1では、CPUは内部メモリへ優先的にアクセスすることで高速化を図ることができる。例えば、内部メモリの一種であるキャッシュメモリ(以下、キャッシュ)を使用し、キャッシュコントローラで動作を制御する方法がある。具体的にはCPUからメモリに書き込む際にはデータを一時的にキャッシュに保存し、キャッシュコントローラがアクセス対象のメモリをキャッシュのデータで更新する。反対にCPUがデータを読み込む際には優先的にキャッシュにアクセスすることで低速なメモリへ直接アクセスしないで済むため、高速なメモリアクセスが可能となる。
一方、メモリ自体に高速アクセスが可能な動作モードを備え、これを優先的に利用する方法(従来方法2)も知られている。従来方法の具体例としては特許文献1に開示されており、RAM自体が元々具備している高速ページモード等の高速アクセスモードを効率的に利用する。高速アクセスモードを利用するためにはアクセスするメモリアドレスが連続している必要がある。特許文献1では、CPUがアクセスするアドレスをメモリアクセス装置のバッファに蓄積し、蓄積されたアドレスの連続性が損なわれた等の所定の条件下で高速アクセスモードを使用することとしている。これにより、総合的に高速なメモリアクセスが可能となる。
特開平9−106372号公報(第4頁、第1図)
従来方法1では、アクセス対象のメモリにキャッシュが対応しない領域がある場合、当該領域に対する高速アクセスを行うことはできない。またキャッシュはCPUからのアクセスに対してのみ有効であるため、CPU以外のデバイスからのアクセス時には使用できない。またキャッシュ方式のうちライトバック方式では、キャッシュにのみデータを書き込み、特定条件によってメモリにデータを書き込むため、キャッシュとメモリ間のデータの整合性を確保するための制御が複雑となり、キャッシュコントローラの回路規模が大きくなる。またライトスルー方式では、キャッシュとメモリ双方に対する書き込み処理を完了しないと次処理に移行できないため、書き込み処理を高速化できないという課題があった。
一方、従来方法2において高速アクセスモードを使用するためには、アクセスするアドレスが連続であることが必要であるが、アドレスの連続性はプログラムに依存して異なる。すなわち従来方法2では常に高速アクセスモードを使用できるとは限らないため、常に効果を期待できるわけではない。またメモリが高速アクセスモードを備えている必要があるため、高速アクセスモードを備えていないメモリには適用できないという課題があった。
この発明に係るメモリアクセス装置は、デバイスから書き込みアドレス及び書き込みデータを受け取りメモリへ書き込みデータを書き込み処理し、デバイスから読み出しアドレスを受け取りメモリから読み出しデータを読み出し処理してデバイスに読み出しデータを送るメモリアクセス装置において、デバイスから受け取った書き込みアドレス及び書き込みデータを蓄積する蓄積手段と、メモリへ書き込みデータを書き込み処理するための第1の制御信号とメモリからの読み出しデータを読み出し処理するための第2の制御信号を作成する制御信号作成手段と、デバイスから第1の書き込み命令を受け取ると前記蓄積手段から第1の書き込みアドレス及び第1の書き込みデータを受け取り、前記制御信号作成手段へ前記第1の制御信号を作成する指示を与え、リアルタイムで前記第1の制御信号によりメモリへ前記第1の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了信号を送る書き込み制御部と、デバイスから第1の読み出し命令を受け取るとデバイスから第1の読み出しアドレスを受け取り、前記制御信号作成手段へ前記第2の制御信号を作成する指示を与え、前記第2の制御信号によりリアルタイムでメモリから第1の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送る読み出し制御部とを備えたものである。
また、この発明に係るメモリアクセス方法は、デバイスから第1の書き込み命令を受け取った場合は、デバイスから受け取った第1の書き込みアドレス及び第1の書き込みデータを蓄積するステップと、メモリへ書き込みデータを書き込み処理するための第1の制御信号を作成するステップと、リアルタイムで前記第1の制御信号によりメモリへ前記第1の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了信号を送るステップとを備え、デバイスから第1の読み出し命令を受け取った場合は、デバイスから第1の読み出しアドレスを受け取るステップと、メモリから読み出しデータを読み出し処理するための第2の制御信号を作成するステップと、前記第2の制御信号によりリアルタイムでメモリから第1の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送るステップとを備えたものである。
また、この発明に係るメモリアクセス方法は、デバイスから第2の書き込み命令を受け取った場合は、デバイスから受け取った第2の書き込みアドレス及び第2の書き込みデータを蓄積するステップと、第1の書き込みデータの書き込み処理を完了した後に、メモリへ書き込みデータを書き込み処理するための第1の制御信号を作成するステップと、前記第1の制御信号によりメモリへ前記第2の書き込みデータを書き込み処理するとともに当該書き込み処理が完了したか否かに関わらずデバイスへ書き込み完了信号を送るステップとを備え、デバイスから第2の読み出し命令を受け取った場合は、第1の書き込みデータの書き込み処理を完了した後に、デバイスから第2の読み出しアドレスを受け取るステップと、メモリから読み出しデータを読み出し処理するための第2の制御信号を作成するステップと、前記第2の制御信号によりリアルタイムでメモリから第2の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送るステップとを備えたものである。
この発明によれば、いずれのメモリ領域へのアクセスであるかまたはどのようなメモリであるかに関わらず、CPU以外のデバイスからのアクセスであっても、プログラムに依存したり回路規模を増大したりすることなく、データの整合性を保ったまま高速アクセスが可能なメモリアクセス装置を実現できる。
また、この発明によれば、いずれのメモリ領域へのアクセスであるかまたはどのようなメモリであるかに関わらず、CPU以外のデバイスからのアクセスであっても、プログラムに依存したり回路規模を増大したりすることなく、高速アクセスが可能なメモリアクセス方法を実現できる。
また、この発明によれば、いずれのメモリ領域へのアクセスであるかに関わらず、CPU以外のデバイスからのアクセスであっても、データの整合性を保ったまま高速アクセスが可能なメモリアクセス方法を実現できる。
この発明の実施の形態1ないし5に用いられるメモリアクセス装置を適用した機器の一部を示すブロック図である。 この発明の実施の形態1及び2に用いられるメモリアクセス装置を示すブロック図である。 この発明の実施の形態1に用いられるメモリアクセス装置の書き込み処理に関する動作を示すフローチャートである。 この発明の実施の形態1に用いられるメモリアクセス装置の読み出し処理に関する動作を示すフローチャートである。 この発明の実施の形態2に用いられるメモリアクセス装置の書き込み処理に関する動作を示すフローチャートである。 この発明の実施の形態2に用いられるメモリアクセス装置の読み出し処理に関する動作を示すフローチャートである。 この発明の実施の形態3に用いられるメモリアクセス装置を示すブロック図である。 この発明の実施の形態3に用いられるメモリアクセス装置の書き込み処理に関する動作を示すフローチャートである。 この発明の実施の形態4に用いられるメモリアクセス装置を示すブロック図である。 この発明の実施の形態4に用いられる多段バッファとアドレス監視部の関係を示す図である。 この発明の実施の形態5に用いられるメモリアクセス装置を示すブロック図である。 この発明の実施の形態6に用いられるメモリアクセス機構を示すブロック図である。
符号の説明
1 デバイスであるCPU
2 メモリアクセス装置
21 バス制御部
211 書き込み制御部である書き込み部
212 読み出し制御部である読み出し部
22 蓄積手段であるシングルバッファ
24 制御信号作成手段である制御信号作成部
25 多段バッファ
26 監視手段であるアドレス監視部
3 メモリ
4 デバイスであるバスマスタ
5 調停器
以下この発明を、その実施の形態を示す図面に基づいて具体的に説明する。なお実施の形態1では、この発明に係るメモリアクセス装置を携帯電話端末等のCPUを搭載した機器へ適用した場合を例にとり説明する。
実施の形態1.
図1はこの発明に係るメモリアクセス装置を適用した機器の一部を示すブロック図である。デバイスであるCPU1からメモリ3に対するアクセスは、すべてメモリアクセス装置2を経由して行われる。CPU1とメモリアクセス装置2は、CPUアドレスバス1a及びCPUデータバス1bによって接続されている。またCPU1からは書き込み命令である書き込み信号1cまたは読み出し命令である読み出し信号1dがメモリアクセス装置2に送られる。これに対してメモリアクセス装置2からは書き込み完了信号2aまたは読み出し完了信号2bがCPU1へ送られる。一方、メモリアクセス装置2とメモリ3は、メモリアドレスバス2c及びメモリデータバス2dによって接続されている。さらにメモリアクセス装置2からはメモリ制御信号2eがメモリ3に送られる。
次にメモリアクセス装置2の動作を2つの場合に分けて説明する。第1の場合として、初期状態すなわちメモリアクセス装置2が書き込み処理も読み出し処理も行っていない状態で、CPU1からメモリ3にデータを書き込む場合の動作を説明する。この場合、図1においてCPU1は第1の書き込み命令である書き込み信号1cをメモリアクセス装置2に送るとともに、第1の書き込みアドレスである書き込みアドレス及び第1の書き込みデータである書き込みデータを、それぞれCPUアドレスバス1a及びCPUデータバス1bを介してメモリアクセス装置2に出力する。このとき、CPU1は書き込み信号1cと読み出し信号1dを同時に送ることがないように制御する。すなわちメモリアクセス装置2に対して、CPU1から書き込みと読み出しの命令が同時に行われることはない。
図2はメモリアクセス装置2を示すブロック図であり、CPUアドレスバス1a及びCPUデータバス1bは、バス制御部21の読み出し制御部である読み出し部212と蓄積手段であるシングルバッファ22の双方と接続される。またシングルバッファ22とバス制御部21の書き込み制御部である書き込み部211は、バッファアドレスバス22a及びバッファデータバス22bで接続される。さらに読み出し部212とインタフェース部23は、読み出しアドレスバス21a及び読み出しデータバス21bで、また書き込み部211とインタフェース部23は、書き込みアドレスバス21c及び書き込みデータバス21dで接続される。なお制御信号作成手段である制御信号作成部24は、バス制御部21からの信号に基づき第1の制御信号である書き込み制御信号24aまたは第2の制御信号である読み出し制御信号24bを作成する。
図2において、CPU1から送られた書き込み信号1cは、バス制御部21の書き込み部211に渡される。書き込み部211は書き込み信号1cを受け取ると、シングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されているか否かを、バッファ状態信号22cに基づき判断する。シングルバッファ22は書き込みアドレスと書き込みデータをそれぞれ1個ずつ保持することができ、例えば1段のファイフォ(FIFO:First−in First−out)で構成される。ファイフォはデータの蓄積量を表す信号としてフルフラグを出力し、蓄積量が一杯(Full)であればフルフラグがH論理となるが、それ以外ではL論理となる。従ってバッファ状態信号22cとしてフルフラグを用いれば、書き込み部211からファイフォへ特に要求をしなくても、ファイフォの蓄積状況を判断できる。
すなわち1段のファイフォの場合、フルフラグがL論理であれば書き込みアドレス及び書き込みデータが蓄積されていないが、フルフラグがH論理であれば書き込みアドレス及び書き込みデータが蓄積されていると判断できる。初期状態では未だ書き込み処理は行われていないため、書き込みアドレス及び書き込みデータは蓄積されておらず、フルフラグはL論理である。すると書き込み部211は以前の書き込み処理は完了していると判断し、CPU1から送られた書き込みアドレス及び書き込みデータを蓄積する蓄積命令をバッファ制御信号21eによりシングルバッファ22へ送る。この蓄積命令に基づき、シングルバッファ22はCPU1から送られた書き込みアドレス及び書き込みデータを蓄積する。シングルバッファがファイフォの場合、書き込みアドレスと書き込みデータが蓄積されたことでフルフラグはH論理に変化する。
書き込み部211は、書き込みアドレス及び書き込みデータをシングルバッファ22に蓄積すると、メモリ3への書き込み処理の完了を待たずにCPU1へ書き込み完了信号2aを送る。CPU1は書き込み完了信号2aを受け取ると、メモリ3への書き込みが完了したと判断するので、次処理に移行することができる。
一方、書き込み部211は制御信号作成部24に対して、書き込み制御信号24aの生成信号21fを送る。制御信号作成部24は書き込み制御信号24aの生成信号21fを受け取ると、チップセレクトやライトイネーブル等、メモリ3への書き込み処理に必要な書き込み制御信号24aを作成し、インタフェース部23に送る。書き込み制御信号24aは、アクセス対象のメモリの種類等により異なるため、制御信号作成部24では対象のメモリに応じた所定の信号が作成される。
さらに書き込み部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とは接続されない。さらに書き込み制御信号24aをメモリ制御信号2eへ接続する。
インタフェース部23は、書き込み部211から送られた書き込みアドレス及び書き込みデータを、メモリアドレスバス2c及びメモリデータバス2dを介してメモリ3へ送るとともに、メモリ制御信号2eとして書き込み制御信号24aをメモリ3へ送る。メモリ3はメモリ制御信号2eに基づき、与えられた書き込みアドレスに書き込みデータを記憶し、データの書き込みが完了する。
以上のように、書き込み処理はシングルバッファ22にデータが蓄積されるとすぐに、すなわちリアルタイムに実施される。なお、シングルバッファ22がファイフォの場合、蓄積していた書き込みアドレス及び書き込みデータを出力することで、フルフラグはL論理に変化し、初期状態に戻る。また、メモリ3に対するメモリ制御信号2eと書き込みアドレス及び書き込みデータとのタイミングの関係は、一般に使用するメモリの種類等により異なる。そこで、あらかじめ書き込み部211からの書き込みアドレス及び書き込みデータの出力タイミングと、メモリ制御信号2eの出力タイミングとの関係がメモリ毎に適した所定の関係となるよう、書き込み部211が出力する書き込みアドレス及び書き込みデータの出力タイミングを調整するものとする。
図3に、以上で説明した第1の場合におけるメモリアクセス装置2の動作を表すフローチャートを示す。初期状態ではフルフラグはL論理であり、ステップS31で書き込み信号1cが書き込み部211へ入力される。次に書き込み部211ではステップS32でフルフラグがL論理であることを判別する。次にステップS33で書き込みアドレス及び書き込みデータをシングルバッファ22に蓄積するとフルフラグはH論理に変化する。次にステップS34で書き込み完了信号2aを出力する。次にステップS35でシングルバッファ22からアドレス及びデータを出力し、ステップS36でタイミング調整のうえ、これらをメモリアクセス装置2から出力する。同時にステップS37で書き込み制御信号24aを作成し、ステップS38でメモリ制御信号2eとしてメモリアクセス装置2から出力する。このとき、インタフェース部23はステップS39で書き込みアドレスバス21c及び書き込みデータバス21dを選択しておく。最後にメモリ3への書き込み処理をステップS3aで実行する。
次に、第2の場合として、初期状態すなわちメモリアクセス装置2が書き込み処理も読み出し処理も行っていない状態で、CPU1がメモリ3からデータを読み出す場合の動作を説明する。この場合、図1においてCPU1は第1の読み出し命令である読み出し信号1dをメモリアクセス装置2に送るとともに、CPUアドレスバス1aを介して第1の読み出しアドレスである読み出しアドレスをメモリアクセス装置2に送る。データ書き込み時と同様に、CPU1は書き込み信号1cと読み出し信号1dを同時に送ることはない。
CPU1から送られた読み出し信号1dは、図2においてバス制御部21の読み出し部212に渡される。読み出し部212は読み出し信号1dを受け取ると、シングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されているか否かを、バッファ状態信号22cに基づき判断する。すなわち、もしシングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されていれば、以前の書き込み処理が完了していないと判断する。上述のようにシングルバッファ22に1段のファイフォを適用する場合、読み出し処理におけるバッファ状態信号22cとしてエンプティフラグを用いることができる。エンプティフラグはファイフォのデータの蓄積量を表す信号として出力され、蓄積量が空(Empty)であればエンプティフラグがH論理となるが、それ以外ではL論理となる。従ってバッファ状態信号22cとしてエンプティフラグを用いれば、読み出し部212からファイフォへ特に要求をしなくても、ファイフォの蓄積状況を判断できる。1段のファイフォでは、空(Empty)か一杯(Full)の2つの状態しかありえないため、エンプティフラグとフルフラグは相補的な信号となる。
すなわちエンプティフラグがL論理であれば書き込みアドレス及び書き込みデータが蓄積されているが、エンプティフラグがH論理であれば書き込みアドレス及び書き込みデータが蓄積されていないと判断できる。初期状態では上述のように書き込みアドレス及び書き込みデータは蓄積されておらず、エンプティフラグはH論理となる。すると読み出し部212は以前の書き込み処理は完了していると判断し、CPU1から送られた読み出しアドレスを受け取る。
アドレスを受け取ると、読み出し部212は制御信号作成部24に対して、読み出し制御信号24bの生成信号21gを送る。制御信号作成部24は読み出し制御信号24bの生成信号21gを受け取ると、チップセレクトやリードイネーブル等、メモリ3からの読み出し処理に必要な読み出し制御信号24bを作成し、インタフェース部23に送る。書き込み処理時と同様に、読み出し制御信号24bは、アクセス対象のメモリの種類等により異なるため、制御信号作成部24では対象のメモリに応じた所定の信号が作成される。
一方、読み出し部212は、読み出しアドレスバス21aを介して、読み出しアドレスをインタフェース部23に送り、同時に読み出し制御信号24bの生成信号21gもインタフェース部23に送る。インタフェース部23は読み出し制御信号24bの生成信号21gを受け取ると、読み出しアドレスバス21a及び読み出しデータバス21bを、それぞれメモリアドレスバス2c及びメモリデータバス2dと接続する。換言すれば書き込みアドレスバス21c及び書き込みデータバス21dは、メモリアドレスバス2c及びメモリデータバス2dとは接続されない。さらに読み出し制御信号24bをメモリ制御信号2eへ接続する。
インタフェース部23は、読み出し部212から送られた読み出しアドレスを、メモリアドレスバス2cを介してメモリ3へ送るとともに、メモリ制御信号2eとして読み出し制御信号24bをメモリ3へ送る。メモリ3はメモリ制御信号2eに基づき、与えられた読み出しアドレスに記憶されている第1の読み出しデータである読み出しデータをメモリデータバス2dに出力する。出力された読み出しデータはインタフェース部23に送られ、さらに読み出しデータバス21bを介して読み出し部212へ渡される。読み出し部212はCPUデータバス1bを介して読み出しデータをCPU1へ渡すとともに、読み出し完了信号2bをCPU1へ出力する。CPU1は読み出し完了信号2bを受け取ることで、読み出しデータの読み出しが完了したと判断するので、次処理に移行することができる。
以上のように、読み出し処理は読み出し信号1dが入力されるとすぐに、すなわちリアルタイムに実施される。なお書き込み処理時と同様、メモリ3に対するメモリ制御信号2eと読み出しアドレスとのタイミングの関係は、一般に使用するメモリの種類等により異なるため、あらかじめ読み出しアドレスとメモリ制御信号2eの出力タイミングの関係がメモリ毎に適した所定の関係となるよう、読み出し部212が出力する読み出しアドレスの出力タイミングを調整するものとする。一方、書き込み処理時と異なり読み出し処理時は、読み出し処理が完了するまで読み出し完了信号2bがCPU1へ出力されないので、読み出し処理の完了前にCPUが次処理に移行することはない。
図4に、以上で説明した実施の形態1の第2の場合におけるメモリアクセス装置2の動作を表すフローチャートを示す。初期状態ではエンプティフラグはH論理であり、ステップS41で読み出し信号1dが読み出し部212へ入力される。次に読み出し部212ではステップS42でエンプティフラグがH論理であることを判別する。次にステップS43で読み出しアドレスを受け取り、ステップS44でタイミング調整のうえ、これをメモリアクセス装置2から出力する。同時にステップS45で読み出し制御信号24bを作成し、ステップS46でメモリ制御信号2eとしてメモリアクセス装置2から出力する。このとき、インタフェース部23はステップS47で読み出しアドレスバス21a及び読み出しデータバス21bを選択しておく。メモリ3へ読み出しアドレスを送ると、ステップS48で読み出しデータを受け取る。受け取った読み出しデータはステップS49でCPU1へ出力されると共に、読み出し完了信号2bが出力される。
以上のように、実施の形態1に係るメモリアクセス装置2はメモリ3への書き込み処理が完了する前に書き込み完了信号2aをCPU1に出力するので、CPU1は次処理に移ることができる。このためライトスルー方式と異なり書き込み処理を高速化でき、高速アクセスを実現できる。また、書き込み処理をリアルタイムで実施するため制御が簡単ですみ、ライトバック方式と比べて回路規模を小さくできる。また実施の形態1ではキャッシュを使用しないため、メモリ3の全ての領域に対して上述のような高速アクセスを実現できる。また高速モードを持たないメモリであっても、さらにアクセスするアドレスが連続でない場合であっても、上述のような高速アクセスを実現できる。
なお、上記実施の形態1においてはメモリアクセス装置2にアクセスするのはCPU1であるとして説明したが、アクセス元は必ずしもCPUである必要はなく、バスの制御主体(以下、バスマスタ)となるデバイスであればよく、例えばDMAC(Direct Memory Access Controller)などであってもよい。すなわち、メモリアクセス装置2はCPU1から独立しているため、メモリアクセス装置2を経由してメモリ3にアクセスする全てのバスマスタに対して適用できる。
なお、上記実施の形態1ではシングルバッファ22としてファイフォを適用するものとして説明をしたが、これは必ずしもファイフォでなくても良い。すなわち1個のアドレスとデータを保持することができる素子であればよく、RAM等やフリップフロップ等であってもよい。
なお、上記実施の形態1ではメモリ3からの読み出し処理においてシングルバッファ22がファイフォの場合、エンプティフラグに基づき制御をするものとしたが、これは必ずしもエンプティフラグでなくても良い。上述のようにシングルバッファ22ではエンプティフラグとフルフラグが相補的な関係となるため、フルフラグに基づき制御をするものとしてもよい。なお反対に、メモリ3への書き込み処理においてはフルフラグに基づき制御をするものとしたが、同様の論理でエンプティフラグに基づいても制御できることは言うまでもない。
実施の形態2.
実施の形態1では、初期状態すなわちメモリアクセス装置2がメモリ3へ書き込み処理も読み出し処理も行っていない状態で、書き込み命令または読み出し命令がなされた場合について説明した。実施の形態2では、メモリアクセス装置2がメモリ3への書き込み処理を実行中に、CPU1が重ねて書き込み命令または読み出し命令をメモリアクセス装置2に対して行った場合について説明する。例えばCPU1がメモリ3への書き込み命令をメモリアクセス装置2へ送り、メモリアクセス装置2から書き込み完了信号2aを受け取った後、次処理で再び同じメモリ3へのアクセスが生じた場合がこれにあたる。なお図面については実施の形態1と同様に図1及び図2を使用する。また動作も、実施の形態1と同様に2つの場合に分けて説明する。
第1の場合として、初期状態でないとき、すなわちメモリアクセス装置2がメモリ3へ第1の書き込み処理を実行している状態で、CPU1からメモリアクセス装置2に対して書き込み命令が重ねてなされた場合について説明する。実施の形態1と同様に、CPU1は第2の書き込み命令である書き込み信号1cをメモリアクセス装置2に送るとともに、第2の書き込みアドレスである新たな書き込みアドレス及び第2の書き込みデータである新たな書き込みデータをメモリアクセス装置2に出力する。書き込み信号1cはバス制御部21の書き込み部211に渡され、書き込み部211はシングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されているか否かをバッファ状態信号22cに基づき判断する。
ここでメモリアクセス装置2はメモリ3への第1の書き込み処理を実行中であるため、シングルバッファ22には第1の書き込みアドレスである以前の書き込みアドレス及び第1の書き込みデータである以前の書き込みデータがまだ蓄積されたままである。すると例えばシングルバッファ22としてファイフォを適用した場合、そのフルフラグはH論理のままである。従って書き込み部211は、書き込みアドレス及び書き込みデータがシングルバッファ22に蓄積されていると判断し、実行中であるメモリ3への第1の書き込み処理を継続する。一方、書き込み部211はシングルバッファ22に対してCPU1から送られた新たな書き込みアドレス及び新たな書き込みデータを蓄積する命令を行わず、またCPU1へ書き込み完了信号2aを送らない。この場合、CPU1は書き込み完了信号2aを受け取らないためメモリ3への書き込みが完了したと判断できない。すなわちCPU1は次処理へ移行することができず、そのまま新たな書き込みアドレス及び新たな書き込みデータをメモリアクセス装置2へ出力し続ける。
メモリアクセス装置2がメモリ3への第1の書き込み処理を継続した結果、この処理が完了すると、実施の形態1で述べたようにシングルバッファ22に蓄積されていた以前の書き込みアドレス及び書き込みデータがなくなり、フルフラグはL論理に変化する。すると書き込み部211は以前の書き込み処理は完了していると判断し、CPU1から送られた新たな書き込みアドレス及び新たな書き込みデータを蓄積する命令をシングルバッファ22へ送る。この蓄積命令に基づき、シングルバッファ22は新たな書き込みアドレス及び新たな書き込みデータを蓄積する。シングルバッファがファイフォの場合、書き込みアドレスと書き込みデータが蓄積されるのでフルフラグは再びH論理に変化する。書き込み部211は上述のように、メモリ3への第2の書き込み処理の完了を待たずにCPU1へ書き込み完了信号2aを送り、CPU1はメモリ3への書き込みが完了したと判断するので次処理に移行することができる。なお新たな書き込みアドレスへのデータの書き込み処理については実施の形態1と同じであるため、以後の処理についての説明は省略する。
図5に、以上で説明した実施の形態2の第1の場合におけるメモリアクセス装置2の動作を表すフローチャートを示す。なお図3と同一のフローについては、同一の符号を付して説明を省略し、異なるフローであるステップS51ないしステップS53について説明する。まずステップS51で書き込み信号1cが書き込み部211へ入力されるが、初期状態ではないため、フルフラグはL論理とは限らない。次に書き込み部211ではステップS52でフルフラグの論理を判別する。そしてフルフラグがL論理であれば実施の形態1と同様の動作となるが、H論理であれば、フルフラグがL論理となるまで判別処理を繰り返す。一方、フルフラグがH論理の場合、以前の書き込み処理はステップS33以降のフローを継続して行い、ステップS3aで書き込み処理を実行する。実施の形態2では、ステップS3aで書き込み処理を実行後、次処理があるか否かをステップS52で判別し、次処理があればステップS52まで戻るものとする。このときステップS35でフルフラグはL論理となっているため、ステップS52で判別処理を繰り返していた書き込み命令についても、以前の書き込み処理に引き続いてステップS33以降の書き込み処理を実行することとなる。
次に第2の場合として、初期状態でないとき、すなわちメモリアクセス装置2がメモリ3へ書き込み処理を実行している状態で、CPU1からメモリアクセス装置2に対して読み出し命令がなされた場合について説明する。実施の形態1と同様に、CPU1は第2の読み出し命令である読み出し信号1dをメモリアクセス装置2に送るとともに、第2の読み出しアドレスである読み出しアドレスをメモリアクセス装置2に出力する。読み出し信号1dはバス制御部21の読み出し部212に渡され、読み出し部212はシングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されているか否かをバッファ状態信号22cに基づき判断する。
ここでメモリアクセス装置2はメモリ3への第1の書き込み処理を実行中であるため、シングルバッファ22には第1の書き込みアドレスである以前の書き込みアドレス及び第1の書き込みデータである以前の書き込みデータがまだ蓄積されたままである。すると例えばシングルバッファ22としてファイフォを適用した場合、そのエンプティフラグはL論理のままである。従って読み出し部212は、書き込みアドレス及び書き込みデータがシングルバッファ22に蓄積されていると判断し、実行中であるメモリ3への第1の書き込み処理を継続する。一方、読み出し部212はCPU1が出力する第2の読み出しアドレスを受け取らず、またCPU1へ読み出し完了信号2bを送らない。この場合、CPU1は読み出し完了信号2bを受け取らないためメモリ3からの読み出し処理が完了したと判断できない。すなわちCPU1は次処理へ移行することができず、そのまま読み出しアドレスをメモリアクセス装置2へ出力し続ける。
メモリアクセス装置2がメモリ3への第1の書き込み処理を継続した結果、この処理が完了すると、実施の形態1で述べたようにシングルバッファ22に蓄積されていた以前の書き込みアドレス及び書き込みデータがなくなり、エンプティフラグはH論理に変化する。すると読み出し部212は以前の書き込み処理は完了していると判断し、CPU1から送られた読み出しアドレスを受け取る。なお以降の読み出し処理については実施の形態1と同様であるため、説明は省略する。
図6に、以上で説明した実施の形態2の第2の場合におけるメモリアクセス装置2の動作を表すフローチャートを示す。なお図4と同一のフローについては、同一の符号を付して説明を省略し、異なるフローであるステップS61ないしステップS64について説明する。まずステップS61で読み出し信号1dが読み出し部212へ入力されるが、初期状態ではないため、エンプティフラグはH論理とは限らない。次に読み出し部212ではステップS62でエンプティフラグの論理を判別する。そしてエンプティフラグがH論理であれば実施の形態1と同様の動作となるが、L論理であれば、ステップS63で全ての書き込み処理が完了したか否かを判別する。書き込み処理の継続中は、シングルバッファ22に書き込みアドレス及び書き込みデータが蓄積されているので、エンプティフラグはL論理のままであり、ステップS63での判別処理を繰り返す。そして全ての書き込み処理が完了すれば、ステップS64でエンプティフラグがH論理となり、ステップS62まで戻る。このときエンプティフラグはH論理となっているため、読み出し命令について、ステップS43以降の読み出し処理を実行することとなる。
以上のように、実施の形態2に係るメモリアクセス装置2は、CPU1がメモリアクセス装置2から書き込み完了信号2aを受信した後、重ねてメモリ3への第2の書き込み命令が発生した場合、メモリアクセス装置2は実行中の第1の書き込み処理の完了後に第2の書き込み処理を開始するとともにCPU1に対し書き込み完了信号2aを送る。このように、CPU1からの第2の書き込み命令が実行されるのは、必ずメモリアクセス装置2が第1の書き込み処理を完了した後となるため、書き込み処理が消失することがない。
さらに、CPU1がメモリアクセス装置2から書き込み完了信号2aを受信した後、第2の読み出し命令が発生した場合、メモリアクセス装置2は実行中の第1の書き込み処理の完了後に第2の読み出し処理を開始する。すなわち、CPU1による第2の読み出し処理が行われるのは必ずメモリアクセス装置2が第1の書き込み処理を完了した後となるため、複雑な制御を行わなくてもメモリ3上のデータの整合性を保つことができる。
なお、上記実施の形態2においてはメモリアクセス装置2がメモリ3への書き込み処理を実行中に、重ねてCPU1から書き込み命令または読み出し命令があった場合について説明した。これに対してメモリ3からの読み出し処理を実行している場合には、CPU1がメモリ3からデータを読み出さなければ読み出し完了信号2bがCPU1へ出力されないため、重ねてCPU1から書き込み命令または読み出し命令がなされることはない。
実施の形態3.
実施の形態2では、メモリアクセス装置2がメモリ3への第1の書き込み処理を実行中に、CPU1が重ねて書き込み命令または読み出し命令を行った場合に、メモリアクセス装置2は実行中の第1の書き込み処理を完了した後に新たな書き込み処理または読み出し処理を開始するものとした。すなわち新たな書き込み命令がなされた場合は、第1の書き込み処理が完了して新たな書き込みアドレス及び新たな書き込みデータが書き込み部211に渡されるまでは、CPU1は新たな書き込み命令に対応する書き込み完了信号2aを受け取らない。したがってCPU1が次処理に移行するまでに、無用な待ち時間が発生する。実施の形態3では、当該無用な待ち時間を短縮するメモリアクセス装置2について説明する。
実施の形態3では、メモリアクセス装置2内のバッファを、有限長の多段バッファ25とする。図7は実施の形態3におけるメモリアクセス装置2のブロック図である。図2におけるシングルバッファ22を、図7では多段バッファ25に置き換えている点で相違する。また、メモリアクセス装置2を適用した機器の一部を示すブロック図としては図1を兼用する。次にメモリアクセス装置2の動作を説明する。初期状態での動作は実施の形態1と同様であるため説明を省略し、初期状態でない場合の動作を実施の形態2と同様に2つの場合に分けて説明する。第1の場合として、メモリアクセス装置2がメモリ3へ書き込み処理を実行している状態で、CPU1からメモリアクセス装置2に対して書き込み命令が重ねてなされた場合について説明する。実施の形態2と同様に、CPU1は書き込み信号1cをメモリアクセス装置2に送るとともに、新たな書き込みアドレス及び新たな書き込みデータをメモリアクセス装置2に出力する。
図7において書き込み信号1cがバス制御部21の書き込み部211に渡されると、書き込み部211は多段バッファ25に蓄積された書き込みアドレス及び書き込みデータが一杯であるか否かを、バッファ状態信号25cに基づき判断する。多段バッファ25は書き込みアドレスと書き込みデータをそれぞれ蓄積容量であるN個ずつ保持することができ、例えばN段(N:2以上の整数)のファイフォで構成される。ファイフォを適用した場合、実施の形態2と同様にバッファ状態信号25cとしてフルフラグを用いることができる。すなわちフルフラグがL論理であればアドレス及びデータの蓄積量がN個未満であり一杯ではないが、フルフラグがH論理であればアドレス及びデータの蓄積量がN個に達しており一杯であると判断できる。実施の形態1または2では、書き込みアドレス及び書き込みデータを1つずつ蓄積するとフルフラグがH論理に変化するが、実施の形態3では書き込みアドレス及び書き込みデータをN個ずつ蓄積するまではフルフラグがL論理を保つ点で相違する。
ここでメモリアクセス装置2はメモリ3への以前の書き込み処理を実行中であり、多段バッファ25には以前の書き込みアドレス及び書き込みデータがまだ蓄積されている。すると例えば多段バッファ25としてN段のファイフォを適用した場合、書き込みアドレス及び書き込みデータの蓄積量がN個未満であればフルフラグはL論理であるが、書き込みアドレス及び書き込みデータの蓄積量がN個に達していれば、フルフラグはH論理である。実施の形態3では、もしフルフラグがL論理であれば、多段バッファ25に新たな書き込みアドレス及び書き込みデータを蓄積することができると判断する。しかし、もしフルフラグがH論理であれば、多段バッファ25に新たな書き込みアドレス及び書き込みデータを蓄積することはできないと判断する。
従ってフルフラグがL論理であれば、書き込み部211は新たな書き込みアドレス及び書き込みデータを多段バッファ25に蓄積する蓄積命令を行う。この蓄積により多段バッファ25の蓄積量がN個に達すればフルフラグはH論理に変化するが、N個未満のままであればフルフラグはL論理のままである。そして書き込み部211は新たな書き込みアドレス及び書き込みデータによるメモリ3への書き込み処理の完了を待たずに、CPU1へ書き込み完了信号2aを送り、CPU1はメモリ3への書き込みが完了したと判断するので、次処理に移行することができる。
一方フルフラグがH論理であれば、書き込み部211は実行中の書き込み処理を継続するものの、新たな書き込みアドレス及び書き込みデータを多段バッファ25に蓄積せず、またCPU1へ書き込み完了信号2aを送らない。CPU1は書き込み完了信号2aを受け取らないためメモリ3への書き込み処理が完了したと判断できない。すなわちCPU1は次処理へ移行することができず、そのまま新たな書き込みアドレス及び書き込みデータをメモリアクセス装置2へ出力し続ける。そしてメモリアクセス装置2がメモリ3への書き込み処理を1個完了すると、多段バッファ25に蓄積された書き込みアドレス及び書き込みデータの数がN−1個になる。すなわち多段バッファ25の蓄積量が一杯ではなくなるため、フルフラグはL論理に変化する。従って書き込み部211は、書き込みアドレス及び書き込みデータを蓄積することができると判断し、多段バッファ25に新たな書き込みアドレス及び書き込みデータを蓄積する蓄積命令を行う。すると多段バッファ25の蓄積量は再びN個に達して一杯になるため、フルフラグはH論理に変化する。書き込み部211は上述のように、メモリ3への書き込み処理の完了を待たずにCPU1へ書き込み完了信号2aを送り、CPU1はメモリ3への書き込みが完了したと判断するので次処理に移行することができる。
メモリアクセス装置2は、多段バッファ25に蓄積された書き込みアドレス及び書き込みデータに関して、CPU1から受け取った順にメモリ3へ書き込み処理を実行する。そして蓄積量が0個になるまで、すなわち全ての書き込み処理を完了するまで継続する。なお、メモリ3への書き込み処理については実施の形態2と同様であるため説明を省略する。
図8に、以上で説明した実施の形態3の第1の場合におけるメモリアクセス装置2の動作を表すフローチャートを示す。なお図3及び図5と同一のフローについては、同一の符号を付して説明を省略し、異なるフローであるステップS81ないしステップS86について説明する。図8においてステップS51で書き込み信号1cが入力されると、ステップS52でフルフラグの論理を判別した結果、フルフラグがL論理であれば、ステップS81で多段バッファ25に書き込みアドレス及び書き込みデータが蓄積される。次に、この蓄積により多段バッファ25が一杯になったか否かをステップS82で判断する。もし一杯であればステップS83でフルフラグがH論理に変化した後、書き込み処理を行うが、一杯にならなければ、フルフラグがL論理のまま書き込み処理を行うとともにステップS52に戻る。ステップS52まで戻るのは、次処理でCPU1から書き込み命令があった場合、書き込みアドレス及び書き込みデータを蓄積できるようにするためである。図5では、このフローが存在しないが、これは実施の形態2ではシングルバッファ22のフルフラグが必ずH論理に変化するため不要だからである。
また図8において、ステップS84で多段バッファ25から書き込みアドレスと書き込みデータを出力するので、多段バッファ25は一杯ではなくなる。そこで、フルフラグの論理をステップS85で判断し、H論理であればステップS86でL論理に変化して処理を継続することとしている。
第2の場合として、メモリアクセス装置2がメモリ3へ書き込み処理を実行している状態で、CPU1からメモリアクセス装置2に対して読み出し命令が重ねてなされた場合について説明する。実施の形態2と同様に、CPU1は読み出し信号1dをメモリアクセス装置2に送るとともに、読み出しアドレスをメモリアクセス装置2に出力する。
図7において読み出し信号1dがバス制御部21の読み出し部212に渡されると、読み出し部212は多段バッファ25に書き込みアドレス及び書き込みデータが1つでも蓄積されているか否かを、バッファ状態信号25cに基づき判断する。上述のように多段バッファ25をN段のファイフォとすれば、読み出し処理の場合はバッファ状態信号25cとしてエンプティフラグを用いることができる。すなわちエンプティフラグがL論理であれば書き込みアドレス及び書き込みデータが1個以上蓄積されているが、エンプティフラグがHであれば書き込みアドレス及び書き込みデータが1個も蓄積されていないと判断できる。
ここでメモリアクセス装置2はメモリ3への以前の書き込み処理を実行中であり、多段バッファ25には以前の書き込みアドレス及び書き込みデータがまだ蓄積されている。すると例えば多段バッファ25としてN段のファイフォを適用した場合、エンプティフラグは必ずL論理となる。するとバス制御部211の書き込み部211はメモリ3への書き込み処理を継続するものの、読み出し部212は読み出しアドレスをCPU1から受け取らず、またCPU1へ読み出し完了信号2bを送らない。この場合、CPU1は読み出し完了信号2bを受け取らないためメモリ3からの読み出し処理が完了したと判断できない。すなわちCPU1は次処理へ移行することができず、そのまま読み出しアドレスをメモリアクセス装置2へ出力し続ける。
そしてメモリアクセス装置2がメモリ3への書き込み処理を全て完了すると、多段バッファ25に蓄積されたアドレス及びデータの数が0個になる。すなわち多段バッファ25の蓄積量が0となるため、エンプティフラグはH論理に変化する。従って読み出し部212は、読み出し処理が可能と判断し、CPU1から読み出しアドレスを受け取る。なお、メモリアクセス装置2が読み出しアドレスを受け取った以降の動作は実施の形態2と同様なため説明を省略する。また、実施の形態3における第2の場合のメモリアクセス装置2の動作を表すフローは、エンプティフラグがH論理になった場合のみ読み出し処理を行うという点で実施の形態2と同じであり、図6と同一となるため、フローチャートを省略する。
以上のように、実施の形態3では、メモリアクセス装置2内のバッファを多段バッファ25とすることにより、メモリアクセス装置2がメモリ3への書き込み処理を実行中に、CPU1が重ねて書き込み命令を行った場合であっても、以前の書き込み処理が完了するまで待つことなく書き込みアドレス及び書き込みデータをメモリアクセス装置2へ渡すことができるので、CPU1が待機状態に陥る無用な待ち時間を減少させることができるという効果がある。
実施の形態4.
実施の形態3では、多段バッファ25に蓄積された書き込みアドレスの連続性を考慮せず、CPU1から受け取った順に、常に1つずつメモリ3へ書き込み処理を行うものとしたが、必ずしも1つずつ処理を行う必要はない。実施の形態4では、多段バッファ25に蓄積された書き込みアドレスが、直前の書き込み処理においてアクセスするアドレスと連続していた場合、メモリアクセス装置2がメモリ3に対してページアクセスやバーストアクセス等の高速アクセスモードを使用して書き込み処理を行うものとする。なお実施の形態4では、メモリ3は高速アクセスモードに対応可能なメモリであるとして説明する。
図9は実施の形態4におけるメモリアクセス装置2のブロック図である。図7との主な相違は、多段バッファ25に蓄積された書き込みアドレスを監視する監視手段であるアドレス監視部26を備える点である。また、メモリアクセス装置2を適用した機器の一部を示すブロック図としては図1を兼用する。次にメモリアクセス装置2の動作について説明する。初期状態において書き込み命令または読み出し命令があった場合は実施の形態1と同様の動作であるため説明を省略する。次に初期状態でないとき、すなわちメモリアクセス装置2がメモリ3へ書き込み処理を実行している場合に、CPU1からメモリアクセス装置2に対して書き込み命令が重ねてなされた場合について説明する。実施の形態3と同様に、CPU1は書き込み信号1cをメモリアクセス装置2に送るとともに、新たな書き込みアドレス及び書き込みデータをメモリアクセス装置2に出力する。書き込み信号1cはバス制御部21の書き込み部212に渡され、書き込み部212は多段バッファ25に蓄積された書き込みアドレス及び書き込みデータが一杯であるか否かを、バッファ状態信号25cに基づき判断する。
実施の形態3と同様に、バッファ状態信号25cのフルフラグがL論理であれば、書き込み部212は新たな書き込みアドレス及び書き込みデータを多段バッファ25に蓄積する。一方フルフラグがH論理であれば、バス制御部21は実行中であるメモリ3への書き込み処理を継続し、処理を完了すると、多段バッファ25に新たな書き込みアドレス及び書き込みデータを蓄積する。
実施の形態4では、アドレス監視部26が多段バッファ25に蓄積された複数の書き込みアドレスを監視する。多段バッファ25に蓄積された書き込みアドレスとアドレス監視部26との関係の一例を図10に示す。図10では、N個の記憶素子101ないし10NにN個の書き込みアドレスが蓄積され、別のN個の記憶素子111ないし11NにN個の書き込みアドレスに対応するN個の書き込みデータが蓄積される。なお、記憶素子101及び102の2個は書き込みアドレスが連続しているものとする。アドレス監視部26は記憶素子101ないし10Nに蓄積された書き込みアドレスを監視し、記憶素子101及び102の書き込みアドレスが連続していると判断すると、これらの書き込みアドレスに対する書き込み処理が行われるタイミングで、書き込み部211にモード指示信号26aを出力する。
書き込み部211は、アドレス監視部26からモード指示信号26aを受け取ると、制御信号作成部24にモード切替指示信号21hを出力する。制御信号作成部24はモード切替指示信号21hを受け取ると、チップセレクトやリードイネーブル等、通常の書き込み処理に必要な信号の他、メモリ3の高速アクセスモードに必要な信号を書き込み制御信号24aとして作成し、インタフェース部23に送る。書き込み部211は高速アクセスモードにおける書き込み制御に合致するタイミングで、連続する2つの書き込みアドレス及び対応する2つの書き込みデータを出力する。メモリ3はメモリ制御信号2eとして送られた書き込み制御信号24aに基づき、与えられた2つの書き込みアドレスにそれぞれの書き込みデータを高速アクセスモードで記憶する。
なお、メモリアクセス装置2がメモリ3へ書き込み処理を実行している場合に、CPU1からメモリアクセス装置2に対して読み出し命令がなされた場合については、実施の形態3と同様の動作であるため説明を省略する。
以上のように実施の形態4によれば、アドレス監視部26が多段バッファ25に蓄積された書き込みアドレスを監視し、アドレスの連続した書き込み処理を行う場合には書き込み部211にモード指示信号26aを出力して、メモリ3の高速アクセスモードを使用して書き込み処理を行うものとした。高速アクセスモードの使用によりメモリアクセス装置2によるメモリ3への書き込み処理に要する時間を減少することができるため、CPU1がメモリアクセス装置2による書き込み処理の完了を待つ時間を総合的に減少させることができる。
なお、上記実施の形態4では、アドレス監視部26が記憶素子101及び102における書き込みアドレスの連続のみを判断したが、連続部分が複数個存在する場合にこれを判断するものとしてもよい。例えば図10の記憶素子10K及び10K+1についても書き込みアドレスが連続していれば、これらの書き込みアドレスに対する書き込み処理時にも高速アクセスモードを使用するものとしてもよい。
なお、上記実施の形態4では、アドレス監視部26が高速アクセスモードの適用を判断するための書き込みアドレスの連続個数を2個としたが、これは必ずしも2個とは限らない。例えば記憶素子101ないし103の3個の書き込みアドレスが連続した場合に高速アクセスモードを適用するものとしてもよく、一般に任意のM個(M:2以上の整数)の書き込みアドレスが連続した場合に高速アクセスモードを適用するとしてもよい。Mが大きくなるほど、アドレス1個ずつを処理する場合に比べて書き込み処理に要する時間を短くすることができるため、高速アクセスモードを使用する効果が大きくなる。
なお、上記実施の形態4では、アドレス監視部26が高速アクセスモードの適用を判断するために書き込みアドレスの連続性を基準としたが、必ずしも書き込みアドレスの連続性を判断の基準とする必要はない。例えば連続している書き込みアドレスが不連続となる場合に、それまで連続した書き込みアドレスについて高速アクセスモードを適用するものとしてもよい。すなわち記憶素子10Kないし102までの書き込みアドレスが連続している場合に、記憶素子101で連続性が途切れたとすると、記憶素子10Kないし102までの書き込みアドレスに対して高速アクセスモードを使用してもよい。この場合、書き込みアドレスの連続性を基準とする方法と比べて連続する個数をカウントする必要がなく、また連続数が多くても常に高速アクセスモードの適用が期待できる。
実施の形態5.
実施の形態3では、メモリアクセス装置2がメモリ3への書き込み処理を実行中に、CPU1が読み出し命令を行った場合には、蓄積された書き込み処理が全て完了してから読み出し処理を行うこととした。このため多段バッファ25の蓄積容量が大きく、多くの書き込みアドレス及び書き込みデータが蓄積されている場合は、読み出し処理の実行が後回しにされてCPU1には長い待ち時間が発生する。実施の形態5では当該長い待ち時間を短縮するメモリアクセス装置2について説明する。
実施の形態5では、多段バッファ25内に読み出しアドレスと同一の書き込みアドレスが存在する場合に、読み出し処理を割り込んで実行することで、読み出し処理の高速化を図る。図11は、実施の形態5におけるメモリアクセス装置2のブロック図である。また、メモリアクセス装置2を適用した機器の一部を示すブロック図としては図1を兼用する。次にメモリアクセス装置2の動作を説明する。初期状態での動作及び初期状態以外の第1の場合の動作は実施の形態3と同様であるため説明を省略する。実施の形態5では初期状態以外の第2の場合、すなわちメモリアクセス装置2がメモリ3へ書き込み処理を実行している状態で、CPU1からメモリアクセス装置2に対して読み出し命令が重ねてなされた場合について説明する。
図11において読み出し信号1dがバス制御部21の読み出し部212に渡されると、読み出し部212は多段バッファ25に書き込みアドレス及び書き込みデータが1つでも蓄積されているか否かを、バッファ状態信号25cに基づき判断する。メモリアクセス装置2はメモリ3への以前の書き込み処理を実行中であり、多段バッファ25には以前の書き込みアドレス及び書き込みデータがまだ蓄積されているため、エンプティフラグは必ずL論理となる。
エンプティフラグがL論理の場合、実施の形態5における読み出し部212はCPU1が出力する読み出しアドレスを受け取るとともに、第2バッファ制御信号21iによりアドレス走査命令を多段バッファ25に送る。多段バッファ25はアドレス走査命令を受け取ると、蓄積している書き込みアドレスをバッファ状態信号25cにより逐次的に読み出し部212へ出力する。読み出し部212は多段バッファ25に蓄積されている書き込みアドレスと、CPU1から受け取った読み出しアドレスを比較する。そして比較した結果、読み出しアドレスと一致する書き込みアドレスが多段バッファ25に存在しなかった場合は、読み出し部212は実施の形態3と同様に、全ての書き込み処理が完了するまで読み出し処理を行わない。
一方アドレスを比較した結果、読み出しアドレスと一致する書き込みアドレスが多段バッファ25に存在した場合は、読み出し部212は第2バッファ制御信号21iにより該当する書き込みアドレスに対応する書き込みデータを出力するデータ出力命令を行う。多段バッファ25はデータ出力命令を受けると、CPUデータバス1bに、該当する書き込みデータを読み出しデータとして出力する。また同時に、読み出し部212は読み出し完了信号2bをCPU1に出力する。CPU1は多段バッファ25が出力する読み出しデータを受け取るとともに読み出し完了信号2bを受け取ると、読み出し処理が完了したと判断して次処理に移行することができる。
なお多段バッファ25からCPUデータバス1bへの出力は、書き込み部211に対する動作とは反対方向のデータの流れであり、書き込み処理とは独立して行われるものとする。
実施の形態6.
実施の形態1ないし5では、CPU1のみからメモリ3へのアクセスがなされる場合について説明した。実施の形態6では、CPU1以外のアクセス元のデバイスとして、別のバスマスタが存在する場合について説明する。この場合メモリ3は、CPU1及び当該別のバスマスタから共通にアクセスされ得る。そして同時にメモリ3へのアクセス命令が発生する可能性がある。しかしメモリ3へ同時に複数のアクセスを行うと、アドレスが衝突してしまう等により正常なメモリアクセスを確保することが難しい。実施の形態6では、各アクセス元が調停器を経由してメモリアクセス装置2にアクセスするものとする。
図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へ送る。
次に動作について説明する。CPU1またはバスマスタ4のいずれか一方のアクセス元のみからメモリ3へのアクセスが発生した場合、調停器5は当該アクセスが発生したアクセス元からのバスを調停器アドレスバス5a及び調停器データバス5bと接続する。すなわち、例えばCPU1のみからアクセスが発生した場合、書き込み信号1cまたは読み出し信号1dが調停器5に送られる。すると調停器5はCPUアドレスバス1a及びCPUデータバス1bを、それぞれ調停器アドレスバス5a及び調停器データバス5bに接続し、書き込み信号5cまたは読み出し信号5dをメモリアクセス装置2へ送る。そして調停器5がメモリアクセス装置2から書き込み完了信号2aまたは読み出し完了信号2bを受け取ると、書き込み完了信号5eまたは読み出し完了信号5fをCPU1へ送る。
同様に、バスマスタ4のみからアクセスが発生した場合、書き込み信号4cまたは読み出し信号4dが調停器5に送られる。すると調停器5はバスマスタアドレスバス4a及びバスマスタデータバス4bを、それぞれ調停器アドレスバス5a及び調停器データバス5bに接続し、書き込み信号5cまたは読み出し信号5dをメモリアクセス装置2へ送る。そして調停器5がメモリアクセス装置2から書き込み完了信号2aまたは読み出し完了信号2bを受け取ると、書き込み完了信号5gまたは読み出し完了信号5hをバスマスタ4へ送る。
このように調停器5を設けたことで、CPU1またはバスマスタ4のいずれかのアクセス元からアクセスがあった場合には、調停器5及びメモリアクセス装置2を介してメモリ3へのアクセスを確保することができる。なお、以降の処理は実施の形態3及び実施の形態4と同様であるため説明を省略する。
次に、CPU1及びバスマスタ4の双方のアクセス元から同時にアクセスが発生した場合について説明する。この場合、調停器5はCPU1からのアクセスのみを許可して上述のようにメモリアクセス装置2との接続を行う。一方、バスマスタ4からのアクセスは許可しない。すなわち書き込み完了信号5gまたは読み出し完了信号5hはバスマスタ4へ送られず、バスマスタ4は処理を待機する。
CPU1からのアクセスが完了した場合、メモリアクセス装置2は書き込み完了信号2aまたは読み出し完了信号2bを出力するので、調停器5はこれを受け取るとCPU1からのアクセスが完了したと判断し、書き込み完了信号5eまたは読み出し完了信号5fをCPU1へ送る。そしてCPUアドレスバス1a及びCPUデータバス1bと調停器アドレスバス5a及び調停器データバス5bとの接続を切り、引き続きバスマスタ4からのアクセスを許可する。すなわち上述と同様にバスマスタ4からのアクセスを許可してメモリアクセス装置2との接続を行う。
以上のように、調停器5が複数のアクセス元からのアクセスを制御することで、メモリアクセス装置2へのアクセス元を常に1つだけにすることができる。従って、CPU1以外のアクセス元としてバスマスタ4が存在する場合であっても、メモリ3へ同時に複数のアクセスがなされてアドレスが衝突する等の不都合は生じず、正常なメモリアクセスを確保することができるという効果を奏する。
なお、上記実施の形態6では、CPU1以外のバスマスタ4を1個備えるものとしたが、これは2個以上でもよい。また、上記実施の形態6では、調停器5はCPU1とバスマスタ4から同時にアクセスが発生した場合、CPU1からのアクセスを優先してメモリアクセス装置2へ接続するものとして説明したが、これは必ずしも必要ではない。例えばバスマスタ4からのアクセスを優先してメモリアクセス装置2へ接続するものとしてもよい。
この発明は携帯電話やパソコン、その他通信、制御などの分野においてCPU等のようにメモリへの書き込み及び読み出しを行うデバイスを用いて制御を行う機器に利用できる。

Claims (9)

  1. デバイスから書き込みアドレス及び書き込みデータを受け取りメモリへ書き込みデータを書き込み処理し、デバイスから読み出しアドレスを受け取りメモリから読み出しデータを読み出し処理してデバイスに読み出しデータを送るメモリアクセス装置において、デバイスから受け取った書き込みアドレス及び書き込みデータを蓄積する蓄積手段と、メモリへ書き込みデータを書き込み処理するための第1の制御信号とメモリからの読み出しデータを読み出し処理するための第2の制御信号を作成する制御信号作成手段と、デバイスから第1の書き込み命令を受け取ると前記蓄積手段から第1の書き込みアドレス及び第1の書き込みデータを受け取り、前記制御信号作成手段へ前記第1の制御信号を作成する指示を与え、リアルタイムで前記第1の制御信号によりメモリへ前記第1の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了信号を送る書き込み制御部と、デバイスから第1の読み出し命令を受け取るとデバイスから第1の読み出しアドレスを受け取り、前記制御信号作成手段へ前記第2の制御信号を作成する指示を与え、前記第2の制御信号によりリアルタイムでメモリから第1の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送る読み出し制御部とを備えることを特徴とするメモリアクセス装置。
  2. 書き込み制御部は、デバイスから第2の書き込み命令を受け取ると、第1の書き込みデータの書き込み処理を完了した後に、前記蓄積手段から第2の書き込みアドレス及び第2の書き込みデータを受け取り、前記制御信号作成手段へ前記第1の制御信号を作成する指示を与え、前記第1の制御信号によりメモリへ前記第2の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了信号を送り、読み出し制御部は、デバイスから第2の読み出し命令を受け取ると、第1の書き込みデータの書き込み処理を完了した後に、デバイスから第2の読み出しアドレスを受け取り、前記制御信号作成手段へ前記第2の制御信号を作成する指示を与え、前記第2の制御信号によりリアルタイムでメモリから第2の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送ることを特徴とする、請求項1に記載のメモリアクセス装置。
  3. 蓄積手段は、複数の書き込みアドレス及び書き込みデータを蓄積し、蓄積容量未満の場合はデバイスから書き込みアドレス及び書き込みデータを受け取って蓄積し、蓄積容量に達している場合は蓄積容量未満となるのを待ってデバイスから書き込みアドレス及び書き込みデータを受け取って蓄積し、書き込み制御部は、デバイスから第1または第2の書き込み命令を受け取ると、前記蓄積手段が第1または第2の書き込みアドレス及び第1または第2の書き込みデータを受け取った後に、前記第1または第2の書き込みデータの書き込み処理が完了したか否かに関わらずデバイスへ書き込み完了信号を送る一方、前記蓄積手段から前記書き込みアドレス及び書き込みデータを書き込み命令の順番に受け取り、制御信号作成手段へ第1の制御信号を作成する指示を与え、書き込み命令の順番にメモリへ前記書き込みデータを書き込み処理し、読み出し制御部は、デバイスから読み出し命令を受け取ると、前記蓄積手段に蓄積された全ての書き込みアドレス及び書き込みデータに関する書き込み処理が完了した後にデバイスから読み出しアドレスを受け取り、制御信号作成手段へ第2の制御信号を作成する指示を与え、リアルタイムでメモリから読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送ることを特徴とする、請求項2に記載のメモリアクセス装置。
  4. 蓄積手段に蓄積された書き込みアドレスの連続性または不連続性を監視する監視手段を備え、監視手段の監視結果に基づき、連続した書き込みアドレスに対して高速アクセスモードにより一括して書き込みデータを書き込み処理することを特徴とする、請求項3に記載のメモリアクセス装置。
  5. 読み出し制御部は、デバイスから読み出し命令を受け取ると、デバイスから読み出しアドレスを受け取り、前記読み出しアドレスと蓄積手段に蓄積された全ての書き込みアドレスとを比較し、前記読み出しアドレスと一致する書き込みアドレスが存在する場合は、当該一致する書き込みアドレスに対応する書き込みデータをデバイスへ送る指示を蓄積手段に与えるとともにデバイスへ読み出し完了信号を送り、蓄積手段は、前記読み出し制御部からの指示に従いデバイスへ書き込みデータを出力することを特徴とする、請求項3に記載のメモリアクセス装置。
  6. メモリへのアクセスを発生する複数のデバイスと、複数のデバイスとメモリアクセス装置との間に挿入され複数のデバイスからのアクセスを1つ選択してメモリアクセス装置に渡す調停器と、請求項1に記載のメモリアクセス装置とを備えることを特徴とするメモリアクセス機構。
  7. メモリへのアクセスを発生するデバイスと、デバイスによるアクセス対象となるメモリと、請求項1に記載のメモリアクセス装置とを備えることを特徴とする携帯電話端末。
  8. デバイスから第1の書き込み命令を受け取った場合は、デバイスから受け取った第1の書き込みアドレス及び第1の書き込みデータを蓄積するステップと、メモリへ書き込みデータを書き込み処理するための第1の制御信号を作成するステップと、リアルタイムで前記第1の制御信号によりメモリへ前記第1の書き込みデータを書き込み処理するとともにデバイスへ書き込み完了信号を送るステップとを備え、デバイスから第1の読み出し命令を受け取った場合は、デバイスから第1の読み出しアドレスを受け取るステップと、メモリから読み出しデータを読み出し処理するための第2の制御信号を作成するステップと、前記第2の制御信号によりリアルタイムでメモリから第1の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送るステップとを備えることを特徴とするメモリアクセス方法。
  9. デバイスから第2の書き込み命令を受け取った場合は、デバイスから受け取った第2の書き込みアドレス及び第2の書き込みデータを蓄積するステップと、第1の書き込みデータの書き込み処理を完了した後に、メモリへ書き込みデータを書き込み処理するための第1の制御信号を作成するステップと、前記第1の制御信号によりメモリへ前記第2の書き込みデータを書き込み処理するとともに当該書き込み処理が完了したか否かに関わらずデバイスへ書き込み完了信号を送るステップとを備え、デバイスから第2の読み出し命令を受け取った場合は、第1の書き込みデータの書き込み処理を完了した後に、デバイスから第2の読み出しアドレスを受け取るステップと、メモリから読み出しデータを読み出し処理するための第2の制御信号を作成するステップと、前記第2の制御信号によりリアルタイムでメモリから第2の読み出しデータを読み出し処理しデバイスへ送るとともにデバイスへ読み出し完了信号を送るステップとを備えることを特徴とするメモリアクセス方法。
JP2006542120A 2004-10-06 2004-10-06 メモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法 Withdrawn JPWO2006046272A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/014722 WO2006046272A1 (ja) 2004-10-06 2004-10-06 メモリアクセス装置

Publications (1)

Publication Number Publication Date
JPWO2006046272A1 true JPWO2006046272A1 (ja) 2008-05-22

Family

ID=36227524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542120A Withdrawn JPWO2006046272A1 (ja) 2004-10-06 2004-10-06 メモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法

Country Status (2)

Country Link
JP (1) JPWO2006046272A1 (ja)
WO (1) WO2006046272A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340199B (zh) * 2023-05-31 2023-10-13 太初(无锡)电子科技有限公司 一种地址冲突处理系统、方法、电子设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61168058A (ja) * 1985-01-22 1986-07-29 Nec Corp 記憶装置
JPH03263156A (ja) * 1990-03-14 1991-11-22 Hitachi Ltd マイクロコンピュータ
JPH06175911A (ja) * 1992-12-08 1994-06-24 Nec Eng Ltd メモリ制御方式
WO1995002248A1 (en) * 1993-07-07 1995-01-19 Vertex Semiconductor Corporation Memory buffer having selective flush capability
JP3923010B2 (ja) * 2002-12-20 2007-05-30 株式会社デジタル メモリ制御回路

Also Published As

Publication number Publication date
WO2006046272A1 (ja) 2006-05-04

Similar Documents

Publication Publication Date Title
US6341318B1 (en) DMA data streaming
US20130036426A1 (en) Information processing device and task switching method
US8504743B2 (en) Information processing system and data transfer method
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
US7434023B2 (en) Memory device
CN113485672B (zh) 基于fifo存储器的信息生成方法、装置、设备及介质
JP4210024B2 (ja) 記憶装置を動作する方法および記憶装置
CN117056255B (zh) 一种原子操作装置、方法、设备及介质
JP3183844B2 (ja) 可変パイプライン段数のデータ処理装置
JPWO2006046272A1 (ja) メモリアクセス装置、メモリアクセス機構、携帯電話端末及びメモリアクセス方法
JP4192171B2 (ja) メモリアクセス方法及びメモリアクセス装置
CN102385555B (zh) 一种缓存系统和数据缓存的方法
CN115237349A (zh) 数据读写控制方法、控制装置、计算机存储介质和电子设备
JP2007206924A (ja) 演算処理システム
US10853123B2 (en) Memory module
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
KR19980058221A (ko) 파이프라인 정지회로를 구비한 프로세서
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
JP2006285724A (ja) 情報処理装置および情報処理方法
JP4882116B2 (ja) バッファ制御装置およびバッファ制御方法
JP7202225B2 (ja) 半導体装置及びデバッグシステム
JPH11184761A (ja) リードモディファイライト制御システム
CN113127399B (zh) 一种通用串列汇流排装置以及存取方法
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090325