JP5902208B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP5902208B2 JP5902208B2 JP2013558608A JP2013558608A JP5902208B2 JP 5902208 B2 JP5902208 B2 JP 5902208B2 JP 2013558608 A JP2013558608 A JP 2013558608A JP 2013558608 A JP2013558608 A JP 2013558608A JP 5902208 B2 JP5902208 B2 JP 5902208B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- branch
- data processing
- address
- 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 OR CALCULATING; 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
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
(実施の形態1)
図1は、実施の形態1に係るデータ処理装置の構成を示すブロック図である。図1に示すデータ処理装置100は、CPU1、メモリ2、命令キャッシュ3、および停止処理部4を含み、CPU1からメモリ2および命令キャッシュ3の両方にアクセスし、メモリ2または命令キャッシュ3から命令を読出す(フェッチ処理)。データ処理装置100は、メモリ2および命令キャッシュ3の両方にアクセスすることで、キャッシュミスのペナルティを減らしている。
実施の形態1に係るデータ処理装置100では、メモリ2のバス幅の2倍にあたるデータを格納することができる命令キャッシュ3を含む構成について説明した。しかし、命令キャッシュ3に格納することができるデータの容量は、メモリ2のバス幅の2倍に限定されるものではない。そこで、本実施の形態2に係るデータ処理装置では、実施の形態1に比べて格納することができるデータが大きい命令キャッシュを含む構成について説明する。
実施の形態1および2に係るデータ処理装置100,200では、CPU1の外部に設けた停止処理部4(フェッチ処理制御部)を利用してメモリ2へのアクセスを停止する構成について説明した。しかし、CPU1は、内部に含まれる命令キューに空きがある場合、メモリ2にアクセスして、当該メモリ2から命令を読出すプリフェッチ処理を行なっている。そこで、本実施の形態3に係るデータ処理装置では、CPUの内部にフェッチ処理制御部を設けて、メモリ2へのアクセスを停止する構成について説明する。
実施の形態3に係るデータ処理装置300では、ノーウェイトでメモリ2にアクセスするプリフェッチ処理の場合について説明した。しかし、データ処理装置は、メモリ2のアクセスにウェイトを設けてプリフェッチ処理を行なってもよい。そこで、本実施の形態4に係るデータ処理装置では、メモリ2のアクセスにウェイトを設けてプリフェッチ処理を行なう場合について説明する。なお、実施の形態4に係るデータ処理装置は、実施の形態3に係るデータ処理装置300と同じ構成であるため図示を繰返さず、以下、同じ構成要素に同じ符号を付して説明する。
実施の形態3および4に係るデータ処理装置300では、命令長が固定の場合について説明した。しかし、データ処理装置は、命令長が可変の場合でもよい。そこで、本実施の形態5に係るデータ処理装置では、命令長が可変の場合について説明する。なお、実施の形態5に係るデータ処理装置は、実施の形態3に係るデータ処理装置300と同じ構成であるため図示を繰返さず、以下、同じ構成要素に同じ符号を付して説明する。
命令キュー11は、命令長が可変の命令の場合、命令デコーダ12で命令をデコードして命令長を得るまでに時間がかかると、プリデコーダ15が無駄なプリフェッチ処理を停止する処理が行なえない場合が考えられる。そこで、変形例に係るプリデコーダでは、ラインに含まれる複数の命令のすべてについて、記憶部に予め記憶してある分岐命令(停止対象命令)と比較して分岐命令であるか否かを判定している。
本実施の形態6に係るデータ処理装置は、プリデコーダ15の記憶部151に予め記憶してある分岐命令(停止対象命令)のすべてを、常に分岐命令として判定してプリフェッチ処理を停止するのではなく、動的に変更することが可能な構成について説明する。
実施の形態1に係るデータ処理装置100では、CPU1の外部に設けた停止処理部4(フェッチ処理制御部)を利用してメモリ2へのアクセスを停止する構成について説明した。実施の形態3に係るデータ処理装置300では、CPU1の内部に設けたプリデコーダ15(フェッチ処理制御部)を利用してメモリ2へのアクセスを停止する構成について説明した。本実施の形態7に係るデータ処理装置では、両者を組合わせたフェッチ処理制御部を設けて、メモリ2へのアクセスを停止する構成について説明する。
Claims (11)
- 複数の命令により記述してあるプログラムを記憶するメモリと、
前記プログラムに含まれる分岐命令を実行するときにのみ動作し、前記メモリのバス幅より大きい容量のデータを、前記メモリから読出して予め格納しておく命令キャッシュと、
前記メモリおよび前記命令キャッシュの両方にアクセスし、前記メモリまたは前記命令キャッシュから読出した命令をパイプラインで実行する演算処理部と、
前記メモリから命令を読出すフェッチ処理を停止するための停止信号を生成し、前記メモリに出力するフェッチ処理制御部とを備え、
前記命令キャッシュは、
前記演算処理部で分岐命令を実行するとき、前記メモリにアクセスするアドレスと、予め格納してある命令のアドレスとを比較して一致した場合、当該分岐命令に対する分岐先の命令を格納してあると判定する比較器を含み、
前記フェッチ処理制御部は、
前記比較器が前記命令キャッシュに分岐先の命令を格納してあると判定した場合、前記命令キャッシュに格納してある命令を読出す期間、前記フェッチ処理を停止するための停止信号を生成し、前記メモリに出力する停止処理部であり、
前記比較器は、アドレスが一致した命令に応じて、前記命令キャッシュに格納してある命令を読出すことが可能な回数をヒット量としてカウントし、
前記停止処理部は、前記ヒット量を初期値としてカウンダウンすることで前記メモリへのアクセスを停止する期間を設定するカウンタを含む、データ処理装置。 - 前記停止処理部は、分岐先の命令がさらに分岐する場合、前記メモリへのアクセスを停止する処理をキャンセルする、請求項1に記載のデータ処理装置。
- 前記命令キャッシュは、前記メモリのバス幅のN倍の容量を有し、
前記停止処理部は、前記メモリへアクセスする回数を最大N−1回停止する、請求項1に記載のデータ処理装置。 - 前記演算処理部は、
前記メモリから命令を予め読出して格納しておく命令キューと、
前記命令キューに格納した命令を順次読出して、命令をデコードする命令デコーダと、
前記命令デコーダでデコードした命令を実行する命令実行部と、
前記命令キューからの読出し要求を前記メモリに出力する命令フェッチインターフェース部と、
前記命令デコーダで次にデコードする命令が分岐命令か否かを判定し、当該命令が分岐命令であれば、前記フェッチ処理を停止するための停止信号を生成し、前記命令フェッチインターフェース部に出力するプリデコーダとを含み、
前記フェッチ処理制御部は、前記プリデコーダである、請求項1に記載のデータ処理装置。 - 前記プリデコーダは、前記フェッチ処理を停止させた後、判定した分岐命令を前記命令実行部で実行するときに前記フェッチ処理を再開する、請求項4に記載のデータ処理装置。
- 前記プリデコーダは、前記命令デコーダで次にデコードする命令と、予め記憶してある停止対象命令とを比較することで、命令が分岐命令か否かを判定する、請求項4に記載のデータ処理装置。
- 前記メモリは、命令を読出すときに予め定められたウェイト期間を必要とする、請求項4に記載のデータ処理装置。
- 前記プリデコーダは、命令長が各命令により異なる場合、前記命令デコーダで命令をデコードした結果より得られる命令長により、次にデコードする命令を前記命令キューから選択して読出す、請求項6に記載のデータ処理装置。
- 前記プリデコーダは、読出した複数の命令のそれぞれについて、分岐命令か否かを並列に判定する複数のサブプリデコーダを有する、請求項8に記載のデータ処理装置。
- 前記プリデコーダは、前記命令デコーダで次にデコードする命令が分岐命令であると判定した場合であっても、前記フェッチ処理を停止するための停止信号を生成しないビット情報を、前記停止対象命令ごとに付加する、請求項6に記載のデータ処理装置。
- 前記命令キャッシュは、
前記演算処理部で分岐命令を実行するとき、前記メモリにアクセスするアドレスと、予め格納してある命令のアドレスとを比較して一致した場合、当該分岐命令に対する分岐先の命令を格納してあると判定する比較器を含み、
前記演算処理部は、
前記メモリから命令を予め読出して格納しておく命令キューと、
前記命令キューに格納した命令を順次読出して、命令をデコードする命令デコーダと、
前記命令デコーダでデコードした命令を実行する命令実行部と、
前記命令キューからの読出し要求を前記メモリおよび前記命令キャッシュに出力する命令フェッチインターフェース部とを含み、
前記フェッチ処理制御部は、
前記比較器が前記命令キャッシュに分岐先の命令を格納してあると判定した場合、前記命令キャッシュに格納してある命令を読出す期間、前記フェッチ処理を停止するための停止信号を生成し、前記メモリに出力する停止処理部と、
前記演算処理部内に設けてあり、前記命令デコーダで次にデコードする命令が分岐命令か否かを判定し、当該命令が分岐命令であれば、前記フェッチ処理を停止するための停止信号を生成し、前記メモリに出力するプリデコーダとを含む、請求項1に記載のデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013558608A JP5902208B2 (ja) | 2012-02-14 | 2012-02-14 | データ処理装置 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2012/053347 WO2013121516A1 (ja) | 2012-02-14 | 2012-02-14 | データ処理装置 |
| JP2013558608A JP5902208B2 (ja) | 2012-02-14 | 2012-02-14 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2013121516A1 JPWO2013121516A1 (ja) | 2015-05-11 |
| JP5902208B2 true JP5902208B2 (ja) | 2016-04-13 |
Family
ID=48983680
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013558608A Expired - Fee Related JP5902208B2 (ja) | 2012-02-14 | 2012-02-14 | データ処理装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9542190B2 (ja) |
| EP (1) | EP2816466B1 (ja) |
| JP (1) | JP5902208B2 (ja) |
| CN (1) | CN104106046B (ja) |
| WO (1) | WO2013121516A1 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6252348B2 (ja) * | 2014-05-14 | 2017-12-27 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
| CN111625482B (zh) * | 2016-03-23 | 2022-02-01 | 北京忆恒创源科技股份有限公司 | 顺序流检测方法与装置 |
| GB2548871B (en) * | 2016-03-31 | 2019-02-06 | Advanced Risc Mach Ltd | Instruction prefetching |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04233642A (ja) * | 1990-07-27 | 1992-08-21 | Dell Usa Corp | キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法 |
| JPH0527972A (ja) | 1991-07-18 | 1993-02-05 | Matsushita Electric Ind Co Ltd | 命令プリフエツチ装置 |
| JPH06161750A (ja) | 1992-11-26 | 1994-06-10 | Fujitsu Ltd | 命令フェッチ制御方法及び命令処理装置 |
| JP2748822B2 (ja) * | 1993-07-05 | 1998-05-13 | 日本電気株式会社 | 情報処理装置 |
| JPH11306016A (ja) * | 1998-04-16 | 1999-11-05 | Japan Radio Co Ltd | レジスタ間接分岐命令及び条件付き分岐命令実行方法 |
| JP2000357090A (ja) | 1999-06-15 | 2000-12-26 | Nec Corp | マイクロコンピュータおよびキャッシュ制御方法 |
| JP2001142698A (ja) | 1999-11-12 | 2001-05-25 | Mitsubishi Electric Corp | メモリアクセス方式 |
| JP2003162446A (ja) * | 2001-11-27 | 2003-06-06 | Nec Electronics Corp | マイクロコンピュータ |
| JP3986950B2 (ja) * | 2002-11-22 | 2007-10-03 | シャープ株式会社 | Cpuおよびこれを備えた情報処理装置、cpuの制御方法 |
| TWI242744B (en) * | 2003-01-14 | 2005-11-01 | Ip First Llc | Apparatus, pipeline microprocessor and method for avoiding deadlock condition and storage media with a program for avoiding deadlock condition |
| JP2006048258A (ja) | 2004-08-03 | 2006-02-16 | Renesas Technology Corp | データプロセッサ |
| JP4393317B2 (ja) * | 2004-09-06 | 2010-01-06 | 富士通マイクロエレクトロニクス株式会社 | メモリ制御回路 |
| US7587580B2 (en) | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
| US7447883B2 (en) * | 2006-08-10 | 2008-11-04 | Arm Limited | Allocation of branch target cache resources in dependence upon program instructions within an instruction queue |
| JP2008052518A (ja) | 2006-08-24 | 2008-03-06 | Digital Electronics Corp | Cpuシステム |
| JP4864840B2 (ja) * | 2007-08-31 | 2012-02-01 | 株式会社東芝 | マイクロプロセッサ |
-
2012
- 2012-02-14 CN CN201280069647.9A patent/CN104106046B/zh not_active Expired - Fee Related
- 2012-02-14 US US14/378,609 patent/US9542190B2/en not_active Expired - Fee Related
- 2012-02-14 WO PCT/JP2012/053347 patent/WO2013121516A1/ja not_active Ceased
- 2012-02-14 EP EP12868386.9A patent/EP2816466B1/en not_active Not-in-force
- 2012-02-14 JP JP2013558608A patent/JP5902208B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20150058600A1 (en) | 2015-02-26 |
| EP2816466A4 (en) | 2015-09-23 |
| JPWO2013121516A1 (ja) | 2015-05-11 |
| US9542190B2 (en) | 2017-01-10 |
| CN104106046B (zh) | 2018-05-15 |
| WO2013121516A1 (ja) | 2013-08-22 |
| EP2816466A1 (en) | 2014-12-24 |
| EP2816466B1 (en) | 2019-01-16 |
| CN104106046A (zh) | 2014-10-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7487340B2 (en) | Local and global branch prediction information storage | |
| KR101183651B1 (ko) | 실행 유닛 내의 데이터 전달을 위한 시스템 및 방법 | |
| US9361110B2 (en) | Cache-based pipline control method and system with non-prediction branch processing using a track table containing program information from both paths of a branch instruction | |
| US9396117B2 (en) | Instruction cache power reduction | |
| CN112230992B (zh) | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 | |
| US7594131B2 (en) | Processing apparatus | |
| US20120210107A1 (en) | Predicated issue for conditional branch instructions | |
| US20070288733A1 (en) | Early Conditional Branch Resolution | |
| JP2018005488A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| JP6457836B2 (ja) | プロセッサおよび命令コード生成装置 | |
| US7877578B2 (en) | Processing apparatus for storing branch history information in predecode instruction cache | |
| JP5159258B2 (ja) | 演算処理装置 | |
| JP5902208B2 (ja) | データ処理装置 | |
| US7730288B2 (en) | Method and apparatus for multiple load instruction execution | |
| JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
| US20070288732A1 (en) | Hybrid Branch Prediction Scheme | |
| US8874884B2 (en) | Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold | |
| US20070288731A1 (en) | Dual Path Issue for Conditional Branch Instructions | |
| US20060095746A1 (en) | Branch predictor, processor and branch prediction method | |
| US20070288734A1 (en) | Double-Width Instruction Queue for Instruction Execution | |
| JP5209390B2 (ja) | 情報処理装置及び命令フェッチ制御方法 | |
| JP2008165589A (ja) | 情報処理装置 | |
| JP4002288B2 (ja) | 情報処理装置 | |
| JP2007310668A (ja) | マイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150731 |
|
| 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: 20160301 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160309 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5902208 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |