Apakah frekuensi CPU nilai rata-rata tentang berapa banyak clock ticks dalam satu detik atau apakah ia memiliki stabilitas fisik yang lebih kuat?
Menurut saya, itu pasti tidak stabil atau tidak stabil. Jadi apakah ada informasi yang tersedia tentang varian untuk CPU?
Apakah durasi siklus CPU ketat disinkronkan dengan getaran kristal? Atau apakah CPU hanya harus memastikan untuk mencapai siklus sebelum kutu berikutnya?
Jawaban:
Seperti hal rumit lainnya, Anda dapat menggambarkan cara CPU beroperasi di berbagai tingkatan.
Pada level paling mendasar, CPU digerakkan oleh jam yang akurat. Frekuensi jam dapat berubah; pikir SpeedStep Intel. Tetapi setiap saat CPU benar-benar 100% terkunci pada sinyal clock.
Instruksi CPU beroperasi pada level yang jauh lebih tinggi. Sebuah instruksi tunggal adalah hal yang kompleks dan dapat berlangsung dari kurang dari satu siklus hingga ribuan siklus untuk diselesaikan seperti yang dijelaskan di sini di Wikipedia .
Jadi pada dasarnya suatu instruksi akan mengkonsumsi sejumlah siklus jam . Dalam CPU modern, karena teknologi seperti multiple core, HyperThreading, pipelining, caching, out-of-order, dan eksekusi spekulatif, jumlah pasti siklus clock untuk satu instruksi tidak dijamin, dan akan bervariasi setiap kali Anda mengeluarkan instruksi seperti itu. !
SUNTING
Iya dan tidak. 99,99% pengguna akhir tertarik pada kinerja keseluruhan , yang dapat diukur dengan menjalankan berbagai tolok ukur.
Apa yang Anda minta adalah informasi yang sangat teknis. Intel tidak mempublikasikan informasi lengkap atau akurat tentang latensi / throughput instruksi CPU .
Ada peneliti yang mengambilnya sendiri untuk mencoba mencari tahu. Berikut adalah dua PDF yang mungkin menarik:
Sayangnya sulit untuk mendapatkan data varians . Mengutip dari PDF pertama:
Namun bacaan yang menarik!
sumber
But at all times the CPU is absolutely 100% locked to the clock signal
hanya berlaku untuk CPU sinkron. Sungguh konyol berbicara tentang kutu dalam CPU asinkron (tanpa jam), tapi rasanya seperti kelalaian bagi saya :)Tentu saja tidak. Bahkan jam yang sangat, sangat terbaik tidak sepenuhnya berkala. Hukum termodinamika mengatakan sebaliknya:
Para pengembang jam yang sangat, sangat baik berusaha sangat, sangat sulit untuk mengatasi hukum termodinamika. Mereka tidak bisa menang, tetapi mereka datang sangat, sangat dekat dengan titik impas. Jam di CPU Anda? Ini sampah dibandingkan dengan jam atom terbaik itu. Inilah sebabnya mengapa Network Time Protocol ada.
Prediksi: Sekali lagi kita akan melihat sedikit kekacauan ketika jam atom terbaik di dunia mulai dari 2015 30 Juni 23:59:59 UTC hingga 2015 30 Juni 23:59:60 UTC hingga 2015 1 Juli 2015 00:00:00 UTC. Terlalu banyak sistem tidak mengenali lompatan detik dan setel keamanannya ditetapkan menjadi dua (yang mencegah perubahan waktu lebih dari satu detik). Clock jitter dalam sistem tersebut berarti bahwa Network Time Protocol leap second akan ditolak. Sejumlah komputer akan mengalami peningkatan, seperti yang terjadi pada tahun 2012.
sumber
Sekitar tahun 2000, ketika kecepatan clock CPU mulai masuk ke dalam rentang di mana ponsel juga beroperasi, menjadi umum untuk menambahkan variasi pada kecepatan clock aktual. Alasannya sederhana: Jika jam CPU persis 900 Mhz, semua gangguan elektronik dihasilkan pada frekuensi itu. Variasikan frekuensi clock sedikit antara 895 dan 905 Mhz, dan interferensi juga didistribusikan pada rentang itu.
Ini dimungkinkan karena CPU modern terbatas pada panas. Mereka tidak memiliki masalah menjalankan sedikit lebih cepat untuk periode waktu yang singkat, karena mereka dapat menjadi dingin ketika jam diperlambat nanti.
sumber
Perancang logika digital di sini. Waktu aktual yang diambil oleh jaringan logika untuk berubah sebagai respons terhadap sinyal input adalah penundaan propagasi . Pikirkan sistem sebagai:
registers A,B,C... ---> logic cloud ---> registers A',B',C'
"Jam peluncuran" adalah tepi jam di mana set register pertama berubah. "Jam tangkap" adalah ujung jam berikutnya satu periode kemudian. Agar sistem dapat bekerja, output cloud logika harus stabil sebelum jam tangkap tiba.
Proses memastikan ini bekerja adalah analisis waktu. Dengan menggunakan simulasi sistem berbasis fisika, tentukan waktu kedatangan kasus terburuk dari input apa pun untuk output apa pun. Angka-angka terbesar di seluruh sistem ini menetapkan periode jam minimum.
Catat kasus terburuk . Waktu propagasi aktual akan lebih pendek, tetapi tergantung pada variasi proses pembuatan, suhu saat ini, dan tegangan chip ( PVT ). Ini berarti secara praktis Anda dapat menerapkan jam yang lebih cepat (overclocking) dan mungkin berhasil. Mungkin juga mulai menghasilkan kesalahan, seperti memutuskan bahwa
0x1fffffff + 1 = 0x1f000000
jika carry bit tidak tiba tepat waktu.Chip mungkin juga memiliki lebih dari satu jam di papan (biasanya FSB lebih lambat dari inti), dan jam aktual dapat menggenjot ke atas atau ke bawah untuk tujuan kontrol termal atau bervariasi (jawaban MSalter tentang menggunakan spektrum spread untuk lulus tes EMC).
sumber
Tidak juga. Durasi instruksi akan menjadi beberapa jumlah kutu jam, tetapi jumlah itu dapat bervariasi berdasarkan persyaratan instruksi. Sebagai contoh, jika suatu instruksi tidak dapat membuat kemajuan maju sampai lokasi memori tertentu dalam cache L1, maka instruksi tersebut tidak akan selesai sebelum clock tick berikutnya. Tidak ada kemajuan maju pada instruksi yang akan dibuat sampai itu terjadi.
Tetapi ketika CPU memutuskan untuk melakukan sesuatu, metode dasar yang digunakannya adalah mengatur sakelar internal sehingga sepotong informasi tertentu masuk ke bagian tertentu dari CPU. Itu menunggu input untuk tiba di bagian itu dan output tiba di bagian berikutnya. Bagian penantian ini adalah tujuan dari jam.
Bayangkan sebuah rangkaian fisik yang mengambil dua input biner dan menjumlahkannya, menghasilkan jumlah pada beberapa set kabel ketiga. Untuk melakukan penambahan, CPU harus mengatur agar dua angka yang akan ditambahkan untuk sampai ke adder ini dan output untuk pergi ke, misalnya, kait register CPU. CPU tidak dapat memberitahu kait untuk menyimpan output sampai input mencapai adder, adder menghasilkan output, dan output mencapai kait. Ini adalah tujuan dari jam - untuk mengatur waktu tunggu antara mengatur input untuk pergi ke suatu tempat dan mengharapkan output siap digunakan.
sumber