JP6398309B2 - 情報処理装置、および情報処理方法 - Google Patents

情報処理装置、および情報処理方法 Download PDF

Info

Publication number
JP6398309B2
JP6398309B2 JP2014101447A JP2014101447A JP6398309B2 JP 6398309 B2 JP6398309 B2 JP 6398309B2 JP 2014101447 A JP2014101447 A JP 2014101447A JP 2014101447 A JP2014101447 A JP 2014101447A JP 6398309 B2 JP6398309 B2 JP 6398309B2
Authority
JP
Japan
Prior art keywords
command
read
write
bus
data
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.)
Active
Application number
JP2014101447A
Other languages
English (en)
Other versions
JP2015127935A (ja
Inventor
神田 好道
好道 神田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014101447A priority Critical patent/JP6398309B2/ja
Priority to US14/476,799 priority patent/US20150149680A1/en
Publication of JP2015127935A publication Critical patent/JP2015127935A/ja
Application granted granted Critical
Publication of JP6398309B2 publication Critical patent/JP6398309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Description

本発明は、情報処理装置、および情報処理方法に関する。
従来、情報処理装置の電子回路において、装置、または電子部品同士をつなぐインタフェース(Interface)回路、いわゆるバス(Bus)が用いられている。
送信側、および受信側の伝送路の遊休期間を削減して、バスのスループット(Throughput)を向上させる方法が知られている(例えば、特許文献1参照)。
しかしながら、特許文献1の方法では、バスのスループットが低下する虞があった。
本発明の1つの側面は、書込用と、読込用と、のコマンド入力部が別々のバスと、書込用と、読込用と、のコマンド入力部が共通のバスと、が接続されている場合、バスのスループットを向上できる情報処理装置を提供することを目的とする。
一態様における、アドレスを指定して読み出し及び書き込みを行う第1記憶装置が接続される第一のバスと、第二のバスと、を少なくとも有する情報処理装置であって、前記第一のバスに書込命令、または読出命令を行う書込読出命令手段と、前記第二のバスから書込命令を受ける書込命令手段と、前記第二のバスから読出命令を受ける読出命令手段と、前記書込命令手段、または前記読出命令手段の命令に基づいて前記書込読出命令手段に命令を行う命令手段と、を有し、前記命令手段は、前記第一のバスと、前記第二のバスとを接続し、前記命令手段は、前記読出命令を第2記憶装置に記憶させて待機させる待機処理を行い、前記読出命令を前記第2記憶装置で待機させている間は、前記読出命令より前記書込命令を優先させるように前記書込読出命令手段に行う命令の順序を並び替える並び替え処理を行うことを特徴とする。
バスのスループットを向上できる。
本発明の一実施形態に係る情報処理装置を使用した画像形成装置の一例を示す概略図である。 本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 本発明の一実施形態における情報処理装置の一例を説明する機能ブロック図である。 本発明の一実施形態における制御ASICの構成の一例を説明するブロック図である。 本発明の一実施形態におけるインタフェース変換回路の構成の一例を説明するブロック図である。 本発明の一実施形態に係るコマンドI/Fの一例を説明する図である。 本発明の一実施形態に係るPCIeIPコアの構成の一例を説明するブロック図である。 本発明の一実施形態に係るPCIeIPコアによる受信の一例について説明するブロック図である。 本発明の一実施形態に係る待機処理の一例について説明するタイミングチャートである。 本発明の一実施形態に係る並び替え処理の一例について説明するタイミングチャートである。 本発明の一実施形態に係る送信、並び替え処理の一例について説明するフローチャートである。 本発明の一実施形態に係る制御ASICのレジスタの一例を説明する図である。
以下、本発明の実施の形態について説明する。
バスは、例えばIC(Integrated Circuit)など情報処理装置が有する装置、または電子部品をつなぐ。バスは、装置、または電子部品間でデータを送受信するための経路である。ICは、例えばASIC(Application Specific Integrated Circuit)、またはCPU(Central Processing Unit)などである。
バスは、例えばいわゆる内部バス、またはいわゆる拡張バスなどである。バスは、例えばPCI(Peripheral Component Interconnect)、PCIe(PCI Express)などである。バスは、AXI(Advanced eXtensible Interface)、ISA(Industry Standard Architecture)、AGP(Accelerated Graphics Port)などである。
実施形態は、例えば第一のバスと、第二のバスと、を有する情報処理装置である。
第一のバスは、書込を行うための処理を行わせる命令、および読出を行うための処理を行わせる命令の、書込用の命令入力部と、読出用の命令入力部が共通しているバスである。第一のバスは、例えばPCIeバスである。以下、第一のバスがPCIeバスの場合を例に説明する。
第二のバスは、書込を行うための処理を行わせる命令、および読出を行うための処理を行わせる命令の、書込用の命令入力部と、読出用の命令入力部が別個に独立しているバスである。第二のバスは、例えばAXIバスである。以下、第二のバスがAXIバスの場合を例に説明する。
<全体概要>
図1は、本発明の一実施形態に係る情報処理装置を使用した画像形成装置の一例を示す概略図である。
画像形成装置1は、画像処理装置10と、HD(Hard Disk)11と、情報処理装置100と、を有する。
画像処理装置10と、情報処理装置100と、は外部バス4で接続されている。
HD11は、補助記憶装置である。HD11は、後述する情報処理装置100に制御されて、データを記憶する。記憶されるデータは、例えば、後述する画像データなどである。
情報処理装置100は、例えば電子回路基板である。情報処理装置100は、画像形成装置1の制御を行う。情報処理装置100は、例えば後述する画像処理装置10に画像形成を行うための処理を行わせる。情報処理装置100は、例えば後述する画像処理装置10に画像を読み取るための処理を行わせる。なお、HD11は、フラッシュSSD(Solid State Drive)でもよい。なお、HDは、例えばネットワーク3、または外部バス(図示せず)を介して外部に接続されていてもよい。
また、情報処理装置100は、LAN(Local Area Network)、またはインターネットなどのネットワーク3に接続している。情報処理装置100は、ネットワーク3を介してオペレータから画像形成装置1に対する命令であるコマンド入力、または画像データの入力などを受け付ける。
画像処理装置10は、例えばスキャナ10H1などの画像入力装置を有する。スキャナ10H1は、紙などの記録媒体に記載されている画像を読み取り、画像データを生成する。生成された画像データは、外部バス4を介して後述する情報処理装置100の有する記憶部に記憶される。
画像処理装置10は、例えば印刷装置10H2などの画像出力装置を有する。印刷装置10H2は、情報処理装置100が記憶している画像データに基づいて記録媒体に画像形成を行う。情報処理装置100に記憶している画像データは、後述する情報処理装置100の有する記憶部から外部バス4を介して印刷装置10H2へ読み出される。印刷装置10H2は、読み出された画像データに基づいて画像形成を行う。
<情報処理装置のハードウェア構成>
図2は、本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
情報処理装置100は、制御ASIC100H1と、メモリ100H2と、ネットワークI/F(Interface)100H3と、CPU100H4と、メモリ100H5と、を有する。
制御ASIC100H1は、各装置、およびバスの制御を行う装置である。制御ASIC100H1の詳細は後述する。
メモリ100H2は、主記憶装置である。メモリ100H2は、制御ASIC100H1が演算に用いるデータなどの情報を記憶する記憶装置であり、いわゆるメモリ(Memory)である。メモリ100H2は、例えばDDR−SDRAM(Double−Data−Rate Synchronous Dynamic Access Memory)、またはSRAM(Static Random Access Memory)などである。なお、メモリ100H2は、タイミング調整を行う、いわゆるアービトレーション(Arbitration)回路、ビット(Bit)幅を変換するラッパー(Wrapper)回路、または制御回路などの周辺回路を有してもよい。
ネットワークI/F100H3は、情報処理装置100を有線または無線でLANなどのネットワークに接続するためのインタフェースである。ネットワークI/F100H8は、IEEEなどの規格に準じたコネクタ形状、および接続ピンなどの物理的な接続端子を有する。また、ネットワークI/F100H8は、情報処理装置100と回線を物理的に接続させるケーブルと、接続端子を介して入力された信号を処理する処理回路(図示せず)、およびドライバ(図示せず)と、を有する。情報処理装置100は、ネットワークI/F100H3によってネットワーク3を介して他のネットワーク、またはインターネットに接続し、他の外部装置(図示せず)とデータ、またはコマンドなどを入出力する。
CPU100H4は、いわゆる演算装置、および制御装置である。情報処理装置100が行う各処理のための演算、制御を行う。
CPU100H4は、例えば図1のスキャナ10H1が生成した画像データをメモリ100H2に記憶するために、制御ASIC100H1、および外部バス4の制御を行う。
CPU100H4は、例えば図1の印刷装置10H2がメモリ100H2に記憶されている画像データを読み出して画像形成を行うために、制御ASIC100H1、および外部バス4の制御を行う。
CPU100H4は、例えばネットワークI/F100H3から入力されるコマンド、および画像データに基づいて図1の印刷装置10H2が画像形成を行うために制御ASIC100H1、およびネットワークI/F100H3の制御を行う。また、CPU100H4は、ネットワークI/F100H3から入力された画像データを後述するCPU100H5に記憶させる。
メモリ100H5は、メモリ100H2と同様の主記憶装置である。メモリ100H5は、CPU100H4が演算に用いるデータなどの情報を記憶する。なお、メモリ100H5は、タイミング調整を行う、いわゆるアービトレーション回路、ビット幅を変換するラッパー回路、制御回路などの周辺回路を有してもよい。
なお、制御ASIC100H1は、ASICに限られない。例えば、制御ASIC100H1は、PLD(Programmable Logic Device)、またはSiP(System in a Package)でもよい。PLDは、例えばFPGA(Field−Programmable Gate Array)、またはCPLD(Complex Programmable Logic Device)である。制御ASIC100H1は、DSP(Digital Signal Processor)を用いてもよい。また、制御ASIC100H1は、複数のIC、または複数の電子回路を組み合わせて実現されてもよい。さらに、制御ASIC100H1は、複数のIC、または複数のコア(core)から構成されてもよい。
<情報処理装置の機能構成>
図3は、本発明の一実施形態における情報処理装置の一例を説明する機能ブロック図である。
情報処理装置100は、入力部100F1と、制御部100F2と、画像処理部100F3と、記憶部100F4と、を有する。
入力部100F1は、情報処理装置100にデータを入力するための処理を行う。例えば入力部100F1は、ネットワークI/F100H3によってネットワーク3を介して画像データを取得する処理、または図1のスキャナ10H1によって入力された画像データを取得する処理などを行う。なお、入力部100F1は、入力されたデータを後段の処理で読み込み可能な形式、または高速に処理できる形式にデータを変換、または加工する処理などを行ってもよい。例えばA/D変換、YCC2RGB変換などの処理である。また、入力部100F1は、ネットワークを介して受信するためにヘッダデータなどを削除する処理、復号化、解凍処理、またはデコード処理などを行ってもよい。
制御部100F2は、制御ASIC100H1、またはCPU100H4などによって、情報処理装置100の有する各装置、または情報処理装置100に接続された外部装置(図示せず)などの制御を行う。例えば制御部100F2は、図1のスキャナ10H1が画像データを読み取った際、CPU100H4に外部バス4の制御を行わせる。さらに、CPU100H4に外部バス4の制御を行わせた際、制御部100F2は、制御ASIC100H1にメモリ100H2の制御を行わせて画像データをメモリ100H2に記憶させるための処理を実現する。
画像処理部100F3は、CPU100H4、または各装置の制御装置(図示せず)によって、画像処理装置10に画像形成、または画像の読み取りなどを行わせるための処理を行わせる。
記憶部100F4は、HD11、メモリ100H2、またはメモリ100H4に画像データ、または各データ、パラメータ、各処理の中間処理結果のデータなど情報を記憶させる。
<制御ASIC>
図4は、本発明の一実施形態における制御ASICの構成の一例を説明するブロック図である。
制御ASIC100H1は、DMA(Direct Memory Access)制御回路100H11と、DMA制御回路100H12と、DMA制御回路100H13と、DMA制御回路100H14とを有する。制御ASIC100H1は、インタフェース変換回路100H15と、PCIeIPコア100H16と、を有する。制御ASIC100H1の各要素は、AXIバス100H17によって接続されている。
DMA制御回路100H11乃至DMA100H14は、各メモリとデータなどの入出力をCPU100H4によらずに行う、いわゆるDMAを実現するための処理を行う回路である。
インタフェース変換回路100H15は、AXIバス100H17と、PCIeバス2と、で扱われる書込、および読出の命令を変換する処理を行う。また、インタフェース変換回路100H15は、後述する待機処理、および並び替え処理を行う。インタフェース変換回路100H15による処理の詳細は、後述する。
PCIeIPコア100H16は、PCIeバス2において書込、および読出の命令を行う。PCIeIPコア100H16の詳細は、後述する。
描画アクセラレータ回路100H18は、例えば図1の印刷装置10H2が記録媒体へ描画するために用いる描画用のデータを生成し、生成した図1の描画用のデータを印刷装置10H2へ送信する。描画アクセラレータ回路100H18が描画用のデータを生成できない場合、CPU100H4は、描画アクセラレータ回路100H18の代わりに描画用のデータを生成し、生成した図1の描画用のデータを印刷装置10H2へ送信する。
<インタフェース変換回路>
図5は、本発明の一実施形態におけるインタフェース変換回路の構成の一例を説明するブロック図である。
命令手段は、例えばインタフェース変換回路である。以下、インタフェース変換回路を例に説明する。
インタフェース変換回路100H15は、コマンド変換回路100H151を有する。インタフェース変換回路100H15は、ライトデータI/F100H155と、リードデータI/F100H156と、ライトデータI/F100H157と、リードデータI/F100H158と、を有する。
コマンド変換回路100H151は、ライトコマンドI/F100H152と、リードコマンドI/F100H153と、コマンドI/F100H154と、を有する。
PCIeバス2のコマンドは、書込用の命令であるライトコマンドと、読出用の命令であるリードコマンドと、でI/Fを共通して使用する。
AXIバス100H17のコマンドは、ライトコマンドと、リードコマンドと、でI/Fを別個に用意されており、別個のI/Fを使用する。
コマンド変換回路100H151は、PCIeバス2のコマンドと、AXIバス100H17のコマンドと、を対応させるための変換を行う回路である。
書込命令手段は、例えばライトコマンドI/F100H152であり、読出命令手段は、例えばリードコマンドI/F100H153である。以下、ライトコマンドI/F100H152と、リードコマンドI/F100H153と、を例に説明する。
書込読出手段は、例えばコマンドI/F100H154である。以下、コマンドI/F100H154を例に説明する。
ライトコマンドI/F100H152、およびリードコマンドI/F100H153は、AXIバス100H17用のコマンドI/Fである。
コマンドI/F100H154は、PCIeバス2用のコマンドI/Fである。
ライトデータI/F100H155、およびリードデータI/F100H156は、AXIバス100H17用のデータI/Fである。ライトデータI/F100H155には、ライトコマンドI/F100H152で入力するコマンドに対応して書込されるデータを入力する。リードデータI/F100H156には、リードコマンドI/F100H153で入力するコマンドに対応して読出されたデータが出力される。
ライトデータI/F100H155、およびリードデータI/F100H156は、PCIeバス2用のデータI/Fである。
図6は、本発明の一実施形態に係るコマンドI/Fの一例を説明する図である。
図6(a)は、コマンドI/Fの有する信号の一例である。
コマンドI/F100H154は、コマンド変換回路100H151から出力され、PCIeIPコア100H16に入力される信号を有する。コマンドI/F100H154は、PCIeIPコア100H16から出力され、コマンド変換回路100H151に入力される信号を有する。
コマンド変換回路100H151が出力する信号は、PCIeIPコア100H16に入力される。PCIeIPコア100H16に入力される信号は、例えばコマンド要求信号100H1541と、アドレス信号100H1542と、転送データ量信号100H1543と、リードライト識別信号100H1544と、である。
図6(b)は、コマンド変換回路100H151から出力され、PCIeIPコア100H16に入力される信号の一例である。
CLKS1は、回路を動作させるためのクロック信号である。
COM_ENS2は、コマンド要求信号100H1541に対応する信号の例である。例えばコマンド要求信号100H1541によって書込、または読出の命令を要求する場合、COM_ENS2は、タイミングT1のようにHighの信号がアサート(assert)される。
ADRS3は、アドレス信号100H1542に対応する信号の例である。ADRS3によって示されたアドレスからデータの書込、または読出が行われる。
DATA_NUMS4は、転送データ量信号100H1543に対応する信号の例である。DATA_NUMS4によって示されたデータ量の書込、または読出が行われる。
RWS5は、リードライト識別信号100H1544に対応する信号の例である。例えば、RWS5がHighの場合、PCIeIPコア100H16は書込の処理を行い、RWS5がLowの場合、PCIeIPコア100H16は読出の処理を行う。
例えばADR1のアドレスからNUM1のデータ量を書込の処理を行う場合、タイミングT1のように、COM_ENS2にHighがアサートされた際に、ADRS3にADR1、DATA_NUMS4にNUM1、およびRWS5にHighを入力する。さらに、図5のライトデータI/F100H155に書込させるデータを入力する。
例えばADR2のアドレスからNUM2のデータ量を読出の処理を行う場合、タイミングT2のように、COM_ENS2にHighがアサートされた際に、ADRS3にADR2、DATA_NUMS4にNUM2、およびRWS5にLowを入力する。所定のレイテンシ(latency)の後、図5のリードデータI/F100H156から読出させたデータが出力される。
PCIeIPコア100H16から出力され、コマンド変換回路100H151に入力される信号は、例えばコマンド受付信号100H1545である。
コマンド受付信号100H1545は、PCIeIPコア100H16がコマンドを受付している際、Highとなる信号がアサートされる信号である。
なお、I/Fは、図示したコマンド、信号、およびタイミングに限定されない。I/Fは、図示しないコマンド、または信号を用いた構成で実現されてもよい。また、タイミングは、図示した場合に限られない。例えば、各信号の入力は、すべて揃えられたタイミングで入力される方法に限られない。例えば、内部でバッファ(図示せず)を持ち、タイミングを調整してもよい。
<PCIeIPコア>
図7は、本発明の一実施形態に係るPCIeIPコアの構成の一例を説明するブロック図である。
書込読出命令手段は、例えばPCIeIPコア100H16である。以下、PCIeIPコア100H16を例に説明する。
PCIeIPコア100H16は、送信処理回路100H161と、受信処理回路100H162と、を有する。
PCIeIPコア100H16の送信処理回路100H161は、送信用の信号線TxによってCPU100H4と接続している。PCIeIPコア100H16の受信処理回路100H162は、受信用の信号線RxによってCPU100H4と接続している。
送信処理回路100H161は、インタフェース変換回路100H15から送信されたライトコマンド、リードコマンド、ライトデータを送信する。送信処理回路100H161は、インタフェース変換回路100H15から送信された順序、およびタイミングで命令、およびデータを送信する。なお、送信処理回路100H161の送信は、インタフェース変換回路100H15から送信されたタイミングからレイテンシがあってもよい。
送信処理回路100H161は、図6(b)で説明したコマンドI/F100H154を生成し、PCIeIPコア100H16に送信用の信号線Txによって送信する。
受信処理回路100H162は、図6(b)で説明した読出の処理を行う場合、CPU100H4が読出を行ったデータを受信用の信号線Rxによって受信する。
受信処理回路100H162は、RDバッファ100H1621と、RDバッファ100H1622と、RDバッファ100H1623と、RDバッファ100H1624と、を有する。
RDバッファ100H1621乃至RDバッファ100H1624は、受信用の信号線Rxによって受信したデータを格納する。RDバッファ100H1621乃至RDバッファ100H1624の大きさ、または個数は、送信処理回路100H161によって実行できるリードコマンドを制約する場合がある。
図8は、本発明の一実施形態に係るPCIeIPコアによる受信の一例について説明するブロック図である。
図7に示したように、受信処理回路100H162がRDバッファを4個持つ場合を例に説明する。
例えば送信処理回路100H161がリードコマンドRC1乃至RC4のリードコマンドをCPU100H4に送信した場合、CPU100H4は、リードコマンドRC1乃至リードコマンドRC4に対応したリードデータを出力する。リードデータは、リードデータRD1乃至RD4である。リードデータRD1は、リードコマンドRC1に対応したデータである。リードデータRD2乃至RD4は、リードデータRD1と同様に、リードコマンドRC2乃至RC4にそれぞれ対応する。
リードデータRD1乃至RD4は、リードコマンドRC1乃至RC4の送信から所定のレイテンシがあって、受信される。レイテンシは、CPUの処理時間、メモリのアドレス値計算時間、およびメモリのリード実行信号アサートからデータ出力までの時間などによって算出され、予め求められている時間である。PCIeIPコア100H16は、レイテンシがあるため、リードコマンドRC1の送信した後からリードデータRD1が受信される前に次のリードコマンドRC2を送信することで、読出の処理の効率を向上できる。したがって、複数のリードコマンドに対する処理を並行して行うためにRDバッファを複数用意する。複数のRDバッファを用意することで、PCIeIPコア100H16は、複数のリードコマンドを並行して処理することができる。
例えばRDバッファは、1回のリードコマンドRCで出力される最大のデータ量を格納できる記憶領域を有する。この場合、1回のリードコマンドRCに対して1個のRDバッファの記憶領域で対応できるため、1回のリードコマンドRCに対して1個のRDバッファが対応する。したがって、PCIeIPコア100H16は、リードデータRDが格納されていないRDバッファの数のリードコマンドRCを送信することができる。
インタフェース変換回路100H15は、PCIeIPコア100H16へ送信したコマンドの種類、および図6のコマンド受付信号100H1545によって、PCIeIPコア100H16の状態を把握する。すなわち、インタフェース変換回路100H15は、リードデータRDが格納されているRDバッファの数である使用RDバッファ数を把握することができる。また、インタフェース変換回路100H15は、送信したリードコマンドRCの数から格納が予定されているRDバッファの数である使用予定RDバッファ数を把握することができる。使用RDバッファ数、および使用予定RDバッファ数に把握することによって、RDバッファに格納できないデータが出力されるのを減少させ、データが失われるのを少なくすることができる。
使用RDバッファ数と、使用予定RDバッファ数と、の和がRDバッファに達した場合、インタフェース変換回路100H15は、例えば、次のリードコマンドRCの送信を使用RDバッファ数が減少するまで待機させる。
以下、RDバッファ数が4個、かつ、AXIバス100H17からリードコマンドI/F100H153にリードコマンドRCが6回連続して入力された場合を例にして説明する。また、リードコマンドI/F100H153に入力されたリードコマンドRCをPCIeIPコア100H16が送信用の信号線Txによって送信するまでのレイテンシを2クロックの場合を例に説明する。さらに、送信用の信号線Txによってリードコマンドが送信されてから受信処理回路100H162がリードデータRDを受信するまでのレイテンシを2クロックの場合を例に説明する。
<待機処理>
図9は、本発明の一実施形態に係る待機処理の一例について説明するタイミングチャートである。
リードコマンドI/FS91は、AXIバス100H17から入力されるコマンドを示す信号である。リードコマンドI/FS91は、図5のリードコマンドI/F100H153に相当する。リードコマンドI/FS91は、AXIバス100H17からリードコマンドRC1乃至RC6が入力された場合である。
TxS92は、リードコマンドI/FS91に入力されたリードコマンドRCに基づいてPCIeIPコア100H16が送信用の信号線TxによってCPU100H4へ送信する信号である。図7の送信用の信号線Txに相当する。
リードコマンドI/FS91の入力に対してレイテンシが2クロックあるため、例えばタイミングT901でリードコマンドI/FS91で入力されたリードコマンドRC1に対応するTxS92の信号は、タイミングT903で送信される。
RxS93は、TxS92で送信されたリードコマンドに対応して図7のCPU100H4が受信処理回路100H162に送信するリードデータRDの信号である。RxS93は、図7の受信用の信号線Rxに相当する。TxS92の送信に対してレイテンシが2クロックあるため、例えばタイミングT903で送信されたリードコマンドRC1に対応するRxS93の信号は、タイミングT905で受信処理回路100H162が受信する。
CNTS94は、使用RDバッファ数と、使用予定RDバッファ数と、の和を示すデータの信号である。例えばRxS94は、タイミングT903の場合、使用RDバッファ数を0、およびTxS92でリードコマンドRC1が送信されたため使用予定RDバッファ数を1とカウントから「1」と示される。
CNTS94は、使用が終了したRDバッファ数が発生した場合、値を減少させる。例えばタイミングT905で受信されたRD1が2クロックで使用が終了した場合、受信処理回路100H162は、タイミングT908ではRD1が使用していたRDバッファが使用できる。したがって、RxS94は、使用RDバッファ数を3、および使用予定RDバッファ数0とカウントし、「3」を示す。
インタフェース変換回路100H15は、RxS94がRDバッファ数の「4」に達した場合、次に送信するリードコマンドRC5の送信を、使用RDバッファ数が減少するまで待機させる。例えばインタフェース変換回路100H15は、送信するリードコマンドRCをストックできるFIFO(First−In First−Out)バッファ(図示せず)を有し、リードコマンドRC5の送信を待機させる。
インタフェース変換回路100H15は、使用RDバッファ数が減少したとタイミングT908で判断する。インタフェース変換回路100H15は、リードコマンドRC5の送信をT909まで待機させる待機処理によって、リードデータRD5の受信で上書きされ、RDバッファに格納されていたデータが失われるのを少なくすることができる。
<並び替え処理>
図10は、本発明の一実施形態に係る並び替え処理の一例について説明するタイミングチャートである。
並び替え処理は、図5のインタフェース変換回路100H15が図5のライトコマンドI/F100H152、リードコマンドI/F、およびライトデータI/F100H155で受信した命令、またはデータを並び替える処理である。並び替え処理された命令、またはデータは、図5のコマンドI/F100H154によって図5のPCIeIPコア100H16に送信される。図5のPCIeIPコアは、図5のコマンドI/F100H154で送信されたタイミング、および順序で命令、およびデータを送信する。
リードコマンドI/FS101は、図9のリードコマンドI/FS91と同様のAXIバス100H17から入力されるコマンドを示す信号である。リードコマンドI/FS101は、図5のリードコマンドI/F100H153に相当する。図10は、図9と同様にリードコマンドI/FS101へAXIバス100H17からリードコマンドRC1乃至RC6が入力された場合である。
ライトコマンドI/FS102は、リードコマンドI/FS101と同様のAXIバス100H17から入力されるコマンドを示す信号である。ライトコマンドI/FS102は、図5のライトコマンドI/F100H152に相当する。図10は、タイミングT1003でライトコマンドI/FS102へAXIバス100H17からライトコマンドWRが入力された場合である。
ライトデータI/FS103は、ライトコマンドI/FS102と同様のAXIバス100H17から入力される書込データを示す信号である。ライトデータI/FS103は、図5のライトデータI/F100H155に相当する。図10は、タイミングT1003でライトコマンドI/FS102へAXIバス100H17からライトコマンドI/FS102へ入力されたライトコマンドWRに対応する書込データWRDATAが入力された場合である。
図5のインタフェース変換回路100H15は、リードコマンドI/FS101、およびライトコマンドI/FS102に入力された命令と、ライトデータI/FS103に入力されたデータと、を並び替え処理して図5のPCIeIPコア100H16に送信する。
TxS104は、リードコマンドI/FS101、ライトコマンドI/FS102、およびにライトデータI/FS103に入力されたリードコマンドRC、ライトコマンドWR、およびに書込データWRDATA基づいて生成される信号である。TxS104は、PCIeIPコア100H16が送信用の信号線TxによってCPU100H4へ送信する信号である。図9と同様に、リードコマンドI/FS101の入力に対してレイテンシが2クロックある。レイテンシは、例えばタイミングT1001でリードコマンドI/FS101で入力されたリードコマンドRC1に対応するTxS104の信号は、タイミングT1003で送信されることである。
TxS104は、リードコマンドRCをライトコマンドWRに対して優先して送信する設定の例である。ライトコマンドWRは、未送信のリードコマンドRCがある場合、未送信のリードコマンドRCの送信が終了するまで送信が待機させられる。
RxS105は、TxS104で送信されたリードコマンドRCに対応してCPU100H4が受信処理回路100H162に送信するリードデータRDの信号である。TxS104の送信に対してレイテンシが2クロックあるため、例えばタイミングT1003で送信されたリードコマンドRC1に対応するRxS105の信号は、タイミングT1005で受信処理回路100H162が受信する。
CNTS106は、図9のCNTS94と同様に使用RDバッファ数と、使用予定RDバッファ数と、の和を示すデータの信号である。
図5のインタフェース変換回路100H15は、図9で説明した待機処理を行うため、リードコマンドRC5の送信をタイミングT1009まで待機させる。
図9で説明した待機処理が行われた場合、図5のインタフェース変換回路100H15は、リードコマンドRC5の送信と、ライトコマンドWRの送信と、を送信する順序を並び替える処理である並び替え処理を行う。並び替え処理は、ライトコマンドWRを優先する設定でリードコマンドRC5、およびRC6の送信の後に送信が行われるライトコマンドWR、および書込データWRDATAの送信と、リードコマンドRC5、およびRC6の送信と、の順序を変更する処理である。
ライトコマンドWR、および書込データWRDATAの送信は、リードコマンドRCの送信と異なり、送信されたライトコマンドWR、および書込データWRDATAに対して受信するデータがないため、RDバッファを確保する必要がない。したがって、RDバッファを確保せずにライトコマンドWR、および書込データWRDATAの送信を行ってもデータが失われる場合は少ない。
並び替え処理は、待機処理によって使用されていないバスを使用し、バスのスループットを向上させることができる。
図5のインタフェース変換回路100H15は、並び替え処理を行い、並び替え処理した命令、およびデータをPCIeIPコア100H16へ送信する。PCIeIPコア100H16は、タイミングT1007、およびタイミングT1008においてライトコマンドWR、および書込データWRDATAの送信を行う。ライトコマンドWRを優先する設定、および待機処理を行う場合、PCIeIPコア100H16は、タイミングT1007、およびタイミングT1008でライトコマンドWR、および書込データWRDATAを送信できる。具体的には、図10の場合、ライトコマンドWR、および書込データWRDATAの送信がリードコマンドRC5、およびRC6の送信の後に行われる場合に対して、並び替え処理によって2クロック処理時間を短くすることができる。
したがって、並び替え処理によって、制御ASIC100H1は、リードコマンドRC1乃至RC6、ライトコマンドWR、および書込データWRDATAの送信する処理のスループットを向上できる。
図11は、本発明の一実施形態に係る送信、および並び替え処理の一例について説明するフローチャートである。
ステップS1101では、図5のインタフェース変換回路100H15は、リードコマンドRCの入力があったか否かの判断を行う。リードコマンドRCの入力があったと判断する場合(ステップS1101でYES)、ステップS1102に進む。ステップS1101でリードコマンドRCの入力があったと判断する場合は、図10のタイミングT1001乃至T1006の場合が相当する。リードコマンドRCの入力がなかったと判断する場合(ステップS1101でNO)、ステップS1104に進む。ステップS1101でリードコマンドRCの入力がなかったと判断する場合は、図10のタイミングT1001より前の場合が相当する。
ステップS1102では、図5のインタフェース変換回路100H15は、未完了リードコマンドが4個か否かの判断を行う。
ステップS1102で未完了リードコマンドが4個と判断された場合(ステップS1102でYES)、図8のRDバッファ100H1621乃至100H1624は4個いずれもが使用中の場合である。この場合、図5のインタフェース変換回路100H15は、待機処理によってリードコマンドRCの送信は待機であるため、ライトコマンドWRについての処理を行うステップS1104に進む。ステップS1102で未完了リードコマンドが4個と判断される場合は、例えば図10のタイミングT1006の場合が相当する。
ステップS1102で未完了リードコマンドが4個でないと判断された場合(ステップS1102でNO)、図8のRDバッファ100H1621乃至100H1624は、少なくとも4個のうちいずれか1個が使用可能な場合である。この場合、PCIeIPコア100H16は、リードコマンドRCの送信し、リードデータRDを受信してもデータが失われることは少ないため、リードコマンドRCの送信を行うステップS1103に進む。ステップS1102で未完了リードコマンドが4個でないと判断される場合は、例えば図10のタイミングT1001乃至T1005の場合が相当する。
並び替え処理は、例えばステップS1102の処理によって、実現できる。
ステップS1103では、図5のインタフェース変換回路100H15は、入力されたリードコマンドRCに基づいて図5のPCIeIPコア100H16へリードコマンドRCの送信を行う。PCIeIPコア100H16は、図5のインタフェース変換回路100H15から送信された順序、およびタイミングでTxS104によってリードコマンドRCの送信を行う。ステップS1103は、例えば図10のタイミングT1003がTxS104でリードコマンドRC1を送信した場合が相当する。
ステップS1104では、図5のインタフェース変換回路100H15は、ライトコマンドWRの入力があったか否かの判断を行う。ライトコマンドWRの入力があったと判断する場合(ステップS1104でYES)、ステップS1105に進む。
ステップS1104でライトコマンドWRの入力があったと判断する場合は、図10のタイミングT1003の場合が相当する。ライトコマンドWRの入力がなかったと判断する場合(ステップS1104でNO)、ステップS1106に進む。ステップS1104でライトコマンドWRの入力がなかったと判断する場合は、ライトコマンドI/FS102にライトコマンドWRの入力がない場合である図10のタイミングT1001の場合などが相当する。
ステップS1105では、図5のインタフェース変換回路100H15は、入力されたライトコマンドWRに基づいて図5のPCIeIPコア100H16へ送信する。図5のPCIeIPコア100H16は、送信用の信号線TxによってライトコマンドWR、および書込データWRDATAの送信を行う。ステップS1105は、例えば図10のTxS104によって、タイミングT1007でライトコマンドWRを送信、およびタイミングT1008で書込データWRDATAを送信した場合が相当する。
ステップS1106では、図5のインタフェース変換回路100H15は、コマンドが受け付けられたか否かの判断を行う。図5のインタフェース変換回路100H15は、図5のPCIeIPコア100H16に送信した命令、またはデータが受信されたか否か、すなわち図5のPCIeIPコア100H16が送信したか否かの判断を行う。
図5のPCIeIPコア100H16によって受信されたか否かは、図5のコマンド受付信号100H1545によって判断される。
図5のインタフェース変換回路100H15は、図5のコマンド受付信号100H1545によって、受付コマンドが受け付けられたと判断した場合(ステップS1106でYES)、処理を終了する。図5のインタフェース変換回路100H15は、図5のコマンド受付信号100H1545によって、コマンドが受け付けられていないと判断した場合(ステップS1106でNO)、ステップS1107に進む。
ステップS1107では、図5のインタフェース変換回路100H15は、コマンド受付待ちの処理を行う。所定の時間、各処理を待機し、受付完了信号でコマンドが受け付けられたか否かの判断を行うステップS1106に戻る。
なお、未完了リードコマンドの数は、例えば図10のCNTS106によって判定されてもよい。
また、送信可能なリードコマンドの数は、制御ASIC100H1の設定によって変更できる。
図12は、本発明の一実施形態に係る制御ASICのレジスタの一例を説明する図である。
制御ASIC100H1は、例えばレジスタ12を有する。記憶手段は、例えばレジスタである。以下、記憶手段をレジスタの例で説明する。レジスタ12は、例えば32ビットのレジスタである。レジスタ12は、送信可能なリードコマンドの数を設定するための数値を入力するために用いられる。送信可能なリードコマンドの数は、レジスタ12の「MAX RC NUMBER」に入力された値に1を加算した値とする。図7で説明したRDバッファが4個の場合、送信可能なリードコマンドの数は、1乃至4である。したがって、「MAX RC NUMBER」は、0乃至3の値が設定できる2ビットのデータ量を用意する。レジスタ12は、例えば32ビットの下位2ビットを「MAX RC NUMBER」に設定した場合である。図5のインタフェース変換回路100H15は、「MAX RC NUMBER」に設定された値に1を加算した値を用いて図11のステップS1102の判断に用いる値を変更することができる。制御ASIC100H1を搭載するシステムによって、リード機能、およびライト機能の性能は、異なる場合がある。例えば、「MAX RC NUMBER」に「2」が設定されていた場合、ステップS1102では、図5のインタフェース変換回路100H15は、未完了リードコマンドが「3個」か否かの判断を行う。ステップS1102で「4個」で判断される場合と比較して、「3個」で判断される場合、図5のインタフェース変換回路100H15は、リードコマンドの送信よりライトコマンドの送信の方を行う場合の頻度を高くできる。したがって、レジスタ12の設定によって、ライトの性能を向上させることができる。
なお、実施形態は、2のバスを有する情報処理装置に限られない。実施形態は、3以上のバスを有する情報処理装置でもよい。
以上、並び替え処理を行うことによって、書込用と、読込用と、のコマンド入力部が別々のバスと、書込用と、読込用と、のコマンド入力部が共通のバスと、が接続されている場合、読出、および書込の処理のスループットを向上させることができる。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
1 画像形成装置
2 PCIeバス
3 ネットワーク
10 画像処理装置
10H1 スキャナ
10H2 印刷装置
11 HDD
12 レジスタ
100H15 インタフェース変換回路
100H151 コマンド変換回路
100H152 ライトコマンドI/F
100H153 リードコマンドI/F
100H154 コマンドI/F
100H155 ライトデータI/F
100H156 リードデータI/F
100H157 ライトデータI/F
100H158 リードデータI/F
100H16 PCIeIPコア
100H161 送信処理回路
100H162 受信処理回路
Tx 送信用の信号線
Rx 受信用の信号線
RC リードコマンド
RD リードデータ
100H17 AXIバス
特開2008−250985号公報

Claims (5)

  1. アドレスを指定して読み出し及び書き込みを行う第1記憶装置が接続される第一のバスと、第二のバスと、を少なくとも有する情報処理装置であって、
    前記第一のバスに書込命令、または読出命令を行う書込読出命令手段と、
    前記第二のバスから書込命令を受ける書込命令手段と、
    前記第二のバスから読出命令を受ける読出命令手段と、
    前記書込命令手段、または前記読出命令手段の命令に基づいて前記書込読出命令手段に命令を行う命令手段と、を有し、
    前記命令手段は、前記第一のバスと、前記第二のバスとを接続し、
    前記命令手段は、
    前記読出命令を第2記憶装置に記憶させて待機させる待機処理を行い、前記読出命令を前記第2記憶装置で待機させている間は、前記読出命令より前記書込命令を優先させるように前記書込読出命令手段に行う命令の順序を並び替える並び替え処理を行う情報処理装置。
  2. 前記命令手段は、未完了の前記読出命令の数に基づいて前記待機処理を行う請求項1に記載の情報処理装置。
  3. 前記書込命令には、前記書込命令によって書込まれるデータを含む請求項1または2に記載の情報処理装置。
  4. 設定に係る値を記憶する記憶手段を有し、
    前記待機処理が、前記記憶手段に設定された値に基づいて行われる請求項1乃至3のいずれかに記載の情報処理装置。
  5. アドレスを指定して読み出し及び書き込みを行う第1記憶装置が接続される第一のバスと、第二のバスと、
    前記第一のバスに書込命令、または読出命令を行う書込読出命令手段と、
    前記第二のバスから書込命令を受ける書込命令手段と、
    前記第二のバスから読出命令を受ける読出命令手段と、
    前記第一のバスと、前記第二のバスとを接続させる命令手段と
    を有する情報処理装置に、
    前記書込命令手段、または前記読出命令手段の命令に基づいて前記書込読出命令手段に命令を行う命令手順を行い、
    前記命令手順は、
    前記読出命令を第2記憶装置に記憶させて待機させる待機処理を行い、前記読出命令を前記第2記憶装置で待機させている間は、前記読出命令より前記書込命令を優先させるように前記書込読出命令手段に行う命令の順序を並び替える並び替え処理を行わせる手順である情報処理方法。
JP2014101447A 2013-11-27 2014-05-15 情報処理装置、および情報処理方法 Active JP6398309B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014101447A JP6398309B2 (ja) 2013-11-27 2014-05-15 情報処理装置、および情報処理方法
US14/476,799 US20150149680A1 (en) 2013-11-27 2014-09-04 Information processing apparatus and information processing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013245291 2013-11-27
JP2013245291 2013-11-27
JP2014101447A JP6398309B2 (ja) 2013-11-27 2014-05-15 情報処理装置、および情報処理方法

Publications (2)

Publication Number Publication Date
JP2015127935A JP2015127935A (ja) 2015-07-09
JP6398309B2 true JP6398309B2 (ja) 2018-10-03

Family

ID=53183659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014101447A Active JP6398309B2 (ja) 2013-11-27 2014-05-15 情報処理装置、および情報処理方法

Country Status (2)

Country Link
US (1) US20150149680A1 (ja)
JP (1) JP6398309B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6819684B2 (ja) 2016-08-31 2021-01-27 株式会社ソシオネクスト バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法
US11099778B2 (en) * 2018-08-08 2021-08-24 Micron Technology, Inc. Controller command scheduling in a memory system to increase command bus utilization
US11604744B2 (en) * 2020-10-16 2023-03-14 Alibaba Group Holding Limited Dual-modal memory interface controller

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553268A (en) * 1991-06-14 1996-09-03 Integrated Device Technology, Inc. Memory operations priority scheme for microprocessors
US5420894A (en) * 1993-12-21 1995-05-30 Ag Communication Systems Corporation Elastic storage circuit
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
US5608892A (en) * 1995-06-09 1997-03-04 Alantec Corporation Active cache for a microprocessor
US5781927A (en) * 1996-01-30 1998-07-14 United Microelectronics Corporation Main memory arbitration with priority scheduling capability including multiple priorty signal connections
KR100304963B1 (ko) * 1998-12-29 2001-09-24 김영환 반도체메모리
US6801985B1 (en) * 1999-09-10 2004-10-05 Texas Instruments Incorporated Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
US6259648B1 (en) * 2000-03-21 2001-07-10 Systran Corporation Methods and apparatus for implementing pseudo dual port memory
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
US6901451B1 (en) * 2000-10-31 2005-05-31 Fujitsu Limited PCI bridge over network
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
US7062577B2 (en) * 2002-12-18 2006-06-13 Lsi Logic Corporation AMBA slave modular bus interfaces
US7701949B1 (en) * 2003-06-24 2010-04-20 Cisco Technology, Inc. System and method for switching high priority traffic with low latency
US8219745B2 (en) * 2004-12-02 2012-07-10 International Business Machines Corporation Memory controller to utilize DRAM write buffers
JP4992296B2 (ja) * 2006-05-30 2012-08-08 株式会社日立製作所 転送処理装置
US8407707B2 (en) * 2009-05-18 2013-03-26 Lsi Corporation Task queuing in a network communications processor architecture
JP2012034254A (ja) * 2010-08-02 2012-02-16 Ricoh Co Ltd データ転送装置、画像形成装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP5736847B2 (ja) * 2011-03-02 2015-06-17 株式会社リコー 画像形成装置およびその制御方法
US9535860B2 (en) * 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric

Also Published As

Publication number Publication date
JP2015127935A (ja) 2015-07-09
US20150149680A1 (en) 2015-05-28

Similar Documents

Publication Publication Date Title
CN106874224B (zh) 自动搬运且适应器件的多线SPI-Flash控制器
CN109478168B (zh) 内存访问技术及计算机系统
WO2011089660A1 (ja) バス調停装置
JP5330513B2 (ja) 調停装置、調停システム、調停方法、半導体集積回路、及び画像処理装置
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
JP2004171209A (ja) 共有メモリデータ転送装置
JPH02227766A (ja) デジタル・コンピユータのデータ転送装置
US20110075943A1 (en) image processing apparatus
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP6398309B2 (ja) 情報処理装置、および情報処理方法
US20220417181A1 (en) Packet arbitration for buffered packets in a network device
US20060236001A1 (en) Direct memory access controller
WO2011065354A1 (ja) バスモニタ回路及びバスモニタ方法
US10996904B2 (en) Network control device, image forming apparatus, control method of network control device, and non-transitory recording medium
US20090119429A1 (en) Semiconductor integrated circuit
JP4215417B2 (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US20080320178A1 (en) DMA transfer apparatus
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
KR100591243B1 (ko) 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법
JP2006285872A (ja) マルチcpuシステム
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
KR101116613B1 (ko) 메모리 액세스 제어 장치 및 방법
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R151 Written notification of patent or utility model registration

Ref document number: 6398309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151