Cache Size(KB) - コンピュータアーキテクチャ研究室

ヘテロジニアスマルチコアプロセッサ
環境を対象としたキャッシュシステム
自動生成ツールの開発
計算機アーキテクチャ研究室
409812 岡本 昂樹
研究背景
ヘテロジニアスマルチコアとは?
・1つのチップに異なる種類のコア
・要求にあわせコアを動作, 高性能・省電力の両立
設計・検証の時間膨大
不足!
最適!
最適!
過剰!
アプリケーション
ヘテロジニアスマルチコア
ホモジニアスマルチコア
2
FabHetero
FabScalar
Core1
Core0
Core2
本研究の提案部分
L1
L1
Inst Data
Cache Cache
FabCache
L1-I
L1-D
L2
L1-I
L1-D
L2-I
L2-D
SnoopBus
FabBus
DataBus
Shared Memory
3
FabCache
core0
core1
命令フェッチ幅
の変更
アクセス
L1-I
L1-D
L1-D
レイテンシ増減
Cache
cache
cache
L1-I
Cache
L1-I
Cache
Core3
Core2
L1-D
cache
一貫性
L2
L3 cache(Shared Memory)
L2-I
Cache
L2-D
cache
4
FabCache
core0
core1
Core3
Core2
命令フェッチ幅
の変更
アクセス
L1-I
L1-D
L1-I
L1-D
レイテンシ増減
従来にはないキャッシュ
Cache
cache
Cache
cache
L1-I
Cache
L1-D
cache
ジェネレーターの提案
一貫性
L2
L3 cache(Shared Memory)
L2-I
Cache
L2-D
cache
4
FabCache
Core
FabCacheParam
`define SIZE_ICACHE 1024
`define SIZE_DCACHE 1024
`define L2LATENCY 1
・
・
・
L1-I
Cache
L1-D
cache
L2 Cache
L3 cache(Shared Memory)
5
スーパースカラ命令フェッチ概念図
要求
命令
Cache
Core
命令1
命令2
命令3
`FETCH_WIDTH 2
8
3
・
・
命令8
6
スーパースカラ命令フェッチ概念図
要求
命令
インターリーブドメモリで実現
Cache
Core
命令1
命令2
`FETCH_WIDTH 8
命令3
FabScalarのクロックサイクル8.81ns
・
今回実装のキャッシュの遅延5.23ns
・
命令8
6
インターリーブドメモリ
命令の1サイクルフェッチを想定
Line0
Line2
Line4
Line6
a b c d
i j k l
・
・
Even Bank
e f g h
Line1
Line3 m
Line5
Line7
n o p
・
・
Odd Bank
1Cycle
c d e f
Req: c d e f
7
インターリーブドメモリ
命令の1サイクルフェッチを想定
Line0
Line2
Line4
Line6
a b c d
i j k l
・
1サイクルフェッチが可能
c d e f
1Cycle
・
Even Bank
e f g h
Line1
Line3 m
Line5
Line7
n o p
・
・
Odd Bank
Req: c d e f
7
評価結果1/2
速度
速度
FETCH WIDTH 1
1.5
bzip
FETCH WIDTH 2
1.5
bzip
1
gzip
1
gzip
0.5
gap
0.5
gap
mcf
mcf
0
4
速度
8 16 32 64 128
Cache Size(KB)
parser
4
vortex
速度
FETCH WIDTH 4
1.5
0
bzip
8 16 32 64 128
Cache Size(KB)
parser
vortex
FETCH WIDTH 8
1.5
bzip
1
gzip
1
gzip
0.5
gap
0.5
gap
mcf
0
4
8 16 32 64 128
Cache Size(KB)
parser
vortex
mcf
0
4
8 16 32 64 128
Cache Size(KB)
parser
vortex
8
評価結果2/2
・手動で設計したL1命令キャッシュとの面積・遅延を比較
⇒それぞれL1命令キャッシュのみ論理合成
⇒SRAMの容量は4KBに設定
生成方法
面積
遅延
FabCache
819,209μm²
2.27ns
手設計
818,590μm²
2.43ns
同程度のハードウェア規模を実現
9
まとめ
・柔軟なキャッシュシステム自動生成ツール
FabCacheの実装が出来た
⇒評価結果1から
正しく動作していることが実証できた
⇒評価結果2から
妥当な規模のハードウェアが生成されている事が実証できた
今後
L1データキャッシュ
L2 キャッシュ
実装
10