(57)【要約】【課題】プロセッサに対するメモリアクセスの応答時間を従来のものより短縮することができるメモリアクセス装置を提供する。【解決手段】メモリ制御部１０４は、メモリ１０５における特定アドレスと、特定アドレスに続いてアクセスが要求されたときにキャッシュ１０３でミスヒットが発生する対応アドレスとの対応を表す対応情報を記憶する対応情報記憶部１０４１１と、キャッシュ１０２から特定アドレスに対するアクセスの要求があったときに、対応情報によって特定アドレスに対応付けられた対応アドレスに対するアクセスも要求するアクセス要求部１０４１と、対応アドレスから読み込まれたメモリデータを格納するバッファ１０４１４１とを有し、アクセス要求部１０４１は、キャッシュ１０３から対応アドレスに対するアクセスの要求があったときに、バッファ１０４１４１に格納されたメモリデータで、この要求に応答する。【選択図】図１
2009193346.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに設けられたキャッシュと、
前記キャッシュによってアクセスが要求されるメモリと、
前記メモリを制御するメモリ制御部とを備えたメモリアクセス装置において、
前記メモリ制御部は、
前記キャッシュからのアクセスの要求に応じて前記メモリにアクセスするメモリアクセス部と、
前記メモリにおける特定アドレスと、前記特定アドレスに続いてアクセスが要求されたときに前記キャッシュでミスヒットが発生する対応アドレスとの対応を表す対応情報を記憶する対応情報記憶部と、
前記キャッシュから前記特定アドレスに対するアクセスの要求があったときに、前記対応情報によって該特定アドレスに対応付けられた対応アドレスに対するアクセスも要求するアクセス要求部と、
前記アクセス要求部による要求に応じて、前記メモリアクセス部によって該対応アドレスから読み込まれたメモリデータを格納するバッファと、を有し、
前記アクセス要求部は、前記キャッシュから該対応アドレスに対するアクセスの要求があったときに、前記バッファに格納されたメモリデータで該要求に応答することを特徴とするメモリアクセス装置。
【請求項２】
前記特定アドレスは、メモリアクセスの命令を表すメモリデータの格納先を表し、前記プロセッサによってアクセスが要求されたときに前記キャッシュでミスヒットが発生するアドレスであり、
前記対応アドレスは、前記対応情報によって対応付けられた特定アドレスに格納されたメモリデータが表す命令にしたがって前記プロセッサによってアクセスが要求されたときに前記キャッシュでミスヒットが発生するアドレスであることを特徴とする請求項１に記載のメモリアクセス装置。
【請求項３】
前記特定アドレスに格納されたメモリデータと、前記対応アドレスに格納されたメモリデータとは、前記メモリにおいて連続した記憶領域に格納されていることを特徴とする請求項２に記載のメモリアクセス装置。
【請求項４】
前記対応情報は、前記各特定アドレスに対応する論理アドレス、および、前記各対応アドレスに対する論理アドレスをさらに表し、
前記アクセス要求部は、前記対応情報に基づいて、前記キャッシュからアクセスが要求された論理アドレスを前記特定アドレスおよび前記対応アドレスの一方に変換することを特徴とする請求項３に記載のメモリアクセス装置。
【請求項５】
前記メモリは、複数のメモリデバイスによって構成され、
前記特定アドレスに格納されたメモリデータと、前記対応アドレスに格納されたメモリデータとは、互いに異なる前記メモリデバイスにおいて同一の共通アドレスで示される記憶領域に格納されていることを特徴とする請求項２に記載のメモリアクセス装置。
【請求項６】
前記対応情報は、前記各メモリデバイスにおいて前記共通アドレスに対応する各論理アドレスをさらに表し、
前記アクセス要求部は、前記対応情報に基づいて、前記キャッシュからアクセスが要求された論理アドレスを前記共通アドレスに変換することを特徴とする請求項５に記載のメモリアクセス装置。
【請求項７】
前記プロセッサは、前記メモリ制御部を介してプログラムを前記メモリに書き込んで実行し、
前記特定アドレスは、前記メモリにおける前記プログラムの記憶領域の末尾を示し、
前記対応アドレスは、前記メモリにおける前記プログラムの記憶領域の先頭を示すことを特徴とする請求項２に記載のメモリアクセス装置。
【請求項８】
前記メモリ制御部は、前記キャッシュから前記特定アドレスに対するアクセスの要求があったときから、前記対応情報によって該特定アドレスに対応付けられた対応アドレスに対するアクセスの要求に対して前記アクセス要求部が応答するまで、前記メモリの他のメモリマスタからのメモリアクセスの要求を保留するアクセス調停部を有することを特徴とする請求項１乃至請求項６の何れかに記載のメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス装置に関し、特に、プロセッサにキャッシュを用いてメモリアクセスを行わせるメモリアクセス装置に関するものである。
【背景技術】
【０００２】
近年のパーソナルコンピュータ、デジタルカメラ、デジタルテレビおよび携帯電話などのデジタル家電製品は、プロセッサと、プロセッサに用いられる命令キャッシュやデータキャッシュと、記憶用途のメモリと、キャッシュとメモリとの間のアクセス制御を行うメモリ制御部とを備えたメモリアクセス装置を構成する。図１９は、従来のメモリアクセス装置の典型的な構成を示すものである。
【０００３】
図１９において、従来の第１のメモリアクセス装置は、プロセッサ５０１と、命令キャッシュ５０２と、データキャッシュ５０３と、メモリ制御部５０４と、メモリ５０５と、メモリ５０５へのアクセスを行うためのメモリバス５０６、５０７、５０８、５０９、５０１０と、プロセッサ５０１からメモリ制御部５０４内のレジスタの制御を行うためのホストバス５０１１とを有する。
【０００４】
このような従来の第１のメモリアクセス装置においては、プロセッサ５０１がプログラムを処理しているときに、命令キャッシュ５０２でミスヒットが発生し、このミスヒットの発生に応じてメモリ制御部５０４によってメモリ５０５から読み出されたメモリデータが表す命令がメモリアクセスの命令であり、この命令の実行によりデータキャッシュ５０３でミスヒットが発生した場合には、このミスヒットの発生に応じてメモリ制御部５０４がメモリ５０５からメモリデータを読み出していた。
【０００５】
また、従来の第２のメモリアクセス装置は、データキャッシュで発生するミスヒットによるメモリアクセスの待ち時間を軽減するために、メモリアクセスのプリフェッチを実行することにより、データアクセスの待ち時間を見かけ上少なくみせるように工夫されていた（例えば、特許文献１参照）。
【特許文献１】特開平９−２２３６１号公報（第２頁）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の第１のメモリアクセス装置は、命令キャッシュ５０２で発生したミスヒットによるメモリアクセスと、命令が実行された後のデータキャッシュ５０３で発生したミスヒットによるメモリアクセスとの２回のメモリアクセスの間に他のメモリマスタからのメモリアクセスが要求されると、メモリ制御部が２回目のメモリアクセスの受理を遅らせてしまうため、プロセッサに対するメモリアクセスの応答時間が長くなるという課題があった。
【０００７】
また、従来の第２のメモリアクセス装置は、メモリアクセスの命令を実行するのに先立ってメモリデータの読み出しを行うため、メモリアクセスの命令を実行したときのメモリアクセスの待ち時間は短くなるが、メモリアクセスの回数は減らず、プロセッサに対するメモリアクセスの応答時間を短縮できていない。
【０００８】
本発明は、従来の課題を解決するためになされたもので、プロセッサに対するメモリアクセスの応答時間を従来のものより短縮することができるメモリアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のメモリアクセス装置は、プロセッサと、前記プロセッサに設けられたキャッシュと、前記キャッシュによってアクセスが要求されるメモリと、前記メモリを制御するメモリ制御部とを備えたメモリアクセス装置において、前記メモリ制御部は、前記キャッシュからのアクセスの要求に応じて前記メモリにアクセスするメモリアクセス部と、前記メモリにおける特定アドレスと、前記特定アドレスに続いてアクセスが要求されたときに前記キャッシュでミスヒットが発生する対応アドレスとの対応を表す対応情報を記憶する対応情報記憶部と、前記キャッシュから前記特定アドレスに対するアクセスの要求があったときに、前記対応情報によって該特定アドレスに対応付けられた対応アドレスに対するアクセスも要求するアクセス要求部と、前記アクセス要求部による要求に応じて、前記メモリアクセス部によって該対応アドレスから読み込まれたメモリデータを格納するバッファと、を有し、前記アクセス要求部は、前記キャッシュから該対応アドレスに対するアクセスの要求があったときに、前記バッファに格納されたメモリデータで該要求に応答する構成を有している。
【００１０】
この構成により、本発明のメモリアクセス装置は、特定アドレスに対するアクセスの要求を受けたときにバッファに読み込んでおいたメモリデータで、次にアクセスが要求される対応アドレスに対するアクセスの要求に応答するため、プロセッサに対するメモリアクセスの応答時間を従来のものより短縮することができる。
【発明の効果】
【００１１】
本発明は、プロセッサに対するメモリアクセスの応答時間を従来のものより短縮することができるといった効果を有するメモリアクセス装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１３】
（第１の実施の形態）
本発明の第１の実施の形態のメモリアクセス装置を図１に示す。
【００１４】
図１に示すように、メモリアクセス装置１は、複数のメモリマスタによって共有されるメモリ１０５と、メモリマスタを構成するＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等のプロセッサ１０１と、プロセッサ１０１が用いる命令キャッシュ１０２およびデータキャッシュ１０３と、メモリマスタからのメモリアクセス要求（以下、単に「コマンド」という。）に応じてメモリ１０５にアクセスするメモリ制御部１０４と、メモリアクセスに用いられるメモリバス１０６、１０７、１０８、１０９、１０１０、１０４３と、プロセッサ１０１からメモリ制御部１０４内のレジスタの制御を行うためのホストバス１０１１とを備えている。
【００１５】
メモリ制御部１０４は、命令の格納アドレス（以下、単に「プログラムアドレス」という。）と当該命令によって参照されるデータの格納アドレス（以下、単に「データアドレス」という。）との対応を表す対応情報が記憶された対応情報記憶部１０４１１と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドが１つのコマンドとして結合できるか否かを判断し、結合できると判断した両コマンドを結合してメモリアクセスを要求するアクセス要求部１０４１と、アクセス要求部１０４１および図示しない他のメモリマスタからのコマンドを調停するアクセス調停部１０４４と、調停されたコマンドを受けてメモリ１０５にアクセスするメモリアクセス部１０４２と、アクセス要求部１０４１によって結合されたコマンドに応じて、メモリアクセス部１０４２によってデータアドレスから読み込まれたメモリデータを格納するバッファ１０４１４１とを有している。
【００１６】
図２に示すように、アクセス要求部１０４１は、対応情報に含まれるプログラムアドレスと命令キャッシュ１０２からのコマンドによってアクセスが要求されているアドレスとを比較するアドレス比較部１０４１２と、プログラムアドレスに対するアクセス要求を表すコマンドとデータアドレスに対するアクセス要求を表すコマンドとを結合した結合コマンドをアドレス比較部１０４１２による比較の結果に応じて生成する結合コマンド生成部１０４１３と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドもしくは結合コマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２に発行するコマンド発行制御部１０４１４とを有している。
【００１７】
対応情報記憶部１０４１１には、図３に示すような対応情報が記憶されている。ここで、対応情報に含まれるプログラムアドレスは、メモリアクセスの命令を表すメモリデータの格納先を表し、プロセッサ１０１によってアクセスが要求されたときに命令キャッシュ１０２でミスヒットが発生するアドレスである。
【００１８】
また、対応情報に含まれるデータアドレスは、対応情報によって対応付けられたプログラムアドレスに格納されたメモリデータが表す命令にしたがってプロセッサ１０１によってアクセスが要求されたときにデータキャッシュ１０３でミスヒットが発生するアドレスである。
【００１９】
これら対応情報は、例えば、図示しないＲＯＭ（Read Only Memory）等に予め記憶され、プロセッサ１０１によってホストバス１０１１を介してメモリアクセス装置１の起動時等に対応情報記憶部１０４１１に登録される。
【００２０】
図３において、アドレス比較部１０４１２は、対応情報記憶部１０４１１に記憶された対応情報に含まれる各プログラムアドレスと、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスとを比較し、比較結果を表すアドレス比較結果信号を結合コマンド生成部１０４１３とコマンド発行制御部１０４１４とに送信するようになっている。
【００２１】
結合コマンド生成部１０４１３は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部１０４１１に記憶された対応情報に含まれることをアドレス比較部１０４１２によって送信されたアドレス比較結果信号が表す場合には、命令キャッシュ１０２からのコマンドと、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスに対応情報によって対応付けられたデータアドレスに対するアクセス要求を表すコマンドとを結合した結合コマンドを生成するようになっている。
【００２２】
ここで、メモリ１０５においては、各対応情報に含まれるプログラムアドレスに格納された命令と、このプログラムアドレスに対応情報によって対応付けられたデータアドレスに格納されたデータとは、図４に示すように、連続した領域に格納されている。
【００２３】
なお、これら命令とデータとをメモリ１０５の連続した領域に格納するには、プロセッサ１０１に実行させるプログラムをコンパイラやプログラム開発ツールを用いて予め調整するか、命令キャッシュ１０２やデータキャッシュ１０３の前後に配置されたプロセッサ１０１のＭＭＵ（Memory Management Unit、メモリ管理ユニット）が有する論理アドレスから物理アドレスへの変換機能を、プロセッサ１０１に実行させるオペレーティングシステムによって制御すること等で実現する。
【００２４】
結合コマンド生成部１０４１３は、具体的には、当該プログラムアドレスから、このプログラムアドレスに対応情報によって対応付けられたデータアドレスに格納されたデータの最終アドレスまでのアクセスを要求する結合コマンドを生成するようになっている。
【００２５】
コマンド発行制御部１０４１４は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部１０４１１に記憶された対応情報に含まれることをアドレス比較部１０４１２によって送信されたアドレス比較結果信号が表す場合には、結合コマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２に発行するようになっている。
【００２６】
一方、コマンド発行制御部１０４１４は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部１０４１１に記憶された対応情報に含まれないことをアドレス比較結果信号が表す場合には、命令キャッシュ１０２からのコマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２にそのまま発行するようになっている。
【００２７】
また、コマンド発行制御部１０４１４は、アクセス調停部１０４４を介してメモリアクセス部１０４２に結合コマンドを発行した場合には、この結合コマンドの発行に応じてメモリアクセス部１０４２がメモリ１０５から取得したメモリデータのうち、命令を表す部分を命令キャッシュ１０２に送信し、データを表す部分をバッファ１０４１４１に読み込むようになっている。
【００２８】
また、コマンド発行制御部１０４１４は、バッファ１０４１４１に読み込んだデータのデータアドレスに対するアクセスがデータキャッシュ１０３から要求された場合には、バッファ１０４１４１に読み込んだデータをデータキャッシュ１０３に送信するようになっている。
【００２９】
アクセス調停部１０４４はコマンド発行制御部１０４１４から結合コマンドが発行されてから、バッファ１０４１４１に読み込まれたデータがデータキャッシュ１０３に送信されるまでは、他のメモリマスタからのコマンドを保留するようになっている。
【００３０】
以上のように構成されたメモリアクセス装置１について図５ないし図７を用いてその動作を説明する。
【００３１】
図５は、メモリアクセス装置１の命令フェッチ動作を説明するためのフロー図である。
【００３２】
まず、フェッチする命令が命令キャッシュ１０２にキャッシュされているか否かがプロセッサ１０１によって確認される（Ｓ２００１）。ここで、命令キャッシュ１０２に当該命令がキャッシュされている場合には、命令フェッチ動作は終了する。
【００３３】
一方、命令キャッシュ１０２に当該命令がキャッシュされていない場合、すなわち、命令キャッシュ１０２でミスヒットが発生した場合には、命令キャッシュ１０２から当該命令を取得するためのコマンドが発行され、このコマンドによってアクセスが要求されたアドレスと、対応情報記憶部１０４１１に予め登録しておいた対応情報に含まれる各プログラムアドレスとが一致するかどうかの比較がアドレス比較部１０４１２によって行われる（Ｓ２００２）。
【００３４】
ここで、命令キャッシュ１０２から発行されたコマンドによってアクセスが要求されたアドレスと一致するプログラムアドレスが対応情報に含まれていた場合には、当該コマンドと、当該プログラムアドレスに対応情報によって対応付けられたデータアドレスに格納されたデータを取得するためのコマンドとが結合された結合コマンドが結合コマンド生成部１０４１３によって生成され（Ｓ２００３）、この結合コマンドがコマンド発行制御部１０４１４によってアクセス調停部１０４４を介してメモリアクセス部１０４２に発行される（Ｓ２００４）。
【００３５】
一方、命令キャッシュ１０２から発行されたコマンドによってアクセスが要求されたアドレスと一致するプログラムアドレスが対応情報に含まれていなかった場合には、命令キャッシュ１０２から発行されたコマンドがコマンド発行制御部１０４１４によってアクセス調停部１０４４を介してメモリアクセス部１０４２にそのまま発行される（Ｓ２００５）。
【００３６】
次に、コマンド発行制御部１０４１４によるコマンドの発行に応じて、当該コマンドによってアクセスが要求されたアドレスに格納されたメモリデータがメモリアクセス部１０４２によってメモリ１０５から取得される（Ｓ２００６）。
【００３７】
ここで、コマンド発行制御部１０４１４によって発行されたコマンドが結合コマンドであった場合には（Ｓ２００７）、アクセス調停部１０４４の状態が、他のメモリマスタからのコマンドを保留するコマンド保留状態になる（Ｓ２００８）。
【００３８】
また、メモリ１０５から得られたメモリデータのうち、命令を表す部分がコマンド発行制御部１０４１４によって命令キャッシュ１０２にキャッシュされ（Ｓ２００９）、データを表す部分がコマンド発行制御部１０４１４によってバッファ１０４１４１に書き込まれ（Ｓ２０１０）、命令フェッチ動作は終了する。
【００３９】
一方、コマンド発行制御部１０４１４によって発行されたコマンドが結合コマンドでなかった場合には（Ｓ２００７）、メモリ１０５から得られたメモリデータがコマンド発行制御部１０４１４によって命令キャッシュ１０２にキャッシュされ（Ｓ２０１１）、命令フェッチ動作は終了する。
【００４０】
図６は、メモリアクセス装置１のデータロード動作を説明するためのフロー図である。
【００４１】
まず、ロードするデータがデータキャッシュ１０３にキャッシュされているか否かがプロセッサ１０１によって確認される（Ｓ３００１）。ここで、データキャッシュ１０３に当該データがキャッシュされている場合には、データロード動作は終了する。
【００４２】
一方、データキャッシュ１０３に当該データがキャッシュされていない場合、すなわち、データキャッシュ１０３でミスヒットが発生した場合には、データキャッシュ１０３から当該データを取得するためのコマンドが発行され、このコマンドを含む結合コマンドがメモリアクセス部１０４２に発行済みであるか否かがコマンド発行制御部１０４１４によって判断される（Ｓ３００２）。
【００４３】
ここで、当該結合コマンドがメモリアクセス部１０４２に発行済みであると判断された場合には、データロード操作は、当該データがバッファ１０４１４１に書き込まれるのを待ち（Ｓ３００３）、バッファ１０４１４１に書き込まれたデータは、コマンド発行制御部１０４１４によってデータキャッシュ１０３にキャッシュされる（Ｓ３００４）。
【００４４】
また、アクセス調停部１０４４の状態が、他のメモリマスタからのコマンドを受理するコマンド受理状態になり（Ｓ３００５）、データロード動作は終了する。
【００４５】
一方、当該結合コマンドがメモリアクセス部１０４２に発行済みではないと判断された場合には、データキャッシュ１０３から発行されたコマンドがコマンド発行制御部１０４１４によってメモリアクセス部１０４２にそのまま発行される（Ｓ３００６）。
【００４６】
次に、コマンド発行制御部１０４１４によるコマンドの発行に応じて、当該コマンドによってアクセスが要求されたアドレスに格納されたメモリデータがメモリアクセス部１０４２によってメモリ１０５から取得され（Ｓ３００７）、取得されたメモリデータがコマンド発行制御部１０４１４によってデータキャッシュ１０３にキャッシュされ（Ｓ３００８）、データロード動作は終了する。
【００４７】
図７（ａ）は、前述した従来のメモリアクセス装置のタイミング図であり、図７（ｂ）は、メモリアクセス装置１のタイミング図である。図７（ａ）および（ｂ）は、共に、プロセッサ側からのメモリアクセスの要求によって時刻ｔ１に命令キャッシュでミスヒットが発生し、その後、時刻ｔ３に他のメモリマスタによってメモリアクセスが要求され、さらに、プロセッサ側からのメモリアクセスの要求によって時刻ｔ４にデータキャッシュでミスヒットが発生した場合の例を示している。
【００４８】
図７（ａ）において、従来のメモリアクセス装置は、時刻ｔ４にデータキャッシュで発生したミスヒットによって要求されるメモリアクセスは、他のメモリマスタによって要求されたメモリアクセスが完了する時刻ｔ６まで待たされるため、時刻ｔ８に完了する。
【００４９】
これに対し、図７（ｂ）において、メモリアクセス装置１は、時刻ｔ１に命令キャッシュ１０２で発生したミスヒットによって要求されるメモリアクセスと、その後起こることが分かっているデータキャッシュ１０３で発生するミスヒットによるメモリアクセスとをまとめて行うため、時刻ｔ４にデータキャッシュ１０３で発生するミスヒットによるメモリアクセスが時刻ｔ５で完了する。
【００５０】
このように、メモリアクセス装置１は、プロセッサ１０１側とメモリ制御部１０４とのコマンドの受渡し時間およびメモリデータの受渡し時間を削減し、他のメモリマスタのためのメモリアクセスによるコマンドの受理待ち（時刻ｔ４から時刻ｔ６）を省くことができる。
【００５１】
この結果、メモリアクセス装置１は、従来のメモリアクセス装置と比較して命令キャッシュ１０２でミスヒットが発生してから、データキャッシュ１０３で発生したミスヒットによるメモリアクセスが完了するまでの時間を（時刻ｔ８−時刻ｔ５）分削減することができる。
【００５２】
このような本発明の第１の実施の形態のメモリアクセス装置１は、プログラムアドレスに対するアクセスの要求を受けたときにバッファ１０４１４１に読み込んでおいたメモリデータで、次にアクセスが要求されるデータアドレスに対するアクセスの要求に応答するため、プロセッサ１０１に対するメモリアクセスの応答時間を従来のものより短縮することができる。
【００５３】
また、本実施の形態においては、メモリ制御部１０４にアクセス要求部１０４１を設けたが、例えば、ＭＭＵ等のようにメモリ制御部１０４の前段に位置するプロセッサ１０１内のアクセス調停部にアクセス要求部を設けてもよい。
【００５４】
また、本実施の形態においては、図８に示すように、対応情報記憶部１０４１１に記憶させる対応情報が、各プログラムアドレスに対応する論理アドレス、および、各データアドレスに対する論理アドレスをさらに表すようにし、コマンド発行制御部１０４１４が、この対応情報に基づいて、論理アドレスを物理アドレスに変換した上で、結合コマンドを生成するようにしてもよい。
【００５５】
このように構成することにより、対応情報を更新することにより、プロセッサ１０１に実行させるプログラムを改変することなく、メモリアクセス装置１に適用することが可能になる。
【００５６】
また、本実施の形態においては、先に命令キャッシュ１０２で発生したミスヒットによるメモリアクセスと、後にデータキャッシュ１０３で発生したミスヒットによるメモリアクセスをアクセス要求部１０４１によって結合する例について説明したが、各ミスヒットの発生要因や発生順序に関係なく、先に行われるメモリアクセスと後に行われるメモリアクセスとが高頻度で行われる場合に、これらメモリアクセスを結合することによって本実施の形態と同様な効果が得られることは明らかである。
【００５７】
（第２の実施の形態）
本発明の第２の実施の形態のメモリアクセス装置を図９に示す。なお、本実施の形態では、本発明の第１の実施の形態のメモリアクセス装置１の構成要素と同一な構成要素には、同一の符号を付して説明を省略する。
【００５８】
図９に示すように、メモリアクセス装置２は、複数のメモリマスタによって共有されるメモリ２０５ａおよび２０５ｂと、プロセッサ１０１と、命令キャッシュ１０２およびデータキャッシュ１０３と、メモリマスタからのコマンドに応じてメモリ２０５ａおよび２０５ｂにアクセスするメモリ制御部２０４と、メモリアクセスに用いられるメモリバス１０６、１０７、１０８、１０９、２０１１、２０１２、１０４３と、ホストバス１０１１とを備えている。
【００５９】
メモリ制御部２０４は、プログラムアドレスとデータアドレスとで共通な共通アドレスを表す対応情報が記憶された対応情報記憶部２０４１１と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドが１つのコマンドとして結合できるか否かを判断し、結合できると判断した両コマンドを結合してメモリアクセスを要求するアクセス要求部２０４１と、命令キャッシュ１０２、データキャッシュ１０３、アクセス要求部２０４１および図示しない他のメモリマスタからコマンドを調停するアクセス調停部１０４４と、調停されたコマンドを受けてメモリ２０５ａおよび２０５ｂにアクセスするメモリアクセス部２０４２と、アクセス要求部２０４１によって結合されたコマンドに応じて、メモリアクセス部２０４２によってメモリ２０５ｂの共通アドレスから読み込まれたメモリデータを格納するバッファ２０４１４１とを有している。
【００６０】
図１０に示すように、アクセス要求部２０４１は、対応情報に含まれる共通アドレスと命令キャッシュ１０２からのコマンドによってアクセスが要求されているアドレスとを比較するアドレス比較部２０４１２と、プログラムアドレスに対するアクセス要求を表すコマンドとデータアドレスに対するアクセス要求を表すコマンドとを結合した結合コマンドをアドレス比較部２０４１２による比較の結果に応じて生成する結合コマンド生成部２０４１３と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドもしくは結合コマンドをアクセス調停部１０４４を介してメモリアクセス部２０４２に発行するコマンド発行制御部２０４１４とを有している。
【００６１】
対応情報記憶部２０４１１には、図１１に示すような対応情報が記憶されている。ここで、対応情報に含まれる共通アドレスは、メモリアクセスの命令を表すメモリデータの格納先を表し、プロセッサ１０１によってアクセスが要求されたときに命令キャッシュ１０２でミスヒットが発生するプログラムアドレスと、このプログラムアドレスに格納されたメモリデータが表す命令にしたがってプロセッサ１０１によってアクセスが要求されたときにデータキャッシュ１０３でミスヒットが発生するデータアドレスとで共通なアドレスである。
【００６２】
これら対応情報は、例えば、図示しないＲＯＭ等に予め記憶され、プロセッサ１０１によってホストバス１０１１を介してメモリアクセス装置２の起動時等に対応情報記憶部２０４１１に登録される。
【００６３】
図１０において、アドレス比較部２０４１２は、対応情報記憶部２０４１１に記憶された対応情報に含まれる各共通アドレスと、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスとを比較し、比較結果を表すアドレス比較結果信号を結合コマンド生成部２０４１３とコマンド発行制御部２０４１４とに送信するようになっている。
【００６４】
結合コマンド生成部２０４１３は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部２０４１１に記憶された対応情報に含まれることをアドレス比較部２０４１２によって送信されたアドレス比較結果信号が表す場合には、命令キャッシュ１０２からのコマンドと、このコマンドが要求するプログラムアドレスと同一のデータアドレスに対するアクセス要求を表すコマンドとを結合した結合コマンドを生成するようになっている。
【００６５】
ここで、図１２に示すように、対応情報に含まれるプログラムアドレスに格納された命令と、当該命令が参照するデータとは、メモリ２０５ａおよび２０５ｂにおいて、同一のアドレスで示される領域にそれぞれ格納されている。
【００６６】
なお、これら命令とデータとをメモリ２０５ａおよび２０５ｂの同一のアドレスで示される領域にそれぞれ格納するには、プロセッサ１０１に実行させるプログラムをコンパイラやプログラム開発ツールを用いて予め調整するか、命令キャッシュ１０２やデータキャッシュ１０３の前後に配置されたプロセッサ１０１のＭＭＵが有する論理アドレスから物理アドレスへの変換機能を、プロセッサ１０１に実行させるオペレーティングシステムによって制御すること等で実現する。
【００６７】
結合コマンド生成部２０４１３は、具体的には、メモリ２０５ａおよび２０５ｂの双方に対して共通アドレスに対するアクセスを要求する結合コマンドを生成するようになっている。
【００６８】
コマンド発行制御部２０４１４は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部２０４１１に記憶された対応情報に含まれることをアドレス比較部２０４１２によって送信されたアドレス比較結果信号が表す場合には、結合コマンドをアクセス調停部１０４４を介してメモリアクセス部２０４２に発行するようになっている。
【００６９】
一方、コマンド発行制御部２０４１４は、命令キャッシュ１０２からアクセスが要求されたプログラムアドレスが対応情報記憶部２０４１１に記憶された対応情報に含まれないことをアドレス比較結果信号が表す場合には、命令キャッシュ１０２からのコマンドをアクセス調停部１０４４を介してメモリアクセス部２０４２にそのまま発行するようになっている。
【００７０】
また、コマンド発行制御部２０４１４は、アクセス調停部１０４４を介して結合コマンドをメモリアクセス部２０４２に発行した場合には、この結合コマンドの発行に応じてメモリアクセス部２０４２がメモリ２０５ａおよび２０５ｂから取得したメモリデータのうち、メモリ２０５ａから取得したメモリデータを命令キャッシュ１０２に送信し、メモリ２０５ｂから取得したメモリデータを表す部分をバッファ２０４１４１に読み込むようになっている。
【００７１】
ここで、コマンド発行制御部２０４１４は、バッファ２０４１４１に読み込んだデータのデータアドレスに対するアクセスがデータキャッシュ１０３から要求された場合には、バッファ２０４１４１に読み込んだデータをデータキャッシュ１０３に送信するようになっている。
【００７２】
以上のように構成されたメモリアクセス装置２についての命令フェッチ動作およびデータロード動作は、上述した本発明の第１の実施の形態のメモリアクセス装置１の命令フェッチ動作およびデータロード動作の説明と、メモリアクセス装置２の構成の説明によって容易に理解できるため、説明を省略する。
【００７３】
このような本発明の第２の実施の形態のメモリアクセス装置２は、メモリ２０５ａの共通アドレスに対するアクセスの要求を受けたときにバッファ２０４１４１に読み込んでおいたメモリデータで、次にアクセスが要求されるメモリ２０５ｂの共通アドレスに対するアクセスの要求に応答するため、プロセッサ１０１に対するメモリアクセスの応答時間を従来のものより短縮することができる。
【００７４】
また、本実施の形態においては、メモリ制御部２０４にアクセス要求部２０４１を設けたが、例えば、ＭＭＵ等のようにメモリ制御部２０４の前段に位置するプロセッサ１０１内のアクセス調停部にアクセス要求部を設けてもよい。
【００７５】
また、本実施の形態においては、図１３に示すように、対応情報記憶部２０４１１に記憶させる対応情報が、各メモリ２０５ａ、２０５ｂにおいて共通アドレスに対応する各論理アドレスをさらに表すようにし、コマンド発行制御部２０４１４が、この対応情報に基づいて、論理アドレスを物理アドレスに変換した上で、結合コマンドを生成するようにしてもよい。
【００７６】
このように構成することにより、対応情報を更新することにより、プロセッサ１０１に実行させるプログラムを改変することなく、メモリアクセス装置２に適用することが可能になる。
【００７７】
また、本実施の形態においては、先に命令キャッシュ１０２で発生したミスヒットによるメモリアクセスと、後にデータキャッシュ１０３で発生したミスヒットによるメモリアクセスをアクセス要求部２０４１によって結合する例について説明したが、各ミスヒットの発生要因や発生順序に関係なく、先に行われるメモリアクセスと後に行われるメモリアクセスとが高頻度で行われる場合に、これらメモリアクセスを結合することによって本実施の形態と同様な効果が得られることは明らかである。
【００７８】
（第３の実施の形態）
本発明の第３の実施の形態のメモリアクセス装置を図１４に示す。なお、本実施の形態では、本発明の第１の実施の形態のメモリアクセス装置１の構成要素と同一な構成要素には、同一の符号を付して説明を省略する。
【００７９】
図１４に示すように、メモリアクセス装置３は、メモリ１０５と、プロセッサ１０１と、命令キャッシュ１０２およびデータキャッシュ１０３と、メモリマスタからのコマンドに応じてメモリ１０５にアクセスするメモリ制御部３０４と、メモリバス１０６、１０７、１０８、１０９、１０１０、１０４３と、ホストバス１０１１とを備えている。
【００８０】
本実施の形態において、プロセッサ１０１は、ネットワークモジュール等の他のメモリマスタによってネットワークを介して接続されたプログラムサーバから暗号化や圧縮が施されたプログラムソースをメモリ１０５にダウンロードし、ダウンロードしたプログラムソースを復号またはコンパイルした後、メモリ１０５に格納したプログラムを実行する。
【００８１】
メモリ制御部３０４は、データアドレスとデープログラムアドレスとの対応を表す対応情報が記憶される対応情報記憶部３０４１１と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドを用いてメモリアクセスを要求するアクセス要求部３０４１と、アクセス調停部１０４４と、メモリアクセス部１０４２と、アクセス要求部３０４１によってメモリデータが格納されるバッファ３０４１４１とを有している。
【００８２】
図１５に示すように、アクセス要求部３０４１は、対応情報に含まれるデータアドレスとデータキャッシュ１０３からのコマンドによってアクセスが要求されているアドレスとを比較するアドレス比較部１０４１２と、データキャッシュ１０３からのコマンドがメモリ１０５に対してプログラムのどの部分の書き込みを要求しているのかを判断するコマンド判断部３０４１３と、命令キャッシュ１０２およびデータキャッシュ１０３からのコマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２に発行するコマンド発行制御部３０４１４とを有している。
【００８３】
対応情報記憶部１０４１１には、図１６に示すような対応情報が記憶される。ここで、対応情報に含まれるデータアドレスは、プロセッサ１０１によって格納が要求されたプログラムの末尾を表すアドレスである。
【００８４】
また、対応情報に含まれるプログラムアドレスは、プロセッサ１０１によって格納が要求されたプログラムの先頭を表すアドレスであり、プロセッサ１０１によってアクセスが要求されたときに命令キャッシュ１０２でミスヒットが発生するアドレスである。
【００８５】
図１５において、アドレス比較部３０４１２は、対応情報記憶部３０４１１に記憶された対応情報に含まれるデータアドレスと、データキャッシュ１０３からアクセスが要求されたデータアドレスとを比較し、比較結果を表すアドレス比較結果信号をコマンド発行制御部３０４１４に送信するようになっている。
【００８６】
コマンド判断部３０４１３は、データキャッシュ１０３からのコマンドがプログラムの先頭の書き込みの要求を表すと判断した場合には、書き込みが要求されたアドレスをプログラムアドレスとして対応情報記憶部３０４１１に記憶された対応情報に登録するようになっている。
【００８７】
また、コマンド判断部３０４１３は、データキャッシュ１０３からのコマンドがプログラムの末尾の書き込みの要求を表すと判断した場合には、書き込みが要求されたアドレスをデータアドレスとして対応情報記憶部３０４１１に記憶された対応情報に登録するようになっている。
【００８８】
コマンド発行制御部３０４１４は、データキャッシュ１０３からアクセスが要求されたデータアドレスが対応情報記憶部３０４１１に記憶された対応情報に含まれることをアドレス比較部３０４１２によって送信されたアドレス比較結果信号が表す場合には、データキャッシュ１０３からのコマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２に発行し、対応情報によって当該データアドレスに対応付けられたプログラムアドレスの要求を表すコマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２に発行するようになっている。
【００８９】
一方、コマンド発行制御部３０４１４は、データキャッシュ１０３からアクセスが要求されたデータアドレスが対応情報記憶部３０４１１に記憶された対応情報に含まれないことをアドレス比較結果信号が表す場合には、データキャッシュ１０３からのコマンドをアクセス調停部１０４４を介してメモリアクセス部１０４２にそのまま発行するようになっている。
【００９０】
また、コマンド発行制御部３０４１４は、データキャッシュ１０３からアクセスが要求に伴って、対応情報によって当該データアドレスに対応付けられたプログラムアドレスの要求を表すコマンドをメモリアクセス部１０４２に発行した場合には、この結合コマンドの発行に応じてメモリアクセス部１０４２がメモリ１０５から取得したメモリデータのうち、メモリ１０５から取得したメモリデータをバッファ３０４１４１に読み込むようになっている。
【００９１】
ここで、コマンド発行制御部３０４１４は、バッファ３０４１４１に読み込んだメモリデータのプログラムアドレスに対するアクセスが命令キャッシュ１０２から要求された場合には、バッファ３０４１４１に読み込んだメモリデータ（命令）を命令キャッシュ１０２に送信するようになっている。
【００９２】
図１７は、メモリアクセス装置３のプログラム実行動作を説明するためのフロー図である。
【００９３】
まず、プロセッサ１０１によってメモリ１０５に格納されたプログラムソースの読み込みが開始されると、このプログラムソースは、メモリ制御部３０４およびデータキャッシュ１０３を介してプロセッサ１０１に順次読み込まれ（Ｓ４００１）、プロセッサ１０１によってプログラムに順次復号される（Ｓ４００２）。
【００９４】
プロセッサ１０１によって復号されたプログラムは、データキャッシュ１０３およびメモリ制御部３０４を介してメモリ１０５に順次格納されていく（Ｓ４００３）。ここで、プログラムの先頭部の格納が要求されているとコマンド判断部３０４１３によって判断された場合には（Ｓ４００４）、プログラムの先頭を示す先頭アドレスが、コマンド判断部３０４１３によって対応情報記憶部３０４１１にデータアドレスとして記憶される（Ｓ４００５）。
【００９５】
プロセッサ１０１によるプログラムの復号が完了すると（Ｓ４００６）、データキャッシュ１０３に格納されたままになっているプログラムがメモリ制御部３０４によってメモリ１０５にパージされる（Ｓ４００７）。ここで、プログラムの末尾を含むデータのパージが要求されているとコマンド判断部３０４１３によって判断された場合には（Ｓ４００８）、図１８において、アクセス調停部１０４４の状態が、コマンド保留状態になる（Ｓ４００９）。
【００９６】
ここで、プログラムの末尾を含むデータをメモリ１０５にパージするためのコマンドと共に、対応情報記憶部３０４１１に記憶された先頭アドレスが示すプログラムの先頭部を読み込むためのコマンドがアクセス調停部１０４４を介してメモリアクセス部１０４２に発行される（Ｓ４０１０）。
【００９７】
このコマンドの発行に応じてメモリ１０５から得られたメモリデータ、すなわち、プログラムの先頭部は、コマンド発行制御部３０４１４によってバッファ３０４１４１に読み込まれる（Ｓ４０１１）。
【００９８】
データキャッシュ１０３のパージが完了すると、プログラムを実行する状態となったプロセッサ１０１によってプログラムの先頭部の読み出しが開始される（Ｓ４０１２）。ここで、プログラムの先頭部は命令キャッシュ１０２に格納されていないため、命令キャッシュ１０２でミスヒットが発生し、命令キャッシュ１０２からメモリ制御部３０４にプログラムの先頭部を要求するコマンドが発行される（Ｓ４０１３）。
【００９９】
このコマンドに応答してバッファ３０４１４１に読み込まれたプログラムの先頭部がコマンド発行制御部３０４１４によって命令キャッシュ１０２にキャッシュされ（Ｓ４０１４）、アクセス調停部１０４４の状態がコマンド受理状態になる（Ｓ４０１５）。ここで、命令キャッシュ１０２にキャッシュされたプログラムの先頭部から当該プログラムがプロセッサ１０１によって実行される（Ｓ４０１６）。
【０１００】
このような本発明の第３の実施の形態のメモリアクセス装置３は、暗号化や圧縮が施されたプログラムソースをプログラムに復号してメモリ１０５に格納してから、このプログラムを実行するまでにかかる時間を短縮することができる。
【産業上の利用可能性】
【０１０１】
以上のように、本発明にかかるメモリアクセス装置は、プロセッサに対するメモリアクセスの応答時間を従来のものより短縮することができるという効果を有し、例えば、プロセッサにキャッシュを用いてメモリアクセスを行わせるメモリアクセス装置等として有用である。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１の実施の形態におけるメモリアクセス装置のブロック図である。
【図２】本発明の第１の実施の形態におけるメモリアクセス装置を構成するアクセス要求部のブロック図である。
【図３】本発明の第１の実施の形態におけるメモリアクセス装置を構成する対応情報記憶部に記憶される対応情報を表す概念図である。
【図４】本発明の第１の実施の形態におけるメモリアクセス装置を構成するメモリにおける命令とデータとの各記憶領域を表す概念図である。
【図５】本発明の第１の実施の形態におけるメモリアクセス装置の命令フェッチ動作を説明するためのフロー図である。
【図６】本発明の第１の実施の形態におけるメモリアクセス装置のデータロード動作を説明するためのフロー図である。
【図７】図７（ａ）は、従来のメモリアクセス装置との動作タイミングの一例を示すタイミング図であり、図７（ｂ）は、本発明の第１の実施の形態におけるメモリアクセス装置と従来のメモリアクセス装置との動作タイミングの一例を示すタイミング図である。
【図８】本発明の第１の実施の形態におけるメモリアクセス装置を構成する対応情報記憶部に記憶される対応情報の他の態様を表す概念図である。
【図９】本発明の第２の実施の形態におけるメモリアクセス装置のブロック図である。
【図１０】本発明の第２の実施の形態におけるメモリアクセス装置を構成するアクセス要求部のブロック図である。
【図１１】本発明の第２の実施の形態におけるメモリアクセス装置を構成する対応情報記憶部に記憶される対応情報を表す概念図である。
【図１２】本発明の第２の実施の形態におけるメモリアクセス装置を構成するメモリにおける命令とデータとの各記憶領域を表す概念図である。
【図１３】本発明の第２の実施の形態におけるメモリアクセス装置を構成する対応情報記憶部に記憶される対応情報の他の態様を表す概念図である。
【図１４】本発明の第３の実施の形態におけるメモリアクセス装置のブロック図である。
【図１５】本発明の第３の実施の形態におけるメモリアクセス装置を構成するアクセス要求部のブロック図である。
【図１６】本発明の第３の実施の形態におけるメモリアクセス装置を構成する対応情報記憶部に記憶される対応情報を表す概念図である。
【図１７】本発明の第３の実施の形態におけるメモリアクセス装置のプログラム実行動作を説明するためのフロー図である。
【図１８】図１７に続くフロー図である。
【図１９】従来のメモリアクセス装置のブロック図である。
【符号の説明】
【０１０３】
１、２、３  メモリアクセス装置
１０１、５０１  プロセッサ
１０２、５０２  命令キャッシュ
１０３、５０３  データキャッシュ
１０４、２０４、３０４、５０４  メモリ制御部
１０５、２０５ａ、２０５ｂ、５０５  メモリ
１０６、１０７、１０８、１０９、５０６、１０１０、１０４３、２０１１、２０１２  メモリバス
１０１１、５０１１  ホストバス
１０４１、２０４１、３０４１  アクセス要求部
１０４２、２０４２、３０４２  メモリアクセス部
１０４４  アクセス調停部
１０４１１、２０４１１、３０４１１  対応情報記憶部
１０４１２、２０４１２、３０４１２  アドレス比較部
１０４１３、２０４１３  結合コマンド生成部
１０４１４、２０４１４、３０４１４  コマンド発行制御部
１０４１４１、２０４１４１、３０４１４１  バッファ
３０４１３  コマンド判断部
【図１】
2009193346.tif 000003
【図２】
2009193346.tif 000004
【図３】
2009193346.tif 000005
【図４】
2009193346.tif 000006
【図５】
2009193346.tif 000007
【図６】
2009193346.tif 000008
【図７】
2009193346.tif 000009
【図８】
2009193346.tif 000010
【図９】
2009193346.tif 000011
【図１０】
2009193346.tif 000012
【図１１】
2009193346.tif 000013
【図１２】
2009193346.tif 000014
【図１３】
2009193346.tif 000015
【図１４】
2009193346.tif 000016
【図１５】
2009193346.tif 000017
【図１６】
2009193346.tif 000018
【図１７】
2009193346.tif 000019
【図１８】
2009193346.tif 000020
【図１９】
2009193346.tif 000021