JP5533538B2 - 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 - Google Patents
情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 Download PDFInfo
- Publication number
- JP5533538B2 JP5533538B2 JP2010230015A JP2010230015A JP5533538B2 JP 5533538 B2 JP5533538 B2 JP 5533538B2 JP 2010230015 A JP2010230015 A JP 2010230015A JP 2010230015 A JP2010230015 A JP 2010230015A JP 5533538 B2 JP5533538 B2 JP 5533538B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- instruction address
- emulation
- information
- 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
- 230000010365 information processing Effects 0.000 title claims description 31
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000000034 method Methods 0.000 claims description 83
- 230000008569 process Effects 0.000 claims description 81
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 63
- 238000010586 diagram Methods 0.000 description 32
- 230000005055 memory storage Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
図3は、本実施例2に係るエミュレーション装置2の構成を示す機能ブロック図である。図3に示すように、エミュレーション装置2は、フェッチ・デコードCPU30及び命令実行CPU40の2つの物理CPUを備える。また、エミュレーション装置2は、ターゲットメモリ記憶部21、命令関数記憶部24、フェッチ命令情報記憶部25及び命令アドレス記憶部26を有する。
次に、エミュレーション装置2の命令エミュレーション処理のシーケンスを、図5を参照して説明する。図5は、実施例2に係るエミュレーション装置の処理のシーケンス図である。なお、図5では、1個の命令エミュレーション処理のシーケンスについて説明する。図5に示すように、エミュレーション装置2は、フェッチ・デコードCPU30及び命令実行CPU40を備えているものとする。
上記実施例2によれば、命令デコード部31の次命令アドレス判定部34は、デコードされた命令の命令アドレスが命令アドレス通知部45によって通知された現命令アドレスと合致するか否かを判定する。そして、デコードされた命令の命令アドレスが現命令アドレスと合致しない場合には、次命令アドレス判定部34は、現命令アドレスが示す命令に後続する命令の命令アドレスを算出する。
図7は、実施例3に係るエミュレーション装置の構成を示す機能ブロック図である。なお、図3に示すエミュレーション装置と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例3とが異なるところは、エミュレーション実行部41Aの命令アドレス合致判定部43を削除し、命令実行時間判定部51Aを追加した点にある。さらに、実施例2と実施例3とが異なるところは、エミュレーション実行部41Aのフェッチ・デコード処理部44A、エミュレーション処理部45A及び命令アドレス通知部42Aを変更した点にある。
次に、エミュレーション装置3の命令エミュレーション処理のシーケンスを、図8を参照して説明する。図8は、実施例3に係るエミュレーション装置の処理のシーケンス図である。なお、図8では、1個の命令エミュレーション処理のシーケンスについて説明する。図8に示すように、エミュレーション装置3は、フェッチ・デコードCPU30及び命令実行CPU40を備えているものとする。
上記実施例3によれば、命令実行CPU40では、デコードされた命令のエミュレーションの開始からこの命令に後続する命令のエミュレーションの終了までの実行時間が、フェッチ及びデコードに要する実行時間に近似しているか否かを判定する。そして、命令アドレス通知部45Aは、判定の結果、エミュレーション実行時間がデコード実行時間に近似している場合には、デコードされた命令に後続する命令の命令アドレスを命令デコード部31に通知する。
図10は、実施例4に係るエミュレーション装置の構成を示す機能ブロック図である。なお、図4に示すエミュレーション装置と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例4とが異なるところは、命令デコード部31Bに分岐命令判定部61B及び次命令アドレス予測部62Bを追加し、次命令アドレス判定部34Bを変更した点にある。また、実施例2と実施例4とが異なるところは、分岐実績記憶部63を追加した点にある。さらに、実施例2と実施例4とが異なるところは、エミュレーション実行部41Bに分岐実績更新部64Bを追加した点にある。
次に、エミュレーション装置4の命令エミュレーション処理のシーケンスを、図12を参照して説明する。図12は、実施例4に係るエミュレーション装置の処理のシーケンス図である。なお、図12に示すように、エミュレーション装置4は、フェッチ・デコードCPU30及び命令実行CPU40を備えているものとする。
上記実施例4によれば、分岐命令判定部61は、次命令アドレス判定部34によってデコードされた命令の命令アドレスが命令アドレス通知部42によって通知された現命令アドレスと合致すると判定された場合には、当該命令が分岐命令であるか否かを判定する。そして、次命令アドレス予測部62は、分岐命令判定部61による判定の結果、現命令アドレスの命令が分岐命令である場合には、当該命令に後続する次命令の命令アドレスを予測する。
前記第1のプロセッサが、
受信した命令アドレスの次の命令アドレスを算出する算出部と、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信する第1の送信部とを含み、
前記第2のプロセッサが、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信する第2の送信部と、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する実行部と、
を含むことを特徴とする情報処理装置。
を特徴とする付記1に記載の情報処理装置。
前記第1のプロセッサから受信した前記第2の命令アドレスに関する命令の処理の開始から当該命令に後続する命令の処理の終了までに要する第1の実行時間が、命令アドレスに基づいて命令情報を読み出す処理の第2の実行時間に近似しているか否かを判定する命令実行時間判定部を有し、
前記第2の送信部は、
前記命令実行時間判定部による判定の結果、前記第1の実行時間が、前記第2の実行時間に近似している場合には、当該命令に後続する命令の命令アドレスを前記第1のプロセッサに送信すること
を特徴とする付記1又は付記2に記載の情報処理装置。
前記実行部は、
前記命令情報記憶部に記憶された複数の命令情報を用いて、順次エミュレーションを実行することを特徴とする付記1に記載の情報処理装置。
前記分岐命令判定部による判定の結果、前記第1の命令アドレスの命令が分岐命令である場合には、当該命令に後続する次の命令の命令アドレスを予測する次命令アドレス予測部と
を有することを特徴とする付記1又は付記2に記載の情報処理装置。
受信した命令アドレスの次の命令アドレスを算出し、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信し、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信し、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する
処理を実行させることを特徴とするエミュレーション処理プログラム。
受信した命令アドレスの次の命令アドレスを算出し、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信し、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信し、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する
ことを特徴とするエミュレーション処理方法。
11 命令デコード部
12 エミュレーション実行部
13 命令アドレス通知部
21 ターゲットメモリ記憶部
22 命令列
23 オペランド
24 命令関数記憶部
25 フェッチ命令情報記憶部
26 命令アドレス記憶部
30 フェッチ・デコードCPU
31、31B 命令デコード部
32 フェッチ処理部
33 デコード処理部
34、34B 次命令アドレス判定部
40 命令実行CPU
41、41A、41B エミュレーション実行部
42、42A 命令アドレス通知部
43 命令アドレス合致判定部
44、44A フェッチ・デコード処理部
45、45A エミュレーション処理部
51A 命令実行時間判定部
61B 分岐命令判定部
62B 次命令アドレス予測部
63 分岐実績記憶部
64B 分岐実績更新部
Claims (6)
- 第1のプロセッサ及び第2のプロセッサを含む情報処理装置であって、
前記第1のプロセッサが、
受信した命令アドレスの次の命令アドレスを算出する算出部と、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信する第1の送信部とを含み、
前記第2のプロセッサが、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信する第2の送信部と、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する実行部と、
を含むことを特徴とする情報処理装置。 - 前記命令情報は、前記算出部が算出した前記命令アドレスに示される命令語に対応するエミュレート関数の格納先アドレスであること
を特徴とする請求項1に記載の情報処理装置。 - 前記実行部は、
前記第1のプロセッサから受信した前記第2の命令アドレスに関する命令の処理の開始から当該命令に後続する命令の処理の終了までに要する第1の実行時間が、命令アドレスに基づいて命令情報を読み出す処理の第2の実行時間に近似しているか否かを判定する命令実行時間判定部を有し、
前記第2の送信部は、
前記命令実行時間判定部による判定の結果、前記第1の実行時間が、前記第2の実行時間に近似している場合には、当該命令に後続する命令の命令アドレスを前記第1のプロセッサに送信すること
を特徴とする請求項1又は請求項2に記載の情報処理装置。 - 前記第2の送信部によって送信された前記第1の命令アドレスの命令が分岐命令であるか否かを判定する分岐命令判定部と、
前記分岐命令判定部による判定の結果、前記第1の命令アドレスの命令が分岐命令である場合には、当該命令に後続する次の命令の命令アドレスを予測する次命令アドレス予測部と
を有することを特徴とする請求項1又は請求項2に記載の情報処理装置。 - 第1のプロセッサ及び第2のプロセッサを含むコンピュータに、
受信した命令アドレスの次の命令アドレスを算出し、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信し、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信し、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する
処理を実行させることを特徴とするエミュレーション処理プログラム。 - 第1のプロセッサ及び第2のプロセッサを含む情報処理装置にエミュレーション処理を実行させるエミュレーション処理方法であって、
受信した命令アドレスの次の命令アドレスを算出し、
算出した命令アドレスと、算出した命令アドレスに基づいて読み出した命令情報とを前記第2のプロセッサに送信し、
実行した処理の実行結果に含まれる命令アドレスである第1の命令アドレスを前記第1のプロセッサに送信し、
前記第1のプロセッサから受信した命令アドレスである第2の命令アドレスが、前記第1の命令アドレスと同じである場合に、前記第1のプロセッサから受信した命令情報に基づく処理を実行し、前記第2の命令アドレスが前記第1の命令アドレスと同じでない場合に、前記第1の命令アドレスに基づいて命令情報を読出し、読み出した命令情報に基づく処理を実行する
ことを特徴とするエミュレーション処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010230015A JP5533538B2 (ja) | 2010-10-12 | 2010-10-12 | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
US13/253,640 US8984263B2 (en) | 2010-10-12 | 2011-10-05 | Information processing device and emulation processing program and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010230015A JP5533538B2 (ja) | 2010-10-12 | 2010-10-12 | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012083963A JP2012083963A (ja) | 2012-04-26 |
JP5533538B2 true JP5533538B2 (ja) | 2014-06-25 |
Family
ID=45926038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010230015A Expired - Fee Related JP5533538B2 (ja) | 2010-10-12 | 2010-10-12 | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8984263B2 (ja) |
JP (1) | JP5533538B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256451B2 (en) * | 2012-06-29 | 2016-02-09 | Oracle International Corporation | Emulation time correction |
CN104461468B (zh) * | 2014-10-27 | 2017-10-20 | 杭州中天微系统有限公司 | 基于处理器指令快速完成的精确异常维护方法及装置 |
CN113033789B (zh) * | 2019-12-24 | 2024-03-26 | 中科寒武纪科技股份有限公司 | 用于保序的总线系统、集成电路装置、板卡及保序方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4720784A (en) * | 1983-10-18 | 1988-01-19 | Thiruvengadam Radhakrishnan | Multicomputer network |
US5140687A (en) * | 1985-10-22 | 1992-08-18 | Texas Instruments Incorporated | Data processing apparatus with self-emulation capability |
JP2839730B2 (ja) * | 1991-02-25 | 1998-12-16 | 株式会社東芝 | エミュレーション装置及び半導体装置 |
AU6629894A (en) * | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
JP3652956B2 (ja) * | 2000-04-25 | 2005-05-25 | 北陸日本電気ソフトウェア株式会社 | エミュレーション装置 |
US7428485B2 (en) | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
US6988261B2 (en) * | 2001-08-24 | 2006-01-17 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions in Java computing environments |
JP2004021890A (ja) | 2002-06-20 | 2004-01-22 | Pacific Design Kk | データ処理装置 |
JP2004127154A (ja) * | 2002-10-07 | 2004-04-22 | Mitsubishi Electric Corp | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 |
JP2006268487A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | エミュレーション装置及びエミュレーション方法、並びに、エミュレーションプログラム |
GB2427045B (en) * | 2005-06-06 | 2007-11-21 | Transitive Ltd | Method and apparatus for converting program code with access coordination for a shared resource |
US7487341B2 (en) * | 2006-06-29 | 2009-02-03 | Intel Corporation | Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource |
JP2010003151A (ja) * | 2008-06-20 | 2010-01-07 | Renesas Technology Corp | データ処理装置 |
-
2010
- 2010-10-12 JP JP2010230015A patent/JP5533538B2/ja not_active Expired - Fee Related
-
2011
- 2011-10-05 US US13/253,640 patent/US8984263B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20120089822A1 (en) | 2012-04-12 |
JP2012083963A (ja) | 2012-04-26 |
US8984263B2 (en) | 2015-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8977681B2 (en) | Pre-fetching data | |
US8335238B2 (en) | Reassembling streaming data across multiple packetized communication channels | |
US9705977B2 (en) | Load balancing for network devices | |
JP5672199B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN105393240A (zh) | 具有辅助异步向量处理器的异步处理器的方法和装置 | |
US8266504B2 (en) | Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history | |
CN112286698B (zh) | 远程过程调用方法、装置以及远程过程调用执行方法 | |
JP2010272076A (ja) | マルチプロセッサシステム | |
KR20150079429A (ko) | 캐시 미시들에 대한 프로세서 읽기 후 쓰기 해저드를 다루기 위한 장치 및 그것의 동작 방법 | |
JP5533538B2 (ja) | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 | |
CN114201219A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
US9639370B1 (en) | Software instructed dynamic branch history pattern adjustment | |
US11755534B2 (en) | Data caching method and node based on hyper-converged infrastructure | |
WO2013185660A1 (zh) | 一种网络处理器的指令存储装置及该装置的指令存储方法 | |
CN107273092B (zh) | 一种优化数据流架构访存延迟的方法及其系统 | |
CN110825442B (zh) | 一种指令预取方法及处理器 | |
Faraji et al. | Design considerations for GPU‐aware collective communications in MPI | |
US8327252B2 (en) | Data receiving apparatus, data receiving method, and computer-readable recording medium | |
US8989184B2 (en) | Message relay apparatus and method | |
JP2008047096A (ja) | キューイングを行うコンピュータシステム、方法、及びプログラム | |
JP2009193255A (ja) | 集団通信最適化プログラム、集団通信最適化装置および集団通信最適化方法 | |
JP4089506B2 (ja) | ファイル共有システム及びサーバー並びにプログラム | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
CN112445587A (zh) | 一种任务处理的方法以及任务处理装置 | |
JP3795055B1 (ja) | 値予測装置、マルチプロセッサシステムおよび値予測方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140225 |
|
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: 20140401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5533538 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140414 |
|
LAPS | Cancellation because of no payment of annual fees |