米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 株式会社日立製作所

発明の名称 データ処理装置及びデータ処理システム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−345653(P2003−345653A)
公開日 平成15年12月5日(2003.12.5)
出願番号 特願2002−150389(P2002−150389)
出願日 平成14年5月24日(2002.5.24)
代理人 【識別番号】100089071
【弁理士】
【氏名又は名称】玉村 静世
【テーマコード(参考)】
5B005
【Fターム(参考)】
5B005 JJ11 KK12 KK16 MM01 NN45 PP03 PP21 PP30 
発明者 吉岡 真一 / 成瀬 峰信
要約 課題
外部バスマスタとキャッシャブルエリアを共有可能なときにキャッシュコヒーレンシを維持する処理のオーバーヘッドを低減する。

解決手段
外部に第1バス(2)と第2バス(4)が別々に接続可能であり、第1バスに接続する外部バスマスタ(5)に第2バスに接続する外部メモリ(3)のアクセスを許容するバス権を与えることが可能なデータプロセッサ(1)は、外部メモリをキャッシャブルとするキャッシュメモリ(10)を含み、外部バスマスタからのアクセス要求が特定条件を満たすとき、キャッシュメモリの状態をチェックし、アクセスアドレスに対してキャッシュメモリにヒットするブロックがあればアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記アクセス要求に応答する外部メモリアクセスを開始可能にする。CPUへの割り込み処理で必要な状態保存などの前処理を要しない。
特許請求の範囲
【請求項1】 外部に第1バスと第2バスが別々に接続可能であって、前記第1バスに接続する外部バスマスタに前記第2バスに接続する外部メモリのアクセスを許容するバス権を与えることが可能なデータプロセッサであって、前記外部メモリをキャッシュ対象とすることが可能なキャッシュメモリを含み、前記外部バスマスタからのアクセス要求の条件が特定の条件を満たすとき、前記キャッシュメモリの状態をチェックし、メモリアクセスアドレスに対して前記キャッシュメモリにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なった後に、前記外部バスマスタからのアクセス要求に応答する外部メモリアクセスを開始可能にすることを特徴とするデータ処理装置。
【請求項2】 前記特定の条件をプログラマブルに指定するための制御レジスタを有することを特徴とする請求項1記載のデータ処理装置。
【請求項3】 前記制御レジスタは、アクセスアドレスとの比較に用いられる特定のアドレスを指定するための第1記憶領域を有することを特徴とする請求項2記載のデータ処理装置。
【請求項4】 前記制御レジスタは、アドレス比較のアドレスレンジを指定する第2記憶領域を有することを特徴とする請求項3記載のデータ処理装置。
【請求項5】 前記制御レジスタは、アドレス比較結果の一致又は不一致の何れを特定の条件成立とするかを指定するための第3記憶領域を有することを特徴とする請求項3記載のデータ処理装置。
【請求項6】 前記制御レジスタは、前記特定の条件が不成立であることを選択的に指定するための第4記憶領域を有することを特徴とする請求項3記載のデータ処理装置。
【請求項7】 前記キャッシュコヒーレンシを保つ操作は、前記キャッシュメモリの前記メモリアクセスアドレスにヒットするブロックがダーティであってライトアクセスに応答するときは当該ブロックをライトバックし且つ無効化し、前記キャッシュメモリのヒットするブロックがダーティであってリードアクセスに応答するときは当該ブロックをライトバックし且つクリーン化し、前記キャッシュメモリのヒットするブロックがクリーンであってライトアクセスに応答するときは当該ブロックを無効化する操作であることを特徴とする請求項1記載のデータ処理装置。
【請求項8】 前記キャッシュコヒーレンシを保つ操作は、更に、前記キャッシュメモリのヒットするブロックがクリーンであってリードアクセスに応答するとき及びヒットするブロックが存在しない時は、何もしないことを特徴とする請求項7記載のデータ処理装置。
【請求項9】 キャッシュメモリを内蔵するCPU、外部バスマスタを接続可能な外部インタフェース回路、外部メモリを接続可能なメモリインタフェース回路、及びそれらが共通接続される内部バスを有するデータ処理装置であって、前記外部インタフェース回路は、外部バスマスタからの要求に応答してバス権を委譲することが可能であり、バス権を委譲したとき、外部バスマスタからの要求に応じて、前記内部バスから前記メモリインタフェース回路を介して外部メモリをアクセス可能とし、前記メモリインタフェース回路を介して外部メモリをアクセスするときのアクセス条件が特定の条件を満たすとき、前記CPUに所定のキャッシュ制御コマンドを発行し、それに対する所定の応答を待って前記メモリインタフェース回路を介する外部メモリアクセスを開始可能とし、前記CPUは、前記キャッシュ制御コマンドを受理したとき、キャッシュメモリの状態をチェックし、メモリアクセスアドレスに対してキャッシュヒットブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記所定の応答を前記外部インタフェース回路に返すことが可能であることを特徴とするデータ処理装置。
【請求項10】 前記外部インタフェース回路は、前記特定の条件を指定するための制御レジスタを有し、前記制御レジスタは前記CPUによってアクセス可能なことを特徴とする請求項9記載のデータ処理装置。
【請求項11】 前記制御レジスタは、アクセスアドレスとの比較に用いられる特定のアドレスを指定するための第1記憶領域を有することを特徴とする請求項10記載のデータ処理装置。
【請求項12】 前記制御レジスタは、アドレス比較のアドレスレンジを指定する第2記憶領域を有することを特徴とする請求項11記載のデータ処理装置。
【請求項13】 前記制御レジスタは、アドレス比較結果の一致又は不一致の何れを特定の条件成立とするかを指定するための第3記憶領域を有することを特徴とする請求項11記載のデータ処理装置。
【請求項14】 前記制御レジスタは、前記特定の条件が不成立であることを選択的に指定するための第4記憶領域を有することを特徴とする請求項11記載のデータ処理装置。
【請求項15】 前記外部インタフェース回路は、外部にバス権を与えた状態で前記所定の応答を待っているとき、前記外部インタフェース回路の状態が所定の状態であることを条件に、前記外部に対してバス権の解放とリトライを要求することを特徴とする請求項9記載のデータ処理装置。
【請求項16】 前記所定の状態は、前記外部インタフェース回路が新たなアクセス要求を受付け不可能な状態であることを特徴とする請求項15記載のデータ処理装置。
【請求項17】 前記キャッシュコヒーレンシを保つ操作は、ヒットブロックがダーティであってライトアクセスに応答するときはヒットブロックをライトバックし且つ当該ブロックを無効化し、ヒットブロックがダーティであってリードアクセスに応答するときはヒットブロックをライトバックし且つ当該ブロックをクリーン化し、ヒットブロックがクリーンであってライトアクセスに応答するときはヒットブロックを無効化する操作であることを特徴とする請求項9記載のデータ処理装置。
【請求項18】 データプロセッサと、前記データプロセッサに接続されたローカルバスと、前記ローカルバスに接続された外部メモリと、前記データプロセッサに接続されたシステムバスと、前記システムバスに接続された外部バスマスタと、前記システムバスに接続されたその他の回路と、を有するデータ処理システムであって、前記データプロセッサは、前記外部バスマスタに前記外部メモリのアクセスを許容するバス権を与えることが可能であって、前記外部メモリをキャッシュ対象とすることが可能なキャッシュメモリを含み、外部バスマスタからのアクセス要求の条件が特定の条件を満たすとき、前記キャッシュメモリの状態をチェックし、メモリアクセスアドレスに対してキャッシュにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記外部バスマスタからのアクセス要求に応答する外部メモリアクセスを開始可能にすることを特徴とするデータ処理システム。
【請求項19】 前記外部バスマスタからの前記アクセス要求は、外部バスマスタが接続されているアドレス空間情報を含むことを特徴とする請求項18記載のデータ処理システム。
【請求項20】 前記データプロセッサは、前記特定の条件をプログラマブルに指定するための制御レジスタを有し、前記制御レジスタは、アクセスアドレスとの比較に用いられる特定のアドレスを指定するための第1記憶領域と、アドレス比較のアドレスレンジを指定する第2記憶領域と、アドレス比較結果の一致又は不一致の何れを特定の条件とするかを指定するための第3記憶領域と、を有することを特徴とする請求項18記載のデータ処理システム。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリを有するデータ処理装置におけるキャッシュコヒーレンシに関し、例えば外部バスマスタがデータプロセッサのローカルメモリをアクセス可能なとき、外部バスマスタによるローカルメモリアクセス時のキャッシュコヒーレンシの維持に適用して有効な技術に関する。
【0002】
【従来の技術】データプロセッサのローカルバスに接続されたローカルメモリをローカルバスとは別のバスに接続された外部バスマスタにアクセス可能にする技術について記載された文献として、特開2000−282704、特開2001−306486の公報がある。前者には、CPUの外部バスとして汎用バスとSDRAMバスとがあり、その汎用バスに接続されるバスマスタがCPU内に設けられている透過制御部を介してSDRAMをアクセスできるデータ処理システムについて記載される。後者には、CPUチップに外部システムバスを介してバスマスタが、また、専用インタフェースを介してRDRAM(SDRAM)が接続されるシステムにおいて、バスマスタがCPUチップ内を介してRDRAM(SDRAM)をアクセスできるようにした制御方式が記載される。
【0003】
【発明が解決しようとする課題】データプロセッサがキャッシュメモリを内蔵するとき、外部バスマスタとデータプロセッサがキャッシュ対象領域(キャッシャブルエリア)を共有するとき、前記ローカルメモリとキャッシュメモリのコヒーレンシを取る必要がある。このコヒーレンシ維持のためには、例えば、外部バスマスタが上記キャッシャブルエリアをアクセスするとき、アクセス前にデータプロセッサに割り込みを入れ、その割込みハンドラでデータプロセッサのキャッシュメモリをパージし、パージ完了後、該エリアをアクセスする。しかしながら、外部バスマスタがデータプロセッサに割り込みを入れ、そのハンドラでキャッシュメモリをパージする操作を介在させると、性能低下を招く虞がある。特に、外部バスマスタによるデータ転送量が小さい場合、実際の転送より、上記割込みハンドラによるコヒーレンシ実現用の前処理が長い時間を要することになり、オーバヘッドとして無視できない。
【0004】また、キャッシュメモリそれ自体が能動的にバスアクセス状態を監視し、キャッシュコヒーレンシを維持するように能動的に動作するスヌープ方式のキャッシュ制御を採用することも可能であるが、この制御方式は、キャッシュメモリによる能動的な制御故に回路の物理的及び論理的な規模が増大し、コストの増大を招いてしまう。
【0005】本発明の目的は、外部バスマスタとキャッシャブルエリアを共有可能なときにキャッシュコヒーレンシを維持する処理に移行するための前処理によるオーバーヘッドを低減することができるデータ処理装置、更にはデータ処理システムを提供することにある。
【0006】本発明の別の目的は、外部バスマスタとキャッシャブルエリアを共有可能なときにキャッシュコヒーレンシの維持を行なうための物理的及び論理的な規模を小さくすることができるデータ処理装置、更にはデータ処理システムを提供することにある。
【0007】本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0008】
【課題を解決するための手段】本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】〔1〕本発明に係るデータ処理装置は、外部に第1バスと第2バスが別々に接続可能であって、前記第1バスに接続する外部バスマスタに前記第2バスに接続する外部メモリのアクセスを許容するバス権を与えることが可能なデータプロセッサであって、前記外部メモリをキャッシュ対象とすることが可能なキャッシュメモリを含む。このデータプロセッサは、外部バスマスタからのアクセス要求の条件が特定の条件を満たすとき、キャッシュメモリの状態をチェックし、外部バスマスタからのメモリアクセスアドレスに対してキャッシュメモリにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記外部バスマスタからのアクセス要求に応答する外部メモリアクセスを開始可能にする。
【0010】上記した手段によれば、データ処理装置が外部バスマスタとキャッシャブルエリアを共有可能なときにキャッシュコヒーレンシを維持する処理に移行するための前処理では、外部バスマスタからのアクセス要求の条件が特定の条件を満たすか否かを判定すればよく、CPUへの割り込み処理に必要な状態保存などの前処理を要しない。外部バスマスタにデータプロセッサ内のバス権を与えることによってCPU動作との間の関係は整合する。また、キャッシュコヒーレンシを保つ操作はキャッシュメモリがバス状態を監視して能動的に行なうものではないから、従来のバススヌープ方式のキャッシュ制御を採用する場合に比べて、キャッシュコヒーレンシの維持を行なうための物理的及び論理的な規模を小さくすることが可能である。
【0011】本発明の一つの具体的な態様として、データ処理装置は、前記特定の条件をプログラマブルに指定するための制御レジスタを有する。前記制御レジスタは、アクセスアドレスとの比較に用いられる特定のアドレスを指定するための第1記憶領域を有する。アクセスアドレスがキャッシャブルエリアであるか否かの判定に用いられる。
【0012】前記制御レジスタは、アドレス比較のアドレスレンジを指定する第2記憶領域を有する。キャッシャブルエリアのサイズを任意に指定可能になる。
【0013】前記制御レジスタは、アドレス比較結果の一致又は不一致の何れを特定の条件成立とするかを指定するための第3記憶領域を有する。第1記憶領域及び第2記憶領域を用いてキャッシャブルエリアを直接指定するときは、アドレス比較結果の一致を特定の条件成立とすればよい。第1記憶領域及び第2記憶領域を用いてノンキャッシャブルエリアを指定するときは、アドレス比較結果の不一致を特定の条件成立とすればよい。キャッシャブルエリアがノンキャッシャブルエリアに分断されている状態を指定するのに便利である。
【0014】前記制御レジスタは、前記特定の条件が不成立であることを選択的に指定するための第4記憶領域を有してよい。要するに、キャッシュコヒーレンシを保つための一連の処理について選択/非選択が可能になる。
【0015】前記キャッシュコヒーレンシを保つ操作は、例えば、外部バスマスタによるメモリアクセスアドレスに基づいたキャッシュのヒットしたブロックがダーティであってライトアクセスに応答するときは当該ブロックをライトバックし且つ無効化し、キャッシュのヒットするブロックがダーティであってリードアクセスに応答するときは当該ブロックをライトバックし且つクリーン化し、キャッシュのヒットするブロックがクリーンであってライトアクセスに応答するときはヒットブロックを無効化し、キャッシュにヒットするブロックがクリーンであってリードアクセスに応答するとき及びヒットするブロックが存在しない時は、何もしない操作である。
【0016】〔2〕更に具体的な観点による本発明に係るデータ処理装置は、キャッシュメモリを内蔵するCPU、外部バスマスタを接続可能な外部インタフェース回路、外部メモリを接続可能なメモリインタフェース回路、及びそれらが共通接続される内部バスを有する。前記外部インタフェース回路は、外部バスマスタからの要求に応答してバス権を委譲することが可能であり、バス権を委譲したとき、外部バスマスタからの要求に応じて、前記内部バスから前記メモリインタフェース回路を介して外部メモリをアクセス可能とする。更に前記外部インタフェース回路は、前記メモリインタフェース回路を介して外部メモリをアクセスするときのアクセス条件が特定の条件を満たすとき、前記CPUに所定のキャッシュ制御コマンドを発行し、それに対する所定の応答を待って前記メモリインタフェース回路を介する外部メモリアクセスを開始可能する。前記CPUは、前記キャッシュ制御コマンドを受理したとき、キャッシュメモリの状態をチェックし、メモリアクセスアドレスに対してキャッシュメモリにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記所定の応答を前記外部インタフェース回路に返すことが可能である。
【0017】この発明においても上記同様に、データ処理装置が外部バスマスタとキャッシャブルエリアを共有可能なときにキャッシュコヒーレンシを維持する処理に移行するには、CPUへの割り込み処理に必要な状態保存などの前処理を要せず、また、従来のバススヌープ方式のキャッシュ制御を採用する場合に比べて、キャッシュコヒーレンシの維持を行なうための物理的及び論理的な規模を小さくすることが可能である。
【0018】前記外部インタフェース回路には、上記同様に、第1乃至第4記憶領域が割当てられた制御レジスタを設け、前記特定の条件をプログラマブルに指定可能にするのが望ましい。
【0019】前記外部インタフェース回路は、外部にバス権を与えた状態で前記所定の応答を待っているとき、前記外部インタフェース回路の状態が所定の状態であることを条件に、前記外部に対してバス権の解放とリトライを要求する機能を有することが望ましい。前記所定の状態は、前記外部インタフェース回路が新たなアクセス要求を受付け不可能な状態である。例えば、CPUが外部インタフェース回路に外部リードアクセスを指示して、CPUがデータリードを待っているとき、外部バスマスタが外部インタフェース回路からバス権を獲得して外部メモリアクセス可能にされることがある。このとき、キャッシュコヒーレント維持のためにCPUがキャッシュメモリのライトバックを行なおうとしても、CPUは先に発行したリードアクセスに対するリードデータを待っているためにライトバックのための外部メモリアクセスを行なうことができずにデッドロックになってしまう可能性がある。前記外部インタフェース回路が新たなアクセス要求を受付け不可能な状態にあるとき、そのようなデッドロックを生ずる可能性があるので、前記バス権の解放とリトライの要求機能により、外部バスマスタにバス権を放棄させれば、先のリードアクセスが処理されてCPUは新たなアクセス要求を発行可能になる。この状態で外部バスマスタは、バス権放棄により中断若しくは中止した外部メモリアクセスをリトライすればよい。これにより、デッドロックの虞を未然に防止することができる。
【0020】〔3〕本発明に係るデータ処理システムは、データプロセッサと、前記データプロセッサに接続されたローカルバスと、前記ローカルバスに接続された外部メモリと、前記データプロセッサに接続されたシステムバスと、前記システムバスに接続された外部バスマスタと、前記システムバスに接続されたその他の回路と、を有する。前記データプロセッサは、前記外部バスマスタに前記外部メモリのアクセスを許容するバス権を与えることが可能であって、前記外部メモリをキャッシュ対象とすることが可能なキャッシュメモリを含み、外部バスマスタからのアクセス要求の条件が特定の条件を満たすとき、前記キャッシュメモリの状態をチェックし、メモリアクセスアドレスに対してキャッシュメモリにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、前記外部バスマスタからのアクセス要求に応答する外部メモリアクセスを開始可能にする。
【0021】前記外部バスマスタによる前記アクセス要求には、外部バスマスタが接続されるアドレス空間情報を含むとよい。これにより、データプロセッサは、バス幅やウェイトサイクル数等の外部バスマスタのアクセス能力に合わせて外部バスマスタとインタフェースを行なうことができる。
【0022】前記データプロセッサには、上記同様に、第1乃至第4記憶領域が割当てられた制御レジスタを設け、前記特定の条件をプログラマブルに指定可能にするのが望ましい。更に、複数の外部バスマスタがシステムバスに接続される場合には、夫々の外部バスマスタに応じて前記制御レジスタを夫々有し、前記特定の条件をプログラマブルに指定可能にしても良い。
【0023】
【発明の実施の形態】図1には本発明に係るデータ処理システムが例示される。同図に示されるデータ処理システムは、データプロセッサ1、前記データプロセッサ1に接続されたローカルバス2、前記ローカルバス2に接続された外部メモリ例えばダブルデータレートの大容量のSDRAM(Synchronous Dynamic Random Access Memory)3、前記データプロセッサ1に接続されたシステムバス4、前記システムバス4に接続された外部バスマスタ5、前記システムバス4に接続されたその他の回路例えばフラッシュメモリ(FLASH)6及びSRAM(Static Random AccessMemory)7、そしてデータプロセッサ1に接続されたPCI(Peripheral Component Interconnect)バス8を備えて成る。前記ローカルバス2はSDRAM3に専用化され、例えばメモリモジュール向け小振幅高速インタフェースであるSSTL(Stub Series Terminated Transceiver Logic)2のバス仕様に準拠する。システムバス4はLVTTL(Low Voltage TTL)に準拠するバスであり、共有バスとして利用される。前記外部バスマスタ5はグラフィックコントローラ又はハードディスクコントローラなどのバスマスタモジュールを意味する。図示は省略するが、システムバス4には複数の外部バスマスタ及び複数のASICを接続することも可能である。
【0024】前記データプロセッサ1は、キャッシュメモリ10を内蔵したCPU11、DMAC12(Direct Memory Access Controller)、PCIインタフェース回路13、SDRAMインタフェース回路14、外部バスインタフェース回路15、周辺ブリッジインタフェース回路16、デバッグインタフェース回路17、それらの回路ジュールを接続する内部バス(オンチップバス)18から成る。周辺ブリッジインタフェース回路16は、オンチップバス18と周辺バス20との間のブリッジを構成する。周辺バス20には適宜の内部周辺回路(IP)21が接続される。SDRAMインタフェース回路14はデータプロセッサ1のローカルメモリである前記SDRAM3がローカルバス2経由で接続される。外部バスインタフェース回路15は、前記システムバス4とオンチップバス18に接続される。
【0025】前記SDRAM3はキャッシュメモリ10によるキャッシャブル領域を含む。外部バスインタフェース回路15は、オンチップバス18側のバスマスタモジュールであるCPU11からのバス権要求、DMAC12からのバス権要求、そしてシステムバス4側のバスマスタモジュールである外部バスマスタ5からのバス権要求を調停する。図1においてBREQは外部バスマスタ5から外部バスインタフェース回路15へのバス権要求信号、BACKは外部バスインタフェース回路15から外部バスマスタ5へのバス権承認信号である。
【0026】CPU11又はDMAC12がバス権を獲得すれば、そのバス権を獲得したバスマスタモジュールが外部バスインタフェース回路15を介してシステムバス4の回路モジュールをアクセスすることができる。
【0027】一方、システムバス4側の外部バスマスタ5がバス権を獲得したときは、外部バスマスタ5はシステムバス4の回路モジュールをアクセスすることができ、更に、外部バスインタフェース回路15を介してSDRAM3のアクセスが可能にされる。これは、図1のシステムではSSTL2の高速バス仕様を用いて高速大容量メモリであるSDRAM3をシステムバス4から切り離したローカルメモリとし、このSDRAM3をCPU11のワークメモリとして、更には外部バスバスマスタのテンポラリメモリ或はフレームバッファメモリとしても利用可能にするためである。外部バスマスタ5がSDRAM3をアクセスする場合の経路は、外部バスマスタ5、外部バスインタフェース回路15、オンチップバス18、SDRAMインタフェース回路14及びSDRAM3に通ずる経路となる。尚、システムバス側の外部バスマスタ5がバス権を獲得したときは、外部バスマスタ5はオンチップバス18上のその他の回路モジュールをアクセスすることも可能である。要するに外部バスマスタ5はローカルメモリ(SDRAM3)も含めてデータプロセッサ1をアクセスすることができる。
【0028】図2にはデータプロセッサのオンチップバス18に接続された回路モジュールに割当てられる物理アドレスマップが例示される。4ギガバイト(GB)のアドレス空間に、夫々の回路モジュールがマッピングされる。例えば図中、FEMI_dbは前記外部バスインタフェース回路15をメモリマップドI/Oとみなしたとき当該回路15に割当てられるアドレス空間、EMI_DRAMはSDRAM3のアドレス空間である。
【0029】図3には外部バスインタフェース回路15に割当てられるアドレスマップが例示される。ここでは128メガバイト(MB)のアドレス空間がエリア0〜エリア4までの5個のエリアに分割される。図の例からも明らかなように、外部バスインタフェース回路15には外部バスマスタ5が複数個接続される場合もある。図示は省略するが、更にASICも複数接続することが可能である。
【0030】外部バスマスタ5がシステムバス4上の回路モジュールをアクセスするときは、どの回路モジュールをアクセスするかを示すために対応する回路モジュールのモジュール選択信号(チップ選択信号)をアサートする。外部バスマスタ5がデータプロセッサ1をアクセスするときは、全てのモジュール選択信号をネゲートする。このとき外部バスマスタ5は、自分自身が図3のどのエリアに接続されているかを通知するためにアドレス空間情報26(図1参照)を外部バスインタフェース回路15に出力する。外部バスインタフェース回路15は、制御レジスタ27として、図3のエリア0〜4毎に図4のメモリ制御レジスタAnMCR(n=0〜4)を有し、外部バスマスタ5が通知するアドレス空間情報により制御レジスタAnMCR(n=0〜4)の中から一つを選択し、それによって外部バスインタフェース回路15は外部バスマスタ5との通信に必要なウェイトサイクル数などの制御情報を認識する。
【0031】図4のメモリ制御レジスタAnMCR(n=0〜4)は、前述のようにエリア0〜エリア4の夫々に対応して存在し、各エリアに接続されるデバイスと外部インタフェース回路15との間のアクセスを規定するパラメータを指定する。外部バスマスタ5が外部インタフェース回路15をアクセスするとき、それがどのアドレスエリアに接続されているかは、前記アドレス空間情報26により通知される。 外部インタフェース回路15は通知されたエリアのメモリ制御レジスタAnMCR(n=0〜4)の内容に従って、外部バスマスタ5とハンドシェイクで情報のインタフェース制御を行なう。
【0032】図5に外部バスマスタ5と外部インタフェース回路15との間のバスアービトレーションシーケンスが例示される。期間T1ではオンチップバス18側のCPU11などにより外部インタフェース回路15を介してシステムバス4がアクセスされている状態を示す。期間T2では外部バスマスタ5がバス権を取ってデータプロセッサ1をアクセスするときのシステムバス4の状態を示している。外部バスインタフェース回路15はバス権を取っていないためハイインピーダンス状態となり、システムバス4上ではバス権を取っている外部バスマスタ5よりアドレス等の情報が出力されている。期間T3はその後、再度オンチップバス18側のCPU11などにより外部インタフェース回路15を介してシステムバス4がアクセスされている状態を示す。尚、図5では前記信号BREQ,BACKを負論理信号として図示している。
【0033】図6には外部バスマスタ5がローカルメモリをアクセスするときの処理フローが例示される。先ず、外部バスマスタ5が外部インタフェース回路15にバス権要求信号BREQをアサートしてオンチップバス18のバス権を要求する(ST1)。オンチップバス18側との競合が無ければバス権承認信号BACKがアサートされて外部バスマスタ5にバス権が与えられる(ST2)。これにより、外部バスマスタ5はデータプロセッサ1をアクセスする。続いて外部バスマスタ5が外部インタフェース回路15にアドレス、データ(ライト時)、コマンドを送る(ST3)。外部インタフェース回路15は、そのメモリアクセスアドレスがキャッシュコヒーレンシ(単にコヒーレンシとも称する)対象アドレスか否かを判定し(ST4)、コヒーレンシ対象アドレスであるという特定の条件を満たすとき、CPU11にコヒーレンシコマンドを送る。コヒーレンシコマンドを受取ったときCPU11の動作については詳細を後述するが、概略的には、前記キャッシュメモリ10の状態をチェックし、メモリアクセスアドレスに対してキャッシュにヒットするブロックがあれば前記メモリアクセスアドレスのデータとの間のキャッシュコヒーレンシを保つ操作を行なって、コヒーレンシコマンドに対する応答を外部インタフェース回路15に返す。外部インタフェース回路15はコヒーレンシコマンドに対する応答の受領を確認すると(ST6)、今度はSDRAMインタフェース回路14にアクセスコマンドを供給して、SDRAM3のアクセス動作を開始させる(ST7)。
【0034】図7にはコヒーレンシコマンド受理後のCPU11によるコヒーレンシ処理フローが例示される。コヒーレンシコマンドを受理し(ST10)、キャッシュメモリ10をチェックし(ST11)、キャッシュヒットか否かを判定し(ST12)、キャッシュミスであれば当該コヒーレンシコマンドに対する応答を外部インタフェース回路15に返す(ST19)。キャッシュヒットであればダーティーブロックにヒットしたか否かを判定し(ST13)、次にライトアクセスに応答するアクセスであったか、換言すればライトアクセス時のコヒーレンシ維持かリードアクセス時のコヒーレンシ維持かを判別する(ST14,ST15)。ステップST12〜ST15の判定により、キャッシュのヒットするブロックがダーティであってライトアクセスに応答するアクセスのときはヒットするブロックをライトバックし且つ当該ブロックを無効化し(ST16)、キャッシュのヒットするブロックがダーティであってリードアクセスに応答するときはヒットするブロックをライトバックし且つ当該ブロックをクリーン化し(ST17)、キャッシュのヒットするブロックがクリーンであってライトアクセスに応答するときはヒットするブロックを無効化する操作を行なって(ST18)、当該コヒーレンシコマンドに対する応答を外部インタフェース回路15に返す(ST19)。
【0035】コヒーレンシ対象アドレスという特定の条件をプログラマブルに指定する為の制御レジスタ28について説明する。外部インタフェース回路15は、その制御レジスタ28として、例えば図8に例示されるスヌープアドレスレジスタSNPARn(n=0,1)と、図9に例示されるスヌープ制御レジスタSNPCRn(n=0,1)を有する。
【0036】図8にはスヌープアドレスレジスタSNPARn(n=0,1)の一例が示される。スヌープアドレスレジスタSNPARnのビット31〜0(CADR:第1記憶領域)には、CPU11により32ビットの物理アドレス(アクセスアドレスとの比較に用いられるアドレス情報)が任意に指定可能にされる。
【0037】図9にはスヌープ制御レジスタSNPCRn(n=0,1)の一例が示される。ビット1〜0(SNPMD:第3記憶領域及び第4記憶領域)は、外部インタフェース回路15がコヒーレンシコマンドを発行する機能をイネーブルにするか否か、またコヒーレンシコマンドを発行する場合には、スヌープアドレスレジスタSNPARnのアドレスと、外部バスマスタ5のアクセスアドレスの比較結果が一致したとき発行するのか、不一致のとき発行するのかを指定する。ビット4〜2(RANGE:第2記憶領域)は、アドレス比較を行なうアドレス長を指定する。ビット7〜4は、スヌープアドレスレジスタSNPARn及びスヌープ制御レジスタSNPCRnをどのエリアに接続された外部バスマスタからのアクセスに用いるかを指定する。この例では、スヌープアドレスレジスタSNPARn及びスヌープ制御レジスタSNPCRnがともに2本実装されており、外部バスマスタ5が最大2つのエリアに接続された場合までをサポートすることができる。また複数の外部バスマスタが接続される場合には夫々に対応した前記スヌープアドレスレジスタSNPARn及びスヌープ制御レジスタSNPCRnを外部バスインタフェース15内に持たせることにより任意に制御することが可能となる。
【0038】前記スヌープアドレスレジスタSNPARnの第1記憶領域と前記スヌープ制御レジスタSNPCRnの第2記憶領域を用いて図10のキャッシャブルエリアCE1を直接指定するときは、アドレス比較結果の一致をコヒーレンシコマンド発行の条件成立とすればよい。前記スヌープアドレスレジスタSNPARnの第1記憶領域と前記スヌープ制御レジスタSNPCRnの第2記憶領域を用いて図10のノンキャッシャブルエリアNCE2を指定するときは、アドレス比較結果の不一致をコヒーレンシコマンド発行の条件成立とすればよい。この設定はキャッシャブルエリアCE2がノンキャッシャブルエリアNCE2に分断されている状態を指定するのに便利である。
【0039】次に、外部インタフェース回路15の内蔵バッファのフル状態によるデッドロック条件とその解消方法について図6を参照しながら説明する。
【0040】前記外部インタフェース回路15は、外部バスマスタ5にバス権を与えた状態で前記キャッシュコヒーレンシコマンドに対するCPU11からの応答を待っているとき(図6のST6)、前記外部インタフェース回路15の状態が所定の状態、例えば前記外部インタフェース回路15のリクエスト受付バッファ(図1の30)がフル状態で新たなアクセス要求を受付け不可能な状態、であることを条件に(図6のST8)、前記外部インタフェース回路15は前記外部バスマスタに対してバス権の解放とリトライを要求する機能を有する(図6のST9)。例えば、CPU11が外部インタフェース回路15に外部接続されたSRAM7などに対する外部リードアクセスを指示して、CPU11がデータリードを待っているとき、外部バスマスタ5が外部インタフェース回路15からバス権を獲得してSDRAM3をアクセス可能にされることがある。このとき、キャッシュコヒーレントコマンドが発行されて例えばCPU11がキャッシュメモリ10のライトバックを行なおうとしても、CPU15は先に発行したリードアクセスに対するリードデータを待っているためにライトバックのための外部メモリアクセスを行なうことができずにデッドロックになってしまう可能性がある。そこで前記外部インタフェース回路15が新たなアクセス要求を受付け不可能な状態にあるとき、そのようなデッドロックを生ずる可能性があるので、前記バス権の解放とリトライを要求機能により外部バスマスタ5にバス権を放棄させれば、先のリードアクセスが処理されてCPU11は新たなアクセス要求を発行可能になる。この状態で外部バスマスタ5は、バス権放棄により中断若しくは中止したSDRAM3のアクセスをリトライすればよい。これにより、デッドロックの虞を未然に防止することができる。
【0041】以上説明したデータプロセッサ1及びこれを適用したデータ処理システムによれば以下の作用効果を得る。
【0042】外部バスマスタ5がデータプロセッサ1のキャッシャブルローカルメモリとしてのSDRAM3をアクセスするとき、キャッシュメモリ10のキャッシュコヒーレンシを維持させる処理を行うのにデータプロセッサ1への割り込み処理が不要になり、その処理のオーバーヘッドを低減でき、そのメモリアクセスを高速化することができる。外部バスマスタ5のデータ転送処理とデータプロセッサ1の演算処理を並列に実行できるようになり、データ処理性能も向上させることが可能になる。これに対し、そのようなキャッシュコヒーレンシを維持させるのにデータプロセッサへの割り込み処理を介在させる場合には、その割り込みハンドラ実行中に、データプロセッサは他の処理を実行できず、また割り込み処理のオーバーヘッド(割り込み開始、レジスタ待避、回復など)にプロセッサマシンサイクルで50〜100サイクル程度必要になる。本発明の場合にはオーバーヘッドはプロセッササイクルで10サイクル程度であり、データ転送とプロセッサ処理の並列実行も可能である。
【0043】更に、外部バスマスタ5のドライバソフトを簡略化でき、その開発工数も低減可能になる。外部バスマスタ5のドライバから、コヒーレンシ用の割り込みハンドラを除くことができるからである。
【0044】以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0045】例えば、外部バスマスタがリードアクセスする時のコヒーレンシチェックに伴うキャッシュ操作を下記のようにすることも可能である。即ち、キャッシュメモリのリードヒットするブロックがダーティであるとき、ヒットするブロックをライトバックすると共にクリーン化し、更にそのデータを外部インタフェース回路15に直接供給する。キャッシュメモリのリードヒットするブロックがクリーンなとき、ヒットするブロックのデータを外部インタフェース回路15に供給する。このように、キャッシュメモリのリードヒット時には、外部バスマスタ5が所望とするデータはCPU11のキャッシュメモリ10内に存在しているから、そのデータをCPU11から直接外部インタフェース回路15に転送することにより、前述したところの外部インタフェース回路15がコヒーレンシコマンドの完了通知を受理した後にSDRAMインタフェース回路14を改めてアクセスする場合に比べて、高速アクセスが可能になる。
【0046】また、データプロセッサのオンチップ回路モジュールは前記説明に限定されず適宜変更可能である。ローカルメモリとしての外部メモリはダブルデータレートのSDRAMに限定されず、シングルデータレート、或はその他記憶形式のメモリであってもよい。また、システムバスとローカルバスの仕様はLVTTLとSSTL2に限定されず適宜変更可能である。また、本発明は複数のキャッシュ内蔵のプロセッサで構成される、マルチプロセッサシステムにも適用可能である。
【0047】
【発明の効果】本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0048】外部バスマスタがデータ処理装置のキャッシャブルメモリをアクセスするとき、キャッシュメモリのキャッシュコヒーレンシを維持させるのにデータ処理装置への割り込み処理が不要になり、キャッシュコヒーレンシを維持させる処理のオーバーヘッドが小さくなり、そのアクセスを高速化することができる。外部バスマスタのデータ転送処理とデータ処理装置の演算処理を並列に実行できるようになり、データ処理性能も向上させることが可能になる。更に、外部バスマスタのドライバソフトを簡略化でき、その開発工数も低減可能になる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013