Досі в цій серії статей про те, чим кремнієві комп’ютери Apple Mac відрізняються від своїх попередників, я зосереджувався на процесорах, вбудованих в їхню мікросхему. У цій статті ми розглянемо, як вони зберігають дані в пам’яті та на внутрішніх твердотільних накопичувачах, що є основними факторами, які визначають як продуктивність, так і енергоспоживання.
Об’єднана пам’ять
Ядра процесора мають невеликі обсяги локальної кеш-пам’яті в інструкції M1:
Кеш-пам’ять інструкцій рівня 1 (L1) об’ємом 192 КБ (P ядер) і кеш-пам’ять даних L1 об’ємом 128 КБ в кожному ядрі для негайного використання;
кеш L2 розміром 12-48 МБ (P ядер), який використовується спільно в кожному кластері ядер.
Кеш-пам’ять для E-ядер менша за кеш-пам’ять для P-ядер. Кеш інструкцій L1 є напрочуд великим, щоб підтримувати виконання інструкцій позачергово, як засіб забезпечення продуктивності та ефективності ядер CPU.
На додаток до співпроцесорів, таких як нейронний движок і AMX, які можуть мати власну локальну кеш-пам’ять, в мікросхемі є ще понад 20 ядер для підтримки функцій, які раніше виконував контролер управління системою (SMC), функцій вводу/виводу і портів, а також процесор захищеного анклаву (SEP). Більшість з них, швидше за все, мають власну невелику локальну кеш-пам’ять.
Основна частина пам’яті в мікросхемах серії M об’єднана в єдине сховище з кешем системного рівня (Last Level Cache) об’ємом від 8-96 МБ для мікросхем M1 від базового до Ultra. У той час як кеш-пам’ять інтегрована в саму мікросхему, уніфікована пам’ять встановлюється в корпус мікросхеми, що мінімізує її фізичний шлях підключення, але робить її заміну практично неможливою. Таким чином, основна пам’ять розподіляється між ядрами CPU, GPU, AMX та іншими процесорами всередині чіпа.
Коли графічні процесори розвинулися з простих контролерів дисплеїв, вони придбали власну пам’ять, щоб замінити спеціальну відеопам’ять (VRAM), яка зазвичай була підключена таким чином, щоб вона була доступна як процесору, який записував до неї, так і відеоконтролеру, який записував її вміст на дисплей. Високошвидкісна пам’ять, необхідна для графічних процесорів, тоді була дорогою і обмеженою в об’ємі, тому було цілком логічно, що вона була відокремлена від основної пам’яті. Розплатою за це було те, що передача даних між основною пам’яттю та пам’яттю графічного процесора займала багато часу і вимагала ретельної синхронізації. Оскільки пам’ять загального призначення ставала швидшою, деякі графічні процесори були розроблені для спільного використання з основною пам’яттю.
Це дуже відрізняється від низькопродуктивних графічних процесорів, які стали популярними у багатьох моделях ноутбуків. Вони також використовують основну пам’ять, але вона виділена для їх використання, і вони не поділяють пам’ять з процесором.
Таким чином, уніфікована пам’ять має перевагу в тому, що дані не потрібно переміщувати між основною, графічною чи будь-якою іншою виділеною пам’яттю, окрім локальних кешів, але їх не можна використовувати за межами чіпа, що робить підтримку зовнішніх графічних процесорів набагато складнішою. Поки що невідомо, чи зможе будь-який кремнієвий Mac від Apple підтримувати зовнішній графічний процесор, і чи буде він мати якісь переваги над інтегрованим в чіп.
Як багато?
Об’єднана пам’ять має значний вплив на використання пам’яті, особливо у порівнянні з попередніми Intel Mac з окремою пам’яттю графічного процесора. Вимоги до пам’яті WindowServer, наприклад, працюють по-іншому. Цей процес відповідає за компонування всіх вікон та інших елементів інтерфейсу macOS у зображення, що відображається, – завдання, яке перетинається з можливостями графічного процесора. Ви можете отримати уявлення про складність цих відмінностей у звітах Apple про зберігання ресурсів у комп’ютерах Intel та Apple на кремнієвих процесорах Mac.
Як наслідок, не існує простого правила, за яким можна було б оцінити вимоги до уніфікованої пам’яті, виходячи з вимог, що спостерігаються в комп’ютерах Intel Mac. У більшості випадків додавання основної та графічної пам’яті Intel призведе до невиправдано високих вимог до об’єднаної пам’яті. Наприклад, заміна iMac Pro з 32 ГБ оперативної пам’яті та 8 ГБ відеокарти не повинна вимагати мінімум 40 ГБ. З іншого боку, ті, хто стверджує, що вимоги до об’єднаної пам’яті в моделях Intel нижчі, ніж до основної пам’яті, так само неправі: хоча це може бути так, перехід з 32 ГБ Intel Mac на 16 або 24 ГБ кремнієвого Mac від Apple, швидше за все, призведе до збільшення використання простору підкачки віртуальних машин на диску.
Apple вже давно не любить використовувати спеціальну пам’ять ECC (код, що виправляє помилки) і пропонує її лише як опцію на деяких моделях Mac високого класу. Невідомо, чи контролери пам’яті в кремнієвих мікросхемах Apple здатні керувати пам’яттю ECC, а в поєднанні з модулями оперативної пам’яті, що вбудовуються в корпус мікросхеми, здається малоймовірним, що Apple має намір пропонувати її в якості опції в майбутньому.
Внутрішня пам’ять
Як і їхні попередники, оснащені T2, кремнієві комп’ютери Apple Mac оснащені внутрішньою твердотільною пам’яттю, хоча використовувані модулі відрізняються від внутрішніх SSD, що продаються окремо. Останні постачаються з повноцінними контролерами, що відповідають за управління флеш-пам’яттю NAND, включаючи кеші/буфери, вирівнювання зносу, управління битими блоками та інші функції. У внутрішній пам’яті T2 та кремнієвих накопичувачах Apple функції контролера SSD розподілені між самою флеш-пам’яттю NAND, встановленою поза чипом, і додатковими ядрами, які Apple називає Fabric, що знаходяться всередині самого кремнієвого чипа Apple. Серед найважливіших функцій, що знаходяться за межами SSD, є шифрування, яке виконується апаратно, всередині мікросхеми.
Іноді помилково стверджують, що в кремнієвих Mac T2 і Apple внутрішня пам’ять розпаяна, але це не так для двох модельних лінійок, Mac Studio і Pro, у яких внутрішню пам’ять можна замінити. Заміна не є простою, оскільки вимагає наявності компонентів NAND флеш-пам’яті, які не є загальнодоступними, а також переведення комп’ютера в режим DFU для повного відновлення за допомогою IPSW-образу macOS і повної прошивки перед тим, як комп’ютер знову можна буде запустити.
Кінцевим результатом є достатньо висока продуктивність внутрішнього накопичувача, яка відповідає продуктивності решти кремнієвих Mac від Apple. Теоретично, зовнішні SSD-накопичувачі можуть відповідати швидкості внутрішнього, але оскільки їх можна підключити лише через шину Thunderbolt 3/4, на практиці вони обмежені швидкістю читання та запису близько 3 ГБ/с, порівняно з типовою швидкістю внутрішнього SSD-накопичувача 6-7 ГБ/с, і це також з повним шифруванням.
До того, як Apple випустила Big Sur, вважалося, що внутрішня пам’ять комп’ютерів T2 Mac шифрує весь диск, незалежно від того, увімкнено FileVault чи ні. Шифрування виконується апаратно, а отже, не потребує додаткових витрат. З моменту впровадження підписаного системного тому в macOS 11 компанія Apple заявляла, що її завантажувальний знімок не шифрується, оскільки він вже користується захистом хеш-дерева, що робить шифрування непотрібним. Однак том даних на внутрішньому сховищі повністю зашифрований, а опція FileVault доступна для захисту ключа шифрування тома паролем користувача. Це означає, що увімкнення FileVault не призводить до зниження продуктивності.
Нарешті, на відміну від комп’ютерів Intel Mac, кремнієві моделі Apple покладаються на внутрішню пам’ять для завантаження. Це пов’язано з тим, що передзавантажувальна “прошивка” зберігається у прихованих розділах або контейнерах на внутрішньому SSD-накопичувачі. Після запуску процесу завантаження з невеликого ПЗП управління переходить спочатку до низькорівневого завантажувача (LLB), а потім до iBoot, який передає управління ядру macOS. Кожен етап цього процесу перевіряє наступний, в безпечному завантаженні, і UEFI не задіяний на жодному етапі. Завантажувальні зовнішні диски не можуть містити і не містять LLB або iBoot, для цього Mac повинен покладатися на доступ до своєї внутрішньої пам’яті. Це гарантує цілісність процесу і неможливість його продовження, якщо внутрішня пам’ять не в змозі його підтримати. Однак це забезпечує повну безпеку при запуску з зовнішнього диска, тому ця опція не вимагає жодних компромісів у безпеці, як в комп’ютерах Intel Mac з мікросхемою T2.
Концепції
- Ядра процесора мають власний кеш L1, з великим кешем інструкцій для підтримки позачергового виконання, і спільний кеш L2 в межах кластера.
- Основна пам’ять є уніфікованою, тому використовується ядрами CPU, GPU, AMX та іншими. Це гарантує, що дані не потрібно копіювати, наприклад, з основної пам’яті в пам’ять GPU.
- Оцінка необхідного обсягу пам’яті не має простих правил, але, швидше за все, він буде меншим, ніж основна пам’ять + пам’ять графічного процесора, і трохи меншим, ніж лише основна пам’ять в Intel Mac.
- Внутрішній SSD-накопичувач відрізняється від звичайних SSD-модулів, оскільки деякі функції контролера виконуються всередині мікросхеми.
- Внутрішні SSD зазвичай більш ніж удвічі швидші за зовнішні накопичувачі та краще узгоджуються із загальною продуктивністю кремнію Apple. Шифрування для FileVault взагалі не впливає на продуктивність.
- Кремнієві комп’ютери Apple Mac повинні починати процес завантаження з внутрішнього твердотільного накопичувача, навіть якщо вони завантажуються з системи на зовнішньому диску. Це гарантує цілісність безпечного завантаження.
Оригінал статті Ґоварда Уоклі на сайті eclecticlight.co
Інші статті циклу: