JP2013200873A - ループのプロローグまたはエピローグの無効演算を処理する装置及び方法 - Google Patents
ループのプロローグまたはエピローグの無効演算を処理する装置及び方法 Download PDFInfo
- Publication number
- JP2013200873A JP2013200873A JP2013060774A JP2013060774A JP2013200873A JP 2013200873 A JP2013200873 A JP 2013200873A JP 2013060774 A JP2013060774 A JP 2013060774A JP 2013060774 A JP2013060774 A JP 2013060774A JP 2013200873 A JP2013200873 A JP 2013200873A
- Authority
- JP
- Japan
- Prior art keywords
- data
- destination
- validity
- input source
- valid
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical 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
-
- 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
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30105—Register structure
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
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)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】 本発明は、ソフトウェアパイプライン化されたループのプロローグまたはエピローグで無効演算を処理する装置に関するものである。本発明の一実施形態による無効演算処理装置は、データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルと、そのレジスタファイルから入力される1つ以上の入力ソースの第1領域値に基づいて、演算の非有効性を判断し、第1領域値に基づいた値を含むデスティネーションを出力する機能ユニットと、を含みうる。
【選択図】 図1
Description
110 レジスタファイル
111 第1領域
112 第2領域
120 機能ユニット
130 制御部
Claims (22)
- データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルと、
前記レジスタファイルから入力される1つ以上の入力ソースの第1領域値に基づいて、演算の有効性を判断し、前記1つ以上の入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する機能ユニットと、
を含むループのプロローグまたはエピローグで無効演算を処理する装置。 - 前記機能ユニットは、
前記入力ソースの第1領域の値をAND演算して、その演算の有効性を判断する請求項1に記載の装置。 - 前記機能ユニットは、
前記入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断する請求項2に記載の装置。 - 前記デスティネーションの第1領域値に基づいて、そのデスティネーションに対する前記レジスタファイルへの書き込み要請を処理する制御部をさらに含む請求項1乃至3のいずれか一項に記載の装置。
- 前記制御部は、
前記デスティネーションの第1領域値と書き込み許容(Write Enable、WE)信号をAND演算して、その結果によって、前記書き込み要請を処理する請求項4に記載の装置。 - 前記制御部は、
リセット要請に応じて、前記レジスタファイル内の第1領域をリセットする請求項4又は5に記載の装置。 - 前記制御部は、
前記リセット要請に応じて、VLIW(Very Long InstructionWord)モードからCGRA(Coarse Grained Reconfigurable Array)モードに伝送されるレジスタ値は除いてリセットする請求項6に記載の装置。 - データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルから1つ以上の入力ソースが機能ユニットに入力される段階と、
前記機能ユニットが、前記各入力ソースの第1領域値に基づいて、演算の有効性を判断する段階と、
前記機能ユニットが、前記各入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する段階と、
を含むループのプロローグまたはエピローグで無効演算を処理する方法。 - 前記演算の有効性を判断する段階は、
前記入力ソースの第1領域の値をAND演算して、その演算の有効性を判断する請求項8に記載の方法。 - 前記演算の有効性を判断する段階は、
前記入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断する請求項9に記載の方法。 - 前記デスティネーションの第1領域値に基づいて、そのデスティネーションの前記レジスタファイルへの記録を要請する、書き込み要請処理段階をさらに含む請求項8乃至10のいずれか一項に記載の方法。
- 前記デスティネーションの書き込み要請処理段階は、
前記デスティネーションの第1領域値と書き込み許容(WE)信号をAND演算して、その結果によって、前記書き込み要請を処理する請求項11に記載の方法。 - データと、そのデータが有効であるか否かを指示するデータの有効情報を保存するレジスタファイルと、
前記レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを入力されて、そのデータの演算を行い、その入力ソースのデータの有効情報に基づいて、演算が有効であるか否かを決定して、その演算の有効性を指示する演算の有効情報が含まれたデスティネーションを出力する機能ユニットと、
を含むループのプロローグまたはエピローグで無効演算を処理する装置。 - 前記機能ユニットは、
入力ソースのデータの有効情報についての演算を行うことによって、その演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記入力ソースのデータの有効情報に対して行われた演算の結果を含む請求項13に記載の装置。 - 前記入力ソースのデータは、複数のデータビットを含み、前記データの有効情報は、データ有効ビットを含む請求項13又は14に記載の装置。
- 前記デスティネーションは、
前記入力ソースのデータに対する演算の遂行結果、データを含む請求項13乃至15のいずれか一項に記載の装置。 - 前記機能ユニットは、
レジスタファイルからデータとそのデータの有効情報とを含む複数の入力ソースを受信し、該受信されたあらゆる入力ソースに対する演算を行い、受信されたあらゆる入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力する請求項13乃至16のいずれか一項に記載の装置。 - 前記機能ユニットは、
あらゆる入力ソースのデータの有効情報についてのAND演算を行うことによって、演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記AND演算の結果を含む請求項17に記載の装置。 - 前記機能ユニットは、
プレディケートを受信し、
レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを受信して、該受信された入力ソースに対する演算を行い、受信された入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力する請求項13乃至18のいずれか一項に記載の装置。 - 前記機能ユニットは、
前記プレディケートと前記入力ソースのデータの有効情報をAND演算して、演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記プレディケートと入力ソースのデータの有効情報をAND演算した結果を含む請求項19に記載の装置。 - 前記デスティネーションの演算の有効情報に基づいて、前記レジスタファイルにそのデスティネーションを記録するように要請する書き込み要請を処理する制御部をさらに含む請求項13乃至20のいずれか一項に記載の装置。
- 前記制御部は、
前記デスティネーションの演算の有効情報と書き込み許容(WE)信号のAND演算を行い、そのAND演算の結果に基づいて、デスティネーションをレジスタファイルに記録するか否かを判断する請求項21に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0030695 | 2012-03-26 | ||
KR1020120030695A KR101910934B1 (ko) | 2012-03-26 | 2012-03-26 | 루프의 프롤로그 또는 에필로그의 비유효 연산을 처리하는 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013200873A true JP2013200873A (ja) | 2013-10-03 |
JP6254352B2 JP6254352B2 (ja) | 2017-12-27 |
Family
ID=49213456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013060774A Active JP6254352B2 (ja) | 2012-03-26 | 2013-03-22 | ループのプロローグまたはエピローグの無効演算を処理する装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9411582B2 (ja) |
JP (1) | JP6254352B2 (ja) |
KR (1) | KR101910934B1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11507493B1 (en) * | 2021-08-18 | 2022-11-22 | Micron Technology, Inc. | Debugging dataflow computer architectures |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003108387A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | ソフトウエア・パイプライニング処理方法及びソフトウエア・パイプライニング処理装置 |
US20040088526A1 (en) * | 2002-10-30 | 2004-05-06 | Stmicroelectronics, Inc. | Predicated execution using operand predicates |
US20070288930A1 (en) * | 2006-06-12 | 2007-12-13 | Samsung Electronics Co., Ltd. | Multitasking method and apparatus for reconfigurable array |
JP2009530924A (ja) * | 2006-03-17 | 2009-08-27 | アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ | 再構成可能なマルチ処理粗粒アレイ |
US20100268862A1 (en) * | 2009-04-20 | 2010-10-21 | Park Jae-Un | Reconfigurable processor and method of reconfiguring the same |
US20110099555A1 (en) * | 2009-10-23 | 2011-04-28 | Samsung Electronics Co., Ltd. | Reconfigurable processor and method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3006204B2 (ja) * | 1991-09-13 | 2000-02-07 | 松下電器産業株式会社 | 情報処理装置 |
US5560003A (en) | 1992-12-21 | 1996-09-24 | Iowa State University Research Foundation, Inc. | System and hardware module for incremental real time garbage collection and memory management |
JPH1185512A (ja) | 1997-09-03 | 1999-03-30 | Fujitsu Ltd | 命令圧縮格納および命令復元機能を有するデータ処理装置 |
KR100337149B1 (ko) * | 2000-07-05 | 2002-05-18 | 권 기 홍 | 프로그램 테스트 및 디버깅이 용이한 중앙처리장치 |
US6925550B2 (en) * | 2002-01-02 | 2005-08-02 | Intel Corporation | Speculative scheduling of instructions with source operand validity bit and rescheduling upon carried over destination operand invalid bit detection |
US20030145309A1 (en) | 2002-01-18 | 2003-07-31 | Rajendra Inamdar | Probe description language |
US6986131B2 (en) | 2002-06-18 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficient code generation for modulo scheduled uncounted loops |
US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
-
2012
- 2012-03-26 KR KR1020120030695A patent/KR101910934B1/ko active IP Right Grant
-
2013
- 2013-03-15 US US13/832,291 patent/US9411582B2/en active Active
- 2013-03-22 JP JP2013060774A patent/JP6254352B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003108387A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | ソフトウエア・パイプライニング処理方法及びソフトウエア・パイプライニング処理装置 |
US20040088526A1 (en) * | 2002-10-30 | 2004-05-06 | Stmicroelectronics, Inc. | Predicated execution using operand predicates |
JP2009530924A (ja) * | 2006-03-17 | 2009-08-27 | アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ | 再構成可能なマルチ処理粗粒アレイ |
US20070288930A1 (en) * | 2006-06-12 | 2007-12-13 | Samsung Electronics Co., Ltd. | Multitasking method and apparatus for reconfigurable array |
US20100268862A1 (en) * | 2009-04-20 | 2010-10-21 | Park Jae-Un | Reconfigurable processor and method of reconfiguring the same |
US20110099555A1 (en) * | 2009-10-23 | 2011-04-28 | Samsung Electronics Co., Ltd. | Reconfigurable processor and method |
Non-Patent Citations (2)
Title |
---|
IA-64 APPLICATION INSTRUCTION SET ARCHITECTURE GUIDE REVISION 1.0, JPN6017008621, 1999, pages Pages:3-1〜3-3, 4-5〜4-11 * |
中西知嘉子,安藤秀樹,原哲也,中屋雅夫: "パス選択によるソフトウェアパイプライニング", 電子情報通信学会論文誌, vol. Vol:J80-D-I,No:9, JPN6017043576, 25 September 1997 (1997-09-25), JP, pages Pages:774〜786 * |
Also Published As
Publication number | Publication date |
---|---|
KR101910934B1 (ko) | 2018-12-28 |
US20130254517A1 (en) | 2013-09-26 |
JP6254352B2 (ja) | 2017-12-27 |
US9411582B2 (en) | 2016-08-09 |
KR20130108878A (ko) | 2013-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI594117B (zh) | 剖析應用程式碼以識別用於fpga實施之程式碼部份 | |
JP5707011B2 (ja) | 統合分岐先・述語予測 | |
US20140165208A1 (en) | Method and apparatus for dynamic obfuscation of static data | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
US20140317628A1 (en) | Memory apparatus for processing support of long routing in processor, and scheduling apparatus and method using the memory apparatus | |
JP2011096254A (ja) | 乗累算演算を実行するための装置および方法 | |
JP6744199B2 (ja) | 命令を処理するための複数の実行ユニットを備えるプロセッサ、プロセッサを使用して命令を処理するための方法、およびプロセッサの設計プロセスにおいて使用される設計構造 | |
JP2011086298A (ja) | プログラム・フロー制御 | |
JP2014216021A (ja) | バッチスレッド処理のためのプロセッサ、コード生成装置及びバッチスレッド処理方法 | |
US9921838B2 (en) | System and method for managing static divergence in a SIMD computing architecture | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
JP4420055B2 (ja) | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 | |
JP6254352B2 (ja) | ループのプロローグまたはエピローグの無効演算を処理する装置及び方法 | |
US9383981B2 (en) | Method and apparatus of instruction scheduling using software pipelining | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
KR101293700B1 (ko) | 코어스 그레인드 재구성 구조를 위한 코드 생성 장치 및 그 코드 생성 방법 | |
US7886133B2 (en) | Information processing apparatus and method for accelerating information processing | |
CN112445587A (zh) | 一种任务处理的方法以及任务处理装置 | |
KR102025694B1 (ko) | 재구성 가능한 프로세서의 검증 방법 | |
US9639357B2 (en) | Processor, apparatus and method for generating instructions | |
JP6245820B2 (ja) | 再構成可能プロセッサの検証支援装置及び方法並びに再構成可能プロセッサ | |
JP2004287919A (ja) | 演算装置及び制御装置及び演算処理装置及び演算方法及び演算プログラム | |
KR100490438B1 (ko) | 연산/저장을 병행하여 처리하는 장치 및 방법 | |
JP2002318689A (ja) | 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法 | |
Shah et al. | SPSIM: SuperScalar Processor SIMulater CS305 Project Report |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170612 |
|
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: 20171114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6254352 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 |