JP2020035336A - ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置 - Google Patents

ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置 Download PDF

Info

Publication number
JP2020035336A
JP2020035336A JP2018163191A JP2018163191A JP2020035336A JP 2020035336 A JP2020035336 A JP 2020035336A JP 2018163191 A JP2018163191 A JP 2018163191A JP 2018163191 A JP2018163191 A JP 2018163191A JP 2020035336 A JP2020035336 A JP 2020035336A
Authority
JP
Japan
Prior art keywords
qspi
data
clock signal
output
circuit
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
JP2018163191A
Other languages
English (en)
Inventor
新藤 泰士
Hiroshi Shindo
泰士 新藤
稔雄 吉原
Toshio Yoshihara
稔雄 吉原
康智 田中
Yasutomo Tanaka
康智 田中
大佑 松永
Daisuke Matsunaga
大佑 松永
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018163191A priority Critical patent/JP2020035336A/ja
Priority to EP19189414.6A priority patent/EP3617895A1/en
Priority to US16/541,048 priority patent/US20200073842A1/en
Publication of JP2020035336A publication Critical patent/JP2020035336A/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】マスタデバイスがデータの出力完了後にクロック信号の供給を停止する場合であっても、ブリッジ回路がマスタデバイスから受信したデータを最後までスレーブデバイスに出力する。【解決手段】ブリッジデバイスは、データの入出力完了後に第1のクロック信号の出力を停止するマスタデバイスと、データに応じて制御されるスレーブデバイスと通信できるブリッジデバイスであって、第1のクロック信号に応じてデータを取得する取得手段と、取得手段により取得されたデータを記憶する記憶手段と、記憶手段に記憶されたデータを読み出して、スレーブデバイスに対して出力する出力手段と、を有する。出力手段は、マスタデバイスから入力される第1のクロック信号と異なる第2のクロック信号が入力され、第2のクロック信号に応じてデータを出力する。【選択図】図3

Description

本発明は、ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置に関する。
情報処理装置において、コントローラのメインバスには、メモリコントローラを介してCPUが実行するソフトウェアの動作ログなどを記憶するメモリが接続される。
メモリコントローラとメモリとは、SPI(Serial Periheral Interface)等のシリアルインタフェースの規格に則って接続される。このとき、メモリコントローラはマスタデバイスとして動作し、メモリはマスタデバイスにより制御されるスレーブデバイスとして動作する。SPIの規格に則った通信は、クロック信号を転送するクロック信号線と、データを転送するデータ信号線と、を用いて行われる。マスタデバイスはクロック信号線にクロック信号を供給し、データ信号線にデータを出力する。スレーブデバイスは、マスタデバイスからクロック信号線を介して入力されるクロック信号に合わせて、データを受信する。
特許文献1には、ブリッジデバイスを用いて、マスタデバイスと複数のスレーブデバイスを接続し、マスタデバイスが複数のスレーブデバイスを制御することが記載されている。特許文献1に記載の装置は、マスタデバイスから供給されるクロック信号がブリッジデバイスとスレーブデバイスに供給されている。ブリッジデバイスとスレーブデバイスはともにマスタデバイスから供給されるクロック信号で動作する。
特開2013−105284号公報
バッファを備えたブリッジデバイスでは、マスタデバイスから入力されたデータを一度バッファに格納し、そのデータを読み出して出力回路からスレーブデバイスに対して出力する。そのため、出力回路によるデータの出力は、データをバッファに格納した分だけマスタデバイスからのデータの入力に比べて遅くなる。
上記のようなブリッジデバイスにおいて、QSPI(Quad SPI)という規格でデータ通信を行うとする。QSPIの規格に則った通信において、マスタデバイスはデータの入出力を完了するとともに、クロック信号の出力を停止する。すなわち、マスタデバイスはデータの入出力を完了すると、ブリッジデバイスの入力回路と出力回路へのクロック信号の供給を停止する。
マスタデバイスが入力回路へのデータ入力が完了したときに出力回路へのクロック供給を停止すると、出力回路がバッファに格納されたデータを最後までスレーブデバイスに出力する前に出力回路へのクロック信号の供給が停止されてしまう。したがって、出力回路はバッファに格納されたデータを最後までスレーブデバイスに出力できない。
本発明は、上記の課題を鑑みて、マスタデバイスがデータの出力完了後にクロック信号の供給を停止する場合であっても、ブリッジ回路がマスタデバイスから受信したデータを最後までスレーブデバイスに出力することを目的とする。
本発明に記載のブリッジデバイスは、第1のクロック信号とデータを出力し、データの入出力が完了したことに応じて前記第1のクロック信号の出力を停止する第1のデバイスと、前記第1のデバイスから出力された前記データに応じて制御される第2のデバイスと通信することのできるブリッジデバイスにおいて、前記第1のデバイスから入力される前記第1のクロック信号に応じて前記第1のデバイスから出力されたデータを取得する取得手段と、
前記取得手段により取得されたデータを記憶する記憶手段と、前記記憶手段に記憶されたデータを読み出して、前記第2のデバイスに対して出力する出力手段と、を有し、前記出力手段は、前記第1のデバイスから入力される前記第1のクロック信号と異なる第2のクロック信号が入力され、当該クロック信号に応じて前記データを出力することを特徴とする。
本発明に記載のブリッジデバイスは、マスタデバイスがデータの出力完了後にクロック信号の供給を停止する場合であっても、ブリッジ回路がマスタデバイスから受信したデータを最後までスレーブデバイスに出力することができる。
本実施形態における情報処理装置の概要を示す図である。 本実施形態における情報処理装置のコントローラ部のブロック図である。 本実施形態におけるQSPIマスタデバイスとQSPIブリッジデバイス、QSPIスレーブデバイスの詳細を示す図である。 本実施形態におけるQSPIの規格に則ったライトアクセスのタイミングチャートである。 本実施形態におけるQSPIの規格に則ったリードアクセスのタイミングチャートである。 本実施形態におけるQSPIスレーブデバイスのメモリマップの一例を示す図である。 本実施形態のQSPIブリッジデバイスにおけるライトアクセス時のタイミングチャートを示す図である。 本実施形態のQSPIブリッジデバイスにおけるリードアクセス時のタイミングチャートを示す図である。 本実施形態のライトアクセス時のブリッジデバイスの実行する処理を示すフローチャートである。 本実施形態のリードアクセス時のブリッジデバイスの実行する処理を示すフローチャートである。
<第1の実施形態>
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
図1は、本実施例に係る情報処理装置として動作するデジタル複合機の構成の一例を示すブロック図である。スキャナ部1010は、原稿を光学的に読み取って画像データに変換する。また、スキャナ部1010は、原稿を光学的に読み取るためのレーザ光源やレンズ等からなる原稿読取部1012と、原稿を搬送するベルト等からなる原稿搬送部1011とで構成される。プリンタ部1040は、記録媒体(用紙)を搬送し、その上に画像データを可視画像として印刷する。プリンタ部1040は、用紙を給紙する給紙部1042、画像データを用紙に転写、定着させる転写定着部1041、印刷された用紙をソート、ステイプルして機外へ搬出する排紙部1043で構成される。
コントローラ部1020は、スキャナ部1010、プリンタ部1040と電気的に接続され、さらにLAN、ISDN、インターネット/イントラネット等のネットワーク1050と接続されている。ユーザがコピー機能を利用する場合、コントローラ部1020は、スキャナ部1010を制御して原稿の画像データを取得し、プリンタ部1040を制御して画像を用紙に印刷し出力する。また、スキャン機能を利用する場合、スキャナ部1010を制御して原稿の画像データを取得してコードデータに変換し、ネットワーク1050を介してホストPC(不図示)等へ送信する。また、プリント機能を利用する場合、ホストPCからネットワーク1050を介して受信した印刷データ(コードデータ)を画像データに変換し、プリンタ部1040を制御して画像を用紙に印刷して出力する。また、ISDN等からデータを受信してプリントするFAX受信機能やISDN等へスキャンしたデータを送信するFAX送信機能も有する。また、これら各機能における処理の実行指示をジョブと呼び、画像処理装置1000は各機能に対応するジョブに従って所定の処理を実行する。操作部1030は、ユーザが入力操作を行うためのユーザインタフェースであり、例えばタッチパネルや各種ボタンで構成される。
図2は、本実施例に係る、コントローラ部1020の内部構成を示すブロック図である。以下、コントローラ部1020を構成する各要素について説明する。
CPU1110は、システム全体を制御するプロセッサーである。CPU1110は、RAM1191に展開されたOSや制御プログラムに従って、プリント処理やスキャン処理といったジョブ処理を統括的に制御する。
ROMコントローラ1120は、システムのブートプラグラムを格納しているROM1190にアクセスするための制御モジュールである。画像処理装置1000の電源がONされた時に、CPU1110はROMコントローラ1120を介してROM1190にアクセスし、CPU1110がブートする。
RAMコントローラ1130は、システムの制御プログラムや画像データが格納されるRAM1191にアクセスするための制御モジュールである。RAMコントローラ1130は、RAM1191の設定や制御を行うためのレジスタを備えており、このレジスタは、CPU1110からアクセス可能である。操作部インターフェース1140は、ユーザが操作部1030を操作した操作指示の受付及び操作結果の表示の制御を行う。
スキャン画像処理部1151は、スキャナ部1010で取得した画像データに対し、シェーディング補正処理、MTF補正処理、ガンマ補正処理、フィルタ処理といったスキャナ用画像処理を行う。また、スキャン画像処理部1151は、静電ノイズの影響による異常周期の同期信号を検出し、検出した異常周期の同期信号のマスク処理および、異常周期の同期信号の数をカウントする機能を持つ。
プリント画像処理部1150は、プリンタ部1040で使用する画像データのための色空間変換処理、中間調処理、ガンマ補正処理といったプリント用画像処理を行う。プリント用画像処理を施し、処理後の画像データをプリンタ部1040へ出力する。
HDD1192は、システムソフトウェアやアプリケーションプログラム、画像データと各画像データに対応するページ情報やジョブ情報を格納する。HDD1192は、HDDコントローラ1160を介してシステムバス1100に接続されており、CPU1110の指示に従ってデータの書き込みや読み出しを行う。
LANコントローラ1170はPHY1193を介してネットワーク1050に接続し、外部のホストコンピュータとの間で画像データなどの情報の入出力を行う。
モデム1172は図示しない公衆回線に接続し、FAX送信やFAX受信ジョブを処理する際に外部のFAX機器とデータ通信を行う。レンダリング部1152は、ネットワーク1050からLANコントローラ1170を経由して受信した画像データ(PDLデータ)を、プリンタ部1040で取り扱い可能なビットマップデータに変換する。
QSPIマスタデバイス410は、QSPIブリッジデバイス411を介してQSPI I/Fを持つメモリデバイスなどのQSPIスレーブ412、413にアクセスするための制御モジュールである。QSPIマスタデバイス410とQSPIブリッジデバイス411は第1のQSPI I/F420で接続される。
QSPIブリッジデバイス411は、第1のQSPI I/F420を介してQSPIマスタデバイス410から転送されたデータをQSPIスレーブデバイス412、413に転送する。QSPIブリッジデバイス411は第2のQSPI I/F421を介してQSPIスレーブデバイス412と接続される。また、QSPIブリッジデバイス411は第3のQSPI I/F422を介してQSPIスレーブデバイス413と接続される。
QSPIスレーブデバイス412、413は、QSPI I/Fを有するFRAM(登録商標)(Feroelectric Random Memory)やSRAM(Static Random Memory)等のメモリデバイスである。本実施形態では、QSPIスレーブ412,413は、CPU1110が実行するブート処理や、プログラムの実行のログを記録する。なお、本実施形態では、QSPIスレーブデバイスとして、メモリデバイスを例に説明するが、QSPIスレーブデバイスはこれに限定されるものではない。
本実施形態においては、コントローラ部1020は第1のプリント基板に実装され、QSPIブリッジデバイス411、QSPIスレーブデバイス412、413は第2のプリント基板に実装される。
本実施形態は、図2のようにQSPIブリッジデバイス411を用いて、ひとつのQSPIマスタデバイス410に対して複数のQSPIスレーブデバイス412、413を接続することができるように構成される。このようにQSPIブリッジデバイス411を用いることで、QSPIマスタデバイス410の構成を変えることなく、QSPIマスタデバイス410に接続されるQSPIスレーブデバイスの数を増やすことができる。QSPIスレーブデバイスがFRAM等のメモリである場合、QSPIブリッジデバイス411を用いて、QSPIスレーブデバイスの数を増やし、疑似的にメモリの容量を大きくすることができる。
図3を用いて、本実施形態における、QSPIマスタデバイス410とQSPIブリッジデバイス411、QSPIスレーブデバイス412、413の詳細を説明する。
QSPIブリッジデバイス411は、QSPIスレーブ回路501、QSPIマスタ回路502、503およびSCKゲート回路532、533で構成される。
QSPIマスタデバイス410とQSPIスレーブ回路501は、以下に示す6本の信号線を用いてQSPIの規格に則った通信を行う。
CS信号線543は、QSPIマスタデバイス410がアクセスするデバイスのアクセス開始を通知するチップセレクト信号を伝送する信号線である。SCK信号線544は、IO_0信号線545〜IO_3信号線548を用いて行われるデータ転送を同期するためのクロック信号を伝送する信号線である。QSPIの規格に則った通信では、クロック信号はデータ転送中のみ出力される。データ転送が完了した後、QSPIマスタデバイス410は、CS信号をネゲートし、クロック信号の出力を停止する。
IO_0信号線545〜IO_3信号線548は、QSPIマスタデバイス410とQSPIスレーブ回路501とがデータ転送するための信号線である。
ライトバッファ511は、QSPIマスタデバイス410からライトアクセスがなされたときにQSPIスレーブデバイス412、413に書き込まれるデータを一時的に格納するバッファである。本実施形態では、QSPIスレーブ回路501が8クロック分のライトバッファ511を備えるものとする。なお、ライトバッファ511の容量は上記の容量に限定されるものではない。
QSPIスレーブ回路501とQSPIマスタ回路502は、信号線520を介して接続される。信号線520は、QSPIマスタデバイス410から転送された信号を解析して得られるオペコードを転送るための信号線、アドレスを転送するための信号線、ライトバッファ511に格納されたデータを転送するための信号線等で構成される。さらに、信号線520は、QSPIマスタ回路502の動作を制御するためのデータ通信イネーブル信号を転送するための信号線を有する。信号線520に含まれる信号線は、QSPIスレーブ回路501のバッファに接続される。QSPIスレーブ回路501は、マスタデバイス410から入力されるクロック信号に合わせて、バッファにデータを書き込む。QSPIマスタ回路502は、信号線550を介して入力されるクロック信号に合わせて、QSPIスレーブ回路501に格納されたデータを読み出して、スレーブデバイス412に渡す。図3や以下の説明では、簡略化のため信号線520と呼称するが、信号線520は上記のように複数の信号線で構成される。
QSPIスレーブ回路501とQSPIマスタ回路503は信号線521を介して接続される。信号線521の詳細は信号線520と同様であるため説明を省略する。
外部クロック信号線550は、SCK信号線544と異なる周波数のクロック信号をQSPIマスタ回路502とQSPIマスタ回路503に供給するための信号線である。本実施形態において、外部クロック信号線550を介してQSPIマスタ回路502、503に供給されるクロック信号の周波数はQSPIマスタデバイス410からQSPIスレーブ回路501に供給されるクロック信号の周波数よりも速い周波数であるとする。外部クロック信号線550にクロック信号を供給する振動子は、QSPIマスタデバイス410にクロック信号を供給されるクロック信号を供給する振動子と異なる振動子である。
QSPIマスタ回路502はSCKゲート回路532を介して、QSPIスレーブデバイス412と接続される。QSPIマスタ回路502とQSPIスレーブデバイス412はQSPIの規格に則ってデータの転送を行う。なお、CS信号線553、SCK信号線554、IO_0信号線555〜IO_3信号線558についてはQSPIマスタデバイス410とQSPIスレーブ回路501間の信号線と同様であるため説明を省略する。
SCKゲート回路532は、QSPIマスタ回路502から出力されたクロック信号をゲートし、QSPIスレーブデバイス412へクロック信号が入力されないよう制御する回路である。たとえば、QSPIマスタデバイス410からのライトアクセス時にライトバッファが空になった場合に、SCKゲート回路532がQSPIスレーブデバイス412へのクロック信号の供給を一時停止する。また、QSPIマスタデバイス410からのリードアクセス時に、リードバッファがいっぱいになった場合にSCKゲート回路532がQSPIスレーブデバイスへのクロック信号の供給を停止する。
リードバッファ512は、QSPIスレーブデバイス412から転送されたリードデータを格納するバッファである。本実施形態ではリードバッファ512は8クロック分のバッファとするが、バッファの容量はこれに限定されるものではない。
QSPIマスタ回路503はSCKゲート回路533を介してQSPIスレーブデバイス413に接続される。QSPIマスタ回路503とQSPIスレーブデバイス413はQSPIの規格に則ってデータの転送を行う。QSPIマスタ回路503とQSPIスレーブデバイス413の間の構成はQSPIマスタ回路502とQSPIスレーブデバイス412の間の構成と同様であるため説明を省略する。
QSPIの規格において、データ転送の開始、終了はマスタ側のデバイスからしか制御することができない。そのため、例えば、QSPIマスタデバイス410がデータを書き込む際、ライトバッファ511がフルになったとしても、QSPIスレーブ回路501からQSPIマスタデバイス410のデータ転送を停止することができない。そこで、本実施形態では、QSPIマスタ回路502に供給されるクロック信号の周波数をQSPIマスタデバイス410からQSPIスレーブデバイス412に供給されるクロック信号よりも速くする。それにより、ライトバッファ511からのデータの読み出し速度がライトバッファ511へのデータの書き込み速度よりも速くなる。そのため、ライトバッファ511がフルになるのを抑制することができる。本実施形態では、外部クロックがQSPIスレーブ回路501に供給されるクロック信号の周波数の2倍の周波数であるとする。外部クロックはQSPIスレーブ回路501に供給されるクロック信号の周波数よりもわずかでも速い周波数であればよい。
図4は、QSPIの規格でマスタデバイス410、または、マスタ回路502、503がスレーブに対してライトアクセスするときのタイミングチャートである。QSPIの規格に則った信号は、オペコード201、アドレス202、ライトデータ203の3つのフェーズで構成される。IO_0信号105〜IO_3で示されるデータ信号線を介して転送されるデータを示すブロックの中に記載される数字はスレーブデバイスがデータを解析するときのビットの順番を示している。ライトデータ203においては、ブロックの中の数字の上位の桁がバイト数を示しており、下位の桁が解析する時の順番を示している。
オペコード201は、QSPIスレーブに対してどのような処理を実行するかを示す信号である。CS信号103がアサートされた後の2クロック分8ビットで送信される。オペコード201のフェーズで送信される信号はIO_3信号108の0番目のビットが最も下位のビットであり、IO_0信号105の7番目のビットが最も上位のビットである。
アドレス202はデータのライトを開始するアドレスを指定するための信号である。アドレス202はオペコード201に続けて送信される、6クロック24ビットで指定される。ここで、本実施形態で使用されるQSPIスレーブデバイス412、413はともに容量が512KbyteのFRAMであるとする。すなわち、QSPIブリッジデバイス411には1MbyteのFRAMが接続されている。そのため、本実施形態では24bitある信号のうち、0番目のビットから19番目のビットまでの20ビットを使ってそれぞれのQSPIスレーブデバイスのアドレスを指定する。QSPIスレーブデバイス412は10番目〜23番目のビットの信号を無効とする。本実施系形態では無効とされるデータの箇所にXを記載している。
ライトデータ203は、QSPIスレーブデバイス412または413に格納するデータの信号である。ライトデータ203のフェーズでは書き込むデータを連続して出力することができる。ライトデータが連続して出力された場合、アドレス202で指定されたアドレスからアクセスするアドレスを1つずつインクリメントしながらデータを書き込む。
次に、図5はQSPIの規格でマスタデバイス410、または、マスタ回路502、503がスレーブにリードアクセスするときのタイミングチャートである。図5のリードデータ304における各ブロック内の数字の上位の桁はバイト数を示しており、下位の桁はQSPIマスタデバイス410がデータを受信したときの解析順を示している。
リードコマンドは、オペコード301、アドレス302、ダミーサイクル303、リードデータ304のフェーズで構成される。オペコード301、アドレス302はライトコマンドと同様のため説明を省略する。ダミーサイクル303は、スレーブ回路やスレーブデバイスがデータを読み出すのに必要な待ち時間を示すフェーズである。マスタ側のデバイスには、予め接続されるスレーブデバイスで決められているダミーサイクルの数が設定される。マスタ側のデバイスはリードコマンドを出力する際に、予め設定されたサイクル数のクロック信号をダミーサイクル303とする。マスタ側のデバイスは、ダミーサイクル303の間はデータを受信しても、当該データを無効とする。リードデータ304では、アドレス302で指定されたアドレスに格納されたデータを取得する。リードデータ304では連続してデータを取得することができる。この時、アドレス302で指定されたアドレスを先頭とし、アドレスを1ずつインクリメントしながらQSPIスレーブデバイス412、413からデータを取得する。
図6は、本実施形態において、QSPIマスタデバイス410がアドレスフェーズで指定するアドレスと、各アドレスに対応するQSPIスレーブデバイス412、413の関係を示す図である。ここでは、アドレスを16進数で示している。0x0000〜0x07FFFFまではQSPIスレーブ412に対応するアドレスである。0x080000から0x0FFFFFまではQSPIスレーブデバイス413に対応するアドレスである。即ち、2進数であらわした際の20番目のビットが0である場合、当該アクセスはQSPIスレーブデバイス412へのアクセスである。そして、2進数であらわした際の20番目のビットが1である場合、当該アクセスはQSPIスレーブデバイス413へのアクセスである。このように、本実施形態では、複数のQSPIスレーブデバイスに対して連続したアドレスを付与する。このようにすることで、複数のQSPIスレーブデバイスを1つのQSPIスレーブデバイスであるかのように扱うことができるようになる。すなわち、QSPIマスタデバイス410から、複数のQSPIスレーブデバイスを跨ぐようなアクセスを行う際も、アクセスするアドレスをインクリメントするだけで、次のQSPIスレーブデバイスへとアクセスを切り替えることができるようになる。
続いて、図7と図9を用いてQSPIブリッジデバイス411がQSPIマスタデバイス410からライトアクセスを受け付けたときの動作を説明する。図7は、QSPIブリッジデバイス411がライトアクセスを受け付けたときのタイミングチャートである。図9は、QSPIブリッジデバイス411がライトアクセスを受け付けたときの、QSPIスレーブ回路501の実行する処理と、QSPIマスタ回路502の実行する処理を示すフローチャートである。ここでは、QSPIスレーブデバイス412に対するライトアクセスを例に説明する。
図7のCS信号線543、SCK信号線544、IO_0信号線545〜IO_3信号線548はQSPIマスタデバイス410とQSPIスレーブ回路501間の各信号線の状態を示している。オペコード700、アドレス701、ライトデータバッファ0〜7 511、ライトポインタ703、データ通信イネーブル704は、QSPIスレーブ回路501とQSPIマスタ回路502、503との間の信号線520、521の状態を示している。ライトバッファのリードポインタ705は、QSPIマスタ回路502が管理するライトバッファのアクセス先となるリードポインタである。外部クロック信号線550は、QSPIマスタ回路502、503、SCKゲート回路532、533へ入力される外部クロック信号を示している。SCKゲート信号線552は、QSPIマスタ回路502とSCKゲート回路532を接続する信号線の状態を示す。CS信号線553、SCK信号線554、IO_0信号線555〜IO_3信号線558は、QSPIマスタ回路502とQSPIスレーブデバイス412の間の信号線の状態を示す。CS信号線563、SCK信号線564、IO_0信号線565〜IO_3信号線568、SCKゲート信号線562はQSPIマスタ回路503とQSPIスレーブデバイス413との間の信号線の状態を示す。
図9(a)は、QSPIマスタデバイス410からのライトアクセス時に、QSPIスレーブ回路501の実行する処理を示すフローチャートである。図9(b)は、QSPIマスタデバイス410からのライトアクセス時に、QSPIマスタ回路502が実行する処理を示すフローチャートである。
QSPIスレーブ回路501は、CS信号がアサートされたか否かを判定する(S901)。S901において、QSPIスレーブ回路501は、CS信号線543の電圧レベルがLowレベルであるか否かを判定する。T101において、QSPIマスタデバイス410がCS信号をLowレベルにアサートする。QSPIスレーブ回路501は、CS信号がLowレベルにアサートされたことを検知し、処理をS902に進める。
QSPIスレーブ回路501は、オペコードを受信し不図示のバッファに格納する(S902)。オペコードが格納されるバッファは、ライトバッファ511とは異なるバッファである。
QSPIスレーブ回路501は、オペ―コードの受信が完了したか否かを判定する(S902)。QSPIスレーブ回路501は、CS信号がアサートされてから2クロック分のデータの受信を完了している場合、S903に処理を進める。2クロック分のデータの受信が完了していない場合S902に戻り、オペコードを受信する。T202において、QSPIスレーブ回路501はオペコードの受信を完了する。T102において、QSPIスレーブ回路501はオペコードを解析し、オペコード700を出力する。
続けて、QSPIスレーブ回路501は、アドレスを受信し、不図示のバッファに格納する(S904)。アドレスが格納されるバッファは、オペコードが格納されるバッファや、ライトバッファとは異なるバッファである。QSPIスレーブ回路501はオペコードの受信が完了したのち、受信されたオペコードをバッファに格納する。QSPIスレーブ回路501は、アドレスの受信が完了したか否かを判定する(S905)。オペコードの受信完了後、6クロック分のデータを受信した場合、QSPIスレーブ回路501はアドレスの受信が完了したと判定し、S906へ処理を進める。6クロック分のデータの受信が完了していない場合、QSPIスレーブ回路501は、S904の処理を実行する。T103において、QSPIスレーブ回路501はオペコードの受信を完了する。QSPIスレーブ回路501は、受信したアドレス701を信号線520、521に出力する。
QSPIスレーブ回路501は、データ通信イネーブル信号をHighレベルにアサートする(S906)。QSPIスレーブ回路501は、CS信号がLowレベルにアサートされてから8クロック分のデータを受信した後のT104において、データ通信イネーブル704の電圧レベルをHighレベルに設定する。これにより、データ通信イネーブル信号がアサートされる。データ通信イネーブル信号は、QSPIマスタ回路502,503がQSPIスレーブ回路501にアクセスして良いことを示す信号である。
QSPIスレーブ回路501はQSPIマスタデバイス410からライトデータを受信する(S907)。QSPIスレーブ回路501は、SCK信号線544に合わせてライトデータを受信し、ライトバッファへのライトポインタ703で指示されるバッファにデータを書き込む。そして、QSPIスレーブ回路501は、ライトポインタ703をインクリメントする(S908)。このとき、ライトポインタが7である場合は、ライトポインタを0に設定する。ライトデータバッファ0〜7のそれぞれに、IO_0信号線545〜IO_3信号線547の4ビット分のデータが格納される。
S909において、QSPIスレーブ回路501はCS信号がネゲートされたか否かを判定する。QSPIスレーブ回路501は、CS信号線543の電圧レベルがHighレベルであるか否かを判定する。CS信号線543の電圧レベルがHighレベルの場合、QSPIスレーブ回路501はCS信号がネゲートされたと判定する。CS信号がネゲートされていない場合、QSPIスレーブ回路はS907に処理を戻す。本実施形態では、T109でCS信号がネゲートされる。CS信号がネゲートされている場合、QSPIスレーブ回路501はデータ通信イネーブル704の電圧レベルをLowレベルに設定し、データ通信イネーブル信号をネゲートする(S910)。T109において、QSPIスレーブ回路501は、データ通信イネーブル704の電圧レベルをLowレベルに設定する。これにより、QSPIスレーブデバイス412、413からQSPIマスタ回路502,503へのアクセスを停止することができる。
次に、図9(b)を用いて、QSPIマスタ回路502の実行する処理を説明する。
QSPIマスタ回路502は、データ通信イネーブル信号がアサートされているか否かを判定する(S911)。QSPIマスタ回路502は、信号線520を介してデータ通信イネーブル704の電圧レベルがHighレベルになるまで、S911に記載の処理を実行する。T105でデータ通信イネーブル704の電圧レベルがHighレベルになったことに従って、QSPIマスタ回路502はS912に記載の処理を実行する。
QSPIマスタ回路502は、信号線520を介して入力されるアドレス701を取得し、取得したアドレスが接続されているQSPIスレーブデバイス412を選択するアドレスであるか否かを判定する(S912)。S912において、QSPIマスタ回路502は予め自身に接続されるQSPIスレーブデバイス412のアドレスの19ビット目の値を記憶している。そして、QSPIスレーブデバイス412は受信したアドレスの19ビット目の値を参照し、QSPIスレーブデバイス412へのアクセスであるか否かを判定する。アドレス701で指定されるスレーブデバイスがQSPIマスタ回路502に接続されているスレーブデバイスでない場合、QSPIマスタ回路502は、図9(b)に記載の処理を完了する。
アドレス701で指定されているスレーブデバイスがQSPIマスタ回路502に接続されているスレーブデバイスである場合、QSPIマスタ回路502はCS信号をアサートする(S913)。QSPIマスタ回路502は、T105においてCS信号線543の電圧レベルをLowレベルに設定する。CS信号線553の電圧レベルがLowレベルに設定されると、QSPIスレーブデバイス412へのクロック信号やデータの供給が開始される。
CS信号のアサートとともに、QSPIマスタ回路502は、SCKゲート回路532によるクロック信号のゲートを解除する(S914)。QSPIマスタ回路502は、SCKゲート信号線552の電圧レベルをLowレベルに設定し、SCKゲート信号をネゲートする。これにより、QSPIスレーブデバイス412へのクロック信号の供給が開始される。
QSPIマスタ回路502は、IO_0信号線554〜IO_3信号線558を介してオペコードをQSPIスレーブデバイス412に出力する(S915)。QSPIマスタ回路502は、信号線520を介して、オペコード700を取得し、4本の信号線を介して、2クロックでオペコードを出力する。
そして、QSPIマスタ回路502は、IO_0信号線554〜IO_3信号線558を介してアドレスをQSPIスレーブデバイス412に出力する(S916)。QSPIマスタ回路502は、信号線520を介してアドレス701を取得し、QSPIスレーブデバイス412に対して出力する。
QSPIマスタ回路502は、ライトバッファ511からデータを読み出す際のリードポインタ705の値を取得する(S917)。CS信号がアサートされ、オペコードとアドレスが受信された後のT106において、QSPIマスタ回路502は、リードポインタ705を取得する。QSPIマスタ回路502は、S917で取得したポインタに従って、ライトバッファ511からデータを読み出し、IO_0信号線555〜IO_3信号線558を介してスレーブデバイス412にライトデータを出力する(S918)。
QSPIマスタ回路502は、ライトバッファ511が空になっているか否かを判定する(S919)。QSPIマスタ回路502は、ライトポインタ703とリードポインタ705の値を取得する。取得したライトポインタとリードポインタの値が一致した場合、ライトバッファが空になっていると判定する。ライトバッファ511が空でない場合、QSPIマスタ回路502は、S920に処理を進める。ライトバッファ511が空である場合、QSPIマスタ回路502は、S921に処理を進める。たとえば、T107において、QSPIマスタ回路502は、ライトポインタとリードポインタの値が異なるため、ライトバッファ511は空ではないと判定する。
S920において、QSPIマスタ回路502は、ライトバッファへのリードポインタ705の値を1インクリメントする。設定されているリードポインタが7である場合、QSPIマスタ回路502は、リードポインタを0に設定する。そして、S918処理を戻す。
S919でライトバッファ511が空であると判定された場合、QSPIマスタ回路502は、データ通信イネーブル信号がネゲートされているか否かを判定する(S921)。QSPIマスタ回路502は、データ通信イネーブル704の電圧レベルがLowレベルである場合、データ通信イネーブル信号がネゲートされていると判定する。
S921において、データ通信イネーブル信号がネゲートされていない場合、QSPIマスタデバイス410はデータ転送の途中である。そこで、QSPIマスタ回路502は、以下のS922〜S924に記載の処理を実行する。
QSPIマスタ回路502は、SCKゲート回路532を制御し、QSPIスレーブデバイス412に供給されるクロック信号をゲートする(S922)。これにより、QSPIスレーブデバイス412へのデータの転送が一時停止される。
そして、QSPIマスタ回路502は、ライトバッファ511が空か否かを改めて判定する(S923)。QSPIマスタ回路502は、ライトポインタとリードポインタを取得し、取得したライトポインタとリードポインタを比較する。ライトポインタとリードポインタが一致している場合、QSPIマスタ回路502はライトバッファ511が空であると判定する。ライトポインタとリードポインタが異なる値である場合、QSPIマスタ回路502は、ライトバッファ511に読み出していないデータが格納されており、ライトバッファ511が空でないと判定する。たとえば、図7のT108において、リートポインタとライトポインタがともに同じ値となる。そのため、T108においてQSPIマスタ回路502は、読み出していないデータがライトバッファ511に格納されておらず、ライトバッファ511が空であると判定する。QSPIマスタ回路502は、クロック信号をQSPIスレーブデバイス412に供給せず、ライトバッファ511にデータが溜まるのを待つ。そして、ライトバッファ511に読み出していないデータが溜まった後、QSPIマスタ回路502はQSPIスレーブデバイス412へのクロック信号の供給を再開して、QSPIスレーブデバイス412へのデータの書き込みを再開する。
ライトバッファ511が空の場合、QSPIマスタ回路502はS923の処理を繰り返し実行する。ライトバッファ511に読み出しデータがない場合、ライトバッファ511に読み出すデータが溜まるまで、QSPIスレーブデバイス412へのクロック供給を停止する。
ライトバッファ511が空でなかった場合、QSPIマスタ回路502は、SCKゲート回路532を制御し、QSPIスレーブデバイス412へのクロック信号のゲートを解消し、クロック信号の供給を再開する。クロック信号の供給の再開後、QSPIマスタ回路502は、S920に処理を進める。
S921でデータ信号イネーブル信号がネゲートされている場合、QSPIマスタ回路502は、CS信号線553の電圧レベルをHighレベルにし、CS信号をネゲートする(S925)。ライトバッファ511に格納されたデータを全て読出し、且つ、QSPIマスタデバイス410がライトデータの転送を完了している場合、QSPIスレーブデバイス412へのデータ転送が完了していることとなる。そこで、QSPIマスタ回路502は、QSPIマスタ回路502とQSPIスレーブデバイス412間のCS信号をネゲートし、QSPIマスタ回路502とQSPIスレーブデバイス412の間の通信を終了する。
本実施形態ではQSPIマスタ回路502からQSPIスレーブデバイス412に供給されるクロック信号の周波数をQSPIマスタデバイス410がQSPIスレーブ回路501に供給するクロック信号の周波数よりも速くする。このようにすることで、ライトバッファ511からのデータの読み出し速度が、QSPIマスタ回路502,503がライトバッファ511への書き込み速度より速くなる。そのため、ライトバッファ511にデータが溜まり、読み出し前のデータでライトバッファ511があふれてしまうことを防ぐことができる。一方で、ライトバッファ511への書き込みが追い付かず、ライトバッファ511が空になる可能性がある。そこで、QSPIスレーブデバイスへのクロック供給を停止し、QSPIスレーブデバイスへのデータ転送を一時的に停止する。そして、ライトバッファ511にデータが溜まった後、再度QSPIスレーブデバイスへの転送を再開する。
図9(b)ではQSPIマスタ回路502の実行する処理を説明したが、QSPIマスタ回路503も図9(b)に示す処理を実行する。QSPIマスタ回路503が図9(b)に示す処理を実行する際には、QSPIマスタ回路503はS912において受信したアドレスがQSPIスレーブデバイス413を示すアドレスか否かを判定する。
続いて、QSPIブリッジデバイス411のリードアクセス時の処理について、図8と図10を用いて詳しく説明する。図8はQSPIマスタデバイス410からリードコマンドが発行された場合の処理の流れを示すタイミングチャートである。なお、本実施形態においては、QSPIマスタデバイス410がQSPIスレーブデバイス412からデータを読み出すとする。
図8のリードバッファからのリードポインタ800は、QSPIマスタ回路503のリードバッファ512に格納されたデータを読み出す場合のアクセス先となるバッファを示すポインタである。リードバッファへのライトポインタ801は、QSPIマスタ回路502,503リードバッファ512、513へデータを格納するときのアクセス先となるバッファを示すポインタである。
図10(a)は、QSPIマスタデバイス410がリードコマンドを発行した場合の、QSPIスレーブ回路501の実行する処理を示すフローチャートである。
QSPIスレーブ回路501はCS信号がアサートされた否かを判定する(S1001)。時刻T201において、QSPIマスタデバイス410はQSPIブリッジデバイス411に対してリード動作を開始するため、CS信号線543の電圧レベルをLowレベルに設定する。QSPIスレーブ回路501は、CS信号がアサートされたことに従って、S1002に処理を進める。
QSPIスレーブ回路501は、QSPIマスタデバイス410からIO_0信号線544〜IO_3信号線548を介してオペコードを受信する(S1002)。QSPIスレーブ回路501はオペコードを受信して、不図示のバッファに格納する。QSPIスレーブ回路501はオペコードの受信が完了したか否かを判定する(S1003)。オペコードの受信が完了している場合、QSPIスレーブ回路501は処理をS1003以降に進める。オペコードの受信が完了していない場合、QSPIスレーブ回路501は引き続きオペコードを受信する。時刻T202において、QSPIスレーブ回路501はQSPIマスタデバイス410からオペコードの受信を完了する。また、QSPIスレーブ回路501は、受信したオペコードを保持し、信号線520,521を介してQSPIマスタ回路502,503にオペコード700を出力する。
QSPIスレーブ回路501はQSPIマスタデバイス410からアドレスを受信する(S1004)。QSPIスレーブ回路501は、受信したアドレス701を不図示のバッファに格納し、信号線520、521を介してQSPIマスタ回路502、503に出力する。QSPIスレーブ回路501は、アドレスの受信を完了したか否かを判定する(S1005)。T203においてQSPIスレーブ回路501は、アドレスの受信を完了する。QSPIスレーブ回路501は受信したアドレスを解析し、アドレスによって指定されるデバイスがQSPIスレーブデバイス412であるか、QSPIスレーブデバイス413であるかを判定する。以降、QSPIスレーブ回路501がリードバッファからデータを読み出す際には、S1005で判別されたQSPIスレーブデバイスと接続されるQSPIマスタ回路のリードバッファからデータを読み出す。
時刻T204において、QSPIスレーブ回路501は、データ通信イネーブル信号をアサートする(S1006)。QSPIスレーブ回路501は、データ通信イネーブル704の電圧レベルをHighレベルにする。そして、QSPIスレーブ回路501は、信号線520、521を介してQSPIスレーブデバイス412、413からリードデータを受信したか否かを判定する(S1007)。QSPIスレーブ回路501はリードデータを受信するまで、S1007に記載の処理を繰り替えし実行する。すなわち、QSPIスレーブ回路501はダミーサイクルの間S1007に記載の処理を実行する。QSPIスレーブ回路501は、リードデータを受信した場合S1008に処理を進める。QSPIスレーブ回路501は、IO_0信号線545〜IO_3信号線348を介してQSPIマスタデバイス410に受信したリードデータを送信する。
QSPIスレーブ回路501は、QSPIマスタデバイス410の出力するCS信号がネゲートされたか否かを判定する(S1009)。QSPIスレーブ回路501は、CS信号線543の電圧レベルがHighレベルである場合、CS信号がネゲートされたと判定する。QSPIスレーブ回路501は、データ通信イネーブル信号をネゲートする(S1010)。T209でQSPIマスタデバイス410がCS信号をネゲートした後、T210でQSPIスレーブ回路501がデータ通信イネーブル704の電圧レベルをLowレベルに設定する。
図10(b)は、QSPIマスタ回路502の実行する処理を示すフローチャートである。
QSPIマスタ回路502は、データ通信イネーブル信号がアサートされたか否かを判定する(S1011)。S1011において、QSPIマスタ回路502は、データ通信イネーブル704の電圧レベルがHighレベルである場合に、データ通信イネーブル信号がアサートされていると判定する。T205において、データ通信イネーブル704がアサートされるまで、QSPIマスタ回路502は、S1009に記載の処理を実行する。
データ通信イネーブル信号がアサートされた後、QSPIマスタ回路502は、信号線520を介して受信されるアドレス701が接続されているQSPIスレーブデバイス412を指定するアドレスであるか否かを判定する(S1012)。信号線520を介して受信されたアドレス701がQSPIスレーブデバイス412を指定するアドレスである場合、S1013以降の処理を実行する。信号線520を介して受信されたアドレスがQSPIスレーブデバイス412を指定するアドレスでない場合、図10(b)に記載の処理を終了する。
QSPIマスタ回路502は、CS信号をアサートする(S1013)。T205において、QSPIマスタ回路502は、CS信号線543の電圧レベルをLowレベルに設定し、CS信号をアサートする。そして、QSPIマスタ回路502は、SCKゲート信号線552の電圧レベルをLowレベルに設定しSCKゲート信号をアサートする(S1014)。
QSPIマスタ回路502は、IO_0信号554〜IO_3信号557を介してオペコードをQSPIスレーブデバイス412に送信する(S1015)。続けて、QSPIマスタ回路502は、IO_0信号554〜IO_3信号557を介してアドレスをQSPIスレーブデバイス412に送信する(S1016)。そして、QSPIマスタ回路502は、リードバッファ512へアクセスする際のライトポインタを読み出す(S1017)。T206において、リードバッファへのライトポインタ801を取得する。
QSPIマスタ回路502は、QSPIスレーブデバイス412からリードデータを受信し、S1017で読み出したライトポインタで示されるリードバッファ512に受信したリードデータを格納する(S1018)。なお、本実施形態においては、リードコマンドの発行時のダミーサイクルは3サイクルであるとするが、サイクル数は上記のサイクル数に限らない。
QSPIマスタ回路502は、データ通信イネーブル信号がネゲートされたか否かを判定する(S1019)。QSPIマスタ回路502は、データ通信イネーブル704の電圧レベルがLowレベルであると判定した場合、データ通信イネーブル信号がネゲートされたと判定する。データ通信イネーブル信号がネゲートされている場合、QSPIマスタデバイス410からのアクセスが完了している場合であるため、QSPIマスタ回路502は図10(b)に記載の処理を完了する。
データ通信イネーブル信号がネゲートされていない場合、QSPIマスタ回路502は、リードバッファがいっぱいになったか否かを判定する(S1020)。QSPIマスタ回路502は、リードバッファ512にアクセスする際のライトポインタ801とリードポインタ800の値を比較する。QSPIマスタ回路502は、ライトポインタ801とリードポインタ800の値が一致している場合にリードバッファ512がいっぱいであると判定する。リードバッファ512がいっぱいでない場合、QSPIマスタ回路502はライトポインタの値を1インクリメントする(S1021)。
リードバッファがいっぱいである場合、QSPIマスタ回路502は、SCK信号をネゲートし、QSPIスレーブデバイス412にSCK信号が入力されないよう制御する(S1022)。たとえば、T207では、リードバッファ512に対するライトポインタとリードポインタの値が一致している。QSPIマスタ回路502は、リードバッファ512がいっぱいであると判定し、SCKゲート信号線552の電圧レベルをHighレベルに設定する。これにより、クロック信号がQSPIスレーブデバイス412に入力されないよう制御する。
QSPIマスタ回路502は、リードバッファがいっぱいであるかを判定する(S1023)。S1023において、QSPIマスタ回路502は、リードバッファ512に対するライトポインタとリードポインタを比較する。ライトポインタとリードポインタが一致する場合、リードバッファ512がいっぱいであると判定する。
リードバッファ512がいっぱいでなくなった場合、QSPIマスタ回路502は、SCKゲート信号線552の電圧レベルをLowレベルに設定して、SCKゲート回路532によるクロック信号のゲートを解除する(S1024)。これにより、ふたたびQSPIスレーブデバイス412にクロック信号が供給される。たとえば、T208のようにリードポインタとライトポインタの値が異なる場合、QSPIマスタ回路502はリードバッファ512がいっぱいでないと判定する。すなわり、リードバッファ512はQSPIスレーブデバイス412から読み出したデータを格納することができる。この場合、QSPIマスタ回路502はQSPIスレーブデバイス412へのクロック信号のゲートを解除し、リードデータの読み出しを再開する。
S1019において、データ通信イネーブル信号がネゲートされてた場合、QSPIマスタ回路502は、CS信号線553の電圧レベルをHighレベルにし、CS信号をネゲートする(S1025)。以上で図10に記載の処理を完了する。
本実施形態では、QSPIマスタ回路502、503に、QSPIスレーブ回路501に供給されるクロック信号よりも速い周波数のクロック信号を供給する。そのため、QSPIマスタデバイス410がリード要求を発行した際の、リードバッファ512、513からの読み出しがリードバッファへの書き込みよりも遅くなる。そして、リードバッファ512、513が読出しの完了していないデータでいっぱいになってしまう場合がある。そこで、リードバッファ512、513が読出しの完了していないデータでいっぱいになった場合に、QSPIマスタ回路502、503はQSPIスレーブデバイス412,413へのクロック信号の供給を一時停止する。そして、QSPIマスタ回路502、503は、QSPIスレーブデバイス412,413からのデータの読み出しを一時的に停止し、QSPIスレーブ回路501によるリードバッファ512からのデータの読み出しのみを実行する。このようにすることで、リードバッファ512、513のあふれによるデータの消失を防ぐことができる。
上述のように、ブリッジデバイスを用いてQSPIマスタデバイスとQSPIスレーブデバイスを接続する場合に、QSPIマスタデバイスから供給されるクロック信号と異なるクロック信号をQSPIスレーブデバイスに供給する。そして、QSPIスレーブに供給されるクロック信号は、少なくともブリッジデバイスとQSPIスレーブデバイスがデータの転送を行っている間継続して供給される。このようにすることで、ブリッジデバイスが最後までQSPIデバイスとデータの転送を行うことができる。
また、ブリッジデバイスは、QSPIマスタデバイスから供給されるクロック信号よりも速い周波数のクロック信号をQSPIスレーブデバイスに供給する。このようにすることで、ブリッジデバイス内のバッファが、QSPIマスタデバイスから転送されたデータであふれることなく、ブリッジデバイスに転送されたデータをQSPIスレーブデバイスに転送することができる。
<その他の実施形態>
なお、本実施形態においては、QSPIスレーブ回路501、QSPIマスタ回路502、503を用いて図9、図10に記載の処理を実行するとして説明した。CPUがブリッジデバイスを制御し、当該処理を実行するとしてもよい。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (17)

  1. 第1のクロック信号とデータを出力し、データの入出力が完了したことに応じて前記第1のクロック信号の出力を停止する第1のデバイスと、前記第1のデバイスから出力された前記データに応じて制御される第2のデバイスと通信することのできるブリッジデバイスにおいて、
    前記第1のデバイスから入力される前記第1のクロック信号に応じて前記第1のデバイスから出力されたデータを取得する取得手段と、
    前記取得手段により取得されたデータを記憶する記憶手段と、
    前記記憶手段に記憶されたデータを読み出して、前記第2のデバイスに対して出力する出力手段と、を有し、
    前記出力手段は、前記第1のデバイスから入力される前記第1のクロック信号と異なる第2のクロック信号が入力され、前記第2のクロック信号に応じて前記データを出力することを特徴とするブリッジデバイス。
  2. 前記出力手段は、前記第2のデバイスへのデータを出力している間、前記第1のデバイスから入力される前記第1のクロック信号と異なる前記第2のクロック信号を前記第2のデバイスに対して出力することを特徴とする請求項1に記載のブリッジデバイス。
  3. 前記出力手段は、前記第2のデバイスへのデータの出力が完了したことに応じて、前記第2のデバイスに対する前記第2のクロック信号の出力を停止することを特徴とする請求項2に記載のブリッジデバイス。
  4. 前記出力手段に供給される前記第2のクロック信号は、前記第1のデバイスから前記取得手段に供給される前記第1のクロック信号と異なるクロック供給手段により供給されるクロック信号であることを特徴とする請求項1乃至3のいずれか一項に記載のブリッジデバイス。
  5. 前記記憶手段は、前記第1のデバイスから入力される前記第1のクロック信号が立ち上がるタイミングで、前記第1のデバイスから入力されるデータを記憶することを特徴とする請求項1乃至4のいずれか一項に記載のブリッジデバイス。
  6. 前記出力手段に入力される前記第2のクロック信号は、前記第1のデバイスから入力される前記第1のクロック信号よりも周波数の高いクロック信号であること特徴とする請求項1乃至5のいずれか一項に記載のブリッジデバイス。
  7. 前記第2のデバイスはメモリデバイスであり、
    前記取得手段は、前記第2のデバイスに書き込まれるデータを前記第1のデバイスから取得し、
    前記出力手段は、前記第2のデバイスに書き込まれる前記データを出力することを特徴とする請求項1乃至6のいずれか一項に記載のブリッジデバイス。
  8. 前記第2のデバイスからデータを読み出す読出手段をさらに有し、
    前記読出手段により読み出されたデータを前記第1のデバイスに入力する入力手段と、を有することができることを特徴とする請求項7に記載の情報処理装置。
  9. 前記ブリッジデバイスは複数の前記第2のデバイスを接続することができ、
    前記出力手段は、前記第2のデバイスのそれぞれに前記第2のクロック信号を供給することを特徴とする請求項1乃至8のいずれか一項に記載のブリッジデバイス。
  10. 前記出力手段から前記第2のデバイスへの前記第2のクロック信号の供給を制御する制御手段をさらに有することを特徴とする請求項1乃至9のいずれか一項に記載のブリッジデバイス。
  11. 前記制御手段は、前記第1のデバイスから入力されたアドレスに基づいて、前記第2のデバイスへのクロック信号の供給を制御することを特徴とする請求項10に記載の情報処理装置。
  12. 前記制御手段は、前記第1のデバイスから入力された前記アドレスで指定されない前記第2のデバイスに対して、前記第2のクロック信号の供給を停止することを特徴とする請求項11に記載のブリッジデバイス。
  13. 前記第2のクロック信号は、前記第2のデバイスが前記出力手段から出力されたデータを受信するのに用いられるクロック信号であることを特徴とする請求項1乃至12のいずれか一項に記載のブリッジデバイス。
  14. 前記記憶手段は、前記第1のデバイスから入力されたアドレスを格納することを特徴とする請求項1乃至13のいずれか一項に記載のブリッジデバイス。
  15. 前記記憶手段は、前記第1のデバイスから入力されたオペコードを格納することを特徴とする請求項1乃至14のいずれか一項に記載のブリッジデバイス。
  16. 請求項1乃至15のいずれか一項を有する情報処理装置。
  17. 第1のクロック信号とデータを出力し、データの入出力が完了したことに応じて前記クロック信号の出力を停止する第1のデバイスと、前記第1のデバイスから出力された前記データに応じて制御される第2のデバイスと通信することのできるブリッジデバイスの制御方法であって、
    前記第1のデバイスから入力される前記第1のクロック信号に応じて前記第1のデバイスから出力されたデータを取得する取得工程と、
    前記取得工程において取得されたデータを記憶する記憶工程と、
    前記記憶工程において記憶されたデータを読み出して、前記第2のデバイスに対して出力する出力工程と、を有し、
    前記出力工程は、前記第1のデバイスから入力される前記第1のクロック信号と異なる第2のクロック信号に応じて前記データを出力することを特徴とするブリッジデバイスの制御方法。
JP2018163191A 2018-08-31 2018-08-31 ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置 Pending JP2020035336A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018163191A JP2020035336A (ja) 2018-08-31 2018-08-31 ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置
EP19189414.6A EP3617895A1 (en) 2018-08-31 2019-07-31 Bridge device, control method for bridge device, and information processing apparatus including bridge device
US16/541,048 US20200073842A1 (en) 2018-08-31 2019-08-14 Bridge device, control method for bridge device, and information processing apparatus including bridge device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018163191A JP2020035336A (ja) 2018-08-31 2018-08-31 ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置

Publications (1)

Publication Number Publication Date
JP2020035336A true JP2020035336A (ja) 2020-03-05

Family

ID=67514415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018163191A Pending JP2020035336A (ja) 2018-08-31 2018-08-31 ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置

Country Status (3)

Country Link
US (1) US20200073842A1 (ja)
EP (1) EP3617895A1 (ja)
JP (1) JP2020035336A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356627B2 (en) * 2003-07-10 2008-04-08 Nokia Corporation Device identification
US6927604B2 (en) * 2003-08-21 2005-08-09 International Business Machines Corporation Clock signal selector circuit with reduced probability of erroneous output due to metastability
EP1772795A1 (en) * 2005-10-10 2007-04-11 STMicroelectronics (Research & Development) Limited Fast buffer pointer across clock
JP5871309B2 (ja) 2011-11-11 2016-03-01 Necプラットフォームズ株式会社 双方向シリアルバスの通信制御方法および双方向シリアルバススイッチ
US10083137B2 (en) * 2015-04-02 2018-09-25 Atmel Corporation Peripheral interface circuit for serial memory

Also Published As

Publication number Publication date
US20200073842A1 (en) 2020-03-05
EP3617895A1 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
CN109634883B (zh) 主从式系统、指令执行方法与数据存取方法
US20130007367A1 (en) Information processing apparatus and method of controlling same
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
JP6843508B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP2020035336A (ja) ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置
JP2020035337A (ja) ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置
JP4446968B2 (ja) データ処理装置
JP2012006389A (ja) 画像形成装置および書込制御方法
JP5011780B2 (ja) 情報処理装置、及びその起動方法
JP2002183675A (ja) データ記録媒体の制御装置とその方法、データ記録装置および制御装置
JP2004220575A (ja) カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
JPH11232213A (ja) 入出力装置におけるデータ転送方式
CN107678681B (zh) 信息处理系统、信息处理系统中的方法以及存储介质
US9197782B2 (en) Image processing device and image processing method
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
US20200076645A1 (en) Bridge device and information processing apparatus including bridge device
US10768846B2 (en) Information processing apparatus and control method of information processing apparatus
JP2006331221A (ja) データ転送装置及びデータ転送方法
JPH11203059A (ja) 画像入出力処理装置および画像入出力処理装置のメモリアクセス方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP6213029B2 (ja) 通信装置、及び通信システム
JP3272890B2 (ja) メモリアクセス制御回路及び出力装置
JP2712414B2 (ja) 画像記憶回路
JP2001282705A (ja) データ転送装置と画像処理装置及び画像形成装置
CN116610601A (zh) 一种数据传输装置及其控制方法、装置、介质