stringtranslate.com

کامپیوتر

رایانه‌ها و دستگاه‌های محاسباتی از دوره‌های مختلف - از چپ به راست، از بالا به پایین:

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

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

کامپیوترهای اولیه فقط برای محاسبات مورد استفاده قرار می گرفتند. ابزارهای دستی ساده مانند چرتکه از زمان های قدیم به مردم در انجام محاسبات کمک کرده اند. در اوایل انقلاب صنعتی ، برخی از دستگاه‌های مکانیکی برای خودکارسازی کارهای طولانی و طاقت‌فرسا، مانند هدایت الگوهای بافندگی ساخته شدند . ماشین‌های الکتریکی پیچیده‌تر محاسبات تخصصی آنالوگ را در اوایل قرن بیستم انجام دادند. اولین ماشین های محاسبه الکترونیکی دیجیتال در طول جنگ جهانی دوم ، هم به صورت الکترومکانیکی و هم با استفاده از دریچه های ترمیونیک ساخته شدند . اولین ترانزیستورهای نیمه هادی در اواخر دهه 1940 توسط MOSFET مبتنی بر سیلیکون (ترانزیستور MOS) و فناوری های تراشه مدار مجتمع یکپارچه در اواخر دهه 1950 دنبال شدند که منجر به ریزپردازنده و انقلاب میکرو کامپیوتر در دهه 1970 شد. سرعت، قدرت و تطبیق پذیری کامپیوترها از آن زمان به طور چشمگیری افزایش یافته است، با افزایش سرعت تعداد ترانزیستورها ( قانون مور اشاره می کند که تعداد هر دو سال دو برابر می شود)، که منجر به انقلاب دیجیتال در اواخر قرن 20 و اوایل قرن 21 شد. .

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

ریشه شناسی

یک کامپیوتر انسانی
یک کامپیوتر انسانی ، با میکروسکوپ و ماشین حساب، 1952

تا اواسط قرن بیستم بود که این کلمه تعریف مدرن خود را به دست آورد. با توجه به فرهنگ لغت انگلیسی آکسفورد ، اولین استفاده شناخته شده از کلمه کامپیوتر به معنایی متفاوت، در کتابی به نام The Yong Mans Gleanings در سال 1613 توسط نویسنده انگلیسی ریچارد براتویت بود : "من [ sic ] واقعی ترین کامپیوتر تایمز را خوانده ام. و بهترین حسابی که هر دم [ sic ] دمیده است، و روزهای تو را به تعداد کوتاه می‌کند.» این استفاده از این اصطلاح به رایانه انسانی اشاره دارد ، شخصی که محاسبات یا محاسبات را انجام می دهد . این کلمه تا اواسط قرن بیستم به همین معنی ادامه داد. در اواخر این دوره، زنان اغلب به عنوان رایانه استخدام می شدند، زیرا می توانستند حقوق کمتری نسبت به همتایان مرد خود دریافت کنند. [1] تا سال 1943، اکثر کامپیوترهای انسانی زن بودند. [2]

دیکشنری آنلاین ریشه شناسی اولین استفاده تایید شده از کامپیوتر را در دهه 1640 ارائه می دهد، به معنای "کسی که محاسبه می کند". این یک "اسم عامل از محاسبه (v.)" است. دیکشنری آنلاین ریشه شناسی بیان می کند که استفاده از این اصطلاح به معنای " ماشین محاسبه" (از هر نوع) مربوط به سال 1897 است." فرهنگ ریشه‌شناسی آنلاین نشان می‌دهد که «استفاده مدرن» از این اصطلاح به معنای «کامپیوتر الکترونیکی دیجیتال قابل برنامه‌ریزی» از «1945 تحت این نام؛ [در یک] نظری [به معنای] از سال 1937، به عنوان ماشین تورینگ ». [3] این نام باقی مانده است، اگرچه رایانه های مدرن قادر به انجام بسیاری از عملکردهای سطح بالاتر هستند.

تاریخچه

قبل از قرن بیستم

استخوان ایشانگو ، یک ابزار استخوانی که قدمت آن به آفریقای ماقبل تاریخ می رسد

هزاران سال است که از دستگاه‌ها برای کمک به محاسبات استفاده می‌شود و بیشتر از مکاتبات یک به یک با انگشتان دست استفاده می‌شود . اولین دستگاه شمارش به احتمال زیاد نوعی چوب شمارش بود . وسایل کمکی بعدی برای ثبت سوابق در سرتاسر هلال حاصلخیز شامل سنگ‌های سنگی (کره‌های رسی، مخروط‌ها و غیره) بود که نشان‌دهنده تعداد اقلام، احتمالاً دام یا غلات بود که در ظروف سفالی توخالی پخته نشده بودند. [a] [4] استفاده از میله های شمارش یک مثال است.

سوانپان چینی (算盘). تعداد نمایش داده شده در این چرتکه 6,302,715,408 است.

چرتکه در ابتدا برای کارهای حسابی استفاده می شد . چرتکه رومی از وسایل مورد استفاده در بابل در 2400 سال قبل از میلاد ساخته شد . از آن زمان، بسیاری از اشکال دیگر از تابلوها یا میزهای حساب ابداع شده است. در یک شمارش خانه قرون وسطایی اروپا ، پارچه شطرنجی را روی میز قرار می دادند و نشانگرها بر اساس قوانین خاصی روی آن حرکت می کردند تا کمکی برای محاسبه مبالغ پول باشد. [5]

مکانیسم Antikythera که قدمت آن به یونان باستان در حدود 150 تا 100 قبل از میلاد برمی گردد، یک دستگاه محاسباتی آنالوگ اولیه است .

به گفته درک جی. د سولا پرایس ، اعتقاد بر این است که مکانیسم Antikythera اولین کامپیوتر آنالوگ مکانیکی شناخته شده است. [6] برای محاسبه موقعیت های نجومی طراحی شده بود. در سال 1901 در ویرانه آنتیکیترا در جزیره یونانی آنتی کیترا ، بین کیترا و کرت کشف شد و قدمت آن به حدود 1000 می رسد.  100 ق.م. دستگاه هایی با پیچیدگی قابل مقایسه با مکانیسم Antikythera تا قرن چهاردهم دوباره ظاهر نشدند. [7]

بسیاری از وسایل کمک مکانیکی برای محاسبه و اندازه‌گیری برای استفاده در نجوم و ناوبری ساخته شدند. صفحه کره یک نمودار ستاره ای بود که توسط ابوریحان البیرونی در اوایل قرن یازدهم اختراع شد. [8] اسطرلاب در قرن 1 یا 2 قبل از میلاد در جهان هلنیستی اختراع شد و اغلب به هیپارخوس نسبت داده می شود . اسطرلاب ترکیبی از صفحه کره و دیوپترا ، به طور موثر یک کامپیوتر آنالوگ بود که قادر به حل چندین نوع مشکل در نجوم کروی بود . اسطرلاب شامل یک کامپیوتر تقویم مکانیکی [ 9 ] [ 10 ] و چرخ‌دنده‌ها توسط ابی بکر اصفهانی در ایران در سال 1235 اختراع شد . ماشین اولیه پردازش دانش سیمی ثابت [13] با قطار دنده و چرخ دنده، [14] ج.  1000 بعد از میلاد

بخش ، یک ابزار محاسبه برای حل مسائل به نسبت، مثلثات ، ضرب و تقسیم، و برای توابع مختلف، مانند مربع و ریشه مکعب، در اواخر قرن شانزدهم توسعه یافت و در توپخانه، نقشه برداری و ناوبری کاربرد پیدا کرد .

پلان متر یک ابزار دستی برای محاسبه مساحت یک شکل بسته با ردیابی روی آن با یک پیوند مکانیکی بود.

یک قانون اسلاید

قانون اسلاید در حدود 1620-1630 توسط کشیش انگلیسی ویلیام اوترد ، اندکی پس از انتشار مفهوم لگاریتم ابداع شد . این یک کامپیوتر آنالوگ دستی برای انجام ضرب و تقسیم است. با پیشرفت قوانین اسلاید، مقیاس های اضافه شده، متقابل، مربع و ریشه مربع، مکعب و ریشه مکعب، و همچنین توابع ماورایی مانند لگاریتم و نمایی، مثلثات دایره ای و هذلولی و سایر توابع را ارائه می دهند . قوانین اسلاید با مقیاس های خاص هنوز برای اجرای سریع محاسبات معمول استفاده می شود، مانند قانون اسلاید دایره ای E6B که برای محاسبات زمان و مسافت در هواپیماهای سبک استفاده می شود.

در دهه 1770، پیر ژاکه دروز ، ساعت‌ساز سوئیسی ، عروسکی مکانیکی ( اتوماتیک ) ساخت که می‌توانست با در دست گرفتن خودکار بنویسد. با تغییر شماره و ترتیب چرخ‌های داخلی آن حروف مختلف و در نتیجه پیام‌های متفاوتی تولید می‌شود. در واقع، می توان آن را به صورت مکانیکی برای خواندن دستورالعمل ها "برنامه ریزی" کرد. همراه با دو ماشین پیچیده دیگر، این عروسک در موزه هنر و تاریخ نوشاتل سوئیس است و هنوز هم کار می کند . [15]

در سال‌های 1831-1835، ریاضی‌دان و مهندس جووانی پلانا یک ماشین تقویم دائمی ابداع کرد که از طریق سیستمی از قرقره‌ها و سیلندرها می‌توانست تقویم همیشگی را برای هر سال از صفر تا 4000 میلادی پیش‌بینی کند. سال و طول روز متغیر ماشین پیش بینی جزر و مد که توسط دانشمند اسکاتلندی سر ویلیام تامسون در سال 1872 اختراع شد، برای ناوبری در آب های کم عمق بسیار مفید بود. از سیستمی از قرقره ها و سیم ها برای محاسبه خودکار سطوح جزر و مد پیش بینی شده برای یک دوره معین در یک مکان خاص استفاده کرد.

تحلیلگر دیفرانسیل ، یک کامپیوتر آنالوگ مکانیکی که برای حل معادلات دیفرانسیل با ادغام طراحی شده است ، از مکانیزم های چرخ و دیسک برای انجام ادغام استفاده می کند. در سال 1876، سر ویلیام تامسون قبلاً درباره ساخت احتمالی چنین ماشین‌حساب‌هایی صحبت کرده بود، اما گشتاور خروجی محدود انتگرال‌کننده‌های گوی و دیسک با مشکل مواجه شده بود . [16] در یک تحلیلگر دیفرانسیل، خروجی یک انتگرالگر ورودی انتگرالگر بعدی یا خروجی نموداری را هدایت می کند. تقویت کننده گشتاور پیشرفتی بود که به این ماشین ها اجازه کار می داد. از دهه 1920، وانوار بوش و دیگران آنالایزرهای دیفرانسیل مکانیکی را توسعه دادند.

در دهه 1890، مهندس اسپانیایی لئوناردو تورس کوودو شروع به توسعه یک سری ماشین های آنالوگ پیشرفته کرد که می توانست ریشه های واقعی و پیچیده چندجمله ای ها را حل کند ، [17] [18] [19] [20] که در سال 1901 توسط آکادمی پاریس منتشر شد. علوم . [21]

اولین کامپیوتر

چارلز بابیج

چارلز بابیج ، مهندس مکانیک و دانشمند انگلیسی ، مفهوم کامپیوتر قابل برنامه ریزی را ابداع کرد. او که " پدر کامپیوتر " در نظر گرفته می شود، [22] اولین کامپیوتر مکانیکی را در اوایل قرن نوزدهم مفهوم سازی و اختراع کرد.

پس از کار بر روی موتور دیفرانسیل خود ، اختراع خود را در سال 1822، در مقاله ای به انجمن سلطنتی نجوم ، با عنوان "یادداشت در مورد کاربرد ماشین آلات برای محاسبه جداول نجومی و ریاضی" اعلام کرد. [23] او همچنین برای کمک به محاسبات ناوبری طراحی کرد، در سال 1833 متوجه شد که یک طراحی بسیار کلی تر، یک موتور تحلیلی ، امکان پذیر است. قرار بود ورودی برنامه‌ها و داده‌ها از طریق کارت‌های پانچ در اختیار دستگاه قرار گیرد ، روشی که در آن زمان برای هدایت ماشین‌های بافندگی مکانیکی مانند ماشین بافندگی ژاکارد استفاده می‌شد . برای خروجی، دستگاه دارای یک چاپگر، یک پلاتر منحنی و یک زنگ خواهد بود. این دستگاه همچنین می‌تواند اعداد را روی کارت‌ها پانچ کند تا بعداً خوانده شوند. این موتور دارای یک واحد منطقی محاسباتی ، کنترل جریان به شکل انشعاب‌ها و حلقه‌های شرطی و حافظه یکپارچه است، که آن را به اولین طراحی برای یک کامپیوتر همه‌منظوره تبدیل می‌کند که می‌توان آن را در اصطلاح مدرن تورینگ-کامل توصیف کرد . [24] [25]

این دستگاه حدود یک قرن جلوتر از زمان خود بود. تمام قطعات دستگاه او باید با دست ساخته می شد - این یک مشکل بزرگ برای دستگاهی با هزاران قطعه بود. در نهایت با تصمیم دولت بریتانیا مبنی بر توقف تامین مالی این پروژه منحل شد. شکست بابیج در تکمیل موتور تحلیلی را می‌توان عمدتاً به مشکلات سیاسی و مالی و همچنین تمایل او به توسعه رایانه‌ای پیچیده‌تر و سریع‌تر از هر کس دیگری به پیش برد. با این وجود، پسرش، هنری بابیج ، یک نسخه ساده شده از واحد محاسباتی موتور تحلیلی ( آسیاب ) را در سال 1888 تکمیل کرد. او در سال 1906 کاربرد موفقیت آمیزی از استفاده از آن در جداول محاسباتی ارائه کرد.

ماشین محاسبات الکترومکانیکی

ماشین حساب الکترومکانیکی (1920) توسط لئوناردو تورس کوودو .

لئوناردو تورس کوودو در اثرش «مقالاتی درباره خودکار» که در سال 1914 منتشر شد، تاریخچه مختصری از تلاش‌های بابیج در ساخت موتور تفاضل مکانیکی و موتور تحلیلی نوشت. این مقاله حاوی طرحی از ماشینی است که قادر به محاسبه فرمول هایی مانند ، برای دنباله ای از مجموعه مقادیر است. قرار بود کل دستگاه توسط یک برنامه فقط خواندنی کنترل شود ، که با مقرراتی برای انشعاب شرطی کامل بود . او همچنین ایده محاسبات ممیز شناور را معرفی کرد . [26] [27] [28] در سال 1920، به مناسبت صدمین سالگرد اختراع حساب ، تورس در پاریس حساب سنج الکترومکانیکی را ارائه کرد که به کاربر اجازه می داد مسائل حسابی را از طریق صفحه کلید وارد کند و نتایج را محاسبه و چاپ کند. ، [29] [30] [31] [32] که امکان سنجی یک موتور تحلیلی الکترومکانیکی را نشان می دهد. [33]

کامپیوترهای آنالوگ

سومین طراحی ماشین پیش بینی جزر و مد سر ویلیام تامسون ، 1879-1881

در نیمه اول قرن بیستم، بسیاری از نیازهای محاسباتی علمی توسط رایانه‌های آنالوگ پیچیده‌تر، که از یک مدل مکانیکی یا الکتریکی مستقیم مسئله به عنوان مبنایی برای محاسبه استفاده می‌کردند، برآورده شد . با این حال، اینها قابل برنامه ریزی نبودند و به طور کلی فاقد تطبیق پذیری و دقت کامپیوترهای دیجیتال مدرن بودند. [34] اولین کامپیوتر آنالوگ مدرن یک ماشین پیش بینی جزر و مد بود که توسط سر ویلیام تامسون (بعدها لرد کلوین) اختراع شد. تحلیلگر دیفرانسیل ، یک کامپیوتر آنالوگ مکانیکی که برای حل معادلات دیفرانسیل با ادغام با استفاده از چرخ و مکانیزم های دیسک، در سال 1876 توسط جیمز تامسون ، برادر بزرگتر سر ویلیام تامسون، مفهوم سازی شد. [16]

هنر محاسبات آنالوگ مکانیکی با تحلیلگر دیفرانسیل که توسط HL Hazen و Vannevar Bush در MIT در سال 1927 ساخته شد ، به اوج خود رسید . ده ها مورد از این دستگاه ها قبل از آشکار شدن کهنگی آنها ساخته شده اند. در دهه 1950، موفقیت رایانه‌های الکترونیکی دیجیتال پایانی برای اکثر ماشین‌های محاسباتی آنالوگ بود، اما رایانه‌های آنالوگ در طول دهه 1950 در برخی کاربردهای تخصصی مانند آموزش ( قانون اسلاید ) و هواپیما ( سیستم‌های کنترل ) مورد استفاده قرار گرفتند.

کامپیوترهای دیجیتال

الکترومکانیکی

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

ماکت Z3 Konrad Zuse ، اولین کامپیوتر تمام اتوماتیک دیجیتال (الکترومکانیکی)

کامپیوترهای دیجیتال اولیه الکترومکانیکی بودند . سوئیچ های الکتریکی برای انجام محاسبات، رله های مکانیکی را به حرکت درآوردند. این دستگاه‌ها سرعت عملکرد پایینی داشتند و در نهایت توسط رایانه‌های تمام الکتریکی بسیار سریع‌تر، که در ابتدا از لوله‌های خلاء استفاده می‌کردند، جایگزین شدند . Z2 که توسط مهندس آلمانی Konrad Zuse در سال 1939 در برلین ساخته شد ، یکی از اولین نمونه های کامپیوتر رله الکترومکانیکی بود. [35]

Konrad Zuse ، مخترع کامپیوتر مدرن [36] [37]

در سال 1941، Zuse دستگاه قبلی خود را با Z3 ، اولین کامپیوتر دیجیتالی قابل برنامه ریزی الکترومکانیکی کارآمد و کاملا اتوماتیک در جهان دنبال کرد. [38] [39] Z3 با 2000 رله ساخته شد که طول کلمه 22 بیتی را پیاده‌سازی می‌کرد که در فرکانس ساعت حدود 5 تا 10 هرتز کار می‌کرد . [40] کد برنامه بر روی فیلم پانچ شده ارائه می شد در حالی که داده ها را می توان در 64 کلمه حافظه ذخیره کرد یا از صفحه کلید تهیه کرد. این دستگاه از برخی جهات کاملاً شبیه ماشین‌های مدرن بود و پیشرفت‌های متعددی مانند اعداد ممیز شناور را پیشرو کرد . به جای سیستم اعشاری سخت‌تر برای پیاده‌سازی (که در طراحی قبلی چارلز بابیج استفاده می‌شد)، استفاده از یک سیستم دودویی به این معنی بود که ماشین‌های Zuse با توجه به فناوری‌های موجود در آن زمان ساخت آسان‌تر و بالقوه قابل اعتمادتر بودند. [41] Z3 به خودی خود یک کامپیوتر جهانی نبود، اما می‌توان آن را تا تکمیل تورینگ گسترش داد . [42] [43]

کامپیوتر بعدی Zuse، Z4 ، اولین کامپیوتر تجاری جهان شد. پس از تاخیر اولیه به دلیل جنگ جهانی دوم، در سال 1950 تکمیل و به ETH زوریخ تحویل داده شد . [44] کامپیوتر توسط شرکت خود Zuse، Zuse KG ، که در سال 1941 به عنوان اولین شرکت با هدف توسعه کامپیوترها در برلین تاسیس شد، ساخته شد. [44]

لوله های خلاء و مدارهای الکترونیکی دیجیتال

المان های مدار کاملاً الکترونیکی به زودی جایگزین معادل های مکانیکی و الکترومکانیکی خود شدند، در همان زمان که محاسبات دیجیتالی جایگزین آنالوگ شد. مهندس تامی فلاورز ، که در دهه 1930 در ایستگاه تحقیقاتی اداره پست لندن کار می کرد، شروع به کشف استفاده احتمالی از وسایل الکترونیکی برای مبادلات تلفنی کرد . تجهیزات آزمایشی که او در سال 1934 ساخت، پنج سال بعد به بهره برداری رسید و بخشی از شبکه مبادله تلفن را با استفاده از هزاران لوله خلاء به یک سیستم پردازش الکترونیکی داده تبدیل کرد . [34] در ایالات متحده، جان وینسنت آتاناسوف و کلیفورد ای. بری از دانشگاه ایالتی آیووا، کامپیوتر Atanasoff-Berry (ABC) را در سال 1942 توسعه و آزمایش کردند ، [45] اولین "کامپیوتر دیجیتال الکترونیکی خودکار". [46] این طرح همچنین تمام الکترونیکی بود و از حدود 300 لوله خلاء، با خازن‌های ثابت در یک درام چرخان مکانیکی برای حافظه استفاده می‌کرد. [47]

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

در طول جنگ جهانی دوم، کدشکن های بریتانیایی در پارک بلچلی به تعدادی موفقیت در شکستن ارتباطات نظامی رمزگذاری شده آلمانی دست یافتند. دستگاه رمزگذاری آلمانی انیگما ابتدا با کمک بمب های الکترومکانیکی که اغلب توسط زنان اداره می شد مورد حمله قرار گرفت. [48] ​​[49] برای شکستن ماشین پیچیده‌تر آلمانی Lorenz SZ 40/42 که برای ارتباطات ارتش در سطح بالا استفاده می‌شد، مکس نیومن و همکارانش فلاورز را مأمور ساختن کلوسوس کردند . [47] او یازده ماه از اوایل فوریه 1943 را صرف طراحی و ساخت اولین کلوسوس کرد. [50] پس از یک آزمایش عملکردی در دسامبر 1943، Colossus به بلچلی پارک فرستاده شد، جایی که در 18 ژانویه 1944 تحویل داده شد [51] و اولین پیام خود را در 5 فوریه مورد حمله قرار داد. [47]

Colossus اولین کامپیوتر دیجیتال الکترونیکی قابل برنامه ریزی در جهان بود . [34] از تعداد زیادی شیر (لوله های خلاء) استفاده می کرد. این ورودی نوار کاغذی داشت و می‌توانست برای انجام انواع عملیات منطقی بولی روی داده‌هایش پیکربندی شود، اما تورینگ کامل نبود. نه Mk II Colossi ساخته شد (Mk I به Mk II تبدیل شد و در مجموع ده ماشین ساخت). Colossus Mark I حاوی 1500 دریچه ترمیونیک (لوله) بود، اما Mark II با 2400 سوپاپ، پنج برابر سریعتر و ساده تر از Mark I کار می کرد و روند رمزگشایی را تا حد زیادی سرعت می بخشید. [52] [53]

ENIAC اولین دستگاه الکترونیکی کامل تورینگ بود و محاسبات مسیر بالستیک را برای ارتش ایالات متحده انجام داد .

ENIAC [54] (Electronic Numerical Integrator and Computer) اولین کامپیوتر قابل برنامه ریزی الکترونیکی بود که در ایالات متحده ساخته شد اگرچه انیاک شبیه به Colossus بود، اما بسیار سریعتر ، انعطاف پذیرتر و کاملتر تورینگ بود. مانند Colossus، یک «برنامه» در ENIAC با وضعیت کابل‌ها و سوئیچ‌های وصله آن تعریف شد، که فاصله زیادی با برنامه‌های ذخیره‌شده ماشین‌های الکترونیکی که بعداً ارائه شد، بود. هنگامی که یک برنامه نوشته شد، باید به صورت مکانیکی با تنظیم مجدد دوشاخه ها و سوئیچ ها در دستگاه تنظیم می شد. برنامه نویسان انیاک شش زن بودند که اغلب در مجموع به عنوان "دختران انیاک" شناخته می شدند. [55] [56]

سرعت بالای الکترونیک را با قابلیت برنامه ریزی برای بسیاری از مشکلات پیچیده ترکیب کرد. این می تواند 5000 بار در ثانیه اضافه یا کم کند، هزار بار سریعتر از هر ماشین دیگری. همچنین ماژول هایی برای ضرب، تقسیم و جذر داشت. حافظه با سرعت بالا به 20 کلمه (حدود 80 بایت) محدود شد. توسعه و ساخت انیاک که تحت هدایت جان ماچلی و جی. شامل بیش از 18000 لوله خلاء، 1500 رله و صدها هزار مقاومت، خازن و سلف بود. [57]

کامپیوترهای مدرن

مفهوم کامپیوتر مدرن

اصل کامپیوتر مدرن توسط آلن تورینگ در مقاله مهم خود در سال 1936، [58] در مورد اعداد قابل محاسبه پیشنهاد شد . تورینگ دستگاه ساده ای را پیشنهاد کرد که آن را «ماشین محاسبات جهانی» نامید و اکنون به عنوان ماشین تورینگ جهانی شناخته می شود . او ثابت کرد که چنین ماشینی قادر به محاسبه هر چیزی است که قابل محاسبه است با اجرای دستورالعمل ها (برنامه) ذخیره شده روی نوار، به ماشین امکان برنامه ریزی را می دهد. مفهوم اساسی طراحی تورینگ برنامه ذخیره شده است که در آن تمام دستورالعمل های محاسبه در حافظه ذخیره می شود. فون نویمان تصدیق کرد که مفهوم اصلی کامپیوتر مدرن به دلیل این مقاله است. [59] ماشین‌های تورینگ تا به امروز موضوع اصلی مطالعه در نظریه محاسبات هستند . به جز محدودیت‌های تحمیل‌شده توسط حافظه‌های محدود آنها، رایانه‌های مدرن تورینگ کامل هستند ، که می‌گویند، آنها دارای قابلیت اجرای الگوریتمی معادل یک ماشین تورینگ جهانی هستند.

برنامه های ذخیره شده

سه قفسه بلند حاوی مدارهای الکترونیکی
بخشی از منچستر بیبی بازسازی شده ، اولین رایانه الکترونیکی با برنامه ذخیره شده

ماشین های محاسباتی اولیه برنامه های ثابتی داشتند. تغییر عملکرد آن نیازمند سیم کشی مجدد و ساختار مجدد دستگاه است. [47] با پیشنهاد کامپیوتر برنامه ذخیره شده، این تغییر کرد. یک کامپیوتر برنامه ذخیره شده با طراحی شامل یک مجموعه دستورالعمل است و می تواند مجموعه ای از دستورالعمل ها (یک برنامه ) را در حافظه ذخیره کند که جزئیات محاسبات را انجام می دهد . اساس نظری کامپیوتر برنامه ذخیره شده توسط آلن تورینگ در مقاله خود در سال 1936 ارائه شد. در سال 1945، تورینگ به آزمایشگاه ملی فیزیک ملحق شد و کار بر روی توسعه یک کامپیوتر دیجیتالی با برنامه ذخیره شده الکترونیکی را آغاز کرد. گزارش او در سال 1945 "ماشین حساب الکترونیکی پیشنهادی" اولین مشخصات برای چنین دستگاهی بود. جان فون نویمان در دانشگاه پنسیلوانیا نیز اولین پیش نویس گزارش خود در مورد EDVAC را در سال 1945 منتشر کرد. [34]

منچستر بیبی اولین کامپیوتر با برنامه ذخیره شده در جهان بود . این در دانشگاه منچستر در انگلستان توسط فردریک سی ویلیامز ، تام کیلبرن و جف توتیل ساخته شد و اولین برنامه خود را در 21 ژوئن 1948 اجرا کرد . دسترسی به دستگاه ذخیره سازی دیجیتال [61] اگرچه کامپیوتر در سال 1998 به عنوان "کوچک و بدوی" توصیف شد، اما اولین ماشین کاری بود که حاوی تمام عناصر ضروری برای یک کامپیوتر الکترونیکی مدرن بود. [62] به محض اینکه Baby امکان‌سنجی طراحی خود را نشان داد، پروژه‌ای در دانشگاه آغاز شد تا آن را به یک کامپیوتر عملا مفید تبدیل کند، منچستر مارک 1 .

Mark 1 به نوبه خود به سرعت به نمونه اولیه Ferranti Mark 1 تبدیل شد ، اولین کامپیوتر همه منظوره تجاری موجود در جهان. [63] ساخته شده توسط Ferranti ، در فوریه 1951 به دانشگاه منچستر تحویل داده شد. حداقل هفت دستگاه از این ماشین های بعدی بین سال های 1953 و 1957 تحویل داده شد، یکی از آنها به آزمایشگاه های شل در آمستردام . [64] در اکتبر 1947، مدیران شرکت پذیرایی بریتانیا J. Lyons & Company تصمیم گرفتند که نقش فعالی در ترویج توسعه تجاری کامپیوترها داشته باشند. کامپیوتر LEO I لیون ، که از نزدیک از کمبریج EDSAC در سال 1949 الگوبرداری شده بود، در آوریل 1951 عملیاتی شد [65] و اولین کار معمول کامپیوتر اداری در جهان را اجرا کرد .

ترانزیستورها

ترانزیستور اتصال دوقطبی (BJT)

مفهوم ترانزیستور اثر میدانی توسط جولیوس ادگار لیلینفلد در سال 1925 ارائه شد. جان باردین و والتر براتین ، در حالی که زیر نظر ویلیام شاکلی در آزمایشگاه بل کار می کردند ، اولین ترانزیستور کار ، ترانزیستور تماس نقطه ای را در سال 1947 ساختند که به دنبال آن انجام شد. توسط ترانزیستور اتصال دوقطبی شاکلی در سال 1948. [66] [67] از سال 1955 به بعد، ترانزیستورها جایگزین لوله های خلاء در طراحی های کامپیوتری شدند که باعث ایجاد "نسل دوم" کامپیوترها شد. در مقایسه با لوله‌های خلاء، ترانزیستورها مزایای زیادی دارند: کوچک‌تر هستند و به انرژی کمتری نسبت به لوله‌های خلاء نیاز دارند، بنابراین گرمای کمتری از خود ساطع می‌کنند. ترانزیستورهای اتصالی بسیار قابل اعتمادتر از لوله های خلاء بودند و عمر طولانی تر و نامحدود داشتند. کامپیوترهای ترانزیستوری می توانند شامل ده ها هزار مدار منطقی باینری در یک فضای نسبتا فشرده باشند. با این حال، ترانزیستورهای اتصال اولیه دستگاه های نسبتاً حجیمی بودند که ساخت آنها به صورت تولید انبوه دشوار بود ، که آنها را به تعدادی از کاربردهای تخصصی محدود می کرد. [68]

در دانشگاه منچستر ، تیمی به رهبری تام کیلبرن، ماشینی را با استفاده از ترانزیستورهای جدید توسعه یافته به جای سوپاپ طراحی و ساختند. [69] اولین کامپیوتر ترانزیستوری شده آنها و اولین کامپیوتر در جهان، تا سال 1953 عملیاتی شد و نسخه دوم در آوریل 1955 در آنجا تکمیل شد. خواندن و نوشتن بر روی حافظه درام مغناطیسی خود ، بنابراین اولین کامپیوتر کاملاً ترانزیستوری نبود. این تمایز به هارول CADET در سال 1955، [70] توسط بخش الکترونیک مرکز تحقیقات انرژی اتمی در هارول ساخته شد . [70] [71]

ماسفت (ترانزیستور MOS)، پایانه‌های گیت (G)، بدنه (B)، منبع (S) و تخلیه (D) را نشان می‌دهد. دروازه توسط یک لایه عایق (صورتی) از بدنه جدا می شود.

ترانزیستور اثر میدانی فلز-اکسید-سیلیکون (MOSFET) که با نام ترانزیستور MOS نیز شناخته می‌شود، بین سال‌های 1955 و 1960 در آزمایشگاه‌های بل اختراع شد [72] [73] [74] [75] [76] [77] و اولین ترانزیستور واقعا فشرده که می تواند کوچک شده و برای طیف وسیعی از کاربردها تولید انبوه شود. [68] با مقیاس پذیری بالا ، [78] و مصرف انرژی بسیار کمتر و چگالی بیشتر نسبت به ترانزیستورهای پیوند دوقطبی، [79] ماسفت ساخت مدارهای مجتمع با چگالی بالا را ممکن کرد . [80] [81] علاوه بر پردازش داده ها، استفاده عملی از ترانزیستورهای MOS را به عنوان عناصر ذخیره سلول حافظه نیز ممکن کرد ، که منجر به توسعه حافظه نیمه هادی MOS شد که جایگزین حافظه هسته مغناطیسی قبلی در رایانه ها شد. ماسفت به انقلاب میکروکامپیوتر منجر شد ، [82] و به نیروی محرکه انقلاب رایانه تبدیل شد . [83] [84] ماسفت پرکاربردترین ترانزیستور در کامپیوترها است، [85] [86] و بلوک اصلی ساختمان الکترونیک دیجیتال است . [87]

مدارهای مجتمع

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

پیشرفت بزرگ بعدی در قدرت محاسباتی با ظهور مدار مجتمع (IC) بود. ایده مدار مجتمع برای اولین بار توسط یک دانشمند رادار که برای تأسیسات سلطنتی رادار وزارت دفاع کار می کرد ، جفری وا . دامر اولین توصیف عمومی یک مدار مجتمع را در سمپوزیوم پیشرفت در قطعات الکترونیکی با کیفیت در واشنگتن دی سی در 7 می 1952 ارائه کرد. [88]

اولین آی سی های فعال توسط جک کیلبی در Texas Instruments و رابرت نویس در Fairchild Semiconductor اختراع شدند . [ 89] کیلبی ایده های اولیه خود را در مورد مدار مجتمع در ژوئیه 1958 ثبت کرد و اولین نمونه کار یکپارچه را در 12 سپتامبر 1958 با موفقیت نشان داد . مواد نیمه هادی ... که در آن تمام اجزای مدار الکترونیکی کاملاً یکپارچه شده اند. [91] [92] با این حال، اختراع کیلبی به جای یک تراشه مدار مجتمع یکپارچه (IC) یک مدار مجتمع ترکیبی (IC هیبریدی) بود. [93] آی سی کیلبی دارای اتصالات سیم خارجی بود که تولید انبوه را دشوار می کرد. [94]

نویس نیز نیم سال دیرتر از کیلبی ایده خود را در مورد یک مدار مجتمع مطرح کرد. [95] اختراع Noyce اولین تراشه IC یکپارچه واقعی بود. [96] [94] تراشه او بسیاری از مشکلات عملی را حل کرد که کیلبی نتوانسته بود. تولید شده در Fairchild Semiconductor، از سیلیکون ساخته شده بود ، در حالی که تراشه Kilby از ژرمانیوم ساخته شده بود . IC یکپارچه Noyce با استفاده از فرآیند مسطح ساخته شد که توسط همکارش Jean Hoerni در اوایل سال 1959 توسعه یافت. به نوبه خود، فرآیند مسطح بر اساس کار Carl Frosch و Lincoln Derick بر روی غیرفعال کردن سطح نیمه هادی توسط دی اکسید سیلیکون بود. [97] [98] [99] [100] [101] [102]

آی سی های یکپارچه مدرن عمدتاً مدارهای مجتمع MOS ( فلز-اکسید-نیمه هادی ) هستند که از ماسفت ها (ترانزیستورهای MOS) ساخته شده اند. [ 103] اولین IC آزمایشی MOS ساخته شده یک تراشه 16 ترانزیستوری بود که توسط فرد هیمن و استیون هافستاین در RCA در سال 1962 ساخته شد . نورمن. [104] پس از توسعه ترانزیستور MOS گیت خود تراز (دروازه سیلیکونی) توسط رابرت کروین، دونالد کلاین و جان ساراس در آزمایشگاه بل در سال 1967، اولین IC MOS گیت سیلیکونی با گیت های خود تراز توسط فدریکو توسعه یافت . Faggin در Fairchild Semiconductor در سال 1968. [106] MOSFET از آن زمان به مهم ترین جزء دستگاه در آی سی های مدرن تبدیل شده است. [103]

عکس یک MOS 6502 ، یک ریزپردازنده اوایل دهه 1970 که 3500 ترانزیستور را روی یک تراشه ادغام می‌کند.

توسعه مدار مجتمع MOS منجر به اختراع ریزپردازنده ، [ 107] [108] شد و انفجاری را در استفاده تجاری و شخصی از رایانه‌ها نوید داد. در حالی که موضوع دقیقاً اینکه کدام دستگاه اولین ریزپردازنده بوده است بحث برانگیز است، تا حدی به دلیل عدم توافق در مورد تعریف دقیق اصطلاح "ریزپردازنده"، تا حد زیادی قابل بحث نیست که اولین ریزپردازنده تک تراشه اینتل 4004 بود ، [109] طراحی و اجرا توسط فدریکو فاگین با فناوری MOS IC سیلیکونی گیت، [107] همراه با تد هاف ، ماساتوشی شیما و استنلی مازور در اینتل . [b] [111] در اوایل دهه 1970، فناوری MOS IC امکان ادغام بیش از 10000 ترانزیستور را روی یک تراشه واحد فراهم کرد. [81]

سیستم روی تراشه (SoCs) کامپیوترهای کاملی هستند که روی یک ریزتراشه (یا تراشه) به اندازه یک سکه هستند. [112] آنها ممکن است RAM و حافظه فلش یکپارچه داشته باشند یا نداشته باشند . اگر یکپارچه نباشد، رم معمولاً مستقیماً در بالای SoC (معروف به Package on Package ) یا زیر (در طرف مقابل برد مدار ) SoC قرار می گیرد و فلش مموری معمولاً دقیقاً در کنار SoC قرار می گیرد. این کار برای بهبود سرعت انتقال داده انجام می شود، زیرا سیگنال های داده نیازی به طی مسافت های طولانی ندارند. از زمان انیاک در سال 1945، کامپیوترها بسیار پیشرفت کرده اند، به طوری که SoC های مدرن (مانند اسنپدراگون 865) به اندازه یک سکه بوده و همچنین صدها هزار بار قدرتمندتر از انیاک هستند، میلیاردها ترانزیستور را ادغام می کنند و تنها چند وات مصرف می کنند. از قدرت

کامپیوترهای موبایل

اولین کامپیوترهای همراه سنگین بودند و از برق اصلی کار می کردند. IBM 5100 50 پوند (23 کیلوگرم) نمونه اولیه بود. لپ‌تاپ‌های قابل حمل بعدی مانند Osborne 1 و Compaq Portable به‌طور قابل‌توجهی سبک‌تر بودند، اما هنوز باید به برق متصل شوند. اولین لپ‌تاپ‌ها، مانند Grid Compass ، این نیاز را با استفاده از باتری‌ها حذف کردند - و با کوچک‌سازی مداوم منابع محاسباتی و پیشرفت‌های قابل حمل. عمر باتری، کامپیوترهای قابل حمل در دهه 2000 محبوبیت یافتند. [113] همان پیشرفت‌ها به تولیدکنندگان اجازه داد تا منابع محاسباتی را در تلفن‌های همراه تلفن همراه تا اوایل دهه 2000 ادغام کنند.

این گوشی های هوشمند و تبلت ها بر روی انواع سیستم عامل ها اجرا می شوند و اخیراً به دستگاه محاسباتی غالب در بازار تبدیل شده اند. [114] اینها توسط سیستم روی یک تراشه (SoCs)، که کامپیوترهای کاملی روی یک ریزتراشه به اندازه یک سکه هستند، تغذیه می‌شوند . [112]

انواع

رایانه ها را می توان به روش های مختلفی طبقه بندی کرد، از جمله:

توسط معماری

بر اساس اندازه، فرم-فاکتور و هدف

سخت افزار

ویدئویی که اجزای استاندارد یک کامپیوتر "slimline" را نشان می دهد

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

تاریخچه سخت افزار محاسباتی

سایر مباحث سخت افزاری

یک کامپیوتر همه منظوره دارای چهار جزء اصلی است: واحد منطق حسابی (ALU)، واحد کنترل ، حافظه ، و دستگاه های ورودی و خروجی (که در مجموع I/O نامیده می شوند). این قسمت ها توسط اتوبوس هایی که اغلب از گروه های سیم ساخته شده اند به هم متصل می شوند . در داخل هر یک از این قسمت ها هزاران تا تریلیون مدار الکتریکی کوچک وجود دارد که می توان آنها را با استفاده از یک کلید الکترونیکی خاموش یا روشن کرد . هر مدار یک بیت (رقم دودویی) از اطلاعات را نشان می دهد به طوری که وقتی مدار روشن است نشان دهنده یک "1" و زمانی که خاموش است نشان دهنده "0" (در نمایش منطق مثبت) است. مدارها در گیت های منطقی مرتب شده اند به طوری که یک یا چند مدار می توانند وضعیت یک یا چند مدار دیگر را کنترل کنند.

دستگاه های ورودی

هنگامی که داده های پردازش نشده با کمک دستگاه های ورودی به رایانه ارسال می شوند، داده ها پردازش شده و به دستگاه های خروجی ارسال می شوند. دستگاه های ورودی ممکن است دستی یا خودکار باشند. عمل پردازش عمدتاً توسط CPU تنظیم می شود. چند نمونه از دستگاه های ورودی عبارتند از:

دستگاه های خروجی

ابزارهایی که کامپیوتر از طریق آنها خروجی می دهد به عنوان دستگاه های خروجی شناخته می شوند. چند نمونه از دستگاه های خروجی عبارتند از:

واحد کنترل

نمودار نشان می دهد که چگونه یک دستورالعمل خاص معماری MIPS توسط سیستم کنترل رمزگشایی می شود

واحد کنترل (که اغلب سیستم کنترل یا کنترل کننده مرکزی نامیده می شود) اجزای مختلف کامپیوتر را مدیریت می کند. دستورالعمل های برنامه را می خواند و تفسیر (رمزگشایی) می کند و آنها را به سیگنال های کنترلی تبدیل می کند که سایر قسمت های رایانه را فعال می کند. [d] سیستم‌های کنترل در رایانه‌های پیشرفته ممکن است ترتیب اجرای برخی دستورالعمل‌ها را برای بهبود عملکرد تغییر دهند.

یکی از اجزای کلیدی مشترک برای همه CPU ها شمارنده برنامه است ، یک سلول حافظه ویژه (یک ثبات ) که دستورات بعدی را از کدام مکان در حافظه باید خواند. [e]

عملکرد سیستم کنترل به شرح زیر است - این یک توضیح ساده است و برخی از این مراحل بسته به نوع CPU ممکن است همزمان یا به ترتیب متفاوتی انجام شوند:

  1. کد دستور بعدی را از سلول نشان داده شده توسط شمارنده برنامه بخوانید.
  2. کد عددی دستورالعمل را به مجموعه ای از دستورات یا سیگنال ها برای هر یک از سیستم های دیگر رمزگشایی کنید.
  3. شمارنده برنامه را افزایش دهید تا به دستور بعدی اشاره کند.
  4. هر داده ای را که دستورالعمل نیاز دارد از سلول های حافظه (یا شاید از یک دستگاه ورودی) بخوانید. محل این داده های مورد نیاز معمولاً در کد دستورالعمل ذخیره می شود.
  5. داده های لازم را به یک ALU یا ثبت نام کنید.
  6. اگر دستورالعمل برای تکمیل نیاز به ALU یا سخت افزار تخصصی دارد، به سخت افزار دستور دهید تا عملیات درخواستی را انجام دهد.
  7. نتیجه را از ALU به یک مکان حافظه یا در یک ثبات یا شاید یک دستگاه خروجی بنویسید.
  8. به مرحله (1) برگردید.

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

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

واحد پردازش مرکزی (CPU)

واحد کنترل، ALU و رجیسترها در مجموع به عنوان واحد پردازش مرکزی (CPU) شناخته می شوند. CPUهای اولیه از بسیاری از اجزای مجزا تشکیل شده بودند. از دهه 1970، CPUها معمولاً بر روی یک تراشه مدار مجتمع MOS به نام ریزپردازنده ساخته می‌شوند .

واحد منطق حسابی (ALU)

ALU قادر به انجام دو دسته عملیات است: حسابی و منطقی. [119] مجموعه ای از عملیات حسابی که یک ALU خاص پشتیبانی می کند ممکن است به جمع و تفریق محدود شود یا ممکن است شامل ضرب، تقسیم، توابع مثلثاتی مانند سینوس، کسینوس و غیره و ریشه های مربع باشد . برخی می توانند فقط بر روی اعداد کامل ( اعداد صحیح ) عمل کنند در حالی که برخی دیگر از ممیز شناور برای نمایش اعداد واقعی استفاده می کنند ، البته با دقت محدود. با این حال، هر رایانه ای که قادر به انجام ساده ترین عملیات باشد، می تواند برنامه ریزی شود تا عملیات پیچیده تر را به مراحل ساده ای که می تواند انجام دهد تقسیم کند. بنابراین، هر کامپیوتری را می‌توان برای انجام هر عملیات حسابی برنامه‌ریزی کرد، اگرچه اگر ALU آن مستقیماً از این عملیات پشتیبانی نکند، انجام آن زمان بیشتری می‌برد. یک ALU همچنین ممکن است اعداد را با هم مقایسه کند و مقادیر صدق بولی (درست یا نادرست) را بسته به اینکه یکی برابر، بزرگتر یا کوچکتر از دیگری باشد ("64 بزرگتر از 65 است؟") برگرداند . عملیات منطقی شامل منطق بولی است : AND ، OR ، XOR ، و NOT . اینها می توانند برای ایجاد عبارات شرطی پیچیده و پردازش منطق بولی مفید باشند .

کامپیوترهای Superscalar ممکن است حاوی چندین ALU باشند که به آنها امکان می دهد چندین دستورالعمل را به طور همزمان پردازش کنند. [120] پردازنده‌های گرافیکی و رایانه‌های دارای ویژگی‌های SIMD و MIMD اغلب حاوی ALU هستند که می‌توانند محاسبات را روی بردارها و ماتریس‌ها انجام دهند .

حافظه

حافظه هسته مغناطیسی (با استفاده از هسته های مغناطیسی ) حافظه انتخابی کامپیوتر در دهه 1960 بود، تا زمانی که با حافظه نیمه هادی (با استفاده از سلول های حافظه MOS ) جایگزین شد.

حافظه رایانه را می توان به عنوان لیستی از سلول ها مشاهده کرد که اعداد را می توان در آنها قرار داد یا خواند. هر سلول دارای یک "آدرس" شماره گذاری شده است و می تواند یک عدد واحد را ذخیره کند. می توان به رایانه دستور داد که "عدد 123 را در سلول شماره 1357 قرار دهد" یا "عددی را که در سلول 1357 است به عددی که در سلول 2468 است اضافه کند و پاسخ را در سلول 1595 قرار دهد." اطلاعات ذخیره شده در حافظه ممکن است عملاً هر چیزی را نشان دهد. حروف، اعداد، حتی دستورالعمل های کامپیوتری را می توان به راحتی در حافظه قرار داد. از آنجایی که CPU بین انواع مختلف اطلاعات تفاوتی قائل نمی شود، این وظیفه نرم افزار است که به آنچه که حافظه چیزی جز یک سری اعداد نمی بیند اهمیت دهد.

تقریباً در تمام رایانه های مدرن، هر سلول حافظه برای ذخیره اعداد باینری در گروه های هشت بیتی (بایت ) تنظیم شده است . هر بایت می تواند 256 عدد مختلف را نشان دهد (2 8 = 256). یا از 0 تا 255 یا -128 تا +127. برای ذخیره اعداد بزرگتر، ممکن است از چندین بایت متوالی (معمولاً دو، چهار یا هشت) استفاده شود. هنگامی که اعداد منفی مورد نیاز است، معمولاً در نمادهای مکمل دو ذخیره می شوند . ترتیبات دیگری ممکن است، اما معمولاً خارج از برنامه های تخصصی یا زمینه های تاریخی دیده نمی شوند. یک کامپیوتر می تواند هر نوع اطلاعاتی را در حافظه ذخیره کند اگر بتوان آن را به صورت عددی نمایش داد. کامپیوترهای مدرن میلیاردها یا حتی تریلیون ها بایت حافظه دارند.

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

حافظه اصلی کامپیوتر در دو نوع اصلی وجود دارد:

RAM را می توان هر زمان که CPU دستور داد خوانده و روی آن نوشته شود، اما ROM با داده ها و نرم افزارهایی از قبل بارگذاری شده است که هرگز تغییر نمی کنند، بنابراین CPU فقط می تواند از روی آن بخواند. ROM معمولاً برای ذخیره دستورالعمل های راه اندازی اولیه رایانه استفاده می شود. به طور کلی، محتویات RAM زمانی که برق کامپیوتر قطع می شود پاک می شود، اما رام اطلاعات خود را به طور نامحدود حفظ می کند. در رایانه شخصی، رام حاوی یک برنامه تخصصی به نام BIOS است که بارگذاری سیستم عامل رایانه را از درایو دیسک سخت در حافظه رم هر زمان که رایانه روشن یا تنظیم مجدد می شود، هماهنگ می کند. در رایانه های جاسازی شده ، که اغلب درایوهای دیسک ندارند، ممکن است همه نرم افزارهای مورد نیاز در رام ذخیره شوند. نرم افزارهای ذخیره شده در رام اغلب سفت افزار نامیده می شوند ، زیرا از نظر تصوری بیشتر شبیه سخت افزار هستند تا نرم افزار. فلش مموری تمایز بین رام و رم را محو می کند، زیرا در صورت خاموش شدن اطلاعات خود را حفظ می کند اما قابل بازنویسی نیز می باشد. با این حال، معمولاً بسیار کندتر از رام و رم معمولی است، بنابراین استفاده از آن به برنامه هایی محدود می شود که سرعت بالا غیر ضروری است. [f]

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

ورودی/خروجی (I/O)

هارد دیسک دستگاه های ذخیره سازی رایجی هستند که با رایانه ها استفاده می شوند.

ورودی/خروجی وسیله ای است که کامپیوتر به وسیله آن اطلاعات را با دنیای خارج مبادله می کند. [122] دستگاه هایی که ورودی یا خروجی را برای کامپیوتر فراهم می کنند، لوازم جانبی نامیده می شوند . [123] در یک رایانه شخصی معمولی، تجهیزات جانبی شامل دستگاه‌های ورودی مانند صفحه‌کلید و ماوس ، و دستگاه‌های خروجی مانند نمایشگر و چاپگر است . درایوهای دیسک سخت ، درایوهای فلاپی دیسک و درایوهای دیسک نوری هم به عنوان دستگاه های ورودی و هم خروجی عمل می کنند. شبکه های کامپیوتری شکل دیگری از I/O است. دستگاه های ورودی/خروجی اغلب به تنهایی کامپیوترهای پیچیده ای هستند که CPU و حافظه مخصوص به خود را دارند. یک واحد پردازش گرافیکی ممکن است شامل پنجاه یا بیشتر کامپیوتر کوچک باشد که محاسبات لازم برای نمایش گرافیک سه بعدی را انجام می دهند . [ نیازمند منبع ] کامپیوترهای رومیزی مدرن شامل بسیاری از کامپیوترهای کوچکتر هستند که به CPU اصلی در انجام I/O کمک می کنند. یک نمایشگر صفحه تخت متعلق به سال 2016 حاوی مدارهای کامپیوتری خاص خود است.

چند وظیفه ای

در حالی که یک کامپیوتر ممکن است به عنوان اجرای یک برنامه غول پیکر ذخیره شده در حافظه اصلی آن در نظر گرفته شود، در برخی از سیستم ها لازم است ظاهری شبیه اجرای چندین برنامه به طور همزمان داده شود. این امر با چندوظیفگی به دست می‌آید، یعنی داشتن رایانه به سرعت بین اجرای هر برنامه به نوبه خود. [124] یکی از ابزارهایی که به وسیله آن این کار انجام می شود سیگنال خاصی به نام وقفه است که می تواند به طور دوره ای باعث شود که کامپیوتر اجرای دستورالعمل ها را در جایی که بود متوقف کند و به جای آن کار دیگری انجام دهد. با یادآوری محل اجرای آن قبل از وقفه، رایانه می‌تواند بعداً به آن کار بازگردد. اگر چندین برنامه "همزمان" در حال اجرا هستند. در این صورت ممکن است مولد وقفه در هر ثانیه صدها وقفه ایجاد کند که هر بار باعث تغییر برنامه می شود. از آنجایی که رایانه‌های مدرن معمولاً دستورات را چندین مرتبه سریع‌تر از تصور انسان اجرا می‌کنند، ممکن است به نظر برسد که بسیاری از برنامه‌ها همزمان اجرا می‌شوند، حتی اگر تنها یکی از آنها در هر لحظه اجرا شود. این روش چندوظیفه ای را گاهی اوقات «اشتراک گذاری زمان» می نامند زیرا هر برنامه به نوبه خود یک «برش» از زمان را اختصاص می دهد. [125]

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

چند پردازش

کری ابررایانه های زیادی را طراحی کرد که به شدت از چند پردازش استفاده می کردند.

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

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

نرم افزار

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

زبان ها

هزاران زبان برنامه نویسی مختلف وجود دارد - برخی برای اهداف عمومی در نظر گرفته شده اند، برخی دیگر فقط برای برنامه های کاربردی بسیار تخصصی مفید هستند.

برنامه ها

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

معماری برنامه ذخیره شده

ماکت کودک منچستر ، اولین رایانه الکترونیکی با برنامه ذخیره شده در جهان ، در موزه علم و صنعت در منچستر، انگلستان

این بخش برای اکثر رایانه های متداول مبتنی بر RAM دستگاه اعمال می شود .

در بیشتر موارد، دستورالعمل‌های رایانه ساده هستند: یک عدد را به شماره دیگر اضافه کنید، برخی از داده‌ها را از یک مکان به مکان دیگر منتقل کنید، یک پیام به دستگاه خارجی ارسال کنید، و غیره. این دستورالعمل‌ها از حافظه رایانه خوانده می‌شوند و به طور کلی اجرا می‌شوند ( اجرا می‌شوند ) به ترتیبی که به آنها داده شد. با این حال، معمولاً دستورالعمل‌های تخصصی وجود دارد که به رایانه می‌گوید به جای دیگری در برنامه به جلو یا عقب بپرد و از آنجا به اجرا ادامه دهد. این دستورالعمل ها (یا شاخه ها ) "پرش" نامیده می شوند . علاوه بر این، دستورالعمل‌های پرش ممکن است به صورت مشروط اتفاق بیفتد ، به طوری که توالی‌های متفاوتی از دستورالعمل‌ها ممکن است بسته به نتیجه محاسبه قبلی یا رویداد خارجی مورد استفاده قرار گیرند. بسیاری از رایانه‌ها مستقیماً از زیرروال‌ها پشتیبانی می‌کنند و نوعی پرش را ارائه می‌کنند که مکانی را که از آن پریده است را به یاد می‌آورد و دستورالعمل دیگری برای بازگشت به دستورالعمل به دنبال آن دستورالعمل پرش.

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

در مقایسه، شخصی که از ماشین حساب جیبی استفاده می کند می تواند یک عملیات حسابی اساسی مانند جمع کردن دو عدد را تنها با چند فشار دکمه انجام دهد. اما جمع کردن همه اعداد از 1 تا 1000 با هم، هزاران دکمه را فشار داده و زمان زیادی را صرف می کند، با اطمینان تقریباً اشتباه. از سوی دیگر، ممکن است یک کامپیوتر برای انجام این کار فقط با چند دستورالعمل ساده برنامه ریزی شود. مثال زیر به زبان اسمبلی MIPS نوشته شده است :

 شروع: addi $8 , $0 , 0 # مقداردهی اولیه به 0 addi $9 , $0 , 1 # تنظیم اولین عدد برای اضافه = 1 حلقه: slti $10 , $9 , 1000 # بررسی کنید که آیا عدد کمتر از 1000 beq $10 , $0 , پایان است # اگر عدد فرد بزرگتر از n باشد، خارج شوید، $ 8 ، $ 8 ، $ 9 را اضافه کنید # به‌روزرسانی مجموع اضافه $ 9 ، $ 9 ، 1 # عدد بعدی را دریافت کنید .                                        

هنگامی که به کامپیوتر دستور داده شود این برنامه را اجرا کند، کار اضافه کردن تکراری را بدون دخالت بیشتر انسان انجام می دهد. تقریباً هرگز اشتباه نمی کند و یک رایانه مدرن می تواند کار را در کسری از ثانیه انجام دهد.

کد ماشین

در اکثر رایانه ها، دستورالعمل های جداگانه به عنوان کد ماشین ذخیره می شوند و به هر دستورالعمل یک شماره منحصر به فرد داده می شود (کد عملیات یا به اختصار Opcode ). دستور جمع کردن دو عدد با هم یک کد عملیاتی خواهد داشت. فرمان ضرب کردن آنها دارای یک اپکد متفاوت خواهد بود و غیره. ساده ترین رایانه ها قادر به انجام هر یک از تعداد انگشت شماری از دستورالعمل های مختلف هستند. رایانه‌های پیچیده‌تر چند صد مورد برای انتخاب دارند که هر کدام یک کد عددی منحصربه‌فرد دارند. از آنجایی که حافظه کامپیوتر قادر به ذخیره اعداد است، می تواند کدهای دستورالعمل را نیز ذخیره کند. این امر منجر به این واقعیت مهم می شود که کل برنامه ها (که فقط لیستی از این دستورالعمل ها هستند) می توانند به عنوان لیستی از اعداد نمایش داده شوند و خود می توانند در داخل رایانه به همان روشی مانند داده های عددی دستکاری شوند. مفهوم اساسی ذخیره سازی برنامه ها در حافظه کامپیوتر در کنار داده هایی که روی آنها کار می کنند، هسته معماری فون نویمان یا برنامه ذخیره شده است. [127] [128] در برخی موارد، یک کامپیوتر ممکن است تمام یا برخی از برنامه های خود را در حافظه ای که جدا از داده هایی که روی آن کار می کند نگهداری می شود، ذخیره کند. این معماری پس از کامپیوتر مارک اول هاروارد، معماری هاروارد نامیده می شود . کامپیوترهای مدرن فون نویمان برخی از ویژگی‌های معماری هاروارد را در طراحی‌های خود نشان می‌دهند، مانند حافظه پنهان CPU .

در حالی که نوشتن برنامه های کامپیوتری به صورت لیست های طولانی اعداد ( زبان ماشین ) امکان پذیر است و در حالی که این تکنیک در بسیاری از کامپیوترهای اولیه استفاده می شد، [h] انجام این کار در عمل بسیار خسته کننده و مستعد خطا است، به خصوص برای برنامه های پیچیده. . درعوض، می‌توان به هر دستورالعمل اصلی یک نام کوتاه داد که نشان‌دهنده عملکرد آن باشد و به راحتی قابل به خاطر سپردن باشد - یک یادگاری مانند ADD، SUB، MULT یا JUMP. این یادداشت ها در مجموع به عنوان زبان اسمبلی کامپیوتر شناخته می شوند . تبدیل برنامه های نوشته شده به زبان اسمبلی به چیزی که کامپیوتر واقعاً می تواند آن را بفهمد (زبان ماشین) معمولاً توسط یک برنامه کامپیوتری به نام اسمبلر انجام می شود.

یک کارت پانچ دهه 1970 حاوی یک خط از برنامه فرترن . روی کارت نوشته شده است: "Z(1) = Y + W(1)" و برای اهداف شناسایی دارای برچسب "PROJ039" است.

زبان برنامه نویسی

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

زبان های سطح پایین

زبان‌های ماشین و زبان‌های اسمبلی که آنها را نشان می‌دهند (که در مجموع زبان‌های برنامه‌نویسی سطح پایین نامیده می‌شوند ) عموماً در معماری خاص واحد پردازش مرکزی رایانه ( CPU ) منحصر به فرد هستند. به عنوان مثال، یک CPU معماری ARM (مانندی که ممکن است در یک گوشی هوشمند یا یک بازی ویدیویی دستی یافت شود ) نمی تواند زبان ماشین یک CPU x86 را که ممکن است در رایانه شخصی باشد درک کند . [i] از نظر تاریخی تعداد قابل توجهی از دیگر معماری‌های cpu ایجاد شد و مورد استفاده گسترده قرار گرفت، به ویژه از جمله MOS Technology 6502 و 6510 علاوه بر Zilog Z80.

زبان های سطح بالا

اگرچه بسیار ساده تر از زبان ماشین است، اما نوشتن برنامه های طولانی در زبان اسمبلی اغلب دشوار است و همچنین مستعد خطا است. بنابراین، بیشتر برنامه‌های کاربردی به زبان‌های برنامه‌نویسی سطح بالا انتزاعی‌تر نوشته می‌شوند که می‌توانند نیازهای برنامه‌نویس را راحت‌تر بیان کنند (و در نتیجه به کاهش خطای برنامه‌نویس کمک کنند). زبان های سطح بالا معمولاً با استفاده از یک برنامه کامپیوتری دیگر به نام کامپایلر به زبان ماشین (یا گاهی اوقات به زبان اسمبلی و سپس به زبان ماشین) "کامپایل" می شوند . [j] زبان‌های سطح بالا نسبت به زبان اسمبلی کمتر به کار کامپیوتر هدف مرتبط هستند و بیشتر به زبان و ساختار مسئله(هایی) که باید توسط برنامه نهایی حل شوند، مرتبط هستند. بنابراین اغلب می توان از کامپایلرهای مختلف برای ترجمه یک برنامه زبان سطح بالا به زبان ماشین انواع مختلف رایانه استفاده کرد. این بخشی از ابزاری است که با آن نرم افزارهایی مانند بازی های ویدیویی ممکن است برای معماری های مختلف رایانه مانند رایانه های شخصی و کنسول های بازی های ویدیویی مختلف در دسترس قرار گیرند .

طراحی برنامه

طراحی برنامه‌های کوچک نسبتاً ساده است و شامل تجزیه و تحلیل مسئله، جمع‌آوری ورودی‌ها، استفاده از ساختارهای برنامه‌نویسی در زبان‌ها، ابداع یا استفاده از رویه‌ها و الگوریتم‌های تعیین‌شده، ارائه داده‌ها برای دستگاه‌های خروجی و راه‌حل‌هایی برای مشکل در صورت امکان می‌شود. [129] با بزرگ‌تر شدن و پیچیده‌تر شدن مشکلات، ویژگی‌هایی مانند زیربرنامه‌ها، ماژول‌ها، اسناد رسمی و پارادایم‌های جدیدی مانند برنامه‌نویسی شی‌گرا با آن مواجه می‌شوند. [130] برنامه های بزرگ شامل هزاران خط کد و بیشتر به روش های نرم افزار رسمی نیاز دارند. [131] وظیفه توسعه سیستم‌های نرم‌افزاری بزرگ یک چالش فکری قابل توجه است. [132] تولید نرم افزار با قابلیت اطمینان بالا در یک برنامه زمانی و بودجه قابل پیش بینی از لحاظ تاریخی دشوار بوده است. [133] رشته دانشگاهی و حرفه ای مهندسی نرم افزار به طور خاص بر این چالش متمرکز است. [134]

اشکالات

اولین باگ واقعی کامپیوتر، پروانه ای که در رله کامپیوتر هاروارد Mark II به دام افتاده بود

به خطاهای برنامه های کامپیوتری " اشکال " می گویند. آنها ممکن است خوش خیم باشند و بر سودمندی برنامه تأثیر نگذارند یا فقط تأثیرات ظریفی داشته باشند. با این حال، در برخی موارد ممکن است باعث شوند که برنامه یا کل سیستم " هنگ " کند، به ورودی هایی مانند کلیک ماوس یا فشار دادن کلید پاسخ ندهد، به طور کامل از کار بیفتد یا از کار بیفتد . [135] در غیر این صورت، گاهی اوقات ممکن است باگ های خوش خیم برای نیت مخرب توسط یک کاربر بی وجدان که یک اکسپلویت می نویسد، استفاده شود ، کدی که برای استفاده از یک باگ و اختلال در اجرای صحیح رایانه طراحی شده است. اشکالات معمولاً تقصیر رایانه نیستند. از آنجایی که رایانه‌ها صرفاً دستورالعمل‌های داده شده را اجرا می‌کنند، باگ‌ها تقریباً همیشه نتیجه خطای برنامه‌نویس یا نادیده گرفتن طراحی برنامه هستند. [k] دریاسالار گریس هاپر ، دانشمند کامپیوتر آمریکایی و توسعه‌دهنده اولین کامپایلر ، برای اولین بار از اصطلاح "اشکالات" در محاسبات پس از پیدا شدن یک پروانه مرده در اتصال یک رله در رایانه هاروارد Mark II در سپتامبر 1947 استفاده کرد. [136]

شبکه و اینترنت

تجسم بخشی از مسیرها در اینترنت

از دهه 1950 از کامپیوترها برای هماهنگ کردن اطلاعات بین چندین مکان استفاده شده است. سیستم SAGE ارتش ایالات متحده اولین نمونه در مقیاس بزرگ از چنین سیستمی بود که منجر به تعدادی از سیستم های تجاری خاص مانند Saber شد . [137] در دهه 1970، مهندسان کامپیوتر در مؤسسات تحقیقاتی در سراسر ایالات متحده شروع به پیوند رایانه های خود با استفاده از فناوری مخابرات کردند. این تلاش توسط ARPA (در حال حاضر DARPA ) تأمین مالی شد و شبکه رایانه ای که نتیجه آن ARPANET نامیده شد . [138] فن آوری هایی که Arpanet را ممکن ساختند گسترش یافتند و تکامل یافتند.

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

کامپیوترهای غیر متعارف

یک کامپیوتر نیازی به الکترونیکی بودن ، حتی پردازنده ، رم و حتی هارد دیسک ندارد . در حالی که استفاده رایج از کلمه "کامپیوتر" مترادف با رایانه الکترونیکی شخصی است، [l] یک تعریف معمولی مدرن از رایانه این است: " دستگاهی که محاسبه می کند ، به ویژه یک ماشین الکترونیکی قابل برنامه ریزی [معمولاً] الکترونیکی که کارهای ریاضی یا با سرعت بالا را انجام می دهد. عملیات منطقی یا که اطلاعات را جمع آوری، ذخیره، همبستگی یا پردازش می کند." [139] طبق این تعریف، هر دستگاهی که اطلاعات را پردازش می کند، واجد شرایط رایانه می شود.

آینده

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

پارادایم های معماری کامپیوتر

انواع مختلفی از معماری کامپیوتر وجود دارد :

از میان تمام این ماشین‌های انتزاعی ، یک کامپیوتر کوانتومی بیشترین نوید را برای متحول کردن محاسبات دارد. [140] گیت‌های منطقی یک انتزاع رایج هستند که می‌توانند برای اکثر پارادایم‌های دیجیتال یا آنالوگ فوق اعمال شوند . توانایی ذخیره و اجرای فهرست‌هایی از دستورالعمل‌هایی که برنامه نامیده می‌شوند ، رایانه‌ها را بسیار متنوع می‌کند و آنها را از ماشین‌حساب متمایز می‌کند . تز چرچ-تورینگ بیانیه ریاضی این تطبیق پذیری است: هر رایانه ای با حداقل قابلیت (کامل بودن تورینگ) در اصل قادر به انجام همان وظایفی است که هر رایانه دیگری می تواند انجام دهد. بنابراین، هر نوع رایانه ای ( نت بوک ، سوپرکامپیوتر ، اتومات سلولی و غیره) با توجه به زمان و ظرفیت ذخیره سازی کافی، قادر به انجام همان وظایف محاسباتی است.

هوش مصنوعی

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

حرفه ها و سازمان ها

با گسترش استفاده از رایانه در سراسر جامعه، تعداد روزافزونی از مشاغل مربوط به رایانه وجود دارد.

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

همچنین ببینید

یادداشت ها

  1. طبق گفته Schmandt-Besserat 1981، این ظروف سفالی حاوی نشانه هایی بودند که مجموع آنها تعداد اشیاء منتقل شده بود. بنابراین کانتینرها مانند بارنامه یا دفترچه حساب عمل می کردند. به منظور جلوگیری از شکستن ظروف، ابتدا قالب های سفالی ژتون ها در قسمت بیرونی ظروف برای شمارش قرار داده شد. اشکال برداشت ها به علائم تلطیف شده انتزاع شد. در نهایت، علائم انتزاعی به طور سیستماتیک به عنوان اعداد استفاده شد. این اعداد در نهایت به عنوان اعداد رسمی شدند.
    در نهایت علائم بیرونی ظروف تمام چیزی بود که برای انتقال شمارش مورد نیاز بود و ظروف سفالی به لوح‌های گلی تبدیل شدند که نشانه‌هایی برای شمارش داشتند. Schmandt-Besserat در 1999 تخمین می زند که 4000 سال طول کشیده است.
  2. دای اینتل 4004 (1971) 12 میلی متر مربع بود که از 2300 ترانزیستور تشکیل شده بود. در مقایسه، پنتیوم پرو 306 میلی متر مربع بود که از 5.5 میلیون ترانزیستور تشکیل شده بود. [110]
  3. ^ بیشتر معماری های اصلی مجموعه دستورالعمل های 64 بیتی، پسوند طرح های قبلی هستند. تمام معماری‌های فهرست‌شده در این جدول، به‌جز آلفا، قبل از معرفی نسخه‌های ۶۴ بیتی آن‌ها به شکل‌های ۳۲ بیتی وجود داشتند.
  4. ^ نقش واحد کنترل در تفسیر دستورالعمل ها در گذشته تا حدودی متفاوت بوده است. اگرچه واحد کنترل تنها مسئول تفسیر دستورالعمل ها در اکثر رایانه های مدرن است، اما همیشه اینطور نیست. برخی از رایانه‌ها دستورالعمل‌هایی دارند که تا حدی توسط واحد کنترل تفسیر می‌شوند و تفسیر بیشتر توسط دستگاه دیگری انجام می‌شود. به عنوان مثال، EDVAC ، یکی از اولین کامپیوترهای ذخیره شده با برنامه، از یک واحد کنترل مرکزی استفاده می کرد که تنها چهار دستورالعمل را تفسیر می کرد. تمام دستورات مربوط به حساب به واحد حسابی آن منتقل شد و در آنجا رمزگشایی شد.
  5. ^ دستورالعمل ها اغلب بیش از یک آدرس حافظه را اشغال می کنند، بنابراین شمارنده برنامه معمولاً با تعداد مکان های حافظه مورد نیاز برای ذخیره یک دستورالعمل افزایش می یابد.
  6. ^ حافظه فلش همچنین ممکن است فقط چند بار قبل از فرسودگی بازنویسی شود، که باعث می شود برای استفاده های تصادفی زیاد مفید نباشد. [121]
  7. ^ با این حال، ساخت ابررایانه ها از قطعات سخت افزاری ارزان قیمت نیز بسیار رایج است. معمولاً رایانه های فردی که توسط شبکه ها متصل می شوند. این به اصطلاح خوشه های کامپیوتری اغلب می توانند عملکرد ابررایانه را با هزینه بسیار کمتری نسبت به طرح های سفارشی ارائه دهند. در حالی که معماری های سفارشی هنوز برای بسیاری از قوی ترین ابررایانه ها استفاده می شود، در سال های اخیر کامپیوترهای خوشه ای افزایش یافته است. [126]
  8. ^ حتی برخی از رایانه های بعدی معمولاً مستقیماً در کد ماشین برنامه ریزی می شدند. برخی از مینی کامپیوترها مانند DEC PDP-8 را می توان مستقیماً از یک پانل سوئیچ برنامه ریزی کرد. با این حال، این روش معمولاً تنها به عنوان بخشی از فرآیند بوت استفاده می شد . اکثر کامپیوترهای مدرن با خواندن یک برنامه بوت از برخی حافظه های غیر فرار کاملاً خودکار بوت می شوند .
  9. ^ با این حال، گاهی اوقات نوعی سازگاری با زبان ماشین بین کامپیوترهای مختلف وجود دارد. یک ریزپردازنده سازگار x86-64 مانند AMD Athlon 64 می‌تواند اکثر برنامه‌هایی را که ریزپردازنده Core 2 اینتل می‌تواند اجرا کند، و همچنین برنامه‌هایی که برای ریزپردازنده‌های قبلی مانند Intel Pentiums و Intel 80486 طراحی شده‌اند . این در تضاد با کامپیوترهای تجاری بسیار اولیه است که اغلب منحصر به فرد و کاملاً با رایانه های دیگر ناسازگار بودند.
  10. ^ زبان های سطح بالا نیز اغلب به جای کامپایل تفسیر می شوند. زبان های تفسیر شده در حین اجرا توسط برنامه دیگری به نام مفسر به کد ماشین ترجمه می شوند .
  11. ^ این که اشکالات صرفاً به دلیل نظارت برنامه نویس هستند، به طور کلی درست نیست. سخت افزار کامپیوتر ممکن است از کار بیفتد یا ممکن است خود مشکل اساسی داشته باشد که نتایج غیرمنتظره ای را در شرایط خاص ایجاد کند. به عنوان مثال، باگ Pentium FDIV باعث شد که برخی از ریزپردازنده‌های اینتل در اوایل دهه 1990 نتایج نادرستی برای برخی عملیات تقسیم ممیز شناور ایجاد کنند . این به دلیل نقص در طراحی ریزپردازنده ایجاد شد و منجر به فراخوانی جزئی دستگاه های آسیب دیده شد.
  12. بر اساس فرهنگ لغت انگلیسی کوتاهتر آکسفورد (ویرایش ششم، 2007)، کلمه کامپیوتر به اواسط قرن هفدهم برمی گردد، زمانی که به "کسی که محاسبات انجام می دهد، به طور خاص فردی که برای این کار در یک رصدخانه و غیره استخدام می شود" اشاره می کند.

مراجع

  1. ^ ایوانز 2018، ص. 23.
  2. ^ اسمیت 2013، ص. 6.
  3. ^ "رایانه (n.)". دیکشنری ریشه شناسی آنلاین . بایگانی شده از نسخه اصلی در 16 نوامبر 2016 . بازبینی شده در 19 اوت 2021 .
  4. رابسون، النور (2008). ریاضیات در عراق باستان انتشارات دانشگاه پرینستون ص 5. ISBN 978-0-691-09182-2.: محاسبات در اوایل 3200 تا 3000 قبل از میلاد در عراق برای سیستم‌های حسابداری اولیه با سیستم‌های نمایش شمارش خاص کالا مورد استفاده قرار می‌گرفتند. حسابداری متوازن از 3000 تا 2350 قبل از میلاد استفاده می شد و یک سیستم اعداد کوچک در 2350 تا 2000 قبل از میلاد استفاده می شد.
  5. ^ فلگ، گراهام. (1989). اعداد در طول اعصار Houndmills، Basingstoke، Hampshire: Macmillan Education. شابک 0-333-49130-0. OCLC  24660570.
  6. پروژه تحقیقاتی مکانیسم آنتی‌کیترا در 28 آوریل 2008 در Wayback Machine ، پروژه تحقیقاتی مکانیسم آنتی‌کیترا آرشیو شد. بازیابی شده در 1 ژوئیه 2007.
  7. Marchant, Jo (1 نوامبر 2006). "در جستجوی زمان از دست رفته". طبیعت . 444 (7119): 534-538. Bibcode :2006Natur.444..534M. doi : 10.1038/444534a . ISSN  0028-0836. PMID  17136067. S2CID  4305761.
  8. G. Wiet, V. Elisseeff, P. Wolff, J. Naudu (1975). تاریخ بشر، جلد 3: تمدن های بزرگ قرون وسطی ، ص. 649. جورج آلن و آنوین محدود، یونسکو .
  9. ↑ فوات سزگین. «کاتالوگ نمایشگاه مؤسسه تاریخ علوم عربی ـ اسلامی (در دانشگاه یوهان ولفگانگ گوته»، فرانکفورت، آلمان)، نمایشگاه کتاب فرانکفورت 2004، ص 35 و 38.
  10. شارت، فرانسوا (2006). "باستان شناسی: فناوری پیشرفته از یونان باستان". طبیعت . 444 (7119): 551–552. Bibcode :2006Natur.444..551C. doi : 10.1038/444551a . PMID  17136077. S2CID  33513516.
  11. ^ بدینی، سیلویو آ. مدیسون، فرانسیس آر (1966). "جهان مکانیکی: آستراریوم جیووانی دو دوندی". معاملات انجمن فلسفی آمریکا . 56 (5): 1-69. doi :10.2307/1006002. JSTOR  1006002.
  12. ^ پرایس، درک د اس. (1984). "تاریخچه ماشین های محاسبه". IEEE Micro . 4 (1): 22-52. doi :10.1109/MM.1984.291305.
  13. Őren، Tuncer (2001). "پیشرفت در علوم کامپیوتر و اطلاعات: از چرتکه تا عوامل هولونیک" (PDF) . ترک جی الک انگین . 9 (1): 63-70. بایگانی شده (PDF) از نسخه اصلی در 15 سپتامبر 2009 . بازبینی شده در 21 آوریل 2016 .
  14. دونالد راتلج هیل (1985). «تقویم مکانیکی بیرونی»، مجالس علم 42 ، صص 139–163.
  15. «The Writer Automaton، سوئیس». chonday.com. 11 جولای 2013. بایگانی شده از نسخه اصلی در 20 فوریه 2015 . بازبینی شده در 28 ژانویه 2015 .
  16. ↑ اب ری گیروان، "مهم آشکار سازوکار: محاسبات پس از بابیج"، بایگانی شده در 3 نوامبر 2012 در ماشین Wayback ، دنیای محاسبات علمی ، می/ژوئن 2003.
  17. تورس، لئوناردو (۱۰ اکتبر ۱۸۹۵). "Memória sobre las Máquinas Algébricas" (PDF) . Revista de Obras Públicas (به اسپانیایی) (28): 217–222.
  18. لئوناردو تورس. Memoria sobre las máquinas algébricas: con un informe de la Real academia de ciencias exactas، fisicas y naturales ، Misericordia، 1895.
  19. توماس، فدریکو (1 اوت 2008). "گزارشی کوتاه در مورد دوک بی پایان لئوناردو تورس". مکانیسم و ​​نظریه ماشین . 43 (8). IFToMM : 1055-1063. doi :10.1016/j.mechmachtheory.2007.07.003. hdl : 10261/30460 . ISSN  0094-114X.
  20. ^ گومز-ژائورگی، والنتین؛ گوتیرز-گارسیا، آندرس؛ گونزالس-ردوندو، فرانسیسکو آ. ایگلسیاس، میگل؛ مانچادو، کریستینا؛ اوترو، سزار (1 ژوئن 2022). "ماشین حساب مکانیکی Torres Quevedo برای معادلات درجه دوم با ضرایب مختلط". مکانیسم و ​​نظریه ماشین . 172 (8). IFToMM : 104830. doi : 10.1016/j.mechmachtheory.2022.104830 . hdl : 10902/24391 . S2CID  247503677.
  21. تورس کوئودو، لئوناردو (1901). "ماشین ها یک ماشین حساب". Mémoires Présentés par Divers Savants à l'Académie des Scienes de l'Institut de France (به فرانسوی). XXXII . Impr. ملی (پاریس).
  22. هالاسی، دانیل استفن (1970). چارلز بابیج، پدر کامپیوتر . مطبوعات Crowell-Collier. شابک 978-0-02-741370-0.
  23. ^ اوکانر، جان جی. رابرتسون، ادموند اف (1998). "چارلز بابیج". آرشیو MacTutor History of Mathematics . دانشکده ریاضیات و آمار، دانشگاه سنت اندروز، اسکاتلند. بایگانی شده از نسخه اصلی در 16 ژوئن 2006 . بازبینی شده در 14 ژوئن 2006 .
  24. «ببیج». مطالب آنلاین موزه علوم. 19 ژانویه 2007. بایگانی شده از نسخه اصلی در 7 اوت 2012 . بازیابی شده در 1 اوت 2012 .
  25. گراهام-کامینگ، جان (23 دسامبر 2010). "بیایید کامپیوتر مکانیکی نهایی بابیج را بسازیم". نظر . دانشمند جدید. بایگانی شده از نسخه اصلی در 5 اوت 2012 . بازیابی شده در 1 اوت 2012 .
  26. ^ ال. تورس کوودو. Ensayos sobre Automática – تعریف فوق. Extension teórica de sus aplicaciones, Revista de la Academia de Ciencias Exacta, Revista 12, pp. 391-418, 1914.
  27. تورس کوودو، لئوناردو. Automática: Complemento de la Teoría de las Máquinas، (pdf)، صفحات 575-583، Revista de Obras Públicas، 19 نوامبر 1914.
  28. Ronald T. Kneusel. اعداد و کامپیوترها، اسپرینگر، ص 84-85، 2017. ISBN 978-3-319-50508-4 
  29. Randell 1982, p. 6، 11-13.
  30. ^ بی راندل. ماشین محاسبه الکترومکانیکی، ریشه های کامپیوترهای دیجیتال، صفحات 109-120، 1982.
  31. ^ بروملی 1990.
  32. کریستوفر مور، استفان مرتنز. ماهیت محاسبات، آکسفورد، انگلستان: انتشارات دانشگاه آکسفورد، ص. 291, 2011. ISBN 978-0-199-23321-2
  33. ^ راندل، برایان. کامپیوترهای دیجیتال، تاریخچه مبدا، (pdf)، ص. 545، رایانه های دیجیتال: ریشه ها، دایره المعارف علوم رایانه، ژانویه 2003.
  34. ^ abcd تاریخ مدرن محاسبات. دایره المعارف فلسفه استنفورد. 2017. بایگانی شده از نسخه اصلی در 12 جولای 2010 . بازبینی شده در 7 ژانویه 2014 .
  35. ^ زوزه، هورست. "قسمت چهارم: کامپیوترهای Z1 و Z3 کنراد زوزه". زندگی و کار کنراد زوزه . EPE آنلاین. بایگانی شده از نسخه اصلی در 1 ژوئن 2008 . بازبینی شده در 17 ژوئن 2008 .
  36. بلیس، مری (15 مه 2019) [برای اولین بار در سال 2006 در inventors.about.com/library/weekly/aa050298.htm منتشر شد]. "بیوگرافی کنراد زوزه، مخترع و برنامه نویس کامپیوترهای اولیه". thinkco.com ​دوتداش مردیث. بایگانی شده از نسخه اصلی در 13 دسامبر 2020 . بازبینی شده در 3 فوریه 2021 . کنراد زوزه عنوان نیمه رسمی "مخترع کامپیوتر مدرن" را به دست آورد [ چه کسی؟ ] .
  37. «پدر کامپیوتر کیست؟». ComputerHop .
  38. زوزه، کنراد (2010) [1984]. کامپیوتر – زندگی من ترجمه مک کنا، پاتریشیا و راس، جی. اندرو از: Der Computer, mein Lebenswerk (1984) . برلین/هایدلبرگ: Springer-Verlag. شابک 978-3-642-08151-4.
  39. سالز تراتمن، پگی (20 آوریل 1994). "پیشگام کامپیوتری دوباره کشف شد، 50 سال بعد". نیویورک تایمز . بایگانی شده از نسخه اصلی در 4 نوامبر 2016 . بازبینی شده در 15 فوریه 2017 .
  40. زوزه، کنراد (1993). در کامپیوتر. Mein Lebenswerk (به آلمانی) (ویرایش سوم). برلین: Springer-Verlag. ص 55. شابک 978-3-540-56292-4.
  41. «Crash! The Story of IT: Zuse». بایگانی شده از نسخه اصلی در 18 سپتامبر 2016 . بازبینی شده در 1 ژوئن 2016 .
  42. روجاس، آر (1998). "چگونه از Zuse's Z3 یک کامپیوتر جهانی بسازیم". IEEE Annals of the History of Computing . 20 (3): 51-54. doi :10.1109/85.707574. S2CID  14606587.
  43. ^ روخاس، رائول. "چگونه از Zuse's Z3 یک کامپیوتر جهانی بسازیم" (PDF) . fu-berlin.de . بایگانی شده (PDF) از نسخه اصلی در 9 اوت 2017 . بازبینی شده در 28 سپتامبر 2015 .
  44. ↑ ab O'Regan، Gerard (2010). تاریخچه مختصری از محاسبات . Springer Nature. ص 65. شابک 978-3-030-66599-9.
  45. ^ "توجه". ثبت نام Des Moines 15 ژانویه 1941.
  46. آرتور دبلیو بورکز (1989). اولین کامپیوتر الکترونیکی انتشارات دانشگاه میشیگان شابک 0-472-08104-7. بازیابی شده در 1 ژوئن 2019 .
  47. ^ abcd کوپلند، جک (2006). کلوسوس: رازهای کامپیوترهای کدشکن بلچلی پارک . آکسفورد: انتشارات دانشگاه آکسفورد . صص 101-115. شابک 978-0-19-284055-4.
  48. میلر، جو (10 نوامبر 2014). "زنی که رمزهای Enigma را شکست". اخبار بی بی سی . بایگانی شده از نسخه اصلی در 10 نوامبر 2014 . بازبینی شده در 14 اکتبر 2018 .
  49. برن، سوزان (24 ژوئیه 2018). "با کدشکن های زن پارک بلچلی آشنا شوید". نگهبان . بایگانی شده از نسخه اصلی در 7 فوریه 2019 . بازبینی شده در 14 اکتبر 2018 .
  50. «کلوسوس کدشکن بلچلی». بی بی سی بایگانی شده از نسخه اصلی در 4 فوریه 2010 . بازبینی شده در 24 نوامبر 2021 .
  51. «Colossus – The Rebuild Story». موزه ملی محاسبات بایگانی شده از نسخه اصلی در 18 آوریل 2015 . بازبینی شده در 7 ژانویه 2014 .
  52. ^ راندل، برایان ؛ فنسوم، هری؛ Milne, Frank A. (15 مارس 1995). "درگذشت: آلن کومبز". مستقل . بایگانی شده از نسخه اصلی در 3 فوریه 2012 . بازبینی شده در 18 اکتبر 2012 .
  53. فنسوم، جیم (8 نوامبر 2010). "درگذشت هری فنسوم". نگهبان . بایگانی شده از نسخه اصلی در 17 سپتامبر 2013 . بازبینی شده در 17 اکتبر 2012 .
  54. جان پرسپر اکرت جونیور و جان د . رند .
  55. ^ ایوانز 2018، ص. 39.
  56. ^ نور 1999، ص. 459.
  57. «نسل های کامپیوتر». techiwarehouse.com. بایگانی شده از نسخه اصلی در 2 ژوئیه 2015 . بازبینی شده در 7 ژانویه 2014 .
  58. ^ تورینگ، AM (1937). "درباره اعداد قابل محاسبه، با یک برنامه کاربردی برای Entscheidungsproblem". مجموعه مقالات انجمن ریاضی لندن . 2. 42 (1): 230-265. doi :10.1112/plms/s2-42.1.230. S2CID  73712.
  59. کوپلند، جک (2004). تورینگ ضروری ص 22: فون نویمان... قاطعانه به من، و به دیگران، مطمئنم، تأکید کرد که مفهوم بنیادین مدیون تورینگ است - تا جایی که بابیج، لاولیس و دیگران پیش‌بینی نکرده‌اند.نامه استنلی فرانکل به برایان راندل ، 1972.
  60. Enticnap، Nicholas (تابستان 1998). "جشن طلایی محاسبات". قیامت (20). ISSN  0958-7403. بایگانی شده از نسخه اصلی در 9 ژانویه 2012 . بازبینی شده در 19 آوریل 2008 .
  61. «کامپیوترهای اولیه در دانشگاه منچستر». رستاخیز . 1 (4). تابستان 1992. ISSN  0958-7403. بایگانی شده از نسخه اصلی در 28 اوت 2017 . بازیابی شده در 7 جولای 2010 .
  62. «رایانه‌های الکترونیکی اولیه (1946–1951)». دانشگاه منچستر. بایگانی شده از نسخه اصلی در 5 ژانویه 2009 . بازبینی شده در 16 نوامبر 2008 .
  63. Napper، RBE "مقدمه ای بر مارک 1". دانشگاه منچستر. بایگانی شده از نسخه اصلی در 26 اکتبر 2008 . بازیابی شده در 4 نوامبر 2008 .
  64. «مطالعه آزمایشی میراث رایانه‌ای ما: تحویل رایانه‌های Ferranti Mark I و Mark I Star». انجمن حفاظت از رایانه . بایگانی شده از نسخه اصلی در 11 دسامبر 2016 . بازیابی شده در 9 ژانویه 2010 .
  65. ^ لاوینگتون، سیمون. "تاریخ مختصر کامپیوترهای بریتانیا: 25 سال اول (1948-1973)". انجمن کامپیوتر بریتانیا بایگانی شده از نسخه اصلی در 5 جولای 2010 . بازیابی شده در 10 ژانویه 2010 .
  66. ^ لی، توماس اچ (2003). طراحی مدارهای مجتمع فرکانس رادیویی CMOS (PDF) . انتشارات دانشگاه کمبریج شابک 978-1-139-64377-1. بایگانی شده از نسخه اصلی (PDF) در 9 دسامبر 2019 . بازیابی شده در 31 جولای 2019 .
  67. ^ Puers, Robert; بالدی، لیویو؛ وورده، مارسل وان دی؛ نوتن، سباستین ای. ون (2017). نانوالکترونیک: مواد، دستگاه ها، کاربردها، 2 جلد. جان وایلی و پسران ص 14. شابک 978-3-527-34053-8. بازیابی شده در 31 جولای 2019 .
  68. ↑ ab Moskowitz، Sanford L. (2016). نوآوری مواد پیشرفته: مدیریت فناوری جهانی در قرن بیست و یکم جان وایلی و پسران صص 165-167. شابک 978-0-470-50892-3. بازبینی شده در 28 اوت 2019 .
  69. ^ لاوینگتون 1998، صفحات 34-35.
  70. ^ ab Cooke-Yarborough, EH (ژوئن 1998). "برخی از برنامه های کاربردی ترانزیستور اولیه در انگلستان". مجله علوم و آموزش مهندسی . 7 (3): 100-106. doi :10.1049/esej:19980301. ISSN  0963-7346. بایگانی شده از نسخه اصلی در 8 نوامبر 2020 . بازیابی شده در 7 ژوئن 2009 . (اشتراک لازم است) .
  71. Cooke-Yarborough, EH (1957). مقدمه ای بر مدارهای ترانزیستوری ادینبورگ، اسکاتلند: الیور و بوید. ص 139.
  72. ^ هاف، هاوارد؛ ریوردان، مایکل (1 سپتامبر 2007). "فروش و دریک: پنجاه سال بعد (پیشگفتار)". رابط انجمن الکتروشیمیایی . 16 (3): 29. doi :10.1149/2.F02073IF. ISSN  1064-8208.
  73. ^ فروش، سی جی. Derick, L (1957). "محافظت از سطح و پوشش انتخابی در حین انتشار در سیلیکون". مجله انجمن الکتروشیمیایی . 104 (9): 547. doi :10.1149/1.2428650.
  74. Kahng, D. (1961). "دستگاه سطح سیلیکون دی اکسید سیلیکون". یادداشت فنی آزمایشگاه های بل : 583-596. doi :10.1142/9789814503464_0076. شابک 978-981-02-0209-5.
  75. لوژک، بو (2007). تاریخچه مهندسی نیمه هادی . برلین، هایدلبرگ: Springer-Verlag Berlin Heidelberg. ص 321. شابک 978-3-540-34258-8.
  76. ^ Ligenza، JR; اسپیتزر، WG (1960). "مکانیسم های اکسیداسیون سیلیکون در بخار و اکسیژن". مجله فیزیک و شیمی جامدات . 14 : 131-136. Bibcode :1960JPCS...14..131L. doi :10.1016/0022-3697(60)90219-5.
  77. لوجک، بو (2007). تاریخچه مهندسی نیمه هادی . Springer Science & Business Media . ص 120. شابک 9783540342588.
  78. Motoyoshi, M. (2009). "از طریق سیلیکون از طریق (TSV)". مجموعه مقالات IEEE . 97 (1): 43-48. doi :10.1109/JPROC.2008.2007462. ISSN  0018-9219. S2CID  29105721.
  79. یانگ، ایان (12 دسامبر 2018). ترانزیستورها قانون مور را زنده نگه می دارند. EETimes ​بایگانی شده از نسخه اصلی در 24 سپتامبر 2019 . بازبینی شده در 18 جولای 2019 .
  80. قوانین، دیوید (4 دسامبر 2013). "چه کسی ترانزیستور را اختراع کرد؟" موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 13 دسامبر 2013 . بازبینی شده در 20 ژوئیه 2019 .
  81. ^ ab Hittinger، ویلیام سی. (1973). "فناوری فلز-اکسید-نیمه هادی". علمی آمریکایی 229 (2): 48-59. Bibcode :1973SciAm.229b..48H. doi :10.1038/scientificamerican0873-48. ISSN  0036-8733. JSTOR  24923169.
  82. ^ مالمشتات، هاوارد وی. انکه، کریستی جی. کراچ، استنلی آر (1994). ایجاد اتصالات مناسب: ریز کامپیوترها و ابزار دقیق الکترونیکی. انجمن شیمی آمریکا ص 389. شابک 978-0-8412-2861-0. بازبینی شده در 28 اوت 2019 . سادگی نسبی و نیازهای کم توان ماسفت ها، انقلاب میکروکامپیوتر امروزی را تقویت کرده است.
  83. ^ فوسوم، جری جی . تریودی، ویشال پی (2013). مبانی ماسفت ها و فین فت های بدن فوق العاده نازک. انتشارات دانشگاه کمبریج ص vii. شابک 978-1-107-43449-3. بازبینی شده در 28 اوت 2019 .
  84. ماریوت، جی دبلیو (۱۰ ژوئن ۲۰۱۹). "سخنان مدیر Iancu در کنفرانس بین المللی مالکیت فکری 2019". اداره ثبت اختراع و علائم تجاری ایالات متحده بایگانی شده از نسخه اصلی در 17 دسامبر 2019 . بازبینی شده در 20 ژوئیه 2019 .
  85. «داون کهنگ». تالار مشاهیر مخترعان ملی بایگانی شده از نسخه اصلی در 27 اکتبر 2019 . بازبینی شده در 27 ژوئن 2019 .
  86. «مارتین آتالا در تالار مشاهیر مخترعان، ۲۰۰۹». بایگانی شده از نسخه اصلی در 19 سپتامبر 2019 . بازبینی شده در 21 ژوئن 2013 .
  87. ^ پیروزی ترانزیستور MOS. موزه تاریخ کامپیوتر 6 آگوست 2010. بایگانی شده از نسخه اصلی در 18 اوت 2021 . بازیابی شده در 21 ژوئیه 2019 - از طریق YouTube.
  88. «داستان بدبخت جفری دامر» بایگانی‌شده در ۱۱ مه ۲۰۱۳ در Wayback Machine , (nd), (HTML), Electronic Product News , دسترسی به ۸ ژوئیه ۲۰۰۸.
  89. کیلبی، جک (2000). "سخنرانی نوبل" (PDF) . استکهلم: بنیاد نوبل. بایگانی شده (PDF) از نسخه اصلی در 29 مه 2008 . بازبینی شده در 15 مه 2008 .
  90. تراشه ای که جک ساخت در ۱ می ۲۰۱۵ در ماشین Wayback ، (حدود ۲۰۰۸)، (HTML)، تگزاس اینسترومنتز، بازیابی شده در ۲۹ مه ۲۰۰۸، بایگانی شد.
  91. جک اس. کیلبی، مدارهای الکترونیکی کوچک، اداره ثبت اختراع ایالات متحده، پتنت ایالات متحده 3،138،743، ثبت شده در 6 فوریه 1959، صادر شده در 23 ژوئن 1964.
  92. وینستون، برایان (1998). فناوری رسانه و جامعه: تاریخچه: از تلگراف تا اینترنت. راتلج. ص 221. شابک 978-0-415-14230-4. بازبینی شده در 6 ژوئن 2020 .
  93. ساکسنا، آرجون ن. (2009). اختراع مدارهای مجتمع: حقایق مهم ناگفته. علمی جهانی ص 140. شابک 978-981-281-445-6. بازبینی شده در 28 اوت 2019 .
  94. ^ ab "مدارهای مجتمع". ناسا . بایگانی شده از نسخه اصلی در 21 جولای 2019 . بازبینی شده در 13 اوت 2019 .
  95. مدار واحد رابرت نویس ، ثبت اختراع ایالات متحده 2981877، "ساختار دستگاه نیمه هادی و سرب"، صادر شده در 25-04-1961، به شرکت نیمه هادی Fairchild  اختصاص داده شده است .
  96. "1959: مفهوم مدار مجتمع یکپارچه عملی ثبت اختراع". موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 24 اکتبر 2019 . بازبینی شده در 13 اوت 2019 .
  97. ^ فروش، سی جی. Derick, L. (1957). "محافظت از سطح و پوشش انتخابی در حین انتشار در سیلیکون". مجله انجمن الکتروشیمیایی . 104 (9): 547. doi :10.1149/1.2428650.
  98. US2802760A، لینکلن، Derick & Frosch، Carl J.، "اکسیداسیون سطوح نیمه هادی برای انتشار کنترل شده"، صادر شده 13/08/1957 . 
  99. Moskowitz، Sanford L. (2016). نوآوری مواد پیشرفته: مدیریت فناوری جهانی در قرن بیست و یکم جان وایلی و پسران ص 168. شابک 978-0-470-50892-3.
  100. ^ لکویر، کریستف؛ بروک، دیوید سی. آخرین، جی (2010). Makers of the Microchip: A Documentary History of Fairchild Semiconductor. مطبوعات MIT. صص 62-63. شابک 978-0-262-01424-3.
  101. کلیس، کور ال (2003). یکپارچه سازی فرآیند ULSI III: مجموعه مقالات سمپوزیوم بین المللی. انجمن الکتروشیمیایی ص 27-30. شابک 978-1-56677-376-8.
  102. لوجک، بو (2007). تاریخچه مهندسی نیمه هادی . Springer Science & Business Media . ص 120. شابک 9783540342588.
  103. ↑ ab Kuo, Yue (1 ژانویه 2013). "فناوری ترانزیستور لایه نازک - گذشته، حال و آینده" (PDF) . رابط انجمن الکتروشیمیایی . 22 (1): 55-61. Bibcode :2013ECSIin..22a..55K. doi : 10.1149/2.F06131if . ISSN  1064-8208. بایگانی شده (PDF) از نسخه اصلی در 29 اوت 2017 . بازیابی شده در 31 جولای 2019 .
  104. ^ ab "لاک پشت ترانزیستورها در مسابقه پیروز می شود - انقلاب CHM". موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 10 مارس 2020 . بازبینی شده در 22 ژوئیه 2019 .
  105. «1964 – اولین IC تجاری MOS معرفی شد». موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 22 دسامبر 2015 . بازیابی شده در 31 جولای 2019 .
  106. «1968: فناوری گیت سیلیکونی که برای آی سی ها توسعه یافته است». موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 29 ژوئیه 2020 . بازبینی شده در 22 ژوئیه 2019 .
  107. ^ ab "1971: ریزپردازنده عملکرد CPU را روی یک تراشه واحد ادغام می کند". موزه تاریخ کامپیوتر بایگانی شده از نسخه اصلی در 12 اوت 2021 . بازبینی شده در 22 ژوئیه 2019 .
  108. کولینژ، ژان پیر؛ گریر، جیمز سی (2016). ترانزیستورهای نانوسیم: فیزیک دستگاه ها و مواد در یک بعد. انتشارات دانشگاه کمبریج ص 2. ISBN 978-1-107-05240-6. بازیابی شده در 31 جولای 2019 .
  109. "اولین ریزپردازنده اینتل - اینتل 4004". اینتل Corp. نوامبر 1971. بایگانی شده از نسخه اصلی در 13 مه 2008 . بازبینی شده در 17 مه 2008 .
  110. ^ پترسون، دیوید؛ هنسی، جان (1998). سازماندهی و طراحی کامپیوتر. سانفرانسیسکو: مورگان کافمن . صص 27-39. شابک 978-1-55860-428-5.
  111. فدریکو فاگین ، ساخت اولین ریزپردازنده، مجله مدارهای حالت جامد IEEE ، زمستان 2009، IEEE Xplore .
  112. ^ ab "7 پیشرفت خیره کننده گوشی هوشمند با تراشه اسنپدراگون 835 کوالکام". 3 ژانویه 2017. بایگانی شده از نسخه اصلی در 30 سپتامبر 2019 . بازبینی شده در 5 آوریل 2019 .
  113. Chartier، David (23 دسامبر 2008). «محموله‌های جهانی نوت‌بوک سرانجام از رایانه‌های رومیزی پیشی گرفت». Ars Technica . بایگانی شده از نسخه اصلی در 4 جولای 2017 . بازبینی شده در 14 ژوئن 2017 .
  114. IDC (25 ژوئیه 2013). طبق IDC، رشد در بازارهای جهانی تلفن همراه و گوشی های هوشمند در سه ماهه دوم سال جاری شتاب می گیرد. بایگانی شده از نسخه اصلی در 26 ژوئن 2014.
  115. «Google Books Ngram Viewer». books.google.com .
  116. «Google Books Ngram Viewer». books.google.com .
  117. «Google Books Ngram Viewer». books.google.com .
  118. «Google Books Ngram Viewer». books.google.com .
  119. اک، دیوید جی (2000). پیچیده ترین ماشین: بررسی رایانه ها و محاسبات . AK Peters, Ltd. p. 54. شابک 978-1-56881-128-4.
  120. کونتوگیورگز، اریکوس جان (2006). راهنمای محاسبات موازی و آمار . مطبوعات CRC. ص 45. شابک 978-0-8247-4067-2.
  121. Verma & Mielke 1988.
  122. ادی، دونالد (1968). مقدمه ای بر کامپیوتر پایه . پرنتیس هال. ص 12.
  123. بارنا، آرپاد؛ پورات، دان آی. (1976). مقدمه ای بر ریز کامپیوترها و ریزپردازنده ها وایلی. ص 85. شابک 978-0-471-05051-3.
  124. ^ پیک، جری؛ تودینو، گریس؛ استرنگ، جان (2002). یادگیری سیستم عامل یونیکس: راهنمای مختصر برای کاربر جدید اوریلی ص 130. شابک 978-0-596-00261-9.
  125. دیویس، جیلیان ام. (2002). کاهش نویز در برنامه های گفتاری . مطبوعات CRC. ص 111. شابک 978-0-8493-0949-6.
  126. ^ TOP500 2006، ص.  [ صفحه مورد نیاز ] .
  127. کراگون، هاروی (2000). معماری و پیاده سازی کامپیوتر. انتشارات دانشگاه کمبریج ص 5. ISBN 978-0-521-65168-4. بایگانی شده از نسخه اصلی در 30 ژوئیه 2022 . بازبینی شده در 10 ژوئن 2022 .
  128. ^ خو، ژیوئی؛ ژانگ، جیالین (2021). تفکر محاسباتی: دیدگاهی در علوم کامپیوتر. سنگاپور: Springer. ص 60. شابک 978-981-16-3848-0. بایگانی شده از نسخه اصلی در 30 ژوئیه 2022 . بازبینی شده در 10 ژوئن 2022 . به آن معماری برنامه ذخیره شده یا مدل برنامه ذخیره شده می گویند که به معماری فون نویمان نیز معروف است. ما از این اصطلاحات به جای یکدیگر استفاده خواهیم کرد.
  129. لیچ، رونالد جی. (27 ژانویه 2016). مقدمه ای بر مهندسی نرم افزار. مطبوعات CRC. ص 11. شابک 978-1-4987-0528-8. بازبینی شده در 26 نوامبر 2022 .
  130. زو، هنگ (22 مارس 2005). روش شناسی طراحی نرم افزار: از اصول تا سبک های معماری. الزویر. صص 47-72. شابک 978-0-08-045496-2. بازبینی شده در 26 نوامبر 2022 .
  131. لیچ، رونالد جی. (27 ژانویه 2016). مقدمه ای بر مهندسی نرم افزار. مطبوعات CRC. ص 56. شابک 978-1-4987-0528-8. بازبینی شده در 26 نوامبر 2022 .
  132. نایت، جان (12 ژانویه 2012). مبانی محاسبات قابل اعتماد برای مهندسان نرم افزار مطبوعات CRC. ص 186. شابک 978-1-4665-1821-6. بازبینی شده در 26 نوامبر 2022 .
  133. بروکس (جونیور)، فردریک پی (1975). ماه انسان اسطوره ای: مقالاتی در مورد مهندسی نرم افزار. شرکت انتشارات آدیسون-وسلی. شابک 978-0-201-00650-6. بازبینی شده در 26 نوامبر 2022 .
  134. سامرویل، ایان (2007). مهندسی نرم افزار. آموزش پیرسون صص 4-17. شابک 978-0-321-31379-9. بازبینی شده در 26 نوامبر 2022 .
  135. ^ "چرا کامپیوترها خراب می شوند؟". علمی آمریکایی . بایگانی شده از نسخه اصلی در 1 مه 2018 . بازیابی شده در 3 مارس 2022 .
  136. تیلور، الکساندر ال. سوم (16 آوریل 1984). "جادوگر درون ماشین". زمان ​بایگانی شده از نسخه اصلی در 16 مارس 2007 . بازبینی شده در 17 فوریه 2007 .
  137. هیوز، آگاتا سی (2000). سیستم ها، کارشناسان و کامپیوترها . مطبوعات MIT ص 161. شابک 978-0-262-08285-3. تجربه SAGE کمک کرد تا اولین شبکه تجاری واقعی در مقیاس بزرگ ایجاد شود: سیستم کامپیوتری رزرو خطوط هوایی SABER.
  138. ^ لینر، بری ام. سرف، وینتون جی. کلارک، دیوید دی. کان، رابرت ای. کلاین راک، لئونارد؛ لینچ، دانیل سی. پستل، جان؛ رابرتز، لری جی. ولف، استفان (1999). "تاریخچه مختصر اینترنت". arXiv : cs/9901011 .
  139. «تعریف کامپیوتر». Thefreedictionary.com. بایگانی شده از نسخه اصلی در 26 دسامبر 2009 . بازیابی شده در 29 ژانویه 2012 .
  140. دوما دوم، جوزف دی (2005). معماری کامپیوتر: مبانی و اصول طراحی کامپیوتر. مطبوعات CRC. ص 340. شابک 978-0-8493-2749-0. بازیابی شده در 9 نوامبر 2020 .

منابع

لینک های خارجی