Độ bền là gì?


15

Từ bài viết Wikipedia Tính siêu bền trong thiết bị điện tử :

Khả năng siêu bền trong điện tử là khả năng của một hệ thống điện tử kỹ thuật số tồn tại trong một thời gian không giới hạn ở trạng thái cân bằng không ổn định hoặc trạng thái siêu bền. Ở trạng thái siêu bền, mạch có thể không thể ổn định ở mức logic '0' hoặc '1' ổn định trong thời gian cần thiết để vận hành mạch thích hợp. Kết quả là, mạch có thể hoạt động theo những cách không thể đoán trước, và có thể dẫn đến lỗi hệ thống.

Đó có vẻ là một định nghĩa tốt, nhưng nó có nghĩa gì trong một ứng dụng?

Từ quan điểm của một nhà thiết kế điện tử, một số ví dụ về điều này có thể xảy ra khi nào và loại thất bại này đáng quan tâm ở đâu?

Có một định nghĩa thực dụng hơn hoặc được áp dụng - một cái gì đó trong các điều khoản cụ thể hơn?


2
Leslie Lamport (ông của $ \ LaTeX $ nổi tiếng) đã viết một mô tả tốt của metastability trong bài viết này: research.microsoft.com/users/lamport/pubs/buridan.pdf
markrages

@markrages Rực rỡ. Điều này cũng có thể xảy ra với mèo rơi và bánh mì nướng bơ .
Rusty

Câu trả lời:


15

Trả lời nhanh: Nếu bạn vi phạm thiết lập và giữ thời gian trên đầu vào của một flip flop, thì đầu ra sẽ không thể đoán trước được trong một khoảng thời gian. Đầu ra không thể đoán trước đó được gọi là siêu ổn định (hoặc siêu bền).

Câu trả lời dài: Khi đầu ra không thể đoán trước, ý tôi là không thể đoán trước được. Nó có thể cao, nó có thể thấp, nó có thể ở đâu đó ở giữa, hoặc nó có thể dao động. Sau giai đoạn siêu bền này, sản lượng sẽ cao hoặc thấp, nhưng chúng tôi không biết nó sẽ đi theo hướng nào cho đến khi nó xảy ra.

Tuy nhiên, lượng thời gian mà nó không thể đoán trước được là có thể dự đoán được. Có hai yếu tố chính quyết định độ dài của giai đoạn siêu bền: Tốc độ của flip-flop và mức độ "gần với cạnh" mà bạn có được thời gian.

Hầu hết thời gian di chuyển khá ngắn, mặc dù xác suất có một thời gian dài là khác không. Về mặt lý thuyết bạn có thể có một thời gian siêu bền theo thứ tự giây, mặc dù tỷ lệ xảy ra là rất hiếm. Khi tốc độ của flip-flop tăng lên, thời gian di chuyển trung bình giảm - tất cả những thứ khác đều bằng nhau.

Có một thời gian "tưởng tượng" trong flip-flop, liên quan đến cạnh đồng hồ, nơi bạn dễ bị các vấn đề di động nhất. Chính xác là khi điều đó phụ thuộc vào rất nhiều yếu tố như nhiệt độ, điện áp, quá trình, pha của mặt trăng, sự hy sinh của động vật và đảng chính trị nào mà bạn liên kết. Bất cứ khi nào có thời gian, cạnh đầu vào dữ liệu của bạn càng gần thời gian đó thì thời gian siêu bền sẽ càng dài.

Cách tốt nhất để đối phó với tính di động là làm cho tất cả logic của bạn được đồng bộ hóa và không vi phạm bất kỳ cài đặt và thời gian giữ nào của bạn. Tất nhiên, điều này là khó đối với các mạch có độ phức tạp bất kỳ. Vì vậy, những gì chúng tôi làm là cố gắng hạn chế những nơi mà tính di động có thể là một vấn đề và sau đó đối phó với những nơi đó.

Phương pháp thông thường sẽ là "nhân đôi" dữ liệu. Có nghĩa là, có hai D Flip-Flops nối tiếp với đầu ra của lần đầu tiên cho đầu vào thứ hai. Hy vọng là nếu flip-flop đầu tiên có thể di chuyển thì thời gian siêu bền sẽ kết thúc trước khi nó vi phạm thời gian thiết lập / giữ của giây. Trong thực tế điều này hoạt động khá tốt. Trong các ứng dụng cực kỳ quan trọng, có thể có một số "ba xung nhịp" đang diễn ra.


3
Bất kỳ sự phụ thuộc vào các loại động vật hy sinh?
Rusty

11

Một trạng thái siêu bền tương tự như trạng thái cân bằng không ổn định. Một ví dụ phổ biến về trạng thái cân bằng không ổn định là một con lắc ngược . Nếu bạn có thể cân bằng con lắc ở vị trí thẳng đứng, đó là trạng thái ổn định. Tuy nhiên, nếu bất cứ thứ gì đẩy cần gạt sang một bên (ví dụ như dòng không khí hoặc rung động mặt đất), con lắc sẽ không tự phục hồi về vị trí thẳng đứng, nó sẽ rơi xuống. Tương phản với một con lắc thông thường, nếu bị đẩy sang một bên, cuối cùng sẽ ổn định trở lại theo chiều dọc.

Cân bằng ổn định được sử dụng trong các hệ thống điện để tạo ra các yếu tố lưu trữ. Equlibria không ổn định không tạo ra các yếu tố lưu trữ tốt (vì chúng dễ mất trạng thái), nhưng thường tồn tại dưới dạng trạng thái ký sinh.

Một yếu tố lưu trữ kỹ thuật số phổ biến là một cặp biến tần ghép chéo:

Hai bộ biến tần được kết nối trong một vòng lặp, đầu ra-đầu vào

Phần tử lưu trữ có hai trạng thái ổn định, một trạng thái trong đó nút bên trái nằm ở điện áp cung cấp và nút bên phải nằm trên mặt đất và trạng thái còn lại ở điều kiện ngược lại. Ngoài ra còn có một trạng thái không ổn định, trong đó mỗi nút ở một số điện áp trung gian.

Để hiểu rõ hơn về trạng thái không ổn định phát sinh, hãy gọi lại hàm truyền cho biến tần. Biểu đồ của hàm truyền cho thấy điện áp đầu ra của biến tần cho một điện áp đầu vào đã cho.

Chức năng chuyển đổi biến tần

Biến tần là phi tuyến tính; một cách đơn giản để có được một giải pháp gần đúng của một mạch phi tuyến tính là vẽ các đặc điểm của mạch; các giao điểm của các ô là các giải pháp, hay nói cách khác, các điểm mà các đặc tính điện của tất cả các thành phần của mạch được thỏa mãn. Thông thường, điều này được thực hiện với các ô iv như trong ví dụ diode này tại Wikipedia . Tuy nhiên, đối với các bộ biến tần, chúng ta sẽ làm điều đó với các ô vv. Xếp chồng một chức năng chuyển đổi biến tần thứ hai trên lô (với các trục được hoán đổi, vì biến tần thứ hai bị ngược:

Chức năng chuyển lớp phủ cho biến tần back-to-back

Có ba giao điểm của các ô: một tại (0, Vs), một tại (Vs, 0) và một tại (Vs / 2, Vs / 2). Trạng thái (Vs / 2, Vs / 2) là siêu bền. Sau một nhiễu loạn nhỏ của một trong hai nút, mạch sẽ hầu như luôn ổn định ở một trong những trạng thái ổn định thay vì quay trở lại (Vs / 2, Vs / 2).

Cách để viết một giá trị cho phần tử lưu trữ biến tần kép là buộc một trong các nút đến giá trị mong muốn bằng trình điều khiển mạnh hơn bộ biến tần. Một cách phổ biến để làm điều này là với một bóng bán dẫn thông qua:

Biến tần ghép chéo với bóng bán dẫn

Nếu bạn kết nối cổng của bóng bán dẫn qua với đồng hồ, bạn có chốt D (tôi đang rời khỏi cấu trúc đầu ra). Khi đồng hồ ở mức cao, cho phép bóng bán dẫn vượt qua, chốt trong suốt - đầu vào chuyển trực tiếp sang đầu ra. Khi đồng hồ ở mức thấp, chốt giữ giá trị trước đó. Độ bền di động phát sinh tại thời điểm các mẫu chốt. Nếu đầu vào là điện áp cao hoặc thấp ổn định khi chốt mẫu, thì nó sẽ hoạt động đúng. Tuy nhiên, nếu đầu vào xung quanh điểm Vs / 2 khi các mẫu chốt, có khả năng chốt sẽ kết thúc ở trạng thái siêu bền (Vs / 2, Vs / 2). Khi nó ở trạng thái siêu bền, nó có thể ở đó vô thời hạn (giả sử chốt không được bấm lại), nhưng vì nó ở trạng thái cân bằng không ổn định, nên một cái gì đó thường xảy ra tương đối nhanh chóng để loại nó ra khỏi trạng thái siêu bền.

Khi nào lo lắng về sự di căn

Nếu các yếu tố lưu trữ của bạn sẽ di chuyển, thì ít nhất bạn sẽ mất một phần ngân sách thời gian cho logic hạ lưu. Logic không thể thực hiện đánh giá mong muốn cho đến khi trạng thái siêu bền được giải quyết. Trong trường hợp xấu nhất, trạng thái siêu bền vẫn tồn tại hoặc lan truyền thông qua logic và các phần tử lưu trữ xuôi dòng cũng có thể di chuyển hoặc nhiều phần tử lưu trữ có liên quan nắm bắt các giá trị không nhất quán.

Thiết kế hợp lý và hoạt động logic đồng bộ không có vấn đề với tính di động. Thời gian đồng hồ dài hơn thời gian đánh giá logic, tất cả các đầu vào flip-flop đều ổn định ở cạnh đồng hồ tiếp theo (yêu cầu thiết lập thỏa mãn) và tất cả chúng đều tải một giá trị hợp lệ.

Một số tình huống phổ biến mà tính di động là mối quan tâm là:

  • Logic lấy mẫu một đầu vào bên ngoài, ví dụ, một công tắc trên bảng mặt trước hoặc đầu ra của các mạch màn hình có thể chuyển đổi bất cứ lúc nào (thiếu điện áp, quá áp).
  • Logic sử dụng nhiều đồng hồ không có mối quan hệ đồng bộ. Điều này thường phát sinh với các giao diện I / O có các yêu cầu đồng hồ cụ thể, nhưng cũng xảy ra bên trong khi các phần khác nhau của chip có các yêu cầu hiệu suất khác nhau. Ví dụ, không phải tất cả logic trong CPU 3 GHz của bạn thực sự đang chạy ở tốc độ 3 GHz. (Tuy nhiên, CPU không phải là một ví dụ tuyệt vời, vì nhiều đồng hồ trong CPU là bội số đồng bộ của nhau.)

Chủ yếu là câu trả lời hay, nhưng một điều khác cần đề cập là vì sự chậm trễ lan truyền, không có trạng thái siêu di động duy nhất mà là cả một gia đình trong số họ, và không có cách nào nhất định để xác định trạng thái siêu bền. Người ta có thể thiết kế một mạch có đầu ra ba trạng thái (cao / thấp / siêu bền) và sắp xếp mọi thứ sao cho "cao" sẽ không bao giờ được báo cáo nếu đầu ra có thể xuống thấp, hoặc ngược lại, nhưng không đảm bảo đầu ra sẽ không bị trả lại giữa 'cao' và 'siêu bền' (kết thúc 'cao') hoặc giữa 'thấp' và 'siêu bền' (kết thúc 'thấp').
supercat

+1 Đây là công cụ tốt nhưng nó có ý nghĩa hơn sau khi đọc câu trả lời của @David Kessner. +2 Dành cho đồ họa.
Rusty

3

Tín hiệu siêu bền là tín hiệu có thể tùy ý xuất hiện ở mức cao hoặc thấp trong bất kỳ mẫu tùy ý nào trong một khoảng thời gian tùy ý. Nếu tín hiệu cung cấp nhiều cổng trực tiếp hoặc gián tiếp , có thể một số cổng đó sẽ "thấy" nó cao trong khi các tín hiệu khác thấy nó thấp. Thứ dơ bẩn.

Đối với các hệ thống có một đồng hồ duy nhất, tín hiệu siêu bền thường có thể được xử lý bằng cách đi qua hai chốt. Một vấn đề phức tạp hơn đến khi gating đồng hồ. Có rất nhiều mạch (đặc biệt là sử dụng chốt RS) sẽ hoạt động tuyệt vời nếu không thể di chuyển được, nhưng điều đó có thể, nếu khả năng di chuyển xảy ra, cuối cùng sẽ tạo ra xung đồng hồ runt (do đó có thể gây ra tính di động xuôi dòng).

Ngẫu nhiên, một điểm quan trọng khác để thực hiện liên quan đến tính di động: thời gian lan truyền của chốt cho biết khi nào, nếu thời gian lấy mẫu và thời gian giữ được đáp ứng , đầu ra sẽ ổn định ở giá trị mới. Nếu thời gian thiết lập và giữ không được đáp ứng, không có gì đảm bảo là nếu hoặc khi đầu ra sẽ hoặc sẽ không chuyển đổi, cho đến khi chốt đó nhận được một sự kiện xung nhịp hợp lệ. Ngay cả khi đầu ra 'dường như' chuyển đổi sạch sẽ, không có gì đảm bảo nó sẽ không tự động chuyển trở lại.


2

Trường hợp kinh điển là nếu bạn vi phạm thời gian thiết lập / giữ cho chốt đồng bộ và là vấn đề bạn cần lưu ý khi thiết kế đồ họa (Tôi chắc chắn Xilinx và Altera sẽ có chú thích về điều này). Nếu một tín hiệu có thể xuất hiện bất cứ lúc nào, bạn không bao giờ có thể chắc chắn rằng khi bạn xem nó, nó sẽ không thay đổi trong thông số cửa sổ thiết lập / giữ thời gian. Điều gì có thể xảy ra là thay vì đầu ra chốt tăng cao hoặc thấp tại thời điểm được chỉ định sau cạnh đồng hồ, nó có thể dừng lại một lúc trước khi ổn định ở trạng thái ổn định. Cách thông thường để ngăn chặn điều này là sử dụng chốt 2 giai đoạn, với cùng một đồng hồ hoặc đồng hồ bị trễ hoặc lệch pha tùy thuộc vào sự cân bằng giữa yêu cầu độ trễ của bạn và xác suất di chuyển. Điều này cho phép thời gian chốt đầu tiên ổn định trước khi chốt thứ hai chốt trạng thái ổn định. Ngẫu nhiên, đây là điều mà các bộ vi điều khiển phải xử lý bên trong, vì các tín hiệu I / O bên ngoài thường không đồng bộ với xung nhịp CPU, vì vậy các cổng I / O thường có các sắp xếp chốt kép để tránh sự cố và phần mềm không cần phải lo lắng về điều đó . Một hồi tưởng mơ hồ khi đọc cách đây nhiều năm về một vấn đề với 6502, trong đó việc đọc dữ liệu trên xe buýt đã thay đổi ngoài thông số thời gian thiết lập / giữ có thể khiến một nhánh đến một địa chỉ không phải là mục tiêu của nhánh cũng như hướng dẫn tiếp theo, như một số nội bộ nhà nước đã di chuyển. Video này cho thấy một số ví dụ: Một hồi tưởng mơ hồ đã đọc cách đây nhiều năm về một vấn đề với 6502, trong đó việc đọc dữ liệu trên xe buýt đã thay đổi ngoài thông số thời gian thiết lập / giữ có thể khiến một nhánh đến một địa chỉ không phải là mục tiêu của nhánh cũng như hướng dẫn tiếp theo, như một số nội bộ nhà nước đã di chuyển. Video này cho thấy một số ví dụ: Một hồi tưởng mơ hồ đã đọc cách đây nhiều năm về một vấn đề với 6502, trong đó việc đọc dữ liệu trên xe buýt đã thay đổi ngoài thông số thời gian thiết lập / giữ có thể khiến một nhánh đến một địa chỉ không phải là mục tiêu của nhánh cũng như hướng dẫn tiếp theo, như một số nội bộ nhà nước đã di chuyển. Video này cho thấy một số ví dụ:http://www.youtube.com/watch?v=tKHCwjWMMyg

Một điều tương tự là nếu bạn ném cho ai đó một quả bóng - họ chủ yếu là bắt nó hoặc thả / bỏ lỡ nó, vì vậy sau một thời gian nhất định từ việc ném, họ sẽ giữ nó hoặc không. Nhưng đôi khi họ sẽ dò dẫm một lúc trước khi bắt hoặc làm rơi nó, vì vậy trạng thái của họ không giữ cũng không rơi - đây là trạng thái siêu bền!


Tôi vẫn làm việc với các hệ thống dựa trên 6502 như một sở thích. Thật tuyệt khi biết một số chi tiết về các vấn đề di động trên dữ liệu xe buýt. Tôi chắc chắn có thể hình dung rằng nếu bộ tích lũy giữ $ FF và người ta đọc một giá trị là $ 00 hoặc $ 01, thì bộ tích lũy có thể kết thúc với bất kỳ giá trị nào có thể. Tuy nhiên, trước khi bất kỳ chi nhánh nào có thể được thực hiện, tôi sẽ mong đợi hai chu kỳ nữa sẽ phải trôi qua, trong thời gian đó, các lá cờ sẽ được gửi lại hai lần. Tôi không thể tưởng tượng một trạng thái siêu bền còn lại trong thời gian dài.
supercat

Đây là thứ tôi đã nghe được bằng tay thứ hai hoặc thứ ba có thể cách đây 20 năm, nhưng nó bắt nguồn từ những người hoàn toàn biết họ đang làm gì - nó được thực hiện với giao diện Tube trên bộ xử lý 6502 giây cho BBC Micro và đọc trạng thái cờ, và là một lần xuất hiện một lần trăng xanh nhưng thường xuyên đến mức nó trì hoãn việc ra mắt sản phẩm. Không nhất thiết phải kéo dài 2 chu kỳ vì các tín hiệu có thể được chốt bên trong ở các giai đoạn khác nhau của đường ống. Tôi nghĩ rằng đó cũng là biến thể 6502 nhanh nhất có sẵn tại thời điểm đó - 3 MHz 65C02 ISTR.
đồ điện tử

Hấp dẫn. [BTW, có cách nào để sử dụng dấu chấm câu mà không cần StackExchange không? 2 của chu kỳ đó. Dữ liệu sẽ được đưa vào ALU trong giai đoạn 1 của chu kỳ tiếp theo (sẽ là tìm nạp opcode cho hướng dẫn sau). Chu kỳ sau đó sẽ là tìm nạp toán hạng. Nếu mọi thứ vẫn còn di chuyển vào thời điểm đó, hệ thống có thể tan chảy, nhưng điều đó dường như không thể xảy ra vì các thanh ghi động sẽ được gửi lại hai lần.
supercat

Tôi không muốn nói rằng không thể di chuyển trên xe buýt dữ liệu ảnh hưởng đến 6502, vì tôi biết có một số hành vi kỳ lạ khác mà tôi không thể giải thích. Ví dụ, bus dữ liệu được chốt trong giai đoạn 2 của đồng hồ và hoạt động trong giai đoạn sau 1. Do đó, không có vấn đề gì nếu nó thay đổi trong giai đoạn 2 với điều kiện là nó ổn định ở cuối. Tuy nhiên, có một số hướng dẫn không có giấy tờ, hành vi của họ bị ảnh hưởng bởi nội dung của bus dữ liệu trong phần trước của chu kỳ (có thể được chứng minh trên các máy như C64 và Apple tải video trong giai đoạn 1). Tôi không biết làm thế nào ...
supercat

... hành vi của những hướng dẫn đó thực sự bị ảnh hưởng bởi hành vi xe buýt dữ liệu ban đầu, nhưng tôi nghi ngờ đó là một tình trạng chủng tộc kỳ lạ. IIRC, một trong các opcode phù hợp với các mẫu giải mã cho LDA #imm, LDX #imm và TAX, do đó, đầu ra của ALU đang được ánh xạ trở lại đầu vào của nó. Kỳ dị.
supercat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.