JP2023044520A - 信号処理回路および受信装置 - Google Patents
信号処理回路および受信装置 Download PDFInfo
- Publication number
- JP2023044520A JP2023044520A JP2021152581A JP2021152581A JP2023044520A JP 2023044520 A JP2023044520 A JP 2023044520A JP 2021152581 A JP2021152581 A JP 2021152581A JP 2021152581 A JP2021152581 A JP 2021152581A JP 2023044520 A JP2023044520 A JP 2023044520A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- data
- flip
- symbol
- signal
- 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 description 37
- 230000000630 rising effect Effects 0.000 claims description 15
- 230000003111 delayed effect Effects 0.000 claims description 9
- 230000001934 delay Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 244000144992 flock Species 0.000 claims 1
- 230000010363 phase shift Effects 0.000 description 61
- 238000004891 communication Methods 0.000 description 25
- 238000012360 testing method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 230000007704 transition Effects 0.000 description 9
- 230000000052 comparative effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03F—AMPLIFIERS
- H03F3/00—Amplifiers with only discharge tubes or only semiconductor devices as amplifying elements
- H03F3/04—Amplifiers with only discharge tubes or only semiconductor devices as amplifying elements with semiconductor devices only
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】シンボルアラインにおける信号の遅延を抑制すること。【解決手段】シフトレジスタは、複数のシンボルを含むデータを転送するシリアルデータ信号を第1クロックに基づいて並列化する。第1回路は、第1数のビットの幅を有するパラレルデータ信号を転送するためのクロック信号である第2クロックを第1クロックに基づいて生成する。第1のフリップフロップ群は、シフトレジスタによって並列化されたシリアルデータ信号から第1数のビットのデータを第2クロックに基づいて順次取り込む。そして、第1のフリップフロップ群は、順次取り込んだ第1数のビットのデータをパラレルデータ信号として出力する。第2回路は、第1のフリップフロップ群が複数のシンボルの各シンボルの先頭のビットデータを先頭とする第1数のビットのデータを取り込むように、第1回路が生成する第2クロックの位相を調整する。【選択図】図3
Description
本実施形態は、信号処理回路および受信装置に関する。
PCIe(TM)などのシリアル通信規格が知られている。このようなシリアル通信規格に準拠した受信装置は、受信したシリアルデータ信号をパラレルデータ信号に変換する信号処理回路を有する。信号処理回路は、シリアルデータ信号をパラレルデータ信号に変換する際に、シリアルデータ信号として受信する各シンボルの先頭のビットデータをパラレルデータ信号のビット0の位置にアラインする、シンボルアラインを行う。
一つの実施形態は、シンボルアラインにおける信号の遅延を抑制した信号処理回路および受信装置を提供することを目的とする。
一つの実施形態によれば、信号処理回路は、シフトレジスタと、第1回路と、第1のフリップフロップ群と、第2回路と、を備える。シフトレジスタは、複数のシンボルを含むデータを転送するシリアルデータ信号を第1クロックに基づいて並列化する。第1クロックは、シリアルデータ信号を転送するためのクロック信号である。第1回路は、第1数のビットの幅を有するパラレルデータ信号を転送するためのクロック信号である第2クロックを第1クロックに基づいて生成する。第1のフリップフロップ群は、シフトレジスタによって並列化されたシリアルデータ信号から第1数のビットのデータを第2クロックに基づいて順次取り込む。そして、第1のフリップフロップ群は、順次取り込んだ第1数のビットのデータをパラレルデータ信号として出力する。第2回路は、第1のフリップフロップ群が複数のシンボルの各シンボルの先頭のビットデータを先頭とする第1数のビットのデータを取り込むように、第1回路が生成する第2クロックの位相を調整する。
実施形態の信号処理回路および受信装置は、シリアルデータ信号を受信できる任意の装置に適用可能である。ここでは一例として、ホストとメモリシステムとを備え、ホストとメモリシステムとはPCIe(TM)の規格に準拠した通信が可能な情報処理システムについて説明する。以下に添付図面を参照して、実施形態にかかる信号処理回路および受信装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態の受信装置が適用された情報処理システムの構成の一例を示す模式的な図である。情報処理システムは、メモリシステム1とホスト2と、を備える。メモリシステム1とホスト2とは、PCIe(TM)の規格に準拠したシリアル通信が可能なシリアルバス3で接続されている。なお、メモリシステム1とホスト2との通信の規格はPCIe(TM)に限定されない。任意のシリアル通信規格が適用可能である。
図1は、第1の実施形態の受信装置が適用された情報処理システムの構成の一例を示す模式的な図である。情報処理システムは、メモリシステム1とホスト2と、を備える。メモリシステム1とホスト2とは、PCIe(TM)の規格に準拠したシリアル通信が可能なシリアルバス3で接続されている。なお、メモリシステム1とホスト2との通信の規格はPCIe(TM)に限定されない。任意のシリアル通信規格が適用可能である。
シリアルバス3は、ホスト2からメモリシステム1にシリアルデータ信号を転送する第1通信路3-1と、メモリシステム1からホスト2にシリアルデータ信号を転送する第2通信路3-2と、の対を含む。第1通信路3-1および第2通信路3-2のそれぞれを転送されるシリアルデータ信号は、差動信号である。よって、第1通信路3-1および第2通信路3-2のそれぞれは、2本の信号線によって構成される。なお、第1通信路3-1と第2通信路3-2との対は、レーンとも称される。シリアルバス3は、レーンを2以上備えていてもよい。
メモリシステム1は、4つのメモリチップ11と、コントローラ10と、を備える。4つのメモリチップ11は、2つのチャネル(ch.0およびch.1)を介してコントローラ10に接続されている。各メモリチップ11は、NAND型のフラッシュメモリのメモリチップである。なお、メモリシステム1が備えるメモリチップの数およびチャネルの数は上記に限定されない。また、各メモリチップ11は、NAND型のフラッシュメモリのメモリチップに限定されない。
コントローラ10は、ホスト2と4つのメモリチップ11との間のデータ転送を行う。また、コントローラ10は、4つのメモリチップ11の管理を行う。コントローラ10は、ホスト2に対してシリアルバス3を介したデータの転送を行うインタフェース装置12を備える。インタフェース装置12は、受信装置の一例である。
ホスト2は、例えばCPU(Central Processing Unit)などのプロセッサである。ホスト2は、メモリシステム1に対し、データの格納およびデータのリードを要求することができる。ホスト2は、メモリシステム1に対してシリアルバス3を介したデータの転送を行うインタフェース装置201を備える。
図2は、第1の実施形態のメモリシステム1が備えるインタフェース装置12の構成の一例を示す模式的な図である。なお、ホスト2が備えるインタフェース装置201は、本図に示されるインタフェース装置12と同様の構成を備え得る。
インタフェース装置12は、リンクコントローラ13と、PHY回路14と、を備える。PHY回路14は、信号処理回路の一例である。
リンクコントローラ13は、トランザクション層回路131r,131t、データリンク層回路132r,132t、およびMAC(Media Access Controller)層回路133r,133tを備える。PHY回路14は、PCS(Physical Coding Sub-layer)回路15r,15tおよびPMA(Physical Media Attachment)層回路16r,16tを備える。
PCIe(TM)の規格に準拠する通信を実現する回路群は、その役割によって、上位側から、トランザクション層、データリンク層、および物理層の3つの層に分類される。トランザクション層のさらに上位には、ソフトウェア層が存在する。物理層を実現する回路群は、さらに、MAC層、PCS、およびPMA層の3つのサブレイヤに分類される。
インタフェース装置12が備える回路群のうち、トランザクション層回路131r,131tは、トランザクション層として機能する回路である。データリンク層回路132r,132tは、データリンク層として機能する回路である。MAC層回路133r,133rは、物理層のうちのMAC層として機能する回路である。PCS回路15r,15tは、物理層のうちのPCSとして機能する回路である。PMA層回路16r,16tは、物理層のうちのPMA層として機能する回路である。
インタフェース装置12が備える回路群のうち、トランザクション層回路131r、データリンク層回路132r、MAC層回路133r、PCS回路15r、およびPMA層回路16rは、受信用の回路群4を構成する。インタフェース装置12が備える回路群のうち、トランザクション層回路131t、データリンク層回路132t、MAC層回路133t、PCS回路15t、およびPMA層回路16tは、送信用の回路群5を構成する。
リンクコントローラ13は、ソフトウェア層とPHY回路14との間のデータ転送を実行する。
より具体的には、トランザクション層回路131tは、ソフトウェア層からの要求に応じてTLP(Transaction Layer Packet)を生成する。そして、TLPをデータリンク層回路132tに送信する。トランザクション層回路131rは、データリンク層回路132rから受信したデータを解析し、解析結果に応じて当該データをソフトウェア層に送信する。
データリンク層回路132tは、トランザクション層回路131tから受信したTLPにシーケンスナンバーと誤り訂正符号とを付してMAC層回路133tに送信する。データリンク層回路132rは、MAC層回路133rから受信したパケットのシーケンスナンバーと誤り訂正符号とを確認する。そして、データリンク層回路132rは、確認の結果に応じて受信完了の通知または再送信の要求を送信側に送信する。
MAC層回路133r,133tは、シリアルバス3を介した通信の状態の管理を行う。また、シリアルバス3が複数のレーンを備える場合には、MAC層回路133r,133tは、レーン間のデスキューなどを行う。
PHY回路14は、リンクコントローラ13からデータをパラレルデータ信号として受信する。PHY回路14は、リンクコントローラ13から受信したパラレルデータ信号をシリアルデータ信号に変換して通信相手に送信したり、通信相手から受信したシリアルデータ信号をパラレルデータ信号に変換してリンクコントローラ13に送信したりする。以下、PHY回路14の個別の構成要素について説明する。
PCS回路15tは、エンコーダ151tを備える。PCS回路15tは、データリンク層回路132tからMAC層回路133tを介してデータを受信する。エンコーダ151tは、当該データに対して符号化を行う。なお、エンコーダ151tによる符号化の方式は、PCIe(TM)の世代によって異なり得る。PCS回路15tは、符号化後のデータをPMA層回路16tに送信する。
PMA層回路16tは、PISO(Parallel-In Serial-Out)回路161tと、送信用電気回路162tと、を備える。PISO回路161tは、PCS回路15tから受信したデータをパラレルデータ信号からシリアルデータ信号に変換する。送信用電気回路162tは、シリアルデータ信号に変換されたデータを出力する。メモリシステム1とホスト2とが接続された状態において、シリアルデータ信号に変換されたデータは、第2通信路3-2を介してメモリシステム1からホスト2へ送信される。送信用電気回路162tは、例えば送信用のドライバ回路などを備える。
PMA層回路16rは、SIPO(Serial-In Parallel-Out)回路166rと、受信用電気回路167rと、を備える。メモリシステム1とホスト2とが接続された状態において、受信用電気回路167rは、第1通信路3-1を介してホスト2から受信したシリアルデータ信号を受信する。受信用電気回路167rは、例えばアンプ(図3のアンプ21)などを備える。SIPO回路166rは、受信用電気回路167rが受信したシリアルデータ信号を並列化することによって、パラレルデータ信号に変換する。
PCS回路15rは、デコーダ156rと、エラスティックバッファ157rと、アライナ158rと、を備える。
アライナ158rは、SIPO回路166rによって生成されたパラレルデータ信号に対し、シンボルアラインを実行する。シンボルアラインは、シリアルデータ信号として受信した各シンボルの先頭のビットデータをパラレルデータ信号のビット0の位置にアラインする処理である。ビット0の位置とは、パラレルデータ信号として一度に転送される複数ビットのデータのうちの、並列化される前のシリアルデータ信号において最初に受信したビットデータを割り当てる位置である。
エラスティックバッファ157rは、シンボルアライン後のパラレルデータ信号に対し、周波数偏差の調整を行う。デコーダ156rは、シンボルアライン後、エラスティックバッファ157rで処理されたパラレルデータ信号に対し、復号を実行する。デコーダ156rによる復号の方式は、エンコーダ151tによる符号化の方式に対応する。PCS回路15rは、シンボルアラインされ、周波数偏差の調整が実行され、復号されたパラレルデータ信号をMAC層回路133rに送信する。
図3は、第1の実施形態にかかる受信用電気回路167r、SIPO回路166r、およびアライナ158rのさらに詳細な回路構成の一例を示す模式的な図である。
受信用電気回路167rは、アンプ21と、フリップフロップFF0と、CDR(Clock Data Recovery)回路22と、を備える。
アンプ21は、差動信号を増幅する差動アンプである。アンプ21は、差動信号として第1通信路3-1を転送されてきたシリアルデータ信号を増幅する。
CDR回路22は、増幅後のシリアルデータ信号からシリアルデータ信号のクロックを取得する。CDR回路22によって取得されたクロックを、ビットクロックと表記する。また、ビットクロックの1サイクルを、ビットサイクルと表記する。ビットサイクルは、時間軸で離接するビットクロックの2つの立ち上がりエッジの間の期間又は2つの立ち下りエッジの間の期間に対応する。ビットサイクルは、時間軸で離接するビットクロックの立ち上がりエッジと立ち下りエッジとの間の期間に対応してもよい。
ビットクロックは、フリップフロップFF0およびSIPO回路166rを駆動する。また、ビットクロックは、後述される位相シフト分周器34に入力される。図3では省略されているが、ビットクロックは、フリップフロップFF0のクロック入力端子に供給される。
フリップフロップFF0は、ビットクロックに基づき、アンプ21によって増幅されたシリアルデータ信号を取り込み、シリアルデータ信号をSIPO回路166rに入力する。
前述されたように、SIPO回路166rは、シリアルデータ信号をパラレルデータ信号に変換する。ここでは説明を簡単にするために、パラレルデータ信号のビット幅は4ビットであり、シリアルデータ信号の1シンボルのサイズは4ビットであることとする。SIPO回路166rは、入力されたシリアルデータ信号を4ビット幅のパラレルデータ信号に変換する。そのための構成として、SIPO回路166rは、それぞれはビットクロックによって駆動される4つのフリップフロップFF10,FF11,FF12,FF13を備える。
フリップフロップFF10には、フリップフロップFF0から出力されたシリアルデータ信号が入力される。フリップフロップFF11には、フリップフロップFF10から出力されたシリアルデータ信号が入力される。フリップフロップFF12には、フリップフロップFF11から出力されたシリアルデータ信号が入力される。フリップフロップFF13には、フリップフロップFF12から出力されたシリアルデータ信号が入力される。つまり、SIPO回路166rは、カスケード接続された4つのフリップフロップFF10,FF11,FF12,FF13によって構成されたシフトレジスタを備えている。図3では省略されているが、ビットクロックは、各フリップフロップFF10,FF11,FF12,FF13のクロック入力端子に供給される。
SIPO回路166rは、上記のように構成されたことによって、フリップフロップFF0から出力されたシリアルデータ信号を、ビットデータの出力タイミングが1ビットサイクルずつシフトされた4つのシリアルデータ信号に並列化する。
アライナ158rは、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33と、検出器33と、位相シフト分周器(phase shift divider)34と、を備える。
位相シフト分周器34は、ビットクロックに基づいてパラレルデータ信号のクロックを生成する。この例ではパラレルデータ信号のビット幅は4ビットであるため、位相シフト分周器34は、パラレルデータ信号のクロックとして、ビットクロックの4倍の周期のクロックを生成する。以降では、パラレルデータ信号のクロックを、シンボルクロックと表記する。また、シンボルクロックの1サイクルを、シンボルサイクルと表記する。
位相シフト分周器34は、さらに、検出器33から位相シフト要求を受信した場合にシンボルクロックの位相をシフトする。
8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33、および検出器33は、シンボルクロックによって駆動される。図3では省略されているが、シンボルクロックは、各フリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33のクロック入力端子に供給される。
フリップフロップFF20は、フリップフロップFF10から出力されたシリアルデータ信号から、1ビットのデータを、シンボルクロックの立ち上がりのタイミングで取り込んで出力する。フリップフロップFF21は、フリップフロップFF11から出力されたシリアルデータ信号から、1ビットのデータを、シンボルクロックの立ち上がりのタイミングで取り込んで出力する。フリップフロップFF22は、フリップフロップFF12から出力されたシリアルデータ信号から、1ビットのデータを、シンボルクロックの立ち上がりのタイミングで取り込んで出力する。フリップフロップFF23は、フリップフロップFF13から出力されたシリアルデータ信号から、1ビットのデータを、シンボルクロックの立ち上がりのタイミングで取り込んで出力する。よって、4つのフリップフロップFF20,FF21,FF22,FF23は、SIPO回路166rが並列化したシリアルデータ信号から、シンボルクロックに同期した4ビット幅のパラレルデータ信号を取得することができる。
フリップフロップFF30は、フリップフロップFF20が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。フリップフロップFF31は、フリップフロップFF21が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。フリップフロップFF32は、フリップフロップFF22が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。フリップフロップFF33は、フリップフロップFF23が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。よって、4つのフリップフロップFF30,FF31,FF32,FF33は、4つのフリップフロップFF20,FF21,FF22,FF23が1シンボルサイクル前に出力した4ビットのデータを出力する。
つまり、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33は、2シンボルサイクル分のパラレルデータ信号を出力する。
検出器33は、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33から出力された2シンボルサイクル分のパラレルデータ信号に基づき、シンボル境界を検出する。
より具体的には、インタフェース装置12は、シンボル境界の検出用の特殊なパターンデータを、第1通信路3-1を介して受信することがある。シンボル境界の検出用の特殊なパターンデータの構成は、PCIe(TM)規格において規定されている。当該パターンデータを、テストパターンと表記する。検出器33は、インタフェース装置12がテストパターンを受信している期間に、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33から2シンボルサイクル分のパラレルデータ信号として出力された2シンボルサイクル分のテストパターンに基づき、シンボル境界を検出する。
ここでは、パラレルデータ信号のビット幅は4ビットであるとしている。よって、1シンボルのサイズを、4ビットとする。テストパターンは、例えば、シンボル毎、つまり4ビットサイクル毎、にビット値が反転する部分を含む。8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33が出力する2シンボル分のサイズのテストパターンが、ビット値が反転する部分を含む場合、検出器33は、そのようなビット値が反転する位置をシンボル境界として検出する。
なお、テストパターンは、PCIe(TM)規格において規定されたパターンに限定されない。設計者は、テストパターンの構成を種々に変更し得る。また、テストパターンに基づいてシンボル境界を検出する方法は上記の方法に限定されない。検出器33は、テストパターンをあらかじめ記憶しておき、記憶したテストパターンと8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33が出力する2シンボル分のサイズのテストパターンとの比較に基づいてシンボル境界を検出してもよい。
検出器33は、検出したシンボル境界に基づき、シンボルの先頭のビットデータを4ビット幅のパラレルデータ信号のビット0で出力できるように、位相シフト分周器34にシンボルクロックの位相をシフトさせる。
第1の実施形態では、アライナ158rは、4つのフリップフロップFF20,FF21,FF22,FF23からの出力を、後段の回路、ここではエラスティックバッファ157r、にパラレルデータ信号として送信する。そして、図3に示された構成では、4つのフリップフロップFF20,FF21,FF22,FF23によって1シンボルクロックで出力される4ビットのデータのうちのフリップフロップFF23が出力するビットが、パラレルデータ信号に変換される前のシリアルデータ信号において先頭に位置する。よって、FF23の出力データの位置が、パラレルデータ信号のビット0に該当する。検出器33は、FF23の出力データと、FF30の出力データと、の間にシンボル境界が位置するように、位相シフト分周器34に、シンボルクロックの位相をビットサイクル刻みで調整させる。
シンボルクロックの位相の調整が完了すると、4つのフリップフロップFF20,FF21,FF22,FF23は、SIPO回路166rが出力する並列化されたシリアルデータ信号からシンボルの先頭のビットデータを先頭とする4ビットのデータを取り込んで出力することができるようになる。つまり、実施形態では、シンボルの先頭のビットデータを4ビット幅のパラレルデータ信号のビット0で出力させることは、シンボルの先頭のビットデータを先頭とする4ビットのデータを4つのフリップフロップFF20,FF21,FF22,FF23が取り込めるようにシンボルクロックの位相を調整することと同義である。
なお、インタフェース装置12は、テストパターンを定期的に受信する。テストパターンの受信は、MAC層回路133rにおいて検出される。MAC層回路133rは、テストパターンの受信を検出した場合、検出器33にシンボルアラインを実行させる指示(アライン指示と表記する)を送信する。検出器33は、アライン指示に応じてシンボルアラインを実行する。
第1の実施形態と比較される技術について説明する。第1の実施形態と比較される技術を、比較例と表記する。比較例によれば、アライナは、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33によって出力される2シンボルサイクル分のテストパターンに基づいてシンボル境界を検出する。そして、アライナは、シンボル境界の検出結果に基づき、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33から、アラインされたパラレルデータ信号を出力できる4つのフリップフロップFFを選択する。以降、アライナは、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33から選択された4つのフリップフロップFFからの出力データを、アラインされたパラレルデータ信号として後段の回路に送信する。
しかしながら、比較例によれば、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33から4つのフリップフロップFFを選択するための大規模なマルチプレクサが必要となる。そのような大規模なマルチプレクサが用いられる場合、タイミング調整のためのフリップフロップをマルチプレクサの回路の中に設ける必要が生じる。そして、タイミング調整のためにフリップフロップが設けられることによって、シンボルアラインにおいて信号の遅延が生じる。
さらに、比較例によれば、アラインされたパラレルデータ信号を得るために、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33に常に2シンボルサイクル分のデータをバッファする必要がある。比較例によれば、8つのフリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33に2シンボルサイクル分のデータをバッファすることが原因で、シンボルアラインにおいて、1シンボルサイクル分以上の遅延が生じる。
第1の実施形態によれば、アライナ158rは、シンボルクロックの位相の調整が完了した後は、4つのフリップフロップFF20,FF21,FF22,FF23に、すでにアラインされた状態のパラレルデータ信号をSIPO回路166rから取り込んでパラレルデータ信号として出力させることができる。つまり、第1の実施形態によれば、大規模なマルチプレクサをアライナ158rに配する必要はなく、アライナ158rに常に2シンボルサイクル分のデータを溜める必要もない。よって、第1の実施形態によれば、シンボルアラインにおける信号の遅延を比較例に比べて抑制することができる。
なお、フリップフロップFF20,FF21,FF22,FF23,FF30,FF31,FF32,FF33からなる群を、第1FF群30と表記する。第1FF群30のうちのフリップフロップFF20,FF21,FF22,FF23からなる群を、第2FF群31と表記する。第1FF群30のうちのフリップフロップFF30,FF31,FF32,FF33からなる群を、第3FF群32と表記する。
第1FF群30は、第2のフリップフロップ群の一例である。第2FF群31は、第1のフリップフロップ群の一例である。
位相シフト分周器34は、第1回路の一例である。パラレルデータ信号のビット幅である4は、第1数の一例である。アライナ158rは、第2回路の一例である。CDR回路22は、第3回路の一例である。ビットクロックは、第1クロックの一例である。シンボルクロックは、第2クロックの一例である。
図4は、第1の実施形態にかかる位相シフト分周器34の詳細な構成の一例を示す図である。図4に示されるように、位相シフト分周器34は、クロックゲーティング回路341と、処理回路342と、ビットクロックカウンタ343と、を備える。
ビットクロックカウンタ343は、CDR回路22から供給されたビットクロックをカウントする。ビットクロックカウンタ343は、カウント値を処理回路342に出力する。
クロックゲーティング回路341は、ビットクロックに対して間欠的にクロックゲーティングを実行することによって、シンボルクロックを生成する。クロックゲーティング回路341は、処理回路342による制御の下でクロックゲーティングを実行する。ここでは一例として、処理回路342は、クロックゲーティング回路341にゲートイネーブル信号を入力する。ゲートイネーブル信号がHレベルである場合、クロックゲーティング回路341は、ビットクロックをゲートし、ゲートイネーブル信号がLレベルである場合、クロックゲーティング回路341は、ビットクロックをゲートしない。
処理回路342は、ビットクロックカウンタ343からのカウント値がパラレルデータ信号のビット幅に対応したリミット値に至ると、ゲートイネーブル信号をLレベルにセットし、ビットクロックカウンタ343のカウント値をゼロにリセットする。そして、次のビットサイクルで、処理回路342は、ゲートイネーブル信号をHレベルにセットする。
ここでは、パラレルデータ信号のビット幅は4ビットであることとしている。よって、リミット値は4に設定される。つまり、処理回路342は、カウント値が4に至る毎にゲートイネーブル信号をLレベルにセットし、ビットクロックカウンタ343のカウント値をゼロにリセットする。よって、位相シフト分周器34は、ビットクロックの周期の4倍の周期でLレベルからHレベルとなるシンボルクロックを生成することができる。
また、処理回路342は、検出器33から位相シフト要求を受信すると、位相シフト要求を受信してからカウント値が最初にリミット値に至ったとき、ゲートイネーブル信号をLレベルにセットすることと、ビットクロックカウンタ343のカウント値をゼロにリセットすることと、を1ビットサイクルだけ遅らせる。よって、位相シフト分周器34は、位相シフト要求を受信する毎にシンボルクロックの位相を1ビットサイクルだけ遅らせることができる。
なお、図4に示された位相シフト分周器34の構成および位相シフト要求に応じた位相のシフト量は一例である。設計者は、位相シフト分周器34の構成を任意に変更し得る。また、位相シフト分周器34は、位相シフト要求に応じた位相のシフト量が設定可能であってもよい。
図5は、第1の実施形態にかかる検出器33の、シンボルアラインに関連する動作の一例を示すフローチャートである。
まず、検出器33は、アライン指示を受信中か否かを判定する(S101)。例えば、検出器33は、専用の信号線を介してアライン指示を受信する。例えば、専用の信号線の信号のレベルがHレベルである場合、検出器33は、アライン指示を受信中であると判定する。専用の信号線の信号のレベルがHレベルとは異なるレベルである場合、検出器33は、アライン指示を受信中ではないと判定する。なお、専用の信号線の信号のレベルがLレベルの場合、アライン指示を受信中であると判定されてもよい。アライン指示の信号構成はこれに限定されない。また、アライン指示の通知方法はこれに限定されない。
アライン指示を受信中でないと判定された場合(S101:No)、処理がS101に戻る。
アライン指示を受信中であると判定された場合(S101:Yes)、検出器33は、第1FF群30から出力された2シンボル分のサイズのテストパターンに基づいてシンボル境界を検出する(S102)。
そして、検出器33は、シンボル境界の検出結果に基づき、シンボルアラインが完了したか否かを判定する(S103)。例えば、検出器33は、第2FF群31からの出力データと第3FF群32からの出力データとの間にシンボル境界が位置している場合に、シンボルアラインが完了したと判定する。第2FF群31からの出力データにシンボル境界が含まれる場合、または第3FF群32からの出力データにシンボル境界が含まれる場合、シンボルアラインが完了していないと判定する。
シンボルアラインが完了していないと判定された場合(S103:No)、検出器33は、位相シフト要求を位相シフト分周器34に送信する(S104)。そして、処理がS101に戻る。
シンボルアラインが完了したと判定された場合(S103:Yes)、検出器33によるシンボルアラインに関連する動作が終了する。
図6は、第1の実施形態のアライナ158rによってアラインされたパラレルデータ信号の具体例を説明するためのタイミングチャートである。本図において、フリップフロップFF0が出力するビット列を構成する各ビットデータには、符号Dxが付されている。符号Dxの「x」は、ビットデータの出力順に対応した0から始まる昇順の16進数の値である。図6に示される例によれば、フリップフロップFF0は、ビットクロックに同期してタイミングt0からデータD0,データD1,データD2,データD3,データD4,データD5,データD6,データD7,データD8,データD9,データDA,データDB,データDC,およびデータDDをこの順番で出力する。なお、データD0,データD1,データD2,データD3の群はシンボルSM0を構成し、データD4,データD5,データD6,データD7の群はシンボルSM1を構成し、データD8,データD9,データDA,データDBの群はシンボルSM2を構成することとする。
図6に示されるように、フリップフロップFF10は、フリップフロップFF0が出力したビット列を1ビットサイクルだけ遅延させて出力する。フリップフロップFF11は、フリップフロップFF0が出力したビット列を2ビットサイクルだけ遅延させて出力する。フリップフロップFF12は、フリップフロップFF0が出力したビット列を3ビットサイクルだけ遅延させて出力する。フリップフロップFF14は、フリップフロップFF0が出力したビット列を4ビットサイクルだけ遅延させて出力する。
位相シフト分周器34は、検出器33の制御の下で、各シンボルの先頭のビットデータがパラレルデータ信号のビット0に位置するタイミングでシンボルクロックが立ち上がるように、予め、テストパターンを用いてシンボルクロックの位相を調整する。つまり、フリップフロップFF23がシンボルクロックの立ち上がりのタイミングにシンボルの先頭ビットを取り込めるように、シンボルクロックの位相が調整されている。
例えば、タイミングt0から4ビットサイクル後のタイミングt1には、フリップフロックFF13は、シンボルSM0の先頭のビットデータであるデータD0を出力する。そのタイミングt1で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt1にシンボルSM0を取り込んでパラレルデータ信号として出力する。
タイミングt1からさらに4ビットサイクル後のタイミングt2には、フリップフロックFF13は、シンボルSM1の先頭のビットデータであるデータD4を出力する。そのタイミングt2で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt2にシンボルSM1を取り込んでパラレルデータ信号として出力する。
タイミングt2からさらに4ビットサイクル後のタイミングt3には、フリップフロックFF13は、シンボルSM2の先頭のビットデータであるデータD8を出力する。そのタイミングt3で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt3にシンボルSM2を取り込んでパラレルデータ信号として出力する。
このように、第1の実施形態によれば、アライナ158rは、シフトレジスタであるSIPO回路166rによって並列化されたシリアルデータ信号からパラレルデータ信号のビット幅に対応した数のビットデータをシンボルクロックに基づいて順次取り込み、順次取り込んだデータをパラレルデータ信号として出力する。検出器33は、第2FF群が各シンボルの先頭のビットデータを先頭とするデータを取り込めるように、位相シフト分周器34が生成するシンボルクロックの位相を調整する。
よって、シンボルアラインにおける信号の遅延を比較例に比べて大幅に抑制することが可能である。
また、第1の実施形態によれば、アライナ158rは、2シンボルサイクルのシンボルクロックを用いて2シンボル分のビット数のデータをSIPO回路166rから取り込む第1FF群30を備える。検出器33は、第1FF群30に取り込まれた2シンボル分のビット数のデータに基づいてシンボルクロックの位相を調整する。
アライナ158rが第1FF群30に2シンボル分のビット数のデータを取り込むことで、検出器33は、シンボル境界の位置を検出できる。即ち、検出器33は、各シンボルの先頭のビットデータの位置を特定することができる。よって、検出器33は、第2FF群が各シンボルの先頭のビットデータを先頭とするデータを取り込めるようにシンボルクロックの位相を調整することが可能である。
なお、第1FF群30が取り込むことが可能なデータのサイズは、2シンボルサイクル分に限定されない。第1FF群30が、1シンボルサイクル分のデータよりも大きなビット数のデータを取り込むことができる限り、検出器33は、シンボル境界を検出して第2FF群が各シンボルの先頭のビットデータを先頭とするデータを取り込めるようにシンボルクロックの位相を調整することが可能である。
また、以上に述べた説明では、1シンボルサイクル分のデータよりも大きなビット数のデータを取り込むことが可能な第1のフリップフロップ群としての第1FF群30が設けられる。第2のフリップフロップ群としての第2FF群31は、パラレルデータ信号をアラインされた状態で取り込んで出力する第1のフリップフロップ群としての第1FF群30の一部として構成されている。第1のフリップフロップ群と、第2のフリップフロップ群とは別々にアライナ158rに設けられてもよい。
(第2の実施形態)
シリアル通信規格としてのPCIe(TM)には、複数の世代が存在する。PCIe(TM)のいくつかの世代では、送信側の物理層と受信側の物理層との間において、所定数のシンボル毎に所定数ビットのヘッダが転送される。
シリアル通信規格としてのPCIe(TM)には、複数の世代が存在する。PCIe(TM)のいくつかの世代では、送信側の物理層と受信側の物理層との間において、所定数のシンボル毎に所定数ビットのヘッダが転送される。
第2の実施形態では、所定数のシンボル毎に所定数ビットのヘッダが転送される場合の受信装置としてのインタフェース装置12aおよび信号処理回路としてのPHY回路14aについて説明する。以下では、第1の実施形態と異なる部分の構成について説明する。第1の実施形態と同じ部分の構成については説明を省略するか簡略的に説明する。
また、第2の実施形態では、説明の煩雑化を防ぐために、送信側の装置と受信側の装置との間においては、2シンボル毎に1ビットのヘッダがシリアルデータ信号として転送されることとする。また、1シンボルのサイズを4ビットとし、パラレルデータ信号のビット幅を4ビットとする。
図7は、第2の実施形態にかかるPHY回路14aが備える受信用電気回路167r、SIPO回路166ra、およびアライナ158raのさらに詳細な回路構成の一例を示す模式的な図である。
受信用電気回路167rは、第1の実施形態と同様、アンプ21と、フリップフロップFF0と、CDR回路22と、を備える。
SIPO回路166raは、フリップフロップFF10,FF11,FF12,FF13に加えて、フリップフロップFF14を備える。フリップフロップFF10,FF11,FF12,FF13,FF14は、ビットクロックによって駆動される。フリップフロップFF14は、フリップフロップFF13の後段に配されており、フリップフロップFF13から出力されたシリアルデータ信号が入力される。詳細は後述するが、フリップフロップFF14は、シンボルアライン後、ヘッダをアライナ158raに渡す役割を担う。図3では省略されているが、フリップフロップFF14のクロック入力端子には、ビットクロックが供給される。
アライナ158raは、第2FF群31と、フリップフロップFF40と、第3FF群32と、を備える。第2FF群31と、フリップフロップFF40と、第3FF群32と、は第1FF群30aを構成する。
フリップフロップFF40は、フリップフロップFF14から出力されたシリアルデータ信号から、1ビットのデータを、シンボルクロックの立ち上がりのタイミングで取り込んで出力する。図3では省略されているが、フリップフロップFF23のクロック入力端子には、シンボルクロックが供給される。
なお、フリップフロップFF40は、第3のフリップフロップ群の一例である。ここでは、第3のフリップフロップ群は、1つのフリップフロップFF40によって構成されている。第3のフリップフロップ群を構成するフリップフロップFFの数はヘッダのサイズに応じて変更される。例えば、ヘッダのサイズが2ビット以上である場合には、SIPO回路166raは、ヘッダのサイズに対応した数のフリップフロップFFを、ヘッダのデータをアライナ158raに渡す役割を担うフリップフロップFFとして備える。すなわち、第3のフリップフロップ群は、SIPO回路166raから出力されるヘッダのデータを取り込むことができるように、ヘッダのサイズに対応した数のフリップフロップFFを備える。
第3FF群32のうちのフリップフロップFF30は、フリップフロップFF20が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。第3FF群32のうちのフリップフロップFF31は、フリップフロップFF21が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。第3FF群32のうちのフリップフロップFF32は、フリップフロップFF22が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。第3FF群32のうちのフリップフロップFF33は、フリップフロップFF23が出力した1ビットのデータをシンボルクロックに基づくタイミングで取り込んで、出力する。
アライナ158raは、さらに、検出器33aおよび位相シフト分周器34aを備える。
第2の実施形態においても、インタフェース装置12aは、第1通信路3-1を介してテストパターンを受信することがある。テストパターンは、シンボル境界のみならず、ヘッダからの各シンボル境界の相対位置が検出可能に構成される。そのようなテストパターンは、PCIe(TM)規格において規定されている。
MAC層回路133rは、テストパターンの受信を検出した場合、検出器33aにアライン指示を送信する。検出器33aは、アライン指示に応じてシンボルアラインを実行する。
検出器33aは、アライン指示に応じて、第1FF群30aから出力された2シンボルサイクル分のパラレルデータ信号に基づき、シンボル境界および検出したシンボル境界のヘッダからの相対位置を検出する。検出器33aは、検出結果に基づいてシンボルクロックの位相を調整することで、各シンボルの先頭のビットデータをパラレルデータ信号のビット0の位置にアラインする。検出器33aは、位相シフト分周器34aに位相シフト要求を送信することによって、位相シフト分周器34aにシンボルクロックの位相をシフトさせる。
前述されたように、第2の実施形態では、インタフェース装置12aは、所定数のシンボル毎に所定数ビットのヘッダを受信する。よって、インタフェース装置12aが受信するシリアルデータ信号は、ヘッダが介在するシンボル境界と、ヘッダが介在しないシンボル境界と、を含む。換言すると、シリアルデータ信号として転送されるシンボルは、ヘッダに後続するシンボルと、ヘッダに後続しないシンボルと、を含む。
ここでは一例として、インタフェース装置12aは、2シンボル毎にヘッダを受信することとしている。よって、インタフェース装置12aは、ヘッダに後続するシンボルと、ヘッダに後続しないシンボルと、を交互に受信する。
シンボルアライン後の状態においては、アライナ158raは、ヘッダに後続しないシンボルを次のようにしてSIPO回路166raから取り込む。即ち、アライナ158raは、SIPO回路166raから、ヘッダに後続しないシンボルを構成する4ビットのデータを第2FF群31に同時に取り込む。そのため、シンボルクロックが立ち上がるタイミングは、アライナ158raが直前のシンボルを取り込んでから4ビットサイクル後に到来する必要がある。
これに対し、アライナ158raは、ヘッダに後続するシンボルを次のようにしてSIPO回路166raから取り込む。即ち、アライナ158raは、フリップフロップFF14からヘッダのデータが出力されるときに、ヘッダのデータをフリップフロップFF40に、ヘッダに後続するシンボルを構成する4ビットのデータを第2FF群31に、同時に取り込む。そのため、シンボルクロックが立ち上がるタイミングは、アライナ158raが直前のシンボルを取り込んでから5ビットサイクル後に到来する必要がある。
このように、第2の実施形態では、アライナ158raがヘッダに後続しないシンボルを取り込む場合と、アライナ158raがヘッダに後続するシンボルを取り込む場合と、でシンボルクロックの立ち上がりのタイミングの間隔を異ならせる必要がある。
上記に対応するために、位相シフト分周器34aは、立ち上がりのタイミングの間隔が周期的に変化するシンボルクロックを生成することが可能に構成される。
図8は、第2の実施形態にかかる位相シフト分周器34aの詳細な構成の一例を示す図である。本図に示される例によれば、位相シフト分周器34aは、クロックゲーティング回路341と、処理回路342aと、ビットクロックカウンタ343と、シンボルクロックカウンタ344と、FSM(Finite State Machine)345と、を備える。
FSM345は、ビットクロックカウンタ343およびシンボルクロックカウンタ344の制御を行う。FSM345のステートは、図9に示されるように、ステートPH1、ステートPH2、およびステートSFTの間で遷移する。
ステートPH1およびステートPH2のそれぞれについて、ビットクロックカウンタ343にかかるリミット値(第1リミット値と表記する)と、シンボルクロックカウンタ344にかかるリミット値(第2リミット値と表記する)と、が設定される。
FSM345は、ステートPH1またはステートPH2において、ビットクロックカウンタ343のカウント値が第1リミット値に至る毎に、シンボルクロックカウンタ344の値を1だけインクリメントすることと、ビットクロックカウンタ343のカウント値をゼロにリセットすることと、を行う。
FSM345は、ステートPH1またはステートPH2において、ビットクロックカウンタ343のカウント値が第1リミット値に至った場合、その旨を処理回路342aに通知する。また、FSM345は、ステートPH1またはステートPH2において、シンボルクロックカウンタ344の値が第2リミット値に至る毎に、ステートPH1およびステートPH2のうちの現在のステートからステートPH1およびステートPH2のうちの他方のステートへの遷移を行う。
処理回路342aは、FSM345からカウント値が第1リミット値に至った旨の通知を受信する毎に、クロックゲーティング回路341へのゲートイネーブル信号をLレベルにセットする。その後、1クロックサイクルが経過すると、処理回路342aは、クロックゲーティング回路341へのゲートイネーブル信号をHレベルにセットする。よって、処理回路342aは、ステートPH1においては、第1リミット値に対応した間隔でシンボルクロックの信号を立ち上げ、ステートPH2においては、第2リミット値に対応した間隔でシンボルクロックの信号を立ち上げることができる。
FSM345は、さらに、検出器33aから位相シフト要求を受信することが可能である。FSM345は、位相シフト要求を受信すると、ステートPH2からステートPH1に遷移する前に1回だけステートSFTに遷移する。FSM345がステートSFTに留まる期間は、1ビットサイクルである。FSM345は、ステートPH2からステートSFTへのステートの遷移を行う場合には、カウント値が第1リミット値に至った旨の通知を、ステートSFTからステートPH1に遷移するタイミングまで遅らせる。これにより、1ビットクロック分だけシンボルクロックの位相が遅らされる。
図10および図11を用いて位相シフト分周器34aの動作を説明する。なお、図10および図11の説明においては、説明を簡単にするために、ステートPH1における第1リミット値およびステートPH1における第2リミット値はそれぞれ2であり、ステートPH2における第1リミット値は3であり、ステートPH2における第2リミット値は1であることとする。
図10は、第2の実施形態にかかる位相シフト分周器34aの定常状態、即ち位相シフト要求が発行されていない状態、での動作を説明するためのタイミングチャートである。本タイミングチャートにおいては、ビットクロックの信号、シンボルクロックの信号、FSM345のステート、およびシンボルクロックカウンタ344の値、のそれぞれの時間的変化が描画されている。
図10のタイミングt10に、FSM345はステートPH1における動作を開始する。ステートPH1においては、第1リミット値は2であるため、2ビットサイクル間隔でシンボルクロックが立ち上がる。ステートPH1においては、第2リミット値は2である。よって、タイミングt10から2シンボルサイクルが経過したタイミングt11に、FSM345はステートPH1からステートPH2に遷移する。
ステートPH2においては、第1リミット値は3であるため、3ビットサイクル間隔でシンボルクロックが立ち上がる。また、ステートPH2においては、第2リミット値は1である。よって、タイミングt11から1シンボルサイクルが経過したタイミングt12に、FSM345はステートPH2からステートPH1に戻る。
タイミングt12以降は、タイミングt10からタイミングt11までの間の動作と同様に、ステートPH1での動作とステートPH2での動作とが繰り返し実行される。
図11は、位相シフト要求が発行されたときの第2の実施形態にかかる位相シフト分周器34aの動作を説明するためのタイミングチャートである。本図に示されるタイミングt20は、FSM345が位相シフト要求を受信後、初めてステートPH2での動作を開始したタイミングである。
FSM345が位相シフト要求を受信後の初回のステートPH2では、FSM345は、シンボルクロックカウンタ344が第2リミット値、即ち1、になったとき、ステートPH1に戻る前に、ステートSFTに遷移する(タイミングt21)。そして、タイミングt21から1ビットサイクル後、FSM345は、ステートSFTからステートPH1に遷移して、シンボルクロックが立ち上がる(タイミングt22)。以降、FSM345がさらに位相シフト要求を受信するまで、図10と同様の動作が実行される。
このように、ステートPH1とステートPH2とで異なる値が第1リミット値として設定されることで、位相シフト分周器34aは、ステートPH1の期間とステートPH2の期間とで異なる間隔でシンボルクロックの信号を立ち上げることが可能である。そのため、ステートPH1およびステートPH2のうちの一を、ヘッダに後続しないシンボルをアライナ158raに取り込ませることができる間隔で立ち上がるシンボルクロックを生成するためのステートとして使用することができる。また、ステートPH1およびステートPH2のうちの他を、ヘッダに後続するシンボルをアライナ158raに取り込ませることができる間隔で立ち上がるシンボルクロックを生成するためのステートとして使用することができる。
例えば、ヘッダに後続しないシンボルをアライナ158raに取り込ませるためのステートとしてステートPH1が使用され、ヘッダに後続するシンボルをアライナ158raに取り込ませるためのステートとしてステートPH2が使用される場合を説明する。この場合、ステートPH1における第1リミット値として4、ステートPH1における第2リミット値として1、ステートPH2における第1リミット値として5、ステートPH2における第2リミット値として1が設定される。これによって、位相シフト分周器34aは、4ビットサイクルの間隔で信号が立ち上がる期間と、5ビットサイクルの間隔で信号が立ち上がる期間と、が1シンボルサイクル毎に交互に到来するシンボルクロックを生成することが可能である。
さらに一般化して、シリアルデータ信号は、Nシンボル毎にMビットのヘッダを転送し、1シンボルのサイズがKビットであることとする。そのような場合、例えば、ステートPH1における第1リミット値としてK、ステートPH1における第2リミット値としてN、ステートPH2における第1リミット値としてK+M、ステートPH2における第2リミット値として1が設定される。これによって、位相シフト分周器34aは、Kビットサイクルの間隔で信号が立ち上がる期間がN回連続に到来し、その後にK+Mビットサイクルの間隔で信号が立ち上がる期間が1回だけ到来するようなシンボルクロックを生成することが可能である。
このように、ステートPH1,PH2のそれぞれにおいて第1リミット値および第2リミット値が適切に設定されることで、位相シフト分周器34aは、ヘッダに後続するシンボルを取り込む場合には、ヘッダに後続しないシンボルを取り込む場合に比べて立ち上がりのタイミングがヘッダのサイズに応じた数のビットサイクルだけ遅らせたシンボルクロック信号を生成することができる。
位相シフト分周器34aは、このように生成したシンボルクロックを、位相シフト要求に応じて遅らせる。位相シフト分周器34aは、図11を用いて説明した動作によって、シンボルクロックの位相を1ビットサイクル分だけ遅らせる。
図12は、第2の実施形態のアライナ158raによってアラインされたパラレルデータ信号の具体例を説明するためのタイミングチャートである。本図において、フリップフロップFF0が出力するビット列を構成する各ビットデータのうちのヘッダはHと表記され、ヘッダを除くビットデータには、符号Dxが付されている。符号Dxの「x」は、ビットデータの出力順に対応した0から始まる昇順の16進数の値である。図12に示される例によれば、フリップフロップFF0は、ビットクロックに同期してタイミングt30からヘッダH,データD0,データD1,データD2,データD3,データD4,データD5,データD6,データD7,ヘッダH,データD8,データD9,データDA,データDB,データDC,データDD,データDE,データDF、およびヘッダHをこの順番で出力する。なお、データD0,データD1,データD2,データD3の群はシンボルSM0を構成し、データD4,データD5,データD6,データD7の群はシンボルSM1を構成し、データD8,データD9,データDA,データDBの群はシンボルSM2を構成し、データDC,データDD,データDE,データDFの群はシンボルSM3を構成することとする。
図12に示される例によれば、タイミングt30から5ビットサイクル後のタイミングt31には、フリップフロックFF13は、シンボルSM0の先頭のビットデータであるデータD0を出力し、フリップフロックFF14は、ヘッダHを出力する。そのタイミングt31で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt31に、シンボルSM0を取り込んでパラレルデータ信号として出力し、フリップフロックFF40は、ヘッダHを取り込んでヘッダの信号として出力する。
タイミングt31から4ビットサイクル後のタイミングt32には、フリップフロックFF13は、シンボルSM1の先頭のビットデータであるデータD4を出力する。そのタイミングt2で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt32に、シンボルSM1を取り込んでパラレルデータ信号として出力する。
タイミングt32から5ビットサイクル後のタイミングt33には、フリップフロックFF13は、シンボルSM2の先頭のビットデータであるデータD8を出力し、フリップフロックFF14は、ヘッダHを出力する。そのタイミングt33で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt33に、シンボルSM2を取り込んでパラレルデータ信号として出力し、フリップフロックFF40は、ヘッダHを取り込んでヘッダの信号として出力する。
タイミングt33から4ビットサイクル後のタイミングt34には、フリップフロックFF13は、シンボルSM3の先頭のビットデータであるデータDCを出力する。そのタイミングt34で、シンボルクロックが立ち上がる。よって、第2FF群31は、タイミングt34に、シンボルSM3を取り込んでパラレルデータ信号として出力する。
このように、第2の実施形態によれば、送信側の装置と受信側の装置との間で所定数のシンボル毎に所定数ビットのヘッダが転送される。そして、図8~図11を用いて説明したように、位相シフト分周器34aは、シンボルクロックが立ち上がるタイミングを、所定数のシンボルの取り込み毎に、換言すると、所定数の立ち上がり毎に、ヘッダのサイズに相当する数のビットサイクルだけ遅らせる。
よって、位相シフト分周器34aは、シンボルアライン後は、第2FF群31に各シンボルの先頭のビットデータを先頭とするデータを取り込む事とヘッダを取り込む事とを可能にするシンボルクロックを生成することが可能である。
また、第2の実施形態によれば、アライナ158raは、ヘッダのサイズに相当する数のフリップフロップFFを備える第3のフリップフロップ群としてのフリップフロップFF40をさらに備える。検出器33aは、ヘッダに後続するシンボルをヘッダのサイズに相当する数のビットサイクルだけ遅らされた立ち上がりのタイミングで第2FF群31が取り込めるように、シンボルクロックの位相を調整する。第3のフリップフロップ群は、遅らされた立ち上がりのタイミングでヘッダを取り込んで出力する。
よって、アライナ158raは、ヘッダを取りこぼすことなく出力することが可能である。
なお、図8~図11を用いて説明した位相シフト分周器34aは、第1の実施形態においても適用可能である。位相シフト分周器34aを第1の実施形態にかかる信号処理回路に適用する場合、ステートPH1,PH2のそれぞれの第1リミット値として同じ値が設定される。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 ホスト、3 シリアルバス、3-1 第1通信路、3-2 第2通信路、4 受信用の回路群、5 送信用の回路群、10 コントローラ、11 メモリチップ、12 インタフェース装置、13 リンクコントローラ、14 PHY回路、15r,15t PCS回路、16r,16t PMA層回路、21 アンプ、22 CDR回路、30,30a 第1FF群、31 第2FF群、32 第3FF群、33,33a 検出器、34,34a 位相シフト分周器、131r,131t トランザクション層回路、132r,132t データリンク層回路、133r,133t MAC層回路、151t エンコーダ、156r デコーダ、157r エラスティックバッファ、158r,158ra アライナ、161t PISO回路、162t 送信用電気回路、166r,166ra SIPO回路、167r 受信用電気回路、201 インタフェース装置、341 クロックゲーティング回路、342,342a 処理回路、343 ビットクロックカウンタ、344 シンボルクロックカウンタ。
Claims (7)
- 複数のシンボルを含むデータを転送するシリアルデータ信号を転送するためのクロック信号である第1クロックに基づいて前記シリアルデータ信号を並列化するシフトレジスタと、
第1数のビットの幅を有するパラレルデータ信号を転送するためのクロック信号である第2クロックを前記第1クロックに基づいて生成する第1回路と、
前記シフトレジスタによって並列化されたシリアルデータ信号から前記第1数のビットのデータを前記第2クロックに基づいて順次取り込み、前記順次取り込んだ第1数のビットのデータを前記パラレルデータ信号として出力する第1のフリップフロップ群と、
前記第1のフリップフロップ群が前記複数のシンボルの各シンボルの先頭のビットデータを先頭とする第1数のビットのデータを取り込むように、前記第1回路が生成する前記第2クロックの位相を調整する第2回路と、
を備える信号処理回路。 - 前記シフトレジスタによって並列化されたシリアルデータ信号から前記第2クロックの複数サイクルを用いて第2数のビットのデータを取り込み、前記第2数は前記第1数よりも大きい、第2のフリップフロップ群をさらに備え、
前記第2回路は、前記第2のフリップフロップ群が取り込んだ前記第2数のビットのデータに基づき前記第2クロックの位相を調整する、
請求項1に記載の信号処理回路。 - 前記第2のフリップフロップ群は、前記第1のフリップフロップ群を含む、
請求項2に記載の信号処理回路。 - 前記シリアルデータ信号は、第3数のシンボル毎にヘッダを転送し、
前記第1回路は、前記第2クロックが立ち上がるタイミングを第3数の立ち上かり毎に前記ヘッダのサイズに相当する数のサイクルの前記第1クロックの分だけ遅らせる、
請求項1から請求項3の何れか一項に記載の信号処理回路。 - 前記ヘッダのビット数に相当する数のフリップフロップを備える第3のフリップフロップ群をさらに備え、
前記第2回路は、第1のタイミングで第1シンボルの先頭のビットデータを先頭とする前記第1数のビットのデータを取り込めるように、前記第1回路が生成する前記第2クロックの位相を調整し、前記第1のタイミングは前記ヘッダのビット数に相当する数のサイクルの前記第1クロックの分だけ遅らされた立ち上がりのタイミングであり、前記第1シンボルは前記複数のシンボルのうちの前記ヘッダに後続するシンボルであり、
前記第3のフリップフロップ群は、前記シフトレジスタから前記第1のタイミングに前記ヘッダを取り込んで出力する、
請求項4に記載の信号処理回路。 - 入力信号を増幅し、増幅した信号を前記シリアルデータ信号として出力するアンプと、
前記アンプから出力された前記シリアルデータ信号から前記第1クロックを生成する第3回路と、
前記第1のフリップフロップ群から出力された前記パラレルデータ信号が入力されるエラスティックバッファと、
をさらに備える請求項1から請求項5の何れか一項に記載の信号処理回路。 - 請求項1から請求項6の何れか一項に記載の信号処理回路と、
前記信号処理回路とソフトウェア層との間のデータ転送を行うリンクコントローラと、
を備える受信装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021152581A JP2023044520A (ja) | 2021-09-17 | 2021-09-17 | 信号処理回路および受信装置 |
US17/654,488 US12038864B2 (en) | 2021-09-17 | 2022-03-11 | Signal processing circuit and reception device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021152581A JP2023044520A (ja) | 2021-09-17 | 2021-09-17 | 信号処理回路および受信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023044520A true JP2023044520A (ja) | 2023-03-30 |
Family
ID=85572031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021152581A Pending JP2023044520A (ja) | 2021-09-17 | 2021-09-17 | 信号処理回路および受信装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12038864B2 (ja) |
JP (1) | JP2023044520A (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2608806B2 (ja) * | 1990-11-29 | 1997-05-14 | シルバー精工株式会社 | インクジェットプリンタにおけるレジストレーション調整装置 |
US7934112B2 (en) | 2003-12-30 | 2011-04-26 | Intel Corporation | Rate verification of an incoming serial alignment sequence |
WO2006043374A1 (ja) * | 2004-10-18 | 2006-04-27 | Sharp Kabushiki Kaisha | シリアル-パラレル変換回路ならびにそれを用いた表示装置、およびその駆動回路 |
US9244872B2 (en) | 2012-12-21 | 2016-01-26 | Ati Technologies Ulc | Configurable communications controller |
US9240804B2 (en) * | 2013-02-05 | 2016-01-19 | Altera Corporation | Techniques for alignment of parallel signals |
CN105765544B (zh) | 2013-12-26 | 2019-04-09 | 英特尔公司 | 多芯片封装链路 |
JP6745289B2 (ja) | 2018-01-10 | 2020-08-26 | インテル コーポレイション | マルチチップパッケージリンク |
US11092647B2 (en) * | 2019-07-31 | 2021-08-17 | Hewlett Packard Enterprise Development Lp | Programmable integrated circuit with internal diagnostic hardware |
-
2021
- 2021-09-17 JP JP2021152581A patent/JP2023044520A/ja active Pending
-
2022
- 2022-03-11 US US17/654,488 patent/US12038864B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230087104A1 (en) | 2023-03-23 |
US12038864B2 (en) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7492807B1 (en) | Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods | |
JP3758953B2 (ja) | スキュー補正装置 | |
TWI547120B (zh) | 用於高速網路的初始化之背通道通訊技術 | |
WO2013001631A1 (ja) | 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 | |
US10129371B2 (en) | Serial communication device and serial communication method | |
US10721055B2 (en) | Communication device | |
US11509410B2 (en) | Method for a slave device for calibrating its output timing, method for a master device for enabling a slave device to calibrate its output timing, master device and slave device | |
EP3385856A1 (en) | Method and device for usb communication | |
US11157433B2 (en) | Multi-chip module rate adjustment | |
US9178692B1 (en) | Serial link training method and apparatus with deterministic latency | |
JP2023044520A (ja) | 信号処理回路および受信装置 | |
CN101039323B (zh) | 多速率多协议比特流处理器 | |
JP5924880B2 (ja) | データ通信システム、プリアンブル長最適化方法、及び通信装置 | |
US10057524B2 (en) | Image capturing apparatus | |
JP2005167663A (ja) | シリアル通信装置 | |
JP2021061469A (ja) | 半導体装置 | |
JP2017050734A (ja) | シリアル通信装置、通信システム及び通信方法 | |
US11777627B2 (en) | Serial communication apparatus and serial communication method that are capable of efficiently eliminating a timing lag between serial, data transferred via a plurality of routes in serial communication | |
JP6188246B2 (ja) | メモリシステム | |
WO2018076672A1 (zh) | 一种光传送网络业务接入方法及装置、计算机存储介质 | |
TWI379203B (en) | Usb cryptographic device and method for error correction | |
CN118426568A (zh) | 一种数据传输方法和系统 | |
JP6243210B2 (ja) | シリアルデータ送信装置、シリアルデータ受信装置、シリアルデータ送信方法、及び、シリアルデータ送信プログラム | |
CN117294412A (zh) | 基于单比特位移的多通道串转并自动对齐电路及方法 | |
CN115687188A (zh) | 显示接口信号输出转换电路及相关的方法 |