JP3802042B2 - キャッシュメモリ実装方法および装置、キャッシュメモリシステム - Google Patents
キャッシュメモリ実装方法および装置、キャッシュメモリシステム Download PDFInfo
- Publication number
- JP3802042B2 JP3802042B2 JP2005153848A JP2005153848A JP3802042B2 JP 3802042 B2 JP3802042 B2 JP 3802042B2 JP 2005153848 A JP2005153848 A JP 2005153848A JP 2005153848 A JP2005153848 A JP 2005153848A JP 3802042 B2 JP3802042 B2 JP 3802042B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- processor
- cache memory
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Description
char cache―buf[entry][line_size]
void init_cache(unit address,unit size)
void *get_cache(int id,int control)
init_cache (KDTREE_ADDRESS, sizeof (KDTree));
node = (DKTree*) get_cache (id, READ);
while (node−>nextid != -1){
id = node−>nextid;
node = get_cache (id, READ);
}
キャッシュペナルティ=N×P×Chit+N×(1−P)×Cmiss
#define CACHE_BUF_NUM 4 /* キャッシュのウェイ数 */
#define CACHE_BUF_SIZE 15*1024 /* キャッシュバンクサイズ */
/* ソフトウェアキャッシュを構成する領域:4way SIMD レジスタとして利用 */
static vector signed int cache_simd_buf_tag; /* タグID保存用領域 */
static vector signed int cache_simd_buf_status; /* ステータス保存用領域 */
/* 1:dirty, 0: other */
static vector signed int cache_simd_buf_tagnum; /* キャッシュライン数 */
static vector signed int cache_simd_buf_elementsize; /* キャッシュラインサイズ */
static vector unsigned int cache_simd_buf_addr; /* ローカルストレージ上のアドレス */
static vector unsigned int cache_simd_buf_systemaddr; /* メインメモリ上のアドレス */
/* 演算用データ:スカラーレジスタとして利用 */
static unsigned int cache_buf_systemaddr; /* メインメモリ上のアドレス */
static unsigned int cache_buf_elementsize; /* キャッシュラインサイズ */
static signed int cache_buf_tagnum; /* キャッシュライン数 */
/* キャッシュバッファ領域 */
static char cache_buf[CACHE_BUF_NUM][CACHE_BUF_SIZE];
/* キャッシュ初期化 */
void init_cache(unsigned int system_address, unsigned int element_size)
/* system_address: メインメモリ上のキャッシュの先頭アドレス
element_size: キャッシュラインサイズ */
{
/* 入力値エラー処理 */
if (element_size > CACHE_BUF_SIZE || element_size < 1) {
エラー処理
}
/* キャッシュの設定 */
cache_buf_systemaddr = system_address; /* メインメモリ上のキャッシュスタートアドレス */
cache_simd_buf_systemaddr = simd_splats(system_address); /* SIMDレジスタの4スロットに設定 */
cache_buf_elementsize = element_size; /* キャッシュのラインサイズ */
cache_simd_buf_elementsize = simd_splats(element_size); /* SIMDレジスタの4スロットに設定 */
cache_buf_tagnum = CACHE_BUF_SIZE/element_size; /* キャッシュライン数 */
cache_simd_buf_tag = simd_splats(-1); /* タグID:初期値 */
cache_simd_buf_status = simd_splats(0); /* ステータス: 初期値 */
cache_simd_buf_addr = simd_set(cache_buf[0], cache_buf[1], cache_buf[2], cache_buf[3]); /* アドレス値設定 */
}
/* キャッシュアクセス */
void *get_cache_buf(int id, int control)
/* id: エレメントID
contorl: 0 リード、1 ライト */
{
id, cache_simd_buf_tagの二つのレジスタからどのスロットのタグに
一致するかのチェックを行う。
/* キャッシュヒットの処理 */
simd_ret_addr に返り値となるローカルアドレスを設定
if (最初のスロットに一致する場合) {
cache_simd_buf_status = simd_insert(control, cache_simd_buf_status, 0); /* 最初のスロットにcontrolを挿入 */
return((void*)simd_extract(simd_ret_addr, 0); /* 最初のスロットのローカルアドレス値を返す */
}
else if (2つ目のスロットに一致する場合) {
cache_simd_buf_tagの2番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_statusの2番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_addrの2番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_status = simd_insert(control, cache_simd_buf_status, 0); /* 最初のスロットにcontrolを挿入 */
return((void*)simd_extract(simd_ret_addr, 1); /* 2番目のスロットのローカルアドレス値を返す */
}
else if (3つ目のスロットに一致する場合) {
cache_simd_buf_tagの3番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_statusの3番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_addrの3番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_status = simd_insert(control, cache_simd_buf_status, 0); /* 最初のスロットにcontrolを挿入 */
return((void*)simd_extract(simd_ret_addr, 2); /* 3番目のスロットのローカルアドレス値を返す */
}
else if (4つ目のスロットに一致する場合) {
cache_simd_buf_tagの4番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_statusの4番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_addrの4番目のスロットを1番目に移動する(LRUのアルゴリズム)
cache_simd_buf_status = simd_insert(control, cache_simd_buf_status, 0); /* 最初のスロットにcontrolを挿入 */
return((void*)simd_extract(simd_ret_addr, 3); /* 4番目のスロットのローカルアドレス値を返す */
}
/* キャッシュミスの処理: 4番目のスロットを入れ替える */
cache_buf_addr = simd_extract(cache_simd_buf_addr, 3); /* 4番目のスロットからキャッシュローカルアドレス取得 */
if (キャッシュにステータスにライト属性がついている場合) {
/* ライトバック処理 */
cache_buf_tag = simd_extract(cache_simd_buf_tag, 3); /* 4番目のスロットからタグID取得 */
system_address = cache_buf_systemaddr + cache_buf_tag * cache_buf_elementsize; /* ターゲットとなるメインメモリ上のアドレス算出 */
cache_buf_addrで指し示されるローカルストレージのデータをsystem_addressで示されるメインメモリ上へDMA
cache_simd_buf_statusの3番目のスロットをリードステータスに変更
}
/* キャッシュのリフィル */
new_tag = (id/cache_buf_tagnum)*cache_buf_tagnum;
system_address = cache_buf_systemaddr + new_tag*cache_buf_elementsize;
cache_buf_addrで指し示されるローカルストレージ領域へsystem_addressで示されるメインメモリ上データをDMA
cache_simd_buf_tag = simd_insert(new_tag, cache_simd_buf_tag, 3); /* 新規タグを3番目のスロットに設定 */
cache_simd_buf_status = simd_insert(control, cache_simd_buf_status, 3); /* 3番目のスロットにステータス設定 */
return_address = cache_buf_addr + (id - new_tag) * cache_buf_elementsize;
return ((void*)return_address);
}
Claims (26)
- メインメモリに接続可能、かつ、メインメモリ内に記憶されたデータを取得可能なプロセッサと、
ハードウェアキャッシュメモリではなく、プロセッサによって使用されることによりデータを記憶するよう動作時にプロセッサに接続されるローカルメモリとを備え、
プロセッサは、
ソフトウェアによって呼び出されるキャッシュメモリ領域を少なくともひとつ含むようにローカルメモリを構成し、
少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算するよう動作し、計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成するよう動作することを特徴とするキャッシュメモリ実装装置。 - 請求項1に記載のキャッシュメモリ実装装置において、前記プロセッサは、アプリケーションプログラムインタフェイスのコードを実行することによってキャッシュメモリ領域を少なくともひとつ含むようにローカルメモリを構成することを特徴とするキャッシュメモリ実装装置。
- 請求項1または2に記載のキャッシュメモリ実装装置において、ソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータは、
a.ソフトウェアによって呼び出される少なくともひとつのキャッシュメモリ領域に含むべきキャッシュラインの数
b.キャッシュラインのサイズ
c.前記データがリード/ライトされるメインメモリの特定領域
d.各リード/ライトサイクルでメインメモリからリードし、またはメインメモリにライトするデータのデータサイズ
e.キャッシュライン置換の方針
のいずれかを含むことを特徴とするキャッシュメモリ実装装置。 - 請求項1に記載のキャッシュメモリ実装装置において、プロセッサは、ソフトウェアによって呼び出される複数の独立したキャッシュメモリ領域を含むようローカルメモリを構成することを特徴とするキャッシュメモリ実装装置。
- データを記憶するよう動作可能なメインメモリと、
それぞれメインメモリと接続されるよう動作可能であり、メインメモリから少なくとも前記データの一部を得るよう動作可能な複数のプロセッサと、
ハードウェアキャッシュメモリではなく、それぞれプロセッサに対応してオンチップで配置され、プロセッサによって使用されることによりデータを格納するよう動作時にプロセッサに接続されるローカルメモリと、
を備え、各プロセッサは、同じ構造を有し、それぞれが、共通のアプリケーションプログラムインタフェイスのコードを実行することによって、キャッシュメモリ領域を少なくともひとつ含むように各ローカルメモリを構成可能であることを特徴とするキャッシュメモリシステム。 - 請求項5に記載のキャッシュメモリシステムにおいて、少なくともひとつのプロセッサは、アプリケーションプログラムインターフェイスのコードを実行することによって、複数の独立したキャッシュメモリ領域を含むように対応するローカルメモリを構成することを特徴とするキャッシュメモリシステム。
- 請求項5に記載のキャッシュメモリシステムにおいて、少なくともひとつのプロセッサがアプリケーションプログラムインタフェイスのコードを使用し、
a.ソフトウェアによって呼び出される少なくともひとつのキャッシュメモリ領域に含むべきキャッシュラインの数
b.キャッシュラインのサイズ
c.前記データがリード/ライトされるメインメモリの特定領域
d.各リード/ライトサイクルでメインメモリからリードし、またはメインメモリにライトするデータのデータサイズ
e.キャッシュライン置換の方針
のパラメータの少なくともいずれかを指定するよう動作することを特徴とするキャッシュメモリシステム。 - 請求項5から7のいずれか1項に記載のキャッシュメモリシステムにおいて、少なくともひとつのプロセッサは少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算するよう動作可能であり、当該プロセッサは計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成するよう動作可能であることを特徴とするキャッシュメモリシステム。
- プロセッサによって、ハードウェアキャッシュメモリではなく、ソフトウェアによって呼び出されるキャッシュメモリ領域を少なくともひとつ含むようにローカルメモリを構成し、
このプロセッサは、当該プロセッサによってローカルメモリ内で使用するために、メインメモリからデータを取得するようメインメモリに接続可能であり、
少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算し、
計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成することを特徴とするキャッシュメモリ実装方法。 - 請求項9に記載のキャッシュメモリ実装方法において、前記プロセッサは、アプリケーションプログラムインタフェースのコードを実行することによってキャッシュメモリ領域を少なくともひとつ含むようにローカルメモリを構成することを特徴とするキャッシュメモリ実装方法。
- 請求項9または10に記載のキャッシュメモリ実装方法において、ソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータは、
a.ソフトウェアによって呼び出される少なくともひとつのキャッシュメモリ領域に含むべきキャッシュラインの数
b.キャッシュラインのサイズ
c.前記データがリード/ライトされるメインメモリの特定領域
d.各リード/ライトサイクルでメインメモリからリードし、またはメインメモリにライトするデータのデータサイズ
e.キャッシュライン置換の方針
のいずれかを含むことを特徴とするキャッシュメモリ実装方法。 - ハードウェアキャッシュメモリではないローカルメモリを有するプロセッサに、
ソフトウェアによって呼び出されるキャッシュメモリ領域を少なくともひとつ含むように該ローカルメモリを構成する処理、
少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算する処理、
計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成する処理を実行せしめるプログラムを格納したことを特徴とする記憶媒体。 - 請求項12に記載の記憶媒体において、ソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータは、
a.ソフトウェアによって呼び出される少なくともひとつのキャッシュメモリ領域に含むべきキャッシュラインの数
b.キャッシュラインのサイズ
c.データがリード/ライトされるメインメモリの特定領域
d.各リード/ライトサイクルでメインメモリからリードし、またはメインメモリにライトするデータのデータサイズ
e.キャッシュライン置換の方針
のいずれかを含むことを特徴とする記憶媒体。 - ハードウェアで実装されたキャッシュメモリに接続され、メインメモリに接続されることが可能なプロセッサであって、メインメモリからキャッシュメモリへデータを格納するよう動作可能な少なくともひとつの主プロセッサと、
それぞれが前記少なくともひとつの主プロセッサと接続され、メインメモリに接続されることが可能な副プロセッサであって、メインメモリから少なくともデータの一部を取得するよう動作可能な複数の副プロセッサと、
ハードウェアキャッシュメモリではなく、それぞれの副プロセッサに対応してオンチップで配置され、各副プロセッサによって使用するデータを格納するよう副プロセッサに接続可能なローカルメモリと、
を備え、各副プロセッサは、ソフトウェアによって呼び出されるキャッシュメモリ領域を少なくともひとつ含むように各ローカルメモリを構成することを特徴とするキャッシュメモリ実装装置。 - 請求項14に記載のキャッシュメモリ実装装置において、各副プロセッサのローカルメモリにそれぞれ対応する対するDMAC(ダイレクト・メモリ・アクセス・コントローラ)をさらに備えることを特徴とするキャッシュメモリ実装装置。
- 請求項14に記載のキャッシュメモリ実装装置において、前記副プロセッサは、アプリケーションプログラムインタフェイスのコードを実行することによってキャッシュメモリ領域を少なくともひとつ含むようにローカルメモリを構成することを特徴とするキャッシュメモリ実装装置。
- 請求項14に記載のキャッシュメモリ実装装置において、各副プロセッサは、同じ構造を有し、共通のアプリケーションプログラムインタフェイスのコードを実行することによって前記キャッシュメモリ領域を構成することを特徴とするキャッシュメモリ実装装置。
- 請求項14から17のいずれか1項に記載のキャッシュメモリ実装装置において、主プロセッサ、ハードウェアキャッシュメモリ、副プロセッサおよびローカルメモリが共通の半導体チップ上に構成されたことを特徴とするキャッシュメモリ実装装置。
- 請求項18に記載のキャッシュメモリ実装装置において、さらにメインメモリが前記半導体チップ上に構成されたことを特徴とするキャッシュメモリ実装装置。
- 請求項14から19のいずれか1項に記載のキャッシュメモリ実装装置において、各副プロセッサが、
a.ソフトウェアによって呼び出される少なくともひとつのキャッシュメモリ領域に含むべきキャッシュラインの数
b.キャッシュラインのサイズ
c.前記データがリード/ライトされるメインメモリの特定領域
d.各リード/ライトサイクルでメインメモリからリードし、またはメインメモリにライトするデータのデータサイズ
e.キャッシュライン置換の方針
のパラメータの少なくともいずれかを指定するよう動作することを特徴とするキャッシュメモリ実装装置。 - 請求項14に記載のキャッシュメモリ実装装置において、副プロセッサは、ソフトウェアによって呼び出される複数の独立したキャッシュメモリ領域を含むようローカルメモリを構成することを特徴とするキャッシュメモリ実装装置。
- 請求項14から21のいずれか1項に記載のキャッシュメモリ実装装置において、
前記副プロセッサは、少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算し、
計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成することを特徴とするキャッシュメモリ実装装置。 - ハードウェアキャッシュメモリではないローカルメモリを有するプロセッサに、
ソフトウェアによって呼び出されるキャッシュメモリ領域を少なくともひとつ含むように該ローカルメモリを構成する処理、
少なくともキャッシュヒット率とキャッシュアクセス頻度のいずれかに基づきキャッシュペナルティを計算する処理、
計算結果に対応してソフトウェアによって呼び出されるキャッシュメモリ領域のパラメータを再構成する処理を実行せしめることを特徴とするプログラム。 - データを記憶するよう動作可能なメインメモリと、
それぞれメインメモリと接続されるよう動作可能であり、メインメモリから少なくとも前記データの一部を得るよう動作可能な複数のプロセッサと、
ハードウェアキャッシュメモリではなく、それぞれプロセッサに対応してオンチップで配置され、プロセッサによって使用するデータを格納するようそれぞれのプロセッサに接続可能な複数のローカルメモリと、
を備え、
前記複数のプロセッサは、並列的に複数のアプリケーションを実行可能であり、
前記複数のローカルメモリは、対応するプロセッサにおけるアプリケーションの実行内容に応じて、選択的にソフトウェアキャッシュメモリ領域が含まれるように構成されることを特徴とするキャッシュメモリシステム。 - データを記憶するよう動作可能なメインメモリと、
それぞれメインメモリと接続されるよう動作可能であり、メインメモリから少なくとも前記データの一部を得るよう動作可能な複数のプロセッサと、
ハードウェアキャッシュメモリではなく、それぞれプロセッサに対応してオンチップで配置され、プロセッサによって使用するデータを格納するようプロセッサに接続可能な複数のローカルメモリとを備え、
前記複数のプロセッサは、並列的に複数のアプリケーションを実行可能なシステムにおいて、
前記複数のプロセッサにおけるそれぞれのアプリケーションの実行内容に応じて、前記複数のローカルメモリに対して選択的にソフトウェアキャッシュを構成することを特徴とするキャッシュメモリ実装方法。 - データを記憶するよう動作可能なメインメモリと、
それぞれメインメモリと接続されるよう動作可能であり、メインメモリから少なくとも前記データの一部を得るよう動作可能な複数のプロセッサと、
ハードウェアキャッシュメモリではなく、それぞれプロセッサに対応してオンチップで配置され、プロセッサによって使用するデータを格納するようプロセッサに接続可能な複数のローカルメモリとを備え、
前記複数のプロセッサは、並列的に複数のアプリケーションを実行可能なシステムにおいて、
前記複数のプロセッサにおけるそれぞれのアプリケーションの実行内容に応じて、前記複数のローカルメモリに対して選択的にソフトウェアキャッシュを構成する処理をコンピュータに実行せしめることを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57544404P | 2004-05-28 | 2004-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005339557A JP2005339557A (ja) | 2005-12-08 |
JP3802042B2 true JP3802042B2 (ja) | 2006-07-26 |
Family
ID=35451049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005153848A Active JP3802042B2 (ja) | 2004-05-28 | 2005-05-26 | キャッシュメモリ実装方法および装置、キャッシュメモリシステム |
Country Status (9)
Country | Link |
---|---|
US (1) | US7526608B2 (ja) |
EP (1) | EP1658564B1 (ja) |
JP (1) | JP3802042B2 (ja) |
KR (1) | KR100829287B1 (ja) |
CN (1) | CN100451996C (ja) |
AT (1) | ATE483202T1 (ja) |
DE (1) | DE602005023827D1 (ja) |
TW (1) | TWI264642B (ja) |
WO (1) | WO2005116839A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
JP2006309338A (ja) * | 2005-04-26 | 2006-11-09 | Toshiba Corp | データ変換器モジュール |
JP4855710B2 (ja) * | 2005-04-28 | 2012-01-18 | 株式会社東芝 | ソフトウェアのプラグイン方法、および、アプリケーションプログラム |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7581064B1 (en) * | 2006-04-24 | 2009-08-25 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US7434002B1 (en) * | 2006-04-24 | 2008-10-07 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US20080005473A1 (en) * | 2006-06-30 | 2008-01-03 | Tong Chen | Compiler assisted re-configurable software implemented cache |
US8370575B2 (en) * | 2006-09-07 | 2013-02-05 | International Business Machines Corporation | Optimized software cache lookup for SIMD architectures |
US9176886B2 (en) * | 2006-10-30 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Method and system for filling cache memory for cache memory initialization |
US7711904B2 (en) * | 2007-03-22 | 2010-05-04 | International Business Machines Corporation | System, method and computer program product for executing a cache replacement algorithm |
US8631203B2 (en) * | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8423989B2 (en) * | 2008-05-02 | 2013-04-16 | Synchonoss Technologies, Inc. | Software parameter management |
US8868844B2 (en) * | 2008-06-25 | 2014-10-21 | International Business Machines Corporation | System and method for a software managed cache in a multiprocessing environment |
US8819651B2 (en) * | 2008-07-22 | 2014-08-26 | International Business Machines Corporation | Efficient software cache accessing with handle reuse |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US8949529B2 (en) * | 2009-12-30 | 2015-02-03 | International Business Machines Corporation | Customizing function behavior based on cache and scheduling parameters of a memory argument |
JP5489884B2 (ja) * | 2010-06-30 | 2014-05-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 命令実行装置、命令実行方法、及び命令実行プログラム |
US20120297256A1 (en) * | 2011-05-20 | 2012-11-22 | Qualcomm Incorporated | Large Ram Cache |
KR101257192B1 (ko) | 2011-07-28 | 2013-04-22 | 손상훈 | 비닐하우스용 운반장치 |
US9158685B2 (en) | 2012-09-11 | 2015-10-13 | Apple Inc. | System cache with cache hint control |
EP2881918B1 (en) * | 2013-12-06 | 2018-02-07 | My Virtual Reality Software AS | Method for visualizing three-dimensional data |
JP6384375B2 (ja) * | 2015-03-23 | 2018-09-05 | 富士通株式会社 | 情報処理装置、記憶装置制御方法、記憶装置制御プログラム及び情報処理システム |
WO2018009240A2 (en) * | 2015-11-12 | 2018-01-11 | University Of Rochester | Superconducting system architecture for high-performance energy-efficient cryogenic computing |
US10936374B2 (en) * | 2018-05-17 | 2021-03-02 | International Business Machines Corporation | Optimizing dynamic resource allocations for memory-dependent workloads in disaggregated data centers |
US10601903B2 (en) | 2018-05-17 | 2020-03-24 | International Business Machines Corporation | Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers |
US10893096B2 (en) | 2018-05-17 | 2021-01-12 | International Business Machines Corporation | Optimizing dynamical resource allocations using a data heat map in disaggregated data centers |
US11221886B2 (en) | 2018-05-17 | 2022-01-11 | International Business Machines Corporation | Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers |
US10977085B2 (en) | 2018-05-17 | 2021-04-13 | International Business Machines Corporation | Optimizing dynamical resource allocations in disaggregated data centers |
US10841367B2 (en) | 2018-05-17 | 2020-11-17 | International Business Machines Corporation | Optimizing dynamical resource allocations for cache-dependent workloads in disaggregated data centers |
US11330042B2 (en) | 2018-05-17 | 2022-05-10 | International Business Machines Corporation | Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers |
CN109118422B (zh) * | 2018-07-10 | 2023-05-05 | 西安科技大学 | 一种嵌入式移动图形处理器的纹理Cache及处理方法 |
US20210311871A1 (en) | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | System and method for aggregating server memory |
US20210374056A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for scalable and coherent memory devices |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0416767A3 (en) * | 1989-09-08 | 1992-04-29 | Digital Equipment Corporation | Position independent code location system |
EP0777183B1 (en) | 1995-12-01 | 2002-07-31 | Hewlett-Packard Company, A Delaware Corporation | Computer cache system |
US5966734A (en) * | 1996-10-18 | 1999-10-12 | Samsung Electronics Co., Ltd. | Resizable and relocatable memory scratch pad as a cache slice |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6826662B2 (en) * | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
US6622208B2 (en) | 2001-03-30 | 2003-09-16 | Cirrus Logic, Inc. | System and methods using a system-on-a-chip with soft cache |
US6745295B2 (en) | 2001-04-19 | 2004-06-01 | International Business Machines Corporation | Designing a cache with adaptive reconfiguration |
-
2005
- 2005-05-24 US US11/136,022 patent/US7526608B2/en active Active
- 2005-05-26 DE DE602005023827T patent/DE602005023827D1/de active Active
- 2005-05-26 AT AT05745794T patent/ATE483202T1/de not_active IP Right Cessation
- 2005-05-26 EP EP05745794A patent/EP1658564B1/en active Active
- 2005-05-26 KR KR1020067006208A patent/KR100829287B1/ko active IP Right Grant
- 2005-05-26 CN CNB2005800005057A patent/CN100451996C/zh active Active
- 2005-05-26 WO PCT/JP2005/010095 patent/WO2005116839A1/en not_active Application Discontinuation
- 2005-05-26 JP JP2005153848A patent/JP3802042B2/ja active Active
- 2005-05-27 TW TW094117526A patent/TWI264642B/zh active
Also Published As
Publication number | Publication date |
---|---|
EP1658564A1 (en) | 2006-05-24 |
JP2005339557A (ja) | 2005-12-08 |
CN100451996C (zh) | 2009-01-14 |
DE602005023827D1 (de) | 2010-11-11 |
TW200609726A (en) | 2006-03-16 |
EP1658564B1 (en) | 2010-09-29 |
CN1806231A (zh) | 2006-07-19 |
US20050268038A1 (en) | 2005-12-01 |
EP1658564A4 (en) | 2008-12-31 |
KR20060063977A (ko) | 2006-06-12 |
WO2005116839A1 (en) | 2005-12-08 |
KR100829287B1 (ko) | 2008-05-13 |
TWI264642B (en) | 2006-10-21 |
US7526608B2 (en) | 2009-04-28 |
ATE483202T1 (de) | 2010-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3802042B2 (ja) | キャッシュメモリ実装方法および装置、キャッシュメモリシステム | |
JP4386373B2 (ja) | ロジカルパーティショニングされた処理環境におけるリソース管理のための方法および装置 | |
JP4322259B2 (ja) | マルチプロセッサシステムにおけるローカルメモリへのデータアクセスを同期化する方法および装置 | |
JP4346612B2 (ja) | 情報処理方法および装置 | |
JP4243318B2 (ja) | ソフトウェアとハードウエアで同時にキャッシュフィルする方法と装置 | |
US7386687B2 (en) | Methods and apparatus for managing a shared memory in a multi-processor system | |
JP4421561B2 (ja) | ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム | |
US7689784B2 (en) | Methods and apparatus for dynamic linking program overlay | |
US7676683B2 (en) | Method and system for rebooting a processor in a multi-processor system | |
KR100881810B1 (ko) | 외부 장치로부터 프로세서의 메모리로의 주소 번역을 위한방법 및 기구 | |
US20060179278A1 (en) | Methods and apparatus for instruction set emulation | |
JP2006323824A (ja) | プロセッサシステム内においてスタックを分離して管理する方法および装置 | |
JP2006172468A (ja) | システム内部のデータ転送を処理する装置および方法 | |
JP2006260556A (ja) | ラッチポイントを制御することにより、演算処理能力を改善する方法、装置ならびにシステム | |
JP4024271B2 (ja) | マルチプロセッサシステムにおいて命令を処理するための方法と装置 | |
US7788467B2 (en) | Methods and apparatus for latency control in a multiprocessor system | |
JP2006286002A (ja) | 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置 | |
JP2006260555A (ja) | 命令の従属関係検査の深度を利用して処理能力の改善するための方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060412 |
|
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: 20060425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060426 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3802042 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: 20090512 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100512 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110512 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110512 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120512 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130512 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140512 Year of fee payment: 8 |
|
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 |
|
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 |