(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-22
(45)【発行日】2022-03-30
(54)【発明の名称】PIMを採用する半導体メモリ装置及びその動作方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20220323BHJP
G06F 12/06 20060101ALI20220323BHJP
【FI】
G06F12/00 560F
G06F12/00 564A
G06F12/06 525A
(21)【出願番号】P 2019210341
(22)【出願日】2019-11-21
【審査請求日】2021-04-15
(31)【優先権主張番号】10-2018-0153725
(32)【優先日】2018-12-03
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】姜 信行
(72)【発明者】
【氏名】呉 成一
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2007-200090(JP,A)
【文献】特開昭63-46581(JP,A)
【文献】特表2013-502646(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
半導体メモリ装置において、
それぞれが並列にアクセス可能な複数のメモリバンクグループと、
前記複数のメモリバンクグループの外部から、外部データを受信する内部メモリバスと、
第1周期ごとに、前記複数のメモリバンクグループのうち、第1メモリバンクグループから内部データを受信し、前記第1周期より短い第2周期ごとに、前記内部メモリバスを介して、前記外部データを受信し、前記第2周期ごとに、前記内部データ及び前記外部データに対する演算を行う第1演算器と、を含む半導体メモリ装置。
【請求項2】
前記第1周期は、同一メモリバンクグループに連続してアクセスする場合の遅延時間tCCD_Lに対応し、
前記第2周期は、互いに異なるメモリバンクグループに交互にアクセスする場合の遅延時間tCCD_Sに対応することを特徴とする請求項1に記載の半導体メモリ装置。
【請求項3】
前記第1周期は、前記第2周期のn倍(nは2以上の自然数)であることを特徴とする請求項1に記載の半導体メモリ装置。
【請求項4】
前記内部データは、前記内部データ及び前記外部データに対する演算のために、n回再使用されることを特徴とする請求項3に記載の半導体メモリ装置。
【請求項5】
前記外部データは、前記半導体メモリ装置に含まれるメモリチャネルのうち、前記第1メモリバンクグループを含むメモリチャネル以外の他のメモリチャネルに保存されたデータ、前記半導体メモリ装置の外部の他のメモリ装置に保存されたデータ、及び前記半導体メモリ装置外部のホストプロセッサで処理されるデータのうち少なくとも一つに対応することを特徴とする請求項1に記載の半導体メモリ装置。
【請求項6】
前記第1演算器は、前記内部データ及び前記外部データに係わる演算の結果を保存する複数のバッファを含み、
前記複数のバッファの個数は、前記第1周期を前記第2周期で除した商であるnに対応することを特徴とする請求項1に記載の半導体メモリ装置。
【請求項7】
前記n個のバッファそれぞれは、前記内部データ及び前記外部データに係わる演算の結果を1回ずつ交互に保存することを特徴とする請求項6に記載の半導体メモリ装置。
【請求項8】
前記第1演算器は、
前記n個のバッファのうち、前記内部データ及び前記外部データに係わる演算の結果を保存するバッファを選択するための制御信号を出力するセレクタと、
前記セレクタによって出力される制御信号に基づいて、前記n個のバッファのうち、前記第1演算器と連結されるバッファを決定するマルチプレクサ及びデマルチプレクサのうち少なくとも一つと、をさらに含むことを特徴とする請求項6に記載の半導体メモリ装置。
【請求項9】
前記セレクタは、前記第2周期ごとに計数するカウンタを含み、
前記セレクタによって出力される制御信号は、前記カウンタの出力信号に対応することを特徴とする請求項8に記載の半導体メモリ装置。
【請求項10】
前記第1演算器は、前記複数のメモリバンクグループのうち、第2メモリバンクグループと連結される第2演算器と並列に動作することを特徴とする請求項1に記載の半導体メモリ装置。
【請求項11】
半導体メモリ装置に含まれる演算器の動作方法において、
第1周期ごとに、メモリバンクグループから、前記メモリバンクグループに保存された内部データを受信する段階と、
前記第1周期より短い第2周期ごとに、内部メモリバスを介して、前記メモリバンクグループの外部に保存されるか、あるいは前記メモリバンクグループの外部で処理される外部データを受信する段階と、
前記第2周期ごとに、前記内部データ及び前記外部データに対するPIM演算を行う段階と、を含む方法。
【請求項12】
前記第1周期は、同一メモリバンクグループに連続してアクセスする場合の遅延時間tCCD_Lに対応し、
前記第2周期は、互いに異なるメモリバンクグループに交互にアクセスする場合の遅延時間tCCD_Sに対応することを特徴とする請求項11に記載の方法。
【請求項13】
前記第1周期は、前記第2周期のn倍(nは、2以上の自然数)であることを特徴とする請求項11に記載の方法。
【請求項14】
前記第2周期ごとに、前記内部データ及び前記外部データに対するPIM演算を行う段階は、
前記内部データ及び前記外部データに係わる演算のために、前記内部データをn回再使用する段階をさらに含むことを特徴とする請求項11に記載の方法。
【請求項15】
前記外部データは、前記半導体メモリ装置に含まれるメモリチャネルのうち、前記メモリバンクグループを含むメモリチャネル以外の他のメモリチャネルに保存されたデータ、前記半導体メモリ装置の外部の他のメモリ装置に保存されたデータ、及び前記半導体メモリ装置外部のホストプロセッサで処理されるデータのうち少なくとも一つに対応することを特徴とする請求項11に記載の方法。
【請求項16】
前記方法は、
前記内部データ及び前記外部データに係わる演算の結果を、前記第1周期を前記第2周期で除した商であるnに対応する個数の複数のバッファそれぞれに1回ずつ交互に保存する段階をさらに含むことを特徴とする請求項11に記載の方法。
【請求項17】
前記内部データ及び前記外部データに係わる演算の結果を、前記n個のバッファそれぞれに1回ずつ交互に保存する段階は、
前記n個のバッファのうち、前記内部データ及び前記外部データに係わる演算の結果を保存するバッファを選択するための制御信号を出力する段階を含むことを特徴とする請求項16に記載の方法。
【請求項18】
半導体メモリ装置において、
それぞれが並列にアクセス可能な複数のメモリバンクと、
前記複数のメモリバンクの外部から、外部データを受信する内部メモリバスと、
第1周期ごとに、前記複数のメモリバンクのうち、第1メモリバンクから内部データを受信し、前記第1周期より短い第2周期ごとに、前記内部メモリバスを介して、前記外部データを受信し、前記第2周期ごとに、前記内部データ及び前記外部データに対する演算を行う第1演算器と、を含む半導体メモリ装置。
【請求項19】
前記外部データは、前記半導体メモリ装置に含まれるメモリチャネルのうち、前記メモリバンクを含むメモリチャネル以外の他のメモリチャネルに保存されたデータ、前記半導体メモリ装置の外部の他のメモリ装置に保存されたデータ、及び前記半導体メモリ装置外部のホストプロセッサで処理されるデータのうち少なくとも一つに対応することを特徴とする請求項18に記載の半導体メモリ装置。
【請求項20】
前記第1演算器は、前記複数のメモリバンクのうち、第2メモリバンクと連結される第2演算器と並列に動作することを特徴とする請求項18に記載の半導体メモリ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PIMを採用する半導体メモリ装置及びその動作方法に関する。
【背景技術】
【0002】
従来の半導体メモリ装置は、演算作業を遂行するプロセッサと機能が完全に分離されていた。従って、多量のデータに対する演算が要求されるニューラルネットワーク、ビッグデータ、モノのインターネットのような応用を具現するシステムにおいて、半導体メモリ装置とプロセッサとの間において、多量のデータが送受信されることにより、ボトルネック現象が折々に発生してしまうという問題があった。そのような問題を解決するために、メモリ機能に、演算作業を遂行するプロセッサ機能を合わせた半導体メモリ装置として、プロセッシングインメモリ(PIM:processing in memory)に係わる研究が進められている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明が解決しようとする課題は、PIMを採用する半導体メモリ装置及びその動作方法を提供するところにある。本開示がなす技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されるのである。
【課題を解決するための手段】
【0004】
前述の技術的課題を解決するための手段として、一側面による半導体メモリ装置は、それぞれが並列にアクセス可能な複数のメモリバンクグループと、前記複数のメモリバンクグループの外部から、外部データを受信する内部メモリバスと、第1周期ごとに、前記複数のメモリバンクグループのうち第1メモリバンクグループから内部データを受信し、前記第1周期より短い第2周期ごとに、前記内部メモリバスを介して、前記外部データを受信し、前記第2周期ごとに、前記内部データ及び前記外部データに対する演算を行う第1演算器を含んでもよい。
【0005】
また、他の側面による半導体メモリ装置に含まれる演算器の動作方法は、第1周期ごとに、メモリバンクグループから、前記メモリバンクグループに保存された内部データを受信する段階と、前記第1周期より短い第2周期ごとに、内部メモリバスを介して、前記メモリバンクグループの外部に保存されるか、あるいは前記メモリバンクグループの外部で処理される外部データを受信する段階と、前記第2周期ごとに、前記内部データ及び前記外部データに対するPIM(processing in memory)演算を行う段階と、を含んでもよい。
【0006】
また、さらに他の側面による半導体メモリ装置は、それぞれが並列にアクセス可能な複数のメモリバンクと、前記複数のメモリバンクの外部から、外部データを受信する内部メモリバスと、第1周期ごとに、前記複数のメモリバンクのうち、第1メモリバンクから内部データを受信し、前記第1周期より短い第2周期ごとに、前記内部メモリバスを介して、前記外部データを受信し、前記第2周期ごとに、前記内部データ及び前記外部データに対する演算を行う第1演算器と、を含んでもよい。
【図面の簡単な説明】
【0007】
【
図1】一部実施形態による半導体メモリ装置の構成を示す図面である。
【
図2】一部実施形態による第1周期及び第2周期について説明するための図面である。
【
図3】一部実施形態による半導体メモリ装置の動作方法と、従来技術による半導体メモリ装置の動作方法とを比較する図面である。
【
図4】一部実施形態による半導体メモリ装置の動作方法と、従来技術による半導体メモリ装置の動作方法とを比較する図面である。
【
図5】一部実施形態による外部データの一例について説明するための図面である。
【
図6】一部実施形態による演算器の構成を示す図面である。
【
図7】一部実施形態による半導体メモリ装置が行列積演算を行う過程の例示について説明するための図面である。
【
図8】一部実施形態による半導体メモリ装置の動作方法と、従来技術による半導体メモリ装置の動作方法との性能を比較するためのシミュレーション結果を示す図面である。
【
図9】他の実施形態による半導体メモリ装置の構成を示す図面である。
【
図10】一部実施形態による半導体メモリ装置に含まれる演算器の動作方法を示すフローチャートである。
【
図11】一部実施形態による電子システムの構成を示すブロック図である。
【発明を実施するための形態】
【0008】
本実施形態で使用される用語は、本実施形態での機能を考慮しながら、可能な限り、現在汎用される一般的な用語を選択したが、それは、当技術分野の当業者の意図、判例または新たな技術の出現などによっても異なる。また、特定の場合、任意に選定された用語もあり、その場合、当該実施形態の説明部分で詳細にその意味を記載する。従って、本実施形態で使用される用語は、単純な用語の名称ではなく、その用語が有する意味と、本実施形態の全般にわたる内容とを基に定義されなければならない。
【0009】
本実施形態に係わる説明において、ある部分が他の部分と連結されているとするとき、それは、直接に連結されている場合だけではなく、その中間に、他の構成要素を挟んで電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいということを意味する。
【0010】
本実施形態で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずしもいずれも含むものであると解釈されるものではなく、そのうち、一部構成要素または一部段階は、含まれなくともよく、またはさらなる構成要素または段階をさらに含んでもよいと解釈されなければならない。
【0011】
また、本明細書で使用される「第1」または「第2」のような序数を含む用語は、多様な構成要素についての説明に使用されるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的のみに使用される。
【0012】
下記実施形態に係わる説明は、権利範囲を制限するものであると解釈されるものではなく、当該技術分野の当業者が容易に類推することができることは、本実施形態の権利範囲に属するものであると解釈されなければならないのである。以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。
【0013】
図1は、一部実施形態による半導体メモリ装置の構成を示す図面である。
図1を参照すれば、半導体メモリ装置10は、第1メモリバンク(bank)グループ110、第2メモリバンクグループ115、内部メモリバス120、第1演算器130及び第2演算器135を含んでもよい。ただし、
図1に図示された半導体メモリ装置10には、本実施形態と係わる構成要素だけが図示されている。従って、半導体メモリ装置10には、
図1に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当業者に自明である。例えば、半導体メモリ装置10は、メモリコントローラ(図示せず)をさらに含んでもよい。該メモリコントローラは、半導体メモリ装置10を制御するための全般的な機能を遂行する役割を行う。該メモリコントローラは、多数の論理ゲートのアレイによって具現されてもよいし、汎用的なマイクロプロセッサと、マイクロプロセッサで実行されるプログラムが保存されたメモリとの組み合わせによって具現されてもよい。
【0014】
一方、
図1には、半導体メモリ装置10に含まれる1つのメモリチャネルだけが図示されたものであり、半導体メモリ装置10は、
図1に図示されたメモリチャネル以外に、他のメモリチャネルをさらに含んでもよい。また、
図1には、説明の便宜のために、2個のメモリバンクグループ、及び2個の演算器だけが図示されているが、半導体メモリ装置10がさらに多数のメモリバンクグループ及び演算器を含んでもよいということは、当該技術分野の通常の技術者であるならば、容易に理解するであろう。
【0015】
第1メモリバンクグループ110及び第2メモリバンクグループ115それぞれは、並列にアクセス可能なメモリ領域を意味する。第1メモリバンクグループ110及び第2メモリバンクグループ115は、内部メモリバス120を共有するので、一般的な読み取り/書き込み動作時には、第1メモリバンクグループ110及び第2メモリバンクグループ115のうちいずれか一つだけが内部メモリバス120を利用することができる。ただし、第1メモリバンクグループ110及び第2メモリバンクグループ115それぞれは、独立してアクセス可能であるので、第1メモリバンクグループ110及び第2メモリバンクグループ115に対して、個別的な読み取り動作が同時に遂行されてもよい。例えば、第1メモリバンクグループ110からデータが読み取られるとき、第2メモリバンクグループ115においても、データが読み取られ得る。その場合、半導体メモリ装置10は、バンクグループ単位並列性を有するとも表現される。一方、第1メモリバンクグループ110及び第2メモリバンクグループ115それぞれは、複数のメモリバンクを含んでもよい。複数のメモリバンクそれぞれは、並列にアクセス可能なメモリ領域の最小単位を意味する。
【0016】
内部メモリバス120は、半導体メモリ装置10に含まれる構成要素間において、データが送受信されるように形成されるデータ伝送経路を意味する。例えば、内部メモリバス120は、第1メモリバンクグループ110及び第2メモリバンクグループ115の間で共有され得る。また、内部メモリバス120は、半導体メモリ装置10に含まれる構成要素と、半導体メモリ装置10外部の構成要素との連結経路を形成することができる。例えば、内部メモリバス120は、半導体メモリ装置10に含まれる複数のメモリバンクグループの外部から、外部データを受信することができる。内部メモリバス120は、外部から受信された外部データを、第1演算器130及び第2演算器135のうち少なくとも一つに伝達することができる。以下、
図5を参照し、複数のメモリバンクグループの外部の意味についてさらに詳細に説明する。
【0017】
第1演算器130は、半導体メモリ装置10内部において、演算作業を行うハードウェアを意味する。例えば、第1演算器130は、ALU(arithmetic logic unit)を含んでもよく、該演算作業は、加算、減算、積分、累算などを含む関数演算を含んでもよい。ただし、それらに制限されるものではない。第1演算器130は、多数の論理ゲートのアレイによって具現されてもよいし、論理ゲートのアレイと、データを一時的に保存するバッファとの組み合わせによって具現されてもよい。一方、半導体メモリ装置10は、演算作業を行う第1演算器130を内部に含み、PIM(processing in memory)に該当する。
【0018】
第1演算器130は、半導体メモリ装置10外部のCPU(central processing unit)、GPU(graphics processing unit)、DSP(digital signal processor)のようなホストプロセッサと類似して、プロセッシング機能を有するハードウェアであり、半導体メモリ装置10のメモリパッケージ(memory package)のチップ内において、複数のメモリバンクグループと共に、パッケージングされたプロセッサとし得る。第1演算器130は、半導体メモリ装置10の内部に存在するので、内部プロセッサとも称され、ホストプロセッサは、半導体メモリ装置10の外部に存在するので、外部プロセッサとも称される。PIMアキテクチャは、内部プロセッサとメモリとがオンチップ(on-chip)によって具現されるために、低いレイテンシ(low latency)の迅速なメモリアクセスが可能である。また、PIMアキテクチャが、バンク単位またはバンクグループ単位の並列性を利用する場合、一般的なメモリアクセスと比較し、数倍ないし数十倍のメモリ帯域幅を活用することができる。該PIMアキテクチャを有する半導体メモリ装置10は、intelligent RAM(random access memory)、computational RAMまたはsmart memoryのような用語としても称される。
【0019】
一方、第1演算器130は、半導体メモリ装置10に含まれる複数のメモリバンクグループのうち、第2メモリバンクグループ115と連結される第2演算器135と並列に動作することができる。第1演算器130及び第2演算器135それぞれは、第1メモリバンクグループ110及び第2メモリバンクグループ115と個別的に連結され、互いに独立して演算作業を行うことができる。例えば、第1演算器130が、第1メモリバンクグループ110から受信されたデータを利用して演算作業を行うとき、第2演算器135もまた第2メモリバンクグループ115から受信されたデータを利用して演算作業を行うことができる。
【0020】
第1演算器130は、第1周期ごとに、半導体メモリ装置10に含まれる複数のメモリバンクグループのうち、第1メモリバンクグループ110から内部データを受信することができる。該内部データは、複数のメモリバンクグループそれぞれに保存されたデータを意味するものであり、複数のメモリバンクグループそれぞれに割り当てられた複数のメモリアドレスのうち少なくとも一部に対応する。また、第1演算器130は、第1周期より短い第2周期ごとに、内部メモリバス120を介して、外部データを受信することができる。該外部データは、複数のメモリバンクグループの外部に保存されるか、あるいは複数のメモリバンクグループの外部で処理されるデータを称するものであり、以下、
図5を参照し、外部データの意味についてさらに詳細に説明する。第1演算器130は、第2周期ごとに、内部データ及び外部データに対する演算を行うことができる。以下、
図2を参照し、第1周期及び第2周期について詳細に説明し、
図3及び
図4を参照し、前述の第1演算器130の動作によって得られる効果についてさらに詳細に説明する。
【0021】
図2は、一部実施形態による第1周期及び第2周期について説明するための図面である。
図2を参照すれば、クロックCLKによってメモリバンクグループに対する読み取り動作が遂行されるタイミングを示した図面が図示されている。メモリバンクグループに対する読み取り動作を遂行せよという命令column CMDがメモリバンクグループに送信される時点について述べれば、互いに異なるバンクグループに交互にアクセスする場合の遅延時間tCCD_Sより、同一メモリバンクグループに連続してアクセスする場合の遅延時間tCCD_Lがさらに長いということを確認することができる。
図1の第1周期は、同一メモリバンクグループに連続してアクセスする場合の遅延時間tCCD_Lに対応し、第2周期は、互いに異なるメモリバンクグループに交互にアクセスする場合の遅延時間tCCD_Sに対応する。tCCDは、column to column delayを示し、Lは、longを示し、Sは、shortを示す。
【0022】
一方、PIMは、DDR(double data rate) DRAM(dynamic random access memory)またはDDR SDRAM(synchronous dynamic random access memory)によって具現されてもよいが、最新のDDR DRAMまたはDDR SDRAMを基とするPIMは、一般的に、バンク単位の並列性、またはバンクグループ単位の並列性を利用する。例えば、バンクグループ単位の並列性を利用するDDR4基盤のPIMは、同一メモリバンクグループに連続してアクセスしなければならないために、遅延時間が、常時tCCD_Lになるという問題を有する。複数のメモリバンクグループから同時にデータが読み取られるので、1回に読み取られるデータ量は、増えてしまうが、データが読み取られる速度は、常時tCCD_L周期に制限される。それにより、PIMの全体的な演算速度に制限が生じてしまう。
【0023】
本開示の一部実施形態によれば、メモリバンクグループからデータが読み取られる遅延時間tCCD_Lが、一般的なメモリ使用時にデータが読み取られる遅延時間tCCD_Sより長いために、発生する待機時間において、外部データをtCCD_S周期で第1演算器130に供給することにより、PIMの全体的な演算速度を速めることができる。
【0024】
図3及び
図4は、一部実施形態による半導体メモリ装置の動作方法と、従来技術による半導体メモリ装置の動作方法とを比較する図面である。
【0025】
図3を参照すれば、従来技術による半導体メモリ装置の動作方法を示す概念図(310)、及び一部実施形態による半導体メモリ装置の動作方法を示す概念図(320)が図示されている。
図3において、Bank/Bankgroupは、メモリバンクまたはメモリバンクグループを示し、ALU、MUX及びbufそれぞれは、算術論理装置(arithmetic logic unit)、マルチプレクサ(multiplexer)及びバッファ(buffer)を意味するものであり、演算器に含まれる構成を示す。また、busは、内部メモリバスを示す。
【0026】
概念図(310)を参照すれば、メモリバンクグループから第1周期ごとに、内部データが読み取られるので、該内部データは、第1周期ごとに演算器に供給される。また、内部メモリバスを介して、外部データが、第1周期ごとに演算器に供給される。該演算器は、内部データ及び外部データを利用して演算を行うので、第1周期ごとに演算を行うことができる。そのように、従来技術による半導体メモリ装置の動作方法によれば、演算器の演算速度は、第1周期に制限される。
【0027】
概念図(320)を参照すれば、概念図(310)と同一に、メモリバンクグループから第1周期ごとに、内部データが読み取られるので、該内部データは、第1周期ごとに演算器に供給される。ただし、概念図(310)とは異なり、一部実施形態による半導体メモリ装置においては、内部メモリバスを介して、外部データが第2周期ごとに供給されるので、演算器が第2周期ごとに演算を行うことができる。該第2周期は、第1周期より短いので、一部実施形態による半導体メモリ装置の動作方法によれば、演算器の演算速度が速まるのである。
【0028】
一方、第1周期は、第2周期のn倍(nは、2以上の自然数)であってもよい。ただし、nは、必ずしも2以上の自然数である必要がなく、nは、2以上であるならば、いかなる値を有してもよい。例えば、nは、2以上の任意の実数とし得る。表(330)には、一部実施形態による半導体メモリ装置において、第1周期が4nsであり、第2周期が2nsであり、n=2であるとき、経時的なメモリバンクグループから供給されるデータ、及び外部から供給されるデータが図示されている。以下、
図5を参照し、外部または外部データの意味についてさらに詳細に説明する。
【0029】
図5は、一部実施形態による外部データの一例について説明するための図面である。
図5を参照すれば、半導体メモリ装置の構成を示す図面が図示されている。該半導体メモリ装置は、複数のメモリチャネルを含んでもよい。例えば、該半導体メモリ装置は、第1メモリバンクグループ110、内部メモリバス120及び第1演算器130を含むメモリチャネル510以外に、他のメモリチャネル520をさらに含んでもよい。メモリチャネル520は、メモリチャネル510と同一構造を有することができる。一方、
図5には、2個のメモリチャネルだけが図示されているが、半導体メモリ装置がさらに多数のメモリチャネルを含んでもよいということは、当該技術分野の通常の技術者であるならば、容易に理解するであろう。
【0030】
該外部データは、半導体メモリ装置に含まれるメモリチャネルのうち、第1メモリバンクグループ110を含むメモリチャネル510以外の他のメモリチャネル520に保存されたデータとし得る。このとき、該外部は、メモリチャネル520を意味する。ただし、それに制限されるものではなく、該外部は、メモリチャネル510の外部であるならば、いかなるソースでもよい。例えば、該外部データは、半導体メモリ装置外部の他のメモリ装置に保存されたデータであり、半導体メモリ装置外部のホストプロセッサで処理されるデータであってもよい。該ホストプロセッサは、CPU、GPU、DSPなどを含んでもよいが、それらに制限されるものではない。
【0031】
再び
図3に戻り、表(330)を参照すれば、演算器は、0nsで、メモリバンクグループから内部データW0を受信することができ、0nsにおいて、外部から内部メモリバスを介して、外部データA0を受信することができる。該演算器は、受信された内部データW0及び外部データA0に対する演算を行うことができる。
【0032】
その後、メモリバンクグループから新たな内部データが供給されない時点である2nsにおいて該演算器は、外部から内部メモリバスを介して、新たな外部データB0を受信することができる。それにより、該演算器は、2nsにおいて、既存の内部データW0及び新たな外部データB0に対する演算を行うことができる。そのように、該演算器は、メモリバンクグループから新たなデータが供給されなくとも、外部から供給された新たな外部データを利用し、追加的な演算を行うことができる。該内部データは、内部データ及び外部データに対する演算のために、n回再使用され、半導体メモリ装置の全体的な演算速度は、約n倍速くなるのである。
【0033】
図4を参照すれば、従来技術による半導体メモリ装置の動作方法を示すタイミング図(410)、及び一部実施形態による半導体メモリ装置の動作方法を示すタイミング図(420)が図示されている。
【0034】
タイミング図(410)及びタイミング図(420)において、行それぞれは、メモリバンクグループの経時的な動作を示し、R(read)は、メモリバンクグループから内部データが読み取られるということを意味し、C(compute)は、演算器によって演算作業が遂行されるということを意味する。
【0035】
タイミング図(410)を参照すれば、0nsにおいて、全てのメモリバンクグループそれぞれにおいて、同時に内部データが読み取られることにより、演算器による演算作業が遂行された後、4nsにおいて、全てのメモリバンクグループそれぞれにおいて、新たな内部データが読み取られてこそ、演算器による新たな演算作業が遂行されるということが分かる。そのように、従来技術による半導体メモリ装置の動作方法によれば、演算器の演算作業は、メモリバンクグループから内部データが読み取られる速度に従属し、演算器の演算速度が4ns周期に制限されるということが分かる。
【0036】
それと異なり、タイミング図(420)を参照すれば、0nsにおいて、全てのメモリバンクグループそれぞれにおいて、同時に内部データが読み取られることにより、演算器による演算作業が遂行された後、2nsにおいて、外部から新たな外部データが演算器に供給されることにより、演算器による演算作業がさらに遂行されることが分かる。一部実施形態による半導体メモリ装置の動作方法によれば、演算器の演算速度が2ns周期に速くなるのである。演算器の演算速度が速くなることにより、半導体メモリ装置の全体的な演算速度が速くなる。以下、
図6を参照し、演算器についてさらに詳細に説明する。
【0037】
図6は、一部実施形態による演算器の構成を示す図面である。
図6を参照すれば、該演算器は、第1周期ごとに、メモリバンクグループから供給される内部データを保存する被演算子バッファ610、及び第2周期ごとに、内部メモリバスから供給される外部データを保存する被演算子バッファ615を含んでもよい。また、該演算器は、被演算子バッファ610に保存された内部データ、及び被演算子バッファ615に保存された外部データに対する演算を行うALU 620をさらに含んでもよい。ALU 620は、乗算器(multiplier)、加算器(adder)、積分器(integrator)などでもあるが、それらに制限されるものではない。ALU 620は、PIMで遂行される演算の種類により、任意の適切な方式によって具現され得る。
【0038】
一方、該演算器は、内部データ及び外部データに対する演算の結果を保存する複数のバッファを含んでもよい。該複数のバッファの個数は、第1周期を第2周期で除した商に対応する個数とし得る。例えば、第1周期が第2周期のn倍であるとき、該演算器は、n個のバッファを含んでもよい。
図3及び
図4を参照して説明した例示において、n=2を仮定したので、
図6には、演算器が2個のバッファ(630及び635)を含むように図示されている。第1周期及び第2周期との関係が異なることにより、演算器に含まれたバッファの個数が異なり得るということは、当該技術分野の通常の技術者であるならば、容易に理解するであろう。
【0039】
該演算器に含まれる第1バッファ630及び第2バッファ635それぞれは、内部データ及び外部データに対する演算の結果を、1回ずつ交互に保存することができる。例えば、
図3の表(330)を参照して説明すれば、0nsにおいて、第1バッファ630が、内部データW0及び外部データA0に対する演算の結果を保存し、その後、2nsにおいて、第2バッファ635が、内部データW0及び外部データB0に対する演算の結果を保存する。その後、4nsにおいて、第1バッファ630が、内部データW1及び外部データA1に対する演算の結果を保存し、その後、6nsにおいて、第2バッファ635が、内部データW1及び外部データB1に対する演算の結果を保存する。
【0040】
該演算器は、n個のバッファのうち、演算の結果を保存するバッファを選択するために、セレクタ(selector)640、デマルチプレクサ(demultiplexer)645及びマルチプレクサ(multiplexer)650のうち少なくとも一つをさらに含んでもよい。セレクタ640は、第1バッファ630及び第2バッファ635のうち、内部データ及び外部データに対する演算の結果を保存するバッファを選択するための制御信号を出力することができる。
【0041】
デマルチプレクサ645は、1つの入力を介して受信されたデータを、いくつかの出力線のうち一つに出力する組み合わせ回路を意味し、マルチプレクサ650は、いくつかの入力線のうち一つを選択し、単一出力線に連結する組み合わせ回路を意味する。デマルチプレクサ645及びマルチプレクサ650は、セレクタ640によって出力される制御信号に基づき、第1バッファ630及び第2バッファ635のうち、演算器と連結されるバッファを決定することができる。
【0042】
一方、セレクタ640は、第2周期ごとに計数するカウンタを含んでもよく、セレクタ640によって出力される制御信号は、カウンタの出力信号に対応する。例えば、セレクタ640は、第2周期ごとに、カウント値が変更されるカウンタを含んでもよく、第2周期ごとに変更されるカウント値が、カウンタからデマルチプレクサ645及びマルチプレクサ650の制御端に出力されることにより、第1バッファ630及び第2バッファ635のうち、演算器と連結されるバッファが周期的に変更される。
【0043】
図7は、一部実施形態による半導体メモリ装置が行列積演算を行う過程の例示について説明するための図面である。
図7を参照すれば、一部実施形態による半導体メモリ装置が、行列A:
【0044】
【0045】
【数2】
との乗算演算を行う過程の例示が図示されている。
図7の例示は、第1周期が4nsであり、第2周期が2nsであり、n=2であるときを仮定した場合に対応する。
【0046】
0nsにおいて、メモリバンクグループから、行列Bの(1,1)成分であるB0に対応する内部データが演算器に供給され、外部から、行列Aの(1,1)成分であるA0に対応する外部データが演算器に供給される。該演算器は、行列積演算を行うために、乗算器によって構成され、A0及びB0に対する乗算演算を行うことができる。該乗算演算の結果であるA0*B0は、第1バッファに保存され得る。
【0047】
その後、2nsにおいて、外部から、行列Aの(2,1)成分であるA2に対応する外部データが演算器に供給されることにより、該演算器は、新たな外部データに対応する値であるA2、及び既存の内部データに対応する値であるB0に対する乗算演算を行うことができる。該乗算演算の結果であるA2*B0は、第2バッファに保存され得る。
【0048】
その後、4nsにおいて、メモリバンクグループから、行列Bの(2,1)成分であるB2に対応する内部データが演算器に新たに供給され、外部から、行列Aの(1,2)成分であるA1に対応する外部データが演算器に新たに供給される。該演算器は、新たな内部データ及び外部データが受信されることにより、A1及びB2に対する乗算演算を行うことができる。該乗算演算の結果であるA1*B2は、第1バッファに累積されて保存される。そのように、該演算器に含まれるバッファそれぞれの前端及び後端のうち少なくとも一つには、演算結果を累積して保存するために、累算器(accumulator)が追加される。乗算演算の結果であるA1*B2が、第1バッファに累積されることにより、第1バッファは、A0*B0+A1*B2という値を保存することができる。A0*B0+A1*B2は、行列Aと行列Bとの乗算演算が行われることによって生成される行列の(1,1)成分に対応する値でもある。
【0049】
その後、6nsにおいて、外部から、行列Aの(2,2)成分であるA3に対応する外部データが演算器に供給されることにより、該演算器は、新たな外部データに対応する値であるA3、及び既存の内部データに対応する値であるB2に対する乗算演算を行うことができる。該乗算演算の結果であるA3*B2は、第2バッファに累積して保存され得る。該乗算演算の結果であるA3*B2が、第2バッファに累積されることにより、第2バッファは、A2*B0+A3*B2という値を保存することができる。A2*B0+A3*B2は、行列Aと行列Bとの乗算演算が行われることによって生成される行列の(2,1)成分に対応する値でもある。
【0050】
一部実施形態による半導体メモリ装置は、前述の過程を反復することにより、行列Aと行列Bとの乗算演算を行うことができる。メモリバンクグループからデータが読み取られる第1周期より迅速な周期である第2周期で外部データが供給されることにより、半導体メモリ装置は、行列Aと行列Bとの乗算演算を、従来よりはるかに迅速に行うことができる。一方、半導体メモリ装置が行うことができる演算は、行列積演算に制限されるものではない。該半導体メモリ装置が多様な演算を行うことができ、任意のPIM演算命令により、半導体メモリ装置に含まれる構成が、多様な方式によって制御され得るということは、当該技術分野の通常の技術者であるならば、容易に理解するであろう。
【0051】
図8は、一部実施形態による半導体メモリ装置の動作方法と、従来技術による半導体メモリ装置の動作方法との性能を比較するためのシミュレーション結果を示す図面である。
【0052】
図8を参照すれば、一部実施形態による半導体メモリ装置、及び従来技術による半導体メモリ装置それぞれが、32ビット浮動小数点データの乗算演算を、204,800回行うために必要となる遅延時間(サイクル)を比較した図面である。該遅延時間は、メモリシミューレータRamulatorを利用して測定された。
【0053】
グラフ(810)を参照すれば、従来技術による半導体メモリ装置が、32ビット浮動小数点データの乗算演算を204,800回行うために必要となる遅延時間は、約730サイクルであるということが分かり、グラフ(820)を参照すれば、一部実施形態による半導体メモリ装置が、32ビット浮動小数点データの乗算演算を204,800回行うために必要となる遅延時間は、約390サイクルであるということが分かる。
【0054】
一部実施形態による半導体メモリ装置の動作方法によれば、同一数の乗算演算を行うために、従来技術よりさらに少ないサイクルのみを必要とし、一部実施形態による半導体メモリ装置の演算速度が、従来技術による半導体メモリ装置の演算速度より大幅に速くなることを確認することができる。
【0055】
図9は、他の実施形態による半導体メモリ装置の構成を示す図面である。
図9を参照すれば、バンクグループ単位の並列性を利用する半導体メモリ装置10を図示した
図1とは異なり、バンク単位の並列性を利用する半導体メモリ装置90が図示されている。半導体メモリ装置90は、半導体メモリ装置10と基本的な構造は、同一であるが、メモリバンクグループそれぞれごとに演算器が割り当てられるものではなく、メモリバンクグループに含まれるメモリバンクそれぞれごとに演算器が割り当てられる点で差がある。
【0056】
例えば、半導体メモリ装置90は、メモリバンク910、メモリバンク915、内部メモリバス920、演算器930及び演算器935を含んでもよい。メモリバンク910は、演算器930と連結され、メモリバンク915は、演算器935と連結される。演算器930及び演算器935は、互いに独立して演算作業を行うことができる。例えば、演算器930がメモリバンク910から受信されたデータを利用して演算作業を行うとき、演算器935も、メモリバンク915から受信されたデータを利用して演算作業を行うことができる。演算器930及び演算器935それぞれが、
図1を参照して説明した第1演算器130と同一または類似の方式で動作することができるということは、当該技術分野の通常の技術者に自明であるので、重複説明は、省略する。
【0057】
図10は、一部実施形態による半導体メモリ装置に含まれる演算器の動作方法を示すフローチャートである。
図10を参照すれば、半導体メモリ装置に含まれる演算器の動作方法は、
図1ないし
図9に図示された演算器において時系列的に処理される段階によって構成される。従って、以下で省略された内容であるとしても、
図1ないし
図9の演算器について以上で記述された内容は、
図10の演算器の動作方法にも適用されるということが分かる。
【0058】
段階1010において、演算器は、第1周期ごとに、メモリバンクグループから、メモリバンクグループに保存された内部データを受信することができる。同一メモリバンクグループから内部データが読み取られる周期は、物理的な制約により、第1周期に制限される。
【0059】
段階1020において、該演算器は、第1周期より短い第2周期ごとに、内部メモリバスを介して、メモリバンクグループの外部に保存されるか、あるいはメモリバンクグループの外部で処理される外部データを受信することができる。該外部データは、半導体メモリ装置に含まれるメモリチャネルのうち、メモリバンクグループを含むメモリチャネル以外の他のメモリチャネルに保存されたデータ、半導体メモリ装置の外部の他のメモリ装置に保存されたデータ、及び半導体メモリ装置外部のホストプロセッサで処理されるデータのうち少なくとも一つとし得る。該半導体メモリ装置外部のホストプロセッサは、CPU、GPU、DSPなどとし得るが、それらに制限されるものではない。
【0060】
第1周期は、同一メモリバンクグループに連続してアクセスする場合の遅延時間tCCD_Lに対応し、第2周期は、互いに異なるメモリバンクグループに交互にアクセスする場合の遅延時間tCCD_Sに対応する。一例において、第1周期は、第2周期のn倍(nは、2以上の自然数)とし得る。ただし、nは、必ずしも2以上の自然数である必要はなく、nは、2以上でありさえすれば、いかなる値を有してもよい。
【0061】
段階1030において、該演算器は、第2周期ごとに、内部データ及び外部データに対するPIM演算を行うことができる。該PIM演算は、半導体メモリ装置内部において、プロセッシング機能を有する演算器によって行われる演算を意味する。そのように、本開示の一部実施形態によれば、メモリバンクグループからデータが読み取られる遅延時間tCCD_Lが、一般的なメモリ使用時、データが読み取られる遅延時間tCCD_Sより長いために発生する待機時間に、外部データが第2周期で演算器に供給され、それにより、該演算器は、第2周期で演算を行うことができる。該演算器は、内部データ及び外部データに係わる演算のために、内部データをn回再使用することができる。該第2周期は、第1周期より短いので、一部実施形態による半導体メモリ装置の動作方法によれば、演算器の演算速度が速くなる。
【0062】
該演算器は、内部データ及び外部データに係わる演算の結果を、第1周期を第2周期で除した商であるnに対応する個数の複数のバッファそれぞれに、1回ずつ交互に保存することができる。例えば、該演算器は、n個のバッファのうち、内部データ及び外部データに係わる演算の結果を保存するバッファを選択するための制御信号を出力することにより、n個のバッファのうち演算器と連結される1つのバッファを選択することができる。
【0063】
一方、前述の演算器の動作方法は、その方法を遂行する命令語を含む1以上のプログラムが記録されたコンピュータ読み取り可能記録媒体に記録されてもよい。コンピュータ読み取り可能記録媒体の例には、ハードディスク、フロッピィーディスク及び磁気テープのような磁気媒体(magnetic media);CD-ROM(compact disc read only memory)、DVD(digital versatile disc)のような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気・光媒体(magneto-optical media);及びROM(read-only memory)、RAM(random access memory)、フラッシュメモリのようなプログラム命令を保存して遂行するように特別に構成されたハードウェア装置が含まれる。該プログラム命令語の例には、コンパイラによって作われるような機械語コードだけではなく、インタープリタなどを使用し、コンピュータによって実行される高級言語コードを含む。
【0064】
図11は、一部実施形態による電子システムの構成を示すブロック図である。
図11を参照すれば、電子システム1100は、ニューラルネットワークを基に、入力データをリアルタイムに分析し、有効な情報を抽出し、抽出された情報を基に、状況判断を行ったり、電子システム1100が搭載される電子デバイスの構成を制御したりすることができる。例えば、電子システム1100は、ドローン(drone)、先進運転支援システム(ADAS:advanced drivers assistance system)のようなロボット装置、スマートTV(television)、スマートフォン、医療デバイス、モバイルデバイス、映像表示デバイス、計測デバイス、IoTデバイスなどに適用されることができ、それ以外にも、多種の電子デバイスのうち少なくとも一つにも搭載され得る。例えば、電子システム1100は、サーバであってもよい。
【0065】
電子システム1100は、プロセッサ1110、半導体メモリ装置1120、ニューラルネットワーク装置1130、システムメモリ1140、センサモジュール1150及び通信モジュール1160を含んでもよい。電子システム1100は、入出力モジュール、セキュリティモジュール、電力制御装置などをさらに含んでもよい。電子システム1100のハードウェア構成のうち一部は、少なくとも1つの半導体チップに搭載され得る。
【0066】
プロセッサ1110は、電子システム1100の全般的な動作を制御する。プロセッサ1110は、1つのプロセッサコア(single core)を含むか、あるいは複数のプロセッサコア(multi-core)を含んでもよい。プロセッサ1110は、システムメモリ1140に保存されたプログラム及び/またはデータを処理または実行することができる。一部実施形態において、プロセッサ1110は、システムメモリ1140に保存されたプログラムを実行することにより、ニューラルネットワーク装置1130の機能を制御することができる。プロセッサ1110は、CPU、GPU、AP(application processor)などによって具現され得る。
【0067】
半導体メモリ装置1120は、プログラム、データまたは命令(instructions)を一時的に保存することができる。例えば、システムメモリ1140に保存されたプログラム及び/またはデータが、プロセッサ1110の制御または起動コードにより、半導体メモリ装置1120に一時的に保存される。半導体メモリ装置1120は、DRAMのようなメモリによって具現され得る。一方、半導体メモリ装置1120は、
図1ないし
図10を参照して説明した半導体メモリ装置に対応する。半導体メモリ装置1120は、PIMに該当するので、データを保存するメモリ機能だけではなく、演算作業を行うプロセッサの機能を遂行することができる。それにより、プロセッサ1110に演算作業が過度に割り当てられず、電子システム1100の全体的な性能が上昇する。
【0068】
ニューラルネットワーク装置1130は、受信される入力データを基に、ニューラルネットワークの演算を行い、遂行結果を基に、情報信号を生成することができる。該ニューラルネットワークは、CNN(convolutional neural network)、RNN(recurrent neural network)、FNN(feedforward neural network)、Deep Belief Networks、Restricted Boltzman Machinesなどを含んでもよいが、それらに制限されるものではない。
【0069】
該情報信号は、音声認識信号、事物認識信号、映像認識信号、生体情報認識信号のような多種の認識信号のうち一つを含んでもよい。例えば、ニューラルネットワーク装置1130は、ビデオストリームに含まれるフレームデータを入力データとして受信し、フレームデータから、フレームデータが示すイメージに含まれた事物に係わる認識信号を生成することができる。しかし、それらに制限されるものではなく、電子システム1100が搭載された電子装置の種類または機能により、ニューラルネットワーク装置1130は、多種の入力データを受信することができ、該入力データによる認識信号を生成することができる。
【0070】
システムメモリ1140は、データを保存するための保存場所であり、OS(operating system)、各種プログラム及び各種データを保存することができる。本実施形態において、システムメモリ1140は、ニューラルネットワーク装置1130の演算遂行過程において生成される中間結果を保存することができる。
【0071】
システムメモリ1140は、揮発性メモリまたは不揮発性メモリのうち少なくとも一つを含んでもよい。該不揮発性メモリは、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、PRAM、MRAM、RRAM(登録商標)、FRAM(登録商標)などを含む。該揮発性メモリは、DRAM、SRAM、SDRAMなどを含む。本実施形態において、システムメモリ1140は、HDD、SSD、CF、SD、Micro-SD、Mini-SD、xDまたはMemory Stickのうち少なくとも一つを含んでもよい。
【0072】
センサモジュール1150は、電子システム1100が搭載される電子装置周辺の情報を収集することができる。センサモジュール1150は、電子装置の外部から信号(例えば、映像信号、音声信号、磁気信号、生体信号、タッチ信号など)をセンシングまたは受信し、センシングまたは受信された信号をデータに変換することができる。そのために、センサモジュール1150は、センシング装置、例えば、マイク、撮像装置、イメージセンサ、ライダ(LIDAR:light detection and ranging)センサ、超音波センサ、赤外線センサ、バイオセンサ及びタッチセンサのような多種のセンシング装置のうち少なくとも一つを含んでもよい。
【0073】
センサモジュール1150は、変換されたデータをニューラルネットワーク装置1130に、入力データとして提供することができる。例えば、センサモジュール1150は、イメージセンサを含んでもよく、該電子装置の外部環境を撮影してビデオストリームを生成し、該ビデオストリームの連続するデータフレームを、ニューラルネットワーク装置1130に入力データとして順に提供することができる。しかし、それに制限されるものではなく、センサモジュール1150は、多種のデータをニューラルネットワーク装置1130に提供することができる。
【0074】
通信モジュール1160は、外部デバイスと通信することができる多様な有線または無線のインターフェースを具備することができる。例えば、通信モジュール1160は、ローカルエリアネットワーク(LAN:local area network)、Wi-Fi(wireless fidelity)のような無線ローカルエリアネットワーク(WLAN:wireless local area network)、ブルートゥース(登録商標)(Bluetooth)のような無線パーソナルエリアネットワーク(WPAN:wireless personal area network)、無線USB(universal serial bus)、Zigbee、NFC(near field communication)、RFID(radio frequency identification)、PLC(power line communication)、または3G(3rd generation)・4G(4th generation)・LTE(long-term evolution)のような移動通信網(mobile cellular network)に接続可能な通信インターフェースなどを含んでもよい。
【0075】
以上、本実施形態について詳細に説明したが、本発明の権利範囲は、それらに限定されるものではなく、特許請求の範囲で定義している本発明の基本概念を利用した当業者の多くの変形及び改良形態も、本発明の権利範囲に属する。
【産業上の利用可能性】
【0076】
本発明の、PIMを採用する半導体メモリ装置及びその動作方法は、例えば、データ保存関連の技術分野に効果的に適用可能である。
【符号の説明】
【0077】
10,90,1120 半導体メモリ装置
110 第1メモリバンクグループ
115 第2メモリバンクグループ
120,920 内部メモリバス
130 第1演算器
135 第2演算器
510,520 メモリチャネル
610,615 被演算子バッファ
620 ALU
630 第1バッファ
635 第2バッファ
640 セレクタ
650 マルチプレクサ
910,915 メモリバンク
930,935 演算器
1100 電子システム
1110 プロセッサ
1130 ニューラルネットワーク装置
1140 システムメモリ
1150 センサモジュール
1160 通信モジュール