JP2022548643A - システムオンチップ及びメモリチップを接続するアクセラレータチップ - Google Patents
システムオンチップ及びメモリチップを接続するアクセラレータチップ Download PDFInfo
- Publication number
- JP2022548643A JP2022548643A JP2022517127A JP2022517127A JP2022548643A JP 2022548643 A JP2022548643 A JP 2022548643A JP 2022517127 A JP2022517127 A JP 2022517127A JP 2022517127 A JP2022517127 A JP 2022517127A JP 2022548643 A JP2022548643 A JP 2022548643A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- chip
- accelerator
- soc
- application
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 456
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 130
- 239000013598 vector Substances 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 239000000872 buffer Substances 0.000 description 19
- 239000003990 capacitor Substances 0.000 description 11
- 238000013500 data storage Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013316 polymer of intrinsic microporosity Substances 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Dram (AREA)
- Multi Processors (AREA)
Abstract
人工知能(AI)アクセラレータチップなどのアクセラレータチップは、システムオンチップ(SoC)及びメモリチップを接続することができる。アクセラレータチップは、配線を介してメモリチップに接続するように構成される第一セットのピン、及び配線を介してSoCに接続するように構成される第二セットのピンを有することができる。アクセラレータチップは、SoCについての特定用途向け計算(例えば、AI計算)を実行して高速化するだけでなく、メモリチップをメモリとして特定用途向け計算に使用するように構成されることができる。例えば、アクセラレータチップはAIアクセラレータチップであることができ、AIアクセラレータチップは、SoCについてのAI計算を実行して高速化するだけでなく、メモリチップをメモリとしてAI計算に使用するように構成されることができる。
Description
関連出願
本出願は、2019年9月17日に出願され、「ACCELERATOR CHIP CONNECTING A SYSTEM ON A CHIP AND A MEMORY CHIP」と題された米国特許出願第16/573,795号に優先権を主張し、その開示全体は、参照により本明細書に援用される。
本出願は、2019年9月17日に出願され、「ACCELERATOR CHIP CONNECTING A SYSTEM ON A CHIP AND A MEMORY CHIP」と題された米国特許出願第16/573,795号に優先権を主張し、その開示全体は、参照により本明細書に援用される。
本明細書に開示される少なくともいくつかの実施形態は、システムオンチップ(SoC)及びメモリチップを接続する、人工知能(AI)アクセラレータチップなどのアクセラレータチップに関する。本明細書に開示される少なくともいくつかの実施形態は、ベクトルプロセッサを有するアクセラレータチップ(例えば、AIアクセラレータチップ)に関する。本明細書に開示される少なくともいくつかの実施形態は、メモリ階層及びメモリチップストリングを使用してメモリを形成することに関する。
AIアクセラレータは、マイクロプロセッサまたはコンピュータシステムの1つのタイプであり、このタイプは、人工ニューラルネットワーク、マシンビジョン、及び機械学習などのAIアプリケーションを含む、AIアプリケーションについての計算を高速化するように設定される。AIアクセラレータは、データ集約型またはセンサ駆動型タスクについてのデータ処理を向上させるためにハードワイヤードであることができる。AIアクセラレータは、1つ以上のコアを含むことができ、低精度演算及びインメモリコンピューティング用に配線されることができる。AIアクセラレータは、スマートフォン、タブレット、及びあらゆるタイプのコンピュータ(特に、センサ、ならびにグラフィックス及び光学処理などのデータ集約型タスクを有するコンピュータ)などの多くのデバイスに見いだされることができる。また、AIアクセラレータは、AIアプリケーションで使用される数値シミュレーション及び他のタイプのタスクに関するパフォーマンスを向上させるために、ベクトルプロセッサまたはアレイプロセッサを含むことができる。
SoCは、コンピュータコンポーネントをシングルチップに集積する集積回路(IC)である。SoCにおける一般的なコンピュータコンポーネントは、中央処理装置(CPU)、メモリ、入出力ポート、及びセカンダリストレージを含む。SoCは、そのすべてのコンポーネントを単一の基板またはマイクロチップ上に含むことができ、一部のチップは25セント硬貨よりも小さくなることができる。SoCは、さまざまな信号処理機能を有することができ、グラフィックスプロセッシングユニット(GPU)など、専用のプロセッサまたはコプロセッサを含むことができる。緊密に集積されることにより、SoCは、同等の機能を有する従来のマルチチップシステムよりも電力の消費をはるかに少なくすることができる。これにより、SoCは、モバイルコンピューティングデバイス(スマートフォン及びタブレットなどの内の)の統合に有益になる。また、SoCは、組み込みシステム及びモノのインターネット(特にスマートデバイスが小さい場合)に有用であることができる。
メインメモリなどのメモリは、コンピュータまたはコンピューティングデバイスでの即時使用のために情報を格納するコンピュータハードウェアである。一般に、メモリはコンピュータストレージよりも高速で動作する。コンピュータストレージによって、情報にアクセスする速度が遅くなるが、その容量が増え、データの信頼性が高くなることもできる。メモリの1つのタイプであるランダムアクセスメモリ(RAM)は、高い動作速度を有することができる。
通常、メモリは、アドレス指定可能な半導体メモリユニットまたはセルで構成される。メモリIC及びそのメモリユニットは、シリコンベースの金属酸化物半導体電界効果トランジスタ(MOSFET)によって少なくとも部分的に実装されることができる。
メモリには、揮発性及び不揮発性という2つの主なタイプがある。不揮発性メモリは、フラッシュメモリ(ストレージとして使用されることもできる)、ならびにROM、PROM、EPROM、及びEEPROM(ファームウェアを格納するために使用されることができる)を含むことができる。別のタイプの不揮発性メモリは、不揮発性ランダムアクセスメモリ(NVRAM)である。揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)などのメインメモリテクノロジ、及び通常はスタティックランダムアクセスメモリ(SRAM)を使用して実装されるキャッシュメモリを含むことができる。
コンピューティングシステムのメモリは、階層であることができる。コンピュータアーキテクチャではメモリ階層と称されることが多い、メモリ階層は、応答時間、複雑さ、容量、永続性及びメモリ帯域幅など、ある特定の要因に基づいて、コンピュータメモリを階層に分離することができる。それらのような要因は関連していることができ、多くの場合、メモリ階層の有用性をさらに強調するトレードオフであることができる。
一般に、メモリ階層はコンピュータシステムでのパフォーマンスに影響する。他の要因に優先してメモリ帯域幅と速度を優先順位付けするには、応答時間、複雑さ、容量、及び永続性などのメモリ階層の制限を考慮する必要がある場合がある。このような優先順位付けを管理するために、さまざまなタイプのメモリチップを組み合わせて、より高速なチップと、より信頼性の高い、または費用効果の高いチップなどとのバランスをとることができる。さまざまなチップのそれぞれをメモリ階層の一部と見なすことができる。そして、例えば、より高速なチップでのレイテンシを減らすために、メモリチップの組み合わせでの他のチップは、バッファを充填してから、チップ間のデータ転送をアクティブにする信号を送ることによって応答することができる。
メモリ階層は、さまざまなタイプのメモリユニットまたはセルを含むチップで構成されることができる。例えば、メモリセルはDRAMユニットであることができる。DRAMは、データの各ビットをメモリセルに格納するランダムアクセス半導体メモリの1つのタイプであり、メモリセルは、通常、コンデンサ及びMOSFETを含む。コンデンサは、充電されるか放電されるかいずれかが可能であり、これは、1ビットの中の2値、「0」及び「1」などで表される。DRAMでは、コンデンサの電荷が漏れ出すため、DRAMは、コンデンサごとに元の電荷を回復することによってコンデンサ内のデータを定期的にリライトする外部メモリリフレッシュ回路を必要とする。DRAMは、電源が切断されると、そのデータが急速に失われるため、揮発性メモリと見なされる。これは、データストレージがより永続的である、フラッシュメモリ、及びNVRAMなどの他のタイプの不揮発性メモリとは異なる。
NVRAMの1つのタイプは3D XPointメモリである。3D XPointメモリでは、メモリユニットは、積層可能な交差格子状データアクセスアレイと組み合わせて、バルク抵抗の変化に基づいてビットを格納する。3D XPointメモリは、DRAMよりも費用効果が高いが、フラッシュメモリよりも費用効果が低い場合がある。また、3D XPointは、不揮発性メモリ及びランダムアクセスメモリである。
フラッシュメモリは、別のタイプの不揮発性メモリである。フラッシュメモリの利点は、電気的に消去されて再プログラムされることができることである。フラッシュメモリは、NAND型フラッシュメモリ及びNOR型フラッシュメモリという2つの主なタイプを有すると考えられており、これらは、フラッシュメモリのメモリユニットを実装することができるNAND及びNOR論理ゲートにちなんで名付けられている。フラッシュメモリユニットまたはセルは、対応するゲートのものと同様の内部特性を示す。NAND型フラッシュメモリはNANDゲートを含む。NOR型フラッシュメモリはNORゲートを含む。NAND型フラッシュメモリは、デバイス全体よりも小さくすることができるブロックに読み書きされてもよい。NOR型フラッシュは、シングルバイトを消去した位置に書き込む、または独立して読み出すことを可能にする。NAND型フラッシュメモリの利点により、このようなメモリは、メモリカード、USBフラッシュドライブ、及びソリッドステートドライブによく利用されている。ただし、一般にフラッシュメモリを使用することの主なトレードオフは、DRAM及びNVRAMなどの他のタイプのメモリと比較して、特定のブロックに比較的少数の書き込みサイクルしかできないことである。
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態の添付図面から、より十分に理解される。
本明細書に開示される少なくともいくつかの実施形態は、SoC及びメモリチップ(例えば、DRAM)を接続するアクセラレータチップ(例えば、AIアクセラレータチップ)に関する。換言すれば、本明細書に開示される少なくともいくつかの実施形態は、アクセラレータチップ(例えば、AIアクセラレータチップ)を介してメモリチップをSoCに接続することに関する。アクセラレータチップは、SoCと直接通信することができる。アクセラレータチップは、SoCから要求を受け取り、メモリチップを使用して中間結果を格納する。それらのような実施形態の一例については、図1~3に示される、アクセラレータチップ102、第一メモリチップ104、及びSoC106を参照されたい。また、アクセラレータチップ102、第一メモリチップ104、及びSoC106を含むことができる、図8~9に示されるSoC806及び特定用途向けコンポーネント807を参照されたい。特定用途向けコンポーネント807は、デバイス800及び900のいくつかの実施形態では、第一メモリチップ104及びアクセラレータチップ102を含むことができる。
メモリチップ及びSoCを接続するアクセラレータチップは、別個の2セットのピンを含むことができる。1セットは配線を介してメモリチップに直接接続するためのものであり(例えば、図1~3に示される1セットのピン114、及び配線124を参照)、もう1セットは配線を介してSoCに直接接続するためのものである(例えば、図1~2に示される1セットのピン116、及び配線126を参照)。アクセラレータチップがSoCとメモリチップとの間にあると、SoCについての、一般に、またはより具体的には、いくつかの実施形態では、SoCに含まれるグラフィックスプロセッシングユニット(GPU)(例えば、図1~3に示されるGPU108を参照)についての、特定用途向け計算(AI計算など)が高速化されることができる。いくつかの実施形態では、SoC内のGPU及びメモリチップを、アクセラレータチップを介して接続することができる。いくつかの実施形態では、メモリチップは、1セットのピンを含むことができ、この1セットのピン及び配線(例えば、1セットのピン115、及び配線124を参照)を介してアクセラレータチップに直接接続されることができる。また、SoCは、1セットのピンを含むことができ、この1セットのピン及び配線を介してアクセラレータチップに直接接続されることができる。いくつかの実施形態では、SoC内のGPUは、1セットのピンを含むことができ、この1セットのピン及び配線(例えば、1セットのピン117、及び配線126を参照)を介してアクセラレータチップに直接接続されることができる。
いくつかの実施形態(図示せず)では、メモリチップ及びSoCを接続するアクセラレータチップは、SoCの一部であることができ、任意選択で、SoC内のGPU、またはSoC内のGPUに加えて特定用途向けデバイス(AIアクセラレータデバイスなど)であることができる。SoCが特定用途向けデバイスを含む場合、特定用途向けデバイスは、具体的には、特定用途向けデバイスが特定用途向け計算(AI計算など)の高速化に専用のハードワイヤードであるという点で、特定用途向け計算用に構成される特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を含むことができる。
本開示の目的のために、本明細書に記載されるアクセラレータチップのいずれか1つが専用アクセラレータチップであること、またはそれを含むこと、またはその一部であることができることを理解されたい。専用アクセラレータチップの例は、低レイテンシまたは高帯域幅のメモリアクセスを提供することができる、人工知能(AI)アクセラレータチップ、仮想現実アクセラレータチップ、拡張現実アクセラレータチップ、グラフィックスアクセラレータチップ、機械学習アクセラレータチップ、またはいずれかの他のタイプのASICもしくはFPGAを含むことができる。例えば、本明細書に記載のアクセラレータチップのいずれか1つは、AIアクセラレータチップであること、またはそれを含むこと、またはその一部であることができる。
アクセラレータチップは、人工ニューラルネットワーク、マシンビジョン、及び機械学習を含む、AIアプリケーションのハードウェア高速化のために設計されるマイクロプロセッサチップまたはSoC自体であることができる。いくつかの実施形態では、アクセラレータチップは、ベクトル及び行列に対して数値計算を実行するように設定される(例えば、ベクトル及び行列に対して数値計算を実行するように設定されることができる、図1に示されるベクトルプロセッサ112を参照)。アクセラレータチップは、ASICまたはFPGAであること、またはそれを含むことができる。アクセラレータチップのASIC実施形態では、アクセラレータチップは、特定用途向け計算(AI計算など)の高速化のために専用のハードワイヤードであることができる。いくつかの他の実施形態では、アクセラレータチップは、変更されていないFPGAまたはGPUを超えた特定用途向け計算の高速化のために変更されている、変更されたFPGAまたはGPUであることができる。いくつかの他の実施形態では、アクセラレータチップは、変更されていないFPGAまたはGPUであることができる。
アクセラレータチップに直接接続されているメモリチップ(例えば、第一メモリチップ104を参照)は、システム全体の複数のメモリチップを説明する際に明確にするために、本明細書では特定用途向けメモリチップとも称される。特定用途向けメモリチップは、必ずしも特定用途向け計算(AI計算など)専用のハードワイヤードであるとは限らない。特定用途向けメモリチップのそれぞれは、DRAMチップまたはNVRAMチップであることができる。そして、特定用途向けメモリチップのそれぞれは、アクセラレータチップに直接接続されることができ、SoCまたはアクセラレータチップによって特定用途向けメモリチップが構成された後、アクセラレータによる特定用途向け計算の高速化専用のメモリユニットを含むことができる。
いくつかの実施形態では、SoCは、メインプロセッサ(例えば、CPU)を含むことができる。例えば、図1~3に示されるメインプロセッサ110を参照されたい。それらのような実施形態では、SoC内のGPUは、特定用途向けタスク及び計算(例えば、AIタスク及び計算)のための命令を実行することができ、メインプロセッサは、非特定用途向けタスク及び計算(例えば、非AIタスク及び計算)のための命令を実行することができる。そして、それらのような実施形態では、アクセラレータは、GPU専用の特定用途向けタスク及び計算の高速化を提供することができる。また、SoCは、SoCのコンポーネントを相互接続する(メインプロセッサ及びGPUを接続するなどの)ための独自のバスを含むことができる。そのうえ、SoCのバスは、SoCをSoCの外部のバスに接続するように構成されることができるため、SoCのコンポーネントは、別個のメモリチップなどのSoCの外部のチップ及びデバイスと結合することができる。
GPUの非特定用途向け計算及びタスク(例えば、非AI計算及びタスク)、またはアクセラレータチップを使用しないそれらのような計算及びタスクは、メインプロセッサによって実行される従来のタスクではない可能性があるが、別個のメモリチップなどの別個のメモリ(特定用途向けメモリであることができる)を使用することができる。そして、メモリは、DRAM、NVRAM、フラッシュメモリ、またはそれらの任意の組み合わせで実装されることができる。例えば、別個のメモリまたはメモリチップを、SoCの外部のバスを介してSoC及びメインプロセッサに接続することができる(例えば、図2に示されるメモリ204及びバス202を参照)。それらのような実施形態では、別個のメモリまたはメモリチップは、メインプロセッサ専用のメモリユニットを有することができる。また、別個のメモリまたはメモリチップを、SoCの外部のバスを介してSoC及びGPUに接続することができる(例えば、図2~3に示される第二メモリチップ204及びバス202を参照)。それらのような実施形態では、別個のメモリまたはメモリチップは、メインプロセッサまたはGPUにメモリユニットを含むことができる。
本開示の目的のために、特定用途向けメモリチップ及び別個のメモリチップがメモリチップストリング(例えば、図10及び11に示されるメモリチップストリングを参照)などのメモリチップ群によって各置換されることができることを理解されたい。例えば、別個のメモリチップは、少なくともNVRAMチップ及びそのNVRAMチップの下流にあるフラッシュメモリチップを含むメモリチップストリングで置換されることができる。また、別個のメモリチップは、少なくとも2つのメモリチップで置換されることができ、これらのチップのうちの1つはメインプロセッサ(例えば、CPU)用であり、もう1つのチップは非AI計算及び/またはタスクのためのメモリとして使用するためのGPU用である。
さらに、本明細書に開示される少なくともいくつかの実施形態は、ベクトルプロセッサ(例えば、図1~3に示されるベクトルプロセッサ112を参照)を有するアクセラレータチップ(例えば、AIアクセラレータチップ)に関する。そして、本明細書に開示される少なくともいくつかの実施形態は、メモリ階層及びメモリチップストリングを使用してメモリを形成することに関する(例えば、図10及び11を参照)。
本開示の目的のために、本明細書に記載されるアクセラレータチップのいずれか1つが専用アクセラレータチップであること、またはそれを含むこと、またはその一部であることができることを理解されたい。専用アクセラレータチップの例は、低レイテンシまたは高帯域幅のメモリアクセスを提供することができる、AIアクセラレータチップ、仮想現実アクセラレータチップ、拡張現実アクセラレータチップ、グラフィックスアクセラレータチップ、機械学習アクセラレータチップ、またはいずれかの他のタイプのASICもしくはFPGAを含むことができる。
図1は、本開示のいくつかの実施形態による、第一メモリチップ104及びSoC106を接続するアクセラレータチップ102(例えば、AIアクセラレータチップ)を含むシステム100の一例を示す。示されるように、SoC106は、GPU108及びメインプロセッサ110を含む。メインプロセッサ110は、CPUである、またはそれを含むことができる。そして、アクセラレータチップ102は、ベクトルプロセッサ112を含む。
システム100では、アクセラレータチップ102は、第一セットのピン114及び第二セットのピン116を含む。第一セットのピン114は、配線124を介して第一メモリチップ104に接続するように構成される。第二セットのピン116は、配線126を介してSoC106に接続するように構成される。示されるように、第一メモリチップ104は、対応する1セットのピン115を含み、このセットは、配線124を介してメモリチップをアクセラレータチップ102に接続する。SoC106のGPU108は、対応する1セットのピン117を含み、このセットは、配線126を介してSoCをアクセラレータチップ102に接続する。
アクセラレータチップ102は、SoC106の特定用途向け計算(例えば、AI計算)を実行して高速化するように設定される。また、アクセラレータチップ102は、第一メモリチップ104を特定用途向け計算のためのメモリとして使用するように構成される。特定用途向け計算の高速化は、ベクトルプロセッサ112によって実行されることができる。アクセラレータチップ102内のベクトルプロセッサ112は、SoC106についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。アクセラレータチップ102は、ASICを含むことができ、このASICは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介して特定用途向け計算(例えば、AI計算)を高速化するための専用ハードワイヤードである。あるいは、アクセラレータチップ102は、FPGAを含むことができ、このFPGAは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介して特定用途向け計算を高速化するための専用ハードワイヤードである。いくつかの実施形態では、アクセラレータチップ102は、GPUを含むことができ、このGPUは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介して特定用途向け計算を高速化するための専用ハードワイヤードである。それらのような実施形態では、GPUは、ベクトルプロセッサ112を介して特定用途向け計算を高速化するための専用に変更されることができる。
示されるように、SoC106はGPU108を含む。そして、アクセラレータチップ102は、GPU108についての特定用途向け計算(例えば、AI計算)を実行して高速化するように設定されることができる。例えば、ベクトルプロセッサ112は、GPU108についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。また、GPU108は、特定用途向けタスク及び計算(例えば、AIタスク及び計算)を実行するように設定されることができる。
また、示されるように、SoC106は、非AIタスク及び計算を実行するように設定されるメインプロセッサ110を含む。
いくつかの実施形態では、メモリチップ104はDRAMチップである。それらのような例では、第一セットのピン114は、配線124を介してDRAMチップに接続するように構成されることができる。また、アクセラレータチップ102は、特定用途向け計算(例えば、AI計算)のためのメモリとして、DRAMチップ内のDRAMセルを使用するように構成されることができる。いくつかの他の実施形態では、メモリチップ104はNVRAMチップである。それらのような実施形態では、第一セットのピン114は、配線124を介してNVRAMチップに接続するように構成されることができる。また、アクセラレータチップ102は、特定用途向け計算のためのメモリとして、NVRAMチップ内のNVRAMセルを使用するように構成されることができる。さらに、NVRAMチップは、3D XPointメモリチップである、またはそれを含むことができる。それらのような例では、第一セットのピン114は、配線124を介して3D XPointメモリチップに接続するように構成されることができ、アクセラレータチップ102は、3D XPointメモリチップ内の3D XPointメモリセルを、特定用途向け計算のためのメモリとして使用するように構成されることができる。
いくつかの実施形態では、システム100は、配線を介して第一メモリチップ104に接続されるアクセラレータチップ102を含み、第一メモリチップ104は、特定用途向けメモリチップであることができる。また、システム100は、SoC106を含み、このSoCは、GPU108(AIタスクを実行するように設定されることができる)、及びメインプロセッサ110(非AIタスクを実行し、AIタスクをGPU108にデリゲートするように設定されることができる)を含む。それらのような実施形態では、GPU108は、配線126を介してアクセラレータチップ102に接続するように構成される1セットのピン117を含み、アクセラレータチップ102は、GPU108についてのAIタスクのAI計算を実行して高速化するように設定される。
それらのような実施形態では、アクセラレータチップ102は、GPU108についてのベクトル及び行列に対して数値計算を実行するように設定されるベクトルプロセッサ112を含むことができる。そして、アクセラレータチップ102は、ASICを含み、このASICは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介してAI計算を高速化するための専用ハードワイヤードである。または、アクセラレータチップ102は、FPGAを含み、このFPGAは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介してAI計算を高速化するための専用ハードワイヤードである。または、アクセラレータチップ102は、GPUを含み、このGPUは、ベクトルプロセッサ112を含み、ベクトルプロセッサ112を介してAI計算を高速化するための専用ハードワイヤードである。
また、システム100は、メモリチップ104を含み、アクセラレータチップ102は、配線124を介してメモリチップ104に接続されることができ、AIタスクのAI計算を実行して高速化するように設定されることができる。メモリチップ104は、DRAMセルを有するDRAMチップである、またはそれを含むことができ、DRAMセルは、アクセラレータチップ102によって、AI計算の高速化のためにデータを格納するように構成されることができる。または、メモリチップ104は、NVRAMセルを有するNVRAMチップである、もしくはそれを含むことができ、NVRAMセルは、アクセラレータチップ102によって、AI計算の高速化のためにデータを格納するように構成されることができる。NVRAMチップは、3D XPointメモリセルを含むことができ、3D XPointメモリセルは、アクセラレータチップ102によって、AI計算の高速化のためにデータを格納するように構成されることができる。
図2~3は、それぞれ例示的なシステム200及び300、ならびに別個のメモリ(NVRAMなど)の例を示し、各システムは、図1に示されるアクセラレータチップ102を含む。
図2では、バス202は、システム100(アクセラレータチップ102を含む)をメモリ204に接続する。メモリ204は、いくつかの実施形態ではNVRAMであることができ、システム100の第一メモリチップ104のメモリとは別のメモリである。そして、メモリ204は、いくつかの実施形態ではメインメモリであることができる。
システム200では、システム100のSoC106は、バス202を介してメモリ204に接続される。そして、システム200の一部としてのシステム100は、アクセラレータチップ102、第一メモリチップ104、及びSoC106を含む。システム100のこれらのパーツは、バス202を介してメモリ204に接続される。また、図2に示されるように、SoC106に含まれるメモリコントローラ206は、システム100のSoC106によるメモリ204のデータアクセスを制御する。例えば、メモリコントローラ206は、GPU108及び/またはメインプロセッサ110によるメモリ204のデータアクセスを制御する。いくつかの実施形態では、メモリコントローラ206は、システム200内のすべてのメモリのデータアクセス(第一メモリチップ104及びメモリ204のデータアクセスなど)を制御することができる。そして、メモリコントローラ206は、第一メモリチップ104及び/またはメモリ204に通信可能に結合されることができる。
メモリ204は、システム100の第一メモリチップ104によって提供されるメモリとは別のメモリであり、それは、メモリコントローラ206及びバス202を介して、SoC106のGPU108及びメインプロセッサ110にメモリとして使用されることができる。また、メモリ204は、GPU108及びメインプロセッサ110に、アクセラレータチップ102によって実行されない非特定用途向けタスクまたは特定用途向けタスク(非AIタスクまたはAIタスクなど)のためのメモリとして使用されることができる。それらのようなタスクについてのデータは、メモリコントローラ206及びバス202を介してメモリ204によってアクセスされ、そのメモリとの間で通信されることができる。
いくつかの実施形態では、メモリ204は、システム200をホストするデバイスなどのデバイスのメインメモリである。例えば、システム200では、メモリ204は、図8に示されるメインメモリ808であることができる。
図3では、バス202は、システム100(アクセラレータチップ102を含む)をメモリ204に接続する。また、システム300では、バス202は、アクセラレータチップ102をSoC106に接続し、アクセラレータチップ102をメモリ204に接続する。そのうえ示されるように、システム300では、バス202は、アクセラレータチップの第二セットのピン116、ならびにSoC106及びGPU108の配線126及び1セットのピン117の代わりをする。システム300内のアクセラレータチップ102は、システム200と同様に、システム100の第一メモリチップ104及びSoC106を接続する。ただし、この接続は、第一セットのピン114、及びバス202を介する。
また、システム200と同様に、システム300では、メモリ204は、システム100の第一メモリチップ104のメモリとは別のメモリである。システム300では、システム100のSoC106は、バス202を介してメモリ204に接続される。そして、システム300では、システム300の一部としてのシステム100は、アクセラレータチップ102、第一メモリチップ104、及びSoC106を含む。システム100のこれらのパーツは、システム300では、バス202を介してメモリ204に接続される。また、図3に示されるものと同様に、SoC106に含まれるメモリコントローラ206は、システム100のSoC106によるメモリ204のデータアクセスを制御する。いくつかの実施形態では、メモリコントローラ206は、システム300内のすべてのメモリのデータアクセス(第一メモリチップ104及びメモリ204のデータアクセスなど)を制御することができる。そして、メモリコントローラは、第一メモリチップ104及び/またはメモリ204に接続されることができる。そして、メモリコントローラ206は、第一メモリチップ104及び/またはメモリ204に通信可能に結合されることができる。
また、システム300では、メモリ204(いくつかの実施形態ではNVRAMであることができる)は、システム100の第一メモリチップ104によって提供されるメモリとは別のメモリであり、それは、メモリコントローラ206及びバス202を介して、SoC106のGPU108及びメインプロセッサ110にメモリとして使用されることができる。さらに、アクセラレータチップ102は、いくつかの実施形態及び状況では、バス202を介してメモリ204を使用することができる。そして、メモリ204は、GPU108及びメインプロセッサ110に、アクセラレータチップ102によって実行されない非特定用途向けタスクまたは特定用途向けタスク(非AIタスクまたはAIタスクなど)のためのメモリとして使用されることができる。それらのようなタスクについてのデータは、メモリコントローラ206及び/またはバス202を介してメモリ204によってアクセスされ、そのメモリとの間で通信されることができる。
いくつかの実施形態では、メモリ204は、システム300をホストするデバイスなどのデバイスのメインメモリである。例えば、システム300では、メモリ204は、図9に示されるメインメモリ808であることができる。
図4は、例示的なシステム400を示し、このシステムは、ある程度、システム100に関連している。システム400は、アクセラレータチップ404(例えば、AIアクセラレータチップ)及びSoC406を接続する第一メモリチップ402を含む。示されるように、SoC406は、GPU408及びメインプロセッサ110を含む。メインプロセッサ110は、システム400内のCPUである、またはこのCPUを含むことができる。そして、アクセラレータチップ404はベクトルプロセッサ412を含む。
システム400では、メモリチップ402は、第一セットのピン414及び第二セットのピン416を含む。第一セットのピン414は、配線424を介してアクセラレータチップ404に接続するように構成される。第二セットのピン416は、配線426を介してSoC406に接続するように構成される。示されるように、アクセラレータチップ404は、対応する1セットのピン415を含み、このセットは、配線424を介して第一メモリチップ402をアクセラレータチップに接続する。SoC406のGPU408は、対応する1セットのピン417を含み、このセットは、配線426を介してSoCを第一メモリチップ402に接続する。
第一メモリチップ402は、第二セットのピン416を介してSoC406から受信する計算入力データ(例えば、AI計算入力データ)を格納して提供するように構成される複数の第一メモリセルを含み、この計算入力データは、計算入力(例えば、AI計算入力)としてアクセラレータチップ404によって使用される。計算入力データは、複数の第一メモリセルからアクセスされ、第一メモリチップ402から、第一セットのピン414を介して送信され、アクセラレータチップ404によって受信されて使用される。複数の第一メモリセルは、DRAMセル及び/またはNVRAMセルを含むことができる。NVRAMセルを有する例では、NVRAMセルは、3D XPointメモリセルである、またはこれらの3D XPointメモリセルを含むことができる。
また、第一メモリチップ402は、第一セットのピン414を介してアクセラレータチップ404から受信する計算出力データ(例えば、AI計算出力データ)を格納して提供するように構成される複数の第二メモリセルを含み、この計算出力データは、SoC406によって取得される、または計算入力(例えば、AI計算入力)としてアクセラレータチップ404によって再使用される。計算出力データは、複数の第二メモリセルからアクセスされ、第一メモリチップ402から、第一セットのピン414を介して送信され、アクセラレータチップ404によって受信されて使用されることができる。また、計算出力データは、複数の第二メモリセルからアクセスされ、SoC406またはSoC内のGPU408から、第二セットのピン416を介して送信され、SoCまたはSoC内のGPUによって受信されて使用されることができる。複数の第二メモリセルは、DRAMセル及び/またはNVRAMセルを含むことができる。NVRAMセルを有する例では、NVRAMセルは、3D XPointメモリセルである、または3D XPointメモリセルを含むことができる。
また、第一メモリチップ402は、1セットのピン416を介してSoC406から受信する非AIタスクに関連する非AIデータを格納するように構成される複数の第三メモリセルを含み、この非AIデータは非AIタスクのためのSoC406によって取得される。非AIデータは、複数の第三メモリセルからアクセスされ、第一メモリチップ402から第二セットのピン416を介して送信され、SoC406、SoC内のGPU408、またはSoC内のメインプロセッサ110によって受信されて使用されることができる。複数の第三メモリセルは、DRAMセル及び/またはNVRAMセルを含むことができる。NVRAMセルを有する例では、NVRAMセルは、3D XPointメモリセルである、または3D XPointメモリセルを含むことができる。
アクセラレータチップ404は、SoC406についての特定用途向け計算(例えば、AI計算)を実行して高速化するように設定される。また、アクセラレータチップ404は、第一メモリチップ402を特定用途向け計算のためのメモリとして使用するように構成される。特定用途向け計算の高速化は、ベクトルプロセッサ412によって実行されることができる。アクセラレータチップ404内のベクトルプロセッサ412は、SoC406についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。例えば、ベクトルプロセッサ412は、複数の第一メモリセル及び複数の第二メモリセルをメモリとして使用して、SoC406についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。
アクセラレータチップ404は、ASICを含むことができ、このASICは、ベクトルプロセッサ412を含み、ベクトルプロセッサ412を介して特定用途向け計算(例えば、AI計算)を高速化するための専用ハードワイヤードである。あるいは、アクセラレータチップ404は、FPGAを含むことができ、このFPGAは、ベクトルプロセッサ412を含み、ベクトルプロセッサ412を介して特定用途向け計算を高速化するための専用ハードワイヤードである。いくつかの実施形態では、アクセラレータチップ404は、GPUを含むことができ、このGPUは、ベクトルプロセッサ412を含み、ベクトルプロセッサ412を介して特定用途向け計算を高速化するための専用ハードワイヤードである。それらのような実施形態では、GPUは、ベクトルプロセッサ412を介して特定用途向け計算を高速化するため、専用に変更されることができる。
示されるように、SoC406はGPU408を含む。そして、アクセラレータチップ402は、GPU408についての特定用途向け計算を実行して高速化するように設定されることができる。例えば、ベクトルプロセッサ412は、GPU408についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。また、GPU408は、特定用途向けタスク及び計算を実行するように設定されることができる。また、示されるように、SoC406は、非AIタスク及び計算を実行するように設定されるメインプロセッサ110を含む。
いくつかの実施形態では、システム400は、メモリチップ402、アクセラレータチップ404、及びSoC406を含み、メモリチップ402は、配線424を介してアクセラレータチップ404に接続するように構成される第一セットのピン414、及び配線426を介してSoC406に接続するように構成される第二セットのピン416を少なくとも含む。そして、メモリチップ402は、1セットのピン416を介してSoC406から受信するAI計算入力データを格納して提供するように構成される複数の第一メモリセルであって、このAI計算入力データはAI計算入力としてアクセラレータチップ404によって使用される、これら複数の第一メモリセルと、他のセットのピン414を介してアクセラレータチップ404から受信するAI計算出力データを格納して提供するように構成される複数の第二メモリセルであって、このAI計算出力データはSoC406によって取得される、またはAI計算入力としてアクセラレータチップ404によって再使用される、これら複数の第二メモリセルと、を含むことができる。そして、メモリチップ402は、非AI計算のためのメモリに使用される複数の第三セルを含むことができる。
また、SoC406は、GPU408を含み、アクセラレータチップ404は、複数の第一メモリセル及び複数の第二メモリセルをメモリとして使用して、GPU408についてのAI計算を実行して高速化するように設定されることができる。そして、アクセラレータチップ404はベクトルプロセッサ412を含み、このベクトルプロセッサは、複数の第一メモリセル及び複数の第二メモリセルをメモリとして使用して、SoC406についてのベクトル及び行列に対して数値計算を実行するように設定されることができる。
また、システム400では、メモリチップ402内の複数の第一メモリセルは、1セットのピン416を介してSoC406から受信するAI計算入力データを格納して提供するように構成され、このAI計算入力データは、AI計算入力としてアクセラレータチップ404(例えば、AIアクセラレータチップ)によって使用されることができる。そして、メモリチップ402内の複数の第二メモリセルは、他のセットのピン414を介してアクセラレータチップ404から受信するAI計算出力データを格納して提供するように構成され、このAI計算出力データは、SoC406によって取得される、またはAI計算入力としてアクセラレータチップ404によって再使用されることができる。そして、メモリチップ402内の複数の第三メモリセルは、1セットのピン416を介してSoC406から受信する非AIタスクに関連する非AIデータを格納するように構成され、この非AIデータは、非AIタスクのためのSoC406によって取得されることができる。
メモリチップ402内の複数の第一メモリセル、複数の第二メモリセル、及び複数の第三メモリセルは、それぞれ、DRAMセル及び/またはNVRAMセルを含むことができ、NVRAMセルは3D XPointメモリセルを含むことができる。
図5~7は、それぞれシステム500、600、及び700、ならびに別個のメモリの例を示し、各システムは、図4に示されるメモリチップ402を含む。
図5では、バス202は、システム400(メモリチップ402及びアクセラレータチップ404を含む)をメモリ204に接続する。メモリ204(例えば、NVRAM)は、システム400の第一メモリチップ402のメモリとは別のメモリである。そして、メモリ204はメインメモリであることができる。
システム500では、システム400のSoC406は、バス202を介してメモリ204に接続される。そして、システム500の一部としてのシステム400は、第一メモリチップ402、アクセラレータチップ404、及びSoC406を含む。システム400のこれらのパーツは、バス202を介してメモリ204に接続される。また、図5に示されるように、SoC406に含まれるメモリコントローラ206は、システム400のSoC406によるメモリ204のデータアクセスを制御する。例えば、メモリコントローラ206は、GPU408及び/またはメインプロセッサ110によるメモリ204のデータアクセスを制御する。いくつかの実施形態では、メモリコントローラ206は、システム500内のすべてのメモリのデータアクセス(第一メモリチップ402及びメモリ204のデータアクセスなど)を制御することができる。そして、メモリコントローラ206は、第一メモリチップ402及び/またはメモリ204に通信可能に結合されることができる。
メモリ204は、システム400の第一メモリチップ402によって提供されるメモリとは別のメモリであり、それは、メモリコントローラ206及びバス202を介して、SoC406のGPU408及びメインプロセッサ110にメモリとして使用されることができる。また、メモリ204は、GPU408及びメインプロセッサ110に、アクセラレータチップ404によって実行されない非特定用途向けタスクまたは特定用途向けタスク(非AIタスクまたはAIタスクなど)のためのメモリとして使用されることができる。それらのようなタスクについてのデータは、メモリコントローラ206及びバス202を介してメモリ204によってアクセスされ、そのメモリとの間で通信されることができる。
いくつかの実施形態では、メモリ204は、システム500をホストするデバイスなどのデバイスのメインメモリである。例えば、システム500では、メモリ204は、図8に示されるメインメモリ808であることができる。
図6では、図5と同様に、バス202は、システム400(メモリチップ402及びアクセラレータチップ404を含む)をメモリ204に接続する。システム500及び700に関してシステム600に一意である、第一メモリチップ402は、単一セットのピン602を含み、この単一セットのピンは、アクセラレータチップ404及びSoC406の両方にそれぞれ配線614及び616を介して第一メモリチップ402を直接接続する。また示されるように、システム600では、アクセラレータチップ404は、配線614を介してアクセラレータチップ404を第一メモリチップ402に直接接続する単一セットのピン604を含む。さらに、システム600では、SoCのGPUは、配線606を介してSoC406を第一メモリチップ402に直接接続する1セットのピン606を含む。
システム600では、システム400のSoC406は、バス202を介してメモリ204に接続される。そして、システム600の一部としてのシステム400は、第一メモリチップ402、アクセラレータチップ404、及びSoC406を含む。システム400のこれらのパーツは、バス202を介してメモリ204に接続される(例えば、アクセラレータチップ404及び第一メモリチップ402はSoC406及びバス202を介したメモリ204への間接接続を有し、SoC406はバス202を介したメモリ204への直接接続を有する)。また、図6に示されるように、SoC406に含まれるメモリコントローラ206は、システム400のSoC406によるメモリ204のデータアクセスを制御する。例えば、メモリコントローラ206は、GPU408及び/またはメインプロセッサ110によるメモリ204のデータアクセスを制御する。いくつかの実施形態では、メモリコントローラ206は、システム600内のすべてのメモリのデータアクセス(第一メモリチップ402及びメモリ204のデータアクセスなど)を制御することができる。そして、メモリコントローラ206は、第一メモリチップ402及び/またはメモリ204に通信可能に結合されることができる。
メモリ204は、システム400の第一メモリチップ402によって提供されるメモリとは別のメモリ(例えば、NVRAM)であり、それは、メモリコントローラ206及びバス202を介して、SoC406のGPU408及びメインプロセッサ110にメモリとして使用されることができる。また、メモリ204は、GPU408及びメインプロセッサ110に、アクセラレータチップ404によって実行されない非特定用途向けタスクまたは特定用途向けタスク(非AIタスクまたはAIタスクなど)のためのメモリとして使用されることができる。それらのようなタスクについてのデータは、メモリコントローラ206及びバス202を介してメモリ204によってアクセスされ、そのメモリとの間で通信されることができる。
いくつかの実施形態では、メモリ204は、システム600をホストするデバイスなどのデバイスのメインメモリである。例えば、システム600では、メモリ204は、図8に示されるメインメモリ808であることができる。
図7では、バス202は、システム400(メモリチップ402及びアクセラレータチップ404を含む)をメモリ204に接続する。また、システム700では、バス202は、第一メモリチップ402をSoC406に接続するだけでなく、第一メモリチップ402をメモリ204にも接続する。そのうえ示されるように、システム700では、バス202は、第一メモリチップ402の第二セットのピン416、ならびにSoC406及びGPU408の配線426及び1セットのピン417の代わりをする。システム700内の第一メモリチップ402は、システム500及び600と同様に、システム400のアクセラレータチップ404及びSoC406を接続する。ただし、この接続は、第一セットのピン414、及びバス202を介する。
また、システム500及び600と同様に、システム700では、メモリ204は、システム400の第一メモリチップ402のメモリとは別のメモリである。システム700では、システム400のSoC406は、バス202を介してメモリ204に接続される。そしてシステム700では、システム700の一部としてのシステム400は、第一メモリチップ402、アクセラレータチップ404、及びSoC406を含む。システム400のこれらのパーツは、システム700では、バス202を介してメモリ204に接続される。また、図7に示されるものと同様に、SoC406に含まれるメモリコントローラ206は、システム400のSoC406によるメモリ204のデータアクセスを制御する。いくつかの実施形態では、メモリコントローラ206は、システム700内のすべてのメモリのデータアクセス(第一メモリチップ402及びメモリ204のデータアクセスなど)を制御することができる。そして、メモリコントローラ206は、第一メモリチップ402及び/またはメモリ204に通信可能に結合されることができる。
またシステム700では、メモリ204は、システム400の第一メモリチップ402によって提供されるメモリとは別のメモリ(例えば、NVRAM)であり、それは、メモリコントローラ206及びバス202を介して、SoC406のGPU408及びメインプロセッサ110にメモリとして使用されることができる。さらに、アクセラレータチップ404は、いくつかの実施形態及び状況では、第一メモリチップ402及びバス202を介してメモリ204を使用することができる。それらのような例では、第一メモリチップ402は、アクセラレータチップ404及びメモリ204についてのキャッシュを含むことができる。そして、メモリ204は、GPU408及びメインプロセッサ110に、アクセラレータチップ404によって実行されない非特定用途向けタスクまたは特定用途向けタスク(非AIタスクまたはAIタスクなど)のためのメモリとして使用されることができる。それらのようなタスクについてのデータは、メモリコントローラ206及び/またはバス202を介してメモリ204によってアクセスされ、そのメモリとの間で通信されることができる。
いくつかの実施形態では、メモリ204は、システム700をホストするデバイスなどのデバイスのメインメモリである。例えば、システム700では、メモリ204は、図9に示されるメインメモリ808であることができる。
本明細書に開示されるアクセラレータチップの実施形態(例えば、図1~3及び図4~7にそれぞれ示されるアクセラレータチップ102及びアクセラレータチップ404を参照)は、マイクロプロセッサチップまたはSoCなどであることができる。アクセラレータチップの実施形態は、人工ニューラルネットワーク、マシンビジョン、及び機械学習を含む、AIアプリケーションのハードウェア高速化のために設計されることができる。いくつかの実施形態では、アクセラレータチップ(例えば、AIアクセラレータチップ)は、ベクトル及び行列に対して数値計算を実行するように設定されることができる。それらのような実施形態では、アクセラレータチップは、ベクトル及び行列に対して数値計算を実行するベクトルプロセッサを含むことができる(例えば、ベクトル及び行列に対して数値計算を実行するように設定されることができる、図1~3及び図4~7にそれぞれ示されるベクトルプロセッサ112及び412を参照)。
本明細書に開示されるアクセラレータチップの実施形態は、ASICもしくはFPGAである、またはそれを含むことができる。アクセラレータチップのASIC実施形態では、アクセラレータチップは、特定用途向け計算(AI計算など)の高速化に専用のハードワイヤードである。いくつかの他の実施形態では、アクセラレータチップは、変更されていないFPGAまたはGPUを超えた特定用途向け計算(AI計算など)の高速化のために変更されている、変更されたFPGAまたはGPUであることができる。いくつかの他の実施形態では、アクセラレータチップは、変更されていないFPGAまたはGPUであることができる。
本明細書に説明されているASICは、特定用途向け計算(AI計算など)の高速化など、特定の使用または用途にカスタマイズされているICを含むことができる。これは、CPU、または一般にグラフィックス処理のためのものであるGPUなどの別のタイプの汎用プロセッサによって通常実装される汎用用途とは異なる。
本明細書に記載のFPGAは、IC及びFPGAの製造後に設計される、及び/または設定されるICに含まれることができる。したがって、IC及びFPGAはフィールドプログラマブルである。FPGA設定は、ハードウェア記述言語(HDL)を使用して指定されることができる。同様に、ASIC設定はHDLを使用して指定されることができる。
本明細書で説明されるGPUは、ICを含み、このICは、メモリを迅速に操作して変更し、表示装置に出力されるフレームバッファ内の画像の生成及び更新を高速化するように設定されることができる。そして、本明細書で説明されるシステムは、GPUに接続される表示装置、ならびに表示装置及びGPUに接続されるフレームバッファを含むことができる。本明細書に説明されるGPUは、組み込みシステム、モバイルデバイス、パーソナルコンピュータ、ワークステーション、もしくはゲームコンソールの一部、または表示装置に接続され、この表示装置を使用する任意のデバイスであることができる。
本明細書に記載のマイクロプロセッサチップの実施形態は、それぞれ、少なくとも中央処理装置の機能を組み込む1つ以上の集積回路である。各マイクロプロセッサチップは、多目的であり、少なくともクロック及びレジスタを含むことができ、これらのクロック及びレジスタは、入力としてバイナリデータを受け入れ、マイクロプロセッサチップに接続されたメモリに格納された命令に従ってレジスタ及びクロックを使用してデータを処理することによってチップを実装する。データを処理すると、マイクロプロセッサチップは入力及び命令の結果を出力として提供することができる。そして、この出力は、マイクロプロセッサチップに接続されたメモリに提供されることができる。
本明細書で説明されるSoCの実施形態は、それぞれ、コンピュータまたは他の電子システムのコンポーネントを集積する1つ以上の集積回路である。いくつかの実施形態では、SoCは単一のICである。他の実施形態では、SoCは、分離され接続された集積回路を含むことができる。いくつかの実施形態では、SoCは、独自のCPU、メモリ、入出力ポート、セカンダリストレージ、またはそれらの任意の組み合わせを含むことができる。それらのような1つ以上のパーツは、本明細書で説明されるSoC内の単一の基板またはマイクロプロセッサチップ上にあることができる。いくつかの実施形態では、SoCは、25セント硬貨、5セント硬貨、または10セント硬貨よりも小さい。SoCのいくつかの実施形態は、モバイルデバイス(スマートフォンまたはタブレットコンピュータなど)、組み込みシステム、またはモノのインターネット内のデバイスの一部であることができる。一般に、SoCは、機能に基づいてコンポーネントを分離させてこれらのコンポーネントを、中央のインタフェース回路基板を介して接続するマザーボードベースのアーキテクチャを有するシステムとは異なる。
アクセラレータチップ(例えば、AIアクセラレータチップ)に直接接続される、本明細書に記載のメモリチップの実施形態(例えば、図1~3に示される第一メモリチップ104、または図4~7に示される第一メモリチップ402を参照)は、システム全体の複数のメモリチップを説明するときに明確にするために、本明細書では特定用途向けメモリチップとも称される。本明細書に記載される特定用途向けメモリチップは、必ずしも特定用途向け計算(AI計算など)専用のハードワイヤードであるとは限らない。特定用途向けメモリチップのそれぞれは、DRAMチップもしくはNVRAMチップ、またはDRAMチップかNVRAMチップかいずれかと同様の機能を有するメモリデバイスであることができる。そして、特定用途向けメモリチップのそれぞれは、アクセラレータチップ(例えば、AIアクセラレータチップ、例えば、図1~3に示されるアクセラレータチップ102、及び図4~7に示されるアクセラレータチップ404を参照)に直接接続されることができ、特定用途向けメモリチップがアクセラレータチップまたは別個のSoCもしくはプロセッサ(例えば、図1~3及び図4~7にそれぞれ示されるSoC106及び406を参照)によって構成された後、アクセラレータチップによって特定用途向け計算(AI計算など)の高速化専用のメモリユニットまたはセルを含むことができる。
本明細書で説明されるDRAMチップは、コンデンサ及びトランジスタ(MOSFETなど)を有するメモリセルまたはユニットにデータの各ビットを格納するランダムアクセスメモリを含むことができる。本明細書で説明されるDRAMチップは、ICチップの形態を取り、数十億個のDRAMメモリユニットまたはセルを含むことができる。各ユニットまたはセルでは、コンデンサは充電されるか、放電されるかいずれかであることができる。これにより、1ビットの中の2値を表すために使用される2つのステートを提供することができる。コンデンサでの電荷はコンデンサから緩徐に漏れる可能性があるため、コンデンサ及びメモリユニットのステートを維持するには、コンデンサ内のデータを定期的にリライトする外部メモリリフレッシュ回路が必要である。また、DRAMは、電源が切断されるとすぐにそのデータを失うという点で、揮発性メモリであり、フラッシュメモリまたはNVRAMなどの不揮発性メモリではない。DRAMチップの利点は、低コストで大容量のコンピュータメモリを必要とするデジタル電子機器でDRAMチップが使用されることができることである。DRAMは、GPU専用のメインメモリまたはメモリとして使用するのにも役立つ。
本明細書に説明されるNVRAMチップは、DRAMとの主な差別化特徴である不揮発性のランダムアクセスメモリを含むことができる。本明細書で説明される実施形態に使用されることができるNVRAMユニットまたはセルの一例は、3D XPointユニットまたはセルを含むことができる。3D XPointユニットまたはセルでは、ビットストレージは、積層可能な交差格子状データアクセスアレイと組み合わせて、バルク抵抗の変化に基づく。
本明細書で説明されるSoCの実施形態は、メインプロセッサ(CPUまたはCPUを含むメインプロセッサなど)を含むことができる。例えば、図1~3に示されるSoC106、及び図4~7に示されるSoC406だけでなく、図1~7に示されるメインプロセッサ110も参照されたい。それらのような実施形態では、SoC内のGPU(例えば、図1~3に示されるGPU108、及び図4~7に示されるGPU408を参照)は、特定用途向けタスク及び計算(AIタスク及び計算など)のための命令を実行することができ、メインプロセッサは、非特定用途向けタスク及び計算(非AIタスク及び計算など)のための命令を実行することができる。そして、それらのような実施形態では、SoCに接続されるアクセラレータチップ(例えば、図1~7に示されるアクセラレータチップのいずれか1つを参照)は、GPU専用の特定用途向けタスク及び計算(AIタスク及び計算など)の高速化を提供することができる。本明細書で説明されるSoCの実施形態のそれぞれは、SoCのコンポーネントを相互接続する(メインプロセッサ及びGPUを接続するなどの)ために独自のバスを含むことができる。また、SoCのバスは、SoCをSoCの外部のバスに接続するように構成されることができるため、SoCのコンポーネントは、別のメモリまたはメモリチップ(例えば、図2~3及び図5~7に示されるメモリ204、ならびに図8~9に示されるメインメモリ808を参照)などのSoCの外部のチップ及びデバイスと結合することができる。
GPUの非特定用途向け計算及びタスク(例えば、非AI計算及びタスク)、またはアクセラレータチップを使用しない特定用途向け計算及びタスク(例えば、AI計算及びタスク)は、メインプロセッサによって実行される従来のタスクではない可能性があるが、別個のメモリチップなどの別個のメモリ(特定用途向けメモリであることができる)を使用することができ、このメモリは、DRAM、NVRAM、フラッシュメモリ、またはそれらの任意の組み合わせによって実装されることができる。例えば、図2~3及び図5~7に示されるメモリ204だけでなく、図8~9に示されるメインメモリ808も参照されたい。別個のメモリまたはメモリチップは、SoCの外部のバスを介してSoC及びメインプロセッサ(例えば、CPU)に接続されることができる(例えば、図2~3及び図5~7に示されるメモリ204だけでなく、図8~9に示されるメインメモリ808も参照、そして図2~3及び図5~7に示されるバス202だけでなく、図8~9に示されるバス804も参照)。それらのような実施形態では、別個のメモリまたはメモリチップは、メインプロセッサ専用のメモリユニットを有することができる。また、別個のメモリまたはメモリチップは、SoCの外部のバスを介してSoC及びGPUに接続されることができる。それらのような実施形態では、別個のメモリまたはメモリチップは、メインプロセッサまたはGPUにメモリユニットまたはセルを含むことができる。
本開示の目的のために、本明細書に記載の特定用途向けメモリまたはメモリチップ(例えば、図1~3に示される第一メモリチップ104または図4~7に示される第一メモリチップ402を参照)、及び本明細書に記載の別個のメモリまたはメモリチップ(例えば、図2~3及び図5~7に示されるメモリ204だけでなく、図8~9に示されるメインメモリ808も参照)がそれぞれ、メモリチップストリング(例えば、図10及び11に示されるメモリチップストリングを参照)などのメモリチップ群で置換されることができることを理解されたい。例えば、別個のメモリまたはメモリチップは、少なくともNVRAMチップ及びそのNVRAMチップの下流にあるフラッシュメモリチップを含むメモリチップストリングで置換されることができる。また、別個のメモリチップは、少なくとも2つのメモリチップで置換されることができ、これらのチップのうちの1つはメインプロセッサ(例えば、CPU)用であり、もう1つのチップは非AI計算及び/またはタスクのためのメモリとして使用するためのGPU用である。
本明細書に記載のメモリチップの実施形態は、メインメモリの一部であることができる、及び/またはコンピュータでの即時使用のために、または本明細書に記載のプロセッサのいずれか1つ(例えば、本明細書に記載の任意のSoCまたはアクセラレータチップ)による即時使用のために情報を格納するコンピュータハードウェアであることができる。本明細書に説明されるメモリチップは、コンピュータストレージよりも高速で動作することができる。コンピュータストレージによって、情報にアクセスする速度が遅くなるが、その容量が増え、データの信頼性が高くなることもできる。本明細書で説明されるメモリチップは、高い動作速度を有することができるメモリの1つのタイプであるRAMを含むことができる。メモリは、アドレス指定可能な半導体メモリユニットまたはセルで構成されることができ、そのユニットまたはセルは、MOSFETによって少なくとも部分的に実装されることができる。
さらに、本明細書に開示される少なくともいくつかの実施形態は、ベクトルプロセッサ(例えば、図1~3及び図4~7にそれぞれ示されるベクトルプロセッサ112及び412を参照)を有するアクセラレータチップ(例えば、AIアクセラレータチップ)に関する。そして、本明細書に開示される少なくともいくつかの実施形態は、メモリ階層及びメモリチップストリングを使用してメモリを形成することに関する(例えば、図10及び11を参照)。
本明細書で説明されるベクトルプロセッサの実施形態はそれぞれICであり、各ICは、ベクトルと称される一次元配列のデータ、または行列と称される多次元配列のデータ上で動作する命令を含む命令セットを実装することができる。ベクトルプロセッサは、命令がシングルデータ項目上で動作するスカラープロセッサとは異なる。いくつかの実施形態では、ベクトルプロセッサは、単に命令をパイプライン化するだけでなく、データ自体をパイプライン化することができる。パイプライン化は、命令、またはベクトルプロセッサの場合にはデータ自体が、複数のサブユニットを順に通過するプロセスを含むことができる。いくつかの実施形態では、ベクトルプロセッサは、数のベクトルまたは行列に対して同時に算術演算を指令する命令を供給される。連続的に命令を復号してから、それらの命令を完了するために必要なデータをフェッチしなければならない代わりに、ベクトルプロセッサは、メモリから単一の命令を読み出し、命令自体の定義では、命令が最後より1インクリメント大きいアドレスで別のデータ項目上で再度動作することが単に黙示される。これにより、復号時間を大幅に節約できる。
図8は、本開示のいくつかの実施形態による、例示的なコンピューティングデバイス800のパーツ配置の一例を示す。コンピューティングデバイス800のパーツ配置の一例は、図1に示されるシステム100、図2に示されるシステム200、図4に示されるシステム400、図5に示されるシステム500、及び図6に示されるシステム600を含むことができる。コンピューティングデバイス800では、特定用途向けコンポーネント(例えば、図8の特定用途向けコンポーネント807を参照)は、AIコンポーネントであることができ、図1、2、4、5及び6にそれぞれ配置されて示される第一メモリチップ104または402及びアクセラレータチップ102または404だけでなく、図1、2、4、5及び6にそれぞれ構成されて示されるSoC106または406を含むことができる。コンピューティングデバイス800では、配線は、特定用途向けコンポーネントのコンポーネントを相互に直接接続する(例えば、図1~2及び図4~6にそれぞれ示される配線124及び424ならびに配線614を参照)。そして、コンピューティングデバイス800では、配線は、特定用途向けコンポーネントをSoCに直接接続する(例えば、特定用途向けコンポーネントをSoC806に直接接続する配線817を参照)。特定用途向けコンポーネントをSoCに直接接続する配線は、図1及び2に示されるような配線126、または図4及び5に示されるような配線426を含むことができる。また、特定用途向けコンポーネントをSoCに直接接続する配線は、図6に示されるような配線616を含むことができる。
コンピューティングデバイス800は、図8に示されるようなコンピュータネットワーク802を介して他のコンピューティングデバイスに通信可能に結合されることができる。コンピューティングデバイス800は、少なくともバス804(メモリバスとペリフェラルバスの組み合わせなど、1つ以上のバスであることができる)、SoC806(SoC106または406である、またはそれを含むことができる)、特定用途向けコンポーネント807(アクセラレータチップ102及び第一メモリチップ104または第一メモリチップ402及びアクセラレータチップ404であることができる)、及びメインメモリ808(メモリ204である、またはそれを含むことができる)だけでなく、ネットワークインタフェース810及びデータストレージシステム812も含む。バス804は、SoC806、メインメモリ808、ネットワークインタフェース810、及びデータストレージシステム812を通信可能に結合する。そして、バス804は、バス202、及び/または配線126、426、または616などのポイントツーポイントメモリ接続を含むことができる。コンピューティングデバイス800は、コンピュータシステムを含み、このコンピュータシステムは、少なくとも、SoC806内の1つ以上のプロセッサ、メインメモリ808(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)またはRambus DRAM(RDRAM)などのDRAM、NVRAM、SRAMなど)、及びデータストレージシステム812を含み、これらは、バス804(1つ以上のバス及び配線を含むことができる)を介して相互に通信する。
メインメモリ808(メモリ204である、それを含む、またはそれに含まれることができる)は、図10に示されるメモリストリング1000を含むことができる。また、メインメモリ808は、図11に示されるメモリストリング1100を含むことができる。いくつかの実施形態では、データストレージシステム812は、メモリストリング1000またはメモリストリング1100を含むことができる。
SoC806は、マイクロプロセッサ、CPUなどのような1つ以上の汎用処理デバイスを含むことができる。また、SoC806は、GPU、ASIC、FPGA、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、プロセッサインメモリ(PIM)などのような1つ以上の専用処理デバイスを含むことができる。SoC806は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサを有する1つ以上のプロセッサ、または他の命令セットを実施するプロセッサ、または命令セットの組み合わせを実施するプロセッサとすることができる。SoC806のプロセッサは、本明細書で論じられる動作及びステップを遂行するための命令を実行するように構成することができる。SoC806はさらに、1つ以上の通信ネットワーク(例えば、ネットワーク802)を介して通信するために、ネットワークインタフェースデバイス、例えばネットワークインタフェース810を含むことができる。
データストレージシステム812は、本明細書で説明する方法または機能のうちのいずれか1つ以上を具現化する1つ以上の命令セットまたはソフトウェアが記憶されるマシン可読記憶媒体(コンピュータ可読媒体としても知られている)を含むことができる。また命令は、コンピュータシステムがそれを実行する間に、メインメモリ808内に、及び/またはSoC806のプロセッサのうちの1つ以上の内に、完全に、または少なくとも部分的に存在することができる。またメインメモリ808及びSoC806の1つ以上のプロセッサ506はマシン可読記憶媒体を構成する。
メモリ、プロセッサ、及びデータ記憶装置部分を、例示的な実施形態においてそれぞれ単一部分であると示しているが、各部分は、命令を格納してそのそれぞれの動作を実行できる単一部分または複数部分を含むと解釈されるべきである。また用語「マシン可読記憶媒体」には、任意の媒体であって、マシンが実行するように命令のセットを記憶または符号化することができ、本開示の方法のいずれか1つ以上をマシンに行わせる媒体が含まれると解釈すべきである。したがって、用語「マシン可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈されるものとする。
図9は、本開示のいくつかの実施形態による、例示的なコンピューティングデバイス900のパーツ配置の別の例を示す。コンピューティングデバイス900のパーツ配置の例は、図3に示されるシステム300、及び図7に示されるシステム700を含むことができる。コンピューティングデバイス900では、特定用途向けコンポーネント(例えば、図9の特定用途向けコンポーネント807を参照)は、AIコンポーネントであることができ、図3及び7にそれぞれ配置されて示されるような第一メモリチップ104または402及びアクセラレータチップ102または404だけでなく、図3及び7にそれぞれ構成されて示されるようなSoC106または406も含むことができる。コンピューティングデバイス900では、配線は、特定用途向けコンポーネントのコンポーネントを相互に直接接続する(例えば、図3及び7にそれぞれ示される配線124及び424を参照)。ただし、コンピューティングデバイス900では、配線は、特定用途向けコンポーネントをSoCに直接接続しない。代替に、コンピューティングデバイス900では、1つ以上のバスは、特定用途向けコンポーネントをSoCに接続する(例えば、図9に構成されて示されるバス804、ならびに図3及び7に構成されて示されるバス202を参照)。
図8及び9に示されるように、デバイス800及び900は、多くの同様のコンポーネントを含む。コンピューティングデバイス900は、図9に示されるようなコンピュータネットワーク802を介して他のコンピューティングデバイスに通信可能に結合されることができる。同様に、図9に示されるように、コンピューティングデバイス900は、少なくとも、バス804(メモリバス及びペリフェラルバスの組み合わせなど、1つ以上のバスであることができる)、SoC806(SoC106もしくは406である、またはそれを含むことができる)、特定用途向けコンポーネント807(アクセラレータチップ102及び第一メモリチップ104または第一メモリチップ402及びアクセラレータチップ404であることができる)、及びメインメモリ808(メモリ204である、またはそれを含むことができる)だけでなく、ネットワークインタフェース810及びデータストレージシステム812も含む。同様に、バス804は、SoC806、メインメモリ808、ネットワークインタフェース810、及びデータストレージシステム812を通信可能に結合する。そして、バス804は、バス202、及び/または配線126、426、または616などのポイントツーポイントメモリ接続を含むことができる。
上述のように、本明細書に開示される少なくともいくつかの実施形態は、メモリ階層及びメモリチップストリングを使用してメモリを形成することに関する。
図10及び11は、それぞれメモリチップストリング1000及び1100の例を示し、これらは、図2~3及び図5~7に示される別個のメモリ(すなわち、メモリ204)で使用されることができる。
図10では、メモリチップストリング1000は、第一メモリチップ1002及び第二メモリチップ1004を含む。第一メモリチップ1002は、第二メモリチップ1004に直接配線され(例えば、配線1022を参照)、第二メモリチップと直接インタラクトするように構成される。メモリチップストリング1000内の各チップは、このストリング内の上流チップ及び/または下流チップに接続するために、1セット以上のピンを含むことができる(例えば、ピン1012及び1014のセットを参照)。いくつかの実施形態では、メモリチップストリング1000内の各チップは、ICパッケージ内に封入される単一のICを含むことができる。
図10に示されるように、1セットのピン1012は第一メモリチップ1002の一部であり、配線1022、及び第二メモリチップ1004の一部である1セットのピン1014を介して第一メモリチップ1002を第二メモリチップ1004に接続する。配線1022は、2セットのピン1012及び1014を接続する。
いくつかの実施形態では、第二メモリチップ1004は、ストリング1000内のチップの中で最も低いメモリ帯域幅を有することができる。それらのような実施形態及び他の実施形態では、第一メモリチップ1002は、ストリング1000内のチップの中で最も高いメモリ帯域幅を有することができる。いくつかの実施形態では、第一メモリチップ1002は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第一メモリチップ1002は、NVRAMチップである、またはそれを含む。いくつかの実施形態では、第二メモリチップ1004は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第二メモリチップ1004は、NVRAMチップである、またはそれを含む。そして、いくつかの実施形態では、第二メモリチップ1004は、フラッシュメモリチップである、またはそれを含む。
図11では、メモリチップストリング1100は、第一メモリチップ1102、第二メモリチップ1104、及び第三メモリチップ1106を含む。第一メモリチップ1102は、第二メモリチップ1104に直接配線され(例えば、配線1122を参照)、第二メモリチップと直接インタラクトするように構成される。第二メモリチップ1104は、第三メモリチップ1106に直接配線され(例えば、配線1124を参照)、第三メモリチップと直接インタラクトするように構成される。それらのような方法では、第一及び第三メモリチップ1102及び1106は、第二メモリチップ1104を介して間接的に相互にインタラクトする。
メモリチップストリング1100内の各チップは、このストリング内の上流チップ及び/または下流チップに接続するために、1セット以上のピンを含むことができる(例えば、ピン1112、1114、1116、及び1118のセットを参照)。いくつかの実施形態では、メモリチップストリング1100内の各チップは、ICパッケージ内に封入される単一のICを含むことができる。
図11に示されるように、1セットのピン1112は第一メモリチップ1102の一部であり、配線1122、及び第二メモリチップ1104の一部である1セットのピン1114を介して、第一メモリチップ1102を第二メモリチップ1104に接続する。配線1122は、2セットのピン1112及び1114を接続する。また、1セットのピン1116は、第二メモリチップ1104の一部であり、配線1124、及び第三メモリチップ1106の一部である1セットのピン1118を介して、第二メモリチップ1104を第三メモリチップ1106に接続する。配線1124は、2セットのピン1116及び1118を接続する。
いくつかの実施形態では、第三メモリチップ1106は、ストリング1100内のチップの中で最も低いメモリ帯域幅を有することができる。それらのような実施形態及び他の実施形態では、第一メモリチップ1102は、ストリング1100内のチップの中で最も高いメモリ帯域幅を有することができる。また、それらのような実施形態及び他の実施形態では、第二メモリチップ1104は、ストリング1100内のチップの中でその次に最も高いメモリ帯域幅を有することができる。いくつかの実施形態では、第一メモリチップ1102は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第一メモリチップ1102は、NVRAMチップである、またはそれを含む。いくつかの実施形態では、第二メモリチップ1104は、DRAMチップである、またはそれを含む。いくつかの実施形態では、第二メモリチップ1104は、NVRAMチップである、またはそれを含む。いくつかの実施形態では、第二メモリチップ1104は、フラッシュメモリチップである、またはそれを含む。いくつかの実施形態では、第三メモリチップ1106は、NVRAMチップである、またはそれを含む。そして、いくつかの実施形態では、第三メモリチップ1106は、フラッシュメモリチップである、またはそれを含む。
1つ以上のDRAMチップを有する実施形態では、DRAMチップは、コマンド及びアドレスの復号のための論理回路、ならびにDRAMのメモリユニットアレイを含むことができる。また、本明細書で説明されるDRAMチップは、着信及び/または発信データ用のキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のDRAMユニットとは異なることができる。例えば、DRAMチップ上にキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであることができる。
1つ以上のNVRAMチップを有する実施形態では、NVRAMチップは、コマンド及びアドレスの復号のための論理回路、ならびに3D XPointメモリユニットなどのNVRAMメモリユニットのアレイを含むことができる。また、本明細書で説明されるNVRAMチップは、着信及び/または発信データ用のキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のNVRAMユニットとは異なることができる。例えば、NVRAMチップ上にキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであることができる。
いくつかの実施形態では、NVRAMチップは、不揮発性メモリセルのクロスポイントアレイを含むことができる。クロスポイント型不揮発性メモリアレイは、積層可能な交差格子状データアクセスアレイと組み合わせて、バルク抵抗の変化に基づいてビットストレージを実行することができる。さらに、多くのフラッシュベースのメモリとは対照的に、クロスポイント型不揮発性メモリは、不揮発性メモリセルが事前に消去されることなく、不揮発性メモリセルがプログラムされることができる、インプレース書き込み操作を実行することができる。
本明細書で上述されるように、NVRAMチップは、クロスポイントストレージ及びメモリデバイス(例えば、3D XPointメモリ)であることができる、またはそれらを含むことができる。クロスポイントメモリデバイスは、トランジスタレスメモリ素子を使用し、各メモリ素子は、カラムとして合わせて積層されるメモリセル及びセレクタを含む。メモリ素子のカラムは、垂直二層のワイヤを介して接続され、一層はメモリ素子のカラムより上にあり、もう一層はメモリ素子のカラムより下にある。各メモリ素子は、二層のそれぞれの上に1本のワイヤの交点で個別に選択されることができる。クロスポイントメモリデバイスは、高速で不揮発性であり、処理及びストレージのためのユニファイドメモリプールとして使用されることができる。
1つ以上のフラッシュメモリチップを有する実施形態では、フラッシュメモリチップは、コマンド及びアドレスの復号のための論理回路、ならびにNAND型フラッシュメモリユニットなどのフラッシュメモリのメモリユニットのアレイを含むことができる。また、本明細書で説明されるフラッシュメモリチップは、着信及び/または発信データ用のキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のフラッシュメモリユニットとは異なることができる。例えば、フラッシュメモリチップ上にキャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであることができる。
また、例えば、メモリチップストリングの一実施形態は、DRAMからDRAMからNVRAM、またはDRAMからNVRAMからNVRAM、またはDRAMからフラッシュメモリからフラッシュメモリを含むことができる。ただし、DRAMからNVRAMからフラッシュメモリは、マルチティアメモリとして柔軟にプロビジョニングされるメモリチップストリングに、より効果的なソリューションを提供することができる。
また、本開示の目的のために、DRAM、NVRAM、3D XPointメモリ、及びフラッシュメモリが個々のメモリユニットのための技法であること、そして本明細書に記載のメモリチップのいずれか1つのためのメモリチップがコマンド及びアドレスの復号のための論理回路、ならびにDRAM、NVRAM、3D XPointメモリ、またはフラッシュメモリのメモリユニットアレイを含むことができることを理解されたい。例えば、本明細書で説明されるDRAMチップは、コマンド及びアドレスの復号のための論理回路、ならびにDRAMのメモリユニットアレイを含む。例えば、本明細書で説明されるNVRAMチップは、コマンド及びアドレスの復号のための論理回路、ならびにNVRAMのメモリユニットアレイを含む。例えば、本明細書で説明されるフラッシュメモリチップは、コマンド及びアドレスの復号のための論理回路、ならびにフラッシュメモリのメモリユニットアレイを含む。
また、本明細書で説明されるメモリチップのいずれか1つのためのメモリチップは、着信及び/または発信データのためのキャッシュまたはバッファメモリを含むことができる。いくつかの実施形態では、キャッシュまたはバッファメモリを実装するメモリユニットは、キャッシュまたはバッファメモリをホストするチップ上のユニットとは異なってもよい。例えば、キャッシュまたはバッファメモリを実装するメモリユニットは、SRAMのメモリユニットであることができる。
前述の明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されてきた。以下の特許請求の範囲に記載される本開示の実施形態のより広範の趣旨及び範囲から逸脱することなく、様々な修正形態が本明細書に加えられ得ることは明らかである。したがって、明細書及び図面は限定的な意味ではなく例示的な意味で考慮されるべきである。
Claims (20)
- 配線を介してメモリチップに接続するように構成される第一セットのピン、及び
配線を介してシステムオンチップ(SoC)に接続するように構成される第二セットのピン、
を含むアクセラレータチップであって、
前記SoCに特定用途向け計算を実行して高速化するように構成され、
前記特定用途向け計算に前記メモリチップをメモリとして使用するように構成される、
前記アクセラレータチップ。 - 前記アクセラレータチップは、人工知能(AI)アクセラレータチップであり、前記特定用途向け計算は、AI計算を含む、請求項1に記載のアクセラレータチップ。
- 前記SoCについてのベクトル及び行列に数値計算を実行するように設定されるベクトルプロセッサを含む、請求項1に記載のアクセラレータチップ。
- 特定用途向け集積回路(ASIC)を含み、前記ASICは、前記ベクトルプロセッサを含み、前記ベクトルプロセッサを介して特定用途向け計算を高速化するための専用ハードワイヤードである、請求項3に記載のアクセラレータチップ。
- フィールドプログラマブルゲートアレイ(FPGA)を含み、前記FPGAは、前記ベクトルプロセッサを含み、前記ベクトルプロセッサを介して特定用途向け計算を高速化するための専用ハードワイヤードである、請求項3に記載のアクセラレータチップ。
- グラフィックスプロセッシングユニット(GPU)を含み、前記GPUは、前記ベクトルプロセッサを含み、前記ベクトルプロセッサを介して特定用途向け計算を高速化するための専用ハードワイヤードである、請求項3に記載のアクセラレータチップ。
- 前記SoCは、グラフィックスプロセッシングユニット(GPU)を含み、前記アクセラレータチップは、前記GPUについての特定用途向け計算を実行して高速化するように設定される、請求項1に記載のアクセラレータチップ。
- 前記GPUについてのベクトル及び行列に数値計算を実行するように設定されるベクトルプロセッサを含む、請求項7に記載のアクセラレータチップ。
- 前記GPUは、特定用途向けタスク及び計算を実行するように設定され、前記SoCは、非特定用途向けタスク及び計算を実行するように設定されるメインプロセッサを含む、請求項7に記載のアクセラレータチップ。
- 前記メモリチップは、ダイナミックランダムアクセスメモリ(DRAM)チップであり、前記第一セットのピンは、配線を介して前記DRAMチップに接続するように構成され、前記アクセラレータチップは、前記DRAMチップ内のDRAMセルをメモリとして前記特定用途向け計算に使用するように構成される、請求項1に記載のアクセラレータチップ。
- 前記メモリチップは、不揮発性ランダムアクセスメモリ(NVRAM)チップであり、前記第一セットのピンは、配線を介して前記NVRAMチップに接続するように構成され、前記アクセラレータチップは、前記NVRAMチップ内のNVRAMセルをメモリとして前記特定用途向け計算に使用するように構成される、請求項1に記載のアクセラレータチップ。
- 前記NVRAMチップは、3D XPointメモリチップであり、前記第一セットのピンは、配線を介して前記3D XPointメモリチップに接続するように構成され、前記アクセラレータチップは、前記3D XPointメモリチップ内の3D XPointメモリセルをメモリとして前記特定用途向け計算に使用するように構成される、請求項11に記載のアクセラレータチップ。
- 配線を介して人工知能(AI)専用メモリチップに接続されるAIアクセラレータチップ、及び
システムオンチップ(SoC)、
を含むシステムであって、
前記SoCは、
AIタスクを実行するように設定されるグラフィックスプロセッシングユニット(GPU)、及び
非AIタスクを実行し、前記AIタスクを前記GPUにデリゲートするように設定されるメインプロセッサ、
を含み、
前記GPUは、配線を介して前記AIアクセラレータチップに接続するように構成される1セットのピンを含み、
前記AIアクセラレータチップは、前記GPUについての前記AIタスクのAI計算を実行して高速化するように構成される、
前記システム。 - 前記AIアクセラレータチップは、前記GPUについてのベクトル及び行列に数値計算を実行するように設定されるベクトルプロセッサを含む、請求項13に記載のシステム。
- 前記AIアクセラレータチップは、特定用途向け集積回路(ASIC)を含み、前記ASICは、前記ベクトルプロセッサを含み、前記ベクトルプロセッサを介してAI計算を高速化するための専用ハードワイヤードである、請求項14に記載のシステム。
- 前記AIアクセラレータチップは、フィールドプログラマブルゲートアレイ(FPGA)を含み、前記FPGAは、前記ベクトルプロセッサを含み、前記ベクトルプロセッサを介してAI計算を高速化するための専用ハードワイヤードである、請求項14に記載のシステム。
- メモリチップと、
配線を介して前記メモリチップに接続されるアクセラレータチップであって、前記アクセラレータチップは特定用途向けタスクの特定用途向け計算を実行して高速化するように構成される、前記アクセラレータチップと、
配線を介して前記アクセラレータチップに接続されるシステムオンチップ(SoC)と、
を含むシステムであって、
前記SoCは、
特定用途向けタスクを実行し、前記特定用途向けタスクの特定用途向け計算を前記アクセラレータチップにデリゲートするように設定されるグラフィックスプロセッシングユニット(GPU)、及び
非特定用途向けタスクを実行し、前記特定用途向けタスクを前記GPUにデリゲートするように設定されるメインプロセッサ、
を含む、
前記システム。 - 前記メモリチップは、ダイナミックランダムアクセスメモリ(DRAM)セルを含むDRAMチップであり、前記DRAMセルは、前記アクセラレータチップによって、特定用途向け計算の高速化のためにデータを格納するように構成される、請求項17に記載のシステム。
- 前記メモリチップは、不揮発性ランダムアクセスメモリ(NVRAM)セルを含むNVRAMチップであり、前記NVRAMセルは、前記アクセラレータチップによって、特定用途向け計算の高速化のためにデータを格納するように構成される、請求項17に記載のシステム。
- 前記アクセラレータチップは、人工知能(AI)アクセラレータチップであり、前記特定用途向け計算及びタスクは、AI計算及びタスクであり、前記非特定用途向け計算及びタスクは、非AI計算及びタスクである、請求項17に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/573,795 US20210081353A1 (en) | 2019-09-17 | 2019-09-17 | Accelerator chip connecting a system on a chip and a memory chip |
US16/573,795 | 2019-09-17 | ||
PCT/US2020/050712 WO2021055279A1 (en) | 2019-09-17 | 2020-09-14 | Accelerator chip connecting a system on a chip and a memory chip |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022548643A true JP2022548643A (ja) | 2022-11-21 |
Family
ID=74869014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022517127A Pending JP2022548643A (ja) | 2019-09-17 | 2020-09-14 | システムオンチップ及びメモリチップを接続するアクセラレータチップ |
Country Status (7)
Country | Link |
---|---|
US (1) | US20210081353A1 (ja) |
EP (1) | EP4032031A4 (ja) |
JP (1) | JP2022548643A (ja) |
KR (1) | KR20220041224A (ja) |
CN (1) | CN114521255A (ja) |
TW (1) | TW202115565A (ja) |
WO (1) | WO2021055279A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11908947B2 (en) * | 2019-08-08 | 2024-02-20 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
US11397694B2 (en) | 2019-09-17 | 2022-07-26 | Micron Technology, Inc. | Memory chip connecting a system on a chip and an accelerator chip |
US11416422B2 (en) | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
US11922297B2 (en) * | 2020-04-01 | 2024-03-05 | Vmware, Inc. | Edge AI accelerator service |
US11556859B2 (en) | 2020-06-12 | 2023-01-17 | Baidu Usa Llc | Method for al model transferring with layer and memory randomization |
US11657332B2 (en) | 2020-06-12 | 2023-05-23 | Baidu Usa Llc | Method for AI model transferring with layer randomization |
US11409653B2 (en) * | 2020-06-12 | 2022-08-09 | Baidu Usa Llc | Method for AI model transferring with address randomization |
TWI798817B (zh) * | 2021-09-08 | 2023-04-11 | 鯨鏈科技股份有限公司 | 積體電路 |
CN114691385A (zh) * | 2021-12-10 | 2022-07-01 | 全球能源互联网研究院有限公司 | 一种电力异构计算系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180075913A (ko) * | 2016-12-27 | 2018-07-05 | 삼성전자주식회사 | 신경망 연산을 이용한 입력 처리 방법 및 이를 위한 장치 |
US20190057302A1 (en) * | 2017-08-16 | 2019-02-21 | SK Hynix Inc. | Memory device including neural network processor and memory system including the memory device |
US20190057303A1 (en) * | 2017-08-18 | 2019-02-21 | Microsoft Technology Licensing, Llc | Hardware node having a mixed-signal matrix vector unit |
US20190188386A1 (en) * | 2018-12-27 | 2019-06-20 | Intel Corporation | Protecting ai payloads running in gpu against main cpu residing adversaries |
US20190230002A1 (en) * | 2019-03-29 | 2019-07-25 | Intel Corporation | Technologies for accelerated orchestration and attestation with edge device trust chains |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6380945B1 (en) * | 1998-11-09 | 2002-04-30 | Broadcom Corporation | Graphics display system with color look-up table loading mechanism |
US10872290B2 (en) * | 2017-09-21 | 2020-12-22 | Raytheon Company | Neural network processor with direct memory access and hardware acceleration circuits |
KR102424962B1 (ko) * | 2017-11-15 | 2022-07-25 | 삼성전자주식회사 | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 |
-
2019
- 2019-09-17 US US16/573,795 patent/US20210081353A1/en not_active Abandoned
-
2020
- 2020-09-07 TW TW109130610A patent/TW202115565A/zh unknown
- 2020-09-14 WO PCT/US2020/050712 patent/WO2021055279A1/en unknown
- 2020-09-14 CN CN202080065067.7A patent/CN114521255A/zh active Pending
- 2020-09-14 JP JP2022517127A patent/JP2022548643A/ja active Pending
- 2020-09-14 KR KR1020227008623A patent/KR20220041224A/ko unknown
- 2020-09-14 EP EP20864778.4A patent/EP4032031A4/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180075913A (ko) * | 2016-12-27 | 2018-07-05 | 삼성전자주식회사 | 신경망 연산을 이용한 입력 처리 방법 및 이를 위한 장치 |
US20190057302A1 (en) * | 2017-08-16 | 2019-02-21 | SK Hynix Inc. | Memory device including neural network processor and memory system including the memory device |
US20190057303A1 (en) * | 2017-08-18 | 2019-02-21 | Microsoft Technology Licensing, Llc | Hardware node having a mixed-signal matrix vector unit |
US20190188386A1 (en) * | 2018-12-27 | 2019-06-20 | Intel Corporation | Protecting ai payloads running in gpu against main cpu residing adversaries |
US20190230002A1 (en) * | 2019-03-29 | 2019-07-25 | Intel Corporation | Technologies for accelerated orchestration and attestation with edge device trust chains |
Also Published As
Publication number | Publication date |
---|---|
US20210081353A1 (en) | 2021-03-18 |
EP4032031A4 (en) | 2023-10-18 |
CN114521255A (zh) | 2022-05-20 |
TW202115565A (zh) | 2021-04-16 |
KR20220041224A (ko) | 2022-03-31 |
EP4032031A1 (en) | 2022-07-27 |
WO2021055279A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022548643A (ja) | システムオンチップ及びメモリチップを接続するアクセラレータチップ | |
US10902906B2 (en) | Apparatuses and methods for logic/memory devices | |
US20220300437A1 (en) | Memory chip connecting a system on a chip and an accelerator chip | |
US11494078B2 (en) | Translation lookaside buffer in memory | |
US10452578B2 (en) | Apparatus and methods for in data path compute operations | |
CN111433758A (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
JPH05502125A (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
US20210181974A1 (en) | Systems and methods for low-latency memory device | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
CN114945984A (zh) | 扩展存储器通信 | |
CN111694513A (zh) | 包括循环指令存储器队列的存储器器件和方法 | |
CN114402307A (zh) | 具有集成数据移动器的存储器芯片 | |
US20210209462A1 (en) | Method and system for processing a neural network | |
EP3933605A1 (en) | Memory device for performing in-memory processing | |
CN114127852B (zh) | 扩展存储器接口 | |
CN113851168A (zh) | 扩展存储器架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230613 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240123 |