JP2018120490A - メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 - Google Patents

メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 Download PDF

Info

Publication number
JP2018120490A
JP2018120490A JP2017012541A JP2017012541A JP2018120490A JP 2018120490 A JP2018120490 A JP 2018120490A JP 2017012541 A JP2017012541 A JP 2017012541A JP 2017012541 A JP2017012541 A JP 2017012541A JP 2018120490 A JP2018120490 A JP 2018120490A
Authority
JP
Japan
Prior art keywords
memory
bandwidth
threshold
access
masters
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.)
Granted
Application number
JP2017012541A
Other languages
English (en)
Other versions
JP2018120490A5 (ja
JP6886301B2 (ja
Inventor
淳一 合田
Junichi Aida
淳一 合田
新藤 泰士
Hiroshi Shindo
泰士 新藤
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 JP2017012541A priority Critical patent/JP6886301B2/ja
Priority to EP18150139.6A priority patent/EP3355199B1/en
Priority to KR1020180003626A priority patent/KR102372289B1/ko
Priority to US15/876,314 priority patent/US11163711B2/en
Priority to CN201810062812.7A priority patent/CN108363669B/zh
Publication of JP2018120490A publication Critical patent/JP2018120490A/ja
Publication of JP2018120490A5 publication Critical patent/JP2018120490A5/ja
Application granted granted Critical
Publication of JP6886301B2 publication Critical patent/JP6886301B2/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/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Abstract

【課題】メモリで使用されている使用メモリ帯域を監視して、メモリが有する転送性能を最大限使用しつつ、リアルタイム処理部の必要帯域を確保するように制御する仕組みを提供する。
【解決手段】本メモリアクセスシステムは、メモリと複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視し、当該使用メモリ帯域が第1の閾値以上であるか否かを判断する。また、本メモリアクセスシステムは、上記判断結果に基づいて、複数のマスターのうち優先度の低いマスターによるメモリへのアクセスを制限する。
【選択図】 図2

Description

本発明は、メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置に関するものである。
メモリアクセスシステムを備える現行の画像形成装置には、スキャナ機能、プリンタ機能、コピー機能、ネットワーク機能、及びFAX送受信といった様々な機能を兼備えるデジタル複合機がある。デジタル複合機における機能動作は、通常、コントローラと称される画像入出力制御部により制御されている。
このようなコントローラでは、コストダウンのためCPU及び上記機能を実現する複数の機能処理部が1つのチップ内に集約されている。さらに、CPUのワークメモリ及び上記機能を実現する画像データ転送を行うためのメインメモリも集約されてきており、メインメモリへのデータアクセス量が非常に増大してきている。メインメモリへのデータアクセス量を増大させる要因には、スキャン性能及びプリント性能の高速化も挙げられる。特に、スキャンやプリントといった処理は、一度動作を開始すると、少なくとも処理中のページの入出力が完了するまでは停止することができないリアルタイム性が要求される処理である。つまり、コントローラとしては、リアルタイム処理が必須な画像処理に対するメインメモリへのアクセスは常に一定の転送帯域を保証しつつ、非リアルタイム処理機能もできる限り平行に動作させることが望ましい。言い換えれば、リアルタイム処理が必須な画像処理に対するメインメモリへのアクセスの転送帯域が保証できなくなる状況が発生しないようにコントローラは制御を行う必要がある。従って、全ての機能を動作させてもメモリ転送性能が十分保証できる高周波数・多bit幅のメモリを使用し十分なメモリ転送性能を確保する必要がある。
しかし、高周波数のメモリを使用することはメモリのコストアップ及び消費電力の増加に繋がり、多bit幅のメモリを使用することはチップのピン数増加によるチップ単価のコストアップに繋がってしまう。そこで、メモリの高周波数化及び多ビット化を抑制しつつ、リアルタイム処理機能のメインメモリへの転送帯域を確保すべく、リアルタイム処理機能部や非リアルタイム処理機能部とメインメモリ間の転送帯域をモニターし、メモリアクセスを制御する発明がある。
例えば、特許文献1には、予め設定された転送帯域を超えそうになった場合に非リアルタイム処理機能部からのアクセスを受け付けないように制御する技術が提案されている。これにより、リアルタイム処理部が全て動作しメインメモリの使用メモリ帯域が増大する状態において、非リアルタイム処理部の転送を受け付けないよう制御することで帯域を抑制し、リアルタイム処理の転送帯域を保証することが可能となる。
また、特許文献2には、リアルタイム処理機能部及び非リアルタイム処理機能部からのデータ転送単位を短くし、転送帯域に応じてそれぞれの処理機能部からのアクセスに対して、短くしたデータ転送単位毎にバス使用権を解放する技術が提案されている。これにより、リアルタイム処理部及び非リアルタイム処理部の転送が同時に起こる場合においても、リアルタイム処理の転送帯域を保証することが可能となる。
特開2014−160341号公報 特開2009−75942号公報
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術では、メインメモリへのアクセスが集中していない状態でも非リアルタイム処理部の転送帯域がある閾値を超えそうになると転送帯域が抑制されてしまう。また、メインメモリへのアクセスが集中していない状態でも短いデータ転送単位でのバス使用権の解放が行われてしまう。これらの場合には、メインメモリが有するメモリ転送性能を十分に使いきることができない可能性が高い。
また、SDRAM等に代表されるメモリは、1つのアドレスを指定するだけで次に続くアドレスのデータを連続して転送するバースト転送によりメモリへの高速データ転送を実現しており、バースト長を長くすることでメモリ転送性能を向上することが可能となる。しかし、メインメモリへアクセスする全ての処理部のバースト長を長くしてしまうと、メインメモリに転送するデータ量が多くなり、各処理部によるメモリバスを占有する時間が大きくなってしまう。
本発明は、上述の問題に鑑みて成されたものであり、メモリで使用されている使用メモリ帯域を監視して、メモリが有する転送性能を最大限使用しつつ、リアルタイム処理部の必要帯域を確保するように制御する仕組みを提供することを目的とする。
本発明は、メモリアクセスシステムであって、メモリと、前記メモリにアクセスする複数のマスターと、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視手段と、前記監視手段によって監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断する判断手段と、前記判断手段によって前記使用メモリ帯域が前記第1の閾値以上であると判断されると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御手段とを備えることを特徴とする。
また、本発明は、メモリアクセスシステムであって、メモリと、前記メモリにアクセスする複数のマスターと、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視手段と、前記監視手段によって監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断し、前記使用メモリ帯域が前記第1の閾値以上であると判断すると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御手段とを備えることを特徴とする。
本発明によれば、メモリで使用されている使用メモリ帯域を監視して、メモリが有する転送性能を最大限使用しつつ、リアルタイム処理部の必要帯域を確保するように制御することができる。
一実施形態に係る画像形成装置のブロック図。 一実施形態に係るコントローラ部のブロック図。 一実施形態に係るコントローラ部の画像パス制御を示す図。 一実施形態に係る帯域例を示す図。 一実施形態に係る帯域モニターのブロック図。 一実施形態に係るDMACのブロック図。 一実施形態に係る帯域制御用制御フローチャート。 一実施形態に係るDMACのブロック図。 一実施形態に係るDMACのブロック図。 一実施形態に係る帯域制御用制御フローチャート。 一実施形態に係るRAM制御に関するタイミングチャート。
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
<第1の実施形態>
<画像形成装置の構成>
以下では、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像形成装置100の構成例について説明する。なお、本実施形態では、メモリアクセスシステムの一例として画像形成装置を例に説明を行う。なお、本発明を画像形成装置に限定する意図はない。即ち、本発明は、以下で説明する特徴的なメモリアクセスシステムを有する装置であれば適用可能である。
画像形成装置100は、スキャナ部110、コントローラ部120、操作部130、及びプリンタ部140を備える。スキャナ部110は、原稿画像を光学的に読み取り、画像データに変換する。また、スキャナ部110は、原稿を読取るための機能を持つ原稿読取部112と、原稿用紙を搬送するための機能を持つ原稿給紙部111とを備える。プリンタ部140は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排出する。プリンタ部140は、複数種類の記録紙カセットを持つ給紙部142と、画像データを記録紙に転写、定着させる機能を持つ転写定着部141と、印字された記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙部143とを備える。
コントローラ部120は、スキャナ部110及びプリンタ部140と電気的に接続され、さらにLAN、ISDN、インターネット/イントラネット等のネットワーク150と接続されている。コントローラ部120は、スキャナ部110を制御して、原稿の画像データを読込み、プリンタ部140を制御して画像データを記録用紙に出力してコピー機能を提供する。
また、コントローラ部120は、スキャナ部110から読み取った画像データを、コードデータに変換し、ネットワーク150を介して図示しないホストコンピュータへ送信するスキャナ機能を提供する。さらに、コントローラ部120は、ホストコンピュータからネットワーク150を介して受信したコードデータを画像データに変換し、プリンタ部140に出力するプリンタ機能を提供する。また、コントローラ部120は、ISDNからデータを受信してプリントするFAX受信機能やISDNへスキャンしたデータを送信するFAX送信機能を提供する。また、これらスキャンやプリント、FAX送受信といった処理をジョブと称し、画像形成装置100はこれらジョブを操作者からの指示に従って制御・処理するものである。操作部130は、コントローラ部120に接続され、液晶タッチパネルで構成され、画像形成装置100を操作するためのユーザインタフェースを提供する。
<コントローラ部の構成>
次に、図2を参照して、本実施形態に係るコントローラ部120の構成例について説明する。コントローラ部120に備えられる内部ブロックのそれぞれについて詳細に説明する。
コントローラ部120は、CPU200、ROMC210、ROM211、ネットワークIF(NW_IF)220、インターコネクト230、231、DMAC240〜246、スキャン処理部250、回転処理部251、変倍処理部252、RIP処理部253、圧縮処理部254、伸張処理部255、プリント処理部256、MEMC260、RAM270、及び帯域モニター280を備える。CPU(Centaral Processing Unit)200は、システム全体を制御するプロセッサである。
CPU200は、RAM270に展開されたOSや制御プログラムに従ってプリント処理やスキャン処理といったジョブに関わる処理を統括的に制御する。ROMC210は、システムのブートプラグラムを格納しているROM211にアクセスするための制御モジュール(ROMコントローラ)である。画像形成装置100の電源がONされたときに、CPU200はROMコントローラ210を介してROM211にアクセスし、CPU200がブートする。RAM270はCPU200が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。本実施形態では一例としてSDRAMで構成されるものとする。
MEMC260は、システムの制御プログラムや画像データが格納されるRAM270にアクセスするための制御モジュール(Memoryコントローラ)である。MEMC260は、RAM270の設定や制御を行うためのレジスタを備えており、このレジスタは、CPU200からアクセス可能である。MEMC260の詳細な構成については後述する。
ネットワークIF220は、ネットワーク150に接続し、外部のホストコンピュータと画像データなどの情報の入出力を行う処理部である。インターコネクト230、231は、CPU200や各処理部とMEMC260を接続する。
DMAC240〜246は、メモリアクセス制御手段として機能し、MEMC260を介してRAM270へアクセスするメモリアクセスマスターとなるDMA(Direct Memory Access)コントローラである。後述する各処理部250〜256とRAM270間のデータ転送を行う。DMAC240〜246はCPU200により制御され、どのメモリアドレスに対し読み書きをするか、及びDMA転送を行うタイミングを制御する機能を有する。本実施形態において詳細は後述するが、DMAC240〜246は、CPU200からの設定により、メモリへの画像転送要求を発行しないよう制御する機能を有する。
以下で説明するスキャン処理部250、回転処理部251、変倍処理部252、RIP処理部253、圧縮処理部254、伸張処理部255、及びプリント処理部256についても、CPU200によって統括的に制御される。また、各処理部を説明する上で画像データとは、圧縮されていない画像のことを示し、圧縮画像データとは、何らかの圧縮方式で圧縮された画像のことを示す。
スキャン処理部250は、CPU200により設定された設定に従い、スキャナ部110から入力される画像データに対し、シェーディング補正処理、MTF補正処理、入力ガンマ補正やフィルタ処理等の画像処理を行い、DMAC240に画像データを出力する。回転処理部251は、CPU200により設定された設定に従い、DMAC241から入力される画像データに対し90度、180度、270度の回転処理を行い、DMAC241に画像データを出力する。変倍処理部252は、CPU200により設定された設定に従い、DMAC242から入力される画像データに対し1/2倍、1/4倍等任意の倍率に変倍し、DMAC242に画像データを出力する。RIP処理部253は、CPU200により設定された設定に従い、DMAC243から入力されるPDL画像に対しレンダリング処理を行い、DMAC243に画像データを出力する。
圧縮処理部254は、CPU200により設定された設定に従い、DMAC244から入力される画像データに対しJPEG、JBIGといった画像圧縮処理を行い、DMAC244に圧縮画像データを出力する。伸張処理部255は、CPU200により設定された設定に従い、DMAC245から入力されるJPEG、JBIGのような圧縮画像データに対し伸張処理を行い、DMAC245に伸張後の画像データを出力する。プリント処理部256は、CPU200により設定された設定に従い、DMAC245から入力される画像データに対し、色空間変換処理、フィルタ処理、ハーフトーン処理等の画像処理を行い、プリンタ部140に画像データを出力する。
ここまで説明したDMAC及びインターコネクトとMEMC間のバス290〜298は、標準バスであるAXI_BUS等で接続されているものとする。
次に、MEMC260の内部構成について説明する。バッファ261〜264は、各DMAC及びインターコネクトからの受信データ、及び、送信データを一時的にバッファリングするバッファである。各バッファ261〜264は、バス290〜293で一度にバースト転送可能なバッファサイズを少なくとも有する。また、各バッファ261〜264は、バス290〜293の動作周波数とバスコンバータの動作周波数が異なる場合には非同期対応バッファにもなる。バスコンバータ265は、各バッファ261〜264のアクセス権をラウンドロビンで調停する調停機能と、RAM270へアクセスするためのプロトコルへの変換を行う。
帯域モニター280は、バス290〜293の転送データ量をモニターし、転送データの合計帯域を算出する。合計帯域とは、RAM270に対する使用メモリ帯域を示す。算出した使用メモリ帯域はCPU200から読み出し可能である。また、帯域の閾値をCPU200から設定可能であり、使用メモリ帯域が設定された閾値以上か、或いは合計帯域が設定された閾値以下であることを検知することも可能である。詳細については、図5の帯域モニター280の詳細ブロック図を用いて後述する。
<画像パス及びアクセス制御>
次に、図3A及び図3Bを参照して、本実施形態における画像パスと、本実施形態を適用した場合に、どのように画像データ転送が抑制されるかについて説明する。ここで、画像パスとは、コントローラ部120内部の画像データの流れのことを示す。なお、画像データの送受信や転送に関わる主体は、図3A及び図3Bに示す矢印を通過する各ブロックとなる。なお、図3Aには、図3(a)、図3(b)、及び図3(c)が含まれ、図3Bには、図3(d)及び図3(e)が含まれる。
まず、図3(a)乃至図3(e)の図を説明する上での前提について説明する。各画像処理部と画像処理部間で画像を転送する場合は、必ずRAM270を介して画像データの転送が行われる。また、各図に示す太い矢印は、リアルタイム処理が必須である画像パス(以下では、リアルタイム画像パスと称する。)を示し、細い矢印は非リアルタイム処理である画像パス(以下では非リアルタイム画像パスと称する。)を示す。本実施形態におけるリアルタイム画像パスは、スキャナ部110から画像データの入力が開始されRAM270に画像データを転送するパスと、RAM270に格納された画像データをプリンタ部140に転送するパスである。
スキャナ部110は原稿画像を読み取るため、一度読み出しを開始すると途中で停止することができない。よって、スキャナ部110からコントローラ部120に画像データの入力が開始されると、コントローラ部120はある一定量の画像データをRAM270に止まることなく転送し続ける必要がある。一方、プリンタ部140は一度プリントを開始すると途中で停止することができない。よって、コントローラ部120は画像データをプリンタ部140に出力開始すると、コントローラ部120から一定量の画像データを常にRAM270から読み出しプリンタ部140に出力する必要がある。このように、ある一定時間で決まった画像データ転送を必ず常に行い続ける必要があるパスがリアルタイム画像パスとなる。
ここから、図3(a)乃至図3(e)を参照して、本実施形態おける画像パスの例と、本実施形態におけるRAM270へのデータ転送アクセス競合時の画像転送制御について説明する。より具体的には、データ転送アクセス競合時にメモリアクセスが混雑し、RAM270の使用メモリ帯域が、RAM270の実質的な転送帯域を超えそうになった場合の画像データ転送の抑制方法について説明する。
図3(a)は、SENDジョブを実行する場合の画像パスの例であり、実線の矢印で示される。SENDジョブとは、スキャナ部110から読み取った画像データを圧縮し、ネットワーク150上に接続される図示しないPCやサーバに転送するジョブのことである。T1で、スキャナ部110から読み取った画像データがRAM270にスプールされる。続いて、T2で、T1でスプールした画像データがRAM270から圧縮処理部254に転送されてJPEG等の画像圧縮が行われ、T3で圧縮した圧縮画像データが圧縮処理部254からRAM270にスプールされる。その後、T4で、T3でスプールした圧縮画像データがRAM270からネットワークIF220を介してネットワーク上に転送される。
図3(b)は、PDL_PRINTジョブを実行する場合の画像パスの例であり、破線の矢印で示される。PDL_PRINTジョブとは、ネットワーク150上に接続される図示しないPCから、プリント処理を行うための印刷データを受信し、プリンタ部140に出力し印刷するジョブのことである。T10で、ネットワーク上からPDLデータがネットワークIF220を介して受信され、RAM270にスプールされる。続いて、T11で、T10でスプールされたPDLデータがRAM270からRIP処理部253に転送されてレンダリング処理が行われ、T12で画像データがRIP処理部253からRAM270にスプールされる。
次に、T13で、T12でスプールされた画像データがRAM270から圧縮処理部254に転送されてJBIG等の画像圧縮が行われ、T14で圧縮した圧縮画像データが圧縮処理部254からRAM270にスプールされる。続いて、T15で、T14でスプールされた圧縮画像データがRAM270から伸張処理部255に転送されて画像伸張が行われ、T16で伸張した画像データが伸張処理部255からRAM270にスプールされる。T17で、T16でスプールされた画像データがRAM270から読み出されてプリンタ部140に出力される。
図3(c)は、上記図3(a)と図3(b)に示すSENDジョブとPDL_PRINTジョブが同時に実行された場合の画像パスの例である。画像パスの説明については図3(a)と図3(b)で説明したため省略する。このようにSENDジョブとPDL_PRINTジョブが競合した場合には、当然動作する画像パスも増え、RAM270へのデータ転送量が増大、つまり使用メモリ帯域が増大する。
RAM270の使用メモリ帯域が増大しRAM270の可能な転送帯域を上回ってしまうと、リアルタイム画像パスであるスキャン画像パス(T1)とプリント画像パス(T17)が必要な転送帯域が満たせなくなる。このような状況に陥ると、コントローラ部120のシステムとしては破綻してしまう。従って、このような状況を回避するため、本実施形態では、図3(d)に示すように、RAM270における使用メモリ帯域が、当該RAM270が可能な転送帯域を上回りそうな場合には、非リアルタイム画像パスのデータ転送を一時停止するよう制御する。具体的には、CPU20帯域モニター280を使用し、DMAC241〜245を制御することにより実現する。このように制御することにより、コントローラ部120がシステムとして破綻しないことを保証する。
また、図3(e)に示すように、RAM270で可能な転送帯域がある程度高い場合には、非リアルタイム画像パスの一部のみについては、RAM270でアクセスできるようにCPU200によって制御することも可能である。本実施形態では、リアルタイム画像パスの必要転送帯域は保証しつつ、SENDジョブをできる限り優先して処理する場合を想定した動作である。しかしながら、本発明は、これに限定されず装置の仕様や設定等により他の処理を優先して処理するように制御してもよい。
<転送帯域>
次に、図4を参照して、図3で説明したRAM270で可能な転送帯域、及び、スキャン画像パス(T1)とプリント画像パス(T17)の必要帯域の詳細について説明する。
図4(a)はRAM270で可能な転送帯域(メモリ帯域)を示す。算出方法は以下の式(1)、
メモリ帯域[MB/s]=メモリ動作周波数[MHz]*メモリバス幅[bit]*メモリ効率[%]/8・・・(1)
となる。
ここで、メモリ動作周波数はRAM270の動作周波数である。メモリバス幅はMEMC260とRAM270の間のデータ転送信号のバス幅のbit数である。メモリ効率は実際のMEMC260とRAM270の間の転送効率である。転送効率は、RAM270へのアクセスパターンにより変化するものである。
図4(b)はスキャン画像パス(図3のT1)の必要帯域を示す。算出方法は以下の式(2)、
スキャン画像パス必要帯域=(1ページあたりの画素数*1componentあたりのbit幅*component数)*(ipm/60)*(1/1−画像転送以外の割合)/8・・・(2)
となる。
ここで、1ページあたりの画素数は、スキャン対象となる原稿の1ページ分の画素数である。例えば、600[dpi]のA4サイズの画素数は約35[Mpixel]となる。Component(コンポーネント)については、例を挙げて説明する。例えばスキャン処理部250がRAM270に転送する画像データがRGB画像で1色あたりの諧調が256諧調であれば、componentあたりのbit幅は8bit幅であり、component数は3色あるため3となる。また、スキャン処理部250が出力する画像データの諧調が1024諧調であればcomponentあたりのbit幅は10bitとなる。さらに、RGBの画像以外に文字・写真といった画像識別情報を加えて出力する場合は、RGB*画像識別情報でcomponent数は4となる。ipmはスキャナ部110の読み取り性能を示し、1分間に何枚の原稿をスキャンして読み出せるかを示す。画像転送以外の割合は、スキャナ部110から画像が入力される場合の実際に画像が転送されている以外の時間の割合を示す。
図4(c)はプリント画像パス(図3のT17)の必要帯域を示す。算出方法は以下の式(3)、
プリント画像パス必要帯域=(1ページあたりの画素数*1componenあたりのbit幅*component数)*(ppm/60)*(1/1−画像転送以外の割合)/8・・・(3)
となる。
式(2)との算出方法の違いは、ipmとppmのみであり、ppmは1分間に何枚のシート(記録媒体)にプリントできるかを示す。その他の変数等については式(2)と同様であるため説明を省略する。
このように、RAM270は、画像形成装置100のスキャン読取速度及びプリント出力速度を少なくとも保証し、かつ、CPU等が最低限動作可能なメモリ帯域を有するものを選択する必要がある。
具体的に図4の例を用いて、スキャン性能が図4(b)のスキャン帯域例2を前提とし、プリント性能が図4(c)のプリント帯域例4の前提として説明する。この場合、スキャン処理の必要帯域である233[MB/s]とプリント処理の必要帯域である933[MB/s]とを合わせて1166[MB/s]がメモリ帯域として最低限必要となる。より詳細には、CPU200等が少なくとも動作できる帯域についても最低保証する必要があるため、メモリ帯域は1166+α[MB/s]が必要となる。αはCPU200が使用するメモリ帯域である。
よって、コントローラ部120がスキャン処理とプリント処理を同時に動作可能とする場合は、図4(a)に示すメモリ帯域例1のメモリ動作周波数が1066[MHz]のメモリは1066[MB/s]しか出ないため選択できない。従って、本実施形態においては、少なくとも図4(a)のメモリ帯域例2のメモリ動作周波数が1866[MHz]の1866[MB/s]の性能を有するメモリを選択する必要がある。余りの帯域を非リアルタイム画像パスに割り当て可能であるため、より動作周波数の早いメモリを選択すると、非リアルタイム画像パスも同時に動作できる可能性が高くなる。
以下では、図3(d)に示す動作を実現するための構成及びフローについて詳細に説明する。
<帯域モニターの構成>
次に、図5を参照して、本実施形態に係る帯域モニター280の構成例について説明する。内部ブロックそれぞれについて詳細に説明する。帯域モニター280は、帯域計算部300、帯域閾値設定部310、311、及び帯域閾値検知部320、321を備える。
帯域計算部300は、RAM270の使用メモリ帯域を測定するために用いられるものである。具体的には、バス290、291、292、293のデータ転送を帯域計算部300によりモニターし、RAM270の現在の使用メモリ帯域を算出する。帯域計算部300の算出する使用メモリ帯域は、CPU200から読み取り可能である。また、帯域計算部300は、算出した使用メモリ帯域を信号線を介して帯域閾値検知部320、321へ出力する。なお、図5では、バス290〜293を概念的に矢印で示しているが、これはバス290〜293を帯域モニター280がモニターし、情報を取得していることを示すものである。
また、図5では、帯域計算部300から各DMACへ算出した使用メモリ帯域を出力している。これは、後述する第2の実施形態における構成であるため、ここでの説明は省略する。
帯域閾値設定部310、311は、CPU200により帯域の閾値を設定することが可能である。帯域閾値設定部310、311に設定された閾値は、現在の帯域計算部300により計測されたRAM270の現在の使用メモリ帯域との比較に用いられる。
帯域閾値検知部320、321は帯域閾値設定部310、311に設定された閾値と、帯域計算部300の算出する現在の使用メモリ帯域を比較し、CPU200に通知する。通知条件はCPU200から設定可能であり、帯域計算部300の算出する使用メモリ帯域が帯域閾値設定部310、311に設定された閾値を超えている場合、或いは帯域閾値設定部310、311に設定された閾値を下回る場合のいずれの条件設定が可能である。この帯域モニター280により、CPU200はRAM270の現在の使用メモリ帯域を知ることが可能となる。なお、本実施形態では、帯域閾値設定部及び帯域閾値検知部は2つしか設けていないが、複数の条件を作りたい場合は、3つ以上を設ける構成でもよい。
<DMACの構成例>
次に、図6を参照して、本実施形態に係るDMAC241〜245の構成例について説明する。内部ブロックそれぞれについて詳細に説明する。DMAC241〜245は全てCPU200により制御される。DMAC241〜245は、それぞれ送信バッファ400、WRITE_DMAC410、受信バッファ420、READ_DMAC430、及び転送許可設定部450を備える。
送信バッファ400とWRITE_DMAC410とは、各画像処理部からRAM270にデータを転送(RAM270に書き込み)する場合に使用される。受信バッファ420とREAD_DMAC430とは、RAM270から各画像処理部にデータを転送(RAM270から読み出し)する場合に使用される。
送信バッファ400は、各画像処理部から入力されるデータを一時的に保持するバッファである。WRITE_DMAC410はRAM270にデータを書き込むためのデータ転送を行うコントローラである。バースト転送を含め、一度に転送するデータが送信バッファ400に溜まっているかを確認し、溜まっていれば画像データをバス(294〜298)に転送する。
受信バッファ420は、READ_DMAC430から入力されるデータを一時的に保持するバッファである。受信バッファ420にデータが保持されると、各画像処理部にデータの転送を行う。READ_DMAC430は、受信バッファ420にバースト転送を含め、一度に受信するデータを格納するための空き領域があるかを確認し、空き領域がある場合に読み出し要求をバス(294〜298)に出力し、画像データを受信する。
転送許可設定部450は、WRITE_DMAC410及びREAD_DMAC430のデータ転送を行える状態とするか、データ転送を停止させるかを制御するための設定部で、CPU200により設定される。WRITE_DMAC410及びREAD_DMAC430は、転送許可設定部450の出力するEnable信号が許可の場合にはデータ転送のリクエストを上げることが可能である。一方、Enable信号が停止の場合にはデータ転送のリクエストを上げることができなくなる。例えば、バス294〜298は本実施形態においてはAXI_BUSであるので、ライトアドレスチャネル及びリードアドレスチャネルからVALID信号をアサートしないよう制御される。
<処理フロー>
次に、図7を参照して、本実施形態におけるメモリの使用メモリ帯域に応じた帯域抑制方法を制御する処理フローについて説明する。以下で説明する処理は、例えばCPU200がROM211に格納されている制御プログラムをRAM270に読み出して実行することにより実現される。
S101で、CPU200は、帯域モニター280で監視している使用メモリ帯域が閾値以上になっていないかを判断する。閾値以上になっていない場合はS101の判断を繰り返し行う。閾値以上になった場合はS102に進む。使用メモリ帯域が閾値以上になるかの判断方法は、帯域モニター280内の帯域閾値検知部320からの通知で検知することができる。本閾値とは、図4(a)に示したメモリ帯域のことであり、帯域閾値設定部310、311に予め設定されているものである。
S102で、CPU200は、使用メモリ帯域が閾値以上になったため、低優先度の処理用である非リアルタイム画像パスで使用されるDMAC241〜245の転送許可設定部450に停止設定を行う。当該停止設定により、DMAC241〜245はデータ転送リクエストを上げないよう動作し、RAM270の使用メモリ帯域が下がり、図4(a)に記載のメモリ帯域を超えないよう制御することが可能となる。
S103で、CPU200は、帯域モニター280で監視している使用メモリ帯域が閾値以下になっていないかを判断する。閾値以下になっていない場合はS103の判断を繰り返し行う。閾値以下になった場合はS104に進む。使用メモリ帯域が閾値以下になるかの判断方法は、帯域モニター280内の帯域閾値検知部321からの通知で検知する。
S104で、CPU200は、使用メモリ帯域が閾値以下になったため、非リアルタイム画像パスで使用されるDMAC241〜245の転送許可設定部450に許可設定を行う。当該許可設定により、DMAC241〜245はデータ転送リクエストを上げることが可能となる。即ち、ここでは、S102で行ったメモリへのアクセス制限を解除している。
例えば、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域より少し小さい値を設定したとする。この場合、S102でDMAC241〜245のデータ転送停止後すぐにS103で使用メモリ帯域が閾値以下となり、S104でDMAC241〜245がデータ転送を再開するといった処理を繰り返すことになる。また、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域よりかなり小さい値にしたとする。この場合、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域より少し小さい値を設定した場合のように、頻繁に転送許可設定部450の設定を行うこともなくなる。
また、本実施形態では閾値は2つのみで実現しているが、図5の説明にあるように、帯域閾値設定部310及び帯域閾値検知部320を複数設けることも可能である。複数の閾値を用意しておくことで、それぞれの閾値に応じ各DMAC(241〜245)を停止・再開するようCPU200が制御することで、図3(e)に記載の動作を実現することが可能となる。この変形例は、後述する第2及び第3の実施形態にも適用可能である。
より具体的に例を挙げて説明する。例えば、3つの帯域閾値設定部310を設け、それぞれ1866[MB/s]を超えた場合、1500[MB/s]を下回った場合、1200[MB/s]を下回った場合の3つの閾値を設定しているとする。各DMAC241〜245のS101で検出する閾値は1866[MB/s]と共通である。一方、S103で検出する閾値として、DMAC244については1500[MB/s]を使用し、DMAC241、242、243、245については1200[MB/s]を使用するとする。
この場合、図3(c)の状態になると、まず1866[MB/s]を超えてしまうので、図3(d)の状態になり、DMAC241〜245が全て一度停止する。この状態になるとやがて使用メモリ帯域が少なくなり、その後、使用メモリ帯域が1500[MB/s]を下回る。この状態になると、DMAC244のみが動作可能となる。この状態で1200[MB/s]を下回ると、その他のDMAC241〜245も動作を開始するようになり、1200[MB/s]を下回らない場合は、図3(e)の状態が保持される状況となる。
なお、変形例として各DMAC処理を停止又は再開するメモリ使用メモリ帯域を検知するための帯域閾値設定部310及び帯域閾値検知部320を備え、各DMAC毎に制御できる設定値を設定してもよい。これにより、各DMAC241〜245に優先度を付けたように動作させることが可能である。この変形例は、後述する第2及び第3の実施形態にも適用可能である。
以上説明したように、本実施形態に係るメモリアクセスシステムは、メモリと複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視し、当該使用メモリ帯域が第1の閾値以上であるか否かをCPUで判断する。また、本メモリアクセスシステムは、上記CPUの判断に基づいて、複数のマスターのうち優先度の低いマスターによるメモリへのアクセスを制限する。このように、本実施形態では、RAM270で使用されているメモリ帯域をモニターし、RAM270で可能なメモリ帯域を超えそうになった場合にのみ非リアルタイム処理部からのRAM270へのメモリアクセス要求を発生しないように制御する。これにより、本実施形態によれば、RAM270の使用可能な帯域を最大限使用しつつ、即ち、非リアルタイム処理部も限りなく使用可能な状況としつつ、リアルタイム処理部の転送帯域を保証することが可能となる。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態は、RAM270の使用メモリ帯域がメモリ帯域に到達しそうになった場合に、CPU200に帯域モニター280の監視結果を通知し、CPU200がDMAC241〜245を制御することでリアルタイム画像パスの帯域保証を行った。上記第1実施形態では、メモリ帯域が閾値に達してからCPU200が制御するため最終的にDMAC241〜245の転送許可設定部450の停止設定を行うまでには少し時間を要する。その少しの時間の間に、メモリ帯域の閾値を上回ってしまう可能性があるため、帯域閾値設定部310に設定する閾値は少しマージンを持たせて設定する必要がある。
一方、本実施形態では、上記第1の実施形態と異なる点として、DMAC241〜245の転送許可設定部450がCPU200によって設定されるのではなく、DMAC241〜245内のハードウェアで制御を行う。ハードウェアで制御を行うことで、即座に転送許可設定部450の停止設定が行えるため、メモリ帯域の上限までメモリ転送帯域を使用することが可能となる。そのため、図5に示すように、本実施形態では、帯域計算部300が算出した使用メモリ帯域が各DMAC241〜245へ通知される。DMAC241〜245は、通知された使用メモリ帯域に基づいて各マスターのRAM270へのアクセスを制御する。
<DMACの構成>
図8を参照して、本実施形態に係るDMAC241〜245の構成例について説明する。内部ブロックそれぞれについて詳細に説明する。DMAC241〜245は全てCPU200により制御される。DMAC241〜245は、上記第1の実施形態で説明した図6の構成と同様に、それぞれ送信バッファ400、WRITE_DMAC410、受信バッファ420、READ_DMAC430、及び転送許可設定部450を備える。さらに、本実施形態に係るDMAC241〜245は、転送許可判定部560、及び閾値設定部561を備える。
送信バッファ400・WRITE_DMAC410・受信バッファ420・READ_DMAC430については図6で説明した構成と同様であるため説明は割愛する。以下では、図6に示した上記第1実施形態との差分について主に説明する。
各DMAC241〜245とMEMC260との間のそれぞれには、帯域モニター280の帯域計算部300が使用メモリ帯域を算出するための信号線が接続される。閾値設定部561はCPU200により設定することが可能であり、帯域計算部300が算出する使用メモリ帯域と比較するための閾値を設定する。転送許可判定部560は、帯域計算部300が算出する使用メモリ帯域と、閾値設定部561の値を比較し、使用メモリ帯域が閾値設定部561に設定された閾値以上の場合は、停止設定を行うと判定する。一方、使用メモリ帯域が閾値設定部561に設定された閾値未満の場合は、転送許可判定部560は、許可設定を行うと判定する。当該判定結果は、転送許可設定部450に通知される。
転送許可設定部450は、上記第1実施形態と同じ構成であるが、CPU200によって制御されるのではなく、転送許可判定部560による判定結果に応じて制御される点のみ異なる。
また、本実施形態では、閾値設定部561にはある1つの閾値を設定し、転送許可判定部560はその閾値以上か未満かにより転送許可設定部の停止・許可設定を行っている。しかしながら、上記第1の実施形態のように、ある閾値を超えた場合に転送停止設定を行い、ある閾値を下回った場合に転送許可設定を行う構成としてもよい。
ここで、本実施形態の構成を採用する場合における、図3(c)乃至図3(e)に示す動作を行わせるための設定例について説明する。例えば、図7のフローチャートの説明と同様の動作をさせるための説明を行う。
各DMAC241〜245の閾値設定部561で停止設定を行う閾値を1866[MB/s]に設定する。DMAC244の許可設定閾値には1500[MB/s]を設定し、DMAC241、242、243、245の許可設定閾値には1200[MB/s]を設定しておく。このように設定しておくことで、図3(c)乃至図3(e)に示す動作を上記第1の実施形態と同じように動作させることが可能となる。
当然別の設定値でも構わない。例えば、DMAC241、242、243、245の閾値設定部561で停止設定を行う閾値を1500[MB/s]としておけば、DMAC240、DMAC246が動作する転送帯域が保証されることはもちろんである。さらには、非リアルタイム画像パスであるが優先的に処理したいDMAC244の動作する割合を高くすることも可能である。
以上説明したように、本実施形態に係るメモリアクセスシステムは、メモリと複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視し、当該使用メモリ帯域が第1の閾値以上であるか否かをDMACで判断する。また、DMACは、当該判断結果に基づき、複数のマスターのうち優先度の低いマスターによるメモリへのアクセスを制限する。このように、本実施形態では、DMAC241〜245の転送許可設定部450をDMAC241〜245内のハードウェアである転送許可判定部560が行う。これにより、CPU200で転送許可設定部450よりも即座に転送許可設定部450の停止設定を行うことが可能となる。よって、上記第1の実施形態と比べ、よりメモリ帯域の上限までメモリ転送帯域を使用することが可能となる。
<第3の実施形態>
以下では、本発明の第3の実施形態について説明する。本実施形態では、図3(d)に示すように、RAM270の使用メモリ帯域がRAM270で可能な転送帯域(メモリ帯域)を上回りそうな場合には、非リアルタイム画像パスのデータ転送の使用メモリ帯域を減らすためにバースト長を短くするように制御する。具体的には、CPU200が帯域モニター280を使用して、DMAC241〜245を制御することで上記制御を実現する。図3(d)において、バースト長を短くしたSENDジョブの非リアルタイム画像パスは点線の矢印で示され、バースト長を短くしたPDL_PRINTジョブの非リアルタイム画像パスは一点鎖線の矢印で示される。このように制御することにより、コントローラ部120がシステムとして破綻しないことを保証することができる。
<DMACの構成>
次に、図9を参照して、本実施形態におけるDMAC241〜245の構成例について説明する。内部ブロックそれぞれについて詳細に説明する。DMAC241〜245は全てCPU200により制御される。ここでは、上記第1の実施形態で説明した構成と異なる構成についてのみ説明する。
本実施形態に係るDMAC241〜245はそれぞれ、図6の転送許可設定部450の構成に代えて、バースト長設定部480を備える。バースト長設定部480は、WRITE_DMAC410及びREAD_DMAC430のデータ転送時のバースト長を制御するための設定部であり、CPU200により設定される。WRITE_DMAC410及びREAD_DMAC430は、バースト長設定部480の出力するバースト長に従って、送信バッファ400のデータの書き込み要求及び受信バッファ420へのデータの読み出し要求を出力する。
また、DMACのバースト長の初期値は設定可能な最大バーストサイズに設定される。当該最大バーストサイズは、バースト長設定部480に設定可能な最大バーストサイズ、又はDMACがアクセスするバッファ(261〜264の何れか)と送信バッファ400と受信バッファ420のそれぞれが格納できる最大バーストサイズから決定される。
<処理フロー>
次に、図10を参照して、本実施形態におけるメモリの使用メモリ帯域に応じた帯域抑制方法を制御する処理フローについて説明する。以下で説明する処理は、例えばCPU200がROM211に格納されている制御プログラムをRAM270に読み出して実行することにより実現される。なお、ここでは、上記第1の実施形態で説明した図7の制御と異なるステップのみ説明する。即ち、処理フローでは、S102及びS104に代えて、S1001及びS1002が実行される。
S1001で、CPU200は、使用メモリ帯域が閾値以上になってしまったため、非リアルタイム画像パスで使用されるDMAC241〜245のバースト長設定部480にバースト長を短くする変更設定を行う。当該変更設定により、DMAC241〜245はデータ転送リクエストに対するデータ転送量が少なくなるよう動作し、RAM270の使用メモリ帯域が下がり、図4(a)に記載のメモリ帯域を超えないよう制御することが可能となる。
また、S103で使用メモリ帯域が閾値以下になったと判断すると、S1002に進み、CPU200は、非リアルタイム画像パスで使用されるDMAC241〜245のバースト長設定部480にバースト長を長くする変更設定を行う。当該変更設定により、DMAC241〜245はデータ転送リクエストに対するデータ転送量が多くなるよう動作し、RAM270の使用メモリ帯域を上げることが可能となる。
例えば、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域より少し小さい値にしてもよい。この場合、S1001でDMAC241〜245のデータ転送停止後すぐにS103で使用メモリ帯域が閾値以下となり、S1002でDMAC241〜245がデータ転送を再開するといった処理を繰り返すことができる。また、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域よりかなり小さい値にしてもよい。この場合、帯域閾値設定部311に設定する値を図4(a)に記載のメモリ帯域より少し小さい値を設定した場合のように、頻繁にバースト長設定部480の設定を行うこともなくなる。
また、本実施形態では閾値は2つのみで実現しているが、図5の説明にあるように、帯域閾値設定部310及び帯域閾値検知部320は複数備えることも可能である。複数の閾値を用意しておくことで、それぞれの閾値に応じ各DMAC(241〜245)のバースト長を変更するようCPU200が制御し、図3(e)に記載の動作を実現することが可能となる。より詳細には、帯域閾値設定部310を3つ設け、それぞれ1866[MB/s]を超えた場合、1500[MB/s]を下回った場合、1200[MB/s]を下回った場合の3つの閾値を設定する。また、各DMACのバースト長の初期設定値はバースト長を8とする。各DMAC241〜245のS101で検出する閾値は1866[MB/s]と共通である。S103で検出する閾値がDMAC244は1500[MB/s]及び1200[MB/s]を使用し、DMAC241、242、243、245は1200[MB/s]のみを使用するとする。
この場合、図3(c)の状態になると、まず1866[MB/s]を超えてしまうので、図3(d)の状態になり、DMAC241〜245が全て短いバースト長(バースト長2)に変更される。この状態になるとやがて使用メモリ帯域が少なくなり、その後使用メモリ帯域が1500[MB/s]を下回る。この状態になると、DMAC244のみが長いバースト長(バースト長4)に変更される。この状態で1200[MB/s]を下回ると、各DMAC(241〜245)を最大バースト長(バースト長8)に変更されるようになり、1200[MB/s]を下回らない場合は、図3(e)の状態が保持される状況となる。
このように、帯域閾値に応じてバースト長を段階的に変更することで、帯域に応じた使用メモリ帯域の制御が可能となる。本実施形態では一例を記載したが、各DMACのバースト長を変更するメモリ使用メモリ帯域を検出するための帯域閾値設定部310及び帯域閾値検知部320を設け、DMAC毎に制御できる設定値を設定してもよい。これにより、各DMAC241〜245に優先度を付けたように動作させることが可能となる。
<タイミングチャート>
次に、図11A及び図11Bを参照して、リアルタイム処理のSENDジョブの書き込み画像データ転送及びPDL_PRINTジョブの読み出し画像データ転送と、非リアルタイム処理の書き込み画像データ転送が同時に発生した場合の動作を説明する。ここでは、DMAC240、246及び244は、266MHzで動作するバス幅128bitのバスに接続され、それぞれバースト長8のリクエストを発行するものとする。また、RAM270は533MHzの両エッジでデータ転送が行われるバス幅32bitのRAMである。つまり、バスのバースト長1のデータは、RAMクロックの4サイクル分で転送される。
以下では、非リアルタイム処理のバースト長を短く変更しない場合とバースト長を短く変更した場合の使用メモリ帯域ついて説明する。まず、図11Aを用いて、非リアルタイム処理のバースト長を短くしない場合の動作について説明する。
サイクル1において、DMAC240、246、244がバスリクエスト(ReqS0、ReqP0、ReqL0)を発行する。DMAC240、244が書き込む画像データ(DataS0、DataL0)はサイクル3からサイクル10にわたって転送され、バッファ261、262に書き込まれる。一方、DMAC246のバスリクエスト(ReqP0)はRAM270からの読み出しリクエストのため、サイクル3からサイクル10にわたってRAM270から画像データの読み出しが行われる。
次に、サイクル12からサイクル19において、バッファ261に格納されたDMAC240からの書き込み画像データ(DataS0)がRAM270に転送される。一方、RAM270から読み出された読み出し画像データ(DataP0)がDMAC246に転送される。
サイクル21では、DMAC240は、バッファ261の画像データ(DataS0)がRAM270に書き込まれてバッファに空きがあるため、次のバスリクエスト(ReqS1)を発行する。また、同様に、DMAC246は、バスリクエスト(ReqP0)に対する読み出しデータ(DataP0)の読み出しが完了したため、次のバスリクエスト(ReqP1)を発行する。
サイクル21からサイクル28にわたって、バッファ262に書き込まれた画像データ(DataL0)の書き込みが行われる。サイクル30において、DMAC244は、バッファ262の画像データ(DataL0)がRAM270に書き込まれてバッファに空きがあるため、次のバスリクエスト(ReqL1)を発行する。
このように、RAM270への画像データの転送は順に行われる。また、リアルタイム処理であるDMAC240,246の2回分のバスリクエストに対する画像データの転送はサイクル46で完了する。
続いて、図11Bを用いて、非リアルタイム処理のバースト長をバースト長2に変更した場合の動作について説明する。DMAC240、246の動作について、サイクル1からサイクル21までは図11Aと同様のため説明は割愛する。
一方、DMAC244は、バースト長2の設定のため、サイクル3からサイクル4で画像データ(DataL0)がバッファ262に書き込まれる。バッファ262に書き込まれた画像データ(DataL0)は、サイクル21からサイクル22でRAM270に書き込まれる。
DMAC244からの画像データの転送はバースト長2のため、RAM270への画像転送はサイクル22で解放される。従って、サイクル21で発行されたバスリクエスト(ReqP1)の画像データの読み出しがサイクル24からサイクル31で行われ、サイクル33からサイクル40でDMAC240からの画像データ(DataS1)の書き込みが行われる。
このように、非リアルタイム処理であるDMAC244におけるバースト長をバースト長2に変更した場合、リアルタイム処理であるDMAC240、246の2回分のバスリクエストに対する画像データの転送はサイクル40で完了する。なお、ここでは、リアルタイム処理をバースト長8、非リアルタイム処理をバースト長2とした一例を記載した。しかしながら、本発明はこれに限定されず、リアルタイム処理のバースト長を更に長くしたり、非リアルタイム処理のバースト長を更に短くすることで、リアルタイム処理に割り当てられる帯域を上げることが可能である。
以上説明したように、本実施形態によれば、RAM270で使用されている使用メモリ帯域をモニターし、RAM270で可能なメモリ帯域を超えそうになった場合にのみ非リアルタイム処理部からのRAM270へのメモリアクセス要求に対する使用メモリ帯域を下げる。これにより、RAM270の使用可能な帯域を最大限使用しつつ、即ち、非リアルタイム処理部も限りなく使用可能な状況としつつ、リアルタイム処理部の転送帯域を保証することが可能となる。なお、本実施形態は、上記第1及び第2の実施形態とそれぞれ組み合わせて適用することが可能である。即ち、メモリアクセス要求に対する使用メモリ帯域を下げる判定をCPU200で行ってもよいし、各DMACで行ってもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:画像形成装置、110:スキャナ部、120:コントローラ部、130:操作部、140:プリンタ部、200:CPU、210:ROMC、211:ROM、220:ネットワークIF、230、231:インターコネクト、240〜246:DMAC、250:スキャン処理部、251:回転処理部、252:変倍処理部、253:RIP処理部、254:圧縮処理部、255:伸張処理部、256:プリント処理部、260:MEMC(メモリコントローラ)、261〜264:バス、265:バスコントローラ、270:RAM、280:帯域モニター

Claims (16)

  1. メモリアクセスシステムであって、
    メモリと、
    前記メモリにアクセスする複数のマスターと、
    前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視手段と、
    前記監視手段によって監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断する判断手段と、
    前記判断手段によって前記使用メモリ帯域が前記第1の閾値以上であると判断されると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御手段と
    を備えることを特徴とするメモリアクセスシステム。
  2. 前記判断手段は、さらに、前記メモリアクセス制御手段によって前記優先度の低いマスターによる前記メモリへのアクセスが制限された後に、前記使用メモリ帯域が前記第1の閾値より低い第2の閾値以下であるか否かを判断し、
    前記メモリアクセス制御手段は、前記判断手段によって前記使用メモリ帯域が前記第2の閾値以下であると判断されると、前記優先度の低いマスターによる前記メモリへのアクセス制限を解除することを特徴とする請求項1に記載のメモリアクセスシステム。
  3. メモリアクセスシステムであって、
    メモリと、
    前記メモリにアクセスする複数のマスターと、
    前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視手段と、
    前記監視手段によって監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断し、前記使用メモリ帯域が前記第1の閾値以上であると判断すると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御手段と
    を備えることを特徴とするメモリアクセスシステム。
  4. 前記メモリアクセス制御手段は、前記優先度の低いマスターによる前記メモリへのアクセスを制限した後に、前記使用メモリ帯域が前記第1の閾値より低い第2の閾値以下であるか否かを判断し、前記使用メモリ帯域が前記第2の閾値以下であると判断すると、前記優先度の低いマスターによる前記メモリへのアクセス制限を解除することを特徴とする請求項3に記載のメモリアクセスシステム。
  5. 前記メモリアクセス制御手段は、前記優先度の低いマスターによる前記メモリへのアクセスを停止させることにより、アクセスを制限することを特徴とする請求項1乃至4の何れか1項に記載のメモリアクセスシステム。
  6. 前記メモリアクセス制御手段は、前記優先度の低いマスターが前記メモリへアクセスする際のバースト長を短くすることにより、アクセスを制限することを特徴とする請求項1乃至4の何れか1項に記載のメモリアクセスシステム。
  7. 前記優先度の低いマスターは、非リアルタイムでの前記メモリへのアクセスによるデータ転送を実行するマスターであり、
    優先度の高いマスターは、リアルタイムでの前記メモリへのアクセスによるデータ転送を実行するマスターであることを特徴とする請求項1乃至6の何れか1項に記載のメモリアクセスシステム。
  8. 前記複数のマスターに対して個別に前記第1の閾値が設けられ、
    前記メモリアクセス制御手段は、各マスターに割り当てられ前記第1の閾値に基づいて、当該マスターによるメモリへのアクセスを制限することを特徴とする請求項1乃至7の何れか1項に記載のメモリアクセスシステム。
  9. 前記判断手段は、CPUであることを特徴とする請求項1又は2に記載のメモリアクセスシステム。
  10. 前記メモリアクセス制御手段は、DMA(Direct Memory Access)コントローラであることを特徴とする請求項1乃至9の何れか1項に記載のメモリアクセスシステム。
  11. メモリと、前記メモリにアクセスする複数のマスターとを備えるメモリアクセスシステムの制御方法であって、
    監視手段が、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視工程と、
    判断手段が、前記監視工程で監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断する判断工程と、
    メモリアクセス制御手段が、前記判断工程で前記使用メモリ帯域が前記第1の閾値以上であると判断されると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御工程と
    を実行することを特徴とするメモリアクセスシステムの制御方法。
  12. メモリと、前記メモリにアクセスする複数のマスターとを備えるメモリアクセスシステムの制御方法であって、
    監視手段が、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視工程と、
    メモリアクセス制御手段が、前記監視工程で監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断し、前記使用メモリ帯域が前記第1の閾値以上であると判断すると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御工程と
    を実行することを特徴とするメモリアクセスシステムの制御方法。
  13. メモリと、前記メモリにアクセスする複数のマスターとを備えるメモリアクセスシステムの制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
    監視手段が、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視工程と、
    判断手段が、前記監視工程で監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断する判断工程と、
    メモリアクセス制御手段が、前記判断工程で前記使用メモリ帯域が前記第1の閾値以上であると判断されると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御工程と
    を実行することを特徴とするプログラム。
  14. メモリと、前記メモリにアクセスする複数のマスターとを備えるメモリアクセスシステムの制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
    監視手段が、前記メモリと前記複数のマスターとの間で使用されているメモリ帯域の合計を示す使用メモリ帯域を監視する監視工程と、
    メモリアクセス制御手段が、前記監視工程で監視されている前記使用メモリ帯域が第1の閾値以上であるか否かを判断し、前記使用メモリ帯域が前記第1の閾値以上であると判断すると、前記複数のマスターのうち優先度の低いマスターによる前記メモリへのアクセスを制限するメモリアクセス制御工程と
    を実行することを特徴とするプログラム。
  15. 画像形成装置であって、
    請求項1乃至10の何れか1項に記載のメモリアクセスシステムと、
    画像処理を実行する画像処理手段と、
    原稿から画像を読み取るスキャナと、
    記録媒体へ画像を形成するプリンタと
    を備えることを特徴とする画像形成装置。
  16. 前記画像処理手段に関わる処理は、非リアルタイムでの前記メモリへのアクセスによるデータ転送を実行し、
    前記スキャナ及び前記プリンタに関わる処理は、リアルタイムでの前記メモリへのアクセスによるデータ転送を実行することを特徴とする請求項15に記載の画像形成装置。
JP2017012541A 2017-01-26 2017-01-26 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 Active JP6886301B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017012541A JP6886301B2 (ja) 2017-01-26 2017-01-26 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
EP18150139.6A EP3355199B1 (en) 2017-01-26 2018-01-03 Memory access system, method for controlling the same, computer-readable storage medium, and image forming appratus
KR1020180003626A KR102372289B1 (ko) 2017-01-26 2018-01-11 메모리 액세스 시스템, 그 제어방법, 컴퓨터 판독가능한 기억매체, 및 화상 형성장치
US15/876,314 US11163711B2 (en) 2017-01-26 2018-01-22 Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus
CN201810062812.7A CN108363669B (zh) 2017-01-26 2018-01-23 存储器访问系统、其控制方法、存储介质及图像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017012541A JP6886301B2 (ja) 2017-01-26 2017-01-26 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置

Publications (3)

Publication Number Publication Date
JP2018120490A true JP2018120490A (ja) 2018-08-02
JP2018120490A5 JP2018120490A5 (ja) 2020-03-12
JP6886301B2 JP6886301B2 (ja) 2021-06-16

Family

ID=60990624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017012541A Active JP6886301B2 (ja) 2017-01-26 2017-01-26 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置

Country Status (5)

Country Link
US (1) US11163711B2 (ja)
EP (1) EP3355199B1 (ja)
JP (1) JP6886301B2 (ja)
KR (1) KR102372289B1 (ja)
CN (1) CN108363669B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6681244B2 (ja) * 2016-03-30 2020-04-15 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
KR102316154B1 (ko) * 2019-12-30 2021-10-22 서울대학교산학협력단 지역성을 보존하는 메모리 아비터
CN113515473A (zh) * 2020-04-09 2021-10-19 珠海全志科技股份有限公司 一种QoS控制方法、总线系统、计算装置和存储介质
CN111541622A (zh) * 2020-04-17 2020-08-14 西安万像电子科技有限公司 数据传输方法及装置
CN114167972A (zh) * 2020-08-21 2022-03-11 深圳市中兴微电子技术有限公司 存储器的访问方法、模块、控制器、系统和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066995A (ja) * 1998-08-18 2000-03-03 Matsushita Electric Ind Co Ltd バス調停方法および装置とその利用装置およびシステム
JP2000148670A (ja) * 1998-11-06 2000-05-30 Nec Corp バスアクセス調停システム
JP2003006139A (ja) * 2001-06-25 2003-01-10 Nec Microsystems Ltd Dma転送装置
JP2005316608A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2009043089A (ja) * 2007-08-09 2009-02-26 Ricoh Co Ltd バス制御装置及びバス制御方法
WO2009139109A1 (ja) * 2008-05-13 2009-11-19 パナソニック株式会社 メモリ制御装置、およびこれを備えた情報処理装置
JP2010039767A (ja) * 2008-08-05 2010-02-18 Canon Inc 組込みシステム
JP2011095967A (ja) * 2009-10-29 2011-05-12 Yamaha Corp バス共有システム
JP2012003636A (ja) * 2010-06-18 2012-01-05 Canon Inc 電子機器及びその制御方法
JP2016090869A (ja) * 2014-11-07 2016-05-23 カシオ計算機株式会社 処理装置、処理方法、プログラム、楽音発生装置および電子楽器
WO2017056132A1 (ja) * 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771358A (en) * 1996-07-15 1998-06-23 Micron Electronics, Inc. Method and system for apportioning computer bus bandwidth
US5784569A (en) * 1996-09-23 1998-07-21 Silicon Graphics, Inc. Guaranteed bandwidth allocation method in a computer system for input/output data transfers
US6460125B2 (en) * 1998-08-07 2002-10-01 Ati Technologies, Inc. Dynamic memory clock control system and method
US8799902B2 (en) * 2007-04-09 2014-08-05 Intel Corporation Priority based throttling for power/performance quality of service
JP5074820B2 (ja) 2007-05-22 2012-11-14 ルネサスエレクトロニクス株式会社 画像処理装置および画像処理方法
US8190763B2 (en) * 2007-09-14 2012-05-29 At&T Intellectual Property I, Lp System and method for trouble detection, isolation, and management
JP2009075942A (ja) 2007-09-21 2009-04-09 Fujifilm Corp Dmaコントローラ
US8032678B2 (en) * 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
US8812889B2 (en) 2010-05-05 2014-08-19 Broadcom Corporation Memory power manager
JP2013196667A (ja) * 2012-03-23 2013-09-30 Ricoh Co Ltd 画像処理装置
US9800483B2 (en) * 2012-04-13 2017-10-24 CirrusWorks, Inc. Method and apparatus for dynamic bandwidth allocation for optimizing network utilization
JP6175794B2 (ja) * 2013-02-19 2017-08-09 株式会社リコー データ処理装置およびデータ処理方法
JP5949740B2 (ja) * 2013-12-19 2016-07-13 コニカミノルタ株式会社 画像処理装置
US10193831B2 (en) 2014-01-30 2019-01-29 Marvell Israel (M.I.S.L) Ltd. Device and method for packet processing with memories having different latencies
US20150378424A1 (en) * 2014-06-27 2015-12-31 Telefonaktiebolaget L M Ericsson (Publ) Memory Management Based on Bandwidth Utilization
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US10491531B2 (en) * 2016-09-13 2019-11-26 Gogo Llc User directed bandwidth optimization
GB2560548B (en) * 2017-03-15 2021-01-13 Advanced Risc Mach Ltd Video data processing system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066995A (ja) * 1998-08-18 2000-03-03 Matsushita Electric Ind Co Ltd バス調停方法および装置とその利用装置およびシステム
JP2000148670A (ja) * 1998-11-06 2000-05-30 Nec Corp バスアクセス調停システム
JP2003006139A (ja) * 2001-06-25 2003-01-10 Nec Microsystems Ltd Dma転送装置
JP2005316608A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2009043089A (ja) * 2007-08-09 2009-02-26 Ricoh Co Ltd バス制御装置及びバス制御方法
WO2009139109A1 (ja) * 2008-05-13 2009-11-19 パナソニック株式会社 メモリ制御装置、およびこれを備えた情報処理装置
JP2010039767A (ja) * 2008-08-05 2010-02-18 Canon Inc 組込みシステム
JP2011095967A (ja) * 2009-10-29 2011-05-12 Yamaha Corp バス共有システム
JP2012003636A (ja) * 2010-06-18 2012-01-05 Canon Inc 電子機器及びその制御方法
JP2016090869A (ja) * 2014-11-07 2016-05-23 カシオ計算機株式会社 処理装置、処理方法、プログラム、楽音発生装置および電子楽器
WO2017056132A1 (ja) * 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
EP3355199A1 (en) 2018-08-01
CN108363669A (zh) 2018-08-03
CN108363669B (zh) 2021-10-22
JP6886301B2 (ja) 2021-06-16
KR20180088279A (ko) 2018-08-03
KR102372289B1 (ko) 2022-03-08
US11163711B2 (en) 2021-11-02
EP3355199B1 (en) 2023-05-24
US20180210849A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
KR102372289B1 (ko) 메모리 액세스 시스템, 그 제어방법, 컴퓨터 판독가능한 기억매체, 및 화상 형성장치
US9509866B2 (en) Image forming apparatus that executes fax job concurrently with print job while reducing delay in fax job processing, job execution method, and storage medium
EP2863618B1 (en) Image forming apparatus that guarantees a multi-operation
JP2009043089A (ja) バス制御装置及びバス制御方法
US8582153B2 (en) Image forming apparatus and method
US9292459B2 (en) Operation analysis apparatus, operation analysis method, and computer program product
US20180213103A1 (en) Image processing apparatus, method of controlling the same, and storage medium
JP4909839B2 (ja) 画像処理装置及び画像処理方法
JP2010098426A (ja) 制御装置、画像形成装置、およびプログラム
JP4034323B2 (ja) 画像データ処理方法と画像データ処理装置及び画像形成装置
US9197782B2 (en) Image processing device and image processing method
JP2019197299A (ja) 情報処理装置のメモリシステム、情報処理装置のメモリシステムの制御方法及びプログラム
JP4468754B2 (ja) 画像形成装置及びメモリ制御方法
US10306099B2 (en) Information processing apparatus and semiconductor integrated circuit
JP2019200626A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JPH11331528A (ja) 画像処理装置
JP2019200679A (ja) 画像形成装置、帯域モニター装置、及び帯域モニター方法
JP5494055B2 (ja) 画像形成装置、制御方法、プログラム及び記録媒体
JP2005182505A (ja) データ転送制御装置および画像形成装置
JP4671357B2 (ja) 画像転送方法,装置および画像形成装置
JP6085942B2 (ja) 情報処理装置、画像形成装置、データ処理方法
JP2015225536A (ja) 情報処理装置、メモリーアクセス調停方法
JP2006018406A (ja) 画像形成装置
JP2004080135A (ja) 画像処理装置
JP2005182156A (ja) 画像転送装置及び画像転送方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210104

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210304

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210514

R151 Written notification of patent or utility model registration

Ref document number: 6886301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151