Một mạch như một đơn vị logic số học sẽ lấy một vài số làm đầu vào và tạo ra một số là ouptut. Nó có thể đảm bảo rằng trong một khoảng thời gian, tất cả các bit của đầu ra sẽ đạt đến trạng thái cuối cùng chính xác, nhưng lượng thời gian thực tế để các bit đầu ra trở nên hợp lệ có thể thay đổi đáng kể dựa trên nhiều yếu tố khác nhau.
Có thể xây dựng ALU với đầu vào "hợp lệ" và đầu ra "hợp lệ" và chỉ định rằng đầu vào "hợp lệ" thấp trong một khoảng thời gian đủ trước khi thực hiện tính toán và đầu vào dữ liệu chứa giá trị mong muốn trước khi đầu vào "hợp lệ" tăng cao, đầu ra "hợp lệ" sẽ không tăng cao cho đến khi các bit đầu ra trên thực tế là chính xác. Một thiết kế như vậy có thể sẽ cần khoảng gấp đôi mạch điện so với ALU thông thường [về cơ bản, nó sẽ phải theo dõi xem mỗi bit được "biết" là 0 hay "được biết" là một; đầu ra "hợp lệ" của nó sẽ trở thành đúng khi trạng thái của mọi bit đầu ra được biết].
Để làm cho mọi thứ tồi tệ hơn, cho phép các bộ phận của CPU có khả năng chạy nhanh hơn để làm như vậy sẽ chỉ hữu ích nếu chúng không chờ đợi tất cả các phần chậm hơn để chơi bắt kịp. Để thực hiện điều đó, phải có logic để quyết định phần nào của máy "đi trước" tại một thời điểm nhất định và chọn một quá trình hành động dựa trên điều đó. Thật không may, loại quyết định đó là một trong những quyết định khó khăn nhất đối với thiết bị điện tử. Việc quyết định một cách đáng tin cậy sự kiện nào trong hai sự kiện xảy ra trước thường chỉ dễ dàng nếu người ta có thể đảm bảo rằng sẽ không bao giờ có bất kỳ "cuộc gọi gần" nào. Giả sử một trình sắp xếp bộ nhớ đang xử lý một yêu cầu từ đơn vị xử lý số 1 và đơn vị số 1 có một yêu cầu khác đang chờ xử lý sau đó. Nếu đơn vị số 2 gửi yêu cầu trước khi yêu cầu đầu tiên từ số 1 hoàn thành, đơn vị bộ nhớ sẽ xử lý việc đó; nếu không, nó sẽ xử lý yêu cầu tiếp theo từ đơn vị số 1. Đó có vẻ là một thiết kế hợp lý, nhưng cuối cùng lại có vấn đề đáng ngạc nhiên. Vấn đề là nếu có một thời điểm mà một yêu cầu nhận được trước thời điểm đó sẽ được xử lý ngay lập tức và một yêu cầu nhận được sau đó sẽ phải chờ, thì thời gian cần thiết để xác định xem một yêu cầu có vượt quá thời hạn không gần như tỷ lệ nghịch với chênh lệch giữa thời gian nhận được yêu cầu và thời hạn. Thời gian cần thiết để đơn vị bộ nhớ xác định rằng yêu cầu từ số 2 vượt quá thời hạn một giây có thể vượt quá thời gian cần thiết để phục vụ yêu cầu thứ hai từ đơn vị số 1, nhưng đơn vị không thể phục vụ hoặc yêu cầu cho đến khi nó quyết định cái nào sẽ phục vụ trước.
Có tất cả mọi thứ chạy trên một đồng hồ chung không chỉ loại bỏ nhu cầu cho mạch để xác định khi nào đầu ra của một tính toán hợp lệ, nó cũng cho phép loại bỏ "các cuộc gọi gần" đúng lúc. Nếu mọi thứ trong hệ thống hết xung nhịp 100Mhz, không có tín hiệu nào thay đổi theo đồng hồ cho đến 1ns sau cạnh đồng hồ và mọi thứ sẽ xảy ra để đáp ứng với cạnh đồng hồ xảy ra trong vòng 7ns, thì mọi thứ sẽ xảy ra trước một cạnh đồng hồ cụ thể sẽ "thắng" ít nhất 3ns và mọi thứ sẽ không xảy ra cho đến sau khi cạnh đồng hồ sẽ "mất" ít nhất 1ns. Xác định xem tín hiệu có cơ hội trước hay sau đồng hồ hay không, khi nó được đảm bảo không bị "đóng", sẽ dễ dàng hơn nhiều so với việc xác định tín hiệu nào trong hai tín hiệu có thời gian tùy ý xảy ra trước.