(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-03
(45)【発行日】2024-10-11
(54)【発明の名称】データ保存装置、データ処理システム及びこれのための加速装置
(51)【国際特許分類】
G06F 15/177 20060101AFI20241004BHJP
G06N 3/063 20230101ALI20241004BHJP
G06F 15/173 20060101ALI20241004BHJP
G06F 12/00 20060101ALI20241004BHJP
G06F 1/04 20060101ALI20241004BHJP
G06F 1/08 20060101ALI20241004BHJP
G06F 1/3237 20190101ALI20241004BHJP
【FI】
G06F15/177 A
G06N3/063
G06F15/173
G06F12/00 550E
G06F1/04 570
G06F1/08 510
G06F1/3237
(21)【出願番号】P 2020079232
(22)【出願日】2020-04-28
【審査請求日】2022-12-28
(31)【優先権主張番号】10-2019-0082000
(32)【優先日】2019-07-08
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】南智勳
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2020/0125505(US,A1)
【文献】米国特許出願公開第2019/0101974(US,A1)
【文献】米国特許出願公開第2012/0304024(US,A1)
【文献】米国特許第10893096(US,B2)
【文献】韓国公開特許第10-2013-0087853(KR,A)
【文献】韓国公開特許第10-2018-0012439(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/177
G06N 3/063
G06F 15/173
G06F 12/00
G06F 1/04
G06F 1/08
G06F 1/3237
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークモデル及びバッチサイズの少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決
定するホスト装置;及び、
前記ニューラルネットワークモデルを具現するためのPEアレイを含む加速器を含み、前記加速器は、前記メモリ帯域幅のスピードモードによって
前記PEアレイの第1の入力データ及び第2の入力データの伝達経路を制御
するデータ保存装置を含み、
前記スピードモードがハイスピードモードに決定された場合、メモリパワー消耗量は前記メモリパワー消耗量の初期設定基準よりも大きく、前記スピードモードがロースピードモードに決定された場合、演算パワー消耗量は前記演算パワー消耗量の初期設定基準よりも大きく、
前記メモリ帯域幅は、前記ホスト装置から前記データ保存装置に伝達される前記第1の入力データ及び前記第2の入力データの帯域幅に関連しており、
前記ハイスピードモードにおける前記メモリ帯域幅は、前記ロースピードモードにおける前記メモリ帯域幅よりも大きいことを特徴とする、データ処理システム。
【請求項2】
前記PEアレイは、第1のPEグループ及び第2のPEグループを含み、前記第1及び第2のPEグループの各々は第1の方向及び
前記第1の方向と異なる第2の方向に配列された複数のPEを含
み、
前記加速器は、
前記PEアレイ内の前記第1のPEグループ及び前記第2のPEグループ間に配置されて、前記PEアレイ内の前記第1の方向の第2のPEグループに第1のデータグループの第1の入力データ及び第2のデータグループの第1の入力データの何れか一つを選択的に入力させ、前記PEアレイ内の前記第2の方向の第2のPEグループに第3のデータグループの第2の入力データ及び第4のデータグループの第2の入力データの何れか一つを選択的に入力させるためのPEアレイ調整ブロック;及び、
前記メモリ帯域幅のスピードモードによって前記PEアレイ調整ブロッ
クを制御するための適応型データ経路コントローラを含むことを特徴とする、請求項1に記載のデータ処理システム。
【請求項3】
前記第1のPEグループ及び前記第2のPEグループの各々の前記第1の方向に配列されたPEの数は、前記メモリ帯域幅の基本単位に対応することを特徴とする、請求項2に記載のデータ処理システム。
【請求項4】
前記PEアレイ調整ブロックは、前記第1の方向の前記第2のPEグループに前記第1の入力データを入力させるための複数の第1の多重化器と、前記第2の方向の前記第2のPEグループに前記第2の入力データを入力させるための複数の第2の多重化器とを含むことを特徴とする、請求項3に記載のデータ処理システム。
【請求項5】
前記第1の方向はロウ(Row)方向であり、前記第2の方向はカラム(column)方向であり、
前記複数の第1の多重化器は前記PEアレイ内の前記第2のPEグループの一番目のカラムに配列されたPEらに各々
連結され、前記複数の第2の多重化器は前記PEアレイ内の第2のPEグループの一番目のロウに配列されたPEらに各々
連結されることを特徴とする、請求項4に記載のデータ処理システム。
【請求項6】
前記適応型データ経路コントローラは、
前記PEアレイの初期構造がN×M構造であり、前記メモリ帯域幅が2×であり、前記メモリ帯域幅のスピードモードが前記ロースピードモードである場合、前記PEアレイの構造が2N×M/2になるように、前記第1の入力データ及び前記第2の入力データの入力経路を制御し、
前記Nはバッチサイズであり、
正の整数であり、前記Mは加重値幅
であり、2以上の正の整数であることを特徴とする、請求項5に記載のデータ処理システム。
【請求項7】
前記適応型データ経路コントローラは、
前記第1のPEグループが前記第1のデータグループの前記第1の入力データを受信すると、前記複数の第1の多重化器が
前記第1の方向の前記第2のPEグループに前記第2のデータグループの前記第1の入力データを
入力するように制御し、
前記第1のPEグループが前記第3のデータグループの前記第2の入力データを受信すると、前記第2の多重化器が
前記第2の方向の前記第2のPEグループに前記第3のデータグループの前記第2の入力データを
入力するように制御
し、
前記第1のデータグループ及び前記第2のデータグループの各々のサイズはNであり、
前記第3のデータグループ及び前記第4のデータグループの各々のサイズはM/2であることを特徴とする、請求項6に記載のデータ処理システム。
【請求項8】
前記加速器は、前記ホスト装置から伝達される前記メモリ帯域幅のスピードモードを前記適応型データ経路コントローラに伝達するPEコントローラをさらに含むことを特徴とする、請求項2に記載のデータ処理システム。
【請求項9】
前記加速器は、前記PEアレイにロウ(Row)単位にクロックゲーティン
グを遂行するための第1のレベルパワーコントローラをさらに含むことを特徴とする、請求項2に記載のデータ処理システム。
【請求項10】
前記加速器は、
前記PEアレイ内の前記第1の方向のPEらに第1の入力データを伝達するIOバッファ;及び、
前記PEアレイ内の前記第2の方向のPEらに第2の入力データを伝達する加重値バッファをさらに含むことを特徴とする、請求項2に記載のデータ処理システム。
【請求項11】
前記第1の方向はロウ(Row)方向であり、前記第2の方向はカラム(column)方向であり、
前記加速器は、
前記PEアレイのロウ別に各々具備され
、前記PEアレイによって演算処理されたデータに活性化関数処理を遂行するための活性化関数処理
部をさらに含むことを特徴とする、請求項10に記載のデータ処理システム。
【請求項12】
前記データ保存装置は、
少なくとも一つのメモリダイに前記メモリ帯域幅のスピードモードを伝達するメモリコントローラ;及び、
前記メモリコントローラから伝達される前記メモリ帯域幅のスピードモードに基づいてメモリのクロックを変更する少なくとも一つ以上のメモリダイをさらに含むことを特徴とする、請求項1に記載のデータ処理システム。
【請求項13】
前記データ保存装置はPNM(Processing Near Memory)であることを特徴とする、請求項1に記載のデータ処理システム。
【請求項14】
前記ホスト装置は、前記
ニューラルネットワークモデルがCNN(Convolutional Neural Network)である場合、前記メモリ帯域幅のスピードモードを
前記ロースピードモードに決定することを特徴とする、請求項1に記載のデータ処理システム。
【請求項15】
前記ホスト装置は、前記
ニューラルネットワークモデルがMLP(Multi-Layer Perceptron)及びLSTM(Long Short Term Memory)の何れか一つである場合、前記バッチサイズを基準値と比較して、前記バッチサイズが基準値を超過する場合は前記メモリ帯域幅のスピードモードを
前記ロースピードモードに決定し、前記バッチサイズが基準値以下である場合は
前記ハイスピードモードに決定することを特徴とする、請求項1に記載のデータ処理システム。
【請求項16】
メモリ帯域幅のスピードモードに基づいてPEアレイに入力される第1の入力データ及び第2の入力データの伝達経路を制
御する加速器を含み、
前記加速器は、
第1のPEグループ及び第2のPEグループを含み、前記第1及び第2のPEグループの各々は第1の方向及び
前記第1の方向と異なる第2の方向に配列された複数のPEを含むPEアレイ
;
前記PEアレイ内の前記第1のPEグループ及び前記第2のPEグループ間に配置されて、前記PEアレイ内の前記第1の方向の第2のPEグループに第1のデータグループの第1の入力データ及び第2のデータグループの第1の入力データの何れか一つを選択的に入力させ、前記PEアレイ内の前記第2の方向の第2のPEグループに第3のデータグループの第2の入力データ及び第4のデータグループの第2の入力データの何れか一つを選択的に入力させるためのPEアレイ調整ブロック
;及び
前記メモリ帯域幅のスピードモードによって前記PEアレイ調整ブロックを制御するための適応型データ経路コントローラを含
み、
前記スピードモードがハイスピードモードに決定された場合、メモリパワー消耗量は前記メモリパワー消耗量の初期設定基準よりも大きく、前記スピードモードがロースピードモードに決定された場合、演算パワー消耗量は前記演算パワー消耗量の初期設定基準よりも大きく、
前記メモリ帯域幅は、ホスト装置から受信した前記第1の入力データ及び前記第2の入力データの帯域幅に関連しており、
前記ハイスピードモードにおける前記メモリ帯域幅は、前記ロースピードモードにおける前記メモリ帯域幅よりも大きいことを特徴とする、加速装置。
【請求項17】
前記第1のPEグループ及び前記第2のPEグループの各々の前記第1の方向に配列されたPEの数は、前記メモリ帯域幅の基本単位に対応することを特徴とする、請求項1
6に記載の加速装置。
【請求項18】
前記PEアレイ調整ブロックは、前記第1の方向の前記第2のPEグループに前記第1の入力データを入力させるための複数の第1の多重化器と、前記第2の方向の前記第2のPEグループに前記第2の入力データを入力させるための複数の第2の多重化器とを含むことを特徴とする、請求項1
7に記載の加速装置。
【請求項19】
前記第1の方向はロウ(Row)方向であり、前記第2の方向はカラム(column)方向であり、
前記複数の第1の多重化器は前記PEアレイ内の前記第2のPEグループの一番目のカラムに配列されたPEらに各々
連結され、前記複数の第2の多重化器は前記PEアレイ内の第2のPEグループの一番目のロウに配列されたPEらに各々
連結されることを特徴とする、請求項1
8に記載の加速装置。
【請求項20】
前記適応型データ経路コントローラは、前記PEアレイの初期構造がN×M構造であり、前記メモリ帯域幅が2×であり、前記メモリ帯域幅のスピードモードが前記ロースピードモードである場合、前記PEアレイの構造が2N×M/2になるように、前記第1のデータ及び前記第2のデータの入力経路を制御し、
前記Nはバッチサイズであり、
正の整数であり、前記Mは加重値幅
であり、2以上の正の整数であることを特徴とする、請求項
19に記載の加速装置。
【請求項21】
前記適応型データ経路コントローラは、
前記第1のPEグループが前記第1のデータグループの前記第1の入力データを受信すると、前記複数の第1の多重化器が
前記第1の方向の前記第2のPEグループに前記第2のデータグループの前記第1の入力データを
入力するように制御し、
前記第1のPEグループが前記第3のデータグループの前記第2の入力データを受信すると、前記第2の多重化器が
前記第2の方向の前記第2のPEグループに前記第3のデータグループの前記第2の入力データを
入力するように制御
し、
前記第1のデータグループ及び前記第2のデータグループの各々のサイズはNであり、
前記第3のデータグループ及び前記第4のデータグループの各々のサイズはM/2であることを特徴とする、請求項2
0に記載の加速装置。
【請求項22】
ニューラルネットワークモデル及びバッチサイズの少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決
定する中央処理装置;及び、
前記ニューラルネットワークモデルを具現するためのPEアレイを含み、前記メモリ帯域幅のスピードモードによって
前記PEアレイの第1の入力データ及び第2の入力データの伝達経路を制御
する加速器を含み、
前記スピードモードがハイスピードモードに決定された場合、メモリパワー消耗量は前記メモリパワー消耗量の初期設定基準よりも大きく、前記スピードモードがロースピードモードに決定された場合、演算パワー消耗量は前記演算パワー消耗量の初期設定基準よりも大きく、
前記メモリ帯域幅は、前記中央処理装置から受信された前記第1の入力データ及び前記第2の入力データの帯域幅に関連しており、
前記ハイスピードモードにおける前記メモリ帯域幅は、前記ロースピードモードにおける前記メモリ帯域幅よりも大きいことを特徴とする、データ保存装置。
【請求項23】
前記PEアレイは、第1のPEグループ及び第2のPEグループを含み、前記第1及び第2のPEグループの各々は第1の方向及び
前記第1の方向と異なる第2の方向に配列された複数のPEを含
み、
前記加速器は、
前記PEアレイ内の前記第1のPEグループ及び前記第2のPEグループ間に配置されて、前記PEアレイ内の前記第1の方向の第2のPEグループに第1のデータグループの第1の入力データ及び第2のデータグループの第1の入力データの何れか一つを選択的に入力させ、前記PEアレイ内の前記第2の方向の第2のPEグループに第3のデータグループの第2の入力データ及び第4のデータグループの第2の入力データの何れか一つを選択的に入力させるためのPEアレイ調整ブロック;及び、
前記メモリ帯域幅のスピードモードによって前記PEアレイ調整ブロッ
クを制御するための適応型データ経路コントローラを含むことを特徴とする、請求項2
2に記載のデータ保存装置。
【請求項24】
前記第1の方向の前記第2のPEグループに前記第1の入力データを入力させるための複数の第1の多重化器と、前記第2の方向の前記第2のPEグループに前記第2の入力データを入力させるための複数の第2の多重化器とを含むことを特徴とする、請求項2
3に記載のデータ保存装置。
【請求項25】
前記加速器は、前記中央処理装置から伝達される前記メモリ帯域幅のスピードモードを前記適応型データ経路コントローラに伝達するPEコントローラをさらに含むことを特徴とする、請求項2
3に記載のデータ保存装置。
【請求項26】
少なくとも一つのメモリダイに前記メモリ帯域幅のスピードモードを伝達するメモリコントローラ;及び、
前記メモリコントローラから伝達される前記メモリ帯域幅のスピードモードに基づいてメモリのクロックを変更する少なくとも一つ以上のメモリダイをさらに含むことを特徴とする、請求項2
2に記載のデータ保存装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ保存装置、データ処理システム及びこれのための加速装置に関する。
【背景技術】
【0002】
AI加速器(Artificial Intelligence Accelerator)は、ソフトウェアで処理したMLP(Multi-Layer Perceptron)やLSTM(Long Short Term Memory)やCNN(Convolutional Neural Network)などのアプリケーションをハードウェアで具現することで、ホストの演算及びリソース負担を低減しながら、関連演算の性能は極大化できるアプリケーションであり得る。
【0003】
前記AI加速器は高いパワー消耗量を持つことができる。このとき、パワー消耗量は演算パワー及びメモリパワーに区分できる。一般に、メモリ帯域幅が高まるほどメモリパワーの消耗も大きくなり得る。
【0004】
ディープラーニング(Deep Learning)は、ネットワークモデルによって主要応用が決定され得る。例えば、CNNは演算器が相対的に多く必要な応用であり得、MLP及びLSTMはメモリ帯域幅が多く必要な応用であり得る。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施例は、メモリ帯域幅によってメモリパワー及び演算パワーを流動的に調節するためのデータ処理システム及びこれのための加速装置を提供する。
【課題を解決するための手段】
【0006】
本発明の実施例に係るデータ処理システムは、ネットワークモデル及びバッチサイズ(Batch Size)の少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決定して、加速器の演算パワー及びメモリパワーを調節するホスト装置;及び、前記メモリ帯域幅のスピードモードによってPEアレイ(Processing Element Array)の第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイの構造を変更する加速器を含むデータ保存装置を含み、前記メモリ帯域幅のスピードモードは、総パワー予算において、前記メモリパワーを初期設定基準より上向き調節するハイスピードモード(High Speed Mode)と、前記演算パワーを初期設定基準より上向き調節するロースピードモード(Low Speed Mode)とを含むことができる。
【0007】
本発明の実施例に係る加速装置は、メモリ帯域幅のスピードモードに基づいてPEアレイに入力される第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイの構造を変更する加速器を含み、前記加速器は、第1のPEグループ及び第2のPEグループを含み、前記第1及び第2のPEグループの各々は第1の方向及び第2の方向に配列された複数のPEを含むPEアレイ;及び、前記PEアレイ内の前記第1のPEグループ及び前記第2のPEグループ間に配置され、前記PEアレイ内の前記第1の方向の第2のPEグループに第1のデータグループの第1の入力データ及び第2のデータグループの第1の入力データの何れか一つを選択的に入力させ、前記PEアレイ内の前記第2の方向の第2のPEグループに第3のデータグループの第2の入力データ及び第4のデータグループの第2の入力データの何れか一つを選択的に入力させるためのPEアレイ調整ブロックを含むことができる。
【0008】
本発明の実施例に係るデータ保存装置は、ネットワークモデル及びバッチサイズの少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決定して、加速器の演算パワー及びメモリパワーを調節する中央処理装置;及び、前記メモリ帯域幅のスピードモードによってPEアレイの第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイの構造を変更する加速器を含み、前記メモリ帯域幅のスピードモードは、総パワー予算において、前記メモリパワーを初期設定基準より上向き調節するハイスピードモードと、前記演算パワーを初期設定基準より上向き調節するロースピードモードとを含むことができる。
【発明の効果】
【0009】
本発明によれば、メモリ帯域幅によって演算パワー及びメモリパワーを流動的に調節するため、ネットワークモデル別の主要応用の性能を向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施例に係るデータ処理システム及び外部サーバーの連結関係を示す図である。
【
図2】本発明の実施例に係るデータ処理システムの構成を示す図である。
【
図3】本発明の実施例に係るホスト装置におけるスピードモードの決定方法を説明するための図である。
【
図4】本発明の実施例に係る総パワー予算の例示図である。
【
図5】本発明の実施例に係るメモリパワー及び演算パワーの調整を説明するための例示図である。
【
図6】本発明の実施例に係るデータ保存装置の構成を示す図である。
【
図7】本発明の実施例に係る加速器の構成を詳細に示す図である。
【
図8】本発明の実施例に係るPEアレイの例示図である。
【
図9】本発明の実施例に係るPEアレイの他の例示図である。
【
図10】本発明の実施例に係るPEアレイ構造の例示図である。
【
図11】本発明の実施例に係るメモリコントローラ及びメモリダイ間の連結関係を示す図である。
【
図12】本発明の実施例に係るスピードモードによる性能変化を説明するための図である。
【
図13】本発明の実施例に係る加速装置の構成を示す図である。
【
図14】本発明の他の実施例に係るデータ保存装置の構成を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面に基づき、本発明の好適な実施例を詳細に説明する。
【0012】
図1は本発明の実施例に係るデータ処理システム及び外部サーバーの連結関係を示す図、
図2は本発明の実施例に係るデータ処理システムの構成を示す図である。
【0013】
以下では、本発明の実施例に係るホスト装置におけるスピードモードの決定方法を説明するための
図3、本発明の実施例に係る総パワー予算の例示図である
図4、本発明の実施例に係るメモリパワー及び演算パワーの調整を説明するための例示図である
図5を参照して説明する。
【0014】
図1を参照すれば、データ処理システム20は、通信網を介して外部に位置するサーバー10と連結してデータが受信できる。このとき、データは後述するバッチサイズ(Batch Size)であり得る。ディップラーニングアプリケーション(Deep Learning Application)はバッチ単位にデータが処理できる。
【0015】
前記バッチサイズは、データ処理システム20が1回に処理できるデータの数を意味することができる。例えば、第1の入力データが写真イメージである場合、入力イメージデータの写真個数をバッチと言える。10バッチは10個のイメージが第1の入力データとして用いられるのを示す。10個の第1の入力データは同一の第2の入力データとMAC(multiplication and accumulation)演算を遂行するようになる。
【0016】
データ処理システム20は、ホスト装置100及びデータ保存装置200を含むことができる。
【0017】
図2を参照すれば、ホスト装置100は、アプリケーション(Application)110、ソフトウェアファームウエア(Software Firmware)120及びアプリケーションプログラミングインターフェース(Application Programming Interface)130を含むことができる。データ保存装置200はPNM(processing-near-memory)であり得る。PNMは、集積回路(IC)パッケージに統合された少なくとも一つのメモリダイ(Memory die)210及びロジックダイ(Logic die)300を含むことができる。
【0018】
ホスト装置100のソフトウェアファームウエア120は、ネットワークモデル及びバッチサイズの少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決定して、データ保存装置200を含む加速器400の演算パワー及びメモリパワーを調節することが可能である。
【0019】
図3を参照すれば、ホスト装置100は、ネットワーク情報(Network Information)510及びPNMアーキテクチャ情報(PNM Architecture Information)520のようなハードウェアアーキテクチャ情報を含むネットワークモデル情報に基づき、コンパイル(compiling)が遂行できる(530)。このとき、ホスト装置100は、PNMのためのコンパイルを遂行するものであって、パワー共有(Power share)のための部分が追加され得る。具体的に、ホスト装置100は、既存の加速器だけのためのコンパイルの以外に、後述する総パワー予算においてメモリパワー及び演算パワーの各々を変更するためのコンパイルもさらに遂行するものである。
【0020】
一方、前述したPNMは、データシグナルがPNMにおけるロジックダイ300と連結されるため、HBM(High Bandwidth Memory)のデータピン(Data Pin)構造よりも相対的に高いスピードを示すことができる。これは、メモリダイ210及びロジックダイ300をICパッケージに統合することで、オフチップ(Offchip)連結に対するスピード制約が除去されるためである。
【0021】
前記ネットワークは、CNN(Convolutional Neural Network)、MLP(Multi-Layer Perceptron)及びLSTM(Long Short Term Memory)などを含むことができる。前述したように、ネットワークは、神経網(Neural Network)であり得るが、これに限定されない。ネットワーク情報はホスト装置100が予め認知できる。
【0022】
前述したPNMアーキテクチャ情報は、加速器アーキテクチャ情報、演算器当りパワー、メモリ帯域幅(Memory BW)当りパワー、演算器最大構造及びメモリ帯域幅最大構造を含むことができる。
【0023】
ここで、演算器最大構造は演算器の最大数を意味することができ、メモリ帯域幅最大構造はメモリ帯域幅の最大サイズを意味することができる。前記演算器最大構造及びメモリ帯域幅最大構造は予め設定されている情報であって、開示された発明において予め設定されている最大構造内で可変して適用できる。
【0024】
例えば、演算器がNであるが、N個を超過するように割り当てることができず、メモリ帯域幅の最大サイズがM個であるが、M個を超過するように割り当てることができないため、メモリ帯域幅のスピードモードの決定時に参考するように、演算器最大構造及びメモリ帯域幅最大構造を予め提供するものである。このとき、N及びMは正の整数(positive integers)であり得る。
【0025】
ホスト装置100は、メモリ帯域幅のスピードモードを含むPNMに最適化した形態にコンパイルしたデータが出力できる(540)。このとき、メモリ帯域幅のスピードモードは、ロースピードモード(Memory BW Low Speed Mode)及びハイスピードモード(Memory BW High Speed Mode)を含むことができる。
【0026】
図4を参照すれば、総パワー予算(Total Power Budget)は、メモリパワー(Memory Power)及び演算パワー(Computing Power)を含むことができる。このとき、メモリパワー及び演算パワーの各々は、調節可能なダイナミックパワー(Dynamic Power)部分及びスタティックパワー(Static Power)部分を含むことができる。
図4はメモリパワー及び演算パワーを最大に使用した場合を示す。
【0027】
メモリ帯域幅のスピードモードは、
図4に示すような総パワー予算において、メモリパワーを初期設定基準より上向き調節するハイスピードモード(
図5のa)と、演算パワーを初期設定基準より上向き調節するロースピードモード(
図5のb)とを含むことができる。
【0028】
仮に、出力されたデータに含まれたネットワークモデルがCNNである場合、ホスト装置100はメモリ帯域幅のスピードモードをロースピードモードに決定できる(550)。ホスト装置100は、CNNのようにロジックダイ300においてデータ再使用が相対的に多いネットワークモデルの場合、メモリ帯域幅が低くても演算パワーの性能によって全体性能が決定され得るため、メモリ帯域幅のスピードモードをロースピードモードに決定するものである。
【0029】
ネットワークモデルがMLP及びLSTMの何れか一つである場合、ホスト装置100は、バッチサイズを基準値(K)と比較して(560)、前記バッチサイズが基準値を超過する場合(Batch Size>K)、前記メモリ帯域幅のスピードモードをロースピードモードに決定し(550)、前記バッチサイズが基準値以下である場合、ハイスピードモードに決定できる(570)。
【0030】
ネットワークモデルがMLP又はLSTMである場合にも、バッチサイズが大きくなれば、演算パワーの要求が相対的に大きくなり得るため、ホスト装置100は、ネットワークモデルがMLP又はLSTMである場合、バッチサイズを基準値と比較するものである。
【0031】
このとき、バッチサイズは、外部に位置するサーバー10から受信して前述したPNMアーキテクチャ情報に含まれることができる。ホスト装置100は、MLP、LSTM及びRNN(recurrent neural network)のように、ロジックダイ300においてデータ再使用(data reuse)がないネットワークモデル(Network Model)の場合、メモリ帯域幅がデータ処理システム20の性能を決定する重要要素になり得るため、ハイスピードモードが適用できる。
【0032】
図2を参照すれば、データ保存装置200は、メモリコントローラ310、加速器400及び複数のメモリダイ210を含むことができる。このとき、メモリコントローラ310及び加速器400は、ロジックダイ300に含まれることができる。
【0033】
図11を参照すれば、メモリコントローラ310は、メモリダイ210にメモリ帯域幅のスピードモードが伝達できる。
【0034】
メモリダイ210は、メモリコントローラ310から伝達されるメモリ帯域幅のスピードモードに基づいてメモリのクロック(clock)が変更できる。このとき、データ保存装置200内のメモリダイ210は少なくとも一つ以上であり得る。
【0035】
一方、メモリの帯域幅のスピードモードに基づいてメモリのクロックを変更することは、メモリコントローラ310が直接処理することも可能である。
【0036】
前述したデータ保存装置200は、PNM(Processing Near Memory)であり得る。
【0037】
図6は本発明の実施例に係るデータ保存装置の構成を示す図である。
【0038】
以下では、
図7乃至
図12を参照して説明する。
図7は本発明の実施例に係る加速器の構成を詳細に示す図、
図8及び
図9は本発明の実施例に係るPEアレイの例示図、
図10は本発明の実施例に係るPEアレイ構造の例示図、
図11は本発明の実施例に係るメモリコントローラ及びメモリダイ間の連結関係を示す図、
図12は本発明の実施例に係るスピードモードによる性能変化を説明するための図である。
【0039】
図6を参照すれば、データ保存装置200は、メモリ帯域幅のスピードモードによってPEアレイ430の第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイ430の構造を変更する加速器400を含むことができる。
【0040】
加速器400は、第1の入力データ(Input data)及び第2の入力データを受信して乗算し、既存に保有していたデータと加算する。このとき、第2の入力データは加重値データ(Weight data)であり得る。
【0041】
図6を参照すれば、第1の入力データはロウ(Row)方向に沿って伝達され、第2の入力データはカラム(Column)方向に沿って伝達される。合算された結果データは後述するIOバッファ(IO Buffer)450に沿ってノードで必要な全ての第2の入力データ及び第1の入力データでMACが遂行された後、活性化関数処理部480での活性化関数(Activation Function)処理を遂行した後、出力データとして生成できる。
【0042】
図6及び
図7を参照すれば、加速器400は、PEコントローラ(PE CTRL)420、PEアレイ(PE Array)430、PEアレイ調整ブロック(PE Array Adaptive Block)440、IOバッファ450、加重値バッファ(Weight Buffer)460、適応型データ経路コントローラ(Adaptive Data Path Controller)470、活性化関数処理部(Activation Function Unit;AFU)480、追加関数処理部(Special Function Unit;SFU)490及びロウレベルパワーコントローラ(Row Level Power Controller)495を含むことができる。
【0043】
前述した加速器400は、ホストインターフェースブロック(Host IF Block)410を介してホスト装置100と通信できる。このとき、ホストインターフェースブロック410は、ホスト装置100のプロトコルに応じてホスト装置及びデータ保存装置200間がインターフェーシングできる。例えば、ホストインターフェースブロック410は、Serdesインターフェースプロトコルを介してホスト装置100と通信できる。これに限定されず、ホストインターフェースブロック410は、PCI-E(PCI express)、USB(universal serial bus)、UFS(universal flash storage)、MMC(multimedia card)、PATA(parallel advanced technology attachment)、SATA(serial advanced technology attachment)、SCSI(small computer system interface)、SAS(serial attached SCSI)及びPCI(Peripheral component interconnection)プロトコルの何れか一つを介してホスト装置と通信することもできる。
【0044】
PEコントローラ420は、ホスト装置100から伝達されるメモリ帯域幅のスピードモードを適応型データ経路コントローラ470に伝達できる。
【0045】
図6に示すように、PEコントローラ420は、ホスト装置100とデータを送受信するホストインターフェースブロック410を介して、ホスト装置100から伝達されるメモリ帯域幅のスピードモードが受信できる。
【0046】
図7を参照すれば、PEアレイ430は、複数の第1のPEグループを含むことができ、各々の第1のPEグループはロウ(Row)方向に配列された多数のPEを含むことができる。PEアレイ調整ブロック440は、PEアレイ430においてPE間に位置した複数の第1の多重化器(multiplexers)を含むことができ、各々の第1の多重化器はPEアレイ430内のロウ(Row)方向のPEに該グループの第1の入力データ及び他のグループの第1の入力データの何れか一つを選択的に入力させるための構成であり得る。
【0047】
また、PEアレイ430は、複数の第2のPEグループを含むことができ、 各々の第2のPEグループはカラム(column)方向に配列された多数のPEを含むことができる。PEアレイ調整ブロック440は、PEアレイ430においてPEに連結された複数の第2の多重化器を含むことができ、各々の第2の多重化器は該グループの第2の入力データ及び他のグループの第2の入力データの何れか一つをPEアレイ430内のカラム(column)方向のPEに選択的に入力させることができる。
【0048】
図6のPEアレイ430はN×M構造のPEアレイ430を示すものである。前記PEアレイ430はN×MのPEを含むことができる。このとき、Nはバッチサイズを意味し、Mは加重値幅を意味する。すなわち、Nは第1の入力データが入力されるロウ(Row)等のサイズを意味し、Mは第2の入力データが入力されるカラム(Column)等のサイズを意味する。本実施例において、PEアレイ430はN個の第1のPEグループ及びM個の第2のPEグループを含むことができる。このとき、各々の第1のPEグループはロウ(Row)方向に配列されたM個のPEを含むことができ、各々の第2のPEグループはカラム(column)方向に配列されたN個のPEを含むことができる。
【0049】
図7及び
図10を参照すれば、PEアレイ調整ブロック440は、PEアレイ430内のPE間にメモリ帯域幅単位(例えば、1×単位)に配置されるが、二番目のメモリ帯域幅から適用できる。
【0050】
例えば、メモリ帯域幅が2×BW(Bandwidth)である場合、PEアレイ調整ブロック440は2×BWに対応されるPEの前ステージに位置し得る。このとき、
図10に示すように、PEアレイ調整ブロック440はロウ(Row)グループ(A)及びカラム(Column)グループ(B)を含むことができる。
【0051】
図7を参照すれば、PEアレイ調整ブロック440は、PEの各々に第1の入力データを入力させるためのロウグループ(
図10のA)内に含まれた複数の第1の多重化器441と、PEの各々に第2の入力データを入力させるためのカラムグループ(
図10のB)内に含まれた複数の第2の多重化器443とを含むことができる。
【0052】
前記複数の第1の多重化器441はPEアレイ430のロウ(Row)単位に各々マッチングされ、前記複数の第2の多重化器443はカラム(Column)単位に各々マッチングされることができる。
【0053】
図10は、Nが6でMが64であるとき、PEアレイ調整ブロック440を含むPEアレイ430を示す図である。
図10を参照すれば、複数の第1の多重化器441のうち、参照番号441-1の場合、適応型データ経路コントローラ(
図7の470)の制御により、第1の入力データInQ_1及びInQ_7の何れか一つを1×33のPEに入力させることができる。
【0054】
複数の第2の多重化器443のうち、参照番号443-1の場合、適応型データ経路コントローラ470の制御により、第2の入力データWB_6_1及びWB_6_33の何れか一つを1×33のPEに入力させることができる。
【0055】
IOバッファ(IO Buffer)450は、PEアレイ430内の前記ロウ(Row)方向のPEに第1の入力データを伝達する構成であり得る。
【0056】
加重値バッファ(Weight Buffer)460は、PEアレイ430内の前記カラム(column)方向のPEに第2の入力データが伝達できる。
【0057】
図示していないが、IOバッファ450及び加重値バッファ460は一つで具現されてBUSで連結することも可能である。
【0058】
適応型データ経路コントローラ470は、メモリ帯域幅のスピードモードによってPEアレイ調整ブロック440の入力処理が制御できる。
【0059】
図8はN×M構造を初期構造とするPEアレイ430を示し、
図9は2N×M/2構造を初期構造とするPEアレイ430を示す。
【0060】
適応型データ経路コントローラ470は、PEアレイ430の初期構造が
図8のようにN×M構造であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがロースピードモードである場合、前記PEアレイ430の構造がN×M構造から2N×M/2構造になるように、前記第1の入力データ及び前記第2の入力データの入力経路が制御できる。このとき、Nはバッチサイズであり、Mは加重値幅を意味することができる。
【0061】
具体的に、適応型データ経路コントローラ470は、複数の第1の多重化器441が2Nグループ以上から第1の入力データを受信するように制御し、第2の多重化器443がM/2グループから前記第2の入力データを受信するように制御できる。例えば、
図8に示すように、PEアレイ430の初期構造がN×M構造でメモリ帯域幅が2×である場合、メモリ構造は
図10の6×64であり得る。このとき、PEアレイ調整ブロック440は、一番目の1×ステージ及び二度目の1×ステージ(又は2×ステージ)間に配置されることができる。一番目の1×ステージは左側N×M/2構造に該当し、二番目の1×ステージは右側N×M/2構造に該当できる。
【0062】
メモリ帯域幅のスピードモードがロースピードモードである場合、適応型データ経路コントローラ470は、PEアレイ430の構造を6×64(
図8を参照)から12×32(
図9を参照)のメモリ構造に変更できる。このとき、ロースピードモードは2N×M/2構造を意味することができる。
【0063】
図7及び
図10を参照すれば、適応型データ経路コントローラ470は、複数の第1の多重化器441を制御して、1×33のPEから6×33のPEのロウ(Row)方向のPEらが各々第1の入力データInQ_7乃至InQ_12が受信できる。
【0064】
図7及び
図10を参照すれば、適応型データ経路コントローラ470は、複数の第2の多重化器443を制御して、1×33のPEから1×64のPEのカラム(Column)方向のPEらが各々第2の入力データWB_6_1乃至 WB_6_32が受信できる。
【0065】
すなわち、1×33のPEから6×33のPEのロウ(Row)方向のPEらは、各々第1の入力データInQ_1乃至InQ_6でないInQ_7乃至InQ_12が入力され、1×33のPEから1×64のPEのカラム(Column)方向のPEらは、各々第2の入力データWB_6_33乃至WB_6_64でないWB_6_1乃至WB_6_32が入力されるため、第1及び第2の入力データの入力経路が調整された12×32のPEアレイ構造が具現できるものである。
【0066】
反対に、適応型データ経路コントローラ470は、PEアレイ430の初期構造が2N×M/2構造(
図9を参照)であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがハイスピードモード(
図8を参照)である場合、PEアレイ430の構造が2N×M/2構造からN×M構造になるように、第1の入力データ及び第2の入力データの入力経路が制御できる。
【0067】
図9に示すように、PEアレイ調整ブロック440は、一番目の1×ステージ及び二番目の1×ステージ(又は2×ステージ)間に位置し得る。このとき、一番目の1×ステージは下位N×M/2構造に該当し、二番目の1×ステージは上位N×M/2構造に該当できる。適応型データ経路コントローラ470は、複数の第1の多重化器441が2Nグループのうち、一番目のNグループから第1の入力データを受信するように制御し、第2の多重化器443が一番目のM/2グループの次のM/2グループから第2の入力データを受信するように制御できる。
【0068】
例えば、
図10を参照すれば、
図9の上位N×M/2構造は1×33のPE乃至6×33のPE、…1×64のPE乃至6×64のPEを含み、第1の入力データであるInQ_1乃至InQ_6が1×33のPEから6×33のPEのロウ方向のPEらの各々に入力され、第2の入力データであるWB_6_33乃至WB_6_64が1×33のPE乃至1×64のPEのカラム方向のPEらの各々に入力されることができる。
【0069】
図7を参照すれば、活性化関数処理部(Activation Function Unit)480は、PEアレイ430のロウ(Row)別に各々具備されて演算処理されたデータに活性化関数処理を遂行するための構成であり得る。
【0070】
このとき、活性化関数はReLU、tanh、sigmoidなどの多様なアルゴリズムが用いられる。また、活性化関数は、ルックアップテーブル(lookup table)で構成したり、或いは、マイクロコア(micro-core)で構成したりできる。
【0071】
追加関数処理部(Special Function Unit)490は、活性化関数処理部480の各々にマッチングされて活性化関数処理の以外に追加的な演算を遂行するための構成であり得る。例えば、追加関数処理部490は、LSTMのElement-wize乗算のような処理が遂行できるロジックであり得る。
【0072】
ロウレベルパワーコントローラ495は、PEアレイ430にロウ(Row)単位にクロックゲーティング(Clock Gating)制御処理を遂行するための構成であり得る。
【0073】
前述したように、活性化関数処理部480及び追加関数処理部490がロウ(Row)別に各々具備されているため、ロウレベルパワーコントローラ495がロウ単位にクロックゲーティング制御処理が遂行でき、これにより、コンピューティング演算時のパワーが低減されるという効果が期待できる。
【0074】
図12はスピードモードによる性能変化を示す図である。
図12を参照すれば、同一のパワー予算の使用時、メモリ帯域幅のスピードモードをロースピードモード又はハイスピードモードに変更して適用することで、MLPやLSTM応用の性能がP1からP2に向上することが確認できる。このとき、MLPやLSTMは、バッチサイズが基準値以下である場合なので、ハイスピードモードを適用した場合であり得る。
【0075】
図13は本発明の実施例に係る加速装置の構成を示す図である。
【0076】
図13を参照すれば、加速装置600は、PEアレイの第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイの構造を変更する加速器400を含むことができる。
【0077】
加速器400は、第1の入力データ及び第2の入力データを受信して乗算し、既存に保有していたデータと加算する。このとき、第2の入力データは加重値データ(Weight data)であり得る。
【0078】
図6を参照すれば、第1の入力データはロウ(Row)方向に沿って伝達され、第2の入力データはカラム(Column)方向に沿って伝達される。合算された結果データは後述するIOバッファ450に沿ってノードで必要な全ての第2の入力データ及び第1の入力データでMACが遂行された後、活性化関数処理部480での活性化関数処理を遂行した後、出力データとして生成できる。
【0079】
より詳しくは、加速器400は、PEコントローラ420、PEアレイ430、PEアレイ調整ブロック440、IOバッファ450、加重値バッファ460、適応型データ経路コントローラ470、活性化関数処理部(Activation Function Unit;AFU)480、追加関数処理部(Special Function Unit;SFU)490及びロウレベルパワーコントローラ495を含むことができる。
【0080】
前述した加速器400は、ホストインターフェースブロック410を介してホスト装置100と通信できる。このとき、ホストインターフェースブロック410は、ホスト装置100のプロトコルに応じてホスト装置及びデータ保存装置200間をインターフェーシングできる。例えば、ホストインターフェースブロック410は、Serdesインターフェースプロトコルを介してホスト装置100と通信できる。これに限定されるものではない。
【0081】
PEコントローラ420は、ホスト装置100から伝達されるメモリ帯域幅のスピードモードを適応型データ経路コントローラ470に伝達できる。
【0082】
PEアレイ調整ブロック440は、PEアレイ430間に配置された複数の第1の多重化器441を含み、各々の第1の多重化器441はPEアレイ430内のロウ(Row)方向のPEらに該グループの第1の入力データ及び他のグループの第1の入力データの何れか一つを選択的に入力させるための構成であり得る。一実施例において、PEアレイ430は、複数の第1のPEグループを含み、各々の第1のPEグループはロウ(Row)方向に配列された複数のPEを含むことができる。
【0083】
また、PEアレイ調整ブロック440は、PEアレイ430間に配置された複数の第2の多重化器443を含み、各々の第2の多重化器443はPEアレイ430内のカラム(Column)方向のPEらに該グループの第2の入力データ及び他のグループの第2の入力データの何れか一つを選択的に入力させることができる。一実施例において、PEアレイ430は、複数の第2のPEグループを含み、各々の第2のPEグループはカラム(Column)方向に配列された複数のPEを含むことができる。
【0084】
PEアレイ調整ブロック440は、PEアレイ430間にメモリ帯域幅単位に配置されるが、二番目のメモリ帯域幅から適用できる。
【0085】
図7を参照すれば、PEアレイ調整ブロック440は、PEの各々に第1の入力データを入力させるための複数の第1の多重化器441と、前記PEの各々に第2の入力データを入力させるための複数の第2の多重化器443とを含むことができる。
【0086】
複数の第1の多重化器441は、PEアレイ430のロウ(Row)単位に各々マッチングされ、複数の第2の多重化器443はカラム(Column)単位に各々マッチングされる。
【0087】
IOバッファ450は、PEアレイ430内の前記ロウ(Row)方向のPEに第1の入力データを伝達する構成であり得る。
【0088】
加重値バッファ460は、PEアレイ430内の前記カラム(column)方向のPEに第2の入力データが伝達できる。
【0089】
適応型データ経路コントローラ470は、メモリ帯域幅のスピードモードによって前記PEアレイ調整ブロックの入力処理を制御するための構成であり得る。
【0090】
前記メモリ帯域幅のスピードモードは、総パワー予算において、メモリパワーを初期設定基準より上向き調節するハイスピードモードと、演算パワーを初期設定基準より上向き調節するロースピードモードとを含むことができる。
【0091】
適応型データ経路コントローラ470は、PEアレイ430の初期構造がN×M構造であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがロースピードモードである場合、PEアレイ430の構造がN×M構造から
図9の2N×M/2になるように、第1の入力データ及び第2の入力データの入力経路が制御できる。前記Nはバッチサイズであり、前記Mは加重値幅を意味することができる。
【0092】
適応型データ経路コントローラ470は、複数の第1の多重化器441が2Nグループ以上から第1の入力データを受信するように制御し、第2の多重化器443がM/2グループから第2の入力データを受信するように制御できる。
【0093】
反対に、適応型データ経路コントローラ470は、PEアレイ430の初期構造が2N×M/2構造(
図9を参照)であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがハイスピードモード(
図8を参照)である場合、PEアレイ430の構造が2N×M/2構造から
図8のN×M構造になるように、第1の入力データ及び第2の入力データの入力経路が制御できる。
【0094】
適応型データ経路コントローラ470は、複数の第1の多重化器441が2Nグループのうち、一番目のNグループから第1の入力データを受信するように制御し、第2の多重化器443が一番目のM/2グループの次のM/2グループから第2の入力データを受信するように制御できる。
【0095】
図14は、本発明の他の実施例に係るデータ保存装置の構成を示す図である。
【0096】
以下では、開示のデータ保存装置は、前述したデータ保存装置の構成と同一の役割を果たすことができる構成であるので、その詳細な説明を省略する。
【0097】
データ保存装置200は、中央処理装置700、加速器400、メモリコントローラ310及び複数のメモリダイ210を含むことができる。このとき、メモリコントローラ310、加速器400及び中央処理装置700は、ロジックダイ300に含まれることができる。
【0098】
中央処理装置700は、ネットワークモデル及びバッチサイズの少なくとも一つ以上に基づいてメモリ帯域幅のスピードモードを決定して、加速器400の演算パワー及びメモリパワーが調節できる。前記メモリ帯域幅のスピードモードは、総パワー予算において、メモリパワーを初期設定基準より上向き調節するハイスピードモードと、前記演算パワーを初期設定基準より上向き調節するロースピードモードとを含むことができる。このとき、中央処理装置700は、
図2において開示するホスト装置100の機能をデータ保存装置200内で具現するための構成であって、ホスト装置100の機能が全部適用されることは当然である。
【0099】
中央処理装置700は、通信網を介して外部に位置するサーバー(
図1の10)と連結してデータが受信できる。このとき、データはバッチサイズであり得る。バッチサイズはPNMアーキテクチャ情報に含まれることができる。図示していないが、中央処理装置700が外部に位置するサーバー10とデータを送受信するために、有線又は通信が可能なインターフェースを具備することは当然である。
【0100】
加速器400は、メモリ帯域幅のスピードモードによってPEアレイ(
図6の430)の第1の入力データ及び第2の入力データの伝達経路を制御して、前記PEアレイの構造が変更できる。
【0101】
図6及び
図7を参照すれば、加速器400は、PEコントローラ(PE CTRL)420、PEアレイ430、PEアレイ調整ブロック440、IOバッファ450、加重値バッファ460、適応型データ経路コントローラ470、活性化関数処理部(Activation Function Unit;AFU)480、追加関数処理部(Special Function Unit;SFU)490及びロウレベルパワーコントローラ495を含むことができる。
【0102】
PEコントローラ420は、中央処理装置700から伝達されるメモリ帯域幅のスピードモードを適応型データ経路コントローラ470に伝達できる。
【0103】
PEアレイ調整ブロック440は、PEアレイ430間に配置されて、PEアレイ430内のロウ(Row)方向のPEに該グループの第1の入力データ及び他のグループの第1の入力データの何れか一つを選択的に入力させるための構成であり得る。
【0104】
また、PEアレイ調整ブロック440は、PEアレイ430間に配置されて、PEアレイ430内のカラム(Column)方向のPEに該グループの第2の入力データ及び他のグループの第2の入力データの何れか一つを選択的に入力させることができる。
【0105】
図6のPEアレイ430はN×M構造のPEアレイ430を示すものである。このとき、Nはバッチサイズであり、Mは加重値幅を意味することができる。すなわち、Nは第1の入力データが入力されるロウ(Row)方向のサイズを意味し、Mは第2の入力データが入力されるカラム(Column)方向のサイズを意味することができる。
【0106】
図7及び
図10を参照すれば、PEアレイ調整ブロック440は、PEアレイ430間にメモリ帯域幅単位(例えば、1×単位)に配置されるが、二番目のメモリ帯域幅から適用できる。
【0107】
図7を参照すれば、PEアレイ調整ブロック440は、PEの各々に第1の入力データを入力させるための複数の第1の多重化器441と、PEの各々に第2の入力データを入力させるための複数の第2の多重化器443とを含むことができる。
【0108】
前記複数の第1の多重化器441はPEアレイ430のロウ(Row)単位に各々マッチングされ、前記複数の第2の多重化器443はカラム(Column)単位に各々マッチングされることができる。
【0109】
IOバッファ450は、PEアレイ430内の前記ロウ(Row)方向のPEに第1の入力データを伝達する構成であり得る。
【0110】
加重値バッファ460は、PEアレイ430内の前記カラム(column)方向のPEに第2の入力データが伝達できる。
【0111】
図示していないが、IOバッファ450及び加重値バッファ460は一つで具現されてBUSで連結することもできる。
【0112】
適応型データ経路コントローラ470は、メモリ帯域幅のスピードモードによってPEアレイ調整ブロック440の入力処理が制御できる。
【0113】
適応型データ経路コントローラ470は、PEアレイ430の初期構造がN×M構造であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがロースピードモードである場合、前記PEアレイ430の構造が2N×M/2になるように、前記第1の入力データ及び前記第2の入力データの入力経路が制御できる。このとき、Nはバッチサイズであり、Mは加重値幅を意味することができる。
【0114】
反対に、適応型データ経路コントローラ470は、PEアレイ430の初期構造が2N×M/2構造(
図9を参照)であり、メモリ帯域幅が2×であり、メモリ帯域幅のスピードモードがハイスピードモード(
図8を参照)である場合、前記PEアレイ430の構造がN×Mになるように、前記第1の入力データ及び前記第2の入力データの入力経路が制御できる。
【0115】
活性化関数処理部(Activation Function Unit;AFU)480は、PEアレイ430のロウ(Row)別に各々具備されて演算処理されたデータに活性化関数処理を遂行するための構成であり得る。
【0116】
追加関数処理部(Special Function Unit;SFU)490は、活性化関数処理部480の各々にマッチングされて活性化関数処理の以外に追加的な演算を遂行するための構成であり得る。例えば、追加関数処理部490はLSTMのElement-wize乗算のような処理が遂行できるロジックであり得る。
【0117】
ロウレベルパワーコントローラ495は、PEアレイ430にロウ(Row)単位にクロックゲーティング制御処理を遂行するための構成であり得る。
【0118】
図11を参照すれば、メモリコントローラ310は、メモリダイ210にメモリ帯域幅のスピードモードが伝達できる。
【0119】
メモリダイ210は、メモリコントローラ310から伝達されるメモリ帯域幅のスピードモードに基づいてメモリのクロック(clock)が変更できる。このとき、メモリダイ210は少なくとも一つ以上であり得る。
【0120】
一方、メモリの帯域幅のスピードモードに基づいてメモリのクロックを変更することは、メモリコントローラ310が直接処理することも可能である。前述したデータ保存装置200はPNM(Processing Near Memory)であり得る。
【0121】
前述した一実施例において、メモリ帯域幅(BW)が2×BWである場合、演算パワー及びメモリパワーは、複数の第1の多重化器441及び複数の第2の多重化器443を含むPEアレイ調整ブロック440を用いて第1の入力データ及び第2の入力データの入力経路を制御することにより調整できる。
【0122】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解しなければならない。本発明の範囲は前記詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その均等概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析しなければならない。
【符号の説明】
【0123】
100 ホスト装置
200 データ保存装置
210 メモリダイ
300 ロジックダイ
310 メモリコントローラ
400 加速器
410 ホストインターフェースブロック
420 PEコントローラ
430 PEアレイ
440 PEアレイ調整ブロック
450 IOバッファ
460 加重値バッファ
470 適応型データ経路コントローラ
480 活性化関数処理部
490 追加関数処理部
495 ロウレベルパワーコントローラ