کامپیوتر تک‌دستورالعملی

این صفحه در حال ترجمه به فارسی است و تا 3 ماه آینده این مقاله کامل میشود. خواهشمندیم تغییرهایی را در مقاله ایجاد نکنید.

رایانهٔ تک‌دستورالعملی یا فوق‌العاده کم‌دستورالعملی (URISC) نوعی ماشین انتزاعی است که تنها از یک دستورالعمل بهره می‌برد. اگر این دستور با دقت انتخاب شود و منابع نامحدود فرض شود، چنین رایانه‌ای توانایی اجرای هر الگوریتمی را دارد و از نظر محاسباتی هم‌ارز یک رایانهٔ معمولی است.

انواع رایانه‌های تک‌دستورالعملی شامل ماشین‌های دستکاری بیت، ماشین‌های مبتنی بر انتقال داده (TTA) و ماشین‌های مبتنی بر عملیات حسابی هستند. نمونه‌هایی مانند FlipJump، BitBitJump و Toga از جمله ماشین‌های بیت‌محور هستند که با عملیات سادهٔ تغییر یا کپی بیت می‌توانند محاسبات عمومی انجام دهند.

در ماشین‌های حسابی، دستورهایی مانند «کم کردن و شاخه اگر کمتر یا مساوی صفر» (subleq) یا «کم کردن و شاخه اگر منفی» (subneg) تنها با یک عملیات عددی و شاخه‌بندی شرطی، قابلیت محاسباتی جهانی دارند. همچنین، ماشین‌های TTA با استفاده از حرکت داده بین سلول‌های حافظه، عملیات حسابی را اجرا می‌کنند. نسخه‌های پیشرفته‌ای مانند Cryptoleq امکان محاسبات روی داده‌های رمزنگاری‌شده را فراهم می‌کنند.

این معماری‌ها در آموزش معماری رایانه، پژوهش‌های محاسبات ساختاری و نمونه‌های سخت‌افزاری آزمایشی مانند رایانه‌های ساخته‌شده با نانولوله‌های کربنی یا ماشین Subleq به کار رفته‌اند.

### معماری ماشین
در مدل‌های محاسباتی کاملِ تورینگ، هر مکان حافظه می‌تواند یک عدد صحیح دلخواه را ذخیره کند و بسته به مدل، تعداد مکان‌های حافظه می‌تواند نامحدود باشد. دستورها خود در حافظه به صورت یک رشته از این اعداد ذخیره می‌شوند.

یک دسته از رایانه‌های تک‌دستورالعملی بر اساس **دستکاری بیت**، مانند کپی یا وارونه‌سازی بیت، وجود دارند. با اینکه حافظهٔ آن‌ها محدود است، این ماشین‌ها از نظر محاسباتی معادل رایانه‌های واقعی هستند.

### دسته‌بندی OISCها
رایانه‌های تک‌دستورالعملی (OISC) شناخته‌شده را می‌توان به سه دستهٔ کلی تقسیم کرد:

# **ماشین‌های دستکاری بیت**
# **ماشین‌های مبتنی بر انتقال داده (TTA)**
# **ماشین‌های حسابی کامل تورینگ**

----

#### ماشین‌های دستکاری بیت
این دسته ساده‌ترین نوع OISC است:

* **FlipJump**: یک دستور دارد که بیت a را معکوس کرده و به b می‌پردازد. با وجود سادگی، می‌تواند عملیات ریاضی و منطقی، شاخه‌بندی و توابع را اجرا کند.
* **BitBitJump**: بیت را کپی کرده و اجرای برنامه را به آدرس مشخص‌شده منتقل می‌کند. این روش امکان محاسبات عمومی دارد.
* **Toga Computer**: یک بیت را وارونه می‌کند و بسته به نتیجهٔ وارونه‌سازی شاخه می‌زند. دستور TOGA(a,b) این عملیات را انجام می‌دهد.
* **ماشین کپی چندبیتی**: مشابه BitBitJump، چند بیت را همزمان کپی می‌کند و از جدول‌های پرش از پیش تعریف‌شده برای محاسبات عمومی استفاده می‌کند.

----

#### معماری مبتنی بر انتقال داده (TTA)
در TTA محاسبات نتیجهٔ جانبی انتقال داده است. برخی ثبات‌های حافظه هنگام نوشتن عملیات مشخصی انجام می‌دهند. به عنوان مثال، یک OISC با دستور کپی حافظه به حافظه از پورت‌هایی استفاده می‌کند که عملیات حسابی و پرش را انجام می‌دهند.

نسخه‌های تجاری مانند **MAXQ** این محدودیت را با استفاده از «نقشهٔ انتقال» برای دستورهای حرکت برطرف کرده‌اند.
----

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

* **Addleq**: جمع و پرش اگر کوچکتر یا مساوی صفر
* **DJN**: کاهش و پرش اگر غیرصفر
* **P1eq**: افزایش و پرش در صورت مساوی بودن با مقدار دیگر
* **Subleq**: کم کردن و پرش اگر کوچکتر یا مساوی صفر
* **Subneg**: کم کردن و پرش اگر منفی
* **Cryptoleq**: محاسبات روی داده‌های رمزنگاری‌شده

با این دستورها می‌توان عملیات حسابی و منطقی، شاخه‌بندی و حتی توابع پیچیده را با ترکیب دستورها شبیه‌سازی کرد. برای مثال، دستورات ADD و MOV را می‌توان با استفاده از Subleq سنتز کرد.
----

#### مثال‌هایی از شبیه‌سازی و استفاده

* سیستم‌عامل **Dawn OS** روی ماشین Subleq شبیه‌سازی شده است و دارای کامپایلر شبیه C و برنامه‌های کاربردی پایه است.
* رایانهٔ **Izhora** یک ماشین Subleq 32 بیتی با کیبورد و نمایشگر گرافیکی است که به شکل الگوی اتوماتای سلولی ساخته شده است.
* برنامه‌نویسی و کامپایلرهایی مانند **Higher Subleq** و Forth مبتنی بر Subleq وجود دارند.

----

#### Cryptoleq
**Cryptoleq** شبیه Subleq است اما روی داده‌های رمزنگاری‌شده عملیات انجام می‌دهد. دستور اصلی آن:

عملیات O1 و O2 برای پردازش داده‌های رمزنگاری‌شده تعریف شده‌اند. Cryptoleq از سیستم رمزنگاری **Paillier** برای انجام محاسبات همومورفیک استفاده می‌کند و برنامه‌های Subleq می‌توانند روی آن اجرا شوند.
----

#### مشاهده و شبیه‌سازی

* دستورها Subleq و Subneg قابل ترکیب برای سنتز دستورها پیچیده‌تر هستند.
* ماشین‌های RSSB و Melzak نمونه‌هایی از ماشین‌های خاص با روش‌های حسابی و شاخه‌بندی هستند.
* ماشین‌های TTA و Subleq امکان شبیه‌سازی محاسبات عمومی، اجرای سیستم‌عامل و برنامه‌های کاربردی را دارند.