JP2013222364A - 信号処理回路 - Google Patents
信号処理回路 Download PDFInfo
- Publication number
- JP2013222364A JP2013222364A JP2012094429A JP2012094429A JP2013222364A JP 2013222364 A JP2013222364 A JP 2013222364A JP 2012094429 A JP2012094429 A JP 2012094429A JP 2012094429 A JP2012094429 A JP 2012094429A JP 2013222364 A JP2013222364 A JP 2013222364A
- Authority
- JP
- Japan
- Prior art keywords
- sequence control
- control unit
- calculation
- unit
- arithmetic
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 101
- 238000004364 calculation method Methods 0.000 claims description 157
- 230000004044 response Effects 0.000 claims description 143
- 238000013500 data storage Methods 0.000 claims 3
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 26
- 238000000034 method Methods 0.000 description 23
- 101150016835 CPL1 gene Proteins 0.000 description 21
- 101100468774 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RIM13 gene Proteins 0.000 description 21
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 17
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 17
- 238000005111 flow chemistry technique Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 4
- 101100221835 Arabidopsis thaliana CPL2 gene Proteins 0.000 description 2
- 101100394003 Butyrivibrio fibrisolvens end1 gene Proteins 0.000 description 2
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 101100296979 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PEP5 gene Proteins 0.000 description 2
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100221837 Arabidopsis thaliana CPL4 gene Proteins 0.000 description 1
- 101100536545 Arabidopsis thaliana TCL2 gene Proteins 0.000 description 1
- 241000019229 Dinia Species 0.000 description 1
- 101100478715 Drosophila melanogaster Start1 gene Proteins 0.000 description 1
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 102000006381 STAT1 Transcription Factor Human genes 0.000 description 1
- 108010044012 STAT1 Transcription Factor Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/22—Pc multi processor system
- G05B2219/2207—Microcontroller combined with state sequencer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Advance Control (AREA)
- Programmable Controllers (AREA)
Abstract
【課題】信号処理回路に関し、たとえば、複数のプログラマブル・シーケンサで共通に使用される共通演算器を備えることにより、回路面積が小さい信号処理回路を提供する。
【解決手段】共通演算器7は、複数の演算シーケンス制御部1−0,1−1で共有される。調停回路4は、複数の演算シーケンス制御部1−0,1−1が同時に共通演算器7を使用する演算要求を発生した場合に、複数の演算シーケンス制御部1−0,1−1の優先順位情報に基づき、所定のシーケンス制御部を選択して、選択した演算シーケンス制御部からの演算要求を共通演算器7に実行させ、演算結果を選択した演算シーケンス制御部に返す。
【選択図】図2
【解決手段】共通演算器7は、複数の演算シーケンス制御部1−0,1−1で共有される。調停回路4は、複数の演算シーケンス制御部1−0,1−1が同時に共通演算器7を使用する演算要求を発生した場合に、複数の演算シーケンス制御部1−0,1−1の優先順位情報に基づき、所定のシーケンス制御部を選択して、選択した演算シーケンス制御部からの演算要求を共通演算器7に実行させ、演算結果を選択した演算シーケンス制御部に返す。
【選択図】図2
Description
本発明は、信号処理回路に関し、たとえば、複数のプログラマブル・シーケンサで共通に使用される共通演算器を備えた信号処理回路に関する。
従来から、複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラが知られている。たとえば、特許文献1(特開2009−116445号公報)のプログラマブルコントローラは、シーケンスプログラムの中で所定の第1の命令をハードウェアで実行できる複数の専用のLSIであるプログラム実行回路(3a1〜3an)と、並行して実行されている複数の独立したシーケンスプログラムの中で、プログラム実行回路で実行できない第2の命令を実行するCPU(1)を備える。このプログラマブルコントローラは、さらにプログラム実行回路で発生した少なくとも1つの第2の命令の情報を発生した順にCPU(1)に転送する第1の転送手段と、CPU(1)が実行した第2の命令の情報をプログラム実行回路に転送する第2の転送手段とを有する。また、このプログラマブルコントローラは、複数のプログラム実行回路から同時にFIFOへの書き込み要求があると優先順位の高いプログラム実行回路の要求を優先する優先制御を行なう。
特許文献1のプログラマブルコントローラでは、複数の専用のLSIを搭載する必要がある。専用LSIは、実行する演算処理の種類に応じた演算器が搭載される方式のため短時間で処理が可能である。しかしながら、専用LSIごとに演算器を実装することによって、回路面積が大きくなるという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
一実施の形態の信号処理回路は、複数のシーケンス制御部で共有される共通演算器と調停回路とを備える。調停回路は、複数のシーケンス制御部が同時に共通演算器を使用する演算要求を発生した場合に、各シーケンス制御部の優先順位情報に基づいて、いずれか1つのシーケンス制御部を選択して、選択したシーケンス制御部からの演算要求を共通演算器に実行させ、演算結果を選択したシーケンス制御部に返す。
一実施の形態の信号処理回路によれば、回路面積を小さくすることができる。
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、複数のセンシング機能を有するセンサシステムの例を表わす図である。
[第1の実施形態]
図1は、複数のセンシング機能を有するセンサシステムの例を表わす図である。
図1のセンサシステムは、外界の温度を検出して電気信号に変換する温度センサ素子10と、外界の光を検出した電気信号に変換する光電センサ素子12と、その他のセンサ素子14と、温度センサ素子10からの信号を増幅するアンプ16aと、光電センサ素子12からの信号を増幅するアンプ16bと、その他のセンサ素子14からの信号を増幅するアンプ16cと、マイコン22とを備える。
マイコン22は、A/Dコンバータ11a,11b,11cと、信号処理回路80と、レジスタ18a,18b,18cと、マイコン22全体を制御するCPUコア6と、データを記憶するメモリ8とを備える。
A/Dコンバータ11a,11b,11cは、それぞれアンプ16a,16b,16cからのアナログデータをデジタルデータに変換して、レジスタ18a,18b,18cに記憶させる。
信号処理回路80は、レジスタ18a,18b,18cに記憶されたデータに対して各種の信号処理を実行して、処理結果をレジスタ18a,18b,18cに記憶させる。信号処理回路80は、センサ素子10,12,14に応じて電気エネルギーの出力特性が相違する場合には、微弱信号を増幅する処理やノイズ除去のために、FIR(Finite Impulse Response)フィルタ処理、IIR(Infinite Impulse Response)フィルタ処理などを行なう。また、信号処理回路80は、センサ素子10,12,14が検出対象の外界エネルギー変化に対して複雑にカーブした出力特性を持つ場合は、線形となるように補正処理を行なう。
(信号処理回路の概略)
図2は、図1の信号処理回路の概略を表わす図である。
図2は、図1の信号処理回路の概略を表わす図である。
図2を参照して、この信号処理回路80は、フロー処理部3と、演算処理部5とを備える。
フロー処理部3は、データREG群55_0,55_1と、命令RAM54_0,54_1と、演算シーケンス制御部1−0と、演算シーケンス制御部1−1とを含む。
データREG群55_0,55_1は、CPUコア6から出力され演算処理部5での演算の対象となるデータ、または演算処理部5での演算結果を表わすデータを記憶する。
命令RAM54_0,54_1は、CPUコア6から出力された複数の命令を記憶する。この命令は、「演算種類とデータ入出力」の指示を含む。命令(「演算種類とデータ入出力」の指示)の設定および変更することは、デジタル信号処理の実装と等価であると考えることができ、専用回路の実装よりも短い設計工期で対応することができる。
命令RAM54_0,54_1、データREG群55_0,55_1は、CPUコア6からバス99を通じて読み書きが可能なように、CPUコア6のアドレス空間上にマッピングされる。
演算シーケンス制御部1−0は、命令RAM54_0に記憶された命令に基づき、データREG群55_0に記憶されたデータを読み出し、読み出したデータに対する演算を演算処理部5に要求する。演算シーケンス制御部1−0は、演算処理部5で実行された演算結果を表わすデータをデータREG群55_0に記憶させる。
演算シーケンス制御部1−1は、命令RAM54_1に記憶された命令に基づき、データREG群55_1に記憶されたデータを読み出し、読み出したデータに対する演算を演算処理部5に要求する。演算シーケンス制御部1−1は、演算処理部5で実行された演算結果を表わすデータをデータREG群55_1に記憶させる。
演算処理部5は、調停回路4と共通演算器7とを含む。
共通演算器7は、演算シーケンス制御部1−0と演算シーケンス制御部1−1の間で共有化される。このように演算器を複数の演算シーケンス制御部で共有することによって、演算器の搭載数を節約することができ、その結果面積規模を抑えることができる。
共通演算器7は、演算シーケンス制御部1−0と演算シーケンス制御部1−1の間で共有化される。このように演算器を複数の演算シーケンス制御部で共有することによって、演算器の搭載数を節約することができ、その結果面積規模を抑えることができる。
調停回路4は、演算シーケンス制御部1−0,1−1が同時に共通演算器7を使用する演算要求を発生した場合に、演算シーケンス制御部1−0,1−0の優先順位情報に基づいて、いずれか1つの演算シーケンス制御部を選択して、選択した演算シーケンス制御部からの演算要求を共通演算器7に実行させ、演算結果を選択した演算シーケンス制御部に返す。
(信号処理回路の詳細)
図3は、第1の実施形態の信号処理回路の詳細を表わす図である。
図3は、第1の実施形態の信号処理回路の詳細を表わす図である。
信号処理回路80は、フロー処理部3と、演算処理部5とを備える。
フロー処理部3は、データREG群55_0,55_1,55_5と、命令RAM54_0,54_1,54_5と、上位シーケンス制御部1_5と、演算シーケンス制御部1−0と、演算シーケンス制御部1−1と、DE_MUX51_0,51_1,51_5と、MUX52_0,52_1,52_5,53_0,53_1,53_5と、システムREG19とを備える。
フロー処理部3は、データREG群55_0,55_1,55_5と、命令RAM54_0,54_1,54_5と、上位シーケンス制御部1_5と、演算シーケンス制御部1−0と、演算シーケンス制御部1−1と、DE_MUX51_0,51_1,51_5と、MUX52_0,52_1,52_5,53_0,53_1,53_5と、システムREG19とを備える。
システムREG19は、CPUコア6から出力されるシステムの制御に関する命令およびデータを記憶する。
上位シーケンス制御部1_5は、命令RAM54_5から読み出した命令をデコードし、デコードした命令に従って、処理の開始を指示するシーケンス起動信号START0,STAT1をそれぞれ演算シーケンス制御部1−0,1−1へ出力する。上位シーケンス制御部1_5は、処理の終了を示すシーケンス完了信号END0,END1をそれぞれ演算シーケンス制御部1−0,1−1から受ける。また、上位シーケンス制御部1_5は、デコードした命令に従って、複数のデータREG群55_5のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX52_5に入力として選択させる。また、上位シーケンス制御部1_5は、デコードした命令に従って、複数のデータREG群55_5のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX53_5に入力として選択させる。上位シーケンス制御部1_5は、デコードした命令に従って、データREG群55_5のいずれかのレジスタを選択し、選択したレジスタを演算処理部5から出力されるデータの出力先としてDEMUX51_5に選択させる。
演算シーケンス制御部1−0は、命令RAM54_0から読み出した命令をデコードし、デコードした命令に従って、演算要求信号REQ0、演算種類信号CMD0を出力する。また、演算シーケンス制御部1−0は、デコードした命令に従って、複数のデータREG群55_0のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX52_0に入力として選択させる。また、演算シーケンス制御部1−0は、デコードした命令に従って、複数のデータREG群55_0のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX53_0に入力として選択させる。ただし、演算シーケンス制御部1−0は、デコードした命令の演算種類がSFTの場合には、MUX53_0の選択制御は行なわない。演算シーケンス制御部1−0は、MUX52_0から送られるデータを第1データDIN0aとして出力し、MUX53_0から送られるデータを第2データDIN0bとして出力する。また、演算シーケンス制御部1−0は、デコードした命令に従って、データREG群55_0のいずれかのレジスタを選択し、選択したレジスタを演算処理部5から出力される演算結果DOUT0の出力先としてDEMUX51_0に選択させる。演算シーケンス制御部1−0は、演算処理部5から応答信号ACK0、完了信号CPL0、演算結果DOUT0を受ける。演算シーケンス制御部1−0は、上位シーケンス制御部1_5から処理の開始を指示するシーケンス起動信号START0を受ける。演算シーケンス制御部1−0は、読み出した命令がHALT命令の場合には、シーケンス完了信号END0を上位シーケンス制御部1_5へ出力する。
演算シーケンス制御部1−1は、命令RAM54_1から読み出した命令をデコードし、デコードした命令に従って、演算要求信号REQ1、演算種類信号CMD1を出力する。また、演算シーケンス制御部1−1は、デコードした命令に従って、複数のデータREG群55_1のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX52_1に入力として選択させる。また、演算シーケンス制御部1−1は、デコードした命令に従って、複数のデータREG群55_1のいずれかのレジスタを選択し、選択したレジスタから出力されるデータをMUX53_1に入力として選択させる。ただし、演算シーケンス制御部1−1は、デコードした命令の演算種類がSFTの場合には、MUX53_1の選択制御は行なわない。演算シーケンス制御部1−1は、MUX52_1から送られるデータを第1データDIN1aとして出力し、MUX53_1から送られるデータを第2データDIN1bとして出力する。また、演算シーケンス制御部1−1は、デコードした命令に従って、データREG群55_1のいずれかのレジスタを選択し、選択したレジスタを演算処理部5から出力される演算結果DOUT1の出力先としてDEMUX51_1に選択させる。演算シーケンス制御部1−1は、演算処理部5から応答信号ACK1、完了信号CPL1、演算結果DOUT1を受ける。演算シーケンス制御部1−1は、上位シーケンス制御部1_5から処理の開始を指示するシーケンス起動信号START1を受ける。演算シーケンス制御部1−1は、読み出した命令がHALT命令の場合には、シーケンス完了信号END1を上位シーケンス制御部1_5へ出力する。
演算処理部5は、調停回路4と、共通演算器7とを備える。
調停回路4は、演算シーケンス制御部1−0,1−1が同じ演算種類の演算要求を同時に発生した場合に、その演算種類に対応する共通演算器7が未使用の場合に限り、シーケンス制御部1−0,1−1の優先順位情報に基づき、いずれか1つの演算シーケンス制御部を選択する。調停回路4は、選択した演算シーケンス制御部からの演算要求を演算要求に係わる演算種類に対応する共通演算器7に実行させ、演算結果を選択した演算シーケンス制御部に返す。
調停回路4は、演算シーケンス制御部1−0,1−1が同じ演算種類の演算要求を同時に発生した場合に、その演算種類に対応する共通演算器7が未使用の場合に限り、シーケンス制御部1−0,1−1の優先順位情報に基づき、いずれか1つの演算シーケンス制御部を選択する。調停回路4は、選択した演算シーケンス制御部からの演算要求を演算要求に係わる演算種類に対応する共通演算器7に実行させ、演算結果を選択した演算シーケンス制御部に返す。
調停回路4は、テーブル記憶部21と、受付応答部31と、完了応答部32と、MUX38〜44とを備える。
テーブル記憶部21は、優先情報テーブルと、空き情報テーブルと、ディレイ情報テーブルを記憶する。
優先情報テーブルは、演算シーケンス制御部1−0,1−1の処理が競合した場合の優先順位を定める。優先順位の数値が低いほど処理が優先される。図3の例では、演算シーケンス制御部1−0に優先順位が「0」に定められ、演算シーケンス制御部1−1に優先順位「1」が定められており、演算シーケンス制御部1−0の処理が演算シーケンス制御部1−1の処理に優先する。
空き情報テーブルは、演算器33〜37が使用中であるか否かの状態値を定める。使用中の場合には状態値は「0」となり、未使用の場合には状態値は「1」となる。図3の例では、シフト演算器(SFT)33、加算器(ADD)34、減算器(SUB)35、乗算器(MUL)36、除算器(DIV)37の状態値が「1」であり、いずれも未使用である。
ディレイ情報テーブルは、演算器33〜37のディレイ値を定める。ディレイ値が「n」の場合には、(n+1)クロックで演算が終了することを表わす。つまり、nクロック分だけ待たされる。
図3の例では、シフト演算器(SFT)33、加算器(ADD)34、減算器(SUB)35のディレイ値が「0」であるため、これらの演算器の演算は、1クロックで終了する(待ち時間はない)。乗算器(MUL)36のディレイ値は「1」であるため、乗算器36の演算は2クロックで終了する(1クロック分待たなければならない)。除算器(DIV)37のディレイ値は「6」であり、除算器37の演算は7クロックで終了する(6クロック分待たなければならない)。
受付応答部31は、演算シーケンス制御部1−0,1−1から演算要求信号REQ0,REQ1と、演算種類信号CMD0,COM1,第1データDIN0a,DIN1a、第2データDIN0b,DIN1bを受信する。
受付応答部31は、1つの演算要求信号REQi(i=0または1)を受けたときには、空き情報テーブルを参照して、演算種類信号CMDiで指定される演算器が使用中であるか否かを調べ、未使用の場合に、演算シーケンス制御部1−iからの演算要求を受け付け、使用中の場合に、演算シーケンス制御部1−iからの演算要求を受け付けない。
受付応答部31は、2つの演算要求信号REQ0およびREQ1を同時に受けたときには、演算種類信号CMD0およびCMD1が同一であるかどうかを調べる。演算種類信号CMD0およびCMD1が相違する場合には、受付応答部31は、空き情報テーブルを参照して、演算種類信号CMD0で指定される演算器が使用中であるか否かを調べ、未使用の場合に、演算シーケンス制御部1−0からの演算要求を受け付け、使用中の場合に、演算シーケンス制御部1−0からの演算要求を受け付けない。また、受付応答部31は、空き情報テーブルを参照して、演算種類信号CMD1で指定される演算器が使用中であるか否かを調べ、未使用の場合に、演算シーケンス制御部1−1からの演算要求を受け付け、使用中の場合に、演算シーケンス制御部1−1からの演算要求を受け付けない。
一方、演算種類信号CMD0およびCMD1が同一の場合には、受付応答部31は、空き情報テーブルを参照して、演算種類信号CMD0(CMD1)で指定される演算器が使用中であるか否かを調べ、使用中の場合に、演算シーケンス制御部1−0および1−1からの演算要求を受け付けない。受付応答部31は、未使用の場合には、優先情報テーブルを参照して、演算シーケンス制御部1−0と演算シーケンス制御部1−1のうち優先順位の高い方を選択する。受付応答部31は、選択した演算シーケンス制御部からの演算要求を受け付け、選択しなかった演算シーケンス制御部からの演算要求を受け付けない。
受付応答部31は、要求を受け付けた演算シーケンス制御部へ応答信号ACK0またはACK1を返信する。受付応答部31は、要求を受け付けた演算シーケンス制御部から出力される第1データおよび第2データを、演算器33〜37のうち、要求を受け付けた演算シーケンス制御部から出力される演算種類信号CMDで示される演算器に出力させる。受付応答部31の処理の詳細は後述する。
完了応答部32は、受付応答部31から演算種類信号CMD0またはCMD1が送られてきた場合には、ディレイ情報テーブルを参照して、演算種類信号CMD0またはCMD1で示される演算器の遅延時間を特定する。完了応答部32は、特定した遅延時間が経過した場合には、完了信号CPL0またはCPL1を演算シーケンス制御部1−0または1−1へ返信する。また、完了応答部32は、演算種類信号CMD0またはCMD1で示される演算器の空き情報を未使用を表わす「1」に設定する。完了応答部32の処理の詳細は後述する。
MUX38は、演算シーケンス制御部1−0から第1データDIN0a、演算シーケンス制御部1−1から第1データDIN1aを受けて、受付応答部31の指定に従って、いずれかを選択して、シフト演算器33へ出力する。MUX39は、演算シーケンス制御部1−0から第1データDIN0aと第2データDIN0bのセットを受け、演算シーケンス制御部1−1から第1データDIN1aと第2データDIN1bのセットを受け、いずれかのセットを加算器34へ出力する。MUX40は、演算シーケンス制御部1−0から第1データDIN0aと第2データDIN0bのセットを受け、演算シーケンス制御部1−1から第1データDIN1aと第2データDIN1bのセットを受け、いずれかのセットを減算器35へ出力する。MUX41は、演算シーケンス制御部1−0から第1データDIN0aと第2データDIN0bのセットを受け、演算シーケンス制御部1−1から第1データDIN1aと第2データDIN1bのセットを受け、いずれかのセットを乗算器36へ出力する。MUX42は、演算シーケンス制御部1−0から第1データDIN0aと第2データDIN0bのセットを受け、演算シーケンス制御部1−1から第1データDIN1aと第2データDIN1bのセットを受け、いずれかのセットを除算器37へ出力する。
共通演算器7は、演算種類ごとに1つ設けられる。すなわち、共通演算器7には、2ビットシフト演算用のシフト演算器33と、加算用の加算器34と、減算用の減算器35と、乗算用の乗算器36と、除算用の除算器37とがある。
シフト演算器33は、演算種類がSFTのときにMUX38から出力された信号を2ビット右シフトして、MUX43およびMUX44へ出力する。加算器34は、演算種類がADD(加算)のときにMUX39から出力されるセットの加算(第1データ+第2データ)を実行して、MUX43およびMUX44へ出力する。減算器35は、演算種類がMUX40から出力されるセットの減算(第1データ−第2データ)を実行して、MUX43およびMUX44へ出力する。乗算器36は、MUX41から出力されるセットの乗算(第1データ×第2データ)を実行して、MUX43およびMUX44へ出力する。除算器37は、MUX42から出力されるセットの除算(第1データ÷第2データ)を実行して、MUX43およびMUX44へ出力する。
MUX43は、完了応答部32からの指示に従って、5つの演算器33〜37から出力される信号のいずれか1つを演算結果DOUT0として演算シーケンス制御部1−0へ出力する。MUX44は、完了応答部32からの指示に従って、5つの演算器33〜37から出力される信号のいずれか1つを演算結果DOUT1として演算シーケンス制御部1−1へ出力する。
(演算シーケンス制御部)
図4は、演算シーケンス制御部1−0の詳細な構成を表わす図である。演算シーケンス制御部1−1の構成も同様である。
図4は、演算シーケンス制御部1−0の詳細な構成を表わす図である。演算シーケンス制御部1−1の構成も同様である。
プログラム読み出し制御回路66は、上位シーケンス制御部1_5からシーケンス起動信号START0を受けると、プログラムカウンタ(PC)67の指定に従って、命令RAM54_0内の命令を順次読み出す。命令は、「演算種類」、「入力元第1データレジスタ」、「入力元第2データレジスタ」、「出力先データレジスタ」の指定を含む。ただし、「演算種類」がSFT(2ビット右シフト)の場合には、「入力元第2データレジスタ」は指定されない。プログラム読み出し制御回路66は、読み出した命令がHALT命令の場合には、上位シーケンス制御部1_5へシーケンス完了信号END0を送る。プログラム読み出し制御回路66は、完了信号CPL0を受けるごとに、命令RAM54_0から次の命令を読み出す。
入力REG選択回路63は、読み出された命令に含まれる「入力元第1データレジスタ」指定に従って、第1入力選択信号DINa_selをMUX52_0へ出力する。MUX52_0は、第1入力選択信号DINa_selに従って、データREG#0,#1,#2・・・のうちのいずれかのデータを選択して、第1データDIN0aとして演算処理部5へ出力する。MUX52_0は、応答信号CPL0を受け取るまで、第1データDIN0aの出力を継続する。
入力REG選択回路64は、読みだされた命令に含まれる「入力元第2データレジスタ」指定に従って、第2入力選択信号DINb_selをMUX53_0へ出力する。MUX53_0は、第2入力選択信号DINb_selに従って、データREG#0,#1,#2・・・のうちのいずれかのデータを選択して、第2データDIN0bとして演算処理部5へ出力する。MUX53_0は、応答信号CPL0を受け取るまで、第2データDIN0bの出力を継続する。
出力REG選択回路62は、読み出された命令に含まれる「出力先データレジスタ」指定に従って、出力選択信号DOUT_selを論理積回路61へ出力する。論理積回路61は、出力選択信号DOUT_selと完了信号CPL0の論理積を選択信号SELとしてDEMUX51_0へ出力する。つまり、完了信号CPL0を受けたとき(CPL0がHレベルに活性化されたとき)に、出力選択信号DOUT_selによってDEMUX51_0が制御される。DEMUX51_0は、選択信号SELに従って、演算処理部5からの演算結果DOUT0をデータREG#0,#1,#2・・・のいずれかへ出力する。
リクエスト/コマンド生成回路65は、応答信号ACK0を受け取るまで、演算要求信号REQ0を調停回路4へ出力し続ける。リクエスト/コマンド生成回路65は、完了信号CPL0を受け取るまで、演算種類信号CMD0を調停回路4へ出力し続ける。
(処理タイミング)
図5は、演算要求から受付応答および完了応答までの処理を表わすタイムチャートである。
図5は、演算要求から受付応答および完了応答までの処理を表わすタイムチャートである。
図5(a)は、演算要求が競合せず、かつ演算種類がディレイなしの演算の場合の処理タイミングを表わす図である。
演算要求が競合しない場合、演算要求信号REQ0の後、即座に応答信号ACK0が返信される。また、演算種類がディレイなしの演算の場合には、応答信号ACK0の返信後即座に完了信号CPL0が返信される。
図5(b)は、演算要求が競合し、かつ演算種類がディレイなしの演算の場合の処理タイミングを表わす図である。
演算要求が競合する場合、演算要求信号REQ0の後、応答信号ACK0が即座に返信されない。この例では、1クロックのみ遅延した後、応答信号ACK0が返信されている。また、演算種類ディレイなしの演算の場合には、応答信号ACK0の返信後即座に完了信号CPL0が返信される。
図5(c)は、演算要求が競合せず、かつ演算種類がディレイありの演算の場合の処理タイミングを表わす図である。
演算要求が競合しない場合、演算要求信号REQ0の後、即座に応答信号ACK0が返信される。また、演算種類がディレイありの演算の場合には、応答信号ACK0が返信されてからディレイ情報で示されるクロック分だけ完了信号CPL0の返信が遅延する。この例では、1クロックのみ遅延した後、完了信号CPL0が返信されている。
図5(d)は、演算要求が競合し、かつ演算種類がディレイありの演算の場合の処理タイミングを表わす図である。
演算要求が競合する場合、演算要求信号REQ0の後、応答信号ACK0が即座に返信されない。この例では、1クロックのみ遅延した後、応答信号ACK0が返信されている。また、演算種類がディレイありの演算の場合には、応答信号ACK0が返信されてからディレイ情報で示されるクロック分だけ完了信号CPL0の返信が遅延する。この例では、1クロックのみ遅延した後、完了信号CPL0が返信されている。
(プログラム読み出し制御回路の動作)
図6は、図4のプログラム読み出し制御回路の動作手順を表わすフローチャートである。
図6は、図4のプログラム読み出し制御回路の動作手順を表わすフローチャートである。
図6を参照して、まず、プログラム読み出し制御回路66が、上位シーケンス制御部15_0からシーケンス起動信号START0を受け付けた場合に(ステップS101でYES)、プログラムカウンタ67の値に基づいて、命令RAM54_0から命令を読み出す(ステップS102)。
次に、読み出した命令がHALT命令以外の場合には(ステップS103でYES)、調停回路4から完了信号CPL0が返信されたときには(ステップS105でYES)、プログラム読み出し制御回路66は、プログラムカウンタ67の値をインクリメントする(ステップS106)。
また、読み出した命令がHALT命令の場合には(ステップS103でNO)、プログラム読み出し制御回路66は、プログラムカウンタ67の値を初期値にリセットし、シーケンス完了信号END0を上位シーケンス制御部15_0へ出力する。
(リクエスト/コマンド生成回路の動作)
図7は、図4のリクエスト/コマンド生成回路の動作手順を表わすフローチャートである。
図7は、図4のリクエスト/コマンド生成回路の動作手順を表わすフローチャートである。
まず、プログラム読み出し制御回路66から新たに命令が供給された場合に(ステップS201でYES)、リクエスト/コマンド生成回路65は、供給された命令をデコードし、デコード結果に基づいて、演算要求信号REQ0および演算種類信号CMD0を調停回路4へ出力する(ステップS202)。
調停回路4から応答信号ACK0を受けた場合に(ステップS203でYES)、リクエスト/コマンド生成回路65は、演算要求信号REQ0の出力を停止する。ただし、次のサイクルで新たな命令(HALT命令以外の命令)が供給される場合には、演算要求信号REQ0の出力を継続する(ステップS204)。
調停回路4から完了信号CPL0を受けた場合に(ステップS205でYES)、リクエスト/コマンド生成回路65は、演算種類信号CMD0の出力を停止する(ステップS206)。
(入力REG選択回路の動作)
図8は、図4の入力REG選択回路の動作手順を表わすフローチャートである。
図8は、図4の入力REG選択回路の動作手順を表わすフローチャートである。
まず、プログラム読み出し制御回路66から新たに命令が供給された場合に(ステップS301でYES)、入力REG選択回路62は、供給された命令をデコードし、デコード結果に基づいて、第1入力選択信号DINa_selをMUX52_0へ出力する。また、入力REG選択回路64は、命令をデコードし、デコード結果に基づいて、第2入力選択信号DINb_selをMUX53_0へ出力する。ただし、命令がSFTの場合には、入力REG選択回路64は、第2入力選択信号DINb_selを出力しない(ステップS302)。
調停回路4から完了信号CPL0を受けた場合に(ステップS303でYES)、入力REG選択回路62は、第1入力選択信号DINa_selのMUX52_0への出力を停止し、入力REG選択回路64は、第2入力選択信号DINb_selのMUX53_0への出力を停止する(ステップS304)。
(出力REG選択回路の動作)
図9は、図4の出力REG選択回路の動作手順を表わすフローチャートである。
図9は、図4の出力REG選択回路の動作手順を表わすフローチャートである。
まず、プログラム読み出し制御回路66から新たに命令が供給された場合に(ステップS401でYES)、調停回路4から完了信号CPL0を受けたときに(ステップS402でYES)、出力REG選択回路62は、供給された命令をデコードする。出力REG選択回路62は、デコード結果に基づいて、完了信号CPLを受けている期間だけ論理積回路61へ出力選択信号DOUT_selを出力する。論理積回路61は、選択信号SELをDEMUX51_0へ出力する(ステップS403)。
(受付応答部の動作)
図10は、図3の受付応答部の動作手順を表わすフローチャートである。
図10は、図3の受付応答部の動作手順を表わすフローチャートである。
図10を参照して、受付応答部31は、演算要求信号REQ0および/またはREQ1を受信した場合には(ステップS501でYES)、優先情報テーブルおよび空き情報テーブルを参照して、演算要求を受付可能か否かを判断する。
受付可能な場合には(ステップS502でYES)、受付応答部31は、受け付け可能な要求元の演算シーケンス制御部i(i=0または1)へ応答信号ACKiを返信する。また、受付応答部31は、空き情報テーブルにおける、演算種類信号CMDiで示される演算器の空き情報を使用中を表わす「0」に設定する。また、受付応答部31は、演算種類信号CMDiを完了応答部32へ出力する(ステップS503)。
受付応答部31は、MUX38〜42のいずれかを指示して、演算シーケンス制御部iから出力される第1データDINiaおよび第2データDINibを演算種類信号CMDiで示される演算器33〜37のいずれかの入力に出力させる(ステップS504)。
完了応答部32が、完了信号CPLiを演算シーケンス制御部iへ返信した場合には(ステップS505でYES)、受付応答部31は、上記のMUX38〜42のいずれかへの指示を終了する(ステップS506)。
(完了応答部の動作)
図11は、図3の完了応答部の動作手順を表わすフローチャートである。
図11は、図3の完了応答部の動作手順を表わすフローチャートである。
図11を参照して、受付応答部31から演算種類信号CMDiが送られてきた場合には、完了応答部32は、ディレイ情報テーブルを参照して、演算種類信号CMDiで示される演算器の遅延時間を特定し、特定した遅延時間が経過した場合には(ステップ602でYES)、完了信号CPLiを演算シーケンス制御部iへ返信する。また、完了応答部32は、演算種類信号CMDiで示される演算器の空き情報を未使用を表わす「1」に設定する(ステップS603)。
完了応答部32は、完了信号CPLiが出力されている期間だけ、MUX43,44のうちの演算シーケンス制御部iに対応する方を指示して、演算種類信号CMDiで示される演算器からの出力を選択して受け取るように指示する(ステップS604)。
(例)
次に、本実施の形態の信号処理回路80の具体的な動作例について説明する。ここでは、信号処理回路80が、4次のフィルタ処理を実行する場合の例を説明する。
次に、本実施の形態の信号処理回路80の具体的な動作例について説明する。ここでは、信号処理回路80が、4次のフィルタ処理を実行する場合の例を説明する。
図12(a)は、データREG群55_0および55_1のデータREG#0〜データREG#4に格納されるデータの例を表わす図である。
データREG#0には、時刻iのデータX[i−0]が格納されている。データREG#1には、時刻(i−1)のデータX[i−1]が格納されている。データREG#2には、時刻(i−2)のデータX[i−2]が格納されている。データREG#3には、時刻(i−3)のデータX[i−3]が格納されている。データREG#4には、「0」が格納されている。
図12(b)は、4次のFIRフィルタ処理を実行する命令群を表わす図である。
図12を参照して、命令RAM54_0および54_1には、4次のFIRフィルタ処理のための第1〜9命令が格納されている。第1命令は、演算種類がSFT(2ビット右シフト)、入力元第1データレジスタがデータREG#0、出力先データレジスタがデータレジスタ#0であることを表わす。第2命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#0、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第3命令は、演算種類がSFT(2ビット右シフト)、入力元第1データレジスタがデータREG#1、出力先データレジスタがデータレジスタ#1であることを表わす。第4命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#1、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第5命令は、演算種類がSFT、入力元第1データレジスタがデータREG#2、出力先データレジスタがデータレジスタ#2であることを表わす。第6命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#2、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第7命令は、演算種類がSFT、入力元第1データレジスタがデータREG#3、出力先データレジスタがデータレジスタ#3であることを表わす。第8命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#3、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第9命令は、FIRフィルタ処理の終了を表すHALT命令である。
図12を参照して、命令RAM54_0および54_1には、4次のFIRフィルタ処理のための第1〜9命令が格納されている。第1命令は、演算種類がSFT(2ビット右シフト)、入力元第1データレジスタがデータREG#0、出力先データレジスタがデータレジスタ#0であることを表わす。第2命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#0、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第3命令は、演算種類がSFT(2ビット右シフト)、入力元第1データレジスタがデータREG#1、出力先データレジスタがデータレジスタ#1であることを表わす。第4命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#1、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第5命令は、演算種類がSFT、入力元第1データレジスタがデータREG#2、出力先データレジスタがデータレジスタ#2であることを表わす。第6命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#2、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第7命令は、演算種類がSFT、入力元第1データレジスタがデータREG#3、出力先データレジスタがデータレジスタ#3であることを表わす。第8命令は、演算種類がADD(加算)、入力元第1データレジスタがデータREG#3、入力元第2データレジスタがデータREG#4、出力先データレジスタがデータレジスタ#4であることを表わす。第9命令は、FIRフィルタ処理の終了を表すHALT命令である。
図13は、2つの演算シーケンス制御部が、図12に示される4次のFIRフィルタ処理のための命令群をそれぞれ実行する場合のタイムチャートである。
図13を参照して、時刻t1において、演算シーケンス制御部1−0は、命令RAM54_0に記憶された図12(b)に示す第1命令を読み出して、演算要求信号REQ0と、演算種類信号CMD0としてSFT(2ビット右シフト)と、第1入力選択信号DINa0_selとしてデータREG#0を指定した信号を調停回路4へ出力する。また、同時に演算シーケンス制御部1−1は、命令RAM54_1に記憶された図12(b)に示す第1命令を読み出して、演算要求信号REQ1と、演算種類信号CMD1としてSFT(2ビット右シフト)と、第1入力選択信号DINa1_selとしてデータREG#0を指定した信号を調停回路4へ出力する。
調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1がいずれもSFTであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、優先情報テーブルが演算シーケンス制御部1−0の優先順位が高いことを表わしているとする。このような場合には、受付応答部31は、演算シーケンス制御部1−0からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0へ応答信号ACK0を返信する。さらに、完了応答部32は、ディレイ情報テーブルを参照して、SFTがディレイなしの演算であることを特定して、演算シーケンス制御部1−0へ完了信号CPL0を即座に返信する。
時刻t2において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第2命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第2命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてADDと、第1入力選択信号DINa0_selとしてデータREG#0を指定した信号と、第2入力選択信号DINb0_selとしてデータREG#4を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、演算要求信号REQ1と、演算種類信号CMD1(SFT)と、第1入力選択信号DINa1_sel(データREG#0を指定)の調停回路4への出力を継続する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はADDとSFTであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1へ応答信号ACK1を返信する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1へ完了信号CPL1を返信する。
時刻t3において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第3命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第3命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてSFTと、第1入力選択信号DINa0_selとしてデータREG#1を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第2命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第2命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてADDと、第1入力選択信号DINa1_selとしてデータREG#0を指定した信号と、第2入力選択信号DINb1_selとしてデータREG#4を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はSFTとADDであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t4において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第4命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第4命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてADDと、第1入力選択信号DINa0_selとしてデータREG#1を指定した信号と、第2入力選択信号DINb0_selとしてデータREG#4を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第3命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第3命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてSFTと、第1入力選択信号DINa1_selとしてデータREG#1を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はADDとSFTであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t5において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第5命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第5命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてSFTと、第1入力選択信号DINa0_selとしてデータREG#2を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第4命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第4命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてADDと、第1入力選択信号DINa1_selとしてデータREG#1を指定した信号と、第2入力選択信号DINb1_selとしてデータREG#4を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はSFTとADDであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t6において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第6命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第6命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてADDと、第1入力選択信号DINa0_selとしてデータREG#2を指定した信号と、第2入力選択信号DINb0_selとしてデータREG#4を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第5命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第5命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてSFTと、第1入力選択信号DINa1_selとしてデータREG#2を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はADDとSFTであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t7において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第7命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第7命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてSFTと、第1入力選択信号DINa0_selとしてデータREG#3を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第6命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第6命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてADDと、第1入力選択信号DINa1_selとしてデータREG#2を指定した信号と、第2入力選択信号DINb1_selとしてデータREG#4を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はSFTとADDであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t8において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第8命令を読み出す。演算シーケンス制御部1−0は、応答信号ACK0および完了信号CPL0を受信するが、第8命令がHALT命令でないため、演算要求信号REQ0の出力を停止しない。演算シーケンス制御部1−0は、演算種類信号CMD0としてADDと、第1入力選択信号DINa0_selとしてデータREG#3を指定した信号と、第2入力選択信号DINb0_selとしてデータREG#4を指定した信号を調停回路4へ出力する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第7命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第7命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてSFTと、第1入力選択信号DINa1_selとしてデータREG#3を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、同時に2つの演算要求信号REQ0,REQ1を受けると、演算種類信号CMD0,CMD1、優先情報テーブル、および空き情報テーブルを参照して、2つの演算シーケンス制御部からの命令のいずれを受け付けるか、またはいずれも受け付けないかを決定する。この例では、演算種類信号CMD0、CMD1はADDとSFTであり、空き情報テーブルがシフト演算器33が使用されていないことを表わし、加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−0および演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−0への応答信号ACK0の返信を継続し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、SFTおよびADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−0への完了信号CPL0の返信を継続し、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t9において、演算シーケンス制御部1−0は、命令RAM54−0に記憶された図12(b)に示す第9命令を読み出す。第9命令がHALT命令であるため、演算要求信号REQ0の出力を停止する。演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第8命令を読み出す。演算シーケンス制御部1−1は、応答信号ACK1および完了信号CPL1を受信するが、第7命令がHALT命令でないため、演算要求信号REQ1の出力を停止しない。演算シーケンス制御部1−1は、演算種類信号CMD1としてADDと、第1入力選択信号DINa1_selとしてデータREG#3を指定した信号と、第2入力選択信号DINb1_selとしてデータREG#4を指定した信号を調停回路4へ出力する。調停回路4内の受付応答部31は、演算要求信号REQ0が停止されたため、演算シーケンス制御部1−1への応答信号ACK0および完了信号CPL1の出力を停止する。受付応答部31は、演算要求信号REQ1を受けると、演算種類信号CMD1、優先情報テーブル、および空き情報テーブルを参照して、演算シーケンス制御部1−1からの命令を受け付け可能かを決定する。この例では、演算種類信号はCMD1はADDであり、空き情報テーブルが加算器34が使用されていないことを表わしている。受付応答部31は、演算シーケンス制御部1−1からの命令を受け付け可能であると判断し、演算シーケンス制御部1−1への応答信号ACK1の返信を継続する。完了応答部32は、ディレイ情報テーブルを参照して、ADDがディレイなしの演算であることを特定して、演算シーケンス制御部1−1への完了信号CPL1の返信を継続する。
時刻t10において、演算シーケンス制御部1−1は、命令RAM54−1に記憶された図12(b)に示す第9命令を読み出す。第9命令がHALT命令であるため、演算要求信号REQ1の出力を停止する。調停回路4内の受付応答部31は、演算要求信号REQ1が停止されたため、演算シーケンス制御部1−1への応答信号ACK0および完了信号CPL1の出力を停止する。
以上のように、演算シーケンス制御部1−1からのシフト演算の受付が遅延された結果、演算シーケンス制御部1−0,1−1からの演算要求がシフト演算と加算演算を互い違いに繰り返す。その結果、加算器34とシフト演算器33の使用が重複せず、9個のサイクルで4次のFIRフィルタ処理が2回完了する。
以上のように、本実施の形態によれば、複数のデジタル信号処理を並行して実行する場合に、共通演算器で演算を実行することによって、回路面積を小さくすることができる。複数の演算シーケンス制御部が同時に動作することで、同じ演算器呼び出しが同時に発生する場合にも、シーケンス制御部間の競合を調停することができる。
[第2の実施形態]
第1の実施形態では、搭載する演算器の数を抑えることで回路面積の増大が抑えられることができたが、複数の演算シーケンス制御部からの演算器呼び出しの要求の競合が多発し、演算シーケンス制御部が相互に待たされることが多くなるという問題が発生する場合がある。第2の実施形態では、演算器の搭載数を増加することで同時に処理できる数を拡張する。
第1の実施形態では、搭載する演算器の数を抑えることで回路面積の増大が抑えられることができたが、複数の演算シーケンス制御部からの演算器呼び出しの要求の競合が多発し、演算シーケンス制御部が相互に待たされることが多くなるという問題が発生する場合がある。第2の実施形態では、演算器の搭載数を増加することで同時に処理できる数を拡張する。
図14は、第2の実施形態の信号処理回路の詳細を表わす図である。
この信号処理回路81が、第1の実施形態の信号処理回路80と相違する点は、以下である。
この信号処理回路81が、第1の実施形態の信号処理回路80と相違する点は、以下である。
第1群の演算種類について、演算種類ごとに複数の共通演算器が設けられる。ここでは、一例として、第1群の演算種類は乗算とする。つまり、第2の実施形態では、共通演算器107には、2つの乗算器36,92が含まれる。また、乗算器92の追加に従って、調停回路104に、乗算器92へデータを供給するMUX91が追加され、MUX143,MUX144は、5つの演算器33,34,35,36,92,37からの信号を受けるように変更されている。
テーブル記憶部121の空き情報テーブルは、演算器33〜37,92が使用中であるか否かの状態値を定める。使用中の場合には状態値は「0」となり、未使用の場合には状態値は「1」または「2」となる。状態値が「1」は1個が未使用であることを表わし、状態値が「2」は2個が未使用であることを表わす。図14の例では、シフト演算器(SFT)、加算器(ADD)、減算器(SUB)、除算器(DIV)の状態値が「1」であり、いずれも1個が未使用である。また、乗算器(MUL)の状態値が「2」であり、2個が未使用である。
受付応答部131は、演算シーケンス制御部1−0,1−1が、第1群の演算種類(乗算)の演算要求を同時に発生した場合に、その演算種類に対応する複数の共通演算器36,92のうち未使用のものがある場合に、優先順位情報に基づきいずれか1つの演算シーケンス制御部1−0,1−1を選択する。調停回路104は、選択した演算シーケンス制御部からの演算要求を未使用の共通演算器に実行させ、演算結果を選択した演算シーケンス制御部に返す。
受付応答部131は、演算要求に係わる演算種類が乗算の場合に、空き情報テーブルの状態値が「2」の場合に、乗算器36を使用する演算器として割り当て、状態値を「1」に更新する。受付応答部131は、演算要求に係わる演算種類が乗算の場合に、空き情報テーブルの状態値が「1」の場合に、乗算器92を使用する演算器として割り当て、状態値を「0」に更新する。
以上のように、本実施の形態によれば、複数の同じ演算要求を同時に処理することによって、各演算シーケンス制御部へ実装されるデジタル信号処理の処理時間を一定に保つことが可能である。特に、センサ素子を用いた測定についての精度向上等を目的とするにあたっては、CPUコアなどへの負荷を減らすことによって、センサシステム全体として高速処理が可能となる。
[第3の実施形態]
図15は、第3の実施形態の信号処理回路の詳細を表わす図である。
図15は、第3の実施形態の信号処理回路の詳細を表わす図である。
この信号処理回路82が、フロー処理部30と、調停回路204とを備える。
フロー処理部30は、データREG群55_0,55_1,55_2と、55_5と、命令RAM54_2,54_5と、上位シーケンス制御部2_5と、演算ステートマシン部2−0,2−1と、演算シーケンス制御部1−2と、DE_MUX51_0,51_1,51_2,51_5と、MUX52_0,52_1,52_2,52_5,53_0,53_1,53_2,53_5と、システムREG19とを備える。
フロー処理部30は、データREG群55_0,55_1,55_2と、55_5と、命令RAM54_2,54_5と、上位シーケンス制御部2_5と、演算ステートマシン部2−0,2−1と、演算シーケンス制御部1−2と、DE_MUX51_0,51_1,51_2,51_5と、MUX52_0,52_1,52_2,52_5,53_0,53_1,53_2,53_5と、システムREG19とを備える。
フロー処理部30が、第1の実施形態のフロー処理部3と相違する具体的な点は以下である。
第1の実施形態の演算シーケンス制御部1−0,1−1が、第3の実施形態では、演算ステートマシン部2−0,2−1に置き換えられている。演算ステートマシン部2−0,2−1は、シーケンス処理内容がハードワイヤで固定されるため、第3の実施形態のフロー処理部30は、第1の実施形態のような命令RAM54_0,54_1を含まない。
一方、第3の実施形態のフロー処理部30は、第1の実施形態の演算シーケンス制御部1_0,1_1と同様の演算シーケンス制御部1_2を含む。これは、信号処理回路を設計後に、演算ステートマシン部2−0,2−1に実装済みの処理とは別のシーケンス処理を追加することができるようにするためである。命令RAM54_2内の命令を書き換えることで別のシーケンス処理を追加することができる。
第3の実施形態の調停回路204が、第1の実施形態の調停回路4と相違する点は、以下である。
第1の実施形態では、出力用に2つのMUX43,44が設けられるが、第3の実施形態では、3つのシーケンス制御部(1つの演算シーケンス制御部と2つの演算ステートマシン部)に応答を返すために、出力用の3つのMUX243,244,245が設けられる。
受付応答部231は、3つのシーケンス制御部からの演算要求REQ0,REQ1,REQ2、演算種類信号CMD0,CMD1,CMD2を受け付ける。
完了応答部232は、3つのシーケンス制御部へ完了信号CPL0,CPL1,CPL2を返信する。
MUX238〜242は、それぞれ第1データDIN0a,DIN1a,DIN2aおよび第2データDIN0b、DIN1b,DIN2bを受ける。
以上のように、本実施の形態では、変更することのない一般的なシーケンス処理については、演算ステートマシンで実装することによって回路面積を小さくすることができる。
[第4の実施形態]
第2の実施形態では、乗算について複数の共通演算器を設けることで、乗算器呼び出しの要求の競合が多発する場合であっても、同時に処理できる数を拡張することができたが、複数の演算シーケンス制御部からの演算器呼び出しの要求によっては、各々の演算器に対しても競合が多発し、演算シーケンス制御部が相互に待たされることが多くなるという問題が発生する場合がある。第4の実施形態では、演算種類ごとの演算器の搭載数を増加することで同時に処理できる数を拡張する。
第2の実施形態では、乗算について複数の共通演算器を設けることで、乗算器呼び出しの要求の競合が多発する場合であっても、同時に処理できる数を拡張することができたが、複数の演算シーケンス制御部からの演算器呼び出しの要求によっては、各々の演算器に対しても競合が多発し、演算シーケンス制御部が相互に待たされることが多くなるという問題が発生する場合がある。第4の実施形態では、演算種類ごとの演算器の搭載数を増加することで同時に処理できる数を拡張する。
図16は、第4の実施形態の信号処理回路の詳細を表わす図である。
この信号処理回路83が、フロー処理部300と、調停回路304とを備える。
この信号処理回路83が、フロー処理部300と、調停回路304とを備える。
フロー処理部300は、データREG群55_0,55_1,55_2,55_3,55_5と、命令RAM54_0,54_1,54_2,54_3,54_5と、上位シーケンス制御部3_5と、演算シーケンス制御部1−0,1−1,1−2,1−3と、DE_MUX51_0,51_1,51_2,51_3,51_5と、MUX52_0,52_1,52_2,52_3,52_5,53_0,53_1,53_2,53_3,53_5と、システムREG19とを備える。
第4の実施形態では、共通演算器307には、2つのシフト演算器33,361と、2つの加算器34,362と、2つの減算器35,363と、2つの乗算器36,92と、2つの除算器37,364が含まれる。
第4の実施形態では、フロー処理部300に4つの演算シーケンス制御部1−0,1−1,1−2,1−3が含まれることに対応して、調停回路304に10つの演算器33,361,34,362,35,363,36,92,37,364へデータを供給するMUX338,339,340,341,342,343,344,345,346,347が設けられる。4つの演算シーケンス制御部1−0,1−1,1−2,1−3に応答を返すために、出力用の4つのMUX348,349,350,351が設けられる。
受付応答部331は、4つの演算シーケンス制御部からの演算要求REQ0,REQ1,REQ2,REQ3、演算種類信号CMD0,CMD1,CMD2,CMD3を受け付ける。
完了応答部332は、4つの演算シーケンス制御部へ完了信号CPL0,CPL1,CPL2,CPL4を返信する。
MUX338〜347は、それぞれ第1データDIN0a,DIN1a,DIN2a,DIN3aおよび第2データDIN0b、DIN1b,DIN2b,DIN3bを受ける。
テーブル記憶部321の空き情報テーブルは、演算器33〜37,92,361〜364が使用中であるか否かの状態値を定める。使用中の場合には状態値は「0」となり、未使用の場合には状態値は「1」または「2」となる。状態値が「1」は1個が未使用であることを表わし、状態値が「2」は2個が未使用であることを表わす。図16の例では、シフト演算器(SFT)、加算器(ADD)、減算器(SUB)、乗算器(MUL)、除算器(DIV)の状態値が「2」であり、いずれも2個が未使用である。
受付応答部331は、演算シーケンス制御部1−0,1−1,1−2,1−3が、ある演算種類の演算要求を同時に発生した場合に、その演算種類に対応する複数の共通演算器のうち未使用のものがある場合に、演算シーケンス制御部の優先順位情報に基づき、その未使用の演算器の数の分だけ演算シーケンス制御部1−0,1−1,1−2,1−4を選択する。調停回路304は、選択した演算シーケンス制御部からの演算要求を未使用の共通演算器に実行させ、演算結果を選択した演算シーケンス制御部に返す。
受付応答部331は、演算シーケンス制御部1−0,1−1,1−2,1−3が、ある別々の演算種類それぞれについて演算要求を同時に発生した場合に、その演算種類それぞれに対応する複数の複数の共通演算器のうち未使用のものがある場合に、演算シーケンス制御部の優先順位情報に基づき、その未使用の演算器の数の分だけ演算シーケンス制御部1−0,1−1,1−2,1−4を選択する。調停回路304は、選択した演算シーケンス制御部からの演算要求を未使用の共通演算器に実行させ、演算結果を選択した演算シーケンス制御部に返す。
以上のように、本実施の形態によれば、何れの演算種類についても複数の同じ演算要求を同時に処理することによって、第2の実施形態よりもさらに、各演算シーケンス制御部へ実装されるデジタル信号処理の処理時間を一定に保つことが可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1−0,1−1,1−2,1−3 演算シーケンス制御部、1_5,2_5,3_5 上位シーケンス制御部、2−0,2−1 演算ステートマシン部、3,30,300 フロー処理部、4,104,204,304 調停回路、5 演算処理部、6 CPUコア、7,107,307 共通演算器、8 メモリ、10 温度センサ素子、11a,11b,11c A/Dコンバータ、12 光電センサ素子、14 その他のセンサ素子、16a,16b,16c アンプ、18a,18b,18c レジスタ、19 システムREG、21,121,221,321 テーブル記憶部、31,131,231,331 受付応答部、32,132,232,332 完了応答部、33,361 シフト演算器、34,362 加算器、35,363 減算器、36,92 乗算器、37,364 除算器、38〜44,52_0,52_1,52_2,52_3,52_5,53_0,53_1,53_2,53_3,53_5,91,143,144,238〜245,338〜351 MUX、22 マイコン、54_0,54_1,54_2,54_3,54_5 命令RAM、55_0,55_1,55_2,55_3,55_5 データREG群、51_0,51_1,51_2,51_3,51_5 DEMUX、61 論理積回路、62 出力REG選択回路、63,64 入力REG選択回路、65 リクエスト/コマンド生成回路、66 プログラム読み出し制御回路、67 プログラムカウンタ(PC)、80,81,82,83 信号処理回路、99 バス。
Claims (9)
- 各々が、データと命令に基づいてシーケンス制御を行なう複数のシーケンス制御部と、
前記複数のシーケンス制御部からの演算要求に基づき、演算処理を行なう演算処理部を備え、
前記演算処理部は
前記複数のシーケンス制御部で共有される共通演算器と、
前記複数のシーケンス制御部が同時に前記共通演算器を使用する演算要求を発生した場合に、前記各シーケンス制御部の優先順位情報に基づいて、所定のシーケンス制御部を選択して、前記選択したシーケンス制御部からの演算要求を前記共通演算器に実行させ、演算結果を前記選択したシーケンス制御部に返す調停回路とを備えた信号処理回路。 - 前記複数のシーケンス制御部で共有される共通演算器のうち第1群の演算種類の共通演算器は複数備えられており、
前記調停回路は、前記複数のシーケンス制御部が同時に前記第1群の演算種類の共通演算器を使用する演算要求を発生した場合、前記各シーケンス制御部の優先順位情報に基づき複数のシーケンス制御部を選択して、前記選択した複数のシーケンス制御部からの演算要求を各々割り当てられた第1群の演算種類の共通演算器に実行させ、演算結果をそれぞれ前記選択したシーケンス制御部に返す、請求項1記載の信号処理回路。 - 前記複数のシーケンス制御部は、複数の演算種類の演算要求を発生し、
前記信号処理回路は、
演算種類ごとに1つの前記共通演算器を備え、
前記調停回路は、前記複数のシーケンス制御部が同じ演算種類の演算要求を同時に発生した場合に、前記各シーケンス制御部の優先順位情報に基づき、いずれか1つのシーケンス制御部を選択して、前記選択したシーケンス制御部からの演算要求を前記演算種類に対応する共通演算器に実行させ、演算結果を前記選択したシーケンス制御部に返す、請求項1記載の信号処理回路。 - 前記調停回路は、前記複数のシーケンス制御部が同じ演算種類の演算要求を同時に発生した場合に、前記演算種類に対応する演算器が未使用の場合に限り、前記各シーケンス制御部の優先順位情報に基づきいずれか1つのシーケンス制御部を選択して、前記選択したシーケンス制御部からの演算要求を前記演算種類に対応する共通演算器に実行させ、演算結果を前記選択したシーケンス制御部に返す、請求項3記載の信号処理回路。
- 前記調停回路は、前記演算種類のディレイ情報で示される演算処理時間後に得られる演算結果を前記選択されたシーケンス制御部に返す、請求項2記載の信号処理回路。
- 前記調停回路は、前記シーケンス制御部を選択後、前記演算種類に対応する共通演算器を使用中に設定し、前記選択したシーケンス制御部に演算要求を受け付けたことを通知するための応答信号を返す、請求項2記載の信号処理回路。
- 前記調停回路は、前記選択したシーケンス制御部に、ディレイ情報で示される演算処理時間後に演算が完了したことを通知するための完了信号を返す、請求項2記載の信号処理回路。
- 前記信号処理回路は、シーケンス制御部ごとに、実行する命令群を保持する記憶部を備え、
前記シーケンス制御部は、前記完了信号を受けた後、対応する前記記憶部から次の命令を読み出す、請求項7記載の信号処理回路。 - 前記信号処理回路は、シーケンス制御部ごとに、演算に適用される値の入力元または出力先に指定できるデータ記憶部を備え、
前記シーケンス制御部は、命令記憶部から読み出される命令に従い、データ記憶部から値の読み出しとデータ記憶部への値の書き込みが指定できる、請求項8記載の信号処理回路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012094429A JP2013222364A (ja) | 2012-04-18 | 2012-04-18 | 信号処理回路 |
US13/864,834 US9535693B2 (en) | 2012-04-18 | 2013-04-17 | Signal processing circuit |
US15/360,028 US9965273B2 (en) | 2012-04-18 | 2016-11-23 | Signal processing circuit |
US15/943,063 US10360029B2 (en) | 2012-04-18 | 2018-04-02 | Signal processing circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012094429A JP2013222364A (ja) | 2012-04-18 | 2012-04-18 | 信号処理回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013222364A true JP2013222364A (ja) | 2013-10-28 |
Family
ID=49381258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012094429A Pending JP2013222364A (ja) | 2012-04-18 | 2012-04-18 | 信号処理回路 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9535693B2 (ja) |
JP (1) | JP2013222364A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200066953A (ko) * | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
CN111782580B (zh) * | 2020-06-30 | 2024-03-01 | 北京百度网讯科技有限公司 | 复杂计算装置、方法、人工智能芯片和电子设备 |
JP7561657B2 (ja) * | 2021-02-25 | 2024-10-04 | ルネサスエレクトロニクス株式会社 | 半導体装置およびモータ制御装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459665A (en) * | 1979-01-31 | 1984-07-10 | Honeywell Information Systems Inc. | Data processing system having centralized bus priority resolution |
US5168571A (en) * | 1990-01-24 | 1992-12-01 | International Business Machines Corporation | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data |
IL96808A (en) * | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US5842025A (en) * | 1996-08-27 | 1998-11-24 | Mmc Networks, Inc. | Arbitration methods and apparatus |
US6205124B1 (en) * | 1996-12-31 | 2001-03-20 | Compaq Computer Corporation | Multipoint digital simultaneous voice and data system |
US6347344B1 (en) * | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
JP2004524617A (ja) * | 2001-02-14 | 2004-08-12 | クリアスピード・テクノロジー・リミテッド | クロック分配システム |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
US20070299993A1 (en) * | 2001-03-05 | 2007-12-27 | Pact Xpp Technologies Ag | Method and Device for Treating and Processing Data |
US6904057B2 (en) * | 2001-05-04 | 2005-06-07 | Slt Logic Llc | Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification |
US7383336B2 (en) * | 2003-04-24 | 2008-06-03 | International Business Machines Corporation | Distributed shared resource management |
JP4594666B2 (ja) * | 2004-07-12 | 2010-12-08 | 富士通株式会社 | 再構成可能な演算装置 |
US8631483B2 (en) * | 2005-06-14 | 2014-01-14 | Texas Instruments Incorporated | Packet processors and packet filter processes, circuits, devices, and systems |
JP4619252B2 (ja) * | 2005-09-29 | 2011-01-26 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
JP2009026136A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
US8521800B1 (en) * | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
JP4975586B2 (ja) | 2007-11-02 | 2012-07-11 | ファナック株式会社 | 複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラ |
US8566515B2 (en) * | 2009-01-12 | 2013-10-22 | Maxim Integrated Products, Inc. | Memory subsystem |
-
2012
- 2012-04-18 JP JP2012094429A patent/JP2013222364A/ja active Pending
-
2013
- 2013-04-17 US US13/864,834 patent/US9535693B2/en active Active
-
2016
- 2016-11-23 US US15/360,028 patent/US9965273B2/en active Active
-
2018
- 2018-04-02 US US15/943,063 patent/US10360029B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170075687A1 (en) | 2017-03-16 |
US10360029B2 (en) | 2019-07-23 |
US20180225115A1 (en) | 2018-08-09 |
US9535693B2 (en) | 2017-01-03 |
US9965273B2 (en) | 2018-05-08 |
US20130283016A1 (en) | 2013-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102497178B1 (ko) | 재진입 큐를 사용하는 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 루프 실행 제어 | |
KR102545047B1 (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 중지 신호를 사용한 역압 제어 | |
TWI441021B (zh) | 使用多個較低連接埠數記憶體模擬單一記憶體之方法與裝置 | |
CN109145353B (zh) | 用于管线间数据危害避免的方法和系统 | |
JP5154119B2 (ja) | プロセッサ | |
US10360029B2 (en) | Signal processing circuit | |
US9965416B2 (en) | DMA controller with arithmetic unit | |
US10073783B2 (en) | Dual mode local data store | |
KR100730280B1 (ko) | 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 | |
CN109032665B (zh) | 微处理器中指令输出处理方法及装置 | |
CN112074810B (zh) | 并行处理设备 | |
WO2014202825A1 (en) | Microprocessor apparatus | |
WO2006136943A2 (en) | High-level language processor apparatus and method | |
JP2007200180A (ja) | プロセッサシステム | |
US20200192860A1 (en) | Configurable circuit array | |
WO2021106608A1 (ja) | 情報処理装置 | |
CN101615114B (zh) | 完成两次乘法两次加法两次位移的微处理器实现方法 | |
JP5786719B2 (ja) | ベクトルプロセッサ | |
US9323521B2 (en) | Decimal floating-point processor | |
US20230409323A1 (en) | Signal processing apparatus and non-transitory computer-readable storage medium | |
US10606602B2 (en) | Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports | |
JP2012221125A (ja) | データ転送制御装置、データ転送システム及びデータ転送方法 | |
CN114115805A (zh) | 乘累加运算装置和乘累加运算方法 | |
JP2013073297A (ja) | 時分割方式による割り込み制御回路および割り込み制御方法 | |
JP2002278753A (ja) | データ処理システム |