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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    75,56 Кб
  • Опубликовано:
    2015-02-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Зміст

Вступ

Pозділ I. Історія, розвиток та принцип функціонування RAM

1.1 Еволюція динамічної пам'яті. FPM-DRAM

1.1.1 EDO, BEDO - DRAM

1.1.2 SDRAM

1.1.3 DDR-SDRAM

1.1.4 RDRAM - Rambus-пам'ять

1.1.5 DDR2

1.1.6 DDR3 SDRAM

1.1.7 LPDDR

1.2 Пам'ять типу SRAM

1.2.1 Кеш-пам’ять

Розділ II. Форм-фактор та пз для роботи з RAM

2.1 DIP

2.2 SIPP

2.3 SIMM

2.4 DIMM

2.5 Програмне забезпечення для роботи з RAM комп'ютера

Розділ III. Аналіз, передумови процесорів MMX

3.1 Будова, принцип організації, функціонування

3.2 Різниця між MMX та Pentium

3.3 Передумови MMX

3.4 Принцип функціонування технологія MMX та обробка даних

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

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

Висновки

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

Вступ


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

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

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

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

Технологія MMX була створена в результаті сумісних зусиль розробників архітектури процесорів Intel і програмістів. Були проведені дослідження широкого кола програм: обробки зображень, MPEG відео, синтезу музики, стиснення мови та її розпізнавання, ігрового, відеоконференційного і багатьох інших. В них виділялися підпрограми, в яких виконуються основні обчислення. Таким чином техологія MMX відіграла велику роль у розвитку подальших процесорів.

Технологія MMX була розроблена як набір базових цілочисельних команд, які зручно використовувати в різних мультимедійних і комунікаційних додатках. Основні риси цієї технології: архітектура - одна інструкція над багатьма даними (SIMD).

Pозділ I. Історія, розвиток та принцип функціонування RAM


Оперативна пам'ять - в інформатиці - пам'ять, частина системи пам'яті ЕОМ, в яку процесор може звернутися за одну операцію. Призначена для тимчасового зберігання даних і команд, необхідних процесору для виконання ним операцій. Оперативна пам'ять передає процесору дані безпосередньо, або через кеш-пам'ять. Кожна клітинка оперативної пам'яті має свою індивідуальний адресу. Оперативна пам'ять персональних комп'ютерів сьогодні, як і десять років тому, будується на базі відносно недорогий динамічної пам'яті - DRAM (Dynamic Random Access Memory). Безліч поколінь інтерфейсної логіки, змінилося за цей час. Еволюція носила яскраво виражений спадкоємний характер - кожне нове покоління пам'яті практично повністю наслідувало архітектуру попереднього, включаючи, в тому числі, і властиві йому обмеження. Ядро ж пам'яті (за винятком вдосконалення проектних норм таких, наприклад, як ступінь інтеграції) і зовсім не зазнавало жодних принципових змін. Навіть "революційний" Rambus Direct RDRAM нічого справжнього революційного в собі не містить і добре вписується в загальне "генеалогічне" древо розвитку пам'яті.

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

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

Лінійки представляють собою звичайні провідники, на перетині яких знаходиться осередок - нескладний пристрій, що складається з одного транзистора і одного конденсатора.

Конденсатору відводиться роль безпосереднього зберігача інформації. Обсяг, якого складає - всього один біт. Відсутність заряду на обкладинках відповідає логічному нулю, а його наявність - логічної одиниці. Транзистор ж грає роль "ключа", який утримує конденсатор від розряду. У спокійному стані транзистор закритий, але, варто подати на відповідний рядок матриці електричний сигнал, він відкриється, з'єднуючи обкладку конденсатора з відповідним їй стовпцем.

Чутливий підсилювач (sense amp), підключений до кожного з стовпців матриці, реагуючи на слабкий потік електронів зчитує всю сторінку цілком. Саме сторінка є мінімальною порцією обміну з ядром динамічної пам'яті. Читання / запис окремо взятої комірки неможливо! Дійсно, відкриття одного рядка призводить до відкриття всіх, підключених до неї транзисторів, а, отже, - розряду закріплених за цими транзисторами конденсаторів.

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

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

Напівпровідникова оперативна пам'ять у даний час поділяється на статичне ОЗУ (SRAM) і динамічне ОЗУ (DRAM).

1.1 Еволюція динамічної пам'яті. FPM-DRAM


У мікросхемах пам'яті, що випускаються до середини дев'яностих, були суттєві недоліки (великі затримки передачі даних, малий обсяг пам'яті і т.д.). З появою Intel Pentium 60 (1993 рік) і Intel 486DX4 100 (1994 рік) виникла потреба у вдосконаленні динамічної пам'яті.

Першою моделлю стала FPM-DRAM - Fast-Page Mode DRAM (Пам'ять швидкого сторінкового режиму), розроблена в 1995 році. Основною відмінністю від пам'яті попереднього покоління стала підтримка скорочених адрес. Якщо черговий запитуваний осередок знаходиться в тому ж самому рядку, що і попередній, його адреса однозначно визначається одним лише номером стовпця і передавати номера рядка вже не потрібно. При послідовному читанні осередків пам'яті, (так само як і обробці компактних одно-двох кілобайтових структур даних), час доступу скорочується на 40%, так як оброблюваний рядок знаходиться у внутрішньому буфері мікросхеми, і звертатися до матриці пам'яті немає ніякої необхідності.

Недоліками FPM-DRAM пам'яті стало хаотичне звернення до пам'яті, так само як і перехресні запити осередків з різних сторінок, з усією очевидністю не можуть скористатися перевагами передачі скорочених адрес і працюють з FPM-DRAM в режимі звичайної DRAM. Ситуація, коли запитувана осередок знаходиться у відкритій рядку, називається "потраплянням на сторінку" (Page Hit), в іншому випадку говорять, що стався промах (Page Miss). Оскільки, промах обкладається штрафними затримками, критичні до швидкодії модулі повинні розроблятися з урахуванням особливостей архітектури FPM-DRAM. Виникла й інша проблема: мінливість часу доступу ускладнює вимірювання продуктивності мікросхем пам'яті і порівняння їх швидкісних показників один з одним.

1.1.1 EDO, BEDO - DRAM

EDO - DRAM (Extended Data Out) пам'ять з удосконаленим виходом.

Зі збільшенням тактової частоти мікропроцесорів, потрібно якісне нове рішення оперативної пам'яті, а не оптимізація FPM DRAM пам'яті. І в 1996 році був придуманий новий інтерфейс оперативної пам'яті - EDO-DRAM. Його основною відмінністю було в тому, що кожну мікросхему оснастили спеціальним тригером-клямкою, який утримував лінії даних після зникнення сигналу підзарядки, що дало можливість дезактивувати сигнал підзарядки до закінчення читання даних, готуючи в цей час мікросхему до прийому номера наступного стовпця.

оперативна пам'ять процесор продуктивність

Дворазове збільшення продуктивності було досягнуто лише в BEDO-DRAM (Burst EDO). Додавши в мікросхему генератор номера стовпця, конструктори ліквідували затримку сигналу підзарядки, скоротивши час циклу до 15 нс. Після звернення до довільної осередку мікросхема BEDO автоматично, без вказівок з боку контролера, збільшує номер стовпця на одиницю, не вимагаючи його явної передачі. Унаслідок обмеженя розрядності адресного лічильника (конструктори відвели під нього всього лише два біти) максимальна довжина пакету не могла перевищувати чотирьох осередків (2*2 = 4).

Головною перевагою BEDO пам'яті в порівнянні з EDO RAM було те що вона працювала на максимально можливій швидкості з частотою 66 МГц, тобто вона була на ~ 40% швидше EDO-DRAM. Все ж таки, незважаючи на свої швидкісні показники, BEDO виявилася не конкурентоспроможною і не отримала практично ніякого поширення. Прорахунок полягав у тому, що BEDO, як і всі її попередники, залишалася асинхронної пам'яттю. Це накладало жорсткі обмеження на максимально досяжну тактову частоту, обмежену 60 - 66 (75) мегагерцами.

1.1.2 SDRAM

Поява мікропроцесорів з шинами на 100МГц призвело до радикального перегляду механізму управління пам'яттю, і підштовхнуло конструкторів до створення синхронної динамічної пам'яті - SDRAM (Synchronous-DRAM). Як і випливає з її назви, мікросхеми SDRAM пам'яті працюють синхронно з контролером, що гарантує завершення циклу в строго заданий термін. Крім того, номери рядків і стовпців подаються одночасно, з таким розрахунком, щоб до приходу наступного тактового імпульсу сигнали вже встигли стабілізуватися і були готові до зчитування.

Так само, в SDRAM реалізований вдосконалений пакетний режим обміну. Контролер може запитати як одну, так і кілька послідовних комірок пам'яті, а при бажанні - весь рядок цілком. Це стало можливим завдяки використанню полноразрядного адресного лічильника вже не обмеженого, як у BEDO, двома бітами.

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

На відміну від FPM-DRAM \ EDO-DRAM \ BEDO, що виконують перезарядку внутрішніх ланцюгів при закритті сторінки синхронна пам'ять проробляє цю операцію автоматично, дозволяючи тримати сторінки відкритими настільки довго, скільки це необхідно. Ще одна перевага - розрядність ліній даних збільшилася з 32 до 64 біт, що ще вдвічі збільшило її продуктивність.

1.1.3 DDR-SDRAM

Подальший розвиток синхронної пам'яті призвів до появи DDR-SDRAM - Double Data Rate SDRAM (SDRAM подвоєною швидкості передачі даних). Подвоєння швидкості досягається за рахунок передачі даних і по фронту, і по спаду тактового імпульсу (в SDRAM передача даних здійснюється тільки по фронту). Завдяки цьому ефективна частота збільшується в два рази - 100 МГц DDR-SDRAM по своїй продуктивності еквівалента 200 МГц SDRAM. Правда, з маркетингових міркувань, виробники DDR-мікросхем стали маркувати їх не тактовою / * робочою * / частою, а максимально досяжною пропускною спроможністю, яка вимірюється у мегабайтах в секунду.

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

1.1.4 RDRAM - Rambus-пам'ять

З DDR-SDRAM жорстко конкурує Direct RDRAM, розроблена компанією Rambus. Має основних відмінностей від пам'яті попередніх поколінь всього три:

а) збільшення тактової частоти за рахунок скорочення розрядності шини,

б) одночасна передача номерів рядка і стовпа осередку,

в) збільшення кількості банків для посилення паралелізму.

Підвищення тактової частоти викликає різке посилення всіляких перешкод і в першу чергу електромагнітної інтерференції, інтенсивність якої у загальному випадку пропорційна квадрату частоти, а на частотах понад 350 мегагерц взагалі наближається до кубічної. Ця обставина накладає надзвичайно жорсткі обмеження на топологію і якість виготовлення друкованих плат модулів мікросхеми, що значно ускладнює технологію виробництва і собівартість пам'яті. З іншого боку, рівень перешкод можна значно знизити, якщо скоротити кількість провідників, тобто зменшити розрядність мікросхеми. Саме по такому шляху компанія Rambus і пішла, компенсувавши збільшення частоти до 400 МГц (з урахуванням технології DDR ефективна частота становить 800 МГц) зменшенням розрядності шини даних до 16 біт (плюс два біти на ECC). Таким чином, Direct RDRAM в чотири рази обганяє DDR по частоті, але в стільки ж разів відстає від неї в розрядності.

Друга (за списком) перевагу RDRAM - одночасна передача номерів рядка та стовпця клітинки - при найближчому розгляді виявляється зовсім не перевагою, а конструктивною особливістю. Це не зменшує латентності доступу до довільної осередку (тобто інтервалом часу між подачею адреси та отримання даних), тому що вона, латентність, більшою мірою визначається швидкістю ядра, а RDRAM функціонує на старому ядрі. Зі специфікації RDRAM випливає, що час доступу становить 38,75 нс. (Для порівняння час доступу 100 МГц SDRAM становить 40 нс.). Велика кількість банків дозволяє (теоретично) досягти ідеальної конвеєризації запитів до пам'яті, - не дивлячись на те, що дані надходять на шину лише через 40 нс. після подачі запиту (що відповідає 320 тактів в 800 МГц системі), сам потік даних неперервний.

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

1.1.5 DDR2

Пам’ять DDR2 має деякі конструктивні відмінності від модулів DDR-SDRAM, наприклад кількість контактів збільшено з 184 до 240 (контакти розміщенні ближче один до одного), а також змістився "ключ", що запобігає насильній установці у слот модуля пам’яті іншого типу. Напруга електричного живлення в DDR2 1.8 В на відміну від модулів DDR - 2.5 В, внаслідок чого пам’ять має менше енергоспоживання і тепловиділення. Основною архітектурною відмінністю пам'яті DDR2 є можливість передачі чотирьох блоків даних за такт замість двох, як це було у випадку DDR. Затримки при записі теж перетерпіли зміни: якщо звичайна пам'ять DDR може записувати дані відразу ж через такт після команди запису, у випадку DDR2 це неможливо через більш високі тактові частоти. Тому затримка запису вираховується по затримці читання шляхом вирахування одного такту.

В стандарті DDR2 при пакетному режимі доступу дані передаються чотири рази за один такт. Для організації даного режиму роботи пам'яті необхідно, щоб буфер вводу-виводу (мультиплексор) працював на в чотири рази більшій частоті в порівнянні із частотою ядра пам'яті. Досягається це в такий спосіб: ядро пам'яті, як і раніше, синхронізується по позитивному фронті тактируючих імпульсів, а із приходом кожного позитивного фронту по чотирьох незалежних лініях у буфер вводу-виводу (мультиплексор) передаються 4n біти інформації (вибірка 4n бітів за такт, 4n-Prefetch). Сам буфер вводу-виводу тактується на подвоєній частоті ядра пам'яті й синхронізується як по позитивному, так і по негативному фронті цієї частоти. Іншими словами, із приходом позитивного й негативного фронтів відбувається передача бітів у мультиплексному режимі на шину даних. Це дозволяє за кожен такт роботи ядра пам'яті передавати чотири слова на шину даних, тобто вчетверо підвищити пропускну здатність пам'яті.

У пам'яті DDR2 реалізована схема розбивки масиву пам'яті на чотири логічних банки, а для модулів ємністю 1 і 2 Гбайт - на вісім логічних банків. Оскільки затримка CAS Delay становить два такти, то через два такти після команди читання дані можуть бути зчитані із шини даних. Для використання в комп'ютерах, DDR2 SDRAM поставляється в модулях DIMM з 240 контактами й одним ключем (вирізом у смузі контактів). DіMM'и розрізняються по максимальній швидкості передачі даних (часто називаною пропускною здатністю)

1.1.6 DDR3 SDRAM

DDR3 SDRAM (англ. double-data-rate three synchronous dynamic random access memory - синхронна динамічна пам'ять з довільним доступом і подвоєною швидкістю передачі даних, третє покоління) - це тип оперативної пам'яті, використовуваної в обчислювальній техніці в якості оперативної і відео-пам'яті. Прийшла на зміну пам'яті типу DDR2 SDRAM.

У DDR3 зменшено на 30% споживання енергії в порівнянні з модулями DDR2, що обумовлено пониженням (1,5 В, в порівнянні з 1,8 В для DDR2 і 2,5 В для DDR) напругою живлення осередків пам'яті. Зниження напруги живлення досягається за рахунок використання 90-нм (спочатку, надалі 65 - , 50 - , 40-нм) техпроцесса при виробництві мікросхем та застосування транзисторів з подвійним затвором Dual-gate (що сприяє зниженню струмів витоку). Мікросхеми пам'яті DDR3 виробляються виключно в корпусах типу BGA. Модулі DIMM з пам'яттю DDR3, які мають 240 контактів, не сумісні з модулями пам'яті DDR2 електрично і механічно. Ключ розташований в іншому місці, тому модулі DDR3 не можуть бути встановлені в слоти DDR2.

1.1.7 LPDDR

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

У LPDDR знижено енергоспоживання з 2,5В до 1,8В. додаткова економія енергії здійснюється завдяки температурній компенсації перезарядки (DRAM рідше вимагає перезаряджатися при низьких температурах), частковий блок самооновлення і режим "Глибокий сон" (deep power down), який стирає з пам'яті абсолютно все. Крім того, чіпи дуже маленького розміру і, відповідно, займають менше місця на платі, ніж їхні комп'ютерні аналоги. Таким чином це і дозволило використовувати LPDDR у мобільних пристроях різних видів. На даний час очікується вихід у продаж LPDDR2. LPDDR2 включає зниженій напрузі 1,2 В інтерфейс з 1,8 специфікація в попередньому (LPDDR) технології пам'яті, що призведе до зниження енергоспоживання на 50% при однаковій щільності і продуктивності пристрою в ідентичних умовах. Стандарт може входити до пристроїв, що мають ядро напруги 1,2 В (у порівнянні з існуючими пристроями напругою 1,8 В ядро), що знизить споживання живлення пристрою. Крім того, LPDDR2 підтримує сучасні механізми управління енергоспоживанням.

1.2 Пам'ять типу SRAM


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

Час доступу SRAM не більше 2 нс, це означає, що така пам'ять може працювати синхронно з процесорами на частоті 500 МГц або вище. Проте для зберігання кожного біта в конструкції SRAM використовується кластер з 6 транзисторів. Використання транзисторів, без яких або конденсаторів означає, що немає необхідності в регенерації. Поки подається живлення, SRAM пам'ятатиме те, що збережено.

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

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

. Async SRAM (Asynchronous Static Random Access Memory) - асинхронна статична пам'ять з довільним порядком вибірки;

. SyncBurst SRAM (Synchronous Burst Random Access Memory) - синхронна пакетна статична пам'ять з довільним порядком вибірки;

. PipBurst SRAM (Pipelined Burst Random Access Memory) - конвеєрна пакетна статична пам'ять з довільним порядком вибірки;SRAM - це застарілий тип пам'яті, асинхронний інтерфейс якої схожий з інтерфейсом DRAM і включає в себе шини адреси, даних і управління. SyncBurst SRAM - цей тип пам'яті синхронізований з системною шиною і найкраще підходить для виконання пакетних операцій. Ну а інтерфейс PipBurst SRAM схожий з інтерфейсом SyncBurst SRAM, але дозволяє отримувати дані без тактів очікування.

1.2.1 Кеш-пам’ять

У перекладі слово "cache" (кеш) означає "таємний склад", "тайник" ("заначка"). Кеш є додатковим швидкодіючим сховищем копій блоків інформації з основної пам'яті, вірогідність звернення до яких найближчим часом велика. Кеш не може зберігати копію всієї основної пам'яті, оскільки його обсяг у багато разів менше обсягу основної пам'яті. Він зберігає лише обмежена кількість блоків даних і каталог (cache directory) - список їх поточного відповідності областям основної пам'яті. Крім того, кешуватися може і не вся оперативна пам'ять, доступна процесору: по-перше, через технічні обмежень може бути обмежений максимальний обсяг кешуючої пам'яті, по-друге, певні області пам'яті можуть бути оголошені як такі що некешуються (налаштуванням регістрів центрів чіпсета або процесора). Якщо встановлено оперативної пам'яті більше, ніж можливо кешувати, звернення до некешувальної області ОЗУ буде повільним. Таким чином, збільшення обсягу ОЗУ, теоретично завжди позитивно впливає на продуктивність, може знизити швидкість роботи визначених компонентів, що потрапили в некешуючу пам'ять. В ОС Windows пам'ять розподіляється, починаючи з верхніх адрес фізичної пам'яті, в результаті чого в некешуючу область може потрапити ядро ОС.

При кожному зверненні до пам'яті контролер кеш-пам'яті по каталогу перевіряє, чи є дійсна копія необхідних даних в кеші. Якщо вона там є, то це випадок кеш-попадання (cache hit) і дані беруться з кеш ¬ пам'яті. Якщо дійсної копії там немає, це випадок кеш-промаху (cache miss), і дані беруться з основної пам'яті. Відповідно до алгоритму кешування блок даних, лічений з основної пам'яті, при певних умовах замінить один з блоків кеша. Від інтелектуальності алгоритму заміни залежить відсоток попадань і, отже, ефективність кешування. Пошук блоку в списку повинен проводитися досить швидко, щоб не звести нанівець виграш від використання швидкодіючої пам'яті. Звернення до основної пам'яті може початися одночасно з пошуком в каталозі, а в разі потрапляння - зупинятися (архітектура Look aside). Це економить час, але зайві звернення до основної пам'яті ведуть до збільшення енергоспоживання. Інший варіант: проходження до основної пам'яті починається тільки після фіксації промаху (архітектура Look Through), при цьому втрачається, принаймні, один такт процессора, натомість економиться енергія.

Кеш у сучасних комп'ютерах будується за дворівневою, або трьохрівневою схемою.

Перший кеш, або L1 Cache (Level 1 Cache), - кеш 1 рівня, внутрішній (Internal, Integrated) кеш процесорів класу 486 і вище, а також деяких моделей 386.

Другий кеш, або L2 Cache (Level 2 Cache), - кеш 2 рівня. Для процессора аж до Pentium (і аналогічних) це зовнішній (External) кеш, встановлений на системній платі. У Р6 і потужніших процесорах вторинний кеш розташований в одному корпусі з процесором, і для таких процесорів додатковий кеш на системну плату вже не встановється.

Кешем третього рівня виявляється кеш, встановлений на системній платі з сокетом 7, коли в нього встановлюють процесор AMD K6-3, обладнаний вбудованим дворівневим кешем.

Обсяг первинного кеша невеликий (8-128 Кбайт); щоб підвищити його ефективність, для даних і команд часто використовується роздільний кеш (так названа Гарвардська архітектура - протилежність Принстонскої із загальною пам’ятю для команд і даних). В процесорах Pentium 4 первинний кеш влаштований вже інакше.

Кеш-контролер повинен забезпечувати когерентність (coherency) - узгодження даних кеш-пам'яті обох рівнів з даними в основній пам'яті за тієї умови, що звернення до цих даних може проводитися не тільки процесором, а й іншими активними (bus-master) адаптерами, підключеними до шин (PCI, VLB, ISA і т.д.). Слід також врахувати, що процесорів може бути кілька, і в кожного може бути свій внутрішній кеш.

Контролер кеша оперує рядками (cache line) фіксованої довжини. Рядок може зберігати копію блоку основної пам'яті, розмір якого збігається з довжиною рядка. З кожним рядком кеша пов'язана інформація про адресу скопійованого в неї блоку основної пам'яті та її стані. Рядок може бути дійсним (valid) - це означає, що в поточний момент часу вона достовірно відображає відповідний блок основної пам'яті, або недійсним. Інформація про те, який саме блок займає даний рядок (тобто старша частина адреси чи номер сторінки) і про її стан, називається тегом (tag) і зберігається у зв'язаній з даною рядком комірці спеціальної пам’яті тегів (tag RAM). В операціях обміну з основною пам'яттю зазвичай рядок бере участь цілком (несекторірованний кеш), для процесорів 486 і вище довжина рядка збігається з обсягом даних, переданих за один пакетний цикл (для 486 - це 4x4 = 16 байт, для Pentium - 4 х 8 = 32 байт). Можливий і варіант секторного (sectored) кеша, при якому один рядок містить не ¬ скільки суміжних комірок - секторів, розмір яких відповідає мінімальній порції обміну даних кеша з основною пам'яттю. При цьому в записи каталога, відповідної кожному рядку, повинні зберігатися біти дійсності для кожного сектора даного рядка. Розподіл на секції дозволяє економити пам'ять, необхідну для зберігання каталогу при збільшенні обсягу кешу, оскільки більша кількість біт каталогу відводиться під тег і вигідніше використовувати додаткові біти дійсності, ніж збільшувати глибину індексу (кількість елементів) каталогу.

Розділ II. Форм-фактор та пз для роботи з RAM


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

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

2.1 DIP

(Dual In-line Package, також DIL) - тип корпусу мікросхем, микросборок та деяких інших електронних компонентів. Має прямокутну форму з двома рядами висновків по довгих сторонах. Може бути виконаний з пластика (PDIP) або кераміки (CDIP). Керамічний корпус застосовується через схожого з кристалом коефіцієнта температурного розширення. При значних і численних перепадах температур в керамічному корпусі виникають помітно менші механічні напруги кристала, що знижує ризик його механічного руйнування або відшарування контактних провідників. Також, багато елементів в кристалі здатні міняти свої електричні характеристики під впливом напруг і деформацій, що позначається на характеристиках мікросхеми в цілому. Керамічні корпусу мікросхем застосовуються в техніці, що працює в жорстких кліматичних умовах.

У корпусі DIP можуть випускатися різні напівпровідникові або пасивні компоненти - мікросхеми, складання діодів, транзисторів, резисторів, малогабаритні перемикачі. Компоненти можуть безпосередньо впаиваться в друковану плату, також можуть використовуватися недорогі роз'єми для зниження ризику пошкодження компонента при пайку.

Корпус DIP був розроблений компанією Fairchild Semiconductor у 1965 році. Його поява дозволило збільшити щільність монтажу в порівнянні з застосовувалися раніше круглими корпусами. Корпус добре підходить для автоматизованої збірки. Однак, розміри корпусу залишалися відносно великими в порівнянні з розмірами напівпровідникового кристала. Корпуса DIP широко використовувалися в 1970-х і 1980-х роках. Згодом широке поширення одержали корпусу для поверхневого монтажу, зокрема PLCC і SOIC, що мали менші габарити. Випуск деяких компонентів в корпусах DIP триває в даний час, однак більшість компонентів, розроблених в 2000-х роках, не випускаються в таких корпусах.

2.2 SIPP

(англ. Single In-line Pin Package) - модулі пам'яті з однорядним розташуванням контактів. Модуль складається з невеликої друкованої плати, на якій встановлено певну кількість чіпів пам'яті. Модуль має 30 контактів в один ряд, які встановлюються у відповідні отвори на материнській платі комп'ютера.

Цей тип пам'яті використовувався в 80286 і деяких 80386 системах. Він був пізніше замінений модулями типу SIMM, які виявилися простіші в установці.30-контактні SIPP модулі сумісні за висновками з 30-контактними SIMM модулями, що пояснює, чому деякі SIPP модулі були насправді SIMM модулями з виходами, припаяними до контактів.30 контактів модулів SIPP часто гнулися або ламалися під час установки, тому модулі були досить швидко замінені на SIMM з контактними пластинами.

2.3 SIMM


SIMM (англ. Single In-line Memory Module, односторонній модуль пам'яті) - модулі пам'яті з однорядним розташуванням контактів, широко застосовувалися в комп'ютерних системах в 1990-і роки. Більшість ранніх материнських плат IBM PC-сумісних комп'ютерів використовували чіпи DRAM, упаковані в DIP-корпусу і встановлені в сокети. Однак системи, що використовували процесори 80286, використовували більшу кількість пам'яті, і для економії місця на материнській платі і спрощення процесу модернізації, окремі чіпи стали об'єднувати в модулі. Деякі системи використовували SIPP-модулі, але їх виявилося занадто легко зламати при установці.

Модулі SIMM були розроблені і запатентовані в 1983 році компанією Wang Laboratories. Ранні SIMM використовували звичайні слоти без механізмів фіксації, проте досить швидко стали застосовуватися ZIF-слоти з фіксацією. Першими з'явилися 30-контактні модулі, що мали об'єм від 64 КБайт до 16 МБайт і восьмирозрядну шину даних, доповнюється (іноді) дев'яти лінією контролю парності пам'яті. Застосовувався в комп'ютерах з ЦП Intel 8088 [2], 286, 386. На материнських платах з процесорами 8088, модулі ставилися по одному, в разі процесорів 286, 386SX модулі ставилися парами, на 386DX - по чотири модулі однаковою ємності. З поширенням в масових комп'ютерах процесорів Intel 80486 і аналогічних, для яких 30-контактні модулі треба було ставити, як мінімум, по чотири, був витіснений 72-контактним модулем SIMM, який, по суті, об'єднав на собі чотири 30-контактних модуля із загальними лініями адреси і роздільними лініями даних. Таким чином, модуль стає 32-розрядним і достатньо всього одного модуля. Обсяг від 1 МБайт до 128 МБайт.72-контактні модулі з'явилися спочатку на брендових (Compaq, HP, Acer і інші) PC в епоху процесорів 486, і на практично всіх материнських платах всіх виробників з переходом на Pentium. Так як на материнських платах для процесора Pentium з 64-розрядної шиною даних 72-контактні модулі вже треба ставити парами, поступово і їх фізично попарно "об'єднали" шляхом розташування мікросхем на обох сторонах друкованої плати модуля пам'яті, результатом чого стало появою перших модулів DIMM.

2.4 DIMM

(англ. Dual In-line Memory Module, двосторонній модуль пам'яті) - форм-фактор модулів пам'яті DRAM. Даний форм-фактор прийшов на зміну форм-фактору SIMM. Основною відмінністю DIMM від попередника є те, що контакти, розташовані на різних сторонах модуля, є незалежними, на відміну від SIMM, де симетричні контакти, розташовані на різних сторонах модуля, замкнуті між собою і передають одні й ті ж сигнали. Крім того, DIMM реалізує функцію виявлення та виправлення помилок в 64 (без контролю парності) або 72 (з контролем по парності або коду ECC) лініях передачі даних, на відміну від SIMM c 32 лініями. Конструктивно являє собою модуль пам'яті у вигляді довгої прямокутної плати з рядами контактних майданчиків з обох боків уздовж її довгої сторони, що встановлюється в роз'єм підключення і фіксується по обох її торцях фіксаторами. Мікросхеми пам'яті можуть бути розміщені як з одного, так і з обох сторін плати. На відміну від форм-фактора SIMM, використовуваного для асинхронної пам'яті FPM і EDO, форм-фактор DIMM призначений для пам'яті типу SDRAM.

Виготовлялися модулі розраховані на напругу живлення 3,3 В і (рідше) 5 В. Проте, вперше в форм-факторі DIMM з'явилися модулі з пам'яттю типу FPM, а потім і EDO. Ними комплектувалися сервери і брендові комп'ютери. Модуль SO-DIMM призначений для використання в ноутбуках або як розширення пам'яті на платі, тому відрізняється зменшеним габаритом.

Надалі в модулі DIMM стали упаковувати пам'ять типу DDR, DDR II і DDR III, що відрізняється підвищеною швидкодією. Появі форм-фактора DIMM сприяла поява процесора Pentium, який мав 64-розрядну шину даних. У професійних робочих станціях, таких, як SPARCstation, такий тип пам'яті використовувався з початку 1990-х років. У комп'ютерах загального призначення широкий перехід на цей тип пам'яті стався наприкінці 1990-х, приблизно за часів процесора Pentium II.

2.5 Програмне забезпечення для роботи з RAM комп'ютера

і Memtest86 + - це програма з відкритим вихідним кодом для тестування пам'яті комп’ютера, спрямована на тестування і стрес-тестування оперативної пам'яті комп'ютера x86 архітектури (RAM) на наявність помилок. Кожен намагається переконатися, що оперативна пам'ять буде приймати і правильно зберегти дані, записаних на комп’ютер, і що немає жодних помилок, як взаємодіють різні біти пам’яті, і чи немає ніяких конфліктів між адреси пам'яті.

Є два варіанти (або розвиток потоків) з Memtest86. Оригінал просто відомі, як Memtest86. Інші, відомі як Memtest86 +, це окрема гілка оригінальної Memtest86. Вони обидва мають майже однаковий зовнішній вигляд інтерфейсу. Ці програми працюють практично з усіма PC сумісних з 80386 і 80486 систем і для сучасних систем з 64-розрядними процесорами. Кожен новий реліз додає підтримку нових процесорів і чіпсетів.призначений для роботи автономно, запускається за допомогою власного завантажувача, тому наявність операційної системи для її роботи не обов'язково. Це тому, що програма повинна безпосередньо управляти RAM що проходить випробування і залишити якомога більше ОЗУ для діагностики. Крім того, це швидкий і зручний спосіб, щоб запустити програму, що дозволяє уникнути виконання складних програм операційної системи. Тестування Memtest86 є досить всеосяжним, так що можна знайти в деяких випадках приховані проблеми на PC, які, здається, працює нормально. Запуск одного повного проходу програми (виконання всіх обраних тестів один раз) може зайняти від декількох хвилин до декількох годин, в залежності від обсягу і швидкості встановленої оперативної пам'яті, і швидкості процесора. Деякі помилки є настільки тонкими, що вони не зустрічаються при першому проході програми, швидше за все, вони виявляться після запуску багатьох проходів протягом тривалого періоду. Це тому, що деякі тести використовують злегка різні дані при кожному проході, і помилки можуть з'явитися після того, як тепло накопичується від тривалої роботи. Таким чином, програма буде працювати постійно, поки користувач не перезавантажується.

Починаючи з версії 1.60 утиліта має функцію формування списку поганих блоків пам'яті у форматі BadRAM. Використовуючи ці дані ядро Linux може працювати з дефектним модулем RAM, не використовуючи пошкоджені ділянки. Зокрема, деякі материнські плати високого класу поставляються з MemTest86 інтегрований в BIOS. Користувач просто повинен натиснути певну клавішу під час завантаження і MemTest86 працюватиме без завантажувального диска. (Одним з прикладів цього є Biostar TPower i55 материнської плати). Memtest86 був розроблений Крісом Бреді. Memtest86 + гілка що була створена Самуїлом Дем’юлемістером, для підтримки нових процесорів і чіпсетів. На сьогоднішній день обидва вони активно підтримуються.

Вихідний код програми розповсюджується під ліцензією GNU General Public License (GPL). Обидві версії тепер підтримують поточні двох-і чотирьохядерні процесори, і відповідні чіпсети. Нова версія Memtest86 + підтримує процесори Intel на основі Macintosh комп'ютери.пише серію тестових шаблонів для більшості адрес пам'яті, зчитує записані дані, і порівнює їх на наявність помилок. За замовчуванням один прохід робить 9 різних тестів, що відрізняються моделями доступу і тестовими даними. Багато чіпсетів можуть повідомити RAM.

Розділ III. Аналіз, передумови процесорів MMX


У лютому 1995 року Intel провела презентацію перших робочих зразків мікропроцесора 80686 (Р6), що носить ім'я Pentium Pro, який з'явився удосконаленням архітектури процесорів сімейства Pentium. На відміну від звичайного Pentium, CPU Pentium Pro має не п'ять, а чотирнадцять ступенів при конвеєрній обробці, а кількість самих конвеєрів збільшилася до трьох. Застосовуються статистичний і динамічний методи прогнозу переходів, що підвищує їх ефективність до 90%. Вперше L2 cache став вбудованим в мікросхему самого процесора, що не забарилося позначитися на ефективності використання процесорного часу, оскільки кеш-пам'ять тепер змогла працювати на більш високих частотах в порівнянні з системною платою. Надалі зовнішній кеш став вбудовуватися у всі Intel (і не тільки) мікропроцесори. CPU Pentium Pro функціонують на частотах 133, 150, 166 і 200 MHz. Завдяки введеним новинкам Pentium Pro при рівних тактових частотах виконує розрахунки на 20-40% швидше, ніж звичайний Pentium. Pentium Pro також підтримує багатопроцесорні (до 4-х штук в системі) конфігурації.

Нарешті, останнім представником сімейства CPU під загальною назвою Pentium є мікропроцесор Pentium MMX, що з'явився 8 січня 1997-го року. Технологія MMX є одним з найістотніших покращань в процесорній архітектурі, коли-небудь до того вироблюваних Intel. Процесор Pentium MMX має 57 додаткових інструкцій, прискорюючих виконання мультимедійних операцій, наприклад роботу графічних і комунікаційних програм (природно, скомпільованих з урахуванням технології MMX, а це практично всі Windows-програми). В співпроцесорах Pentium MMX є 8 універсальних регістрів по 80 бітів кожний для операцій над числами з плаваючою крапкою. При описі числа з плаваючою крапкою використовується 64 біти для мантиси і 16 біт для експоненти. Команди MMX використовують тільки 64-розрядну частину мантиси кожного з регістрів співпроцесора. Регістри співпроцесора можуть містити 8 упакованих байт, 4 упаковані 16-розрядні слова, два упаковані 32-розрядні слова або ж одне 64-розрядне слово. Таким чином, дані мультимедіа, розрядність яких рівна восьми, упаковується в одне 64-розрядне слово, і над ним проводиться якась загальний дія. Ця методика називається одиночною командою з множинними даними (Single Instruction Multiple Data, SIMD) і орієнтована на алгоритми і типи даних, які характерні для мультимедіа-додатків. Оскільки за часів процесорів Pentium такі додатки набули повсюдне поширення, то введення технології MMX дозволило суттєво підняти продуктивність цих CPU. MMX підтримують також і всі подальші процесори Intel та інших фірм. Крім того, швидкодія процесора підвищена за рахунок удвічі більшої кеш-пам'яті першого рівня (тепер її об'єм складає 32 Kb - по 16 Kb для команд і даних) і оптимізованої внутрішньої архітектури. Збільшена на один крок в порівнянні з Pentium довжина конвеєра - тепер вона склала 6 ступенів. Блок прогнозів запозичений у Pentium Pro.

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

Окрім MMX-розширення, в архітектурі Pentium MMX є ряд удосконалень, що підвищують його продуктивність і на звичайних операціях. Частоти ядра процесора (166, 200, 233, 266 Мгц) при частоті зовнішньої шини 66 Мгц задаються дещо іншими комбінаціями сигналів BF0, BF1, відповідних коефіцієнтам множення 2,5, 3, 3,5 і 4.

В двопроцесорних системах Pentium MMX підтримує тільки симетричну архітектуру, можливість функціонально-надмірного контролю (FRC) вилучена.

Застосовано роздільне живлення ядра (напруга 2,7-2,9 В, номінал 2,8 В) і інтерфейсних схем (3,135-3,6 В, номінал 3,3 В). Процесор сумісний по виведеннях з Pentium другого покоління з технологією VRT і встановлюється в сокет 7 (установка в сокет 5 механічно можлива, але електрично недопустима).

Процесори Pentium® OverDrive® Processor With MMX Technology - варіант процесорів MMX з тактовою частотою 150, 166, 180 і 200 Мгц для заміни звичайних (не MMX) процесорів Pentium 75-200 Мгц. Вони відрізняються фіксованим коефіцієнтом множення частоти (3) і відсутністю можливостей двопроцесорних конфігурацій. Ці процесори мають вбудований VRM і призначені для установки в сокет типу 5 або 7 (хоча в сокет 7 дешевше встановити "просто" MMX).

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

3.1 Будова, принцип організації, функціонування


Абревіатура MMX походить від виразу MultiMedia eXtension - розширення для мультимедіа, яке реалізоване фірмою Intel в своїй серії процесорів MMX з тактовою частотою 166 Мгц і більше. Історично склалося так, що майже будь-яке нове рішення в області персональних комп'ютерів широко рекламується і підноситься як епохальне, обіцяюче небачений досі розквіт комп'ютерним технологіям, проте багато разів подібний галас обертався дуже скромним реальним ефектом. Ця ж доля спіткала й Pentium MMX.

3.2 Різниця між MMX та Pentium


Процесор Pentium MMX відрізняється від "звичайного" Pentium по шести основних пунктах:

·   додано 57 нових команд обробки даних;

·   збільшений в два рази об'єм внутрішнього кеша (16 кб для команд і стільки ж - для даних);

·   збільшений об'єм буфера адрес переходу (Branch Target Buffer - BTB), що використовується в системі прогнозу переходів (Branch Prediction);

·   оптимізована робота конвеєра (Pipeline);

·   збільшена кількість буферів запису (Write Buffers);

·   введено так зване подвійне електроживлення процесора.

Набір з 57 нових команд і є основною відмінністю; інші два - не більш, ніж "супутні зміни". Хоча збільшений об'єм кеша і внутрішніх буферів і інтимізований конвеєр дещо прискорюють роботу будь-яких додатків, проте основне збільшення продуктивності - до 60% - можливо тільки при використанні програм, що правильно застосовують технологію MMX в обробці даних.

3.3 Передумови MMX


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

Насправді, нездатність комп'ютера з процесором Pentium ефективно обробляти в реальному часі звук і відео без спеціальних карт походить не стільки від загальної швидкодії процесора або шини, які в більшості випадків цілком достатні, а від характеру його набору команд обробки даних, відомого під назвою CISC (Common Instruction Set Computer - комп'ютер із спільним набором команд). Цей набір, що складається з відносно складних арифметико-логічних команд, орієнтований на типові задачі обробки даних, без спеціального "заточування" під особливі додатки. Ця вигідна для більшості додатків, архітектура виявляється абсолютно неефективною при швидкісній і специфічній обробці великих масивів даних, оскільки складна система команд використовується на лічені відсотки, а накладні витрати складають десятки і сотні відсотків.

Технологія MMX є компромісним рішенням, об'єднуючим шляхи, що використовуються в комп'ютерах SPARC і Silicon Graphics (технологія RISC - Reduced Instruction Set Computer, комп'ютер із спрощеним набором команд), а також в комп'ютерах з паралельною архітектурою (технологія SIMD: Single Instruction, Multiple Data - одна команда, багато даних): класичний процесор Pentium (CISC) з додаванням ряду простих (RISC) команд паралельної обробки даних (SIMD).

3.4 Принцип функціонування технологія MMX та обробка даних


Технологія MMX була створена в результаті сумісних зусиль розробників архітектури процесорів Intel і програмістів. Були проведені дослідження широкого кола програм: обробки зображень, MPEG відео, синтезу музики, стиснення мови та її розпізнавання, ігрового, відеоконференційного і багатьох інших. В них виділялися підпрограми, в яких виконуються основні обчислення.

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

·   дані цілого типу невеликої розрядності (наприклад: 8-розрядні графічні пікселі, 16-розрядна оцифровка звуку);

·   короткі цикли з високими коефіцієнтами повторюваності;

·   велика кількість операцій множення і алгоритми підсумовування, що вимагають інтенсивних обчислень;

·   операції з високим рівнем паралелізму.

Технологія MMX була розроблена як набір базових цілочисельних команд, які зручно використовувати в різних мультимедійних і комунікаційних додатках. Основні риси цієї технології: архітектура - одна інструкція над багатьма даними (SIMD) 57 нових інструкцій вісім 64-розрядних регістрів MMX чотири нові типи даних

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

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

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

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

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

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

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

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

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

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

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

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

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!