gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

メモリバンクとメモリインターリーブ

 メモリにアクセスする時、メモリはRead / Writeされるための準備時間が必要になります。準備時間中はメモリへのアクセスが止まっている状況なので、処理時間においてこの時間は無駄な時間です。この無駄時間を短縮し、プロセッサのメモリアクセス時間を高速化する技術がメモリインターリーブです。
 メモリインターリーブでは、アドレスマッピングとメモリアクセスの方法に、それぞれ下記の様な特徴があります。
 ・アドレスマッピング複数のメモリバンクにまたがってアドレスをマッピングする。
 ・メモリアクセス  :複数のメモリバンクに対して連続してアクセス要求を出す。

メモリインターリーブでのアドレスマッピング[1]

 メモリインターリーブを使うとき、複数のバンクを1つのバンクのようにして扱います。下図のように、通常1つのバンクにおいてマッピングされる番地は連続です。しかし、メモリインターリーブを使うときは下図の様に、複数のバンクを使うことで連続にマッピングします(1バンクだけみると不連続)。
f:id:graziegrazie:20151003144221j:plain
図1. メモリインターリーブでのメモリアドレスマッピング方法

メモリインターリーブでのメモリアクセス

 複数のバンクに連続してアクセス要求を出すことで、メモリアクセスにかかるオーバーヘッドを減らします。具体的には、パイプライン処理のようにして、バンク1へのアクセス要求が完了し、データをRead / Writeしている間に、バンク2へアクセス要求を出します。これにより、メモリアクセス時に必要となる準備時間を見かけ上減らします。
f:id:graziegrazie:20151003150049g:plain
図2. メモリインターリーブでのメモリアクセス方法(出展:[2])

 上記の様にデータをマッピングし、アクセスすることで、メモリインターリーブではメモリアクセス時間を短縮しています。