[Suzaku:01150] microblazeのキャッシュ動作の検証について
Yasuhiro Omori
email@hidden
2008年 3月 27日 (木) 17:24:46 JST
お世話になります、三菱電機 大森です。
現在、SUZAKU-SZ130にて、CPUコアが2つで動作する
システムを作成しております。
この2つのCPUにキャッシュを持たせて動作させているのですが、
動作結果から、2つのCPUでキャッシュが共有されているような
結果が得られています。
作成した構成のイメージは以下のような形です。
+-----------+
| Block RAM |
+-----------+
| |
iLMB dLMB
| |
+------------+ +------------+
| Microblaze | | Microblaze |
| +-----+ | | +-----+ |
| |cache| | | |cache| |
| +-----+ | | +-----+ |
| | | |
iOPB dOPB iOPB dOPB
| | | |
+---------------------------+
| DRAM |
+---------------------------+
片方のMicroblazeについているBRAMは、
Linuxを立ち上げるためのBBoot用です。
この構成で、Linuxを立ち上げ、Linux上でベンチマークを動作させ、
その実行時間の結果を調べています。
2つのCPUには、同じベンチマークを実行させています。
各々のCPUが持つ、キャッシュ領域が独立しているならば、
CPUが1つの時でも、CPUが2つの時でも、実行時間はほぼ同じになると思います。
ですが、実際にはCPUが1つの時の実行時間に比べ、
CPUが2つの場合の方が、1.5倍程度遅い結果
(CPU1つの時が7.4秒、CPU2つの時が13.3秒)となり、
2つのCPUが同じキャッシュを使用しており、
バス上での競合などが起きているのでは、という考えに至りました。
イメージとしては、以下のような形になっていると思っています。
+-----------+
| Block RAM |
+-----------+
| |
iLMB dLMB
| |
+------------+ +------------+
| Microblaze | | Microblaze |
+------------+ +------------+
| +------+ |
|------- |cache| --------|
+------+
| |
iOPB dOPB
| |
+-------------------------------+
| DRAM |
+-------------------------------+
本当に上記の図のような構成になっているのかを検証したい場合、
どのような調べ方をしたら良いのか、わかる方がいらっしゃいましたら、
ご教授お願いいたします。
suzaku メーリングリストの案内