بایگانی برچسب‌ها : Decode

کد Code

کد یا Code چیست؟

اصطلاح کد (Code) در دانش رایانه دارای دو مفهوم متمایز در حوزه‌های برنامه نویسی و ارتباطات می‌باشد.

1. در برنامه نویسی، منظور از این اصطلاح دستوراتی است که توسط یک برنامه نویس و براساس قواعد یک زبان برنامه نویسی نوشته می‌شود. به عبارت بهتر می‌توان واژه Code را در این کاربرد معادل با اصطلاح Source Code دانست. نوشتن کد (کدنویسی) که در زبان انگلیسی معادل فعل Code (یا Coding) می‌باشد نیز به عمل نوشتن این دستورات اطلاق می‌شود.

2. زمانی که از این اصطلاح در حیطه‌ی اطلاعات و ارتباطات استفاده می‌شود کد عبارت است از مجموعه‌ای از حروف، ارقام، نمادها و … که داده‌ها را به شکل و فرمی دیگر بیان می‌کند. به عبارت دیگر، Code را می‌توان مجموعه‌ای از قوانین دانست که طی آن اطلاعات (نظیر واژه‌ها، ارقام، اصوات، تصاویر و …) به فرم مناسب دیگری تبدیل می‌شود.

به فرایند تبدیل اطلاعات به فرم Code شده، کدگذاری یا انکودینگ (Encoding) می‌گویند. هدف از این عمل معمولا حفظ امنیت یا فشرده نمودن داده‌ها برای ذخیره‌سازی یا انتقال از طریق یک کانال ارتباطی می‌باشد. به عکس فرایند کدگذاری که طی آن، Code به فرم قابل فهم توسط گیرنده تبدیل می‌شود نیز کدگشایی یا دیکودینگ (Decoding) می‌گویند. به عنوان مثال ممکن است در نوعی کد ساده، حروف الفبا طی الگوریتمی به ارقام باینری کدگذاری شوند. فرض کنید در این نوع Code فرضی حرف “آ” به 0 و حرف “ب” به 01 کد شود. بنابراین واژه “آب” در این سیستم باید به صورت 001 کدگذاری و ارسال یا ذخیره شود.

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

لازم به ذکر است یکی از مشهورترین انواع کدها، کد مورس نام دارد که در گذشته برای ارسال پیام مورد استفاده قرار می‌گرفته است. QR Code و کدهای همینگ و هافمن نیز از جمله کدهای مشهور به شمار می‌روند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پردازنده یا واحد پردازش مرکزی Central Processing Unit – CPU

پردازنده یا Central Processing Unit – CPU چیست؟

پردازنده (Processor) یا واحد پردازش مرکزی (Central Processing Unit) که به اختصار با عنوان سی پی یو (CPU) نیز شناخته می‌شود یک مدار الکترونیکی در رایانه است که مسئولیت پردازش و انجام دستورالعمل‌های یک برنامه را برعهده دارد.

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

  • واحد محاسبه و منطق یا Arithmetic Logic Unit (به اختصار ALU): که اعمال منطقی و حسابی را انجام می‌دهد.
  • ثبات‌های پردازنده یا CPU Registers: که عملوندهای مورد نیاز واحد محاسبه و منطق را فراهم می‌آورند و هم‌چنین حاصل اعمال آن را نگه‌داری می‌کنند.
  • واحد کنترل یا Control Unit: که اعمال پردازنده را هدایت و کنترل می‌کند. به عبارت بهتر، چگونگی واکنش واحد محاسبه و منطق، مموری و دستگاه‌های ورودی و خروجی در برابر دستورالعمل‌ها را تعیین می‌کند.

بسیاری از ریزپردازنده‌های امروزی دارای بخشی به نام واحد مدیریت حافظه (MMU) نیز هستند. اغلب رایانه‌های امروزی از پردازنده‌های چند هسته‌ای (Multi-Core Processor) استفاده می‌کنند. در این رایانه‌ها، یک یا چند CPU که به آن‌ها هسته (Core) گفته می‌شود روی یک چیپ واحد قرار می‌گیرند و امکان پردازش موازی و اجرای چندین دستور به طور همزمان را فراهم می‌کنند. البته چندنخی‌سازی (Multithreading) نیز قابلیتی رایج در پردازنده‌های ساده و هر هسته موجود در پردازنده‌های چند هسته‌ای است که امکان اجرای همزمان چندین فرایند (Process) یا نخ (Thread) را فراهم می‌آورد.

نحوه‌ی عملکرد پردازنده

دستوراتی که قرار است توسط پردازنده اجرا شوند (برنامه) روی نوعی حافظه رایانه‌ای قرار می‌گیرند. به این ترتیب روند اجرای دستورات توسط CPU نیازمند انجام سه مرحله‌ی واکشی (Fetch)، دیکد یا رمزگشایی (Decode) و اجرا (Execute) می‌باشد.

در فرایند واکشی، براساس محتوای ثبات شمارنده برنامه (Program Counter یا PC) محل دستور روی حافظه مشخص می‌شود. پس از اجرای یک دستور، با افزایش مقدار شمارنده برنامه، این روند برای دستور بعدی تکرار می‌شود. در صورتی که یک دستور جهش (Jump) اجرا شود شمارنده برنامه به آدرس دستوری که جهش به آن نقطه انجام شده است تغییر می‌یابد.

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

یک پردازنده ی ساخت شرکت اینتل
یک CPU ساخت شرکت اینتل