[Suzaku:01157] Re: microblazeのキャッシュ動作の検証について

kawaoka email@hidden
2008年 4月 8日 (火) 21:30:59 JST


川岡と申します。

> ちなみに、古いカーネルの場合、データキャッシュにアクセスするところを、
> OPBやDRAMにアクセスしていたために、頻繁に競合処理が起きていた
> ということでしょうか?

はい。
おそらく、上記のようなことが発生していたと思われます。


Yasuhiro Omori さんは書きました:
> お世話になっております、三菱電機大森です。
> 
>> 古いカーネルは、Dataサイドのキャッシュが有効にされておりませんでした。
>> もし、古いものだとすると、DRAMにアクセスするのに、またはOPBにアクセスするのに
>> 2つのCPUで競合が起きていた可能性があります。
>> お手数ですが、最新のカーネルやDist、開発環境で
>> 動作検証を試してみていただけますでしょうか。
> 
> カーネルを最新版に変更したところ、
>  2つのCPUで競合が起きているような動作はしなくなりました。
> 
> 古いカーネルの時に、2つのCPUでベンチマークを動作させた時の実行時間は、
> 13.13秒(命令キャッシュ4K、データキャッシュ4K)で、
> 新しいカーネルに変えたところ、同じ構成で、実行時間は3.18秒となりました。
> 
> CPUが1つ(命令キャッシュ4K、データキャッシュ4K)の時も、
> 実行時間は3.18秒となり、CPUが1つでも2つでも同じ結果となり、
> CPUでの競合は起きていないと思われます。
> 
> ちなみに、古いカーネルの場合、データキャッシュにアクセスするところを、
> OPBやDRAMにアクセスしていたために、頻繁に競合処理が起きていた
> ということでしょうか?
> 
> ----- Original Message ----- 
> From: "kawaoka" <email@hidden>
> To: "SUZAKU general discussion list" <email@hidden>
> Sent: Thursday, April 03, 2008 10:30 AM
> Subject: [Suzaku:01151] Re: microblazeのキャッシュ動作の検証について
> 
> 
>> 川岡と申します。
>>
>>
>> 古いカーネルは、Dataサイドのキャッシュが有効にされておりませんでした。
>> もし、古いものだとすると、DRAMにアクセスするのに、またはOPBにアクセスするのに
>> 2つのCPUで競合が起きていた可能性があります。
>>
>> お手数ですが、最新のカーネルやDist、開発環境で
>> 動作検証を試してみていただけますでしょうか。
>>
>>
>> Yasuhiro Omori さんは書きました:
>>> お世話になります、三菱電機 大森です。
>>>
>>> 現在、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 mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/mailman/listinfo/suzaku
>>>
>> _______________________________________________
>> suzaku mailing list
>> email@hidden
>> http://lists.atmark-techno.com/mailman/listinfo/suzaku 



suzaku メーリングリストの案内