JP2017037370A - 計算機、プロセス制御方法およびプロセス制御プログラム - Google Patents
計算機、プロセス制御方法およびプロセス制御プログラム Download PDFInfo
- Publication number
- JP2017037370A JP2017037370A JP2015156471A JP2015156471A JP2017037370A JP 2017037370 A JP2017037370 A JP 2017037370A JP 2015156471 A JP2015156471 A JP 2015156471A JP 2015156471 A JP2015156471 A JP 2015156471A JP 2017037370 A JP2017037370 A JP 2017037370A
- Authority
- JP
- Japan
- Prior art keywords
- register
- information
- register group
- computer
- unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Nonlinear Science (AREA)
- Retry When Errors Occur (AREA)
- Executing Machine-Instructions (AREA)
- Hardware Redundancy (AREA)
Abstract
【解決手段】計算機は、プロセスが処理の実行に使用する情報を記憶する複数のレジスタを有する。計算機は、第1のプロセスから第2のプロセスに切り替わる場合、複数のレジスタ内で、第2のプロセスが第2のレジスタを使用する予定がない場合には、第1のプロセスが使用中の第1のレジスタに記憶される情報を第2のレジスタに退避する。計算機は、第2のレジスタを使用する予定がある場合には、第1のレジスタに記憶される情報を記憶装置に退避する。
【選択図】図5
Description
図1は、実施例1に係る計算機の全体構成例を説明する図である。図1に示す計算機10は、メモリ12とFPUレジスタ13c(以下では単にレジスタと表記する場合がある)とを有するコンピュータの一例である。メモリ12は、各種処理の実行に使用されるデータやプログラム等を記憶する記憶装置の一例であり、FPUレジスタ13cは、浮動小数点演算に使用されるレジスタの一例である。なお、ここでは、FPUレジスタを例にして説明するが、これに限定されるものではなく、整数レジスタなど他のレジスタについても同様に処理することができる。
図2は、実施例1に係る計算機のハードウェア構成例を説明する図である。図2に示すように、計算機10は、入出力装置11、メモリ12、プロセッサ13を有する。なお、ここで示したハードウェアは一例であり、例えばハードディスクや記憶媒体読み取り装置など他のハードウェアを有していてもよい。
図5は、実施例1に係る計算機の機能構成を示す機能ブロック図である。図5に示すように、計算機10のプロセッサ13は、FPUレジスタ13c、コンパイル部21、実行部22、切替部23を有する。なお、FPUレジスタ13cは、図2等で説明したので詳細な説明は省略する。コンパイル部21、実行部22、切替部23は、プロセッサ13が実行するプロセスの一例やプロセッサ13が有する電子回路の一例である。
例えば、検出部24は、切替後のプロセスが使用しないレジスタグループを退避先として選択し、切替後のプロセスが使用しないレジスタグループがない場合は、メモリ12を退避先に選択する。
例えば、検出部24は、切替後のプロセスが使用しないレジスタグループのうち、さらに後続のプロセスが使用しないレジスタグループ退避先として選択し、該当するレジスタグループがない場合は、メモリ12を退避先に選択する。
次に、計算機が実行する各処理について説明する。ここでは、復元処理、退避処理、退避先選択処理について説明する。
図6は、レジスタの復元処理の流れを示すフローチャートである。図6に示すように、検出部24は、プロセス切替に伴ってコンテキストスイッチが発生した場合、復元対象であるレジスタグループが過去に使用したレジスタグループか否かを判定する(S101)。例えば、検出部24は、実行されているプロセスに対応するレジスタ使用予定等を用いて、判定する。
図7は、レジスタの退避処理の流れを示すフローチャートである。なお、この処理は、図6のS103やS109で実行される。
図8は、退避先選択処理の流れを示すフローチャートである。なお、この処理は、図7のS202で実行される。ここでは、上述した例とは別の一例を挙げて説明する。
次に、図9から図12を用いて、コンテキストスイッチにおけるレジスタの退避や復元について、具体例を説明する。ここで説明する具体例は、プロセス切替後に実行されるプロセス1がレジスタグループCを使用するタイミングでコンテキストスイッチが発生した例である。また、プロセス1の後にはプロセス2が再度ディスパッチされることとする。
ここで、レジスタ間の退避例について説明する。図11は、他のレジスタグループへの退避例を説明する図である。まず、図9に示すように、プロセス1がレジスタグループCを使用する際に、プロセス2の情報が記憶されていることから、コンテキストスイッチが発生する。そして、検出部24は、実行中のプロセス1が使用しないレジスタグループDを候補レジスタに設定する。
ここで、メモリ12への退避例について説明する。図12は、メモリへの退避例を説明する図である。まず、図9に示すように、プロセス1がレジスタグループCを使用する際に、プロセス2の情報が記憶されていることから、コンテキストスイッチが発生する。そして、検出部24は、実行中のプロセス1が使用しないレジスタグループDを候補レジスタに設定する。
上述したように、計算機10は、大規模なコンテキストレジスタを有する場合であっても、レジスタ情報のメモリ12への転送量を減らすことができる。この結果、計算機10は、複数のプロセス間のコンテキストスイッチの時間を短縮することができる。
上記実施例では、レジスタ使用予定やプロセススケジュールを自動的に生成する例を説明したが、これに限定されるものではない。例えば、計算機10は、プログラム開発者などが手動で生成したレジスタ使用予定やプロセススケジュールを用いることもできる。
上記実施例では、レジスタグループを用いた例で説明したが、これに限定されるものではなく、レジスタごとに実行することもできる。また、上記実施例では、FP owner機能を実行する例で説明したが、これに限定されるものではなく、通常のプロセス切替であっても同様に処理することができる。
上記実施例では、プロセスが切り替わったときに未使用レジスタに情報を退避する例を説明したが、さらに次のプロセスに切り替わるときにも、レジスタ退避の判定を実行することができる。例えば、プロセスの切替に伴って情報を退避させたレジスタが、次にプロセスに使用される場合には、さらに空いているレジスタまたはメモリに退避させる。
また、図示した装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
11 入出力装置
12 メモリ
12a 構造体記憶領域
13 プロセッサ
13a 演算器
13b 整数レジスタ
13c FPUレジスタ
13d キャッシュメモリ
21 コンパイル部
22 実行部
23 切替部
24 検出部
25 退避部
26 復元部
Claims (8)
- プロセスが処理の実行に使用する情報を記憶する複数のレジスタと、
第1のプロセスから第2のプロセスに切り替わる場合、前記複数のレジスタ内で、前記第2のプロセスが第2のレジスタを使用する予定がない場合には、前記第1のプロセスが使用中の第1のレジスタに記憶される情報を前記第2のレジスタに退避し、前記第2のレジスタを使用する予定がある場合には、前記第1のレジスタに記憶される情報を記憶装置に退避する退避部と
を有することを特徴とする計算機。 - 前記第2のプロセスに含まれる関数の先頭アドレスと、当該関数が使用するレジスタの情報とを対応付けた予定情報を用いて、前記複数のレジスタの中から前記第2のレジスタを検出する検出部をさらに有し、
前記退避部は、前記検出部によって前記第2のレジスタが検出された場合に、前記第1のレジスタに記憶される情報を前記第2のレジスタに退避し、前記検出部によって前記第2のレジスタが検出されない場合に、前記第1のレジスタに記憶される情報を前記記憶装置に退避することを特徴とする請求項1に記載の計算機。 - 前記検出部は、前記第2のプロセスの開始位置を示すプログラムカウンタに基づいて、前記予定情報から前記第2のプロセスが使用を予定する予定レジスタを抽出し、前記予定レジスタに含まれないレジスタを前記第2のレジスタとして検出することを特徴とする請求項2に記載の計算機。
- 各プロセスの内容が記述されるプログラムに対するコンパイル時に、関数ごとに各関数が使用するレジスタの情報を抽出して前記予定情報を生成し、前記予定情報を前記プログラムの実行バイナリデータに付加する生成部をさらに有し、
前記検出部は、前記プログラムが実行された場合に、前記実行バイナリデータから前記予定情報を取得することを特徴とする請求項2に記載の計算機。 - 前記検出部は、前記第2のプロセスの後に実行される第3のプロセスに対応する前記予定情報から、前記第3のプロセスの開始位置を示すプログラムカウンタに基づいて、前記第3のプロセスが使用を予定する予定レジスタを抽出し、前記第2のプロセスに対応する前記予定レジスタのうち、前記第3のプロセスに対応する前記予定レジスタに含まれない予定レジスタを、前記第2のレジスタとして検出することを特徴とする請求項3に記載の計算機。
- 前記退避部は、前記第2のプロセスから前記第1のレジスタを使用する第3のプロセスに切り替わる場合、前記第3のプロセスが第3のレジスタを使用する予定がない場合には、前記第1のプロセスが使用中の第1のレジスタに記憶される情報を前記第3のレジスタに退避し、前記第3のレジスタを使用する予定がある場合には、前記第1のレジスタに記憶される情報を記憶装置に退避することを特徴とする請求項1に記載の計算機。
- コンピュータが、
第1のプロセスから第2のプロセスに切り替わる場合、各プロセスが処理の実行に使用する情報を記憶する複数のレジスタ内で、前記第2のプロセスが第2のレジスタを使用する予定がない場合には、前記第1のプロセスが使用中の第1のレジスタに記憶される情報を前記第2のレジスタに退避し、
前記第2のレジスタを使用する予定がある場合には、前記第1のレジスタに記憶される情報を記憶装置に退避する
処理を実行することを特徴とするプロセス制御方法。 - コンピュータに、
第1のプロセスから第2のプロセスに切り替わる場合、各プロセスが処理の実行に使用する情報を記憶する複数のレジスタ内で、前記第2のプロセスが第2のレジスタを使用する予定がない場合には、前記第1のプロセスが使用中の第1のレジスタに記憶される情報を前記第2のレジスタに退避し、
前記第2のレジスタを使用する予定がある場合には、前記第1のレジスタに記憶される情報を記憶装置に退避する
処理を実行させることを特徴とするプロセス制御プログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015156471A JP2017037370A (ja) | 2015-08-06 | 2015-08-06 | 計算機、プロセス制御方法およびプロセス制御プログラム |
| EP16180539.5A EP3128415B1 (en) | 2015-08-06 | 2016-07-21 | Computing device, process control method, and process control program |
| US15/218,106 US20170038998A1 (en) | 2015-08-06 | 2016-07-25 | Computing device, process control method, and computer-readable recording medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015156471A JP2017037370A (ja) | 2015-08-06 | 2015-08-06 | 計算機、プロセス制御方法およびプロセス制御プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017037370A true JP2017037370A (ja) | 2017-02-16 |
Family
ID=56555203
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015156471A Pending JP2017037370A (ja) | 2015-08-06 | 2015-08-06 | 計算機、プロセス制御方法およびプロセス制御プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20170038998A1 (ja) |
| EP (1) | EP3128415B1 (ja) |
| JP (1) | JP2017037370A (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10534719B2 (en) | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
| US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
| US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
| US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
| US10353826B2 (en) | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
| US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
| US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
| US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
| CN110032407B (zh) * | 2019-03-08 | 2020-12-22 | 创新先进技术有限公司 | 提升cpu并行性能的方法及装置和电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6352240A (ja) * | 1986-08-22 | 1988-03-05 | Hitachi Ltd | デ−タ処理装置 |
| JPH1011301A (ja) * | 1996-06-25 | 1998-01-16 | Masaharu Imai | マルチタスク処理装置及びマルチタスク処理制御方法 |
| JP2006092042A (ja) * | 2004-09-21 | 2006-04-06 | Sanyo Electric Co Ltd | 情報処理装置及びコンテキスト切り替え方法 |
| JP2008225710A (ja) * | 2007-03-09 | 2008-09-25 | Nec Corp | コンピュータシステム及び該システムで用いられるプロセス切替え方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
| US6134653A (en) * | 1998-04-22 | 2000-10-17 | Transwitch Corp. | RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit |
| US6408325B1 (en) * | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
| US6292888B1 (en) * | 1999-01-27 | 2001-09-18 | Clearwater Networks, Inc. | Register transfer unit for electronic processor |
| US7117346B2 (en) | 2002-05-31 | 2006-10-03 | Freescale Semiconductor, Inc. | Data processing system having multiple register contexts and method therefor |
| JP2008059455A (ja) | 2006-09-01 | 2008-03-13 | Kawasaki Microelectronics Kk | マルチプロセッサ |
| JP5155336B2 (ja) | 2008-01-15 | 2013-03-06 | カーネロンシリコン株式会社 | タスク処理装置 |
| EP2972842B1 (en) * | 2013-03-12 | 2020-05-20 | Microchip Technology Incorporated | Programmable cpu register hardware context swap mechanism |
-
2015
- 2015-08-06 JP JP2015156471A patent/JP2017037370A/ja active Pending
-
2016
- 2016-07-21 EP EP16180539.5A patent/EP3128415B1/en not_active Not-in-force
- 2016-07-25 US US15/218,106 patent/US20170038998A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6352240A (ja) * | 1986-08-22 | 1988-03-05 | Hitachi Ltd | デ−タ処理装置 |
| JPH1011301A (ja) * | 1996-06-25 | 1998-01-16 | Masaharu Imai | マルチタスク処理装置及びマルチタスク処理制御方法 |
| JP2006092042A (ja) * | 2004-09-21 | 2006-04-06 | Sanyo Electric Co Ltd | 情報処理装置及びコンテキスト切り替え方法 |
| JP2008225710A (ja) * | 2007-03-09 | 2008-09-25 | Nec Corp | コンピュータシステム及び該システムで用いられるプロセス切替え方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3128415A2 (en) | 2017-02-08 |
| US20170038998A1 (en) | 2017-02-09 |
| EP3128415A3 (en) | 2017-02-22 |
| EP3128415B1 (en) | 2017-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
| KR101025354B1 (ko) | 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법 | |
| JP4871948B2 (ja) | 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 | |
| CN101730881B (zh) | 包括多个处理器的系统以及操作该系统的方法及设备 | |
| US9043806B2 (en) | Information processing device and task switching method | |
| JP2009157542A (ja) | 情報処理装置及びそのスタックポインタ更新方法 | |
| JP4873423B2 (ja) | 仮想化プログラム、シミュレーション装置、仮想化方法 | |
| CN103430145A (zh) | 页面错误应对机制 | |
| CN107735791B (zh) | 安全模式状态的数据访问追踪 | |
| US20130311751A1 (en) | System and data loading method | |
| US8732441B2 (en) | Multiprocessing system | |
| JP2009175960A (ja) | 仮想マルチプロセッサシステム | |
| JP2007041837A (ja) | 命令プリフェッチ装置及び命令プリフェッチ方法 | |
| JP4170364B2 (ja) | プロセッサ | |
| JP2014078072A (ja) | 情報処理装置、情報処理方法およびプログラム | |
| CN109960567B (zh) | 半导体设备 | |
| US9058207B2 (en) | Simulation apparatus, method, and computer-readable recording medium | |
| JP4594889B2 (ja) | 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム | |
| US20080072009A1 (en) | Apparatus and method for handling interrupt disabled section and page pinning apparatus and method | |
| JP5376042B2 (ja) | マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム | |
| US11681527B2 (en) | Electronic device and multiplexing method of spatial | |
| JP6973856B2 (ja) | 情報処理装置、実行方法及びプログラムの修正方法 | |
| JP2004127154A (ja) | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 | |
| JP3988740B2 (ja) | 並列処理装置、命令再試行方法、およびプログラム | |
| JP5577518B2 (ja) | メモリ管理方法、計算機及びメモリ管理プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180413 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190123 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190205 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190408 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190514 |