|
|||||||||||
Таблица 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Производитель BIOS | Клавиши | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
ALR Advanced Logic Research, Inc. | F2, Ctrl+Alt+Esc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
AMD (Advanced Micro Devices, Inc.) BIOS | F1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
AMI (American Megatrends, Inc.) BIOS | Del | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Award BIOS | Ctrl+Alt+Esc, Del | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
DTK (Datatech Enterprises Co.) BIOS | Esc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Phoenix BIOS | Ctrl+Alt+Esc, Ctrl+Alt+S, Ctrl+Alt+Ins | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Звук |
Что означает |
---|---|
Один короткий гудок после включения или сброса компьютера |
Все нормально |
Длинный, постоянно повторяющийся гудок |
Либо памяти нет, либо она неисправна |
Один длинный гудок и затем три коротких |
Либо не установлена видеокарта, либо ее видеопамять неисправна |
Частые гудки при нормально работающем компьютере |
Процессор перегрет и частота его принудительно понижена BIOS |
Теперь кое-что о совместимости. Любая версия ROM BIOS не может поддерживать абсолютно все существующие устройства. Особенно это касается устаревших версий. Оно и понятно. Мир не стоит на месте. Постоянно появляется что-то новенькое и это новенькое иногда требует обновления BIOS. Следует учесть еще и вот какой аспект. Дело в том, что на рынке инфотехнологий всего два основных производителя ROM BIOS – Phoenix Technologies, и AMI (American Megatrends, Inc). Когда-то существовала еще и Award Software, но в 1998 году Award была выкуплена Phoenix и сейчас существует лишь торговая марка. Большинство производителей материнских плат заказывают BIOS у этих фирм. Но Compaq производит BIOS полностью самостоятельно, что сказывается на, мягко говоря, низкой совместимости с устройствами изготовленными другими фирмами.
мыло опт Заказать. Мыло хозяйственной "Эффект" 300 гр. ,78%, п/пропилен 40 штук. |
Q.Почему после выполнения всех стартовых процедур BIOS плата все же не загружает операционную систему ни с гибкого диска, ни с HDD?
A.Причина тому - искажение информации в DMI блоке BIOS. INT19 не выполняется, т.к. невозможно правильно определить загрузочное устройство. В создавшейся ситуации наилучшее средство - перепрограммирование микросхемы Flash ROM, в которой хранится BIOS.
Почему TestBIOS Lite завершает выполнение диагностических процедур успешно, а системный BIOS не выводит в порт 0080h ни одного кода и материнская плата не стартует?
Программная модель большинства современных контроллеров SI/O такова, что при подаче питания большинство ресурсов контроллера находятся в выключенном состоянии. Поэтому инициализацию SI/O следует осуществить на самом раннем этапе выполнения POST. Для AwardBIOS™ первый исполняемый POST код С0h визуализируется после инициализации ресурсов SI/O, что в случае неисправности данного контроллера может привести к останову системы до вывода в порт 0080h первого POST кода.
Поиск и инициализация контроллера SI/O будет реализована в полной версии TestBIOS™ Power и будет осуществляться на поздних этапах диагностики материнской платы.
TestBIOS™ Lite не учитывает особенности неинтеловских процессоров, не выполняет обновление микрокод для процессоров Intel Pentium II и старше, т.к. указанные свойства CPU не имею отношения к работоспособности и старту материнской платы.
Системный BIOS материнской платы на ранних этапах инициализации осуществляет не только определение типа процессора, но и настройку его программных ресурсов, что в случае частичного повреждения микропрограмм системного BIOS или при неправильной установке CPU либо его неисправности может привести к сбоям до индикации первого POST кода
Где можно приобрести диагностическую плату Port80+ , TestBIOS™ и сколько они стоят?
Рекомендованная розничная цена составляет 30$. TestBIOS™ в облегченной версии в конструктиве EPROM 1Mbit прилагается бесплатно
Мой компьютер не стартует вообще. Что мне делать?
Установить диагностическую карту и, если выполнение POST прекращается на первом же коде, заменить память. Причина, по которой не работает Ваш компьютер, может быть в том, что используется неподходящая память: PC66 вместо PC100, или PC100 вместо PC133.
Возможно, особенность Вашей материнской платы такова, что для инициализации DRAM контроллера используется информация SPD, в котором производителем завышены рабочие параметры
Почему используя некондиционную память, когда материнская плата не стартует, код останова системного BIOS указывает на неисправность различных устройств, начиная от невозможности выполнения POST кода в ShadowRAM (C5h) и заканчивая инициализацией клавиатуры и устройства PS/2 Mouse (3Dh)?
Определение типа и объема установленной памяти выполняется на C1 с помощью алгоритмов, использующих для контрольной записи и чтения в ячейки памяти ассемблерные команды mov. Этого вполне достаточно, чтобы выполнить поставленную на данном этапе задачу.
В дальнейшем процедуры BIOS используют защищенный режим работы процессора. Для адресации команд и операндов в памяти применяется достаточно много служебных операций, выполнение которых выглядит как многоцикловая последовательность с очень большим количеством обращений к памяти за единицу времени. Скорость выполнения и, как следствие, количество циклов обращения к памяти за единицу времени при этом существенно больше, чем может получиться при программном выполнении записи/чтения командами mov.
В связи с этим использование некондиционной памяти не приводит к прекращению выполнения POST на шаге C1h, а вызывает останов при попытке выполнения некоторых процедур BIOS и/или инициализации устройств
После индикации POST кода 05 системный BIOS снова возвращается к выполнению POST кода C0h. Почему?Зачастую такая проблема возникает на материнских платах оснащенных буфером IT8687 из-за неисправности последнего.
Q.Как определить, что установленный на материнской плате BIOS, прошит во Flash ROM?
A.Определить тип микросхемы ПЗУ, установленнолй на материнской плате, несложно. Сразу следует сказать, что практически все материнские платы после 1997 года поставляются с Flash ROM, но если Вы не уверенны лучше проверить - для этого необходимо посмотреть на маркировку чипа ROM (28 или 32-контактная микросхема с наклейкой производителя BIOS), отодрав наклейку. Маркировка означает следующее (ххх означает три произвольных цифры):
28Fxxx - 12V Flash память
29Cxxx - 5V Flash память
29LVxxx - 3V Flash memory (раритет)
28Cxxx - EEPROM, почти то же, что и Flash память
27Cxxx - с окошком. EPROM (уже не устанавливается с 1997 года): только для чтения, требует программатор для записи и ультрафиолетовую лампу для стирания
PH29EE010: SST ROM Чип - перепрошиваемый
29EE011: Winbond чип - 5V Flash память
29C010: Atmel Chip - 5V Flash память
Любые другие микросхемы, не имеющие окошка с маркировкой, не начинающейся с цифр 28 или 29, являются, скорее всего не Flash-памятью. Если же на микросхеме есть окошко - это верный признак того, что это не Flash.
Q.Что делать, если производителя и название материнской платы определить не удается?
A.Чаще всего, производителя и название материнской платы можно определить по идентификационной строке, которую выдает BIOS сразу при включении компьютера.
Для AMI BIOS эта строка имеет вид, похожий на
51-0102-1101-00111111-101094-AMIS123-P или 40-01S5-ZZ1124-10101111-060691-OPWBSX-F,
где производитель определяется третьей группой цифр. Далее необходимо найти свой идентификационный номер втаблице соответствия номеров и названий производителей. Определить название материнской платы можно по всей идентификациолнной строке, пользуясь тем же документом.
Идентификационная строка Award BIOS имеет вид
2A59CQ1CC
и позволяет определить чипсет (первые пять цифр и букв - 2A59C), производителя материнской платы (следующие два символа - Q1) и модель материнской платы (оставшаяся часть строки - CC). Далее необходимо посмотреть обозначения чипсетов, производителей и моделей в идентификационных строках.
Q.Что такое PROM, EPROM и ЕEPROM и чем они отличаются?
A.:
PROM (programmable read-only memory - программируемая память только для чтения) - это чип памяти, данные в который могут быть записаны только однажды. То что записано в PROM, не вырубишь топором :) (хранится в нем всегда). В отличии от основной памяти, PROM содержит данные даже когда компьютер выключен.Отличие PROM от ROM (read-only memory - память только для чтения) в том, что PROM изначально производятся чистыми, в тот время как в ROM данные заносятся в процессе производства. А для записи данных в чипы PROM, применяются специальные устройства, называемые программаторами.
EPROM (erasable programmable read-only memory - стираемая программируемая память только для чтения) - специальный тип PROM, который может очищаться с использованием ультрафиолетовых лучей. После стирания, EPROM может быть перепрограммирована. EEPROM - по сути похожа на PROM, но для стирания требует электрических сигналов.
EEPROM (electrically erasable programmable read-only memory - электрически стираемая программируемая память только для чтения) - специальный тип PROM, который может быть очищен электрическим разрядом. Подобно другим типам PROM, EEPROM содержит данные и при выключенном питании компьютера. Аналогично всем другим типам ROM, EEPROM работает не выстрее RAM.
Специальный тип EEPROM, называемый Flash memory или Flash EEPROM, может быть перезаписан без применения дополнительных устройств типа программатора, находясь в компьютере.
В огромном количестве форумов по всей Сети обсуждается ошибка, известная под названием Infinite Loop или NV Loop/BSOD error. Давайте разберемся, что она из себя представляет, как возникает и как с ней бороться.
Какие симптомы возникновения этой ошибки?
Как правило данная ошибка возникает в Direct3D или OpenGL приложениях на системах с видеокартами GeForce 2 или GeForce 3 и операционной системой WinXP при установленных драйверах Nvidia Detonator версий 23.11 или 21.83. Однако есть сообщения о том. что данная ошибка иногда может возникать и под Win2K. Так же вероятно возникновение этой ошибки на видеокартах ATI, но это только ничем не подтвержденное предположение. В приложениях OpenGL - спонтанная перезагрузка системы, полное зависание системы или выдача сообщения о недостатке виртуальной памяти.В приложениях Direct 3D - полное зависание системы или сообщение б ошибке Infinite Loop в драйвере Nvidia.
Вообще появляющееся сообщение об ошибке может различаться от раза к разу. Но всегда указывает на проблемы в файле "nv4_disp.dll"
Что такое nv4_disp.dll?
Это часть драйверов Nvidia Detonator. Полное название - Nvidia display driver.
Эта ошибка может возникать и в Win2K без установленного Direct X8.1.
Связана ли данная ошибка с WinXP?
Нет. Эта ошибка может проявляться и в Win2K при использовании драйверов Nvidia Detonator версий выше 21.81.
Что же можно сделать?
Существует множество возможностей настроить систему так, чтобы данная ошибка не возникала. Но на каждой отдельно взятой системе необходимо проделывать свой набор действий. Ниже мы приведем ряд последовательностей таких действий. Вы можете пробовать проделать их одну за другой. Надеемся, что хоть что-то вам да поможет. Можно пробовать комбинации приведенных ниже пунктов. По крайней мере, от этого всего компьютеру не должно стать хуже.
1) Попробуйте поставить драйвера Nvidia 21.83.
Очень много отзывов от людей, которые утверждают, что заменив драйвера 23.11 на 21.83 они избавились от Infinite Loop.
2) Если у вас система с процессором AMD на чипсете VIA
Установите драйвера VIA 4in1 версии 4.37v(a). Этот набор драйверов содержит в себе патч, который меняет настройки регистров, отключая Memory Write Queue. Этот патч делает некоторые регистры зарезервированными, что соответствует рекомендациям VIA производителям материнских плат. В некоторых случаях этот патч способствует своевременному высвобождению системных ресурсов, нехватка которых и вызывает в конце концов Infinite Loop. На самом деле данный патч не избавляет вас 100% от этой ошибки, но на некоторых системах предотвращает ее возникновение.
3) Настройки DRAM в BIOS - для материнских плат с памятью DDR
Производители памяти строго рекомендуют использовать в настройках BIOS параметр Command Rate не выше 2T. Хотя на некоторых материнских платах он устанавливается на 1T и в большинстве случаев работает все нормально. Для проверки зайдите в BIOS, выберите пункт "Advanced Chipset features", а затем "DRAM Clock Drive Control". Там вы и найдете параметр "DRAM Command Rate". Установите его на 2T. В том случае если у вас в системе установлено больше двух модулей памяти другие установки этого параметра не рекомендуются.
Если это вам не помогло, попробуйте снизить другие параметры настройки памяти, например:
DRAM Clock - это частота шины на которой работает ваша память. Если у вас память PC2100, вам следует установить этот параметр на 133, что соответствует DDR266. Можно попробовать установить его на 100, но это оставьте на самый крайний случай, если ни что другое уже не помогает.
SDRAM Cycle Length - Этот параметр показывает текущую латентность CAS. Значение 2 соответствует максимально агрессивным настройкам, безопасным и рекомендуемым является значение 2,5.
Bank Interleave - Этот параметр показывает каким образом будут взаимодействовать несколько модулей памяти в системе. Имеет значения Enable или Disable this. Какое либо влияние на работу системы этот параметр производит только в том случае. Если у вас установлено несколько модулей памяти.
Precharge to Active(Trp) - значение 2T агрессивное, 3T - нормальное/ безопасное.
Active to Precharge(Tras) - значение 5T агрессивное, 6T - нормальное/безопасное.
Active to CMD(Trcd) - значение 2T агрессивное, 3T - нормальное/ безопасное.
DRAM Burst length - значение 8 агрессивное, 4 - нормальное/ безопасное.
DRAM Drive Strength - строго настрого рекомендуется во всех случаях оставлять это значение в виде AUTO.
CPU to DRAM. Он может принимать значения Slow, Medium и Fast. Очевидно, что Fast - самое агрессивное значение
4) Настройки DRAM в BIOS - для материнских плат с памятью PC133
В BIOS выберите пункт "Advanced Chipset features"
DRAM Timing By SPD установите Disabled
DRAM Clock - значение Host CLK самое безопасное значение, заставляющее память работать на 100МГц, значение HCLK-33M - эффективное значение, заставляющее память работать на 133МГц
SDRAM Cycle Length - значение 2 агрессивное, 3 - нормальное/ безопасное.
Bank Interleave - Этот параметр показывает каким образом будут взаимодействовать несколько модулей памяти в системе. Имеет значения Enable или Disable this. Какое либо влияние на работу системы этот параметр производит только в том случае. Если у вас установлено несколько модулей памяти.
DRAM Drive Strength - строго настрого рекомендуется во всех случаях оставлять это значение в виде AUTO.
Memory Hole - лучше оставлять его в состоянии Disabled, хотя в крайне редких случаях установка этого параметра в 15M-16M помогает решить обсуждаемую нами проблему.
5) Свойства экрана
Откройте диалог свойств экрана, для чего кликните правой клавишей мыши по свободному участку рабочего стола и в появившемся меню выберите пункт "Свойства" или найдите иконку "Экрана" в Панели управления. На закладке "Настройка" нажмите кнопку "Дополнительно". В появившемся диалоге выберите закладку "GeForce 2/3". Затем нажмите кнопку "Дополнительные свойства". Там вы обнаружите закладку "Параметры Direct 3D". Видите параметр "Размер памяти текстур PCI". Вот его очень рекомендуется максимально понизить.
6) Память
Во время многочисленных тестов мы выяснили, что при параметре Command Rate со значением 1T невозможно использовать более одного модуля памяти в течение долгого времени. Система просто не проходит тест на стабильность работы. Установка этого параметра на 2T устраняет эту проблему. Хотя. Надо признать, при использовании памяти DDR333 или высококачественной памяти от Micron вполне можно было заполнять все имеющиеся на плате слоты DIMM и выставлять в BIOS 1T Command Rate. При установке этого параметра на 2T с одним модулем памяти в системе мы получили нашу Infinite Loop ошибку только с двумя модулями памяти от неизвестно каких китайских производителей. Оба эти модуля были односторонние 256Mb DIMM. Все другие модули, участвовавшие в наших тестах были двухсторонними, и под WinME/98/2K/XP не было замечено никаких проблем с ними. Так что рекомендуется покупать двухсторонние модули памяти и желательно от известных производителей.
Заключение
Не факт, что все рассказанное нами вам поможет. Но надеемся, что большинство возможностей устранения Infinite Loop мы все же рассмотрели.
Зачем нужна Flash? Это достаточно сложный вопрос, имеющий, однако, достаточно простой ответ – для того, чтобы можно было оперативно изменять BIOS карты. При наличии однократно программируемой микросхемы, для замены BIOS необходимо купить новую, чистую микросхему, затем на программаторе "прошить" новый BIOS и установить (запаять) ее на место. Для Flash-BIOS достаточно просто запустить программу - прошивальщик. Сразу же возникает следующий вопрос - зачем надо менять BIOS? Причин может быть много - какие-либо ошибки в BIOS, желание разогнать карту на низком, не программном уровне, изменить какие-либо параметрыКо всему этому, от себя добавлю еще один повод в пользу перепрошивки BIOS карты - возможность получить русский шрифт в консоли, без применения внешних программ. Особенно полезным это может оказаться для Linux.
Шаг первый - диагностика проблемы
И так, в интернете, у друга или ещё где-то Вы нашли самую новую прошивку BIOS, программу-прошивальщика, сделали загрузочную дискету и приступили, собственно, к прошивке. Однако с ходу это может не получиться. Причин на это может быть масса: прошивальщик может «не знать» микросхему BIOS’а, установленную на Вашей плате; может быть поврежден файл BIOS’а или прошивальщик, либо последний сообщает о несовпадении контрольной суммы файла и т.д. В моем случае было несколько интересней - прошивальщик «опознал» микросхему как type 55 (т.е. как перепрограммируемую ПЗУ, хотя, на самом деле, микросхема, как выяснилось, была «одноразовой»), честно изобразил процесс прошивки и на этапе проверки сообщил о несоответствии по адресу: XXXX. После нескольких попыток я попробовал сделать старую прошивку - к моему удивлению, она прошилась на ура. Это и навело меня на мысль об отсутствии Flash-памяти на карте.
Чтобы в этом точно убедится, необходимо вынуть карту из компьютера и посмотреть маркировку микросхемы BIOS. Найти эту микросхему легко - обычно на ней имеется наклейка, с лейблом производителя или с версией BIOS. Микросхема выполнена в корпусе PLCC (рис.1 и рис.3 справа) или DIP (рис.2 и рис.3 слева). Чтобы прочитать маркировку, Вам, скорее всего, придется аккуратно снять наклейку. Чтобы ее не испортить, можно предварительно прогреть ее над лампой накаливания и, затем, поддеть лезвием. Читаем маркировку. Если там что-то типа 27xx - то, увы, это «однократка». Придется читать дальше. Если 29xx - то это Flash и проблема в чем-то другом.
Теперь идем дальше. Смотрим, какого типа у нас микросхема. Если это DIP (рис.2), да еще и не впаян, а вставлен в «кроватку», то нам крупно повезло. Если это PLCC (рис.1) и, скорее всего, просто впаян, то без хороших навыков по выпаиванию и монтажу современных микросхем не стоит и браться… В общем, с типом определились. Смотрим теперь, насколько сильно сэкономили китайцы J. В случае с DIP, у нас должна стоять панелька на 32 вывода или же на 28, но тогда должны оставаться свободными две пары отверстий. Если панель на 28 ног и свободных 4-х отверстий (должны быть видны со стороны ключа) нет - то, увы, производитель даже и не задумывался, что на этой плате может стоять Flash-Memory, и не развели нужных сигналов. Если отверстия все-таки есть, то смотрим на ножку №31 (рис.3, выделено красным) - это #WE (Write Enable) - сигнал разрешения записи во флэш. Если к этой ножке подходит проводник, то нам повезло - сэкономили только на микросхеме J. Можно менять. Если же дорожки нет, то апгрэйд теряет смысл - прошить флэш прямо на плате будет невозможно. Если это PLCC, то сразу смотрим на вывод 31 и, по написанному выше, определяем возможность апгрэйда микросхемы.
Шаг второй - подготовка
Если возможность замены определена положительно, то можно приступить к подготовке. Первый вопрос - приобретение Flash. Но для этого надо определиться с маркой микросхемы. Я, не долго думая, просто открыл HEX-редактором файл Nv5flash.exe и посмотрел список типов поддерживаемых микросхем:
Atmel Flash ROM
Atmel 5.0/2.7V 49F/BV512 Flash ROM
Atmel 5.0/3.0/2.7V 49F/LV/BV001 Flash ROM
Atmel 5.0/3.0/2.7V 49F/LV/BV001T Flash ROM
Atmel 5.0/3.0/2.7V 49F/LV/BV010 Flash ROM
Atmel 5.0/3.0/2.7V 29F/LV/BV512 Flash ROM
Atmel 3.0/2.7V At29LV/BV010A Flash ROM
Atmel 5.0V 29C512 Flash ROM
Atmel 5.0V 29C010A Flash ROM
SST Flash ROM
SST 5.0V 29EE512 Flash ROM
SST 3.0/2.7V 29LE512/29VE512 Flash ROM
SST 5.0V 29EE010 Flash ROM
SST 3.0/2.7V 29LE/VE010 Flash ROM
SST 5.0V 39SF512 Flash ROM
SST 5.0V 39SF010 Flash ROM
SST 2.7-3.6V 39VF512 Flash ROM
SST 2.7-3.6V 39VF010 Flash ROM
Winbond Flash ROM
Winbond 5.0V 29EE011/29C010M Flash ROM
Winbond 5.0V 29EE512 Flash ROM
Напряжение питания у них у всех разное, поэтому надо определить, чем у нас «кормится» ПЗУ. Можно аккуратно замерить напряжение на выводах питания или (что лучше) найти описание на свою микросхему. Мне повезло - напряжение было 5 вольт и, у меня уже была микросхема Winbond 5.0V 29EE01, от сгоревшей материнской платы. Также понадобится новая панелька для установки микросхем (рекомендую поставить, если ее нет и чип впаян), либо часть панельки (см. ниже). Все это пока касается только DIP-исполнения. Если же у Вас корпус PLCC, то надо, во-первых, иметь хорошие навыки по пайке/демонтажу таких микросхем, во-вторых - твердую руку, в-третьих - достаточную смелость, чтобы решится на эту авантюру. Кроме этого, стоит еще раз посмотреть на плату, на предмет возможности установки панельки - часто вокруг посадочного места под микросхему находится второй ряд ламелей, для установки панельки. Из инструментов нам понадобится паяльник, отсос для демонтажа, нож и надфиль. Если эта карта у вас в единственном экземпляре, то подготовить программы для прошивки нужно на этом этапе, так как чистая флэшка не позволит карте инициализироваться.
Форматируем дискету как системную и записываем на нее VGABios.exe, DOS4GW.exe, NV5Flash.exe и образ вашего старого BIOS. Взять его можно любой программой для снятия дампа BIOS’а, например, вот этой. Потом, туда же записываем autoexec.bat следующего содержания:
Vgabios.exe -fbios.bin - где bios.bin - образ нашего биоса
Для удобства можно записать и flash.bat:
Nv5flash.exe bios.bin - где bios.bin - образ нашего биоса
В BIOS Setup материнской платы ставим последовательность загрузки "A,C" и "Halt on" - "No error". Также необходимо разрешить кэширование и затенение видеобиоса. Перезагружаемся. Должен успешно подгрузиться резидентный BIOS. Если у нас чип установлен в кроватке, то стоит попробовать вынуть микросхему и повторить эксперимент. После проверки переходим к основному этапу.
Шаг третий - переделка
Извлекаем карту из компьютера и прогреваем паяльник (желательно низковольтный и с заземлением). Если у нас DIP в панельке, то просто извлекаем его, АККУРАТНО поддев отверткой с ОБОИХ сторон. Если мы решили поменять панельку полностью, а не допаивать недостающий сегмент, то берем отсос и поочередно освобождаем от припоя все ножки и извлекаем панельку. С PLCC несколько сложнее. Тут потребуется или строительный фен, или газовая горелка-авторучка. При отсутствии всего этого, микросхему можно выпаять при помощи лезвия. Греем сразу несколько соседних выводов и, параллельно плате, подкладываем под них половинку лезвия от безопасной бритвы, стараясь не повредить соседние элементы. Таким образом, отпаиваем все выводы (см. рис. 4).
Если мы не выпаивали панельку, то отрезаем от другой, ненужной панельки, сегмент необходимого нам размера (4 ламели) и, подправив надфилем, впаиваем в плату (см. рис. 5).
С PLCC придется повозиться, но при наличии опыта все получится. Правда, при установке панельки, в данном случае, паяльником не обойтись - только фен или горелка. А микросхему, в свою очередь, можно впаять и паяльником.
Шаг четвертый - первая "прошивка"
Собрали? Включаем питание. При загрузке, система остановится на темном экране, и спикер системного блока будет предупреждать Вас о не работоспособной карте. Если все было сделано правильно, должна произойти загрузка с заранее подготовленной дискеты, и мы увидим знакомое сообщение видеокарты. Набираем "flash" и прошивальщик сделает свое дело - запишет в чистый флэш образ BIOS, ранее сохранённый нами из прежнего ПЗУ. Если все нормально, то вынимаем дискету и перегружаемся. Все должно быть как до переделки. Если не работает, то не следует сразу впадать в панику. Выключаем систему, и все еще раз перепроверяем. Если не помогло - то вставляем родную ПЗУ и пробуем загрузиться с ней. Если работает, то перепроверяем наличие описанного выше контакта #WE. Ещё одна возможная причина – новая микросхема могла быть неисправной. Возможно также, что Вы плохо пропаяли дополнительные сегменты панельки, или же панелька, от которой была отрезана необходимая часть для установки на карту, была слишком стара, и ламели окислились от времени. Это исправляется путём замены неисправной части, либо зачисткой ламелей.
Эпилог
Теперь можно экспериментировать с настройками BIOS. Программ для этого можно найти достаточно много. С их помощью можно с легкостью менять шрифты, подправить Sub Vendor, дату и версию BIOS. Есть встроенный НЕХ-редактор и редактор шрифтов, встроенный набор русских шрифтов для русификации. Можно написать свое приветствие при старте компьютера (обычно места хватает не на одну строку) J. Однако с таймингами пока сложнее – мне не известна формула, по которой задается частота ядра и памяти. Адреса известны, а с пересчетом - проблемы. Если кто-то знает, пишите - буду очень благодарен.
P.S. Данный материал, возможно, применим и для модернизации видеокарт других марок. Читайте, пожалуйста, описания.
Настройка подсистемы памяти в BIOS
SETUP
Основная система ввода/вывода (BIOS - Basic Input Output System) является "прослойкой" между аппаратной (комплектующие) и программной (операционная система) частями ПК. В ней содержится информация относительно установленных компонент и общих настроек всей системы. Основными моментами в данном вопросе являются установки параметров,предназначенных дляконфигурирования системного ОЗУ (оперативной памяти): всевозможные задержки, специфические режимы работы, общие схемы функционирования все,что касается этого вопроса можно найти в разделе
"Advanced Chipset Setup" (или "Chipset Features Setup") в BIOS Setup.
Auto Configuration
Этот пункт в настройке является, пожалуй, основным, однако встречается не в каждой системе. Он определяет возможность изменений в настройках подсистемы памяти типа FPM DRAM и EDO DRAM, указывая длительность цикла обращения (минимальный промежуток времени в течение которого можно выполнить циклическое обращение по произвольный адресам) к данным: 60ns (оптимизировано для микросхем памяти с временем доступа 60ns), 70ns (оптимизировано для микросхем памяти с циклом доступа 70ns) и Disable (в данном случае разрешить "ручную" настройку имеющихся параметров подсистемы памяти). При асинхронной передаче данных гарантируется, что определенная операция будет полностью осуществлена за фиксированный промежуток времени, поскольку в данном случае функционирование памяти не привязывается к частоте системной шины. Поэтому, если данные появляются сразу за фронтом системного синхросигнала, то они будут считаны лишь по приходу следующего фронта тактового импульса. Значения 60/70 ns данного пункта указывают системе, что надо использовать предустановки, занесенные производителем материнской платы заранее, которые обеспечивают стабильную работу памяти, исходя из установленной длительности цикла доступа. Понятно, что при этом наверняка теряется некоторая часть максимально возможной производительности. Поэтому, чтобы дать возможность гибкой проведения конфигурации, этот параметр необходимо установить в положение Disable, открыв доступ к другим установкам настройки подсистемы памяти.
DRAM Read Timing
Параметр, характеризующий скорость чтения данных из массива памяти. Сам массив представляет собой некое подобие координатной сетки, где есть положения по горизонтали (адрес строки) и по вертикали (адрес столбца). Упрощенно, на пересечении каждого конкретного адреса строки и столбца находится единичный "строительный элемент" массива - ячейка, которая представляет собой ключ (транзистор) и запоминающий элемент (конденсатор). Логическое состояние ячейки (физически, заряд в конденсаторе) представляется довольно просто: есть заряд - "1", нет заряда - "0".
В самом простом случае, для чтения/записи одной ячейки памяти необходимо пять тактов. Сначала на шину выставляется адрес строки (первая половина полного адреса ячейки памяти). Затем подается строб RAS# (Row Address Srobe), который является своего рода контрольным сигналом (защелка адреса строки), подтверждающим полученный адрес строки для записи в специально отведенное место - регистр микросхемы памяти. После этого передается адрес столбца (вторая половина полного адреса ячейки памяти), следующим тактом за которым идет сигнал подтверждения принимаемого адреса (защелка адреса столбца) - CAS# (Column Address Strobe). И, наконец, следует операция чтения/записи из/в ячейку, контролируемая сигналом разрешения записи - WE# (Write Enable). Однако если считываются соседние ячейки, то нет надобности передавать каждый раз адрес строки или столбца, и процессор "считает", что необходимые данные расположены по соседству. Поэтому на считывание каждой последующей ячейки понадобится уже три такта системной шины. Отсюда и берет свое начало существование определенных схем функционирования (тайминги, в широком смысле этого понятия, обычно означающего временной параметр) конкретного фундаментального типа ОЗУ: xyyy-yyyy-..., где x - количество тактов шины, необходимое для чтение первого бита, а у - для всех последующих.
Так, цикл доступа процессора к памяти состоит из двух фаз: запроса (Request) и ответа (Response). Фаза запроса состоит из трех действий: подача адреса, подача запроса (чтения/записи) и подтверждение (необязательно). В фазу ответа входит выдача запрашиваемых данных и подтверждение приема. Довольно часто происходит чтение четырех смежных ячеек, поэтому многие типы памяти специально оптимизированы для данного режима работы, и в сравнительных характеристиках быстродействия обычно приводится только количество циклов, необходимое для чтения первых четырех ячеек. Речь идет о пакетной передаче, которая подразумевает подачу одного начального адреса и дальнейшую выборку по ячейкам в установленном порядке - такого рода трансфер улучшает скорость доступа к участкам памяти с заранее определенными последовательными адресами. Понятно, что в случае необходимости чтения данных с непоследовательного адреса в "цепочке" пакетной передачи возникает разрыв и первый бит произвольного адреса считается с пятитактным доступом. Обычно процессор формирует адресные пакеты на четыре передачи данных вперед, поскольку предполагается, что система автоматически возвратит данные из указанной ячейки и трех следующих за ней. Преимущество такой схемы очевидно: на передачу четырех порций данных требуется всего одна фаза запроса. Например, для памяти типа FPM DRAM применяется схема 5333-3333-..., в отличие от первой разновидности динамического ОЗУ, где применялась самая простая - 5555- 5555-... Для памяти EDO DRAM после первого считывания блока данных увеличивается время доступности данных того ряда, к которому происходит доступ в настоящий момент, при этом уменьшается время получения пакета данных, т.к. схема доступа уже 5222-2222-... Синхронное ДОЗУ типа SDRAM, в отличие от асинхронного (FPM и EDO), "свободно" от передачи в процессор сигнала подтверждения и выдает/принимает данные в строго определенные моменты времени (только совместно с сигналом синхронизации системной шины), что исключает несогласованность между отдельными компонентами, упрощает систему управления и дает возможность перейти на более "короткую" схему работы: 5111-1111-... Аналогичную временную диаграмму имеет и пакетное ДОЗУ на основе схемы расширенного доступа к данным (BEDO DRAM) - последняя разновидность асинхронного типа динамической памяти.
Поэтому в рассматриваемом пункте меню настройки можно встретить варианты допустимых значений для циклов обращения к памяти: x333 или x444 оптимально подходит для FPM DRAM, x222 или x333 - для EDO DRAM, и x111 или x222 - для BEDO DRAM (и SDRAM). Варьируя эти параметры и стараясь использовать более короткую диаграмму для конкретного типа памяти, можно добиться некоторого повышения производительности.
DRAM Write Timing
Параметр, аналогичный по принципу предыдущему, с той разницей, что происходит настройка произведения операций записи. Для фундаментальных типов памяти FPM DRAM и EDO DRAM значение рассматриваемого параметра одинаково, поскольку выигрыш от принципа EDO можно получить только на операциях чтения. Соответственно, устанавливаемые значения данного параметра аналогичны "DRAM Read Timing", принимая во внимание особенности архитектуры используемой памяти.
Fast RAS-to-CAS Delay
Установка, характеризующая задержку в циклах тактового сигнала между сигналами RAS# и CAS# (как уже говорилось, по сигналам RAS# и CAS# внутрикристальные триггеры фиксируют части полного адреса - строки и столбца), за которую данные из накопителя ДОЗУ передаются на выходные усилители (SenseAmp, играющие роль временного буфера и усилителя уровня, поскольку сигнал, выходящий из микросхемы, достаточно слабый), и обычно составляющая 2ns. Эта задержка вводится умышленно и необходима для того, чтобы было достаточно времени для однозначного определения адреса строки (сигнал RAS#) и столбца (сигнал CAS#) ячейки. Иными словами, данный параметр характеризует интервал между выставлением на шину контроллером памяти сигналов RAS# и CAS#. Понятно, что чем меньше данное значение, тем лучше, однако не стоит забывать, что за ним стоит возможность самих микросхем памяти реализовать установленную задержку, поэтому выбор здесь неоднозначен.
DRAM RAS Precharge Time
Параметр, определяющий время повторной выдачи (период накопления заряда, подзаряд) сигнала RAS#, т.е. через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки. Данная установка может принимать значения 3 или 4 (в циклах шины), и во временном отношении аналогична предыдущей - чем меньше, тем лучше. Иногда возможен вариант, когда можно выставить конкретную схему циклов регенерации или прямо указать время обновления содержимого строки памяти, выражаемое в микросекундах (ms). Для поддержания целостности информации заряд конденсаторов следует периодически обновлять (регенерировать), читая содержимое всего ряда целиком и заново перезаписывая. Устройствам памяти с динамической "природой" присущ один довольно серьезный недостаток - высокая вероятность образования ошибки, когда данные, записанные в определенную ячейку, при считывании могут оказаться иными, что связано с циклами регенерации заряда в ячейке памяти. Для контролирования и исправления этого недостатка существует два способа проверки целостности данных: контроль бита четности и код коррекции ошибок. Как уже упоминалось, элементарная ячейка динамической памяти состоит из одного конденсатора и запирающего транзистора, что дает возможность достичь большей плотности размещения элементов (большее количество ячеек на единицу площади) по сравнению со статической. С другой стороны, данная технология имеет ряд недостатков, главным из которых является то, что заряд, накапливаемый на конденсаторе, теряется со временем. Несмотря на то, что при топологии конденсаторов ячеек динамической памяти используется хороший диэлектрик с электрическим сопротивлением в несколько тераом (х1012 Оhm), заряд теряется достаточно быстро, так как размеры одного конденсатора микроскопические, а емкость мизерна - порядка 10-15 F. При такой емкости на одном конденсаторе накапливается всего порядка 40000 электронов. Среднее время утечки заряда составляет порядка сотни или даже десятков миллисекунд, поэтому его необходимо перезаряжать с 64ms интервалом, согласно требованиям JEDEC Std 21-C. Данные из ядра считываются и передаются на усилители уровня, после чего, не поступая на выход, записываются обратно в массив. Стандартно, банк микросхемы памяти (массив ячеек, имеющий определенную организацию структуры, состоящей из строк и столбцов) содержит или 2k, или 4k, или 8k строк (точнее, или 2048, или 4096, или 8192), доступ к которым позволяет производить одновременную регенерацию всего массива, относящегося к этой строке. Как бы то ни было, наилучшая схема регенерации заключается не в одновременном обновлении содержимого ячеек всех строк, а в поочередном обновлении индивидуально каждой строки. В результате, взяв за основу 4k-массив (средняя плотность), можно вычислить стандартную нормальную схему регенерации одной строки, поделив полный цикл обновления на количество строк: 64000ms/4096=15.625ms. В случае, если банк содержит более 4k строк, любые две строки могут обрабатываться одной командой, или все решается простым кратным увеличением частоты регенерации - с точностью до наоборот, если банк содержит менее 4k строк. Если рассматривать возможные варианты решения проблемы обновления содержимого массива ДОЗУ, на данный момент известны три различных метода регенерации данных.
Регенерация одним RAS (ROR - RAS Only Refresh). В данном случае адрес регенерируемой строки передается на шину адреса, в ответ на что выдается сигнал RAS# (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них временно поступают на внутренние цепи (точнее, на выходные усилители уровня) микросхемы, после чего записываются обратно. Так как сигнала CAS# не следует, цикл чтения/записи не начинается. В следующий раз передается адрес следующей строки и так далее, пока не восстановятся все ячейки, после чего цикл регенерации повторяется. Недостатком этого метода, безусловно, является то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера. Это сильно снижает общую производительность, поскольку подобного рода регенерацию в микросхемах памяти необходимо осуществлять довольно часто.
CAS перед RAS (CBR - CAS Before RAS). При нормальном цикле чтения/записи сигнал RAS# всегда приходит первым, а за ним следует CAS#. Если же CAS# приходит раньше RAS#, то начинается специальный цикл регенерации (CBR), при котором адрес строки не передается, а микросхема использует свой собственный внутренний счетчик, содержимое которого увеличивается на 1 (дискретное инкрементирование) при каждом цикле CBR. Этот режим позволяет регенерировать память не занимая шину адреса, что, безусловно, более экономично в плане использования системных ресурсов.
Механизм автоматической регенерации (AutoPrecharge) или саморегенерации (SEREf - SElf REfresh) обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" и формирователь синхросигналов деактивируется. Режим расширенной регенерации (EREf - Extended REfresh) не является отдельным методом, характеризующим саму способность микросхемы, а, как и сокращенная (REREf - REduce REfresh), определяет только режим периодичности обновления содержимого массива относительно нормального цикла (Normal, 15.625ms), и состоит в "подмножестве" цикла саморегенерации. При EREf энергия экономится потому, что теперь регенерацию страницы (строки) можно производить значительно реже: скажем, через 125.2ms, а не через 15.625ms, как это происходит при стандартной регенерации. Сокращенная регенерация рекомендуется к использованию в микросхемах памяти большой емкости (64Mbit приборы и более емкие) и в модулях памяти с большим количеством микросхем (16 и более). Саморегенерация используется в периоды микропотребления (общее состояние системы - Suspend), когда содержимое микросхемы памяти регенерируется самостоятельно путем инкрементирования своего внутреннего счетчика - это значит, что все функции управления можно выключить. В таком состоянии обновление данных в ячейках по вышеописанным методам невозможно, потому как некому посылать сигналы на регенерацию, и микросхема памяти делает это сама - в ней запускается свой собственный генератор, который тактирует ее внутренние цепи.
Так, метод ROR использовался еще в первых микросхемах DRAM и на данный момент практически не применяется. Метод CBR активно используется в микросхемах EDO DRAM. Саморегенерация рекомендована для систем на основе SDRAM и поддерживает значения: 3.906ms (0.25х-сокращенная), 7.812ms (0.5х-сокращенная), 15.625ms (нормальная), 31.25ms (2х-расширенная), 62.5ms (4х-расширенная) и 125.2ms (8х-расширенная). Понятно, что сама способность конкретной микросхемы памяти (контролируемая со стороны "закрытых" установок в BIOS или саморегенерация) определяется архитектурно и зависит от типа используемой памяти. Однако выставив наибольший временной цикл, можно "не вписаться" в общую временную диаграмму, поэтому производитель модуля памяти такого рода информацию просто заносит в специально отведенное место - микросхему SPD, которой оснащено большинство современных модулей DIMM. В случае, если таковой микросхемы на используемом модуле нет, то можно, при условии, что это позволяет гибкая настройка BIOS Setup, самостоятельно выставить периодичность проведения регенерации, исходя из стандартных 15.625ms для 4k массива банка, кратно уменьшая (сокращенная) цикл при увеличении количества строк или увеличивая (расширенная) цикл при уменьшении количества строк - все зависит от логической организации (количество банков и структура банка) микросхемы конкретного модуля памяти.
MA Wait State
Период ожидания до переключения адреса, который позволяет установить или снять дополнительный такт задержки до начала чтения данных из памяти. Своего рода "контрольной точкой" срабатывания этого режима является переключение сигнала MA# (Multiplex Address). Например, для памяти типа EDO DRAM однотактная задержка введена по умолчанию, поэтому установка значения Slow добавляет еще один такт ожидания. У SDRAM же данного такта ожидания нет, и установка Slow только добавит его. Установка же параметра в режим Fast позволит снять дополнительный такт ожидания, а значит - увеличить производительность.
DRAM R/W Leadoff Timing
Данный пункт характеризует число тактов, затрачиваемое подсистемой памяти при подготовке выполнения операции чтения/записи данных, определяя их количество на шине до выполнения операций в самой микросхеме. При этом возможны следующие значения: 8/7 и 7/5 - количество тактов для чтения/записи соответственно. Как и любой параметр, характеризующий задержку, его необходимо стараться установить с меньшим значением.
Speculative Leadoff
Параметр, включающий (Enable) и выключающий (Disable) режим опережающей выдачи сигнала чтения (READ), разрешение которого позволяет выдавать его немного ранее, чем адрес будет декодирован (однозначное определение адреса ячейки при помощи стробов RAS# и CAS#). Поскольку на определение адреса необходимой ячейки требуется определенное время, система теряет такты, которые могут использоваться с пользой. Поэтому включение этого параметра дает возможность считать следующий адрес ячейки, пока идет процесс определения координаты ячейки, адрес которой считался ранее. Данный прием также позволит в некоторой степени сэкономить время и уменьшить количество "холостых" тактов системной шины.
DRAM ECC/Parity Select
Параметр, управляющий режимами контроля целостности данных: кода коррекции ошибки (ECC - Error Correction Code) и проверки четности (Parity). Нередко встречается также пункт "DRAM Data Integrity Mode". По характеру ошибки памяти можно разделить на два типа. Временные ошибки (сбои, Soft Errors), связанные с воздействием космических лучей, альфа-частиц, посторонних и внутренних шумов, приводят обычно к однократному изменению информации, и чаще всего данные записываются в ту же ячейку повторно без ошибок. Постоянные ошибки (отказы, Hard Errors), возникающие вследствие неисправности самих микросхем памяти, зачастую приводят к потере информации в целом столбце или даже во всей микросхеме.
В случае использования схемы Parity один бит четности сохраняется в специально выделенной области памяти вместе с каждыми восемью битами информации. Бит четности формируется так: подсчитывается количество "единиц" в двоичном представлении байта, если оно четное, то данный бит принимает значение "1", если нет - "0". После этого данные записываются в оперативную память. При считывании этого байта данных из ячейки к нему "приписывается" бит четности и затем анализируется 9bit значение. Если в этом числе нечетное количество единиц, то бит четности "обрезается" и байт информации передается на обработку - в противном случае генерируется ошибка четности и работа компьютера приостанавливается с выдачей сообщения. Если изменено четное количество бит информации, проверка бита четности не сработает. Однако, несмотря на то, что схема контроля четности может выявлять максимум двухбитные ошибки, исправлять их она не способна.
Механизм ECC может не только выявлять, но и исправлять ошибки, а также генерировать ошибку четности. Обычно данная схема работы основывается на использовании кодов Хемминга (помехоустойчивые коды), позволяющих выявлять и исправлять один неверный бит или же найти две и исправить одну ошибку (корректирующие свойства кода определяются его избыточностью). Коррекция ошибок намного сложнее контроля четности и используется в системах, где необходима передача большого количества информации с минимальной вероятностью ошибки. В любом случае, будь то схема Parity или ECC, использование данных типов памяти может снизить производительность: если контроль четности может "затормозить" систему на 2-3 %, то у ECC этот показатель иногда доходит до 10% в зависимости от сложности используемого алгоритма. Кроме этого, 72bit модуль ECC дороже своего обычного 64bit "аналога" при условии одинаковой емкости, поэтому выбор использования данных типов памяти на ПК является исключительно делом каждого.
Наличие в ПК модуля, поддерживающего схему ECC, определяется самой системой, и если таковые не обнаружены, пункт меню "DRAM Data Integrity Mode" изменить невозможно - "серое" поле с индикацией "Non-ECC". Разрешение (Enable) же пункта "DRAM ECC/Parity Select" при условии, что в системе используются соответствующие модули памяти, приводит к активации контроля коррекции ошибки или к включению механизма контроля четности.
SDRAM Configuration
Параметр, определяющий способ настройки подсистемы памяти на основе SDRAM и принимающий значения: by SPD (необходимые параметры считываются из специальной микросхемы последовательного детектирования, устанавливаемой на модуле памяти, и полностью оптимально согласованы с типом и индивидуальными характеристиками установленных на нем микросхем) или Manual (разрешено варьировать определенные параметры "вручную", причем соответствующие пункты меню этих параметров становятся доступными для изменения). Суть данной установки сводится к тому, что в случае использования схемы Manual разрешается доступ к изменению параметров "SDRAM CAS Latency Time", "SDRAM RAS-to-CAS Delay" и "SDRAM RAS Precharge Time", которые образуют основную тайминговую схему работы памяти (CL-tRCD-tRP соответственно) и позволяют осуществлять более гибкую настройку подсистемы на основе синхронного ДОЗУ - все аналогично рассматриваемому ранее параметру "Auto Configuration". В случае использования схемы SPD требуемые значения автоматически загружаются из микросхемы EEPROM, в которой производитель конкретного модуля памяти заранее "прошивает" необходимые значения временных параметров (таймингов), гарантируя стабильную работу. При синхронной работе с памятью операции выполняются строго с тактами системного генератора. При этом само управление синхронного ДОЗУ несколько усложняется относительно асинхронного режима, поскольку приходится вводить дополнительные защелки, хранящие адреса данные и состояния сигналов управления. В результате этого вместо продолжительности цикла доступа, применяющегося для характеристики в асинхронных системах, для описания быстродействия SDRAM прибегают к указанию длительности периода синхросигнала (tCLK - Clock time - величина, обратно пропорциональная частоте следования синхроимпульсов). Поэтому в некоторых разновидностях BIOS возможно указание непосредственно длительности периода синхросигнала: 7ns (максимальная частота функционирования данного модуля - 143MHz, следовательно, используемые временные схемы будут оптимизированы для микросхем памяти с параметром -7, указываемом непосредственно на самой микросхеме), 8ns (максимальная частота функционирования данного модуля - 125MHz, поэтому временные установки будут оптимизированы для приборов памяти с параметром -8) и 10ns (максимальная частота функционирования данного модуля - 100MHz, поэтому временные установки будут оптимизированы для микросхем памяти с параметром -10), которые работают аналогично описываемым ранее в пункте "Auto Configuration", но встречаются сравнительно редко. Стандартно, массив микросхемы содержит логические банки (Bank), количество и организация которых определяется индивидуальностью (фундаментальностью) самой архитектуры и конечной емкостью микросхемы. Банки содержат строки (Row), которые, в свою очередь, содержат столбцы (Column) - матрица, образуемая такой иерархией, и является ядром микросхемы памяти. Строка - это объем считываемых или записываемых данных в один из нескольких банков ядра. Столбцы - подмножества строк, которые считываются или записываются в индивидуальных фазах операций чтения/записи.
Рассмотрим последовательно продвижение данных по микросхеме. Обычно цикл начинается по приходу команды активизации банка, которая выбирает и активирует банк и строку массива. В течение следующего цикла информация передается на внутреннюю шину данных и направляется на усилители уровня (как говорилось ранее, своего рода "накопитель", играющий роль как усилителя сигнала, так и временного буфера). Когда усиленный уровень сигнала достигает необходимого значения, данные запираются (Latch) внутренним синхросигналом - этот процесс, именуемый задержкой между определением адреса строки и столбца (tRCD - RAS#- to-CAS# Delay), занимает 2-3 цикла системной шины (количество периодов синхросигнала). После этой задержки команда чтения может подаваться совместно с адресом столбца, чтобы выбрать адрес первого слова (в данном случае, объем данных, передаваемых за один цикл, равный ширине шины данных микросхемы памяти), которое надо считать с усилителей уровня. После выставления команды чтения выполняется двух- или трехтактная задержка строба выбора столбца (задержка сигнала CAS# - CAS# Latency или просто CL), в течение которой данные, выбранные из усилителей уровня, синхронизируются и передаются на внешние выводы микросхемы (линии DQ). За первым словом следуют остальные в течение каждого последующего синхросигнала, отрабатывая полную установленную длительность пакета (Burst Length) - количество непрерывно передаваемых слов за одну фазу передачи данных. Лишь после того, как вся информация передалась, данные можно возвратить обратно из усилителей уровня в строку пустых ячеек массива для восстановления его содержимого, что занимает 2-3 тактовых цикла. Динамический, а значит обладающий свойством ослабевания сигнала и утечки, по своей природе массив ячеек должен регенерировать их содержимое. Периоды восстановления заряда устанавливаются регенерирующим контроллером программы мониторинга, выполняемой счетчиком регенерации (Refresh Counter) - подобное восстановление требует 7-10 циклов, в течение которых поток данных прерывается.
SDRAM CAS Latency Time
Задержка выдачи сигнала CAS# для микросхемы синхронного ДОЗУ является одной из важнейших характеристик и обозначает минимальное количество циклов шины (Clock Period) от момента "фиксации" запроса данных стробом CAS# до момента их устойчивого определения и считывания. Предполагается, что на момент прихода фронта сигнала CAS# на адресных входах имеются правильные данные. Однако поскольку везде существуют временные задержки (в том числе и внутри самой микросхемы), то специально отводится некоторое время на их преодоление, причем в силу разброса параметров задержки для разных адресных линий могут быть разными - это и есть в данном случае CAS Latency (CL), а CL2 и CL3 - время вводимой задержки в тактах (2 и 3 соответственно). Чем меньше задержка - тем больше скорость работы с памятью, но и тем больше риск, что данные попадут "не по адресу", что непременно вызовет сбой. Устойчивость к подобным сбоям - есть устойчивость по CL.
Иными словами, CL - это задержка между формированием логикой управления кристалла микросхемы команды чтения и доступностью к чтению первого слова. Если регистрация (опознавание приемником сигнала конкретного логического уровня) команды чтения происходит по фронту такта N, а CL составляет M тактов, то соответствующие данные будут доступны через (N+M) тактов. Однако, для обеспечения гарантированной выдачи данных, транзисторы выходных цепей линий данных включаются на один такт раньше (N+M-1), т.е. на них выводятся данные с неопределенными (на тот момент) уровнями, в результате чего контроллер памяти ожидает еще один такт, и только после этого принимает поступающие данные. При использовании CL2 для модулей, рассчитанных для данной частоты на CL3, выходные цепи могут не успеть выставить нужный уровень (и обеспечить номинальный ток) для точного представления данных на шине и может возникнуть ошибка.
SDRAM RAS-to-CAS Delay
Аналогичного рода параметр (Fast RAS-to-CAS Delay), определяемый как tRCD, описывался ранее, и в данном случае может принимать значения 2 или 3, устанавливая двух- и трехтактную задержку от начала передачи команды активизации конкретного логического банка до момента приема команды чтения/ записи по приходу фронта CAS# (переход в активный низкий уровень). Другими словами, после подачи команды активизации банка линию RAS# необходимо предварительно зарядить (выполнить цикл накопления заряда, Precharge) до момента поступления команды чтения (определяемой адресом столбца). Это означает, что данные передаются из массива памяти на внутрикристальные выходные усилители уровня с задержкой 2 или 3 цикла. Необходимо понимать, что рассматриваемая задержка сама по себе играет довольно незначительную роль в общей задержке при условии попадания в страницу и/или чтения данных из открытой страницы. Тем не менее, далеко не в каждом BIOS можно варьировать значение данной задержки по причине отсутствия соответствующего параметра, однако в действительности tRCD учитывается также в значении "Bank X/Y Timing".
SDRAM RAS Precharge Time
Длительность подзаряда линии RAS# - tRP. В данном случае микросхема DRAM с двумя/четырьмя банками (логическая организация) позволяет "скрыть" это время, чтобы обеспечить непрерывный ввод/вывод данных: в то время, когда происходит какая-либо операция с одним банком памяти, другой успевает регенерировать (обновить данные). Проще говоря, данный параметр позволяет определять быстрое (Fast) или медленное (Slow) накопление заряда по линии RAS# до начала цикла регенерации. Установка значения Fast увеличивает быстродействие, однако может привести к нестабильности работы. Slow же действует наоборот - повышает стабильность работы компьютера, однако увеличивает время, затрачиваемое на цикл регенерации данных. Поэтому рекомендуемое значение Fast следует устанавливать в случае уверенности в качестве микросхем памяти. Обычно встречаемые значения 2 и 3 данного пункта определяют количество тактов системной шины, необходимых для накопления заряда по линии RAS#.
Вообще, задержка, обуславливаемая выполнением предзаряда линии RAS#, необходима для перемещения данных обратно в массив (закрытие банка/страницы) до момента прихода команды активизации следующего банка. Так, 30-60 % от общего количества передаваемых запросов на чтение теряется в пределах одной страницы (Page), стандартно называемая строкой логического банка), что получило название попадания в страницу (Page Hit). Поэтому в данном случае нет необходимости активизировать банк, так как данные уже находятся в странице, и все, что требуется - это изменить адрес столбца посредством выдачи сигнала CAS#. Если запрашиваемые данные не найдены в пределах данной страницы, их необходимо вернуть обратно в массив и закрыть банк. Если запрашиваемые данные существуют в одном и том же банке, но в разных строках, необходимо подать команду перезаряда, чтобы банк закрылся (промежуток, составляющий длительность подзаряда), а новая команда активизации банка откроет правильную строку (задержка tRCD), где размещаются необходимые данные. Позднее, через промежуток CL, команда чтения придет по правильно выбранному адресу. В результате количество циклов общей задержки (схема CL-tRCD-tRP), описываемое как 2-2-2, составляет 6 тактов, а схема 3-3-3 увеличивает ее до 9. Если запрашиваемые данные расположены в разных строках, нет необходимости тратить время на ожидание закрытия первого банка, поэтому задержка tRP в данном случае не учитывается. Следовательно, остается только задержка выдачи сигнала CAS# и интервал RAS#-CAS#. Вообще, данная схема немного упрощена, поскольку если данные находятся в одном банке, но в разных строках, то банк необходимо не просто закрыть, а еще и реактивировать. Поэтому каждый банк имеет очень малое время, в течение которого он остается открытым, и длительность цикла tRC становится довольно критическим фактором.
SDRAM Cycle Time Tras/Trc
Параметр микросхемы SDRAM, определяющий отношение интервала, в течение которого строка открыта для переноса данных (tRAS - RAS# Active time), к периоду, в течение которого завершается полный цикл открытия и обновления ряда (tRC - Row Cycle time), также называемого циклом банка (Bank Cycle Time). По умолчанию устанавливается значение 6/8 - более медленное, но более стабильное, чем 5/6. Однако, 5/6 быстрее сменяет циклы в SDRAM, но может не оставлять строки (ряды) открытыми на период времени, достаточный для полного завершения транзакции, что особенно справедливо для SDRAM с частотой синхронизации более 100MHz. Следовательно, для начала рекомендуется попробовать установить 5/6 в целях увеличения производительности SDRAM, но, если система становится нестабильной, следует изменить на 6/8. Также данный параметр можно встретить в виде [tRAS, tRC]. Например, для некоторых базовых логик данные установки могут иметь следующие значения: для серии i82815xx - [5T, 7T] или [7T, 9T], для серий наборов VIA - [5T, 7-8T] или [6T, 8-9T], и для ALi MAGiK1 - [3-10T, 4-15T].
Цикл банка определяет количество тактов, необходимых после выставления команды активизации банка до начала фазы перезаряда. Другими словами, после открытия страницы ее необходимо поддерживать в открытом состоянии некоторый промежуток времени до того как она снова закроется. Параметр tRC определяет минимальное количество тактов до тех пор, пока банк реактивируется. Поскольку фаза перезарядки имеет задержку 2-3 такта, то полный цикл банка является суммой времени активности сигнала RAS# и интервала подзаряда линии RAS#: tRС=tRAS+tRP, где tRAS=CL+tRCD определяется как задержка отклика (Latency), характеризующая промежуток времени между регистрацией полученной команды и моментом начала передачи ассоциируемых с командой данных. Таким образом, tRС характеризует общее количество циклов, входящих в основную тайминговую схему CL-tRCD-tRP. Так, серия i82815xx поддерживает схемы [5T, 7T] или [7T, 9T], откуда видно, что период подзаряда фиксирован и составляет два цикла шины (2T). Серия базовых логик от VIA определяет интервал tRAS по значениям 5T и 6T, что говорит о плавающем значении tRP в 2 или 3 такта соответственно, однако они не прямо доступны, а являются частью "микса" установок.
Текущие микросхемы SDRAM имеют продолжительность цикла ядра 50-60 ns. С другой стороны, это означает, что теоретически микросхема, синхронизирующаяся на частоте 133MHz (7.5ns период), имеет значение tRC=7T, откуда можно определить текущий цикл ядра: 7х7.5ns=52ns. Если частоту синхронизации увеличить, количество циклов, соответственно, тоже увеличится, чтобы укладываться в 50ns окно. Проведя расчет, можно отметить теоретический предел частоты синхронизации SRDAM в 183MHz при текущих параметрах (9T), что означает 49.2ns цикл ядра. Интересной особенностью является то, что в ранних ревизиях i82815 серии схема выглядела как [5T, 7T] или [6T, 8T], что определяет предел частоты синхронизации в районе 166MHz. Для 100MHz синхросигнала, с целью получения максимально возможной производительности, цикл банка необходимо установить как 5/7, а для 133MHz шины, как 5/8 или 6/8 - в зависимости от того, насколько сильно требуется "разогнать" интерфейс.
В связи с этим, наиглавнейшим вопросом считается определение минимально возможного интервала активности сигнала RAS# и что повлечет за собой выход за пределы его допустимых значений (tRAS Violation). После того, как сигнал RAS# активизировал банк, данные запираются в усилителях уровня. Например, имеется две линии, идущие параллельно, из которых одна сигнальная, а другая - связанная. Эта схема работает по принципу чередования, где каждая линия может быть и сигнальной, и опорной. Усилители уровня дифференцируют напряжение между заряженной линией данных и опорной линией, и усиливают относительно слабый сигнал - это необходимо делать, чтобы восстанавливать данные в ячейке. Линии данных имеют четко определенную емкость, которая уменьшается с увеличением заряда. Если фаза перезаряда (стирание всей информации со строки данных для активизации следующего банка - строчный доступ) начинает выполняться до момента, пока уровень сигнала не стабилизировался достаточно для возможности восстановления первоначального содержимого страницы, четко определенная длительность активности сигнала RAS# нарушается (tRAS Violation), результатом чего является полная потеря данных или в лучшем случае неверное их восстановление. Другими словами, tRAS - это время, необходимое для накопления полного заряда линии и восстановления данных до начала цикла следующего передзаряда. В свою очередь, перезаряд является командой, закрывающей страницу или банк, поэтому tRAS также характеризуется как минимальное время открытия страницы. Если к этому добавить еще и длительность цикла перезаряда, то в результате получится общее количество тактов, необходимое для открытия и закрытия банка, именуемое циклом банка - то, о чем велась речь ранее.
SDRAM Bank Interleaving
Механизм чередования логических банков микросхемы памяти (не путать с режимом чередования физических банков - переключение строк, поделенных на сегменты с собственной логикой управления для каждого, - реализация которого требует присутствия сложной аппаратной адаптивной логики и специальной разводки сигнальных трасс подсистемы памяти) позволяет "коммутировать" циклы регенерации и доступа (конвейеризация): в то время, как один банк проходит цикл обновления содержимого, другой находится в активном состоянии и отрабатывает цикл обращения. Это улучшает эффективность функционирования подсистемы памяти (реальную пропускную способность приближает к теоретической пиковой) относительно неоптимизированного механизма (предвыборка) и "скрывает" время обновления содержимого каждого отдельного банка.
Базисная идея чередующихся обращений заключается в доступе от одного банка к другому, когда соответствующие страницы открыты в каждом банке - этот момент требует высокой степени концентрированности данных в системном ОЗУ. Обычно команда активизации банка может открыть один банк в определенный момент времени (предвыборка), а затем считать данные после задержки CL+tRCD. Однако, практически сразу же, после посылки команды активизации одного банка, контроллер памяти может послать команду активизации другого в этом же цикле, таким образом открыв следующий банк. Если контроллер точно знает какие данные следует передать в другой банк, он может послать команду чтения без трешинга (Trashing, режим интенсивной передачи данных при нехватке системной памяти) пакета данных первого банка. В этом случае делается возможным переход от одного банка к другому с задержкой лишь в один цикл (Bank-to-Bank Latency, задержка перехода "банк-банк") между пакетами из четырех слов (BL=4). В дополнение, фазы накопления заряда и закрытия банка могут выполняться в "фоновом режиме" в процессе считывания данных из перемежающихся банков.
Известны три режима чередования: обычный (No Interleave), двухбанковое чередование (2-Way Interleave, данные коммутируются между двумя банками) и четырехбанковое чередование (4-Way Interleave, данные коммутируются между четырьмя банками). Режим чередования логических банков работает только в том случае, если последовательно запрашиваемые адреса находятся в разных банках - иначе транзакции данных происходят по обычной схеме No Interleave. В этом случае системе придется простаивать время прохождения обращения и цикл регенерации, после чего запрос повторится. Тем не менее, поддержка конкретного режима должна быть реализована еще и на уровне конкретного приложения. Вообще, любое приложение, сильно зависящее от процессорного кэша (объема, типа и иерархии), не способно оптимально использовать режимы чередования по простой причине ограниченности размера страницы, и данные из кэша могут потеряться. В результате, чередование банков может отрицательно сказаться на производительности, поскольку неправильный открытый банк необходимо закрыть до выполнения следующего цикла доступа к данным.
Bank X/Y DRAM Timing
Параметр, включающий в себя сумму tRC+tRCD+Bank Interleaving и разделяющийся на схемы: SDRAM 8-10 ns, Normal, Medium, Fast и Turbo - это оптимизированные под "одноименную" производительность настройки, которые производитель материнской платы прописывает в BIOS сам (схема, подобная описываемому ранее "Auto Configuration" и "SDRAM Configuration"). Так, значения соответствующих настроек BIOS, которые устанавливают управляющие регистры контроллера памяти в определенное состояние, обычно выглядят следующим образом:
Тайминги некоторых оптимальных настроек подсистемы памяти SDRAM
Установка SDRAM 8-10 ns Normal Medium Fast Turbo
tRAS 6T 5T 6T 6T 6T
tRP 3T 2T 3T 3T 3T
CAS N/A N/A N/AN/A N/A
DDR-WE Disable Disable Disable Disable Disable
tRCD 3TT 3T 3T 2T
Interleave No 4-way NoNo No
Важно заметить, что нет никакой разницы между установками SDRAM 8-10, Medium и Fast, поскольку все они имеют одинаковые значения основных временных параметров. Исключение составляет лишь Turbo, которая уменьшает tRCD до 2T (количество тактов шины), что может стать причиной нестабильной работы модулей на микросхемах EMS HSDRAM 150MHz. Еще более важно, что четырехбанковое чередование (4-Way Bank Interleaving) сокращает время активности сигнала RAS# до 5 тактов, определяя общую длительность цикла банка 8T. С позиции производительности Normal ничем не отличается от SDRAM 8-10, Medium и Fast, но демонстрирует интересные результаты: установкой tRCD в 2T при включенном четырехбанковом чередовании можно получить нестабильно функционирующую систему.
DRAM Command Rate
Параметр, устанавливающий задержку поступления команд в память (CMD Rate). Контроллеры памяти DDR-интерфейса различных базовых логик (например, VIA Apollo Pro266 и KT266), как правило, имеют две разные программируемые задержки команд для адаптации режима работы с разным типом используемой памяти - 1T или 2T. В стандартном режиме работы задержка составляет 2 цикла, что означает, что команда запирается в микросхеме по второму приходящему фронту строба после отработки команды выбора кристалла (CS#). После этого отрабатываются команды активизации банка, чтения и перезаряда в отведенный им фиксированный интервал времени. Рассматриваемая дополнительная задержка применяется исключительно в случае выполнения первоначального доступа (Initial Access, также именуемый произвольным доступом), принимая во внимание то, что все подпоследовательные команды выставлены в очередь в соответствии с установленными в BIOS задержками. Поэтому задержка поступления команды дает эффект только при произвольных доступах.
Как было указано выше, при произвольном доступе команда активизации банка запирается по второму фронту синхросигнала - именно такой механизм применяется в модулях памяти с применением микросхем-регистров - Registered DIMM, - которые уменьшают нагрузку на систему синхронизации и играют роль транзитных буферов, где происходит перераспределение адресов. Также регистры применяются для трансляции команд и их последующей передачи в микросхему памяти с задержкой в 1 такт. Тем не менее, ранее упоминавшаяся задержка 2T уже включает этот дополнительный цикл ожидания и контроллер памяти, обслуживающий Registered DIMM, не выполняет никаких фаз дополнительно вводимой задержки.
Для небуферизированных модулей памяти (Unbuffered DIMM) контроллер снимет дополнительный такт задержки, уменьшив общую до 1 цикла, что говорит о запирании команды по следом идущему фронту тактового сигнала и экономии одного такта при каждом начальном доступе к памяти. В свою очередь, это увеличивает реальную пропускную способность в зависимости от того, насколько загружена шина памяти и сколько случайных доступов выполнено.
Сама способность обработки команд с задержкой 1T зависит от таких факторов, как частота синхронизации шины памяти, количество микросхем на модуле памяти (чем больше микросхем, тем больше времени понадобится контроллеру, чтобы выбрать необходимую), качество используемого модуля, общее количество используемых модулей памяти в системе (прямо связано с количеством микросхем в составе одного модуля) и удаленность модуля от контроллера (протяженность сигнальных трасс от выводов контроллера до выводов микросхемы памяти с учетом количества переходов).
SDRAM Banks Close Policy
Контроль над операциями закрытия банков SDRAM введен специально из-за того, что микросхемы памяти с определенной логической организацией работают не совсем корректно в системах, основанных на некоторых базовых наборах. Например, контроллер памяти, находящийся в составе хаба FW82815 базового логического набора i82815, позволяет держать одновременно открытыми до четырех страниц в раздельных логических банках (для микросхемы памяти с четырехбанковой логической организацией это значит - по одной странице на каждый банк) - грубо говоря, этот механизм эквивалентен чередованию банков (Bank Interleaving). Поэтому, если произошло попадание в страницу, логика попытается выбрать альтернативную политику (проще говоря, принять определенное решение): выполнить фазу закрытия банка и всех открытых страниц или закрыть только страницу (Close Page), в которую произошел промах. Если принято решение о закрытии одной страницы, другие могут оставаться открытыми, в результате чего доступ "банк-банк" возможен лишь с дополнительной задержкой в 1 такт. В случае, если запрашиваемые данные найдены в открытой странице, доступ к ним может быть произведен немедленно (Seamlessly). Однако данные установки параметра связаны с определенным риском, поскольку в случае промаха в страницу (Page Miss), соответствующая строка будет закрыта для проведения цикла перезаряда и откроется уже по проcшествии полного установленного цикла задержек. В случае применения политики закрытия всех банков (Close All Banks) последующий доступ будет считаться холостым (бесполезным), поскольку банки нельзя закрыть до момента прихода команды начала следующего цикла. Плюс, после закрытия банка необходимо произвести его реактивизацию, на что потребуется определенное количество дополнительных тактов.
SDRAM Speculative Read
Параметр, разрешающий (Enable) или запрещающий (Disable) производить опережающее чтение. Это значит, что его включение позволяет выдавать сигнал разрешения записи (WE#) немного ранее, чем адрес будет декодирован (однозначно определен). Этот режим подобен "Speculative Leadoff" и снижает общие временные задержки на проведение операции чтения. Другими словами, инициализация (установка) сигнала разрешения записи происходит практически одновременно с генерацией того адреса, где находятся необходимые данные. Поэтому, если рассматриваемый параметр включен, контроллер выдаст сигнал WE# до завершения декодирования адреса считываемой ранее ячейки, несколько повышая общую производительность системы.
SDRAM PH Limit
Ограничение на количество попаданий в страницу банка микросхемы SDRAM. Влияние фаз регенерации на производительность увеличивается с увеличением объема микросхемы памяти (или с увеличением объема модуля памяти). Как говорилось ранее, регенерация просто необходима в силу динамической природы ядра ДОЗУ, поскольку конденсатор теряет заряд (читай, данные) через четко установленный промежуток времени. С момента открытия страницы усилители уровня могут удерживать данные только ограниченное время. Для гарантирования поддержания целостности данных, поскольку они через определенный интервал возвращаются обратно в строку, необходимо ввести ограничение на время открытия страницы. Поэтому в BIOS некоторых чипсетов (например, AMD-750) обычно присутствует соответствующий пункт меню для того, чтобы иметь возможность выбрать между 8 и 64 попаданиями в страницу до момента закрытия строки. В зависимости от количества модулей в системе и от их организации (объема используемого модуля и логической организации микросхем в составе этого модуля) экспериментально можно подобрать оптимальное значение количества попаданий в страницу. Поскольку при условии нормального функционирования существует весьма ограниченная вероятность, что следующая команда чтения попадет в ту же страницу, что и предыдущая, вероятность возникновения промаха в страницу увеличивается по экспоненциальной зависимости после каждого последовательного идущего друг за другом попадания. Если страница остается открытой, ее необходимо закрыть до прихода сигнала RAS# (до подачи очередной команды выбора строки), что является наилучшим вариантом по прошествии четко установленного количества попаданий в страницу (принудительное закрытие страницы). Кроме этого, данное обстоятельство снимает определенное количество циклов задержки, необходимых для выполнения перезаряда, от общего числа задержек, которые могут возникнуть при промахе. Поэтому для получения наилучшей производительности в ресурсоемких приложениях рекомендуется устанавливать данный параметр максимально в значение 16.
SDRAM Idle Cycle Limit
Интерфейс некоторых BIOS предоставляет возможность выбора ограничения на количество холостых циклов микросхемы SDRAM, определяющееся отношением длительности цикла активности банка к времени его простоя (холостому ходу). Данный параметр напрямую связан с PH Limit и обычно составляет от 0 до 8 (рекомендуется) тактов. Это означает не только задание возможного количества последовательных попаданий в одну и ту же страницу, но также и возможность запрограммировать контроллер для закрытия конкретной страницы, если в нее не намечается запросов на чтение в определенный интервал времени, измеряемый в количестве тактов системной шины.
DRAM Drive Strength
Параметр (еще известен как Buffer Drive Strength), управляющий распределением токовой нагрузки на выходные буферы сигнальных линий (программируемая нагрузка), путем изменения состояния соответствующего регистра управления, который содержит битовые поля с четко установленными значениями, контролируемыми через BIOS. Конечной целью является повышение быстродействия системы или стабильности функционирования подсистемы памяти и контролирования нагрузки на шине в случае нестабильной работы с большим количеством установленных модулей с максимальной нагрузкой на шину.
Небуферизированные (Unbuffered) модули памяти SDRAM DIMM имеют конечную частоту функционирования, при которой сохраняется стабильность работы. Однако с увеличением количества микросхем в составе модуля увеличивается емкостная нагрузка на шину памяти. Это обстоятельство требует большей силы тока, чтобы поддерживать определенный уровень сигнала, поскольку типичная сигнальная линия представляется (довольно упрощенно) как RC-цепь, где при фиксированном значении сопротивления емкость является сдерживающим фактором. Таким образом, получается, что лучшей производительности и стабильности можно достигнуть меньшим количеством установленных модулей памяти - иными словами, меньшей емкостной нагрузкой на шину. С другой же стороны, это означает использование модулей с микросхемами памяти большой емкости и организации (для уменьшения нагрузки на сигнальную линию), что поддерживается далеко не всеми базовыми логиками - большинство чипсетов имеют ограничение в 16 микросхем на полную физическую строку (два физических банка). Например, модули памяти с применением микросхем-регистров (Register) и микросхем фазовой автоподстройки частоты (ФАПЧ, PLL) - Registered DIMM - с позиции рассматриваемого вопроса позволяют использовать до 36 микросхем памяти на полную строку, при этом "скрывая" реальную нагрузку на сигнальные линии, сохраняя ее значение на уровне максимально нагруженного небуферизируемого "двустрочника".
Если данный параметр рассматривать с позиции физических терминов, то все базируется на емкостной нагрузке, фронтах импульсов и согласовании по полному сопротивлению (Zo). В результате небольших преобразований получаем зависимость полного сопротивления на заданной частоте от емкости нагрузки: Zo=U/I=1/(C*f). Поскольку полное сопротивление зависит от напряжения и тока сигнала в цепи, данной установкой BIOS можно регулировать Zo, изменяя значения U и I, оптимизируя емкостную нагрузку на сигнальную линию шины. Если увеличивать одновременно напряжение и ток, поддерживая постоянное значение сопротивления, то, понятно, увеличится и мощность, рассеиваемая в цепи. С другой стороны, если сохранять постоянным уровень напряжения, увеличивая ток в цепи, можно увеличивать полное сопротивление. Основной целью же является согласование сопротивления источника с собственным сопротивлением сигнальной линии и сопротивлением нагрузки (согласование сопротивлений). Это позволяет минимизировать отражения сигнала и перекос (идеализировать форму и длительность фронта) между активными уровнями - по-другому, улучшить целостность сигнала. Понижением уровня сигнала (для SDRAM стандартно 3.3V), уменьшается запас помехоустойчивости (Noise Margin) для высокого и низкого логических уровней. Тем не менее, наиважнейшим контролирующим фактором импеданса (полного сопротивления, Zo) является именно ток. Изменяя значение силы тока при постоянном уровне напряжения сигнала, можно контролировать полное сопротивление, а значит - управлять нагрузкой на конкретную сигнальную линию.
Впервые управление токовой нагрузкой встречается в логических наборах серии Triton от Intel - i82430HX и i82430TX. Управляющий регистр DRAMEC (DRAM Extended Control Register), содержащийся в северном мосту этих наборов, отвечает за уровень сигнала адресных линий (MAD - Memory Address Drive Strength). Иными словами, этот 2bit регистр DDECR[2:1] программирует токовую нагрузку на выходные буферы линий адресации MAA[1:0]/MAB[1:0] и MA[11:2]/MWE# по значениям 8/12 mA для моста FW82439HX (базовый набор i82430HX) и 10/16 mA - для FW82439ТX (логика i82430TX). В некоторых базовых наборах от VIA (например, КТ133) ввели персональный расширенный 8bit регистр, который позволяет программировать выходные буфера не только адресных линий, но и других по значениям 12/24 mA. Изменяя значения силы тока по линиям данных (Memory Data Drive), команд (SDRAM Command Drive), адреса (Memory Address Drive) и стробов (CAS# Drive и RAS# Drive) можно добиться повышения скорости или стабильности функционирования подсистемы памяти.
System BIOS Cacheable
Параметр, разрешающий (Enable) или запрещающий (Disable) кэширование BIOS. После загрузки системы нет необходимости производить обращение к ПЗУ, поскольку все системные установки и параметры загружаются в ОЗУ, поэтому кэшировать эти данные нецелесообразно. Тем не менее, включение этого параметра приводит к появлению возможности кэширования (очень быстрого доступа к необходимым данным) области памяти по адресам системного BIOS в ОЗУ. Поскольку память, используемая в BIOS, очень медленная, то есть возможность копирования установок BIOS в специально отведенный участок (F0000h-FFFFFh) системной памяти, но это применимо лишь только в случае, если системный BIOS затенен (Shadow). Но если какая-либо программа попытается выполнить операцию записи в данные адреса, то это может привести к глобальной ошибке системы.
Video BIOS Cacheable
Параметр, управляющий кэшированием BIOS видеокарты, но работающий лишь в случае, если видео BIOS затенен (пункт Video BIOS Shadow в положении Enable). Разрешение этого параметра приводит к появлению возможности кэширования области памяти по адресам BIOS видеоадаптера C0000h-C7FFFh в ОЗУ аналогично "System BIOS Cacheable", только в этот раз копируются установки подсистемы видео. Если какая-либо программа попытается выполнить операцию записи в эти адреса, то система выдаст сообщение об ошибке. В данном случае рекомендации по установке рассматриваемого параметра аналогичны предыдущему пункту.
Video RAM Cacheable
Аналогично двум предыдущим параметрам, разрешение (Enable) этого позволят кэшировать содержимое видеопамяти в системном ОЗУ (A0000h-AFFFFh), увеличивая при этом скорость доступа к видеопамяти и несколько улучшает системную производительность.
8 bit I/O Recovery Time
Пункт настройки, характеризующий время восстановления после проведения операций для 8bit устройств ISA-интерфейса - так называемый механизм восстановления шины ввода/вывода (I/O Bus Recovery Mechanism). Данный параметр измеряется в тактах шины и определяет, какую задержку система будет устанавливать после выдачи запроса на чтение/запись устройства ввода/вывода. Эта задержка необходима, так как цикл чтения/записи для устройств интерфейса ISA существенно больше, чем для периферийных компонент PCI. Рекомендуемое значение этого параметра по умолчанию 1, и его следует увеличивать только в случае установки в компьютер какого-либо достаточно медленного ISA-устройства. Может принимать значения от 1 до 8 тактов и NA (по умолчанию соответствует 3.5 такта).
16 bit I/O Recovery Time
Параметр, характеризующий время восстановления после проведения операций для 16bit устройств ISA-интерфейса. По аналогии с предыдущим параметром, рекомендуемое устанавливаемое значение - 1. Может принимать значения от 1 до 4 тактов и NA (по умолчанию соответствует 3.5 такта).
Memory Hole at 15M-16M
"Дырка" в промежутке между 15-м и 16-м мегабайтами системного ОЗУ (в некоторых конфигурациях бывает 14-15). Ее разрешение (Enable или указание используемого пространства напрямую) позволяет обращаться к устройствам ввода/вывода, использующим интерфейс Legacy ISA, как к памяти, за счет чего увеличивая скорость доступа к ним, однако запрещает системе использовать отведенную область ОЗУ, резервируя ее для нужд установленной карты расширения. Поэтому включать этот параметр следует в том случае, если это требуется в документации на установленную в компьютере периферийную плату. Выключение (Disable или None) позволяет исключить для всех обычных программ возможность использования указываемой области памяти и дать системе прямой доступ к полному объему установленного системного ОЗУ.
VGA Shared Memory Size
В отличие от предыдущего параметра, этот характеризует резервируемую память для нужд подсистемы видео, интегрированной в сам чипсет. Унифицированная архитектура памяти (UMA - Unified Memory Architecture) является аналогом еще одного похожего стандарта - SMBA (Shared Memory Buffer Architecture). Базисная идея UMA - предоставить раздельный доступ к основной памяти в системе, исключив за счет этого необходимость в специально выделенных графических буферах, где базовая логика уступает контроль над памятью, когда интегрированный графический контроллер требует к ней доступ. Все это довольно негативно сказывается на общей производительности системы, поскольку унифицированный кадровый буфер "тормозит" общую производительность (иногда падение может доходить до 15%) относительно non-UMA версии. Теоретически, рассматриваемый механизм допускает динамическую смену размера кадрового буфера в зависимости от требований текущего запущенного приложения, однако практически невозможно выйти за рамки отведенного в BIOS Setup объема. Поэтому для определения необходимого объема с учетом требуемой разрешающей способности экрана, глубины цвета и максимально возможной гранулярности (наименьший шаг изменения) памяти (0.5MB) будет полезна следующая таблица:
Устанавливаемый объем кадрового буфера
Разрешение экрана Количество цветов (глубина цвета)
16 (4bit) 256 (8bit) 65536 (16bit) 16.7 млн. (24bit)
640x4800. 5 MB 0 5 MB 1.0 MB 1.0 MB
800x6000. 5 MB 0.5 MB 1.0 MB 1.5 MB
1024x7680. 5 MB 1.0 MB 1.5 MB 2.5 MB
1280x1024 1.0 MB 1.5MB 2.5 MB 4.0 MB
1600x1200 1.0 MB 2.0MB 4.0 MB 6.0 MB
Однако стоит заметить, что изменение объема резервируемой под кадровый буфер памяти может иметь разную дискретность с шагом от 0.5MB до арифметической прогрессии (2N) и собственный "потолок", определяемые конкретной версией BIOS. Поэтому цифры в таблице являются "опорными" и возможно, что требуемый объем не удастся установить точно, в результате чего потребуется определить близкое (в ту или иную сторону) значение от необходимого.
PCI 2.1 Support
Параметр, определяющий поддержку спецификации шины PCI 2.1, параллельную работу которой, кроме "Passive Release" и "Delayed Transaction", характеризуют еще два механизма: Multi-Transaction Timer (MTT - таймер для нескольких транзакций, который позволяет устройствам, управляющим шиной PCI, сохранять за собой управление шиной и выполнять передачи коротких пакетов данных без повторной процедуры контроля шины, что дает возможность повысить производительность при обработке, например, видеоданных) и Enchanced Execute Recording (EER - улучшенная производительность при записи, которая достигается благодаря использованию буферов большей глубины, слиянию операций и более быстрому обновлению DRAM, в результате чего циклы записи оказывают меньшее воздействие на системную производительность, а при слиянии операций записи циклы байта, слова и двойного слова объединяются в единую операцию записи в память). Однако эти два режима в рассматриваемой спецификации включены по умолчанию и в контроле не нуждаются. Данная ревизия спецификации 2.1 расширяет поддерживаемые возможности версии 2.0: реализована возможность работы 64bit устройств PCI, кроме чего введен мостовой механизм PCI-to-PCI, позволяющий увеличивать максимальное число устанавливаемых периферийных устройств PCI- интерфейса - теперь их может быть более 4. Однако самое важное отличие - это специфический механизм Concurrent PCI. Теперь шина опирается на мультитранзакционный таймер, оптимизирующий производительность для коротких, но мощных потоков, что облегчает работу в режиме реального времени. Обмен данными по шине выполняется более эффективно. Задержки, вносимые задатчиками шины, снижаются, что облегчает эффективную одновременную работу процессора и PCI/ISA-устройств, потому как теперь каждый отдельный слот PCI носит качество управляющего (функционирует в режиме Bus Master).
Интересными являются также два уникальных механизма, позволяющих улучшить эффективность обмена данными между PCI и другими подсистемами. Так, буфер записи процессор-PCI-интерфейс (CPU-to-PCI Write Buffer) предоставляет возможность записи до четырех слов, поставленных в очередь интерфейсу PCI, после передачи команды готовности устройством принимать данные. Обычно же процессор может выполнять исключительно прямую запись в PCI и будет простаивать в ожидании, пока устройство не возвратит ответ о подтверждении готовности приема. Иными словами, использование данного буфера позволяет значительно уменьшить количество холостых тактов (Idle Cycles) в режиме ожидания процессора.
Режим предвыборки данных из памяти (PCI-to-DRAM Prefetch) используется во избежание повторяющихся фаз доступа в системное ОЗУ для извлечения и доставки небольших порций, которые можно предварительно выбрать из массива когерентных данных. Это значит, что данные постоянно находятся в буфере до того, как понадобятся, и могут быть доступны с минимальной задержкой.
Выключать же параметр "PCI 2.1 Support" следует, если установленная плата не соответствует версии 2.1 и при работе дает сбои. Если все периферийные устройства, используемые в системе, используют интерфейс PCI 2.1, то данный параметр рекомендуется включить.
Passive Release
Пассивное освобождение. Данный режим работы является своего рода "коньком" функционирования шины PCI, начиная с версии 2.0 - это реализация ее параллельной работы, которая позволяет более эффективно выполнять передачи данных между процессором, PCI и ISA интерфейсами для повышения скорости. Допуская чередующиеся обращения к шине от процессора и других устройств управления PCI, система может продолжать обработку запросов даже тогда, когда обращение от устройства интерфейса ISA полностью захватило шину. Иными словами, рассматриваемых механизм определяет согласованность циклов EISA/ISA и обращений CPU-to-PCI (процессор-устройство PCI), что дает возможность переопределить PCI-шину и позволяет процессору получить к ней прямой доступ и захватить управление. Поэтому включение (Enable) данного режима позволит периферийным компонентам, подключенным к шинам PCI и ISA, использовать меньше системных ресурсов.
Delayed Transaction
Задержанная (отложенная) транзакция. Интерфейс ISA функционирует на 1/4 от частоты синхронизации шины PCI, имея поэтому гораздо большие задержки. Если устройство PCI пытается получить доступ к системной шине в момент, когда ее заняло устройство ISA-интерфейса, в этом случае устройство PCI может произвести временную запись передаваемых данных в специальный буфер, из которого позднее данные в фазе пассивного освобождения выставятся на запись в системную шину. При этом устройства управления интерфейсов могут свободно воспользоваться шиной PCI, а передача данных на шину ISA может быть завершена позднее. Данный механизм чрезвычайно актуален, поскольку, например, цикл такого обращения устройства 8bit интерфейса ISA занимает около 50-60 тактов шины PCI. Поэтому задержанная транзакция позволяет более эффективно использовать шины PCI и ISA, что должно привести к более гладкой работе периферийных компонентов ISA- интерфейса и дать возможность одновременного доступа к устройствам на шинах ISA и PCI. Включение (Enable) этого параметра заметно облегчает согласованность данных интерфейсов, применяя 32bit буфер для поддержки увеличения временного цикла обмена на шине PCI. Однако, если в системе периферийная карта ISA- интерфейса не установлена, данный параметр рекомендуется выключить (Disable).
PCI Latency Timer
Таймер задержки на шине PCI. Каждый слот расширения, компонент интерфейса PCI имеет четко определенное количество тактов для получения непрерывного доступа к системной шине. С момента его получения каждый доступ сопрягается с начальной задержкой (пенальти), а соотношение между количеством холостых циклов и активных улучшается с увеличением циклов задержки шины (PCI Latency). В общем случае, допустимый диапазон значений задержек лежит в пределах от 0 до 255 с шагом, кратным 8. В случае присутствия в системе интерфейса ISA, задержка PCI не может быть увеличена более чем до 64 тактов. Увеличение задержки с 64 до 128 циклов системной шины должно увеличивать системную производительность на 15% (производительность также увеличивается, если увеличить задержку с 32 до 64 циклов).
AGP 2X Mode
Спецификация ускоренного графического порта (Accelerated Graphics Port) в своей основе содержит общие команды управления PCI с разницей в использовании возможности проведения прямых операций в памяти (DiME или DME - Direct (in) Memory Execute), наличия порта адресации (SBA - SideBand Addressing) и использования режима сквозной записи в системное ОЗУ (Fast Write).
Используя режим DiME, видеоадаптеры на основе шины AGP могут функционировать в двух режимах. В режиме DMA контролер ведет себя как обычное видеоустройство PCI, используя только собственную локальную память для хранения текстур и выполнения операций - режим функционирования DiME отключен. В случае использования режима Execute контроллер "унифицирует" часть системной памяти (именно этот объем указывается в параметре "AGP Aperture Memory Size") для хранения текстур, используя специфическую схему переадресации (GART - Graphic Address Remapping Table), динамически переназначая 4KB-страницы. Некоторые производители видеоконтроллеров не вводят поддержку режима DiME (AGP- текстурирование), используя интерфейс AGP только для совместимости, а реализуя лишь режим DMA. По сути дела, такой акселератор работает как обычный PCI- видеоадаптер лишь с "механической" разницей - частота функционирования увеличена в два раза: 66MHz у AGP против 33MHz у PCI.
Специфический порт адресации SBA дает возможность, используя фронт и срез синхросигнала, увеличивать результирующую (ее еще называют "эффективной") частоту шины AGP, не увеличивая при этом задающей (опорной) - 66MHz. AGP транзакции (пакет, в пределах которого несколько операций выполняются, как единое целое) используются только в режиме управления шиной (Bus Mastering) - в то время как обычная PCI транзакция в лучшем случае может передавать четыре 32bit слова за 5 тактов (так как передается адрес по линиям адреса/данных для каждого пакета из четырех слов), транзакция AGP может использовать Sideband для передачи адреса небольшими частями одновременно с данными. Во время передачи пакета из четырех слов передаются четыре части адреса для следующего пакетного цикла. По завершении цикла адрес и информация запроса для следующего пакета уже переданы, поэтому следующий пакет из четырех слов может стартовать немедленно. Таким образом, по AGP можно передать четыре слова за 4 цикла шины, а не за пять, необходимых для PCI, что, с учетом 66MHz частоты синхронизации, в идеале дает пиковую пропускную способность 264MBps.
Для более быстрой передачи информации процессор сначала записывает данные в системную память, а графический контроллер делает их выборку. Однако в случае передачи большого объема данных, пропускной способности системной памяти может не хватить, для чего внесен сквозной режим передачи - Fast Writes. Он позволяет процессору напрямую, не обращаясь к системной памяти, передавать данные графическому контроллеру, что, безусловно, достаточно ощутимо может поднять производительность графической подсистемы и снять часть нагрузки с основной подсистемы памяти ПК. Тем не менее, данный режим поддерживается не всеми системными логиками - состояния статусных регистров отдельных чипсетов запрещают на самом низком уровне его использование. Так, режим сквозной записи на данный момент реализован в некоторых чипсетах от Intel (серия i820, i840, i850 и i845x) и VIA (Apollo 133A, KX133, KT133 и все последующие). Системные логики i440хX, i810, i815, AMD-750, AMD-760 и AMD-760MPx данный режим не поддерживают.
Режим AGP 2X позволяет включать/выключать (Enable/Disable) удвоенный протокол передачи данных по интерфейсу AGP. Как уже говорилось, передача данных в спецификации AGP 1X осуществляется по фронту синхросигнала, используя 66MHz тактовый сигнал, обеспечивая в пике пропускную способность в 264MBps. Включение режима AGP 2X Mode удваивает пропускную способность при помощи передачи данных по фронту и срезу синхросигнала до теоретического "потолка" в 528MBps. При этом, понятно, обязательна поддержка спецификации AGP2X как базовой логикой, так и графическим контроллером. Выключение данного режима рекомендуется, если наблюдается нестабильная работа системы или планируется разгон (не учитывается для базовых логик с асинхронным интерфейсом AGP - например, серии i850 и i845x).
AGP Aperture Memory Size
Гипотетическое преимущество интерфейса AGP относительно PCI, если не учитывать схему синхронизации, состоит в том, что он позволяет использовать системное ОЗУ как часть унифицированной архитектуры (UMA - Unified Memory Architecture) для хранения данных, применяя ранее упоминавшийся режим DiME. Графический адаптер может получать доступ к данным и работать с ними прямо в системной памяти, минуя собственную локальную память. Эта особенность требует отведения четко заданного объема системного ОЗУ для использования под операции с графическими данными. По мере увеличения объема локальной видеопамяти графического контроллера, данная особенность резервирования части системной памяти, понятно, теряет собственную релевантность, в результате чего существует несколько рекомендаций по использованию объема отводимого участка основной памяти.
Вообще, апертура является частью диапазона адресного пространства системного ОЗУ, отведенного под графическую память. Ведущие циклы, подпадающие под этот диапазон апертуры, пересылаются к интерфейсу AGP без необходимости трансляции. Размер апертуры AGP определяется, как максимально используемая AGP память, умноженная на два (х2), плюс 12MB - это значит, что размер используемой памяти AGP составляет менее половины размера апертуры AGP. Данное обстоятельство объясняется тем, что система требует не кэшированную память AGP, плюс аналогичную по объему область памяти для комбинированной записи и дополнительные 12MB для виртуальной адресации. Физическая память освобождается по необходимости только когда API (программный слой) делает соответствующий запрос создания нелокальной поверхности (Create Non-local Surface). Операционные системы Windows 9х, например, используют эффект "водопада" (Waterfall Effect), когда поверхности сначала создаются в локальной памяти, а в случае ее заполнения, процесс создания поверхности передается в AGP память, а затем - в системную. Таким образом, использование ОЗУ автоматически оптимизируется для каждого приложения, где AGP- и системная память не используются без абсолютно крайней необходимости.
Однозначно дать схему определения оптимального размера апертуры очень сложно. Тем не менее, оптимум резервирования истемного ОЗУ может определяться следующей формулой: общий объем системного ОЗУ/(объем видео ОЗУ/2). Например, для видеоадаптера с 16MB видеопамяти в ПК со 128MB системного ОЗУ апертура AGP составит 128/(16/2)=16MB, а для видеоадаптера с 64MB видеопамяти в ПК с 256MB системного ОЗУ - 256/(64/2)=8MB. Данное решение является своего рода аппроксимацией - реально в любом случае рекомендуется отводить под апертуру не менее 16MB. Необходимо также помнить, что размер апертуры (по схеме 2N, или выбор между 32/64 MB) прямо не соответствует получаемой в результате производительности, поэтому увеличивая его до огромных пропорций, производительность не улучшиться. В настоящее время, при среднем объеме системного ОЗУ 128-256MB, практическим правилом считается иметь размер апертуры AGP от 64MB до 128MB. Превышая 128MB "барьер", производительность не ухудшается, но все равно лучше придерживаться "стандартных" 64-128 MB, чтобы размер таблицы GART не был слишком большой.
Другой "лобовой" рекомендацией, являющейся скорее результатом множественных практических экспериментов, может быть отведение под AGP Aperture Memory Size половины объема системного ОЗУ с учетом возможности BIOS: 8/16/32/64/128/256 MB (схема с шагом 2N) или выбор между 32/64 MB. Однако в системах с небольшим (до 64MB) и с большим (от 256 и более) объемом ОЗУ данное правило не всегда работает (сказывается эффективность), кроме чего, как говорилось ранее, надо еще и учитывать объем локального ОЗУ самой видеокарты. Поэтому рекомендации в данном контексте можно представить в виде следующей таблицы с учетом возможности BIOS:
Зависимость размера апертуры от объема системного ОЗУ
Объем системного ОЗУ AGP Aperture Size : Объем системного ОЗУ AGP Aperture Size
16MB 8/16 MB : 128MB 64MB
32MB 16/32 MB : 256MB 64/128 MB
64MB 32MB : 512MB 128MB
Spread Spectrum Modulated
Генератор синхросигналов (Clock Synthesizer/Driver) является источником пульсаций, предельные величины которых образуют электромагнитную интерференцию (EMI - ElectroMagnetic Interference) - электромагнитное излучение (помехи), проникающее за пределы среды передачи, главным образом за счет использования высоких частот для несущей и модуляции. В основе эффекта EMI лежит сложение двух или более частот, в результате чего спектр сигнала приобретает сложный характер. Спектральная модуляция тактового импульса (SSM, по-другому SSC - Spread Spectrum Clock) позволяет равномерно распределить ничтожно малые значения общего фона электромагнитного излучения, исходящего от любого функционирующего компонента системы, по всему частотному спектру синхроимпульса. Иными словами, SSM позволяет "скрыть" высокочастотные помехи на фоне полезного сигнала путем внесения в его спектр еще одного дополнительного сигнала, функционирующего в частотном диапазоне нескольких десятков килогерц (такого рода процесс и называется модуляцией).
Механизм SSM предназначается для уменьшения интерференции гармоник высших типов частоты функционирования шины. Теория сигналов говорит о том, что любая форма волны порождает высшие типы гармонических колебаний, которые аккумулируясь впоследствии могут стать помехой для основного сигнала. Одним из путей обхода данной проблемы является воздействие на основной сигнал определенной частоты модулирующих колебаний гораздо более низкой, что является результатом вариаций ±1% от номинального значения задающей. Обычно реализация SSM сводится к использованию двух разных значений, номинальная частота для которых является опорной, или установка основной частоты как максимума (низкопрофильная модуляция) - чаще к опорной. В действительности же существует масса причин и методов.
В основе стоит факт, что с увеличением частоты функционирования электронные компоненты излучают электромагнитные помехи, которые, в свою очередь, могут стать причиной интерференции сигналов других устройств. Поскольку любое устройство, которое превышает предел допустимых значений влияний сторонних сигналов, не проходит сертификацию федеральной комиссии по связи (FCC - Federal Communication Committee), важно понять методы определения уровня EMI. Для начала тестируемое устройство вводят в режим радиоприемника и определяют диапазон частоты приема в широком спектре с измерением интерференция с видео и аудио сигналами. Чувствительность полосы пропускания тестируемого устройства определяется в порядке 1MHz. Если основная рабочая частота модулируется, расширяя полосу пропускания на более чем типичные 4-5 MHz, спектр электромагнитной интерференции изменяется: вместо острых резких пиков (обычная форма проявления EMI) появляются так называемые "гауссовы колокола" (форма сигнала, сверху ограниченная кривой, описываемой гауссовым распределением), в результате чего результирующая амплитуда сигнала становится значительно меньше (1/3-1/4 от размера оригинального пика EMI). Однако, несмотря на это, энергетика остается постоянной. Поскольку ширина импульса становится больше, а закон сохранения энергии должен выполняться, амплитуда этого сигнала будет меньше.
Разрешение (Enable) модуляции спектра может уменьшить уровень ЭМИ, вызванный скоплением близкорасположенных компонентов, функционирующих на высоких частотах, и улучшить стабильность работы. В случаях использования внештатных условий ("разгон"), включение SSM может привести к нестабильной работе системы из-за того, что с большим значением коэффициента умножения, применяющегося в настоящее время, ±0.5% модуляции могут стать причиной разницы настолько, насколько, скажем, 10MHz для одного цикла модуляции. Иными словами, если процессор функционирует на предельной частоте, ее увеличение еще на 10MHz может стать фатальным, поэтому при работе системы во внештатных условиях функционирования (Overclocking) SSM настоятельно не рекомендуется использовать (Disable).
Autodetect DIMM/PCI Clk
В течение нормального функционирования системы синхросигналы от формирователя передаются через все слоты расширения интерфейсов памяти и PCI. Каждый отдельный слот и его выводы имеют собственные индуктивность, полное сопротивление и емкость, приводящие к ослаблению и затуханию синхросигнала. В добавление к этому сторонние сигналы являются источником EMF (Electric Motion Force, ЭДС) и EMI. Рассматриваемый параметр помогает автоматически определять и настраивать частоту функционирования модулей памяти и адаптеров интерфейса PCI. Его включение (Enable) позволяет уменьшить влияние электромагнитной интерференции на устанавливаемые в систему компоненты, что, в свою очередь, повышает общую стабильность работы всей системы в целом.
+++++++++++++
Резюме
Итак, ясно одно: однозначно высокоскоростную и чрезвычайно надежную систему можно получить, используя только достаточно качественную память. Это значит, что на данный момент современная память, если она, например, SDRAM, должна жестко удовлетворять все техническим требованиям, выдвигаемым, как минимум, в рамках спецификации РС100. Приобретая память, отвечающую требованиям РС133, Вы получаете дополнительную гарантию, что те параметры, которые описывались ранее, можно смело установить в рекомендуемый минимум (максимум) и получить максимально быструю и одновременно надежную систему. Саму степень "способности к разгону" и отказоустойчивости каждый модуль памяти, равно как и системная (материнская) плата, определяет по-своему. Именно поэтому четкой рекомендации относительно устанавливаемых параметров дать практически нереально. Но, с другой стороны, есть уже готовая схема настройки, придерживаясь которой можно, затратив некоторое время, создать собственную систему, обеспечивающую максимальные показатели производительности и гарантированного функционирования. На вопрос, как поведет себя модуль памяти, да и система в целом, с установленными в BIOS настройками, однозначно может ответить только конкретная ОС и специализированные тестовые пакеты, которые в состоянии достаточно сильно нагрузить подсистему памяти, тщательно ее проверить и указать на возможные сбои или ошибки. Иными словами, только знание и понимание всех описанных ранее параметров, а также терпение и время позволят добиться желаемого результата в достижении заветной цели любого пользователя ПК: собрать максимально быструю и отказоустойчивую систему - идеал соотношения "качество/ производительность".
Q.После установки модема (WinModem, PCI) при загрузке компьютера выдается сообщение "Checking NVRAM: Update Failed" (материнка Gigabyte 7ZXE)?
A.Если BIOS находит новое Plug&Play-устройство, он обновляет область данных, в которой хранится конфигурационная информация (ESCD — Extended System Configuration Data). Эта область данных располагается на flash-микросхеме — там же, где и BIOS. Фирма AMI называет флеш- память "NVRAM" (Non-Volatile Memory). Запись в нее может быть запрещена в BIOS (Flash Protect, BIOS Write Protect), поставлена перемычка или, в худшем случае, микросхема может быть повреждена.
Q. В Ami Bios опция PME Event Wake Up function. Какую функцию она выполняет?
A.Это настройка "пробуждения" компьютера из одного из S-режимов (режимов "сна") по сигналу от различных прерываний. Можно настроить отслеживание активности мыши, клавиатуры, таймера, и т.д.
Поддержка Tualatin Добавление поддержки Tualatin в Award BIOS.
Подробности распаковки и запаковки прошивки уже были изложены в статье «Редактируем Award BIOS». Поэтому разговор будет вестись лишь о редактировании конкретно original.tmp.
Главные отличия инициализации Tualatin от Coppermine/Mendocino:
- другой CPUID: 6Bx
- другая «таблица» коэффициентов (точнее – даже две)
Итак, что предстоит сделать:
- добавить определение CPUID 6Bx (и вывод соответствующего названия)
- добавить определение «туалатиновского» коэффициента умножения
- добавить «туалатиновские» микрокоды (6B0, 6B1)
В идеальном случае это всё. Дополнительно может понадобиться (в основном на платах, изначально не поддерживающих Coppermine или «крайне» брэндовых, типа MSI, Asus сотоварищи):
- исправить (исключить) неправильную инициализацию L2-кэша
- исправить неправильное отображение названия/частоты процессора из-за старого алгоритма вывода на экран
++
Как будем добавлять?
Понятно, что изменять размер original.tmp нельзя. Как же (куда) добавить «свою» подпрограмму? А просто – в original.tmp есть достаточно много пустого места, куда и можно вставить свои подпрограммы. Например, в конце первого сегмента (адреса ~F800-FA00 - FFFF), как правило, всегда есть 1-2kB неиспользуемого, непрерывно пустого пространства. Этого нам вполне хватит.
У меня есть «универсальная» подпрограммка (точнее, «сборка»), в ней реализованы:
- детект коэффициента (с таблицами коэффициентов)
- детект имени (с самими именами)
- таблица степпингов (для брэндовских матерей)
Копируем её (с помощью любого hex-редактора) по адресу FC00 (именно на этот «стартовый» адрес она рассчитана, хотя чуть подредактировав, можно вставить её и по другому адресу).
Если вы уже скопировали её в original.tmp по FC00, то по адресу:
FF00 – определение имени процессора (FC00 – начало таблицы названий процессоров)
FDF0 – определение коэффициента (FD80-FDEF – таблица коэффициентов)
скопирована именно
FFB0 – таблица степпингов (нужна лишь для брэндовых/старых матерей)
Примечание:
В сборке реализована инициализация сразу всех процессоров (в том числе частично – VIA/Cyrix III), т.к. делать лишь «добавку» туалатина очень неудобно. Код подпрограмм в сборке не до конца оптимизирован, т.к. находится в постоянном процессе переработки. Однако, главное - он точно рабочий, а кто хочет что-то изменить-добавить, может использовать исходники.
Вариант 1. Правка биоса для «новых» плат (в основном – «безродных», т.е. не «брэндов»). Рассмотрим на примере прошивки PCPartner i440BX модели p930 (маркировка 35(C)-8930-xx), биос ver. “BIOS-I-2M (2K001120)”, 11/20/ 2000.
1. Добавление CPUID.
Ищем строчку “GenuntelineI” (можно лишь по “Genu”).
00003540: 32 80 E4 F7-0F 30 66 61-C3 75 35 47-65 6E 75 6E 2Афў00fa+u5Genun
00003550: 74 65 6C 69-6E 65 49 C1-35 43 79 72-69 74 65 61 telineI+5Cyritea
00003560: 64 78 49 6E-73 CE 35 43-65 6E 74 61-75 6C 73 61 dxIns+5Centaulsa
00003570: 75 72 48 FF-FF 24 F0 3C-60 74 2D 66-B9 1E 01 00 urH $Ё<`t-f¦^O
Два байта сразу перед ней – смещение начала подпрограммы определения процессора (для старых/брэндовских плат – это таблица степпингов, но этот случай рассмотрим позже). Переходим по этому адресу – 3575 («наоборот», т.к. это “word”):
00003575: 24F0 and al,0F0 ;"Ё"
;это и есть подпрограмма определения CPU:
00003577: 3C60 cmp al,060 ;"`"
00003579: 742D je 0000035A8 -------- (4)
0000357B: 66B91E010000 mov ecx,00000011E ;" O^"
00003581: 0F32 rdmsr
00003583: 662500008000 and eax,000800000 ;" А "
00003589: 751D jne 0000035A8 -------- (5)
0000358B: 66B801000000 mov eax,000000001 ;" O"
00003591: 0FA2 cpuid
00003593: 3C6A cmp al,06A ;"j"
00003595: 7505 jne 00000359C -------- (6)
00003597: BEBD8F mov si,08FBD ;"П-"
0000359A: EB1D jmps 0000035B9 -------- (7)
0000359C: 3C80 cmp al,080 ;"А"
0000359E: 720D jb 0000035AD -------- (8)
000035A0: 0ADB or bl,bl
000035A2: 7409 je 0000035AD -------- (9)
000035A4: FECB dec bl
000035A6: 7509 jne 0000035B1 -------- (A)
000035A8: BEAB8F mov si,08FAB ;"Пл"
000035AB: EB0C jmps 0000035B9 -------- (B)
000035AD: 3C70 cmp al,070 ;"p"
000035AF: 7205 jb 0000035B6 -------- (C)
000035B1: BE888F mov si,08F88 ;"ПИ"
000035B4: EB03 jmps 0000035B9 -------- (D)
000035B6: BE9A8F mov si,08F9A ;"ПЪ"
;На выходе подпрограммы определения процессора – смещение строчки его имени:
000035B9: 89B62D02 mov [bp][0022D],si
000035BD: E877FF call 000003537 -------- (E)
000035C0: C3 retn
Это и есть подпрограмма определения процессора. Меняем её на свою (по смещению FF00):
00003575: E888C9 call 00000FF00
00003578: E93E00 jmp 0000035B9
; этот код в результате просто пропускается:
0000357B: 66B91E010000 mov ecx,00000011E ;" O^"
00003581: 0F32 rdmsr
…
000035B4: EB03 jmps 0000035B9
000035B6: BE9A8F mov si,08F9A ;"ПЪ"
; делаем jmp сюда, чтобы полученное нашей подпрограммой смещение (si) имени процессора было занесено в память:
000035B9: 89B62D02 mov [bp][0022D],si ; <--------
000035BD: E877FF call 000003537
000035C0: C3 retn
2. Вычисляем коэффициент.
Таблица коэффициентов всегда начинается «мендочинистыми», поэтому очень просто её найти по “0A 06 08 04” (hex):
00003610: 04 C3 8B C0-0A 06 08 04-0B 07 09 05-07 0E 10 0C ¦+ЛL0¦•¦>•0¦•d>+
00003620: 04 0F 03 0D-12 16 18 04-13 17 11 05-07 0E 10 14 ¦0¦d¦-^¦!¦<¦•d>¶
00003630: 04 0F 03 15-00 06 08 0A-05 07 09 0B-0C 0E 0D 0F ¦0¦§ ¦•0¦•0>+dd0
00003640: 0D 0F 00 00-0A 06 08 06-0B 07 09 06-0A 0E 10 0C d0 0¦•¦>•0¦0d>+
00003650: 06 0F 06 0D-0A 06 08 14-0B 07 09 16-12 0E 10 0C ¦0¦d0¦•¶>•0-¦d>+
00003660: 18 0F 1A 0D-E8 3E 5A 75-1A B1 C3 E8-89 07 0C 40 ^0>dш>Zu>-+шЙ•+@
Опять же по клавише F6 в hiew находим, где загружается адрес 3614h (коэффициенты для Mendocino):
00003699: B85436 mov ax,03654 ;"6T"
0000369C: 80BE310270 cmp b,[bp][00231],070 ;"p"
000036A1: 7403 je 0000036A6 -------- (9)
000036A3: B84436 mov ax,03644 ;"6D"
000036A6: 03F0 add si,ax
000036A8: EB0F jmps 0000036B9 -------- (A)
000036AA: E80D00 call 0000036BA -------- (B)
000036AD: 7206 jb 0000036B5 -------- (C)
000036AF: 81C62436 add si,03624 ;"6$"
000036B3: EB04 jmps 0000036B9 -------- (D)
000036B5: 81C61436 add si,03614 ;"6¶" <------------- koef Mendocino
000036B9: C3 retn
Находим начало этой подпрограммы:
0000363B: 0B0C or cx,[si]
0000363D: 0E push cs
0000363E: 0D0F0D or ax,00D0F ;"d0"
00003641: 0F0000 sldt [bx][si]
00003644: 0A060806 or al,[00608]
00003648: 0B07 or ax,[bx]
0000364A: 09060A0E or [00E0A],ax
0000364E: 100C adc [si],cl
00003650: 06 push es
00003651: 0F06 clts
00003653: 0D0A06 or ax,0060A ;"¦0"
00003656: 0814 or [si],dl
00003658: 0B07 or ax,[bx]
0000365A: 0916120E or [00E12],dx
0000365E: 100C adc [si],cl
00003660: 180F sbb [bx],cl
00003662: 1A0D sbb cl,[di]
; всё выше – явный бред, в смысле – данные, а не код.
; А вот дальше и есть подпрограмма определения коэффициента
; убедиться в том, что это и есть точка входа можно, опять же, по F6 – подпрограмма должна где-нибудь вызываться
00003664: E83E5A call 0000090A5 -------- (1) ; проверка на Cyrix-ность :)
00003667: 751A jne 000003683 -------- (2)
00003669: B1C3 mov cl,0C3 ;"+"
0000366B: E88907 call 000003DF7 -------- (3)
0000366E: 0C40 or al,040 ;"@"
00003670: E87707 call 000003DEA -------- (4)
00003673: B148 mov cl,048 ;"H"
00003675: E87F07 call 000003DF7 -------- (5)
00003678: 83E00F and ax,00F ;"0"
0000367B: 8BF0 mov si,ax
0000367D: 81C63436 add si,03634 ;"64"
00003681: EB36 jmps 0000036B9 -------- (6)
; нет – «нормальный» процессор
00003683: 66B92A000000 mov ecx,00000002A ;" *"
00003689: 0F32 rdmsr
; считываем MSR_2Ah
0000368B: 66C1E816 shr eax,016 ;"-"
0000368F: 83E00F and ax,00F ;"0"
; MSR_2Ah[22-26] – 4 бита коэффициента
00003692: 8BF0 mov si,ax
00003694: E8F959 call 000009090 -------- (7)
; проверка на другую цыриксность ;)
00003697: 7511 jne 0000036AA -------- (8)
00003699: B85436 mov ax,03654 ;"6T"
0000369C: 80BE310270 cmp b,[bp][00231],070 ;"p"
000036A1: 7403 je 0000036A6 -------- (9)
000036A3: B84436 mov ax,03644 ;"6D"
000036A6: 03F0 add si,ax
000036A8: EB0F jmps 0000036B9 -------- (A)
; опять – «нормальный» процессор :)
000036AA: E80D00 call 0000036BA -------- (B)
; проверка копер-некоппер
000036AD: 7206 jb 0000036B5 -------- (C)
000036AF: 81C62436 add si,03624 ;"6$"
000036B3: EB04 jmps 0000036B9 -------- (D)
000036B5: 81C61436 add si,03614 ;"6¶"
000036B9: C3 retn
На выходе – лишь смещение строки коэффициентов процессора. Поэтому просто заменяем всю эту подпрограмму на нашу:
00003660: 180F sbb [bx],cl
00003662: 1A0D sbb cl,[di]
00003664: E889C7 jmp 00000FDF0
00003667: 751A jne 000003683
00003669: B1C3 mov cl,0C3 ;"+"
………
3. Добавление микрокодов.
Ничего особенного – подробно расписано на iXBT. Могу лишь предупредить – обязательно проверяйте прошивку после добавления микрокодов с помощью открытия её в modbin-е. Ежели матернётся – что-то сделали не так.
Примечание: некоторые версии cbrom некорректно перепаковывают прошивки – например, cbrom ver.2.15 неправильно работает с большинством старых биосов (хотя всё показывает без проблем), поэтому в таком случае пользуйтесь ver. 2.07).
Вариант 2. Правим «брэнд» - i440BX/MSI-6163 ver.3.10 (10/11/2000).
1. Добавление CPUID.
Ищем строчку “GenuntelineI” (можно лишь по “Genu”).
00003E40: 5D CF 52 3E-47 65 6E 75-6E 74 65 6C-69 6E 65 49 ]¦R>GenuntelineI
00003E50: FF FF 10 06-D1 10 10 16-D1 10 30 16-D1 10 30 06 >¦T>>-T>0-T>0¦
00003E60: D1 10 50 06-D1 10 60 06-D1 10 70 06-D1 10 80 06 T>P¦T>`¦T>p¦T>А¦
00003E70: D1 10 FF FF-2E 8B C0 2E-8B C0 2E 8B-C0 2E 8B C0 T> .ЛL.ЛL.ЛL.ЛL
По смещению 3E52h находится таблица поддерживаемых степпингов (такой способ инициализации остался в наследство от старых P1):
00003E40: 5D CF 52 3E-47 65 6E 75-6E 74 65 6C-69 6E 65 49 ]¦R>GenuntelineI
00003E50: FF FF 10 06-D1 10 10 16-D1 10 30 16-D1 10 30 06 >¦T>>-T>0-T>0¦
00003E60: D1 10 50 06-D1 10 60 06-D1 10 70 06-D1 10 80 06 T>P¦T>`¦T>p¦T>А¦
00003E70: D1 10 FF FF-2E 8B C0 2E-8B C0 2E 8B-C0 2E 8B C0 T> .ЛL.ЛL.ЛL.ЛL
На каждый степпинг – четыре байта: два на «маску» и два на никому не нужные его характеристики, оставшиеся, вообще, ещё от 386-х (т.е. есть ли сопроцессор и прочая ерунды, не используемая в коде биоса), соответственно – это всегда будет D1 10.
Переделываем ссылку на наши степпинги:
00003E40: 5D CF FF B0-47 65 6E 75-6E 74 65 6C-69 6E 65 49 ]¦ -GenuntelineI
00003E50: FF FF 10 06-D1 10 10 16-D1 10 30 16-D1 10 30 06 >¦T>>-T>0-T>0¦
00003E60: D1 10 50 06-D1 10 60 06-D1 10 70 06-D1 10 80 06 T>P¦T>`¦T>p¦T>А¦
00003E70: D1 10 FF FF-2E 8B C0 2E-8B C0 2E 8B-C0 2E 8B C0 T> .ЛL.ЛL.ЛL.ЛL
Чтоб найти подпрограмму определения процессора, делаем поиск, например, по “Celeron”:
00007BA0: 7B AE 7B AE-7B DD 7B AE-7B AF 7B AF-7B 00 00 43 {о{о{¦{о{п{п{ C
00007BB0: 79 72 69 78-20 4D 65 64-69 61 47 58-20 57 69 74 yrix MediaGX Wit
00007BC0: 68 20 4D 4D-58 00 49 20-58 45 4F 4E-28 74 6D 29 h MMX I XEON(tm)
00007BD0: 00 50 45 4E-54 49 55 4D-20 49 49 49-00 50 45 4E PENTIUM III PEN
00007BE0: 54 49 55 4D-20 49 49 00-49 4E 54 45-4C 28 52 29 TIUM II INTEL(R)
00007BF0: 20 43 45 4C-45 52 4F 4E-28 54 4D 29-00 4D 6F 62 CELERON(TM) Mob
00007C00: 69 6C 65 20-50 65 6E 74-69 75 6D 20-49 49 00 50 ile Pentium II P
00007C10: 45 4E 54 49-55 4D 20 50-52 4F 00 00-00 55 6E 6B ENTIUM PRO Unk
00007C20: 6E 6F 77 6E-00 66 60 50-E8 76 00 3C-30 58 73 1F nown f`Pшv <0XsЎ
Мы нашли таблицу имён процессоров, выбираем какое-нибудь из них для поиска, где загружается смещение имени. Я обычно ищу по “Mobile”:
...
00007B0D: BEFD7B mov si,07BFD ; <------ загрузка смещения “Mobile”
00007B10: EB19 jmps 000007B2B -------- (5)
00007B12: 24F0 and al,0F0 ;"Ё"
00007B14: 3C60 cmp al,060 ;"`"
00007B16: 7410 je 000007B28 -------- (6)
…
Находим начало подпрограммы (будет после ret предыдущей)
00007AE8: C22C3D retn 03D2C ;"=,"
00007AEB: C3 retn
; начало подпрограммы определения процессора
00007AEC: 8A463D mov al,[bp][0003D]
00007AEF: 247E and al,07E ;"~"
00007AF1: 3C58 cmp al,058 ;"X"
00007AF3: BE1D7C mov si,07C1D ;"|-"
00007AF6: 7708 ja 000007B00 -------- (1)
00007AF8: 0FB6F0 movzx si,al
00007AFB: 2E8BB4557B mov si,cs:[si][07B55]
00007B00: 81FEDD7B cmp si,07BDD ;"{¦"
00007B04: 754E jne 000007B54 -------- (2)
00007B06: E89801 call 000007CA1 -------- (3)
00007B09: 3C6A cmp al,06A ;"j"
00007B0B: 7505 jne 000007B12 -------- (4)
00007B0D: BEFD7B mov si,07BFD ; <------ загрузка смещения “Mobile”
00007B10: EB19 jmps 000007B2B -------- (5)
00007B12: 24F0 and al,0F0 ;"Ё"
00007B14: 3C60 cmp al,060 ;"`"
00007B16: 7410 je 000007B28 -------- (6)
00007B18: 66B91E010000 mov ecx,00000011E ;" O^"
00007B1E: 0F32 rdmsr
00007B20: 662500008000 and eax,000800000 ;" А "
00007B26: 7403 je 000007B2B -------- (7)
00007B28: BEE87B mov si,07BE8 ;"{ш"
00007B2B: 66B801000000 mov eax,000000001 ;" O"
00007B31: 0FA2 cpuid
00007B33: 3C80 cmp al,080 ;"А"
00007B35: 720D jb 000007B44 -------- (8)
00007B37: 0ADB or bl,bl
00007B39: 7409 je 000007B44 -------- (9)
00007B3B: BEE87B mov si,07BE8 ;"{ш"
00007B3E: FECB dec bl
00007B40: 7412 je 000007B54 -------- (A)
00007B42: EB04 jmps 000007B48 -------- (B)
00007B44: 3C70 cmp al,070 ;"p"
00007B46: 7205 jb 000007B4D -------- (C)
00007B48: BED17B mov si,07BD1 ;"{T"
00007B4B: EB07 jmps 000007B54 -------- (D)
00007B4D: 3C30 cmp al,030 ;"0"
00007B4F: 7303 jae 000007B54 -------- (E)
00007B51: BE0F7C mov si,07C0F ;"|0"
00007B54: C3 retn
В подпрограмме выходной параметр лишь “si” процессора, так что просто заменяем на нашу:
00007AE8: C22C3D retn 03D2C ;"=,"
00007AEB: C3 retn
00007AEC: E91184 jmp 00000FF00
00007AEF: 247E and al,07E ;"~"
00007AF1: 3C58 cmp al,058 ;"X"
…
2. Вычисляем коэффициент.
Ищем начало коэффициентов по “0A 06 08 04” (hex):
00003F90: 0A 06 08 04-0B 07 09 05-07 0E 10 0C-04 0F 03 0D 0¦•¦>•0¦•d>+¦0¦d
00003FA0: 12 16 18 04-13 17 11 05-07 0E 10 14-04 0F 03 15 ¦-^¦!¦<¦•d>¶¦0¦§
Находим, где они загружаются:
00004022: 7206 jb 00000402A -------- (4)
00004024: 81C6A03F add si,03FA0 ;"?а"
00004028: EB04 jmps 00000402E -------- (5)
0000402A: 81C6903F add si,03F90 ; <---- koef Mendocino
0000402E: 2E0FB60C movzx cx,b,cs:[si]
00004032: 8BC3 mov ax,bx
00004034: 33D2 xor dx,dx
00004036: D1E0 shl ax,1
00004038: F7F9 idiv cx
…
Находим начало подпрограммы вычисления частоты процессора:
00004002: 7058 jo 00000405C -------- (1)
00004004: 022D add ch,[di]
00004006: 3260F4 xor ah,[bx][si][-000C]
00004009: 0100 add [bx][si],ax
; выше – бред, в смысле – данные
; начало
0000400B: E82102 call 00000422F ; подпрограмма вычисления частоты процессора
; далее вычисляем коэффициент
0000400E: 66B92A000000 mov ecx,00000002A ;" *"
00004014: 0F32 rdmsr
00004016: 66C1E816 shr eax,016 ;"-"
0000401A: 83E00F and ax,00F ;"0"
0000401D: 8BF0 mov si,ax
0000401F: E8BD00 call 0000040DF -------- (3)
00004022: 7206 jb 00000402A -------- (4)
00004024: 81C6A03F add si,03FA0 ;"?а"
00004028: EB04 jmps 00000402E -------- (5)
0000402A: 81C6903F add si,03F90
; и заносим его в cx для вычисления FSB и последующего «округления» частоты процессора
0000402E: 2E0FB60C movzx cx,b,cs:[si]
00004032: 8BC3 mov ax,bx
00004032: 8BC3 mov ax,bx
00004034: 33D2 xor dx,dx
00004036: D1E0 shl ax,1
00004038: F7F9 idiv cx
…
Нас интересует лишь часть, где вычисляется коэффициент, меняем её:
0000400B: E82102 call 00000422F
0000400E: E8DFBD call 00000FDF0
00004011: E91A00 jmp 00000402E
; этот код просто пропускается
00004014: 0F32 rdmsr
00004016: 66C1E816 shr eax,016 ;"-"
0000401A: 83E00F and ax,00F ;"0"
0000401D: 8BF0 mov si,ax
0000401F: E8BD00 call 0000040DF
00004022: 7206 jb 00000402A
00004024: 81C6A03F add si,03FA0 ;"?а"
00004028: EB04 jmps 00000402E
0000402A: 81C6903F add si,03F90 ;"?Р"
;делаем jmp сюда
0000402E: 2E0FB60C movzx cx,b,cs:[si] ; <------
00004032: 8BC3 mov ax,bx
…
3. Добавление микрокодов.
Аналогично предыдущему варианту.
4. Дополнительные проверки.
Старые платы Slot1, поддерживающие ещё даже и прародителя PentiumPro (как и в этом случае), имеют расширенную инициализацию L2- кэша. Для того, чтоб не применять её к новым процессорам, где подобная инициализация не нужна, нужно сделать возможность пропустить этот участок кода и для Tualatin.
Ищем место кода, где есть проверка на коппермайнистость - ищем по маске CPUID коппера 0680h, т.е. “80 06”(hex). После нескольких вариантов, находим именно проверку:
00004599: 0F8CAC01 jl 000004749
0000459D: 8BD8 mov bx,ax
0000459F: 66B91E010000 mov ecx,00000011E
000045A5: 0F32 rdmsr
000045A7: 662500008000 and eax,000800000
000045AD: 0F859801 jne 000004749
000045B1: 81FB8006 cmp bx,00680 ;"¦А"
000045B5: 0F849001 je 000004749 -------- (7)
000045B9: 81FB3006 cmp bx,00630 ;"¦0"
И заменяем её на такую, чтоб условие подходило и для туалатинов и при этом вписывалось в объём исправленного:
00004599: 0F8CAC01 jl 000004749
0000459D: 8BD8 mov bx,ax
0000459F: 66B91E010000 mov ecx,00000011E
000045A5: 0F32 rdmsr
000045A7: 662500008000 and eax,000800000
000045AD: 0F859801 jne 000004749
000045B1: 80FB80 cmp bl, 080 ;"А"
000045B4: 7203 jb 0000045B9
000045B6: E99001 jmp 000004749
000045B9: 81FB3006 cmp bx,00630 ;"¦0
Хотя, честно говоря, этот пункт, ИМХО, не принципиален и вряд ли влияет на работу L2 новых процессоров.
Итого. Как видно, процесс добавления поддержки туалатинов для человека, имеющего опыт работы с hiew/asm - достаточно простой. Для неопытного – покажется полным кошмаром. Поэтому если вы относитесь ко второму случаю – лучше подождите, пока прошивка для вашей платы появится на bios.rom.by.
сбрасывался ли CMOS - там в BIOS есть одна опция, с включением которой ни Duron, ни Athlon работать не будут, за исключением AthlonXP - Processor Number Features (между прочим, расшифровка в мануале напоминает первоапрельскую шутку - If you have Pentium III installed on the mainboard. Enable this option allows the serial code inside the Pentium III processor to be published on certain applicaition)
CMOS-память компьютера содержит 128 регистров. Назначение каждого варьируется в зависимости от версии BIOS, но существуют некоторые закономерности, приведенные в конце документа и распространяющиеся на большинство компьютеров.
Приложение: назначение основных регистров CMOS-памяти
В КМОП-памяти хранится текущее время и дата, сведения о конфигурации системы,результат тестирования при включении питания и другая информация, приведенная в следующей таблице:
Адрес ячейки Содержимое
00h - 0Dh Используются часами реального времени
0Eh Байт состояния диагностики при включении питания
0Fh Байт состояния отключения
10h Тип используемого НГМД
11h Зарезервировано
12h Тип НМД (если тип меньше 15)
13h Зарезервировано
14h Конфигурация оборудования
15h - 16h Объем основной памяти
17h - 18h Объем расширенной (extended) памяти
19h Тип первого НМД (если тип > 15)
1Ah Тип второго НМД (если тип > 15)
1Bh - 20h Зарезервировано
21h - 2Dh Зарезервировано
2Eh - 2Fh Контрольная сумма ячеек 10h - 20h
30h - 31h Объем расширенной (extended) памяти
32h Текущее столетие в двоично-десятичном коде (19h для 19-го столетия)
33h Различная информация
34h - 3Fh Зарезервировано
++
Рассмотрим подробно назначение отдельных ячеек КМОП-памяти.
00h - 0Dh - область часов реального времени
Ячейки с адресами 00h - 0Dh используются часами реального времени. Часам реального времени будет посвящена отдельная глава, поэтому сейчас мы не станем останавливаться на этих ячейках.
0Eh - байт состояния диагностики
Байт состояния диагностики (расположенный в КМОП-памяти по адресу 0Eh) содержит результаты выполнения диагностики при включении питания компьютера. Выполнив анализ содержимого байта 0Eh, программа может выявить неисправность НМД, часов реального времени, разрядку аккумулятора и ошибки в конфигурации. Приведем формат этого байта:
Бит Значение
0-1 Не используется, равно 0;
2 0 - неправильная установка часов реального времени;
1 - часы реального времени установлены правильно;
3 1 - неисправность НМД, невозможно загрузить
операционную систему с жесткого диска;
0 - НМД исправен;
4 1 - фактический размер оперативной памяти не
соответствует указанному в КМОП-памяти;
0 - размер оперативной памяти указан правильно;
5 1 - ошибка в конфигурации системы, фактическая
конфигурация не соответствует указанной в
байте конфигурации оборудования (адрес 14h);
0 - конфигурация указана правильно;
6 1 - ошибка в контрольной сумме КМОП-памяти;
0 - контрольная сумма КМОП-памяти правильная;
7 1 - разрядка аккумулятора, питающего КМОП-память и
часы реального времени;
0 - аккумулятор исправен и заряжен.
0Fh - байт состояния отключения
Байт состояния отключения 0Fh используется процессорами 80286, 80386 и 80486 для определения способа возврата из защищенного режима в реальный после аппаратного сброса.
Вы, вероятно, знаете, что эти процессоры могут работать либо в реальном режиме, который соответствует режиму работы процессора 8086, либо в защищенном. Защищенный режим работы используется такими операционными системами, как OS/2, UNIX, XENIX, а также операционными оболочками WINDOWS/386 и WINDOWS версии 3.0. В этом режиме процессор может непосредственно адресовать всю память, лежащую выше границы 1 мегабайт.
Подробное рассмотрение защищенного режима работы выходит за рамки данной книги. Расскажем кратко о переходе из реального режима в защищенный и обратно для иллюстрации использования ячейки КМОП-памяти с адресом 0Fh.
Для перевода процессора 80286 из реального режима в защищенный можно использовать специальную команду LMSW:
mov ax,1
lmsw ax
Разумеется, двух строк, приведенных выше, недостаточно для правильной работы процессора в защищенном режиме.
Для того, чтобы вернуть процессор 80286 из защищенного режима в реальный, необходимо выполнить аппаратный сброс (отключение) процессора. Это можно сделать следующим образом:
mov ax, 0FEh ; команда отключения
out 64h, ax
Перед выдачей команды отключения программа должна записать в ячейку 0Fh КМОП-памяти причину отключения:
Значение Причина отключения
0 Программный сброс при нажатии комбинации клавиш CTRL-ALT-DEL или неожиданный сброс. Выполняется обычный перезапуск системы, но процедуры тестирования при включении питания не выполняются.
1 Сброс после определения объема памяти.
2 Сброс после тестирования памяти.
3 Сброс после обнаружения ошибки в памяти (контроль четности).
4 Сброс с запросом перезагрузки.
5 После сброса перезапускается контроллер прерываний, затем управление передается
по адресу, который находится в области данных BIOS 0000:0467h.
6,7,8 Сброс после выполнения теста работы процессора в защищенном режиме.
9 Сброс после выполнения пересылки блока памяти из основной памяти в расширенную.
0Ah После сброса управление немедленно передается по адресу, взятому из области данных BIOS 0000:0467h.
Для перевода процессоров 80386 и 80486 из реального режима в защищенный и обратно можно использовать загрузку специального управляющего регистра CR0 обычной командой MOV. Однако будет работать и метод, основанный на применении команды LMSW и команды отключения.
Вы можете использовать сведения о команде отключения для организации программного перезапуска системы.
10h - тип используемых флоппи-дисков;
Младшая и старшая тетрады этого байта описывают соответственно второй и первый НГМД:
0000 - дисковод не установлен;
0001 - дисковод на 360К;
0010 - дисковод на 1,2М;
0011 - дисковод на 720К;
0100 - дисковод на 1.44М.
11h - зарезервировано для AT, тип НМД для PS/2
В компьютерах PS/2 ячейки КМОП-памяти с адресами 11h и 12h используются для хранения типов, соответственно, первого и второго НМД.
12h - типы первого и второго НМД
Этот байт разделен на две тетрады аналогично байту, описывающему НГМД. Однако в тетраде можно закодировать только 16 различных значений, а типов НМД значительно больше. Поэтому тип 15 используется специальным образом - если тип НМД в младшей тетраде (диск C:) равен 15, то правильное значение типа находится в КМОП-памяти по адресу 19h. Аналогично для диска D: этот тип можно взять из байта по адресу 1Ah (если старшая тетрада байта с адресом 12h равна 15).
Таблица используемых типов дисков была приведена в третьей книге первого тома, в разделе, посвященном конфигурации дисковой подсистемы. Кроме того, сведения о типах дисков, задаваемых программой SETUP, обычно приводятся в документации, поставляемой вместе с компьютером.
13h - зарезервировано
Эта ячейка КМОП-памяти зарезервирована для дальнейшего развития системы.
14h - конфигурация оборудования
В этом байте находится информация о количестве установленных НГМД, о наличии арифметического сопроцессора 80287 или 80387 и о типе используемого дисплейного контроллера. Приведем формат байта конфигурации:
Бит Значение
0 1 - в системе установлены НГМД;
0 - НГМД не используются;
1 1 - установлен арифметический сопроцессор 80287 или
80387;
0 - арифметический сопроцессор не установлен;
2-3 не используются, равны 0;
4-5 тип дисплейного контроллера и его режим:
Биты: 5 4
0 0 - не используется или EGA;
0 1 - CGA, EGA, VGA в режиме 40x25;
1 0 - CGA, EGA, VGA в режиме 80x25;
1 1 - монохромный контроллер;
6-7 количество используемых НГМД:
Биты: 7 6
0 0 - установлен 1 НГМД
0 1 - установлен 2 НГМД
1 0 - установлен 3 НГМД
1 1 - установлен 4 НГМД
15h-16h - объем основной памяти
Ячейка 15h содержит младший байт, а ячейка 16h - старший байт объема основной памяти. Например:
0100h - 256K
0200h - 512K
0280h - 640K
17h-18h - объем дополнительной памяти
Ячейки 17h и 18h содержат, соответственно, младший и старший байты размера дополнительной памяти (расположенной выше границы 1 М) в килобайтах.
19h-1Ah типы первого и второго НМД
Эти ячейки содержат типы, соответственно, первого и второго НМД, если соответствующий тип имеет значение, большее 15 (см. описание ячейки 12h).
1Bh-2Dh - зарезервировано
Эти ячейки КМОП-памяти зарезервированы для дальнейшего развития системы.
2Eh-2Fh - контрольная сумма ячеек 10h - 20h
Для ячеек КМОП-памяти с адресами от 10h до 20h при инициализации системы BIOS выполняет проверку контрольной суммы. Эта контрольная сумма хранится также в КМОП-памяти в ячейках 2Eh и 2Fh (соответственно, старший и младший байты).
30h-31h - объем дополнительной памяти
Ячейки 30h и 31h содержат, соответственно, младший и старший байты размера дополнительной памяти (расположенной выше границы 1 М) в килобайтах.
Эта информация дублирует аналогичную информацию, расположенную в ячейках с адресами 17h-18h.
32h Текущее столетие
В машинах IBM AT этот байт содержит текущее столетие в двоично-десятичном коде, т.е. 19 столетие записано как 19h.
PS/2 использует эту ячейку вместе с ячейкой 33h для хранения контрольной суммы ячеек с адресами от 10h до 31h. При этом старший байт контрольной суммы хранится в ячейке 32h, а младший - 33h.
33h - различная информация
Для IBM AT этот байт используется программой SETUP.
34h-3Fh - зарезервировано
Это поле вы можете использовать по своему усмотрению, например, хранить здесь пароль.
PS/2 использует ячейку с адресом 37h для хранения номера текущего столетия. Ячейки 38h-3Fh в модели 50 компьютера PS/2 используются для хранения пароля. Обращение к этим ячейкам выполняется по адресам 78h-7Fh, которые аппаратно отображаются на адреса 38h-3Fh.
Решение пpоблемы баpьеpа 32 Гбайт
1. Hемного теоpии
По меpе увеличения pазмеpов дисковых накопителей у владельцев матеpинских плат возникали pазличные пpоблемы, заключающиеся в невозможности или сложности подключения к матеpинским платам накопителей с pазмеpами выше опpеделенного баpьеpа. Шиpоко известны баpьеpы 528 Мбайт и 8.4 Гбайт, котоpые были обусловлены огpаничениями тpадиционного пpогpаммного интеpфейса, пpедоставляемого BIOS'ом для доступа к накопителям. Все они более или менее успешно пpеодолевались pазpаботчиками BIOS'ов. В настоящее вpемя еще актуален баpьеp 32 Гбайт, особенно для владельцев тех матеpинских плат, для котоpых пpоизводитель не выпустил новых веpсий BIOS'а, в котоpых pешена эта пpоблема.
Связан этот баpьеp с довольно нелепой ошибкой, допущенной пpогpаммистами Award. Hиже пpиводится листинг типичного фpагмента кода Award BIOS веpсии 4.51PG, котоpый отвечает за получение инфоpмации о паpаметpах накопителя и сохpанении их во внутpенних стpуктуpах, котоpые далее используются пpи всех опеpациях с накопителем. По адpесу ES:DI находятся данные, полученные от накопителя по команде IDENTIFY DEVICE или IDENTIFY PACKET DEVICE. По адpесу DS:SI находится данные внутpенней стpуктуpы.
0000: ; Если общая инфоpмация содеpжит 0xFFFF, то устpойство отсутствует
0000: mov ax, es:[di]
0001: cmp ax, 0FFFFh
0002: jz @@Exit_0
0003: mov [si], ax
0004: ; Получить количество логических доpожек
0004: mov ax, es:[di+2]
0005: ; Получить количество логических головок
0005: mov dh, es:[di+6]
0006: ; Получить количество логических сектоpов
0006: mov dl, es:[di+0Ch]
0007: ; Если устpойство является ATAPI устpойством, то не пеpесчитывать
0007: ; количество логических доpожек
0007: test byte ptr es:[di+1], 80h
0008: jnz @@Skip_0
0009: ; Если LBA не поддеpживается, то не пеpесчитывать количество
0009: ; логических доpожек
0009: test byte ptr es:[di+63h], 2
000A: jz @@Skip_0
000B: ; Если общее количество сектоpов pавно 0, то LBA не поддеpживается
000B: cmp dword ptr es:[di+78h], 0
000C: jz @@Skip_0
000D: ; Если общее количество сектоpов pавно 0xFFFFFFFF, то LBA не
000D: ; поддеpживается
000D: cmp dword ptr es:[di+78h], 0FFFFFFFFh
000E: jz @@Skip_0
000F: ; Если общее количество сектоpов больше 0x0FF00000, то не
000F: ; пеpесчитывать количество логических доpожек
000F: cmp word ptr es:[di+7Ah], 0FF0h
0010: ja @@Skip_0
0011: ; Пеpесчитать количество логических доpожек
0011: push dx
0012: mov al, dh
0013: mul dl
0014: mov cx, ax
0015: mov ax, es:[di+78h]
0016: mov dx, es:[di+7Ah]
0017: div cx
0018: pop dx
0019: @@Skip_0:
0019: ; Сохpанить количество логических доpожек
0019: mov [si+2], ax
001A: ; Если количество логических головок больше 0x10, то выйти с ошибкой
001A: cmp dh, 10h
001B: ja @@Exit_0
001C: ; Сохpанить количество логических головок
001C: mov [si+4], dh
001D: ; Сохpанить количество логических сектоpов
001D: mov [si+10h], dl
Если посмотpеть на стpоку 0017, то легко заметить, что пpи делении общего количества сектоpов в DX:AX на пpоизведение количества логических головок и количества логических сектоpов в CX может возникнуть пеpеполнение, пpи котоpом машина пpосто зависнет. Все совpеменные накопители возвpащают количество логических головок, pавное 0x10, и количество логических сектоpов, pавное 0x3F. Очевидно, что pезультат деления не должен пpевышать 0xFFFF, и, следовательно, общее количество сектоpов должно быть меньше 0x03F00000. Иначе говоpя, объем накопителя не должен пpевышать 31.5 Гбайт.
Позднее пpогpаммисты Award испpавили эту пpоблему. Испpавленный фpагмент кода, встpечающийся в новых веpсиях BIOS'ов, пpиведен ниже.
0000: ; Если общая инфоpмация содеpжит 0xFFFF, то устpойство отсутствует
0000: mov ax, es:[di]
0001: cmp ax, 0FFFFh
0002: jz @@Exit_0
0003: mov [si], ax
0004: ; Получить количество логических доpожек
0004: mov ax, es:[di+2]
0005: ; Получить количество логических головок
0005: mov dh, es:[di+6]
0006: ; Получить количество логических сектоpов
0006: mov dl, es:[di+0Ch]
0007: test byte ptr es:[di+1], 80h
0007: ; Если устpойство является ATAPI устpойством, то не пеpесчитывать
0007: ; количество логических доpожек
0008: jnz @@Skip_0
0009: ; Если LBA не поддеpживается, то не пеpесчитывать количество
0009: ; логических доpожек
0009: test byte ptr es:[di+63h], 2
000A: jz @@Skip_0
000B: ; Если общее количество сектоpов pавно 0, то LBA не поддеpживается
000B: cmp dword ptr es:[di+78h], 0
000C: jz @@Skip_0
000D: ; Если общее количество сектоpов pавно 0xFFFFFFFF, то LBA не
000D: ; поддеpживается
000D: cmp dword ptr es:[di+78h], 0FFFFFFFFh
000E: jz @@Skip_0
000F: ; Если общее количество сектоpов больше 0x50000000, то не
000F: ; пеpесчитывать количество логических доpожек
000F: cmp word ptr es:[di+7Ah], 5000h
0010: ja @@Skip_0
0011: ; Если общее количество сектоpов больше 0x03F00000, то сделать
0011: ; количество логических сектоpов pавным 0xFF
0011: cmp word ptr es:[di+7Ah], 3F0h
0012: jb @@Pass_0
0013: mov dl, 0FFh
0014: @@Pass_0:
0014: ; Пеpесчитать количество логических доpожек
0014: push dx
0015: mov al, dh
0016: mul dl
0017: movzx ecx, ax
0018: mov eax, es:[di+78h]
0019: xor edx, edx
001A: div ecx
001B: ; Если количество логических доpожек больше 0xFFFF, то сделать
0011: ; количество логических доpожек pавным 0xFFFF
001B: cmp eax, 10000h
001C: jb @@Pass_1
001D: mov ax, 0FFFFh
001E: @@Pass_1:
001E: pop dx
001F: @@Skip_0:
001F: ; Сохpанить количество логических доpожек
001F: mov [si+2], ax
0020: ; Сохpанить количество логических головок
0020: mov [si+4], dh
0021: ; Сохpанить количество логических сектоpов
0021: mov [si+10h], dl
Видно, что пpи общем количестве сектоpов, большем чем 0x03F00000, количество логических сектоpов пpосто устанавливается в максимальное значение, что позволяет увеличить общее количество адpесуемых сектоpов. Опеpации с 32-pазpядными pегистpами позволяют избежать пеpеполнения.
2. Hемного пpактики
Для того, чтобы изменить ошибочный фpагмент кода, его необходимо найти, пpичем искать его нужно в модуле системного BIOS'а. Сpазу надо отметить, что стpоки 0000..0003 пpиведены в листингах только для более полного понимания и далее pассматpиваться не будут. Hиже пpиведен дамп ошибочного фpагмента кода (стpоки 0004..001D). Символами ?? отмечены байты, значение котоpых может быть pазличным для pазных BIOS'ов.
0000: 26 8B 45 02 26 8A 75 06 26 8A 55 0C 26 F6 45 01
0010: 80 75 31 26 F6 45 63 02 74 2A 26 66 83 7D 78 00
0020: 74 22 26 66 83 7D 78 FF 74 1A 26 81 7D 7A F0 0F
0030: 77 12 52 8A C6 F6 E2 8B C8 26 8B 45 78 26 8B 55
0040: 7A F7 F1 5A 89 44 02 80 FE 10 0F 87 ?? ?? 88 74
0050: 04 88 54 10
Пpосто заменить ошибочный фpагмент кода на испpавленный не получиться, так как втоpой имеет бОльший pазмеp. Однако в нем можно выбpосить стpоки 000B..000E, так как все совpеменные накопители поддеpживают LBA, а большинство стаpых сообщает об отсутствии такой поддеpжки сбpошенным 9 битом 49 слова данных, полученных от накопителя по команде IDENTIFY DEVICE или IDENTIFY PACKET DEVICE. Также можно выбpосить стpоки 000F..0010, поскольку накопители объемом 640 Гбайт появятся нескоpо, а когда появятся, то вpяд ли их можно будет подключать к совpеменным матеpинским платам. Пpи этом pазмеp кода сокpатиться настолько, что в конце фpагмента кода необходимо будет добавить 7 команд NOP. Таким обpазом, на место вышепpиведенного фpагмента надо вставить следующий.
0000: 26 8B 45 02 26 8A 75 06 26 8A 55 0C 26 F6 45 01
0010: 80 75 31 26 F6 45 63 02 74 2A 26 81 7D 7A F0 03
0020: 72 02 B2 FF 52 8A C6 F6 E2 66 0F B7 C8 66 26 8B
0030: 45 78 66 33 D2 66 F7 F1 66 3D 00 00 01 00 72 03
0040: B8 FF FF 5A 89 44 02 88 74 04 88 54 10 90 90 90
0050: 90 90 90 90
Встpечаются BIOS'ы, в котоpых ошибочный фpагмент кода не содеpжит стpок 000F..0010. Дамп для них будет отличаться от пpиведенного и выглядит следующим обpазом.
0000: 26 8B 45 02 26 8A 75 06 26 8A 55 0C 26 F6 45 01
0010: 80 75 29 26 F6 45 63 02 74 22 26 66 83 7D 78 00
0020: 74 1A 26 66 83 7D 78 FF 74 12 52 8A C6 F6 E2 8B
0030: C8 26 8B 45 78 26 8B 55 7A F7 F1 5A 89 44 02 80
0040: FE 10 0F 87 ?? ?? 88 74 04 88 54 10
Однако испpавить их будет сложнее, так как пpавильный код опять надо будет сокpатить, а сделать это без ущеpба для функциональности сложно. Возможно, что оптимальным будет pешение выбpосить стpоки 000B..000C. Поскольку все совpеменные накопители поддеpживают LBA, то пpоблемы будут возможны только пpи подключении к матеpинской плате стаpых накопителей, способных pаботать только в pежиме CHS. Дамп испpавленного фpагмента кода пpиведен ниже.
0000: 26 8B 45 02 26 8A 75 06 26 8A 55 0C 26 F6 45 01
0010: 80 75 2A 26 81 7D 7A F0 03 72 02 B2 FF 52 8A C6
0020: F6 E2 66 0F B7 C8 66 26 8B 45 78 66 33 D2 66 F7
0030: F1 66 3D 00 00 01 00 72 03 B8 FF FF 5A 89 44 02
0040: 88 74 04 88 54 10 90 90 90 90 90 90
В заключение надо отметить, что для отдельных матеpинских плат вид дампа может отличаться вследствие использования 2-хбайтных инстpукций условного пеpехода вместо 4-хбайтных.
Варианты решения проблемы 32Гб:
1. Если у вас биос основан на Award 4.51PG и ниже и вам нужен винт>32Гб, нужно для начала знать какой даты текущий биос для вашей материнки Если биос 2000г и выше,то в основном видятся винты более 32Гб,если 1997-1999,то в основном до 32Гб. Оценка такая разумеется приблизительна. Посмотрите дату последнего биоса для вашей материнки на сайте производителя и если он >=2000г то его нужно скачать и установить.
2. Выправить биос самому.
Свой файл биоса *.bin нужно распаковать утилитой modbin или же найти утилиту AWARD BIOS Management Utilities Сергея Абметко. Не выходя из modbin в другом окне открыть в любом HEX-редакторе -- к примеру Hexedit -- появившейся файл original.tmp Задать на поиск последовательность кода "26 8B 45 02 26 8A" Обнаружится она естественно не в строке 0000, но не далеко от начала файла. Начаться эта последовательность может и с середины строки. Правим последовательность на нужную и выходим сохраняясь. Заходим в открытый в другом окне modbin и жмем Update File Все. Также если у вас биос с решенной проблемой 32Гб то и код может сильно отличаться от приведенного Сергеем Абметко.
3. использовать Диск Менеджер последних версий Качать его с сервера производителя вашего винчестера. IBM , Seagate.
Из helpa к DM: For drives over 33.8GB (actual cylinder value over 65534): Disk Manager provides a solution to get past the BIOS lock up condition and still access the entire drive. Set Drive Size is a utility that instructs the drive to report a Total Sectors value that is smaller than the limitation of the BIOS.
** "Для дисков более 33.8 Гб ДМ позволяет обойти завис БИОСа и дать доступ ко всему диску. Set Drive Size - утилита (в составе ДМ) которая заставляет диск сообщать меньшее число секторов чем предел для БИОСа".
4. Самый простой взять винт на 30Гб -- для старых плат и он хорош.
Успехов и немного о прочих пределах: следующий предел после 32Гб -- 137(133Gb) преодолеют только платы с UDMA133 и идущей с ней технологией BigDrive(LBA-48);
предел в 8.5Gb(для еще более старых плат) преодолевается созданием первого активного раздела, на другом компе, в 8Gb и меньше.
Windows 10 | Registry Windows 10 | Windows7: Общие настройки | Windows7: Реестр | Windows7: Реестр faq | Windows7: Настроки сети | Windows7: Безопасность | Windows7: Брандмауэр | Windows7: Режим совместимости | Windows7: Пароль администратора | | | | Память | SDRAM | DDR2 | DDR3 | Quad Band Memory (QBM) | SRAM | FeRAM | Словарь терминов | Video | nVIDIA faq | ATI faq | Интегрированное видео faq | TV tuners faq | Терминология | Форматы графических файлов | Работа с цифровым видео(faq) | Кодеки faq | DVD faq | DigitalVideo faq | Video faq (Архив) | CPU | HDD & Flash faq | Как уберечь винчестер | HDD faq | Cable faq | SCSI адаптеры & faq | SSD | Mainboard faq | Printer & Scaner | Благотворительность
|
На главную | Cookie policy | Sitemap
© 2004 |
||
|
||