(58)【調査した分野】(Int.Cl.,DB名)
前記第1のアドレス情報及びアドレスジャンプ関係に従って、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することは、
前記第1のアドレス情報とアドレスジャンプ関係とに基づいて、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされる第2のアドレス情報を決定することと、
前記第2のアドレス情報と、各前記スライスに対応するアドレス範囲とに基づいて、前記第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することとを含むことを特徴とする請求項1に記載のメモリの制御方法。
前記第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含むことを特徴とする請求項1〜3のいずれか1項に記載のメモリの制御方法。
前記第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含むことを特徴とする請求項8〜10のいずれか1項に記載のコントローラ。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願は、メモリの各スライスに対する動的制御を実現し、それによりメモリの消費電力を最大限に低減するように、メモリの制御方法、コントローラ、チップ、及び電子機器を提供する。
【0006】
第1の態様では、本願は、メモリの制御方法を提供し、メモリ、プロセッサ、及びコントローラを含む電子機器に適用され、前記メモリは複数のスライスを含み、前記方法は前記コントローラによって実行される制御方法として、
第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することと、
前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することと、
前記第2の時間窓内に、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御することとを含む。
【0007】
本願は、以上のプロセスにより、メモリの実際のアクセス状況に応じて、各スライスに対する動的なオンオフを実現する。各時間窓内では、当該時間窓内にアクセスが必要なターゲットスライスのみをオンにし、他のスライスはオフにすることにより、各時間窓内にアイドルスライスが存在しないため、メモリの消費電力を最大限に低減することができる。
【0008】
1つの可能な実施形態では、前記第1のアドレス情報及びアドレスジャンプ関係に従って、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することは、
前記第1のアドレス情報とアドレスジャンプ関係とに基づいて、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされる第2のアドレス情報を決定することと、
前記第2のアドレス情報と、各前記スライスに対応するアドレス範囲とに基づいて、前記第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することとを含む。
【0009】
1つの可能な実施形態では、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御することは、
前記メモリ内の前記ターゲットスライスに対応するクロック回路及び電源回路がオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスに対応するクロック回路又は電源回路がオフになるように制御することを含む。
【0010】
当該実施形態では、既存のハードウェアベース(クロック回路と電源回路)を利用して各スライスを制御することにより、実現コストを低減することができる。
【0011】
1つの可能な実施形態では、前記電子機器は、検出器をさらに備え、前記第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することは、
前記検出器から第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を受信することを含み、第1のアドレス情報は前記検出器が前記メモリがアクセスされたアドレスを収集して取得したものである。
【0012】
1つの可能な実施形態では、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御することの前に、
前記検出器から、前記検出器により異なる時刻に対応するアクセスアドレスを示すアクセスデータに基づいて生成されたアドレスジャンプ関係を受信することをさらに含み、
前記アクセスデータは、前記検出器が、前記プロセッサが異なる動作状態にある場合に、前記メモリがアクセスされたアドレスを収集した取得したものである。
【0013】
1つの可能な実施形態では、前記第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含む。
【0014】
1つの可能な実施形態では、前記メモリは、スタティックランダムアクセスメモリ(SRAM)である。
【0015】
第2の態様では、本願は、コントローラを提供し、メモリ、プロセッサ、及び前記コントローラを含む電子機器に適用され、前記メモリは複数のスライスを含み、前記コントローラは、
第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することに用いられる取得モジュールと、
前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することに用いられる決定モジュールと、
前記第2の時間窓内に、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御することに用いられる制御モジュールとを備える。
【0016】
1つの可能な実施形態では、前記決定モジュールは、具体的に、
前記第1のアドレス情報とアドレスジャンプ関係とに基づいて、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされる第2のアドレス情報を決定することと、
前記第2のアドレス情報と、各前記スライスに対応するアドレス範囲とに基づいて、前記第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することとに用いられる。
【0017】
1つの可能な実施形態では、前記制御モジュールは、具体的に、
前記第2の時間窓内に、コントローラは、前記メモリ内の前記ターゲットスライスに対応するクロック回路及び電源回路がオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスに対応するクロック回路又は電源回路がオフになるように制御することに用いられる。
【0018】
1つの可能な実施形態では、前記電子機器は、検出器をさらに備え、前記取得モジュールは、具体的に、
前記検出器から第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を受信することに用いられ、第1のアドレス情報は前記検出器が前記メモリがアクセスされたアドレスを収集して取得したものである。
【0019】
1つの可能な実施形態では、前記取得モジュールは、さらに、
前記検出器から、前記検出器により異なる時刻に対応するアクセスアドレスを示すアクセスデータに基づいて生成されたアドレスジャンプ関係を受信することに用いられ、
前記アクセスデータは、前記検出器が、前記プロセッサが異なる動作状態にある場合に、前記メモリがアクセスされたアドレスを収集した取得したものである。
【0020】
1つの可能な実施形態では、前記第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含む。
【0021】
1つの可能な実施形態では、前記メモリは、スタティックランダムアクセスメモリ(SRAM)である。
【0022】
第3の態様では、本願はチップを提供し、プロセッサと、メモリと、前記メモリに接続され、前記メモリが前記プロセッサによってアクセスされたアドレスに基づいてアドレスジャンプ関係を生成するための検出器と、コントローラとを備え、前記検出器は、さらに第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することに用いられ、
前記コントローラは、さらに第1の態様のいずれか1項に記載の方法を実行することに用いられる。
【0023】
第4の態様では、本願は電子機器を提供し、第3の態様に記載のチップを備える。
【0024】
本願で提供されるメモリの制御方法、コントローラ、チップ及び電子機器では、当該方法は、第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することと、前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の時間窓である第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することと、前記第2の時間窓内に、前記メモリにおける前記ターゲットスライスがオンになるように制御し、前記メモリにおける前記ターゲットスライス以外のスライスがオフになるように制御することとを含む。以上のプロセスにより、メモリの実際のアクセス状況に応じて、各スライスに対する動的なオンオフを実現する。各時間窓内では、当該時間窓内にアクセスが必要なターゲットスライスのみをオンにし、他のスライスはオフにすることにより、各時間窓内にアイドルスライスが存在しないため、メモリの消費電力を最大限に低減することができる。
【0025】
上記の選択可能な形態による他の効果については、以下で具体的な実施例を合わせて説明する。
【発明を実施するための形態】
【0027】
以下、図面に基づいて本願の例示的実施例を説明し、理解を容易にするために、その中には本願の実施例の様々な具体的内容を含み、それらは例示的なものであると理解すべきである。したがって、当業者は、本願の範囲及び趣旨から逸脱することなく、本明細書に記載された実施例に対して様々な変更及び修正を加えることができることを認識することができる。また、説明の明確化及び簡略化のため、以下の記載では、周知の機能及び構成についての記載は省略する。
【0028】
本願の理解を容易にするため、まず、従来技術における電子機器の構成、及び本願における電子機器の構成について説明する。
【0029】
図1は、従来技術による電子機器の構造模式図である。
図1に示すように、電子機器100は、プロセッサ101、メモリ102、及び高速インターフェース及び低速インターフェースを含む各構成要素を接続させるためのインターフェースを備える。各構成要素は、異なるバスで接続され、共通のメインボード上に実装されてもよいし、必要に応じて他の方式で実装されてもよい。プロセッサ101の数は、1つ又は複数であってもよく、プロセッサは、電子機器内で実行される命令を処理でき、メモリ内又はメモリ上に記憶されて外部入力/出力装置(インターフェースに結合されたディスプレイ機器など)上にGUIのグラフィック情報を表示するための命令を含む。メモリの数は、1つ又は複数であってもよく、メモリに格納されたデータの種類に応じて、プログラムメモリ1021、データメモリ1022、及びシステムメモリ1023に分けられる。プログラムメモリ1021は、プロセッサの動作過程において必要なプログラム命令を格納するために使用され、データメモリ1022は、プロセッサの動作過程において必要なデータを格納するために使用され、システムメモリ1023は、オペレーティングシステムを格納することができる。メモリ102は、高速ランダムアクセスメモリを含んでもよく、また、少なくとも1つの磁気ディスク記憶装置、フラッシュメモリ装置、又は他の非一時的固体記憶装置などの、非一時的メモリを含んでもよい。
【0030】
エンベデッド型電子機器の場合、
図1のプロセッサ101及びメモリ102は、チップに集積されてもよい。チップの消費電力は、製品の待機時間と電池寿命に大きい影響を与える。
図1を参照すると、メモリ102の体積が大きく、チップの半分以上の面積を占有しているため、メモリ102の消費電力は、チップ全体の平均消費電力とピーク消費電力に影響を与える。
【0031】
従来技術では、メモリの消費電力を低減するために、メモリ102を、アドレス範囲に応じて複数のスライスに分割した。例えば、
図1では、プログラムメモリ1021を2個のスライスに、データメモリ1022を2個のスライスに、システムメモリ1023を4個のスライスに、それぞれ分割している。なお、本実施例ではスライスの分割方式に対して限定しなく、電子機器の実際情況に応じて分割することができ、
図1に示す例は一例示に過ぎない。各スライスは、それぞれ自分の専用のクロック回路と電源回路を有する。このうち、クロック回路は、スライスにクロック制御信号を入力するためのものであり、電源回路は、スライスに電力を供給するためのものである。このように、プロセッサは、個々のスライスの開閉を柔軟に制御することができる。例示的に、プロセッサが動作状態にあるとき、すべてのスライスのクロック回路及び電源回路がオンされ、プロセッサが休止状態にあるとき、部分スライスのクロック回路又は電源回路をオフする。このように、プロセッサの制御下で、プロセッサに予め設定されたルールプログラムによりメモリの消費電力制御を実現することができる。このような制御方式では、メモリの各スライスに対する制御を、プロセッサに予め設定された制御ポリシーによって実現するため、本願では、このような制御方式をスタティック消費電力制御と呼ぶ。
【0032】
しかしながら、上記のスタティック制御方法は、メモリの各スライスの動作モードを粗い粒度でしか制御できない。いくつかの作業シナリオでは、メモリは、依然として一部アイドルスライスが存在し、それらのアイドルスライスは依然として追加の電力消費をもたらす。
【0033】
本願の実施例は、上記問題点を解決するためになされたものであり、メモリへのプロセッサの実際のアクセス状況に応じて、部分スライスを動的にオン又はオフにすることにより、アイドルスライスが存在しないようにすることで、メモリの消費電力を最大限に低減することができる。
【0034】
図2は、本願の一実施例による電子機器の構造模式図である。
図2に示すように、本願が提供する電子機器100は、
図1に示す電子機器に加えて、コントローラ103をさらに含むことができる。前記コントローラ103は、ソフトウェア及び/又はハードウェアの形態であってもよい。コントローラ103は、プログラムメモリ1021、データメモリ1022、システムメモリ1023とそれぞれ接続されている。コントローラ103は、本実施例におけるメモリの制御方法を実行するためのものであり、コントローラ103はプロセッサ101と独立して動作する。
【0035】
いくつかの実施例において、本願の電子機器100は、検出器104をさらに含むことができる。検出器104は、プログラムメモリ1021、データメモリ1022、システムメモリ1023とそれぞれバスを介して接続され、それぞれのメモリのアクセスされたアドレス情報を収集するために用いられる。前記検出器104は、ソフトウェア及び/又はハードウェアの形態であってもよい。検出器104は、コントローラ103に接続されてもよい。
【0036】
本実施例におけるメモリ102は、例えば、スタティックランダムアクセスメモリ(Static Random−Access Memory、SRAM)のようなエンベデッドメモリであってもよい。メモリ102は、アドレス範囲に応じて、それぞれ自分の専用のクロック回路及び電源回路を有する複数のスライスに分割され得る。
【0037】
本実施例において、
図2に示す電子機器は、エンベデッドシステムの電子機器、例えば、スマートスピーカー、スマートテレビ、スマートフォンなどであってもよい。具体的には、電子機器は、プロセッサ101、メモリ102、コントローラ103、及び検出器104が集積されたエンベデッドチップを含む。例えば、AI推論チップ、画像処理チップ、ニューラルネットワーク処理チップ等がある。これらの処理チップは、信号処理を行う過程に、バースト的にメモリアクセスが発生する場合がある。本実施例によるメモリの制御方法は、処理チップのバースト的なメモリアクセスの動作モードに対して、動的にメモリスライスをオン又はオフすることができ、処理チップの正常動作を満たす上で、メモリの消費電力を最大限に低減する。
【0038】
以下、
図2のメモリの制御方法について、いくつかの具体的な実施例を挙げて詳細に説明する。以下のいくつかの実施例は、互いに組み合わせることができ、同じ概念又は実施形態について、いくつかの実施例では繰り返されない。
【0039】
図3は、本願の一実施例によるメモリの制御方法のフローチャートである。本実施例の方法は、
図2に示されたような電子機器に適用されることができ、本実施例の方法は、コントローラ103によって実行されることができる。プロセッサの動作過程に、コントローラは、本実施例のS301〜S303をループして実行する。
【0040】
図3に示すように、本実施例の方法はS301〜S303を含み、S301では、第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得する。
【0041】
S302では、前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定する。
【0042】
プロセッサが動作している間、プロセッサはメモリと相互作用する必要がある。例示的に、プロセッサは、バスを介してプログラムメモリから命令を取得し、データメモリからデータを取得し、システムメモリからシステムデータを取得する。命令の取得を例として挙げると、プロセッサは、プログラムメモリから命令を取得するとき、まず、当該命令のプログラムメモリ内での格納アドレスを確認した後、プログラムメモリ内の当該アドレスにアクセスし、当該アドレスから対応する命令を読み出す。このため、プロセッサは、動作中に常にメモリにアクセスする必要がある。
【0043】
ここで、第1の時間窓とは、現在時刻の前の所定期間を意味する。第2の時間窓とは、第1の時間窓の後の時間窓を指す。第2の時間窓は、第1の時間窓の次の時間窓であってもよく、第2の時間窓は、第1の時間窓との間に1つ以上の時間窓が存在する時間窓であってもよい。本実施例では、時間窓の長さは限定されない。例えば、1つの時間窓の長さは、1秒、又は1ミリ秒などであってもよい。
図4は、本願の一実施例による時間窓を示す模式図である。
図4に示すように、t3を現在時刻とすると、第1の時間窓はt2からt3に対応する時間窓であってよく、第2の時間窓はt3からt4に対応する時間窓であってよい。当然ながら、いくつかの実施例において、第2の時間窓は、t4からt5に対応する時間窓であってもよい。
【0044】
S301では、コントローラは、第1の時間窓内にメモリがプロセッサによりアクセスされた第1のアドレス情報を取得する。前記第1のアドレス情報は、プロセッサが第1の時間窓内にアクセスしたメモリのアドレスシーケンスを示す。言い換えれば、第1のアドレス情報は、プロセッサが第1の時間窓内にメモリのどのアドレスにアクセスしたかを示す。
【0045】
選択可能なものとして、第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含む。例えば、第1のタイムスタンプにベースアドレス1から4バイトがアクセスされ、第2のタイムスタンプにベースアドレス4から1バイトがアクセスされた等である。
【0046】
1つの可能な実施形態では、コントローラは、メモリに対するアクセス監視機能を実現できるアクセス監視モジュールを含んでよい。メモリのあるアドレスがプロセッサによってアクセスされると、アクセス監視モジュールは、アクセスされたアドレスを記録して、第1のアドレス情報を得ることができる。もう1つの可能な実施形態では、検出器でアクセス監視機能を実現してもよく、メモリのあるアドレスがプロセッサによってアクセスされたときに、検出器がアクセスされたアドレスを記録して第1のアドレス情報を取得し、第1のアドレス情報をコントローラに送信する。
【0047】
S302では、コントローラは、第1のアドレス情報及びアドレスジャンプ関係に基づいて、第2の時間窓内にメモリがプロセッサによってアクセスされる目標スライスを予測する。ここで、アドレスジャンプ関係とは、メモリの異なるアドレス間のアクセスジャンプ関係を示すものである。理解できるのは、アドレスジャンプ関係は、プロセッサによって実行されるプログラムに関連する。プロセッサによって実行されるプログラムが固定の場合、アドレスジャンプ関係も固定である。したがって、コントローラは、第1のアドレス情報によって指示されるアクセスアドレスシーケンス及びアドレスジャンプ関係に基づいて、第2の時間窓内にメモリのどのアドレスがアクセスされるかを予測することができる。さらに、コントローラは、各スライスに対応するアドレス範囲に基づいて、第2の時間窓内にアクセスされるアドレスがどのスライスに対応するかを決定する。本実施例では、予測された第2の時間窓内にアクセスされるアドレスに対応するスライスをターゲットスライスと呼ぶ。なお、ターゲットスライスは、1つのスライスでもよいし、複数スライスでもよい。
【0048】
S303、前記第2の時間窓内に、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御する。
【0049】
本実施例では、コントローラが、第2の時間窓内にアクセスされるアドレスに対応するターゲットスライスを予測した後、第2の時間窓内に、ターゲットスライスが動作状態になるようにターゲットスライスがオンになるように制御し、メモリ内のターゲットスライス以外の他のスライスがアイドル状態になるようにターゲットスライスがオフになるように制御する。
【0050】
続いて
図4を参照すると、現在時点がt4である場合、
図4における第2の時間窓が第1の時間窓となり、コントローラは、t3からt4の時間窓に対応する第1のアドレス情報を取得し、当該第1のアドレス情報とアドレスジャンプ関係とに基づいて、t4からt5の時間窓に対応するターゲットスライスを決定し、t4からt5の時間窓内にこれらのターゲットスライスがオンになるように制御し、他のスライスがオフになるように制御する。
【0051】
本実施例では、メモリの実際のアクセス状況に応じて、各スライスの開閉を動的に行うことを実現している。すなわち、各時間窓内において、当該時間窓内にアクセスが必要なターゲットスライスのみをオンにし、他のスライスがオフにすればよく、それにより各時間窓内にアイドルスライスが存在しないため、メモリの消費電力を最大限に低減することができる。
【0052】
本実施例では、スライスのオンとオフは、当該スライスのクロック回路と電源回路を制御することで実現できる。具体的に、スライスをオンすることは、当該スライスが動作状態になるように、当該スライスのクロック回路及び電力回路をオンすることを指し得る。スライスをオフすることは、当該スライスがアイドル状態になるように、当該スライスのクロック回路をオフにすることを指し得る。当然ながら、スライスをオフすることは、当該スライスがアイドル状態になるように、当該スライスの電源回路をオフすることを指すこともできる。
【0053】
クロック回路を通じて消費電力を管理するとは、ハードウェア回路上のクロック制御ロジックによって、対応するスライスのクロック信号をオン又はオフすることである。このように、スライスのクロック回路をオフし、スライスがクロック回路の導通を生じないようにして、消費電力の低減を図っている。
【0054】
電源回路を通じて消費電力を管理するとは、スライスの電源回路をオン/オフするか、又はスライスの動作電圧の増減によって、各スライスの消費電力を制御することである。スライスの電源回路をオフするか、又はスライスの動作電圧を下げることで、消費電力を低減することができる。
【0055】
既存のハードウェアベース(クロック回路と電源回路)を利用して各スライスを制御することにより、実現コストを低減することができる。
【0056】
理解できるのは、クロック回路をオフすることと電源回路をオフすることはいずれも消費電力の低減を図ることができるが、消費電力の低減効果は異なる。クロック回路をオフすると、スライスへのクロック制御信号の入力を停止するだけで、電源供給を停止しないため、当該スライスによって依然としてある程度の電力消費が生じることがある。電源回路をオフすると、当該スライスへの電力供給が停止され、当該スライスによる電力消費がなくなる。このため、クロック回路をオフするよりも、電源回路をオフする方が消費電力を低減できる。実際の使用に際しては、実際の状況に応じて選択すればよく、本実施例では特に限定しない。
【0057】
本実施例によるメモリ制御方法は、第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することと、前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の時間窓である第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することと、前記第2の時間窓内に、前記メモリにおける前記ターゲットスライスがオンになるように制御し、前記メモリにおける前記ターゲットスライス以外のスライスがオフになるように制御することとを含む。以上のプロセスにより、メモリの実際のアクセス状況に応じて、各スライスに対する動的なオンオフを実現する。各時間窓内では、当該時間窓内にアクセスが必要なターゲットスライスのみをオンにし、他のスライスはオフにすることにより、各時間窓内にアイドルスライスが存在しないため、メモリの消費電力を最大限に低減することができる。
【0058】
図5は、本願の一実施例によるメモリの制御方法のフローチャートである。本実施例は、
図2の検出器とコントローラを用いてメモリに対する制御を行う。
図5に示すように、本実施例の方法は、S501〜S506を含み、S501では、検出器は、前記プロセッサが異なる動作状態にある場合に、前記メモリがアクセスされたアドレスを収集して、異なる時刻に対応するアクセスアドレスを示すアクセスデータを取得する。
【0059】
S502では、検出器は、前記アクセスデータに基づいてアドレスジャンプ関係を生成し、前記アドレスジャンプ関係をコントローラに送信する。
【0060】
図5に示すように、本実施例におけるS501〜S506は、2つの段階に分けられて実行される。第1の段階は、テスト段階であり、検出器によってS501からS502を実行してアドレスジャンプ関係を生成する。第2の段階は、検出器によってS503を実行して第1のアドレス情報を取得し、コントローラによってS504〜S506を実行して、第1のアドレス情報とアドレスジャンプ関係とに基づいてターゲットスライスを決定し、決定されたターゲットスライスに基づいて各スライスの開閉を制御する。以下、この2つの段階についてそれぞれ詳細に説明する。
【0061】
第1の段階では、検出器がプロセッサ、メモリと並列に動作し、コントローラは動作する必要がない。プロセッサが異なる動作状態にあるとき、検出器は、メモリがアクセスされたアドレスを収集してアクセスデータを得る。ここで、アクセスデータは、異なる時刻に対応するアクセスアドレスを指示するものである。例えば、アクセスデータには、プロセッサがメモリにアクセスする度に対応するアクセスタイムスタンプ、アクセスベースアドレス、アクセスバイト数が含まれている。
【0062】
さらに、検出器は、収集して得たアクセスデータに基づいて、アドレスジャンプ関係を生成する。アドレスジャンプ関係は、プロセッサの動作中にメモリにアクセスするために必要なアドレス間のジャンプルールを示す。例えば、プロセッサが、メモリのアドレス1にアクセスした後、次にアドレス5にアクセスし、次にアドレス10にアクセスする。このように、後の実行段階において、検出器は、プロセッサが現在アドレス1にアクセスしていることが検出されると、アドレスジャンプ関係からプロセッサが次にアドレス5にアクセスすることを予測することができる。したがって、アドレスジャンプ関係は、第1の時間窓内にメモリがアクセスされたアドレスから、第2の時間窓内にメモリがアクセスされるアドレスを予測するために使用され得る。
【0063】
なお、本実施例におけるアドレスジャンプ関係は、種々の形態が可能であり、例えば、データテーブル形態であってもよく、関数形態であってもよく、マイクロコード形式であってもよい。
【0064】
いくつかの実施形態において、アドレスジャンプ関係を生成するステップは、検出器によってオンラインで生成され得る。例示的に、検出器は、メモリのアクセスされたアドレスをオンラインで収集し、収集されたアクセスデータをリアルタイムで分析して、アドレスジャンプ関係を生成する。いくつかの実施形態において、アドレスジャンプ関係を生成するステップは、オフラインで生成されてもよい。例示的に、検出器は、データ分析ツールに接続される。検出器は、メモリのアクセスされたアドレスをオンラインで収集して記録し、アクセスデータを得る。当該アクセスデータは、オフラインでデータ分析ツールにエクスポートされ、データ分析ツールがアクセスデータに対して分析処理を行ってアドレスジャンプ関係を生成し、アドレスジャンプ関係を検出器に返すことができる。
【0065】
実際適用において、第1の段階は通常1回だけ実行されればよい。理解できるのは、チップシステムの設計が完了した後、すなわち、プロセッサが実行する必要があるプログラム命令が決定された後、テスト段階でプロセッサの動作中に、検出器は、本実施例におけるS501及びS502を実行し、アドレスジャンプ関係を生成し、アドレスジャンプ関係をコントローラに送信する。
【0066】
理解できるのは、テスト段階でS501及びS502を実行する際に、プロセッサの様々な動作状態をトラバースする必要がある。すなわち、プロセッサが異なる動作状態でメモリに対するアクセスデータがすべて収集されるように確保し、生成されたアドレスジャンプ関係の完全性を確保する。ここで、プロセッサの動作状態とは、動作状態、アイドル状態、バースト処理状態等を含むが、これらに限定されるものではない。
【0067】
いくつかの適用シナリオでは、テスト段階において検出器がアドレスジャンプ関係を生成した後、アドレスジャンプ関係は、電子機器の出力装置にも出力でき、例えば、電子機器のディスプレイスクリンを介して表示してもよい。これにより、ソフトウェア設計者は、アドレスジャンプ関係を視覚的に見ることができ、アドレスジャンプ関係から各スライスのアクセス状況を分析することができる。さらに、各スライスのアクセス状況に応じてチップ内のエンベデッドコードを最適化し、使用が不飽和であるメモリスライスを併合して使用し、メモリスライスの使用数を減らして、コードソースからメモリの消費電力を低減することができる。
【0068】
S503では、検出器は、第1の時間窓内に前記メモリが前記プロセッサによってアクセスされたアドレスを収集し、前記第1のアドレス情報をコントローラに送信する。
【0069】
S504では、コントローラは、前記第1のアドレス情報とアドレスジャンプ関係とに基づいて、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされる第2のアドレス情報を決定する。
【0070】
S505では、コントローラは、前記第2のアドレス情報と、各前記スライスに対応するアドレス範囲とに基づいて、前記第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定する。
【0071】
S506では、前記第2の時間窓内に、コントローラは、前記メモリ内の前記ターゲットスライスに対応するクロック回路及び電源回路がオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスに対応するクロック回路又は電源回路がオフになるように制御する。
【0072】
第2の段階では、検出器及びコントローラは、プロセッサ、メモリと並列に動作する。プロセッサの正常動作中、検出器は、第1の時間窓内にメモリがアクセスされた第1のアドレス情報を収集し、第1のアドレス情報をコントローラに送信する。コントローラは、第1のアドレス情報とアドレスジャンプ関係とに基づいて前記第2の時間窓内にメモリがアクセスされるターゲットスライスを決定する。本実施例のコントローラのS504〜S506の処理過程は、
図3に示す実施例と同様であるため、説明を省略する。
【0073】
本実施例では、メモリの実際のアクセス状況に応じて、各スライスの開閉を動的に行うことを実現している。各時間窓内に、当該時間窓内にアクセスが必要なターゲットスライスのみをオンにし、他のスライスはオフにすればよく、各時間窓内にアイドルスライスが存在しないため、メモリの消費電力を最大限に低減することができる。
【0074】
図6は、本願の一実施例によるコントローラの構造模式図である。本実施例のコントローラは、
図2に示すような電子機器に適用することができる。
図6に示すように、本実施例のコントローラ600は、
第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を取得することに用いられる取得モジュール601と、
前記第1のアドレス情報と、前記メモリの異なるアドレス間のアクセスジャンプ関係を示すアドレスジャンプ関係とに基づいて、前記第1の時間窓の後の第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することに用いられる決定モジュール602と、
前記第2の時間窓内に、前記メモリ内の前記ターゲットスライスがオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスがオフになるように制御することに用いられる制御モジュール603とを備える。
【0075】
1つの可能な実施形態において、前記決定モジュール602は、具体的に、前記第1のアドレス情報とアドレスジャンプ関係とに基づいて、第2の時間窓内に前記メモリが前記プロセッサによってアクセスされる第2のアドレス情報を決定することと、コントローラは、前記第2のアドレス情報と、各前記スライスに対応するアドレス範囲とに基づいて、前記第2の時間窓内に前記メモリが前記プロセッサによってアクセスされるターゲットスライスを決定することとに用いられる。
【0076】
1つの可能な実施形態において、前記制御モジュール603は、具体的に、前記第2の時間窓内に、コントローラは、前記メモリ内の前記ターゲットスライスに対応するクロック回路及び電源回路がオンになるように制御し、前記メモリ内の前記ターゲットスライス以外のスライスに対応するクロック回路又は電源回路がオフになるように制御することに用いられる。
【0077】
1つの可能な実施形態において、前記電子機器は、検出器をさらに備え、前記取得モジュール601は、具体的に、
前記検出器から第1の時間窓内に前記メモリが前記プロセッサによってアクセスされた第1のアドレス情報を受信することに用いられ、第1のアドレス情報は前記検出器が前記メモリがアクセスされたアドレスを収集して取得したものである。
【0078】
1つの可能な実施形態において、前記取得モジュール601は、さらに、
前記検出器から、前記検出器により異なる時刻に対応するアクセスアドレスを示すアクセスデータに基づいて生成されたアドレスジャンプ関係を受信することに用いられ、
前記アクセスデータは、前記検出器が、前記プロセッサが異なる動作状態にある場合に、前記メモリがアクセスされたアドレスを収集した取得したものである。
【0079】
1つの可能な実施形態において、前記第1のアドレス情報は、前記メモリへのアクセス毎に対応するアクセスタイムスタンプ、アクセスベースアドレス、及びアクセスバイト数を含む。
【0080】
1つの可能な実施形態において、前記メモリは、スタティックランダムアクセスメモリ(SRAM)である。
【0081】
本実施例のコントローラは、上述の方法の実施例のいずれかにおいてコントローラによって実行される技術的解決策を実現するために使用されてもよく、その実現原理及び技術的効果は同様であり、ここでその詳しい説明は省略する。
【0082】
図7は、本願の一実施例によるチップの構造模式図である。
図7に示すように、プロセッサ701と、メモリ702と、バスを介して前記メモリ702に接続され、前記メモリ702が前記プロセッサ701によってアクセスされたアドレスに基づいてアドレスジャンプ関係を生成するための検出器704と、コントローラ703とを備え、前記検出器704は、さらに第1の時間窓内に前記メモリ702が前記プロセッサ701によってアクセスされた第1のアドレス情報を取得することに用いられ、前記コントローラ703は、上記方法のいずれかの実施例においてコントローラ側で実行する方法を実行することに用いられる。その実現原理及び技術的効果は同様であり、ここでは詳しい説明を省略する。
【0083】
本願の一実施例による電子機器は、
図7に示されるようなチップを備える。
【0084】
本願の一実施例に係る電子機器は、
図2に示すような構成を採用することができる。
【0085】
本願における電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表す。電子機器はまた、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブル危機、及び他の同様のコンピューティング機器など、様々な形態のモバイル機器を表す。本明細書に示される構成要素、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書に記載及び/又は請求する本願の実現を限定するためのものでない。
【0086】
本願による電子機器は、入力装置と出力装置をさらに備えてもよい。プロセッサ、メモリ、入力装置、及び出力装置は、バス又は他の手段によって接続され得る。
【0087】
入力装置は、入力された数字又は文字情報を受信し、電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置904は、表示機器、補助照明装置(例えば、LED)、及び触覚フィードバック装置(例えば、振動モータ)等を含んでもよい。当該表示機器は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含んでもよいが、これらに限定されない。いくつかの実施形態では、表示機器はタッチスクリーンであってもよい。
【0088】
本明細書で説明するシステム及び技術の様々な実施形態は、デジタル電子回路、集積回路、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現できる。これらの様々な実施形態は、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行及び/又は解釈可能な1つ以上のコンピュータプログラムを実施することを含んでよく、当該プログラマブルプロセッサは、データ及び命令を当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に送信することができる、専用又は汎用のプログラマブルプロセッサであり得る。
【0089】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラム可能なプロセッサの機械命令を含み、これらのコンピュータプログラムは、高レベル過程及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械語で実現され得る。本明細書で使用される用語「機械可読媒体」及び「コンピュータ可読媒体」は、プログラム可能なプロセッサに機械命令及び/又はデータを提供するための任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光学ディスク、メモリ、プログラム可能論理装置(PLD))を意味し、機械可読信号としての機械命令を受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意の信号を意味する。
【0090】
ユーザとのインタラクションを提供するために、本明細書に記載されたシステム及び技術は、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、コンピュータに提供するユーザの入力のためのキーボード及びポインティング装置(例えば、マウス又はトラックボール)とを有するコンピュータ上で実施することができる。他の種類の装置を使用して、ユーザとのインタラクションを提供することもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、ユーザからの入力は、(サウンド入力、音声入力、又は触覚入力を含む)任意の形態で受信され得る。
【0091】
本明細書に記載のシステム及び技術は、バックエンド構成要素を含むコンピューティングシステム(例えば、データサーバ)、又はミドルウェア構成要素を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド構成要素を含むコンピューティングシステム(例えば、グラフィカルユーザインターフェース又は当該ウェブブラウザを有するユーザコンピュータであり、ユーザは当該グラフィカルユーザインターフェース又は当該ウェブブラウザによってここに記載のユーザコンピュータとインタラクションできる)、又はそのようなバックエンド構成要素、ミドルウェア構成要素、又はフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実施され得る。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって互いに接続され得る。通信ネットワークとしては、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット等が挙げられる。
【0092】
コンピュータシステムは、クライアント及びサーバを含み得る。クライアント及びサーバは、一般的に、互いに離れており、通常、通信ネットワークを介してインタラクションする。相応するコンピュータ上で、互いにクライアント-サーバ関係を有するコンピュータプログラムを実行することによって、クライアントとサーバの関係が生成される。
【0093】
理解すべきなのは、上記に示された様々な形態のフローが、ステップの順序変更、追加、又は削除に使用され得る。例えば、本願に記載された各ステップは、並列に実行されても、順次実行されても、異なる順序で実行されてもよく、本開示の技術的思想で望む結果を実現できる限り、ここで限定しない。
【0094】
上記の詳細な説明は、本願の保護範囲を制限するものではない。本願の属する技術の分野における通常の知識を有する者であれば、設計要求と他の要素に従って様々な変更、組み合わせ、サブ組み合わせと置換を行うことができる。本願の思想及び原理に含まれるあらゆる変更、均等物及び改良等は、すべて本開示の保護範囲に含まれる。