説明

情報処理装置

【課題】負荷率測定用ソフトウェアが実行されない状態でのCPU負荷率計測を行う。
【解決手段】マイクロコンピュータは、CPU(1)と、上記CPUの負荷状況を計測する負荷計測回路(50)とを含む。上記負荷計測回路は、プログラム全体の実行状態を計測可能なサイクルカウンタ(7)と、測定対象プログラムが実行されるアドレス範囲を指定するための比較範囲指定レジスタ(3)と、実行アドレスと上記比較範囲指定レジスタの出力値を逐次比較する比較判定回路(4)と、上記比較判定回路での比較結果に基づいて、実行アドレスと上記比較範囲指定レジスタの出力値との一致期間を計測するための条件一致カウンタ(6)とを含む。上記サイクルカウンタの出力値及び上記条件一致カウンタの出力値に基づいてCPU負荷状況を把握する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、さらにはそれに含まれるCPU(Central Processing Unit;中央処理装置)の占有状況(負荷状況)を把握するための技術に関する。
【背景技術】
【0002】
情報処理装置の一例としてマイクロコンピュータを挙げることができる。マイクロコンピュータは、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、その他の周辺回路を含み、公知の半導体集積回路製造技術により単結晶シリコンなどの一つの半導体基板に形成される。CPU、ROM、RAM、その他の周辺回路は、アドレス信号を伝達するためのアドレスバスや、各種データを伝達するためのデータバスを介して互いに結合される。このようなマイクロコンピュータにおいて、CPUの占有状況(負荷状況)を把握することはマイクロコンピュータでの処理の効率向上を図る上で重要とされる。CPUの占有状況(負荷状況)を把握するには、OS(Operating System)の機能や負荷率測定用ソフトウェアを追加して情報を取得する必要があった。
【0003】
尚、プログラムのCPU占有率を測定する技術について記載された文献として、特許文献1を挙げることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平04−264635号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
CPUの占有状況(負荷状況)を把握するのに負荷率測定用ソフトウェアが組み込まれる。負荷率測定用ソフトウェアは、CPU負荷率計測対象とされるマイクロコンピュータで実行されるので、負荷率測定用ソフトウェアが実行されない状態でのCPU負荷率計測を行うことができない。
【0006】
本発明の目的は、負荷率測定用ソフトウェアが実行されない状態でのCPU負荷率計測を行うための技術を提供することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
すなわち、情報処理装置は、CPUと、上記CPUの負荷状況を計測する負荷計測回路とを含む。上記負荷計測回路は、プログラム全体の実行状態を計測可能なサイクルカウンタと、測定対象プログラムが実行されるアドレス範囲を指定するための比較範囲指定レジスタと、実行アドレスと上記比較範囲指定レジスタの出力値を逐次比較する比較判定回路と、上記比較判定回路での比較結果に基づいて、実行アドレスと上記比較範囲指定レジスタの出力値との一致期間を計測するための条件一致カウンタとを含む。上記サイクルカウンタの出力値及び上記条件一致カウンタの出力値に基づいてCPU負荷状況を把握する。
【発明の効果】
【0010】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0011】
すなわち、負荷率測定用ソフトウェアが実行されない状態でのCPU負荷率計測を行うことができる。
【図面の簡単な説明】
【0012】
【図1】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図2】図1に示されるマイクロコンピュータに含まれる負荷計測回路の構成例ブロック図である。
【図3】図1に示されるマイクロコンピュータにおけるメモリマップの説明図である。
【図4】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図5】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図6】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図7】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図8】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図9】図8に示される構成を採用した場合のメモリマップの説明図である。
【図10】図1に示されるマイクロコンピュータに含まれる負荷計測回路の別の構成例ブロック図である。
【図11】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図12】図11に示されるマイクロコンピュータに含まれる負荷計測回路の構成例ブロック図である。
【図13】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図14】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【発明を実施するための形態】
【0013】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0014】
〔1〕本発明の代表的な実施の形態に係るマイクロコンピュータ(100)は、CPU(1)と、上記CPUの負荷状況を計測する負荷計測回路(50)とを含む。上記負荷計測回路は、プログラム全体の実行状態を計測可能なサイクルカウンタ(7)と、測定対象プログラムが実行されるアドレス範囲を指定するための比較範囲指定レジスタ(3)と、実行アドレスと上記比較範囲指定レジスタの出力値を逐次比較する比較判定回路(4)と、上記比較判定回路での比較結果に基づいて、実行アドレスと上記比較範囲指定レジスタの出力値との一致期間を計測するための条件一致カウンタ(6)とを含む。上記サイクルカウンタの出力値及び上記条件一致カウンタの出力値に基づいてCPU負荷状況を把握する。
【0015】
上記の構成によれば、上記負荷計測回路は、サイクルカウンタと、比較範囲指定レジスタと、比較判定回路と、条件一致カウンタとを含んで構成され、上記サイクルカウンタの出力値及び上記条件一致カウンタの出力値に基づいてCPU負荷状況を把握するようにしているため、負荷率測定用ソフトウェアが実行されない状態でのCPU負荷率計測を行うことができる。
【0016】
〔2〕上記〔1〕において、サイクルカウンタの出力値と、条件一致カウンタの出力値の割合を算出する比率算出回路(8)や、比率算出回路から出力される比率結果を格納する比率結果レジスタ(9)を設けることができる。
【0017】
〔3〕上記〔1〕,〔2〕において、比率結果レジスタの情報と比較する値を設定するための比率比較レジスタ、及び比率比較レジスタの出力値と、比率結果レジスタの出力値との比較結果により成立フラグを立てるための比率比較回路(11)を設けることができる。
【0018】
〔4〕上記〔1〕,〔2〕,〔3〕において、サイクルカウンタ、条件一致カウンタ、比率結果レジスタの出力値の平均値を算出する平均化回路(12)を設けることができる。
【0019】
〔5〕上記〔1〕,〔2〕,〔3〕において、条件一致カウンタピークレジスタ(15)を設けることができる。
【0020】
〔6〕上記〔1〕,〔2〕,〔3〕,〔4〕,〔5〕において、サイクルカウンタ、比較範囲指定レジスタ、比較判定回路、条件一致カウンタ、比率算出回路、比率結果レジスタ、比率比較レジスタ、比率比較回路を複数設けることができる。
【0021】
〔7〕比較範囲指定レジスタ、比較判定回路、アクセスデータラッチ、データ比較レジスタ、データ比較判定回路を含んでマイクロコンピュータを構成することができる。
【0022】
〔8〕上記〔1〕,〔2〕,〔3〕,〔4〕,〔5〕,〔6〕において、マイクロコンピュータの命令キャッシュ領域に対しても、当初のプログラムアドレスに対応した指定条件一致把握を可能とすることができる。
【0023】
〔9〕上記〔1〕,〔2〕,〔3〕において、比較結果レジスタ又は条件一致カウンタピークの値によって外部信号出力可能に構成することができる。
【0024】
〔10〕上記〔1〕,〔2〕,〔3〕において、比較結果レジスタ又は条件一致カウンタピークの値によって低消費電力制御を行うように構成することができる。
【0025】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0026】
《実施の形態1》
図1には、本発明に係る情報処理装置の一例とされるマイクロコンピュータが示される。
【0027】
図1に示されるマイクロコンピュータ100は、特に制限されないが、CPU(Central Processing Unit)1、ROM(Read Only Memory)20、RAM(Random Access Memory)30、その他の周辺回路40、及び負荷計測回路50を含み、公知の半導体集積回路製造技術により単結晶シリコンなどの一つの半導体基板に形成される。CPU1、ROM20、RAM30、その他の周辺回路40、及び負荷計測回路50は、アドレス信号を伝達するためのアドレスバスABUSや、各種データを伝達するためのデータバスDBUSを介して互いに結合される。CPU1はプログラム実行により所定の演算処理を行う。ROM20には、CPU1で実行されるプログラムが格納されている。RAM30は、CPU1での演算処理の作業領域などに利用される。その他の周辺回路40には、タイマや通信用インタフェースなどの各種周辺回路が含まれる。負荷計測回路50は、CPU1の負荷状況を算出する。
【0028】
図2には、負荷計測回路50の構成例が示される。
【0029】
図2に示される負荷計測回路50は、比較範囲指定レジスタ3、比較判定回路4、条件一致カウンタ6、サイクルカウンタ7を含んで成る。
【0030】
CPU1は、計測対象とする条件(特に制限されないが本例ではアドレス範囲)をイニシャライズ処理等において比較範囲指定レジスタ3に設定する。比較判定回路4には、上記比較範囲指定レジスタに設定された条件(A)と、負荷計測対象であるCPU1から出力されたアドレス信号(B)がアドレスバスABUSを介して伝達される。そして比較判定回路4では、サンプルクロック生成回路22から出力されるサンプルクロックCK2のサンプリングタイミングに従い常に実行アドレス比較が行われる。尚、サンプルクロックCK2は、一般的にマイクロコンピュータ100内で利用されているクロック信号を適宜に分周して形成することができる。またサンプルクロックCK2に代えて、アドレス信号の有効性を示すアドレスストローブ信号等を用いても良い。
【0031】
比較判定回路4からは、比較結果条件に合致している間、条件一致信号MATCHがアサートされる。条件一致カウンタ6は、条件一致信号MATCHのアサート期間にクロック信号CK2をカウントすることで、条件一致信号MATCHのアサート期間を計測する。サイクルカウンタ7は、条件一致信号MATCHの状態に拘わらず、常にサンプルクロックCK2をカウントすることで、プログラム全体の実行状態を計測することができる。条件一致カウンタ6及びサイクルカウンタ7はデータバスDBUSに結合されており、CPU1は、このデータバスDBUSを介して、条件一致カウンタ6の出力値及びサイクルカウンタ7の出力値を参照することができる。
【0032】
CPU1は、負荷状況を参照したいタイミングにおいて、条件一致カウンタ6の出力値及びサイクルカウンタ7の出力値を参照することにより、プログラム実行の全体に対する条件一致の割合を演算にて把握することが可能となる。プログラム実行の全体に対する条件一致の割合は、CPU1において、例えば特定タスクのプライオリティを上げ下げ調整する等の様々な負荷調整処理、制御に活用することができる。
【0033】
図3には、図1に示されるマイクロコンピュータ100のメモリマップが示される。
【0034】
CPU1の有効アドレスをH000000〜HFFFFFFとする。図3のメモリマップにおける斜線領域を計測対象範囲とした場合、H020000〜H03FFFFの範囲をCPU1によって比較範囲設定レジスタ3に設定しておくことにより、プログラム実行中のアドレスがH020000〜H03FFFFの範囲を示している間は条件一致カウンタ6のカウント値が更新される。このようにして計測対象範囲(比較範囲)内での負荷計測を行うことができる。
【0035】
尚、上記の例では、2種類のカウンタ(6,7)から一致カウントと全体カウントを把握する簡便な例であるが、除算回路を設けることで、占有率として把握可能としても良い。サイクルカウンタ7はカウンタによる構成以外に時計機能などのタイムスタンプにて全体実行カウントを取得する方法でも代用可能である。
【0036】
《実施の形態2》
図4には、上記負荷計測回路50の別の構成例が示される。図4に示される負荷計測回路50が、図2に示されるのと大きく相違するのは、比率算出回路8及び比率結果レジスタ9が設けられている点である。比率算出回路8は、条件一致カウンタ6の出力値の占める割合(プログラム実行の全体に対する条件一致の割合)を算出する。比率算出回路8での算出結果は比率結果レジスタ9に書き込まれる。
【0037】
比率算出回路8では、特に制限されないが、条件一致カウンタ6の数値がサイクルカウンタ7の数値で除算して商が求められる。比率算出回路8での比率算出結果が得られる毎に、当該比率算出結果によって比率結果レジスタ9の保持内容が更新される。このようにすることで、CPU1によって比率結果レジスタ9の読み出しが行われる時点で最新の負荷率をCPU1に提供することができる。
【0038】
上記の構成において、保存数値はレジスタのbit幅を100%とした換算数値で保存の他、直接商の有効桁を決めて保存しても良く、その書込み形式については特に制限するものでは無い。また、比率算出回路8から結果出力タイミング信号(フラグ信号FA)を出力し、比率結果レジスタ9の出力をフラグ信号FAに同期してCPU1に伝達するようにしても良い。また、サイクルカウンタ7のオーバーフローや時間周期を使用することで一定周期ごとの負荷率の取得を行うようにしても良い。
【0039】
《実施の形態3》
図5には、負荷計測回路50の別の構成例が示される。図5に示される負荷計測回路50が、図4に示されるのと大きく相違するのは、比率比較レジスタ10及び比率比較回路11を設けた点である。
【0040】
比率比較レジスタ10には、閾値となる負荷率がCPU1によって設定される。比率比較回路11は、比較結果レジスタ9の出力値と、比率比較レジスタ10の出力値とを比較し、比較結果レジスタ9の出力値が比率比較レジスタ10の出力値以上になった場合に、条件一致信号(フラグ信号FC)をアサートする。フラグ信号FCは、ポート出力、割り込み、その他機能と連動させることができる。例えば本構成により指定した負荷条件を超えた場合のアラームとして、リカバリー処理の発動等アプリケーションの機能強化を図ることが可能となる。また、グラフィック処理の表示破綻や、通信破綻等の回避策などの応用が考えられる。
【0041】
《実施の形態4》
図6には、負荷計測回路50の別の構成例が示される。図6に示される負荷計測回路50が、図5に示されるのと大きく相違するのは、平均化回路12及び平均化結果レジスタ13を設けた点である。平均化回路12は、比率結果レジスタ9の出力値を累積して平均化する。平均化された値は平均化結果レジスタ13に書き込まれる。平均化結果レジスタ13はデータバスDBUSに結合されており、平均化結果レジスタ13の保持情報は、データバスDBUSを介してCPU1によって読み出すことができる。また平均化回路12における平均化のタイミングを、例えばサイクルカウンタ7のオーバーフローや比率算出回路8で生成されるフラグ信号FAに同期させることができる。
【0042】
本構成により長時間の統計結果や一定周期の負荷率の平均を求めることによりシステムの動作解析などに応用可能となる。
【0043】
《実施の形態5》
図7には、負荷計測回路50の別の構成例が示される。図7に示される負荷計測回路50が、図6に示されるのと大きく相違するのは、条件一致カウンタピーク回路14及び条件一致カウンタピークレジスタ15を設けた点である。条件一致カウンタピーク回路14は、比率結果レジスタ9の出力値の判定を行い、比率結果レジスタ9の出力値のピークが条件一致カウンタピークレジスタ15に保持される。条件一致カウンタピークレジスタ15はデータバスDBUSに結合されており、条件一致カウンタピークレジスタ15の保持情報は、データバスDBUSを介してCPU1によって読み出すことができる。また、条件一致カウンタピーク回路14は、比率結果レジスタ9の出力値のピーク(負荷率のピーク)を判定した場合に、フラグ信号FBをアサートする。
【0044】
本構成により突発的な状態保存把握が可能となり、エージング試験や、信頼度評価等に応用できる。また、フラグ信号FBをトリガとしてポート出力、割り込み発生に使用することにより、システムのオーバーフロー検出に使用でき、それによってシステムの安全性を高めることが可能となる。
【0045】
《実施の形態6》
図8には、負荷計測回路50の別の構成例が示される。図8に示される負荷計測回路50が、図6に示されるのと大きく相違するのは、複数の負荷計測部50−1,50−2,50−3を含む点である。各負荷計測部50−1,50−2,50−3は、それぞれ図7に示される負荷計測回路50と同一構成とされる。
【0046】
このように複数の負荷計測部50−1,50−2,50−3を有することにより、複数箇所の負荷計測を容易に行うことができる。例えば図9に示されるように、H020000〜H03FFFFの範囲の負荷計測を負荷計測部50−1で行い、H050000〜H05FFFFの範囲の負荷計測を負荷計測部50−2で行うことができる。本構成により複数条件でのより複雑なCPU負荷率測定を行うことが可能となる。
【0047】
《実施の形態7》
図10には、負荷計測回路50の別の構成例が示される。図10に示される負荷計測回路50が、図5に示されるのと大きく相違するのは、比較範囲指定レジスタ3’、比較判定回路4’をそれぞれ新たに追加し、比較判定回路4’では、比較判定回路4内にあったアドレスサンプリングをデータサンプリングに変更した点である。
【0048】
本例により比較判定回路4’からはアクセスデータの値に対して、あらかじめ比較範囲指定レジスタ3’で指定した条件一致を検出の上、データ条件一致信号MATCH_1を出力する。このデータ条件一致信号MATCH_1をマイクロコンピュータの内部イベントまたは内部割込み信号として活用することで、例えば任意のワーク領域に対して予め指定した条件を満たすデータの値への更新、またはアクセスがあった際に、検出イベントとして処理を行うことができる。
【0049】
比較範囲指定レジスタ3’は上限、下限の範囲で条件一致判断をしているが、一方だけの構成で一致のみの指定であっても良く、本設定方式や条件認識が制限されるものでは無い。また、サイクルカウンタ7はここではサイクルカウンタ7’として、そのカウント条件を、比較判定回路4から出力されるアドレス条件一致信号MATCH_2に応じてサンプルクロックCK2を計数するよう変更している。
【0050】
本構成により、制御機器の設定または測定パラメータの変化を監視して、特定領域の値を示した際に別の処理例えば安全処置等発行が可能となる。また、組合せによる複雑な条件指定を可能とすることで、ユーザ任意の割込み貸し出し機能として活用範囲が広げられる。さらにカウント条件をアドレス条件一致信号とすることにより、指定した特定アドレスへの総アクセス数に対する、データ条件一致したアクセスのカウント集計、比率判定が可能となる。ソフト負荷を極力排除した分析機能として活用できる。
【0051】
《実施の形態8》
図11には、上記マイクロコンピュータ100の別の構成例が示される。図11に示されるマイクロコンピュータ100が、図1に示されるのと大きく相違するのは、キャッシュ(又はMMU)60が設けられている点である。そして、キャッシュ(又はMMU(Memory Management Unit))60と負荷計測回路50との間で情報参照の連携が行われる。
【0052】
図12には、図11に示されるマイクロコンピュータ100における負荷計測回路50の構成例が示される。図12に示される負荷計測回路50が、図8に示されるのと大きく相違するのは、アドレス判定回路16が設けられている点である。アドレス判定回路16は、アドレスバスABUSと比較判定回路14の間に介在され、CPU1の動作アドレスを実アドレスに変換する機能を有する。
【0053】
マイクロコンピュータ100においてキャッシュを使用した場合には、プログラムがキャッシュに展開された時のアドレスと実アドレスによって比較判定回路4で判定する対照が変わってくるケースが考えられる。また、MMUを使用した場合、実アドレスと仮想アドレスによって比較判定回路4で判定する対照が変わってくるケースが考えられる。アドレス判定回路16は、キャッシュやMMUの情報を参照することによりCPU1の動作アドレスを実アドレスに変換し判定対象を統一してから比較判定回路4に供給している。アドレス判定回路16では、CPUの動作アドレスが実アドレスに変換される。このようにアドレス判定回路16によって、CPU1の動作アドレスを実アドレスに変換し判定対象を統一してから比較判定が行われるので、CPU負荷率を正しく測定することができる。
【0054】
《実施の形態9》
図13には、上記マイクロコンピュータ100の別の構成例が示される。図13に示されるマイクロコンピュータ100が、図1に示されるのと大きく相違するのは、ポート出力シリアル部80が設けられている点である。ポート出力シリアル部80では、各種情報をマイクロコンピュータ100の外部へシリアル形式で出力することができる。負荷計測回路50は、特に制限されないが、図12に示される構成を採用することができる。この場合において、比率算出回路8から出力されるフラグ信号FA、条件一致カウンタピーク回路14から出力されるフラグ信号FB、及び比率比較回路11から出力されるフラグ信号FCを、上記ポート出力シリアル部80を介して外部出力することができる。例えば複数のマイクロコンピュータによって処理の分散化が行われている場合等に、マイクロコンピュータ100とは別のマイクロコンピュータでは、上記ポート出力シリアル部80を介して外部出力されたフラグ信号をトリガとして利用することができる。
【0055】
《実施の形態10》
図14には、上記マイクロコンピュータ100の別の構成例が示される。図13に示されるマイクロコンピュータ100が、図1に示されるのと大きく相違するのは、低消費電力制御部90が設けられている点である。低消費電力制御部90は、このマイクロコンピュータ1における様々な低消費電力制御機能を有する。低消費電力制御部90と負荷計測回路50とは互いに連動する。負荷計測回路50は、特に制限されないが、図12に示される構成を採用することができる。この場合において、比率算出回路8から出力されるフラグ信号FA、条件一致カウンタピーク回路14から出力されるフラグ信号FB、及び比率比較回路11から出力されるフラグ信号FCは、低消費電力制御部90に伝達される。低消費電力制御部90は、伝達されたフラグ信号をトリガとしてマイクロコンピュータ100を低消費電力モードに遷移するなど、様々な低消費電力制御を行うことができる。本構成は、CPU負荷率に応じてマイクロコンピュータ100を低消費電力モードに移行することが可能になるので、システムの省電力化につながる。
【0056】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【0057】
1 CPU
3 比較範囲指定レジスタ
4 比較判定回路
6 条件一致カウンタ
7 サイクルカウンタ
8 比率算出回路
9 比率結果レジスタ
10 比率比較レジスタ
11 比率比較回路
12 平均化回路
13 平均化結果レジスタ
14 条件一致カウンタピーク回路
15 条件一致カウンタピークレジスタ
20 ROM
30 RAM
40 その他の周辺回路
50 負荷計測回路
60 キャッシュ(又はMMU)
80 ポート出力シリアル部
90 低消費電力制御部
100 マイクロコンピュータ

【特許請求の範囲】
【請求項1】
CPUと、
上記CPUの負荷状況を計測する負荷計測回路と、を含み、
上記負荷計測回路は、プログラム全体の実行状態を計測可能なサイクルカウンタと、
測定対象プログラムが実行されるアドレス範囲を指定するための比較範囲指定レジスタと、
実行アドレスと上記比較範囲指定レジスタの出力値を逐次比較する比較判定回路と、
上記比較判定回路での比較結果に基づいて、実行アドレスと上記比較範囲指定レジスタの出力値との一致期間を計測するための条件一致カウンタと、を含み、
上記サイクルカウンタの出力値及び上記条件一致カウンタの出力値に基づいてCPU負荷状況を把握可能な情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate