JP2006139495A - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP2006139495A JP2006139495A JP2004327961A JP2004327961A JP2006139495A JP 2006139495 A JP2006139495 A JP 2006139495A JP 2004327961 A JP2004327961 A JP 2004327961A JP 2004327961 A JP2004327961 A JP 2004327961A JP 2006139495 A JP2006139495 A JP 2006139495A
- Authority
- JP
- Japan
- Prior art keywords
- context
- thread
- specific information
- register
- executing
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】 命令流を構成する命令の実行に伴うコンテキストを記憶するための複数のレジスタファイルを含むレジスタ群113と、レジスタによって構成され、レジスタファイルに記憶されているコンテキストを退避させるためのコンテキストキャッシュ100と、レジスタファイルにおけるコンテキストスイッチの発生時、レジスタファイルに読み込まれるべきコンテキストのメモリユニット106における格納先にかかる情報を記憶するncspを備え、スレッドの1つが他のスレッドにコンテキストスイッチを要求した場合、要求を受けたスレッドを実行しているハードウェアがncspに記憶されている格納先に係る情報に基づいてコンテキストキャッシュ100からコンテキストを読み出してレジスタファイルに格納させる。
【選択図】 図1
Description
コンテキストの退避がなされたレジスタファイルには入れ替え後に実行されるスレッド等のコンテキストが読み込まれる。そして、入れ替わったスレッド等の実行後、退避されていたコンテキストが再びこのレジスタファイルに復元されて処理再開が可能な状態になる。このような処理は、一般的にコンテキストスイッチといわれている。
マルチスレッドプロセッサにおけるコンテキストスイッチは、コンテキストスイッチの指示を出したOSスレッドがレジスタファイル内のコンテキストを退避、復元させる場合と、コンテキストスイッチの指示を受けたスレッドを実行しているハードウェアがコンテキストスイッチの指示によって発生する割り込みを受け、その割り込み処理においてコンテキストを退避、復元させる場合とがある。両者を比較した場合、コンテキストスイッチを指示したOSスレッドがコンテキストの退避、復元を行った方が指示を受けて割り込み処理内でコンテキストを復元、退避するよりもプロセッサの実行処理能力が低下する。
しかしながら、一般的にプロセッサでは、OSがスレッド等のコンテキスト格納先アドレスを管理している。このため、従来のプロセッサは、存在できるOSスレッドが同時にひとつの場合、OSスレッドを介在することなくコンテキストスイッチを行うことができなかった。
請求項2に記載の発明にかかる演算処理装置は、前記レジスタにおけるコンテキストスイッチの発生時、該レジスタから退避すべきコンテキストを特定するための第2特定情報を記憶する第2特定情報記憶手段をさらに備え、前記ハードウェアリソースの1つで実行されているスレッドが他のハードウェアリソースで実行されているスレッドにコンテキストスイッチを要求した場合、要求を受けたスレッドを実行しているハードウェアリソースは、退避すべきコンテキストを、前記第2特定情報記憶手段に記憶されている第2特定情報と共に前記コンテキストキャッシュ手段に退避することを特徴とする。
請求項3に記載の発明にかかる演算処理装置は、外部記憶手段と接続し、前記コンテキストキャッシュ手段に退避されたコンテキストは、第2特定情報に基づいて前記外部記憶手段に書き戻されることを特徴とする。
この発明によれば、コンテキストと外部記憶装置におけるアドレスとを対応付け、コンテキストを外部記憶手段の所定のアドレスからコンテキストキャッシュ手段に読み出す、あるいはコンテキストをコンテキストキャッシュ手段から外部記憶手段の所定のアドレスに書き戻すことができる。
この発明によれば、コンテキストと外部記憶手段におけるアドレスとを直接対応つけることができ、第1特定情報および第2特定情報と外部記憶手段のアドレスとを対応つけるための構成を省くことができる。
図1は、本実施形態の演算処理装置(プロセッサという。)の本発明に係る構成を説明するための図である。本実施形態のプロセッサは、複数の命令流を並行して実行するマルチスレッドプロセッサである。
図1に示した構成は、命令流を構成する命令の実行に伴うコンテキストを記憶するための複数のレジスタを含むレジスタ群113と、レジスタによって構成され、レジスタ群113のレジスタに記憶されているコンテキストを退避させるためのコンテキストキャッシュ100と、を備えている。コンテキストキャッシュ100は、複数のキャッシュ領域100a、100b、100c、100dでなる。
汎用レジスタ部は、スレッドの演算命令の実行に使用されるレジスタであって、実行された演算の結果や演算の経過に係る情報が記憶されている。特殊レジスタは、プログラムの処理の段階や状態を示すプログラムカウンタやステータスレジスタを含んでいる。
ccspは、コンテキストスイッチの直前、すなわち現在対応するレジスタファイルに記憶されているコンテキストのメモリユニット106における格納先をスレッドIDとして記憶している。また、ncspは、コンテキストスイッチの後、ncspに対応するレジスタファイルを用いて実行されるスレッドのコンテキストのメモリユニット106における格納先をスレッドIDとして記憶している。
ccsp、ncspは、いずれもレジスタ群113に含まれるレジスタファイルrf0〜rf3ごとに設けられている。ccspのレジスタファイルとの対応関係をccsp0、ccsp1、ccsp2、ccsp3の添え字で示す。また、ncspのレジスタファイルとの対応関係をncsp0、ncsp1、ncsp2、ncsp3の添え字で示す。
本実施形態では、他のスレッドにコンテキストスイッチを要求するスレッドをITRON(商標)等のOSとし、このようなスレッドを以降OSスレッドと記す
図2は、以上述べた本実施形態のプロセッサの動作を説明するための図である。図2に示した動作では、プロセッサは、レジスタファイルrf1を使ってスレッド1の演算処理を実行している。このとき、レジスタファイルrf1のccsp1にはレジスタファイルrf1に記憶されているコンテキストの書き戻し先となるメモリユニット106のアドレスが記憶されている。
次に実行されるスレッド2のコンテキストの格納先アドレスをncsp1に設定した後、OSスレッドは、スレッド1を実行しているハードウェアにコンテキストスイッチを要求する。この要求にしたがって、スレッド1を実行しているハードウェアは、スレッド1の実行を中断する。そして、コンテキストキャッシュ装置100に中断したスレッドのコンテキストとccspの内容を退避させる。
なお、ccspに保持されているアドレスの更新は、コンテキストスイッチの際に実行される割り込み処理時に自動的に行われる。また、ncspは、コンテキストスイッチが発生したとき、次に実行されるスレッドのコンテキストを格納するアドレスを保持している。ncspに保持されているアドレスの更新は、他に実行されているスレッドによっても可能である。
次に、以上述べた本実施形態の動作におけるコンテキスト及びccsp、ncspに記憶されるアドレスの更新について説明する。
図3に示した状態においてコンテキストスイッチが発生し、レジスタファイルrf1に記憶されているコンテキスト(コンテキスト1とする。)とコンテキストキャッシュ100のキャッシュ領域100aに格納されているコンテキスト(コンテキスト2とする。)とを入れ替える場合、OSスレッドは、図4に示すように、コンテキスト2のスレッドIDとなるメモリユニット106のアドレスをレジスタファイルrf1のncsp1に設定し、さらにコンテキストスイッチを指示する。本実施形態のコンテキストスイッチにおけるOSスレッドの動作は以上で終了する。
本実施形態のコンテキスト2の読み込みは、キー検索部103によるコンテキストの検索によって行われる。すなわち、キー検索部103は、ccsp1に記憶されているコンテキスト2のメモリユニット106における書き戻し先アドレスをスレッドIDとして用い、コンテキストキャッシュ100を検索する。そして、IDアドレスが一致するコンテキスト2を特定し、レジスタファイルrf1に読み込む。
rf0,rf1,rf2,rf3 レジスタファイル
Claims (6)
- スレッドまたはタスクごとに対応付けられたハードウェアリソースを複数備え、複数の命令流を並行して実行する演算処理装置であって、
命令流を構成する命令の実行に伴うコンテキストを記憶するための複数のレジスタを含むレジスタ群と、
レジスタによって構成され、前記レジスタに記憶されているコンテキストを退避させるためのコンテキストキャッシュ手段と、
前記レジスタにおけるコンテキストスイッチの発生時、該レジスタに読み込まれるべきコンテキストを特定するため第1特定情報を記憶する第1特定情報記憶手段と、を備え、
前記ハードウェアリソースの1つで実行されているスレッドが他のハードウェアリソースで実行されているスレッドにコンテキストスイッチを要求した場合、要求を受けたスレッドを実行しているハードウェアリソースが、前記第1特定情報記憶手段に記憶されている第1特定情報に基づいて前記コンテキストキャッシュ手段からコンテキストを前記レジスタに読み込ませることを特徴とする演算処理装置。 - 前記レジスタにおけるコンテキストスイッチの発生時、該レジスタから退避すべきコンテキストを特定するための第2特定情報を記憶する第2特定情報記憶手段をさらに備え、
前記ハードウェアリソースの1つで実行されているスレッドが他のハードウェアリソースで実行されているスレッドにコンテキストスイッチを要求した場合、要求を受けたスレッドを実行しているハードウェアリソースは、退避すべきコンテキストを、前記第2特定情報記憶手段に記憶されている第2特定情報と共に前記コンテキストキャッシュ手段に退避することを特徴とする請求項1に記載の演算処理装置。 - 外部記憶手段と接続し、前記コンテキストキャッシュ手段に退避されたコンテキストは、第2特定情報に基づいて前記外部記憶手段に書き戻されることを特徴とする請求項1または2に記載の演算処理装置。
- コンテキストスイッチを要求したスレッドを実行しているハードウェアリソースが前記第1特定情報記憶手段に第1特定情報を設定し、要求を受けたスレッドを実行しているハードウェアリソースは、コンテキストスイッチ発生時に前記第2特定情報記憶手段に記憶されている第2特定情報を前記第1特定情報記憶手段に記憶されている情報によって更新することを特徴とする請求項2または3に記載の演算処理装置。
- 前記第1特定情報記憶手段に記憶されている第1特定情報、前記第2特定情報記憶手段に記憶されている第2特定情報の少なくとも一方が、前記外部記憶手段のアドレスに対応付けられる情報であることを特徴とする請求項2から4のいずれか1つに記載の演算処理装置。
- 第1特定情報および第2特定情報が、前記外部記憶手段におけるコンテキストの書き戻し先のアドレスであることを特徴とする請求項5に記載の演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004327961A JP2006139495A (ja) | 2004-11-11 | 2004-11-11 | 演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004327961A JP2006139495A (ja) | 2004-11-11 | 2004-11-11 | 演算処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006139495A true JP2006139495A (ja) | 2006-06-01 |
Family
ID=36620288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004327961A Pending JP2006139495A (ja) | 2004-11-11 | 2004-11-11 | 演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006139495A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008140116A (ja) * | 2006-12-01 | 2008-06-19 | Nec Corp | パーティション・コンテキスト制御装置及び方法、並びにコンピュータ |
JP2009199384A (ja) * | 2008-02-22 | 2009-09-03 | Nec Corp | データ処理装置 |
US9135054B1 (en) * | 2008-07-16 | 2015-09-15 | Apple Inc. | Method and apparatus to migrate stacks for thread execution |
US11200058B2 (en) | 2014-05-07 | 2021-12-14 | Qualcomm Incorporated | Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media |
-
2004
- 2004-11-11 JP JP2004327961A patent/JP2006139495A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008140116A (ja) * | 2006-12-01 | 2008-06-19 | Nec Corp | パーティション・コンテキスト制御装置及び方法、並びにコンピュータ |
JP2009199384A (ja) * | 2008-02-22 | 2009-09-03 | Nec Corp | データ処理装置 |
US9135054B1 (en) * | 2008-07-16 | 2015-09-15 | Apple Inc. | Method and apparatus to migrate stacks for thread execution |
US10303523B2 (en) | 2008-07-16 | 2019-05-28 | Apple Inc. | Method and apparatus to migrate stacks for thread execution |
US11200058B2 (en) | 2014-05-07 | 2021-12-14 | Qualcomm Incorporated | Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
JP6430970B2 (ja) | 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行 | |
JP4119945B2 (ja) | タスク処理装置 | |
KR100848603B1 (ko) | 데이터 처리장치와 복귀상태의 저장방법 | |
JP5244160B2 (ja) | 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム | |
US7412590B2 (en) | Information processing apparatus and context switching method | |
JPH09258980A (ja) | 並列マルチタスキングの方法及びシステム | |
US8578136B2 (en) | Apparatus and method for mapping architectural registers to physical registers | |
JP2008084009A (ja) | マルチプロセッサシステム | |
JP2008047145A (ja) | デュアルスレッドプロセッサ | |
US7366814B2 (en) | Heterogeneous multiprocessor system and OS configuration method thereof | |
US20110302395A1 (en) | Hardware assist thread for dynamic performance profiling | |
JPWO2008023427A1 (ja) | タスク処理装置 | |
EP1811375B1 (en) | Processor | |
JP2007517322A (ja) | プロセッサにおける同時物理スレッド数からの論理スレッド数のデカップリング | |
JP4837247B2 (ja) | プロセッサ | |
JP2006139495A (ja) | 演算処理装置 | |
KR100728899B1 (ko) | 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서 | |
JP4631442B2 (ja) | プロセッサ | |
JP2004103012A (ja) | プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ | |
JP2008269597A (ja) | タスク処理装置 | |
JP2006139496A (ja) | 演算処理装置 | |
JP3022398B2 (ja) | 仮想計算機方式 | |
JP6167193B1 (ja) | プロセッサ | |
JP2006099335A (ja) | コンテキスト処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070403 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070627 |
|
RD03 | Notification of appointment of power of attorney |
Effective date: 20070627 Free format text: JAPANESE INTERMEDIATE CODE: A7423 |
|
A977 | Report on retrieval |
Effective date: 20081114 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Effective date: 20081125 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090317 |