JP2013214331A - コンパイラ - Google Patents
コンパイラ Download PDFInfo
- Publication number
- JP2013214331A JP2013214331A JP2013151777A JP2013151777A JP2013214331A JP 2013214331 A JP2013214331 A JP 2013214331A JP 2013151777 A JP2013151777 A JP 2013151777A JP 2013151777 A JP2013151777 A JP 2013151777A JP 2013214331 A JP2013214331 A JP 2013214331A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- unit
- execution
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【解決手段】ソースプログラムを実行形式コードに変換する、複数のスレッドの命令を並列実行するマルチスレッドプロセッサ向けのコンパイラ3であって、マルチスレッド制御に関するプログラマの指示を取得するマルチスレッド実行制御指示解釈部321と、指示に基づいてプロセッサの実行モードを制御するコードを生成する実行制御コード生成部324とを備える。
【選択図】図5
Description
えば、特許文献1)や、Intel社のハイパースレッディング・テクノロジーに代表されるような実行サイクル内で同時に複数のスレッドを実行する同時マルチスレッディング(Simultaneous Multithreading; SMT)(例えば、非特許文献1)などがよく知られている。
本実施の形態において、命令実行制御により命令実行効率を向上させるマルチスレッドプロセッサ、命令数の制限、制限する命令数のレジスタによる指定、制限する命令数の命令による指定、実行サイクル数間隔の指定、実行サイクル数間隔のレジスタによる指定、実行サイクル数間隔の命令による指定、資源制約のある命令の発行間隔の抑制について説明する。
以下、図面を参照しながら本発明の実施の形態2に係るコンパイラおよびオペレーティングシステムについて説明する。
_stall_freq end”とで囲んだ区間について、最低限1つのストールサイクルが発生する頻度を指定するための指示である。‘num’の部分には最低限何サイクルに1回はストールが発生するようにすべきかの数値が指定され、コンパイラ3は、指定条件を満たすように適宜ストールサイクルを挿入する。図12には、‘num’として「10」を指定したストール挿入頻度指示が示されている。つまり、“#pragma _stall_freq=10 begin”と“#pragma _stall_freq end”とで囲んだ区間においては、10サイクルに1サイクルはストールサイクルが発生するようにコード生成される。
_release_freq=mul:10 begin”と“#pragma _release_freq end”とで囲んだ区間においては、10サイクルに1サイクルは指定された演算器である乗算器が使用されないサイクルが発生するようにコード生成される。
3 コンパイラ
4 オペレーティングシステム
31 パーサ部
32 最適化部
41 システムコール処理部
42 プロセス管理部
43 メモリ管理部
44 ハードウェア制御部
101 命令メモリ
102 第1命令デコーダ
103 第2命令デコーダ
104 第3命令デコーダ
105 第1命令数指定部
106 第2命令数指定部
107 第3命令数指定部
108 第1命令グループ化部
109 第2命令グループ化部
110 第3命令グループ化部
111 第1レジスタ
112 第2レジスタ
113 第3レジスタ
114 スレッド選択部
115 命令発行制御部
116 スレッドセレクタ
117、118 スレッド用レジスタセレクタ
119 演算器群
201 第1発行間隔抑制部
202 第2発行間隔抑制部
203 第3発行間隔抑制部
204 第1実行間隔指定部
205 第2実行間隔指定部
206 第3実行間隔指定部
301 ソースプログラム
302 実行形式コード
321 マルチスレッド実行制御指示解釈部
322 命令スケジューリング部
323 実行状態検出コード生成部
324 実行制御コード生成部
411 マルチスレッド実行制御システムコール処理部
412 逼迫度検出システムコール処理部
3221 応答性確保スケジューリング部
Claims (14)
- ソースプログラムを実行形式コードに変換する、複数のスレッドの命令を並列実行するマルチスレッドプロセッサ向けのコンパイラであって、
マルチスレッド制御に関するプログラマの指示を取得する指示取得部と、
前記指示に基づいてプロセッサの実行モードを制御するコードを生成する制御コード生成部と
を備えるコンパイラ。 - 前記指示取得部は、並列実行を注力する指示を取得する
請求項1記載のコンパイラ。 - 前記指示取得部は、並列実行を注力しない指示を取得する
請求項1記載のコンパイラ。 - 前記制御コード生成部は、前記指示に基づいて演算器数を増減させるコードを生成する
請求項2または3に記載のコンパイラ。 - 前記指示取得部は、命令並列度についての指示を取得し、
前記制御コード生成部は、前記命令並列度でスレッドを実行させるコードを生成する
請求項1記載のコンパイラ。 - 前記指示取得部は、スレッドの実行数についての指示を取得する
請求項1記載のコンパイラ。 - 前記指示取得部は、シングルスレッド実行についての指示を取得する
請求項6記載のコンパイラ。 - 前記制御コード生成部は、前記指示に基づいてスレッドの実行数を制御するコードを生成する
請求項6または7に記載のコンパイラ。 - 前記指示取得部は、スレッドの応答性の確保に関する指示を取得する
請求項1記載のコンパイラ。 - 前記指示取得部は、ストールサイクルが発生する頻度に関する指示を取得する
請求項1記載のコンパイラ。 - 前記指示取得部は、演算器資源の解放に関する指示を取得する
請求項1記載のコンパイラ。 - 前記制御コード生成部は、前記指示に基づいて、一定頻度でストールサイクルが挿入されるコードを生成する
請求項9〜11のいずれか1項に記載のコンパイラ。 - 前記制御コード生成部は、前記指示に基づいて、一定頻度で演算器資源を解放するコードを生成する
請求項9〜11のいずれか1項に記載のコンパイラ。 - 前記指示は、前記ソースプログラム中の一定区間に対する指示である
請求項1〜13のいずれか1項に記載のコンパイラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013151777A JP2013214331A (ja) | 2013-07-22 | 2013-07-22 | コンパイラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013151777A JP2013214331A (ja) | 2013-07-22 | 2013-07-22 | コンパイラ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009129607A Division JP5463076B2 (ja) | 2009-05-28 | 2009-05-28 | マルチスレッドプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013214331A true JP2013214331A (ja) | 2013-10-17 |
Family
ID=49587562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013151777A Pending JP2013214331A (ja) | 2013-07-22 | 2013-07-22 | コンパイラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013214331A (ja) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03240859A (ja) * | 1990-02-19 | 1991-10-28 | Nec Corp | マルチプロセッサ共有資源管理方式 |
JPH04123230A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | データ処理装置 |
JPH05313923A (ja) * | 1992-05-07 | 1993-11-26 | Ricoh Co Ltd | 共有資源の排他制御装置 |
JPH08147165A (ja) * | 1994-11-25 | 1996-06-07 | Fujitsu Ltd | マルチコンテキストをサポートするプロセッサおよび処理方法 |
JPH09319597A (ja) * | 1996-03-28 | 1997-12-12 | Hitachi Ltd | 周期的プロセスのスケジューリング方法 |
JP2001306324A (ja) * | 2000-03-30 | 2001-11-02 | Agere Systems Guardian Corp | マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置 |
JP2003167748A (ja) * | 2001-11-30 | 2003-06-13 | Fujitsu Ltd | マルチスレッド計算機 |
US20040215932A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Method and logical apparatus for managing thread execution in a simultaneous multi-threaded (SMT) processor |
JP2006127302A (ja) * | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
JP2006252548A (ja) * | 2005-03-09 | 2006-09-21 | Hewlett-Packard Development Co Lp | 時間的冗長性を実施するための可変遅延命令 |
JP2007328415A (ja) * | 2006-06-06 | 2007-12-20 | Univ Waseda | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
WO2008155797A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算装置 |
JP2009069921A (ja) * | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
-
2013
- 2013-07-22 JP JP2013151777A patent/JP2013214331A/ja active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03240859A (ja) * | 1990-02-19 | 1991-10-28 | Nec Corp | マルチプロセッサ共有資源管理方式 |
JPH04123230A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | データ処理装置 |
JPH05313923A (ja) * | 1992-05-07 | 1993-11-26 | Ricoh Co Ltd | 共有資源の排他制御装置 |
JPH08147165A (ja) * | 1994-11-25 | 1996-06-07 | Fujitsu Ltd | マルチコンテキストをサポートするプロセッサおよび処理方法 |
JPH09319597A (ja) * | 1996-03-28 | 1997-12-12 | Hitachi Ltd | 周期的プロセスのスケジューリング方法 |
JP2001306324A (ja) * | 2000-03-30 | 2001-11-02 | Agere Systems Guardian Corp | マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置 |
JP2003167748A (ja) * | 2001-11-30 | 2003-06-13 | Fujitsu Ltd | マルチスレッド計算機 |
US20040215932A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Method and logical apparatus for managing thread execution in a simultaneous multi-threaded (SMT) processor |
JP2006127302A (ja) * | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
JP2006252548A (ja) * | 2005-03-09 | 2006-09-21 | Hewlett-Packard Development Co Lp | 時間的冗長性を実施するための可変遅延命令 |
JP2007328415A (ja) * | 2006-06-06 | 2007-12-20 | Univ Waseda | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
WO2008155797A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算装置 |
JP2009069921A (ja) * | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
Non-Patent Citations (7)
Title |
---|
CSNA200201158001; SXシステム ソフトウェア SUPER-UX Cプログラミングの手引 第2版 第2版, 19960630, 141頁〜152頁, 日本電気株式会社 * |
CSND200700037011; 野津 新: '「IntelC++コンパイラーforMacOSで作るマルチスレッドアプリケーション」' Software Design No.193 , 20071118, 132頁〜135頁, (株)技術評論社 * |
CSNG200800193052; 神戸 尚志 他: '「C言語設計におけるアーキテクチャ最適化手法」' 第20回 回路とシステム軽井沢ワークショップ 論文集 , 20070423, 685頁〜690頁, 電子情報通信学会 システムと信号処理サブソサイエテ * |
JPN6014014094; 野津 新: '「IntelC++コンパイラーforMacOSで作るマルチスレッドアプリケーション」' Software Design No.193 , 20071118, 132頁〜135頁, (株)技術評論社 * |
JPN6014014095; 神戸 尚志 他: '「C言語設計におけるアーキテクチャ最適化手法」' 第20回 回路とシステム軽井沢ワークショップ 論文集 , 20070423, 685頁〜690頁, 電子情報通信学会 システムと信号処理サブソサイエテ * |
JPN6014014096; SXシステム ソフトウェア SUPER-UX Cプログラミングの手引 第2版 第2版, 19960630, 141頁〜152頁, 日本電気株式会社 * |
JPN6014038427; Carlos Boneti et al.: '"Software-Controlled Priority Characterization of POWER5 Processor"' ISCA '08. 35th International Symposium on Computer Architecture, 2008. , 20080625, pages:415-426, IEEE * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5463076B2 (ja) | マルチスレッドプロセッサ | |
JP5678135B2 (ja) | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 | |
JP5411587B2 (ja) | マルチスレッド実行装置、マルチスレッド実行方法 | |
JP5631976B2 (ja) | マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置 | |
JP4476636B2 (ja) | 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 | |
US7941643B2 (en) | Multi-thread processor with multiple program counters | |
JP5173714B2 (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
JP5607545B2 (ja) | マイクロプロセッサシステムにおける命令フェッチングの優先順位付け | |
US20070074217A1 (en) | Scheduling optimizations for user-level threads | |
JP2009110209A (ja) | 演算処理装置、プロセッサ、プログラム変換装置およびプログラム | |
JP2008529119A (ja) | マルチスレッドプロセッサ | |
US11366669B2 (en) | Apparatus for preventing rescheduling of a paused thread based on instruction classification | |
US8560813B2 (en) | Multithreaded processor with fast and slow paths pipeline issuing instructions of differing complexity of different instruction set and avoiding collision | |
JP2008522277A (ja) | 優先度の付けられたタスク間の効率的な切り換え | |
US8612958B2 (en) | Program converting apparatus and program conversion method | |
JP5654643B2 (ja) | マルチスレッドプロセッサ | |
JP2004206692A (ja) | マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置 | |
JP2005129001A (ja) | プログラム実行装置、マイクロプロセッサ及びプログラム実行方法 | |
JP2013214331A (ja) | コンパイラ | |
Shin et al. | Dynamic scheduling issues in SMT architectures | |
Dobson et al. | Minimising virtual machine support for concurrency | |
JP2011008617A (ja) | マルチスレッド実行装置、オブジェクトプログラムの生成方法、プログラム | |
JP2014211890A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
JP2013058265A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
JP2011128767A (ja) | マルチスレッド処理装置、及びその帯域変更制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140408 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140508 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140603 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140702 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140909 |