(57)【要約】【課題】人工知能動作を実行できるメモリチップおよびその動作方法を提供する。【解決手段】メモリチップは、メモリアレイ、メモリコントローラ、および人工知能エンジンを含む。メモリアレイは、複数のメモリ領域を含む。メモリ領域は、デジタル化された入力データおよび重みデータを格納するように構成される。メモリコントローラは、人工知能エンジン専用のバスを介してメモリアレイに結合される。人工知能エンジンは、メモリコントローラおよびバスを介してメモリアレイにアクセスし、デジタル化された入力データおよび重みデータを取得する。人工知能エンジンは、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。【選択図】図１
2020077449.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ領域を含み、前記メモリ領域がデジタル化された入力データおよび重みデータを格納するように構成されるメモリアレイと、
人工知能エンジン専用のバスを介して前記メモリアレイに結合されたメモリコントローラと、
前記メモリコントローラに結合され、前記メモリコントローラおよび前記バスを介して前記メモリアレイにアクセスし、前記デジタル化された入力データおよび前記重みデータを取得するように構成された前記人工知能エンジンと、を備え、
前記人工知能エンジンは、前記デジタル化された入力データおよび前記重みデータに基づいてニューラルネットワーク動作を実行する、人工知能動作を実行できるメモリチップ。
【請求項２】
前記メモリ領域は、複数のデータバッファ領域を含み、前記人工知能エンジンが前記メモリ領域の前記データバッファ領域の１つに含まれる前記デジタル化された入力データにアクセスするときに、外部プロセッサが前記データバッファ領域の他の１つに含まれる他のデジタル化された入力データに同時にアクセスするように、前記人工知能エンジンおよび前記外部プロセッサは、前記データバッファ領域に交互にアクセスする、請求項１に記載のメモリチップ。
【請求項３】
前記人工知能エンジンは、第１のキャッシュ部を備え、前記人工知能エンジンが、前記第１のキャッシュ部により前記メモリ領域の複数のデータバッファ領域の１つに含まれる前記デジタル化された入力データをあらかじめ読み取る、請求項１または２のいずれか一項に記載のメモリチップ。
【請求項４】
前記バスのバス幅は、前記メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である、請求項１から３のいずれか一項に記載のメモリチップ。
【請求項５】
前記重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、前記メモリ領域の各々の複数のメモリバンクに連続的に格納され、前記人工知能エンジンが、前記メモリ領域の各々の前記メモリバンクの前記対応する行を連続的にインターリーブで読み取り、前記重みデータの前記重み値または前記特徴マップデータの前記特徴値を連続的に取得する、請求項１から４のいずれか一項に記載のメモリチップ。
【請求項６】
前記メモリ領域が重みデータ領域を含み、前記人工知能エンジンが、前記重みデータ領域の複数のメモリバンクを連続的にインターリーブで読み取り、前記重みデータを取得する、請求項１から５のいずれか一項に記載のメモリチップ。
【請求項７】
前記人工知能エンジンが第２のキャッシュ部を備え、前記第２のキャッシュ部の複数のキャッシュ線が、前記メモリバンクの前記重みデータをパイプライン方式であらかじめ読み取るように構成され、
前記人工知能エンジンが、前記第２のキャッシュ部の前記キャッシュ線に格納された前記重みデータを連続的に読み取り、前記ニューラルネットワーク動作を実行する、請求項６に記載のメモリチップ。
【請求項８】
前記メモリ領域は、２つの特徴マップデータ領域を含み、前記人工知能エンジンが前記２つの特徴マップデータ領域に交互にアクセスし、
前記人工知能エンジンが、特徴マップデータを、前記２つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取り、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された他の特徴マップデータを、前記２つの特徴マップデータ領域のうちの他の１つの複数のメモリバンクに格納する、請求項１から７のいずれか一項に記載のメモリチップ。
【請求項９】
前記人工知能エンジンは、第３のキャッシュ部を備え、前記第３のキャッシュ部の複数のキャッシュ線が、前記２つの特徴マップデータ領域のいずれかの前記メモリバンクの前記特徴マップデータをパイプライン方式であらかじめ読み取るように構成されており、
前記人工知能エンジンが、前記第３のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを連続的に読み取り、前記ニューラルネットワーク動作を実行する、請求項８に記載のメモリチップ。
【請求項１０】
前記人工知能エンジンは、第４のキャッシュ部を備え、前記第４のキャッシュ部の複数のキャッシュ線が、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された前記他の特徴マップデータをあらかじめ格納するように構成されており、
前記第４のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータが、パイプライン方式で連続的に読み取られ、前記特徴マップデータが、前記２つの特徴マップデータ領域のうちの他の１つの前記メモリバンクに格納される、請求項８に記載のメモリチップ。
【請求項１１】
人工知能エンジンにより、前記人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイの複数のメモリ領域にアクセスして、デジタル化された入力データおよび重みデータを取得することと、
前記人工知能エンジンにより、前記デジタル化された入力データおよび前記重みデータに基づいてニューラルネットワーク動作を実行することとを含む、人工知能動作を実行できる動作方法。
【請求項１２】
前記デジタル化された入力データを取得する前記ステップが、
前記人工知能エンジンにより、前記メモリ領域の複数のデータバッファ領域の１つに含まれる前記デジタル化された入力データにアクセスするときに、外部プロセッサによって、前記データバッファ領域の他の１つに含まれる他のデジタル化された入力データに同時にアクセスすることを含む、請求項１１に記載の動作方法。
【請求項１３】
前記デジタル化された入力データを取得する前記ステップが、
前記人工知能エンジンの第１のキャッシュ部により、前記メモリ領域の複数のデータバッファ領域の１つに含まれる前記デジタル化された入力データをあらかじめ読み取ることを含む、請求項１１または１２のいずれか一項に記載の動作方法。
【請求項１４】
前記バスのバス幅が、前記メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である、請求項１１から１３のいずれか一項に記載の動作方法。
【請求項１５】
前記重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、前記メモリ領域の各々の複数のメモリバンクに連続的に格納され、
前記重みデータまたは特徴マップデータを取得する前記ステップが、
前記人工知能エンジンにより、前記メモリ領域の各々の前記メモリバンクの前記対応する行を連続的にインターリーブで読み取り、前記重みデータの前記重み値または前記特徴マップデータの前記特徴値を連続的に取得することを含む、請求項１１から１４のいずれか一項に記載の動作方法。
【請求項１６】
前記重みデータを取得する前記ステップが、
前記人工知能エンジンにより、前記メモリ領域の重みデータ領域の複数のメモリバンクを連続的にインターリーブで読み取り、前記重みデータを取得することを含む、請求項１１から１５のいずれか一項に記載の動作方法。
【請求項１７】
前記人工知能エンジンは、第２のキャッシュ部を備え、前記第２のキャッシュ部の複数のキャッシュ線が、前記メモリバンクの前記重みデータをパイプライン方式であらかじめ読み取るように構成されており、
前記ニューラルネットワーク動作を実行する前記ステップが、
前記人工知能エンジンにより、前記第２のキャッシュ部の前記キャッシュ線に格納された前記重みデータを連続的に読み取り、前記ニューラルネットワーク動作を実行することを含む、請求項１６に記載の動作方法。
【請求項１８】
前記メモリ領域が２つの特徴マップデータ領域を含み、前記人工知能エンジンが前記２つの特徴マップデータ領域に交互にアクセスし、
前記動作方法が、
前記人工知能エンジンにより、特徴マップデータを、前記２つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取ることと、前記人工知能エンジンによって実行される前記ニューラルネットワーク動作中に生成された他の特徴マップデータを、前記２つの特徴マップデータ領域のうちの他の１つの前記メモリバンクに格納することとをさらに含む、請求項１１から１７のいずれか一項に記載の動作方法。
【請求項１９】
前記人工知能エンジンは、第３のキャッシュ部を備え、前記第３のキャッシュ部の複数のキャッシュ線が、前記２つの特徴マップデータ領域のいずれかの前記メモリバンクの前記特徴マップデータをパイプライン方式であらかじめ読み取るように構成されており、
前記ニューラルネットワーク動作を実行する前記ステップが、
前記人工知能エンジンによって、前記第３のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを連続的に読み取り、前記ニューラルネットワーク動作を実行することを含む、請求項１８に記載の動作方法。
【請求項２０】
前記人工知能エンジンは、第４のキャッシュ部を備え、前記第４のキャッシュ部の複数のキャッシュ線が、前記人工知能エンジンにより実行される前記ニューラルネットワーク動作中に生成された前記他の特徴マップデータをあらかじめ格納するように構成されており、
前記ニューラルネットワーク動作を実行する前記ステップが、
前記第４のキャッシュ部の前記キャッシュ線に格納された前記特徴マップデータを、パイプライン方式で連続的に読み取り、前記特徴マップデータを、前記２つの特徴マップデータ領域のうちの他の１つの前記メモリバンクに格納することを含む、請求項１８に記載の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアーキテクチャに関し、より詳細には、人工知能（ＡＩ：ａｒｔｉｆｉｃｉａｌ  ｉｎｔｅｌｌｉｇｅｎｃｅ）動作を実行できるメモリチップおよびその動作方法に関連している。
【背景技術】
【０００２】
人工知能（ＡＩ）動作の進化に伴い、ＡＩ動作は、ニューラルネットワークモデルを介して実行される画像解析、音声解析、および自然言語処理などのニューラルネットワーク動作において、広範囲に適用されてきた。さらに、ニューラルネットワークの動作の複雑さが増すにつれて、人工知能動作を実行するために現在使用されているコンピュータデバイスは、ニューラルネットワーク動作における現在の要求に対処するための効果的で高速な動作性能を、徐々に提供できなくなってきている。
【０００３】
これに関して、人工知能動作の速度を改善する一般的な方法は、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ：フィールドプログラマブルゲートアレイ）アーキテクチャ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向け集積回路）アーキテクチャ、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：グラフィックスプロセッシングユニット）アーキテクチャを使用して、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）によって実行されるニューラルネットワーク動作において高い動作負荷を有する関連するタスクを共有し、高速化された動作の効果を実現する。しかし、それらの方法は、メモリウォールによって依然として制限されているため、それらの動作性能を大幅に改善することができない。上記を考慮して、以下では、人工知能動作を迅速に実行できる処理アーキテクチャの設計方法に関する解決策が、複数の実施形態を参照して提案される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、人工知能（ＡＩ）動作を実行できるメモリチップおよびその動作方法を提供し、この動作方法は、メモリチップ内に統合された人工知能エンジンによって、メモリチップに格納されたデジタル化された入力データおよび重みデータを直接読み取ることができ、そのため、この人工知能エンジンは、ニューラルネットワーク動作を迅速に実行することができる。
【課題を解決するための手段】
【０００５】
本発明の人工知能動作を実行できるメモリチップは、メモリアレイ、メモリコントローラ、および人工知能エンジンを含む。メモリアレイは、複数のメモリ領域を含む。メモリ領域は、デジタル化された入力データおよび重みデータを格納するように構成される。メモリコントローラは、人工知能エンジン専用のバスを介してメモリアレイに結合される。人工知能エンジンは、メモリコントローラに結合され、メモリコントローラおよびバスを介してメモリアレイにアクセスし、デジタル化された入力データおよび重みデータを取得する。人工知能エンジンは、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。
【０００６】
本発明の一実施形態では、メモリ領域は複数のデータバッファ領域を含む。人工知能エンジンがメモリ領域のデータバッファ領域のうちの１つに含まれるデジタル化された入力データにアクセスするときに、外部プロセッサがデータバッファ領域の他の１つに含まれる他のデジタル化された入力データに同時にアクセスするように、人工知能エンジンおよび外部プロセッサは、データバッファ領域に交互にアクセスする。
【０００７】
本発明の一実施形態では、人工知能エンジンは、第１のキャッシュ部を含む。人工知能エンジンは、第１のキャッシュ部により、メモリ領域のデータバッファ領域の１つに含まれるデジタル化された入力データをあらかじめ読み取る。
【０００８】
本発明の一実施形態では、バスのバス幅は、メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である。
【０００９】
本発明の一実施形態では、重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせでアドレス符号化方式に従って、アドレスと共に符号化され、メモリ領域の各々の複数のメモリバンクに連続的に格納される。人工知能エンジンは、メモリ領域の各々のメモリバンクの対応する行を連続的にかつインターリーブで読み取り、重みデータの重み値または特徴マップデータの特徴値を連続的に取得する。
【００１０】
本発明の一実施形態では、メモリ領域は複数の重みデータ領域を含む。人工知能エンジンは、メモリ領域の重みデータ領域の複数のメモリバンクを連続的にかつインターリーブで読み取り、重みデータを取得する。
【００１１】
本発明の一実施形態では、人工知能エンジンは、第２のキャッシュ部を含む。第２のキャッシュ部の複数のキャッシュ線は、メモリバンクの重みデータをパイプライン方式であらかじめ読み取るように構成される。人工知能エンジンは、第２のキャッシュ部のキャッシュ線に格納された重みデータを連続的に読み取り、ニューラルネットワーク動作を実行する。
【００１２】
本発明の一実施形態では、メモリ領域は２つの特徴マップデータ領域を含む。人工知能エンジンは、２つの特徴マップデータ領域に交互にアクセスする。人工知能エンジンは、特徴マップデータを、２つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取り、人工知能エンジンによって実行されるニューラルネットワーク動作中に生成された他の特徴マップデータを、２つの特徴マップデータ領域の他の１つの複数のメモリバンクに格納する。
【００１３】
本発明の一実施形態では、人工知能エンジンは、第３のキャッシュ部を含む。第３のキャッシュ部の複数のキャッシュ線は、２つの特徴マップデータ領域のいずれかのメモリバンクの特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。人工知能エンジンは、第３のキャッシュ部のキャッシュ線に格納された特徴マップデータを連続的に読み取り、ニューラルネットワーク動作を実行する。
【００１４】
本発明の一実施形態では、人工知能エンジンは、第４のキャッシュ部を含む。第４のキャッシュ部の複数のキャッシュ線は、人工知能エンジンによって実行されるニューラルネットワーク動作中に生成された他の特徴マップデータをあらかじめ格納するように構成される。第４のキャッシュ部のキャッシュ線に格納された特徴マップデータは、パイプライン方式で連続的に読み取られ、特徴マップデータを２つの特徴マップデータ領域のうちの他の１つのメモリバンクに格納される。
【００１５】
本発明の人工知能動作を実行できる動作方法は、人工知能エンジンにより、人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイの複数のメモリ領域にアクセスして、デジタル化された入力データおよび重みデータを取得するステップと、人工知能エンジンにより、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行するステップと、を含む。
【００１６】
本発明の一実施形態では、デジタル化された入力データを取得するステップは、人工知能エンジンにより、メモリ領域の複数のデータバッファ領域の１つに含まれるデジタル化された入力データにアクセスするときに、外部プロセッサにより、データバッファ領域の他の１つに含まれる他のデジタル化された入力データに同時にアクセスすることを含む。
【００１７】
本発明の一実施形態では、デジタル化された入力データを取得するステップは、人工知能エンジンの第１のキャッシュ部により、メモリ領域の複数のデータバッファ領域の１つに含まれるデジタル化された入力データをあらかじめ読み取ることを含む。
【００１８】
本発明の一実施形態では、バスのバス幅は、メモリ領域の各々の複数のメモリバンクの各々の行全体のデータ量以上である。
【００１９】
本発明の一実施形態では、重みデータの複数の重み値または特徴マップデータの複数の特徴値が、行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、メモリ領域の各々の複数のメモリバンクに連続的に格納される。重みデータまたは特徴マップデータを取得するステップは、人工知能エンジンにより、メモリ領域の各々のメモリバンクの対応する行を連続的にかつインターリーブで読み取り、重みデータの重み値または特徴マップデータの特徴値を連続的に取得することを含む。
【００２０】
本発明の一実施形態では、重みデータを取得するステップは、人工知能エンジンにより、メモリ領域の重みデータ領域の複数のメモリバンクを連続的にかつインターリーブで読み取り、重みデータを取得することを含む。
【００２１】
本発明の一実施形態では、人工知能エンジンは、第２のキャッシュ部を含む。第２のキャッシュ部の複数のキャッシュ線は、メモリバンクの重みデータをパイプライン方式であらかじめ読み取るように構成される。ニューラルネットワーク動作を実行するステップは、人工知能エンジンにより、第２のキャッシュ部のキャッシュ線に格納された重みデータを連続的に読み取り、ニューラルネットワーク動作を実行することを含む。
【００２２】
本発明の一実施形態では、メモリ領域は２つの特徴マップデータ領域を含む。人工知能エンジンは、２つの特徴マップデータ領域に交互にアクセスする。この動作方法は、人工知能エンジンにより、特徴マップデータを、２つの特徴マップデータ領域のいずれかの複数のメモリバンクから交互に読み取るステップと、人工知能エンジンにより実行されるニューラルネットワーク動作中に生成された他の特徴マップデータを、２つの特徴マップデータ領域のうちの他の１つのメモリバンクに格納するステップとをさらに含む。
【００２３】
本発明の一実施形態では、人工知能エンジンは、第３のキャッシュ部を含む。第３のキャッシュ部の複数のキャッシュ線は、２つの特徴マップデータ領域のいずれかのメモリバンクの特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。ニューラルネットワーク動作を実行するステップは、人工知能エンジンにより、第３のキャッシュ部のキャッシュ線に格納された特徴マップデータを連続的に読み取り、ニューラルネットワーク動作を実行することを含む。
【００２４】
本発明の一実施形態では、人工知能エンジンは、第４のキャッシュ部を含む。第４のキャッシュ部の複数のキャッシュ線は、人工知能エンジンにより実行されるニューラルネットワーク動作中に生成された他の特徴マップデータをあらかじめ格納するように構成される。ニューラルネットワーク動作を実行するステップは、第４のキャッシュ部のキャッシュ線に格納された特徴マップデータをパイプライン方式で連続的に読み取ることと、特徴マップデータを、２つの特徴マップデータ領域のうちの他の１つのメモリバンクに格納することとを含む。
【発明の効果】
【００２５】
上記に基づいて、人工知能エンジンがニューラルネットワーク動作を実行するときに、人工知能エンジンが、より広い幅を有する人工知能エンジン専用のバスを介して、メモリアレイの特定のメモリ領域のメモリバンクを迅速に読み取り、ニューラルネットワーク動作を実行するために必要なデジタル化された入力データおよび重みデータを迅速に取得できるように、人工知能動作およびその動作方法を実行できるメモリチップは、人工知能エンジンをメモリチップ内に統合することができる。その結果、人工知能動作およびその動作方法を実行できるメモリチップは、迅速な人工知能動作性能を実現することができる。
【００２６】
本開示の上記の特徴および利点をさらに理解できるようにするために、複数の実施形態が、以下の通りに、図面と共に詳細に説明される。
【００２７】
添付の図面は、本発明をさらに理解できるようにするために含まれており、本明細書に組み込まれ、本明細書の一部を構成する。各図面は、説明と共に本発明の実施形態を示し、本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係る、メモリチップの機能ブロック図である。
【図２】本発明の実施形態に係る、メモリチップの動作アーキテクチャ図である。
【図３】本発明の実施形態に係る、人工知能エンジンがメモリ領域にアクセスする概略図である。
【図４】本発明の他の実施形態に係る、メモリチップの動作可能なアーキテクチャ図である。
【図５】本発明の実施形態に係る、メモリチップの動作方法のフローチャートである。
【発明を実施するための形態】
【００２９】
ここで、本発明の好ましい実施形態を詳細に参照し、その例が添付の図面に示される。可能な限り、同じ部分または類似する部分を参照するために、図面および説明において同じ参照番号が使用される。
【００３０】
本発明の内容をより理解可能にするために、以下の実施形態は、本発明を実際に実現できることを証明するための例として説明される。さらに、同じ参照番号が付いている要素／構成要素／ステップは、図面および実施形態において同じ部分または類似する部分を表している。
【００３１】
図１は、本発明の実施形態に係る、メモリチップの機能ブロック図である。図１を参照すると、メモリチップ１００は、人工知能（ＡＩ）エンジン１１０、メモリコントローラ１２０、およびメモリアレイ１３０を含む。人工知能エンジン１１０とメモリコントローラ１２０の間でデータ送信はバス１４０を介して実行され、メモリコントローラ１２０はメモリアレイ１３０にバス１５０を介してアクセスする。本実施形態では、メモリアレイ１３０が複数のメモリ領域に分割され、メモリ領域の各々が複数のメモリバンクを含む。メモリ領域の各々は、特定のデータ（またはデータセット）を格納するように構成される。さらに、一実施形態では、メモリコントローラ１２０が、複数の専用メモリ制御ユニットをさらに含んでよい。専用メモリ制御ユニットは、データアクセス動作をそれぞれ実行するために、１対１の方法でメモリ領域に対応している。
【００３２】
本実施形態では、バス１４０、１５０は人工知能エンジン１１０専用であり、バス１４０、１５０のバス幅は、メモリバンクの各々の行全体のデータ量以上であってよく、そのため、メモリバンクにアクセスするたびに、バス１４０、１５０はメモリバンクの行全体のデータに一度にアクセスすることができる。しかし本発明は、これに関して制限されない。一実施形態では、バス１４０、１５０のバス幅は、人工知能エンジン１１０のアーキテクチャ設計またはメモリアレイ１３０のデータ格納形式に従って対応して設計されてよい。
【００３３】
本実施形態では、人工知能エンジン１１０は、例えば、制御論理ユニット、算術論理演算ユニット、キャッシュ部などを含む回路素子によって構築されたＰＩＭ（Ｐｒｏｃｅｓｓｉｎｇ  Ｉｎ  Ｍｅｍｏｒｙ：メモリ内処理）アーキテクチャであってよい。人工知能エンジン１１０は、専用メモリコントローラ１２０およびバス１４０、１５０を介してメモリアレイ１３０のメモリバンクに直接アクセスするために、メモリチップ１００の周辺回路領域内に統合されてよい。また、人工知能エンジン１１０は、ニューラルネットワーク動作を実行するための機能を有するように設計される。加えて、本実施形態のメモリチップ１００は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ダイナミックランダムアクセスメモリ）ベースのチップまたはＤＲＡＭチップ技術に基づいて設計されたチップであってよいが、本発明はこれらに限定されない。
【００３４】
本実施形態では、人工知能エンジン１００がニューラルネットワーク動作を実行するときに、人工知能エンジン１００は、メモリアレイ１３０に格納されたデジタル化された入力データおよび重みデータに直接アクセスし、デジタル化された入力データおよび重みデータに従ってニューラルネットワーク動作を迅速に実行することができる。加えて、本実施形態におけるニューラルネットワーク動作は、例えば、ＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：深層ニューラルネットワーク）動作、ＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：畳み込みニューラルネットワーク）動作、またはＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：リカレントニューラルネットワーク）動作であってよいが、本発明によって特に限定されない。
【００３５】
図２は、本発明の実施形態に係る、メモリチップの動作アーキテクチャ図である。図２を参照すると、メモリチップ２００は、図１の実施形態で説明したメモリチップ１００のアーキテクチャを有してよい。本実施形態では、メモリチップ２００は、共有メモリバス４０を介してプロセッサ３０とのデータ送信を実行する。メモリチップ２００のメモリアレイのメモリ領域は、データバッファ領域２３１、２３２、および重みデータ領域２３３に分類され、データバッファ領域２３１、２３２、および重みデータ領域２３３は、メモリアレイの異なるメモリバンクにそれぞれ対応する。すなわち、データバッファ２３１、２３２、および重みデータ領域２３３は、アクセス動作を個別に受ける。
【００３６】
本実施形態では、チップ外部の共有データ送信条件による制限により、共有メモリバス４０のバス幅および帯域幅が制限される。しかし、外部プロセッサ３０に結合された共有メモリバス４０を介してメモリアレイにアクセスする代わりに、本実施形態の人工知能エンジン２１０は、メモリチップ２００内の専用バスを介してデータバッファ領域２３１、２３２、および重みデータ領域２３３にアクセスする。そうすることにより、本実施形態のメモリコントローラ１２０は、特定のデータアクセスモードに従ってメモリアレイ１３０に迅速アクセスすることができる。
【００３７】
本実施形態では、プロセッサ３０は、メモリチップ２００の外部に配置されてよく、例えば、中央処理装置（ＣＰＵ）、または汎用もしくは専用のその他の画像信号プロセッサ（ＩＳＰ：ｉｍａｇｅ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒｓ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、プログラマブルコントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、またはその他の類似するプロセッサ、あるいは上記の処理回路の組み合わせであってよい。
【００３８】
プロセッサ３０が画像信号プロセッサである例では、データバッファ領域２３１、２３２に格納されるデジタル化された入力データＤ１、Ｄ２は、画像データであってよく、人工知能エンジン２１０は、対応する特定のニューラルネットワーク動作を実行する機能を備えてあらかじめ設計されている。人工知能エンジン２１０は、プロセッサ３０によって提供された画像データに対してニューラルネットワーク動作を実行し、画像データ内の特定のコンテンツ情報を解析することができる。したがって、人工知能エンジン２１０がニューラルネットワーク動作を実行するときに、人工知能エンジン２１０は、データバッファ領域２３１および重みデータ領域２３３を読み取り、現在の画像データに対応するデジタル化された入力データＤ１およびニュートラルネットワーク動作を実行するために必要な重みデータＷを取得する。一方、プロセッサ３０は、次の画像データに対応するデジタル化された入力データＤ２をデータバッファ領域２３２に格納する。次に、プロセッサ３０が格納動作を完了した後に、人工知能エンジン２１０が、次の画像データに対応するデジタル化された入力データＤ２の読み取りを直ちに続行して動作を進め、プロセッサ３０も、データバッファ領域２３１へのデータの更新を直ちに開始する。
【００３９】
すなわち、人工知能エンジン２１０が専用バスを介してデータバッファ領域２３１を直接読み取る一方、プロセッサ３０が共有メモリバス４０を介してメモリチップ２００のメモリアレイ内のデータバッファ領域２３２にアクセスするため、プロセッサ３０および人工知能エンジン２１０は、同じバスを争う必要がないので、他方がアクセス動作を完了するのを待ってから連続的かつ交互にアクセス動作を実行する代わりに、各処理動作を並列に実行することができる。このように、本実施形態の人工知能エンジン２１０および外部プロセッサ３０は、バスがデータにアクセスするのを待つ時間を効果的に省きながら、ニューラルネットワーク動作を迅速かつ継続的に実行するように、データバッファ領域２３１、２３２に交互にアクセスする。
【００４０】
図３は、本発明の実施形態に従う、人工知能エンジンがメモリ領域にアクセスする概略図である。図３を参照すると、人工知能エンジン３１０は、キャッシュ部３１１を含む。キャッシュ部３１１はキャッシュ線３１１Ａ〜３１１Ｃを含んでいるが、本発明の各実施形態において説明されているキャッシュ部のキャッシュ線の数は、図３によって制限されない。メモリ領域３３３は、メモリバンク３３３＿１〜３３３＿Ｎを含み、Ｎは１より大きい正の整数である。メモリバンク３３３＿１〜３３３＿Ｎは、ワード線バッファ３３４＿１〜３３４＿Ｎをそれぞれ含む。本実施形態では、キャッシュ部３１１のキャッシュ線３３１Ａ〜３１１Ｃが、メモリバンク３３３＿１〜３３３＿Ｎのワード線バッファ３３４＿１〜３３４＿Ｎをあらかじめ読み取ってデータを取得するように構成される。これに関して、メモリ領域３３３は、例えば、デジタル化された入力データ、重みデータ、または特徴マップデータを含む、深層学習ネットワーク動作または深層ニューラルネットワーク動作を実行するのに必要なデータを格納でき、デジタル化された入力データ、重みデータ、または特徴マップデータは、メモリバンク３１１＿１〜３１１＿Ｎに連続的に格納される。
【００４１】
ニューラルネットワーク動作に必要な重みデータの複数の重み値および特徴マップデータの複数の特徴値の場合、各々が、ニューラルネットワークモデル内で読み取られる特定のアクセス順序パターンを有しているということに、注意すべきである。したがって、メモリコントローラは、この順序性を使用して、重みデータおよび特徴マップデータを順序正しくメモリアレイに格納し、メモリアクセスを高速化することができ、メモリ待ち時間を短縮しさえできる。これに関して、以下の表１のアドレス符号化方式により示されるように、重みデータの重み値ｗ０〜ｗ１１および特徴マップデータの特徴値ｆ０〜ｆ１１は、連続するアドレス空間またはメモリ空間に連続的に配置される。しかし、アドレス符号化方式によれば、アドレスの符号化において、最上位ビット部分、中間ビット部分、および下位ビット部分は、アクセスされる物理メモリ内の行アドレス、バンクアドレス、および列アドレスをそれぞれ表す。このようにして、メモリコントローラは、ある順序に従って、データを各重みデータ領域の対応するメモリバンクの対応する行の対応する列に連続的に格納することができる。
【００４２】
重みデータを例として使用すると、重みデータの連続する重み値ｗ０〜ｗ１１の各々が、表１のアドレス符号化方式に基づく行、バンク、および列の組み合わせのアドレス符号化方式に従って、アドレスと共に符号化され、重みデータ領域３３３のメモリバンク３３３＿１〜３３３＿３に連続的に格納されてよい。下の表１のバンクアドレス０００、００１、および０１０は、メモリバンク３３３＿１〜３３３＿３に連続的に対応するということに、注意すべきである。この例では、行、バンク、および列の組み合わせのアドレス符号化方式に従って、最初に重み値ｗ０〜ｗ３が重みデータ領域３３３のメモリバンク３３３＿１の第１の行（行アドレス０００に対応する）の連続する列（列アドレス００、０１、１０、および１１に対応する）に格納され、重み値ｗ４〜ｗ７がメモリバンク３３３＿２の第１の行（行アドレス０００に対応する）の連続する列（列アドレス００、０１、１０、および１１に対応する）に格納され、その後、重み値ｗ８〜ｗ１１がメモリバンク３３３＿３の第１の行（行アドレス０００に対応する）の連続する列（列アドレス００、０１、１０、および１１に対応する）に格納される。
【００４３】
【表１】
2020077449.tif 000003
【００４４】
この例では、メモリバンク３３３＿１〜３３３＿３はアクセス動作を個別に受ける。したがって、人工知能エンジン３１０が、メモリインターリーブアクセスメカニズムに基づいて、対応するアドレスの順序（例えば、表１に示されているアドレスの順序）に従ってニューラルネットワーク動作を実行するときに、人工知能エンジン３１０のキャッシュ部３１１は、ニューラルネットワーク動作を実行するために必要な重み値ｗ０〜ｗ１１を連続的に取得するために、メモリバンク３３３＿１〜３３３＿３（バンクアドレス０００、００１、および０１０に対応する）内の行全体（この例では、行アドレス０００に対応する）に含まれるデータをパイプライン方式で連続的に読み取ることができる。
【００４５】
より具体的には、メモリバンク３３３＿１〜３３３＿３のワード線バッファ３３４＿１〜３３４＿３は、データを、メモリバンク３３３＿１〜３３３＿３の各々の行全体（この例では、行アドレス０００に対応する）から予め読み取り、そのためキャッシュ線３１１Ａ、３１１Ｂ、および３１１Ｃは、メモリバンク３３３＿１〜３３３＿３の各々の行全体の重みデータ（重み値ｗ０〜ｗ１１）をインターリーブで先読みすることができる。言い換えると、人工知能エンジン３１０は、より広い幅を有する専用バスおよび専用メモリコントローラを介して重みデータ領域３３３を読み取り、専用バスの幅は、メモリバンク３３３＿１〜３３３＿Ｎの各々の行全体のデータ量以上であってよい。次に、人工知能エンジン３１０は、キャッシュ部３１１のキャッシュ線３１１Ａ、３１１Ｂ、および３１１Ｃに格納された重みデータ（この例では、行アドレス０００の重み値ｗ０〜ｗ１１に対応する）を連続的に読み取り、ニューラルネットワーク動作を実行する。
【００４６】
別の例として、重みデータ（重み値ｗ０〜ｗ１１）がキャッシュ線３３１Ａ〜３３１Ｂにインターリーブで移動され、人工知能エンジン３１０によって連続的に使用されるときに、メモリバンク３３３＿４〜３３３＿６のワード線バッファ３３４＿４〜３３４＿６の各々が、データ（例えば、表１に続くような重み値ｗ１２〜ｗ２３）を、メモリバンク３３３＿４〜３３３＿６の各々の行全体から、それぞれあらかじめ読み取る。類推によって、人工知能エンジン３１０は、ニューラルネットワーク動作を迅速に実行する効果を実現するために、重みデータを、ニューラルネットワークアクセスパターンに従ってより効率的かつ迅速に読み取ることができる。さらに重要なことに、メモリ領域のメモリバンクをインターリーブで読み取ることにより、本実施形態の人工知能エンジン３１０は、ｔＲＣＤ（ＲＡＳ−ＣＡＳ間遅延）時間遅延およびｔＲＰ（ＲＡＳプリチャージ時間）時間遅延の影響を効果的に克服することができる。
【００４７】
加えて、この実施形態で説明された特徴マップデータは、重みデータに使用されるのと同じ方法で格納され、読み取られてもよく、それについては以下で繰り返さない。さらに、表１は、重みデータの一部および特徴マップデータの一部についてアドレス符号化方式を表すためのみに使用され、本発明における重みデータおよび特徴マップデータのデータ量および長さ、ならびにアドレス符号化方式は、表１によって制限されない。
【００４８】
図４は、本発明の他の実施形態に係る、メモリチップの動作アーキテクチャ図である。図４を参照すると、メモリチップ４００は、図１の実施形態で説明されたメモリチップ１００のアーキテクチャを有してよい。本実施形態では、メモリチップ４００は、共有メモリバスを介して外部プロセッサとのデータ送信を実行する。メモリチップ４００のメモリアレイのメモリ領域は、データバッファ領域４３１、４３２、重みデータ領域４３３、および特徴マップデータ領域４３４、４３５に分類される。本実施形態では、データバッファ領域４３１、４３２、重みデータ領域４３３、および特徴マップデータ領域４３４、４３５は、メモリアレイの異なるメモリバンクにそれぞれ対応する。すなわち、データバッファ領域４３１、４３２、重みデータ領域４３３、および特徴マップデータ領域４３４、４３５は、アクセス動作を個別に受ける。
【００４９】
本実施形態では、人工知能エンジン４１０は、例えば、畳み込みニューラルネットワーク動作を実行してよい。人工知能エンジン４１０は、各専用メモリコントローラおよび各専用バスを介して、データバッファ領域４３１、４３２、重みデータ領域４３３、および特徴マップデータ領域４３４、４３５にアクセスする。このとき、人工知能エンジン４１０は、特徴マップデータ領域４３４、４３５に交互にアクセスする。例えば、一番初めに、人工知能エンジン４１０がデータバッファ領域４３１内のデジタル化された入力データＤ１を読み取って、畳み込みニューラルネットワーク動作を実行した後に、人工知能エンジン４１０は、第１の特徴マップデータＦ１を生成する。人工知能エンジン４１０は、第１の特徴マップデータＦ１を特徴マップデータ領域４３４に格納する。その後、人工知能エンジン４１０が次の畳み込みニューラルネットワーク動作を実行するときに、人工知能エンジン４１０は、動作のために特徴マップデータ領域４３４の第１の特徴マップデータＦ１を読み取り、第２の特徴マップデータＦ２を生成する。人工知能エンジン４１０は、第２の特徴マップデータＦ２を特徴マップデータ領域４３５に格納する。類推によって、人工知能エンジン４１０は、前の動作により生成された特徴マップデータを特徴マップデータ領域４３４または４３５のメモリバンクから交互に読み取り、次に、現在のニューラルネットワーク動作中に生成された現在の特徴マップデータを、対応する特徴マップデータ領域４３５または４３４のメモリバンクに格納する。さらに、本実施形態では、デジタル化された入力データＤ２が、外部プロセッサによって同時にデータバッファ領域４３２に格納されるか、またはデータバッファ領域４３２から読み取られてよい。この実装は、畳み込みニューラルネットワークに限定されず、他のタイプのネットワークにも適用可能である。
【００５０】
本実施形態では、人工知能エンジン４１０は、複数のキャッシュ部４１１〜４１４を含んでよい。キャッシュ部４１１は、データバッファ領域４３１内のデジタル化された入力データＤ１またはデータバッファ領域４３２内のデジタル化された入力データＤ２をあらかじめ読み取るように構成される。キャッシュ部４１２は、重みデータ領域４３３内の重みデータＷをパイプライン方式であらかじめ読み取るように構成される。キャッシュ部４１３、４１４は、特徴マップ領域４３４または４３５に対応する特徴マップデータをパイプライン方式であらかじめ読み取るように構成される。言い換えると、人工知能エンジン４１０は、ニューラルネットワーク動作の速度を上げるために、キャッシュ部４１１〜４１４によって、データをパイプライン方式であらかじめ読み取る。重みデータＷの複数の重み値が、上の表１の同じアドレス符号化方式によって、重みデータ領域４３３のメモリバンクに格納されてよく、人工知能エンジン４１０のキャッシュ部４１２が、重みデータＷの重み値を連続的に取得するために、同じアドレス符号化方式に従って重みデータ領域４３３のメモリバンクをパイプライン方式で連続的にあらかじめ読み取るということに、注意するべきである。
【００５１】
特徴マップデータＦ１の複数の特徴値が、上の表１の同じアドレス符号化方式によって、特徴マップデータ領域４３４のメモリバンクに格納されてよく、人工知能エンジン４１０のキャッシュ部４１３が、特徴マップデータＦ１の特徴値を連続的に取得するために、同じアドレス符号化方式に従って特徴マップデータ領域４３４のメモリバンクをパイプライン方式で連続的にあらかじめ読み取る。また、人工知能エンジン４１０は、ニューラルネットワーク動作中に生成された特徴マップデータＦ２を、キャッシュ部４１４に連続的にあらかじめ格納し、キャッシュ部４１４の複数のキャッシュ線に格納された特徴マップデータを、パイプライン方式で連続的に読み取り、特徴マップデータを特徴マップデータ領域４３５に格納する。加えて、本発明の一部の実施形態では、上記のキャッシュ部が、複数のキューを使用することによって実装されてもよい。
【００５２】
言い換えると、本実施形態の人工知能エンジン４１０は、前に生成された特徴マップデータを特徴マップデータ領域４３４、４３５のメモリバンクから交互に読み取り、人工知能エンジン４１０により実行されるニューラルネットワーク動作中に生成された現在の特徴マップデータを格納する。したがって、本実施形態の人工知能エンジン４１０は、デジタル化された入力データＤ１および重みデータＷを迅速に取得することができる。また、ニューラルネットワーク動作中に、人工知能エンジン４１０は、ニューラルネットワーク動作を迅速に実行する効果を実現するために、特徴マップデータ領域４３４、４３５に迅速かつ連続的にアクセスすることができる。
【００５３】
加えて、本実施形態のメモリチップ４００の他の内部デバイスの特徴、実装、および関連する技術的特徴に関する十分な教示、提案、および指示は、図１〜図３の前述の実施形態に関連する説明に従って得られてよく、それらは以下で繰り返されない。
【００５４】
図５は、本発明の実施形態に係る、メモリチップの動作方法のフローチャートである。図５の動作フローは、例えば、図１、２、および４の実施形態のメモリチップ１００、２００、および４００に適用できる。図５および図１を参照し、図１のメモリチップ１００を例にとってみると、メモリチップ１００は、ステップＳ５１０、Ｓ５２０を実行できる。ステップＳ５１０で、メモリチップ１００の人工知能エンジン１１０は、人工知能エンジン１１０専用のメモリコントローラ１２０およびバスを介してメモリアレイ１３０の複数のメモリ領域にアクセスし、デジタル化された入力データおよび重みデータを取得する。ステップＳ５２０で、メモリチップ１００の人工知能エンジン１１０は、デジタル化された入力データおよび重みデータに基づいてニューラルネットワーク動作を実行する。したがって、本実施形態のメモリチップの動作方法は、メモリチップ１００内に統合された人工知能エンジン１１０によりニューラルネットワーク動作を迅速に実行する効果を実現できる。
【００５５】
加えて、本実施形態のメモリチップ１００の他の内部デバイスの特徴、実装、および関連する技術的特徴に関する十分な教示、提案、および指示は、図１〜図４の前述の実施形態に関連する説明に従って得られてよく、それらは以下で繰り返されない。
【００５６】
要約すると、人工知能動作を実行できるメモリチップおよびその動作方法は、人工知能エンジンをメモリチップ内に統合することができ、ニューラルネットワーク動作専用の動作モードで、人工知能エンジン専用のメモリコントローラおよびバスを介してメモリアレイのメモリ領域に迅速にアクセスすることができる。ここで、本発明の人工知能エンジン専用のバスの幅は、外部の共有バスの幅の仕様によって制限されず、したがって、より高いデータ送信性能を実現できる。また、人工知能動作を実行するために必要なデータにアクセスする方法は、ｔＲＣＤ時間遅延およびｔＲＰ時間遅延の影響を効果的に克服するために、特定のアドレス順序に従って対応するメモリ領域のメモリバンク内のデータにアクセスできる。その結果、人工知能動作およびその動作方法を実行できるメモリチップは、迅速な人工知能動作性能を実現することができる。
【００５７】
本発明の範囲または趣旨を逸脱することなく、本発明の構造に対してさまざまな変更および変形が行われ得るということは、当業者とって明らかであろう。上記を考慮して、本発明の変更および変形が以下の特許請求およびそれと同等のものの範囲に含まれる限り、本発明が本発明の変更および変形を包含することが意図される。
【産業上の利用可能性】
【００５８】
本発明のメモリチップおよびその動作方法は、メモリおよびその人工知能動作方法において適用されてよい。
【符号の説明】
【００５９】
３０  プロセッサ
４０  共有メモリバス
１００、２００、４００  メモリチップ
１１０、２１０、３１０、４１０  人工知能エンジン
１２０  メモリコントローラ
１３０  メモリアレイ
１４０、１５０  バス
２３１、２３２、４３１、４３２  データバッファ領域
２３３、３３３、４３３  重みデータ領域
３１１、４１１、４１２、４１３、４１４  キャッシュ
３１１Ａ、３１１Ｂ、３１１Ｃ  キャッシュ線
３３１＿１〜３３１＿Ｎ  メモリバンク
３３４＿１〜３３４＿Ｎ  ワード線バッファ
４３４、４３５  特徴マップデータ領域
Ｄ１、Ｄ２  デジタル化された入力データ
Ｗ  重みデータ
Ｆ１、Ｆ２  特徴マップデータ
Ｓ５１０、Ｓ５２０  ステップ
【図１】
2020077449.tif 000004
【図２】
2020077449.tif 000005
【図３】
2020077449.tif 000006
【図４】
2020077449.tif 000007
【図５】
2020077449.tif 000008
【外国語明細書】
2020077449000001.pdf