Temel Kavramlar
メモリアロケーションの柔軟性向上と、PUDサブストレートの効率的な実行を可能にする新しいメモリアロケーションメカニズムであるPUMAが提案されています。
Özet
PUMAは、DRAMマッピング情報と巨大ページを使用して、PUD命令のために整列されたデータ割り当てを提供する新しいデータ割り当てルーチンです。このルーチンは、Linuxカーネルモジュールとして透過的に動作し、3つの主要コンポーネントから構成されています。これにより、物理メモリ内で連続したデータ領域を確保し、DRAMサブアレイ内でデータが整列されることが保証されます。さらに、異なる巨大ページから来たメモリ領域を連続した仮想アドレスにマップする必要があります。
PUMAは3つの新しいメモリ割り当てAPI(pim_preallocate、pim_alloc、pim_alloc_align)を公開し、プログラマーが物理メモリ割り当てを制御できるようにします。これにより、OS視点からPUD実行を可能にします。
İstatistikler
DRAMサブアレイ1つは1024個のDRAM行を持ちます。したがって、1つのDRAMサブアレイは1 MBのデータを格納できます。
mallocおよびposix_memalignメモリ割り当て子では0%の操作が正常に実行されません。
巨大ページベースのメモリ割り当てでは最大60%のPUD操作が成功裏に実行されます。
Alıntılar
"Several prior works have demonstrated the feasibility of processing-using-DRAM (PUD) architectures, which use DRAM cells to implement a variety of PUM operations."
"We conclude that traditional memory allocators cannot take full advantage of such PUD techniques since they cannot satisfy the specific memory allocation requirements of PUD substrates."
"PUMA is a practical and efficient memory allocator for PUD substrates."