JP4986431B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP4986431B2 JP4986431B2 JP2005284145A JP2005284145A JP4986431B2 JP 4986431 B2 JP4986431 B2 JP 4986431B2 JP 2005284145 A JP2005284145 A JP 2005284145A JP 2005284145 A JP2005284145 A JP 2005284145A JP 4986431 B2 JP4986431 B2 JP 4986431B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processor
- codes
- code
- packed
- 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
- 238000006243 chemical reaction Methods 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 31
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect 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/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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
パターソン&ヘネシー著、「コンピュータの構成と設計」、日経BP社 中森章著、「マイクロプロセッサ・アーキテクチャ入門」、CQ出版社
図1は、本発明の第1の実施の形態におけるプロセッサによって用いられる命令コードの構成例を示す図である。この命令コードは、図1(a)に示すように、パックされた命令であることを示すパック有効ビット(V)と、パック命令と、命令1のオペコードおよびオペランドMpと、命令2のオペコードおよびオペランドApと、プロセッサの動作モードを示すモードビット(M)とを含む。なお、“ld @p1”命令はレジスタp1によって示されるアドレスからデータをロードする命令であり、“add @p2”命令はレジスタp2によって示されるアドレスに格納されるデータと、たとえばアキュムレータに格納されるデータとを加算する命令である。
本発明の第1の実施の形態においては、ユーザが外部から変換テーブル13に命令セットを書込むものであったが、本実施の形態においてはコンピュータによって実行されるコンパイラが変換テーブル13に命令セットを書込むものである。
図4は、本発明の第3の実施の形態におけるプロセッサの概略構成を示すブロック図である。本実施の形態におけるプロセッサは、図2に示す第1の実施の形態におけるプロセッサと比較して、変換テーブル13の内部構成のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
本発明の第4の実施の形態におけるプロセッサは、図2に示す第1の実施の形態におけるプロセッサと比較して、データバス23にプロセッサ自身のデータバスが接続される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
第1の実施の形態においては、図1に示すように命令コードにパック命令とパックされていない命令とが含まれる構成であったが、本実施の形態においては命令コードにパック命令のみが含まれる構成である。したがって、命令コードにパック有効ビットを含まない構成となっている。
第1の実施の形態においては、変換テーブル13に書込まれる複数の命令にはオペランドを含んでいたが、本実施の形態においては変換テーブル13に書込まれる命令にはオペランドを含まず、オペコードのみをパックするものである。
図6は、本発明の第7の実施の形態におけるプロセッサの概略構成を示すブロック図である。本実施の形態におけるプロセッサは、図2に示す第1の実施の形態におけるプロセッサと比較して、変換テーブル13が命令メモリ11と命令キュー12との間に設けられる点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
図7は、本発明の第8の実施の形態におけるプロセッサの概略構成を示すブロック図である。本実施の形態におけるプロセッサは、図2に示す第1の実施の形態におけるプロセッサと比較して、命令キュー12が削除されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
第1の実施の形態においては、パック化された複数の命令コードを並列に処理するものであったが、本実施の形態においてはパック化された複数の命令コードをシリアルに処理するものである。
図8は、本発明の第10の実施の形態におけるプロセッサの概略構成を示すブロック図である。本実施の形態におけるプロセッサは、図2に示す第1の実施の形態におけるプロセッサと比較して、ジャンプ先の命令を登録するジャンプ先命令保存部31と、ジャンプ先のアドレスを保持するフリップフロップ32とを含む。
Claims (11)
- 並列に実行する複数の命令コードを含む長命令をデコードし、実行するプロセッサであって、
前記長命令は、
複数の命令からなる第1の部分と命令の状態を示す第2の部分とからなり、
前記第1の部分の特定の1つの命令コードが、複数の命令コードが1つのコードにパックされたパック命令である場合に、前記第2の部分を第1の状態としてエンコードされ、
前記第1の部分の特定の1つの命令コードが、前記パック命令以外の1つの命令コードである場合に、前記第2の部分を第2の状態としてエンコードされるものであり、
該プロセッサは、
前記パック命令を複数の命令コードに変換する変換手段と、
前記第2の部分が第1の状態である場合に、前記変換手段によって変換された複数の命令コードを選択し、第2の状態である場合に、前記パック命令以外の1つの命令コードを選択する選択手段と、
前記特定の1つの命令コード以外の命令コードと前記選択手段によって選択された命令コードとをデコードするデコード手段と、
前記デコード手段によるデコード結果に応じて、前記命令コードのそれぞれに対応する演算処理を並列に行なう複数の演算処理手段と、
を含むことを特徴とするプロセッサ。 - 前記変換手段は、それぞれが異なる複数の命令コードの組を格納する複数のフリップフロップと、
前記パック命令に応じて、前記複数のフリップフロップに格納された複数の命令コードの組を選択し、選択された複数の命令コードの組を前記デコード手段に出力するセレクタとを含む、請求項1記載のプロセッサ。 - 前記変換手段は、それぞれの領域に異なる複数の命令コードの組を格納し、前記パック命令をアドレスとして複数の命令コードの組を選択的に出力するメモリを含む、請求項1記載のプロセッサ。
- 前記変換手段は、外部装置が接続されるデータバスに接続され、該データバスを介して前記外部装置により複数の命令コードが書込まれる、請求項1〜3のいずれかに記載のプロセッサ。
- 前記変換手段は、前記外部装置によって実行されるコンパイラによって使用頻度が高いと判定された複数の命令コードの組が書込まれる、請求項4記載のプロセッサ。
- 前記変換手段は、前記プロセッサのデータバスに接続され、前記プロセッサによって複数の命令コードの組が書込まれる、請求項1〜3のいずれかに記載のプロセッサ。
- 前記プロセッサはさらに、前記命令メモリと前記変換手段との間に設けられる命令キューを含む、請求項1〜6のいずれかに記載のプロセッサ。
- 前記プロセッサはさらに、前記選択手段と前記デコード手段との間に設けられる命令キューを含む、請求項1記載のプロセッサ。
- 前記選択手段は、前記変換手段によって変換された複数の命令コードを前記デコード手段にシリアルに出力し、
前記デコード手段は、前記複数の命令コードを1つずつデコードしてデコード結果を前記複数の演算処理手段のうち所定の演算処理手段に出力する、請求項1または8記載のプロセッサ。 - 前記フェッチされた命令コードは、並列実行を行なうかシリアル実行を行なうかを示す情報を含み、
前記選択手段は、前記情報に応じて前記複数の命令コードを並列に前記デコード手段に出力するか、シリアルに前記デコード手段に出力するかを決定する、請求項1または8〜9のいずれかに記載のプロセッサ。 - 前記変換手段は、前記複数の命令コードのオペレーションコードのみを変換し、
前記複数の命令コードのオペランドは、前記命令メモリからフェッチされる命令コードに含まれる、請求項1記載のプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005284145A JP4986431B2 (ja) | 2005-09-29 | 2005-09-29 | プロセッサ |
US11/520,616 US7473293B2 (en) | 2005-09-29 | 2006-09-14 | Processor for executing instructions containing either single operation or packed plurality of operations dependent upon instruction status indicator |
US12/292,799 US20090138685A1 (en) | 2005-09-29 | 2008-11-26 | Processor for processing instruction set of plurality of instructions packed into single code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005284145A JP4986431B2 (ja) | 2005-09-29 | 2005-09-29 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007094813A JP2007094813A (ja) | 2007-04-12 |
JP4986431B2 true JP4986431B2 (ja) | 2012-07-25 |
Family
ID=37895576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005284145A Active JP4986431B2 (ja) | 2005-09-29 | 2005-09-29 | プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (2) | US7473293B2 (ja) |
JP (1) | JP4986431B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4444305B2 (ja) * | 2007-03-28 | 2010-03-31 | 株式会社東芝 | 半導体装置 |
JP2009288967A (ja) * | 2008-05-28 | 2009-12-10 | Fujitsu Ten Ltd | 信号処理装置、表示制御装置、及び、信号処理装置のレジスタ設定方法 |
US20110283089A1 (en) * | 2009-01-28 | 2011-11-17 | Harshal Ingale | modularized micro processor design |
US9275491B2 (en) * | 2010-04-05 | 2016-03-01 | Nvidia Corporation | GPU work creation and stateless graphics in OPENGL |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US8924695B2 (en) * | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9672041B2 (en) * | 2013-08-01 | 2017-06-06 | Andes Technology Corporation | Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table |
JP2019095952A (ja) | 2017-11-21 | 2019-06-20 | ソニーセミコンダクタソリューションズ株式会社 | プロセッサ、情報処理装置および処理方法 |
JP7506718B2 (ja) * | 2022-08-05 | 2024-06-26 | たけおかラボ株式会社 | ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348490A (ja) * | 1993-06-08 | 1994-12-22 | Hitachi Ltd | 演算処理方法、及びマイクロコンピュータ |
US5636352A (en) * | 1994-12-16 | 1997-06-03 | International Business Machines Corporation | Method and apparatus for utilizing condensed instructions |
JPH10116229A (ja) * | 1996-10-09 | 1998-05-06 | Toshiba Corp | データ処理装置 |
JP3585800B2 (ja) * | 1999-01-13 | 2004-11-04 | 株式会社東芝 | 情報処理装置 |
JP2002215387A (ja) * | 2001-01-22 | 2002-08-02 | Mitsubishi Electric Corp | 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置 |
JP4502532B2 (ja) * | 2001-02-23 | 2010-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3729759B2 (ja) * | 2001-08-07 | 2005-12-21 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
KR20040064713A (ko) * | 2001-11-26 | 2004-07-19 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 프로세서, 인스트럭션 세트, 인스트럭션 분배 방법 및컴파일링 방법 |
JP2004220188A (ja) * | 2003-01-10 | 2004-08-05 | Sony Corp | データ処理装置 |
JP4761808B2 (ja) * | 2005-04-11 | 2011-08-31 | 株式会社東芝 | マイクロプロセッサおよびその制御方法 |
-
2005
- 2005-09-29 JP JP2005284145A patent/JP4986431B2/ja active Active
-
2006
- 2006-09-14 US US11/520,616 patent/US7473293B2/en active Active
-
2008
- 2008-11-26 US US12/292,799 patent/US20090138685A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20090138685A1 (en) | 2009-05-28 |
JP2007094813A (ja) | 2007-04-12 |
US20070074010A1 (en) | 2007-03-29 |
US7473293B2 (en) | 2009-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4986431B2 (ja) | プロセッサ | |
US20210026634A1 (en) | Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register | |
US7051190B2 (en) | Intra-instruction fusion | |
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
JP2019032859A (ja) | 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法 | |
JP2007533006A (ja) | 複合命令形式および複合オペレーション形式を有するプロセッサ | |
US20120204008A1 (en) | Processor with a Hybrid Instruction Queue with Instruction Elaboration Between Sections | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
WO2021249054A1 (zh) | 一种数据处理方法及装置、存储介质 | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
US20040255097A1 (en) | Instruction encoding within a data processing apparatus having multiple instruction sets | |
US20200326940A1 (en) | Data loading and storage instruction processing method and device | |
KR20130045276A (ko) | 명령으로서 데이터 값을 평가하기 위한 시스템 및 방법 | |
CN116339832A (zh) | 数据处理装置、方法及处理器 | |
CN112559037B (zh) | 一种指令执行方法、单元、装置及系统 | |
JP4444305B2 (ja) | 半導体装置 | |
US11210091B2 (en) | Method and apparatus for processing data splicing instruction | |
US6988121B1 (en) | Efficient implementation of multiprecision arithmetic | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
US20130290677A1 (en) | Efficient extraction of execution sets from fetch sets | |
JP4382076B2 (ja) | データ処理装置 | |
JP4703735B2 (ja) | コンパイラ、コード生成方法、コード生成プログラム | |
KR20000003447A (ko) | 무조건 분기 명령어의 수행 시간을 줄이기 위한 분기 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080603 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111228 |
|
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: 20120417 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4986431 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150511 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |