Файл amd64 что это
В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Введение
Развитие задач, решаемых с помощью вычислительной техники, постоянно повышает требования к аппаратуре, на которой эти задачи решаются. Требования к вычислительным системам класса персональных компьютеров увеличиваются уже более 20 лет год от года. Это происходит из-за желания людей решать на персональных компьютерах все более сложные задачи, которые ранее решались лишь на высокопроизводительных мэйнфреймах.
Какие же требования возникают к персональным компьютерам для решения сложных задач? Разумеется, это требования по объему оперативной памяти и быстродействию процессора (не путать с частотой!). Господствующая последнее десятилетие архитектура IA32 (Intel Architecture 32) предлагает 4Гб (2^32) оперативной памяти, из которой приложению обычно доступно только 2Гб, различные блоки регистров, а также наборы ухищрений типа блока предсказания переходов, которые должны повысить производительность системы без повышения такого абстрактного параметра как частота процессора [1].
Современные задачи для персональных компьютеров по памяти уже подходят к 2Гб, а повышение частоты процессоров не приводит к повышению производительности.
Решением проблемы ограничений современных 32-битных машин в какой-то степени стало появление 64-битных архитектур SPARC64 и Intel Itanium. Однако они предназначены для hi-end систем и недоступны в качестве дешевых решений. По настоящему массовыми предназначено стать архитектуре AMD64 компании AMD и ее реализации EM64T компании Intel. Эти архитектуры являются близнецами и программы, скомпилированные для одной из них, запускаются и на другой. Однако исторически первой появилось именно решение от AMD. EM64T является всего лишь фактически реализацией AMD64 от Intel. Архитектура AMD64 в настоящее время реализована в процессорах всех классов: мобильных, рабочих станциях, серверах.
Несмотря на явные преимущества платформы AMD64 (о которых подробно говорится в представленной статье), ничего революционно нового в вычислительной технике она не несет. Переход от 32-х бит к 64-м не привел к качественным улучшениям, в то время как прошлый подобный переход от 16-ти к 32-битам заметно повысил надежность и производительность систем.
1. Архитектура AMD64
Архитектура AMD64 полностью описывается в пяти томах документации, предоставляемой компанией AMD. В этой главе представлен краткий обзор, основанный на первом томе [2]. Обратим внимание на то, что в официальной документации данная архитектура обозначается как AMD x86-64, что подчеркивает ее обратную совместимость.
1.1. Описание архитектуры
Архитектура AMD x86-64 простое, но в то же время мощное обратно-совместимое расширение устаревшей промышленной архитектуры x86 [1]. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности для перекомпилированных 64-битных программ, обеспечивая поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.
Необходимость 64-битной x86 архитектуры определяется приложениями, которым необходимо большое адресное пространство. Это высокопроизводительные серверы, системы управления базами данных, CAD-системы и конечно игры. Такие приложения получат преимущество от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.
Архитектура x86-64 вводит две новые особенности:
1. расширенные регистры (рисунок 1):
2. специальный режим "Long Mode" (устоявшегося перевода пока нет), который представлен в таблице 1:
- до 64-бит виртуальных адресов;
- 64-битные указатель команд (RIP);
- плоское (flat) адресное пространство.
Рисунок 1. Набор регистров x86-64
Таблица 1. Режимы работы процессора
Таблица 2 содержит сравнение ресурсов регистров и стека, доступных приложению в различных режимах. Левые колонки показывают ресурсы устаревшей x86 архитектуры, которые доступны только для совместимости. Правые колонки показывают ресурсы доступные в 64-битном режиме. Серым цветом показано отличие между режимами.
Таблица 2. Регистры и стек, доступные в различных режимах
Как показано в таблице 2, устаревшая архитектура x86 (такой режим называется legacy mode в x86-64) поддерживает 8 регистров общего назначения. Однако в действительности, в основном, используются лишь 4 регистра EAX, EBX, ECX, EDX. Регистры EBP, ESI, EDI, ESP имеют специальное назначение. Архитектура x86-64 добавляет 8 новых регистров общего назначения и увеличивает размер регистров с 32-х до 64-х бит. Это позволяет компиляторам повышать производительность кода. 64-битный компилятор может лучше использовать регистры для хранения переменных. Компилятор также может минимизировать обращения к памяти, локализуя работу внутри регистров общего назначения.
Архитектура x86-64 поддерживает весь набор инструкций x86 и добавляет некоторые новые инструкции для поддержки long-режима. Команды разбиты на несколько подмножеств:
Некоторые из этих команд соединяют два или более подмножества описанных выше команд. Например, это команды пересылки данных между регистрами общего назначения и XMM или MMX регистрами.
Рассмотрим более подробно представленные в таблице 1 режимы работы, поддерживаемые архитектурой x86-64. В большинстве случаев размеры адресов и операндов могут быть перекрыты префиксом команды.
Сначала опишем long-режим. Это расширение устаревшего защищенного (protected) режима. Long-режим состоит из двух подвидов: 64-битный режим и режим совместимости. 64-битный режим поддерживает все новые возможности и регистровые расширения, введенные в x86-64. Режим совместимости поддерживает бинарную совместимость с существующим 16-битным и 32-битным кодом. Long-режим не поддерживает устаревший реальный (real) режим или устаревший виртуальный (virtual-8086) режим, а также не поддерживает аппаратное переключение задач.
Поскольку 64-битный режим поддерживает 64-битное адресное пространство, то для его работы необходимо использовать новую 64-битную операционную систему. Существующие приложения при этом могут запускаться без перекомпиляции в режиме совместимости под операционной системой, работающей в 64-битном режиме. Для 64-битной адресации команд используется 64-битный регистр (RIP) и новый режим адресации с единым плоским (flat) адресным пространством и единым пространством для кода, стека и данных.
64-битный режим реализует поддержку расширенных регистров через новую группу префиксов команд REX.
В 64-битном режиме размер адресов по умолчанию 64 бита, однако реализации x86-64 могут иметь меньший размер. Размер операнда по умолчанию 32 бита. Для большинства инструкций размер операнда по умолчанию может быть перекрыт с использованием префикса команд типа REX.
64-битный режим обеспечивает адресацию данных относительно 64-битного регистра RIP. x86 архитектура обеспечивала адресацию относительно IP регистра только в командах передачи управления. RIP-относительная адресация повышает эффективность позиционно-независимого кода и кода, который адресует глобальные данные.
Несколько кодов операций (opcode) команд были переопределены для поддержки расширенных регистров и 64-битной адресации.
Режим совместимости предназначен для выполнения в 64-битной операционной системе существующих 16-битных и 32-битных программ. Приложения запускаются в режиме совместимости с использованием 32- или 16-битного адресного пространства и могут иметь доступ к 4Гб виртуального адресного пространства. Префиксы команд могут переключать 16- и 32-битные адреса и размеры операндов.
С точки зрения приложения, режим совместимости выглядит как устаревший защищенный режим x86, однако с точки зрения операционной системы (трансляция адресов, обработки прерываний и исключений) используются 64-битные механизмы.
Устаревший (legacy) режим обеспечивает бинарную совместимость не только с 16- и 32-битными приложениями, но и с 16- и 32-битными операционными системами. Он включает в себя три режима:
- Защищенный (protected) режим. Поддерживаются 16- и 32-битные программы с сегментной организацией памяти, поддержкой привилегий и виртуальной памяти. Адресное пространство - 4Гб.
- Виртуальный (virtual-8086) режим. Поддерживает 16-битные приложения, запускаемые как задачи в защищенном режиме. Адресное пространство - 1Мб.
- Реальный (real) режим. Поддерживает 16-битные программы с простой регистровой адресацией сегментированной памяти. Не поддерживается виртуальная память или привилегии. Доступно 1Мб памяти.
Устаревший (legacy) режим используется только при работе 16- и 32-битных операционных систем.
1.2. Достоинства архитектуры
Подчеркнем основные достоинства архитектуры AMD x86-64:
- 64-битное адресное пространство.
- Расширенный набор регистров.
- Привычный для разработчиков набор команд.
- Возможность запуска старых 32-битных приложений в 64-битной операционной системе.
- Возможность использования 32-битных операционных систем.
1.3. Недостатки архитектуры
Серьезных недостатков в 32-битную архитектуру новая архитектура AMD x86-64 не внесла. Отметить можно разве лишь чуть большие требования программ к памяти из-за того, что увеличился размер адресов и операндов. Однако это серьезно не скажется ни на размере кода, ни на требованиях к объему доступной оперативной памяти.
Но фактом является и то, что AMD x86-64 не привнесла ничего существенно нового. Нет принципиального повышения производительности. В среднем после перекомпиляции программы можно ожидать прирост производительности в пределах 5-15%.
2. Программная модель AMD64
Практически все современные операционные системы сейчас имеют версии для архитектуры AMD64. Так Microsoft предоставляет Windows XP 64bit, Windows Server 2003 64bit, Windows Vista 64bit. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как например Linux Debian 3.1 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, т.к. AMD64 обеспечивает обратную совместимость.
64-битная версия Windows, к примеру, использует специальный режим WoW (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы. Рассмотрим более подробно программную модель AMD64, доступную программисту в 64-битной системе Windows, для краткости называемой Win64.
Начнем с адресного пространства. Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в любом случае, необходимо огромное количество памяти для страничных таблиц, отображающих память (см. таблицу 3).
32-битный режим
64-битный режим
Общее адресное пространство процесса
Адресное пространство, доступное 32-битному процессу
2Гб (3Гб, если система загружена с ключом /3GB)
4Гб, если приложение скомпилировано с ключом /LARGEADDRESSAWARE (2Гб иначе)
Адресное пространство, доступное 64-битному процессу
Нерезидентный пул (paged pool)
Резидентный пул (non-paged pool)
System Page Table (PTE)
Таблица 3. Основные ограничения памяти в Windows
Как и в Win32, адресуемый диапазон памяти делится на пользовательские адреса и на системные. Каждый процесс получает 8Тб и 8Тб остается системе (в отличие от 2Гб и 2Гб в Win32 соответственно). Различные версии Windows имеют различные ограничения, представленные в таблице 4.
Физическая память и количество процессоров
32-битные модели
64-битные модели
Windows XP Home
Windows XP Professional
128 Гбайт, 1-2 CPU
Windows Server 2003, Standard
32 Гбайт, 1-4 CPU
Windows Server 2003, Enterprise
64 Гбайт, 1-8 CPU
Windows Server 2003, Datacenter
Windows Server 2008, Datacenter
64 Гбайт, 2-64 CPU
2 Тбайт, 2-64 CPU
Windows Server 2008, Enterprise
64 Гбайт, 1-8 CPU
Windows Server 2008, Standard
32 Гбайт, 1-4 CPU
Windows Server 2008, Web Server
32 Гбайт, 1-4 CPU
Vista Home Basic
Vista Home Premium
16 Гбайт, 1-2 CPU
128 Гбайт, 1-2 CPU
128 Гбайт, 1-2 CPU
128 Гбайт, 1-2 CPU
Таблица 4.Ограничения различных версий Windows.
Также как и в Win32 размер страницы составляет 4Кб. Первые 64Кб адресного пространства никогда не отображаются, т.е. наименьший правильный адрес это 0x10000. В отличие от Win32, системные DLL загружаются выше 4Гб.
Все процессоры, реализующие AMD64, имеют поддержку для "CPU No Execution" бита, который Windows использует для реализации аппаратной технологии "Data Execution Protection" (DEP), которая запрещает исполнение пользовательских данных вместо кода. Это позволяет повысить надежность программ, исключая влияние ошибок типа выполнения буфера с данными как кода.
Особенность компиляторов для AMD64 в том, что они могут наиболее эффективно использовать регистры для передачи параметров в функции, вместо использования стека. Это позволило разработчикам Win64 архитектуры избавиться от такого понятия как соглашение о вызовах (calling convention). В Win32 можно использовать разные соглашения (способы передачи параметров): __stdcall, __cdecl, __fastcall и т.д. В Win64 есть только одно соглашение о вызовах. Рассмотрим пример, как передаются в регистрах четыре аргумента типа integer:
- RCX: первый аргумент
- RDX: второй аргумент
- R8: третий аргумент
- R9: четвертый аргумент
Аргументы после первых четырех integer передаются на стеке. Для float аргументов используются XMM0-XMM3 регистры, а также стек.
Разница в соглашениях о вызове приводит к тому, что в одной программе нельзя использовать и 64-битный, и 32-битный код. Другими словами, если приложение скомпилировано для 64-битного режима, то все используемые библиотеки (DLL) также должны быть 64-битными.
При написании 64-битного кода можно получить дополнительный выигрыш в производительности за счет специальной оптимизации. Подробно этот вопрос рассмотрен в руководстве по оптимизации [3].
3. Перенос приложений на AMD64
Одним из назначений языков высокого уровня является по возможности сократить привязку программного кода к архитектуре и обеспечить максимально возможную переносимость между аппаратными платформами. Например, правильно написанные программы на языке Си++ теоретически не зависят от аппаратной платформы. И для компиляции существующих 32-битный приложений под платформу AMD64 в идеале достаточно просто сменить компилятор [4] и просто перекомпилировать программу. Но на практике дела обстоят более сложно.
До сих пор существует программное обеспечение, использующий ассемблерный код для 32-битных процессоров. Многие программы, написанные на языках высокого уровня, содержат ассемблерные вставки. Поэтому просто перекомпилировать большой проект часто бывает невозможно. Решение проблемы понятно. Во-первых, можно отказаться от переноса приложения на новую платформу. Это может быть весьма разумным решением, так как, например операционные системы семейства Windows обеспечивают хорошую обратную совместимость, благодаря технологии Wow64. Второй вариант - переписать программный код. Причем разумным выглядит его переписывание с использованием языков высокого уровня. Кстати заметим, что компилятор Visual C++ более не поддерживает компиляцию ассемблерных вставок в 64-битном режиме компиляции [5].
Наличие ассемблерного программного кода не единственное препятствие при освоении 64-битных систем. При переносе программ на 64-битные системы возникают разнообразные ошибки, связанные с изменением модели данных (размерности типов). Причем ряд ошибок проявляет себя только при использовании большого объема памяти, который был не доступен на 32-битных системах. Подобные ошибки хорошо описаны в статье "20 ловушек переноса Си++ - кода на 64-битную платформу" [6].
Для тестирования и проверки программного кода, переносимого на 64-битную платформу можно использовать различные специальные методики и инструменты [7]. Например, хорошие результаты дает использование статических анализаторов, таких как Viva64 (для Windows систем) и PC-Lint (для Unix систем). Более подробно с этим инструментарием можно познакомиться в статье "Сравнение диагностических возможностей анализаторов при проверке 64-битного кода" [8].
Заключение
Предложенная компанией AMD архитектура AMD64 несомненно оказалась востребованной на рынке. Достоинство AMD64 в том, что она позволяет плавно перейти на 64-битные программы, при этом не теряя совместимости со старыми 32-битными приложениями. Однако ничего революционного в AMD64 нет.
Миграция 32-битных программ на AMD64, как показывают эксперименты, позволяет, во-первых, решать задачи, существенно более требовательные к памяти, а, во-вторых, получить порядка 10% прироста производительности "просто так", без изменения кода, за счет оптимизации компилятором приложения под новую архитектуру.
Можно сделать вывод, что архитектура AMD64 на много лет отодвинула проблему ограничения доступного объема оперативной памяти, но не решила проблем роста производительности современных персональных машин. Будущее остается за многоядерными и многопроцессорными системами.
AMD64 (также x86-64/Intel64/EM64T/x64) — 64-битная архитектура микропроцессора и соответствующий набор инструкций, разработанные компанией AMD. Это расширение архитектуры x86 с полной обратной совместимостью. Набор инструкций x86-64 в настоящее время поддерживается процессорами AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, Phenom, Turion 64, Sempron. Этот набор инструкций был лицензирован основным конкурентом AMD — компанией EM64T (Intel 64) (ранее известные как EM64T и IA-32e) в поздних моделях процессоров Pentium 4, а также в Pentium D, Pentium Extreme Edition, Celeron D, Core 2 Duo и Microsoft и Sun Microsystems используют для обозначения этого набора инструкций термин x64, однако, каталог с файлами для архитектуры в дистрибьютивах Microsoft называется amd64 (ср. i386 для архитектуры x86).
Содержание
Как правильно называть
Существует несколько вариантов названий этой технологии, которые, порой, приводят к путанице и могут ввести пользователя в заблуждение.
- x86-64. Первоначальный вариант. Именно под этим названием фирмой AMD была опубликована первая предварительная спецификация.
- AA-64. Так архитектуру окрестил популярный неофициальный справочник IA-64, и по-прежнему так её называющий, как AMD Architecture 64.
- Hammer Architecture. Иногда встречалось название по первым разрабатываемым ядрам процессоров, получившим названия Clawhammer (гвоздодёр) и Sledgehammer (кувалда) иногда называемых просто Hammer (молоток).
- AMD64. После выпуска первых Hammer’ов в названии архитектуры появилось название фирмы-разработчика Advanced Micro Devices. Сейчас является официальным для реализации AMD.
- Yamhill Tehnology. Первое название
- EM64T. Первое официальное название реализации Intel. Расшифровывалось как Extended Memory 64 Technology.
- IA-32e. Иногда встречалось совместно с EM64T, чаще для обозначения длинного режима, который в документации Intel называется "режимом IA-32e".
- Intel 64. Текущее официальное название архитектуры Intel. Постепенно Intel отказывается от наименований IA-32, IA-32e и EM64T в пользу этого названия, которое теперь является единственным официальным для этой архитектуры.
- x64 Официальное название версий операционных систем Windows и Solaris, также используемое как название архитектуры фирмами Sun Microsystems.
На сегодняшний день наиболее распространёнными являются AMD64, x86-64 и x64. Порой упоминание AMD вводит пользователей в заблуждение, вплоть до того, что они отказываются скачивать дистрибутивы родных версий ОС, мотивируя это тем, что на их Intel-процессоре версия для AMD не пойдёт. На самом деле распространители ПО используют название amd64 лишь потому, что именно AMD была пионером в разработке этой технологии. Бывает, что пользователи путают архитектуру Intel 64 с IA-64, ошибочно скачивая ПО для этой архитектуры, и с удивлением обнаруживают, что программа не запускается. Во избежание подобных ошибок, всегда следует помнить, что Intel 64 и . Представители Intel 64 - это Pentium 4 (последние модели), ряд моделей Celeron D, семейство Core 2 и некоторые модели Intel Atom. Представители IA-64 - это семейства Itanium 2.
Режимы работы
Процессоры архитектуры поддерживают два режима работы: Long mode («длинный» режим) и Legacy mode («наследственный», режим совместимости с x86).
Long Mode
Legacy Mode
Данный «наследственный» режим позволяет процессору AMD64 выполнять инструкции, рассчитанные для процессоров x86, и предоставляет полную совместимость с 32/16-битным кодом и операционными системами. В этом режиме процессор ведёт себя точно так же, как x86-процессор, например Pentium 4, и дополнительные функции, предоставляемые архитектурой AMD64 (например, дополнительные регистры) недоступны. В этом режиме 64-битные программы и операционные системы работать не будут (если, конечно, не используется виртуализация).
Особенности архитектуры
Архитектура x86_64 имеет:
Смерть и возрождение сегментной модели организации памяти
Разрабатывая архитектуру x86-64, инженеры корпорации AMD решили навсегда покончить с главным «рудиментом» архитектуры x86 — сегментной моделью памяти, которая передавалась по наследству ещё со времён 8086/80286. Однако, как потом оказалось, они очень погорячились. Архитектура стала абсолютно невиртуализируемой. При разработке новой версии своего продукта для виртуализации программисты компании VMWare столкнулись с непреодолимыми трудностями при реализации 64-битной виртуальной машины. Поскольку, для отделения кода монитора от кода «гостя» программой использовался механизм сегментации, эта задача стала практически неразрешимой. Осознав свою ошибку, AMD вернула ограниченный вариант сегментной организации памяти начиная с ревизии D архитектуры AMD64, что позволило запускать 64-битные ОС в виртуальных машинах. VMWare предоставляет вместе со своими продуктами специальную утилиту. Также следует отметить, что первоначально попавшие «под нож» команды LAHF и SAHF, которые также активно используются ПО виртуализации, затем также были возвращены в систему команд. С распространением средств аппаратной виртуализации (Intel VT, AMD-V) потребность в сегментации вновь постепенно отпадет, однако VMWare по-прежнему активно её использует, и поддержки AMD-V даже на сегодняшний день в её продуктах нет.
Процессоры (важные статьи):
Процессоры (другие статьи):
Работа памяти в системах с процессорами K8:
Влияние изменения таймингов оперативной памяти на производительность Athlon 64 2800+ на платформе с чипсетом VIA K8T800. (Jordan)
- автор исследует зависимость быстродействия Athlon64 на платформе VIA K8T800 от настройки основных таймингов DDR SDRAM и параметров шины HyperTransport.
Athlon 64: подсистема памяти. (TiN)
- в статье рассматривается влияние таймингов оперативной памяти (основных, некоторых второстепенных и 2T timing) на пропускную способность RAM на платформе NForce3-250. Также вы найдете схему программатора для перепрошивки SPD модулей памяти и руководство, как это сделать.
Немного о роли параметра 1T/2T Timing для Athlon 64. (Doors4ever)
- здесь показана зависимость быстродействия системы на базе Athlon64 от изменения параметра 1T/2T timing.
Работа памяти на А64. (GerK)
- читать всем! В статье объясняется принцип работы памяти в системах с процессорами, основанными на архитектуре K8. Здесь вы узнаете как ПРАВИЛЬНО определить частоту RAM при разгоне процессора, использовании дробных множителей CPU и различных режимов работы ОЗУ – от DDR400 до DDR200.
Разгон процессоров AMD Athlon 64 2800+ (NewCastle) – размер памяти имеет значение. (Doors4ever)
- читать всем! В статье рассматривается очень важная с точки зрения оверклокинга особенность работы памяти на материнских платах с разъемом Socket754.
Особенности контроллера памяти процессоров Athlon 64 ревизии E3. (Gavric)
- автор рассматривает режимы работы контроллера памяти процессоров Athlon 64 ревизии E3 с различным количеством односторонних и двухторонних модулей DDR SDRAM. В статье приводятся сравнение скорости работы системы с различными вариантами конфигураций памяти, рассказывается о новых делителях памяти, введенных в процессорах новой ревизии E для модулей DDR466 и DDR500. Также исследуется прирост быстродействия от использования повышающих делителей и от обычного разгона памяти при неизменной тактовой частоте процессора.
Ядра Venice и San Diego: нюансы поддержки до 4 Гб памяти. (Lexagon)
- в этой статье также рассказывается о режимах работы встроенного контроллера памяти процессоров Athlon 64 с различным количеством односторонних и двухcторонних модулей DDR SDRAM. Также автор описывает проблемы, возникающие при установке больших объемов оперативной памяти, в системах на базе процессоров Athlon 64.
Оперативная память:
По мере поступления интересных материалов данный каталог будет пополняться новыми ссылками.
Поскольку иногда происходят перемещения статей внутри сайтов (меняются URL), я буду следить за правильностью приведенных ссылок. Если проследовав по какому-либо адресу вы не нашли нужной публикации, то сообщите мне об этом через ЛС (а статью вы сможете найти на соответствующем сайте через поиск по её названию). Критику, пожелания, дополнения прошу оставлять в этой ветке конференции.
При попытке запустить программу или игру может появиться ошибка amd_ags_x64.dll. В данном файле содержатся инструкции, которые используют другое программное обеспечение. Повреждение одного файла может нарушить работу сразу нескольких утилит. Большая часть пользователей увидели данную ошибку при попытке запуска игр. Все это указывает на то, что данный файл может использоваться как программами, так и играми.
Что такое amd_ags_x64.dll?
Файл amd_ags_x64.dll является частью библиотеки служб, относящихся к AMD GPU и связанным с ним программам. Он применяется во всех операционных системах х64 c Windows 10, на компьютерах с графическим адаптером AMD.
Где хранится файл amd_ags_x64.dll?
Большинство файлов с расширением DLL располагаются в System32. Однако, часть программ, преимущественно игры, могут устанавливать такой же файл и в свою папку дополнительно. Таким образом, файл amd_ags_x64.dll может храниться и в некоторых каталогах с играми.
Почему отсутствует файл amd_ags_x64.dll?
Ошибка, при которой система «не обнаружила файл amd_ags_x64.dll», может появиться из-за неудачно завершенной игры, критической ошибки или выключения компьютера в случайный момент времени. При чем, файл может не только отсутствовать, но и быть поврежденным, измененным. Подобная ошибка может появиться в Windows 10/11, если:
- случайно или намеренно удалили файл;
- какая-то из установленных вами программ перезаписала файл;
- вредоносная программа повредила данный элемент;
- программное обеспечение было неправильно установлено или процесс инсталляции был прерван;
- компьютер внезапно отключился.
Что делать, если Windows 10/11 не обнаружила amd_ags_x64.dll?
Есть несколько рабочих способов исправления проблемы, которые должны перезаписать данный файл или восстановить его.
Способ 1: переустановить программу или игру
Если файл действительно отсутствует, но в папке с файлами игры, ошибка выглядит вполне логично. Переустановив программу, тем самым мы вернем работоспособность приложения. Есть один важный нюанс – при установке игры антивирус должен быть выключенным. Сам процесс переустановки стандартен, поэтому подробно описывать не будем.
Способ 2: переустановить файл amd_ags_x64.dll
У нас есть возможность вручную переустановить файл amd_ags_x64.dll на компьютере, только нужно его откуда-то загрузить. Самый лучший вариант – взять с компьютера с аналогичной системой, но это возможно не всегда. Можно скачать и с интернета, только в таких файлах часто кроются вирусы.
Если боитесь скачивать с интернета DLL-файлы, правильно делаете. Восстановить поврежденный элемент можно и с помощью утилиты sfc. Достаточно в командную строку с повышенными привилегиями вставить команды sfc /scannow.
Способ 3: добавить файл amd_ags_x64.dll в папку с игрой
Некоторые игры требуют наличие соответствующего файла в папке с игрой. Однако, он может быть модифицирован, размещаться в разных директориях, поэтому просто закинуть его сюда недостаточно. Лучше воспользоваться инструментом «Проверить целостность файлов игры» в Steam либо других подобных платформах (у них есть аналогичные функции). Система все сделает сама.
Способ 4: снять блокировку с файла amd_ags_x64.dll
Читайте также: