Payamvdn/NorthPersian_fa_wiki huggingface dataset:
روستا (به لاتین: Rosta) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نخودکولوب (به لاتین: Nukhotkolob) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نویروخ (به لاتین: Noyrukh) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گیوی چوخلی (؛ – ) بازیکن و مربی فوتبال گرجی تبار اهل اتحاد جماهیر شوروی سوسیالیستی بود. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال دینامو تفلیس اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
سرگو کوتریکادزه (؛ – ) بازیکن و مربی فوتبال گرجی تبار اهل اتحاد جماهیر شوروی سوسیالیستی بود. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال دینامو تفلیس اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
گنادی گوساروف (؛ – ) بازیکن و مربی فوتبال اهل اتحاد جماهیر شوروی سوسیالیستی بود. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال دینامو مسکو و باشگاه فوتبال تورپدو مسکو اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
الکساندرو-نوسکویه (به لاتین: Alexandro-Nevskoye) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
ایموننی (به لاتین: Imunny) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نیکولای مانوشین (؛ – ) بازیکن و مربی فوتبال اهل اتحاد جماهیر شوروی سوسیالیستی بود. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال زسکا مسکو و باشگاه فوتبال تورپدو مسکو اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
کالینوفکا (به لاتین: Kalinovka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
میخائیل مسخی (; – ) بازیکن فوتبال گرجی تبار اهل اتحاد جماهیر شوروی سوسیالیستی بود. وی همچنین برندهٔ جوایزی همچون نشان برجسته افتخار شده است. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال دینامو تفلیس اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
قره باغ لی (به لاتین: Karabakhli) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است. قره باغ لی ۷۳۸ نفر جمعیت دارد.
کوچوبی (به لاتین: Kochubey) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
کوکتیوبی (به لاتین: Koktyubey) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
الکسی مامیکین (؛ – ) بازیکن و مربی فوتبال اهل اتحاد جماهیر شوروی سوسیالیستی بود. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال زسکا مسکو، باشگاه فوتبال زسکا روستوف-نا-دونو، و باشگاه فوتبال دینامو مسکو اشاره کرد. وی همچنین در تیم ملی فوتبال شوروی بازی کرده است.
کویبیشوو (به لاتین: Kuybyshevo) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
کوزنتسوفسکویه (به لاتین: Kuznetsovskoye) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
راسوت (به لاتین: Rassvet) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
پریوولنی (به لاتین: Privolny) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
پلودوپیتومنیک (به لاتین: Plodopitomnik) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نوورومانوفکا (به لاتین: Novoromanovka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نوونیکولایفکا (به لاتین: Novonikolayevka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نوودمیتریفکا (به لاتین: Novodmitriyevka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نووگئورگیفکا (به لاتین: Novogeorgiyevka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
تالوفکا (به لاتین: Talovka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
ویشتالوفسکی (به لاتین: Vyshetalovsky) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
رازدولیه (به لاتین: Razdolye) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
یورکوفکا (به لاتین: Yurkovka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
سلو ایمنی م. گورکوگو (به لاتین: Selo imeni M. Gorkogo) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
آفنا (به لاتین: Afna) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
آکا (به لاتین: Akka) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
اراک (به لاتین: Arak) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
آرکیت (به لاتین: Arkit) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
بوخناگ (به لاتین: Bukhnag) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
چولات (به لاتین: Chulat) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
بورگانکنت (به لاتین: Burgankent) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
چورداف (به لاتین: Churdaf) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
دیوبک (به لاتین: Dyubek) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
دارواگ (به لاتین: Darvag) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
داگنی (به لاتین: Dagni) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
دژوگدیل (به لاتین: Dzhugdil) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
دژولدژاگ (به لاتین: Dzhuldzhag) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
دژولی (به لاتین: Dzhuli) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
فیرگیل (به لاتین: Firgil) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
وچریک (به لاتین: Vechrik) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گاسیک (به لاتین: Gasik) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
مراغه (به لاتین: Maraga) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
لیاخه (به لاتین: Lyakhe) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
لیدژه (به لاتین: Lidzhe) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گلینباتان (به لاتین: Gelinbatan) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گیسیک (به لاتین: Gisik) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گومی (به لاتین: Gumi) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گوریک (به لاتین: Gurik) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گورخون (به لاتین: Gurkhun) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گوولیگ (به لاتین: Guvlig) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
گیوگریاگ (به لاتین: Gyugryag) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نیچراس (به لاتین: Nichras) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
نوویه لیدژه (به لاتین: Novoye Lidzhe) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
اولوز (به لاتین: Uluz) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
پندژی (به لاتین: Pendzhi) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
پیلیگ (به لاتین: Pilig) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
اورزیگ (به لاتین: Urzig) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
اوشنیوگ (به لاتین: Ushnyug) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
روگودژ (به لاتین: Rugudzh) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
روشچول (به لاتین: Rushchul) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
سرتیل (به لاتین: Sertil) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
شیله (به لاتین: Shile) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
ولاتکو مارکوویچ (؛ – ) بازیکن و مربی فوتبال کروات تبار اهل یوگسلاوی بود. وی از سال ۱۹۹۸ تا ۲۰۱۲ رئیس فدراسیون فوتبال کرواسی بوده است. از باشگاه هایی که در آن بازی کرده است می توان به باشگاه فوتبال آستریا وین، باشگاه فوتبال دینامو زاگرب، و باشگاه فوتبال خنت اشاره کرد.
سیکا (به لاتین: Sika) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
سیکوخ (به لاتین: Sikukh) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
سیرتیچ (به لاتین: Sirtich) یک منطقهٔ مسکونی در روسیه است که در داغستان واقع شده است.
بنت کریستنسن (؛ زادهٔ ) بازیکن سابق فوتبال اهل دانمارک است. وی همچنین در تیم های ملی فوتبال زیر ۱۹ سال دانمارک، زیر ۲۱ سال دانمارک، و دانمارک بازی کرده است که در پست مهاجم بازی می کرد.
تامی کریستنسن (؛ زادهٔ ) بازیکن سابق فوتبال اهل دانمارک است که به طور حرفه ای برای الچه در اسپانیا، بروندبی در دانمارک و آینتراخت برانشوایگ در آلمان بازی کرد. وی همچنین در تیم های ملی فوتبال زیر ۱۹ سال دانمارک، زیر ۲۱ سال دانمارک، و دانمارک بازی کرده است.
تابع ارزیابی (به انگلیسی : ) که به عنوان تابع ارزیابی اکتشافی یا تابع ارزیابی ایستا نیز شناخته می شود ،تابعی است که توسط برنامه های بازی های کامپیوتری برای تخمین ارزش یا خوبی و برتری یک موقعیت (معمولا در یک برگ یا گره پایانی ) در درخت بازی استفاده می شود.در اکثر مواقع مقدار، یا یک عدد حقیقی یا یک عدد صحیح کوانتیزه شده است که اغلب n امین مقدار یک مهره ی بازی مانند سنگ در بازی go یا سرباز در بازی شطرنج است که درآن n ممکن است دهم ،صدم یا کسر مناسب دیگر باشد .اما در بعضی مواقع مقدار مورد نظر ، آرایه ای از سه مقدار در بازه ی واحد است که نشان دهنده ی درصد برد ،تساوی و باخت است. مدل های تحلیلی یا نظری برای توابع ارزیابی در بازی های حل نشده وجود ندارد ،همچنین چنین توابعی کاملا موقتی هستند. فرمول توابع ارزیابی به صورت تجربی با درج یک تابع کاندید در یک ماشین خودکار و ارزیابی عملکرد بعدی آن تعیین میشود . شواهد معنی دار و قابل توجهی در حال حاضر برای چندین بازی مانند شطرنج ،شوگی و ‘go’ و فرمول کلی توابع ارزیابی برای آن ها وجود دارد . بازی هایی که درآن برنامه های بازی های کامپیوتری از توابع ارزیابی استفاده میکنند و آن را ب
ه خدمت میگیرند شامل شطرنج ، go، شوگی (شطرنج ژاپنی) ،اتلو ،هگز، تخته نرد،چکرز. بعلاوه با ظهور و پیدایش برنامه های مانند برنامه های کامپیوتری نیز از توابع ارزیابی برای اجرای بازی های ویدئویی استفاده میکنند مانند Atari2600. برخی از بازی ها مانند tic-tac-toy اند و نیازی به جستجو یا ارزیابی ندارند زیرا درخت راه حل مجزای آن در دسترس می باشد . مرتبط با جستجو. درختی از چنین ارزیابی هایی معمولاً بخشی از یک الگوریتم جستجو می باشد، مانند درخت جستجو مونت کارلو یا الگوریتم حداقلی مانند جستجوی آلفا-بتا. فرض می شود که اگر درخت بازی از آن گره تا پایان بازی گسترش یابد، این مقدار نشان دهنده احتمال نسبی برنده شدن است. این تابع فقط به موقعیت فعلی نگاه می کند (یعنی قطعات در چه فضاهایی قرار دارند و رابطه آنها با یکدیگر) و تاریخچه موقعیت را در نظر نمی گیرد یا حرکت های احتمالی گره را به جلو کاوش نمی کند (بنابراین ایستا). این نشان می دهد که برای موقعیت های پویا که در آن تهدیدات تاکتیکی وجود دارد، عملکرد ارزیابی یک ارزیابی دقیق از موقعیت نخواهد بود. این موقعیت ها غیر ساکن نامیده می شوند. آنها حداقل به نوع محدودی از پسوند جستجو به نام
برای حل تهدیدات قبل از ارزیابی نیاز دارند. اگر یک برد، باخت یا تساوی در گره رخ دهد، برخی از مقادیر بازگردانده شده توسط توابع ارزیابی، به جای اکتشافی مطلق هستند. یک رابطه پیچیده بین جستجو و دانش در عملکرد ارزیابی وجود دارد. جستجوی عمیق تر به نفع عوامل تاکتیکی کوتاه مدت کمتر و موتیف های موقعیتی افق طولانی تر در ارزیابی است. همچنین بین اثربخشی دانش رمزگذاری شده و پیچیدگی محاسباتی یک مبادله وجود دارد: محاسبه دانش دقیق ممکن است آنقدر زمان ببرد که عملکرد کاهش یابد، بنابراین تقریب به دانش دقیق اغلب بهتر است. از آنجا که تابع ارزیابی به عمق اسمی جستجو و همچنین بسط و کاهش به کار رفته در جستجو بستگی دارد، هیچ فرمول عمومی یا مستقلی برای یک تابع ارزیابی وجود ندارد. یک تابع ارزیابی که به خوبی در یک برنامه کاربردی کار می کند، معمولاً نیاز به تنظیم مجدد یا آموزش مجدد دارد تا به طور مؤثر در برنامه دیگری کار کند در شطرنج. در شطرنج خروجی یک تابع ارزیابی معمولا یک عدد صحیح است و واحد های تابع ارزیابی معمولا به عنوان پیاده نامیده می شوند. اصطلاح “پیاده" به ارزشی اشاره دارد که بازیکن یک پیاده بیشتراز حریف در یک موقعیت داشته باشد ،
همانطور که در "مقدار نسبی مهره شطرنج " (انگلیسی : )توضیح داده شده است . عدد صحیح 1 معمولا نشان دهنده ی کسری از یک پیاده است و معمولا در شطرنج کامپیوتری از centipawn ها استفاده می شود که یک صدم پیاده هستند. ارزیابی های بزرگتر نشان دهنده ی عدم تعادل متریال یا مزیت موقعیتی است یا اینکه معمولا در برد متریال قریب الوقوع است . ارزیابی های بسیار بزرگ ممکن است نشان دهد که مات قریب الوقوع است . یک تابع ارزیابی همچنین به طور ضمنی مقدار حق حرکت را رمزگذاری میکند ،که می تواند از بخش کوچکی از پیاده تا برد یا باخت متفاوت باشد .
قانون اعزام محصل به خارجه در تاریخ ۱ خرداد ۱۳۰۷ خورشیدی توسط مجلس شورای ملی تصویب شد. این قانون که شامل بر ۶ ماده است به تصویب مجلس شورای ملی به ریاست حسین پیرنیا رسید. دوره ششم مجلس شورای ملی در سال ۱۳۰۷ خورشیدی این قانون را تصویب کرد و با تأیید رضاشاه، گروهی از دانشجویان برای ادامه تحصیل به فرانسه و آلمان اعزام شدند. بر پایه این قانون دولت باید سالانه صد دانشجو را برای ادامه تحصیل در مقاطع بالاتر به خارج از ایران می فرستاد. در اولین دوره اعزام محصلان به اروپا ۱۱۰ نفر روانه کشور فرانسه شدند. مهدی بازرگان، علی شایگان، مهدی آذر، کریم سنجابی، احمد رضوی کرمانی، محمدعلی ملکی، رضا رادمنش، خلیل ملکی، عبدالله ریاضی، لطفعلی صورتگر و غلامعلی فریور از مطرح ترین شخصیتهای این گروه ۱۱۰ نفره بودند. بسیاری از محصلان این گروه تحصیلات خود را تا مقطع دکترا در فرانسه گذراندند و در سال ۱۳۱۲ و ۱۳۱۳ به ایران بازگشتند. بر اساس قوانین ۶ تیر ماه ۱۳۰۸ و ۱۰ اردیبهشت ۱۳۱۱ اجازه داده شده که بیست درصد از محصلین از بین محصلین مقیم در اروپا و ممالک متحده آمریکا انتخاب شوند.
ابهام زدایی حافظه مجموعه ای از تکنیک هایی است که توسط ریزپردازنده هایی با کارایی بالا با اجرای خارج از نظم استفاده می شود که دستورالعمل های دسترسی به حافظه (بارگیری و ذخیره سازی) را خارج از نظم برنامه اجرا می کنند. مکانیسم های انجام ابهام زدایی حافظه، که با استفاده از منطق دیجیتال در هسته ریزپردازنده پیاده سازی می شوند، وابستگی های واقعی بین عملیات حافظه را در زمان اجرا شناسایی می کنند و به پردازنده اجازه می دهند زمانی که وابستگی نقض شده است، بازیابی شود. آن ها همچنین وابستگی های حافظه جعلی را حذف می کنند و با امکان اجرای بی نظم بارها و ذخیره ها ، موازی سازی بیشتر در سطح دستورالعمل را امکان پذیر می سازند. پیش زمینه. وابستگی ها. هنگام تلاش برای اجرای دستورات بدون نظم، یک ریزپردازنده باید وابستگی های واقعی بین دستورالعمل ها را رعایت کند. به عنوان مثال، یک وابستگی واقعی ساده را در نظر بگیرید: 1: $1، $2، $3 # R1 &lt;= R2 + R3 اضافه کنید 2: اضافه کردن $5، $1، $4 # R5 &lt;= R1 + R4 (وابسته به 1) در این مثال، دستور codice_1 در خط 2 به دستور codice_1 در خط 1 وابسته است زیرا ثبات R1 یک عملوند منبع عملیات جمع در خط 2 ا
ست. codice_1 در خط 2 نمی تواند اجرا شود تا زمانی که codice_1 در خط 1 کامل شود. در این حالت، وابستگی ثابت است و به راحتی توسط یک ریزپردازنده تعیین می شود، زیرا منابع و مقصدها ثبت هستند. ثبت مقصد دستور codice_1 در خط 1 ( codice_6 ) بخشی از رمزگذاری دستورالعمل است، و بنابراین می تواند توسط ریزپردازنده در اوایل مرحله رمزگشایی خط لوله تعیین شود. به طور مشابه، رجیسترهای منبع دستور codice_1 در خط 2 ( codice_6 و codice_9 ) نیز در خود دستورالعمل کدگذاری می شوند و در رمزگشایی تعیین می شوند. برای احترام به این وابستگی واقعی، منطق زمان بندی ریزپردازنده، این دستورالعمل ها را به ترتیب صحیح صادر می کند (اول دستورالعمل 1، سپس دستورالعمل 2) تا زمانی که دستورالعمل 2 به آنها نیاز دارد، نتایج 1 در دسترس باشد. عوارض زمانی ایجاد می شود که وابستگی به طور ایستا قابل تعیین نباشد. چنین وابستگی های غیراستاتیکی با دستورالعمل های حافظه (بارگیری ها و ذخیره سازی ها) به وجود می آیند، زیرا مکان عملوند ممکن است به طور غیرمستقیم به عنوان یک عملوند رجیستر مشخص شود، نه اینکه مستقیماً در خود دستورالعمل مشخص شود. 1: ذخیره $1، 2 ($2) # Mem[R2+2] &l
t;= R1 2: بارگیری $3, 4 ($4) # R3 &lt;= Mem[R4+4] (احتمالاً وابسته به 1، ممکن است همان آدرس بالا) در اینجا دستور ذخیره مقداری را به محل حافظه مشخص شده توسط مقدار آدرس (R2+2) می نویسد و دستورالعمل بارگذاری مقدار را در محل حافظه مشخص شده توسط مقدار آدرس (R4+4) می خواند. ریزپردازنده نمی تواند قبل از اجرا به طور ایستا تعیین کند که آیا مکان های حافظه مشخص شده در این دو دستورالعمل متفاوت هستند یا مکان یکسانی هستند، زیرا مکان ها به مقادیر R2 و R4 بستگی دارند. اگر مکان ها متفاوت باشند، دستورالعمل ها مستقل هستند و می توانند با موفقیت بدون نظم اجرا شوند. با این حال، اگر مکان ها یکسان باشند، دستورالعمل بارگذاری برای تولید ارزش آن به فروشگاه وابسته است. این به عنوان یک وابستگی مبهم شناخته می شود. اجرای خارج از دستور و عملیات دسترسی به حافظه. اگر یک جفت بار/فروشگاه وابسته خارج از نظم اجرا شود، اجرای بارها و ذخیره سازی خارج از نظم می تواند نتایج نادرستی ایجاد کند. قطعه کد زیر را که در اسمبلی MIPS ارائه شده است در نظر بگیرید: 1: div $27, $20 2: sw $27, 0($30) 3: lw $08, 0($31) 4: sw $26, 0($30) 5: lw $09, 0($31) فرض کنید که
منطق زمانبندی دستورالعملی را برای واحد اجرا صادر می کند که تمام عملوندهای ثبت آن آماده باشند. علاوه بر این، فرض کنید که رجیسترهای codice_10 و codice_11 آماده هستند: مقادیر codice_10 و codice_11 مدت ها پیش محاسبه شده اند و تغییر نکرده اند. با این حال، فرض کنید codice_14 آماده نیست: ارزش آن هنوز در حال محاسبه با دستور codice_15 (تقسیم عدد صحیح) است. در نهایت، فرض کنید که رجیسترهای codice_10 و codice_11 دارای مقدار یکسانی هستند و بنابراین همه بارها و ذخیره های قطعه به کلمه حافظه یکسانی دسترسی دارند. در این شرایط، دستور codice_18 در خط 2 آماده اجرا نیست، اما دستور codice_19 در خط 3 آماده است. اگر پردازنده اجازه دهد دستور codice_20 قبل از codice_21 اجرا شود، بار یک مقدار قدیمی را از سیستم حافظه می خواند. با این حال، باید مقداری را که توسط codice_21 نوشته شده بود، می خواند. بارگذاری و ذخیره خارج از نظم برنامه اجرا شد، اما یک وابستگی حافظه بین آنها وجود داشت که نقض شد. به طور مشابه، فرض کنید که ثبت نام codice_23 آماده "است" . دستور codice_24 در خط 4 نیز آماده اجرا است و ممکن است قبل از codice_19 در خط 3 اجرا شود. ا
گر این اتفاق بیفتد، دستور codice_19 مقدار "اشتباهی" را از سیستم حافظه می خواند، زیرا دستورالعمل ذخیره سازی بعدی مقدار آن را قبل از اجرای بار در آنجا نوشته است. مشخص کردن وابستگی های حافظه. وابستگی به حافظه در سه نوع ظاهر می شود: سه وابستگی در بخش کد قبلی نشان داده شده است (برای وضوح بازتولید شده است): 1: div $27, $20 2: sw $27, 0($30) 3: lw $08, 0($31) 4: sw $26, 0($30) 5: lw $09, 0($31) مکانیسم های رفع ابهام حافظه. ریزپردازنده های مدرن از مکانیسم های زیر استفاده می کنند که در سخت افزار پیاده سازی شده اند تا وابستگی های مبهم را حل کنند و زمانی که وابستگی نقض شد بازیابی شوند. اجتناب از وابستگی به WAR و WAW. مقادیر دستورالعمل های ذخیره سازی هنگام اجرا به سیستم حافظه (در ریزپردازنده های مدرن، حافظه پنهان CPU ) متعهد نمی شوند. درعوض، دستورالعمل های موجودی، از جمله آدرس حافظه و داده های ذخیره، در صف موجودی بافر می شوند تا به نقطه بازنشستگی برسند. هنگامی که یک موجودی تنها می شود، "سپس" ارزش خود را در سیستم حافظه می نویسد. با این کار از مشکلات وابستگی WAR و WAW که در قطعه کد بالا نشان داده شده است، جلوگیری می شود، ج
ایی که یک بار قبلی مقدار نادرستی را از سیستم حافظه دریافت می کند، زیرا ذخیره بعدی اجازه داشت قبل از بارگذاری قبلی اجرا شود. علاوه بر این، بافر کردن موجودی تا زمان تنها شدن، به پردازنده ها این امکان را می دهد تا دستورالعمل های ذخیره را که از دستورالعملی پیروی می کنند که ممکن است استثنایی ایجاد کند (مانند بار آدرس نامناسب، تقسیم بر صفر و غیره) یا یک دستورالعمل شاخه مشروط که جهت آن (گرفته شده یا نشده است) را اجرا کنند. گرفته شده) هنوز مشخص نیست. اگر دستور تولید استثنا اجرا نشده باشد یا جهت شاخه به اشتباه پیش بینی شده باشد، پردازنده دستورالعمل ها را در یک «مسیر اشتباه» واکشی و اجرا کرده است. این دستورات اصلا نباید اجرا می شد. شرط استثنا باید قبل از اجرای هر یک از دستورالعمل های گمانه زنی رخ می داد، یا اینکه شاخه باید جهت دیگری را طی می کرد و باعث می شد دستورالعمل های مختلف واکشی و اجرا شوند. پردازشگر هنگام کشف استثنا یا پیش بینی نادرست شاخه، باید هر نتیجه ای را که از دستورالعمل های بد مسیر و به طور فرضی اجرا شده است، «دور» کند. مشکل ذخیره ها این است که هر ذخیره ای که در مسیر بد یا اشتباه پیش بینی شده است، نباید م
قادیر خود را به سیستم حافظه متعهد می کرد. اگر ذخیره ها مقادیر خود را متعهد می کردند، «دور انداختن» commit غیرممکن بود و وضعیت حافظه دستگاه توسط داده های یک دستورالعمل فروشگاهی که نباید اجرا می شد خراب می شد. بنابراین، بدون ذخیره بافر، ذخیره ها نمی توانند اجرا شوند تا زمانی که تمام دستورالعمل های احتمالی ایجاد استثنا قبلی اجرا شوند (و استثنایی ایجاد نکرده باشند) و تمام جهت های شاخه قبلی شناخته شده باشند. وادار کردن فروشگاه ها به صبر کردن تا زمانی که دستورالعمل ها و استثناهای شعبه شناخته شوند، به طور قابل توجهی تهاجمی خارج از دستور را کاهش می دهد و ILP ( موازی سطح دستورالعمل ) و عملکرد را محدود می کند. با استفاده از بافر فروشگاه، فروشگاه ها می توانند قبل از دستورالعمل های شعبه ای که باعث استثنا هستند یا حل نشده اجرا کنند، داده های خود را در صف ذخیره بافر کنند، اما مقادیر خود را تا زمان تنها شدن تحویل ندهند. این از ذخیره سازی در مسیرهای پیش بینی نادرست یا بد از تخصیص مقادیر خود به سیستم حافظه جلوگیری می کند و در عین حال افزایش ILP و عملکرد را از اجرای کامل ذخیره های خارج از نظم ارائه می دهد. ذخیره برای بارگیری ح
مل و نقل. بافر کردن فروشگاه ها تا زمان جدا شدن از وابستگی های WAW و WAR جلوگیری می کند، اما مسئله جدیدی را معرفی می کند. سناریوی زیر را در نظر بگیرید: یک انبار آدرس و داده های خود را در صف انبار اجرا و بافر می کند. چند دستورالعمل بعد، یک بار اجرا می شود که از همان آدرس حافظه ای که فروشگاه به تازگی برای آن نوشته است خوانده می شود. اگر بار داده های خود را از سیستم حافظه بخواند، مقدار قدیمی را می خواند که توسط ذخیره قبلی بازنویسی شده بود. داده های به دست آمده توسط بار نادرست خواهد بود. برای حل این مشکل، پردازنده ها از تکنیکی به نام حمل و نقل ذخیره به بار با استفاده از صف ذخیره استفاده می کنند. علاوه بر بافر کردن فروشگاه ها تا زمان بازنشستگی، صف فروشگاه هدف دوم را نیز دنبال می کند: ارسال داده ها از فروشگاه های تکمیل شده اما هنوز بازنشسته ("در پرواز") به بارهای بعدی. به جای یک صف ساده FIFO ، صف فروشگاه در واقع یک حافظه آدرس پذیر محتوا (CAM) است که با استفاده از آدرس حافظه جستجو می شود. هنگامی که یک بار اجرا می شود، صف فروشگاه را برای فروشگاه های درون پرواز به همان آدرسی که به طور منطقی به ترتیب برنامه زودتر هستند،
جستجو می کند. اگر یک ذخیره منطبق وجود داشته باشد، بار به جای سیستم حافظه، مقدار داده خود را از آن ذخیره می گیرد. اگر هیچ ذخیره مطابقی وجود نداشته باشد، بار به طور معمول به سیستم حافظه دسترسی پیدا می کند. هر فروشگاه مشابه قبلی باید قبلاً بازنشسته شده باشد و ارزش های خود را متعهد شده باشد. این تکنیک به بارها اجازه می دهد تا در صورتی که انبار تولیدکننده آنها تکمیل شده باشد اما هنوز تنها نشده باشد، داده های صحیح را به دست آورند. ممکن است چندین ذخیره در آدرس حافظه بارگذاری در صف انبار وجود داشته باشد. برای رسیدگی به این مورد، صف انبار با اولویت کدگذاری می شود تا "آخرین" ذخیره ای را انتخاب کند که منطقاً زودتر از بارگذاری به ترتیب برنامه باشد. تعیین اینکه کدام ذخیره «جدیدترین» است، می تواند با چسباندن نوعی مُهر زمانی به دستورالعمل ها در حین واکشی و رمزگشایی، یا به طور متناوب با دانستن موقعیت نسبی (شیار) بار با توجه به قدیمی ترین و جدیدترین ذخیره های موجود در داخل به دست آید. نقض وابستگی RAW. تشخیص نقض وابستگی RAW. CPUهای خارج از نظم مدرن می توانند از تعدادی تکنیک برای تشخیص نقض وابستگی RAW استفاده کنند، اما همه تکن
یک ها نیاز به ردیابی بارهای حین پرواز از زمان اجرا تا زمان تنها شدن دارند. هنگامی که یک بار اجرا می شود، به سیستم حافظه و/یا صف ذخیره برای بدست آوردن مقدار داده آن دسترسی پیدا می کند و سپس آدرس و داده های آن تا زمان بازنشستگی در صف بارگذاری بافر می شوند. صف بارگذاری از نظر ساختار و عملکرد مشابه صف فروشگاه است و در واقع در برخی از پردازنده ها ممکن است با صف فروشگاه در یک ساختار واحد به نام صف ذخیره بار یا LSQ ترکیب شود. تکنیک های زیر برای تشخیص نقض وابستگی RAW استفاده می شود یا پیشنهاد شده است: بارگیری صف جستجوی CAM. با استفاده از این تکنیک، صف بارگذاری، مانند صف فروشگاه، یک CAM است که با استفاده از آدرس دسترسی حافظه جستجو می شود و همه بارهای حین پرواز را ردیابی می کند. هنگامی که یک فروشگاه اجرا می شود، صف بارگذاری را برای بارهای تکمیل شده از همان آدرسی که به طور منطقی به ترتیب برنامه بعدی هستند، جستجو می کند. اگر چنین بار تطبیقی وجود داشته باشد، باید قبل از ذخیره اجرا شده باشد و بنابراین یک مقدار نادرست و قدیمی را از سیستم حافظه/صف فروشگاه خوانده باشد. هر دستورالعملی که از مقدار بار استفاده کرده باشد، از داده
های بد نیز استفاده کرده است. برای بازیابی در صورت تشخیص چنین تخلفی، بار به عنوان "نقض" در بافر بازنشستگی علامت گذاری می شود. فروشگاه در صف فروشگاه و بافر بازنشستگی باقی می ماند و به طور معمول بازنشسته می شود و در هنگام بازنشستگی ارزش خود را به سیستم حافظه متعهد می کند. با این حال، هنگامی که بار نقض شده به نقطه بازنشستگی می رسد، پردازنده خط لوله را شستشو می دهد و اجرا را از دستورالعمل بارگذاری مجدد شروع می کند. در این مرحله، تمام فروشگاه های قبلی مقادیر خود را به سیستم حافظه متعهد کرده اند. اکنون دستور بارگذاری مقدار صحیح را از سیستم حافظه می خواند و هر دستورالعمل وابسته با استفاده از مقدار صحیح دوباره اجرا می شود. این تکنیک نیاز به جستجوی انجمنی صف بار در هر اجرای فروشگاه دارد، که انرژی مدار را مصرف می کند و می تواند ثابت کند که مسیر زمان بندی دشواری برای صف های بار بزرگ است. با این حال، به هیچ درگاه حافظه اضافی ( کش ) یا ایجاد تضاد منابع با بارگذاری ها یا ذخیره های دیگری که در حال اجرا هستند نیاز ندارد. ابهام زدایی در دوران بازنشستگی. با این تکنیک، دستورالعمل های بارگذاری که خارج از دستور اجرا شده اند، دوبا