Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » LS-486E несколько вопросов |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 | Печать |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 26 октября 2016 21:50 Сообщение отредактировано: 26 октября 2016 21:52
Кажется разобрался со снижением скорости чтения в 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\t011 = 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\t011 = 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\t011 = 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\t011 = 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
Всего сообщений: 582 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 20 окт. 2013 |
А WB кэш вообще может работать без dirty bit'ов? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Fasterpast написал: По нормальному - нет. Мы имеем нехитрое (как оказалось) компромисное решение, А WB кэш вообще может работать без dirty bit'ов? сильно снижающее скорость чтения, но поднимающее скорость перемещения данных в памяти в режиме WB8. Иначе бы нарушилась когерентность памяти и кеша с полным отказом системы. Таким образом, для плат без dirty tag при RAM >= 32MB (порог для кеша 256KB), рекомендую WB7, для RAM >32MB лучше WT8. Для плат же с dirty tag можно всегда работать в режиме WB7/8. PS. Если бы чипсет поддерживал Write Allocation, то это решение бы вообще было бессмысленным, тк снизились бы скорости и записи, и чтения в памяти. |
Fasterpast
Advanced Member
Всего сообщений: 582 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 20 окт. 2013 |
О, сколько нам открытий чудных... |
Saffbl4
Member
Откуда: Екатеринбург Всего сообщений: 199 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 20 окт. 2016 |
Ревизия с1, проверить смогу только через пару дней но 2016 год отображается нормально или надо именно установить 2000? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Saffbl4 написал: Не, тогда все нормально. Спасибо! Ревизия с1, проверить смогу только через пару дней но 2016 год отображается нормально или надо именно установить 2000? |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » LS-486E несколько вопросов |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |