payamvha/North_RAG huggingface dataset:
ابهام‌زدایی حافظه مجموعه‌ای از تکنیک‌هایی است که توسط ریزپردازنده‌هایی با کارایی بالا با اجرای خارج از نظم استفاده می‌شود که دستورالعمل‌های دسترسی به حافظه (بارگیری و ذخیره‌سازی) را خارج از نظم برنامه اجرا می‌کنند. مکانیسم‌های انجام ابهام‌زدایی حافظه، که با استفاده از منطق دیجیتال در هسته ریزپردازنده پیاده‌سازی می‌شوند، وابستگی‌های واقعی بین عملیات حافظه را در زمان اجرا شناسایی می‌کنند و به پردازنده اجازه می‌دهند زمانی که وابستگی نقض شده است، بازیابی شود. آن‌ها همچنین وابستگی‌های حافظه جعلی را حذف می‌کنند و
همچنین وابستگی‌های حافظه جعلی را حذف می‌کنند و با امکان اجرای بی‌نظم بارها و ذخیره‌ها ، موازی‌سازی بیشتر در سطح دستورالعمل را امکان‌پذیر می‌سازند. پیش زمینه. وابستگی ها. هنگام تلاش برای اجرای دستورات بدون نظم، یک ریزپردازنده باید وابستگی های واقعی بین دستورالعمل ها را رعایت کند. به عنوان مثال، یک وابستگی واقعی ساده را در نظر بگیرید: 1: $1، $2، $3 # R1 &lt;= R2 + R3 اضافه کنید 2: اضافه کردن $5، $1، $4 # R5 &lt;= R1 + R4 (وابسته به 1) در این مثال، دستور codice_1 در خط 2 به دستور codice_1 در خط 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 )
دستور codice_1 در خط 2 ( codice_6 و codice_9 ) نیز در خود دستورالعمل کدگذاری می شوند و در رمزگشایی تعیین می شوند. برای احترام به این وابستگی واقعی، منطق زمان‌بندی ریزپردازنده، این دستورالعمل‌ها را به ترتیب صحیح صادر می‌کند (اول دستورالعمل 1، سپس دستورالعمل 2) تا زمانی که دستورالعمل 2 به آنها نیاز دارد، نتایج 1 در دسترس باشد. عوارض زمانی ایجاد می شود که وابستگی به طور ایستا قابل تعیین نباشد. چنین وابستگی‌های غیراستاتیکی با دستورالعمل‌های حافظه (بارگیری‌ها و ذخیره‌سازی‌ها) به وجود می‌آیند، زیرا مکان عملوند
ذخیره‌سازی‌ها) به وجود می‌آیند، زیرا مکان عملوند ممکن است به‌طور غیرمستقیم به‌عنوان یک عملوند رجیستر مشخص شود، نه اینکه مستقیماً در خود دستورالعمل مشخص شود. 1: ذخیره $1، 2 ($2) # Mem[R2+2] &lt;= 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_10 و codice_11 مدت‌ها پیش محاسبه شده‌اند و تغییر نکرده‌اند. با این حال، فرض کنید codice_14 آماده نیست: ارزش آن هنوز در حال محاسبه با دستور codice_15 (تقسیم عدد صحیح) است. در نهایت، فرض کنید که رجیسترهای codice_10 و codice_11 دارای مقدار یکسانی هستند و بنابراین همه بارها و ذخیره‌های قطعه به کلمه حافظه یکسانی دسترسی دارند. در این شرایط، دستور codice_18 در خط 2 آماده اجرا نیست، اما دستور codice_19 در خط 3 آماده است. اگر پردازنده اجازه دهد دستور codice_20 قبل از codice_21 اجرا شود، بار یک مقدار
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. با استفاده از این تکنیک، صف بارگذاری، مانند صف فروشگاه، یک CAM است که با استفاده از آدرس دسترسی حافظه جستجو می‌شود و همه بارهای حین پرواز را ردیابی می‌کند. هنگامی که یک فروشگاه اجرا می شود، صف بارگذاری را برای بارهای تکمیل شده از همان آدرسی که به طور منطقی به ترتیب برنامه بعدی هستند، جستجو می کند. اگر چنین بار تطبیقی وجود داشته باشد، باید قبل از ذخیره اجرا شده باشد و بنابراین یک مقدار نادرست و قدیمی را از سیستم حافظه/صف فروشگاه خوانده باشد. هر دستورالعملی که از مقدار بار
خوانده باشد. هر دستورالعملی که از مقدار بار استفاده کرده باشد، از داده های بد نیز استفاده کرده است. برای بازیابی در صورت تشخیص چنین تخلفی، بار به عنوان "نقض" در بافر بازنشستگی علامت گذاری می شود. فروشگاه در صف فروشگاه و بافر بازنشستگی باقی می ماند و به طور معمول بازنشسته می شود و در هنگام بازنشستگی ارزش خود را به سیستم حافظه متعهد می کند. با این حال، هنگامی که بار نقض شده به نقطه بازنشستگی می رسد، پردازنده خط لوله را شستشو می دهد و اجرا را از دستورالعمل بارگذاری مجدد شروع می کند. در این مرحله، تمام فروشگاه
مجدد شروع می کند. در این مرحله، تمام فروشگاه های قبلی مقادیر خود را به سیستم حافظه متعهد کرده اند. اکنون دستور بارگذاری مقدار صحیح را از سیستم حافظه می خواند و هر دستورالعمل وابسته با استفاده از مقدار صحیح دوباره اجرا می شود. این تکنیک نیاز به جستجوی انجمنی صف بار در هر اجرای فروشگاه دارد، که انرژی مدار را مصرف می‌کند و می‌تواند ثابت کند که مسیر زمان‌بندی دشواری برای صف‌های بار بزرگ است. با این حال، به هیچ درگاه حافظه اضافی ( کش ) یا ایجاد تضاد منابع با بارگذاری‌ها یا ذخیره‌های دیگری که در حال اجرا هستند
یا ذخیره‌های دیگری که در حال اجرا هستند نیاز ندارد. ابهام زدایی در دوران بازنشستگی. با این تکنیک، دستورالعمل های بارگذاری که خارج از دستور اجرا شده اند، دوباره اجرا می شوند (آنها به سیستم حافظه دسترسی پیدا می کنند و برای بار دوم مقدار را از آدرس خود می خوانند) زمانی که به نقطه بازنشستگی می رسند. از آنجایی که بار اکنون دستورالعمل بازنشستگی است، هیچ وابستگی به هیچ دستورالعملی که هنوز در حال پرواز است ندارد. تمام فروشگاه های پیش از آن مقادیر خود را به سیستم حافظه متعهد کرده اند، بنابراین هر مقداری که از سیستم
متعهد کرده اند، بنابراین هر مقداری که از سیستم حافظه خوانده می شود، تضمین می شود که درست باشد. مقدار خوانده شده از حافظه در زمان اجرای مجدد با مقدار بدست آمده در هنگام اجرای بار برای اولین بار مقایسه می شود. اگر مقادیر یکسان باشد، مقدار اولیه صحیح بوده و تخلفی رخ نداده است. اگر مقدار اجرای مجدد با مقدار اصلی متفاوت باشد، نقض RAW رخ داده است و خط لوله باید شسته شود زیرا دستورالعمل های وابسته به بار از مقدار نادرستی استفاده کرده اند. این تکنیک از نظر مفهومی ساده‌تر از جستجوی صف بارگذاری است، و CAM دوم و
ساده‌تر از جستجوی صف بارگذاری است، و CAM دوم و جستجوی پرقدرت آن را حذف می‌کند (صف بار اکنون می‌تواند یک صف ساده FIFO باشد). از آنجایی که بار باید درست قبل از بازنشستگی مجدداً به سیستم حافظه دسترسی پیدا کند، دسترسی باید بسیار سریع باشد، بنابراین این طرح بر یک کش سریع متکی است. مهم نیست که حافظه نهان چقدر سریع باشد، اما دومین دسترسی به سیستم حافظه برای هر دستور بار خارج از دستور، تأخیر بازنشستگی دستورالعمل را افزایش می دهد و تعداد کل دسترسی های کش را که باید توسط پردازنده انجام شود، افزایش می دهد. با استفاده
پردازنده انجام شود، افزایش می دهد. با استفاده مجدد از یک درگاه کش موجود می‌توان دسترسی حافظه پنهان بازنشستگی اضافی را برآورده کرد. با این حال، این باعث ایجاد اختلاف منبع پورت با بارگذاری‌ها و ذخیره‌های دیگر در پردازنده می‌شود که در تلاش برای اجرا هستند، و در نتیجه ممکن است باعث کاهش عملکرد شود. از طرف دیگر، یک پورت کش اضافی را می توان فقط برای رفع ابهام بار اضافه کرد، اما این باعث افزایش پیچیدگی، قدرت و مساحت کش می شود. برخی از کارهای اخیر (Roth 2005) راه‌هایی را برای فیلتر کردن بسیاری از بارها از اجرای
را برای فیلتر کردن بسیاری از بارها از اجرای مجدد نشان داده‌اند، اگر مشخص باشد که هیچ نقض وابستگی RAW ممکن است رخ نداده باشد. چنین تکنیکی به چنین تأخیر و اختلاف منابع کمک می کند یا از بین می برد. یک مزیت جزئی این طرح (در مقایسه با جستجوی صف بارگذاری) این است که نقض وابستگی RAW را علامت‌گذاری نمی‌کند و در صورتی که فروشگاهی که باعث نقض وابستگی RAW شده باشد (آدرس فروشگاه با یک پرواز در حین پرواز مطابقت داشته باشد، نقض وابستگی RAW را علامت‌گذاری نمی‌کند و خط لوله را شروع نمی‌کند. load's address) دارای یک مقدار
را شروع نمی‌کند. load's address) دارای یک مقدار داده است که با مقدار داده موجود در حافظه پنهان مطابقت دارد. در طرح جستجوی load-queue، یک مقایسه داده اضافی باید به سخت افزار جستجوی صف بار اضافه شود تا از چنین هموار شدن خط لوله جلوگیری شود. اجتناب از نقض وابستگی RAW. CPUهایی که به طور کامل از اجرای بی‌نظم بارها و ذخیره‌سازی‌ها پشتیبانی می‌کنند، باید بتوانند نقض وابستگی RAW را در صورت وقوع شناسایی کنند. با این حال، بسیاری از CPUها با اجبار همه بارها و ذخیره‌ها به اجرای منظم، یا با پشتیبانی از فرم محدودی از
به اجرای منظم، یا با پشتیبانی از فرم محدودی از اجرای بار/ذخیره خارج از نظم، از این مشکل جلوگیری می‌کنند. این رویکرد عملکرد کمتری را در مقایسه با پشتیبانی از اجرای کامل بار/ذخیره خارج از سفارش ارائه می‌کند، اما می‌تواند پیچیدگی هسته اجرایی و حافظه‌های پنهان را به میزان قابل توجهی کاهش دهد. گزینه اول، مرتب کردن بارها و ذخیره‌ها، از وابستگی‌های RAW اجتناب می‌کند، زیرا امکان اجرای بار قبل از ذخیره‌سازی تولیدکننده و به دست آوردن داده‌های نادرست وجود ندارد. امکان دیگر این است که بارها و ذخیره سازی ها را به طور
دیگر این است که بارها و ذخیره سازی ها را به طور موثر به دو عملیات تقسیم کنید: تولید آدرس و دسترسی به حافظه پنهان. با این دو عملیات مجزا اما مرتبط، CPU می‌تواند به بارها و ذخیره‌ها اجازه دسترسی به سیستم حافظه را تنها زمانی بدهد که همه بارها و ذخیره‌های قبلی آدرس خود را در LSQ تولید و بافر کرده باشند. پس از تولید آدرس، دیگر هیچ وابستگی مبهمی وجود ندارد زیرا همه آدرس‌ها شناخته شده‌اند، و بنابراین بارهای وابسته تا زمانی که ذخیره‌های مربوطه آنها تکمیل نشود، اجرا نمی‌شوند. این طرح هنوز هم اجازه می دهد تا برخی از
نمی‌شوند. این طرح هنوز هم اجازه می دهد تا برخی از "خارج از نظم" - عملیات تولید آدرس برای هر بارگذاری در پرواز و فروشگاه می تواند بدون ترتیب اجرا شود، و هنگامی که آدرس ها تولید شدند، دسترسی های حافظه پنهان برای هر بار یا فروشگاه می تواند انجام شود. به هر ترتیبی که به وابستگی های واقعی (اکنون شناخته شده) احترام می گذارد، اتفاق می افتد. مسائل اضافی. پیش بینی وابستگی به حافظه. پردازنده‌هایی که به‌طور کامل از اجرای بار/ذخیره خارج از دستور پشتیبانی می‌کنند، می‌توانند از یک تکنیک مرتبط دیگر، به نام پیش‌بینی
می‌توانند از یک تکنیک مرتبط دیگر، به نام پیش‌بینی وابستگی حافظه ، برای پیش‌بینی وابستگی‌های واقعی بین بارها و ذخیره‌ها "قبل از" مشخص شدن آدرس‌هایشان استفاده کنند. با استفاده از این تکنیک، پردازنده می‌تواند از اجرای بارهایی که پیش‌بینی می‌شود به یک فروشگاه در حین پرواز وابسته هستند، قبل از تکمیل آن فروشگاه جلوگیری کند، از نقض وابستگی RAW جلوگیری کند و در نتیجه از فلاش خط لوله و جریمه عملکردی که متحمل می‌شود جلوگیری کند. برای جزئیات بیشتر به مقاله پیش بینی وابستگی حافظه مراجعه کنید.
در یادگیری ماشین و تشخیص الگو ، یک ویژگی یک خاصیت یا ویژگی قابل اندازه گیری فردی یک پدیده است. انتخاب ویژگی‌های آموزنده، متمایز و مستقل، عنصر حیاتی الگوریتم‌های مؤثر در تشخیص ، طبقه‌بندی و رگرسیون الگو است. ویژگی‌ها معمولاً عددی هستند، اما ویژگی‌های ساختاری مانند رشته‌ها و نمودارها در تشخیص الگوی نحوی استفاده می‌شوند. مفهوم "ویژگی" با متغیر توضیحی مورد استفاده در تکنیک های آماری مانند رگرسیون خطی مربوط است. طبقه بندی. یک ویژگی عددی را می توان به راحتی با یک بردار ویژگی وصف کرد. یکی از راه‌های دستیابی به
یک بردار ویژگی وصف کرد. یکی از راه‌های دستیابی به طبقه‌بندی باینری ، استفاده از یک تابع پیش‌بینی خطی (مربوط به پرسپترون ) با بردار ویژگی به عنوان ورودی است. این روش شامل محاسبه حاصل ضرب اسکالر بین بردار ویژگی و بردار وزن ها، واجد شرایط بودن مشاهداتی است که نتیجه آنها از حدی فراتر می رود. الگوریتم‌های طبقه‌بندی از بردار ویژگی شامل طبقه‌بندی نزدیکترین همسایه ، شبکه‌های عصبی و تکنیک‌های آماری مانند رویکردهای بیزی است . مثال ها. در تشخیص کاراکتر ، ویژگی‌ها ممکن است شامل هیستوگرام شمارش تعداد پیکسل‌های سیاه در
است شامل هیستوگرام شمارش تعداد پیکسل‌های سیاه در امتداد جهت‌های افقی و عمودی، تعداد سوراخ‌های داخلی، تشخیص ضربه و بسیاری موارد دیگر باشد. در تشخیص گفتار ، ویژگی‌های تشخیص واج می‌تواند شامل نسبت نویز، طول صداها، قدرت نسبی، مطابقت فیلتر و بسیاری موارد دیگر باشد. در الگوریتم‌های تشخیص هرزنامه ، ویژگی‌هایی ممکن است شامل وجود یا عدم وجود سرفصل‌های ایمیل مشخص، ساختار ایمیل، زبان، فراوانی عبارات خاص، صحت دستوری متن باشد. در بینایی کامپیوتر ، تعداد زیادی ویژگی ممکن، مانند لبه ها و اشیاء وجود دارد. برنامه های
ممکن، مانند لبه ها و اشیاء وجود دارد. برنامه های افزودنی. در تشخیص الگو و یادگیری ماشین ، بردار ویژگی یک بردار n بعدی از ویژگی‌های عددی است که بیانگر برخی از شی‌ها است. بسیاری از الگوریتم‌ها در یادگیری ماشینی به نمایش عددی اشیا نیاز دارند، زیرا چنین نمایش‌هایی پردازش و تحلیل آماری را تسهیل می‌کنند. هنگام نمایش تصاویر، مقادیر ویژگی ممکن است با پیکسل های یک تصویر مطابقت داشته باشد، در حالی که هنگام نمایش متون، ویژگی ها ممکن است فراوانی وقوع اصطلاحات متنی باشد. بردارهای ویژگی معادل بردارهای متغیرهای توضیحی
بردارهای ویژگی معادل بردارهای متغیرهای توضیحی مورد استفاده در روش های آماری مانند رگرسیون خطی هستند. بردارهای مشخصه اغلب با استفاده از حاصل ضرب نقطه ای با وزن ها ترکیب می شوند تا یک تابع پیش بینی خطی بسازند که برای تعیین امتیاز برای پیش بینی استفاده می شود. فضای برداری مرتبط با این بردارها اغلب فضای ویژگی نامیده می شود. به منظور کاهش ابعاد فضای ویژگی، تعدادی از تکنیک های کاهش ابعاد را می توان به کار گرفت. ویژگی‌های سطح بالاتر را می‌توان از ویژگی‌های موجود دریافت کرد و به بردار ویژگی افزود. به عنوان مثال،
دریافت کرد و به بردار ویژگی افزود. به عنوان مثال، برای مطالعه بیماری ها ویژگی "سن" مفید است و به عنوان "سن = "سال مرگ" منهای "سال تولد" تعریف می شود" . این فرآیند به عنوان ساخت ویژگی نامیده می شود. ساخت ویژگی به کارگیری مجموعه ای از عملگرهای سازنده برای مجموعه ای از ویژگی های موجود است که منجر به ساخت ویژگی های جدید می شود. نمونه هایی از این عملگرهای سازنده عبارتند از بررسی شرایط برابری {=، ≠}، عملگرهای حسابی {+،−،×، /}، عملگرهای آرایه {max(S)، min(S)، میانگین(S)} به عنوان و همچنین سایر عملگرهای پیچیده‌تر،
به عنوان و همچنین سایر عملگرهای پیچیده‌تر، برای مثال count(S,C) که تعداد ویژگی‌های بردار ویژگی S را که برخی از شرایط C را برآورده می‌کنند، می‌شمارد یا، برای مثال، فاصله‌ها با سایر کلاس‌های تشخیص تعمیم‌یافته توسط برخی دستگاه‌های پذیرنده. ساخت ویژگی از دیرباز به عنوان ابزاری قدرتمند برای افزایش دقت و درک ساختار، به ویژه در مسائل با ابعاد بالا در نظر گرفته شده است. کاربردها شامل مطالعات بیماری و تشخیص احساسات از گفتار است. انتخاب و استخراج. مجموعه اولیه ویژگی‌های خام می‌تواند زائد و بیش از حد بزرگ باشد که
خام می‌تواند زائد و بیش از حد بزرگ باشد که نمی‌توان آن را مدیریت کرد. بنابراین، یک مرحله مقدماتی در بسیاری از کاربردهای یادگیری ماشین و تشخیص الگو شامل انتخاب زیرمجموعه‌ای از ویژگی‌ها، یا ساخت مجموعه‌ای از ویژگی‌های جدید و کاهش‌یافته برای تسهیل یادگیری، و بهبود تعمیم و تفسیرپذیری است. . استخراج یا انتخاب ویژگی ها ترکیبی از هنر و علم است. توسعه سیستم هایی برای انجام این کار به عنوان مهندسی ویژگی شناخته می شود. این امر مستلزم آزمایش احتمالات متعدد و ترکیب تکنیک های خودکار با شهود و دانش متخصص حوزه است .
تکنیک های خودکار با شهود و دانش متخصص حوزه است . خودکار کردن این فرآیند یادگیری ویژگی است ، که در آن یک ماشین نه تنها از ویژگی ها برای یادگیری استفاده می کند، بلکه خود ویژگی ها را یاد می گیرد.
کارلوس کاستیلیو (; – ) بازیکن و مربی فوتبال اهل برزیل بود. از باشگاه‌هایی که در آن بازی کرده‌است می‌توان به باشگاه فوتبال فلومیننزه اشاره کرد. وی همچنین در تیم ملی فوتبال برزیل بازی کرده‌است.
استان خودگردان خاکاس (به لاتین: Khakas Autonomous Oblast) یکی از ابلاست‌های خودمختار اتحاد شوروی در اتحاد جماهیر شوروی سوسیالیستی بود که در سرزمین کراسنویارسک واقع شده بود. این استان خودگردان بخشی از سرزمین کراسنویارسک در سال ۱۹۳۴ در منطقه جنوب شرقی روسیه بود. تا سال ۱۹۹۱ میلادی، استان خودگردان خاکاس از نظر اداری تابع سرزمین کراسنویارسک بود. در ژوئیه ۱۹۹۱، وضعیت آن به یک جمهوری سوسیالیستی خودمختار شوروی ارتقا یافت و در فوریه ۱۹۹۲ به جمهوری خاکاسیا تبدیل شد.
ژوزه فریرا فرانکو با نام مستعار زکینیا (; – ) بازیکن فوتبال اهل برزیل بود. از باشگاه‌هایی که در آن بازی کرده‌است می‌توان به باشگاه فوتبال پالمیراس، باشگاه فوتبال نائوچیکو، باشگاه فوتبال اتلتیکو پارانائنزه، باشگاه فوتبال فلومیننزه، و باشگاه فوتبال سانتا کروز اشاره کرد. وی همچنین در تیم ملی فوتبال برزیل بازی کرده‌است.
علی‌رغم ماهیت علمی ثابت شده اختلال کم توجهی - بیش فعالی (ADHD)، هم تشخیص و هم درمان آن، از دهه ۱۹۷۰ محل مناقشه بوده‌است. این بحث بین پزشکان، معلمان، سیاست گذاران، والدین و رسانه‌ها وجود دارد که آیا ADHD در محدوده طبیعی رفتار است یا این که ADHD یک وضعیت ژنتیکی است. از دیگر زمینه‌های مناقشه می‌توان به استفاده از داروهای محرک در کودکان، روش تشخیص و امکان تجویز افراطی اشاره کرد. در سال ۲۰۰۹، مؤسسه ملی بهداشت و مراقبت‌های عالی، ضمن تأیید این مناقشه، بیان می‌کند که درمان‌ها و روش‌های تشخیص فعلی بر اساس دیدگاه
که درمان‌ها و روش‌های تشخیص فعلی بر اساس دیدگاه غالب در منابع آکادمیک است. تفاوت نرخ تشخیص بیماری در کشورهای مختلف، ایالت‌های درون یک کشور، نژادها یا قومیت‌ها، به این علت است که برخی عوامل دیگر به غیر از وجود علائم ADHD در تشخیص بیماری نقش دارند، اگرچه شیوع ADHD در سطح بین‌المللی ثابت است. Federation of ADHD 2021" برخی از جامعه شناسان ADHD را نمونه ای از پزشکی سازی رفتار غیر عادی می‌دانند، یعنی تبدیل مسئله غیر پزشکی عملکرد در مدرسه به یک مساله پزشکی. اکثر سیستم‌های درمانی و سلامت، ADHD را به عنوان یک
سیستم‌های درمانی و سلامت، ADHD را به عنوان یک اختلال واقعی، و حداقل در تعداد کمی از افراد با علائم شدید می‌پذیرند. در میان جوامع پزشکی، بحث عمدتاً بر تشخیص و درمان تعداد بسیار بیشتری از افراد با علائم خفیف متمرکز است. وضعیت به عنوان یک اختلال. بر اساس "راهنمای تشخیصی و آماری اختلال‌های روانی، ویراست پنجم" (DSM-5)، مرجع اصلی در تشخیص بالینی در ایالات متحده آمریکا، ADHD یک ناهنجاری عصبی تکوینی با نرخ شیوع در اکثر فرهنگ‌ها، حدود ۵٪ در کودکان و ۲٫۵٪ در بزرگسالان است. امروزه وجود ADHD به‌طور کلی پذیرفته