(57)【特許請求の範囲】
【請求項１】
複数のポート間で独立してアクセス可能なメモリアクセス手段と、
前記各ポート毎に設けられたキャッシュ手段と、
前記各ポート毎に設けられたキャッシュ手段からの命令を受信し、前記各ポート毎に命令のリクエストを発行する命令発行制御手段と、
前記各ポート毎に発行された命令のリクエストを調停し、当該調停で決定された命令をメモリに送信する調停制御手段とを備え、
前記命令発行制御手段は、前記調停が混雑しているときには、ロード命令をストア命令に優先させるように、命令のリクエストの出力順を変更する
ことを特徴とするメモリアクセス処理装置。
【請求項２】
前記命令発行制御手段は、前記調停が混雑しているときに、先行するストア命令と異なるアドレスの後続のロード命令が来たときに、前記先行するストア命令を退避させ、前記後続のロード命令に追い越させることを特徴とする請求項１に記載のメモリアクセス処理装置。
【請求項３】
前記命令発行制御手段は、前記ストア命令が退避されている間に、前記退避されているストア命令と同一アドレスの後続のストア命令が来たときに、ストア命令の圧縮処理を行うことを特徴とする請求項１又は２に記載のメモリアクセス処理装置。
【請求項４】
前記命令発行制御手段は、前記ストア命令が退避されている間に、前記退避されているストア命令と同一アドレスの後続のロード命令が来たときに、前記ストア命令の退避を解除し、前記ストア命令、前記後続のロード命令の順で出力させることを特徴とする請求項１から３の何れかに記載のメモリアクセス処理装置。
【請求項５】
前記調停の混雑判定は、前記調停制御手段に送られてくる各ポートの命令のリクエストを格納するバッファに蓄積されたリクエストの数から求めることを特徴とする請求項１から４の何れかに記載のメモリアクセス処理装置。
【請求項６】
前記各ポート毎の命令発行制御手段から送られてくる命令リクエストの発行情報でアップカウントし、前記調停制御手段から送られてくる調停により決定された命令のポート情報によりダウンカウントする命令数カウンタを備え、
前記調停の混雑判定は、前記命令数カウンタのカウント値から求めることを特徴とする請求項１から４の何れかに記載のメモリアクセス処理装置。
【請求項７】
複数のポート間で独立してアクセス可能なメモリアクセス手段と、
前記各ポート毎に設けられたキャッシュ手段と、を備えたメモリアクセス処理装置のメモリアクセス方法において、
前記メモリアクセス処理装置の命令発行制御手段が、前記各ポート毎に設けられたキャッシュ手段からの命令を受信し、前記各ポート毎に命令のリクエストを発行し、
前記メモリアクセス処理装置の調停制御手段が、前記各ポート毎に発行された命令のリクエストを調停し、当該調停で決定された命令をメモリに送信し、
前記命令発行制御手段は、前記調停が混雑しているときには、ロード命令をストア命令に優先させるように、命令のリクエストの出力順を変更する
ことを特徴とするメモリアクセス処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス装置の各ポートのキャッシュ装置とメモリとの間で、各ポートの命令のリクエストの調停を行うメモリアクセス処理装置及び方法に関する。
【背景技術】
【０００２】
メモリアクセス装置の各ポートのキャッシュ装置とメモリとの間で、各ポートの命令のリクエストの調停を行うメモリアクセス処理装置について、図６を参照して説明する。
【０００３】
図６において、メモリアクセス処理装置は、メモリアクセス装置２０１と、キャッシュ装置２０２ａ〜２０２ｄと、命令発行制御装置２０３ａ〜２０３ｄと、調停制御部２０４と、メモリ２０５とから構成される。キャッシュ装置２０２ａ〜２０２ｄ及び命令発行制御装置２０３ａ〜２０３ｄは、インターリーブされたメモリポート単位で設けられており、ポート間では独立したメモリアクセスがなされる。
【０００４】
メモリアクセス装置２０１は、ロード命令やストア命令等のメモリアクセス命令を発行する。キャッシュ装置２０２ａ〜２０２ｄはメモリキャッシュ機構を有する。
【０００５】
命令発行制御装置２０３ａ〜２０３ｄは、ロード命令圧縮制御部２０７を有している。ロード命令圧縮制御部２０７は、ロード命令の圧縮処理を行う。調停制御部２０４は、各ポートの調停をラウンドロビンで行い、調停により決定された命令をメモリ２０５へ発行する。
【０００６】
また、特許文献１には、先行するストア命令及び後続のロード命令のアドレスを識別し、識別されたストア命令及びロード命令各々のアドレス領域の一致を検出し、アドレス領域の一致が検出された時にストア命令によるデータをロード命令による主記憶装置からの読出しデータとして処理することによって、システム全体の性能を向上させることができるようにしたものが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２４０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のメモリアクセス処理装置においては、各ポートの命令発行制御装置２０３ａ〜２０３ｄは、調停が混雑しているかどうかにかかわらず、各ポートの命令のリクエストを調停制御部２０４に送信し、また、調停制御部２０４は、各ポートから送られてきた命令のリクエストを、ラウンドロビンにより、調停している。このため、メモリアクセス効率が低下するという問題が生じる。
【０００９】
つまり、メモリ２０５をアクセスするための命令としては、ロード命令とストア命令とがある。ロード命令はメモリ２０５からデータを読み込む命令で、ストア命令はメモリ２０５にデータを書き込む命令である。したがって、ロード命令は高速に処理を行う必要があるが、ストア命令は、データをバッファに退避させておくことで、処理を遅らせることができる。したがって、ロード命令をストア命令に優先させることで、メモリアクセスを最適化して、メモリアクセス効率を上げることができると考えられる。
【００１０】
特許文献１に示されるものでは、先行するストア命令及び後続のロード命令のアドレスを識別し、アドレス領域の一致が検出された時にストア命令によるデータをロード命令によるメモリからの読出しデータとして処理するようにしている。これは、あるアドレスにデータを書き込んで、その後に、そのアドレスのデータを読み込むなら、ストア命令によりメモリに書き込まれるデータは、ロード命令によりメモリから読み出されるデータと同じになるという、特殊な場合の処理手法である。また、特許文献１は、メモリの各ポート毎キャッシュ装置を介在させ、各ポートの命令のリクエストに対して調停を行うような構成とはなっていない。
【００１１】
上述の課題を鑑み、本発明は、各ポート間の命令のリクエストの調停が混雑している場合に、メモリアクセスを最適化して、メモリアクセス効率を向上できるようにしたメモリアクセス処理装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するために、本発明に係るメモリアクセス処理装置は、複数のポート間で独立してアクセス可能なメモリアクセス手段と、各ポート毎に設けられたキャッシュ手段と、各ポート毎に設けられたキャッシュ手段からの命令を受信し、各ポート毎に命令のリクエストを発行する命令発行制御手段と、各ポート毎に発行された命令のリクエストを調停し、調停で決定された命令をメモリに送信する調停制御手段とを備え、命令発行制御手段は、調停が混雑しているときには、命令のリクエストの出力順を変更することで、ロード命令をストア命令に優先させるように制御することを特徴とする。
【００１３】
本発明に係るメモリアクセス処理方法は、複数のポート間で独立してアクセス可能なメモリアクセス手段と、前記各ポート毎に設けられたキャッシュ手段と、を備えたメモリアクセス処理装置のメモリアクセス方法において、前記メモリアクセス処理装置の命令発行制御手段が、前記各ポート毎に設けられたキャッシュ手段からの命令を受信し、前記各ポート毎に命令のリクエストを発行し、前記メモリアクセス処理装置の調停制御手段が、前記各ポート毎に発行された命令のリクエストを調停し、当該調停で決定された命令をメモリに送信し、前記命令発行制御手段は、前記調停が混雑しているときには、ロード命令をストア命令に優先させるように、命令のリクエストの出力順を変更することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、各ポート間の命令のリクエストの調停が混雑している場合には、ストア命令をバッファに退避させ、ロード命令がストア命令を追い越すように制御している。このように、調停が混雑している場合には、ロード命令をストア命令に優先させるように、命令のリクエストの出力順を変更することで、メモリアクセスの最適化を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態のメモリアクセス処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態のメモリアクセス処理装置における命令発行制御装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態のメモリアクセス処理装置における混雑判定部の構成を示すブロック図である。
【図４】本発明の第１の実施形態のメモリアクセス処理装置の動作説明に用いるタイムチャートである。
【図５】本発明の第２の実施形態のメモリアクセス処理装置の構成を示すブロック図である。
【図６】本発明に関連するメモリアクセス処理装置の説明に用いるブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照して説明する。図１に示すように、本発明の第１の実施形態のメモリアクセス処理装置は、メモリアクセス装置１と、キャッシュ装置２ａ〜２ｄと、命令発行制御装置３ａ〜３ｄと、調停制御部４と、メモリ５とから構成される。図１に示す第１の実施形態は４ポートの構成とされており、キャッシュ装置２ａ〜２ｄ、命令発行制御装置３ａ〜３ｄは、インターリーブされたメモリポート単位で設けられており、ポート間では独立したメモリアクセスが行われる。
【００１７】
命令発行制御装置３ａ〜３ｄは、ロード命令圧縮制御部６と、追越制御部７とを有している。ロード命令圧縮制御部６は、ロード命令の圧縮制御を行う。追越制御部７は、ストア命令の場合には、ストア命令の圧縮を行い、また、調停制御部４の混雑判定部８からの調停混雑情報によって、調停の混雑が判定されると、ロード命令をストア命令に優先させる処理を行う。
【００１８】
調停制御部４は、各ポートからの命令のリクエストを受け付け、複数のポートから命令のリクエストがあった場合には、ポート間の調停を行い、調停で決定された命令をメモリ５へ発行する。また、本発明の第１の実施形態のメモリアクセス処理装置では、調停制御部４は、未処理となっている命令のリクエスト数をカウントして混雑状況を判定し、調停の混雑情報を出力する混雑判定部８を含んでいる。
【００１９】
次に、命令発行制御装置３ａ〜３ｄについて詳述する。図２は、命令発行制御装置３ａ〜３ｄの構成を示すものである。図２に示すように、命令発行制御装置３ａ〜３ｄは、ロード命令圧縮制御部６と、追越制御部７と、ストア命令圧縮制御部１０とを含んでいる。
【００２０】
ロード命令圧縮制御部６は、ロード命令の圧縮制御を行う。より詳細には、ロード命令圧縮制御部６は、キャッシュ装置２ａ〜２ｄから受信した命令がロード命令の場合、ロード命令圧縮制御部６に保持している先行するロード命令とのアドレス比較を行い、アドレスが一致している場合に、ロード命令の圧縮処理を行う。ストア命令の場合には、処理を行わずに、そのストア命令を追越制御部７に送信する。
【００２１】
追越制御部７は、調停制御部４からの調停の混雑情報によって混雑が判定されると、ストア命令を退避させ、ロード命令を優先させる。より詳細には、追越制御部７は、調停制御部４からの調停の混雑情報を受信し、調停が混雑している場合には、そのストア命令を退避バッファ（図示せず）に保持する。また、追越制御部７は、ストア命令が退避バッファに保持されている間に、後続に同一アドレスのストア命令が来た場合に、ストア命令の圧縮処理を行う。また、追越制御部７は、ストア命令を退避バッファに保持している間に、異なるアドレスのロード命令が来た場合に、ロード命令がストア命令を追い越す制御を行う。追越制御部７は、ストア命令を退避バッファに保持している間に、同一アドレスのロード命令が来た場合に、ストア命令の保持を解除し、ストア命令、後続ロード命令の順で調停制御部４へ命令を発行する。これにより、調停の混雑時に、ロード命令をストア命令も優先させる処理が行われる。
【００２２】
次に、調停制御部４の混雑判定部８について詳述する。図３は、混雑判定部８の構成を示すものである。図３に示すように、混雑判定部８は、４つのポートに対応した命令バッファ９ａ〜９ｄと、命令数制御部１１とから構成される。
【００２３】
命令バッファ９ａ〜９ｄは、各ポートから送信された命令のリクエストを受信し、この命令のリクエストを順に格納するＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）で構成される。命令バッファ９ａ〜９ｄは、ＦＩＦＯ内の命令数を命令数制御部１１に送信する。
【００２４】
命令数制御部１１は、命令バッファ９ａ〜９ｄのＦＩＦＯ内に格納された各ポートの命令のリクエストの数を基に、調停の混雑判定を行い、混雑情報を生成する。命令数制御部１１の混雑判定は、命令数情報の合計が閾値を超えた場合に混雑と判定する。
【００２５】
次に、本発明の第１の実施形態のメモリアクセス処理装置の動作について説明する。本発明の第１の実施形態のメモリアクセス処理装置では、以下のようなステージの処理が行われる。
【００２６】
ステージＳ０では、キャッシュ装置２ａ〜２ｄから命令発行制御装置３ａ〜３ｄに命令が発行されたときに、命令発行制御装置３ａ〜３ｄの入力レジスタにその命令が格納される。
【００２７】
ステージＳ１では、ロード命令圧縮制御部６で、ロード命令を圧縮する処理が行われる。なお、より詳細には、ロード命令圧縮制御部６で、ロード命令かどうかが判定される。そして、ロード命令であると判定された場合には、先行するロード命令とのアドレス比較が行われ、アドレスが一致している場合に、ロード命令の圧縮処理が行われる。
【００２８】
ステージＳ２では、追越制御部７で、ストア命令かどうかが判定され、ストア命令の場合には、ストア命令を圧縮する処理が行われる。また、調停制御部４からの混雑判定により調停が混雑している場合には、ストア命令をバッファに退避させ、ロード命令がストア命令を追い越すようにさせる処理が行われる。なお、より詳細には、ストア命令退避中に、後続に同一アドレスのストア命令が来た場合、ストア命令の圧縮が行われる。また、ストア命令退避中に、異なるアドレスのロード命令が来た場合、ロード命令がストア命令を追い越す制御が行われ、同一アドレスのロード命令が来た場合、ストア命令の退避が解除される。
【００２９】
ステージＳ３では、調停に参加する命令のリクエストが命令発効制御装置３ａ〜３ｄの出力レジスタに格納される。
【００３０】
ステージＳ４では、各ポートから送られてきた調停に参加する命令のリクエストが調停制御部４に送られ、調停制御部４の混雑判定部８の命令バッファ９ａ〜９ｄに、調停に参加する命令のリクエストが格納される。また、このとき、混雑判定部８で、命令バッファ９ａ〜９ｄを構成するＦＩＦＯに格納されている命令のリクエストの数を基に、混雑判定が行われる。
【００３１】
ステージＳ５では、各ポートから送られてきた命令のリクエストの調停が行われ、調停の結果決定された命令がメモリ５に出力される。
【００３２】
図４は、本発明の第１の実施形態のメモリアクセス処理装置の動作を示すタイムチャートである。本発明の第１の実施形態のメモリアクセス処理装置では、上述のように、ステージＳ０〜ステージＳ５の順に、処理が行われていく。ここでは、主にポートa に注目して、処理の説明を行う。  
【００３３】
図４において、符号（Ａ）で示すように、キャッシュ装置２ａから命令発行制御装置３ａに命令が発行されると、この命令は、ロード命令圧縮制御部６の入力レジスタに格納される（ステージＳ０）。ここでは、キャッシュ装置２ａから命令発行制御装置３ａに対して、ロード命令ＬＤａ０、ストア命令ＳＴａ１、ストア命令ＳＴａ２、ストア命令ＳＴａ３、ロード命令ＬＤａ４、ロード命令ＬＤａ５、ストア命令ＳＴａ６、ストア命令ＳＴａ７、ストア命令ＳＴａ８が順に送信されている。
【００３４】
次の時刻で、符号（Ｂ）で示すように、ロード命令圧縮制御部６で、ロード命令の圧縮処理が行われる（ステージＳ１）。
【００３５】
次の時刻で、符号（Ｃ）で示すように、ストア命令が追越制御部７へ送信され、ストア命令の圧縮処理が行われる（ステージＳ２）。また、符号（Ｄ）で示すように、調停制御部４からの混雑情報により、調停の混雑が発生している場合には、ストア命令は、バッファに退避される。
【００３６】
そして、符号（Ｅ）に示すように、調停に参加する命令のリクエストが出力レジスタに格納される（ステージＳ３）。
【００３７】
符号（Ｆ）で示すように、命令発行制御装置３ａから調停制御部４に、調停に参加する命令のリクエストが送信され、この命令のリクエストが混雑判定部８の命令バッファ９ａに格納される（ステージＳ４）。なお、タイムチャート内の表記は調停に参加しているポートごとの命令数を示す。
【００３８】
符号（Ｇ）で示すように、調停制御部４で、４ポートの命令のリクエストの調停が行われ、調停により決定された命令は、メモリ５へ出力される（ステージＳ５）。
【００３９】
また、調停制御部４の混雑判定部８で、未処理となっている命令のリクエストの数が計数され、調停の混雑状況が判定される。符号（Ｈ）で示すように、このとき、未処理となっている命令のリクエストの数合計が「４」を超えたので、混雑状態と判定され（調停混雑判定が「１」になっている）、この混雑情報が命令発行制御装置３ａ〜３ｄに送られる。以降、未処理となっている命令のリクエストの合計数が「１」になるまで（符号（Ｉ）で示す）、命令発行制御装置３ａ〜３ｄでは、ストア命令をバッファに退避させる制御が行われる。
【００４０】
すなわち、符号（Ｊ）で示すように、ストア命令が退避バッファに格納され、次の時刻で、退避バッファでストア命令ＳＴｂ４と後続のストア命令ＳＴｂ５が圧縮されている。さらに、次の時刻では、ストア命令ＳＴｂ４はロード命令ＬＤｂ６に追い越され、ロード命令ＬＤｂ６は、調停制御部４に送信される（符号（Ｋ）で示す）。
【００４１】
符号（Ｉ）で示すように、未処理となっている命令のリクエストの合計数が「１」以下になり、混雑状態の判定が解除されると、符号（Ｋ）で示すように、調停が空いたタイミングで、これまで圧縮されてきたストア命令が調停制御部４に発行される。
【００４２】
このように、本発明の第１の実施形態のメモリアクセス処理装置では、各ポート間の命令のリクエストの調停の混雑状況によって、ロード命令をストア命令に優先させるように、命令のリクエストの出力順を変更している。これにより、メモリアクセスの最適化を図ることができる。
【００４３】
＜第２の実施形態＞
図５は、本発明の第２の実施形態としてのメモリアクセス処理装置が示されている。この第２の実施形態のメモリアクセス処理装置は、図５に示すように、メモリアクセス装置１０１と、キャッシュ装置１０２ａ〜１０２ｄと、命令発行制御装置１０３ａ〜１０３ｄと、調停制御部１０４と、メモリ１０５と、混雑判定部１０８とから構成される。
【００４４】
前述の第１の実施形態では、混雑判定部８が調停制御部４内に設けられている。これに対して、この実施形態では、調停制御部１０４とは別に、混雑判定部１０８が設けられている。他の構成については、前述の第１の実施形態と同様である。
【００４５】
図５において、命令発行制御装置１０３ａ〜１０３ｄは、ロード圧縮判定、追越判定を行ったタイミングで、命令のリクエストが発行されることを示す発行情報を混雑判定部８に送信する。また、調停制御部１０４は、調停を行ってメモリ１０５に送信する命令を決定すると、調停により決定された命令のポート情報を混雑判定部１０８に送信する。
【００４６】
混雑判定部１０８は、各ポート毎に未処理の命令のリクエストの数をカウントする命令数カウンタ１０９を有している。そして、混雑判定部１０８は、命令発行制御装置１０３ａ〜１０３ｄから発行情報を受信すると、そのポートの命令数カウンタ１０９をアップカウントさせ、調停制御部１０４からポート情報を受信すると、そのポートの命令数カウンタ１０９をダウンカウントさせる。これにより、各ポートの命令数カウンタ１０９の計数値から、調停の混雑度が判定できる。この調停の混雑度の情報は、混雑判定部１０８から命令発行制御装置１０３ａ〜１０３ｄに送られる。
【００４７】
このように、この実施形態では、調停制御部１０４とは別に、混雑判定部１０８が設けられている。このため、調停制御部１０４に混雑度を検出するためのポートごとのバッファを設ける必要がなくなるため、調停が混雑している際に、調停に参加する前の先頭命令まで、ストア命令の圧縮制御を行うことができ、ストア圧縮が効率よく行うことができる。
【００４８】
本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【００４９】
１：メモリアクセス装置
２ａ〜２ｄ：キャッシュ装置
３ａ〜３ｄ：命令発行制御装置
４：調停制御部
５：メモリ
６：ロード命令圧縮制御部
７：追越制御部
８：混雑判定部
９ａ〜９ｄ：命令バッファ
１０：ストア圧縮制御部
１１：命令数制御部
１０１：メモリアクセス装置
１０２ａ〜１０２ｄ：キャッシュ装置
１０３ａ〜１０３ｄ：命令発行制御装置
１０４：調停制御部
１０５：メモリ
１０８：混雑判定部
１０９：命令数カウンタ
【図１】
0005428653.tif 000002
【図２】
0005428653.tif 000003
【図３】
0005428653.tif 000004
【図４】
0005428653.tif 000005
【図５】
0005428653.tif 000006
【図６】
0005428653.tif 000007