Як ЦП пише інформацію про таран?


10

Моє запитання полягає в тому, як процесор записує дані в рамковий режим?

Як я розумію, сучасний процесор використовує кеш різних рівнів, щоб прискорити доступ до оперативної пам'яті. Оперативна пам’ять отримує команду для інформації, а потім надсилає в CPU пакет даних, який зберігає необхідні дані (і купу додаткових даних, близьких до адреси, яку хотів процесор) у кеш найвищого рівня, потім процесор прогресивно запитує різні кеші надсилають все менші та менші шматки даних вниз по рівнях кешів, поки вони не перебувають у кеші рівня 1, який потім читається безпосередньо в регістр процесора.

Як цей процес працює, коли процесор записує в пам'ять? Чи комп’ютер йде вниз назад рівнів кешу (у зворотному порядку порівняно з прочитаним)? Якщо так, то що щодо синхронізації інформації в різних кешах з основною пам'яттю? Також, як швидкість операції запису порівняно з прочитаною? Що станеться, якщо я постійно пишу в ОЗУ, наприклад, у випадку з сортуванням відра?

Спасибі заздалегідь,

-Підмітись

Редагувати: Я все ще не отримав відповіді, яку можу повністю прийняти. Я хочу особливо знати про частину синхронізації запису оперативної пам'яті. Я знаю, що ми записуємо в кеш-пам'ять L1 безпосередньо з процесора, і дані пересуваються вниз по кеш-пам'яті, коли ми синхронізуємо різні рівні кешів, і в кінцевому підсумку основна оперативна пам'ять синхронізується з кешем найвищого рівня. Однак, що я хотів би знати, коли КЕШ синхронізуються та сцинокронізуються з основною оперативною пам’яттю та наскільки швидкі їх швидкості стосовно команд зчитування.

Відповіді:


11

Ах, це одне з тих простих питань, на які є дійсно складні відповіді. Проста відповідь - ну, це залежить від того, як було зроблено запис та який тип кешування. Ось корисний праймер про те, як працюють кеші .

Процесори можуть записувати дані різними способами. Без кешування дані зберігаються в пам'яті відразу, і процесор чекає завершення запису. За допомогою кешування CPU зазвичай зберігає дані в порядку програми, тобто якщо програма записує адресу A, то адресу B, тоді пам'ять A записується до пам'яті B, незалежно від кешування. На кешування впливає лише те, коли фізична пам'ять оновлюється, і це залежить від типу використовуваного кешування (див. Вищенаведене посилання). Деякі процесори також можуть зберігати дані не тимчасово, тобто записи можна переупорядкувати, щоб максимально використовувати пропускну здатність пам'яті. Отже, написання в A, потім B, потім (A + 1) може бути перепорядковано на запис до A, потім A + 1 в один порив, потім B.

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

Звичайно, вищесказане орієнтоване на процесори Pentium. Інші процесори можуть робити інші способи. Візьмемо, наприклад, стільниковий процесор PS3. Основна архітектура стільникового процесора - це одне ядро ​​PowerPC з декількома ядрами Cell (на PS3 є вісім комірок, одна з яких завжди відключена для підвищення врожайності). Кожна комірка має свою локальну пам'ять, на зразок кешу L1, який ніколи не записується в системну ОЗП. Дані можуть передаватися між цією локальною оперативною пам’яттю та системною оперативною пам’яттю за допомогою передач DMA (Direct Memory Access). Осередок може отримати доступ до системної ОЗУ та ОЗУ інших комірок, використовуючи те, що здається нормальним, читає і записує, але це просто запускає передачу DMA (тому це повільно і справді слід уникати). Ідея цієї системи полягає в тому, що гра - це не одна програма,

Підводячи підсумок, запис у оперативну пам’ять раніше був дуже простим у дні, коли швидкість процесора відповідала швидкості оперативної пам'яті, але, оскільки швидкість процесора зростала і вводилися кеші, процес став складнішим з багатьма різними методами.

Скізз


2

так, це повернутися назад вниз по рівнях кешу і зберегти в пам'яті, але важлива примітка в системі Multi Processing, кеш поділяється між двома або більше процесорами (ядром), і дані повинні відповідати. Це було зроблено шляхом створення спільного кешу для всіх багатопроцесорних або іншого кешу, але збережіть послідовність за допомогою розділу "Критичний" (якщо дані в одному кеші змінили, це змусить його записати в пам'ять та оновити інший кеш)

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