Який максимальний об'єм оперативної пам’яті я можу використовувати для конкретного обладнання


26

У мене ноутбук Asus U31SD з процесором i5-2430M . На сайті Asus йдеться про те, що максимальна оперативна пам'ять становить 8 ГБ, але Intel каже, що мій процесор підтримує 16 ГБ. Яку максимальну оперативну пам’ять я можу використовувати в цій системі під Ubuntu?


3
Підводячи підсумок того, що всі говорять, ваш ноутбук може використовувати лише 8 Гб оперативної пам’яті через обмеження материнської плати. Ви можете переконатися в цьому, подивившись на це питання: askubuntu.com/questions/140322 / ...
reverendj1

усім, я хотів би зазначити, що компанія, що виробляє пам'ять, "corsair", має локатор пам'яті, який може вам загалом сказати, якою є максимальна кількість оперативної пам’яті, яку може використовувати ваша система. Ви також можете прочитати технічні листи для вашої модельної системи, шукаючи їх в Інтернеті, і це покаже вам максимальну оперативну пам'ять, яку ви можете використовувати.
Томас Уорд

@Владар часу: будь-яке посилання?
0xC0000022L

Finder / конфігуратор пам'яті Corsair для системи, на яку посилається питання: www2.corsair.com/configurator/… || Corsair Memory Finder (стартова сторінка): corsair.com/us/learn_n_explore (Вони будуть рекламувати свої продукти, але я можу використовувати це як загальну базу для пошуку напівточних специфікацій для максимальної пам’яті
Thomas Ward

Відповіді:


29

Обмеження насправді між вашим обладнанням (підтримка пам'яті материнської плати та кількістю слотів у ньому) та версією Ubuntu (32 біт, 32 біт + PAE, x32ABI, 64 біт)

Якщо у вас є материнська плата, яка підтримує максимум 4 Гб, не має значення, якщо ви використовуєте 32 біт, 32 біт PAE або 64 біт, оскільки у вас буде ліміт обладнання 4 Гб.

Але якщо ви купуєте материнську плату, яка підтримує більший об'єм пам'яті, ви можете пограти з версіями Ubuntu, які мають таку максимально підтримувану пам'ять:

Ubuntu 32 біт - 4 Гб оперативної пам’яті

Ubuntu 32 Bit + PAE (розширення фізичної адреси) - 64 Гб оперативної пам’яті

Ubuntu x32ABI - 4 Гб оперативної пам’яті (Це для 32-бітної архітектури, зміненої з 64-бітовими вдосконаленнями, що працюють на 64-бітовому апаратному забезпеченні. Це ще не доступно.)

Ubuntu 64 біт - МНОГО! (Насправді 2 ^ 64), але через обмеження обладнання та реальних комп'ютерів ліміт становить близько 1 ТБ (1024 ГБ оперативної пам’яті)

Тож питання про обмеження пам’яті слід використовувати, коли ви використовуєте більше 4 Гб оперативної пам’яті. У цьому випадку вам знадобиться або 32-бітний PAE, або 64-бітний, який підтримує дійсно великі розміри пам'яті.

Також зауважте, що якщо у вас зараз є, наприклад, 4 ГБ, і ви купуєте 16 ГБ оперативної пам’яті, не потрібно перевстановлювати Ubuntu або робити якісь зміни. Просто змініть спогади, і Ubuntu повинен читати і працювати з ними поза коробкою. Конфігурація не потрібна. Якщо у вас є 32 біт з 4 ГБ оперативної пам’яті і ви встановлюєте 16 ГБ або оперативну пам’ять, Ubuntu автоматично зміниться з 32 біт на 32 біт PAE. Я можу поручитися за це, оскільки на початку цього року я перейшов з 4 ГБ до 16 ГБ.

Ось посилання на дуже вдале пояснення Ubuntu щодо пам’яті в 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

ОНОВЛЕННЯ - Забув додати, що деякі материнські плати мають оновлення BIOS, які дозволяють, виправити або підвищити максимально підтримувану пам'ять. Наприклад, у деяких материнських плат Intel раніше були проблеми з максимальною підтримкою. Оновлення BIOS виправило це. Інші материнські плати мали підтримку 4 Гб через проблему з BIOS, після оновлення вони мали підтримку більше 4 ГБ.

Крім того, порівнюючи Максимально підтримувану пам'ять для процесора та материнської плати, максимум, який ви можете мати, - це мінімум будь-якого з них. Так, наприклад:

СЛУЧАЙ 1
Максимально підтримувана пам'ять процесора - 16 Гб
Материнська плата Максимально підтримувана пам'ять - 8 ГБ
Ваша максимально підтримувана пам'ять - 8 ГБ (Тому що це найменше значення між процесором та материнською платою)

СЛУЧАЙ 2
Максимально підтримувана пам'ять процесора - 16 Гб
материнської плати Максимально підтримувана пам'ять - 32 ГБ
Ваша максимально підтримувана пам'ять - 16 ГБ (Тому що це найменше значення між процесором та материнською платою)

СЛУЧАЙ 3
CPU Максимально підтримувана пам'ять - 16 Гб
Материнська плата Максимально підтримувана пам'ять - 64 ГБ
Ваша максимально підтримувана пам'ять - 16 Гб (Тому що це найнижче значення між процесором і материнською платою)

Причина цього відношення пам’яті пам’яті до процесора полягає в технічних модифікаціях від Intel з останніми основними процесорами.

Тож у вашому випадку у вас є материнська плата, яка підтримує 8 ГБ, і процесор, який підтримує 16 ГБ. Це означає, що максимум, який ви можете мати, - це 8 Гб, який ви можете використовувати залежно від кількості слотів на материнській платі. У цього Asus у вас два слота, а це означає, що ви можете мати два 4 Гб оперативної пам’яті, щоб заповнити максимум 8 Гб.

Детальніше про x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (Рекомендую читати коментарі для легкого вивчення пояснень щодо обмеження пам'яті)

Google - http://sites.google.com/site/x32abi/

Нарешті, з Ubuntu 12.04 всі 32-бітові версії Ubuntu поставляються з PAE, активованим за замовчуванням, тому всі 32-бітові підтримують максимум 64 ГБ оперативної пам’яті. Якщо ви використовуєте версію 12.04 і хочете знати, яку архітектуру використовувати, тепер ви знаєте, що можете використовувати будь-яку з них, дотримуючись певних рекомендацій:

  • Якщо у вас 512 Мбайт оперативної пам’яті або менше, настійно рекомендується використовувати 32 біт

  • Якщо у вас менше 4 ГБ оперативної пам’яті, але більше 512 МБ, рекомендується використовувати 32 біт (але ви все одно можете використовувати 64 біт)

  • Якщо у вас є 4 Гб оперативної пам’яті, рекомендується використовувати 32 біт (але ви все одно можете використовувати 64 біт)

  • Якщо у вас від 4 ГБ або оперативної пам’яті та 64 ГБ оперативної пам’яті, ви можете використовувати або 32 біт, або 64 біт, але рекомендується використовувати 64 біт.

  • Якщо у вас більше 64 ГБ оперативної пам’яті, вам потрібно використовувати 64 біт


Луїс, ти впевнений у обмеженні 4 Гб в x32? Це було б сумно. Я прочитав у статті (німецький журнал), що x32 підтримує більше 4 ГБ. А як щодо ПАЕ?
турбо

@turbo - Це дуже гарне запитання, яке знадобило мені час. Я відповідаю 4 Гб через цю частину пояснення "Що таке x32abi?": X32 ABI дозволяє запускати програми в 64-бітному режимі з 32-бітовими покажчиками. Оскільки він працює з 32 бітовими вказівниками, це означає, що максимальна пам'ять, з якою він може реально використовувати для роботи, становить 4 Гб. Звичайно, я не знаю, чи існує PAE-режим x32abi, але оскільки це спосіб виконувати 32-бітові програми, щоб скористатися деякими перевагами 64-бітного без використання подвійного таранного завдання для завдань, я зробив висновок, що він обмежений 32-бітним до 4 ГБ оперативної пам’яті.
Луїс Альварадо

1
Насправді ліміт на 64 біт становить 2 ^ 48 байт, а x32 - однаковий, просто обмежений 4 ГБ на процес , для процесів x32. x32 запускає 64-бітове ядро, тому він може запускати деякі повноцінні 64-бітні програми, але x32 створює більшість програм для використання лише 32 біт.
psusi

6

Для 32-бітового теоретичного обмеження становить 2 ^ 32 = 4096 МБ, але від Ubuntu 12.04 на PAE (Physical Address Extension) увімкнено за замовчуванням ліміт 2 ^ 36 = 64 ГБ.

Для 64 біт це повинно бути 2 ^ 64 = 16 777 216 ТБ (так це Терабайт) теоретично. Насправді об'єм оперативної пам’яті обмежений 2 ^ 48 ака 256 ТБ оперативної пам’яті.

Оскільки теоретичні межі реально не можуть бути досягнуті у звичайному ноутбуці, фактичним обмеженням є кількість слотів пам’яті (як правило, 1-2) у вашому ноутбуці та підтримка чіпсетом. 8-16 Гб тут реалістично, якщо ви готові платити серйозні гроші за 8 ГБ модулів.


Тож я можу сміливо купувати 2x 8 Гб модулі та очікувати, що вони спрацюють? (Я бігаю на 64 біт, на даний момент з 8 ГБ оперативної пам’яті)
кронд

Ну безпечно ...; P Інші ноутбуки з чіпами Intel HM65 Express підтримують 16 Гб (Asus G74SX-TZ293V), так що так.
турбо

6

Щойно я купив додаткові 8 Гб, щоб поп-версію в моєму U31SD, всього 12 Гб Незважаючи на сторінку специфікації Asus, яка говорить, що 8 ГБ - це межа, це працює чудово. Пройшов memtest86 і його видно 64-бітний Ubuntu.

У мене встановлено останнє оновлення біографії, не впевнений, чи це має значення.

FYI, вихід sudo dmidecode -t 16показників Maximum Capacity: 16 GB.


1

Це обмеження на материнській платі, а не на процесорі. Процесор може підтримувати до 16 Гб, але якщо материнська плата може займати лише 8 ГБ, то це ваша межа.

У Ubuntu, якщо ви працюєте з 32-розрядною версією, то ваш ліміт - 4 ГБ, а якщо ви працюєте з 64-розрядною версією - це набагато вище (точно не пам'ятаю, але це набагато вище 16 ГБ.

Але ви завжди будете обмежені вашим обладнанням. Ви завжди повинні порівнювати ліміт материнської плати та ліміт процесора та приймати найменше значення як обмеження для ПК.


0

У вашому конкретному випадку 8 Гб припадає на те, що ваша материнська плата не підтримує більше такої кількості оперативної пам’яті.

Але сам Ubuntu підтримує 4 ГБ макс для 32-бітового, 64 ГБ на 32-бітному ПАЕ і 128 ГБ на 64-бітному (хоча теоретично кришка набагато вища для 64-бітного).


0

виникло багато питань, що визначає розмір вказівника. в основному, як правило, ви можете сказати, що це архітектура процесора,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Для адреси 8 ГБ оперативної пам’яті вам потрібно 8,589,934,592 відображення та покажчик розміру 4 байти не можуть відповідати всім можливим значенням. тому я не можу мати більше 4 Гб оперативної пам’яті для архітектури x86.

Однак є й інші можливості:

Обсяг оперативної пам’яті не обмежений архітектурою (32 або 64 біт). Архітектура вирішує лише, скільки пам’яті може бути адресовано одночасно ОС і програмами, що працюють на ній. На 32-розрядній машині, тобто машині з 32-бітовою шиною пам'яті, ОС і програми можуть "бачити" лише 4 ГБ пам'яті. Але це не означає, що є лише 4 ГБ оперативної пам’яті. Якщо виробник передбачив це, ви можете мати 16 ГБ або 4х4 ГБ оперативної пам’яті. У цьому випадку з'являться ще 2 "приховані" рядки адреси, а також буде чітко закодована логіка для визначення рівнів цих 2 рядків, вибираючи таким чином будь-яку з доступних 4 Гб оперативної пам’яті - 00 01 10 11. Ці "приховані" біти адреси не використовуються програмними шарами, тому для цих шарів вони можуть використовувати лише 4-байтовий покажчик. Кількість цих "прихованих"

Це лише один приклад. Від постачальника залежить, як вони вирішать забезпечити додаткову оперативну пам’ять.

Дивись також:

У звичайному випадку вказівник досить великий, щоб вмістити більше адрес, ніж є одиниці пам'яті в системі. Це вводить можливість того, що програма може спробувати отримати доступ до адреси, яка не відповідає одиниці пам'яті, або тому, що встановлено недостатньо пам'яті (тобто поза діапазоном доступної пам'яті) або архітектура не підтримує такі адреси. Перший випадок, у певних платформах, таких як архітектура Intel x86, можна назвати помилкою сегментації (segfault). Другий випадок можливий у поточній реалізації AMD64, де покажчики мають 64 бітну довжину, а адреси поширюються лише на 48 біт. Там покажчики повинні відповідати певним правилам (канонічним адресам), тому якщо неконанічний покажчик буде відмежований, процесор викликає загальну помилку захисту.

З іншого боку, деякі системи мають більше одиниць пам'яті, ніж є адреси. У цьому випадку для використання різних частин пам'яті в різний час застосовується більш складна схема, така як сегментація пам'яті або пейджинговий виклик. Останні втілення архітектури x86 підтримують до 36 біт адрес фізичної пам'яті, які були відображені в 32-бітовий лінійний адресний простір через механізм пейджингового ПЕЕ. Таким чином, одночасно може бути доступна лише 1/16 можливої ​​загальної пам'яті. Іншим прикладом в тій же родині комп'ютерів був 16-бітний захищений режим процесора 80286, який, хоча і підтримував лише 16 Мбіт фізичної пам'яті, може отримати доступ до 1 Гб віртуальної пам'яті, але поєднання 16-бітової адреси та сегмента регістри зробили доступ до більш ніж 64 Кб в одній структурі даних громіздкими.

Щоб забезпечити послідовний інтерфейс, деякі архітектури надають вбудований вхід-вивід з відображенням на пам'ять, який дозволяє деяким адресам посилатися на одиниці пам'яті, а інші - на регістри пристроїв інших пристроїв у комп'ютері. Існують аналогічні поняття, такі як компенсація файлів, індекси масивів та віддалені посилання на об'єкти, які служать одній і тій же цілі, що й адреси для інших типів об'єктів.

(докладніше тут )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.