Payamvdn/NorthPersian_fa_wiki huggingface dataset:
ر تولید و بازار کار منجر به رکود تورمی بلندمدت شده و از طرف دیگر، رشد بیش از حد عرضهٔ پولی نیز موجب تورم بلندمدت می شود. دیدگاه های دیگر. انباشت تفاضلی. اقتصاددان های سیاسی نظیر جاناتان نیتزان و شیمشان بیچلر، توصیف رکود تورمی را به عنوان بخشی از یک تئوری، به نام انباشت تفاضلی مطرح کرده اند. در تئوری انباشت تفاضلی، شرکت ها به جای اینکه به دنبال افزایش حداکثر سودمندی و سرمایه گذاری باشند، بیشتر در پی بالا بردن این دو مقوله (سودمندی و سرمایه گذاری) نسبت به حد متوسط هستند. بر طبق این تئوری، دوره های ادغام و تملک با دوره های رکود تورمی نوسان پیدا می کنند. زمانی که ادغام و تملک از لحاظ سیاسی دیگر امکان پذیر و عملی نباشند (دولت ها بوسیلهٔ قوانین ضد انحصاری محدود می شوند)، به جای رقابت از رکود تورمی به عنوان یک راه حل جایگزین برای رسیدن به سودمندی نسبی بیشتر استفاده می شود. با افزایش ادغام و تملک، توان و قدرت برای اجرای رکود تورمی نیز افزایش پیدا می کند. رکود تورمی به عنوان یک بحران اجتماعی، نظیر دورهٔ بحران نفت در دههٔ ۷۰ و سال های ۲۰۰۷ تا ۲۰۱۰، ظاهر می شود. با این حال تورم در رکود تورمی، تأثیر یکسانی به روی همهٔ شر
کت ها ندارد. شرکت های غالب می توانند قیمت های خود را با سرعت بیشتری نسبت به شرکت های رقیب، افزایش دهند. با اینکه در ظاهر هیچ شرکتی از رکود تورمی منفعت نمی گیرد، اما شرکت های برجستهٔ غالب، موقعیت خود را به همراه سودمندی و سرمایه گذاری نسبی بیشتر، بهبود بخشیده و ارتقاء می دهند. رکود تورمی هیچ ربطی به شوک عرضهٔ واقعی ندارد، بلکه به سبب بحران های اجتماعی به وجود می آید که به بحران عرضه اشاره می کنند. رکود تورمی تقریباً یک پدیدهٔ متعلق به قرن بیستم و بیست و یکم است که عمدتاً توسط ائتلاف سلاح دلار – نفت دلار مورد استفاده قرار می گیرد که با ایجاد یا سوء استفاده از بحران های خاورمیانه، به منافع پولی دست پیدا می کند. تئوری رکود تورمی ناشی از فشار تقاضا. در تئوری رکود تورمی ناشی از فشار تقاضا، این ایده مطرح است مه رکود تورمی می تواند به طور صریح، نتیجهٔ شوک های پولی باشد، بدون اینکه شوک های عرضهٔ هم زمان یا تغییرات منفی در پتانسیل بازدهٔ اقتصادی در نظر گرفته شوند. تئوری ناشی از فشار تقاضا سناریویی را توصیف می کند که در آن، رکود تورمی می تواند به دنبال دوره ای از اجرای سیاست پولی (که موجب تورم می شود) اتفاق بیفتد. این ت
ئوری نخستین بار در سال ۱۹۹۹ توسط ادواردو لویو در مدرسهٔ دولتی جان اف کندی متعلق به دانشگاه هاروارد مطرح شده است. تئوری جانب عرضه. اقتصاد جانب عرضه یا طرفدار عرضه، به عنوان پاسخی در برابر رکود تورمی ایالات متحدهد در دههٔ ۷۰ مطرح شده است. این تئوری تا حد زیادی تورم را به توقف سیستم بریتون وودز در سال ۱۹۷۱ و عدم وجود یک مرجع قیمت گذاری خاص در سیاست های پولی بعدی، مرتبط می داند (کینزی و پولگرایی). اقتصاد دان های جانب عرضه مدعی هستند که رکود تورمی، نتیجهٔ تورم ناشی از افزایش نرخ مالیت های واقعی است. دانشکدهٔ اقتصاد اتریش. طرفداران دانشکدهٔ اتریش بر این باور هستند که با ایجاد پول جدید، سازندگان و گیرندگان قدیمی می توانند سود و منفعت بیشتری نسبت به گیرندگان جدید دریافت کنند. ایجاد پول، به معنی ایجاد ثروت نیست، بلکه صرفاً به گیرندگان پول قدیمی اجازه می دهد تا منابع، کالاها و سرویس ها را در ازای قیمت و بهای بیشتری در اختیار گیرندگان جدید قرار دهند. از آنجا که تولیدکننده های واقعیِ ثروت معمولاً گیرندگان جدید هستند، افزایش عرضهٔ پولی موجب تضعیف ایجاد ثروت شده و نرخ رشد اقتصادی را کاهش می دهد. اقتصاد دان اتریشی به نام فر
انک شوستاک در این باره گفته است: افزایش نرخ رشد عرضهٔ پولی به همراه کُند شدن نرخ رشد کالاهای تولید شده، به معنی افزایش نرخ تورم قیمت است. (به خاطر داشته باشید که قیمت، همان پولی است که برای یک واحد کالا پرداخت می شود). با این حال موضوع مطرح در اینجا، افزایش بسیار سریع تورم قیمت و کاهش نرخ رشد در تولید است. این امر در واقع به معنی رکود تورمی است، یعنی افزایش در تورم قیمت و کاهش در رشد اقتصادی واقعی. در باور عمومی، رکود تورمی کاملاً ساختگی است؛ بنابراین به نظر می رسد که پدیدهٔ رکود تورمی، یک نتیجهٔ عادی از سیاست پولی ضعیف و نادرست است. این موضوع، سازگار با نظریهٔ فلپس و فریدمن (PF) است. با این حال بر خلاف نظریهٔ PF، ما بر این باور هستیم که رکود تورمی نمی تواند ناشی از این واقعیت باشد که در کوتاه مدت، مردم فریب بانک مرکزی را خورده اند. رکود تورمی یک نتیجهٔ طبیعی از پمپاژ پولی (استخراج بی رویهٔ پول) است که موجب کاهش رشد اقتصادی شده و در عین حال، نرخ افزایش قیمت کالاها و خدمات را بیشتر کرده است. جین جیکوبز و تأثیر شهرها به روی رکود تورمی. در سال ۱۹۸۴، فعال و روزنامه نگاری به نام جین جیکوبز، مطرح کرده است که دلیل ش
کست عمدهٔ تئوری های اقتصاد کلان در توصیف رکود تورمی، تمرکز آن ها به روی کشور به جای شهرها، به عنوان یک واحد برجسته برای تحلیل اقتصادی بوده است. وی اظهار داشته است که کلید اجتناب از رکود تورمی برای یک کشور، تمرکز به روی توسعهٔ شهرهایی است که می توانند محصولات جایگزین برای واردات را تولید کنند (شهرهای جایگزین واردات)، چرا که این شهرها باعث می شوند تا اقتصاد در زمان های مختلف موجب تقویت و تضعیف شده و به طور کلی، پایداری و ثبات کشور را فراهم می آورند و از رکود تورمی سراسری جلوگیری می کنند. بر طبق اظهارات جیکوبز، شهرهای جایگزین واردات در واقع شهرهایی هستند که با به وجود آوردن توازن بین تولید محصولات خود و واردات عظیم، موجب توسعهٔ اقتصاد شوند، یعنی این شهرها می توانند با انعطاف پذیری زیادی، پاسخگوی تغییر در چرخه های اقتصادی عرضه و تقاضا در طول زمان باشند. با اینکه اظهارات جیکوبز مورد تعریف و تمجید قرار گرفت، اما دانشمندان و محققان برنامه ریزی شهری به انتقاد از جیکوبز پرداخته و وی را سرزنش کرده اند که نباید ایده های خود را با ایده های نظریه پردازان بزرگ (نظیر آدام اسمیث و کارل مارکس) مقایسه کند، مخصوصاً زمانی که اسن
اد تحقیقی و پژوهشی مناسبی را در اختیار ندارد. علی رغم این اشکالات و مسائل، باز هم پژوهش جیکوبز در سطح وسیعی توسط عموم خوانده شده و به روی تصمیم گیرنده های بسیاری تأثیر گذاشته است. واکنش ها. رکود تورمی، حمایت و پشتیبانی از توافق کینزی را تضعیف می کند. رئیس فدرال رزرو، پاول ولکر از سال های ۱۹۷۹ تا ۱۹۸۳، به طور هوشمندانه ای نرخ های بهره را در سناریویی به نام سناریوی غیر تورمی افزایش داد. پس از اینکه نرخ های بهرهٔ اولیهٔ ایالات متحده به یک عدد دو رقمی افزایش پیدا کرد، تورم نیز کمتر شد. این نرخ های بهره، بالاترین نرخ های بهرهٔ اولیه در طولانی مدت بوده اند که تاکنون در بازارهای سرمایهٔ مدرن وجود داشته است. ولکر اغلب به عنوان شخصیتی یاد می شود که حداقل باعث توقف تورم در رکود تورمی شده است، هر چند که اقتصاد آمریکا در رکود غوطه ور بوده است. تقریباً از سال ۱۹۸۳، رشد (اقتصاد) شروع به بهبود و بازیابی کرد. هم محرک مالی و هم رشد عرضهٔ پولی در این زمان، به عنوان خط مشی عمل کرده اند. وجود جهش پنج – شش ساله در بیکاری در طول سناریوی غیر تورمی ولکر نشان می دهد که ولکر، از قابلیت خود اصلاحیِ بیکاری اطمینان داشته و بر این باور بو
ده است که بیکاری در یک دورهٔ معقولانه، به نرخ عادی خود بازمی گردد.
در علوم رایانه، یک معماری مجموعهٔ دستورالعمل ، نوعی مدل انتزاعی از یک رایانه است که به آن معماری یا معماری رایانه نیز می گویند. نمود یک آی اس ای، مثلاً یک واحد پردازش مرکزی، پیاده سازی نام دارد. به طور کلی یک آی اس ای، بیانگر انواع دادهٔ مورد پشتیبانی، رجیسترها، پشتیبانی سخت افزاری برای مدیریت حافظه اصلی، ویژگی های اساسی (همچون پایداری حافظه، حالت های آدرس دهی، حافظهٔ مجازی) و مدل ورودی/خروجی خانواده ای از پیاده سازی های آی اس ای مورد نظر است. یک آی اس ای، رفتار کد ماشین را که روی پیاده سازی های آن آی اس ای اجرا می شود، مشخص می کند؛ به گونه ای که وابستگی به مشخصات آن پیاده سازی نداشته باشد و بدین طریق موجب سازگاری باینری بین پیاده سازی ها می شود. این امر امکان پیاده سازی های متعدد از یک آی اس ای که از لحاظ عملکرد، اندازه فیزیکی و قیمت تفاوت دارند ولی می توانند کد ماشین یکسانی را اجرا کنند، فراهم می آورد، به گونه ای که می توان یک ماشین با عملکرد پایین و قیمت پایین را با یک ماشین با قیمت بالاتر و عملکرد بالاتر، بدون نیاز به تعویض نرم افزار جایگزین کرد. همچنین، این قابلیت باعث تکامل ریزمعماری های پیاده سازی های
این آی اس ای می شود؛ به نحوی که، یک پیاده سازی جدیدتر با کارایی بالاتر از یک آی اس ای، بتواند نرم افزاری را اجرا کند که روی نسل های پیشین پیاده سازی کار می کند. اگر یک سیستم عامل، یک واسط دودویی کاربردی استاندارد و سازگار را برای یک آی اس ای خاص حفظ کند، آنگاه کد ماشین برای آن آی اس ای و سیستم عامل، روی پیاده سازی های بعدی آن در آینده و نسخه های جدیدتر آن سیستم عامل نیز اجرا خواهد شد. با این وجود، اگر یک آی اس ای، اجرای چندین سیستم عامل را پشتیبانی کند، این تضمین وجود ندارد که کد ماشین برای یک سیستم عامل، روی سیستم عامل دیگر اجرا شود، مگر اینکه سیستم عامل اول از اجرای کد ماشین ساخته شده برای سیستم عامل دیگر پشتیبانی کند. یک آی اس ای را می توان با اضافه کردن دستورالعمل ها یا سایر قابلیت ها یا اضافه کردن پشتیبانی برای آدرس ها و مقادیر دادهٔ بزرگتر، بسط داد. در این حالت یک پیاده سازی از آی اس ای های بسط یافته را کماکان می توان برای اجرای کد ماشین برای نسخه هایی از همان آی اس ای بدون بسط های ذکر شده، استفاده کرد. کدهای ماشینی که از این بسط ها استفاده می کنند، فقط روی پیاده سازی هایی اجرا می شوند که از این بسط ها
پشتیبانی کنند. این قابلیت های فراهم کردن سازگاری باینری، باعث شده است که آی اس ای ها، یکی از اساسی ترین فرم های انتزاعی در رایانش باشند. مرور. معماریِ مجموعه دستورالعمل را باید از ریزمعماری افتراق داد. ریزمعماری، مجموعه ای از تکنیک های طراحی پردازنده است که در یک پردازنده خاص برای پیاده سازی مجموعهٔ دستورالعمل استفاده می شود. پردازنده هایی با ریزمعماری های متفاوت می توانند یک مجموعه دستورالعمل مشترک داشته باشند. برای مثال، اینتل پنتیوم و Advanced Micro Devices Athlon تقریباً نسخه های مشابهی از مجموعه دستورالعمل x86 را پیاده سازی می کنند، اما دارای طراحی داخلی کاملاً متفاوتی هستند. طبقه بندی آی اس ای. یک آی اس ای را می توان به شیوه های مختلفی طبقه بندی کرد. یک روش طبقه بندی معمول بر مبنای پیچیدگی معماری است. یک "رایانه با مجموعه دستورالعمل پیچیده" (complex instruction set computer) دارای دستورالعمل های اختصاصی بسیاری است، که برخی از آن ها ممکن است به ندرت در برنامه های عملی استفاده شوند. یک "رایانه با مجموعه دستورالعمل کاهش یافته" (reduced instruction set computer)، با پیاده سازی کارامد صرف دستورالعمل هایی که
به طور مکرر در برنامه ها استفاده می شوند، پردازنده را ساده می کند، در عین حال، عملیات کمتر رایج، از طریق ساب روتین ها پیاده سازی می شوند، که در نتیجه، افزایش زمان اجرای پردازنده، با استفاده خیلی کم از این عملیات جبران می شود. سایر انواع آی اس ای، عبارتند از: معماری های "کلمه دستورالعمل بسیار بلند" (very long instruction word) و معماری های بسیار مشابه آن نظیر، "کلمه دستورالعمل بلند" (long instruction word) و "معماری های دستورالعمل واضحاً موازی"(explicitly parallel instruction computing). هدف از این معماری ها بهره گیری از موازی گرایی سطح-دستورالعمل با استفاده از سخت افزار کمتر در مقایسه با RISC و CISC است. این معماری ها برای دستیابی به این هدف، کامپایلر را مسئول مشکلات دستورالعمل و زمان بندی می کنند. معماری هایی با پیچیدگی های حتی کمتر مورد مطالعه قرار گرفته اند، نظیر: "رایانه با مجموعه دستورالعمل حداقلی" (minimal instruction set computer) و "رایانه با یک مجموعه دستورالعمل" (one instruction set computer). این موارد از لحاظ تئوری اهمیت دارند اما استفاده تجاری نداشته اند. دستورالعمل ها. زبان ماشین از عبارت ها یا
دستورالعمل های گسسته تشکیل شده است. در معماری پردازش، یک دستورالعمل ممکن است حاوی: با ترکیب کردن این دستورالعمل های ساده، که به طور متوالی اجرا می شوند، یا هدایت توسط دستورالعملهای جریان کنترل، عملیات پیچیده تری تولید می شوند. انواع دستورالعمل. مثال هایی از عملیاتی که در بسیاری از مجموعه های دستورالعمل مرسوم هستند عبارتند از: دستورالعمل های پیچیده. پردازنده ها ممکن است در مجموعهٔ دستورالعمل خود دارای دستورالعمل های پیچیده ای باشند. یک دستورالعمل پیچیده ممکن است کاری را انجام دهد که نیاز به دستورالعمل های متعددی روی سایر رایانه ها است. مشخصه چنین دستورالعمل هایی این است که حاوی مراحل متعددی هستند، واحدهای عملکردی متعددی را کنترل می کنند، یا اینکه در مقایسه با حجم دستورالعمل های ساده ای که توسط پردازندهٔ مورد نظر پیاده سازی می شوند، مقیاس بزرگ تری دارند. برخی مثالهای دستورالعمل های پیچیده عبارتند از: انتقال چندین رجیستر به حافظه یا از حافظه (مخصوصاً پشته) به صورت یکجا. انتقال بلاک های بزرگ از حافظه (مثلاً، کپی کردن رشته یا انتقال از طریق دسترسی مستقیم به حافظه) محاسبات پیچیده روی اعداد صحیح یا اعداد اعشاری (جذر
یا توابع متعالی نظیر: لگاریتم، سینوس، کسینوس، و …) دستورالعمل های نوع یک-دستورالعمل-چندین-داده(Single instruction, multiple data): یک دستورالعمل یک عملیات را روی مقادیر همگن بسیاری، به صورت موازی، و معمولاً در رجیسترهای اختصاصی SIMD انجام می دهد. انجام یک دستورالعمل اتمیک «تست و ست» یا سایر دستورالعمل های اتمیک خواندن-تغییر-نوشتن. دستورالعمل هایی که عملیاتی را در ALU با یک عملوند از حافظه و نه از یک رجیستر انجام می دهند. دستورالعمل های پیچیده، در مجموعه های دستورالعمل CISC، در مقایسه با مجموعه های دستورالعمل RISC، بیشتر هستند، اما مجموعه های دستورالعمل RISC نیز ممکن است حاوی آنها باشند. مجموعه های دستورالعمل RISC، به طور کلی، حاوی عملیات ALU با عملگرهای حافظه یا دستورالعمل هایی برای انتقال بلوک های بزرگ از حافظه نیستند، با این حال، اکثر مجموعه دستورالعمل های RISC، حاوی دستورالعمل های SIMD یا برداری هستند که عملیات محاسباتی مشابهی را روی قطعات متعددی از داده به صورت همزمان انجام می دهند. دستورالعمل های SIMD، این قابلیت را دارند که بردارهای بزرگ و ماتریس ها را در حداقل زمان دستکاری کنند. دستورالعمل های SIMD، ق
ابلیت موازی سازی آسان را برای الگوریتم هایی که به طور معمول در پردازش صدا، تصویر، و ویدئو یافت می شوند، فراهم می کنند. پیاده سازی های متنوعی از SIMD تحت عناوین تجاری مثلاً MMX، 3DNow! و AltiVec وارد بازار شده اند. کدگذاری دستورالعمل. در معماری های قدیمی، یک دستورالعمل حاوی یک آپ کد است که عملیاتی را که باید انجام گیرد، مثلاً اضافه کردن محتویات حافظه به رجیستر مشخص می کند- و همچنین حاوی چند مشخص کنندهٔ عملوندی است که ممکن است رجیسترها، مکان های حافظه، یا دادهٔ لیترال را مشخص کنند؛ البته ممکن است این مشخص کننده های عملوندی وجود نداشته باشند. این مشخص کننده های عملوند ممکن است دارای حالت های آدرس دهی باشند که معنی آنها را مشخص می کند، یا اینکه در فضاهای ثابت باشند. در معماری های کلمه دستورالعمل بسیار بلند (very long instruction word) که حاوی معماری های ریز کد بسیاری هستند چندین آپ کد و عملوند به طور همزمان در یک دستورالعمل مشخص می شوند. برخی مجموعه های دستورالعمل نامعمول، فاقد فضای آپ کد هستند؛ مثلاً در transport triggered architectures، فقط عملوند/عملوندها وجود دارد. ماشین مجازی Forth و سایر مجموعه های دستورالع
مل "بدون عملوند"، فاقد فضا برای مشخص کنندهٔ عملوند هستند؛ نظیر برخی ماشین های پشته از جمله NOSC. دستورالعمل های شرطی معمولاً دارای یک فضا برای گزاره هستند- گذاره درواقع، چند بیت کوتاه است که شرایط خاصی را کد گذاری می کند، که موجب می شود یک عملیات انجام شود و نه اینکه انجام نشود. برای مثال، یک دستورالعمل انشعاب شرطی، در صورتیکه شرایط مورد نظر صحیح شود، کنترل را منتقل می کند به گونه ای که روند اجرا به بخش متفاوتی از برنامه برود و اگر شرایط غلط باشد کنترل را منتقل نمی کند و روند اجرا به شکل متوالی ادامه پیدا می کند. همچنین، برخی مجموعه های دستورالعمل دارای حرکت های شرطی هستند، به گونه ای که اگر شرایط صادق باشد این حرکت اجرا خواهد شد و داده مذکور در مکان مورد نظر ذخیره خواهد شد و اگر شرایط مورد نظر صادق نباشد، اجرا نخواهد شد و مکان مورد نظر نیز تغییر پیدا نخواهد کرد. معماری IBM z/Architecture دارای یک دستورالعمل ذخیره سازی شرطی مشابهی است. برخی دستورالعمل های معدود حاوی یک فضای گزاره (predicate) در هر دستورالعمل هستند، که گزارهٔ انشعابی نام دارد. تعداد عملوندها. مجموعه های دستورالعمل ممکن است بر مبنای حداکثر تعدا
د عملوندهایی که به طور آشکار در دستورالعمل ها مشخص می شوند طبقه بندی شوند. C = A+B عملیات codice_5 نیازمند "چهار دستورالعمل" است. عملیات codice_5 نیازمند "یک دستورالعمل" است. codice_25; codice_26; به دلیل تعداد زیاد بیت های مورد نیاز برای کدگذاری سه رجیستر یک دستورالعمل سه-عملوندی، معماری های RISC که دارای دستورالعمل های ۱۶ بیتی هستند، تماماً دارای طراحی های دو-عملوندی هستند، نظیر: Atmel AVR, TI MSP43 و برخی نسخه های ARM Thumb. معماری های RISC که دارای دستورالعمل های ۳۲ بیتی هستند، معمولاً دارای طراحی های سه-عملوندی هستند، نظیر: ARM, AVR32, MIPS, Power آی اس ای و معماری های SPARC. هر دستورالعمل تعدادی عملوند (رجیسترها، مکان های حافظه، یا مقادیر فوری) را "به طور آشکار" مشخص می کند. برخی دستورالعمل ها یک یا بیش از یک عملوند را به طور ضمنی فراهم می کنند، مثلاً از طریق ذخیره شدن در بالای یک پشته، یا در یک رجیستر غیر مستقیم. در حالتی که برخی از عملوندها به طور ضمنی داده می شوند، به عملوندهای کمتری در دستورالعمل نیاز هست. هنگامی که یک "عملوند مقصد" به طور آشکار مقصد را مشخص می کند، باید عملوند دیگری نیز فراهم شود.
در نتیجه تعداد عملوندهای کدگذاری شده در یک دستورالعمل، ممکن است با تعداد آرگومان های مورد نیاز از نظر ریاضی برای یک عملیات منطقی یا محاسباتی (arity) تفاوت داشته باشد. عملوندها یا در نمایش "آپ کد" دستورالعمل، کدگذاری می شوند یا اینکه به صورت مقادیر یا آدرس، به دنبال آپ کد می آیند. فشار رجیستر. فشار رجیستر نمایانگر تعداد رجیسترهای آزاد در هر زمان از اجرای برنامه است. فشار رجیستر، زمانی که تعداد زیادی از رجیسترهای موجود در حال استفاده هستند بالاست؛ بنابراین هر قدر فشار رجیستر بالاتر باشد، به تعداد دفعات بیشتری لازم است تا محتویات رجیستر به داخل حافظه سرریز شود. افزایش تعداد رجیسترها در یک معماری موجب کاهش فشار رجیستر می شود، اما هزینه را افزایش می دهد. در حالی که مجموعه های دستورالعمل نهفته نظیر Thumb از فشار بسیار بالای رجیستر به دلیل تعداد کم مجموعه رجیستر رنج می برند، اما معماری های مجموعه دستورالعمل RISC عمومی نظیر MIPS و Alpha دارای فشار رجیستر پایینی هستند. معماری های مجموعه های دستورالعمل CISC، همچون x86-64، علی رغم داشتن مجموعه رجیستر کوچکتر دارای فشار رجیستر کمتری هستند. دلیل این امر وجود تعداد زیادی حا
لت های آدرس دهی و بهینه سازی (نظیر آدرس دهی تحت رجیستر، عملوندهای حافظه در دستورالعمل های ALU، آدرس دهی مستقیم، آدرس دهی مرتبط با شمارنده برنامه و سرریزهای رجیستر-به-رجیستر) است که توسط معماری های مجموعه دستورالعمل CISC ارائه می شوند. طول دستورالعمل. اندازه یا طول یک دستورالعمل می تواند بسیار متفاوت باشد؛ از یک مقدار چهار بیتی در برخی میکروکنترلرها تا چند صد بیت در برخی سیستم های VLIW. پردازنده های مورد استفاده در رایانه های شخصی، رایانه های بزرگ و ابر رایانه ها، دارای اندازه دستورالعمل بین ۸ و ۶۴ بیت هستند. حداکثر اندازه ممکن برای دستورالعمل در x86 برابر با ۱۵ بایت (۱۲۰ بیت) است. Within an instruction set, different instructions may have different در داخل یک مجموعه دستورالعمل، دستورالعمل های مختلف، ممکن است طول متفاوت داشته باشند. در برخی معماری ها، نظیر اکثر RISCها، دستورالعمل ها دارای طول ثابتی هستند که معمولاً مطابق با اندازهٔ کلمه آن معماری می باشند. در معماری های دیگر، دستورالعمل ها دارای طول متغیر هستند، که معمولاً مضرب های صحیح از یک بایت یا یک نیم کلمه هستند. برخی معماری ها نظیر ARM با Thumb-extensio
n، دارای کدگذاری متغیر ترکیبی است که دو کدگذاری ثابت، معمولاً ۳۲ بیت و ۱۶ بیت است، که در آن، دستورالعمل ها را نمی توان به شکل آزادانه با هم ترکیب کرد، و باید در یک انشعاب (یا محدوده استثنا در ARMv8)، بین آنها تعویض انجام شود. یک مجموعه دستورالعمل RISC، معمولاً دارای طول دستورالعمل ثابتی است (معمولاً چهار بایت که معادل ۳۲ بیت است)، در حالیکه مجموعه دستورالعمل CISC ممکن است دارای دستورالعمل هایی با طول بسیار متغیر باشند(۱ تا ۱۵ بایت برای x86). مدیریت دستورالعمل های دارای طول ثابت در مقایسه با دستورالعمل های با طول متغیر، به دلایل مختلفی پیچیدگی کمتری دارد (برای مثال، لازم نیست که چک کنیم که آیا یک دستورالعمل از یک خط حافظه پنهان یا محدودهٔ صفحه حافظه مجازی عبور کرده است یا خیر)، و بنابراین برای بهینه سازی، تا حدودی سرعت آسان تر هستند. تراکم کد. در رایانه های قدیمی حافظه گران قیمت بود؛ بنابراین به حداقل رساندن اندازهٔ برنامه، معمولاً اهمیت زیادی داشت تا بتوان آن را در حافظهٔ محدود جا داد؛ لذا سایز ترکیبی تمام دستورالعمل های لازم برای انجام یک کار خاص، یا همان تراکم کد، مشخصهٔ مهمی برای هر مجموعه دستورالعمل بود.
رایانه های دارای تراکم کد بالا، معمولاً دارای دستورالعمل های پیچیده برای ورودی رویه، بازگشت های پارامتر شده، حلقه ها، و … بودند (بنابراین، به صورت عطف به ماسبق، CISC نامیده می شدند). با این حال، دستورالعمل های معمول تر یا پرکاربرد CISC، صرفاً یک عملیات پایه ای ALU، نظیر جمع کردن، را با دسترسی به یک یا بیش از یک عملوند در حافظه (با استفاده از حالت های آدرس دهی مختلف همچون، مستقیم و غیر مستقیم، اندکسی و …) ترکیب می کنند. معماری های خاصی ممکن است اجازه دو یا سه عملوند (ازجمله حاصل) را به طور مستقیم در حافظه بدهند یا ممکن است قادر باشند اعمالی همچون افزایش خودکار اشاره گر و … را انجام دهند مجموعه دستورالعمل های که توسط نرم افزار پیاده سازی می شوند، ممکن است حتی، دستورالعمل های پیچیده تر و قدرتمند تری داشته باشند. رایانه های با مجموعه دستورالعمل کاهش یافته، RISC، برای اولین بار، به طور گسترده در زمان رشد سریع زیر سیستم های حافظه پیاده سازی شدند. آنها تراکم کد را قربانی می کنند تا مدار پیاده سازی را ساده کنند و سعی می کنند عملکرد را از طریق فرکانسهای بالاتر ساعت و رجیسترهای بیشتر افزایش دهند. یک دستورالعمل RISC، به
طور معمول فقط یک عملیات انجام می دهد، نظیر «جمع» کردن رجیسترها یا «بارگذاری» از یک مکان حافظه به داخل یک رجیستر. یک مجموعه دستورالعمل RISC، به طور معمول، دارای طول دستورالعمل ثابت است، در حالی که یک مجموعه دستورالعمل معمول CISC، دارای دستورالعمل هایی با طول بسیار متغیر است. با این حال، از آنجایی که رایانه های RISC، به طور معمول، نیازمند دستورالعملهای بیشتر و معمولاً طولانی تر برای پیاده سازی یک کار خاص هستند، لذا به طور ذاتی استفاده بهینه کمتری از پهنای باند گذرگاه و حافظه های نهان می کنند. برخی معماری های مجموعه دستورالعمل RISC نهفته(embedded)، نظیر Thumb و AVR32 به طور معمول دارای تراکم بسیار بالایی هستند، که علت آن وجود یک تکنیک به نام «فشرده سازی کد» در آن ها است. این تکنیک دو دستورالعمل ۱۶ بیتی را در کنار هم در داخل یک کلمه ۳۲ بیتی بسته بندی می کند و سپس در مرحله کدگشایی، بسته بندی باز می شود و به شکل دو دستورالعمل اجرا می شود. "رایانه ها با مجموعه دستورالعمل حداقل" (Minimal instruction set computers)، فرمی از ماشین پشته هستند که در آن تعداد اندکی دستورالعمل مجزا (۱۶ تا ۶۴) وجود دارد، به گونه ای که چندی
ن دستورالعمل را می توان در داخل یک کلمه ماشین جا داد. این نوع از هسته ها معمولاً برای پیاده سازی، نیاز به سیلیکون کمتری دارند؛ بنابراین، می توان آنها را به راحتی به فرم یک آرایهٔ درگاهی برنامه پذیر (field-programmable gate array) یا چند هسته ای درآورد. تراکم کد MISC مشابه تراکم کد RISC است. مزیت تراکم بیشتر دستورالعمل، با وجود نیاز به دستورالعمل های بدوی بیشتر برای انجام یک کار، خنثی می شود. تحقیقاتی در رابطه با فشرده سازی قابل اجرا به عنوان یک مکانیسم برای بهبود تراکم کد انجام گرفته است. ریاضیات پیچیدگی کولموگروف، چالش ها و محدودیت های این مکانیسم را توصیف می کند. نمایش. دستورالعمل هایی که یک برنامه را تشکیل می دهند، به ندرت با استفاده از فرم داخلی عددی آنها (کد ماشین) مشخص می شوند. این دستورالعمل ها ممکن است توسط برنامه نویس ها، با استفاده از یک زبان اسمبلی مشخص شوند، یا به طور شایع تر، ممکن است به وسیله کامپایلر ها از زبانهای برنامه نویسی تولید شوند. طراحی. طراحی مجموعه های دستورالعمل یک مسئله پیچیده است. دو مرحله در تاریخ، برای ریزپردازنده ها وجود داشته است. در اولین مرحله، "رایانه های دارای مجموعه دستورا
لعمل پیچیده" (CISC) بودند، که دارای دستورالعمل های مختلف بسیاری بود. با این حال، در دهه ۱۹۷۰ مکان هایی نظیر IBM، تحقیقاتی را انجام دادند و دریافتند که بسیاری از دستورالعمل های این مجموعه را می توان حذف کرد. نتیجه آن، "رایانه های دارای مجموعه دستورالعمل کاهش یافته" (RISC) بود که نوعی معماری است که از یک مجموعهٔ کوچکتر از دستورالعمل ها استفاده می کند. یک مجموعه دستورالعمل ساده تر، به طور بالقوه می تواند موجب سرعت های بیشتر، کاهش اندازه پردازنده، و کاهش مصرف انرژی شود. با این حال، یک مجموعهٔ پیچیده تر، ممکن است عملیات رایج را بهینه سازی کند، کارایی حافظه و حافظهٔ نهان را افزایش دهد، یا برنامه نویسی را ساده کند. برخی طراحان مجموعه دستورالعمل، یک یا بیش از یک آپ کد را برای انواعی از فراخوانی های سیستم یا وقفه های نرم افزاری رزرو می کنند. برای مثال، MOS Technology 6502 از 00H استفاده می کند و Zilog Z80 از هشت کد C7,CF,D7,DF,E7,EF,F7,FFH استفاده می کنند، در حالیکه Motorola 68000 از کدهایی در محدودهٔ A000..AFFFH استفاده می کند. اگر یک مجموعه دستورالعمل، ملزومات مجازی سازی پوپک و گلدبرگ (Popek and Goldberg virtualizat
ion requirements) را برآورده کند، آنگاه پیاده سازی ماشین های مجازی سریع، بسیار آسان تر خواهد بود. اگر وضعیت «برنامه نویسی نشده ی» حافظه به شکل دستورالعمل تهی (NOP) تفسیر شود، آن گاه پیاده سازی NOP slide که در immunity-aware programming استفاده شده است، بسیار آسان تر خواهد بود. اگر مجموعه دستورالعمل قادر به پشتیبانی از قابلیت هایی نظیر استخراج و جمع(fetch-and-add)، بارگیری-لینک/ذخیره سازی-مشروط(load-linked/store-conditional)، یا عمل مقایسه و جابجایی(compare-and-swap) اتمیک باشد، آنگاه در یک سیستم با چندین پردازنده، پیاده سازی الگوریتم های همگام سازی غیر مسدودکننده، بسیار آسان تر خواهد بود. پیاده سازی مجموعه دستورالعمل. هر مجموعه دستورالعمل داده شده را می توان به شیوه های متفاوتی پیاده سازی کرد. تمام شیوه های پیاده سازی یک مجموعه دستورالعمل خاص، یک مدل برنامه نویسی مشابه فراهم می کند. و تمام پیاده سازی های این مجموعه دستورالعمل، قادرند تا فایل یا برنامه های قابل اجرای مشابهی را اجرا کنند. شیوه های مختلف پیاده سازی یک مجموعه دستورالعمل، موجب توازن های مختلفی بین هزینه، عملکرد، مصرف انرژی، اندازه، و … می شود. مهن