معماری مجموعه دستورات پردازنده

کامپیوتر با مجموعه دستورات پیچیده ‌(CISC با تلفظ سیسک)، به معماری مجموعه دستورات ریزپردازنده‌ای اطلاق می‌شود که هر دستور به چندین دستور سطح پایین‌تر، مثل بارگزاری از حافظه، عملیات محاسباتی یا ذخیره در حافظه تقسیم می‌شود. این واژه را در مقابل واژه «کامپیوتر با مجموعه دستورات ساده‌شده ‌( RISCبا تلفظ ریسک)» قرار داده‌اند. ‌ ‌
کد خبر: ۲۳۰۸۳۳

پیش از این‌که معماری ریسک همه‌گیر شود، بسیاری از معماران کامپیوتر در پی پرکردن خلا منطقی بین برنامه‌نویس و دستورات کامپیوتر بودند و به‌دنبال طراحی مجموعه دستوراتی از کامپیوتر بودند که مستقیما از ساختارهای زبان‌های سطح بالا، مثل فراخوانی زیربرنامه‌ها، کنترل حلقه‌ها و آدرس‌دهی‌های پیچیده پشتیبانی کند و دسترسی به ساختارهای داده و آرایه‌ها را با یک دستور آسان کند.

طبیعت فشرده چنین مجموعه دستوراتی، کوچک‌تر شدن حجم برنامه و فراخوانی‌های کمتر به حافظه اصلی، که در آن زمان (اوایل دهه 60) منجر به صرفه‌جویی زیادی در مصرف حافظه کامپیوتر و دیسک می‌شد. همچنین میزان تولید برنامه‌ها به زبان اسمبلی، در غیاب زبان‌های سطح بالایی چون فورترن1 و یا الگول2‌ ‌مفید بود. ‌ ‌

این‌که تمامی طراحی‌ها به میزان بهره‌وری بیشتر با هزینه کمتر می‌اندیشیدند و همچنین تعریف ساختارهای زبان‌های سطح بالاتر با دستورات کمتر، همیشه دغدغه معماران نبود.

به‌عنوان مثال، نسخه‌های سطح پایین معماری پیچیده که از سخت‌افزار کمتری استفاده می‌کردند، به موقعیت‌هایی می‌رسیدند که در آن‌ها بازدهی سیستم هنگامی بالا می‌رفت که از دستورات پیچیده (فراخوانی زیربرنامه و...) استفاده نمی‌شد و از چند دستور ساده‌تر به جای آن استفاده می‌کردند. ‌ ‌

این نتیجه حاصل شد که معماران کامپیوتر، گاهی اوقات دستورات اسمبلر را «بیش از حد طراحی» می‌کردند که باعث می‌شد آن‌دستور در سخت‌افزار قابل پیاده سازی نباشد.

عوارض جانبی این موضوع (که فراتر از استانداردها بود)، مثل مقداردهی به یک ثبات که اگر از طریق عادی این کار انجام می‌شد، اتلاف زمانی به فاصله چندین پالس ساعت رخ می‌داد. ‌ ‌

حتی در طراحی‌های با بازدهی بالا، این دستورات سطح بالا، با رمزگذاری‌های پیچیده همراه هستند و رمزگشایی این دستورات برای ترانزیستورهای ارزان‌تر غیرقابل انجام است. این معماری‌ها در بخش طراحی پردازنده، کار عظیمی را باید طی کنند که هر دستور سطح بالا، در مقابل چند دستور مشابه ساده‌تر، اما کندتر در جدول رمزگشایی‌ها یا صف ریزدستورات به‌صرفه خواهد بود یا خیر و در زمانی که فضایی که ترانزیستورها اشباع می‌کنند، فضای محدودی خواهد بود، در این‌صورت حفظ بازدهی به‌روش‌های دیگر ممکن نخواهد بود و نتیجه کار، به ساده‌تر کردن دستورات خواهد انجامید و این اتفاق به تولید کامپیوترها با معماری دستورات ساده‌شده در میانه‌های دهه 70 میلادی منجر شد.

پردازنده‌های سیسک و ریسک

پردازنده‌هایی که برمبنای معماری سیسک درست شده‌اند، را می‌توان در میان سری ‌VAX‌، ‌11PDP-‌، خانواده موتورولا 68000 و همچنین اینتل ‌86x‌ یافت. ‌ ‌

البته در تکامل معماری‌های پردازنده‌ها، دیگر اختلاف میان سیسک و ریسک کمتر شده است. اولین پیاده‌سازی سطح بالای سیسک که در خانواده 486 اینتل، ‌AMD‌، سایرکس و آی‌بی‌ام وجود داشت تمام دستورات این پردازنده‌ها را با پیاده‌سازی زیرمجموعه‌ای از این دستورات (به کمک معماری ریسک، اما بدون محدودیت‌های ذخیره بازیابی آن) اجرا و بازدهی بالایی را ارائه می‌کرد. ‌ ‌

پردازنده‌های جدیدتر ‌86x‌ قادر به رمزگشایی دستورات پیچیده‌تر به ریزعملیات داخلی هستند که به‌طور سریال اجرا می‌شوند، با این وجود بازدهی بالایی دارند. ‌ ‌

کامپیوترهایی با معماری بدون مجموعه دستورات

تفکر جدیدی که هم‌اکنون برای معماری مجموعه دستورات وجود دارد، کامپیوترهایی با معماری صفر دستورالعمل ‌(ZISC‌، با تلفظ زیسک) است. این تفکر که از شبکه‌های عصبی مصنوعی3‌ ‌و پردازش‌های بزرگ موازی4‌ ‌نشات می‌گیرد، اوایل دهه نود و بر مبنای یک مدل شبکه عصبی که توسط پروفسور لیون کوپر5‌ ‌شکل گرفت. در سال 93 در آزمایشگاه نیمه‌هادی‌های آی‌بی‌ام مورد بررسی قرار گرفت و نخستین چیپ این پردازنده به نام ‌36ZISC‌ توسط گای‌پیلت6‌ ‌تولید شد. نخستین نسل از این پردازنده‌ها 36 سلول داشت و هر کدام به‌عنوان نرون7‌ ‌عمل می‌کرد. هر کدام از این سلول‌ها می‌توانست ورودی برداری تا 64 بایت را مقایسه کند که در حافظه‌اش قرار داشت: اگر بردار ورودی8‌ ‌با برداری که در حافظه‌اش یکی بود، برابر بود، سلول سیگنال می‌داد. سیگنال خروجی یا به‌معنای شناسایی الگو9‌ ‌بود، یا نیافتن الگو. ‌ ‌

نکته اصلی سرعت بخشیدن به چنین سیستمی، پردازش موازی در سیستم‌های زیسک است که دیگر دردسر بارگزاری‌های سریال و خطی را ندارد و همزمان همه موقعیت‌ها را با هم چک می‌کند. گسترش‌پذیری این سیستم‌ها نیز جالب توجه است، یک سیستم زیسک می‌تواند با افزودن چیپ‌های بیشتر ، بیشتر شود بدون آن‌که با بزرگ شدن از بازدهی آن کاسته شود. ‌ ‌

پردازنده‌های امروزی زیسک حدود 78 نرون در هر چیپ دارند و می‌توانند در هر ثانیه یک میلیون الگو را مورد مطابقت قرار دهند و در کمتر از 50 مگاهرتز فعالیت کنند.

در سال 2007، نسخه تکامل یافته زیسک78 به نام ‌K1CogniMem‌ ارائه شد که تشخیص بردار 256 بایتی را در 10‌میکروثانیه انجام می‌دهد. ‌ ‌


منابع

 http://en.wikipedia.org/wiki/Zero_

Instruction_Set_Computer

 http://cs.washington.edu/homes/ http://en.wikipedia.org/wiki/CISC

lazowska/cra/risc.html

پی‌نوشت‌ها:

 Fortran.1‌

 Algol.2‌

 Artificial Neural Network.3‌

Parallel Processing.4‌

 Leon N. Cooper.5‌

 Guy Paillet.6‌

 Neuron.7‌

 Input Vector.8‌

 Pattern Recognition.9

المیرا حمیدی

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها