JP2006079394A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2006079394A
JP2006079394A JP2004263313A JP2004263313A JP2006079394A JP 2006079394 A JP2006079394 A JP 2006079394A JP 2004263313 A JP2004263313 A JP 2004263313A JP 2004263313 A JP2004263313 A JP 2004263313A JP 2006079394 A JP2006079394 A JP 2006079394A
Authority
JP
Japan
Prior art keywords
bus
circuit
request
data processing
state
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.)
Withdrawn
Application number
JP2004263313A
Other languages
English (en)
Inventor
Makoto Saen
真 佐圓
Takashi Suzuki
敬 鈴木
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004263313A priority Critical patent/JP2006079394A/ja
Priority to US11/202,280 priority patent/US20060059284A1/en
Publication of JP2006079394A publication Critical patent/JP2006079394A/ja
Priority to US11/822,966 priority patent/US20070260791A1/en
Withdrawn legal-status Critical Current

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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】 複数の回路モジュールがバスで接続されたLSIにおいて、バス回路やある特定の処理回路の混雑が生じても、システムオンチップの潜在性能を十分に引き出せるデータ処理装置を提供する。
【解決手段】 アクセスが集中するバス回路回路SBS、PBS1,2及びスレーブ回路に状態監視機構ESBS,EPBS1,2を設ける。状態監視機構はクロック制御回路CPGなどのシステム制御回路や、CPUコアなどマスタ回路に、得られた状態を通知する機構を有し、更に、マスタ回路にはバス回路やスレーブ回路に処理の優先順位を通知するための優先順位を動的に切替できる機構PRIOが設けられる。
【選択図】 図1

Description

本発明は、システムの状態を観測する状態監視機構を有するLSIに係り、特に半導体基板上に形成される状態監視機構を備えたデータ処理装置に関する。ここで、本発明が対象とするLSIは、セントラルプロセッシングユニット(CPU)やディジタルシグナルプロセッサ(DSP)などの演算回路と、シンクロナスDRAM(SDRAM)などの記憶回路へのインタフェースを含むLSIチップである。
LSIの集積度の向上に伴い、LSIはCPU単体からシステムオンチップ(SOC)へ移行し、システムとしての性能を問われる傾向がますます強くなってきている。一つのLSIに多数の回路モジュールが組み込まれるようになると、プログラマの想定外の性能バグを引き起こすことがしばしば発生する。例えば、チップ内で回路モジュール同士を接続するバスに各回路からのアクセス要求が集中し、動画に必要な転送バンド幅が得られず、動画がスムーズに表示されないなどがこの典型例である。
ここで、最も性能を要求される状態を想定してバス幅を増やしたり、演算器の並列度を高めるなどの物量をつぎ込む方針は、コスト高を招き破綻をきたす。
しかし、上記のような処理が混雑する場合においても、実際にはリアルタイム性が低く、急ぐ必要のない処理が存在し、処理方式の最適化により多くの物量をつぎ込まずとも解決できる場合が大部分である。
従来これに対して、バスに接続された回路間のバス権取得に関する優先順位を、バス回路が有する優先順位設定レジスタに指定することによりバス上の処理順序の最適化を図る方法や、予め設定したバス上の転送量との比較によりバス権に関する優先順位を決定するものなどがある。
このようなバス上の処理に関連する従来例としては、例えば特許文献1や、特許文献2などがを挙げられる。
特許文献1はバス制御装置に関し、プログラム群ごとに、制御バスの使用権につき優先順位をプログラム郡内に設定することにより、制御バスの使用円滑化することが記載されている。
特許文献2は、バス性能を監視する方法及びシステムに関し、チップ外のバスに対する使用状態の測定が述べられている。
特開平9−265446号公報 特開平10−063615号公報
しかしながら、LSIに多数の回路モジュールが集積されるようになると、バス回路のみならず、ユニバーサルシリアルバス(USB)などの外部インターフェース(I/F)制御回路や、特定用途演算器での処理が混雑することが往々にして発生し、システム全体の状態をフィードバックして最適化する必要性が増す。
すなわち、複数の回路がバス回路で接続されたLSIにおいて、バス回路や、ある特定の処理回路の混雑により、LSI全体としての潜在性能を十分に引出せないという問題がある。
なお、特許文献1および2には、オンチップ内のバスに対する使用状態の測定と、その測定結果に基づくフィードバック機構については、述べられていない。
以下、本明細書において、自らが他の回路にアクセス要求を出す回路、例えば、CPU、MPEGデコーダやグラフィックス処理回路といった画像情報を処理する回路などを、マスタ回路と記述し、逆に他の回路からのアクセス要求を受けて処理を行う回路、例えばメモリインタフェースなどを、スレーブ回路と記述する。
そこで本発明の目的は、システム全体の状態をフィードバックして最適化が可能なデータ処理装置を提供することにある。
本明細書に開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。すなわち、本明細書に開示される一つのデータ処理装置は、複数の回路が接続されるバスと、バス上のデータ転送を制御するバス回路と、バスの動作周波数を決定し、バスにクロック信号を供給するクロック制御回路とが一つの半導体基板に形成されるデータ処理装置であって、バス回路は、バス上のデータ転送を監視する第1状態監視機構を有し、第1状態監視機構は、バス上のデータ転送の状態を示す第1情報をクロック制御回路に通知し、クロック制御回路は、第1情報を用いて、クロック信号の周波数を変更することを特徴とするものである。
また、本明細書に開示される他のデータ処理装置は、第1及び第2バスマスタを有するデータ処理装置であって、第1バスマスタは、論理アドレスを物理アドレスに変換する第1変換回路を有し、第2バスマスタは、論理アドレスを物理アドレスに変換する第2変換回路を有し、第1及び第2変換回路の夫々は、優先度設定ビットを有し、優先度設定ビットは、プログラムにより書き換え可能であり、データ処理装置は、優先度設定ビットに設定された優先度に基づいて、第1バスマスタのバスアクセスと第2バスマスタのバスアクセスの一方を選択することを特徴とするデータ処理装置。
本発明によれば、データ処理装置の性能向上を図ることができる。
本発明では、次の2つの機構を付加する。一つは処理要求が集中する各バス回路およびスレーブ回路に状態監視機構を設け、この状態を要求元であるマスタ回路およびクロック制御回路などのシステム制御回路にフィードバックする機構である。もう一つはマスタ回路内に処理内容の優先順位を動的に切替できる機構を設け、バス回路やスレーブ回路にこの情報を通知する機構である。以下、添付図面を参照しながら詳細に説明する。
図1は、本発明に係る状態監視機構を有するデータ処理装置の構成を示す図である。本発明に係るデータ処理装置は、特に制限されないが一つの半導体基板上に形成されるLSIである。図1に示すように、このLSIは、CPUコア(CPU−CORE)と、システムバス回路SBSと、このシステムバス回路SBSと周辺バスPBS1との間のプロトコル変換を行うバスブリッジ回路PBR1と、システムバス回路SBSと周辺バスPBS2との間のプロトコル変換を行うバスブリッジ回路PBR2と、CPUコアを介さずにシステムバス上のデータの転送を行うためのダイレクト・メモリ・アクセス制御回路DMAと、DRAM制御回路DMIFと、SRAM/ROM制御回路SMIFと、3Dグラフィックスアクセラレータ3DGと、2Dグラフィックスアクセラレータ2DGと、USBインタフェースコントローラUSBと、ビデオ入力回路VDOと、クロック制御回路CPGと、割り込み制御回路INTCなど、その他周辺回路を含むLSIである。
また、これら回路以外にも、マスタ回路からの処理要求が集中する回路(各バス回路、および、スレーブ回路)には、状態監視回路が設けられている。ESBSはシステムバス上の状態監視機構、EPBS1は周辺バスPBS1上の状態監視機構、EPBS2は周辺バスPBS2上の状態監視機構、ESMIFはSRAM/ROM制御回路SMIFの状態監視機構、EDMIFはDRAM制御回路DMIFの状態監視機構、EDMAはDMAの状態監視機構、E3DGは3Dグラフィックスアクセラレータ3DGの状態監視機構、E2DGは2Dグラフィックスアクセラレータ2DGの状態監視機構、EUSBはUSBインタフェースコントローラUSBの状態監視機構、EVDOはビデオ入力回路VDOの状態監視機構である。
中央解析回路CANLZは、これらの状態監視機構から得られた情報を纏める回路であり、CANLZは上記状態監視機構から得られた各監視対象回路の状態をCPUコアなどから参照できるための回路部MSTATと、指定したサイクル周期でトリガを発するPTRG回路を含む。なお、本願明細書では、各状態監視機構及び中央解析回路CANLZをつなぐ信号線群をANETと呼ぶものとする。
<状態計測部の詳細>
ここで、状態計測部について説明する。状態監視機構には、監視対象の回路の種類によりいくつかのタイプがある。代表例としては、バスの状態を監視するタイプと、スレーブ回路の状態を監視するタイプがある。以下、順に説明する。
図10に、バスの状態を監視するタイプとして、バス状態監視機構ESBSのブロック図を示す。ESBSはシステムバスSBSの状態を監視・計測し、その結果を他の回路に通知する回路である。本例で示すシステムバスは、バスマスタからバススレーブへの要求を伝えるリクエストバスと、その要求に対する返答を伝達するレスポンスバスを独立に備えるスプリット構造であり、それぞれのバス状態監視機構ESBSも、両方のバスを監視する。
リクエストバスを監視するために、リクエストバス要求REQ、リクエストの境界を示すエンド・オブ・パケットEOP、リクエストバス要求が許可されたことを示すリクエストバス・グラントGNT(アクノレッジ)、リクエストバス・コマンドOPC、リクエストバス・要求を発行したマスタ回路を識別するためのIDであるSRC、リクエストバス・アドレスADD、ライトデータDATAをシステムバスからの入力として持つ。レスポンスバスを監視するために、レスポンスバス要求R_REQ、レスポンスバス・要求の境界を示すエンド・オブ・パケットR_EOP、レスポンスバス要求が許可されたことを示すレスポンスバス・グラントR_GNT(アクノレッジ)、リクエストを発行したマスタ回路を識別するためのIDであるR_SRC、リードデータR_DATAをシステムバスからの入力として持つ。なお、同図中で示した括弧内の×M、×Sは、それぞれバスマスタ、バススレーブの数を示している。
その他の信号としては、他の回路ブロックとの同期動作を行うためのSYNCI、SYNCO、SBSの状態監視情報を伝達するPPCとSTATを持つ。PPCは、ある指定した期間のバスの使用状況などを示し、STATは現在のバスの使用状況を示す。これらの信号のうちSYNCO、SYNCI、PPC、STATは図1のANETに含まれる信号であり、他の状態監視機構あるいは中央解析回路CANLZとこれらを通じて接続されている。
バス状態監視機構ESBSの内部構成を述べる。ESBSは、監視条件を指定するための制御レジスタブロックREGSと、制御レジスタREGSで指定された観測条件とシステムバスSBSから入力された観測信号の値を比較し条件に一致したことを検出する回路CMPと、CMPからの比較結果をうけて制御レジスタREGSで指定された処理をおこなう回路ACCとから構成される。また、CMPは検出したタイミングを他の回路(状態監視機構あるいは中央解析回路)にSYNCOを通じて送信することができ、また逆に他の回路(状態監視機構あるいはCANLZ)が検出したタイミングをSYNCIを通じて受けることができ、複数の状態監視機構の同時動作やシーケンシャル動作が可能となる。
ACCが行う動作としては、状態監視情報を生成しPPC信号やSTATを通じて情報を送信することである。BCBRは監視条件を指定するためのレジスタであり、下記状態監視項目、バスコマンドのサイズ、種類、SYNCIによる同期測定を行うかどうかなどを指定する。BCARはBCBRに付随するレジスタで対象とするバストランザクションのアドレスを指定する。BCMIDもBCBRに付随するレジスタで対象とするバストランザクションの要求元のマスタ回路と要求先のスレーブ回路を指定する。
データ処理装置の性能向上のためには、ここで生成される状態監視情報を用いる。ESBSの状態監視項目とその生成方法について以下に示す。
<リクエストバス要求受付回数のカウント>
REQ、EOP、GNTがすべて1(アクティブ)になった回数、即ち、リクエストバス要求が許可された(受け付けられた)数をカウントし、PPC信号で伝達する。またこの時、制御レジスタブロックREGS内のレジスタBCMIDに指定することで、特定のバスマスタ回路を指定することも可能である。また同様に、ADD信号を比較条件に加えることでバス要求対象アドレスを指定することも可能である。
<リクエストバス要求・ウェイト・サイクル数のカウント>
リクエストバス要求REQが1(アクティブ)かつリクエストバス・グラントGNTが0になったバスサイクル数、即ち、リクエストバス要求REQが発行されてから許可される(受け付けられる)までのバスサイクル数をカウントし、PPC信号で伝達する。またこのとき、制御レジスタブロックREGS内のレジスタBCMIDに指定することで、特定のバスマスタ回路を指定することも可能である。また同様に、リクエストバス・アドレスADD信号を比較条件に加えることでバス要求対象アドレスを指定することも可能である。
<レスポンスバス要求受付回数のカウント>
レスポンスバス要求R_REQ、エンド・オブ・パケットR_EOP、レスポンスバス・グラントR_GNTがすべて1(アクティブ)になった回数、即ち、レスポンスバス要求が発行され、許可された数をカウントし、PPC信号で伝達する。またこのとき、制御レジスタブロックREGS内のレジスタBCMIDに指定することで、特定のバススレーブ回路を指定することも可能である。
<レスポンスバス要求・ウェイト・サイクル数のカウント>
R_REQが1(アクティブ)かつR_GNTが0であるバスサイクル数、即ち、レスポンスバス要求R_REQが発行されてから許可される(受け付けられる)までのバスサイクル数をカウントし、PPC信号で伝達する。またこのとき、REGS内のレジスタBCMIDに指定することで、特定のバススレーブ回路を指定することも可能である。
次に図11に、スレーブの状態を監視するタイプとして、DRAM制御回路DMIFの状態監視機構EDMIFのブロック図を示す。DMIFは、オンチップバス・インタフェースであるBUSIFと、メモリ制御を行うMCNTLを持ち、MCNTLの内部にマスタ回路から受け付けた要求を積んでおくキューDMQを持つ。EDMIFは、そのDMQの状態を監視するためのDMQSを入力として備える。このDMQSには、DMQに積まれている要求の数、実行されたコマンドの種類(リード/ライト、サイズなど)が含まれる。その他の信号としては、他の状態監視機構との同期動作を行うためのSYNCI、SYNCO、DMIFの状態監視情報を伝達するPPCとSTATを持つ。内部構成に関しては、バス状態監視機構ESBSと同様である。
データ処理装置の性能向上のためには、ここで生成される状態監視情報を用いる。EDMIFの状態監視情報の項目とその生成方法について以下に示す。
<DMIFコマンド実行数>
DMQSにより通知された実行コマンド数の和をカウントし、PPC信号を通じて送信する。コマンドの種類(リード/ライト)およびコマンドのサイズによる特定も可能である。
<DMIF使用状況>
DMQSによって得られたDMQに積まれている要求の数を、DRAM制御回路DMIFの処理能力空き情報としてSTAT信号を通じて送信する。DMIFが使用されていない場合、STAT信号値は0となる。
次に、状態監視機構の性能最適化への幾つかの実施例について説明する。
本実施例では、図1に示すように、上記状態監視機構から得られた各監視対象回路の状態をCPUコアから参照できるようにするための状態参照回路MSTATを有している。
図4にMSTATの一例を示す。MSTATを32ビットのレジスタとして実装し、そのレジスタの各ビットがモジュールの使用可能な状態であるかどうかを示す。各回路が使用可能な状態にあるかどうかという情報は、図1における各状態監視回路ESBS、EPBS1、EPBS2、ESMIF、EDMIF、EUSB、E3DG、E2DG、EDMAから、MSTATに接続されるSTAT信号により伝達される。例えば、状態参照回路MSTATのビット0、1はDRAM制御回路DMIFが使用可能であるかどうかを示している。言い換えれば、DMIFの持つコマンドキューDMQの状態を示している。この値が0であれば完全に空いていることを示し、1以上であれば既に処理が予約されており処理要求を発行しても待ち時間が発生することを示す。
また、図1において、状態参照回路MSTATはシステムバスSBS上の中央解析回路CANLZ内部に実装されているが、例えば、CPUコア内部に実装されてもよい。CPUコア内に実装すると、CPUコアからMSTATへのアクセスレイテンシを最小とできるメリットがあるが、他の回路からのアクセスレイテンシは比較的大きくなる。また、複数の回路の内部に実装されてもよい。
次に、状態参照回路MSTATを利用した性能向上の方法について記述する。ここではプログラムの移植性を考慮し、その一形態として、コード展開プログラムを利用する方法を示す。プログラマは、予め順序入れ替え可能な処理をコード展開プログラムが認識できる順序入れ替え指示詞により記述する。図2および図3はその一例であり、2つのタスク、TASK0とTASK1を記述した場合である。図2は、順序入れ替え指示詞を埋め込んだプログラム例である。図3は、それをコード展開プログラムにより展開した結果のプログラムである。
図2において、SW1、SPF0、EPF0、SPF1、EPF1が順序入れ替え指示詞である。T0、T1部分は、それぞれタスク0、タスク1の実プログラム部分である。SW1は、TASK0とTASK1が順序入れ替え可能であることを示す。SPF0は、タスク0の開始、タスク0がMSTATの番号5に対応するリソースを使用することを示す。図4において、タスク0のMSTATの番号5に対応するリソースは、USBを使用することを示す。EPF0はタスク0の終了を示す。同様に、SPF1は、タスク1の開始であること、タスク1がMSTATの番号2に対応するリソースを使用することを示す。したがって、図4においてタスク1はSMFIを使用することを示す。EPF0はタスク1の終了を示す。これらの指示詞により、番号5に対応するリソースと番号2に対応するリソースの稼動状況から判断し、タスク0とタスク1の実行順序を動的に制御できる形態に展開可能となる。
展開結果の例である図3において、SW1はタスク0とタスク1の実行順序を指定するための条件式である。SW1では、MSTATの番号5のレジスタにはビット1が立っているので、タスク0が使用する番号5に対応するリソースが使用可能な状態になく、タスク1が使用するMSTATの番号2のレジスタにはビット0が立っているので、対応するリソースは使用可能な状態であり、このような場合には、タスク0より先にタスク1を実行することを示す。T1、T0部分は図2と同様、それぞれ、タスク0、タスク1の実プログラム部分である。
図5は、システムバスSBS上のバス混雑度監視機構ESBS、および、周辺バスPBS上のバス状態監視機構EPBSからの情報を、クロック制御回路CPGへフィードバックする機構を示す。ESBSS、EPBSSはそれぞれの監視回路からの情報伝達信号である。クロック制御回路CPGは、内部に分周期DIVを備え、基準クロックに対して分周を行い、そのクロックを各回路に供給する。本実施例においては、クロックSCKをシステムバスSBSへ、クロックPCKを周辺バスPBSに供給する。ここで、クロック制御回路CPGは、ESBSS、EPBSS信号により、バス状態を知り、その状態に合わせて、分周比設定を動的に変更し、これらバス回路への供給クロックを変更する。このように局所的な周波数変更により、必要な部分の動作周波数だけを上げることでき、電力および処理速度両面からの最適化が可能である。また、分周比の切り替えによる周波数変更であるため、サイクル単位での切り替えが可能である。
図8及び図9は、図5におけるシステムバスSBS上の転送を示し、図8は上記の機構を実施しない場合の信号波形図、図9は上記の機構を実施した場合の信号波形図である。波形中のACTは実際に有効な処理が行われている期間を示し、WAITはバスの混雑により待たされている期間を示す。T1の時点においてCPU、3DG、DMAからのバスアクセス要求が同時に発生する。この時、図9ではT1の時点において、バス状態監視機構ESBSが複数のバスアクセス要求が発生していることを検知し、ESBSSを通じてクロック制御回路CPGにこれを伝える。CPGはこれを受けて、分周比を変更し、対象バス回路のクロック周波数SCKをT2の時点から2倍にする。逆に、T3の時点で、ESBSがバス上のアクセスが混雑していないことを検知し、ESBSSを通じてクロック制御回路CPGにこれを伝える。CPGはこれを受けて分周比を変更し、対象バス回路のクロック周波数SCKをT1の時点の周波数に戻す。処理が混雑するT2からT3の期間だけ、転送バンド幅を2倍にすることができる。結果として、図9では、同様の転送に対して本実施例で述べたバス状態監視機構EPBSからの情報をクロック制御回路CPGへフィードバックする機構を持たない図8と比較すると、T2からT3の期間で転送バンド幅を2倍にでき、転送に必要な時間がおおよそ半分となる。また、その他の部分の周波数は変化させないため、周波数向上による消費電力増加は最小におさえられる。本実施例の消費電力抑制に対する効果は、LSI内のクロック電力がLSI全体の3割から5割程度を占めること、オンチップバス部分の活性化率が高いことを考慮すると、多くの場合3%から5%程度である。
以上のように、バス回路を含む処理の集中する複数の回路からの情報をフィードバックして、処理順序を指定する機構を設けたことにより処理待ち時間を削減し、LSIを使用したデータ処理装置の性能向上を図ることができる。
LSI内の各回路の状態を、ある一定期間ごとに同時に計測し出力する機構について述べる。この機構は、ある回路のリソース競合により引き起こされるシステム性能劣化を、短期間で緩和するために有効である。LSIの大規模化に伴い1チップに多数の機能が集積されるようになると、複数の処理がLSI上で同時実行され、予測するのが難しい性能劣化が発生する。リソース競合はバス、メモリ、共有演算器などで発生する。
しかし、このようなリソース競合の多くは、(1)競合する処理に対するリソース配分の割合を最適化すること、(2)競合する処理の開始タイミングを最適化することで性能改善が可能である。これら(1),(2)の最適化を効率よく行うためには、競合のタイミングとその処理の特定が必要である。本実施例は、その情報を与える機構である。
図1において、RTRGは指定したサイクル周期でトリガを発するトリガ回路である。この周期的なパルスを、ANETに含まれるSYNCI信号を通じて各状態監視機構に送る。各状態監視機構はそのタイミングに合わせて計測状態を、PPC信号を通じて中央解析回路CANLZに送る。外部のツールがこれらの情報を専用のインタフェースAUDIFを通じて情報を獲得する。
図12は、このシステムを用いた性能最適化の一構成例である。このケースでは、カメラからの入力画像処理と、LCDへの表示処理と、複数画像の合成処理と、フォーマット変換処理と、MPEGによる画像圧縮処理が同時に行われ、それらによるメモリアクセスが競合する。これらの競合する処理に対するメモリのリソース配分の割合を最適化することでシステム性能を改善できる。上記それぞれの処理は異なる回路、ここでは、カメラ入力画像処理が回路CEUで、LCDへの表示処理が回路LCDCで、画像合成処理が回路BEUで、フォーマット変換処理が回路VEUで、画像圧縮処理が回路VPUでそれぞれ実行される。これらの回路はバスSBSを介してメモリコントローラDMIFに接続されており、メモリリソースの割合はバスSBS内のアービタARBTにより決定される。
本実施例におけるバスアービタARBTは、この割合をレジスタ設定にて調整できる機構を備えることを特徴としている。
図14は、本実施例によって得られた結果をグラフ化したものであり、それぞれの回路からのメモリアクセス要求数の時間分布を示す。なお、横軸は正規化された時間、縦軸は各処理ごとの実行数NPCを示している。これらすべての処理を完了するのに要する時間が小さいほど性能が高いといえる。CEU、LCDC、BEU、VEU、VPUがメモリに対して発行したメモリアクセス要求数を、それぞれに接続された状態監視機構がカウントし、その結果を指定したサイクル周期でトリガを発するPTRGの発生する周期に合わせて出力している。AUDIFを通じて得たその結果をグラフ化したものである。
対象とするデータは、メモリアクセス要求数でなくともよく、ウェイト・サイクル数などでも同様である。本実施例のメモリリソースの割合をレジスタ設定にて調整できる機構を備えるアービタを用いることで、それぞれの処理が使用するメモリリソースの割合を知ることができ、上記ARBTを効率よく調整することが可能となる。結果、レジスタ設定にて調整できる機構を備えていないアービタを用いる図13の場合と比べて、図14に示すように処理時間を17%も大幅に削減できる。
バスマスタ側処理優先順位を制御する構成について述べる。
上記で述べたように、共通のリソースを複数のマスタでどのように効率よく利用するかがシステム性能向上の鍵である。例えば、メモリでの競合が一例である。画像表示や圧縮などのメディア処理はリアルタイムで大容量の処理を必要とし、バスやメモリの大部分の帯域を使用する。VGA(Video Graphics Array、640×480ドット)級の動画圧縮関連の処理では、300MB/s〜400MB/sにも及ぶメモリアクセスが発生する場合がある。この時、残りの帯域をその他の機能モジュールで共同利用する必要がある。CPUなどは処理内容次第で優先的に処理すべき場合とそうでない場合があり、必要な帯域は処理ごとに異なる。優先的に処理しなければならない代表的なケースは、通信関係の割り込みである。この場合、処理に大きな遅延が発生するとデータの取りこぼしなどが発生する。一方、定期的なポーリング処理などは優先度が低くても問題ない。
処理優先順位を制御する構成として、CPUコア内の論理アドレスから物理アドレスへの変換回路TLB(Translation Lookaside Buffer)回路内に、優先度設定ビットを付加する。図6に一例を示す。各行(L1、L2、L3、L4、…、Ln)が、それぞれのページエントリに対応する。VPNは仮想ページアドレス、PPNは物理ページアドレス、PRIOは優先順位設定ビットである。その他のビットは、ASIDは仮想ページプロセス識別子、Vは各エントリの有効ビット、SZはページサイズビット、PRは各エントリの保護レベル、SHは複数のプロセスでのページ共有を指示するビット、Cはキャッシング有効ビットである。TLBのエントリごとに優先度を設定できることで、プログラマが意識する処理単位で優先度を動的に制御することが可能になる。
次に、その動作例を示す。
図7は複数のCPUコア(ここでは、CPUA、CPUB)を含み、それらがあるスレーブ回路SLBを共有するシステムである。CPUA、CPUBともに内部に上記優先順位設定ビットPRIOを含むTLB(TLBA、TLBB)を有する。ある時点T1において、CPUAは、処理AT1を実行しており、これに伴いTLBA中のエントリ4が使用されると想定する。この時、CPUAはシステムバスSBSを介してスレーブ回路SLBに対して、エントリ4に付随する優先順位1の情報を伴う要求ATT1を発行する。優先順位に関して、数字の高いものほど順位も高いとする。その直後の時点T2において、CPUBは、処理BT2を実行しており、これに伴いTLB中のエントリ1が使用されると想定する。この時、CPUBはシステムバスSBSを介してスレーブ回路SLBに対して、エントリ1に付随する優先順位3の情報を伴う要求BTT2を発行する。
一方、スレーブ回路SLBは、受け付けた要求を保持しておくための処理キューQ0、Q1、Q2と、処理部CLCをもつ。処理部CLCによる順序は処理キューQ0、Q1、Q2の順である。まず、上記CPUAからの要求とCPUBからのアクセス要求を順に受け付け、内部の処理キューにATT1、BTT2の順に格納する。次に、スレーブ回路SLBは処理キュー内の優先順位PRIOに基づき、BTT2をATT1に対して先に実行するよう、処理キュー内で順序変更する。
なお、上記のような複数のCPUコア間の優先順位制御を行う場合、必ずしも、両方のCPUコアが優先順位を動的に変更できる仕組みを持たなくともよい。たとえば、片方は中間レベルの固定順位とするなどが考えられる。また、優先順位制御機構は、必ずしも、CPUコアのみが持つものではない。他のグラフィックスアクセラレータなど他のマスタ回路が装備する場合もこの対象となる。
以上、本発明の好適な実施例について説明したが、本発明は上記実施例に限定されるものではなく、本発明の精神を逸脱しない範囲内において、種々の設計変更をなし得ることは勿論である。
本発明に係る状態監視機構付LSIの構成図。 本発明に係る状態監視機構を利用したプログラムの一例を示す順序入れ替え指示詞を埋め込んだプログラム。 図2のプログラムをコード展開プログラムにより展開した結果のプログラム。 状態参照回路MSTATの一構成例を示す図。 バス状態の分周比へのフィードバック構成図 処理優先度ビット付TLBの一例を示す図。 処理優先度ビット付TLB利用システムの一例を示す図。 図5におけるシステムバスSBS上の転送を示し、分周比設定を動的に変更しない場合の信号波形図。 図5におけるシステムバスSBS上の転送を示し、分周比設定を動的に変更する場合の信号波形図。 バス状態監視機構ESBSのブロック図。 DRAM制御回路の状態監視機構EDMIFのブロック図。 各回路の状態をある一定期間ごとに同時に計測し出力する本発明システムを用いた性能最適化の一構成例示す図。 メモリリソースの割合をレジスタ設定にて調整できる機構の無いアービタを用いる場合の回路からのメモリアクセス要求数の時間分布を示す図。 メモリリソースの割合をレジスタ設定にて調整できる機構を備えるアービタを用いる場合の回路からのメモリアクセス要求数の時間分布を示す図。
符号の説明
2DG…2Dグラフィックスアクセラレータ、
3DG…3Dグラフィックスアクセラレータ、
ADC…AD変換回路、
CPG…クロック制御回路、
CPU−CORE…CPUコア、
DMA…ダイレクト・メモリ・アクセス制御回路、
DMIF…DRAM制御回路、
E2DG…2Dグラフィックスアクセラレータ監視機構、
E3DG…3Dグラフィックスアクセラレータ監視機構、
EDMIF…DRAM制御回路監視機構、
EPBS1,EPBS2…周辺バス監視機構、
ESBS…システムバス監視機構、
ESMIF…SRAM/ROM制御回路監視機構、
EUSB…USBインタフェース制御回路監視機構、
EVDO…ビデオ入力回路監視機構、
INT…割り込み制御回路、
I2C…I2Cインタフェース制御回路、
MSTAT…状態参照回路、
PBR1,PBR2…バスブリッジ回路、
PBS1,PBS2…周辺バス、
PRIO…優先順位指示ビット、
SBS…システムバス、
RTRG…トリガ回路、
SIF…シリアルインタフェース制御回路、
SMIF…SRAM/ROM制御回路、
TMU…タイマ回路、
USB…USBインタフェース制御回路、
VDO…ビデオ入力回路。

Claims (9)

  1. 複数の回路が接続されるバスと、前記バス上のデータ転送を制御するバス回路と、前記バスの動作周波数を決定し、前記バスにクロック信号を供給するクロック制御回路とが一つの半導体基板に形成されるデータ処理装置であって、
    前記バス回路は、前記バス上のデータ転送を監視する第1状態監視機構を有し、
    前記第1状態監視機構は、前記バス上のデータ転送の状態を示す第1情報を前記クロック制御回路に通知し、
    前記クロック制御回路は、前記第1情報を用いて、前記クロック信号の周波数を変更することを特徴とするデータ処理装置。
  2. 請求項1において、
    前記データ処理装置は、前記バスに接続されるバスマスタ及び第1バススレーブとを更に具備し、
    前記バスは、前記バスマスタから前記第1バススレーブへデータを転送させる第1要求を伝えるリクエストバスと、前記第1要求に対する応答を伝達するレスポンスバスを独立に備え、
    前記バスマスタは、前記第1バススレーブに対し、データの転送を要求する第1要求を前記リクエストバスを介して発行し、
    前記第1バススレーブは、前記第1要求を受け、前記第1要求に対応するデータを前記バスマスタに転送することを要求する第2要求を前記リクエストバスを介して発行することを特徴とするデータ処理装置。
  3. 請求項2において、
    前記第1状態監視機構は、前記第1要求が受け付けられた数と、前記第1要求が発行された後前記第1要求が受付られるまでのバスサイクル数と、前記第2要求が受け付けられた数と、前記第2要求が発行された後前記第2要求が受け付けられるバスサイクル数とをカウントし、前記カウントの結果に基づいて、前記第1情報を出力することを特徴とするデータ処理装置。
  4. 請求項2において、
    前記データ処理装置は、前記バスマスタからアクセスされる第2バススレーブと、前記第2バススレーブが接続される第2バスと、前記第1バスと前記第2バスとの間に接続されるバスブリッジ回路とを更に具備することを特徴とするデータ処理装置。
  5. 請求項4において、
    前記第1バススレーブは、前記第1バススレーブの動作状態を監視する第2状態監視機構を有し、
    前記第2バススレーブは、前記第2バススレーブの動作状態を監視する第3状態監視機構を有し、
    前記データ処理装置は、前記第2及び第3状態監視機構が監視した情報を保持するための状態参照回路を更に具備し、
    前記バスマスタは、第1タスクと第2タスクを時分割で実行する場合に、前記状態参照回路に保持された情報に基づいて、前記第1タスクと前記第2タスクの実行順序を決定することを特徴とするデータ処理装置。
  6. 請求項1において、
    前記第1状態監視機構は、所定サイクル周期で前記第1情報を出力することを特徴とするデータ処理装置。
  7. 請求項4において、
    前記データ処理装置は、前記データ処理装置の外部に情報を出力するインターフェースを有し、
    前記第1乃至第3状態監視機構は、所定サイクル周期で監視結果を前記インターフェースに出力することを特徴とするデータ処理装置。
  8. 第1及び第2バスマスタを有するデータ処理装置であって、
    前記第1バスマスタは、論理アドレスを物理アドレスに変換する第1変換回路を有し、
    前記第2バスマスタは、論理アドレスを物理アドレスに変換する第2変換回路を有し、
    前記第1及び第2変換回路の夫々は、優先度設定ビットを有し、
    前記優先度設定ビットは、プログラムにより書き換え可能であり、
    前記データ処理装置は、前記優先度設定ビットに設定された優先度に基づいて、前記第1バスマスタのバスアクセスと前記第2バスマスタのバスアクセスの一方を選択することを特徴とするデータ処理装置。
  9. 請求項8において、
    前記第1及び第2変換回路の夫々は、複数のエントリを有し、前記複数のエントリの夫々に前記優先度設定ビットを有することを特徴とするデータ処理装置。
JP2004263313A 2004-09-10 2004-09-10 データ処理装置 Withdrawn JP2006079394A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004263313A JP2006079394A (ja) 2004-09-10 2004-09-10 データ処理装置
US11/202,280 US20060059284A1 (en) 2004-09-10 2005-08-12 Data processing device
US11/822,966 US20070260791A1 (en) 2004-09-10 2007-07-11 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004263313A JP2006079394A (ja) 2004-09-10 2004-09-10 データ処理装置

Publications (1)

Publication Number Publication Date
JP2006079394A true JP2006079394A (ja) 2006-03-23

Family

ID=36035414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004263313A Withdrawn JP2006079394A (ja) 2004-09-10 2004-09-10 データ処理装置

Country Status (2)

Country Link
US (2) US20060059284A1 (ja)
JP (1) JP2006079394A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059047A (ja) * 2006-08-29 2008-03-13 Oki Electric Ind Co Ltd 情報処理システム及びこの制御方法
JP2017126311A (ja) * 2016-01-15 2017-07-20 株式会社ネクステック 情報処理装置、情報処理方法、および情報処理システム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079394A (ja) * 2004-09-10 2006-03-23 Renesas Technology Corp データ処理装置
US8078784B2 (en) * 2008-04-23 2011-12-13 Airhop Communications Method and apparatus for data movement in a system on a chip
US9684633B2 (en) * 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
JP2019057071A (ja) * 2017-09-20 2019-04-11 ルネサスエレクトロニクス株式会社 半導体装置および当該半導体装置において用いられるプログラム
JP2021196681A (ja) * 2020-06-10 2021-12-27 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214644A (en) * 1989-10-17 1993-05-25 Matsushita Electric Industrial Co., Ltd. Electronic device with data transmission function
US5367695A (en) * 1991-09-27 1994-11-22 Sun Microsystems, Inc. Bus-to-bus interface for preventing data incoherence in a multiple processor computer system
EP0752666A3 (en) * 1995-07-06 2004-04-28 Sun Microsystems, Inc. Method and apparatus for fast-forwarding slave requests in a packet-switched computer system
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
EP1213650A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Priority arbitration based on current task and MMU
US6957290B1 (en) * 2000-10-06 2005-10-18 Broadcom Corporation Fast arbitration scheme for a bus
US7051330B1 (en) * 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor
JP3796124B2 (ja) * 2001-03-07 2006-07-12 株式会社ルネサステクノロジ スレッド間優先度可変プロセッサ
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US7035958B2 (en) * 2002-10-03 2006-04-25 International Business Machines Corporation Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
TWI282057B (en) * 2003-05-09 2007-06-01 Icp Electronics Inc System bus controller and the method thereof
US7181556B2 (en) * 2003-12-23 2007-02-20 Arm Limited Transaction request servicing mechanism
JP2006079394A (ja) * 2004-09-10 2006-03-23 Renesas Technology Corp データ処理装置
US7263566B2 (en) * 2004-12-30 2007-08-28 Qualcomm Incorporated Method and apparatus of reducing transfer latency in an SOC interconnect

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059047A (ja) * 2006-08-29 2008-03-13 Oki Electric Ind Co Ltd 情報処理システム及びこの制御方法
JP2017126311A (ja) * 2016-01-15 2017-07-20 株式会社ネクステック 情報処理装置、情報処理方法、および情報処理システム

Also Published As

Publication number Publication date
US20060059284A1 (en) 2006-03-16
US20070260791A1 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
US11567780B2 (en) Apparatus, systems, and methods for providing computational imaging pipeline
US9092429B2 (en) DMA vector buffer
JP4456490B2 (ja) Dma装置
US7581054B2 (en) Data processing system
US20070038829A1 (en) Wait aware memory arbiter
US20100125717A1 (en) Synchronization Controller For Multiple Multi-Threaded Processors
JP5102789B2 (ja) 半導体装置及びデータプロセッサ
JPH09190406A (ja) 直接メモリアクセス制御装置及びこれを用いた伝送システム
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
US20070260791A1 (en) Data processing device
JP5660149B2 (ja) 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
JP2012008919A (ja) 情報処理装置
US20150268985A1 (en) Low Latency Data Delivery
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
JP2011065359A (ja) メモリシステム
WO2007039933A1 (ja) 演算処理装置
JP2010092101A (ja) 情報処理装置
WO2011114495A1 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
WO1992006432A1 (en) Device for controlling bus
JP4437386B2 (ja) 信号処理システム
JP2002278753A (ja) データ処理システム
JP2004145593A (ja) ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法
JP2004038333A (ja) データ転送システム
JP2006031227A (ja) Dma転送を用いたコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061124

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061124

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091001