(57)【要約】【課題】汎用のチップセット及びメモリを用いた場合でもＣＰＵとカスタムハードウェアとでメモリを共有化することができるメモリ共有化装置を提供する。【解決手段】ＣＰＵ１２と、カスタムハードウェア１６と、ＣＰＵ１２用のＲＯＭ２２と、これらを相互接続する汎用のＣＰＵチップセット１４と、を備え、ＲＯＭ２２をＣＰＵ１２とカスタムハードウェア１６とで共有するメモリ共有化装置１０であって、ＣＰＵチップセット１４とＲＯＭ２２との間に接続され、ＣＰＵ１２及びカスタムハードウェア１６からのＲＯＭ２２に対するアクセスを調停する調停手段であって、カスタムハードウェア１６に対してＲＯＭ２２に対するアクセスが許可されている状態で、ＣＰＵ１２からＲＯＭ２２の所定アドレスに対するアクセスが要求された場合に、再度所定アドレスにアクセスさせるための相対ゼロジャンプ命令をＣＰＵ１２に対して送信するＲＯＭアービタ２０を備えた。【選択図】図１
2008015672.tif 000002
【特許請求の範囲】
【請求項１】
第１のハードウェアと、第２のハードウェアと、前記第１のハードウェア用のメモリと、これらを相互接続する汎用の相互接続手段と、を備え、前記メモリを前記第１のハードウェアと前記第２のハードウェアとで共有するメモリ共有化装置であって、
前記相互接続手段と前記メモリとの間に接続され、前記第１のハードウェア及び前記第２のハードウェアからの前記メモリに対するアクセスを調停する調停手段であって、前記第２のハードウェアに対して前記メモリに対するアクセスが許可されている状態で、前記第１のハードウェアから前記メモリの所定アドレスに対するアクセスが要求された場合に、再度前記所定アドレスにアクセスさせるためのコマンドを前記第１のハードウェアに対して送信する調停手段を備えたことを特徴とするメモリ共有化装置。
【請求項２】
前記コマンドは相対ゼロジャンプ命令であることを特徴とする請求項１記載のメモリ共有化装置。
【請求項３】
前記第１のハードウェアはＣＰＵであり、前記第２のハードウェアは、前記相互接続手段が備えた汎用バスに接続されるカスタムハードウェアであることを特徴とする請求項１又は請求項２記載のメモリ共有化装置。
【請求項４】
前記メモリは、前記ＣＰＵのブートプログラム及び前記カスタムハードウェアが使用するデータが記憶されたＲＯＭであることを特徴とする請求項３記載のメモリ共有化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ共有化装置に係り、より詳しくは、ＣＰＵ及び他の周辺デバイスでメモリを共有するためのメモリ共有化装置に関する。
【背景技術】
【０００２】
従来、制御装置の一般的な構成として、ＣＰＵやＲＡＭ、ＲＯＭ、その装置専用のハードウェア（以下、カスタムハードウェアと称する）が、例えばバスブリッジ等を含むＣＰＵチップセットを介して相互接続されたものがある。
【０００３】
このような制御装置の一例を図７に示す。同図に示すように、ＣＰＵ１００は、ＤＲＡＭ等のメモリ１０２、ＲＯＭ−Ａ１０４、及びカスタムハードウェア１０６と、ＣＰＵチップセット１０８を介して相互接続されている。
【０００４】
このとき、ＣＰＵ１００及びＣＰＵチップセット１０８、メモリ１０２、ＲＯＭ−Ａ１０４は汎用品を使用し、ＣＰＵチップセット１０８が備えた汎用バス （例えばＰＣＩバス）の先にカスタムハードウェア１０６を接続することができる。ＲＯＭ−Ａ１０４には、例えばＣＰＵ１００のブートプログラムが予め記憶される。
【０００５】
カスタムハードウェア１０６には、図７に示すように、ハードウェアアクセス専用のＲＯＭ−Ｂ１１０を接続する場合がある。このＲＯＭ−Ｂ１１０は、例えばＦＰＧＡのデータ格納用やデコードテーブルのロード用等として使用される。
【０００６】
近年、ＲＯＭとして使用されるフラッシュメモリは大容量化しているため、図７に示すようにＲＯＭを分散して実装するよりも、一つのメモリを共有した方が、コストや実装スペース面において有利となる。
【０００７】
図７の場合、ＲＯＭ−Ｂ１１０に記憶されるデータをＲＯＭ−Ａ１０４に格納することが容量的には可能となっている。
【０００８】
そして、例えば、特許文献１に記載されているように、ＣＰＵとＰＣＩデバイスとでＲＯＭを共有する事ができれば、ＣＰＵで使用するＲＯＭ及びＰＣＩデバイスで使用するＲＯＭに記憶すべきデータを一つの大容量ＲＯＭに記憶させることができ、コスト及び実装スペースの削減を行なうことができる。
【特許文献１】特開２００３−６１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、図８に示すように、ＣＰＵチップセット１０８Ａが非汎用品でカスタムハードウェア１０６からのＲＯＭ−Ａ１０４に対するアクセスを許可することができる構造、すなわちＣＰＵ１００からＲＯＭ−Ａ１０４に対するアクセスを待機させることができる構造となっていれば、ＲＯＭ−Ａ１０４をＣＰＵ１００とカスタムハードウェア１０６とで共有することは可能であるが、汎用のＣＰＵチップセットを使用した場合、基本的にはＲＯＭ−Ａ１０４はＣＰＵ１００からのアクセス専用となっておりＣＰＵ１００からＲＯＭ−Ａ１０４に対するアクセスを待たせることはできないため、ＲＯＭ−Ａ１０４をＣＰＵ１００とカスタムハードウェア１０６とで共有するのは困難である。
【００１０】
本発明は、上記問題を解決すべく成されたものであり、汎用のチップセット及びメモリを用いた場合でもＣＰＵとカスタムハードウェアとでメモリを共有化することが可能なメモリ共有化装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載の発明は、第１のハードウェアと、第２のハードウェアと、前記第１のハードウェア用のメモリと、これらを相互接続する汎用の相互接続手段と、を備え、前記メモリを前記第１のハードウェアと前記第２のハードウェアとで共有するメモリ共有化装置であって、前記相互接続手段と前記メモリとの間に接続され、前記第１のハードウェア及び前記第２のハードウェアからの前記メモリに対するアクセスを調停する調停手段であって、前記第２のハードウェアに対して前記メモリに対するアクセスが許可されている状態で、前記第１のハードウェアから前記メモリの所定アドレスに対するアクセスが要求された場合に、再度前記所定アドレスにアクセスさせるためのコマンドを前記第１のハードウェアに対して送信する調停手段を備えたことを特徴とする。
【００１２】
この発明によれば、第１のハードウェア用のメモリ、すなわち、元々第１のハードウェア専用のメモリと汎用の相互接続手段とが接続され、第１のハードウェアからのメモリに対するアクセスを待機させることができない構成に対して、第１のハードウェアと第２のハードウェアとでメモリを共有させるべくメモリへのアクセスを調停する調停手段を備えている。
【００１３】
調停手段は、相互接続手段とメモリとの間に接続され、第２のハードウェアに対してメモリに対するアクセスが許可されている状態で、第１のハードウェアからメモリの所定アドレスに対するアクセスが要求された場合に、再度所定アドレスにアクセスさせるためのコマンドを第１のハードウェアに対して送信する。これにより、その後メモリに対するアクセス権が第２のハードウェアから第１のハードウェアに移行した場合に、第１のハードウェアが再度同じアドレスに対してアクセスすることになるので、実質的に第１のハードウェアのメモリに対するアクセスを待機させることが可能となる。このため、汎用の相互接続手段やメモリを用いた場合でも第１のハードウェアと第２のハードウェアとでメモリを共有することができる。
【００１４】
なお、請求項２に記載したように、前記コマンドは相対ゼロジャンプ命令である構成とすることができる。
【００１５】
また、請求項３に記載したように、前記第１のハードウェアはＣＰＵであり、前記第２のハードウェアは、前記相互接続手段が備えた汎用バスに接続されるカスタムハードウェアである構成とすることができる。
【００１６】
また、請求項４に記載したように、前記メモリは、前記ＣＰＵのブートプログラム及び前記カスタムハードウェアが使用するデータが記憶されたＲＯＭである構成とすることができる。
【発明の効果】
【００１７】
以上説明したように、本発明によれば、汎用のチップセット及びメモリを用いた場合でもＣＰＵとカスタムハードウェアとでメモリを共有化することが可能になる、という効果を有する。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【００１９】
図１には、本実施形態に係るメモリ共有化装置１０の概略ブロック図を示した。同図に示すように、メモリ共有化装置１０は、ＣＰＵ１２、ＣＰＵチップセット１４、カスタムハードウェア１６、メモリ（例えばＤＲＡＭやＳＲＡＭ等）１８、ＲＯＭアービタ２０、及びＲＯＭ（例えばフラッシュＲＯＭ）２２を含んで構成されている。
【００２０】
周辺装置を相互接続するための汎用のＣＰＵチップセット１４には、ＣＰＵ１２、カスタムハードウェア１６、メモリ１８、及びＲＯＭアービタ２０が接続されており、ＲＯＭ２２は、ＲＯＭアービタ２０を介してＣＰＵチップセット１４に接続されている。
【００２１】
ＣＰＵ１２とＣＰＵチップセット１４とはＣＰＵインターフェースを介して接続され、ＣＰＵチップセット１４とカスタムハードウェア１６とは、一例としてＰＣＩインターフェースを介して接続され、ＣＰＵチップセット１４とメモリ１８とはメモリインターフェースを介して接続され、ＣＰＵチップセット１４とＲＯＭアービタ２０とはＲＯＭインターフェースＡを介して接続され、ＲＯＭアービタ２０とカスタムハードウェア１６とはＲＯＭインターフェースＢを介して接続され、ＲＯＭアービタ２０とＲＯＭ２２とはＲＯＭインターフェースＣを介して接続される。
【００２２】
なお、ＣＰＵインターフェース、ＰＣＩインターフェース、メモリインターフェースは公知のインターフェースを用いることができるため、説明は省略し、ＲＯＭインターフェースＡ、Ｂ、Ｃについて説明する。
【００２３】
図２には、ＲＯＭインターフェースＡ，Ｂ、Ｃの信号線について示した。同図に示すように、ＲＯＭインターフェースＡは、ＣＰＵチップセット１４からＲＯＭアービタ２０へ出力されるチップセレクト信号−ＣＳ＿Ａ、アウトプットイネーブル信号−ＯＥ＿Ａ、アドレス信号ＡＤＤＲＥＳＳ＿Ａ、ＲＯＭアービタ２０からＣＰＵチップセット１４へ出力されるデータ信号ＤＡＴＡ＿Ａを含む。
【００２４】
なお、チップセレクト信号−ＣＳ＿Ａは素子の選択を示す信号であり、アウトプットイネーブル信号−ＯＥ＿Ａはデータの出力方向を示す信号であり、アドレス信号ＡＤＤＲＥＳＳ＿ＡはＲＯＭ２２から読み出すデータが格納されているアドレスを示す信号であり、データ信号ＤＡＴＡ＿Ａはアドレス信号ＡＤＤＲＥＳＳ＿Ａで指定されたアドレスから読み出されたデータを示す信号である。
【００２５】
また、ＲＯＭインターフェースＢは、カスタムハードウェア１６からＲＯＭアービタ２０へ出力されるチップセレクト信号−ＣＳ＿Ｂ、アドレス信号ＡＤＤＲＥＳＳ＿Ｂ、ＲＯＭアービタ２０からカスタムハードウェア１６へ出力されるデータレディ信号−ＤＲＤＹ、データ信号ＤＡＴＡ＿Ｂを含む。
【００２６】
また、ＲＯＭインターフェースＣは、ＲＯＭインターフェースＡの各信号と同じであり、ＣＰＵチップセット１４から出力されたチップセレクト信号−ＣＳ＿Ａ、アウトプットイネーブル信号−ＯＥ＿Ａ、アドレス信号ＡＤＤＲＥＳＳ＿Ａがそのままチップセレクト信号−ＣＳ＿Ｃ、アウトプットイネーブル信号−ＯＥ＿Ｃ、アドレス信号ＡＤＤＲＥＳＳ＿ＣとしてＲＯＭ２２に出力され、ＲＯＭ２２から出力されたデータ信号ＤＡＴＡ＿Ｃがそのままデータ信号ＤＡＴＡ＿ＡとしてＣＰＵチップセット１４へ出力される。
【００２７】
ＲＯＭインターフェースＡの各信号は、ＲＯＭ２２のアクセスタイムに従ってアサート期間が設定される。例えば図３に示すように、ＲＯＭ２２のアクセスタイムが１２０ｎｓ、データセットアップ期間が１０ｎｓ、データホールド期間が１０ｎｓとすると、チップセレクト信号−ＣＳ＿Ａのアサート期間は１６０ｎｓとなる。この時間はＣＰＵチップセット１４に対する設定によって変更することができるが、設定後は固定値となりアクセス毎に変更することはできない。
【００２８】
ＲＯＭインターフェースＡは、図３に示すように、チップセレクト信号−ＣＳ＿Ａがローレベル、アウトプットイネーブル信号−ＯＥ＿Ａがローレベルになると、アドレス信号ＡＤＤＲＥＳＳ＿Ａで指定されたＲＯＭ２２のアドレスからＲＯＭアービタ２０を介してデータが読み出され、データ信号ＤＡＴＡ＿ＡとしてＣＰＵ１２に出力される。
【００２９】
なお、ＲＯＭインターフェースＡは、ＣＰＵ１２のブートプログラムをフェッチするインターフェースであるため、ＲＯＭインターフェースＡによってリードされるデータは主にＣＰＵ１２の命令コードである。
【００３０】
一方、ＲＯＭインターフェースＢは、図４に示すように、チップセレクト信号−ＣＳ＿Ｂがローレベルになり、データレディ信号−ＤＲＤＹがローレベルになると、アドレス信号ＡＤＤＲＥＳＳ＿Ｂで指定されたＲＯＭ２２のアドレスからデータが読み出され、データ信号ＤＡＴＡ＿Ｂとしてカスタムハードウェア１６に出力される。
【００３１】
また、ＲＯＭインターフェースＣは、ＲＯＭインターフェースＡと同様であり、チップセレクト信号−ＣＳ＿Ｃ（−ＣＳ＿Ａ）がローレベル、アウトプットイネーブル信号−ＯＥ＿Ｃ（−ＯＥ＿Ａ）がローレベルになると、アドレス信号ＡＤＤＲＥＳＳ＿Ｃ（ＡＤＤＲＥＳＳ＿Ａ）で指定されたＲＯＭ２２のアドレスからデータ読み出され、データ信号ＤＡＴＡ＿Ｃ（ＤＡＴＡ＿Ａ）としてＣＰＵ１２に出力される。
【００３２】
次に、ＣＰＵ１２とカスタムハードウェア１６とでＲＯＭ２２へのアクセスが競合した場合のＲＯＭアービタ２０の動作について、図５に示すタイミングチャートを参照して説明する。
【００３３】
本実施形態では、図６に示すようなコマンド及びデータがＲＯＭ２２に格納されている場合について説明する。同図に示すように、ＲＯＭ２２の０ｘ００００００００（０Ｈ）番地のアドレスには例えばＣＰＵ１２のブートプログラムのコマンドＡが格納されており、０ｘ０００００００１（１Ｈ）番地のアドレスにはコマンドＢが格納されており、０ｘ１０００００００（８０Ｈ）番地のアドレスにはデータＡが格納されている。
【００３４】
この場合、ｔ１の時点においてＣＰＵ１２からＣＰＵチップセット１４を介してＲＯＭ２２のアドレス０Ｈに格納されたコマンドＡの読み出しが要求されると、ＲＯＭインターフェースＡのチップセレクト信号−ＣＳ＿Ａ、アウトプットイネーブル信号−ＯＥ＿Ａがローレベルとなり、アドレス信号ＡＤＤＲＥＳＳ＿Ａでアドレス０Ｈが指定される。これらの信号はそのままＲＯＭ２２に対して出力され、ＲＯＭ２２のアドレス０ＨからコマンドＡが読み出されて、ＲＯＭアービタ２０からＣＰＵチップセット１４に出力される。
【００３５】
なお、図５では、ＲＯＭインターフェースＢのチップセレクト信号−ＣＳ＿Ｂもｔ１の時点でローレベルになると共にアドレス信号ＡＤＤＲＥＳＳ＿Ｂでアドレス８０Ｈが指定されている。すなわちカスタムハードウェア１６からもＲＯＭ２２に対してアクセス要求されているが、この場合はＲＯＭインターフェースＡが優先され、ＣＰＵ１２がＲＯＭ２２に対するアクセス権を有する。
【００３６】
そして、コマンドＡの読み出しが終了し、ｔ２の時点においてＲＯＭインターフェースＡにおけるチップセレクト信号−ＣＳ＿Ａがハイレベルになると、その時点においてＲＯＭインターフェースＢのチップセレクト信号−ＣＳ＿Ｂがローレベルになっているので、ＲＯＭ２２に対するアクセス権はＣＰＵ１２からカスタムハードウェア１６に移行する。
【００３７】
次に、ｔ３の時点でＣＰＵ１２からＲＯＭ２２のアドレス１Ｈに格納されたコマンドＢの読み出しが要求されると、ＲＯＭインターフェースＡのチップセレクト信号−ＣＳ＿Ａ、アウトプットイネーブル信号−ＯＥ＿Ａがローレベルとなり、アドレス信号ＡＤＤＲＥＳＳ＿Ａでアドレス１Ｈが指定される。このとき、ＲＯＭ２２に対するアクセス権はカスタムハードウェア１６が有している。
【００３８】
このため、ＲＯＭアービタ２０は、ＲＯＭインターフェースＣのアドレス信号ＡＤＤＲＥＳＳ＿Ｃにアドレス８０Ｈを出力する。これにより、ＲＯＭ２２のアドレス８０Ｈに格納されたデータＡがデータ信号ＤＡＴＡ＿Ｃとして出力される。そして、ｔ４の時点でＲＯＭインターフェースＢのデータレディ信号−ＤＲＤＹがローレベルになると、ＲＯＭ２２から読み出されたデータＡがデータ信号ＤＡＴＡ＿Ｂとしてカスタムハードウェア１６に出力される。
【００３９】
一方、ｔ３の時点では、アクセス権はカスタムハードウェア１６が有しており、ＲＯＭインターフェースＡはＣＰＵ１２からのＲＯＭ２２に対するアクセスを待たせることができないインターフェースである。
【００４０】
そこで、ＲＯＭアービタ２０は、ＣＰＵ１２からのＲＯＭ２２に対するアクセス要求に対して、相対ゼロジャンプ命令をＣＰＵチップセット１４を介してＣＰＵ１２へ出力する。
【００４１】
この相対ゼロジャンプ命令は、次にＣＰＵ１２がＲＯＭ２２に対してアクセスする際に、再度同じアドレスのデータを要求させる（フェッチさせる）ための命令である。
【００４２】
次に、ｔ５の時点においてＲＯＭインターフェースＡのチップセレクト信号−ＣＳ＿Ａがローレベルになると、ＲＯＭインターフェースＢのチップセレクト信号−ＣＳ＿Ｂはハイレベルになっているので、ＲＯＭ２２に対するアクセス権は再びＣＰＵ１２に移行する。
【００４３】
そして、ｔ３の時点で相対ゼロジャンプ命令がＣＰＵ１２に対して発行されているので、ＣＰＵ１２は、再びＲＯＭ２２のアドレス１Ｈに格納されたコマンドＢの読み出しを要求する。これにより、ＲＯＭ２２からアドレス１Ｈに格納されたコマンドＢが読み出され、ＣＰＵチップセット１４を介してＣＰＵ１２に出力される。なお、ＣＰＵ１２がＲＯＭ２２をアクセスする際には、命令キャッシュは禁止にしておく。
【００４４】
このように、本実施形態では、汎用のＣＰＵチップセット１４を用いた構成でＣＰＵ１２からＲＯＭ２２に対するアクセスを待機させることができない構成の場合において、カスタムハードウェア１６がＲＯＭ２２に対するアクセス権を有しているときにＣＰＵ１２がＲＯＭ２２に対してアクセスした場合には、ＲＯＭアービタ２０が相対ゼロジャンプ命令をＣＰＵ１２に出力するようにしている。このため、汎用のＣＰＵチップセットを用いた場合でもＣＰＵと他のハードウェアとでＲＯＭを共有化することができる。
【００４５】
なお、本実施形態では、ＣＰＵとカスタムハードウェアとがＲＯＭを共有する場合について説明したが、ＲＯＭでなくＤＲＡＭ等のメモリを共有する場合にも本発明を適用可能である。また、ＣＰＵとカスタムハードウェアに限らず、複数のハードウェアがメモリを共有する場合に本発明を適用可能であることはいうまでもない。
【図面の簡単な説明】
【００４６】
【図１】メモリ共有化装置の概略ブロック図である。
【図２】ＲＯＭインターフェースについて説明するための図である。
【図３】ＲＯＭインターフェースＡのタイミングチャートである。
【図４】ＲＯＭインターフェースＢのタイミングチャートである。
【図５】ＣＰＵとカスタムハードウェアとでＲＯＭへのアクセスが競合した場合の各ＲＯＭインターフェースのタイミングチャートである。
【図６】ＲＯＭに記憶されたデータの一例を示す図である。
【図７】従来装置の概略ブロック図である。
【図８】従来装置の概略ブロック図である。
【符号の説明】
【００４７】
１０      メモリ共有化装置
１２      ＣＰＵ（第１のハードウェア）
１４      ＣＰＵチップセット（相互接続手段）
１６      カスタムハードウェア（第２のハードウェア）
１８      メモリ
２０      ＲＯＭアービタ（調停手段）
２２      ＲＯＭ
【図１】
2008015672.tif 000003
【図２】
2008015672.tif 000004
【図３】
2008015672.tif 000005
【図４】
2008015672.tif 000006
【図５】
2008015672.tif 000007
【図６】
2008015672.tif 000008
【図７】
2008015672.tif 000009
【図８】
2008015672.tif 000010