Яку функцію виконує співпроцесор в ЕОМ. Функції та принципи роботи математичного співпроцесора. Програмна модель співпроцесора

Співпроцесор – спеціалізований процесор, що розширює можливості центрального процесора комп'ютерної системи, але оформлений як окремий функціональний модуль. Фізично співпроцесор може бути окремою мікросхемою або вбудований в центральний процесор.

Розрізняють такі види співпроцесорів:

Математичні співпроцесори загального призначення, які зазвичай прискорюють обчислення з плаваючою точкою,

Співпроцесори вводу-виводу (наприклад - Intel 8089), що розвантажують центральний процесор від контролю за операціями вводу-виводу або розширюють стандартний адресний простір процесора,

Співпроцесори для виконання будь-яких вузькоспеціалізованих обчислень.

Співпроцесор не є повноцінним процесором, тому що не робить багатьох операцій, характерних для процесора (наприклад, не вміє працювати з програмою та обчислювати адреси пам'яті), будучи периферійним пристроєм центрального процесора.

Одна із схем взаємодії центрального процесора та співпроцесора, що застосовується, зокрема, у x86 співпроцесорах, реалізується наступним чином:

Співпроцесор підключений до шин центрального процесора, а також має декілька спеціальних сигналів для синхронізації процесорів між собою.

Частина командних кодів центрального процесора зарезервована для співпроцесора. Центральний процесор декодує та послідовно виконує команди. Коли виникає команда, яка має виконуватися співпроцесором, центральний процесор передає код операції співпроцесору. При цьому, якщо необхідне додаткове звернення до пам'яті (для читання або запису результатів), співпроцесор здійснює захоплення шини даних.

Після отримання команди та необхідних даних співпроцесор починає її виконання. Поки співпроцесор виконує команду, центральний процесор виконує програму далі паралельно з обчисленнями співпроцесора. Якщо наступна команда також є командою співпроцесора, процесор зупиняється і очікує на завершення виконання співпроцесором попередньої команди.

Існує спеціальна команда очікування (FWAIT), яка примусово зупиняє процесор до завершення обчислень (якщо продовження програми необхідні їх результати). В даний час команда використовується лише для обробки винятків при роботі з точкою, що плаває, робота процесора і співпроцесора синхронізується прозоро для програміста.

Починаючи з процесора Intel486DX, модуль операцій з плаваючою комою був інтегрований в центральний процесор і названий FPU. У лінійці Intel486SX модуль FPU відключався (спочатку до цієї лінійки потрапляли процесори з бракованим FPU). Для процесорів Intel486SX випускався «співпроцесор» Intel487SX, але, фактично, він був процесором Intel486DX і за його встановлення процесор Intel486SX відключався.


Незважаючи на інтеграцію, FPU в процесорах i486 є незмінним співпроцесором, виконаним на тому ж кристалі, більше того, схема FPU i486 повністю ідентична співпроцесору попереднього покоління 387DX аж до тактової частоти (в два рази меншою, ніж частота центрального процесора). Справжня інтеграція FPU з центральним процесором розпочалася лише у процесорах Pentium моделі MMX.

Широке поширення у відповідний період набули співпроцесори для платформи x86, що випускалися компанією Weitek - нею були випущені 1167, 2167 у вигляді набору мікросхем та мікросхеми 3167, 4167, для процесорів 8086, 80286, 80386, 8. У порівнянні з співпроцесорами від Intel вони забезпечували в 2-3 рази більшу продуктивність, але мали несумісний програмний інтерфейс, реалізований через технологію memory-mapping. Вона зводилася до того, що основний процесор повинен був записувати інформацію в ті чи інші області пам'яті, контрольовані співпроцесором. Конкретна адреса, куди проводився запис, інтерпретувався як та чи інша команда. Незважаючи на несумісність, співпроцесори від Weitek були широко підтримані як розробниками програмного забезпечення, так і виробниками материнських плат, які передбачали використання такої мікросхеми.

Ряд інших компаній випускав різні несумісні математичні співпроцесори, реалізуючи інтерфейс до них через порти вводу-виводу або переривання BIOS, але вони не набули такого широкого поширення.

Розрізняють такі види співпроцесорів:

  • математичні співпроцесори загального призначення, які зазвичай прискорюють обчислення з плаваючою комою ,
  • співпроцесори введення-виведення (наприклад - Intel 8089), що розвантажують центральний процесор від контролю за операціями введення-виводу або розширюють стандартний адресний простір процесора,
  • співпроцесори до виконання будь-яких вузькоспеціалізованих обчислень.

Співпроцесори можуть входити в набір логіки, розроблений однією конкретною фірмою (наприклад, Intel випускала для процесорів 8086 та 8088 співпроцесори та 8089, Motorola - співпроцесор Motorola 68881) або випускатися стороннім виробником (наприклад, Weitek (англ.) для Motorola m68k та 1067 80286).

Співпроцесор у програмуванні

Співпроцесор розширює систему інструкцій центрального процесора, тому для використання програма (компільована без інтерпретації і виклику зовнішніх бібліотек) повинна містити ці інструкції. Налаштування сучасних компіляторів для мов високого рівня під процесори сімейства x86 часто дозволяють вибирати: використовувати математичний співпроцесор чи ні, що особливо важливо при створенні коду, який буде виконуватися всередині апаратного переривання.

Також бувають периферійні процесори, призначені для управління периферійними пристроями та розвантаження центрального процесора, а саме:

Напишіть відгук про статтю "Сопроцесор"

Примітки

Див. також

Посилання

  • whatis.techtarget.com/definition/coprocessor
  • www.webopedia.com/TERM/C/coprocessor.html
  • www.pcmag.com/encyclopedia/term/46625/math-coprocessor
  • www.trevormarshall.com/old_papers/Approaching-Desktop-Supercomputer.pdf 1990 - Computing coprocessors, 32 bit computing coprocessors
  • Hansen, Paul Mark, November 1988

Уривок, що характеризує співпроцесор

Княжна Мар'я писала, що вона була в розпачі від непорозуміння, що сталося між ними. Якими б не були почуття її батька, писала княжна Марія, вона просила Наталку вірити, що вона не могла не любити її як ту, яку вибрав її брат, для щастя якого вона всім готова була пожертвувати.
«Втім, писала вона, не думайте, щоб батько мій був погано схильний до вас. Він хвора і стара людина, яку треба вибачати; але він добрий, великодушний і любитиме ту, яка зробить щастя його сина». Княжна Марія просила далі, щоб Наталя призначила час, коли вона може знову побачитися з нею.
Прочитавши листа, Наташа сіла до письмового столу, щоб написати відповідь: «Chere princesse», [Дорога княжна,] швидко, механічно написала вона і зупинилася. «Що ж далі могла вона написати після всього того, що було вчора? Так, так, все це було, і тепер все інше», думала вона, сидячи над початим листом. «Треба відмовити йому? Невже ж треба? Це жахливо!» І щоб не думати цих страшних думок, вона пішла до Соні і з нею разом почала розбирати візерунки.
Після обіду Наталка пішла до своєї кімнати, і знову взяла листа княжни Марії. - «Невже все вже скінчено? подумала вона. Невже так скоро все це сталося і знищило все колишнє! Вона у всій колишній силі згадувала свою любов до князя Андрія і водночас відчувала, що любила Курагіна. Вона жваво уявляла себе дружиною князя Андрія, уявляла собі стільки разів повторену її уявою картину щастя з ним і водночас, розгоряючись від хвилювання, уявляла всі подробиці свого вчорашнього побачення з Анатолем.
«Чому б це не могло бути разом? Іноді, у цілковитому затемненні, думала вона. Тоді тільки я була б зовсім щаслива, а тепер я повинна вибрати і без жодного з обох я не можу бути щасливою. Одне, думала вона, сказати те, що було князю Андрію чи приховати – однаково неможливо. А з цим нічого не зіпсовано. Але невже розлучитися назавжди з цим щастям кохання князя Андрія, яким я жила так довго?
- Панночка, - пошепки з таємничим виглядом сказала дівчина, заходячи до кімнати. – Мені одна людина веліла передати. Дівчина подала листа. – Тільки заради Христа, – говорила ще дівчина, коли Наталя, не думаючи, механічним рухом зламала печатку і читала любовний лист Анатоля, з якого вона, не розуміючи жодного слова, розуміла тільки одне – що цей лист був від нього, від тієї людини, якого вона любить. «Та вона любить, інакше хіба могло б статися те, що сталося? Хіба міг би бути в її руці любовний лист від нього?
Тремтячими руками Наташа тримала цей пристрасний, любовний лист, написаний для Анатоля Долоховим, і, читаючи його, знаходила в ньому відлуння всього того, що їй здавалося, вона сама відчувала.

Важливою частиною архітектури мікропроцесорів Intel є наявність пристрою для обробки числових даних у форматі з плаваючою точкою, що називається математичним співпроцесором. Архітектура комп'ютерів з урахуванням мікропроцесорів спочатку спиралася виключно цілочисленну арифметику. Зі зростанням мощі стали з'являтися пристрої обробки чисел з плаваючою точкою. В архітектурі сімейства мікропроцесорів Intel 8086 пристрій для обробки чисел з плаваючою точкою з'явився у складі комп'ютера на базі мікропроцесора i8086/88 та отримав назву математичний співпроцесор або просто співпроцесор. Вибір такої назви був обумовлений тим, що,

  • по-перше, цей пристрій був призначений для розширення обчислювальних можливостей основного процесора;
  • по-друге, воно було реалізовано у вигляді окремої мікросхеми, тобто його присутність була необов'язковою. Мікросхема співпроцесора для мікропроцесора i8086/88 мала назву i8087.

З появою нових моделей мікропроцесорів Intel удосконалювалися і співпроцесори, хоча їхня програмна модель залишилася практично незмінною. Як окремі (а, відповідно, необов'язкові у конкретній комплектації комп'ютера) пристрої, співпроцесори зберігалися до моделі мікропроцесора i386 і мали назву i287 і i387 відповідно. Починаючи з моделі i486, співпроцесор виконується в одному корпусі з основним мікропроцесором і таким чином є невід'ємною частиною комп'ютера.

Основні можливості математичного співпроцесора:

  • повна підтримка стандартів IEEE-754 та 854 на арифметику з плаваючою точкою. Ці стандарти описують як формати даних, із якими має працювати співпроцесор, і набір реалізованих їм функцій;
  • підтримка чисельних алгоритмів для обчислення значень тригонометричних функцій, логарифмів тощо;
  • обробка десяткових чисел з точністю до 18 розрядів, що дозволяє співпроцесор виконувати арифметичні операції без округлення над цілими десятковими числами зі значеннями до 10 18 ;
  • обробка дійсних чисел із діапазону ±3.37х10 -4932 …1.18х10 +4932 .

Форма представлення чисел з плаваючою точкою описана.

Загальна форма подання дійсних чисел передбачає можливість розміщення в розрядній сітці таких типів.

Тип чисел Знак Ступінь Ціле Мантіса
+∞ 0 11…11 1 00…00
позитивні
нормовані
0 00…01 — 11…10 1 00…00 — 11…11
позитивні ненормовані 0 00…00 0 00…00 — 11…11
0 0, 1 00…00 0 00…00
негативні ненормовані 1 00…00 0 00…00 — 11…11
негативні нормовані 1 00…01 — 11…10 1 00…00 — 11…11
-∞ 1 11…11 1 00…00
нечисла
(NaN - Not a number)
* 11…11 1 **…** ≠0

Числа простої та подвійної точності (float (DD ) та double (DQ ) відповідно) можуть бути представлені лише у нормованій формі. При цьому біт цілої частини числа є прихованим і має на увазі логічну 1. Інші 23 (52) розряду зберігають двійкову мантису числа.

Числа подвійної розширеної точності (long double (DT )) можуть бути представлені як у нормованій, так і ненормованій формі, оскільки біт цілої частини числа не є прихованим і може приймати значення як 0, так і 1.

Основним типом даних, якими оперує математичний співпроцесор, є 10-байтні дані (DT).

Програмна модель співпроцесора

Програмна модель співпроцесора є сукупністю регістрів, кожен із яких має своє функціональне призначення.

У програмній моделі співпроцесора можна виділити три групи регістрів:

  • Вісім регістрів r0…r7 , що становлять основу програмної моделі співпроцесора стек співпроцесора . Розмір кожного регістра 80 бітів. Така організація й у пристрої, що спеціалізуються на обробці обчислювальних алгоритмів.
  • Три службові регістри:
    — регістр стану співпроцесора swr (Status Word Register – регістр слова стану) – відображає інформацію про поточний стан співпроцесора;
    - керуючий регістр співпроцесора cwr (Control Word Register - регістр слова управління) - керує режимами роботи співпроцесора;
    - Регістр тегів twr (Tags Word Register - слово тегів) - використовується для контролю за станом кожного з регістрів стека.
  • Два регістри покажчиків - даних dpr (Data Point Register) та команд ipr (Instruction Point Register). Вони призначені для запам'ятовування інформації про адресу команди, що викликала виняткову ситуацію та адресу її операнда. Ці покажчики застосовуються при обробці виняткових ситуацій (але не для всіх команд).

Усі вказані регістри є програмно доступними. Проте до одним із них доступ отримати досить легко, для цього в системі команд співпроцесора існують спеціальні команди. До інших регістрів отримати доступ складніше, оскільки спеціальних команд цього немає, тому необхідно виконати додаткові дії.

Реєстр стану swr- Відображає поточний стан співпроцесора після виконання останньої команди. У регістрі swr містяться поля, дозволяють визначити: який регістр є поточної вершиною стека співпроцесора, які винятки виникли після виконання останньої команди, які особливості виконання останньої команди (якийсь аналог регістру прапорів основного процесора).

Структурно регістр swr складається з:

  • 6 прапорів виняткових ситуацій: PE, OE, UE, ZE, DE, IE.
    Винятки – це різновид переривань, за допомогою яких процесор інформує програму про деякі особливості її реального виконання. Співпроцесор також має здатність збудження подібних переривань у разі виникнення певних ситуацій (не обов'язково помилкових). Всі можливі винятки зведені до 6 типів, кожному з яких відповідає 1 біт в регістрі swr . Програмістові не обов'язково писати оброблювач для реакції на ситуацію, що призвела до деякого виключення. Співпроцесор вміє самостійно реагувати багато з них. Це так звана обробка винятків за умовчанням. Щоб викликати обробку певного типу винятку за умовчанням, необхідно цей виняток залишити не маскованим. Така дія виконується за допомогою установки в 1 відповідного біта в регістрі керуючого співпроцесора cwr . Типи винятків, що фіксуються за допомогою регістра swr:
    • IE (Invalide operation Error) – недійсний код операція;
    • DE (Denormalized operand Error) – ненормований операнд;
    • ZE (divide by Zero Error) - помилка поділу на нуль;
    • ОЕ (Overflow Error) – помилка переповнення. Виникає у разі виходу порядку числа максимально допустимий діапазон;
    • UE (Underflow Error) – помилка антипереповнення. Виникає, коли результат занадто малий (близький до нуля);
    • РЕ (Precision Error) – помилка точності. Встановлюється, коли співпроцесору доводиться округляти результат через те, що його точне уявлення неможливо. Так, співпроцесор ніколи не вдасться точно розділити 10 на 3.

    При виникненні будь-якого з цих шести типів винятків встановлюється в одиницю відповідний біт в регістрі swr незалежно від того, було замасковано це виняток в регістрі cwr чи ні.

  • бита помилка роботи стека співпроцесора SF (Stack Fault). Біт встановлюється в 1, якщо виникає одна з трьох виняткових ситуацій – РЕ, UE чи IE. Зокрема, його установка інформує про спробу запису в заповнений стек або, навпаки, спробу читання з порожнього стека. Після того, як значення цього біта проаналізовано, його потрібно знову скинути в 0, разом з бітами РЕ, UE та IE (якщо вони були встановлені);
  • біта сумарної помилки роботи співпроцесора ES (Error Summary). Біт встановлюється в 1, якщо виникає кожна з шести перерахованих вище виняткових ситуацій;
  • чотирьох бітів с0 ... с3 (Condition Code) - коду умови. Призначення цих бітів аналогічне прапорам у регістрі EFLAGS основного процесора - відобразити результат виконання останньої команди співпроцесора.
  • трибітного поля TOP. Поле містить покажчик регістра поточної вершини стека.
  • біта B зайнятості співпроцесора.

Регістр управління роботою співпроцесора cwr- Визначає особливості обробки числових даних. За допомогою полів у регістрі cwr можна регулювати точність виконання чисельних обчислень, керувати заокругленням, маскувати винятки.

Він складається з:

  • шести масок винятків PM, UM, OM, ZM, DM, IM;
  • поля керування точністю PC (Precision Control);
  • поля керування заокругленням RC (Rounding Control).

Маски винятків призначені маскування виняткових ситуацій, виникнення яких фіксується з допомогою шести біт регістру swr . Якщо якісь маскуючі біти винятків у регістрі cwr встановлені один, то відповідні винятки будуть оброблятися самим співпроцесором. Якщо для будь-якого виключення у відповідному биті маски винятків регістра cwr міститься 0, то при виникненні виключення цього типу буде збуджено переривання int 16 (10h). Операційна система повинна містити (або програміст повинен написати) обробник цього переривання. Він повинен з'ясувати причину переривання, після чого, якщо це необхідно, виправити її та виконати інші дії.

2-бітове поле управління точністю PC призначене для вибору довжини мантиси. Можливі значення у цьому полі означають:

  • PC =00 - довжина мантиси 24 біти;
  • PC =10 - довжина мантиси 53 біти;
  • PC =11 - довжина мантиси 64 біти.

За промовчанням встановлюється значення поля PC =11.

Поле управління округленням RC дозволяє керувати процесом округлення чисел у процесі співпроцесора. Необхідність операції округлення може з'явитися в ситуації, коли після виконання чергової команди співпроцесора виходить результат, наприклад, періодичний дріб. Встановивши одне із значень у полі RC , можна виконати округлення в потрібну сторону.
Значення поля RC з відповідним алгоритмом заокруглення:

  • 00 - значення округляється до найближчого числа, яке можна подати в розрядній сітці регістру співпроцесора;
  • 01 - значення округляється у меншу сторону;
  • 10 - значення округляється у велику сторону;
  • 11 - провадиться відкидання дробової частини числа. Використовується для приведення значення форми, яка може використовуватися в операціях цілочисленної арифметики.

Біт 12 у регістрі cwr фізично відсутній і зчитується рівним 0.

Реєстр тегів twr- являє собою сукупність двобітових полів. Кожне поле відповідає певному фізичному регістру стека та характеризує його поточний стан. Команди співпроцесора використовують цей регістр, наприклад, щоб визначити можливість запису значень у ці регістри. Зміна стану будь-якого регістра стека відбивається на вмісті відповідного цього регістру 2-бітового поля регістра тега. Можливі такі значення в полях регістру тега:

  • 00 - регістр стека співпроцесора зайнятий допустимим ненульовим значенням;
  • 01 - регістр стека співпроцесора містить нульове значення;
  • 10 - регістр стека співпроцесора містить одне із спеціальних чисельних значень, за винятком нуля;
  • 11 - регістр порожній і в нього можна робити запис. Це значення у двобітовому полі регістра тегів не означає, що всі біти відповідного регістра стека повинні бути обов'язково нульовими.
Принцип роботи співпроцесора

Реєстровий стік співпроцесора організований за принципом кільця. Серед восьми регістрів, що становлять стек, немає такого, який є вершиною стека. Усі регістри стека з функціональної точки зору абсолютно однакові та рівноправні. Вершина в кільцевому стеку співпроцесора є плаваючою. Контроль поточної вершини здійснюється апаратно за допомогою 3-бітового поля top регістра swr.


У полі top фіксується номер регістра стека r0…r7 , що є нині поточної вершиною стека.
Команди співпроцесора оперують не фізичними номерами регістрів стека r0…r7, які логічними номерами st(0)…st(7) . З допомогою логічних номерів реалізується відносна адресація регістрів стека співпроцесора. Наприклад, якщо поточною вершиною до запису в стек є фізичний регістр стека r3 то після запису в стек поточної вершиною стає фізичний регістр стека r2 . Тобто, в міру запису в стек, покажчик його вершини рухається у напрямку до молодших номерів фізичних регістрів (зменшується на одиницю). Якщо поточною вершиною є r0, то після запису чергового значення в стек співпроцесора його поточною вершиною стане фізичний регістр r7. Що ж до логічних номерів регістрів стека st(0)…st(7) , всі вони переміщаються разом із зміною поточної вершини стека. Логічна вершина стека має ім'я st(0) .
Оскільки при написанні програми розробник маніпулює не абсолютними, а відносними номерами регістрів стека, у нього можуть виникнути труднощі при спробі інтерпретації вмісту регістру тегів twr з відповідними фізичними регістрів стека. Як сполучна ланка необхідно залучати інформацію з поля top регістра swr. У такий спосіб реалізується принцип кільця.
Така організація стека має велику гнучкість, зокрема при передачі параметрів у процедуру. Для підвищення гнучкості розробки та використання процедур не бажано прив'язувати їх за параметрами, що передаються, до апаратних ресурсів (фізичних номерів регістрів співпроцесора). Набагато зручніше задавати порядок проходження параметрів, що передаються у вигляді логічних номерів регістрів. Такий спосіб передачі був би однозначним і не вимагав від розробника знання зайвих подробиць про апаратні реалізації співпроцесора. Логічна нумерація регістрів співпроцесора, що підтримується лише на рівні системи команд, ідеально реалізує цю ідею. При цьому не має значення, в якому фізичному регістрі стека співпроцесора були поміщені дані перед викликом підпрограми, визначальним є тільки порядок слідування параметрів у стеку. З цієї причини підпрограмою важливо знати тільки порядок розміщення параметрів, що передаються в стеку.

Принцип роботи співпроцесора разом із центральним процесором
Процесор і співпроцесор мають окремі системи команд і формати оброблюваних даних. Незважаючи на те, що співпроцесор архітектурно є окремим обчислювальним пристроєм, він не може існувати окремо від основного процесора. Процесор та співпроцесор, будучи двома самостійними обчислювальними пристроями, можуть працювати паралельно. Але це розпаралелювання поширюється лише виконання команд. Обидва процесори підключені до загальної системної шини і мають доступ до однієї інформації. Ініціює процес вибірки чергової команди завжди основний процесор. Після вибірки команда потрапляє одночасно в обидва процесори. Будь-яка команда співпроцесора має код операції, перші п'ять біт, якого мають значення 11011. Коли код операції починається цими бітами, то основний процесор подальшого вмісту коду операції з'ясовує, чи дана команда вимагає звернення до пам'яті. Якщо це так, то основний процесор формує фізичну адресу операнда і звертається до пам'яті, після чого вміст осередку пам'яті виставляється на шину даних. Якщо звернення до пам'яті не потрібно, то основний процесор закінчує роботу над цією командою (не роблячи спроби її виконання) і починає декодувати наступну команду з поточного вхідного командного потоку. Вибрана команда потрапляє до співпроцесора одночасно з основним процесором. Співпроцесор, визначивши за першими п'ятьма бітами, що чергова команда належить його системі команд, починає її виконання. Якщо команда вимагає операнди з пам'яті, то співпроцесор звертається до шини даних за читанням вмісту осередку пам'яті, який наданий основним процесором.

У певних випадках необхідно узгоджувати роботу обох пристроїв. Наприклад, якщо у вхідному потоці відразу за командою співпроцесора слідує команда основного процесора, що використовує результати роботи попередньої команди, то співпроцесор не встигне виконати свою команду за той час, поки основний процесор, пропустивши співпроцесорну команду, виконає свою. При цьому, що логіка роботи програми буде порушена. Можлива інша ситуація. Якщо вхідний потік команд містить послідовність з кількох команд співпроцесора, процесор пропустить їх дуже швидко, але він повинен забезпечити зовнішній інтерфейс для співпроцесора. Ці та інші, складніші ситуації, призводять до необхідності синхронізації між собою роботи двох процесорів. У перших моделях мікропроцесорів це робилося шляхом вставки перед чи після кожної команди співпроцесора спеціальної команди wait або fwait. Робота цієї команди полягала у призупиненні роботи основного процесора до того часу, поки співпроцесор не закінчить роботу над останньою командою. У моделях мікропроцесора (починаючи з i486) подібна синхронізація виконується автоматично. Але для деяких команд із групи команд керування співпроцесором залишена можливість вибору між командами із синхронізацією (очікуванням) та без неї.

Співпроцесор - спеціальна інтегральна схема, яка працює у співдружності з

Основним процесором. Зазвичай спро цесор налаштовується на виконання

який-небудь специфічні функції - математичної операції або графічного

уявлення. І цю операцію співпроцесор може реалізувати у багато разів

швидше ніж головний процесор. Таким чином комп'ютер з співпроцесором

працює набагато спритніше.

Співпроцесор - це типовий мікропроцесор, але з настільки універсальний. Зазвичай

співпроцесор розробляється як спеціальний пристрій з реалізації конкретно

певної функції. Так репертуар співпроцесора обмежений, він може ре

алізовувати виділені йому функції як ніхто інший.

Як і будь-який інший мікропроцесор, співпроцесор працює за тими ж принципами. Він

просто виконує програми з тримають послідовність мікропроцесорних

команд. Соп роцесор не тримає під керуванням основну масу ланцюгів комп'ютера.

У звичайному режимі мікропроцесор виконує всі функції комп'ютера. І лише коли

зустрічається завдання з якою краще впорається співпроцесор, йому передаються дані

і команди управління, а центральний процесор чекає на результати.

Співпроцесори, які здебільшого використовуються в PC, є математичними.

співпроцесорами. У математиці вони спеціалізуються з множення та поділу чисел.

Математичні співпроцесори називають ще процесорами з плаваючою комою,

тому що вони особливо яскраво виявляють свої можливості у цій галузі

математики. Числа з плаваючою комою часто використовуються в наукових розрахунках і

видаються, як правило, мантисою та ординатою.

Перевага, що отримується від установки математичного співпроцесора, залежить від

Які завдання вирішуються на комп'ютері. Відповідно до твердження Intel співпроцесор

може зменшити час виконання математичних операцій, таких як

множення, поділ, зведення на 80% і більше.

Швидкість виконання простих операцій, таких як додавання та віднімання практично

не зменшується.

З практичної точки зору, продуктивність системи, що стосується підготовки

текстів та ведення бази даних - функцій, що не потребують складних математичних

розрахунків, може бути поліпшена математичним сопроцессором.

Співпроцесор та головний мікропроцесор можуть працювати на різних тактових частотах

(Від власних тактових генераторів).

Коли відношення частот мікропроцесора та співпроцесора виражається цілим числом,

вони працюють синхронно і можуть передавати інформацію один одному оптимальним

чином. Несинхронізована робота вимагає, щоб один або інший з них

очікував завершення циклу свого партнера, що тягне за собою появу

невеликого, але реального періоду очікування.

Сімейство співпроцесорів Intel становлять: 8087, 80287, 80387, 80387SX.

Кожен із них спеціально розроблений для роботи з відповідним

мікропроцесором головного сімейства Intel. Кожен з цих чотирьох має свої

характерні риси. Обмеження по одноразовій обробці інформації в

8, 16, 32 біт залишилися далеко позаду. Співпроцесори Intel брабатують відразу 80

біт. Кожен співпроцесор містить вісім 80-бітних регістрів, у яких і

здійснює свої обчислення. Вони працюють з 32-, 64- або 80-бітними числами з

плаваючою комою; 32- або 64-бітними цілими числами. Як правило співпроцесори

працюють як придатки центрального.

Обидва процесори висять на адресно-інформаційних лініях комп'ютера та виконують

кожен свої команди у міру їх появи у програмі. Співпроцесори можуть

виконувати свої функції паралельно з роботою центрального процесора, тобто

обидва мозку в даному випадку думають одночасно, тому що кожен з них читає

свої команди прямо з шини, і центральному процесору не доводиться перериватися,

щоб видати команду співпроцесору.

Цей співпроцесор бал розроблений спеціально для використання з Intel 8086,

8088, 80186, 80188. Тому він ідентичні з цими мікропроцесорами

можливості за адресацією та сприйняттям інформації. Причому цей співпроцесор сам

налаштовується на розмір шини даних - восьми або шістнадцятибітну (8086 або

8088 сімейства). Він встановлюється у стандартний 40-контактний роз'єм та

збільшує список команд комп'ютера на 68 одиниць.

Існують три модифікації цього співпроцесора, що відрізняються за частотою: 5, 8,

Так само, 80286 є розширенням 8086, 80287 є розвитком 8087.

Головною перевагою 80287 служить можливість функціонувати як у реальному, так

і в захищеному режимі 80286 мікропроцесора. Він має можливість адресації до

всім 16М пам'яті.

80287 майже повністю сумісний з 8087 і може використовувати майже все

програмне забезпечення останнього. Головна функціональна відмінність цих

співпроцесорів у способі обробки збійних ситуацій. При виявленні помилки ці

чіпи можуть поводитися по-різному. Втім програмне забезпечення може

компенсувати ці розбіжності.

80287 розміщується у 40-контактному DIP-корпусі. Але не на приклад своєму молодшому

побратиму, 80287 може працювати з від особистої від центрального мікропроцесора

тактовою частотою.

мікропроцесора, в нього вбудований ланцюг дільника, який зменшує внутрішній

частоту втричі.

Використовуючи свій власний генератор, 80287 може істотно підвищити свою

продуктивність.

Так само, як і в 8087, 80287 розрізняють чотири модифікації, що відрізняються за

80287 сумісний із 80386 мікропроцесором. Однак вони працюють на різних

частотах, і, отже, потрібен спеціальний інтерфейс для доступу до шини

даних 80386. Більш того, так як 80287 - 16-бітний чіп, всі взаємозв'язки з

80386 повинні здійснюватися 16-бітними словами, що потенційно зменшує

продуктивність.

80387 та 80387SX

Так само, як Intel, врахувавши уроки минулого, зробив 80386, 80387 став

подальшою розробкою 80287 співпроцесора. Залишаючись командно сумісним з

80287, 80387 збільшив швидкість маніпуляцій даними. Але знову ж таки були розбіжності

ня в обробці помилок. Зате можливості 80387 були більшими - він реалізовував

всі трансцендентні та логарифмічні функції.

80387SX - всебічно схожий на 80387, але призначається для роботи на

16-бітної шині 80386SX замість 32-бітної шини даних.

80387 і 80387SX можуть виконувати всі програми для 80287.

еквівалентно. Головною проблемою 387-х є результати, що трохи відрізняються.

обчислень трансцендентальної функції від 80 287.

80387 працює на тій же частоті, що і центральний процесор. Є

відповідні модифікації цього співпроцесора аж до 25 МГц.

Чіпсет- Набір мікросхем, спроектованих для спільної роботи з виконання набору заданих функцій.

Так, у комп'ютерах чіпсет, що розміщується на материнській платі, виконує роль сполучного компонента, що забезпечує спільне функціонування підсистем пам'яті, центрального процесора (ЦП), введення-виведення та інших.

Співпроцесор- Спеціалізований процесор, що розширює можливості центрального процесора комп'ютерної системи, але оформлений як окремий функціональний модуль. Фізично співпроцесор може бути окремою мікросхемою або може бути вбудований у центральний процесор

Розрізняють такі види співпроцесорів:

· Математичні співпроцесори загального призначення, які зазвичай прискорюють обчислення з плаваючою точкою,

· співпроцесори вводу-виводу (наприклад - Intel 8089), що розвантажують центральний процесор від контролю за операціями вводу-виводу або розширюють стандартний адресний простір процесора,

· Співпроцесори для виконання будь-яких вузькоспеціалізованих обчислень.

Характеристики:

Параметр Частота шини (МГц) Підтримка SDRAM Макс. Об'єм оперативної пам'яті Піковий обмін із пам'яттю Мбайт/с

21. ПАМ'ЯТЬ КОМП'ЮТЕРА, ЯК ВЛАШЕНА КОМП'ЮТЕРНА ПАМ'ЯТЬ -це

частина обчислювальної машини, фізичний пристрій або середовище для зберігання даних, що використовується в обчисленнях протягом певного часу. Пам'ять, як і центральний процесор, є постійною частиною комп'ютера.

Пам'ять у обчислювальних пристроях має ієрархічну структуру і зазвичай передбачає використання декількох пристроїв, що запам'ятовують, що мають різні характеристики.

22 . До складу внутрішньої пам'яті входять оперативна пам'ять, кеш-пам'ятьі спеціальна пам'ять

Оперативна пам'ять (ОЗУ,RAM, Random Access Memory – пам'ять з довільним доступом) - це швидке запам'ятовуючий пристрій невеликого обсягу, безпосередньо пов'язане з процесором і призначене для запису, зчитування та зберігання виконуваних програм та даних, що обробляються цими програмами.

Кеш , або надоперативна пам'ять - дуже швидке ЗУ невеликого обсягу, яке використовується при обміні даними між мікропроцесором та оперативною пам'яттю для компенсації різниці у швидкості обробки інформації процесором та дещо менш швидкодіючої оперативної пам'яттю.

До пристроїв спеціальної пам'ятівідносяться постійна пам'ять(ROM), перепрограмована постійна пам'ять (Flash Memory), пам'ять CMOS RAM, що живиться від батарейки, відеопам'ятьта деякі інші види пам'яті.



Роль BIOS подвійна: з одного боку, це невід'ємний елемент апаратури ( Hardware), а з іншого боку - важливий модуль будь-якої операційної системи ( Software).