КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Уровень архитектуры набора команд
Параметри кеш-пам'яті другого рівня сучасних процесорів
Поскольку в кэше невозможно одновременно хранить копии данных из всех адресных областей, необходим такой метод определения адресов, данные которых скопированы в кэш, чтобы необходимые данные считывались непосредственно из кэша, а не из основной оперативной памяти. Для этого применяется ОЗУ тегов — дополнительная область памяти кэша, в которой содержится индекс адресов, скопированных в кэш. Каждая строка памяти кэша имеет соответствующий адресный тег, который хранит адрес данных основной памяти, скопированных в текущий момент времени в отдельную строку кэша. Для получения данных с конкретного адреса основной памяти кэш_контроллер просматривает содержимое ОЗУ тегов, чтобы определить наличие адреса, содержащегося в кэше (совпадение), или его отсутствие (промах). Обнаруженные данные могут быть эффективно считаны из кэша; в противном случае процессор считывает данные из гораздо более медленной оперативной памяти.Работа кэша зависит от методов упорядочения или отображения тегов. Набір команд є найбільш суттєвою ознакою архітектури комп’ютера, бо саме він в першу чергу визначає сумісність з програмним забезпеченням. Набір команд є зв’язуючою ланкою між програмним забезпеченням та апаратурою комп’ютера. Безумовно можна було б зробити так, щоб машина безпосередньо виконувала програми написані на мовах C, C++ або Java, але в цьому випадку втрачалась би багатомовність комп’ютерів. Для того, щоб на комп’ютері можливо було ставити програми, написані на різних мовах, більшість розробників вважають найкращим шляхом трансляцію програми, написаної на мові високого рівня в загальну для всіх мав проміжку фору – рівень архітектури команд даної машини (Рис.5.8). Цей процес називається компіляцією. . Рис. 5.8
Головні вимоги до набору команд машини такі: · скорочення прикладних програм · швидкодія програмного забезпечення · набір команд повинен враховувати перспективу розвитку техніки і стати основою для розробки цілого покоління комп’ютерів. Наприклад, невдалий набір команд може вимагати складної апаратури чи великих обсягів пам’яті для реалізації програми і таким чином бути непридатним для подальшого розвитку. · набір команд повинен надавати максимальну зручність для створення компіляторів (регулярність та повнота варіантів).
При модернізації комп’ютерів дуже важливою вимогою є підтримка одного і того ж набору команд в різних моделях задля забезпечення сумісності з попередньо написаними програмами. В той же час машина може підтримувати нові команди і мати якісь нові архітектурні особливості, які можуть бути ефективно використані новим програмним забезпеченням. Розробники також мають право, як завгодно змінювати апаратне забезпечення, враховуючи нову елементну базу і нові технології, але при умові, що вони зберігають зворотню сумісність з попереднім програмним забезпеченням.
В принципі рівень архітектури команд – це той рівень, що дає програмісту повне уявлення про машину, коли він пише програму на машинній мові. Такий програміст має знати всі подробиці архітектури комп’ютера: модель пам’яті, призначення регістрів, типи даних, перелік і особливості команд і т.д.. Вся ця інформація і визначає рівень архітектури команд.
Класичні (перші) моделі пам’яті являли собою лінійну послідовність байтів. В сучасних машинах байти групуються в слова по 4 (32-розрядні) або по 8 (64-розрядні) байтів. Наприклад в Pentium-4 слова в пам’яті містять 4 байта. Якщо необхідно звертатися до окремого байту (вони нумеруються починаючи з молодших розрядів), то на рівні регістрів загального призначення існує поле з трьох розрядів для вибору конкретного байту.
В деяких машинах містяться різні адресні простори для даних і програм. Це дещо ускладнює систему роботи з пам’яттю, але в той же час вдвічі збільшує обсяг пам’яті, до якої можна звертатися в рамках того ж самого адресного простору і по-друге ліквідують випадковий перезапис програми, як одне із джерел програмних помилок.
В усіх машинах існує досить велика кількість регістрів (16-32) загального і спеціального призначення. Всі ці регістри доступні на рівні мікро архітектури і частково на рівні архітектури команд. В останньому випадку вони дозволяють контролювати виконання програм і зберігати тимчасові результати. До таких регістрів спеціального призначення відносяться, наприклад, лічильник команд та вказівник стека. Функція регістрів спеціального призначення полягає в тому, щоб забезпечити швидкий доступ до інформації, яка часто використовується (без звертання до оперативної пам’яті).
Головною особливістю рівня архітектури команд є сам набір команд. Вони управляють всіма процесами в машині. В цьому наборі завжди в той чи іншій формі присутні команди типу LOAD і STORE призначені для переміщення даних між пам’яттю і регістрами і команд, MOVE, що служить для копіювання даних з одного регістра в другий. Обов’язково присутні команди арифметичні і логічні, команди порівняння даних, а також команди переходу в залежності від результатів. В Pentium 4 всього біля 250 команд і їх модифікацій.
Pentium 4 розвивався на протязі багатьох років. Його історія починається з самих перших мікропроцесорів. Основна архітектура команд забезпечує виконання програм, написаних ще для процесорів 8086 і 8088. Pentium 4 може працювати в реальному режимі процесора 8086, а також в повній якості – в режимі Pentium 4.
С точки зрения архитектуры команд все микропроцессоры можно разделить на группы: 1. микропроцессоры типа CISC с полным набором системы команд; 2. микропроцессоры типа RISC с усеченным набором системы команд; 3. микропроцессоры типа VLIW со сверхбольшим командным словом; 4. микропроцессоры типа MISC с минимальным набором системы команд и весьма высоким быстродействием и др.
Суперскалярні процесори зазвичай асоціюються з RISC-архітектурами (Reduced Instruction Set Computers – спрощена система команд). Це спрощена система потужних команд (приблизно 50), які керують машинними словами великої довжини (не менше 64 біта).Враховуючи велику КЕШ-пам'ять RISC-процесори забезпечують багатократне підвищення швидкодії і використовуються в потужних комп’ютерах – серверах. Reduced Instruction Set Computer — вычисления, построенные на основе упрощённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Упрощение набора команд призвано сократить конвейер, что позволяет избежать задержек на операциях условных и безусловных переходов. Однородный набор регистров упрощает работу компилятора при оптимизации исполняемого программного кода. Кроме того, RISC-процессоры отличаются меньшим энергопотреблением и тепловыделением. Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC Мікропроцесори для персональних комп’ютерів відносяться до СISC-архітектур (Complex Instruction Set Computers – з повною системою команд, до 250 одиниць).
Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП'ы), исполняемые RISC-ядром). VLIM – процессоры (Very Long Instruction Word)— сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора.. Ключевым отличием от суперскалярных CISC-процессоров является то, что для них загрузкой исполнительных устройств занимается часть процессора (планировщик), на что отводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше). Примером VLIW-процессора является Intel Itanium. MISC – процессоры (Minimum Instruction Set Computer)— вычисления с минимальным набором команд. Дальнейшее развитие RISC архитектуры.. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд). В архітектурі ММХ (мультимедійне розширення) додано 57 спеціальних команд для ефективної обробки відео, звукових і графічних даних. Ці команди часто зустрічаються при роботі з мультимедійними програмами. 8 января 1997 года - корпорация Intel анонсировала процессор Pentium с технологией MMX - первый микропроцессор, в котором реализована разработанная Intel новая технология, позволяющая повысить эффективность приложений, работающих с различными видами информации (видео, аудио и т.п.).
Формат команди складається з коду операції і з інформації, що дозволяє визначити звідки поступають операнди і куди треба її відіслати. На рис. 5.9 наведено декілька можливих форматів команд.
Рис.5.9 При виборі формату команд треба взяти до уваги ряд факторів. Перш за все має велике значення можливість додавати нові команди і другі елементи на протязі деякого часу, щоб підтримувати конкурентну здатність архітектуру комп’ютера якомога довше. Також постійно йде пошук оптимальної довжини команд. Сильна мінімізація довжина команд ускладнює їх декодування, а в той же час скорочує час їх виконання. Однозначного рішення тут немає. Першим шляхом (побайтна адресація) пішли розробники машини Burroughs 1700, другим шляхом розробники машини Cyber (фірма CDC), в якій пам'ять містить 60-розрядні слова.
Більшість сучасних обчислювальних машин (в тому числі Pentium 4) прийшли до компромісу: вони вимагають, щоб адреси були у окремих байтів і в той самий час при звертанні до пам’яті зчитують інформацію у вигляді одного, двох, а іноді чотирьох слів. Формати команд процесора Pentium 4 не можуть служити класичним прикладом, вони дуже складні і обтяжені різними вимушеними доробками за всю історію розвитку Intel- процесорів.
5.7. Типы машинних команд.
Команди можна розділити на декілька груп, які хоча і можуть відрізнятися в деталях, але практично присутні в кожній машині. Команди переміщення даних – одні з самих розповсюджених. Термін “переміщення” в комп’ютерах дещо відрізняються від звичайного побутового поняття. Команди переміщення даних краще було б назвати дублюванням, бо дані з комірки А переписуються в комірку В, але оригінал залишається і в А. Існують команди переміщення даних різного обсягу – від одного біта до всієї пам’яті. Бінарні операції – це такі операції, які отримують результат на основі значення двох операндів. Це перш за все всі арифметичні операції. В наступну групу входять булеві команди, основні з яких “І”, “АБО”, “НЕ”. Важливим використанням цих операцій є виділення бітів із слів, та запис бітів в слово. Унарні операції – це операції над одним операндом, наприклад зсув коду, циклічний зсув, інверсія коду. Операції порівняння і умовні переходи. Практично всі програми повинні перевіряти свої дані і на основі одержаних результатів змінювати послідовність виконання команд. Найбільш розповсюджена умова – перевірка дорівнює чи не дорівнює певний біт нулю. В залежності від цього виконується одна чи інша гілка програми. В багатьох машинах є біти кодів умов, наприклад, біт переповнення розрядної сітки і т.д. Перевірка на нуль дуже важлива при реалізації циклів і в деяких інших випадках. Команди виклику процедур. Процедурою називається група команд, яка розв’язує певну задачу і яку можливо визвати з різних місць програми. Замість терміна “процедура” часто використовується термін “підпрограма”. Коли процедура закінчує розв’язування задачі вона повинна повернутися до операнду наступного по відношенню до того, який визвав процедуру. Можливі випадки, коли процедура сама також викликає якусь другу процедуру, або саму себе. Такий режим називається рекурсією. Він може зручно реалізуватися за допомогою стека, в якому записуються адреси для повернення до поточної програми. Команди введення-виведення. В сучасних персональних комп’ютерах використовується три різні схеми введення-виведення: · програмоване введення-виведення; · введення-виведення з управління за перериванням; · введення-виведення з прямим доступом до пам’яті;
Програмоване введення-виведення використовується в дешевих мікропроцесорах. Наприклад, щоб вивести символ на екран дисплея, спочатку програма зчитує регістр стану дисплея, щоб дізнатися, чи вставлений біт готовності. Якщо ні, то цикл повторюється знову і знову, поки біт готовності не буде дорівнювати одиниці. Після цього символ програмно записується на екран дисплея, а біт готовності повертається в стан нуля. Такі цикли повторюються для кожного символу і в цілому процес виводу займає багато часу у процесора, що недопустимо в високопродуктивних пристроях. Введення-виведення з управлінням за перериванням – це великий крок вперед по відношенню до попереднього випадку. Але в цьому варіанті також витрачається багато часу для генерування переривання для кожного символу. Рішення проблеми лежить в використанні контролера прямого доступу до пам’яті (ПДП), Рис5.11), який бере її на себе. Рис.5.11
Мікросхема ПДП має в своєму складі мінімум 4 регістра, які завантажуються з центрального процесора. Перший регістр містить адресу пам’яті яку треба зчитати, або записати. Другий регістр містить кількість байтів, що треба передати. Третій – номер пристрою введення-виведення і адресу в адресному просторі пристрою введення-виведення. Четвертий регістр повідомляє, повинні дані зчитуватися чи записуватися. На рис 8.8 відображена ситуація, коли треба передати (1) на дисплей (4) блок з 32 байтів, починаючи з адреси 100.
Дата добавления: 2014-01-11; Просмотров: 688; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |