(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-21
(45)【発行日】2023-07-31
(54)【発明の名称】チップ用のメモリテスト方法と装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
(51)【国際特許分類】
H01L 21/822 20060101AFI20230724BHJP
H01L 27/04 20060101ALI20230724BHJP
G06F 11/22 20060101ALI20230724BHJP
【FI】
H01L27/04 T
G06F11/22 607F
【外国語出願】
(21)【出願番号】P 2021054103
(22)【出願日】2021-03-26
【審査請求日】2021-10-15
(31)【優先権主張番号】202010701037.2
(32)【優先日】2020-07-20
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Kunlunxin Technology (Beijing) Company Limited
【住所又は居所原語表記】CW Section, F/4, Building 1, No.10, Shangdi 10th Street, Haidian District, 100101, Beijing, China
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100218604
【氏名又は名称】池本 理絵
(74)【代理人】
【氏名又は名称】有原 幸一
(72)【発明者】
【氏名】グゥオ・ヅゥイー
【審査官】岩本 勉
(56)【参考文献】
【文献】米国特許出願公開第2012/0030509(US,A1)
【文献】中国特許出願公開第111158967(CN,A)
【文献】特開2021-081413(JP,A)
【文献】特開2000-123600(JP,A)
【文献】米国特許第06249889(US,B1)
【文献】韓国公開特許第2000-0028991(KR,A)
【文献】特開2006-105783(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 27/04
H01L 21/822
G06F 11/22
(57)【特許請求の範囲】
【請求項1】
チップ用のメモリ
のテスト方法であって、前記チップは、少なくとも1つの前記メモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含み、前記方法は、
前記
複数の演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するステップと、
複数の演算モジュールのうち
の第1演算モジュールとは異なる他の演算モジュール
のメモリテストの過程とは独立して、生成された第1テストベクトルを用いて、前記第1演算モジュールに対してメモリテストを実行するステップと
を含
み、
前記第1テストベクトルを生成するステップは、
前記演算モジュールのうちの1つの演算ユニットに対して、サブテストベクトルを生成するステップと、
前記第1演算モジュールのすべての演算ユニット間で前記サブテストベクトルを再利用することにより、第1テストベクトルを生成するステップと
を含む、チップ用のメモリ
のテスト方法。
【請求項2】
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが第1基準を満たす場合、前記第1テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するステップと、
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが前記第1基準を満たさない場合、前記第2演算モジュールに対して、第2テストベクトルを生成し、
複数の演算モジュールのうちの他の演算モジュール
のメモリテストの過程とは独立して、前記第1テストベクトルとは異なる、生成された第2テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するステップと
をさらに含
み、
前記第1基準は、前記第2演算モジュールが前記第1演算モジュールと同じ構造又は演算機能を有することである、請求項1に記載の方法。
【請求項3】
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるステップをさらに含み、
前記サブテストベクトルを生成するステップは、
分けられた前記少なくとも1つのグループの各々に対して、それぞれのグループテストベクトルをそれぞれ生成するステップと、
生成されたグループテストベクトルに基づいて、前記サブテストベクトルを生成するステップと
を含む、請求項
1に記載の方法。
【請求項4】
前記第1演算モジュールに対して前記メモリテストを実行するステップは、
前記第1演算モジュールの前記少なくとも1つの演算ユニットのうちの各々に対して、異なるメモリサブテストが並列的又は直列的に実行されるように、対応するメモリサブテストを実行することにより、前記第1演算モジュールに対して前記メモリテストを実行するステップを含む、請求項1に記載の方法。
【請求項5】
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるステップをさらに含み、前記各演算ユニットに対して、前記対応するメモリサブテストを実行するステップは、
分けられた少なくとも1つのグループの各々に対して、異なるメモリグループテストが並列的に実行されるように、対応するメモリグループテストを実行することにより、前記メモリサブテストを実行するステップを含む、請求項
3に記載の方法。
【請求項6】
チップ用のメモリ
のテスト装置であって、
前記チップは、少なくとも1つの前記メモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含み、
前記装置は、
前記
複数の演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するように構成される第1テストベクトル生成モジュールと、
複数の演算モジュールのうち前記第1演算モジュールとは異なる他の演算モジュール
のメモリテストの過程とは独立して、生成された第1テストベクトルを用いて、前記第1演算モジュールに対してメモリテストを実行するように構成される第1メモリテストモジュールと
を含
み、
前記第1テストベクトル生成モジュールは、
前記演算モジュールのうちの1つの演算ユニットに対して、サブテストベクトルを生成するように構成されるサブテストベクトル生成モジュールと、
前記第1演算モジュールの全ての演算ユニット間で前記サブテストベクトルを再利用することにより、第1テストベクトルを生成するように構成されるサブテストベクトル再利用モジュールと
を含む、チップ用のメモリ
のテスト装置。
【請求項7】
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが第1基準を満たす場合、
前記第1テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するように構成される第2メモリテストモジュールをさらに含み、
前記他の演算モジュールのうちの前記第2演算モジュールと前記第1演算モジュールが前記第1基準を満たさない場合、
前記第2演算モジュールに対して、第2テストベクトルを生成するように構成される第2テストベクトル生成モジュールと、
複数の演算モジュールのうちの他の演算モジュール
のメモリテストの過程とは独立して、前記第1テストベクトルとは異なる、生成された第2テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するように構成される第3メモリテストモジュールと
をさらに含
み、
前記第1基準は、前記第2演算モジュールが前記第1演算モジュールと同じ構造又は演算機能を有することである、請求項
6に記載の装置。
【請求項8】
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるように構成される第1メモリ区分ブロックをさらに含み、
前記サブテストベクトル生成モジュールは、
分けられた前記少なくとも1つのグループの各々に対して、それぞれのグループテストベクトルをそれぞれ生成するように構成されるグループテストベクトル生成モジュールと、
生成されたグループテストベクトルに基づいて、前記サブテストベクトルを生成するように構成されるグループテストベクトル合成モジュールと
を含む、請求項
6に記載の装置。
【請求項9】
前記第1メモリテストモジュールは、
前記第1演算モジュールの前記少なくとも1つの演算ユニットの各々に対して、異なるメモリサブテストが並列的又は直列的に実行されるように、対応するメモリサブテストを実行することにより、前記第1演算モジュールに対して前記メモリテストを実行するように構成されるメモリサブテストモジュールを含む、請求項
6に記載の装置。
【請求項10】
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるように構成される第2メモリ区分モジュールをさらに含み、
前記メモリサブテストモジュールは、
分けられた少なくとも1つのグループの各々に対して、異なるメモリグループテストが並列的に実行されるように、対応するメモリグループテストを実行することにより、前記メモリサブテストを実行することをさらに含む、請求項
9に記載の装置。
【請求項11】
電子機器であって、
1つ又は複数のプロセッサと、
1つ又は複数のプロセッサによって実行される際、請求項1~
5のいずれか一項に記載の方法を前記電子機器に実行させる1つ又は複数のプログラムを記憶するメモリと
を含んでなる電子機器。
【請求項12】
プロセッサによって実行される際、請求項1~
5のいずれか一項に記載の方法を実現させるコンピュータプログラムが記憶されているコンピュータ可読記憶媒体。
【請求項13】
コンピュータプログラムであって、前記コンピュータプログラムがプロセッサによって実行される際、請求項1~
5のいずれか一項に記載の方法を実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、主にチップの分野に関し、より具体的には、チップ用のメモリテスト方法と装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラムに関する。
【背景技術】
【0002】
人工知能の急速な発展に伴い、人工知能(AI)チップ(たとえば、システムオンチップSoC)の機能と計算能力もますます強力になり、その結果、AIチップ設計の規模や複雑さも急激に増加している。既存のAIチップには、スタティックランダムメモリ(SRAM)、ダイナミックランダムメモリ(DRAM)、キャッシュ(CACHE)、レジスタやフラッシュメモリ(FLASH(登録商標))などの多数のメモリ(memory)が埋め込まれている。これらのメモリはチップの様々な位置に配置され、様々な論理演算をサポートしている。
【0003】
チップの製造過程において、プロセスフロー、設計などの多くの原因により、チップ上の一部のメモリが正確に動作できなくなる。したがって、工場出荷前に、通常、チップのメモリに対してメモリビルトインスキャンテストMBIST(Memory Built-In-Scan-Test)によりテストを行うことで、チップのメモリの有効性をテストし、不良メモリを交換したり修復したりする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示によれば、チップ用のメモリテスト手段を提供する。
【課題を解決するための手段】
【0005】
本開示の第1態様では、チップ用のメモリテスト方法であって、前記チップは、少なくとも1つのメモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含み、該方法は、
少なくとも1つの演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するステップと、
少なくとも1つの演算モジュールのうち第1演算モジュールとは異なる他の演算モジュールとは独立して、生成された第1テストベクトルを用いて、第1演算モジュールに対してメモリテストを実行するステップとを含んでなる、チップ用のメモリテスト方法を提供する。
【0006】
本開示の第2態様では、少なくとも1つのメモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含むチップ用のメモリテスト装置を提供する。該装置は、
少なくとも1つの演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するように構成される第1テストベクトル生成モジュールと、
少なくとも1つの演算モジュールのうち、第1演算モジュールとは異なる他の演算モジュールとは独立して、生成された第1テストベクトルを用いて、第1演算モジュールに対してメモリテストを実行するように構成される第1メモリテストモジュールとを含む。
【0007】
本開示の第3態様では、電子機器であって、
1つ又は複数のプロセッサと、
1つ又は複数のプロセッサによって実行される際、本開示の第1態様による方法をこの電子機器に実行させる1つ又は複数のプログラムを記憶するメモリと
を含んでなる電子機器を提供する。
【0008】
本開示の第4の態様では、プロセッサによって実行される際、本開示の第1態様による方法を実現させるコンピュータプログラムが記憶されているコンピュータ可読記憶媒体を提供する。
本開示の第5態様では、コンピュータプログラムを提供し、該コンピュータプログラムがプロセッサによって実行される際、本開示の第1態様による方法を実現する。
【発明の効果】
【0009】
本願による技術は、柔軟性が低く、時間がかかるためにAIチップの設計製造の要件を満たすことができないという従来のチップ用のメモリテスト手段(たとえば、MBIST)の問題を解決する。本開示によれば、AIチップのメモリテストの柔軟性を向上させ、チップのメモリテストの周期及び時限についてのプレッシャーを低減し、メモリテストを実行するのに必要な時間を短縮し、チップの製造及び生産のコストを削減することができる、改良されたチップ用のメモリテスト手段を提供する。
【0010】
なお、本部分で説明される内容は、本開示の実施例のキーとなる特徴又は重要な特徴を識別することを意図しておらず、本開示の範囲を制限することも意図していない。本開示の他の特徴は、以下の明細書によって理解しやすくなる。
【図面の簡単な説明】
【0011】
【
図1】本開示の複数の実施例によるチップ用のメモリテスト手段が実現される例示的な環境の模式図を示す。
【
図2】本開示の複数の実施例によるチップ用のメモリテストプロセスのフローチャートを示す。
【
図3】本開示の複数の実施例によるチップ用のメモリテスト手段が実現される別の例示的な環境の模式図を示す。
【
図4】本開示の複数の実施例によるチップ用の演算ユニットのメモリテスト手段が実現される例示的な環境の模式図を示す。
【
図5】本開示の複数の実施例によるチップ用のメモリテスト装置の模式的ブロック図を示す。
【
図6】本開示の複数の実施例によるチップ用のメモリテスト装置のブロック図を示す。
【発明を実施するための形態】
【0012】
以下では、図面を参照しながら本願の例示的な実施例を説明し、ここで、理解を容易にするために本願の実施例の様々な詳細を含むが、これらは単に例示的なものであると理解すべきである。したがって、当業者が理解すべきことは、本願の範囲及び主旨を逸脱することなく、ここで記載された実施例に様々な変更及び修正を加えることができる。同様に、以下の説明では、周知の機能及び構成については、明確化及び簡明化のために説明を省略する。
【0013】
本開示の実施例の説明では、用語「含む」及び類似の用語は、オープンな包含、すなわち「含むが、これに限定されない」と理解されるべきである。用語「に基づく」は、「少なくとも部分的に基づく」と理解されるべきである。用語「1つの実施例」又は「該実施例」は、「少なくとも1つの実施例」と解釈されるべきである。用語「第1」、「第2」などは、異なる対象又は同じ対象を指すことができる。以下では、明示的かつ暗黙的な他の定義も含めることができる。
【0014】
本明細書で使用される場合、用語「チップ」は、既存又は将来開発されるソフトウェア又はハードウェア、及びそれらの組み合わせによって実現される物理的キャリアを指す。特定の応用シナリオでは、これには、「SoC」、「結晶ブロック」、「ウエハ」、「ダイ」、「集積回路」、「モノリシックデバイス」、「半導体デバイス」、「マイクロ電子デバイス」などが含まれるが、これらに限定されない。
【0015】
本明細書で使用される場合、用語「演算ユニット」は、基本的な演算アルゴリズム又は機能を実現するユニットを指し、それは、任意の既存又は将来開発されるソフトウェア又はハードウェア、又はそれらの組み合わせによって実現することができる。演算ユニットは、たとえば、畳み込み、数値演算、ベクトル演算、行列演算、文字演算などを含むがこれらに限定されない、チップ内の様々な基本演算を実現することができる。
【0016】
本明細書で使用される場合、用語「演算モジュール」は、ある機能又は演算を実現するモジュールを指し、それは、任意の既存又は将来開発されるソフトウェア又はハードウェア、及びそれらの組み合わせによって実現することができる。演算モジュールは、複数の演算ユニットを含むことができ、たとえば、演算モジュールは、複数の演算ユニットをアレイの形で含むことができる。演算モジュールは、計算能力に対するAIアルゴリズムの要求を満たすために、複雑で反復的な演算を迅速に実行することができる。
【0017】
前述のように、AIチップには、大量のメモリ(たとえば、SRAM、DRAM、CACHE、FLASH(登録商標)など)が埋め込まれている。埋め込まれたメモリの有効性をテストし、不良メモリを置換したり修復したりするために、通常、チップ出荷前に、チップのメモリにMBISTが行われる。
【0018】
従来のMBIST手段は、チップ全体の設計が完了された後に実行され、MBISTテストを行う際に、チップのメモリを区分することなく、チップのすべてのメモリを全体としてテストするようなフラットテスト方式を採択している。
【0019】
AIチップの機能及び計算能力の向上に伴い、AIチップに埋め込まれたメモリの数も急増している。これにより、チップのすべてのメモリに対して1回のテストを実行するには時間がかかる。特に、反復MBISTテストを実行する必要がある場合、MBISTテストには多くの時間が必要となり、チップの製造コストが増加する。さらに、チップメモリ数の急増に伴い、MBISTテストに使用されるテストベクトルもますます複雑化している。さらに重要なことは、チップのいずれかの演算モジュール/機能ユニットを調整する必要がある場合、チップ全体のすべてのメモリを再テストする必要があり、このため、不必要なテストが多くなり、動作の柔軟性が劣る。
【0020】
このように、従来のMBIST手段は、チップ設計製造の周期を増加又は延長しない前提の下では、AIチップに対応するメモリ実行テストのニーズを満たすことができなくなっている。したがって、AIチップのメモリをテストするニーズに対応するために、効率的で柔軟なメモリテスト手段が必要とされている。
【0021】
発明者は、まず、AIチップの機能が複雑化するにつれて、単一のAIチップが通常、複数の演算モジュールを含み、これらの演算モジュールが通常、互いに独立して設計され、実現されることに気づいた。一例として、画像処理用AIチップは、少なくとも1つのベクトル演算モジュール及び少なくとも1つの変位演算サブモジュールを含むことができる。上記演算モジュールは、異なる設計チームによって互いに独立して完成させることができる。
【0022】
次に、発明者は、既存のAIチップの構造が規則的であり、層ごとに分布するという構造的特徴を有することに気づいた。具体的には、1つのAIチップは複数の演算モジュールを含み、各演算モジュールは複数の演算ユニットを含み、各演算ユニットはそれぞれ複数のメモリを含む。
【0023】
さらに、発明者はまた、AIチップの構造が再現性の高いものであることにも気づいた。具体的には、同じ機能の演算モジュールは、同じ構造を有してもよい。一例として、1つの画像処理用AIチップは、同じ構造及び機能を有する複数(たとえば6個)の畳み込み演算モジュールを含むことができる。さらに、各演算モジュールは、同じ構造及び機能を有する複数の演算ユニットを含むことができ、一例として、畳み込み演算モジュールは、サイズが1024*512の畳み込み演算ユニットのアレイであってもよい。
【0024】
また、発明者は、従来のAIチップにおいて、各演算ユニットは、対応する演算ロジックを実行する1つの回路と、これに対応する複数のメモリとを含むことができ、複数のメモリが、通常、対応する演算ロジックを実行する回路の近くに配置され、高速なデータインタラクションを実現することができることにも気づいた。同一の演算ユニットに属する複数のメモリは、特定の基準(たとえば、メモリの位置、タイプ、サイズやテスト要件など)に従って複数のグループに分けることができ、複数のグループについてはMBISTテストが互いに並列的に実施され得る。
【0025】
以上の知見に基づいて、本開示は、チップ用のメモリテスト(たとえば、MBIST)の改良手段を提案する。本開示の実施例によれば、チップ用のメモリテストは、チップのすべてのサブモジュール(すなわち、演算モジュール)の設計が完了された後に一緒に実行する必要はなく、各演算モジュールの設計製造の前に独立して実行される。具体的には、チップの演算モジュールの設計製造過程において、現在の演算モジュールについて、テストベクトルを設計して生成して、メモリテストを完了する。このように、チップのメモリテストをすべての演算モジュールの設計が完了された後に行う必要がなく、MBISTのテストの周期及び時限についてのプレッシャーが緩和される。さらに、チップ全体ではなく単一の演算モジュールに対してメモリテストを実行するので、テストベクトルの設計の複雑さを低減する。さらに、チップの各演算モジュールのメモリテストを独立して実行することができるので、1つの演算モジュールを調整する際に、チップ全体のすべての記憶ユニットをテストする必要がなく、このように、不要なテストを回避する。したがって、本開示は、効率的で柔軟なメモリテスト手段を提供する。
【0026】
以下、図面を参照して本開示の実施例を具体的に説明する。
図1は、本開示の複数の実施例が実現され得る例示的な環境100の模式図を示す。この例示的な環境100は、コンピューティング機器110、チップ150を含む。チップ150は、第1演算モジュール120-1、第2演算モジュール120-2、及び第L演算モジュール120-Lを含む。第1演算モジュール120-1、第2演算モジュール120-2、及び第L演算モジュール120-Lは、チップ内でメモリテストの実行対象となる演算モジュールであり、たとえば、畳み込み演算モジュール、変位演算モジュールなどであってもよく、上記演算モジュールは互いに独立して設計されていてもよい。説明の便宜上、複数の演算モジュール120-1、120-2~120-Lはまとめて演算モジュール120と呼ぶことができる。
【0027】
コンピューティング機器110は、メモリテストを実行するテスト機器、たとえばMBIST制御機器などである。
図1に示すように、コンピューティング機器110は、第1テストベクトル130-1を第1演算モジュール120-1に入力し、第1演算モジュール120-1による第1テスト結果140-1を受信し、第2テストベクトル130-2を第2演算モジュール120-2に入力し、第2演算モジュール120-2による第2テスト結果140-2を受信する。コンピューティング機器110は、第1テスト結果140-1に基づいて第1演算モジュール120-1のメモリの有効性についてのテスト結果を得ることができ、第2テスト結果140-2に基づいて第2演算モジュール120-2のメモリの有効性についてのテスト結果を得ることができる。さらに、コンピューティング機器110は、不良メモリが存在すると判定された場合、不良メモリを置換又は修復することができる。
【0028】
説明の便宜上、複数のテストベクトル、たとえば、第1テストベクトル130-1及び第2テストベクトル130-2は、まとめてテストベクトル130と呼ぶことができ、複数のテスト結果、たとえば第1テスト結果140-1及び第2テスト結果140-2は、まとめてテスト結果140と呼ぶことができる。なお、第1演算モジュール120-1についてのテスト及び第2演算モジュール120-2についてのテストは、互いに独立しており、設計及び製造上のニーズに応じて、異なる期間に実行され得る。
【0029】
いくつかの実施例では、テストベクトル130及びテスト結果140は、有線通信又は無線通信の方式でコンピューティング機器110と演算モジュール120との間でインタラクションすることができる。いくつかの例示的な実施例では、コンピューティング機器110は、テストベクトル130を生成することができる。代替的に、別の例示的な実施例では、コンピューティング機器110は、コンピューティング機器110に結合された入力機器(たとえば、マウス、キーボード、タッチペン、タッチスクリーンなどを含むが、これらに限定されない)を介して、ユーザによって入力されたテストベクトル130を受信することもできる。
【0030】
なお、
図1に示すコンピューティング機器110及び演算モジュール120の数は、限定的ではなく例示的なものにすぎず、他の実施例では、コンピューティング機器110及び演算モジュール120の数は他の任意のデータであり、本開示はこれについて制限しない。
【0031】
また、なお、テストベクトル130及びテスト結果140は、特定の適用シナリオに応じて、コンピューティング機器110と演算モジュール120との間で1回又は複数回のインタラクションによって伝達されてもよく、本開示はこれについても制限しない。
【0032】
以下、
図2を参照して、本開示によるチップ用のメモリテスト過程をより詳細に説明する。
図2は、本開示の複数の例示的な実施例によるチップ用のメモリテストの過程200のフローチャートを示す。過程200は、
図1のコンピューティング機器110によって実現されてもよい。検討を容易にするために、過程200は
図1を参照して説明される。
【0033】
ブロック210において、コンピューティング機器110は、チップ150の第1演算モジュール120-1について、第1テストベクトル130-1を生成する。
【0034】
ブロック220において、コンピューティング機器110は、チップ150の他の演算モジュール(たとえば、第2演算モジュール120-1~第L演算モジュール)とは独立して、生成された第1テストベクトル130-1を用いて、第1演算モジュール120-1に対してメモリテストを実行する。具体的には、第1テストベクトル130-1を、第1演算モジュール120-1に出力し、第1演算モジュール120-1から返される第1テスト結果140-1を受信する。
【0035】
このように、第1演算モジュール120-1のメモリテストは、従来のメモリテスト手段と比較して、チップ150全体の設計が完了されるのを待たずに、第1演算モジュール120-1の設計及び製造中に行うことができる。さらに、チップ150全体の全てのメモリに対してテストベクトルを設計する必要がないため、テストベクトルの複雑さを低減する。最後に、第1演算モジュール120-1の調整後に再度メモリテストを実行する際に、他の演算モジュールのメモリに対して不要なテストを行うことを必要としない。
【0036】
いくつかの実施例では、第1テストベクトル130-1は、他の演算モジュールによって再利用されてもよい。たとえば、コンピューティング機器110は、他の演算モジュール(たとえば、第2演算モジュール120-2)と第1演算モジュール120-1が第1基準を満たすか否かを判定する。コンピューティング機器110は、第1基準が満たされた場合、第2演算モジュール120-2に対してメモリテストを実行する際に、第1テストベクトル130-1を再利用する。コンピューティング機器110が、第2演算モジュール120-2と第1演算モジュール120-1が第1基準を満たしていないと判断した場合、コンピューティング機器110は、第2演算モジュール120-2に対してメモリテストを実行する際に、前記第2演算モジュール120-2について、第1テストベクトル130-1とは異なる第2テストベクトル130-2を生成し、生成した第2テストベクトル130-2を用いて第2演算モジュール120-2に対してメモリテストを実行する。
【0037】
いくつかの実施例では、第1基準は、第2演算モジュール120-2が第1演算モジュール120-1と同じ構造又は演算機能を有することである。
【0038】
一例として、画像処理機能を実行するためのAIチップは、複数の畳み込み演算アレイと、複数の変位演算アレイとを含むことができ、複数の畳み込み演算アレイは、互いに同一又は少なくとも類似の構造を有し、複数の変位演算アレイは、互いに同一又は少なくとも類似の構造を有する。上記構造間の類似性に基づいて、テストベクトルは複数の畳み込み演算アレイ又は変位演算アレイ間で再利用され得る。
【0039】
このように、テストベクトル130の設計複雑度はさらに低減される。
【0040】
なお、第1演算モジュール120-1が第2演算モジュール120-2とは独立してメモリテストを実行するとは、両者間のテスト動作の過程が互いに独立していることを意味し、必ずしも第1演算モジュール120-1と第2演算モジュール120-2についてのテストが時間的に重なってはならないことを意味するものではない。いくつかの実施例では、第1演算モジュール120-1及び第2演算モジュール120-2についてのメモリテストは、特定の適用シナリオ(たとえば、チップ150に含まれるMBIST用のピンの数、演算モジュール120のテスト要件、テストコストなど)に応じて、並列又は直列的に実行されてもよい。
【0041】
上述したように、第1演算モジュール120-1は、複数の演算ユニットを含むことができる。また
図2を参照して、本開示のチップ用のメモリテスト手段は、以下のようにさらに説明される。ブロック210において、コンピューティング機器110は、第1演算モジュール120-1の1つの演算ユニットについてサブテストベクトルを生成し、生成したサブテストベクトルを第1演算モジュール120-1のすべての演算ユニット間で再利用することにより、第1テストベクトル130-1を生成してもよい。ブロック220において、コンピューティング機器110は、第1演算モジュール120-1の各演算ユニットについて、対応するメモリサブテストを実行することにより、第1演算モジュール120-1に対してメモリテストを実行する。いくつかの実施例では、異なるメモリサブテストは並列方式で実行され、他のいくつかの実施例では、異なるメモリサブテストは直列方式で実行される。
【0042】
次に、
図3を参照して、コンピューティング機器110が第1演算モジュール120-1についてメモリテストを実行する手段についてさらに説明する。
図3は、本開示の複数の実施例によるチップ用のメモリテスト手段が実現される別の例示的な環境300の模式図を示す。
図3に示すように、第1演算モジュール120-1は、複数の演算ユニット310-11、310-12、310-1M、……、……、;310-N1、310-N2、……、310-NMを含み、ここで、N及びMは正の整数である。すなわち、第1演算モジュール120-1は、M*Nの演算ユニットのアレイである。説明の便宜上、複数の演算ユニット310-11、310-12、310-1M、……、……、;310-N1、310-N2、……、310-NMは、まとめて演算ユニット310と呼ぶことができる。
【0043】
いくつかの実施例では、コンピューティング機器110は、第1演算モジュール120-1の1つの演算ユニット310、たとえば、演算ユニット310-11についてサブテストベクトルを生成し、生成したサブテストベクトルを第1演算モジュール120-1のすべての演算ユニット310の間で再利用することにより、第1テストベクトル130-1を生成することができる。
図3に示す例示的な実施例では、生成したサブテストベクトルは、M*N回再利用されてもよい。
【0044】
いくつかの実施例では、異なる演算ユニット310(たとえば、
図3の演算ユニット310-11、310-12、……、310-1M;……、;310-N1、310-N2、……、310-NM)について実行される複数のメモリサブテストは、並列方式で実行されてもよい。他のいくつかの実施例では、異なるメモリサブテストは直列方式で実行されてもよい。
【0045】
このように、同一演算モジュール120に属する異なる演算ユニット310では構造及び機能が同じ/類似であるという特性が十分に利用され、テストベクトルの設計がさらに簡略化される。さらに、異なるメモリサブテストは、特定の適用シナリオ(たとえば、チップ150に含まれるMBIST用のピンの数、演算モジュール120のテスト要件、テストコストなど)に応じて、並列又は直列的に実行されてもよく、それにより、メモリテストの効率をさらに向上させる。
【0046】
上述したように、各演算ユニット310は、対応する演算論理を実行する1つの回路と、高速なデータ交換を可能にするために、対応する演算論理を実行する回路の近くに一般的に配置された複数のメモリとを含む。一方、同一演算ユニットに属する複数のメモリは、特定の基準(たとえば、メモリの位置、タイプ、サイズ、及びテスト要件など)に従って複数のグループに分けてもよい。演算ユニット310の上記特性に応じて、チップ用のメモリテストをさらに改善することができる。
【0047】
図4を参照して、コンピューティング機器110が演算ユニット310に対してメモリテストを実行する手段についてさらに説明する。
図4は、本開示の複数の実施例によるチップの演算ユニット310用のメモリテスト手段が実現される例示的な環境400の模式図を示す。
図4に示すように、演算ユニット310-11は、複数のメモリ410-11、410-12、……、410-1P;……、410-R1、410-R2、……、410-RQを含み、ここで、R及びQは正の整数である。説明の便宜上、複数のメモリ410-11、410-12、……、410-1P;……、410-R1、410-R2、……、410-RQは、まとめてメモリ410と呼ぶことができる。
【0048】
代替的に又は追加的に、いくつかの実施例では、演算ユニット310-11は、テストコントローラ440を含んで構成されてもよい。テストコントローラ440は、コンピューティング機器110の一部として実現されてもよいし、コンピューティング機器110から独立したモジュール又はエンティティとして設計されてもよい。テストコントローラ440は、サブテストベクトル420を受信し、演算ユニット310のテスト結果430を対応する機器に返す。いくつかの実施例では、テストコントローラ440は、MBISTコントローラとして実現されていてもよい。
【0049】
いくつかの実施例では、計算ユニット310のメモリ410は、第2基準に従って複数のメモリグループに分ける。
【0050】
いくつかの実施例では、コンピューティング機器110は、メモリ410の位置に応じて、メモリ410を複数のグループに分けることができる。たとえば、コンピューティング機器110は、互いに近接した位置にあるメモリ410を1つのグループに分けられる。
【0051】
代替的に又は追加的に、コンピューティング機器110は、メモリ410のタイプ(たとえば、SRAM、DRAM、CACHE、FLASH(登録商標)など)に応じて、メモリ410を複数のグループに分けることができる。たとえば、コンピューティング機器110は、すべてのSRAMタイプメモリを1つのグループに分け、すべてのレジスタを別のグループに分けられる。
【0052】
図4に示すように、計算ユニット310-11のメモリ410は、Rグループのメモリに分けるが、そのうち、410-11、410-12、……、410-1Pは、1つのグループに分け、メモリ410-R1、410-R2、……、410-RQは、別のグループに分けている。
【0053】
なお、コンピューティング機器110によるメモリ410のグループ化の根拠は、上記で検討した例に限定されるものではなく、他の実施例では、メモリのサイズ、MBISTのテストコストなどに応じてもよく、本開示は、これについて制限しない。
【0054】
いくつかの実施例では、各メモリグループは、10~12個のメモリを含む。
【0055】
いくつかの実施例では、コンピューティング機器110は、分けられている少なくとも1つのグループの各々について、それぞれのグループテストベクトル450をそれぞれ生成する。
【0056】
いくつかの実施例では、テストコントローラ440は、分けられたグループに基づいて、各グループに対して対応するメモリグループテストを実行し、異なるメモリグループテストは並列的に実行される。
図4に示すように、テストコントローラ440は、サブテストベクトル420を受信し、サブテストベクトル420に基づいて、第1グループのメモリ用のグループテストベクトル450-1及び第Rのグループのメモリ用のグループテストベクトル450-Rを生成する。テストコントローラ440は、メモリグループテストを第1グループのメモリと第Rのグループのメモリとの間で並列的に実行する。
【0057】
いくつかの実施例では、テストコントローラ440は、メモリグループテスト結果460-1及び460-Rを受信し、演算ユニットテスト結果430として対応する機器に返す。
【0058】
このように、同一計算ユニット310に属するメモリは異なるメモリグループに分けられ、異なるメモリグループ間でメモリグループテストが並列方式で実行されることにより、メモリテストの性能を向上させる。
【0059】
さらに、AIチップには、いずれの演算モジュール120にも含まれていないいくつかの共通メモリ(たとえば、いくつかの低速メモリ)も含まれている。さらに、各演算モジュール120は、各演算ユニット310に配置されたメモリの他に、本演算モジュール120用の共通メモリ(たとえば、低速メモリ)をいくつか含んでいる。いくつかの実施例では、コンピューティング機器110は、これらの共通メモリを所定の基準(位置、タイプ、テスト要件などを含むが、これらに限定されない)に従って複数の演算モジュールに分け、本開示のメモリテスト方法に従って上記共通メモリに対してメモリテストを実行してもよい。
【0060】
いくつかの実施例では、メモリテストを実行する際に、メモリテストの読み取り/書き込みレートを制御するように、対応するクロック制御モジュールによって実行を補助する。
【0061】
なお、具体的なテストベクトルの数値を設計する際には、既存又は将来の任意の方法を用いてテストベクトルを設計することができ、メモリテストのための配線を実行する際には、既存又は将来の任意の配線方法を用いることができ、本開示はこれについて限定しない。
【0062】
さらに、なお、本開示の方法は、AIチップの設計及び製造過程に加えて、チップのエミュレーション、研究開発及びシミュレーション等の過程にも適用可能である。
【0063】
本開示の実施例によれば、従来のフラット化に基づくMBIST方法とは異なり、本発明は、階層化メモリテスト技術を使用し、MBISTテストをチップの演算モジュール120の設計及び製造段階に早めることで、MBISTのテスト周期及びテスト時限についてのプレッシャーを緩和すると同時に、テストベクトル設計の複雑さを低減する。さらに、各演算モジュール120のメモリ410のテストを独立して行うことができるので、1つの演算モジュールに調整が発生してメモリテストを再実行する必要が生じた場合に、他の演算モジュールのメモリ410に対して不要なテストを行う必要がない。
【0064】
さらに、同じ機能の演算モジュール120間、及び同一演算モジュール120の複数の演算ユニット310間でテストベクトルを再利用することにより、テストベクトルの設計の複雑さをさらに低減する。
【0065】
さらに、本開示は、同一演算ユニット310のメモリ410をグループ化し、異なるメモリグループ間で異なるテストベクトルを使用して並列的にメモリグループテストを実行することで、メモリテストの時間をさらに短縮させ、チップの製造及び製造コストを低減する。
【0066】
図5は、本開示の実施例によるチップ用のメモリテスト装置500の模式的ブロック図を示す。装置500は、
図1に示されたコンピューティング機器110に含まれてもよく、又はコンピューティング機器110として実現されてもよい。
図5に示すように、装置500は、少なくとも1つの演算モジュールのうちの第1演算モジュール120-1について第1テストベクトル130-1を生成するように構成される第1テストベクトル生成モジュール510を含む。装置500は、少なくとも1つの演算モジュール120のうち第1演算モジュール120-1とは異なる他の演算モジュールとは独立して、生成された第1テストベクトル130-1を利用して、第1演算モジュール120-1に対してメモリテストを実行するように構成される第1メモリテストモジュール520をさらに含んでもよい。
【0067】
いくつかの実施例では、他の演算モジュールのうちの第2演算モジュール120-2と第1演算モジュール120-1が第1基準を満たす場合、装置500は、第1テストベクトル130-1を用いて、第2演算モジュール120-2に対してメモリテストを実行するように構成される第2メモリテストモジュールをさらに含み、他の演算モジュールのうちの第2演算モジュール120-2と第1演算モジュール120が第1基準を満たさない場合、装置500は、第2演算モジュール120-2に対して第2テストベクトルを生成するように構成される第2テストベクトル生成モジュールと、少なくとも1つの演算モジュールのうちの他の演算モジュールとは独立して、生成された、第1テストベクトル130-1とは異なる第2テストベクトル130-2を用いて、第1第2演算モジュール120-2に対してメモリテストを実行するように構成される第3メモリテストモジュールとをさらに含む。
【0068】
いくつかの実施例では、第1基準は、第2演算モジュール120-2が第1演算モジュール120-1と同じ構造又は演算機能を有することである。
【0069】
いくつかの実施例では、第1テストベクトル生成モジュール510は、演算モジュールの1つの演算ユニット310に対して、サブテストベクトル420を生成するように構成されるサブテストベクトル420生成モジュールと、サブテストベクトル420を第1演算モジュール120-1の全ての演算ユニット310間で再利用することにより、第1テストベクトル130-1を生成するように構成されるサブテストベクトル再利用モジュールとを含む。
【0070】
いくつかの実施例では、装置500は、第2基準に従って、演算ユニットの少なくとも1つのメモリ410を少なくとも1つのグループに分けるように構成される第1メモリ区分モジュールをさらに含む。サブテストベクトル生成モジュールは、区分された少なくとも1つのグループの各々について、それぞれのグループテストベクトル450をそれぞれ生成するように構成されるグループテストベクトル生成モジュールと、生成されたグループテストベクトル450に基づいてサブテストベクトル420を生成するように構成されるグループテストベクトル合成モジュールとをさらに含む。
【0071】
いくつかの実施例では、第1メモリ区分ブロックは、少なくとも1つのメモリの位置及びタイプに応じて、演算ユニットの少なくとも1つのメモリ420を少なくとも1つのグループに分けるように構成される第1メモリグループ区分モジュールを含む。
【0072】
いくつかの実施例では、第1メモリテストモジュールは、第1演算モジュール120-1の少なくとも1つの演算ユニット310の各々に対して、異なるメモリサブテストが並列的又は直列的に実行される対応するメモリサブテストを実行することにより、第1演算モジュール120-1に対してメモリテストを実行するように構成されるメモリサブテストモジュールを含む。
【0073】
いくつかの実施例では、装置500は、第3基準に従って、演算ユニット310の少なくとも1つのメモリ420を、少なくとも1つのグループに分けるように構成される第2メモリ区分モジュールをさらに含み、メモリサブテストモジュールは、分けられた少なくとも1つのグループの各々に対して、異なるメモリグループテストが並列的に実行される対応するメモリグループテストを実行することにより、メモリサブテストを実行することをさらに含む。
【0074】
いくつかの実施例では、第2メモリ区分モジュールは、少なくとも1つのメモリ420の位置及びタイプに応じて、演算ユニット310の少なくとも1つのメモリ420を少なくとも1つのグループに分けるように構成される第2メモリグループ区分モジュールを含む。
【0075】
図6は、本開示の実施例を実施するために使用され得る例示的な機器600の模式的ブロック図を示す。機器600は、
図1に示す画像処理機器130を実現するために用いられ得る。図に示するように、機器600は、読み取り専用メモリ(ROM)602に記憶されたコンピュータプログラム命令、又は記憶ユニット608からランダムアクセスメモリ(RAM)603にロードされたコンピュータプログラム命令に従って、様々な適切な動作及び処理を実行することができる中央処理装置(CPU)601を含む。RAM603には、機器600の動作に必要な種々のプログラムやデータが記憶されていてもよい。CPU601、ROM602及びRAM603は、バス604を介して互いに接続されている。入力/出力(I/O)インタフェース605もバス604に接続されている。
【0076】
I/Oインタフェース605には、機器600の複数のコンポーネントが接続されており、これらのコンポーネントは、キーボード、マウスなどの入力ユニット606;各種のディスプレイ、スピーカなどの出力ユニット607;磁気ディスク、光ディスクなどの記憶ユニット608;ネットワークカード、モデム、無線通信送受信機などの通信ユニット609を含む。通信ユニット609は、インターネットのようなコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して、機器600が他の機器と情報/データを交換することを可能にする。
【0077】
処理ユニット601は、上述した様々な方法及び処理、たとえば過程400を実行する。たとえば、いくつかの実施例では、過程200は、記憶ユニット608のような機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例では、コンピュータプログラムの一部又は全部を、ROM602及び/又は通信ユニット609を介して機器600にロード及び/又はインストールすることができる。コンピュータプログラムがRAM603にロードされ、CPU601によって実行される際、上述した過程400の1つ又は複数のステップを実行することができる。代替的に、他の実施例では、CPU601は、他の任意の適切な方式(たとえば、ファームウェアによって)過程400を実行するように構成されてもよい。
【0078】
本明細書で上述された機能は、1つ又は複数のハードウェア論理コンポーネントによって少なくとも部分的に実行されてもよい。たとえば、限定的ではないが、使用できる例示的なタイプのハードウェア論理コンポーネントには、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、複合プログラマブルロジックデバイス(CPLD)などが含まれる。
【0079】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせでプログラミングすることができる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供され、プログラムコードがプロセッサ又はコントローラによって実行されたときに、フローチャート及び/又はブロック図に規定された機能/動作を実行するようにすることができる。プログラムコードは、完全にマシン上で、部分的にマシン上で実行してもよく、独立したソフトウェアパッケージとして部分的にマシン上で、且つ部分的にリモートマシン上で実行してもよく、完全にリモートマシン又はサーバ上で実行してもよい。
【0080】
本開示の文脈では、機械読み取り可能な媒体は、命令実行システム、装置、又は機器によって使用されるために、又は命令実行システム、装置、又は機器と共に使用されるプログラムを含むか記憶することができる有形媒体とすることができる。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体的なシステム、装置又は機器、あるいはこれらの任意の適切な組み合わせを含むことができるが、これらに限定されるものではない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶機器、磁気記憶機器、又はこれらの任意の適切な組み合わせを含む。
【0081】
ここで記載されたシステム及び技術は、バックグラウンドコンポーネントを含むコンピューティングシステム(たとえば、データサーバとして)、又はミドルウェアコンポーネントを含むコンピューティングシステム(たとえば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(たとえば、ユーザがここで記載されたシステム及び技術の実施形態とインタラクションすることができるグラフィカル・ユーザ・インタフェース又はウェブ・ブラウザを有するユーザ・コンピュータ)、又はそのようなバックグラウンドコンポーネント、ミドルウェアコンポーネント、又はフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実施される。システムのコンポーネントは、任意の形式又は媒体のデジタルデータ通信(たとえば、通信ネットワーク)を介して相互に接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットが含まれる。
【0082】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いに離れており、一般的に通信ネットワークを介してインタラクションする。クライアント-サーバの関係は、対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生成される。
【0083】
さらに、各動作は特定の順序で図示されているが、これは、そのような動作が、図示されている特定の順序又は順番で実行されること、又は、図示されているすべての動作が、所望の結果を得るために実行されることが必要であることを意味するものと理解されるべきである。ある環境では、マルチタスク及び並列処理が有利である場合がある。同様に、上記の検討にはいくつかの具体的な実施の詳細が含まれているが、これらは、本開示の範囲を制限するものとして解釈すべきではない。別個の実施例の文脈で説明されたいくつかの特徴は、単一の形態において組み合わせて実現されてもよい。逆に、単一の形態の文脈で記述された様々な特徴は、複数の形態において、単独で、又は任意の適切なサブ組み合わせで実現されてもよい。
【0084】
この主題は、構造的特徴及び/又は方法の論理動作に特有の言語で説明されているが、添付の特許請求の範囲で限定された主題は、上記で説明された特定の特徴又は動作に限定されるとは限らないことを理解されたい。逆には、上記で説明された特定の特徴及び動作は、特許請求の範囲を実現する例示的な形態にすぎない。
なお、本願の出願当初の開示事項を維持するために、本願の出願当初の請求項1~21の記載内容を以下に追加する。
(請求項1)
チップ用のメモリテスト方法であって、前記チップは、少なくとも1つの前記メモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含み、前記方法は、
前記少なくとも1つの演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するステップと、
少なくとも1つの演算モジュールのうち第1演算モジュールとは異なる他の演算モジュールとは独立して、生成された第1テストベクトルを用いて、前記第1演算モジュールに対してメモリテストを実行するステップと
を含んでなる、チップ用のメモリテスト方法。
(請求項2)
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが第1基準を満たす場合、前記第1テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するステップと、
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが前記第1基準を満たさない場合、前記第2演算モジュールに対して、第2テストベクトルを生成し、少なくとも1つの演算モジュールのうちの他の演算モジュールとは独立して、前記第1テストベクトルとは異なる、生成された第2テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するステップと
をさらに含む、請求項1に記載の方法。
(請求項3)
前記第1基準は、前記第2演算モジュールが前記第1演算モジュールと同じ構造又は演算機能を有することである、請求項2に記載の方法。
(請求項4)
前記第1テストベクトルを生成するステップは、
前記演算モジュールのうちの1つの演算ユニットに対して、サブテストベクトルを生成するステップと、
前記第1演算モジュールのすべての演算ユニット間で前記サブテストベクトルを再利用することにより、第1テストベクトルを生成するステップと
を含む、請求項1に記載の方法。
(請求項5)
第2基準に従って、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるステップをさらに含み、
前記サブテストベクトルを生成するステップは、
分けられた前記少なくとも1つのグループの各々に対して、それぞれのグループテストベクトルをそれぞれ生成するステップと、
生成されたグループテストベクトルに基づいて、前記サブテストベクトルを生成するステップと
を含む、請求項4に記載の方法。
(請求項6)
前記第2基準に従って、前記演算ユニットの前記少なくとも1つのメモリを前記少なくとも1つのグループに分けるステップは、
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの少なくとも1つのメモリを前記少なくとも1つのグループに分けるステップを含む、請求項5に記載の方法。
(請求項7)
前記第1演算モジュールに対して前記メモリテストを実行するステップは、
前記第1演算モジュールの前記少なくとも1つの演算ユニットのうちの各々に対して、異なるメモリサブテストが並列的又は直列的に実行されるように、対応するメモリサブテストを実行することにより、前記第1演算モジュールに対して前記メモリテストを実行するステップを含む、請求項1に記載の方法。
(請求項8)
第3基準に従って、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるステップをさらに含み、前記各演算ユニットに対して、前記対応するメモリサブテストを実行するステップは、
分けられた少なくとも1つのグループの各々に対して、異なるメモリグループテストが並列的に実行されるように、対応するメモリグループテストを実行することにより、前記メモリサブテストを実行するステップを含む、請求項7に記載の方法。
(請求項9)
前記第3基準に従って、前記演算ユニットの前記少なくとも1つのメモリを前記少なくとも1つのグループに分けるステップは、
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを前記少なくとも1つのグループに分けるステップを含む、請求項8に記載の方法。
(請求項10)
チップ用のメモリテスト装置であって、
前記チップは、少なくとも1つの前記メモリを含む少なくとも1つの演算ユニットを含む複数の演算モジュールを含み、
前記装置は、
前記少なくとも1つの演算モジュールのうちの第1演算モジュールに対して、第1テストベクトルを生成するように構成される第1テストベクトル生成モジュールと、
少なくとも1つの演算モジュールのうち前記第1演算モジュールとは異なる他の演算モジュールとは独立して、生成された第1テストベクトルを用いて、前記第1演算モジュールに対してメモリテストを実行するように構成される第1メモリテストモジュールと
を含んでなる、チップ用のメモリテスト装置。
(請求項11)
前記他の演算モジュールのうちの第2演算モジュールと前記第1演算モジュールが第1基準を満たす場合、
前記第1テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するように構成される第2メモリテストモジュールをさらに含み、
前記他の演算モジュールのうちの前記第2演算モジュールと前記第1演算モジュールが前記第1基準を満たさない場合、
前記第2演算モジュールに対して、第2テストベクトルを生成するように構成される第2テストベクトル生成モジュールと、
少なくとも1つの演算モジュールのうちの他の演算モジュールとは独立して、前記第1テストベクトルとは異なる、生成された第2テストベクトルを用いて、前記第2演算モジュールに対してメモリテストを実行するように構成される第3メモリテストモジュールと をさらに含む、請求項10に記載の装置。
(請求項12)
前記第1基準は、前記第2演算モジュールが前記前記第1演算モジュールと同じ構造又は演算機能を有することである、請求項12に記載の装置。
(請求項13)
前記第1テストベクトル生成モジュールは、
前記演算モジュールのうちの1つの演算ユニットに対して、サブテストベクトルを生成するように構成されるサブテストベクトル生成モジュールと、
前記第1演算モジュールの全ての演算ユニット間で前記サブテストベクトルを再利用することにより、第1テストベクトルを生成するように構成されるサブテストベクトル再利用モジュールと
を含む、請求項10に記載の装置。
(請求項14)
第2基準に従って、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるように構成される第1メモリ区分ブロックをさらに含み、
前記サブテストベクトル生成モジュールは、
分けられた前記少なくとも1つのグループの各々に対して、それぞれのグループテストベクトルをそれぞれ生成するように構成されるグループテストベクトル生成モジュールと、
生成されたグループテストベクトルに基づいて、前記サブテストベクトルを生成するように構成されるグループテストベクトル合成モジュールと
を含む、請求項13に記載の装置。
(請求項15)
前記第1メモリ区分ブロックは、
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを前記少なくとも1つのグループに分けるように構成される第1メモリグループ区分モジュールを含む、請求項14に記載の装置。
(請求項16)
前記第1メモリテストモジュールは、
前記第1演算モジュールの前記少なくとも1つの演算ユニットの各々に対して、異なるメモリサブテストが並列的又は直列的に実行されるように、対応するメモリサブテストを実行することにより、前記第1演算モジュールに対して前記メモリテストを実行するように構成されるメモリサブテストモジュールを含む、請求項9に記載の装置。
(請求項17)
第3基準に従って、前記演算ユニットの前記少なくとも1つのメモリを少なくとも1つのグループに分けるように構成される第2メモリ区分モジュールをさらに含み、
前記メモリサブテストモジュールは、
分けられた少なくとも1つのグループの各々に対して、異なるメモリグループテストが並列的に実行されるように、対応するメモリグループテストを実行することにより、前記メモリサブテストを実行することをさらに含む、請求項16に記載の装置。
(請求項18)
前記第2メモリ区分モジュールは、
前記少なくとも1つのメモリの位置及びタイプに応じて、前記演算ユニットの前記少なくとも1つのメモリを前記少なくとも1つのグループに分けるように構成される第2メモリグループ区分モジュールを含む、請求項17に記載の装置。
(請求項19)
電子機器であって、
1つ又は複数のプロセッサと、
1つ又は複数のプロセッサによって実行される際、請求項1~9のいずれか一項に記載の方法を前記電子機器に実行させる1つ又は複数のプログラムを記憶するメモリと
を含んでなる電子機器。
(請求項20)
プロセッサによって実行される際、請求項1~9のいずれか一項に記載の方法を実現させるコンピュータプログラムが記憶されているコンピュータ可読記憶媒体。
(請求項21)
コンピュータプログラムであって、前記コンピュータプログラムがプロセッサによって実行される際、請求項1~9のいずれか一項に記載の方法を実現させる、コンピュータプログラム。