高性能メモリコントローラ Multiple Cache Memory Controller MC 2 の紹介 ArchiTek 株式会社 2011.10.28
用途によって異なる メモリアーキテクチャへの要求 同時動作帯域 メモリ構成 コストマッピング プロセス レイアウト 検証 開発期間
メモリアーキテクチャの 必要機能を統合 従来のシステム例 提案するシステム例 CPU DSP CPU DSP エンジン A エンジン B DMA エンジン A エンジン B DMA SRAM SRAM 制御 統合メモリ制御コア メモリ構成をその都度カスタマイズ 統合メモリ制御コアにより設計を分離 高性能システムの設計を簡単化する環境提供を目指します
メモリアーキテクチャの エッセンスを抽出 集積 性能 ランダムアクセス高スループット低レイテンシ 一貫 機能の直交性設定の対称性 省電力 内部クロック制御省メモリ制御 Multiple Cache Memory Controller 柔軟 メモリ構成各種パラメータ機能追加 適応 シンプルプロトコルキャッシュ操作 MMU 内蔵 隠蔽 メモリマッピングコヒーレンス
MC 2導入のメリット - メモリを使用するあらゆるLSIのベースに 高性能 低コスト化 使い易さ追求 Master 0 Cache 0 Bank 0 Master 1 Cache 1 Bank 1 Master 2 Cache 2 Bank 2 Master 3 Master 4 コスト Cache 3 Cache 4 Gather /Scatter Control Bank 3 Bank 4 Cache 5 Bank 5 Master 6 Cache 6 Bank 6 Master 7 Cache 7 Bank 7 Master 5 性能 Bus Matrix 複数キャッシュで帯域N倍拡大 内蔵メモリの集積 合理化 性能 コスト Master Master DDR2 AXI4 AHB Brg MMU DDR2 16bit Mapping Config DDR3 8bit ブリッジで拡張容易 性能使い切る 汎用的なプロトコル MMU対応 の実装種類 個数 使用個数を最小化 マッピングが自由に変更可能 完全なコヒーレンスを保証 設計期間短縮 低消費電力化 Off Master Complex Manage Large Buffer General Memory Controller Master Simple Manage Least Buffer Cache Configuration 設計毎 マスターとメモリ システムを意識した設計 マスター設計が容易 都合に合わせて設定変更 On/Off Off Clock 状態をクロック単位で把握 ブロックごとに細かく制御 メモリごとにOn/Off最適制御 キャッシュでアクセス量低減
メリットの内容 1. 高性能 低コスト化 2. 使い易さの追求 i. キャッシュの一体化とバンク構造の採用 ii. iii. 高スループット キャッシュの採用 高効率なメモリ制御 12 i. 汎用的なインターフェイスを装備 ii. 共有 MMU(TLB 込み ) を内蔵 iii. マスター単位の優先制御 12 iv. ユーザ回路の挿入 I/Fを用意 3. 設計期間の短縮 4. 低消費電力化 i. 簡単なキャッシュのカスタマイズ ii. 柔軟なの実装 構成 iii. 柔軟なアドレスマッピング i. 粒度の細かいクロックゲーティング ii. 規模 速度を考慮した階層設計
1 高性能 低コスト化 ⅰ キャッシュの一体化とバンク構造の採用 帯域拡大 同時アクセス とアクセス軽減 システムメモリの集積による低コスト化 マスター マスター マスター マスター マスター マスター Arbiter / MMU MUX 任意容量 任意バンク数 Cache Cache Cache Cache Cache Cache Cache Cache 可能な限り 集積 共用化 Control 論理帯域を飛躍的に拡大し複数マスターに対処します
1. 高性能 低コスト化 (ⅱ) エンジン向けの高スループット キャッシュの採用 Non-blocking アクセス Write-back, Write-through, Byte Mask Flush w/tag クリア, ID 選択, Area 選択 Miss でも次のアクセスを受け付け Address Non-blocking Processing Acknowledge Write Way 0 1 2 3 Addr(0) Addr(1) Read Addr(n-1) バイパス AV 処理など大容量で連続的なアクセスに対処します
1. 高性能 低コスト化 (ⅲ) 高効率なメモリ制御 1 CS, Bank, R/Wの連続性を考慮したスケジューリング Bankの交互アクセス 連続 ( ページ ) アクセスを自動判別 clk cke cs_n ras_n cas_n a[10] ba[2:0] dqs d Act Wr AP Act Precharge Cycle A B C B X Latecy Wr AP Act Wr AP Act Wr Wr Wr AP Act A A A A A A A A B B B B B B B B C C C C C C C C 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Latecy Precharge Cycle B B A B B B B B B B B B B B B B B B B B B B B B 0 1 2 3 4 5 6 7 8 91011121314151617181920212223 異なる Bank に交互アクセス 同一 Bank にページアクセス 帯域使用効率 80~98%( シミュレーション計測例 ) 性能が最大限に発揮でき 部品削減の余地が生まれます
1 高性能 低コスト化 ⅲ 高効率なメモリ制御 ② 従来方式 ランダムアクセスシミュレーション サンプル M M M M Serialize 4000サイクル中 Control 本方式 トランザクション 2197 アイドルサイクル 706 ランダムアクセスシミュレーション サンプル 同一条件 同一スケール M M M M C C C C Control 4000サイクル中 選択肢多数 トランザクション 3473 アイドルサイクル 15 ペナルティは R W切り替えとテスト初期化のオーバヘッド
メリットの内容 1. 高性能 低コスト化 2. 使い易さの追求 i. キャッシュの一体化とバンク構造の採用 ii. iii. 高スループット キャッシュの採用 高効率なメモリ制御 12 i. 汎用的なインターフェイスを装備 ii. 共有 MMU(TLB 込み ) を内蔵 iii. マスター単位の優先制御 12 iv. ユーザ回路の挿入 I/Fを用意 3. 設計期間の短縮 4. 低消費電力化 i. 簡単なキャッシュのカスタマイズ ii. 柔軟なの実装 構成 iii. 柔軟なアドレスマッピング i. 粒度の細かいクロックゲーティング ii. 規模 速度を考慮した階層設計
2. 使い易さの追求 (ⅰ) 汎用的なインターフェイスを装備 アドレス データ分離のシンプルなバス仕様 ( クロック同期型 ) アドレス信号 Request, Grant, R/W, Address, Burst データ信号 Strobe, Acknowledge,, Mask その他の信号 Priority, Cache Op., Atomic Access 完全なコヒーレンス制御 同一マスターのIn-orderアクセスを保証 異なるマスター間のR/Wコヒーレンスを保証 マルチプロセッサ用のアトミックアクセスをサポート MC 2 AHB AXI OCP ブリッジがあれば 応用範囲がさらに拡がります シンプルなプロトコルで 幅広い対応が可能です
2. 使い易さの追求 (ⅱ) 共有 MMU(TLB 込み ) を内蔵 メモリから 1 回引きのページテーブル変換 (4KB / 64KB / 1MB) 並列処理によりスループットの低下なし Logical Address 31 28 27 12 11 0 Index Offset Shared MMU ID Table TLB ID マスターから固有 ID を指定し個別管理も OK + Table Addr +0 +1 +2 +3 +4 +5 +6 +7 Physical Address 後段は物理キャッシュになる システムで一元的なメモリ管理が可能になります
2 使い易さの追求 ⅲ マスター単位の優先制御 ① 優先度は任意に付与 最終判断はラウンドロビン 使用した帯域を計測し 優先度にフィードバック マスター X マスター Y Prior Target Bandwidth Access Counter 同一優先時はラ ウンドロビン マスター Z Prior ± Access Counter アクセス量 設定帯域 Prior ± Access Counter 時間 ± 単位時間内のアクセス量を計測 優先度を±1 Round-Robin Arbiter システム全体の帯域制御が簡単に制御できます
2. 使い易さの追求 (ⅲ) マスター単位の優先制御 2 帯域制御例 (8 マスターがランダムなアドレスにフルアクセス ) マスター番号昇順 ( 図では上から下へ ) に 2:2:4:4:8:8:15: 16 の割合の帯域を設定 t 単位時間内のアクセス量 優先度 ± 帯域設定の大きいものほど設定値通り高密度 結果 : アクセスの受け付け回数 設定通り 帯域が取得されている例です
2 使い易さの追求 ⅳ ユーザー回路の挿入I/Fを用意 キャッシュと間にユーザーパイプラインの設置が可能 特定IDのデータだけを選択して処理 Cache IDにより分岐 User Logic Writeパス 通常アクセスパス User Logic Readパス 任意パイプライン長 圧縮伸長 暗号などシステム全体に効く機能を組み込めます
メリットの内容 1. 高性能 低コスト化 2. 使い易さの追求 i. キャッシュの一体化とバンク構造の採用 ii. iii. 高スループット キャッシュの採用 高効率なメモリ制御 12 i. 汎用的なインターフェイスを装備 ii. 共有 MMU(TLB 込み ) を内蔵 iii. マスター単位の優先制御 12 iv. ユーザ回路の挿入 I/Fを用意 3. 設計期間の短縮 4. 低消費電力化 i. 簡単なキャッシュのカスタマイズ ii. 柔軟なの実装 構成 iii. 柔軟なアドレスマッピング i. 粒度の細かいクロックゲーティング ii. 規模 速度を考慮した階層設計
3 設計期間短縮 ⅰ 簡単なキャッシュのカスタマイズ コンパイラブル 一般的なSRAMを使用 主にSRAM容量のカスタマイズだけ Way数, キャッシュライン数 Wayごとの各種定義はレジスタで設定 専用RAM, 特定ID対応 コンフィグレーション キャッシュ ライン数 カスタマイズ カスタマイズ Way数 Way0 固定割当て 特定ID割当て Way0 Way1 Way2 Way3 Way1 Way2 Way3 Addr(0) Addr(0) Addr(0) Addr(0) Addr(1) Addr(1) Addr(1) Addr(1) SRAM キャッシュ の実装 構成を自由に決定できます
3 設計期間短縮 ⅱ 柔軟なの実装 構成 同一回路でDDR2/DDR3に対応 チャネル数 Group ランク数 Set は設計時にカスタマイズ バス幅 Full/Half 周波数 x1/x2 はレジスタ設定 動的変更 Group 0 Set 0 Set 1-3 B4-7 Group 1 Group X -3-3 B4-7 -3 Y ランク効果 バンク数Up メモリ容量Up B4-7 レイテンシDown 物理帯域Up B4-7 B4-7 チャネル効果 -3-3 Set B4-7 チャネルごとに 異なるの 実装OK の実装 構成を自由に決定できます
3. 設計期間短縮 (ⅲ) 柔軟なアドレスマッピング チャネル ランク バンクの配置はレジスタで設定 ( 動的変更 ) 高性能向き 低消費電力向き Address Address 31 28 24 20 16 12 8 4 0 31 28 24 20 16 12 8 4 0 S G B2 B1 G S B2 B1 0xFFFFFFFF 0xFFFFF000 0x00004000 0x00003000 0x00002000 0x00001000 0x00000000 Ch Grp 1 (4KB) Ch Grp 0 (4KB) Grp 1 (4KB) Ch Grp 0 (4KB) Ch Grp 1 (4KB) Ch Grp 0 (4KB) Ch Grp 1 (4KB) Ch Grp 0 (4KB) Rank 1 Rank 0 Rank 1 Rank 0 +F80 +F00 +E80 +E00 +D80 +D00 +C80 +C00 +B80 +0 +A80 +A00 +980 +900 +880 +800 +780 +700 +680 +600 +580 +500 +480 +400 +380 +300 +280 +200 +180 +100 +080 +000 16Byte Bank Bank Bank Bank Bank Bank Bank Bank 7 6 5 4 3 2 1 0 0xFFFFFFFF 0xC0000000 0x80000000 0x40000000 0x00000000 Rank Set 1 ( 1GB ) Rank Set 0 ( 1GB ) Rank Set 1 ( 1G B) Rank Set 0 ( 1G B) Ch 1 Ch 0 +FFFF +E000 +C000 +A000 +8000 +6000 +4000 +2000 +0000 Bank 7 Bank 6 Bank 5 Bank 4 Bank 3 Bank 2 Bank 1 Bank 0 LSB 寄りのチャネル, ランク, バンク配置 MSB 寄りのチャネル, ランク, バンク配置 極端な 2 例を提示 のアドレスマッピングを自由に変更できます
メリットの内容 1. 高性能 低コスト化 2. 使い易さの追求 i. キャッシュの一体化とバンク構造の採用 ii. iii. 高スループット キャッシュの採用 高効率なメモリ制御 12 i. 汎用的なインターフェイスを装備 ii. 共有 MMU(TLB 込み ) を内蔵 iii. マスター単位の優先制御 12 iv. ユーザ回路の挿入 I/Fを用意 3. 設計期間の短縮 4. 低消費電力化 i. 簡単なキャッシュのカスタマイズ ii. 柔軟なの実装 構成 iii. 柔軟なアドレスマッピング i. 粒度の細かいクロックゲーティング ii. 規模 速度を考慮した階層設計
4. 低消費電力化 (ⅰ) 粒度の細かいクロックゲーティング 主要ブロックごとに 動作タイミングに合わせてクロックを印加 のチャンネルとランクごとに細かく CKE を制御 IDLE 信号 動作タイミング Ack Ack Ack Ack Ack Ack Ack Ack Ack Ack Ack クロック IDEL 時クロック Off 動作時クロック On IDEL 時クロック Off ユーザーから意識することなく省電力化を図ります
4. 低消費電力化 (ⅱ) 規模 速度を考慮した階層設計 高い動作周波数部分を最小化 同期設計を徹底し性能を維持非同期マスターには マスター Arbiter / MMU MUX CACHE (User Logic) Control マスター ブリッジ ブリッジの挿入で対処 回路規模 1000 100 高速動作部分を限定し 合成 レイアウト負担を軽減させます 4 基本周波数 x 1 基本周波数 x 2 基本周波数 x 4 回路規模は参考相対値
仕様 仕様と回路規模 ( 例 ) クロック ( 目安 ) バス (200MHz), メモリ (800MHz), 完全同期 マスター数 8x32bit(via キャッシュ ), 4x64bit( バイパス ) コヒーレンス制御相互の R/W 全て, Atomic アクセスサポート 優先度制御固定, ランダム, 帯域設定 MMU サポート TLB 内蔵, 1 回のテーブルウォーク キャッシュ対応 8Bank, 4Way, Total 512KB 対応 DDR2/3( 混在可 ), 2Ch x 2Rank x 8/16bit メモリマッピング Bank, Ch, Rank の配置はレジスタ設定 レイテンシ 10( キャッシュヒット ), 20( キャッシュミス ) の設定により前後します 回路規模 ( 目安 ) FF 個数 100K 以下 SRAM 総容量 640KByte
システムへの組み込みに向けて I/O CPU システム LSI / FPGA エンジン PHY お客様 I/O Cache MC 2 MCMC 2 各種エンジン * DSP PSS* 各種 Cache *PSS は弊社の DMA 制御コアです * 各種エンジンの設計はご相談下さい ArchiTek エンジン エンジン PSS* PHY CPU メモリコアだけでなく総合的なソリューションの提案も可能です DSP
終わり ArchiTek 株式会社 Osaka, Japan ArchiTek Corporation +81-90-1590-6809 http://www.architek.co.jp