МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Команды работы СЃРѕ стеком.Запись слова РІ стек push операнд — запись значения операнд РІ вершину стека. Чтение слова РёР· стека pop операнд — запись значения РёР· вершины стека РїРѕ месту, указанному операндом. !!!Операндом РЅРµ может быть регистр CS !!! Команды PUSH Рё POP РЅРµ осуществляют проверку РЅР° выход Р·Р° пределы стека. Например, если стек РїСѓСЃС‚, Р° РјС‹ считываем слово РёР· стека, будет считано слово Р·Р° сегментом стека. Р?спользование стека В· для временного сохранения значений регистров например, push cx . . . ; например РІРѕ вложенных циклах pop cx В· для сохранения текущих состояний флагов Рё последующего РёС… восстановления pushf popf В· для определения или изменения состояния любого флага В· для пересылки данных например, X:=Y push Y pop X В· РїСЂРё работе СЃ процедурами; В· РїСЂРё определении локальных переменных.
29. Р?ерархия памяти. РљСЌС€ памяти.
Две возможные стратегии для ускорения быстродействия– уменьшение времени отклика или упреждающий запрос нужной памяти. Р?спользование регистров Рё оперативной памяти. Регистры – самые быстрые элементы памяти, РѕРЅРё находятся непосредственно РЅР° СЏРґСЂРµ, Рё доступ Рє РЅРёРј практически мгновенный. Если ваша программа делает какие-то вычисления, хотелось Р±С‹, чтобы РІСЃРµ промежуточные данные хранились РЅР° регистрах. Понятно, что это невозможно. РћРґРЅР° РёР· возможных проблем производительности– это проблема вытеснения регистров. РљРѕРіРґР° РІС‹ РїРѕРґ каким-РЅРёР±СѓРґСЊ анализатором производительности смотрите РЅР° ассемблерный РєРѕРґ, РІС‹ видите, что Сѓ вас очень РјРЅРѕРіРѕ движения СЃРѕ стека РІ регистры Рё обратно выгрузка регистров РЅР° стек. Стоит РІРѕРїСЂРѕСЃ – как оптимизировать РєРѕРґ так, чтобы самые горячие адреса, самые горячие промежуточные данные, лежали именно РЅР° системных регистрах. Следующая часть памяти – это обычная оперативная память. РЎ ростом производительности процессоров стало СЏСЃРЅРѕ, что самым СѓР·РєРёРј местом производительности является доступ Рє оперативной памяти. Для того, чтобы добраться РґРѕ оперативной памяти, нужны сотня, Р° то Рё РґРІРµ сотни тактов процессора. РўРѕ есть, запросив какую-то ячейку памяти РІ оперативной памяти, РјС‹ будем ждать двести тактов, Р° процессор будет простаивать. Существует РґРІРµ характеристики для описания свойств памяти – это время отклика, то есть число циклов процессора, необходимое для передачи единицы данных РёР· памяти, Рё пропускная способность — сколько элементов данных РјРѕРіСѓС‚ быть отправлены процессором РёР· памяти Р·Р° РѕРґРёРЅ цикл. Встретившись СЃ проблемой, что Сѓ нас СѓР·РєРёРј местом является доступ Рє памяти, РјС‹ можем решать эту проблему РґРІСѓРјСЏ путями – либо уменьшением времени отклика, либо делать упреждающие запросы нужной памяти. РўРѕ есть, РІ данный момент нам значение какой-то переменной неинтересно, РЅРѕ РјС‹ знаем, что РѕРЅРѕ СЃРєРѕСЂРѕ нам понадобится, Рё РјС‹ его уже запрашиваем.
Кэширование РљСЌС€-память служит для уменьшения времени доступа Рє данным. Для этого блоки оперативной памяти отображаются РІ более быструю РєСЌС€-память. Если адрес памяти находится РІ кэше – РїСЂРѕРёСЃС…РѕРґРёС‚ "попадание" Рё скорость получения данных значительно увеличивается. Р’ противном случае – "промах" (cash miss) Р’ этом случае блок оперативной памяти считывается РІ РєСЌС€-память Р·Р° РѕРґРёРЅ или несколько циклов шины, называемых заполнением строки РєСЌС€-памяти. Можно выделить следующие РІРёРґС‹ РєСЌС€-памяти: В· полностью ассоциативная РєСЌС€-память (каждый блок может отображаться РІ любое место кэша) В· память СЃ прямым отображением (каждый блок может отображаться РІ РѕРґРЅРѕ место) В· гибридные варианты (секторная память, память СЃ множественно-ассоциативным доступом) Множественно-ассоциативный доступ – РїРѕ младшим разрядам определяется строка кэша, РєСѓРґР° может отображаться данная память, РЅРѕ РІ этой строке может находиться только несколько слов РѕСЃРЅРѕРІРЅРѕР№ памяти, выбор РёР· которых проводится РЅР° ассоциативной РѕСЃРЅРѕРІРµ. Качество использования кэша – ключевое условие быстродействия. Дополнительная информация: РІ современных IA32 системах размер РєСЌС€-линии 64 байта. Уменьшение времени доступа было достигнуто введением РєСЌС€-памяти. РљСЌС€-память – это память, находящаяся между оперативной памятью Рё микропроцессором. РћРЅР° реализована РЅР° СЏРґСЂРµ, то есть доступ Рє ней гораздо быстрее чем Рє обычной памяти, РЅРѕ РѕРЅР° намного дороже, поэтому приразработке микроархитектуры нужно найти точный баланс между ценой Рё производительностью. Если РІС‹ посмотрите РЅР° описания предлагаемых РІ продаже процессоров, РІС‹ увидите, что всегда РІ описании пишется, сколько кэша памяти того или РёРЅРѕРіРѕ СѓСЂРѕРІРЅСЏ РЅР° данном процессоре есть. Рта цифра серьезно влияет РЅР° цену данного изделия. РљСЌС€-память устроена так, что обычная память отображается РЅР° РєСЌС€-память, отображение идет блоками. Р’С‹, запрашивая РІ оперативной памяти какой-то адрес, делаете проверку, отображен ли этот адрес РІ РєСЌС€-памяти. Если этот адрес уже есть РІ РєСЌС€-памяти, то РІС‹ экономите время РЅР° обращение Рє памяти. Р’С‹ считываете эту информацию РёР· быстрой памяти, Рё Сѓ вас время отклика существенно уменьшается, если же этого адреса РІ РєСЌС€-памяти нет, то РјС‹ должны обратиться Рє обычной памяти, чтобы этот необходимый нам адрес вместе СЃ каким-то блоком, РІ котором РѕРЅ находится, отобразился РІ эту РєСЌС€-память. Существуют разные реализации РєСЌС€-памяти. Бывает полностью ассоциативная РєСЌС€-память, РєРѕРіРґР° каждый блок может отображаться РІ любое место кэша. Существует память СЃ прямым отображением, РєРѕРіРґР° каждый блок может отображаться РІ РѕРґРЅРѕ место, также существуют различные гибридные варианты – например РєСЌС€ СЃ множественно-ассоциативным доступом. Р’ чем разница? Разница РІРѕ времени Рё сложности проверки РЅР° наличие нужного адреса РІ РєСЌС€-памяти. Предположим, что нам нужен определенный адрес. Р’ случае СЃ ассоциативной памятью нам нужно проверить весь РєСЌС€ – убедиться, что этого адреса РІ кэше нет. Р’ случае СЃ прямым отображением нам нужно проверить только РѕРґРЅСѓ ячейку. Р’ случае СЃ гибридными вариантами, например, РєРѕРіРґР° используется РєСЌС€ СЃ множественно-ассоциативным доступом, нам нужно проверить, Рє примеру, четыре или восемь ячеек. РўРѕ есть, задача определить есть ли адрес РІ кэша – тоже важна. Качество использования кэша – важное условие быстродействия. Если нам удастся написать программу так, чтобы как можно чаще те данные, СЃ которыми РјС‹ собирались работать, находились РІ кэше, то такая программа будет работать гораздо быстрее. Характерные времена отклика РїСЂРё обращении Рє РєСЌС€ памяти для Nehalem i7: В· L1 - latency 4 В· L2 - latency 11 В· L3 - latency 38 Время отклика для оперативной памяти > 100 Упреждающий механизм доступа Рє памяти реализован РїСЂРё помощи механизма упреждающей выборки (hardware prefetching). Есть специальный набор инструкций, позволяющий побудить процессор загрузить РІ РєСЌС€ память расположенную РїРѕ определенному адресу (software prefetching). Для примера возьмем наш последний процессор Nehalem: i7. Здесь РјС‹ имеем РЅРµ просто РєСЌС€, Р° некий иерархический РєСЌС€. Долгое время РѕРЅ был двухуровневый, РІ современной системе Nehalem РѕРЅ трехуровневый – совсем немного очень быстрого кэша, чуть побольше кэша второго СѓСЂРѕРІРЅСЏ Рё достаточно большое количество кэша третьего СѓСЂРѕРІРЅСЏ. РџСЂРё этом, эта система построена так, что если какой-то адрес находится РІ кэше первого СѓСЂРѕРІРЅСЏ, РѕРЅ автоматически находится РІРѕ втором Рё РІ третьем СѓСЂРѕРІРЅСЏС…. Рто Рё есть иерархическая система. Для кэша первого СѓСЂРѕРІРЅСЏ задержка – 4 такта, для второго – 11, третьего – 38 Рё время отклика оперативной памяти – больше 100 тактов процессора. Принцип локальности. Качество упреждающей выборки. Локальность ссылки (locality of reference) – повторное использование переменных или взаимосвязанных данных. Различают временную локальность (temporal locality) – РєРѕРіРґР° речь идет РѕР± РѕРґРЅРёС… Рё тех же данных Рё пространственную локальность (spatial locality) – использование различных данных, имеющих относительно близкие области хранения. Механизм кэширования использует принцип временной локальности. (Стремится сохранять РІ кэше наиболее часто используемые данные). Механизм упреждающей выборки использует принцип пространственной локальности. (Стремится определить закономерность РІ доступе Рє памяти, чтобы заранее подгружать РІ РєСЌС€ необходимую память). РџСЂРё этом, чем выше пространственная локальность (элементы расположены ближе РІ памяти), тем меньше данных требуется загружать РІ РєСЌС€ Рё меньше нагрузка РЅР° системную шину. РљСЌС€ aliasing – РёР·-Р·Р° неудачного расположения РІ памяти различных объектов, участвующих РІ вычислении, РїСЂРѕРёСЃС…РѕРґРёС‚ вытеснению РёР· РєСЌС€ памяти РѕРґРЅРёС… адресов РґСЂСѓРіРёРјРё. Второй вариант улучшения быстродействия Рё работы СЃ памятью, РїСЂРѕ который РјС‹ упомянули – это подкладывать РІ РєСЌС€ заранее необходимые адреса – упреждающий механизм доступа Рє памяти (Hardware Prefetching). Ртот механизм выявляет закономерности, СЃ которыми РІС‹ обращаетесь Рє памяти, Рё заранее закачивает РІ РєСЌС€ адреса, которые РјРѕРіСѓС‚ вам понадобиться. Если РІС‹ обрабатываете несколько массивов, движетесь РїРѕ РЅРёРј последовательно или СЃ каким-то постоянным шагом, то, скорее всего, этот механизм начнет эти адреса заранее подгружать. Есть специальный набор инструкций, позволяющий загрузить РІ РєСЌС€ память, расположенную РїРѕ определенному адресу. (Software Prefetching) РљСЌС€ имеет внутренние алгоритмы работы. Введем несколько понятий. Локальность ссылки – переиспользование переменных или взаимосвязанных данных. Различают временную локальность – переиспользование определенных данных Рё ресурсов Рё пространственную локальность - использование данных, имеющих относительно близкие области хранения. Механизм кэширования использует механизм временной локальности. РћРЅ пытается отследить те адреса, которые чаще всего используются, Рё сохранять РёС… РІ кэше, Р° те, которые больше РЅРµ используются – РёР· кэша удалять. РўРѕ есть каждый раз, РєРѕРіРґР° РІС‹ запрашиваете РёР· памяти какой-то новый адрес, механизм кэширования оценивает, какие блоки Сѓ него есть, какой РёР· имеющихся Сѓ него блоков давно РЅРµ использовался, Рё удаляет этот блок, заменяя его РЅР° новый. Ртот механизм пытается сохранять только те данные, СЃ которыми ведется активная работа. Механизм упреждающей выборки использует принцип пространственной локальности, то есть подгружает соседние элементы. РџСЂРё работе механизма кэширования РјРѕРіСѓС‚ происходить неприятные моменты. Например, РІС‹ работаете СЃ РґРІСѓРјСЏ массивами, РЅРѕ РѕРЅРё расположены РІ памяти так, что беря адреса РѕРґРЅРѕРіРѕ массива, которые вам нужны, РІС‹ вытесняете РёР· кэша адреса РґСЂСѓРіРѕРіРѕ массива, которые Р±СѓРґСѓС‚ вам нужны. Формально, ничего РЅРµ мешает расположить эти массивы РІ памяти РїРѕ-РґСЂСѓРіРѕРјСѓ Рё избежать этой проблемы. Р?ерархическая структура памяти является традиционным решением проблемы хранения большого количества данных РћРЅР° изображена РЅР° СЂРёСЃ. 2.15. РќР° самом верху находятся регистры процессора. Доступ Рє регистрам осуществляется быст- рее всего. Дальше идет РєСЌС€-память, объем которой сейчас составляет РѕС‚ 32 Кбайт РґРѕ нескольких мегабайт. Затем следует основная пам'ять. Далее РёРґСѓС‚ магнитные РґРёСЃРєРё Рё, наконец, накопители РЅР° магнитной ленте Рё оптические РґРёСЃРєРё, которые используются для хранения архивной информации.
РРёСЃ. 2.15. Пятиуровневая организация памяти РџРѕ мере продвижения РїРѕ структуре сверху РІРЅРёР· возрастают три параметра. Р’Рѕ- первых, увеличивается время доступа. Доступ Рє регистрам занимает несколько наносекунд, доступ Рє РєСЌС€-памяти — немного больше, доступ Рє РѕСЃРЅРѕРІРЅРѕР№ памяти — несколько десятков наносекунд. Дальше идет большой разрыв: доступ Рє дискам занимает РїРѕ крайней мере 10 РјРєРµ, Р° время доступа Рє магнитным лентам Рё оптичес- РєРёРј дискам вообще может измеряться РІ секундах (поскольку эти накопители РёРЅ- формации еще нужно взять Рё поместить РІ соответствующее устройство). Р’Рѕ-вторых, увеличивается объем памяти. Регистры РјРѕРіСѓС‚ содержать РІ лучшем случае 128 байтов, РєСЌС€-память — несколько мегабайтов, основная память — десятки тысяч мегабайтов, магнитные РґРёСЃРєРё — РѕС‚ нескольких гигабайтов РґРѕ нескольких десятков гигабайтов. Магнитные ленты Рё оптические РґРёСЃРєРё хранятся автономно РѕС‚ компьютера, поэтому РёС… объем ограничивается только финансовыми РІРѕР·РјРѕР¶- ностями владельца. Р’-третьих, увеличивается количество битов, которое РІС‹ получаете Р·Р° 1 доллар. Стоимость объема РѕСЃРЅРѕРІРЅРѕР№ памяти измеряется РІ долларах Р·Р° мегабайт1, объем магнитных РґРёСЃРєРѕРІ — РІ пенни Р·Р° мегабайт, Р° объем магнитной ленты — РІ долларах Р·Р° гигабайт или еще дешевле. Регистры, РєСЌС€-память Рё РѕСЃРЅРѕРІРЅСѓСЋ память РјС‹ уже рассмотрели. Р’ следующих разделах РјС‹ расскажем Рѕ магнитных дисках, Р° затем приступим Рє изучению РѕРї- тических РґРёСЃРєРѕРІ. Накопители РЅР° магнитных лентах РјС‹ рассматривать РЅРµ будем, поскольку РѕРЅРё очень редко используются; Рє тому же Рѕ РЅРёС… практически нечего сказать.
|
||||||||
|