(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、それがREAD／WRITEアクセスを行う複数のデバイスとの間に介挿されたローカルバス制御装置において、
前記複数のデバイスのそれぞれの、デバイス指定を受けてからREAD／WRITE可となるまでの遅延時間≦使用するクロックの周期×ｎ、なる整数ｎを表わすためのデータをそれぞれが格納するためのデバイス宛ての複数のレジスタであって、使用可能性があるクロック周期の範囲と、使用可能性があるデバイスの前記遅延時間の範囲とから定める整数ｎの最大値より、設定値を引いた差値を表わすに必要かつ可及的に少いビット数のレジスタ、を有し、前記ＣＰＵが与えるアドレスからデバイス指定信号を生成して該当デバイスに与えるとともに、該当デバイスに宛てたレジスタからデータを読み出して前記設定値を加えて得られる整数ｎ分のクロックの発生の後に前記ＣＰＵが与えるコマンドに対応するREAD／WRITEさせる信号を該当デバイスに与える、ことを特徴とするローカルバス制御装置。
【請求項２】
前記設定値は、前記使用可能性があるクロック周期の範囲と、使用可能性があるデバイスの前記遅延時間の範囲とから定める整数ｎの最小値である、請求項１記載のローカルバス制御装置。
【請求項３】
前記複数のデバイスはページアクセスモードを持つメモリを含み、前記複数のレジスタは、該メモリの各ワードのアクセスのための各ワード宛ての各レジスタを含む、請求項１記載のローカルバス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵによる複数のデバイスのデータ入，出力制御に関し、特に、ＣＰＵと複数のデバイスとの間にあって、ＣＰＵが出力するアドレスおよびコマンドに応じてデバイスに対し、データ入，出力すなわちREAD／WRITEアクセス、のための制御信号を与えるローカルバス制御装置に関する。
【０００２】
【従来の技術】
ローカルバス制御装置は、ＣＰＵが出力するアドレスを、ローカルバスアドレスおよびチップセレクト信号ＣＳにデコ−ドして、アドレスはローカルバスに、チップセレクト信号ＣＳは該当デバイスに与える。デバイスの代表的なものは、ＲＯＭ，ＲＡＭなど、いわゆるメモリであるが、本書においては、一般に言うメモリ装置に限らず、データ入，出力の少くとも一方を行なうバッファメモリ又はラッチもしくは内部メモリを有する電気回路，電気装置あるいは回路素子も前記「デバイス」なる表現に含む。また、本書において READ／WRITEの「READ」は、いわゆるメモリからのデータの読出しに限らず、上述の電気回路，電気装置あるいは回路素子からのデータの読取りをも含み、「WRITE」は、いわゆるメモリへのデータの書込みに限らず、上述の電気回路，電気装置あるいは回路素子へのデータの供給（転送）も含む。
【０００３】
ＣＰＵと、それがREAD／WRITEアクセスする複数のデバイスとの間を結ぶローカルバス制御装置の設計においては、使用予定の各デバイスの READ／WRITE特性および使用予定のクロック周波数（クロック周期）に合わせて、ローカルバス制御装置の各デバイスに対するREAD／WRITEアクセスの設計を行う。この設計の中に、各デバイスに対するアクセスタイム又はアクセスタイミングの設定がある。
【０００４】
【発明が解決しようとする課題】
ところで、ローカルバス制御装置が完成した時に、デバイスメーカーの都合により、使用予定デバイスが製造中止になってしまったり、コストアップしてしまったりした場合に、別仕様のデバイスを採用し、それに合せて設計をし直さなければならず、設計期間の延長，コストアップなどという問題がおこった。また、上記のようなローカルバス制御装置をＡＳＩＣ（Application Specific Integrated Circuit)として設計したような場合に、設計時にターゲットとしたシステムにはそのＡＳＩＣが使えても、システムクロックの周波数が異なるシステムや、周辺デバイスが異なるシステムには、同じＡＳＩＣが使えず、少々の変更しかないのに、新しくＡＳＩＣを改定しなければならなくなり、高い開発費と、長い開発日数がかかってしまうという問題点もあった。
【０００５】
本発明は、デバイスあるいはシステムクロック周波数の変更に比較的に容易に対応しうるローカルバス制御装置を提供することを目的とする。具体的には、システムクロック周波数が変わっても、効率よくREAD／WRITEアクセスを行なうように設定しうるローカルバス制御装置を提供することを１つの目的とし、デバイスの変更により、デバイス指定を受けてから READ／WRITE可となるまでの遅延時間すなわちアクセスタイム、が変わったりしても、効率よくアクセスを行なうように設定しうるローカルバス制御装置を提供することを１つの目的とする。
【０００６】
【課題を解決するための手段】
（Ａ１）ＣＰＵと、それが READ／WRITEアクセスを行う複数のデバイスとの間に介挿されたローカルバス制御装置において、
前記複数のデバイスのそれぞれの、デバイス指定を受けてからREAD／WRITE可となるまでの遅延時間≦使用するクロックの周期×ｎ、なる整数ｎを表わすためのデータをそれぞれが格納するためのデバイス宛ての複数のレジスタであって、使用可能性があるクロック周期の範囲と、使用可能性があるデバイスの前記遅延時間の範囲とから定める整数ｎの最大値より、設定値を引いた差値を表わすに必要かつ可及的に少いビット数のレジスタ、を有し、前記ＣＰＵが与えるアドレスからデバイス指定信号を生成して該当デバイスに与えるとともに、該当デバイスに宛てた差値をレジスタからを読み出して前記設定値を加えて得られる整数ｎ分のクロックの発生の後に前記ＣＰＵが与えるコマンドに対応するREAD／WRITEさせる信号を該当デバイスに与える、ことを特徴とするローカルバス制御装置。
【０００７】
これによれば、ターゲットとするシステム（ＣＰＵ＋ローカルバス制御装置＋デバイス群）のクロックの周波数が変わっても、あるいは、デバイスの製造中止やコストアップにより別仕様のデバイスを使用せざるを得ずデバイスのアクセスタイムが変わっても、レジスタに書込む値を変えることにより対応できるため、デバイスの製造中止やコストアップに振り回されることなく、設計が一度ですみ、また同じ回路を何度も使えるので、あたらしく設計を行う必要がなくなるので、結果的に設計期間が短くなり、システムのコストダウンにもつながる。デバイスの選択範囲もひろがり、コストダウン，システムの速度アップなども容易になる。レジスタのビット数が少いので、メモリコストの低減，回路の縮小，コストダウンをはかれる。
【０００８】
【発明の実施の形態】
（Ａ２）前記設定値は、前記使用可能性があるクロック周期の範囲と、使用可能性があるデバイスの前記遅延時間の範囲とから定める整数ｎの最小値である。レジスタのビット数が更に少いので、更なるメモリコストの低減，回路の縮小，コストダウンをはかれる。
（Ａ３）前記複数のデバイスはページアクセスモードを持つメモリを含み、前記複数のレジスタは、該メモリの各ワードのアクセスのための各ワード宛ての各レジスタを含む。デバイスにページアクセスモードがある場合でも、効率よくアクセスが行える。デバイスでページアクセスモードを持つものでも、持たないものでも、レジスタに書込む値を変えるだけで対応できるので、デバイスの選択範囲がさらに広がり、さらなる速度アップがはかれる。
【０００９】
本発明の他の目的および特徴は、図面を参照した以下の実施例の説明より明らかになろう。
【００１０】
【実施例】
図１に、一実施例の、ＣＰＵ１がローカルバス制御装置（ＬＢＣ）３を介して、ＲＯＭ４，５，ＲＡＭ７やＩＣ  Ｃａｒｄ６などの周辺デバイス４〜８のデータ入，出力を行なうシステム構成の一例を示す。ローカルバス制御装置３は、ＣＰＵ１と直接アクセスをするＣＰＵインターフェース（ＣＰＵＩＦ）２を介してＣＰＵ１からアドレスをはじめとする各種の信号を受ける。
【００１１】
図２に、図１に示す周辺デバイス４〜８の、READ／WRITEアクセスタイミングの一例を示す。ローカルバス制御装置３は、ＣＰＵＩＦ２からのアドレスＳＡＤからローカルバスアドレスＬＡをつくり、周辺デバイス４〜８のアドレスバスに出力する。またアドレスＳＡＤをデコードして、アドレスＳＡＤで指定されるデバイスに対して Chip Select信号ＣＳ(デバイス指定信号)を出力し、コマンドをデコードして、READだったら Output Enable信号ＯＥ(READさせる信号)を、WRITEだったら Write Enable信号ＷＥ(WRITEさせる信号)を、それぞれのデバイスの応答特性(ＡＣ特性)すなわち Chip Select信号ＣＳを受けてからREAD／WRITE可となるまでの遅延時間に合わせて出力する。すなわち、Chip Select信号ＣＳを発生してから、システムで使用するクロックＣＬＫをカウントして、カウント値が該遅延時間相当値以上になったときに、Output Enable信号ＯＥ又は Write Enable信号ＷＥを発生する。
【００１２】
仮に従来のように、上記 Enable信号ＯＥ／ＷＥを発生するタイミングを定めるカウント比較値ｎが固定値で、カウント値がｎに達したときに Enable信号ＯＥ／ＷＥを発生すると、使用クロック周波数が変わると、Enable信号ＯＥ／ＷＥを発生するタイミングが変わる。クロック周波数(周期)が高く(短く)変更されると、タイミングが早過ぎることになり、低く(長く)変更されると遅過ぎることになる。また、周辺デバイスに製品仕様の変更があってＡＣ特性が、当初予定のものより長いデバイスが使用されると、 Enable信号ＯＥ／ＷＥが早過ぎることになってしまう。
【００１３】
そこで本実施例では、ローカルバス制御装置３に、周辺デバイス４〜８のそれぞれ宛てのレジスタを備えて、それぞれに、デバイス４〜８それぞれのＡＣ特性と使用ＣＬＫの周波数（周期）に対応して、デバイスのＡＣ特性を満すｎ値を書込んでいる。ローカルバス制御装置３は、ＣＰＵＩＦ２からのアドレスＳＡＤからローカルバスアドレスＬＡをつくり、周辺デバイス４〜８のアドレスバスに出力する。またアドレスＳＡＤをデコードして、アドレスＳＡＤで指定されるデバイスに対して Chip Select信号ＣＳ(デバイス指定信号)を出力し、アドレスＳＡＤで指定されるデバイスに宛てられたレジスタよりｎ値を読み出して、Chip Select信号ＣＳを出力してからクロックＣＬＫをカウントしてｎ個のクロックＣＬＫが発生したときに、コマンドがREADだったら Output Enable信号ＯＥ(READさせる信号)を、WRITEだったら Write Enable信号ＷＥ(WRITEさせる信号)を、アドレスＳＡＤで指定されるデバイスに与える。
【００１４】
例えば、図２の（ａ）例は、ＣＳアサート（ＣＳの出力）からＯＥアサート（ＯＥの出力）までのＣＬＫ数を、レジスタの書込値Ｎによって４（ｎ＝４）にしている。なお、レジスタの、数値表現のための所要ビット数を少くするために、使用可能性があるクロック周期の範囲と、使用可能性があるデバイスのＡＣ特性とから定める整数ｎの最小値ｎminおよび最大値ｎmaxに従って、該最大値より該最小値を減算した差値（ｎmax−ｎmin）を表わすに必要なビット数に前記レジスタのビット数を定めている。上述の例では、最小値ｎmin＝２であるのでこれを設定値（デフォルト値）とし、レジスタに、Ｎ＝２を書込んだ例であり、ｎ＝Ｎ＋２（設定値）＝４と算出する。
【００１５】
仮にレジスタにＮ＝０を書込むと、ＣＳアサートからＯＥアサートまでのＣＬＫ数ｎは２（＝Ｎ＋設定値２）となる。図２の（ａ）の上部のＲ２が３回繰り返されているのは、レジスタの書込値Ｎが０の場合は１回だがレジスタの書込値Ｎが２なので３回繰り返されている。このようにして、使用するＣＬＫ周波数の周期やデバイスのＡＣ特性（遅延時間）により、各デバイス宛ての各レジスタに適切な値（ｎ又はＮ）を書込むことにより、ローカルバス制御装置３のハ−ドウェア回路を変更せずに、さまざまな使用周波数，デバイス（ＡＣ特性）のシステムに対応可能となる。
【００１６】
図３に、上述のレジスタを例示する。ここで、図１に示すＮＶＲＡＭ７やＤＵＡＲＴ８などのＩＯデバイスを例に説明する。ＩＯデバイスのＡＣ特性が、
(1)ＣＳアサートからＯＥアサートまでがＭＩＮ（最短時間）：４０ｎｓ，
(2)ＯＥアサート時間がＭＩＮ：２２５ｎｓ，
(3)ＯＥネゲートから次のＯＥアサートまでがＭＩＮ：２００ｎｓ、
である場合に、例えばＣＬＫ周波数が４４ＭＨｚのとき、(1)〜(3)を満足するには、(1)が４ＣＬＫ，(2)が１１ＣＬＫとなる。ＣＬＫ周波数が６６ＭＨｚのときは、(1)が９ＣＬＫ，(2)が１６ＣＬＫとなる。この場合には、
（ＣＬＫ周期ｎｓ×レジスタ書込み値ｎ＋各信号の遅延値）≧ＡＣ特性の値
となるように、レジスタに書込むべき値ｎを算出する。例えば上記の４４ＭＨｚの(2)の場合だと、ＯＥのＣＬＫからの遅延値がＭＩＮ：６ｎｓ，ＭＡＸ（最長時間）：１５ｎｓとすると、
（２２．７３×レジスタ書込み値ｎ−１５＋６）≧２２５
となるので計算すると、ｎ＝１１となる。
【００１７】
例えば、システム（図１の１〜８）のＣＬＫ周波数が４４〜６６ＭＨｚに限られているとすると、(1)は４〜９を設定できれば良いので４ビットのレジスタとし、(2)は１１から１６が設定できれば良いので５ビットのレジスタとし、同様にすべてのデバイスを考慮し、それぞれのレジスタを配置する。(1)のレジスタをＩＯＥｎ，(2)のレジスタをＩＯＴｉｍとした場合の一例が、図３に示すレジスタ例である。
【００１８】
ローカルバス制御装置３に接続されるデバイスがＲＯＭなどのように多種のアクセスタイムがあり、バーストリードのある場合を例に説明する。例えばアクセスタイムが１２０ｎｓのデバイスを考えたときに、アドレス確定時間（ｎｓ）は、
｛(CSの遅延値＋アクセスタイム＋データのセットアップタイム)÷ＣＬＫ周期(ns)｝＋1
で求められる。システムクロックが６６ＭＨｚ，ＣＳのＣＬＫからの遅延値がＭＩＮ：４ｎｓ，ＭＡＸ：１５ｎｓ，データのセットアップタイムがＭＩＮ：８ｎｓとすると（１５＋１２０＋８）÷１５．１５＋１なので、計算値は１０．４となりこれを繰り上げてレジスタに書込むべき値ｎは１１となる。アクセスタイム６０ｎｓの場合は同様にして計算するとレジスタに書込むべき値ｎは７となる。システムクロックが４４ＭＨｚ，アクセスタイム６０ｎｓの場合はレジスタに書込むべき値ｎは５となる。このように、ＣＬＫ周波数（周期ｎｓ），ＣＳの遅延値，アクセスタイム，データセットアップタイムを考慮して算出する。このようにしてアドレスの確定時間を書込みできるようにレジスタのＢｉｔ数を決める。
【００１９】
図４に、ＲＯＭのＲＥＡＤアクセスタイミングの一例を示す。これは、システムクロック４４ＭＨｚ，ＲＯＭのアクセスタイム１２０ｎｓ，の場合のＲＥＡＤアクセスタイミングで、バーストで２ワードＲＥＡＤの例を示している。このときアドレス確定時間のレジスタ書込値は８である。ターゲットとするシステムのＣＬＫが４４〜６６ＭＨｚで、使用する可能性のあるＲＯＭのアクセスタイムが６０〜１２０ｎｓであるとすると、アドレス確定レジスタは５〜１１が設定できればよいので、４Ｂｉｔ必要となり、このレジスタをＣｏＴｉｍとすると、図３に示すようになる。
【００２０】
ＲＯＭデバイスがページアクセスモードをもつ場合に、ページアクセスモードに対応するためには、１ワード目と２ワード目以降でのアクセスタイムを変えることができるようにしなければならない。そのために１ワード目のアドレス確定時間を設定するレジスタ（ＣｏＴｉｍ）と２ワード目のアドレス確定時間を設定するレジスタ（ＣｏＰＴｉｍ）の２種類のレジスタを用意する（図５）。例えば、システムクロックが６６ＭＨｚ，ＲＯＭの１ワード目のアクセスタイムが７０ｎｓ，２ワード目のアクセスタイムが２５ｎｓ，ＣＳのＣＬＫからの遅延値がＭＩＮ：４ｎｓ，ＭＡＸ：１５ｎｓ，アドレスのＣＬＫからの遅延値がＭＩＮ：８ｎｓ，ＭＡＸ：２８ｎｓ，データのセットアップタイムがＭＩＮ：８ｎｓとすると、
（１５＋７０＋８）÷１５．１５＋１
が８、
（２８＋２５＋８）÷１５．１５＋１
が６となるので、ＣｏＴｉｍに８を書込み、ＣｏＰＴｉｍに６を書込むことにより、このＲＯＭのページアクセスモードに対応することができる。
【００２１】
図６に、ページアクセスモード時のＲＯＭのアクセスタイミングの一実施例を示す。ここでは、システムクロックが４４ＭＨｚ，ＲＯＭの１ワード目のアクセスタイムが１２０ｎｓ，２ワード目のアクセスタイムが５０ｎｓ，ＣＳのＣＬＫからの遅延値がＭＩＮ：４ｎｓ，ＭＡＸ：１５ｎｓ，アドレスのＣＬＫからの遅延値がＭＩＮ：８ｎｓ，ＭＡＸ：２８ｎｓ，データのセットアップタイムがＭＩＮ：８ｎｓの場合で、
（１５＋１２０＋８）÷２２．７３＋１
が８，
（２８＋  ５０＋８）÷２２．７３＋１
が５となるので、ＣｏＴｉｍに８を書込み、ＣｏＰＴｉｍに５を書込んでいる。
レジスタは、計算した取りうる値をすべて書込み（設定）できるようなビット数分をとっている。例えば上記のＩＯデバイスの例だと、(1)は４（最小値）〜９（最大値）を設定できれば良いので４ビットのレジスタであればよく、(2)は１１（最小値）から１６（最大値）が設定できれば良いので５ビットのレジスタであればよいが、レジスタの所要ビット数が少いのが好ましい。上記(1)は４〜９まで設定できれば良いので、デフォルトを４ＣＬＫ（最小値）として、４ＣＬＫにプラスいくつ（Ｎ）をすれば良いかのＮをレジスタ設定することにする。すると(1)は０〜５を設定できれば良いので３ビットのレジスタでよい。レジスタよりＮを読出すと、ｎ＝Ｎ＋最小値  を、アドレス確定時間を定めるためのＣＬＫ数とする。(2)も同様にすると、デフォルトが１１ＣＬＫとなり、０〜５が設定できれば良いので３ビットレジスタとする。これだけでも１ビット＋２ビットで計３ビットのレジスタを削減できる。これを同様にすべてのデバイスについて行うことにより、レジスタ数を大幅に削減することが可能となる。
【図面の簡単な説明】
【図１】  本発明の一実施例のシステム構成の概要を示すブロック図である。
【図２】  図１に示す周辺デバイス４〜８の中のＩ／Ｏデバイスの、READ／WRITEアクセスタイミングの一例を示すタイムチャ−トであり、（ａ）はデバイスへのデータ書込み時のものを、（ｂ）データ読出し時のものを示す。
【図３】  図１に示すＮＶＲＡＭ７やＤＵＡＲＴ８などのＩＯデバイスに宛てるレジスタのビット構成の一例を示す平面図である。
【図４】  図１に示すＲＯＭ４，５等の、ＲＯＭのＲＥＡＤアクセスタイミングの一例を示すタイムチャ−トである。
【図５】  図１に示す周辺デバイス４〜８の中の、ページアクセスモードをもつＲＯＭデバイスに宛てるレジスタのビット構成を示す平面図である。
【図６】  ページアクセスモードをもつＲＯＭデバイスのアクセスタイミングの一例を示すタイムチャ−トである。
【符号の説明】
２：ＣＰＵインタ−フェ−ス
３：ローカルバス制御装置
【図１】
0003734072.tif 000002
【図２】
0003734072.tif 000003
【図３】
0003734072.tif 000004
【図４】
0003734072.tif 000005
【図５】
0003734072.tif 000006
【図６】
0003734072.tif 000007