مرجع سریع اصطلاحات مهم پردازنده
واژه نامه جامع CPU؛ اصطلاحات مهم پردازنده از A تا Z
در فصل های این دانشنامه
با تعداد زیادی اصطلاح معماری،
مهندسی و Performance
روبرو شدیم.
این فصل مهم ترین آنها را
در یک مرجع واحد جمع می کند.
تعریف ها عمداً کوتاه هستند.
هدف این بخش آموزش دوباره هر مفهوم نیست،
بلکه کمک به یادآوری سریع
معنی و جایگاه آن در معماری CPU است.
دسترسی سریع
اصطلاحات براساس موضوع گروه بندی شده اند
تا پیدا کردن مفهوم مورد نظر
سریع تر از یک فهرست صرفاً الفبایی باشد.
1. مفاهیم پایه CPU
| اصطلاح | تعریف کوتاه |
|---|---|
| CPU | Central Processing Unit؛ پردازنده اصلی که دستورهای برنامه را اجرا می کند. |
| Processor | اصطلاح عمومی برای واحد پردازشی؛ در بسیاری از کاربردها مترادف CPU استفاده می شود. |
| Instruction | عملیاتی تعریف شده در ISA که Software می تواند از CPU درخواست کند. |
| Machine Code | نمایش باینری دستورهایی که Processor قادر به Decode و اجرا است. |
| Opcode | بخشی از Instruction که نوع عملیات را مشخص می کند. |
| Operand | داده یا منبعی که Instruction روی آن عمل می کند. |
| Register | فضای ذخیره سازی بسیار سریع داخل CPU برای نگهداری موقت داده، آدرس یا وضعیت. |
| Program Counter | Register یا وضعیت معماری مرتبط با آدرس Instruction بعدی. |
| Clock | سیگنال زمانی مورد استفاده برای هماهنگی عملیات مدارهای همگام CPU. |
| Clock Cycle | یک دوره از Clock پردازنده. |
| Frequency | تعداد Cycleهای Clock در واحد زمان؛ معمولاً با GHz بیان می شود. |
| GHz | Gigahertz؛ یک میلیارد Cycle در ثانیه. |
| Latency | زمان یا تعداد Cycle لازم برای تکمیل یک عملیات یا دسترسی. |
| Throughput | مقدار کاری که در یک بازه زمانی قابل تکمیل است. |
2. Architecture و ISA
| اصطلاح | تعریف کوتاه |
|---|---|
| ISA | Instruction Set Architecture؛ قرارداد معماری میان Software و Processor. |
| Microarchitecture | روش داخلی پیاده سازی ISA در یک طراحی مشخص CPU. |
| x86 | خانواده ای از معماری های Instruction Set که ریشه آن به پردازنده های اولیه Intel x86 باز می گردد. |
| x86-64 | نسخه 64 بیتی معماری x86 که با نام AMD64 نیز شناخته می شود. |
| ARM | خانواده ای از ISAها که به طور گسترده در موبایل، Embedded، Client و Server استفاده می شود. |
| RISC | رویکرد معماری مبتنی بر مجموعه دستورهای نسبتاً ساده و منظم. |
| CISC | رویکرد معماری دارای Instructionهای پیچیده تر و متنوع تر. |
| 32-bit | اصطلاحی مرتبط با عرض معماری و قابلیت های داده و Addressing در ISAهای 32 بیتی. |
| 64-bit | معماری دارای قابلیت های 64 بیتی در Registerها، عملیات و Addressing مطابق ISA. |
| ISA Extension | افزوده ای به ISA برای ارائه قابلیت ها یا Instructionهای جدید. |
| Microcode | لایه کنترلی داخلی مورد استفاده در برخی CPUها برای پیاده سازی یا اصلاح رفتار برخی عملیات. |
| Privilege Level | سطح دسترسی اجرایی که مشخص می کند Code چه عملیات حساسی را می تواند انجام دهد. |
3. Pipeline، Front-End و Branch Prediction
| اصطلاح | تعریف کوتاه |
|---|---|
| Pipeline | تقسیم پردازش Instruction به چند مرحله که امکان همپوشانی کار روی چند Instruction را فراهم می کند. |
| Pipeline Stage | یکی از مراحل پردازش در Pipeline. |
| Front-End | بخشی از CPU مسئول پیش بینی مسیر، Fetch، Decode و آماده سازی عملیات برای Back-End. |
| Fetch | دریافت Instructionهای مورد نیاز برای اجرا. |
| Decode | تفسیر Instruction و تبدیل آن به فرم قابل استفاده برای بخش های داخلی CPU. |
| Decoder | Hardware مسئول Decode کردن Instructionها. |
| Micro-op / µop | عملیات داخلی کوچک تری که برخی Microarchitectureها برای اجرای Instructionها استفاده می کنند. |
| µop Cache | ساختاری برای نگهداری عملیات Decode شده با هدف کاهش نیاز به Decode مجدد در برخی طراحی ها. |
| Branch | Instruction یا رویدادی که می تواند مسیر Control Flow برنامه را تغییر دهد. |
| Branch Predictor | Hardwareی که مسیر احتمالی Branch را پیش بینی می کند. |
| Branch Misprediction | حالتی که پیش بینی Branch اشتباه بوده و CPU باید کار Speculative اشتباه را کنار بگذارد. |
| BTB | Branch Target Buffer؛ ساختاری برای کمک به پیش بینی Target برخی Branchها. |
| Speculative Execution | اجرای موقت عملیات پیش از قطعی شدن برخی شرایط برای جلوگیری از بیکار ماندن Pipeline. |
| Pipeline Flush | کنار گذاشتن بخشی از کار در حال پردازش Pipeline، مثلاً پس از Misprediction. |
| Front-End Bound | وضعیتی که Performance به دلیل ناتوانی Front-End در تامین عملیات کافی محدود می شود. |
4. Execution Engine و Out-of-Order Execution
| اصطلاح | تعریف کوتاه |
|---|---|
| Back-End | بخش CPU که Scheduling، Execution و تکمیل عملیات را مدیریت می کند. |
| Execution Unit | واحد سخت افزاری که نوع مشخصی از عملیات را اجرا می کند. |
| ALU | Arithmetic Logic Unit؛ واحد اجرای عملیات حسابی و منطقی Integer. |
| FPU | Floating-Point Unit؛ واحد پردازش عملیات ممیز شناور. |
| Load Unit | واحد مرتبط با خواندن Data از Memory Hierarchy. |
| Store Unit | واحد مرتبط با نوشتن Data در Memory Hierarchy. |
| Execution Port | مسیر یا Resource داخلی برای ارسال عملیات به واحدهای اجرایی در برخی Microarchitectureها. |
| Superscalar | توانایی پردازنده برای پردازش یا Issue چند عملیات در یک Cycle در صورت وجود شرایط مناسب. |
| Out-of-Order Execution | اجرای عملیات آماده خارج از ترتیب اصلی برنامه با حفظ نتیجه معماری صحیح. |
| In-Order Execution | مدلی که اجرای عملیات بیشتر تابع ترتیب برنامه است. |
| Register Renaming | نگاشت Registerهای معماری به منابع فیزیکی برای کاهش Dependencyهای کاذب. |
| Physical Register | Register داخلی مورد استفاده Microarchitecture که لزوماً مستقیماً برای Software قابل مشاهده نیست. |
| Scheduler | ساختاری که عملیات آماده را برای اجرا روی Resource مناسب انتخاب می کند. |
| ROB | Reorder Buffer؛ ساختاری مهم در بسیاری از CPUهای OoO برای مدیریت عملیات در حال اجرا و Retirement مرتب. |
| Retirement | مرحله ای که نتیجه Instruction به صورت معماری قطعی می شود. |
| Dependency | رابطه ای که باعث می شود اجرای یک عملیات به نتیجه یا وضعیت عملیات دیگری وابسته باشد. |
| Data Dependency | وابستگی ناشی از نیاز یک عملیات به Data تولید شده توسط عملیات دیگر. |
| False Dependency | وابستگی ظاهری ناشی از استفاده از نام Register یکسان بدون وابستگی واقعی Data. |
| ILP | Instruction-Level Parallelism؛ میزان عملیات مستقلی که می توانند همزمان یا همپوشان اجرا شوند. |
| Back-End Bound | حالتی که Resourceهای Execution یا Memory در Back-End عامل محدود کننده Performance هستند. |
5. Cache، Memory و Address Translation
| اصطلاح | تعریف کوتاه |
|---|---|
| Memory Hierarchy | چیدمان چندسطحی Storage از Register و Cache تا DRAM و Storage. |
| Cache | حافظه سریع برای نگهداری موقت Data یا Instructionهای پرکاربرد نزدیک CPU. |
| L1 Cache | سطح Cache بسیار سریع و کوچک نزدیک Core. |
| L2 Cache | سطح Cache بعدی که معمولاً بزرگ تر و کندتر از L1 است. |
| L3 Cache | سطح Cache بزرگ تر که در بسیاری از CPUها بین چند Core به صورت کامل یا جزئی Shared است. |
| LLC | Last-Level Cache؛ آخرین سطح Cache پیش از مراجعه به Memory پایین تر در طراحی مورد نظر. |
| Cache Hit | پیدا شدن Data مورد نیاز در سطح Cache بررسی شده. |
| Cache Miss | پیدا نشدن Data در Cache و نیاز به جستجو در سطح پایین تر. |
| Hit Rate | نسبت Accessهایی که با Cache Hit پاسخ داده می شوند. |
| Cache Line | واحد Data که معمولاً میان سطوح Cache و Memory منتقل و مدیریت می شود. |
| Cache Associativity | تعداد مکان های ممکن در یک Set که یک Cache Line می تواند در آنها قرار گیرد. |
| Temporal Locality | احتمال استفاده مجدد از Data یا Instructionی که اخیراً استفاده شده است. |
| Spatial Locality | احتمال دسترسی به Data نزدیک به آدرسی که اخیراً استفاده شده است. |
| Prefetching | آوردن پیش دستانه Data یا Instruction قبل از درخواست قطعی. |
| Hardware Prefetcher | Hardwareی که Patternهای Access را تشخیص داده و Data احتمالی آینده را Prefetch می کند. |
| Cache Coherence | سازوکاری برای حفظ دید سازگار از Data مشترک میان Cacheهای چند Core. |
| False Sharing | تداخل Performance ناشی از تغییر Dataهای مستقل که در یک Cache Line مشترک قرار گرفته اند. |
| Memory Controller | منطق مسئول مدیریت ارتباط پردازنده با DRAM. |
| Memory Latency | زمان لازم برای پاسخ به یک Memory Access. |
| Memory Bandwidth | مقدار Data قابل انتقال از Memory در واحد زمان. |
| MLP | Memory-Level Parallelism؛ توانایی داشتن چند Memory Request مستقل در حال پردازش. |
| Virtual Memory | سیستم Addressing که به Processها فضای آدرس مجازی می دهد و آن را به Memory فیزیکی نگاشت می کند. |
| Virtual Address | آدرسی که Software در فضای Virtual Address استفاده می کند. |
| Physical Address | آدرسی که به Location فیزیکی در Memory System مرتبط است. |
| Page | واحد بلوکی مدیریت Virtual Memory. |
| Page Table | ساختار Data برای نگاشت Virtual Pageها به Physical Memory و نگهداری Permissionها. |
| TLB | Translation Lookaside Buffer؛ Cache مخصوص نگهداری Translationهای آدرس. |
| TLB Miss | نبود Translation مورد نیاز در TLB که ممکن است Page Walk را ضروری کند. |
| Page Walk | فرایند پیدا کردن Translation از Page Tableها. |
| NUMA | Non-Uniform Memory Access؛ معماری ای که هزینه دسترسی به Memory بسته به محل CPU و Memory متفاوت است. |
6. Core، Thread و Parallelism
| اصطلاح | تعریف کوتاه |
|---|---|
| Core | هسته پردازشی قادر به اجرای مستقل جریان Instruction. |
| Physical Core | هسته واقعی سخت افزاری داخل Processor. |
| Thread | جریان اجرایی قابل Scheduling توسط سیستم عامل. |
| Hardware Thread | Context اجرایی سخت افزاری که CPU برای اجرای Thread فراهم می کند. |
| Logical Processor | واحد پردازشی منطقی که سیستم عامل می تواند برای Scheduling مشاهده کند. |
| SMT | Simultaneous Multithreading؛ اجرای همزمان بیش از یک Hardware Thread روی Resourceهای یک Core. |
| Hyper-Threading | نام تجاری Intel برای پیاده سازی SMT در بسیاری از پردازنده های آن. |
| Multi-Core | طراحی Processor شامل بیش از یک Core. |
| Parallelism | انجام چند بخش از کار به صورت همزمان یا همپوشان. |
| Thread-Level Parallelism | Parallelism حاصل از اجرای چند Thread. |
| Data-Level Parallelism | اجرای عملیات مشابه روی چند Data Element. |
| SIMD | Single Instruction Multiple Data؛ اجرای یک عملیات مشابه روی چند Data Element. |
| SSE | خانواده ای از Extensionهای SIMD در معماری x86. |
| AVX | Advanced Vector Extensions؛ خانواده Extensionهای Vector/SIMD در x86. |
| Vectorization | تبدیل عملیات Scalar به عملیات Vector برای پردازش چند Data Element. |
| Scalar | عملیاتی که معمولاً روی یک Data Element در هر Operation کار می کند. |
| Synchronization | هماهنگ سازی Threadها هنگام دسترسی به Resource یا Data مشترک. |
| Contention | رقابت چند Thread یا Operation برای Resource مشترک. |
| Load Balancing | توزیع مناسب کار میان Resourceهای پردازشی. |
| Scaling | میزان افزایش Performance هنگام افزایش Resourceهایی مانند Core. |
| Amdahl’s Law | مدلی که نشان می دهد بخش Serial برنامه می تواند Speedup حاصل از Parallelism را محدود کند. |
7. Performance و Bottleneck
| اصطلاح | تعریف کوتاه |
|---|---|
| Performance | توان سیستم برای تکمیل Workload با سرعت یا Throughput مشخص. |
| IPC | Instructions Per Cycle؛ متوسط تعداد Instruction تکمیل شده در هر Cycle برای Workload مشخص. |
| CPI | Cycles Per Instruction؛ متوسط Cycle مورد نیاز به ازای هر Instruction. |
| Single-Core Performance | Performance حاصل از یک Core یا Workload عمدتاً وابسته به یک Thread. |
| Multi-Core Performance | Performance حاصل از استفاده از چند Core در Workload موازی. |
| Single-Thread Performance | Performance یک Thread اجرایی که معمولاً به قدرت Core، Frequency و رفتار Workload وابسته است. |
| Bottleneck | Resource یا مرحله ای که Performance کل سیستم را در شرایط مشخص محدود می کند. |
| CPU-Bound | Workloadی که Performance آن عمدتاً توسط توان پردازشی CPU محدود می شود. |
| Memory-Bound | Workloadی که Performance آن عمدتاً توسط رفتار Memory System محدود می شود. |
| Compute-Bound | Workloadی که Execution Resources و توان محاسباتی عامل اصلی محدودیت هستند. |
| Stall | دوره ای که بخشی از Pipeline قادر به پیشرفت مفید نیست. |
| Speedup | نسبت Performance یا زمان اجرای دو حالت برای بیان میزان بهبود. |
| Peak Performance | بالاترین Performance قابل دستیابی در شرایط یا بازه خاص. |
| Sustained Performance | Performance قابل حفظ در اجرای طولانی مدت Workload. |
| Performance per Watt | مقدار Performance نسبت به توان مصرفی. |
| Performance per Dollar | مقدار Performance نسبت به هزینه خرید. |
8. Power، Frequency و Thermal
| اصطلاح | تعریف کوتاه |
|---|---|
| Power | نرخ مصرف انرژی الکتریکی Processor. |
| Dynamic Power | بخشی از Power مرتبط با Switching مدارها. |
| Static Power | بخشی از Power که حتی بدون Switching کامل نیز به دلیل Leakage وجود دارد. |
| Leakage | جریان ناخواسته در Transistorها که در Static Power نقش دارد. |
| Voltage | اختلاف پتانسیل الکتریکی مورد استفاده مدار CPU. |
| DVFS | Dynamic Voltage and Frequency Scaling؛ تنظیم پویا Voltage و Frequency براساس شرایط. |
| Base Frequency | فرکانس مرجع تعریف شده توسط سازنده تحت شرایط مشخص؛ معنای دقیق آن به محصول وابسته است. |
| Boost Frequency | فرکانس بالاتر پویا که CPU در صورت وجود Headroom مناسب می تواند استفاده کند. |
| Turbo | اصطلاح رایج برای افزایش پویا Frequency بالاتر از سطح پایه در شرایط مجاز. |
| Power Limit | محدودیتی برای مقدار Power قابل استفاده CPU در شرایط تعریف شده. |
| TDP | Thermal Design Power؛ پارامتر طراحی حرارتی سازنده و نه الزاماً مصرف واقعی لحظه ای CPU. |
| Temperature | دمای بخش های مختلف Processor که توسط Sensorها اندازه گیری یا تخمین زده می شود. |
| Junction Temperature | دمای ناحیه داخلی Semiconductor Die یا Junction طبق تعریف سازنده. |
| TjMax | حد دمای Junction تعریف شده برای Processor یا Sensor Logic مربوطه. |
| Thermal Throttling | کاهش Operating Point برای کنترل Temperature هنگام رسیدن به محدودیت حرارتی. |
| Thermal Headroom | فاصله موجود تا محدودیت حرارتی که می تواند امکان Boost بیشتر را فراهم کند. |
| Thermal Resistance | معیاری برای مقاومت مسیر انتقال Heat. |
| Cooling | سیستم انتقال Heat از Processor به محیط. |
| Undervolting | کاهش Voltage عملیاتی با هدف کاهش Power و Heat، در صورت پایداری و امکان Platform. |
| Overclocking | اجرای Processor خارج از Frequency یا تنظیمات استاندارد تعریف شده برای افزایش Performance. |
| Power Efficiency | میزان کار مفید حاصل در برابر Energy یا Power مصرفی. |
9. Die، Package، Chiplet و Platform
| اصطلاح | تعریف کوتاه |
|---|---|
| Transistor | عنصر بنیادی Switching و Logic در مدارهای دیجیتال CPU. |
| Die | قطعه Semiconductor ساخته شده روی Wafer که مدارهای Processor روی آن قرار دارند. |
| Package | ساختار فیزیکی و الکتریکی که Die یا Dieها را به Platform متصل می کند. |
| Monolithic Die | طراحی ای که بخش عمده اجزای Processor روی یک Die اصلی قرار دارند. |
| Chiplet | Die کوچک تر و ماژولاری که همراه Dieهای دیگر یک Processor یا Package را تشکیل می دهد. |
| Interconnect | شبکه ارتباطی میان Coreها، Cache، Memory Controller و سایر بخش های Processor. |
| Socket | رابط فیزیکی و الکتریکی برای اتصال Processor قابل تعویض به Motherboard. |
| BGA | Ball Grid Array؛ نوع Package که معمولاً مستقیماً روی برد لحیم می شود. |
| Process Node | نام نسل یا فناوری ساخت Semiconductor؛ عدد نام گذاری شده به تنهایی ابعاد دقیق همه Transistorها را بیان نمی کند. |
| Fabric | شبکه ارتباطی داخلی برای اتصال بخش های مختلف Processor یا SoC. |
| SoC | System on Chip؛ تراشه ای که CPU و چند زیرسیستم دیگر را در یک طراحی مجتمع می کند. |
| IMC | Integrated Memory Controller؛ Memory Controller مجتمع در Processor یا SoC. |
| PCIe | رابط پرسرعت برای اتصال Deviceهایی مانند GPU، SSD و سایر Peripheralها به Platform. |
10. Security و Virtualization
| اصطلاح | تعریف کوتاه |
|---|---|
| Virtualization | اجرای چند محیط مجازی روی Hardware فیزیکی با کمک Software و قابلیت های Hardware. |
| Hypervisor | لایه ای که Virtual Machineها و Resourceهای Hardware را مدیریت می کند. |
| vCPU | Processor منطقی ارائه شده به Virtual Machine. |
| VT-x | مجموعه قابلیت های Hardware Virtualization در پردازنده های Intel. |
| AMD-V | قابلیت های Hardware Virtualization در پردازنده های AMD. |
| SLAT | Second-Level Address Translation؛ Hardware برای تسریع ترجمه Memory در Virtualization. |
| EPT | Extended Page Tables؛ پیاده سازی Intel برای Second-Level Address Translation. |
| NPT | Nested Page Tables؛ سازوکار AMD برای ترجمه سطح دوم آدرس در Virtualization. |
| NX / XD | قابلیتی برای علامت گذاری Memory Page به عنوان غیرقابل اجرای Code. |
| Side Channel | روش استخراج اطلاعات از اثرات جانبی اجرای سیستم به جای دسترسی مستقیم به Data محرمانه. |
| Spectre | خانواده ای از حملات Side Channel مرتبط با Speculative Execution و اثرات Microarchitectural. |
| Meltdown | کلاسی از آسیب پذیری ها که از تعامل Speculative Execution و کنترل دسترسی در برخی CPUها سوءاستفاده می کند. |
| Mitigation | تغییر Hardware، Firmware یا Software برای کاهش یا حذف اثر یک Vulnerability. |
| TEE | Trusted Execution Environment؛ محیطی با هدف محافظت بیشتر از Code یا Data حساس. |
11. Reliability، Manufacturing و Aging
| اصطلاح | تعریف کوتاه |
|---|---|
| ECC | Error-Correcting Code؛ تکنیک تشخیص و در برخی موارد اصلاح خطاهای Data. |
| Parity | روش ساده تشخیص برخی خطاهای Data. |
| Machine Check | مکانیزم Hardware برای گزارش برخی خطاهای داخلی Processor یا Platform. |
| RAS | Reliability, Availability, Serviceability؛ مجموعه قابلیت های مرتبط با قابلیت اطمینان و مدیریت خطا. |
| Silicon Aging | تغییر تدریجی خصوصیات مدار Semiconductor در اثر زمان و Stress. |
| Electromigration | جابجایی تدریجی اتم ها در Interconnectها تحت تاثیر چگالی جریان بالا. |
| BTI | Bias Temperature Instability؛ یکی از مکانیزم های Aging در Transistorها. |
| TDDB | Time-Dependent Dielectric Breakdown؛ تخریب تدریجی Dielectric تحت Stress الکتریکی. |
| Thermal Cycling | تکرار گرم و سرد شدن که می تواند Stress مکانیکی و مادی ایجاد کند. |
| Wafer | صفحه Semiconductor که تعداد زیادی Die روی آن ساخته می شود. |
| Yield | نسبت Dieهای قابل استفاده حاصل از فرایند تولید. |
| Binning | دسته بندی Dieها براساس ویژگی هایی مانند Frequency، Voltage، Power و قابلیت های سالم. |
| Process Variation | تفاوت طبیعی ویژگی های الکتریکی و فیزیکی بین Transistorها و Dieهای تولید شده. |
| Silicon Lottery | اصطلاح غیررسمی برای تفاوت قابلیت Frequency/Voltage نمونه های مختلف یک مدل Processor. |
| Harvesting | استفاده از Die دارای بخش های غیرفعال یا معیوب برای ساخت SKUهایی که به تمام آن بخش ها نیاز ندارند. |
| SKU | نسخه یا مدل تجاری مشخص از یک خانواده محصول. |
12. Benchmark، Profiling و Monitoring
| اصطلاح | تعریف کوتاه |
|---|---|
| Benchmark | آزمونی برای اندازه گیری Performance سیستم تحت Workload و شرایط مشخص. |
| Synthetic Benchmark | آزمون طراحی شده برای سنجش رفتار یا Resource مشخص، نه الزاماً یک Application واقعی کامل. |
| Real-World Benchmark | آزمون مبتنی بر Application یا Workload نزدیک به استفاده واقعی. |
| Microbenchmark | آزمون کوچک و هدفمند برای اندازه گیری ویژگی خاصی مانند Latency یا Throughput. |
| Profiling | تحلیل رفتار برنامه برای یافتن محل مصرف زمان، Resource و Bottleneck. |
| PMU | Performance Monitoring Unit؛ Hardwareی برای شمارش Eventهای Microarchitectural. |
| Performance Counter | Counter سخت افزاری برای ثبت Eventهایی مانند Cycle، Instruction، Cache Miss یا Branch Miss. |
| CPU Utilization | معیاری از میزان زمانی که Logical CPUها مشغول اجرای Work هستند؛ به تنهایی بیانگر Efficiency نیست. |
| Wall-Clock Time | زمان واقعی سپری شده از شروع تا پایان یک Task. |
| Variance | میزان پراکندگی نتایج Benchmark. |
| Mean | میانگین حسابی مجموعه نتایج. |
| Median | مقدار میانی مجموعه مرتب شده نتایج. |
| Thermal Soak | رسیدن سیستم به شرایط حرارتی نسبتاً پایدار در Load طولانی. |
| Cold Run | اجرای Benchmark زمانی که سیستم هنوز به شرایط حرارتی پایدار Load نرسیده است. |
| Benchmark Methodology | مجموعه شرایط، تنظیمات و روش اجرای آزمون که برای تکرارپذیری و تفسیر نتیجه ضروری است. |
فهرست سریع مخفف های مهم
| مخفف | عبارت کامل |
|---|---|
| CPU | Central Processing Unit |
| ISA | Instruction Set Architecture |
| ALU | Arithmetic Logic Unit |
| FPU | Floating-Point Unit |
| IPC | Instructions Per Cycle |
| CPI | Cycles Per Instruction |
| ILP | Instruction-Level Parallelism |
| MLP | Memory-Level Parallelism |
| SMT | Simultaneous Multithreading |
| SIMD | Single Instruction Multiple Data |
| ROB | Reorder Buffer |
| BTB | Branch Target Buffer |
| TLB | Translation Lookaside Buffer |
| LLC | Last-Level Cache |
| NUMA | Non-Uniform Memory Access |
| TDP | Thermal Design Power |
| DVFS | Dynamic Voltage and Frequency Scaling |
| PMU | Performance Monitoring Unit |
| RAS | Reliability, Availability, Serviceability |
| ECC | Error-Correcting Code |
| TEE | Trusted Execution Environment |
| SLAT | Second-Level Address Translation |
| EPT | Extended Page Tables |
| NPT | Nested Page Tables |
| SoC | System on Chip |
| IMC | Integrated Memory Controller |
دانستن اینکه ROB
مخفف Reorder Buffer است
به تنهایی ارزش زیادی ندارد.
مهم تر این است که بدانیم:
ROB
→
Out-of-Order Engine
→
In-Flight Operations
→
Ordered Retirement
→
Correct Architectural State
همین روش را می توان
برای هر اصطلاح دیگری
به کار برد.
Term
→
Location
→
Function
→
Interaction
→
Performance Impact
برای مثال
مشاهده Cache Miss بالا
به تنهایی
برای نتیجه گیری کافی نیست.
باید بررسی شود:
Cache Miss
+
Memory Latency
+
Memory-Level Parallelism
+
Out-of-Order Capacity
+
Workload
→
Actual Performance Impact
همین اصل
درباره Frequency،
IPC،
Core Count
و Temperature
نیز صدق می کند.
- ISA و Microarchitecture را مترادف ندانید.
- Instruction و Micro-op را یکی ندانید.
- Core و Thread را یکی ندانید.
- Logical Processor را Core فیزیکی فرض نکنید.
- Frequency را معادل Performance ندانید.
- IPC را عدد ثابت یک Processor تصور نکنید.
- Cache Size را معادل Cache Performance ندانید.
- Memory Latency و Bandwidth را یکی ندانید.
- TDP را مستقیماً معادل مصرف واقعی Processor ندانید.
- Boost Frequency را فرکانس دائمی تمام Coreها فرض نکنید.
- CPU Utilization را به تنهایی معیار Performance ندانید.
- Peak Performance و Sustained Performance را یکی ندانید.
- Benchmark Score را بدون Workload و Methodology مقایسه نکنید.
برای هر اصطلاح CPU این پنج سوال را بپرسید
- این مفهوم در کدام لایه قرار دارد؟Software، ISA، Front-End، Execution، Memory، Power یا Platform؟
- وظیفه آن چیست؟چه مشکلی را حل می کند؟
- با چه بخش هایی تعامل دارد؟
- اگر محدود شود چه Bottleneckی ایجاد می کند؟
- آیا اثر آن به Workload وابسته است؟
خلاصه تمام واژه نامه در یک مدل
SOFTWARE
↓
ISA
↓
FETCH
↓
BRANCH PREDICTION
↓
DECODE
↓
RENAME
↓
SCHEDULING
↓
OUT-OF-ORDER EXECUTION
↓
EXECUTION UNITS
↓
LOAD / STORE
↓
CACHE
↓
TLB / VIRTUAL MEMORY
↓
DRAM
↓
MULTI-CORE / SMT / SIMD
↓
POWER / THERMAL
↓
PERFORMANCE
جمع بندی واژه نامه
اصطلاحات CPU
زمانی ارزش واقعی پیدا می کنند
که رابطه میان آنها
درک شود.
Cache Miss
فقط یک اصطلاح Cache نیست؛
می تواند به Memory Latency،
Stall،
IPC
و در نهایت Performance
متصل شود.
Branch Misprediction
فقط یک خطای Prediction نیست؛
می تواند Speculative Work
را از بین ببرد،
Pipeline را Recover کند
و Throughput را کاهش دهد.
Frequency نیز
فقط عدد GHz نیست؛
به Voltage،
Power،
Temperature،
Cooling
و Workload وابسته است.
بنابراین واژه نامه را نه به عنوان فهرست کلمات،
بلکه به عنوان نقشه ای برای بازگشت سریع
به مفاهیم کل دانشنامه CPU استفاده کنید.
پایان مسیر CPU؛ از شناخت مشخصات تا تحلیل مهندسی
پایان دانشنامه CPU؛ حالا چگونه یک پردازنده را واقعاً تحلیل کنیم؟
در ابتدای این دانشنامه،
CPU ممکن بود مجموعه ای از اعداد
مانند Core،
Thread،
GHz،
Cache
و TDP
به نظر برسد.
اما اکنون می دانیم
هیچ کدام از این اعداد
به تنهایی
توضیح کاملی از یک Processor
ارائه نمی دهند.
CPU Understanding
≠
Reading Specifications
CPU Understanding
=
Architecture
+
Workload
+
Data Movement
+
Parallelism
+
Power
+
Thermal
+
Platform
+
Measurement
در این دانشنامه چه چیزی یاد گرفتیم؟
مسیر یادگیری از مفاهیم پایه شروع شد
و به تدریج
به معماری داخلی،
Performance،
Power،
Security،
Reliability
و تحلیل سیستم رسید.
| لایه | آنچه باید اکنون درک کنیم |
|---|---|
| Fundamentals | Instruction، Clock، Frequency، Core، Thread و مفاهیم پایه Processor |
| ISA | رابطه Software با معماری قابل مشاهده CPU |
| Microarchitecture | نحوه واقعی پیاده سازی و اجرای Instructionها |
| Front-End | Fetch، Decode، Branch Prediction و تامین عملیات برای Execution Engine |
| Execution | OoO، Register Renaming، Scheduler، Execution Unit و Retirement |
| Memory System | Cache، Locality، TLB، Memory Latency و Data Movement |
| Parallelism | ILP، SMT، SIMD، Multi-Core و محدودیت Scaling |
| Power & Thermal | رابطه Frequency، Voltage، Power، Temperature و Cooling |
| Platform | Package، Chiplet، Interconnect، Socket و محدودیت های سیستم |
| Security | Privilege، Virtualization، Speculation و Microarchitectural Security |
| Reliability | Error Detection، Aging، Manufacturing و Binning |
| Performance Analysis | Benchmark، PMU، Bottleneck Analysis و تفسیر Metricها |
مدل نهایی تحلیل یک CPU
از این پس وقتی با یک Processor جدید
روبرو می شوید،
به جای شروع از GHz
یا تعداد Core،
تحلیل را از Workload شروع کنید.
STEP 1
Define Workload
↓
STEP 2
Identify Threading Behavior
↓
STEP 3
Examine CPU Architecture
↓
STEP 4
Examine Memory Behavior
↓
STEP 5
Examine Power & Thermal Limits
↓
STEP 6
Examine Platform Configuration
↓
STEP 7
Use Relevant Benchmarks
↓
STEP 8
Identify Bottleneck
↓
STEP 9
Compare Price / Efficiency
↓
STEP 10
Make the Decision
مرحله اول: Workload را تعریف کنید
مهم ترین سوال این نیست:
«کدام CPU قوی تر است؟»
سوال بهتر این است:
کدام CPU برای Workload مورد نظر،
در سیستم مورد نظر،
Performance مناسب تری ارائه می دهد؟
Workload می تواند:
- Office،
- Programming،
- Compilation،
- Gaming،
- CAD،
- Simulation،
- Rendering،
- Video Encoding،
- Virtualization،
- Database،
- یا Server Workload
باشد.
مرحله دوم: رفتار Threading را بررسی کنید
مشخص کنید Workload
بیشتر به:
- Single-Thread Performance،
- Few Fast Cores،
- Many-Core Throughput،
- یا ترکیبی از آنها
نیاز دارد.
More Cores
≠
Automatically More Performance
اگر Software
نتواند Work را
میان Coreها تقسیم کند،
Core اضافی
ممکن است اثر کمی داشته باشد.
مرحله سوم: Architecture را بررسی کنید
اکنون می توان به مشخصات CPU
نگاه کرد،
اما نه فقط به اعداد تبلیغاتی.
موارد مهم:
- Microarchitecture Generation،
- Core Design،
- Front-End Capability،
- Execution Width و Resources،
- Branch Prediction،
- Cache Hierarchy،
- Vector Extensions،
- و ISA Features.
مرحله چهارم: Data Movement را فراموش نکنید
CPU فقط زمانی می تواند
محاسبه انجام دهد
که Data مورد نیاز
در زمان مناسب
در اختیار آن قرار گیرد.
Compute Capability
Without Data
=
Idle Resources
بنابراین بررسی کنید:
- Cache Capacity،
- Cache Behavior،
- Memory Latency،
- Memory Bandwidth،
- Memory Channels،
- و NUMA Behavior در سیستم های بزرگ.
مرحله پنجم: Power و Thermal را وارد تحلیل کنید
CPU روی میز آزمایش
بدون محدودیت Power و Cooling
وجود ندارد.
Performance واقعی
همیشه درون محدودیت های فیزیکی
سیستم اتفاق می افتد.
Architecture Capability
↓
Voltage / Frequency
↓
Power
↓
Heat
↓
Cooling
↓
Sustainable Performance
مرحله ششم: CPU را از Platform جدا نکنید
یک Processor یکسان
می تواند در دو سیستم
رفتار متفاوتی داشته باشد.
مخصوصاً در Laptop:
- Cooling Design،
- Power Limit،
- Firmware،
- RAM Configuration،
- Chassis،
- و Power Mode
می توانند نتیجه را تغییر دهند.
Same CPU Model
≠
Same System Performance
مرحله هفتم: Benchmark مرتبط انتخاب کنید
Benchmark باید
نماینده سوال شما باشد.
اگر هدف Gaming است،
Benchmark Rendering
به تنهایی پاسخ مناسبی نیست.
اگر هدف Compilation است،
امتیاز Synthetic Single-Core
به تنهایی کافی نیست.
Question
→
Workload
→
Benchmark
→
Result
نه:
Benchmark Score
→
Universal Conclusion
مرحله هشتم: Bottleneck را پیدا کنید
اگر Performance پایین است،
قبل از ارتقای CPU
مشخص کنید CPU
واقعاً Bottleneck است یا خیر.
Performance Problem
↓
Measure
↓
CPU?
/
GPU?
/
Memory?
/
Storage?
/
I/O?
↓
Identify Limiting Resource
↓
Optimize the Correct Component
مرحله نهم: Performance تنها معیار خرید نیست
برای انتخاب واقعی،
باید Performance
را کنار عوامل دیگر قرار داد.
| عامل | سوال |
|---|---|
| Performance | آیا برای Workload کافی است؟ |
| Price | هزینه این Performance چقدر است؟ |
| Efficiency | برای Performance مورد نظر چه مقدار Power لازم دارد؟ |
| Cooling | آیا سیستم قادر به حفظ Performance است؟ |
| Platform | هزینه و محدودیت کل سیستم چیست؟ |
| Upgrade Path | آیا Platform امکان توسعه آینده دارد؟ |
| Reliability | آیا سیستم برای Load و عمر مورد نظر مناسب است؟ |
مرحله دهم: بهترین CPU الزاماً سریع ترین CPU نیست
انتخاب مهندسی
معمولاً انتخاب سریع ترین گزینه نیست.
انتخاب بهتر
گزینه ای است
که محدودیت ها و نیازهای واقعی
را بهتر متعادل کند.
Best CPU
=
Required Performance
+
Appropriate Platform
+
Acceptable Power
+
Acceptable Cooling
+
Suitable Price
پنج سطح فهم CPU
| سطح | نوع نگاه | نمونه سوال |
|---|---|---|
| سطح 1 | Specification | چند Core و چند GHz دارد؟ |
| سطح 2 | Benchmark | در آزمون مورد نظر چقدر سریع است؟ |
| سطح 3 | Architecture | چرا این Performance را ارائه می دهد؟ |
| سطح 4 | System Analysis | چه چیزی Performance واقعی سیستم را محدود می کند؟ |
| سطح 5 | Engineering | کدام Trade-off باعث این رفتار شده است؟ |
سوال نهایی مهندسی
تقریباً تمام مطالب این دانشنامه
را می توان
در یک سوال خلاصه کرد:
چه چیزی باعث می شود این CPU،
این Workload مشخص را،
با این Performance،
در این Power،
روی این Platform
اجرا کند؟
برای پاسخ،
باید مسیر زیر را بررسی کرد:
Workload
↓
Software
↓
ISA
↓
Microarchitecture
↓
Front-End
↓
Execution
↓
Memory
↓
Parallelism
↓
Power
↓
Thermal
↓
Platform
↓
Real Performance
بعد از CPU چه چیزی یاد بگیریم؟
CPU فقط یکی از اجزای سیستم است.
برای درک کامل Performance کامپیوتر،
مسیر منطقی بعدی
مطالعه زیرسیستم های دیگر است.
CPU
↓
RAM & Memory System
↓
GPU
↓
Storage
↓
Motherboard & I/O
↓
Power Delivery
↓
Cooling
↓
Operating System
↓
Complete System Performance
در دانشنامه RAM
مفاهیمی مانند:
- DRAM Architecture،
- Channel،
- Rank،
- Bank،
- Timing،
- CAS Latency،
- Memory Frequency،
- Bandwidth،
- ECC،
- و Memory Configuration
باید با جزئیات بررسی شوند.
در دانشنامه GPU نیز
مسیر مستقلی برای:
- Graphics Pipeline،
- Shader Architecture،
- SIMT،
- VRAM،
- Rasterization،
- Ray Tracing،
- Compute،
- CUDA و APIها،
- و GPU Performance
لازم است.
این مفاهیم
عمداً وارد دانشنامه CPU نشدند
تا مرز موضوعی هر دانشنامه
حفظ شود.
زیرساخت فنی — Performance واقعی محصول یک زنجیره است
فرض کنید دو Laptop
دقیقاً یک مدل CPU
داشته باشند.
Laptop اول:
- Cooling قوی تر دارد،
- Power Limit بالاتری دارد،
- Memory Configuration مناسبی دارد،
- Firmware اجازه Boost طولانی تری می دهد.
Laptop دوم:
- Chassis باریک تر دارد،
- Cooling محدودتر است،
- Power Budget پایین تری دارد،
- و زودتر به Thermal Limit می رسد.
نتیجه ممکن است:
Same CPU Name
≠
Same Sustained Performance
بنابراین در بررسی سیستم واقعی
باید از نام CPU عبور کنیم
و رفتار کل Platform
را بررسی کنیم.
بعد از مطالعه یک دانشنامه بزرگ،
ممکن است صدها اصطلاح
در ذهن باقی بماند.
اما مهارت اصلی
حفظ اصطلاحات نیست.
مهارت اصلی این است که بدانیم:
Observation
→
Mechanism
→
Bottleneck
→
Cause
→
Solution
برای مثال:
Performance Drops
+
Temperature Rises
+
Frequency Falls
↓
Investigate Thermal / Power Limits
این نوع تفکر
از حفظ کردن مشخصات
بسیار ارزشمندتر است.
Performance سیستم
معمولاً توسط بخشی محدود می شود
که در Workload مورد نظر
قادر به تامین نیاز سایر بخش ها نیست.
Fast CPU
+
Slow Data Supply
=
CPU Waiting
Many Cores
+
Serial Software
=
Low Scaling
High Boost Clock
+
Weak Cooling
=
Low Sustained Performance
Large Cache
+
Poor Locality
=
Limited Benefit
بنابراین Optimization
باید روی Bottleneck واقعی
متمرکز شود،
نه روی عددی که روی کاغذ
بزرگ تر به نظر می رسد.
- مقایسه CPU فقط با GHz.
- مقایسه CPU فقط با تعداد Core.
- فرض اینکه نسل جدید همیشه در همه Workloadها سریع تر است.
- فرض اینکه Core بیشتر همیشه بهتر است.
- فرض اینکه Cache بیشتر همیشه Performance بیشتری ایجاد می کند.
- یکی دانستن Core و Thread.
- یکی دانستن ISA و Microarchitecture.
- یکی دانستن TDP و مصرف واقعی.
- یکی دانستن Peak Frequency و Sustained Frequency.
- نادیده گرفتن Memory Behavior.
- نادیده گرفتن Software Optimization.
- نادیده گرفتن Cooling.
- نادیده گرفتن Power Limit.
- نادیده گرفتن Platform.
- نتیجه گیری از یک Benchmark.
- مقایسه Benchmarkهایی با شرایط آزمایش متفاوت.
- ارتقای CPU بدون تشخیص Bottleneck.
- فرض اینکه CPU سریع تر همیشه سیستم سریع تری ایجاد می کند.
- انتخاب CPU بدون توجه به Workload.
- تلاش برای توضیح Performance پیچیده با یک عدد.
چک لیست نهایی بررسی هر CPU
- Workload من چیست؟
- Workload بیشتر Single-Thread است یا Multi-Thread؟
- CPU متعلق به چه Architecture و Generationی است؟
- چند Core و Hardware Thread دارد؟
- رفتار Frequency آن در Load واقعی چگونه است؟
- Cache Hierarchy آن چگونه است؟
- Memory System مورد استفاده چه محدودیت هایی دارد؟
- چه ISA Extensionهایی برای Workload من مهم هستند؟
- Power Limit واقعی سیستم چیست؟
- Cooling قادر به حفظ Performance هست؟
- Benchmark مرتبط با Workload چه می گوید؟
- Performance پایدار است یا فقط Burst کوتاه؟
- Bottleneck واقعی سیستم کجاست؟
- آیا CPU سریع تر واقعاً مشکل را حل می کند؟
- Performance به ازای هزینه مناسب است؟
- آیا Platform برای نیاز فعلی و آینده مناسب است؟
اگر فقط یک مفهوم از کل دانشنامه باقی بماند
CPU یک عدد نیست.
CPU یک سیستم پویاست
که Software،
Data،
Architecture،
Power
و محدودیت های فیزیکی
به طور همزمان
رفتار آن را تعیین می کنند.
Real CPU Performance
=
Workload
×
Architecture
×
Data Availability
×
Parallelism
×
Power / Thermal Headroom
×
Platform Efficiency
این رابطه یک Equation ریاضی دقیق نیست؛
بلکه مدل ذهنی مناسبی
برای تحلیل Performance است.
اگر یکی از این عوامل
به Bottleneck تبدیل شود،
افزایش Resourceهای دیگر
ممکن است اثر کمی داشته باشد.
پایان دانشنامه جامع پردازنده
هدف این دانشنامه
معرفی چند مدل CPU
یا ارائه فهرستی از مشخصات
نبود.
هدف ساختن یک مدل ذهنی بود
که با آن بتوان
پردازنده های قدیمی،
فعلی
و حتی نسل های آینده
را تحلیل کرد.
نام Coreها تغییر می کند.
نسل ها تغییر می کنند.
Process Nodeها تغییر می کنند.
Cacheها بزرگ تر می شوند.
Microarchitectureها پیچیده تر می شوند.
اما سوال های بنیادی
تقریباً ثابت می مانند:
Where is the work?
Where is the data?
What can run in parallel?
What is waiting?
What is the bottleneck?
What limits power?
What limits temperature?
What does the workload actually need?
اگر بتوانیم به این سوال ها پاسخ دهیم،
دیگر فقط مشخصات CPU را نمی خوانیم؛
رفتار آن را تحلیل می کنیم.
