LS-486E несколько вопросов
запускал из под доса, видимо и вправду были himem.sys, emm386 виноваты
в чистом досе все ок
в чистом досе все ок
- Вложения
-
486E.BIN- (128 КБ) 399 скачиваний
-
i8088
- Advanced Member
- Сообщения: 4865
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
Saffbl4, спасибо за BIOS, это похоже BIOS для ревизии Cx и с правильным
определением кеша, и правильным Vendor ID! Коллекция BIOS для LS-486E пополнилась
еще одним!
Вопросы:
1. Какая у Вас ревизия платы?
2. Y2K bug у меня не наблюдается, с Вашим BIOS. У Вас этот bug реально есть?
(Изменение даты на ерунду после выхода из SETUP, если поставить год >= 2000).
определением кеша, и правильным Vendor ID! Коллекция BIOS для LS-486E пополнилась
еще одним!
Вопросы:
1. Какая у Вас ревизия платы?
2. Y2K bug у меня не наблюдается, с Вашим BIOS. У Вас этот bug реально есть?
(Изменение даты на ерунду после выхода из SETUP, если поставить год >= 2000).
-
i8088
- Advanced Member
- Сообщения: 4865
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
Кажется разобрался со снижением скорости чтения в WB8. Для режима WB8
требуется дополнительный dirty tag,но на наших платах его нет.
Применяется некая "эмуляция" -> bit always dirty. Из-за этого, поскольку:
If the addressed data does not locate in L2 cache (cache miss) then the access is
forwarded to main memory. When data is return from main memory, L2 cache will also
be updated (cache line fill). However, if the cache line fill operation is to a dirty
line (the Dirty bit associated with cache line is set), the dirty line is first written
back to main memory before the new line is brought into the L2 cache. For a dirty line
write-back operation, the 85C496 first performs a read from the dirty cache line and then
writes the data to main memory.
Вот значения в регистрах Cache Configure, reg 0x42-0x43:
WT8 0x0a69 0000 1010 0110 1001
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 8 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Through Mode
WT7 0x0a6d 0000 1010 0110 1101
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 7 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Through Mode
****************************************************************
WB8 0x0b69 0000 1011 0110 1001
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 8 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Back Mode
WB7 0x0b65 0000 1011 0110 0101
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 7 Bit Tag
bit3: Enable Dirty Pin Input
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Back Mode
********************************************************************
Те при заполнении кеша при чтении (первое чтение за пределами адресов текущих данных
в кеше), контроллер будет считать, что строки отмечены как "dirty", и давать холостой
цикл выгрузки в память (видимо dirty flag повторно (после выгрузки в память) не
контролируется, иначе процесс был бы бесконечным, тк "dirty flag is always set").
Те:
1. Читаем память и обновляем кеш
2. Выгружаем только что записанное в кеш снова в память.
Как раз и получаем ~2-х кратное снижение скорости чтения из памяти.
Если бы dirty tag имелся, такого бы не было, и скорость была-бы такой-же, как
в режиме WB7. Кто-нибудь знает, существуют ли платы на SiS 496/497 с dirty tag?
PS. Появилась идея доработки платы, теоретически возможно, но боюсь будет смотреться
уродливо...
требуется дополнительный dirty tag,но на наших платах его нет.
Применяется некая "эмуляция" -> bit always dirty. Из-за этого, поскольку:
If the addressed data does not locate in L2 cache (cache miss) then the access is
forwarded to main memory. When data is return from main memory, L2 cache will also
be updated (cache line fill). However, if the cache line fill operation is to a dirty
line (the Dirty bit associated with cache line is set), the dirty line is first written
back to main memory before the new line is brought into the L2 cache. For a dirty line
write-back operation, the 85C496 first performs a read from the dirty cache line and then
writes the data to main memory.
Вот значения в регистрах Cache Configure, reg 0x42-0x43:
WT8 0x0a69 0000 1010 0110 1001
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 8 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Through Mode
WT7 0x0a6d 0000 1010 0110 1101
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 7 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Through Mode
****************************************************************
WB8 0x0b69 0000 1011 0110 1001
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 8 Bit Tag
bit3: Force Dirty Status as Always Dirty
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Back Mode
WB7 0x0b65 0000 1011 0110 0101
bit0: External Cache Enable
bit1: Level 2 Cache Test Normal operation
bit2: Level 2 Cache Tag Width Select 7 Bit Tag
bit3: Enable Dirty Pin Input
bit4: Single bank, non-interleave mode
bit7-5: Level 2 Cache Size 011 = 256 KByte
bit8: Level 2 Cache Write Back Mode
********************************************************************
Те при заполнении кеша при чтении (первое чтение за пределами адресов текущих данных
в кеше), контроллер будет считать, что строки отмечены как "dirty", и давать холостой
цикл выгрузки в память (видимо dirty flag повторно (после выгрузки в память) не
контролируется, иначе процесс был бы бесконечным, тк "dirty flag is always set").
Те:
1. Читаем память и обновляем кеш
2. Выгружаем только что записанное в кеш снова в память.
Как раз и получаем ~2-х кратное снижение скорости чтения из памяти.
Если бы dirty tag имелся, такого бы не было, и скорость была-бы такой-же, как
в режиме WB7. Кто-нибудь знает, существуют ли платы на SiS 496/497 с dirty tag?
PS. Появилась идея доработки платы, теоретически возможно, но боюсь будет смотреться
уродливо...
-
Fasterpast
- Advanced Member
- Сообщения: 596
- Зарегистрирован: 20.10.2013,15:42
-
i8088
- Advanced Member
- Сообщения: 4865
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
По нормальному - нет. Мы имеем нехитрое (как оказалось) компромисное решение,Fasterpast писал(а):А WB кэш вообще может работать без dirty bit'ов?
сильно снижающее скорость чтения, но поднимающее скорость перемещения данных
в памяти в режиме WB8. Иначе бы нарушилась когерентность памяти и кеша с полным
отказом системы.
Таким образом, для плат без dirty tag при RAM <= 32MB (порог для кеша 256KB),
рекомендую WB7, для RAM >32MB лучше WT8.
Для плат же с dirty tag можно всегда работать в режиме WB7/8.
PS. Если бы чипсет поддерживал Write Allocation, то это решение бы вообще было
бессмысленным, тк снизились бы скорости и записи, и чтения в памяти.
-
Fasterpast
- Advanced Member
- Сообщения: 596
- Зарегистрирован: 20.10.2013,15:42