TW202305596A - 具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統 - Google Patents

具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統 Download PDF

Info

Publication number
TW202305596A
TW202305596A TW111125339A TW111125339A TW202305596A TW 202305596 A TW202305596 A TW 202305596A TW 111125339 A TW111125339 A TW 111125339A TW 111125339 A TW111125339 A TW 111125339A TW 202305596 A TW202305596 A TW 202305596A
Authority
TW
Taiwan
Prior art keywords
test
alu
data
memory
output
Prior art date
Application number
TW111125339A
Other languages
English (en)
Inventor
湯瑪士 席亞
丹尼許 艾墨沙拉
Original Assignee
美商聖巴諾瓦系統公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商聖巴諾瓦系統公司 filed Critical 美商聖巴諾瓦系統公司
Publication of TW202305596A publication Critical patent/TW202305596A/zh

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1208Error catch memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C2029/5602Interface to device under test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

IC包含設置成兩個或更多個子陣列的處理器單元陣列。子陣列具有測試產生器、將測試向量套用至資料路徑的多工器以及測試結果輸出。該子陣列包含一個或多個處理器單元。測試結果壓縮器與資料路徑的輸出耦合,並壓縮輸出資料以獲得測試特徵,並將其儲存在特徵暫存器中。該特徵暫存器從子陣列外部是可讀的。該資料路徑包含一個或多個記憶體以及一個或多個ALU。該測試資料經過完整的資料路徑(包含記憶體及ALU)。在測試期間,覆蓋ALU控制暫存器,以確保可測試的資料路徑。

Description

具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統
所揭露的技術關於積體電路的內建自我測試(built-in self-test,BIST)。特別地,它關於包含一個或多個模組的處理器晶片的測試,該一個或多個模組包含具有記憶體及ALU的資料路徑。 [ 相互參照 ]
本案主張2021年7月9日申請之發明名稱為「用於CGRA的邏輯BIST及功能測試(Logic BIST and Functional Test for a CGRA)」的美國第63/220,266號臨時專利申請案的利益。出於一切目的,優先權申請案茲以引用方式併入本文。
本案主張2021年10月14日申請之發明名稱為「用於具有組合式記憶體及邏輯的處理器單元之內建自我測試(Built-In Self-Test for Processor Unit with Combined Memory and Logic)」的美國第17/501,969號專利申請案的優先權,出於一切目的,其茲以引用方式併入本文。
本案主張2021年10月15日申請之發明名稱為「具有全路徑BIST的處理器單元陣列(Array of Processor Units with Full-Pathway BIST)」的美國第17/503,227號專利申請案的優先權,出於一切目的,其茲以引用方式併入本文。
本案與同時申請之發明名稱為「具有組合式記憶體、邏輯及內建自我測試之處理器單元(A Processor Unit with Combined Memory, Logic, and BIST)」的台灣專利申請案相關,出於一切目的,其茲以引用方式併入本文。
出於一切目的,以下內容亦以引用方式併入,如同在本文中充分地闡述一般:
Prabhakar等人,「Plasticine:用於平行圖樣的可重新配置架構(A Reconfigurable Architecture for Parallel Patterns)」,ISCA '17,2017年6月24~28日,加拿大安大略省多倫多;以及
Shah等人,「可重新配置資料處理器的配置負載(Configuration Load of a Reconfigurable Data Processor)」,美國第10,831,507號專利號,於2020年11月10日公告。
本章節討論的標的不應僅因在本章節被提及而被當然地認為是先前技術。類似地,本章節中提到的問題或與作為背景提供的主題相關聯的問題不應假定已在先前技術中事先認識到。本章節中的主題僅代表不同的方法,它們本身亦可對應至所請求保護之技術的實現。
將多個處理器組合在單個晶粒上的積體電路(例如,用於人工智慧或圖形處理的積體電路)係用最先進的半導體製程製造的。這樣的過程總是給IC設計者帶來新的挑戰,包含在將完成的產品運送給客戶之前測試其正確的功能。傳統上,數位IC藉由使用自動測試圖樣產生(ATPG)進行測試,其將ATPG測試向量分布在IC上的掃描鏈中,將測試向量從外部測試器傳輸至邏輯中的掃描正反器,並將測試結果從掃描正反器傳輸回外部測試機器。測試向量及測試結果可被壓縮以使介面更有效率。測試著重於檢測固定故障,涵蓋範圍(即,即可達性及可觀察性)在90%以上被認為是足夠的。此外,積體電路可包含多個用於內建自我測試(built-in self-test,BIST)之電路,其專用於特定區塊。這些包含記憶體(記憶體BIST或MBIST)、其他標準化電路及一些邏輯(邏輯BIST或LBIST)。BIST顯著降低了對外部測試器的依賴以及測試IC的成本,其與測試器測試IC所需的時間成正比。BIST亦可在生產後使用,從而生命關鍵型應用中的IC可在每次啟動時進行自我測試。
邏輯BIST產生相對大量虛擬隨機測試向量並將其應用於掃描鏈,以高速壓縮獲得的結果,並將壓縮的結果與預編譯的壓縮結果進行比較,以檢測任何差異(即錯誤)。然而,LBIST面臨挑戰。虛擬隨機測試向量會建立在正常操作中不使用的路徑(虛假路徑),且可能檢測到虛假路徑上的故障。因此浪費了好的IC。LBIST亦可能由於測試期間中活動增加而產生額外的熱量,而這在正常操作中是不會遭遇到。額外的熱量會導致時序違反(timing violation),從而導致功能故障。增加的活動亦可能導致正常操作期間中不會遭遇到的串擾問題。另一個問題是LBIST無法控制隨意位元(don't-care bit)。儘管通常使用ATPG的測試涵蓋範圍隨著測試向量的數量大致上線性增長(直到它接近漸近線),而針對LBIST,測試涵蓋範圍僅大致上呈對數增長,且漸近線可能低於使用ATPG所獲得的漸近線。
最快的數位電路無法接受因正反器使用ATPG或LBIST向量進行掃描測試的減速拖累,且可能非掃描測試所能涵蓋的。針對這些情況,可開發功能測試來直接測試電路或區塊的正確功能。適度地使用功能測試,因為它們的開發消耗大量工程時間,而生產測試可能需要耗費大量測試器的時間。
處理器晶片通常使用ATPG針對邏輯進行測試,而MBIST用於記憶體。算術邏輯單元(arithmetic logic unit,ALU)執行許多不同的操作(對兩個輸入數值的集合)。ALU可具有的內部狀態數量可能非常多,以及ATPG掃描測試被認為是達成良好涵蓋範圍的唯一實際解決方案。
然而,與MBIST向量的插入及MBIST結果的擷取相關的邏輯會給掃描測試(ATPG或LBIST)產生問題,包含不可觀測的介面邏輯或正常操作中未使用的陰影邏輯(shadow logic)。此外,採用先進半導體製程製造的大型處理器晶片顯示出比基於對固定故障及速度相關機制(其應以高速測試來發現)之掃描測試涵蓋範圍所預期之更多的故障。認為造成這種差異的缺陷可能包含(1)橋接(短路)、(2)開路(缺少連接),(3)固定向量的再收斂邏輯的缺陷,(4)稱為非邏輯橋接的高電阻性短路,(5)電阻性開路以及(6)高速向量的耦合故障。捕獲這些缺陷的一種方法是功能測試,其具有上述缺點。另一種稱為「n-檢測(n-detect)」,以n種不同的方式檢測缺陷,如同它為固定故障一樣。然而,在ATPG上應用n-檢測會使測試成本增加n倍。
在第一態樣中,所揭露技術的實現提供了一種包含處理器單元陣列的系統。該系統包含兩個或更多個處理器單元子陣列。各子陣列具有測試圖樣產生器、將測試向量套用至資料路徑輸入的電路(例如,多工器)以及測試結果輸出。子陣列被配置以輸出測試結果。該資料路徑可包含多個平行資料通道。子陣列可包含一個或多個處理器單元。資料路徑的輸出與測試結果壓縮器耦合,該壓縮器壓縮資料路徑輸出訊號以獲得測試特徵。該測試結果包含該測試特徵。該測試特徵可儲存在特徵暫存器中,該特徵暫存器可透過測試結果輸出(且可能透過測試介面)從該子陣列外部被讀取。資料路徑可包含一個或多個記憶體以及一個或多個ALU。測試向量被寫入至記憶體中的位址,且記憶體資料被從記憶體位址讀取以在該資料路徑的其餘部分中進行處理。ALU可包含SIMD。該子陣列包含:ALU控制暫存器,以操縱ALU的操作功能;以及測試控制暫存器,以在測試期間覆蓋該ALU控制暫存器。
在第二態樣中,所揭露技術的實現提供了一種系統,該系統包含處理器單元陣列,該處理器單元陣列包含兩個或更多個處理器單元。各處理器單元包含:測試圖樣產生器;將來自該測試圖樣產生器的測試向量套用至資料路徑的資料輸入之電路;以及測試結果輸出;其中該處理器單元被配置以在測試結果輸出處輸出測試結果。該資料路徑可包含多個平行資料通道。處理器單元包含測試結果壓縮器,其與該資料路徑的輸出耦合,以從資料路徑輸出訊號中獲得測試特徵。該測試結果包含該測試特徵。該測試特徵可儲存在特徵暫存器中,該特徵暫存器可透過測試結果輸出(且可能透過測試介面)從該處理器單元外部被讀取。資料路徑可包含一個或多個記憶體以及一個或多個ALU。測試向量被寫入至記憶體中的位址,且記憶體資料被從記憶體位址讀取以在該資料路徑的其餘部分中進行處理。ALU可包含SIMD。該處理器單元包含:ALU控制暫存器,以操縱ALU的操作功能;以及測試控制暫存器,以在測試期間覆蓋該ALU控制暫存器。
在申請專利範圍、實施方式及圖式中描述了所揭露之技術的特定態樣。
術語
AGCU:位址產生與合併單元(Address generation and coalescing unit)。
ALU:算術邏輯單元(arithmetic logic unit)。
ATPG:自動測試圖樣產生(automatic test pattern generation)。
BIST:內建自我測試(built-in self-test)。
CGRA:粗粒度可重新配置架構。
CPU:中央處理器(central processing unit)、資料路徑與控制單元。
資料路徑:執行資料處理操作之功能單元、暫存器及匯流排的集合。功能單元可包含記憶體、ALU、乘法器等。
LFSR:線性反饋移位暫存器(linear-feedback shift register)。
MISR:多輸入特徵暫存器(Multiple-input signature register)。
PCU:圖樣計算單元(Pattern compute unit)。
PMU:圖樣記憶體單元(Pattern memory unit)。
處理器:處理資訊(資料及/或訊號)的電子電路。
SIMD:單指令多資料。 介紹
CGRA中的可配置單元中的資料路徑例如可包含邏輯電路、記憶體及ALU。ALU功能可由ALU控制電路因應資料流程(data flow)架構中的配置檔案或位元檔案,或者因應控制流程(control flow)架構中的指令週期中的指令來配置。ALU可為或包含一個或多個用於執行平行操作的SIMD。多個互連的可配置單元可組成深度神經網路,其適用於可能由人工智慧所增強或實現的廣泛功能。由於大尺寸的CGRA及其他處理器晶片係使用現代製程,傳統的生產測試方法已不能充分且成本效益地發現幾乎所有的功能缺陷。記憶體BIST未能充分地涵蓋資料路徑的若干相關部分。高涵蓋範圍掃描測試仍然不能充分發現所有缺陷。ATPG只能發現大多數固定故障,且n-檢測ATPG掃描測試非常昂貴。邏輯BIST有許多挑戰,且會導致錯誤拒絕(false reject)。
所揭露技術之多個實現提供一種測試可配置單元及其他處理器單元的新穎方式。該等實現為可配置單元配備了一個測試控制器或BIST控制器,其用於測試從輸入至輸出的資料路徑(即使非常寬),且可提供針對記憶體的測試及針對ALU與其他邏輯的測試。測試可為確定性的(針對記憶體)及/或虛擬隨機的(針對邏輯)。BIST控制器確保資料路徑處於與正常操作類似的狀態,從而使邏輯測試成為使用產生的測試而非設計的測試之準功能測試。BIST控制器亦控制輸出資料的壓縮,以產生測試特徵(外部測試器可將其與預編譯特徵(precompiled signature)進行比較)。使用所產生的測試提供n-檢測的優勢,而無需相關聯的成本。 實現 具有組合式記憶體、邏輯及內建自我測試之處理器單元
以下詳細說明參考係參考圖式。例示性實現的描述係為了說明所揭露之技術,而不是限制其範圍,其範圍由申請專利範圍界定。所屬技術領域中具有通常知識者能瞭解以下描述的多種等效變化。
圖1繪示諸如在CGRA中使用的處理器單元100。處理器單元100可藉由使用諸如位元檔案(bit file)的配置資料進行配置,並且包含記憶體110、ALU 140及ALU控制電路150(其控制ALU 140的運作)。資料從輸入資料匯流排190通過區塊及中間資料匯流排流向輸出資料匯流排198。輸入資料匯流排190可攜帶用於記憶體110的位址資訊及讀/寫控制線,以及用於記憶體110的資料。輸入資料匯流排190可很寬,且包含多個平行資料通道。記憶體輸出資料流過中間匯流排192並進入ALU 140。ALU 140可對從其中間匯流排192接收的資料執行許多操作。ALU操作的類型由ALU控制電路150控制。
處理器單元100更包含測試介面160(例如,JTAG埠),其接收測試指令及測試資料,並返回測試結果。測試介面160控制MBIST控制器170,其可自主地測試記憶體(且在許多情況下修復一些缺陷位置),以及可將ATPG向量發送至掃描鏈中,並從掃描鏈返回測試結果。此為處理器單元的範例,其包含測試圖樣產生器;電路(MBIST控制器170),用以將來自測試圖樣產生器的測試向量套用至資料路徑的資料輸入;以及測試結果輸出(測試介面160),被配置以在測試結果輸出處輸出測試結果。MBIST係一種相當有效的記憶體測試解決方案,而ATPG係一種高效且低功率的解決方案,其輕易地達成對邏輯電路中的固定故障之相對較高的涵蓋範圍。
圖2繪示另一處理器單元200的方塊圖,諸如可能在多處理器晶片中使用的。在此架構中,存在兩個輸入路徑,且各輸入路徑可具有自己的資料匯流排。處理器單元200可使用諸如位元檔案的配置資料進行配置。處理器單元200包含記憶體210、邏輯電路220、多工器230、ALU 240及ALU控制電路250。輸入資料匯流排290可攜帶用於記憶體210的位址資訊及讀/寫控制線,以及用於記憶體210的資料。輸入資料匯流排290可很寬,且包含多個平行資料通道。輸入資料匯流排294可攜帶用於邏輯電路220的資料。邏輯電路220可包含組合邏輯、正反器、暫存器及其他元件。記憶體210透過中間匯流排292將其輸出資料傳輸至多工器230,且邏輯電路220透過中間匯流排296將其輸出資料傳輸至多工器230。多工器230從中間匯流排292或中間匯流排296中選擇資料,並透過中間匯流排297將資料傳輸至ALU 240。ALU 240提供其輸出資料於輸出資料匯流排298上。
處理器單元200更包含測試介面260(例如,JTAG埠)及MBIST控制器270,它們提供與圖1中的測試介面160及MBIST控制器170相同的功能。儘管測試介面160控制用於ALU 140及ALU控制電路150之ATPG向量的掃描鏈,而測試介面260控制用於ALU 240、ALU控制電路250以及邏輯電路220的ATPG向量的掃描鏈。此為處理器單元的範例,其包含測試圖樣產生器;電路(MBIST控制器270),用以將來自測試圖樣產生器的測試向量套用至資料路徑的資料輸入;以及測試結果輸出(測試介面260),被配置以在測試結果輸出處輸出測試結果。此測試解決方案對圖1的基本資料路徑及圖2的擴充資料路徑皆相當管用。然而,對於最新的半導體製程技術及目前可配置單元設計中非常寬的資料路徑,此測試解決方案漏掉了許多缺陷。
圖3繪示具有內建自我測試的另一處理器單元300。圖3包含圖1的所有元件,並具有類似的編號,諸如記憶體310、ALU 340及ALU控制電路350。ALU 340的操作可由ALU控制電路350中產生的ALU控制訊號決定,其可藉由使用來自位元檔案的配置資料,在資料流程設定中靜態地被配置,或者藉由指令解碼,在控制流程設定中的各指令週期中被提供。輸入資料匯流排190被描繪成二部分,即輸入資料匯流排390及中間匯流排391(以多工器372來分隔),以及輸出資料匯流排398。處理器單元300進一步包含測試介面360(例如,JTAG埠)、測試控制暫存器362、BIST控制器370、多工器374以及MISR 380,其中MISR 380可包含測試結果壓縮器382及特徵暫存器385。此為處理器單元的範例,其包含測試圖樣產生器;電路(BIST控制器370),用以將來自測試圖樣產生器的測試向量套用至資料路徑的資料輸入;以及測試結果輸出(MISR 380),被配置以在測試結果輸出處輸出測試結果。
在正常操作中,資料流經處理器單元300並在處理器單元300中被處理,其方式與資料流經圖1的處理器單元100並在處理器單元100中被處理的方式相同。BIST電路可能為閒置的。外部測試器可使用取代ALU控制字(replacement ALU control word)來加載測試控制暫存器362,其中取代ALU控制字作為取代ALU控制訊號傳遞至多工器374的輸入。在由BIST控制器370控制的BIST模式中,多工器372使用由BIST控制器370所產生的多個測試向量來取代來自輸入資料匯流排390的輸入資料。測試向量可包含要儲存在記憶體310中的記憶體位址及資料,且可伴隨用於記憶體310的讀寫控制訊號。在BIST模式中,測試圖樣可包含針對記憶體測試的確定性向量(deterministic vector)以及針對邏輯測試的虛擬隨機資料。
BIST控制器370可被配置以使用本文所述之技術來測試從記憶體310的輸入至ALU 340的輸出的整個資料路徑。舉例而言,BIST控制器370可產生或輸出一系列記憶體測試(用於檢測記憶體錯誤而最佳化的測試圖樣,例如行進演算法、RAM循序(RAM sequential)、零壹(zero-one)、棋盤(checkerboard)、蝶形(butterfly)、滑動對角線(sliding diagonal)等演算法),但與標準MBIST不同,它可能不會直接監控記憶體310的輸出。BIST控制器370亦可產生一系列虛擬隨機測試向量,但與LBIST不同,它不提供虛擬隨機測試向量至掃描鏈而到ALU 340及ALU控制電路350中。相反地,BIST控制器370透過記憶體310向ALU 340提供虛擬隨機測試向量,同時控制記憶體寫入及讀取位址以及ALU功能(例如,藉由使用多工器374覆蓋來自ALU控制電路350的輸出)。輸出資料匯流排398將來自ALU 340的資料輸出至例如另一可配置單元,但它亦將資料傳輸至MISR 380。測試結果壓縮器382可使用本領域已知的任何壓縮技術來壓縮ALU輸出資料,包含循環冗餘檢查(cyclic redundancy check)、個數計數(ones count)、變遷計數(transition count)、同位檢查(parity checking)、徵候檢查(syndrome checking)等。BIST控制器370發送訊號至MISR 380,以壓縮ALU輸出資料並將壓縮的輸出資料作為特徵儲存在特徵暫存器385中,例如外部測試器可透過測試介面360從特徵暫存器385讀取特徵,將特徵與預編譯的測試特徵進行比較以確定測試結果。
在一實現中,不需要將記憶體310與其他電路隔離來執行測試。該實現原地不動地使用記憶體。在一實現中,BIST控制器370可產生用於測試記憶體310的測試向量的第一部分,以及用於測試邏輯的第二部分。藉由不改變拓撲結構、保持資料路徑完整無缺並在處理器單元300的輸入處套用測試向量,實現獲得對資料路徑的更好涵蓋範圍,且能夠高速對其進行測試。藉由使用虛擬隨機產生的測試向量,該實現能夠達成較高的n-檢測值( n-detect value),因此除了固定故障外,還有較大的缺陷涵蓋範圍。藉由使用特徵壓縮,晶片測試匯流排上的頻寬負擔可得到控制。
在一例示性實現中,資料路徑可包含16個平行的32位元通道,總寬度為512位元。額外的線路可攜帶控制訊號、位址、同位資訊等。在測試迴路(test loop)的第一個循環中,BIST控制器370透過BIST輸入匯流排371及多工器372,提供記憶體310的位址及資料給各通道,並給予其寫入指令。記憶體310將資料儲存在16個位址。在下一個循環中,BIST控制器370提供下一個位址給各通道,並給予讀取指令。記憶體310提取資料,並輸出16個通道的平行資料在中間匯流排392上,以及中間匯流排392將資料傳輸至ALU 340。BIST控制器370覆蓋多工器374中的ALU控制電路350並為ALU 340選擇該取代ALU控制訊號,以及ALU 340處理其從中間匯流排392接收的資料。ALU 340可包含SIMD,因此能夠同時處理16個平行通道的資料。ALU 340在輸出資料匯流排398上輸出結果,這允許MISR 380壓縮結果,並將壓縮結果作為特徵儲存在特徵暫存器385中。外部測試器可從MISR讀取壓縮結果並將它們與預編譯的壓縮結果進行比較,以確定它們是匹配(通過)還是不同(未通過)。
BIST控制器370可循環4,096次運行此類測試。範例操作可循環5次運行專用於記憶體310的測試,以及循環4,091次運行專用於邏輯及ALU的測試。
此外,該實現可透過測試介面360,運行ATPG測試到資料路徑、ALU控制電路350及任何BIST電路(包含BIST控制器370、多工器372、多工器374、測試控制暫存器362及MISR 380)中的任何地方的掃描鏈(未繪示於圖3中)中。
若干實現可能偏離圖3所示的架構。舉例而言,測試控制暫存器362可嵌入於BIST控制器370或ALU控制電路350中。測試控制暫存器362及多工器374的功能(即,覆蓋BIST控制器370對ALU的控制)可整合在ALU控制電路350中,故BIST控制器370可直接提供控制訊號至ALU控制電路350,而不是控制多工器374。此外,測試結果壓縮器382及特徵暫存器385可組合在單個電路中。儘管圖3顯示單個測試介面,但實現可具有多個測試介面以與所示的多個測試電路通訊並與掃描鏈通訊。
圖4繪示在所揭露之技術的實現中具有BIST結構的另一處理器單元400。圖4包含圖2的所有元件,並具有類似的編號。處理器單元400包含記憶體410、邏輯電路420、多工器430、ALU 440及ALU控制電路450。然而,輸入資料匯流排290被分割成兩部分,即輸入資料匯流排490及中間匯流排491(以多工器472來分隔),以及輸入資料匯流排294被分割成輸入資料匯流排494及中間匯流排495(以多工器473來分隔)。兩個多工器亦與BIST輸入匯流排471耦合,以從BIST控制器470接收其資料。處理器單元400更包含測試介面460、測試控制暫存器462、多工器474及MISR 480,其中MISR 480包含測試結果壓縮器482及特徵暫存器485。另外的多個資料匯流排係為中間匯流排492、中間匯流排496、中間匯流排497及輸出資料匯流排498。ALU 440的操作可由ALU控制電路450中產生的ALU控制訊號決定,其可藉由使用來自位元檔案的配置資料,在資料流程設定中靜態地被配置,或者藉由指令解碼,在控制流程設定中的各指令週期中被提供。
在正常操作中,資料流經處理器單元400並在處理器單元400中被處理,其方式與資料流經圖2的處理器單元200並在處理器單元200中被處理的方式相同。BIST電路可能為閒置的。外部測試器可使用取代ALU控制字(replacement ALU control word)加載測試控制暫存器462,其中取代ALU控制字作為取代ALU控制訊號傳遞至多工器474的輸入。在由BIST控制器470控制的BIST模式中,多工器472可使用由BIST控制器470所產生的多個測試向量來取代來自輸入資料匯流排490的輸入資料。此外,多工器473可使用該等測試向量來取代來自輸入資料匯流排494的輸入資料。記憶體410的該等測試向量可包含記憶體位址及欲儲存的資料與讀寫控制訊號,以及用於測試邏輯電路420的圖樣。在BIST模式中,測試圖樣可包含針對記憶體測試的確定性向量(deterministic vector)以及針對邏輯測試的虛擬隨機資料。BIST控制器470亦透過多工器474覆蓋對ALU 440的控制。
BIST控制器470使用本文描述之技術測試從記憶體410及邏輯電路420的輸入至ALU 440的輸出的整個資料路徑。舉例而言,BIST控制器470可產生或輸出一系列記憶體測試,但與標準MBIST不同,它不直接監控記憶體410的輸出。BIST控制器470亦可產生一系列虛擬隨機測試向量,但與LBIST不同,它不提供虛擬隨機測試向量至掃描鏈而到邏輯電路420、ALU 440及ALU控制電路450中。相反地,BIST控制器470透過記憶體410及/或邏輯電路420向ALU 440提供虛擬隨機測試向量,同時控制記憶體寫入及讀取位址以及ALU功能(例如,藉由使用多工器474來覆蓋來自ALU控制電路450的輸出)。輸出資料匯流排498將來自ALU 440的資料輸出至例如另一個可配置單元,但它亦將資料傳輸至MISR 480。測試結果壓縮器482可使用本領域已知的任何壓縮技術來壓縮資料,包含循環冗餘檢查(cyclic redundancy check)、個數計數(ones count)、變遷計數(transition count)、同位檢查(parity checking)、徵候檢查(syndrome checking)等。BIST控制器470發送訊號至MISR 480,以壓縮ALU輸出資料並將壓縮的輸出資料作為特徵儲存在特徵暫存器485中,例如外部測試器可透過測試介面460從特徵暫存器485讀取特徵,將特徵與預編譯的測試特徵進行比較以確定測試結果。
透過記憶體410測試資料路徑可類似於或相同於圖3中所描述之用於測試處理器單元300的方法。然而,處理器單元400具有透過輸入資料匯流排494、中間匯流排495、邏輯電路420、中間匯流排496及多工器430的輔助輸入路徑。因此,除了透過記憶體410測試資料路徑之外,BIST控制器470可在多工器473處選擇BIST輸入匯流排471,以透過邏輯電路420傳遞測試向量。
為了確保ALU 440的可測試行為(testable behavior),實現可在測試開始時重置ALU 440及處理器單元400中的資料路徑的任何其他部分,以及BIST控制器470可覆蓋來自多工器474中的ALU控制電路450的控制訊號,以提供取代ALU控制訊號(replacement ALU control signal),或以其他方式控制ALU 440功能。在測試結束時,BIST控制器470可藉由運行一系列零向量通過資料路徑,以刷新資料路徑。
若干實現可能偏離圖4所示的架構。舉例而言,測試控制暫存器462可嵌入於BIST控制器470或ALU控制電路450中。測試控制暫存器462及多工器474的功能(即,覆蓋BIST控制器470對ALU的控制)可整合在ALU控制電路450中,故BIST控制器470可直接提供控制訊號至ALU控制電路450,而不是控制多工器474。此外,測試結果壓縮器482及特徵暫存器485可組合在單個電路中。儘管圖4顯示單個測試介面,但實現可具有多個測試介面以與所示的多個測試電路通訊並與掃描鏈通訊。
圖5繪示用於在所揭露之技術的實現中測試在處理器單元中的資料路徑的方法500。資料路徑包含具有資料輸入及資料輸出的記憶體、具有控制輸入、資料輸入及資料輸出的ALU以及耦合該記憶體資料輸出與該ALU資料輸入的中間匯流排。方法500包含以下步驟:
步驟510:將一系列記憶體測試向量中的第一記憶體測試向量提供至該記憶體資料輸入。該系列記憶體測試向量可採用任何發現記憶體缺陷的測試序列,包含在行進演算法、RAM循序、零壹、棋盤、蝶形、滑動對角線及其他記憶體測試演算法中所決定的序列。
步驟520:將該第一記憶體測試向量寫入至該記憶體中的第一位址。第一位址可由實現所採用的記憶體測試演算法來確定。
步驟530:從該記憶體中的第一位址讀取記憶體輸出資料。
步驟540:將該記憶體輸出資料透過該中間匯流排轉送至該ALU。
步驟550:使用取代ALU控制訊號來取代該控制輸入上的訊號。該取代ALU控制訊號確保ALU可以對於正常操作至少具備代表性的方式來測試。
步驟560:基於該取代ALU控制訊號執行ALU操作。根據該取代ALU控制訊號,ALU在其資料輸入處處理資料,並將結果作為測試結果置於其資料輸出中。
步驟570:從該ALU資料輸出中獲得該測試結果。實現可將測試結果轉送至MISR,以用於步驟580及步驟590。
步驟580:壓縮該測試結果以獲得特徵(signature)。一實現可使用本領域已知的任何壓縮技術來壓縮ALU輸出資料,包含循環冗餘檢查(cyclic redundancy check)、個數計數(ones count)、變遷計數(transition count)、同位檢查(parity checking)、徵候檢查(syndrome checking)等。
步驟590:將該特徵儲存於暫存器中。該暫存器可為MISR的一部分。實現可更將該特徵與預編譯的特徵進行比較以判定測試結果。舉例而言,如果特徵與預編譯的特徵匹配,則測試通過,如果不匹配,則測試未通過。
方法500可更包含:
步驟511:將第一系列虛擬隨機數中第一虛擬隨機數提供至該記憶體資料輸入。一實現可使用具有第一長度、第一反饋多項式(feedback polynomia)及第一種子(seed)的第一LFSR來產生該第一系列虛擬隨機數。
步驟521:將該第一虛擬隨機數寫入至該記憶體中的第二位址。第二位址可為記憶體中的任何可用位址。第二位址可為固定的,或者其可為基於第一虛擬隨機數序列中的第一虛擬隨機數的索引的。舉例而言,第一系列虛擬隨機數中的各虛擬隨機數可具有唯一索引:第一虛擬隨機數可具有索引0,第二虛擬隨機數可具有索引1,第三虛擬隨機數可具有索引2,等等。第二位址可隨索引增加或減少,或者是索引的任何函數。在一個實現中,第二位址包含基於在該系列測試圖樣中的該測試圖樣的該索引(所包含的至少一部分位元)的獨熱編碼位址(one-hot encoded address)。獨熱編碼位的數字為二進制數字,其只具有單個位元為「1」而所有其他位元為「0」。舉例而言,索引0可轉換為16位元的字串0000 0000 0000 0001;索引1可轉換為0000 0000 0000 0010,等等。在第二位址包含獨熱編碼版本的索引的實現中,接續的多個第二位址可尋址記憶體中的接續多個行。
步驟531:從該記憶體中的第二位址讀取記憶體輸出資料。方法500可繼續進行至步驟540。
資料路徑更可包含邏輯電路(具有資料輸入及資料輸出)以及多工器(其具有與該記憶體資料輸出耦合之第一輸入及與該邏輯電路資料輸出耦合之第二輸入,且具有與該ALU資料輸入耦合之輸出)。方法500可更包含:
步驟512:將第二系列虛擬隨機數中的第二虛擬隨機數提供至該邏輯電路資料輸入。一實現可使用具有第二長度、第二反饋多項式(feedback polynomial)及第二種子(seed)的第二LFSR來產生該第二系列虛擬隨機數。
步驟542:將來自該邏輯電路資料輸出的資料透過該多工器及中間匯流排轉送至ALU。方法500可繼續進行至步驟550。
所揭露之技術關於處理器晶片的內建自我測試(built-in self-test,BIST),該處理器晶片包含一個或多個處理器單元(其包含具有記憶體及ALU的資料路徑)。資料路徑可非常寬。實現使用一種新形式的BIST,其補足ATPG,以支持高故障涵蓋範圍。它克服了ATPG、LBIST及MBIST的問題與限制,以高可信度區分正常運行的IC及故障的IC。
多個實現可使用ATPG測試可配置單元,以達到對固定故障的高涵蓋範圍,例如99%。此外,該等實現亦可為記憶體測試及功能測試產生測試圖樣。該等實現將測試圖樣透用至可配置單元的輸入(例如,記憶體輸入或邏輯輸入),並從可配置單元的輸出中提取輸出資料。因此,測試圖樣通過完整的資料路徑,以產生該輸出資料。BIST控制器產生測試圖樣,將它們套用至可配置單元輸入,並確保資料路徑的狀況大體上類似於正常操作的狀況。BIST控制器亦指示MISR將輸出資料壓縮為結果特徵,並將結果特徵儲存在暫存器中。外部測試器可存取暫存器(例如,透過JTAG測試介面),以提取結果特徵並將其與預編譯特徵進行比較以確定測試結果(如果結果特徵等於預編譯特徵則通過,否則未通過)。
測試圖樣可包含專門針對記憶體的圖樣,類似於商業上可利用的MBIST中的圖樣,包含行進測試及傳統測試(諸如零壹、棋盤、蝶形、滑動對角線等)。測試圖樣可更包含一系列針對ALU的虛擬隨機數,其類似於LBIST解決方案中的那些。在實現檢查記憶體時,BIST控制器或外部測試器可將ALU置於「透明」模式,即輸出資料等於ALU輸入資料,或者ALU可以保持在其標準操作模式。當實現檢查ALU及任何其他邏輯時,BIST控制器控制記憶體尋址,以實現透明操作。BIST控制器可在固定位址操作記憶體,或者它可在所有可用位址中或在可用位址的任何子集中排序(以任何順序)。舉例而言,它可使用獨熱編碼位址,以及在該獨熱編碼位址中高位的單個位址位元在多個可用位址位元中排序。
多個實現支持ALU的硬布線(hard-wired)、半固定及可程式化模式。在ALU模式為半固定或可程式化的情況下,該實現藉由使用取代ALU控制訊號(replacement ALU control signal)來取代來自ALU控制器的ALU控制訊號來支配對ALU的控制。取代ALU控制訊號可儲存在暫存器中,諸如JTAG測試控制暫存器。BIST控制器可控制多工器並導引其將取代ALU控制訊號(而不是ALU控制訊號)轉送至ALU。一實現可進一步在套用任何測試向量之前清除ALU的狀態(例如,藉由套用重置路由),且一實現可在套用測試向量之後刷新ALU(例如,藉由套用一系列零向量至資料路徑)。 具有本地 BIST 的處理器單元陣列的可重新配置處理器系統
圖6係描繪在所揭露之技術的實現中包含可重新配置處理器610、測試器620、測試主機630及記憶體640的測試系統600的系統圖。如圖6的範例所示,可重新配置處理器610(其可為單個半導體晶片)包含可配置單元陣列615,其與測試介面628、外部I/O介面638及外部記憶體介面648耦合。測試介面628可透過測試匯流排616與可配置單元陣列615耦合以及可選地與可重新配置處理器610的其他部分耦合。I/O介面638及記憶體介面648可透過資料匯流排618與可配置單元陣列615耦合。測試器620透過線625與測試介面628耦合。測試主機630透過線635與I/O介面638耦合。記憶體640透過線645與記憶體介面648耦合。此外,測試器620與測試主機630可彼此介接。
可重新配置處理器610可為或包含CGRA,其架構及功能將在連續圖中變得清楚。在任何情況下,可配置單元陣列615包含多個可配置單元,且可配置單元可包含記憶體及/或ALU。舉例而言,可配置單元可包含PMU、PCU或PMU與PCU兩者。可配置單元更包含測試介面,其與測試匯流排616及如本文所述的專用自我測試邏輯耦合。舉例而言,可配置單元(其包含記憶體及ALU)可更包含圖3所示及對其描述之測試電路。在可重新配置處理器(其將PMU與PCU區分為個別的可配置單元)中,PMU可包含第一測試介面、第一BIST控制器及資料路徑多工器(類似於多工器372),而PCU可包含第二測試介面、第二BIST控制器、測試控制暫存器、ALU控制多工器及MISR。
為了使用配置檔案配置可配置單元陣列615中的可配置單元,測試主機630可透過I/O介面638、資料匯流排618及記憶體介面648將配置檔案發送至記憶體640。隨著適合特定實現,配置檔案可以多種方式加載,包含在可重新配置處理器610外部的資料路徑中。可透過記憶體介面648從記憶體640中提取配置檔案。然後,可將多個配置檔案塊(Chunk of the configuration file)依分發順序,發送至可配置單元陣列615中的多個可配置單元。
可重配置處理器610及其中的一個或多個可重配置組件(例如,可配置單元陣列615)被稱為「可重新配置硬體」,如同可重新配置處理器610及其中的一個或多個組件為可配置的且可重新配置的,以滿足正在其上執行之程式的需要。在使用組件執行功能期間,可重新配置組件可在資料流程設定中被靜態地配置。
圖7係CGRA處理器700的組件的簡化方塊圖。在此範例中,CGRA處理器700具有2個磚區(tile)(磚區710及磚區720)。磚區(tile)包含耦合至匯流排系統的可配置單元陣列,其可包含陣列級網路。匯流排系統包含將磚區耦合至外部I/O介面738(或任何數量的介面)的頂級網路(top-level network)。其他實現可使用不同的匯流排架構。各磚區中的可配置單元可為陣列級網路上的節點。
各磚區具有四個AGCU(例如,磚區710中的MAGCU1、AGCU12、AGCU13及AGCU14)。該等AGCU為頂級網路上的節點及陣列級網路上的節點,且包含用於在頂級網路上的節點與各磚區中的陣列級網路上的節點之間路由資料的資源。
此範例中頂級網路上的節點包含一個或多個外部I/O介面,其包含I/O介面738。至多個外部裝置的多個介面包含用於在頂級網路上的多個節點及多個外部裝置(諸如,大容量記憶體、主機處理器、其他CGRA處理器、FPGA裝置等等)之間路由資料的多個電路,其係與介面耦合。
在此範例中,磚區中的該等AGCU其中之一被配置為主AGCU(master AGCU,MAGCU),其包含用於磚區的陣列配置加載/卸載控制器。其他實施方式可包含不只一個陣列配置加載/卸載控制器,且一個陣列配置加載/卸載控制器可藉由分布在不只一個AGCU之間的邏輯來實現。
MAGCU1包含用於磚區710的配置加載/卸載控制器,以及MAGCU2包含用於磚區720的配置加載/卸載控制器。在其他實現中,配置加載/卸載控制器可被設計用於加載及卸載不只一個磚區的配置。在進一步的實現中,可設計不只一個配置控制器來配置單個磚區。此外,配置加載/卸載控制器可在系統的其他部分實現,包含作為頂級網路及陣列級網路或多個網路上的獨立節點。
頂級網路係使用相互耦合的多個頂級交換器(交換器711、交換器712、交換器713、交換器714、交換器715及交換器716)與頂級網路上的其他多個節點(包含AGCU及I/O介面738)所建構。頂級網路包含連接頂級交換器的鏈路(例如,L11、L12、L21、L22)。資料可在鏈路上的頂級交換器之間以封包的形式傳播,並從交換器傳播至與交換器耦合的網路上的節點。舉例而言,交換器711與交換器712藉由鏈路L11耦合,交換器714與交換器715藉由鏈路L12耦合,交換器711與交換器714藉由鏈路L13耦合,以及交換器712與交換器713藉由鏈路耦合L21。該等鏈路可包含一個或多個匯流排及支持控制線,例如包含塊寬(chunk-wide)匯流排(向量匯流排)。舉例而言,頂級網路可以包含資料、請求及回應通道,這些通道可協同操作,以類似於AXI兼容協定的方式傳輸資料。請參2017年ARM之AMBA® AXI及ACE協定標準。
頂級交換器(Top-level switch)可與AGCU耦合。舉例而言,交換器711、交換器712、交換器714及交換器715分別與磚區710中的MAGCU1、AGCU12、AGCU13及AGCU14耦合。交換器712、交換器713、交換器715及交換器716分別與磚區720中的MAGCU2、AGCU22、AGCU23及AGCU24耦合。頂級交換器可與一個或多個外部I/O介面(例如,I/O介面738)耦合。
圖8A係在所揭露之技術的實現中包含可配置單元陣列800的磚區(tile)的簡化圖。在此範例中,可配置單元陣列800包含多種類型的可配置單元。在此範例中,可配置單元的類型包含PMU、PCU、多個交換器單元(S)及多個AGCU(每一者包含兩個位址產生器(AG)及共享的CU)。有關這些類型的可配置單元的功能範例,請參閱Prabhakar等人之「Plasticine:用於平行圖樣的可重新配置架構(A Reconfigurable Architecture for Parallel Patterns)」,詳見相互參照章節。各可配置單元可包含配置儲存,其包含一組暫存器或正反器,該組暫存器或正反器儲存表示用以運行程式之設置或順序的配置資料且可包含巢套循環的次數、各循環疊代器的限制、各階段要執行的指令、運算元的來源以及輸入與輸出介面的網路參數。在可配置單元陣列800的實現中,PMU和PCU單元以棋盤圖樣排列。
此外,這些可配置單元中的每一者包含一個配置儲存,其包含一組暫存器或正反器,這些暫存器或正反器儲存可用於追蹤巢套循環或其他中的進度的狀態。配置檔案包含位元流,其表示執行程式的各組件的初始配置或起始狀態。此位元流(bitstream)被稱為位元檔案。程式加載係基於位元檔案的內容在可配置單元陣列中設定配置儲存,以使得所有組件執行程式(即機器)的處理程序。程式加載可能亦需要加載所有PMU記憶體。
匯流排系統包含多個鏈路,其互連陣列中的多個可配置單元。陣列級網路中的鏈路包含一個或多個,以及在兩個實體資料匯流排的情況下為:塊級(chunk-level)向量匯流排(例如,512位元資料)及字級純量匯流排(例如,32位元資料)。舉例而言,交換器811與交換器812之間的互連821可包含具有512位元向量匯流排寬度的向量匯流排互連以及具有32位元純量匯流排寬度的純量匯流排互連。亦包含控制匯流排(其可包含可配置互連)(參圖9~ 11),其攜帶多個控制位元於訊號路線上,該訊號路線係由磚區的配置檔案中的配置位元指定。在若干實現中,控制匯流排可包含與資料匯流排分開的實體線。在其他實現中,控制匯流排可使用具有不同的協定或在分時程序中的多個相同實體線來實現。
這些實體匯流排在傳輸資料的粒度上有所不同。在一個實現中,向量匯流排可攜帶包含16個資料通道(例如,512位元)的塊(chunk)作為其負載(payload)。純量匯流排可具有32位元負載並攜帶純量運算元或控制資訊。控制匯流排可攜帶控制交握(control handshake),諸如符記(token)及其他訊號。向量匯流排及純量匯流排可進行封包交換,包含指示每個封包目的地的標頭及其他資訊,諸如當封包未依順序接收時可用於重組檔案的序號(sequence number)。各封包標頭可包含識別目標交換器單元的地理座標的目標識別符(例如,陣列中的列及行),以及識別目標交換器上介面的介面識別符(例如,北、南、東、西等)用於到達目的地的單元。
交換器單元,如圖8A的範例所示,可具有八個介面。交換器單元的北介面、南介面、東介面及西介面用於多個交換器單元之間的連接。交換器單元的東北介面、東南介面、西北介面及西南介面每一者分別用於與PCU或PMU實例建立連接。各磚區象限中的兩個交換器單元與AGCU連接,以及該AGCU包含多個位址產生(address generation,AG)單元及與該多個位址產生單元耦合的合併單元(coalescing unit,CU)。合併單元(CU)在AG之間進行仲裁以及處理記憶體請求。交換器單元的八個介面中的每一者可包含向量介面、純量介面及控制介面,以與向量網路、純量網路及控制網路進行通訊。
在配置之後執行機器的執行片段(execution fragment)期間,可藉由使用陣列級網路上的一個或多個交換器單元的向量匯流排及向量介面,透過一個或多個單元交換器以及單元交換器之間的一個或多個鏈路,將資料發送至可配置單元。
藉由配置磚區實現的資料處理操作包含資料處理操作的複數個執行片段,以及該等執行片段被分布在對應的多個可配置單元(在此範例中為AG、CU、PMU及PCU)之間並由其執行。
在此範例中,測試電路包含具有專用BIST電路的可配置單元,以及該專用BIST電路可透過諸如圖6中的測試匯流排616的測試匯流排來尋址。在此範例中,BIST電路包含AG 818中的BIST邏輯801、PMU中的BIST邏輯802、PCU中的BIST邏輯803以及交換器中的BIST邏輯,如上所述。在所繪示的實施例中,陣列中的所有可配置單元(PMU、PCU、AG)可包含本地專用BIST電路。在若干實施例中,陣列中的複數個可配置單元(其可能少於陣列中的所有可配置單元)包含本地專用BIST電路。針對陣列中的複數個可配置單元中的各可配置單元,藉由分別地包含可定址的(透過測試匯流排)BIST控制器,一實現藉由指示缺陷與何處相關來顯著地減少生產前階段的全晶片除錯時間。在現場操作時,該資訊使得其可能減輕缺陷的結果,例如藉由取代可配置單元、將其關閉、減慢、加速或任何其他保持可配置單元陣列800可在可接受的狀態下運作的動作。
在一個實現中,可配置單元包含多個配置與狀態暫存器,其保存在配置加載處理程序中加載或在配置卸載處理程序中卸載的單元配置檔案。該等暫存器可連接成串列鏈,且可利用將位元移位通過串列鏈的處理程序加載配置資料。在若干實現中,可存在不只一個串列鏈,其以並聯或串聯排列。舉例而言,當可配置單元在一個匯流排週期中接收到512位元配置資料時,可配置單元以每週期1位元的速率移動該資料通過其串列鏈,其中移位器週期可以與匯流排週期相同的速率運行。可配置單元將需要512個移位器週期來加載512個配置位元,其中512位元資料透過向量介面接收。
配置檔案或位元檔案,在配置磚區之前,可藉由使用陣列級網路上的一個或多個交換器單元的向量匯流排及向量介面而使用相同的向量匯流排,透過一個或多個單元交換器及該等單元交換器之間的一個或多個鏈路發送至可配置單元。舉例而言,可配置單元(PMU)841特有的單元檔案中的配置資料塊可透過位址產生器(AG)中的負載控制器與交換器811的西(W)向量介面之間的鏈路820、交換器811及交換器811的東南(SE)向量介面與PMU 841之間的鏈路831而發送至PMU 841。用於儀器網路(instrumentation network)的配置資料可包含在用於相關聯的可配置單元的配置資料中,或者透過其他配置資料結構提供。
可配置單元透過多個記憶體介面與記憶體介接。各記憶體介面可藉由使用多個AGCU被存取。各AGCU包含可重新配置的純量資料路徑,以產生對晶片外記憶體的請求。各AGCU包含FIFO(用於組織資料的先進先出緩衝器)來緩衝來自晶片外記憶體的輸出命令(outgoing command)、資料及輸入回應(incoming response)。
為了特定資料處理操作之目的,可加載配置檔案以指定磚區(包含儀器邏輯單元及控制匯流排)的配置(包含可配置單元中的執行片段、互連配置及儀器網路配置)。用於協調配置檔案的加載及卸載的技術係由Shah等人描述於「可重新配置資料處理器的配置負載(Configuration Load of a Reconfigurable Data Processor)」(美國第10,831,507號專利號,於2020年11月10日公告)。
圖8B係在所揭露之技術的實現中包含可配置單元陣列850的磚區的另一例示圖。不同於可配置單元陣列800,PMU單元及PCU單元不是以棋盤圖樣排列的。相反地,它們以PMU單元與PCU單元交替的方式排列在相同的列中。更一般而言,它們被排列在子陣列中,例如部分或整列、部分或整行,或橫跨一或多列及一或多行的其他子陣列。因為每個同質子陣列可被另一個同質子陣列取代,故子陣列可為同質的,包含相同的電路。在這樣的情況下,備用同質子陣列可用於取代由BIST識別的有缺陷的同質子陣列,例如參見Grohoski等人的美國第17/378,399號專利申請案,其出於一切目的以引用方式併入,如同在本文中充分地闡述一般。但在若干實施例中,子陣列不一定是同質的。舉例而言,在其第一列中,可配置單元陣列850包含子陣列851、子陣列852及子陣列853。這些每一者皆包含一個PMU及一個PCU。舉例而言,子陣列851包含PMU 854及PCU 855。PMU 854可包含第一組BIST電路856,如同將於之後描繪,參見圖9。PCU 855可包含第二組BIST電路857,如同將描繪,參見圖10。第一組BIST電路856與第二組BIST電路857共同地提供了前面參考圖3及4說明的所有測試功能。在其第二列中,可配置單元陣列850包含子陣列861,總共具有三個PMU單元及三個PCU單元。第一個PMU 862包含第一組BIST電路,最後一個PCU 863包含第二組BIST電路。再者,第一組BIST電路與第二組BIST電路共同地提供前面參考圖3及4說明的所有測試功能。然而,最後一個PCU 863中的資料路徑比例如子陣列851中的資料路徑長得許多。
在該範例中,可配置單元陣列850包含多列及多行的多個處理器,以及各處理器為可配置單元。在另一範例中,陣列可包含多個堆疊平面,各平面包含多個列及多個行。可配置單元陣列可包含排列在N個相同列中的N個同質子陣列。此外,可配置單元陣列850包含N+1列交換器單元S,其形成陣列級網路的路由基礎結構。在其他實施例中,子陣列可為多個行。在其他實施例中,可使用其他備用幾何結構,例如由多列及多行的PMU與PCU的相連子集組成的矩形。
雖然圖8A~B顯示可配置單元陣列,但更一般而言,這些單元不需要為可配置的。處理器單元陣列可整合在單個積體電路晶片上。處理器可包含一個或多個本地記憶體以及一個或多個ALU。ALU可包含SIMD。陣列可由多個子陣列組成,該等子陣列每一者包含一個或多個處理器單元及一組BIST電路(如參考圖3及4所描述的),以測試子陣列中的資料路徑。資料路徑可橫跨一個或多個處理器單元。BIST電路可包含測試控制器或BIST控制器、輸入多工器(用於以測試控制器產生的測試向量覆蓋輸入資料)、測試控制暫存器與多工器(用於以儲存在功能配置暫存器中的取代控制設定覆蓋儲存在功能配置暫存器中的處理器控制設定或ALU控制設定),以及MISR或更一般地,資料壓縮器及特徵暫存器(具有可從子陣列外部讀取的測試結果輸出)。由測試控制器產生的測試向量可包含記憶體測試圖樣及/或虛擬隨機資料。處理器單元陣列包含兩個或更多個子陣列,其每一者具有一個或多個處理器單元及一組測試電路,使得各子陣列可使用本文提出的方法單獨地測試。
圖9係描繪包含BIST電路的例示性可配置PMU 900的方塊圖。可配置PMU 900可包含高速暫存記憶體930,其與可重新配置的純量資料路徑920以及匯流排介面(其亦用於在PCU中(圖10))耦合,以及該純量資料路徑920被配置以計算高速暫存記憶體930的位址(RA、WA)及控制(WE、RE)),其包含向量、純量和控制資訊。可配置PMU 900係為可配置單元,其包含輸入資料匯流排910(例如,具有向量輸入、純量(scalar)輸入及控制輸入)。可配置PMU 900亦包含取代資料匯流排965,以用於在所揭露之技術的實現中進行測試。可配置PMU 900包含以下BIST電路:測試介面950(其可為JTAG埠)、第一BIST控制器960(用第一稱之係是因為它可與PCU中使用的第二BIST控制器串接操作)、多工器972、多工器974及多工器976。第一BIST控制器960可由來自測試匯流排的控制訊號透過測試介面950啟動。當啟動時,第一BIST控制器960藉由分別取消選擇多工器972、多工器974及多工器976中的輸入資料匯流排910,並改為選擇取代資料匯流排965來控制可配置PMU 900的輸入資料。然後,第一BIST控制器960產生測試訊號,其可包含針對測試記憶體功能的一系列測試圖樣(例如,用於記憶體931至記憶體934),以及著重於測試邏輯的虛擬隨機數,如本文前面所揭露的。第一BIST控制器960將測試訊號置入至取代資料匯流排965上。
輸入資料匯流排910可包含純量輸入及向量輸入,其可用於提供寫入資料(write data,WD)。輸出資料匯流排可向其他可配置單元(例如,PCU)提供純量輸出及向量輸出。資料路徑可被組織為多級可重新配置管線,包含功能單元(functional unit,FU)的級以及暫存功能單元的輸入和輸出之相關聯的管線暫存器(pipeline register,PR)。PMU可在整個可重新配置單元陣列中用於供應分散式晶載記憶體。
高速暫存記憶體930可包含多個記憶體組(memory bank)(例如,記憶體931至記憶體934,其可為或包含SRAM)。用於高速暫存的記憶體組的儲存與緩衝邏輯(banking and buffering logic)935可被配置以幾種儲存模式操作以支持各種存取圖樣(access pattern)。如本文所述的計算單元可包含儲存在高速暫存記憶體930中、來自配置檔案或來自其他來源的查找表。在如本文所述的計算單元中,可重新配置的純量資料路徑920可將用於尋址實現函數f(I)的查找表的原始輸入值I的一部分轉換為由高速暫存記憶體930使用的尋址格式(加入適當的偏移量等等),以使用輸入值I的部分來讀取儲存在高速暫存記憶體930中的查找表的條目。各PMU可包含寫入位址計算邏輯與讀取位址計算邏輯,其提供寫入位址WA、寫入賦能WE、讀取位址RA及讀取賦能RE至儲存與緩衝邏輯935。基於純量FIFO 911及向量FIFO 912的狀態以及外部控制輸入,控制區塊915可被配置以藉由啟用適當的計數器916來觸發寫入位址計算、讀取位址計算或兩者。計數器916(控制輸入、控制輸出)及控制區塊915的可程式化鏈可觸發PMU執行。
在測試時,第一BIST控制器960首先在輸入資料多工器(多工器972、多工器974及多工器976)處選擇取代資料匯流排965。因此,第一BIST控制器960覆蓋輸入資料匯流排910上可能可用的任何資料。第一BIST控制器960確定記憶體位址,並透過取代資料匯流排965、多工器974、純量FIFO 911及可重新配置的純量資料路徑920,將記憶體位址提供至儲存與緩衝邏輯935(在輸入WA處)。第一BIST控制器產生測試向量(其可包含記憶體測試及/或虛擬隨機資料),並透過取代資料匯流排965、多工器972及向量FIFO 912,將測試向量提供至高速暫存記憶體930(WD輸入)。在第一個循環中,第一BIST控制器藉由透過取代資料匯流排965、多工器974、純量FIFO 911及可重新配置的純量資料路徑920在儲存與緩衝邏輯935處宣告WE輸入,將測試向量寫入至記憶體位址處的儲存與緩衝邏輯935。在第二個循環中(在第一個循環之後),第一BIST控制器960藉由透過取代資料匯流排965、多工器974、純量FIFO 911及可重新配置的純量資料路徑920,提供記憶體位址至儲存與緩衝邏輯935處的RA輸入,並透過取代資料匯流排965、多工器974、純量FIFO 911及可重新配置的純量資料路徑920在儲存與緩衝邏輯935處宣告RE輸入,以控制從記憶體位址的記憶體讀取操作。高速暫存記憶體930將儲存在記憶體位址處的資料釋放至輸出資料匯流排。當然,如果資料路徑(包含高速暫存記憶體930及與其耦合的所有操作單元)正確地運行,則儲存在記憶體位址處的資料係與測試向量匹配。
圖10係描繪包含BIST電路的例示性可配置PCU 1000的方塊圖。可配置PCU 1000係可配置單元,其可與亦於可配置PMU 900中所使用的純量、向量與控制匯流排介接,在此範例中使用三組對應的輸入及輸出(I/O):純量I/O、向量I/O及控制I/O。純量I/O可用於傳送單個資料文字(words of data)(例如,128位元)。在諸如單元配置加載處理程序中接收配置資料以及配置後的操作期間中在多個PCU之間的長管線上傳送及接收資料的情況下,向量I/O可用於傳送多個資料塊(例如,512位元)。控制I/O可用於在控制線上傳送訊號,諸如可配置單元的開始或結束執行。控制輸入由控制區塊1090接收,控制輸出由控制區塊1090提供。輸出資料匯流排1089可包含純量輸出、向量輸出及控制輸出。
在此範例中,使用向量FIFO區塊1060中的向量FIFO來緩衝各向量輸入,其中,該向量FIFO區塊1060可包含一個或多個向量FIFO。同樣地,在此範例中,使用純量FIFO 1070來緩衝各純量輸入。使用輸入FIFO可解耦資料生產者和消費者之間的時序,並藉由使其對輸入延遲不匹配具有抵抗力來簡化可配置單元間的控制邏輯。
可配置單元包含ALU 1080,其可包含SIMD以支持多個可重新配置的資料通道。SIMD可具有多級(級1...級N)、可重新配置的管線。寫入可配置單元中配置串列鏈的多個資料塊包含SIMD中各資料通道的各級的配置資料。配置資料儲存1020中的配置串列鏈透過ALU控制輸入1021與ALU 1080中的多個資料通道耦合。
被組織為多級管線的可配置資料通道可在各自級上包含多個功能單元(例如,功能單元1081至功能單元1086)。計算單元或計算單元的一部分可在多級管線或多個多級管線中的各自級的多個功能單元中實現。在如圖10所示的範例中,可在多個功能單元及多個記憶體單元中實現電路。功能單元中的輸入暫存器可暫存來自純量FIFO 1070或向量FIFO區塊1060或來自多級管線中的先前級的輸入。在多級管線中的級處的功能單元可執行例如邏輯移位、算術函數、比較、邏輯運算等功能,並產生輸出。
可配置單元陣列中的可配置單元包含配置資料儲存1020(例如,串列鏈)以儲存單元檔案,該單元檔案包含特定於對應的可配置單元的複數個配置資料塊(或其他大小的子檔案)。可配置單元陣列中的可配置單元每一者包含單元配置加載邏輯1040,其透過線1022與配置資料儲存1020耦合,以執行單元配置加載處理程序。單元配置加載處理程序包含透過匯流排系統(例如,向量輸入)接收特定於可配置單元的多個單元檔案塊,並將接收到該等塊加載至可配置單元的配置資料儲存1020中。載入至配置資料儲存1020中的單元檔案可包含配置資料(其包含運算碼(opcode)及路由配置),以用於在多個功能單元與多個記憶體單元中實現儀器邏輯的電路(例如,模組),如本文所述。
在該範例中,在兩個或更多個可配置單元的可配置單元中儲存的配置資料儲存包含鎖存器的串列鏈,其中鎖存器儲存控制可配置單元中的資源配置的位元。配置資料儲存中的串列鏈可包含用於配置資料的移位暫存器鏈及用於狀態資訊和計數器值的第二移位暫存器鏈,其串聯連接。
輸入配置資料1010可作為向量輸入提供至向量FIFO,然後被傳輸至配置資料儲存1020。藉由使用向量輸出,輸出配置資料1030可從配置資料儲存1020中被卸載。
CGRA使用菊鏈完成匯流排來指示加載/卸載命令何時完成。主AGCU透過菊鏈命令匯流排將程式加載命令及卸載命令傳輸至可配置單元陣列中的可配置單元。如圖10的範例所示,控制塊1090、菊鏈完成匯流排1091及菊鏈命令匯流排1092耦合至菊鏈邏輯1093,其與單元配置加載邏輯1040通訊。菊鏈邏輯1093可包含加載完成狀態邏輯,如下所述。以下進一步描述菊鏈式完成匯流排。命令與完成匯流排的其他拓撲明確地為可行的,但在此未描述。
可配置PCU 1000包含以下BIST電路:測試介面1050(其可為JTAG埠)、第二BIST控制器1052(用第二稱之係因為它可與PMU中使用的第一BIST控制器960串接操作)、測試控制暫存器1053、ALU控制多工器1054及MISR 1055(其可包含單獨或組合的測試結果壓縮器1056及特徵暫存器1057)。第二BIST控制器1052可透過測試介面1050,藉由來自測試匯流排的控制訊號啟動。當啟動時,第二BIST控制器1052藉由使用先前儲存在測試控制暫存器1053中的測試配置資料來覆蓋來自配置資料儲存1020的資料來控製配置資料。由第二BIST控制器1052所控制的ALU控制多工器1054從測試控制暫存器1053中選擇取代配置資料,而不是從配置資料儲存1020中選擇配置資料。第二BIST控制器1052亦控制MISR 1055,確保來自輸出資料匯流排1089的資料如本文前面所揭露的那樣被壓縮,並且壓縮資料儲存在特徵暫存器1057中,而外部測試器可透過測試介面1050從特徵暫存器1057讀取壓縮資料。
此為用於實現如本文所述的計算單元的可配置處理器的配置的一個簡化範例。可配置處理器可以其他方式配置以實現計算單元。其他類型的可配置處理器可以其他方式實現計算單元。此外,在若干範例中,可使用專用邏輯或專用邏輯與指令控制處理器的組合來實現計算單元。 注意事項
我們描述了包含BIST的處理器單元的許多實現及其方法。
所揭露之技術可作為系統、方法或製品(article of manufacture)來實施。一實現的一個或多個特徵可與基礎實現相結合。不相互排斥的實現被教示為可組合的。一實現的一個或多個特徵可與其他實現結合。本發明定期地提醒使用者這些選項。省略重複這些選項的敘述的若干實現不應被視為限制前述章節中所教示的組合,即這些敘述茲以引用方式依序地併入以下各實現中。
儘管實施方式已針對其特定實現進行了描述,但這些特定實現僅僅是說明性的而非限制性的。實施方式可參考具體的結構實現及方法,並不旨在將技術限制於具體揭露的實現及方法。可使用其他特徵、元件、方法和實現來實施該技術。實現的描述係為了說明本發明技術,而不是限制其範圍,其範圍由申請專利範圍界定。所屬技術領域中具有通常知識者能瞭解以上描述的多種等效變化。
說明書(包含申請專利範圍、摘要及圖式)中所揭露的所有特徵,以及所揭露的任何方法或處理程序中的所有步驟,可以任何組合進行結合,除了這些特徵及/或步驟當中至少一些的組合為互斥的。除非另有特意地說明,否則說明書(包含申請專利範圍、摘要及圖式)中所揭露的的每個特徵可由提供相同、等效或類似目的之其他的特徵來取代。
儘管實施方式已針對其特定實現進行了描述,但這些特定實現僅僅是說明性的而非限制性的。舉例而言,許多操作可在CGRA上、在系統單晶片(SoC)上、在特定應用積體電路(ASIC)上、在可程式化處理器上或在可程式邏輯裝置(諸如現場可程式化閘陣列(FPGA)之類)上實現,而排除至少部分專用硬體的需要。實現可為單晶片,亦可為多晶片模組(multi-chip module,MCM),其將多個半導體晶粒封裝在單個封裝中。所有這些變化及修改都將被認為是在本案所揭露之技術的範圍內,其性質將由前面的敘述所確定。
用於製造電子裝置的任何適當的技術都可用於實現特定實現的電路,包含CMOS、FinFET、BiCMOS、雙極(bipolar)、JFET、MOS、NMOS、PMOS、HBT、MESFET等。可採用不同的半導體材料,例如矽、鍺、SiGe、GaAs、InP、GaN、SiC、石墨烯(graphene)等等。電路可具有單端或差動輸入,以及單端或差動輸出。電路的端子可作為輸入、輸出或兩者,或者處於高阻抗狀態,或者它們可運作以接收供電、接地參考、參考電壓、參考電流或其他。儘管訊號的物理處理可能以特定順序呈現,但此順序在不同的特定實現中可能會被改變。在若干特定實現中,在本說明書中顯示為連續的多個元件、裝置或電路可平行運行。
可藉由使用程式化的通用數位電腦、特定應用積體電路、可程式邏輯裝置、現場可程式化閘陣列、光學、化學、生物、量子或奈米工程系統等來實現特定實現。可使用其他組件及機構。一般而言,特定實現的功能可藉由本領域已知的任何方式來完成。
亦應當理解,根據一特定應用,如有益處,圖式中描繪的該等元件其中之一或多者亦可以更加分離或整合的方式實現,或者甚至在某些情況下被移除或呈現為不可用的(inoperable)。
因此,雖然在本文描述了特定實現,但修改的範圍、各種變化及替換係有意包含在前述揭露中,且應能理解,在不悖離所闡述的範圍及精神的情況下,在某些情況下,能採用特定實現的若干特徵而不需要對應地使用其他特徵。據此,可進行許多修改,以使特定的情況或材料適合實質的範圍及精神。
100:處理器單元 110:記憶體 140:算術邏輯單元(ALU) 150:ALU控制電路 160:測試介面 170:MBIST控制器 190:輸入資料匯流排 192:中間匯流排 198:輸出資料匯流排 200:處理器單元 210:記憶體 220:邏輯電路 230:多工器 240:算術邏輯單元(ALU) 250:ALU控制電路 260:測試介面 270:MBIST控制器 290:輸入資料匯流排 292:中間匯流排 294:輸入資料匯流排 296:中間匯流排 297:中間匯流排 298:輸出資料匯流排 300:處理器單元 310:記憶體 340:算術邏輯單元(ALU) 350:ALU控制電路 360:測試介面 362:測試控制暫存器 370:BIST控制器 371:BIST輸入匯流排 372:多工器 374:多工器 380:多輸入特徵暫存器(MISR) 382:測試結果壓縮器 385:特徵暫存器 390:輸入資料匯流排 391:中間匯流排 392:中間匯流排 398:輸出資料匯流排 400:處理器單元 410:記憶體 420:邏輯電路 430:多工器 440:算術邏輯單元(ALU) 450:ALU控制電路 460:測試介面 462:測試控制暫存器 470:BIST控制器 471:BIST輸入匯流排 472:多工器 473:多工器 474:多工器 480:多輸入特徵暫存器(MISR) 482:測試結果壓縮器 485:特徵暫存器 490:輸入資料匯流排 491:中間匯流排 492:中間匯流排 494:輸入資料匯流排 495:中間匯流排 496:中間匯流排 497:中間匯流排 498:輸出資料匯流排 500:方法 510:步驟 520:步驟 530:步驟 540:步驟 550:步驟 560:步驟 570:步驟 580:步驟 590:步驟 600:測試系統 610:可重新配置處理器 615:可配置單元陣列 616:測試匯流排 618:資料匯流排 620:測試器 625:線 628:測試介面 630:測試主機 635:線 638:I/O介面 640:記憶體 645:線 648:記憶體介面 700:CGRA處理器 710:磚區 711:交換器 712:交換器 713:交換器 714:交換器 715:交換器 716:交換器 720:磚區 738:I/O介面 800:可配置單元陣列 801:BIST邏輯 802:BIST邏輯 803:BIST邏輯 811:交換器 812:交換器 818:位址產生器(AG) 820:鏈路 821:互連 831:鏈路 841:圖樣記憶體單元(PMU) 850:可配置單元陣列 851:子陣列 852:子陣列 853:子陣列 854:圖樣記憶體單元(PMU) 855:圖樣計算單元(PCU) 856:第一組BIST電路 857:第二組BIST電路 861:子陣列 862:第一個PMU 863:最後一個PCU 900:可配置PMU 910:輸入資料匯流排 911:純量FIFO 912:向量FIFO 915:控制區塊 916:計數器 920:可重新配置的純量資料路徑 930:高速暫存記憶體 931:記憶體 932:記憶體 933:記憶體 934:記憶體 935:儲存與緩衝邏輯 950:測試介面 960:第一BIST控制器 972:多工器 974:多工器 976:多工器 1000:可配置PCU 1010:輸入配置資料 1020:配置資料儲存 1021:ALU控制輸入 1022:線 1040:單元配置加載邏輯 1050:測試介面 1052:第二BIST控制器 1053:測試控制暫存器 1054:ALU控制多工器 1055:多輸入特徵暫存器(MISR) 1056:測試結果壓縮器 1057:特徵暫存器 1060:向量FIFO區塊 1070:純量FIFO 1080:算術邏輯單元(ALU) 1081:功能單元 1082:功能單元 1083:功能單元 1084:功能單元 1085:功能單元 1086:功能單元 1089:輸出資料匯流排 1090:控制區塊 1091:菊鏈完成匯流排 1092:菊鏈命令匯流排 1093:菊鏈邏輯 1094:計數器鏈 MAGCU1:位址產生與合併單元(AGCU) MAGCU2:AGCU AGCU12:AGCU AGCU13:AGCU AGCU14:AGCU AGCU22:AGCU AGCU23:AGCU AGCU24:AGCU L11:鏈路 L12:鏈路 L13:鏈路 L14:鏈路 L22:鏈路 L31:鏈路
[圖1]繪示處理器單元,諸如在粗粒度可重新配置架構(Coarse Grain Reconfigurable Architecture,CGRA)晶片中使用的。
[圖2]繪示另一處理器單元的方塊圖,諸如可能在多處理器晶片中使用的。
[圖3]繪示具有內建自我測試的另一處理器單元。
[圖4]繪示在所揭露之技術的實現中具有BIST結構的另一處理器單元。
[圖5]繪示用於在所揭露之技術的實現中測試在處理器單元中的資料路徑的方法。
[圖6]係描繪在所揭露之技術的實現中包含可重新配置處理器、測試器、測試主機及記憶體的測試系統的系統圖。
[圖7]係CGRA處理器的組件的簡化方塊圖。
[圖8A]係在所揭露之技術的實現中包含可配置單元陣列的磚區(tile)的簡化圖。
[圖8B]係在所揭露之技術的實現中包含可配置單元陣列的磚區的另一例示圖。
[圖9]係描繪包含BIST電路的例示性可配置圖樣記憶體單元(Pattern Memory Unit,PMU)的方塊圖。
[圖10]係描繪包含BIST電路的例示性可配置圖樣計算單元(Pattern Compute Unit,PCU)的方塊圖。
在圖式中,相同的參考編號可指示功能上類似的元件。在圖式中繪示出的且在以下的實施方式中描述的系統及方法可以各種各樣的不同實現來設置及設計。圖式及實施方式均不旨在限制所請求保護的範圍。反而,它們僅代表所揭露之技術的不同實現的範例。
600:測試系統
610:可重新配置處理器
615:可配置單元陣列
616:測試匯流排
618:資料匯流排
620:測試器
625:線
628:測試介面
630:測試主機
635:線
638:I/O介面
640:記憶體
645:線
648:記憶體介面

Claims (28)

  1. 一種系統,包含: 處理器單元陣列,包含兩個或更多個處理器單元子陣列,其中: 該兩個或更多個子陣列中的各子陣列包含:測試圖樣產生器;將來自該測試圖樣產生器的測試向量套用至資料路徑的資料輸入之電路;以及測試結果輸出;其中: 子陣列,被配置以在該測試結果輸出處輸出測試結果; 處理器單元包含記憶體、與該記憶體的讀取資料輸出耦合的算術邏輯單元(arithmetic logic unit,ALU)、具有與ALU的控制輸入耦合的控制輸出的ALU控制電路、包含該測試圖樣產生器的測試控制器、測試控制暫存器及具有與ALU輸出耦合的輸入的特徵暫存器; 該測試控制器被配置以產生虛擬隨機測試圖樣並將該虛擬隨機測試圖樣套用至記憶體輸入; 該測試控制器被配置以使用從該測試控制暫存器獲得的取代控制訊號(replacement control signal )來取代來自該ALU控制電路的ALU控制訊號;以及 該特徵暫存器被配置以儲存來自該ALU的輸出的壓縮測試結果。
  2. 如請求項1之系統,其中,該資料路徑包含多個平行資料通道。
  3. 如請求項1之系統,其中,子陣列包含該陣列的一個處理器單元。
  4. 如請求項1之系統,其中,子陣列包含該陣列的兩個或更多個處理器單元。
  5. 如請求項1之系統,其中,所有子陣列包含相同的電路。
  6. 如請求項1之系統,其中,子陣列包含測試結果壓縮器,其與該資料路徑的輸出耦合,以從資料路徑輸出訊號中獲得測試特徵,以及其中,該壓縮測試結果包含該測試特徵。
  7. 如請求項6之系統,其中,該子陣列包含用於儲存該測試特徵的特徵暫存器,以及其中,該特徵暫存器可透過該測試結果輸出從該子陣列外部被讀取。
  8. 如請求項1之系統,其中,該處理器單元陣列設置在單個積體電路晶片上。
  9. 如請求項1之系統,其中,子陣列的資料路徑包含記憶體,以及該測試向量包含記憶體測試圖樣。
  10. 如請求項1之系統,其中,該子陣列的資料路徑包含邏輯,以及該測試向量包含虛擬隨機數。
  11. 如請求項10之系統,其中,該子陣列的資料路徑包含記憶體及ALU,以及其中,該測試向量被寫入至記憶體位址,且記憶體資料從該記憶體位址被讀取並由該ALU處理。
  12. 如請求項11之系統,其中,該ALU包含單指令多資料(single instruction, multiple data,SIMD)處理器。
  13. 如請求項11之系統,其中,該子陣列包含:ALU控制暫存器,以操縱該ALU的操作功能;以及測試控制暫存器,以在處理從該記憶體位址讀取的該記憶體資料時操縱該ALU的功能。
  14. 如請求項13之系統,其中,該測試控制暫存器透過測試介面為可程式化的。
  15. 如請求項1之系統,其中,子陣列的資料路徑包含多個ALU。
  16. 如請求項1之系統,其中,子陣列包含該處理器單元陣列的至少一部分的列。
  17. 一種系統,包含: 處理器單元陣列,包含兩個或更多個處理器單元,其中各處理器單元包含:測試圖樣產生器;將來自該測試圖樣產生器的測試向量套用至資料路徑的資料輸入之電路;以及測試結果輸出;其中: 處理器單元,被配置以在該測試結果輸出處輸出測試結果; 處理器單元包含記憶體、與該記憶體的讀取資料輸出耦合的算術邏輯單元(ALU)、具有與ALU的控制輸入耦合的控制輸出的ALU控制電路、包含測試圖樣產生器的測試控制器,測試控制暫存器及具有與邏輯單元輸出耦合的輸入的特徵暫存器; 該測試控制器被配置以產生虛擬隨機測試圖樣並將該虛擬隨機測試圖樣套用至記憶體輸入; 該測試控制器被配置以使用從該測試控制暫存器獲得的取代控制訊號(replacement control signal)來取代來自該ALU控制電路的ALU控制訊號;以及 該特徵暫存器被配置以儲存來自該ALU的輸出的壓縮測試結果。
  18. 如請求項17之系統,其中,該資料路徑包含多個平行資料通道。
  19. 如請求項17之系統,其中處理器單元包含測試結果壓縮器,其與該資料路徑的輸出耦合,以從資料路徑輸出訊號獲得測試特徵,以及其中,該壓縮測試結果包含該測試特徵。
  20. 如請求項19之系統,其中,該處理器單元包含用於儲存該測試特徵的特徵暫存器,以及其中,該特徵暫存器可透過該測試結果輸出從該處理器單元外部被讀取。
  21. 如請求項17之系統,其中,該處理器單元陣列設置在單個積體電路晶片上。
  22. 如請求項17之系統,其中,處理器單元的資料路徑包含記憶體,以及該測試向量包含記憶體測試圖樣。
  23. 如請求項17之系統,其中,處理器單元的資料路徑包含邏輯,以及該測試向量包含虛擬隨機數。
  24. 如請求項23之系統,其中,該處理器單元的資料路徑包含記憶體及ALU,以及其中,該測試向量被寫入至記憶體位址,且記憶體資料從該記憶體位址被讀取並由該ALU處理。
  25. 如請求項24之系統,其中,該ALU包含單指令多資料(single instruction, multiple data,SIMD)處理器。
  26. 如請求項24之系統,其中,該處理器單元包含:ALU控制暫存器,以操縱該ALU的操作功能;以及測試控制暫存器,以在處理從該記憶體位址讀取的該記憶體資料時操縱該ALU的功能。
  27. 如請求項26之系統,其中,該測試控制暫存器透過測試介面為可程式化的。
  28. 如請求項17之系統,其中,處理器單元的資料路徑包含多個ALU。
TW111125339A 2021-07-09 2022-07-06 具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統 TW202305596A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202163220266P 2021-07-09 2021-07-09
US63/220,266 2021-07-09
US17/501,969 2021-10-14
US17/501,969 US11449404B1 (en) 2021-07-09 2021-10-14 Built-in self-test for processor unit with combined memory and logic
US17/503,227 2021-10-15
US17/503,227 US11428737B1 (en) 2021-07-09 2021-10-15 Array of processor units with local BIST

Publications (1)

Publication Number Publication Date
TW202305596A true TW202305596A (zh) 2023-02-01

Family

ID=83007700

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111125339A TW202305596A (zh) 2021-07-09 2022-07-06 具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統

Country Status (2)

Country Link
US (2) US11449404B1 (zh)
TW (1) TW202305596A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11823758B2 (en) * 2021-02-10 2023-11-21 Taiwan Semiconductor Manufacturing Company, Ltd. Conducting built-in self-test of memory macro
US11776656B2 (en) * 2021-04-23 2023-10-03 Texas Instruments Incorporated System and method for parallel memory test

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3761695A (en) 1972-10-16 1973-09-25 Ibm Method of level sensitive testing a functional logic system
US4929889A (en) * 1988-06-13 1990-05-29 Digital Equipment Corporation Data path chip test architecture
US5369752A (en) 1992-06-01 1994-11-29 Motorola, Inc. Method and apparatus for shifting data in an array of storage elements in a data processing system
US6317819B1 (en) * 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
JP4099730B2 (ja) 1997-08-21 2008-06-11 ソニー株式会社 ディジタル信号再生装置
US5978946A (en) * 1997-10-31 1999-11-02 Intel Coporation Methods and apparatus for system testing of processors and computers using signature analysis
US6249892B1 (en) * 1998-10-29 2001-06-19 Advantest Corp. Circuit structure for testing microprocessors and test method thereof
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
DE10033349A1 (de) * 2000-07-08 2002-01-17 Bosch Gmbh Robert Verfahren und Anordnung zum Testen digitaler Schaltungen
US7051255B2 (en) 2002-12-20 2006-05-23 International Business Machines Corporation Method and apparatus for reducing power dissipation in latches during scan operation
US6882583B2 (en) 2003-04-30 2005-04-19 International Business Machines Corporation Method and apparatus for implementing DRAM redundancy fuse latches using SRAM
US7231563B2 (en) 2004-05-26 2007-06-12 Lsi Corporation Method and apparatus for high speed testing of latch based random access memory
US8214172B2 (en) 2008-11-11 2012-07-03 Nec Laboratories America, Inc. Systems and methods for locating defective components of a circuit
GB2471067B (en) 2009-06-12 2011-11-30 Graeme Roy Smith Shared resource multi-thread array processor
US8438442B2 (en) * 2010-03-26 2013-05-07 Freescale Semiconductor, Inc. Method and apparatus for testing a data processing system
US9336342B2 (en) 2011-09-23 2016-05-10 Synopsys, Inc. Memory hard macro partition optimization for testing embedded memories
WO2014013298A1 (en) 2012-07-20 2014-01-23 Freescale Semiconductor, Inc. Register file module and method therefor
US8924801B2 (en) 2013-02-14 2014-12-30 Lsi Corporation At-speed scan testing of interface functional logic of an embedded memory or other circuit core
US9134377B2 (en) 2013-03-14 2015-09-15 Teradyne, Inc. Method and apparatus for device testing using multiple processing paths
US9417287B2 (en) 2013-04-17 2016-08-16 Synopsys, Inc. Scheme for masking output of scan chains in test circuit
GB2524560A (en) 2014-03-27 2015-09-30 St Microelectronics Res & Dev A circuit for use in scan testing
US9401223B2 (en) * 2014-05-09 2016-07-26 Oracle International Corporation At-speed test of memory arrays using scan
CN105572573B (zh) 2014-10-30 2018-08-24 国际商业机器公司 用于存储器时序测试的扫描链、扫描链构建方法和相应装置
JP6702560B2 (ja) 2017-02-21 2020-06-03 株式会社東芝 半導体集積回路
US11047910B2 (en) 2017-12-29 2021-06-29 Texas Instruments Incorporated Path based controls for ATE mode testing of multicell memory circuit
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US10867689B2 (en) * 2019-02-12 2020-12-15 Micron Technology, Inc. Test access port architecture to facilitate multiple testing modes
US11294670B2 (en) 2019-03-27 2022-04-05 Intel Corporation Method and apparatus for performing reduction operations on a plurality of associated data element values
US11645057B2 (en) * 2020-09-24 2023-05-09 SambaNova Systems, Inc. Systems and methods for memory layout determination and conflict resolution

Also Published As

Publication number Publication date
US11428737B1 (en) 2022-08-30
US11449404B1 (en) 2022-09-20
TW202324434A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
US7685487B1 (en) Simultaneous core testing in multi-core integrated circuits
US8988956B2 (en) Programmable memory built in self repair circuit
TW202305596A (zh) 具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統
US8386864B2 (en) Locally synchronous shared BIST architecture for testing embedded memories with asynchronous interfaces
US7814385B2 (en) Self programmable shared bist for testing multiple memories
JP2000137061A (ja) システムオンチップにおける埋込コアの試験方法及び構成
US8898529B2 (en) High performance compaction for test responses with many unknowns
TW200424842A (en) Method and apparatus for testing embedded cores
US7844867B1 (en) Combined processor access and built in self test in hierarchical memory systems
CN115020266A (zh) 一种2.5D Chiplet绑定后测试电路
KR100717207B1 (ko) 미리 기억된 가중치를 사용하는 가중치 랜덤 패턴 시험
US20030046625A1 (en) Method and apparatus for efficient control of multiple tap controllers
JPWO2002033708A1 (ja) メモリの不良救済解析処理方法及びこの方法を実施するメモリ試験装置
TWI840870B (zh) 具有組合式記憶體、邏輯及內建自我測試之處理器單元
WO2023283073A1 (en) A processor unit with combined memory, logic, and bist
US20210335435A1 (en) Jtag based architecture allowing multi-core operation
US11367497B2 (en) Memory device with improved sensing structure
US20050044460A1 (en) Mapping test mux structure
US7673206B2 (en) Method and system for routing scan chains in an array of processor resources
US11639962B1 (en) Scalable scan architecture for multi-circuit block arrays
Lewis et al. Test strategies for 3D die stacked integrated circuits
JP2004093351A (ja) 組み込み自己検査回路
US11984178B2 (en) Methods and devices for flexible RAM loading
Bhaysar A built-in self-test method for write-only content addressable memories
JPH0886836A (ja) 半導体集積回路装置