(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-24
(45)【発行日】2022-03-04
(54)【発明の名称】人工知能チップのテスト方法、装置、機器、及び記憶媒体
(51)【国際特許分類】
G01R 31/28 20060101AFI20220225BHJP
G06F 11/22 20060101ALI20220225BHJP
【FI】
G01R31/28 V
G01R31/28 Y
G06F11/22 605G
(21)【出願番号】P 2020085123
(22)【出願日】2020-05-14
【審査請求日】2020-05-14
(31)【優先権主張番号】201911420462.8
(32)【優先日】2019-12-31
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110002952
【氏名又は名称】特許業務法人鷲田国際特許事務所
(73)【特許権者】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
(72)【発明者】
【氏名】グオ ジユ
【審査官】小川 浩史
(56)【参考文献】
【文献】特表2013-531779(JP,A)
【文献】中国特許出願公開第109358993(CN,A)
【文献】RAHUL SINGHAL,“AI CHIP DFT TECHNIQUES FOR AGGRESSIVE TIME-TO-MARKET”,Mentor Graphics Corporation,2019年01月31日,pp. 1-10,http://s3.mentor.com/public_documents/whitepaper/resources/mentorpaper_104588.pdf
【文献】Tom Simon,“How to be Smart About DFT for AI Chips - SemiWiki”,2019年01月31日,https://semiwiki.com/eda/7984-how-to-be-smart-about-dft-for-ai-chips/
【文献】Rahul Singhal,“DFT THAT GETS AI CHIPS TO MARKET FASTER”,EVALUATION ENGINEERING,2019年07月,pp. 22-24,https://www.nxtbook.com/endeavor/evaluationengineering/july2019/index.php
【文献】Haiying Ma; Rui Guo; Quan Jing; Jing Han; Yu Huang; Rahul Singhal; Wu Yang; Xin Wen; Fanjin Meng,“A Case Study of Testing Strategy for AI SoC”,2019 IEEE International Test Conference in Asia (ITC-Asia),2019年09月03日,pp. 61-66,DOI: 10.1109/ITC-Asia.2019.00024
(58)【調査した分野】(Int.Cl.,DB名)
G01R 31/28-31/3193
G06F 11/22-11/277
(57)【特許請求の範囲】
【請求項1】
人工知能チップのテスト方法であって、対象人工知能チップは複数の同じ演算ユニットを含み、前記方法は、
前記対象人工知能チップのスケール情報を取得するステップと、
前記スケール情報に基づいて前記対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断するステップと、
前記演算ユニットアレイレベルのテスト条件が満たされていると決定する場合に、すべての前記演算ユニットを複数の同じ演算ユニットアレイに分割し、各前記演算ユニットアレイにそれぞれDFT(テスト容易化設計)テストを行うステップと、
前記演算ユニットアレイレベルのテスト条件が満たされていないと決定する場合に、各前記演算ユニットにそれぞれ前記DFTテストを行うステップと、を
含み、
前記スケール情報は、1つの演算ユニットにおけるトランジスタの数を含み、
前記スケール情報に基づいて前記対象人工知能チップが前記演算ユニットアレイレベルのテスト条件を満たすかどうかを判断する前記ステップは、
前記トランジスタの数がプリセットのスケール閾値より小さいかどうかを判断するステップと、
前記トランジスタの数が前記プリセットのスケール閾値より小さいと決定する場合に、前記演算ユニットアレイレベルのテスト条件が満たされていると決定するステップと、
前記トランジスタの数が前記プリセットのスケール閾値より大きい又は前記プリセットのスケール閾値と等しいと決定する場合に、前記演算ユニットアレイレベルのテスト条件が満たされていないと決定するステップと、を含むことを特徴とする、人工知能チップのテスト方法。
【請求項2】
すべての前記演算ユニットを前記複数の同じ演算ユニットアレイに分割する前記ステップは、
前記
トランジスタの数と前記演算ユニットの総数に基づいて1つの前記演算ユニットアレイにおける演算ユニットの数を決定するステップと、
前記演算ユニットの数に基づいてすべての前記演算ユニットを前記複数の同じ演算ユニットアレイに分割するステップと、を含むことを特徴とする、請求項
1に記載の方法。
【請求項3】
各前記演算ユニットアレイに第1のテストロジック回路がそれぞれ配置され、
各前記演算ユニットアレイにそれぞれ前記DFTテストを行う前記ステップは、
前記演算ユニットアレイに対応する第1のテストベクトルをそれぞれ同じであるように生成するステップと、
各前記演算ユニットアレイにそれぞれ前記DFTテストを行うために、前記第1のテストベクトルをそれぞれ各前記演算ユニットアレイに対応する前記第1のテストロジック回路に入力するステップと、
各前記演算ユニットアレイに対応するテスト結果を出力するステップと、を含むことを特徴とする、請求項1に記載の方法。
【請求項4】
前記第1のテストロジック回路は、第1のテストインタフェースを含み、
各前記演算ユニットアレイにそれぞれ前記DFTテストを行うために、前記第1のテストベクトルをそれぞれ各前記演算ユニットアレイに対応する前記第1のテストロジック回路に入力する前記ステップは、
各前記演算ユニットアレイに対する前記DFTテストを並列で実行させるために、各前記第1のテストインタフェースを介して対応する前記演算ユニットアレイの前記第1のテストロジック回路に前記第1のテストベクトルをブロードキャストするステップを含むことを特徴とする、請求項
3に記載の方法。
【請求項5】
各前記演算ユニットに第2のテストロジック回路がそれぞれ配置され、
各前記演算ユニットにそれぞれ前記DFTテストを行う前記ステップは、
前記演算ユニットに対応する第2のテストベクトルをそれぞれ同じであるように生成するステップと、
各前記演算ユニットにそれぞれ前記DFTテストを行うために、前記第2のテストベクトルをそれぞれ各前記演算ユニットに対応する前記第2のテストロジック回路に入力するステップと、
各前記演算ユニットに対応するテスト結果を出力するステップと、を含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記第2のテストロジック回路は、第2のテストインタフェースを含み、
各前記演算ユニットにそれぞれ前記DFTテストを行うために、前記第2のテストベクトルをそれぞれ各前記演算ユニットに対応する前記第2のテストロジック回路に入力する前記ステップは、
各前記演算ユニットに対する前記DFTテストを並列で実行させるために、各前記第2のテストインタフェースを介して対応する前記演算ユニットの前記第2のテストロジック回路に前記第2のテストベクトルをブロードキャストするステップを含むことを特徴とする請求項
5に記載の方法。
【請求項7】
各前記演算ユニットアレイにそれぞれ前記DFTテストを行う前記ステップの前に、さらに、
前記対象人工知能チップのRTL(レジスタ転送レベル)段階で前記第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストするステップと、
前記第1のプリセットのDFTロジック回路が前記テストに失敗したとき、前記対象人工知能チップの前記RTL段階で当該第1のプリセットのDFTロジック回路を修復するステップと、を含むことを特徴とする、請求項
3に記載の方法。
【請求項8】
各前記演算ユニットにそれぞれ前記DFTテストを行う前記ステップの前に、さらに、
前記対象人工知能チップのRTL段階で前記第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストするステップと、
前記第2のプリセットのDFTロジック回路が前記テストに失敗したとき、前記対象人工知能チップの前記RTL段階で当該第2のプリセットのDFTロジック回路を修復するステップと、を含むことを特徴とする、請求項
5に記載の方法。
【請求項9】
人工知能チップのテスト装置であって、対象人工知能チップは複数の同じ演算ユニットを含み、前記装置は、
前記対象人工知能チップのスケール情報を取得するためのスケール情報取得モジュールと、
前記スケール情報に基づいて前記対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断するためのテスト条件判断モジュールと、
前記演算ユニットアレイレベルのテスト条件が満たされていると決定する場合に、すべての前記演算ユニットを複数の同じ演算ユニットアレイに分割し、各前記演算ユニットアレイにそれぞれDFT(テスト容易化設計)テストを行うためのアレイテストモジュールと、
前記演算ユニットアレイレベルのテスト条件が満たされていないと決定する場合に、各前記演算ユニットにそれぞれ前記DFTテストを行うための演算ユニットテストモジュールと、を
含み、
前記スケール情報は前記演算ユニットにおけるトランジスタの数を含み、
前記テスト条件判断モジュールは、
前記トランジスタの数がプリセットのスケール閾値より小さいかどうかを判断すること、前記トランジスタの数が前記プリセットのスケール閾値より小さいと決定する場合に、前記演算ユニットアレイレベルのテスト条件が満たされていると決定すること、及び前記トランジスタの数が前記プリセットのスケール閾値より大きい又は前記プリセットのスケール閾値と等しいと決定する場合に、前記演算ユニットアレイレベルのテスト条件が満たされていないと決定することに用いられることを特徴とする、人工知能チップのテスト装置。
【請求項10】
すべての前記演算ユニットを前記複数の同じ演算ユニットアレイに分割する時、前記アレイテストモジュールは、
前記
トランジスタの数と前記演算ユニットの総数に基づいて1つの前記演算ユニットアレイにおける演算ユニットの数を決定すること、及び前記演算ユニットの数に基づいてすべての前記演算ユニットを前記複数の同じ演算ユニットアレイに分割することに用いられることを特徴とする、請求項
9に記載の装置。
【請求項11】
各前記演算ユニットアレイに第1のテストロジック回路がそれぞれ配置され、
各前記演算ユニットアレイにそれぞれ前記DFTテストを行う時、前記アレイテストモジュールは、
前記演算ユニットアレイに対応する第1のテストベクトルをそれぞれ同じであるように生成すること、各前記演算ユニットアレイにそれぞれ前記DFTテストを行うために、前記第1のテストベクトルをそれぞれ各前記演算ユニットアレイに対応する前記第1のテストロジック回路に入力すること、及び各前記演算ユニットアレイに対応するテスト結果を出力することに用いられることを特徴とする、請求項
9に記載の装置。
【請求項12】
前記第1のテストロジック回路は、第1のテストインタフェースを含み、
各前記演算ユニットアレイにそれぞれ前記DFTテストを行うために、前記第1のテストベクトルをそれぞれ各前記演算ユニットアレイに対応する前記第1のテストロジック回路に入力する時、前記アレイテストモジュールは、
各前記演算ユニットアレイに対する前記DFTテストを並列で実行させるために、各前記第1のテストインタフェースを介して対応する前記演算ユニットアレイの前記第1のテストロジック回路に前記第1のテストベクトルをブロードキャストするためのものであることを特徴とする、請求項
11に記載の装置。
【請求項13】
各前記演算ユニットに第2のテストロジック回路がそれぞれ配置され、
各前記演算ユニットにそれぞれ前記DFTテストを行うとき、前記演算ユニットテストモジュールは、
前記演算ユニットに対応する第2のテストベクトルをそれぞれ同じであるように生成すること、各前記演算ユニットにそれぞれ前記DFTテストを行うために、前記第2のテストベクトルをそれぞれ各前記演算ユニットに対応する前記第2のテストロジック回路に入力すること、及び各前記演算ユニットに対応するテスト結果を出力することに用いられることを特徴とする、請求項
9に記載の装置。
【請求項14】
前記第2のテストロジック回路は、第2のテストインタフェースを含み、
各前記演算ユニットにそれぞれ前記DFTテストを行うために、前記第2のテストベクトルをそれぞれ各前記演算ユニットに対応する前記第2のテストロジック回路に入力する時、前記演算ユニットテストモジュールは、
各演算ユニットに対する前記DFTテストを並列で実行させるために、各第2のテストインタフェースを介して対応する前記演算ユニットの前記第2のテストロジック回路に前記第2のテストベクトルをブロードキャストするためのものであることを特徴とする請求項
13に記載の装置。
【請求項15】
前記対象人工知能チップのRTL(レジスタ転送レベル)段階で前記第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストし、前記第1のプリセットのDFTロジック回路が前記テストに失敗したとき、前記対象人工知能チップの前記RTL段階で当該第1のプリセットのDFTロジック回路を修復するための第1の回路テスト修復モジュールをさらに含むことを特徴とする、請求項
11に記載の装置。
【請求項16】
前記対象人工知能チップのRTL段階で前記第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストし、前記第2のプリセットのDFTロジック回路が前記テストに失敗したとき、前記対象人工知能チップの前記RTL段階で当該第2のプリセットのDFTロジック回路を修復するための第2の回路テスト修復モジュールをさらに含むことを特徴とする、請求項
13に記載の装置。
【請求項17】
電子機器であって、
少なくとも1つのプロセッサ、及び
前記少なくとも1つのプロセッサに通信的接続しているメモリを含み、そのうち、
前記メモリは前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令が前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサが請求項1~請求項
8のいずれか1項に記載の方法を実行できることを特徴とする電子機器。
【請求項18】
コンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ命令はコンピュータに請求項1~請求項
8のいずれか1項に記載の方法を実行させるためのものであることを特徴とする非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、データ処理技術の分野に関し、特に人工知能技術に関する。
【背景技術】
【0002】
人工知能技術の成熟に伴い、人工知能チップ(略称AIチップ)も急速に発展している。大規模生産では、どのように適格ではないAIチップを迅速に排除し、AIチップのテストサイクルとコストを削減するかが増々重要になり、これらはいずれも、テスト容易化設計(英語は、Design for Test、略称DFT)と切り離せない。
【0003】
従来の技術において、AIチップに対してDFTテストをする際、依然として伝統的なチップのテスト方法を使用し、伝統的なチップは大型異種IPコアを備えることが多いため、伝統的なチップのDFTテストはチップレベル又は大型異種IPコアで行うことが多くなり、伝統的なチップのテスト時間も長くなる。これに対し、AIチップは伝統的なチップと異なる構造を持っている。AIチップには、AIアルゴリズムを処理するための大量の同じAI演算ユニットがあり、大量の同じAI演算ユニットがAIチップ全体の中核であり、AIチップは巨大なボリュームを持っている。
【0004】
したがって、従来の技術において、伝統的なチップを使用するテスト方法はもはやAIチップには適用できなくなり、伝統的なチップのテスト方法を使用してAIチップのテストをすることで、AIチップのテスト時間、コスト及びテスト消費電力が増加し、AIチップのテスト効率が低下する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願の実施例は、従来の技術において、伝統的なチップを使用するテスト方法はもはやAIチップには適用できなくなり、伝統的なチップのテスト方法を使用してAIチップのテストをすることで、AIチップのテスト時間、コスト及びテスト消費電力が増加し、AIチップのテスト効率が低下するという技術的課題を解決する人工知能チップのテスト方法、装置、機器、及び記憶媒体を提供する。
【課題を解決するための手段】
【0006】
第1の態様では、本願の実施例は、人工知能チップのテスト方法を提供し、対象人工知能チップは複数の同じ演算ユニットを含み、上記方法は、
対象人工知能チップのスケール情報を取得するステップと、上記スケール情報に基づいて上記対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断するステップと、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各上記演算ユニットアレイにそれぞれDFT(テスト容易化設計)テストを行い、演算ユニットアレイレベルのテスト条件が満たされていないと決定する場合、各上記演算ユニットにそれぞれDFTテストを行うステップと、を含む。
【0007】
本願の実施例において、人工知能チップの同じ演算ユニットアレイ又は演算ユニットをそれぞれテストし、各演算ユニットアレイ又は演算ユニットのテストロジック回路とテストベクトルが完全同じであることで、テストコストが低下し、かつ、各演算ユニット又は演算ユニットアレイにおけるトランジスタのスケールがいずれも小さいことで、テストベクトルのスケールも小さくなるため、テスト時間が大幅に削減され、テスト効率を向上させる。かつ、各演算ユニット又は演算ユニットアレイのDFTをロードするために必要なメモリコンピューティングストレージリソースも大幅に削減され、テスト消費電力が大幅に低減される。
【0008】
さらに、上記の方法において、上記スケール情報は演算ユニットにおけるトランジスタのスケールを含み、上記スケール情報に基づいて上記対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断する上記ステップは、
上記トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断するステップと、上記トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされていると決定するステップと、上記トランジスタのスケールが上記プリセットのスケール閾値より大きい又は上記プリセットのスケール閾値にイコールすると決定する場合、演算ユニットアレイレベルのテスト条件が満たされていないと決定するステップと、を含む。
【0009】
本願の実施例において、トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断し、トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、各演算ユニットのボリュームが極めて小さいということであり、演算ユニットアレイレベルのテスト条件が満たされていると決定し、複数の演算ユニットを集めて演算ユニットアレイとして形成し、演算ユニットアレイレベルのテストを行うことができる。トランジスタのスケールがプリセットのスケール閾値より大きい又はプリセットのスケール閾値と等しいと決定する場合、各演算ユニットのボリュームが比較的大きいということであり、演算ユニットアレイレベルのテスト条件は満たされないが、演算ユニットレベルのテスト条件が満たされていると決定し、演算ユニットレベルのテストを行う。演算ユニットアレイ又は演算ユニットのボリュームはいずれも単独テストの要件を満たすことができるようになり、テスト時間がさらに短縮される。
【0010】
さらに、上記の方法において、すべての演算ユニットを複数の同じ演算ユニットアレイに分割する上記ステップは、
上記トランジスタのスケールと演算ユニットの総数に基づいて上記演算ユニットアレイにおける演算ユニットの数を決定するステップと、上記演算ユニットの数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割するステップと、を含む。
【0011】
本願の実施例において、トランジスタのスケールと演算ユニットの総数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割することで、人工知能チップにおける演算ユニットを同じ演算ユニットアレイに均等に分割することができ、且つ、各演算ユニットアレイのボリュームが大きすぎないため、単独テストの要件を満たすことができ、さらに、テスト時間を短縮することができる。
【0012】
さらに、上記の方法において、各上記演算ユニットアレイに第1のテストロジック回路がそれぞれ配置され、
各上記演算ユニットアレイをそれぞれDFTテストする上記ステップは、
上記演算ユニットアレイに対応する第1のテストベクトルをそれぞれ同じであるように生成するステップと、各上記演算ユニットアレイにそれぞれDFTテストを行うために、上記第1のテストベクトルをそれぞれ各上記演算ユニットアレイに対応する第1のテストロジック回路に入力するステップと、各上記演算ユニットアレイに対応するテスト結果を出力するステップと、を含む。
【0013】
本願の実施例において、各演算ユニットアレイの第1のテストロジック回路と第1のテストベクトルが完全に同じであるため、各演算ユニットアレイに第1のテストロジック回路を配置し、且つ、同じ第1のテストベクトルを使用して各演算ユニットアレイをそれぞれテストし、テスト結果を出力することは、テストコストを大幅に削減する。
【0014】
さらに、上記の方法において、上記第1のテストロジック回路は、第1のテストインタフェースを含み、
各上記演算ユニットアレイにそれぞれDFTテストを行うために、上記第1のテストベクトルをそれぞれ各上記演算ユニットアレイに対応する第1のテストロジック回路に入力する上記ステップは、
各演算ユニットアレイに対するDFTテストを並列で実行させるために、各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に上記第1のテストベクトルをブロードキャストするステップを含む。
【0015】
本願の実施例において、第1のテストロジック回路に第1のテストインタフェースが含まれており、電子機器が各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に第1のテストベクトルをブロードキャストすることで、各演算ユニットアレイに対するDFTテストを同時に並列で実行させることができ、このため、AIチップのテスト時間が、単一の演算ユニットアレイのテスト時間にまで短縮され、テスト時間をさらに大幅に削減する。
【0016】
さらに、上記の方法において、各上記演算ユニットに第2のテストロジック回路がそれぞれ配置され、
各上記演算ユニットにそれぞれDFTテストを行う上記ステップは、
上記演算ユニットに対応する第2のテストベクトルをそれぞれ同じであるように生成するステップと、各上記演算ユニットにそれぞれDFTテストを行うために、上記第2のテストベクトルをそれぞれ各上記演算ユニットに対応する第2のテストロジック回路に入力するステップと、各上記演算ユニットに対応するテスト結果を出力するステップと、を含む。
【0017】
本願の実施例において、各演算ユニットの第2のテストロジック回路と第2のテストベクトルが完全同じであるため、各演算ユニットに第2のテストロジック回路を配置し、且つ、同じ第2のテストベクトルを使用して各演算ユニットをそれぞれテストし、テスト結果を出力することは、テストコストを大幅に削減する。
【0018】
さらに、上記の方法において、上記第2のテストロジック回路は、第2のテストインタフェースを含み、
各上記演算ユニットにそれぞれDFTテストを行うために、上記第2のテストベクトルをそれぞれ各上記演算ユニットに対応する第2のテストロジック回路に入力する上記ステップは、
各演算ユニットに対するDFTテストを並列で実行させるために、各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に上記第2のテストベクトルをブロードキャストするステップを含む。
【0019】
本願の実施例において、第2のテストロジック回路に第2のテストインタフェースが含まれており、電子機器が各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に第2のテストベクトルをブロードキャストすることで、各演算ユニットに対するDFTテストを同時に並列で実行させることができ、このため、AIチップのテスト時間が、単一の演算ユニットのテスト時間にまで短縮され、テスト時間をさらに大幅に削減する。
【0020】
さらに、上記の方法において、各上記演算ユニットアレイにそれぞれDFTテストを行う上記ステップの前に、さらに、
上記対象人工知能チップのRTL(レジスタ転送レベル)段階で上記第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストするステップと、上記第1のプリセットのDFTロジック回路がテストに失敗した場合、上記対象人工知能チップのRTL段階で当該第1のプリセットのDFTロジック回路を修復するステップと、を含む。
【0021】
本願の実施例において、演算ユニットアレイのDFTにおける第1のテストロジック回路の一部の第1のプリセットのDFTロジック回路は、対応するテストを早期に完了するために、AIチップ全体を完了してはじめて設計及びテストを開始するように待つ必要がなく、対象人工知能チップのRTL段階で設計及びテストを行うことができる。且つ、第1のプリセットのDFTロジック回路がテストに失敗した場合、第1のプリセットのDFTロジック回路を修正し、修正された第1のプリセットのDFTロジック回路を再テストするとき、DFT設定のステップとテストベクトルを生成するステップとの間で継続的に反復プロセスを行う必要がなく、テストベクトルを実行する前に引き続きテストすることができ、このような継続的な反復によるテスト時間の浪費を回避し、第1のプリセットのDFTロジック回路のテストと修復の時間を効果的に削減することができる。
【0022】
さらに、上記の方法において、各上記演算ユニットにそれぞれDFTテストを行う上記ステップの前に、
上記対象人工知能チップのRTL段階で上記第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストするステップと、上記第2のプリセットのDFTロジック回路がテストに失敗した場合、上記対象人工知能チップのRTL段階で当該第2のプリセットのDFTロジック回路を修復するステップと、を含む。
【0023】
本願の実施例において、演算ユニットのDFTにおける第2のテストロジック回路の一部の第2のプリセットのDFTロジック回路は、対応するテストを早期に完了するために、AIチップ全体を完了してはじめて設計及びテストを開始するように待つ必要がなく、対象人工知能チップのRTL段階で設計及びテストを行うことができる。且つ、第2のプリセットのDFTロジック回路がテストに失敗した場合、第2のプリセットのDFTロジック回路を修正し、修正された第2のプリセットのDFTロジック回路を再テストするとき、DFT設定のステップとテストベクトルを生成するステップとの間で継続的に反復プロセスを行う必要がなく、テストベクトルを実行する前に引き続きテストすることができ、このような継続的な反復によるテスト時間の浪費を回避し、第2のプリセットのDFTロジック回路のテストと修復の時間を削減することができる。
【0024】
第2の態様では、本願の実施例は、人工知能チップのテスト装置を提供し、対象人工知能チップは複数の同じ演算ユニットを含み、上記装置は、
対象人工知能チップのスケール情報を取得するためのスケール情報取得モジュールと、上記スケール情報に基づいて上記対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断するためのテスト条件判断モジュールと、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各上記演算ユニットアレイにそれぞれDFTテストを行うためのアレイテストモジュールと、演算ユニットアレイレベルのテスト条件が満たされていないと決定する場合、各上記演算ユニットにそれぞれDFTテストを行うための演算ユニットテストモジュールと、を含む。
【0025】
さらに、上記の装置において、上記スケール情報は演算ユニットにおけるトランジスタのスケールを含み、
上記テスト条件判断モジュールは、具体的に、
上記トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断すること、上記トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされていると決定すること、及び上記トランジスタのスケールが上記プリセットのスケール閾値より大きい又は上記プリセットのスケール閾値と等しいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされていないと決定することに用いられる。
【0026】
さらに、上記の装置において、すべての演算ユニットを複数の同じ演算ユニットアレイに分割する時、上記アレイテストモジュールは、具体的に、
上記トランジスタのスケールと演算ユニットの総数に基づいて上記演算ユニットアレイにおける演算ユニットの数を決定すること、及び上記演算ユニットの数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割することに用いられる。
【0027】
さらに、上記の装置において、各上記演算ユニットアレイに第1のテストロジック回路がそれぞれ配置され、
各上記演算ユニットアレイにそれぞれDFTテストを行うとき、上記アレイテストモジュールは、具体的に、
上記演算ユニットアレイに対応する第1のテストベクトルをそれぞれ同じであるように生成すること、各上記演算ユニットアレイにそれぞれDFTテストを行うために、上記第1のテストベクトルをそれぞれ各上記演算ユニットアレイに対応する第1のテストロジック回路に入力すること、及び各上記演算ユニットアレイに対応するテスト結果を出力することに用いられる。
【0028】
さらに、上記の装置において、上記第1のテストロジック回路は、第1のテストインタフェースを含み、
各上記演算ユニットアレイにそれぞれDFTテストを行うために、上記第1のテストベクトルをそれぞれ各上記演算ユニットアレイに対応する第1のテストロジック回路に入力する時、上記アレイテストモジュールは、具体的に、
各演算ユニットアレイに対するDFTテストを並列で実行させるために、各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に上記第1のテストベクトルをブロードキャストするためのものである。
【0029】
さらに、上記の装置において、各上記演算ユニットに第2のテストロジック回路がそれぞれ配置され、
各上記演算ユニットをそれぞれDFTテストする時、上記演算ユニットテストモジュールは、具体的に、
上記演算ユニットに対応する第2のテストベクトルをそれぞれ同じであるように生成すること、各上記演算ユニットにそれぞれDFTテストを行うために、上記第2のテストベクトルをそれぞれ各上記演算ユニットに対応する第2のテストロジック回路に入力すること、及び各上記演算ユニットに対応するテスト結果を出力することに用いられる。
【0030】
さらに、上記の装置において、上記第2のテストロジック回路は、第2のテストインタフェースを含み、
各上記演算ユニットにそれぞれDFTテストを行うために、上記第2のテストベクトルをそれぞれ各上記演算ユニットに対応する第2のテストロジック回路に入力する時、上記演算ユニットテストモジュールは、具体的に、
各演算ユニットに対するDFTテストを並列で実行させるために、各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に上記第2のテストベクトルをブロードキャストするためのものである。
【0031】
さらに、上記の装置において、さらに、
上記対象人工知能チップのRTL段階で上記第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストし、上記第1のプリセットのDFTロジック回路がテストに失敗した場合、上記対象人工知能チップのRTL段階で当該第1のプリセットのDFTロジック回路を修復するための第1の回路テスト修復モジュールを含む。
【0032】
さらに、上記の装置において、さらに、
上記対象人工知能チップのRTL段階で上記第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストし、上記第2のプリセットのDFTロジック回路がテストに失敗した場合、上記対象人工知能チップのRTL段階で当該第2のプリセットのDFTロジック回路を修復するための第2の回路テスト修復モジュールを含む。
【0033】
第3の態様では、本願の実施例は、少なくとも1つのプロセッサ、及び上記少なくとも1つのプロセッサに通信的接続しているメモリを含む電子機器を提供し、そのうち、
上記メモリは上記少なくとも1つのプロセッサによって実行可能な命令を記憶し、上記命令が上記少なくとも1つのプロセッサによって実行されることにより、上記少なくとも1つのプロセッサが第1の態様のいずれか1項に記載の方法を実行できるようにする。
【0034】
第4の態様では、本願の実施例は、コンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を提供し、上記コンピュータ命令は、上記コンピュータに第1の態様のいずれか1項に記載の方法を実行させるためのものである。
【0035】
第5の態様では、本願の実施例は、プログラムコードを含むコンピュータプログラムを提供し、コンピュータで上記コンピュータプログラムを実行する時、上記プログラムコードは第1の態様に記載の方法を実行する。
【図面の簡単な説明】
【0036】
図面は、本解決手段をよりよく理解するためのものであり、本願を限定するものではない。
【
図1】本願の実施例を実現できる人工知能チップのテスト方法の応用シーンの図である。
【
図2】本願の第1の実施例に基づいて提供する人工知能チップのテスト方法のフローチャートである。
【
図3】本願の第1の実施例に基づいて提供する人工知能チップのテスト方法において、分割された演算ユニットアレイの概略図である。
【
図4】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法のフローチャートである。
【
図5】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法におけるステップ203のフローチャートである。
【
図6】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法における演算ユニットアレイテスト構造の概略図である。
【
図7】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法におけるステップ204のフローチャートである。
【
図8】本願の第2の実施例に基づく電子機器と各演算ユニットアレイテスト構造との間の構造概略図である。
【
図9】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法における演算ユニットテスト構造の概略図である。
【
図10】本願の第2の実施例に基づいて提供する人工知能チップのテスト方法におけるステップ205のフローチャートである。
【
図11】本願の第2の実施例に基づく電子機器と各演算ユニットテスト構造との間の構造概略図である。
【
図12】従来の技術と本願の実施例における人工知能チップのテストフローを比較する概略図である。
【
図13】本願の第3の実施例に基づいて提供する人工知能チップのテスト装置の構造概略図である。
【
図14】本願の第4の実施例に基づいて提供する人工知能チップのテスト装置の構造概略図である。
【
図15】本願の実施例の人工知能チップのテスト方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0037】
以下は、理解を容易にするために、本願の実施例の様々な詳細を含む図面を参照して本願の例示的な実施例を説明し、それらは例示的ものにすぎないと見なされるべきである。したがって、当業者は、本願の範囲及び趣旨から逸脱することなく、本明細書に記載された実施例に対して様々な変更及び修正をすることができることを認識するはずである。同様に、以下の説明では、明瞭かつ簡潔にするために、周知の機能及び構造の説明を省略している。
【0038】
本願の技術的解決手段を明瞭に理解するために、以下は従来の技術と本願に係る用語を解釈する。
【0039】
人工知能チップについて、AIアクセラレータ又はコンピューティングカードとも呼ばれ、即ち、人工知能アプリケーションにおける大量のコンピューティングタスクを処理するための専用モジュールである。CPUは依然として他の非コンピューティングタスクを担当し、AIチップは主にGPU、FPGA、及びASICなどに分けられる。AIチップでは、アルゴリズムロジックユニットはAIチップ全体の中核であり、通常、AIチップ全体を占める割合が高い。AIアルゴリズムロジックユニットは、通常、同じ演算ユニットで構成される。さらに、AIチップは巨大なボリュームを持っているため、AIチップには大量の同じ演算ユニットがある。
【0040】
伝統的なチップについて、伝統的なチップは、例えば、消費電力制御モジュール、 通信インタフェースモジュール、ビデオ分析モジュールなど複数の大型異種IPコアを備えることが多い。
【0041】
テスト容易化設計について、(英語は、Design for Test、略称DFT)集積回路設計技術であり、主なタスクは、ロジック、置換コンポーネントの追加、ピンの追加などの方法によって特定のテストロジック回路を設計すると同時に、テスト対象の回路の構造を調整し、回路のテスト可能性、即ち、制御性と観測可能性を向上させる。これらの構造を設計段階で追加することにより、回路がより複雑になり、コストが増加するように見えるが、多くの場合、テスト段階で時間とコストを節約できる。
【0042】
本願の技術的解決手段を明瞭に理解するために、まずは従来の技術でのAIチップのテスト方法を詳細に紹介する。従来の技術において、AIチップに対するDFTテストは、通常、チップレベルのテストである。チップレベルのテストを行う場合、テストマシンは、スキャンチェーンを形成するための直列に接続されている演算ユニットのテスト1回分の数に制限があるため、まず、AIチップの演算ユニット間に1つ1つのスキャンチェーンを挿入し、スキャンチェーンごとに接続する演算ユニットの数が異なる。そして、スキャンチェーンごとにテストロジック回路を配置し、且つ、スキャンチェーンごとに対応するテストベクトルを生成し、スキャンチェーンごとに対応するテストロジック回路とテストベクトルも異なる。スキャンチェーンごとに対応するテストベクトルをテストマシンによってAIチップに送信し、対応するスキャンチェーンのテストロジック回路に入力し、当該スキャンチェーンでの演算ユニットテストを完了する。スキャンチェーンごとでの演算ユニット数が多いため、テストベクトルのスケールが通常、大きく、テスト時間が非常に長く、且つ、スキャンチェーンごとでのテストロジック回路がいずれも異なり、テストベクトルも異なるため、テストコストが増加する。DFT全体をロードするために必要なメモリコンピューティングストレージリソースも非常に大きく、テストの消費電力も制限される。
【0043】
AIチップの構造は伝統的なチップと異なり、AIチップは、巨大なボリュームを持っているとともに、大量の同じ演算ユニットがあり、AIチップを占める大量の同じ演算ユニットの割合が大半であるため、AIチップの構造の特徴を利用し、且つ、従来の技術におけるAIチップのテスト方法の技術的課題に対し、本願の実施例に係るAIチップのテスト方法を提案した。
【0044】
以下は本願の実施例に係る人工知能チップのテスト方法の応用シーンを紹介する。
図1に示すように、本願の実施例に係る人工知能チップのテスト方法に対応する応用シーンには、電子機器と対象人工知能チップがある。電子機器はテストマシンであってもよい。電子機器は対象人工知能チップと通信することができ、対象人工知能チップのスケール情報を取得することができる。対象人工知能チップには複数の同じ演算ユニットがあるため、スケール情報に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断し、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各演算ユニットアレイにそれぞれDFTテストを行う。演算ユニットアレイレベルのテスト条件が満たされていないと決定する場合、各演算ユニットにそれぞれDFTテストを行う。人工知能チップのDFTテストを完了する。各演算ユニットアレイにそれぞれDFTテストを行った後に、各演算ユニットアレイのテスト結果を決定する。または、各演算ユニットにそれぞれDFTテストを行った後に、各演算ユニットのテスト結果を決定し、テストに失敗した演算ユニットアレイ又は演算ユニットを修復する。人工知能チップの同じ演算ユニットアレイ又は演算ユニットをそれぞれテストし、各演算ユニットアレイ又は演算ユニットのテストロジック回路とテストベクトルが完全同じであることで、テストコストが低下し、且つ、各演算ユニット又は演算ユニットアレイにおけるトランジスタのスケールがいずれも小さいことで、テストベクトルのスケールも小さくなるため、テスト時間が大幅に削減され、テスト効率を向上させる。且つ、各演算ユニット又は演算ユニットアレイのDFTをロードするために必要なメモリコンピューティングストレージリソースも大幅に削減され、テスト消費電力が大幅に低減される。
【0045】
以下は図面を参照しながら本願の実施例を具体的に説明する。
【0046】
実施例1
図2は、本願の第1の実施例に基づいて提供する人工知能チップのテスト方法のフローチャートであり、
図2に示すように、本願の実施例の実行主体は人工知能チップのテスト装置であり、当該人工知能チップのテスト装置は電子機器に集積されてもよく、電子機器はテストマシンであってもよい。本実施例に係る人工知能チップのテスト方法は以下のいくつかのステップを含む。
【0047】
ステップ101において、対象人工知能チップのスケール情報を取得する。
【0048】
本実施例において、対象人工知能チップはテストの必要がある人工知能チップである。対象人工知能チップには、複数の同じ演算ユニットが含まれている。
【0049】
本実施例において、対象人工知能チップの設計の初期段階では、対象人工知能チップのスケール情報を記憶機器に記憶することができる。当該記憶機器はコンピュータ、Uディスク、磁気ディスクなどの機器であってもよく、記憶機器にアクセスすることによって対象人工知能チップのスケール情報を取得する。
【0050】
スケール情報は、演算ユニットの総数、各演算ユニットにおけるトランジスタのスケールなどを含んでもよい。
【0051】
演算ユニットにおけるトランジスタは半導体デバイスであり、演算ユニットの基本的な構成パーツである。
【0052】
ステップ102において、スケール情報に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断する。
【0053】
1つの選択的実施形態として、本実施例において、演算ユニットの総数に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断することができる。演算ユニットの総数が少ない場合、各演算ユニットをそれぞれDFTテストすることができ、演算ユニットアレイレベルのテスト条件が満たされなかったと決定する。演算ユニットの総数が多い場合、演算ユニットアレイレベルのテスト条件が満たされていると決定し、各演算ユニットアレイをそれぞれDFTテストすることができる。
【0054】
演算ユニットの総数を決定する時、演算ユニットの総数をプリセットの数の閾値に比較する方法で決定することができる。演算ユニットの総数がプリセットの数の閾値より小さい場合、演算ユニットの総数が少ないと決定する。演算ユニットの総数がプリセットの数の閾値より大きい又はプリセットの数の閾値と等しい場合、演算ユニットの総数が多いと決定する。
【0055】
他の選択的実施形態として、本実施例において、演算ユニットにおけるトランジスタのスケールに基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断してもよい。トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、各演算ユニットのボリュームが小さいということであり、演算ユニットアレイレベルのテスト条件が満たされていると決定し、各演算ユニットアレイをそれぞれDFTテストすることができる。トランジスタのスケールがプリセットのスケール閾値より大きい又はプリセットのスケール閾値と等しいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされなかったと決定し、各演算ユニットをそれぞれDFTテストすることができる。
【0056】
スケール情報に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断する方法はまた、他の方法であってもよいと理解でき、本実施例でそれを限定しない。
【0057】
ステップ103において、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各演算ユニットアレイをそれぞれDFTテストする。
【0058】
本実施例において、すべての演算ユニットを複数の同じ演算ユニットアレイに分割する時、演算ユニットの総数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割し、即ち、各演算ユニットアレイに含まれる演算ユニットの数が同じであり、または、他の方法を使用してすべての演算ユニットを複数の同じ演算ユニットアレイに分割することができ、本実施例でそれを限定しない。
【0059】
図3に示すように、
図3に64個の演算ユニットがあり、演算ユニットを16個の演算ユニットアレイに分割し、各演算ユニットアレイが4つの演算ユニットを含む。
図3では、囲まれた4つの演算ユニットは1つの演算ユニットアレイである。
【0060】
本実施例において、各演算ユニットアレイをそれぞれDFTテストする時、各演算ユニットアレイのDFTテストを完了するために、各演算ユニットアレイにテストロジック回路を配置する必要があり、テストロジック回路にスキャンチェーンがあり、スキャンチェーンを演算ユニットアレイに挿入し、且つ、演算ユニットアレイのテストベクトルを生成してもよい。
【0061】
各演算ユニットアレイが同じであるため、配置されたテストロジック回路、スキャンチェーン、及び生成されたテストベクトルはいずれも同じであると理解できる。
【0062】
説明に値するものとして、各演算ユニットアレイをそれぞれDFTテストする時、1つの演算ユニットアレイのDFTテストを完了した後に、もう1つの演算ユニットアレイのテストをしてもよく、または、演算ユニットアレイを異なるグループに分けて、1つのグループの演算ユニットアレイのDFTテストを並列で完了した後に、もう1つのグループの演算ユニットアレイのDFTテストを並列で実行させてもよく、又は、すべての演算ユニットアレイのDFTテストを同時に並列で実行させてもよく、本実施例でそれを限定しない。
【0063】
ステップ104において、演算ユニットアレイレベルのテスト条件が満たされなかったと決定する場合、各演算ユニットをそれぞれDFTテストする。
【0064】
本実施例において、演算ユニットアレイレベルのテスト条件が満たされなかったと決定する場合、演算ユニットレベルのテスト条件が満たされているということであり、各演算ユニットをそれぞれDFTテストする。
【0065】
各演算ユニットをそれぞれDFTテストする時、各演算ユニットのDFTテストを完了するために、各演算ユニットにテストロジック回路を配置する必要があり、テストロジック回路にスキャンチェーンがあり、スキャンチェーンを演算ユニットに挿入し、且つ、演算ユニットのテストベクトルを生成してもよい。
【0066】
本実施例において、各演算ユニットが同じであるため、演算ユニットに配置したテストロジック回路、スキャンチェーン、及び生成されたテストベクトルはいずれも同じである。
【0067】
同様に、各演算ユニットをそれぞれDFTテストする時、1つの演算ユニットのDFTテストを完了した後に、もう1つの演算ユニットのテストをしてもよく、または、すべての演算ユニットのDFTテストを同時に並列で実行させてもよく、本実施例でそれを限定しない。
【0068】
演算ユニットアレイに対応するテストロジック回路と演算ユニットに対応するテストロジック回路は異なり、演算ユニットアレイに対応するテストベクトルと演算ユニットに対応するテストベクトルも異なると理解できる。
【0069】
本実施例に係る人工知能チップのテスト方法は、対象人工知能チップのスケール情報を取得し、スケール情報に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断し、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各演算ユニットアレイをそれぞれDFTテストし、演算ユニットアレイレベルのテスト条件が満たされなかったと決定する場合、各演算ユニットをそれぞれDFTテストする。人工知能チップの同じ演算ユニットアレイ又は演算ユニットをそれぞれテストし、各演算ユニットアレイ又は演算ユニットのテストロジック回路とテストベクトルが完全同じであることで、テストコストが低下し、且つ、各演算ユニット又は演算ユニットアレイにおけるトランジスタのスケールがいずれも小さいことで、テストベクトルのスケールも小さくなるため、テスト時間が大幅に削減され、テスト効率を向上させる。且つ、各演算ユニット又は演算ユニットアレイのDFTをロードするために必要なメモリコンピューティングストレージリソースも大幅に削減され、テスト消費電力が大幅に低減される。
【0070】
実施例2
図4は、本願の第2の実施例に基づいて提供する人工知能チップのテスト方法のフローチャートであり、
図4に示すように、本実施例に係る人工知能チップのテスト方法は、本願の実施例1に係る人工知能チップのテスト方法に基づき、ステップ101~ステップ104をさらに詳細化することである。本実施例に係る人工知能チップのテスト方法は以下のステップを含む。
【0071】
ステップ201において、対象人工知能チップの演算ユニットにおけるトランジスタのスケールを取得する。
【0072】
さらに、本実施例において、トランジスタのスケールに基づいて演算ユニットアレイレベルのテストを行うか又は演算ユニットレベルのテストを行うかを決定するために、人工知能チップにおける演算ユニットのトランジスタのスケールを直接に取得する。
【0073】
ステップ202において、トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断し、そうである場合、ステップ203を実行し、そうではない場合、ステップ205を実行する。
【0074】
プリセットのスケール閾値の数値は限定されず、複数回のテストに基づいてプリセットのスケール閾値を決定することができる。
【0075】
本実施例において、トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断し、トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、各演算ユニットのボリュームが極めて小さいということであり、演算ユニットアレイレベルのテスト条件が満たされていると決定し、複数の演算ユニットを集めて演算ユニットアレイとして形成し、演算ユニットアレイレベルのテストを行うことができる。トランジスタのスケールがプリセットのスケール閾値より大きい又はプリセットのスケール閾値と等しいと決定する場合、各演算ユニットのボリュームが比較的大きいということであり、演算ユニットアレイレベルのテスト条件が満たされなかったが、演算ユニットレベルのテスト条件が満たされていると決定し、演算ユニットレベルのテストを行う。
【0076】
本実施例において、演算ユニットにおけるトランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断する方法を使用して演算ユニットアレイのテスト条件が満たされるかどうかを判断することにより、演算ユニットアレイ又は演算ユニットのボリュームはいずれも単独テストの要件を満たすことができるようになり、テスト時間がさらに短縮される。
【0077】
ステップ203において、すべての演算ユニットを複数の同じ演算ユニットアレイに分割する。
【0078】
1つの選択的実施形態として、
図5に示すように、ステップ203は以下のステップを含む。
【0079】
ステップ2031において、トランジスタのスケールと演算ユニットの総数に基づいて演算ユニットアレイにおける演算ユニットの数を決定する。
【0080】
さらに、本実施例において、まず、演算ユニットの総数に基づいてすべての演算ユニットの分割可能な候補の演算ユニットアレイの数を決定し、即ち、候補の演算ユニットアレイの数が演算ユニットの総数を割り切れ、そして、演算ユニットのトランジスタのスケールに基づいて候補の演算ユニットアレイの数から演算ユニットアレイの数を最終的に決定する。
【0081】
演算ユニットのトランジスタのスケールに基づいて候補の演算ユニットアレイの数から演算ユニットアレイの数を最終的に決定する時、各演算ユニットアレイにおけるトランジスタのスケールの合計がプリセットの最大のスケール値より小さいであるように確保する必要がある。各演算ユニットアレイにおけるトランジスタのスケールの合計が大きすぎないようにする。
【0082】
プリセットの最大スケール値がプリセットのスケール閾値より大きいが、具体的な数値は限定されず、複数回のテストの後に設定してもよい。
【0083】
ステップ2032において、演算ユニットの数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割する。
【0084】
本実施例において、各演算ユニットアレイに含まれる演算ユニット数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割し、且つ、1つのエリア付近の複数の演算ユニットを1つの演算ユニットアレイに分割することができる。
【0085】
本実施例において、トランジスタのスケールと演算ユニットの総数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割することは、人工知能チップにおける演算ユニットを同じ演算ユニットアレイに均等に分割することができ、且つ、各演算ユニットアレイのボリュームが大きすぎないようにし、単独テストの要件を満たすことができ、さらに、テスト時間を短縮することができる。
【0086】
ステップ204において、各演算ユニットアレイをそれぞれDFTテストする。
【0087】
図6に示すように、各演算ユニットアレイに第1のテストロジック回路がそれぞれ配置されている。第1のテストロジック回路は即ち、演算ユニットアレイをテストするテストロジック回路である。第1のテストロジック回路には、第1のテストインタフェース、第1の制御ロジック回路、少なくとも1つの第1のレジスタ、第1のスキャンチェーンなどが含まれてもよい。第1のテストロジック回路は対応する演算ユニットアレイに接続する。第1のスキャンチェーンは演算ユニットアレイにおける各演算ユニットに接続することができる。
【0088】
1つの選択的実施形態として、
図7に示すように、本実施例において、ステップ204は以下のステップを含む。
【0089】
ステップ2041において、演算ユニットアレイに対応する第1のテストベクトルを生成する。
【0090】
演算ユニットアレイに対応するテストベクトルが第1のテストベクトルであり、各演算ユニットアレイに対応する第1のテストベクトルが同じである。
【0091】
本実施例において、各演算ユニットアレイが完了する必要のある各機能と第1のテストロジック回路に基づいて第1のテストベクトルを生成することができ、第1のテストベクトルが各演算ユニットアレイを全方位的にテストできるようにし、最高のテストカバー率を達成する。
【0092】
ステップ2042において、各演算ユニットアレイをそれぞれDFTテストするために、第1のテストベクトルをそれぞれ各演算ユニットアレイに対応する第1のテストロジック回路に入力する。
【0093】
1つの選択的実施形態として、本実施例において、ステップ2042は具体的に、
各演算ユニットアレイに対するDFTテストを並列で実行させるために、各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に第1のテストベクトルをブロードキャストすることである。
【0094】
本実施例において、
図8に示すように、電子機器とAIチップとの間に共有バスを配置することができ、共有バスがそれぞれ、各第1のテストインタフェースに接続する。具体的に、各演算ユニットアレイをDFTテストする時、第1のクロックに、共有バスによって各第1のテストインタフェースに対応する演算ユニットアレイにおける第1のテストロジック回路の第1のレジスタに正しいデータをブロードキャストすることができる。第1のテストベクトルを共有バスに送信し、続いて第2のクロックに、共有バスによって、各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路にブロードキャストすることができる。各演算ユニットアレイの第1のテストロジック回路を介して当該第1のテストベクトルを並列で処理した後に、各テストデータをそれぞれ得て、各テストデータを対応する正しいデータに比較する。テストデータが対応する正しいデータに一致する場合、当該演算ユニットアレイがDFTテストに成功したと決定し、そうではない場合、当該演算ユニットアレイがDFTテストに成功しなかったと決定する。
【0095】
本実施例において、第1のテストロジック回路に第1のテストインタフェースが含まれており、電子機器が各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に第1のテストベクトルをブロードキャストすることで、各演算ユニットアレイに対するDFTテストを同時に並列で実行させることができ、このため、AIチップのテスト時間が、単一の演算ユニットアレイのテスト時間にまで短縮され、テスト時間をさらに大幅に削減する。
【0096】
ステップ2043において、各演算ユニットアレイに対応するテスト結果を出力する。
【0097】
本実施例において、第1のテストロジック回路には、対応する演算ユニットアレイに対応するテスト結果を出力するための第1の出力インタフェースがさらに含まれてもよい。テスト結果は、テストに成功したかどうかの結果を含んでもよく、テストに失敗した場合、当該演算ユニットアレイの故障を診断するためのテストデータを含んでもよい。
【0098】
ステップ205において、各演算ユニットをそれぞれDFTテストする。
【0099】
図9に示すように、各演算ユニットに第2のテストロジック回路がそれぞれ配置される。第2のテストロジック回路は即ち、演算ユニットをテストするためのテストロジック回路である。第2のテストロジック回路に、第2のテストインタフェース、第2の制御ロジック回路、少なくとも1つの第2のレジスタ、第2のスキャンチェーンなどが含まれてもよい。第2のテストロジック回路は対応する演算ユニットに接続する。第2のスキャンチェーンは演算ユニットにおけるトランジスタに接続することができる。
【0100】
1つの選択的実施形態として、
図10に示すように、ステップ205は以下のステップを含む。
【0101】
ステップ2051において、演算ユニットに対応する第2のテストベクトルを生成する。
【0102】
演算ユニットに対応するテストベクトルが第2のテストベクトルであり、各演算ユニットに対応する第2のテストベクトルが同じである。
【0103】
本実施例において、各演算ユニットが完了する必要のある各機能と第2のテストロジック回路に基づいて第2のテストベクトルを生成することができ、第2のテストベクトルが各演算ユニットを全方位的にテストできるようにし、最高のテストカバー率を達成する。
【0104】
ステップ2052において、各演算ユニットをそれぞれDFTテストするために、第2のテストベクトルをそれぞれ各演算ユニットに対応する第2のテストロジック回路に入力する。
【0105】
1つの選択的実施形態として、本実施例において、ステップ2052は具体的に、
各演算ユニットに対するDFTテストを並列で実行させるために、各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に第2のテストベクトルをブロードキャストすることを含む。
【0106】
本実施例において、
図11に示すように、電子機器とAIチップとの間に共有バスを配置することができ、共有バスがそれぞれ、各第2のテストインタフェースに接続する。具体的に各演算ユニットをDFTテストする時、第1のクロックに、共有バスによって各第2のテストインタフェースに対応する演算ユニットにおける第2のテストロジック回路の第2のレジスタに正しいデータをブロードキャストすることができる。第2のクロックに、共有バスによって共有バスに第2のテストベクトルを送信した後に、各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路にブロードキャストすることができ、各演算ユニットの第2のテストロジック回路を介して当該第2のテストベクトルを並列で処理した後に、各テストデータをそれぞれ得て、各テストデータを対応する正しいデータに比較し、テストデータが対応する正しいデータに一致する場合、当該演算ユニットがDFTテストに成功したと決定し、そうではない場合、当該演算ユニットがDFTテストに成功しなかったと決定する。
【0107】
本実施例において、第2のテストロジック回路に第2のテストインタフェースが含まれており、電子機器が各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に第2のテストベクトルをブロードキャストすることで、各演算ユニットに対するDFTテストを同時に並列で実行させることができる。このため、AIチップのテスト時間が、単一の演算ユニットのテスト時間にまで短縮され、テスト時間をさらに大幅に削減する。
【0108】
ステップ2053において、各演算ユニットに対応するテスト結果を出力する。
【0109】
本実施例において、第2のテストロジック回路には、対応する演算ユニットに対応するテスト結果を出力するための第2の出力インタフェースがさらに含まれてもよい。テスト結果はテストに成功したかどうかの結果を含んでもよく、テストに失敗した場合、また、当該演算ユニットの故障を診断するためのテストデータを含んでもよい。
【0110】
図12の上の部分に示すように、従来の技術において、AIチップに対するDFTテストは、AIチップの設計を完了し、AIチップに対する機能検証に合格した後に、AIチップの統合段階で行われることである。AIチップに対するDFTテストはAIチップ全体を完了してからはじめて行うことができるため、AIチップのテストはAIチップ全体のプロセスの後半で行われ、AIチップのテスト時間を遅延させ、且つ、AIチップの機能を更新する場合、AIチップのDFTテストも改めて行う必要があり、したがって、DFTテストサイクルがAIチップ全体の設計開発の進捗状況に制限される。加えて、AIチップ全体のDFT設計を行う際、最高のテストカバー率を達成するためには、DFT設定のステップとテストベクトルを生成するステップとの間で継続的反復する必要がある。反復プロセスはAIチップレベル全体で行われる必要があるため、このような反復は時間を大量消耗してしまう。
【0111】
したがって、本実施例において、
図12の下の部分に示すように、各演算ユニットアレイをそれぞれDFTテストする場合、ステップ204の前に、さらに、
対象人工知能チップのRTL段階で第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストし、第1のプリセットのDFTロジック回路がテストに失敗した場合、対象人工知能チップのRTL段階で当該第1のプリセットのDFTロジック回路を修復するステップを含む。
【0112】
第1のプリセットのDFTロジック回路は、テストプロトコル内部共同テストアクショングループIJTAGロジック回路、メモリの内蔵セルフテスト回路、バウンダリースキャン回路、オンチップクロックコントローラー、トリガーの制御不能な非同期設定/リセット回路、トリガーのスキャン可能性のためのクロック分析回路、メモリ周辺のテスト用の制御ロジック回路、IJTAGネットワークのスキャンテスト用の制御ロジック回路などを含んでもよい。
【0113】
具体的に、本実施例において、人工知能チップにおける演算ユニットの機能設計は通常、チップ設計の初期段階で安定できるため、対応するテストを早期に完了するために、AIチップ全体を完了してはじめて設計及びテストを開始するように待つ必要がなく、対応する演算ユニットアレイのDFTにおける第1のテストロジック回路の一部の第1のプリセットのDFTロジック回路は対象人工知能チップのRTL段階で設計及びテストを行うことができる。
【0114】
本実施例において、対象人工知能チップのRTL段階で各第1のプリセットのDFTロジック回路をテストする方法が、従来の技術における統合段階で各第1のプリセットのDFTロジック回路をテストする方法と異なるところは、第1のプリセットのDFTロジック回路がテストに失敗した場合、第1のプリセットのDFTロジック回路を修正し、修正された第1のプリセットのDFTロジック回路を再テストする時、DFT設定のステップとテストベクトルを生成するステップとの間で継続的に反復プロセスを行う必要がなく、テストベクトルを実行する前に引き続きテストすることができ、このような継続的な反復によるテスト時間の浪費を回避することである。
図12の上下2つの部分を比較すると、第1のプリセットのDFTロジック回路のテスト及び修復の時間は、従来の技術のテスト及び修復の時間より明らかに短いとわかる。
【0115】
同様に、各演算ユニットをそれぞれDFTテストする場合、ステップ205の前に、また、
対象人工知能チップのRTL段階で第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストし、第2のプリセットのDFTロジック回路がテストに失敗した場合、対象人工知能チップのRTL段階で当該第2のプリセットのDFTロジック回路を修復するステップを含む。
【0116】
第2のプリセットのDFTロジック回路はさらに、テストプロトコルIJTAGロジック回路、メモリの内蔵セルフテスト回路、バウンダリースキャン回路、オンチップクロックコントローラー、トリガーの制御不能な非同期設定/リセット回路、トリガーのスキャン可能性のためのクロック分析回路、メモリ周辺のテスト用の制御ロジック回路、IJTAGネットワークのスキャンテスト用の制御ロジック回路などを含んでもよい。
【0117】
具体的に、本実施例において、人工知能チップにおける演算ユニットの機能設計は通常、チップ設計の初期段階で安定できるため、対応するテストを早期に完了するために、AIチップ全体を完了してはじめて設計及びテストを開始するように待つ必要がなく、対応する演算ユニットのDFTにおける第2のテストロジック回路の一部の第2のプリセットのDFTロジック回路は対象人工知能チップのRTL段階で設計及びテストを行うことができる。
【0118】
第2のプリセットのDFTロジック回路のテストと修復の原理は演算ユニットアレイにおける第1のプリセットのDFTロジック回路のテスト及び修復の原理に類似し、ここでは、1つずつ繰り返して説明しない。
【0119】
本実施例において、対応するテストを早期に完了するために、AIチップ全体を完了してはじめて設計及びテストを開始するように待つ必要がなく、第1のプリセットのDFTロジック回路と第2のプリセットのDFTロジック回路は対象人工知能チップのRTL段階で設計及びテストを行うことができ、且つ、第1のプリセットのDFTロジック回路又は第2のプリセットのDFTロジック回路がテストに失敗した場合、第1のプリセットのDFTロジック回路又は第2のプリセットのDFTロジック回路を修正し、修正された第1のプリセットのDFTロジック回路又は第2のプリセットのDFTロジック回路を再テストする時、DFT設定のステップとテストベクトルを生成するステップとの間で継続的に反復プロセスを行う必要がなく、テストベクトルを実行する前に引き続きテストすることができ、このような継続的な反復によるテスト時間の浪費を回避し、第1のプリセットのDFTロジック回路と第2のプリセットのDFTロジック回路のテストと修復の時間を効果的に削減することができる。
【0120】
【0121】
実施例3
図13は、本願の第3の実施例に基づいて提供する人工知能チップのテスト装置の構造概略図であり、
図13に示すように、本実施例に係る人工知能チップのテスト装置は電子機器内にある。対象人工知能チップは複数の同じ演算ユニットがあり、当該人工知能チップのテスト装置1300は、スケール情報取得モジュール1301、テスト条件判断モジュール1302、アレイテストモジュール1303及び演算ユニットテストモジュール1304を含む。
【0122】
スケール情報取得モジュール1301は、対象人工知能チップのスケール情報を取得するためのものである。テスト条件判断モジュール1302は、スケール情報に基づいて対象人工知能チップが演算ユニットアレイレベルのテスト条件を満たすかどうかを判断するためのものである。アレイテストモジュール1303は、演算ユニットアレイレベルのテスト条件が満たされていると決定する場合、すべての演算ユニットを複数の同じ演算ユニットアレイに分割し、各演算ユニットアレイをそれぞれDFTテストするためのものである。演算ユニットテストモジュール1304は、演算ユニットアレイレベルのテスト条件が満たされなかったと決定する場合、各演算ユニットをそれぞれDFTテストするためのものである。
【0123】
本実施例に係る人工知能チップのテスト装置は、
図2に示すような方法の実施例に係る技術的解決手段を実行することができ、その実現原理と技術的効果は
図2に示すような方法の実施例に類似し、ここでは、1つずつ繰り返して説明しない。
【0124】
実施例4
図14は、本願の第4の実施例に基づいて提供する人工知能チップのテスト装置の構造概略図であり、
図14に示すように、本実施例に係る人工知能チップのテスト装置1400は、本願の第3の実施例に係る人工知能チップのテスト装置1300に基づき、また、第1の回路テスト修復モジュール1401と第2の回路テスト修復モジュール1402を含む。
【0125】
さらに、スケール情報は演算ユニットにおけるトランジスタのスケールを含み、
テスト条件判断モジュール1302は、具体的に、
トランジスタのスケールがプリセットのスケール閾値より小さいかどうかを判断すること、トランジスタのスケールがプリセットのスケール閾値より小さいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされていると決定すること、及びトランジスタのスケールがプリセットのスケール閾値より大きい又はプリセットのスケール閾値と等しいと決定する場合、演算ユニットアレイレベルのテスト条件が満たされなかったと決定することに用いられる。
【0126】
さらに、すべての演算ユニットを複数の同じ演算ユニットアレイに分割する時、アレイテストモジュール1303は、具体的に、
トランジスタのスケールと演算ユニットの総数に基づいて演算ユニットアレイにおける演算ユニットの数を決定すること、及び演算ユニットの数に基づいてすべての演算ユニットを複数の同じ演算ユニットアレイに分割することに用いられる。
【0127】
さらに、各演算ユニットアレイに第1のテストロジック回路がそれぞれ配置される。
【0128】
各演算ユニットアレイをそれぞれDFTテストする時、アレイテストモジュール1303は、具体的に、
演算ユニットアレイに対応する第1のテストベクトルをそれぞれ同じであるように生成すること、各演算ユニットアレイをそれぞれDFTテストするために、第1のテストベクトルをそれぞれ各演算ユニットアレイに対応する第1のテストロジック回路に入力すること、及び各演算ユニットアレイに対応するテスト結果を出力することに用いられる。
【0129】
さらに、第1のテストロジック回路は、第1のテストインタフェースを含む。
【0130】
各演算ユニットアレイをそれぞれDFTテストするために、第1のテストベクトルをそれぞれ各演算ユニットアレイに対応する第1のテストロジック回路に入力する時、アレイテストモジュール1303は、具体的に、
各演算ユニットアレイに対するDFTテストを並列で実行させるために、各第1のテストインタフェースを介して対応する演算ユニットアレイの第1のテストロジック回路に第1のテストベクトルをブロードキャストするためのものである。
【0131】
さらに、各演算ユニットに第2のテストロジック回路がそれぞれ配置される。
【0132】
各演算ユニットをそれぞれDFTテストする時、演算ユニットテストモジュール1304は、具体的に、
演算ユニットに対応する第2のテストベクトルをそれぞれ同じであるように生成すること、各演算ユニットをそれぞれDFTテストするために、第2のテストベクトルをそれぞれ各演算ユニットに対応する第2のテストロジック回路に入力すること、及び各演算ユニットに対応するテスト結果を出力することに用いられる。
【0133】
さらに、第2のテストロジック回路は、第2のテストインタフェースを含む。
【0134】
各演算ユニットをそれぞれDFTテストするために、第2のテストベクトルをそれぞれ各演算ユニットに対応する第2のテストロジック回路に入力する時、演算ユニットテストモジュール1304は、具体的に、
各演算ユニットに対するDFTテストを並列で実行させるために、各第2のテストインタフェースを介して対応する演算ユニットの第2のテストロジック回路に第2のテストベクトルをブロードキャストするためのものである。
【0135】
さらに、第1の回路テスト修復モジュール1401は、対象人工知能チップのRTL段階で第1のテストロジック回路における少なくとも1つの第1のプリセットのDFTロジック回路をテストし、第1のプリセットのDFTロジック回路がテストに失敗した場合、対象人工知能チップのRTL段階で当該第1のプリセットのDFTロジック回路を修復するためのものである。
【0136】
さらに、第2の回路テスト修復モジュール1402は、対象人工知能チップのRTL段階で第2のテストロジック回路における少なくとも1つの第2のプリセットのDFTロジック回路をテストし、第2のプリセットのDFTロジック回路がテストに失敗した場合、対象人工知能チップのRTL段階で当該第2のプリセットのDFTロジック回路を修復するためのものである。
【0137】
本実施例に係る人工知能チップのテスト装置は
図4~
図5、
図7、
図10に示すような方法の実施例に係る技術的解決手段を実行することができ、その実現原理と技術的効果は
図4~
図5、
図7、
図10に示すような方法の実施例に類似し、ここでは、1つずつ繰り返して説明しない。
【0138】
本願の実施例に基づき、本願はまた、電子機器と可読記憶媒体を提供する。
【0139】
図15に示すように、
図15は、本願の実施例に基づく人工知能チップのテスト方法の電子機器のブロック図である。電子機器は、ラップトップコンピューター、デスクトップコンピューター、ワークベンチ、テストマシン、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピューター、その他の適切なコンピュータなど、様々な形のデジタルコンピューターである。電子機器はまた、パーソナルデジタル処理、セルラー電話、スマートフォン、ウェアラブルデバイス、その他の類似のコンピューティング機器など、様々な形のモバイルデバイスを表すこともできる。本明細書で示すコンポーネント、それらの接続と関係、及びそれらの機能は例示的なものにすぎず、且つ、本明細書で説明及び/又は請求する本願の実現を制限することを意図するものではない。
【0140】
図15に示すように、当該電子機器は、1つ又は複数のプロセッサ1501、メモリ1502、及び各コンポーネントを接続するためのインタフェースを含み、前記インタフェースは、高速インタフェースと低速インタフェースを含む。各コンポーネントは、異なるバスを使用して相互に接続され、且つ、通用マザーボードにインストールし、または、必要に応じて他の方法でインストールできる。プロセッサは、メモリ内又はメモリ上に記憶され、外部入力/出力装置(例えば、インタフェースに結合された表示デバイス)でGUIのグラフィック情報を表示するための命令を含む電子装置内で実行される命令を処理することができる。他の実施形態において、必要に応じて、複数のプロセッサ及び/又は複数のバスは、複数のメモリと一緒に使用されてもよい。同様に、複数の電子機器に接続することができ、各機器がそれぞれ、(例えば、サーバアレイとして、1つのグループのブレードサーバとして、または、マルチプロセッサシステムとして作用する)必要な操作を一部提供する。
図15では、1つのプロセッサ1501を例とする。
【0141】
メモリ1502は即ち、本願で提供する非一時的コンピュータ可読記憶媒体である。そのうち、メモリは、少なくとも1つのプロセッサによって実行可能な命令を記憶し、少なくとも1つのプロセッサが本願で提供する人工知能チップのテスト方法を実行するようにする。本願の非一時的コンピュータ可読記憶媒体は、コンピュータに本願で提供する人工知能チップのテスト方法を実行するためのコンピュータ命令を記憶する。
【0142】
メモリ1502は、非一時的コンピュータ可読記憶媒体として、例えば、本願の実施例における人工知能チップのテスト方法に対応するプログラム命令/モジュール(例えば、
図13に示すようなスケール情報取得モジュール1301、テスト条件判断モジュール1302、アレイテストモジュール1303及び演算ユニットテストモジュール1304)など非一時的ソフトウェアプログラム、非一時的コンピュータ実行可能なプログラム及びモジュールを記憶するためのものである。プロセッサ1501は、メモリ1502に記憶されている非一時的ソフトウェアプログラム、命令及びモジュールを実行することにより、サーバの様々な機能アプリケーション及びデータ処理を実行し、即ち、上記方法の実施例における人工知能チップのテスト方法を実現する。
【0143】
メモリ1502は、ストレージプログラム領域およびストレージデータ領域を含んでもよく、ストレージプログラム領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、
図15の電子機器の使用に従って作成されたデータなどを記憶することができる。また、メモリ1502は、高速ランダムアクセスメモリを含んでもよく、また、例えば、少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイス、または、他の非一時的ソリッドステートストレージデバイスなどの非一時的メモリを含んでもよい。いくつかの実施例において、メモリ1502は、プロセッサ1501に対してリモートで配置されたメモリを選択的に含んでもよく、これらのリモートメモリは、ネットワークを介して
図15の電子機器に接続され得る。上記ネットワークの実例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びそれらの組み合わせを含むが、それらに限定されない。
【0144】
図15の電子機器はまた、入力装置1503と出力装置1504を含んでもよい。プロセッサ1501、メモリ1502、入力装置1503及び出力装置1504はバス又は他の方法を介して接続することができ、
図15では、バスを介して接続することを例とする。
【0145】
入力装置1503は、入力された音声、数字又は文字情報を受信し、
図15における電子機器のユーザ設定及び機能制御に関連するキー信号の入力を呼び起こすことができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、インディケータロッド、1つ又は複数のマウスボタン、トラックボール、操縦ハンドルなどの入力装置であってもよい。出力装置1504は、音声再生デバイス、表示デバイス、補助照明装置(例えば、LED)及び触感フィードバック装置(例えば、振動モータ)等を含んでもよい。当該表示デバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ及びプラズマディスプレイを含んでもよいが、それらに限定されない。いくつかの実施形態において、表示デバイスはタッチスクリーンであってもよい。
【0146】
本明細書に記載のシステムと技術の各種の実施形態は、デジタル電子回路、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせで実現されてもよい。これら様々な実施形態は、1つ又は複数のコンピュータプログラムで実施することを含んでもよく、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け、又は汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置から、データと命令を受信し、且つ、当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置にデータと命令を送信することができる。
【0147】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械語命令を含み、且つ、アドバンスプロセス及び/又はオブジェクト指向型プログラミング言語、及び/又はアセンブリ言語/機械語を用いて、これらコンピューティングプログラムを実装することができる。例えば、本明細書で使用する用語「機械可読媒体」と「コンピュータ可読媒体」は、機械語命令及び/又はデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラムに係るプロダクト、デバイス、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジック装置(PLD))のことを指し、機械可読信号としての機械語命令を受信する機械可読媒体を含む。用語「機械可読信号」は、機械語命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号のことを指す。
【0148】
ユーザとのインタラクションを提供するために、本明細書に記載のシステムと技術は、情報をユーザにディスプレイするためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニターなど)、及びキーボードとポインティングデバイス(例えば、マウス又はトラックボール)を有するコンピュータで実施されてもよく、当該キーボードと当該ポインティングデバイスを通じ、ユーザが、入力をコンピュータに提供することができる。これ以外の他の種類の装置も、ユーザとのインタラクションを提供するためのものとして、用いられることができ、例えば、ユーザに提供されるフィードバックが任意の形の感覚フィードバック(視覚フィードバック、聴覚フィードバック、又は触感フィードバックなど)であってもよく、且つ、任意の形(音入力、音声入力又は触感入力を含む)をもって、ユーザからの入力を受信することができる。
【0149】
本明細書に記載のシステムと技術は、バックグラウンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとして作用する)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、図形ユーザインタフェース、又はネットワークブラウザを持つユーザコンピュータなどであり、ユーザが、当該図形ユーザインタフェース、又は当該ネットワークブラウザを通じて本明細書に記載のシステムと技術の実施形態とインタラクションをする)、又はこの種のバックグラウンドコンポーネント、ミドルウェアコンポーネント、又はフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実装されてよい。任意の形又は媒体のデジタルデータ通信(例えば、通信ネットワーク)を通じてシステムのコンポーネントを互いに接続させることができる。通信ネットワークは、例示的に、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを含む。
【0150】
コンピューティングシステムは、クライアントとサーバを含んでよい。クライアントとサーバは、互いに遠く離れており、通信ネットワークを通じてインタラクションをするのが一般的である。対応するコンピュータで実行され、また、互いにクライアント―サーバという関係を有するコンピュータプログラムによって、クライアントとサーバとの関係を築き上げる。
【0151】
本願の実施例に基づく技術的解決手段は、人工知能チップの同じ演算ユニットアレイ又は演算ユニットをそれぞれテストし、各演算ユニットアレイ又は演算ユニットのテストロジック回路とテストベクトルが完全同じであることで、テストコストが低下し、且つ、各演算ユニット又は演算ユニットアレイにおけるトランジスタのスケールがいずれも小さいことで、テストベクトルのスケールも小さくなるため、テスト時間が大幅に削減され、テスト効率を向上させる。且つ、各演算ユニット又は演算ユニットアレイのDFTをロードするために必要なメモリコンピューティングストレージリソースも大幅に削減され、テスト消費電力が大幅に低減される。
【0152】
理解すべきものとして、上記に示した様々な形のフローを用いて、ステップを改めて並べ替えたり、増加したり、又は削除したりしてもよい。例えば、本願に記載の各ステップは、本願で開示された技術的解決手段によって期待されている結果さえ実現されれば、並列で実行されたり、順に実行されたり、又は順番を変えて実行されたりしてもよく、本明細書に限定されない。
【0153】
上記具体的な実施形態は、本出願の保護範囲に対する制限を構成しない。当業者であれば、設計要求と他の要素に基づいた修正、組み合わせ、下位組み合わせ及び代替が可能であると理解すべきである。本出願の主旨と原則の範囲内に行われるすべての修正、同等置換及び改善が、いずれも本出願の保護範囲に含まれる。