マルチスレッドのリニア読み出し/書き込み - 1.0 日本語

Versal ACAP Programmable Network on Chip and Integrated Memory Controller v1.0 LogiCORE IP 製品ガイド (PG313)

Document ID
PG313
Release Date
2021-04-08
Version
1.0 日本語

この例では、2 つの読み出しデバイスと 2 つの書き込みデバイスがすべて同時に動作し、それぞれが異なるメモリ領域にリニアにアクセスするものとします。前の例と同様に、各デバイスがページをオープンし、ページ ミスのペナルティなしにリニア アクセスできるのが理想です。そのためには、各デバイスを別々のバンクに置くと同時に、前の例と同様に 1 ビットのバンク グループ ビットを下位ビットに置いて同じバンク グループにアクセスする際のペナルティを防ぎます。

そのためには、まず 4 つのデバイスでメモリをどのように分割するかを決定します。ここでは、各デバイスに 32MB を割り当てる場合を考えます。各デバイスが異なるバンクにアクセスするように、32MB 境界に対応する位置にバンク ビットを置くと、アドレス マップは6R-2B-1BG-11R-7C-1BG-3C となります。

表 1. マルチスレッドのリニア読み出し/書き込みのアドレス マップ
マップ名 効率 マップ方式
6R-2B-1BG-11R-7C-1BG-3C 88% 32MB マルチスレッド
16R-2B-1BG-7C-1BG-3C 40% バンク グループを最適化した行/バンク/列
16R-2B-2BG-10C 29% 単純な行/バンク/列

このアプローチは、各デバイスが 2 バンクを占有するため、最大 8 デバイスまでは十分な効果があります。ただし 8 デバイスを超えると、若干の性能低下が予想されます。32MB の値は、単なる一例に過ぎません。もう 1 つの方法として、3 ビットのバンク アドレスを最上位 3 ビットに置き、DRAM 空間全体を 8 つの均等な領域に分割することも可能です。