Пристрій комп’ютера
Дата створення: 2012-04-29 18:20:38 Востаннє редаговано: 2012-04-29 18:24:11
У цьому вступному уроці ми познайомимося з комп'ютером. Навіщо, спитаєте ви? А я відповім, що, звичайно, знання пристрою комп'ютера необов'язкове для створення ігор, але це знання буде гарною службою, якщо ви зберетеся глибоко освоювати програмування.
Так що, якщо ви пов'язуєте своє майбутнє з програмуванням (без різниці: ігор, системних програм, додатків для мобільних), то цей урок абсолютно необхідний. Ну чи може вам просто цікаво як влаштований комп'ютер?
Комп'ютер або ЕОМ
Взагалі словокомп'ютервже встигло вкоренитися в українській мові. А який сенс воно приховує? У повсякденному мовленні ми навіть не замислюємося про це - ну комп'ютер та комп'ютер - кого їм зараз здивуєш?
Як ми всі знаємо, словокомп'ютерпоходить з англійської мови (або навіть латини, якщо дивитися ширше). Англійською словокомп'ютервиглядає ось так -computer.Computerутворено від дієсловаto compute-обчислювати. Аcomputerтоді буде перекладатися якобчислювач.
українською мовою є "правильна" назва комп'ютера - ЕОМ - електроннаобчислювачна машина. Але, на жаль, у повсякденному мовленні вкоренився термінкомп'ютер.
Надалі я використовуватиму взаємозамінно всі терміни: комп'ютер, ЕОМ, обчислювальний пристрій, обчислювальна техніка - це те саме (принаймні, ми так вважатимемо).
Як неважко помітити з назви, завдання комп'ютера – обчислювати. Що обчислювати? Спочатку це були математичні формули.
Тут нам варто трохи розширити поняття "обчислення". Слово "обчислення" має на увазі рішення якої-то математичного завдання. І перші комп'ютери займалися лише цим. Але сучасні комп'ютери вміють як обчислювати математичні формули, вони здатні набагато більше. Тому я вважаю доречним замість слова "обчислення" використовувати "вирішення завдання". Тобто. коли ми говоримо обчислювальний пристрій, ми маємо на увазі пристрій, що вміє вирішувати якісь завдання, наприклад: знаходити площадку кола, перевіряти відбитки пальців (так, для цього теж потрібно обчислювальний пристрій), приймати кредитну картку і працювати з нею (банкомат).
Тепер, коли ми визначилися з термінами, саме час розглянути історію обчислювальної техніки. Хоча б коротко.
Історія обчислювальної техніки
Якось несподівано з усіх магазинів пішли абаки. Здавалося б, ще недавно вони були скрізь. І раптом настав час, коли побачити наживо абак велика рідкість. Так ось, абак один з найдавніших обчислювальних пристроїв.
Масова поява обчислювальних пристроїв починається у новій історії. Наприклад, у 17 столітті Блез Паскаль створив простий механічний калькулятор.
На особливу згадку заслуговує Жозеф Марі Жаккар - винахідник перфокарт. Спочатку перфокарти використовувалися в ткацьких верстатах для завдання візерунка. Але згодом перфокарти виявилися надзвичайно корисними як пристрої введення/виведення в ЕОМ.
Друга світова війна спонукала розвиток електронної обчислювальної техніки. Після другої світової, власне і починається ера пристроїв, які є комп'ютерами в нашому розумінні. Тоді вони працювали на лампах – це, власне, перше покоління.
У п'ятдесятих роках Джон Фон Нейман виділив основні складові комп'ютерів: АЛУ (процесор), пам'ять, пристрій управління, пристрої вводу/виводу.
Друге поколінняпочинається у другій половині п'ятдесятих років з винаходом транзистора дослідниками Bell Labs Бардіном, Браттейном та Шоклі. За транзистор вони отримали нобелівську премію в 1956г.
Один із цікавих фактів цього періоду: фірма DEC випустила комп'ютер PDP-1 у 1961р. Це стало початком комп'ютерної промисловості - було продано кілька десятків пристроїв. Також у PDP-1 вперше з'явився дисплей (512×512 пікселів) і для цього комп'ютера була розроблена перша гра. В одному з наступних нащадків (PDP-8) була реалізована перша шина – omnibus.
Початок третього покоління комп'ютерів поклав Роберт Нойс, створенням інтегральної схеми (1958) - це коли одну коробку засунули кілька транзисторів.
У 70-х роках розпочинається четверте покоління – великих інтегральних схем. Власне, у сучасних схемах кількість транзисторів сягає мільйонів одиниць.
Найважливішим роком в історії обчислювальної техніки є 1981. Саме 1981-го компанія IMB випустила IBM PC (Personal Computer). На IMB PC використовувалася операційна система MS-DOS, розроблена фірмою MicroSoft.
На окрему згадку в нашій короткій історичній довідці заслуговує історія процесорів. Чому саме процесори отримали таку увагу стане зрозуміло далі. А поки:
Процесори та INTEL
Процесор - мікросхема у комп'ютері, яка виконує всі обчислення. Перший процесор на одній мікросхемі був розроблений у компанії Intel (в Intel працював Роберт Нойс) у 1970-му році. Називався цей процесор 4004 (він був 4-бітним) і в ньому було 2300 транзисторів.
В IBM PC використовувався вже восьмибітний інтелівський процесор 8088. Розвиток цього процесора призвело до появи 32-бітного 80386, який багато в чому визначає архітектуру сучаснихкомп'ютерів. Далі був процесор 80486 та різні Пентіуми. У другій половині десятих на ринок масово почали випускатися двоядерні (багатоядерні) процесори.
На даний момент компанія Intel пропонує процесори різної потужності: core i3, core i5, core i7. Ці процесори вже є 64-бітними, але підтримують і 32-бітові обчислення. Більшість із них двоядерні.
Пристрій (архітектура) комп'ютера
Тепер настав час розібратися із пристроєм сучасного персонального комп'ютера.
Найбільша плата персонального комп'ютера – материнська плата (motherboard). На материнській платер розташовано безліч мікросхем. На малюнку нижче ми бачимо плату з двома мостами:

Всіми мікросхемами управляє чіпсет (chipset; chip – мікросхема; set – набір, безліч). Чіпсет – це набір мікросхем. На малюнку нижче представлено схематичне відображення материнської плати з двома мостами:

Північний та південний міст (north – північ, south – південь, bridge – міст) – утворюють чіпсет. Чіпсет визначає, які пристрої можна підключити до цієї материнської плати. Якщо ви подивитеся на будь-яку плату зі зворотного боку, то побачите, що всі пристрої підключені так, як показано на схемі (розведення проводів).
Південний міст керує додатковими пристроями: мережевою картою, USB-портами, жорсткими дисками, пристроями PCI, ISA (та іншими застарілими).
Усі пристрої з'єднані проводами, які називаються шинами (Bus – шина). Наприклад, USB розшифровується як Universal Serial Bus – універсальна послідовна шина. Тобто. шина, по суті, це кілька дротів, якими передаються дані між двома мікросхемами.
Останніми роками почали випускатися комп'ютери з одним мостом. Наприклад, материнськіплати, що підтримують процесори core i3, core i5, core i7. На малюнку нижче схематично показано материнську плату з одним мостом - Sandy Bridge:

Команди процесора (CPU Instruction Set)
Кожен процесор має свій набір команд (або інструкцій), який називається Instruction Set (set - набір, безліч).
Наприклад, у 32-бітових процесорів Intel основний набір команд називається IA-32 (Intel Architecture). Існують і додаткові набори команд. В останніх моделей процесорів Intel це SSE4.2, який надає додаткові можливості обробки даних. Але нас цікавить основний IA-32.
Набір команд будь-якого комп'ютера дуже простий. Основні команди, які може виконувати процесор такі: додавання, віднімання, поділ, множення, порівняння. Ми познайомимося з іншими командами щодо асемблера.
Для того, щоб людині було зручно використовувати команди процесора, використовується мова програмування асемблер. В асемблері одній команді процесора відповідає одна команда асемблера. Приклади: div - розподіл (від division), add - додавання, sub - віднімання (від subtraction).
Інструкції виконуються над даними, які надходять у процесор з пам'яті та зберігаються усередині регістрів. Регістрів у процесорі небагато і кожен має ім'я. Наприклад, імена регістрів у процесорах Intel: EAX, EBX, ECX.
Тепер подивимося на код, написаний на асемблері:
mov EAX, 2 ;поміщаємо в регістр EAX значення 2 mov EBX, 3 ;поміщаємо в регістр EBX значення 3 add EAX, EBX ;додаємо до EAX значення EBX, тепер регістр EAX зберігає значення 5
Найважливіше, що тут треба засвоїти – процесор може виконувати лише дуже прості дії над регістрами. Завдання програміста - із цих простих дійскласти осмислену та складну програму. Про це ми поговоримо у подальших уроках.
Висновок
Отже, головною мікросхемою в будь-якому сучасному обчислювальному пристрої (і в комп'ютері також) є процесор. При цьому процесор може виконувати лише прості команди. Найбільш близька мова програмування до команд процесора – асемблер. Саме тому асемблер називається мовою низького рівня. Мови високого рівня дозволяють спростити програмістові життя. Але при цьому програма будь-якою мовою високого рівня перекладається спочатку на асемблер, а тільки потім виконується процесором.