[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 メーリングリストの案内