Как узнать характеристики своего компьютера
Лучшие способы определить установленное оборудование в Windows, macOS и Linux.
Уточнять характеристики своего компьютера обычно приходится при установке требовательных игр или приложений, обновлении драйверов видеокарты, а также апгрейде комплектующих или ремонте. В зависимости от операционной системы это можно сделать несколькими способами. Вот самые популярные из них.
Как узнать характеристики компьютера с Windows
1. Утилита «Сведения о системе»
Если вам достаточно базовой информации о ПК, то проще всего получить её через стандартную утилиту «Сведения о системе». Для этого сделайте правый клик на ярлыке или в окне «Компьютер» («Мой компьютер») в «Проводнике» и выберите «Свойства». Вместо этого можно просто нажать сочетание клавиш Win + Pause / Break. В открывшемся окне будет показан тип процессора, объём оперативной памяти и различная системная информация.
2. Диспетчер устройств
Для полной и детальной картины можно воспользоваться «Диспетчером устройств». В нём отображается абсолютно всё оборудование компьютера, включая внутренние и внешние компоненты — от звуковых карт и дисковых накопителей до мониторов и принтеров.
Открыть утилиту можно из окна «Сведения о системе», кликнув «Диспетчер устройств» в боковом меню. Все компоненты здесь сгруппированы в категории и раскрываются по клику на них. По щелчку на конкретном элементе открываются все данные о нём.
3. Dxdiag
Этот инструмент диагностики также входит в состав Windows. Он покажет в мельчайших подробностях все сведения о системе и комплектующих компьютера: модель, количество ядер процессора, объём оперативной памяти, тип графического адаптера и многое другое.
Источник
Как получить информацию о памяти ПК: скорость, размер, тип, номер и форм-фактор
В Windows 10 понимание всех технических характеристик памяти, также называемой ОЗУ (оперативной памятью), установленной на вашем компьютере, может пригодиться во многих случаях. Например, если ваш компьютер работает медленно из-за требовательных к памяти приложений или игр, добавление большего объема памяти может улучшить общую производительность. А знание спецификаций ОЗУ может помочь определить правильный размер, скорость и марку для покупки совместимого комплекта обновления.
Если у вас возникли проблемы, имя производителя, номер детали и серийный номер могут помочь связаться со службой технической поддержки и устранить проблему. Или заказать точную замену, которая работает с вашей системой. Кроме того, при настройке параметров памяти в базовой системе ввода/вывода (BIOS) или в унифицированном расширяемом интерфейсе прошивки (UEFI) возможность просмотра информации модуля памяти поможет вам понять, правильно ли была применена конфигурация.
Какой бы ни была причина, Windows 10 может предоставить всю информацию о памяти, которую вам нужно знать. И это без необходимости открывать корпус или устанавливать сторонние инструменты.
В этом руководстве по Windows 10 мы расскажем, как определить технические характеристики оперативной памяти, установленной на вашем компьютере, включая производителя, номер детали, серийный номер, скорость, емкость, форм-фактор, тип памяти и т.д.
Примечание. Хотя вы можете получить подробную информацию о конфигурации оперативной памяти вашего устройства, в зависимости от аппаратного обеспечения, некоторые сведения могут быть недоступны.
Информация об оперативной памяти в командной строке
Если вы подозреваете, что диспетчер задач показывает неточную информацию об оперативной памяти, или вы хотите узнать больше деталей, таких как серийный номер, номер детали, производитель и другие сведения о каждом модуле памяти, вы можете использовать эти команды.
Проверка производителя
Чтобы определить компанию (марку), которая произвела модули памяти, установленные на вашем компьютере, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы определить имя производителя памяти и нажмите Enter : wmic memorychip get devicelocator, manufacturer
Проверка кодового названия памяти
Чтобы узнать код каждого модуля памяти, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы определить кодовый номер памяти, и нажмите Enter : wmic memorychip get devicelocator, partnumber
Проверка серийного номера памяти
Чтобы узнать серийный номер каждого модуля карты памяти, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы получить серийный номер для каждой карты памяти, и нажмите Enter : wmic memorychip get devicelocator, serialnumber
Подсказка: в команде вы также можете заменить «devicelocator» на «banklabel», чтобы получить серийный номер, показывающий физическую метку слота, в котором находится память на материнской плате.
Проверка объёма памяти
Используя командную строку, вы можете определить общую емкость для отдельного модуля и всей системы.
Емкость модуля памяти
Чтобы определить емкость каждого модуля памяти, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы узнать объем каждого модуля памяти, и нажмите Enter : wmic memorychip get devicelocator, capacity
Совет: информация отображается в байтах, но вы можете использовать только первые две цифры, чтобы получить примерную емкость в ГБ, или разделить число на 1073741824 (1 гигабайт в байтах), чтобы получить точную информацию.
Общий объём системной памяти
Кроме того, вы можете быстро определить общий объем оперативной памяти, установленной на вашем компьютере, выполнив следующие действия:
- от имени администратора.
Введите следующую команду, чтобы определить общий объем физической памяти, и нажмите Enter : systeminfo | findstr /C:»Полный объем физической памяти»
Проверка скорости памяти
Чтобы подтвердить скорость работы модулей памяти, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы определить скорость памяти, и нажмите Enter : wmic memorychip get devicelocator, speed
Проверка форм-фактора памяти
Чтобы определить, являются ли модули оперативной памяти форм-фактором DIMM или SODIMM, выполните следующие действия:
- от имени администратора.
Введите следующую команду, чтобы определить скорость памяти, и нажмите Enter : wmic memorychip get devicelocator, formfactor
Вот список форм-факторов, которые команда может идентифицировать:
- : неизвестно
- 1: другое
- 2: SIP
- 3: DIP
- 4: ZIP
- 5: SOJ
- 6: Proprietary
- 7: SIMM
- 8: DIMM
- 9: TSOP
- 10: PGA
- 11: RIMM
- 12: SODIMM
- 13: SRIMM
- 14: SMD
- 15: SSMP
- 16: QFP
- 17: TQFP
- 18: SOIC
- 19: LCC
- 20: PLCC
- 21: BGA
- 22: FPBGA
- 23: LGA
- 24: FB-DIMM
Проверка всех деталей памяти
Вышеприведенные команды позволяют определить наиболее важную информацию о модулях. Если вы хотите узнать все подробности, используйте следующие шаги:
- от имени администратора.
Введите следующую команду, чтобы просмотреть все детали памяти и нажмите Enter : wmic memorychip list full
После того, как вы выполните эти шаги, у вас будет огромное количество информации о модулях RAM, установленных на вашем компьютере. Всё это пригодится при устранении неполадок, настройке конфигурации (например, при разгоне) или при планировании обновления системной памяти для повышения производительности.
Источник
Оперативная память
Наверное, каждый из вас слышал такое понятие, но далеко не каждый знает, что такое оперативная память. А ведь от этой крохотной микросхемы во многом зависит наш комфорт работы за компьютером или ноутбуком, потянет ли он новую игру или сложную программу. Если вы решили собрать новый компьютер или модернизировать старый, то правильному выбору данной запчасти стоит уделить повышенное внимание. Прочитав эту статью вы сможете с легкостью справиться с любой задачей.
Содержание:
Для начала дадим определение: оперативная память (оперативное запоминающее устройство — ОЗУ) – это один из главных элементов компьютера, который представляет собой его временную память. А она, в свою очередь, нужна для нормального функционирования всех процессов, программ и приложений. Своё название она получила благодаря быстрой работе и способности создавать условия для мгновенного считывания процессором информации.
От постоянной (к примеру, дисковой) оперативная память отличается тем, что доступ к ней осуществляется значительно быстрее, и разница может достигать сотни тысяч раз. Данные, которые в неё записаны, доступны только при включенном компьютере.
Когда же вы выключаете или перезагружаете свой компьютер, абсолютно все содержимое ОЗУ стирается (обнуляется). Поэтому перед выключением компьютера или перезагрузки всю информацию, подвергнутую изменениям в процессе работы, нужно сохранить на жестком диске или на другом альтернативном запоминающем устройстве.
Само понятие «оперативная память компьютера» нередко обозначает не только микросхемы, составляющие устройства памяти в системе, но сюда также входят понятия размещения и логического отображения. Размещение — это расположение информации определенного типа по определенным адресам памяти в системе. В свою очередь, логическим отображением является способ представления этих адресов на установленных микросхемах. ОЗУ используется в различных устройствах персонального компьютера — от видеоплаты до принтера и сканера.
Типы оперативной памяти и их характеристики
- SDRAM (PC-133) – сегодня является устаревшим видом, крайне редко встречается, но стоит довольно дорого. Компьютеры с этим типом оперативной памяти модернизировать уже не получится.
- DDR SDRAM или DDR (с частотой 200-400 МГц) — также является устаревшим видом ОЗУ, который на сегодняшний момент крайне редко используется . Этот модуль представляет собой 184-контактную плату. Стандартным напряжением для него является напряжение в 2,5 В.
- Далее следует DDR2 – более распространенный сегодня тип, но, тем не менее, уже не являющийся современным. DDR2 (с частотой 533-1200 МГц) делает выборку 4 бита данных за один такт работы процессора, в то время как DDR только 2 бита. Это означает способность передавать при каждом такте в два раза больше информации через ячейки микросхемы. Данный модуль имеет по 120 контактов с двух сторон, а стандартным напряжением для него есть 1,8 В.
- Следующий вид оперативной памяти — DDR3 (частота 800-2400 МГц) — новый тип, который дает возможность делать выборку 8 бит данных за один такт работы процессора. Он также представляет собой 240-контактную плату, но имеет на 40% меньше энергопотребления, чем у DDR2, а рабочее напряжение всего 1,5 В. Такое сравнительно невысокое энергопотребление имеет большое значение для ноутбуков и мобильных устройств. Логично отметить, что чем выше показатели частоты, тем выше скорость работы оперативки.
- DDR4 — самый новый тип, который является следующей ступенькой эволюционного развития. Как все предыдущие ступеньки, данный тип имеет еще большую частоту (от 2133 до 4266 МГц) и меньшее энергопотребление. Также значительно повысилась надежность работы благодаря механизму контроля чётности на шинах адреса и команд. Массовое производство началось лишь во втором квартале 2014 года. Массовое распространение получила в 2016 году после выхода нового поколения процессоров Intel Skylake.
Объём оперативной памяти
Далее остановимся подробнее на следующей важной характеристике оперативной памяти – ее объеме. Вначале следует отметить, что он самым непосредственным образом влияет на количество единовременно запущенных программ, процессов и приложений и на их бесперебойную работу. На сегодняшний день наиболее популярными модулями являются планки с объемом: 4 Гб и 8 Гб (речь идет про стандарт DDR3).
Исходя из того, какая операционная система установлена, а также, для каких целей используется компьютер, следует правильно выбирать и подбирать объем ОЗУ. В большинстве своем, если компьютер используется для доступа к всемирной паутине и для работы с различными приложениями, при этом установлена Windows XP, то 2 Гб вполне достаточно.
Для любителей «обкатать» недавно вышедшую игру и людей, работающих с графикой, следует ставить как минимум 4 Гб. А в том случае, если планируется установка виндовс 7, то понадобится еще больше.
Самым простым способом узнать, какой для вашей системы необходим объем памяти, является запуск Диспетчера задач (путем нажатия комбинации на клавиатуре ctrl+alt+del) и запуск самой ресурсопотребляющей программы или приложения. После этого необходимо проанализировать информацию в группе «Выделение памяти» — «Пик».
Таким образом можно определить максимальный выделенный объем и узнать, до какого объёма её необходимо нарастить, чтобы наш высший показатель умещался в оперативной памяти. Это даст вам максимальное быстродействие системы. Дальше увеличивать необходимости не будет.
Выбор оперативной памяти
Сейчас перейдем к вопросу выбора оперативки, наиболее подходящей конкретно вам. С самого начала следует определить именно тот тип ОЗУ, который поддерживает материнская плата вашего компьютера. Для модулей разных типов существуют разные разъемы соответственно. Поэтому, чтобы избежать повреждений системной платы или непосредственно модулей, сами модули имеют различные размеры.
Об оптимальных объемах ОЗУ говорилось выше. При выборе оперативной памяти следует акцентировать внимание на ее пропускную способность. Для быстродействия системы наиболее оптимальным будет тот вариант, когда пропускная способность модуля совпадает с той же характеристикой процессора.
То есть, если в компьютере стоит процессор с шиной 1333 МГц, пропускная способность которого 10600 Мб/с, то для обеспечения наиболее благоприятных условий для быстродействия, можно поставить 2 планки, пропускная способность которых 5300 Мб/с, и которые в сумме дадут нам 10600 Мб/с.
Однако, следует запомнить, что для такого режима работы модули ОЗУ должны быть идентичны как по объему, так и по частоте. Кроме того, должны быть изготовлены одним производителем. Вот краткий список производителей хорошо себя зарекомендовавших: Samsung, OCZ, Transcend, Kingston, Corsair, Patriot.
Источник
Что такое ОЗУ и как определить тип памяти вашего компьютера
Очень много пользователей компьютера часто задаются вопросом — что такое ОЗУ. Чтобы помочь нашим читателям подробно разобраться с ОЗУ, мы подготовили материал, в котором подробно рассмотрим, где его можно использовать и какие его типы сейчас используются. Также мы рассмотрим немного теории, после чего вы поймете, что собой представляет современная память.
Немного теории
Аббревиатура ОЗУ расшифровывается как — оперативное запоминающее устройство. По сути, это оперативная память, которая в основном используется в ваших компьютерах. Принцип работы любого типа ОЗУ построен на хранении информации в специальных электронных ячейках. Каждая из ячеек имеет размер в 1 байт, то есть в ней можно хранить восемь бит информации. К каждой электронной ячейке прикрепляется специальный адрес. Этот адрес нужен для того, чтобы можно было обращаться к определенной электронной ячейке, считывать и записывать ее содержимое.
Также считывание и запись в электронную ячейку должна осуществляться в любой момент времени. В английском варианте ОЗУ — это RAM. Если мы расшифруем аббревиатуру RAM (Random Access Memory) — память произвольного доступа, то становится ясно, почему считывание и запись в ячейку осуществляется в любой момент времени.
Информация хранится и перезаписывается в электронных ячейках только тогда, когда ваш ПК работает, после его выключения вся информация, которая находится в ОЗУ, стирается. Совокупность электронных ячеек в современной оперативке может достигать объема от 1 ГБ до 32 ГБ. Типы ОЗУ, которые сейчас используются, носят название DRAM и SRAM.
- Первая, DRAM представляет собой динамическую оперативную память, которая состоит из конденсаторов и транзисторов. Хранение информации в DRAM обусловлено наличием или отсутствием заряда на конденсаторе (1 бит информации), который образуется на полупроводниковом кристалле. Для сохранения информации этот вид памяти требует регенерации. Поэтому это медленная и дешевая память.
- Вторая, SRAM представляет собой ОЗУ статического типа. Принцип доступа к ячейкам в SRAM основан на статическом триггере, который включает в себя несколько транзисторов. SRAM является дорогой памятью, поэтому используется, в основном, в микроконтроллерах и интегральных микросхемах, в которых объем памяти невелик. Это быстрая память, не требующая регенерации.
Классификация и виды SDRAM в современных компьютерах
Наиболее распространенным подвидом памяти DRAM является синхронная память SDRAM. Первым подтипом памяти SDRAM является DDR SDRAM. Модули оперативной памяти DDR SDRAM появились в конце 1990-х. В то время были популярны компьютеры на базе процессов Pentium. На изображении ниже показана планка формата DDR PC-3200 SODIMM на 512 мегабайт от фирмы GOODRAM.
Приставка SODIMM означает, что память предназначена для ноутбука. В 2003 году на смену DDR SDRAM пришла DDR2 SDRAM. Эта память использовалась в современных компьютерах того времени вплоть до 2010 года, пока ее не вытеснила память следующего поколения. На изображении ниже показана планка формата DDR2 PC2-6400 на 2 гигабайта от фирмы GOODRAM. Каждое поколение памяти демонстрирует все большую скорость обмена данными.
На смену формата DDR2 SDRAM в 2007 году пришел еще более быстрый DDR3 SDRAM. Этот формат по сегодняшний день остается самым популярным, хоть и в спину ему дышит новый формат. Формат DDR3 SDRAM сейчас применяется не только в современных компьютерах, но также в смартфонах, планшетных ПК и бюджетных видеокартах. Также память DDR3 SDRAM используется в игровой приставке Xbox One восьмого поколения от Microsoft. В этой приставке используется 8 гигабайт ОЗУ формата DDR3 SDRAM. На изображении ниже показана память формата DDR3 PC3-10600 на 4 гигабайта от фирмы GOODRAM.
В ближайшее время тип памяти DDR3 SDRAM заменит новый тип DDR4 SDRAM. После чего DDR3 SDRAM ждет судьба прошлых поколений. Массовый выпуск памяти DDR4 SDRAM начался во втором квартале 2014 года, и она уже используется на материнских платах с процессорным разъемом Socket 1151. На изображении ниже показана планка формата DDR4 PC4-17000 на 4 гигабайта от фирмы GOODRAM.
Пропускная способность DDR4 SDRAM может достигать 25 600 Мб/c.
Как определить тип оперативки в компьютере
Определить тип оперативной памяти, которая находится в ноутбуке или в стационарном компьютере можно очень легко, используя утилиту CPU-Z. Эта утилита является абсолютно бесплатной. Загрузить CPU-Z можно с ее официального сайта www.cpuid.com. После загрузки и установки, откройте утилиту и перейдите ко вкладке «SPD». На изображении ниже показано окно утилиты с открытой вкладкой «SPD».
В этом окне видно, что в компьютере, на котором открыта утилита, установлена оперативная память типа DDR3 PC3-12800 на 4 гигабайта от компании Kingston. Таким же образом можно определить тип памяти и ее свойства на любом компьютере. Например, ниже изображено окно CPU-Z с ОЗУ DDR2 PC2-5300 на 512 ГБ от компании Samsung.
А в этом окне изображено окно CPU-Z с ОЗУ DDR4 PC4-21300 на 4 ГБ от компании ADATA Technology.
Данный способ проверки просто незаменим в ситуации, когда нужно проверить на совместимость память, которую вы собираетесь приобрести для расширения ОЗУ вашего ПК.
Подбираем оперативку для нового системника
Чтобы подобрать оперативную память к определенной компьютерной конфигурации, мы опишем ниже пример, из которого видно как легко можно подобрать ОЗУ к любой конфигурации ПК. Для примера мы возьмем такую новейшую конфигурацию на базе процессора Intel:
- Процессор — Intel Core i7-6700K;
- Материнская плата — ASRock H110M-HDS на чипсете Intel Н110;
- Видеокарта — GIGABYTE GeForce GTX 980 Ti 6 ГБ GDDR5;
- SSD — Kingston SSDNow KC400 на 1000 ГБ;
- Блок питания — Chieftec A-135 APS-1000C мощностью 1000 Вт.
Чтобы подобрать оперативку для такой конфигурации, нужно перейти на официальную страницу материнской платы ASRock H110M-HDS — www.asrock.com/mb/Intel/H110M-HDS.
На странице можно найти строку «Supports DDR4 2133», которая гласит, что для материнской платы подходит оперативка с частотой 2133 MHz. Теперь перейдем в пункт меню «Specifications» на этой странице.
В открывшейся странице можно найти строку «Max. capacity of system memory: 32GB», которая гласит, что наша материнская плата поддерживает до 32 гигабайт ОЗУ. Из данных, которые мы получили на странице материнской платы можно сделать вывод, что для нашей системы приемлемым вариантом будет оперативка такого типа — два модуля памяти DDR4-2133 16 ГБ PC4-17000.
Мы специально указали два модуля памяти по 16 ГБ, а не один на 32, так как два модуля могут работать в двухканальном режиме.
Вы можете установить вышеописанные модули от любого производителя, но лучше всего подойдут эти модули ОЗУ. Они представлены на официальной странице к материнской плате в пункте «Memory Support List», так как их совместимость проверена производителем.
Из примера видно, как легко можно узнать информацию по поводу рассматриваемого системника. Таким же образом подбирается оперативная память для всех остальных компьютерных конфигураций. Также хочется отметить, что на рассмотренной выше конфигурации можно запустить все новейшие игры с самыми высокими настройками графики.
Например, на этой конфигурации запустятся без проблем в разрешении 4K такие новые игры, как Tom Clancy’s The Division, Far Cry Primal, Fallout 4 и множество других, так как подобная система отвечает всем реалиям игрового рынка. Единственным ограничением для такой конфигурации будет ее цена. Примерная цена такого системника без монитора, включая два модуля памяти, корпус и комплектующие, описанные выше, составит порядка 2000 долларов.
Классификация и виды SDRAM в видеокартах
В новых видеокартах и в старых моделях используется тот же тип синхронной памяти SDRAM. В новых и устаревших моделях видеокарт наиболее часто используется такой тип видеопамяти:
- GDDR2 SDRAM — пропускная способность составляет до 9,6 ГБ/с;
- GDDR3 SDRAM — пропускная способность составляет до 156.6 ГБ/с;
- GDDR5 SDRAM — пропускная способность составляет до 370 ГБ/с.
Чтобы узнать тип вашей видеокарты, объем ее ОЗУ и тип памяти, нужно воспользоваться бесплатной утилитой GPU-Z. Например, на изображении ниже изображено окно программы GPU-Z, в котором описаны характеристики видеокарты GeForce GTX 980 Ti.
На смену популярной сегодня GDDR5 SDRAM в ближайшем будущем придет GDDR5X SDRAM. Это новая классификация видеопамяти обещает поднять пропускную способность до 512 ГБ/с. Ответом на вопрос, чего хотят добиться производители от такой большой пропускной способности, достаточно прост. С приходом таких форматов, как 4K и 8K, а также VR устройств производительности нынешних видеокарт уже не хватает.
Разница между ОЗУ и ПЗУ
ПЗУ расшифровывается как постоянное запоминающее устройство. В отличие от оперативной памяти, ПЗУ используют для записи информации, которая будет храниться там постоянно. Например, ПЗУ используют в таких устройствах:
- Мобильные телефоны;
- Смартфоны;
- Микроконтроллеры;
- ПЗУ БИОСа;
- Различные бытовые электронные устройства.
Во всех описанных устройствах выше, код для их работы хранится в ПЗУ. ПЗУ является энергонезависимой памятью, поэтому после выключения этих устройств вся информация сохранится в ней — значит это и является главным отличием ПЗУ от ОЗУ.
Подводим итог
В этой статье мы кратко узнали все подробности, как в теории, так и на практике, касающиеся оперативного запоминающего устройства и их классификации, а также рассмотрели, в чем разница между ОЗУ и ПЗУ.
Также наш материал будет особенно полезен тем пользователям ПК, которые хотят узнать свой тип ОЗУ, установленный в компьютере, или узнать какую оперативку нужно применять для различных конфигураций.
Надеемся, наш материал окажется интересным для наших читателей и позволит им решить множество задач, связанных с оперативной памятью.
Источник
Определение объёма памяти
Одной из основных задач для операционной системы на этапе её загрузки и настройки является определение конфигурации компьютера, и в частности, выяснение объёма и диапазонов адресов имеющейся оперативной памяти.
Набор механизмов определения объёмов памяти развивался вместе с ПК, однако происходило это довольно хаотично, поэтому на сегодняшний день имеется целый ряд способов для решения данной задачи.
Содержание
История
Первые IBM PC обладали небольшим объемом памяти — от 16 или 32 килобайт и выше. Связано это было как с высокой стоимостью и низкой ёмкостью тогдашних микросхем ОЗУ, так и со скромными потребностями первых приложений, по большей части портированных с 8-разрядных персональных компьютеров.
Фирма 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:
Смещение | Описание |
Начальный адрес диапазона, младшие 32 бита | |
4 | Начальный адрес диапазона, старшие 32 бита |
8 | Длина диапазона, младшие 32 бита |
12 | Длина диапазона, старшие 32 бита |
16 | Тип диапазона (описаны ниже) |
20 | Расширенные атрибуты диапазона (описаны ниже) |
Нынешняя версия спецификации ACPI предусматривает следующие типы диапазонов памяти:
Значение | Мнемоника | Описание |
1 | AddressRangeMemory | Доступная оперативная память |
2 | AddressRangeReserved | Зарезервированная область памяти; использоваться программами не должна |
3 | AddressRangeACPI | Область памяти, занятая таблицами ACPI. Может использоваться операционной системой после того, как информация в этих таблицах станет для неё ненужной |
4 | AddressRangeNVS | Зарезервированная область памяти; использоваться программами не должна. В отличие от диапазона типа 2, эта область памяти должна сохраняться при «отходе ко сну» и восстанавливаться при «пробуждении» |
5 | AddressRangeUnusable | Область памяти, содержащая ошибки. Использоваться не должна |
другое | Undefined | Зарезервировано для будущего использования. ОС должна рассматривать такие области как зарезервированные и не пытаться их использовать |
Двойное слово расширенных атрибутов имеет следующий формат:
>
Бит | Мнемоника | Описание |
AddressRangeEnabled | Если содержит 0, ОС должна игнорировать этот описатель диапазона адресов (он содержит недействительную информацию) | |
1 | AddressRangeNonVolatile | Если установлен, данный описатель соответствует устойчивой (non-volatile) памяти. Устойчивая память может потребовать уточнения своих характеристик, чтобы ОС могла понять, годится ли такая память для использования в качестве обычного ОЗУ |
2-31 | Reserved | Эти разряды зарезервированы для будущего использования |
При использовании функции 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.
- AH — содержит код функции 88h.
- CF — если функция выполнена успешно, будет сброшен;
- AX — объём памяти свыше 1 Мбайта, выраженный в килобайтах.
Эта функция обычно сообщает объём памяти, лежащей в диапазоне от 1 Мбайта до 16 Мбайт, то есть в области адресов от 10000h до FFFFFFh включительно. Чтобы узнать объём памяти свыше 16 Мбайт, можно воспользоваться функцией C7h прерывания INT 15h.
Функция C7h прерывания INT 15h появилась в компьютерах IBM PS/2 поздних серий и является необязательной. Она возвращает карту распределения памяти.
- AH — код функции C7h;
- DS:SI — адрес карты памяти (см. ниже).
- CF — если функция завершилась успешно, будет сброшен.
Формат карты памяти:
Смещение | Размер | Описание |
WORD | Размер области, отведённой под карту памяти, не включая это слово | |
2 | DWORD | Объём в килобайтах локальной памяти в пределах от 1 до 16 Мбайт |
6 | DWORD | Объём в килобайтах локальной памяти в пределах от 16 Мбайт до 4 Гбайт |
10 | DWORD | Объём в килобайтах системной памяти в пределах от 1 до 16 Мбайт |
14 | DWORD | Объём в килобайтах системной памяти в пределах от 16 Мбайт до 4 Гбайт |
18 | DWORD | Объём в килобайтах кэшируемой памяти в пределах от 1 до 16 Мбайт |
22 | DWORD | Объём в килобайтах кэшируемой памяти в пределах от 16 Мбайт до 4 Гбайт |
26 | DWORD | Объём в килобайтах перед началом несистемной памяти в пределах от 1 до 16 Мбайт |
30 | DWORD | Объём в килобайтах перед началом несистемной памяти в пределах от 16 Мбайт до 4 Гбайт |
34 | WORD | Начальный сегмент крупнейшего свободного блока в диапазоне адресов от C0000h до DFFFFh |
36 | WORD | Размер крупнейшего свободного блока |
38 | DWORD | Зарезервировано |
Функция E801h прерывания INT 15h является основной альтернативой описанному в предыдущем подразделе механизму определения памяти в ACPI-совместимых системах.
- CF — сброшен, если функция выполнена успешно;
- AX — размер памяти в диапазоне от 1 до 16 Мбайт, выраженный в килобайтах;
- BX — размер памяти свыше 16 Мбайт, выраженный в блоках по 64 Кбайта;
- CX — размер сконфигурированной памяти в диапазоне от 1 до 16 Мбайт, выраженный в килобайтах;
- DX — размер сконфигурированной памяти свыше 16 Мбайт, выраженный в блоках по 64 Кбайта.
Некоторые BIOS возвращают в регистрах AX и BX нули; в этом случае следует пользоваться объёмом памяти, указанным в регистрах CX и DX.
Источник