logo

Umumiy xotirali multiprotsessorlar

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

192.876953125 KB
Umumiy xotirali multiprotsessorlar
Reja:
1. Kirish
2. Kesh uyg’unligi va xotiraning barqarorligi
3. Sinxronlashtirish va o'zaro chi qarish
4. Foydalanilgan adabiyotlar Kirish
Umumiy   xotirali   protsessorlar   oddiy   va   umumiy   dasturlash   modeli   tufayli
mashhur   bo'lib,   bu   kod   va   ma'lumotlarni   almashishni   qo'llab-quvvatlaydigan
parallel dasturiy ta'minotni oddiy ishlab chiqish imkonini beradi.
Umumiy   -   xotira   protsessorlari   barcha   protsessorlar   uchun   yagona   jismoniy
manzil   maydonini   ta'minlaydi   va   har   bir   protsessor   o'zining   mahalliy   xotirasi   va
keshidan   foydalangan   holda   o'z   dasturini   ishga   tushirishi   mumkin.   Protsessorlar,
shuningdek,   alohida   modullarda   joylashtirilgan   umumiy   xotiradan   foydalanish
imkoniyatiga   ega.   Protsessorlar   har   qanday   protsessorgaot ir ajhausaqitanjrciumn
umumiy   o'zgaruvchilar   yordamida   aloqa   qiladilar.   Umumiy   xotirali   ko'p
protsessorli   tizimda   xotira   1-   rasmda   ko'rsatilganidek,   ierarxik   tarzda   tashkil
etilgan.
Rasmda   n t a   protsessor  va   b   umumiy xotira moduliga ega tizim  ko'rsatilgan.  Har
bir protsessor o'zining ichki registrlariga, keshiga va mahalliy xotirasiga ega. Kesh
protsessor tomonidan ishlatiladigan barcha ma'lumotlarni saqlaydi. Mahalliy xotira
boshqa   protsessorlar   bilan   bo'lishish   uchun   mo'ljallanmagan   mahalliy
o'zgaruvchilarni   saqlaydi.   Umumiy   xotira   protsessorlar   o'rtasida   almashinishi
kerak   bo'lgan   umumiy   o'zgaruvchilarni   saqlaydi.   O'zaro   ulanish   tarmog'i   bir
vaqtning   o'zida   bir   nechta   protsessorlarga   tarmoq   orqali   turli   xil   umumiy   xotira
modullariga   kirish   imkonini   beradi.   Bu   bir   vaqtning   o'zida   bir   nechta   xotirani
o'qish/yozish operatsiyalarini bajarishga imkon beradi.
Bu umumiy xotira protsessorlarida ikkita muhim fikrni keltirib chiqaradi:
1. Kesh kogerentligi
2. Sinxronizatsiya va o'zaro istisno 1-rasm   Umumiy   –   xotira   protsessorlari.   Har   bir   protsessorda   mahalliy   kesh   va
mahalliy xotira mavjud. Barcha protsessorlar umumiy xotira modullariga   ulanish
tarmog'I orqali kirishlari mumkin. 
Kesh uyg’unligi va xotiraning barqarorligi
Protsessorlarga shaxsiy keshlarni ulash xotiraning kechikishini protsessor tezligiga
moslashtirish   orqali   dasturning   bajarilishini   tezlashtiradi.   Shunday   qilib,   o'qish,
yozish operatsiyalari arifmetik va mantiqiy birlik (ALU) operatsiyalari bilan bir xil
vaqtni   oladi.   1-jadvalda   kesh   uyg'unligini   tavsiflash   uchun   foydalaniladigan
terminologiya   berilgan.   Kesh   foydalidir,   chunki   ko'pgina   vazifalar   yoki   ilovalar
vaqtinchalik   va   fazoviy   joylashuvni   ko'rsatadi   .   Vaqtinchalik   joylashuv   yaqin
kelajakni  anglatadi. Fazoviy joylashuv  yaqin kelajakda joriy ma'lumotlarga yaqin
joylashgan ma'lumotlardan foydalanishni anglatadi. Shu sababli, umumiy xotira va
keshlar  o'rtasidagi  ma'lumotlarni  yuklash/saqlash  operatsiyalari   bloklar   rordamida
amalga   oshiriladi   .   2-   rasmda   umumiy   xotirada   saqlanadigan   bloklar   va   ularning
ma'lum bir protsessor keshidagi nusxalari o'rtasidagi munosabat ko'rsatilgan. Kesh
ba'zi   bloklarni   feg   yordamida   saqlaydi,   bu   blokning   manzilini   umumiy   xotirada
saqlaydi.   Keshda   saqlangan   har   bir   blok   satr   deb   ataladigan   qator   sifatida
saqlanadi. Mahalliy kesh
Mahalliy xotira
Umumiy xotira modullari Bir qator quyidagi komponentlarni o'z ichiga oladi:
1.   Satrdagi   ma'lumotlar   umumiy   xotiradagi   blok   bilan   mos   keladimi   yoki
yo'qligini ko'rsatish uchun yaroqli bit ( V )
2.  Keshdagi satr manzili bo'lgan indeks 
3.   Umumiy xotiradagi blok manziliga ishora qiluvchi teg 
4.  Blokda saqlangan ma'lumotlarni o'z ichiga olgan ma'lumotlar.
Umumiy   xotira   tizimlari   uchun   keshlar,   shuningdek,   xotira   ziddiyatlarini
bartaraf   etishga   yordam   beradi   ikki   yoki   undan   ortiq   protsessorlar   bir   xil   xotira
moduliga kirishga harakat qilganda.
Umumiy   xotirada   saqlangan   ma'lumotlarning   nusxalari   saqlangan   nusxalarga
mos kelishi kerak mahalliy keshlarda.  Bu  kesh uyg'unligi deb ataladi . Umumiy
o'zgaruvchining   nusxalari,   agar   ularning   barchasi   teng   bo'lsa   ,   kogerent   ao'ladi.
Agar   protsessor   tomonidan   har   bir   o'qish   operatsiyasi   oldingi   yozish   natijasida
hosil   bo'lgan   qiymatni   topsa,   keshlar   samarali   hisoblanadi.   Kesh   uyg'unligi
dasturning to'g'ri  bajarilishini  ta'minlash va  tizimning yuqori  ishlashini  ta'minlash
uchun muhimdir. 
1-jadval  Kesh muvofiqligini tavsiflash uchun foydalaniladigan terminologiya
Terminlari Ma'nosi
Bloklash Umumiy   xotirada   saqlanadigan   qo ' shni   so ' zlar   yoki              
ma ' lumotlar   guruhi
Translyatsiya
Ma'lumot barcha keshlarga yuborilganda
Kesh Xotiraga   kirish   vaqtini   qisqartirish   va   protsessorlar  
o ' rtasidagi   umumiy   xotira   to ' qnashuvlarini   kamaytirish  
uchun   protsessor   bilan   bir   xil   chipda   amalga   oshiriladigan  
kichik   yuqori   tezlikli   xotira  
Kesh uyg’unligi Umumiy xotiradagi blokning tarkibi va turli keshlar bir xil 
emas. Kesh muvofiqligini saqlash protokoli siyosati kesh uyg'unligini saqlash uchun 
amalga oshirildi
Kogerent tizim Umumiy   xotiradan   blokning   har   bir   o ' qilishi ,  boshqa   har  
qanday   oxirgi   yozma   tomonidan   ishlab   chiqarilgan   bir   xil  
ma ' lumotlarni   topsa   protsessor
Global ma'lumotlar Umumiy xotirada saqlangan ma'lumotlar
Chiziq Tegi va yaroqli biti bilan keshda saqlanadigan blok
Mahalliy 
ma'lumotlar Keshda saqlangan ma'lumotlar
O'zgartirilgan blok Keshdagi   blok   ma ' lumotlari   umumiy   ma ' lumotlarda  
yangilanmagan   xotira
Multicast Ma'lumot barcha keshlarga emas, balki ba'zilariga 
yuboriladi.
O'zgartirish Yangisiga joy ochish uchun keshdan blokni olib tashlash 
blok
Fazoviy joylashuv Xuddi   shu   blokdagi   ma ' lumotlar   qisqa   vaqt   ichida  
ishlatiladi .
Vaqtinchalik 
joylashuv Blokdagi   ma ' lumotlar   so ' zi   qisqa   vaqt   ichida   ishlatiladi .
Unicast Ma'lumot faqat bitta keshga yuboriladi.
Yaroqli Blok tarkibi yangilangan.
Yozing - orqaga Umumiy   xotiradagi   blok   keshdagi   tegishli   blok  
almashtirilganda   yangilanadi .
Yozing - orqali Umumiy   xotiradagi   blok   keshdagi   tegishli   blok  
o ' zgartirilganda   yangilanadi .
Faraz   qilaylik ,   ikkita   protsessor ,   P 1   va   P 2,   ularning   ikkita   alohida   keshlarida
saqlangan   bir   xil   umumiy   o ' zgaruvchilardan   foydalaning .   Agar   P 1   o ' zining
mahalliy   qiymatini   o ' zgartirsa ,   biz   P 2   o ' zgarishlardan   xabardor   ekanligiga   ishonch
hosil   qilishimiz   kerak  . To'rtta   protsessor   va   bitta   umumiy   xotira   moduliga   ega   umumiy   xotira   tizimi
misolini ko'rib chiqing. 2- jadval umumiy xotiradagi blok protsessorlar tomonidan
yuklanganda va keyin bir yoki bir nechta protsessorlar tomonidan o'zgartirilganda
yuzaga keladigan muammolarni ko'rsatadi. Yozish siyosati qabul qilinadi.
3-jadval   umumiy   xotiradagi   blok   protsessorlar   tomonidan   yuklanganda   va   keyin
bir   yoki   bir   nechta   protsessorlar   tomonidan   o'zgartirilganda   yuzaga   keladigan
muammolarni   ko'rsatadi.   Qayta   yozish   siyosati   qabul   qilinadi.   2-jadvaldagi
voqealarga muvofiq turli vaqt holatlaridagi kesh tarkibi quyida tushuntirilgan.
2-jadval Yozish bilan kesh muvofiqligi muammosiga misol - siyosat orqali
Vaqt Umumiy
xotira Keshlar
Izoh
C
0 C
1 C
2 C
3
0 b b - - - b  bloki C
0  da yuklangan.
1 b b b - b b  bloki C
1  va C
3  da yuklangan.
2 b b b - b
3 Protsessor  P
3  o'zining  b  nusxasini
o'zgartiradi. Endi tizim izchil emas.
3 b
3 b b - b
3 Protsessor  P
3  yozishni amalga oshiradi.
Tizim kogerent emas, chunki C
0  va C
1
turli xil nusxalarga ega.
4 b
3 b
3 b
3 - b
3 Umumiy xotira tekshiruvi C
0  va C
1
yangilanadi. Endi tizim izchil.So'z
16 bit Bloklash So'z
12 bit 4 
bit
16 bitli so'z manzil
maydoniga ega asosiy
xotira 12 bitli blok manzili va
4 bitli so'z manzili bilan
kesh xotirasi 2-rasm Umumiy xotirada saqlanadigan 
bloklar va ularning ma'lum bir protsessor 
keshidagi nusxalari o'rtasidagi munosabat. Vaqt 0.  P
0  protsessoridagi C
0  keshi  uni qayta ishlash jarayonida foydalanish uchun
b  blokini yuklaydi .
Vaqt   1.   I   kkala   kesh   C
1   va   C
3   ham   umumiy   blokdan   bir   xil   blokni   yuklaydi
xotira. Endi bizda  b   ning uchta nusxasi bor.
Vaqt   2.   Protsessor   P
3   C
3   da   b   nusxasini   yangilaydi   .   Ayni   paytda   ma'lumotlar
umumiy xotira va keshlar izchil emas.
Vaqt  3.   P
3   ma'lumotlarni   C
3   va  ichida  qilish  uchun   yozish  operatsiyasini   bajaradi
umumiy xotira izchil.
3-jadval Yozish - Orqaga siyosati bilan kesh muvofiqligi muammosiga misol
Vaqt Umumiy
xotira Keshlar
Izoh
C
0 C
1 C
2 C
3
0 b b - - - b  bloki C
0  da yuklangan.
1 b b b - b b  bloki C
1  va C
3  da yuklangan.
2 b b b - b
3 Protsessor  P
3  o'zining  b
3  nusxasini
o'zgartiradi. Endi tizim izchil emas.
3 b b
0 b
1 - b
3 P
0  va  P
1  protsessorlari  b  ning o'z
nusxalarini o'zgartiradilar.
4 b
1 b
0 b
1 - b
3 P
1  umumiy xotiraga yozishni amalga
oshiradi
5 b
1 ? b
1 b
1 ? Xotira va keshlarni yangilash uchun  b
ning qaysi qiymatidan foydalanish kerak?
Vaqt   4.   Qaysi   protsessor   umumiy   xotirani   yangilashi   kerak?   Qayta   yozish
siyosati   bilan   bu   qaysi   protsessor   keshni   almashtirishni   amalga   oshirishiga   qarab
belgilanadi. Bunday holda, u  P
1   bo'ladi.
Vaqt 5.   P
2   blokni yuklaydi   b   va markaziy boshqaruvchi barcha protsessorlarga
yangi   qiymat   haqida   xabar   beradi   b1   .   P
0   va   P
3   nima   qilishi   kerak?   Ularning
ma'lumotlarini   almashtiring   yoki   o'z   versiyalaridan   foydalanish   uchun   umumiy
xotiraga xabar bering. 
2 va 3-jadvallardagi oldingi ikkita holatdan ko'rinib turibdiki, kesh kogerentligi
muammosi   ayniqsa   ko'p   protsessorli   tizimlar   uchun   juda   jiddiydir.   Xotira tarkibining   to'g'ri   qiymati   qaysi   protsessor   birinchi   bo'lib   xotiraga   kesh   saqlashni
(yozishni)   amalga   oshirganligini   anglatmasligi   kerak.   Masalan,   2-jadvalda   P
3
birirtchi   o'zgarishni   b   blokda   amalga   oshirganini   ko'ring,   keyin   P
0   keyin   P
1   .   Bu
umumiy xotirada   b   blokini yangilash uchun to'g'ri ketma-ketlik bo'lmagan bo'lishi
mumkin   .   Buning   sababi   protsessorlarning   bir-biri   bilan   sinxronlashtirilmaganligi
va   har   bir   protsessordagi   vazifalar   va   ish   zarralarini   rejalashtirish   boshqa
protsessorlar   bilan mos  kelmasligi.  Xo'sh,   b   ni  yangilashning  to'g'ri   ketma-ketligi
qanday ? Bu javobga erishishning ikki yo'li mavjud:
1.  Ilovaning ketma-ket bajarilishi asosida  b   ni  to'g'ri yangilash 
2.   Ma'lumotlarga bog'liqlik asosida  b   ni to'g'ri yangilash
Dasturning   ketma-ket   bajarilishi   deganda   dasturni   bir   protsessorli   ketma-ket
mashinada   ishga   tushirish   tushuniladi,   unda   ko'p   ishlov   berish   yoki   ko'p   ish
zarralarini o'tkazish qobiliyati yo'q. O'zgaruvchiga kirish va yangilash tartibi dastur
ishlab   chiqaruvchisi   tomonidan   ishlab   chiqilgan   to'g'ri   tartibdir.   O'zgaruvchan
kirish/yangilanishning   ushbu   ketma-ketligi   dasturni   ko'p   protsessorli   tizimda
amalga oshirishda kuzatilgan bo'lishi kerak. Xotirada va barcha keshlarda umumiy
o'zgaruvchini   qanday   yangilashni   aniqlashda   ushbu   kirish   ketma-ketligiga   rioya
qilish kerak. Kesh/xotiraga to'g'ri kirish, agar parallel mashina tomonidan olingan
natijalar   har   doim   ketma-ket   mashina   tomonidan   olingan   natijalar   bilan   bir   xil
bo'lsa, to'g'ri bo'ladi.
Ma'lumotlarga bog'liqlik asosida   b   ning to'g'ri yangilanishi dastur vazifalari
uchun vaqt  ketma-  ketligini   amalga oshirishning  yon  mahsulotidir. 8-11-boblarda
ishlab   chiqilgan   ma'lumotlarni   rejalashtirish   strategiyalarining   barchasi   algoritm
o'zgaruvchilarini   yangilash   uchun   to'g'ri   ketma-   ketlikni   aniqlaydi.   Bu   keshni
yangilash ketma-ketligini aniqlash uchun ko'rsatma bo'lib xizmat qiladi.
Umumiy   xotira   tizimida   protsessorlar   tomonidan   umumiy   o'zgaruvchilar
qiymatlarini   yangilash   kutilmoqda.   Kesh   xotiralarining   mazmuni   umumiy   xotira
mazmuniga   mos   kelishini   ta'minlash   uchun   kesh   kogerentlik   protokolidan
foydalanish kerak. Ikkita asosiy kesh muvofiqlik protokollari mavjud:
1.  Katalog protokollari 
2.  Snoopy protokollari Katalog protokollari yordamida kesh muvofiqligi
Katalog   protokollari   yordamida   kesh   uyg'unligini   saqlashning   asosiy
komponentlari 3-rasmda ko'rsatilgan. Protsessorlar   bilan   bog'langan   mahalliy
keshlarda   mahalliy   keshlarda   saqlangan   umumiy   o'zgaruvchilarning   nusxalarini
yangilashni   muvofiqlashtirish   uchun   mahalliy   kesh   kontrollerlari   mavjud.
Markaziy   boshqaruvchi   tizim   uchun   kesh   kogerensiyasini   ta'minlash   uchun
javobgardir.   Umumiy   xotiraning   bir   qismi   har   bir   umumiy   blokning   holatini
bildiruvchi   yozuvlarni   saqlaydigan   katalogdir.   Katalogdagi   har   bir   yozuvning
tuzilishi   foydalanilgan   katalog   protokolini   amalga   oshirish   tafsilotlariga   bog'liq.
Markaziy   boshqaruvchi   mahalliy   kesh   so'rovlarini   boshqaradi   va   umumiy
o'zgaruvchilar   holatidagi   har   qanday   o'zgarishlar   to'g'risida   mahalliy   kesh
boshqaruvchilarini   xabardor   qilish   uchun   javobgardir.   O'zaro   ulanish   tarmog'i
kontrollerlar va keshlar va umumiy xotira o'rtasidagi aloqani ta'minlaydi.  
4.4   -   rasmda   to'liq   -   xarita   katalogi   protokoli   tafsilotlari   ko'rsatilgan.   Har   bir
yozuv  n  + 2 bitni o'z ichiga oladi, bu erda  n  - protsessorlar soni.  Rasmda biz  n   = 8
deb   faraz   qildik.   D   etiketli   bit   ma'lumotlarning   haqiqiyligini   (0)   yoki
o'zgartirilganligini (1) ko'rsatadi.
3-rasm   Katalog   protokollari   yordamida   kesh   muvofiqligi   uchun   tizim
komponentlari. 4-rasm  To'liq - xarita katalogiga asoslangan sxema.
5-rasm  Snoopy protokollari yordamida kesh kogerentligi uchun tizim komponentlari. 
X   etiketli   bit   yangilanish   ma'lumotlarini   (B)   har   bir   protsessorga   uzatishni   yoki
ma'lumotlarning translyatsiya qilinmasligini (NB) ko'rsatadi. Rasmdan ko'ramizki,
agar   ko'rsatilgan   yozuvga   mos   keladigan   blok   o'zgartirilsa,   u   holda   bu   o'zgarish
haqida faqat 1 va 4 protsessorlardagi keshlar xabardor bo'lishi kerak.
To'liq   xaritali   katalog   sxemasi   umumiy   bloklarning   joylashishini   aniq   biladi.
Ushbu   nusxalar   bilan   bog'langan   keshlar   ma'lum   umumiy   blok   bilan   bog'liq
muvofiqlik harakatlarida ishtirok etadi. Biroq, sxema o'zgarmasdir, chunki barcha
muvofiqlik operatsiyalari  markaziy boshqaruvchiga yo'naltirilishi  kerak. Bu to'siq
bo'lishi mumkin. Bundan tashqari, har bir yozuvning o'lchami protsessorlar soniga
to'g'ridan-to'g'ri   proportsionaldir   va   protsessorlar   soni   o'zgarganda   o'zgartirilishi
kerak. Snoopy protokollari yordamida kesh muvofiqligi
5-rasmda   snoopy   protokollari   yordamida   kesh   muvofiqligi   uchun   asosiy
komponentlar   ko'rsatilgan.   Katalog   protokollaridan   farqli   o'laroq,   snoopy
protokollari   umumiy   xotiradagi   katalog   yoki   markaziy   boshqaruvchidan
foydalanmaydi.   Blok   bilan   bog'liq   muvofiqlik   harakatlari   mahalliy   kesh   va
umumiy   xotira   o'rtasida   bog'lanadi.   Ushbu   operatsiyalar   boshqa   barcha   mahalliy
keshlar   tomonidan   nazorat   qilinadi.   O'zaro   bog'lanish   tarmog'i   har   bir   protsessor
tarmoqdagi   barcha   harakatlarni   kuzatish   imkoniyatiga   ega   bo'lishi   uchun
ma'lumotlarni   uzatishning   translyatsiyasini   qo'llab-quvvatlashi   kerak.   Umumiy
avtobus   ushbu   translyatsiya   rejimiga   mos   keladi,   chunki   har   bir   avtobus
tranzaksiyasi avtobusga ulangan barcha protsessorlar tomonidan osongina sezilishi
mumkin.   Biroq,   umumiy   avtobus   cheklangan   tarmoqli   kengligiga   ega,   bu   har
qanday vaqtda faqat bitta tranzaktsiyani amalga oshirishga imkon beradi.
Xotirani   yozish   operatsiyasi   har   qanday   protsessor   tomonidan   amalga
oshirilganda,   boshqa   barcha   protsessorlar   bu   operatsiya   ularga   tegishli   yoki
yo'qligini   hal   qiladi.   P
i   protsessorining   yozish   jarayoni   P
j   protsessoriga   tegishli
bo'ladi,   agar   u   P
i   tomonidan   kirish   blokining   nusxasi   bo'lsa.   Keshni   yangilash
siyosati asosida   P
j   uchun ikkita variant mavjud. Yaroqsizligiga asoslangan siyosat
bo'lsa,   P
j   o'zining   b   nusxasini   bekor   qiladi.   Keyin   u   keshdan   ma'lumot   kerak
bo'lganda   b   ni   umumiy   xotiradan   ko'chiradi.   Yangilangan   siyosat   bo'lsa,   P
j
umumiy   xotira   yangilanayotganda   yoki   undan   keyin   boshqa   vaqtda   avtobusda
mavjud ma'lumotlardan foydalangan holda  b  nusxasini almashtiradi. Sinxronlashtirish va o'zaro chi qarish
Umumiy   o'zgaruvchida   ishlaydigan   har   bir   jarayon   yoki   ish   zarrachasi   kritik
bo'lim deb ataladigan kod segmentiga ega, bu erda jarayon umumiy o'zgaruvchida
qiymatini   o'zgartirib   ishlaydi.   Jarayon   o'zining   muhim   qismini   bajarayotganda,
biron   bir   protsessorda   boshqa   hech   qanday   jarayon   uning   muhim   qismini
bajarishga   ruxsat   etilmaydi.   4.6-rasmda   tanqidiy   qismni   o'z   ichiga   olgan   kod
segmenti ko'rsatilgan. Jarayon kritik bo'lim kodiga yetganda, uni kiritish va ushbu
kod bo'limini faqat blokirovka olish mumkin bo'lgan taqdirdagina bajarishga ruxsat
beriladi. Jarayon tanqidiy qism bilan tugashi bilanoq, u qulfni bo'shatadi va muhim
qismdan   keyin   kodni   bajarishga   kirishadi.   Agar   ikkita   yoki   undan   ortiq   jarayon
muhim qismga etib borsa, qulfni olish uchun faqat bitta jarayonga ruxsat beriladi.
Boshqa barcha jarayonlar muhim qismning boshida kutiladi.
Dijkstra   va   Knut   atomik   o'qish   va   yozish   operatsiyalari   yordamida
sinxronizatsiya   va   o'zaro   istisno   qilishni   ta'minlash   mumkinligini   ko'rsatdi.   Atom
operatsiyalari   xotiraning   ma'lum   bir   joyga   o'qish,   o'zgartirish   va   yozish
operatsiyalari   boshqa   protsessorlarning   aralashuvisiz   bajarilishini   ta'minlaydi.
Ushbu   asosiy   qobiliyat   apparat   tomonidan   ta'minlanadi   va   yanada   murakkab
dasturiy   ta'minotni   yaratishga   imkon   beradi   algoritmlar.   Past   darajadagi   apparat
atom   operatsiyalariga   misollar   xotirani   yuklash/saqlash   va   sinov   va   sozlashni   o'z
ichiga oladi.
Ushbu past darajadagi sinxronizatsiya primitivlari dasturiy ta'minot tomonidan
qulflar,   semaforlar,   monitorlar   va   to'siqlar   kabi   yuqori   darajadagi   atom
operatsiyalarini   yaratish   uchun   ishlatilishi   mumkin.   Ko'p   protsessorli   tizimda
jarayon   yoki   ip   qulf   yoki   to'siqni   olganida   ehtiyot   bo'lish   kerak.   Qulfni   qo'lga
kiritishni   kutayotgan   boshqa   jarayonlar   kechiktirilmasligi   uchun   qulfni   ushlab
turish jarayonini oldindan o'tkazib yubormaslik kerak. Yechimlardan biri - xavfsiz
qulflashni ta'minlashdir. 6-rasm   Oddiy kod ichidagi muhim bo'limni ko'rsatadigan kod segmenti.
Sinxronizatsiya jarayonlari yoki oqimlari uchta hodisani o'z ichiga oladi:
Qabul   qilish:   bu   erda   jarayon   yoki   oqim   sinxronizatsiya   primitivini   olishga
harakat qiladi (masalan, mutex yoki to'siq)
Kutish:   bu   erda   ip   sinxronizatsiya   primitivining   mavjud   bo'lishini   samarali
kutadi.
Chiqarish: ish zarrachasi o'z ishini tugatgandan so'ng, u boshqa jarayonlar yoki
oqimlarni   sinxronizatsiya   primitivi   mavjudligi   haqida   xabar   berishi   kerak.   Bu
boshqa   ish   zarrachalariga   primitivni   olish   yoki   sinxronizatsiya   hodisasidan
tashqarida davom etish imkonini beradi.
Sinxronizatsiya   primitivining   mavjud   bo'lishini   kutayotgan   jarayon   yoki   oqim
kutish   algoritmidan   foydalanadi.   Kutish   algoritmi   band   -   kutish   yoki   blokirovka
orqali   amalga   oshirilishi   mumkin.   Oxirgi   tanlov   markaziy   protsessor   (CPU)
resurslarini   isrof   qilmaydi,   lekin   ipni   to'xtatib   turish   va   davom   ettirish   uchun
ko'proq   xarajatlarni   talab   qiladi.   Bu   band   bo'lishining   sababi   -   kutish   vaqti   qisqa
bo'lsa   kutish   ko'proq   mos   keladi   va   kutish   muddati   uzoq   bo'lsa   blokirovka   qilish
mos   keladi.     Band   -   ko'p   protsessorli   tizimlarda   kutish   yaxshi   miqyosda   emas.
Kutish jarayonlari aslida o'z keshlaridagi nusxalar yordamida umumiy qulfni sinab ko'radi.   Biroq,   qulf   bo'shatilgandan   so'ng,   barcha   jarayonlar   ushbu   yangi   holat
haqida xabardor bo'ladi va umumiy xotirada bo'shatilgan umumiy qulfga kirishga
urinayotganda   o'zaro   ulanish   tarmog'idan   foydalanadi.   Bu   o'zaro   bog'lanish
tarmog'ida trafikning ko'payishiga va xotira nizosiga olib keladi.
Sinxronizatsiya: qulflar
Kritik  bo'lim  muammosining  har  qanday  yechimi   qulfni   talab qiladi.  Bloklash
asosan   umumiy   manbaga   kirishni   ketma-ketlashtiradi,   shunda   faqat   bitta   jarayon
yoki oqim istalgan vaqtda o'zgaruvchini  o'qiydi va o'zgartiradi. Ushbu bo'limning
boshida aytib o'tganimizdek, jarayon muhim bo'limga kirishdan oldin qulfni olishi
kerak.
6-rasmda ko'rsatilgan. Dasturni ishlab chiqishni soddalashtirish va ishlov berish
yukining   bir   qismini   operatsion   tizimdan   olib   tashlash   uchun   apparatda   qulf
mavjud.
Muhim   bo'lim   bitta   protsessorda   umumiy   o'zgaruvchida   ishlayotganida
uzilishlarning oldini olish yordamida ishlov berilishi mumkin. Ushbu yechim ko'p
protsessorli   tizimda   amaliy   emas,   chunki   barcha   protsessorlar   uzilishni   o'chirish
haqida xabardor bo'lishi kerak. Ushbu xabar protsessorlar orasida uzatilayotganda
vaqt behuda ketadi.
Qulflash apparatda maxsus atom TestAndSet () ko'rsatmasi bilan ta'minlangan.
Ushbu   ko'rsatma   qulfning   qiymatini   (sinov   qismi)   qaytaradi   va   tugagandan   so'ng
qulfning qiymatini 1 ga o'rnatadi.
Bloklash   xotiradagi   qiymat   bo'lib,   unda   o'qish   -   o'zgartirish   -   yozish
operatsiyasi   ushbu   buyruq   yordamida   atomik   tarzda   amalga   oshiriladi.   Atom
TestAndSet () funktsiyasi apparatda amalga oshiriladi, ammo psevdokod quyidagi
tarzda tasvirlangan:
1: boolean TestAndSet (boolean *lock)
2: {
3: boolean v  =  *lock; // Test (read) operation
4: *lock  =  TRUE; // Modify (set) and Write operations
5: return v; 6: }
1-qator funktsiyani e'lon qiladi va uning tanasini belgilaydi.
3-qator   qulfning   qiymatini   o'qish   orqali   atom   ko'rsatmasining   sinov   qismini
bajaradi.
4-qator   qulfni   o'zgartiradi   va   qulfning   qiymatini   yangilaydi.   Agar   qulf   dastlab
TRUE   bo'lsa,  yana  TRUE   yozish  bilan  hech qanday  zarar  bo'lmaydi.  Biroq, agar
qulf  FALSE  bo'lsa, u holda qulf  mavjud bo'ladi  va jarayon v o'zgaruvchisi  orqali
bu   fakt   haqida   ma'lumot   oladi.   Jarayon,   shuningdek,   boshqa   jarayonlar   uchun
mavjud bo'lmasligi uchun qulfni TRUE ga atomik tarzda o'rnatadi.
5-qator   muhim   qismga   kirish   yoki   kirmaslik   haqida   qaror   qabul   qilish   uchun
jarayon tomonidan ishlatiladigan qulfning asl qiymatini qaytaradi.
TestAndSet   ()   funktsiyasidan   endi   qulf   mavjud   bo'lganda   yoki   qulf   mavjud
bo'lishini   kutayotganda,   kritik   bo'limga   kirishni   boshqarish   jarayoni   quyidagi
tarzda ishlatilishi mumkin:
1: Code before critical section
2:
3: // Attempt to acquire lock
4: while (TestAndSet (&lock))
5: ; // no action and continue testing lock
6:
7: // Start of critical section
8: critical section code
9: // End of critical section
10: lock  =  FALSE; // release lock
11:
12: Code after critical section
1-qator kritik qismdan oldingi oddiy kodni ifodalaydi.
4-qatorda   jarayon   cheksiz   WHILE   siklida   qulfning   qiymatini   sinab   ko'radi.
Agar   blokirovka   qiymati   FALSE   bo'lsa,   tsikl   tugaydi   va   jarayon   qulfni   oladi   va
uning muhim qismini bajarishga davom etadi. 8-qator kritik qismni ifodalaydi. 10-qator   muhim   qismning   oxirida   qulfni   chiqaradi.   12-qator   muhim   qismdan
keyingi koddir.
Bu   erda   kompyuter   aloqalari   yoki   tarmoqlarida   blokirovka   va   o'rta   kirishni
boshqarish   (MAC)   muammosini   olishga   urinish   jarayonlarining   o'xshashligini
ta'kidlash   kerak.   4-jadvalda   telekommunikatsiyalarda   o'zaro   istisno   va   MAC
o'rtasidagi o'xshashliklar jamlangan.
Sinxronizatsiya: Mutex
Muteks   M   ikkilik son bo'lib, u 0 va 1 qiymatlariga ega bo'lishi mumkin, bu o'zaro
istisno qilishda foydalidir. Muteksga dastlab 1 qiymati beriladi, bunda unga kerak
bo'lgan har qanday ip o'zining muhim bo'limiga kirishi mumkin.
O'zaro chiqarish MAC
Tanqidiy qism O'tkazilgan paket
Jarayon / ip Foydalanuvchi/tugun
Qulflash Kanal
Qulf olindi Tugun tomonidan olingan kanal
Qulf mavjud Kanal bepul
Qulf mavjud emas Kanal band
Qulfni oching Translyatsiyaning tugashi
Sinov qulfi Kanal holatini tekshiring
Band - kutish Foydalanuvchi orqaga o'chirish 
rejimida
Ip   mutexni   qo'lga   kiritib,   uning   kritik   qismiga   kirganda,   uning   qiymatini
kamaytirish   orqali   uni   qulflaydi.   Ip   o'zining   kritik   qismi   bilan   tugagach,   uning
qiymatini   oshirish   orqali   mutexni   chiqaradi.   Qulf   ishlatilayotgan   vaqtda   kritik
mintaqaga   kelgan   har   qanday   ip   kutadi,   chunki   mutex   allaqachon   0   da.   Natija
shuki,   ko'pi   bilan   bitta   ip   kritik   bo'limga   kirishi   mumkin   va   u   chiqib   ketgandan
keyingina boshqasi  kirishi  mumkin. Ushbu turdagi qulflash strategiyasi  ko'pincha
umumiy   global   o'zgaruvchiga   kiradigan   kodni   ketma-ketlashtirish   va   o'zaro
ta'minlash uchun ishlatiladi. chiqarish.
Muteksga   qo'llash   uchun   ikkita   asosiy   atom   operatsiyasi   mavjud:   wait()   va
signal(). Ushbu ikki operatsiya uchun psevdokodlar quyidagicha:
1: wait (M) 
2: while M  <=  0 
3: {  1: signal (M)
2: {
3: M ++ ; // increment M
4: ; // do nothing 4: }
5: M––; // decrement M if it is 1
6: }
wait()   mutex   M   =   0   bo'lganda   ipni   o'zining   kritik   bo'limiga   kirishini   samarali
tarzda   oldini   oladi.   M   =   1   bo'lishi   bilan   ip   o'zining   kritik   qismini   bajarishga
kirishishi mumkin.
POSIX   iplar   kutubxonasida   wait()   funksiyasi   kutubxona   chaqiruvi   pthread
mutex lock(mutex *M) yordamida amalga oshiriladi. signal() funktsiyasi
kutubxona   chaqiruvi   pthread   mutex   unlock   (mutex   *M)   yordamida   amalga
oshiriladi.
wait() va signal() funksiyalari endi qulf mavjud bo'lganda yoki blokirovka mavjud
bo'lishini   kutayotganda   kritik   bo'limga   kirishni   nazorat   qilish   uchun   jarayon
tomonidan ishlatilishi mumkin:
1: Code before critical section
2:
3: // Attempt to acquire mutex
4: wait(M);
5: ; // no action and continue testing mutex
6:
7: // Start of critical section
8: critical section code
9: // End of critical section
10: signal(M); // release mutex
11:
12: Code after critical section Aytishga   hojat   yo'q,   dasturchi   muhim   bo'lim   to'g'ri   kutish   ()   va   signal   ()
funktsiyalari   chaqiruvlari   va   to'g'ri   tartibda   o'ralganligini   ta'minlashi   kerak.   Buni
qilmaslik noto'g'ri natijalarga olib keladi, ularni kuzatish qiyin.
Sinxronizatsiya: to'siqlar
Oldingi  ikki  bo'limda  muhokama  qilgan qulflar   va  mutekslar  misollari   bir   nechta
vazifalar   yoki   mavzular   muhim   bo'limlaridagi   umumiy   o'zgaruvchilar   ustida
ishlaganda   ishlatilgan.   Sinxronizatsiya   to'sig'i,   aksincha,   bir   nechta   mustaqil
vazifalar   yoki   iplar   parallel   ravishda   bir   nechta   ishlarni   bajarish   uchun   ishlatilsa
ishlatiladi.   Ushbu   mavzular   orasida   umumiy   o'zgaruvchilar   mavjud   emas.
Sinxronizatsiya to'sig'i voqealarni sinxronlashtirish uchun ishlatiladi, bunda qolgan
vazifalarni   bajarishga   ruxsat   berilgunga   qadar   belgilangan   miqdordagi   vazifalar
bajarilishi   kerak.   To'siq   ketma-ket   -   parallel   algoritmlarni   (SPA)   amalga   oshirish
uchun   juda   foydali   bo'ladi,   bu   erda   algoritmni   bajarishning   keyingi   holatiga
o'tishdan oldin bir nechta parallel vazifalar bajarilishi kerak. 4.7-rasmda a
parallel vazifalar o'rtasida to'siqlar qo'llaniladigan SPA misoli. Rasmda bizda besh
bosqichdan iborat SPA mavjud va biz har bir vazifani ip bilan bajarishimiz kerak
deb taxmin qildik. Har bir bosqichda bajariladigan parallel vazifalar soni ikkitadan
to'rttagacha   o'zgaradi.   Keyingi   vazifaga   o'tishdan   oldin   har   bir   bosqichdagi
vazifalar   bajarilishini   ta'minlash   uchun   biz   ko'rsatilgandek   to'siqlarni
joylashtiramiz. Buyruqlar to'sig'i (j) keyingi vazifalar to'plami davom ettirilishidan
oldin j vazifalar/iplar to'siqqa etib borishi kerakligini bildiradi.
POSIX   mavzular   kutubxonasi   to'siq   ob'ektini   va   uni   yaratish   funktsiyalarini
belgilaydi va sinxronizatsiya uchun undan foydalanadigan iplarni yaratadi. 7-rasm   Sinxronizatsiya   to'siqlarini   ketma-ket   -   parallel   algoritmlarda   qo'llash   misoli.   Har   bir
vazifa o'z ish zarrachasi tomonidan bajarilishi kerak.
To'siqni ishga tushirish uchun quyidagi tartib qo'llaniladi:
1: #include  < pthread.h >
2: pthread barrier t barrier;
3: pthread barrierattr t attribute;
4: unsigned count;
5: int return value;
6: return value  =  pthread barrier init(&barrier, &attribute, count);
1-qator pthread kutubxonasi bilan bog'liq funksiyalar va ma'lumotlar turlarini 
qo'shadi.
2-qatorda to'siq turi to'siq bo'lishini belgilaydi.
3-qator atributlarni to'siq atributlari turini belgilaydi.
4 va 5 qatorlar boshqa ma'lumotlar turlarini belgilaydi, bunda hisoblash to'siqni 
davom ettirishdan oldin kelishi kerak bo'lgan iplar soni.
6-qator to'siqni ishga tushiradi va funktsiya chaqiruvining muvaffaqiyatini kuzatish
uchun o'zgaruvchining qaytish qiymatini qaytaradi. Muvaffaqiyatli bajarish uchun 
qaytarish qiymati nolga teng. 1-bosqich 2-bosqich
3-bosqich 4-bosqich 5-bosqich
Kirish
chiqish
to’siq (2)
to’siq (3)
to’siq (4) to’siq (3) To'siq tomonidan sinxronlashtirilayotgan iplar quyidagi kodni o'z ichiga oladi:
1: Code before the barrier
2:
3: // Wait at the barrier
4: ret  =  pthread barrier wait(&barrier);
5:
6: Code after the barrier
bu turdagi to'siq to'siqni init() dasturi yordamida ishga tushirildi.
Sinxronizatsiya primitivlarini solishtirish
Eng   asosiy   sinxronizatsiya   ibtidoiy   qulf   bo'lib,   xotiradan   foydalanish   va   bajarish
vaqtida eng samarali  hisoblanadi  [42]. Qulf  asosan  umumiy manba yoki  umumiy
o'zgaruvchiga kirishni ketma-ketlashtirish uchun ishlatiladi.
Muteks   qulfdan   ko'ra   ko'proq   xotiradan   foydalanadi.   Muteks   umumiy
o'zgaruvchini   o'zgartirishdan   oldin   olinishi   kerak.   Ip   o'zining   kritik   bo'limi   bilan
tugagandan   so'ng,   u   mutexni   bo'shatishi   kerak,   shunda   boshqa   iplar   o'zlarining
muhim bo'limlari bilan davom etishi mumkin.
To'siq   voqealarni   sinxronlashtirish   mexanizmi   sifatida   ishlatiladi,   shuning
uchun   barcha   oqimlar   kodning   qolgan   qismi   bajarilishidan   oldin   ma'lum   bir
nuqtaga etib boradi. Foydalanilgan adabiyotlar:
1. M.  Wehner , L.  Oliker , and J.  Shalf . A real cloud computer .  IEEE Spectrum , 46
( 10 ): 24 – 29 , 2009 .
2. B.   Wilkinson   and M.   Allen .   Parallel Programming Techniques & Applications
Using Networked Workstations & Parallel Computers , 2nd ed . Toronto, Canada
: Pearson , 2004 .
3. A.   Grama ,   A.   Gupta ,   G.   Karypis ,   and   V.   Kumar .   Introduction   to   Parallel
Computing , 2nd ed . Reading, MA : Addison Wesley , 2003 .
4. Standards   Coordinating   Committee   10,   Terms   and   Definitions   .   The   IEEE
Standard Dictionary of Electrical and Electronics Terms , J. Radatz , Ed. IEEE ,
1996
5. F.  Elguibaly (Gebali) .  α - CORDIC: An adaptive CORDIC algorithm .  Canadian
Journal on Electrical and Computer Engineering , 23 : 133 – 138 , 1998 .
6. F.  Elguibaly (Gebali) , HCORDIC: A high - radix adaptive CORDIC algorithm .
Canadian Journal on Electrical and Computer Engineering , 25 ( 4 ): 149 – 154 ,
2000 .
7. J.S.   Walther . A unified algorithm for elementary functions . In   Proceedings of
the   1971   Spring   Joint   Computer   Conference ,   N.   Macon   ,   Ed.   American
Federation   of   Information   Processing   Society,   Montvale,   NJ,   May   18   –   20   ,
1971 , pp. 379 – 385 .
8. J.E.   Volder .   The   CORDIC   Trigonometric   Computing   Technique   .   IRE
Transactions on Electronic Computers , EC - 8 ( 3 ): 330 – 334 , 1959 .

Umumiy xotirali multiprotsessorlar Reja: 1. Kirish 2. Kesh uyg’unligi va xotiraning barqarorligi 3. Sinxronlashtirish va o'zaro chi qarish 4. Foydalanilgan adabiyotlar

Kirish Umumiy xotirali protsessorlar oddiy va umumiy dasturlash modeli tufayli mashhur bo'lib, bu kod va ma'lumotlarni almashishni qo'llab-quvvatlaydigan parallel dasturiy ta'minotni oddiy ishlab chiqish imkonini beradi. Umumiy - xotira protsessorlari barcha protsessorlar uchun yagona jismoniy manzil maydonini ta'minlaydi va har bir protsessor o'zining mahalliy xotirasi va keshidan foydalangan holda o'z dasturini ishga tushirishi mumkin. Protsessorlar, shuningdek, alohida modullarda joylashtirilgan umumiy xotiradan foydalanish imkoniyatiga ega. Protsessorlar har qanday protsessorgaot ir ajhausaqitanjrciumn umumiy o'zgaruvchilar yordamida aloqa qiladilar. Umumiy xotirali ko'p protsessorli tizimda xotira 1- rasmda ko'rsatilganidek, ierarxik tarzda tashkil etilgan. Rasmda n t a protsessor va b umumiy xotira moduliga ega tizim ko'rsatilgan. Har bir protsessor o'zining ichki registrlariga, keshiga va mahalliy xotirasiga ega. Kesh protsessor tomonidan ishlatiladigan barcha ma'lumotlarni saqlaydi. Mahalliy xotira boshqa protsessorlar bilan bo'lishish uchun mo'ljallanmagan mahalliy o'zgaruvchilarni saqlaydi. Umumiy xotira protsessorlar o'rtasida almashinishi kerak bo'lgan umumiy o'zgaruvchilarni saqlaydi. O'zaro ulanish tarmog'i bir vaqtning o'zida bir nechta protsessorlarga tarmoq orqali turli xil umumiy xotira modullariga kirish imkonini beradi. Bu bir vaqtning o'zida bir nechta xotirani o'qish/yozish operatsiyalarini bajarishga imkon beradi. Bu umumiy xotira protsessorlarida ikkita muhim fikrni keltirib chiqaradi: 1. Kesh kogerentligi 2. Sinxronizatsiya va o'zaro istisno

1-rasm Umumiy – xotira protsessorlari. Har bir protsessorda mahalliy kesh va mahalliy xotira mavjud. Barcha protsessorlar umumiy xotira modullariga ulanish tarmog'I orqali kirishlari mumkin. Kesh uyg’unligi va xotiraning barqarorligi Protsessorlarga shaxsiy keshlarni ulash xotiraning kechikishini protsessor tezligiga moslashtirish orqali dasturning bajarilishini tezlashtiradi. Shunday qilib, o'qish, yozish operatsiyalari arifmetik va mantiqiy birlik (ALU) operatsiyalari bilan bir xil vaqtni oladi. 1-jadvalda kesh uyg'unligini tavsiflash uchun foydalaniladigan terminologiya berilgan. Kesh foydalidir, chunki ko'pgina vazifalar yoki ilovalar vaqtinchalik va fazoviy joylashuvni ko'rsatadi . Vaqtinchalik joylashuv yaqin kelajakni anglatadi. Fazoviy joylashuv yaqin kelajakda joriy ma'lumotlarga yaqin joylashgan ma'lumotlardan foydalanishni anglatadi. Shu sababli, umumiy xotira va keshlar o'rtasidagi ma'lumotlarni yuklash/saqlash operatsiyalari bloklar rordamida amalga oshiriladi . 2- rasmda umumiy xotirada saqlanadigan bloklar va ularning ma'lum bir protsessor keshidagi nusxalari o'rtasidagi munosabat ko'rsatilgan. Kesh ba'zi bloklarni feg yordamida saqlaydi, bu blokning manzilini umumiy xotirada saqlaydi. Keshda saqlangan har bir blok satr deb ataladigan qator sifatida saqlanadi. Mahalliy kesh Mahalliy xotira Umumiy xotira modullari

Bir qator quyidagi komponentlarni o'z ichiga oladi: 1. Satrdagi ma'lumotlar umumiy xotiradagi blok bilan mos keladimi yoki yo'qligini ko'rsatish uchun yaroqli bit ( V ) 2. Keshdagi satr manzili bo'lgan indeks 3. Umumiy xotiradagi blok manziliga ishora qiluvchi teg 4. Blokda saqlangan ma'lumotlarni o'z ichiga olgan ma'lumotlar. Umumiy xotira tizimlari uchun keshlar, shuningdek, xotira ziddiyatlarini bartaraf etishga yordam beradi ikki yoki undan ortiq protsessorlar bir xil xotira moduliga kirishga harakat qilganda. Umumiy xotirada saqlangan ma'lumotlarning nusxalari saqlangan nusxalarga mos kelishi kerak mahalliy keshlarda. Bu kesh uyg'unligi deb ataladi . Umumiy o'zgaruvchining nusxalari, agar ularning barchasi teng bo'lsa , kogerent ao'ladi. Agar protsessor tomonidan har bir o'qish operatsiyasi oldingi yozish natijasida hosil bo'lgan qiymatni topsa, keshlar samarali hisoblanadi. Kesh uyg'unligi dasturning to'g'ri bajarilishini ta'minlash va tizimning yuqori ishlashini ta'minlash uchun muhimdir. 1-jadval Kesh muvofiqligini tavsiflash uchun foydalaniladigan terminologiya Terminlari Ma'nosi Bloklash Umumiy xotirada saqlanadigan qo ' shni so ' zlar yoki ma ' lumotlar guruhi Translyatsiya Ma'lumot barcha keshlarga yuborilganda Kesh Xotiraga kirish vaqtini qisqartirish va protsessorlar o ' rtasidagi umumiy xotira to ' qnashuvlarini kamaytirish uchun protsessor bilan bir xil chipda amalga oshiriladigan kichik yuqori tezlikli xotira Kesh uyg’unligi Umumiy xotiradagi blokning tarkibi va turli keshlar bir xil emas.

Kesh muvofiqligini saqlash protokoli siyosati kesh uyg'unligini saqlash uchun amalga oshirildi Kogerent tizim Umumiy xotiradan blokning har bir o ' qilishi , boshqa har qanday oxirgi yozma tomonidan ishlab chiqarilgan bir xil ma ' lumotlarni topsa protsessor Global ma'lumotlar Umumiy xotirada saqlangan ma'lumotlar Chiziq Tegi va yaroqli biti bilan keshda saqlanadigan blok Mahalliy ma'lumotlar Keshda saqlangan ma'lumotlar O'zgartirilgan blok Keshdagi blok ma ' lumotlari umumiy ma ' lumotlarda yangilanmagan xotira Multicast Ma'lumot barcha keshlarga emas, balki ba'zilariga yuboriladi. O'zgartirish Yangisiga joy ochish uchun keshdan blokni olib tashlash blok Fazoviy joylashuv Xuddi shu blokdagi ma ' lumotlar qisqa vaqt ichida ishlatiladi . Vaqtinchalik joylashuv Blokdagi ma ' lumotlar so ' zi qisqa vaqt ichida ishlatiladi . Unicast Ma'lumot faqat bitta keshga yuboriladi. Yaroqli Blok tarkibi yangilangan. Yozing - orqaga Umumiy xotiradagi blok keshdagi tegishli blok almashtirilganda yangilanadi . Yozing - orqali Umumiy xotiradagi blok keshdagi tegishli blok o ' zgartirilganda yangilanadi . Faraz qilaylik , ikkita protsessor , P 1 va P 2, ularning ikkita alohida keshlarida saqlangan bir xil umumiy o ' zgaruvchilardan foydalaning . Agar P 1 o ' zining mahalliy qiymatini o ' zgartirsa , biz P 2 o ' zgarishlardan xabardor ekanligiga ishonch hosil qilishimiz kerak .