FAQ по подсистеме памяти
Страница 10.



При демонтаже старой системы у меня остались модули памяти SIMM 72-пин, но я не могу найти устройства, в котором бы они заработали. Что здесь можно посоветовать?

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

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

  • Слишком большое время доступа. Применяемые в настоящее время устройства могут крайне отрицательно относиться даже к времени доступа в 70 нс, не говоря уже о 80 и хуже. При этом, если демонтируется устройство наподобие, скажем, компьютера на базе 386-го процессора, скорее всего ваша память не быстрее, чем 70-80 нс. В FAQ по чипам рассказано, как можно определить время доступа чипов по их маркировке.
  • 18-битные модули. В тех же 386-х компьютерах вполне могли быть использованы ранние 18-битные реализации 72-пиновых SIMM. Отличить их можно по необычно малому числу чипов (например, 6 20-пиновых SOJ, см. также FAQ по модулям, где приводится описание "в чипах" нормальных 32- или 36-битных SIMM).
  • Необычное количество или устройство контрольных бит. Надо оговориться, что данный случай подпадает под обсуждаемый вопрос только при условии, что вы пытаетесь использовать ваши модули в качестве модулей с четностью (которыми они, безусловно, являются, но не в реализации, понятной большинству контроллеров). К данному классу относятся 36-битные ECC SIMM, ECC-on-SIMM (эти модули описаны в различных вопросах FAQ по модулям), а также, к примеру, модули x33, применявшиеся некоторых станциях Sun.
  • Неполное соответствие JEDEC. Помимо упомянутых в предыдущем вопросе, в данный класс следует поместить, например, SIMM композитные, с необычным параметром refresh или числом банков, имеющие чипы с напряжением питания 3.3В и т.п. Ваша система относилась к числу приспособленных для их применения, случайно же взятые, скорее всего, не относятся. Описание таких модулей может быть в FAQ по модулям.
  • Не-JEDEC либо не-DRAM SIMM. - примеры систем, из которых такие модули могут быть извлечены, есть в уже упоминавшемся вопросе. К упомянутым там следовало бы добавить использовавшиеся Hewlett-Packard в лазерных принтерах 72-пиновые модули, на которых был установлен ROM, содержащий интерпретатор PostScript или дополнительные фонты.
Что касается дальнейшего применения "несовместимых" модулей, то за редкими исключениями их можно либо выкинуть вообще, либо попытаться использовать в идентичном (иногда - аналогичного класса) устройстве. К исключениям я бы отнес медленные модули, область применения которых в принципе может оказаться не такой уж и узкой (те же принтеры, к примеру, в действительности не требуют очень уж высокоскоростной памяти), а также необычную реализацию четности, когда шансы, что память будет работать хотя бы в устройстве без контроля четности, достаточно высоки.

Что такое interleave и с какой целью он применяется? Что означает коэффициент или уровень interleave?

Interleave, или "чередование" (банков) - один из способов увеличить производительность подсистемы памяти в предположении, что доступ к данным осуществляется последовательно (другими словами, данные записываются в память и считываются оттуда большими массивами, значительно превышающими по объему одну "ширину шины"). Надо сразу заметить, что существует два механизма для создания более быстрой подсистемы памяти. Первый из них - это собственно разработка и применение физически более быстрой памяти (скажем, с временем доступа 60 нс вместо 70). Второй же механизм - логический, то есть улучшение организации доступа к памяти. Именно на этой стадии используется предположение о последовательном доступе. В частности, каждая из технологий fast page и EDO дает при одном и том же времени доступа к случайным данным увеличение пропускной способности именно для последовательного потока данных за счет сокращения времени доступа к адресам, следующим за первым. Механизм этого ускорения нас в данный момент не интересует, важно другое - оба этих типа памяти не в состоянии сами по себе обеспечить непрерывного потока данных с частотой, равной частоте шины, даже для последовательных данных. Например, память fast page в оптимальных условиях в состоянии возвращать данные лишь каждые 3 такта системной шины, то есть втрое медленнее, чем это может быть необходимо процессору. Именно подобные ситуации и являются областью применения interleave.

В принципе довольно многим известно, что на практике interleave означает применение банков памяти с шириной шины больше, чем системная. Рассмотрим для примера простейшую схему interleave 2:1 для подсистемы памяти fast page. Иными словами, если перед нами Pentium-система с 64-битной системной шиной, то "нормальный" банк памяти для нее состоит из 2 одинаковых 72-пиновых SIMM, полностью перекрывающих системную шину. Аналогичная система с interleave 2:1 имеет банк из 4 одинаковых SIMM, то есть дважды ширина системной шины. Условно можно разделить этот банк на два "нормальных" подбанка. Суть метода заключается в том, что контроллер "раскладывает" поступающие данные на эти два подбанка по принципу - "слово" (т.е. число бит, равное ширине шины - именно такие слова и поступают от процессора) в первый подбанк, следующее слово - во второй, следующее - опять в первый и так далее. Ускорение же достигается за счет того, что процессы обмена данными с каждым из подбанков сдвинуты по фазе - иными словами, запись в один из банков происходит в то время, когда другой подбанк находится в "латентном" состоянии (т.е. отрабатывает такты waitstate, в течение которых обмен данными невозможен). Точно то же самое происходит и при чтении данных. Результат - двукратное ускорение обмена данными для последовательных потоков. Нетрудно видеть, что должен ускориться и доступ (сам по себе более медленный) к случайным данным, однако не вдвое, а примерно в полтора раза (то есть если случайно выбранное слово оказывается в том же подбанке, что и предыдущее, никакого ускорения нет).

Точно то же самое происходит при применении interleave 2:1 для памяти EDO. Схема 4:1, когда данные распределяются уже по 4 подбанкам "нормальной" ширины, в состоянии дать дальнейший выигрыш, по крайней мере для fast page, хотя уже и не четырехкратный (см. обсуждение в отдельном вопросе).

Метод interleave широко применялся для ускорения работы подсистем памяти, особенно в серверах и рабочих станциях, хотя, например, interleave поддерживали и "обычные" системы Macintosh. Число объединенных в один банк "нормальных" подбанков обычно называлось коэффициентом, или уровнем, interleave, и записывалось чаще всего в виде k:1. Коэффициент этот по понятным причинам всегда является степенью двойки. Иногда также можно было встретить упоминание о, скажем, 128-битной подсистеме памяти (в сравнении с 64-битной системной шиной) - это все тот же interleave 2:1. Нужно, впрочем, иметь в виду, что иногда необычно широкая шина применялась в серверах для организации ECC, а не для interleave. Чисто теоретически для необычно быстрых системных шин (например, для неинтеловских процессоров или, скажем, графических подсистем) может быть применен сколь угодно большой (если, конечно, не учитывать технологические ограничения) уровень interleave. Впрочем, сечас это уже не особенно актуально, так как начиная со SDRAM во все вновь разрабатываемые типы памяти закладывается многобанковость (иными словами, тот же interleave) на уровне чипов, так что уже сами чипы спроектированы так, чтобы возвращать последовательные данные на частоте системной шины.

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

 
« Предыдущая статья   Следующая статья »