JP2001142698A - メモリアクセス方式 - Google Patents

メモリアクセス方式

Info

Publication number
JP2001142698A
JP2001142698A JP32240199A JP32240199A JP2001142698A JP 2001142698 A JP2001142698 A JP 2001142698A JP 32240199 A JP32240199 A JP 32240199A JP 32240199 A JP32240199 A JP 32240199A JP 2001142698 A JP2001142698 A JP 2001142698A
Authority
JP
Japan
Prior art keywords
instruction
address
discontinuous
memory
code
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.)
Withdrawn
Application number
JP32240199A
Other languages
English (en)
Inventor
Atsushi Mori
篤史 毛利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP32240199A priority Critical patent/JP2001142698A/ja
Publication of JP2001142698A publication Critical patent/JP2001142698A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 小量の高速アクセスメモリによって高速に命
令を実行する。 【解決手段】 プログラムを記憶する主記憶装置(4
0)と、上記プログラムに含まれる命令中の分岐命令の
先頭から4ワード分の命令コードを登録する高速アクセ
ス可能な命令用メモリ(20)とを備え、高速アクセス
制御部(2)は、次に実行する命令が分岐命令であるこ
とを検出し、分岐命令の先頭の命令コードを命令用メモ
リ(20)から取得して、CPU(1)へ転送する。C
PU(1)は、転送された分岐命令の先頭の命令コード
を実行するとともに、続いて実行する命令コードを主記
憶装置(40)から読み込む命令プリフェッチ処理をす
ることにより、待ち状態を作ることなくプログラムの命
令を実行する。命令用メモリ(20)に分岐命令が登録
されていない場合は、高速アクセス制御部(2)は、検
出した分岐命令の先頭から4ワード分の命令コードを命
令用メモリ(20)へ登録する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムを記憶
する記憶装置に加え、命令用の高速メモリを備え、高速
に命令アクセスを行うメモリアクセス方式に関するもの
である。
【0002】
【従来の技術】近年、中央演算処理装置(CPU:Ce
ntral ProcessingUnit)のクロッ
クサイクルタイム(動作周波数の逆数)は、メインメモ
リのアクセスタイムに比較してますます高速になってき
ており(動作周波数が向上するとクロックサイクルタイ
ムは小さくなる)、命令およびデータのメインメモリア
クセスがシステム性能向上のボトルネックとなってい
る。そして、CPUが100MHz(クロックサイクル
タイムは10ns)以上で動作するのが当たり前になっ
ているのに対して、メインメモリを構成する通常のDR
AM(Dynamic Random Access
Memory)のレイテンシー(DRAMに対してアク
セスを開始して最初のデータが出力されるまでの時間)
は40ns程度である。この問題を解決するために、比
較的小容量の高速メモリであるキャッシュメモリを、C
PUとDRAMの間に配置し、DRAMへのアクセスを
見かけ上高速にする手法「コンピュータアーキテクチ
ャ」p408−p418(David A.Patte
rson,John L.Hennessy著、日経B
P社、1993年)が採られている。
【0003】図8に、キャッシュメモリを用いた従来の
コンピュータシステムを示す。1000はCPUを、1
001は命令キャッシュメモリを、1002はデータキ
ャッシュメモリを、1003はメインメモリ(DRA
M)を示している。CPU(1000)内には、命令お
よびデータキャッシュメモリのアクセス制御を行うキャ
ッシュ制御部(1011)と、メインメモリのアクセス
制御を行うバスインターフェイスユニット(BIF)
(1012)と、命令キャッシュメモリからのデータバ
ス(1025)とBIFからのデータバス(1017)
を選択するセレクタ1(1013)と、データキャッシ
ュメモリからのデータバス(1026)とBIF(10
12)からのデータバス(1017)を選択するセレク
タ2(1014)と、BIF(1012)に接続されて
いるデータバス(1017)へデータを出力するドライ
バ(1015)を内蔵している。
【0004】キャッシュ制御部(1011)は、命令キ
ャッシュメモリに命令フェッチアドレス(1020)を
出力し、データキャッシュメモリにオペランドデータア
ドレス(1021)を出力する。また、命令キャッシュ
メモリ(1001)およびデータキャッシュメモリ(1
002)からは、キャッシュヒット/ミス信号(命令キ
ャッシュヒット(1022)、データキャッシュヒット
(1023))がキャッシュ制御部へ出力される。キャ
ッシュヒットとは、アクセスアドレスに該当する命令コ
ードおよびオペランドデータがキャッシュメモリ内に存
在することを示している。キャッシュミスとは、アクセ
スアドレスに該当する命令コードおよびオペランドデー
タがキャッシュメモリ内に存在しないことを示してい
る。また、キャッシュミスであった場合には、キャッシ
ュ制御部(1011)からBIF(1012)にメイン
メモリアクセスのためのリクエストやアドレス(101
6)が出力される。BIF(1012)は、アドレスバ
ス(1018)、データバス(1019)を介してメイ
ンメモリ(1003)から必要な命令フェッチやオペラ
ンドデータリードする。BIF(1012)はデータバ
ス(1017)を介して、この命令コードおよびオペラ
ンドデータをCPUまたはキャッシュメモリに転送す
る。
【0005】命令コードを取得する際に発生する命令キ
ャッシュミスによる命令フェッチでは、BIF(101
2)によりフェッチされた最初のワードデータ(32ビ
ット)はデータバス(1017)経由でセレクタ1(1
013)を介してCPUに転送される。また、オペラン
ドデータを取得する際に発生するデータキャッシュミス
によるオペランドデータリードでは、BIF(101
2)によりリードされた最初のワードデータはデータバ
ス(1017)経由でセレクタ2(1014)を介して
CPU(1000)に転送される。また、キャッシュミ
ス時にはキャッシュの登録処理が行われる。キャッシュ
登録が必要なリクエストがキャッシュ制御部(101
1)からBIF(1012)に渡されると、BIF(1
012)は1ライン分の4ワードデータ(128ビッ
ト)をメインメモリ(1003)から取ってくる。そし
て、キャッシュ制御部(1011)にデータを取ってき
たことを知らせながらデータバス(1017)に出力す
る。キャッシュ制御部(1011)は、キャッシュ登録
信号(1024)を命令およびデータキャッシュメモリ
に出力する。
【0006】命令キャッシュメモリ(1001)は、ラ
インデコード(1051)と、タグ部(1052)と、
モード部(1053)と、データ部(1054)と、ア
ドレス比較器(1055)と、出力制御部(1056)
より構成されている。データキャッシュメモリ(100
2)は、ラインデコード(1071)と、タグ部(10
72)と、モード部(1073)と、データ部(107
4)と、アドレス比較器(1075)と、出力制御部
(1076)より構成されている。そして命令キャッシ
ュメモリ(1001)およびデータキャッシュメモリ
(1002)は、ダイレクトマッピング方式のメモリ構
成となっている。すなわち、命令キャッシュメモリ(1
001)では、入力されたアドレス(1020)の下位
数ビットをラインデコード(1051)し、1エントリ
(ラインデコード結果により選択される1つのタグアド
レス(1058)と、モードデータ(1060)と、キ
ャッシュデータ(1059)のセットを指す)の選択を
行う。モードデータ(1060)は、通常、有効ビット
等が含まれており、このエントリが有効であれば有効ビ
ットがセットされ、無効であれば有効ビットがクリアさ
れる。選択されたエントリ内のタグアドレス(105
8)は、アドレス比較器(1055)に転送され、入力
アドレス(1020)の一部と比較する。この比較結果
に有効ビットがANDされ、一致すれば命令キャッシュ
ヒット信号(1022)としてキャッシュ制御部(10
11)に転送される。そして、キャッシュヒット信号
(1022)は出力制御部にも伝達され、選択されたエ
ントリ内のキャッシュデータ(1059)のうち、所望
のワードデータがデータバス(1025)を介してCP
Uに転送される。また、キャッシュミスした場合には、
入力アドレス(1020)の一部をタグアドレス(10
58)に登録し、BIF(1012)からデータバス
(1017)経由で転送されてくる4ワード分のデータ
をキャッシュデータ(1059)に登録する。そして、
これらを登録したエントリの有効ビットをセットする。
【0007】同様に、データキャッシュメモリ(100
2)では、入力されたアドレス(1021)の下位数ビ
ットをラインデコード(1071)し、1エントリ(ラ
インデコード結果により選択される1つのタグアドレス
(1078)と、モードデータ(1080)と、キャッ
シュデータ(1079)のセットを指す)の選択を行
う。モードデータ(1080)は、通常、有効ビットや
変更ビット等が含まれている。有効ビットは、このエン
トリが有効であればセットされ無効であればクリアされ
る。変更ビットは、このエントリに対してオペランドラ
イト処理が行われた場合にセットされ、オペランドライ
ト処理が行われていない場合は未セットのままである。
選択されたエントリ内のタグアドレス(1078)は、
アドレス比較器(1075)に転送され、入力アドレス
(1021)の一部と比較する。この比較結果に有効ビ
ットがANDされ、一致すれば命令キャッシュヒット信
号(1023)としてキャッシュ制御部(1011)に
転送される。そして、キャッシュヒット信号(102
3)は出力制御部にも伝達され、選択されたエントリ内
のキャッシュデータ(1079)のうち、所望のワード
データがデータバス(1026)を介してCPU(10
00)に転送される。また、キャッシュミスした場合に
は、入力アドレス(1021)の一部をタグアドレス
(1078)に登録し、BIF(1012)からデータ
バス(1017)経由で転送されてくる4ワード分のデ
ータをキャッシュデータ(1079)に登録する。そし
て、これらを登録したエントリの有効ビットをセットす
る。
【0008】図9,10では、あるプログラム例に則し
た命令コードアクセスについて説明する。図9には、プ
ログラム(1100)と、命令キャッシュメモリ(10
01)を、図10には、メインメモリ(DRAM)内の
メモリイメージを示している。命令キャッシュメモリ
(1001)は、ラインデコード(1051)と、タグ
アドレス部(1052)と、キャッシュデータ部(10
54)より構成されている。ラインデコード(105
1)により選択された1エントリには、4ワードのデー
タ登録可能である。メインメモリ内のメモリイメージ
は、1ワードデータ(D100〜D137)のデータ列
であり、これらはアドレスの若い順に上から下へ並んで
いる。データ列の右側の矢印は、4ワード境界アドレス
を示している。また、データ列の左側の矢印はプログラ
ム中に示しているラベル(BT01,BT02,SUB
E)を示している。
【0009】プログラム(1100)では、まず、第1
のジャンプ命令が実行されて分岐先(BT01)へ分岐
処理が実行される。そして、シーケンシャルにプログラ
ムが実行されて、アドレスSUBEにきた時に第2のジ
ャンプ命令が実行されて分岐先(BT02)へ分岐処理
が実行される。このアドレスBT01からSUBEまで
の一連のプログラムコード(プログラム中の点線枠部
分:1101)が格納されているのは、DRAMのメモ
リイメージ上ではD105〜D120(図中の網掛けし
た部分)である。この一連のプログラムコードが初めて
実行された時は、命令キャッシュメモリへのアクセスで
はキャッシュミスが発生する。このキャッシュミスに伴
って、命令キャッシュメモリへの命令コードの登録が行
われる。キャッシュメモリには4ワード境界アドレスで
区切られる、一連の4ワードデータが1エントリに登録
される。このため、命令コードD104〜D123まで
の20ワードデータがキャッシュデータ部(1054)
の5ラインに登録される。そして、これらキャッシュデ
ータ部の5ラインに対応するタグアドレス部(105
2)の5ラインには4ワード境界アドレス(BD01,
BD02,BD03、BD04,BD05)が登録され
る。そして、この一連のプログラムコード(1101)
が2回目以降に実行される場合は、メインメモリからプ
ログラムコードをフェッチすることなく、命令キャッシ
ュメモリからプログラムコードがフェッチできるため、
高速にプログラム実行が可能となる。
【0010】通常、CPUは命令キャッシュメモリへ1
クロックアクセス可能であるのに対して、メインメモリ
はDRAMで構成されているため、最初のデータが出力
されるまでに数サイクルかかる。そのため、高速なコン
ピュータシステムでは、なるべく大容量の命令キャッシ
ュメモリを内蔵し、多くの命令コードをメインメモリか
ら命令キャッシュメモリに登録できるようにしている。
従って、キャッシュメモリのコストが増加するという問
題点が発生している。
【0011】
【発明が解決しようとする課題】この発明は、上記のよ
うな問題を解決するため、高速にアクセスできる命令用
のメモリを設置し、命令用のメモリに分岐命令等のアド
レスが連続していない命令の先頭から任意のサイズの命
令コードを記憶することにより、高速に命令を実行でき
るようにすることを目的とする。
【0012】
【課題を解決するための手段】この発明に係るメモリア
クセス方式は、複数の命令コードにより記述されたプロ
グラムを記憶する主記憶装置と、上記主記憶装置に記憶
されたプログラムを読み込み、読み込んだプログラムに
記述された命令コードに従って命令を実行する中央演算
処理装置と、上記主記憶装置と比べて高速に読み込み可
能であり、上記中央演算処理装置が実行中の命令の次に
実行する次命令の命令コードが記憶されているアドレス
が、実行中の命令の命令コードが記憶されているアドレ
スと連続していないアドレス不連続命令について、上記
アドレス不連続命令の命令コードを記憶する命令用メモ
リと、次命令がアドレス不連続命令であることを検出
し、アドレス不連続命令の場合には、上記命令用メモリ
に記憶された上記アドレス不連続命令の命令コードを検
索して命令用メモリからアドレス不連続命令の命令コー
ドを取得し、取得した命令コードを中央演算処理装置に
転送する高速アクセス制御部とを備えたことを特徴とす
る。
【0013】上記高速アクセス制御部は、アドレス不連
続命令の命令コードが上記命令用メモリに記憶されてい
なかった場合は、主記憶装置に記憶されたアドレス不連
続命令の命令コードを一つ以上読み込み、読み込んだ一
つ以上の命令コードを一組のアドレス不連続命令として
上記命令用メモリへ書き込むことを特徴とする。
【0014】また、中央演算処理装置は、命令をデコー
ドする命令デコード部を備え、上記命令デコード部は、
次命令がアドレス不連続命令であることを所定の基準に
基づいて検出し、次命令がアドレス不連続命令であるこ
とを検出すると、次命令がアドレス不連続命令であるこ
とを通知する不連続信号を生成し、生成した不連続信号
を上記高速アクセス制御部へ出力し、上記高速アクセス
制御部は、上記不連続信号を入力し、上記不連続信号に
よって次命令がアドレス不連続命令であることを検出す
ることを特徴とする。
【0015】上記高速アクセス制御部は、実行中の命令
が記憶されているアドレスと、次命令が記憶されている
アドレスとを入力し、上記二つのアドレス比較すること
によって、次命令がアドレス不連続命令であることを検
出することを特徴とする。
【0016】上記アドレス不連続命令は、分岐命令を含
むことを特徴とする。
【0017】上記高速アクセス制御部は、上記命令用メ
モリが一組のアドレス不連続命令を記憶するのに要する
記憶領域のサイズを、上記アドレス不連続命令のアドレ
スへ加算し、加算したアドレスを中央演算処理装置へ出
力し、中央演算処理装置は、上記アドレスを入力し、入
力したアドレスを用いて主記憶装置へ命令コードの読み
込みを行うことを特徴とする。
【0018】上記中央演算処理装置は、上記命令用メモ
リまたは主記憶装置から読み込んだ命令コードを一時的
に記憶する命令キューを備えたことを特徴とする。
【0019】この発明に係るメモリアクセス方式は、プ
ログラムを記憶できる第一の記憶部と、アクセスする速
度は第一の記憶部より高速であるが第一の記憶部より少
量のプログラムを記憶できる第二の記憶部とを備えた記
憶装置と、上記記憶装置に記憶されたプログラムを読み
込み、読み込んだプログラムに記述された命令コードに
従って命令を実行する中央演算処理装置とを備え、上記
第一の記憶部は、プログラム全体を記憶し、上記第二の
記憶部は、上記中央演算処理装置が実行中の命令の次に
実行する次命令の命令コードが記憶されているアドレス
が、実行中の命令の命令コードが記憶されているアドレ
スと連続していないアドレス不連続命令について、上記
アドレス不連続命令の命令コードを記憶し、さらに、上
記記憶装置は、次命令がアドレス不連続命令であること
を検出し、アドレス不連続命令の場合には、上記第二の
記憶部に記憶された上記アドレス不連続命令の命令コー
ドを検索して第二の記憶部からアドレス不連続命令の命
令コードを取得し、取得した命令コードを中央演算処理
装置に転送する高速アクセス制御部とを備えたことを特
徴とする。
【0020】上記高速アクセス制御部は、アドレス不連
続命令の命令コードが上記第二の記憶部に記憶されてい
なかった場合は、第一の記憶部に記憶されたアドレス不
連続命令の命令コードを一つ以上読み込み、読み込んだ
一つ以上の命令コードを一組のアドレス不連続命令とし
て上記第二の記憶部へ書き込むことを特徴とする。
【0021】また、中央演算処理装置は、命令をデコー
ドする命令デコード部を備え、上記命令デコード部は、
次命令がアドレス不連続命令であることを所定の基準に
基づいて検出し、次命令がアドレス不連続命令であるこ
とを検出すると、次命令がアドレス不連続命令であるこ
とを通知する不連続信号を生成し、生成した不連続信号
を上記高速アクセス制御部へ出力し、上記高速アクセス
制御部は、上記不連続信号を入力し、上記不連続信号に
よって次命令がアドレス不連続命令であることを検出す
ることを特徴とする。
【0022】上記高速アクセス制御部は、実行中の命令
が記憶されているアドレスと次命令が記憶されているア
ドレスとを入力し、上記二つのアドレスを比較すること
によって、次命令がアドレス不連続命令であることを検
出することを特徴とする。
【0023】上記記憶装置と、中央演算処理装置とは、
システムLSI(Large−Scale Integ
ration)に内蔵されていることを特徴とする。
【0024】
【発明の実施の形態】実施の形態1.上記問題点を解決
するため本発明の高速メモリアクセス方式では、小容量
の命令用のメモリを命令用メモリとして内蔵し、この命
令用メモリには、次に実行する命令が記憶されたアドレ
スが不連続な命令の命令コードを登録する。命令用メモ
リのアクセスと同時にメインメモリのアクセスも行い、
命令用メモリからの命令コードと、メインメモリからの
命令コードをシームレスにフェッチする方式に関するの
ものである。この実施の形態では、一例として、これら
の処理が全てハードウェア制御で行われる場合を説明す
る。また、この実施の形態では、次命令が不連続命令で
あることを、所定の基準の命令として検出する場合を一
例として説明する。
【0025】図1に、本発明の高速メモリアクセス方式
を示す。1はCPUを、20は命令用メモリを、100
2はデータキャッシュメモリを、40はメインメモリを
示している。メインメモリ(主記憶装置)(40)は、
命令コードを記述したプログラムを記憶する。この実施
の形態では、メインメモリがSDRAM(Synchr
onous DRAM)を使用する場合を示している。
SDRAMとは、同期式DRAMのことで、単なるDR
AMがクロックを使用しないのに対して、SDRAMで
はクロックに同期してデータの転送を行う。近年システ
ム全体が高速化してくるに伴ってDRAMよりもSDR
AMの方が使用されてきているものである。データキャ
ッシュメモリ(1002)は、従来のものと同じであ
る。命令用メモリ(20)は、メインメモリと比べて高
速に読み込み可能であり、CPU(1)が実行中の命令
の次に実行する次命令の命令コードが記憶されているア
ドレスが、実行中の命令の命令コードが記憶されている
アドレスと連続していないアドレス不連続命令につい
て、上記アドレス不連続命令の命令コードを記憶する。
CPU(1)内には、命令およびデータ高速アクセス制
御を行う高速アクセス制御部(2)と、外部メモリのア
クセス制御を行うバスインターフェイスユニット(BI
F)(7)と、命令用メモリ(20)からのデータバス
(6)とBIF(7)からのデータバス(17)とを選
択するセレクタ1(3)と、そのセレクタ1(3)の出
力データを格納しておく命令キュー(4)と、命令用メ
モリ(20)からのデータバス(6)とBIF(7)か
らのデータバス(17)と命令キュー(4)との出力を
選択するセレクタ(5)と、データキャッシュメモリか
らのデータバス(1026)とBIFからのデータバス
(12)とを選択するセレクタ2(9)と、BIF
(7)に接続されているデータバス(17)へデータを
出力するドライバ(10)と、命令をデコードする命令
デコード部とを内蔵している。高速アクセス制御部
(2)は、次命令がアドレス不連続命令であることを検
出し、アドレス不連続命令の場合には、命令用メモリ
(20)に記憶された上記アドレス不連続命令の命令コ
ードを検索して命令用メモリからアドレス不連続命令の
命令コードを取得し、取得した命令コードをCPU
(1)に転送する。
【0026】命令デコード部(11)は、次命令がアド
レス不連続命令であることを所定の基準に基づいて検出
し、次命令がアドレス不連続命令であることを検出する
と、次命令がアドレス不連続命令であることを通知する
不連続信号(21)を生成し、生成した不連続信号を上
記高速アクセス制御部(2)へ出力する。この実施の形
態では、分岐命令をアドレス不連続命令とする場合を説
明するが、これに限られるわけではない。この分岐命令
の実行を検知(不連続信号21を生成)するデコード回
路部では、分岐命令以外の命令を検知することも可能で
ある。すなわち、プログラムの起動時のように、リセッ
ト信号のCPUコアへの入力直後は、通常CPUコアは
リセットベクタ(リセット処理ルーチンのありかが示さ
れている分岐テーブル)へ分岐する。このように、リセ
ット処理も含めて、EIT(例外(Exceptio
n)、割り込み(Interrupt)、トラップ(t
rap)の総称)が発生した場合のEITベクタへの分
岐を分岐命令の一種として検知することも可能である。
また、上記は一例を示したもので、上記以外の命令であ
っても、アドレス不連続命令として検知することが可能
であることはいうまでもない。命令デコード部(11)
から出力された不連続信号を入力した高速アクセス部
(2)は、命令用メモリ(20)から分岐命令の命令コ
ードを読み込む。命令用メモリ(20)は、アドレス不
連続命令の一つ以上の命令コード(この実施の形態で
は、4ワード分の命令コード)を一組のアドレス不連続
命令とし、この一組のアドレス不連続命令とその付加情
報とからなるデータを1エントリとして、複数のエント
リ(38)を記憶する領域を内蔵している。1エントリ
は、タグアドレス(34)と、モード(35)と、分岐
ターゲットデータ(36)と、アドレス比較器(33)
から構成される。さらに、命令用メモリ(20)は、各
エントリ(30)のアドレス比較器(33)の結果によ
りヒットミスの判定を行うヒットミス判定部(31)
と、アドレス比較器でヒットが検出されたエントリの分
岐ターゲットデータをデータバス(6)に出力する出力
制御部(39)を内蔵している。データキャッシュメモ
リ(1002)の構成は図8で説明した従来のものと同
様であり、その処理動作も同様である。
【0027】次に、動作を説明する。高速アクセス制御
部(2)は、命令用メモリ(20)に命令フェッチアド
レス(12)を出力し、データキャッシュメモリ(10
02)にオペランドデータアドレス(13)を出力す
る。また、命令用メモリ(20)およびデータキャッシ
ュメモリ(1002)からは、タグヒット/ミス信号
(命令用メモリヒット(14)、データキャッシュヒッ
ト(15))が高速アクセス制御部(2)へ出力され
る。タグヒットには、命令用メモリ(20)をアクセス
した場合の命令用メモリヒットと、データキャッシュメ
モリをアクセスした場合のデータキャッシュヒットとが
ある。命令用メモリヒットとは、アクセスアドレスに該
当する命令コードが命令用メモリに存在することを示し
ている。また、データキャッシュヒットとは、アクセス
アドレスに該当するオペランドデータがデータキャッシ
ュメモリに存在することを示している。タグミスには、
命令用メモリミスと、データキャッシュミスがあり、上
記タグヒットとは逆にそれぞれアクセスアドレスに該当
するデータが無かった場合をいう。
【0028】以下に、タグミスであった場合の動作を説
明する。タグミスであった場合には、高速アクセス制御
部(2)からBIF(7)にメインメモリアクセスのた
めのリクエストやアドレス等(8)が出力される。BI
F(7)は、アドレスバス(18)、データバス(1
9)を介してメインメモリ(40)から必要な命令フェ
ッチやオペランドデータリードする。BIF(7)は、
データバス(17)を介して、この命令コードおよびオ
ペランドデータをCPUまたは命令用メモリまたはデー
タキャッシュメモリに転送する。命令用メモリミスによ
る命令フェッチでは、BIF(7)によりフェッチされ
た最初のワードデータ(32ビット)は、データバス
(17)経由でセレクタ3(5)を介してCPUに転送
される。また、データキャッシュミスによるオペランド
データリードでは、BIF(7)によりリードされた最
初のワードデータは、データバス(17)経由でセレク
タ2(9)を介してCPUに転送される。また、タグミ
ス時には命令用メモリまたはデータキャッシュメモリへ
の登録処理が行われる。登録処理が必要なリクエストが
高速アクセス制御部(2)からBIF(7)に渡される
と、BIF(7)は1ライン分の4ワードデータ(12
8ビット)をメインメモリから取ってくる。そして、高
速アクセス制御部(2)にデータを取ってきたことを知
らせながらデータバス(17)に出力する。高速アクセ
ス制御部(2)は、登録処理制御信号(16)を命令用
メモリ(20)およびデータキャッシュメモリ(100
2)に出力する。
【0029】高速アクセス制御部(2)は、命令用メモ
リミスが起こった場合、すなわち、アドレス不連続命令
の命令コードが命令用メモリ(20)に記憶されていな
かった場合は、主記憶装置に記憶されたアドレス不連続
命令の命令コードを一つ以上読み込み、読み込んだ一つ
以上の命令コードを一組のアドレス不連続命令として上
記命令用メモリへ書き込むことになる。この実施の形態
では、4ワード分の命令コードを命令用メモリに書き込
む場合を説明する。
【0030】本発明のメモリアクセス方式では、命令フ
ェッチに関しては命令用メモリヒットであった場合にも
メインメモリへ(40)のアクセスを行う。命令用メモ
リヒットした場合には、4ワードの命令コードが命令用
メモリ(20)からデータバス(6)を介して出力され
る。4ワードの命令コードのうち、先頭の命令コードは
セレクタ3(5)を介してCPUに渡されるが、残りの
命令コードはセレクタ1(3)を介して命令キュー
(4)に取り込まれる。そして、同時に高速アクセス制
御部(2)は、命令用メモリヒット信号(14)を受け
て、命令用メモリ(20)にアクセスしたアドレスに4
ワード分加算(+4)(4ワード分の命令コードの次命
令コードをアクセスするためのアドレス)したアドレス
をBIF(7)に対して出力する。BIF(7)はこの
アドレスを受けて、メインメモリ(40)に対して命令
フェッチ処理を開始するこの4ワード分加算されたアド
レスに対するBIF(7)の命令フェッチ処理を命令プ
リフェッチ処理と呼ぶ。そして、命令キューに貯えられ
ていた命令用メモリ(20)からの命令コードがCPU
(1)で全て実行される頃に、メインメモリ(40)か
らの命令プリフェッチしていた命令コードはBIF
(7)経由でCPU(1)に転送される。この命令用メ
モリ(20)の使用と命令プリフェッチ処理による一連
の処理を効果的に行うことにより、CPU(1)に対し
てシームレスに命令コードの供給が可能となる。
【0031】命令用メモリ(20)では、入力されたア
ドレス(12)は、命令用メモリ(20)に内蔵された
全エントリ(38)に入力され、各エントリ内のアドレ
ス比較器でタグアドレスと比較を行う。各エントリ内の
モードデータには通常、有効ビット等が含まれており、
このエントリが有効であれば有効ビットがセットされ、
無効であれば有効ビットがクリアされる。各エントリの
アドレス比較器結果に有効ビットがANDされ、一致す
れば命令用メモリヒット信号としてヒットミス判定部
(31)に転送される。そして、各エントリの命令用メ
モリヒット信号は出力制御部(39)にも伝達され、命
令用メモリヒットが検出されたエントリ内の分岐ターゲ
ットデータ4ワード全てがデータバス(6)を介してC
PUに転送される。また、命令用メモリミスした場合に
は、このミス信号(14)が高速アクセス制御部(2)
に伝達され、この命令用メモリに対してアクセスを行っ
たアドレス(12)がそのままBIF(7)に伝達され
る(この処理は通常のメインメモリに対する命令フェッ
チである)。この命令フェッチによりメインメモリから
取ってこられた命令コードは、BIF(7)を介してC
PU(1)に転送される。この時に、同時に高速アクセ
ス制御部(2)にも命令を取ってきたことが伝達され、
この取ってきた命令コードの最初の4ワードと、その先
頭の命令コードが記憶されているワードアドレスが、そ
れぞれ分岐ターゲットデータ(36)とタグアドレス
(34)に登録される。そして、これらを登録したエン
トリの有効ビットをセットする。この仕組みで命令用メ
モリ(20)に命令コードを登録すると、分岐命令が実
行された際の分岐先の先頭の4ワードデータ(命令コー
ド)のみが登録されることになるため、命令コード登録
用のデータ部を分岐ターゲットデータと呼ぶ。
【0032】図2に、命令用メモリ(20)内の1エン
トリの詳細な構成を示す。命令用メモリ(20)内の1
エントリ(30)は、タグアドレス(34)と、モード
(35)と、分岐ターゲットデータ(36)と、アドレ
ス比較器(33)より構成される。タグアドレス(3
4)は、アドレスバス(12)とタグアドレスライト信
号(50)が接続されており、タグミス時にアドレスバ
スよりワードアドレスAD[0:29]が登録される。
モードはこのエントリ(30)が有効であるかどうかを
示す有効ビットである。このアドレスタグとモードビッ
トを用いて、アドレス比較器(33)ではタグヒットミ
ス信号(52)を生成し、この値をヒットミス判定部
(31)へ出力する。分岐ターゲットデータ(36)で
は、4ワード分の命令コードを登録するデータ領域DA
1[0:31],DA2[0:31],DA3[0:3
1],DA4[0:31]が存在する。これら4ワード
のデータは出力制御部(39)へ接続(53)されてお
り、タグヒット時にはこのデータが出力制御部(39)
を介してCPU(1)へ転送される。また、タグミス時
には、データバス(17)上の分岐先データの先頭4ワ
ードを、分岐ターゲットデータライト信号に基づいて順
番にデータ領域に取り込む。
【0033】図3に、高速アクセス制御部(2)を中心
に命令フェッチおよびプリフェッチ処理の動作を示す。
高速アクセス制御部(2)は、分岐先のアドレスを計算
する加算器ADD1(60)と、その分岐先のアドレス
+4を計算する加算器ADD2(61)と、分岐後のシ
ーケンシャルアクセスのためのアドレスを計算するイン
クリメンタINC1(63)と、そのインクリメンタの
値を保持するレジスタREG1(64)と、加算器AD
D1(60)と加算器ADD2(61)とレジスタRE
G1(64)の出力を選択するセレクタ4(62)と、
命令用メモリアクセス制御部(65)とを内蔵してい
る。高速アクセス制御部(2)へは、CPUの命令デコ
ード部(11)から分岐命令を実行することを示す不連
続信号(21)が入力される。
【0034】命令用メモリアクセス制御部(65)は、
分岐先アドレスを計算する加算器(60)の出力が接続
されており、分岐命令の実行を示す不連続信号(21)
により起動がかかり、制御信号(図1に示す12,1
4,16)を用いて命令用メモリ(20)にアクセスを
行う。また、命令用小メモリアクセス制御部(65)
は、セレクタ4(62)の制御(67)も行う。セレク
タ4(62)の出力はBIF(7)内のメインメモリ
(SDRAM)アクセス制御部(66)に出力される。
BIF(7)では、受け取るアドレス(8)の値に応じ
て、制御信号(18)とデータバス(19)を用いて命
令コードのフェッチを行う。
【0035】まず、分岐先の命令コードフェッチで命令
用メモリミスが発生した場合には、セレクタ4(62)
からは加算器(60)の値が出力され、BIFはメイン
メモリより分岐先の命令コードのフェッチを行う。フェ
ッチしてきた命令コードは、データバス(17)とセレ
クタ3(5)を介してCPUに転送される。場合によっ
てはセレクタ1(3)を介して命令キュー(4)に格納
される。次に、分岐先の命令コードフェッチで命令用メ
モリヒットが発生した場合は、分岐先となる命令の先頭
4ワードの命令コードはデータバス(6)を介してCP
U(1)に転送される。そのため、セレクタ4(62)
からは加算器(61)の値が出力され、BIFは分岐先
の先頭4ワードの次命令コードをメインメモリからプリ
フェッチする(命令プリフェッチ処理)。プリフェッチ
してきた命令コードはデータバス(17)を介してCP
U(1)に転送される。また、BIFでこの命令プリフ
ェッチ処理による1回分のメインメモリアクセスが終了
すると、連続するシーケンシャルアクセスのためのアド
レスはセレクタ4(62)を介してインクリメンタIN
C1(63)の値が提供される。すなわち、インクリメ
ンタINC1(63)では、一度に可能なメインメモリ
(SDRAM)(40)へのバースト転送単位のアドレ
スインクリメントが実行される。また、命令キュー
(4)のサイズは一度に実行されるバースト転送単位に
大きく影響を受ける。すなわち、フェッチしてきた命令
コードが命令キュー(4)から溢れないような制御が実
行されている。
【0036】図4に、命令用メモリがヒットした場合の
命令フェッチのタイミングチャートを示す。タイミング
チャートの上位9種類の信号18,19は、BIFがメ
インメモリ(SDRAM)(40)をアクセスするため
の信号である。すなわち、これら信号(#が付いている
ものはLowアクティブである)は、クロック信号(C
K1〜CK8はそれぞれ1クロックサイクル期間を示
す)、チップセレクト信号CS#、行アドレスストロー
ブ信号RAS#、列アドレスストローブ信号CAS#、
ライトイネーブル信号WE#(Low時はライトで、H
igh時はリードである)、バンク選択信号A11、A
10、アドレスバス、データバスである。これら信号に
よるアクセスプロトコルは、一例を示したものである
(日経エレクトロニクス、No.641、p99〜p1
26、掲載記事『決断を迫られる高速DRAMへの切り
替え』に基づいている)。
【0037】アクセスアドレスはA10とアドレスバス
にマルチプレクスして出力されており、CK1の立ち上
がりに行アドレスが出力され、CK3の立ち上がりに列
アドレスが出力されている。CK1の立ち上がりでは、
CS#=Low,RAS#=Lowとなっており、行ア
ドレスがアドレスバスに出力されていることを示してい
る。CK3の立ち上がりでは、CS#=Low,CAS
#=Lowとなっており、列アドレスがアドレスバスに
出力されていることを示している。メインメモリ(SD
RAM)(40)は、これらアドレスを受け付けて、C
K5,CK6,CK7,CK8の立ち上がりでBIFが
サンプリング可能なタイミングでデータバスにターゲッ
トデータを出力する(4ワードのバースト転送の場
合)。このタイミングチャートでは、アクセスを開始し
て(CK1の立ち上がり)から、最初のデータが出力さ
れるまで(CK5の立ち上がり)に4クロックサイクル
期間(この時間をレイテンシーと呼ぶ)かかっている。
【0038】本発明の高速メモリアクセス方式では、こ
のメインメモリアクセス(CK1の立ち上がり)と同時
に、高速メモリアドレスバス(12)にも命令用メモリ
アクセスのためのアドレスを出力し、このアクセスがヒ
ットした場合は高速メモリデータバス(6)から4ワー
ド分の命令コードを得ることが可能である。これにより
レイテンシー4クロックサイクル期間に、CPUは命令
コードを待つことなく、命令用メモリ(20)から供給
される命令コードを実行していることが可能である。
【0039】図5には、図9に示したプログラム例に則
して、本発明のメモリアクセス方式による命令コードア
クセスについて説明する。図5には、命令用メモリ(2
0)内のメモリイメージが示してある。命令用メモリ
(20)は、タグアドレス部(70)と、分岐ターゲッ
トデータ部(71)より構成されている。図9に示すメ
インメモリ(ここでは、SDRAM)内のメモリイメー
ジは、1ワードデータ(D100〜D137)のデータ
列であり、これらはアドレスの若い順に上から下へ並ん
でいる。データ列の右側の矢印は4ワード境界アドレス
を示している。また、データ列の左側の矢印はプログラ
ム中に示しているラベル(BT01,BT02,SUB
E)を示している。
【0040】プログラム(1100)では、まず、第1
のジャンプ命令が実行されて分岐先(BT01)へ分岐
処理が実行される。そして、シーケンシャルにプログラ
ムが実行されて、アドレスSUBEにきた時に第2のジ
ャンプ命令が実行されて分岐先(BT02)へ分岐処理
が実行される。このアドレスBT01からSUBEまで
の一連のプログラムコード(プログラム中の点線枠部
分:1101)が格納されているのは、SDRAMのメ
モリイメージ上ではD105〜D120(図中の網掛け
部分)である。この一連のプログラムコードが初めて実
行された時は、まず、第1のジャンプ命令実行で命令用
メモリミスが発生する。このタグミスに伴って、命令用
メモリへの分岐ターゲットデータの登録が行われる。す
なわち、分岐先アドレス(BT01)とその先頭4ワー
ドデータ(D105,D106,D107,D108)
が命令用メモリ(20)の1エントリに登録される。そ
の後は、命令プリフェッチ処理によって、メインメモリ
(40)から命令コードが読み込まれてプログラムを実
行する。
【0041】次に、第2のジャンプ命令が初めて実行さ
れた場合にも、命令用メモリミスが発生し、このタグミ
スに伴って分岐先アドレス(BT02)とその先頭4ワ
ードデータ(D111,D112,D113,D11
4)が命令用メモリ(20)の上記で登録が行われたエ
ントリとは別の1エントリに登録される。そして、この
一連のプログラムコード(1101)が2回目以降に実
行される場合は、ジャンプ命令実行時の分岐先の最初の
4ワード分の命令コードは命令用メモリ(20)からフ
ェッチし、この4ワードに続く後続の命令コードはメイ
ンメモリからプリフェッチすることとなる。
【0042】このように、命令用メモリ(20)と命令
プリフェッチ処理を用いることにより、CPUは待ち状
態(ウェイト)になることなく命令実行が可能となる。
さらに、図5,9,10に、一例として示した具体例を
比較すると、図10で示した命令キャッシュメモリ(1
001)が5エントリ分(20ワード分)の命令コード
を登録する必要があるのに対して、図5で示した命令用
メモリ(20)では2エントリ分(8ワード分)の命令
コードのみの登録でよく、これら高速メモリのコストを
低減することが可能である。
【0043】実施の形態2.図6に、本発明のメモリア
クセス方式をシステムLSI(Large−Scale
Integration)に適用する例を説明する。
近年、プロセス技術の進化により半導体集積度の向上は
著しく、図1に示すキャッシュメモリをCPUと同一L
SIに内蔵するばかりでなく、大容量のDRAMまでも
内蔵することが可能となってきている。従来複数のLS
Iで構成されていたシステムを一つのLSIに集積した
ものをシステムLSIと呼んでいる。図6では、CPU
とデータキャッシュメモリとSDRAMを内蔵した構成
となるシステムLSI(100)の一例を示している。
このようなシステムLSI(100)では、図1に、一
例として示す従来LSIが、LSIのピン数の制約から
CPUとメインメモリ間のアドレスバス幅が十数ビット
でデータバス幅が32ビットしか持てなかったのに対し
て、CPUと内蔵メモリ間を32ビットのアドレスバス
と128ビットのデータバスで接続することが可能であ
る。そのため、本発明のメモリアクセス方式を内蔵メモ
リ側に備えて、命令用メモリとSDRAMの組み合わせ
で高速内蔵メモリに見せかけることが可能である。
【0044】図6のシステムLSI(100)内には、
CPU(99)と、命令/データアクセス制御部(10
1)と、BIF(1012)と、データキャッシュメモ
リ(1002)と、内蔵メモリ(41)がある。さら
に、BIF(1012)からのデータバス(17)と、
内蔵メモリからのデータバス(112)が入力される命
令キュー(4)と、命令キュー(4)とデータバス(1
7)を選択するセレクタ3(5)と、データバス(1
7)とデータキャッシュメモリの出力バス(1026)
を選択するセレクタ2(9)と、CPUコアがデータバ
ス(17)へデータを出力するドライバ(10)が内蔵
されている。CPU(99)の基本処理とデータキャッ
シュメモリ(1002)とBIF(1012)の構成と
その処理動作は、図8に示す従来のものと同じである。
命令/データアクセス制御部(101)は、従来通りデ
ータキャッシュメモリ(1002)のアクセスを制御す
ると共に、内蔵メモリ(41)か外部メモリかのアクセ
スの切り分けを司り、外部アクセスが必要な場合はBI
F(1012)に対してリクエストを出力する。また、
内蔵メモリ(41)アクセスの場合も、命令フェッチか
データアクセスかの切り分けを司り、命令フェッチの場
合は命令用メモリへのアクセスを実行する制御がなされ
る。
【0045】図7に、図6に示す内蔵メモリ(41)の
詳細なブロック構成を示す。内蔵メモリ(41)は、高
速アクセス制御部(102)と、命令用メモリ(10
3)と、SDRAM(104)より構成されている。ま
た内蔵メモリ(41)の外部インターフェイスとして
は、CPU(99)の命令/データアクセス制御部(1
01)との間でやりとりされる各種制御信号およびアド
レスバス(105)と、BIF等にも接続されている3
2ビットのデータバス(17)と、命令キューに出力さ
れている96ビットのデータバス(112)である。高
速アクセス制御部(102)には、命令フェッチアドレ
スが不連続であることを検知するための機構が内蔵され
ている。
【0046】この実施の形態では、高速アクセス制御部
(102)は、実行中の命令が記憶されているアドレス
と、次命令が記憶されているアドレスとを入力し、上記
二つのアドレス比較することによって、次命令がアドレ
ス不連続命令であることを検出する場合について説明す
る。具体的には、入力されてきた命令フェッチリクエス
トに対するアドレスを保持しておくレジスタREG2
(120)と、このアドレスをインクリメントするイン
クリメンタINC2(121)と、このインクリメント
アドレスと命令フェッチアドレスを比較するアドレス比
較器(122)より構成されている。レジスタREG2
(120)の内容は、入力アドレス(105)に対し
て、内蔵メモリがCPUに出力した命令コード量に応じ
て更新されるように制御(123)される。
【0047】次に、内蔵メモリ(41)の動作について
説明する。CPU(99)から内蔵メモリ(41)に対
して、命令フェッチであるリクエストとそのアドレスA
(105)が入力されると、高速アクセス制御部(10
2)は、まずアドレスA(105)が連続であるか不連
続であるかを検知し、不連続である場合は命令用メモリ
(103)へリクエストとアドレスA(107)を出力
しアクセスを開始する。このアクセスに対して命令用メ
モリミス(108)が発生した場合は、高速アクセス制
御部(102)はSDRAM(104)に対してもリク
エストとアドレスAを出力しアクセスを開始する。この
アクセスに対するSDRAMからのフェッチ命令コード
はデータバス(17)に出力されてCPU(99)に転
送されると共に、経路(110)でこの命令コードの先
頭4ワードが命令用メモリ(103)に登録される。こ
の登録のための起動は、高速アクセス制御部(102)
が、リクエストアドレスが不連続かどうかをモニタして
管理しており、不連続アドレスによるリクエストの場合
で命令用メモリミスの場合にのみこの登録処理が行われ
る。この不連続アドレスの検出は、プログラムの起動時
も検知することになる。すなわち、リセット信号のCP
Uコアへの入力直後も、不連続アドレスの一種と検知
し、高速アクセス制御部(102)は命令用メモリ(1
03)へのアクセスを実行する。また、命令用メモリ
(103)へのアクセスに対して命令用メモリヒット
(108)が発生した場合には、出力制御部(109)
より4ワード分の命令コードがデータバス(17,11
2)に一度に出力されてCPU(99)に転送される。
そして、このアクセスと同時に、高速アクセス制御部
(102)はSDRAM(104)に対してリクエスト
と(アドレスA+4)を出力し、SDRAM(104)
に対して命令プリフェッチ処理を行う。このSDRAM
からのプリフェッチ命令コードはデータバス(17)を
介してCPU(99)に転送される。この命令用メモリ
(103)とSDRAM(104)からの命令コード供
給は、CPU(99)が最速で命令処理を行った場合で
もCPUのウェイトが発生しないように調整されてい
る。また、CPU(99)から内蔵メモリ(41)に対
して、データアクセスであるリクエストとそのアドレス
B(105)が入力されると、高速アクセス制御部(1
02)は命令用メモリ(103)にアクセスすることな
く、このリクエストとアドレスBでSDRAM(10
4)に対してアクセスを行う。そして、このアクセスが
ライトの場合は、データバス(17)からSDRAM
(104)にデータが書き込まれる。またこのアクセス
がリードの場合は、SDRAM(104)からのデータ
はデータバス(17)に出力されて、CPU(99)に
転送されると共に、経路(111)によりデータキャッ
シュメモリへの登録にも使用される。
【0048】実施の形態3.上記実施の形態2の高速ア
クセス制御部(102)を実施の形態1の計算機システ
ムに導入し、アドレス不連続命令の検出を、実行中の命
令が記憶されているアドレスと、次命令が記憶されてい
るアドレスとを入力し、上記二つのアドレス比較するこ
とによって、次命令がアドレス不連続命令であることに
よって検出することも可能である。この場合、高速アク
セス制御部は、不連続信号21によらないで、アドレス
不連続命令を検出することになる。
【0049】実施の形態4.上記実施の形態1の高速ア
クセス制御部(2)を実施の形態2のシステムLSIに
導入し、アドレス不連続命令の検出を、分岐命令をはじ
めとする、予め設定した所定の基準によって判断するこ
とも可能である。この場合、高速アクセス制御部は、中
央演算処理装置(99)に備えられている命令デコード
部(図6には記載していないが、図1と同様に備えられ
ている)から不連続信号を受け取り、命令用メモリへア
クセスすることになる。命令デコード部は、アドレス不
連続命令を検出し、不連続信号21を生成して高速アク
セス制御部に出力する動作は、実施の形態1と同様であ
る。また、命令デコード部が検出するアドレス不連続命
令は、予め、システム設計者によって定められる。実施
の形態では、分岐命令を一例として取り上げたが、これ
に限られるわけではないことは、実施の形態1で行った
説明と同様である。
【0050】
【発明の効果】この発明に係るメモリアクセス方式によ
れば、実行する次の命令の命令コードが記憶されている
アドレスが不連続となる場合でも、中央演算処理装置
は、高速に命令を取得し、命令を実行することができ
る。
【0051】この発明によれば、従来のキャッシュメモ
リを使用した計算機と比べ、命令を実行する速度を低下
させることなく、高価なキャッシュメモリの容量を少な
くするとことができる。
【0052】また、この発明によれば、分岐命令等のア
ドレスが連続していない命令を高速に実行することがで
きる。
【0053】この発明によれば、命令コードの記憶され
ているアドレスが連続していない命令を高速に実行する
ことができる。
【0054】この発明によれば、あらたにアドレス不連
続命令を検出した場合には、命令用メモリに登録するこ
とができる。
【0055】この発明によれば、命令用メモリに記憶し
ている命令コードを一時的に格納し、順次実行すること
ができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のシステム構成の一
例を表わした図である。
【図2】 この発明の実施の形態1の命令用メモリの1
エントリの詳細の一例を表わした図である。
【図3】 この発明の実施の形態1の高速アクセス制御
部の命令フェッチ及び命令プリフェッチ処理の動作を表
わした図である。
【図4】 この発明の実施の形態1において、命令用メ
モリヒットした場合の命令フェッチのタイミングチャー
トの一例を示した図である。
【図5】 この発明の実施の形態1において、命令コー
ドが命令用メモリに登録される一例を示した図である。
【図6】 この発明の実施の形態2のシステム構成の一
例を表わした図である。
【図7】 この発明の実施の形態2のシステムLSIに
備えられた内蔵メモリの詳細の一例を表わした図であ
る。
【図8】 従来のキャッシュメモリを用いた計算機シス
テムの一例である。
【図9】 プログラムの一例と、命令コードが記憶装置
に記憶されている状態を表わした図である。
【図10】 従来のキャッシュメモリを用いた計算機シ
ステムにおいて、命令コードがキャッシュメモリに登録
される一例を表わした図である。
【符号の説明】
1,99 中央演算処理装置(CPU)、2,102
高速アクセス制御部、3,1013 セレクタ1、4
命令キュー、5 セレクタ3、6,13,17,19,
112,1017,1019,1025,1026 デ
ータバス、7,1012 バスインターフェイスユニッ
ト(BIF)、9,1014 セレクタ2、10,10
15 ドライバ、11 命令デコード部、12,102
0 命令フェッチアドレス、13,1021 オペラン
ドデータアドレス、14 命令用メモリヒット、15,
1023 データキャッシュヒット、16 登録処理制
御信号、18,105,1018 アドレスバス、2
0,103 命令用メモリ、21 不連続信号、33,
122,1055,1075 アドレス比較器、34タ
グアドレス、35 モード、36 分岐ターゲットデー
タ、39,1056,1076 出力制御部、40 メ
インメモリ(主記憶装置)、41 内臓メモリ、100
システムLSI、101 命令/データアクセス制御
部、104SDRAM、120 レジスタREGZ、1
21 インクリメンタINC2、1000 CPU、1
001 命令キャッシュメモリ、1002 データキャ
ッシュメモリ、1003 メインメモリ(DRAM)、
1011 キャッシュ制御部、1022 命令キャッシ
ュヒット、1024 キャッシュ登録信号、1051,
1071 ラインデコード、1052,1072 タグ
部、1053,1073 モード部、1054,107
4 データ部、1058,1078 タグアドレス、1
059,1079 キャッシュデータ、1060,10
80 モードデータ。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令コードにより記述されたプロ
    グラムを記憶する主記憶装置と、 上記主記憶装置に記憶されたプログラムを読み込み、読
    み込んだプログラムに記述された命令コードに従って命
    令を実行する中央演算処理装置と、 上記主記憶装置と比べて高速に読み込み可能であり、上
    記中央演算処理装置が実行中の命令の次に実行する次命
    令の命令コードが記憶されているアドレスが、実行中の
    命令の命令コードが記憶されているアドレスと連続して
    いないアドレス不連続命令について、上記アドレス不連
    続命令の命令コードを記憶する命令用メモリと、 次命令がアドレス不連続命令であることを検出し、アド
    レス不連続命令の場合には、上記命令用メモリに記憶さ
    れた上記アドレス不連続命令の命令コードを検索して命
    令用メモリからアドレス不連続命令の命令コードを取得
    し、取得した命令コードを中央演算処理装置に転送する
    高速アクセス制御部とを備えたことを特徴とするメモリ
    アクセス方式。
  2. 【請求項2】 上記高速アクセス制御部は、アドレス不
    連続命令の命令コードが上記命令用メモリに記憶されて
    いなかった場合は、主記憶装置に記憶されたアドレス不
    連続命令の命令コードを一つ以上読み込み、読み込んだ
    一つ以上の命令コードを一組のアドレス不連続命令とし
    て上記命令用メモリへ書き込むことを特徴とする請求項
    1記載のメモリアクセス方式。
  3. 【請求項3】 中央演算処理装置は、命令をデコードす
    る命令デコード部を備え、 上記命令デコード部は、次命令がアドレス不連続命令で
    あることを所定の基準に基づいて検出し、次命令がアド
    レス不連続命令であることを検出すると、次命令がアド
    レス不連続命令であることを通知する不連続信号を生成
    し、生成した不連続信号を上記高速アクセス制御部へ出
    力し、 上記高速アクセス制御部は、上記不連続信号を入力し、
    上記不連続信号によって次命令がアドレス不連続命令で
    あることを検出することを特徴とする請求項1または2
    記載のメモリアクセス方式。
  4. 【請求項4】 上記高速アクセス制御部は、実行中の命
    令が記憶されているアドレスと、次命令が記憶されてい
    るアドレスとを入力し、上記二つのアドレス比較するこ
    とによって、次命令がアドレス不連続命令であることを
    検出することを特徴とする請求項1または2記載のメモ
    リアクセス方式。
  5. 【請求項5】 上記アドレス不連続命令は、分岐命令を
    含むことを特徴とする請求項3記載のメモリアクセス方
    式。
  6. 【請求項6】 上記高速アクセス制御部は、上記命令用
    メモリが一組のアドレス不連続命令を記憶するのに要す
    る記憶領域のサイズを、上記アドレス不連続命令のアド
    レスへ加算し、加算したアドレスを中央演算処理装置へ
    出力し、 中央演算処理装置は、上記アドレスを入力し、入力した
    アドレスを用いて主記憶装置へ命令コードの読み込みを
    行うことを特徴とする請求項1から5いずれかに記載の
    メモリアクセス方式。
  7. 【請求項7】 上記中央演算処理装置は、上記命令用メ
    モリまたは主記憶装置から読み込んだ命令コードを一時
    的に記憶する命令キューを備えたことを特徴とする請求
    項1から6いずれかに記載のメモリアクセス方式。
  8. 【請求項8】 プログラムを記憶できる第一の記憶部
    と、アクセスする速度は第一の記憶部より高速であるが
    第一の記憶部より少量のプログラムを記憶できる第二の
    記憶部とを備えた記憶装置と、 上記記憶装置に記憶されたプログラムを読み込み、読み
    込んだプログラムに記述された命令コードに従って命令
    を実行する中央演算処理装置とを備え、 上記第一の記憶部は、プログラム全体を記憶し、 上記第二の記憶部は、上記中央演算処理装置が実行中の
    命令の次に実行する次命令の命令コードが記憶されてい
    るアドレスが、実行中の命令の命令コードが記憶されて
    いるアドレスと連続していないアドレス不連続命令につ
    いて、上記アドレス不連続命令の命令コードを記憶し、 さらに、上記記憶装置は、次命令がアドレス不連続命令
    であることを検出し、アドレス不連続命令の場合には、
    上記第二の記憶部に記憶された上記アドレス不連続命令
    の命令コードを検索して第二の記憶部からアドレス不連
    続命令の命令コードを取得し、取得した命令コードを中
    央演算処理装置に転送する高速アクセス制御部とを備え
    たことを特徴とするメモリアクセス方式。
  9. 【請求項9】 上記高速アクセス制御部は、アドレス不
    連続命令の命令コードが上記第二の記憶部に記憶されて
    いなかった場合は、第一の記憶部に記憶されたアドレス
    不連続命令の命令コードを一つ以上読み込み、読み込ん
    だ一つ以上の命令コードを一組のアドレス不連続命令と
    して上記第二の記憶部へ書き込むことを特徴とする請求
    項8記載のメモリアクセス方式。
  10. 【請求項10】 中央演算処理装置は、命令をデコード
    する命令デコード部を備え、 上記命令デコード部は、次命令がアドレス不連続命令で
    あることを所定の基準に基づいて検出し、次命令がアド
    レス不連続命令であることを検出すると、次命令がアド
    レス不連続命令であることを通知する不連続信号を生成
    し、生成した不連続信号を上記高速アクセス制御部へ出
    力し、 上記高速アクセス制御部は、上記不連続信号を入力し、
    上記不連続信号によって次命令がアドレス不連続命令で
    あることを検出することを特徴とする請求項8または9
    記載のメモリアクセス方式。
  11. 【請求項11】 上記高速アクセス制御部は、実行中の
    命令が記憶されているアドレスと次命令が記憶されてい
    るアドレスとを入力し、上記二つのアドレスを比較する
    ことによって、次命令がアドレス不連続命令であること
    を検出することを特徴とする請求項8または9記載のメ
    モリアクセス方式。
  12. 【請求項12】 上記記憶装置と、中央演算処理装置と
    は、システムLSI(Large−Scale Int
    egration)に内蔵されていることを特徴とする
    請求項1または8記載のメモリアクセス方式。
JP32240199A 1999-11-12 1999-11-12 メモリアクセス方式 Withdrawn JP2001142698A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32240199A JP2001142698A (ja) 1999-11-12 1999-11-12 メモリアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32240199A JP2001142698A (ja) 1999-11-12 1999-11-12 メモリアクセス方式

Publications (1)

Publication Number Publication Date
JP2001142698A true JP2001142698A (ja) 2001-05-25

Family

ID=18143261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32240199A Withdrawn JP2001142698A (ja) 1999-11-12 1999-11-12 メモリアクセス方式

Country Status (1)

Country Link
JP (1) JP2001142698A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052518A (ja) * 2006-08-24 2008-03-06 Digital Electronics Corp Cpuシステム
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム
WO2013121516A1 (ja) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 データ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052518A (ja) * 2006-08-24 2008-03-06 Digital Electronics Corp Cpuシステム
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム
WO2013121516A1 (ja) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 データ処理装置
US9542190B2 (en) 2012-02-14 2017-01-10 Renesas Electronics Corporation Processor with fetch control for stoppage

Similar Documents

Publication Publication Date Title
US6526471B1 (en) Method and apparatus for a high-speed memory subsystem
CA1332248C (en) Processor controlled interface with instruction streaming
US6978350B2 (en) Methods and apparatus for improving throughput of cache-based embedded processors
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
EP0700003B1 (en) Data processor with controlled burst memory accesses and method therefor
JP2000029780A (ja) メモリ・ペ―ジ管理
JP3732518B2 (ja) スペキュラティブなシステムメモリ読取りを行う方法および装置
JP2773471B2 (ja) 情報処理装置
US5938761A (en) Method and apparatus for branch target prediction
US5594884A (en) Cache memory system having a plurality of ports
US20030196072A1 (en) Digital signal processor architecture for high computation speed
US5287483A (en) Prefetched operand storing system for an information processor
JP2000056970A (ja) 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路、及び、記録媒体
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
JP2001142698A (ja) メモリアクセス方式
JPH07121443A (ja) 情報処理システム及びその動作方法
JPH11232171A (ja) 情報処理システム
US20040103267A1 (en) Data processor having cache memory
JP2851777B2 (ja) バス制御方法及び情報処理装置
JP4037806B2 (ja) キャッシュメモリ装置
JP3169878B2 (ja) メモリ制御回路
JPH0210450A (ja) キヤツシユメモリの先行フエツチ制御方式
JP2001154845A (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH0554645A (ja) メモリ制御装置およびメモリ制御コード作成装置
JPH01286058A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051011

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070206