JP2008217134A - メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム - Google Patents
メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム Download PDFInfo
- Publication number
- JP2008217134A JP2008217134A JP2007050269A JP2007050269A JP2008217134A JP 2008217134 A JP2008217134 A JP 2008217134A JP 2007050269 A JP2007050269 A JP 2007050269A JP 2007050269 A JP2007050269 A JP 2007050269A JP 2008217134 A JP2008217134 A JP 2008217134A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- memory
- block
- processor
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 326
- 238000007726 management method Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000003860 storage Methods 0.000 claims abstract description 37
- 238000012546 transfer Methods 0.000 claims description 50
- 238000004458 analytical method Methods 0.000 claims description 12
- 230000005055 memory storage Effects 0.000 claims description 4
- 230000010365 information processing Effects 0.000 claims 3
- 238000012545 processing Methods 0.000 description 50
- 238000003491 array Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 101150086656 dim1 gene Proteins 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000013256 coordination polymer Substances 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000004807 localization Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 101150097195 TLG1 gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/453—Data distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】プロセッサによって使用されるメモリの記憶領域を管理する方法であって、前記プロセッサは、タスクの実行時に使用されるデータを格納するメモリに接続されており、前記メモリの記憶領域を複数の異なるサイズのブロックに分割し、前記タスクの実行時に使用されるデータに適合するサイズのブロックを選択し、前記選択されたブロックに、前記タスクの実行時に使用されるデータを格納する。
【選択図】図5
Description
1)ソースプログラムからマクロタスクを生成。
2)マクロタスク間の制御フロー及びデータ依存を解析しマクロフローグラフを生成。
3)最早実行可能条件解析によってマクロタスクグラフを生成。
を作成する。マクロフローグラフでは、マクロタスク(MT)間の制御フローを表している。マクロタスクグラフを作成する際は、マクロタスク間の制御依存及びデータ依存を同時に解析し、各マクロタスクが最も早く実行できる条件(最早実行可能条件)の形でマクロタスク間の並列性を検出する。。また、この最早実行開始条件をグラフで表現したものがマクロタスクグラフである。
図4は、本発明の実施の形態のローカルメモリ管理の概要を説明する図である。
図5は、本発明の実施の形態のメモリの記憶領域の分割の状態を説明する図である。
ブロック101、サブブロック102、サブサブブロック103、サブサブサブブロック104は独立して管理される。コンパイラは、メモリの各アドレス空間に任意のサイズのブロックを設定することができる。コンパイラは、コンパイルされるプログラムに応じて適切なサイズのブロック等を設定する。すなわち、大きいデータを扱うプログラムでは大きなサイズのブロックを、小さいデータを扱うプログラムでは小さなサイズのブロックを用意することによって、ローカルメモリを無駄なく、かつ効率よく使用することができる。
次に、ブロックへのデータの書き込み(ロード)、読み出し(ストア)、及び、ブロックの割り当てについて説明する。
1)以後アクセスされないデータ。
2)他プロセッサでアクセスされるが、自プロセッサではアクセスされないデータ。
3)再度自プロセッサで使用されるが、先の時間で使用されるデータ。
4)自プロセッサですぐに使用されるデータ。
次に、図8から図11を参照して、ループの分割手順の具体例を説明する。
1)各ループが、Doallループ、Reductionループ、ループキャリッドデータ依存(リカレンス)によるSequentialループのいずれかである。
2)ループ間に配列変数のデータ依存が存在する。
3)各ループのループ制御変数が同一配列の同じ次元の添字式で使用されており、次元の配列添字がループ制御変数の一次式で表されている。
4)ループ間にデータ依存を導く各配列に対して、配列添字中のループ制御変数係数のループ間での比が一定である。
1)少なくとも一つ以上共有配列を持つ(依存関係も考慮される)。
2)共有配列の整合次元が全て一致する。
3)サブルーチンを跨った場合は、共有配列の形状が一致する。
次に、テンプレートの作成手順について説明する。
次に、図12〜図13を参照して、ブロックサイズの決定手順の別な具体例について説明する。
次に、図14から図15を参照して、ローカルメモリ管理マクロタスクの生成の別な具体例を説明する。
ない場合、ループのディストリビューションを実行して、同じデータを扱うループを連続的に実行するようにする。これによって、ループの実行時にデータの転送が発生しないようにすることができる。
図16は、本発明の実施の形態のテンプレートの作成手順の例を示す。
do dim3 = 1, 4
do dim2 = 1, 16
do dim1 = 1, 2
tempA(dim1, dim2, dim3, 2) = GA(dim1, dim2, dim3)
enddo
enddo
enddo
を実行することによって、配列変数GAのデータが、ローカルメモリのブロック2に格納される。
do dim3 = 1, 4
do dim2 = 1, 8
do dim1 = 1, 2
temp_subA(dim1, dim2, dim3, 4) = GA(dim1, dim2, dim3)
enddo
enddo
enddo
を実行することによって、配列変数GAのデータが、ローカルメモリのサブブロック4に格納される。
次に、図19から図34を参照して、テンプレート配列を用いたコードイメージの作成の具体例について説明する。図19から図34の説明は、ローカルメモリサイズを1024、ブロックサイズは128とし、ローカルメモリの領域を4個のブロック101、4個のサブブロック102、4個のサブサブブロック103、8個のサブサブサブブロック104に分割した場合に、コンパイラがコードを書き換える様子及びプログラム実行時のローカルメモリの状態を示す。
Integer a(128), b(128), c(128), d(128), e(128)
Integer LM(1024)
Integer templ(128, 0:7)
EQUIVALENCE (LM, templ)
これによって、テンプレートがローカルメモリに割り当てられる。
16 プロセッサコア(PC)
14 集中共有メモリ(CSM)
18 入出力用チップ(I/O CSP)
12 チップ間結合網(InterCCN)
28 集中共有メモリ(CSM/L2 Cache)
34 チップ内結合網(IntraCCN)
20 CPU
22 分散共有メモリ(DSM)
24 ローカルプログラムメモリ(LPM/I−Cache)
26 ローカルデータメモリ(LDM/D−cache)
30 データ転送コントローラ(DTC)
32 ネットワークインターフェイス(NI)
36 電力制御レジスタ(FVR)
Claims (21)
- プロセッサによって使用されるメモリの記憶領域を管理する方法であって、
前記プロセッサは、タスクの実行時にアクセスされるデータを格納するメモリに接続されており、
前記メモリの記憶領域を複数の異なるサイズのブロックに分割し、
前記タスクの実行時にアクセスされるデータに適合するサイズのブロックを選択し、
前記選択されたブロックに、前記タスクの実行時にアクセスされるデータを格納することを特徴とするメモリ管理方法。 - 前記タスクを含むプログラムの解析によって得られた情報に基づいて決定されるサイズに、前記ブロックを分割することを特徴とする請求項1に記載のメモリ管理方法。
- 前記ブロックは、複数のサイズのブロックを含み、前記ブロックの複数のサイズは整数倍の関係にあることを特徴とする請求項1又は2に記載のメモリ管理方法。
- 前記データに前記選択されたブロックへ割り当てることを決定した後、データ転送手段によって、前記データを前記選択されたブロックに格納し、
前記ブロックの解放タイミングまでに、前記データ転送手段によって、前記選択されたブロックに格納されたデータを読み出し、他のメモリに格納することを特徴とする請求項1から3のいずれか一つに記載のメモリ管理方法。 - 前記タスクでアクセスされるデータにn次元の配列データが含まれる場合に、前記タスクでアクセスされる配列データに整合するように選択されたn+1次元のテンプレートを、前記ブロックに割り当て、
データを格納するブロックを指定する場合に、前記加えられた次元の値によって、アクセスされるブロックが異なるように、次元の値の異なる前記テンプレートを前記各ブロックに割り当てることを特徴とする請求項1から4のいずれか一つに記載のメモリ管理方法。 - プロセッサがメモリの記憶領域を管理する方法であって、
前記プロセッサは、プログラムの実行時にアクセスされるデータを格納するメモリに接続されており、
前記方法は、
前記メモリの記憶領域をブロックに分割し、
前記プログラムの解析によって得られた情報に基づいて定められた複数の形状及びサイズのテンプレートを、適合する大きさのブロックに割り当て、
前記割り当てられたテンプレートに適合する形状及び大きさのデータを、前記テンプレートに格納することを特徴とするメモリ管理方法。 - 前記テンプレートを割り当てるステップでは、
各ブロックに割り当て可能な複数種類のテンプレートから、前記プログラムでアクセスされる配列データの次元に1を加えた次元を有し、各次元の最大値が前記プログラムでアクセスされる配列データの各次元の最大値より大きいテンプレートを割り当て、
前記加えられた次元の値によって、アクセスされるブロックが異なるように、複数の前記テンプレートを複数の前記ブロックに割り当てることを特徴とする請求項6に記載のプログラムの作成方法。 - プロセッサ及び前記プロセッサによってアクセスされるデータを格納するメモリを備える情報処理装置であって、
前記メモリの記憶領域は、前記プロセッサで実行されるプログラムの解析によって得られた情報に基づいて決定される複数のサイズのブロックに分割され、
前記ブロックに割り当てられるテンプレートの形状及びサイズは、前記プログラムの解析によって得られた情報に基づいて定められており、
前記プロセッサは、
前記プロセッサで実行されるプログラムの解析によって得られた情報に基づいて決定される複数のサイズのブロックに、前記メモリの記憶領域を分割し、
前記プログラムの解析によって得られた情報に基づいて定められた形状及びサイズのテンプレートを、適合する大きさのブロックに割り当て、
前記割り当てられたテンプレートに適合する形状及び大きさのデータを、前記テンプレートに格納することを特徴とする情報処理装置。 - 前記プログラムでアクセスされる配列データの次元に1を加えた次元を有し、加えられた次元以外の各次元の最大値が前記プログラムでアクセスされる配列データの各次元の最大値以上のテンプレートが割り当てられ、
前記加えられた次元の値によって、アクセスされるブロックが異なるように、複数の前記テンプレートが複数の前記ブロックに割り当てられることを特徴とする請求項8に記載の情報処理装置。 - プロセッサによって実行可能なプログラムの作成方法であって、
プログラムの情報をコンパイラによって解析し、
前記プログラムに含まれる各タスクの実行に必要なデータを特定し、
前記タスクの実行タイミングに従って、必要なデータをメモリに読み書きするタイミングを決定し、
前記決定されたデータの書き込みタイミングまでに前記メモリの領域を割り当てる命令を、コンパイルされるプログラムに追加することを特徴とするプログラムの作成方法。 - 前記プログラムの解析によって得られた情報に基づいて、解放する前記領域及び前記領域を解放するタイミングを決定し、
前記割り当てられた領域を解放するために、前記決定されたタイミングまでに前記メモリに書き込まれたデータを読み出す命令を、前記コンパイルされるプログラムに追加することを特徴とする請求項10に記載のプログラムの作成方法。 - 前記メモリの領域を割り当てた後に、データ転送手段によって、前記データを前記メモリに格納する命令、及び
前記メモリの領域の解放タイミングまでに、前記データ転送手段によって、前記メモリに格納されたデータを読み出し、他のメモリに格納する命令を、前記コンパイルされるプログラムに追加することを特徴とする請求項11に記載のプログラムの作成方法。 - 前記プログラムの解析によって得られた情報は、前記プログラムでアクセスされるデータの情報、前記データが次にアクセスされるタイミングの情報、前記データをアクセスするプロセッサの情報の少なくとも一つを含むことを特徴とする請求項10から12のいずれか一つに記載のプログラムの作成方法。
- 前記プロセッサは複数のプロセッサコアを備えるマルチプロセッサであって、
前記方法は、前記タスクをいつどのプロセッサに実行させるかを決定し、前記決定されたプロセッサに前記タスクを割り当てる命令を、前記コンパイルされるプログラムに追加することを特徴とする請求項10から13のいずれか一つに記載のプログラムの作成方法。 - 前記メモリの領域は、前記メモリの記憶領域が固定サイズのブロックに分割された領域であることを特徴とする請求項10から14のいずれか一つに記載のプログラムの作成方法。
- 前記メモリの領域は複数の異なるサイズのブロックに分割された領域であって、
前記複数のサイズは、前記ブロックの複数のサイズは整数倍の関係にあることを特徴とする請求項15に記載のプログラムの作成方法。 - 前記ブロックのサイズは、前記コンパイラがプログラムを解析して得られた情報に基づいて決定されることを特徴とする請求項15に記載のプログラムの作成方法。
- 前記タスクでアクセスされるデータを前記一つのブロックに収まるようにするために、前記プログラムを分割することを特徴とする請求項15に記載のプログラムの作成方法。
- 前記プログラムは多重ループを含み、
外側のループの分割によって生成されたタスクでアクセスされるデータが前記ブロックに収まるか否かを判定し、
前記外側のループが分割によって生成されたタスクでアクセスされるデータが前記ブロックに収まらなければ、更に内側のループを分割することによって、前記データのサイズを変更することを特徴とする請求項18に記載のプログラムの作成方法。 - 前記プログラムでアクセスされるデータにn次元の配列データが含まれる場合に、前記プログラムでアクセスされる配列データに整合するように選択されたn+1次元のテンプレートを割り当て、
データを格納する領域を指定する場合に、前記加えられた次元の値によって、アクセスされる領域が指定されるように、複数の前記テンプレートを複数の領域に割り当てることを特徴とする請求項10から19のいずれか一つに記載のプログラムの作成方法。 - プロセッサによって実行可能なプログラムであって、
前記プログラムは、コンパイラによって、
プログラムの情報が解析され、
前記プログラムに含まれる各タスクの実行に必要なデータが特定され、
前記タスクの実行タイミングに従って、必要なデータをメモリに読み書きするタイミングが決定され、
前記決定されたデータの書き込みタイミングまでに前記メモリの領域を割り当てる命令が追加されることによって生成されるプログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007050269A JP5224498B2 (ja) | 2007-02-28 | 2007-02-28 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
US12/525,404 US8438359B2 (en) | 2007-02-28 | 2008-02-27 | Memory management method, information processing device, program creation method, and program |
CN2008800037808A CN101601017B (zh) | 2007-02-28 | 2008-02-27 | 存储器管理方法以及程序的生成方法 |
KR1020097017059A KR101186174B1 (ko) | 2007-02-28 | 2008-02-27 | 메모리 관리방법, 정보처리장치, 프로그램의 작성방법 및 프로그램 |
PCT/JP2008/053891 WO2008105558A1 (ja) | 2007-02-28 | 2008-02-27 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
GB1109237.6A GB2478874B (en) | 2007-02-28 | 2008-02-27 | Memory management method, information precessing device, program creation method, and program |
GB0914592.1A GB2459802B (en) | 2007-02-28 | 2008-02-27 | Memory management method and information processing device implementing the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007050269A JP5224498B2 (ja) | 2007-02-28 | 2007-02-28 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008217134A true JP2008217134A (ja) | 2008-09-18 |
JP5224498B2 JP5224498B2 (ja) | 2013-07-03 |
Family
ID=39721378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007050269A Active JP5224498B2 (ja) | 2007-02-28 | 2007-02-28 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8438359B2 (ja) |
JP (1) | JP5224498B2 (ja) |
KR (1) | KR101186174B1 (ja) |
CN (1) | CN101601017B (ja) |
GB (2) | GB2478874B (ja) |
WO (1) | WO2008105558A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499034A (zh) * | 2009-03-05 | 2009-08-05 | 北京中星微电子有限公司 | 内存管理方法 |
WO2011078162A1 (ja) * | 2009-12-24 | 2011-06-30 | 日本電気株式会社 | スケジューリング装置、スケジューリング方法及びプログラム |
JP2013528861A (ja) * | 2010-05-20 | 2013-07-11 | アップル インコーポレイテッド | サブバッファオブジェクト |
JP2014225089A (ja) * | 2013-05-15 | 2014-12-04 | オリンパス株式会社 | 演算装置 |
JP2014225088A (ja) * | 2013-05-15 | 2014-12-04 | オリンパス株式会社 | 演算装置 |
JP2015095218A (ja) * | 2013-11-14 | 2015-05-18 | 株式会社デンソー | 電子制御装置 |
JP2015149038A (ja) * | 2014-02-10 | 2015-08-20 | ルネサスエレクトロニクス株式会社 | 演算制御装置及び演算制御方法並びにプログラム、OpenCLデバイス |
JP2018525724A (ja) * | 2015-06-29 | 2018-09-06 | アイキャス ゲゼルシャフト ミット ベシュレンクテル ハフツングaicas GmbH | メモリ管理装置を用いた自動メモリ管理 |
US11231917B2 (en) | 2018-06-20 | 2022-01-25 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium storing therein compiler program, and compiling method |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219740B2 (en) * | 2008-06-25 | 2012-07-10 | International Business Machines Corporation | Flash sector seeding to reduce program times |
US8335897B2 (en) * | 2009-12-15 | 2012-12-18 | Seagate Technology Llc | Data storage management in heterogeneous memory systems |
KR101754998B1 (ko) | 2011-01-27 | 2017-07-06 | 삼성전자주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법 |
CN102622206A (zh) * | 2011-01-28 | 2012-08-01 | 中兴通讯股份有限公司 | 一种处理器及其处理数据的方法 |
JP2012173870A (ja) * | 2011-02-18 | 2012-09-10 | Toshiba Corp | 半導体装置及びメモリ保護方法 |
US9354988B2 (en) * | 2011-03-28 | 2016-05-31 | Sap Se | Allocation strategies for data storage applications |
JP5708216B2 (ja) * | 2011-05-09 | 2015-04-30 | ソニー株式会社 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
WO2013001614A1 (ja) * | 2011-06-28 | 2013-01-03 | 富士通株式会社 | データ処理方法およびデータ処理システム |
JPWO2013001614A1 (ja) * | 2011-06-28 | 2015-02-23 | 富士通株式会社 | データ処理方法およびデータ処理システム |
US9830133B1 (en) * | 2011-12-12 | 2017-11-28 | Significs And Elements, Llc | Methods and apparatus for automatic communication optimizations in a compiler based on a polyhedral representation |
WO2013095605A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for sliding window data gather |
US10193927B2 (en) * | 2012-02-27 | 2019-01-29 | University Of Virginia Patent Foundation | Method of instruction location randomization (ILR) and related system |
US9323316B2 (en) | 2012-03-13 | 2016-04-26 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
CN104169832B (zh) | 2012-03-13 | 2017-04-19 | 英特尔公司 | 提供处理器的能源高效的超频操作 |
US9436245B2 (en) | 2012-03-13 | 2016-09-06 | Intel Corporation | Dynamically computing an electrical design point (EDP) for a multicore processor |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US8510531B1 (en) * | 2012-09-20 | 2013-08-13 | Google Inc. | Fast, dynamic cache packing |
KR101537725B1 (ko) * | 2013-01-18 | 2015-07-20 | 서울대학교산학협력단 | 워크 그룹 크기 결정 방법, 시스템 및 컴퓨터 판독가능 기록매체 |
JP6018022B2 (ja) | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
JP6201788B2 (ja) * | 2014-01-29 | 2017-09-27 | 富士通株式会社 | ループ分割検出プログラム及びループ分割検出方法 |
KR101771289B1 (ko) * | 2014-05-19 | 2017-08-24 | 엘에스산전 주식회사 | Plc 프로그램 관리 장치 |
CN104168079B (zh) * | 2014-09-03 | 2017-02-01 | 成都朗锐芯科技发展有限公司 | 一种多通道分组定时器 |
JP6488739B2 (ja) | 2015-02-05 | 2019-03-27 | 株式会社デンソー | 並列化コンパイル方法、及び、並列化コンパイラ |
JP6488738B2 (ja) | 2015-02-05 | 2019-03-27 | 株式会社デンソー | 並列化コンパイル方法、及び、並列化コンパイラ |
US10491667B1 (en) * | 2015-03-16 | 2019-11-26 | Amazon Technologies, Inc. | Customized memory modules in multi-tenant service provider systems |
JP6427053B2 (ja) | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
JP6427054B2 (ja) | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
CN110874212B (zh) | 2015-06-30 | 2021-08-20 | 华为技术有限公司 | 一种硬件加速方法、编译器以及设备 |
DE102017209697A1 (de) * | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
DE102016211386A1 (de) * | 2016-06-14 | 2017-12-14 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Recheneinheit |
JP2017228029A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10289309B2 (en) | 2016-09-12 | 2019-05-14 | Toshiba Memory Corporation | Automatic detection of multiple streams |
US10073640B1 (en) | 2017-03-10 | 2018-09-11 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
US10542089B2 (en) | 2017-03-10 | 2020-01-21 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
US10339983B1 (en) * | 2017-12-29 | 2019-07-02 | Micron Technology, Inc. | Temperature-based memory operations |
US11461631B2 (en) * | 2018-03-22 | 2022-10-04 | Amazon Technologies, Inc. | Scheduling neural network computations based on memory capacity |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
CN109634518A (zh) * | 2018-10-29 | 2019-04-16 | 成都华为技术有限公司 | 一种存储资源配置方法及装置 |
CN110704362B (zh) * | 2019-09-12 | 2021-03-12 | 无锡江南计算技术研究所 | 一种处理器阵列局部存储混合管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003015883A (ja) * | 2001-06-29 | 2003-01-17 | Nec Corp | プロセッサ間通信削減方法と並列化コンパイラ装置並びにプログラム |
WO2005081113A2 (en) * | 2004-02-13 | 2005-09-01 | Jaluna Sa | Memory allocation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784699A (en) * | 1996-05-24 | 1998-07-21 | Oracle Corporation | Dynamic memory allocation in a computer using a bit map index |
US6088777A (en) | 1997-11-12 | 2000-07-11 | Ericsson Messaging Systems, Inc. | Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages |
JP4784792B2 (ja) | 1999-12-22 | 2011-10-05 | 学校法人早稲田大学 | マルチプロセッサ |
DE10228103A1 (de) | 2002-06-24 | 2004-01-15 | Bayer Cropscience Ag | Fungizide Wirkstoffkombinationen |
CN1679005A (zh) * | 2002-08-30 | 2005-10-05 | 皇家飞利浦电子股份有限公司 | 动态存储器管理 |
US7563748B2 (en) | 2003-06-23 | 2009-07-21 | Cognis Ip Management Gmbh | Alcohol alkoxylate carriers for pesticide active ingredients |
-
2007
- 2007-02-28 JP JP2007050269A patent/JP5224498B2/ja active Active
-
2008
- 2008-02-27 KR KR1020097017059A patent/KR101186174B1/ko active IP Right Grant
- 2008-02-27 US US12/525,404 patent/US8438359B2/en active Active
- 2008-02-27 CN CN2008800037808A patent/CN101601017B/zh active Active
- 2008-02-27 GB GB1109237.6A patent/GB2478874B/en active Active
- 2008-02-27 WO PCT/JP2008/053891 patent/WO2008105558A1/ja active Application Filing
- 2008-02-27 GB GB0914592.1A patent/GB2459802B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003015883A (ja) * | 2001-06-29 | 2003-01-17 | Nec Corp | プロセッサ間通信削減方法と並列化コンパイラ装置並びにプログラム |
WO2005081113A2 (en) * | 2004-02-13 | 2005-09-01 | Jaluna Sa | Memory allocation |
JP2007523412A (ja) * | 2004-02-13 | 2007-08-16 | ジャルナ エスアー | メモリ割当て |
Non-Patent Citations (2)
Title |
---|
CSNG199700034010; 吉田 明正 他: 'マルチグレインデータローカライゼーションのための近細粒度タスクスケジューリング' 電子情報通信学会技術研究報告 第96巻, 19960827, 頁71-78, 社団法人電子情報通信学会 * |
JPN6012026802; 吉田 明正 他: 'マルチグレインデータローカライゼーションのための近細粒度タスクスケジューリング' 電子情報通信学会技術研究報告 第96巻, 19960827, 頁71-78, 社団法人電子情報通信学会 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499034A (zh) * | 2009-03-05 | 2009-08-05 | 北京中星微电子有限公司 | 内存管理方法 |
JP5810918B2 (ja) * | 2009-12-24 | 2015-11-11 | 日本電気株式会社 | スケジューリング装置、スケジューリング方法及びプログラム |
WO2011078162A1 (ja) * | 2009-12-24 | 2011-06-30 | 日本電気株式会社 | スケジューリング装置、スケジューリング方法及びプログラム |
JP2013528861A (ja) * | 2010-05-20 | 2013-07-11 | アップル インコーポレイテッド | サブバッファオブジェクト |
US9691346B2 (en) | 2010-05-20 | 2017-06-27 | Apple Inc. | Subbuffer objects |
US8957906B2 (en) | 2010-05-20 | 2015-02-17 | Apple Inc. | Subbuffer objects |
JP2014225089A (ja) * | 2013-05-15 | 2014-12-04 | オリンパス株式会社 | 演算装置 |
JP2014225088A (ja) * | 2013-05-15 | 2014-12-04 | オリンパス株式会社 | 演算装置 |
JP2015095218A (ja) * | 2013-11-14 | 2015-05-18 | 株式会社デンソー | 電子制御装置 |
JP2015149038A (ja) * | 2014-02-10 | 2015-08-20 | ルネサスエレクトロニクス株式会社 | 演算制御装置及び演算制御方法並びにプログラム、OpenCLデバイス |
JP2018525724A (ja) * | 2015-06-29 | 2018-09-06 | アイキャス ゲゼルシャフト ミット ベシュレンクテル ハフツングaicas GmbH | メモリ管理装置を用いた自動メモリ管理 |
US11176031B2 (en) | 2015-06-29 | 2021-11-16 | Aicas Gmbh | Automatic memory management using a memory management unit |
US11231917B2 (en) | 2018-06-20 | 2022-01-25 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium storing therein compiler program, and compiling method |
Also Published As
Publication number | Publication date |
---|---|
GB0914592D0 (en) | 2009-09-30 |
GB2478874A (en) | 2011-09-21 |
GB2459802B (en) | 2012-01-04 |
CN101601017A (zh) | 2009-12-09 |
WO2008105558A1 (ja) | 2008-09-04 |
CN101601017B (zh) | 2013-10-09 |
KR101186174B1 (ko) | 2012-10-02 |
US8438359B2 (en) | 2013-05-07 |
KR20090106613A (ko) | 2009-10-09 |
JP5224498B2 (ja) | 2013-07-03 |
GB2478874B (en) | 2011-12-28 |
GB2459802A (en) | 2009-11-11 |
GB201109237D0 (en) | 2011-07-13 |
US20100174876A1 (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5224498B2 (ja) | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム | |
EP1881405B1 (en) | Global compiler for controlling heterogeneous multiprocessor | |
US10430190B2 (en) | Systems and methods for selectively controlling multithreaded execution of executable code segments | |
US7926046B2 (en) | Compiler method for extracting and accelerator template program | |
Eichenbergert et al. | Optimizing compiler for the cell processor | |
Owaida et al. | Synthesis of platform architectures from OpenCL programs | |
JP4082706B2 (ja) | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ | |
JP6319880B2 (ja) | 並列性の抽出方法及びプログラムの作成方法 | |
US7631305B2 (en) | Methods and products for processing loop nests | |
US20100153959A1 (en) | Controlling and dynamically varying automatic parallelization | |
Hagiescu et al. | Automated architecture-aware mapping of streaming applications onto GPUs | |
US7747990B2 (en) | Processors and compiling methods for processors | |
JP2016192153A (ja) | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 | |
JP2007305148A (ja) | マルチプロセッサシステム | |
Owaida et al. | Massively parallel programming models used as hardware description languages: The OpenCL case | |
Rauber et al. | General Purpose GPU Programming | |
JP2016192152A (ja) | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 | |
Huynh et al. | Mapping streaming applications onto GPU systems | |
JP2001175619A (ja) | シングルチップマルチプロセッサ | |
JP4304347B2 (ja) | マルチプロセッサ | |
JP4784842B2 (ja) | マルチプロセッサ及びマルチプロセッサシステム | |
Ravi et al. | Semi-automatic restructuring of offloadable tasks for many-core accelerators | |
Kim et al. | Static function prefetching for efficient code management on scratchpad memory | |
Shan et al. | Evaluation of Programming Models and Performance for Stencil Computation on Current GPU Architectures | |
You et al. | VecRA: A Vector-Aware Register Allocator for GPU Shader Processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090925 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130205 |
|
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: 20130305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5224498 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |
|
S201 | Request for registration of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314201 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S804 | Written request for registration of cancellation of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314803 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |