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