JP5688165B2 - 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 - Google Patents
特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 Download PDFInfo
- Publication number
- JP5688165B2 JP5688165B2 JP2013546145A JP2013546145A JP5688165B2 JP 5688165 B2 JP5688165 B2 JP 5688165B2 JP 2013546145 A JP2013546145 A JP 2013546145A JP 2013546145 A JP2013546145 A JP 2013546145A JP 5688165 B2 JP5688165 B2 JP 5688165B2
- Authority
- JP
- Japan
- Prior art keywords
- base register
- segment base
- privilege
- computer processor
- instruction
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 44
- 230000015654 memory Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
上述した命令を実行することが出来る装置およびシステムの実施形態を下記に詳細に説明する。図6は、本願発明の実施形態に係る、コアの例示的なアウトオブオーダーアーキテクチャを示すブロック図である。しかし上記の命令は、インオーダーアーキテクチャで実行してもよい。図6において、矢印は2以上のユニットの関連付けを示し、矢印の方向は、それらユニット間のデータフローの方向を示す。このアーキテクチャのコンポーネントを用いて、上記で詳細に説明した命令のフェッチ、復号化、および実行を含む、これら命令の処理を行ってもよい。
本明細書で説明された命令をネイティブに(natively)実行する実施形態を説明してきたが、本願発明の代替実施形態は、(例えば、米国カリフォルニア州サニーベールのMIPS TechnologiesのMIPS命令セットを実行するプロセッサ、または米国カリフォルニア州サニーベールのARM HoldingsのARM命令セットを実行するプロセッサなどの)異なる命令セットを実行するプロセッサで実行されるエミュレーション層を用いて命令を実行してもよい。また、図面中のフロー図は本願発明の特定の実施形態によって実行される動作の特定の順序を示しているが、そのような順序が例示に過ぎないことが理解されるべきである(例えば、代替実施形態は異なる順序で動作を行ってもよく、または特定の動作を組み合わせてもよく、または、特定の動作を重複して行ってもよい)。
Claims (16)
- コンピュータプロセッサにおいて特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令を実行する方法であり、
64ビットデータのソースオペランドを含む前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令をフェッチする段階と、
フェッチされた前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令をデコードする段階と、
デコードされた前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令を実行し、前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令の命令コードにより特定される前記セグメントベースレジスタへ前記ソースオペランドの前記64ビットデータを書き込む段階と
を備える、方法。 - 前記セグメントベースレジスタはIA32_FS_BASEである、請求項1に記載の方法。
- 前記セグメントベースレジスタはIA32_GS_BASEである、請求項1に記載の方法。
- 前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令は、特権レベル3のプログラムの一部である、請求項1〜3のいずれか1項に記載の方法。
- 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能であることを判断する段階をさらに備える、請求項1〜4のいずれか1項に記載の方法。
- 前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能であること示すフラグを前記コンピュータプロセッサに設定する段階をさらに備える、請求項5に記載の方法。
- 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能でないことを判断する段階と、
前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応不可能であることを示すフラグを前記コンピュータプロセッサに設定する段階と
をさらに備える、請求項1〜4のいずれか1項に記載の方法。 - コンピュータプロセッサにおいて特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令を実行する方法であり、
64ビットデータのデスティネーションオペランドを含む前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令をフェッチする段階と、
フェッチされた前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令をデコードする段階と、
デコードされた前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令を実行し、前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令の命令コードにより特定される前記セグメントベースレジスタの前記64ビットデータを読み取り、前記64ビットデータのデスティネーションオペランドにより特定される位置へ前記64ビットデータを格納する段階と
を備える方法。 - 前記セグメントベースレジスタはIA32_FS_BASEである、請求項8に記載の方法。
- 前記セグメントベースレジスタはIA32_GS_BASEである、請求項8に記載の方法。
- 前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令は、特権レベル3のプログラムの一部である、請求項8〜10のいずれか1項に記載の方法。
- 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令に対応可能であることを判断する段階をさらに備える、請求項8に記載の方法。
- 前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令に対応可能であることを示すフラグを前記コンピュータプロセッサに設定する段階をさらに備える、請求項12に記載の方法。
- 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの読み取り命令に対応可能でないことを判断する段階と、
前記特権に関しアグノスティックなセグメントベースレジスタへの読み取り命令に対応不可能であることを示すフラグを前記コンピュータプロセッサに設定する段階と
をさらに備える、請求項8〜11のいずれか1項に記載の方法。 - 請求項1〜14のいずれか1項に記載の方法をコンピュータプロセッサに実行させるプログラム。
- 請求項1〜14のいずれか1項に記載の方法を実行するコンピュータプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/976,981 | 2010-12-22 | ||
US12/976,981 US8938606B2 (en) | 2010-12-22 | 2010-12-22 | System, apparatus, and method for segment register read and write regardless of privilege level |
PCT/US2011/060011 WO2012087446A1 (en) | 2010-12-22 | 2011-11-09 | System, apparatus, and method for segment register read and write regardless of privilege level |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014505926A JP2014505926A (ja) | 2014-03-06 |
JP5688165B2 true JP5688165B2 (ja) | 2015-03-25 |
Family
ID=46314326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013546145A Active JP5688165B2 (ja) | 2010-12-22 | 2011-11-09 | 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8938606B2 (ja) |
JP (1) | JP5688165B2 (ja) |
KR (1) | KR101528130B1 (ja) |
CN (1) | CN103270489B (ja) |
DE (1) | DE112011104552T5 (ja) |
GB (1) | GB2499758B (ja) |
TW (1) | TWI467475B (ja) |
WO (1) | WO2012087446A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2666107B1 (en) * | 2011-01-21 | 2019-03-06 | Thomson Licensing | Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus |
CN104969232B (zh) | 2013-03-13 | 2018-01-12 | 英特尔公司 | 管理设备驱动器跨环访问 |
US20140310484A1 (en) * | 2013-04-16 | 2014-10-16 | Nvidia Corporation | System and method for globally addressable gpu memory |
US20150178078A1 (en) * | 2013-12-21 | 2015-06-25 | H. Peter Anvin | Instructions and logic to provide base register swap status verification functionality |
US10706143B2 (en) * | 2017-05-19 | 2020-07-07 | Intel Corporation | Techniques for secure-chip memory for trusted execution environments |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3003A (en) * | 1843-03-17 | Improvement in the method of propelling vessels by means of continuous streams of water | ||
US8025A (en) * | 1851-04-08 | Apparatus eor boltiitg flouk | ||
US5418956A (en) * | 1992-02-26 | 1995-05-23 | Microsoft Corporation | Method and system for avoiding selector loads |
US5517657A (en) * | 1994-03-30 | 1996-05-14 | Intel Corporation | Segment register file read and write pipeline |
US5644755A (en) * | 1995-02-24 | 1997-07-01 | Compaq Computer Corporation | Processor with virtual system mode |
EP1291765B1 (en) * | 1996-08-27 | 2009-12-30 | Panasonic Corporation | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
US6154818A (en) * | 1997-11-20 | 2000-11-28 | Advanced Micro Devices, Inc. | System and method of controlling access to privilege partitioned address space for a model specific register file |
US6973562B1 (en) * | 2000-01-14 | 2005-12-06 | Advanced Micro Devices, Inc. | Establishing an operating mode in a processor |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6880068B1 (en) * | 2000-08-09 | 2005-04-12 | Advanced Micro Devices, Inc. | Mode dependent segment use with mode independent segment update |
US6901505B2 (en) * | 2001-08-09 | 2005-05-31 | Advanced Micro Devices, Inc. | Instruction causing swap of base address from segment register with address from another register |
US7725687B2 (en) * | 2006-06-27 | 2010-05-25 | Texas Instruments Incorporated | Register file bypass with optional results storage and separate predication register file in a VLIW processor |
US7827390B2 (en) * | 2007-04-10 | 2010-11-02 | Via Technologies, Inc. | Microprocessor with private microcode RAM |
US8051467B2 (en) * | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
JP5175703B2 (ja) * | 2008-12-11 | 2013-04-03 | 株式会社東芝 | メモリデバイス |
-
2010
- 2010-12-22 US US12/976,981 patent/US8938606B2/en active Active
-
2011
- 2011-11-09 KR KR1020137016065A patent/KR101528130B1/ko active IP Right Grant
- 2011-11-09 GB GB1310309.8A patent/GB2499758B/en active Active
- 2011-11-09 JP JP2013546145A patent/JP5688165B2/ja active Active
- 2011-11-09 CN CN201180062099.2A patent/CN103270489B/zh active Active
- 2011-11-09 WO PCT/US2011/060011 patent/WO2012087446A1/en active Application Filing
- 2011-11-09 DE DE112011104552T patent/DE112011104552T5/de active Pending
- 2011-11-11 TW TW100141297A patent/TWI467475B/zh active
Also Published As
Publication number | Publication date |
---|---|
GB2499758A (en) | 2013-08-28 |
US20120166767A1 (en) | 2012-06-28 |
WO2012087446A1 (en) | 2012-06-28 |
GB2499758B (en) | 2020-02-05 |
TWI467475B (zh) | 2015-01-01 |
KR101528130B1 (ko) | 2015-06-12 |
DE112011104552T5 (de) | 2013-09-19 |
US8938606B2 (en) | 2015-01-20 |
CN103270489A (zh) | 2013-08-28 |
CN103270489B (zh) | 2016-03-02 |
GB201310309D0 (en) | 2013-07-24 |
KR20130112909A (ko) | 2013-10-14 |
JP2014505926A (ja) | 2014-03-06 |
TW201241742A (en) | 2012-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107683480B (zh) | 用于支持对受保护容器的实时迁移的处理器、方法、系统和指令 | |
CN111124498A (zh) | 用于推测执行侧信道缓解的装置和方法 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US9959409B2 (en) | Processors, methods, systems, and instructions to change addresses of pages of secure enclaves | |
US9239801B2 (en) | Systems and methods for preventing unauthorized stack pivoting | |
KR101597774B1 (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
US9372812B2 (en) | Determining policy actions for the handling of data read/write extended page table violations | |
US10360055B2 (en) | Processors, methods, and systems to enforce blacklisted paging structure indication values | |
US20150007196A1 (en) | Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores | |
CN109416640B (zh) | 孔径访问处理器、方法、系统和指令 | |
JP2015084250A (ja) | 所与の範囲のページのキャッシュフラッシュおよび所与の範囲のエントリのtlb無効化を行なうシステム、方法、および装置 | |
US9323533B2 (en) | Supervisor mode execution protection | |
JP2010533920A (ja) | 階層マイクロコードストアを有するマルチコアプロセッサ | |
GB2513975A (en) | Instruction emulation processors, methods, and systems | |
JP5688165B2 (ja) | 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 | |
EP2889757A1 (en) | A load instruction for code conversion | |
CN113568663A (zh) | 代码预取指令 | |
JP7456570B2 (ja) | 権限横断リニアプローブに対する防護のためのシステム、方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141105 |
|
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: 20141125 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20141224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150123 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5688165 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |