JP7141401B2 - プロセッサおよび情報処理システム - Google Patents
プロセッサおよび情報処理システム Download PDFInfo
- Publication number
- JP7141401B2 JP7141401B2 JP2019537972A JP2019537972A JP7141401B2 JP 7141401 B2 JP7141401 B2 JP 7141401B2 JP 2019537972 A JP2019537972 A JP 2019537972A JP 2019537972 A JP2019537972 A JP 2019537972A JP 7141401 B2 JP7141401 B2 JP 7141401B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- circular
- shift register
- processor
- 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
- 230000010365 information processing Effects 0.000 title claims description 10
- 239000000872 buffer Substances 0.000 claims description 116
- 238000000034 method Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Description
1.実施の形態(プロセッサ構成の例)
2.適用例(フィルタ演算の適用例)
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。この情報処理システムは、プロセッサ100およびメモリ200を備える。プロセッサ100は、所定の命令セットによる命令列からなるプログラムを実行するプロセッサである。メモリ200は、プロセッサ100によって実行されるプログラムや、そのプログラムの実行に必要なデータを記憶するメモリである。
図3は、本技術の実施の形態におけるリングバッファ150の構成例を示す図である。このリングバッファ150は、上述のようにシフトレジスタ151および循環セレクタ152を備える。そして、シフトレジスタ151は、複数段のレジスタ153からなり、レジスタ153の入力にはそれぞれシフトセレクタ154が設けられる。
図5は、本技術の実施の形態におけるプロセッサ100の命令セットの一例を示す図である。ここでは、特にリングバッファ150に関連する命令を示している。
[2次元画像フィルタ演算への適用例]
図6は、本技術の実施の形態における情報処理システムの2次元画像フィルタ演算への適用例を示す図である。ここでは、次式に示す2次元画像フィルタ演算を実行するプログラムを想定する。
(1)複数のデータを保持して循環して読み出す循環バッファと、
前記循環バッファをオペランドとして指定する命令を実行する命令実行部と
を具備するプロセッサ。
(2)前記命令実行部は、メモリから前記循環バッファにデータをロードし、または、前記循環バッファに保持されるデータを前記メモリにストアするロードストアユニットを備える前記(1)に記載のプロセッサ。
(3)前記ロードストアユニットは、前記循環バッファの一部にデータを追加ロードする前記(2)に記載のプロセッサ。
(4)前記命令実行部は、前記循環バッファをオペランドとして演算を行う演算ユニットを備える前記(1)から(3)のいずれかに記載のプロセッサ。
(5)前記演算ユニットは、複数の前記循環バッファに保持されたデータ間の演算を行う前記(4)に記載のプロセッサ。
(6)前記演算ユニットは、複数の前記循環バッファに保持されたデータ間の積和演算を行う前記(5)に記載のプロセッサ。
(7)前記演算ユニットは、一つの前記循環バッファに保持されたフィルタ係数と他の前記循環バッファに保持された対象データとの間のフィルタ演算を実行してその演算結果をさらに他の前記循環バッファに保持させる前記(5)に記載のプロセッサ。
(8)前記演算ユニットは、前記循環バッファに保持されたデータと汎用レジスタに保持されたデータとの演算を行う前記(4)から(7)のいずれかに記載のプロセッサ。
(9)前記命令実行部は、前記循環バッファと汎用レジスタとの間でデータ転送を行うデータ転送ユニットを備える前記(1)から(8)のいずれかに記載のプロセッサ。
(10)前記循環バッファは、
複数段のレジスタからなるシフトレジスタと、
前記シフトレジスタから出力されたデータを前記シフトレジスタに循環させ、または、新たなデータを前記シフトレジスタに入力する循環セレクタを備える
前記(1)から(9)のいずれかに記載のプロセッサ。
(11)前記シフトレジスタは、前記複数段のレジスタに保持されるデータを次段に進めるか否か、および、前記循環セレクタから入力されたデータを前記複数段のレジスタのうちの任意段の前記レジスタに保持させるかを制御するシフトセレクタを備える
前記(10)に記載のプロセッサ。
(12)メモリと、
前記メモリからロードした複数のデータを保持して循環して読み出す循環バッファと、
前記循環バッファをオペランドとして指定する命令を実行する命令実行部と
を具備する情報処理システム。
111 命令フェッチユニット
112 命令デコードユニット
113 プログラムカウンタ
120 レジスタファイル
130 演算ユニット
140 ロードストアユニット
150 リングバッファ
151 シフトレジスタ
152 循環セレクタ
153 レジスタ
154 シフトセレクタ
160 データ転送ユニット
190 パイプライン制御部
200 メモリ
Claims (10)
- 複数のデータを保持する複数段のレジスタからなるシフトレジスタと、前記シフトレジスタから出力されたデータを前記シフトレジスタに循環させ、または、新たなデータを前記シフトレジスタに入力する循環セレクタとを備えて、前記複数のデータを保持して循環して読み出す循環バッファと、
前記循環バッファをオペランドとして指定する命令を実行する命令実行部と
を具備し、
前記シフトレジスタは、前記複数段のレジスタに保持されるデータを次段に進めるか否か、および、前記循環セレクタから入力されたデータを前記複数段のレジスタのうちの任意段の前記レジスタに保持させるかを制御するシフトセレクタを備える
プロセッサ。 - 前記命令実行部は、メモリから前記循環バッファにデータをロードし、または、前記循環バッファに保持されるデータを前記メモリにストアするロードストアユニットを備える請求項1記載のプロセッサ。
- 前記ロードストアユニットは、前記循環バッファの一部にデータを追加ロードする請求項2記載のプロセッサ。
- 前記命令実行部は、前記循環バッファをオペランドとして演算を行う演算ユニットを備える請求項1記載のプロセッサ。
- 前記演算ユニットは、複数の前記循環バッファに保持されたデータ間の演算を行う請求項4記載のプロセッサ。
- 前記演算ユニットは、複数の前記循環バッファに保持されたデータ間の積和演算を行う請求項5記載のプロセッサ。
- 前記演算ユニットは、一つの前記循環バッファに保持されたフィルタ係数と他の前記循環バッファに保持された対象データとの間のフィルタ演算を実行してその演算結果をさらに他の前記循環バッファに保持させる請求項5記載のプロセッサ。
- 前記演算ユニットは、前記循環バッファに保持されたデータと汎用レジスタに保持されたデータとの演算を行う請求項4記載のプロセッサ。
- 前記命令実行部は、前記循環バッファと汎用レジスタとの間でデータ転送を行うデータ転送ユニットを備える請求項1記載のプロセッサ。
- メモリと、
前記メモリからロードした複数のデータを保持する複数段のレジスタからなるシフトレジスタと、前記シフトレジスタから出力されたデータを前記シフトレジスタに循環させ、または、新たなデータを前記シフトレジスタに入力する循環セレクタとを備えて、前記複数のデータを保持して循環して読み出す循環バッファと、
前記循環バッファをオペランドとして指定する命令を実行する命令実行部と
を具備し、
前記シフトレジスタは、前記複数段のレジスタに保持されるデータを次段に進めるか否か、および、前記循環セレクタから入力されたデータを前記複数段のレジスタのうちの任意段の前記レジスタに保持させるかを制御するシフトセレクタを備える
情報処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017160812 | 2017-08-24 | ||
JP2017160812 | 2017-08-24 | ||
PCT/JP2018/025667 WO2019039113A1 (ja) | 2017-08-24 | 2018-07-06 | プロセッサおよび情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019039113A1 JPWO2019039113A1 (ja) | 2020-08-06 |
JP7141401B2 true JP7141401B2 (ja) | 2022-09-22 |
Family
ID=65440034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019537972A Active JP7141401B2 (ja) | 2017-08-24 | 2018-07-06 | プロセッサおよび情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11029956B2 (ja) |
JP (1) | JP7141401B2 (ja) |
WO (1) | WO2019039113A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006004042A (ja) | 2004-06-16 | 2006-01-05 | Renesas Technology Corp | データ処理装置 |
JP2017079017A (ja) | 2015-10-21 | 2017-04-27 | キヤノン株式会社 | 畳み込み演算装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3154996B2 (ja) | 1989-05-17 | 2001-04-09 | 京セラ株式会社 | 画像処理方法 |
US5249148A (en) * | 1990-11-26 | 1993-09-28 | Motorola, Inc. | Method and apparatus for performing restricted modulo arithmetic |
US5416847A (en) * | 1993-02-12 | 1995-05-16 | The Walt Disney Company | Multi-band, digital audio noise filter |
US5655132A (en) | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
US5739691A (en) * | 1995-11-28 | 1998-04-14 | The Regents Of The University Of California | Multi-frequency digital low pass filter for magnetic resonance imaging |
JPH11102282A (ja) | 1997-09-25 | 1999-04-13 | Nec Eng Ltd | インタフェースバッファ回路 |
US6052766A (en) * | 1998-07-07 | 2000-04-18 | Lucent Technologies Inc. | Pointer register indirectly addressing a second register in the processor core of a digital processor |
US7068780B1 (en) * | 2000-08-30 | 2006-06-27 | Conexant, Inc. | Hybrid echo canceller |
FI20010924A (fi) * | 2001-05-03 | 2002-11-04 | Nokia Corp | Mikroprosessorin muistinkäsittely |
US7721069B2 (en) * | 2004-07-13 | 2010-05-18 | 3Plus1 Technology, Inc | Low power, high performance, heterogeneous, scalable processor architecture |
JP2006154979A (ja) | 2004-11-25 | 2006-06-15 | Sony Corp | 浮動小数点数演算回路 |
US20070198901A1 (en) * | 2005-07-12 | 2007-08-23 | Amit Ramchandran | Configurable interface for connecting various chipsets for wireless communication to a programmable (multi-)processor |
US20130101010A1 (en) * | 2007-09-05 | 2013-04-25 | Raúl Alejandro Casas | Method and apparatus for joint decoding and equalization |
US8051226B2 (en) * | 2008-06-13 | 2011-11-01 | Freescale Semiconductor, Inc. | Circular buffer support in a single instruction multiple data (SIMD) data processor |
US8060724B2 (en) * | 2008-08-15 | 2011-11-15 | Freescale Semiconductor, Inc. | Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor |
US8219286B2 (en) * | 2010-04-28 | 2012-07-10 | Delphi Technologies, Inc. | Noise reduction for occupant detection system and method |
WO2014190263A2 (en) * | 2013-05-24 | 2014-11-27 | Coherent Logix, Incorporated | Memory-network processor with programmable optimizations |
GB2558220B (en) * | 2016-12-22 | 2019-05-15 | Advanced Risc Mach Ltd | Vector generating instruction |
CN108400921B (zh) * | 2017-02-04 | 2021-02-26 | 华为技术有限公司 | 一种非缓冲环状网络 |
-
2018
- 2018-07-06 WO PCT/JP2018/025667 patent/WO2019039113A1/ja active Application Filing
- 2018-07-06 JP JP2019537972A patent/JP7141401B2/ja active Active
- 2018-07-06 US US16/639,228 patent/US11029956B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006004042A (ja) | 2004-06-16 | 2006-01-05 | Renesas Technology Corp | データ処理装置 |
JP2017079017A (ja) | 2015-10-21 | 2017-04-27 | キヤノン株式会社 | 畳み込み演算装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2019039113A1 (ja) | 2020-08-06 |
WO2019039113A1 (ja) | 2019-02-28 |
US20200201641A1 (en) | 2020-06-25 |
US11029956B2 (en) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111213125B (zh) | 使用simd指令进行高效的直接卷积 | |
US7793079B2 (en) | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
TW200527203A (en) | A data processing apparatus and method for moving data between registers and memory | |
US20140047218A1 (en) | Multi-stage register renaming using dependency removal | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
JP2009037302A (ja) | 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム | |
JP2011090592A (ja) | 情報処理装置とその命令デコーダ | |
JP2620511B2 (ja) | データ・プロセッサ | |
CN107851013A (zh) | 元素大小增加指令 | |
KR101586770B1 (ko) | 데이터 처리 장치 | |
TWI490781B (zh) | 用於選擇向量運算之元素的裝置及方法 | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
EP1193594B1 (en) | Register renaming apparatus and processor | |
JP7141401B2 (ja) | プロセッサおよび情報処理システム | |
US8604946B2 (en) | Data processing device and data processing method | |
CN114365083A (zh) | 压缩辅助指令 | |
JP2000322235A (ja) | 情報処理装置 | |
US20080022072A1 (en) | System, method and medium processing data according to merged multi-threading and out-of-order scheme | |
JP5659772B2 (ja) | 演算処理装置 | |
JP5630798B1 (ja) | プロセッサーおよび方法 | |
JPH1153189A (ja) | 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体 | |
JP2010271799A (ja) | 並列計算装置 | |
JP5437878B2 (ja) | 情報処理装置 | |
JP2006285721A (ja) | 演算処理装置および演算処理方法 | |
JP5786719B2 (ja) | ベクトルプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220804 |
|
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: 20220816 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7141401 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |