Memory Repair (五)

Compression Algorithm and Fuse Box Organization

????????通常情況下,這部分信息對于實現BISR(內置自修復)并非必需,但對于診斷問題可能有所幫助。

Compression and Fuse Box Organization Overview

????????BISR controller采用的壓縮算法基于兩個事實:大多數存儲器無需修復,且BISR寄存器中存儲的值主要為0。因此,壓縮后的修復信息由存儲在fuse box中的兩種字類型構成:Zero Count(零計數)和Repair Data(修復數據)。每個字的第一個比特(稱為Opcode)標識其類型——Zero Count字的Opcode為0,Repair Data字的Opcode為1。
每個字的長度取決于從電路中自動提取的參數:Zero Count字的長度設定為1 + Log2(MaxChainLength),其中MaxChainLength是BISR鏈的長度(可通過write_memory_repair_dictionary命令推導);Repair Data字的長度則設定為最長的BISR寄存器長度(該值從電路中自動提取并記錄在MBISR TCD文件中),如圖5-27示例及"Single-Chain Case"章節所述。

????????????????

????????在Repair Data字中,第一個比特除了作為Opcode外,本身也是修復數據的一部分。Repair Data字不一定會與BISR寄存器邊界對齊,因為controller無法預知這些邊界的位置。正因如此,當Repair Data字作為BISR鏈中的最后一個字時,它可能是不完整的。

????????圖5-51(a)展示了一個典型示例,顯示了fuse box中包含的針對只需單次修復電路的修復信息。這些字是從左向右逐位寫入fuse box的,即fuse box地址0位于最左側。controller默認每個熔絲都有其獨立地址。對于面向字操作的fuse box,fuse box interface會將來自controller的fuse box地址轉換為適合該特定fuse box的字地址,然后對該字中的某一位進行編程。

????????如圖所示為單個電源域組的示例,其中可能采用任意組合的Zero Count和Repair Data字。

????????當存在多個電源域組時,工具會按照上述方式對每個組的數據進行壓縮。此外,BISR controller會在fuse box中存儲組指針,用于定位除第一個組外其他組的特定修復信息。如圖5-51(b)所示,每個指針需要占用若干熔絲(記為NumberOfAddressBits),其數量等于fuse box地址位的位數。用戶可通過TCD文件中的FuseBoxInterface/Interface address屬性指定fuse box地址位的數量。組指針按照從最高有效位(MSB)到最低有效位(LSB)的順序存儲,這意味著指針的MSB位于fuse box中的較低地址處。圖5-51(c)顯示,在默認的單次編程會話配置(max_fuse_box_programming_sessions = 1)下,BISR controller將所有指針從地址0開始集中存放在fuse box的起始位置。

????????當使用硬增量修復(max_fuse_box_programming_sessions > 1)時,fuse box 中會存儲額外數據以指示 fuse box 被編程的次數以及每次編程會話的修復數據位置。圖5-52展示了 max_fuse_box_programming_sessions = 4 的示例:前四位是會話標志位,當某次會話存在修復數據時,對應的會話標志位會被設為1。BISR controller 將第四次會話的標志位存儲在 fuse box 的地址0處,而第一次會話的標志位則存儲在地址3處。

????????下一組 fuse 是測試插入指針(test insertion pointer)部分。除第一次會話外,每次會話都擁有一個 test insertion pointer,該指針位于 fuse box 中緊接會話標志位(session flag)之后的位置。與電源域組指針(power domain group pointer)類似,test insertion pointer 所需的 fuse 數量等于 fuse box 地址位數。fuse box 以從最高有效位(MSB)到最低有效位(LSB)的順序存儲 test insertion pointer,這意味著指針的 MSB 位于 fuse box 中的較低地址處。

????????位于 test insertion pointer 部分之后的每個編程會話(programming session)內容均按圖5-51所示方式組織。每個編程會話都是獨立自包含的——換言之,當采用自主 fuse 編程方法(autonomous fuse programming method)時,系統不會復用之前任何會話的修復信息。

CompressBisrChain Script Usage

????????CompressBisrChain腳本主要用于集成eFuse且無法通過BISR controller的autonomous run mode進行片上編程、必須依賴外部編程的設計方案。使用該腳本的次要優勢體現在:對于多會話fuse編程(硬增量修復),當存在具有相同BISR chain長度的Power Domain Groups(PDGs)時,其內置優化技術可減少fuse用量——此情況下,優化機制會盡可能復用之前會話的fuse。采用CompressBisrChain腳本會使制造流程略微復雜化,因為需要先提取修復數據,經腳本處理后重新載入芯片進行fuse編程,具體流程將在本節后續詳述。

????????CompressBisrChain腳本通過復用指針來減少fuse用量——若特定Power Domain Group(PDG)無需新修復,則直接復制前次編程會話的PDG數據指針。該指針可跨多個會話重復使用。在所示范例實現中,首個組別通過DftSpecification的PowerDomainOptions/power_domain_priority_order屬性定義,這帶來一項限制:該組指針已在BISR controller中硬編碼且不可修改,因此不同會話無法共享該組的修復信息。為降低此限制的影響,建議將最小PDG設為最高優先級,從而減少該PDG需要修復的概率。

????????圖5-53針對圖5-52所示示例,對比了FuseBox Access與Autonomous Self Fuse Box Program兩種方法的差異。在Session 1階段,假設所有PDG長度均不相同,兩種方法產生的結果完全一致。進入Session 2時,由于PDG2組無需新修復操作,其修復數據可被復用——此時PDG2的指針被復制到Session 2中并指向Session 1的原始修復信息(實際修復數據未被復制)。

????????但PDG1的情況則有所不同。由于前文所述的限制,即使數據完全相同,其修復數據也必須被完整復制。而PDG3由于需要新增修復內容,因此需寫入新的修復數據塊。進入Session 3時,僅PDG1需要更新數據——PDG2指針繼續指向Session 1的原始數據,PDG3指針則指向Session 2的修復數據(二者均通過指針復制實現復用)。

????????在圖5-53中,所有指向現有數據的指針均以紅色標示,并反向指向fuse box的地址空間。本示例中僅使用了四個可用會話中的三個,這意味著系統中仍存在可編程fuse的空間。雖然您很可能會選擇使用autonomous mode進行fuse編程(因其操作比使用CompressBisrChain腳本更簡便),但兩種方法均可選用。二者的核心區別在于:autonomous mode不會復用之前任何會話的修復信息。

????????當使用CompressBisrChain腳本進行第二次或后續fuse編程會話(增量修復)時,必須在制造流程中增加一個步驟:在寫入新fuse之前讀取現有fuse box內容。如圖5-55所示,該步驟通過BISR controller的fuse_box_access運行模式實現——在確定需要修復后,系統將逐位讀取整個fuse box。為節省測試時間,建議僅讀取預留存儲內存修復信息的fuse box部分,這可通過在PatternsSpecification MemoryBisr controller的FuseBoxAccessOptions封裝中指定read_address(范圍)屬性來實現。例如:當fuse box具有1024個fuse但僅512個預留用于內存修復時,可按以下方式配置。

????????

TDO引腳上的誤匹配信號標示了fuse box中哪些位置被編程為1值,該信息將被腳本用于以下關鍵操作:

  1. 定位包含修復信息的最后一個會話指針

  2. 當存在多個組時識別所有PDG指針

  3. 確定每個組關聯的修復信息

  4. 計算可供寫入新修復信息的下一可用fuse位置

隨后通過常規BIRA-to-BISR轉換流程提取新修復方案:在旋轉BISR chain時持續比對TDO與0值,從而定位BISR chain中值為1的觸發器。腳本據此比對各組新壓縮修復數據,并判斷現有修復數據是否可被復用。

CompressBisrChain

????????CompressBisrChain腳本隨Tessent產品版本提供,專門用于根據您設計的壓縮算法和fuse box架構來壓縮BISR chain的內容。

????????在采用Tessent BISR控制器的可修復存儲器設計中,提供兩種內存修復方法:第一種采用autonomous run_mode fuse box編程方式,通過片上執行BISR chain壓縮及fuse box編程;第二種則使用TAP access模式(通過fuse_box_access run_mode屬性指定),該模式需配合CompressBisrChain腳本實現自動化操作。

TAP access模式下的fuse box編程需執行以下步驟:

  1. 從測試模式輸出提取BISR chain信息

  2. 壓縮BISR chain數據

  3. 通過TAP access模式編程fuse box

????????CompressBisrChain腳本會讀取描述設計BISR chain設置的配置文件(如-configFile參數說明所述),同時解析由PatternsSpecification生成的仿真日志文件(參見示例章節)。該腳本將在當前工作目錄生成四個*.pattern_spec文件,其內容可直接嵌入PatternsSpecification。這些文件定義的獨立測試步驟(TestSteps)可用于:

  • fuse box編程

  • fuse box數據讀取

  • BISR chain編程

  • BISR chain數據移出

????????以下?PatternSpecification?示例遵循?CompressBisrChain?腳本的制造流程(如圖5-55所示),僅展示單個pre-repair pattern (TP1.1) 和?post-repair pattern (TP2.3)。后續修復會話需包含?FuseBox Access (Read fuses)?流程步驟(如圖5-54所示),但此示例中未予體現。

????????在?MemoryBist_PreRepair?測試步驟 (TP1.1) 中,MemoryBIST?會測試所有存儲器,并判斷是否存在無法修復的故障——若存在,則芯片將被判定為不良品。在此過程中,BIRA controller?會收集故障信息,并為可修復的存儲器計算修復方案。隨后,MemoryBist_CheckRepairNeeded?測試步驟 (TP1.3) 通過檢測所有存儲器的?Repair_Status[0]?寄存器是否為高電平,來判斷是否需要修復。

????????若需修復存儲器,則需在?tester?上運行?BisrChainAccess?測試模式。BiraToBisr?測試步驟會將?BIRA?計算的修復方案加載到?BISR registers?中,并循環移位寄存器。在移位過程中,tester?會將?TDO?輸出與零進行比較,并記錄不匹配的情況。隨后,需將這些不匹配數據轉換為符合紅色標注格式的?“simulation.log”?文件。

????????您運行CompressBisrChain腳本,并將創建的"simulation.log"文件作為腳本輸入,同時通過-configFile開關指定BISR參數配置文件。該腳本會解析"simulation.log"文件,提取紅色高亮顯示的信息,并生成四個*.pattern_spec輸出文件。您使用由CompressBisrChain腳本創建的FuseBoxProgram.pattern_spec文件中的TestStep,在制造流程的TP2.2階段編寫fuse box。此步驟的示例pattern以及后續驗證fuse box內容和執行修復后測試的流程步驟如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/84572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84572.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/84572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

雙系統(win+linux)根目錄擴容(不掉GPU驅動)

先看效果,原來的根目錄僅50G,從/home節點分出擴容后變為250GB; 因為根分區是系統當前運行的文件系統,Linux系統啟動后會鎖定根分區,防止對其進行修改。這時使用系統內的工具(如gparted)調整根分…

oracle 23ai對象注釋新特性ANNOTATIONS

我們知道以前數據庫版本注釋方式是用COMMENT,如下 COMMENT ON COLUMN 表名.字段名 IS 字段注釋; oracle 23ai對象注釋有新增了ANNOTATIONS,比如創建如下表: SQL> create table test.t_user( id number, name varchar(200) ANNOTATIONS …

VMware 虛擬機開機自啟動配置指南

方法一:通過啟動文件夾設置(簡單版) 打開啟動文件夾: 按下 Win R 快捷鍵輸入 shell:startup 并回車 創建啟動腳本: 在打開的文件夾中右鍵新建一個文本文件命名為 vm_start.bat輸入以下內容: echo off &…

2025pmx文件怎么打開blender和虛幻

pmx文件怎么打開blender 前言 一坑接一坑。 意思很簡單,就是給Blender、3dsmax裝插件,然后就可以打開了。但是報錯就要多走很多錯路。 記錄一下。 內容 參考文章:https://blog.csdn.net/c858845275/article/details/144180555 我的Ble…

Kotlin基礎語法五

繼承與重載的open關鍵字 KT所有的類,默認是final修飾的,不能被繼承,和Java相反 open:移除final修飾 類型轉換 open class Person2(private val name: String) {fun showName() "父類 的姓名是【$name】"// KT所有的…

MySQL數據庫:關系型數據庫的基石

文章目錄 每日一句正能量前言一、MySQL簡介(一)什么是MySQL?(二)MySQL的歷史 二、MySQL的特點(一)開源與免費(二)高性能(三)跨平臺支持&#xff0…

【kafka】Golang實現分布式Masscan任務調度系統

要求: 輸出兩個程序,一個命令行程序(命令行參數用flag)和一個服務端程序。 命令行程序支持通過命令行參數配置下發IP或IP段、端口、掃描帶寬,然后將消息推送到kafka里面。 服務端程序: 從kafka消費者接收掃描任務信息通過調用masscan啟動探測任務,獲取進度和結果信息,…

ARM 和 x86_64是什么關系

什么是 ARM 和 x86_64? 它們都是 CPU 指令集架構(ISA) 指令集架構(Instruction Set Architecture)就是: CPU 能夠理解和執行的“語言”和“命令格式”。 類比解釋:指令集就像“語言” 類比對…

nginx配置中有無‘‘/’’的區別

在Nginx配置中,location指令末尾的斜杠/和proxy_pass目標地址末尾的斜杠/組合使用會產生顯著差異。以下是四種組合的區別詳解: ??核心區別對比表?? 配置方案匹配規則請求URI傳遞邏輯實際轉發效果示例location /api/ proxy_pass ...701/僅匹配/api/…

系統安全之身份認證

本篇我們對常用的身份認證協議做簡要的梳理,包括主流的 HTTP 相關認證協議以及證書密鑰對、新興的 WebAuthn 認證。 HTTP 協議認證 RFC 7235 中定義了 HTTP 協議的認證框架,要求在支持 HTTP 協議的服務器,如果訪問服務的身份驗證失敗&#…

部署http服務

使用flask搭建一個http服務,能夠通過本地的另外一個終端訪問對應接口,拿到服務端的計算結果 服務端: 創建一個test_http_dtw.py并運行 from flask import Flask, request, jsonifyapp Flask(__name__)# 示例分析函數 def analysis(data):…

WLAN 技術指南:從入門到原理

文章目錄 目錄 文章目錄 前言 一.WLAN 基本概念 有線側組網概念 AP-AC 組網方式 AC 連接方式 CAPWAP 協議 無線側組網概念 無線信道 ?編輯 BSS/SSID/BSSID ?編輯 VAP ESS 二.WLAN 組網架構 基本的 WLAN 組網架構 四.WLAN 工作原理 AP 上線 AP 獲取 IP 地址階段 CAP…

語言學習專用AI播放器推薦:LLPlayer

學語言,經常會看大量的比較優秀的視頻材料,那么推薦一款語言學習利器,極大提高生產力。 LLPlayer 是一款專為語言學習者設計的獨特視頻播放器。 它具有許多重要功能,例如可同時顯示文本字幕和位圖字幕、使用 OpenAI Whisper 自動…

mysql 關聯表查詢,索引失效

來源表: ##示例 CREATE TABLE order_wide (order_id varchar(33) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 訂單ID,member_id int(11) DEFAULT NULL COMMENT 用戶ID,content varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 訂單標簽,PRIMARY KEY (order_…

Oracle DG庫手動注冊歸檔日志的兩種方法

Oracle DG庫手動注冊歸檔日志的兩種方法 注冊單個歸檔日志文件注冊多個歸檔日志文件有的時候由于網絡或各種原因,Oracle DG庫服務器上可能缺少部分歸檔日志文件,導致DG庫的MRP進程一直處于WAIT_FOR_GAP狀態。 此時我們可以手動從主庫或其他DG拷貝歸檔日志到當前DG服務器,并…

中小型VUE3項目創建流程相關命令tips

開新項目因為距離上次初始化時間太過久遠,忘記初始化命令的有多少? 不得已簡要記錄一下流程 1. 使用vite構建新項目 1.1 構建 npm create vite@latest my-vue-app --template vue1.2 安裝依賴 npm install1.3 啟動 npm run dev參考文檔 2. 添加需要的插件 2.1 準備工作…

Web后端開發(請求、響應)

目錄 請求: Postman: 簡單參數: 實體參數: 數組集合參數: 日期參數: Json參數: 路徑參數: 響應: 請求響應: 請求:獲取請求數據 響應&a…

Excel大廠自動化報表實戰(互聯網金融-數據分析周報制作上)

這是Excel大廠自動化報表實戰第二期--互聯網金融-數據分析周報制作上 數據資源已經與這篇博客捆綁,有需要者可以下載通過網盤分享的文件:2.4自動化報表-8月成交數據.xlsx,2.4自動化報表-8月獲客數據.csv等2個文件 鏈接: https://pan.baidu.co…

HTTP 網絡協議演進過程

網絡協議演進問題,涉及到HTTP版本之間的連接復用優化和協議升級(特別是從HTTP/2到HTTP/3)的核心變化。我們以 HTTP/1.0 到 HTTP/2.0,再到 HTTP/3.0 的演進順序來詳細解釋它們在通道復用(TCP/QUIC)上的優化和…

Xsens動捕和Manus數據手套在元宇宙數字人制作中提供解決方案

硬件連接與數據傳輸 Xsens與Manus集成:Xsens慣性動作捕捉系統負責捕捉人體的身體動作,Manus數據手套專門精確捕捉手指動作。Xsens動捕套裝上有接口或無線連接模塊,可與Manus手套配對和傳輸數據,將身體與手指跟蹤數據結合。 Face…