You are on page 1of 7

Time Borrowing

Trong hệ thống sử dụng flip-flop, dữ liệu bắt đầu lần đến cạnh lên đầu tiên của xung tín
hiệu và phải thiết lập ở ô thứ hai trước cạnh lên tiếp theo của xung tín hiệu. Nếu dữ liệu
đến trễ, mạch cho kết quả sai. Nếu dữ liệu đến sớm, nó sẽ bị chặn cho đến khi cạnh xung
tín hiệu và thời gian còn lại không sử dụng. Do đó chúng ta nói rằng cạnh xung tín hiệu
áp đặt cạnh cứng vì nó phân định rõ ràng các chu kỳ.
Ngược lại, khi một hệ thống sử dụng các chốt trong suốt, dữ liệu có thể rời khỏi chốt đầu
tiên trên cạnh lên của xung tín hiệu, nhưng không phải thiết lập cho đến khi cạnh xuống
của xung tín hiệu trên chốt nhận. Nếu một nửa chu kỳ hoặc giai đoạn của đường ống có
quá nhiều logic, nó có thể mượn thời gian vào nửa chu kỳ hoặc giai đoạn tiếp theo, như
minh họa trong Hình 10.12 (a) [Bernstein99]. Thời gian vay có thể tích lũy qua nhiều chu
kỳ. Tuy nhiên, trong các hệ thống với phản hồi, độ trễ dài phải được cân bằng bằng độ trễ
ngắn hơn để vòng lặp tổng thể hoàn thành trong thời gian có sẵn. Ví dụ, Hình 10.12(b)
cho thấy một vòng lặp tự bỏ qua một chu kỳ trong đó việc mượn thời gian xảy ra trên các
nửa chu kỳ, nhưng toàn bộ đường dẫn phải phù hợp trong một chu kỳ. Một ví dụ điển
hình của vòng lặp tự bỏ qua là giai đoạn thực thi của một pipelined bộ xử lý trong đó
ALU phải hoàn thành một hoạt động và bỏ qua kết quả để sử dụng trong ALU trên một
lệnh phụ thuộc. Hầu hết các đường dẫn quan trọng trong hệ thống kỹ thuật số đều xảy ra
trong tự bỏ qua vòng lặp vì nếu không thì độ trễ không quan trọng. Hình 10.13 minh họa
khoảng thời gian tối đa mà một chốt dựa trên hai pha hệ thống có thể vay mượn (ngoài
Tc/2 - tpdq có sẵn trên danh nghĩa cho mỗi nửa chu kỳ logic).
Bởi vì dữ liệu không phải thiết lập cho đến khi cạnh xuống của xung tín hiệu chốt nhận,
một giai đoạn có thể vay tới nửa chu kỳ thời gian từ giai đoạn tiếp theo (ít thời gian thiết
lập hơn và không trùng lặp):

Ví dụ 10.5
Giả sử đường dẫn bỏ qua ALU được sửa đổi để sử dụng chốt trong suốt hai pha. Một chốt
giữa chu kỳ 2 được đặt sau bộ cộng, như hình 10.14. Các chốt có thời gian thiết lập là 40
ps, thời gian giữ là 5 ps, độ trễ lan truyền từ clk-sang-Q là 82 ps và độ trễ nhiễm xạ là 52
ps và độ trễ lan truyền D-sang-Q là 82 ps. Tính toán thời gian chu kỳ tối thiểu cho đường
dẫn. Thời gian vay bao lâu qua giữa chu kỳ chốt tại thời gian chu kỳ này? Nếu tăng thời
gian chu kỳ lên 2000 ps thì thời gian vay là bao nhiêu?
GIẢI:
Theo EQ (10.3), thời gian chu kỳ là Tc = 82 + 590 + 82 + 410 = 1164 ps. Nửa đầu của
chu kỳ liên quan đến sự chậm trễ chốt và bộ cộng và tiêu thụ 82 + 590 = 672 ps. Thời
gian nửa chu kỳ danh nghĩa là Tc / 2 = 582 ps. Do đó, đường dẫn vay 90 ps từ nửa sau
của chu kỳ. Nếu thời gian chu kỳ tăng lên 2000 ps và thời gian nửa chu kỳ danh nghĩa trở
thành 1000 ps thì hiện tượng mượn thời gian không còn xảy ra nữa.

Chốt xung có thể được xem như là những chốt trong suốt có xung hẹp. Nếu xung là rộng
hơn thời gian thiết lập, các chốt xung cũng có khả năng vay một lượng thời gian nhỏ từ
chu kỳ này sang chu kỳ tiếp theo.

Ví dụ 10.6
Nếu đường dẫn tự bỏ qua ALU sử dụng các chốt xung, nó có thể vay bao nhiêu thời gian
từ chu kỳ tiếp theo?
GIẢI:
Không có. Bởi vì đường dẫn là một vòng phản hồi, nếu đầu ra của nó đến muộn và mượn
thời gian, đường dẫn sẽ bắt đầu muộn hơn trong chu kỳ tiếp theo. Điều này làm cho kết
quả đầu ra đến muộn hơn. Việc vay mượn thời gian có thể được sử dụng để cân bằng
logic trong một quy trình nhưng, mặc dù mong muốn của nhiều nhà thiết kế, nó không
làm tăng lượng thời gian có sẵn trong một chu kỳ xung tín hiệu.

Việc mượn thời gian có hai lợi ích cho người thiết kế hệ thống. Rõ ràng nhất là việc
mượn thời gian có chủ đích, trong đó nhà thiết kế có thể dễ dàng cân bằng logic hơn giữa
các nửa chu kỳ và các giai đoạn đường ống. Điều này dẫn đến thời gian thiết kế có thể
ngắn hơn vì cân bằng có thể diễn ra trong quá trình thiết kế mạch thay vì yêu cầu thay đổi
vi kiến trúc để chuyển các chức năng từ giai đoạn này sang giai đoạn khác một cách rõ
ràng. Ngay cả khi nhà thiết kế cẩn thận cân bằng độ trễ trong mỗi tại thời điểm thiết kế,
độ trễ sẽ khác nhau giữa các giai đoạn này trong chip được chế tạo do các biến thể về quy
trình và môi trường cũng như sự không chính xác trong mô hình thời gian được sử dụng
bằng hệ thống CAD. Trong một hệ thống có các cạnh cứng, chu kỳ dài nhất đặt giá trị tối
thiểu thời gian xung tín hiệu. Trong một hệ thống có khả năng vay mượn thời gian, các
chu kỳ chậm có thể có cơ hội mượn thời gian từ những cái nhanh hơn và tính trung bình
một số biến thể.
Một số nhà quản lý thiết kế có kinh nghiệm cấm sử dụng việc mượn thời gian có chủ đích
cho đến khi con chip tiếp cận băng từ. Nếu không, các nhà thiết kế có xu hướng quá mức
cho rằng giai đoạn đường ống có thể mượn thời gian từ các giai đoạn liền kề. Khi nhiều
nhà thiết kế làm điều này giống nhau giả định, tất cả các con đường trở nên quá dài. Tệ
hơn nữa, vấn đề có thể bị ẩn cho đến khi bắt đầu phân tích thời gian toàn chip, lúc đó đã
quá muộn để thiết kế lại nhiều đường dẫn như vậy.
Một giải pháp khác là thực hiện phân tích thời gian toàn chip bắt đầu sớm trong quá trình
thiết kế.

10.2.5 xung tín hiệu Skew


Các phân tích cho đến nay đã giả định xung tín hiệu lý tưởng không có độ lệch. Trong
thực tế là không thể. Sự không chắc chắn trong thời gian đến của chúng có thể cắt giảm
thời gian có sẵn cho tính toán hữu ích, như thể hiện trong Hình 10.15 (a). Dòng clk đậm
cho biết xung tín hiệu mới nhất có thể thời gian đến. Các đường băm cho thấy rằng xung
tín hiệu có thể đến sớm hơn lần vì xiên. Tình huống tồi tệ nhất đối với độ trễ tối đa trong
một hệ thống dựa trên flip-flop là flop đang tung ra nhận được xung tín hiệu của nó muộn
và flop nhận nhận được xung tín hiệu của nó sớm. Trong trong trường hợp này, độ lệch
của xung tín hiệu được trừ khỏi thời gian có sẵn để tính toán hữu ích và xuất hiện dưới
dạng chi phí giải trình tự. Kịch bản tồi tệ nhất cho độ trễ tối thiểu là việc khởi chạy flop
nhận xung tín hiệu của nó sớm và xung tín hiệu nhận nhận được xung tín hiệu của nó
muộn, như thể hiện trong Hình 10.15(b). Trong trường hợp này, độ lệch xung tín hiệu có
hiệu quả làm tăng thời gian giữ của hệ thống.
Trong hệ thống sử dụng các chốt trong suốt, độ lệch của xung tín hiệu không làm giảm
hiệu suất.
Hình 10.16 cho thấy chu kỳ đầy đủ (ít trễ hơn hai chốt) có sẵn để tính toán như thế nào
ngay cả khi xung tín hiệu bị lệch vì dữ liệu vẫn có thể đến các chốt trong khi chúng là rõ
ràng. Do đó, chúng ta nói rằng các hệ thống dựa trên chốt trong suốt có khả năng chịu
lệch. Tuy nhiên, xiên vẫn làm tăng hiệu quả thời gian giữ trong mỗi nửa chu kỳ. Nó cũng
cắt thành cửa sổ có sẵn để mượn thời gian.
Ví dụ 10.7
Nếu đường tự bỏ qua ALU từ Hình 10.6 có thể chịu độ lệch 50 ps từ một chu kỳ tiếp theo
giữa các lần flip-flops trong các ALU khác nhau, chu kỳ tối thiểu là bao nhiêu thời gian
của hệ thống? Hệ thống có thể có độ lệch xung nhịp bao nhiêu trước khi xảy ra lỗi giữ
thời gian?
GIẢI:
Theo EQ (10.12), thời gian chu kỳ nên tăng 50 ps lên 1202 ps. Độ lệch tối đa mà hệ
thống có thể hoạt động chính xác tại bất kỳ thời gian chu kỳ nào là tcd - thold + tccq = 45 - (–
10) +75 = 130 ps.

Các chốt xung có thể chịu được một lượng lệch tỷ lệ với độ rộng xung. Nếu xung đủ
rộng, độ lệch sẽ không làm tăng chi phí giải trình tự vì dữ liệu có thể đến trong khi chốt
trong suốt. Nếu xung hẹp, lệch có thể làm giảm hiệu suất. Một lần nữa, xiên có hiệu quả
làm tăng thời gian giữ và giảm lượng thời gian có sẵn để mượn (xem Bài tập 10.7).
Tóm lại, các hệ thống có cạnh cứng, trừ độ lệch của xung tín hiệu khỏi thời gian có sẵn
để tính toán hữu ích. Hệ thống có các cạnh mềm hơn (ví dụ: chốt) tận dụng lợi thế của
cửa sổ trong suốt để chịu được một số sai lệch xung tín hiệu mà không làm tăng giải trình
tự chi phí. Độ lệch xung tín hiệu sẽ được đề cập thêm trong Phần 13.4. Đặc biệt, số lượng
độ lệch khác nhau có thể được lập ngân sách cho việc kiểm tra độ trễ tối thiểu và độ trễ
tối đa. Hơn nữa, các phần tử tuần tự gần đó có thể ít bị lệch hơn các phần tử ở các góc đối
diện của chip. Các công cụ địa điểm & tuyến đường tự động hiện tại dành nhiều nỗ lực để
độ trễ xung tín hiệu mô hình và chèn các phần tử đệm để giảm thiểu độ lệch xung tín
hiệu, nhưng độ lệch xung tín hiệu là một vấn đề ngày càng tăng đối với các hệ thống có
chu kỳ thời gian tích cực.
10.3 Thiết kế mạch của chốt và flip-flops
Chốt CMOS thông thường được xây dựng bằng cách sử dụng bóng bán dẫn truyền hoặc
bộ đệm ba bước để vượt qua dữ liệu trong khi chốt là trong suốt và phản hồi để giữ dữ
liệu trong khi chốt không trong suốt. Chúng ta bắt đầu bằng cách khám phá thiết kế mạch
cho các chốt cơ bản, sau đó xây dựng trên chúng để sản xuất flip-flops và chốt xung.
Nhiều chốt chấp nhận đặt lại và / hoặc kích hoạt đầu vào. Cũng có thể xây dựng các hàm
logic vào các chốt để giảm chi phí sắp xếp trình tự. Một số cấu trúc chốt và nắp lật thay
thế đã được sử dụng trong thương mại kiểu dáng. Kỹ thuật xung tín hiệu một pha đích
thực (TSPC) sử dụng một xung tín hiệu đơn không có nghịch đảo để đơn giản hóa việc
phân phối xung tín hiệu. Klass Semidynamic Flip-Flop (SDFF) là một lật nhanh bằng
cách sử dụng giai đoạn nhập liệu kiểu domino. Flip-flops khác biệt là tốt cho một số các
ứng dụng. Mỗi lựa chọn thay thế này đều được mô tả và so sánh.

You might also like