JP7083004B2 - データ出力方法、データ取得方法、装置および電子機器 - Google Patents

データ出力方法、データ取得方法、装置および電子機器 Download PDF

Info

Publication number
JP7083004B2
JP7083004B2 JP2020107989A JP2020107989A JP7083004B2 JP 7083004 B2 JP7083004 B2 JP 7083004B2 JP 2020107989 A JP2020107989 A JP 2020107989A JP 2020107989 A JP2020107989 A JP 2020107989A JP 7083004 B2 JP7083004 B2 JP 7083004B2
Authority
JP
Japan
Prior art keywords
data
subblock
data subblock
compression
gain
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
JP2020107989A
Other languages
English (en)
Other versions
JP2021111320A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021111320A publication Critical patent/JP2021111320A/ja
Application granted granted Critical
Publication of JP7083004B2 publication Critical patent/JP7083004B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3064Segmenting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Databases & Information Systems (AREA)

Description

本願は、コンピュータ技術のニューラルネットワーク技術分野に係り、特にデータ出力方法、データ取得方法、装置および電子機器に関する。
現在、ニューラルネットワークが広く利用されており、たとえば深層畳み込みニューラルネットワークCDNN(Convolutional Deep Nueral Networks)は、音声認識、画像認識、自然言語処理等のインターネット用途に広く利用されている。しかしながら、ニューラルネットワーク計算は、ニューラルネットワークプロセッサNPU(Neural Processing Unit)内で行われることが多く、ニューラルネットワーク計算を実行した後、計算結果をオフチップメモリに戻す必要がある。オフチップメモリの帯域幅が制限されるため、多くの実際のトラフィックシナリオでは、オフチップとオンチップの間のデータ搬送時間が実際の計算時間を超え、ニューラルネットワークの性能が比較的悪くなる。
発明の内容
解決しようとする技術課題
本願は、データ出力方法、データ取得方法、装置および電子機器を提供して、ニューラルネットワークの性能が比較的悪いという問題を解決する。
課題を解決するための手段
第1態様において、本願は、データ出力方法を提供する。
当該方法は、ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングすることと、前記連続なデータストリームを圧縮して第2データサブブロックを得ることと、前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断することと、前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力することと、を含む。
ニューラルネットワーク搬送データのデータサブブロックを圧縮し、かつ圧縮に利得が存在する場合に、圧縮後のデータを出力することで、データ搬送効率を高め、ニューラルネットワークの性能を高めることができる。
選択可能に、前記の前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断することは、前記第1データサブブロックの長さ、目的アドレスおよびメモリバスビット幅に基づいて、前記第1データサブブロックの伝送に必要なビート(beat)数を算出し、前記第2データサブブロックの長さ、前記目的アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第1データサブブロックの伝送に必要なビート数より小さくなるのであれば、前記連続なデータストリームに対する圧縮に利得が存在すると決定し、そうでなければ、前記連続なデータストリームに対する圧縮に利得が存在しないと決定することを含む。前記目的アドレスは、前記第1データサブブロックの目的アドレスである。
当該実施形態では、上記伝送に必要なビート数によって、圧縮利得が存在するかを正確に決定することができる。
選択可能に、前記方法は、長さフィールドを記憶することをさらに含み、前記長さフィールドは、前記第1データサブブロックの長さと前記第2データサブブロックの長さのうちの小さいほうの値を示し、かつデータ読み取りの際に前記長さフィールドに対応するデータサブブロックを読み取ることに用いられる。
当該実施形態では、長さフィールドを記憶するため、データを読み取る際に、データサブブロックを正確に読み取ることができる。
選択可能に、前記方法において、前記第2データサブブロックを出力するのであれば、前記第2データサブブロックのフラグビットを記憶することをさらに含み、前記記憶されるフラグビットは、前記第2データサブブロックの圧縮時に圧縮利得が存在するかを示すことに用いられる。
フラグビットを記憶するため、第2データサブブロックを読み取る際に、解凍が必要であるかを正確に判断することで、解凍ミスを避け、データ処理性能を高めることができる。
選択可能に、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含み、各第1タイプデータサブブロックのサイズが同じであり、前記の前記連続なデータストリームを圧縮して第2データサブブロックを得ることは、前記第1データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第1データサブブロックが第1タイプデータサブブロックであれば、前記連続なデータストリームを圧縮して第2データサブブロックを得ることを含む。
当該実施形態では、第1タイプデータサブブロックのみを圧縮することが実現できるため、圧縮対象のデータサブブロックに圧縮利得が存在する確率を高め、データ圧縮性能を高めることができる。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含み、前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
当該実施形態では、第2タイプデータサブブロックと第3タイプデータサブブロックを圧縮しないため、圧縮対象のデータサブブロックに圧縮利得が存在する確率を高め、データ圧縮性能を高めることができる。
選択可能に、前記方法は、前記連続なデータストリームに対する圧縮に利得が存在しないのであれば、前記第1データサブブロックを出力することをさらに含む。
当該実施形態では、前記連続なデータストリームに対する圧縮に利得が存在しない場合には、前記第1データサブブロックを出力するため、利得が存在しない場合の第2データサブブロックの出力によるデータ搬送効率低下問題を避けることができる。
第2態様において、本願は、データ取得方法を提供する。
当該方法において、第2データサブブロックの長さを読み取ることと、第2データサブブロックを読み取ることと、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することと、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶することと、を含む。
選択可能に、前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、または、前記第2データサブブロックのフラグビットを読み取り、前記フラグビットに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、前記フラグビットは、前記第2データサブブロックが圧縮される際に圧縮利得が存在するかを示すことに用いられる。
選択可能に、前記の前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックに対応するオリジナル長さ、記憶アドレスおよびメモリバスビット幅に基づいて、前記第2データサブブロックの元データ伝送に必要なビート数を算出し、前記第2データサブブロックの長さ、前記記憶アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第2データサブブロックの元データ伝送に必要なビート数より小さくなるのであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであると判断し、そうでなければ、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックではないと判断することを含む。前記記憶アドレスが前記第2データサブブロックの記憶アドレスである。
選択可能に、前記第2データサブブロックは、ニューラルネットワーク搬送データのデータサブブロックであり、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含み、各第1タイプデータサブブロックのサイズが同じであり、前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第2データサブブロックが第1タイプデータサブブロックであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含む。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含み、前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
選択可能に、前記方法において、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックでなければ、前記第2データサブブロックを記憶することをさらに含む。
第3態様において、本願は、データ出力装置を提供する。
当該データ出力装置は、ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングするための読み取りモジュールと、前記連続なデータストリームを圧縮して第2データサブブロックを得るための圧縮モジュールと、前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断するための判断モジュールと、前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力するための第1出力モジュールと、を含む。
第4態様において、本願は、データ取得装置を提供する。
当該データ取得装置は、第2データサブブロックの長さを読み取るための第1読み取りモジュールと、第2データサブブロックを読み取るための第2読み取りモジュールと、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断するための判断モジュールと、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶するための解凍モジュールと、を含む。
第5態様において、本願は、電子機器を提供する。
当該電子機器は、少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサと通信可能に接続するメモリとを含み、前記メモリには、前記少なくとも一つのプロセッサによって実行可能な指令が格納され、前記指令が前記少なくとも一つのプロセッサにより実行されることによって、本願によるデータ出力方法を前記少なくとも一つのプロセッサに実行させることを可能にし、または、本願によるデータ取得方法を前記少なくとも一つのプロセッサに実行させることを可能にする。
第6態様において、本願は、コンピュータ指令が格納されている非一時的コンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ指令は、本願によるデータ出力方法を前記コンピュータに実行させることに用いられ、または、本願によるデータ取得方法を前記コンピュータに実行させることに用いられることを特徴とする。
発明の効果
ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングする。前記連続なデータストリームを圧縮して第2データサブブロックを得る。前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断する。前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力する。よって、ニューラルネットワークの性能が比較的悪いという技術課題を克服し、さらにニューラルネットワークの性能を高めるという技術効果を達成する。
上記の選択可能な形態による他の効果は、以下、具体的な実施例に関連して説明される。
図面は、本解決策をより良く理解するために使用され、本願を限定するものではない。
図1は、本願によるデータ出力方法のフローチャートである; 図2は、本願による別のデータ出力方法のフローチャートである; 図3は、本願によるデータサブブロックの分割概略図である; 図4は、本願によるデータサブブロックのデータストリーム概略図である; 図5は、本願によるデータサブブロックの圧縮概略図である; 図6は、本願による別のデータサブブロックの分割概略図である; 図7は、本願によるデータ取得方法のフローチャートである; 図8は、本願による別のデータ出力方法のフローチャートである; 図9は、本願による別のデータ取得方法のフローチャートである; 図10は、本願によるデータ出力装置の構造図である; 図11は、本願による別のデータ出力装置の構造図である; 図12は、本願による別のデータ出力装置の構造図である; 図13は、本願による別のデータ出力装置の構造図である; 図14は、本願によるデータ取得装置の構造図である; 図15は、本願による別のデータ取得装置の構造図である; 図16は、本願による電子機器のブロック図である。
以下、理解に役立つための本願の実施例の様々な細部を含めて本願の例示的な実施例は、図面に基づいて説明されるが、例示的なものに過ぎないと理解されるべきである。したがって、当業者は、本願の範囲および趣旨から逸脱することなく、ここに記載された実施例に様々な変更および修正を加えることができることを認識するであろう。説明の明確化および簡略化のため、以下の記載では、周知の機能および構成についての記載は省略される。
図1を参照する。図1は、本願によるデータ出力方法のフローチャートであり、図1に示すように、以下のステップを含む。
ステップS101において、ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングする。
上記ニューラルネットワーク搬送データは、ニューラルネットワーク計算を実行して得られるデータであり、たとえば重み行列または特徴マップ(feature map)などのデータである。前記データサブブロックは、前記搬送データを分割して得られる複数のデータサブブロックのうちのデータサブブロックである。
上記第1データサブブロックのアドレス情報は、不連続アドレス情報である。すなわち、第1データサブブロックは、アドレスが不連続であるデータを含む。上記の第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングすることは、前記読み取った第1データサブブロックのシフトおよびスプライシング処理を行うことで、前記第1データサブブロックの連続で完全なデータストリームを得ることである。たとえば、第1データサブブロックのアドレス情報にしたがって第1データサブブロックのデータを飛ばしながら読み取り、読み取ったデータを連続で完全なデータストリームにスプライシングする。ここの連続で完全なデータストリームは、データ同士が連続するものを指し、かつ第1データサブブロックのすべてのデータを含む。
前記第1データサブブロックを連続なデータストリームにスプライシングするため、不連続データの圧縮をサポートし、圧縮処理のデータサブブロックのサイズを大きくすることで、さらに圧縮処理効率を高めることができる。
ステップS102において、前記連続なデータストリームを圧縮して第2データサブブロックを得る。
ステップS102で前記連続なデータストリームを圧縮するために使用される圧縮アルゴリズムは、限定されないが、ゼロ圧縮、ランレングス符号化、ハフマン符号化、コリム符号化などの圧縮アルゴリズムを含み、具体的に本願では圧縮アルゴリズムを限定しない。
上記第2データサブブロックは、上記連続なデータストリームを圧縮して得られた圧縮データであると理解される。
ステップS103において、前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断する。
前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断することは、第2データサブブロックの長さが第1データサブブロックの長さより小さいかを判断し、そうである場合、前記連続なデータストリームに対する圧縮に利得が存在すると決定するが、そうでなければ、圧縮利得が存在しないと決定する。
または、前記第1データサブブロックの長さ、目的アドレスおよびメモリバスビット幅に基づいて、前記第1データサブブロックの伝送に必要なビート数を算出するとともに、前記第2データサブブロックの長さ、前記目的アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第1データサブブロックの伝送に必要なビート数より小さくなるのであれば、前記連続なデータストリームに対する圧縮に利得が存在すると決定し、そうでなければ、前記連続なデータストリームに対する圧縮に利得が存在しないと決定する。前記目的アドレスは、前記第1データサブブロックの目的アドレスである。
第2データサブブロックは、第1データサブブロックを圧縮して得られるため、両者の目的アドレスは、相関がある。
上記の前記第1データサブブロックの長さ、目的アドレスおよびメモリバスビット幅に基づいて、前記第1データサブブロックの伝送に必要なビート数を算出することは、まず目的アドレスとメモリバスビット幅に基づいて、第1データサブブロックの第1行で伝送されるデータのサイズを決定する。たとえば、第1行の先頭アドレスがメモリバスビット幅に揃うのであれば、第1行で伝送されるデータのサイズはメモリバスビット幅に等しく、第1ビートで伝送されるデータのサイズは、メモリバスビット幅に等しい。第1行の先頭アドレスがメモリバスビット幅に揃わないのであれば、第1行で伝送されるデータのサイズは第1行の先頭アドレスからメモリバスビット幅の境界までのデータサイズに等しく、第1ビートで伝送されるデータのサイズは、第1行の先頭アドレスからメモリバスビット幅の境界までのデータサイズに等しい。ほかに行がある場合、第1行で伝送されるデータのサイズが決定された後に、第1データサブブロックの余剰データサイズをメモリバスビット幅で除算し、得られる商をラウンドアップすると、余剰のビート数を得ることができる。第2データサブブロックの伝送に必要なビート数は同様であり、ここではその説明を省略する。
たとえば、1024Bのアドレスが揃ったデータ(先頭アドレスがメモリバスビット幅に揃う)の場合、バスビット幅が64Bであると、バスでのデータ伝送を完成するには16ビートが必要であり、圧縮後のデータの長さが960Bに変わるのであれば、圧縮後データの伝送を完成するには15ビートがあればよく、この場合、圧縮によって当該ベースブロックに利得があると定義する。圧縮後データの長さが961Bに変わるのであれば、圧縮後データの伝送を完成させるには相変わらず16ビートが必要であり、元データをそのまま伝送する場合とは区別がなく、圧縮によって当該ベースブロックに利得がないと定義する。
ステップS104において、前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力する。
上記の前記第2データサブブロックを出力することは、たとえば、第2データサブブロックをメモリに書き込むこと、具体的には、オフチップメモリに書き込むことによって、第2データサブブロックの書き込み処理を実行することである。
本願によるデータ出力方法は、ニューラルネットワーク計算のためのチップ(またはプロセッサと呼ぶ)、たとえば、ニューラルネットワークプロセッサNPU(Neural processing Unit)やハードウェアアクセラレータに適用可能である。
本願では、上記ステップによりニューラルネットワーク搬送データのデータサブブロックを圧縮し、かつ圧縮に利得が存在する場合に、圧縮後のデータを出力することが実現され、データ搬送の効率を向上させ、さらにニューラルネットワークの性能を向上させることができる。
図2を参照する。図2は、本願による別のデータ出力方法のフローチャートであり、図2に示すように、以下のステップを含む。
ステップS201において、ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングする。
上記の第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングすることは、第1データサブブロックのアドレスを並べ替えることによって、第1データサブブロックからスプライシングされる連続なデータストリームを得ることである。たとえば、図3に示すように、ニューラルネットワーク搬送データは、データサブブロックa~uを含み、これらのデータサブブロックのアドレスが不連続である。ステップ201によってこれらのデータサブブロックのアドレスを並べ替えることによって、図3の右側で示される各データサブブロックの連続なデータストリームを得る。メモリの角度から図4に示すデータストリームとして表現できる。
ステップS202において、前記連続なデータストリームを圧縮して第2データサブブロックを得る。
本願では、異なる連続なデータストリームの圧縮効果が異なる。たとえば、図5に示すように、図3における各データサブブロックのデータストリームを図5の左側に示されるデータストリームに圧縮することができる。図5の灰色部分は、圧縮後の無効記憶アドレス(無効データ部分と呼ばれてもよい)を示す。図5の右側に示すように、圧縮後のデータの長さを記憶するために、1Bの長さ記憶アドレスを各データサブブロックに配置してもよい。具体的には、1Bの長さ記憶アドレスを各第1タイプデータサブブロック(ベースブロック)に配置する。
選択可能に、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含む。各第1タイプデータサブブロックのサイズは同じである。前記の前記連続なデータストリームを圧縮して第2データサブブロックを得ることは、前記第1データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第1データサブブロックが第1タイプデータサブブロックであれば、前記連続なデータストリームを圧縮して第2データサブブロックを得ることを含む。
前記第1データサブブロックが第1タイプデータサブブロックであるかを判断することは、データサブブロックの配置情報に基づいて決定される。当該配置情報は、各データサブブロックのタイプ情報を含む。もちろん、アドレスの並べ替え情報に基づいて判断してもよいが、本願ではこれについて限定しない。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含む。前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
上記第1タイプデータサブブロックは、ベースブロックと呼ばれ、第2タイプサブブロックは、アラインメントブロックと呼ばれ、第3タイプデータサブブロックは、リマッピングレスブロックと呼ばれる。上記第2タイプデータサブブロックは、上記ニューラルネットワーク搬送データの列数を第1タイプデータサブブロックの列数で割り切れない場合、余剰のデータ列を第1タイプデータサブブロックの行数にしたがって分割して得られるデータサブブロックである。第3タイプデータサブブロックは、上記ニューラルネットワーク搬送データの列数を第1タイプデータサブブロックの行数で割り切れない場合に、余剰となるデータ行からなるデータサブブロックである。たとえば、図6に示す13*1151サイズのマトリクスデータを、図6に示すように、ベースブロック、アラインメントブロック、リマッピングレスブロックのデータサブブロックに分割することができる。((0,0)、(11,1023))は、a、b、c、d、f、g、h、i、k、l、m、nの計12個のベースブロックを含み、((0,1024),(11,1151) )は、e、j、oの計3つのアラインメントブロックを含み、((12,0),(12,1151))pは、リマッピングレスブロックである。
当該実施形態では、ニューラルネットワーク搬送データを分割して複数の第1タイプデータサブブロックを含むことで、オンチップキャッシュが小さいためにニューラルネットワーク搬送データがオンチップキャッシュしきれないという問題を回避することができる。第1タイプデータサブブロックは、分割されたデータサブブロックであるため、オンチップキャッシュして上記圧縮処理を行うことができ、ニューラルネットワークのデータ処理性能を向上させることができる。第2タイプデータサブブロックおよび第3タイプデータサブブロックを圧縮しないため、第2タイプデータサブブロックおよび第3タイプデータサブブロックが小さすぎて実際の圧縮利得が制限されることに起因する不要な圧縮を回避することができる。一方、第2タイプデータサブブロックと第3タイプデータサブブロックとが細粒度のランダムアクセスを実現することを保証することもできる。
ステップS203において、前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断する。
ステップS204において、前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力する。
選択可能に、長さフィールドを記憶する。前記長さフィールドは、前記第1データサブブロックの長さと前記第2データサブブロックの長さのうちの小さいほうの値を示し、かつデータ読み取りの際に前記長さフィールドに対応するデータサブブロックを読み取ることに用いられる。
たとえば、第2データサブブロックを出力すると、上記長さフィールドは、第2データサブブロックの長さを示す。たとえば、第1データサブブロックを出力すると、上記長さフィールドは、第1データサブブロックの長さを示す。
上記長さフィールドによって、データサブブロックを読み取る際にデータサブブロックを正しく読み取ることができる。上記記憶は、オンチップ記憶であり、または、オフチップメモリに記憶する。上記長さフィールドの記憶位置は、ステップS205の実行前に配置された記憶位置である。具体的には、各データサブブロックには、各自の長さ記憶位置が対応する。各第1タイプデータサブブロックには各自の長さ記憶位置が対応することが好ましい。
選択可能に、前記第2データサブブロックを出力するのであれば、前記第2データサブブロックのフラグビットを記憶する。前記記憶されるフラグビットは、前記第2データサブブロックの圧縮時に圧縮利得が存在するかを示すことに用いられる。
フラグビットを記憶するため、第2データサブブロックを読み取る際に、解凍が必要であるかを正しく判断することで、解凍ミスを避け、データ処理性能を高めることができる。
ステップS205において、前記連続なデータストリームに対する圧縮に利得が存在しないのであれば、前記第1データサブブロックを出力する。
選択可能に、前記第1データサブブロックを出力するのであれば、前記第1データサブブロックのフラグビットを記憶する。前記記憶されるフラグビットは、前記第1データサブブロックの圧縮時に圧縮利得が存在するかを示すことに用いられる。
前記連続なデータストリームに対する圧縮に利得が存在しない場合、そのまま第1データサブブロックをメモリに書き込み、たとえば、外部メモリに書き込む。
当該実施形態において、前記連続なデータストリームに対する圧縮に利得が存在しないのであれば、前記第1データサブブロックを出力するため、利得が存在しない場合に第2データサブブロックの出力によるデータ搬送効率低下問題を避けることができる。
本実施例において、図1に示す実施例を基に多種類の選択可能な実施形態を追加しており、いずれもニューラルネットワークの性能を高めることができる。
図7を参照する。図7は、本願によるデータ取得方法のフローチャートであり、図7に示すように、以下のステップを含む。
ステップS701において、第2データサブブロックの長さを読み取る。
ステップS702において、第2データサブブロックを読み取る。
ステップS702において、メモリから第2データサブブロックを読み取り、オフチップメモリから第2データサブブロックを読み取る。
ステップS703において、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断する。
上記第2データサブブロックは、図1と図2に示す実施例の第2データサブブロックである。
第2データサブブロックが圧縮データであれば、上記第2データサブブロックに対応するオリジナル長さは、第2データサブブロックの圧縮される前の第1データサブブロックの長さである。第2データサブブロックが圧縮データでなければ、上記第2データサブブロックに対応するオリジナル長さは、第2データサブブロックの長さであるか、ヌルである。上記第2データサブブロックに対応するオリジナル長さは、図1と図2に示す実施例における第1データサブブロックの長さと等価である。
上記圧縮利得について、図1と図2に示す実施例の関連説明を参照し、ここではその説明を省略する。
選択可能に、前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、または、前記第2データサブブロックのフラグビットを読み取り、前記フラグビットに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、前記フラグビットは、前記第2データサブブロックが圧縮される際に圧縮利得が存在するかを示すことに用いられる。
前記の前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックに対応するオリジナル長さ、記憶アドレスおよびメモリバスビット幅に基づいて、前記第2データサブブロックの元データ伝送に必要なビート数を算出するとともに、前記第2データサブブロックの長さ、前記記憶アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第2データサブブロックの元データ伝送に必要なビート数より小さくなるのであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであると判断し、そうでなければ、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックではないと判断することを含む。前記記憶アドレスは、前記第2データサブブロックの記憶アドレスである。
当該実施形態について、図1に示す実施例の関連説明を参照し、ここではその説明を省略する。
ステップS704において、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶する。
上記の前記解凍後のデータを記憶することは、解凍後のデータをオンチップキャッシュに記憶し、具体的にはオンチップキャッシュの所定位置または所望位置に記憶する。
本願によるデータ取得方法は、NPUやハードウェアアクセラレータなどのニューラルネットワーク計算用のチップ(プロセッサともいう)に適用することができる。
本願では、上記ステップにより、読み取ったデータが圧縮済みでかつ圧縮利得の存在するデータであることが実現され、データ搬送効率を高め、さらにニューラルネットワークの性能を向上させることができる。
選択可能に、前記第2データサブブロックは、ニューラルネットワーク搬送データのデータサブブロックであり、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含む。各第1タイプデータサブブロックのサイズが同じである。
前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、前記第2データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第2データサブブロックが第1タイプデータサブブロックであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含む。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含む。前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
当該実施形態について、図2に示す実施例の関連説明を参照し、ここではその説明を省略し、同じ効果を達成することもできる。
選択可能に、前記方法において、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックでなければ、前記第2データサブブロックを記憶することをさらに含む。
上記の前記第2データブロックを記憶することは、第2データサブブロックをそのままオンチップキャッシュの所定位置または所望位置に記憶することである。
当該実施形態において、前記第2データサブブロックが圧縮済みで圧縮利得の存在するデータサブブロックでなければ、前記第2データサブブロックを記憶するため、当該場合に第2データサブブロックの解凍による解凍ミスを避けることができる。
本願では、上記ステップにより、読み取ったデータが圧縮済みで圧縮利得の存在するデータであることが実現され、データ搬送効率を高め、さらにニューラルネットワークの性能を向上させることができる。
図8を参照する。図8は、本願による別のデータ出力方法のフローチャートであり、図8に示すように、以下のステップを含む。
ステップS801において、圧縮後ベースブロックの長さを記憶するためのデータ空間を割り当てる。
ステップS802において、アドレス並べ替え規則にしたがってデータを取得し、ブロックデータを完全なデータストリームに編成する。
ステップS803において、現在処理しているサブブロックが属するサブブロックタイプを判断し、当該サブブロックがベースブロックであればステップS804を実行し、そうでなければステップS808にジャンプする。
ステップS804において、選択された圧縮アルゴリズムにしたがって、元データを圧縮し、ベースブロックの圧縮後データ長を得る。
ステップS805において、元データ長と圧縮後のデータ長から、圧縮に利得があるか否かを判断し、圧縮に利得があればステップS806を実行し、圧縮が利得がない場合、ステップS808を実行する。
ステップS806において、圧縮後のデータを選択して出力し、アドレス並べ替え規則で規定される位置にデータを格納し、計算した圧縮後データ長を、ステップS801で割り当てたデータ位置に記憶する。
ステップS807において、元データ長をステップS801で割り当てたデータ位置に記憶する。
ステップS808において、圧縮されなかった元データをアドレス並べ替え規則で規定された位置に格納する。
ステップS809において、現在のサブブロックの処理を完了する。
ステップS8010において、処理対象サブブロックがまだあるかを判断し、そうであれば、ステップS802を実行し、次の処理対象サブブロックがなければ終了する。
図9を参照する。図9は、本願による別のデータ取得方法のフローチャートであり、図9に示すように、以下のステップを含む。
ステップS901において、現在処理されているサブブロックが属するサブブロックタイプを判断し、当該サブブロックがベースブロックである場合、ステップS902を実行し、当該サブブロックがベースブロックでない場合、ステップS907を実行する。当該ステップは、アドレス並べ替え規則に基づいて、現在処理中のサブブロックが属するサブブロックタイプを判断し、または、データサブブロックの配置情報に基づいて、サブブロックが属するサブブロックタイプを判断することである。
ステップS902において、データ圧縮時に割り当てられたベースブロック長を記憶する位置から、解凍対象サブブロックのデータ長を取得する。
ステップS903において、オフチップメモリからベースブロックデータを読み取る。読み取ったデータ長は、ステップS902で取得される。
ステップS904において、ベースブロックの元データ長とステップS902で取得したデータ長とを比較し、当該ベースブロックが圧縮利得を有するかを判断する。利得が存在する場合、当該ベースブロックが圧縮済みのものであり、ステップS905を実行する。利得がない場合、当該ベースブロックが圧縮されず、ステップS906を実行する。
ステップS905において、データを解凍モジュールに送り、解凍処理を実行して解凍後のデータをオンチップキャッシュの所望位置に記憶する。次いで、ステップS908を実行する。
ステップS906において、データをそのままオンチップキャッシュの所望位置に記憶する。次いで、ステップS908を実行する。
ステップS907において、オフチップメモリから当該サブブロックデータを読み取り、データをオンチップキャッシュの所望位置に記憶する。次いで、ステップS908を実行する。
ステップS908において、現在のサブブロックの処理を完了する。
ステップS909において、処理対象サブブロックがまだあるかを判断し、あればステップS901を実行し、次の処理対象サブブロックがなければ終了する。
図10を参照する。図10は、本願によるデータ出力装置の構造図である。
図10に示すように、データ出力装置1000は、ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングするための読み取りモジュール1001と、前記連続なデータストリームを圧縮して第2データサブブロックを得るための圧縮モジュール1002と、前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断するための判断モジュール1003と、前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力するための第1出力モジュール1004と、を含む。
選択可能に、判断モジュール1003は、前記第1データサブブロックの長さ、目的アドレスおよびメモリバスビット幅に基づいて、前記第1データサブブロックの伝送に必要なビート数を算出するとともに、前記第2データサブブロックの長さ、前記目的アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第1データサブブロックの伝送に必要なビート数より小さくなるのであれば、前記連続なデータストリームに対する圧縮に利得が存在すると決定し、そうでなければ、前記連続なデータストリームに対する圧縮に利得が存在しないと決定することに用いられる。前記目的アドレスは、前記第1データサブブロックの目的アドレスである。
選択可能に、図11に示すように、前記装置は、長さフィールドを記憶するための第1記憶モジュール1005をさらに含む。前記長さフィールドは、前記第1データサブブロックの長さと前記第2データサブブロックの長さのうちの小さいほうの値を示し、データ読み取りの際に前記長さフィールドに対応するデータサブブロックを読み取ることに用いられる。
選択可能に、図12に示すように、前記装置は、前記第2データサブブロックを出力するのであれば、前記第2データサブブロックのフラグビットを記憶するための第2記憶モジュール1006をさらに含み、前記記憶されるフラグビットは、前記第2データサブブロックの圧縮時に圧縮利得が存在するかを示すことに用いられる。
選択可能に、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含む。各第1タイプデータサブブロックのサイズは同じである。
前記圧縮モジュール1002は、前記第1データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第1データサブブロックが第1タイプデータサブブロックであれば、前記連続なデータストリームを圧縮して第2データサブブロックを得ることに用いられる。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含む。前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
選択可能に、図13に示すように、前記装置は、前記連続なデータストリームに対する圧縮に利得が存在しないのであれば、前記第1データサブブロックを出力するための第2出力モジュール1107をさらに含む。
本実施例による装置は、図1と図3に示す方法実施例で実現される各プロセスを実現可能であり、かつ同じ技術効果を達成することができるため、重複を避けるためにここでは説明を省略する。
図14を参照する。図14は、本願によるデータ取得装置の構造図である。
図14に示すように、データ取得装置1400は、第2データサブブロックの長さを読み取るための第1読み取りモジュール1401と、第2データサブブロックを読み取るための第2読み取りモジュール1402と、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断するための判断モジュール1403と、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶するための解凍モジュール1404と、を含む。
選択可能に、判断モジュール1403は、前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することに用いられる。または、判断モジュール1403は、前記第2データサブブロックのフラグビットを読み取り、前記フラグビットに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することに用いられる。
前記フラグビットは、前記第2データサブブロックが圧縮される際に圧縮利得が存在するかを示すことに用いられる。
選択可能に、判断モジュール1403は、前記第2データサブブロックに対応するオリジナル長さ、記憶アドレスおよびメモリバスビット幅に基づいて、前記第2データサブブロックの元データ伝送に必要なビート数を算出するとともに、前記第2データサブブロックの長さ、前記記憶アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、前記第2データサブブロックの伝送に必要なビート数が前記第2データサブブロックの元データ伝送に必要なビート数より小さくなるのであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであると判断し、そうでなければ、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックではないと判断することに用いられる。前記記憶アドレスは、前記第2データサブブロックの記憶アドレスである。
選択可能に、前記第2データサブブロックは、ニューラルネットワーク搬送データのデータサブブロックであり、前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含みむ。各第1タイプデータサブブロックのサイズは同じである。
前記判断モジュール1403は、前記第2データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第2データサブブロックが第1タイプデータサブブロックであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することに用いられる。
選択可能に、前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含む。前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックである。
選択可能に、図15に示すように、装置は、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックでなければ、前記第2データサブブロックを記憶するための記憶モジュール1405をさらに含む。
本実施例による装置は、図7に示す方法実施例で実現される各プロセスを実現可能であり、かつ同じ技術効果を達成することができるため、重複を避けるためにここでは説明を省略する。
本願の実施例に基づき、本願は、電子機器および読み取り可能な記憶媒体をさらに提供する。
図16は、本願の実施例に係るデータ出力方法またはデータ取得方法に基づく電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図される。電子機器は、パーソナルデジタルプロセシング、セルラー電話、スマートフォン、ウェアラブルデバイス、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表してもよい。本明細書に示される構成要素、それらの接続および関係、並びにそれらの機能は、単なる例であり、本明細書に記載および/または特許請求される本願の実施を限定することを意図しない。
図16に示すように、当該電子機器は、1つまたは複数のプロセッサ1601と、メモリ1602と、各構成要素を接続するための、高速インターフェースと低速インターフェースとを含むインターフェースとを含む。各構成要素は、異なるバスで互いに接続され、共通のマザーボード上に実装されてもよいし、必要に応じてほかの形態で実装されてもよい。プロセッサは、インターフェースに結合されたディスプレイデバイスなどの外部入出力装置上にGUIのグラフィカル情報を表示するために、メモリ内またはメモリ上に記憶された指令を含む、電子機器内で実行される指令を処理できる。他の実施形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のメモリとともに使用されてもよい。複数の電子機器が接続され、各機器が必要な動作の一部を提供するようにしてもよい(たとえば、サーバアレイ、ブレードサーバ群、マルチプロセッサシステムとする)。図16では、1つのプロセッサ1601を例に挙げている。
メモリ1602は、本願において提供される非一時的コンピュータ読み取り可能な記憶媒体である。前記メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納され、本願において提供されるデータ出力方法またはデータ取得方法を前記少なくとも1つのプロセッサに実行させる。本願の非一時的コンピュータ読み取り可能な記憶媒体には、本願において提供されるデータ出力方法またはデータ取得方法をコンピュータに実行させるためのコンピュータ指令が格納されている。
メモリ1602は、非一時的コンピュータ読み取り可能な記憶媒体として機能し、非一時的ソフトウェアプログラム、非一時的コンピュータ実行可能プログラム、および、本願の実施例におけるデータ出力方法またはデータ取得方法に対応するプログラム指令/モジュール(たとえば、図10に示される読み取りモジュール1001、圧縮モジュール1002、判断モジュール1003および第1出力モジュール1004、または、図14に示される第1読み取りモジュール1401、第2読み取りモジュール1402、判断モジュール1403および解凍モジュール1404)などのモジュールを記憶するために使用される。プロセッサ1601は、メモリ1602に格納された非一時的ソフトウェアプログラム、指令、モジュールを実行することにより、サーバの各種の機能アプリケーションやデータ処理を実行し、すなわち、上述した方法実施例におけるデータ出力方法またはデータ取得方法を実現する。
メモリ1602は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションを記憶することができるプログラム記憶領域と、データ出力方法またはデータ取得方法に基づく電子機器の使用に応じて作成されたデータ等を記憶することができるデータ記憶領域とを含むことができる。メモリ1602は、高速ランダムアクセスメモリを含んでもよく、少なくとも1つの磁気ディスク記憶装置、フラッシュメモリデバイス、または他の非一時的固体記憶デバイスなどの、非一時的メモリを含んでもよい。いくつかの実施形態において、メモリ1602は、任意選択で、プロセッサ1601に対してリモートに配置されたメモリを含んでもよい。これらのリモートメモリは、データ出力方法またはデータ取得方法の電子機器にネットワークを介して接続されてもよい。上記ネットワークの例としては、インターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワーク、およびこれらの組み合わせが挙げられるが、これらに限定されない。
データ出力方法またはデータ取得方法の電子機器は、入力装置1603と出力装置1604とをさらに備えてもよい。プロセッサ1601、メモリ1602、入力装置1603、出力装置1604は、バスまたはその他の方式で接続されてもよいが、図16ではバスで接続されている例を示している。
入力装置1603は、数字または文字情報の入力を受信し、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ以上のマウスボタン、トラックボール、ジョイスティックなどの入力装置のような、データ出力方法またはデータ取得方法の電子機器のユーザ設定および機能制御に関するキー信号入力を生成することができる。出力装置1604は、ディスプレイ装置、補助照明装置(たとえば、LED)、および触覚フィードバック装置(たとえば、振動モータ)などを含んでもよい。当該表示装置は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、およびプラズマディスプレイを含むが、これらに限定されない。いくつかの実施形態では、表示装置は、タッチスクリーンであってもよい。
ここで説明するシステムおよび技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにおいて実現される。これらの様々な実施形態は、1つまたは複数のコンピュータプログラムで実施することを含む。当該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行および/または解釈可能である。当該プログラマブルプロセッサは、専用または汎用のプログラマブルプロセッサであり、記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび指令を受信し、当該記憶システム、当該少なくとも1つの入力装置、および当該少なくとも1つの出力装置にデータおよび指令を伝送することができる。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラマブルプロセッサの機械指令を含み、これらのコンピュータプログラムは、プロセスおよび/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/機械言語で実施される。本明細書で使用される「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、機械読み取り可能な信号としての機械指令を受信する機械読み取り可能な媒体を含む、プログラマブルプロセッサに機械指令および/またはデータを提供するための任意のコンピュータプログラム製品、機器、および/または装置(たとえば、磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械読み取り可能な信号」という用語は、機械指令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
ユーザとのやり取りを提供するために、ここに記載されたシステムおよび技術は、ユーザに情報を表示するための表示装置(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実施される。他の種類の装置を使用して、ユーザとのやり取りを提供してもよい。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよい。任意の形態(音入力、音声入力、または触覚入力)でユーザからの入力を受信してもよい。
ここに記載のシステムおよび技術は、バックエンド構成要素を含むコンピューティングシステム(たとえば、データサーバとして)、またはミドルウェア構成要素を含むコンピューティングシステム(たとえば、アプリケーションサーバ)、またはフロントエンド構成要素を含むコンピューティングシステム(たとえば、ユーザがここに記載のシステムおよび技術の実施形態とやり取りするグラフィカルユーザインターフェースまたはウェブブラウザを有するユーザコンピュータ)、またはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実施される。システムの構成要素は、任意の形式または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって互いに接続される。通信ネットワークとしては、たとえば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット等が挙げられる。
コンピュータシステムは、クライアントおよびサーバを含む。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを介してやりとりする。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生成される。
本願の実施例の技術的手段によれば、本願では、前記第1データブロックの第1ビートに対し部分書き込みから完全書き込みに調整するため、メモリの書き込み性能を高める。
上記に示された様々な形態のフローが、ステップの順序変更、追加、または削除のために使用されることが理解されるべきである。たとえば、本願に記載された各ステップは、並列に実行されても、順次的に実行されても、異なる順序で実行されてもよいが、本願に開示された技術的解決手段の所望の結果を実現できる限り、本明細書に限定されない。
上記の具体的な実施形態は、本願の保護範囲を制限するようには構成されない。当業者であれば、設計の要件やほかの要素に応じて、様々な修正、組み合わせ、サブ組み合わせ、置換を行うことが明らかである。本願の思想および原理に含まれるあらゆる変更、均等置換および改良等は、本願の範囲に含まれるものとする。

Claims (14)

  1. ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングすることと、
    前記連続なデータストリームを圧縮して第2データサブブロックを得ることと、
    前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断することと、
    前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力することと、を含むことを特徴とする、データ出力方法。
  2. 前記の前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断することは、
    前記第1データサブブロックの長さ、目的アドレスおよびメモリバスビット幅に基づいて、前記第1データサブブロックの伝送に必要なビート数を算出し、
    前記第2データサブブロックの長さ、前記目的アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、
    前記第2データサブブロックの伝送に必要なビート数が前記第1データサブブロックの伝送に必要なビート数より小さくなるのであれば、前記連続なデータストリームに対する圧縮に利得が存在すると決定し、
    そうでなければ、前記連続なデータストリームに対する圧縮に利得が存在しないと決定することを含み、
    前記目的アドレスが、前記第1データサブブロックの目的アドレスであることを特徴とする、請求項1に記載の方法。
  3. 長さフィールドを記憶することをさらに含み、
    前記長さフィールドは、前記第1データサブブロックの長さと前記第2データサブブロックの長さのうちの小さいほうの値を示し、かつデータ読み取りの際に前記長さフィールドに対応するデータサブブロックを読み取ることに用いられることを特徴とする、請求項1に記載の方法。
  4. 前記第2データサブブロックを出力するのであれば、前記第2データサブブロックのフラグビットを記憶することをさらに含み、
    前記記憶されるフラグビットは、前記第2データサブブロックの圧縮時に圧縮利得が存在するかを示すことに用いられることを特徴とする、請求項1に記載の方法。
  5. 前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含み、各第1タイプデータサブブロックのサイズが同じであり、
    前記の前記連続なデータストリームを圧縮して第2データサブブロックを得ることは、
    前記第1データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第1データサブブロックが第1タイプデータサブブロックであれば、前記連続なデータストリームを圧縮して第2データサブブロックを得ることを含むことを特徴とする、請求項1に記載の方法。
  6. 前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含み、
    前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックであることを特徴とする、請求項5に記載の方法。
  7. 前記連続なデータストリームに対する圧縮に利得が存在しないのであれば、前記第1データサブブロックを出力することをさらに含むことを特徴とする、請求項1に記載の方法。
  8. 第2データサブブロックの長さを読み取ることと、
    第2データサブブロックを読み取ることと、
    前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することと、
    前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶することと、を含み、
    前記第2データサブブロックは、ニューラルネットワーク搬送データのデータサブブロックであり、
    前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含み、各第1タイプデータサブブロックのサイズが同じであり、
    前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、
    前記第2データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第2データサブブロックが第1タイプデータサブブロックであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含むことを特徴とする、データ取得方法。
  9. 前記の前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、
    前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、または、
    前記第2データサブブロックのフラグビットを読み取り、前記フラグビットに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することを含み、
    前記フラグビットは、前記第2データサブブロックが圧縮される際に圧縮利得が存在するかを示すことに用いられることを特徴とする、請求項8に記載の方法。
  10. 前記の前記第2データサブブロックの長さに基づいて、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断することは、
    前記第2データサブブロックに対応するオリジナル長さ、記憶アドレスおよびメモリバスビット幅に基づいて、前記第2データサブブロックの元データ伝送に必要なビート数を算出し、
    前記第2データサブブロックの長さ、前記記憶アドレスおよび前記メモリバスビット幅に基づいて、前記第2データサブブロックの伝送に必要なビート数を算出し、
    前記第2データサブブロックの伝送に必要なビート数が前記第2データサブブロックの元データ伝送に必要なビート数より小さくなるのであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであると判断し、
    そうでなければ、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックではないと判断することを含み、
    前記記憶アドレスが前記第2データサブブロックの記憶アドレスであることを特徴とする、請求項9に記載の方法。
  11. 前記ニューラルネットワーク搬送データは、第2タイプデータサブブロックおよび/または第3タイプデータサブブロックをさらに含み、
    前記第2タイプデータサブブロックおよび/または第3タイプデータサブブロックは、前記ニューラルネットワーク搬送データを前記複数の第1タイプデータサブブロックに分割して残るデータから構成されるデータサブブロックであることを特徴とする、請求項に記載の方法。
  12. 前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックでなければ、前記第2データサブブロックを記憶することをさらに含むことを特徴とする、請求項8に記載の方法。
  13. ニューラルネットワーク搬送データのデータサブブロックである第1データサブブロックを読み取り、前記第1データサブブロックを連続なデータストリームにスプライシングするための読み取りモジュールと、
    前記連続なデータストリームを圧縮して第2データサブブロックを得るための圧縮モジュールと、
    前記第1データサブブロックの長さと前記第2データサブブロックの長さに基づいて、前記連続なデータストリームに対する圧縮に利得が存在するかを判断するための判断モジュールと、
    前記連続なデータストリームに対する圧縮に利得が存在するのであれば、前記第2データサブブロックを出力するための第1出力モジュールと、を含むことを特徴とする、データ出力装置。
  14. 第2データサブブロックの長さを読み取るための第1読み取りモジュールと、
    第2データサブブロックを読み取るための第2読み取りモジュールと、
    前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断するための判断モジュールと、
    前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであれば、前記第2データサブブロックを解凍し、前記解凍後のデータを記憶するための解凍モジュールと、を含み、
    前記第2データサブブロックは、ニューラルネットワーク搬送データのデータサブブロックであり、
    前記ニューラルネットワーク搬送データは、複数の第1タイプデータサブブロックを含み、各第1タイプデータサブブロックのサイズが同じであり、
    前記判断モジュールは、前記第2データサブブロックが第1タイプデータサブブロックであるかを判断し、前記第2データサブブロックが第1タイプデータサブブロックであれば、前記第2データサブブロックが圧縮済みでかつ圧縮利得の存在するデータサブブロックであるかを判断するために用いられることを特徴とする、データ取得装置。
JP2020107989A 2019-12-31 2020-06-23 データ出力方法、データ取得方法、装置および電子機器 Active JP7083004B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911420585.1A CN111178490B (zh) 2019-12-31 2019-12-31 数据输出方法、获取方法、装置和电子设备
CN201911420585.1 2019-12-31

Publications (2)

Publication Number Publication Date
JP2021111320A JP2021111320A (ja) 2021-08-02
JP7083004B2 true JP7083004B2 (ja) 2022-06-09

Family

ID=70652472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020107989A Active JP7083004B2 (ja) 2019-12-31 2020-06-23 データ出力方法、データ取得方法、装置および電子機器

Country Status (5)

Country Link
US (1) US11562241B2 (ja)
EP (1) EP3846021B1 (ja)
JP (1) JP7083004B2 (ja)
KR (1) KR102542239B1 (ja)
CN (1) CN111178490B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11757469B2 (en) * 2021-04-01 2023-09-12 Qualcomm Incorporated Compression technique for deep neural network weights
CN113298712A (zh) * 2021-05-21 2021-08-24 安谋科技(中国)有限公司 图像处理方法、电子设备及其可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010287114A (ja) 2009-06-12 2010-12-24 Toshiba Corp データ格納方法及びデータ格納装置
JP2018063505A (ja) 2016-10-12 2018-04-19 富士通株式会社 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
JP2019530076A (ja) 2016-09-08 2019-10-17 クアルコム,インコーポレイテッド プロセッサベースシステムにおける小データブロックのための効率的なロスレス圧縮の実現

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930003416B1 (ko) 1988-03-29 1993-04-29 주식회사 금성사 폰트의 함축방법
US5363098A (en) * 1993-10-25 1994-11-08 Digital Equipment Corporation Byte aligned data compression
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6831575B2 (en) * 2002-11-04 2004-12-14 The Regents Of The University Of California Word aligned bitmap compression method, data structure, and apparatus
KR100959489B1 (ko) * 2003-04-04 2010-05-26 주식회사 케이티 데이터 사전 관리를 통한 데이터 압축 및 복원 방법
US20100223237A1 (en) * 2007-11-05 2010-09-02 University Of Florida Research Foundation, Inc. Lossless data compression and real-time decompression
CN101853229B (zh) * 2010-05-17 2012-08-08 华为终端有限公司 数据搬运方法、装置及数据读操作与写操作的方法
CN102891732A (zh) * 2012-09-25 2013-01-23 北京星网锐捷网络技术有限公司 数据发送方法和装置以及数据接收方法和装置
CN103023509A (zh) * 2012-11-14 2013-04-03 无锡芯响电子科技有限公司 一种硬件lz77压缩实现***及其实现方法
CN103138766A (zh) 2013-03-11 2013-06-05 广州从兴电子开发有限公司 数据压缩与解压缩的方法及装置
CN103281156B (zh) 2013-05-02 2017-06-06 华为技术有限公司 一种数据压缩、解压缩方法及装置
CN106506007A (zh) 2015-09-08 2017-03-15 联发科技(新加坡)私人有限公司 一种无损数据压缩和解压缩装置及其方法
CN105207678B (zh) * 2015-09-29 2018-10-26 东南大学 一种改进型lz4压缩算法的硬件实现***
CN105488534B (zh) 2015-12-04 2018-12-07 中国科学院深圳先进技术研究院 交通场景深度解析方法、装置及***
CN105653484B (zh) * 2015-12-31 2018-08-17 厦门市美亚柏科信息股份有限公司 一种数据分块压缩多通道传输方法
US20170228252A1 (en) * 2016-02-10 2017-08-10 Qualcomm Incorporated System and method for multi-tile data transactions in a system on a chip
US10735023B2 (en) * 2017-02-24 2020-08-04 Texas Instruments Incorporated Matrix compression accelerator system and method
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
CN108615076B (zh) * 2018-04-08 2020-09-11 瑞芯微电子股份有限公司 一种基于深度学习芯片的数据存储优化方法和装置
CN109582653B (zh) * 2018-11-14 2020-12-08 网易(杭州)网络有限公司 文件的压缩、解压缩方法及设备
CN110049333B (zh) * 2019-04-23 2021-04-27 东南大学 一种jpeg_ls图像压缩输出编码码流拼接***及方法
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010287114A (ja) 2009-06-12 2010-12-24 Toshiba Corp データ格納方法及びデータ格納装置
JP2019530076A (ja) 2016-09-08 2019-10-17 クアルコム,インコーポレイテッド プロセッサベースシステムにおける小データブロックのための効率的なロスレス圧縮の実現
JP2018063505A (ja) 2016-10-12 2018-04-19 富士通株式会社 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Also Published As

Publication number Publication date
US20210201134A1 (en) 2021-07-01
US11562241B2 (en) 2023-01-24
KR102542239B1 (ko) 2023-06-12
CN111178490A (zh) 2020-05-19
KR20210086936A (ko) 2021-07-09
CN111178490B (zh) 2021-08-24
EP3846021B1 (en) 2023-01-18
JP2021111320A (ja) 2021-08-02
EP3846021A1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
US9647684B2 (en) Memory-based history search
US10044370B1 (en) Lossless binary compression in a memory constrained environment
KR101651911B1 (ko) 수축 압축을 위한 고속의 고도로 압축된 lz77 토큰화 및 허프만 인코딩을 위한 병렬 장치
JP7083004B2 (ja) データ出力方法、データ取得方法、装置および電子機器
US20160285473A1 (en) Scalable High-Bandwidth Architecture for Lossless Compression
US11817886B2 (en) Parallel decompression of compressed data streams
US9973205B1 (en) Decompression using cascaded history windows
US10396816B2 (en) Pad encoding and decoding
KR102521586B1 (ko) 텍스트 핵심정보 추출방법, 장치, 전자기기 및 기록매체
CN110569972A (zh) 超网络的搜索空间构建方法、装置以及电子设备
US10103747B1 (en) Lossless binary compression in a memory constrained environment
US9287893B1 (en) ASIC block for high bandwidth LZ77 decompression
US20130262787A1 (en) Scalable memory architecture for turbo encoding
US9916335B2 (en) Row, table, and index decompression
US20180322102A1 (en) Encoded text data management
JP7269275B2 (ja) コンテンツ推薦方法、装置及び機器
WO2023150611A1 (en) Systems and methods for improved entropy coding efficiency
US11354038B2 (en) Providing random access to variable-length data
JP6914402B2 (ja) データ書き込み方法、装置および記憶媒体
CN111339241A (zh) 一种问题查重方法、装置以及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220309

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220309

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220425

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220530

R150 Certificate of patent or registration of utility model

Ref document number: 7083004

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150