JP4924970B2 - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP4924970B2
JP4924970B2 JP2007196211A JP2007196211A JP4924970B2 JP 4924970 B2 JP4924970 B2 JP 4924970B2 JP 2007196211 A JP2007196211 A JP 2007196211A JP 2007196211 A JP2007196211 A JP 2007196211A JP 4924970 B2 JP4924970 B2 JP 4924970B2
Authority
JP
Japan
Prior art keywords
access
address
unit
processing system
data processing
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.)
Expired - Fee Related
Application number
JP2007196211A
Other languages
English (en)
Other versions
JP2009032085A (ja
Inventor
祐紀 曽我
功 河本
大輔 村上
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007196211A priority Critical patent/JP4924970B2/ja
Priority to US12/109,894 priority patent/US8239652B2/en
Publication of JP2009032085A publication Critical patent/JP2009032085A/ja
Application granted granted Critical
Publication of JP4924970B2 publication Critical patent/JP4924970B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、複数のマスタがスレーブを共有するように構成されたデータ処理システムに関するものである。
複数のマスタがバスを介して1つ又は複数のスレーブを共有する場合、共有スレーブの効率的使用のためにマスタが管理するアドレス空間から共有スレーブのアドレス空間へのアドレス変換機構を設けることが一般的である。ここに、マスタはマイクロプロセッサ、DSP(Digital Signal Processor)、DMA(Direct Memory Access)コントローラなどであり、スレーブはメモリ、周辺I/O(input/output)コントローラなどである。例えば、共有スレーブがメモリである場合、メモリ上に分散する空き領域をアドレス変換により連続領域としてマスタに使用させることで、メモリ上に余分な静的連続領域を確保する必要がなく、メモリ容量の削減につながる。
アドレス変換機構には様々な実装形態があるが、図7に示すように、アドレス変換に用いるアドレス対応表であるアドレス変換テーブルを共有スレーブメモリに記憶し、アドレス変換テーブルの情報の一部をバッファ(変換テーブルバッファ)に呼び出してアドレス変換に使用する方法が一般的である。アドレス変換に必要な情報が変換テーブルバッファ上になければ、アクセスをコマンド入力制御部で一旦待たせて、バッファ更新制御部によってアドレス変換テーブルへのアクセスを行って変換テーブルバッファを更新し、更新した情報をもとにアドレス変換をする。バッファ上に情報があればメモリ上のアドレス変換テーブルを参照する時間を省いてアドレス変換ができる。
複数のマスタが共有スレーブにアクセスする場合、各マスタからのバスアクセスを調停し一本化した後に共有スレーブに接続することが必要である。図8(a)によれば、上記のアドレス変換機構をアクセスの一本化後に実装している(特許文献1参照)。また、図8(b)によれば、アドレス変換機構は各マスタに実装され、アドレス変換を行ったあとでアクセスの調停が行われることになる(特許文献2参照)。
特開昭61−026167号公報 特開2001−051958号公報
図8(a)のようにバスアクセスの調停後にアドレス変換機構を実装する場合、1つのアドレス変換機構で全マスタアクセスのアドレス変換ができ、また共有スレーブに近い場所に実装していることから共有スレーブにアドレス変換テーブルを記憶している場合にはバッファへのテーブル情報の読み出し時間が小さくてすむ。反面、あるマスタからのアクセスのアドレス変換の際にバッファ上に必要な情報がなくバッファを更新しなければならない場合に、更新待ちの間に他のマスタからの後続アクセスの全てが待たされることになり、特にプロセッサなど低レイテンシアクセスを必要とするマスタの性能に大きな影響を及ぼすという課題が発生する。
図8(b)のようにバスアクセスの調停前に各マスタでアドレス変換を行う場合、あるマスタのバッファ更新待ち時間が他のマスタのアクセスに影響することはない反面、共有スレーブ上のアドレス変換テーブルへのアクセスに他マスタアクセスとの調停時間が含まれバッファ更新時間が非常に大きくなる。また、アドレス変換機構を多数実装する必要がある。
このように、従来のアドレス変換機構の実装方法ではそれぞれに許容できない課題が発生することになる。
上記課題を解決するため、本発明によれば、アドレス変換機構のうちバッファ中に必要な情報があるかを判定するアドレス比較部と、バッファの更新を制御するバッファ更新制御部と、バッファ更新の間アクセスを一旦待たせるアクセス発行制御部とをアクセスの調停前に実装し、バッファを参照してアドレス変換を行うアドレス変換部を調停後に実装する。また、アクセス発行制御部はアドレス変換部でのアドレス変換の際に必要な情報がバッファに格納されることを保証できる段階で、バッファの更新が完全には完了していなくてもアクセスを発行する。
本発明により、アクセス発行制御部がアクセス調停前にあることから、あるマスタからのアクセスに対するバッファ更新待ちが他のマスタに影響することはなくなる。また、アドレス変換部を調停後に置き、アクセス発行制御部がバッファ更新完了を待たずにアクセスを発行することから、アクセスレイテンシの短縮が図れる。また、アドレス変換部を各マスタで共有しており、実装面積の削減が図れる。
以下、本発明の実施の形態について、図を用いて説明する。
《第1の実施形態》
図1は、本発明の第1の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図1の電子装置は、バス114を介して互いに接続された半導体集積回路100と共有リソース108とを含む。ここにいう電子装置とは、例えば携帯電話機やDVDレコーダ、ネットワーク機器などの任意の機器が当てはまる。共有リソース108は、例えばSDRAMなどの半導体記憶装置、ネットワーク上のデータストレージなどの任意の機器が当てはまる。
次に、半導体集積回路100の内部について詳しく説明する。半導体集積回路100は、複数のマスタ101,102と、共有リソース管理部103とを含んでいる。マスタ101,102は共有リソース管理部103を介して共有リソース108を共有している。つまり、共有リソース108はマスタ101,102の共有スレーブである。マスタ101,102は、それぞれバス109,110を介してリソース管理部103と接続され、アクセスの要求やデータの送受信を行う。マスタ101,102は、例えばマイクロプロセッサ、DSP(Digital Signal Processor)、DMA(Direct Memory Access)コントローラなどである。
共有リソース管理部103にはバスI/F(インターフェース)部104,105、調停部106、リソース制御部107が含まれる。バスI/F部104,105と調停部106との間にはそれぞれ信号線111,112が設けられ、調停部106とリソース制御部107との間には他の信号線113が設けられている。バスI/F部104,105はそれぞれマスタ101,102とバス109,110を介してアクセスを受信し、調停部106にアクセスを出力する制御を行うとともに、マスタ101,102との間でバス109,110を介してのデータのやり取りも制御している。調停部106は、バスI/F部104,105を介して送られるマスタ101,102からのアクセスを調停、選択し、リソース制御部107にアクセスを出力する。リソース制御部107は、受信したアクセスをもとに共有リソース108の制御を行う。
アドレス変換機構として、共有リソース管理部103はバスI/F部104内に調停前アドレス管理部115を、リソース制御部107内に調停後アドレス管理部127をそれぞれ持ち、加えて変換テーブルバッファ129、バッファ予約管理部128を実装している。また、アドレス変換に必要な情報であるアドレス変換テーブル130を共有リソース108内に記憶している。調停前アドレス管理部115にはアクセス分離部121、アクセスキュー120、アドレス比較部116、バッファ更新制御部117、アクセス発行制御部118、先行発行アドレス記憶部119が含まれ、調停後アドレス管理部127にはコマンド分離部122、先行発行タイミング生成部123、コマンド統合部124、アドレス変換部125、データ分離部126が含まれている。
図2は、アドレス変換テーブル130及び変換テーブルバッファ129によるアドレス変換方法のイメージを示している。第1のアドレス空間はマスタ101が管理するアドレス空間、第2のアドレス空間は共有リソース108にアクセスするためのアドレス空間である。図2の例では、決まった大きさの変換単位ごとにアドレス変換を行い、変換単位内のアドレスについては、第1のアドレス空間のアドレスの下位ビットをそのまま第2のアドレス空間のアドレスの下位ビットとしてアドレス変換している。
アドレス変換テーブル130には、第1のアドレス空間内のそれぞれのアドレスから決定される箇所に、対応する第2のアドレス空間のアドレスが記憶されている。図2の例では、第1のアドレス空間内のアドレスの上位ビットに、共有リソース108内でのアドレス変換テーブル130の開始位置を加算したアドレス位置に、対応する第2のアドレス空間のアドレスの上位ビットを記憶している。
変換テーブルバッファ129には、第1のアドレス空間内の一部のアドレスと、アドレス変換テーブル130から読み出した対応する第2のアドレス空間のアドレスとを、変換元アドレスと変換先アドレスとの組として保持している。アドレス変換部125は、変換テーブルバッファ129の情報をもとに、例えば入力アクセス中の第1のアドレス空間内のアドレスA1を、対応する第2のアドレス空間内のアドレスA2に変換して出力する。
次に、バスI/F部104内に設けられた調停前アドレス管理部115について詳細に説明する。
アクセス分離部121は、アクセス入力経路131から入力されたアクセス要求のうち、アドレス変換対象となるアクセスとそうでないアクセスとを分離し、対象でないアドレスについてはアドレス変換処理をしないようにする。アクセス入力経路131には、マスタ101からバス109を介して転送されたアクセス要求コマンドに対しバスI/F部104にて様々な処理を加えられたアクセスが伝送される。アクセス分離部131での分離の方法については、入力のアドレス範囲に応じて分離する方法、アクセスに情報として付与されているID番号によって振り分ける方法などがある。
アクセスキュー120は、アクセス分離部121によって分離されたアドレス変換対象のアクセスを格納し、後段がアクセスを受け付けるごとにアクセスを順次出力する。
アドレス比較部116は、対象となるアクセスのアドレス変換に必要な情報が変換テーブルバッファ129に格納されているかを確認するため、変換テーブルバッファ129にアドレスの一部を検索キーとして出力し、変換テーブルバッファ129から得た検索結果をアクセス発行制御部118に通知する。同時に、先行発行アドレス記憶部119(後述)の情報も確認し、先行発行アドレス記憶部119及び変換テーブルバッファ129に必要な情報がない場合にはバッファ更新制御部117に対して更新に必要な情報を転送する。バッファ予約管理部128に対しては変換に必要な情報の予約を行う(後述)。
バッファ更新制御部117は、アドレス比較部116からの情報をもとに、アドレス変換テーブル130のうち必要なデータを読み出して変換テーブルバッファ129に格納するためのバッファ更新アクセスを発生する。
アクセス発行制御部118は、アクセス分離部121及びアドレス比較部116からの情報をもとに、アクセスがアドレス変換対象でない場合にはアクセス分離部121で分離されたアクセスを選択し、アドレス変換対象でありかつアドレス変換に必要な情報が変換テーブルバッファ129にある場合にはアクセスキュー120から出力されるアクセスを選択し、変換テーブルバッファ129に必要な情報がない場合にはアクセスキュー120から出力されるアクセスを一旦待たせてバッファ更新制御部117からのバッファ更新アクセスを選択し、アクセス出力線132に出力する。出力されたアクセスはバスI/F部104での種々の処理を経て調停部106への信号線111上に出力される。バッファ更新の間待たせているアクセスキュー120からのアクセスは、先行発行タイミング生成部123からのタイミング信号が発生すると、変換テーブルバッファ129の更新が完了していなくても調停部106への信号線111上に発行される。
先行発行アドレス記憶部119は、アクセス発行制御部118において変換テーブルバッファ129の更新完了を待たずに発行されたアクセスが示すアドレスを記憶する。アドレスを記憶したことをバッファ更新アクセスに情報として付加し、変換テーブルバッファ129の更新完了の際に完了通知を先行発行アドレス記憶部119に与え、この通知をもって、記憶したアドレスを消去する。
次に、リソース制御部107内に設けられた調停後アドレス管理部127について詳細に説明する。
コマンド分離部122は、コマンド入力線133を介して転送されるアクセスに対し、アクセス分離部121で分離したアドレス変換対象外のアクセスやバッファ更新アクセスをアドレス変換しないように分離する。アクセス入力線133には調停部106から信号線113を介して転送されたアクセスに対しリソース制御部107内で種々の処理を加えたものが転送される。また、コマンド分離部122でのコマンドの分離は、アクセス分離部121でアドレス変換対象外アクセスにフラグを、またバッファ更新制御部117によるバッファ更新アクセスであることを示すフラグを各アクセスに付加し、コマンド分離部122でこれらフラグを判定することで実現する。
アドレス変換部125は、コマンド分離部122で分離されたアドレス変換対象アクセスに対し、アドレスを変換テーブルバッファ129に出力し、出力されたアドレスをキーにして変換テーブルバッファ129内で検索されて出力される情報を参照してアドレス変換を行い、このアドレス変換の結果をコマンド統合部124に出力する。
コマンド統合部124は、コマンド分離部122で分離されたアクセスと、アドレス変換部125でアドレス変換されたアクセスとを束ね、コマンド出力線134を介して後段に続くリソース制御部107の種々の処理にアクセスを出力する。これらのアクセスは最終的にはバス114を介して共有リソース108に送られる。
先行発行タイミング生成部123は、アクセス発行制御部118において変換テーブルバッファ129の更新を待っているアクセスの発行のためのタイミング信号を生成する。このタイミング信号は、アドレス変換部125にアクセスが到達した際に変換テーブルバッファ129の更新が完了して必要な情報が保持されていることを保証できる任意の時点で出力される。変換テーブルバッファ129の更新が完了した時点でタイミング信号を出力するのが最も確実であるが、実際にはアクセス発行制御部118からアクセスが発行されてからアドレス変換部125にアクセスが到達するまでの最短レイテンシ分だけ早くタイミング信号を出力することができる。この条件を満たす範囲内であれば、変換テーブルバッファ129の更新アクセスをリソース制御部107のいずれかの箇所で観測した際にタイミング信号を生成する方法、アクセス発行制御部118からバッファ更新アクセスが発行されてから一定時間後にタイミング信号を発生する方法、バッファ更新アクセスの発行後に他のマスタの一定個数のコマンドを調停部106にて調停した時点した時点で信号を発生する方法など、様々な方法をとることができる。
データ分離部126は、共有リソース108からバス114を介して読み出したデータに対してリソース制御部107にて種々の処理を加えたものをデータ入力線135から取り込み、そのうち変換テーブルバッファ129の更新に使用するデータを分離する。データの分離のため、コマンド統合部124は、どのデータがアドレス変換テーブル130へのアクセスに対応するかをデータ分離部126へ通知する。その他のデータについてはデータ出力線136に出力し、リソース制御部107内で種々の処理を加えた後、バスI/F部104,105に送られ、最終的にはマスタ101,102に転送される。
次に、バッファ予約管理部128及び変換テーブルバッファ129について詳細に説明する。
バッファ予約管理部128は、アドレス比較部116からの情報をもとに、あるアクセスに対して変換テーブルバッファ129に必要な情報があった場合にはその情報の使用を予約し、アドレス変換部125でアドレス変換が完了したことを通知されるまではアドレス変換テーブル130内の別の情報で更新されないように、バッファを確保する。また、変換テーブルバッファ129に必要な情報がなかった場合には、変換テーブルバッファ129内のどの情報を新たな情報に更新するかを予約し、更新が完了して実際にアドレス変換部125で使用されるまで別の情報で更新されないように、バッファを確保する。予約の管理の仕方には複数の方法が考えられるが、例えば変換テーブルバッファ129内の各バッファに予約中であることを示すフラグを持つことが考えられる。1つのバッファに複数の予約が集中する場合のために、フラグの代わりにカウンタを使用してもよい。また、予約をコマンドとしてキューに保持する方法をとることも可能である。
変換テーブルバッファ129は、前述のとおりアドレス変換テーブル130中の情報の一部を保持するバッファである。また、データ分離部126からの更新データをバッファ予約管理部128が示す情報に上書きする。またアドレス変換部125からのアドレス情報をもとに変換テーブルバッファ129内の情報が検索され、対応する情報がアドレス変換部125に出力される。
図3は、上述の各ブロックによってアドレス変換がどのようになされるかを示すフローチャートである。マスタ101よりアクセスが発行されると、まずステップ300で当該アクセスがアドレス変換対象のアクセスであるかをアクセス分離部121にて判定し、変換対象であればステップ301に、そうでなければステップ312に移行する。ステップ301では、アドレス比較部116によって変換テーブルバッファ129内にアドレス変換に必要な情報があるかを判定し、必要な情報があればステップ302へ、なければステップ306に移行する。ステップ302ではバッファ予約管理部128によって変換テーブルバッファ129内でアドレス変換に使用するバッファの予約を行い、ステップ303に移行する。ステップ303ではアクセス発行制御部118から調停部106へとアクセスを発行し、ステップ304に移行する。ステップ304では、アドレス変換部125によって変換テーブルバッファ129の情報をもとにアドレス変換を行い、ステップ305に移行する。ステップ305ではアドレス変換に使用した変換テーブルバッファ129内のバッファの予約をバッファ予約管理部128にて解除し、ステップ312に移行する。
ステップ306では、先行発行アドレス記憶部119に処理中のアクセスに該当するアドレスが記憶されているかをアドレス比較部116にて確認し、記憶されていればステップ302へ、なければステップ307とステップ309とを並行して実施する。ステップ307では、先行発行タイミング生成部123からのタイミング信号が到達することを確認し、確認が完了すればステップ308に移行する。ステップ308では先行発行アドレス記憶部119にアドレスを記憶し、ステップ303に移行する。
ステップ309ではバッファ予約管理部128によって変換テーブルバッファ129内で情報を更新するバッファを予約し、ステップ310に移行する。ステップ310ではバッファ更新制御部117によって変換テーブルバッファ129の更新のためのアクセスを生成し、アクセス発行制御部118にて更新アクセスを発行し、ステップ311に移行する。ステップ311ではアドレス変換テーブル130から読み出した情報をもとに変換テーブルバッファ129のバッファのうち、バッファ予約管理部128により指定されたものを更新する。更新した情報はステップ304にて使用されることとなる。
最後に、ステップ312では、最終的に共有リソース108にアクセスを発行する。
以上のとおり、本実施形態によれば、図2に示すアドレス変換を実現することができる。アクセス発行制御部118を調停部106での調停前に置くことで、あるマスタからのアクセスに対する変換テーブルバッファ129の更新待ちが他のマスタのアクセスに影響を及ぼすことはなくなる。また、アドレス変換部125を調停部106による調停の後に置き、先行発行タイミング生成部123のタイミング信号をもとにアクセス発行制御部118が変換テーブルバッファ129の更新完了を待たずにアクセスを発行することで、変換テーブルバッファ129の更新待ちの時間をある程度隠蔽し、アクセスに要するレイテンシを短縮することが可能となる。その際、先行発行アドレス記憶部119により、変換テーブルバッファ129の更新が完了する前に、同じアドレス変換情報を必要とする後続アクセスに対して再度変換テーブルバッファ129の更新アクセスが発行されることを防ぐことができる。
更に、アドレス比較部116により、変換テーブルバッファ129に一度読み出したデータを再度読み出すのに要する時間を省略することが可能である。また、アクセス分離部121は、マスタからのアクセスの中にアドレス変換を行いたくないアクセスが含まれる場合や、アドレス変換を必要とするマスタとそうでないマスタとをバスによってマージしたあとで共有リソース管理部103に接続される場合などに有効である。
更に、バッファ予約管理部128により、複数のマスタが変換テーブルバッファ129を共有する場合でも、あるマスタからのアクセスが使用する予定の情報を、他のマスタからの更新アクセスで消去してしまうことを防止することができる。
なお、本実施形態では、上記機能を全て共有リソース管理部103内に実装しているが、一部の機能をマスタに実装することは可能である。本実施形態のように全ての機能を共有リソース管理部103内に集約することで、各ブロック間信号が半導体集積回路100内の至るところでやり取りされるのを防ぎ、実装の容易性を高めることができる。また、各機能は必ずしもバスI/F部104やリソース制御部107の内部への実装に制限されるものではない。
また、共有リソース108は半導体集積回路100内に実装されていてもよい。
図1ではマスタが2つ記載されているが、マスタの個数は任意である。また、共有リソース108の数についても任意である。
上記の説明ではバスI/F部104内の調停前アドレス管理部115について説明したが、他のバスI/F部105内に実装する場合も同様である。また、マスタ毎の調停前アドレス管理部の有無は任意である。
変換テーブルバッファ129は各マスタ101,102間で共有してもよいし、個別に設けてもよい。
図1では、共有リソース108が記憶装置であり、アドレス変換テーブル130が共有リソース108内に記憶されているが、アドレス変換テーブル130は任意の記憶装置に記憶することが可能である。例えば、共有リソース108とは別の記憶装置に記憶した場合は、変換テーブルバッファ129の更新のために別のアクセス経路を辿るための制御が必要となり、リソース制御部107内にデータ分離部126は不要となり、コマンド分離部122、コマンド統合部124はバッファ更新アクセスの分離・統合をするだけとなる。
また、アクセス分離部121の実装の有無は、マスタ101の特性に応じて任意に決定できる。
アクセスキュー120の実装の有無及びキューの段数は任意である。また実装箇所はアクセス分離部121の前段でもよく、またアドレス変換対象でないアクセスについても同様のキューを実装することが可能である。また、アクセスキュー120をアクセス分離部121の後段に置く場合、アドレス変換対象外のアクセスが先行するアドレス変換対象のアドレスを追い越さないように制御する機構をアクセス分離部121に持たせることも有効である。
アドレス比較部116の実装は任意であり、実装されない場合は常に変換テーブルバッファ129には必要な情報がないと判断し、アクセスがあるたびに常に変換テーブルバッファ129の更新が発生する。アクセスにかかる時間が増大するため性能に影響がある反面、性能が問題にならない場合の面積削減に有効である。また、アドレス比較部116はアクセスキュー120内に蓄えられる複数のアクセス要求コマンドに対してアドレスの比較を行い、実際のアクセスが発生する前に予め変換テーブルバッファ129の更新を行うことも可能である。これにより、変換テーブルバッファ129の更新待ちの時間を隠蔽し、性能の向上が図れる。この際、同時に確認した変換テーブルバッファ129の更新アクセスがアドレス変換テーブル130内の連続アドレスである場合などは、更新コマンドを1つにまとめて発行することも有効である。
先行発行アドレス記憶部119の実装の有無は任意であり、実装しない場合には変換テーブルバッファ129の更新完了を待たずにアクセスを発行した際に後続のアクセスが再度同じアドレスに対する更新を要求する可能性があり性能が低下する恐れがあるが、性能が許容できれば面積削減の効果が得られる。また、先行発行アドレス記憶部119の機能とバッファ予約管理部128の機能とをマージすることが可能である。例えば、変換テーブルバッファ129の更新の際に、変換先アドレスの書き込みに先立って、変換テーブルバッファ129の変換元アドレスのみを新しい情報に更新し、予約をすることで、変換テーブルバッファ129の確認と予約管理カウンタの確認とによって、先行発行アドレス記憶部119の機能の代用とすることが可能である。
先行発行タイミング生成部123の実装の有無は任意であり、また実装の箇所も任意である。実装しない場合、アクセス発行制御部118では変換テーブルバッファ129の更新完了を常に待つことになるが、その分面積の削減が可能である。
バッファ予約管理部128の実装の有無は任意である。例えば変換テーブルバッファ129をマスタ間で共有しない場合、マスタからのアクセス発行間隔など、条件によっては必要な情報が使用する前に更新されることはない。また、バッファ予約管理部128において次に更新されるバッファを決定する方法は、一般的なLRU(Least Recently Used)アルゴリズムなど、任意の方法が使用できる。バッファ予約管理部128が存在しない場合には、変換テーブルバッファ129に情報を書き込む際に更新するバッファを決定してもよい。
図1ではアドレス変換部125に変換テーブルバッファ129の更新の完了を待ち合わせる機能は実装していないが、安全のために変換テーブルバッファ129の更新完了を都度確認することも可能である。
先行発行アドレス記憶部119には第1のアドレス空間のアドレス全てを記憶する必要はなく、変換テーブルバッファ129に記憶している変換元アドレスに対応する、アドレスの上位ビットのみを記憶してもよい。
データ分離部126ではデータの分離のためにコマンド統合部124から情報を得ているが、共有リソース108からのデータを各バスI/F部104,105に分離する機構を流用することも可能である。
図2におけるアドレス変換テーブル130へのアドレスの生成方法や、変換テーブルバッファ129への検索キーの生成方法は一例であり、任意の生成方法を採用することができる。
《第2の実施形態》
図4は、本発明の第2の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図4では、図1に対してページ跨ぎ判定部400及びコマンド分割部401が追加されている。
ページ跨ぎ判定部400は、マスタ101からのアクセスが、一般にページと呼ばれるアドレス変換単位領域を複数跨ぐ際にそのことを判定し、アドレス比較部116に比較対象となるアドレスを通知する。コマンド分割部401は、コマンド分離部122で分離されたアドレス変換対象のアクセスをページごとに分割し、分割された各アクセスをアドレス変換部125に転送する。
図5は、複数ページに跨るアクセスをアドレス変換する例を表している。図5では、マスタ101から発行される第1のアドレス空間上のアクセスAはページ1内に含まれる、アドレスA1を開始アドレスとする領域とページ2内に含まれるアドレスB1を開始アドレスとする領域との2つの領域を含んでおり、アドレス変換を行うと、第2のアドレス空間上ではアクセスA−1及びアクセスA−2という2つの連続しないアクセスになる。アクセスAが入力されると、ページ跨ぎ判定部400はアクセスAの開始アドレスと転送サイズから2つのページに跨ることを判定し、アドレス変換の対象となるアドレスA1とアドレスB1とをアドレス比較部116に通知する。アドレス比較部116は、アドレスA1とアドレスB1とのアドレス変換に必要な情報が変換テーブルバッファ129内に存在するかを判定し、存在しない場合、第1の実施形態で示したとおり変換テーブルバッファ129の更新を行う。
コマンド分割部401では、アクセスAを、アドレスA1を開始アドレスとするアクセスとアドレスB1を開始アドレスとするアクセスとに分割し、アドレス変換部125に通知する。アドレス変換部125は、分割されたコマンドを個別にアドレス変換する。
アドレス変換部125が調停部106による調停を受ける前にある場合、コマンド分割部401によるページサイズへのアクセスの分割は調停部106より前に行われることになる。これにより調停部106に多くのアクセスが発行されることになり、その分調停部106での調停待ち時間が多く発生することになり、性能の低下が起こり得る。ところが、本実施形態の構成をとることで、この問題を解決することが可能となる。
なお、図5中のアドレスA1を開始アドレスとする領域とアドレスB1を開始アドレスとする領域とが連続しており、かつアドレス変換テーブル130内で連続したアドレスにアドレス変換情報が格納されていれば、バッファ更新制御部117からのアクセスを1つにまとめて転送することも可能である。また、アクセスA内に含まれるページ数はいくつでもよく、必ずしも連続アドレスである必要はない。
また、図4ではコマンド分割部401が実装されているが、共有リソース108の仕様によってはリソース制御部107内でもともとアクセスを最終的に共有リソース108へアクセスするサイズに分割する必要があり、この分割したアクセスがページ内に収まれば、コマンド分割部401を新たに実装せずにもともとの分割機構で代用することも可能である。例えば、共有リソース108がSDRAMであれば、最終的にはSDRAMへのバースト長にアクセスが分割されるため、SDRAMコマンドへの分割機構の後にアドレス変換部125を実装すれば、コマンド分割部401は実装しなくてもよい。
《第3の実施形態》
図6は、本発明の第3の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示している。図6では、図1におけるバッファ予約管理部128を廃し、新たに変換テーブルサブバッファ500及び調停前アドレス変換部501を実装している。すなわち、図1では調停前アドレス管理部115と調停後アドレス管理部127とで共用していた変換テーブルバッファ129を、図6では調停前アドレス管理部115の専用とし、かつ調停後アドレス管理部127のために新たに変換テーブルサブバッファ500を設けている。
変換テーブルバッファ129に必要な情報があるとアドレス比較部116が判断した場合には、調停前アドレス変換部501によってアドレス変換を行った後、アクセス発行制御部118によって調停部106にアクセスを発行する。コマンド分離部122には、調停前アドレス変換部501で既にアドレス変換された後のアクセスを分離し、直ぐにコマンド統合部124に送る機能が付加される。
変換テーブルバッファ129に必要な情報が含まれていない場合には、調停前アドレス変換部501ではアドレス変換をせずに調停部106にアクセスを出力し、調停後アドレス管理部127内のアドレス変換部125にて変換テーブルサブバッファ500を用いてアドレス変換を行う。バッファ更新制御部117から発行されるバッファ更新アクセスにより、変換テーブルバッファ129だけでなく変換テーブルサブバッファ500も同時に更新される。
調停前アドレス変換部501の存在により、第1の実施形態においてアドレス比較部116が変換テーブルバッファ129内に必要な情報があると判断したにもかかわらず、アドレス変換部125でアドレス変換するまでに情報が消去されることはない。また、変換テーブルサブバッファ500は各マスタで個別に用意することで、アドレス変換部125で使用する情報が他のマスタからの更新アクセスにより消去されることはない。これにより、第1の実施形態におけるバッファ予約管理部128を実装する必要がなくなる。
また、変換テーブルサブバッファ500はアドレス変換部125において使用する情報を一時的に蓄えるのみであるため、バッファ量は少量でよい。アドレス変換部125におけるアドレス変換に多くのサイクル数を必要とすると後続のアクセスを待たせることになるので、変換テーブルサブバッファ500が小さいことは、半導体集積回路100が高周波数で動作する際にもアドレス変換部125でのアドレス変換を少ないサイクルで実現する上で効果的である。
なお、変換テーブルサブバッファ500をマスタ間で共有するために、専用のバッファ予約管理部を設けてもよい。
以上説明してきたとおり、本発明に係るデータ処理システムは、複数のマスタがスレーブを共有するシステムにおいて、共有スレーブアクセスのためのアドレス変換を行う際に有効である。
本発明の第1の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。 図1の構成におけるアドレス変換のイメージ図である。 図1中の共有リソース管理部の動作を示すフローチャートである。 本発明の第2の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。 図4の構成におけるアドレス変換のイメージ図である。 本発明の第3の実施形態に係るデータ処理システムを持つ半導体集積回路を含む電子装置の構成を示すブロック図である。 従来のアドレス変換機構の例を示すブロック図である。 (a)及び(b)は、従来のアドレス変換機構の配置例を示すブロック図である。
符号の説明
101,102 マスタ
106 調停部
108 共有リソース
117 バッファ更新制御部
118 アクセス発行制御部
123 先行発行タイミング生成部
125 アドレス変換部

Claims (23)

  1. 複数のマスタが共有リソースを共有するデータ処理システムであって、
    前記複数のマスタ間で共通に、
    前記マスタが前記共有リソースへのアクセスに使用する第1のアドレス空間と前記共有リソースが有する第2のアドレス空間との対応を示すアドレス変換テーブルと、
    前記アドレス変換テーブルの情報の一部を保持する変換テーブルバッファとを有し、
    前記各マスタ毎に、
    前記マスタからのアクセスを参照し、前記アクセスのアドレス変換に必要な前記アドレス変換テーブルの情報による前記変換テーブルバッファの更新を制御するバッファ更新制御部と、
    前記変換テーブルバッファの更新状況に応じて、前記共有リソースへのアクセスの発行の待ち合わせを行うアクセス発行制御部とを有し、
    前記アクセス発行制御部から発行された前記共有リソースへのアクセスの調停を行う調停部と、
    前記調停部において選択されたアクセスに対して、前記変換テーブルバッファの情報を用いて前記第1のアドレス空間から前記第2のアドレス空間へのアドレス変換を行うアドレス変換部とを更に有するデータ処理システム。
  2. 請求項1記載のデータ処理システムにおいて、
    前記各マスタ毎に、
    前記アドレス変換に必要な情報が前記変換テーブルバッファに保持されているかを判定するアドレス比較部を更に有し、
    前記変換テーブルバッファに必要な情報が保持されていない場合のみ前記バッファ更新制御部が前記変換テーブルバッファの更新を行うデータ処理システム。
  3. 請求項1記載のデータ処理システムにおいて、
    前記アクセス発行制御部は、前記マスタからのアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに準備されるのを待たずに前記調停部へアクセスを発行するデータ処理システム。
  4. 請求項3記載のデータ処理システムにおいて、
    前記アドレス変換部に前記マスタからのアクセスが到達するまでに、前記変換テーブルバッファにアドレス変換に必要な情報が準備されることを保証できる時点でアクセス発行タイミングを前記アクセス発行制御部に通知する先行発行タイミング生成部を更に有し、
    前記アクセス発行制御部は、前記先行発行タイミング生成部からの前記アクセス発行タイミングをもとに前記調停部へアクセスを発行するデータ処理システム。
  5. 請求項4記載のデータ処理システムにおいて、
    前記先行発行タイミング生成部は、前記バッファ更新制御部から前記変換テーブルバッファの更新指示が発生した時点から一定時間後に前記アクセス発行タイミングを発生するデータ処理システム。
  6. 請求項4記載のデータ処理システムにおいて、
    前記先行発行タイミング生成部は、前記バッファ更新制御部から前記変換テーブルバッファ更新指示が発生した後、前記調停部で一定個数のコマンドを調停した時点で前記アクセス発行タイミングを発生するデータ処理システム。
  7. 請求項4記載のデータ処理システムにおいて、
    前記先行発行タイミング生成部は、前記バッファ更新制御部から前記アドレス変換テーブルへのアクセスの途中でバッファ更新アクセスを観測し、前記バッファ更新アクセスを観測した時点で前記アクセス発行タイミングを発生するデータ処理システム。
  8. 請求項3記載のデータ処理システムにおいて、
    前記マスタからのアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに準備されるのを待たずに前記調停部へ発行したアクセスが示すアドレスを記憶する先行発行アドレス記憶部と、
    前記マスタからのアクセスが示すアドレスが前記変換テーブルバッファ又は前記先行発行アドレス記憶部に保持されているかを判定し、保持されていない場合のみ前記変換テーブルバッファの更新を指示するアドレス比較部とを更に有するデータ処理システム。
  9. 請求項8記載のデータ処理システムにおいて、
    前記先行発行アドレス記憶部は、記憶したアドレスが前記変換テーブルバッファに格納されている場合に前記先行発行アドレス記憶部内の当該アドレスの記憶を解除するデータ処理システム。
  10. 請求項2記載のデータ処理システムにおいて、
    前記マスタからのアクセスを1つ以上保持するアクセスキューを更に有し、
    前記アドレス比較部は、前記アクセスキュー内の1つ以上のアクセスのアドレス変換に必要な情報が前記変換テーブルバッファに保持されているかを判定し、保持されていない情報の更新をまとめて前記バッファ更新制御部に指示するデータ処理システム。
  11. 請求項1記載のデータ処理システムにおいて、
    前記アクセス発行制御部からのアクセス発行前に、アドレス変換に必要な前記変換テーブルバッファ内の情報を予約し、前記アドレス変換部でアドレス変換が完了するまで前記アドレス変換テーブル内の他の情報により更新されることを抑止するバッファ予約管理部を更に有するデータ処理システム。
  12. 請求項11記載のデータ処理システムにおいて、
    前記バッファ予約管理部は、前記変換テーブルバッファ内の情報それぞれについて、カウンタによって予約を管理するデータ処理システム。
  13. 請求項11記載のデータ処理システムにおいて、
    前記バッファ予約管理部は、前記変換テーブル内の情報の予約をキューによって管理するデータ処理システム。
  14. 請求項1記載のデータ処理システムにおいて、
    前記調停部による調停後、前記アドレス変換前にアクセスをアドレス変換単位以下に分割するコマンド分割部と、
    前記マスタからのアクセスが跨ぐ全アドレス変換単位の先頭アドレスを前記バッファ更新制御部に通知するページ跨ぎ判定部とを更に有するデータ処理システム。
  15. 請求項14記載のデータ処理システムにおいて、
    前記バッファ更新制御部は、前記変換テーブルバッファ内の情報を更新するために発行する複数のアクセスを1つにまとめる機能を有するデータ処理システム。
  16. 請求項14記載のデータ処理システムにおいて、
    前記共有リソースはDRAMであり、DRAMアクセスコマンドへの分割機構を前記コマンド分割部として流用するデータ処理システム。
  17. 請求項2記載のデータ処理システムにおいて、
    前記マスタからのアクセスに対して前記変換テーブルバッファの更新が不要な場合は前記調停部での調停を受ける前に前記変換テーブルバッファの情報をもとにアドレス変換を行う調停前アドレス変換部と、
    前記アドレス変換テーブルの情報の一部を保持する変換テーブルサブバッファとを更に有し、
    前記アドレス変換部は、前記変換テーブルサブバッファを参照してアドレス変換を行うデータ処理システム。
  18. 請求項1記載のデータ処理システムにおいて、
    前記共有リソースは記憶装置であり、当該記憶装置上に前記アドレス変換テーブルを保持し、
    前記記憶装置からの出力データから前記変換テーブルバッファ用のデータを分離するデータ分離部と、
    前記マスタからのアクセスと前記アドレス変換テーブルの更新のためのアクセスとを分離するコマンド分離部とを更に有するデータ処理システム。
  19. 請求項1記載のデータ処理システムにおいて、
    前記マスタからのアクセスのうちアドレス変換の必要なアクセスと不要なアクセスとを分離するアクセス分離部を更に有するデータ処理システム。
  20. 請求項19記載のデータ処理システムにおいて、
    前記アクセス分離部は、前記マスタがアドレス変換が必要かをアクセスと同時に伝える識別番号によりアクセスを分離するデータ処理システム。
  21. 請求項19記載のデータ処理システムにおいて、
    前記アクセス分離部は、前記マスタが予め定められたアドレス領域へアクセスしたことをもとにアクセスを分離するデータ処理システム。
  22. 記憶装置及び半導体集積回路を有する電子装置であって、
    前記半導体集積回路は、前記記憶装置を共有リソースとする請求項1記載のデータ処理システムを有することを特徴とする電子装置。
  23. ネットワーク上の記憶装置へのアクセス機能及び半導体集積回路を有する電子装置であって、
    前記半導体集積回路は、前記ネットワーク上の記憶装置を共有リソースとする請求項1記載のデータ処理システムを有することを特徴とする電子装置。
JP2007196211A 2007-07-27 2007-07-27 データ処理システム Expired - Fee Related JP4924970B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007196211A JP4924970B2 (ja) 2007-07-27 2007-07-27 データ処理システム
US12/109,894 US8239652B2 (en) 2007-07-27 2008-04-25 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007196211A JP4924970B2 (ja) 2007-07-27 2007-07-27 データ処理システム

Publications (2)

Publication Number Publication Date
JP2009032085A JP2009032085A (ja) 2009-02-12
JP4924970B2 true JP4924970B2 (ja) 2012-04-25

Family

ID=40296388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007196211A Expired - Fee Related JP4924970B2 (ja) 2007-07-27 2007-07-27 データ処理システム

Country Status (2)

Country Link
US (1) US8239652B2 (ja)
JP (1) JP4924970B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101490468B1 (ko) * 2010-02-04 2015-02-06 삼성전자 주식회사 데이터 처리 장치 및 방법
US9014003B2 (en) * 2011-11-08 2015-04-21 Futurewei Technologies, Inc. Decoupled and concurrent packet processing and packet buffering for load-balancing router architecture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126167A (ja) 1984-07-17 1986-02-05 Hitachi Ltd メモリ共用方式
JPH02101552A (ja) * 1988-10-11 1990-04-13 Fujitsu Ltd アドレス変換バッファ処理方式
JPH05173930A (ja) * 1991-12-19 1993-07-13 Yokogawa Electric Corp Dma制御回路
JP3296240B2 (ja) * 1997-03-28 2002-06-24 日本電気株式会社 バス接続装置
JPH11184798A (ja) * 1997-12-18 1999-07-09 Hitachi Ltd データ通信装置
EP1067461B1 (en) * 1999-07-08 2013-04-24 Texas Instruments France Unified memory management system for multi process heterogeneous architecture
EP1348163A1 (en) * 2000-12-28 2003-10-01 Koninklijke Philips Electronics N.V. System integrating agents having different resource-accessing schemes
US20020161983A1 (en) * 2001-02-21 2002-10-31 Storageapps Inc. System, method, and computer program product for shared device of storage compacting

Also Published As

Publication number Publication date
JP2009032085A (ja) 2009-02-12
US20090031101A1 (en) 2009-01-29
US8239652B2 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
KR100496116B1 (ko) 멀티프로세서 장치
JP2007241612A (ja) マルチマスタシステム
US9043806B2 (en) Information processing device and task switching method
JP2001117859A (ja) バス制御装置
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
CN110059035B (zh) 半导体装置和总线发生器
JP2010244580A (ja) 外部デバイスアクセス装置
JP5040121B2 (ja) 情報処理装置、キャッシュ制御方法及びプログラム
JP2012043031A (ja) 共有キャッシュメモリ装置
US20120185672A1 (en) Local-only synchronizing operations
JP4924970B2 (ja) データ処理システム
JP7493311B2 (ja) バスシステムおよびその制御方法
JP2007172112A (ja) メモリコントローラ
JP6161396B2 (ja) 演算装置
JP2006268753A (ja) Dma回路及びコンピュータシステム
JPH08161254A (ja) 情報処理システムおよびそのバス調停方式
JP6319473B1 (ja) 情報処理装置
US7552252B2 (en) Memory interface circuit and method
US20050135402A1 (en) Data transfer apparatus
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP2007241601A (ja) マルチプロセッサシステム
JP2002024007A (ja) プロセッサシステム
JP2007241922A (ja) 共有資源利用のための調停方法及びその調停装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120127

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees