Spekulyativ ijro - Speculative execution

Spekulyativ ijro bu optimallashtirish texnika qaerda a kompyuter tizimi kerak bo'lmasligi mumkin bo'lgan ba'zi bir vazifalarni bajaradi. Ish haqiqatan ham kerak bo'ladimi-yo'qligi ma'lum bo'lmasdan amalga oshiriladi, shuning uchun ishni zarur bo'lganidan keyin bajarish kerak bo'lgan kechikishni oldini oladi. Agar ish kerak bo'lmagani aniqlansa, ish tomonidan kiritilgan ko'pgina o'zgarishlar qaytariladi va natijalar e'tiborga olinmaydi.

Maqsad ko'proq narsani ta'minlashdir bir vaqtda agar qo'shimcha bo'lsa resurslar mavjud. Ushbu yondashuv turli sohalarda, shu jumladan qo'llaniladi filialni bashorat qilish yilda quvurli protsessorlar, qiymatning mahalliyligini ekspluatatsiya qilish uchun qiymatni bashorat qilish,[1] oldindan olish xotira va fayllar va bir vaqtning o'zida optimistik nazorat yilda ma'lumotlar bazasi tizimlari.[2][3][4]

Spekulyativ multithreading spekulyativ qatl etishning alohida holatidir.

Umumiy nuqtai

Zamonaviy quvurli mikroprotsessorlar narxini pasaytirish uchun spekulyativ ijrodan foydalaning shartli filial filiallarni qatl etish tarixiga asoslangan dasturning bajarilish yo'lini taxmin qiladigan sxemalardan foydalangan holda ko'rsatmalar.[3] Ishlash va kompyuter resurslaridan foydalanishni yaxshilash uchun ko'rsatmalar hali bajarilishi kerakligi aniqlanmagan vaqtda rejalashtirilishi mumkin. filial.[5]

Variantlar

Spekulyativ hisoblash bilan bog'liq bo'lgan ilgari tushuncha edi.[6]

Amalga oshirilish

Istakli ijro - bu shartli filialning ikkala tomoni bajariladigan spekulyativ ijroning bir shakli; ammo, natijalar faqat predikat to'g'ri bo'lgan taqdirda amalga oshiriladi. Cheklanmagan resurslar bilan, ishtiyoq bilan ijro etilishi (shuningdek, oracle-ning bajarilishi) nazariy jihatdan mukammal bilan bir xil ishlashni ta'minlaydi filialni bashorat qilish. Cheklangan resurslar bilan, g'ayrat bilan ijro etilishi kerak, chunki kerakli resurslar soni ko'paymoqda eksponent sifatida filialning har bir darajasi g'ayrat bilan bajarilishi bilan.[7]

Bashoratli ijro

Bashoratli ijro - bu spekulyativ ijro etishning bir shakli bo'lib, unda ba'zi bir natijalar bashorat qilinadi va ijro aniq natijalar ma'lum bo'lguncha bashorat qilingan yo'l bo'ylab davom etadi. Agar bashorat to'g'ri bo'lsa, bashorat qilingan bajarilishga ruxsat beriladi; ammo, agar noto'g'ri taxmin bo'lsa, ijro ro'yxatdan o'tkazilishi va qayta bajarilishi kerak. Buning umumiy shakllariga quyidagilar kiradi filialni bashorat qiluvchilar va xotiraga bog'liqlikni bashorat qilish. Umumlashtirilgan shakl ba'zan qiymatni bashorat qilish deb nomlanadi.[1][8]

Tegishli tushunchalar

Dangasa ijro

Dangasa qatl etish ishtiyoq bilan ijro etilishning teskarisidir va spekülasyonları o'z ichiga olmaydi. Spekulyativ ijro etishni amalga oshirishga kiritish Haskell dasturlash tili, dangasa til, dolzarb tadqiqot mavzusi. Xayrixoh Haskell, tilning bir varianti, spekulyativ ijro g'oyasi atrofida yaratilgan. 2003 yilda doktorlik dissertatsiyasi tayyorlandi GHC deb nomlangan noto'g'ri tanlov bo'lsa, orqaga qaytish uchun abort qilish mexanizmi bilan bir xil spekulyativ qatlni qo'llab-quvvatlash optimistik ijro.[9] Bu juda murakkab deb hisoblangan.[10]

Xavfsizlikning zaif tomonlari

2017 yildan boshlab umumiy protsessor me'morchiligida spekulyativ ijro etilishida xavfsizlikning bir qator zaifliklari topildi, bu esa samaradorlikni oshirishga imkon berdi. imtiyozlar.

Bunga quyidagilar kiradi:

Shuningdek qarang

Adabiyotlar

  1. ^ a b "Qiymatning joylashishini ko'tarish uchun qiymatni bashorat qilish usullarini o'rganish ", S. Mittal, bir xillik va hisoblash, 2017
  2. ^ Dangasa va spekulyativ qatl Butler Lempson Microsoft tadqiqotlari OPODIS, Bordo, Frantsiya 2006 yil 12-dekabr
  3. ^ a b Xalqaro biznes mashinalari korporatsiyasi. Tadqiqot bo'limi; Prabhakar Raghavan; Xadas Shaxnay; Mira Yaniv (1998). Kodni spekulyativ bajarish uchun dinamik sxemalar. IBM. Olingan 18 yanvar 2011.
  4. ^ Kung, H. T.; Jon T. Robinson (1981 yil iyun). "Paralellikni nazorat qilishning optimistik usullari to'g'risida" (PDF). ACM Trans. Ma'lumotlar bazasi tizimi. 6.
  5. ^ Bernd Krig-Bryukner (1992). ESOP '92: Dasturlash bo'yicha 4-Evropa Simpoziumi, Renn, Frantsiya, 1992 yil 26-28 fevral: protsess. Springer. 56-57 betlar. ISBN  978-3-540-55253-6. Olingan 18 yanvar 2011.
  6. ^ Rendi B. Osborne (1990-03-21). "Multilispdagi spekulyativ hisoblash". Parallel Lisp: tillar va tizimlar (PS ). Kompyuter fanidan ma'ruza matnlari. 441. Raqamli uskunalar korporatsiyasi tadqiqot laboratoriyasi. 103-137 betlar. doi:10.1007 / BFb0024152. ISBN  3-540-52782-6. Olingan 2018-01-26.
  7. ^ Yuriy Shilc; Borut Robich; Teo Ungerer (1999). Protsessor arxitekturasi: ma'lumotlar oqimidan superskalargacha va undan tashqariga. Springer. pp.148 –150. ISBN  978-3-540-64798-0. Olingan 21 yanvar 2011.
  8. ^ Mark D., Xill; Norman P., Jouppi; Gourindar S., Sohi (2000). Kompyuter arxitekturasidagi o'qishlar. Morgan Kaufman. ISBN  9781558605398. Olingan 5 yanvar 2018.
  9. ^ Jons, Saymon Peyton; Ennals, Robert (2003 yil 1-avgust). "Optimistik baho: qat'iy bo'lmagan dasturlarni tezkor baholash strategiyasi". Olingan 15 may 2019 - www.microsoft.com orqali. Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  10. ^ https://mail.haskell.org/pipermail/haskell/2006-August/018424.html