(57)【要約】【課題】記憶装置、及び記憶方法を提供すること。【解決手段】少なくとも２つの処理ユニットとデータ及び／又は指令のための少なくとも１つの第１のメモリ又はメモリ領域とを有する計算機システム内でデータ及び／又は指令を記憶する装置及び方法は、装置内に第２のメモリ又はメモリ領域が含まれており、その場合に装置がキャッシュメモリシステムとして形成されており、かつ少なくとも２つの分離されたポートを搭載しており、これらのポートを介して第２のメモリ又はメモリ領域の同一又は異なるメモリセルへの少なくとも２つの処理ユニットのアクセスが行われ、その場合に第１のメモリシステムからデータ及び／又は指令がブロック単位で一時記憶されることを特徴としている。【選択図】図１
2009505180.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの処理ユニットと、データ及び命令の一方又は両方が記録される少なくとも１つの第１のメモリとを有する計算機システム内に形成されてデータ及び命令の一方又は両方が記録される記憶装置において、
前記記憶装置は、キャッシュメモリシステムとして形成されており、
第２のメモリと、
少なくとも２つの分離されたポートと、
を備え、
前記ポートを介して前記第２のメモリ内にある同一又は異なるメモリセルに対して少なくとも２つの前記処理ユニットからアクセスされる場合に、前記第１のメモリからデータ及び命令の一方又は両方がブロック単位で一時的に記録されることを特徴とする、記憶装置。
【請求項２】
少なくとも２つの前記ポートを介して、同時に１つの前記メモリセルに対して読取りアクセスする手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項３】
少なくとも２つの前記ポートを介して、同時に２つの異なる前記メモリセルに対して読取りアクセスする手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項４】
少なくとも２つの前記ポートを介して、１つの前記メモリセル又は２つの異なる前記メモリセルに対して同時に読取りアクセスされる場合に、一方の前記ポートからの前記読取りアクセスが完了するまで、他方の前記ポートからの前記読み取りアクセスを遅延させる手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項５】
少なくとも２つの前記ポートを介してアクセスされるアドレスを比較する手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項６】
第１の前記ポートを介して実行される前記第２のメモリ内のメモリセル又はメモリ領域に対する書込みアクセスを検知して、第２の前記ポートを介して実行される当該メモリセル又はメモリ領域に対する書込みアクセス又は読取りアクセスを前記第１のポートを介して実行される書込みアクセスが終了するまで制限する手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項７】
少なくとも１つの前記ポートを介して実行される読取りアクセスに際して、所望のデータが前記第２のメモリ内に存在するか否かを検査する手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項８】
第１の前記ポートを介して要求されたデータが前記第２のメモリ内に存在しない場合に、前記第１のメモリにアクセスして、当該第１のメモリのメモリ内容をブロック単位で前記第２のメモリに転送する手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項９】
第１の前記処理ユニットから第１の前記ポートを介して要求されたメモリブロックに対応する少なくとも１つのメモリセルに対し、第２の前記ポートを介してアクセスすべきか否かを判断するアドレス比較器をさらに備えることを特徴とする、請求項８に記載の記憶装置。
【請求項１０】
前記第２のメモリ内のデータが更新されている場合に前記メモリセルに対するアクセスを許可する手段をさらに備えることを特徴とする、請求項９に記載の記憶装置。
【請求項１１】
前記第２のメモリは、互いに独立して読取り又は書込み可能な少なくとも２つのアドレス領域に分割されていることを特徴とする、請求項１に記載の記憶装置。
【請求項１２】
複数の前記ポートから１つの前記アドレス領域に対して同時にアクセスされた場合に、１つの前記ポートのみにアクセスを許可し、ウェイト信号を用いて、少なくとも１つの他の前記ポートを介したアクセスを禁止又は遅延させるためのセレクト信号を生成するアドレスデコーダをさらに備えることを特徴とする、請求項１１に記載の記憶装置。
【請求項１３】
前記記憶装置が２つより多くの前記ポートを有し、選択装置をさらに備え、互いに独立した前記アドレス領域に対するアクセスが前記選択装置を介して複数段で実行され、各段を介してセレクト信号が伝えられることを特徴とする、請求項１２に記載の記憶装置。
【請求項１４】
前記記憶装置は、各前記ポートのアクセス可否を切り替えるために、少なくとも１つのモード信号を利用することを特徴とする、請求項１１、１２又は１３のいずれかに記載の記憶装置。
【請求項１５】
前記記憶装置は、各前記ポートのアクセス可否を切り替えるために、少なくとも１つのコンフィグレーション信号を利用することを特徴とする、請求項１１、１２又は１３のいずれかに記載の記憶装置。
【請求項１６】
前記記憶装置は、ｎ個の異なるアドレス領域を用いてｎ倍の連合キャッシュとして機能させることを特徴とする、請求項１１、１２又は１３のいずれかに記載の記憶装置。
【請求項１７】
前記第２のメモリ内にあるメモリセルに対する書込みアクセスの際に、書き込むべきデータを同時に前記第１のメモリに書き込む手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項１８】
前記第２のメモリ内にあるメモリセルに対する書込みアクセスの際に、書き込むべきデータを前記第１のメモリに遅延させて書き込む手段をさらに備えることを特徴とする、請求項１に記載の記憶装置。
【請求項１９】
少なくとも２つの処理ユニットと、データ及び命令の一方又は両方が記録される少なくとも１つの第１のメモリを有する計算機システム内に形成されてデータ及び命令の一方又は両方が記録される記憶装置による記憶方法において、
前記記憶装置が、キャッシュメモリシステムとして形成されており、第２のメモリと、少なくとも２つの分離されたポートと、を備えており、
前記ポートを介して前記第２のメモリ内にある同一又は異なるメモリセルに対して少なくとも２つの前記処理ユニットからアクセスされる場合に、前記第１のメモリからデータ及び命令の一方又は両方がブロック単位で一時記憶されることを特徴とする、記憶装置による記憶方法。
【請求項２０】
前記第２のメモリからデータを読み出すか、或いは、前記第２のメモリにデータを書き込むために、２つの前記ポートを介して第２のメモリ内にある同一又は異なるメモリセルに対して前記処理ユニットから並列にアクセスされ、かつ、同じメモリセルに対する読出しアクセスが２つの前記ポートを介して同時に行われることを特徴とする、請求項１９に記載の記憶方法。
【請求項２１】
前記記憶装置により、２つの前記ポートに対応付けられるアドレスが比較されることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【請求項２２】
第１の前記ポートを介して前記第２のメモリ又は前記第２のメモリ内にあるメモリセルに対する書込みアクセスが認識され、前記第１のポートを介して実行される書込みアクセスが完了するまで、第２の前記ポートを介して前記第２のメモリに対する書込みアクセス及び読取りアクセスが制限されるか、或いは、遅延されることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【請求項２３】
少なくとも１つの前記ポートを介して実行される読取りアクセスに際して、前記記憶装置により、所望のデータ及び命令の一方又は両方が前記第２のメモリ内に存在するか否かが検査されることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【請求項２４】
前記検査の処理は、アドレス情報を用いて実行されることを特徴とする、請求項２３に記載の記憶方法。
【請求項２５】
第１の前記ポートを介して要求されたデータが前記第２のメモリ内に存在しない場合に、そのデータに対応するメモリブロックの内容が前記第１のメモリから前記第２のメモリに転送されるように促されることを特徴とする、請求項２３に記載の記憶方法。
【請求項２６】
要求されたメモリブロックの内容が前記第１のメモリに転送されるとすぐに、データ及び命令の一方又は両方が存在するか否かに関する全ての情報が更新されることを特徴とする、請求項２３に記載の記憶方法。
【請求項２７】
前記記憶装置が備えるアドレス比較器により、第１の前記処理ユニットから要求されたメモリブロックに対応する少なくとも１つの前記メモリセルに対して第２の前記処理ユニットがアクセスしようとしているか否かが判定されることを特徴とする、請求項２３に記載の記憶方法。
【請求項２８】
データ及び命令の一方又は両方の存在に関する情報が更新された場合に、前記メモリセルに対するアクセスが可能になることを特徴とする、請求項２７に記載の記憶方法。
【請求項２９】
前記第２のメモリが少なくとも２つのアドレス領域に分割されており、前記少なくとも２つのアドレス領域が少なくとも２つの前記ポートを介して互いに独立して読み取り又は書き込みすることが可能である場合に、各前記ポートを介して各前記アドレス領域に対してアクセスされることが可能であることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【請求項３０】
１つの前記アドレス領域に対するアクセスが１つの前記ポートに限定されており、ウェイト信号により、前記１つのポートがアクセスしている間の他の前記ポートを介して実行される当該アドレス領域に対する他の全てのアクセス要求が制限又は遅延されることを特徴とする、請求項２９に記載の記憶方法。
【請求項３１】
前記第２のメモリ内にあるメモリセル又はメモリ領域に対して実行される書込みアクセスの際に、書き込まれるデータが同時に前記第１のメモリに書き込まれることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【請求項３２】
前記第２のメモリ内にあるメモリセル又はメモリ領域に対して実行される書込みアクセスの際に、書き込まれるデータが遅延されて前記第１のメモリに書き込まれることを特徴とする、請求項１９又は２０のいずれかに記載の記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、比較的高速なバッファメモリ（キャッシュ）を有するマイクロプロセッサシステムに関するものであって、例えば、デュアルポートキャッシュの技術分野に関係する。
【背景技術】
【０００２】
プロセッサ（又は中央処理装置、処理ユニット）は、指示（又は命令、コマンド等）、及びデータに対するアクセスを高速化するためにキャッシュメモリ（又はキャッシュ）を搭載している。このキャッシュは、多量のデータを処理する場合や、高速なプロセッサで複雑なデータ処理を実行する場合に必要になる。このキャッシュを利用すると、大きな容量を有するがアクセス速度が低速なメモリ（又はメインメモリ）に対するアクセスの頻度を低減することが可能になるため、プロセッサは、データがメインメモリから読み出されるまで待機する時間を短縮することが可能になる。キャッシュのタイプには、指令だけが格納されるキャッシュや、データだけが格納されるキャッシュが知られている。また、データと指示とを同一のキャッシュ内に格納可能な「ユニファイドキャッシュ（“Ｕｎｉｆｉｅｄ  Ｃａｃｈｅｓ”）」と呼ばれるキャッシュも知られている。さらに、階層的に複数レベルのキャッシュを有するキャッシュシステムも知られている。複数段に形成されたキャッシュは、レベル毎にメモリの容量やアクセス速度等が異なり、各レベルのメモリに対するアドレッシングストラテジーに基づいてプロセッサとメインメモリの間でデータアクセスの最適化が行われる。
【０００３】
一般に、マルチプロセッサシステムにおいては、プロセッサ毎にキャッシュが設けられていることが多い。マルチレベルキャッシュを採用するシステムの場合、レベル数に対応する数のキャッシュがプロセッサ毎に設けられる。これに関し、例えば、ＵＳ特許４３４５３０９には、複数のプロセッサによりアクセス可能な複数のキャッシュを備えるシステムが開示されている。
【０００４】
各処理ユニットに固定的に対応付けられたキャッシュを有するマルチプロセッサシステムにおいて、複数の処理ユニットが少なくとも部分的に同一の指令、プログラムセグメント、プログラム、又はデータを利用しようとする場合、各処理ユニットは、これらの情報をメインメモリから自ユニットに対応付けられたキャッシュにロードする必要がある。しかしながら、２つ以上のプロセッサがメインメモリにアクセスしようとする場合、バスの競合が発生する可能性がある。このバス競合がマルチプロセッサシステムにおけるパフォーマンスの低下をもたらす原因になる。また、複数のプロセッサに共通のキャッシュを有するシステムの場合、例えば、複数のプロセッサが共通のキャッシュにアクセスして当該複数のプロセッサが共通のキャッシュから同一のデータ又は異なるデータを処理しようとした場合にアクセス競合が発生する。そこで、どのプロセッサが共通のキャッシュに対して優先的にアクセスできるかが決定される必要がある。また、優先的にアクセス可能なプロセッサが処理している間、他のプロセッサは、必然的に待機する必要が生じる。あるキャッシュに対するアクセスが発生している際に、バスシステムで連結された異なるキャッシュに対しても同時に１つのアクセスしか許可されない仕様も考えられる。こうしたバスシステムが使用される場合、異なるデータ及び指令についても、上記と同じことが当てはまる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
プロセッサが、それぞれ固定的に対応付けられたキャッシュを有しており、さらにプロセッサシステムの駆動モードが切替え可能なシステムについて考えると、そこで異なるプログラム、プログラムセグメント又は指令を処理するか（パフォーマンスモード）、あるいは同一のプログラム、プログラムセグメント又は指令を処理して、その結果を比較又は投票する場合（比較モード）、各コントローラ（又は処理ユニット、装置）に並列して設けられたキャッシュ内にあるデータ又は指令は、駆動モード間の切り替えに際して消去されるか、或いは、キャッシュにロードする際に各駆動モードを表す情報と共に格納される。従って、装置の動作中にに駆動モードを切り替えることができるマルチプロセッサシステムには、共通の（或いは、階層化された）キャッシュのみが設けられていればよく、各データ又は指令が一度だけその中に格納されるように構成される。そして、そのキャッシュに対する同時アクセスが可能な場合にはより良い効果が期待される。本発明の課題は、この種のメモリを形成することにある。
【０００６】
本発明の課題は、キャッシュの大きさを好適化する手段と方法を提供することである。
【課題を解決するための手段】
【０００７】
少なくとも２つの処理ユニットとデータ及び／又は指令のための少なくとも１つの第１のメモリ又はメモリ領域とを有する計算機システム内でデータ及び／又は指令を記憶する装置は、装置内に第２のメモリ又はメモリ領域が含まれており、その場合に装置がキャッシュメモリシステムとして形成されており、少なくとも２つの分離されたポートを搭載しており、これらのポートを介して、第２のメモリ又はメモリ領域の同一又は異なるメモリセルへの、少なくとも２つの処理ユニットのアクセスが行われ、その場合に第１のメモリシステムからデータ及び／又は指令がブロック単位で一時記憶されることを特徴とする、装置（或いは記憶装置）が提供される。
【０００８】
この種の装置は、さらに、少なくとも２つのポートを介して１つのメモリセルへ同時にアクセスが行われるように形成された手段が設けられていると、効果的である。
【０００９】
さらに、装置内に、少なくとも２つのポートを介して２つの異なるメモリセルへ読み取りアクセスが行われるように形成された手段が設けられていると、効果的である。
【００１０】
さらに、装置内に、少なくとも２つのポートを介して同一又は２つの異なるメモリセルへ同時に読取りアクセスされた場合に、一方のポートのアクセスを、他のポートがアクセスを終了するまでの間、遅延させる手段が設けられていると、効果的である。
【００１１】
さらに、装置内に、少なくとも２つのポートにおけるアクセスアドレスを比較することができる手段が設けられていると、効果的である。
【００１２】
さらに、装置内に、第１のポートを介してのメモリセル又はメモリ領域への書込みアクセスを認識して、このメモリセル及び／又はメモリ領域への第２のポートを介しての書込みアクセス及び／又は読取りアクセスを、第１のポートを介しての書込みアクセスが終了するまでの間、阻止し又は遅延させる手段が設けられていると、効果的である。
【００１３】
さらに、装置内に、少なくとも１つのポートを介しての読取りアクセスにおいて、所望のデータが第２のメモリ又はメモリ領域内に存在するか、を調べる手段が設けられていると、効果的である。
【００１４】
さらに、装置内に、第１のメモリ又はメモリ領域をアドレスして、第１のポートを介して要請されたデータが第２のメモリないしメモリ領域内に存在しない場合に、第１のメモリ又はメモリ領域からメモリ内容をブロック単位で第２のメモリ又はメモリ領域へ転送するための手段が設けられていると、効果的である。
【００１５】
さらに、装置内に、アドレス比較器が設けられており、それが、第１の処理ユニットによって第１のポートを介して要請されたメモリブロックに基づく少なくとも１つのメモリセルへ第２のポートを介してアクセスすべきか、を定めると、効果的である。
【００１６】
さらに、装置内に、メモリセルへのアクセスを、第２のメモリ又はメモリ領域内のデータが更新された場合に初めて可能にする手段が設けられていると、効果的である。
【００１７】
さらに、装置内において第２のメモリ又はメモリ領域が、互いに独立して読み取り、かつ書き込みすることができる、少なくとも２つのアドレス領域に分割されていると、効果的である。
【００１８】
さらに、装置内にアドレスデコーダが設けられており、そのアドレスデコーダが、複数のポートによって１つのアドレス領域へ同時にアクセスされた場合に、１つのポートのにみアクセスを可能にし、少なくとも１つの他のポートのアクセスを、特にウェイト信号によって、禁止又は遅延させる、セレクト信号を生成すると、効果的である。
【００１９】
さらに、装置内に２つより多いポートが設けられており、その場合に選択装置が設けられており、互いに独立したアドレス領域へのアクセスが選択装置を介して多段で行われ、そのためにセレクト信号がこれらの段を介して伝えられると、効果的である。
【００２０】
さらに、装置内に、種々のポートのアクセス可能性を切り替える、少なくとも１つのモード信号が存在していると、効果的である。
【００２１】
さらに、装置内に、種々のポートのアクセス可能性を切り替える、少なくとも１つのコンフィグレーション信号が存在していると、効果的である。
【００２２】
さらに、装置内で、ｎの異なるアドレス領域を用いてｎ倍の連合キャッシュが実現されると、効果的である。
【００２３】
さらに、装置内に、第２のメモリのメモリセル又はメモリ領域への書込みアクセスの際に、書き込むべきデータを同時に第１のメモリ又はメモリ領域へ書き込む手段が設けられていると、効果的である。
【００２４】
さらに、装置内に、第２のメモリのメモリセル又はメモリ領域への書込みアクセスの際に、書き込むべきデータを遅延させて第１のメモリ又はメモリ領域へ書き込む手段が設けられていると、効果的である。
【００２５】
少なくとも２つの処理ユニットと、データ及び／又は指令のための少なくとも１つの第１のメモリ又はメモリ領域とを有する計算機システム内でデータ及び／又は指令を記憶する装置により記憶する方法が、装置内に第２のメモリ又はメモリ領域が含まれており、その場合に装置がキャッシュメモリシステムとして形成されており、かつ少なくとも２つの分離されたポートを搭載しており、それらのポートを介して第２のメモリ又はメモリ領域の同一又は異なるメモリセルへの少なくとも２つの処理ユニットのアクセスが行われ、その場合に第１のメモリシステムからデータ及び／又は指令が、ブロック単位で一時記憶されることを特徴する方法（或いは、記憶方法）が提供される。
【００２６】
好ましくは、第２のメモリ又はメモリ領域からデータを読み出し、かつ／又は第２のメモリ又はメモリ領域へデータを書き込むために２つのポートを介して第２のメモリ又はメモリ領域の同一又は異なるメモリセルへ処理ユニットから並列のアクセスが行われ、かつ２つのポートを介して同一のメモリセルの読出しが同時に行われてもよい。
【００２７】
好ましくは、２つのポートに印加されるアドレスが比較されることを特徴とする方法が、記載されている。
【００２８】
好ましくは、第１のポートを介しての第２のメモリ又はメモリ領域及び／又は第２のメモリ又はメモリ領域のメモリセルへの書込みアクセスが認識されて、この第２のメモリ又はメモリ領域への第２のポートの書込みアクセス及び読取りアクセスが、第１のポートを介しての書込みアクセスが終了するまでの間、阻止又は遅延されてもよい。
【００２９】
好ましくは、少なくとも１つのポートを介して読み取りアクセスする場合に、所望のデータ及び／又は指令が第２のメモリ又はメモリ領域内に存在するか、が調べられてもよい。
【００３０】
好ましくは、検査が、アドレス情報を用いて行われてもよい。
【００３１】
好ましくは、第１のポートを介して要請されたデータが第２のメモリ又はメモリ領域内に存在しない場合において、該当するメモリブロックが第１のメモリ装置から第２のメモリ又はメモリ領域へ転送されてもよい。
【００３２】
好ましくは、要請されたメモリブロックが第２のメモリ又はメモリ領域内へ転送されるとすぐに、データ及び／又は指令の存在に関するすべての情報が更新されてもよい。
【００３３】
好ましくは、アドレス比較器が、第１の処理ユニットによって要請されたメモリブロックに基づく少なくとも１つのメモリセルへ、第２の処理ユニットがアクセスしようとしていることを定めてもよい。
【００３４】
好ましくは、上述したメモリセルへのアクセスが、データ及び／又は指令の存在に関する該当する情報が更新された場合に、初めて可能にされてもよい。
【００３５】
好ましくは、第２のメモリ又はメモリ領域が、少なくとも２つのアドレス領域に分割されており、かつこれら少なくとも２つのアドレス領域が第２のメモリ又はメモリ領域の少なくとも２つのポートを介して互いに独立して読み取り又は書き込むことができ、その場合に各ポートが各アドレス領域へアクセスすることができてもよい。
【００３６】
好ましくは、１つのアドレス領域への同時アクセスが、正確に１つのポートに限定され、他のポートを介してのこのアドレス領域への他のすべてのアクセス要請が、第１のポートのアクセスの間、特にウェイト信号によって、禁止又は遅延されてもよい。
【００３７】
好ましくは、第２のメモリのメモリセル又はメモリ領域への書込みアクセスの際に、書き込むべきデータが同時に第１のメモリ又はメモリ領域へ書き込まれてもよい。
【００３８】
好ましくは、第２のメモリのメモリセル又はメモリ領域への書込みアクセスの際に、書き込むべきデータが遅延されて第１のメモリ又はメモリ領域へ書き込まれてもよい。本稿において、単純にメモリと表記した場合であっても、これがメモリ領域の意味を含む場合がある。
【発明の効果】
【００３９】
１つ又は複数の実施ユニット（又は処理ユニット）を有するプロセッサシステム（シングルコア又はマルチコア）において、キャッシュメモリをデュアルポートキャッシュとして実現することは、その技術的困難性からハードウェアの製造に要する手間とコストが高くなるため、容易には想到することができない。複数の実施ユニット（コア、プロセッサ）が即ち種々の駆動モードで互いに協働する（例えば、ＤＥ１０３３２７００Ａ１等を参照）ような方法をマルチプロセッサアーキテクチャに適用する場合、デュアルポートキャッシュアーキテクチャを使用することができれば格別の効果が得られると期待される。また、複数のキャッシュを有するマルチプロセッサシステムを利用することで、マルチプロセッサシステムが駆動モードを切り替える際に、キャッシュの内容が消去されたり、或いは、キャッシュの内容が無効として宣言されないで済むという利点が期待される。なぜなら、データは、キャッシュに一度しか格納されないため、駆動モード間の切替え後も一貫性が維持されるからである。
【００４０】
複数の駆動モードを有するマルチプロセッサシステム内において、デュアルポートキャッシュは、データ又は指令を何回もキャッシュへ取り出して処理する必要がないという効果が期待される。また、データ又は指令が複数の実施ユニットによって利用される場合でも、データ／指令毎に１つのメモリスペースをハードウェア的に準備すればよいという効果が期待できる。さらに、マルチプロセッサシステムが有する異なる駆動モードの各々について、どの駆動モードで処理されたデータか、又はどの駆動モードで取り出されたデータかについて区別する必要がなくなるという効果も期待される。また、駆動モードが切り替わる際にキャッシュを消去する必要がなくなるため、２つのプロセッサは、同時に同一のデータ又は指令に対して読み取りアクセスすることが可能になり、キャッシュに対して“ｗｒｉｔｅ  ｔｈｒｏｕｇｈ”モードの代わりに“ｗｒｉｔｅ  ｂａｃｋ”モードを使用することができるようになる。そのため、書込み処理の際に、常にメインメモリを更新する必要がなくなり、キャッシュ内のデータを上書きする場合に初めて更新されるようになるため、処理時間が短縮されるという効果が期待される。さらに、キャッシュを用いると、２つのプロセッサのために同一のソースからデータが供給されるので、データの一貫性に関する問題が生じないという効果が期待される。
【発明を実施するための最良の形態】
【００４１】
以下の説明の中で、処理ユニット又は実施ユニットと表現した場合、当該表現は、例えば、プロセッサ／コア／ＣＰＵ、ＦＰＵ（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌｅｒ  Ｓｉｇｎａｌｐｒｏｚｅｓｓｏｒ）、コプロセッサ又はＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｏｃａｌ  Ｕｎｉｔ）のいずれかを含むものと解される。
【００４２】
図１にデュアルポートキャッシュ２００の構成例を示す。デュアルポートキャッシュ２００は、主に、デュアルポートＲＡＭ（ｄｐＲＡＭ、２３０）により構成される。ｄｐＲＡＭ２３０は、２つの互いに独立したアドレスデコーダ、２つのデータ書込み／読取り段、及び（シングルメモリセルマトリクスとは異なり、）二重化されたワード線及びビット線を有している。そのため、ｄｐＲＡＭ２３０内にある任意のメモリセルに対して、少なくとも読取りプロセスは、２つある両方のポートから同時に行うことができる。尚、すべてのアクセス部材が二重化されておらず、ｄｐＲＡＭ２３０に対するアクセスが条件付きで両方のポートを介して実行されるように構成されていてもよい。
【００４３】
デュアルポートＲＡＭ２３０は、２つのポート２３０、２３１を有している。ポート２３０、２３１は、一のポートを介して受けた読取り又は書込みの要請（又は要求）を処理するのに要する時間（即ち即ち、要請された読取りプロセス又は書込みプロセスが終了するまでに要する時間であり、他のポートを介して受けた要請との相互作用又は干渉の度合等を表す情報が含まれる。）を考慮せずに互いに独立して利用可能である。ｄｐＲＡＭ２３０の各ポートは、信号２０１、又は信号２０２が伝送される経路を介して装置２１０、又は装置２２０と接続されている。また、装置２１０、２２０は、互いに独立した処理ユニット２１５又は２２５から入力されるアドレス、データ、及び制御信号を含む信号２１１又は２２１の検査を実行する。そして、装置２１０、２２０は、選択的にアドレスを変換する。
【００４４】
データは、読取りアクセスの際、ポート毎に、信号２０１の伝送経路を介して装置２１０に入力され、装置２１０から信号２１１の伝送経路を介して処理ユニット２１５へ入力されるか、或いは、信号２０２の伝送経路を介して装置２２０に入力され、装置２２０から信号２２１の伝送経路を介して処理ユニット２２５に入力される。書き込みアクセスの場合、これとは逆の方向に実施ユニット２１５、２２５からキャッシュメモリ（ｄｐＲＡＭ２３０）に対する書き込み処理が実行される。ｄｐＲＡＭ２３０が有する２つのポートは、信号２０１、２０２の伝送経路を介してバスアクセス制御部２４０に接続されている。バスアクセス制御２４０は、図示されていないメインメモリ又は次の段のキャッシュに対して信号２４１の伝送経路を介して接続されている。
【００４５】
図２には、装置（ユニット）２１０、２２０及び２５０が、より詳細に記載されている。処理ユニット２１５、２２５がデュアルポートキャッシュ（ｄｐＲＡＭ２３０）に対してアクセスする場合に、信号２１１、２２１に含まれるアドレス２１２、２２２が装置２５０内に設けられたアドレス比較器２５１により互いに比較される。但し、アドレス２１５、２２５は、それぞれ、処理ユニット２１５、２２５が要請したアドレスである。そして、装置２５０により信号２１１、２２１に含まれる制御信号と共に両立性について検査される。もし、信号２１１、２２１の情報が競合する場合、制御信号を含む信号２１３、２２３によってデュアルポートＲＡＭ２３０へのアクセスが阻止（又は制限）される。この種の競合は、２つの処理ユニット２１５、２２５が同一のアドレスに対して書き込み処理を要求した場合、或いは、一方の処理ユニットが読み込み処理を実行しようとしている途中で、他方の処理ユニットが同一アドレスに対して書き込み処理を要求した場合等に生じる。
【００４６】
キャッシュは、一部又は完全に連合して形成することができる。即ちまた、データは、キャッシュ内の複数の箇所又は任意の箇所に格納することができる。そのため、ｄｐＲＡＭ２３０に対してアクセスする場合には、まず、所望のデータ又は指令にアクセスするためのアドレスが指定されなくてはならない。そこで、アドレッシングモードに従って１つ又は複数のブロックアドレスが選択され、そのブロックアドレスに基づいてキャッシュ内のデータがサーチされる。全てのブロックが読まれると、キャッシュ内にデータと共に格納されている識別子とインデックスアドレス（オリジナルアドレスの一部）とが比較される。一致した場合、付加的に、ブロック毎にキャッシュ内に格納されているコントロールビット（例えば、バリッドビット、ダーティビット又はプロセスＩＤ等）を用いて有効性を検査した後で、キャッシュが有効であることを表すヒット信号を生成する。
【００４７】
また、図２に示すように、装置２１０、２２０は、メモリユニット２１４、２２４（例えば、レジスタ、ＲＡＭ、又はＴＡＧ−ＲＡＭ等）を有している。そして、メモリユニット２１４、２２４内には、装置２１０、２２０がアドレス変換のために利用する表（又はアドレス変換ユニット）が格納されている。この表は、ある意味、アドレス変換ユニットであって、仮想アドレスを物理アドレスに変換する。尚、ダイレクトマップトキャッシュの場合、この表を利用することで、正確な（一義的な）キャッシュアクセスアドレスが供給される。また、多重に連合したキャッシュ構造を有する場合、複数のブロックが照会される。さらに、完全に連合したキャッシュの場合、キャッシュ内にある全てのブロックが読み込まれて比較される。この技術に関し、例えば、例えばＵＳ特許４６６９０４３を参照すると、上記のアドレス変換ユニットの構成を理解するのに役立つであろう。
【００４８】
例えば、上記の表には、ブロックの各アドレス又はアドレスグループに対応して、ｄｐＲＡＭ２３０にアクセスするためのアドレスが格納されている。図３に示すように、アドレッシングの種類に関し、上記の表の形式に則って、キャッシュのブロックサイズに応じたアドレス（インデックスアドレス）がアドレスとして参照される。そのアドレスの内容は、ｄｐＲＡＭ２３０のアクセスアドレスである（図３）。但し、ここでブロックと呼んでいるのは、キャッシュミス（キャッシュ内に必要とされるデータがない）が生じた領域を示すアドレスに対して読取りアクセスされた際に、共通のメモリからキャッシュに取り出されるバイト数の大きさを有する領域である。
【００４９】
キャッシュに対してバイト単位又はワード単位でアクセスするために、ブロック毎に意味のあるアドレスビットが表に基づいて変換され、残りの（低価の）アドレスビットが変更されずに引き継がれる。
【００５０】
書込みプロセスの場合、例えば、２つあるポートの一方に対して、より高い優先順位が与えられる。これにより、同時に２つのポートから書き込まれることが阻止できる。また、優先されるポートが書込み操作を実施した場合に初めて、他方のポートからの書込み処理が許される。尚、一方のプロセッサのみが対応付けられたメモリ領域に対してアクセス権を有するように構成することも可能である。同様に、メモリセルに対して一方のポートから書込み操作がされる場合、同じメモリセルに対して他方のポートから読み込み操作が実行されることが阻止される。また、読取り要求の指示を発令しようとするプロセッサが、他のプロセッサによる書込み操作が終了するまで停止することによって、読取り操作を遅延させることもできる。
【００５１】
図２を参照すると、装置２５０には、全てのアドレスビットに対するアドレス比較器２５１に加えて、アービター２５２が設けられている。アービター２５２は、プロセッサから受けた制御信号を評価すると共に、上記のシーケンスを制御するための出力信号２１３、２２３を生成する。出力信号２１３、２２３は、例えば、それぞれ、少なくとも３つの信号状態（イネーブル、ウェイト、イコール）を表現することができる。イネーブルは、アクセスの許可を表す信号状態である。ウェイトは、アクセスの遅延を表す信号状態である。イコールは、２つのポートから同一のメモリ領域に対してアクセスが行われることを示す信号状態である。純粋なインストラクションキャッシュの場合、メモリアクセスは不要である。この場合、出力信号２１３、２２３は、信号状態「イコール」のみを表せれば十分である。
【００５２】
キャッシュミスが発生する場合、データ又は指令がバスシステムを介してプログラムメモリ又はデータメモリから取り出される。取り出されたデータは、処理ユニットにガイドされて、識別子やコントロールビットと共に並行してキャッシュに書き込まれる。このとき、ヒットが存在しないか、或いは、アドレス比較器２５１からイコール信号（信号２１３、２２３に含まれる）が出力された場合に、信号比較器がメモリからデータを再び取出すことを阻止する。イコール信号は、両側読出しの場合に、意味のあるアドレスビットのみを示す信号として生成される。なぜなら、常に、全ブロックがメモリから取り出されるからである。キャッシュ内にブロックが格納された場合に初めて、待機していた処理ユニットが、キャッシュに対してアクセスすることができるようになる。
【００５３】
他の例として、データと指令のために２つの別々のデュアルポートキャッシュが設けられていてもよい。その場合、指令のためのデュアルポート内には、通常の書込みプロセスが実行されない。そのため、アドレス比較器２５１は、常に意味のあるアドレスビットの同一性のみを検査し、その検査結果に応じた制御信号「イコール」を信号２１３、２２３に含める。
【００５４】
同時アクセスが可能な異なるアドレス領域内に要請されたデータが存在する場合にのみ、２つのポートを介して同時に読取りアクセスすることが無制限に機能する。そのため、実際にハードウェア構成を実現させる場合に、メモリ内で全てのアクセス機構を二重化する必要がなくなるため、製造に要するコストと手間を省くことができる。例えば、互いに独立して駆動することが可能な複数の部分メモリ領域内でキャッシュの機能を実現することができる。そのとき、各部分メモリは、セレクト信号を用いて１つのポートに対する処理のみを許可するように制御される。
【００５５】
図４には、２つの部分メモリ領域２３５、２３６を有するメモリ（ｄｐＲＡＭ２３０）が示されている。この例では、Ａｉ＝０かつＥ１＝０の場合にＥｉ＝０が成立し、Ａｉ＝１かつＥ０＝０の場合にＥｉ＝１が成立するように、アドレスビットＡｉから２つのセレクト信号Ｅ０とＥ１が形成される。信号２３３、２３４には、２つのセレクト信号（Ｅ０、Ｅ１）と低価のアドレスビットＡｉ−１、…Ａ０とが含まれている。
【００５６】
他の例として、４つの部分メモリを有する実施形態が考えられる。その例では、各部分メモリは一義的に所定のアドレス領域を扱うため、２つのアドレスビットから４つのセレクト信号を形成することができる。例えば、２つのアドレスビットＡｉ＋１とＡｉによって、表１に示す二値の値に従って４つのセレクト信号Ｅ０〜Ｅ３が形成されるため、４つの部分メモリ領域を照会することができる。
【００５７】
図４に示した部分メモリ２３５、２３６に関連して、図５に部分メモリの一構成例が示されている。図５の符号２６０で示す部分メモリは、シングルポートＲＡＭ２８０として形成されており、要請に応じて、それぞれ、そのアドレス、データ及び制御信号が切り替えられる。この切替え処理は、マルチプレクサ２７５を用いて、制御回路２７０により実行される。また、この処理は、該当するポートから受けたセレクト信号と、他の制御信号２９０１、２９０２（例えば、リード、ライト）に応じて実行される。これらの信号は、データ及びアドレスと共に信号２３３、２３４に含まれており、信号５２８１、５２８２を介してマルチプレクサ２７５にガイドされる。マルチプレクサ２７５は、制御回路２７０により決定された出力信号２７０１に従って信号５２８１、５２８２と信号２８０１と合成又は接続する。この例は、普遍性を制限することなしにキャッシュの直接的なアドレッシング（ダイレクトマップ）を行うことが前提とされている。多重連合のキャッシュ構成が存在する場合、マルチプレクサ２７５は、有効性に関する比較を行う。マルチプレクサ２７５は、キャッシュヒット信号をポートに伝えるべきか否か、或いは全てのデータがポート５３３１と信号２３３の信号経路とを介してポート２３１に伝送され、又はポート５３３２と信号２３４の伝送経路とを介してポート２３２に伝送されるべきか否かに関する有効性を検査する。
【００５８】
そのとき、制御回路２７０は、信号５２８１、５２８２を信号２８０１の伝送経路に伝送すると共に、シングルポートＲＡＭ２８０に対しても伝送する。さらに、それとは逆方向に向かって、シングルポートＲＡＭ２８０からデータと他の信号とを伝えることもできる。この処理は、有効なセレクト信号及び信号２３３、２３４に従って、或いは、ポートがこれらの信号を介してメモリ（ｄｐＲＡＭ２３０）による読取り又は書込み操作を実行させる順序に従って実行される。信号２３３、２３４に含まれる読取り信号又は書込み信号が同時にアクティブになった場合に、前もって定められたポートが優先的に利用される。この優先ポートは、読取り信号又は書込み信号がアクティブでない場合でも、信号２８０１の伝送経路と接続されたままである。また、その優先ポートは、プロセッサシステムの状態情報に応じて、当該プロセッサシステムにより動的に決定されてもよい。
【００５９】
上記のようなシングルポートＲＡＭ２８０を有する構成は、パラレルにアクセスが可能なデュアルポートＲＡＭを有する構成よりも安価である。しかし、同時に部分メモリ（読取りでも）にアクセスされた場合に、少なくとも１つの処理ユニットを遅延させる。それぞれ適用に応じて、指令シーケンスの形態及びデータアクセスと共に、異なる処理ユニットから同一の部分メモリ領域に対する同時アクセスが可能な限り生じないように、部分メモリ領域の分割を行うことも可能である。この構成は、２つより多いプロセッサからアクセスを受ける場合に拡張することが可能である。同様に、アドレス、データ及び制御信号の切替えが複数のマルチプレクサを介して段階的に次々と行われるように構成することも可能である（図６及び図７を参照）。その場合、マルチポートＲＡＭの構成を実現することが可能である。
【００６０】
これに関し、図６にマルチポートＲＡＭ２９０が示されている。そこでは、ポート入力信号２６１、２６２、…２６７が、復号回路（ポート）３３１、３３２、…３３７において信号２９１、２９２、…２９７に復号される。この復号処理により、部分メモリ２８１、２８２、及び２８８に各々アクセスするためのセレクト信号が生成される。
【００６１】
図７には、部分メモリ２８ｘ（２８１…２８８）に関する例が詳細に示されている。そこでは、制御装置３７０の第１段階において、セレクト信号と制御信号２９１、２９２…２９８とに基づいて処理が実行され、出力信号３７０１、…３７０７が出力される。これらの出力信号３７０１、…３７０７に基づき、それぞれマルチプレクサ３７５が制御される。マルチプレクサ３７５は、それぞれの信号値に基づいてバス３８１、３８２、…３８７又は３８８を信号４８１…４８８の伝送経路に接続する。同様に、他の段階においても、信号５９０１、５９０２が制御装置３７０で利用される最後の段階に至るまで、制御装置３７０とマルチプレクサ３７５とが接続される。さらに、出力信号５７０１に基づいて、信号５８１、５８２がマルチプレクサ３７５によって処理されて出力信号６８１が生成され、シングルポートＲＡＭ２８０に入力される。
【００６２】
図５のマルチプレクサ２７５とは異なり、図７のマルチプレクサ３７５は、アドレス信号、データ信号、及び制御信号の他に、信号３８１、３８２…３８８内に含まれる次の段のセレクト信号も結合する。さらに、マルチプレクサ３７５内に比較装置を設けることも可能であり、その場合、当該比較装置は、多重連合するアドレッシングの種類に対して、部分領域から読み出されたデータの有効性を判断する。
【００６３】
他の例として、１つ又は複数のシステム状態あるいはコンフィグレーションに依存して、メモリ領域を各処理ユニットに接続する処理をする構成が考えられる。その一例として、図８には、構成可能なデュアルポートキャッシュの例が示されている。
【００６４】
これによると、２つのポートの各々で入力信号が復号される際に、システムモード信号又はコンフィグレーション信号が利用される。表２は、これらの信号１０００に応じた復号処理の変更可能性を示している。但し、表２のＭは、信号１０００が意味する値を表す。Ｍ＝０の場合、例えば、比較モードが存在し、その比較モードにおいて２つのポートが共通のキャッシュに対してアクセスしている。一方、Ｍ＝１（例えば、パフォーマンスモード）の場合、各ポートは、キャッシュの半分に対するアクセス状態を有している。そのため、各ポートは、制限されずに（他のポートにおけるアクティビティの影響なしに）この領域に対してアクセスすることができる。
【００６５】
このモードにおいて、アドレスビットＡｉは、（ダイレクトマップトモードにおいて）キャッシュのアドレッシングのために使用されず、アドレッシングにおいて、このビットに対してのみ異なるデータがキャッシュ内の同じ箇所に格納される。そのため、キャッシュ内容を読み出す場合に初めて、識別子に基づいて、それが求めるデータであるか否かを検出することができる。そして、その検出結果に応じてキャッシュヒットが生成される。
【００６６】
また、それぞれ、どこに該当する比較器が配置されているかに従って、識別子とコントロールビットとを含めたデータが信号２９１、２９２、…２９７を介してポート３３１、３３２、…３３７へ出力される。そして、信号２６１、２６２、…２６７が出力される。同様に、パフォーマンスモード（Ｍ＝１）において、ポート１のみにキャッシュ全体に対するアクセスを許すことが可能である（表３を参照）適用者は、複数のコンフィグレーション信号によって任意にキャッシュの他の分割を行うこともできる。それが、キャッシュ領域が比較的大きい場合に、より高いヒット率を許し、それによってメインメモリからデータを取出す必要性を減少させる。一方で、種々のポートを介してできるだけ互いに独立したキャッシュ領域にアクセスされる場合、種々の処理ユニットが互いに干渉等の影響を及ぼさない。これらの条件は、適用のために設けられるプログラムに依存しており、実施の態様に応じて、より効果的な他のコンフィグレーションの可能性がある。他方で、システム状態（比較モード／パフォーマンスモード）を切り替える場合に、直接、モード信号１０００を用いてキャッシュを自動的に切り替えることができる。
【００６７】
モード信号又はコンフィグレーション信号に応じてポートを切り替える方法（又は許可方法）が、図９に示すように、マルチポートキャッシュ２９０に拡張される。その場合、ポート３３１、３３２、…３３７がモード信号又はコンフィグレーション信号を用いて部分メモリ領域２８１、２８２、…２８８の接続を制御する。この制御は、ポート内で生成された信号２９１、２９２、…２９７に含まれるセレクト信号を用いて実行される。
【００６８】
図１０には、多重連合キャッシュ（ａｓｓｏｚｉａｔｉｖｅｒ  Ｃａｃｈｅ）が存在し、そのキャッシュにおいて各部分メモリ２８１、２８２、…２８８からデータが識別子及びコントロールビットと共に読み直される構成例が示されている。その場合、比較装置２８１１、２８１２、…２８１７、２８２１、２８２２、…２８２７、…２８８１、２８８２、…２８８７内で有効性が検査されて、その検査結果に応じてデータが有効性信号と共に信号２９１０、２９２０、…２９７０にガイドされる。その場合、図９に示した例と同様に、モード信号又はコンフィグレーション信号により選択的に切替えることが可能である。ポート３３１０、３３２０、…３３７０内で、有効性信号とモード信号及びコンフィグレーション信号とが評価されて、その評価結果応じて出力されたキャッシュヒット信号又はキャッシュミス信号を含む有効なデータが信号２６１０、２６２０、…２６７０の伝送経路を介して伝えられる。
【００６９】
ＲＡＭメモリの代わりに、ＭＲＡＭ、ＦＥＲＡＭなどのような他のメモリテクノロジーを適用してもよい。
【００７０】
下記の（表１）は、２つのアドレスビットからデコーディングによって４つのセレクト信号を形成することを示している。
【００７１】
【表１】
2009505180.tif 000003
【００７２】
下記の（表２）は、システム状態信号又はコンフィグレーション信号Ｍを考慮しながらアドレスビットから各ポートにおけるそれぞれ２つのセレクト信号を形成することを示している。
【００７３】
【表２】
2009505180.tif 000004
【００７４】
下記の（表３）は、システム状態信号又はコンフィグレーション信号Ｍを考慮しながらアドレスビットから各ポートにおけるそれぞれ２つのセレクト信号を形成することを、他の形態で示している。
【００７５】
【表３】
2009505180.tif 000005
【図面の簡単な説明】
【００７６】
【図１】データ及び／又は指令のためのデュアルポートキャッシュを示している。
【図２】他の詳細を有するデュアルポートキャッシュを示している。
【図３】アドレス変換するための装置と方法を示している。
【図４】デュアルポートＲＡＭを、互いに独立して駆動可能であって、それぞれ各ポートからのそれぞれ２つの別々のセレクト信号によってアクセスを制御される、２つの部分領域に分割することを示している。
【図５】ポート切替えを用いてシングルポートＲＡＭによりデュアルポートＲＡＭ領域を実現することを示している。
【図６】ｐのポートを有するマルチポートＲＡＭを、パラレルに処理できる複数の部分アドレス領域１…ｑに分割することを示している。
【図７】ポート切替えを用いてシングルポートＲＡＭによりマルチポートＲＡＭ領域を実現することを示している。
【図８】システム状態又はコンフィグレーションに従ってポートのためのＲＡＭ領域を分割することを示している。
【図９】システム状態又はコンフィグレーションに従ってそれに応じたセレクト信号を生成することにより、マルチポートＲＡＭを領域に分割することを示している。
【図１０】マルチポートＲＡＭを多重連合アクセスを有する領域に分割することを示している。
【図１】
2009505180.tif 000006
【図２】
2009505180.tif 000007
【図３】
2009505180.tif 000008
【図４】
2009505180.tif 000009
【図５】
2009505180.tif 000010
【図６】
2009505180.tif 000011
【図７】
2009505180.tif 000012
【図８】
2009505180.tif 000013
【図９】
2009505180.tif 000014
【図１０】
2009505180.tif 000015
【図Ｔ１】
2009505180.tif 000016
【図Ｔ２】
2009505180.tif 000017
【図Ｔ３】
2009505180.tif 000018
【国際調査報告】
2009505180.tif 000019
2009505180.tif 000020
2009505180.tif 000021
2009505180.tif 000022
2009505180.tif 000023
2009505180.tif 000024