Thông báo

Collapse
No announcement yet.

Cách thức thiết kế RAM, SRAM, DRAM

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Cách thức thiết kế RAM, SRAM, DRAM

    Hiện tại mình đang có đề án thiết kế Ram, Sram, Rom nhưng chưa biết tìm tài liệu ở đâu, và phươmg pháp như thế nào (về mặt lý thuyết). Xin mọi người chỉ giúp.

  • #2
    Bạn viết vậy thì mọi người chịu chẳng biết giúp bạn như thế nào.
    Riêng Nếu thiết kế bằng VHDL thì bạn có thể tham khảo quyển "Circuit Design with VHDL by Volnei A. Pedroni" chương 6 hay 9 gì đó. Bạn cũng có thể sử dụng Core Generator Để thiết kế. Cũng có nhiều mục bàn về đề tài này bạn tìm và tham khảo nhé.

    Comment


    • #3
      Tưởng bác học về phần cứng thì xem quyển "Semmiconductor Devices" , còn nếu làm code thì đọc vê vhdl thôi. Vào mấy trang nó chuyên sản xuất chip nhớ cũng nhiều thông tin hay lắm.

      Comment


      • #4
        Hiện tại vấn đề này cũng là tớ đang quan tâm!Hiện tớ đang làm đồ án về Thiết kế mô ta Dram!!

        Comment


        • #5
          Chào các bạn,

          Để có thể thực hiện đồ án này thì theo mình có lẽ trước tiên là các bạn cần tìm hiểu về cấu trúc một phần tử nhớ DRAM. Nếu các bạn đã hiểu vậy các bạn đã có thể bắt đầu bước cụ thể hóa đồ án của các bạn theo cách là các bạn muốn cấu trúc DRAM của các bạn sẽ như thế nào. Vậy các bạn hãy đưa lên những phương án, những tài liệu các bạn có, hay những cách hiểu mà các bạn đang ấp ủ, như thế mọi người sẽ có cơ sở để đóng góp ý kiến cho đồ án của các bạn.

          Một vài dòng góp ý, chúc các bạn thành công!

          Thân mến.

          Comment


          • #6
            Chào các bạn.

            Tớ biết một quyển viết về thiết kế DRAM rất hay do tác giả là người làm việc cho Micron viết "DRAM Circuit Design: Fundamental and High-Speed Topics" bạn có thể download về ở đây: http://www.sonsivri.com/forum/index.php?topic=31340.0
            Tớ có biết một ít về DRAM và có đọc về quyển này thất sự rất hay. Một điểm thiếu sót duy nhất của quyển này khi nói về thiết kế là không trình bày về Test mode của DRAM. Theo như tớ biết thì test mode của DRAM rất phức tạp và là một phần rất quan trọng của DRAM. Các chip DRAM dung lượng tới 1, 2 Gbit (cần test lâu) lại có giá quá bèo nên cần phải test rẻ tiền. Cái này tớ cũng không có kinh nghiệm gì.

            Tớ cũng lưu ý các bạn một điểm công nghệ của DRAM khác rất nhiều so với công nghệ logic thông thường. Bác lntran đã từng nhắc qua điều này rồi. Tớ chỉ biết công nghệ DRAM yêu cầu dòng điện dò rất thấp, nhưng phải đơn giản rẻ tiền.

            Comment


            • #7
              Chào bạn Rommel.de,

              Không biết khái niệm test ram của bạn có phải là MBIST (mem buit-in seft test) không. Nếu đúng thì mình có biết chút ít về anh này, xin chia sẻ như sau:

              Về mặt khái niệm, MBIST là một kỹ thuật bao gồm cả phần cứng và phần mềm, cho phép nhà sản xuất hoặc/và người sử dụng có thể kiểm tra bộ nhớ một cách tự động. Nguyên lý thì không có gì phức tạp lắm, MBIST sẽ tự động quét toàn bộ giải địa chỉ của bộ nhớ, đưa dữ liệu vào và đo dữ liệu ra, nếu có sai khác thì đánh dấu địa chỉ lỗi lại. Thông thường MBIST sẽ chạy với tần số cao hơn tần số hoạt động, có thể test ở bước wafer test, trong khoảng thời gian chip khởi động, thậm chí trong khoảng thời gian chíp đang hoạt động bình thường.

              Tại sao mình nói đây là một kỹ thuật gồm cả phần cứng và phần mềm là bởi kỹ thuật này cho phép lập trình firmware để cấu hình MBIST. Ví dụ, tại nhà sản xuất sau khi wafer test, MBIST báo cáo ra một danh sách những địa chỉ bị lỗi, danh sách này có thể sẽ gửi cho người sử dụng để nhúng vào phần firmware khởi động (lưu trong ROM), tự động báo cho hệ thống biết chỗ nào của bộ nhớ bị lỗi để đưa ra các hướng xử lý phù hợp và update lại danh sách lỗi của MBIST. Nói chung MBIST là một kỹ thuật khá linh hoạt, về phần cứng có thể ví nó như một vi điều khiển nhỏ. Do đó có thể hiểu MBIST là một khối độc lập gắn bên ngoài của khối bộ nhớ.

              Đứng về mặt bộ nhớ nói chung thì ngoài các khối đảm bảo chức năng ghi/đọc/xóa cơ bản thường có thêm một số phần có liên quan đến MBIST như bit kiểm tra chẵn lẻ, các thanh ghi "dư thừa" để dùng sửa lỗi các bit nhớ sai lỗi, ...

              Trên đây là cách hiểu rất sơ sài về bộ nhớ mà mình có cơ hội làm qua, hy vọng sẽ có thêm cơ hội trao đổi với mọi người về lĩnh vực thiết kế bộ nhớ, nhất là phần tương tự trong các bộ nhớ.

              Thân mến.

              Comment


              • #8
                Chào bạn Hithere123,

                Đúng như bạn nói test cho DRAM chính là MBIST nhưng đây là một trong những kỹ thuật rất khó chứ không đơn giản như bạn nói đâu. Để test một chíp DRAM bạn có thể đơn giản ghi dữ liệu vào chip rồi đọc ra kiểm tra xem đúng hay sai nhưng nếu làm như vậy thì thời gian sẽ rất lâu và tiền sử dụng các máy test đã quá giá tiền một chip DRAM rồi. Tớ cũng chỉ là đọc sách thôi chứ chưa bao giờ làm về test mode cho DRAM nhưng cũng giới thiệu với các bạn một chút để biết.

                Theo như tớ biết lỗi của DRAM thường xảy ra nhất ở trên mảng phần tử nhớ. Vì vậy DRAM thường tập trung vào test wafer. Test wafer nhanh hơn và rẻ tiền hơn test packet nên đây cũng là một ưu điểm. Với việc test wafer, các bạn chỉ có một ít probe, nên tín hiệu vào ra rất hạn chế. Thêm vào đó tốc độ truyền tín hiệu cho test wafer chậm (có lẽ test nhanh cũng được nhưng thiết bị đắt tiền) nên mọi thứ phải tập trung vào trong DRAM.

                Các chip DRAM thông thường có 3 cấu trúc dữ liệu 4x, 8x, và 16x tương đương với số chân dữ liệu vào ra. Người dùng có thể lựa chọn cấu trúc tùy theo mục đích sử dụng bằng cách thay đổi điện áp 2 chân điều khiển. Thông thường kiểu 4x dùng cho máy chủ, vì máy chủ cần nhiều RAM. Ta có thể đặt 16 chip RAM song song mới tạo ra một kênh dữ liệu 64 bit. Kiểu 8x dùng cho máy bàn, và kiểu 16x dùng cho laptop (vì laptop cần nhỏ gọn ít tốn điện nên chỉ cần 4 chip nhớ đã tạo nên một đường dữ liệu 64 bit). Loại DDR3 hiện này có tốc độ dữ liệu bên ngoài chip cao gấp 8 lần bên trong chip (thông qua mạch chuyển đổi song song nối tiếp) nên đường truyền dữ liệu bên trong cũng lớn hơn bên ngoài 8 lần tức là 128 bit. Theo như tớ biết khi ghi dữ liệu vào RAM, người ta chỉ ghi 4 bit đầu vào nhưng bên trong RAM, nó tự động lặp lại thành 128 bit. Như vậy tức là 1 lúc ta test được 128 bit.

                Địa chỉ có thể được tạo dễ dàng bên trong bằng cách sử dụng bộ đếm. Ngoài ra vì người ta sử dụng redundancy cho mảng phần tử nhớ, nên ngay cả khi phát hiện chip có lỗi, ta cũng phải biết lỗi nằm ở đâu để thay thế bằng redundancy. Mạch test không thể liên tục kiểm tra dữ liệu được đọc ra nên người ta làm một mạch nén lỗi. Ví dụ như dữ liệu 1024 bit được nén lại thành 16 bit để kiểm tra. Kĩ thuật này hơi giống việc sử dụng CRC để kiểm tra xem 1 file có bị lỗi hay không vậy. Mấy kĩ thuật này chỉ đơn giản để test nhanh và đơn giản rẻ tiền.

                Bây giờ mình giới thiệu cụ thể hơn về test mảng nhớ. Test mảng nhớ khác xa so với test logic. Test logic thường chỉ có 2 kiểu lỗi (stuck at 1 and stuck at 0). Tức là giá trị lúc nào cũng là 0 hoặc lúc nào cũng là 1. Nếu các phần tử nhớ cũng vậy thì quá dễ, cứ ghi vào đọc ra là biết liền. Nhưng DRAM hoàn toàn khác. Mỗi phần tử nhớ của DRAM có một thời gian lưu trữ dữ liệu gọi là retention time. Sau khoảng thời gian này DRAM không thể lưu trữ dữ liệu được nữa (vì vậy mới cần refresh). Thời gian này phụ thuộc chủ yếu vào dòng điện rò và có thể được biểu diễn bằng một hàm xác suất người ta hay gọi là tail distribution function. Trong cả tỉ đơn vị nhớ, chỉ có một số rất ít đơn vị có thời gian lưu trữ rất kém những chính chúng lại là nguyên nhân gây ra lỗi trong DRAM, và ta phải tìm ra những phần tử này.

                Nếu bạn có thời gian đọc quyển sách mình giới thiệu thì sẽ thấy trong DRAM có rất nhiều nguồn điện áp khác nhau. Điện áp dành cho dữ liệu là VBLH (với giá trị 1), GND (với giá trị 0), VBLEQ=1/2 VBLH (để sensing, và equalizing), điện áp đóng mở transistor (wordline) VPP để mở, VNWLL (để đóng), và điện áp chân đế VBB. Tớ chỉ tạm nói đến 2 giá trị điện áp VBB, và VNWLL thôi. Hai nguồn này có giá trị cỡ khoảng -0.2V nhưng lại hết sức quyết định giá trị dòng điện rò. Điện áp chân đế VBB đặt giá trị âm để theo hiệu ứng body effect, threshold voltage tăng lên làm giảm dòng subthreshold leakage current. Tuy nhiên nếu giá trị này quá âm thì dòng tunneling PN junction lại tăng lên. Tương tự như vậy VNWLL càng âm thì dòng subthreshold leakage current càng giảm nhưng dòng GIDL lại tăng. Chính vì thế khi test DRAM người ta phải xác định cực kì chính xác 2 điện áp này nhưng đây lại là điều rất khó.

                Ngoài ra lỗi trong DRAM có thể xảy ra theo kiểu đọc và kiểu ghi khác nhau. Tớ giới thiệu với các bạn một ví dụ. Giả sử bạn đọc/ghi một giá trị, bạn phải mở đường wordline của cell nhớ đó. Tuy nhiên do ảnh hưởng của điện dung ký sinh, điện áp của đường wordline bên cạnh cũng hơi tăng lên. Vậy là dòng subthreshold leakage current của các cell bên cạnh cũng tăng lên và làm giảm retention time. Vì vậy người ta mới đưa ra những kiểu test cạnh, test góc, test điểm...

                Một điểm nữa phải nói là nhiễu. Nhiễu có thể làm lỗi quá trình sensing của DRAM. Những nhiễu không phải lúc nào cũng có. Có thể lúc bạn test thì không sao nhưng sau này lại lỗi. Vì vậy người ta cũng có cách để test các nguồn nhiễu trong DRAM đặc biệt là cross talk.

                Một phần nữa rất khó đó là test DLL và các IO. DRAM bây giờ làm việc với tốc độ lên đến 1.6GHz nên calibrate các đường delay, cũng như input/output impedance là rất quan trọng. Cái này không khác gì mấy chip tốc độ cao như CPU, nhưng ta lại phải test rẻ tiền. Nếu tớ không nhầm thì cả DLL, và IO đếu có thể tự động căn chỉnh ở bên trong chip. Cái này tớ thật sự không biết họ làm thế nào.

                MBIST bạn nói là vi điều khiển thì cũng được nhưng tớ sợ nhiều người sẽ nhầm lẫn. Nó không hoạt động theo kiểu đọc lệnh, thực hiện lệnh, ghi dữ liệu vì sự hạn chế rất lớn ở đầu vào. Nó chỉ là một mạch ASIC hoạt động theo FSM, và điều quan trọng nhất là phải test nhiều nhất, nhanh nhất, và ít phải dao tiếp ra bên ngoài nhất

                Comment


                • #9
                  Chào bạn Rommel.de,

                  Xin đính chính với bạn một chút sợ bạn hiểu nhầm ý của mình. Mình nói MBIST đơn giản là về mặt nguyên lý hoạt động mà thôi, chứ mình không nói thực hiện nó là đơn giản. Mình chỉ làm khoảng 4MB nhớ thôi mà đã đau đầu lắm rồi chứ chưa nói tới dung lượng lên tới cả GB.

                  Đúng như bạn nói, phần điều khiển của MBIST thực chất là các FSM tuy nhiên theo mình biết các FSM này có thể lập trình được qua firmware và mình bổ xung thêm là đối với những bộ nhớ có yêu cầu độ an toàn về dữ liệu cao (gần như là zero lỗi) thì nó cần tích hợp thêm nhiều chức năng nữa, chính vì thế mình mới nâng nó lên thành gần giống như một vi điều khiển. Nghe thì có vẻ vô lý vì làm gì có bộ nhớ nào đảm bảo không có bit lỗi nào với tất cả các wafer, tất cả các lần test, nhưng trong một vài ứng dụng đặc biệt ví dụ chip dùng trong ô tô chẳng hạn, khi các phần khác nhau của hệ thống liên lạc điện tử tương tác với nhau, giả sử có một bit lỗi, rất có thể lệnh điều khiển cơ khí sẽ sai và dẫn tới hậu quả rất nghiêm trọng, do đó với những ứng dụng đặc thù như vậy thì chip giao cho khách hàng phải đảm bảo lỗi là zero (trong 10 năm chẳng hạn.)

                  Tóm lại, những trao đổi của bạn ở trên đều rất đúng, chính vì vậy mà thiết kế bộ nhớ gần như là một lĩnh vực riêng trong thiết kế số nói chung. Và trong thiết kế bộ nhớ thì thiết kế phần râu ria tốn nhiều công hơn thiết kế cấu trúc một phần tử nhớ nhiều (một cách tương đối). Cấu trúc của một phần tử nhớ thông thường sẽ là kết quả của việc nghiên cứu mức concept cùng với công nghệ, cái này cần đi sâu về vật lý một chút, ví dụ như dòng subthreshold mà bạn nói chính là hiện tượng điện tử đi xuyên qua được gate oxide, tuy nhiên một cấu trúc ra đời thì tuổi thọ mà nó tồn tại trên thị trường sẽ khá lâu, cùng một cấu trúc nhưng có thể trải qua đến vài đời thay đổi công nghệ. Trong khi đó thiết kế phần râu ria lại cần thích ứng theo sự thay đổi của công nghệ, và mỗi công ty sẽ có những kỹ thuật khác nhau. Chỉ riêng phần thiết kế đảm bảo điện áp (thường là cấu trúc charge-pump) cho hoạt động ghi/đọc/xóa đã rất khó chịu rồi chứ chưa nói tới các phần khác.

                  Với kinh nghiệm của bản thân mình, chỉ tính riêng phần thiết kế số của MBIST (chưa nói tới thiết kế cấu trúc ở mức concept) thì phần timing là đau đầu nhất vì MBIST thường bị yêu cầu hoạt động ở tần số cao hơn tần số hoạt động bình thường của chip, do đó phân tích timing (STA) thường được tách riêng và cũng tốn khá nhiều sức.

                  Một vài dòng trao đổi thêm như vậy, hy vọng sẽ có thêm những trao đổi tương tự như thế này với bạn trong tương lai

                  Thân mến.

                  Comment


                  • #10
                    Chào các bạn,

                    Tớ đoán bạn Laptrinhc++, và bạn Redcode1810 đang là sinh viên làm đố án, hay luận văn. Tớ nói thật có khi thầy của các bạn cũng không biết DRAM được thiết kế thế nào, bạn nó A ông thầy cũng chẳng giám nói B. Nếu chỉ là một đồ án sinh viên thông thường, bạn chỉ cần thiết kế một array với vài chức năng cơ bản là đủ. Tớ nghĩ cái này phù hợp với sinh viên. Còn nếu các bạn muốn làm một cái gì đó innovative một chút thì chỉ nên chọn một mẩu trong DRAM ví dụ Primary Sense Amplifier là đủ. Còn nếu như bạn muốn nói đủ thứ về DRAM như DDR3, RAMBUS thì tớ nghĩ các bạn hiểu được quyển sách mình giới thiệu đã là quá giỏi rồi.

                    Comment


                    • #11
                      Nguyên văn bởi Rommel.de Xem bài viết
                      Chào bạn Hithere123,

                      Đúng như bạn nói test cho DRAM chính là MBIST nhưng đây là một trong những kỹ thuật rất khó chứ không đơn giản như bạn nói đâu. Để test một chíp DRAM bạn có thể đơn giản ghi dữ liệu vào chip rồi đọc ra kiểm tra xem đúng hay sai nhưng nếu làm như vậy thì thời gian sẽ rất lâu và tiền sử dụng các máy test đã quá giá tiền một chip DRAM rồi. Tớ cũng chỉ là đọc sách thôi chứ chưa bao giờ làm về test mode cho DRAM nhưng cũng giới thiệu với các bạn một chút để biết.
                      Tớ cũng vậy, và đây là những thứ tớ đọc lâu rồi.

                      Theo như tớ biết lỗi của DRAM thường xảy ra nhất ở trên mảng phần tử nhớ. Vì vậy DRAM thường tập trung vào test wafer. Test wafer nhanh hơn và rẻ tiền hơn test packet nên đây cũng là một ưu điểm. Với việc test wafer, các bạn chỉ có một ít probe, nên tín hiệu vào ra rất hạn chế. Thêm vào đó tốc độ truyền tín hiệu cho test wafer chậm (có lẽ test nhanh cũng được nhưng thiết bị đắt tiền) nên mọi thứ phải tập trung vào trong DRAM.
                      Bác lầm cái này rồi.

                      1. DRAM trên wafer bác test từng die một. Trong package thì cả chục die nằm trong đó (dung lượng lớn hơn) do đó thời gian test sẽ lâu hơn. Vài chục năm trước thì 1 package là 1 die, bây giờ thì 1 package có cả chục dice nằm chồng lên nhau.

                      2. Tớ không hiểu rõ bác có ý gì . Trên thì nói test wafer nhanh hơn, dưới thì nói tốc độ truyền tín hiệu cho test wafer chậm. Trong kỹ nghệ này họ dùng một máy test (kêu là tester) cho wafer và chip, do đó tốc độ tín hiệu đều nhanh như nhau hết (trừ khi bác tính từ chân chíp đi vô thêm một khúc nữa).

                      3. Một tester chỉ chạy với một vận tốc tối đa nào đó. Khi người ta mua tester cho một loại sản phẩm nào đó thì họ đã tính trước là cần loại tester chạy như thế nào rồi, đâu phải mua về rồi mới tính chuyện mua thêm thiết bị cho tăng tốc độ.

                      Các chip DRAM thông thường có 3 cấu trúc dữ liệu 4x, 8x, và 16x tương đương với số chân dữ liệu vào ra. Người dùng có thể lựa chọn cấu trúc tùy theo mục đích sử dụng bằng cách thay đổi điện áp 2 chân điều khiển. Thông thường kiểu 4x dùng cho máy chủ, vì máy chủ cần nhiều RAM. Ta có thể đặt 16 chip RAM song song mới tạo ra một kênh dữ liệu 64 bit. Kiểu 8x dùng cho máy bàn, và kiểu 16x dùng cho laptop (vì laptop cần nhỏ gọn ít tốn điện nên chỉ cần 4 chip nhớ đã tạo nên một đường dữ liệu 64 bit). Loại DDR3 hiện này có tốc độ dữ liệu bên ngoài chip cao gấp 8 lần bên trong chip (thông qua mạch chuyển đổi song song nối tiếp) nên đường truyền dữ liệu bên trong cũng lớn hơn bên ngoài 8 lần tức là 128 bit. Theo như tớ biết khi ghi dữ liệu vào RAM, người ta chỉ ghi 4 bit đầu vào nhưng bên trong RAM, nó tự động lặp lại thành 128 bit. Như vậy tức là 1 lúc ta test được 128 bit.
                      Ý bác là cho 4 bit data làm 32 lần để ra 128 bit phải không ?

                      Địa chỉ có thể được tạo dễ dàng bên trong bằng cách sử dụng bộ đếm. Ngoài ra vì người ta sử dụng redundancy cho mảng phần tử nhớ, nên ngay cả khi phát hiện chip có lỗi, ta cũng phải biết lỗi nằm ở đâu để thay thế bằng redundancy. Mạch test không thể liên tục kiểm tra dữ liệu được đọc ra nên người ta làm một mạch nén lỗi. Ví dụ như dữ liệu 1024 bit được nén lại thành 16 bit để kiểm tra. Kĩ thuật này hơi giống việc sử dụng CRC để kiểm tra xem 1 file có bị lỗi hay không vậy. Mấy kĩ thuật này chỉ đơn giản để test nhanh và đơn giản rẻ tiền.
                      CRC tớ dùng cho wafer map chỉ cho biết là sai thôi chứ không biết sai chỗ nào. Bác dùng loại CRC nào ?

                      Bây giờ mình giới thiệu cụ thể hơn về test mảng nhớ. Test mảng nhớ khác xa so với test logic. Test logic thường chỉ có 2 kiểu lỗi (stuck at 1 and stuck at 0). Tức là giá trị lúc nào cũng là 0 hoặc lúc nào cũng là 1. Nếu các phần tử nhớ cũng vậy thì quá dễ, cứ ghi vào đọc ra là biết liền. Nhưng DRAM hoàn toàn khác. Mỗi phần tử nhớ của DRAM có một thời gian lưu trữ dữ liệu gọi là retention time. Sau khoảng thời gian này DRAM không thể lưu trữ dữ liệu được nữa (vì vậy mới cần refresh). Thời gian này phụ thuộc chủ yếu vào dòng điện rò và có thể được biểu diễn bằng một hàm xác suất người ta hay gọi là tail distribution function. Trong cả tỉ đơn vị nhớ, chỉ có một số rất ít đơn vị có thời gian lưu trữ rất kém những chính chúng lại là nguyên nhân gây ra lỗi trong DRAM, và ta phải tìm ra những phần tử này.

                      Nếu bạn có thời gian đọc quyển sách mình giới thiệu thì sẽ thấy trong DRAM có rất nhiều nguồn điện áp khác nhau. Điện áp dành cho dữ liệu là VBLH (với giá trị 1), GND (với giá trị 0), VBLEQ=1/2 VBLH (để sensing, và equalizing), điện áp đóng mở transistor (wordline) VPP để mở, VNWLL (để đóng), và điện áp chân đế VBB. Tớ chỉ tạm nói đến 2 giá trị điện áp VBB, và VNWLL thôi. Hai nguồn này có giá trị cỡ khoảng -0.2V nhưng lại hết sức quyết định giá trị dòng điện rò. Điện áp chân đế VBB đặt giá trị âm để theo hiệu ứng body effect, threshold voltage tăng lên làm giảm dòng subthreshold leakage current. Tuy nhiên nếu giá trị này quá âm thì dòng tunneling PN junction lại tăng lên. Tương tự như vậy VNWLL càng âm thì dòng subthreshold leakage current càng giảm nhưng dòng GIDL lại tăng. Chính vì thế khi test DRAM người ta phải xác định cực kì chính xác 2 điện áp này nhưng đây lại là điều rất khó.

                      Ngoài ra lỗi trong DRAM có thể xảy ra theo kiểu đọc và kiểu ghi khác nhau. Tớ giới thiệu với các bạn một ví dụ. Giả sử bạn đọc/ghi một giá trị, bạn phải mở đường wordline của cell nhớ đó. Tuy nhiên do ảnh hưởng của điện dung ký sinh, điện áp của đường wordline bên cạnh cũng hơi tăng lên. Vậy là dòng subthreshold leakage current của các cell bên cạnh cũng tăng lên và làm giảm retention time. Vì vậy người ta mới đưa ra những kiểu test cạnh, test góc, test điểm...

                      Một điểm nữa phải nói là nhiễu. Nhiễu có thể làm lỗi quá trình sensing của DRAM. Những nhiễu không phải lúc nào cũng có. Có thể lúc bạn test thì không sao nhưng sau này lại lỗi. Vì vậy người ta cũng có cách để test các nguồn nhiễu trong DRAM đặc biệt là cross talk.

                      Một phần nữa rất khó đó là test DLL và các IO. DRAM bây giờ làm việc với tốc độ lên đến 1.6GHz nên calibrate các đường delay, cũng như input/output impedance là rất quan trọng. Cái này không khác gì mấy chip tốc độ cao như CPU, nhưng ta lại phải test rẻ tiền. Nếu tớ không nhầm thì cả DLL, và IO đếu có thể tự động căn chỉnh ở bên trong chip. Cái này tớ thật sự không biết họ làm thế nào.

                      MBIST bạn nói là vi điều khiển thì cũng được nhưng tớ sợ nhiều người sẽ nhầm lẫn. Nó không hoạt động theo kiểu đọc lệnh, thực hiện lệnh, ghi dữ liệu vì sự hạn chế rất lớn ở đầu vào. Nó chỉ là một mạch ASIC hoạt động theo FSM, và điều quan trọng nhất là phải test nhiều nhất, nhanh nhất, và ít phải dao tiếp ra bên ngoài nhất
                      Trong kỹ thuật test DRAM và SRAM thì có walking 1s, walking 0s, và checker. Walking 1s là ghi 1 vô hết rồi đọc coi có 1 ra không. Walking 0s thì dùng 0. Checker thì xen kẽ 1 và 0.

                      Một phần test nữa là viết vô 1 cell rồi coi giá trị của 2 cell nằm bên cạnh cell bị viết có thay đổi không.

                      Những thứ tớ biết là hơn 20 năm rồi, bây giờ không rõ họ dùng cách nào để giảm giờ test.

                      Comment


                      • #12
                        Chào anh Paddy,

                        Anh đã biết những thứ test này cách đây hơn 20 năm thì em phải gọi anh là anh chắc rồi. Nếu em không nhầm thì anh làm việc bên công nghệ. Em làm việc bên thiết kế nên kiến thức về test của em cũng chỉ để làm thiết kế thôi. Em cũng không làm cho DRAM, chỉ là đọc sách và tìm hiểu về nó nên có thể một số điểm không được chính xác. Nếu anh biết thì chỉ ra giúp em.

                        DRAM hiện nay có thể truyền dữ liệu với tốc độ 1.6GHz nhưng nếu em không nhầm thì các máy test cho DRAM đều hoạt động chậm hơn nhiều, hình như vài trăm MHz đã là cao. Có thể tại vì người ta đã mua các máy từ ngày trước và vẫn tiếp tục sử dụng. Cái này em không chắc lắm, anh có thể biết rõ hơn em. Còn test wafer nhanh và rẻ theo em biết là do phần cơ khí. Sau khi đặt wafer lên máy test, động cơ bước sẽ liên tiếp test các die để xác định các thông số cần căn chỉnh, cũng như die nào tốt, die nào hỏng. Sau này phần mềm sẽ tự động cắt die, đóng gói, và ghi các tham số căn chỉnh lên rom của chip. Nếu em không lầm thì người ta sử dụng laser fuse để tạo rom. Người ta ghi các dữ liệu căn chỉnh bằng cách dùng tia laser để đốt các đường kết nối trong fuse. Nếu dùng test package, hình như người ta phải đóng gói chip trước rồi đưa vào máy test. Nếu chip bị hỏng thì ta lãng phí tiền đóng gói, và việc liên tiếp nhặt các chip đưa vào máy test cũng lâu hơn việc dùng động cơ bước trên wafer. Cuối cùng là sau khi đã đóng gói thì ta không thể dùng laser để đốt chip được nữa.

                        Việc chuyển từ 4 bit sang 128 bit nếu em không nhầm thì đúng là họ lặp lại. Ngoài ra cũng có thể họ sử dụng một số cách khác nhưng em không rõ.

                        Kĩ thuật nén dữ liệu để đọc ra kiểm tra thì em biết chắc họ có làm anh ạ. Kỹ thuật này không cho anh biết chính xác lỗi nằm ở cell nhớ nào nhưng anh ít nhất biết được trong 1024 cell nhớ này có cell bị lỗi. Khi người ta thay thế bằng redundancy, người ta thay nguyên một wordline, hay một bitline nên cái này không có vấn đề gì. Thêm vào đó nếu anh muốn biết chính xác bit lỗi anh cũng có thể test lại 1024 bit lỗi đó thay vì test toàn bộ chip. Như vậy cũng nhanh hơn rất nhiều.

                        Test bộ nhớ bao giờ người ta cũng test 0, 1, và 01 như anh nói. Nhưng đây chỉ là những test cơ bản thôi. Cái này không bao quát hết các lỗi trong bộ nhớ. Em cũng chỉ biết giải thuật test cho DRAM là một mảng advance chứ cụ thể thì em không biết. Ngoài ra đây chỉ là phần logic, còn các mạch khác như IO, nguồn cũng phải test khác.

                        Chào anh.

                        Comment


                        • #13
                          Nguyên văn bởi Rommel.de Xem bài viết
                          Chào anh Paddy,

                          Anh đã biết những thứ test này cách đây hơn 20 năm thì em phải gọi anh là anh chắc rồi. Nếu em không nhầm thì anh làm việc bên công nghệ. Em làm việc bên thiết kế nên kiến thức về test của em cũng chỉ để làm thiết kế thôi. Em cũng không làm cho DRAM, chỉ là đọc sách và tìm hiểu về nó nên có thể một số điểm không được chính xác. Nếu anh biết thì chỉ ra giúp em.

                          DRAM hiện nay có thể truyền dữ liệu với tốc độ 1.6GHz nhưng nếu em không nhầm thì các máy test cho DRAM đều hoạt động chậm hơn nhiều, hình như vài trăm MHz đã là cao. Có thể tại vì người ta đã mua các máy từ ngày trước và vẫn tiếp tục sử dụng. Cái này em không chắc lắm, anh có thể biết rõ hơn em. Còn test wafer nhanh và rẻ theo em biết là do phần cơ khí. Sau khi đặt wafer lên máy test, động cơ bước sẽ liên tiếp test các die để xác định các thông số cần căn chỉnh, cũng như die nào tốt, die nào hỏng. Sau này phần mềm sẽ tự động cắt die, đóng gói, và ghi các tham số căn chỉnh lên rom của chip. Nếu em không lầm thì người ta sử dụng laser fuse để tạo rom. Người ta ghi các dữ liệu căn chỉnh bằng cách dùng tia laser để đốt các đường kết nối trong fuse. Nếu dùng test package, hình như người ta phải đóng gói chip trước rồi đưa vào máy test. Nếu chip bị hỏng thì ta lãng phí tiền đóng gói, và việc liên tiếp nhặt các chip đưa vào máy test cũng lâu hơn việc dùng động cơ bước trên wafer. Cuối cùng là sau khi đã đóng gói thì ta không thể dùng laser để đốt chip được nữa.

                          Việc chuyển từ 4 bit sang 128 bit nếu em không nhầm thì đúng là họ lặp lại. Ngoài ra cũng có thể họ sử dụng một số cách khác nhưng em không rõ.

                          Kĩ thuật nén dữ liệu để đọc ra kiểm tra thì em biết chắc họ có làm anh ạ. Kỹ thuật này không cho anh biết chính xác lỗi nằm ở cell nhớ nào nhưng anh ít nhất biết được trong 1024 cell nhớ này có cell bị lỗi. Khi người ta thay thế bằng redundancy, người ta thay nguyên một wordline, hay một bitline nên cái này không có vấn đề gì. Thêm vào đó nếu anh muốn biết chính xác bit lỗi anh cũng có thể test lại 1024 bit lỗi đó thay vì test toàn bộ chip. Như vậy cũng nhanh hơn rất nhiều.

                          Test bộ nhớ bao giờ người ta cũng test 0, 1, và 01 như anh nói. Nhưng đây chỉ là những test cơ bản thôi. Cái này không bao quát hết các lỗi trong bộ nhớ. Em cũng chỉ biết giải thuật test cho DRAM là một mảng advance chứ cụ thể thì em không biết. Ngoài ra đây chỉ là phần logic, còn các mạch khác như IO, nguồn cũng phải test khác.

                          Chào anh.

                          Tớ cũng như bác thôi. Toàn là đọc sách chứ chưa bao giờ ngồi viết test program hết. Tớ biết những thứ này là ngày xưa tớ làm cho phần burn-in nên cần phải biết những thứ này.

                          Mấy tester tớ biết là đã lên tới 6GHz rồi.

                          Khi nói tới tester thì có 2 speed. Speed của tester là thường ám chỉ vận tốc của bộ vi sử lý.

                          Còn capture speed là chỉ vận tốc mà nó đo dữ kiện. Những thứ này dễ nâng cấp hơn vì nó chỉ là một cái bo nhỏ trong đầu tester thôi, và rẻ hơn rất nhiều so với mua cái tester mới chạy nhanh hơn.

                          Có nhiều tester chạy chừng 400MHz, nhưng capture tới hàng GHz. Khi capture quá nhanh như vậy thì nó bỏ dữ kiện vô bộ nhớ của tester rồi bộ vi sử lý ngồi tính toán các dữ kiện này sau (vì CPU chạy quá chậm). Làm vậy thì đỡ tốn tiền hơn, nhưng mất thời gian hơn ---> tốn tiền cho test time.


                          Vấn đề test nhanh chậm giữa wafer và chip cũng tùy loại nữa.

                          1. Nếu bác chỉ test một con op amp thì mấy chưa tới 1 giây. Trường hợp này thì wafer sẽ nhanh hơn đối với chip. Lý do là cái prober nó cần chưa tới 1 giây để đi qua die khác. Trong khi handler (máy đặt chip vô chỗ test trên tester) thì mất tới vài giây để bỏ con chip mới vô test. Tức là thời gian đặt chíp hơn vài lần.

                          2. Nếu bác test một con CPU mất cả phút, thì giữa wafer và chip hoàn toàn không khác nhau mấy vì cả hai đều phải chờ tester xong mới chạy tiếp được. Thơi gian đặt chip không đáng kể mấy.

                          Vấn đề dùng lazer fuse cho rom thì tớ không biết. Nhưng hãng tớ khi program rom thì họ không dùng lazer. Họ dùng giòng điện cao để đốt mấy cái fuse này luôn, vì thế có thể làm ngay trong chip package.

                          Tất cả các sản phẩm trong hãng tớ đều bị test qua wafer rồi sau đó đóng gói những die tốt rồi test lại lần nữa.

                          Comment


                          • #14
                            Chào anh Paddy,

                            Anh làm về công nghệ nên em nhân tiện hỏi anh một chút về efuse. Về laser fuse thì dễ hiểu rồi. Ta làm mấy đường kết nối ở lớp trên cùng. Sau này ta dùng tia laser chiếu vào mấy đường kết nối này, nó sẽ làm các đường kim loại đó bốc thành hơi gây ra hở mạch. Theo em biết thì nó chỉ làm tăng điện trở chứ không hở mạch hoàn toàn nhưng vậy cũng đã đủ để đọc dữ liệu ra. Khi chuyển sang công nghệ dùng đồng thay cho nhôm làm dây dẫn thì laser fuse không được sử dụng nữa. Nếu em không nhầm thì nhôm không sợ oxi hóa nên người ta để luôn ra bên ngoài có thể đốt dễ dàng. Đồng bị oxi hóa nên người ta phải bọc lại nên không thể đốt được nữa. Vậy là họ bắt đầu chuyển sang dùng efuse. Nhưng em không hiểu người ta dùng một dòng điện lớn để đốt các efuse này thì hơi kim loại thoát ra ngoài như thế nào. Nếu không có đường thoát, nó có gây ra nứt vỡ các lớp cánh điện cũng như kim loại trên chip không.

                            Cám ơn anh.

                            Comment


                            • #15
                              Nguyên văn bởi Rommel.de Xem bài viết
                              Chào anh Paddy,

                              Anh làm về công nghệ nên em nhân tiện hỏi anh một chút về efuse. Về laser fuse thì dễ hiểu rồi. Ta làm mấy đường kết nối ở lớp trên cùng. Sau này ta dùng tia laser chiếu vào mấy đường kết nối này, nó sẽ làm các đường kim loại đó bốc thành hơi gây ra hở mạch. Theo em biết thì nó chỉ làm tăng điện trở chứ không hở mạch hoàn toàn nhưng vậy cũng đã đủ để đọc dữ liệu ra. Khi chuyển sang công nghệ dùng đồng thay cho nhôm làm dây dẫn thì laser fuse không được sử dụng nữa. Nếu em không nhầm thì nhôm không sợ oxi hóa nên người ta để luôn ra bên ngoài có thể đốt dễ dàng. Đồng bị oxi hóa nên người ta phải bọc lại nên không thể đốt được nữa. Vậy là họ bắt đầu chuyển sang dùng efuse. Nhưng em không hiểu người ta dùng một dòng điện lớn để đốt các efuse này thì hơi kim loại thoát ra ngoài như thế nào. Nếu không có đường thoát, nó có gây ra nứt vỡ các lớp cánh điện cũng như kim loại trên chip không.

                              Cám ơn anh.
                              Bác hỏi ngay cái tớ không biết. Để tớ kiếm ai rành về cái efuse này đã.

                              Bác hình như lộn về laser fuse với lại laser trim. Laser trim là dùng để chỉnh cái điện trở cho thật chính xác (nhưng trong VRef, ADC, DAC, resistor banks). Họ dùng laser đốt bớt một phần điện trở (một miếng phim kim loại thật mỏng). Khâu này làm trong lúc trong dạng wafer.

                              Thêm một cái nữa là nhôm bị oxit hóa rất lẹ. Một tấm wafer chừng 1 giờ trong không khí thường là lớp nhôm bị oxit hóa liền. Nó chỉ khác các kim loại khác như đồng, sắt, là lớp oxit nhôm trở thành một lớp bảo vệ không cho phần nhôm phía dưới bị oxit hóa thêm.

                              Comment

                              Về tác giả

                              Collapse

                              redcode1810 Tìm hiểu thêm về redcode1810

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X