(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-04
(45)【発行日】2024-01-15
(54)【発明の名称】セル位置依存性のない線形に重み更新可能なCMOSシナプス・アレイ
(51)【国際特許分類】
G06G 7/60 20060101AFI20240105BHJP
G06N 3/063 20230101ALI20240105BHJP
G06N 3/065 20230101ALI20240105BHJP
G11C 11/54 20060101ALI20240105BHJP
【FI】
G06G7/60
G06N3/063
G06N3/065
G11C11/54
(21)【出願番号】P 2021515660
(86)(22)【出願日】2019-10-02
(86)【国際出願番号】 IB2019058366
(87)【国際公開番号】W WO2020079514
(87)【国際公開日】2020-04-23
【審査請求日】2022-04-18
(32)【優先日】2018-10-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】石井 正俊
(72)【発明者】
【氏名】細川 浩二
(72)【発明者】
【氏名】岡▲崎▼ 篤也
(72)【発明者】
【氏名】岩科 晶代
【審査官】白石 圭吾
(56)【参考文献】
【文献】米国特許出願公開第2017/0193363(US,A1)
【文献】特表2018-511862(JP,A)
【文献】米国特許出願公開第2017/0329575(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06G 7/60
G06N 3/063
G06N 3/065
G11C 11/54
(57)【特許請求の範囲】
【請求項1】
ニューロモーフィック回路であって、
クロスバー・シナプス・アレイ・セルの重みを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有する前記CMOSトランジスタを含む、前記クロスバー・シナプス・アレイ・セルと、
それぞれ前記
クロスバー・シナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインと、それぞれ前記
クロスバー・シナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインと
、を備えるセル制御ラインと、
を備え、
前記クロスバー・シナプス・アレイ・セルは、
互いに直列接続された1対のp型電界効果トランジスタ(pFET)と、
前記1対のpFETに直列接続されると共に、互いに直列接続された1対のn型電界効果トランジスタ(nFET)と、
前記ゲート電圧を更新するための3つのキャパシタC1、C2、およびC3と、
をさらに備え、
前記キャパシタC1の端部が前記1対のpFETの間にある共通ポイントに接続され、
前記キャパシタC2の端部が前記1対のnFETの間にある共通ポイントに接続され、
前記キャパシタC3の端部が前記1対のpFETと前記1対のnFETとの間にある共通ポイントと、前記CMOSトランジスタのゲートとに接続され、
前記セル制御ラインに対して非重複パルスを使用して前記クロスバー・シナプス・アレイ・セルの前記重みを更新するチャージ・シェアリング技法を実施することにより前記CMOSトランジスタの前記ゲート電圧が制御され
、
前記チャージ・シェアリング技法が、前記キャパシタC1およびC3を使用することにより前記ゲート電圧が増分方式で更新されるように、ならびに前記キャパシタC2およびC3を使用することにより前記ゲート電圧が減分方式で更新されるように、行ごとに実施される、ニューロモーフィック回路。
【請求項2】
前記1対のpFETは、前記キャパシタC1およびC3を調整する
よう構成され、
前記1対のnFETは、前記キャパシタC2およびC3を調整する
よう構成されている、請求項
1に記載のニューロモーフィック回路。
【請求項3】
更新増分ラインおよびクロック増分ラインが前記非重複パルスでスイッチングされて、前記増分方式で更新を実施するように前記チャージ・シェアリング技法を実施する、請求項
1または請求項2に記載のニューロモーフィック回路。
【請求項4】
前記クロック増分ラインは前記1対のpFETの第1のpFETのゲートに接続され、前記更新増分ラインは前記1対のpFETの第2のpFETのゲートに接続される、請求項3に記載のニューロモーフィック回路。
【請求項5】
更新減分ラインおよびクロック減分ラインが前記非重複パルスでスイッチングされて、前記減分方式で更新を実施するように前記チャージ・シェアリング技法を実施する、請求項
1から請求項4のいずれか一項に記載のニューロモーフィック回路。
【請求項6】
前記更新減分ラインは前記1対のnFETの第1のnFETのゲートに接続され、前記クロック減分ラインは前記1対のnFETの第2のnFETのゲートに接続される、請求項5に記載のニューロモーフィック回路。
【請求項7】
前記キャパシタC1およびC2が、それぞれ前記1対のpFETの寄生キャパシタンスおよび前記1対のnFETの寄生キャパシタンスで置換される、請求項
1から請求項6のいずれか一項に記載のニューロモーフィック回路。
【請求項8】
請求項1ないし
請求項7のいずれかに記載の複数のニューロモーフィック回路から形成されるシナプス・アレイを備える、ニューロモーフィック・チップ。
【請求項9】
請求項1ないし請求項7のいずれかに記載のニューロモーフィック回路を使用して予測を行う予測システム。
【請求項10】
方法であって、
クロスバー・シナプス・アレイ・セルの重みを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有する前記CMOSトランジスタを含む、前記クロスバー・シナプス・アレイ・セルを形成することと、
それぞれ前記
クロスバー・シナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ライン
と、それぞれ前記
クロスバー・シナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ライン
と、を備えるセル制御ラインを形成することと
を含み、
前記クロスバー・シナプス・アレイ・セルを形成することは、
互いに直列接続された1対のp型電界効果トランジスタ(pFET)を形成することと、
前記1対のpFETに直列接続されると共に、互いに直列接続された1対のn型電界効果トランジスタ(nFET)を形成することと、
前記ゲート電圧を更新するための3つのキャパシタC1、C2、およびC3を形成することと、
を含み、
前記キャパシタC1の端部が前記1対のpFETの間にある共通ポイントに接続され、
前記キャパシタC2の端部が前記1対のnFETの間にある共通ポイントに接続され、
前記キャパシタC3の端部が前記1対のpFETと前記1対のnFETとの間にある共通ポイントと前記CMOSトランジスタのゲートとに接続され、
前記セル制御ラインに対して非重複パルスを使用して前記クロスバー・シナプス・アレイ・セルの前記重みを更新するチャージ・シェアリング技法を実施することにより前記CMOSトランジスタの前記ゲート電圧が制御
可能であり、
前記チャージ・シェアリング技法が、前記キャパシタC1およびC3を使用することにより前記ゲート電圧が増分方式で更新されるように、ならびに前記キャパシタC2およびC3を使用することにより前記ゲート電圧が減分方式で更新されるように、行ごとに実施可能である、方法。
【請求項11】
ニューロモーフィック回路を構成するクロスバー・シナプス・アレイ・セルの重みを更新する方法であって、
前記ニューロモーフィック回路は、
クロスバー・シナプス・アレイ・セルの重みを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有する前記CMOSトランジスタを含む、前記クロスバー・シナプス・アレイ・セルと、
それぞれ前記クロスバー・シナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインと、それぞれ前記クロスバー・シナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインと、を備えるセル制御ラインと、
を備え、
前記クロスバー・シナプス・アレイ・セルは、
互いに直列接続された1対のp型電界効果トランジスタ(pFET)と、
前記1対のpFETに直列接続されると共に、互いに直列接続された1対のn型電界効果トランジスタ(nFET)と、
前記ゲート電圧を更新するための3つのキャパシタC1、C2、およびC3と、
をさらに備え、
前記キャパシタC1の端部が前記1対のpFETの間にある共通ポイントに接続され、
前記キャパシタC2の端部が前記1対のnFETの間にある共通ポイントに接続され、
前記キャパシタC3の端部が前記1対のpFETと前記1対のnFETとの間にある共通ポイントと前記CMOSトランジスタのゲートとに接続されており、
前記方法は、
前記セル制御ラインに対して非重複パルスを使用して前記クロスバー・シナプス・アレイ・セルの前記重みを更新するチャージ・シェアリング技法を実施することにより前記CMOSトランジスタの前記ゲート電圧を制御することを含み、
前記チャージ・シェアリング技法を実施することが、前記キャパシタC1およびC3を使用することにより前記ゲート電圧が増分方式で更新されるように、ならびに前記キャパシタC2およびC3を使用することにより前記ゲート電圧が減分方式で更新されるように、行ごとにチャージ・シェアリング技法を実施することを含む、
クロスバー・シナプス・アレイ・セルの重みを更新する方法。
【請求項12】
前記チャージ・シェアリング技法を実施することが、前記制御ラインを構成する更新増分ラインおよびクロック増分ラインを前記非重複パルスでスイッチングすることと、更新減分ラインおよびクロック減分ラインを前記非重複パルスでスイッチングすることと、含む、請求項11に記載のクロスバー・シナプス・アレイ・セルの重みを更新する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、機械学習に関し、より詳細にはセル位置依存性のない線形に重み更新可能なCMOSシナプス・アレイに関する。
【背景技術】
【0002】
アナログの乗算加算アクセラレータは、その電力効率性により、大きな注目を集めている。PCM、RRAM、MRAMなどの様々なシナプス素子が、開発の途上である。アナログのトランジスタは、三極管領域におけるその線形性によりシナプス素子として1つの選択肢である。しかしながら、従来の技法はシナプス・アレイの近端部および遠端部において意図せず異なるパルス形状を生成する。そして、これはセル・アレイ全体にわたって様々な重み更新特性を引き起こす。したがって、シナプス・アレイにおいてセル位置に起因する重み更新特性の変動に対する解決策が必要である。
【発明の概要】
【0003】
本発明の態様によると、ニューロモーフィック回路が提供される。ニューロモーフィック回路はクロスバー・シナプス・アレイ・セルを含む。クロスバー・シナプス・アレイ・セルは、クロスバー・シナプス・アレイ・セルの重みを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有するCMOSトランジスタを含む。ニューロモーフィック回路は、それぞれシナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインをさらに含む。ニューロモーフィック回路はまた、それぞれシナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインも含む。CMOSトランジスタのゲート電圧は、1組の行ラインおよび1組の列ラインと位置合わせされたセル制御ラインに対して非重複パルスを使用してクロスバー・シナプス・アレイ・セルの重みを更新するチャージ・シェアリング技法を実施することにより制御される。
【0004】
本発明の別の態様によると、ニューロモーフィック・チップが提供される。ニューロモーフィック・チップは、クロスバー・シナプス・アレイ・セルから形成されるシナプス・アレイを含む。クロスバー・シナプス・アレイ・セルのそれぞれは、クロスバー・シナプス・アレイ・セルの重みのそれぞれを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有するCMOSトランジスタを含む。クロスバー・シナプス・アレイ・セルのそれぞれは、それぞれシナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインをさらに含む。クロスバー・シナプス・アレイ・セルのそれぞれはまた、それぞれシナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインも含む。CMOSトランジスタのゲート電圧は、1組の行ラインおよび1組の列ラインと位置合わせされたセル制御ラインに対して非重複パルスを使用してクロスバー・シナプス・アレイ・セルの重みを更新するチャージ・シェアリング技法を実施することにより制御される。
【0005】
本発明のさらに別の態様によると、方法が提供される。方法は、クロスバー・シナプス・アレイ・セルの重みを更新するために、相補型金属酸化物半導体(CMOS)トランジスタのゲート電圧によって制御されるオン抵抗を有するCMOSトランジスタを含む、クロスバー・シナプス・アレイ・セルを形成することを含む。方法は、それぞれシナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインを形成することをさらに含む。方法はまた、それぞれシナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインを形成することも含む。CMOSトランジスタのゲート電圧は、1組の行ラインおよび1組の列ラインと位置合わせされたセル制御ラインに対して非重複パルスを使用してクロスバー・シナプス・アレイ・セルの重みを更新するチャージ・シェアリング技法を実施することにより制御される。
【0006】
これらおよび他の特徴および利点は、添付の図面と併せて読まれる例示的な実施形態の以下の詳細な説明から明らかとなろう。
【0007】
次に、以下の図面を参照して、好ましい実施形態の詳細を説明する。
【図面の簡単な説明】
【0008】
【
図1】本発明を適用することができる処理システムを示すブロック図である。
【
図2】本発明を適用することができる環境を示すブロック図である。
【
図3】本発明を適用することができる別の環境を示すブロック図である。
【
図4】本発明の実施形態による、シナプス・アレイの近端部および遠端部における波形を示す図である。
【
図5】本発明の実施形態による、ニューロモーフィック・セル回路を示すブロック図である。
【
図6】
図5の回路に関して例示のタイミングを示すタイミング図である。
【
図7】
図5の回路に関して別のタイミングを示すタイミング図である。
【
図8】
図5の複数の回路から形成されたニューロモーフィック・アレイを示すブロック図である。
【
図9】
図8のアレイに印加されたパルスを示すタイミング図である。
【
図10】本発明の実施形態による、セル位置依存性なく線形に重み更新可能なCMOSシナプス・アレイのための方法を示すフロー図である。
【
図11】ケース1-PA、トランジスタT6のゲート電圧を増分、および500nAにおいて0.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図12】ケース1-PA、トランジスタT6のゲート電圧を増分、および500nAにおいて0.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図13】ケース1-PA、トランジスタT6のゲート電圧を増分、および250nAにおいて1.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図14】ケース1-PA、トランジスタT6のゲート電圧を増分、および250nAにおいて1.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図15】ケース1-PA、トランジスタT6のゲート電圧を増分、および125nAにおいて3.2ns幅を有するパルスの使用、を対象とするプロットである。
【
図16】ケース1-PA、トランジスタT6のゲート電圧を増分、および125nAにおいて3.2ns幅を有するパルスの使用、を対象とするプロットである。
【
図17】ケース1-PA、トランジスタT6のゲート電圧を増分、および62.5nAにおいて6.4ns幅を有するパルスの使用、を対象とするプロットである。
【
図18】ケース1-PA、トランジスタT6のゲート電圧を増分、および62.5nAにおいて6.4ns幅を有するパルスの使用、を対象とするプロットである。
【
図19】ケース1-PA、トランジスタT6のゲート電圧を増分、および31.25nAにおいて12.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図20】ケース1-PA、トランジスタT6のゲート電圧を増分、および31.25nAにおいて12.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図21】ケース1-PA、トランジスタT6のゲート電圧を増分、および15.625nAにおいて25.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図22】ケース1-PA、トランジスタT6のゲート電圧を増分、および15.625nAにおいて25.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図23】ケース1-PI、トランジスタT6のゲート電圧を増分、および1.3ns幅を有するパルスの使用、を対象とするプロットである。
【
図24】ケース1-PI、トランジスタT6のゲート電圧を増分、および1.3ns幅を有するパルスの使用、を対象とするプロットである。
【
図25】ケース1-PI、トランジスタT6のゲート電圧を増分、および1.3ns幅を有するパルスの使用、を対象とするプロットである。
【
図26】ケース1-PA、トランジスタT6のゲート電圧を減分、および500nAにおいて0.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図27】ケース1-PA、トランジスタT6のゲート電圧を減分、および500nAにおいて0.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図28】ケース1-PA、トランジスタT6のゲート電圧を減分、および250nAにおいて1.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図29】ケース1-PA、トランジスタT6のゲート電圧を減分、および250nAにおいて1.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図30】ケース1-PA、トランジスタT6のゲート電圧を減分、および125nAにおいて3.2ns幅を有するパルスの使用、を対象とするプロットである。
【
図31】ケース1-PA、トランジスタT6のゲート電圧を減分、および125nAにおいて3.2ns幅を有するパルスの使用、を対象とするプロットである。
【
図32】ケース1-PA、トランジスタT6のゲート電圧を減分、および62.5nAにおいて6.4ns幅を有するパルスの使用、を対象とするプロットである。
【
図33】ケース1-PA、トランジスタT6のゲート電圧を減分、および62.5nAにおいて6.4ns幅を有するパルスの使用、を対象とするプロットである。
【
図34】ケース1-PA、トランジスタT6のゲート電圧を減分、および31.25nAにおいて12.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図35】ケース1-PA、トランジスタT6のゲート電圧を減分、および31.25nAにおいて12.8ns幅を有するパルスの使用、を対象とするプロットである。
【
図36】ケース1-PA、トランジスタT6のゲート電圧を減分、および15.625nAにおいて25.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図37】ケース1-PA、トランジスタT6のゲート電圧を減分、および15.625nAにおいて25.6ns幅を有するパルスの使用、を対象とするプロットである。
【
図38】ケース1-PI、トランジスタT6のゲート電圧を減分、および3.1ns幅を有するパルスの使用、を対象とするプロットである。
【
図39】ケース1-PI、トランジスタT6のゲート電圧を減分、および3.1ns幅を有するパルスの使用、を対象とするプロットである。
【
図40】ケース1-PI、トランジスタT6のゲート電圧を減分、および3.1ns幅を有するパルスの使用、を対象とするプロットである。
【
図41】本発明の実施形態による、クラウド消費者によって使用されるローカルのコンピューティング・デバイスと通信する、1つまたは複数のクラウド・コンピューティング・ノードを有するクラウド・コンピューティング環境を示すブロック図である。
【
図42】本発明の実施形態による、クラウド・コンピューティング環境によって提供される1組の機能的な抽象レイヤを示すブロック図である。
【発明を実施するための形態】
【0009】
本発明は、セル位置依存性のない線形に重み更新可能なCMOSシナプス・アレイを対象としている。
【0010】
一実施形態では、垂直および水平制御ラインからの非重複パルスを使用することによる、重み更新のためのチャージ・シェアリング技法が使用される。一実施形態では、本発明はシナプス・ユニット・セルに、1つのpFETおよび1つのnFETを追加することを伴い、これによりチャージ・シェアリング技法が可能となり、結果として全体的な動作が高速となる。
【0011】
従来、近端部および遠端部におけるパルス形状の違いは、望ましくはないが動作速度を低下させる広いパルス幅を使用することにより抑制することができる。対照的に、本発明は、動作速度を有利に上昇させ、セル・アレイ全体にわたってほぼ同一の重み更新特性を維持する。
【0012】
その上、本発明はグローバルなバイアス回路およびその分布を必要としない。
【0013】
また、本発明は、回路設計の観点から、セル・アレイ全体にわたってパルス形状を保持する非重複パルスを維持することが比較的容易であるという点で、実装することが容易である。
【0014】
本発明の多くの付随する利点のうちの、これらおよび他のものが、本発明の思想を維持しつつ、本明細書で与えられる本発明の教示を与えられた当業者により容易に決定される。
【0015】
図1は、本発明を適用することができる例示的な処理システム100を示すブロック図である。処理システム100は、1組の処理ユニット(例えば、CPU)101、1組のGPU102、1組のメモリ・デバイス103、1組の通信デバイス104、および1組の周辺機器105を含む。CPU101は、シングルコアまたはマルチコアのCPUであり得る。GPU102は、シングルコアまたはマルチコアのGPUであり得る。1つまたは複数のメモリ・デバイス103としては、キャッシュ、RAM、ROM、および他のメモリ(フラッシュ、光学、磁気など)を挙げることができる。通信デバイス104としては、無線または有線あるいはその両方の通信デバイス(例えば、ネットワーク(例えば、WIFIなど)アダプタなど)を挙げることができる。周辺機器105としては、ディスプレイ・デバイス、ユーザ入力デバイス、プリンタ、撮像デバイスなどを挙げることができる。処理システム100の要素は、1つまたは複数の、バスまたはネットワーク(まとめて図面の参照符号110として示す)によって接続される。
【0016】
もちろん、処理システム100は、当業者によって容易に企図されるように、他の要素(図示せず)を含む場合もあり、同様に特定の要素を省略する場合もある。例えば、当業者によって容易に理解されるように、処理システム100の特定の実装形態に応じて、様々な他の入力デバイスまたは出力デバイスあるいはその両方を、処理システム100に含むことができる。例えば、様々なタイプの無線または有線あるいはその両方の、入力または出力あるいはその両方のデバイスを使用することができる。その上、当業者によって容易に諒解されるように、追加的なプロセッサ、コントローラ、メモリなどを様々な構成で利用することもできる。さらには、別の実施形態では、クラウドの構成を使用することができる(例えば、
図9~
図10を参照)。処理システム100のこれらおよび他の変形例は、本明細書で提供される本発明の教示を与えられた当業者によって容易に企図される。
【0017】
その上、本発明に関する様々な要素およびステップに関して以下で説明されるような様々な図面は、システム100の要素のうちの1つまたは複数によって、全体的にまたは部分的に、実装され得ることを諒解されたい。
【0018】
次に、本発明の様々な実施形態により、本発明を適用することができる2つの例示的な環境200および環境300に関して説明する。環境200および環境300を、それぞれ
図2および
図3に関して以下で説明する。さらなる詳細では、環境200は制御されるシステムに動作可能に連結された学習ベースの予測システムを含む一方で、環境300は制御されるシステムの一部として学習ベースの予測システムを含む。その上、環境200および環境300のいずれも、クラウドベースの環境の一部であることができる(例えば、
図7および
図8参照)。本発明を適用することができるこれらおよび他の環境が、本発明の思想を維持しつつ、本明細書で与えられる本発明の教示を与えられた当業者により容易に決定される。
【0019】
図2は、本発明を適用することができる環境200を示すブロック図である。
【0020】
環境200は、学習ベースの予測システム210および制御されるシステム220を含む。学習ベースの予測システム210および制御されるシステム220は、互いの間の通信を可能にするように構成される。例えば、送受信機、または無線、有線およびその組合せを含む他のタイプの通信デバイス、あるいはその両方を使用することができる。一実施形態では、学習ベースの予測システム210と制御されるシステム220との間の通信は、まとめて図面の参照符号230として示される1つまたは複数のネットワーク上で行うことができる。通信には、制御されるシステム220からの多変量時系列データ、ならびに学習ベースの予測システム210からの予測および行動開始制御信号を含むことができるが、それに限定されない。制御されるシステム220は、例えば、バンキング・システム、アクセス・システム、監視システム、製造システム(例えば、組み立てライン)、先進運転支援システム(ADAS)などのあらゆるタイプのプロセッサベースのシステムであることができるが、それに限定されない。
【0021】
制御されるシステム220は、データ(例えば、多変量時系列データ)を、予測を行うためにそのデータを使用する学習ベースの予測システム210に提供する。
【0022】
一実施形態において、予測を行うために、学習ベースの予測システム210は、本明細書で説明されるようなニューロモーフィック回路を使用することができる。
【0023】
制御されるシステム220は、学習ベースの予測システム210によって生成される予測に基づいて制御される。例えば、機械がx回目のステップで失敗するとの予測に基づいて、対応する行動(例えば、機械の電源を落とす、傷害などを防ぐために機械のセーフガードを有効にするなど)を、実際に障害が生じることを回避するためにt<xにおいて行うことができる。別の例として、侵入者の軌道予測に基づいて、制御されている監視システムは、特定の場所(保全エリア)にいる誰かを安全にするために、1つまたは複数のドアをロックまたはロック解除すること、または彼らを安全な場所(安全な部屋)に案内すること、または彼らを制限場所から制限すること、あるいはその組合せなどを行うことができる。人物を案内するために、(スピーカからの)口頭のまたは(ディスプレイ・デバイスに)表示された命令が、ドアのロックまたはロック解除あるいはその両方(または他の行動)と共に、与えられる可能性がある。さらなる例として、予測に応答して車の進路上に予測された障害物を回避するために車両を制御する(制動すること、ステアリング、加速すること、など)ことができる。なおさらなる例として、差し迫った障害を予測して障害が生じる前に、やがて障害となるコンポーネントを別のコンポーネントにスイッチングすること、別のコンポーネントを通じてルーティングすること、異なるコンポーネントによって処理することなどの行動を取るために、本発明をコンピュータ・システムに組み込むことができる。本発明の思想を維持しつつ、本明細書で与えられる本発明の教示を与えられた当業者により容易に諒解されるように、前述の行動は単なる例示であるため、実装形態に応じて他の行動も実施することができることを諒解されたい。
【0024】
一実施形態では、学習ベースの予測システム210を、クラウド・コンピューティングの配置構成におけるノードとして実装することができる。一実施形態では、単一の学習ベースの予測システム210を、単一の制御されるシステムまたは複数の制御されるシステム(例えば、組み立てラインでの様々なロボットなど)に割り当てることができる。環境200の要素のうちのこれらおよび他の構成が、本発明の思想を維持しつつ、本明細書で与えられる本発明の教示を与えられた当業者により容易に決定される。
【0025】
図3は、本発明の実施形態により、本発明を適用することができる別の例示的な環境300を示すブロック図である。
【0026】
環境300は、制御されるシステム320を含み、今度は制御されるシステム320が学習ベースの予測システム310を含む。1つまたは複数の通信バスまたは他のデバイスあるいはその両方を使用してシステム内ならびにシステム間通信を容易にすることができる。制御されるシステム320は、例えば、バンキング・システム、アクセス・システム、監視システム、製造システム(例えば、組み立てライン)、先進運転支援システム(ADAS)などのあらゆるタイプのプロセッサベースのシステムであることができるが、それに限定されない。
【0027】
システム310がシステム320に含まれていること以外は、環境200および環境300におけるこれらの要素の動作は類似している。したがって、要素310および要素320は、簡潔さのために
図3に関連するさらなる詳細では説明しないため、読者は2つの環境200および環境300においてこれらの要素の共通した機能を与えられる
図2の環境200に関連する要素210および要素220の説明をそれぞれ参照されたい。
【0028】
図4は、本発明の実施形態による、シナプス・アレイ410の近端部411および遠端部412における例示的な波形400を示す図である。
【0029】
波形400の形状は、シナプス・アレイ410の近端部411と比べて、遠端部412では変わっている。本発明によって対処され、克服されるのは、この望ましくない形状変化である。
【0030】
図5は、本発明の実施形態による、ニューロモーフィック・セル回路500を示すブロック図である。
図6は、
図5の回路500に関するタイミング600を示すタイミング図である。
図7は、
図5の回路500に関する別のタイミング700を示すタイミング図である。
【0031】
図5を参照すると、回路500は、2つのp型金属酸化物半導体電界効果トランジスタ(MOSFET)、すなわちT1およびT2を含む。
【0032】
回路500は、2つのn型MOSFET、すなわちT3およびT4をさらに含む。
【0033】
回路500はまた、CMOSトランジスタT6も含む。
【0034】
回路500は、追加的に、3つのキャパシタ、すなわちC1、C2、およびC3を含む。一実施形態では、キャパシタC1およびC2はMOSFET寄生キャパシタンスであることができる。別の実施形態では、キャパシタC1およびC2は「インテンショナル」CMOSキャパシタであることができる。
【0035】
クロスバー・シナプス・アレイ・セルのそれぞれの重みを更新するために、T6のゲート電圧によって制御されるオン抵抗が使用される。
【0036】
1組の行ラインは、それぞれシナプス・アレイ・セルを、1組の前シナプス・ニューロンにその第1の端部において、直列に接続する。
【0037】
1組の列ラインは、それぞれシナプス・アレイ・セルを、1組の後シナプス・ニューロンにその第2の端部において、直列に接続する。
【0038】
CMOSトランジスタT6のゲート電圧は、非重複パルスを使用することにより重みを更新するチャージ・シェアリング技法を実施することにより更新される。特に、チャージ・シェアリング技法は、異なるクロックおよびキャパシタの組合せを使用して垂直制御ラインと水平制御ラインとをスイッチングするために非重複パルスを使用してゲート電圧が増分する様式および減分する様式で線形に更新されるように、行ごとに実施される。
【0039】
T6のゲート電圧は2つのタイプのチャージ・シェアリングを使用することにより更新される。
図6はT6のゲート電圧を更新するためのある1つのタイプのチャージ・シェアリング(増分する)を示しており、
図7はT6のゲート電圧を更新するための別のタイプのチャージ・シェアリング(減分する)を示している。
【0040】
図6を参照すると、T6のゲート電圧は、Wclk_iおよびWud_iが重なり合わないように、C1およびC3を使用することにより更新される。すなわち、トランジスタT1用のクロック(Wclk_i)の増分ライン、およびトランジスタT2用の更新(Wud_i)である。
【0041】
図7を参照すると、T6のゲート電圧は、Wclk_dおよびWud_dが重なり合わないように、C2およびC3を使用することにより更新される。すなわち、トランジスタT4用のクロック(Wclk_d)の減分ライン、およびトランジスタT3用の更新(Wud_d)である。
【0042】
したがって、1つまたは複数のニューロモーフィック・セル500を有するニューロモーフィック・チップは、(i)クロックの増分ライン(Wclk_i)および増分更新(Wud_i)がクロックの非重複パルスでスイッチングされて増分方式で更新が実施されるように、(ii)クロックの減分ライン(Wclk_d)および減分更新(Wud_d)がクロックの非重複パルスでスイッチングされて減分方式で更新が実施されるように、チャージ・シェアリング技法を実施する。
【0043】
図8は、本発明の実施形態による、
図5の複数のニューロモーフィック・セル回路500から形成されたニューロモーフィック・アレイ800を示すブロック図である。
図9は、
図8のアレイ800に印加されたパルス900を示すタイミング図である。アレイ800は、重み更新のために行ごとのアクセス・スキームが使用されるようにチャージ・シェアリング技法が適用される
図5に示されるような複数のニューロモーフィック・セルから形成される。
【0044】
図10は、本発明の実施形態による、セル位置依存性なく線形に重み更新可能なCMOSシナプス・アレイのための方法1000を示すフロー図である。
【0045】
ブロック1010において、クロスバー・シナプス・アレイ・セルの重みを更新するために、CMOSトランジスタのゲート電圧によって制御されるオン抵抗を有するCMOSトランジスタを含むクロスバー・シナプス・アレイ・セルを形成する。
【0046】
ブロック1020において、それぞれシナプス・アレイ・セルを、複数の前シナプス・ニューロンにその第1の端部において、直列に接続する、1組の行ラインを形成する。
【0047】
ブロック1030において、それぞれシナプス・アレイ・セルを、複数の後シナプス・ニューロンにその第2の端部において、直列に接続する、1組の列ラインを形成する。
【0048】
ブロック1040において、1組の行ラインおよび1組の列ラインと位置合わせされたセル制御ラインに対して非重複パルスを使用してクロスバー・シナプス・アレイ・セルの重みを更新するチャージ・シェアリング技法を実施することによりCMOSトランジスタのゲート電圧を制御する。
【0049】
一実施形態では、ブロック1040は、ブロック1040Aおよび1040Bのうち1つまたは複数を含む。
【0050】
ブロック1040Aにおいて、更新増分ラインおよびクロック増分ラインが非重複パルスでスイッチングされ、増分方式で更新を実施するようにチャージ・シェアリング技法を実施する。
【0051】
ブロック1040Bにおいて、更新減分ラインおよびクロック減分ラインが非重複パルスでスイッチングされ、減分方式で更新を実施するようにチャージ・シェアリング技法を実施する。
【0052】
本発明の教示によって、ニューロモーフィック回路またはニューロモーフィック・チップあるいはその両方を形成するために、あらゆる既知の製造技法が使用可能であることを諒解されたい。したがって、簡潔さのために本明細書において同じことはさらには説明しない。
【0053】
本発明は、予測システムの一部として含まれ得ることを諒解されたい。次に、予測システムは、別のシステム(例えば、ADAS)の一部であることができる。その上、以下でさらに詳細に説明するように、クラウドの構成を使用して予測システムの少なくとも一部を実装することができる。
【0054】
図11~
図40は、128セル・ロードを含むケース(本明細書において、以降互換的に「ケース1」と称する)について得た例示的な実験結果を示すプロットである。プロットの一部は先行技術(Prior Art)の実験結果(ケース1-PA)を示しており、プロットのその他は本発明(Present Invention)による実験結果(ケース1-PI)を示している。先行技術の実験結果は、3T1Cセルから形成されるメモリ・セルの使用に関連する。
【0055】
特に、
図11~
図25は、トランジスタT6のゲート電圧を増分させることに関し、一方で
図26~
図40はトランジスタT6のゲート電圧を減分させることに関しており、すべての場合で128セル・ロードを含む。様々なパルス幅および電流を以下で説明する。
【0056】
ここで留意されたい重要な点は、短いパルスを使用する場合に、近端部と遠端部とにおける重み更新特性の差が著しいということである。先行技術の技法では幅広なパルスを使用することにより、これを軽減することができる。しかしながら、
図21~
図22に示されるような差を最小化するためにPAのケースは少なくとも約25.6nsのパルス幅を必要とする。対照的に、本発明を使用すると、
図23~
図25に示されるような3.2nsのパルス幅を使用することにより、これを達成することができる。したがって、本発明により、先行技術(PA)のケースよりも高速な動作が可能となる。改善は、大規模なアレイにおいて、より顕著である。
図26~
図40は、減分のケースについての同様な結果を示している。
【0057】
図11~
図12(それぞれ、プロット1100およびプロット1200)を参照すると、同一のことがケース1-PAおよび500nAで0.8ns幅を有するパルスの使用を対象としている。
【0058】
図13~
図14(それぞれ、プロット1300およびプロット1400)を参照すると、同一のことがケース1-PAおよび250nAで1.6ns幅を有するパルスの使用を対象としている。
【0059】
図15~
図16(それぞれ、プロット1500およびプロット1600)を参照すると、同一のことがケース1-PAおよび125nAで3.2ns幅を有するパルスの使用を対象としている。
【0060】
図17~
図18(それぞれ、プロット1700およびプロット1800)を参照すると、同一のことがケース1-PAおよび62.5nAで6.4ns幅を有するパルスの使用を対象としている。
【0061】
図19~
図20(それぞれ、プロット1900およびプロット2000)を参照すると、同一のことがケース1-PAおよび31.25nAで12.8ns幅を有するパルスの使用を対象としている。
【0062】
図21~
図22(それぞれ、プロット2100およびプロット2200)を参照すると、同一のことがケース1-PAおよび15.625nAで25.6ns幅を有するパルスの使用を対象としている。
【0063】
図23~
図25(それぞれ、プロット2300、2400およびプロット2500)を参照すると、同一のことがケース1-PIおよび3.7ns幅を有するパルスの使用を対象としている。
【0064】
図26~
図27(それぞれ、プロット2600およびプロット2700)を参照すると、同一のことがケース1-PAおよび500nAで0.8ns幅を有するパルスの使用を対象としている。
【0065】
図28~
図29(それぞれ、プロット2800およびプロット2900)を参照すると、同一のことがケース1-PAおよび250nAで1.6ns幅を有するパルスの使用を対象としている。
【0066】
図30~
図31(それぞれ、プロット3000およびプロット3100)を参照すると、同一のことがケース1-PAおよび125nAで3.2ns幅を有するパルスの使用を対象としている。
【0067】
図32~
図33(それぞれ、プロット3200およびプロット3300)を参照すると、同一のことがケース1-PAおよび62.5nAで6.4ns幅を有するパルスの使用を対象としている。
【0068】
図34~
図35(それぞれ、プロット3400およびプロット3500)を参照すると、同一のことがケース1-PAおよび31.25nAで12.8ns幅を有するパルスの使用を対象としている。
【0069】
図36~
図37(それぞれ、プロット3600およびプロット3700)を参照すると、同一のことがケース1-PAおよび15.625nAで25.6ns幅を有するパルスの使用を対象としている。
【0070】
図38~
図40(それぞれ、プロット3800、3900およびプロット4000)を参照すると、同一のことがケース1-PIおよび5.8ns幅を有するパルスの使用を対象としている。
【0071】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知の、または後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
【0072】
クラウド・コンピューティングは、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソースの共有されるプールへ(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)のネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0073】
特徴は以下のとおりである:
【0074】
オン・デマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0075】
幅広いネットワーク・アクセス:機能はネットワーク上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
【0076】
リソース・プール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用して複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求にしたがって動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化(例えば、国、州、またはデータセンタ)において場所を特定できることもある。
【0077】
迅速な拡張性:機能は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限に見え、いつでもいくらでも購入することができる。
【0078】
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
【0079】
サービス・モデルは以下のとおりである:
【0080】
ソフトウェアを提供するサービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャで実行中のプロバイダのアプリケーションを使用する。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
【0081】
プラットフォームを提供するサービス(Platform as a Service(PaaS)):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成の、または取得されたアプリケーションをクラウド・インフラストラクチャに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
【0082】
インフラストラクチャを提供するサービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御を有する。
【0083】
展開モデルは以下のとおりである:
【0084】
プライベート・クラウド:クラウド・インフラストラクチャはある組織のためだけに運用される。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【0085】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項)を有する特定のコミュニティをサポートする。それらの組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【0086】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0087】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によって結合される。
【0088】
クラウド・コンピューティング環境は、ステートレスであること、低い結合性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0089】
次に
図41を参照すると、例示的なクラウド・コンピューティング環境4150が描写されている。示されるように、クラウド・コンピューティング環境4150は、例えば、携帯情報端末(PDA)または携帯電話4154A、デスクトップ・コンピュータ4154B、ラップトップ・コンピュータ4154C、または自動車コンピュータ・システム4154Nあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード4110を含む。ノード4110は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの1つまたは複数のネットワークにおいて、これらは物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境4150は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。
図41に示されるコンピューティング・デバイス4154A~Nのタイプは、図示のみを意図されており、コンピューティング・ノード4110およびクラウド・コンピューティング環境4150は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で(例えば、ウェブ・ブラウザを使用して)あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
【0090】
次に
図42を参照すると、クラウド・コンピューティング環境4150(
図41)によって提供される1組の機能的な抽象レイヤが示されている。
図42に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことをまず理解されたい。描写されるように、以下のレイヤおよび対応する機能が提供される。
【0091】
ハードウェアおよびソフトウェア・レイヤ4260は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム4261、縮小命令セット・コンピュータ(Reduced Instruction Set Computer(RISC))アーキテクチャ・ベースのサーバ4262、サーバ4263、ブレード・サーバ4264、ストレージ・デバイス4265、ならびにネットワークおよびネットワーク・コンポーネント4266。いくつかの実施形態において、ソフトウェア・コンポーネントはネットワーク・アプリケーション・サーバ・ソフトウェア4267、およびデータベース・ソフトウェア4268を含む。
【0092】
仮想化レイヤ4270は、仮想エンティティの以下の例を提供することができる抽象レイヤを与える:仮想サーバ4271、仮想ストレージ4272、仮想プライベート・ネットワークを含む仮想ネットワーク4273、仮想アプリケーションおよびオペレーティング・システム4274、および仮想クライアント4275。
【0093】
一例において、管理レイヤ4280は以下で説明される機能を提供することができる。リソース・プロビジョニング4281は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金4282は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル4283はクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理4284は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行4285は、将来的な要求がSLAにしたがって予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
【0094】
ワークロード・レイヤ4290はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション4291、ソフトウェア開発およびライフサイクル管理4292、仮想授業教育配信4293、データ分析処理4294、取引処理4295、ならびにセル位置依存性なしに線形に重み更新可能なCMOSシナプス・アレイ4296。
【0095】
本発明は、統合のあらゆる可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0096】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【0097】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0098】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSMALLTALK(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの従来的な手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上および一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【0099】
本発明の態様は本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0100】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0101】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装するべく、コンピュータ実装処理を作るために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
【0102】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって生じてもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0103】
本明細書において、本発明の「一実施形態」または「ある実施形態」ならびに他のその変形への参照は、その実施形態に関連して説明される特定の特徴、構造、特性などが本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、言い回し「一実施形態では」または「ある実施形態では」の出現、ならびに本明細書を通じて様々な箇所に出現するあらゆる他の変形は、必ずしもすべてが同一の実施形態を参照していない。
【0104】
以下の「/」、「または~あるいはその両方」、および「のうちの少なくとも1つ」のいずれの使用も、例えば、「A/B」、「AまたはBあるいはその両方」、および「AおよびBのうちの少なくとも1つ」の事例では、第1に列挙される選択肢(A)のみの選択、または第2に列挙される選択肢(B)のみの選択、または両方の選択肢(AおよびB)の選択を包含するよう意図されることを諒解されたい。さらなる例として、「A、B、またはC、あるいはその組合せ」および「A、B、およびCのうちの少なくとも1つ」の事例では、そのような言い回しは、第1に列挙される選択肢(A)のみの選択、または第2に列挙される選択肢(B)のみの選択、または第3に列挙される選択肢(C)のみの選択、または第1および第2に列挙される選択肢(AおよびB)のみの選択、または第1および第3に列挙される選択肢(AおよびC)のみの選択、または第2および第3に列挙される選択肢(BおよびC)のみの選択、または3つすべての選択肢(AおよびBおよびC)の選択を包含するよう意図されている。当技術分野および関連分野の当業者には容易に明らかであるように、これは列挙される項目の数だけ拡張され得る。
【0105】
システムおよび方法の好ましい実施形態(例示的であることを意図されており、限定的ではない)を説明したが、上述の教示に照らして当業者により修正形態および変形形態を作成することができることに留意されたい。したがって、添付の特許請求の範囲によって概説される通りの本発明の範囲内で開示された特定の実施形態に変更がなされる場合があることを理解されたい。詳細および特許法により要求される特殊性と共に本発明の態様をこのように説明したが、特許状によって保護される特許請求され所望されることを、添付の特許請求の範囲において説明する。