JP2003131943A - 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム - Google Patents

統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム

Info

Publication number
JP2003131943A
JP2003131943A JP2001327733A JP2001327733A JP2003131943A JP 2003131943 A JP2003131943 A JP 2003131943A JP 2001327733 A JP2001327733 A JP 2001327733A JP 2001327733 A JP2001327733 A JP 2001327733A JP 2003131943 A JP2003131943 A JP 2003131943A
Authority
JP
Japan
Prior art keywords
data
bank
cache memory
instruction
address
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.)
Granted
Application number
JP2001327733A
Other languages
English (en)
Other versions
JP4068828B2 (ja
Inventor
Fumio Arakawa
文男 荒川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001327733A priority Critical patent/JP4068828B2/ja
Publication of JP2003131943A publication Critical patent/JP2003131943A/ja
Application granted granted Critical
Publication of JP4068828B2 publication Critical patent/JP4068828B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 本発明の課題は、従来分離型でのみ可能であ
った命令フェッチとデータアクセスの同時実行を統合型
キャッシュメモリで達成することである。また、同一の
プロセッサで統合型と分離型の双方を実現することであ
る。 【解決手段】 統合型キャッシュメモリを複数ポート化
することによって解決される。複数ポート化はバンクイ
ンタリーブ方式や複数ウェイ方式を改良することにより
実現する。具体的には、命令フェッチとデータアクセス
を独立に処理可能なプロセッサと、該プロセッサからの
アクセス要求に呼応して動作するキャッシュメモリを有
するプロセッサシステムを備え、キャッシュメモリを複
数のマルチプレクサ及び複数のアドレスの一部によって
指定される複数バンクによって構成し、各バンクを1ポ
ートキャッシュとし、命令フェッチ要求とデータアクセ
ス要求が異なるバンクに対するものであれば同時処理、
同一バンクに対する場合は逐次処理するプロセッサシス
テムを提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリを
有するプロセッサシステムに係わり、特に複数のコマン
ドを処理可能なプロセッサと該プロセッサからのアクセ
ス要求に応じて動作しうるキャッシュメモリを有するプ
ロセッサシステムに関する。更に、統合型および分離型
の双方のキャッシュメモリシステムを同一アーキテクチ
ャで実現することを可能にし、また、統合型キャッシュ
メモリシステムを分離型並に高速化することを可能にす
るものである。
【0002】
【従来の技術】図1にキャッシュメモリアーキテクチャ
の変遷の概略を示す。キャッシュメモリ導入以前は
(1)のようにプロセッサCPUとメインメモリMMは
直接命令およびデータをやり取りしていた。その後、メ
インメモリMMの容量増大およびプロセッサCPUの高
速化によって、メインメモリMMの速度がプロセッサシ
ステムの性能を律速するようになった。
【0003】そこで、(2)のようにメインメモリMM
に比べて小容量かつ高速なのキャッシュメモリUCをプ
ロセッサCPUとメインメモリMMの間に配置して性能
を向上させた。初期のキャッシュメモリUCは命令とデ
ータの双方を扱う統合型であった。
【0004】その後、(3)のようにプロセスの微細化
によってプロセッサCPUとキャッシュメモリUCを同
一チップ上に集積することが可能になった。これによっ
てプロセッサCPUとキャッシュメモリUCを結ぶ信号
線数を大幅に増加させることが可能となり、(4)のよ
うに、キャッシュメモリUCを命令キャッシュICとデ
ータキャッシュDCに分離して同時アクセスを可能にし
た、ハーバードアーキテクチャが登場した。そして、高
性能なキャッシュアーキテクチャはハーバードアーキテ
クチャであるということが常識となった。
【0005】その後、スーパスカラまたはVLIW
(Very Long Instruction Wo
rd) アーキテクチャが登場し、同時に複数のデータ
アクセスを行うことが可能となった。このため、(5)
のようにデータキャッシュDCを複数ポート化したプロ
セッサが登場した。この複数ポート化はバンクインター
リーブ方式によって異なるバンクへのアクセスのみ同時
実行するのが一般的である。
【0006】また、統合型キャッシュメモリアーキテク
チャがハーバードアーキテクチャより低コストであるこ
とから、同一のプロセッサファミリにおいて、ローエン
ド版は統合型、ハイエンド版はハーバードアーキテクチ
ャという場合がある。例えば、「Microproce
ssor Report Vol.9, no.3,3
/6/95, p.12」記載のSH−3と「Micr
oprocessor Report Vol.10,
no.14, 10/28/96, pp.32−3
5」記載のSH−4は同じSuperH シリーズのプ
ロセッサであるが、前者は統合型、後者はハーバードア
ーキテクチャである。
【0007】近年、プロセッサに依存しないプログラミ
ング言語としてJAVA(登録商標)が急速に普及しつ
つある。JAVAは命令の書き換えを行う言語である。
初回に実行した複雑な命令を、一度実行することによっ
て確定した情報をもとに高速実行する命令に書き換え
る。更に、JAVAで書かれたプログラムを高速実行す
るために、実行頻度の高いルーチンを検出してプロセッ
サ固有の機械語のプログラムに書き換えて高速実行する
方式もJIT (Just−in−time) コンパ
イル方式として一般化している。
【0008】キャッシュメモリによる性能向上はメモリ
アクセスの空間的時間的局所性を前提としている。した
がって、該局所性がない場合は有効に働かない。例え
ば、「Microprocessor Report
Vol.13, no.12,9/13/99, pp
1,6−10」記載のネットワークプロセッサIXP1
200はデータキャッシュを内蔵せず、外付けのSRA
MやSDRAMに直接アクセスする。また、「Micr
oprocessor Report Vol.13,
no.5, 4/19/99, pp1,6−11」
記載のエモーションエンジンEEのベクトル浮動小数点
ユニットVPUはキャッシュの代わりに専用のRAMを
持っている。そして、ソフトウェアによって制御される
ダイレクトメモリアクセスユニットが該RAMへのデー
タアクセスを行う。
【0009】
【発明が解決しようとする課題】上記のようなキャッシ
ュアーキテクチャの歴史的変遷の結果、性能を重視する
場合はハーバードアーキテクチャ、コストを重視する場
合は統合型キャッシュメモリアーキテクチャとすること
が常識となっている。しかし、プロセス微細化に伴う集
積度の向上により、統合型アーキテクチャとハーバード
アーキテクチャのコストの差がチップ全体のコストに比
べて小さくなってきており、2種類のキャッシュメモリ
アーキテクチャを製品別に作り分けるメリットがなくな
ってきている。
【0010】また、上記JAVAのように命令の書き換
えを行う言語が普及してくると、ハーバードアーキテク
チャが必ずしも良いとは限らない。ハーバードアーキテ
クチャにおいては命令の書き換えをハードウェアで検出
しないのが一般的である。このため、命令を書き換えた
場合はソフトウェア責任で書き換え前の命令が実行され
ないことを保証しなければならない。命令書き換え時に
は、書き換えられる命令はデータとして扱われるため、
書き換えた命令はデータキャッシュDCに格納される。
この時、書き換え前の命令が命令キャッシュICに存在
しても更新されない。
【0011】ソフトウェアは、命令キャッシュIC上の
書き換え前命令をクリアし、データキャッシュDC上の
書き換え後、命令をメインメモリMMに書き戻してか
ら、書き換え後の命令を実行する。すると、ハードウェ
アは書き換え後の命令をメインメモリMMからフェッチ
して実行する。尚、命令の書き換えをハードウェアで検
出したとしても、上記ソフトウェア処理をハード化する
だけなので効率的な処理は困難である。
【0012】一方、統合型キャッシュメモリアーキテク
チャでは命令書き換えによってキャッシュメモリUC上
の命令が書き換えられる。したがって、命令書き換え後
にキャッシュメモリUCから命令フェッチすれば書き換
え後命令をフェッチすることが出来る。このためには、
通常のパイプライン方式のプロセッサでは、命令書き換
え後にパイプライン上に存在する実行中の命令をキャン
セルするだけでよい。したがって、命令書き換えをサポ
ートするには統合型キャッシュメモリアーキテクチャの
方が適している。
【0013】プロセス微細化に伴う集積度の向上によ
り、小規模システムではメインメモリMMをオンチップ
化することが可能となってきている。また、上記エモー
ションエンジンEEのように命令またはデータをオンチ
ップメモリに載せ、ダイレクトメモリアクセス等によ
り、ソフトウェアであらかじめオンチップメモリに命令
やデータを転送して、実際に使用する際に確実に高速ア
クセスすることも可能である。こうすることにより、使
用する命令やデータが予測可能であれば、メモリアクセ
スに空間的時間的局所性がなくても高速化が可能であ
る。このような状況では、キャッシュメモリが不要であ
ったり、命令キャッシュとデータキャッシュのうち一方
のみが必要であったりする。
【0014】更に、プロセッサシステムが、メインフレ
ーム、ワークステーション、PC等に限定されていた時
代から、携帯電話、デジタル家電、自動車といった多種
多様な製品に搭載される時代となり、用途に応じてキャ
ッシュメモリの最適な構成も多様化している。したがっ
て、同一プロセッサで多様なキャッシュメモリ構成を取
れることも重要になってきている。
【0015】本発明が解決しようとする第1の課題は、
従来、ハーバードアーキテクチャでのみ達成可能であっ
た命令フェッチとデータアクセスの同時実行を統合型キ
ャッシュメモリアーキテクチャで達成することである。
これによって、高性能と命令書き換えの容易性とを同時
に達成することが可能となる。また、命令とデータの一
方を重点的にキャッシングしたいアプリケーションの場
合でも、ハーバードアーキテクチャのように一方のキャ
ッシュが無駄になることなく、全容量を活用することが
出来る。
【0016】本発明が解決しようとする第2の課題は、
同一のプロセッサで統合型キャッシュメモリアーキテク
チャとハーバードアーキテクチャの双方を実現すること
である。そして更に、同一プロセッサで多様なキャッシ
ュメモリ構成を実現することである。
【0017】
【課題を解決するための手段】上記第1の課題は、統合
型キャッシュメモリを複数ポート化することによって解
決される。これによって命令フェッチとデータアクセス
要求を同時に処理することが可能となり、ハーバードア
ーキテクチャと同等の性能が達成される。但し、純粋な
複数ポート化はハードウェア量を増大させ、同一面積で
実現できるキャッシュメモリ容量が小さくなってしま
う。そこで、キャッシュメモリをアドレスの一部によっ
て指定される複数バンクによって構成し、各バンクを1
ポートキャッシュとし、命令フェッチとデータアクセス
要求が異なるバンクに対するものであれば同時処理、同
一バンクに対する場合は逐次処理することにより、完全
な複数ポートキャッシュメモリよりも、ハードウェア量
を削減し、キャッシュメモリ容量を維持することが出来
る。プロセス微細化に伴ってキャッシュメモリの大容量
化が可能となっているが、大容量化にはメモリマットの
分割が必要であり、分割されたメモリマットをバンクに
割当てれば、バンク分割に伴うコストの増大は回避でき
る。
【0018】上記第2の課題は、上記ポートまたはバン
クの指定にアドレスの一部だけでなく命令フェッチとデ
ータアクセス要求の識別信号も用いることによって解決
される。統合型キャッシュメモリアーキテクチャとして
使用する場合はアドレスの一部を、ハーバードアーキテ
クチャとして使用する場合は識別信号を使用する。この
ようにポートまたはバンク指定に使用する信号を切替え
ることにより、2つのキャッシュメモリアーキテクチャ
を同一のプロセッサで実現する。更に、信号切替の仕方
によってハーバードアーキテクチャの命令キャッシュと
データキャッシュの容量配分を変えることも可能であ
る。また、複数ポート化を複数のウェイに対して異なる
アドレスでアクセスできるようにすることによっても、
同様に上記第1および第2の課題の解決が可能である。
【0019】さらに、上記課題を解決する為に、本発明
は複数のコマンドを独立に処理可能なプロセッサと、該
プロセッサからのアクセス要求に応じて動作するキャッ
シュメモリを有するプロセッサシステムにおいて、前記
キャッシュメモリが複数個のポートを有し、該複数個の
ポートを介して前記プロセッサから送信される命令フェ
ッチを含む複数の制御コマンド及び複数のアドレス信号
を同時に処理しうることを特徴とするプロセッサシステ
ムを提供することにある。
【0020】さらに、本発明は命令フェッチとデータア
クセスを独立に処理可能なプロセッサと、該プロセッサ
からのアクセス要求に呼応して動作するキャッシュメモ
リを有するシステムにおいて、前記キャッシュメモリを
複数のセレクタ及び複数のアドレスの一部によって指定
される複数バンクによって構成し、各バンクを1ポート
キャッシュとし、前記命令フェッチ要求と前記データア
クセス要求が異なるバンクに対するものであれば同時処
理、同一バンクに対する場合は逐次処理することを特徴
とするプロセッサシステムを提供することにある。
【0021】さらに、本発明は複数のバンクを備え、該
複数のバンクを制御するコントローラを有し、該コント
ローラは前記複数のバンクの各々に命令或いはデータの
書き込み又は読み出しを行う為の制御信号を生成し、前
記コントローラの制御により該制御信号を前記複数のバ
ンクに供給し、前記複数のバンク内の異なるバンクに対
し前記命令或いはデータの書き込み或いは読み出し動作
を同時に行い、同一のバンクに対し、前記命令或いはデ
ータの書き込み或いは読み出し動作を逐次に行うことを
特徴とするキャッシュメモリを提供することにある。
【0022】
【発明の実施の形態】以下、本発明の各実施例を図を用
いて説明する。各実施例の図における同一符号は同一物
または相当物を示す。図2は本発明を適用したプロセッ
サシステムの例である。プロセッサLSIおよびメイン
メモリMMから成る。プロセッサLSIは中央処理装置
CPU、キャッシュメモリCM、外部メモリインタフェ
イスEMI、および周辺モジュールPMから成り、内部
バスIBで接続されている。中央処理装置CPUは命令
フェッチユニットIFU、実行ユニットEXU、および
バスインタフェイスユニットBIUから成る。又、当該
プロセッサ及びキャッシュメモリCMは同一のLSIチ
ップ上に集積されている。
【0023】中央処理装置CPUの基本動作は以下の通
りである。まず、命令フェッチユニットIFUがキャッ
シュメモリCMに命令アドレスAIと共に命令フェッチ
要求REQIを出す。キャッシュメモリCMは要求RE
QIに応じて読出した命令RIを命令フェッチユニット
IFUに返す。命令フェッチユニットIFUは命令RI
を実行ユニットEXUに供給する。実行ユニットEXU
は命令RIをデコードし実行する。デコードした命令が
メモリ読出し命令の場合は、データアドレスADと共に
データアクセス要求REQDを出す。キャッシュメモリ
CMは要求REQDに応じて読出したデータRDを実行
ユニットEXUに返す。また、デコードした命令がメモ
リ書込み命令の場合は、データアドレスADおよび書込
みデータWDと共にデータアクセス要求REQDを出
す。キャッシュメモリCMは要求REQDに応じてデー
タWDを書込む。
【0024】命令フェッチ要求REQIまたはデータア
クセス要求REQDがキャッシュミスした場合は、バス
インタフェイスユニットBIUが該要求に関連する命令
アドレスAI、データアドレスADおよび書込みデータ
WD等を受け取り、内部バスIBを経由して外部メモリ
インタフェイスEMIに外部メモリフェッチ要求を出
す。外部メモリインタフェイスEMIは要求に応じてメ
インメモリMMにアドレスAを出力して外部メモリフェ
ッチ要求を出し、メインメモリMMはこれに呼応してデ
ータDを返す。外部メモリインタフェイスEMIは内部
バスIBを経由してデータDをバスインタフェイスユニ
ットBIUに返す。バスインタフェイスユニットBIU
は、外部アドレスAX、書込みデータWXと共に外部ア
クセス要求REQXを出し、キャッシュメモリCMは外
部アクセス要求REQX(外部からのアクセス要求であ
る)を処理するポートを有し、要求REQXに応じて書
込みデータWXを書込む。
【0025】中央処理装置CPUにおいてパイプライン
動作が行われると、命令フェッチユニットIFUは実行
ユニットEXUの命令処理と同時に後続命令のフェッチ
を行う。更に、実行ユニットEXUのデータアクセスが
ノンブロッキングであると、キャッシュメモリCMのデ
ータアクセスミスによる外部メモリアクセスと同時に後
続命令によるデータアクセスが行われる。このため、キ
ャッシュメモリCMには、命令フェッチ要求とデータア
クセス要求、或いは命令フェッチ要求REQI、データ
アクセス要求REQD、および外部アクセス要求REQ
Xの内の何れか1組から成る複数の制御コマンド、及び
命令アドレス信号AIとデータアドレス信号AD、或い
は信号AI、信号ADと外部アドレス信号AXの内の何
れか1組から成る複数のアドレス信号を同時に処理する
能力が必要である。
【0026】図3は本発明を適用したキャッシュメモリ
CMの第1の実施例である。キャッシュメモリCMはキ
ャッシュ制御レジスタCCR、バンク信号生成部BKG
(或いは信号生成部)、CMを制御するキャッシュ制御
部CC、およびキャッシュ本体から成る。BKGは複数
のアドレス信号に基づき、CCに与える複数の制御信号
(BKI,BKD,BKX)を生成する。
【0027】キャッシュメモリ本体は、複数のアドレス
信号(AI,AD,及びAX)の各々における該複数の
アドレスの一部で有る特定のビットによって指定される
4つのバンクBK0〜BK3に分割されており異なるバ
ンクへの同時アクセスが可能である。
【0028】キャッシュメモリ内の複数バンクの各々を
指定する際に、上記特定のビットの代わりに命令フェッ
チ要求又はデータアクセス要求、及び上記複数の制御信
号の入力に基づき、キャッシュメモリ内に有するキャッ
シュ制御部にて生成される複数のアドレス選択制御信号
及び書き込みデータ選択制御信号の制御により複数のセ
レクタの各々を介してバンクを指定することにより、命
令データ分離型キャッシュメモリとして動作する。
【0029】バンクBK0〜BK3はそれぞれアクセス
アドレスA0〜A3、書込み時は更に書込みデータW0
〜W3を受取って、読出しまたは書込み動作を行い、読
出し時には読出しデータR0〜R3を出力する。バンク
BK0〜BK3の各々は1ポートキャッシュと見なされ
る。アクセスアドレスA0〜A3はそれぞれアドレスマ
ルチプレクサ(又はセレクタ)AM0〜AM3におい
て、アドレス選択制御信号CA0〜CA3によって、ア
ドレスAI、AD、またはAXから選択される。書込み
データW0〜W3はそれぞれ書込みデータマルチプレク
サ(又はセレクタ)WM0〜WM3において、書込みデ
ータ選択制御信号CW0〜CW3によって、書込みデー
タWDまたはWXから選択される。読出しデータRI、
RD、およびRXはそれぞれ読出しデータマルチプレク
サ(又はセレクタ)RMI、RMD、およびRMXにお
いて、読出しデータ選択制御信号CRI、CRD、およ
びCRXによって、読出しデータR0〜R3から選択さ
れる。尚、図中の各マルチプレクサの入力信号に振られ
た番号は、その入力を選択する場合にアサートされる選
択制御信号のビット番号である。
【0030】図4は第1の実施例のキャッシュ制御部C
Cの詳細である。バンク信号生成部BKGからの命令バ
ンクBKI、データバンクBKD、および外部バンクB
KXと、命令フェッチ要求REQI、データアクセス要
求REQD、および外部アクセス要求REQXとから、
キャッシュ本体の各マルチプレクサの制御信号を生成す
る。
【0031】詳細に説明すると、キャッシュ制御部は命
令フェッチ要求、データアクセス要求及び複数の制御信
号(BKI,BKD,BKX)の入力に対し、制御信号
に基づいて指定されたバンクに既にデータアクセス要求
が割り当てられた場合は、更なる割り当てを実行しない
ように遅延信号を生成し、制御信号に基づいて指定され
たバンクに未だデータアクセス要求が割り当てられてい
ない場合は、複数のアドレス選択制御信号又は書き込み
データ選択制御信号を生成する。
【0032】図3の読出しデータ選択制御信号CRI、
CRD、およびCRXは4入力マルチプレクサを制御す
る4ビットの信号である。それぞれ2ビットの命令バン
クBKI、データバンクBKD、および外部バンクBK
Xを単純にデコードすれば生成できるので図示していな
い。
【0033】アドレス選択制御信号CA0〜CA3およ
び書込みデータ選択制御信号CW0〜CW3は命令フェ
ッチ、データアクセス、および外部アクセスの優先度を
決定しなければ生成できない。最も単純な優先度決定方
式はプログラム本来の逐次実行順序を守ることである。
外部アクセスは先行するキャッシュアクセスのミスによ
って生じるので最も逐次実行順序が早い。また、命令フ
ェッチは後続命令の準備であり最も逐次実行順序が遅
い。したがって、優先度は第1が外部アクセス、第2が
データアクセス、第3が命令フェッチである。
【0034】しかしながら、高度に最適化されたプログ
ラムでは命令やデータをプリフェッチ命令等によって事
前にメインメモリMMからキャッシュメモリCMにキャ
ッシングし、実際に使用する際にキャッシュミスが起こ
らないようにする。このようなプログラムでは外部アク
セスの優先度を下げた方が性能は向上する。ジャストオ
ンタイムでキャッシングするようにプログラムを最適化
することは困難なので、少し余裕時間を見てキャッシン
グした場合、本来必要な時刻より早くキャッシングする
ので、これを待たせて内部動作をストールさせない方が
良いからである。そこで、本実施例では優先度を第1が
データアクセス、第2が命令フェッチ、第3が外部アク
セスとする。
【0035】図3に示すアクセスアドレスA0〜A3は
アドレスAI、AD、またはAXから選択されるので、
アドレスマルチプレクサAM0〜AM3は3入力であ
り、制御信号CA0〜CA3は3ビットである。そこ
で、制御信号のビット番号は命令アドレスに2、データ
アドレスに1、外部アドレスに0を割当てる。
【0036】まず、図4に示す通り、最優先のデータア
クセス要求REQDがアサートされたら、データバンク
BKDで指定されるバンクを割当て、アドレス選択制御
信号CA0〜CA3のうち割当てたバンクの制御信号の
ビット1をアサートする。即ち、2ビットのデータバン
クBKDをデータバンクデコーダBDDによってデコー
ドした4ビット信号のそれぞれとデータアクセス要求R
EQDのAND論理を取る。
【0037】次に、命令フェッチ要求REQIがアサー
トされたら、命令バンクBKIで指定されるバンクを割
当てる。この時、該当バンクに既にデータアクセスが割
当てられていた場合は、命令フェッチ遅延信号DLIを
アサートし、命令フェッチの割当ては行わない。割当て
を行った場合はアドレス選択制御信号CA0〜CA3の
うち割当てたバンクの制御信号のビット2をアサートす
る。即ち、2ビットの命令バンクBKIを命令バンクデ
コーダBDIによってデコードした4ビット信号のそれ
ぞれと命令アクセス要求REQIのAND論理を取り、
更に、アドレス選択制御信号CA0〜CA3のビット1
の反転信号とAND論理を取る。アドレス選択制御信号
CA0〜CA3のビット0は該当バンクにデータアクセ
スも命令アクセスも行わない場合にアサートする。即
ち、アドレス選択制御信号CA0〜CA3のビット1の
反転信号と、ビット2の元になっている命令アクセス要
求REQIと当該BDIからの信号とのAND論理を取
った信号の反転信号とのAND論理を取った信号であ
る。
【0038】また、2ビットの外部バンクBKXを外部
バンクデコーダBDXによってデコードした4ビット信
号のそれぞれと外部アクセス要求REQXのAND論理
を取った信号がアサートされて、該当バンクへの外部ア
クセス要求が出たにもかかわらず、該当バンクアドレス
として外部アドレスを選択する信号、即ち、アドレス選
択制御信号CA0〜CA3のビット0がアサートされな
い場合、必要なバンクが選択できなかったので外部アク
セス遅延信号DLXをアサートする。
【0039】図3に示す書込みデータW0〜W3は書込
みデータWDまたはWXから選択されるので、書込みデ
ータマルチプレクサWM0〜WM3は2入力であり、制
御信号CW0〜CW3は2ビットである。そこで、制御
信号のビット番号はデータアドレスに1、外部アドレス
に0を割当てる。まず、書込みデータ選択制御信号CW
0〜CW3のビット1は、アドレス選択制御信号CA0
〜CA3のビット1と同一論理である。データアクセス
がない場合は、書込みデータとして図3に示す外部書込
みデータWXを選択するので、図4に示す通り、書込み
データ選択制御信号CW0〜CW3のビット0はビット
1の反転である。
【0040】図5はバンク信号生成部BKGの第1の例
である。キャッシュメモリCMの容量を128KBと
し、4ウェイセットアソシアティブ方式とすると、1ウ
ェイ当りの容量は32KBであり、インデクスは15ビ
ットである。バンクインタリーブ方式ではバンク指定に
インデクスの一部を使用する。本実施例ではバンク数が
4なので、バンク指定に2ビット使用する。どのビット
をバンク指定に用いたときにバンク競合によるストール
頻度が最小になるかはプログラムに依存する。逆に、バ
ンク指定ビットをプログラマに公開することによって競
合を抑えたプログラムを作成することも可能である。図
5ではアドレスのビット14〜0をインデクスとし、イ
ンデクスの上位2ビットをバンク指定ビットとする。し
たがって、ビット14〜13がバンク指定ビットであ
る。
【0041】バンク信号生成部BKGは、キャッシュ制
御レジスタCCRのバンク制御フィールドBCによって
制御される。図5ではバンク制御フィールドBCは1ビ
ットで、バンクマルチプレクサBMI、BMD、および
BMXを制御して2ビットのバンク信号BKI、BK
D、およびBKXの上位ビットを選択する。本実施例で
は下位ビットは常にアドレスAI、AD、およびAXの
ビット13である。図5においてバンクマルチプレクサ
BMI、BMD、およびBMXの入力信号に振られた番
号は、該入力信号を選択する時のバンク制御フィールド
BCの値である。即ち、バンク制御フィールドBCが1
であれば、バンク信号BKI、BKD、およびBKXの
上位ビットとして、それぞれアドレスAI、AD、およ
びAXのビット14を選択する。一方、バンク制御フィ
ールドBCが0であれば、それぞれ値0、値1、および
外部データアクセス信号DAを選択する。外部データア
クセス信号DAは外部アクセスがデータ系である時にア
サートされる。
【0042】この結果、バンク制御フィールドBCが1
であれば、バンク信号BKI、BKD、およびBKXは
それぞれアドレスAI、AD、およびAXのビット14
〜13となる。したがって、キャッシュメモリCMは統
合型の4バンクインタリーブキャッシュとなる。
【0043】バンク制御フィールドBCが0であれば、
バンク信号BKIはアドレスAIのビット13の値に応
じて0または1となり、バンク信号BKDはアドレスA
Dのビット13の値に応じて2または3となり、バンク
信号BKXはアドレスAXのビット13の値に応じて、
外部データアクセス信号DAがネゲートされれば0また
は1、アサートされれば2または3となる。
【0044】したがって、命令フェッチおよび命令系外
部アクセスに対しては、バンク信号BKIおよびBKX
が常にバンク0または1を指定し、データアクセスおよ
びデータ系外部アクセスに対してはバンク信号BKDお
よびBKXが常にバンク2または3を指定する。この結
果、バンク0および1が2バンクインタリーブ命令キャ
ッシュ、バンク2および3が2バンクインタリーブデー
タキャッシュとして動作する。そして、アクセスするバ
ンクが異なれば同時アクセス可能なので、ハーバードア
ーキテクチャとなる。尚、この時アドレスのビット14
は常にタグとして使用する。バンク制御フィールドBC
が1であればビット14をタグとすることは冗長である
が誤動作はせず、バンク制御フィールドBCが0であれ
ばビット14はタグとして必要である。1ビットの冗長
性を取り除こうとするとかえって論理が複雑になり速度
が低下する。
【0045】図6はバンク生成部BKGの第2の例であ
る。通常、システムによってプログラムを置くアドレス
空間とデータを置くアドレス空間はあらかじめ決まって
いることが多いので、これら2つの空間を識別するアド
レスのビットがあれば、これをバンク指定ビットとする
ことにより、命令とデータのバンク競合を避けることが
できる。この結果、統合型の4バンクインタリーブキャ
ッシュでありながら、ハーバードアーキテクチャと同等
の性能を得ることが出来る。
【0046】図6の例ではバンク制御フィールドBCを
2ビットとし、図5のバンク制御フィールドBCが0お
よび1の場合に加えて、2および3の場合を追加してい
る。そして、バンク制御フィールドBCが2の場合には
アドレスのビット20を、3の場合にはビット24を選
択する。
【0047】この結果、プログラムサイズが1MB程度
の比較的小さいシステムではビット20を、16MB程
度のやや大きなシステムではビット24をバンク指定ビ
ットとすることにより、命令とデータのバンク競合を避
けることができる。この場合も図5の場合と同様に、ビ
ット24、20、14は常にタグとしても使用する。
【0048】図7〜9は本実施例の第1の動作例であ
る。図7はバンク生成部BKGの動作例である。図中太
い信号線はアサート、細い信号線はネゲートとなってい
る。本動作例ではキャッシュコントロールレジスタCC
Rのバンク制御フィールドBCが1で統合型キャッシュ
モードであるとする。そして、命令アドレスAI、デー
タアドレスAD、および外部アドレスAXを16進数で
00001230、00102468、001048C
0とし、命令フェッチ要求REQI、データアクセス要
求REQD、および外部アクセス要求REQXが全てア
サートされたとする。
【0049】尚、図7においてはビット14〜13の値
が明確と成るように16進数を2進数に展開してある。
バンク制御フィールドBCが1なので、命令バンクマル
チプレクサBMI、データバンクマルチプレクサBM
D、および外部バンクマルチプレクサBMXはそれぞれ
命令アドレスAI、データアドレスAD、および外部ア
ドレスAXのビット14を選択し、それぞれ0、0、お
よび1を出力する。該出力と常にバンク指定信号として
使用されるビット13とを結合した信号がバンク信号で
あるから、命令バンクBKI、データバンクBKD、お
よび外部バンクBKXはそれぞれ0、1、および2とな
る。
【0050】図8はキャッシュ制御部CCの動作例であ
る。図中太い信号線はアサート、細い信号線はネゲート
となっている。命令バンクBKI、データバンクBK
D、および外部バンクBKXはそれぞれ命令バンクデコ
ーダBDI、データバンクデコーダBDD、および外部
バンクデコーダBDXによってデコードされ、該デコー
ダ出力のそれぞれビット0、1、および2がアサートさ
れる。
【0051】命令フェッチ要求REQI、データアクセ
ス要求REQD、および外部アクセス要求REQXは全
てアサートされているので、これらの信号とのAND論
理後もアサート状態を保つ。そして優先度判定論理のA
NDゲートにより、アドレス選択制御信号はCA0のビ
ット2、CA1のビット1、CA2のビット0、CA3
のビット0がアサートされ、書込みデータ選択信号はC
W0のビット0、CW1のビット1、CW2のビット
0、CW3のビット0がアサートされる。
【0052】また、バンク競合判定論理により命令フェ
ッチ遅延DLIおよび外部アクセス遅延DLXはネゲー
トされる。また、図示していないが、読出しデータ選択
信号CRI、CRD、およびCRXは命令バンクBK
I、データバンクBKD、および外部バンクBKXの単
純デコードであるから、それぞれビット0、1、および
2がアサートされる。
【0053】図9はキャッシュメモリCMの動作例であ
る。キャッシュ制御部CCからの制御信号CTLとし
て、アドレス選択制御信号はCA0のビット2、CA1
のビット1、CA2のビット0、CA3のビット0、書
込みデータ選択信号はCW1のビット1、他CW0,
2,3のビット0、読出しデータ選択信号はCRIのビ
ット0、CRDのビット1、およびCRXのビット2が
アサートされている。
【0054】この結果、アドレスA0〜A3にはそれぞ
れ命令アドレスAI、データアドレスAD、および外部
アドレスAXが選択される。また、書込みデータW0〜
W3としては、W1には書込みデータWDが、他には書
込みデータWXが選択される。そして、読出しデータR
I、RD、およびRXにはそれぞれ読出しデータR0、
R1、およびR2が選択される。
【0055】以上のようにキャッシュコントロールレジ
スタCCRのバンク制御フィールドBCを1として統合
型キャッシュモードとし、バンク指定ビットとして使用
されるビット14〜13が異なるアドレスでアクセスす
れば、命令フェッチ要求、データアクセス要求、および
外部アクセス要求を同時に異なるバンクで処理すること
が出来る。すなわち、同時処理が実行される。
【0056】図10〜12は本実施例の第2の動作例で
ある。本動作例でもキャッシュコントロールレジスタC
CRのバンク制御フィールドBCが1で統合型キャッシ
ュモードであるとする。そして、命令アドレスAI、デ
ータアドレスAD、および外部アドレスAXを16進数
で00001230、00101357、001002
40とし、命令フェッチ要求REQI、データアクセス
要求REQD、および外部アクセス要求REQXが全て
アサートされたとする。
【0057】すると、図10のように、命令バンクマル
チプレクサBMI、データバンクマルチプレクサBM
D、および外部バンクマルチプレクサBMXは全て0を
出力する。更にビット13と結合すると、命令バンクB
KI、データバンクBKD、および外部バンクBKXは
全て0となる。
【0058】図11はキャッシュ制御部CCの動作例で
ある。命令バンクデコーダBDI、データバンクデコー
ダBDD、および外部バンクデコーダBDXの出力は全
てビット0がアサートされ、命令フェッチ要求REQ
I、データアクセス要求REQD、および外部アクセス
要求REQXとのAND論理後もアサート状態を保つ。
そして優先度判定論理のANDゲートにより、アドレス
選択制御信号としてはCA0のビット1、他CA1〜3
のビット0がアサートされ、書込みデータ選択信号とし
てはCW0のビット1、他CW1〜3のビット0がアサ
ートされる。
【0059】また、バンク競合判定論理により命令フェ
ッチ遅延DLIおよび外部アクセス遅延DLXがアサー
トされる。即ち、命令フェッチおよび外部アクセスは待
たされる。また、図示していないが、読出しデータ選択
信号CRI、CRD、およびCRXは命令バンクBK
I、データバンクBKD、および外部バンクBKXの単
純デコードであるから、全て0がアサートされる。
【0060】図12はキャッシュメモリCMの動作例で
ある。キャッシュ制御部CCからの制御信号CTLとし
て、アドレス選択制御信号はCA0のビット1、他CA
1〜3のビット0、書込みデータ選択信号はCW0のビ
ット1、他CW1〜3のビット0、読出しデータ選択信
号は全てビット0がアサートされている。
【0061】この結果、アドレスA0にはデータアドレ
スAD、他のアドレスA1からA3には外部アドレスA
Xが選択される。また、書込みデータW0には書込みデ
ータWDが、他の書込みデータW1〜W3には書込みデ
ータWXが選択される。そして、読出しデータRI、R
D、およびRXには全て読出しデータR0が選択され
る。
【0062】以上のようにキャッシュコントロールレジ
スタCCRのバンク制御フィールドBCを1として統合
型キャッシュモードとし、バンク指定ビットとして使用
されるビット14〜13が同一のアドレスでアクセスす
ると、バンク競合によりデータアクセスのみが実行さ
れ、命令フェッチおよび外部アクセスは待たされる。即
ち、逐次処理が実行される。
【0063】図13〜15は第3の動作例である。第2
の動作例と同一のアドレスによるアクセス要求を用い、
キャッシュコントロールレジスタCCRのバンク制御フ
ィールドBCを0としてハーバードアーキテクチャモー
ドとする。また、外部アクセスはデータ系のアクセスと
する。即ち外部データアクセス信号DAをアサートす
る。すると、図13のようにバンク制御フィールドBC
が0なので、命令バンクマルチプレクサBMI、データ
バンクマルチプレクサBMD、および外部バンクマルチ
プレクサBMXはそれぞれ値0、値1、および外部デー
タアクセス信号DAの値1を選択して出力する。該出力
と常にバンク指定信号として使用されるビット13とを
結合した信号がバンク信号であるから、命令バンクBK
I、データバンクBKD、および外部バンクBKXはそ
れぞれ0、2、および2となる。
【0064】図14はキャッシュ制御部CCの動作例で
ある。命令バンクデコーダBDI、データバンクデコー
ダBDD、および外部バンクデコーダBDXの出力はそ
れぞれビット0、2、および2がアサートされ、命令フ
ェッチ要求REQI、データアクセス要求REQD、お
よび外部アクセス要求REQXとのAND論理後もアサ
ート状態を保つ。そして優先度判定論理のANDゲート
により、アドレス選択制御信号はCA0のビット2、C
A1のビット0、CA2のビット1、CA3のビット0
がアサートされ、書込みデータ選択信号はCW2のビッ
ト1、他CW0,1,3のビット0がアサートされる。
また、バンク競合判定論理により外部アクセス遅延DL
Xがアサートされる。即ち、外部アクセスは待たされ
る。また、図示していないが、読出しデータ選択信号C
RI、CRD、およびCRXは命令バンクBKI、デー
タバンクBKD、および外部バンクBKXの単純デコー
ドであるから、それぞれビット0、2、および2がアサ
ートされる。
【0065】図15はキャッシュメモリCMの動作例で
ある。キャッシュ制御部CCからの制御信号CTLとし
て、アドレス選択制御信号はCA0のビット2、CA1
のビット0、CA2のビット1、CA3のビット0が、
書込みデータ選択信号はCW2のビット1、他CW0,
1,3のビット0、読出しデータ選択信号はCRIのビ
ット0、CRDのビット2、およびCRXのビット2が
アサートされている。
【0066】この結果、アドレスA0〜A3にはそれぞ
れ命令アドレスAI、外部アドレスAX、データアドレ
スAD、および外部アドレスAXが選択される。また、
書込みデータW0〜W3に関しては、W2には書込みデ
ータWDが、他W0,1,3には書込みデータWXが選
択される。そして、読出しデータRI、RD、およびR
Xにはそれぞれ読出しデータR0、R2、およびR2が
選択される。
【0067】以上のようにキャッシュコントロールレジ
スタCCRのバンク制御フィールドBCを0としてハー
バードアーキテクチャモードとすると、第2の動作例と
同一アドレスでアクセスしても、命令フェッチとデータ
アクセスのバンク競合を回避できる。一方、データアク
セスとデータ系外部アクセスのバンク競合は回避できな
いが、これは通常のハーバードアーキテクチャでも回避
できない。
【0068】図16はバンク信号生成部の第4の動作例
である。第2の動作例と同一のアドレスによるアクセス
要求を処理しているが、図6のバンク生成部BKGを用
い、キャッシュコントロールレジスタCCRのバンク制
御フィールドBCを2とする。また、プログラムとデー
タのアドレス空間を区別するアドレスビットはビット2
0とする。
【0069】すると、図16のようにバンク制御フィー
ルドBCが2なので、命令バンクマルチプレクサBM
I、データバンクマルチプレクサBMD、および外部バ
ンクマルチプレクサBMXはそれぞれ0、1、および1
を出力する。該出力と常にバンク指定信号として使用さ
れるビット13とを結合した信号がバンク信号であるか
ら、命令バンクBKI、データバンクBKD、および外
部バンクBKXはそれぞれ0、2、および2となる。即
ち、第3の動作例と同一のバンク信号を出力する。この
結果、キャッシュ制御部CCおよびキャッシュメモリC
Mも同様に動作し、統合型キャッシュでありながら、ハ
ーバードアーキテクチャと同様、命令フェッチとデータ
アクセスの競合を回避できる。
【0070】前述した各図の動作例をまとめると命令フ
ェッチ要求、データアクセス要求及び外部アクセス要求
並びに複数の制御信号(BKI,BKD,BKX)の入
力によりキャッシュ制御部にて生成される複数のアドレ
ス選択制御信号及び書き込みデータ選択制御信号の制御
により、複数のアドレス信号(AI,AD,AX)及び
書き込みデータ(WD,WX)から複数のセレクタの各
々を介して、複数のバンク内の異なるバンクに対しては
同時に、同一バンクに対しては逐次的に、複数のアクセ
スアドレスを与える。
【0071】さらに上記複数のバンクの各々において、
複数のアクセスアドレスへの書き込みデータの書き込み
または各々のアクセスアドレスからのデータ読出しを、
異なるバンクに対しては同時に、同一バンクに対しては
逐次的に任意に行う。
【0072】特に逐次処理について換言して表現すれ
ば、キャッシュ制御部CC(コントローラ)の制御によ
り制御信号(CA0〜3、CW0〜3)を複数のバンク
の各々に供給し、同一のバンクに対し、命令或いはデー
タの書き込み或いは読み出し動作を逐次に行う。
【0073】図17は本発明の第2の実施例のキャッシ
ュメモリCMである。バンク毎に優先的に選択するアク
セス要求を、キャッシュ制御レジスタCCRのバンク選
択フィールドBS0〜BS3によってあらかじめ指定し
ておき、同時に2つ以上アクセス要求がきた場合はバン
ク毎に優先度の高いアクセス要求を受け付ける。図3に
示す第1の実施例との違いはキャッシュ制御レジスタC
CRからキャッシュ制御部CCへバンク選択フィールド
BS0〜BS3を出力し、これと命令フェッチ要求RE
QIおよびデータアクセス要求REQDとの入力からキ
ャッシュ制御信号CTLを生成している点である。
【0074】図18は第2の実施例のキャッシュ制御部
CCである。本方式の長所は、アクセス要求に比べて確
定の遅いアドレス情報をバンク選択に使用しないため、
高速にキャッシュアクセスを開始できることである。バ
ンクの使用効率よりキャッシュのアクセス速度を重視す
る場合に適している。アドレスから生成されるバンク信
号BKI、BKD、およびBKXを使用せずにアドレス
選択制御信号CA0〜CA3および書込みデータ選択制
御信号CW0〜CW3を生成する。
【0075】アドレス選択制御信号CA0はバンク選択
フィールドBS0と命令フェッチ要求REQIおよびデ
ータアクセス要求REQDとから以下のように生成す
る。バンク選択フィールドBS0は命令フェッチ優先時
に0、データアクセス優先時に1となる。アドレス選択
制御信号CA0のビット2、1、および0はそれぞれ命
令アドレスAI、データアドレスAD、および外部アド
レスAXに対応する。
【0076】まず、ビット2は命令フェッチ要求REQ
Iがアサートされた場合に、データアクセス要求REQ
Dがネゲートされているか、又はバンク選択フィールド
BS0が0で命令フェッチ優先である場合にアサートさ
れる。同様にビット1はデータアクセス要求REQDが
アサートされた場合に、命令フェッチ要求REQIがネ
ゲートされているか、又はバンク選択フィールドBS0
が1でデータアクセス優先である場合にアサートされ
る。ビット0は命令フェッチ要求REQIおよびデータ
アクセス要求REQDのどちらもネゲートされている場
合にアサートする。アドレス選択制御信号CA1〜CA
3も同様にバンク選択フィールドBS1〜BS3と命令
フェッチ要求REQIおよびデータアクセス要求REQ
Dとから生成される。書込みデータ選択制御信号CW0
〜CW3は、図4に示す第1の実施例同様、ビット1は
アドレス選択制御信号CA0〜CA3のビット1と同一
論理であり、ビット0はビット1の反転である。
【0077】尚、本実施例においても読出しデータ選択
信号CRI、CRD、およびCRXはそれぞれバンク信
号BKI、BKD、およびBKXのデコードによって得
られる。アクセス要求REQI、REQD、およびRE
QXとバンク選択フィールドBS0〜3のみでバンク選
択を行うので、各アクセスに必要なバンクが確保された
かをチェックし、確保できなかった場合はアクセス遅延
信号DLI、DLD、およびDLXをアサートして、ア
クセスを待たせる。このチェックはキャッシュアクセス
と並列に行えばよい。
【0078】具体的には、第1の実施例と同様にバンク
信号BKIまたはBKDとアクセス要求REQIまたは
REQDとからアクセスすべきバンクを決定し、そのバ
ンクにおいてアドレス選択制御信号CA0〜CA3によ
って、命令アドレスAIまたはデータアドレスADが選
択されていなければ、それぞれアクセス遅延信号DLI
またはDLDをアサートする。本実施例では外部アクセ
スは全てのバンクで常に優先度が低いのでアクセス要求
REQIまたはREQDが出ているとバンクを確保でき
ない。このため、バンクに依らずアクセス要求REQX
アサート時にREQIまたはREQDがアサートされて
いればアクセス遅延信号DLXをアサートする。
【0079】第2の実施例では外部アクセスは常に優先
度を最低にしているが、外部アクセスを含めて自由に優
先度を可変にすることは可能である。第1および第2の
実施例は4バンク構成の場合であるが、様々なバンク数
の場合に本発明を拡張することは本発明の属する分野の
通常の技術者であれば可能である。
【0080】図19は本発明の第3の実施例のキャッシ
ュメモリCMである。複数ウェイ構成のキャッシュメモ
リを全て命令データ共用にするか、ウェイ毎に命令用、
データ用のいずれかに指定するかする。バンク数が2の
累乗でないと実現困難であるのに対し、ウェイ数は任意
の数が可能なので設計の自由度が増す。また、バンクイ
ンタリーブ化する必要もない。例えば4ウェイセットア
ソシアティブの統合型キャッシュメモリを、全てのウェ
イを命令データ共用とすればそのまま統合型に、2ウェ
イを命令用、残りの2ウェイをデータ用とすればハーバ
ードアーキテクチャになる。複数個のウェイの各々に対
して命令またはデータの内何れか1つのみをキャッシン
グすることにより、命令データ分離型キャッシュメモリ
として動作させることが出来る。但し、バンクインタリ
ーブ化しないと外部アクセスと命令またはデータアクセ
スを同時に実行することは出来ない。また、ウェイ毎に
異なるアドレスを指定する必要があるため、1つのメモ
リマットに複数のウェイを実装することは出来ない。
【0081】さて、第2と第3の実施例のキャッシュメ
モリCMの違いは、図17と図19に示されるCMを構
成するブロックの違いである。まず、キャッシュメモリ
本体はバンクBK0〜BK3の代わりにウェイWY0〜
WY3に分割されて、それぞれのウェイがアドレスマル
チプレクサAM0〜AM3(又はセレクタ)によって選
択される固有のアドレスでアクセスされる。そして、バ
ンクはないのでバンク生成部BKGはない。また、外部
アクセスと命令またはデータアクセスを同時に実行する
ことは出来ないので、外部アクセス専用のポートは不要
である。
【0082】図22はキャッシュメモリ本体にウェイを
使用した場合のプロセッサ構成例を示した図である。外
部アクセスは命令系とデータ系に分けて、通常のハーバ
ードアーキテクチャのように、事前に命令アクセスおよ
びデータアクセスにマージしておく。プロセッサCPU
から命令フェッチ要求REQI,データアクセス要求R
EQDから成る複数の制御コマンド及びAI,ADから
成る複数のアドレス信号がキャッシュメモリ本体に送信
される。
【0083】前述したバンクBK0〜BK3を採用した
キャッシュメモリCMを備えたプロセッサシステム(図
2)とバンクの代わりにウェイを採用したCMを備えた
プロセッサシステム(図22)の相違点としては、実行
ユニットEXUからCMに送信される書き込みデータW
D及びBIUからCMに送信される書き込みデータの
内、何れか1データがセレクタにて選択されCMに書き
込まれ、並行してBIUからの命令系書き込みデータW
IがCMに書き込まれることにある。
【0084】同図22のプロセッサシステムを採用した
結果、図17に示すキャッシュメモリ構成例と比較し、
図19のキャッシュメモリ構成においてアドレスマルチ
プレクサAM0〜AM3は命令アドレスAIとデータア
ドレスADの2入力に、書込みデータマルチプレクサW
M0〜WM3の外部書込みデータWX(図17)は、命
令系は命令系書込みデータWIに、データ系はデータ系
書込みデータWDにマージされて不要になる。命令系外
部アクセスAX(図17)をマージした結果、マージ前
にはなかった命令系書込みデータWI(図19)が存在
する。
【0085】更に、バンクインタリーブ方式では単純な
バンク信号のデコード結果であった読出しデータ選択制
御信号CRIおよびCRDは、図19のキャッシュメモ
リCMに具備されるウェイ選択制御部WSCによって生
成される。ウェイ選択制御部WSCの詳細を図20に示
す。キャッシュ制御部CC(図21)からの読出しデー
タ選択制御信号CR0〜CR3と各ウェイからのヒット
信号HT0〜HT3とのAND論理によって上記信号C
RI及びCRDは生成される。図19に示すように読出
しデータRI、RDは読出しデータ選択制御信号CRI
及びCRDによる制御の下、それぞれ読出しデータマル
チプレクサRMI及びRMDを介して、各ウェイWY0
〜WY3から読み出される読出しデータR0〜R3から
選択される信号である。
【0086】図21は図19に示す第3の実施例のキャ
ッシュメモリCM内のキャッシュ制御部CCを示してい
る。キャッシュ制御レジスタCCRには統合ビットU
(キャッシュメモリが統合型か分離型かを区別するビッ
ト)およびウェイ選択フィールドWS0〜WS3があ
る。統合ビットUは全てのウェイを命令データ共用にす
ることを示す。ウェイ選択フィールドWS0〜WS3
は、統合ビットUがアサートされている時には命令デー
タアクセス競合においてウェイ毎にどちらのアクセスを
優先するかを示し、統合ビットUがネゲートされている
時にはウェイが命令用かデータ用かを示す。ウェイ選択
フィールドWS0〜WS3は命令選択時に0、データ選
択時に1とする。この時、キャッシュ制御部CCから出
力されるアドレス選択制御CA0〜CA3、書込みデー
タ選択制御CW0〜CW3、および読出しデータ選択制
御CR0〜CR3は全て同一論理で生成できる。尚、図
中1、0はビット1、0を表し、それぞれ命令系および
データ系の選択制御信号である。
【0087】例えば、図19に示す通リ、アドレス選択
制御信号CA0のビット0はウェイ0のデータアドレス
ADの選択制御信号である。データアドレスADを選択
する条件は、図21にてデータアクセス要求REQDア
サート時に、命令アクセス要求REQIがネゲートされ
ているか、ウェイ選択フィールドWS0が1の場合であ
る。この時、ウェイ0は、統合ビットUの値によってデ
ータアクセスが優先されているか、データ用であるかの
いずれかである。いずれの場合もデータアクセスを行
う。アドレス選択制御CA0のビット1はビット0の反
転信号である。このため、本実施例では命令アクセス要
求REQIおよびデータアクセス要求REQDの双方が
ネゲートされた場合等、アドレスとしてどちらを選択し
ても良い場合は、命令アドレスAIが選択される。他の
制御信号も同様に生成される。
【0088】統合ビットUは通常のキャッシュアクセス
では不要であるが、キャッシュエントリのリプレース時
に必要となる。統合ビットUがアサートされている場合
は、リプレースエントリの候補は全ウェイである。この
結果、命令とデータの混在した統合型キャッシュメモリ
となる。統合ビットUがネゲートされている場合は、リ
プレースエントリの候補となるウェイは、命令リプレー
ス時はウェイ選択フィールドWS0〜WS3が0である
ウェイ、データリプレース時はウェイ選択フィールドW
S0〜WS3が1であるウェイのみである。この結果、
ウェイ毎に命令またはデータのみが書込まれるため、ハ
ーバードアーキテクチャとなる。
【0089】前述したキャッシュメモリCMにウェイを
使用した際の動作例をまとめると、命令フェッチ要求R
EQIとデータアクセス要求REQDの入力によりキャ
ッシュ制御部CCにて生成される複数のアドレス選択制
御信号及び書き込みデータ選択制御信号により、複数の
アドレス信号(AI,AD)及び書き込みデータ(W
I,WD)から複数のセレクタの各々を介して、複数個
のウェイ内の異なるウェイに対しては同時に、同一ウェ
イに対しては逐次的に、複数のアクセスアドレス又は書
き込みデータを与える。
【0090】さらに複数個のウェイの各々において、ア
クセスアドレスへの書き込みデータの書き込みまたはア
クセスアドレスからのデータ読出しを異なるウェイに対
しては同時に、同一ウェイに対しては逐次的に任意に行
う。
【0091】
【発明の効果】本発明によって、従来、ハーバードアー
キテクチャでのみ達成可能であった命令フェッチとデー
タアクセスの同時実行を統合型キャッシュメモリアーキ
テクチャで達成することが可能となる。これによって、
命令書き換えの容易性と高性能とを同時に達成すること
ができる。
【0092】また、アプリケーションを使用し、が命令
とデータの一方を重点的にキャッシングしたい場合で
も、ハーバードアーキテクチャのように一方のキャッシ
ュが無駄になることなく、全容量を活用することが出来
る。
【0093】また、同一のプロセッサで統合型キャッシ
ュメモリアーキテクチャとハーバードアーキテクチャの
双方を実現することが可能となる。更に、同一プロセッ
サで多様なキャッシュメモリ構成を実現することも可能
となる。
【図面の簡単な説明】
【図1】キャッシュメモリアーキテクチャの変遷を示す
図である。
【図2】本発明を適用したプロセッサシステムの例を示
す図である。
【図3】本発明を適用したキャッシュメモリの第1の実
施例を示す図である。
【図4】本発明の第1の実施例のキャッシュ制御部を示
す図である。
【図5】バンク信号生成部の第1の例を示す図である。
【図6】バンク信号生成部の第2の例を示す図である。
【図7】バンク信号生成部の第1の動作例を示す図であ
る。
【図8】キャッシュ制御部の第1の動作例を示す図であ
る。
【図9】キャッシュメモリの第1の動作例を示す図であ
る。
【図10】バンク信号生成部の第2の動作例を示す図で
ある。
【図11】キャッシュ制御部の第2の動作例を示す図で
ある。
【図12】キャッシュメモリの第2の動作例を示す図で
ある。
【図13】バンク信号生成部の第3の動作例を示す図で
ある。
【図14】キャッシュ制御部の第3の動作例を示す図で
ある。
【図15】キャッシュメモリの第3の動作例を示す図で
ある。
【図16】バンク信号生成部の第4の動作例を示す図で
ある。
【図17】本発明を適用したキャッシュメモリの第2の
実施例を示す図である。
【図18】第2の実施例のキャッシュ制御部を示す図で
ある。
【図19】本発明を適用したキャッシュメモリの第3の
実施例を示す図である。
【図20】第3の実施例のウェイ選択制御部を示す図で
ある。
【図21】第3の実施例のキャッシュ制御部を示す図で
ある。
【図22】本発明を適用したキャッシュメモリにおい
て、バンクの代わりにウェイを使用した場合のプロセッ
サシステムの例を示す図である。
【符号の説明】
CPU:中央処理装置、IFU:命令フェッチユニッ
ト、EXU:実行ユニット、BIU:バスインタフェイ
スユニット、AI:命令アドレス、AD:データアドレ
ス、AX:外部アドレス、REQI:命令フェッチ要
求、REQD:データアクセス要求、REQX:外部ア
クセス要求、RI、RD、RX:読出しデータ、WD、
WX:書込みデータ。

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】複数のコマンドを独立に処理可能なプロセ
    ッサと、該プロセッサからのアクセス要求に応じて動作
    するキャッシュメモリを有するプロセッサシステムにお
    いて、 前記キャッシュメモリが複数個のポートを有し、該複数
    個のポートを介して前記プロセッサから送信される命令
    フェッチを含む複数の制御コマンド及び複数のアドレス
    信号を同時に処理しうることを特徴とするプロセッサシ
    ステム。
  2. 【請求項2】命令フェッチとデータアクセスを独立に処
    理可能なプロセッサと、該プロセッサからのアクセス要
    求に呼応して動作するキャッシュメモリを有するシステ
    ムにおいて、 前記キャッシュメモリを複数のセレクタ及び複数のアド
    レスの一部によって指定される複数バンクによって構成
    し、各バンクを1ポートキャッシュとし、前記命令フェ
    ッチ要求と前記データアクセス要求が異なるバンクに対
    するものであれば同時処理、同一バンクに対する場合は
    逐次処理することを特徴とするプロセッサシステム。
  3. 【請求項3】請求項1記載のプロセッサシステムにおい
    て、 前記複数の制御コマンドは、命令フェッチ要求とデータ
    アクセス要求、或いは前記命令フェッチ要求、前記デー
    タアクセス要求及び外部アクセス要求の内の何れか1組
    から成り、前記複数のアドレス信号は、命令アドレス信
    号とデータアドレス信号、或いは前記命令アドレス信
    号、前記データアドレス信号及び外部アドレス信号の内
    の何れか1組から成り、前記キャッシュメモリはさらに
    前記キャッシュメモリを制御するキャッシュ制御部及び
    前記複数のアドレス信号に基づき該キャッシュ制御部に
    与える複数の制御信号を生成する信号生成部を含むこと
    を特徴とするプロセッサシステム。
  4. 【請求項4】請求項3記載のプロセッサシステムにおい
    て、前記キャッシュ制御部は前記命令フェッチ要求、前
    記データアクセス要求及び前記複数の制御信号の入力に
    対し、前記制御信号に基づいて指定されたバンクに既に
    前記データアクセス要求が割り当てられた場合は、更な
    る割り当てを実行しないように遅延信号を生成し、前記
    制御信号に基づいて指定されたバンクに未だ前記データ
    アクセス要求が割り当てられていない場合は、複数のア
    ドレス選択制御信号又は書き込みデータ選択制御信号を
    生成することを特徴とするプロセッサシステム。
  5. 【請求項5】請求項3記載のプロセッサシステムにおい
    て、 さらに前記命令フェッチ要求、前記データアクセス要求
    及び前記外部アクセス要求並びに前記複数の制御信号の
    入力により前記キャッシュ制御部にて生成される前記複
    数のアドレス選択制御信号及び書き込みデータ選択制御
    信号の制御により、前記複数のアドレス信号及び書き込
    みデータから前記複数のセレクタの各々を介して、複数
    のバンク内の異なるバンクに対しては同時に、同一バン
    クに対しては逐次的に、複数のアクセスアドレスを与え
    ることを特徴とするプロセッサシステム。
  6. 【請求項6】請求項5記載のプロセッサシステムにおい
    て、 さらに前記複数のバンクの各々において、前記複数のア
    クセスアドレスへの前記書き込みデータの書き込みまた
    は前記アクセスアドレスからのデータ読出しを、前記異
    なるバンクに対しては同時に、前記同一バンクに対して
    は逐次的に任意に行うことを特徴とするプロセッサシス
    テム。
  7. 【請求項7】請求項2記載のプロセッサシステムにおい
    て、前記複数のアドレスの一部は、前記複数のアドレス
    の各々における特定のビットの事であり、前記キャッシ
    ュメモリ内の前記複数バンクの各々を指定する際に、前
    記特定のビットの代わりに前記命令フェッチ要求又は前
    記データアクセス要求、及び複数の制御信号の入力に基
    づき、前記キャッシュメモリ内に有するキャッシュ制御
    部にて生成される複数のアドレス選択制御信号及び書き
    込みデータ選択制御信号の制御により前記複数のセレク
    タの各々を介して前記バンクを指定することにより、命
    令データ分離型キャッシュメモリとして動作することを
    特徴とするプロセッサシステム。
  8. 【請求項8】請求項3から6のいずれかに記載のプロセ
    ッサシステムにおいて、前記キャッシュメモリは更に外
    部からのアクセス要求である前記外部アクセス要求を処
    理するポートを有し、前記命令フェッチ要求、前記デー
    タアクセス要求、および前記外部アクセス要求のうち、
    少なくとも2つの要求を同時に処理することを特徴とす
    るプロセッサシステム。
  9. 【請求項9】請求項1記載のプロセッサシステムにおい
    て、 前記複数の制御コマンドは、命令フェッチ要求及びデー
    タアクセス要求から成り、前記複数のアドレス信号は命
    令アドレス信号及びデータアドレス信号から成り、前記
    キャッシュメモリはさらに前記キャッシュメモリを制御
    するキャッシュ制御部、複数個のウェイ、複数のセレク
    タ及びウェイ選択制御部を含むことを特徴とするプロセ
    ッサシステム。
  10. 【請求項10】請求項9記載のプロセッサシステムにお
    いて、 さらに前記命令フェッチ要求と前記データアクセス要求
    の入力により前記キャッシュ制御部にて生成される複数
    のアドレス選択制御信号及び書き込みデータ選択制御信
    号により、前記複数のアドレス信号及び書き込みデータ
    から前記複数のセレクタの各々を介して、前記複数個の
    ウェイ内の異なるウェイに対しては同時に、同一ウェイ
    に対しては逐次的に、複数のアクセスアドレス又は前記
    書き込みデータを与えることを特徴とするプロセッサシ
    ステム。
  11. 【請求項11】請求項10記載のプロセッサシステムに
    おいて、 さらに前記複数個のウェイの各々において、前記アクセ
    スアドレスへの書き込みデータの書き込みまたは前記ア
    クセスアドレスからのデータ読出しを前記異なるウェイ
    に対しては同時に、前記同一ウェイに対しては逐次的に
    任意に行うことを特徴とするプロセッサシステム。
  12. 【請求項12】請求項9記載のプロセッサシステムにお
    いて、前記複数個のウェイの各々に対して命令またはデ
    ータの内何れか1つのみをキャッシングすることによ
    り、命令データ分離型キャッシュメモリとして動作する
    ことを特徴とするプロセッサシステム。
  13. 【請求項13】請求項1から12のいずれかに記載のプ
    ロセッサシステムにおいて、前記プロセッサおよび前記
    キャッシュメモリが同一チップ上に集積されていること
    を特徴とするプロセッサシステム。
  14. 【請求項14】複数のバンクを備え、該複数のバンクを
    制御するコントローラを有し、該コントローラは前記複
    数のバンクの各々に命令或いはデータの書き込み又は読
    み出しを行う為の制御信号を生成し、前記コントローラ
    の制御により該制御信号を前記複数のバンクに供給し、
    前記複数のバンク内の異なるバンクに対し前記命令或い
    はデータの書き込み或いは読み出し動作を同時に行うこ
    とを特徴とするキャッシュメモリ。
  15. 【請求項15】請求項14記載のキャッシュメモリにお
    いて、 さらに前記コントローラの制御により前記制御信号を前
    記複数のバンクの各々に供給し、同一のバンクに対し、
    前記命令或いはデータの書き込み或いは読み出し動作を
    逐次に行うことを特徴とするキャッシュメモリ。
  16. 【請求項16】請求項15記載のキャッシュメモリにお
    いて、 前記バンクはウェイによって代替しうることを特徴とす
    るキャッシュメモリ。
JP2001327733A 2001-10-25 2001-10-25 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム Expired - Fee Related JP4068828B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001327733A JP4068828B2 (ja) 2001-10-25 2001-10-25 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001327733A JP4068828B2 (ja) 2001-10-25 2001-10-25 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2003131943A true JP2003131943A (ja) 2003-05-09
JP4068828B2 JP4068828B2 (ja) 2008-03-26

Family

ID=19143914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001327733A Expired - Fee Related JP4068828B2 (ja) 2001-10-25 2001-10-25 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム

Country Status (1)

Country Link
JP (1) JP4068828B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373453B2 (en) 2004-02-13 2008-05-13 Samsung Electronics Co., Ltd. Method and apparatus of interleaving memory bank in multi-layer bus system
JP2008250926A (ja) * 2007-03-30 2008-10-16 Nec Corp ベクトル処理装置及びベクトル処理システム
WO2012137599A1 (ja) * 2011-04-05 2012-10-11 ルネサスエレクトロニクス株式会社 半導体装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373453B2 (en) 2004-02-13 2008-05-13 Samsung Electronics Co., Ltd. Method and apparatus of interleaving memory bank in multi-layer bus system
KR101022473B1 (ko) 2004-02-13 2011-03-15 삼성전자주식회사 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
JP2008250926A (ja) * 2007-03-30 2008-10-16 Nec Corp ベクトル処理装置及びベクトル処理システム
WO2012137599A1 (ja) * 2011-04-05 2012-10-11 ルネサスエレクトロニクス株式会社 半導体装置
JP5559932B2 (ja) * 2011-04-05 2014-07-23 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
JP4068828B2 (ja) 2008-03-26

Similar Documents

Publication Publication Date Title
US5966734A (en) Resizable and relocatable memory scratch pad as a cache slice
US8793433B2 (en) Digital data processing apparatus having multi-level register file
EP1550032B1 (en) Method and apparatus for thread-based memory access in a multithreaded processor
US6963962B2 (en) Memory system for supporting multiple parallel accesses at very high frequencies
US9658877B2 (en) Context switching using a context controller and on-chip context cache
EP1189132B1 (en) Shared peripheral architecture
KR100248440B1 (ko) 프로세서
JPH10214227A (ja) マルチポートのインターリーブ・キャッシュ・メモリ
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
IL134823A (en) Method and device for selecting an event in a multi-process processor
JP2000003308A (ja) オ―バラップしたl1およびl2メモリ・アクセス方法および装置
JP2003296191A (ja) 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路
US7636812B2 (en) Cache memory control method and cache memory control device
US5602781A (en) Memory device having a plurality of sets of data buffers
US6101589A (en) High performance shared cache
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US10482017B2 (en) Processor, method, and system for cache partitioning and control for accurate performance monitoring and optimization
US20080177979A1 (en) Hardware multi-core processor optimized for object oriented computing
US20030196072A1 (en) Digital signal processor architecture for high computation speed
CN112527729A (zh) 一种紧耦合异构多核处理器架构及其处理方法
JP4068828B2 (ja) 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
JP4498705B2 (ja) キャッシュシステム
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JP2006039824A (ja) マルチプロセッサ搭載システムlsiの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071205

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: 20071218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

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: 20110118

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120118

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140118

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees