JP2022105928A - 光トランシーバおよび光トランシーバの制御方法 - Google Patents

光トランシーバおよび光トランシーバの制御方法 Download PDF

Info

Publication number
JP2022105928A
JP2022105928A JP2021000568A JP2021000568A JP2022105928A JP 2022105928 A JP2022105928 A JP 2022105928A JP 2021000568 A JP2021000568 A JP 2021000568A JP 2021000568 A JP2021000568 A JP 2021000568A JP 2022105928 A JP2022105928 A JP 2022105928A
Authority
JP
Japan
Prior art keywords
memory
program
transfer
area
division
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
Application number
JP2021000568A
Other languages
English (en)
Inventor
康祐 田中
Kosuke Tanaka
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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries 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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2021000568A priority Critical patent/JP2022105928A/ja
Priority to US17/646,025 priority patent/US20220214980A1/en
Publication of JP2022105928A publication Critical patent/JP2022105928A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/27Arrangements for networking
    • H04B10/278Bus-type networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/40Transceivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Optical Communication System (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

【課題】光トランシーバに搭載される信号処理部が実行する制御プログラムをホスト装置から不揮発性のメモリに高速に書き込む。【解決手段】ホスト装置とシリアル通信バスを介して通信可能な光トランシーバは、信号処理部と、光電変換部と、第1領域を含む第1メモリと、信号処理部が実行する制御プログラムが格納される不揮発性の第2メモリと、シリアル通信バスよりデータ転送レートが高い内部シリアル通信バスと、シリアル通信バスを介してホスト装置から受信した、信号処理部が実行する分割プログラムを第1領域に格納し、第1領域に記憶された分割プログラムを、内部シリアル通信バスを介して第2メモリに転送する転送部と、を有し、転送部は、第2メモリが分割プログラムを第2メモリのメモリセルに書き込む動作を完了する前に、第1領域において分割プログラムの転送済領域へ別の分割プログラムの格納を開始する。【選択図】図2

Description

本開示は、光トランシーバおよび光トランシーバの制御方法に関する。
ホストとメモリデバイスとを有するメモリシステムにおいて、ホストとメモリデバイスとの間のデータ転送をホストの干渉なく実行するために、ダイレクトメモリアクセスを使用する手法が提案されている(例えば、特許文献1参照)。情報処理装置において、PCIe(Peripheral Component Interconnect express)カードとメインメモリとの間のデータ転送を、アドレス変換用の制御配列のエントリ数に応じて、直接の経路またはローカルメモリを介した経路を使用して行うことが提案されている。この際、ローカルメモリに対するデータ転送は、DMAC(Direct Memory Access Controller)が使用される(例えば、特許文献2参照)。
光信号を送出する複数の方路を可変に設定可能なマルチフロー光トランシーバにおいて、波長可変光源からの光を任意のパワーで任意の光変調手段に結合できる光合分波スイッチを設けることが提案されている(例えば、特許文献3参照)。連続する送信データの送信時刻と応答の受信時刻との組に基づいて、データの送信元での処理時間、データの送信先での応答処理時間および伝送路での消費時間を計測する手法が提案されている。例えば、応答に対応する送信データを検索する検索部は、DMACを使用して、検索に使用する検索データを外部メモリから検索ブロックのメモリに登録する(例えば、特許文献4参照)。
特表2012-529103号公報 特開2011-186658号公報 国際公開第2013/012015号 特開2010-035147号公報
ところで、電気信号と光信号とを相互に変換する光トランシーバは、例えば、DSP(Digital Signal Processor)等の信号処理部と、信号処理部が実行する制御プログラムが格納される書き換え可能な不揮発性メモリとを有する。また、光トランシーバは、制御プログラムの転送に使用するバッファの容量が小さい場合、制御プログラムを複数に分割した分割プログラムを不揮発性メモリに順次転送する。例えば、制御プログラムの更新は、光トランシーバの動作を停止して行うため、制御プログラムの不揮発性メモリへの書き込み時間は短い方がよい。
そこで、本開示は、光トランシーバに搭載される信号処理部が実行する制御プログラムをホスト装置から不揮発性のメモリに高速に書き込むことを目的とする。
本実施形態の一観点によれば、光トランシーバは、ホスト装置とシリアル通信バスを介して通信可能な光トランシーバであって、電気信号を処理する信号処理部と、前記電気信号と光信号とを相互に変換する光電変換部と、第1領域を含む第1メモリと、前記信号処理部が実行する制御プログラムが格納され、前記信号処理部によりアクセスされる不揮発性の第2メモリと、前記シリアル通信バスのデータ転送レートより高いデータ伝送レートを有する内部シリアル通信バスと、前記シリアル通信バスを介して前記ホスト装置から受信した分割プログラムを前記第1領域に格納し、前記第1領域に記憶された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する転送部と、を有し、前記転送部は、前記第2メモリが前記転送部によって転送された前記分割プログラムを前記第2メモリのメモリセルに書き込む動作を完了する前に、前記第1領域に格納された前記分割プログラムのうち前記第2メモリに転送された部分を格納している前記第1領域の転送済領域へ前記分割プログラムとは異なる別の分割プログラムの格納を開始する。
本開示によれば、光トランシーバに搭載される信号処理部が実行する制御プログラムをホスト装置から不揮発性のメモリに高速に書き込むことができる。
図1は、第1の実施形態にかかる光トランシーバの構成の一例を示すブロック図である。 図2は、図1のCPUの内部構成の一例を示すブロック図である。 図3は、ホスト装置からCPUに分割プログラムを転送する場合のステータスチェックの一例を示す動作シーケンス図である。 図4は、ホスト装置からCPUに転送される分割プログラムをCPUがEEPROM(Electrically Erasable Programmable Read-Only Memory)に転送する一例を示す説明図である。 図5は、図4の続きを示す説明図である。 図6は、図5の続きを示す説明図である。 図7は、図6の続きを示す説明図である。 図8は、ホスト装置から転送されるDSP用の信号処理プログラムをCPUがEEPROMに転送する一例を示す動作シーケンス図である。 図9は、ホスト装置から内部RAMへの分割プログラムの転送と、内部RAMからEEPROMへの分割プログラムの転送の一例を示すタイミング図である。
[本開示の実施形態の説明]
最初に本開示の実施態様を列記して説明する。
〔1〕本開示の一態様にかかる光トランシーバは、ホスト装置とシリアル通信バスを介して通信可能な光トランシーバであって、電気信号を処理する信号処理部と、前記電気信号と光信号とを相互に変換する光電変換部と、第1領域を含む第1メモリと、前記信号処理部が実行する制御プログラムが格納され、前記信号処理部によりアクセスされる不揮発性の第2メモリと、前記シリアル通信バスのデータ転送レートより高いデータ伝送レートを有する内部シリアル通信バスと、前記シリアル通信バスを介して前記ホスト装置から受信した分割プログラムを前記第1領域に格納し、前記第1領域に記憶された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する転送部と、を有し、前記転送部は、前記第2メモリが前記転送部によって転送された前記分割プログラムを前記第2メモリのメモリセルに書き込む動作を完了する前に、前記第1領域に格納された前記分割プログラムのうち前記第2メモリに転送された部分を格納している前記第1領域の転送済領域へ前記分割プログラムとは異なる別の分割プログラムの格納を開始する。
この光トランシーバでは、第1メモリから第2メモリに転送された分割プログラムの第2メモリへの書き込みと並列に、ホスト装置から第1メモリへの別の分割プログラムの転送を実行することができる。換言すれば、別の分割プログラムの第1メモリへの転送のバッグクラウンドで、分割プログラムを第2メモリに書き込むことができる。したがって、光トランシーバに搭載される信号処理部が実行する複数の分割プログラムを、ホスト装置から第2メモリに高速に書き込むことができる。例えば、第2メモリに保持された制御プログラムを更新する場合にも、光トランシーバの停止時間を最小限にすることができる。
〔2〕上記〔1〕において、前記転送部は、前記内部シリアル通信バスを介した前記第2メモリへの前記分割プログラムの転送が完了する前に、前記転送済領域へ前記別の分割プログラムの格納を開始してもよい。
内部シリアル通信バスのデータ転送レートは、ホスト装置に接続されるシリアル通信バスのデータ転送レートより高い。このため、第1メモリの第1領域に既に保持されている分割プログラムが次に転送される別の分割プログラムにより上書きされることを防止することができる。したがって、ホスト装置は、初回の分割プログラムの第2メモリへの転送が開始された後、第1メモリの空き状態を確認することなく後続の分割プログラムの転送を順次開始することができる。この結果、転送部による分割プログラムの転送制御を効率よく行うことができ、分割プログラムを、ホスト装置から第2メモリに高速に書き込むことができる。
〔3〕上記〔1〕または〔2〕において、前記分割プログラムおよび前記別の分割プログラムは、前記制御プログラムから分割したプログラムでもよい。これにより、例えば、第1メモリの記憶容量の制約により、制御プログラムをホスト装置から一度に転送できない場合にも、制御プログラムをホスト装置から第2メモリに高速に書き込むことができる。
〔4〕上記〔1〕から〔3〕のいずれかにおいて、前記第1メモリは、前記第2メモリを制御する制御命令が格納される第2領域を有し、前記第1領域は、前記第2領域に連続して設けられてもよい。これにより、制御命令と分割プログラムとを第2メモリに連続して転送することができ、制御プログラムが第2メモリに書き込まれるまでの時間を短縮することができる。
〔5〕上記〔4〕において、前記第2メモリは、前記制御命令の一つである書き込み命令と前記書き込み命令に続く前記分割プログラムを受信したことに基づいて、前記書き込み命令に続く前記分割プログラムを前記メモリセルに書き込み、前記転送部は、前記第2領域に格納された前記書き込み命令と、前記第1領域に格納された前記分割プログラムとを前記第2メモリに連続して転送してもよい。これにより、一つの転送命令(すなわち、一つの開始アドレス)に基づいて、制御命令と分割プログラムとを第2メモリに連続して転送することができ、分割プログラムの第2メモリのメモリセルへの書き込みを開始することができる。
〔6〕上記〔1〕から〔5〕のいずれかにおいて、前記分割プログラムの前記第1メモリへの格納に要する時間は、前記第1メモリに格納された前記分割プログラムの前記第2メモリへの転送時間と前記分割プログラムの前記メモリセルへの書き込み時間の和より長くてもよい。
この場合、ホスト装置から第1メモリへの分割プログラムの一つの転送が完了した時点で、一つ前の分割プログラムの第2メモリのメモリセルへの書き込みは完了している。このため、ホスト装置は、分割プログラムの第2メモリのメモリセルへの書き込みの完了を確認することなく、後続の分割プログラムの第1メモリへの転送を開始することができる。この結果、分割プログラムの第2メモリへの書き込みの完了の確認にかかる時間を不要にすることができ、制御プログラムが第2メモリに書き込まれるまでの時間を短縮することができる。
〔7〕上記〔1〕から〔6〕のいずれかにおいて、前記信号処理部および前記光電変換部の制御を行い、前記転送部を有するプロセッサをさらに有し、前記転送部は、前記プロセッサが実行する転送制御プログラムにより前記分割プログラムの転送を行ってもよい。これにより、例えば、仕様が異なる第2メモリに制御プログラムを書き込む場合にも、第2メモリの仕様に合わせて転送制御プログラムを変更することで、プロセッサは、分割プログラムを第2メモリに順次転送し、メモリセルに書き込むことができる。
〔8〕上記〔7〕において、前記プロセッサは、ダイレクトメモリアクセスコントローラを有し、前記ダイレクトメモリアクセスコントローラは、前記転送制御プログラムによる指示に基づいて、前記第1領域に格納された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送してもよい。これにより、第1メモリへの別の分割プログラムの転送と、第1メモリから第2メモリへの分割プログラムの転送とを、プロセッサとダイレクトメモリアクセスコントローラとにそれぞれ実行させることができる。したがって、第1メモリへの別の分割プログラムの転送と、第1メモリから第2メモリへの分割プログラムの転送とをプロセッサのみで実行する場合に比べて、転送時間を短縮することが可能になる。また、プロセッサの処理能力に余裕を持たせることができ、プロセッサは、他の処理を実行することができる。
〔9〕上記〔7〕または〔8〕において、前記プロセッサは、内部に前記第1メモリを有してもよい。この場合、プロセッサの外部に接続される外部メモリを使用する場合に比べて、第1メモリへの分割プログラムの転送時間を短縮することができ、制御プログラムが第2メモリに書き込まれるまでの時間を短縮することができる。
〔10〕本開示の別の態様にかかる光トランシーバの制御方法は、ホスト装置とシリアル通信バスを介して通信可能であり、電気信号を処理する信号処理部と、前記電気信号と光信号とを相互に変換する光電変換部と、第1領域を含む第1メモリと、前記信号処理部が実行する制御プログラムが格納され、前記信号処理部によりアクセスされる不揮発性の第2メモリと、前記シリアル通信バスのデータ転送レートより高いデータ伝送レートを有する内部シリアル通信バスと、を有する光トランシーバの制御方法であって、前記シリアル通信バスを介して前記ホスト装置から受信した分割プログラムを前記第1領域に格納する工程と、前記第1領域に記憶された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する工程と、を有し、前記第1領域に格納する工程において、前記第2メモリが転送された前記分割プログラムを前記第2メモリのメモリセルに書き込む動作を完了する前に、前記第1領域に格納された前記分割プログラムのうち前記第2メモリに転送された部分を格納している前記第1領域の転送済領域へ前記分割プログラムとは異なる別の分割プログラムの格納を開始する。
この光トランシーバの制御方法では、ホスト装置から第1メモリへの別の分割プログラムの転送を、第1メモリから第2メモリに転送された分割プログラムの第2メモリへの書き込みと並列に実行することができる。換言すれば、別の分割プログラムの第1メモリへの転送のバッグクラウンドで、分割プログラムを第2メモリに書き込むことができる。したがって、光トランシーバに搭載される信号処理部が実行する複数の分割プログラムを、ホスト装置から第2メモリに高速に書き込むことができる。例えば、第2メモリに保持された制御プログラムを更新する場合にも、光トランシーバの停止時間を最小限にすることができる。
[本開示の実施形態の詳細]
本開示の光トランシーバの具体例を、以下に図面を参照しつつ説明する。なお、本実施形態は、以下の説明に限定されるものではない。以下の説明では、信号等の情報が伝達される信号線には、信号名と同じ符号を使用する。特に断らない限り、図において矢じりを付けた線は、信号線または情報の伝達経路を示す。また、図中に単線で示す信号線は、複数ビットの場合もある。
〔第1の実施形態〕
〔光トランシーバの全体構成〕
図1は、第1の実施形態にかかる光トランシーバの構成の一例を示すブロック図である。例えば、図1に示す光トランシーバ100は、CPU(Central Processing Unit)10、DSP20、EEPROM30および光電変換部40を有する。光電変換部40は、レーザダイオード(LD)ドライバ42、レーザダイオード(LD)44およびサーモエレクトリッククーラー(TEC)46を有する。また、光電変換部40は、アバランシェフォトダイオード(APD)52、バイアス供給部54およびトランスインピーダンスアンプ(TIA)56を有する。
以下では、レーザダイオードドライバ42、レーザダイオード44およびサーモエレクトリッククーラー46を、それぞれLDドライバ42、LD44およびTEC46とも称する。また、アバランシェフォトダイオード52およびトランスインピーダンスアンプ56を、それぞれAPD52およびTIA56とも称する。
例えば、光トランシーバ100は、デジタル信号を送受信するコンピュータ装置に着脱可能に接続される。光トランシーバ100は、コンピュータ装置から受信するデジタル信号を光信号に変換し、光ケーブルを介して他のコンピュータ装置の光トランシーバ100に光信号を送信する。また、光トランシーバ100は、光ケーブルを介して他のコンピュータ装置の光トランシーバ100から受信する光信号をデジタル信号に変換し、コンピュータ装置に変換したデジタル信号を送信する。以下では、図1の光トランシーバ100が接続され、デジタル信号を送受信するコンピュータ装置をホスト装置200と称する。
CPU10は、各種通信インタフェースおよびダイレクトメモリアクセスコントローラ(DMAC)等の周辺回路を有する。CPU10は、プロセッサの一例である。周辺回路を有するCPU10は、マイクロコンピュータ(いわゆるマイコン)とも称される。CPU10は、DSP20の制御と、光電変換部40のLD44およびAPD52等の監視制御等を実行する。
また、CPU10は、ホスト装置200から転送されるDSP20用の信号処理プログラムをEEPROM30に書き込む制御を実行する。特に限定されないが、ホスト装置200とCPU10とは、IC(Inter-Integrated Circuit)バス等のシリアル通信バスを介して接続される。信号処理プログラムは、制御プログラムの一例であり、ICバスは、第1シリアル通信バスの一例である。
CPU10により、EEPROM30に保持されたDSP20用の信号処理プログラムを更新する場合、光トランシーバ100の動作を停止する必要がある。このため、光トランシーバ100の停止時間を短くするために、ホスト装置200から転送される信号処理プログラムのEEPROM30への書き換え処理は、できる限り短時間で行うことが好ましい。
DSP20は、他の光トランシーバ100等に送信する情報を含む並列のデジタル送信信号をホスト装置200から受信する。DSP20は、受信したデジタル送信信号に基づいて、例えば、PAM(Pulse Amplitude Modulation)4信号等のアナログ信号を生成し、生成したアナログ信号をLDドライバ42に出力する。また、DSP20は、他の光トランシーバ100等から受信する光信号から変換されたPAM4信号等のアナログ信号をTIA56から受信する。DSP20は、受信したアナログ信号を並列のデジタル受信信号に変換し、変換したデジタル受信信号をホスト装置200に出力する。
DSP20は、信号処理部の一例である。例えば、デジタル送信信号およびデジタル受信信号は、NRZ(Non-Return-to-Zero)信号である。なお、デジタル信号とPAM4信号との相互の変換は、DSP20とLDドライバ42およびTIA56との間に接続される変換回路で行われてもよい。
EEPROM30は、例えば、DSP20が実行する信号処理プログラムおよび信号処理に使用する各種パラメータ等を記憶する。EEPROM30は、不揮発性の第2メモリの一例である。例えば、EEPROM30は、シリアルフラッシュメモリであり、SPI(Serial Peripheral Interface)バス等のシリアル通信バスを介して、DSP20およびCPU10と接続される。SPIバスは、内部シリアル通信バスの一例である。
LDドライバ42は、DSP20から出力されるPAM4信号等のアナログ信号に基づいて、LD44を駆動する。LD44は、DSP20から出力されるアナログ信号を光送信信号に変換して光ケーブルに出力する。例えば、LD44から出力される光信号は、PAM4信号である。TEC46は、ペルチェ素子を使用してLD44の温度が所定の範囲に収まるように制御する。
APD52は、光ケーブルを介して、他の光トランシーバ100等が送信する光信号である光受信信号を受信する。APD52は、受信した光受信信号を電流信号に変換してTIA56に出力する。例えば、APD52が受信する光信号は、PAM4信号である。バイアス供給部54は、APD52にバイアスを供給する。TIA56は、APD52から受信する微少な電流信号を増幅し、電圧信号(アナログの受信データ信号)としてDSP20に出力する。
〔CPUの内部構成〕
図2は、図1のCPU10の内部構成の一例を示すブロック図である。CPU10は、少なくとも一つのCPUコア11、ICインタフェース(I/F)12、DMAC13、SPIインタフェース(I/F)14、内部RAM(Random Access Memory)16およびメモリバス18を有する。メモリバス18は、CPUコア11とDMAC13に共通に使用される共通バスである。CPU10のCPUコア11およびDMAC13は、転送部17を構成する。
CPU10、より具体的にはCPUコア11は、例えば、転送制御プログラムを実行し、DSP20が実行する信号処理プログラムをホスト装置200からEEPROM30に転送する制御を実行する。すなわち、CPU10、より具体的にはCPUコア11が実行する転送制御プログラムにより、転送部17は、ホスト装置200から転送される分割プログラムをEEPROM30に転送する。これにより、例えば、EEPROM30の仕様が変更された場合にも、新しいEEPROM30の仕様に合わせて転送制御プログラムを変更することで、CPU10は、分割プログラムをEEPROM30に順次転送し、メモリセルに書き込ませることができる。
例えば、ホスト装置200は、ICバスを介してCPU10に接続され、信号処理プログラムを複数に分割した分割プログラムを、ICインタフェース12を介してCPUコア11に順次転送する。分割プログラムのサイズは、内部RAM16に割り当て可能な分割プログラム用のバッファ領域のサイズと、EEPROM30が一度に書き込み(プログラム)可能なデータサイズとに依存して、予め決められる。この実施形態では、一つの分割プログラムのサイズは256バイトである。
また、CPUコア11は、監視制御プログラムを実行し、光電変換部40の状態を監視する。例えば、転送プログラムおよび監視制御プログラムは、内部RAM16に格納される。転送制御プログラムを実行するCPUコア11と、監視制御プログラムを実行するCPUコア11とは、同一でもよく、異なっていてもよい。
Cインタフェース12は、ICバスを介してホスト装置200に接続され、ホスト装置200から受信する情報をCPUコア11に送信する。なお、ICインタフェース12は、ホスト装置200からCPUコア11への情報の転送だけでなく、CPUコア11からホスト装置200への情報の転送も可能である。
DMAC13は、CPUコア11からの指示に基づいて、内部RAM16からSPIインタフェース14にデータを転送する。DMAC13がSPIインタフェース14に転送するデータは、EEPROM30を動作させる制御命令(コマンドおよびアドレス)と、EEPROM30のメモリセルに書き込む分割プログラムとを含む。なお、DMAC13は、CPUコア11からの指示に基づいて、内部RAM16等の転送元デバイスと、他の転送先デバイスとの間でデータを転送してもよい。また、内部RAM16が転送先デバイスに設定されてもよい。
このように、内部RAM16への分割プログラムの転送と、内部RAM16からEEPROM30への分割プログラムの転送とを、CPUコア11とDMAC13とにそれぞれ分担させることができる。したがって、内部RAM16への分割プログラムの転送と、内部RAM16からEEPROM30への分割プログラムの転送とをCPUコア11のみで実行する場合に比べて、転送時間を短縮することが可能になる。また、CPUコア11の処理能力に余裕を持たせることができ、CPUコア11は、他の処理を実行することができる。
SPIインタフェース14は、SPIバスを介してEEPROM30に接続され、DMAC13から受信するデータをEEPROM30に送信する。なお、SPIインタフェース14は、DMAC13からEEPROM30へのデータの転送だけでなく、EEPROM30からDMAC13へのデータの転送も可能である。
アービタ15は、CPUコア11による内部RAM16のアクセス要求と、DMAC13による内部RAM16のアクセス要求とが競合する場合、CPUコア11とDMAC13の一方にバス権を与えて内部RAM16のアクセスを許可する。
内部RAM16は、EEPROMコマンド領域と、EEPROMコマンド領域に連続して割り当てられるバッファ領域とを有する。EEPROMコマンド領域には、EEPROM30の動作を制御する制御命令(コマンドおよびアドレス)が格納され、バッファ領域には、分割プログラムが格納される。また、内部RAM16は、コマンドレジスタおよびステータスレジスタを含むレジスタ領域を有する。コマンドレジスタおよびステータスレジスタは、ホスト装置200からEEPROM30への信号処理プログラムの転送の制御に使用される。内部RAM16は、第1メモリの一例である。EEPROMコマンド領域は、第2領域の一例であり、バッファ領域は、第1領域の一例である。なお、第1メモリは、内部RAM16に限らず、例えば、データの転送を必要なタイミングで行うことができる高速なメモリであれば、CPU10の外部のメモリを用いてもよい。
CPU10に搭載される内部RAM16に割り当てられるバッファ領域に分割プログラムを保持することで、外部メモリに割り当てられるバッファ領域に分割プログラムを保持する場合に比べて、分割プログラムの転送時間を短縮することができる。例えば、バッファ領域への分割プログラムの転送時間を短縮することができ、バッファ領域からEEPROM30への分割プログラムの転送時間を短縮することができる。この結果、ホスト装置200からEEPROM30への分割プログラムの転送時間を短縮することができ、信号処理プログラムがEEPROM30に書き込まれるまでの時間を短縮することができる。
例えば、EEPROMコマンド領域は、CPUアドレスで0FFCh-0FFFh(4バイト)に割り当てられる。アドレスの数値の末尾の"h"は、数値が16進数であることを示す。CPUアドレスは、メモリ空間に割り当てられるアドレスであり、CPUコア11およびDMAC13が使用可能なアドレスである。バッファ領域は、EEPROMコマンド領域に続く1000h-10FFh(256バイト)に割り当てられる。また、バッファ領域は、スレーブアドレスで8Chに割り当てられる。スレーブアドレスは、ホスト装置200により識別されるアドレスである。
EEPROM30は、EEPROMコマンド領域から転送された制御命令(ページプログラムコマンド等の書き込み命令)に基づいて、バッファ領域に格納された分割プログラムをメモリセルに書き込むプログラム動作を実行する。書き込み命令は、書き込み命令コードと分割プログラムを書き込む先頭アドレスとを含む。例えば、書き込みの単位である1ページは、256バイトに設定される。
EEPROM30は、CPU10から転送される複数の分割プログラムを不揮発性の複数のメモリセルを含むメモリブロックに順次書き込む。これにより、EEPROM30に複数の分割プログラムが連結された信号処理プログラムが不揮発に記憶される。EEPROM30に信号処理プログラムが記憶された後、光トランシーバ100が起動され、DSP20は、EEPROM30に記憶された信号処理プログラムをフェッチすることで、信号処理を実行する。
EEPROMコマンド領域とバッファ領域とをCPUアドレスが連続するメモリ領域に割り当てることで、一つの転送命令に基づくDMA転送により、制御命令と分割プログラムとをEEPROM30に連続して転送することができる。また、EEPROM30は、連続して受信する書き込みコマンドと分割プログラムとに基づいて、分割プログラムをメモリセルに書き込むプログラム動作を実行することができる。
換言すれば、一つの開始アドレスを指定したDMA転送により、書き込みコマンドと分割プログラムとをEEPROM30に連続して転送し、分割プログラムをメモリセルに書き込むことができる。これにより、分割プログラムを連結されることで得られる信号処理プログラムがEEPROM30のメモリセルに書き込まれるまでの時間を短縮することができる。
コマンドレジスタは、CPUアドレスで1200hに割り当てられ、スレーブアドレスで80hの1バイト目(80h/0)に割り当てられる。ステータスレジスタは、CPUアドレスで1201hに割り当てられ、スレーブアドレスで80hの2バイト目(80h/1)に割り当てられる。
コマンドレジスタは、分割プログラムをホスト装置200からEEPROM30に書き込む場合、ホスト装置200により"WR"に設定される。ステータスレジスタは、ホスト装置200からのコマンドを受け付け可能な場合、CPUコア11により"Idle"に設定される。また、ステータスレジスタは、ホスト装置200からのコマンドを実行する場合、CPUコア11により"Busy"に設定される。ステータスレジスタは、ホスト装置200がCPU10の動作状態を検出するために、ホスト装置200により参照可能である。
〔分割プログラムの転送前のステータスチェック〕
図3は、ホスト装置200からCPU10に分割プログラムを転送する場合のステータスチェックの一例を示す動作シーケンス図である。CPUコア11は、ホスト装置200からのコマンドを受付可能な場合、ステータスレジスタ(80h/1)に"Idle"を書き込む(図3(a))。
ホスト装置200は、分割プログラムを転送する場合、例えば、所定の頻度でステータスレジスタをポーリングし(ステータスチェック)、ステータスレジスタが"Busy"から"Idle"に変化するのを待つ(図3(b))。そして、ホスト装置200は、ステータスレジスタの"Idle"を検出した場合、コマンドレジスタ(80h/0)に"WR"を書き込む(図3(c)、(d))。
CPUコア11は、ホスト装置200によりコマンドレジスタに書き込まれた"WR"を検出し、ステータスレジスタに"Busy"を書き込む(図3(e)、(f))。ホスト装置200は、コマンドレジスタに"WR"を書き込んだ後、ステータスレジスタが"Idle"から"Busy"に変化したことを検出した場合、分割プログラムをEEPROMに転送可能と判断する(図3(g))。そして、ホスト装置200は、図4から図7で説明するように、分割プログラムの転送処理を開始する(図3(h))。
分割プログラムの転送処理が終了した場合、CPUコア11は、ステータスレジスタに転送処理の完了を示す"Complete"を書き込む(図3(i))。そして、ホスト装置200は、ステータスレジスタの"Complete"を検出した場合、分割プログラムがEEPROM30に転送されたことを検出する(図3(j))。この後、ホスト装置200は、ステータスレジスタの"Idle"を検出した場合、次のコマンドを発行可能と判断する。
〔分割プログラムのEEPROMへの転送〕
図4から図7は、ホスト装置200からCPU10に転送される分割プログラムをCPU10がEEPROM30に転送する一例を示す説明図である。図4から図7は、光トランシーバの制御方法の一例である。図4から図7において、太い実線は、データ等が転送される経路を示し、破線は、データ等が転送されないことを示す。また、太枠は、転送されるデータまたは設定されるデータを示す。
まず、図4の動作Aにおいて、ホスト装置200は、スレーブアドレス8Chを指定して、ICバスを介してICインタフェース12に最初の256バイトの分割プログラム(1)をシリアル転送する(図4(a))。ICインタフェース12は、受信した分割プログラム(1)を、例えば、CPUコア11が内蔵する図示しないFIFO(First-In First-Out)バッファ等に転送する(図4(b))。
CPUコア11は、FIFOバッファに所定量の分割プログラム(1)が保持される毎に、保持された分割プログラム(1)を内部RAM16のバッファ領域に順次書き込む(図4(c))。ここで、CPUコア11は、ホスト装置200が指定したスレーブアドレス8Chの先頭に対応するCPUアドレス1000hから順に分割プログラム(1)を内部RAM16に書き込む。
ホスト装置200からCPUコア11への分割プログラム(1)の転送(図4(a)および図4(b))と、CPUコア11から内部RAM16への分割プログラム(1)の転送(図4(c))とは、並列に実行される。図4のバッファ領域の網掛けは、格納された分割プログラム(1)を示す。ホスト装置200からCPUコア11への分割プログラム(1)の転送を継続することで、バッファ領域の網掛け部分が徐々に増加していき、内部RAM16のバッファ領域に256バイトの最初の分割プログラム(1)が格納される(図4(d))。
256バイトのデータの転送時間は、以下の(a)、(b)、(c)の転送時間の和にスタートビットとストップビットの遷移時間を加えることで求められる。
(a)スレーブアドレス(7ビット)+ライトビット(1ビット)+アクノリッジ(1ビット)
(b)CPUアドレス(8ビット)+アクノリッジ(1ビット)
(c)データ(256バイト=2048ビット)+バイト毎のアクノリッジ(1ビット)
Cインタフェース12のクロックを400kHz(1クロックサイクル=2.5μs)とし、スタートビットとストップビットの遷移時間をそれぞれ0.6μsとすると、256バイトの転送時間は、5806.2μsになる。
次に、図4の動作Bにおいて、ホスト装置200が最初の分割プログラム(1)の256バイト目を転送する(図4(e))。そして、CPUコア11が最初の分割プログラム(1)の256バイト目を内部RAM16へ転送する(図4(f))。CPUコア11は、最初の分割プログラム(1)の256バイト目の転送が完了すると、転送が完了したことを検出する。CPUコア11は、ICの応答処理として、256バイト目の転送を検出することができる。CPUコア11が転送を完了したことを検出すると、図5の動作Cおよび動作Dを行う。
ホスト装置200は、最初の分割プログラム(1)の256バイト目の転送が完了すると、一定の時間、例えば、100ns待機する。当該一定の時間は、後述するCPUコア11が、動作Cおよび動作Dにかかる時間以上の時間待機すればよい。
CPUコア11は、256バイト目の転送を検出する場合には、ICの応答処理を用いることから、即時に実行できる。また、CPUコア11は、動作Cを書き込み設定の内部RAM16への書き込みにより行う。CPUコア11は、動作DをDMAコントローラへの転送指令のレジスタへの書き込みにより行う。したがって、CPUコア11は、それぞれ1命令で書き込み設定およびDMAコントローラへの転送指令を実行できる。
CPUコア11が、例えば、80MHzのクロックで動作しているとすると、上記の書き込み設定およびDMAコントローラへの転送指令は、最大で8クロックで完了すると考えられる。したがって、CPUコア11は、上記の書き込み設定およびDMAコントローラへの転送指令を、100ns以下で実行できる。
図5の動作Cにおいて、CPUコア11は、CPUアドレス0FFCh-0FFFhの領域にEEPROM30へ転送する書き込み命令を設定する(図5(a))。例えば、書き込み命令の1バイト目は、EEPROM30のメモリセルにデータを書き込むプログラム動作のEEPROM30への指示(書き込み命令コード)を示し、2バイト目から4バイト目は、書き込みアドレス(先頭アドレス)を示す。例えば、書き込みアドレスは、"0"に設定される。
次に、図5の動作Dにおいて、CPUコア11は、転送元の先頭アドレス(0FFFCh)と書き込みサイズ(260バイト)とともに、DMAC13に転送開始要求を発行する(図5(b))。
なお、図4の動作Bにおいて、256バイト目の転送を検出しているが、例えば、256バイト目より前の転送を検出して、動作Cおよび動作Dを行ってもよい。256バイト目より前の転送を検出して、動作Cおよび動作Dを行うことにより、ホスト装置200のウエイトする時間を短縮または削除することができる。ただし、256バイト目よりどれくらい前から開始するかについては、ICインタフェース12で転送している領域に、SPIインタフェース14で転送している領域が重ならないように定められる。
なお、図4に示す動作Aおよび動作Bは、シリアル通信バス(ICインタフェース12)を介してホスト装置200から受信した分割プログラムを内部RAM16の領域に格納する工程の一例である。
次に、図6の動作Eにおいて、DMAC13は、CPUアドレス0FFChからの4バイトに保持された書き込み命令を、SPIインタフェース14を介してEEPROM30に転送する。DMAC13は、書き込み命令の転送に続いて、CPUアドレス1000h以降に保持された分割プログラム(1)のEEPROM30への転送を開始する(図6(a))。すなわち、DMAC13は、書き込み命令と分割プログラム(1)とをEEPROM30に連続して転送する。
上述したように、EEPROMコマンド領域とバッファ領域とがアドレスが連続するメモリ領域に割り当てられている。このため、DMAC13は、書き込み命令(書き込み命令コードと先頭アドレス)と分割プログラムとをEEPROM30に連続して転送することができる。
次に、図6の動作Fにおいて、DMAC13は、分割プログラム(1)のEEPROM30への転送を継続する(図6(b))。内部RAM16のCPUアドレス1000hからのバッファ領域において、網掛けで示す領域の上の白い領域は、DMAC13による転送が完了した領域を示す(図6(c))。
なお、図5に示す動作Cおよび動作Dと図6に示す動作Eおよび動作Fは、内部RAM16の領域に記憶された分割プログラムを、内部シリアル通信バス(SPIインタフェース14)を介してEEPROM30に転送する工程の一例である。
次に、図7の動作Gにおいて、ホスト装置200は、一定期間待機後、スレーブアドレス8Chを指定して、ICバスを介してCPUコア11に次の256バイトの分割プログラム(2)をシリアル転送する(図7(a)、(b))。CPUコア11は、ホスト装置200から転送される分割プログラム(2)を内部RAM16のバッファ領域に先頭アドレス(0FFFCh)から順に順次書き込む(図7(c))。DMAC13は、分割プログラム(1)のEEPROM30への転送を継続する(図7(d))。
すなわち、分割プログラム(1)のEEPROM30への転送が完了する前に、分割プログラム(2)の内部RAM16への転送が開始される。より具体的には、分割プログラム(1)のEEPROM30への転送が完了する前に、分割プログラム(1)が保存されている内部RAM16中の分割プログラム(1)の転送が完了した領域に、別の分割プログラム(2)の転送が開始される。
また、分割プログラム(1)のEEPROM30への書き込みが完了する前に、分割プログラム(2)の内部RAM16への転送が開始される。より具体的には、分割プログラム(1)のEEPROM30への書き込みが完了する前に、分割プログラム(1)が保存されている内部RAM16において、分割プログラム(1)のEEPROM30への転送が完了した転送済領域への別の分割プログラム(2)の転送が開始される。
例えば、SPIインタフェース14は、256バイトの分割プログラム(1)を260μsでEEPROM30に転送する。一方、ICインタフェース12は、256バイトの分割プログラム(2)を約5800μsでCPUコア11を介して内部RAM16に書き込む。すなわち、SPIインタフェース14のデータ転送速度は、ICインタフェース12のデータ転送速度の20倍以上であり、内部RAMからの分割プログラム(1)の読み出し速度は、内部RAM16への分割プログラム(2)の書き込み速度より高い。
ホスト装置200がステータスレジスタをチェックすると、数ms時間がかかる。このため、ホスト装置200が分割プログラムのIC転送後、次の分割プログラムのIC転送を開始するまでの時間を、ステータスレジスタをチェックする場合に比べて短縮することができる。この結果、複数の分割プログラムで構成される信号処理プログラムのホスト装置200からEEPROM30への転送時間を短縮することができる。
図8は、ホスト装置200から転送されるDSP20用の信号処理プログラムをCPU10がEEPROM30に転送する一例を示す動作シーケンス図である。図4から図7と同様の動作については、詳細な説明は省略する。
ホスト装置200は、スレーブアドレス8Chを指定し、ICバスおよびICインタフェース12を介してCPUコア11に256バイトの分割プログラム(1)を順次シリアル転送する(図8(a))。CPUコア11は、ホスト装置200から転送された分割プログラム(1)を先頭アドレス(0FFFCh)から順に順次内部RAM16に書き込む(図8(b))。
256バイトの分割プログラム(1)の転送が完了したホスト装置200は、一定期間、例えば、100nsの間、待機する。CPUコア11は、分割プログラムの256バイト目の内部RAM16への書き込みが完了したことを確認すると、CPUアドレス0FFCh-0FFFhに書き込み命令(書き込み命令コードと先頭アドレス)を書き込む(図8(c))。そして、CPUコア11は、転送元の先頭アドレス(0FFFCh)と書き込みサイズ(260バイト)とともに、DMAC13に転送開始要求を発行する(図8(d))。
DMAC13は、CPUコア11からの転送開始要求に応答して、書き込み命令および分割プログラム(1)のDMA転送を開始する(図8(e))。すなわち、DMAC13は、書き込み命令と分割プログラム(1)とをEEPROM30に連続して転送する。
ホスト装置200は、一定期間待機後、次の256バイトの分割プログラム(2)を、ICバスおよびICインタフェース12を介してCPUコア11に転送する(図8(f))。CPUコア11は、ホスト装置200からされる分割プログラム(2)を内部RAM16に順次書き込む(図8(g))。
なお、CPUコア11が分割プログラム(2)を書き込む内部RAM16の領域は、先に保存された分割プログラム(1)の転送が完了した領域である。したがって、DMAC13が分割プログラム(1)の転送を行っている最中であっても、CPUコア11が分割プログラム(2)を転送することができる。すなわち、CPUコア11は、DMAC13がSPIバスを介したEEPROM30への分割プログラム(1)が完了する前に、ホスト装置200から転送される分割プログラム(2)の内部RAM16への格納を開始する。DMAC13による分割プログラム(1)のEEPROM30への転送は、分割プログラム(2)の内部RAMへの書き込みが5%程度完了した時点で終了する(図8(h))。
EEPROM30は、256バイトの分割プログラム(1)の受信が完了した後、分割プログラム(1)をメモリセルに書き込むプログラム動作を開始する(図8(i))。プログラム動作の実行期間は約3000μsである。一つの分割プログラムのEEPROM30への転送時間とEEPROM30の書き込み動作時間の和は、約3260μsである。
一つの分割プログラムのEEPROM30への転送時間とプログラム動作時間の和は、ICインタフェース12による一つの分割プログラムの転送時間(約5800μs)より短い。このため、分割プログラム(1)のEEPROM30への書き込み動作が完了する前に、次の分割プログラム(2)がEEPROM30に転送されることはない。
図9は、ホスト装置200から内部RAM16への分割プログラムの転送と、内部RAM16からEEPROM30への分割プログラムの転送の一例を示すタイミング図である。図4から図8と同様の動作については、詳細な説明は省略する。図9において、太い実線は、ICバスを含む経路を使用したホスト装置200から内部RAM16へのデータ転送を示す。太い破線は、SPIバスを含む経路を使用したDMAC13による内部RAM16からEEPROM30へのデータ転送を示す。一点鎖線の矩形枠は、EEPROM30の書き込み動作(プログラム動作)を示す。
まず、ホスト装置200は、ICバス、ICインタフェース12およびCPUコア11を介して、約5800μsかけて256バイトの分割プログラム(1)を内部RAM16に順次書き込む(図9(a))。CPUコア11は、分割プログラム(1)が内部RAM16に格納された後、書き込み命令を内部RAM16に書き込み、DMAC13を起動する。
DMAC13は、SPIインタフェース14およびSPIバスを介して約260μsかけて、書き込み命令および分割プログラム(1)をEEPROM30に転送する(図9(b))。EEPROM30は、受信した書き込み命令に基づいて、約3000μsかけて、分割プログラム(1)をメモリセルに書き込むプログラム動作(ブロック書き込み)を実行する(図9(c))。
ホスト装置200は、DMAC13による内部RAM16からEEPROM30への分割プログラム(1)の転送が開始された後、次の分割プログラム(2)の内部RAM16への転送を開始する(図9(d))。すなわち、分割プログラム(1)のEEPROM30への転送が完了する前に、分割プログラム(2)の内部RAM16への転送が開始される。また、分割プログラム(1)のEEPROM30への書き込みが完了する前に、分割プログラム(2)の内部RAM16への転送が開始される。SPIによる転送速度は、ICによる転送速度より速いため、内部RAM16内の分割プログラム(1)が、分割プログラム(2)により上書きされることを防止することができる。
このように、ホスト装置200から内部RAM16への分割プログラム(2)の転送と、内部RAM16からEEPROM30に転送された分割プログラム(1)のEEPROM30への書き込みとを並列に実行することができる。換言すれば、次の分割プログラムの内部RAM16への転送のバッグクラウンドで、一つ前の分割プログラムをEEPROM30に書き込むことができる。
したがって、光トランシーバ100に搭載されるDSP20が実行する信号処理プログラムを複数に分割した分割プログラムを、ホスト装置200からEEPROM30に高速に書き込むことができる。例えば、EEPROM30に保持された信号処理プログラムを更新する場合にも、光トランシーバの停止時間を最小限にすることができる。
また、ICインタフェース12による転送時間(約5800μs)は、SPIインタフェース14による転送時間とEEPROM30のメモリセルの書き込み時間の和(約3260μs)より長い。このため、ホスト装置200から転送される分割プログラム(2)の内部RAM16への転送が完了した時点で、分割プログラム(1)のEEPROM30のメモリセルへの書き込みは完了している。
ここで、本実施形態の光トランシーバ100(図1)において、信号処理プログラムをEEPROM30に書き込むにかかる時間について検討する。ICインタフェース12で分割プログラムを一つ転送するのに必要な時間をtaとする。時間taは、例えば、5800μsである。SPIインタフェース14で分割プログラムを一つ転送するのに必要な時間をtbとする。時間tbは、例えば、260μsである。EEPROM30に分割プログラムを一つプログラムするのに必要な時間をtcとする。時間tcは、例えば、3000μsである。ホスト装置200がICインタフェース12を用いてステータスチェックするのに必要な時間をtdとする。時間tdは、例えば、1000μsである。分割プログラムの数をNとする。分割プログラムの数Nは、例えば、1024個である。
本実施形態の光トランシーバ100では、ホスト装置200から光トランシーバ100へICインタフェース12を用いて分割プログラムを転送する際に、並行してEEPROM30への分割プログラムの書き込みを行う。したがって、ホスト装置200から光トランシーバ100へICインタフェース12を用いて分割プログラムを転送するのにかかる時間とほぼ等しい時間で、ホスト装置200から信号処理プログラムを転送して、EEPROM30に書き込むことができる。すなわち、本実施形態の光トランシーバ100では、ホスト装置200から信号処理プログラムを転送して、EEPROM30に書き込むのに必要な時間は、ta×Nである。
一方、比較例として、ICインタフェース12での転送、SPIインタフェース14での転送、EEPROM30への書き込みを順次行った場合について説明する。ここでは、EEPROM30への書き込みの完了を確認するために、ホスト装置200がICインタフェース12を用いて1回ステータスチェックするとする。すると、比較例では、ホスト装置200から信号処理プログラムを転送して、EEPROM30に書き込むのに少なくとも必要な時間は、(ta+tb+tc+td)×Nである。なお、ステータスチェックを行うとステータスチェックが複数回行われる場合もあるが、ここではステータスチェックは1回のみとして検討した。
以上の検討結果からすると、本実施形態の光トランシーバ100は、比較例に対して、約60%(=ta/(ta+tb+tc+td)×100)の処理時間で処理を行うことができる。さらに、比較例において複数回ステータスチェックが行われることを想定すると、本実施形態の光トランシーバ100は、比較例に対してより少ない処理時間で処理を行うことができる。
以上、本実施形態では、ICインタフェース12よりデータ転送レートが高いSPIインタフェース14を使用して、分割プログラムを内部RAM16からEEPROM30に転送する。このため、ホスト装置200から内部RAM16への分割プログラムの転送を、内部RAM16からEEPROM30に転送された分割プログラムのEEPROM30への書き込みと並列に実行することができる。換言すれば、次の分割プログラムの内部RAM16への転送のバッグクラウンドで、内部RAM16に格納済みの分割プログラムをEEPROM30に書き込むことができる。
これにより、信号処理プログラムを複数に分割した分割プログラムをホスト装置200からEEPROM30のメモリセルに順次書き込む場合に、信号処理プログラムがEEPROM30に書き込まれるまでの時間を従来に比べて短縮することができる。すなわち、光トランシーバ100に搭載されるDSPが実行する信号処理プログラムを複数に分割した分割プログラムを、ホスト装置200からEEPROM30に高速に書き込むことができる。例えば、EEPROM30に保持された信号処理プログラムを更新する場合にも、光トランシーバ100の停止時間を最小限にすることができる。
以上、本開示の実施形態などについて説明したが、本開示は上記実施形態などに限定されない。特許請求の範囲に記載された範囲内において、各種の変更、修正、置換、付加、削除、および組み合わせが可能である。それらについても当然に本開示の技術的範囲に属する。
例えば、分割プログラムはアドレスの下位または上位から順番に送ってもよいし、アドレスの順番と異なる順番で送ってもよい。なお、分割プログラムをアドレスの順番と異なる順番で送る場合は、分割プログラムと一緒に当該分割プログラムのアドレスに関連する情報(例えば、アドレスそのものでもよいし、順番を示す番号でもよい)を送ってもよい。
10 CPU
11 CPUコア
12 ICインタフェース
13 DMAC
14 SPIインタフェース
15 アービタ
16 内部RAM
18 メモリバス
20 DSP
30 EEPROM
40 光電変換部
42 レーザダイオード(LD)ドライバ
44 レーザダイオード(LD)
46 サーモエレクトリッククーラー(TEC)
52 アバランシェフォトダイオード(APD)
54 バイアス供給部
56 トランスインピーダンスアンプ(TIA)
100 光トランシーバ
200 ホスト装置
WR 書き込み要求コマンド

Claims (10)

  1. ホスト装置とシリアル通信バスを介して通信可能な光トランシーバであって、
    電気信号を処理する信号処理部と、
    前記電気信号と光信号とを相互に変換する光電変換部と、
    第1領域を含む第1メモリと、
    前記信号処理部が実行する制御プログラムが格納され、前記信号処理部によりアクセスされる不揮発性の第2メモリと、
    前記シリアル通信バスのデータ転送レートより高いデータ伝送レートを有する内部シリアル通信バスと、
    前記シリアル通信バスを介して前記ホスト装置から受信した分割プログラムを前記第1領域に格納し、前記第1領域に記憶された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する転送部と、
    を有し、
    前記転送部は、前記第2メモリが前記転送部によって転送された前記分割プログラムを前記第2メモリのメモリセルに書き込む動作を完了する前に、前記第1領域に格納された前記分割プログラムのうち前記第2メモリに転送された部分を格納している前記第1領域の転送済領域へ前記分割プログラムとは異なる別の分割プログラムの格納を開始する、
    光トランシーバ。
  2. 前記転送部は、前記内部シリアル通信バスを介した前記第2メモリへの前記分割プログラムの転送が完了する前に、前記転送済領域へ前記別の分割プログラムの格納を開始する、
    請求項1に記載の光トランシーバ。
  3. 前記分割プログラムおよび前記別の分割プログラムは、前記制御プログラムから分割したプログラムである、
    請求項1または請求項2に記載の光トランシーバ。
  4. 前記第1メモリは、前記第2メモリを制御する制御命令が格納される第2領域を有し、
    前記第1領域は、前記第2領域に連続して設けられる、
    請求項1から請求項3のいずれか一項に記載の光トランシーバ。
  5. 前記第2メモリは、前記制御命令の一つである書き込み命令と前記書き込み命令に続く前記分割プログラムを受信したことに基づいて、前記書き込み命令に続く前記分割プログラムを前記メモリセルに書き込み、
    前記転送部は、前記第2領域に格納された前記書き込み命令と、前記第1領域に格納された前記分割プログラムとを前記第2メモリに連続して転送する、
    請求項4に記載の光トランシーバ。
  6. 前記分割プログラムの前記第1メモリへの格納に要する時間は、前記第1メモリに格納された前記分割プログラムの前記第2メモリへの転送時間と前記分割プログラムの前記メモリセルへの書き込み時間の和より長い、
    請求項1から請求項5のいずれ1項に記載の光トランシーバ。
  7. 前記信号処理部および前記光電変換部の制御を行い、前記転送部を有するプロセッサをさらに有し、
    前記転送部は、前記プロセッサが実行する転送制御プログラムにより前記分割プログラムの転送を行う、
    請求項1から請求項6のいずれか1項に記載の光トランシーバ。
  8. 前記プロセッサは、ダイレクトメモリアクセスコントローラを有し、
    前記ダイレクトメモリアクセスコントローラは、前記転送制御プログラムによる指示に基づいて、前記第1領域に格納された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する、
    請求項7に記載の光トランシーバ。
  9. 前記プロセッサは、内部に前記第1メモリを有する、
    請求項7または請求項8に記載の光トランシーバ。
  10. ホスト装置とシリアル通信バスを介して通信可能であり、電気信号を処理する信号処理部と、前記電気信号と光信号とを相互に変換する光電変換部と、第1領域を含む第1メモリと、前記信号処理部が実行する制御プログラムが格納され、前記信号処理部によりアクセスされる不揮発性の第2メモリと、前記シリアル通信バスのデータ転送レートより高いデータ伝送レートを有する内部シリアル通信バスと、を有する光トランシーバの制御方法であって、
    前記シリアル通信バスを介して前記ホスト装置から受信した分割プログラムを前記第1領域に格納する工程と、
    前記第1領域に記憶された前記分割プログラムを、前記内部シリアル通信バスを介して前記第2メモリに転送する工程と、を有し、
    前記第1領域に格納する工程において、前記第2メモリが転送された前記分割プログラムを前記第2メモリのメモリセルに書き込む動作を完了する前に、前記第1領域に格納された前記分割プログラムのうち前記第2メモリに転送された部分を格納している前記第1領域の転送済領域へ前記分割プログラムとは異なる別の分割プログラムの格納を開始する、
    光トランシーバの制御方法。
JP2021000568A 2021-01-05 2021-01-05 光トランシーバおよび光トランシーバの制御方法 Pending JP2022105928A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021000568A JP2022105928A (ja) 2021-01-05 2021-01-05 光トランシーバおよび光トランシーバの制御方法
US17/646,025 US20220214980A1 (en) 2021-01-05 2021-12-27 Optical transceiver and optical transceiver control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021000568A JP2022105928A (ja) 2021-01-05 2021-01-05 光トランシーバおよび光トランシーバの制御方法

Publications (1)

Publication Number Publication Date
JP2022105928A true JP2022105928A (ja) 2022-07-15

Family

ID=82218648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021000568A Pending JP2022105928A (ja) 2021-01-05 2021-01-05 光トランシーバおよび光トランシーバの制御方法

Country Status (2)

Country Link
US (1) US20220214980A1 (ja)
JP (1) JP2022105928A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11967994B1 (en) * 2021-09-30 2024-04-23 Amazon Technologies, Inc. Optical transceiver
US11876864B1 (en) * 2023-02-13 2024-01-16 Dell Products L.P. Using predictive analytics on SFP metrics to influence the target port selection process

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839007B2 (en) * 2011-06-17 2014-09-16 Dell Products Lp Shared non-volatile storage for digital power control
US20130340977A1 (en) * 2012-06-21 2013-12-26 Gregory L. Singleton Heat sink for use in an electronics system
US8773852B2 (en) * 2012-06-21 2014-07-08 Breakingpoint Systems, Inc. Air flow management device for use in an electronics system
US8891392B2 (en) * 2012-06-21 2014-11-18 Breakingpoint Systems, Inc. Dynamic latency analysis system
US8922243B2 (en) * 2012-12-23 2014-12-30 Advanced Micro Devices, Inc. Die-stacked memory device with reconfigurable logic
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
US10901936B2 (en) * 2016-07-21 2021-01-26 International Business Machines Corporation Staged power on/off sequence at the I/O phy level in an interchip interface
US11216396B2 (en) * 2016-09-29 2022-01-04 Intel Corporation Persistent memory write semantics on PCIe with existing TLP definition
US11080611B2 (en) * 2017-12-22 2021-08-03 Intel Corporation Compression for deep learning in case of sparse values mapped to non-zero value
CA3095153A1 (en) * 2018-03-29 2019-10-03 Cable Television Laboratories, Inc. Systems and methods for coherent optics in an access network
US11163568B2 (en) * 2018-09-06 2021-11-02 International Business Machines Corporation Implementing write ports in register-file array cell
US11392470B2 (en) * 2019-05-15 2022-07-19 Dell Products L.P. Information handling system to allow system boot when an amount of installed memory exceeds processor limit

Also Published As

Publication number Publication date
US20220214980A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US10447401B2 (en) Optical transceiver and upgrading method of the same
CN106874224B (zh) 自动搬运且适应器件的多线SPI-Flash控制器
US20220214980A1 (en) Optical transceiver and optical transceiver control method
US8719476B2 (en) Communication system, master device and slave device, and communication method, configured to handle plural concurrent requests
US20070250652A1 (en) High speed dual-wire communications device requiring no passive pullup components
KR20040044366A (ko) 공유 메모리 데이터 전송장치
CN109359073B (zh) 一种基于spi总线的设备间通信方法及装置
US8295337B2 (en) Digital diagnostics parameter storage
US8655182B2 (en) Optical transceiver implemented with I2C busses arbitrated by selector
CN101149722A (zh) 一种实现cpu访问xfp光模块的方法
JP6197447B2 (ja) 光トランシーバ
US9015272B2 (en) Microcomputer
CN102426560B (zh) 受控设备和受控方法
CN103577356B (zh) 实现iic接口地址扩展的设备及方法
JP4094931B2 (ja) トランシーバ集積回路及び通信モジュール
JP2008015876A (ja) データアクセスシステム、データアクセス装置、データアクセス集積回路及びデータアクセス方法
KR100348545B1 (ko) 통신 dma 장치
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
US20050144331A1 (en) On-chip serialized peripheral bus system and operating method thereof
JP2009130684A (ja) 制御信号通信方法、光トランシーバ装置
CN114996184B (zh) 兼容实现spi或i2c从机的接口模块及数据传输方法
US12001354B2 (en) Semiconductor device and method
KR100982907B1 (ko) 광 네트워크 장치 및 그 모니터링 방법
CN117421264A (zh) 一种可连接多设备的spi接口装置和方法
JP2017220802A (ja) 光トランシーバ