| 【発明の名称】 |
メモリ制御装置 |
| 【発明者】 |
【氏名】我妻 智彦
|
| 【要約】 |
【課題】プロセッサやPCIバス等の他のバスマスタが、プロセッサバスを自由に占有できて、処理を一時中断することなく次の命令処理へ移行することができ、装置全体の性能向上が図れるメモリ制御装置を提供する。
【解決手段】メインメモリ3及びキャッシュメモリ4をデュアルポートメモリとし、これら両メモリの片側のプロセッサ側ポート13a・14aにプロセッサ1を接続し、反対側のコントローラ側ポート13b・14bにダイレクトメモリアクセス(DMA)コントローラ6を接続し、該ダイレクトメモリアクセスコントローラによるコントローラ側ポートへのダイレクトメモリアクセス転送にて、メインメモリとキャッシュメモリとの間のデータ転送を行う。 |
【特許請求の範囲】
【請求項1】プロセッサからの命令に従いメインメモリ及びキャッシュメモリを書き込み・読み出し制御するメモリ制御装置において、前記メインメモリ及びキャッシュメモリをデュアルポートメモリとし、これら両メモリの片側のプロセッサ側ポートに前記プロセッサを接続し、反対側のコントローラ側ポートにダイレクトメモリアクセスコントローラを接続し、該ダイレクトメモリアクセスコントローラによる前記コントローラ側ポートへのダイレクトメモリアクセス転送にて、メインメモリとキャッシュメモリとの間のデータ転送を行うことを特徴とするメモリ制御装置。 【請求項2】プロセッサからのアドレスがキャッシュヒットしているか否かを判定するキャッシュヒット判定手段を備え、その判定結果がキャッシュヒットであるときは、プロセッサは、キャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、キャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、キャッシュヒット判定手段の判定結果がキャッシュヒットでないときは、プロセッサは、メインメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、メインメモリに書き込まれたデータをコントローラ側ポートから読み出して、キャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送することを特徴とする請求項1記載のメモリ制御装置。 【請求項3】キャッシュメモリがメインメモリよりも高速動作し、これらメインメモリとキャッシュメモリとのコントローラ側ポート間に、書き込み信号及び読み出し信号のためのタイミング調整手段を設けたことを特徴とする請求項1又は2記載のメモリ制御装置。 【請求項4】第1及び第2の二つのキャッシュメモリに対してメインメモリを共通とするとともに、各キャッシュメモリについてキャッシュヒット判定手段を備え、第1のキャッシュメモリがキャッシュヒットであるときは、プロセッサは、第1のキャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、第1のキャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリ及び第2のキャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、第2のキャッシュメモリがキャッシュヒットであるときは、プロセッサは、第2のキャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、第2のキャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリ及び第1のキャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、キャッシュヒットでないときは、プロセッサは、メインメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、メインメモリに書き込まれたデータをコントローラ側ポートから読み出して、第1及び第2の両キャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送することを特徴とする請求項1記載のメモリ制御装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、メインメモリとキャッシュメモリの書き込み・読み出しをプロセッサからの命令に従って制御するメモリ制御装置に関する。 【0002】 【従来の技術】従来のこの種のメモリ制御装置は、図8に示すように、プロセッサ100と、メインメモリ101及びキャッシュメモリ102と、これらメモリ101・102を制御するメモリコントローラ103と、プロセッサ100からのアドレスがキャッシュヒットしているか否かを判定するためのタグメモリ104と、外部インターフェースを持つI/Oデバイス部105とを有している。 【0003】メインメモリ101とキャッシュメモリ102は、それぞれシングルポートのメモリで構成され、正常にキャッシュ機能をさせるには、高速に動作するキャッシュメモリ102と、それより低速なメインメモリ101との内容の整合性が確保されなくてはならず、キャッシュメモリ102の内容が更新されたときには、メインメモリ101にもその更新内容が反映させなくてはならない。 【0004】しかし、従来では、メインメモリ101及びキャッシュメモリ102がいずれもシングルポートメモリで、その片側しかないポートにプロセッサ100を接続しているため、メインメモリ101とキャッシュメモリ102のデータ整合性確保のためにプロセッサバスをメモリアクセスの度に一時的に占有させなくてはならなかった。この間、装置の動作としては一時的に中断されることになり、性能が向上できない要因になっていた。 【0005】また、例えば特開平2−224043公報や特開昭63−240651公報に開示されているように、キャッシュメモリやタグメモリのみにデュアルポートメモリを使用した従来の装置では、メインメモリとキャッシュメモリ間のデータ整合性についてプロセッサは処理を意識しなくても済むが、その整合動作中は、プロセッサやPCIバス等のI/Oデバイス部は、メインメモリにはアクセスすることができないため、プロセッサがI/Oデバイス部にアクセスしたり、或はプロセッサやI/Oデバイス部がキャッシュされている領域にアクセスする処理のみに限定され、処理効率の向上に限界があった。 【0006】 【発明が解決しようとする課題】本発明の課題は、プロセッサやPCIバス等の他のバスマスタが、プロセッサバスを自由に占有できて、処理を一時中断することなく次の命令処理へ移行することができ、装置全体の性能向上が図れるメモリ制御装置を提供することにある。 【0007】 【課題を解決するための手段】本発明のメモリ制御装置は、メインメモリ及びキャッシュメモリをデュアルポートメモリとし、これら両メモリの片側のプロセッサ側ポートにプロセッサを接続し、反対側のコントローラ側ポートにダイレクトメモリアクセスコントローラを接続し、該ダイレクトメモリアクセスコントローラによるコントローラ側ポートへのダイレクトメモリアクセス転送にて、メインメモリとキャッシュメモリとの間のデータ転送を行うことを特徴とする。 【0008】本発明のメモリ制御装置は、プロセッサからのアドレスがキャッシュヒットしているか否かを判定するキャッシュヒット判定手段を更に備え、その判定結果がキャッシュヒットであるときは、プロセッサは、キャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、キャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、キャッシュヒット判定手段の判定結果がキャッシュヒットでないときは、プロセッサは、メインメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、メインメモリに書き込まれたデータをコントローラ側ポートから読み出して、キャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送する。 【0009】キャッシュメモリはメインメモリよりも高速動作するため、これらメインメモリとキャッシュメモリとのコントローラ側ポート間に、書き込み信号及び読み出し信号のためのタイミング調整手段を設ける。 【0010】また、本発明の他の形態のメモリ制御装置では、第1及び第2の二つのキャッシュメモリに対してメインメモリを共通とするとともに、各キャッシュメモリについてキャッシュヒット判定手段を備え、第1のキャッシュメモリがキャッシュヒットであるときは、プロセッサは、第1のキャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、第1のキャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリ及び第2のキャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、第2のキャッシュメモリがキャッシュヒットであるときは、プロセッサは、第2のキャッシュメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、第2のキャッシュメモリに書き込まれたデータをコントローラ側ポートから読み出して、メインメモリ及び第1のキャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送し、キャッシュヒットでないときは、プロセッサは、メインメモリに対してプロセッサ側ポートにデータを書き込み、ダイレクトメモリアクセスコントローラは、メインメモリに書き込まれたデータをコントローラ側ポートから読み出して、第1及び第2の両キャッシュメモリに対してコントローラ側ポートへダイレクトメモリアクセス転送する。 【0011】要するに本発明は、メインメモリとキャッシュメモリの両方にデュアルポートメモリを使用し、双方のデータの整合性を、お互いに片方のポート同士間でダイレクトメモリアクセス(以下、「DMA」と記す)転送することによって確保し、プロセッサや他のバスマスタは、メインメモリ及びキャッシュメモリのもう片方のポートに接続されたバスを自由に使用することができ、そのためプロセッサは、メインメモリとキャッシュメモリとの間の整合性処理中でも次の命令を処理でき、他のバスマスタはメインメモリへ直接アクセスできるため、システム全体の高性能化を実現できる。 【0012】 【発明の実施の形態】次に、本発明の実施の形態を図面に基づいて詳述する。 【0013】図1において、本発明によるメモリ制御装置は、プロセッサ1と、メモリコントローラ2と、プログラムやデータを格納するためのメインメモリ3と、キャッシュメモリ4と、タグメモリ5と、DMAコントローラ6と、DMA要求回路7と、PCIバス等のI/Oデバイス部8と、第1及び第2のタイミング調整回路9・10とを有している。メインメモリ3とキャッシュメモリ4とはデュアルポートメモリで構成され、キャッシュメモリ4はメインメモリ3よりも高速タイプのものである。 【0014】デュアルポートメモリであるメインメモリ3及びキャッシュメモリ4の片側のポート13a・14aは、第1のアドレスバス11aや第1のデータバス12aや制御バス13を介しプロセッサ1とメモリコントローラ2に接続され、またPCIバス等のI/Oデバイス部8にも同じバスで接続されている。以下、この片側のポート13a・14aを「プロセッサ側ポート」と言う。 【0015】一方、メインメモリ3及びキャッシュメモリ4の反対側のポート13b・14bは、第2のアドレスバス11bと第2のデータバス12bで接続され、これらはDMAコントローラ6によってデータ転送が制御される。以下、この反対側のポート13b・14bを「コントローラ側ポート」と言う。 【0016】プロセッサ1から発行されるアドレスがキャッシュヒットされているか否かの判定はタグメモリ5で行われる。 【0017】キャッシュメモリ4のプロセッサ側ポート14aにデータがライトされたとき、メインメモリ3とキャッシュメモリ4との間でデータ内容の整合性を持たせなければならないため、キャッシュメモリ4のコントローラ側ポート14bからメインメモリ3のコントローラ側ポート13bへDMA転送を行う。このときキャッシュメモリ4はメインメモリ3に比べて高速タイプであるため、DMAコントローラ6から出力されるメモリリード信号やメモリライト信号は、第1のタイミング調整回路9又は第2のタイミング調整回路10を介する。 【0018】図2に第1のタイミング調整回路9の構成例を示す。このタイミング調整回路9は、フリップフロップ回路21とシフトレジスタ22とで構成され、DMAコントローラ6からのDMAリード信号を、キャッシュメモリ4のコントローラ側ポート14bに対してはフリップフロップ回路21の出力をもってリード信号として与え、また該ポート14bから出力されるデータをメインメモリ3のコントローラ側ポート13bにライトするため、シフトレジスタ22で同期クロックの数クロック分シフトして、メインメモリ3のコントローラ側ポート13bにライト信号として与えるようになっている。 【0019】第2のタイミング調整回路10も基本的に同じで、DMAコントローラ6から出力されるDMAリード信号を、メインメモリ3のコントローラ側ポート13bに対してリード信号として与え、またキャッシュメモリ4のコントローラ側ポート14bに対してはライト信号として与えるが、キャッシュメモリ4が高速であるため、シフトするクロック数は少なくて済む。 【0020】また、これらタイミング調整回路9・10は、メインメモリ3及びキャッシュメモリ4がデュアルポートメモリで構成されているため、図3のタイミングチャートに示すように、双方のポートから同じアドレスアクセスの瞬間には、Busy信号が後からアクセスされたポートから出力され、この時には図2のようにプリセット状態であればよい。 【0021】DMA要求回路7は、プロセッサ1とDMAコントローラ6との間に設けられ、プロセッサ1がメモリアクセスへの命令を実行したときに、DMAコントローラ6に対してDMA転送を要求するための回路である。図4にその論理図を示す。キャッシュメモリ4とメインメモリ3の間でDMA転送が必要なのは、メモリライト時と、リード時でミスヒットしたときのみである。この時にDMAが要求され、DMAコントローラ6から出力されるバスホールドリクエスト信号との論理積をとり、これをDMAコントローラ6に返し、バスホールド承認とする。 【0022】次に、図1のシステムの動作について図2、図3、図4、図5及び図6を参照して説明する。 【0023】図5は、プロセッサ1がメモリライト命令を発行したときのフローチャートを示す。メモリコントローラ2の制御線からDMAリクエスト信号を生成し、これをDMAコントローラ6へ入力する。図4にその例を示す。このときDMAコントローラ6はDMA要求状態となる(図5のステップS20)。 【0024】同時にプロセッサ1が発行したアドレスがキャッシュヒットしているか否かの判定をタグメモリ5で行う(ステップS21)。 【0025】キャッシュヒットした場合、プロセッサ1は、キャッシュメモリ4のプロセッサ側ポート14aにデータを書き込む(ステップS22)。 【0026】また、このときDMAコントローラ6はバスのホールド要求を行うが、これは図4に示すような回路によってホールドの承認を受ける(ステップS23)。こうしてDMAコントローラ6は、キャッシュメモリ4のコントローラ側ポート14bとメインメモリ3のコントローラ側ポート13bの間のバスの占有権を獲得し、前述したステップ22で書き込まれたデータをキャッシュメモリ4のコントローラ側ポート14bから読み出す。 【0027】このとき、もし図3に示すようにキャッシュメモリ4のプロセッサ側ポート14aへのライト動作が完全に終了していなければ、キャッシュメモリ4のコントローラ側ポート14bからの読み出しはBusy状態となる(ステップS24)。キャッシュメモリ4のコントローラ側ポート14bから読み出されたデータは、DMAコントローラ5によってメインメモリ3のコントローラ側ポート13bへDMA転送される(ステップS25)。これによってメインメモリ3とキャッシュメモリ4の両方でデータの整合性が保たれる。 【0028】キャッシュミスヒットした場合には、メインメモリ3のプロセッサ側ポート13aにデータが書き込まれる(ステップS26)。このときも図4に示す様に、キャッシュヒット時と同様にDMAコントローラ6はバスホールドの承認を受ける(ステップS27)。そして、DMAコントローラ6は、キャッシュメモリ4のコントローラ側ポート14bとメインメモリ3のコントローラ側ポート13bの間のバスの占有権を獲得し、前述したステップS26でメインメモリ3に書き込まれたデータをコントローラ側ポート13bから読み出す。このときも同様に、メインメモリ3のプロセッサ側ポート13aへのライト動作が完全に終了していなければ、コントローラ側ポート13bからの読み出しはBusy状態となる(ステップS28)。 【0029】このコントローラ側ポート13bから読み出されたデータは、DMAコントローラ6によってキャッシュメモリ4のコントローラ側ポート14bへDMA転送される(ステップS29)。この場合も、メインメモリ3とキャッシュメモリ4の両方でデータの整合性が保たれる。 【0030】次に、プロセッサがメモリリード命令を発行したときの動作を図6のフローチャートを参照して説明する。 【0031】プロセッサ1が発行したアドレスの判定をタグメモリ5で行う(ステップS31)。図4に示すように、キャッシュヒットした場合は、DMAコントローラ6はDMAリクエスト信号を受け付けず、プロセッサ1はキャッシュメモリ4のプロセッサ側ポート14aからデータを読み出す(ステップS32)。 【0032】キャッシュミスヒットした場合は、図4に示すようにDMAコントローラ6はDMA要求状態となり(ステップS30)、その後バスのホールド要求を行い、その承認を受ける(ステップS34)。また、プロセッサ1はメインメモリ3のプロセッサ側ポート13aからデータを読み出す(ステップS33)。このとき、DMAコントローラ6は、キャッシュメモリ4のコントローラ側ポート14bとメインメモリ3のコントローラ側ポート13bの間のバスの占有権を獲得しており、メインメモリ3のコントローラ側ポート13bからデータを読み出す。また、このときも前述のステップS33の読み込み動作が完全に終了していなければ、コントローラ側ポート13Bからの読み込み動作はBusy状態となる(ステップS35)。 【0033】メインメモリ3のコントローラ側ポート13bから読み出されたデータは、DMAコントローラ6によってキャッシュメモリ4のコントローラ側ポート14bから、無効領域に書き込まれる(ステップS36)。 【0034】このようにメインメモリ3とキャッシュメモリ4の両方において、それらのプロセッサ側ポート13b・14b間でデータの整合性を常に保つので、その整合動作中、プロセッサ1はI/Oデバイス部8やメモリ3・4へアクセスでき、またI/Oデバイス部8もメモリ3・4へ直接アクセスできる。 【0035】以上のように、プロセッサ1がメモリライト命令を実行しようとしたとき、生成されたアドレスがタグメモリ5によって比較され、キャッシュヒットされていれば、キャッシュメモリ4のプロセッサ側ポート14aにライトし、直後に同じデータをコントローラ側ポート14bからメインメモリ3のコントローラ側ポート13bへDMA転送を行う。 【0036】また、ミスヒットした場合、メインメモリ3のプロセッサ側ポート13aに直接ライトし、直後に同じデータをメインメモリ3のコントローラ側ポート13bからキャッシュメモリ4のコントローラ側ポート14bにDMA転送を行う。 【0037】このようにしてメインメモリ3とキャッシュメモリ4の間のデータの整合性が常に保たれ、且つプロセッサ1やI/Oデバイス部8等のバスマスタは、整合動作を意識することなくバスを自由に占有し、命令実行できるため、システムの高性能化が実現できる。 【0038】次に、本発明の変形例について図7を参照して説明する。 【0039】プロセッサバスを共有する第1及び第2のプロセッサ51a・51bと、これらのプロセッサ51a・51bに対して共通なメモリコントローラ52及びメインメモリ53と、それぞれのプロセッサ51a・51bにより制御される第1及び第2のキャッシュメモリ54a・54bと、第1及び第2のタグメモリ55a・55bと、DMAコントローラ56と、DMA要求回路57と、それぞれのプロセッサ51a・51bにより制御される第1及び第2のI/Oデバイス部58a・58bと、切り替え回路59とを有している。 【0040】メインメモリ53と第1及び第2のキャッシュメモリ54a・54bはデュアルポートメモリで、キャッシュメモリ54a・54bは、メインメモリ53よりも高速タイプである。メインメモリ53と第1及び第2のキャッシュメモリ54a・54bのコントローラ側ポートは、DMAコントローラ56によってDMA転送制御される。 【0041】第1のプロセッサ51aと第2のプロセッサ51bから、それぞれバス要求信号60a・60bがメモリコントローラ52へ入力され、調停されてバス開放信号61a・61bをそれぞれのプロセッサ51a・52bに返す。 【0042】どちらかのプロセッサがプロセッサバスの占有権を獲得したとき、第1のキャッシュメモリ54aと第2のキャッシュメモリ54bはいずれも有効であり、キャッシュメモリの領域が2倍になる。そのためのアドレス比較は、第1のタグメモリ55aと第2のタグメモリ55bで行われ、キャッシュヒット情報は双方の論理積でメモリコントローラ52に返される。 【0043】第1のキャッシュメモリ54aにキャッシュライトヒットされた時、DMAコントローラ56によって更新されたデータがメインメモリ53及び第2のキャッシュメモリ54bにコピーされる。 【0044】キャッシュミスヒットの時は、メインメモリ53から第1のキャッシュメモリ54aと第2のキャッシュメモリ54bに更新データがコピーされる。第2のキャッシュメモリ54bにキャッシュヒットした時も同様にして、DMAコントローラ56によって、第1のキャッシュメモリ54aとメインメモリ53と第2のキャッシュメモリ54bでデータの整合性が保たれる。第1のキャッシュメモリ54aからメインメモリ53と第2のキャッシュメモリ54bへコピーバックする時と、第2のキャッシュメモリ54bからメインメモリ53と第1のキャッシュメモリ54aへコピーバックする時との切り替えは、第1のプロセッサ51aと第2のプロセッサ51bがプロセッサバスを獲得する瞬間と連動しており、切り替え回路59で行う。 【0045】このように第1及び第2のプロセッサ51a・51bと、第1及び第2のI/Oデバイス部58a・58bは、メインメモリ53と各キャッシュメモリ54a・54bのデータの整合性を保つことを意識せずに、メインメモリ53やキャッシュメモリ54a・54bにアクセスできる。 【0046】 【発明の効果】本発明によれば、メインメモリとキャッシュメモリとがいずれもデュアルポートメモリで構成され、プロセッサと接続されているポートとは反対側のポート同士でDMA転送を行い、メインメモリとキャッシュメモリのどちらかがデータ更新されたときに常に他方へコピーするので、メインメモリとキャッシュメモリの間でデータの整合性を保つための処理を、プロセッサが意識しなくてよいため、性能向上が実現できる。そして。その処理の間、プロセッサやPCIバス等の他のバスマスタは、プロセッサバスを自由に占有できるため、処理を一時中断することなく次の命令処理へ移行することができ、装置全体の性能向上を図ることができる。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成10年(1998)5月13日 |
| 【代理人】 |
【弁理士】 【氏名又は名称】原田 信市
|
| 【公開番号】 |
特開平11−328013 |
| 【公開日】 |
平成11年(1999)11月30日 |
| 【出願番号】 |
特願平10−130664 |
|