JP2010015275A - データ処理システム及びプログラム開発システム - Google Patents

データ処理システム及びプログラム開発システム Download PDF

Info

Publication number
JP2010015275A
JP2010015275A JP2008172955A JP2008172955A JP2010015275A JP 2010015275 A JP2010015275 A JP 2010015275A JP 2008172955 A JP2008172955 A JP 2008172955A JP 2008172955 A JP2008172955 A JP 2008172955A JP 2010015275 A JP2010015275 A JP 2010015275A
Authority
JP
Japan
Prior art keywords
program
cpu
target device
bus
bus load
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.)
Granted
Application number
JP2008172955A
Other languages
English (en)
Other versions
JP4871921B2 (ja
Inventor
Takashi Nakahara
中原  崇
Shigeru Matsuo
松尾  茂
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 JP2008172955A priority Critical patent/JP4871921B2/ja
Publication of JP2010015275A publication Critical patent/JP2010015275A/ja
Application granted granted Critical
Publication of JP4871921B2 publication Critical patent/JP4871921B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】CPU又はDMA制御装置の一方にメモリアクセスが偏ることを能動的に抑制することができるデータ処理システムを提供することにある。
【解決手段】メモリへのアクセスにおいてCPU又はDMA制御装置の間でバス占有権を調停するバス調停回路は、前記CPUからの前記メモリに対するアクセスによるバス負荷を定期的に計測してそのバス負荷情報を前記DMA制御装置へ送信する。前記DMA制御装置は、バス調停装置から受取ったバス負荷情報に基づいて、データ転送制御のデータ転送量を少なくする制御を行う。これによれば、定期的に計測されたバス負荷に従ってDMA制御装置によるバス占有時間を動的に変更することができる。
【選択図】図1

Description

本発明は、DMA(Direct Memory Access)制御装置、特にSoC(System on a Chip)においてCPUなどの演算処理装置を介さずにメモリ間またはメモリないし外部機器間でデータを直接転送する制御装置に関するものである。
近年、情報機器の高性能化、多機能化に伴い、これらの機器に搭載されるSoC (Systems on a Chip)が処理するデータ量も増大している。このような、増大するデータ処理に対応するため、近年のSoCでは、ディスプレイ制御やCD・HDD制御など、外部周辺機器制御部やCPUなど複数のデータ処理部が並列にデータ処理を行うため、一個以上のバスにぶら下がるような形で複数のデータ処理部が接続されている。また、CPUの演算処理におけるデータやプログラム、ディスプレイ表示データなどの一時記憶を行うため、DRAMがMCU(Memory Controller Unit)を介してバスと接続されている。DRAMはデータ処理部毎に置くとコストが高くなるという理由で、DRAMとバスとのI/Fは一つに絞られていることがあり、MCUにおいて各データ処理部におけるバス占有権の調停を行っている。
一方、SoCにおいて、CPUなどの演算処理装置を介さずにメモリ間またはメモリないし外部周辺機器間でデータを直接転送するDMA制御装置というものがある。DMA制御装置もバスに接続されている。DMA制御装置におけるデータの転送方法は2種類に分けることができる。1つは、サイクルスチールモードと呼ばれるものであり、1回のデータ転送単位の転送を終了するたびにバスの占有権を他のデータ処理部に渡すというものである。もう1つは、バーストモードと呼ばれるものであり、DMA制御装置がいったんバスの占有権を取ると、転送終了条件が満たされるまでバスの占有権を解放せずに転送を続けるというものである。DMA制御装置のデータ転送方法、およびサイクルスチールモードにおける1回のデータ転送単位(一単位のデータ転送量)については、ユーザプログラムによりDMA制御装置内のレジスタを設定することで変更することが可能である。
DMA制御装置からのアクセス要求とその他のデータ処理部からのアクセス要求が同一のDRAMに対し同時に発生した時のアクセス調停方法として、DMA制御装置からのアクセス要求に高い優先度を、CPUからのアクセス要求に、DMA制御装置より低い優先度を付け、この優先度に従いアクセス要求を調停する方式がある。この調停方式を用いることにより、DMA制御装置からのアクセスを高速化することはできるものの、DMA制御装置からのアクセス要求が多い場合には、低優先のCPUからのアクセス要求が長い時間待たされ、結果としてシステム全体の性能が低下する。
また、DRAMへのアクセスを行う際には、記憶保持のためのプリチャージ処理やアクセス先アドレス指定処理などが最初に行われるため、その分オーバーヘッド的な時間がかかる。そのため、一回あたりのデータ転送単位を減らすと、オーバーヘッド的な時間が複数回入ることになり、転送効率が低下する。
この問題を解決する発明として動的にデータ転送量を調整するという手段について記載された特許文献1または特許文献2が存在する。特許文献1は、DMA制御装置からのDRAMアクセスによるバス負荷を監視し、その結果によりCPUからのDRAMアクセスを制限するというものである。一方、特許文献2は、DMA制御装置からの一部のDRAMアクセスによるバス負荷を監視し、その結果によりDMA制御装置からの他のDRAMアクセスを制御するというものである。
特開2003−256355号公報 特開2003−178020号公報
一方、CPUからのDRAMアクセス回数を低減する装置としてキャッシュメモリが存在する。半導体技術の向上によりキャッシュメモリの記憶容量は年々増えてきているため、キャッシュメモリによりCPUからのDRAMアクセス回数は年々減り続けており、現状においてCPUからのDRAMアクセスがDMA制御装置からのDRAMアクセスに比べて数分の一である。上記のような状況においてDMAアクセス回数からバス負荷率を検知してCPUアクセスを制限すると、DMAアクセス回数が多いときにはCPUアクセスが全くできず、処理が滞るという問題がある。
この問題の対策として、ユーザプログラムでDMA制御装置のレジスタを操作することにより動的にデータ転送量を調整するとことについて検討した。キャッシュメモリが採用されているときは、CPUがDRAMへアクセスする前に、CPU内の一時記憶装置であるキャッシュメモリ内にアクセス先のデータが入っているかどうかがチェックされ、キャッシュミスした場合にのみDRAMへのアクセスが行われる。キャッシュミスするかどうかについてはプログラムの実行結果に依存するため、ユーザプログラムから推測することは不可能である。したがって、ユーザプログラムからDMA制御装置のレジスタを用いて転送量を動的に調整することは難しい。
本発明の目的は、CPU又はDMA制御装置の一方にメモリアクセスが偏ることを能動的に抑制することができるデータ処理システムを提供することにある。
本発明の別の目的は、CPU又はDMA制御装置の一方にメモリアクセスが偏ることを能動的に抑制することができるデータ処理システムのための開発環境を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、メモリへのアクセスにおいてCPU又はDMA制御装置の間でバス占有権を調停するバス調停回路バス調停装置は、前記CPUからの前記メモリに対するアクセスによるバス負荷を定期的に計測してそのバス負荷情報を前記DMA制御装置へ送信する。前記DMA制御装置は、バス調停装置から受取ったバス負荷情報に基づいて、データ転送制御のデータ転送量を少なくする制御を行う。これによれば、定期的に計測されたバス負荷に従ってDMA制御装置によるバス占有時間を動的に変更することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、CPU又はDMA制御装置の一方にメモリアクセスが偏ることを能動的に抑制することができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明に係るデータ処理システムは、データ転送量およびデータ転送方法が設定されるレジスタを有するDMA制御装置と、メモリへのアクセスにおいてCPU又は前記DMA制御装置の間でバス占有権を調停するバス調停回路とを有する。前記バス調停装置は、前記CPUからの前記メモリに対するアクセスによるバス負荷を定期的に計測してそのバス負荷情報を前記DMA制御装置へ送信するバス負荷監視回路を有する。前記DMA制御装置は、前記バス負荷監視回路から受取ったバス負荷情報が所定のバス負荷を超えているときデータ転送制御によるデータ転送量を減らす制御を行う。
CPUからのメモリアクセスがDMA制御装置からのメモリアクセスに比べて数分の一になっているという今日の状況を前提として前記DMA制御装置によるデータ転送量の制御が行われると、CPUからのメモリアクセスによるバス負荷が高いときにはDMA制御装置からのメモリアクセス性能が多少低下する程度であり、必要に応じてCPUからのメモリアクセスが可能になり、また、CPUからのメモリアクセスによるバス負荷が少ないときにはDMA制御装置からのメモリアクセス効率が高くなる。
これにより、CPU又はDMA制御装置の一方にメモリアクセスが偏ることを能動的に抑制することができる。したがって、CPUからのDRAMアクセス頻度に変動があるプログラムを実行する場合においては全体的な処理の能率を上げることができる。
〔2〕項1のデータ処理システムにおいて、前記データ転送制御によるデータ転送量を少なくする制御は、サイクルスチールモードにおける1回のデータ転送量を減らす制御である。
〔3〕項1のデータ処理システムにおいて、前記データ転送制御によるデータ転送量を少なくする制御は、データ転送制御モードをバーストモードからサイクルスチールモードに変更する制御である。
〔4〕項1のデータ処理システムにおいて、前記バス負荷監視回路は、一定時間における前記CPUからのメモリアクセス回数を計測し、アクセス回数が閾値以上かどうかを表す信号を前記バス負荷情報として求める。
〔5〕項1のデータ処理システムにおいて、前記バス調停装置は、前記CPUからのメモリアクセス要求を一時的に蓄積し、空き記憶容量を前記バス監視回路へ送信するバッファを更に有する。このとき、前記バス負荷監視回路は、一定時間における前記バッファのバッファ空き容量の積分値が閾値以上かどうかを表す情報を前記バス負荷情報として前記DMA制御装置へ送信する。
〔6〕項1のデータ処理システムにおいて、前記CPUは、キャッシュミスヒットが発生した際にキャッシュミス信号をバス調停回路へ送信するキャッシュメモリを有する。このとき、前記バス負荷監視回路は、一定時間におけるキャッシュミス信号発生回数を計測し、キャッシュミス信号発生回数が閾値以上かどうかを表す情報を前記バス負荷情報として前記DMA制御装置へ送信する。
〔7〕項1のデータ処理システムにおいて、前記CPUは実行すべき命令のアドレスを示すプログラムカウンタの値をバス調停回路へ出力する。このとき、前記バス負荷監視回路は、前記CPUからのメモリアクセス回数の少ないルーチンまたはタスクにおけるプログラムカウンタの開始値および範囲をルックアップテーブルとして記憶し、入力した前記プログラムカウンタの値がテーブル内にヒットしたかどうかに関する情報を前記バス負荷として前記DMA制御装置へ送信する。
〔8〕項4のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムは、前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有する。前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるCPUからメモリアクセス回数の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有する。前記アップローダは、前記プロファイラで求められた前記CPUからのメモリアクセス回数の閾値および計測周期をプログラムと一緒に出力する。これにより、項4のデータ処理システムはこのプログラム開発システムで生成されたプログラムの実行に対して適応的なメモリアクセス回数の閾値および計測周期を用いることが可能になる。
〔9〕項5記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムは、前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有する。前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるバッファ空き容量の積分値の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有する。前記アップローダは、前記プロファイラで求められた前記バッファ空き容量の積分値の閾値および計測周期をプログラムと一緒に出力する。これにより、項5のデータ処理システムはこのプログラム開発システムで生成されたプログラムの実行に対して適応的なバッファ空き容量の積分値の閾値および計測周期を用いることが可能になる。
〔10〕項6記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムは、前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有する。前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるキャッシュミス回数の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有する。前記アップローダは、前記プロファイラで求められた前記キャッシュミス回数の閾値および計測周期をプログラムと一緒に出力する。これにより、項6のデータ処理システムはこのプログラム開発システムで生成されたプログラムの実行に対して適応的なキャッシュミス回数の閾値および計測周期を用いることが可能になる。
〔11〕項7記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムは前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有する。前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるCPUからのメモリアクセス回数の少ないルーチンまたはタスクにおけるプログラムカウンタの開始値および範囲を示すルックアップテーブルを求めるプロファイラと、を有する。前記アップローダは、前記プロファイラで求められたルックアップテーブルをプログラムと一緒に出力する。これにより、項7のデータ処理システムはこのプログラム開発システムで生成されたプログラムの実行に対して適応的なプログラムカウンタの開始値および範囲を示すルックアップテーブルを用いることが可能になる。
2.実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
《実施形態1》
図1は本発明の第1の実施形態に係るデータ処理システムが例示される。データ処理システム1はデータプロセッサ若しくはマイクロコンピュータのような1チップであってもよいし、オンボードのマルチチップシステムであってもよい。データ処理システム1はそのプログラム開発システムとしての開発環境2と共に図示され、データ処理システム1を便宜上ターゲット機器1とも称する。
ターゲット機器1はCPU11、DMA制御装置(DMAC)12、DRAM14、バス調停回路13、プログラムI/F16、プログラム専用RAM(ランダムアクセスメモリ)15から成り立っている。DRAM14は特に制限されないがクロック同期動作されるシンクロナスDRAMとされる。
ターゲット機器1は、開発環境2からプログラムインタフェース(プログラムI/F)16を介して受信してプログラム専用RAM15またはDRAM14にプログラムS05を格納し、CPU11がプログラム専用RAM15またはDRAM14からプログラムS05を読み込むことによってプログラムS05を実行する。同図においてはプログラム専用RAM15からプログラムを読み込む。CPU11およびDMA制御装置12はバス17とバス調停回路13を介してDRAM14と接続している。バス調停回路13はCPU11またはDMA制御装置12におけるバス占有権の調停を行うものである。バス17にはアドレス及びデータバスを想定する。特に図示はしないがキャッシュメモリはCPU11のブロックに含まれるものと理解された。
開発環境2はホストPC(パーソナルコンピュータ)25にOS(オペレーティングシステム)24が搭載されており、OS24上で動作するビルダ22とアップローダ23、そしてビルダ22によって実行形式になるプログラム21から成り立っている。プログラム21はターゲット機器1上で動作するプログラムS05に対応するソースプログラムのことを指し、ビルダ22によって実行形式のプログラムS05に変換され、アップローダ23によってターゲット機器1へ転送される。ターゲット機器1はプログラムI/F16を介して、アップローダ23によって転送されたプログラムS05をプログラム専用RAM15またはDRAM14へ格納する。
本実施形態は、バス調停回路13がバス負荷監視回路131を有することを特徴としている。バス負荷監視回路131は、CPU11からDRAMアクセス回数によるバス負荷を監視し、データ転送量を変更するか否かに関する信号S03をDMA制御装置12へ送信する。DMA制御装置12は、データ転送量を指定するレジスタを有し、単位時間あたりのアクセス回数によってデータ転送量に関する値をレジスタへ設定する。レジスタの設定項目は、仮に32バイトをC1、64バイトをC2、32バイト/64バイト自動切換をC3とする。
図2はDMA制御装置12の詳細図である。DMA制御装置12は、各種レジスタ類124、レジスタ制御回路121、各種制御回路122、バスI/F123から構成されている。各種レジスタ類124は、DMA制御装置12の動作設定に関する情報を蓄積するものである。レジスタ制御回路121は、各種レジスタ類124内の情報を読み込んだり書き込んだりするものである。各種制御回路122はDMA制御装置12の挙動を制御するものであり、DMAアクセス要求S02の優先順位を決める要求優先制御部、DMA転送の起動を開始したり終了したりする起動制御部、DMA転送回数をカウントしたりリセットしたりする回数制御部などが含まれる。
本発明においては、DMA転送サイズ指定要求を受けてレジスタ制御回路121が各種レジスタ類124へDMA転送サイズ指定に関する情報を書き込む。各種制御回路122はDMA転送要求に従って各種レジスタ類124の内容やバス17からの各種信号を読み取り、バスI/F123を介してバスへDMAアクセス要求S02を各デバイスへ送信する。
図3は各種レジスタ類124の詳細図である。各種レジスタ類124には、DMAの転送モードおよび転送サイズなどに関する設定情報を格納するDMA制御レジスタ1241、DMA転送によって転送されるデータのアドレスおよび転送先のアドレスを格納するDMA転送元/転送先設定レジスタ1242、DMA転送時におけるチャネルの優先順位やDMAの転送状態を格納するDMA操作レジスタ1243、USB(ユニバーサル・シリアル・バス)やSCI/F(シリアル・コミュニケーション・インタフェース)などの外部デバイスに対してDMA転送を行う際に転送要求元ないし転送要求先を指定するDMA拡張リソースレジスタ1244、DMA転送回数を指定するDMA転送回数レジスタ1245から成り立っている。DMA制御レジスタ1241には、DMA転送サイズ指定ビット12411、DMA転送モード指定ビット12412、その他の設定ビット12415、予約ビット12416などから構成されている。DMA転送サイズ指定ビットを変更することにより、サイクルスチールモードにおける転送サイズ候補のうち1つを選択することが可能である。また、DMA転送モード指定ビットを変更することにより、転送モードをサイクルスチールモードまたはバーストモードのいずれか1つを選択することが可能である。
本発明においては、DMA制御レジスタ1241においてDMA転送モード指定ビット12412やDMA転送サイズ指定ビット12411の他に、DMA転送モード自動切換ビット12414やDMA転送サイズ自動切換ビット12413を有することを特徴とする。DMA転送モード自動切換ビット12414を1にすることにより、レジスタ書込内容S09で指定するDMA転送モードの代わりに、DMA転送モード指定要求S33の指定したDMA転送モードの値を使用する(これについては図21を参照して後述する)。また、DMA転送サイズ自動切換ビット12413を1にすることにより、レジスタ書込内容S09で指定するDMA転送サイズの代わりに、DMA転送サイズ指定要求S03の指定したDMA転送サイズの値を使用する。
また、レジスタ制御回路121がDMA転送サイズ指定要求S03を受けて、DMA転送サイズ指定ビット12411を含むレジスタ書込内容をDMA制御レジスタ1241にレジスタ制御回路121が書き込んだ結果、DMA転送サイズ指定ビット12411に変更後の値が書き込まれる。その後、各種制御回路122が各種レジスタ類124からレジスタ内容を読み込み、その値からDMA転送サイズ指定ビット12411を読み込むことで、サイクルスチールモードにおいて転送サイズ分だけのデータをDMA転送する。
図4はレジスタ制御回路121の詳細図である。レジスタ制御回路121は従来のレジスタ制御回路1212に加えて、レジスタ書込内容生成部1211、レジスタ書込内容S07を各設定内容に分解するDEMUX(デマルチプレクサ)回路1213、各設定内容を合成するMUX(マルチプレクサ)回路1214から成り立っている。
本発明においては、従来のレジスタ制御回路1212によってレジスタ書込内容S07が生成されると、レジスタ制御回路121はDEMUX回路1213によってレジスタ書込内容S07を各設定内容に分解する。レジスタ書込内容生成部1211は、DMA転送サイズ指定要求S03と、各設定内容のうちDMA転送サイズ指定ビットS071から、新規のDMA転送サイズ指定ビットを生成する。
レジスタ書込内容生成部は、DMA転送サイズ指定要求S03が入力されなかった場合、新規のDMA転送サイズ指定ビットとしてDEMUXから分解されたDMA転送サイズ指定ビットS071を出力する。もしDMA転送サイズ指定要求S03が入力された場合、DMA転送サイズ指定要求S03の内容からDMAの転送サイズを判断し、レジスタに書き込むべきDMA転送サイズ指定ビットを設定、新規のDMA転送サイズ指定ビットとして出力する。MUX回路1214は新規のDMA転送サイズ指定ビットと、DEMUXにより分解されたその他の各設定内容を合成し、レジスタ書込内容S09として各種レジスタ類124に書き込む。
図5はバス調停回路13の詳細図である。
DMA制御装置12からDRAM14へのアクセス要求(以下DMAアクセス要求S02と称す)およびCPU11からDRAM14へのアクセス要求(以下CPUアクセス要求S01と称す)は、それぞれ専用のキューバッファ132ないし133に蓄積される。優先順位判定回路134は、キューバッファ132ないし133から出力された各アクセス要求S01ないしS02から選択信号S13を出力する。ここでいう選択信号S13は、DMAアクセス要求S02とCPUアクセス要求S01のうちどちらを優先して出力するかを示す。セレクタ135は選択信号S13に従って、DMAアクセス要求S02またはCPUアクセス要求S01のうちどちらかを出力する。
本発明においては、バス調停回路13はバス負荷監視回路131を有することを特徴とする。バス負荷監視回路131は、クロック信号S12とCPUアクセス要求S01から、DMA転送サイズ指定要求S03を出力する。
図6はバス負荷監視回路131の詳細図である。カウンタ13102はクロック信号S12が1クロック周期経過すると値を1インクリメントする。条件付カウンタ13101はクロック信号が1クロック周期経過し、かつCPUアクセス要求S01を検出すると値を1インクリメントする。周期格納メモリ13107は、CPUアクセス計測周期の値S19を格納する。周期格納メモリの値S19は、開発環境2によって生成され、開発環境2におけるアップローダ23によってプログラムS05と共に送信され、プログラムI/F16を介してバス調停回路13内のバス負荷監視回路131へ転送される。比較器13104はカウンタの値S15と周期格納メモリの値S19を比較し、カウンタの値S15がCPUアクセス計測周期S19以上になればCPUアクセス周期信号S17を出力し、条件付カウンタ13101およびカウンタ13102の値をリセットする。こうすることで、カウンタ13102によってCPUアクセス計測周期を計測し、条件付カウンタ13101によってCPUアクセス計測周期内におけるCPUアクセス要求が検出された時間S14を計測することができる。比較器13103は、CPUアクセス要求が検出された時間S14が閾値S18より小さければ、CPUアクセス要求S01が少ないと判定し、CPUアクセス要求S01が少ないときのDMA転送サイズ指定要求S16、たとえば0/1信号における1を出力する。サンプル&ホールド回路13105は、CPUアクセス計測周期の信号S17を読み取り、DMA転送サイズ指定要求S16の値を次のCPUアクセス計測周期分だけ保持して出力する。ここでDMA転送サイズ指定要求S16は、0がDMA転送サイズ32バイト、1がDMA転送サイズ64バイトとする。閾値の値S18は、開発環境2によって生成され、アップローダ23によってプログラムS05と共に送信され、プログラムI/F16を介してバス調停回路13内のバス負荷監視回路131へ転送される。
図18はビルダ22の詳細図、図19はバス負荷監視回路131におけるCPUからのDRAMアクセス回数の閾値S18および計測周期S19のビルダ22による計算処理フローである。ビルダ22は、プログラム21をC言語やJava(登録商標)言語などの各種言語から機械語へ変換するコンパイラ221、コンパイラ221によって機械語へ変換されたものを接続させて実行形式にするリンカ222、リンカ222の内容をPC25上で擬似的に実行するシミュレータ223、シミュレータ223上のプログラム実行結果からCPUアクセス負荷を計測するプロファイラ224から成り立っている。ここで、シミュレータ223内にはターゲット機器1と同様のキャッシュメモリ112を模擬する機能があり、プロファイラ224はシミュレータ223上のプログラム実行時におけるキャッシュミス発生回数をカウント可能であることを前提する。
ビルダ22は、まずプログラム21をコンパイラ221でコンパイルし(F06)、リンカ222でリンクすることによりプログラムの実行形式を仮に作成する(F07)。次にシミュレータ223でプログラムの実行形式を用いてプログラムを実行する。プロファイラ224はプログラムにおけるキャッシュミス回数およびDMAからのDRAMアクセスのバスサイクル間隔を計測する(F10、F11)。図中LPで参照されるシンボルはそれによって挟まれた処理(F10)が複数回繰り返されることを意味する。DMAからのDRAMアクセスのバスサイクル間隔については、DMA制御装置12のレジスタにより一定バスサイクル間隔にアクセスするとプログラムによって設定された場合(F08)、DMAからのDRAMアクセスのバスサイクル間隔をレジスタ設定から求める(F09)。プロファイラ224はDMAからのDRAMアクセスの時間間隔を、CPUからのDRAMアクセス回数の計測周期S19(dT)とする(F12)。
またプロファイラ224は、DRAMアクセスによるレイテンシを除いたプログラム実行バスサイクルTを計測し(F10)、複数回のキャッシュミス回数から平均値を求めCPUアクセス要求の数Nとする(F13)。プロファイラ224はCPUからのDRAMアクセス回数の閾値nを下記の式により計算する(F14)。
n=ceil(N×dT/T) (N<T−T/dT)
n=dT−1 (N≧T−T/dT)
ここで、関数ceil (x)は、xの小数点切り上げ関数とする。n=0のときは完全にCPU優先、n=dTのときは完全にDMA優先になってしまい、DMA転送サイズ切り替えの意味がなくなってしまうため、1≦n≦dT-1とする。
コンパイラ221はCPU11からのDRAMアクセス回数の閾値S18および計測周期S19、閾値S18および計測周期S19をバス負荷監視回路131へ転送するルーチンの書かれたソースファイルをコンパイルし、リンカ222はルックアップテーブルを他のルーチンとリンクし、実行ファイルを作成する。
以上のようにバス負荷監視回路131におけるCPU11からのDRAMアクセス回数の閾値S18および計測周期S19をビルダ22によって計算しターゲット機器1へ転送することにより、プログラムにおけるCPU11からのDRAMアクセスの回数によってCPU優先にするかDMAC優先にするかを決めることができる。
なお、基本的にCPU11からのDRAMアクセス回数はDMAC12からのDRAMアクセス回数より少ないので、CPU11からのDRAMアクセス回数の閾値S18を1としてもよい。
図26はDRAMへのアクセス要求S04の詳細図であり、DMAアクセス要求S02もCPUアクセス要求S01もこれに該当する。アクセス要求S04の内訳は公知のものと同様であり、アクセス要求元識別子S041、アクセス先メモリアドレスS042、アクセスサイズS043、リード/ライトの区別S044から成り立っており、リード/ライトの区別S044がライトのときは書き込みデータS045も含むものとする。バス負荷監視回路131においては、このアクセス要求データS01が送られてきたかどうかを判別してバス負荷を計測する。
図27はDRAM14の第1の動作タイミングチャートである。上段は従来の公知技術による転送サイズ32バイト固定時におけるDRAM14の動作タイミングチャートT01を、下段は本発明による転送サイズ自動切換時におけるDRAM14の動作タイミングチャートT02を、それぞれ示している。図においてHDはDRAM14アクセスのためのローアドレスの設定等に要する初期動作を意味し、DMA32BはDMACによる32バイトサイクルスチールモードによるDRAM14のメモリ動作、DMA64BはDMACによる64バイトサイクルスチールモードによるDRAM14のメモリ動作を意味する。
HDはDRAM14アクセスにおけるオーバーヘッド時間T03を、DMA32Bは32バイトアクセスにかかる時間T04を、DMA64Bは64バイトアクセスにかかる時間T05を、それぞれ示している。本発明におけるDMA転送サイズの初期値は32バイトとする。
本発明の方の下段のタイムチャートにおいては、CPUアクセス計測期間T10においてCPUアクセスが少ないことを確認した後、DMA転送量切換タイミングT06からDMA転送量を64バイトに増やす。DMAデータの転送時間自体は32バイト固定に比べて2倍かかるものの、HDによるオーバーヘッド時間が32バイトアクセス時も64バイトアクセス時も等しいため、32バイトアクセスを4回行ったときと64バイトアクセスを2回行ったときでは64バイトアクセスのほうがオーバーヘッド時間分だけアクセス時間を短縮できる。
図28はDRAM14の第2の動作タイミングチャートである。上段は従来の公知技術による転送サイズ64バイト固定時におけるDRAM14のタイムチャートT16を、下段は本発明による転送サイズ自動切換時におけるDRAM14のタイムチャートT02を、それぞれ示している。本発明におけるDMA転送サイズの初期値は64バイトとする。図においてCPUはCPUによるDRAM14のメモリ動作を意味し、HD、DMA32B、DMA64Bの意味は図27と同じである。
本発明の方の下段のタイムチャートにおいては、CPUアクセス計測期間T10においてCPUアクセスが多いことを確認した後、DMA転送量切換タイミングT06からDMA転送量を32バイトに減らす。64バイト固定時においてDMAアクセスが完了しない分だけCPUアクセスが遅れるのに対し、本発明においてはDMAアクセスの時間がオーバーヘッド時間と32バイトアクセス時間との和になっている。64バイトアクセス時間から32バイトアクセス時間を引いた値分だけCPUアクセスを早く行うことができる。
《実施形態2》
図7は本発明の第2の実施形態における、バス調停回路13の詳細図である。本発明においては、第1の実施形態とはバス負荷監視回路131におけるバス監視方式が相違される。CPUアクセス要求側のキューバッファ133はバッファ空き容量S20を出力し、バス負荷監視回路131はクロック信号S12とバッファ空き容量S20からDMA転送サイズ指定要求S03を出力する。バス負荷監視回路131はCPUアクセス要求S01の代わりに、CPUアクセス要求S01を蓄積するキューバッファ133の空き容量S20を用いることで、CPUアクセスに関するバス負荷を監視している。例えばキューバッファ133のライトポインタとリードポインタは空(記憶データ無し)の状態で値が一致され、書き込み毎にライトポインタがインクリメントされ、読出し毎にリードポインタがインクリメントされ、リードポインタはライトポインタの値を追い抜くことはないとすると、前記バッファ空き容量S20はライトポインタの値に対するリードポインタの値の差になる。
図8は図7のバス負荷監視回路131の詳細図である。積分器13108はCPUアクセス計測周期S23の間だけバッファ空き容量S20を積分する。比較器13103は、バッファ空き容量の時間積分値S21が閾値S22より大きければCPUアクセス要求S01が少ないと判定し、CPUアクセス要求S01が少ないときのDMA転送サイズ指定要求S16、たとえば0/1信号における1を出力する。サンプル&ホールド回路13105は、CPUアクセス周期の信号S17を読み取り、DMA転送サイズ指定要求の値S16を次のCPUアクセス計測周期S23分だけ保持して出力する。
なお、バス負荷監視回路131におけるバッファ空き容量時間積分値の計測間隔S23のビルダ22による計算処理については、実施形態1におけるCPUからのDRAMアクセス回数の計測周期S19の計算と同じであるが、バッファ空き容量時間積分値の閾値S22(n)については下記の計算式で求めるものとする。
n=dtx - dT (dT<dtx<M(dT+1))
ここで、dtxはCPUからのDRAMアクセスの最長バスサイクル数として希望する値、Mはバッファ最大容量とする。n=0のときは完全にCPU優先、n=MdTのときは完全にDMA優先になってしまい、DMA転送サイズ切り替えの意味がなくなってしまうため、1≦n<MdTとする。
なお、基本的にCPUからのDRAMアクセス回数はDMAからのDRAMアクセス回数より少ないのでバッファ空き容量時間積分値の閾値S22を1としてもよい。
《実施形態3》
図9には本発明の第3の実施形態に係るデータ処理システム(ターゲット機器)1がその開発環境2と共に示される。第1及び第2の実施形態と異なる点は、CPU11がCPUアクセス要求S01のほかにキャッシュミス信号S24をバス調停回路13内のバス負荷監視回路131へ出力し、バス負荷監視回路131はキャッシュミス信号S24からバス負荷を計算してDMA転送サイズ指定要求S03を出力するところである。バス負荷監視回路131は、CPUアクセス要求S01の代わりにキャッシュミス信号S24を用いることで、CPUアクセスに関するバス負荷を監視している。
図10は図9におけるCPU11の詳細図である。CPUコア111はキャッシュメモリ112に対してキャッシュアクセス要求S25を行い、キャッシュメモリ112は要求S25の内容に応じてキャッシュ内データS26をCPUコア111へ送信する。キャッシュミスしたとき、キャッシュメモリ112はDRAM14に対してCPUアクセス要求S01を送信する。またキャッシュメモリ112は、キャッシュミス信号S24を含むデバッグ用データS27の出力機能を有する。
第3の実施形態では、キャッシュメモリ112から出力されたキャッシュ関連デバッグ用データS27をDEMUX回路113により各データに分解し、そのデータをMUX回路114で合成すると同時に、キャッシュミス信号S24をバス負荷監視回路131へ送信する。
図11は第3の実施形態におけるバス調停回路13の詳細図である。実施形態1及び2との相違点は、バス負荷監視回路131の入力がCPUアクセス要求S01またはバッファ空き容量S20ではなく、キャッシュミス信号S24であることである。
図12は第3の実施形態におけるバス負荷監視回路131の詳細図である。実施形態1と違うのは、条件付カウンタ13111は、クロック信号が1クロック周期経過し、かつキャッシュミス信号S24が1であるときに値を1インクリメントすることである。
比較器13103は、キャッシュミス信号S24が1であるときの時間が閾値S29より小さければCPUアクセス要求S01が少ないと判定し、CPUアクセス要求S01が少ないときのDMA転送サイズ指定要求S16、たとえば0/1信号における1を、次のCPUアクセス計測周期S30分だけ出力する。サンプル&ホールド回路13105は、CPUアクセス周期の信号S17を読み取り、DMA転送サイズ指定要求の値S16を次のCPUアクセス計測周期S30分だけ保持して出力する。
なお、バス負荷監視回路131におけるキャッシュミス回数の閾値S29および計測周期S30のビルダ22による計算処理については、実施形態1におけるCPUからのDRAMアクセス回数の閾値S18および計測周期S19の計算と同じであってよい。
《実施形態4》
図13には本発明の第4の実施形態に係るデータ処理システム(ターゲット機器)1がその開発環境2と共に例示される。第1ないし第3の実施形態と異なる点は、CPU11がCPUアクセス要求S01のほかにプログラムカウンタの値S31をバス調停回路13内のバス負荷監視回路131へ出力し、バス負荷監視回路131はプログラムカウンタの値S31からバス負荷を計算してDMA転送サイズ指定要求S03を出力することである。バス負荷監視回路131は、CPUアクセス要求S01の代わりにプログラムカウンタの値S31を用いることで、CPUアクセスに関するバス負荷を監視している。
図14は第4の実施形態におけるCPU11の詳細図である。第3の実施形態と大きく異なる点は、CPUコア111から出力されたCPU関連デバッグ用データS32をDEMUX回路115により各データ群に分解し、そのデータ群をMUX回路116で合成すると同時に、データ群の中にあるプログラムカウンタの値S31をバス負荷監視回路131へ送信することである。
図15は第4の実施形態におけるバス調停回路13の詳細図である。第1ないし第3の実施形態とは異なるのは、バス負荷監視回路131はCPUアクセス要求S01およびクロック信号S12の代わりに、プログラムカウンタの値S31を用いることで、CPUアクセスに関するバス負荷を監視しているところである。
図16は第4の実施形態におけるバス負荷監視回路131の詳細図であり、図17は第4の実施形態におけるバス負荷監視回路131の処理フローである。バス負荷監視回路131は、ルックアップテーブル13114から構成されている。ルックアップテーブル13114には、システム上で動作するプログラムにおいて、CPUアクセス負荷の多いルーチンまたはスレッドにおけるプログラムカウンタ開始値131141および範囲131142が記載されている。プログラムカウンタの値S31がプログラムカウンタ開始値131141から範囲131142の内にあれば、CPUアクセス要求が少ないと判定し、CPUアクセス要求が少ないときのDMA転送サイズ指定要求、たとえば0/1信号における1を、プログラムカウンタS31が範囲131142から出るまで出力する。
図20は第4の実施形態におけるビルダ22によるルックアップテーブル13114作成処理フローである。ビルダ22はまずプログラム21をコンパイラ221でコンパイルし(F06)、リンカ222でリンクすることによりプログラムの実行形式を仮に作成する(F07)。次にシミュレータ223でプログラムの実行形式を用いてプログラムを実行する。プロファイラ224はプログラム内のルーチンまたはスレッドの単位でキャッシュミス発生回数をカウント、およびプログラムカウンタの開始値131141および範囲131142を計測する(F10)。シミュレータとプロファイラはプログラムのパラメータを複数回変更してプログラムを実行し、キャッシュミス回数を計測する。複数回のキャッシュミス回数から平均値を求め、CPUアクセス要求の数とする(F22)。プロファイラ224はルーチンまたはタスクのCPUアクセス要求数を低い順にソートし、CPUアクセスの少ないルーチンまたはタスクにおけるプログラムカウンタ開始値131141および範囲131142を抽出してルックアップテーブル13114の内容を作成する。プロファイラ224はルックアップテーブル13114の内容をプログラムのソースファイルに変換し、プログラムの初期化においてルックアップテーブル13114の内容をバス負荷監視回路131へ転送するルーチンを動かすようプログラムのソースファイルを書き換える(F23)。
コンパイラ221はルックアップテーブル13114の書かれたソースファイル、およびルックアップテーブル13114の内容をバス負荷監視回路131へ転送するルーチンの書かれたソースファイルをコンパイルし(F15)、リンカ222はルックアップテーブル13114を他のルーチンとリンクし(F16)、実行ファイルを作成する。
以上のようにルックアップテーブル13114をバス負荷監視回路131に設置してプログラムカウンタの値S31を読み込むことで、たとえばCPU負荷の低いメモリとのデータ読み書きルーチンなどに関してはDMA転送サイズを増やして転送効率を上げることができ、CPU負荷の高い計算ルーチンにおいてはDMA転送サイズを減らしてCPUでのメモリアクセスを迅速にすることが可能である。
《実施形態5》
図21には本発明の第5の実施形態に係るデータ処理システム(ターゲット機器)1がその開発環境2と共に例示される。第1ないし第4の実施形態と異なる点は、DMA転送効率を上げるために、バス負荷監視回路131がDMA転送サイズ指定要求S03の代わりにDMA転送モード指定要求S33を出力し、DMA制御装置12におけるDMA転送モードを変更することである。要するに、CPUアクセスが少なければ、即ち所定の閾値を超えなければDMA転送モードをバーストモードとし、CPUアクセスが多ければ、即ち所定の閾値を超えればDMA転送モードをサイクルスチールモードとする。この場合の制御手法は前述の説明から極めて容易に類することができる内容であるからその詳細な説明は省略する。
《実施形態6》
図22には本発明の第6の実施形態に係るデータ処理システム(ターゲット機器)1がその開発環境2と共に例示される。第1ないし第5の実施形態と異なる点は、DMA転送効率を上げるために、バス負荷監視回路131がDMA転送サイズ指定要求S03およびDMA転送モード指定要求S33の両方を出力し、DMA制御装置12におけるDMA転送サイズおよびDMA転送モードを変更することである。
図23は第6の実施形態におけるバス調停回路13の詳細図である。実施形態1ないし5と違う点は、DMA転送モード指定要求用とDMA転送サイズ指定要求用とでバス負荷監視回路をそれぞれ1つずつ有するところである。DMA転送モードのほうがDMA転送サイズに比べてDMAの転送効率を向上させることができる反面、CPUからのDRAMアクセスを阻害する恐れがあるため、DMA転送モード指定要求用閾値をDMA転送サイズ指定要求用閾値より高く、DMA転送モード指定要求用計測周期をDMA転送サイズ指定要求用計測周期より長めに、それぞれ設定する。具体的には、DMA転送モード指定要求用閾値および計測周期をDMA転送サイズ指定要求用閾値の整数倍とする。
《実施形態7》
図24には本発明の第7の実施形態に係るデータ処理システム(ターゲット機器)1がその開発環境2と共に例示される。第1ないし第6の実施形態と異なる点は、CPUがCPUアクセス要求S01のほかにプログラムカウンタ値S31を出力しており、かつバス負荷監視回路がDMA転送サイズ指定要求S03およびDMA転送モード指定要求S33の両方を出力し、DMA制御装置12におけるDMA転送サイズおよびDMA転送モードを変更することである。
図25は本発明の第7の実施形態における、バス負荷監視回路131の処理フローである。プログラムカウンタの値S31がプログラムカウンタ開始値131141から範囲131142の内にあれば(F02)、CPUアクセス要求S01が少ないと判定し、CPUアクセス要求S01が少ないときのDMA転送サイズ指定要求S03、たとえば0/1信号における1を、プログラムカウンタ値が範囲から出るまで出力する(F04ないしF05)。さらに、プログラムカウンタの値S03がルックアップテーブル13114のうち上位n番目に入っていれば(F19)、ルックアップテーブル13114はCPUアクセス要求S01が少ない順にソートされているため、CPUアクセス要求S01がさらに少ないと判定し、CPUアクセス要求S01が少ないときのDMA転送モード指定要求S33、たとえば0/1信号における1を、プログラムカウンタが範囲から出るまで出力する。ここでDMA転送モード指定要求S07の値が0のときはサイクルスチールモードを、1のときはバーストモードを示す。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
本発明は、DMACを備えたマイクロコンピュータ又はデータプロセッサだけでなく各種SoCにも広く適用することができる。プログラム開発システムとしての開発環境はPCに構築されることに限定されず、エンジニアリングワークステーション等で構築することも可能である。CPUやDMACがアクセスするメモリがDRAMに限定されずその他のメモリであってもよい。
本発明の第1の実施形態である、データ処理システムの全体図である。 本発明の第1の実施形態におけるデータ処理システムの詳細図である。 本発明の第1の実施形態における各種レジスタ類の詳細図である。 本発明の第1の実施形態におけるレジスタ制御回路の詳細図である。 本発明の第1の実施形態におけるバス調停回路の詳細図である。 本発明の第1の実施形態におけるバス負荷監視回路の詳細図である。 本発明の第2の実施形態におけるバス調停回路の詳細図である。 本発明の第2の実施形態におけるバス負荷監視回路の詳細図である。 本発明の第3の実施形態である、データ処理システムの全体図である。 本発明の第3の実施形態におけるCPUの詳細図である。 本発明の第3の実施形態におけるバス調停回路の詳細図である。 本発明の第3の実施形態におけるバス負荷監視回路の詳細図である。 本発明の第4の実施形態である、データ処理システムの全体図である。 本発明の第4の実施形態におけるCPUの詳細図である。 本発明の第4の実施形態におけるバス調停回路の詳細図である。 本発明の第4の実施形態におけるバス負荷監視回路の詳細図である。 本発明の第4の実施形態におけるバス負荷監視回路の処理フローである。 本発明の第1の実施形態におけるビルダの詳細図である。 本発明の第1の実施形態におけるDRAMアクセス回数の閾値S18および計測周期S19のビルダ22による計算処理フローである。 本発明の第4の実施形態における、ビルダによるルックアップテーブル作成処理フローである。 本発明の第5の実施形態である、データ処理システムの全体図である。 本発明の第6の実施形態である、データ処理システムの全体図である。 本発明の第6の実施形態におけるバス負荷監視回路の詳細図である。 本発明の第7の実施形態である、データ処理システムの全体図である。 本発明の第7の実施形態におけるバス負荷監視回路の処理フローである。 本発明の第1の実施形態におけるDRAMへのアクセス要求の詳細図である。 本発明の第1の実施形態におけるDRAMの第1のタイムチャートである。 本発明の第1の実施形態におけるDRAMの第2のタイムチャートである。
符号の説明
1 ターゲット機器
11 CPU
111 CPUコア
112 キャッシュ
113 キャッシュ用デマルチプレクサ
114 キャッシュ用マルチプレクサ
115 CPUコア用デマルチプレクサ
116 CPUコア用マルチプレクサ
12 DMA制御装置(DMAC)
121 レジスタ制御回路
1211 レジスタ書込内容生成部
1212 従来のレジスタ制御回路
1213 デマルチプレクサ
1214 マルチプレクサ
122 各種制御回路
123 バスI/F
124 各種レジスタ類
125 DMA制御装置内部バス
13 バス調停回路
131 バス負荷監視回路
13101 条件付カウンタ
13102 タイマ用カウンタ
13103 DMA転送サイズ判定用比較器
13104 タイマ信号生成用比較器
13105 サンプル&ホールド回路
13106 CPUアクセス要求数閾値格納メモリ
13107 CPUアクセス要求数計測周期格納メモリ
13108 バッファ空き容量時間積分器
13109 バッファ空き容量時間積分閾値格納メモリ
13110 バッファ空き容量時間積分値計測周期格納メモリ
13111 キャッシュミス信号数用条件付カウンタ
13112 キャッシュミス信号数閾値格納メモリ
13113 キャッシュミス信号計測周期格納メモリ
13114 ルックアップテーブル
131141 プログラムカウンタ開始値
131151 プログラムカウンタ範囲
132 DMA用キューバッファ
133 CPU用キューバッファ
134 優先順位判定回路
135 セレクタ
14 DRAM
15 プログラム専用RAM
16 プログラムI/F
17 バス
2 開発環境
21 プログラム
22 ビルダ
221 コンパイラ
222 リンカ
223 シミュレータ
224 プロファイラ
23 アップローダ
24 OS
25 PC
S01 CPUアクセス要求
S02 DMAアクセス要求
S03 DMA転送サイズ指定要求
S04 DRAMアクセス
S041 アクセス要求元識別子
S042 アクセス先アドレス
S043 アクセスサイズ
S044 リード/ライト判別子
S045 書き込みデータ
S05 プログラム実行形式
S06 プログラム内命令
S07 レジスタ書込内容
S071 DMA転送サイズ指定ビット
S08 各種信号
S09 レジスタ書込内容(DMA転送サイズ指定要求反映後)
S10 各種レジスタ初期化信号
S11 レジスタ内容
S12 クロック信号
S13 選択信号
S14 CPUアクセス要求数
S15 タイマ用カウンタ信号
S16 DMA転送サイズ指定要求連続値
S17 タイマ信号
S18 CPUアクセス要求数閾値信号
S19 CPUアクセス要求数計測周期信号
S20 CPU用キューバッファ空き容量
S21 CPU用キューバッファ空き容量時間積分値
S22 CPU用キューバッファ空き容量時間積分閾値
S23 CPU用キューバッファ空き容量時間積分値計測周期
S24 キャッシュミス信号
S25 キャッシュアクセス要求
S26 キャッシュ内データ
S27 キャッシュ関連デバッグ用データ
S28 キャッシュミス信号数
S29 キャッシュミス信号数閾値
S30 キャッシュミス信号数計測周期
S31 プログラムカウンタ値
S32 CPU関連デバッグ用データ
S33 DMA転送モード指定要求
C1 DMA転送サイズ32バイト設定
C2 DMA転送サイズ64バイト設定
C3 DMA転送サイズ32バイト/64バイト自動切換設定
C4 DMA転送サイクルスチールモード設定
C5 DMA転送バーストモード設定
C6 DMA転送サイクルスチール/バースト自動切換モード設定
C7 DMA転送量・転送方法自動切換モード設定
F01 プログラムカウンタ開始値+範囲計算処理
F02 プログラムカウンタ値判定処理
F03 ルックアップテーブル全文読込完了判定処理
F04 DMA転送サイズ0指定処理
F05 DMA転送サイズ1指定処理
F06 プログラムのコンパイル処理
F07 プログラムのリンク処理
F08 DMAアクセス間隔判定処理
F09 レジスタ設定値からDMAアクセス間隔を求める処理
F10 シミュレーション実行処理
F11 プロファイラ計測結果からDMAアクセス間隔を求める処理
F12 CPUアクセス計測間隔算出処理
F13 CPUアクセス要求数平均値算出処理
F14 CPUアクセス要求閾値計算処理
F15 プログラム再コンパイル処理
F16 プログラム再リンク処理
F17 プログラムアップロード処理
F18 ルックアップテーブル作成処理
F19 ルックアップテーブル順位判定処理
F20 DMA転送モード0設定処理
F21 DMA転送モード1設定処理
F22 CPUアクセス回数計算処理
T01 DMA転送サイズ32バイト固定時タイムチャート
T02 DMA転送サイズ自動切換時タイムチャート
T03 DRAMアクセスのオーバーヘッド時間
T04 DMAによる32バイトDRAMアクセスにかかる時間
T05 DMAによる64バイトDRAMアクセスにかかる時間
T06 DMA転送量切換タイミング境界線
T07 DMA転送量切換タイミング境界印
T08 DMA転送サイズ自動切換時の転送完了を示す境界線
T09 DMA転送サイズ32バイト固定時の転送完了を示す境界線
T10 CPUアクセス計測期間を示す矢印
T11 DMA転送サイズ自動切換時と固定時とのアクセス時間差
T12 CPUからのDRAMアクセスにかかる時間
T13 DMA転送サイズ自動切換時のCPUアクセス完了を示す境界線
T14 DMA転送サイズ固定時のCPUアクセス完了を示す境界線
T15 DMA転送サイズ自動切換時と固定時とのCPUアクセス時間差
T16 DMA転送サイズ64バイト固定時タイムチャート

Claims (11)

  1. データ転送量およびデータ転送方法が設定されるレジスタを有するDMA制御装置と、メモリへのアクセスにおいてCPU又は前記DMA制御装置の間でバス占有権を調停するバス調停回路とを有するデータ処理システムにおいて、
    前記バス調停装置は、前記CPUからの前記メモリに対するアクセスによるバス負荷を定期的に計測してそのバス負荷情報を前記DMA制御装置へ送信するバス負荷監視回路を有し、
    前記DMA制御装置は、前記バス負荷監視回路から受取ったバス負荷情報が所定のバス負荷を超えているときデータ転送制御によるデータ転送量を少なくする制御を行う、データ処理システム。
  2. 前記データ転送制御によるデータ転送量を少なくする制御は、サイクルスチールモードにおける1回のデータ転送量を減らす制御である、請求項1記載のデータ処理システム。
  3. 前記データ転送制御によるデータ転送量を少なくする制御は、データ転送制御モードをバーストモードからサイクルスチールモードに変更する制御である、請求項1記載のデータ処理システム。
  4. 前記バス負荷監視回路は、一定時間における前記CPUからのメモリアクセス回数を計測し、アクセス回数が閾値以上かどうかを表す信号を前記バス負荷情報として求める、請求項1項記載のデータ処理システム。
  5. 前記バス調停装置は、前記CPUからのメモリアクセス要求を一時的に蓄積し、空き記憶容量を前記バス監視回路へ送信するバッファを更に有し、
    前記バス負荷監視回路は、一定時間における前記バッファのバッファ空き容量の積分値が閾値以上か否かを表す情報を前記バス負荷情報として前記DMA制御装置へ送信する、請求項1記載のデータ処理システム。
  6. 前記CPUは、キャッシュミスヒットが発生した際にキャッシュミス信号をバス調停回路へ送信するキャッシュメモリを有し、
    前記バス負荷監視回路は、一定時間におけるキャッシュミス信号発生回数を計測し、キャッシュミス信号発生回数が閾値以上かどうかを表す情報を前記バス負荷情報として前記DMA制御装置へ送信する、請求項1記載のデータ処理システム。
  7. 前記CPUは実行すべき命令のアドレスを示すプログラムカウンタの値をバス調停回路へ出力し、
    前記バス負荷監視回路は、前記CPUからのメモリアクセス回数の少ないルーチンまたはタスクにおけるプログラムカウンタの開始値および範囲をルックアップテーブルとして記憶し、入力した前記プログラムカウンタの値がテーブル内にヒットしたかどうかに関する情報を前記バス負荷として前記DMA制御装置へ送信する、請求項1記載のデータ処理システム。
  8. 請求項4記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムであって、
    前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、
    該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有し、
    前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、
    前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるCPUからのメモリアクセス回数の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有し、
    前記アップローダは、前記プロファイラで求められた前記CPUからのメモリアクセス回数の閾値および計測周期をプログラムと一緒に出力する、プログラム開発システム。
  9. 請求項5記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムであって、
    前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、
    該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有し、
    前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、
    前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるバッファ空き容量の積分値の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有し、
    前記アップローダは、前記プロファイラで求められた前記バッファ空き容量の積分値の閾値および計測周期をプログラムと一緒に出力する、プログラム開発システム。
  10. 請求項6記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムであって、
    前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、
    該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有し、
    前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、
    前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるキャッシュミス回数の閾値および計測周期を、プログラム実行時間が最短になるように求めるプロファイラと、を有し、
    前記アップローダは、前記プロファイラで求められた前記キャッシュミス回数の閾値および計測周期をプログラムと一緒に出力する、プログラム開発システム。
  11. 請求項7記載のデータ処理システムをターゲット機器としてそのプログラムの開発を支援するプログラム開発システムであって、
    前記ターゲット機器上で動作するプログラムのソースコードを実行形式に変換するビルダと、
    該プログラム実行形式を前記ターゲット機器上へ転送するアップローダとを有し、
    前記ビルダは、ターゲット機器を模擬しプログラムを実行するシミュレータと、
    前記シミュレータによる実行結果に基づいて、前記ターゲット機器におけるメモリアクセス回数を複数回計測し、前記ターゲット機器のバス負荷監視回路におけるCPUからのメモリアクセス回数の少ないルーチンまたはタスクにおけるプログラムカウンタの開始値および範囲を示すルックアップテーブルを求めるプロファイラと、を有し、
    前記アップローダは、前記プロファイラで求められたルックアップテーブルをプログラムと一緒に出力するプログラム開発システム。
JP2008172955A 2008-07-02 2008-07-02 データ処理システム及びプログラム開発システム Expired - Fee Related JP4871921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008172955A JP4871921B2 (ja) 2008-07-02 2008-07-02 データ処理システム及びプログラム開発システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008172955A JP4871921B2 (ja) 2008-07-02 2008-07-02 データ処理システム及びプログラム開発システム

Publications (2)

Publication Number Publication Date
JP2010015275A true JP2010015275A (ja) 2010-01-21
JP4871921B2 JP4871921B2 (ja) 2012-02-08

Family

ID=41701354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008172955A Expired - Fee Related JP4871921B2 (ja) 2008-07-02 2008-07-02 データ処理システム及びプログラム開発システム

Country Status (1)

Country Link
JP (1) JP4871921B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012066621A1 (ja) 2010-11-15 2012-05-24 富士通株式会社 情報処理システム
US10565152B2 (en) 2017-04-27 2020-02-18 Canon Kabushiki Kaisha Transfer device, control device, transfer method, and multifunction peripheral
CN113590512A (zh) * 2021-07-30 2021-11-02 眸芯科技(上海)有限公司 可直连外设设备的自启动dma装置及应用

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012066621A1 (ja) 2010-11-15 2012-05-24 富士通株式会社 情報処理システム
US9043507B2 (en) 2010-11-15 2015-05-26 Fujitsu Limited Information processing system
US10565152B2 (en) 2017-04-27 2020-02-18 Canon Kabushiki Kaisha Transfer device, control device, transfer method, and multifunction peripheral
CN113590512A (zh) * 2021-07-30 2021-11-02 眸芯科技(上海)有限公司 可直连外设设备的自启动dma装置及应用
CN113590512B (zh) * 2021-07-30 2023-09-29 眸芯科技(上海)有限公司 可直连外设设备的自启动dma装置及应用

Also Published As

Publication number Publication date
JP4871921B2 (ja) 2012-02-08

Similar Documents

Publication Publication Date Title
KR102668599B1 (ko) 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링
EP1899828B1 (en) Device and method for arbitrating between direct memory access task requests
US7437618B2 (en) Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US8527812B2 (en) Information processing device
EP1899825B1 (en) Device and method for controlling multiple dma tasks
US7421619B2 (en) Method in a processor for performing in-memory tracing using existing communication paths
US7913123B2 (en) Concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
US20090007076A1 (en) Synchronizing Triggering of Multiple Hardware Trace Facilities Using an Existing System Bus
JP4813485B2 (ja) バーストリードライト動作による処理装置
US9009368B2 (en) Interrupt latency performance counters
US20060184837A1 (en) Method, apparatus, and computer program product in a processor for balancing hardware trace collection among different hardware trace facilities
JP2007241918A (ja) プロセッサ装置
US20140129784A1 (en) Methods and systems for polling memory outside a processor thread
US8190924B2 (en) Computer system, processor device, and method for controlling computer system
JP4871921B2 (ja) データ処理システム及びプログラム開発システム
EP1899827A1 (en) Device and method for executing a dma task
US8812783B2 (en) Operation apparatus, cache apparatus, and control method thereof
CN112559403B (zh) 一种处理器及其中的中断控制器
CN114514504A (zh) 管理上游资源的同时进行的限流
EP3066559B1 (en) Logic analyzer for detecting hangs
US7761280B2 (en) Data processing apparatus simulation by generating anticipated timing information for bus data transfers
US8667233B2 (en) Competition testing device
JP2010134584A (ja) メモリ管理装置、メモリ管理方法およびプログラム
EP4339776A1 (en) Task scheduling method, system, and hardware task scheduler
JP2008171436A (ja) データ転送装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100326

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111025

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees