Оперативна пам'ять. Технологія MMX

Оперативна пам'ять як один з найважливіших елементів комп'ютера. Історія, розвиток та принцип функціонування пам'яті з довільним доступом (RAM - Random Access Memory). Будова, принцип організації, функціонування. Аналіз процесорів MMX, їх продуктивність.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 31.10.2014
Размер файла 176,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Основою MMX є архітектура "одна інструкція над багатьма даними" (SIMD). Вона полягає в тому, що багато одиниць інформації обробляється однією командою одночасно, значно збільшуючи продуктивність.

Технологія MMX включена в архітектуру процесорів Intel таким чином, що збережена повна сумісність з існуючими на той час операційними системами: MS DOS*, Windows* 3.1, Windows 95, OS/2* і поєднань. Це досягається за рахунок поєднанні регістрів цілочисельної арифметики загального призначення і регістра перебування з регістрами плаваючої арифметики і перебування відповідно. Отже, не введено нових регістрів для реалізації технології MMX. Це значить, що операційна система для збереження і відновлення регістрів при виконанні програм MMX використовує стандартні механізми, передбачені для плаваючої арифметики. Всі програми, написані раніше для процесорів з архітектурою Intel, виконуються на комп'ютерах з технологією MMX.

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

Як вже мовилося, в Pentium MMX додано 57 нових команд обробки даних і, відповідно - чотири нові типи даних. За одну операцію команда MMX обробляє 64-розрядне двійкове слово (так зване квадраслово, або QWord). Нові типи даних утворюються від упаковки в квадраслово звичних типів - байтів (по 8), слів (по 4) або подвійних слів (по 2). Четвертий тип є саме квадраслово.

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

Набір MMX-команд складається з команд пересилки даних, упаковки/розпаковування, додавання/віднімання, множення, зсуву, порівняння і порозрядних логічних. Команди упаковки і додавання/віднімання можуть працювати в двох режимах: звичному, коли переповнювання розрядної сітки викликає "загортання" (wraparound) значення результату, і спеціальному, коли воно приводить до обмеження (clipping) результату до мінімально або максимально допустимого значення. Режим обмеження в термінології Intel називається Saturation (змішування) - в ньому особливо зручно виконувати змішування кольорів зображення або амплітуд звукових сигналів, оскільки при звичному переповнюванні результату не має ніякого значення.

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

Команди зсуву реалізують логічний і арифметичний зсуви своїх операндів (арифметичний зсув відрізняється від логічного тим, що при зсуві вправо розряди, що звільнилися, заповнюються копією знакового розряду, а не нулями, від чого він придатний для множення/ділення знакових операндів на ступені двійки). Логічні порозрядні команди виконують операції І (AND), АБО (OR), АБО, що виключає (XOR), а також комбіновану команду І з інверсією одного з операндів (AND NOT), зручну для реалізації "зворотного вибору" по бітовій масці.

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

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

Розглянемо приклад, аналоги якому можна знайти в найрізноманітніших додатках. Припустимо, нам необхідно відтворити два звукові ефекти одночасно. Для цього необхідно побайтово скласти оцифровані значення звуку, і якщо результат "зашкалює" в ту чи іншу сторону, то обмежити його по амплітуді. На мові С+ фрагмент коду виглядатиме наступним чином sum = snd1 + snd2; if (sum > 127) sum = 127; if (sum < - 128) sum = - 128; Після компіляції ця ділянка коду перетвориться на 7 інструкцій процесора x86.

Якщо ж скористатися технологією MMX, то весь цей громіздкий код можна замінити однією-єдиною інструкцією paddsb mm0, mm1 яка до того ж виконає цю операцію відразу для пакету з 8 байтів даних. Неважко підрахувати, що для даного прикладу досягається прискорення виконання приблизно в 56 разів! Інший приклад, де інструкції MMX можуть дати значний виграш в продуктивності, - додавання двох зображень з використанням одного з кольорів в якості "прозорої" маски. Ця стандартна операція достатньо часто зустрічається в багатьох графічних додатках. Голубий колір фону довкола космічного корабля розглядається як прозорий при складанні зображень. Спеціальні інструкції порівняння з утворенням маски результату дозволяють виконати цю операцію не тільки пакетами по 8 байтів, але й уникнути галужень, а значить, і штрафів за їх неправильний прогноз. При цьому продуктивність при використанні процесора Pentium з технологією MMX зростає не менше, ніж у два рази.

Як існуючі додатки і існуюча операційна система зберігатимуть значення нові 8 регістрів MMX, наприклад, при перемиканні задач, якщо вони нічого про це не знають? Виявляється, регістри МMX суміщені по розташуванню з регістрами плаваючої точки. Завдяки такому рішенню регістри MMX повністю вписуються в існуючу архітектуру.

3.5 Особливості реалізації та продуктивність MMX

Для обробки даних і зберігання проміжних результатів в Pentium MMX використовуються вісім 64-розрядних регістрів MM0. MM7, які фізично суміщені зі стеком регістрів математичного співпроцесора. При виконанні будь-якої з MMX-команд відбувається установка "режиму MMX" з відміткою цього в слові стану співпроцесора (FPU Tag Word). З цієї миті стек регістрів співпроцесора розглядається як набір MMX-регістрів; завершує роботу в режимі MMX команда EMMS (End MultiMedia State). З одного боку, така реалізація дозволила забезпечити нормальну роботу додатків, використовуючих MMX, в багатозадачних системах, що не підтримують цю технологію, оскільки всі подібні системи створюють власну копію вмісту стека співпроцесора і слова його стану для кожного процесу. З другого боку, перехід між режимами займає значний час, і поєднання, наприклад, в одному циклі команд співпроцесора з командами MMX може не тільки не прискорити, а навіть істотно сповільнити виконання програми. Тому для досягнення найкращих результатів рекомендується групувати ці команди окремо одна від одної, що насправді не представляє ніякої складності.

Оскільки MMX - достатньо вузькоспеціалізоване розширення системи команд процесора, не можна чекати кардинального прискорення роботи тільки від самого факту переходу на процесор MMX. Як вже було сказано, на додатках загального характеру, "незнайомих" з MMX, реальна продуктивність зростає лише на одиниці відсотків, хоча тести можуть показувати її зростання на 20-30% - це відбувається через циклічність більшості тестів, коли велика частина циклу потрапляє в збільшений внутрішній кеш.

При використанні "чистого" MMX-коду, вдало придатного до специфіки вирішуваної задачі, швидкодія переписаної ділянки може зрости в 5-6 разів, проте це прискорення буде локальним і неминуче компенсується "типовими" ділянками програми, тому не слід зразу ж чекати від програм, використовуючих MMX, прискорення роботи в рази. По максимальних результатах тестів Intel Media Benchmark і Norton Media Benchmark для Windows 95, обробка зображень з використанням технології MMX відбувається швидше майже в п'ять разів, проте в середньому виходить приблизно 1,5.3-кратне прискорення.

Розділ IV. Розширення SSE, SSE2, SSE3

SSE (Streaming SIMD Extensions) - розширення інструкцій процесора для потокової обробки в режимі SIMD (Single Instruction Multiple Data), тобто коли потрібно застосовувати однотипні операції до потоку даних.

Розширення SSE розроблено компанією Intel і було вперше застосовано в процесорі Intel Pentium III з ядром Katmai. Звідси початкове назва KNI (Katmai New Instructions). Технологія SSE дозволила подолати проблеми MMX - при використанні MMX неможливо було одночасно використовувати інструкції співпроцесора, так як його регістри задіяні для MMX і роботи з речовими числами.

У загальному випадку, до архітектури процесора додається ряд самих інструкцій і кілька 128-бітних регістрів з різною інтерперетаціей. Тим не менш, хоча спочатку кожен регістр трактується як два значення з плаваючою точкою подвійної точності (2 * 64-біт), операції можуть застосовуватися практично до всіх типів, "вміщує" в 16 байт:

Розширення процесорів ММХ - SSE, та наступні версії SSE2, SSE3 має наступні основні переваги у порівнянні з попередником:

- Більш велике розширення і високу якість перегляду зображень і маніпуляції для графічних програм;

- Високоякісне аудіо, відео у форматі MPEG2, а також одночасне кодування і декодування MPEG2 для мультимедійних додатків;

- Зниження завантаження процесора для розпізнавання мовлення, а також високу точність і малий час відгуку при роботі розпізнавання мови програмного забезпечення;

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

У лютому 1999 року корпорація Intel представила процесор Pentium III на базі MMX з розшеренням Streaming SIMD Extensions (SSE). Celeron 533A і подальші версії Celeron процесорів на базі ядра Pentium III ??також підтримують SSE інструкцій. Раніше Pentium II і Celeron 533 і нижче (на основі Pentium II ядро) не підтримують SSE.

Одним з основних переваг SSE в порівнянні зі звичайним MMX є те, що SSE підтримує операцію одиничної точності з плаваючою комою, так звані SIMD операції, які є вузьким місцем в обробці 3D-графіки. Так само, як з простим MMX, SIMD підтримує багатопотоковість. Зокрема, SSE підтримує до чотирьох операцій з плаваючою комою за один такт, тобто одна інструкція може працювати над чотирмя частини даних одночасно. Інструкції SSE з плаваючою точкою можуть використовуватись з MMX інструкціями, без втрати продуктивності.

Для того, щоб інструкції SSE були ефективними, необхідно щоб ці інструкції були передбаченими програмним забезпеченням, та SSE-додатками. Більшість компаній що пишуть графічні і звукові додатки відповідного програмного забезпечення сьогодні ініціалізують і використовують можливості SSE. Наприклад, потужні графічні додатки, такі як Adobe Photoshop підтримують інструкцій SSE для підвищення продуктивності процесорів оснащених SSE. Microsoft включає підтримку SSE в DirectX 6.1, а потім відео та звукових драйверів, які поставляються з Windows 98 Second Edition, Windows Me, Windows NT 4.0 (з пакетом оновлень 5 або пізнішої версії), Windows 2000 і Windows XP.

SSE є розширенням MMX, SSE2 є розширенням SSE і SSE3 є розширенням SSE2. Таким чином, процесори, що підтримують SSE3 також підтримують набір інструкцій SSE2, що підтримують SSE, що підтримує оригінальні інструкції MMX.

SSE включає в себе 70 нових інструкцій для графіки та обробки звуку у порівнянні з MMX. SSE включає в архітектуру процесора вісім 128-бітних регістрів і набір інструкцій, які працюють із скалярними і упакованими типами даних. Перевага в продуктивності досягається в тому випадку, коли необхідно зробити одну і ту ж послідовність дій над різними даними. В такому випадку блоком SSE здійснюється розпаралелювання обчислювального процесу між даними.

SSE2 був представлений в листопаді 2000 року разом з процесором Pentium 4, і додає 144 додаткових інструкцій SIMD. SSE2 також включає в себе всі попередні інструкції MMX і SSE. SSE2 використовує вісім 128-бітних регістра (xmm0 до xmm7), що увійшли до архітектури x86 з вводом розширення SSE, кожний з яких трактується як послідовність 2 значень з плаваючою точкою подвійної точності. SSE2 включає в себе набір інструкцій, котрий виконує операції зі скалярними і упакованими типами даних. Також SSE2 містить інструкції для потокової обробки цілочислових даних в тих же 128-бітних xmm регістрах, що робить це розширення більш прийнятним для цілочислових обрахунків, ніж використання набору інструкцій MMX, що з'явилися набагато раніше. Перевага у швидкості обчислень досягається в тому випадку, коли необхідно виконати одну і ту саму послідовність дій над різними даними.

SSE3 була введена в лютому 2004 року разом з Pentium 4 Prescott процесора, і додає 13 нових інструкцій SIMD для поліпшення складної математики, графіки, кодування відео і синхронізації потоків. SSE3 також включає в себе всі попередні MMX, SSE, SSE2 і інструкції. Найбільш помітна зміна - можливість горизонтальної роботи з регістрами. Якщо говорити більш конкретно, додані команди додавання і віднімання кількох значень, що зберігаються в одному регістрі. Ці команди спростили ряд DSP і 3D-операцій. Існує також нова команда для перетворення значень з плаваючою комою в цілі без необхідності вносити зміни в глобальному режимі округлення.

Висновки

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

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

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

Фактично, поява процесорів Pentium MMX ознаменувала той факт, що "залізо" і програми повинні крокувати в ногу. Як до цього звичайно розробляли і упроваджували нові типи процесорів - спочатку з'являлася нова мікросхема з оригінальною архітектурою, а потім для неї створювалися програми, в яких ураховувалися особливості нового процесора. Причому, розробники "заліза" виходили з своїх уявлень про призначення нового процесора, а програмісти самостійно намагалися використовувати нові можливості для вдосконалення своїх продуктів. А ось процесор Pentium MMX був розроблений під конкретний програмний продукт - операційну систему Windows 95.

Якщо заглянути в минуле, то можна пригадати, що всі ігри з відмінною графікою працювали в DOS, не використовуючи можливості Windows. Тобто користувач, працюючи в середовищі Windows, запускав сесію DOS, а вже в ній починала працювати "наворочена" гра. Значення такого багатоступінчастого підходу було в тому, що швидкість відображення складної графіки в Windows 95 виявилася вкрай низка. Максимум графічних можливостей для Windows 95 - це досить популярна гра "пасьянс".

Для прискорення роботи з графікою в процесорі Pentium MMX з'явилися додаткові регістри і типи даних, а також інструкції (команди) для їх використання.

Не дивлячись на переваги технології MMX, в ній виявилися досить серйозні недоліки. В першу чергу, це неможливість одночасного використання співпроцесора і інструкцій MMX, оскільки регістри MMX відображалися на регістри співпроцесора. Якщо не враховувати таку особливість при написанні програми, то замість прискорення роботи можна було отримати різке падіння продуктивності комп'ютера. Окрім технології MMX, в процесорах Pentium MMX застосовані технології, які були розроблені для процесора Pentium Pro, наприклад, більш ефективний механізм прогнозів.

Комп'ютери з процесором Pentium MMX до цих пір ефективно використовуються з операційними системами Windows 95/98, показуючи цілком достойну продуктивність в офісних додатках.

Список використаної літератури

1. Айден К. и др. Аппаратные средства PC: Пер. с нем. / К. Айден, Х. Фибельман, М. Краммер. - Спб.: BHV-Сонет.п., 2008.

2. Вермань А.Ф., Апатова Н.В. Інформатика. - К.: Форум, 2012.

3. Вильховченко С. Современный компьютер: устройство, выбор, модернизация. - СПб.: Питер, 2008.

4. Глушаков С.В., Мельников И.В. Персональный компьютер: Учебный курс. - Харьков: Фолио, М.: ООО "Издательство АСТ", 2000.

5. Гук М. Аппаратные средства IBM PC: Карманная энциклопедия. - СПб.: Питер, 1999.

6. Гук М. Аппаратные средства IBM PC: Энциклопедия. - СПб.: Питер, 2000.

7. Гук М. Интерфейсы ПК: Справочник. - СПб.: Питер, 2009.

8. Информатика. Базовый курс. / Симонович С.В. и др. - СПб: Издательство "Питер", 1999.

9. Інформатика: Комп'ютерна техніка. Комп'ютерні технології: Підручник для вузів / За ред. О.І. Пушкаря. - К.: Академія, 2012.

10. Леонтьев В.П. Новейшая энциклопедия персонального компьютера - М.: ОЛМА-ПРЕСС, 2003.

11. Локазюк В.М. Мікропроцесори та мікроЕОМ у виробничих системах: Посібник. - К.: Видавничий центр "Академія", 2009. - 368 с.

12. Локазюк В.М., Савченко Ю.Г. Надійнсть, контроль, діагностика і модернізація ПК: Посібник для вузів / Під ред.В.М. Локазюка. - К.: Академія, 2004. - 376 с.

13. Модернизация и обслуживание ПК: Базовый курс / Пер. с. англ.Д.М. Шевеля. - К.: БЕК; М.: ЭНТРОП; СПб.: Корона принт, 2008. - 592 с.

14. Соломенчук В.Г. Аппаратные средства персональных компьютеров. - СПб.: БХВ-Петербург, 2010. - 512 с.

Размещено на Allbest.ru


Подобные документы

  • Властивості та класифікація оперативної пам'яті комп'ютера. Пам'ять типу ROM, DRAM, DDR2 та DDR3, кеш-пам'ять SRАМ. Архітектурна будова пам'яті. Швидкість обміну інформацією з жорстким диском та флеш-пам'яттю. Технічні характеристики оперативної пам'яті.

    реферат [147,1 K], добавлен 13.04.2014

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

    реферат [24,4 K], добавлен 27.12.2011

  • Експонентний розвиток комп'ютерної техніки. Будова сучасного комп'ютера, призначення основних елементів. Будова центрального процесора. Оперативная пам'ять та материнська плата. Будова звукової карти. Характеристика жорсткого диска. Склад чипсету.

    презентация [1,4 M], добавлен 25.02.2010

  • Вивчення загальних положень функціонування ЕОМ. Сутність оперативної та кеш-пам’яті. Особливості зовнішніх носіїв інформації, які призначені для накопичення інформації, створення резервних копій i для подальшого її використання незалежно від комп’ютера.

    курсовая работа [155,5 K], добавлен 13.06.2010

  • "Критичні" комплектуючі комп'ютера. Процесор та оперативна пам'ять. Швидкість роботи комп'ютера. Порівняння швидкодії комплектуючих з роботою еталонних моделей. Стратегія і варіанти модернізації. Функціональні особливості побудови материнської плати.

    курсовая работа [4,6 M], добавлен 24.06.2013

  • Загальна структура комп'ютера, архітектура процесора типу Intel 8086. Принцип роботи пам'яті, її види (постійна та оперативна). Основи програмування на мові асемблер та її синтаксис. Особливості використання позначок, кодів команд, операндів і директив.

    лабораторная работа [36,0 K], добавлен 27.02.2013

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

    реферат [100,1 K], добавлен 31.01.2011

  • Виды и внешние устройство системных блоков. Вывод звукового сигнала на акустическую систему. Оперативная память (Random Access Memory - память с произвольным доступом). Системная плата компьютера. Дисководы для работы со сменными носителями информации.

    презентация [1,8 M], добавлен 20.09.2013

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

    курсовая работа [346,8 K], добавлен 05.01.2014

  • Основні принципи дії та архітектура прототипних варіантів CISC-комп'ютера. Інструкції асемблерної мови і принцип трансляції асемблерної програми у машинний код. Розробка тестової програми. Перевірка правильності роботи реалізованих команд у прикладах.

    курсовая работа [446,1 K], добавлен 03.02.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.