Как ЦП пишет информацию для трамбовки?

Мой вопрос, как ЦП пишет данные для трамбовки?

Из того, что я понимаю, разные уровни использования современного ЦП кэша для ускорения доступа поршня. RAM получает команду для получения информации и затем отправляет пакет данных к ЦП, который хранит необходимые данные (и набор дополнительных данных, которые были близко к адресу требуемым ЦП) в кэш высшего уровня, ЦП затем прогрессивно просит, чтобы различные кэши отправили меньшие и меньшие блоки данных вниз уровни кэшей, пока это не находится в кэше уровня 1, который затем читается непосредственно в регистр ЦП.

Как это обрабатывает работу, когда ЦП пишет в память? Компьютер идет назад вниз уровни кэша (в обратном порядке, как сравнено в чтение)? Если так, что относительно того, чтобы синхронизировать информацию в различных кэшах с оперативной памятью? Кроме того, как скорость операции записи по сравнению с чтением один? Что происходит, если я непрерывно пишу в RAM, такой как в случае блочной сортировки?

Заранее спасибо,

- Faken

Править: Я все еще действительно не получил ответ, который я могу полностью принять. Я хочу знать особенно о части синхронизации записи RAM. Я знаю, что мы пишем в кэш L1 непосредственно от ЦП и что данные снижены уровни кэша, поскольку мы синхронизируем разные уровни кэшей, и в конечном счете основная RAM синхронизируется с самым высоким кэшем уровня. Однако то, что я хотел бы знать, - КОГДА делают кэши синхронизируются и scynocronize с основной RAM и как быстро их скорости относительно команд чтения.

10
задан 30.01.2011, 14:21

2 ответа

А-ч, это - один из тех простых вопросов, которые имеют действительно сложные ответы. Простой ответ, ну, в общем, он зависит от того, как запись была сделана и какой кэширование, там. Вот полезная краткая информация о том, как работают кэши.

Центральные процессоры могут записать данные различными способами. Без любого кэширования данные хранятся в памяти сразу, и ЦП ожидает записи для завершения. С кэшированием ЦП обычно хранит данные в порядке программы, т.е. если программа запишет для обращения затем адрес B затем, то память A будет записана в перед памятью B, независимо от кэширования. Кэширующийся только влияет, когда физическая память обновляется, и это зависит от типа используемого кэширования (см. вышеупомянутую ссылку). Некоторые центральные процессоры могут также хранить данные невременно, то есть, записи могут быть переупорядочены, чтобы максимально использовать пропускную способность памяти. Так, запись в A, затем B, затем (A+1) могла быть переупорядочена к записи в затем A+1 в единственном пакете, затем B.

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

Конечно, вышеупомянутое приспособлено к процессорам Pentium. Другие процессоры могут сделать вещи другими способами. Возьмите, например, процессор Cell PS3. Базовая архитектура Ячейки, ЦП является одним ядром PowerPC с несколькими ядрами Ячейки (на PS3 существует восемь ячеек, одна из которых всегда отключается для улучшения урожаев). Каждая ячейка имеет свою собственную локальную память, вид кэша L1, который никогда не пишется в системную RAM. Данные могут быть переданы между этой локальной RAM и системной RAM с помощью DMA (Прямой доступ к памяти) передачи. Ячейка может получить доступ к системной RAM и RAM другого использования ячеек, что, кажется, нормальные чтения и записи, но это просто инициировало передачу DMA (таким образом, это медленно и действительно должно избежаться). Идея позади этой системы состоит в том, что игра не является всего одной программой, но и многими меньшими программами, которые объединяются, чтобы сделать то же самое (если Вы знаете *, отклоняют затем, это похоже на программы командной строки передачи по каналу для достижения более сложных задач).

Таким образом, запись в RAM раньше была действительно проста в дни, когда скорость ЦП соответствовала скорости RAM, но поскольку увеличенная скорость ЦП и кэши была представлена, процесс стал более сложным со многими различными методами.

Skizz

11
ответ дан 07.12.2019, 12:52

да это - движение назад вниз уровни кэша, и сохраните к памяти, но важное примечание находится в Многопроцессорной системе, кэш совместно используется 2 или больше процессорами (ядро), и данные должны быть последовательными, это было сделано, делают совместно использованный кэш для всего многопроцессорного или другого кэша, но сохраняют непротиворечивость при помощи раздела Critical (если данные в одном кэше изменили его, вынуждают это записать в памяти и обновить другой кэш),

2
ответ дан 07.12.2019, 12:52

Теги

Похожие вопросы