Là đồng hồ CPU tick đúng định kỳ?


51

Là tần số của CPU có phải là giá trị trung bình của khoảng bao nhiêu đồng hồ tích tắc trong một giây hay nó có độ ổn định vật lý mạnh hơn?

Theo tôi, nó phải không ổn định cũng không ổn định. Vì vậy, có bất kỳ thông tin có sẵn về phương sai cho CPU?

Thời lượng chu kỳ của CPU có được đồng bộ hóa nghiêm ngặt với rung động tinh thể không? Hay CPU chỉ cần chắc chắn để đạt được một chu kỳ trước khi đánh dấu tiếp theo?


7
Có nhiều loại CPU khác nhau. Hầu hết sử dụng một tinh thể rung theo tần số cụ thể theo thời gian. Có nghĩa là hầu hết đều chính xác như một chiếc đồng hồ đeo tay kỹ thuật số (sử dụng cùng loại tinh thể để giữ thời gian). vi.wikipedia.org/wiki/Cstall_oscillator
krowe 8/2/2015

5
@Gael một số hướng dẫn mất hàng trăm tích tắc, hoặc chu kỳ đồng hồ , để hoàn thành.
misha256 8/2/2015

1
@Gael: Ngoài ra, việc CPU tự làm chậm hoặc tăng tốc là điều khá phổ biến và họ làm điều đó khá thường xuyên. Mặc dù tôi không biết chính xác nó liên quan đến bọ ve như thế nào.
Vịt Mooing ngày 9/2/2015

18
Bỏ phiếu để đóng điều này như tìm kiếm sản phẩm, dịch vụ, hoặc học tập khuyến nghị tài liệu ? Thật hả mọi người?
một CVn

30
Đây là một câu hỏi hợp pháp tìm cách làm rõ cách thức hoạt động của phần cứng.
studiohack

Câu trả lời:


49

Giống như bất kỳ điều phức tạp nào, bạn có thể mô tả cách CPU hoạt động ở nhiều cấp độ khác nhau.

Ở cấp độ cơ bản nhất, CPU được điều khiển bởi một đồng hồ chính xác. Tần số của đồng hồ có thể thay đổi; nghĩ rằng SpeedStep của Intel. Nhưng tại mọi thời điểm, CPU hoàn toàn bị khóa 100% với tín hiệu đồng hồ.

Hướng dẫn CPU hoạt động ở mức cao hơn nhiều. Một hướng dẫn duy nhất là một điều phức tạp và có thể mất bất kỳ nơi nào từ ít hơn một chu kỳ đến hàng ngàn chu kỳ để hoàn thành như được giải thích ở đây trên Wikipedia .

Vì vậy, về cơ bản một hướng dẫn sẽ tiêu thụ một số số chu kỳ đồng hồ . Trong các CPU hiện đại, do các công nghệ như nhiều lõi, HyperThreading, pipelining, bộ nhớ đệm, không theo thứ tự và thực thi đầu cơ, số chu kỳ xung nhịp chính xác cho một lệnh không được đảm bảo và sẽ thay đổi mỗi khi bạn đưa ra một lệnh như vậy !

BIÊN TẬP

Có bất kỳ thông tin có sẵn về phương sai cho một CPU cụ thể không?

Có và không. 99,99% người dùng cuối quan tâm đến hiệu suất tổng thể , có thể được định lượng bằng cách chạy các điểm chuẩn khác nhau.

Những gì bạn đang yêu cầu là thông tin kỹ thuật cao. Intel không công bố thông tin đầy đủ hoặc chính xác về độ trễ / thông lượng lệnh của CPU .

Có những nhà nghiên cứu đã tự mình thử nó để tìm ra điều này. Đây là hai tệp PDF có thể được quan tâm:

Thật không may, thật khó để có được dữ liệu phương sai . Trích dẫn từ bản PDF đầu tiên:

số được liệt kê là giá trị tối thiểu. Lỗi bộ nhớ cache, sai lệch và ngoại lệ có thể làm tăng đáng kể số lượng đồng hồ.

Thú vị đọc tuy nhiên!


1
Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Sathyajith Bhat

4
Rất đẹp. Tất nhiên, But at all times the CPU is absolutely 100% locked to the clock signalchỉ áp dụng cho CPU đồng bộ. Thật ngớ ngẩn khi nói về các con bọ trong CPU không đồng bộ (không có xung nhịp), nhưng tôi cảm thấy như một thiếu sót đối với tôi :)
Luaan

1
@Luaan - Đúng. Tôi nghĩ rằng CPU không đồng bộ thực sự vẫn còn khá hiếm, nhưng chúng tồn tại (hoặc có trong quá khứ). Chỉ thực sự có liên quan đến các nhà nghiên cứu và chuyên viên máy tính phần cứng.
Daniel R Hicks

@DanielRHicks Họ quan tâm đến các thiết bị nhúng (có một số CPU không đồng bộ MIPS và ARM cũ), nhưng vâng, không thực sự là vấn đề lớn trên thị trường tiêu dùng. Rốt cuộc, tại sao lại quan tâm đến mức tiêu thụ năng lượng CPU của điện thoại thông minh khi có màn hình ngốn điện ngay bên cạnh. Tuy nhiên, việc tiết kiệm năng lượng (và các tính năng khác) có thể rất tuyệt vời đối với một số ứng dụng khác - SyNAPSE của IBM trông giống như một dự án tuyệt vời cho các mục đích khoa học.
Luaan

@Luaan - Điểm thú vị, trở lại khi chúng lần đầu tiên được phát minh, là máy tính chạy chính xác nhanh / chậm như cần thiết để thực hiện tính toán. Nhưng các kế hoạch đồng hồ phức tạp hơn về cơ bản đã hoàn thành điều tương tự, sắp xếp.
Daniel R Hicks

29

Là đồng hồ CPU tick đúng định kỳ trong tự nhiên?

Dĩ nhiên là không. Ngay cả những chiếc đồng hồ rất, rất tốt nhất cũng không theo định kỳ. Các định luật nhiệt động lực học nói khác:

  • Luật Zeroth: Có một trò chơi nhỏ khó chịu mà vũ trụ chơi với bạn.
  • Luật đầu tiên: Bạn không thể thắng.
  • Định luật thứ hai: Nhưng bạn chỉ có thể hòa vốn, vào một ngày rất lạnh.
  • Luật thứ ba: Nó không bao giờ bị lạnh.

Các nhà phát triển của đồng hồ rất, rất tốt nhất cố gắng rất, rất khó để vượt qua các quy luật nhiệt động lực học. Họ không thể thắng, nhưng họ đến rất, rất gần để hòa vốn. Đồng hồ trên CPU của bạn? Đó là rác so với những đồng hồ nguyên tử tốt nhất. Đây là lý do tại sao Giao thức Thời gian Mạng tồn tại.


Dự đoán: Một lần nữa chúng ta sẽ thấy một chút hỗn loạn khi đồng hồ nguyên tử tốt nhất trên thế giới đi từ 2015 30 tháng 6 23:59:59 UTC đến 2015 30 tháng 6 23:59:60 UTC đến 2015 1 tháng 7 năm 2015 00:00:00 UTC. Quá nhiều hệ thống không nhận ra giây nhuận và đặt chế độ bảo mật của chúng thành hai (điều này ngăn sự thay đổi thời gian hơn một giây). Jitter đồng hồ trong các hệ thống đó có nghĩa là bước nhảy vọt Giao thức thời gian mạng thứ hai sẽ bị từ chối. Một số máy tính sẽ hoạt động tốt, giống như họ đã làm trong năm 2012.


9
+1, hài hước và nhiều thông tin. Và chủ đề Leap thứ hai cũng là một bài đọc tốt.
jimm-cl

9
Chà, IIRC, wa-up-up wa gây ra bởi vì thói quen đồng hồ hạt nhân nhận thức được khả năng của giây nhuận, nhưng đã thực hiện điều chỉnh như một cuộc gọi đến thói quen điều chỉnh đồng hồ không được phép gọi trong khi đồng hồ đã được gọi được điều chỉnh ... Và tất nhiên đồng hồ hệ thống không liên quan gì đến đồng hồ cpu.
Hagen von Eitzen

1
Lol, tuyệt vời. Tôi phải thêm một cái gì đó vào quan sát "đồng hồ CPU là rác so với đồng hồ nguyên tử" của bạn : Thật vậy! Nhưng tất cả đều rất chủ quan, không đề cập đến tương đối. Chúng ta có thể ngạc nhiên về độ chính xác vượt trội của đồng hồ nguyên tử tốt nhất của chúng ta, nhưng ở đâu đó ngoài thực tế ấm cúng của chúng ta) có thể có công nghệ làm cho đồng hồ nguyên tử của chúng ta trông giống như "rác" :-p
misha256

2
@ misha256 thực tế là không thể có đồng hồ chính xác . Thời gian là tương đối.
Keltari

Đồng hồ CPU có thể là rác, nhưng không có gì giống như để tràn đăng ký 8 bit chỉ để dành thời gian cho trình điều khiển hiển thị 7 đoạn ở trạng thái không xác định để kiểm tra hướng dẫn của bạn trước khi bạn phát hành lệnh tiếp theo. Chúng ta không cần tinh thể cho điều đó. Hoặc thậm chí quan trọng hơn, không có gì giống như đợi một nano giây để ALU hoàn thành tính toán của nó trước khi bạn bỏ kết quả của nó vào một thanh ghi (hoặc lên xe buýt dẫn đến ALU khác).
John Dvorak

22

Khoảng năm 2000, khi tốc độ xung nhịp của CPU bắt đầu đi vào phạm vi mà điện thoại di động cũng hoạt động, nó trở nên phổ biến để thêm một biến thể cho tốc độ xung nhịp thực tế. Lý do rất đơn giản: Nếu xung nhịp CPU chính xác là 900 Mhz, tất cả các nhiễu điện tử được tạo ra ở tần số đó. Thay đổi tần số xung nhịp một chút trong khoảng 895 đến 905 Mhz và nhiễu cũng được phân phối trên phạm vi đó.

Điều này là có thể bởi vì CPU hiện đại bị hạn chế nhiệt. Họ không gặp vấn đề gì khi chạy nhanh hơn một chút trong một khoảng thời gian ngắn, vì họ có thể hạ nhiệt khi đồng hồ bị chậm lại sau đó.


13
Trong BIOS, bạn sẽ thường thấy tùy chọn này được mô tả là "Phổ rộng"
Đánh dấu Sowul

1
Tôi đã đọc được rằng trong các CPU đa lõi, các lõi cũng sử dụng đồng hồ bù vì nó giúp tránh nhiễu vô tuyến, giúp phân phối điện và tránh các lõi tạo sóng hài.
Zan Lynx

3
@MarkSowul cảm ơn, cuối cùng cũng có người nói về cách sử dụng thực tế của "phổ trải rộng" này.

22

Thiết kế logic kỹ thuật số ở đây. Thời gian thực tế để mạng logic thay đổi để đáp ứng với tín hiệu đầu vào là độ trễ lan truyền . Hãy nghĩ về hệ thống như:

registers A,B,C... ---> logic cloud ---> registers A',B',C'

"Đồng hồ khởi chạy" là cạnh đồng hồ tại thời điểm bộ thanh ghi đầu tiên thay đổi. "Đồng hồ chụp" là cạnh đồng hồ tiếp theo một thời gian sau. Để hệ thống hoạt động, đầu ra của đám mây logic phải ổn định trước khi đồng hồ chụp đến.

Quá trình đảm bảo công việc này là phân tích thời gian. Sử dụng một mô phỏng dựa trên vật lý của hệ thống, tính toán thời gian đến trường hợp xấu nhất của bất kỳ đầu vào nào cho bất kỳ đầu ra nào. Số lớn nhất trong các hệ thống này đặt thời gian tối thiểu.

Lưu ý trường hợp xấu nhất . Thời gian lan truyền thực tế sẽ ngắn hơn, nhưng nó phụ thuộc vào sự thay đổi quy trình sản xuất, nhiệt độ hiện tại và điện áp chip ( PVT ). Điều này có nghĩa là trong điều kiện thực tế, bạn có thể áp dụng đồng hồ nhanh hơn (ép xung) và nó có thể hoạt động. Nó cũng có thể bắt đầu tạo ra các lỗi, chẳng hạn như quyết định rằng 0x1fffffff + 1 = 0x1f000000nếu bit carry không đến kịp.

Chip cũng có thể có nhiều hơn một đồng hồ trên tàu (thường là FSB chậm hơn lõi) và đồng hồ thực tế có thể được tăng hoặc giảm cho mục đích kiểm soát nhiệt hoặc thay đổi (câu trả lời của MSalter về việc sử dụng phổ trải rộng để vượt qua các bài kiểm tra EMC).


Trong một số trường hợp, đồng hồ chụp có thể là chu kỳ thứ hai hoặc muộn hơn là chu kỳ tiếp theo. Một số thiết kế cho rằng dữ liệu sẽ luôn mất ít nhất một khoảng thời gian tối thiểu (ví dụ: nếu độ trễ lan truyền được biết là giữa chu kỳ 2.1 và 2.9, dữ liệu có thể được lấy ra và kết quả được lấy mẫu trên mỗi chu kỳ; mỗi kết quả được lấy mẫu sẽ phản ánh dữ liệu từ 3 chu kỳ trước); các thiết kế bảo thủ khác thay đổi dữ liệu đầu ra chậm hơn và bỏ qua kết quả cho đến khi nó được đảm bảo ổn định.
supercat

2

Thời lượng lệnh của CPU có được đồng bộ hóa nghiêm ngặt với độ rung tinh thể không? Hay CPU chỉ cần chắc chắn để đạt được một hướng dẫn trước khi đánh dấu tiếp theo?

Cũng không. Thời lượng hướng dẫn sẽ là một số số tích tắc đồng hồ, nhưng số đó có thể thay đổi dựa trên yêu cầu của hướng dẫn. Ví dụ: nếu một lệnh không thể thực hiện tiến trình cho đến khi một vị trí bộ nhớ cụ thể nằm trong bộ đệm L1, thì lệnh sẽ không được hoàn thành trước dấu tích đồng hồ tiếp theo. Không có tiến triển về hướng dẫn đó sẽ được thực hiện cho đến khi điều đó xảy ra.

Nhưng khi CPU quyết định làm một cái gì đó, phương pháp cơ bản mà nó thực hiện là thiết lập các bộ chuyển mạch bên trong của nó để một phần thông tin cụ thể đi đến một phần cụ thể của CPU. Nó chờ đầu vào đến phần đó và đầu ra đến phần tiếp theo. Phần chờ này là mục đích của đồng hồ.

Tưởng tượng một mạch vật lý có hai đầu vào nhị phân và tính tổng chúng, xuất ra tổng trên một số dây thứ ba. Để thực hiện bổ sung, CPU phải sắp xếp cho hai số được thêm vào để đến bộ cộng này và các đầu ra sẽ đi tới, giả sử, chốt đăng ký CPU. CPU không thể yêu cầu chốt lưu trữ đầu ra cho đến khi đầu vào đến bộ cộng, bộ cộng tạo ra đầu ra và đầu ra đạt đến chốt. Đây là mục đích của đồng hồ - để đặt thời gian chờ giữa việc sắp xếp đầu vào để đi đâu đó và hy vọng đầu ra sẽ sẵn sàng để sử dụng.

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.