JP5127927B2 - バスコントローラ及びバス通信システム及びバス制御方法 - Google Patents

バスコントローラ及びバス通信システム及びバス制御方法 Download PDF

Info

Publication number
JP5127927B2
JP5127927B2 JP2010525539A JP2010525539A JP5127927B2 JP 5127927 B2 JP5127927 B2 JP 5127927B2 JP 2010525539 A JP2010525539 A JP 2010525539A JP 2010525539 A JP2010525539 A JP 2010525539A JP 5127927 B2 JP5127927 B2 JP 5127927B2
Authority
JP
Japan
Prior art keywords
mask
initiator
bus
cycle
request signal
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
JP2010525539A
Other languages
English (en)
Other versions
JPWO2010021054A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2010021054A1 publication Critical patent/JPWO2010021054A1/ja
Application granted granted Critical
Publication of JP5127927B2 publication Critical patent/JP5127927B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、バスコントローラ及びバス通信システム及びバス制御方法に関するものである。本発明は、特に、データバス通信方式に関するものである。
近年、バス通信システムの高機能化、及び、バス通信システムに接続されるデバイスの数の増加や高性能化によって、システムバスへの負荷が増えつつあり、このような状況においてシステムバスやメモリバスの性能を超えたリクエストが発行されると、優先度の高いイニシエータしかサービスを受けられず、優先度の低いイニシエータがハングするというケースが発生していた。そのため、低い優先度のイニシエータでもサービスが受けられるように、各イニシエータにサービスを均等に提供するための、ラウンドロビンやLRU(Least・Recently・Used)などの方式が採用されている。しかし、ラウンドロビンやLRUを採用したシステムにおいても、各イニシエータが同時あるいは交互に複数のリクエストを発行し、各イニシエータがバス権を交互に与えられ、均一にコマンドを発行するようなケースが発生すると、イニシエータによっては、アクセスしたいターゲットが、いつも別のイニシエータからのコマンドの処理中で毎回アクセスが拒否され、リトライすることになり、いつまでもコマンドが受け付けられないという状態が続いてハングするという課題がある。
特許文献1では、アクセス周期が決まっている高優先のイニシエータとアクセス周期の規定がない低優先のイニシエータが同一ターゲットにアクセスするシステムにおいて、低優先のイニシエータのバス解放期間に閾値を設けることで、使用中のバスの解放が中断され、バス権が高優先のイニシエータに割り当てられるので、高優先のアクセスが保証されることが開示されている。
特開2003−281083号公報
特許文献1では、各イニシエータが同時あるいは交互に複数のリクエストを発行し、各イニシエータがバス権を交互に与えられ、均一にコマンドを発行するようなケースが発生した場合に、イニシエータによっては、アクセスしたいターゲットが、いつも別のイニシエータからのコマンドの処理中で毎回リトライすることになり、コマンドが受け付けられない状態を回避する方式については開示されていない。
一般的なデータバスシステムを図11に示す。図11に示したシステムは、複数のイニシエータとイニシエータからのコマンドを処理する1つ以上のターゲットと複数のイニシエータからのリクエストに対して、ラウンドロビンやLRUなどの優先順位制御方式により均等又は固定優先順位にサービス提供を行うバスコントローラと、コマンドを1つ選んで駆動するバスからなる。優先順位制御を行うバスコントローラは、イニシエータがバスにアドレスとコマンドをのせる前にコマンド発行要求(即ち、要求信号(request))を受けて、許可する場合はイニシエータに対して許可(即ち、許可信号(grant))を返す。許可を受けたイニシエータは、ターゲットに対してアドレスとコマンド(cmd)を発行する。イニシエータからのコマンドを処理するターゲットは、アドレスとコマンドを見て、アクセプト(accept)かリトライ(retry)をイニシエータに返すようになっている。しかし、このような構成のシステムでは、複数のイニシエータからのコマンド発行に対してターゲットのサービス能力が十分でないときに、イニシエータによってはコマンド発行の度にリトライ応答しか行われないことがあり、そのイニシエータがアクセプトされるまで他のイニシエータの動作が変わらない場合にはバス全体でハングアップするという課題がある。
特許文献1で開示されている方式では、バス権を高優先のイニシエータに確実に割り当てることはできても、バス権が割り当てられた後にイニシエータが発行したコマンドに対し、ターゲットから毎回リトライの応答がなされるケースを回避できない。複数のイニシエータから同時あるいは交互に複数のコマンド発行が要求されている状況で、毎回同じイニシエータから発行されたコマンドに対し、ターゲットからリトライの応答がなされ、そのイニシエータがハングするケースは、発生頻度が低くても、必ず回避しなければならないものである。
本発明は、例えば、複数のイニシエータから同時あるいは交互に複数のコマンド発行要求(即ち、要求信号の送信)がなされても、各イニシエータからのコマンド発行要求(即ち、要求信号)のタイミングを乱すことで、コマンドの発行周期が一定になることを防ぎ、ターゲットからいつもリトライの応答がなされるという状況を回避することを目的とする。
本発明の一の態様に係るバスコントローラは、
バスに接続された複数のイニシエータの各々が、バスの使用を許可されたときにバスに接続されたターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信するバス通信システムを制御するバスコントローラであって、
所定の優先順位に従い、各イニシエータに対してバスの使用を許可するバス制御部と、
前記バス制御部が少なくとも1つのイニシエータに対してバスの使用を許可するタイミングを非周期となるように制御するマスク生成部とを備えることを特徴とする。
各イニシエータは、前記バス制御部に対してバスの使用を要求する要求信号を所定の周期で生成して送信し、
前記マスク生成部は、各イニシエータから要求信号が送信されるタイミングが非周期となるように各イニシエータで生成される要求信号をマスク制御することを特徴とする。
前記マスク生成部は、
各イニシエータで生成される要求信号をマスク制御する周期をマスク周期として設定するマスク周期設定部を備えることを特徴とする。
前記マスク生成部は、さらに、
前記マスク周期設定部が設定したマスク周期ごとにマスク制御の対象とするイニシエータをマスク条件として設定するマスク条件設定部を備えることを特徴とする。
前記マスク生成部は、さらに、
前記マスク周期設定部が設定したマスク周期ごとに前記マスク条件設定部が設定したマスク条件を変更するイニシエータマスクID(識別子)カウンタを備えることを特徴とする。
前記マスク条件設定部は、コマンド信号の種別ごとにマスク制御の対象とするイニシエータをマスク条件として設定することを特徴とする。
前記マスク生成部は、さらに、
前記マスク周期設定部が設定したマスク周期ごとにマスク制御する時間をマスク期間として設定するマスク期間設定部を備えることを特徴とする。
前記マスク生成部は、さらに、
イニシエータごとにマスク制御の対象とするか否かを設定するマスク対象指定フラグ設定部を備えることを特徴とする。
本発明の一の態様に係るバス通信システムは、
複数のイニシエータと少なくとも1つのターゲットとをバスに接続しているバス通信システムであって、
各イニシエータは、バスの使用を許可されたときにターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信し、
前記バス通信システムは、さらに、
所定の優先順位に従い、各イニシエータに対してバスの使用を許可するバス制御部と、前記バス制御部が少なくとも1つのイニシエータに対してバスの使用を許可するタイミングを非周期となるように制御するマスク生成部とを備えるバスコントローラをバスに接続していることを特徴とする。
本発明の一の態様に係るバス制御方法は、
バスに接続された複数のイニシエータの各々が、バスの使用を許可されたときにバスに接続されたターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信するバス通信システムを制御するバス制御方法であって、
所定の優先順位に従い、各イニシエータに対してバスの使用を許可し、
前記許可で少なくとも1つのイニシエータに対してバスの使用を許可するタイミングを非周期となるように制御することを特徴とする。
本発明の一の態様によれば、バスコントローラにおいて、マスク生成部が、バス制御部が少なくとも1つのイニシエータに対してバスの使用を許可するタイミングを非周期となるように制御することにより、コマンドの発行周期が一定になることを防ぎ、ターゲットからいつもリトライの応答がなされるという状況を回避することが可能となる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
本実施の形態では、コマンド発行の許可をするタイミングや間隔の乱れを作るために(バスに対するアクセス周期を乱すために)、リクエストを受け付けさせたいイニシエータ以外を、ある期間マスクすることによって不規則性を与えるデータバス通信システムについて、図面を参照して説明する。
図1は、リクエストを受け付けさせたいイニシエータ102以外をある期間マスクすることを可能とするバス通信システム100の構成を示すブロック図である。
図1において、バス通信システム100は、バスコントローラ101、複数のイニシエータ102、少なくとも1つのターゲット103を備える。バスコントローラ101、イニシエータ102、ターゲット103は、バス104に接続されている。
バスコントローラ101は、図11に示したバスコントローラにマスク信号を生成するマスク生成部110を付加したものであり、バス通信システム100を制御する。各イニシエータ102は、バスコントローラ101にコマンド発行要求(即ち、要求信号の送信)を行い、ターゲット103に対してコマンドを発行する。ターゲット103は、イニシエータ102からのコマンドを処理する。バス104は、イニシエータ102からのコマンドを1つ選んで駆動する。
具体的には、イニシエータ102は、コマンドを発行するためにバス104の使用を要求する要求信号(request)を所定の周期で生成してバスコントローラ101へ送信する。バスコントローラ101は、イニシエータ102から要求信号(request)を受信すると、当該イニシエータ102に対してコマンドの発行を許可するか否か、即ち、バス104の使用を許可するか否かを判断する。バスコントローラ101は、当該イニシエータ102に対してバス104の使用を許可すると判断した場合、当該イニシエータ102へ許可信号(grant)を送信する。イニシエータ102は、ある周期でバスコントローラ101から許可信号(grant)を受信したとき、即ち、バス104の使用を許可されたときに、ターゲット103へ所定の処理の実行を指令するコマンド信号(cmd)を送信する。ターゲット103は、イニシエータ102からコマンド信号(cmd)を受信すると、当該イニシエータ102からのコマンドを処理するか否か、即ち、指令された処理を実行できるか否かを判断する。ターゲット103は、当該イニシエータ102から指令された処理を実行できると判断した場合、当該イニシエータ102へアクセプト信号(accept)を送信する。一方、ターゲット103は、当該イニシエータ102から指令された処理を実行できないと判断した場合、当該イニシエータ102へリトライ信号(retry)を送信する。なお、バスコントローラ101が、イニシエータ102から指令された処理をターゲット103に実行させるか否かを判断し、当該処理を実行させないと判断した場合、当該イニシエータ102へリトライ信号(retry)を送信してもよい。イニシエータ102は、リトライ信号(retry)を受信した場合、即ち、当該ターゲット103で当該処理が実行されないと判断した(認識した)場合、次以降の周期でバスコントローラ101から許可信号(grant)を受信したとき、即ち、再度バス104の使用を許可されたときに、当該ターゲット103へコマンド信号(cmd)を送信する。以降、同様の通信が繰り返される。
バスコントローラ101は、マスク生成部110、バス制御部120を備える。
マスク生成部110は、アクセス周期の間隔や、アクセス周期を乱すために、あるアクセス周期で、リクエストを受け付けさせたいイニシエータ102以外を、ある期間マスクする信号(マスク信号)を生成する。バス制御部120は、各イニシエータ102からのリクエストの優先順位制御を行う。つまり、バス制御部120は、所定の優先順位に従い、要求信号(request)を送信したイニシエータ102に対して許可信号(grant)を送信することで、当該イニシエータ102に対してバス104の使用を許可する。マスク生成部110は、少なくとも1つのイニシエータ102へマスク信号を送信して当該イニシエータ102に要求信号(request)をマスクさせる(例えば、要求信号を送信させないようにしたり、要求信号として意味のない信号を送信させたりする)ことで、バス制御部120が当該イニシエータ102に対してバス104の使用を許可するタイミングを非周期となるように制御する。即ち、マスク生成部110は、各イニシエータ102から要求信号(request)が送信されるタイミングが非周期となるように各イニシエータ102で生成される要求信号(request)をマスク制御する。なお、マスク生成部110は、バス制御部120へマスク信号を送信してバス制御部120に少なくとも1つのイニシエータ102からの要求信号(request)をマスクさせる(例えば、受信した要求信号を無視させたり、受信した要求信号を意味のない信号に変換させたりする)ことで、バス制御部120が当該イニシエータ102に対してバス104の使用を許可するタイミングを非周期となるように制御してもよい。即ち、マスク生成部110は、バス制御部120の内部で要求信号(request)が処理(又は検出)されるタイミングが非周期となるようにバス制御部120で各イニシエータ102から受信される要求信号(request)をマスク制御してもよい。あるいは、マスク生成部110は、バス制御部120へマスク信号を送信してバス制御部120に少なくとも1つのイニシエータ102への許可信号(grant)をマスクさせる(例えば、許可信号を送信させないようにしたり、許可信号として意味のない信号を送信させたりする)ことで、バス制御部120が当該イニシエータ102に対してバス104の使用を許可するタイミングを非周期となるように制御してもよい。即ち、マスク生成部110は、バス制御部120から許可信号(grant)が送信されるタイミングが非周期となるようにバス制御部120で生成される許可信号(grant)をマスク制御してもよい。
マスク生成部110は、マスク周期設定部111、イニシエータマスクID(識別子)カウンタ112、マスク期間設定部113、マスク条件設定部114、マスク対象指定フラグ設定部115を備える。
マスク周期設定部111は、マスクを行うタイミング(周期)を任意に設定する。具体的には、マスク周期設定部111は、各イニシエータ102で生成される要求信号(request)をマスク制御する周期をマスク周期として設定する。イニシエータマスクIDカウンタ112は、マスク周期ごとに変更するマスク対象となるイニシエータ102を任意に設定する。具体的には、イニシエータマスクIDカウンタ112は、マスク周期設定部111が設定したマスク周期ごとに、後述するマスク条件設定部114が設定したマスク条件を変更する。マスク期間設定部113は、マスク対象となったイニシエータ102のマスク期間を任意に設定する。つまり、マスク期間設定部113は、マスク周期設定部111が設定したマスク周期ごとにマスク制御する時間をマスク期間として設定する。マスク条件設定部114は、マスク周期設定部111が設定したマスク周期ごとにマスク制御の対象とするイニシエータ102をマスク条件として設定する。そして、マスク条件設定部114は、イニシエータマスクIDカウンタ112に対応したイニシエータ102に対して、マスク期間設定部113で設定された期間マスク信号の出力を行う。マスク対象指定フラグ設定部115は、各イニシエータ102のマスクを有効にするか無効にするかを任意に設定する。つまり、マスク対象指定フラグ設定部115は、イニシエータ102ごとにマスク制御の対象とするか否かを設定する。
ここで、マスク条件の設定例を図2に示す。図2は、イニシエータ102が5つで、マスク条件として、各イニシエータ102が必ず1度は許可されるケース、全てが許可されないケース、イニシエータ102が3つずつ許可されるケースを作るためにイニシエータマスクIDを0から9まで用意した例であり、イニシエータマスクIDとマスクを行うイニシエータ102の対応を表わしている。マスク条件は任意に設定可能なものであり、バス通信システム100の構成に合わせて適宜設定することが望ましいが、本例においてイニシエータマスクID=0〜5に該当するものを設定しておけば様々な構成に対応できると考えられる。特に、イニシエータマスクID=0〜4に該当するものを設定しておけば汎用性が高いバス通信システム100を提供できると考えられる。
バス通信システム100は、例えばコンピュータに搭載されるものであり、バス通信システム100のバスコントローラ101は、コンピュータが備えるCPU201(Central・Processing・Unit)により制御される。CPU201は、コンピュータが備えるROM(Read・Only・Memory)、RAM(Random・Access・Memory)などのメモリ202を用いてプログラムを実行し、例えばマスク生成部110のマスク周期設定部111、マスク期間設定部113、マスク対象指定フラグ設定部115の設定を行う。後述するようにマスク条件設定部114を回路として実装した場合、マスク周期設定部111、マスク期間設定部113、マスク対象指定フラグ設定部115の設定をプログラムにより任意に行うことができるようにすることで、バス通信システム100の構成に適したマスク制御を行うことが容易となる。
なお、本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。「〜部」として説明するものは、メモリ202に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、メモリ202に記憶される。このプログラムはCPU201により読み出され、CPU201により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
次に、図2に例示したマスク条件の設定の下で、マスク周期がTa、イニシエータマスクIDが2、マスク期間がTm、マスク対象指定フラグがイニシエータAとイニシエータCを有効にしているときの動作について、図3、図4、図5を用いて説明する。
図3は、マスク生成部110の動作原理図である。図3において、イニシエータマスクIDは2で、マスク対象指定フラグがイニシエータAとイニシエータCを有効にしているから、マスク生成部110は、イニシエータAに対してのみマスク信号を出力している。
図4は、マスク周期とマスク期間とイニシエータマスクIDカウンタ112の関係を表した図である。図4において、イニシエータマスクIDは2であるから、これに対応したイニシエータ102は、図2のマスク条件よりイニシエータC以外の全てのイニシエータ102である。一方、マスク対象指定フラグが、イニシエータAとイニシエータCのみを有効としているため、イニシエータマスクIDが2のとき、イニシエータAのみがマスク対象になる。
図5は、マスク対象指定フラグで指定されたイニシエータAとイニシエータCについてのタイミングチャートである。図5において、(1)マスク前(マスクを行わなかった場合)では、イニシエータCがターゲットからリトライ応答を受け続けている。(2)マスク後(マスクを行った場合)で、マスク期間TmがイニシエータAのリクエスト周期TreqAより長い場合は、イニシエータAがマスク期間Tmマスクされることにより、リトライ応答を受け続けてきたイニシエータCがアクセプトされている。(3)マスク後(マスクを行った場合)で、マスク期間TmがイニシエータAのリクエスト周期TreqAより短い場合も、イニシエータAのリクエスト周期TreqAの開始時点にマスク期間Tmが重なったとき、イニシエータAがマスク期間Tmマスクされることにより、リトライ応答を受け続けてきたイニシエータCがアクセプトされている。なお、(2)や(3)のタイミングチャートは、バス104上で計測される信号値を示したものであってもよいし、バスコントローラ101内部で計測される信号値を示したものであってもよい。マスク生成部110が、各イニシエータ102から要求信号(request)が送信されるタイミングが非周期となるように各イニシエータ102で生成される要求信号(request)をマスク制御する場合、バス104上で計測される信号値もバスコントローラ101内部で計測される信号値も(2)や(3)に示したもののようになる。一方、マスク生成部110が、バス制御部120の内部で要求信号(request)が処理(又は検出)されるタイミングが非周期となるようにバス制御部120で各イニシエータ102から受信される要求信号(request)をマスク制御する場合、バス104上で計測される信号値は(1)に示したもののようになってもバスコントローラ101内部で計測される信号値は(2)や(3)に示したもののようになる。
以下、バスコントローラ101に付加したマスク生成部110が、各イニシエータ102からのリクエストの発行タイミングを乱すためのマスク信号を生成し、出力する動作について説明する。
図6は、バスコントローラ101のマスク生成部110がマスク信号を出力する一連の動作を表すフローチャートである。
ステップS101では、マスク生成部110は、マスク周期を検出するためのマスク周期カウンタと、マスクを行うイニシエータ102をマスク周期ごとに変更するイニシエータマスクIDカウンタ112をリセットし、ステップS102に進む。ステップS102では、マスク生成部110は、マスク周期カウンタのカウントを開始しステップS103に進む。ステップS103では、マスク生成部110は、マスク周期カウンタがマスク周期と一致した場合は、ステップS104に進む。マスク生成部110は、マスク周期カウンタがマスク周期と一致しない場合は、マスク周期カウンタをカウントアップする。ステップS104では、マスク生成部110は、イニシエータマスクIDカウンタ112を1カウントアップし、イニシエータマスクIDに対応したイニシエータ102の選択信号を出力し、マスク周期カウンタをクリアして再カウントを開始し、ステップS105に進む。ステップS105では、マスク生成部110は、マスク対象指定フラグが有効でなおかつ、イニシエータマスクIDに対応したマスク対象として選択されたイニシエータ102のマスクを開始し、マスク期間カウンタによるカウント開始し、ステップS106に進む。ステップS106では、マスク生成部110は、マスク期間カウンタがマスク期間までカウントしたらマスクを解除し、マスク期間までカウントされていなければマスク期間カウンタを1カウントアップしステップS107に進む。ステップS107では、マスク生成部110は、マスクを解除し、再びステップS103に進む。
以上のように、本実施の形態によれば、バスコントローラ101にマスク生成部110を付加し、マスク生成部110が、ある周期ごとにマスク対象となるイニシエータ102をある期間マスクすることで、複数のイニシエータ102から同時あるいは交互に複数のコマンド発行要求(即ち、要求信号(request)の送信)がなされても、各イニシエータ102からのコマンド発行要求(即ち、要求信号(request))のタイミングが乱れて、コマンド(cmd)の発行周期が一定になることを防ぎ、ターゲット103からいつもリトライ応答(retry)がなされるという状況を回避することが可能となる。
以上説明したように、本実施の形態では、複数のイニシエータ102とイニシエータ102からのコマンドを処理する1つ以上のターゲット103と複数のイニシエータ102からのリクエストの優先順位制御を行うバスコントローラ101を備えるバス通信システム100において、バスコントローラ101が、各イニシエータ102からのリクエストの発行タイミングを乱すマスク生成部110を有することを特徴とする。マスク生成部110が、イニシエータ102からのコマンド発行要求(即ち、要求信号(request))をマスクすることによって、イニシエータ102からのコマンド発行要求(即ち、要求信号(request))のタイミングが乱れて、ターゲットからのリトライ(retry)に起因するデッドロックなどを回避することができる。
バスコントローラ101は、マスク生成部110において、マスクを行うタイミングを任意に設定できるマスク周期設定部111を有することを特徴とする。これにより、システムに応じたマスク周期を任意に設定できる。
バスコントローラ101は、マスク生成部110において、マスク周期ごとにマスクを行うイニシエータ102を決定するマスク条件設定部114を有することを特徴とする。これにより、システムに応じてアクセス周期ごとにマスク対象のイニシエータ102を任意に設定できる。
バスコントローラ101は、マスク生成部110において、マスク周期ごとにマスク期間を任意に決定するマスク期間設定部113を有することを特徴とする。これにより、システムに応じてマスク対象となったイニシエータ102のマスク期間を任意に設定できる。
バスコントローラ101は、マスク生成部110において、マスク制御を有効にするか無効にするかを決定するマスク対象指定フラグ設定部115を有することを特徴とする。これにより、システムに応じて各イニシエータ102のマスクを有効にするか無効にするかを任意に設定できる。
バスコントローラ101は、マスク生成部110において、マスク条件設定部114におけるマスク条件をマスク周期ごとに変更するイニシエータマスクIDカウンタ112を有することを特徴とする。これにより、マスク周期ごとに変更するマスク対象となるイニシエータ102を任意に設定できる。
このように、本実施の形態によれば、各イニシエータ102が同時あるいは交互に複数のリクエストを発行し、各イニシエータ102がバス権を交互に与えられ、均一にコマンドを発行するようなケースが発生した場合に、イニシエータ102によっては、アクセスしたいターゲットが、いつも別のイニシエータ102からのコマンドの処理中で毎回リトライすることになり、コマンドが受け付けられない状態でも、リクエストの発行タイミングを乱すことによって、コマンド要求が受け付けられるようになる。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
実施の形態1では、マスク条件設定部114は、単にマスク制御の対象とするイニシエータ102の組み合わせをマスク条件として設定していたが、本実施の形態では、マスク条件設定部114は、コマンド信号(cmd)の種別ごとにマスク制御の対象とするイニシエータ102をマスク条件として設定する。具体的には、マスク条件設定部114は、コマンド信号(cmd)がデータバスにおけるリード動作を伴う処理の実行を指令するものである場合と、コマンド信号(cmd)がデータバスにおけるライト動作を伴う処理の実行を指令するものである場合とに分けて、マスク制御の対象とするイニシエータ102の組み合わせをマスク条件として設定する。なお、コマンド信号(cmd)の種別としては、リード/ライト以外の分け方を用いてもよい。例えば、マスク条件設定部114は、コマンド信号(cmd)がデータバスにおけるシングル転送動作を伴う処理の実行を指令するものである場合と、コマンド信号(cmd)がデータバスにおけるバースト転送動作を伴う処理の実行を指令するものである場合とに分けて、マスク制御の対象とするイニシエータ102の組み合わせをマスク条件として設定してもよい。
ここで、マスク条件の設定例を図7に示す。図7は、リード系とライト系のコマンド発行要求(即ち、要求信号(request))を個別にマスクするためのマスク条件設定を表している。イニシエータマスクIDの0から9までがリード系、イニシエータマスクIDの10から19までがライト系のコマンド発行要求(即ち、要求信号(request))をマスクするマスク条件である。
本実施の形態において、マスク生成部110の構成や動作については、実施の形態1と同様であるため、説明を省略する。
以上のように、本実施の形態によれば、マスク条件によってマスク対象をイニシエータ102のリード及びライトのいずれか一方に限定することで(さらに、リード及びライトの両方を対象とするマスク条件を加えてもよい)、マスク制御が細かく行えるようになり、無駄なマスクを減らしながら各イニシエータ102からのコマンド発行要求(即ち、要求信号(request))のタイミングを乱して、コマンド(cmd)の発行周期が一定になることを防ぎ、ターゲット103からいつもリトライ応答(retry)がなされるという状況を回避することが可能となる。
以上説明したように、本実施の形態では、マスク条件設定部114において、マスク条件をリード又はライト(又はリードとライト両方)について指定したものを別々に用意し、それらのマスク条件を順番に切り替えて使用することを特徴とする。これにより、マスク対象を細かく変化させることができるため、必要以上にマスクを行ってしまうという事態を避けることができる。
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
実施の形態1では、マスク期間設定部113で設定するマスク期間はマスク条件によらず共通であったが、本実施の形態では、イニシエータマスクIDごとにマスク期間を設定する。
図8は、イニシエータマスクIDに対応したマスク期間Tm0からTm9までのいずれかが設定されるマスク生成部110の動作原理図である。図8において、イニシエータマスクIDは2であるから、マスク期間設定部113ではマスク期間Tm2が設定される。
図9は、イニシエータマスクIDごとにマスク期間が設定される場合の、マスク周期とマスク期間とイニシエータマスクIDカウンタ112の関係を表した図である。図9において、イニシエータマスクIDが2のとき、マスク期間はTm2となる。このように、マスク周期ごとに、イニシエータマスクIDによってマスク期間が変化する。
以下、バスコントローラ101に付加したマスク生成部110が、各イニシエータ102からのリクエストの発行タイミングを乱すためのマスク信号を生成し、出力する動作について説明する。
図10は、バスコントローラ101のマスク生成部110がマスク信号を出力する一連の動作を表すフローチャートである。
ステップS201からステップS204までは図6のステップS101からステップS104と同じであるため説明を省略する。ステップS205では、マスク生成部110は、マスク対象指定フラグが有効でなおかつ、イニシエータマスクIDに対応したマスク対象として選択されたイニシエータ102のマスクを開始し、イニシエータマスクIDごとに用意されたマスク期間をマスク期間カウンタに設定してカウント開始し、ステップS206に進む。ステップS206とステップS207は、図6のステップS106とステップS107と同じであるため説明を省略する。
以上のように、本実施の形態によれば、イニシエータマスクIDごとに、マスク期間を設定することで、マスク制御が細かく行えるようになり、無駄なマスクを減らしながら各イニシエータ102からのコマンド発行要求(即ち、要求信号(request))のタイミングを乱して、コマンド(cmd)の発行周期が一定になることを防ぎ、ターゲット103からいつもリトライ応答(retry)がなされるという状況を回避することが可能となる。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
実施の形態1に係るバス通信システムの構成を示すブロック図である。 実施の形態1に係るマスク条件の設定例を示す表である。 実施の形態1に係るマスク生成部の動作原理図である。 実施の形態1に係るマスク周期とマスク期間とイニシエータマスクIDカウンタの関係を表した図である。 実施の形態1に係るマスク対象指定フラグで指定されたイニシエータについてのタイミングチャートである。 実施の形態1に係るマスク生成部の動作を示すフローチャートである。 実施の形態2に係るマスク条件の設定例を示す表である。 実施の形態3に係るマスク生成部の動作原理図である。 実施の形態3に係るマスク周期とマスク期間とイニシエータマスクIDカウンタの関係を表した図である。 実施の形態3に係るマスク生成部の動作を示すフローチャートである。 一般的なデータバスシステムの構成を示すブロック図である。
符号の説明
100 バス通信システム、101 バスコントローラ、102 イニシエータ、103 ターゲット、104 バス、110 マスク生成部、111 マスク周期設定部、112 イニシエータマスクIDカウンタ、113 マスク期間設定部、114 マスク条件設定部、115 マスク対象指定フラグ設定部、120 バス制御部、201 CPU、202 メモリ。

Claims (9)

  1. バスに接続された複数のイニシエータの各々が、バスの使用を要求する要求信号を所定の周期で生成して送信し、要求信号に応じてバスの使用を許可されたときにバスに接続されたターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信するバス通信システムを制御するバスコントローラであって、
    各イニシエータから要求信号を受信すると、所定の優先順位に従い、各イニシエータに対してバスの使用を許可するバス制御部と、
    イニシエータから要求信号が送信されるタイミング非周期となるように各イニシエータで生成される要求信号をマスク制御するマスク生成部とを備え
    前記マスク生成部は、
    各イニシエータで生成される要求信号をマスク制御する周期をマスク周期として設定するマスク周期設定部と、
    マスク制御の対象とするイニシエータの複数の組み合わせを複数のマスク条件として設定するマスク条件設定部であって、前記複数のイニシエータの1つずつに対応し、対応するイニシエータのみをマスク制御の対象から除外する、前記複数のイニシエータと同数のマスク条件を、前記複数の条件に含めるマスク条件設定部と、
    前記マスク条件設定部が設定した複数のマスク条件の1つずつに対応するイニシエータマスクID(識別子)のカウンタとを備え、
    前記マスク生成部は、前記マスク周期設定部が設定したマスク周期ごとに、前記カウンタをカウントアップし、前記カウンタが示すイニシエータマスクIDに対応するマスク条件によりマスク制御の対象とされるイニシエータを選択し、選択したイニシエータで生成される要求信号をマスク制御することを特徴とするバスコントローラ。
  2. 前記マスク周期設定部は、前記マスク周期として、各イニシエータが要求信号を生成して送信する周期と異なる周期を設定することを特徴とする請求項1に記載のバスコントローラ。
  3. 前記マスク生成部は、前記マスク周期設定部が設定したマスク周期ごとに、選択したイニシエータが要求信号を生成して送信する周期よりも長い時間、当該イニシエータで生成される要求信号をマスク制御することを特徴とする請求項2に記載のバスコントローラ。
  4. 前記マスク条件設定部は、さらに、前記複数のイニシエータの全てをマスク制御の対象とする1つのマスク条件を、前記複数の条件に含めることを特徴とする請求項1から3のいずれかに記載のバスコントローラ。
  5. 前記マスク条件設定部は、コマンド信号の種別ごとに、前記複数のマスク条件設定することを特徴とする請求項1からのいずれかに記載のバスコントローラ。
  6. 前記マスク生成部は、さらに、
    前記マスク周期設定部が設定したマスク周期ごとにマスク制御する時間をマスク期間として設定するマスク期間設定部を備えることを特徴とする請求項1から5のいずれかに記載のバスコントローラ。
  7. 前記マスク生成部は、さらに、
    イニシエータごとにマスク制御の対象とするか否かを設定するマスク対象指定フラグ設定部を備えることを特徴とする請求項1から6のいずれかに記載のバスコントローラ。
  8. 複数のイニシエータと少なくとも1つのターゲットとをバスに接続しているバス通信システムであって、
    各イニシエータは、バスの使用を要求する要求信号を所定の周期で生成して送信し、要求信号に応じてバスの使用を許可されたときにターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信し、
    前記バス通信システムは、さらに、
    各イニシエータから要求信号を受信すると、所定の優先順位に従い、各イニシエータに対してバスの使用を許可するバス制御部と、イニシエータから要求信号が送信されるタイミング非周期となるように各イニシエータで生成される要求信号をマスク制御するマスク生成部とを備えるバスコントローラをバスに接続し
    前記マスク生成部は、
    各イニシエータで生成される要求信号をマスク制御する周期をマスク周期として設定するマスク周期設定部と、
    マスク制御の対象とするイニシエータの複数の組み合わせを複数のマスク条件として設定するマスク条件設定部であって、前記複数のイニシエータの1つずつに対応し、対応するイニシエータのみをマスク制御の対象から除外する、前記複数のイニシエータと同数のマスク条件を、前記複数の条件に含めるマスク条件設定部と、
    前記マスク条件設定部が設定した複数のマスク条件の1つずつに対応するイニシエータマスクID(識別子)のカウンタとを備え、
    前記マスク生成部は、前記マスク周期設定部が設定したマスク周期ごとに、前記カウンタをカウントアップし、前記カウンタが示すイニシエータマスクIDに対応するマスク条件によりマスク制御の対象とされるイニシエータを選択し、選択したイニシエータで生成される要求信号をマスク制御することを特徴とするバス通信システム。
  9. バスに接続された複数のイニシエータの各々が、バスの使用を要求する要求信号を所定の周期で生成して送信し、要求信号に応じてバスの使用を許可されたときにバスに接続されたターゲットへ所定の処理の実行を指令するコマンド信号を送信し、当該ターゲットで当該処理が実行されないと判断した場合、再度バスの使用を許可されたときに当該ターゲットへコマンド信号を送信するバス通信システムを制御するバス制御方法であって、
    バス制御部が、各イニシエータから要求信号を受信すると、所定の優先順位に従い、各イニシエータに対してバスの使用を許可し、
    マスク生成部が、各イニシエータから要求信号が送信されるタイミング非周期となるように各イニシエータで生成される要求信号をマスク制御し、
    前記マスク生成部は、
    各イニシエータで生成される要求信号をマスク制御する周期をマスク周期として設定し、
    マスク制御の対象とするイニシエータの複数の組み合わせを複数のマスク条件として設定し、
    前記複数のイニシエータの1つずつに対応し、対応するイニシエータのみをマスク制御の対象から除外する、前記複数のイニシエータと同数のマスク条件を、前記複数の条件に含め、
    前記マスク周期ごとに、前記複数のマスク条件の1つずつに対応するイニシエータマスクID(識別子)のカウンタをカウントアップし、前記カウンタが示すイニシエータマスクIDに対応するマスク条件によりマスク制御の対象とされるイニシエータを選択し、選択したイニシエータで生成される要求信号をマスク制御することを特徴とするバス制御方法。
JP2010525539A 2008-08-22 2008-08-22 バスコントローラ及びバス通信システム及びバス制御方法 Expired - Fee Related JP5127927B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/064982 WO2010021054A1 (ja) 2008-08-22 2008-08-22 バスコントローラ及びバス通信システム及びバス制御方法

Publications (2)

Publication Number Publication Date
JPWO2010021054A1 JPWO2010021054A1 (ja) 2012-01-26
JP5127927B2 true JP5127927B2 (ja) 2013-01-23

Family

ID=41706950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010525539A Expired - Fee Related JP5127927B2 (ja) 2008-08-22 2008-08-22 バスコントローラ及びバス通信システム及びバス制御方法

Country Status (6)

Country Link
US (1) US8527682B2 (ja)
EP (1) EP2320326B1 (ja)
JP (1) JP5127927B2 (ja)
CN (1) CN102124453B (ja)
TW (1) TWI490697B (ja)
WO (1) WO2010021054A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407703B1 (en) 1994-01-27 2013-03-26 International Business Machines Corporation Quiensce termination/suspension in a multithreaded enviroment

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5625766B2 (ja) * 2010-11-08 2014-11-19 ソニー株式会社 アービトレーション回路、および、その制御方法
CN103870415B (zh) * 2012-12-13 2019-02-19 德州仪器公司 用于在总线上执行事务的方法及系统
US9336167B2 (en) 2012-12-13 2016-05-10 Texas Instruments Incorporated I2C controller register, control, command and R/W buffer queue logic
US9183904B2 (en) * 2014-02-07 2015-11-10 Micron Technology, Inc. Apparatuses, memories, and methods for facilitating splitting of internal commands using a shared signal path
JP6187508B2 (ja) * 2015-03-09 2017-08-30 日本電気株式会社 制御装置、バス回路、方法、及び、プログラム
CN106951391B (zh) * 2017-02-15 2020-02-11 合肥芯荣微电子有限公司 一种芯片内点对点互连总线访问屏蔽系统和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553979A (ja) * 1991-08-29 1993-03-05 Nec Eng Ltd 優先順位判定回路
JPH06236329A (ja) * 1991-09-27 1994-08-23 Sun Microsyst Inc デッドロック検出およびマスキング装置
JPH11184805A (ja) * 1997-12-24 1999-07-09 Ricoh Co Ltd バスシステム
JPH11345198A (ja) * 1998-06-03 1999-12-14 Nec Corp バスマスタ機構およびその制御方法
JP2002149480A (ja) * 2000-11-16 2002-05-24 Matsushita Electric Ind Co Ltd 排他制御方法
JP2004220597A (ja) * 2003-01-16 2004-08-05 Internatl Business Mach Corp <Ibm> センダ・レシーバ要求再施行方法および装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06337843A (ja) 1993-05-28 1994-12-06 Fujitsu Ltd データ転送制御方法
EP0665501A1 (en) 1994-01-28 1995-08-02 Compaq Computer Corporation Bus master arbitration circuitry with retry mechanism
EP0676696B1 (en) 1994-04-06 1999-01-20 Advanced Micro Devices, Inc. Parallel port circuits in computer systems
DE69632634T2 (de) 1996-12-13 2005-06-09 Bull S.A. Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
EP1096387B1 (en) 1999-10-26 2012-10-10 Bull S.A.S. An arbitration unit for a bus
JP3832733B2 (ja) * 2002-01-17 2006-10-11 シャープ株式会社 ポーリング装置および通信装置
JP2003281083A (ja) 2002-03-27 2003-10-03 Sanyo Electric Co Ltd バスコントロール回路
TWI258081B (en) 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
US6973520B2 (en) 2002-07-11 2005-12-06 International Business Machines Corporation System and method for providing improved bus utilization via target directed completion
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7380040B2 (en) * 2005-04-14 2008-05-27 Texas Instruments Incorporated Software programmable dynamic arbitration scheme
US7467245B2 (en) * 2005-07-22 2008-12-16 Cisco Technology, Inc. PCI arbiter

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553979A (ja) * 1991-08-29 1993-03-05 Nec Eng Ltd 優先順位判定回路
JPH06236329A (ja) * 1991-09-27 1994-08-23 Sun Microsyst Inc デッドロック検出およびマスキング装置
JPH11184805A (ja) * 1997-12-24 1999-07-09 Ricoh Co Ltd バスシステム
JPH11345198A (ja) * 1998-06-03 1999-12-14 Nec Corp バスマスタ機構およびその制御方法
JP2002149480A (ja) * 2000-11-16 2002-05-24 Matsushita Electric Ind Co Ltd 排他制御方法
JP2004220597A (ja) * 2003-01-16 2004-08-05 Internatl Business Mach Corp <Ibm> センダ・レシーバ要求再施行方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407703B1 (en) 1994-01-27 2013-03-26 International Business Machines Corporation Quiensce termination/suspension in a multithreaded enviroment

Also Published As

Publication number Publication date
JPWO2010021054A1 (ja) 2012-01-26
US8527682B2 (en) 2013-09-03
TW201009593A (en) 2010-03-01
TWI490697B (zh) 2015-07-01
EP2320326B1 (en) 2015-01-14
EP2320326A4 (en) 2013-05-22
CN102124453B (zh) 2014-08-13
WO2010021054A1 (ja) 2010-02-25
CN102124453A (zh) 2011-07-13
EP2320326A1 (en) 2011-05-11
US20110179206A1 (en) 2011-07-21

Similar Documents

Publication Publication Date Title
JP5127927B2 (ja) バスコントローラ及びバス通信システム及びバス制御方法
US5996037A (en) System and method for arbitrating multi-function access to a system bus
JP4715801B2 (ja) メモリアクセス制御装置
JP2017208075A (ja) バスを介して周辺デバイスに安全にアクセスするための装置、システム及び方法
JPH0696015A (ja) コンピュータ・システム及びそのバス制御同期及び調停方法
WO2003001388A1 (en) System and method for controlling bus arbitration during cache memory burst cycles
JP2004521410A (ja) コンピュータシステムにおけるマルチレベル割込み方式を実現するためのシステムおよび方法
CN114490457A (zh) 半导体装置
EP1313019B1 (en) Arbitration apparatus
CN113841131A (zh) 用于在微控制器中提供有限利用运行时间应用控制的系统
US9223731B2 (en) Arbitration circuit and control method thereof
US20070073948A1 (en) Bus control system
JP2007018280A (ja) バスシステムの制御方法及び制御回路
US8683102B2 (en) Bus arbitration apparatus and bus arbitration method
JP2004062910A (ja) マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法
US20160239443A1 (en) Dma controller
US20050172061A1 (en) Device controller
JP2010039632A (ja) バス調停システム
JP6089492B2 (ja) システム制御装置、情報処理システム、システム制御装置の制御方法およびシステム制御装置の制御プログラム
JP2015184935A (ja) I2cバスの調停システムおよび調停方法
JP2005004563A (ja) Dma転送制御装置
JP2003006139A (ja) Dma転送装置
WO2020230413A1 (ja) 情報処理装置
JPH07114496A (ja) 共有メモリ制御回路
JP2001117860A (ja) メモリアクセス優先順位切替制御装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120406

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: 20121002

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: 20121030

R150 Certificate of patent or registration of utility model

Ref document number: 5127927

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees