JP3593346B2 - マルチポートメモリ及びそれをアクセスするデータ処理装置 - Google Patents
マルチポートメモリ及びそれをアクセスするデータ処理装置 Download PDFInfo
- Publication number
- JP3593346B2 JP3593346B2 JP52917597A JP52917597A JP3593346B2 JP 3593346 B2 JP3593346 B2 JP 3593346B2 JP 52917597 A JP52917597 A JP 52917597A JP 52917597 A JP52917597 A JP 52917597A JP 3593346 B2 JP3593346 B2 JP 3593346B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- data
- port
- bank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 484
- 238000000034 method Methods 0.000 description 35
- 238000003491 array Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、計算機やデータ処理装置のデータアクセスを高速化するキャッシュメモリに関するものである。特に、メモリアクセス処理を1サイクルに複数個、実行可能なスーパスカラプロセッサもしくは長語長プロセッサ(以下、VLIWプロセッサと記す)などに公的なキャッシュメモリを提供する。
背景技術
計算機やデータ処理装置において、スーパスカラプロセッサやVLIWプロセッサ等を用いる場合、1サイクルに複数個のメモリアクセス処理が発生する。このメモリアクセス処理を1サイクルに複数個、実行するためには、メモリのポートがアクセス処理の数だけ必要である。1サイクルに複数個のメモリアクセス処理を可能とするものとして、2ポートのメモリの従来例が、参考文献(「POWER and PowerPC」、1994年、Morgan Kaufmann出版社発行)の第168頁から170頁に記載されている。
第1の方式は、メモリ自身として、2ポートからアクセスが可能なメモリセルを用いる方法である。1ビットの情報を記憶する1つのメモリセルに対して、2系統のアドレスデコーダ及び2系統のワード線、2系統のデータビット線、2系統のセンスアンプなどを設けることにより、2ポートからアクセスが可能なメモリを実現することが出来る。この第1の方式は、ワード線やデータビット線が2系統必要なことから、同じメモリ容量を実現しようとすると、メモリセルの面積はシングルポートの場合と比べてほぼ2倍必要となる。
第2の方式は、従来のシングルポートメモリを2重化して設けることによって、2ポートのアクセスが可能なメモリを実現する方式である。上記第1の方法の2ポートメモリと比較して、メモリセルも2重化される点が異なる。したがって、メモリにデータを書き込む場合には、両方のメモリの同じアドレスに同じデータを書き込む必要がある。この上記第2の方式は、メモリセルが2重化されているので、メモリ容量の2倍のメモリセルが必要である。逆に言えば、実際のメモリセルの数の1/2しか独立なデータを保持できない。即ち、同じメモリ容量を実現しようとすると、メモリセル用として面積が従来の2倍必要である。
従って、第1の方式と第2の方式を比較すると、メモリセルの面積にはほとんど差がない。また、2つのポートから同一アドレスをアクセスする際には、メモリセルが共通な第1の方式では、片方のアクセスが待たされるのでアクセス時間が必然的に2倍となる。
第3の方式は、メモリをアドレスによって2つのメモリバンクに分割し、異なるメモリバンクに対するアクセスであれば、それら複数のメモリアクセスを同時に処理する方式である。あるアドレスのデータはどちらか一方のメモリバンクにしか存在しないので、上記第2の方式の2ポートメモリと比較して、アドレス入力部及びデータ出力部にそれぞれのメモリポートとメモリバンクの対応を変換するセレクタが必要である。なお、このセレクタの選択指示は、アクセスするアドレスの下位1ビットにより行われる。
上記第3の方式は、メモリセルを2重化していないので、メモリセルの容量が、そのままメモリの容量とすることができ、第2の方式に比べ、同一のメモリセルの数で2倍のメモリ容量を実現することができる。しかし、第3の方式では、アドレスの1ビットでどちらのメモリバンクをアクセスするかを決めるので、メモリのトータルアクセス時間としては、メモリセルのアクセス時間の他に、セレクタでの選択時間が必要となる。従って、第2の方式に比べ、メモリのトータルアクセス時間が長くなる恐れがある。
第4の方式は、1つのシングルポートメモリを時分割で使う方法である。1サイクルを2つに分け、前半の1/2サイクルで第1メモリポートのアクセスを処理し、後半の1/2サイクルで第2メモリポートのアクセスを処理することにより、2ポートのメモリを実現できる。
上記第4の方式は、メモリセルなどが2重化されていないので、上記第3の方式と同様に、メモリセルの容量を、そのままメモリの容量とすることができる。しかし、メモリセルのアクセス時間を1/2に高速化しなければ、1サイクルで2個のメモリアクセス処理を実行することはできない。逆に、メモリセルのアクセス時間を基準にすれば(アクセス時間をそのままにすれば)、全体のサイクル時間を2倍に延ばさなければ、1サイクルで2個のメモリアクセス処理を実行することはできない。
上記述べたように、従来のマルチポートメモリでは、メモリセル面積を変えない場合はメモリの容量がメモリセルの容量の1/2に削減されてしまう、もしくは、メモリのアクセス時間が延びる、あるいは、メモリセルのアクセス時間を基準に考えると全体のサイクル時間が2倍に延びてしまうなどの課題があった。
本発明の目的は、上記マルチポートメモリの課題を解決し、メモリ容量がシングルポートメモリのときのメモリセルの容量と同一で、実質的にメモリのアクセス時間を延ばさず、バンクアクセス衝突も発生させず、また、全体のサイクル時間も延ばさずに、複数のメモリアクセス処理を同時に実行できるマルチポートメモリを提供することにある。
発明の開示
本発明は、複数のメモリバンクに分割したメモリにおいて、前記メモリバンクのそれぞれは、データとそのアドレスを対にして記憶する手段と、当該メモリ外から入力されるアドレスに対応するアドレスが当該メモリバンク内に存在するか否かを判断する判断手段と、前記対応するアドレスが存在するとき、当該アドレスと対になるデータをアクセスし当該メモリバンクの外へ出力する手段を有し、前記メモリは、前記複数のメモリポートから入力される複数のアドレスそれぞれを、前記複数のメモリバンクのいずれのメモリバンクへ入力するかを選択し入力する第1手段と、前記各メモリバンクから読み出されたデータを、当該メモリバンクへ入力されたアドレスが入力された前記メモリポートに対応するデータ出力用のポートへ出力する手段を有するマルチポートメモリによって達成される。
また、上記のマルチポートメモリにおいて、前記第1の手段は、第1サイクルで、前記複数のメモリポートの内の一つである第1のメモリポートから入力される第1のアドレスを前記複数のメモリバンクの内の一つである第1のメモリバンクへ入力し、前記複数のメモリポートの内の一つである第2のメモリポートから入力される第2のアドレスを前記複数のメモリバンクの内の一つである第2のメモリバンクへ入力し、前記第1のメモリバンク内の前記判断手段が前記第1のアドレスと対になるデータが存在しないと判断したとき、前記第1サイクルより後のサイクルで前記第2のメモリバンクへ前記第1のアドレスを入力し、前記第2のメモリバンク内の前記判断手段が前記第2のアドレスと対になるデータが存在しないと判断したとき、前記第1サイクルより後のサイクルで前記第1のメモリバンクへ前記第2のアドレスを入力することによって達成される。
更に、前述のマルチポートメモリにおいて、前記第1の手段は、第1のサイクルで、前記複数のメモリポートの内の一つである第1のメモリポートから入力される第1のアドレスを前記複数のメモリバンクの内の全てのメモリバンクへ入力することによって達成される。
次に、上述のメモリポートメモリをデータメモリとして接続して用いられるデータ処理装置であって、前記データ処理装置の制御をプログラムする命令の内、前記データメモリをアクセスする命令の中に設けられている所定のビット数の情報をデコードする手段と、デコード結果に従って当該命令を実行する手段とを有し、ここで、前記情報は前記複数のメモリポートの内のいずれのメモリポートをアクセスするかを指定する情報であることによって達成される。
上記のマルチポートメモリは、以下の様に動作する。
第1のメモリポートからのアドレスは、第1のサイクルで第1のメモリバンクに入力され、アクセスするデータが第1のメモリバンクの内部に記憶されているかが検索される。もし存在していれば、対応するデータをアクセスして、第1のメモリポート側の処理を終了する。もし、存在していなければ、第2のサイクルにおいて、第2のメモリバンクに当該アドレスが入力され、アクセスするデータが第2のメモリバンクの内部に記憶されているかが検索される。もし存在していれば、対応するデータをアクセスして、第1のメモリポートの処理を終了する。
一方、第2のメモリポートは、第1のサイクルで第1のメモリバンク以外のメモリバンクにアドレスを入力し、アクセスするデータがそのメモリバンクの内部に記憶されているかを検索する。もし存在していれば、対応するデータをアクセスして、第2のメモリポートの処理を終了する。もし、存在していなければ、第2のサイクルにおいて、第2のメモリバンク以外のメモリバンクにアドレスを入力し、アクセスするデータがそのメモリバンクの内部に記憶されているかを検索する。もし存在していれば、対応するデータをアクセスして、第2のメモリポートの処理を終了する。
なお、上記の動作において、第1サイクルにおいては、第一のメモリポートは第一のメモリバンクをアクセスし、第2のメモリポートは第一のメモリバンク以外のメモリバンクをアクセスするので、アクセスが衝突することはなく、どちらの動作も同時に、即ち並列に処理することが出来る。また、第2サイクルにおいては、第1のメモリポートは第2のメモリバンクをアクセスし、第2のメモリポートは第2のメモリバンク以外のメモリバンクをアクセスするので、この場合もアクセスが衝突することはなく、どちらの動作も並列に処理することが出来る。
また、メモリアクセスが1つしかない場合は、第1サイクルで全てのメモリバンクをアクセスすることにより、1サイクルでメモリアクセスを終了することが出来る。つまり、第1のサイクルで全てのメモリバンクに、第1のメモリポートのアドレスを入力し、アクセスするデータがどこかのメモリバンクの内部に記憶されているかを検索する。どこかのメモリバンクに存在していれば、対応するデータをアクセスして、第1のメモリポートの処理を終了する。
さらにまた、上記のマルチポートメモリをデータメモリとして接続しているデータ処理装置において、上記データメモリをアクセスする命令中のビット情報を適切に指定することによって、アクセスすべきデータが記憶されているメモリバンクに第1のサイクルでアクセスすることができ、1サイクルで複数のメモリアクセスを終了することができる。
【図面の簡単な説明】
図1は、本発明の一実施例であるキャッシュメモリ及びその周辺ブロックを示すブロック図である。図2は、図1に示したキャッシュメモリにおいて、2つのメモリアクセスを同時に処理する動作の内、第1サイクル目の動作を示した図である。図3は、図1に示したキャッシュメモリにおいて、2つのメモリアクセスを同時に処理する動作の内、第2サイクル目の動作を示した図である。図4は、図1に示したキャッシュメモリにおいて、1つのメモリアクセスを処理する動作を示した図である。図5は、図1に示したキャッシュメモリが接続されているデータ処理装置の全体を示すブロック図である。図6は、本発明の他の一実施例であるキャッシュメモリ及びその周辺ブロックを示すブロック図である。
発明を実施するための最良の形態
以下、本発明を、実施例をもとに、図を用いて説明する.
図5は本発明の一実施例であるデータ処理装置のブロック構成図である。本実施例のデータ処理装置は、命令を実行するプロセッサ410、命令用のキャッシュメモリである命令キャッシュ420、データ用のキャッシュメモリであるデータキャッシュ430、及び、メインメモリ440から成る。これらは、アドレスバス、データバス等を介して互いに接続されている。命令キャッシュ420はメインメモリ440中のプログラム領域のコピーを保持し、データキャッシュ430はメインメモリ440中のデータ領域のコピーを保持している。
プロセッサ410は、データを格納するレジスタファイル106、命令に従って演算を実行する演算器412、及び、それらを制御する制御回路413なら成る。プロセッサ410は、命令キャッシュ420からプログラムの1つの処理単位である命令を読み出し、その命令の指示に従って制御回路413がプロセッサ内部の回路(レジスタファイル、演算器等)を動作させる。
命令の種類には、レジスタファイル106の中のデータを演算器412などで演算し、その結果をレジスタファイル106に格納する命令のほか、レジスタファイル106の内容をメインメモリ440及びデータキャッシュ430へ書き込む命令、及び、メインメモリ440またはデータキャッシュ430の内容をレジスタファイル106へ書き込む命令がある。
ここで、データキャッシュ430は、2つのメモリポートを持つキャッシュメモリである。アクセスすべきデータが、データキャッシュ430の中に存在していれば、2つのデータアクセスを同時に処理することができる。データキャッシュ430からアクセス結果として読み出されたデータは、データキャッシュとプロセッサを結ぶデータを送る信号線(バス等)を介してプロセッサへ送られる。このデータキャッシュ430の部分の構成を図1に詳細に示す。
図1は、プロセッサ410を構成する命令レジスタ100及び110、レジスタファイル106、アドレス計算器107及び117と、データキャッシュ430(破線で囲まれた部分)の内部ブロックを示す。
命令レジスタ100及び110は、メモリアクセスを行う命令がセットされる。命令レジスタ100及び110にセットされた命令は、それぞれ5つの部分に分割される。5つの部分とは、オペレーションの種類を規定するオペレーションコード部101及び111、及び、データキャッシュへのアクセスポートを指定するために使用する情報であるポート指定ヒント部102及び112、デスティネーションレジスタ指定部103及び113、ベースアドレスレジスタ指定部104及び114、ディスプレースメント指定部105及び115である。この構成を有することにより、プロセッサ410は2つの命令を同時に実行することができる。
今、図1の命令レジスタ100に、メモリのデータをレジスタへ転送する命令であるロード(LD)命令がセットされているものとする。LD命令であることは、オペレーションコード部101を図に示さないデコーダ等により解読することにより判断できる。このLD命令は、レジスタファイル106の中からベースアドレスレジスタ指定部104で指定されたレジスタRb0の内容を読み出し、その値とディスプレースメント指定部105の内容であるディスプレースメントdisp0を加算し、その加算結果をアドレスとしてメモリの内容を読み出し、その読み出した内容をデスティネーションレジスタ指定部103で指定されたレジスタファイル106の中のレジスタRd0に格納する命令である。
また、図1の命令レジスタ110にも同様に、メモリのデータをレジスタへ転送する命令であるロード(LD)命令がセットされている。LD命令であることは、オペレーションコード部111を図に示さないデコーダ等により解読することにより判断できる。この命令も、レジスタファイル106の中からベースアドレスレジスタ指定部114で指定されたレジスタRb1の内容を読み出し、その値とディスプレースメント指定部115の内容であるディスプレースメントdisp1を加算し、その加算結果をアドレスとしてメモリの内容を読み出し、その読み出し内容をデスティネーションレジスタ指定部113で指定されたレジスタファイル106の中のレジスタRd1に格納する命令である。
命令レジスタ100の命令は、データキャッシュ430のメモリポート0をアクセスし、命令レジスタ110の命令は、データキャッシュ430のメモリポート1をアクセスする。従って、プロセッサ410が2つのLD命令を同時に実行するとデータキャッシュへの2つのアクセスが同時に、プロセッサ410とデータキャッシュ430を結ぶ信号線を介して発行されることになる。この信号線は2つの命令による2つのアクセスを同時に送信することができるものとする。
データキャッシュ430は、2つのメモリバンク125及び135、4つのセレクタ108、118、146及び156、更に、これらを制御する制御回路160から成る。セレクタ108は、メモリバンク0(125)への入力アドレスをメモリポート0(メモリバンク0用のポートでメモリバンク0に対するアドレス入力ポートおよびメモリ内容の出力ポート等を総称するものとする)から入力するかメモリポート1(メモリバンク1用のポートでメモリバンク1に対するアドレス入力ポートおよびメモリ内容の出力ポート等を総称するものとする)から入力するかを選択する。セレクタ118は、メモリバンク1(135)への入力アドレスをメモリポート0から入力するかメモリポート1から入力するかを選択する。セレクタ146は、メモリポート0へ出力する読み出しデータをメモリバンク0(125)から出力するのかメモリバンク1(135)から出力するのかを選択する。セレクタ156は、メモリポート1へ出力する読み出しデータをメモリバンク0(125)から出力するのかメモリバンク1(135)から出力するのかを選択する。
メモリバンク0(125)は、2ウエイのセットアソシアティブ方式のキャッシュメモリである。アドレスデコーダ120によって、セレクタ108で選択されたアドレスの下位ビットをデコードし、メモリアレイ121及び122、123、124を読み出す。メモリアレイ121及び122にはそれぞれウェイ0のタグ及びウェイ1のタグ、123にはウェイ0のデータ、124にはウェイ1のデータが記憶されている。メモリアレイ121及び122から読み出されたウェイ0のタグ及びウェイ1のタグは、それぞれ比較器141および142によって、セレクタ108で選択されたアドレスの上位ビットと比較される。比較の結果、一致するアドレスが存在する場合は、この状態をヒットと呼び、一致している方のウェイに対応するデータが、メモリアレイ123及び124から読み出されたウェイ0のデータ及びウェイ1のデータの中から、セレクタ143により選択されて、メモリバンク0(125)の出力データとして出力される。一致するアドレスが存在しない場合は、この状態をミスと呼ぶ。
メモリバンク1(135)も、上記メモリバンク125と同様に、2ウエイのセットアソシアティブ方式のキャッシュメモリである。アドレスデコーダ130によって、セレクタ118で選択されたアドレスの下位ビットをデコードし、メモリアレイ131及び132、133、134を読み出す。メモリアレイ131及び132にはそれぞれウェイ0のタグ及びウェイ1のタグ、133にはウェイ0のデータ、134にはウェイ1のデータが記憶されている。メモリアレイ131及び132から読み出されたウェイ0のタグ及びウェイ1のタグは、それぞれ比較器151および152によって、セレクタ118で選択されたアドレスの上位ビットと比較される。比較の結果、一致するアドレスが存在する場合は、この状態をヒットと呼び、一致している方のウェイに対応するデータが、メモリアレイ133及び134から読み出されたウェイ0のデータ及びウェイ1のデータの中から、セレクタ153により選択されて、メモリバンク1(135)の出力データとして出力される。一致するアドレスが存在しない場合は、この状態をミスと呼ぶ。
それぞれのメモリバンクから出力されたデータは、その読み出しの入力アドレスがメモリポート0からのものである場合はメモリポート0に読み出しデータを出力するように、一方、その読み出しの入力アドレスがメモリポート1からのものである場合はメモリポート1に読み出しデータを出力するように、セレクタ146、156が選択される。そして、セレクタ146から出力された読み出しデータは、命令レジスタ100のデスティネーションレジスタ指定部Rd0(103)によって指定されるレジスタファイル内のレジスタに格納される。また、セレクタ156から出力された読み出しデータは、命令レジスタ110のデスティネーションレジスタ指定部Rd1(113)によって指定されるレジスタファイル内のレジスタに格納される。
なお、上記実施例では、メモリバンク0(125)の出力データを生成するセレクタ143及びメモリバンク1(135)の出力データを生成するセレクタ153と、メモリポート0へ出力するデータを生成するセレクタ146及びメモリポート1へ出力するデータを生成するセレクタ156を、それぞれ別のセレクタとして構成したが、4入力1出力のセレクタを2個用いて、上記4つのセレクタ143、153、146、156と同一の機能を実現するセレクタを構成することもできる。つまり、メモリアレイ123、124、133、134から読み出されたデータを4系統の入力として、その内1系統を出力する4入力1出力のセレクタを2個設け、その一方のセレクタの出力をメモリポート0への出力とし、もう一方のセレクタの出力をメモリポート1への出力とすれば良い。ここで、それぞれの4入力セレクタの選択指示は、独立に行う必要がある。
上記のデータキャッシュ430内の動作は、制御回路160が制御している。ここで、制御回路160がデータキャッシュ内の各構成要素の状態を収集するための信号線等や各構成要素を制御するための信号線は図から省略している。なお、図1に於いて、命令レジスタ100のデスティネーションレジスタ指定部Rd0(103)からレジスタファイル106を指定する図面上の矢印線は、データキャッシュ430内を通過するようになっているが、これは単に図面上の線であり、実際は必ずしもデータキャッシュ430を通過する必要はない。命令レジスタ110のデスティネーションレジスタ指定部Rd1(113)からレジスタファイル106を指定する図面上の矢印線に関しても前述の内容と同様である。
次に、上記データキャッシュ430の動作を図2及び図3、図4を用いて説明する。
図2および図3は、図1で説明した2つのLD命令を同時に処理する動作を説明する図である。図2は第1サイクルでの動作を示したものであり、図3は第2サイクルでの動作を示したものである。なお、ここでのサイクルとは、本データキャッシュ430を動作させるタイミングであり、プロセッサ410を動作させるクロックや図5に示すデータ処理装置全体を駆動させるシステムクロックと一定の関係を有する。例えば、システムクロックの1クロックが1サイクルと対応したり、またはシステムクロックの複数クロックが1サイクルと対応したりする。
第1サイクルでは、図2に示してある様に、メモリバンク0の入力アドレスセレクタ108は、メモリポート0側、つまり命令レジスタ100にセットされているLD命令のアクセスアドレスを選択する。このアドレスによって、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク0(125)を検索する。アドレスがヒットしていたら、対応するデータをセレクタ143から出力し、セレクタ146により、このメモリバンク0(125)のデータを、データキャッシュ430のメモリポート0側の読み出しデータとして出力して、このメモリポート0側のアクセスを終了する。アドレスがミスしていたら、第1サイクルの動作はここまでとし、第2サイクルでメモリバンク1(135)をアクセスするよう制御回路160が判断する。
一方、メモリバンク1の入力アドレスセレクタ118は、図2に示してある様に、メモリポート1側、つまり命令レジスタ110にセットされているLD命令のアクセスアドレスを選択する。このアドレスによって、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク1(135)を検索する。アドレスがヒットしていたら、対応するデータをセレクタ153から出力し、セレクタ156により、このメモリバンク1(135)のデータを、データキャッシュ430のメモリポート1側の読み出しデータとして出力して、このメモリポート1側のアクセスを終了する。アドレスがミスしていたら、第1サイクルの動作はここまでとし、第2サイクルでメモリバンク0(125)をアクセスするよう制御回路160が判断する。
図3は、メモリポート0のアクセス及びメモリポート1のアクセスの両方が、第1サイクルにおいて、それぞれメモリバンク0(125)及びメモリバンク1(135)でミスした場合の第2サイクル目の動作を示したものである。この第2サイクルは、時間的に第1サイクルの後のサイクルである。
この第2サイクルでは、メモリバンク0の入力アドレスセレクタ108は、メモリポート1側、つまり命令レジスタ110にセットされているLD命令のアクセスアドレスを選択する。このアドレスによって、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク0(125)を検索する。アドレスがヒットしていたら、対応するデータをセレクタ143から出力し、セレクタ156により、このメモリバンク0(125)のデータを、データキャッシュ430のメモリポート1側の読み出しデータとして出力して、このメモリポート1側のアクセスを終了する。アドレスがミスしていたら、第2サイクルの動作はここまでとし、第3サイクルでメインメモリ440をアクセスするよう制御回路160が判断する。
同様に、メモリバンク1の入力アドレスセレクタ118は、メモリポート0側、つまり命令レジスタ100にセットされているLD命令のアクセスアドレスを選択する。このアドレスによって、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク1(135)を検索する。アドレスがヒットしていたら、対応するデータをセレクタ153から出力し、セレクタ146により、このメモリバンク1(135)のデータを、データキャッシュ430のメモリポート0側の読み出しデータとして出力して、このメモリポート0側のアクセスを終了する。アクセスがミスしていたら、第2サイクルの動作はここまでとし、第3サイクルでメインメモリ440をアクセスするよう制御回路160が判断する。
以上のように、本実施例では、各メモリアクセスは、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク0(125)及びメモリバンク1(135)の両方を検索して、ヒット判定を行っている。つまり、データキャッシュ430は、キャッシュ容量が各メモリバンクの容量の和で、かつ4ウエイのセットアソシアティブ方式のキャッシュメモリとして動作していることになる。
2つのメモリアクセス命令を同時に実行する場合は、上記で説明したように、2サイクルで4ウエイのセットアソシアティブ方式のキャッシュメモリとして動作する。ここで、メモリポート0側のアクセスがメモリバンク0(125)でヒットし、メモリポート1側のアクセスがメモリバンク1(135)でヒットすれば、1サイクルで2つのメモリアクセス命令を同時に実行することができる。
したがって、2つのメモリアクセス命令を1サイクルで同時に実行し、終了するためには、メモリバンク0(125)でヒットする可能性が高いLD命令は、メモリポート0側でデータキャッシュ430をアクセスし、メモリバンク1(135)でヒットする可能性が高いLD命令は、メモリポート1側でデータキャッシュ430をアクセスすれば良い。このような制御は、LD命令中のメモリポート指定ヒント部102及び112の情報で可能である。
プロセッサ410の制御回路413において、メインメモリ440または命令キャッシュ420から読み出したメモリアクセス命令、例えばLD命令の中のメモリポート指定ヒント部を解読し、メモリポート0を指定していれば、その命令を命令レジスタ100にセットし、メモリポート1を指定していれば、その命令を命令レジスタ110にセットする。命令レジスタ100にセットされたメモリアクセス命令は、第1のサイクルにおいてメモリバンク0(125)をアクセスし、命令レジスタ110にセットされたメモリアクセス命令は、第1のサイクルにおいてメモリバンク1(135)をアクセスするので、それぞれのメモリバンク125及び135でヒットする可能性が高くなり、これら2つのメモリアクセス命令を1サイクルで終了できる確率が高くなる。
なお、LD命令のメモリポート指定ヒント部102及び112への情報の設定は、上記説明したデータキャッシュを持つプロセッサからなるデータ処理装置用のコンパイラが、プログラムをコンパイルする際に、上記データキャッシュの構造、プログラムのメインメモリへのアクセス順序、データキャッシュの利用予定を踏まえてコンパイルすることにより、LD命令のメモリポート指定ヒント部102及び112へ、演算実行前に事前に設定されているものとする。この設定により、プロセッサでの実行時にメモリポート0側の命令とメモリポート1側の命令のメモリアクセスが同じメモリバンクを同時にアクセスする確率を少なくできる。
以上で説明したように、前述の実施例においては、2つのメモリアクセス命令が同時に実行される場合、2サイクルで4ウエイのセットアソシアティブ方式のキャッシュメモリとして動作する。一方、メモリアクセス命令が1つだけ実行される場合は、キャッシュメモリを1サイクルで4ウエイのセットアソシアティブ方式のキャッシュメモリとして動作することもできる。図4は、この動作を示す。
図4は、命令レジスタ100にセットされたLD命令を実行する場合の図である。メモリバンク0の入力アドレスセレクタ108及びメモリバンク1の入力アドレスセレクタ118は、共にメモリポート0側、つまり命令レジスタ110にセットされているLD命令のアクセスアドレスを選択する。このアドレスによって、2ウエイのセットアソシアティブ方式のキャッシュメモリであるメモリバンク0(125)及びメモリバンク1(135)を同時に検索する。どちらかのメモリバンクでアドレスがヒットしていたら、対応するデータをセレクタ143もしくはセレクタ153から出力し、セレクタ146により、このデータをデータキャッシュ430のメモリポート0側の読み出しデータとして出力して、このメモリポート0側のアクセスを終了する。アドレスが両方のメモリバンクで共にミスしていたら、第1サイクルの動作はここまでとし、第2サイクルでメインメモリ440をアクセスするよう制御回路160が判断する。
以上の様に、メモリアクセス命令が1つだけの場合は、1サイクルで4ウエイのセットアソシアティブ方式のキャッシュメモリとして動作することができる。
以上の説明では、メモリアクセスがメモリバンク0(125)又はメモリバンク1(135)のどちらかでヒットした場合を中心に説明してきた。以下では、メモリアクセスがメモリバンク0(125)及びメモリバンク1(135)のどちらでもミスした場合の動作について説明する。
図3の動作の結果、メモリポート0側、つまり命令レジスタ100にセットされているLD命令のアクセスアドレスが、メモリバンク0(125)及びメモリバンク1(135)の両方ともミスであった場合は、第3サイクル目にメインメモリ440をアクセスする。メインメモリ440から読み出されたデータは、プロセッサ410へ転送され、レジスタファイル106に格納される。このときデータキャッシュ430は、近い将来に再度このデータがアクセスされる可能性があるので、データキャッシュ430の中にも記憶しておく。データキャッシュ430中のメモリバンクの内、どちらに記憶するかは、もともとどちらのメモリポートでアクセスされたかによって制御する。この場合は、メモリポート0側、つまり命令レジスタ100にセットされている命令でアクセスされたので、メモリバンク0(125)に記憶する。メモリバンク0(125)内のどのウエイに記憶するかは、例えば、最も古い時刻にアクセスされたウエイを選んで記憶する。この方式をLRU方式という。
同様に、図3の動作の結果、メモリポート1側、つまり命令レジスタ110にセットされているLD命令のアクセスアドレスが、メモリバンク0(125)及びメモリバンク1(135)の両方ともミスであった場合は、第3サイクル目以降にメインメモリ440をアクセスする。第3サイクル目に直ちにメインメモリ440をアクセスするか、それ以降のサイクルでメインメモリ440をアクセスするかは、メモリポート0側のミスの状態による。つまり、メモリポート0側もミスで、メインメモリ440をアクセスする場合は、第3サイクル目でメモリポート0側の処理を行い、メモリポート1側の処理はその後になる。
メインメモリ440から読み出されたデータは、メモリポート0側からのアクセスの場合と同様に、プロセッサ410へ転送され、レジスタファイル106に格納される。このときデータキャッシュ430は、近い将来に再度このデータがアクセスされる可能性があるので、データキャッシュ430の中にも記憶しておく。データキャッシュ430中のメモリバンクの内、どちらに記憶するかは、もともとどちらのメモリポートでアクセスされたかによって制御する。この場合は、メモリポート1側、つまり命令レジスタ110にセットされている命令でアクセスされたので、メモリバンク1(135)に記憶する。メモリバンク1(135)内のどのウエイに記憶するかは、例えば、LRU方式でウエイを選んで記憶する。
メモリアクセスが1サイクルに1つだけの場合は、図4に示したように、両方のメモリバンク125及び135を同時に検索して、ヒット/ミス判定を行う。両方のメモリバンク125及び135が共にミスの場合は、第2サイクルでメインメモリ440にアクセスする。メインメモリ440から読み出されたデータは、プロセッサ410へ転送され、レジスタファイル106に格納される。このときデータキャッシュ430は、近い将来に再度このデータがアクセスされる可能性があるので、データキャッシュ430の中にも記憶しておく。データキャッシュ430中のメモリバンクの内、どちらに記憶するかは、もともとどちらのメモリポートでアクセスされたかによって制御することができる。図4の場合は、メモリポート0側、つまり命令レジスタ100にセットされている命令でアクセスされたので、メモリバンク0(125)に記憶する。メモリバンク0(125)内のどのウエイに記憶するかは、例えば、LRU方式でウエイを選んで記憶する。
また、別の制御方式として、メモリバンク0(125)内の2つのウエイとメモリバンク1(135)内の2つのウエイを対等に扱い、全体として4ウエイのセットアソシアティブ方式とみなし、4つのウエイの中から1つのウエイを選んで記憶することもできる。この場合は、上記4つのウエイの中から最も古い時刻にアクセスされたウエイを選んで記憶するLRU方式を採用することもできる。
これまで説明してきた図1の構成では、両方のメモリバンク125及び135のどちらもミスする場合、これを検出するために2サイクルを要する。若干のハードウエアを追加することにより、両方のメモリバンク125及び135のどちもミスする場合を、1サイクルで検出することができる。図6に、そのブロック図を示す。
図6において、メモリバンク0(125)は、メモリバンク1(135)のアドレス・タグ・メモリアレイ131および132のコピーを126および127に持ち、アドレス・タグ・メモリアレイ126および127から読み出したタグを、セレクタ108で選択されたアドレスの上位ビットと比較する比較器144及び145が、図1の構成に対して追加されている。これにより、メモリバンク0(125)内のアドレス検索を行っているサイクルと並行して、メモリバンク1(135)のアドレス検索を実行できるので、もし、両方のメモリバンクともミスした場合は、1サイクルで検出することができる。したがって、第2サイクルでは、メモリバンク1(135)をアクセスすること無く、メインメモリ440のアクセスを起動することができ、データキャッシュ430のミス時の処理を高速化することができる。
メモリバンク1(135)側も同様に、メモリバンク0(125)のアドレス・タグ・メモリアレイ121および122のコピーを136および137に持ち、アドレス・タグ・メモリアレイ136および137から読み出したタグを、セレクタ118で選択されたアドレスの上位ビットと比較する比較器154及び155が図1の構成に対して追加されている。これにより、メモリバンク1(135)内のアドレス検索を行っているサイクルと並行して、メモリバンク0(125)のアドレス検索を実行できるので、もし、両方のメモリバンクともミスした場合は、1サイクルで検出することができる。したがって、第2サイクル以降では、メモリバンク0(125)をアクセスすること無く、メインメモリ440のアクセスを起動することができ、データキャッシュ430のミス時の処理を高速化することができる。
以上説明したように本実施例によれば、第1サイクルで両方のメモリバンク125及び135のミス判定ができるので、データキャッシュ430のミス時の処理を高速化することができる効果がある。
なお、上記の実施例では、メモリバンクに数が2で、メモリポートの和が2の場合について説明してきたが。本発明は、これらの数に限定されたものではない。
メモリバンクの数が3以上で、メモリポートの数が3以上の場合も、本発明の範囲である。
例えば、メモリバンクの数が4で、メモリポートの数が4の場合も、本発明の範囲である。この場合、第1のサイクルでは、それぞれ第1のメモリアクセスポートが第1のメモリバンクを、第2のメモリアクセスポートが第2のメモリバンクを、第3のメモリアクセスポートが第3のメモリバンクを、第4のメモリアクセスポートが第4のメモリバンクをアクセスし、第2のサイクル以降では、それぞれそれ以外のメモリバンクをアクセスする。例えば、第2のサイクルでは、それぞれ第1のメモリアクセスポートが第2のメモリバンクを、第2のメモリアクセスポートが第3のメモリバンクを、第3のメモリアクセスポートが第4のメモリバンクを、第4のメモリアクセスポートが第1のメモリバンクをアクセスし、第3のサイクルでは、それぞれ第1のメモリアクセスポートが第3のメモリバンクを、第2のメモリアクセスポートが第4のメモリバンクを、第3のメモリアクセスポートが第1のメモリバンクを、第4のメモリアクセスポートが第2のメモリバンクをアクセスし、第4のサイクルでは、それぞれ第1のメモリアクセスポートが第4のメモリバンクを、第2のメモリアクセスポートが第1のメモリバンクを、第3のメモリアクセスポートが第2のメモリバンクを、第4のメモリアクセスポートが第3のメモリバンクをアクセスする。
また、メモリバンクの数が4で、メモリポートの数が2の場合も、本発明の範囲である。この場合、第1のサイクルでは、それぞれ第1のメモリアクセスポートが第1のメモリバンクおよび第2のメモリバンクを、第2のメモリアクセスポートが第3のメモリバンクおよび第4のメモリバンクをアクセスし、第2のサイクル以降では、それぞれ、それ以外のメモリバンクをアクセスする。例えば、第2のサイクルでは、それぞれ第1のメモリアクセスポートが第3のメモリバンクおよび第4のメモリバンクを、第2のメモリアクセスポートが第1のメモリバンクおよび第2のメモリバンクをアクセスする。
以上説明したように、メモリバンクの数が2以上で、またメモリポートの数が2以上の場合であれば、本発明の範囲である。
以上説明したごとく、本発明によれば以下の効果がある.
先ず、メモリを複数のメモリバンクに分け、並列に動作が可能であるから、複数のメモリアクセスを同時に処理することが出来るマルチポートメモリとしての機能を実現することが出来る。
さらに、第1サイクルでアクセスしたメモリバンクにアクセスすべきアドレスが記憶されていれば、1サイクルで複数のメモリアクセスを並列に処理することが出来る。
その結果、1サイクルでアクセスしたメモリバンクにアクセスすべきアドレスが記憶されていれば、1サイクルで複数のメモリアクセスを並列に処理することが出来るので、マルチポートメモリとしての機能を実現することが出来る。例えば、メモリバンク数を2とする場合、メモリセルのアクセス時間を1/2に短縮することなく、また逆に、全体のサイクル時間を2倍に延ばすことなく、2ポートメモリとしての機能を実現することができる。
さらにまた、メモリバンクの選択において、アドレスを使わずに行っているので、アドレス入力セレクタでの選択が他の処理と並行してでき、この選択時間がクリティカルパスにならない。そのため、メモリのアクセス時間が延びることなく、マルチポートメモリとしての機能を実現することが出来る。
産業上の利用可能性
以上のように、本発明にかかわるマルチポートメモリはメモリのアクセス時間が延びることなくマルチポートメモリを実現でき、スーパスカラプロセッサやVLIWプロセッサなど1サイクルに複数個のメモリアクセス処理を要求するプロセッサを用いたデータ処理装置のメモリ、特にキャッシュメモリとして用いるのに適している。
Claims (1)
- (1)メインメモリ、
(2)第1、第2のメモリバンクと、前記メモリバンクのそれぞれに対応したアドレス入力用およびメモリ内容出力用ポートである第1、第2のメモリポートを有するデータキャッシュ、及び
(3)前記第1、第2のメモリバンクにそれぞれ対応した第1、第2の命令レジスタと、該第1の命令レジスタに格納されたメモリアクセス命令から算出した第1のアドレスを前記データキャッシュの第1のメモリポートに入力し、該第2の命令レジスタに格納されたメモリアクセス命令から算出した第2のアドレスを前記データキャッシュの第2のメモリポートに入力し、前記第1、第2のメモリアドレスの入力の結果前記データキャッシュもしくは前記メインメモリからそれぞれ読み出されたデータを前記第1、第2の命令レジスタに格納されたメモリアクセス命令でそれぞれ指定されるレジスタファイル中のレジスタに格納する手段とを備えたプロセッサ、
を有するデータ処理装置であって、
前記メモリアクセス命令はメモリポート指定用ビットを有し、
前記プロセッサは、読みだされたメモリアクセス命令の上記メモリポート指定用ビットを解読し、解読結果に従って前記第1、第2の命令レジスタに格納する制御手段を有し、
前記データキャッシュは、前記第1、第2のメモリポートに入力されたメモリアドレスをそれぞれ前記第1、第2のメモリバンクのいずれかに入力するかを選択する第1選択手段と、前記第1、第2のメモリバンクから読み出されたデータを、当該メモリバンクへ入力されたアドレスが入力されたメモリポートへそれぞれ出力する第2選択手段を有し、
前記第1、第2のメモリバンクのそれぞれは、データとそのメインメモリ上のアドレスとを対にして記憶する手段と、前記第1選択手段により選択されて入力したアドレスに対応するアドレスが当該メモリバンク内に存在するか否かを判断する判断手段と、前記アドレスが存在するとき当該アドレスに対応するデータをアクセスして前記第2選択手段を介して出力する手段を有し
前記第1選択手段は、第1サイクルで前記第1のメモリポートから入力される前記第1のアドレスを前記第1のメモリバンクへ入力し、前記第2のメモリポートから入力される前記第2のアドレスを前記第2のメモリバンクへ入力し
前記第1のメモリバンク内の判断手段が前記第1のアドレスと対となるデータが存在しないと判断したとき、前記第1サイクルより後のサイクルで前記第2のメモリバンクへ前記第1のアドレスを入力し、
前記第2のメモリバンク内の判断手段が前記第2のアドレスと対となるデータが存在しないと判断したとき、前記第1サイクルより後のサイクルで前記第1のメモリバンクへ前記第2のアドレスを入力することを特徴とするデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1996/000338 WO1997030395A1 (fr) | 1996-02-16 | 1996-02-16 | Memoire a acces multiples et processeur de donnees procurant l'acces a cette memoire |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3593346B2 true JP3593346B2 (ja) | 2004-11-24 |
Family
ID=14152927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52917597A Expired - Fee Related JP3593346B2 (ja) | 1996-02-16 | 1996-02-16 | マルチポートメモリ及びそれをアクセスするデータ処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6282505B1 (ja) |
EP (1) | EP0881575A4 (ja) |
JP (1) | JP3593346B2 (ja) |
KR (1) | KR19990082423A (ja) |
WO (1) | WO1997030395A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100850277B1 (ko) | 2006-11-15 | 2008-08-04 | 삼성전자주식회사 | 멀티패쓰 억세스블 반도체 메모리 장치에서의 뱅크어드레스 할당방법 |
US7870326B2 (en) | 2006-07-28 | 2011-01-11 | Samsung Electronics Co., Ltd. | Multiprocessor system and method thereof |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598138B1 (en) * | 1998-07-03 | 2003-07-22 | Siemens Aktiengesellschaft | Method for controlling the assignment of memory access |
US6775752B1 (en) * | 2000-02-21 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | System and method for efficiently updating a fully associative array |
US6665775B1 (en) * | 2000-09-22 | 2003-12-16 | Intel Corporation | Cache dynamically configured for simultaneous accesses by multiple computing engines |
US6988167B2 (en) * | 2001-02-08 | 2006-01-17 | Analog Devices, Inc. | Cache system with DMA capabilities and method for operating same |
US20020108021A1 (en) * | 2001-02-08 | 2002-08-08 | Syed Moinul I. | High performance cache and method for operating same |
US7206904B2 (en) * | 2002-03-20 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Method and system for buffering multiple requests from multiple devices to a memory |
GB2396031B (en) * | 2002-12-05 | 2005-10-26 | Imagination Tech Ltd | A SIMD processor with multi-port memory unit |
US20040111567A1 (en) * | 2002-12-05 | 2004-06-10 | Anderson Adrian John | SIMD processor with multi-port memory unit |
CN1879092B (zh) | 2003-11-12 | 2010-05-12 | 松下电器产业株式会社 | 高速缓冲存储器及其控制方法 |
US8713286B2 (en) * | 2005-04-26 | 2014-04-29 | Qualcomm Incorporated | Register files for a digital signal processor operating in an interleaved multi-threaded environment |
EP1932158A4 (en) | 2005-09-30 | 2008-10-15 | Mosaid Technologies Inc | MEMORY WITH OUTPUT CONTROL |
US7747833B2 (en) * | 2005-09-30 | 2010-06-29 | Mosaid Technologies Incorporated | Independent link and bank selection |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
TWI460736B (zh) * | 2005-09-30 | 2014-11-11 | Conversant Intellectual Property Man Inc | 獨立連結與記憶庫選擇 |
KR100754359B1 (ko) * | 2006-03-29 | 2007-09-03 | 엠텍비젼 주식회사 | 복수의 공유 블록을 포함하는 다중 포트 메모리 장치 |
KR100764062B1 (ko) * | 2006-05-01 | 2007-10-09 | 엘아이지넥스원 주식회사 | 항공기의 다중화 컴퓨터 시스템 |
WO2008035417A1 (fr) * | 2006-09-21 | 2008-03-27 | Mitsubishi Electric Corporation | Dispositif d'exécution d'accès, mémoire cache, dispositif de stockage de données, et dispositif d'accès de lecture |
US8745359B2 (en) | 2008-02-26 | 2014-06-03 | Nec Corporation | Processor for concurrently executing plural instruction streams |
TW201044371A (en) * | 2009-06-15 | 2010-12-16 | Novatek Microelectronics Corp | Memory architecture of display device and reading method thereof |
KR101635395B1 (ko) | 2010-03-10 | 2016-07-01 | 삼성전자주식회사 | 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 |
JP6158154B2 (ja) * | 2014-09-19 | 2017-07-05 | 株式会社東芝 | プロセッサシステム、メモリ制御回路およびメモリシステム |
US10168938B2 (en) * | 2016-11-25 | 2019-01-01 | Hughes Network Systems, Llc | LDPC decoder design to significantly increase throughput in ASIC by utilizing pseudo two port memory structure |
US11226909B2 (en) | 2018-08-24 | 2022-01-18 | Rambus Inc. | DRAM interface mode with interruptible internal transfer operation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
US5542067A (en) * | 1992-04-23 | 1996-07-30 | International Business Machines Corporation | Virtual multi-port RAM employing multiple accesses during single machine cycle |
US5502683A (en) * | 1993-04-20 | 1996-03-26 | International Business Machines Corporation | Dual ported memory with word line access control |
US5875470A (en) * | 1995-09-28 | 1999-02-23 | International Business Machines Corporation | Multi-port multiple-simultaneous-access DRAM chip |
US6023745A (en) * | 1996-08-08 | 2000-02-08 | Neomagic Corporation | Scoreboarding for DRAM access within a multi-array DRAM device using simultaneous activate and read/write accesses |
-
1996
- 1996-02-16 JP JP52917597A patent/JP3593346B2/ja not_active Expired - Fee Related
- 1996-02-16 EP EP96902453A patent/EP0881575A4/en not_active Withdrawn
- 1996-02-16 US US09/125,285 patent/US6282505B1/en not_active Expired - Fee Related
- 1996-02-16 WO PCT/JP1996/000338 patent/WO1997030395A1/ja not_active Application Discontinuation
- 1996-02-16 KR KR1019980706156A patent/KR19990082423A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870326B2 (en) | 2006-07-28 | 2011-01-11 | Samsung Electronics Co., Ltd. | Multiprocessor system and method thereof |
KR100850277B1 (ko) | 2006-11-15 | 2008-08-04 | 삼성전자주식회사 | 멀티패쓰 억세스블 반도체 메모리 장치에서의 뱅크어드레스 할당방법 |
Also Published As
Publication number | Publication date |
---|---|
US6282505B1 (en) | 2001-08-28 |
WO1997030395A1 (fr) | 1997-08-21 |
EP0881575A1 (en) | 1998-12-02 |
EP0881575A4 (en) | 2002-04-17 |
KR19990082423A (ko) | 1999-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3593346B2 (ja) | マルチポートメモリ及びそれをアクセスするデータ処理装置 | |
US7694077B2 (en) | Multi-port integrated cache | |
US5809274A (en) | Purge control for ON-chip cache memory | |
JP3098071B2 (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
US7284092B2 (en) | Digital data processing apparatus having multi-level register file | |
US8250348B2 (en) | Methods and apparatus for dynamically switching processor mode | |
EP0125855B1 (en) | Buffer-storage control system | |
US4910667A (en) | Vector processor with vector buffer memory for read or write of vector data between vector storage and operation unit | |
US7836253B2 (en) | Cache memory having pipeline structure and method for controlling the same | |
JP3641031B2 (ja) | 命令装置 | |
JP2009505180A (ja) | 少なくとも2つの処理ユニットと、及び少なくとも1つのメモリとを有する計算機システム内に形成される及び記憶装置、及びそれによる記憶方法 | |
US5206945A (en) | Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses | |
US5420997A (en) | Memory having concurrent read and writing from different addresses | |
CA2059923A1 (en) | General-purpose memory access scheme using register-indirect mode | |
JP3145545B2 (ja) | メモリアクセス装置 | |
US5349672A (en) | Data processor having logical address memories and purge capabilities | |
JPH09114733A (ja) | キャッシュ記憶装置における非整列データ転送機構 | |
JPH01263830A (ja) | 情報処理装置 | |
JPS60118932A (ja) | 命令再先取り制御方式 | |
JP2001195390A (ja) | ベクトル処理装置のオペランドキャッシュ | |
JPH08115216A (ja) | アドレス加算機能付き記憶装置を用いた計算機 | |
JPH0285944A (ja) | データ処理装置 | |
JPH05334186A (ja) | データ処理装置 | |
JPS622362A (ja) | ベクトル処理装置 | |
JPH04160654A (ja) | 主記憶装置書込方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040628 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040810 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040830 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |