Clock — raqamli tizimdagi amallarni vaqt bo‘yicha muvofiqlashtiradigan davriy signal. Protsessor, xotira, bus va boshqa elektron bloklar clock edge’lariga mos ravishda holatini o‘zgartiradi.
Clock signal odatda ma’lum frequency bilan 0 va 1 holatlari orasida almashadi.
Frequency yuqori bo‘lsa, bir soniyada ko‘proq cycle mavjud. Biroq performance faqat clock frequencyga bog‘liq emas.
Clock cycle
Clockning bir to‘liq davri cycle deb ataladi.
Frequency:
1 Hz = 1 cycle/soniya
1 MHz = 1 million cycle/soniya
1 GHz = 1 milliard cycle/soniya
3 GHz processor nazariy jihatdan bir soniyada 3 milliard clock cycle bajaradi.
Bitta instruction bir yoki bir nechta cycle talab qilishi mumkin. Superscalar CPU bir cycle’da bir nechta instruction yakunlashi ham mumkin.
Period
Clock period bitta cycle davomiyligi.
Formula:
Period = 1 / Frequency
1 GHz uchun:
1 / 1 000 000 000 = 1 ns
3 GHz uchun cycle taxminan 0,333 ns.
Rising va falling edge
Clock signalning 0dan 1ga o‘tishi rising edge, 1dan 0ga o‘tishi falling edge.
Digital circuit register va latchlar ma’lum edge’da inputni qabul qiladi.
DDR xotira data’ni rising va falling edge’da uzatadi, shu sababli “double data rate”.
Oscillator
Clock manbai crystal oscillator, ring oscillator yoki boshqa elektron generator bo‘lishi mumkin.
Crystal aniq va barqaror frequency beradi.
Platforma reference clockdan bir nechta ichki frequency hosil qiladi.
PLL
Phase-Locked Loop reference clockni ko‘paytirish yoki bo‘lish orqali kerakli frequency yaratadi.
Masalan:
100 MHz reference × 40 multiplier = 4 GHz
PLL clock phase va frequency’ni barqaror ushlaydi.
CPU, memory va bus uchun alohida PLLlar bo‘lishi mumkin.
Base clock va multiplier
CPU frequency ko‘pincha:
Base clock × multiplier
orqali hosil bo‘ladi.
Misol:
100 MHz × 45 = 4.5 GHz
Base clock boshqa subsystemlarga ham ta’sir qilishi mumkin. Multiplierni o‘zgartirish odatda xavfsizroq boshqaruv beradi.
Clock domain
Tizimdagi turli bloklar boshqa frequency yoki phase’da ishlashi mumkin.
Masalan:
Har biri alohida clock domain.
Ikki domain orasida data uzatish clock domain crossing mexanizmini talab qiladi.
Clock domain crossing
Asynchronous clock domainlar orasida signal noto‘g‘ri paytda o‘qilsa metastability yuz berishi mumkin.
Yechimlar:
Bu hardware dizaynning muhim qismi.
Metastability
Flip-flop input setup yoki hold vaqtiga juda yaqin o‘zgarsa, chiqish vaqtincha aniq 0 yoki 1 bo‘lmasligi mumkin.
Metastabilityni butunlay yo‘q qilish mumkin emas, lekin ehtimolini juda kamaytirish mumkin.
Synchronizer uchun yetarli vaqt beriladi.
Setup va hold time
Setup time
Input clock edge’dan oldin barqaror turishi kerak bo‘lgan vaqt.
Hold time
Input edge’dan keyin barqaror turishi kerak bo‘lgan vaqt.
Timing violation noto‘g‘ri data capture’ga sabab bo‘ladi.
Clock skew
Bir clock edge chipning turli nuqtalariga aynan bir vaqtda yetib bormaydi.
Bu farq clock skew.
Clock tree dizayni skewni kamaytiradi.
Yuqori frequencyda kichik skew ham timing budgetning katta qismini egallaydi.
Jitter
Clock edge’larining ideal vaqtdan qisqa muddatli og‘ishi jitter.
Sabablar:
- power noise;
- oscillator;
- PLL;
- temperature;
- interference.
Jitter high-speed serial link, ADC va memory timingga ta’sir qiladi.
CPU frequency
CPU frequency oshishi instructionlar tezroq cycle olishini anglatadi.
Lekin performance quyidagilarga ham bog‘liq:
- instructions per cycle;
- cache;
- branch prediction;
- core soni;
- memory latency;
- pipeline;
- workload;
- thermal limit.
Turli arxitekturadagi 3 GHz CPUlar bir xil tezlikda ishlamaydi.
Turbo frequency
Zamonaviy CPU workload, temperature va power limitga qarab frequency’ni dinamik oshiradi.
Bitta core yuqori, barcha core pastroq turbo ishlashi mumkin.
Turbo doimiy kafolatlangan frequency emas.
Clock gating
Ishlamayotgan blokka clock signalni vaqtincha to‘xtatish dynamic powerni kamaytiradi.
Clock toggle bo‘lmasa registerlar holatini o‘zgartirmaydi.
Mobile va server chiplar energiya samaradorligi uchun clock gatingdan keng foydalanadi.
Dynamic frequency scaling
OS va firmware CPU frequency’ni workloadga qarab o‘zgartiradi.
Past yukda:
- frequency kamayadi;
- voltage kamayishi mumkin;
- quvvat sarfi va issiqlik pasayadi.
Yuqori yukda frequency oshadi.
Real-time clock
RTC system sana-vaqtini saqlaydigan alohida soat.
CPU clockdan farqli:
- juda past frequency;
- kompyuter o‘chiq bo‘lsa ham batareya bilan ishlaydi;
- calendar vaqtini yuritadi.
RTC va CPU clock bir tushuncha emas.
Bus clock
Buslar ham reference clock yoki embedded clockingdan foydalanadi.
PCIe kabi serial link data ichidan clock recovery qiladi.
Memory clock marketingdagi effective transfer rate bilan aralashmasligi kerak. DDRda transfer rate clockdan ikki baravar bo‘lishi mumkin.
Overclocking
Clock frequency ishlab chiqaruvchi standartidan yuqori oshirilsa overclocking deyiladi.
Yuqori frequency:
- performance oshirishi;
- voltage talab qilishi;
- issiqlikni ko‘paytirishi;
- timing xatolar;
- system beqarorligi
keltirib chiqarishi mumkin.
Diagnostika
Clock bilan bog‘liq hardware muammosida:
- actual frequency;
- reference clock;
- multiplier;
- thermal throttling;
- power limit;
- voltage;
- clock jitter;
- memory timing;
- error log;
- stress test
tekshiriladi.
Monitoring vositasidagi “clock” qiymati target, effective yoki instant frequency bo‘lishi mumkin.
Bog‘liq tushunchalar
Frequency, Clock cycle, Oscillator, PLL, Multiplier, Clock domain, Jitter, Clock skew, Turbo frequency, RTC