3F-1

情報処理学会第66回全国大会

同時マルチスレッディング（SMT）技術を用いたマルチスレッド並列キュープロセッサのハードウエア設計
奥村 義智†☆

佐々木 博敏†繁田 聡一†Ben A. Abderazek†

吉永 努†

曽和 将容††

電気通信大学 大学院情報システム学研究科☆

現在，ソニー 株式会社

はじめに

1

現在，既存のプロセッサはランダムアクセスなレジスタを中間格納用レジスタとして用いているが，我々は中間格納用レジ
スタにキューを用いるキュープロセッサの研究 1) 2) 3)を行っている．
同時マルチスレッディング（SMT）技術を用いたマルチスレ

図 1 キュー計算モデル
Fig.1 Queue Calculation Model

ッド並列キュープロセッサ（SMT-PQP）は，並列キュープロセッサ（PQP）をベースにした，前述のキューと呼ばれる FIFO（First In First Out）の記憶領域に計算の中間結果を格納するキ

例にように，キュー計算モデルはレジスタを明示的に指定すュー計算モデルに基づくプロセッサである．本プロセッサは，る必要がないため，個々の命令長が短くなり，全体としてプロレジスタリネーミングなどの特殊なハードウエアを用意するこ

グラムサイズが小さくなる特徴を持つ．その上，前後の命令間となく，スーパースカラープロセッサの持つ命令レベルの並列にデータ依存関係があることが少ないことから，SMT-PQP は，性（ILP）と，マルチスレッドプロセッサの持つスレッドレベ並列実行とアウトオブオーダー実行に適する．

ルの並列性（TLP）の両方の並列性が利用可能である．本論文
ではこのプロセッサのハードウエア設計について述べる．

2.1

ILP と TLP を併用するキューレジスタ

SMT-PQP は，SMT 4)が計算資源を共有するという特徴を持ち，内部資源を物理的に増設することなく，ILP を有効に使えるア特徴

2

2.2ーキテクチャと TLP を有効に使えるアーキテクチャを組み合わキュー計算モデルせることで ILP と TLP の両方の並列性の抽出を可能にする．例

SMT-PQP の基本原理であるキュー計算モデルはキューと呼えば，TLP が小さく，ILP が大きいプログラムには多くのレジばれる FIFO の記憶領域に計算の中間結果を格納する計算モデ

スタリソースを ILP 用に用い，TLP が大きく ILP が小さいプロ

ルである．全ての命令がキューの先頭（QH : Queue Head）からグラムには，TLP 用にレジスタリソースを用いることができる．

データを取り出し，キューの末尾（QT : Queue Tail）に計算結

そのため，ILP，TLP に適応するプロセッサを得ることが実現

果を格納する．この計算モデルはレジスタを明示的に指定する可能である．

必要 がない．
図 1 に，キュー計算モデルで計算する様子を示す．例として，

2.3

レジスタリソースの拡張

a+b の計算式を計算する．一番上のキューは初期状態の空のキ

SMT-PQP は，並列キュープロセッサの持つ中間結果格納用ューである．最初の命令（load a）でデータ a をキューに入れ，レジスタのキューの共有という特徴に，SMT の持つ計算資源の次の命令（load b）でデータ b をキューに入れる．加算命令共有という特徴が加わる．レジスタリソースの拡張により，レ（add）では２つのデータを必要とするのでキューの先頭から aジスタにスレッド名を付けなくても，それぞれがプロセッサユと b が取り出され，加算が行われ，a+b という結果がキューのニークになりレジスタ名がぶつかることは決してない．そのた

末尾に挿入される．

め，従来のプロセッサのようにレジスタリネーミングを行う必“Hardware Designing of Multithread Parallel Queue Processor using
Simultaneous Multithreading (SMT)”
Hirotoshi Sasaki†, Yoshitomo Okumura†☆, Ben A. Abderazek†, Soichi
Shigeta†, Tsutomu Yoshinaga† and Masahiro Sowa††Graduate School of Information Systems, University of ElectroCommunications☆
Presently with Sony Corporation

ジスタリソースの共有は，アプリケーションプログラムの ILP，要はなくなり，レジスタリネーミング機構も必要なくなる．レ
TLP 含有特性に，レジスタレベルまで適用可能なことを示している．SMT-PQP は，キュー計算モデルのレジスタの明示的指定が不要であるという特徴を活かした設計を行うことで，ハードウエアが複雑になることはない．

1−65

られたキューを使って並列に実行する．実行後は，シングルスレッド実行ができる状態に戻すために，fusion 命令（キュー結合命令）を行う．fusion 命令により，fission 命令で分割されたキューを再び 1 本のキューにする．このような実行方法である
ために，マルチスレッド実行だけでなく，シングルスレッド実行にも対応できる．

図2

また，シングルスレッド実行を行うとき，キューレジスタをSMT-PQP アーキテクチャ

Fig. 2

スレッド数の乗数分扱うことが可能となる．分割していない状

SMT-PQP Architecture

態の１本のキューを使用することで，従来よりもレジスタ資源を大きく得ることができる．

3

ハードウエア設計

3.1

プロセッサ設計

3.3

スレッド発行システムの設計

スレッドに発行は，親スレッド（発行するスレッド）が子ス

SMT-PQP は ， 複 数 の プ ロ セ ッ サ 要 素 （ PE : ProcessorElement）で構成されている．PE は並列に動作し，スレッドを並列に実行する．今回の設計では 4 つの PE により 4 スレッドの並列実行としている．各 PE にはパイプラインを構成する各ステージが割り当てられ，それぞれの PE で 3 命令並列に処理する．そのため，最大 12 命令の並列実行が可能である．

レッド（発行されるスレッド）に対し行い，リング状を形成する．今回の設計では 4 スレッドあるので，論理的なスレッド 0，1，2，3，4…に即して，物理的には PE0→PE1→PE2→PE3→PE0 とする．

4

おわりに

SMT-PQP では，中間格納用の物理レジスタとして，一本の本論文では，並列キュープロセッサの高速化のアプローチとキューだけ用意する．マルチスレッド実行時には論理的に 4 つして，ILP だけでなく TLP にも着目した SMT-PQP のハードウに区切られ，各 PE に対して独立したキューを与える．シング

エア設計を行った．
SMT-PQP は，CMP（Chip Multiprocessing）のようにプロセッ

ルスレッド実行時には論理的に区切らず，長い 1 本のキューとサを増やさずとも，1 つのプロセッサ上に複数のスレッドを設してそのまま用いる．
図 2 に SMT-PQP アーキテクチャを示す．SMT-PQP は，図にけることで TLP を向上することができる．複数のスレッドが同示すように各 PE に対し，物理的にそれぞれ設けるステージ

時に実行され，計算資源は共有できるので稼働率の向上が望め
る．さらに，シングルスレッド実行とマルチスレッド実行の両（■）と共有するステージ（●）がある．
n

フェッチ（Ft）

方に対応しながら，シングルスレッド実行時では分割していな

n命令分割（ID）

い状態の 1 本のキューレジスタが利用可能であるので，従来のnキュー割付（QA）

SMT プロセッサのようにレジスタリネーミングを行わずとも，n命令分配（DI）レジスタリソースを大きく得ることができる．

l

イシュー（Is）

l

実行（Ex）

今回，SMT-PQP のハードウエア設計において，ハードウエア記述言語である Verilog-HDL により記述し，設計を行った．

SMT-PQP において，ここで問題となるのが実行ステージに対して十分な命令を供給するかという点である．この問題を解

今後，プログラムに対する処理能力等の性能評価を行う．

参考文献

決するために，今回はアウトオブオーダー実行を用いた．アウ
トオブオーダー実行とは命令を出現順序に関係なく実行するも1)

並列プロセッサの設計” 電子情報通信学会 情報・システのである．命令は消費するデータの生産が完了されていなけれ

ムソサイエティ大会, p.42，(2001).

ば実行できない．前後の命令の依存関係がない時は，ある命令の消費するデータの生産が未完了で，後続の命令のデータの生

菊池遊，吉永努，曽和将容: “キュー計算モデルを用いた

2)

奥村義智，吉永努，曽和将容: “キューマシン用並列化 C産が完了している場合には，後続の実行を先に行う． その後，

コ ン パ イ ラ ”， 情 報 処 理 学 会 研 究 報 告 2002-ARC-149，

命令のデータの生産が完了し，実行を行ったとしても支障はな

p.127, (2002).

い．このとき，キュー内部の位置は互いに独立で，命令間の干3)

渉は起こらない．

3.2

奥村義智:る研究4)

レジスタリソースの有効活用設計

Susan J Eggers, Joel S. Emer, Henry M. Levy, Jack L. Lo,
Rebecca

SMT-PQP は，fission 命令（キュー分割命令）を実行し，キューを分割する．キューを PE 毎に区切り，プロセッサをマルチスレッド実行できる状態にする．スレッドは PE 毎に割り当て

1−66

マルチスレッド並列キュープロセッサに関す，2002 年度電気通信大学修士論文，(2003).

L.

Stamm,

Dean

M.

Tullsen:“SimultaneousMultithreading: A Platform for Next-Generation Processors”,
IEEE Micro, (1997).