Informatika **fanidagi ma'lumotlarga bog'liqlik** - dasturning keyingi buyrug'i oldingi har qanday buyruqqa bog'liq bo'lgan holat. Kompilyatsiya nazariyasida bog'liqlikni aniqlash usuli bog'liqlikni tahlili deb ataladi.

Bog'liqlarning uch turi mavjud: ma'lumotlarga bog'liqlik, nomga bog'liqlik va boshqaruvga bog'liqlik.

**Ma'lumotlarga bog'liqliklar**
-------------------------------

Agar quyidagi shartlardan kamida bittasi bajarilsa, 2-jamoa 1-jamoaga maʼlumotlarga bogʻliqligini aytamiz:

* 1-buyruq 2-buyruq foydalanadigan natijani chiqaradi.
* 2-buyruq ba'zi 3-buyruqlarga bog'liq bo'lgan ma'lumotlar, bu esa o'z navbatida 1-buyruqga bog'liq

Agar buyruqlar ma'lumotlarga bog'liq bo'lsa, ularni bir vaqtning o'zida bajarib bo'lmaydi. Ushbu buyruqlarning bir vaqtning o'zida bajarilishi bir -birining ustiga chiqishni yo'q qilishni ta'minlaydigan ichki quvurlarni blokirovka qilish sxemalari bo'lgan ba'zi bir mashinani yaratishni talab qiladi. Ichki qulflari bo'lmagan mashinada kompilyator to'liq mos keladigan bog'liq ko'rsatmalarni rejalashtira olmaydi. Aks holda, dastur to'g'ri ishlamaydi.

**Nomi bo'yicha bog'liqliklar**
-------------------------------

Keyingi turdagi bog'liqlik - bu nomga bog'liqlik. Bu bog'liqliklar buyruqlar bir xil nomdan foydalanganda ( registr, xotira joylashuvi ), lekin buyruqlar o'rtasida ma'lumot uzatish bo'lmaganda paydo bo'ladi. 1 va 2 buyruqlar o'rtasida nomga bog'liqlikning ikki turi mavjud:

* Anti -dependency - Agar 2-ko'rsatma 1-ko'rsatma o'qiydigan xotira joyiga yozsa va birinchi bo'lib 1-ko'rsatma bajarilsa paydo bo'ladi.
* Chiqishga bog'liqlik - 1-buyruq va 2-buyruq natijani bir xil xotira joyiga yozganda yuzaga keladi. Bu buyruqlarni bajarish tartibi saqlanishi kerak.

Ushbu ikki turdagi bog'liqliklar bog'liqlik deb ataladi, chunki ma'lumotlarga bog'liqlikdan farqli o'laroq, ular ma'lumotlarni bir buyruqdan boshqasiga o'tkazmaydi. Bu shuni anglatadiki, nomga bog'liqlik bilan bog'langan buyruqlar birgalikda bajarilishi mumkin, agar buyruqlarda ishlatiladigan xotira joylashuvi nomi buyruqlar bir-biriga zid bo'lmasligi uchun o'zgartirilsa. Ro'yxatga olish nomini o'zgartirish kompilyator tomonidan statik ravishda, shuningdek, apparat tomonidan dinamik ravishda amalga oshirilishi mumkin.

**Bog'liqlarni nazorat qilish**
-------------------------------

Bog'liqlikning oxirgi turi - bu nazoratga bog'liqlik. Ular shartli sakrash buyrug'iga nisbatan ko'rsatmalarning tartibini belgilaydi. Natijada, sakrashsiz ko'rsatmalar faqat kerak bo'lganda bajariladi. Dasturdagi har bir ko'rsatma shartli sakrashlar to'plamiga bog'liq holda nazorat qilinadi. Umuman olganda, ushbu nazorat bog'liqliklari saqlanishi kerak.

Boshqaruvga bog'liqlik bilan bog'liq ikkita cheklov mavjud:

* Boshqarishga bog'liq bo'lgan ko'rsatma harakat natijasida shartli o'tish ko'rsatmasi oldiga qo'yilmaydi va undan mustaqil bo'ladi.
* Shartli tarmoqli ko‘rsatmadan nazoratdan mustaqil bo‘lgan ko‘rsatmani shartli tarmoqli ko‘rsatmadan keyin shunday joylashtirish mumkin emaski, uning bajarilishi shu shartli bo‘lim tomonidan nazorat qilinadi.

**Eslatmalar**
--------------

1. ↑  
John L. Hennessy; David A. Patterson*. Computer Architecture: a quantitative approach (3rd ed.)*. Morgan Kaufmann, 2003. ISBN 1-55860-724-2.

|  |  |
| --- | --- |
| Stub ikona | *Ushbu maqola chaladir. Siz uni boyitib, Vikipediyaga yordam berishingiz mumkin.** k
* m
* t
Bu andozani aniqrogʻiga almashtirish kerak. |