JP2013510355A - ランダムアクセスメモリの動的管理 - Google Patents

ランダムアクセスメモリの動的管理 Download PDF

Info

Publication number
JP2013510355A
JP2013510355A JP2012537394A JP2012537394A JP2013510355A JP 2013510355 A JP2013510355 A JP 2013510355A JP 2012537394 A JP2012537394 A JP 2012537394A JP 2012537394 A JP2012537394 A JP 2012537394A JP 2013510355 A JP2013510355 A JP 2013510355A
Authority
JP
Japan
Prior art keywords
instruction
memory
processor
priority
execution
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
JP2012537394A
Other languages
English (en)
Other versions
JP5671050B2 (ja
JP2013510355A5 (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.)
STMicroelectronics Grand Ouest SAS
Original Assignee
ST Ericsson France SAS
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 ST Ericsson France SAS filed Critical ST Ericsson France SAS
Publication of JP2013510355A publication Critical patent/JP2013510355A/ja
Publication of JP2013510355A5 publication Critical patent/JP2013510355A5/ja
Application granted granted Critical
Publication of JP5671050B2 publication Critical patent/JP5671050B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本発明は、コンピュータシステムのランダムアクセスメモリを管理する方法を提供する。コンピュータシステムは、プロセッサと、第1の静的ランダムアクセスメモリと、第2の動的ランダムアクセスメモリと、を備える。本方法は、プロセッサにより実行される少なくとも1つの命令を受け取る工程と、プロセッサによる命令の実行についての優先レベルを判定する工程と、前記命令が優先性の高い命令であることを該命令の優先レベルが示す場合、前記プロセッサによる該命令の実行のために、該命令を前記第1のメモリに読み込む工程と、前記命令が優先性の高い命令であることを該命令の優先レベルが示さない場合、前記プロセッサによる該命令の実行のために、該命令を前記第2のメモリに読み込む工程と、を含む。

Description

本願はコンピュータシステムに関する。より詳細には、本願は、システムによるコンピュータプログラムの実行におけるよりよい性能を保証するために、コンピュータシステムのプロセッサと関連付けられたランダムアクセスメモリ(RAM)の管理を改善することを目的とする。
コンピュータシステムの性能は、特に、コンピュータシステムのプロセッサの性能(特にプロセッサの演算速度)、及びコンピュータシステムが実行している命令の実行に関連する演算を実行するためにコンピュータシステムが用いるランダムアクセスメモリの性能(特にメモリ読み出しアクセス時間及び書き込みアクセス時間)に依存する。
例えば通信システムにおいては、限られたコスト及び可能な限り短い通信システムの開発時間を確保しながらも、非常に高い演算性能が期待される。
期待される性能のタイプは、例えば、増加する大量の処理されるデータを含む通信ストリームの管理のような、リアルタイム機能を実装する可能性を含む。しかしながら、これらの機能の実装は、通信システムによる他の機能の実装に対して不利な影響を与えてはならない。これらのリアルタイム機能は、最小限の時間内での大量のデータの処理を伴うため、かなりの演算リソースを必要とする。
1つの解決策は、プロセッサをそれぞれのタイプの機能に専念させることからなり、1つのプロセッサはリアルタイムアプリケーション用であり、1つのプロセッサは他のアプリケーション用である。この解決策は、全てのアプリケーションを動作させるための大量の演算能力へのアクセスを提供するという利点を有する。
しかしながらこの解決策は、通信システムのコストを顕著に増加させる。
さらに、1つしかプロセッサを有さない既存のハードウェアシステムへと新しいリアルタイム機能を組み込むことを伴う場合、これはシステム構成を完全に変更することを伴い、これにはコストがかかりかつ長い開発期間を伴うため、この解決策は現実的に可能なものではない。
他の解決策は、キャッシュの一部をリアルタイムアプリケーション専用とし、他の部分を他のアプリケーション専用とするために、プライマリメモリキャッシュ(当業者には「L1キャッシュ」と呼ばれる)の容量を増加させることからなる。
こうして、大量のデータを用意し、データを素早くプロセッサに対して利用可能なものとすることが可能となる。実際、このキャッシュにおいてデータをアクセス可能とすることにより、他のメモリから記憶を取得するために必要な命令数が削減される。
しかしながらこの解決策は、システムが埋め込まれるチップのシリコン上の構成部品の大きさを増加させる。結果として、この解決策はシステムについてのより低いクロックレートを意味する。
さらに、L1キャッシュのサイズがどれだけ増加されうるかには限界が存在し、L1キャッシュから特定のデータをフェッチする(取り出す)ための命令数が多くなりすぎるために、この限界を超えると演算速度における利益は微々たるものとなる。
したがって、特に既存の基盤(プラットフォーム)に新しい機能を加える際における、限られたコスト及び妥当な開発期間を保証する一方で、コンピュータシステムの性能を改善する必要が存在する。
この目的のために、本発明の第1の態様は、コンピュータシステムのランダムアクセスメモリを管理する方法であって、
前記コンピュータシステムは、プロセッサと、第1の静的ランダムアクセスメモリと、第2の動的ランダムアクセスメモリと、を備え、
前記方法は、
前記プロセッサにより実行される少なくとも1つの命令を受け取る工程と、
前記プロセッサによる前記命令の前記実行についての優先レベルを判定する工程と、
前記命令が優先性の高い命令であることを該命令の優先レベルが示す場合、前記プロセッサによる該命令の実行のために、該命令を前記第1のメモリに読み込む工程と、
前記命令が優先性の高い命令であることを該命令の優先レベルが示さない場合、前記プロセッサによる該命令の実行のために、該命令を前記第2のメモリに読み込む工程と、
を含むことを特徴とする方法を提案する。
問題のメモリは、キャッシュとは異なるものでありうる。
動的(ダイナミック)ランダムアクセスメモリは、データのリフレッシュを必要とするランダムアクセスメモリとして定義されうる。静的(スタティック)ランダムアクセスメモリは、リフレッシュを全く必要としないランダムアクセスメモリとして定義されうる。
静的ランダムアクセスメモリは、一般に非常に高速だが、大きなシリコン上での面積(シリコンフットプリント)を有する。動的ランダムアクセスメモリは、一般に安価であり、より容量が小さい。
例えば、第1のランダムアクセスメモリはSCRAM(「静的カラムランダムアクセスメモリ」)であり、第2のランダムアクセスメモリはSDRAM(「同期(シンクロナス)動的ランダムアクセスメモリ」)である。
SCRAMメモリは、命令の高速な読み込み及び消去を可能とする。さらに、SCRAMメモリは様々な形式の回路に容易に含められうる。
例えば、第1の静的ランダムアクセスメモリはプロセッサ内部のメモリであり、第2の動的ランダムアクセスメモリはプロセッサ外部のメモリである。メモリをプロセッサに近づけることは、より高速なデータ転送を可能とする。
本発明によれば、命令は、命令に割り当てられた優先性に従って、動的に、第1のランダムアクセスメモリ及び第2のランダムアクセスメモリへと読み込まれ、かつ第1のランダムアクセスメモリ及び第2のランダムアクセスメモリから消去される。
命令に割り当てられた優先性は、コンピュータシステムによる特定の機能の実行の状況に依存しうる。
さらなる例として、命令が、特定の機能によってよく用いられるコンピュータコードからの命令であるという事実からも、この命令に与えられる優先性が生じてくる。
本発明のランダムアクセスメモリ管理は、ハードウェア開発に余計のコストを必要とせずに、プロセッサの演算能力を向上させ、かつコンピュータプログラムの実行を加速することを可能とする。
いくつかの実施形態において、本方法はさらに、前記プロセッサにより実行される命令セットを受け取る工程と、
前記命令セット内で、前記命令のそれぞれについて判定された前記プロセッサによる実行のための優先レベルの関数として、第1の命令サブセットと第2の命令サブセットとを定義する工程と、
前記プロセッサによる実行のために、前記第1の命令サブセットを前記第1のメモリに読み込む工程と、
前記プロセッサによる実行のために、前記第2の命令サブセットを前記第2のメモリに読み込む工程と、をさらに有し、
前記第1のサブセットは優先命令を含み、該優先命令の実行優先レベルは、該優先命令が前記第2のサブセット内の命令に対して優先性を有することを示す。
いくつかの実施形態において、命令は、その優先レベルが変化する際に、第1のランダムアクセスメモリと第2のランダムアクセスメモリとの間で読み込まれ/消去される。
従って、プロセッサ使用の状況に依存して、命令は高い優先レベルから低い優先レベルへと変化することができ、逆も成り立つ。
例えば、プロセッサによって実行される新しく呼び出された命令よりも、低い優先性を命令が有することが見いだされうる。
コンピュータシステムによる機能の実行と関連付けられた命令セットが特定されるようにも構成されうる。
例えば、「ユースケース(使用事例)」に依存して、よく用いられるある命令が好み(プリファレンス)を与えられてもよい。
例えば、遠距離電気通信アプリケーションが開始される場合、このアプリケーションによって頻繁に実行される命令に優先性を与え、この命令を静的ランダムアクセスメモリ(例えばSCRAMメモリ)において利用可能とすることによって、このアプリケーションの実行は加速されうる。
いくつかの実施形態において、前記命令は少なくとも1つの優先度パラメータと関連付けられ、前記命令の前記優先レベルの前記判定は、該命令のそれぞれの優先度パラメータに基づく。
このことは、例えば、パラメータを含むテーブルから読み出すことによる、命令の優先レベルの高速な判定を可能とする。
例えば、優先度パラメータは、プロセッサの負荷の節約を表す。
例えば、この負荷の節約を判定するために、命令が第1のメモリ及び第2のメモリに格納された時の、プロセッサによって実行された命令毎のクロックサイクル数が比較される。
例えば、優先度パラメータは、前記命令によって占有されるメモリ量を表す。
いくつかの実施形態において、前記第1のメモリへの前記命令の格納が、該命令のサイズと該命令が与えるプロセッサの負荷の軽減との間で妥協することによってなされる。
静的ランダムアクセスメモリのサイズは限られているため、その最適な使用は、利用可能なメモリ量と、メモリに命令を格納することによって与えられるプロセッサの負荷の節約との比較に依存する。
例えば、前記命令と関連付けられた前記少なくとも1つのパラメータは、固定値を有する。
それぞれの命令ごとに関連付けられたパラメータを格納するテーブルが与えられうる。
さらなる例として、前記パラメータが、各命令と関連付けられたプロセッサの負荷の節約の測定値に基づいて優先度パラメータを割り当てる学習アルゴリズムに従って、動的に前記命令に関連付けられる。
パラメータを動的に確立するために、命令を実行するために必要な演算回数の動的な測定値が与えられうる。他の変形例において、命令の実行のそれぞれの瞬間における、プロセッサ負荷レベルへの動的アクセスが存在しうる。
いくつかの実施形態において、前記第1のメモリへの前記命令の格納は、前記第1のメモリが満たされる方法を最適化する、学習及び最適化アルゴリズムに従ってなされる。
例えば、このアルゴリズムは適応アルゴリズムであり、静的ランダムアクセスメモリに一緒に格納された際に静的ランダムアクセスメモリの良好な最適化を与えるような、命令の関連を特定しうる。
本発明の他の態様はまた、
コンピュータシステムのリソース管理部によって実行された際に、本発明に従う記載の方法を実行するための命令を含む、コンピュータプログラムと、
本発明に従うコンピュータシステムと、
本発明に従うシステムを備える集積回路と、を可能とする。
コンピュータプログラム、システム、及び集積回路は、本発明の第1の態様に従う処理によって与えられるのと同じ利点を、少なくとももたらす。
続く詳細な説明を読むことにより、本発明の他の特徴及び利点が明らかとなるだろう。この詳細な説明は、純粋に例示的なものであり、添付の図面を考慮して読まれるだろう。図面において、
本発明の一実施形態に従うコンピュータシステムの処理部の構成を概略的に表す。 本発明の一実施形態に係るシステムのアーキテクチャ(構造)を表す。 本発明の一実施形態に従うリソース管理を表す。 一実施形態に従うランダムアクセスメモリの管理を表す。 本発明の一実施形態に従う方法において実行される工程のフローチャートである。 本発明の一実施形態に従う優先度パラメータを設定する方法において実行される工程のフローチャートである。 本発明の他の実施形態に従う優先度パラメータを設定する方法において実行される工程のフローチャートである。
コンピュータシステムの処理部の構成が、図1を参照して非常に概略的に説明される。
この構成には、より一般的な、コンピュータプログラムの実行という文脈において、いくぶん基礎的な命令を実行する役割を持つプロセッサ10が存在する。
プロセッサ10は、この目的のために利用可能な様々な形式のメモリを有する。
プロセッサは、プロセッサに利用可能ないくつかのキャッシュメモリを有する。この形式のメモリは、命令の実行のために役立つデータを一時的に格納するために用いられる。この形式のメモリは、プロセッサによって実行される演算のオペランド、又は実行される演算の識別子のような、処理されるデータを格納することができる。このメモリはアクセス時間の点で非常に高い性能を有し、用いられるデータを、プロセッサの近くに持ってくるようにコピーするために用いられる。
このようなキャッシュメモリの中に、「L1」キャッシュ11がある。これはプロセッサに最も近いキャッシュであり、またアクセス時間の点で最も高い性能を有する。この形式のメモリは一般に非常に高価であり、それゆえそのサイズは一般に限られている。このようなキャッシュメモリの中に、静的ランダムアクセスメモリ12がある。このランダムアクセスメモリもまた、L1キャッシュの性能には劣るものの、非常に良好な性能を有する。この形式のメモリのコストは、L1キャッシュよりもより多くのこの形式のメモリを備えることを可能とする。
プロセッサ10はまた、利用可能な動的ランダムアクセスメモリ13を有する。この形式のランダムアクセスメモリは、一般に、定期的にデータをリフレッシュすることを必要とするが、シリコン上には非常に限られた領域しか取らず、その構造が非常に単純であるために安価である。
最後に、処理ユニットは、永続的な方法でデータを格納するリードオンリーメモリ(読み出し専用メモリ)14を有する。
例えばリードオンリーメモリ14に格納されたコンピュータプログラムを実行するために、処理ユニットは、プログラムの実行を速くするために、コンピュータコードのある部分をランダムアクセスメモリ又はキャッシュへとコピーする。
プログラムの実行をさらに速くするために、プロセッサが利用可能なランダムアクセスメモリの使用、特に静的ランダムアクセスメモリ12及び動的ランダムアクセスメモリ13の管理を最適化することが提案される。
提案される最適化を説明するために、図2a及び2bを参照して、本発明を実装する状況が説明される。
図2aにおいて、動的ランダムアクセスメモリ20及び静的ランダムアクセスメモリ21が表されている。
情報システムは、コンピュータプログラムを実行しなければならないことが仮定される。この目的のために、情報システムは、実行されるであろう決まった数の命令(又はコードの一部)について知っている。これらの命令は、仮想メモリ22において特定される。この仮想メモリは、命令が格納されるリードオンリーメモリ内のアドレスを含むテーブルを表す。
メモリ管理部(MMU)23は、適切な時に、仮想アドレスを、ランダムアクセスメモリ内の物理アドレスへと変換する役割を有する。このメモリ管理部は、システム内の様々な種類のメモリ(RAM又はROM)についてこのような変換を扱う。
図2aに表される例において、ここで実行される命令の中には、USBポート上通信管理命令220、動画符号化命令221、動画復号化命令222、音声符号化命令223、音声復号化命令224、WiFi通信管理命令225、データストリーム管理命令226、及び遠距離電気通信実行命令227がある。
図2aにより表される例においては、処理部が動画ストリームの受け取りを実行することが仮定される。
この目的のために、本発明に従って、この受け取りを実行するのに重要な命令が、仮想メモリにおいて特定される。この重要なアプリケーションは、例えば、それらの実行が速くされたならば、動画ストリーム受け取り機能の実行を速くすることができる命令である。
そして、動画復号化命令222、音声復号化命令224、データストリーム管理命令226、及び通信実行命令227が特定される。
次に、命令222、224、226、及び227が静的ランダムアクセスメモリ21に格納され、他の命令が動的ランダムアクセスメモリ20に格納される。
この例において優先性を有すると判定されている動画ストリームの受け取りは、こうして、静的ランダムアクセスメモリの性能から利益を得ながら実行され、一方で処理部によって実行される他の機能は動的ランダムアクセスメモリのみを用いる。
このことは、動画ストリームの受け取りの実行を速くする。
図2bに表される他の例においては、図2aを参照して説明されたものと同様の要素が見出される。
この場合、コンピュータシステムがUSBポート上でモデム機能を実行することが仮定される。
この機能を実行するために重要な命令が特定される。図2bに表される例においては、重要な機能は命令220及び227であると仮定される。
そしてこの命令はメモリ21へと読み込まれる一方で、命令222、224、及び226はメモリ21からは消去(アンロード)されてメモリ20へと読み込まれる。
このことは、以前には優先性を有していた動画ストリーム受け取り機能に対して優先性を有するとみなされる、USBポート上でのモデム機能の実行を速くする。
ランダムアクセスメモリの管理は、リソース管理部(リソース・マネージャ)によって実行されうる。
このようなリソース管理部が図3に表される。
リソース管理部30は、インタフェース31を介して、様々なリソース32及び33へと接続される。これらのリソースは、例えば、遠距離電気通信、マルチメディア、接続、又は他の機能のような機能のコンピュータコードを格納するファイルである。例えば、図2a及び2bの例についての命令は、これらのリソースからやってくる。
リソース管理部は、実行されるコンピュータプログラムに従って、リソースについての命令を静的メモリ34及び動的メモリ35へと格納する。
この目的のために、リソース管理部は直接メモリアクセス部(ダイレクト・メモリ・アクセス・ユニット)36及びメモリ管理部(メモリ・マネジメント・ユニット)37へのアクセスを有する。
既に述べたように、メモリ管理部は実行される命令の仮想メモリアドレスを知っており、これらの仮想アドレスをメモリ34及び35の物理アドレスへと変換する役割を有する。直接メモリアクセス部は、動的ランダムアクセスメモリ及び静的ランダムアクセスメモリへのデータのコピーを扱い、同様にこれら2つのメモリ間でのデータ交換を扱う。
リソース管理部30は、それぞれのドライバ38及び39を介して、直接メモリアクセス部36及びメモリ管理部37を制御する。
一実施形態に従うランダムアクセスメモリ管理が、図4を参照して説明される。
テーブル40は、4つの命令グループI1、I2、I3、及びI4(INSTR列)と、それらにそれぞれ関連付けられた優先度パラメータのセット(PARAM列)との関連付けを表す。
例えばキロビット単位のサイズ(SIZ列下)、及び例えばパーセント単位のプロセッサ負荷の節約(%Sav列下)が、それぞれの命令と関連付けられている。
プロセッサ負荷節約パラメータを得るためには、例えば、一方として、命令が動的RAMから実行された時と命令が静的RAMから実行された時との間の命令についての実行時間の差、他方として、命令が動的RAMが実行された時の命令についての実行時間、この比率を算出することができる。
他の例としては、一方として、命令が動的RAMから実行される時と命令が静的RAMが実行される時との間のプロセッサが命令を実行するための演算回数の差、他方として、動的RAMからプロセッサが命令を実行するための演算回数、この比率を算出することができる。
そして、命令グループI1は19kBのサイズを有しかつプロセッサ負荷の5%の節約を可能とし、命令グループI2は5kBのサイズを有しかつプロセッサ負荷の3%の節約を可能とし、命令グループI3は4kBのサイズを有しかつプロセッサ負荷の2%の節約を可能とし、命令グループI4は5kBのサイズを有しかつプロセッサ負荷の2%の節約を可能とする。
利用可能な20kBの静的RAMが存在するものと仮定する。
テーブル41は、一実施形態に従う、静的RAMの最適化のための演算シーケンスを表す。
時刻t1において、命令グループI1の実行が要求される(RQST列)。静的RAM及び動的RAMは空であることが仮定される(列SCRAM SIZ及びSDRAM SIZ)。最適化はまた始まっておらず、それゆえプロセッサ負荷の節約はまだゼロである(%SAV列)。代わりに、全ての命令を最初に動的RAMに格納することもでき、この場合静的RAMのみが空である。
静的RAMが空であり、命令グループI1が静的RAMに格納されうるサイズであって従ってプロセッサ負荷を減らしうるために、この命令は静的RAMに読み込まれる(OPER列)。
時刻t2において、命令グループI2の実行が要求される。
この命令グループは、5kBのサイズを有する。しかしながら、静的RAMにおいては1kBのみが開放されている(フリーである)。それゆえ、命令グループI1及びI2は、どれが最大のプロセッサ負荷の節約を与えるかを確かめるために調べられる。この例において、これはグループI1である。
それゆえ命令グループI1は静的RAMに保持され、命令グループI2は動的RAMに格納される。今度は命令グループI2は動的RAMへとコピーされ、MMUはこれに従って再構成される。上述のように、初期設定として命令グループが動的RAMに格納されていたならば、何も行われない。
時刻t3において、命令I3の実行が要求される。
この命令グループは、4kBのサイズを有する。しかしながら、静的RAMにおいては1kBのみが開放されている。それゆえ、命令グループI1及びI3は、どれが最大のプロセッサ負荷の節約を与えるかを確かめるために調べられる。この例において、これはグループI1である。
命令グループI1の代わりに、命令グループI2及びI3を同時に静的RAMに格納することが、よりよい負荷の節約を与えるか否かがまた、調べられる。これら2つの命令を格納することはプロセッサの負荷の5%の節約を与え、これは静的RAMの命令グループI1を格納することにより与えられる節約と全く同じであるために、この例においてはそのような場合ではない。もし2つの命令がより少ない空間しか占有しない場合であっても、命令グループI1及びI2を移動させる演算はプロセッサ負荷を増加させるであろうから、これらを静的RAMに格納することは有利ではないだろう。
したがって、命令グループI1は静的RAMに保持され、命令グループI3は動的RAMに格納される。
時刻t4において、命令グループI4の実行が要求される。
この命令グループは、5kBのサイズを有する。しかしながら、静的RAMにおいては1kBのみが開放されている。それゆえ、命令グループI1及びI4は、どれが最大のプロセッサ負荷の節約を与えるかを確かめるために調べられる。この例において、これはグループI1である。
命令グループI1の代わりに、命令グループI2、I3、及びI4の中からのいくつかの命令グループを同時に静的RAMに格納することが、よりよい負荷の節約を与えるか否かがまた、調べられる。これら3つのグループを格納することはプロセッサ負荷の7%(3+2+2)の節約を与え、これはグループI1を静的RAMに格納することによって与えられる節約、これは5%である、よりも大きいため、この例においてはそのような場合になる。さらに、3つのグループを併せたサイズは14kBであり、これは静的RAMに受け入れられうる。
メモリ間のデータ転送は、プロセッサの負荷の節約による利益に対して不利な影響を与えないことが仮定される。それゆえ、命令グループI1は静的RAMから動的RAMへと移動され、命令グループI2及びI3は動的RAMから静的RAMへと移動され、命令グループI4は静的RAMに格納される。
それゆえ時刻t5において、我々は、命令グループがプロセッサの負荷の節約を最適化することを可能とするように、静的RAMに格納された命令を有する。
一実施形態の方法において実行される工程が、図5を参照して提示される。
本実施形態において、静的RAMの使用は、図4を参照して説明された例のように、命令サイズパラメータ及びプロセッサ負荷節約パラメータに従って最適化される。
第1の工程S500の間に、プロセッサによって実行されるように、命令が受け取られる。この命令が静的RAMに読み込まれるか又は動的RAMに読み込まれるかを判定することが試みられる。
工程S501の間に、命令に関連付けられた、メモリにおいてこの命令が占有するサイズを表すパラメータが判定される。例えば、このパラメータは図4を参照して説明されたようなテーブルから読み出される。
テストT502の間に、メモリにおいてこの命令が占有するサイズを表すパラメータが、この命令を静的RAMに直接格納することを許容するか否かが確立される。そのような場合、例えば静的RAMに十分な空間が存在する場合、この命令は工程S503の間に静的RAMに格納される。
そうではない場合、例えば静的RAMに十分な空間が存在しない場合、工程S504において、この命令を静的RAMに格納することによって提供されるプロセッサの負荷の節約を表す、この命令と関連付けられたパラメータが判定される。例えば、このパラメータは図4を参照して説明されたようなテーブルから読み出される。
すると、テストT505の間に、この命令が、既に静的RAMに格納されている他の命令よりもよりよい、プロセッサの負荷の節約を表すパラメータを有するか否かが判定される。
そのような場合、静的RAMに既に存在する命令は工程S507の間に消去され、そしてこの命令は工程S508の間に動的RAMに格納される。さらに、工程S500の間に受け取られた命令は、工程S509の間に静的RAMに格納される。
もし、試験T505における試験が否定的であるならば、命令についてのプロセッサの負荷の節約を表すパラメータが、足し合わされた場合に、静的RAMに既に格納されている他の命令についてのプロセッサの負荷の節約を表すパラメータよりも、よりよいプロセッサの負荷の節約を表すパラメータを提供するような命令が、動的RAMに存在するか否かが判定される、試験T510へと、処理は進む。
このような場合、工程S512の間にこの命令は静的RAMから消去され、そしてこの命令は工程S513の間に動的RAMに格納される。
次に、工程T505の間に発見された命令が、工程S514の間に、動的RAMから消去される。これらの命令はすると、工程S515の間に、静的RAMに格納される。
もし工程T510におけるテストが否定的であるならば、工程S500の間に受け取られた命令は、工程S511の間に動的RAMに格納される。
工程S515、S511、S503、及びS509が完了すると、実行される新しい命令を受け取るために、処理は工程S500に戻る。
プロセッサの負荷の節約を表すパラメータを判定するため、又は図4を参照して説明されたパラメータのテーブルを更新するために、学習アルゴリズムが実装されることができる。
このようなアルゴリズムが、図6を参照して今から説明される。
最初の工程S60の間に、実行される命令が特定され、そして工程S61の間に、プロセッサによる実行時間(又は上述のように、プロセッサが命令を実行するための演算数)が測定される。
命令が静的RAMから実行されるか動的RAMから実行されるかに依存して(テストT62)、静的RAMにおける実行時間の値(工程S63)及び動的RAMにおける実行時間の値(工程S64)が更新される。例えばこの実行時間は、プロセッサが命令を実行する時間の平均である。
そして、工程S65の間に、プロセッサの負荷の節約を表すパラメータが判定される。例えば、一方として、工程S63及びS64の間に得られた値の間の差分、他方として、工程S64の間に得られた値、の比率か判定される。この比率を見出すために、値が同じ条件下で得られたこと、例えば同じ状況下で(例えば同じコンピュータプログラムを実行している間に)命令が実行されたこと、又は、得られた値が平均であるならば、これらの平均が同じ数の値を用いて算出されたこと、を前もって確かめることができる。
他の実施形態に従う方法の工程が、図7を参照して今から説明される。
この実施形態において、命令は、関連付けられた機能に依存して、静的RAM又は動的RAMに格納される。
したがって、この機能に高い優先性を与えることが望まれるならば、この機能に関連付けられた全ての命令は静的RAMに格納される。
工程S70の間に、コンピュータプログラムの機能又はコードが特定される。例として、この機能の実行が加速される。
すると、工程S71の間に、この機能と関連付けられた命令セットが特定される。
特定された命令はすると、工程S72の間に、静的RAMに格納される。
工程S73の間に、この機能が実行されたこと、又はこの機能がもはや加速されないことが検出される。この命令はすると、例えば動的RAMに格納されるように、静的RAMから消去される。さらなる例として、この命令は単純に他のより高い優先性の命令で置き換えられる。
本発明のコンピュータプログラムは、図5、図6、及び図7のうちの少なくとも1つ、並びに本詳細な説明から導き出される、一般的なアルゴリズムに従って実現されうる。
本発明の集積回路は、本発明の処理を実装するように構成されるために、当業者に既知の技術によって実現されうる。例えば本発明のシステムは、システム・オン・チップ(SoC)の形をとる集積回路として実現されうる。
例えば本発明のシステムは、端末又は他の通信装置へと、これらの装置によるよりよい通信性能を可能とするために、埋め込まれうる。
本発明が、本詳細な説明及び図面において説明され、表された。本発明は、本明細書に表された実施形態には限定されない。当業者によって、本詳細な説明及び添付の図面を読んだ際に、他の変形例及び実施形態が導き出され、実現されうる。
請求の範囲において、「備える(comprise)」との用語は、他の要素又は他の工程を排除しない。不定冠詞「a」は、複数を排除しない。単一のプロセッサ、又はいくつかの他のものが、本発明を実装するために用いられうる。提示された様々な特徴と、特許請求された様々な特徴との少なくとも一方が、有利に組み合わせられうる。それらの特徴が詳細な説明に存在すること、又は異なる従属請求項に存在することは、このような可能性を排除しない。参照符号は、本発明の範囲を限定するものとして考えられるべきではない。

Claims (15)

  1. コンピュータシステムのランダムアクセスメモリ(RAM)を管理する方法であって、
    前記コンピュータシステムはプロセッサ(10)と、第1の静的ランダムアクセスメモリ(12)と、第2の動的ランダムアクセスメモリ(13)と、を備え、
    前記方法は、
    前記プロセッサにより実行される少なくとも1つの命令を受け取る工程(S500,S70)と、
    前記プロセッサによる前記命令の前記実行についての優先レベルを判定する工程(T502,T504,T510,S71)と、
    前記命令が優先度の高い命令であることを該命令の優先レベルが示す場合、前記プロセッサによる該命令の実行のために、該命令を前記第1のメモリに読み込み(S503,S509,S515,S72)、前記命令が優先度の高い命令であることを該命令の優先レベルが示さない場合、前記プロセッサによる該命令の実行のために、該命令を前記第2のメモリに読み込む(S508,S511,S513,S74)工程と、
    を含むことを特徴とする方法。
  2. 前記プロセッサにより実行される命令セット(220,…,227)を受け取る工程と、
    前記命令セット内で、前記命令のそれぞれについて判定された前記プロセッサによる実行のための優先レベルの関数として、第1の命令サブセットと第2の命令サブセットとを定義する工程と、
    前記プロセッサによる実行のために、前記第1の命令サブセットを前記第1のメモリに読み込む工程と、
    前記プロセッサによる実行のために、前記第2の命令サブセットを前記第2のメモリに読み込む工程と、をさらに有し、
    前記第1のサブセットは優先命令を含み、該優先命令の実行優先レベルは、該優先命令が前記第2のサブセット内の命令に対して優先性を有することを示すことを特徴とする、請求項1に記載の方法。
  3. 前記命令は少なくとも1つの優先度パラメータ(PARAM)と関連付けられ、前記命令の前記優先レベルの前記判定は、該命令のそれぞれの優先度パラメータに基づくことを特徴とする、請求項1又は2に記載の方法。
  4. 優先度パラメータが、プロセッサの負荷の節約(%SAV)を表すことを特徴とする、請求項3に記載の方法。
  5. 優先度パラメータが、前記命令によって占有されるメモリ量(SIZ)を表すことを特徴とする、請求項3又は4に記載の方法。
  6. 前記第1のメモリ又は前記第2のメモリへの前記命令の格納が、該命令のサイズと該命令が与えるプロセッサの負荷の軽減との間で妥協することによってなされることを特徴とする、請求項4又は5に記載の方法。
  7. 前記命令と関連付けられた前記少なくとも1つのパラメータが、固定値を有することを特徴とする、請求項3乃至6の何れか1項に記載の方法。
  8. 前記少なくとも1つのパラメータが、各命令と関連付けられたプロセッサの負荷の節約の測定値に基づいて優先度パラメータを割り当てる学習アルゴリズムに従って、動的に前記命令に関連付けられることを特徴とする、請求項3乃至6の何れか1項に記載の方法。
  9. 前記第1のメモリ又は前記第2のメモリへの前記命令の格納が、前記第1のメモリが満たされる方法を最適化する、学習及び最適化アルゴリズムに従ってなされることを特徴とする、請求項1乃至8の何れか1項に記載の方法。
  10. 前記第1のメモリがSCRAMメモリであり、前記第2のメモリがSDRAMメモリであることを特徴とする、請求項1乃至9の何れか1項に記載の方法。
  11. 前記命令が、該命令の優先レベルの変化の関数として、前記第1のメモリと前記第2のメモリとの間で読み込まれ/消去されることを特徴とする、請求項1乃至10の何れか1項に記載の方法。
  12. 前記コンピュータシステムによる機能の実行と関連付けられた命令セットが定義されていることを特徴とする、請求項2乃至11の何れか1項に記載の方法。
  13. コンピュータシステムのリソース管理部によって実行された際に、請求項1乃至12の何れか1項に記載の方法を実行するための命令を含む、コンピュータプログラム。
  14. プロセッサ(10)と、
    第1の静的ランダムアクセスメモリ(12)と、
    第2の動的ランダムアクセスメモリ(13)と、
    請求項1乃至12の何れか1項に記載の全ての処理工程を実行するように構成された管理部(30)と、
    を備えることを特徴とするコンピュータシステム。
  15. 請求項14に記載のシステムを備える集積回路。
JP2012537394A 2009-11-04 2010-11-03 ランダムアクセスメモリの動的管理 Expired - Fee Related JP5671050B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0957809 2009-11-04
FR0957809 2009-11-04
PCT/EP2010/066760 WO2011054884A1 (en) 2009-11-04 2010-11-03 Dynamic management of random access memory

Publications (3)

Publication Number Publication Date
JP2013510355A true JP2013510355A (ja) 2013-03-21
JP2013510355A5 JP2013510355A5 (ja) 2013-12-19
JP5671050B2 JP5671050B2 (ja) 2015-02-18

Family

ID=42357885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012537394A Expired - Fee Related JP5671050B2 (ja) 2009-11-04 2010-11-03 ランダムアクセスメモリの動的管理

Country Status (4)

Country Link
US (1) US9390029B2 (ja)
EP (1) EP2497025A1 (ja)
JP (1) JP5671050B2 (ja)
WO (1) WO2011054884A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体
US11014985B2 (en) 2010-05-14 2021-05-25 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012242877A (ja) * 2011-05-16 2012-12-10 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137513A (ja) * 1994-11-10 1996-05-31 Fanuc Ltd メモリ管理方式
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
JP2008021314A (ja) * 2006-07-13 2008-01-31 Internatl Business Mach Corp <Ibm> データの優先順位付けを用いるマルチレベルのメモリ・アーキテクチャ
WO2009028106A1 (ja) * 2007-08-31 2009-03-05 Panasonic Corporation 情報処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719602A (en) * 1985-02-07 1988-01-12 Visic, Inc. Memory with improved column access
US4839796A (en) * 1987-07-16 1989-06-13 Icon International, Inc. Static frame digital memory
US5634135A (en) * 1991-12-13 1997-05-27 Texas Instruments Incorporated Microprocessor with priority determination and priority based instruction selection
SE0000533D0 (sv) * 2000-02-18 2000-02-18 Ericsson Telefon Ab L M Static cache
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7502890B2 (en) * 2006-07-07 2009-03-10 International Business Machines Corporation Method and apparatus for dynamic priority-based cache replacement
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US7769955B2 (en) 2007-04-27 2010-08-03 Arm Limited Multiple thread instruction fetch from different cache levels
US20090138683A1 (en) 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
JP5414305B2 (ja) * 2009-02-25 2014-02-12 キヤノン株式会社 情報処理装置、仮想記憶管理方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137513A (ja) * 1994-11-10 1996-05-31 Fanuc Ltd メモリ管理方式
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
JP2008021314A (ja) * 2006-07-13 2008-01-31 Internatl Business Mach Corp <Ibm> データの優先順位付けを用いるマルチレベルのメモリ・アーキテクチャ
WO2009028106A1 (ja) * 2007-08-31 2009-03-05 Panasonic Corporation 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11014985B2 (en) 2010-05-14 2021-05-25 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47
US11807684B2 (en) 2010-05-14 2023-11-07 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体

Also Published As

Publication number Publication date
US9390029B2 (en) 2016-07-12
JP5671050B2 (ja) 2015-02-18
US20120215975A1 (en) 2012-08-23
WO2011054884A1 (en) 2011-05-12
EP2497025A1 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
JP6430970B2 (ja) 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行
KR20120123127A (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
US20100312977A1 (en) Method of managing memory in multiprocessor system on chip
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
US9632958B2 (en) System for migrating stash transactions
US9870042B2 (en) Apparatus and method managing power based on data
JP5671050B2 (ja) ランダムアクセスメモリの動的管理
WO2016138785A1 (zh) 一种运行进程的方法及装置
JP7126136B2 (ja) 再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法
JP7410186B2 (ja) Gpuにおける明示的な個別マスクレジスタのマスク操作方法
US11226798B2 (en) Information processing device and information processing method
US20160210171A1 (en) Scheduling in job execution
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
CN104216684A (zh) 一种多核并行系统及其数据处理方法
CN107451070B (zh) 一种数据的处理方法和服务器
JP2005209206A (ja) マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ
US10901883B2 (en) Embedded memory management scheme for real-time applications
TW202107408A (zh) 波槽管理之方法及裝置
JP5278538B2 (ja) コンパイルシステム、コンパイル方法およびコンパイルプログラム
US9405470B2 (en) Data processing system and data processing method
CN112214443B (zh) 设置于图形处理器中的二次卸载装置和方法
US9141310B1 (en) Methods and apparatuses for shared state information among concurrently running processes or threads
CN113110879B (zh) 指令处理方法及装置
CN112230931B (zh) 适用于图形处理器的二次卸载的编译方法、装置和介质
US20220067872A1 (en) Graphics processing unit including delegator and operating method thereof

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141218

R150 Certificate of patent or registration of utility model

Ref document number: 5671050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees