(57)【要約】【課題】多様な動作に対してプログラム可能であり、再構成可能であるＤＰＵ（ＤＲＡＭ基盤処理ユニット）を含んで、例えばディープラーニングにおけるような高度に並列化されたプロセシングを効率的に処理できるシステムを提供する。【解決手段】システムはＤＰＵの他に、受信命令に対応する最小のＤＰＵ演算を決定するライブラリ、受信命令に対応して決定された最少１つのＤＰＵ演算に対する最少１つのＤＰＵ命令を形成するコンパイラ、最少１つのＤＰＵ命令を最少１つのＤＰＵに伝送するドライバを含む。ＤＰＵは最少１つの列を含むアレイに配列された複数のＤＲＡＭ基盤コンピューティングセルを含む最少１つのコンピューティングセルアレイを含み、最少１つの列は論理機能を提供するために構成されたＤＲＡＭ基盤コンピューティングセルの最少３つの行を含み、論理機能は最少３つの行の中で第１行及び第２行で動作し、論理機能の結果を最少３つの行の中で第３行に格納する。【選択図】図１
2018073413.tif 000002
【特許請求の範囲】
【請求項１】
命令を受信するインタフェイスと、
前記受信された命令に対応する少なくとも１つのＤＰＵ（ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）（−ｂａｓｅｄ）＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、ＤＲＡＭ（基盤）プロセシングユニット）演算を決定するライブラリと、
前記受信された命令に対応する前記決定された少なくとも１つのＤＰＵ演算に対する少なくとも１つのＤＰＵ命令を形成するコンパイラと、
前記少なくとも１つのＤＰＵ命令を少なくとも１つのＤＰＵに伝送するドライバと、を含み、
前記ＤＰＵは、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤コンピューティングセルを含む少なくとも１つのコンピューティングセルアレイを含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される、ことを特徴とするシステム。
【請求項２】
前記少なくとも１つの列のＤＲＡＭ基盤コンピューティングセルの各々は、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含み、
前記少なくとも１つの列の前記ＤＲＡＭ基盤コンピューティングセルは、ＮＯＲ論理機能を提供する、ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記ＤＰＵは、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルをさらに含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される、ことを特徴とする請求項２に記載のシステム。
【請求項４】
前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む、ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記ＤＰＵは、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルをさらに含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される、ことを特徴とする請求項１に記載のシステム。
【請求項６】
前記ライブラリは、前記受信された命令に応答して全体コンヴォリューション階層のマッピングをさらに決定する、ことを特徴とする請求項１に記載のシステム。
【請求項７】
前記ライブラリは、前記受信された命令に対応する前記少なくとも１つのＤＰＵ演算を遂行するように複数のＤＰＵをマッピングする前記少なくとも１つのＤＰＵ演算内での多重並列化をさらに決定する、ことを特徴とする請求項１に記載のシステム。
【請求項８】
前記ドライバは、前記受信された命令に基づいて前記ＤＰＵの内外へのデータ移動をさらに制御する、ことを特徴とする請求項１に記載のシステム。
【請求項９】
少なくとも１つのＤＰＵ（ＤＲＡＭ（−ｂａｓｅｄ）＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、ＤＲＡＭ（基盤）プロセシングユニット）と、
命令を受信するインタフェイスと、
前記受信された命令に対応する少なくとも１つのＤＰＵ演算を決定するライブラリと、
前記受信された命令に対応する少なくとも１つのＤＰＵ命令を前記少なくとも１つのＤＰＵに伝送するドライバと、を含み、
前記ＤＰＵの各々は、
少なくとも１つの列を含むアレイ内に配列された複数のＤＲＡＭ基盤コンピューティングセルを含む少なくとも１つのコンピューティングセルアレイを含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成され、
前記ＤＰＵの各々は更に、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルを含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される、ことを特徴とするシステム。
【請求項１０】
前記少なくとも１つの列のＤＲＡＭ基盤コンピューティングセルの各々は、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含み、
前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む、ことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記少なくとも１つの列の前記ＤＲＡＭ基盤コンピューティングセルは、ＮＯＲ論理機能を提供する、ことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つのＤＰＵ演算は、確率論的コンピューティング演算を含む、ことを特徴とする請求項４又は９に記載のシステム。
【請求項１３】
前記少なくとも１つのＤＰＵの少なくとも１つの行で動作する前記受信された命令に対応する単一ＤＰＵ命令を形成するコンパイラをさらに含む、ことを特徴とする請求項１又は９に記載のシステム。
【請求項１４】
少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルを含む少なくとも１つの確率論的コンピューティングセルアレイを含むＤＰＵ（ＤＲＡＭ（−ｂａｓｅｄ）＿Ｐｏｒｃｅｓｓｉｎｇ＿Ｕｎｉｔ、ＤＲＡＭ（基盤）プロセシングユニット）と、
受信された命令に対応する少なくとも１つの確率論的ＤＰＵ演算を決定するライブラリと、
前記受信された命令に対応する少なくとも１つの確率論的ＤＰＵ命令を前記複数のＤＲＡＭ基盤確率論的コンピューティングセルを含む前記少なくとも１つのＤＰＵに伝送するドライバと、を含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される、ことを特徴とするシステム。
【請求項１５】
前記ドライバは、前記受信された命令に基づいて前記複数のＤＲＡＭ基盤確率論的コンピューティングセルを含む前記ＤＰＵの内外へのデータ移動をさらに制御する、ことを特徴とする請求項１４に記載のシステム。
【請求項１６】
少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤コンピューティングセルを含む少なくとも１つのコンピューティングセルアレイをさらに含み、
前記少なくとも１つの列は、ＤＲＡＭ基盤コンピューティングセルの少なくとも３つの行を含み、
前記ＤＲＡＭ基盤コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成され、
前記ライブラリは、第２受信された命令に対応する前記少なくとも１つのコンピューティングセルアレイに対する少なくとも１つのＤＰＵ演算をさらに決定し、
前記ドライバは、前記複数のＤＲＡＭ基盤コンピューティングセルを含む前記少なくとも１つのコンピューティングセルアレイに前記第２受信された命令に対応する少なくとも１つのＤＰＵ命令を伝送する、ことを特徴とするシステム。
【請求項１７】
前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む、ことを特徴とする請求項１４又は１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＲＡＭ基盤の確率論的（ｓｔｏｃｈａｓｔｉｃ）コンピューティングシステムに係る。
【背景技術】
【０００２】
一般的に、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィクスプロセッシングユニット）と、ＴＰＵ（Ｔｅｎｓｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、テンソルプロセッシングユニット）とがディープラーニング（ｄｅｅｐ  ｌｅａｒｎｉｎｇ）プロセシングのために使用される。しかしディープラーニングプロセシングは、高度に並列化されたプロセシングを含む場合、ＧＰＵ又はＴＰＵによって効率的に処理できない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第６，７４５，２１９号公報
【特許文献２】米国特許第８，１０３，５９８号公報
【特許文献３】米国特許第８，１２７，０７５号公報
【特許文献４】米国特許第８，３５２，３８４号公報
【特許文献５】米国特許第８，６４５，２８６号公報
【特許文献６】米国特許第９，２５１，４６７号公報
【特許文献７】米国特許公開第２０１４／０２２３４３９号明細書
【非特許文献】
【０００４】
【非特許文献１】ＫＮＡＧ，  Ｐｈｉｌ  ｅｔ  ａｌ．，  “Ａ  Ｎａｔｉｖｅ  Ｓｔｏｃｈａｓｔｉｃ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｅｎａｂｌｅｄ  ｂｙ  Ｍｅｍｒｉｓｔｏｒｓ”，  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＮＡＮＯＴＥＣＨＮＯＬＯＧＹ，  Ｖｏｌ．  １３，  Ｎｏ．  ２，  Ｍａｒｃｈ  ２０１４，  ｐｐ．  ２８３−２９３．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上述された技術的課題を解決するためのものであって、  本発明の目的はＤＰＵ（ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）（−ｂａｓｅｄ）＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、ＤＲＡＭ（基盤）プロセシングユニット）を含んで、例えばディープラーニングにおけるような高度に並列化されたプロセシングを効率的に処理できるシステムを提供することにある。
【課題を解決するための手段】
【０００６】
例示的な実施形態に係るシステムは、命令を受信するインタフェイス、ライブラリ、コンパイラ、ドライバ、及びＤＰＵを含むシステムを提供する。前記ライブラリは前記インタフェイスによって受信された命令に対応する少なくとも１つのＤＰＵ演算を決定する。前記コンパイラは前記受信された命令に対応する前記決定された少なくとも１つのＤＰＵ演算に対する少なくとも１つのＤＰＵ命令を形成する。前記ドライバは前記少なくとも１つのＤＰＵ命令を少なくとも１つのＤＰＵに伝送する。前記ＤＰＵは少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤コンピューティングセルを含む少なくとも１つのコンピューティングセルアレイを含み、前記少なくとも１つの列はＤＲＡＭ基盤コンピューティングセルの少なくとも３つの行を含み、前記ＤＲＡＭ基盤コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される。
一実施形態で、前記少なくとも１つの列のＤＲＡＭ基盤コンピューティングセルの各々は３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含み、前記少なくとも１つの列の前記ＤＲＡＭ基盤コンピューティングセルはＮＯＲ論理機能を提供する。
一実施形態で、前記ＤＰＵは少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルをさらに含み、前記少なくとも１つの列はＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、前記ＤＲＡＭ基盤確率論的コンピューティングセルは前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される。
一実施形態で、前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む。
一実施形態で、少なくとも１つのＤＰＵ演算は確率論的コンピューティング演算を含む。
【０００７】
例示的な実施形態に係るシステムは、少なくとも１つのＤＰＵ（ＤＲＡＭ（基盤）プロセシングユニット）と、ここで、
前記ＤＰＵの各々は、少なくとも１つの列を含むアレイ内に配列された複数のＤＲＡＭ基盤コンピューティングセルを含む少なくとも１つのコンピューティングセルアレイを含み、前記少なくとも１つの列は、ＤＲＡＭ基盤コンピューティングセルの少なくとも３つの行を含み、前記ＤＲＡＭ基盤コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成される。
前記ＤＰＵの各々は更に、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルを含み、前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成され、
命令を受信するインタフェイスと、前記受信された命令に対応する少なくとも１つのＤＰＵ演算を決定するライブラリと、前記受信された命令に対応する少なくとも１つのＤＰＵ命令を前記少なくとも１つのＤＰＵに伝送するドライバと、を含む。
【０００８】
一実施形態で、前記少なくとも１つの列のＤＲＡＭ基盤コンピューティングセルの各々は３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含み、前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む。
一実施形態で、前記少なくとも１つの列の前記ＤＲＡＭ基盤コンピューティングセルはＮＯＲ論理機能を提供する。
一実施形態で、前記少なくとも１つのＤＰＵ演算は確率論的コンピューティング演算を含むシステムを提供する。
【０００９】
例示的な実施形態は、少なくとも１つの列を含むアレイに配列された複数のＤＲＡＭ基盤確率論的コンピューティングセルを含む少なくとも１つの確率論的コンピューティングセルアレイを含むＤＲＡＭプロセシングユニットＤＰＵと、ここで、前記少なくとも１つの列は、ＤＲＡＭ基盤確率論的コンピューティングセルの少なくとも３つの行を含み、前記ＤＲＡＭ基盤確率論的コンピューティングセルは、前記少なくとも３つの行の中で第１行及び第２行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも３つの行の中で第３行に格納するように構成され、受信された命令に対応する少なくとも１つの確率論的ＤＰＵ演算を決定するライブラリと、前記受信された命令に対応する少なくとも１つの確率論的ＤＰＵ命令を前記複数のＤＲＡＭ基盤確率論的コンピューティングセルを含む前記少なくとも１つのＤＰＵに伝送するドライバと、を含むシステムを提供する。
一実施形態で、前記少なくとも１つの列の前記ＤＲＡＭ基盤確率論的コンピューティングセルの各々は３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセル、又は、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルを含む。
【発明の効果】
【００１０】
本発明は多様な動作に対してプログラム可能であり、再構成可能であるＤＰＵ（ＤＲＡＭ（−ｂａｓｅｄ）  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて、高度の並列動作が可能なメモリセルを使用する計算を提供できるので、本発明の実施形態によれば、高性能、エネルギ効率的であり、低コストのシステムを提供できる。
【図面の簡単な説明】
【００１１】
以下の説明で、本明細書の技術構成の様相が図面に図示された例示的な実施形態を参照して説明される。
【００１２】
【図１】本発明の実施形態に係るＤＰＵ（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）  ｂａｓｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を例示的に示すブロック図である。
【図２】コンピューティングセルアレイ（ｃｅｌｌ  ａｒｒａｙ）内のコンピューティングセルに対して使用されることができる３つのトランジスタ、１つのキャパシタのＤＲＡＭコンピューティングセル（ｃｏｍｐｕｔｉｎｇ−ｃｅｌｌ）トポグラフィ（ｔｏｐｏｇｒａｐｈｙ）の例示的な実施形態を示す。
【図３】コンピューティングセルアレイ内のコンピューティングセルに対して使用されることができる１つのトランジスタ、１つのキャパシタのＤＲＡＭコンピューティングセル（ｃｏｍｐｕｔｉｎｇ−ｃｅｌｌ）トポグラフィ（ｔｏｐｏｇｒａｐｈｙ）の他の例示的な実施形態を示す。
【図４】本発明の実施形態に係るイントラマット（ｉｎｔｒａ−ｍａｔ、マット内）シフト（ｓｈｉｆｔ）アレイを例示的に示す。
【図５】本発明の実施形態に係るインタマット（ｉｎｔｅｒ−ｍａｔ、マット間）シフトアレイを例示的に示す。
【図６】本発明の実施形態に係る左側のインタマットシフトに対する隣接するコンピューティングセルカラムで同様に配置された２つのコンピューティングセルの間のインタマットシフトインタコネクション（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）構成を概念的に示す。
【図７】本発明の実施形態に係る左側のインタマットシフトに対する隣接するコンピューティングセルカラムで同一でないように配置された２つのコンピューティングセルの間のインタマットシフトインタコネクション（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）構成を概念的に示す。
【図８】本発明の実施形態に係るインタマットフォワーディング（ｆｏｒｗａｄｉｎｇ）アレイを示す。
【図９】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１０】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１１】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１２】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１３】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１４】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１５】本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。
【図１６】本発明の実施形態に係る確率論的データ領域を含むＤＰＵを例示的に示すブロック図である。
【図１７】ＡＮＤロジック動作に変換されることができる乗算（ｍｕｌｔｉｐｌｉｃａｔｉｏｎ）動作に対する確率論的コンピューティング動作を示す。
【図１８】多重化（ｍｕｌｔｉｐｌｅｘｉｎｇ）動作に変換されることができる加算（ａｄｄｉｔｉｏｎ）動作に対する確率論的コンピューティング動作を示す。
【図１９】本発明の実施形態に係るＤＰＵを含むシステム構造を示す。
【発明を実施するための形態】
【００１３】
以下の本文で、多様な詳細な説明は本文の理解を提供するために提示される。しかし、このような詳細な説明無しで記載された本発明の思想が当業者によって容易に具現されることはよく理解されるべきである。他の例で、広く公知された方法、手続、構成、及び回路は本文を曖昧にしないために説明されない。
【００１４】
詳細な説明で“１つの実施形態”又は“一実施形態”を参照することは実施形態と連関された特定な特徴、構造、又は特性が本文の少なくとも１つの実施形態に含まれることを意味する。即ち、本文の多様な位置で使用される“１つの実施形態で”又は“一実施形態で”又は“１つの実施形態に係って”又は類似な意味を有する他の表現は同一の実施形態を参照することを要求しない。さらに、特定な特徴、構造、又は特性は適切な方式に１つ以上の実施形態で組合わされることができる。これと関連して、本明細書で使用されたように、“例示的な”という単語は“例（ｅｘａｍｐｌｅ、ｉｎｓｔａｎｃｅ、ｉｌｌｕｓｔｒａｔｉｏｎ）として提供される”ということを意味する。本明細書で“例示的な”のように記述された実施形態は他の実施形態に比べて必ず望ましいか、有利であることと考えてはならない。また、本文で言及された内容に従って、単数用語は複数の形態を含み、複数用語は単数形態を含むことができる。構成図面を含む多様な図面はただ説明の目的のために本文で言及され、図示され、定量化されない。類似に、多様な波形及びタイミング図は単純に説明の目的のために図示される。例えば、一部の構成要素は明確性のために他の構成要素と比較して誇張に図示される場合がある。追加的に、適切と考慮される場合、参照番号は対応する構成要素及び／又は類似な構成要素を示すために図面上で反複される。
【００１５】
本明細書で使用された用語は単なる特定な実施形態を説明するためにもちいられており、本発明を制限しようとする意図は無い。本明細書で使用されたように、文脈上で明確に異なって意味しない限り、単数形態の“１つ”は複数の形態も含むと意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語が本明細書で使用される時、このような用語は定まれた特徴、整数、段階、動作、要素、及び／又は成分が存在を明示するが、１つ又はそれ以上の他の特徴、整数、段階、動作、要素、成分、及び／又はそれらのグループの追加又は存在は不可能ではない。“第１”、“第２”のような用語は先に説明された構成に対するラベルとして使用され、別の定義が無い限り特定な順序（例えば、空間的、時間的、論理的、等）を意図されていない。その上に、同一の参照番号は同一であるか、或いは類似な機能を有する部品、構成、ブロック、回路、ユニット、又はモジュールと関連された２つ以上の図面にわたって使用される場合がある。しかし、このような使用は、単に説明の簡易化のためであり、このような構成及びユニットの構成又は構造的な細部事項が全ての実施形態又は共通的に参照される部分／モジュールで同一であると意図されておらず、単に、本発明の特定実施形態を指称するための１つの手段である。
【００１６】
別途異なって定義されない限り、全ての用語（技術又は科学用語を含む）は本発明の装置と方法が属する分野で当業者に通常的に理解されるのと同一の意味を有する。共に、辞書的な意味として定義された用語は関連された記述及び／又は本発明の説明の状況に従って解釈されなければならず、このように定義されない限り、理想的に理解されるか、或いは過度に形式的な意味として理解されてはならない。
【００１７】
本明細書に記述された発明は、多様な動作に対してプログラム可能（ｐｒｏｇｒａｍｍａｂｌｅ）であり、再構成可能な（ｒｅｃｏｎｆｉｇｕｒａｂｌｅ）  ＤＰＵ（ＤＲＡＭ基盤プロセッシングユニットを提供する。例えば多様な動作は、加算、乗算、シフティング（ｓｈｉｆｔｉｎｇ）、最大／最小（ＭＩＮ／ＭＡＸ）、及び比較（ｃｏｍｐａｒｉｓｏｎ）等を含むが、これに限定されない。一実施形態で、ＤＰＵは３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭメモリセルプロセスと構造に基づく。他の実施形態で、若干の変化と共に、ＤＰＵは１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭメモリセルプロセスと構造に基づく。従って、ＤＰＵは特定のコンピューティングロジック回路（例えば、アダー（ａｄｄｅｒ、加算器）のような）を含まないが、高度の並列動作を使用するメモリセルを使用する計算を提供する。一実施形態で、ＤＰＵは乗算（ｍｕｌｔｉｐｌｉｃａｔｉｏｎ）動作がＡＮＤロジック動作に変換され、加算（ａｄｄｉｔｉｏｎ）動作が多重化（ｍｕｌｔｉｐｌｅｘｉｎｇ）動作に変換される確率論的コンピューティングアレイを含む。
【００１８】
また、本明細書に記述された発明はＤＰＵをプログラムし、再構成するためのＩＳＡ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ）とコンパイラ（ｃｏｍｐｉｌｅｒ）、ドライバ、ライブラリ、フレームワーク（ｆｒａｍｅｗｏｒｋ）拡張（ｅｘｔｅｎｓｉｏｎ）を含む環境（ｅｃｏｓｙｓｔｅｍ）を含むシステム構造を提供する。
【００１９】
追加的に、本明細書に記述された発明はデータセンタ及び／又はモバイルアプリケーションに適合なシステム構造を提供する。そして、システム構造はＧＰＵ／ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）（ＴＰＵ）／ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）マシンラーニングアプリケーションに対する代案である二進（ｂｉｎａｒｙ）と固定小数点方式（ｆｉｘｅｄ  ｐｏｉｎｔ）の計算の全てに対するマシンラーニングアプリケーションのためのＰＩＭ（Ｐｒｏｃｅｓｓｏｒ−ｉｎ  Ｍｅｍｏｒｙ）ソリューションを提供する。一実施形態で、本明細書に記述された発明は高性能であり、エネルギ効率的であり、且つ低コストのシステムを提供する。該当システムは例えば二進加重ニューラルネットワーク（Ｂｉｎａｒｙ  Ｗｅｉｇｈｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）に対する加速化されたディープラーニング（深層学習）を提供する。
【００２０】
本明細書に記述された発明は再構成及びプログラム可能であり、ＤＲＡＭ技術を利用して構成されることができるＤＰＵと関連される。一実施形態で、ＤＰＵは多様な動作（例えば、加算、乗算、整列、等）を遂行するように構成されるＤＲＡＭ基盤のメモリセルアレイとＤＲＡＭ基盤のコンピューティングセルアレイを含む。
【００２１】
ＤＰＵの内部構成は、サブアレイ（ｓｕｂ−ａｒｒａｙ）の複数のバンクと連結されたシステムバスを含む。一実施形態で、システムバスはサブアレイのＨツリー（ｔｒｅｅ）連結されたバンクを提供するように構成される。各々のサブアレイはローカルコントローラを含み、各々の独立的なサブアレイは分離的に又は同時に活性化される。一実施形態で、ＤＲＡＭ基盤のセルは２つのアレイ（データセルアレイとコンピューティングセルアレイ）に区分される。一実施形態で、コンピューティングセルアレイはＤＲＡＭ基盤のメモリセルで具現される。他の実施形態で、コンピューティングセルアレイはロジック回路を含むＤＲＡＭ基盤のメモリセルで具現される。ＤＰＵ内部構造は、またデータ−シフティング（ｄａｔａ−ｓｈｉｆｔｉｎｇ）及びデータ−移動（ｄａｔａ−ｍｏｖｅｍｅｎｔ）回路を含む。一部の実施形態で、確率論的データ計算のために構成される第３ＤＲＡＭ基盤のセルアレイがある。
【００２２】
図１は本発明の実施形態に係るＤＰＵ（ＤＲＡＭ−ｂａｓｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００を例示的に示すブロック図である。ＤＰＵ１００は１つ以上のバンク１０１ａ〜１０１ｍを含む。図１では、１つ以上のバンク１０１ａ〜１０１ｍの中でバンク１０１ａ、１０１ｂのみが図示されている。各バンク１０１は１つ以上のサブアレイ１０２ａ〜１０２ｒを含む。図１では、１つ以上のサブアレイ１０２ａ〜１０２ｒの中でサブアレイ１０２ａ、１０２ｂのみが図示されている。
また、各バンク１０１はバッファ１０３を含む。バッファ１０３は個別サブアレイ１０２と連結され、システムバス１０４と連結される。バッファ１０３はサブアレイ１０２内の１つのロー（ｒｏｗ）全体を読み出し、以後、該当ローを再び同一のサブアレイ又は他のサブアレイに書き込む。バッファ１０３は、また該当ローデータのコピーをサブアレイ１０２内の複数のマット（ｍａｔ）１０５ａ〜１０５ｐにブロードキャスト（ｂｒｏａｄｃａｓｔ、一斉通知）する。一実施形態で、バンク１０１とシステムバス１０４はＨツリー連結されたバンクを提供するように構成される。
【００２３】
各サブアレイ１０２は１つ以上のマット（又はレーン）１０５を含む。図１では、１つ以上のマット１０５の中でサブアレイ１０２ａのマット１０５ａ〜１０５ｐのみが図示されている。各マット１０５は、データセルアレイ１０６、コンピューティングセルアレイ１０７、及びイントラマット（ｉｎｔｒａ−ｍａｔ）シフトアレイ１０８を含むＤＰＵ１００の領域である。マット１０５の例は破線１０９で囲まれるように図１で図示されている。
各マット１０５はデータセルアレイデコーダ１１０、コンピューティングセルアレイデコーダ１１１、インタマット（ｉｎｔｅｒ−ｍａｔ）シフトアレイ１１２、及びインタマットフォワーディングアレイ１１３を隣接するマットと共有する。一実施形態で、データセルアレイデコーダ１１０、コンピューティングセルアレイデコーダ１１１、及びインタマットシフトアレイ１１２は隣接するマット１０５の間にサブアレイコントローラ１１４と交互に物理的に配置される。一実施形態で、デコーダ１１０、１１１は従来のＤＲＡＭタイプのメモリデコーダのように動作する。
【００２４】
一実施形態で、各マット１０５はサブアレイコントローラ１１４と通信可能に連結される。各サブアレイコントローラ１１４は他のサブアレイコントローラ１１４と独立されて構成される。サブアレイコントローラ１１４はアドレス（ａｄｄｒ）として命令をＤＲＡＭアドレスバスから受信する。該アドレス（即ち、アドレス信号）に応答して、サブアレイコントローラ１１４はデータセルアレイ１０６とコンピューティングセルアレイ１０７との中で少なくとも１つに出力としてデコーディングされたアドレスを提供する。
即ち、サブアレイコントローラ１１４は連関されたデータセルアレイ１０６に対して、データセルアレイデコーダ１１０によってデコーディングされるソース（発信地）／目的地（ｄｅｓｔｉｎａｔｉｏｎ）（ｓｒｃ／ｄｓｔ）アドレスを出力する。そして、コンピューティングセルアレイ１０７の場合、サブアレイコントローラ１１４はコンピューティングセルアレイデコーダ１１１によってデコーディングされる動作／計算（ｏｐ／ｃａｌｃ）アドレスを出力する。また、サブアレイコントローラ１１４は２つ以上のサブアレイコントローラ１１４が協調した方法により動作できるようにする命令をＤＲＡＭバスからのアドレスとして受信する。また、サブアレイコントローラ１１４はデータ移動回路を制御する。例えば、サブアレイコントローラ１１４はイントラマットシフトアレイ１０８、インタマットシフトアレイ１１２、及びインタマットフォワーディングアレイ１１３を制御する。
【００２５】
各データセルアレイ１０６は少なくとも１つのカラム（ｃｏｌｕｍｎ）と少なくとも１つのロー（ｒｏｗ）内に配置される１つ以上のＤＲＡＭセルを含む。一実施形態で、データセルアレイ１０６は従来のＤＲＡＭセルアレイのように構成される。一実施形態で、データセルアレイ１０６は２Ｋカラム及び１６ローを含む。他の実施形態で、データセルアレイ１０６は２Ｋカラムより少ないか、或いは多いカラムを含み、及び／又は１６ローより少ないか、或いは多いローを含む。
【００２６】
各コンピューティングセルアレイ１０７は少なくとも１つのカラムと少なくとも１つのロー内に配置される１つ以上のコンピューティングセルを含む。コンピューティングセルアレイ１０７内のカラムの数はデータセルアレイ１０６内のカラムの数と同一である。一実施形態で、コンピューティングセルアレイ１０７は２Ｋカラム及び１６ローを含む。他の実施形態で、コンピューティングセルアレイ１０７は２Ｋカラムより少ないか、或いは２Ｋカラムより多いカラムを含み、及び／又は、１６ローより少ないか、或いは１６ローより多いローを含む。
【００２７】
図２はコンピューティングセルアレイ（ｃｅｌｌ  ａｒｒａｙ）１０７内のコンピューティングセルに対して使用される、３つのトランジスタと１つのキャパシタとからなる（３Ｔ１Ｃ）ＤＲＡＭコンピューティングセル（ｃｏｍｐｕｔｉｎｇ−ｃｅｌｌ）のトポグラフィ（ｔｏｐｏｇｒａｐｈｙ）２０１の例示的な実施形態を示す。図２に図示されたように、ローＸ内の３Ｔ１Ｃコンピューティングセルは第１トランジスタＴ１を含む。第１トランジスタＴ１は書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と電気的に連結されたソース端、キャパシタＣ１の第１端及び第２トランジスタＴ２のゲート端の双方に電気的に連結されたドレーン端、及び書込みイネーブル（ＷＥＮ）ラインと電気的に連結されたゲート端を含む。キャパシタＣ１の第２端はグラウンド（ｇｒｏｕｎｄ）ラインと電気的に連結される。第２トランジスタＴ２はグラウンドラインと電気的に連結されたソース端、及び第３トランジスタＴ３のソース端と電気的に連結されたドレーン端を含む。第３トランジスタＴ３はワードラインＷＬと電気的に連結されたゲート端、読出しビットライン（Ｒｅａｄ  ＢＬ）と電気的に連結されたドレーン端を含む。３Ｔ１Ｃコンピューティングセルトポグラフィ２０１は読出しビットライン（Ｒｅａｄ  ＢＬ）と電気的に連結された入力と書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と電気的に連結された出力を含むセンスアンプ（Ｓｅｎｓｅ  Ａｍｐｌｉｆｉｅｒ、ＳＡ）を含む。
【００２８】
また、ローＹ内のコンピューティングセルとローＲ内のコンピューティングセルとは双方共に、ローＸ内のコンピューティングセル内の配置と同様に３Ｔ１Ｃ  ＤＲＡＭ構成に配置された３つのトランジスタＴ１〜Ｔ３とキャパシタＣとを含む。図２に図示された３つのコンピューティングセル及びセンスアンプ（ＳＡ）の例はＮＯＲロジック動作（即ち、‘Ｘ  ＮＯＲ  Ｙ’ロジック動作）を提供するように構成される。該当ＮＯＲロジック動作の結果はローＲに格納される。たとえ３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルの１つのカラムのみが図２に明示的に図示されたが、３Ｔ１Ｃコンピューティングセルが複数のカラム（例えば、２Ｋカラム）内に構成される他の実施形態が可能であることは理解されよう。また、３つ以上のローが提供される他の実施形態が可能であることも理解されよう。また、図２に図示された３Ｔ１Ｃ  ＤＲＡＭコンピューティングセル構成がＮＯＲロジック動作を提供するが、３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルトポグラフィ２０１のＮＯＲロジック動作が多様な機能的動作を提供するために使用されることも理解されよう。例えば、機能的動作は排他ノア（ＸＮＯＲ）、加算（ＡＤＤ）、セレクト（ＳＥＴ）、ＭＡＸ、ＳＩＧＮ、多重化（ＭＵＸ）、ＣＳＡ（Ｃｏｎｄｉｔｉｏｎａｌ  Ｓｕｍ  Ａｄｄｉｔｉｏｎ）ロジック、乗算、ポップカウント（ｐｏｐｃｏｕｎｔ）、及びＣＯＭＰＡＲＥ等を含む。但し、本発明はこれに限定されない。また、イントラマットシフトアレイ１０８とインタマットシフトアレイ１１２とはシフティング機能を提供する。
【００２９】
図３は図１のコンピューティングセルアレイ１０７内のコンピューティングセルに対して使用される、１つのトランジスタと１つのキャパシタとからなる（１Ｔ１Ｃ）ＤＲＡＭコンピューティングセル（ｃｏｍｐｕｔｉｎｇ−ｃｅｌｌ）トポグラフィ（ｔｏｐｏｇｒａｐｈｙ）２０２の他の例示的な実施形態を示す。図３に図示されたように、１Ｔ１Ｃコンピューティングセルは第４トランジスタＴ４を含む。第４トランジスタＴ４はキャパシタＣ２の第１端と電気的に連結されたソース端、ビットラインＢＬと電気的に連結されたドレーン端、ワードラインＷＬと電気的に連結されたゲート端を含む。キャパシタＣ２の第２端はグラウンドラインと電気的に連結される。ビットラインＢＬはセンスアンプ（ＳＡ）の入力と電気的に連結される。センスアンプ（ＳＡ）の出力は多重化器（ＭＵＸ）の第１入力、第５トランジスタＴ５のドレーン端、及びＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）の入力と電気的に連結される。多重化器（ＭＵＸ）の出力はラッチ（ＬＡＴＣＨ）の入力と電気的に連結される。第５トランジスタＴ５のソース端はラッチ（ＬＡＴＣＨ）の出力と電気的に連結される。ＡＬＵの出力は多重化器（ＭＵＸ）の第２入力と電気的に連結される。図３で、第５トランジスタＴ５、多重化器（ＭＵＸ、マルチプレクサ）、ラッチ（ＬＡＴＣＨ）、及びＡＬＵは各々コントローラ１１４から制御信号ＣＮＴＬ１〜ＣＮＴＬ４を受信する。
一実施形態で、ＡＬＵはＮＯＲ機能を提供するように構成され、図３のビットラインＢＬと電気的に連結されたロジック回路がＮＯＲロジック動作を提供する。しかし、ビットラインＢＬと電気的に連結されたロジック回路（即ち、ＡＬＵ）が他の機能動作（例えば、排他ノア（ＸＮＯＲ）、加算（ＡＤＤ）、セレクト（ＳＥＴ）、ＭＡＸ、ＳＩＧＮ、多重化（ＭＵＸ）、ＣＳＡ（Ｃｏｎｄｉｔｉｏｎａｌ  Ｓｕｍ  Ａｄｄｉｔｉｏｎ）ロジック、乗算、ポップカウント（ｐｏｐｃｏｕｎｔ）、及びＣＯＭＰＡＲＥ等）を提供できることが理解されよう。但し、本発明はこれに制限されない。また、イントラマットシフトアレイ１０８とインタマットシフトアレイ１１２とはシフティング機能を提供する。図３で１つの１Ｔ１Ｃコンピューティングセルのみが図示され、複数のカラム及び複数のローの１Ｔ１Ｃコンピューティングセルが提供されることも理解されよう。
【００３０】
図２及び図３から分かるように、ＤＰＵのコンピューティングセルは特定、複雑なコンピューティングロジックを含まない。但し、代わりに、ＤＰＵのコンピューティングセルは複数の、多様なタイプの計算を遂行する機能（ａｂｉｌｉｔｙ）を提供する再プログラム可能な性質（ｎａｔｕｒｅ）を有する相対的に単純なトポグラフィを含む。追加的に、ＤＰＵのトポグラフィは、より多くの計算をより速く且つより効率的に遂行するために、メモリ構造に固有の大量並列処理の長所を活かすように配置される。
【００３１】
図４は本発明の実施形態に係るイントラマット（ｉｎｔｒａ−ｍａｔ、マット内）シフト（ｓｈｉｆｔ）アレイ１０８を例示的に示す。イントラマットシフトアレイ１０８の記述を単純化するために、例えば図４に図示されたように、コンピューティングメモリセルの４つのカラム１０７ａ〜１０７ｄからなる幅を有するマット１０５を考慮する。イントラマットシフティングアレイ１０８はアレイ内に配置された複数の第６トランジスタＴ６（図４では、１つのトランジスタのみが代表してＴ６と表示される）、２ｎ本のシフトラインＳＬ（ｎはマット１０５内のコンピューティングセルのカラムのカウントであり、図４の場合，ｎ＝４）、（ｎ＋２）本のシフトレフト（ｌｅｆｔ）コントロールラインＳＬｃＬ、２本のシフトライト（ｒｉｇｈｔ）コントロールラインＳＲｃＬ、及びｎ本のシフトマスクラインＳＭＬを含む。
イントラマットシフトアレイ１０８の第６トランジスタＴ６の一部は書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と（２ｎ）本のシフトラインＳＬとの間に電気的に連結され、イントラマットシフトアレイ１０８の他の第６トランジスタＴ６は読出しビットライン（Ｒｅａｄ  ＢＬ）と（２ｎ）本のシフトラインＳＬとの間に連結される。このような第６トランジスタＴ６のゲートは（ｎ＋２）本のシフトレフトコントロールラインＳＬｃＬと２本のシフトライトコントロールラインＳＲｃＬと電気的に連結される。イントラマットシフトアレイ１０８の他の第６トランジスタＴ６はｎ本のシフトマスクラインＳＭＬ及び（２ｎ）本のシフトラインＳＬの間に電気的に連結される。イントラマットシフトアレイ１０８のコントロールラインはマット１０５と関連されたサブアレイコントローラ１１４と電気的に連結される。
【００３２】
コントロールラインＳＬｃＬ、ＳＲｃＬ上の適切な信号によって、イントラマットシフトアレイ１０８はマット１０５内でデータをレフト（ｌｅｆｔ）シフト又はライト（ｒｉｇｈｔ）シフトする。レフトシフティングに対して、データはサイン（ｓｉｇｎ）ビットで満たされ、１つの動作毎に１ビット又は（ｎ−１）ビットだけシフトされる。ｎはマット１０５当たりのカラム数である。ライトシフトに対して、命令による制御に従ってデータは０又は１で満たされ、データは２０、２１、  …、  ２ｋ−１、２ｋと、マット当たりのカラム数２ｋまでシフトできる。２ｋはカラムの数「ｎ」で、本実施例ではｎ＝４、従ってｋ＝２である。
【００３３】
図５は本発明の実施形態に係るインタマット（ｉｎｔｅｒ−ｍａｔ、マット間）シフトアレイ１１２を例示的に示す。インタマットシフトアレイ１１２の記述を単純化するために、例えば図５乃至図７に図示されたように、マット１０５ａ、１０５ｂが各々、コンピューティングセルの２つのカラム１０７ａ、１０７ｂからなる幅を有するマット構成を考慮する。即ち、各マット１０５ａ、１０５ｂはコンピューティングセルの第１カラム１０７ａとコンピューティングセルの第２カラム１０７ｂとを含む。
インタマットシフトアレイ１１２はトランジスタＴ１１２ａ、Ｔ１１２ｂとトランジスタＴ１１２ｃ、Ｔ１１２ｄ、データシフトライン１１２ｅ、１１２ｆ、及びインタマットシフトコントロールラインＩＳＬｃＬを含む。マット内に、トランジスタＴ１１２ａはコンピューティングセルの第１カラム１０７ａの読出しビットライン（Ｒｅａｄ  ＢＬ）と電気的に連結されたソース端、データシフトライン１１２ｅと電気的に連結されたドレーン端を含む。トランジスタＴ１１２ｂはコンピューティングセルの第２カラム１０７ｂの読出しビットライン（Ｒｅａｄ  ＢＬ）と電気的に連結されたソース端、データシフトライン１１２ｆと電気的に連結されたドレーン端を含む。データシフトライン１１２ｅ、１１２ｆはバッファ１０３と電気的に連結される。バッファ１０３は図５に図示されない。
相異なるマットの間にあって、トランジスタＴ１１２ｃは隣接するマット内のデータシフトライン１１２ｅと各々電気的に連結されたソース端及びドレーン端を含む。トランジスタＴ１１２ｄは隣接マット内のデータシフトライン１１２ｆと各々電気的に連結されたソース端及びドレーン端を含む。トランジスタＴ１１２ｃ、Ｔ１１２ｄのゲートは、同一のインタマットシフトコントロールラインＩＳＬｃＬに連結される。一方、隣接するマット１０５ａ、１０５ｂの相異なる組の間に存在するトランジスタＴ１１２ｃ、Ｔ１１２ｄのゲートは相異なるインタマットシフトコントロールラインＩＳＬｃＬと連結される。インタマットシフトコントロールラインＩＳＬｃＬ上の適切な信号によって、インタマットシフトアレイ１１２は相異なるマットの間でデータをレフトシフト又はライトシフトする。インタマットシフトコントロールラインＩＳＬｃＬを含むインタマットシフトアレイ１１２のコントロールラインは、マット１０５と連関されたサブアレイコントローラ１１４と電気的に連結される。
【００３４】
図６は本発明の実施形態に係る、左側へのインタマットシフトに対して、隣接するマット１０５ａ、１０５ｂにおいて同一の形で明示された２つのコンピューティングセルのカラムの間（１０７ａ−１０７ａ、及び１０７ｂ−１０７ｂ）のインタマットシフトインタコネクション（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）構成を概念的に示す。
図６のインタコネクション構成は利用されるインタコネクションノードによって概念的に図示されている。利用されるインタコネクションノードはドット‘・’により強調されて図示されている。例えば、マット１０５ａと１０５ｂの間に配置されたトランジスタＴ１１２ｃ、Ｔ１１２ｄは活性化されると、これに従って導線経路が各々のトランジスタを通じて形成される。従って、左側のマット１０５ａと右側のマット１０５ｂとの間でデータシフトライン１１２ｅ、１１２ｆは連結される。トランジスタＴ１１２ｃ、Ｔ１１２ｄのゲート端は活性化されたインタマットシフトコントロールラインＩＳＬｃＬと電気的に連結される。
マット１０５ｂ内のトランジスタＴ１１２ａ、Ｔ１１２ｂは活性化され、従ってマット１０５ｂ内のコンピューティングセルのカラム１０７ａの読出しビットライン（Ｒｅａｄ  ＢＬ）はマット１０５ｂの左側に隣接するマット１０５ａ内のコンピューティングセル１０７ａの書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と電気的に連結される。また、同様にして、マット１０５ｂ内のコンピューティングセルのカラム１０７ｂの読出しビットライン（Ｒｅａｄ  ＢＬ）はマット１０５ｂの左側に隣接するマット１０５ａ内のコンピューティングセルのカラム１０７ｂの書込みビットライン（（Ｗｒｉｔｅ  ＢＬ）と電気的に連結される。
【００３５】
図７は本発明の実施形態に係る、左側へのインタマットシフトに対して、マット１０５ａとその左側に隣接する図中最左側のマット（符号なし）、及びマット１０５ｂとその右側に隣接する図中最右側マット（符号なし）において、２つのコンピューティングセルのカラムの間（１０７ａ−１０７ａ、及び１０７ｂ−１０７ｂ）のインタマットシフトインタコネクション（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ、接続）構成を概念的に示す。（本図において、最左側のマットのコンピューティングセルのカラム１０７ａと最右側のマットのコンピューティングセルのカラム１０７ｂは明示されていないが、当業者には容易に理解できるであろう。）
図７のインタコネクション構成は利用されるインタコネクションノードによって概念的に図示されている。利用されるインタコネクションノードはドット‘・’により強調されて図示されている。例えば、最左側のマットとマット１０５ａの間、及びマット１０５ｂと最右側のマットの間に配置されたトランジスタＴ１１２ｃ、Ｔ１１２ｄは活性化されて導線経路が各々のトランジスタを通じて形成される。従って、最左側のマットとマット１０５ａの間、及びマット１０５ｂと最右側のマットの間でデータシフトライン１１２ｅ、１１２ｆは連結される。トランジスタＴ１１２ｃ、Ｔ１１２ｄのゲート端は活性化されたインタマットシフトコントロールラインＩＳＬｃＬと電気的に連結される。
マット１０５ａのトランジスタＴ１１２ａ、Ｔ１１２ｂは活性化され、従ってマット１０５ａ内のコンピューティングセルのカラム１０７ａの読出しビットライン（Ｒｅａｄ  ＢＬ）はマット１０５ａの左側に隣接する最左側のマット内のコンピューティングセルのカラム１０７ａの書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と電気的に連結される。また、同様にして、マット１０５ａ内のコンピューティングセルのカラム１０７ｂの読出しビットライン（Ｒｅａｄ  ＢＬ）はマット１０５ａの左側に隣接する最左側のマット内のコンピューティングセルのカラム１０７ｂの書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と電気的に連結される。
【００３６】
図８は本発明の実施形態に係るインタマットフォワーディング（ｆｏｒｗａｄｉｎｇ）アレイ１１３を示す。インタマットフォワーディングアレイ１１３の説明を単純化するために、図８に図示されたように、マット１０５ａ、１０５ｂが各々、コンピューティングセルの２つのカラム１０７ａ、１０７ｂからなる幅を有するマット構成を考慮する。即ち、各マット１０５ａ、１０５ｂはコンピューティングセルの第１カラム１０７ａとコンピューティングセルの第２カラム１０７ｂとを含む。
マット１０５ａ、１０５ｂと共に、インタマットフォワーディングアレイ１１３はトランジスタＴ１１３ａ、Ｔ１１３ｂ、トランジスタＴ１１３ｃ、Ｔ１１３ｄ、トランジスタＴ１１３ｅ、Ｔ１１３ｆ、２ｎ本のフォワーディングデータラインＦＤＬ、フォワーディングコントロールラインＦＣＬ、及び２ｍ本のフォワーディングセクションラインＦＳＬを含む。ここで、ｎはマット内のコンピューティングセルのカラム数であり、ｍはセクションの数である。
トランジスタＴ１１３ａ、Ｔ１１３ｂのソース端は各々コンピューティングセルの第１カラム１０７ａの書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と読出しビットライン（Ｒｅａｄ  ＢＬ）とに電気的に連結される。トランジスタＴ１１３ａ、Ｔ１１３ｂのドレーン端は第１データフォワーディングライン（ＦＤＬ）１１３ｇに電気的に連結される。トランジスタＴ１１３ｃ、Ｔ１１３ｄのソース端は各々コンピューティングセルの第２カラム１０７ｂの書込みビットライン（Ｗｒｉｔｅ  ＢＬ）と読出しビットライン（Ｒｅａｄ  ＢＬ）に電気的に連結される。トランジスタＴ１１３ｃ、Ｔ１１３ｄのドレーン端は第２データフォワーディングライン（ＦＤＬ）１１３ｈに電気的に連結される。
トランジスタＴ１１３ｅ、Ｔ１１３ｆのソース端は各々トランジスタＴ１１３ａ、Ｔ１１３ｂのゲート端に電気的に連結される。トランジスタＴ１１３ｅ、Ｔ１１３ｆのドレーン端は全て同一のフォワーディングセクションラインＦＳＬに連結される。トランジスタＴ１１３ｅ、Ｔ１１３ｆのゲート端は各々、相異なるフォワーディングコントロールラインＦＣＬに連結される。
フォワーディングコントロールラインＦＣＬ上の適切な信号によって、インタマットフォワーディングアレイ１１３はマットの間でデータをフォワーディングする。インタマットフォワーディングアレイ１１３のコントロールラインは、相互間にデータがフォワーディングされるマット１０５と連関されたサブアレイコントローラ１１４に電気的に連結される。
【００３７】
図９乃至図１５は本発明の実施形態に係るＤＰＵによって提供されるＮＯＲロジック基盤の動作を示す。図９乃至図１５で、第１オペランド（ｏｐｅｒａｎｄ）はローＸに格納され、第２オペランドはローＹ又はローＷに格納される。図９乃至図１５内の矢印はコンピューティングセルの全体ローに対するＮＯＲロジック動作の入出力流れを示す。例えば、図９のローＸはローＸのコンピューティングセルに格納されたオペランドの全体ローを示す。ローＸ内に格納されたオペランド及びローＹ内に格納されたオペランドのＮＯＲロジック動作の結果は結果ローＲ内に格納される。一実施形態で、ローＸとローＹのオペランドは、例えば１００個のカラム（例えば、ｘ１、ｘ２、…、ｘ１００及びｙ１、ｙ２、…、ｙ１００）を含み、結果はローＲ（例えば、ｒ１、ｒ２、…、ｒ１００）内に格納される。即ち、ｘｉ  ＮＯＲ  ｙｉ＝ｒｉである。ここで、ｉはカラムインデックス（ｉｎｄｅｘ）である。他の実施形態で、ローＸはロー内のコンピューティングセルの選択されたグループのみを示す。
【００３８】
図１０はプレフィックス  コッゲ−ストーン  アダー（ｐｒｅｆｉｘ  Ｋｏｇｇｅ−Ｓｔｏｎｅ  ａｄｄｅｒ）に基づくＮビット数値に対するフルアダー動作を例示的に示す。図１０で、第１のＮビットオペランドはローＸ内に格納され、第２のＮビットオペランドはローＹ内に格納される。図１０内に図示された例示的な加算動作で、中間項（ｉｎｔｅｒｍｅｄｉａｔｅ  ｔｅｒｍ）（Ｇ０、Ｐ０、Ｇ１、Ｐ１、Ｇ２、Ｐ２、…、ＧｌｏｇＮ＋１、ＰｌｏｇＮ＋１）が計算される。図１０の最上のブロックはローＸ及びＹからの入力オペランドを利用してＧ０及びＰ０を決定する５個の分離された動作を示す。第１動作で、最上のブロックはローＸの逆（即ち、〜Ｘ）を決定し、これはロー１に格納される。第２動作はローＹの逆（即ち、〜Ｙ）を決定し、これはロー２に格納される。第３動作は（ローＸ）  ＮＯＲ  （ローＹ）’の動作を決定し、これはロー３に格納される。第４動作は‘Ｇ０＝  （ロー１）  ＮＯＲ  （ロー２）’を決定し、これはロー４に格納される。第５動作は‘Ｐ０＝  （ロー３）  ＮＯＲ  （ロー４）’を決定し、これはロー５に格納される。
【００３９】
図１０の中間ブロックを参照すれば、最上ブロックからの中間結果Ｇ０、Ｐ０が中間結果Ｇｉ＋１、Ｐｉ＋１を決定するために使用される。ここで、ｉはカラムインデックスである。即ち、図９の最上のブロックから決定された中間結果Ｇ０、Ｐ０が中間結果Ｇ１、Ｐ１を決定するために使用される。中間結果Ｇ１、Ｐ１は中間結果Ｇ２、Ｐ２を決定するために使用され、同一の過程によって中間結果ＧｌｏｇＮ＋１、ＰｌｏｇＮ＋１が決定される。図１０の最下のブロックで、結果ローＲ１と結果ローＲ２は各々フルアダー（ｆｕｌｌ  ａｄｄｅｒ）動作に対するキャリー（ｃａｒｒｙ）結果と和（ｓｕｍ）結果を格納する。
【００４０】
図１１は３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルトポグラフィ２０１によって提供される例示的なセレクタ（ｓｅｌｅｃｔｏｒ）動作を示す。ロー１はローＸの逆（即ち、〜Ｘ）の中間結果を格納する。ロー２はローＹの逆（即ち、〜Ｙ）の中間結果を格納する。ロー３はローＳの逆（即ち、〜Ｓ）の中間結果を格納する。ロー４は‘（ロー１）  ＮＯＲ  （ロー３）’の中間結果を格納する。ロー５は‘（ロー２）  ＮＯＲ  （ローＹ）’の中間結果を格納する。ロー６は‘（ロー４）＿ＮＯＲ＿（ロー５）’の中間結果を格納する。ローＲはロー６の逆の結果（Ｓ？  Ｘ：Ｙ）を格納する。
【００４１】
図１２は３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルトポグラフィ２０１によって提供される他の例示的なセレクタ動作を示す。ロー１はローＸの逆（即ち、〜Ｘ）の中間結果を格納する。ロー２はローＳの逆（即ち、〜Ｓ）の中間結果を格納する。ロー３は‘（ロー１）  ＮＯＲ  （ローＳ）’の中間結果を格納する。ロー４はローＸの逆（〜Ｘ）の中間結果を格納する。ローＲは‘（ロー３）  ＮＯＲ  （ロー４）’の結果（Ｓ？  Ｘ：〜Ｘ）を格納する。
【００４２】
図１３は３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルトポグラフィ２０１によって提供される例示的なＭＡＸ／ＭＩＮ動作を示す。ロー１はローＹの逆（即ち、〜Ｙ）の中間結果を格納する。ロー２は（ローＸ）＋（〜Ｙ＋１）の中間結果を格納する。ロー３は‘Ｃｏｕｔ＞＞ｎ’の中間結果を格納する。ロー４は‘ＣｏｕｔＸ：Ｙ’の中間結果を格納する。ローＲは‘ＭＡＸ（Ｘ：Ｙ）’の結果を格納する。
【００４３】
図１４は３Ｔ１ＣＤＲＡＭコンピューティングセルトポグラフィ２０１によって提供される例示的な１ビット乗算動作を示す。ロー１は‘（ローＸ）  ＮＯＲ  （ローＷ）’の中間結果を格納する。ロー２は‘（ローＸ）  ＮＯＲ  （ロー１）’の中間結果を格納する。ロー３は‘（ローＷ）  ＮＯＲ  （ロー１）’の中間結果を格納する。結果ローＲは‘（ロー２）  ＮＯＲ  （ロー３）’の結果（即ち、‘（ローＸ）  ＸＮＯＲ  （ローＷ）’の結果）を格納する。
【００４４】
図１５は３Ｔ１Ｃ  ＤＲＡＭコンピューティングセルトポグラフィ２０１によって提供される例示的な複数ビット乗算動作を示す。図１５の上方のブロックで、ロー１はローＷの逆（即ち、〜Ｗ）の中間結果を格納する。ロー２は２ｉ回だけレフトシフトされたローＸの逆（即ち、〜Ｘ＜＜２ｉ）の中間結果を格納する。ここで、ｉはインデックスである。ロー３は‘（ロー１）  ＮＯＲ  （ロー２）’の中間結果（ＰＰｉ＝  （〜Ｗ）  ＮＯＲ  （〜Ｘ＜＜２ｉ））を格納する。図１５の下方のブロックで、ロー１は‘（ローＰＰ０）  ＳＵＭ  （ローＰＰｉ）’、即ち、ΣＰＰｉの中間結果を格納する。ロー２は‘（ロー２）  ＮＯＲ  （ローＷｓｉｇｎ）’の中間結果を格納する。ローＲは‘Ｘ＊Ｗ’の結果を格納する。
【００４５】
図１６は本発明の実施形態に係る確率論的データアレイ７１５を含むＤＰＵ７００を例示的に示すブロック図である。図１に図示されたＤＰＵ１００の構成要素と同一の参照インジケータ（ｉｎｄｉｃａｔｏｒ）を有するＤＰＵ７００の多様な構成要素はＤＰＵ１００のそれと類似し、このような類似な構成要素の記述はここでは省略されている。ＤＰＵ７００のサブアレイ１０２は、（実際の）データセルアレイ１０６、コンピューティングセルアレイ１０７、及びイントラマットシフトアレイ１０８と共に、確率論的データアレイ７１５とコンバータ−ツー−確率論的（ｃｏｎｖｅｒｔｅｒ−ｔｏ−ｓｔｏｃｈａｓｔｉｃ）アレイ７１６とを含む。
【００４６】
確率論的データアレイ７１５は各々少なくとも１つのカラムと少なくとも１つのロー内に配置された１つ以上の確率論的コンピューティングセルを含む。一実施形態で、確率論的データアレイ７１５は２Ｋカラム及び１６ローを含む。確率論的データアレイ７１５内のカラムの数はデータセルアレイ１０６内のカラムの数及びコンピューティングセルアレイ１０７内のカラムの数と各々、同一である。他の実施形態で、確率論的データアレイ７１５は２Ｋカラムより少ないか、或いは多いカラム及び／又は１６ローより少ないか、或いは多いローを含む。確率論的データアレイ７１５内で、‘１’が存在する確率が使用され、２ｎビットはｎビット値を示すために使用される。コンバータ−ツー−確率論的アレイ７１６内の乱数発生器（ｒａｎｄｏｍ＿ｎｕｍｂｅｒ＿ｇｅｎｅｒａｔｏｒ）が実数（ｒｅａｌ  ｎｕｍｂｅｒ）を確率論的な数に変換するために使用される。ポップカウント動作は確率論的な数を実数に逆変換するために使用される。
【００４７】
確率論的なコンピューティングアプローチ（ａｐｐｒｏａｃｈ）を使用して、加算は多重化（ｍｕｌｔｉｐｌｅｘｉｎｇ）動作に変換され、乗算はＡＮＤロジック動作に変換される。例えば、図１７は多重化動作として確率論的加算動作を提供する回路を図示し、図１８はＡＮＤロジック動作として確率論的乗算動作を提供する回路を図示する。確率論的コンピューティングに対する従来の技術は巨大なメモリ容量を要求する。しかし、本明細書に記述された発明は高度に効率的な確率論的コンピューティングを提供するために使用される。これはＤＲＡＭ基盤のＤＰＵがＡＮＤ動作及びマルチプレクス（ＭＵＸ）動作を大規模且つ並列に遂行できるからである。本明細書に記述されたＤＰＵを使用する確率論的コンピューティングは、またディープラーニングを典型的な応用として含む複雑な動作の加速を可能にする。
【００４８】
図１９は本発明の実施形態に係るＤＰＵを含むシステム構造９００を示す。システム構造９００はハードウェアレイヤ９１０、ライブラリ及びドライバレイヤ９２０、フレームワークレイヤ９３０、及びアプリケーションレイヤ９４０を含む。
【００４９】
ハードウェアレイヤ９１０は本明細書に記述されたＤＰＵのような組み込み（ｅｍｂｅｄｄｅｄ）ＤＰＵを含むハードウェア装置及び／又は構成要素を含む。装置及び／又は構成要素の一実施形態は１つ以上の組み込みＤＰＵを含むＰＣＩｅ装置９１１である。装置及び／又は構成要素の他の実施形態は１つ以上の組み込みＤＰＵを含むＤＩＭＭ（Ｄｕａｌ−Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ、デュアルインライン  メモリモデュール）９１２である。システム構造９００のハードウェアレイヤ９１０がＰＣＩｅ装置及び／又はＤＩＭＭに限定されず、ハードウェアレイヤ９１０がＤＰＵを含むＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）装置又は他のメモリタイプ装置を含むことは容易に理解されよう。ハードウェアレベル９１０で装置及び／又は構成要素内に組み込みＤＰＵは図１のＤＰＵ（１００）及び／又は図１６のＤＰＵ（７００）と類似に構成される。他の実施形態で、ＤＰＵの特定コンピューティングセルアレイは図２の３Ｔ１Ｃコンピューティングセルトポグラフィ２０１又は図３の１Ｔ１Ｃコンピューティングセルトポグラフィ２０２を含むように構成される。
【００５０】
システム構造９００のライブラリ及びドライバレイヤ９２０はＤＰＵライブラリ９２１、ＤＰＵドライバ９２２、及びＤＰＵコンパイラ９２３を含む。ＤＰＵライブラリ９２１は、アプリケーションレイヤ９４０で動作できる多様なアプリケーションに対するハードウェアレイヤ９１０内のＤＰＵ内サブアレイ各々に対する、最適のマッピング機能、リソース割当機能、及びスケジューリング機能を提供するように構成される。
【００５１】
一実施形態で、ＤＰＵライブラリ９２１は移動（ｍｏｖｅ）、加算、乗算等の動作を含むフレームワークレイヤ９３０に対するハイ−レベルＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供する。例えば、ＤＰＵライブラリ９２１は、また標準型ルーチン（ｒｏｕｔｉｎｅｓ）に対する具現を含む。標準型ルーチンに対する具現は、加速化ディープラーニングプロセスに対して適用されるフォワード（ｆｏｒｗａｒｄ）及びバックワード（ｂａｃｋｗａｒｄ）コンヴォリューション（ｃｏｎｖｏｌｕｔｉｏｎ、畳み込み）、プーリング（ｐｏｏｌｉｎｇ）、正規化（ｎｏｒｍａｌｉｚａｔｉｏｎ）、及び活性化（ａｃｔｉｖａｔｉｏｎ）レイヤを含む。但し、本発明はこれに限定されない。一実施形態で、ＤＰＵライブラリ９２１はＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）の全体コンヴォリューションレイヤに対する計算をマッピングするＡＰＩ類似機能を含む。追加的に、ＤＰＵライブラリ９２１はＤＰＵ上へのコンヴォリューションレイヤ計算のマッピングを最適化するためのＡＰＩ類似機能を含む。
【００５２】
また、ＤＰＵライブラリ９２１は、タスク（ｔａｓｋ）（例えば、バッチ（ｂａｔｃｈ、一括処理）、出力チャンネル、ピクセル、入力チャンネル、コンヴォリューションカーネル）内の全ての個別又は複数の並列性（ｐａｒａｌｌｅｌｉｓｍ）を、チップ、バンク、サブアレイ及び／又はマットレベルにおける対応するＤＰＵ並列性にマッピングして、リソース割当を最適化するためのＡＰＩ類似機能を含む。追加的に、ＤＰＵライブラリ９２１は、性能（即ち、データ移動フロー（速度））と電力消費との間のトレードオフ（ｔｒａｄｅ  ｏｆｆ）を図る、初期化及び／又はランタイム（ｒｕｎｔｉｍｅ）の時に最適のＤＰＵ構成を提供するＡＰＩ類似機能を含む。
ＤＰＵライブラリ９２１によって提供される他のＡＰＩ類似機能はデザインノブ（ｋｎｏｂ）型機能を含む。例えば、デザインノブ型機能はバンク当たり活性化されたサブアレイの数、活性化されたサブアレイ当たり入力機能マップの数、機能マップのパーティショニング（ｐａｒｔｉｔｉｏｎｉｎｇ）、及び／又はコンヴォリューションカーネルの再使用スキームの設定を含む。続いて、他のＡＰＩ類似機能は各サブアレイに対して特定タスク（例えば、コンヴォリューションコンピューティング、チャネル圧縮（ｓｕｍ  ｕｐ）、及び／又はデータディスパッチング（ｄｉｓｐａｔｃｈｉｎｇ））を割当することによって、追加的なリソース割当最適化を提供する。
仮にオペランドが整数と確率論的数字との間で変換されれば、ＤＰＵライブラリ９２１は精度制限を満足させながらも、オーバヘッド（ｏｖｅｒｈｅａｄ）を最小化するＡＰＩ類似機能を含む。精度が予想より低い場合、ＤＰＵライブラリ９２１は確率論的表現のための追加的なビットを使用して値を再び計算するか、又は他のハードウェア（例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））にタスクを分担（ｏｆｆｌｏａｄ）させるＡＰＩ類似機能を含む。
【００５３】
ＤＰＵライブラリ９２１は、またＤＰＵ内の活性化されたサブアレイをスケジュールすると同時にデータ移動をスケジュールして、データ移動がコンピューティング動作によって隠されるＡＰＩ類似機能を含む。
【００５４】
ＤＰＵライブラリ９２１の他の様相は追加的なＤＰＵ開発のための拡張インタフェイスを含む。一実施形態で、ＤＰＵライブラリ９２１はＮＯＲ及びシフトロジックを利用して機能を直接プログラムして標準型動作（例えば、加算、乗算、ＭＡＸ／ＭＩＮ等）以外の動作を提供するインタフェイスを提供する。
拡張インタフェイスは、またＤＰＵライブラリ９２１によって具体的に支援されない動作を、ライブラリ及びドライバレイヤ９２０から外して、ＳｏＣコントローラ（図示せず）、ＣＰＵ／ＧＰＵ構成要素、及び／又はＣＰＵ／ＴＰＵ構成要素に分担させるインタフェイスを提供する。ＤＰＵライブラリ９２１のその他の様相は、ＤＰＵメモリがコンピューティングのために使用されない場合に、メモリの拡張としてＤＰＵのメモリを使用するためのＡＰＩ類似機能を提供する。
【００５５】
ＤＰＵドライバ９２２は、ＤＰＵハードウェアレイヤをシステムに集積するために、ハードウェアレイヤ９１０でのＤＰＵ、ＤＰＵライブラリ９２１、及びさらに高いレイヤでのオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の間のインタフェイス連結を提供するように構成される。即ち、ＤＰＵドライバ９２２はＤＰＵをシステムＯＳ及びＤＰＵライブラリ９２１に対して露出する。一実施形態で、ＤＰＵドライバ９２２は初期化時にＤＰＵコントロールを提供する。一実施形態で、ＤＰＵドライバ９２２は、ＤＲＡＭタイプのアドレス又はＤＲＡＭタイプのアドレスのシークェンス（ｓｅｑｕｅｎｃｅ）の形態の命令をＤＰＵに伝送し、ＤＰＵの内或いは外へのデータ移動を制御する。ＤＰＵドライバ９２２はＤＰＵ−ＣＰＵ及び／又はＤＰＵ−ＧＰＵ間通信を処理すると共に多重ＤＰＵ通信を提供する。
【００５６】
ＤＰＵコンパイラ９２３は、ＤＰＵライブラリ９２１からのＤＰＵコードを、ＤＰＵを制御するためにＤＰＵドライバ９２２によって使用されるメモリアドレスの形態をとるＤＰＵ命令にコンパイルする。ＤＰＵコンパイラ９２３によって生成されたＤＰＵ命令はＤＰＵ内の１つ及び／又は２つのロー上で運営される単一命令（例えば、ベクトル命令、及び／又は集合（ｇａｔｈｅｒｅｄ）ベクトル、リード（ｒｅａｄ）オン（ｏｎ）動作命令）である。
【００５７】
フレームワークレイヤ９３０はユーザが使いやすい（ｕｓｅｒ−ｆｒｉｅｎｄｌｙ）インタフェイスをライブラリ及びドライバレイヤ９２０とハードウェアレイヤ９１０とに提供するように構成される。一実施形態で、フレームワークレイヤ９３０は、アプリケーションレイヤ９４０における広範囲なアプリケーションと互換可能なユーザが使いやすいインタフェイスを提供し、ＤＰＵハードウェアレイヤ９１０をユーザに対して透明に（ｔｒａｎｓｐａｒｅｎｔ）する。
他の実施形態で、フレームワークレイヤ９３０は、定量化（ｑｕａｎｔｉｔａｔｉｏｎ）機能を、例えばＴｏｒｃｈ７タイプアプリケーション、及びＴｅｎｓｏｒＦｌｏｗタイプアプリケーションのような既存の、従来の方法に追加するフレームワーク拡張を含む。但し、本発明はこれに限定されない。
一実施形態で、フレームワークレイヤ９３０は、トレイニング（ｔｒａｉｎｉｎｇ）アルゴリズムに定量化機能を追加することを含む。他の実施形態で、フレームワークレイヤ９３０は、既存の除算、乗算、平方根（ｓｑｕａｒｅ  ｒｏｏｔ）のバッチ（ｂａｔｃｈ）正規化（ｎｏｒｍａｌｉｚａｔｉｏｎ）方法に対して、除算、乗算、平方根のシフト近似方法による置換（ｏｖｅｒｒｉｄｅ）を提供する。
他の実施形態で、フレームワークレイヤ９３０はユーザが計算のために使用されるビットの数を設定する拡張を提供する。他の実施形態で、フレームワークレイヤ９３０はＤＰＵライブラリ及びドライバレイヤ９２０からフレームワークレイヤ９３０に多重ＤＰＵ  ＡＰＩをラップ（ｗｒａｐ、一括処理）する能力を提供する。従って、ユーザはハードウェアレイヤにおいて多重ＧＰＵの使用と同様に、多重ＤＰＵを使用できる。フレームワークレイヤ９３０の他の機能は、ハードウェアレイヤ９１０においてＤＰＵ又はＧＰＵへのユーザによる機能割当を可能にする。
【００５８】
アプリケーションレイヤ９４０は広範囲なアプリケーション（例えば、イメージタグ（ｔａｇ）プロセシング、セルフ・ドライビング（自動運転）／パイロティング（ｐｉｌｏｔｉｎｇ、自動ナビ）車両、アルファ碁型のディープマインドアプリケーション、及び／又は音声研究（ｓｐｅｅｃｈ  ｒｅｓｅａｒｃｈ）等）を含むが、本発明はこれに限定されない。
【００５９】
当業者ならば容易に認識できるように、本明細書に記述された革新的な概念は広範囲なアプリケーションに亘って変形され、変更され得る。従って、請求された本発明の思想の範囲は上述された任意の例示的な教示に限定されず、代わりに請求の範囲によって定義される。
【符号の説明】
【００６０】
１００、７００      ＤＰＵ
１０１、１０１ａ、１０１ｂ、１０１ｃ〜１０１ｍ      バンク
１０２、１０２ａ、１０２ｂ、１０２ｃ〜１０２ｒ      サブアレイ
１０３      バッファ
１０４      システムバス
１０５、１０５ａ〜１０５ｐ      マット
１０６      データセルアレイ
１０７      コンピューティングセルアレイ
１０７ａ〜１０７ｄ      コンピューティングセルのカラム
１０８      イントラマット（マット内）シフトアレイ
１１０      データセルアレイデコーダ、デコーダ
１１１      コンピューティングアレイデコーダ、デコーダ
１１２      インタマット（マット間）シフトアレイ
１１２ｅ、１１２ｆ      データシフトライン
１１３      インタマットフォワーディングアレイ
１１３ｇ      第１データフォワーディングライン（ＦＤＬ）
１１３ｈ      第２データフォワーディングライン（ＦＤＬ）
１１４      サブアレイコントローラ、コントローラ
７１５      確率論的データアレイ
７１６      コンバータ−ツー−確率論的アレイ
９００      システム構造
９１０      ハードウェアレイヤ
９１１      ＰＣＩｅ
９１２      ＤＩＭＭ
９２０      ライブラリ及びドライバレイヤ
９２１      ＤＰＵライブラリ
９２２      ＤＰＵドライバ
９２３      ＤＰＵコンパイラ
９３０      フレームワークレイヤ
９４０      アプリケーションレイヤ
ＢＬ      ビットライン
ＤＰＵ      ＤＲＡＭ（基盤）プロセッシングユニット
ＤＩＭＭ      Ｄｕａｌ−Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ、デュアルインライン  メモリモデュール
ＦＣＬ      フォワーディングコントロールライン
ＦＤＬ      フォワーディングデータライン（２ｎ本）
ＦＳＬ      フォワーディングセクションライン（２ｍ本）  ＧＰＵ      Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィクスプロセッシングユニット
ＩＳＬｃＬ      インタマット（マット内）シフトコントロールライン
ＭＵＸ      多重化器、マルチプレクサ
Ｒｅａｄ＿ＢＬ      読出しビットライン
ＳＡ      センスアンプ
ＳＬ      シフトライン
ＳＬｃＬ      シフトレフトコントロールライン
ＳＲｃＬ      シフトライトコントロールライン
ＳＭＬ      シフトマスクライン
ＴＰＵ      Ｔｅｎｓｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、テンソルプロセッシングユニット
Ｔ１〜Ｔ６      トランジスタ
Ｔ１１２ａ〜Ｔ１１２ｄ      トランジスタ
Ｔ１１３ａ〜Ｔ１１３ｆ      トランジスタ
Ｗｒｉｔｅ＿ＢＬ      書込みビットライン
【図１】
2018073413.tif 000003
【図２】
2018073413.tif 000004
【図３】
2018073413.tif 000005
【図４】
2018073413.tif 000006
【図５】
2018073413.tif 000007
【図６】
2018073413.tif 000008
【図７】
2018073413.tif 000009
【図８】
2018073413.tif 000010
【図９】
2018073413.tif 000011
【図１０】
2018073413.tif 000012
【図１１】
2018073413.tif 000013
【図１２】
2018073413.tif 000014
【図１３】
2018073413.tif 000015
【図１４】
2018073413.tif 000016
【図１５】
2018073413.tif 000017
【図１６】
2018073413.tif 000018
【図１７】
2018073413.tif 000019
【図１８】
2018073413.tif 000020
【図１９】
2018073413.tif 000021