دستگاههای انساننما چگونه کار میکنند؟
---------------------------------
البته این موضوع یک مقدار سخیف است برای این جستار فلسفی. ولی جایش بهتر از اینجا نیست.
خلاصه میگویم.
در ابتدا کلید بود.
کلید یعنی دستگاهی که با فشار دادن آن جریان برق از یک جا به جایی دیگر منتقل میشود.
بعد لامپ آمد. لامپ معمولی که به آن نور میدهی روشن میشود.
بعد دیدند گاهی یک قابلیتی دارد این لامپها و اثری کشف کردند و با آن لامپ ترانزیستوری را ساختند: لامپ خلأ - ویکیپدیا، دانشنامهٔ آزاد
این لامپ خاصیتش این است که مانند کلید عمل میکند. با این تفاوت که به جای فشار دادن مکانیکی به آن ولتاژ اعمال میشود. سادهاش میشود این که: اگر 3 پایه برای آن فرض کنیم: با وصل کردن برق به پایهی کلید، اجازه میدهد برق از دو پایهی دیگر بگذرد!
اینجا بود که اساس رایانه گذاشته شد. این نخستین ترانزیستور دنیا بود. ترانزیستور را بخوانیم: کلیدی که به جای فشار مکانیکی با انرژی الکتریکی کار میکند.
خوبی این روش به جای روش کلید مکانیکی این است که با یک برق وصل کردن میتوان بیش از یک کلید را روشن کرد. فرض کن شما صد تا کلید داری که باید همزمان فشار دهی. در حالت عادی نمیشود. خیلی سخت است. ولی اگر ترانزیستور باشد پایههای بیس آنها را (که مسئول قطع و وصل است) همه را به هم وصل میکنی و یک انرژی الکتریکی میدهی به همه و همه با هم روشن میشوند. مثلا کلید نخست سه ولت را به آن سوی خودش منتقل میکند کلید دوم صفر ولت کلید سوم چهار ولت. ولی همهی اینها با هم با یک پنج ولت که به همهشان یکباره داده میشود روشن میشوند.
---------------------------------------
اساس دیگر رایانه در نرمافزار است. نرم افزار چگونه آغاز شد؟ با اعداد و ماشین حساب و سپس دروازههای منطقی.
نرم افزار یعنی کلا «فرض کردن» و «این همانی» گرفتن.
فرض کردند (استاندارد گذاشتند - قرار گذاشتند) پنج ولت از برق به منزلهی عدد یک باشد و صفر ولت از برق به منزلهی عدد صفر. همین.
تمام رایانه با عظمتش همین است در حقیقت. همین فرض و قرار. که صفر ولت بشود عدد صفر و پنج ولت هم بشود عدد یک.
با این دو عدد دیدند تمام اعداد دیگر را میتوانند بسازند. میتوانند زبان بسازند!
مانند مورس! (کد مورس - ویکیپدیا، دانشنامهٔ آزاد) به مورس دقت کردهاید؟ تنها با بیپ کار میکند! بیپ بیپ یعنی سلام مثلا. بیپ فاصله بیپ یعنی خداحافظ. حالا همین را بیاوریم در رایانه: فاصله و سکوت شبیهسازی شد با صفر ولت و بیپ شبیهسازی شد با پنج ولت.
با این میتوان یک داستان نوشت. میتوان هزار تا حرف زد. میتوان هزارتا کار کرد. تنها با همین بیپ و سکوت خالی!
و این کار را کردند!
اکنون تمام رایانه ما ساخته شده از پنج ولت و صفر ولت (سکوت).
و البته قرارداد!
{۱} {۲}
مثلا قرار گذاشتند به جای عدد ۹ چند تا صفر ولت و پنج ولت (بخوانید صفر و یک) با این آرایش برای هم بفرستند: ۱۰۰۱ (بخوانید یک صفر صفر یک) (به زبان مورسی بخوانید: بیپ سکوت سکوت بیپ) میبینید که با چهار عدد صفر و یک در مبنای دودویی توانستند یک عدد ۹ در مبنای دهدهی را پیاده کنند.
--------------------------------------
با این روش هر کاری میتوان کرد... مثلا میتوان اکبرآقا را هم پیاده سازی کرد... کافی است اکبرآقا را به حروف بشکنیم و بگوییم ا ک ب ر آ ق ا و سپس هر کدام را با یک قرارداد از اعداد دودویی شبیه سازی کنیم. (مثلا کاف را با ۱۰۱۰۱۰۰۱۰۱۰۱۰۰۰۱۱۱۱۱۱ و الف را با ۱۰۱۰۰۱۰۰۰۱۰۱۰۱۰۱۰۱۱۰۰۰۰۰)
عکسها را چطور شبیهسازی کنیم؟ دقیقا به همین شیوه.{۳}
صداها هم همینجور... ویدیوها هم همینجور... برنامههای رایانهای (شبیه فیلترهای tsetmc) هم همینجور... همه به آسانی با صفر و یک (بخوانید صفر ولت و پنج ولت) و به صورت یک قرارداد (نزد تمام رایانهها) شبیهسازی میشود.
در هنگام اجرا هم همین است.
یعنی همانگونه که یک بار به ورودی رایانه با فرض گرفتن و اینهمانی کردن کلمهی اکبرآقا را با یک و صفر شبیهسازی کردیم در خروجی نیز یک و صفر معادلش را که دیدیم «اکبرآقا» را در خروجی نمایش میدهیم. مانند یک شنوندهی کد مورس. که بیپها را میشنود و از دل آنها یک متنی را متوجه میشود. {۴} {۵}
--------------------------------------
اما اینها همه یک بخش از قضیه بود. بخش دیگر قضیه عملیات است. رایانه دو بخش نیاز دارد. یک بخش همین تصورات و فرضها و استدانداردها و قراردادها است و یکی هم عملیات روی آنها. پردازشها و برنامهها و محاسبات.
همانگونه که گفتم محاسبات از ماشین حساب آغاز شد. از جمع.
(خواهیم دید که این عملیات را هم باز دوباره با همان فرضها درست کردند.)
(در کل رایانه چیزی نیست جز نظامی فرضی. مانند انسان و سخنش. اندیشهی دنیویاش.)
نخست اعداد را در مبنای دودویی ببینیم:
0000 0در زیر هم دوباره میتوانید ببینید:
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
حالا ما چه احتیاج داریم؟ یک دستگاهی احتیاج داریم که 0000 را بگیرد و 0001 را هم بگیرد و این دو را با هم جمع بزند و در خروجی 0001 را به ما بدهد.
یا 0001 و 0010 را بگیرد و در خروجی جمع این دو یعنی 0011 را به ما بدهد.
این را چگونه انجام دادند؟
به وسیلهی همان ترانزیستور!
یک بار دیگر به ترانزیستور به یک دید دیگر نگاه کنیم.
ترانزیستور کلیدی است که اگر به بخشی از آن انرژی وارد کنیم اجازه انتقال انرژی الکتریکی را از بخشی به بخشی دیگر میدهد.
حالا بیایید فرض کنیم هر دوی این انرژیهای الکتریکی که از آن سخن میگوییم صفر ولت یا پنج ولت هستند.
یک بار دیگر قرائت میکنیم: ترانزیستور ابزاری است که اگر به یک پایه از آن (پایه یک) پنج ولت بدهی اجازه میدهد از یک پایهی دیگرش (پایه دو) به پایه خروجی (پایه سوم) پنج ولت عبور دهد.
به عبارت دیگر: اگر در ترانزیستور هر دو پایهی یکم و دوم هر دو با هم پنج ولت داشته باشند، پایه خروجی هم پنج ولت دارد در غیر این صورت پایه خروجی صفر ولت دارد.
این کار یک کار ویژهای است که به آن میگوییم And منطقی. به پارسی: و.
یعنی پایه خروجی زمانی پنج ولت دارد که پایه یکم «««و»»» پایه دوم هر دو با هم پنج ولت داشته باشند.
این خیلی مهم است! از یک ترانزیستور به گونهای استفاده کردند که عملیات منطقی «و» را انجام دهد.
یک عملیات دیگر هم توانستند فرض کنند. عملیات «یا». به انگلیسی: Or.
عملیات یا یعنی چه؟ یعنی این که اگر پایهی یکم ورودی «یا» پایهی دوم ورودی هر کدام که پنج ولت شدند تو خروجیات را پنج ولت بکن.
این را مثلا ما چگونه میتوانیم با همان ترانزیستور شبیه سازی کنیم؟
گفتیم که ترانزیستور سه پایه دارد. که کار «و» را انجام میدهد. یعنی هر گاه هر دو پایه ورودی با هم پنج ولت شدند خروجی هم پنج ولت میشود در غیر این صورت خروجی صفر است.
حالا بیایید یک ترانزیستوری را بسازیم که پایهی شمارهی یکش همواره پنج ولت است! حالا هر گاه پایهی شماره دوی آن یک شود خروجیاش پنج ولت میشود!
حالا در کنار این ترانزیستور ترانزیستور دیگری را میگذاریم که همواره پایهی شمارهی دوی آن پنج ولت است! در این ترانزیستور هم هرگاه پایهی شمارهی یک آن پنج ولت شود خروجی هم پنج ولت میشود!
خوب! حالا بیایید خروجی این دو ترانزیستور را همینجوری به هم وصل کنیم! چه اتفاقی میافتد؟ هرگاه پایهی شمارهی یک این ترانزیستور پنج ولت شد خروجی مشترک پنج ولت میشود و هرگاه پایهی شماره دو آن ترانزیستور پنج ولت شد هم باز خروجی پنج ولت میشود.
ما این دو ترانزیستور را به عنوان یک ابزار جدید در نظر میگیریم و معرفی میکنیم و پایهی شمارهی یک این یکی و پایهی شمارهی دوی آن یکی را دو تا ورودی در نگر میگیریم و خروجی مشترک را هم پایهی شمارهی سه.
این شد همان عمل یا منطقی که گفتیم. در این ابزار خروجی پنج ولت است در صورتی که «یا» این ورودی پنج ولت باشد «یا» آن ورودی پنج ولت باشد «یا» هر دو.
حالا به یک عمل جمع ساده نگاه میکنیم. یک «جمعکننده» ترکیب این دو ابزار (این دو دروازهی منطقی) بود که در بالا معرفی شدند. یا و و.
سادهترین جمع جمع دو ورودی ساده است که هر کدام میتوانند ۰ یا ۱ باشند.
اگر هر دو ۰ باشند خروجی باید ۰ شود.
اگر یکی صفر و یکی یک باشد خروجی باید ۱ شود.
اگر هر دو با هم یک باشند باید خروجی ۱۰ شود. (۱۰ در مبنای دو دویی که برابر همان ۲ در مبنای ده دهی است.)
۱۰ یعنی ۰ و ۱. یعنی ۰ زیر همین ستون و ستون بعدی هم یک ۱ بفرست.یعنی خروجی مربوط به این رقم را ۰ کن و یک عدد ۱ هم بفرست به رقم بعدی.
اینجا یک دروازهی منطقی دیگر به نام «نه» بیاید کار تمام است.
نه یعنی چه؟ یعنی اگر ورودی پنج ولت بود خروجی را صفر بکن و اگر ورودی صفر بود خروجی را پنج ولت بکن. دیگر برای این که حوصله خودم و خودتان سر نرود توضیح نمیدهم.
خوب... بیایید این عملیات را با دو دروازهی منطقی «یا» و «و» و «نه» پیادهسازی کنیم.
جمع در مبنای دودویی برای یک رقم میشود: اگر ورودی شماره یک «یا» ورودی شماره دو یک (پنج ولت) بودند خروجی را یک کن. و اگر ورودی یک «و» ورودی دو هر دو با هم یک بودند همین خروجی را معکوس (نه) کن. (صفر کن.) و یک عدد یک هم بفرست برای ستون بالاتر.
----------------------------------------------------
این جمع بود. پس از آن از روی همین دروازههای منطقی تفریق را هم ساختند و با کمک همینها ضرب و تقسیم.
و امروزه تمام کارهایی که درون رایانههای ما انجام میشود با همین چند عمل ساده است: و + یا + نه (و جمع و تقسیم و مالتیپلکس و ... که همه با همین سه دروازه منطقی ساخته میشود.) (و البته همانگونه که گفتیم بازگشت این سه دروازه نیز به دروازهی منطقی «و» است! یعنی تمام رایانه یک عمل «و» کردن است و بس.)
به عبارت دیگر تمام کارهایی که رایانه انجام میدهد تنها همین چند کار ساده است.
زبانهای برنامهنویسی سطح پایین و نزدیک به زبان ماشین را هم نگاه کنید (مانند اسمبلی) میبینید تنها همین چند کار را دارند.
و زبانهای تراز بالا را نیز با همین زبانهای تراز پایین مینویسند.
تا میرسیم به کارهایی که ما داریم میکنیم و برنامههای پیچیدهای که مینویسند و تقلید از انسان... همه و همه با همین چند عمل ساده انجام میشود (و با آن فرض کردنها و قرارداد بستنها).
----------------------------------------------------
پانویس:
{۱} این قرارداد و اعتبار و فرض را مدام دارم تکرار میکنم... برای این که بیشتر با نظام اعتباریات آشنا شویم. تمام نظام اعتباریها با این گستردگیاش تکیه بر یک دست فرضها و قراردادها دارد! تمام علوم حصولی بشری و تمام زبان بشر و تمام این چیزهایی که در جامعه بشری وجود دارد! همه اعتبار هستند و فرض! و خداوند ما را تنبیه میدهد به زمانی که این فرضها برداشته شود! و کف روی اب برود و آب بماند!
{۲} البته میتوانستند کار دیگر هم بکنند... مثلا بیایند صفر ولت تا ده ولت بگذارند به نمایندهی اعداد صفر تا ده. یا صفر تا سی و دو ولت بگذارند برای حروف! ولی این کار را نکردند. چون سختتر بود! رایانههایی هم ساختند بر مبنای این که صفر تا ده کار کند... ولی راحت نبودند برش داشتند. به جایش اعداد دیگر و حروف و کلمات و کلا چیزهای دیگر را با همین صفر و یک پیاده کردند...
{۳} عکسها را هم میشکنیم به پیکسلها و پیکسلها را هم میشکنیم به سه رنگ RGB یا همان Red Blue Green و میزان قدرت رنگ هر کدام از این سه را هم با یک عدد بین صفر تا ۲۵۶ نشان میدهیم و این عدد را هم با صفر و یک شبیهسازی میکنیم. (این الان دقیقا چیزی است که زمانی که یک تصویر با فرمت JPG را باز میکنید مییابید! حتی آدرس پیکسلها را هم در آن یادداشت نمیکنند! چرا که از همان آغاز پروندهی تصویر اعلام میکنند که این تصویر ۴۰ پیکسل در ۱۰ پیکسل است و سپس همینجوری رنگهای ۴۰۰ پیکسل را بیان میکنند. که هر پیکسل هم ۳عدد (صفر تا ۲۶۵) در خودش دارد.
{۴}مثلا زمانی که به نمایشگر (Monitor) از طریق رایانه اعلام میشود که فلان پیکسل را فلان رنگ کن، آنجا سه تا ال ای دی (سه تا لامپ) بسیار ریز وجود دارد به رنگهای قرمز و سبز و آبی که آنها را کم و زیاد میکند و باعث میشود از ترکیب این سه رنگ و میزان شدت نور این سه رنگ آنجا یک رنگ خاص (مثلا خاکستری یا سفید یا بنفش) دیده شود. (البته این یک فناوری است. در فناوری دیگر به جای این که سه تا لامپ برای هر پیکسل بگذارند میروند یک لامپ سفید سرتاسری میگذارند و بعد روی هر پیکسل سه تا دریچه الکتریکی بسیار ریز قرار میدهند که اگر به آنها فرمان دهند آنها بسته یا باز میشوند و زیر این سه دریچه فیلترهای نوری به رنگهای سبز و آبی و سرخ قرار دارد.)
{۵} صوت چه؟ صوت هم یک میکروفون است که زمانی که باید صدای بم را پخش کند یک انرژی الکتریکی با بسامد پایین به آن وصل میکنند و دریچهی مکانیکی بلندگو بالا و پایین میپرد (متناسب با بسامد ورودی و قدرت انرژی الکتریکی ورودی این هم با همان بسامد و قدرت میلرزد. که لرزشش را هم اگر خوب دقت کنید با چشم میبینید. به خصوص در ووفرها و سابووفرها)