JP5333433B2 - 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム - Google Patents
低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム Download PDFInfo
- Publication number
- JP5333433B2 JP5333433B2 JP2010500628A JP2010500628A JP5333433B2 JP 5333433 B2 JP5333433 B2 JP 5333433B2 JP 2010500628 A JP2010500628 A JP 2010500628A JP 2010500628 A JP2010500628 A JP 2010500628A JP 5333433 B2 JP5333433 B2 JP 5333433B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instruction stream
- stream
- priority
- long
- 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 27
- 230000015654 memory Effects 0.000 claims abstract description 150
- 230000008859 change Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 6
- 238000007616 round robin method Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000006467 substitution reaction 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
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
各命令流に命令流優先度を設定し、各命令流が使用するメモリバンクの数を示すバンク数情報と、各命令流の命令アドレスとに基づき、各命令流が使用するメモリバンクを全メモリバンクの中から特定し、複数命令流が同一メモリバンクを使用する場合には、前記命令流優先度に基づき、優先度の高い命令流から順に、命令流が使用するメモリバンクを決定し、当該命令流の命令アドレスを当該メモリバンクに供給することを特徴とする超長命令語実行方法が提供される。
2 プログラムメモリ
3 データメモリ
11 命令供給ユニット
12 演算ユニット
13 レジスタユニット
101 アドレス供給装置
102 命令キャッシュ
103 命令セレクタ
104 加算器群104
Claims (23)
- 複数個の命令から構成される超長命令語を実行するプロセッサであって、M個の命令流の前記超長命令語を格納する複数のメモリバンクを備えるN(N<M)個の命令キャッシュから、最大M個の命令流の前記超長命令語を同時にフェッチする際に、
各命令流に命令流優先度を設定し、各命令流が使用するメモリバンクの数を示すバンク数情報と、各命令流の命令アドレスとに基づき、各命令流が使用するメモリバンクを全メモリバンクの中から特定し、複数命令流が同一メモリバンクを使用する場合には、前記命令流優先度に基づき、優先度の高い命令流から順に、命令流が使用するメモリバンクを決定し、当該命令流の命令アドレスを当該メモリバンクに供給するアドレス供給装置を備えることを特徴とするプロセッサ。 - 前記バンク数情報が、前サイクルにフェッチされた、前記超長命令語の一部のフィールドであることを特徴とする請求項1に記載のプロセッサ。
- 前記バンク数情報が、命令流の最初の命令をフェッチする場合に、命令流毎に固定数であることを特徴とする請求項1又は2に記載のプロセッサ。
- 前記超長命令語に分岐命令が含まれる場合に、各分岐結果に対応する複数のバンク数情報が、前サイクルにフェッチされた前記超長命令語の一部のフィールドであることを特徴とする請求項1乃至3の何れか1項に記載のプロセッサ。
- 各分岐結果に対応する複数の前記バンク数情報は2つであり、それぞれ、分岐が成立した場合又は不成立した場合のバンク数情報として、用いられることを特徴とする請求項4に記載のプロセッサ。
- 前記超長命令語に分岐命令が含まれる場合に、一つのバンク数情報と固定数が、それぞれ、分岐成立時または不成立時のバンク数情報として用いられ、前記一つのバンク数情報が、前サイクルにフェッチされた前記超長命令語の一部のフィールドであり、前記固定数は、外部の制御信号又はバンク数情報の変更命令により、設定される数値であることを特徴とする請求項4又は5に記載のプロセッサ。
- 前記バンク数情報が、命令流毎に固定数であり、前記固定数は、外部からのバンク数制御信号又はバンク数情報の変更命令により、設定及び変更されることを特徴とする請求項1に記載のプロセッサ。
- 前記バンク数情報が、命令流毎に用意されたメモリに格納され、前記メモリは、各命令流の命令アドレスに基づいて参照されることを特徴とする請求項1に記載のプロセッサ。
- 前記命令流優先度は、命令流毎に固定値であり、当該固定値は、外部からの命令流優先度制御信号、命令流優先度の変更命令、前サイクルにフェッチされた超長命令語の一部のフィールドである命令流優先度変更フラグ、の何れかにより設定及び変更されることを特徴とする請求項1乃至8の何れか1項に記載のプロセッサ。
- 前記命令流優先度は、ラウンドロビン方式により決定され、最も高い優先度を与える命令流や優先度が変化する順序が、外部からの制御信号、命令流優先度の変更命令、前サイクルにフェッチされた超長命令語の一部のフィールドである命令流優先度変更フラグ、の何れかにより設定及び変更されることを特徴とする請求項1乃至8の何れか1項に記載のプロセッサ。
- 前サイクルにフェッチされた超長命令語の一部のフィールドである優先度ポインタにより、前記ラウンドロビン方式で、最も高い前記命令流優先度を持つ命令流を設定することを特徴とする請求項10に記載のプロセッサ。
- 各命令流の命令がフェッチされた又はされなかった回数に基づき、命令流優先度が変更されることを特徴とする請求項1乃至11の何れか1項に記載のプロセッサ。
- 各命令流の命令がフェッチされた回数の少ない順に、より高い命令流優先度を与えることを特徴とする請求項1乃至12の何れか1項に記載のプロセッサ。
- 前記命令流優先度は、各命令流の命令がフェッチされなかった回数が多い順に、より高い優先度を与えることを特徴とする請求項1乃至12の何れか1項に記載のプロセッサ。
- 前記命令流優先度は、特定の命令流では固定値であり、それ以外の命令流については、ラウンドロビン方式、前サイクルにフェッチされた超長命令語の一部のフィールドである命令流優先度フラグ、命令流の命令がフェッチされた回数の少ない順により高い優先度、命令流の命令がフェッチされなかった回数が多い順により高い優先度、の何れか又はその組合せにより決定されることを特徴とする請求項1乃至14の何れか1項に記載のプロセッサ。
- 命令流毎に、各命令流が使用するメモリバンク数を指定できるプログラミング手段又はコンパイラを備えることを特徴とする請求項1乃至14の何れか1項に記載のプロセッサ。
- 命令流毎に、各命令流が使用するメモリバンクを指定できるプログラミング手段又はコンパイラを備えることを特徴とする請求項1乃至14の何れか1項に記載のプロセッサ。
- 前記命令アドレスは、各命令流の超長命令語がフェッチされた場合に、前記命令アドレスに、フェッチした超長命令語の長さに応じた値と、命令流毎の命令流オフセットとを加算した値が、次サイクルにおける当該命令流の命令アドレスとなることを特徴とする請求項1乃至17の何れか1項に記載のプロセッサ。
- 前記命令流オフセットは、前記プログラミング手段又は前記コンパイラによって、設定されることを特徴とする請求項18に記載のプロセッサ。
- 前記命令流オフセットは、命令流毎に固定数であり、当該前記固定数は、外部からの命令流オフセット制御信号、命令流オフセットの変更命令、前サイクルにフェッチされた超長命令語の一部のフィールドである命令流オフセット変更フラグ、の何れかにより設定、変更されることを特徴とする請求項19に記載のプロセッサ。
- 前記命令流オフセット制御信号、命令流オフセットの変更命令、命令流オフセット変更フラグは、前記プログラミング手段又は前記コンパイラによって、設定されることを特徴とする請求項18乃至20の何れか1項に記載のプロセッサ。
- プロセッサを用いて複数個の命令から構成される超長命令語を実行する超長命令語実行方法であって、M個の命令流の前記超長命令語を格納する複数のメモリバンクを備えるN(N<M)個の命令キャッシュから、最大M個の命令流の前記超長命令語を同時にフェッチする際に、
各命令流に命令流優先度を設定し、各命令流が使用するメモリバンクの数を示すバンク数情報と、各命令流の命令アドレスとに基づき、各命令流が使用するメモリバンクを全メモリバンクの中から特定し、複数命令流が同一メモリバンクを使用する場合には、前記命令流優先度に基づき、優先度の高い命令流から順に、命令流が使用するメモリバンクを決定し、当該命令流の命令アドレスを当該メモリバンクに供給することを特徴とする超長命令語実行方法。 - 複数個の命令から構成される超長命令語を実行するプロセッサが備えるアドレス供給装置としてコンピュータを機能させるための超長命令語実行プログラムであって、
前記プロセッサがM個の命令流の前記超長命令語を格納する複数のメモリバンクを備えるN(N<M)個の命令キャッシュから、最大M個の命令流の前記超長命令語を同時にフェッチする際に、
各命令流に命令流優先度を設定し、各命令流が使用するメモリバンクの数を示すバンク数情報と、各命令流の命令アドレスとに基づき、各命令流が使用するメモリバンクを全メモリバンクの中から特定し、複数命令流が同一メモリバンクを使用する場合には、前記命令流優先度に基づき、優先度の高い命令流から順に、命令流が使用するメモリバンクを決定し、当該命令流の命令アドレスを当該メモリバンクに供給するアドレス供給装置として前記コンピュータを機能させることを特徴とする超長命令語実行プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010500628A JP5333433B2 (ja) | 2008-02-26 | 2009-02-03 | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008044274 | 2008-02-26 | ||
JP2008044274 | 2008-02-26 | ||
JP2010500628A JP5333433B2 (ja) | 2008-02-26 | 2009-02-03 | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム |
PCT/JP2009/051753 WO2009107462A1 (ja) | 2008-02-26 | 2009-02-03 | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009107462A1 JPWO2009107462A1 (ja) | 2011-06-30 |
JP5333433B2 true JP5333433B2 (ja) | 2013-11-06 |
Family
ID=41015865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010500628A Active JP5333433B2 (ja) | 2008-02-26 | 2009-02-03 | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8745359B2 (ja) |
JP (1) | JP5333433B2 (ja) |
WO (1) | WO2009107462A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117348932B (zh) * | 2023-12-04 | 2024-03-15 | 中科亿海微电子科技(苏州)有限公司 | 支持axi深度乱序传输的从机装置及工作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04123230A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | データ処理装置 |
JPH07121371A (ja) * | 1993-10-25 | 1995-05-12 | Nkk Corp | 複数命令同時取込み機構 |
JPH10116191A (ja) * | 1996-10-14 | 1998-05-06 | Hitachi Ltd | 圧縮命令用バッファを備えたプロセッサ |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404469A (en) | 1992-02-25 | 1995-04-04 | Industrial Technology Research Institute | Multi-threaded microprocessor architecture utilizing static interleaving |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
JPH09190348A (ja) | 1996-01-09 | 1997-07-22 | Matsushita Electric Ind Co Ltd | 命令プリフェッチバッファ制御方法、命令プリフェッチバッファ制御装置、及び命令プリフェッチバッファフラッシュ方法 |
US6282505B1 (en) | 1996-02-16 | 2001-08-28 | Hitachi, Ltd. | Multi-port memory and a data processor accessing the same |
JP3760035B2 (ja) | 1996-08-27 | 2006-03-29 | 松下電器産業株式会社 | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
US6170051B1 (en) * | 1997-08-01 | 2001-01-02 | Micron Technology, Inc. | Apparatus and method for program level parallelism in a VLIW processor |
JP2000222208A (ja) | 1999-01-29 | 2000-08-11 | Mitsubishi Electric Corp | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 |
CN1168025C (zh) | 1999-03-10 | 2004-09-22 | 国际商业机器公司 | 用于多线程处理机的指令高速缓存器 |
US7096343B1 (en) * | 2000-03-30 | 2006-08-22 | Agere Systems Inc. | Method and apparatus for splitting packets in multithreaded VLIW processor |
US6658551B1 (en) | 2000-03-30 | 2003-12-02 | Agere Systems Inc. | Method and apparatus for identifying splittable packets in a multithreaded VLIW processor |
US6549987B1 (en) * | 2000-11-16 | 2003-04-15 | Intel Corporation | Cache structure for storing variable length data |
JP3796124B2 (ja) * | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
US6968546B2 (en) * | 2001-03-30 | 2005-11-22 | Intel Corporation | Debugging support using dynamic re-compilation |
US6898694B2 (en) * | 2001-06-28 | 2005-05-24 | Intel Corporation | High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle |
AU2003263491A1 (en) * | 2002-10-11 | 2004-05-04 | Koninklijke Philips Electronics N.V. | Vliw processor with instruction address modification |
US7490230B2 (en) * | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
JP2006343872A (ja) | 2005-06-07 | 2006-12-21 | Keio Gijuku | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 |
GB2430773A (en) | 2005-10-03 | 2007-04-04 | Advanced Risc Mach Ltd | Alignment of variable length program instructions |
-
2009
- 2009-02-03 WO PCT/JP2009/051753 patent/WO2009107462A1/ja active Application Filing
- 2009-02-03 JP JP2010500628A patent/JP5333433B2/ja active Active
- 2009-02-03 US US12/919,448 patent/US8745359B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04123230A (ja) * | 1990-09-14 | 1992-04-23 | Hitachi Ltd | データ処理装置 |
JPH07121371A (ja) * | 1993-10-25 | 1995-05-12 | Nkk Corp | 複数命令同時取込み機構 |
JPH10116191A (ja) * | 1996-10-14 | 1998-05-06 | Hitachi Ltd | 圧縮命令用バッファを備えたプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US20110010527A1 (en) | 2011-01-13 |
US8745359B2 (en) | 2014-06-03 |
JPWO2009107462A1 (ja) | 2011-06-30 |
WO2009107462A1 (ja) | 2009-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101966712B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 | |
KR100497078B1 (ko) | 프로그램 제품 및 데이터 처리장치 | |
US11989555B2 (en) | Instructions for remote atomic operations | |
KR101638225B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 | |
KR101620676B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트 | |
CN105701022B (zh) | 组相联高速缓存 | |
TWI764966B (zh) | 用於控制矢量記憶體存取之資料處理裝置及方法 | |
CN110347431A (zh) | 自适应空间访问预取器装置和方法 | |
US20240028338A1 (en) | Histogram operation | |
US11074080B2 (en) | Apparatus and branch prediction circuitry having first and second branch prediction schemes, and method | |
US10402199B2 (en) | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor | |
US11042502B2 (en) | Vector processing core shared by a plurality of scalar processing cores for scheduling and executing vector instructions | |
JP5333433B2 (ja) | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム | |
WO2008043287A1 (en) | Configurable single instruction multiple data unit | |
JP2020502669A (ja) | ベクトル生成命令 | |
CN109582367A (zh) | 一种带有流水线时分复用调度器的处理器结构 | |
CN116635841A (zh) | 寄存器的近存储器确定 | |
CN115398393A (zh) | 在粗粒度可重构阵列处理器中处理多个图、上下文和程序 | |
JP2002024008A (ja) | データ処理装置およびプログラム変換装置 | |
US12013781B2 (en) | Processing device using variable stride pattern | |
JP6191457B2 (ja) | 演算処理装置、演算処理方法 | |
US8046569B2 (en) | Processing element having dual control stores to minimize branch latency | |
JP4560705B2 (ja) | データ処理装置の制御方法 | |
JP2005535045A (ja) | Vliw命令を処理するためのプロセッサおよび方法 | |
WO2024123417A1 (en) | Branch target buffer with shared target bits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130409 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130610 |
|
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: 20130702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5333433 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |