JP2020077449A - 人工知能動作を実行できるメモリチップおよびその方法 - Google Patents

人工知能動作を実行できるメモリチップおよびその方法 Download PDF

Info

Publication number
JP2020077449A
JP2020077449A JP2019171109A JP2019171109A JP2020077449A JP 2020077449 A JP2020077449 A JP 2020077449A JP 2019171109 A JP2019171109 A JP 2019171109A JP 2019171109 A JP2019171109 A JP 2019171109A JP 2020077449 A JP2020077449 A JP 2020077449A
Authority
JP
Japan
Prior art keywords
memory
artificial intelligence
data
intelligence engine
feature map
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
JP2019171109A
Other languages
English (en)
Other versions
JP6912535B2 (ja
Inventor
崇仁 黄
Chung-Jen Huang
崇仁 黄
永年 葛
Yung-Nien Koh
永年 葛
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.)
Powerchip Semiconductor Manufacturing Corp
Original Assignee
Powerchip Semiconductor Manufacturing Corp
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
Priority claimed from TW108106715A external-priority patent/TWI714003B/zh
Application filed by Powerchip Semiconductor Manufacturing Corp filed Critical Powerchip Semiconductor Manufacturing Corp
Publication of JP2020077449A publication Critical patent/JP2020077449A/ja
Application granted granted Critical
Publication of JP6912535B2 publication Critical patent/JP6912535B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • 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
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】人工知能動作を実行できるメモリチップおよびその動作方法を提供する。【解決手段】メモリチップは、メモリアレイ、メモリコントローラ、および人工知能エンジンを含む。メモリアレイは、複数のメモリ領域を含む。メモリ領域は、デジタル化された入力データおよび重みデータを格納するように構成される。メモリコントローラは、人工知能エンジン専用のバスを介してメモリアレイに結合される。人工知能エンジンは、メモリコントローラおよびバスを介してメモリアレイにアクセスし、デジタル化された入力データおよび重みデータを取得する。人工知能エンジンは、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。【選択図】図1

Description

本発明は、メモリアーキテクチャに関し、より詳細には、人工知能(AI:artificial intelligence)動作を実行できるメモリチップおよびその動作方法に関連している。
人工知能(AI)動作の進化に伴い、AI動作は、ニューラルネットワークモデルを介して実行される画像解析、音声解析、および自然言語処理などのニューラルネットワーク動作において、広範囲に適用されてきた。さらに、ニューラルネットワークの動作の複雑さが増すにつれて、人工知能動作を実行するために現在使用されているコンピュータデバイスは、ニューラルネットワーク動作における現在の要求に対処するための効果的で高速な動作性能を、徐々に提供できなくなってきている。
これに関して、人工知能動作の速度を改善する一般的な方法は、例えば、FPGA(Field Programmable Gate Array:フィールドプログラマブルゲートアレイ)アーキテクチャ、ASIC(Application−Specific Integrated Circuit:特定用途向け集積回路)アーキテクチャ、またはGPU(Graphics Processing Unit:グラフィックスプロセッシングユニット)アーキテクチャを使用して、CPU(Central Processing Unit:中央処理装置)によって実行されるニューラルネットワーク動作において高い動作負荷を有する関連するタスクを共有し、高速化された動作の効果を実現する。しかし、それらの方法は、メモリウォールによって依然として制限されているため、それらの動作性能を大幅に改善することができない。上記を考慮して、以下では、人工知能動作を迅速に実行できる処理アーキテクチャの設計方法に関する解決策が、複数の実施形態を参照して提案される。
本発明は、人工知能(AI)動作を実行できるメモリチップおよびその動作方法を提供し、この動作方法は、メモリチップ内に統合された人工知能エンジンによって、メモリチップに格納されたデジタル化された入力データおよび重みデータを直接読み取ることができ、そのため、この人工知能エンジンは、ニューラルネットワーク動作を迅速に実行することができる。
本発明の人工知能動作を実行できるメモリチップは、メモリアレイ、メモリコントローラ、および人工知能エンジンを含む。メモリアレイは、複数のメモリ領域を含む。メモリ領域は、デジタル化された入力データおよび重みデータを格納するように構成される。メモリコントローラは、人工知能エンジン専用のバスを介してメモリアレイに結合される。人工知能エンジンは、メモリコントローラに結合され、メモリコントローラおよびバスを介してメモリアレイにアクセスし、デジタル化された入力データおよび重みデータを取得する。人工知能エンジンは、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。
本発明の一実施形態では、メモリ領域は複数のデータバッファ領域を含む。人工知能エンジンがメモリ領域のデータバッファ領域のうちの1つに含まれるデジタル化された入力データにアクセスするときに、外部プロセッサがデータバッファ領域の他の1つに含まれる他のデジタル化された入力データに同時にアクセスするように、人工知能エンジンおよび外部プロセッサは、データバッファ領域に交互にアクセスする。
本発明の一実施形態では、人工知能エンジンは、第1のキャッシュ部を含む。人工知能エンジンは、第1のキャッシュ部により、メモリ領域のデータバッファ領域の1つに含まれるデジタル化された入力データをあらかじめ読み取る。
本発明の一実施形態では、バスのバス幅は、メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である。
本発明の一実施形態では、重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせでアドレス符号化方式に従って、アドレスと共に符号化され、メモリ領域の各々の複数のメモリバンクに連続的に格納される。人工知能エンジンは、メモリ領域の各々のメモリバンクの対応する行を連続的にかつインターリーブで読み取り、重みデータの重み値または特徴マップデータの特徴値を連続的に取得する。
本発明の一実施形態では、メモリ領域は複数の重みデータ領域を含む。人工知能エンジンは、メモリ領域の重みデータ領域の複数のメモリバンクを連続的にかつインターリーブで読み取り、重みデータを取得する。
本発明の一実施形態では、人工知能エンジンは、第2のキャッシュ部を含む。第2のキャッシュ部の複数のキャッシュ線は、メモリバンクの重みデータをパイプライン方式であらかじめ読み取るように構成される。人工知能エンジンは、第2のキャッシュ部のキャッシュ線に格納された重みデータを連続的に読み取り、ニューラルネットワーク動作を実行する。
本発明の一実施形態では、メモリ領域は2つの特徴マップデータ領域を含む。人工知能エンジンは、2つの特徴マップデータ領域に交互にアクセスする。人工知能エンジンは、特徴マップデータを、2つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取り、人工知能エンジンによって実行されるニューラルネットワーク動作中に生成された他の特徴マップデータを、2つの特徴マップデータ領域の他の1つの複数のメモリバンクに格納する。
本発明の一実施形態では、人工知能エンジンは、第3のキャッシュ部を含む。第3のキャッシュ部の複数のキャッシュ線は、2つの特徴マップデータ領域のいずれかのメモリバンクの特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。人工知能エンジンは、第3のキャッシュ部のキャッシュ線に格納された特徴マップデータを連続的に読み取り、ニューラルネットワーク動作を実行する。
本発明の一実施形態では、人工知能エンジンは、第4のキャッシュ部を含む。第4のキャッシュ部の複数のキャッシュ線は、人工知能エンジンによって実行されるニューラルネットワーク動作中に生成された他の特徴マップデータをあらかじめ格納するように構成される。第4のキャッシュ部のキャッシュ線に格納された特徴マップデータは、パイプライン方式で連続的に読み取られ、特徴マップデータを2つの特徴マップデータ領域のうちの他の1つのメモリバンクに格納される。
本発明の人工知能動作を実行できる動作方法は、人工知能エンジンにより、人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイの複数のメモリ領域にアクセスして、デジタル化された入力データおよび重みデータを取得するステップと、人工知能エンジンにより、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行するステップと、を含む。
本発明の一実施形態では、デジタル化された入力データを取得するステップは、人工知能エンジンにより、メモリ領域の複数のデータバッファ領域の1つに含まれるデジタル化された入力データにアクセスするときに、外部プロセッサにより、データバッファ領域の他の1つに含まれる他のデジタル化された入力データに同時にアクセスすることを含む。
本発明の一実施形態では、デジタル化された入力データを取得するステップは、人工知能エンジンの第1のキャッシュ部により、メモリ領域の複数のデータバッファ領域の1つに含まれるデジタル化された入力データをあらかじめ読み取ることを含む。
本発明の一実施形態では、バスのバス幅は、メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である。
本発明の一実施形態では、重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、メモリ領域の各々の複数のメモリバンクに連続的に格納される。重みデータまたは特徴マップデータを取得するステップは、人工知能エンジンにより、メモリ領域の各々のメモリバンクの対応する行を連続的にかつインターリーブで読み取り、重みデータの重み値または特徴マップデータの特徴値を連続的に取得することを含む。
本発明の一実施形態では、重みデータを取得するステップは、人工知能エンジンにより、メモリ領域の重みデータ領域の複数のメモリバンクを連続的にかつインターリーブで読み取り、重みデータを取得することを含む。
本発明の一実施形態では、人工知能エンジンは、第2のキャッシュ部を含む。第2のキャッシュ部の複数のキャッシュ線は、メモリバンクの重みデータをパイプライン方式であらかじめ読み取るように構成される。ニューラルネットワーク動作を実行するステップは、人工知能エンジンにより、第2のキャッシュ部のキャッシュ線に格納された重みデータを連続的に読み取り、ニューラルネットワーク動作を実行することを含む。
本発明の一実施形態では、メモリ領域は2つの特徴マップデータ領域を含む。人工知能エンジンは、2つの特徴マップデータ領域に交互にアクセスする。この動作方法は、人工知能エンジンにより、特徴マップデータを、2つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取るステップと、人工知能エンジンにより実行されるニューラルネットワーク動作中に生成された他の特徴マップデータを、2つの特徴マップデータ領域のうちの他の1つのメモリバンクに格納するステップとをさらに含む。
本発明の一実施形態では、人工知能エンジンは、第3のキャッシュ部を含む。第3のキャッシュ部の複数のキャッシュ線は、2つの特徴マップデータ領域のいずれかのメモリバンクの特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。ニューラルネットワーク動作を実行するステップは、人工知能エンジンにより、第3のキャッシュ部のキャッシュ線に格納された特徴マップデータを連続的に読み取り、ニューラルネットワーク動作を実行することを含む。
本発明の一実施形態では、人工知能エンジンは、第4のキャッシュ部を含む。第4のキャッシュ部の複数のキャッシュ線は、人工知能エンジンにより実行されるニューラルネットワーク動作中に生成された他の特徴マップデータをあらかじめ格納するように構成される。ニューラルネットワーク動作を実行するステップは、第4のキャッシュ部のキャッシュ線に格納された特徴マップデータをパイプライン方式で連続的に読み取ることと、特徴マップデータを、2つの特徴マップデータ領域のうちの他の1つのメモリバンクに格納することとを含む。
上記に基づいて、人工知能エンジンがニューラルネットワーク動作を実行するときに、人工知能エンジンが、より広い幅を有する人工知能エンジン専用のバスを介して、メモリアレイの特定のメモリ領域のメモリバンクを迅速に読み取り、ニューラルネットワーク動作を実行するために必要なデジタル化された入力データおよび重みデータを迅速に取得できるように、人工知能動作およびその動作方法を実行できるメモリチップは、人工知能エンジンをメモリチップ内に統合することができる。その結果、人工知能動作およびその動作方法を実行できるメモリチップは、迅速な人工知能動作性能を実現することができる。
本開示の上記の特徴および利点をさらに理解できるようにするために、複数の実施形態が、以下の通りに、図面と共に詳細に説明される。
添付の図面は、本発明をさらに理解できるようにするために含まれており、本明細書に組み込まれ、本明細書の一部を構成する。各図面は、説明と共に本発明の実施形態を示し、本発明の原理を説明するのに役立つ。
本発明の実施形態に係る、メモリチップの機能ブロック図である。 本発明の実施形態に係る、メモリチップの動作アーキテクチャ図である。 本発明の実施形態に係る、人工知能エンジンがメモリ領域にアクセスする概略図である。 本発明の他の実施形態に係る、メモリチップの動作可能なアーキテクチャ図である。 本発明の実施形態に係る、メモリチップの動作方法のフローチャートである。
ここで、本発明の好ましい実施形態を詳細に参照し、その例が添付の図面に示される。可能な限り、同じ部分または類似する部分を参照するために、図面および説明において同じ参照番号が使用される。
本発明の内容をより理解可能にするために、以下の実施形態は、本発明を実際に実現できることを証明するための例として説明される。さらに、同じ参照番号が付いている要素/構成要素/ステップは、図面および実施形態において同じ部分または類似する部分を表している。
図1は、本発明の実施形態に係る、メモリチップの機能ブロック図である。図1を参照すると、メモリチップ100は、人工知能(AI)エンジン110、メモリコントローラ120、およびメモリアレイ130を含む。人工知能エンジン110とメモリコントローラ120の間でデータ送信はバス140を介して実行され、メモリコントローラ120はメモリアレイ130にバス150を介してアクセスする。本実施形態では、メモリアレイ130が複数のメモリ領域に分割され、メモリ領域の各々が複数のメモリバンクを含む。メモリ領域の各々は、特定のデータ(またはデータセット)を格納するように構成される。さらに、一実施形態では、メモリコントローラ120が、複数の専用メモリ制御ユニットをさらに含んでよい。専用メモリ制御ユニットは、データアクセス動作をそれぞれ実行するために、1対1の方法でメモリ領域に対応している。
本実施形態では、バス140、150は人工知能エンジン110専用であり、バス140、150のバス幅は、メモリバンクの各々の行全体のデータ量以上であってよく、そのため、メモリバンクにアクセスするたびに、バス140、150はメモリバンクの行全体のデータに一度にアクセスすることができる。しかし本発明は、これに関して制限されない。一実施形態では、バス140、150のバス幅は、人工知能エンジン110のアーキテクチャ設計またはメモリアレイ130のデータ格納形式に従って対応して設計されてよい。
本実施形態では、人工知能エンジン110は、例えば、制御論理ユニット、算術論理演算ユニット、キャッシュ部などを含む回路素子によって構築されたPIM(Processing In Memory:メモリ内処理)アーキテクチャであってよい。人工知能エンジン110は、専用メモリコントローラ120およびバス140、150を介してメモリアレイ130のメモリバンクに直接アクセスするために、メモリチップ100の周辺回路領域内に統合されてよい。また、人工知能エンジン110は、ニューラルネットワーク動作を実行するための機能を有するように設計される。加えて、本実施形態のメモリチップ100は、DRAM(Dynamic Random Access Memory:ダイナミックランダムアクセスメモリ)ベースのチップまたはDRAMチップ技術に基づいて設計されたチップであってよいが、本発明はこれらに限定されない。
本実施形態では、人工知能エンジン100がニューラルネットワーク動作を実行するときに、人工知能エンジン100は、メモリアレイ130に格納されたデジタル化された入力データおよび重みデータに直接アクセスし、デジタル化された入力データおよび重みデータに従ってニューラルネットワーク動作を迅速に実行することができる。加えて、本実施形態におけるニューラルネットワーク動作は、例えば、DNN(Deep Neural Network:深層ニューラルネットワーク)動作、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)動作、またはRNN(Recurrent Neural Network:リカレントニューラルネットワーク)動作であってよいが、本発明によって特に限定されない。
図2は、本発明の実施形態に係る、メモリチップの動作アーキテクチャ図である。図2を参照すると、メモリチップ200は、図1の実施形態で説明したメモリチップ100のアーキテクチャを有してよい。本実施形態では、メモリチップ200は、共有メモリバス40を介してプロセッサ30とのデータ送信を実行する。メモリチップ200のメモリアレイのメモリ領域は、データバッファ領域231、232、および重みデータ領域233に分類され、データバッファ領域231、232、および重みデータ領域233は、メモリアレイの異なるメモリバンクにそれぞれ対応する。すなわち、データバッファ231、232、および重みデータ領域233は、アクセス動作を個別に受ける。
本実施形態では、チップ外部の共有データ送信条件による制限により、共有メモリバス40のバス幅および帯域幅が制限される。しかし、外部プロセッサ30に結合された共有メモリバス40を介してメモリアレイにアクセスする代わりに、本実施形態の人工知能エンジン210は、メモリチップ200内の専用バスを介してデータバッファ領域231、232、および重みデータ領域233にアクセスする。そうすることにより、本実施形態のメモリコントローラ120は、特定のデータアクセスモードに従ってメモリアレイ130に迅速アクセスすることができる。
本実施形態では、プロセッサ30は、メモリチップ200の外部に配置されてよく、例えば、中央処理装置(CPU)、または汎用もしくは専用のその他の画像信号プロセッサ(ISP:image signal processors)、マイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、またはその他の類似するプロセッサ、あるいは上記の処理回路の組み合わせであってよい。
プロセッサ30が画像信号プロセッサである例では、データバッファ領域231、232に格納されるデジタル化された入力データD1、D2は、画像データであってよく、人工知能エンジン210は、対応する特定のニューラルネットワーク動作を実行する機能を備えてあらかじめ設計されている。人工知能エンジン210は、プロセッサ30によって提供された画像データに対してニューラルネットワーク動作を実行し、画像データ内の特定のコンテンツ情報を解析することができる。したがって、人工知能エンジン210がニューラルネットワーク動作を実行するときに、人工知能エンジン210は、データバッファ領域231および重みデータ領域233を読み取り、現在の画像データに対応するデジタル化された入力データD1およびニュートラルネットワーク動作を実行するために必要な重みデータWを取得する。一方、プロセッサ30は、次の画像データに対応するデジタル化された入力データD2をデータバッファ領域232に格納する。次に、プロセッサ30が格納動作を完了した後に、人工知能エンジン210が、次の画像データに対応するデジタル化された入力データD2の読み取りを直ちに続行して動作を進め、プロセッサ30も、データバッファ領域231へのデータの更新を直ちに開始する。
すなわち、人工知能エンジン210が専用バスを介してデータバッファ領域231を直接読み取る一方、プロセッサ30が共有メモリバス40を介してメモリチップ200のメモリアレイ内のデータバッファ領域232にアクセスするため、プロセッサ30および人工知能エンジン210は、同じバスを争う必要がないので、他方がアクセス動作を完了するのを待ってから連続的かつ交互にアクセス動作を実行する代わりに、各処理動作を並列に実行することができる。このように、本実施形態の人工知能エンジン210および外部プロセッサ30は、バスがデータにアクセスするのを待つ時間を効果的に省きながら、ニューラルネットワーク動作を迅速かつ継続的に実行するように、データバッファ領域231、232に交互にアクセスする。
図3は、本発明の実施形態に従う、人工知能エンジンがメモリ領域にアクセスする概略図である。図3を参照すると、人工知能エンジン310は、キャッシュ部311を含む。キャッシュ部311はキャッシュ線311A〜311Cを含んでいるが、本発明の各実施形態において説明されているキャッシュ部のキャッシュ線の数は、図3によって制限されない。メモリ領域333は、メモリバンク333_1〜333_Nを含み、Nは1より大きい正の整数である。メモリバンク333_1〜333_Nは、ワード線バッファ334_1〜334_Nをそれぞれ含む。本実施形態では、キャッシュ部311のキャッシュ線331A〜311Cが、メモリバンク333_1〜333_Nのワード線バッファ334_1〜334_Nをあらかじめ読み取ってデータを取得するように構成される。これに関して、メモリ領域333は、例えば、デジタル化された入力データ、重みデータ、または特徴マップデータを含む、深層学習ネットワーク動作または深層ニューラルネットワーク動作を実行するのに必要なデータを格納でき、デジタル化された入力データ、重みデータ、または特徴マップデータは、メモリバンク311_1〜311_Nに連続的に格納される。
ニューラルネットワーク動作に必要な重みデータの複数の重み値および特徴マップデータの複数の特徴値の場合、各々が、ニューラルネットワークモデル内で読み取られる特定のアクセス順序パターンを有しているということに、注意すべきである。したがって、メモリコントローラは、この順序性を使用して、重みデータおよび特徴マップデータを順序正しくメモリアレイに格納し、メモリアクセスを高速化することができ、メモリ待ち時間を短縮しさえできる。これに関して、以下の表1のアドレス符号化方式により示されるように、重みデータの重み値w0〜w11および特徴マップデータの特徴値f0〜f11は、連続するアドレス空間またはメモリ空間に連続的に配置される。しかし、アドレス符号化方式によれば、アドレスの符号化において、最上位ビット部分、中間ビット部分、および下位ビット部分は、アクセスされる物理メモリ内の行アドレス、バンクアドレス、および列アドレスをそれぞれ表す。このようにして、メモリコントローラは、ある順序に従って、データを各重みデータ領域の対応するメモリバンクの対応する行の対応する列に連続的に格納することができる。
重みデータを例として使用すると、重みデータの連続する重み値w0〜w11の各々が、表1のアドレス符号化方式に基づく行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、重みデータ領域333のメモリバンク333_1〜333_3に連続的に格納されてよい。下の表1のバンクアドレス000、001、および010は、メモリバンク333_1〜333_3に連続的に対応するということに、注意すべきである。この例では、行、バンク、および列の組み合わせのアドレス符号化方式に従って、最初に重み値w0〜w3が重みデータ領域333のメモリバンク333_1の第1の行(行アドレス000に対応する)の連続する列(列アドレス00、01、10、および11に対応する)に格納され、重み値w4〜w7がメモリバンク333_2の第1の行(行アドレス000に対応する)の連続する列(列アドレス00、01、10、および11に対応する)に格納され、その後、重み値w8〜w11がメモリバンク333_3の第1の行(行アドレス000に対応する)の連続する列(列アドレス00、01、10、および11に対応する)に格納される。
この例では、メモリバンク333_1〜333_3はアクセス動作を個別に受ける。したがって、人工知能エンジン310が、メモリインターリーブアクセスメカニズムに基づいて、対応するアドレスの順序(例えば、表1に示されているアドレスの順序)に従ってニューラルネットワーク動作を実行するときに、人工知能エンジン310のキャッシュ部311は、ニューラルネットワーク動作を実行するために必要な重み値w0〜w11を連続的に取得するために、メモリバンク333_1〜333_3(バンクアドレス000、001、および010に対応する)内の行全体(この例では、行アドレス000に対応する)に含まれるデータをパイプライン方式で連続的に読み取ることができる。
より具体的には、メモリバンク333_1〜333_3のワード線バッファ334_1〜334_3は、データを、メモリバンク333_1〜333_3の各々の行全体(この例では、行アドレス000に対応する)から予め読み取り、そのためキャッシュ線311A、311B、および311Cは、メモリバンク333_1〜333_3の各々の行全体の重みデータ(重み値w0〜w11)をインターリーブで先読みすることができる。言い換えると、人工知能エンジン310は、より広い幅を有する専用バスおよび専用メモリコントローラを介して重みデータ領域333を読み取り、専用バスの幅は、メモリバンク333_1〜333_Nの各々の行全体のデータ量以上であってよい。次に、人工知能エンジン310は、キャッシュ部311のキャッシュ線311A、311B、および311Cに格納された重みデータ(この例では、行アドレス000の重み値w0〜w11に対応する)を連続的に読み取り、ニューラルネットワーク動作を実行する。
別の例として、重みデータ(重み値w0〜w11)がキャッシュ線331A〜331Bにインターリーブで移動され、人工知能エンジン310によって連続的に使用されるときに、メモリバンク333_4〜333_6のワード線バッファ334_4〜334_6の各々が、データ(例えば、表1に続くような重み値w12〜w23)を、メモリバンク333_4〜333_6の各々の行全体から、それぞれあらかじめ読み取る。類推によって、人工知能エンジン310は、ニューラルネットワーク動作を迅速に実行する効果を実現するために、重みデータを、ニューラルネットワークアクセスパターンに従ってより効率的かつ迅速に読み取ることができる。さらに重要なことに、メモリ領域のメモリバンクをインターリーブで読み取ることにより、本実施形態の人工知能エンジン310は、tRCD(RAS−CAS間遅延)時間遅延およびtRP(RASプリチャージ時間)時間遅延の影響を効果的に克服することができる。
加えて、この実施形態で説明された特徴マップデータは、重みデータに使用されるのと同じ方法で格納され、読み取られてもよく、それについては以下で繰り返さない。さらに、表1は、重みデータの一部および特徴マップデータの一部についてアドレス符号化方式を表すためのみに使用され、本発明における重みデータおよび特徴マップデータのデータ量および長さ、ならびにアドレス符号化方式は、表1によって制限されない。
図4は、本発明の他の実施形態に係る、メモリチップの動作アーキテクチャ図である。図4を参照すると、メモリチップ400は、図1の実施形態で説明されたメモリチップ100のアーキテクチャを有してよい。本実施形態では、メモリチップ400は、共有メモリバスを介して外部プロセッサとのデータ送信を実行する。メモリチップ400のメモリアレイのメモリ領域は、データバッファ領域431、432、重みデータ領域433、および特徴マップデータ領域434、435に分類される。本実施形態では、データバッファ領域431、432、重みデータ領域433、および特徴マップデータ領域434、435は、メモリアレイの異なるメモリバンクにそれぞれ対応する。すなわち、データバッファ領域431、432、重みデータ領域433、および特徴マップデータ領域434、435は、アクセス動作を個別に受ける。
本実施形態では、人工知能エンジン410は、例えば、畳み込みニューラルネットワーク動作を実行してよい。人工知能エンジン410は、各専用メモリコントローラおよび各専用バスを介して、データバッファ領域431、432、重みデータ領域433、および特徴マップデータ領域434、435にアクセスする。このとき、人工知能エンジン410は、特徴マップデータ領域434、435に交互にアクセスする。例えば、一番初めに、人工知能エンジン410がデータバッファ領域431内のデジタル化された入力データD1を読み取って、畳み込みニューラルネットワーク動作を実行した後に、人工知能エンジン410は、第1の特徴マップデータF1を生成する。人工知能エンジン410は、第1の特徴マップデータF1を特徴マップデータ領域434に格納する。その後、人工知能エンジン410が次の畳み込みニューラルネットワーク動作を実行するときに、人工知能エンジン410は、動作のために特徴マップデータ領域434の第1の特徴マップデータF1を読み取り、第2の特徴マップデータF2を生成する。人工知能エンジン410は、第2の特徴マップデータF2を特徴マップデータ領域435に格納する。類推によって、人工知能エンジン410は、前の動作により生成された特徴マップデータを特徴マップデータ領域434または435のメモリバンクから交互に読み取り、次に、現在のニューラルネットワーク動作中に生成された現在の特徴マップデータを、対応する特徴マップデータ領域435または434のメモリバンクに格納する。さらに、本実施形態では、デジタル化された入力データD2が、外部プロセッサによって同時にデータバッファ領域432に格納されるか、またはデータバッファ領域432から読み取られてよい。この実装は、畳み込みニューラルネットワークに限定されず、他のタイプのネットワークにも適用可能である。
本実施形態では、人工知能エンジン410は、複数のキャッシュ部411〜414を含んでよい。キャッシュ部411は、データバッファ領域431内のデジタル化された入力データD1またはデータバッファ領域432内のデジタル化された入力データD2をあらかじめ読み取るように構成される。キャッシュ部412は、重みデータ領域433内の重みデータWをパイプライン方式であらかじめ読み取るように構成される。キャッシュ部413、414は、特徴マップ領域434または435に対応する特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。言い換えると、人工知能エンジン410は、ニューラルネットワーク動作の速度を上げるために、キャッシュ部411〜414によって、データをパイプライン方式であらかじめ読み取る。重みデータWの複数の重み値が、上の表1の同じアドレス符号化方式によって、重みデータ領域433のメモリバンクに格納されてよく、人工知能エンジン410のキャッシュ部412が、重みデータWの重み値を連続的に取得するために、同じアドレス符号化方式に従って重みデータ領域433のメモリバンクをパイプライン方式で連続的にあらかじめ読み取るということに、注意するべきである。
特徴マップデータF1の複数の特徴値が、上の表1の同じアドレス符号化方式によって、特徴マップデータ領域434のメモリバンクに格納されてよく、人工知能エンジン410のキャッシュ部413が、特徴マップデータF1の特徴値を連続的に取得するために、同じアドレス符号化方式に従って特徴マップデータ領域434のメモリバンクをパイプライン方式で連続的にあらかじめ読み取る。また、人工知能エンジン410は、ニューラルネットワーク動作中に生成された特徴マップデータF2を、キャッシュ部414に連続的にあらかじめ格納し、キャッシュ部414の複数のキャッシュ線に格納された特徴マップデータを、パイプライン方式で連続的に読み取り、特徴マップデータを特徴マップデータ領域435に格納する。加えて、本発明の一部の実施形態では、上記のキャッシュ部が、複数のキューを使用することによって実装されてもよい。
言い換えると、本実施形態の人工知能エンジン410は、前に生成された特徴マップデータを特徴マップデータ領域434、435のメモリバンクから交互に読み取り、人工知能エンジン410により実行されるニューラルネットワーク動作中に生成された現在の特徴マップデータを格納する。したがって、本実施形態の人工知能エンジン410は、デジタル化された入力データD1および重みデータWを迅速に取得することができる。また、ニューラルネットワーク動作中に、人工知能エンジン410は、ニューラルネットワーク動作を迅速に実行する効果を実現するために、特徴マップデータ領域434、435に迅速かつ連続的にアクセスすることができる。
加えて、本実施形態のメモリチップ400の他の内部デバイスの特徴、実装、および関連する技術的特徴に関する十分な教示、提案、および指示は、図1〜図3の前述の実施形態に関連する説明に従って得られてよく、それらは以下で繰り返されない。
図5は、本発明の実施形態に係る、メモリチップの動作方法のフローチャートである。図5の動作フローは、例えば、図1、2、および4の実施形態のメモリチップ100、200、および400に適用できる。図5および図1を参照し、図1のメモリチップ100を例にとってみると、メモリチップ100は、ステップS510、S520を実行できる。ステップS510で、メモリチップ100の人工知能エンジン110は、人工知能エンジン110専用のメモリコントローラ120およびバスを介してメモリアレイ130の複数のメモリ領域にアクセスし、デジタル化された入力データおよび重みデータを取得する。ステップS520で、メモリチップ100の人工知能エンジン110は、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。したがって、本実施形態のメモリチップの動作方法は、メモリチップ100内に統合された人工知能エンジン110によりニューラルネットワーク動作を迅速に実行する効果を実現できる。
加えて、本実施形態のメモリチップ100の他の内部デバイスの特徴、実装、および関連する技術的特徴に関する十分な教示、提案、および指示は、図1〜図4の前述の実施形態に関連する説明に従って得られてよく、それらは以下で繰り返されない。
要約すると、人工知能動作を実行できるメモリチップおよびその動作方法は、人工知能エンジンをメモリチップ内に統合することができ、ニューラルネットワーク動作専用の動作モードで、人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイのメモリ領域に迅速にアクセスすることができる。ここで、本発明の人工知能エンジン専用のバスの幅は、外部の共有バスの幅の仕様によって制限されず、したがって、より高いデータ送信性能を実現できる。また、人工知能動作を実行するために必要なデータにアクセスする方法は、tRCD時間遅延およびtRP時間遅延の影響を効果的に克服するために、特定のアドレス順序に従って対応するメモリ領域のメモリバンク内のデータにアクセスできる。その結果、人工知能動作およびその動作方法を実行できるメモリチップは、迅速な人工知能動作性能を実現することができる。
本発明の範囲または趣旨を逸脱することなく、本発明の構造に対してさまざまな変更および変形が行われ得るということは、当業者とって明らかであろう。上記を考慮して、本発明の変更および変形が以下の特許請求およびそれと同等のものの範囲に含まれる限り、本発明が本発明の変更および変形を包含することが意図される。
本発明のメモリチップおよびその動作方法は、メモリおよびその人工知能動作方法において適用されてよい。
30 プロセッサ
40 共有メモリバス
100、200、400 メモリチップ
110、210、310、410 人工知能エンジン
120 メモリコントローラ
130 メモリアレイ
140、150 バス
231、232、431、432 データバッファ領域
233、333、433 重みデータ領域
311、411、412、413、414 キャッシュ
311A、311B、311C キャッシュ線
331_1〜331_N メモリバンク
334_1〜334_N ワード線バッファ
434、435 特徴マップデータ領域
D1、D2 デジタル化された入力データ
W 重みデータ
F1、F2 特徴マップデータ
S510、S520 ステップ

Claims (20)

  1. 複数のメモリ領域を含み、前記メモリ領域がデジタル化された入力データおよび重みデータを格納するように構成されるメモリアレイと、
    人工知能エンジン専用のバスを介して前記メモリアレイに結合されたメモリコントローラと、
    前記メモリコントローラに結合され、前記メモリコントローラおよび前記バスを介して前記メモリアレイにアクセスし、前記デジタル化された入力データおよび前記重みデータを取得するように構成された前記人工知能エンジンと、を備え、
    前記人工知能エンジンは、前記デジタル化された入力データおよび前記重みデータに基づいてニューラルネットワーク動作を実行する、人工知能動作を実行できるメモリチップ。
  2. 前記メモリ領域は、複数のデータバッファ領域を含み、前記人工知能エンジンが前記メモリ領域の前記データバッファ領域の1つに含まれる前記デジタル化された入力データにアクセスするときに、外部プロセッサが前記データバッファ領域の他の1つに含まれる他のデジタル化された入力データに同時にアクセスするように、前記人工知能エンジンおよび前記外部プロセッサは、前記データバッファ領域に交互にアクセスする、請求項1に記載のメモリチップ。
  3. 前記人工知能エンジンは、第1のキャッシュ部を備え、前記人工知能エンジンが、前記第1のキャッシュ部により前記メモリ領域の複数のデータバッファ領域の1つに含まれる前記デジタル化された入力データをあらかじめ読み取る、請求項1または2のいずれか一項に記載のメモリチップ。
  4. 前記バスのバス幅は、前記メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である、請求項1から3のいずれか一項に記載のメモリチップ。
  5. 前記重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、前記メモリ領域の各々の複数のメモリバンクに連続的に格納され、前記人工知能エンジンが、前記メモリ領域の各々の前記メモリバンクの前記対応する行を連続的にインターリーブで読み取り、前記重みデータの前記重み値または前記特徴マップデータの前記特徴値を連続的に取得する、請求項1から4のいずれか一項に記載のメモリチップ。
  6. 前記メモリ領域が重みデータ領域を含み、前記人工知能エンジンが、前記重みデータ領域の複数のメモリバンクを連続的にインターリーブで読み取り、前記重みデータを取得する、請求項1から5のいずれか一項に記載のメモリチップ。
  7. 前記人工知能エンジンが第2のキャッシュ部を備え、前記第2のキャッシュ部の複数のキャッシュ線が、前記メモリバンクの前記重みデータをパイプライン方式であらかじめ読み取るように構成され、
    前記人工知能エンジンが、前記第2のキャッシュ部の前記キャッシュ線に格納された前記重みデータを連続的に読み取り、前記ニューラルネットワーク動作を実行する、請求項6に記載のメモリチップ。
  8. 前記メモリ領域は、2つの特徴マップデータ領域を含み、前記人工知能エンジンが前記2つの特徴マップデータ領域に交互にアクセスし、
    前記人工知能エンジンが、特徴マップデータを、前記2つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取り、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された他の特徴マップデータを、前記2つの特徴マップデータ領域のうちの他の1つの複数のメモリバンクに格納する、請求項1から7のいずれか一項に記載のメモリチップ。
  9. 前記人工知能エンジンは、第3のキャッシュ部を備え、前記第3のキャッシュ部の複数のキャッシュ線が、前記2つの特徴マップデータ領域のいずれかの前記メモリバンクの前記特徴マップデータをパイプライン方式であらかじめ読み取るように構成されており、
    前記人工知能エンジンが、前記第3のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを連続的に読み取り、前記ニューラルネットワーク動作を実行する、請求項8に記載のメモリチップ。
  10. 前記人工知能エンジンは、第4のキャッシュ部を備え、前記第4のキャッシュ部の複数のキャッシュ線が、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された前記他の特徴マップデータをあらかじめ格納するように構成されており、
    前記第4のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータが、パイプライン方式で連続的に読み取られ、前記特徴マップデータが、前記2つの特徴マップデータ領域のうちの他の1つの前記メモリバンクに格納される、請求項8に記載のメモリチップ。
  11. 人工知能エンジンにより、前記人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイの複数のメモリ領域にアクセスして、デジタル化された入力データおよび重みデータを取得することと、
    前記人工知能エンジンにより、前記デジタル化された入力データおよび前記重みデータに基づいてニューラルネットワーク動作を実行することとを含む、人工知能動作を実行できる動作方法。
  12. 前記デジタル化された入力データを取得する前記ステップが、
    前記人工知能エンジンにより、前記メモリ領域の複数のデータバッファ領域の1つに含まれる前記デジタル化された入力データにアクセスするときに、外部プロセッサによって、前記データバッファ領域の他の1つに含まれる他のデジタル化された入力データに同時にアクセスすることを含む、請求項11に記載の動作方法。
  13. 前記デジタル化された入力データを取得する前記ステップが、
    前記人工知能エンジンの第1のキャッシュ部により、前記メモリ領域の複数のデータバッファ領域の1つに含まれる前記デジタル化された入力データをあらかじめ読み取ることを含む、請求項11または12のいずれか一項に記載の動作方法。
  14. 前記バスのバス幅が、前記メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である、請求項11から13のいずれか一項に記載の動作方法。
  15. 前記重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、前記メモリ領域の各々の複数のメモリバンクに連続的に格納され、
    前記重みデータまたは特徴マップデータを取得する前記ステップが、
    前記人工知能エンジンにより、前記メモリ領域の各々の前記メモリバンクの前記対応する行を連続的にインターリーブで読み取り、前記重みデータの前記重み値または前記特徴マップデータの前記特徴値を連続的に取得することを含む、請求項11から14のいずれか一項に記載の動作方法。
  16. 前記重みデータを取得する前記ステップが、
    前記人工知能エンジンにより、前記メモリ領域の重みデータ領域の複数のメモリバンクを連続的にインターリーブで読み取り、前記重みデータを取得することを含む、請求項11から15のいずれか一項に記載の動作方法。
  17. 前記人工知能エンジンは、第2のキャッシュ部を備え、前記第2のキャッシュ部の複数のキャッシュ線が、前記メモリバンクの前記重みデータをパイプライン方式であらかじめ読み取るように構成されており、
    前記ニューラルネットワーク動作を実行する前記ステップが、
    前記人工知能エンジンにより、前記第2のキャッシュ部の前記キャッシュ線に格納された前記重みデータを連続的に読み取り、前記ニューラルネットワーク動作を実行することを含む、請求項16に記載の動作方法。
  18. 前記メモリ領域が2つの特徴マップデータ領域を含み、前記人工知能エンジンが前記2つの特徴マップデータ領域に交互にアクセスし、
    前記動作方法が、
    前記人工知能エンジンにより、特徴マップデータを、前記2つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取ることと、前記人工知能エンジンによって実行される前記ニューラルネットワーク動作中に生成された他の特徴マップデータを、前記2つの特徴マップデータ領域のうちの他の1つの前記メモリバンクに格納することとをさらに含む、請求項11から17のいずれか一項に記載の動作方法。
  19. 前記人工知能エンジンは、第3のキャッシュ部を備え、前記第3のキャッシュ部の複数のキャッシュ線が、前記2つの特徴マップデータ領域のいずれかの前記メモリバンクの前記特徴マップデータをパイプライン方式であらかじめ読み取るように構成されており、
    前記ニューラルネットワーク動作を実行する前記ステップが、
    前記人工知能エンジンによって、前記第3のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを連続的に読み取り、前記ニューラルネットワーク動作を実行することを含む、請求項18に記載の動作方法。
  20. 前記人工知能エンジンは、第4のキャッシュ部を備え、前記第4のキャッシュ部の複数のキャッシュ線が、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された前記他の特徴マップデータをあらかじめ格納するように構成されており、
    前記ニューラルネットワーク動作を実行する前記ステップが、
    前記第4のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを、パイプライン方式で連続的に読み取り、前記特徴マップデータを、前記2つの特徴マップデータ領域のうちの他の1つの前記メモリバンクに格納することを含む、請求項18に記載の動作方法。

JP2019171109A 2018-10-11 2019-09-20 人工知能動作を実行できるメモリチップおよびその方法 Active JP6912535B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862744140P 2018-10-11 2018-10-11
US62/744140 2018-10-11
TW108106715 2019-02-27
TW108106715A TWI714003B (zh) 2018-10-11 2019-02-27 可執行人工智慧運算的記憶體晶片及其操作方法

Publications (2)

Publication Number Publication Date
JP2020077449A true JP2020077449A (ja) 2020-05-21
JP6912535B2 JP6912535B2 (ja) 2021-08-04

Family

ID=70161369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019171109A Active JP6912535B2 (ja) 2018-10-11 2019-09-20 人工知能動作を実行できるメモリチップおよびその方法

Country Status (2)

Country Link
US (1) US11443185B2 (ja)
JP (1) JP6912535B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021009566A (ja) * 2019-07-01 2021-01-28 キヤノン株式会社 演算処理装置及び演算処理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116152520B (zh) * 2023-04-23 2023-07-07 深圳市九天睿芯科技有限公司 用于神经网络加速器的数据处理方法、芯片及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250244A (ja) * 1990-01-24 1991-11-08 Hitachi Ltd 情報処理装置
JPH045774A (ja) * 1990-04-24 1992-01-09 Seiko Epson Corp 神経網計算機
JPH0415773A (ja) * 1990-04-30 1992-01-21 Nec Corp 神経回路網装置
JPH0467259A (ja) * 1990-07-09 1992-03-03 Hitachi Ltd 情報処理装置
JPH0520140U (ja) * 1991-08-21 1993-03-12 株式会社三協精機製作所 情報処理装置
WO2008153196A1 (en) * 2007-06-13 2008-12-18 Canon Kabushiki Kaisha Calculation processing apparatus and control method thereof
WO2016186810A1 (en) * 2015-05-21 2016-11-24 Google Inc. Prefetching weights for use in a neural network processor
JP2018116469A (ja) * 2017-01-18 2018-07-26 株式会社日立製作所 演算システムおよびニューラルネットワークの演算方法
WO2018139265A1 (ja) * 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520140A (ja) 1991-07-16 1993-01-29 Hokkaido Nippon Denki Software Kk データベース運用制御方式
US5799168A (en) 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US7209405B2 (en) 2005-02-23 2007-04-24 Micron Technology, Inc. Memory device and method having multiple internal data buses and memory bank interleaving
US9298654B2 (en) 2013-03-15 2016-03-29 International Business Machines Corporation Local bypass in memory computing
US9836277B2 (en) 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
KR102458885B1 (ko) 2016-03-23 2022-10-24 쥐에스아이 테크놀로지 인코포레이티드 인메모리 행렬 곱셈 및 뉴럴 네트워크에서 그것의 사용
TWI634490B (zh) 2016-11-14 2018-09-01 美商耐能股份有限公司 卷積運算裝置及卷積運算方法
US11514996B2 (en) * 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors
US11507806B2 (en) * 2017-09-08 2022-11-22 Rohit Seth Parallel neural processor for Artificial Intelligence
CN108335716B (zh) 2018-01-26 2020-12-15 北京航空航天大学 一种基于非易失存储器的内存计算方法
US11151769B2 (en) * 2018-08-10 2021-10-19 Intel Corporation Graphics architecture including a neural network pipeline
US11914860B2 (en) * 2018-08-20 2024-02-27 Macronix International Co., Ltd. Data storage for artificial intelligence-based applications

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250244A (ja) * 1990-01-24 1991-11-08 Hitachi Ltd 情報処理装置
US5426757A (en) * 1990-01-24 1995-06-20 Hitachi, Ltd. Data processing circuits in a neural network for processing first data stored in local register simultaneous with second data from a memory
JPH045774A (ja) * 1990-04-24 1992-01-09 Seiko Epson Corp 神経網計算機
JPH0415773A (ja) * 1990-04-30 1992-01-21 Nec Corp 神経回路網装置
JPH0467259A (ja) * 1990-07-09 1992-03-03 Hitachi Ltd 情報処理装置
JPH0520140U (ja) * 1991-08-21 1993-03-12 株式会社三協精機製作所 情報処理装置
WO2008153196A1 (en) * 2007-06-13 2008-12-18 Canon Kabushiki Kaisha Calculation processing apparatus and control method thereof
JP2008310524A (ja) * 2007-06-13 2008-12-25 Canon Inc 演算処理装置及びその制御方法
US20100215253A1 (en) * 2007-06-13 2010-08-26 Canon Kabushiki Kaisha Calculation processing apparatus and control method thereof
WO2016186810A1 (en) * 2015-05-21 2016-11-24 Google Inc. Prefetching weights for use in a neural network processor
US20160342892A1 (en) * 2015-05-21 2016-11-24 Google Inc. Prefetching weights for use in a neural network processor
JP2018521374A (ja) * 2015-05-21 2018-08-02 グーグル エルエルシー ニューラルネットワークプロセッサで使用される重みのプリフェッチ
JP2018116469A (ja) * 2017-01-18 2018-07-26 株式会社日立製作所 演算システムおよびニューラルネットワークの演算方法
WO2018139265A1 (ja) * 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021009566A (ja) * 2019-07-01 2021-01-28 キヤノン株式会社 演算処理装置及び演算処理方法

Also Published As

Publication number Publication date
JP6912535B2 (ja) 2021-08-04
US20200117989A1 (en) 2020-04-16
US11443185B2 (en) 2022-09-13

Similar Documents

Publication Publication Date Title
CN107844828B (zh) 神经网络中的卷积计算方法和电子设备
US10846591B2 (en) Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks
US11775430B1 (en) Memory access for multiple circuit components
US11294599B1 (en) Registers for restricted memory
US11651194B2 (en) Layout parasitics and device parameter prediction using graph neural networks
US20220067513A1 (en) Efficient softmax computation
KR102148110B1 (ko) 계산 장치 및 방법
JP6912535B2 (ja) 人工知能動作を実行できるメモリチップおよびその方法
US11657119B2 (en) Hardware accelerated convolution
EP3973401B1 (en) Interleaving memory requests to accelerate memory accesses
WO2019127507A1 (zh) 数据处理方法、设备、dma控制器及计算机可读存储介质
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
US11429534B2 (en) Addressing cache slices in a last level cache
CN111047026B (zh) 可执行人工智能运算的存储器芯片及其操作方法
JP2021521529A (ja) ネットワークスイッチのキュー
US7483283B2 (en) Apparatus for efficient streaming data access on reconfigurable hardware and method for automatic generation thereof
JP2002351858A (ja) 処理装置
US20190377549A1 (en) Stochastic rounding of numerical values
US20220262447A1 (en) Error detection pin encoding scheme to avoid maximum transitions and further improve signal integrity on high speed graphic memory interfaces
WO2020238106A1 (zh) 一种数据处理方法、电子装置及计算机可读存储介质
TWI749331B (zh) 具有記憶體內運算架構的記憶體及其操作方法
JP2010061498A (ja) メモリ制御装置、半導体試験装置およびメモリ制御方法
US11809989B2 (en) Preventing glitch propagation
JP2022167527A (ja) メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム
CN114611683A (zh) 卷积神经网络操作实现方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210708

R150 Certificate of patent or registration of utility model

Ref document number: 6912535

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150