1

Мой офисный компьютер имеет 8 ядер. Недавно я обновил систему с 4 ГБ ОЗУ (в двух модулях) до 24 ГБ ОЗУ (в шести модулях) и заметил значительное увеличение производительности при работе нескольких ядер. В частности, когда все (или почти все) ядра являются активными и работают программы, которые требуют больше, чем обеспечивает кэш каждого ядра (8 МБ).

Старая и новая RAM имеют одинаковую скорость (FSB 1333 МГц). Поэтому я подозреваю, что это не то, что происходит.

Возможно ли это (некоторые?) Архитектуры ПК позволяют ядрам одновременно получать доступ к оперативной памяти системы, если используемая ими память достаточно "далеко"? Я не уверен, что может означать "далеко друг от друга", но, возможно, есть способ для одного ядра для чтения / записи на карту 1 (или чип 3 на карте 1), в то время как другое ядро может одновременно читать / писать на карту 2 (или чип 1) на карточке 1)? Архитектура ПК (и, возможно, операционные системы) настолько умна?

2 ответа2

3

Ну, есть NUMA. Когда оно используется, каждому ядру присваивается часть оперативной памяти. Так происходит именно то, что вы описали. Один процессор будет работать с выделенной ему ОЗУ, а другой - с другой частью ОЗУ. Некоторые материнские платы даже не обнаружат ОЗУ, если не будет достаточно процессоров, чтобы использовать их все. Я не знаю, так ли это с упомянутым здесь компьютером, но если это компьютер уровня рабочей станции, то это возможно.

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

Итак, представьте массив чисел. Каждый номер представляет ячейку памяти. Допустим, в этом примере упрощенно каждое местоположение имеет размер в один байт. Поэтому, если процессору нужно записать 4 байта, он будет записывать данные в первые 4 ячейки памяти. Обычно это происходит на том же модуле памяти и, вероятно, на том же чипе памяти. Компьютер должен будет ждать завершения каждой операции записи, прежде чем отправлять следующую информацию в память. Если используется перемежение, адреса по-разному отображаются. Если у нас есть компьютер с 4 слотами памяти, адрес 1 будет на первом слоте, 2 на втором, 3 на третьем и 4 на четвертом. Таким образом, когда процессору нужно записать 4 байта, он отправит их по первым 4 адресам памяти, но, поскольку они находятся в разных модулях, ему не нужно ждать завершения каждой операции записи. Вместо этого он отправит данные в первое местоположение, а затем во второе и так далее. Таким образом, к моменту окончания первой операции записи остальные 3 подходят к концу, поэтому данные могут быть записаны в память быстрее.

2

Предполагая, что материнская плата поддерживает трехканальную работу, тогда увеличение производительности, по крайней мере, частично, связано с переходом от двухканального к трехканальному.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .