JP2003337790A - バス制御回路およびプロセッサ - Google Patents

バス制御回路およびプロセッサ

Info

Publication number
JP2003337790A
JP2003337790A JP2002146547A JP2002146547A JP2003337790A JP 2003337790 A JP2003337790 A JP 2003337790A JP 2002146547 A JP2002146547 A JP 2002146547A JP 2002146547 A JP2002146547 A JP 2002146547A JP 2003337790 A JP2003337790 A JP 2003337790A
Authority
JP
Japan
Prior art keywords
address
area
access
control circuit
bus control
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
JP2002146547A
Other languages
English (en)
Inventor
Hironobu Ito
浩伸 伊藤
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 JP2002146547A priority Critical patent/JP2003337790A/ja
Publication of JP2003337790A publication Critical patent/JP2003337790A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 1つのデバイスの一部をキャッシュ対象領域
として使用し、他の部分を非キャッシュ対象領域として
使用することが可能なバス制御回路を提供すること。 【解決手段】 多重配置領域設定レジスタ19には、オ
ンチップデバイス104が本来配置されるキャッシュ対
象領域と異なる非キャッシュ対象領域内の多重配置領域
の上位アドレスが設定される。アドレスデコーダ11
は、多重配置領域設定レジスタ19に設定されたアドレ
スを参照して、多重配置領域に対するアクセスを検出し
たときに、オンチップデバイス104をセレクトするセ
レクト信号14を出力する。したがって、オンチップデ
バイス104の一部をキャッシュ対象領域として使用
し、その他の部分を非キャッシュ対象領域として使用す
ることが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サに搭載されるバス制御回路に関し、特に、キャッシュ
対象領域および非キャッシュ対象領域に分割されたメモ
リ空間にマッピングされたデバイスを制御するバス制御
回路およびそれに接続されるプロセッサに関する。
【0002】
【従来の技術】近年、マイクロプロセッサの高速化に対
する要望が高く、マイクロプロセッサにキャッシュメモ
リを内蔵するのが一般的となってきている。
【0003】図8は、キャッシュメモリを内蔵した従来
のマイクロプロセッサを利用したシステムの概略構成を
示すブロック図である。このシステムは、マイクロプロ
セッサ100と、マイクロプロセッサ100によって制
御される外部デバイス105とを含む。また、マイクロ
プロセッサ100は、CPU(Central Processing Uni
t)101と、キャッシュメモリ102と、オンチップ
デバイス104と、マイクロプロセッサ100の内部バ
ス、オンチップデバイス104、外部デバイス105等
の制御を行なうバス制御回路103とを含む。
【0004】オンチップデバイス104は、SRAM
(Static Random Access Memory)、ROM(Read Only
Memory)、フラッシュメモリ等のメモリデバイスや、
シリアルI/O(Input/Output)、タイマ等の各種周辺
回路によって構成される。また、外部デバイス105
は、SDRAM(Synchronous Dynamic Random Access
Memory)、ROM、ASIC(Application Specific I
ntegrated Circuit)などのデバイスによって構成され
る。オンチップデバイス104および外部デバイス10
5は、CPU101のアドレス空間に配置されている。
【0005】バス制御回路103は、CPU101から
与えられるアドレスをデコードして、どのデバイスに対
するアクセスであるかを判定し、デバイスに応じた制御
信号を生成してアクセスを行なう。アドレス空間におけ
る各デバイスの配置については、ハードウェアで固定さ
れている場合もあるし、ソフトウェアで変更が可能な場
合もある。
【0006】図9は、CPU101のアドレス空間にお
けるデバイスの配置の一例を示す図である。キャッシュ
メモリ102へのアクセス速度を向上させるために、図
9に示すように、アドレス空間がキャッシュメモリ10
2のアクセス対象となっている領域(以下、キャッシュ
対象領域と呼ぶ。)と、キャッシュメモリ102のアク
セス対象となっていない領域(以下、非キャッシュ対象
領域と呼ぶ。)とに分割されていることが多い。
【0007】この理由は、CPU101がキャッシュメ
モリ102にアクセスするに先立って、アクセスするデ
バイスがキャッシュ対象領域に配置されているか、非キ
ャッシュ対象領域に配置されているかを判断する必要が
あるため、アドレスのデコード時の遅延時間を少なくす
るために上位アドレスの少数のビットで判断できるよう
にするためである。
【0008】図9においては、外部デバイス105がキ
ャッシュ対象領域の“32H’0000_0000〜3
2H’1FFF_FFFF”に配置され、オンチップデ
バイス104がキャッシュ対象領域の“32H’300
0_0000〜32H’3FFF_FFFF”に配置さ
れている。なお、“H’”は、以降の数字が16進数で
表記されていることを示している。なお、本明細書にお
ける値の表記方法は、ハードウェア記述言語として広く
用いられているVerilog−HDL言語の文法に従
うものとする。
【0009】
【発明が解決しようとする課題】デバイスがキャッシュ
対象領域に配置されていても、CPU101がそのデバ
イスに非キャッシュ対象としてアクセスしたい場合も多
い。たとえば、高速アクセスが可能な内蔵メモリの一部
をCPU101のスタック領域として使用するためにキ
ャッシュ対象とし、内蔵メモリの残りの領域を外部デバ
イスとの間のDMA(Direct Memory Access)転送のた
めのデータ転送領域として使用しつつ、キャッシュメモ
リ102との間のコヒーレンシを考慮して非キャッシュ
対象とする場合などが想定される。
【0010】しかし、上述したように、高速なシステム
を構築するためには、上位アドレスの少数のビットで判
断できるようにする必要があるため、CPU101のア
クセスがどのアドレス領域に対応するかを詳細に判断す
ることができず、1つの内蔵メモリをスタック領域とし
て使用するとともに、DMA転送のためのデータ転送領
域として使用することが困難である。したがって、スタ
ック領域をキャッシュ対象にすることを諦めるか、内蔵
メモリをDMA転送のためのデータ転送領域として使用
することを諦めるかを選択せざるを得ず、システム全体
の性能向上の妨げとなるといった問題点があった。
【0011】本発明は、上記問題点を解決するためにな
されたものであり、第1の目的は、1つのデバイスの一
部をキャッシュ対象領域として使用し、他の部分を非キ
ャッシュ対象領域として使用することが可能なバス制御
回路を提供することである。
【0012】第2の目的は、キャッシュメモリに格納さ
れるデータと、そのデータに対応するデバイス内のデー
タとが不一致となることを防止したバス制御回路を提供
することである。
【0013】第3の目的は、デバイスが多重に配置され
た領域にアクセスする命令を記述するときに、そのアド
レスを明示的に指定する必要がないプロセッサを提供す
ることである。
【0014】
【課題を解決するための手段】請求項1に記載のバス制
御回路は、アドレス空間に配置されるデバイスを制御す
るバス制御回路であって、デバイスが本来配置される第
1の領域と異なる第2の領域の上位アドレスが設定され
る多重配置領域設定レジスタと、第1の領域に対するア
クセスを検出したときだけでなく、多重配置領域設定レ
ジスタに設定されたアドレスを参照して、第2の領域に
対するアクセスを検出したときにも、デバイスに対する
アクセスを発生させて、デバイスがアドレス空間上で多
重に配置されるように制御するための制御手段とを含
む。
【0015】制御手段は、多重配置領域設定レジスタに
設定されたアドレスを参照して、第2の領域に対するア
クセスを検出したときに、デバイスに対するアクセスを
発生させるので、デバイスの一部をキャッシュ対象領域
として使用し、その他の部分を非キャッシュ対象領域と
して使用することが可能となる。
【0016】請求項2に記載のバス制御回路は、請求項
1記載のバス制御回路であって、制御手段は、プロセッ
サから出力されたアドレスをデコードし、デコード結果
が第1の領域または多重配置領域設定レジスタに設定さ
れた第2の領域に対応する場合に、デバイスをセレクト
するセレクト信号を出力するアドレスデコーダと、アド
レスデコーダから出力されたセレクト信号に応じて、デ
バイスに対するアクセスを制御するデバイス制御回路と
を含む。
【0017】したがって、デバイス制御回路は、デバイ
スが第1の領域に配置されるとともに、第2の領域にも
配置されているように制御することが可能となる。
【0018】請求項3に記載のバス制御回路は、請求項
2記載のバス制御回路であって、複数の多重配置領域設
定レジスタと、複数の多重配置領域設定レジスタに対応
する複数のアドレスデコーダと、複数のアドレスデコー
ダに対応する複数のデバイス制御回路と、複数のアドレ
スデコーダから出力されるセレクト信号が同時にアクテ
ィブとなるのを禁止する排他制御回路とを含む。
【0019】したがって、一度に複数のデバイスに対す
るアクセスが発生することを防止でき、アクセスの正当
性を保つことが可能となる。
【0020】請求項4に記載のバス制御回路は、請求項
1記載のバス制御回路であって、さらに第1の領域およ
び第2の領域に対するアクセスの一方を許可し、他方を
禁止する情報が格納される領域選択レジスタを含み、制
御手段は、領域選択レジスタを参照して、第1の領域お
よび第2の領域に対するアクセスを制御する。
【0021】したがって、非キャッシュ対象領域を経由
してデバイス内のデータに異なるデータを上書きするこ
とによって発生するキャッシュメモリとデバイスとのデ
ータの不一致を防止することが可能となる。
【0022】請求項5に記載のバス制御回路は、請求項
4記載のバス制御回路であって、制御手段は、領域選択
レジスタを参照して、アクセスが禁止されている領域に
対するアクセスが発生したときに、プロセッサに例外が
発生したことを通知する。
【0023】したがって、プロセッサは、アクセスが禁
止されている領域に対するアクセスが発生したことを知
ることができるので、それをユーザに提示することによ
って、デバッグの効率を向上させることが可能となる。
【0024】請求項6に記載のプロセッサは、アドレス
空間上で複数の領域に多重配置されたデバイスを制御す
るプロセッサであって、フェッチした命令をデコードす
る命令デコーダと、命令デコーダによって、アドレス空
間に対するアクセスを伴う命令が検出されたときに、ア
ドレスを生成するためのアドレス生成手段と、命令デコ
ーダによって、アドレス空間に多重に配置されたデバイ
スの領域に対するアクセスを伴う命令が検出されたとき
に、アドレス生成手段によって生成されたアドレスを前
記多重に配置された領域に対応するアドレスに変換する
ためのアドレス変換手段とを含む。
【0025】アドレス変換手段は、アドレス空間に多重
に配置されたデバイスの領域に対するアクセスを伴う命
令が検出されたときに、アドレス生成手段によって生成
されたアドレスを多重に配置された領域に対応するアド
レスに変換するので、ユーザがデバイスが多重に配置さ
れた領域にアクセスする命令を記述するときに、そのア
ドレスを明示的に指定する必要がなくなり、プログラム
作成時におけるユーザの負担を軽減することが可能とな
る。
【0026】請求項7に記載のプロセッサは、請求項6
記載のプロセッサであって、さらにデバイスを多重配置
するときの上位アドレスが設定される複数の多重配置領
域設定レジスタと、複数の多重配置領域設定レジスタの
いずれを選択するかを示す情報が格納される変換領域設
定レジスタとを含み、アドレス変換手段は、変換領域設
定レジスタに格納された情報によって選択された多重配
置領域設定レジスタに設定される上位アドレスを参照し
て、アドレス生成手段によって生成されたアドレスを多
重配置された領域に対応するアドレスに変換する。
【0027】したがって、アドレス変換手段は、多重配
置領域設定レジスタが複数ある場合に、アドレス生成手
段によって生成されたアドレスをどのデバイスに対応し
たアドレスに変換するかを決定することが可能となる。
【0028】
【発明の実施の形態】(第1の実施の形態)図1は、本
発明の第1の実施の形態におけるバス制御回路の構成を
示すブロック図である。このバス制御回路10を含んだ
マイクロプロセッサは、図8に示す従来のマイクロプロ
セッサ100内のバス制御回路103をバス制御回路1
0に置換することによって実現される。したがって、重
複する構成および機能の詳細な説明は繰返さない。
【0029】バス制御回路10は、アドレスデコーダ1
1および12と、排他制御回路16と、デバイス制御回
路17および18と、多重配置領域設定レジスタ19お
よび20とを含む。多重配置領域設定レジスタ19およ
び20は、CPU101が直接アクセス可能なレジスタ
である。
【0030】多重配置領域設定レジスタ19には、キャ
ッシュ対象領域に配置されたオンチップデバイス104
を、非キャッシュ対象領域に多重配置するときの上位ア
ドレスが設定される。このように、多重配置領域設定レ
ジスタ19によって、オンチップデバイス104が非キ
ャッシュ対象領域内に新たに配置される領域を多重配置
領域と呼ぶことにする。
【0031】同様に、多重配置領域設定レジスタ20に
は、キャッシュ対象領域に配置された外部デバイス10
5を、非キャッシュ対象領域に多重配置するときの上位
アドレスが設定される。
【0032】多重配置領域設定レジスタ19および20
は、アドレス空間におけるキャッシュ対象領域および非
キャッシュ対象領域の分割数に応じた数のビットを有し
ている。アドレス空間が、2つのキャッシュ対象領域お
よび非キャッシュ対象領域に分割されている場合にはビ
ット数が“1”となり、4つのキャッシュ対象領域およ
び非対象領域に分割されている場合にはビット数が
“2”となり、8つのキャッシュ対象領域および非キャ
ッシュ対象領域に分割されている場合にはビット数が
“3”となる。
【0033】アドレスデコーダ11は、CPU101か
ら出力されるアクセスアドレス13と、多重配置領域設
定レジスタ19に設定された値とから、オンチップデバ
イス104のセレクト信号14を生成する。このセレク
ト信号14は、オンチップデバイス104が配置されて
いるアドレス空間にアクセスがあったときにのみアクテ
ィブとなる信号である。
【0034】アドレスデコーダ12は、CPU101か
ら出力されるアクセスアドレス13と、多重配置領域設
定レジスタ20に設定された値とから、外部デバイス1
05のセレクト信号を生成する。このセレクト信号15
は、外部デバイス105が配置されているアドレス空間
にアクセスがあったときにのみアクティブとなる信号で
ある。
【0035】排他制御回路16は、アドレスデコーダ1
1から出力されるセレクト信号14と、アドレスデコー
ダ12から出力されるセレクト信号15とが、ともにア
クティブとなるのを防止するための回路である。これ
は、一方のデバイスが多重配置領域に配置されている場
合、他方のデバイスが配置されるアドレス空間と重複す
ることが想定されるため、アクセスの正当性を保つため
に一方のアクセスのみを許可し、他方のアクセスを禁止
するものである。
【0036】図9に示すように、オンチップデバイス1
04が“32H’3000_0000〜32H’3FF
F_FFFF”に配置されている場合、CPU101か
ら出力されるアクセスアドレス13の上位4ビットが
“4b’0011”のときに、アドレスデコーダ11は
セレクト信号14をアクティブにするが、アクセスアド
レス13の上位ビットが多重配置領域設定レジスタ19
に設定された値と一致するときにもセレクト信号14を
アクティブにする。
【0037】すなわち、多重配置領域設定レジスタ19
に“0”が設定されている場合には、CPU101から
出力されるアクセスアドレス13の上位4ビットが“4
b’0011”のときのみ、セレクト信号14がアクテ
ィブとなる。この場合には、オンチップデバイス104
が多重配置領域に配置されていないことになる。
【0038】また、多重配置領域設定レジスタ19に
“1”が設定されている場合には、CPU101から出
力されるアクセスアドレス13の上位4ビットが“4
b’0011”のとき以外に、アクセスアドレス13の
上位4ビットが“4b’1011”のときにもセレクト
信号14がアクティブとなる。したがって、多重配置領
域設定レジスタ19に“1”が設定されている場合に
は、オンチップデバイス104が“32H’3000_
0000〜32H’3FFF_FFFF”および“32
H’B000_0000〜32H’BFFF_FFF
F”のいずれにも配置されていることになる。
【0039】デバイス制御回路17は、排他制御回路1
6から出力される排他制御が行なわれた後のセレクト信
号14に応じて、オンチップデバイス104を制御する
ための信号を生成してオンチップデバイス104に出力
する。同様に、デバイス制御回路18は、排他制御回路
16から出力される排他制御が行なわれた後のセレクト
信号15に応じて、外部デバイス105を制御するため
の信号を生成して外部デバイス105に出力する。
【0040】図2は、2つのキャッシュ対象領域と2つ
の非キャッシュ対象領域との4つの領域に分割されてい
る場合のアドレス空間を示す図である。多重配置領域設
定レジスタ19に“00”が設定されている場合には、
CPU101から出力されるアクセスアドレス13の上
位4ビットが“4b’0011”のときのみ、セレクト
信号14がアクティブとなる。この場合には、オンチッ
プデバイス104が多重配置領域に配置されていないこ
とになる。
【0041】また、多重配置領域設定レジスタ19に
“01”が設定されている場合には、CPU101から
出力されるアクセスアドレス13の上位4ビットが“4
b’0011”のとき以外に、アクセスアドレス13の
上位4ビットが“4b’0111”のときにもセレクト
信号14がアクティブとなる。この場合には、オンチッ
プデバイス104が非キャッシュ対象領域1内に多重配
置される。
【0042】また、多重配置領域設定レジスタ19に
“10”が設定されている場合には、CPU101から
出力されるアクセスアドレス13の上位4ビットが“4
b’0011”のとき以外に、アクセスアドレス13の
上位4ビットが“4b’1011”のときにもセレクト
信号14がアクティブとなる。この場合には、オンチッ
プデバイス104がキャッシュ対象領域2内に多重配置
される。
【0043】また、多重配置領域設定レジスタ19に
“11”が設定されている場合には、CPU101から
出力されるアクセスアドレス13の上位4ビットが“4
b’0011”のとき以外に、アクセスアドレス13の
上位4ビットが“4b’1111”のときにもセレクト
信号14がアクティブとなる。この場合には、オンチッ
プデバイス104が非キャッシュ対象領域2内に多重配
置される。
【0044】図3は、第1の実施の形態におけるバス制
御回路10の詳細を説明するための図である。アドレス
デコーダ11は、ANDゲート70,71,75および
77と、排他的NORゲート72および73と、ORゲ
ート74および76とを含む。なお、アドレスデコーダ
12は、アドレスデコーダ11と同様の構成を有してい
る。
【0045】ANDゲート70は、CPU101から出
力されるアクセスアドレス13の上位4ビットが“4
b’0011”のときに、ハイレベル(以下、Hレベル
と略す。)を出力する。このとき、ORゲート76はセ
レクト信号14をアクティブ(Hレベル)にする。
【0046】ANDゲート71は、CPU101から出
力されるアクセスアドレス13の上位4ビットのうち、
ビット2および3が“2b’11”のときに、Hレベル
を出力する。また、排他的NORゲート72は、アクセ
スアドレス13のビット0(最上位ビット)と、多重配
置領域設定レジスタ19のビット1に設定された値とが
一致するときに、Hレベルを出力する。また、排他的N
ORゲート73は、アクセスアドレス13のビット1
と、多重配置領域設定レジスタ19のビット2に設定さ
れた値とが一致するときに、Hレベルを出力する。した
がって、ANDゲート75は、CPU101が多重配置
領域設定レジスタ19に設定された多重配置領域にアク
セスするときにHレベルを出力する。このとき、ORゲ
ート76はセレクト信号14をアクティブ(Hレベル)
にする。
【0047】ORゲート74は、多重配置領域設定レジ
スタ19に設定された値が“2b’00”以外のとき
に、Hレベルを出力する。したがって、ANDゲート7
7は、オンチップデバイス104が多重配置領域に配置
され、かつCPU101がその領域にアクセスするとき
にHレベルを出力する。
【0048】排他的制御回路16は、ANDゲート78
および79を含む。ANDゲート79は、ANDゲート
77からHレベルが出力される場合、すなわちCPU1
01がオンチップデバイス104が配置される多重配置
領域にアクセスするときに、アドレスデコーダ12から
出力されるセレクト信号15をマスクしてロウレベル
(以下、Lレベルと略す。)を出力する。
【0049】同様に、ANDゲート78は、アドレスデ
コーダ12からの信号にHレベルが出力される場合、す
なわちCPU101が外部デバイス105が配置される
多重配置領域にアクセスするときに、アドレスデコーダ
11から出力されるセレクト信号14をマスクしてLレ
ベルを出力する。
【0050】以上説明したように、本実施の形態におけ
るバス制御回路10によれば、キャッシュ対象領域内に
配置されたデバイスを、非キャッシュ対象領域にも配置
するようにしたので、ユーザは1つのデバイスの一部を
キャッシュ対象領域として使用し、他の部分を非キャッ
シュ対象領域として使用することが可能となった。
【0051】(第2の実施の形態)第1の実施の形態に
おいては、1つのデバイスがキャッシュ対象領域と非キ
ャッシュ対象領域とに多重配置された場合、CPU10
1はそれぞれの領域に任意にアクセスすることが可能で
ある。たとえば、CPU101が外部デバイス105内
のデータAをアクセスする際、キャッシュ対象領域を経
由してデータAを読出すと、外部デバイス105から読
出されたデータAがキャッシュメモリ102に書込まれ
る。このキャッシュメモリ102に存在するデータA
は、別のデータによってキャッシュメモリ102からデ
ータAを含んだ領域のデータが追い出されるまでの間存
在することになる。
【0052】このとき、CPU101が非キャッシュ対
象領域を経由して外部デバイス105のデータAを別の
値で上書きすることが可能であるが、キャッシュメモリ
102内のデータAはそのまま残るため、キャッシュメ
モリ102内に存在するデータAと、外部デバイス10
5に存在するデータ(データAに上書きされたデータ)
とが一致しなくなるといった問題がある。本実施の形態
においては、多重配置されたデバイスの2つの領域のう
ち、いずれか一方のみアクセス可能とすることで、この
問題点を解決するものである。
【0053】図4は、本発明の第2の実施の形態におけ
るバス制御回路32の詳細を説明するための図である。
このバス制御回路32を含んだマイクロプロセッサは、
図8に示す従来のマイクロプロセッサ100内のバス制
御回路103を図4に示すバス制御回路に置換すること
によって実現される。したがって、重複する構成および
機能の詳細な説明は繰返さない。
【0054】領域選択レジスタ30には、多重配置され
た2つの領域のどちらをアクセス可能とするかを示す1
ビットの情報が格納される。領域選択レジスタ30に
“0”が設定されると、オンチップデバイス104が配
置された本来の領域へのアクセスが許可され、多重配置
領域へのアクセスが禁止される。また、領域選択レジス
タ30に“1”が設定されると、オンチップデバイス1
04が配置された本来の領域へのアクセスが禁止され、
多重配置領域へのアクセスが許可される。この領域選択
レジスタ30は、CPU101が直接アクセス可能なレ
ジスタである。
【0055】図2に示すアドレス空間において、たとえ
ば、多重配置領域設定レジスタ19に“2b’01”が
設定され、かつ領域選択レジスタ30に“0”が設定さ
れている場合には、CPU101から出力されるアクセ
スアドレスの上位4ビットが“4b’0011”のと
き、すなわち、オンチップデバイス104が配置された
本来の領域(32H’3000_0000〜32H’3
FFF_FFFF)に対するアクセスが行なわれたとき
に、セレクト信号14がアクティブとなる。しかし、C
PU101から出力されるアクセスアドレス13の上位
4ビットが“4b’0111”のとき、すなわち、多重
配置領域(32H’7000_0000〜7FFF_F
FFF)にアクセスが行なわれても、セレクト信号14
がアクティブとならない。
【0056】また、多重配置領域設定レジスタ19に
“2b’01”が設定され、かつ領域選択レジスタ30
に“1”が設定されている場合には、CPU101から
出力されるアクセスアドレス13の上位4ビットが“4
b’0011”のとき、すなわち、オンチップデバイス
104が配置された本来の領域(32H’3000_0
000〜32H’3FFF_FFFF)に対するアクセ
スが行なわれても、セレクト信号14がアクティブとな
らない。しかし、CPU101から出力されるアクセス
アドレスの上位4ビットが“4b’0111”のとき、
すなわち、多重配置領域(32H’7000_0000
〜7FFF_FFFF)にアクセスが行なわれたとき
は、セレクト信号14がアクティブとなる。
【0057】アドレスデコーダ32は、ANDゲート8
0,81および85〜91と、排他的NORゲート82
および83と、ORゲート84,92および95とを含
む。なお、アドレスデコーダ33は、アドレスデコーダ
32と同様の構成を有している。
【0058】ANDゲート80は、CPU101から出
力されるアクセスアドレス13の上位4ビットが“4
b’0011”のときに、Hレベルを出力する。このと
き、領域選択レジスタ30に“0”が設定されていれ
ば、ANDゲート89がHレベルとなり、ORゲート9
5はセレクト信号14をアクティブ(Hレベル)にす
る。
【0059】また、領域選択レジスタ30に“1”が設
定されており、かつ多重配置領域設定レジスタ19に設
定された値が“2b’00”以外であれば、ANDゲー
ト87がHレベルとなり、ORゲート92は例外通知信
号34をアクティブ(Hレベル)にする。これによっ
て、CPU101に例外発生が通知される。CPU10
1は、例外通知信号34がHレベルになったことを検知
して、アクセスを禁止している領域に対するアクセスが
あったことを知ることができる。
【0060】ANDゲート81は、CPU101から出
力されるアクセスアドレス13の上位4ビットのうち、
ビット2および3が“2b’11”のときに、Hレベル
を出力する。また、排他的NORゲート82は、アクセ
スアドレス13のビット0(最上位ビット)と、多重配
置領域設定レジスタ19のビット1に設定された値とが
一致するときに、Hレベルを出力する。また、排他的N
ORゲート83は、アクセスアドレス13のビット1
と、多重配置領域設定レジスタ19のビット2に設定さ
れた値とが一致するときに、Hレベルを出力する。した
がって、ANDゲート85は、CPU101が多重配置
領域設定レジスタ19に設定された多重配置領域にアク
セスするときにHレベルを出力する。このとき、領域選
択レジスタ30に“0”が設定されていれば、ANDゲ
ート88がHレベルとなり、ORゲート92は例外通知
信号34をアクティブ(Hレベル)にする。これによっ
て、CPU101に例外発生が通知される。
【0061】また、領域選択レジスタ30に“1”が設
定されており、かつ多重配置領域設定レジスタ19に設
定された値が“2b’00”以外であれば、ANDゲー
ト90がHレベルとなり、ORゲート95はセレクト信
号14をアクティブ(Hレベル)にする。
【0062】以上説明したように、本実施の形態におけ
るバス制御回路によれば、領域選択レジスタ30によっ
て多重配置された2つの領域の一方をアクセス可能と
し、他方をアクセス禁止とするようにしたので、キャッ
シュメモリ102のデータと、オンチップデバイス10
4または外部デバイス105に格納されるデータとが不
一致となることを防止でき、コヒーレンシを保つことが
可能となった。
【0063】また、アクセスを禁止している領域にCP
U101がアクセスした場合に、CPU101に例外を
通知するようにしたので、ソフトウェアのデバッグなど
を容易に行なうことが可能となった。
【0064】(第3の実施の形態)本発明の第1の実施
の形態および第2の実施の形態においては、ユーザが多
重配置領域設定レジスタ19に値を設定することによっ
て、任意のデバイスをキャッシュ対象領域および非キャ
ッシュ対象領域に配置して、アクセスすることが可能と
なる。しかし、非キャッシュ対象領域を経由してアクセ
スする場合には、多重配置領域設定レジスタ19に設定
した値を考慮して、アドレスを変更してアクセスする必
要があり、ユーザによるプログラム作成の負担が大きく
なるといった問題点がある。
【0065】たとえば、図2に示すアドレス空間におい
て、“32H’0000_0000〜32H’1FFF
_FFFF”に配置された外部デバイス105を非キャ
ッシュ対象領域を経由してアクセスする場合、多重配置
領域設定レジスタ19に“2b’01”が設定されてい
れば、アクセスアドレス13を“32H’4000_0
000〜32H’5FFF_FFFF”に変更してアク
セスする必要がある。また、多重配置領域設定レジスタ
19に“2b’11”が設定されていれば、アクセスア
ドレス13を“32H’C000_0000〜32H’
DFFF_FFFF”に変更してアクセスする必要があ
る。
【0066】本発明の第3の実施の形態においては、分
岐命令、ロード命令、ストア命令などのアドレッシング
を伴う命令のバリエーションとして、アドレス自体は本
来の領域を示しつつ、多重配置領域へのアクセスである
ことを示す新たな命令を、CPUが実行できる命令群に
追加する。以降、これらの命令を総称して、多重配置領
域指定命令と呼ぶことにする。
【0067】CPUは、フェッチした命令が多重配置領
域指定命令であれば、多重配置領域設定レジスタ19に
設定された値を参照して、命令コードに指定されたアド
レスを多重配置領域を示すアドレスに変換してアクセス
アドレス13に出力する。
【0068】図5は、本発明の第3の実施の形態におけ
るCPU48の概略構成を示すブロック図である。この
CPU48は、フェッチした命令をデコードする命令デ
コーダ部40と、分岐先アドレス生成部41と、オペラ
ンドアドレス生成部42と、多重配置領域にアクセスす
る場合に分岐先アドレス生成部41によって生成された
アドレスを多重配置領域を示すアドレスに変換するアド
レス変換部44と、多重配置領域にアクセスする場合に
オペランドアドレス生成部42によって生成されたアド
レスを多重配置領域を示すアドレスに変換するアドレス
変換部45とを含む。
【0069】命令デコーダ部40は、バス制御回路また
はキャッシュメモリ102からフェッチした命令をデコ
ードし、分岐先アドレス生成部41およびオペランドア
ドレス生成部42の制御信号を生成すると共に、図示し
ない演算器、PC(プログラムカウンタ)、汎用レジス
タなど、フェッチした命令を実行するのに必要となる機
能の制御信号を生成する。また、その命令が多重配置領
域指定命令を示すものであるか否かを判定して、アドレ
ス変換部44および45によるアドレス変換を制御する
ためのアドレス変換制御信号43を生成する。
【0070】たとえば、命令デコーダ部40は、多重配
置領域分岐命令をデコードすると、通常の分岐命令の場
合と同様に、直接アドレッシング、レジスタ相対アドレ
ッシング、レジスタ間接アドレッシングなど、その命令
コードによって指定されたアドレッシング方法に従って
分岐先アドレスを生成するように分岐先アドレス生成部
41を制御する制御信号を出力するとともに、アドレス
変換制御信号43をアサートする。なお、命令デコーダ
部40が通常の分岐命令をデコードしたときは、アドレ
ス変換制御信号43をアサートしない。
【0071】図6は、アドレス変換部44の概略構成を
示すブロック図である。アドレス変換部44は、アドレ
ス変換制御信号43に応じて、分岐先アドレス生成部4
1から出力される分岐先アドレスの上位2ビットと、後
述するバス制御回路から出力される多重配置領域指定信
号60とを切替えるセレクタ50を含む。なお、オペラ
ンドアクセス時に必要となるオペランドアドレスを生成
するアドレス変換部45の概略構成も同様である。
【0072】セレクタ50は、アドレス変換制御信号4
3がアクティブの場合に後述するバス制御回路から出力
される多重配置領域指定信号60を選択して分岐先アド
レス46の上位2ビットとして出力し、アドレス変換制
御信号43が非アクティブの場合に分岐先アドレス生成
部41から出力される分岐先アドレスの上位2ビットを
選択して出力する。なお、分岐先アドレスの下位30ビ
ットはそのまま出力される。
【0073】図7は、本発明の第3の実施の形態におけ
るバス制御回路の構成の一部を示すブロック図である。
図3に示す第1の実施の形態におけるバス制御回路また
は図4に示す第2の実施の形態におけるバス制御回路
に、図7に示す回路が付加されて本実施の形態における
バス制御回路が構成される。なお、本実施の形態におけ
るバス制御回路の参照符号を63として説明する。
【0074】バス制御回路63は、変換領域設定レジス
タ61と、変換領域設定レジスタ61に設定された値に
よって多重配置領域設定レジスタ19および20のいず
れかの出力信号を選択するセレクタ62とが付加されて
いる。多重配置領域の設定は各デバイス(アドレスデコ
ーダ)毎に可能であり、どの多重配置領域にアドレスを
変換するかを設定するために、変換領域設定レジスタ6
1が設けられている。なお、この変換領域設定レジスタ
61は、CPU48が直接アクセス可能なレジスタであ
る。
【0075】図2に示すアドレス空間において、たとえ
ば、多重配置領域設定レジスタ19に“2b’01”が
設定され、多重配置領域設定レジスタ20に“2b’1
0”が設定されている場合には、外部デバイス105が
領域“32H’4000_0000〜32H’5FFF
_FFFF”(配置された本来の領域は“32H’00
00_0000〜32H’1FFF_FFFF”)に多
重配置され、オンチップデバイス104が領域“32
H’B000_0000〜BFFF_FFFF”(配置
された本来の領域は“32H’3000_0000〜3
2H’3FFF_FFFF”)に多重配置される。
【0076】変換領域設定レジスタ61に、多重配置領
域設定レジスタ19が選択される値が設定された場合、
CPU48が多重配置領域分岐命令によって“32H’
0000_0000”に分岐を行なうとすると、命令デ
コーダ部40がアドレス変換制御信号43をアサートす
るので、アドレス変換部44は分岐先アドレス46の上
位2ビットを、多重配置領域設定レジスタ19に設定さ
れた値に置換して、分岐アドレス46に“32H’40
00_0000”を出力する。
【0077】なお、CPU48が通常の分岐命令によっ
て“32H’0000_0000”に分岐を行なうとす
ると、命令デコーダ部40がアドレス変換制御信号43
をアサートしないので、アドレス変換部44は分岐アド
レス46に“32H’0000_0000”をそのまま
出力する。
【0078】このように、どのデバイスに対するアクセ
スであるかを変換領域設定レジスタ61に設定し、多重
配置領域へのアクセスであるか否かによって通常の分岐
命令と多重配置領域分岐命令とを使い分ければ、本来の
領域にアクセスしたい場合でも、多重配置領域にアクセ
スしたい場合でも、命令コードで指定するアドレスは同
じものが使用できる。
【0079】変換領域設定レジスタ61に設定する値と
使用する命令とは、アクセス対象のデバイスをキャッシ
ュ対象としてアクセスするか、非キャッシュ対象として
アクセスするかによって一意に決定されるので、ユーザ
がアドレスを意識せずにプログラムを作成することが可
能となる。
【0080】また、アドレス空間が、1つのキャッシュ
対象領域と1つの非キャッシュ対象領域との2つの領域
に分割されている場合には、多重配置される領域のアド
レスの最上位ビットは本来の領域のアドレスの最上位ビ
ットを反転したものとなる。したがって、この場合に限
り、多重配置領域指定信号60を生成するセレクタ62
および変換領域設定レジスタ61が不要となり、アドレ
ス変換部44はアドレス変換制御信号43の値に応じて
分岐先アドレス生成部41から出力される分岐先アドレ
ス46の最上位ビットを反転するだけで、分岐先アドレ
ス46を変換することが可能となる。
【0081】以上説明したように、本実施の形態におけ
るCPU48によれば、フェッチした命令が多重配置領
域指定命令であれば、多重配置領域設定レジスタ19に
設定された値を参照して、命令コードに指定されたアド
レスを多重配置領域を示すアドレスに変換するようにし
たので、ユーザはプログラム作成時に、アクセスするデ
バイスをキャッシュ対象としてアクセスするか、非キャ
ッシュ対象としてアクセスするかによって命令を使い分
けるだけで、多重配置領域に対応したアドレスを明示的
に指定する必要がなくなり、プログラム作成時における
負担を削減することが可能となった。
【0082】今回開示された実施の形態は、すべての点
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
【0083】
【発明の効果】請求項1に記載のバス制御回路によれ
ば、制御手段が多重配置領域設定レジスタに設定された
アドレスを参照して、第2の領域に対するアクセスを検
出したときに、デバイスに対するアクセスを発生させる
ので、デバイスの一部をキャッシュ対象領域として使用
し、その他の部分を非キャッシュ対象領域として使用す
ることが可能となった。
【0084】請求項2に記載のバス制御回路によれば、
デバイス制御回路は、デバイスが第1の領域に配置され
るとともに、第2の領域にも配置されているように制御
することが可能となった。
【0085】請求項3に記載のバス制御回路によれば、
一度に複数のデバイスに対するアクセスが発生すること
を防止でき、アクセスの正当性を保つことが可能となっ
た。
【0086】請求項4に記載のバス制御回路によれば、
非キャッシュ対象領域を経由してデバイス内のデータに
異なるデータを上書きすることによって発生するキャッ
シュメモリとデバイスとのデータの不一致を防止するこ
とが可能となった。
【0087】請求項5に記載のバス制御回路によれば、
プロセッサがアクセスが禁止されている領域に対するア
クセスが発生したことを知ることができるので、それを
ユーザに提示することによって、デバッグの効率を向上
させることが可能となった。
【0088】請求項6に記載のプロセッサによれば、ア
ドレス変換手段が、アドレス空間に多重配置されたデバ
イスの領域に対するアクセスを伴う命令が検出されたと
きに、アドレス生成手段によって生成されたアドレスを
多重配置された領域に対応するアドレスに変換するの
で、ユーザがデバイスが多重配置された領域にアクセス
する命令を記述するときに、そのアドレスを明示的に指
定する必要がなくなり、プログラム作成時におけるユー
ザの負担を軽減することが可能となった。
【0089】請求項7に記載のプロセッサによれば、ア
ドレス変換手段は、多重配置領域設定レジスタが複数あ
る場合に、アドレス生成手段によって生成されたアドレ
スをどのデバイスに対応したアドレスに変換するかを決
定することが可能となった。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態におけるバス制御
回路の構成を示すブロック図である。
【図2】 2つのキャッシュ対象領域と2つの非キャッ
シュ対象領域との4つの領域に分割されている場合のア
ドレス空間を示す図である。
【図3】 本発明の第1の実施の形態におけるバス制御
回路10の詳細を説明するための図である。
【図4】 本発明の第2の実施の形態におけるバス制御
回路の詳細を説明するための図である。
【図5】 本発明の第3の実施の形態におけるCPU4
8の概略構成を示すブロック図である。
【図6】 アドレス変換部44の概略構成を示すブロッ
ク図である。
【図7】 本発明の第3の実施の形態におけるバス制御
回路の構成の一部を示すブロック図である。
【図8】 キャッシュメモリを内蔵した従来のマイクロ
プロセッサを利用したシステムの概略構成を示すブロッ
ク図である。
【図9】 CPU101のアドレス空間におけるデバイ
スの配置の一例を示す図である。
【符号の説明】
10,103 バス制御回路、11,12,32,33
アドレスデコーダ、16 排他制御回路、17,18
デバイス制御回路、19,20 多重配置領域設定レ
ジスタ、30,31 領域選択レジスタ、40 命令デ
コーダ部、41分岐先アドレス生成部、42 オペラン
ドアドレス生成部、44,45 アドレス変換部、4
8,101 CPU、50,62 セレクタ、61 変
換領域設定レジスタ、70,71,75,77,78,
79,80,81,85〜91,93,94 ANDゲ
ート、72,73,82,83 排他的NORゲート、
74,76,84,92,95 ORゲート、100
マイクロプロセッサ、102 キャッシュメモリ、10
4 オンチップデバイス、105 外部デバイス。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 アドレス空間に配置されるデバイスを制
    御するバス制御回路であって、 前記デバイスが本来配置される第1の領域と異なる第2
    の領域の上位アドレスが設定される多重配置領域設定レ
    ジスタと、 前記第1の領域に対するアクセスを検出したときだけで
    なく、前記多重配置領域設定レジスタに設定されたアド
    レスを参照して、前記第2の領域に対するアクセスを検
    出したときにも、前記デバイスに対するアクセスを発生
    させて、前記デバイスがアドレス空間上で多重に配置さ
    れるように制御するための制御手段とを含む、バス制御
    回路。
  2. 【請求項2】 前記制御手段は、プロセッサから出力さ
    れたアドレスをデコードし、デコード結果が前記第1の
    領域または前記多重配置領域設定レジスタに設定された
    第2の領域に対応する場合に、前記デバイスをセレクト
    するセレクト信号を出力するアドレスデコーダと、 前記アドレスデコーダから出力されたセレクト信号に応
    じて、前記デバイスに対するアクセスを制御するデバイ
    ス制御回路とを含む、請求項1記載のバス制御回路。
  3. 【請求項3】 前記バス制御回路は、複数の多重配置領
    域設定レジスタと、 前記複数の多重配置領域設定レジスタに対応する複数の
    アドレスデコーダと、 前記複数のアドレスデコーダに対応する複数のデバイス
    制御回路と、 前記複数のアドレスデコーダから出力されるセレクト信
    号が同時にアクティブとなるのを禁止する排他制御回路
    とを含む、請求項2記載のバス制御回路。
  4. 【請求項4】 前記バス制御回路はさらに、前記第1の
    領域および前記第2の領域に対するアクセスの一方を許
    可し、他方を禁止する情報が格納される領域選択レジス
    タを含み、 前記制御手段は、前記領域選択レジスタを参照して、前
    記第1の領域および前記第2の領域に対するアクセスを
    制御する、請求項1記載のバス制御回路。
  5. 【請求項5】 前記制御手段は、前記領域選択レジスタ
    を参照して、アクセスが禁止されている領域に対するア
    クセスが発生したときに、プロセッサに例外が発生した
    ことを通知する、請求項4記載のバス制御回路。
  6. 【請求項6】 アドレス空間上で複数の領域に多重配置
    されたデバイスを制御するプロセッサであって、 フェッチした命令をデコードする命令デコーダと、 前記命令デコーダによって、前記アドレス空間に対する
    アクセスを伴う命令が検出されたときに、アドレスを生
    成するためのアドレス生成手段と、 前記命令デコーダによって、前記アドレス空間に多重に
    配置されたデバイスの領域に対するアクセスを伴う命令
    が検出されたときに、前記アドレス生成手段によって生
    成されたアドレスを前記多重に配置された領域に対応す
    るアドレスに変換するためのアドレス変換手段とを含
    む、プロセッサ。
  7. 【請求項7】 前記プロセッサはさらに、前記デバイス
    を多重に配置するときの上位アドレスが設定される複数
    の多重配置領域設定レジスタと、 前記複数の多重配置領域設定レジスタのいずれを選択す
    るかを示す情報が格納される変換領域設定レジスタとを
    含み、 前記アドレス変換手段は、前記変換領域設定レジスタに
    格納された情報によって選択された多重配置領域設定レ
    ジスタに設定される上位アドレスを参照して、前記アド
    レス生成手段によって生成されたアドレスを前記多重に
    配置された領域に対応するアドレスに変換する、請求項
    6記載のプロセッサ。
JP2002146547A 2002-05-21 2002-05-21 バス制御回路およびプロセッサ Withdrawn JP2003337790A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002146547A JP2003337790A (ja) 2002-05-21 2002-05-21 バス制御回路およびプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002146547A JP2003337790A (ja) 2002-05-21 2002-05-21 バス制御回路およびプロセッサ

Publications (1)

Publication Number Publication Date
JP2003337790A true JP2003337790A (ja) 2003-11-28

Family

ID=29705505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002146547A Withdrawn JP2003337790A (ja) 2002-05-21 2002-05-21 バス制御回路およびプロセッサ

Country Status (1)

Country Link
JP (1) JP2003337790A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205445A (ja) * 2008-02-28 2009-09-10 Sony Corp アドレス変換回路
JP2012507100A (ja) * 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 論理ユニット動作
CN115114200A (zh) * 2022-06-29 2022-09-27 海光信息技术股份有限公司 一种多芯片系统及基于其的启动方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205445A (ja) * 2008-02-28 2009-09-10 Sony Corp アドレス変換回路
JP2012507100A (ja) * 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 論理ユニット動作
CN115114200A (zh) * 2022-06-29 2022-09-27 海光信息技术股份有限公司 一种多芯片系统及基于其的启动方法
CN115114200B (zh) * 2022-06-29 2023-11-17 海光信息技术股份有限公司 一种多芯片系统及基于其的启动方法

Similar Documents

Publication Publication Date Title
US6789172B2 (en) Cache and DMA with a global valid bit
JP3740195B2 (ja) データ処理装置
JP3713312B2 (ja) データ処理装置
US6697916B2 (en) Cache with block prefetch and DMA
US6678797B2 (en) Cache/smartcache with interruptible block prefetch
US6754781B2 (en) Cache with DMA and dirty bits
US5237671A (en) Translation lookaside buffer shutdown scheme
JP4499237B2 (ja) 単純高性能メモリ管理ユニット
US6968400B2 (en) Local memory with indicator bits to support concurrent DMA and CPU access
JPH11161547A (ja) データ処理装置用記憶装置、および記憶場所にアクセスする方法
JPH07191903A (ja) データ処理システムおよび動作方法
US20110082999A1 (en) Data processing engine with integrated data endianness control mechanism
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
JP2003006046A (ja) メモリプロテクション方法および回路
JPH10143431A (ja) マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法
JP2007280421A (ja) データ処理装置
JP2003337790A (ja) バス制御回路およびプロセッサ
KR19990037571A (ko) 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
JP3190032B2 (ja) データ記憶装置
JP4024247B2 (ja) 半導体データプロセッサ
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法
US12007902B2 (en) Configurable memory system and memory managing method thereof
JP2005108262A (ja) データ処理装置
JP2004094807A (ja) 命令キャッシュおよびマイクロプロセッサとその設計方法
US20240152463A1 (en) Configurable memory system and memory managing method thereof

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050802