1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình

135 563 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 135
Dung lượng 2,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bên cạnh đó, nhiều mô hình lỗi mới của bộ nhớ nhúng trong SoC có thể không bị phát hiện, làm cho hoạt động của SoC sau quá trình kiểm tra truyền thống không ổn định, thậm chí không thể s

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

- NGUYỄN MINH DŨNG

NGHIÊN CỨU VÀ THIẾT KẾ MẠCH TỰ KIỂM TRA VÀ PHÂN TÍCH LỖI BỘ NHỚ NHÚNG VỚI GIẢI THUẬT KHẢ TRÌNH

CHUYÊN NGÀNH KỸ THUẬT ĐIỆN TỬ

LUẬN VĂN THẠC SĨ KỸ THUẬT

KỸ THUẬT ĐIỆN TỬ

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM NGỌC NAM

Hà Nội – Năm 2014

Trang 3

MỤC LỤC

MỤC LỤC I LỜI CAM ĐOAN IV DANH MỤC CÁC HÌNH VẼ V DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT XI

PHẦN MỞ ĐẦU 1

Chương 1 Tổng quan về kiểm tra bộ nhớ, các mô hình lỗi và mạch logic tự kiểm tra bộ nhớ 3

1.1 Giới thiệu 4

1.2 Mô hình lỗi của bộ nhớ 7

1.2.1 Các lỗi ô nhớ Memory Cell 10

1.2.2 Các lỗi giải mã địa chỉ (AFs) 11

1.2.3 Các lỗi Dynamic 12

1.3 Các thuật toán kiểm tra 13

1.3.1 Các thuật toán truyền thống 13

1.3.2 Các thuật toán March 14

1.4 Các kỹ thuật kiểm tra bộ nhớ 23

1.4.1 Kiểm tra chức năng 23

1.4.2 Kỹ thuật quét đường biên Boundary Scan 23

1.4.3 Kỹ thuật ghép cách li Multiplexor Isolation 25

1.4.4 Mạch logic tự kiểm tra Build-in self-test 26

1.5 Kết luận 30

Trang 4

Chương 2 Triển khai thiết kế 32

2.1 Tổng quan về hệ thống 32

2.1.1 Giới thiệu 32

2.1.2 Sơ đồ khối tổng quát 32

2.2 Thiết kế mạch BISD 34

2.2.1 Tín hiệu vào ra 36

2.2.2 Khối tạo chỉ thị lệnh Test Instruction Generator 37

2.2.3 Khối tạo tín hiệu điều khiển vật lý Physical Signal Generator 46

2.2.4 Khối tạo dữ liệu Data Background Top 53

2.2.5 Khối so sánh Comparator 62

2.2.6 Khối điều khiển hoạt động chính của mạch FSM BISD 64

2.3 Thiết kế khối Tap Controller 68

2.3.1 Sơ đồ khối 68

2.3.2 Tín hiệu vào ra 69

2.3.3 Mô tả hoạt động 70

2.4 Thiết kế khối RAM BISD Interface 77

2.4.1 Sơ đồ khối 77

2.4.2 Tín hiệu vào ra 78

2.4.3 Mô tả hoạt động và các khối chính 79

Chương 3 Phần mềm mô hình hóa hoạt động mạch BISD và mô hình lỗi bộ nhớ SRAM 84 3.1 Giới thiệu về phần mềm 84

3.2 Các khối mô hình hóa 84

Trang 5

3.2.1 Các file dữ liệu 85

3.2.2 Mô hình lỗi 90

3.2.3 Các mô đun chính 90

3.2.4 Các File kết quả 95

Chương 4 Kết quả mô phỏng, tổng hợp mạch BISD và hướng phát triển 97

4.1 Kết quả mô phỏng 97

4.1.1 Kết quả mô phỏng mạch BISD trên QuestaSim 99

4.1.2 Kết quả mô phỏng trên phần mềm mô hình hóa 99

4.1.3 Đối chiếu kết quả 99

4.1.4 Code coverage 101

4.2 Kết quả tổng hợp 105

4.3 Kết luận 107

4.4 Hướng phát triển 108

KẾT LUẬN 110

TÀI LIỆU THAM KHẢO 112

PHỤ LỤC 114

Trang 6

LỜI CAM ĐOAN

Trước hết, tôi xin gửi lời cảm ơn chân thành tới tập thể các thầy cô trong Viện Điện tử viễn thông, trường Đại học Bách Khoa Hà Nội đã tạo ra một môi trường tốt để tôi học tập và nghiên cứu Tôi cũng xin cảm ơn các thầy cô trong Viện Đào tạo sau đại học đã quan tâm đến khóa học này, tạo điều kiện cho các học viên có điều kiện thuận lợi để học tập và nghiên cứu Và đặc biệt tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo PGS.TS PHẠM NGỌC NAM, đã tận tình hướng dẫn và sửa chữa cho nội dung của luận văn này

Tôi xin cam đoan rằng nội dung của luận văn này hoàn toàn do tôi tìm hiểu, nghiên cứu và viết ra Tất cả đều được tôi thực hiện cẩn thận, có sự góp ý

và sửa chữa của giáo viên hướng dẫn

Tôi xin chịu trách nhiệm với tất cả nội dung trong luận văn này

Tác giả

Nguyễn Minh Dũng

Trang 7

DANH MỤC CÁC HÌNH VẼ

Hình 1-1 Kiến trúc chung SoC dựa trên các khối nhúng 4

Hình 1-2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC 5

Hình 1-3 Mô hình chức năng bộ nhớ SRAM 8

Hình 1-4 Mô hình chức năng rút gọn của bộ nhớ SRAM 8

Hình 1-5 Mô hình lỗi 9

Hình 1-6 So sánh độ phức tạp tính toán và thời gian kiểm tra 15

Hình 1-7 Khả năng phát hiện lỗi của một số thuật toán 19

Hình 1-8 Đánh giá thời gian kiểm tra của thuật toán March Cocktail 22

Hình 1-9 Memory boundary scan 24

Hình 1-10 Multiplexor Isolation 25

Hình 1-11 Kiến trúc mạch Build-in self-test 26

Hình 1-12 Kiến trúc mạch BISD 27

Hình 1-13 Thanh ghi EOP 28

Hình 1-14 Từ điển cấu trúc thông tin lỗi với thuật toán March-17N 28

Hình 1-15 Sơ đồ khối mạch BISD 29

Hình 1-16 Sơ đồ khối mạch BISR sử dụng Fuse Macro 30

Hình 2-1 Thiết kế chip SoC hỗ trợ mạch BISD 33

Hình 2-2 Sơ đồ khối mạch BISD 34

Hình 2-3 Sơ đồ khối TIG 37

Hình 2-4 Sơ đồ khối SAG 39

Hình 2-5 Giản đồ thời gian khối SAG 40

Hình 2-6 Khối SA Step Counter 41

Trang 8

Hình 2-7 Sơ đồ khối SAG ROM 42

Hình 2-8 Sơ đồ khối PAG 43

Hình 2-9 Giản đồ thời gian khối PAG 44

Hình 2-10 Cấu trúc của thanh ghi shift_data 44

Hình 2-11 Cấu trúc FIFO 45

Hình 2-12 Sơ đồ thuật toán khối PAG 46

Hình 2-13 Giản đồ thời gian đọc ghi Dolphin SP SRAM 47

Hình 2-14 Sơ đồ khối Physical Signal Generator 48

Hình 2-15 Giản đồ thời gian khối Physical Signal Generator 50

Hình 2-16 Sơ đồ khối Physical Counter 50

Hình 2-17 Thuật toán khối Physical Counter 52

Hình 2-18 Bảng dữ liệu không đảo chuẩn và dữ liệu đảo chuẩn 53

Hình 2-19 Sơ đồ khối Data Background Top 56

Hình 2-20 Sơ đồ khối Data Background Monitor 58

Hình 2-21 Giản đồ thời gian khối Data Background Generator 59

Hình 2-22 Sơ đồ khối Data Background Generator 61

Hình 2-23 Thuật toán khối Data Background Generator 61

Hình 2-24 Sơ đồ khối Comparator 62

Hình 2-25 Thuật toán khối Comparator 63

Hình 2-26 Cấu trúc thông tin lỗi BISD_syndrome 64

Hình 2-27 Giản đồ thời gian khối Comparator 64

Hình 2-28 Các trạng thái của FSM BISD 66

Hình 2-29 Sơ đồ khối TAP Controller 68

Trang 9

Hình 2-30 Sơ đồ khối chi tiết TAP Controller 70

Hình 2-31 Máy trạng thái FSM TAP Controller 71

Hình 2-32 Sơ đồ khối Instruction Register 72

Hình 2-33 Sơ đồ khối Instruction Decoder 73

Hình 2-34 Sơ đồ khối Bypass Register 74

Hình 2-35 Sơ đồ khối ID Register 75

Hình 2-36 Sơ đồ khối BISD_in Register 75

Hình 2-37 Sơ đồ khối BISD_out Register 76

Hình 2-38 Sơ đồ khối RAM BISD Interface 77

Hình 2-39 Sơ đồ kiến trúc khối RAMBISD Interface 79

Hình 2-40 Sơ đồ khối async_cmp 80

Hình 2-41 Sơ đồ khối wptr_full 80

Hình 2-42 Sơ đồ khối rptr_empty 81

Hình 2-43 Sơ đồ khối fifomem 82

Hình 3-1 Thiết kế của phần mềm mô hình hóa 84

Hình 3-2 Mô hình giải thuật cho BISD 94

Hình 4-1 Mô hình kiểm tra từng khối 97

Hình 4-2 Mô hình kiểm tra toàn bộ mạch BISD 98

Hình 4-3 Phần mềm mô hình hóa 99

Hình 4-4 Mô hình đối chiếu kết quả 100

Trang 10

DANH MỤC CÁC BẢNG BIỂU

Bảng 1-1 Ký hiệu các lỗi trong mảng ô nhớ của bộ nhớ nhúng 9

Bảng 1-2 Bảng các lỗi giải mã địa chỉ 12

Bảng 1-3 Bảng các ký hiệu sử dụng trong các thuật toán March 16

Bảng 1-4 Bảng danh sách 42 thuật toán March cơ bản 18

Bảng 1-5 Khả năng phát hiện lỗi của một số thuật toán March cơ bản kiểm tra bộ nhớ theo từng bit 18

Bảng 1-6 Kết quả mô phỏng thuật toán MATS++ theo word với nhiều dữ liệu chuẩn 20

Bảng 1-7 Kết quả mô phỏng thuật toán March C- theo word với nhiều dữ liệu chuẩn 20

Bảng 2-1 I/O mạch BISD 36

Bảng 2-2 I/O khối TIG 38

Bảng 2-3 I/O khối SAG 40

Bảng 2-4 I/O khối PAG 43

Bảng 2-5 I/O khối Physical Signal Generator 49

Bảng 2-6 I/O khối Physical Counter 51

Bảng 2-7 Dữ liệu không đảo chuẩn 55

Bảng 2-8 Bảng dữ liệu cho độ rộng bus 32 bit 56

Bảng 2-9 I/O khối Data Background Top 57

Bảng 2-10 I/O khối Data Background Monitor 59

Bảng 2-11 I/O khối Comparator 63

Bảng 3-1 Bảng các file dữ liệu trong phần mềm mô hình hóa 85

Bảng 3-2 Các thuộc tính của cell 87

Trang 11

Bảng 3-3 Hành vi của cell 87

Bảng 3-4 Các thuộc tính của lỗi 87

Bảng 3-5 Các loại lỗi 88

Bảng 3-6 Hành vi của lỗi hàng/cột 88

Bảng 3-7 Định dạng chuỗi TDO 89

Bảng 3-8 Các nhóm lỗi 90

Bảng 3-9 Các thuộc tính của cell 91

Bảng 3-10 Các thuộc tính lớp cơ sở Fault 92

Bảng 3-11 Các thuộc tính lớp AF (mở rộng từ lớp Fault) 92

Bảng 3-12 Các thuộc tính lớp CFid (mở rộng từ lớp Fault) 92

Bảng 3-13 Các thuộc tính lớp ColF (mở rộng từ lớp Fault) 92

Bảng 3-14 Các thuộc tính lớp RowF (mở rộng từ lớp Fault) 92

Bảng 3-15 Các thuộc tính lớp SAF (mở rộng từ lớp Fault) 92

Bảng 3-16 Các thuộc tính lớp CellInfo 93

Bảng 4-1 Kết quả file Log.txt 101

Bảng 4-2 Code coverage khối CORE BISD 102

Bảng 4-3 Code coverage khối TIG 102

Bảng 4-4 Code coverage khối SAG 102

Bảng 4-5 Code coverage khối SAG Step Counter 102

Bảng 4-6 Code coverage khối SAG Rom 103

Bảng 4-7 Code coverage khối PAG 103

Bảng 4-8 Code coverage khối Data Background Top 103

Bảng 4-9 Code coverage khối Data Background Generator 103

Trang 12

Bảng 4-10 Code coverage khối Data Background Monitor 104

Bảng 4-11 Code coverage khối Physical Signal Generator 104

Bảng 4-12 Code coverage khối Physical Counter 104

Bảng 4-13 Code coverage khối Comparator 104

Bảng 4-14 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin dti_sp_tm65gplus_144x26_twt4bw1xoe_m 105

Bảng 4-15 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin dti_sp_tm65gplus_512x256_twt4bw1xoe_m 106

Bảng 4-16 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin dti_sp_tm65gplus_1024x288_twt4bw1xoe_m 106

Trang 13

DANH MỤC CÁC TỪ VIẾT TẮT

ATPG Automatic test pattern generation

BIRA Built-in Redundancy Analysis

BISD Built-in self-diagnosis

CFid Idempotent coupling fault

CFin Inversion coupling fault

NPSF Neighborhood Pattern Sensitive Fault PAG Programable Algorithm Generator

Trang 14

SIA Semiconductor Industry Association

TIG Test Instruction Generator

VLSI Very large scale integration

Trang 15

PHẦN MỞ ĐẦU

Sự phát triển nhanh chóng về số lượng và chủng loại bộ nhớ nhúng trong SoC khiến việc kiểm tra bộ nhớ nhúng trở thành một vấn đề quan trọng, không thể thiếu trong quá trình kiểm tra SoC Quy trình công nghệ càng hiện đại, mật

độ tích hợp càng cao, kích thước bộ nhớ nhúng trong SoC càng được thu nhỏ, tuy nhiên số lượng lỗi có thể tăng lên rất lớn Điều này gây ảnh hưởng rất lớn đến quá trình sản xuất SoC ở giai đoạn sản xuất ban đầu của một quy trình công nghệ mới, rất nhiều SoC có bộ nhớ có lỗi và cần phải loại bỏ nếu bị phát hiện trong quá trình kiểm tra Điều này khiến hiệu suất giảm, kéo theo đó là giá thành SoC cao Bên cạnh đó, nhiều mô hình lỗi mới của bộ nhớ nhúng trong SoC có thể không bị phát hiện, làm cho hoạt động của SoC sau quá trình kiểm tra truyền thống không ổn định, thậm chí không thể sử dụng được trong thực tế

Do đó, một vấn đề rất quan trọng và cần được đẩy mạnh là làm thế nào để kiểm tra, phân tích và dự đoán được lỗi trong các bộ nhớ nhúng của SoC Từ đó, các kĩ sư thiết kế có thể sớm xác định được các nguyên nhân gây ra lỗi và cải tiến thiết kế của các bộ nhớ nhúng Một hệ thống SoC với các bộ nhớ đã được kiểm tra không có lỗi sẽ hoạt động ổn định, đáng tin cậy và sẽ được sử dụng trong các thiết bị điện tử hiện đại

Tới thời điểm hiện nay, nhiều phương pháp kiểm tra bộ nhớ đã được đưa

ra Tuy nhiên, khi cân nhắc đến vấn đề chi phí và khả năng kiểm tra, giải pháp tốt nhất và được sử dụng rộng rãi trong các công ty thiết kế SoC là mạch logic tự kiểm tra lỗi BIST cho bộ nhớ Luận văn này nghiên cứu và đưa ra một thiết kế mạch logic tự kiểm tra và phân tích lỗi cho bộ nhớ nhúng (BISD) với một số cải tiến mới Thiết kế trong luận văn sử dụng nhiều thuật toán March để kiểm tra giúp phát hiện được nhiều loại lỗi Mạch BISD hỗ trợ hai cơ chế kiểm tra lỗi trong bộ nhớ, cơ chế thứ nhất lưu trữ bên trong mạch một thuật toán mặc định và

cơ chế thứ hai là truyển thuật toán vào từ bên ngoài qua chuẩn JTAG 1149.1 Thông tin về các thuật toán được thống kê và xử lý để có thể truyền vào mạch BISD một cách hiệu quả nhằm tiết kiệm diện tích mạch logic BISD nhưng vẫn có

Trang 16

hiệu suất hoạt động và khả năng linh hoạt cao Ngoài ra, thiết kế còn kết hợp với phần mềm xử lí dữ liệu giúp phân tích chính xác loại lỗi từ đó xác định được nguyên nhân gây lỗi Thiết kế mạch BISD phù hợp với nhiều loại bộ nhớ nhúng Tuy nhiên trong khuôn khổ luận văn, thiết kế mạch BISD phù hợp để kiểm tra SRAM, bộ nhớ nhúng phổ biến nhất trong SoC được lựa chọn để triển khai thiết

kế

Trang 17

Chương 1 Tổng quan về kiểm tra bộ nhớ, các mô hình lỗi và mạch logic tự kiểm tra bộ nhớ

Ngay từ đầu những năm 1960, các nghiên cứu về kiểm tra bộ nhớ bán dẫn

đã xuất hiện, đi cùng với sự phát triển của nền công nghiệp vi mạch bán dẫn Thời gian kiểm tra và phạm vi kiểm tra luôn là những điểm quan tâm chính của các nghiên cứu này Sự ra đời của SoC đặt ra những vấn đề mới cho các nhà nghiên cứu Số lượng và diện tích của các bộ nhớ nhúng trong SoC tăng lên rất nhanh chóng Do đó, sản lượng của các bộ nhớ trên chip sẽ xác định sản lượng của chip Việc kiểm tra đúng/sai đã không còn đủ cho các bộ nhớ nhúng trong thời đại của SoC Bên cạnh đó, bộ nhớ thường được sử dụng như là một chỉ báo công nghệ, do đó chúng thường được thiết kế với mật độ rất lớn ở mỗi quy trình công nghệ Phân tích lỗi bộ nhớ nhanh chóng trở thành vấn đề quan trọng, giống như vấn đề về sản lượng công nghiệp và thời gian phát triển của các sản phẩm SoC Việc chẩn đoán lỗi một cách hiệu quả và các phương pháp phân tích lỗi của

bộ nhớ sẽ giúp cải thiện sản lượng của các sản phẩm SoC, đặc biệt là với sự thay đổi nhanh chóng của quá trình phát triển các sản phẩm mới và các quy trình công nghệ tiên tiến

Chương này của luận văn sẽ trình bày về kiến trúc bộ nhớ SRAM, mô hình lỗi cho bộ nhớ và các thuật toán kiểm tra Thuật toán March được sử dụng rộng rãi và được coi là hiệu quả nhất với mô hình bộ nhớ lỗi truyền thống Các thuật toán March khá ngắn và dễ phát triển Đồng thời, mạch tự kiểm tra bộ nhớ Memory Built-in self-test (BIST) cũng sẽ được trình bày một cách khái quát trong chương này Nó được xem là giải pháp tốt nhất cho việc kiểm tra bộ nhớ nhúng trên các chip SoC

Trang 18

1.1 Giới thiệu

Cùng với sự ra đời của của công nghệ vi mạch độ tích hợp rất lớn (VLSI), các công ty bán dẫn đã hướng sự quan tâm đến các giải pháp SoC Đó là xu hướng thiết kế các hệ thống điện tử bao gồm các vi xử lý, các mạch giao tiếp, mạch tương tự, DSP và bộ nhớ vào trong một chip đơn Các SoC tích hợp một số lượng rất lớn các khối chức năng đã từng đứng độc lập trước đó trong các bảng mạch có kích thước lớn hơn cả chục lần so với kích thước của SoC Việc kết hợp các chức năng này vào một chip đơn hiển nhiên làm giảm kích thước của chip Đây là một ưu điểm quan trọng của các thiết bị điện tử cần phải nhỏ và nhẹ trong các thiết bị di động Ngoài ra, các SoC còn có hiệu suất hoạt động cao hơn nhưng tiêu thụ điện năng ít hơn Khi tất cả các khối nhỏ được tích hợp vào trong chip đơn, số lượng giao tiếp giữa các chip cũng giảm đi rất nhiều Kiến trúc chung của SoC ngày nay được thiết kế dựa trên các khối chức năng nhúng được biểu diễn như hình sau [9]

Hình 1-1 Kiến trúc chung SoC dựa trên các khối nhúng

Các bộ nhớ là các thành phần có vai trò ngày càng quan trọng trong các sản phẩm truyền thông, không dây và trong máy tính Trước đây, các IC có các chức năng riêng biệt được hỗ trợ bộ nhớ nằm ngoài Hiện nay, các bộ nhớ nhúng

Trang 19

được ứng dụng vào máy tính và các sản phẩm truyền thông (bao gồm cả các thiết

bị cho mạng di động, thiết bị cầm tay và các thiết bị cho phép kết nối mạng Internet) yêu cầu băng thông lớn hơn, kích thước nhỏ hơn, tiêu thụ ít năng lượng hơn, hiệu suất hoạt động cao hơn và có nhiều chức năng hơn Do đó, bộ nhớ nhúng càng trở nên quan trọng hơn

Thông thường bộ nhớ nhúng chiếm từ 30% đến 50% diện tích SoC Con

số này tăng nhanh qua từng thế hệ sản phẩm và hiện nay bộ nhớ nhúng đã có thể chiếm đến 90% diện tích chip Hiệp hội công nghiệp bán dẫn SIA đã dự đoán rằng con số này sẽ tăng lên 94% vào năm 2014 theo hình 1-1 [4]

Hình 1-2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC

Do xu hướng này, việc kiểm tra bộ nhớ nhúng nhận được rất nhiều sự chú

ý của giới công nghiệp cũng giống như cộng đồng nghiên cứu

Có rất nhiều thử thách trong việc kết hợp bộ nhớ (DRAM, SRAM, flash,…) với các thành phần logic khác Bênh cạnh đó, việc xử lý các vấn đề công nghệ, bảo đảm hiệu suất, chất lượng và độ tin cậy của các bộ nhớ nhúng với chi phí được sử dụng một cách hiệu quả đòi hỏi những nỗ lực nghiên cứu sâu hơn Việc kiểm tra bộ nhớ nhúng lại càng khó hơn kiểm tra bộ nhớ thông thường Vấn đề đầu tiên là tính truy cập Truy cập lõi DRAM từ một thiết bị kiểm tra

Trang 20

ngoại vi rất tốn kém - cả về vấn đề vượt quá số chân/diện tích, sụt giảm hiệu năng, và nhiễu – khi mà bộ nhớ DRAM được nhúng trong CPU hoặc ASIC và bao quanh bởi các khối logic khác [6] Phương pháp thiết kế cho phép kiểm tra (DFT – design for test) phải được cung cấp cho việc cách ly lõi và cho phép truy cập, và cái giá phải trả là việc vượt quá số lượng cổng logic (hardware overhead), hiệu năng thấp, nhiễu và ảnh hưởng ký sinh Ngay cả khi đã chấp nhận những điều trên, thiết bị kiểm tra đáp ứng đủ tiêu chuẩn để kiểm tra bộ nhớ nhúng DRAM sẽ rất đắt vì tốc độ chạy kiểm tra và độ rộng băng thông I/O Tổng chi phí đầu tư sẽ rất cao Giải pháp triển vọng cho vấn đề trên là mạch logic tự kiểm tra (BIST) Với BIST, yêu cầu cho thiết bị kiểm tra bộ nhớ nhúng DRAM được giảm thiểu, thời gian kiểm tra giảm đáng kể trong toàn bộ quy trình kiểm tra đối với DRAM Tất nhiên, tổng thời gian kiểm tra có thể được giảm nữa nếu kiểm tra song song các bộ nhớ ở mức chip bởi vì điều này rất dễ xử lý Do đó mạch logic

tự kiểm tra được xem như một yêu cầu bắt buộc với bộ nhớ nhúng DRAM Một

ưu điểm khác của BIST là vấn đề bảo vệ sở hữu trí tuệ Ví dụ trong trường hợp này, nhà cung cấp bán dẫn chỉ cần đưa khối DRAM với chuỗi kích hoạt và đáp ứng BIST cho nhu cầu kiểm tra và chẩn đoán lỗi mà không phải cung cấp chi tiết thiết kế DRAM IP

BIST cũng được áp dụng thành công với bộ nhớ nhúng SRAM, flash, CAM Tuy nhiên, nó vẫn cần đến thiết bị kiểm tra ngoại vi trừ trường hợp việc chẩn đoán và sửa lỗi được tự thực hiện bên trong chip Điều này hiển nhiên không thể thực hiện bởi kiến trúc BIST hiện tại cho SRAM Đồng thời, các mô hình lỗi mới có thể cần được kiểm tra; và thuật toán March được sử dụng cho SRAM BIST có thể không tích hợp

Tuy nhiên, nhiều thách thức khác vẫn tồn tại, ví dụ như các thiết bị bộ nhớ thường yêu cầu sửa chữa cứng bằng cách lập trình các cầu chì điện (burn-in) để giảm tỉ lệ lỗi, nhưng với các thiết bị logic, IddQ có thể được sử dụng Sử dụng IddQ cho bộ nhớ không hề dễ dàng Vậy nếu chúng ta tích hợp bộ nhớ và logic, làm thế nào để đạt được yêu cầu về độ tin cậy? Thử thách tiếp theo là thiết kế tự

Trang 21

động Thiết kế logic sử dụng các công cụ tổng hợp mạch trong khi thiết kế bộ nhớ thường sử dụng thiết kế tùy chỉnh hoàn toàn Việc tích hợp hai luồng khác nhau đòi hỏi rất nhiều nỗ lực Những thử thách khác nữa như là tiêu chuẩn thời gian, hay kiểm tra nguồn điện AC của bộ nhớ không đồng bộ với mạch logic BIST đồng bộ

Để kiểm tra hoạt động chức năng của mạch, ta thường mô tả các đặc điểm của mạch trước, từ đó xác định được các mô hình lỗi thường gặp của mạch được kiểm tra (CUT - circuit under test) Sau khi các lỗi điển hình được định nghĩa, ta

có thể chọn một tập các kịch bản kiểm tra nhằm phát hiện được lỗi này Để làm việc dễ dàng với các mô hình lỗi hoặc khuyết tật, chúng ta mô hình hóa chúng dựa trên biểu hiện gây lỗi Mặc dù mô hình lỗi chức năng này không được sử dụng rộng rãi trong giới công nghiệp, đây vẫn là một phương pháp phát triển hiệu quả để giải quyết nhiều vấn đề trong kiểm tra bộ nhớ

Mô hình chức năng của bộ nhớ SRAM, thường thấy trong các tài liệu hướng dẫn của nhà sản xuất, bao gồm nhiều khối Mô hình chức năng được sử dụng phổ biến có thể thấy như Hình 1-2 [1] Mỗi khối trong mô hình này thực hiện một chức năng riêng và có thể có lỗi, lỗi trong một số khối khác nhau có thể gây ra cùng một hành vi lỗi

Trang 22

Address Latch Column Decoder

Memory cell array Row

Data in

Read/write and chip enable

Hình 1-3 Mô hình chức năng bộ nhớ SRAM

Với mục đích mô hình lỗi, mô hình chức năng có thể được đơn giản hóa thành mô hình chức năng rút gọn như Hình 1-3 [1] Mô hình bao gồm Khối giải

mã địa chỉ Address Decoder (rút gọn từ các khối A, B, C ở Hình 1-2), Khối Mảng ô nhớ Memory cell array, và Khối logic đọc/ghi (rút gọn từ các khối E, F,

G ở Hình 1-2)

Address decoder

Memory cell array

Read/write logic Address

Data

Hình 1-4 Mô hình chức năng rút gọn của bộ nhớ SRAM

Trang 23

Mô hình lỗi chức năng có thể được phân loại như hình 1-4 [2,6]

Mô hình lỗi chức năng bộ nhớ

Lỗi ô nhớ (Memory Cell)

Lỗi dynamic (Dynamic Faults)

Lỗi giải mã địa chỉ (Address Decoder Faults) Hình 1-5 Mô hình lỗi

Với các lỗi trong mảng ô nhớ của bộ nhớ nhúng, chúng ta sử dụng một số

ký hiệu sau [6]:

Bảng 1-1 Ký hiệu các lỗi trong mảng ô nhớ của bộ nhớ nhúng

↑ Sự chuyển đổi tăng của một ô nhớ (liên quan đến lệnh ghi)

↓ Sự chuyển đổi giảm của một ô nhớ

↕ Sự chuyển đổi tăng hoặc giảm của một ô nhớ

Một lỗi liên quan đến m ô nhớ

Với: - S1, …Sm-1 là các điều kiện tương ứng của m−1 ô nhớ được yêu cầu để kích hoạt lỗi trên ô nhớ m (có trạng thái là Sm)

- F là giá trị lỗi hoặc trạng thái của ô nhớ m

- 0 ≤ i ≤ m−1, Si ∈ {0, 1, ↑, ↓, ↕}

Trang 24

1.2.1 Các lỗi ô nhớ Memory Cell

Nhiều lỗi có thể xảy ra trong mảng ô nhớ Chúng có thể được phân loại thành các lỗi chỉ xảy ra ở một ô nhớ (SAF, SOF, TF, DRF, RDF) và các lỗi mà một ô nhớ hoặc một nhóm các ô nhớ ảnh hưởng tới hành vi của một ô nhớ khác (CF, BF, NPSF) Các lỗi ô nhớ Memory Cell được phân loại thành các nhóm lỗi chính như sau [1,2,6]:

1.2.1.1 Lỗi xảy ra ở một ô nhớ hoặc một hàng

a) Lỗi không thay đổi giá trị (SAF)

Giá trị của một ô nhớ hoặc một hàng luôn luôn là 0 (SA0) hoặc luôn luôn

là 1 (SA1) Ký hiệu <∀/1> minh họa lỗi SA1 và ký hiệu <∀/0> minh họa lỗi SA0

b) Lỗi không truy cập được (SOF)

Một ô nhớ không thể truy cập được ví dụ nguyên nhân vì đường dữ liệu bị đứt hoặc một chuyển mạch luôn mở

c) Lỗi không chuyển trạng thái (TF)

Một ô nhớ không chuyển được trạng thái 0 → 1 (lỗi <↑/0> TF) hoặc trạng thái 1 → 0 (lỗi <↓/1>)

d) Lỗi mất dữ liệu (DRF)

DRF là lỗi một ô nhớ lỗi không giữ được giá trị logic của nó sau một khoảng thời gian nhất định Lỗi DRF có thể bị gây ra bởi một phần tử mạch kéo lên bị hỏng (hoặc mở) trong một ô nhớ Có hai loại lỗi DRF khác nhau (chúng có thể xuất hiện đồng thời trong một ô nhớ đơn): <1T/0> và <0T/1>

e) Lỗi nhiễu trong quá trình đọc (RDF)

Giá trị một ô nhớ bị đảo khi được đọc (quá trình lặp lại)

1.2.1.2 Lỗi giữa các ô nhớ

a) Lỗi một ô nhớ hoặc một hàng ảnh hưởng tới một ô nhớ hoặc một hàng khác (CF)

Trang 25

Lỗi đảo giá trị (CFin) – Sự chuyển trạng thái của một ô nhớ làm một ô nhớ

khác bị đảo giá trị Có hai loại lỗi CFin: <↑/↕> hoặc <↓/↕> Giữa một cặp hai

ô nhớ bất kỳ, cả hai loại lỗi có thể tồn tại đồng thời

Lỗi chuyển trạng thái (CFid) – Sự chuyển trạng thái của một ô nhớ khiến

cho ô nhớ khác có một giá trị xác định (0 hoặc 1) Có 4 loại lỗi CFid khác nhau: <↑; 1/0>, <↑; 0/1>, <↓; 1/0>, hoặc <↓; 0/1>

Lỗi trạng thái (CFst) – Một ô nhớ hoặc một hàng bị chuyển thành một giá

trị xác định nếu một ô nhớ hoặc một hàng khác ở trong một trạng thái xác định Giữa hai ô nhớ hoặc hai hàng, có 4 loại lỗi CFst khác nhau: <0; 0/1>,

<1; 0/1>, <0; 1/0>, hoặc <1; 1/0>

b) Lỗi ngắn mạch (BF)

Ngắn mạch giữa hai ô nhớ (có thể là loại AND hoặc OR)

c) Lỗi ảnh hưởng của các ô nhớ lân cận nhau (NPSF)

Nội dung của một ô nhớ hoặc khả năng để chuyển nội dung một ô nhớ bị ảnh hưởng bởi nội dung của một số ô nhớ bên cạnh trong bộ nhớ

Active (Dynamic) NPSF – khi các ô bên cạnh thay đổi, ô lỗi bị thay đổi Passive NPSF – khi các ô bên cạnh thay đổi, ô lỗi không thay đổi được trạng

thái

Static NPSF – khi các ô bên cạnh thay đổi, ô lỗi có một giá trị xác định

1.2.2 Các lỗi giải mã địa chỉ (AFs)

Các lỗi này xuất hiện trong bộ giải mã địa chỉ Address Decoder với giả sử rằng AFs không thay đổi bộ giải mã trong mạch logic tuần tự và sẽ giữ nguyên trong các quá trình đọc và ghi

Trang 26

Bảng 1-2 Bảng các lỗi giải mã địa chỉ

o Sense amplifier recovery: bộ khuếch đại bão hòa sau khi đọc/ghi một

chuỗi dài các bit 0 hoặc 1

o Write recovery: Một lệnh ghi, sau đó là một lệnh đọc hoặc ghi ở một vị

trí khác nhưng đem lại kết quả là lệnh đọc hoặc ghi ở cùng vị trí Nguyên nhân là do bộ giải mã địa chỉ bị chậm

Disturb faults: ô nhớ lỗi bị thay đổi giá trị thành 0 hoặc 1 nếu chúng ta đọc

hoặc ghi trên ô nhớ khác có tác động (có thể là cùng một ô nhớ)

Data Retention faults: bộ nhớ bị mất dữ liệu một cách tự nhiên, không do

lệnh đọc hoặc ghi

o DRAM refresh fault: Đường Refresh gặp lỗi stuck-at

o DRAM leakage fault:

 Sleeping sickness – mất dữ liệu trong khoảng thời gian ngắn hơn

giá trị hold time (thông thường vài trăm us cho đến vài chục ms);

Trang 27

gây ra bởi dò điện hoặc môi trường nhiễu, thường tác động đến cả hàng hoặc cả cột bộ nhớ

 Static data losses – thiết bị có khuyết tật pull-up Gồm cả dòng

điện quá mức rò rỉ cho phép và làm thay đổi trạng thái của ô nhớ

Các thuật toán được sử dụng để kiểm tra bộ nhớ có thể được phân loại vào hai nhóm chính là thuật toán truyền thống và thuật toán March [2,6]

1.3.1 Các thuật toán truyền thống

Các thuật toán truyền thống cơ bản gồm có: zero-one, Checker board, and GALPAT and Walking1/0 [6]

1.3.1.1 Thuật toán Zero-one

Thuật toán này còn được biết đến với tên MSCAN (Memory Scan) Thuật toán đơn giản chỉ gồm có lệnh ghi dữ liệu toàn 0 hoặc toàn 1 vào bộ nhớ Do đó,

nó rất dễ để thiết kế nhưng không đủ mạnh để kiểm tra bộ nhớ vì nó không phát hiện được hết các lỗi AF và CF

1.3.1.2 Thuật toán Checkerboard

Đây cũng là một thuật toán ngắn và đơn giản Các ô nhớ của mảng ô nhớ được chia thành hai nhóm: nhóm ô nhớ 1 và nhóm ô nhớ 2, từ đó tạo nên đoạn

mã kiểm tra để ghi vào bộ nhớ

Checkerboard có khả năng phát hiện lỗi như sau:

Không phải tất cả lỗi AF đều được phát hiện Nó chỉ đảm bảo cho hai

ô nhớ được truy cập

Lỗi SAF được phát hiện nếu có điều kiện đảm bảo là chức năng giải

mã địa chỉ phải đúng, nếu không cũng chỉ có hai ô nhớ được bảo đảm không có lỗi SAF

Không phát hiện được tất cả lỗi TF và CF

Trang 28

1.3.1.3 Thuật toán GALPAT và Walking 1/0

Thuật toán GALPAT (GALloping PATtern) và Walking 1/0 tương tự nhau Ngoại trừ một ô nhớ cơ sở duy nhất chứa dữ liệu bit 1 (hoặc 0), tất cả các ô nhớ còn lại trong bộ nhớ chứa dữ liệu bit 0 (hoặc 1) Trong quá trình kiểm tra, ô nhớ cơ sở này được dịch lần lượt qua từng vị trí của bộ nhớ Điểm khác biệt giữa GALPAT và Walking 1/0 là khi đọc ô nhớ cơ sở với Walking 1/0, sau mỗi bước các ô nhớ đều được đọc và ô nhớ cơ sở được đọc cuối cùng Với GALPAT, tất cả các ô nhớ được đọc nhưng sau mỗi ô nhớ thì ô nhớ cơ sở cũng được đọc

Khả năng phát hiện lỗi của cả hai thuật toán như sau:

Tất cả lỗi AF đều được phát hiện và đánh dấu

Tất cả lỗi SAF sẽ được đánh dấu

Tất cả lỗi TF được đánh dấu

Tất cả lỗi CFid được đánh dấu

1.3.2 Các thuật toán March

Kích thước của bộ nhớ càng ngày lớn và nhiều lỗi phức tạp xuất hiện Các thuật toán truyền thống hoặc là không đủ mạnh để phát hiện lỗi hoặc là mất quá nhiều thời gian để chạy kiểm tra Có nhiều thuật toán mới được phát triển nhưng nếu chúng có độ phức tạp tính toán cao hơn độ phức tạp tuyến tính theo thời gian thì việc sử dụng sẽ là không khả thi Hình 1-5 thể hiện mối liên hệ giữa độ phức tạp tính toán và thời gian kiểm tra [2]

Trang 29

Hình 1-6 So sánh độ phức tạp tính toán và thời gian kiểm tra

Theo hình 1-5, nếu bộ nhớ có kích thước 1Gigabit được kiểm tra với thuật toán có độ phức tạp tuyến tính n thì thời gian kiểm tra chỉ là 1.75 phút nhưng nếu kiểm tra với thuật toán có độ phức tạp n2 thì sẽ mất 3659 năm Vì lí do đó, các thuật toán tuyến tính theo thời gian, đủ đơn giản mà vẫn phát hiện được các lỗi SAF, TF, CF được phát triển Chúng ta gọi đó là các thuật toán March Hiện nay, thuật toán March đã phát triển rất phổ biến và có rất nhiều thuật toán March biến thể mới [6]

Một thuật toán March bao gồm một chuỗi các phần tử March Một phần tử March bao gồm một chuỗi các lệnh được thực hiện lần lươt trên từng ô nhớ của

bộ nhớ Một lệnh có thể bao gồm việc ghi 0 vào một ô nhớ (w0), ghi 1 vào một ô nhớ(w1), đọc một ô nhớ với giá trị mong đợi 0 (r0), và đọc một ô nhớ với giá trị mong đợi 1 (r1) Sau khi tất cả các lệnh của một phần tử March đã được thực hiện trên một ô nhớ xác định, chúng sẽ được thực hiện với ô nhớ tiếp theo Địa chỉ của ô nhớ tiếp theo được xác định bởi thứ tự địa chỉ, có thể có hai thứ tự địa chỉ: thứ tự địa chỉ tăng từ địa chỉ 0 tới n-1 được mô tả bởi ký hiệu ↑, và thứ tự địa

Trang 30

chỉ giảm dần được mô tả bởi ký hiệu ↓ Khi thứ tự địa chỉ không cần xét đến, ký hiệu ↕ được sử dụng Ở đây, n mô tả tổng số địa chỉ

Độ phức tạp tính toán của thuật toán March phụ thuộc số lượng lệnh có trong thuật toán Ví dụ với thuật toán có 10 lệnh đọc/ghi dữ liệu thì độ phức tạp tính toán là 10n

Các thuật toán March sử dụng các ký hiệu được liệt kê trong bảng dưới đây:

Bảng 1-3 Bảng các ký hiệu sử dụng trong các thuật toán March

↑ Địa chỉ thay đổi theo thứ tự tăng dần

↓ Địa chỉ thay đổi theo thứ tự giảm dần

↕ Địa chỉ thay đổi theo thứ tự bất kỳ

r0 Lệnh đọc dữ liệu 0 từ ô nhớ r1 Lệnh đọc dữ liệu 1 từ ô nhớ w0 Lệnh ghi dữ liệu 0 lên ô nhớ w1 Lệnh ghi dữ liệu 1 lên ô nhớ

1.3.2.1 Một số thuật toán March cơ bản

Sau đây là một số thuật toán March cơ bản đã được nghiên cứu và sử dụng [2,6,7,12]

Trang 31

b) MATS+ - MATS++

Thuật toán MATS+ phát hiện được tất cả lỗi SAF và AF, nó thường được

sử dụng thay cho thuật toán MATS khi kiểm tra bộ nhớ với công nghệ được sử dụng chưa rõ Độ phức tạp tính toán là 5n Kí hiệu cho MATS+ như sau

{↕(w0);↑(r0,w1);↑(r1,w0);↕(r0);↓(r0,w1);↓(r1,w0);↕(r0)}

March C− phát hiện được các lỗi SAF and unlinked TF bởi vì các ô nhớ được đọc theo trạng thái 0,1,0, Do đó cả chiều chuyển trạng thái ↑ và ↓, và lệnh đọc sau đó đều được diễn ra March C− cũng phát hiện các lỗi CFid, CFin and CFst với sự giới hạn là các lỗi CF là không kết nối Độ phức tạp tính toán là 10n

{↕(w0);↑(r0,w1);↑(r1,w0);↓(r0,w1);↓(r1,w0);↕(r0)}

d) March A - March B

March A là thuật toán ngắn nhất để phát hiện lỗi linked CFids bên cạnh các lỗi AF, SAF, linked CFid, TF không liên kết với CFid, và lỗi CFin liên kết với CFid March A đã được chứng minh là hoàn thiện Độ phức tạp của nó là 15n

{↕(w0);↑(r0,w1,w0,w1);↑(r1,w0,w1);↓(r1,w0,w1,w0);↓(r0,w1,w0)}

Thuật toán March B là mở rộng của March A, nó phát hiện thêm được lỗi

TF liên kết với CFin hoặc CFid Để làm được điều này, phần tử M1 của March A được mở rộng thêm hai lệnh đọc vì lỗi TF không thể bị che bởi lỗi CF khi không

có lệnh ghi đến ô nhớ khác Độ phức tạp thuật toán là 17n

Trang 32

{↕(w0);↑(r0,w1,r1,w0,r0,w1);↑(r1,w0,w1);↓(r1,w0,w1,w0);↓(r0,w1,w0)}

e) Khả năng phát hiện lỗi của các thuật toán March cơ bản

Danh sách 42 thuật toán March cơ bản được sử dụng trong việc thiết kế thuật toán kiểm tra được liệt kê trong Bảng 1-4 [1,6,7,14]

Bảng 1-4 Bảng danh sách 42 thuật toán March cơ bản

March Y SOA-March B March UD March G+

March B SOA-March C- March UD- March PS

Check board March FT

Bảng 1-5 Khả năng phát hiện lỗi của một số thuật toán March cơ bản kiểm tra bộ nhớ theo từng bit

để phát hiện các lỗi CF Ngoài ra, các thuật toán March cũng không được chủ

Trang 33

định phát triển để phát hiện các lỗi SOF Mặc dù khả năng phát hiện lỗi SOF và các lỗi CF có thể tính bằng tay được nhưng rất khó khăn và tốn nhiều thời gian

Vì số lượng mô hình lỗi và giải thuật kiểm tra ngày càng tăng nên việc tính toán bằng tay không phải là một phương pháp tốt để dự đoán khả năng phát hiện lỗi

Hiệu suất việc kiểm tra bộ nhớ của các thuật toán March cơ bản so với các thuật toán truyền thống là rất lớn và có thể thấy ở hình 1-6 Kết quả này thu được dựa trên việc kiểm tra bộ nhớ SRAM 16-Kbit [1,9] Những kết quả này áp dụng chỉ với các bộ nhớ được kiểm tra Tuy nhiên, do sự tương đồng giữa các công nghệ SRAM khác nhau và các thiết kế mạch, các kết quả có thể được sử dụng cho bộ nhớ SRAM nói chung

Hình 1-7 Khả năng phát hiện lỗi của một số thuật toán

1.3.2.2 Thuật toán March Cocktail

a) Giới thiệu

Các mô hình lỗi chức năng được sử dụng cho bộ nhớ cần kiểm tra bao gồm SAF, TF, AF, CFin, CFid, CFst… Tuy nhiên, để có thể dự đoán lỗi, cần phải biết không chỉ các địa chỉ lỗi mà cả nguyên nhân gây ra lỗi Các mô hình lỗi càng chi tiết thì càng nhiều hành vi chi tiết được xác định

Trang 34

Đối với việc kiểm tra bộ nhớ theo word, dữ liệu chuẩn không chỉ ảnh hưởng đến khả năng phát hiện lỗi mà cả thời gian kiểm tra, do đó, việc kết hợp

dữ liệu chuẩn cần được tính toán tỉ mỉ Ví dụ với bộ nhớ có độ rộng word bằng 4,

ta sử dụng các dữ liệu chuẩn 0000 (P1), 0101 (P2), 0011 (P3), 0110 (P4), 0001 (P5), 0010 (P6), 0100 (P7), và 1000 (P8) Việc mô phỏng với hai thuật toán MATS++ (6N) và March C- (10N) với tất cả kết hợp của các dữ liệu chuẩn này đưa ra kết quả ở các bảng dưới đây Trong các bảng này, kí hiệu Pi,j là kết hợp 2

dữ liệu chuẩn Pi hoặc Pj, kí hiệu Pi|Pj là mô phỏng với dữ liệu chuẩn Pi hoặc Pj Bảng 1-6 Kết quả mô phỏng thuật toán MATS++ theo word với nhiều dữ liệu chuẩn

Bảng 1-7 Kết quả mô phỏng thuật toán March C- theo word với nhiều dữ liệu chuẩn

Từ hai bảng 1-6 và 1-7, ta thấy việc sử dụng nhiều dữ liệu chuẩn có thể tăng đáng kể khả năng kiểm tra lỗi CF của thuật toán MATS++ nhưng cải thiện tương đối ít đối với thuật toán March C- Điều này có thể lí giải bởi bản thân thuật toán March C- với 1 dữ liệu chuẩn có thể phát hiện tất cả các lỗi CF giữa các word khác khau, việc sử dụng thêm dữ liệu chuẩn chỉ phát hiện thêm một phần rất nhỏ các lỗi khác, ví dụ như lỗi bên trong một word của bộ nhớ

Trang 35

Có thể dễ dàng nhận ra rằng, việc sử dụng thêm các dữ liệu chuẩn có thể khiến khả năng phát hiện lỗi được cải thiện, tuy nhiên, nó kéo theo thời gian kiểm tra cũng tăng lên Số lượng dữ liệu chuẩn được sử dụng tương ứng với số lần tăng lên của thời gian kiểm tra Dựa trên kết quả mô phỏng của hai thuật toán MATS++ và March C-, ta thấy rằng sử dụng một thuật toán tốt với ít dữ liệu chuẩn vẫn tốt hơn sử dụng một thuật toán có khả năng phát hiện lỗi kém với nhiều dữ liệu chuẩn

Một phương pháp được sử dụng rộng rãi để kiểm tra bộ nhớ theo word là

sử dụng các giải thuật kiểm tra bộ nhớ theo bit với nhiều dữ liệu chuẩn khác nhau

và số lượng dữ liệu chuẩn cần thiết phải từ logw+1 trở lên, với w là độ rộng word của bộ nhớ Phương pháp này dẫn tới việc nghiên cứu sử dụng các thuật toán March nào và sự kết hợp những dữ liệu chuẩn nào để vừa phát hiện được đầy đủ các lỗi trong bộ nhớ trong khi làm giảm tối đa thời gian cần thiết để kiểm tra bộ nhớ Đây chính là lý do thuật toán March Cocktail ra đời

Thuật toán March C- với một dữ liệu chuẩn (P1) có thể phát hiện hầu hết các lỗi, do đó, nó được chọn làm cơ sở để phát triển thành thuật toán March Cocktail Nó bao gồm khả năng của một số thuật toán March truyền thống, và mỗi thuật toán chạy với một dữ liệu chuẩn riêng [3]

b) Mô tả thuật toán

Thuật toán March Cocktail được sử dụng để kiểm tra word trong bộ nhớ

Do đó, chiều dài chuỗi kiểm tra của nó phụ thuộc vào số lượng bit của dữ liệu chuẩn

Trang 36

c) Đánh giá thuật toán March Cocktail

Kết quả thu được là tất cả các lỗi trên có thể kiểm tra hoàn toàn và hiệu quả sử dụng thuật toán March-CW [3] Việc sử dụng hai dữ liệu chuẩn P2 và P3 với các kết hợp khác nhau và được sử dụng để mô phỏng với các thuật toán đang tồn tại cho kết quả được so sánh với thuật toán March Cocktail như hình dưới đây

Hình 1-8 Đánh giá thời gian kiểm tra của thuật toán March Cocktail

Từ hình 1-6, ta thấy rằng sử dụng kết hợp các thuật toán March đang tồn tại với các dữ liệu chuẩn khác nhau, khả năng kiểm tra lỗi đầy đủ bởi một giải thuật kiểm tra ngắn hơn, với thời gian kiểm tra ngắn hơn Thuật toán March Cocktail có kế quả tốt nhất Với bộ nhớ có độ rộng word bằng 4, thuật toán March Cocktail giảm 39% thời gian kiểm tra so với thuật toán March C- mở rộng với nhiều dữ liệu chuẩn

1.3.2.3 Tổng kết

Trên đây là các thuật toán tiêu biểu và được sử dụng rộng rãi Thực tế, càng nhiều thuật toán được triển khai, càng nhiều lỗi bộ nhớ được phát hiện Thuật toán March mới được nghiên cứu (March Cocktail) cùng với 42 thuật toán March cơ bản đã được thống kê và sử dụng trong thực tế Do đó trong luận văn này, tôi đề xuất kiến trúc kiểm tra bộ nhớ sử dụng thông tin từ 42 thuật toán March và thuật toán March Cocktail này được đề xuất Với số lượng thuật toán

có thể hỗ trợ lớn như vậy, kiến trúc kiểm tra bộ nhớ này có thể phát hiện được

Trang 37

nhiều lỗi cho nhiều loại bộ nhớ khác nhau Kiến trúc này đồng thời cũng tạo ra sự linh hoạt trong việc lựa chọn thuật toán tốt nhất để kiểm tra cho một loại bộ nhớ nhất định

Có hai vấn đề chính đối với việc kiểm tra bộ nhớ nhúng là làm thế nào để kiểm tra được các logic xung quanh bộ nhớ nhúng và bản thân bộ nhớ Có 4 kỹ thuật cơ bản được sử dụng hiện nay gồm: kiểm tra chức năng, kỹ thuật quét đường biên bộ nhớ (boundary scan), ghép cách li (multiplexor isolation) và mạch logic tự kiểm tra (build-in self-test)

1.4.1 Kiểm tra chức năng

Các bộ nhớ nhúng được kiểm tra bằng cách kiểm tra chức năng Đây là phương pháp hiệu quả nếu hoạt động của chip truy cập trực tiếp vào các bộ nhớ Một ví dụ là chip vi điều khiển với các chỉ thị lệnh đặc biệt để truy cập vào bộ nhớ đệm, do đó việc kiểm tra chức năng cho bộ nhớ đệm này rất đơn giản

1.4.1.1 Ưu điểm của kỹ thuật này bao gồm:

 Không có thêm mạch logic và độ trễ nào đối với việc kiểm tra

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ testing

at-speed-1.4.1.2 Nhược điểm của kỹ thuật này bao gồm:

 Không hiệu quả cho bộ nhớ mà việc truy cập trực tiếp không đơn giản trong chế độ hoạt động chức năng của chip

 Cần nhiều nguồn lực để thực hiện việc kiểm tra

 Các logic xung quanh bộ nhớ không dễ để kiểm tra

 Dữ liệu quá trình kiểm tra có thể lớn

1.4.2 Kỹ thuật quét đường biên Boundary Scan

Kỹ thuật này sử dụng một vòng quét (scan chain) đặt tại đường biên của

bộ nhớ Một bộ ghép được sử dụng để chọn giữa các chân chức năng của bộ nhớ

Trang 38

và chân vòng quét Mục đích của việc này là bắt được nội dung của toàn bộ dữ liệu đầu vào và đầu ra của bộ nhớ mà không gây ảnh hưởng đến nội dung của bộ nhớ Một kiến trúc cơ bản của kỹ thuật quét đường biên như sau:

Hình 1-9 Memory boundary scan

Dữ liệu đầu vào của vòng quét là chân SDI và dữ liệu đầu ra là chân SDO Việc truy cập dữ liệu tại đầu vào và đầu ra của bộ nhớ được thực hiện bằng cách dịch tuần tự

1.4.2.1 Ưu điểm của kỹ thuật này gồm có:

 Khả năng phát hiện lỗi cao bên trong bộ nhớ

 Khả năng phát hiện lỗi cao cho logic xung quanh bộ nhớ nếu sử dụng quét ATPG

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Diện tích mạch logic tăng thêm ít bởi có thêm một số thanh ghi quét ở đầu vào và đầu ra của bộ nhớ

1.4.2.2 Nhược điểm của kỹ thuật này gồm có:

 Thời gian kiểm tra rất lâu vì cách dịch tuần tự của dữ liệu

 Không thể chạy cùng tần số của bộ nhớ at-speed-testing

 Dữ liệu quá trình kiểm tra rất lớn

 Hiện không có công cụ thương mại nào có thể tạo đoạn mã quét cho bộ nhớ

Trang 39

1.4.3 Kỹ thuật ghép cách li Multiplexor Isolation

Trong kỹ thuật này, một bộ ghép được sử dụng ở đầu vào của bộ nhớ, vài tín hiệu đầu vào chính được nối trực tiếp tới đầu vào kiểm tra của bộ ghép đầu vào Tương tự thế, một bộ ghép được sử dụng ở đầu ra của bộ nhớ và đầu ra của

bộ nhớ được nối trực tiếp tới đầu vào kiểm tra của bộ ghép đầu ra Một kiến trúc

cơ bản của kỹ thuật ghép cách li như sau:

Hình 1-10 Multiplexor Isolation

Kỹ thuật này cung cấp một đường kết nối trực tiếp từ các tín hiệu đầu vào chính đến đầu vào bộ nhớ, và từ đầu ra bộ nhớ đến các tín hiệu đầu ra chính Nó

có nghĩa là các logic xung quanh đầu vào và đầu ra bộ nhớ được bỏ qua và chúng

ta có thể truy cập trực tiếp vào bộ nhớ thông qua các tín hiệu đầu vào chính và đầu ra chính

1.4.3.1 Ưu điểm của kỹ thuật này bao gồm:

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ testing

at-speed-1.4.3.2 Nhược điểm của kỹ thuật này bao gồm:

 Diện tích tăng thêm do quá trình định tuyến các kết nối là rất lớn

 Dữ liệu quá trình kiểm tra có thể lớn

 Logic xung quanh bộ nhớ khó kiểm tra

Trang 40

1.4.4 Mạch logic tự kiểm tra Build-in self-test

Mạch logic tự kiểm tra là giải pháp tốt nhất cho việc kiểm tra bộ nhớ nhúng Bộ nhớ thường được kiểm tra bằng một đoạn mã do thuật toán kiểm tra tạo ra Việc thiết kế khối tạo dữ liệu đầu vào và khối phân tích đáp ứng dữ liệu đầu ra được gọi là mạch logic tự kiểm tra Build-in self-test (BIST) Khối tạo dữ liệu và khối phân tích đáp ứng được điều chỉnh để phù hợp với từng bộ nhớ cần kiểm tra Một kiến trúc cơ bản của mạch logic tự kiểm tra như sau [6,8,14]:

Hình 1-11 Kiến trúc mạch Build-in self-test

Với kiến trúc BIST như trên, việc kiểm tra từ bên ngoài không cần được

sử dụng Kỹ thuật này xuất phát từ ý tưởng xây dựng một thuật toán kiểm tra có khả năng phát hiện lỗi cao nhưng lại dễ dàng thiết kế ở mức mạch logic phần cứng

1.4.4.1 Ưu điểm của kỹ thuật này bao gồm:

 Không cần nhiều nguồn lực cho việc kiểm tra

 Sử dụng được các thiết bị kiểm tra không đắt tiền

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ testing

at-speed- Dữ liệu quá trình kiểm tra thấp

 Việc kiểm tra được thực hiện tại các tầng khác nhau như: chip, bo mạch và

hệ thống

Ngày đăng: 24/11/2016, 00:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. A. J. van de Goor (Mar 1993), Using March tests to test SRAMs, IEEE Design Test Computers, pp 8-14 Sách, tạp chí
Tiêu đề: IEEE Design Test Computers
3. C.-F. Wu, C.-T. Huang, and C.-W. Wu (Oct 1999), RAMSES: a fast memory fault simulator, in Proc. Int. Symp. on Defect and Fault Tolerance in VLSI Systems, pp. 165–173 Sách, tạp chí
Tiêu đề: Proc. Int. Symp. on Defect and Fault Tolerance in VLSI Systems
4. Erik Jan Marinissen, Betty Prince, and Doris Keitel-Schulz (March 2005), Challenges in Embedded Memory Design and Test, Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, pp. 722- 727 Sách, tạp chí
Tiêu đề: Proceedings of the Design, Automation and Test in Europe Conference and Exhibition
5. Jin-Fu Li, Cheng-Wen Wu (March 2001), Memory fault diagnosis by syndrome compression, Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, pp. 97-101 Sách, tạp chí
Tiêu đề: Proceedings of the Design, Automation and Test in Europe Conference and Exhibition
8. P. Camurati, P. Prinetto, M. S. Reaorda, S. Barbagallo, A. Burri, D. Medina (1995), Industrial BIST of embedded RAMs, Design and Test of Computers, IEEE, pp.86 Sách, tạp chí
Tiêu đề: Design and Test of Computers, IEEE
Tác giả: P. Camurati, P. Prinetto, M. S. Reaorda, S. Barbagallo, A. Burri, D. Medina
Năm: 1995
9. Rochit Rajsuman (2000), System-on-a-Chip: Design and Test, Artech House, pp.160 Sách, tạp chí
Tiêu đề: Artech House
Tác giả: Rochit Rajsuman
Năm: 2000
11. Wei-Lun Wang, Kuen-Jong Lee, and Jhing-Fa Wang (Oct 2001), An On- Chip March Pattern Generator for Testing Embedded Memory Cores, IEEE Transactions on very large scale integration (VLSI) systems, vol. 9, no. 5, pp.730-735 Sách, tạp chí
Tiêu đề: IEEE Transactions on very large scale integration (VLSI) systems, vol. 9, no. 5
12. Wei-Lun Wang, Kuen-Jong Lee, and Jhing-Fa Wang (1999), A Universal March Pattern Generator for Testing Embedded Memory Cores, Proceedings of 12 th Annual IEEE ASIC/SoC Conference, pp. 228-232 Sách, tạp chí
Tiêu đề: Proceedings of 12"th" Annual IEEE ASIC/SoC Conference
Tác giả: Wei-Lun Wang, Kuen-Jong Lee, and Jhing-Fa Wang
Năm: 1999
13. Yervant Zorian (March 2012), Embedded Memory Test &amp; Repair: Infrastructure IP for SoC Yield, Design and Test of Computers, IEEE, pp.340-349 Sách, tạp chí
Tiêu đề: Design and Test of Computers, IEEE
2. Arvind Raghuraman, Walking, marching and galloping patterns for memory tests, Term paper – ELEC 7250 Khác
6. Laung-Terng Wang, Cheng-Wen Wu, Xiaoqing Wen (2006), VLSI Test Principles and Architectures Design for Testability, Morgan Kaufmann Publishers Khác
7. N. H. Tseng (June 2002), Universal BIST for Heterogeneous Embedded Synchronous Memory cores in SoC, Master thesis. Dept. of E.E., NCKU, Taiwan Khác
14. Yi-Wei Chang (June 2004), Design and Automatic Generation for Universal Memory Built-in Self-Test System, Master thesis. Dept. of E.E., NCKU, Taiwan Khác

HÌNH ẢNH LIÊN QUAN

Hình 1-1 Kiến trúc chung SoC dựa trên các khối nhúng - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 1 1 Kiến trúc chung SoC dựa trên các khối nhúng (Trang 18)
Hình 1-2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 1 2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC (Trang 19)
Hình 1-3 Mô hình chức năng bộ nhớ SRAM - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 1 3 Mô hình chức năng bộ nhớ SRAM (Trang 22)
Hình 1-7 Khả năng phát hiện lỗi của một số thuật toán - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 1 7 Khả năng phát hiện lỗi của một số thuật toán (Trang 33)
Hình 1-11 Kiến trúc mạch Build-in self-test - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 1 11 Kiến trúc mạch Build-in self-test (Trang 40)
Hình 2-1 Thiết kế chip SoC hỗ trợ mạch BISD - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 1 Thiết kế chip SoC hỗ trợ mạch BISD (Trang 47)
Hình 2-13 Giản đồ thời gian đọc ghi Dolphin SP SRAM - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 13 Giản đồ thời gian đọc ghi Dolphin SP SRAM (Trang 61)
Hình 2-14 Sơ đồ khối Physical Signal Generator - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 14 Sơ đồ khối Physical Signal Generator (Trang 62)
Hình 2-17 Thuật toán khối Physical Counter - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 17 Thuật toán khối Physical Counter (Trang 66)
Hình 2-20 Sơ đồ khối Data Background Monitor - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 20 Sơ đồ khối Data Background Monitor (Trang 72)
Bảng 2-10 I/O khối Data Background Monitor - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Bảng 2 10 I/O khối Data Background Monitor (Trang 73)
Hình 2-30 Sơ đồ khối chi tiết TAP Controller  2.3.3.1.  Máy trạng thái FSM cho Tap Controller - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 30 Sơ đồ khối chi tiết TAP Controller 2.3.3.1. Máy trạng thái FSM cho Tap Controller (Trang 84)
Hình 2-31 Máy trạng thái FSM TAP Controller - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 31 Máy trạng thái FSM TAP Controller (Trang 85)
Hình 2-39 Sơ đồ kiến trúc khối RAMBISD Interface - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 2 39 Sơ đồ kiến trúc khối RAMBISD Interface (Trang 93)
Hình 3-2 Mô hình giải thuật cho BISD - Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trình
Hình 3 2 Mô hình giải thuật cho BISD (Trang 108)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w