JP5444627B2 - シリアルデータ処理回路 - Google Patents

シリアルデータ処理回路 Download PDF

Info

Publication number
JP5444627B2
JP5444627B2 JP2008084468A JP2008084468A JP5444627B2 JP 5444627 B2 JP5444627 B2 JP 5444627B2 JP 2008084468 A JP2008084468 A JP 2008084468A JP 2008084468 A JP2008084468 A JP 2008084468A JP 5444627 B2 JP5444627 B2 JP 5444627B2
Authority
JP
Japan
Prior art keywords
circuit
data
output
clock
input
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
Application number
JP2008084468A
Other languages
English (en)
Other versions
JP2009238000A (ja
Inventor
久典 藤沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008084468A priority Critical patent/JP5444627B2/ja
Priority to US12/269,172 priority patent/US7903773B2/en
Publication of JP2009238000A publication Critical patent/JP2009238000A/ja
Application granted granted Critical
Publication of JP5444627B2 publication Critical patent/JP5444627B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Image Processing (AREA)

Description

本発明はシリアルデータ処理回路に関し、特にシリアルなN個の信号を1周期内で処理するシリアルデータ処理回路に関する。
LSI(Large Scale Integration)回路の性能を上げる技術として、スーパーパイプライン技術がある。スーパーパイプライン技術は、FF(Flip-Flop)回路とFF回路との間にある組み合わせ回路を複数に分割し、分割した複数の組み合わせ回路をシリアルに結合するようにFF回路を挿入してシリアルデータ処理する技術である。これにより、組み合わせ回路の動作周波数を上げることができ、スループット性能を向上させることができる。
なお、従来、並列モードで動作するシリアルデータ処理されたRISC(Reduced Instruction Set Computer)タイプのプロセッサが知られている(例えば、特許文献1参照)。
特開平5−224929号公報
しかしながら、組み合わせ回路をシリアルに結合するようにFF回路を複数挿入してシリアルデータ処理すると消費電力が増大するという問題点があった。
本件はこのような点に鑑みてなされたものであり、低消費電力化を図ることを目的とする。
上記課題を解決するために、シリアルデータ処理回路が提供される。このシリアルデータ処理回路は、ロジック回路からの出力信号線に対しN個のラッチを接続し、前記ロジック回路からの出力データをN個の前記ラッチで順次ラッチして並列に出力するラッチ手段と、前記データをラッチした前記ラッチ手段から出力される前記データを順次選択して一つの信号線に対するシリアルデータに変換し、次段の前記ロジック回路の入力として供給する選択手段と、クロック遅延出力手段と、を備え、N個の前記ラッチのそれぞれは、前記ラッチに供給されるクロック周波数の1/N周期の異なるタイミングでラッチし、前記クロック遅延出力手段は、前記1/N周期ずつずれた同期クロックをN個の前記ラッチのそれぞれに出力し、周辺回路からの入力データをN個のデータ毎に1周期あたりN個のシリアルデータに変換して前記ロジック回路に対して入力し、または前記ロジック回路からの出力データをN個のラッチで順次ラッチして並列に周辺回路へ出力し、N倍の周波数で動作する周辺回路から供給されるデータをM個単位で信号処理する前記ロジック回路に対して、M/N個のラッチを直列に接続し、それらをN個並列した並列ラッチ回路を周辺回路からの出力端子に接続し、N個の前記並列ラッチ回路に対して、前記ロジック回路と同じ周波数であるが1/N周期ずつずれたクロックを供給して前記周辺回路からのデータをラッチし、各ラッチからの出力を前記ロジック回路への入力データとする
開示の回路では、低消費電力でパイプライン処理を行うことができる。
図1は、シリアルデータ処理回路の概要を示した図である。図1には、ラッチ手段1a〜1d、選択手段2、N個のデータを一周期内で処理するロジック回路3、およびロジック回路3に入力されるデータD1を示している。
ラッチ手段1a〜1dのそれぞれには、ロジック回路3へ入力されるデータまたはロジック回路3内の組合せ回路から出力されるデータが並列に入力される。図1では、ロジック回路3に入力されるデータD1が並列にラッチ手段1a〜1dに入力される場合を示している。ロジック回路3にてN個のシリアルデータを処理するためには、N個のラッチ手段を並列に設けるようにする。図1は、ロジック回路3の4個(N=4)のシリアルデータを処理する例を示している。
ラッチ手段1a〜1dは、順次入力されるデータD1をN個の並列出力となるように順次ラッチして出力する。例えば、ロジック回路にa,b,c,d,e,…のデータD1が順次入力されるとする。この場合、ラッチ手段1a〜1dの出力は、図1に示すようになる。
選択手段2は、データD1をラッチしたラッチ手段1a〜1dから出力されるデータD1を順次選択し、ロジック回路3に出力する。例えば、選択手段2は、ラッチ手段1aがaをラッチしたときは、ラッチ手段1aの出力するaを選択し、ロジック回路3に出力する。ラッチ手段1bがbをラッチしたときは、ラッチ手段1bの出力するbを選択し、ロジック回路3に出力する。これにより、ロジック回路3は、N個のシリアルデータを処理できる。
このように、シリアルデータ処理回路は、ロジック回路3に入力されるデータD1またはロジック回路3から出力されるデータを、N個の並列出力となるように順次ラッチして出力し、ラッチされたデータD1を順次出力する。これにより、低消費電力でパイプライン処理と同じ性能を実現することができる。
次に、実施の形態を図面を参照して詳細に説明する。
図2は、シリアルデータ処理回路を適用したデータ処理装置のブロック構成図である。図2に示すデータ処理装置は、例えば、デジタルフィルタなどの処理を行う。データ処理装置は、シリアルデータ処理回路11および周辺回路12を有している。
シリアルデータ処理回路11には、周辺回路12からデータDinが入力される。シリアルデータ処理回路11は、入力されるデータDinに所定の処理を施して、周辺回路12にデータDoutを出力する。シリアルデータ処理回路11は、周波数fのクロックCLK1に同期して動作し、周辺回路12は、周波数f×N(N:1周期内に処理するデータ数、正の整数)のクロックCLK2に同期して動作する。
図3は、シリアルデータ処理回路のブロック構成図である。図3に示すようにシリアルデータ処理回路11は、遅延器21〜23,51〜53、FF回路31〜34,61〜64、セレクタ41〜44,71〜74、およびロジック回路81を有している。ロジック回路81は、例えば、加算やビットシフトなど、所定の演算を行う回路である。
遅延器21〜23は、入力されるクロックCLK1の位相を、2π/N遅延して出力する。Nは、シリアルデータ数である。図3は、4つのシリアルデータを処理する場合のシリアルデータ処理回路の例を示しており、遅延器21〜23からは、それぞれπ/2位相ずつ(1/4周期ずつ)ずれたクロックCLK1が出力される。
FF回路31〜34は、処理データ数に応じて、ロジック回路81の前段に並列に挿入される。図3は、ロジック回路81にて4個のシリアルデータを処理する例を示し、4個のFF回路31〜34が並列に挿入されている。
FF回路31〜34のそれぞれには、クロックCLK1および遅延器21〜23で遅延されたクロックCLK1が入力される。FF回路31〜34は、入力されるクロックCLK1に同期して、データDinをラッチする。図3の例の場合、FF回路31〜34は、クロックCLK1の位相をπ/2ずつずらしたタイミングで、入力されるデータDinをラッチする。
FF回路31〜34のそれぞれには、周辺回路12から出力されるデータDinが並列に入力される。データDinは、1周期内に処理されるデータである。データDinは、周辺回路12から出力されるデータであり、そのデータ周波数は、f×Nとする。
例えば、a,b,c,d,e,…の周波数f×4のデータDinが周辺回路12から出力されたとする。この場合、まず、FF回路31は、周波数fのクロックCLK1に同期してaをラッチする。次いで、FF回路32は、1/4周期ずれたクロックCLK1に同期して、bをラッチする。次いで、FF回路33は、さらに1/4周期ずれたクロックCLK1に同期して、cをラッチする。次いで、FF回路34は、さらに1/4周期ずれたクロックCLK1に同期して、dをラッチする。次いで、FF回路31は、クロックCLK1に同期して、eをラッチする。以下、同様の動作を繰り返す。
セレクタ41〜44には、FF回路31〜34でラッチされたデータが入力される。また、セレクタ41〜44には、クロックCLK1と、遅延器21で遅延されたクロックCLK1が入力される。セレクタ41〜44は、入力されるクロックCLK1に基づいて、データDinをラッチしたFF回路31〜34のデータDinを選択し、ロジック回路81に出力する。
図3の例の場合、セレクタ41〜44には、クロックCLK1と、クロックCLK1とπ/2位相のずれたクロックCLK1が入力される。従って、セレクタ41〜44には、クロックCLK1の1周期の間に‘0,0’,‘0,1’,‘1,0’,‘1,1’の4状態の信号が入力されることになる。これによって、セレクタ41〜44は、クロックCLK1の1周期の間に、FF回路31〜34でラッチされたデータDinを順次選択してロジック回路81に出力することになる。また、セレクタ41〜44は、FF回路31がデータをラッチした場合、FF回路31がラッチしたデータを選択して出力する。また、FF回路32がデータをラッチした場合、FF回路32がラッチしたデータを選択して出力する。
よって、FF回路31〜34にa,b,c,d,e,…のデータDinを入力した上記例に従えば、セレクタ41〜44からは、周波数f×4のa,b,c,d,e,…のデータが出力されることになる。
なお、セレクタ41〜44に入力するセレクト信号は、N個の異なる位相のクロックCLK1から、CEIL(Log(N))個のクロックを選び、セレクト信号とする。例えば、N=2の場合、2個の位相の異なったクロックから、1個をセレクト信号として選ぶ。N=4の場合(図3の例の場合)は、4個の位相の異なったクロックから、2個(図3の例の場合、クロックCLK1と、遅延器21によって遅延されたクロックCLK1)をセレクト信号として選ぶ。
ロジック回路81の出力側も、上記の入力側と同様の構成を有し、同様の動作をする。遅延器51〜53は、入力されるクロックCLK1の位相を、2π/N遅延して出力する。図3の例の場合、N=4なので、遅延器51〜53からは、それぞれπ/2位相ずつずれたクロックCLK1が出力される。
FF回路61〜64のそれぞれには、クロックCLK1および遅延器51〜53で遅延されたクロックCLK1が入力される。FF回路61〜64は、入力されるクロックCLK1に同期して、ロジック回路81から出力されるデータをラッチする。図3の例の場合、FF回路61〜64は、クロックCLK1の位相をπ/2ずつずらしたタイミングで、ロジック回路81から出力されるデータをラッチする。
セレクタ71〜74には、FF回路61〜64でラッチされたデータが入力される。また、セレクタ71〜74には、クロックCLK1と、遅延器51で遅延されたクロックCLK1とが入力される。セレクタ71〜74は、クロックCLK1と、遅延されたクロックCLK1とに基づいて、FF回路61〜64でラッチされたデータを周辺回路12に出力する。
なお、図3では、ロジック回路81の入力側および出力側に、遅延器21〜23,51〜53、FF回路31〜34,61〜64、およびセレクタ41〜44,71〜74の回路を設けているが、入力側および出力側のどちらか一方にのみ適用してもよい。
また、ロジック回路81の間に、遅延器21〜23、FF回路31〜34、およびセレクタ41〜44を挿入するようにしてもよい。
図4は、タイミング制約を説明する図である。図4には、ロジック回路にて2個のシリアルデータ処理する場合のシリアルデータ処理回路例が示してある。シリアルデータ処理回路は、図に示すように、FF回路91,92,94,95、セレクタ93、およびロジック回路96を有している。
FF回路91とFF回路94は、同じクロックに同期して動作する。FF回路92とFF回路95は、同じクロックに同期して動作する。FF回路91とFF回路94が動作するクロックと、FF回路92とFF回路95が動作するクロックは、位相がπずれている。
セレクタ93には、FF回路92,95に入力されるクロックが入力される。セレクタ93は、このクロックの‘0,1’に基づいて、入力されているデータを選択して出力する。
ロジック回路96の出力側でデータ合成するとき、同じクロック位相を持つFF間でのみデータが取り込まれるようにし、異なる位相クロックのFF間では、データが伝搬しないようにタイミング調整する必要がある。
例えば、図4では、FF回路91とFF回路94は、同位相のクロックで動作しており、FF回路91とFF回路95は、異なる位相のクロックで動作している。データ合成時には、FF回路94は、FF回路92のデータを取り込まないように、FF回路95は、FF回路91のデータを取り込まないようにタイミング調整する必要がある。
すなわち、FF回路から伝搬するデータが異なるクロック位相で動作するFF回路に到達するまでの最小時間は、当該データが到達すべきFF回路のホールドタイムよりも長くする必要がある。また、セレクタで選択されたデータの取り込まれるべきFF回路に到達するタイミングをセットアップ条件とし、セレクタで選択されたデータの取り込まれてはならないFF回路に到達するタイミングをホールド条件とする必要がある。
図5は、図4の信号間のタイミングを示した図である。図5には、図4のFF回路91,92,94,95およびセレクタ93に入力されるクロックのタイミングを示している。FF回路91,94には、同じ位相のクロックが入力されるが、クロックスキューにより、その入力タイミングが少しずれている。同様に、FF回路92,95には、同じ位相のクロックが入力されるが、クロックスキューにより、その入力タイミングが少しずれている。FF回路92に入力されるクロックと、セレクタ93に入力されるクロックは同位相となっている。
図5の各記号は以下の通りである。ただし、iには、FF回路91,92に対応する1,2の数字が当てはまる。jには、FF回路94,95に対応する1,2の数字が当てはまる。
T:クロック周期。
Ts:FF回路のセットアップ時間。
Th:FF回路のホールド時間。
tij:FF回路iとFF回路jとの間の信号伝搬時間。
tsj:セレクタとFF回路jの間の信号伝搬時間。
Twij:FF回路iに対するFF回路jのクロックスキュー。
Twsj:セレクタに対するFF回路jのクロックスキュー。
Ts1s:セレクタ93とFF回路94の間のセットアップ時間。
Ts2s:セレクタ93とFF回路95の間のセットアップ時間。
Ts1h:セレクタ93とFF回路94の間のホールド時間。
Ts2h:セレクタ93とFF回路95の間のホールド時間。
セットアップ条件は、以下のようになる。
t11<T+Tw11−Ts
t22<T+Tw22―Ts
Ts1s<T+Tws2−Tw12+Tw11−Ts
Ts2s<T+Tws1−Tw21+Tw22―Ts
ホールド条件は、以下のようになる。
t12>Tw12+Th
t21>Tw21+Th
ts1h>Tws1+Th
Ts2h>Tws2+Th
このように、ロジック回路96には、1クロックの周期の間に、位相の異なるクロック数(図4では2)のデータが入力され、処理される。それぞれのデータは、タイミング制約により分離されており、同じ位相のクロックに同期したFF回路間によりデータが伝搬することになる。その結果、クロックの1周期の間に、複数のデータ(その数は、位相の異なるクロックの数に同じ)を処理することが可能となる。
図6は、シリアルデータ処理前のロジック回路のブロック構成図である。図には、FF回路101,102およびロジック回路103が示してある。FF回路101,102には、クロックCLK11が入力されている。FF回路101は、クロックCLK11に同期して入力されるデータをラッチし、ロジック回路103に入力する。ロジック回路103は、例えば、データの加算、シフトなどの演算を行って出力する。FF回路102は、クロックCLK11に同期してロジック回路103から出力されるデータをラッチし、周辺回路に出力する。
図7は、図6のロジック回路にFF回路をシリアルに挿入してスーパーパイプライン処理したブロック構成図である。図7において、図6と同じものには同じ符号を付している。
図7では、図6のロジック回路103をロジック回路103a〜103dに分割している。そして、分割した複数のロジック回路103a〜103dをシリアルに結合するようにFF回路111〜113を挿入して4段のパイプライン処理を実現している。FF回路101,102,111〜113には、クロックCLK11の4倍の周波数のクロックCLK12が入力される。なお、図6に図3の例を適用する場合は、図6のFF回路101,102にFF回路を並列に挿入し、セレクタを挿入して実現することになる。
次の式(1)は、図6の回路の消費電力を示す。リーク電流は、無視できるものとする。
Figure 0005444627
図6のロジック回路103をスーパーパイプライン処理する場合、FF回路の挿入により、Nが増加する。また、クロック周波数を上げることにより、Fが増大する。次の式(2)は、ロジック回路をn段のロジック回路に分割し、クロック周波数をn倍にしたときの消費電力である。
Figure 0005444627
式(2)の第1項は、本来ロジック回路にあるFF回路で消費される電力を示している。第2項は、パイプライン処理により追加したFF回路により消費される電力を示している。第3項は、ロジック回路で消費される電力を示している。第4項は、クロック系回路で消費される電力を示している。
式(2)と式(1)を比較すると、式(2)には、FF回路の追加によって第2項が追加されている。また、回路全体の動作周波数は、n倍となるため、各項にnが乗算されている。
一方、図3で示したように、ロジック回路の入出力にFF回路を並列に挿入してシリアルデータ処理する場合では、消費電力は、次の式(3)で示される。
Figure 0005444627
式(3)の第1項は、FF回路で消費される電力を示している。第2項は、ロジック回路で消費される電力を示している。第3項は、セレクタで消費される電力を示している。第4項は、クロック系回路で消費される電力を示している。
式(3)と式(1)とを比較すると、式(3)には、セレクタで消費される電力を示す第3項が追加されている。また、FF回路の数がn倍となるため、第1項にnが乗算されている。また、ロジック回路では、1クロック内にn組のデータが伝搬するため、動作率がn倍となることにより、第2項の消費電力がn倍となっている。
次の式(4)は、式(3)と式(2)の差分をとったものである。
Figure 0005444627
第1項は、セレクタの追加による消費電力の増加分を示している。第2項は、図7のパイプライン処理ではクロック周波数がn倍となるのに対し、図3のシリアルデータ処理では、クロック周波数が変わらないことによる差分を示している。第3項は、パイプライン処理により追加されたFF回路で消費される電力を示している。
ここで、式(4)において、動作率を平均動作率αとする。また、追加したFF回路数を、パイプライン処理前のFF回路数のn倍(n段分)としてn・NFとする。また、FF回路の消費電力をq・Pεと近似する。すると、式(4)は、式(5)のようになる。
Figure 0005444627
通常、kは、2入力セレクタで2、3入力セレクタで3、6入力セレクタで6程度であるのに対し、qは、10程度である。従って、第1項は、負数であり、nが大きくなるに従いますます減少する。一方、第2項は、0以下の値である。
このように、ロジック回路の入出力にFF回路を並列に挿入してシリアルデータ処理したシリアルデータ処理回路では、図7のロジック回路103a〜103dにFF回路111〜113を挿入してパイプライン処理するのに対し、大幅な電力削減となる。
図8は、データ処理装置の他のブロック構成図である。図2のデータ処理装置では、周辺回路12の周波数をシリアルデータ処理回路11の周波数に対しN倍にして、データDinをシリアルデータ処理回路に入力するようにした。図8では、周辺回路12からシリアルデータ処理回路11に入力されるデータDinをシリアルデータに変換してシリアルデータ処理回路11に入力し、シリアルデータ処理回路11から出力されるデータをパラレルデータに変換して周辺回路12に出力する。図8において、図2と同じものには同じ符号を付し、その説明を省略する。
図8に示すように、データ処理装置は、クロック位相シフト器121,122を有している。シリアルデータ処理回路11の入力には、セレクタ131a,…,131nが設けられている。シリアルデータ処理回路11の出力には、FF回路群141a,…,141nが設けられている。
クロック位相シフト器121は、位相を2π/Nシフトしたクロックをセレクタ131a〜131nに出力する。これにより、セレクタ131a,…,131nの各出力からは、周辺回路12のN個のデータDinを一周期内の連続したデータに変換した、パラレル−シリアル変換のデータが出力される。
クロック位相シフト器122は、位相を2π/NシフトしたクロックをFF回路群141a〜141nに出力する。これにより、FF回路群141a,…,141nの各出力からは、シリアルデータ処理回路11にて1周期内に含まれるN個のデータを変換した、シリアル−パラレル変換のデータDoutが出力される。
このように、シリアルデータ処理回路11に入出力するデータをパラレル−シリアル変換およびシリアル−パラレル変換することにより、シリアルデータ処理回路11と周辺回路12とを同じ周波数のクロックCLK21で動作させることが可能となる。
図9は、FIRフィルタの回路図である。図9に示すように、FIR(Finite Impulse Response)フィルタは、8ビット入出力のFF回路151〜157,10ビット入出力のFF回路166,167、クロックバッファ158,159、8ビット入力−9ビット出力の加算器160,161,163,164、9ビット入力−10ビット出力の加算器162,165、10ビット入力−11ビット出力の加算器168、およびシフト回路169を有している。図9のFIRフィルタは、8タップのFIRフィルタであり、8ビットのデータをシーケンシャルに入力し、フィルタリングした結果を8ビットに丸めて出力する。
FF回路151〜157には、クロックバッファ158を介してクロックCLK31が入力される。FF回路151には、フィルタリングする8ビットのデータが入力される。FF回路151〜157は、クロックCLK31に同期して、順次入力されるデータを後段のFF回路151〜157へ出力する。
加算器160には、現在入力されたデータと、1クロック前に入力されたデータとが入力される。加算器160は、これらのデータを加算して、加算器162に出力する。
加算器161には、2クロック前に入力されたデータと、3クロック前に入力されたデータとが入力される。加算器161は、これらのデータを加算して、加算器162に出力する。
加算器162は、加算器160と加算器161から出力されるデータを加算し、FF回路166に出力する。
加算器163には、4クロック前に入力されたデータと、5クロック前に入力されたデータとが入力される。加算器163は、これらのデータを加算して、加算器165に出力する。
加算器164には、6クロック前に入力されたデータと、7クロック前に入力されたデータとが入力される。加算器164は、これらのデータを加算して、加算器165に出力する。
加算器165は、加算器163と加算器164から出力されるデータを加算し、FF回路167に出力する。
FF回路166,167には、クロックバッファ159を介してクロックCLK31が入力される。FF回路166,167は、加算器162,165から出力されるデータをラッチして、加算器168に出力する。
加算器168は、FF回路166,167から出力されるデータを加算して、シフト回路169に出力する。シフト回路169は、加算器168から出力される11ビットのデータを、LSB(Least Significant Bit)方向に3ビットシフトして出力する。すなわち、シフト回路169は、FIRフィルタに入力された8個分の加算データを8で除算して平均化している。
図10は、2個連続のデータをシリアルデータ処理できるようにしたFIRフィルタの回路図である。図に示すFIRフィルタは、FF回路171〜178,189,190,192,193、クロックバッファ179〜182、加算器183〜188,195、セレクタ191,194、およびシフト回路196を有している。
なお、図10の加算器195とシフト回路196を、図3のロジック回路81に対応させるならば、図10のFF回路189,190とFF回路192,193は、図3のFF回路31〜34に対応し、図10のセレクタ191とセレクタ194は、図3のセレクタ41〜44に対応する。また、図10の加算器183〜188を、図3のロジック回路81に対応させるならば、図10のFF回路189,190とFF回路192,193は、図3のFF回路61〜64に対応し、図10のセレクタ191とセレクタ194は、セレクタ71〜74に対応する。FF回路171〜178は、図2の周辺回路12(シリアルデータ処理回路11にデータを送り込むための回路)に対応する。
すなわち、図10のFIRフィルタは、図9のFF回路166,167に並列にFF回路を挿入し、セレクタを設けることによって、図9のFIRフィルタを2個連続のデータをシリアルデータ処理している。
FF回路171,173,175,177には、クロックバッファ179を介してクロックCLK41が入力される。FF回路171には、フィルタリングする8ビットのデータが入力される。FF回路171,173,175,177は、クロックCLK41に同期して、順次入力されるデータを後段のFF回路171,173,175,177へ出力する。
FF回路172,174,176,178には、クロックバッファ180を介してクロックCLK41が入力される。FF回路172には、フィルタリングする8ビットのデータが入力される。FF回路172,174,176,178は、クロックCLK41に同期して、順次入力されるデータを後段のFF回路172,174,176,178へ出力する。
FF回路171,173,175,177は、ポジティブエッジのFF回路であり、FF回路172,174,176,178は、ネガティブエッジのFF回路である。すなわち、FF回路171とFF回路172には、πの位相差を持ったクロックCLK41が入力されているのと同じである。なお、FF回路171〜178を、同じエッジのFF回路とした場合には、クロックバッファ179,180の一方の出力にπの位相差を持つ遅延回路を挿入する。
加算器183には、FF回路171から出力されるデータと、FF回路172から出力されるデータとが入力される。加算器183は、これらのデータを加算して、加算器185に出力する。
加算器184には、FF回路173から出力されるデータと、FF回路174から出力されるデータとが入力される。加算器184は、これらのデータを加算して、加算器185に出力する。
加算器185は、加算器183から出力されるデータと、加算器184から出力されるデータを加算して、FF回路189,190に出力する。
加算器186には、FF回路175から出力されるデータと、FF回路176から出力されるデータとが入力される。加算器186は、これらのデータを加算して、加算器188に出力する。
加算器187には、FF回路177から出力されるデータと、FF回路178から出力されるデータとが入力される。加算器187は、これらのデータを加算して、加算器188に出力する。
加算器188は、加算器186から出力されるデータと、加算器187から出力されるデータを加算して、FF回路192,193に出力する。
FF回路189には、クロックバッファ181を介してクロックCLK41が入力される。FF回路189は、クロックCLK41に同期して、加算器185から出力されるデータをセレクタ191に出力する。
FF回路190には、クロックバッファ182を介してクロックCLK41が入力される。FF回路190は、クロックCLK41に同期して、加算器185から出力されるデータをセレクタ191に出力する。
FF回路189は、ポジティブエッジのFF回路であり、FF回路190は、ネガティブエッジのFF回路である。すなわち、FF回路189とFF回路190には、πの位相差を持ったクロックCLK41が入力されているのと同じである。なお、FF回路189,190を、同じエッジのFF回路とした場合には、クロックバッファ181,182の一方の出力にπの位相差を持つ遅延回路を挿入する。
セレクタ191には、クロックバッファ182を介してクロックCLK41が入力される。セレクタ191は、クロックCLK41の0,1に基づいて、FF回路189,190から出力されるデータを選択して出力する。
FF回路192には、クロックバッファ181を介してクロックCLK41が入力される。FF回路192は、クロックCLK41に同期して、加算器188から出力されるデータをセレクタ194に出力する。
FF回路193には、クロックバッファ182を介してクロックCLK41が入力される。FF回路193は、クロックCLK41に同期して、加算器188から出力されるデータをセレクタ194に出力する。
FF回路192は、ポジティブエッジのFF回路であり、FF回路193は、ネガティブエッジのFF回路である。すなわち、FF回路192とFF回路193には、πの位相差を持ったクロックCLK41が入力されているのと同じである。なお、FF回路192,193を、同じエッジのFF回路とした場合には、クロックバッファ181,182の一方の出力にπの位相差を持つ遅延回路を挿入する。
セレクタ194には、クロックバッファ182を介してクロックCLK41が入力される。セレクタ194は、クロックCLK41の0,1に基づいて、FF回路192,193から出力されるデータを選択して出力する。
加算器195は、セレクタ191,194から出力されるデータを加算して、シフト回路196に出力する。シフト回路196は、加算器195から出力される11ビットのデータを8ビットにシフトして出力する。
図11は、図10の回路のタイミングチャートである。図11には、図10に示す各部の出力の信号波形が示してある。
図10のFIRフィルタには、図11のinに示すようにa,b,c,…のデータが入力されるとする。
FF回路171は、クロックCLK41のポジティブエッジでデータinをラッチする。従って、FF回路171の出力は、図11のff1.oに示すようになる。
FF回路173,175,177は、FF回路171から出力されるデータを1クロック遅れてラッチする。従って、FF回路173,175,177の出力は、図11のff3.o,ff5.o,ff7.oに示すようになる。
FF回路172は、クロックCLK41のネガティブエッジでデータinをラッチする。従って、FF回路172の出力は、図11のff2.oに示すようになる。
FF回路174,176,178は、FF回路172から出力されるデータを1クロック遅れてラッチする。従って、FF回路174,176,178の出力は、図11のff4.o,ff6.o,ff8.oに示すようになる。
加算器183は、FF回路171とFF回路172の出力を加算する。従って、加算器183の出力は、図11のadd1.oに示すように、ff1.oとff2.oを加算した値となる。
加算器184は、FF回路173とFF回路174の出力を加算する。従って、加算器184の出力は、図11のadd2.oに示すように、ff3.oとff4.oを加算した値となる。
加算器186は、FF回路175とFF回路176の出力を加算する。従って、加算器186の出力は、図11のadd3.oに示すように、ff5.oとff6.oを加算した値となる。
加算器187は、FF回路177とFF回路178の出力を加算する。従って、加算器187の出力は、図11のadd4.oに示すように、ff7.oとff8.oを加算した値となる。
加算器185は、加算器183の出力と加算器184の出力を加算する。従って、加算器185の出力は、図11のadd5.oに示すように、add1.oとadd2.oを加算した値となる。
加算器188は、加算器186の出力と加算器187の出力を加算する。従って、加算器188の出力は、図11のadd6.oに示すように、add3.oとadd4.oを加算した値となる。
FF回路189は、クロックCLK41のポジティブエッジで、加算器185から出力されるデータをラッチする。従って、FF回路189の出力は、図11のff9.oに示すようになる。
FF回路190は、クロックCLK41のネガティブエッジで、加算器185から出力されるデータをラッチする。従って、FF回路190の出力は、図11のff10.oに示すようになる。
FF回路192は、クロックCLK41のポジティブエッジで、加算器188から出力されるデータをラッチする。従って、FF回路192の出力は、図11のff11.oに示すようになる。
FF回路193は、クロックCLK41のネガティブエッジで、加算器188から出力されるデータをラッチする。従って、FF回路193の出力は、図11のff12.oに示すようになる。
セレクタ191は、クロックCLK41に同期して、FF回路189,190の一方のデータを選択し、出力する。従って、セレクタ191の出力は、図11のsel1.oに示すようになる。
セレクタ194は、クロックCLK41に同期して、FF回路192,193の一方のデータを選択し、出力する。従って、セレクタ194の出力は、図11のsel2.oに示すようになる。
加算器195は、セレクタ191,194の出力を加算する。従って、加算器195の出力は、図11のadd7.oに示すようになる。
シフト回路196は、加算器195の出力を3ビットシフトする。従って、シフト回路196の出力は、図11のoutに示すようになる。
このようにして、図10に示す2個のシリアルデータを処理するFIRフィルタは、入力されるデータinのフィルタリング処理を行う。
図12は、図9のFIRフィルタにFF回路をシリアルに挿入してパイプライン処理した回路図である。図12のFIRフィルタは、図9のFIRフィルタを2段にパイプライン処理した回路である。図12において図9と同じものには同じ符号を付し、その説明を省略する。
図12のFIRフィルタでは、加算器160,161と加算器162との間にFF回路203,204が挿入されている。加算器163,164と加算器165との間にFF回路205,206が挿入されている。加算器168とシフト回路169との間にFF回路207が挿入されている。
図12の回路を図7に対応させるならば、図12のFF回路203〜206は、例えば、図7のFF回路111に対応する。図12のFF回路207は、例えば、図7のFF回路112に対応する。すなわち、図12のFIRフィルタでは、FF回路203〜206とFF回路207とを挿入することによって、図9のFIRフィルタを2段にパイプライン処理している。
FF回路203〜206には、クロックバッファ201を介して、クロックCLK51が入力される。FF回路207には、クロックバッファ202を介して、クロックCLK51が入力される。
クロックCLK51の周波数は、図9のクロックCLK31に対して2倍となっている。FF回路203〜206とFF回路207とをFIRフィルタにシリアルに挿入して2段のパイプライン処理回路にすることにより、周波数を2倍にすることができる。
図10のFIRフィルタの消費電力削減効果を見積もる。図10のFIRフィルタと、図12のFIRフィルタのゲート数を比較すると、図12のFIRフィルタでは、FFが123個(1ビットにつき1個として算出)に対し、図10のFIRフィルタでは、104個となる。従って、図10のFIRフィルタの方が図12のFIRフィルタより19個少ない。一方、図10のFIRフィルタでは、20個のセレクタの回路が増加する。
2入力のセレクタの消費電力は、基本BC(Basic Cell:2入力のNAND回路やNOR回路)の1.5倍、FFの消費電力は、基本BCの10倍と仮定すると、セレクタにおける電力増加分とFFにおける電力減少分を表す式(5)の第1項は、次の式(6)に示すようになる。
Figure 0005444627
なお、式(5)は、近似を用いているため、式(6)は、式(5)から直接計算せず、式(2)と式(3)から導いている。
また、クロックバッファまで考慮すると、図12のFIRフィルタでは14個に対し、図10のFIRフィルタでは、12個となる。クロックラインの動作率を2として、式(5)の第2項を求めると、次の式(7)に示すようになる。
Figure 0005444627
式(6)と式(7)を加算した値が、図10のFIRフィルタの、図12のFIRフィルタに対する電力削減量となる。
このように、FIRフィルタのロジック回路に並列にFF回路189,190,192,193とセレクタ191,194を挿入してシリアルデータ処理することにより、低消費電力でパイプライン処理と同じ性能を実現することができる。
シリアルデータ処理回路の概要を示した図である。 シリアルデータ処理回路を適用したデータ処理装置のブロック構成図である。 シリアルデータ処理回路のブロック構成図である。 タイミング制約を説明する図である。 図4の信号間のタイミングを示した図である。 シリアルデータ処理前のロジック回路のブロック構成図である。 図6のロジック回路にFF回路をシリアルに挿入してスーパーパイプライン処理したブロック構成図である。 データ処理装置の他のブロック構成図である。 FIRフィルタの回路図である。 図9のFIRフィルタを2段にシリアルデータ処理した回路図である。 図10の回路のタイミングチャートである。 図9のFIRフィルタにFF回路をシリアルに挿入してパイプライン処理した回路図である。
1a,1b,1c,1d ラッチ手段
2 選択手段
3 ロジック回路
D1 データ

Claims (3)

  1. シリアルデータ処理回路において、
    ロジック回路からの出力信号線に対しN個のラッチを接続し、前記ロジック回路からの出力データをN個の前記ラッチで順次ラッチして並列に出力するラッチ手段と、
    前記データをラッチした前記ラッチ手段から出力される前記データを順次選択して一つの信号線に対するシリアルデータに変換し、次段の前記ロジック回路の入力として供給する選択手段と、
    クロック遅延出力手段と、を備え、
    N個の前記ラッチのそれぞれは、前記ラッチに供給されるクロック周波数の1/N周期の異なるタイミングでラッチし、
    前記クロック遅延出力手段は、前記1/N周期ずつずれた同期クロックをN個の前記ラッチのそれぞれに出力し、
    周辺回路からの入力データをN個のデータ毎に1周期あたりN個のシリアルデータに変換して前記ロジック回路に対して入力し、または前記ロジック回路からの出力データをN個のラッチで順次ラッチして並列に周辺回路へ出力
    N倍の周波数で動作する周辺回路から供給されるデータをM個単位で信号処理する前記ロジック回路に対して、
    M/N個のラッチを直列に接続し、それらをN個並列した並列ラッチ回路を周辺回路からの出力端子に接続し、N個の前記並列ラッチ回路に対して、前記ロジック回路と同じ周波数であるが1/N周期ずつずれたクロックを供給して前記周辺回路からのデータをラッチし、各ラッチからの出力を前記ロジック回路への入力データとする、
    ことを特徴とするシリアルデータ処理回路。
  2. 前記ラッチ手段をネガティブエッジおよびポジティブエッジの2種類の前記ラッチで構成し、2/N周期ずつずれた同期クロックをN個の前記ラッチのそれぞれに出力するクロック遅延出力手段を有することを特徴とする請求項1記載のシリアルデータ処理回路。
  3. 前記ロジック回路に対して、N倍の周波数で動作する周辺回路から入力データが入力され、N倍の周波数で動作する前記周辺回路へ出力データを出力することを特徴とする請求項1記載のシリアルデータ処理回路。
JP2008084468A 2008-03-27 2008-03-27 シリアルデータ処理回路 Expired - Fee Related JP5444627B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008084468A JP5444627B2 (ja) 2008-03-27 2008-03-27 シリアルデータ処理回路
US12/269,172 US7903773B2 (en) 2008-03-27 2008-11-12 Serial data processing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008084468A JP5444627B2 (ja) 2008-03-27 2008-03-27 シリアルデータ処理回路

Publications (2)

Publication Number Publication Date
JP2009238000A JP2009238000A (ja) 2009-10-15
JP5444627B2 true JP5444627B2 (ja) 2014-03-19

Family

ID=41118908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008084468A Expired - Fee Related JP5444627B2 (ja) 2008-03-27 2008-03-27 シリアルデータ処理回路

Country Status (2)

Country Link
US (1) US7903773B2 (ja)
JP (1) JP5444627B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328014B1 (ko) * 2015-08-24 2021-11-18 삼성전자주식회사 싱글 와이어 인터페이스를 포함하는 장치와 이를 포함하는 데이터 처리 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128818A (ja) * 1986-11-18 1988-06-01 Fujitsu Ltd 多重変換回路
JPH01102633A (ja) * 1987-10-15 1989-04-20 Nec Corp エラスティックメモリ書込み回路
JPH0490622A (ja) * 1990-08-03 1992-03-24 Hitachi Electron Eng Co Ltd ビット順序変換装置
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
JP3380907B2 (ja) * 1996-04-26 2003-02-24 日本電気エンジニアリング株式会社 速度変換回路
JPH10177470A (ja) * 1996-12-19 1998-06-30 Nippon Denki Musen Denshi Kk データ変換回路およびデータ変換方法
JP2001111536A (ja) * 1999-08-13 2001-04-20 Lucent Technol Inc 信号間に必要な対応関係を確保する信号処理方法および装置
US7340021B1 (en) * 2003-11-13 2008-03-04 Altera Corporation Dynamic phase alignment and clock recovery circuitry
US7440532B1 (en) * 2004-04-21 2008-10-21 Altera Corporation Bit slip circuitry for serial data signals
JP4546775B2 (ja) * 2004-06-30 2010-09-15 富士通株式会社 時分割多重処理可能なリコンフィギュラブル回路
JP4764354B2 (ja) * 2007-01-10 2011-08-31 株式会社リコー 差動信号受信回路装置

Also Published As

Publication number Publication date
US7903773B2 (en) 2011-03-08
US20090249025A1 (en) 2009-10-01
JP2009238000A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
CN105991137B (zh) 可变分数速率数字重采样的系统和方法
US8411782B2 (en) Parallel generation and matching of a deskew channel
JP2008011189A (ja) タイム・インターリーブa/d変換装置
US8699558B1 (en) Decoupling and pipelining of multiplexer loop in parallel processing decision-feedback circuits
CN110308763B (zh) 一种多时钟电路及基于该电路产生目标时钟的方法
US20080071846A1 (en) Processor Architecture for Programmable Digital Filters in a Multi-Standard Integrated Circuit
JP6700566B2 (ja) 等化回路、受信回路、及び半導体集積回路
JP2008021119A (ja) デジタルフィルタおよびこれを用いた画像処理装置
JP5444627B2 (ja) シリアルデータ処理回路
JP3446811B2 (ja) データサンプリング方法及び装置
JPH0660562A (ja) 音声データ補間回路
US20170063346A1 (en) Configurable fir filter with segmented cells
JP4330146B2 (ja) スキュー調整回路
JP2005020554A (ja) デジタルフィルタ
JP5515980B2 (ja) 受信装置
CN112187215B (zh) 一种级联半带插值滤波器结构
US6486815B1 (en) Oversampling circuit and digital/analog converter
JP4945800B2 (ja) デマルチプレクサ回路
CN115085693B (zh) 一种多通道多相内插处理架构
JP2008219535A (ja) 同期回路
JP2008177947A (ja) 可変レイテンシ回路及び可変レイテンシ回路のレイテンシ制御方法
JP4243473B2 (ja) Firディジタルフィルタ
Ohlsson et al. Implementation of a combined interpolator and decimator for an OFDM system demonstrator
JPH09326671A (ja) ディジタル補間フィルタ回路
JPH118531A (ja) オーバサンプルディジタルフィルタ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130419

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: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees