Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Pentium P54C тестовые регистры TR12
RSS

Pentium P54C тестовые регистры TR12

<<Назад  Вперед>> Страницы: 1 2 3 * 4
Печать
 
Fasterpast
Advanced Member


Всего сообщений: 582
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
20 окт. 2013
Насколько я помню, там L1 отключается
BreakPoint
Гость

Ссылка

дело в том, что с внешним кэшем я таких тормозов не наблюдаю. как вы правильно заметили, внеший кэш может как присутсвовать, так и отсутсвовать - оба режима штатные. поэтому его наличие/отсутсвие дает более менее прогнозируемые результаты. а вот отключение Л1 кэша дает жесткий тупняк.

Проверил на 166ММХ без л2 кэша

Получилось
Включенный кэш:
Последовательная запись: 0.38с
Последовательное чтение: 0.28с
Запись с форисрованным промахом кэша: 0.33с
Чтение с форисрованным промахом кэша: 0.77с

Выключенный кэш:
Последовательная запись: 6.3с
Последовательное чтение: 6.6с
Запись с форисрованным промахом кэша: 6.2с
Чтение с форисрованным промахом кэша: 6.6с
Сейчас на форуме
BreakPoint
Гость

Ссылка

Rio444 написал:
[q]
И не скажу, что производительность без кэша падает катастрофически.
[/q]
подтверждаю, через переходник апгрейдил безкэшевый сокет1 до am5x85-133 произодительность на уровне.
Сейчас на форуме
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Внешний кеш поддерживается чипсетом, и даже в описании чипсетов (от Intel, да и других)
указано что "cacheless configurations also supported". Те это вполне штатный режим, тогда как
в P6 уже dual independed bus. Добавлю, что эффективность внешнего кеша на плате намного
ниже (и не только из-за частоты!), поэтому и выигрыш от него (и проигрыш при отключении) не
такой большой.
BreakPoint
Гость

Ссылка

Интересно что на скорость влияет и то, как кэш отлючать, через CR0 или TR12
CR0 = 6сек
TR12 (Data Cache Disabled) или TR12 (Data+Code Cache Disabled) = 4сек
TR12 (Code Cache Disabled) = 2.5сек

А в мане Интела сказано
When TR12.CI is set to
1, all cache line fills are inhibited and all bus cycles due to cache misses
are run as single transfer cycles (CACHE# is not asserted). Unlike
CR0.CD, TR12.CI does not affect the state of the PCD output pin. This
allows the first level cache to be disabled while the second level cache is
still active and can be tested.


Если эти тупняки из за PCD вывода, то возможно это не проц тупит, а внешняя логика. Правда куда этот вывод уходит осталось загадкой. В мане к 430 чипсету ничего похожего нет.
Сейчас на форуме
pahan
Advanced Member


Откуда: Химки, М.О.
Всего сообщений: 1070
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мар. 2015
[q]
Интересно что на скорость влияет и то, как кэш отлючать, через CR0 или TR12
[/q]
А ещё можно (раз уж затронули P6) использовать MTRR и поставить всю память в режим uncacheable. и посмотреть, что будет ;)
[q]
А в мане Интела сказано
[/q]
Цитируйте уж полностью (я ещё в прошлый раз на этот момент обращал внимание):
Note that the contents of the instruction and data caches are not affected by the state of TR12.CI, e.g., they are not flushed. The second level cache test sequence should be: set TR12.CI to 1, flush the internal caches, run the second level cache tests
Т.е. на момент отключения кэша уровня 1 часть вашего кода (скорее всего большая) и данных всё равно в нём остаётся и замедление из-за доступа к памяти коснётся только тех данных и инструкций, которых в нём нет.

CR0 также требует после себя явного сброса кэша, ибо:
[q]
To completely disable the cache, the following two steps must be performed:
1. CD and NW must be set to 1.
2. The caches must be flushed.
If the cache is not flushed, cache hits on reads will still occur and data will be read from the cache. In addition, the cache must be flushed after being disabled to prevent any
inconsistencies with memory.
Write hits update the cache, but do not access memory.
[/q]
BreakPoint
Гость

Ссылка

это я учел.
сетмул все по феншую делает - проверил. если ресетить после каждого запуска, результаты те же получаются.

другое дело что до меня только сейчас дошло, что я сетмул неправильно запускал
я думал что если запустить с ключем ссд, а потом с ключем дсд - то оба кэша отключатся. оказалось второй вызов включает код кэш.
так что если оба кэша отключить, получается тоже что и с CR0.
Сейчас на форуме
BreakPoint
Гость

Ссылка

дальше интереснее.
переписал процедуры чтения на ассемблере, что бы более четко разграничить код от данных.
сам цикл чтения буквально несколько комманд, он вообще должен в префетчер помещаться.

Так вот, когда код чтения маленький, то при отключении кэша данных время чтения из памяти становится таким же, как и при форсированных промахах кэша. что логично.
теперь возникает вопрос, а почему прога на паскале давала совершенно другие результаты?
Единственное отличие, длинна кода.

Закопипаситив инструкцию mov al, [di] пол сотни раз сделал специально жирную процедуру и запустил прогу с отключенным кэшем данных.
так вот разница выполнения "жирной процедуры"с кэшем данных и без около 30 раз.

Вобщем результаты:

Все включено:
Чтение одного байта в цикле: 0.5сек
Чтение с форсированным промахом: 2.2сек
Чтение одного байта "жирной процедурой": 3 сек

Выключен дата кэш:
Чтение одного байта в цикле: 2.7сек
Чтение с форсированным промахом: 2.7сек
Чтение одного байта "жирной процедурой": 100 сек (!!!)

получается, что при отключеннии кэша данных замедление работы зависит не только от скорости доступа к данным, но и от размера кода. Это надо обдумать

Ну и вишенка на торте: при чтении из области данных БИОС (400h:0) пофигу, включет дата кэш или нет.
Сейчас на форуме
BreakPoint
Гость

Ссылка

немного начало проясняться.
Сделел более детальные замеры Ссылка на результаты

Мое первоначальное предположение подтердилось с точность до наоборот. Это не без кэша проц бешено тупит, это с кэшем он сверхзвуковой.

Короче говоря, получилось что если "mov al, [di]" закопипастить 32 раза, то проц может читать 1.4 ГИГАБАЙТ/СЕК !!!
Понятно что на частоте 166МГц сие просто невозможно.
Сначала подумал, что компилятор просто код оптимизировал, и лишние операции чтения убрал. (Хотя компилеры в те времена особым интеллектом по части оптимизации не отличались).
Запустил под отладчиком - нифига - все инструкции на месте!

Получается, что код оптимизирует процессор. Проц видит 32 инструкции"mov al, [di]" без изменения адреса, и вместо того, чтобы честно выполнить чтение 32 раза, инициирует 1 ИО в память мимо кэша, а 31 операцацию тупо пропускает.

Далее интересно, что чтение с форсированным промахом все равно быстрее чем прямое чтение из памяти когда кэш данных отключен.
Сейчас на форуме
pahan
Advanced Member


Откуда: Химки, М.О.
Всего сообщений: 1070
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мар. 2015
[q]
Проц видит 32 инструкции"mov al, [di]" без изменения адреса, и вместо того, чтобы честно выполнить чтение 32 раза, инициирует 1 ИО в память мимо кэша, а 31 операцацию тупо пропускает.
[/q]
Не только адреса, но и содержащихся по нему данных.
Всё верно - MESI-протокол.
При чтении обращение к памяти будет только в том случае, если соотв. строка кэша помечена как Invalid (т.е. данных в кэше нет или они были изменены в памяти кем-то другим). Иначе - данные всегда берутся только из кэша.
В вашем случае состояние Exclusive, и после первой операции никаких обращений к внешней шине в принципе не будет.
<<Назад  Вперед>> Страницы: 1 2 3 * 4
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Pentium P54C тестовые регистры TR12
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS