(57)【要約】集積回路は：周辺デバイス(10)からの読出し命令の受信時に、所定のアクセス権に従って、周辺デバイス(10)にメモリセグメントへのアクセスを許可または拒否するオンチップアクセス権マネジャー(40)と、メモリデータバスに接続され、メモリセグメントへのアクセスが許可されない限り、各メモリデータバスワイヤに設定された論理１または０へのアクセスをブロックするようにアクセス権マネジャーにより制御可能な、オンチップロック(50)とを備える。
2008545190.tif 000002
【特許請求の範囲】
【請求項１】
ａ）メモリに格納されているデータを少なくとも１つの周辺デバイスに伝える複数の導電性のワイヤを有するオンチップメモリデータバスと、
ｂ）読出し命令に応えてメモリセグメントに格納されているデータが少なくとも１つの周辺デバイスに伝えられるように、前記メモリセグメントに格納されているデータに従って、前記メモリデータバスの各ワイヤに論理１または論理０を設定するように制御可能である、前記メモリデータバスに接続されたオンチップメモリと、
ｃ）前記周辺デバイスから読出し命令を受信すると、所定のアクセス権に従って、前記メモリセグメントへのアクセスを前記周辺デバイスに許可または拒否する、オンチップアクセス権マネジャーと、
ｄ）前記メモリセグメントへのアクセスが許可されない限り、各メモリデータバスに設定された論理１または０へのアクセスをブロックするように前記アクセス権マネジャーにより制御可能な、前記メモリデータバスに接続されたオンチップロックと、
を備えることを特徴とする集積回路。
【請求項２】
前記ロックは、前記メモリセグメントへのアクセスが許可された場合に、前記メモリデータバスの各ワイヤを、前記周辺デバイスのデータ入力ポートに接続されているオンチップデバイスデータバスの対応するワイヤへ接続するように、前記アクセス権マネジャーにより制御可能であることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記ロックは、前記メモリセグメントへのアクセスが拒否された場合に、前記メモリデータバスの各ワイヤにダミーの論理１または０を設定するように、前記アクセス権マネジャーにより制御可能であることを特徴とする請求項２に記載の集積回路。
【請求項４】
複数の導電性のワイヤを有するオンチップメモリデータバスを備える集積回路内のオンチップメモリへのアクセスを確保する方法であって：
ａ）前記オンチップメモリが、読出し命令に応答して、メモリセグメントに格納されているデータを周辺デバイスへ伝えることを鑑みて、格納データに従ってメモリデータバスの各ワイヤに論理１または０を設定するステップと、
ｂ）オンチップアクセス権マネジャーが、前記周辺デバイスからの読出し命令を受信すると、所定のアクセス権に従って、前記メモリセグメントへのアクセスを前記周辺デバイスに許可または拒否するステップと、
ｃ）前記メモリデータバスに接続されているオンチップロックが、前記メモリセグメントへのアクセスが許可されない限り、各メモリデータバスワイヤに設定された論理１または０へのアクセスをブロックするステップと、
を含むことを特徴とするオンチップメモリへのアクセスの確保方法。
【請求項５】
ステップａ）は、ステップｂ）が終了する前に開始することを特徴とする請求項４に記載の方法。
【請求項６】
ステップａ）およびｂ）の両方は、周辺デバイスによって送信された読出し命令の受信時に開始することを特徴とする請求項５に記載の方法。
【請求項７】
ステップｂ）の終了時に、前記ロックが、前記メモリセグメントへのアクセスが許可された場合に、前記メモリデータバスの各ワイヤを前記周辺デバイスに接続されたオンチップデバイスデータバスの対応するワイヤに接続し、あるいは、前記ロックが、前記メモリセグメントへのアクセスが拒否された場合には、前記デバイスデータバスの各ワイヤにダミーの論理１または０を設定することを特徴とする請求項４〜６のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路およびオンチップメモリへのアクセスを確実にする方法に関する。
【背景技術】
【０００２】
既存の集積回路は：
ａ）メモリに格納されているデータを少なくとも１つのデバイスに伝える複数の伝導性のワイヤを有するオンチップメモリデータバスと、
ｂ）読出し命令に応えてメモリセグメントに格納されているデータが少なくとも１つの周辺デバイスに伝えられるように、メモリセグメントに格納されているデータに従って、メモリデータバスの各ワイヤに論理１または論理０を設定するように制御可能である、メモリデータバスに接続されたオンチップメモリと、
ｃ）周辺デバイスから読出し命令を受信すると、所定のアクセス権に従って、メモリセグメントへのアクセスを周辺デバイスに許可または拒否する、オンチップアクセス権マネジャーと、
を具えている。
【０００３】
オンチップメモリデータバスは、周辺デバイスに直結されている。集積回路の動作期間中に、アクセス権マネジャーは、メモリセグメントに格納されているデータに関する読出し命令を送信する各周辺デバイスのアクセス権を判定する。
【０００４】
周辺デバイスがメモリセグメントへアクセスする権利を有する場合には、アクセス権マネジャーがアクセスを許可し、かつそのときのみ、オンチップメモリは、格納されているデータをメモリデータバスを介してデバイスへ伝えるように制御される。
【０００５】
デバイスのアクセス権を判定し、格納されているデータを伝えるべくメモリを制御する動作は、時間がかかり、さらに、オンチップメモリと周辺デバイスとの間のデータ通信速度を低下させる。
【０００６】
アクセスがアクセス権マネジャーによって判定されるメモリの一例が、Ｃｈａｌｌｅｎｅｒらによる特許文献１に開示されている。
【０００７】
【特許文献１】米国特許出願公開第２００３／００４１２５４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、本発明の目的は、オンチップメモリと周辺デバイスとの間のデータ通信速度を向上するように設計した集積回路を提供することにある。
【課題を解決するための手段】
【０００９】
前述のおよび他の目的に鑑み、本発明によれば：
ｄ）メモリセグメントへのアクセスが許可されない限り、各メモリデータバスに設定された論理１または０へのアクセスをブロックするようにアクセス権マネジャーにより制御可能な、メモリデータバスに接続されたオンチップロック、
を具える集積回路が提供される。
【００１０】
上述の集積回路において、ロックは、メモリセグメントへのアクセスが許可されない限り、周辺デバイスからのメモリデータバスへのあらゆるアクセスをブロックする。従って、メモリセグメントへの周辺デバイスのアクセス権が最終的に許可される前に、メモリデータバスの各ワイヤに論理１または０を設定するためのオンチップメモリの制御を開始することができる。その結果、メモリセグメントへのアクセスが許可されたときには、メモリデータバスのワイヤに論理１または０を設定するプロセスの少なくとも一部がすでに実行されているため、メモリに格納されているデータへアクセスするための時間が低減される。
【００１１】
上述の集積回路の実施態様は、以下の１つまたは複数の特徴を含むことができる：
‐ロックは、メモリセグメントへのアクセスが許可された場合に、メモリデータバスの各ワイヤを、周辺デバイスのデータ入力ポートに接続されているオンチップデバイスデータバスの対応するワイヤへ接続するように、アクセス権マネジャーにより制御可能、
‐ロックは、メモリセグメントへのアクセスが拒否された場合に、メモリデータバスの各ワイヤにダミーの論理１または０を設定するように、アクセス権マネジャーにより制御可能。
【００１２】
上述の集積回路の実施態様には、以下の利点がある：
‐各デバイスのデータバスワイヤにダミーの論理１または０を設定すると、デバイスのデータバスに送信された以前の読出しデータが消去され、さらに、各ワイヤが所定の状態に設定される
【００１３】
本発明は、上述の集積回路内のオンチップメモリへのアクセスを確保する方法にも関し、当該方法は：
ａ）オンチップメモリが、読出し命令に応答して、メモリセグメントに格納されているデータを周辺デバイスへ伝えることを鑑みて、格納データに従ってメモリデータバスの各ワイヤに論理１または０を設定するステップと、
ｂ）オンチップアクセス権マネジャーが、周辺デバイスからの読出し命令を受信すると、所定のアクセス権に従って、メモリセグメントへのアクセスを周辺デバイスに許可または拒否するステップと、
ｃ）メモリデータバスに接続されているオンチップロックが、メモリセグメントへのアクセスが許可されない限り、各メモリデータバスワイヤに設定された論理１または０へのアクセスをブロックするステップと、
を含む。
【００１４】
上述の方法の実施態様は、以下の１つまたは複数の特徴を含むことができる：
‐ステップａ）は、ステップｂ）が終了する前に開始する、
‐ステップａ）およびｂ）の両方は、周辺デバイスによって送信された読出し命令の受信時に開始する、
‐ステップｂ）の終了時に、ロックが、メモリセグメントへのアクセスが許可された場合に、メモリデータバスの各ワイヤを周辺デバイスに接続されたオンチップデバイスデータバスの対応するワイヤに接続し、あるいは、ロックが、メモリセグメントへのアクセスが拒否された場合には、デバイスデータバスの各ワイヤにダミーの論理１または０を設定する。
【００１５】
上述の方法の実施態様は、以下の利点を有する：
‐ステップａ）がステップｂ）の前に開始すると、ステップａ）およびｂ）が少なくとも部分的に並行して実行されるため、データ通信の速度が向上する
‐ステップａ）およびｂ）が同時に開始すると、メモリと周辺デバイスとの間のデータ通信の速度がさらに向上する
【００１６】
本発明のこれらおよび他の態様は、これ以降に述べる実施例、添付の図面および請求の範囲を参照して明らかにしていく。
【発明を実施するための最良の形態】
【００１７】
図１は、ＡＲＭ社が提供しているＡＲＭプロセッサのような、集積回路２を示す図である（ウェブサイトwww.arm.comを参照されたい）。
【００１８】
集積回路２は、当該集積回路の全素子がエッチングされるチップを形成するダイを有する。図１には、本発明の理解に必要な、集積回路の詳細部のみ示す。
【００１９】
集積回路２は、メモリアドレスのレンジに対応する少なくとも１つのオンチップメモリ８を有する。このメモリアドレスのレンジは、例えば、ｎを１より大きい整数として、ｎ個のメモリアドレスサブレンジに分割され、各サブレンジはメモリセグメントに対応している。メモリ８は、例えば、ＳＲＡＭ（静的ランダムアクセスメモリ）のような同期メモリである。
【００２０】
少なくとも１つのメモリセグメントへのアクセスは、ＣＰＵ（中央処理装置）、ＤＳＰ（デジタルシグナルプロセッサ）またはＤＭＡ（ダイレクトメモリアクセス）ユニットのような、複数の周辺デバイスの間で共有されている。便宜上、１つの周辺デバイス１０のみを示す。
【００２１】
メモリ８は、オンチップアドレスバス１４に接続されたアドレス入力ポート１２を有する。ポート１２は、メモリ８において読み出すべきデータのアドレスを受信する。
【００２２】
メモリ８は、命令入力ポート１６およびデータ出力ポート１８も有する。
【００２３】
ポート１６は、制御信号を含む読出し命令を受信するために、オンチップインストラクションバス２０に接続されている。
【００２４】
ポート１８は、デバイス１０のような周辺デバイスに格納データを伝えるために、メモリデータバス２２に接続されている。
【００２５】
バス１４，２０および２２は、パイプライン型であるのが好適である。
【００２６】
図１には、バス２２の構造のみを詳細に示してある。バス２２は、多数の並列なワイヤ２４を有し、各ワイヤ２４は、ポート１８の出力ピン２６に接続されている。説明の便宜上、ワイヤ２４を８本のみ示す。各ピン２６は、その各自のワイヤ２４の電圧を、論理１または論理０に対応する電圧に設定することができる。ワイヤ２４に設定される論理１および０は、メモリ８において読み出されるデータの値に対応するため、この値を、周辺デバイスに伝えることができる。
【００２７】
デバイス１０は、メモリ８へ読出し命令を送るためにバス２０に接続されている出力インストラクションポート３０と、読み出すべきデータのアドレスを指定するためにバス１４に接続されているアドレス出力ポート３２とを有する。
【００２８】
デバイス１０は、デバイスデータバス３６に接続されているデータ入力ポート３４も含む。バス３６は、メモリ８へのアクセスが許可された場合に、メモリ８において読み出されたデータを受信するのに用いられる。
【００２９】
バス３６は、バス２２として同数の導電性ワイヤ３８、すなわち、例えば８本のワイヤを有する。各ワイヤ３８は、各ワイヤ２４に対応している。
【００３０】
集積回路２は、メモリ８の特定のメモリセグメントへのデバイス１０のアクセスを許可または拒否する、オンチップアクセス権マネジャー４０を有する。マネジャー４０は、各周辺デバイスに対するアクセス権のデータベース４４を含むメモリ４２に接続されている。例えば、データベース４４は、各周辺デバイスに対する以下のデータを指定する：
-  周辺デバイス識別子
-  バーストアクセスまたは非シーケンシャルアクセスのようなメモリアクセスタイプ
-  周辺デバイスの特権
-  周辺デバイスがアクセス可能なメモリセグメントのアドレス
【００３１】
マネジャー４０は、ロック５０を制御して、特定の周辺デバイスからのメモリセグメントアクセスを、データベース４４に格納されたこのデバイスのアクセス権に従って、ブロックしたり、またはブロックを解除したりすることができる。
【００３２】
マネジャー４０は、制御ライン５２を介してロック５０に接続されている。
【００３３】
ロック５０は、ワイヤ２４を介してメモリ８により送信された読出しデータを受信する、バス２２に接続されたデータ入力ポート５４と、バス３６に接続された出力ポート５６とを有する。
【００３４】
ロック５０は、メモリセグメントへのアクセスが許可されない限り、各ワイヤ２４に設定された論理１または０へのデバイス１０からのアクセスをブロックするように、マネジャー４０によって制御される。
【００３５】
例えば、ロック５０は、メモリ８へのアクセスが許可された場合に、ワイヤ２４をそれぞれのワイヤ３８に接続することができるようにして、ワイヤ２４に設定されたデータが、ロック５０を介してバス３６に伝えられるようにする。
【００３６】
ロック５０は、デバイス１０のような周辺デバイスへ所定のダミーデータを伝えるために、ワイヤ３８のそれぞれを、ダミーの論理１または０に設定することもできる。このダミーデータは、バス２２上に設定されるデータとは無関係とするのが好適である。
【００３７】
集積回路２の動作を、図２および３を参照して説明する。
【００３８】
図２は、時間ｔに対するクロック信号６０を示す図である。クロック信号６０は、メモリ８、バス１４，２０，２２および３６ならびにマネジャー４０の動作を同期させるのに用いられる。動作は、クロック信号６０の立ち上がりエッジによって同期する。
【００３９】
図２において、時刻ｔ０，ｔ１およびｔ２は、それぞれ、クロック６０の３つの連続した立ち上がりエッジに対応している。クロックサイクルｔｃｙｃは、クロック６０の一周期に対応している。
【００４０】
曲線６２は、チップ選択信号の値を表す。ここで、チップ選択信号は時刻ｔ０で１に等しくなってメモリ８を選択する。
【００４１】
曲線６４は、バス１４上のアドレスが変化する時間および読出し／書き込み命令が変化する時間を表す。図２において、時刻ｔ０で、バス１４上のアドレスはＤ２であり、かつ、時刻ｔ１でのアドレスはＤ３である。時刻ｔ０およびｔ１において、読出し命令はポート１６上にある。
【００４２】
曲線６６は、メモリ８によりバス２２上に設定されるデータを示す。時刻ｔ０にて、データＱ１がバス２２に設定される。データＱ１は、前のクロックサイクルの期間に周辺デバイスによって要求されたデータに相当する。時刻ｔ１に、データＱ２がバス２２に設定される。データＱ２は、時刻ｔ０にメモリ８から読み出される、アドレスＤ２に格納されているデータに相当する。
【００４３】
図２に示すように、メモリ８が、先のデータＱ１を時刻ｔ０に要求されたデータＱ２と置き換える前には、タイムインターバルｔａだけ待機する必要がある。このインターバルｔａは、メモリ８の“メモリアクセスタイム”として知られる。インターバルｔａは、メモリ８の論理セルを経由する格納データが、出力ピン２６に到達するまえに要する時間に相当する。インターバルｔａは、時刻ｔ０に始まる。
【００４４】
例えば、インターバルｔａは、１２５ＭＨｚの周波数で動作するシングルポートのＳＲＡＭに対して２．８３ｎｓに等しい。このインターバルｔａは、典型的に、５ｎｓよりも短い。
【００４５】
曲線６８は、マネジャー４０が、時刻ｔ０にバス１４および２０にあるデータに応じて、メモリセグメントへのアクセスを許可または拒否すべきかどうかを決定するのに必要な、アクセスタイムインターバルｔｂを示す。好適には、インターバルｔｂは時刻ｔ０に始まり、インターバルｔａの終了前に終わるようにする。
【００４６】
ここで、バス１４，２０，２２および３６は、例えばＡＲＭ  ＡＭＢＡ２．０バス（ＡＭＢＡ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｏｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｔｅｃｔｕｒｅ）のようなパイプラインバスとして働く。ＡＲＭ  ＡＭＢＡバス２．０は、ＡＭＢＡ規格の、バージョン２．０に基づいて開発されたバスアーキテクチャである。パイプラインバスでは、読出し命令およびアドレスは、“アドレスフェーズ”と称される１つのクロックサイクルにて送信され、さらに、アドレスに対応する格納データは、“データフェース”と称される後続するクロックサイクルにて読み出される。
【００４７】
ここで、アドレスＤ２は、時刻ｔ０にメモリ８によって読み出され、対応するデータＱ２は、後続のクロックサイクルにおける時刻ｔ１にて、バス２２上で利用可能となるだけである。
【００４８】
図３は、周辺デバイス１０から読み出す際の、メモリ８へのアクセスを確保する方法を示す。
【００４９】
最初に、ステップ７６において、デバイス１０は、バス２０で読出し命令を、さらに、バス１４で読み出すべきデータのアドレスを送信する。読出し命令は、デバイス識別子および要求されるメモリアクセスタイプを含む。デバイス１０は、また、バス２０のチップ選択信号を、メモリ８に応じて、論理１に設定する。
【００５０】
時刻ｔ０に、ステップ７８において、読出し命令の受信時に、メモリ８は、ポート１２で受信したアドレス、例えばアドレスＤ２に対応するデータを読み出すように制御される。従って、時刻ｔ０に、メモリ８は、読み出すべきデータに従って、ワイヤ２４に論理１または０を設定する処理を開始する。
【００５１】
並行して、時刻ｔ０に、ステップ８０において、マネジャー４０は、デバイス１０の識別子に関連付けたアクセス権の判定を開始する。
【００５２】
さらに並行して、ステップ８２において、マネジャー４０がデバイス１０のアクセス権の判定を終えていない限り、ロック５０は、バス２２に存在するデータへのアクセスをブロックする。例えば、ロック５０は、ワイヤ２４をワイヤ３８から切り離した状態に維持する。
【００５３】
時刻ｔ０＋ｔｂに、マネジャー４０は、アドレスＤ２に対応するメモリセグメントへのアクセスを、許可または拒否する。
【００５４】
マネジャー４０が、メモリセグメントへのアクセスを許可した場合、マネジャー４０は、ライン５２を介してロック５０を制御し、バス２２へのアクセスのブロックを解除する。
【００５５】
例えば、それに応じて、ステップ８６においてロック５０がワイヤ２４をそれぞれのワイヤ３８に接続するため、バス２２に設定されたデータを、バス３６に伝えることができる。
【００５６】
それに対して、マネジャー４０がメモリセグメントへのアクセスを拒否した場合、マネジャー４０は、ロック５０を制御して、バス３６にダミーデータを設定する。その結果、ステップ８８において、ロック５０は、各ワイヤ３８にダミーの論理１または０を設定する。ダミーデータの設定は、デバイス１０によって容易に識別できる論理１および０の組合せとするのが好適である。
【００５７】
時刻ｔ０＋ｔ１に、ステップ９０において、メモリ８は、デバイス１０へ読出しデータＱ２を送るための、各ワイヤ２４への論理１または０の設定を終了する。しかしながら、データＱ２は、ワイヤ２４がロック５０によってワイヤ３８に接続されている場合に限りデバイス１０に送信される。そうでなければ、データＱ２は、デバイス１０によってアクセスできず、かつ読み出されないままとなる。
【００５８】
時刻ｔ１に、ステップ９２において、バス３６に設定されたデータが、デバイス１０によって読み出される。読出しデータは、ロック５０がバス２２へのアクセスをブロックしている場合は、ダミーデータに等しく、ロック５０が、ワイヤ２４をワイヤ３８に接続している場合は、データＱ２に等しい。
【００５９】
従って、集積回路２の特定の構造により、インターバルｔａの期間中に、メモリ８のメモリセグメントにアクセスする権利を判定することができる。従って、メモリ８においてデータＱ２の読み出しが開始される前に、インターバルｔｂの終了を待機する必要がもはやなくなる。
【００６０】
多くのさらなる実施態様が可能である。例えば、メモリセグメントにアクセスするための権利は、マネジャー４０によって、デバイス識別子のみか、または読み出すべきアドレスのみから決定することができる。読出し命令から引き出される任意の追加情報を用いて、メモリセグメントへのアクセスを許可または拒否することもできる。
【００６１】
ここに述べた集積回路の構成およびメモリセグメントへのアクセスを確保する方法は、非同期メモリに適用することもできる。
【００６２】
メモリセグメントを、メモリ８に対する全アドレスの範囲と同じ大きさにすることもできる。
【００６３】
上述した構成およびメモリへのアクセスを確保する方法は、非パイプラインバスに適用することもできる。
【００６４】
ロック５０は、全ワイヤ３８を論理１または論理０のどちらかに設定するＡＮＤゲートのような論理ゲートによって構成することができる。
【００６５】
周辺デバイスは、オンチップの周辺デバイスでなく、適切なインタフェースを介して集積回路に接続されるデバイスとすることもできる。
【図面の簡単な説明】
【００６６】
【図１】集積回路の構成の概略図である。
【図２】図１の集積回路におけるオンチップメモリにアクセスするのに用いられる種々の信号のタイミングチャートである。
【図３】図１の集積回路におけるオンチップメモリへのアクセスを確保する方法のフローチャートである。
【図１】
2008545190.tif 000003
【図２】
2008545190.tif 000004
【図３】
2008545190.tif 000005
【国際調査報告】
2008545190.tif 000006
2008545190.tif 000007
2008545190.tif 000008