Как рассчитать объем памяти

Обновлено: 04.07.2024

Одной из основных задач для операционной системы на этапе её загрузки и настройки является определение конфигурации компьютера, и в частности, выяснение объёма и диапазонов адресов имеющейся оперативной памяти.

Набор механизмов определения объёмов памяти развивался вместе с ПК, однако происходило это довольно хаотично, поэтому на сегодняшний день имеется целый ряд способов для решения данной задачи.

Содержание

История

Фирма IBM, разрабатывая свой ПК, предусмотрела для оперативной памяти диапазон адресов от нуля до 9FFFFh, то есть 640 килобайт — на рубеже 1970-80-х годов это казалось огромным объёмом, лишь мэйнфреймы и наиболее мощные мини-ЭВМ обладали большим размером ОЗУ. Впоследствии эту область памяти стали называть «базовой или стандартной памятью» (Conventional Memory или Base Memory).

Область адресов от A0000h до BFFFFh была отведена под видеопамять. Выше, от C0000h до FFFFFh, шла область ПЗУ различных устройств и BIOS. Как правило, почти все адреса в этих диапазонах были свободны.

С появлением микропроцессора 80286 физическое адресное пространство возросло до 16 Мбайт, однако доступна вся эта область была только в защищённом режиме. В то же время переключение процессора в защищённый режим делало его несовместимым с многочисленными программами реального режима, что предопределило его низкую популярность; фактически до самого появления микропроцессора 80386 защищённый режим использовался очень ограниченно.

При проектировании процессора 80286 инженерами Intel была допущена ошибка, из-за которой в реальном режиме не происходило «обрезание» адреса до 20 бит, и в результате появилась возможность адресации «лишней» памяти в области адресов 100000h-10FFEFh, общий объём которой составлял 64 Кбайта минус 16 байт. Этой областью, получившей название «Область верхней памяти» (HMA, High Memory Area), немедленно воспользовалась Microsoft: в неё помещалась изрядная часть MS DOS, оставляя свободной для нужд прикладных программ значительную часть базовой памяти. Ошибка же в процессоре была оставлена в целях совместимости с 80286, хотя её можно заблокировать с помощью специальной внешней схемы — вентиля адресной линии A20 (Gate A20), устанавливаемого на системных платах на тот случай, если потребуется обеспечить полную совместимость адресации с процессором 8086.

Микропроцессор 80386 расширил диапазон физических адресов до FFFFFFFFh (4 Гбайта), причём какую-то часть самых старших адресов занимает ПЗУ BIOS, отображающееся также частично и на старшие адреса младшего мегабайта.

В некоторых компьютерах на базе микропроцессора 80486 и во всех, начиная с улучшенного контроллера прерываний APIC (его конфигурационное пространство начинается с адреса FEC00000h и кончается адресом FECFFFFFh). Какая-то часть адресного пространства занята BIOS и операционной системы (исключением является область адресов A0000–BFFFF, отведённая под видеопамять ещё в первых ПК и сохраняемая для совместимости). Наконец, регистры внешних устройств, подключенных к шинам PCI, PCI Express и BIOS и ОС.

Наконец, в старших моделях 32-разрядных микропроцессоров и во всех 64-разрядных (технологии AMD64 и Intel EM64T) объём физического адресного пространства превысил 4 Гбайта и составляет как минимум 64 Гбайта (гарантирована поддержка ширины физического адреса 36 бит, теоретический предел составляет 64 бита, а конкретная разрядность физического адреса зависит от модели процессора).

Подробнее о распределении адресного пространства памяти современных ПК можно прочитать в разделе Карта распределения памяти.

Способы определения объёма памяти

BIOS предосталяет программам ряд вызовов, предназначенных для определения объёма и местоположения доступной оперативной памяти. На современных компьютерах практическую ценность имеют только два из них — один для определения объёма стандартной памяти и другой для определения объёма и местоположения всей памяти вообще.

Определение объёма стандартной памяти

Хотя физически все 640 Кбайт теоретически возможной стандартной памяти на любом современном компьютере имеются, пользоваться всей этой памятью без ограничений нельзя.

Во-первых, младший килобайт (адреса от нуля до 3FFh включительно) используется под векторы прерываний реального режима процессора, поэтому изменять эту область можно лишь с определёнными предосторожностями, точно понимая, что и для чего делается. В частности, не следует переопределять без особой нужды векторы для прерываний от 0 до 31 включительно (00h-1Fh), поскольку они установлены BIOS'ом и обеспечивают вызов его функций.

Во-вторых, сразу за первым килобайтом начинается 256-байтовая область данных BIOS, к которой примыкает ещё одна 256-байтовая область, используемая отдельными функциями BIOS (адреса от 400h до 5FFh включительно). Изменение информации в этих областях может привести к неработоспособности тех или иных функций BIOS, поэтому без особой нужды эти адреса лучше не трогать вообще, хотя, если имеется понимание, для чего служат те или иные байты в этих областях, их можно изменять для достижения каких-то своих целей.

Наконец, все современные BIOS имеют область расширенных данных реального режима, находящуюся в старших адресах стандартной памяти. Например, BIOS системной платы TYAN Tiger i7505 (чипсет Intel E7505, поддерживающий два 32-разрядных процессора Xeon семейства Pentium 4, Socket 603/604) резервирует для своих нужд 7 Кбайт, и их изменение приведёт к неработоспособности BIOS.

Наличие области расширенных данных BIOS заставляет программы определять старший адрес стандартной памяти, доступный для свободного использования. С этой целью используется функция INT 12h, существовавшая ещё на первых ПК, на которых она сообщала объём физически имеющейся оперативной памяти.

Функция INT 12h не имеет входных параметров. При возврате из неё в AX будет находиться объём стандартной памяти в килобайтах, начиная с адреса 0. Например, на упомянутой выше системной плате TYAN Tiger i7505 после вызова INT 12h в AX будет десятичное значение 633. Это означает, что программа может использовать под свои нужды стандартную память от адреса 0 до адреса 9E3FFh включительно (об ограничениях на использование адресов от 0 до 5FFh говорилось выше; эти ограничения не зависят от модели материнской платы), а адреса от 9E400h до 9FFFFh используются BIOS для своих нужд, и программа обращаться к ним не должна.

Определение объёма и карты памяти всего ОЗУ

Наиболее правильным методом для определения объёма и адресов имеющейся оперативной памяти на сегодняшний день является следование спецификации ACPI, которой удовлетворяют все сколько-нибудь современные ПК (её первая версия появилась в 1996 году). ACPI предусматривает три способа решения данной задачи, первый из которых предназначен для обычных ПК, второй — для компьютеров, соответствующих стандарту UEFI, а третий — для машин, обеспечивающих «горячее» добавление и удаление модулей памяти. Ниже речь будет идти только о первом способе, поскольку именно он является наиболее распространённым и поддерживается всеми существующими ПК.

Для определения объёма и карты распределения памяти спецификация ACPI предусматривает использование функции E820h прерывания INT 15h. Каждый вызов этой функции возвращает описание одного диапазона адресов оперативной памяти. Чтобы получить полную карту распределения памяти, необходимо вызывать эту функцию многократно, пока не будет получено описание последнего диапазона.

На входе в функцию E820h прерывания INT 15h передаются следующие параметры:

  • EAX — содержит код функции 0000E820h; Некоторые БИОСы требуют чтобы в верхней части eax были нули.
  • EBX — при первом вызове в этом регистре должен находиться нуль. В последующих вызовах здесь находится значение, возвращённое предыдущим вызовом функции и необходимое для продолжения её работы и возврата описания очередного диапазона адресов памяти. Это может быть начальный адрес очередной области, её порядковый номер или любое другое значение — точный смысл этой величины оставлен на усмотрение разработчиков BIOS;
  • ES:DI — указатель области памяти для сохранения очередного описателя диапазона адресов;
  • ECX — размер описателя диапазона адресов. Нынешняя версия стандарта определяет его длину в 24 байта; позже он может быть расширен. Минимально допустимый размер — 20 байтов;
  • EDX — сигнатура 'SMAP'. Используется BIOS'ом для проверки того, что программа действительно вызывает сервис ACPI.

На выходе функция возвращает следующие значения:

  • CF — если флаг сброшен, ошибок при выполнении не возникло. Обычно флаг CF устанавливается при вызове фукции уже после того, как она вернула описатель последнего диапазона адресов. Тем не менее, полагаться на это не стоит, поскольку может привести к странным ошибкам. Например, виртуальная машина ACPI-совместимым BIOS;
  • ES:DI — указатель на описатель диапазона адресов (то же самое значение, что и при вызове функции);
  • ECX — объём информации в байтах, записанной в описатель диапазона (минимум 20 байтов; не превышает длину области под описатель, указанную при вызове функции);
  • EBX — значение, необходимое для получения описателя следующего диапазона адресов; должно в неизменном виде передаваться на вход функции при её очередном вызове. Если при возврате из функции этот регистр содержит нуль, это означает, что получен описатель последнего диапазона адресов.

Формат описателя диапазона адресов, заполняемого функцией E820h прерывания INT 15h:

СмещениеОписание
0Начальный адрес диапазона, младшие 32 бита
4Начальный адрес диапазона, старшие 32 бита
8Длина диапазона, младшие 32 бита
12Длина диапазона, старшие 32 бита
16Тип диапазона (описаны ниже)
20Расширенные атрибуты диапазона (описаны ниже)

Нынешняя версия спецификации ACPI предусматривает следующие типы диапазонов памяти:

ЗначениеМнемоникаОписание
1AddressRangeMemoryДоступная оперативная память
2AddressRangeReservedЗарезервированная область памяти; использоваться программами не должна
3AddressRangeACPIОбласть памяти, занятая таблицами ACPI. Может использоваться операционной системой после того, как информация в этих таблицах станет для неё ненужной
4AddressRangeNVSЗарезервированная область памяти; использоваться программами не должна. В отличие от диапазона типа 2, эта область памяти должна сохраняться при «отходе ко сну» и восстанавливаться при «пробуждении»
5AddressRangeUnusableОбласть памяти, содержащая ошибки. Использоваться не должна
другоеUndefinedЗарезервировано для будущего использования. ОС должна рассматривать такие области как зарезервированные и не пытаться их использовать

Двойное слово расширенных атрибутов имеет следующий формат:

>

БитМнемоникаОписание
0AddressRangeEnabledЕсли содержит 0, ОС должна игнорировать этот описатель диапазона адресов (он содержит недействительную информацию)
1AddressRangeNonVolatileЕсли установлен, данный описатель соответствует устойчивой (non-volatile) памяти. Устойчивая память может потребовать уточнения своих характеристик, чтобы ОС могла понять, годится ли такая память для использования в качестве обычного ОЗУ
2-31ReservedЭти разряды зарезервированы для будущего использования

При использовании функции E820h прерывания INT 15h следует учитывать следующие соглашения и ограничения:

    с помощью этой функции возвращает описатели только той памяти, что установлена на системной плате;
  • функция не описывает диапазоны адресного пространства памяти, занятые дополнительными ПЗУ устройств ISA и устройствами, поддерживающими технологию Plug and Play (к таковым отностся все устройства, подключаемые к шинам PCI, PCI Express , а также некоторые устройства для шины ISA), поскольку операционная система имеет другие способы узнать о существовании таких устройств и о занимаемых ими областях памяти;
  • «дыры» в адресном пространстве, предусмотренные чипсетом, но не используемые устройствами, этой функцией возвращаются как зарезервированные области памяти;
  • фиксированные (не настраиваемые с помощью Plug and Play) диапазоны адресов памяти, занимаемые регистрами устройств, установленных на системной плате (например, область, отведённая под APIC), возвращаются функцией как зарезервированные;
  • области адресов, занимаемые ПЗУ BIOS, возвращаются как зарезерированные;
  • функция не описывает стандартные диапазоны адресов, используемые в ПК для определённых целей. Например, она не описывает диапазон A0000–BFFFF, отведённый под видеопамять. Однако диапазон E0000–EFFFF может быть включён в список диапазонов, описываемых этой функцией;
  • вся стандартная («нижняя») память считается обычной, доступной для использования ОС, однако разработчик системы должен учитывать ограничения на её использование, описанные в предыдущем подразделе.

Наконец, заметим, что в некоторых BIOS в этой функции встречались ошибки. Так, однажды, когда спецификация ACPI ещё только-только «поступала на вооружение», пришлось столкнуться с ситуацией, когда эта функция вообще не сообщила о наличии диапазона памяти от 0 до BFFFFh, хотя в соответствии со стандартом должна была бы описать его как доступный для использования (тип диапазона 1). Бывали случаи, когда эта функция не упоминала о диапазоне адресов, занимаемом APIC. Поэтому разработчикам ОС не следует полагаться на эту функцию для определения областей, назначение которых и так хорошо известно и не зависит от модели системной платы.

Альтернативные способы определения объёма памяти свыше 1 Мбайта

Хотя все сколько-нибудь современные ПК соответствуют стандарту ACPI, в «древних» моделях он не поддерживался. В такой ситуации определить объём ОЗУ свыше 1 Мбайта можно несколькими другими способами, кратко описанными ниже. Тем не менее, пользоваться ими следует только в том случае, если ACPI не поддерживается.

Заметим, что вызов перечисленных ниже функциях в ACPI-совместимых системах вполне возможен, однако они вернут объём памяти, в который не включены служебные области, отражённые функцией E820h как недоступные для использования операционной системой.

Функция 88h прерывания INT 15h сообщает объём имеющейся оперативной памяти свыше 1 Мбайта, т.е. начиная с адреса 100000h.

  • CF — если функция выполнена успешно, будет сброшен;
  • AX — объём памяти свыше 1 Мбайта, выраженный в килобайтах.

Эта функция обычно сообщает объём памяти, лежащей в диапазоне от 1 Мбайта до 16 Мбайт, то есть в области адресов от 10000h до FFFFFFh включительно. Чтобы узнать объём памяти свыше 16 Мбайт, можно воспользоваться функцией C7h прерывания INT 15h.

Функция C7h прерывания INT 15h появилась в компьютерах IBM PS/2 поздних серий и является необязательной. Она возвращает карту распределения памяти.

  • AH — код функции C7h;
  • DS:SI — адрес карты памяти (см. ниже).
  • CF — если функция завершилась успешно, будет сброшен.

Формат карты памяти:

СмещениеРазмерОписание
0WORDРазмер области, отведённой под карту памяти, не включая это слово
2DWORDОбъём в килобайтах локальной памяти в пределах от 1 до 16 Мбайт
6DWORDОбъём в килобайтах локальной памяти в пределах от 16 Мбайт до 4 Гбайт
10DWORDОбъём в килобайтах системной памяти в пределах от 1 до 16 Мбайт
14DWORDОбъём в килобайтах системной памяти в пределах от 16 Мбайт до 4 Гбайт
18DWORDОбъём в килобайтах кэшируемой памяти в пределах от 1 до 16 Мбайт
22DWORDОбъём в килобайтах кэшируемой памяти в пределах от 16 Мбайт до 4 Гбайт
26DWORDОбъём в килобайтах перед началом несистемной памяти в пределах от 1 до 16 Мбайт
30DWORDОбъём в килобайтах перед началом несистемной памяти в пределах от 16 Мбайт до 4 Гбайт
34WORDНачальный сегмент крупнейшего свободного блока в диапазоне адресов от C0000h до DFFFFh
36WORDРазмер крупнейшего свободного блока
38DWORDЗарезервировано

Функция E801h прерывания INT 15h является основной альтернативой описанному в предыдущем подразделе механизму определения памяти в ACPI-совместимых системах.

  • CF — сброшен, если функция выполнена успешно;
  • AX — размер памяти в диапазоне от 1 до 16 Мбайт, выраженный в килобайтах;
  • BX — размер памяти свыше 16 Мбайт, выраженный в блоках по 64 Кбайта;
  • CX — размер сконфигурированной памяти в диапазоне от 1 до 16 Мбайт, выраженный в килобайтах;
  • DX — размер сконфигурированной памяти свыше 16 Мбайт, выраженный в блоках по 64 Кбайта.

Некоторые BIOS возвращают в регистрах AX и BX нули; в этом случае следует пользоваться объёмом памяти, указанным в регистрах CX и DX.

В настоящее время широкое распространение получил новый международный стандарт Unicode, который отводит на каждый символ два байта (16 бит). С его помощью можно закодировать 2 16 = 65536 различных символов.

Информация в кодировке Unicode передается со скоростью 128 знаков в секунду в течение 32 минут. Какую часть дискеты ёмкостью 1,44Мб займёт переданная информация?

Дано: v = 128 символов/сек; t = 32 минуты=1920сек; i = 16 бит/символ

nсимв = v*t = 245760 символов V=nсимв*i = 245760*16 = 3932160 бит = 491520 байт = 480 Кб = 0,469Мб, что составляет 0,469Мб*100%/1,44Мб = 33% объёма дискеты

Расчёт иформационного объема растрового изображения

Расчёт информационного объёма растрового графического изображения (количества информации, содержащейся в графическом изображении) основан на подсчёте количества пикселей в этом изображении и на определении глубины цвета (информационного веса одного пикселя).

Итак, для расчёта информационного объёма растрового графического изображения используется формула (3):

где Vpic – это информационный объём растрового графического изображения, измеряющийся в байтах, килобайтах, мегабайтах; K – количество пикселей (точек) в изображении, определяющееся разрешающей способностью носителя информации (экрана монитора, сканера, принтера); i – глубина цвета, которая измеряется в битах на один пиксель; kсжатия – коэффициент сжатия данных, без сжатия он равен 1.

Глубина цвета задаётся количеством битов, используемым для кодирования цвета точки. Глубина цвета связана с количеством отображаемых цветов формулой N=2 i , где N – это количество цветов в палитре, i – глубина цвета в битах на один пиксель.

1) В результате преобразования растрового графического изображения количество цветов уменьшилось с 256 до 16. Как при этом изменится объем видеопамяти, занимаемой изображением?

Дано: N1 = 256 цветов; N2 = 16 цветов;

N1 = 256 = 2 8 ; i1 = 8 бит/пиксель

N2 = 16 = 2 4 ; i2 = 4 бит/пиксель

Ответ: объём графического изображения уменьшится в два раза.

2) Сканируется цветное изображение стандартного размера А4 (21*29,7 см). Разрешающая способность сканера 1200dpi и глубина цвета 24 бита. Какой информационный объём будет иметь полученный графический файл?

Дано: i = 24 бита на пиксель; S = 21см*29,7 см D = 1200 dpi (точек на один дюйм)

Используем формулы V = K*i;

S = (21/2,54)*(29,7/2,54) = 8,3дюймов*11,7дюймов

K = 1200*8,3*1200*11,7 = 139210118 пикселей

V = 139210118*24 = 3341042842бита = 417630355байт = 407842Кб = 398Мб

Ответ: объём сканированного графического изображения равен 398 Мегабайт

Урок " Вычисление объема графического файла"

Качество кодирования изображения зависит от :

Вычисление объема графического файла

Информации о состоянии каждого пикселя хранится в закодированном виде в памяти ПК. Из основной формулы информатики можно подсчитать объем памяти, необходимый для хранения одного пикселя:

Для получения черно-белого изображения пиксель может находится в одном из состояний: светится – белый (1) , не светится – черный (0) .

Следовательно, для его хранения требуется 1 бит.


Глубина цвета I

Количество отображаемых цветов N

2 24 = 16 777 216

32 (true color)2 32 = 4 294 967 296

Вычисление объема растрового изображения

Задача 1. Вычислить объем растрового черно-белого изображения размером 128 х 128.

Решение: 1) N = 2 = 2 i , i = 1

2) V = K * i = ( 1 28 x 1 28 x 1 бит) / (8 * 1024) = 2 Кбайт.

Задача 2. Вычислить объем растрового изображения размером 128 х 128 и палитрой 256 цветов.

Решение: 1) N = 256 = 2 i , i = 8

2) V = K * i = ( 1 28 x 1 28 x 8 бит) / (8 х 1024) = 16 Кбайт.

Задача 3. Рассчитайте объём видеопамяти, необходимой для хранения графического изображения, занимающего весь экран монитора с разрешением 640 х 480 и палитрой из 65 536 цветов.

Решение: 1) N = 65536 = 2 i , i = 16

2) V = K * i = ( 640 x 4 8 0 x 16 бит) / (8 х 1024) = 6 00 Кбайт.

Ответ: 6 00 Кбайт

Вычисление объема векторного изображения

Задача 3. Вычислить объем векторного изображения.

Решение: Векторное изображение формируется из примитивов и хранится в памяти в виде формулы:

RECTANGLE 1, 1, 100, 100, Red, Green

Подсчитаем количество символов в этой формуле: 36 символов (букв, цифр, знаков препинания и пробелов)

Презентация к уроку

Загрузить презентацию (586,8 кБ)

Внимание! Предварительный просмотр слайдов используется исключительно в ознакомительных целях и может не давать представления о всех возможностях презентации. Если вас заинтересовала данная работа, пожалуйста, загрузите полную версию.

  1. Обобщение и систематизация знаний по теме: “Измерение объёма информации”.
  2. Формирование практических навыков нахождения количества информации, используя различные подходы к измерению информации.

Обобщение и систематизация знаний, развитие приёмов умственной деятельности, памяти, внимания, умения сопоставлять, анализировать, делать выводы. Повышение информационной культуры учащихся, интереса к предмету “Информатика”, развитие познавательного интереса учащихся, ответственности, самостоятельности, самооценки, умения работать в коллективе.

Тип урока: Обобщение и систематизации знаний.

ТСО и наглядность: проектор, распечатки с заданиями, презентация по ходу урока.

Единицы измерения информации.

В 1 бит можно записать один двоичный символ.
1 байт = 8 бит.
В кодировке ASCII в один байт можно записать один 256 символьный код.
В кодировке UNICODE один 256 символьный код занимает в памяти два байта.
1 килобайт = 1024 байт
1 мегабайт = 1024 килобайт
1 гигабайт = 1024 мегабайт
1 терабайт = 1024 гигабайт

Формула Хартли 2 i = N где i– количество информации в битах, N – неопределенность

Таблица степеней двойки, которая показывает сколько информации можно закодировать с помощью i – бит

12481632641282565121024

Ход урока

I. Организационный момент.

II. Актуализация знаний.

Провожу проверку знаний, полученных на предыдущем уроке.

III. Применения и закрепления полученных знаний.

Обсуждаются темы из различных областей знаний, возможные для использования на уроке. Конкретизируется и выдается задание по теме урока с учетом воспитательных и развивающих целей урока.

(Решение задач. На доске проецируется слайд с заданием.)

1) На железнодорожном вокзале 8 путей отправления поездов. Вам сообщили, что ваш поезд прибывает на четвёртый путь. Сколько информации вы получили?

3) Загадано число из промежутка от 1 до 64. Какое количество информации необходимо для угадывания числа из этого промежутка?

4) Какой объём памяти на диске требуется для записи 5 страниц текста набранного на компьютере, если каждая страница содержит 30 строк по 70 символов в строке?

Самостоятельная работа. Ученики выполняют тестовые задания

Карточки с тестом на 2 варианта. С последующей взаимопроверкой и обсуждением.

1 вариант
Шахматная доска состоит 8 столбцов и 8 строк. Какое минимальное количество бит потребуется для кодирования координат одного шахматного поля?

1) 4; 2) 5; 3) 6; 4) 7.

Два текста содержат одинаковое количество символов. Первый текст составлен в алфавите мощностью 16 символов, а второй текст – в алфавите из 256 символов. Во сколько раз количество информации во втором тексте больше, чем в первом?

1) 12; 2) 2; 3) 24; 4) 4.

Какое минимальное количество бит потребуется для кодирования положительных чисел, меньших 60?

1) 1; 2) 6; 3) 36; 4) 60.

Двое играют в “крестики-нолики” на поле 4 на 4 клетки. Какое количество информации получил второй игрок, узнав ход первого игрока?

1) 1 бит; 2) 2 бита; 3) 4 бита; 4) 16 бит.

2 вариант
Мощность алфавита равна 256. Сколько Кбайт памяти потребуется для сохранения 160 страниц текста, содержащего в среднем 192 символа на каждой странице?

1) 10; 2) 20; 3) 30; 4) 40.

Мощность алфавита равна 64. Сколько Кбайт памяти потребуется, чтобы сохранить 128 страниц текста, содержащего в среднем 256 символов на каждой странице?

1) 8; 2) 12; 3) 24; 4) 36.

1) 4; 2) 8; 3) 16; 4) 32.

Руководство покупателя игровой видеокарты

Производительность видеокарты определяется не только мощностью самого GPU. Любому чипу нужен большой объём выделенной памяти с высокой пропускной способностью при записи и чтении различных данных: текстур, вершин, содержимого буферов и т. п. Даже самый мощный видеочип можно «придушить» слишком малым объёмом видеопамяти, да ещё с медленным доступом, поэтому характеристики устанавливаемых микросхем памяти также являются одними из важнейших параметров современных видеокарт.

Микросхемы памяти, количество которых на некоторых моделях видеокарт достигает 24 штук, обычно располагаются на печатной плате вокруг видеочипа, на одной или обеих сторонах. В некоторых случаях для них не используется даже пассивное охлаждение, но часто применяется общий кулер, охлаждающий и GPU и память, а иногда и отдельные радиаторы. Вот так микросхемы памяти выглядят на GeForce GTX 590 со снятым устройством охлаждения:


Современные видеокарты оснащаются различным объемом локальной видеопамяти, но обычно он начинается от 512 МБ и может достигать 3 ГБ на один GPU (с удвоением объёма на двухчиповых видеокартах). Чаще всего на видеокарты low-end и mid-end сейчас ставят 1 ГБ памяти, а на high-end — 1,5-3 гигабайта на чип, но есть и исключения. Так, карты самого низкого уровня могут иметь и 512 МБ более быстрой памяти GDDR5, и 1-2 ГБ медленной DDR3.

Чем больше выделенной памяти установлено на видеокарте, тем больше данных (тех же текстур, вершин и буферов) можно хранить в ней, не используя медленный доступ к ОЗУ компьютера. Причем, больше всего места занимают текстуры и различные буферы, а вот собственно геометрические данные обычно не слишком объёмны. Рассмотрим скриншоты из довольно старой игры Call of Duty 2 с разными установками качества текстур:





В этой игре, как и во многих других, автоматически настраивается качество текстур под имеющийся объём текстурной памяти. В данном случае режим Extra автоматически выставляется на видеокартах с 320-1024 МБ памяти, High или Normal — на 256 МБ, в зависимости от настроек разрешения и уровня антиалиасинга, а Low — на самых слабых GPU с 128 МБ. И даже если вы выставите максимальные настройки вручную, то на видеокарте с недостаточным объёмом видеопамяти для хранения ресурсов будет использоваться часть системной памяти, что приведет к серьёзным "тормозам" и отсутствию комфорта и плавности в игре.

В последнее время рост требований к объёму видеопамяти сильно замедлился, и виновато в этом засилие мультиплатформенных игр. Современные игровые консоли имеют лишь по 512 МБ памяти и поэтому разработчики игр ориентируются именно на этот уровень. Конечно, в ПК-версиях игр зачастую предусмотрены как текстуры большего разрешения, так и высокое разрешение рендеринга, что требует куда большего объёма видеопамяти. Но всё равно, объём памяти в 1 ГБ до сих пор вполне приемлем в подавляющем большинстве случаев. Кроме экстремальных настроек сглаживания и разрешения, вроде MSAA 8x и 2560×1600, соответственно.

Но даже уже устаревшим мультиплатформенным играм не хватает 512 МБ, они довольно требовательны к объёму видеопамяти, занимая до 600-700 МБ. И всё же, на данный момент минимальным необходимым объёмом локальной памяти для игровых видеокарт мы считаем 1 ГБ. Он же является и оптимальным для большинства моделей. Кроме видеокарт NVIDIA, имеющих 320- и 384-битную шины памяти — у них объём видеопамяти ещё более подходящий — 1280-1536 МБ. Но для топовых моделей уже востребован и больший объём, порядка 2 ГБ, что предлагают видеокарты серии Radeon HD 6900, и 3 ГБ, ставящиеся на некоторые модификации GeForce GTX 580. Тем более, что видеокарту всегда лучше подбирать с небольшим запасом.

К слову, в случае интегрированных видеоядер и устаревших дискретных видеокарт бывает так, что указанное на коробке количество видеопамяти не равно объему установленных на плату микросхем. Такое было ранее в случае видеоплат low-end, работающих с частью системной памяти при помощи технологий TurboCache (NVIDIA) и HyperMemory (ATI):

В характеристиках видеокарт с поддержкой этих технологий в маркетинговых целях указывался объём памяти (в т. ч. и часть ОЗУ), который может использоваться видеочипом, равный 128 МБ, в то время как в реальности на них установлен меньший объем — 16-32 МБ. Поэтому всегда нужно внимательно читать материалы нашего сайта, чтобы не попадаться на подобные ухищрения в будущем. Но пока что можно жить спокойно, ведь сейчас в таких видеокартах уже нет никакого смысла, их нишу прочно заняли интегрированные чипсеты.

С имеющимися разновидностями видеокарт по объёму локальной памяти мы разобрались, но ведь объём памяти для видеокарт — это еще не всё, и даже зачастую не главное! Очень часто бывает так, что на дешёвые видеокарты ставят очень большое количество памяти, чтобы нарисовать красивые цифры на их коробках и в описаниях готовых систем (поэтому их так любят сборщики — вспомните слоганы вроде «4 ядра, 4 гига»), с расчетом на то, чтобы они лучше продавались. Но для слабых видеокарт в повышенном объёме памяти никакого смысла нет, они ведь всё равно не смогут выдавать приемлемую частоту кадров на высоких настройках, в которых и используется большие объёмы текстур и геометрии.

Продавцы часто используют объём видеопамяти в качестве основной характеристики видеокарт, и это вводит в заблуждение простых покупателей, плохо знакомых с реальным положением дел. Сравним производительность решений с разным количеством видеопамяти на примере двух одинаковых видеокарт Radeon HD 6950, имеющих единственное отличие — на первой из них установлено 1 ГБ видеопамяти, а на второй — 2 ГБ. Любой менеджер по продажам скажет вам, что вторая видеокарта значительно лучше первой, кроме случаев, когда в магазине есть модели только с 1 ГБ памяти и редчайших случаев честных и компетентных продавцов. А что получается на самом деле? Есть ли великая разница? Посмотрим на цифры, полученные в игре Metro 2033, являющейся одной из наиболее требовательных:

Как видите, в большинстве игровых режимов объём видеопамяти влияет на производительность не слишком значительно — разница не превышает 5-6%. То же самое получается и в других играх, даже современных и ПК-эксклюзивных (что сейчас большая редкость). Лишь в сверхвысоком разрешении и с максимальными настройками качества появляется значимая разница, когда модель с 1 ГБ заметно отстаёт от более дорогой карты с 2 ГБ памяти — на 27%.

Казалось бы — вот оно, ради чего нужно платить деньги! Но посмотрите на цифры кадров в секунду при разрешении 2560×1600 — разве 18,9 FPS можно назвать комфортной скоростью? Нет. Что 14,9 FPS, что 18,9 FPS — эти цифры одинаково не имеют практического смысла, никто не будет играть с настолько дёрганой частотой смены кадров. Поэтому, с некоторым допущением, можно считать, что разница в объёме видеопамяти между 1 ГБ и 2 ГБ сейчас незначительно сказывается на скорости рендеринга, и сравнивать даже топовые видеокарты по количеству памяти не нужно.

Но речь шла только об объёмах памяти выше 1 ГБ. Да и 512 МБ для плат нижнего ценового диапазона сейчас вполне достаточны. В этих случаях, примеры, когда объём памяти начинает сказываться на производительности, весьма редки. Разработчики игровых приложений рассчитывают используемые в играх ресурсы и графические настройки так, чтобы все данные входили в локальную видеопамять наиболее распространённых на рынке видеокарт. То есть, сейчас это уровни 512 МБ (для low-end) и от 1 ГБ для всех остальных видеокарт, включая и высокие разрешения и максимальные настройки качества. А если видеопамяти меньше, то современные игры или будут тормозить или даже не дадут выставить максимальные настройки.

Но этот расчётный объем видеопамяти у игровых разработчиков растет, даже несмотря на засилие консолей и мультиплатформы. Ещё пару лет назад было вполне достаточно 512-640 МБ, а теперь появились проекты, в которых этот объёма недостаточно. Но даже среди самых последних игр таких проектов пока мало, но они уже появляются. Поэтому, в случае не слишком большой разницы в цене между видеокартами с разными объёмами памяти при прочих равных условиях (частота и ширина шины), следует покупать модель с большим объёмом. Но без погони за цифрами — никакой low-end карте не поможет пара гигабайт медленной DDR3-памяти. Такой объём ей на данный момент просто не нужен. Зато важен другой параметр, о котором мы поговорим далее.

Подробнее о пропускной способности памяти

Ещё одна важная характеристика, о которой мы уже писали — это пропускная способность памяти (ПСП), которая зависит как от частоты работы памяти, так и от ширины шины. Этот параметр определяет количество данных, которые теоретически можно передать в память или из памяти за единицу времени. Другими словами, это скорость, с которой графическое ядро может записывать и считывать различные данные в локальную видеопамять. Соответственно, чем быстрее считываются текстурные, геометрические и прочие данные, и чем быстрее записываются в буфер рассчитанные пиксели, тем выше будет общая производительность.

Пиковая пропускная способность памяти рассчитывается довольно просто — это произведение «эффективной» частоты памяти на количество данных, передаваемых за такт (ширина шины памяти). Например, для GeForce GTX 580 с шиной 384 бит и частотой видеопамяти 1002(4008) МГц, ПСП будет равна:

1002 МГц × 4 (передача данных с учетверённым темпом) × 48 (384/8 байт за такт) ≈ 192,4 ГБ/с

Естественно, что последнее нигде широко не афишируется. Для производителя узкая шина и дешевле в производстве, и позволяет удобнее масштабировать производительность решений линейки. И две одинаковые видеокарты с одинаковыми частотами, но с разной шириной шины памяти, будут сильно отличаться по производительности. Та, у которой ПСП больше, может обрабатывать большее количество данных, по сравнению с картой с меньшей разрядностью шины, хотя сами GPU у них совершенно одинаковые.

Рассмотрим очень жизненный пример — модель GeForce GTS 450 с двумя разными типами памяти, GDDR5 на более дорогой модели и DDR3 на дешёвой. Во время выхода на эту видеокарту ставили исключительно быструю GDDR5-память с приличной пропускной способностью. Но когда её время прошло и она спустилась в нижний ценовой диапазон, производители начали экономить, выпуская варианты с DDR3-памятью, которая гораздо дешевле. Результат подобной экономии можно пронаблюдать на следующей диаграмме:

Как видите, всё очень печально для DDR3-варианта — даже в далеко не самой новой игре разница в различных разрешениях экрана составляет от 50 до 70%! То есть, мощность GPU во всех протестированных условиях ограничена медленной видеопамятью. Модель с DDR3 просто не может считывать и записывать данные с теоретически возможной скоростью. Таким образом производители вместе с компанией NVIDIA снизили себестоимость модели, спустив её ещё ниже в бюджетный сегмент.

Когда Вы покупаете флешку «известной и надежной» фирмы, вопроса о её реальном объёме не возникает. Указано, что она на 32 Гб — будет 32 Гб. Указано 64 — будет 64. С китайскими флешками (в том числе и приобретенных на Aliexpress) всё не так однозначно. Да, они существенно дешевле. Но наряду с экономией, существует вероятность, что приобретая флешку на 64 Гб (на корпусе которой будет указан именно этот объём), Вы получите накопитель с реальным объемом 32 Гб, а может быть и всего 8 Гб.


Чтобы избежать такой ситуации, я раньше при покупке новой флешки записывал на нее фильмы до заполнения всего заявленного объема. Затем открывал каждый фильм и смотрел воспроизводится ли он (просматривал начало и конец фильма). Если все фильмы открывались — все в порядке. Если, допустим, несколько последних фильмов не воспроизводятся — значит реальный объем флешки меньше и он соответствует примерно суммарному объему файлов фильмов, которые полностью воспроизводились.

Распаковываем архив, запускаем утилиту, переходим на английский язык (знатокам немецкого переход на английский не требуется).


Тестировать я буду флешку, которую брал на Aliexpress и только что получил. Морально был готов к тому, что реальный объем флешки может в реальности оказаться меньше (забегая чуть вперед скажу, что проверка утилитой подтвердила «честный» объем флешки и маркировка 64 Гб соответствует действительности).

Операционная система определила доступный объём флешки в 57,9 Гб.

  • В открывшемся окне утилиты кликаем на «Select terget» и выбираем флешку, которую необходимо протестировать.
  • Далее кликаем на «Write+Vetify», чем запускаем процесс тестирования реального объёма флешки.
  • Утилита на первом этапе записывает на флешку свои файлы (размером 1 Гб каждый), а затем пытается считать их. Весь процесс тестирования у меня занял чуть более 37-ми минут (27:43 минуты на запись и 9:48 минут на чтение). После процесса проверки выдается отчет.

К моей великой радости реальный объём флешки оказался 59,376 Гб (понятно, что ровно 64 Гб он быть просто и не мог). Заодно получаем информацию о реальной скорости записи на флешку и скорости чтения с флешки. Данный продавец с Aliexpress оказался порядочным. Всё! Можно записывать файлы на флешку в полном объеме и не волноваться, что файлы в самый нужный момент могут просто не открыться.

А вот пример отчета утилиты о том, что якобы 16 Гб флешка имеет реальный объем 8 Гб.


Согласитесь, что какой бы объем не был указана на флешке или в описании лота при покупке, знать ее реальный объем просто необходимо.

Кстати, скриншоты данной утилиты будут доказательством для Aliexpress при открытии спора и возврата денег за флешку, если продавец обманул Вас с её реальным объёмом.

Читайте также: