(57)【特許請求の範囲】
【請求項１】
複数のマスタが共有リソースを共有するデータ処理システムであって、
前記複数のマスタ間で共通に、
前記マスタが前記共有リソースへのアクセスに使用する第１のアドレス空間と前記共有リソースが有する第２のアドレス空間との対応を示すアドレス変換テーブルと、
前記アドレス変換テーブルの情報の一部を保持する変換テーブルバッファとを有し、
前記各マスタ毎に、
前記マスタからのアクセスを参照し、前記アクセスのアドレス変換に必要な前記アドレス変換テーブルの情報による前記変換テーブルバッファの更新を制御するバッファ更新制御部と、
前記変換テーブルバッファの更新状況に応じて、前記共有リソースへのアクセスの発行の待ち合わせを行うアクセス発行制御部とを有し、
前記アクセス発行制御部から発行された前記共有リソースへのアクセスの調停を行う調停部と、
前記調停部において選択されたアクセスに対して、前記変換テーブルバッファの情報を用いて前記第１のアドレス空間から前記第２のアドレス空間へのアドレス変換を行うアドレス変換部とを更に有するデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記各マスタ毎に、
前記アドレス変換に必要な情報が前記変換テーブルバッファに保持されているかを判定するアドレス比較部を更に有し、
前記変換テーブルバッファに必要な情報が保持されていない場合のみ前記バッファ更新制御部が前記変換テーブルバッファの更新を行うデータ処理システム。
【請求項３】
請求項１記載のデータ処理システムにおいて、
前記アクセス発行制御部は、前記マスタからのアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに準備されるのを待たずに前記調停部へアクセスを発行するデータ処理システム。
【請求項４】
請求項３記載のデータ処理システムにおいて、
前記アドレス変換部に前記マスタからのアクセスが到達するまでに、前記変換テーブルバッファにアドレス変換に必要な情報が準備されることを保証できる時点でアクセス発行タイミングを前記アクセス発行制御部に通知する先行発行タイミング生成部を更に有し、
前記アクセス発行制御部は、前記先行発行タイミング生成部からの前記アクセス発行タイミングをもとに前記調停部へアクセスを発行するデータ処理システム。
【請求項５】
請求項４記載のデータ処理システムにおいて、
前記先行発行タイミング生成部は、前記バッファ更新制御部から前記変換テーブルバッファの更新指示が発生した時点から一定時間後に前記アクセス発行タイミングを発生するデータ処理システム。
【請求項６】
請求項４記載のデータ処理システムにおいて、
前記先行発行タイミング生成部は、前記バッファ更新制御部から前記変換テーブルバッファ更新指示が発生した後、前記調停部で一定個数のコマンドを調停した時点で前記アクセス発行タイミングを発生するデータ処理システム。
【請求項７】
請求項４記載のデータ処理システムにおいて、
前記先行発行タイミング生成部は、前記バッファ更新制御部から前記アドレス変換テーブルへのアクセスの途中でバッファ更新アクセスを観測し、前記バッファ更新アクセスを観測した時点で前記アクセス発行タイミングを発生するデータ処理システム。
【請求項８】
請求項３記載のデータ処理システムにおいて、
前記マスタからのアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに準備されるのを待たずに前記調停部へ発行したアクセスが示すアドレスを記憶する先行発行アドレス記憶部と、
前記マスタからのアクセスが示すアドレスが前記変換テーブルバッファ又は前記先行発行アドレス記憶部に保持されているかを判定し、保持されていない場合のみ前記変換テーブルバッファの更新を指示するアドレス比較部とを更に有するデータ処理システム。
【請求項９】
請求項８記載のデータ処理システムにおいて、
前記先行発行アドレス記憶部は、記憶したアドレスが前記変換テーブルバッファに格納されている場合に前記先行発行アドレス記憶部内の当該アドレスの記憶を解除するデータ処理システム。
【請求項１０】
請求項２記載のデータ処理システムにおいて、
前記マスタからのアクセスを１つ以上保持するアクセスキューを更に有し、
前記アドレス比較部は、前記アクセスキュー内の１つ以上のアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに保持されているかを判定し、保持されていない情報の更新をまとめて前記バッファ更新制御部に指示するデータ処理システム。
【請求項１１】
請求項１記載のデータ処理システムにおいて、
前記アクセス発行制御部からのアクセス発行前に、アドレス変換に必要な前記変換テーブルバッファ内の情報を予約し、前記アドレス変換部でアドレス変換が完了するまで前記アドレス変換テーブル内の他の情報により更新されることを抑止するバッファ予約管理部を更に有するデータ処理システム。
【請求項１２】
請求項１１記載のデータ処理システムにおいて、
前記バッファ予約管理部は、前記変換テーブルバッファ内の情報それぞれについて、カウンタによって予約を管理するデータ処理システム。
【請求項１３】
請求項１１記載のデータ処理システムにおいて、
前記バッファ予約管理部は、前記変換テーブル内の情報の予約をキューによって管理するデータ処理システム。
【請求項１４】
請求項１記載のデータ処理システムにおいて、
前記調停部による調停後、前記アドレス変換前にアクセスをアドレス変換単位以下に分割するコマンド分割部と、
前記マスタからのアクセスが跨ぐ全アドレス変換単位の先頭アドレスを前記バッファ更新制御部に通知するページ跨ぎ判定部とを更に有するデータ処理システム。
【請求項１５】
請求項１４記載のデータ処理システムにおいて、
前記バッファ更新制御部は、前記変換テーブルバッファ内の情報を更新するために発行する複数のアクセスを１つにまとめる機能を有するデータ処理システム。
【請求項１６】
請求項１４記載のデータ処理システムにおいて、
前記共有リソースはＤＲＡＭであり、ＤＲＡＭアクセスコマンドへの分割機構を前記コマンド分割部として流用するデータ処理システム。
【請求項１７】
請求項２記載のデータ処理システムにおいて、
前記マスタからのアクセスに対して前記変換テーブルバッファの更新が不要な場合は前記調停部での調停を受ける前に前記変換テーブルバッファの情報をもとにアドレス変換を行う調停前アドレス変換部と、
前記アドレス変換テーブルの情報の一部を保持する変換テーブルサブバッファとを更に有し、
前記アドレス変換部は、前記変換テーブルサブバッファを参照してアドレス変換を行うデータ処理システム。
【請求項１８】
請求項１記載のデータ処理システムにおいて、
前記共有リソースは記憶装置であり、当該記憶装置上に前記アドレス変換テーブルを保持し、
前記記憶装置からの出力データから前記変換テーブルバッファ用のデータを分離するデータ分離部と、
前記マスタからのアクセスと前記アドレス変換テーブルの更新のためのアクセスとを分離するコマンド分離部とを更に有するデータ処理システム。
【請求項１９】
請求項１記載のデータ処理システムにおいて、
前記マスタからのアクセスのうちアドレス変換の必要なアクセスと不要なアクセスとを分離するアクセス分離部を更に有するデータ処理システム。
【請求項２０】
請求項１９記載のデータ処理システムにおいて、
前記アクセス分離部は、前記マスタがアドレス変換が必要かをアクセスと同時に伝える識別番号によりアクセスを分離するデータ処理システム。
【請求項２１】
請求項１９記載のデータ処理システムにおいて、
前記アクセス分離部は、前記マスタが予め定められたアドレス領域へアクセスしたことをもとにアクセスを分離するデータ処理システム。
【請求項２２】
記憶装置及び半導体集積回路を有する電子装置であって、
前記半導体集積回路は、前記記憶装置を共有リソースとする請求項１記載のデータ処理システムを有することを特徴とする電子装置。
【請求項２３】
ネットワーク上の記憶装置へのアクセス機能及び半導体集積回路を有する電子装置であって、
前記半導体集積回路は、前記ネットワーク上の記憶装置を共有リソースとする請求項１記載のデータ処理システムを有することを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタがスレーブを共有するように構成されたデータ処理システムに関するものである。
【背景技術】
【０００２】
複数のマスタがバスを介して１つ又は複数のスレーブを共有する場合、共有スレーブの効率的使用のためにマスタが管理するアドレス空間から共有スレーブのアドレス空間へのアドレス変換機構を設けることが一般的である。ここに、マスタはマイクロプロセッサ、ＤＳＰ（Digital Signal Processor）、ＤＭＡ（Direct Memory Access）コントローラなどであり、スレーブはメモリ、周辺Ｉ／Ｏ（input/output）コントローラなどである。例えば、共有スレーブがメモリである場合、メモリ上に分散する空き領域をアドレス変換により連続領域としてマスタに使用させることで、メモリ上に余分な静的連続領域を確保する必要がなく、メモリ容量の削減につながる。
【０００３】
アドレス変換機構には様々な実装形態があるが、図７に示すように、アドレス変換に用いるアドレス対応表であるアドレス変換テーブルを共有スレーブメモリに記憶し、アドレス変換テーブルの情報の一部をバッファ（変換テーブルバッファ）に呼び出してアドレス変換に使用する方法が一般的である。アドレス変換に必要な情報が変換テーブルバッファ上になければ、アクセスをコマンド入力制御部で一旦待たせて、バッファ更新制御部によってアドレス変換テーブルへのアクセスを行って変換テーブルバッファを更新し、更新した情報をもとにアドレス変換をする。バッファ上に情報があればメモリ上のアドレス変換テーブルを参照する時間を省いてアドレス変換ができる。
【０００４】
複数のマスタが共有スレーブにアクセスする場合、各マスタからのバスアクセスを調停し一本化した後に共有スレーブに接続することが必要である。図８（ａ）によれば、上記のアドレス変換機構をアクセスの一本化後に実装している（特許文献１参照）。また、図８（ｂ）によれば、アドレス変換機構は各マスタに実装され、アドレス変換を行ったあとでアクセスの調停が行われることになる（特許文献２参照）。
【特許文献１】特開昭６１−０２６１６７号公報
【特許文献２】特開２００１−０５１９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図８（ａ）のようにバスアクセスの調停後にアドレス変換機構を実装する場合、１つのアドレス変換機構で全マスタアクセスのアドレス変換ができ、また共有スレーブに近い場所に実装していることから共有スレーブにアドレス変換テーブルを記憶している場合にはバッファへのテーブル情報の読み出し時間が小さくてすむ。反面、あるマスタからのアクセスのアドレス変換の際にバッファ上に必要な情報がなくバッファを更新しなければならない場合に、更新待ちの間に他のマスタからの後続アクセスの全てが待たされることになり、特にプロセッサなど低レイテンシアクセスを必要とするマスタの性能に大きな影響を及ぼすという課題が発生する。
【０００６】
図８（ｂ）のようにバスアクセスの調停前に各マスタでアドレス変換を行う場合、あるマスタのバッファ更新待ち時間が他のマスタのアクセスに影響することはない反面、共有スレーブ上のアドレス変換テーブルへのアクセスに他マスタアクセスとの調停時間が含まれバッファ更新時間が非常に大きくなる。また、アドレス変換機構を多数実装する必要がある。
【０００７】
このように、従来のアドレス変換機構の実装方法ではそれぞれに許容できない課題が発生することになる。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明によれば、アドレス変換機構のうちバッファ中に必要な情報があるかを判定するアドレス比較部と、バッファの更新を制御するバッファ更新制御部と、バッファ更新の間アクセスを一旦待たせるアクセス発行制御部とをアクセスの調停前に実装し、バッファを参照してアドレス変換を行うアドレス変換部を調停後に実装する。また、アクセス発行制御部はアドレス変換部でのアドレス変換の際に必要な情報がバッファに格納されることを保証できる段階で、バッファの更新が完全には完了していなくてもアクセスを発行する。
【発明の効果】
【０００９】
本発明により、アクセス発行制御部がアクセス調停前にあることから、あるマスタからのアクセスに対するバッファ更新待ちが他のマスタに影響することはなくなる。また、アドレス変換部を調停後に置き、アクセス発行制御部がバッファ更新完了を待たずにアクセスを発行することから、アクセスレイテンシの短縮が図れる。また、アドレス変換部を各マスタで共有しており、実装面積の削減が図れる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。
【００１１】
《第１の実施形態》
図１は、本発明の第１の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図１の電子装置は、バス１１４を介して互いに接続された半導体集積回路１００と共有リソース１０８とを含む。ここにいう電子装置とは、例えば携帯電話機やＤＶＤレコーダ、ネットワーク機器などの任意の機器が当てはまる。共有リソース１０８は、例えばＳＤＲＡＭなどの半導体記憶装置、ネットワーク上のデータストレージなどの任意の機器が当てはまる。
【００１２】
次に、半導体集積回路１００の内部について詳しく説明する。半導体集積回路１００は、複数のマスタ１０１，１０２と、共有リソース管理部１０３とを含んでいる。マスタ１０１，１０２は共有リソース管理部１０３を介して共有リソース１０８を共有している。つまり、共有リソース１０８はマスタ１０１，１０２の共有スレーブである。マスタ１０１，１０２は、それぞれバス１０９，１１０を介してリソース管理部１０３と接続され、アクセスの要求やデータの送受信を行う。マスタ１０１，１０２は、例えばマイクロプロセッサ、ＤＳＰ（Digital Signal Processor）、ＤＭＡ（Direct Memory Access）コントローラなどである。
【００１３】
共有リソース管理部１０３にはバスＩ／Ｆ（インターフェース）部１０４，１０５、調停部１０６、リソース制御部１０７が含まれる。バスＩ／Ｆ部１０４，１０５と調停部１０６との間にはそれぞれ信号線１１１，１１２が設けられ、調停部１０６とリソース制御部１０７との間には他の信号線１１３が設けられている。バスＩ／Ｆ部１０４，１０５はそれぞれマスタ１０１，１０２とバス１０９，１１０を介してアクセスを受信し、調停部１０６にアクセスを出力する制御を行うとともに、マスタ１０１，１０２との間でバス１０９，１１０を介してのデータのやり取りも制御している。調停部１０６は、バスＩ／Ｆ部１０４，１０５を介して送られるマスタ１０１，１０２からのアクセスを調停、選択し、リソース制御部１０７にアクセスを出力する。リソース制御部１０７は、受信したアクセスをもとに共有リソース１０８の制御を行う。
【００１４】
アドレス変換機構として、共有リソース管理部１０３はバスＩ／Ｆ部１０４内に調停前アドレス管理部１１５を、リソース制御部１０７内に調停後アドレス管理部１２７をそれぞれ持ち、加えて変換テーブルバッファ１２９、バッファ予約管理部１２８を実装している。また、アドレス変換に必要な情報であるアドレス変換テーブル１３０を共有リソース１０８内に記憶している。調停前アドレス管理部１１５にはアクセス分離部１２１、アクセスキュー１２０、アドレス比較部１１６、バッファ更新制御部１１７、アクセス発行制御部１１８、先行発行アドレス記憶部１１９が含まれ、調停後アドレス管理部１２７にはコマンド分離部１２２、先行発行タイミング生成部１２３、コマンド統合部１２４、アドレス変換部１２５、データ分離部１２６が含まれている。
【００１５】
図２は、アドレス変換テーブル１３０及び変換テーブルバッファ１２９によるアドレス変換方法のイメージを示している。第１のアドレス空間はマスタ１０１が管理するアドレス空間、第２のアドレス空間は共有リソース１０８にアクセスするためのアドレス空間である。図２の例では、決まった大きさの変換単位ごとにアドレス変換を行い、変換単位内のアドレスについては、第１のアドレス空間のアドレスの下位ビットをそのまま第２のアドレス空間のアドレスの下位ビットとしてアドレス変換している。
【００１６】
アドレス変換テーブル１３０には、第１のアドレス空間内のそれぞれのアドレスから決定される箇所に、対応する第２のアドレス空間のアドレスが記憶されている。図２の例では、第１のアドレス空間内のアドレスの上位ビットに、共有リソース１０８内でのアドレス変換テーブル１３０の開始位置を加算したアドレス位置に、対応する第２のアドレス空間のアドレスの上位ビットを記憶している。
【００１７】
変換テーブルバッファ１２９には、第１のアドレス空間内の一部のアドレスと、アドレス変換テーブル１３０から読み出した対応する第２のアドレス空間のアドレスとを、変換元アドレスと変換先アドレスとの組として保持している。アドレス変換部１２５は、変換テーブルバッファ１２９の情報をもとに、例えば入力アクセス中の第１のアドレス空間内のアドレスＡ１を、対応する第２のアドレス空間内のアドレスＡ２に変換して出力する。
【００１８】
次に、バスＩ／Ｆ部１０４内に設けられた調停前アドレス管理部１１５について詳細に説明する。
【００１９】
アクセス分離部１２１は、アクセス入力経路１３１から入力されたアクセス要求のうち、アドレス変換対象となるアクセスとそうでないアクセスとを分離し、対象でないアドレスについてはアドレス変換処理をしないようにする。アクセス入力経路１３１には、マスタ１０１からバス１０９を介して転送されたアクセス要求コマンドに対しバスＩ／Ｆ部１０４にて様々な処理を加えられたアクセスが伝送される。アクセス分離部１３１での分離の方法については、入力のアドレス範囲に応じて分離する方法、アクセスに情報として付与されているＩＤ番号によって振り分ける方法などがある。
【００２０】
アクセスキュー１２０は、アクセス分離部１２１によって分離されたアドレス変換対象のアクセスを格納し、後段がアクセスを受け付けるごとにアクセスを順次出力する。
【００２１】
アドレス比較部１１６は、対象となるアクセスのアドレス変換に必要な情報が変換テーブルバッファ１２９に格納されているかを確認するため、変換テーブルバッファ１２９にアドレスの一部を検索キーとして出力し、変換テーブルバッファ１２９から得た検索結果をアクセス発行制御部１１８に通知する。同時に、先行発行アドレス記憶部１１９（後述）の情報も確認し、先行発行アドレス記憶部１１９及び変換テーブルバッファ１２９に必要な情報がない場合にはバッファ更新制御部１１７に対して更新に必要な情報を転送する。バッファ予約管理部１２８に対しては変換に必要な情報の予約を行う（後述）。
【００２２】
バッファ更新制御部１１７は、アドレス比較部１１６からの情報をもとに、アドレス変換テーブル１３０のうち必要なデータを読み出して変換テーブルバッファ１２９に格納するためのバッファ更新アクセスを発生する。
【００２３】
アクセス発行制御部１１８は、アクセス分離部１２１及びアドレス比較部１１６からの情報をもとに、アクセスがアドレス変換対象でない場合にはアクセス分離部１２１で分離されたアクセスを選択し、アドレス変換対象でありかつアドレス変換に必要な情報が変換テーブルバッファ１２９にある場合にはアクセスキュー１２０から出力されるアクセスを選択し、変換テーブルバッファ１２９に必要な情報がない場合にはアクセスキュー１２０から出力されるアクセスを一旦待たせてバッファ更新制御部１１７からのバッファ更新アクセスを選択し、アクセス出力線１３２に出力する。出力されたアクセスはバスＩ／Ｆ部１０４での種々の処理を経て調停部１０６への信号線１１１上に出力される。バッファ更新の間待たせているアクセスキュー１２０からのアクセスは、先行発行タイミング生成部１２３からのタイミング信号が発生すると、変換テーブルバッファ１２９の更新が完了していなくても調停部１０６への信号線１１１上に発行される。
【００２４】
先行発行アドレス記憶部１１９は、アクセス発行制御部１１８において変換テーブルバッファ１２９の更新完了を待たずに発行されたアクセスが示すアドレスを記憶する。アドレスを記憶したことをバッファ更新アクセスに情報として付加し、変換テーブルバッファ１２９の更新完了の際に完了通知を先行発行アドレス記憶部１１９に与え、この通知をもって、記憶したアドレスを消去する。
【００２５】
次に、リソース制御部１０７内に設けられた調停後アドレス管理部１２７について詳細に説明する。
【００２６】
コマンド分離部１２２は、コマンド入力線１３３を介して転送されるアクセスに対し、アクセス分離部１２１で分離したアドレス変換対象外のアクセスやバッファ更新アクセスをアドレス変換しないように分離する。アクセス入力線１３３には調停部１０６から信号線１１３を介して転送されたアクセスに対しリソース制御部１０７内で種々の処理を加えたものが転送される。また、コマンド分離部１２２でのコマンドの分離は、アクセス分離部１２１でアドレス変換対象外アクセスにフラグを、またバッファ更新制御部１１７によるバッファ更新アクセスであることを示すフラグを各アクセスに付加し、コマンド分離部１２２でこれらフラグを判定することで実現する。
【００２７】
アドレス変換部１２５は、コマンド分離部１２２で分離されたアドレス変換対象アクセスに対し、アドレスを変換テーブルバッファ１２９に出力し、出力されたアドレスをキーにして変換テーブルバッファ１２９内で検索されて出力される情報を参照してアドレス変換を行い、このアドレス変換の結果をコマンド統合部１２４に出力する。
【００２８】
コマンド統合部１２４は、コマンド分離部１２２で分離されたアクセスと、アドレス変換部１２５でアドレス変換されたアクセスとを束ね、コマンド出力線１３４を介して後段に続くリソース制御部１０７の種々の処理にアクセスを出力する。これらのアクセスは最終的にはバス１１４を介して共有リソース１０８に送られる。
【００２９】
先行発行タイミング生成部１２３は、アクセス発行制御部１１８において変換テーブルバッファ１２９の更新を待っているアクセスの発行のためのタイミング信号を生成する。このタイミング信号は、アドレス変換部１２５にアクセスが到達した際に変換テーブルバッファ１２９の更新が完了して必要な情報が保持されていることを保証できる任意の時点で出力される。変換テーブルバッファ１２９の更新が完了した時点でタイミング信号を出力するのが最も確実であるが、実際にはアクセス発行制御部１１８からアクセスが発行されてからアドレス変換部１２５にアクセスが到達するまでの最短レイテンシ分だけ早くタイミング信号を出力することができる。この条件を満たす範囲内であれば、変換テーブルバッファ１２９の更新アクセスをリソース制御部１０７のいずれかの箇所で観測した際にタイミング信号を生成する方法、アクセス発行制御部１１８からバッファ更新アクセスが発行されてから一定時間後にタイミング信号を発生する方法、バッファ更新アクセスの発行後に他のマスタの一定個数のコマンドを調停部１０６にて調停した時点した時点で信号を発生する方法など、様々な方法をとることができる。
【００３０】
データ分離部１２６は、共有リソース１０８からバス１１４を介して読み出したデータに対してリソース制御部１０７にて種々の処理を加えたものをデータ入力線１３５から取り込み、そのうち変換テーブルバッファ１２９の更新に使用するデータを分離する。データの分離のため、コマンド統合部１２４は、どのデータがアドレス変換テーブル１３０へのアクセスに対応するかをデータ分離部１２６へ通知する。その他のデータについてはデータ出力線１３６に出力し、リソース制御部１０７内で種々の処理を加えた後、バスＩ／Ｆ部１０４，１０５に送られ、最終的にはマスタ１０１，１０２に転送される。
【００３１】
次に、バッファ予約管理部１２８及び変換テーブルバッファ１２９について詳細に説明する。
【００３２】
バッファ予約管理部１２８は、アドレス比較部１１６からの情報をもとに、あるアクセスに対して変換テーブルバッファ１２９に必要な情報があった場合にはその情報の使用を予約し、アドレス変換部１２５でアドレス変換が完了したことを通知されるまではアドレス変換テーブル１３０内の別の情報で更新されないように、バッファを確保する。また、変換テーブルバッファ１２９に必要な情報がなかった場合には、変換テーブルバッファ１２９内のどの情報を新たな情報に更新するかを予約し、更新が完了して実際にアドレス変換部１２５で使用されるまで別の情報で更新されないように、バッファを確保する。予約の管理の仕方には複数の方法が考えられるが、例えば変換テーブルバッファ１２９内の各バッファに予約中であることを示すフラグを持つことが考えられる。１つのバッファに複数の予約が集中する場合のために、フラグの代わりにカウンタを使用してもよい。また、予約をコマンドとしてキューに保持する方法をとることも可能である。
【００３３】
変換テーブルバッファ１２９は、前述のとおりアドレス変換テーブル１３０中の情報の一部を保持するバッファである。また、データ分離部１２６からの更新データをバッファ予約管理部１２８が示す情報に上書きする。またアドレス変換部１２５からのアドレス情報をもとに変換テーブルバッファ１２９内の情報が検索され、対応する情報がアドレス変換部１２５に出力される。
【００３４】
図３は、上述の各ブロックによってアドレス変換がどのようになされるかを示すフローチャートである。マスタ１０１よりアクセスが発行されると、まずステップ３００で当該アクセスがアドレス変換対象のアクセスであるかをアクセス分離部１２１にて判定し、変換対象であればステップ３０１に、そうでなければステップ３１２に移行する。ステップ３０１では、アドレス比較部１１６によって変換テーブルバッファ１２９内にアドレス変換に必要な情報があるかを判定し、必要な情報があればステップ３０２へ、なければステップ３０６に移行する。ステップ３０２ではバッファ予約管理部１２８によって変換テーブルバッファ１２９内でアドレス変換に使用するバッファの予約を行い、ステップ３０３に移行する。ステップ３０３ではアクセス発行制御部１１８から調停部１０６へとアクセスを発行し、ステップ３０４に移行する。ステップ３０４では、アドレス変換部１２５によって変換テーブルバッファ１２９の情報をもとにアドレス変換を行い、ステップ３０５に移行する。ステップ３０５ではアドレス変換に使用した変換テーブルバッファ１２９内のバッファの予約をバッファ予約管理部１２８にて解除し、ステップ３１２に移行する。
【００３５】
ステップ３０６では、先行発行アドレス記憶部１１９に処理中のアクセスに該当するアドレスが記憶されているかをアドレス比較部１１６にて確認し、記憶されていればステップ３０２へ、なければステップ３０７とステップ３０９とを並行して実施する。ステップ３０７では、先行発行タイミング生成部１２３からのタイミング信号が到達することを確認し、確認が完了すればステップ３０８に移行する。ステップ３０８では先行発行アドレス記憶部１１９にアドレスを記憶し、ステップ３０３に移行する。
【００３６】
ステップ３０９ではバッファ予約管理部１２８によって変換テーブルバッファ１２９内で情報を更新するバッファを予約し、ステップ３１０に移行する。ステップ３１０ではバッファ更新制御部１１７によって変換テーブルバッファ１２９の更新のためのアクセスを生成し、アクセス発行制御部１１８にて更新アクセスを発行し、ステップ３１１に移行する。ステップ３１１ではアドレス変換テーブル１３０から読み出した情報をもとに変換テーブルバッファ１２９のバッファのうち、バッファ予約管理部１２８により指定されたものを更新する。更新した情報はステップ３０４にて使用されることとなる。
【００３７】
最後に、ステップ３１２では、最終的に共有リソース１０８にアクセスを発行する。
【００３８】
以上のとおり、本実施形態によれば、図２に示すアドレス変換を実現することができる。アクセス発行制御部１１８を調停部１０６での調停前に置くことで、あるマスタからのアクセスに対する変換テーブルバッファ１２９の更新待ちが他のマスタのアクセスに影響を及ぼすことはなくなる。また、アドレス変換部１２５を調停部１０６による調停の後に置き、先行発行タイミング生成部１２３のタイミング信号をもとにアクセス発行制御部１１８が変換テーブルバッファ１２９の更新完了を待たずにアクセスを発行することで、変換テーブルバッファ１２９の更新待ちの時間をある程度隠蔽し、アクセスに要するレイテンシを短縮することが可能となる。その際、先行発行アドレス記憶部１１９により、変換テーブルバッファ１２９の更新が完了する前に、同じアドレス変換情報を必要とする後続アクセスに対して再度変換テーブルバッファ１２９の更新アクセスが発行されることを防ぐことができる。
【００３９】
更に、アドレス比較部１１６により、変換テーブルバッファ１２９に一度読み出したデータを再度読み出すのに要する時間を省略することが可能である。また、アクセス分離部１２１は、マスタからのアクセスの中にアドレス変換を行いたくないアクセスが含まれる場合や、アドレス変換を必要とするマスタとそうでないマスタとをバスによってマージしたあとで共有リソース管理部１０３に接続される場合などに有効である。
【００４０】
更に、バッファ予約管理部１２８により、複数のマスタが変換テーブルバッファ１２９を共有する場合でも、あるマスタからのアクセスが使用する予定の情報を、他のマスタからの更新アクセスで消去してしまうことを防止することができる。
【００４１】
なお、本実施形態では、上記機能を全て共有リソース管理部１０３内に実装しているが、一部の機能をマスタに実装することは可能である。本実施形態のように全ての機能を共有リソース管理部１０３内に集約することで、各ブロック間信号が半導体集積回路１００内の至るところでやり取りされるのを防ぎ、実装の容易性を高めることができる。また、各機能は必ずしもバスＩ／Ｆ部１０４やリソース制御部１０７の内部への実装に制限されるものではない。
【００４２】
また、共有リソース１０８は半導体集積回路１００内に実装されていてもよい。
【００４３】
図１ではマスタが２つ記載されているが、マスタの個数は任意である。また、共有リソース１０８の数についても任意である。
【００４４】
上記の説明ではバスＩ／Ｆ部１０４内の調停前アドレス管理部１１５について説明したが、他のバスＩ／Ｆ部１０５内に実装する場合も同様である。また、マスタ毎の調停前アドレス管理部の有無は任意である。
【００４５】
変換テーブルバッファ１２９は各マスタ１０１，１０２間で共有してもよいし、個別に設けてもよい。
【００４６】
図１では、共有リソース１０８が記憶装置であり、アドレス変換テーブル１３０が共有リソース１０８内に記憶されているが、アドレス変換テーブル１３０は任意の記憶装置に記憶することが可能である。例えば、共有リソース１０８とは別の記憶装置に記憶した場合は、変換テーブルバッファ１２９の更新のために別のアクセス経路を辿るための制御が必要となり、リソース制御部１０７内にデータ分離部１２６は不要となり、コマンド分離部１２２、コマンド統合部１２４はバッファ更新アクセスの分離・統合をするだけとなる。
【００４７】
また、アクセス分離部１２１の実装の有無は、マスタ１０１の特性に応じて任意に決定できる。
【００４８】
アクセスキュー１２０の実装の有無及びキューの段数は任意である。また実装箇所はアクセス分離部１２１の前段でもよく、またアドレス変換対象でないアクセスについても同様のキューを実装することが可能である。また、アクセスキュー１２０をアクセス分離部１２１の後段に置く場合、アドレス変換対象外のアクセスが先行するアドレス変換対象のアドレスを追い越さないように制御する機構をアクセス分離部１２１に持たせることも有効である。
【００４９】
アドレス比較部１１６の実装は任意であり、実装されない場合は常に変換テーブルバッファ１２９には必要な情報がないと判断し、アクセスがあるたびに常に変換テーブルバッファ１２９の更新が発生する。アクセスにかかる時間が増大するため性能に影響がある反面、性能が問題にならない場合の面積削減に有効である。また、アドレス比較部１１６はアクセスキュー１２０内に蓄えられる複数のアクセス要求コマンドに対してアドレスの比較を行い、実際のアクセスが発生する前に予め変換テーブルバッファ１２９の更新を行うことも可能である。これにより、変換テーブルバッファ１２９の更新待ちの時間を隠蔽し、性能の向上が図れる。この際、同時に確認した変換テーブルバッファ１２９の更新アクセスがアドレス変換テーブル１３０内の連続アドレスである場合などは、更新コマンドを１つにまとめて発行することも有効である。
【００５０】
先行発行アドレス記憶部１１９の実装の有無は任意であり、実装しない場合には変換テーブルバッファ１２９の更新完了を待たずにアクセスを発行した際に後続のアクセスが再度同じアドレスに対する更新を要求する可能性があり性能が低下する恐れがあるが、性能が許容できれば面積削減の効果が得られる。また、先行発行アドレス記憶部１１９の機能とバッファ予約管理部１２８の機能とをマージすることが可能である。例えば、変換テーブルバッファ１２９の更新の際に、変換先アドレスの書き込みに先立って、変換テーブルバッファ１２９の変換元アドレスのみを新しい情報に更新し、予約をすることで、変換テーブルバッファ１２９の確認と予約管理カウンタの確認とによって、先行発行アドレス記憶部１１９の機能の代用とすることが可能である。
【００５１】
先行発行タイミング生成部１２３の実装の有無は任意であり、また実装の箇所も任意である。実装しない場合、アクセス発行制御部１１８では変換テーブルバッファ１２９の更新完了を常に待つことになるが、その分面積の削減が可能である。
【００５２】
バッファ予約管理部１２８の実装の有無は任意である。例えば変換テーブルバッファ１２９をマスタ間で共有しない場合、マスタからのアクセス発行間隔など、条件によっては必要な情報が使用する前に更新されることはない。また、バッファ予約管理部１２８において次に更新されるバッファを決定する方法は、一般的なＬＲＵ（Least Recently Used）アルゴリズムなど、任意の方法が使用できる。バッファ予約管理部１２８が存在しない場合には、変換テーブルバッファ１２９に情報を書き込む際に更新するバッファを決定してもよい。
【００５３】
図１ではアドレス変換部１２５に変換テーブルバッファ１２９の更新の完了を待ち合わせる機能は実装していないが、安全のために変換テーブルバッファ１２９の更新完了を都度確認することも可能である。
【００５４】
先行発行アドレス記憶部１１９には第１のアドレス空間のアドレス全てを記憶する必要はなく、変換テーブルバッファ１２９に記憶している変換元アドレスに対応する、アドレスの上位ビットのみを記憶してもよい。
【００５５】
データ分離部１２６ではデータの分離のためにコマンド統合部１２４から情報を得ているが、共有リソース１０８からのデータを各バスＩ／Ｆ部１０４，１０５に分離する機構を流用することも可能である。
【００５６】
図２におけるアドレス変換テーブル１３０へのアドレスの生成方法や、変換テーブルバッファ１２９への検索キーの生成方法は一例であり、任意の生成方法を採用することができる。
【００５７】
《第２の実施形態》
図４は、本発明の第２の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図４では、図１に対してページ跨ぎ判定部４００及びコマンド分割部４０１が追加されている。
【００５８】
ページ跨ぎ判定部４００は、マスタ１０１からのアクセスが、一般にページと呼ばれるアドレス変換単位領域を複数跨ぐ際にそのことを判定し、アドレス比較部１１６に比較対象となるアドレスを通知する。コマンド分割部４０１は、コマンド分離部１２２で分離されたアドレス変換対象のアクセスをページごとに分割し、分割された各アクセスをアドレス変換部１２５に転送する。
【００５９】
図５は、複数ページに跨るアクセスをアドレス変換する例を表している。図５では、マスタ１０１から発行される第１のアドレス空間上のアクセスＡはページ１内に含まれる、アドレスＡ１を開始アドレスとする領域とページ２内に含まれるアドレスＢ１を開始アドレスとする領域との２つの領域を含んでおり、アドレス変換を行うと、第２のアドレス空間上ではアクセスＡ−１及びアクセスＡ−２という２つの連続しないアクセスになる。アクセスＡが入力されると、ページ跨ぎ判定部４００はアクセスＡの開始アドレスと転送サイズから２つのページに跨ることを判定し、アドレス変換の対象となるアドレスＡ１とアドレスＢ１とをアドレス比較部１１６に通知する。アドレス比較部１１６は、アドレスＡ１とアドレスＢ１とのアドレス変換に必要な情報が変換テーブルバッファ１２９内に存在するかを判定し、存在しない場合、第１の実施形態で示したとおり変換テーブルバッファ１２９の更新を行う。
【００６０】
コマンド分割部４０１では、アクセスＡを、アドレスＡ１を開始アドレスとするアクセスとアドレスＢ１を開始アドレスとするアクセスとに分割し、アドレス変換部１２５に通知する。アドレス変換部１２５は、分割されたコマンドを個別にアドレス変換する。
【００６１】
アドレス変換部１２５が調停部１０６による調停を受ける前にある場合、コマンド分割部４０１によるページサイズへのアクセスの分割は調停部１０６より前に行われることになる。これにより調停部１０６に多くのアクセスが発行されることになり、その分調停部１０６での調停待ち時間が多く発生することになり、性能の低下が起こり得る。ところが、本実施形態の構成をとることで、この問題を解決することが可能となる。
【００６２】
なお、図５中のアドレスＡ１を開始アドレスとする領域とアドレスＢ１を開始アドレスとする領域とが連続しており、かつアドレス変換テーブル１３０内で連続したアドレスにアドレス変換情報が格納されていれば、バッファ更新制御部１１７からのアクセスを１つにまとめて転送することも可能である。また、アクセスＡ内に含まれるページ数はいくつでもよく、必ずしも連続アドレスである必要はない。
【００６３】
また、図４ではコマンド分割部４０１が実装されているが、共有リソース１０８の仕様によってはリソース制御部１０７内でもともとアクセスを最終的に共有リソース１０８へアクセスするサイズに分割する必要があり、この分割したアクセスがページ内に収まれば、コマンド分割部４０１を新たに実装せずにもともとの分割機構で代用することも可能である。例えば、共有リソース１０８がＳＤＲＡＭであれば、最終的にはＳＤＲＡＭへのバースト長にアクセスが分割されるため、ＳＤＲＡＭコマンドへの分割機構の後にアドレス変換部１２５を実装すれば、コマンド分割部４０１は実装しなくてもよい。
【００６４】
《第３の実施形態》
図６は、本発明の第３の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図６では、図１におけるバッファ予約管理部１２８を廃し、新たに変換テーブルサブバッファ５００及び調停前アドレス変換部５０１を実装している。すなわち、図１では調停前アドレス管理部１１５と調停後アドレス管理部１２７とで共用していた変換テーブルバッファ１２９を、図６では調停前アドレス管理部１１５の専用とし、かつ調停後アドレス管理部１２７のために新たに変換テーブルサブバッファ５００を設けている。
【００６５】
変換テーブルバッファ１２９に必要な情報があるとアドレス比較部１１６が判断した場合には、調停前アドレス変換部５０１によってアドレス変換を行った後、アクセス発行制御部１１８によって調停部１０６にアクセスを発行する。コマンド分離部１２２には、調停前アドレス変換部５０１で既にアドレス変換された後のアクセスを分離し、直ぐにコマンド統合部１２４に送る機能が付加される。
【００６６】
変換テーブルバッファ１２９に必要な情報が含まれていない場合には、調停前アドレス変換部５０１ではアドレス変換をせずに調停部１０６にアクセスを出力し、調停後アドレス管理部１２７内のアドレス変換部１２５にて変換テーブルサブバッファ５００を用いてアドレス変換を行う。バッファ更新制御部１１７から発行されるバッファ更新アクセスにより、変換テーブルバッファ１２９だけでなく変換テーブルサブバッファ５００も同時に更新される。
【００６７】
調停前アドレス変換部５０１の存在により、第１の実施形態においてアドレス比較部１１６が変換テーブルバッファ１２９内に必要な情報があると判断したにもかかわらず、アドレス変換部１２５でアドレス変換するまでに情報が消去されることはない。また、変換テーブルサブバッファ５００は各マスタで個別に用意することで、アドレス変換部１２５で使用する情報が他のマスタからの更新アクセスにより消去されることはない。これにより、第１の実施形態におけるバッファ予約管理部１２８を実装する必要がなくなる。
【００６８】
また、変換テーブルサブバッファ５００はアドレス変換部１２５において使用する情報を一時的に蓄えるのみであるため、バッファ量は少量でよい。アドレス変換部１２５におけるアドレス変換に多くのサイクル数を必要とすると後続のアクセスを待たせることになるので、変換テーブルサブバッファ５００が小さいことは、半導体集積回路１００が高周波数で動作する際にもアドレス変換部１２５でのアドレス変換を少ないサイクルで実現する上で効果的である。
【００６９】
なお、変換テーブルサブバッファ５００をマスタ間で共有するために、専用のバッファ予約管理部を設けてもよい。
【産業上の利用可能性】
【００７０】
以上説明してきたとおり、本発明に係るデータ処理システムは、複数のマスタがスレーブを共有するシステムにおいて、共有スレーブアクセスのためのアドレス変換を行う際に有効である。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。
【図２】図１の構成におけるアドレス変換のイメージ図である。
【図３】図１中の共有リソース管理部の動作を示すフローチャートである。
【図４】本発明の第２の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。
【図５】図４の構成におけるアドレス変換のイメージ図である。
【図６】本発明の第３の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。
【図７】従来のアドレス変換機構の例を示すブロック図である。
【図８】（ａ）及び（ｂ）は、従来のアドレス変換機構の配置例を示すブロック図である。
【符号の説明】
【００７２】
１０１，１０２  マスタ
１０６  調停部
１０８  共有リソース
１１７  バッファ更新制御部
１１８  アクセス発行制御部
１２３  先行発行タイミング生成部
１２５  アドレス変換部
【図１】
0004924970.tif 000002
【図２】
0004924970.tif 000003
【図３】
0004924970.tif 000004
【図４】
0004924970.tif 000005
【図５】
0004924970.tif 000006
【図６】
0004924970.tif 000007
【図７】
0004924970.tif 000008
【図８】
0004924970.tif 000009