JP5636109B2 - コンテキスト切り替え - Google Patents
コンテキスト切り替え Download PDFInfo
- Publication number
- JP5636109B2 JP5636109B2 JP2013525867A JP2013525867A JP5636109B2 JP 5636109 B2 JP5636109 B2 JP 5636109B2 JP 2013525867 A JP2013525867 A JP 2013525867A JP 2013525867 A JP2013525867 A JP 2013525867A JP 5636109 B2 JP5636109 B2 JP 5636109B2
- Authority
- JP
- Japan
- Prior art keywords
- context
- memory
- single die
- access
- cpu
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Description
図1は、本開示の一部の実施形態による、CPUおよび主メモリを示す例示的な図である。図1に示されるように、CPU102は、コンテキストコントローラ104、コア0〜8 106、コンテキストキャッシュメモリ/バス108、ならびにL1およびL2キャッシュ110とL3キャッシュ111を含む。コア0〜8のみが示されているが、追加のコアがCPU102において構成されてもよいことは理解できよう。コア0〜8 106は各々、それぞれのL1およびL2キャッシュ110に結合される。L2キャッシュ110は各々、L3キャッシュ111に結合される。L3キャッシュ111は、主メモリ120に通信可能にリンクされる。CPU102は、たとえば単一集積回路のような、単一ダイ上に実装されてもよい。
現在のプロセスコンテキスト切り替えは、オペレーティングシステムが、CPUレジスタマップおよびn−wayの連想配列の仮想メモリマップのセグメントを含む主メモリにコンテキストブロックをセットアップすることで開始する。
リアルタイムクロック割り込みは定期的に生じ(タイムスライスと呼ばれる)、プロセスが実行される必要があるかどうかをオペレーティングシステムが決定することができるように、実行中プロセスからオペレーティングシステムへプロセス実行を切り替える。これは、「プリエンプティブマルチタスキング(pre−emptive multi−tasking)」と呼ばれる。CPUは、割り込みが生じた場合、現在のレジスタセットを主メモリ内の「スタック」に自動的に保存する。
リアルタイムクロック割り込みは、定期的に生じて、実行中プロセスからオペレーティングシステムに実行を切り替える。
コンピューティングクラウドのような共有環境に、並行プロセスおよび仮想マシンがますます作成されるようになり、データセキュリティを提供するための対策を講じる必要がある。ハードウェアはプログラムにより変更することは困難または不可能であるため、ハードウェアレベルでセキュリティを提供することは、安全なコンピューティング環境を提供する上で最も魅力的なオプションの1つである。
上記のメモリ割り振りテーブルは、テーブルの2つのエントリ(割り振りハンドルおよび物理メモリアドレス)の代わりに、仮想メモリ割り振りマップがプロセスおよびアクセスマスクを含む4つのエントリを含むことを除いては、現代のCPUに使用される現在のメモリ割り振りテーブルおよび仮想メモリマップテーブルと同一である。プロセスIDについては、前処理オペレーティングシステム要件の項においてさらに説明する。
(コンピューティングクラウドのような)共有環境に、並行プロセスおよび仮想マシンがますます作成されるようになり、メモリ共有の課題が懸念事項となり始めている。
トランザクション処理済みメモリを必要とする各プロセスは、オペレーティングシステムによる「トランザクション処理済み」プロセスIDの作成を要求する。
0x0 No security(セキュリティなし)
0x1 セキュリティ − このプロセスIDによるアクセスのみ
0x2 トランザクション処理済み − プロセスIDはトランザクション処理されている
0x3 安全/トランザクション処理済み − プロセスIDは安全でありトランザクション処理されている
本開示の一部の実施形態と一致する原理によれば、主メモリコアと並行して実行することができる「トランザクションコア」と呼ばれる冗長メモリコアが提供される。これは、条件付きで2つのメモリコアに同時にアクセスするための、メモリバスおよびメモリアクセスチップセットの単純な構造である。これらのメモリコアは、完全に同一の線形アドレススペースを共有して、同時書き込みを可能にする。本開示の一部の実施形態の原理と一致する一部の実施形態によれば、管理責任は、オペレーティングシステムから、たとえばコンテキストコントローラのようなCPUコアに移されてもよい。
プロセスIDによる読み取り/書き込みサイクル中、CPUは、オペレーティングシステムによって提供された仮想メモリマップを使用して物理メモリスペースにアクセスすることができる。
A=Bである場合、アクセスフラグは使用可能であり(0または1)、または
ビット60がオフである場合、アクセスフラグは使用可能であり(0または1)、または
ビット60がオフであり、かつビット61がオンであり(これはトランザクションである)、かつこれが書き込みサイクルではなく、かつA<>Bである場合、アクセスフラグは使用可能である(0または1)
ビット61がオンであり、かつA=Bである場合、0にセットされて、読み取り/書き込みはトランザクションコアから行なわれる
ビット61がオンであり、かつA<>Bである場合、1にセットされて、読み取りは主コアから行なわれ、書き込みは両方のコアで行なわれる
トライステート(セキュリティフラグに基づく)の場合、メモリはメモリコントローラによりメモリバスに沿って渡されることはない。このセキュリティ規則は、図6の論理図により示される。
プロセス実行中、メモリ変更は、仮想メモリマッププロセスIDでビット61がオンである場合に、トランザクションメモリにおいてのみ行なわれる。
アプリケーションプロセスによりトランザクションを実行するためのプロセスは、単純であってもよい。説明されるアーキテクチャを使用してトランザクションを実行するステップは、以下のとおりである。
Claims (16)
- 複数の命令を実行するように単一ダイ上に構成された複数のコアと、
前記単一ダイ上に配置されたコンテキストキャッシュメモリと、
前記複数のコアの各々で前記複数の命令の実行を制御するように前記単一ダイ上に配置されたコンテキスト切り替えコントローラと、を備え、
前記コンテキスト切り替えコントローラが、
プロセスに関連付けられるプロセスIDが前記コンテキストキャッシュメモリに格納されていないという決定により、プロセスのコンテキスト切り替え情報が前記コンテキストキャッシュメモリに格納されていないと決定し、
前記コンテキスト切り替え情報が前記コンテキストキャッシュメモリに格納されていないという決定に応答して、割り込みを生成し、
前記単一ダイに配置されていないシステムメモリのメモリブロックの識別子を受信し、前記メモリブロックは、前記コンテキスト切り替え情報を備えており、
前記メモリブロックに関連付けられるタグが、前記プロセスに関連付けられるプロセスIDと、前記プロセスに関連付けられるアクセスマスクとを含むことを決定し、
前記単一ダイに配置されていないシステムメモリのメモリブロックにおいて、前記プロセスの前記コンテキスト切り替え情報にアクセスする、プロセッサ。 - 前記単一ダイ上に配置された前記コンテキストキャッシュメモリは、前記複数の命令の各々の識別子および前記複数の命令の各々の状態を格納するように構成される、請求項1に記載のプロセッサ。
- 前記コンテキスト切り替え情報にアクセスするために、前記コンテキスト切り替えコントローラは、
前記メモリにアクセスする要求を受信し、ここで、前記要求は、実行プロセスマスクを含み、
前記アクセスマスクが前記実行プロセスマスクに一致するかどうかを判定し、
前記アクセスマスクと前記実行プロセスマスクとの一致に応答して、前記メモリブロックへのアクセスを許可するように構成されている、請求項1に記載のプロセッサ。 - 前記プロセスIDは、スレッドID又は仮想マシンIDを含む、請求項1に記載のプロセッサ。
- 前記コンテキスト切り替えコントローラは、前記プロセスのコンテキストマップロケーションを受信するように更に構成されている、請求項1に記載のプロセッサ。
- 前記コンテキスト切り替えコントローラは、前記割り込みに応答して、前記単一ダイに配置されていないシステムメモリにおいて、レジスタセットを備えるメモリブロックの識別子を受信するように更に構成されている、請求項1に記載のプロセッサ。
- 前記コンテキスト切り替えコントローラは、前記単一ダイに配置されていないシステムメモリにおいて、前記レジスタセットを備える前記メモリブロックの前記識別子の受信に応答して、前記単一ダイに配置されている前記コンテキストキャッシュメモリにおいて、前記レジスタセットをキャッシュするように更に構成されている、請求項6に記載のプロセッサ。
- プロセス切り替えを実行するための方法であって、
複数のコアを備える単一ダイ上に構成された中央演算処理装置上に構成されたコンテキストコントローラにおいて、前記中央演算処理装置上で実行するプロセスを識別するコマンドを受信し、
前記単一ダイ上に配置されているコンテキストキャッシュメモリに前記プロセスのコンテキスト切り替え情報が格納されていないと判断し、それに応答して割り込みを生成し、
前記コンテキストコントローラにおいて、前記単一ダイに配置されていないシステムメモリのメモリブロックの識別子を受信し、前記メモリブロックは、前記コンテキスト切り替え情報を備えており、
前記メモリブロックに関連付けられるタグが、前記プロセスに関連付けられるプロセスIDと、前記プロセスに関連付けられるアクセスマスクとを含むことを決定し、
前記単一ダイに配置されていないシステムメモリのメモリブロックにおいて、前記プロセスの前記コンテキスト切り替え情報にアクセスし、
前記複数のコアの一つで実行するプロセスをスケジュールする、方法。 - 前記コンテキスト切り替え情報にアクセスすることは、
前記メモリにアクセスする要求を受信することであって、前記要求は、実行プロセスマスクを含む、ことと、
前記アクセスマスクが前記実行プロセスマスクに一致するかどうかを判定することと、
前記アクセスマスクと前記実行プロセスマスクとの一致に応答して、前記メモリブロックへのアクセスを許可することと、
を備える、請求項8に記載の方法。 - 前記割り込みに応答して、前記単一ダイに配置されていない前記システムメモリにおいて、レジスタセットを備えるメモリブロックの識別子を受信すること、
を更に備える、請求項8に記載の方法。 - 前記単一ダイに配置されていない前記システムメモリにおいて、レジスタセットを備えるメモリブロックの識別子の受信に応答して、前記中央演算処理装置において、前記レジスタセットをキャッシュすること、
を更に備える、請求項10に記載の方法。 - 前記コマンドは、前記プロセスを識別するプロセスIDを備える、請求項8に記載の方法。
- 前記単一ダイ上に配置されているコンテキストキャッシュメモリに前記プロセスのコンテキスト切り替え情報が格納されていないと判断することは、前記プロセスIDが前記単一ダイ上に配置されているコンテキストキャッシュメモリに格納されていないと判断することを備える、請求項12に記載の方法。
- 前記プロセスIDは、スレッドID又は仮想マシンIDを含む、請求項12に記載の方法。
- 前記プロセスのコンテキストマップロケーションを受信することを更に備える、請求項8に記載の方法。
- コンピュータに請求項8乃至15のうち何れか1項に記載の方法を実行させる機械読み取り可能な命令を備えるコンピュータプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SG2010/000305 WO2012026877A1 (en) | 2010-08-23 | 2010-08-23 | Context switching |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013536524A JP2013536524A (ja) | 2013-09-19 |
JP5636109B2 true JP5636109B2 (ja) | 2014-12-03 |
Family
ID=45595089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013525867A Expired - Fee Related JP5636109B2 (ja) | 2010-08-23 | 2010-08-23 | コンテキスト切り替え |
Country Status (6)
Country | Link |
---|---|
US (1) | US9658877B2 (ja) |
JP (1) | JP5636109B2 (ja) |
KR (1) | KR101480856B1 (ja) |
DE (1) | DE112010005821T5 (ja) |
TW (1) | TWI537831B (ja) |
WO (1) | WO2012026877A1 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549249B1 (en) * | 2009-09-21 | 2013-10-01 | Tilera Corporation | Supporting secondary atomic operations using primary atomic operations |
JP5238876B2 (ja) * | 2011-12-27 | 2013-07-17 | 株式会社東芝 | 情報処理装置及び情報処理方法 |
US10423424B2 (en) * | 2012-09-28 | 2019-09-24 | Nvidia Corporation | Replicated stateless copy engine |
US9336035B2 (en) * | 2012-10-23 | 2016-05-10 | Vmware, Inc. | Method and system for VM-granular I/O caching |
US9323543B2 (en) * | 2013-01-04 | 2016-04-26 | Microsoft Technology Licensing, Llc | Capability based device driver framework |
US20140201408A1 (en) * | 2013-01-17 | 2014-07-17 | Xockets IP, LLC | Offload processor modules for connection to system memory, and corresponding methods and systems |
US8959576B2 (en) * | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
US9384036B1 (en) * | 2013-10-21 | 2016-07-05 | Google Inc. | Low latency thread context caching |
CN104699531B (zh) * | 2013-12-09 | 2019-12-13 | 超威半导体公司 | 3d芯片系统中的电压下降缓解 |
US9280375B1 (en) * | 2014-04-30 | 2016-03-08 | Google Inc. | Dynamically adjustable virtual machine |
US9996390B2 (en) * | 2014-06-10 | 2018-06-12 | Samsung Electronics Co., Ltd. | Method and system for performing adaptive context switching |
US9685219B2 (en) | 2015-05-13 | 2017-06-20 | Samsung Electronics Co., Ltd. | Semiconductor memory device for deconcentrating refresh commands and system including the same |
US9946657B1 (en) * | 2016-03-01 | 2018-04-17 | Nutanix, Inc. | Spilling small cache entries to a solid state device |
US10146439B2 (en) * | 2016-04-13 | 2018-12-04 | Samsung Electronics Co., Ltd. | System and method for high performance lockless scalable target |
US10452287B2 (en) * | 2016-06-24 | 2019-10-22 | Futurewei Technologies, Inc. | System and method for shared memory ownership using context |
KR101936565B1 (ko) * | 2016-11-14 | 2019-01-09 | 엘에스산전 주식회사 | 인버터에서 인터럽트 제어방법 |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
US10649956B2 (en) * | 2017-04-01 | 2020-05-12 | Intel Corporation | Engine to enable high speed context switching via on-die storage |
CN107562514B (zh) * | 2017-08-03 | 2020-11-24 | 致象尔微电子科技(上海)有限公司 | 一种物理内存访问控制与隔离方法 |
US10884481B2 (en) * | 2018-03-30 | 2021-01-05 | Konica Minolta Laboratory U.S.A., Inc. | Apparatus and method for improving power savings by accelerating device suspend and resume operations |
WO2019200142A1 (en) * | 2018-04-12 | 2019-10-17 | Micron Technology, Inc. | Replay protected memory block command queue |
EP3933566A4 (en) * | 2019-02-28 | 2022-10-12 | LG Electronics Inc. | DIGITAL DEVICE AND CONTROL METHOD THEREOF |
US11249678B2 (en) * | 2019-07-26 | 2022-02-15 | Qualcomm Incorporated | Serial memory device single-bit or plurality-bit serial I/O mode selection |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5249231A (en) * | 1992-05-04 | 1993-09-28 | Motorola, Inc. | Memory tagging for object reuse protection |
US5379428A (en) * | 1993-02-01 | 1995-01-03 | Belobox Systems, Inc. | Hardware process scheduler and processor interrupter for parallel processing computer systems |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
US6542991B1 (en) | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US6507862B1 (en) | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
US6430667B1 (en) | 2000-04-13 | 2002-08-06 | International Business Machines Corporation | Single-level store computer incorporating process-local address translation data structures |
US7076609B2 (en) | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US20040117589A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Interrupt mechanism for a data processing system having hardware managed paging of disk data |
JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US7073043B2 (en) | 2003-04-28 | 2006-07-04 | International Business Machines Corporation | Multiprocessor system supporting multiple outstanding TLBI operations per partition |
US7055004B2 (en) | 2003-09-04 | 2006-05-30 | International Business Machines Corporation | Pseudo-LRU for a locking cache |
US7206966B2 (en) | 2003-10-22 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Fault-tolerant multi-core microprocessing |
JP2006033721A (ja) | 2004-07-21 | 2006-02-02 | Fuji Photo Film Co Ltd | 画像処理装置、画像処理システム、および画像処理プログラム |
US8516483B2 (en) | 2005-05-13 | 2013-08-20 | Intel Corporation | Transparent support for operating system services for a sequestered sequencer |
US7590774B2 (en) | 2005-12-01 | 2009-09-15 | Kabushiki Kaisha Toshiba | Method and system for efficient context swapping |
US20070204268A1 (en) | 2006-02-27 | 2007-08-30 | Red. Hat, Inc. | Methods and systems for scheduling processes in a multi-core processor environment |
US7636829B2 (en) | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
US20080040524A1 (en) | 2006-08-14 | 2008-02-14 | Zimmer Vincent J | System management mode using transactional memory |
-
2010
- 2010-08-23 WO PCT/SG2010/000305 patent/WO2012026877A1/en active Application Filing
- 2010-08-23 JP JP2013525867A patent/JP5636109B2/ja not_active Expired - Fee Related
- 2010-08-23 DE DE112010005821T patent/DE112010005821T5/de not_active Withdrawn
- 2010-08-23 KR KR1020137007485A patent/KR101480856B1/ko not_active IP Right Cessation
- 2010-08-23 US US13/003,222 patent/US9658877B2/en not_active Expired - Fee Related
-
2011
- 2011-07-20 TW TW100125893A patent/TWI537831B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20130063003A (ko) | 2013-06-13 |
KR101480856B1 (ko) | 2015-01-09 |
JP2013536524A (ja) | 2013-09-19 |
WO2012026877A1 (en) | 2012-03-01 |
TW201214289A (en) | 2012-04-01 |
US20120047516A1 (en) | 2012-02-23 |
TWI537831B (zh) | 2016-06-11 |
US9658877B2 (en) | 2017-05-23 |
DE112010005821T5 (de) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5636109B2 (ja) | コンテキスト切り替え | |
US10929323B2 (en) | Multi-core communication acceleration using hardware queue device | |
US6779065B2 (en) | Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads | |
CN104756090B (zh) | 提供扩展的缓存替换状态信息 | |
JP2018509687A (ja) | ユーザレベルの分岐及び結合を行うプロセッサ、方法、システム、及び命令 | |
CN109478136A (zh) | 使用虚拟向量寄存器文件的系统和方法 | |
US11650947B2 (en) | Highly scalable accelerator | |
KR20130010442A (ko) | 가상 gpu | |
US11301142B2 (en) | Non-blocking flow control in multi-processing-entity systems | |
CN110659115A (zh) | 具有硬件辅助任务调度的多线程处理器核 | |
US11868306B2 (en) | Processing-in-memory concurrent processing system and method | |
KR20130112909A (ko) | 권한 레벨에 관계없는 세그먼트 레지스터 판독 및 기입용 시스템, 장치, 및 방법 | |
JP2023070069A (ja) | 仮想マシンにおけるユーザレベル割り込み | |
KR20210077588A (ko) | 분산 환경에서 딥 러닝 트레이닝을 최적화하기 위한 런타임에서의 서비스 클래스 속성의 초기화 및 관리 | |
US20240004808A1 (en) | Optimized prioritization of memory accesses | |
US20220147393A1 (en) | User timer directly programmed by application | |
US20240273666A1 (en) | Graphics Work Streaming Techniques for Distributed Architecture | |
US20240273667A1 (en) | Geometry Kick Distribution in Graphics Processor | |
CN115934584A (zh) | 设备私有存储器中的存储器访问跟踪器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140507 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140801 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140929 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141017 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5636109 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |