• 検索結果がありません。

九州大学学術情報リポジトリ

N/A
N/A
Protected

Academic year: 2021

シェア "九州大学学術情報リポジトリ"

Copied!
43
0
0

読み込み中.... (全文を見る)

全文

(1)

九州大学学術情報リポジトリ

Kyushu University Institutional Repository

RISCを用いた実時間システムの処理能力の評価手法 に関する研究

杉村, 康

https://doi.org/10.11501/3159132

出版情報:Kyushu University, 1999, 博士(工学), 論文博士 バージョン:

権利関係:

(2)
(3)

RISCを用いた実時間システムの処理能力 の評価手法に関する研究

1 9 9 9主ド 7 )=j

本:a. キ三I 局乏

(4)

自 主欠

第 1章緒論 .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . 1

1. 1 研究の背景 . . . .. . . .. . . 1

1. 2 研究の位置付け ... 8

1. 2. 1 縮小命令セットコンビュータ(RISC )の処理能力の解析 ... 8

1. 2. 2 RISCの処理能力の解析の精度検証 ... 12

1. 2. 3 二次キャッシュの競合ミスの回避 . .. .. .. ... . . ... .. .. .. 14

第2章RISCの処理能力の解析 ... 18

2. 1 処理能力 と処理能力要因 ... 18

2. 2 処理能力の低下要因(ペナルティ) の用語の定義と前提条件 ... 20

2. 3 評価手法 ... 22

2. 3. 1 RISCアクセス状態データ生成手法 ... 22

2. 3. 2 RISCの処理能力の評価手法 ... 29

2. 4 評価結果 ... 31

2. 4. 1 RISC/複合命令セットコンビュータ(CISC )実行命令数比.... 31

2. 4. 2 R3000のCISC相当MIPS値(CMIPS) ....... .. ..... 34

2. 4. 3 R 4000のCMIPS ... 37

[1 J 二次キャッシュ命令/データが共用と独立のときのCMIPS ... 37

[2J 各種パラメータを変化させた場合のCMIPS ... 40

[3J タイムシェアリングシステム(TSS) と実時間システム(R TS) でのCMIPSの相違 ... 45

[ 4J ドライストーンベンチマークでのCMIPSの考察 ... 45

2. 5 効果 . .. .. .. .. .. .. .. .. .. ... .. .. .. .. ... . .... . .. .. .. .. .. . ... .. ... .. 47

第3章RISCの処理能力の解析の精度検証 ... 49

1

(5)

3. 1 要検討項目とアドレス変換バッファ(TLB)ミスと処理能力との関係 .... 49

3. 2 ペナルティの用語の定義と前提条件 ... 55

3. 3 評価手法 ... 56

3. 3. 1 RISCアクセス状態データ生成手法2 ... 56

3. 3. 2 TLBのシミュレーション手法... 59

3. 3. 3 評価用ベンチマークの作成手法 ... 60

[1] TLBミス測定用ベンチマークの作成手法 ... 60

[2J疑似前Sベンチマークの作成手法 ... 62

64 評価の共通事項 ... 64

ドライストーンベンチマークでの評価結果... 66

TLBミスのオーバヘッドの評価結果 ... 68

疑似RTSベンチマークでの評価結果 ... 70

3. 4. 5 TLBミスの影響の評価結果 ... 73

3. 5 効果 ... 74

許一特 辞 献 考 引 謝 文 参 索 3. 4 評価結果 3. 4. 1 3. 4. 2 3. 4. 3 3. 4. 4 4. 1 前提条件と新手法の概要... 76

4. 2 最適化手法と評価手法 ... 80

4. 2. 1 固定エリアの最適化(最適化X )... 80

4. 2. 2 浮動エリアの最適化(最適化L )... 90

4. 2. 3 最適化結果の反映手法 ... 96

4. 3 評価結果 . . . • . . . 97

4. 3. 1 前提条件 ... 97

4. 3. 2 最適化Lの効果 ... 98

4. 3. 3 最適化Xの効果 ... 100

4. 4 効果 ... 100

第4章 二次キャッシュの競合ミスの回避 ... 76

第5章結論 ... 102

II - - 111 -

(6)

気苔 1主主 来者言命 1. 1 研究の背景

計算機は, この数十年において, 飛躍的な発展を遂げている. その結果,

計算機によって提供されるサービスは, 電子交換, オンライン予約・照会,

データベース検索, 電子メール, ワールドワイドウェプでのマルチメディ ア処理等の例のように, 我々の生活に益々密接に関係したものになって来 ている. また, それらのサービスの開発自体にも多数の計算機が使用され る. それらに伴い, 多数のシステムや新たなサービスが開発され, 多数の サービスが開始(サービスイン) されている. しかしながら, サービスイ ン直後に所定の処理能力目標を達成できないことが判明し. そのためにシ ステム開発をやり直すこと[1][2J[3Jは, 稀ではない. 従って, システム の処理能力評価を事前に高精度に行うことが非常に重要である.

計算機の上記のサービスのタイプには, 大別して, タイムシェアリング サービスと実時間サービスの二つがある. 前者のサーヒスは, オペレーテ ィングシステム(OS)としてUNIX* 1を使用したシステム開発環境において広 く使用され ,小型・高性能の個人やグループ向け計算機 (ワークステーシ ョ ン[5J ) 上で普及しており, 複数の特性の応用プログラム(AP)の同時処 理を特徴とする非定型処理[6Jを主体とし, バランス良い並行処理を実現 する. 後者のサービスは, OSとしてCTRONりを使用した為替交換・中継シ ステム[8J等で見られ, 限定されたAPの繰返し処理を特徴とする定型処理

[6 Jを主体とし, 前者のサービスより厳しい応答時間移3を満足しなければ

UNIX本1: 1973年にベル研究所でタイムシェアリングOSとして最初に開発さ れ[4 ].その拡張版が現在も広く使用されているOS.

CTRON*2: 交換処理/通信処理/小規模情報処理等に使用できる突時間性 を重視したOS[7],

応答時間*3 システムに処理を依頼してから, その処理完了のメッセージ 等が来るまでの時間.

(7)

ならない.

前者のサーヒスに特化したシステムを, タ イムシェアリングシステム:41

[9](TSS)とよぶ. 一方, 後者のサービスに特化したシステムを, 実時間シ

ステム[10](以下, RTSと略記)とよぶ. 当論文では応答時間への要求が より厳しいRTSについて述べる. 更に, RTSは, 応答時間の制限を満足で きないときにシステム障害状態となるハードRTSと, 応答時間の制限をあ る低い確率で超えても許容されるソフトRTSに大別できる[11]. ハードRTS は, 例えばプラント監視システムのように, 定められた時間以内に処理を

終わらせるためのスケジュール制御(以下, デッドライン制御と略記)を 有することを特徴[llJ[12]とし, 一方, ソフトRTSは, 例えば上記為替交 換・中継システムやデータ ベース検索システム等のように, 上記の制御を 持たない. 当論文では, ソフトRTSはデッドライン制御を持たない点で原 始的であり, その評価結果はハードRTSの考察に参考になるであろうとい う理由により, ソフトRTS(以下, RTSと略記)について述べる.

そのRTSにおける「処理能力の最大値を制限する主因J(ボトルネック) には, 中央演算処理装置( CPU)ネック, パスネック, 二次記憶装置 ネック 等が考えられる. それらにおいては, 後者程その装置等の速度は遅いので,

最高の処理能力を実現するためには, CPUがボトルネックとなるように設計 する必要がある. 当研究では, そのように最高の処理能力を実現するよう に設計されたシステム[13][14] [15] [16Jを研究対象とする. その場合, CPU の処理能力を予測できることが非常に重要となる.

CPU の種類には, パソコンや大型計算機等で現在も使用され. マイクロ 命令本lにより複雑な命令を実現していることを特徴とする複合命令セット コンビュータ( CISC)と, 小型計算機等で最近よく使用され, ハードウェア の配線ロジックを使用して単純な命令のみを実現することにより処理能力 の向上を狙っている縮小命令セットコンビュータ(RISC)がある. 特にRISC は急激に増加した[17Jが, 商用のRTSに基づいてRISCを正確に評価した例

マイクロ命令歌1 命令の実行の基本動作を実行する命令. これを複数組合 わせて, CPUの論理仕様が定める一つの命令(機械語命令)を実現する.

2

は見られない.

そのRISCの開発グループには, 大別して, パイプライン寧1を複数持つス ーパースカラ方式を出発点とした Su nMicros ystems, Inc. (サン社)グル ープと, パイプラインを一つしか持たないスーパーパイプライン方式を出 発点としたMIPS Computer Systems, Inc. (ミップス社)グループの二大 グループが存在する[18], 当論文では, スーパーパイプライン方式はパイ プラインを一本しか持たない点で原始的であり, その評価結果は他の方式 のRISCの考察に参考になるであろうという理由により, ミップス社グルー プのスーパパイプライン方式のRISCを評価対象とし, それらのうちもっと も新しいR3000 [19 J [20 JやR4000 [21] [22] [ 23] [24]プロセッサを使用した RTSの処理能力評価手法について述べる.

CPUの処理能力の評価手法には, 大別して,

(l-A)命令実行頻度等による机上処理能力試算手法[8J [ 25],

C1-B)評価用プログラム(ベンチマーク)の走行による実測手法[6J[26J [27J [28J [29], および

C1-C)実行された命令に関する情報の集合(トレースデータ )を入力と したハードウェアの動作の模擬(シミュレーシ ョ ン)による手法[30][31]

[32Jが存在する.

これらのうち, C 1-A)机上処理能力試算手法は, 平均命令実行時間と実 行命令数等により, CPUの処理能力を求める手法である. この手法は, あ らかじめ平均命令実行時間を求める必要があるため, キャ ッシュバのヒッ ト率*3を一定と仮定して行わざるをえない. しかしながら. CISCでは, 歴

パイプライン権1. 命令の実行を, ステージとよばれる最小単位に分割して.

並列に処理するための「プロセッサの内部機構J .

キャ ッシュ本2. キャッシュがない場合はメモリに格納されるデータ を, 処 理能力向上を目的として, 行という最小単位毎に, 便宜的に格納してお くための高速パップァ.

ヒット率* 3 バッファの内容がそのまま使用可能な場合(ヒット)の確率.

3

(8)

史が古いため, 評価用のデータが筆者の環境でも存在するが, RISCでは,

商用で使用されるAPとOSを搭載した実際のRTSC以下. 実RTSと略記)での データが, 存在しない. そのため, 該手法はRISCでの実RTSの処理能力の

正確な評価が難しい.

上記(l-B)ベンチマークの走行による評価手法は, 所定のひな型(モデ ル〉のプログラムを実際に走行させ, その実行時間等により処理能力を求 める方法である. これは過去において主流であった手法であり, 多数のベ ンチマークが発表されている. また, それらの標準化に関して, 日本の財

団法人・ 日本規格協会で, 検討が行われた[33]経緯がある. しかし, 実RTS にどれだけ近いモデルであるかどうかという点に問題があることがわかっ ている[34] [35]. かつ, たとえ実RTSと同じモデルを実現しえたとしても,

そこから得られた結果は, なぜそのようになるのかという疑問への答えを 正確に与えることが難しい.

更に, 該手法に属するものとして, 既存の CISC上のげをRISC上のワーク ステーシ ョン等に移植して評価する手法も考えられる. しかしながら, 当 研究対象の実RTSでは, 特にOSの通信系等の処理で高度な処理能力改善(

チューニング)を実施している. そのため, この手法は, OS自体の特性を 正確に反映しない結果となり, 実RTSにおいて目標の処理能力を達成でき ないという誤った評価結果を出す恐れがある.

また, 既存のAPをRISC上の実際のOS上に移植して評価する手法も考えら れる. しかし当研究の目的は, RISCを用いた実RTSの処理能力とその原因 を事前に予測することにある. よって, 該OSの完成より前に評価結果を出 す必要があり, 該手法は採用できない.

従って, 実RTSの特性を反映した上で, 事前にRISCの処理能力を求め,

かつ, その処理能力の低下要因を詳細に分析できる新たな手法の実現が必 要であった.

第2章のíRISCの処理能力の解析」で提案する手法は, 上記の必要性を 満たすものである. 該章では, 既存の CISCを用いたRTSにおけるíOSの核 の部分(カーネル)からAPまでの全プログラム階層を含むシステム全体の トレースデータ」を入力とし, そのデータをRISCのレジスタやメモリの参

4

照状態等の一命令毎の情報の集合(RISCアクセス状態データ)に変換する 手法, および, その変換結果を入力してRISCをシミュレートする手法を提

案する.

また, それらの手法を使用して, 実RTSにおけるシステム全体のトレー スデータを CISCからRISCヘ変換したときにおける実行命令数の比(RISC/CI SC実行命令数比),該比とTSS用のプログラムを CISC用とRISC用にコンパイ ルして走行させたときの実行命令数比(TSS-RISC/CISC 実行命令数比)と の比較結果, 実RTSに基づいたRISCと CISCの処理能力比, 並びに処理能力 の低下要因の詳細な具体的数値による評価(定量評価)結果, および, 実 RTSの処理能力評価結果とTSSのAPによる処理能力評価結果の相違等を明 らかにする.

上記第2章のíRISCの処理能力の解析」では, 評価結果は, 実RTSのト レースデータに基づいている. また, そのRISC/CISC実行命令数比は,TSS

-RISC/CISC実行命令数比と同一条件の部分において, TSS-RISC/CISC 実行 命令数比とほぼ一致することを示す. 従って, 上記の実RTSに対する評価 結果の精度は, シミュレーシ ョンにパグがない限り, 非常に高いと予想さ れる. しかしながら, C2-A)上記評価結果に強力な説得力を持たせるため には, 上記解析におけるシミュレーシ ョンの精度の検証が必要である. そ して, その検証の実現には, 同一モデルによるシミュレーシ ョンと実測と の比較検討が不可欠である.

一方, C2 -B)実RTSに基づく実測用のベンチマークは存在しない. また C2-C)第2章のシミュレーシ ョンでは, アドレス変換バッファ川CTLB[22J

アドレス変換バッ ファ本1 論理アドレス*2を物理アドレス*3ヘ変換するた めの高速バッファ.

論理アドレス*2 プログラムのコーディングから可視である論理的なアド レス.

物理アドレス*3: CPUがメモリへの書込みやメモリからの読込みを行う場 合に使用される物理的なアドレス.

5

(9)

〉がヒットしない場合( ミス)に必要となる余分な時間(オーバヘッド) の定量評価を, その影響は小さいと予測したこと等により, 省略している.

更に, (2-D)第2章の評価結果は, I実RTSでは, R4000において, 二次キ ャ ッシュ* 1のヒット率がかなり低い」ことを示す. 従って, その実測にお いては, メモリの割当て状況が処理能力に影響するであろうことが予想さ れる.

第3章のIRISCの処理能力の解析の精度検証」は, 上記C2-A)の必要性 を満たし, 上記C2-B) --(2-D)の課題を解決するためのいくつかの手法を 提案するものである. それらの手法は, R4000 を前提として, 以下の三つ からなり, 第2章のシミュレーションの精度の検証等を行う.

C3-A)実測とシミュレーションの比較のために, 実RTSを疑似したベン チマークを実現する. また. そのベンチマークのアドレス解決済権2のファ

イル(ロードモジュール)を入力して, C言語記述のソフトウェアにより,

RISC上でのプログラムの実行の疑似(エミュレーション〉を行って, 第2 章のRISCアクセス状態データを得る手法を実現する.

C3-B) TLB のミスのオーバヘッドの評価のためのベンチマーク, および,

それらのシミュレーションを実現することにより, それらのミスの頻度と 1 回当りのオーバヘッドとの関係を求める手法を実現する.

C3-C)実測時のメモリの割当て状況を, シミュレーションの入力として 反映する手法を実現する.

上記第3章のIRISCの処理能力の解析の精度検証」の実施の結果. Iシ ステムの処理能力はメモリの割当て状況に依存した二次キャ ッシュのミス 数により影響を受ける」という現象の発生が定量的に明らかになる. とこ

二次キャ ッシュ*1: CPUとメモリの間に複数の階層のキャ ッシュがある場 合. CPUに一番近い階層のキャ ッシュを一次キャ ッシュ, 一次キャ ッシ ュがミスした場合に使用されるキャ ッシュを二次キャ ッシュという.

アドレス解決済* 2 論理アドレスが設定されるべき定数等に, リンク等を 行うことにより, 正しい論理アドレスが, すべて設定済である状態.

ろが, 当研究の評価対象である実RTSにおいては, 文献[13) [14]で述べら れているように, サービス中にメモリの割当て状況が変化しない. 従って,

上記現象によって, 場合によっては, 処理能力がサービス中にずっと低下 したままとなることもありえ, その改善が望まれる.

os全体を対象とした上記改善の手法に関する研究には, 数例がある�36]

[37 ]. しかし, いずれもTSSを前提に研究が行われており, サービス中に

おいてメモリの割当て状況が変化しない実RTSでは, 全く効果がない, ま たは効果がない場合がある.

第4章の「二次キャ ッシュの競合ミスの回避」は, それらの問題点を解 決するために, 第2章のRISCアクセス状態データを活用する二つの最適化 手法を提案する. また, 第2章の処理能力評価手法を応用することにより,

実RTSのトレースデータに基づいて, 上記最適化手法の効果を明らかにす る.

本論文は, 以上のような背景の下で, RTSにおける処理能力評価手法に 関して, 筆者が行った研究をまとめたものであり, 大別して, 以下の3 つ の研究について述べる.

第2章 RISCの処理能力の解析に関する研究

第3章 RISCの処理能力の解析の精度検証に関する研究 第4章 二次キャ ッシュの競合ミスの回避に関する研究

7

(10)

1. 2 研究の位置付け

1. 2. 1 RISCの処理能力の解析

RISCの概念は, 1975年にIBM のトーマス J.ワトソン研究所で生まれた

[38J.

RISCの典型的な特徴は, 以下のC1-A) "-'C1-F)で表すことができる[39].

C1-A)ほとんどの命令が. 一つのマシンサイクル本1で実行される.

C1-B)ハードウェアの配線ロジックで制御され, マイクロ命令は, ほと んどない.

C1-C)計算を行うすべての命令は, レジスタ聞の操作のみを行い, メモ リに対する読込みと書込み(アクセス)は, ロード命令とストア命令での み行われる.

C1-D)すべての命令は同じ長さ(通常 3 2ピット)である.

C1-E) 3 2佃の汎用レジスタと巨大なキャ ッシュを有する.

C1-F)プランチ命令は, 次の位置にある命令の後で実行される.

当研究で対象とするミップス社のR 3000とR 4000プロセッサは, それぞ れ1988年と1990年に世に出され[17J. パイプラインをl本しか持たないこ とを特徴とするスーパーパイプライン方式に属し, 上記のRISCの特徴以外 の高度な機能を持たない点で, 比較的単純なRISCである.

例えば, 文献[40Jで述べられているスーパースカラ方式を導入したTI社 SPARC, DEC 社 Alpha, IBM社 POWER等のRISCでは, パイプラインが複数本 存在するので, それらの並行実行による処理能力向上がありえ, 上記SPARC では, 関数をコールするときのレジスタ退避域を特殊な多数のレジスタ群 で構成したハードウェア機構(レジスタウインドウ[39J)があるので, メ モリへのアクセスの頻度の減少による処理能力向上がありえ, HP 9000 [41 J 等のRISCでは, コンパイラの限界の補助のためのブランチ直後の命令実行 の無効化(ナリファイ)機能があるので, 余分な NOγ2命令の排除による

マシンサイクル本L: CPUのクロックの周波数の逆数によって決まる周期.

NOPバ命令: なにもしない命令.

8

処理能力向上がありえる. それらの「より複雑なRISCJにおいては, 当研 究結果に加えて, それぞれの処理能力向上分の検討が別途必要て・ある.

一方, 当研究で述べるCISC[42Jは, 多数の互換マシンが存在するIBM Sys tem/370[43J [44J に非常に似ているので, 当研究結果は, Syste皿1370等の 他のCISC[45Jにも, ほとんどそのまま適用できると考えてよい. (詳細は

2 .

4. 1で後述.)表1.1に, 評価対象プロセッサの概要を示す.

表1. 1

No 項目

名称

2 命令長

3 データ 長

4 汎用

レジスタ

5 命令種類

評価対象プロセッサの概要 CISC

DIPS(18M System/370に類似) 28バイト(8),48,88

1 ,.._, 2568

演算用16個

アドレス用16個 計32個 単純命令(C言語で展開可命令) 特殊命令

複合命令 (データ 長>> 48)

RISC

R3000, R4000 48

1,2,48

演算/アドレス 兼用32個

単純命令 特殊命令

R 3000プロセッサを搭載した商用機は, 1989年に, 当時TSS用のOSであ ったUNIXを使用したサーバ型ワークステーシ ョンとして, 米シリコングラ フィ ックコンビュータシステム社より, 発売された[46 J. 該プロセッサの ドライストーンベンチマーク[27J[28J等による評価結果は, Wal ter J. P - riceによる1989年の文献[47J[48J中に見られる. しかしながら『それらの ベンチマークによる評価結果は, 処理能力を正しく反映していない』と訴 える論文[34J [49 Jが, 1990年末にReihold P. Weicher'こより発表された.

これと時期が同じころ, ミップス社は, UNIXのAPより抽出したベンチマー ク群(以下, TSS用APベンチマークと略記)等によってR 4000を評価した結 果を発表した[50J. 現在もよく使用されているSPECベンチマーク[29J[51J [52J [53Jは, 上記TSS 用APベンチマークの一部を含んでいる.

しかし, Williams T. は, 1992年の文献で, rSPECベンチマークは最も

9

(11)

人気が高いベンチマークであるが, 不完全である. 特に実時間システムの 処理能力評価に対して不十分であり, 実時間システム用の共通のベンチマ ークは存在しない. Jと述べている[35J. また, 財団法人・ 日本規格協会 .情報技術標準化研究センターで上記ベンチマーク等に関する標準化が検 討された[33Jが, 標準化には至っていない. 無論, それらの SPECベンチマ ークによる評価と同一ハードウェア構成の条件の下での実RTSのモデルで の評価は行われておらず, 実RTSでの評価が待たれていた.

一方, RISCと CISCの処理能力比という観点からのアプローチは, RISCで あるR2000 と CISCであるM68020に関して, 1990年に松岡正晴および谷口秀 夫によって[54J. R2000 とVAX8700 に関して, 1991年にD. Bhandarkar お よびD. W. Clarkによって[55]行われた. しかしながら, 前者はC言語記 述のAPに閉じた評価であり, システム全体の評価に至っていないこと, キ ャ ッシュのヒット率を特定するに至っていないこと, およびキャ ッシュ以 外の遅延要因を含めた詳細な処理能力の低下要因の定量評価には至ってい ないこと, 後者は, TSS用のベンチマークに限った評価であり, かつRISC と CISCの命令数比の評価等が, RISC上でカーネル部分のトレースをとるこ とが困難なために, 前者と同様に C言語記述のAPに閉じて行われており,

システム全体の評価に至っていないことより, それらの更なる解析が待た れていた. また, RISC上でのカネール部分のトレースを可能にしたとして も, 実RTSにおけるトレースをとるためには, RISC上でのカーネル'" APま でのOSの完成を待たねばならず, その時点で評価を行っても, サーヒスイ ンには反映することができず, 手遅れとなる. 従って, もっと早期に事前 評価を行う手法の確立が待たれていた.

本研究は, 上記問題点に解を与えるために開始し, CISCを使用した実RTS のAPからカーネルまでのすべての階層のトレースデータを入力して, RISC ア クセス状態のデータを生成するという新たな手法により, 既存の CISCを 用いた実RTS全体の特性を充分に反映し, その上で, 処理能力等の評価を 実現したものである. 具体的には, 該CISCのトレースデータは, 現在商用 システムとして数百システムが実働中である為替交換・中継システム[8]

の試験工程において, 実際のOSとAPを使用して収集したものである.

為替交換・中継用RTS

地 方 セ

ーミ

下り タ

|

送信電文

通信系システム タスクA

通信系システム

タスクB 全

国 セ

〈\!ノ

一-z 上り

送信電文

|

ザ 群 一 ク ユ ス 系 タ

、\『ν,/-、、,J〆m

\ ナ

一 一 一 / ヤ

M刈/f一リJK\

一電文当りの実行命令は数1OKs t ep, 入出力頻度は数回.

ー電文長は, 150バイト前後.

トレースデータは, 総計4電文(上り2,下り2)の全てのプログラム 階層(割込み処理等のカーネル部分---AP迄) の命令を含んでいる.

トレースデータの中には, 浮動小数点用命令は, 存在しない.

図1. 1 実RTSモデルの概要

その実RTSの概要等を, 図1.1 に示す. このトレースデータを, 後述の 全ての章で, 評価用として一貫して使用する.

当研究では, スーパパイプライ ン方式では最新のものであるR3000 とR4 000プロセッサを使用した実RTSの処理能力, および処理能力要因の詳細 な定量評価結果等を明らかにする. 更に, 実RTSに基づいた処理能力評価 結果がTSS用APベンチマークによる評価結果とは大きく異なること, およ び, その相違の要因等を明らかにする.

1 0 1 1

(12)

1 . 2. 2 RISCの処理能力の解析の精度検証

上記11.2. 1 RISCの処理能力の解析」は, CISCのトレースデータをRISC アクセス状態データに変換する手法と, そのRISCアクセス状態データを入 力してRISCにおける実RTSの処理能力等を評価する手法の二つからなる.

それらの手法のうち, 前者の手法の精度に関しては, 別の独立した研究グ ループ等による CISCのプログラムの実行命令数とRISCのプログラムの実行 命令数の実測結果との比較・分析により, その手法の変換精度が高いこと を, 上記研究の中で検証する. しかしながら, 後者についてはシミュレー ションのみであり, その精度の検証には至っていない.

該シミュレーションは, CPU等の動作を詳細に模擬したものである. 従 って, そのロジックにバグがない限り, またメーカ提供のデータに誤りが ない限り, 精度は充分に高いと予想、される. しかし, 説得力を強化するた めには, 実測との比較検証が不可欠である.

一方, 実RTSに基づいたシミュレーション結果等と実測結果との比較評 価の研究は, 殆ど例がなく, キャ ッシュがない場合においては文献[8]が あるが, キャ ッシュがある場合については見い出すことができない. 従っ て, その研究の実現が必要て'ある.

上記のシミュレーションの精度の評価を行うための実測とシミュレーシ ョン結果との比較には,

(1)実RTSに近い特性を持つベンチマーク,

(2)上記ベンチマークの実測とシミュレーション,

(3)上記シミュレーションで省略していたTLBのミスの影響の定量評価,

(4) 1実RTSでは二次キャ ッシュのヒット率がかなり低い」ことに起因 する処理能力低下の高精度な評価のための「メモリの割当て状況の シミzレーションへの正確な反映」

が必要である.

上記(1)については, 特にキャ ッシュのヒット率が非常に重要であるこ とが報告されており[34], また, 上記1.2. 1 での評価結果は「処理能力の 低下の大半がキャ ッシュのミスに起因する」ことを明らかにするので, 上

1 2

記1.2.1 の解析結果である実RTSのヒット率を実現するベンチマークが必 要である.

上記(2)では, シミュレーションを行うために, IRISC上での実測と同 ーの状態のRISCアクセス状態データ」をベンチマークから得る手法の実現

が必要である.

上記(3)TLBのミスのオーバヘッドについては, R2000 について実測結 果が発表されている[56J. しかし, RISCでは, TLBのミスの処理がカーネ ルによって行われる[56J[57Jので, 上記の発表結果は, OSによって大きく

異なっており, カーネルがL、かに高性能となるように設計されているかに 大きく依存することが歴然としていた. 従って, 何らかの手段により, 当 評価対象の実RTSでのカーネルの動作を含んだ評価手法の実現が不可欠で ある.

上記(4)二次キャ ッシュのヒット率がかなり低いことに関しては, 過去 のベンチマークの評価結果においては, そのような低ヒット率の報告を見 出せない. 従ってベンチマークの実測でのメモリの割当てを考慮した定量 評価結果も同様である. よって, その定量評価結果を明らかにすることは 非常に有意義であり. また, その意味でも, 上記のシミュレーションの精 度の検証は重要である.

本研究は, 上記の(1) --(4)を実現するためのものであり, プログラム 駆動[58]または実行駆動[59][60Jとよばれている「ロードモジュール[61]

を入力とする, ソフトウェアによるエミュレーション」を行い, TLBのシ ミュレーションの手法等を提案する.

また, それらの手法の実現により, まず10SからAPまでのすべての階層 の平均特性を考慮したベンチマークとうたわれているドライストーンベン チマーク[27J [28] Jでの実測とシミュレーションとの比較において, シミ ュレーションの精度が非常に高精度であることを示す.

次に, TLBのミスのオーバヘッド評価のためのベンチマークと, 実RTSの キャ ッシュの特性に極力近いキャ ッシュのヒット率を実現した疑似RTSベ ンチマークを新たに作成し, それらの実測とシミュレーションとの比較に よか 上記のシミュレーションの精度を検証する.

1 3

(13)

また, 実RTSにおけるTLB のミスのオーバヘッドが処理能力に及ぼす影 響と, メモリの割当て状況が処理能力に与える影響の定量評価結果を明ら かにする.

1 . 2 . 3 二次キャ ッシュの競合ミスの回避

上記11. 2. 2 RISCの処理能力の解析の精度検証」の実施の結果, 1シス テムの処理能力が, メモリの割当て状況に起因する二次キャ ッシュのミス 数の変動の影響を受ける」という現象が発生することが定量的に明らかに なる. 一方, 当論文の評価対象のRTSにおいては, 文献[13][14]にもある ように, サービス中においてはメモリの割当て状況が変化しない. 従って,

上記現象によって, 場合によっては, 処理能力がサービス中にずっと低下 したままであることもありえ, その改善が必要である.

一般に, 上記のキャ ッシュのミスは,

C1-A)容量性Ccapacity)ミス:キャ ッシュに存在する行数以上にキャ ッ シュが使用されることによって発生するミス,

C1-B) 競合Cconflict)ミス:キャ ッシュ内 には未使用の行が存在するが,

機構的に使用中の行が複数のアドレスによって多重に使用されることによ って発生するミス, および

C1-C)無効 Ccompulsory) ミス:全く使用されていない行, または何ら かの理由により内容がクリアーされた行に対するアクセスによって発生す るミス,

の三つに大別できる[62].

これらのうち, R4000プロセッサにおける二次キャ ッシュでは, その大 きさが巨大(最大4MB,後述評価では1 MB)であり, 連想、性= 1 , すなわち同 ーの行の番号に対して保持できる内容がただ一つであるキャ ッシュのアク セス機構 (ダイレクトマッピング)を持つ, という二つの特徴に基っ・いて,

最も問題となるのは上記 C1-B)競合ミスの発生であり, その低減化が必要 である.

一方, 巨大なダイレクトマッピングの二次キャ ッシュを有する場合のメ

1 4

モリの割当て方式に関する研究は, OS全体を評価対象としたものでは. 文 献[36Jと[37]による手法に大別できる.

R.E.Kessler およびM.D.Hillによる「物理アドレスで検索する巨大なキ ャ ッシュのためのページ* 1割当てアルゴリズムJ [36]は, 文献[37 Jの中に もあるように. ページフォルト叫発生時に論理ページ* 3を物理ページ* 4に 順次割当てる手法である. この手法は, TSSでは有効であるが, RTSには 適さない. なぜならば, 現在発展途上にあり, その処理能力の最適化がま だ完了していないと思われる「マルチメディア処理を実現するRTS[ 16 J [63 J

」のような例を除いて, 厳しい応答時間の要求に対応できる処理能力が高 いRTSでは, オンラインのサービス中に必要なプログラムやデータは, メ モリ内 に常駐する[13][14J [15], そのようなRTSでは, TSSで用いられる ような動的に論理アドレス等を決定する機構(ダイナミックリンク[64J) は, サービス中に使用されない. また, 必要に応じてページ単位にデータ 等をメモリにロードする機構 (オンデマンドページング;ODP[65])もサー ビス中に動作することはない. すなわち, 上記のRTSでは, 文献[66]のメ モリプール機能や文献[67]のメモリ括り付け Cwired)のような機能を使用 して, サービスの初期設定時に一括してメモリが割当てられるので, サー ビス中にはページフォルトは発生しない. その場合, R. E. Kessler等によ る手法は, 存在するすべての論理ページに, 順次, 物理ページを割当てた 場合, つまり何もしない場合と何らの相違もない結果となる.

ページ本1 論理空間傘5や物理空間・6やメモリの割当ての最小単位. 通常,

4096バイトの大きさを持つ.

ページフォルトキ2 . メモリへのアクセス時に, 該ページがメモリ上に存在 しない場合に発生する事象. この事象を契機として, メモリ管理ルーチ ンに制御が渡り, そこでメモリの割当て等を行う.

論理ページ* 3 . 論理空間の割当ての最小単位. 通常, 4096バイト.

物理ページ本4 . 物理空間の割当ての最小単位. 通常, 4096バイト.

論理空間* 5 論理アドレスとして使用可能な範囲.

物理空間* 6 物理アドレスとして使用可能な範囲.

1 5

(14)

B.N.Bershad. D.Lee. T. H. Romer およびJ.B.Chenによる「巨大なダイレ クトマッピングキャ ッシュにおける競合ミスの動的な回避J [37]は, 二次 キャ ッシュとメモリとの聞に, CM LバッファCCache Miss L ook aside bu­

ffer)というハードウェア装置を挿入して, 物理ページ毎の二次キャ ッシ ュのミスの統計を取り, それに基づいて物理ページの割当てを動的に変更 する手法である. 該手法は. TSSにもRTSにも適用が可能であるが, 本質 的に, 以下の二つの問題点を有する.

C2-A)収集する情報が二次キャ ッシュのミスに関する情報だけであり,

ヒットに関する情報を含まない.そのため, 動的な変更によってミスが減 少するという保証がない.すなわち, 新たに選ばれる物理ページがミスを 減らすかどうかを, 収集した統計情報よりあらかじめ判断できず, 動的な 変更の後でのミスに関する情報により初めて, その動的な変更が妥当なも のであったか, つまりミスを減らす方向に働いたか, または妥当でないも のであったか, つまりもっとミスを増やす結果となったか, が結果的に判

明する.特に, 二次キャ ッシュの行の使用率がある一定の値を超えると,

該手法は 全く無駄な動的な変更を繰返す危険がある.

C2-B) R4000プロセッサでは, カーネルのテキストとデータ(以下, カ ーネルエリアと略記)は, 論理アドレスと物理アドレスの関係が固定であ る.従って, 該手法は, それらのミスに対しては動的な変更を行わないし,

行うことができない.しかしながら, カーネルエリアでの二次キャ ッシュ のミスは, 低頻度ではあるが, 発生しえる.そして, その影響は, 第4章 での評価で明らかにするように, 決して無視できる範囲にはない.従って,

それを回避する何らかの手法が必要である.

また. H. T omiya ma およびH.Yasuuraによる「コンパイラによって命令 の配置を変更する手法J [68]も発表されている.該手法は, 一次命令キャ ッシュを対象とし. 応用プログラムのように限定された環境では, かなり 有効であると思われる.しかしながら, 当二次キャ ッシュにおける問題は,

命令とデータが共用のキャ ッシュの場合であり, かつ, 物理アドレスでの ミス判定を必要とする等のかなり異なる前提条件を持つ. 従って, 上記命

令配置変更手法の適用の更なる検討は割愛した.

1 6

一方, 本研究の評価用対象である実RTSにおいては,

C3-A)サービス中に使用されるプログラムとデータは, メモリ内に常駐,

C3-B)サービス中に動作するプログラムは, 定型処理のみであり, それ らのロジックはOS全体のロジックの一部分に限定されている, および

C3-C)サービス中に使用されるプログラムの論理アドレスは固定であり,

あらかじめシステム生成時以前にアドレス解決がなされており, サービス 中に変更されることはない, という特徴が存在する.

当章においては, それらの特徴を利用して,

C4-A)サービス中に取得したトレースデータから作成した, 1. 2. 1 のRI SCアクセス状態のデータより, メモリの割当ての最適化用の情報として,

論理ページや物理ページの使用状況の情報だけでなく, 二次キャ ッシュの 行の使用状況の情報を含んだ情報を収集し,

C4-B)上記情報を元にして, 論理/物理ページの関係の最適化を行い,

C4-C)その最適化結果を, サービスを開始する直前に. すなわちサービ ス初期設定時等に, 論理ページと物理ページの最適な関係を示すデータと して指定し, それらに基づいてメモリの割当てを一括して変更する

という手法により, 二次キャ ッシュミスによる処理能力低下の減少を図る.

また, 上記C4-A)とC4-B)については, それらの実現を行い. C4-C)に ついては, 上記1.2. 1 での新手法を応用したシミュレーシ ョ ンを行うこと によって, 実RTSのトレースデータに基づいて, 上記の最適化の効果を明 らかにする.

1 7

(15)

多高 2 主主 RISCo:>長生王里台芭ヌ70:>角卒本斤

従来より使用していたCISCに替えて. RISCを初めて導入する場合. CISC に比べたRISCの処理能力を, あらかじめ事前に評価しておくことは, その

導入によって処理能力上の問題が発生しないこと確認する意味で, 重要で ある. また, その処理能力を明らかにした上で, なぜそうなるかの詳細要 因を分析できることが, その後の更なるシステムの拡張や改善策等を検討 する上で, 必要である.

本章では. 2.1 で. RISCの処理能力と処理能力要因との関係を定義し,

2. 2 で, それらを処理能力の低下要因(ペナルティ)ヘ更に分解した結果 を明らかにする. そして2.3 で, 処理能力の評価手法について述べ. 2.4 において, その評価手法を使用して, 実RTS のトレースデータに基づいて,

処理能力を評価した結果について述べる.

2. 1 処理能力と処理能力要因

R3000 [ 1 ][ 2 ] やR4000等[3][4] [5] [6]のように, 単一のパイプラインを 有するRISCでは, パイプラインの処理の中断(ストール)[4J [5]の発生が ない理想的な状況下では, すなわちキャ ッシュのミスが起こらず. TLB [5]

(文献[7JのTBに相当)のミスが起こらず, ブランチも発生せず, 表2.1

に示すようなデータのロード遅延等も発生しない状況下では, 1 秒当りの 命令の実行数を表す指標である Million Instructions Per Second (MIPS) 値[8 ]は, iCPUのパイプラインの処理のー単位であるステージ」の実行 速度を決定する「ステージの周波数」をMHz で表したもの(以下. PSTFと 略記)に等しい. また. CISCに比 したRISCの処理能力を決定する主要因は,

次の三つに大別できる.

(1) RISC/CISC実行命令数比( 以下, RCEIR と略記):CISCの命令をRISC の命令に置替えた場合に, RISCの実行命令数がCISCの実行命令数の何倍に なるかを表す.(一般に. RCEIR > 1. 0 )

1 8

(2) PSTF: 上記.

(3)各種ペナルティ:表2.1 のキャ ッシュのミスやブランチ遅延 やロー ド遅延等により, 上記の理想的な状態に比べて余分に必要とする時間.

以下, この時間 をパイプラインのステージの周期(サ イクル)の数で表し たものを. EAMPとよぶ.

また. CPUはシングルプロセッサ(SP)であり. CPU使用率の上限(ρCPU )が一定であることを前提とすれば. RISCの処理能力に相当する単位時間 当りの処理トランザクション数[Tr/秒](以下. TPSR と略記〉は, 次式で表 すことができる.

TPSR = PSTF * 1000000*1 *ρCPU / ( RCEIR * C1TrEI (l+EAMP ))

但し. C1TrEI : 1Tr当りのCISC上での実行命令数 EAMP: 1 命令平均ペナルティ

傘1: 1 Hz単位への換算値

(2. 1)

更に, 文献[9]により, CISCにおけるSP時の平均命令実行時間(gC)[μsJ が既知であり. CISCのSP時の処理能力(TPSc)が既知であれば. RISC/CISC処 理能力比(RCPFS),およびiRISCがCISCの何MIPSに相当するかを表すRISCの CISC相当MIPS値J(以下, CMIPS と略記)は下式で表すことができる.

RCPFS = TPSR / TPSc (2. 2)

CMIPS = RCPFS / gc (2.3)

以下, ①文献[9]で既に述べた実RTS のAP,.._,カーネルまでのすべてを含

むトレースデータを入力し, RISCの評価に必要なデータ(RISCアクセス状 態データ, 表2.3参照)を生成して上記RCEIR を求め, ②生成したデータ を入力としてキャ ッシュの動作等のシミュレーションを行って上記 CMIPS を求め, かつ, その CMIPSをもたらす要因について明らかにする.

具体的には, 上記①については. 2.3.1 でRISCアクセス状態データの生 成手法を, 上記②については. 2.3.2 でRISC処理能力評価手法を. 2.4.1 でRCEIR の評価結果を, 2.4.2 で, キャ ッシュアルゴリズムのうち, スト ア系命令の実行時にデータを(キャ ッシュ上にあれば) キャ ッシュとメモ リにほぼ同時に書込む方式(ライトスルー(WT)方式[10])を採用している

1 9

(16)

R3000のCMIPS解析結果と, その要因の解析結果を述べる. 更に,2.4.3で,

ストア系命令の実行時にデータをキャ ッシュにのみ書込み, 該当キャ ッシ ュの行のミス が発生したときに, メモリ(または二次キャ ッシュ)に書込 む方式{ライトパッ夕刊B)方式[1 0]}を採用しているR4000のCMIPS解析 結果と, その要因の解析結果について述べる.

以上により, 実RTS でのCMIPS値等を明らかにするだけ でなく, そこ で のWT方式とWB方式の特性の全容, および, それらがなぜそうなるのかを明 らかにする.

それらの結果は, I従来の手法 では評価が困難であった以下の項目」の 目安を提供することが可能 である.

(A) CISC上 の実RTS 全体をRISC上に乗換える場合に, どの程度の処理能 力を達成できるか .

(B) IRTSにおける実測結果がCPUネックであり, 所定の処理能力に対

してN[引の能力が不足する」ことが現実となった場合 , 例えば, 二次キャ ッシュをどの程度高速なものに変更すれば所定の処理能力を達成できるか .

なお, 当評価手法における評価対象 は, 高性能なRTSを実現する小型計 算機システム であることを想定し, オンラインのサービス中には必要なデ ータ やプログラムはすべてメモリ上に存在する. それらのメモリへのロー

ド等はサービス の初期設定時にすべて行われ, 評価対象には含まれない.

2. 2 処理能力 の低下要因(ペナルティ) の用語 の定義と前提条件

R3000やR4000のRISCのペナルティの用語を, 表2.1に概説する. 以下,

各ペナルティは, 該表の略号で記述する. 但し, R3000やR4000 では, オ ンライン時に使用するプログラムやデータを, TLBを使用しないエリア(K

SEGO [5])上に構築可能なの で, TLB のミスによるペナルティは, 評価対象 外とする.

また, 当研究において使用した計算機の構成に基づくキャ ッシュの階層 構造等の前提条件を, 表2.2に示す.

2 0

表2. 1 R3000やR4000のベナルティの用語一覧表( 1 / 2 )

No 遅延名 略号 説明

LOADDL レジスタにロードしたデー?を直後の命令で参

照できないときの遅延.

2 15ンチ BRANDL プうンチ先の命令の実行は直後のステサでは

行えないときの遅延.

3 部分ワードPWWRDL 3バイト以下のデイ書込み(うイト)の命令は うイト lステージでは行えないときの遅延.

4 メモリ MEMRDL キャリバス時に, 行 データのjf'J→CPU転送

読込み 時の遅延. 但し傘l は下記No5,No6を (リード) 除く, 傘2はCPU/j f'J 間のシステムインタ 7エース

転送遅延を含む.

5 7ン RUNRDL プうンf先 命令 が一次行11:1 の行の境界で

リ7ィJV*3 なく, かっミスした場合, 上記MEMRDL 完

了から該命令実行開始までの遅延傘1 6 プロ17リ7ィ BLKRDL データリード江時に上記MEMRDLの完了からー

jレ 次ft11:1 の書込み完了までの遅延判.

一次')- REA1DL 二次キヤヴシバス時に, 余分に行われるー

次キャリュ のリードによる遅延・2

8 一次うイ WRllDL キャリバス時に, 余分に行われる一次h

7シュのうイトによる遅延*2

二次リー REA2DL キヤヴシ1ば時に, 余分に行われる二次h

11:1 のリードによる遅延*2

10 二次うイ WRI2DL キャリ1ミス時に, 余分に行われる二次h

7シュ のうイトによる遅延.2

11 7イト・うイトCFWWDL CPU→jモリデサ連続7イト時に最初のうイ

桑忍名JLム トが完了するまでの遅延命I

12 うイト・リードCFWRDL CPU→メモリデータ うイトリード連続時にうイ卜

書凡J岳L メE込3 が完了するまでの遅延.

2 1

(17)

表2 No 13

14

R3000やR4000のペナルティの用語一覧表( 2/2 ) 遅延名 略号

うイトシステム WSYIDL イン�7工-À

乗除算 MUDIDL 説明

CPU から川リへのうイト時のシステムイン�7ェー ス 転送時間遅延*2

固定小数点乗算・除算の演算遅延

(注)川:R3000のみ , *2:R4000のみ

川:リ7イ}v; t1'・1シュ の行をメモリの内容で置替えること.

表2. 2 キャッシュの階層構造等の前提条件

No 項目 前提条件

WT方式 R3000 :一次行'111 のみ有, CPU/一次:ft'l1ュ/月 リ間の)�ス幅=4バイト,命令・データキヤ7シュ 各64KB

2 WB方式 R4000 : 一次:ft'l1ュ と二次キャリュ有, 一次行り ュ/二次 キ竹シュのバス幅=16バイト, 一次命令・デー舛判 シュ各8KB,二次行7シュ最大4MB

WT/WB 方 一次キヤ7シュ は命令/データ独立, キヤヴシュ のリ7ィルは行 式共通 単位, f.モリ は内部にリードバ'177とうイトJ\17 7 を各l

個所有, CPU/f.モIJ)í'f 7 7 間の転送時間はパス幅とデー タ長に依存

2. 3 評価手法

2 . 3. 1 RISCアクセス状態データ生成手法

WT方式やWB方式のRISCにおけるキャ ッシュ等を含めたペナルティを得る ためには, RISC上で逐次的に実行される各命令における, 表2.3のRISCア クセス状態データが必要であり, 表2.4に示すíCISC上で得た命令のトレ ースデータの内容」を表2.3の情報ヘ変換する手法を, RISCアクセス状態 データ生成手法とよぶ. RISCアクセス状態データは, 命令やデータの読込

2 2

み(リード)または書込み(ライト)(以下. まとめてフェ ッチと略記)毎 に生成される.

CISCのトレースデータからRISCアクセス状態データへの変換では, 以下 の点に留意が必要である.

CISC[11Jの命令長には2バイト(B), 4B, 8B (IBM system/370 [12J では6B)の複数の種類がある . RISCの命令長は4Bのみ.

② CISCの1命令または 2 命令は, RISCの1命令または複数の命令に相 当.

表2. 3 R I SCアクセス状態、デ寸の主な内容

No

l

項目

l 論理7ドレス

3 4

5 6 7

物理了ドレス

7ヱッチ種別

命令ニーモニ'1'J 名

リードライト種別 7ェ'1+長 レジス外音報

説明(用途)

命令/デー�7ェけの論理7ドレス(一次行7シュ の行 番 号の決定とプう汁の有無等の判定のため)

命令/デイ7ェけ の物理アドレス(二次打'f1l の行 番号の決定と打'f1l (けの判定のため) 命令7エ'Itかデータ7工1tかを不す .

4. 2. 2 (4)のツール の場合RI SC, 他はCISCの命 令ニーモニけ名(MUDIDLペナルティ有無判定等のため) リードの7ェけかうイト の7ェけかを示す.

データ7ェけ長(PWWRDLペナルティ 有無判定のため) レジスタ番号毎の参照・更新の有無を示す(LOADD L,MUDIDLのペナルティ の有無の判定のために

表2. 4 CISCのトレース情報の命令毎のレヨイの主な内容

No 項目名

|

説明

命令内容 命令コード,命令オペうンド 2 命令7ドレス 命令内容の先頭論理7ドレス

3 情報含有表示 No4以降の情報の有無の表示のE‘け群 4 変更レクリ内容 当命令前後で内容が変わったレクリの内容

?ス?情報 当命令実行時のシステム内一意のババD

2 3

(18)

③ データやレジスタの参照・更新の関係を乱さずに変換が必要. その 際, PWWRDLの正確な評価のために, データの語の境界との関係を変更して はならない. また, 二次キャ ッシュの1行(>=一次キャッシュの 1 行)内 に, 命令とデータが混在してはならない.

④ CISCのトレースデータの内容には, 論理アドレスのみが存在する.

RISCアクセス状態データには, 論理アドレスと物理アドレスの両者が必要.

また, システム空間本lの論理アドレスは, システム内一意であるが, ユ ーザ空間本2の論理アドレスは. タスク内一意であり, タスク間では一意で ない.

⑤CISC の命令においては, 参照・更新のオペランド長が命令のオペラ ンドの内容およびレジスタの内容に依存するものが. 多数ある.

上記①~⑤を. 以下の手法により, 矛盾無く解決する.

[ 1 ] タスクの識別

トレースデータを参照して, タスクディスパッチャ(以下, DPCHと略記) の入口と出口の実行を特定し, DPCHの出口毎のタスクIDよりタスクを特定

し, 次のDPCHの入口ま でのユーザ空間へのアクセスをタスク毎に分類する.

[ 2 ] 命令フェ ッチとデータフェ ッチの変換

CISCの1命令のfRISCの1命令または複数の命令」への変換は, 下記(1) の単純変換で, CISCの 2命令のRISCの1命令への変換は, 下記(2)の複合

変換 で, 行う.

(1)単純変換:命令の先頭論理アドレスと命令コードとオペランドの内 容と, そのときのレジスタの内容より, 以下のように変換.

(A)データフェ ッチの個数が1 個以内で, データが4B境界を跨がない場

システム空間* l すべてのタスク で共用するアドレス範囲(空間)[13],

ユーザ空間* 2 タスク毎に割当てられるタスクに固有な空間[13],

2 4

合は, RISCの1命令フェ ッチ (+1 データフェ ッチ)に変換.

(B)データフェ ッチの個数がn個(n>l) で, 各データが4B境界を跨がな い場合は, RISCの命令フェ ッチ+データフェ ッチのn組に変換.

(C)データフェ ッチの個数がn個(n孟1)で, それぞれが4B境界を跨ぐ場 合は, RISCの命令フェ ッチ+データフェ ッチのm*n組(皿二4バイト境界 を跨ぐ数+1)に変換.

(D)比較や演算は, 独立したRISCの1 命令とする.

但し, 下記(2)複合変換を行なうものは, それに従う.

なお, 上記におけるデータフェ ッチの長さ, 数, リード/ライトや論理 アドレスは, 命令コードやオペランドの内容やレジスタの内容より, 正確 に反映する. 例えば, 図2. 1 の①のように, CISC であるIBM のSystem/370

Mnemonìc Instructìon and Operand (IBM System/370)=

① A GR5,D(,GR2); GR5 =GR5+D(,GR2) (IA = Ox08000030) Mnemonìc Instructìon and Operand (R3000, R4000,etc.)=

丈夫

②LW GRx, D(GR2); GRx =D(GR2) (IA = Ox08000030)

;r- ③ ADD GR5,GRx GR5 =GR5十GRx (IA = Ox08000034) :Information made by my method

t

;

州000030 1 R 4川00州問00001 :

: ②,.

:

*(D+GR2) D R 4 OxOOOOOOOO OxOOOOOOOO

N

Load

》③:1Ox0800003411 R 4 IOx00000021

OxOOゆ000201;

I

Delay

7- - ー ー ー ーー ー ーー ーー- -;/ー ー -\ ー ・γ-

/ . / \

/

�- Length of Fetch

\

:_--④RI for write

L_Read/Write Fetch \__⑤RI for read

:--Data/Instruction Fetch

Logical Address of Data/lnstruction Fetch

I RI: Registers Information, D: Displacement,

川A: Instruction Address, GR: General Registerl 図2. 1 単純変換の例

2 5

(19)

のレジスタとメモリの内容の加算命令(命令ニーモニック名=A;後述評価 のDIPS[11 Jでは, 命令ニーモニック名は同一, VAX-l1では, ADDW[14J) は,

RISCであるR3000 やR4000の同図中 ②と③の命令(LW,ADD; HP9000のLDW,

ADD [15J) に変換が可能であり, 表2.3のRISCアクセス状態データとして,

同図中の②\②\および③' の情報に変換する. なお, 同図中の④⑤は,

左から右ヘlビットずつが, ベース レジスタ(BR)15,BR14,..,BRO, 汎用レ ジスタ(GR)15,GR14,...,GRO に対応する. 但し, System/370やVAX-11には,

BRはない(GRで兼用; DIPSやR1SCに比べてレジスタの数 が16個少ない) . (2)複合変換:条件ブランチと, その直前のレジスタ聞の比較命令に適 用するもので, 上記(1)の単純変換に先行して, 複合変換が必要かどうか を命令のシーケンスとオペランドの内容 等より判断して,トレースデータ 内の複合変換が必要な比較命令に印を付けておき, 印が付いている比較命 令と, その直後の条件ブランチ 命令に対しては, 単純変換を行わず, 当複

Mnemonic Instruction and Operand (IBM System/370)=

①CR GR6, GR7 ; (IA = Ox08000034

� I

if(GR6==GR7)

② BC 8,D(,GR2) ; (IA = Ox08000036

� I

goto D+GR2 Mnemonic Instruction and Operand (R3000,R4000,etc.)=

丈夫 [; ?RGJRFP Y HOW (

Inforrnation made by my rnethod

③\Ox08000034, 1 R 4 IOxOOOOOOC011 OxOOOOOOOO

1:

/

:_ Length of Fetch

\

:___④RI for write L_Read/Write Fetch \__⑤RI for read

;_ Data/lnstruction Fetch

Logical Address of Data/lnstruction Fetch

\

RI: Registers lnformation, D: Displacement,

\

図2. 2

複合変換の例

2 6

合変換を行う.

当変換では, 比較命令は消去され, 比較命令のレジスタ参照は, RISCの 条件ブランチ命令のレジスタの参照となる.

例えば, 図2.2 の①②のように, Sys tem/370のレジスタ 比較と条件ブラ ンチの命令(命令ニーモニック名= CRとBC; DIPSでは命令ニーモニック名

は同一, VAX-11ではCMPWとBEQL) は, 同図中 の③のR3000 等の命令(BEQ;

HP9000のCOMBT)に変換可能であり, 同図中の③' の情報に変換される.

なお, システムコールや1/0アクセス のような特殊命令は, 厳密にはCI SCのマイクロコード等の処理を, RISC命令に反映すべきである. しかし,

後述の評価における使用頻度を考慮して, システムコールについてのみ相 当数の複数の命令ヘ変換し, その他の特殊命令では, 使用頻度がO.3[児]未 満なので, 省略して, 上記の単純変換のみとした. また, 浮動小数点操作 を行う命令については, 実RTSのトレースデータ内において使用実績がな いため, 変換を省略した.

[ 3 ] 論理アドレスの補正

上記[ 2 ]の変換を行うと, 命令の長さ は, 変換前 後で異なる場合があ る. その場合, 次の命令のアドレス は, 変換の前後で変化しなければなら ない. その影響を正確に反映するために, 以下の補正を行う.

命令とデータの旧論理アドレス毎に, 新・旧の長さの一覧表を作成し.

システム空間ではセグメント番号[16](後述評価では論理アドレスの上位 8ヒッ ト〉毎, ユーザ空間では更にタスク毎に, 旧 長さと新長さ を旧論理 アドレス順に反映して, 旧 論理アドレスを補正する. なお, 直前の論理ア ドレス と現論理アドレスのフェッチ種別(表2.3 参照 ) が異なる場合は,

上記 2.3.1の③を満たすように現論理アドレス を補正する(増やす).

[

4 ] 物理アドレスの割当て

物理アドレスの情報は,トレースデータ内に存在しない. そのため,

2 7

(20)

以下の近似的な割当てを行う.

上記の論理アドレス補正の後に, システム空間ではセグメント番号毎.

ユーザ空間では更にタスク毎に, 使用している物理ページ数が, トレース データ内に出現した最大論理アドレスより得られる最大論理ページ番号+

1に等しいとして, 近似する. なお, システム空間は, 0番地より始まり,

各セグメント番号毎に使用している物理ページが昇順に互いに隣接するよ うに, 物理アドレスを, 連続的に割当てる.

表2. 5 R I SC処理能力評価手法の入力パラメータ No IÎうメー? 名

|

説明等

起動種別 3=R3000

4=R4000 ;二次ft11ュ は命令/デイ共用.

5=R4000 ;二次打7シュ は命令/データ独立.

パイプうインの万一 R3000 : CPUの川けの周波数 [MHzJ クの周波数 R4000 : CPUの仰けの周波数x2 [MHzJ キヤ7シュ容量1 一次キヤ7シュ容量[バイト]

4 キャリュ容量2 二次命令ft11ュ容量[バイト]

行長1 一次キヤ7シュ の行長[バイト]

6 行長2 二次行り1 の行長[バイト]

うイト情報l jモリへの語のうイトのビジー のEAMP(R3000) or 二次ft'llュ への4 語のうイトのEAMP(R4000) リード情報l jモリからの行のリードのEAMP(R3000) or二 次キヤ7シュからの 4語のリードのEAMP(R4000) うイト情報3 行の川リへのうイトのビジー のEAMP

10 Ijード情報2 j刊からの行のリ目ドのEAMP

11 うイト情報2 jモリへの行うイトのシステムイン77エース分のEAMP (注) EAMP:ペナルティ等をパイプ7インの万一?のサイ川の数で表したもの.

2. 3. 2 RISCの処理能力の評価手法

当手法では, 表2.3のRISCアクセス状態データと表2. 5 のパラメータを 入力して, キャ ッシュの動作等を, c言語記述のソフトウェアロジックと 内部制御表等で忠実に 2回シミュレーションを行い, 各回毎に, キャ ッシ ュのミス時 等のペナルティを求めて, 上記の式2.3により, CMIPS を出力 する.

それと共に, 各キャ ッシュのヒット率やペナルティやフェッチの数 等の 統計情報を, システム空間に関するもの, ユーザ空間に関するもの, およ び全空間に関するものに分類して, R3000では 154項目. R4000では 308

項目を, 出力する.

一回目のシミュレーションは, キャ ッシュをすべてInvalid(無効) 状態 にクリアした後に行う. これを, 一般に, コールドスタート[10Jという.

二回目のシミュレーションは, キャ ッシュの状態をクリアせずに, 同ー のトレースデータを, 再度, 最初から解析する. これを, 一般に, ウォー ムスタート[10]という.

図2.3に, 一次キャ ッシュと二次キャ ッシュの行の長さがそれぞれ16B と32Bで, 二次キャ ッシュが命令とデータで共用であり, データフェッチ のリードの場合でのシミュレーションのフローの概要を, 示す. 図中, 網 掛部分は, ペナルティの存在を示す. なお, 図中(19)では, ライトビジー カウンタ (内部情報 ) にメモリへのライトのEAMPを書込み, 以降, 命令フ エ ッチや他のペナルティ加算時に, 1またはそのペナルティをカウンタか ら減算し, 次に図中(1 9)または( 2 0)でメモリにアクセスする際に, 該カウ ンタが零でないとき, そのカウンタの値をCFWRDLまたはCFWWDLに加算する ことにより, メモリのビジーをシミュレートする.

同様に, 各LOADDLでも, 各レジスタの書込み時に, 各レジスタのカウン タに所定値を書込み, 命令フェッチ時に 1減算し, レジスタ参照時に, 必 要に応じて, LOADDLに加算する.

また, MUDIDLについても, 乗算・除算命令の更新対象のレジスタ毎に,

カウンタに値を書込み, 命令フェッチ時や他のペナルティ加算時に該カウ

参照

関連したドキュメント

先に述べたように、このような実体の概念の 捉え方、および物体の持つ第一次性質、第二次

ケーブルの種類および太さ ケーブルは,許容電流,電圧降下,短絡容量,施設方法等に応じて 次の中から選定いたします。 なお,ケーブルの許容電流は,日本電線工業会規格(JCS

タンク・容器の種類 容量 数量 化学物質名称

U字溝などの コンクリート 二次製品 道路などの アスファルト 合材. パーティクル

1年次 2年次 3年次 3年次 4年次. A学部入学

料からの変更を 除く。)又は、 第二九一五・二一号の産品へ の 他の号の材料からの変更 (第二九一二 ・ 一 二

*2: 一次+二次応力の計算結果が許容応力を上回るが,疲労評価を実施し疲労累積係数が許容値 1

変更量 ※1