اکسل یکی از محبوبترین نرمافزارهای صفحه گسترده است که برای انجام محاسبات، تحلیل دادهها، رسم نمودارها و جداول و بسیاری کارهای دیگر استفاده میشود. اما آیا میدانستید که میتوانید با استفاده از اکسل یک پردازنده ۱۶ بیتی را طراحی و ساخته و برنامههای سادهای را روی آن اجرا کنید؟ به تازگی یک یوتیوبر خلاق دست به طراحی یک پردازنده داخل محیط این نرمافزار کرده است.
این کار عجیب و دیدنی را یک مهندس نرمافزار به نام Ben Eater در یک ویدئوی آموزشی در یوتیوب نشان داده است. او با استفاده از توابع موجود در اکسل و بدون هیچ افزونه یا ماکرویی، یک پردازنده کامل با معماری مجموعه دستورالعمل (ISA) خودش را ایجاد کرده است. این پردازنده قادر است انواع عملیات ریاضی، شرطی، حلقهای و حافظهای را پیاده نموده و برنامههایی را که به زبان اسمبلی نوشته شدهاند را اجرا کند.
این پروژه نشان میدهد که چگونه میتوان با استفاده از ابزارهای ساده و موجود، مفاهیم پیچیده و پایهای رایانه را فرا گرفت و شبیهسازی کرد. پروژه ساخت پردازنده داخل اکسل همچنین میتواند برای آموزش معماری کامپیوتر، طراحی مدارهای پردازنده، زبان اسمبلی و معماری مجموعه دستورالعمل مفید باشد.
مشخصات پردازنده ساخته شده در اکسل
ابتدا یک معماری مجموعه دستورالعمل (ISA) برای پردازنده طراحی میشود. این معماری مشخص میکند که پردازنده چه دستورالعملهایی را میتواند اجرا کند و چه فرمتی برای نمایش آنها در حافظه دارد. برای مثال، در این پروژه، پردازنده ۱۶ بیتی است و هر دستورالعمل ۱۶ بیت دارد.
همچنین پردازنده ۴ رجیستر عمومی به نامهای A, B, C و D دارد که میتوانند مقادیر مختلفی را نگه دارند. پردازنده همچنین یک رجیستر ویژه به نام PC دارد که نشان میدهد که دستورالعمل بعدی در کدام آدرس حافظه قرار دارد. برای اجرای هر دستورالعمل، پردازنده چهار مرحله را طی میکند: خواندن، تفسیر، اجرا و نوشتن.
سپس یک جدول در اکسل ایجاد میشود که هر سلول آن یک بیت را نمایش میدهد. این جدول میتواند به دو بخش تقسیم شود: بخش بالایی که نشاندهنده حافظه است و بخش پایینی که نشاندهنده پردازنده است. در بخش حافظه، هر سطر یک آدرس حافظه را مشخص میکند و هر ۱۶ سلول آن یک دستورالعمل یا یک داده را نشان میدهد.
در بخش پردازنده، هر سلول یک بخش از پردازنده را نمایش میدهد، مانند رجیسترها، مدارهای منطقی، مدارهای حسابی و غیره. برای ایجاد این جدول، از توابع موجود در اکسل استفاده میشود، مانند توابع AND, OR, XOR, NOT, IF, MOD و غیره. همچنین برای قالببندی سلولها، از توابع موجود در قسمت Conditional Formatting استفاده میشود، مانند توابع ISNUMBER, ISTEXT, ISFORMULA و غیره.
در نهایت، یک برنامه به زبان اسمبلی نوشته میشود که مطابق با معماری مجموعه دستورالعمل طراحی شده است. این برنامه میتواند عملیاتهای ریاضی، شرطی، حلقهای و حافظهای را انجام دهد.
اگر میخواهید با این پروژه و توضیحات فنی آن بیشتر آشنا شوید ویدئوی زیر را تماشا کنید:
نظر خود را اضافه کنید.
برای ارسال نظر وارد شوید
ارسال نظر بدون عضویت در سایت