Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Начнем с главного: вопреки распространенному заблуждению процессор взаимодействует с оперативной памятью не напрямую, а через специальный контроллер, подключенный к системной шине процессора приблизительно так же, как и остальные контроллеры периферийных устройств. Причем механизм обращения к портам ввода/вывода и к ячейкам оперативной памяти с точки зрения процессора практически идентичен. Процессор сначала выставляет на адресную шину требуемый адрес и в следующем такте уточняет тип запроса: происходит ли обращение к памяти, портам ввода/вывода или подтверждение прерывания. В некотором смысле оперативную память можно рассматривать как совокупность регистров ввода/вывода, каждый из которых хранит некоторое значение.
Механизм взаимодействия памяти и процессора
выглядит приблизительно так: когда процессору требуется получить содержимое
ячейки оперативной памяти, он, дождавшись освобождения шины, через механизм
арбитража захватывает шину в свое владение (что занимает один такт) и в
следующем такте передает адрес искомой ячейки. Еще один такт уходит на
уточнение типа запроса, назначение уникального идентификатора транзакции,
сообщение длины запроса и маскировку байтов шины. Подробнее об этом можно
прочитать в спецификациях на шины P6 и EV6, здесь же достаточно отметить, что
эта фаза запроса осуществляется за три такта системной шины. Независимо от
размера читаемой ячейки (байт, слово, двойное слово) длина запроса всегда равна
размеру линейки L2-кэша, что составляет 32 байта для процессоров
K6/P-II/P-III, 64 байта – для AMD Athlon и 128 байт –
для P-4
Контроллер шины (BIU – Bus Interface Init), «вживленный» в северный мост чипсета, получив запрос от процессора, в зависимости от ситуации либо передает его соответствующему агенту (в нашем случае – контроллеру памяти), либо ставит запрос в очередь, если агент в этот момент чем-то занят. Потребность в очереди объясняется тем, что процессор может посылать очередной запрос, не дожидаясь завершения обработки предыдущего, а раз так – запросы приходится где-то хранить. Чем больше запросов может накапливать чипсет, тем выше максимально достижимый параллелизм обработки данных, а значит, выше и скорость. Чипсеты старого поколения (Intel 815, в частности) могли накапливать всего лишь до четырех запросов, однако с ростом отношения латентность/пропускная способность оперативной памяти размера очереди стало катастрофически не хватать и в Intel 875P/SiS 655 она была увеличена до 12 элементов.
При первой же возможности чипсет извлекает запрос из очереди и передает его контроллеру памяти (MCT – Memory Controller). В течение одного такта он декодирует полученный адрес в физический номер строки/столбца ячейки и передает его модулю памяти по сценарию, описанному в приложении «приблизительная схема взаимодействия памяти и процессора».
В зависимости от архитектуры контроллера памяти он работает с памятью либо на частоте системной шины (синхронный контроллер), либо поддерживает память любой другой частоты (асинхронный контроллер). Синхронные контроллеры ограничивают пользователей ПК в выборе модулей памяти, но, с другой стороны, асинхронные контроллеры менее производительны. Почему? Во-первых, в силу несоответствия частот, читаемые данные не могут быть непосредственно переданы на контроллер шины, и их приходится сначала складывать в промежуточный буфер, откуда шинный контроллер сможет их извлекать с нужной ему скоростью. (Аналогичная ситуация наблюдается и с записью). Во-вторых, если частота системной шины и частота памяти не соотносятся как целые числа, то перед началом обмена приходится дожидаться завершения текущего тактового импульса. Таких задержек (в просторечии пенальти) возникает две: одна – при передаче микросхеме памяти адреса требуемой ячейки, вторая – при передаче считанных данных шинному контроллеру. Все это значительно увеличивает латентность подсистемы памяти, т. е. промежутка времени с момента посылки запроса до получения данных. SiS 655 – асинхронный контроллер со всеми вытекающими отсюда достоинствами и недостатками, а Intel 875P – это асинхронный контроллер, при совпадении частот шины и памяти автоматически переходящий в синхронный режим. Сочетая сильные стороны обоих типов контроллеров, чипсет Intel 875P практически не имеет недостатков (одним выстрелом – двух зайцев).
Другой фундаментальной характеристикой чипсета являются типы поддерживаемых им модулей памяти, что играет решающую роль в выборе чипсета пользователем (точнее, разработчиком материнской платы, но это не суть важно). Чипсет Intel 860, сделавший в свое время ставку на мало популярную память типа RDRAM, несмотря на все маркетинговые усилия, так и не получил большего распространения, поэтому компании Intel пришлось переориентироваться на DDR-SDRAM, де-факто ставшей массовой памятью к настоящему времени. Чипсет Intel 875P поддерживает три наиболее перспективных типа памяти: DDR266, DDR333 и DDR400, что выгодно отличает его от чипсета SiS 655, который память типа DDR400, увы, не поддерживает (подробную информацию о поддерживаемых типах памяти вы найдете в приложении «выбор и конфигурирование памяти»)!