Ха!
(Тут некоторые матёрые хдльных дел троли задрачивают на этот форум, потому пишу для них: сидели вчятике, да?, думали как же запилить кэш, ай-ай, такой слющяй умный, а не придумаль!)
Итак.
Размер: 512 байт. Покрывает все 4МБ ОЗУ. Включается битом 2 того же порта, где частота проца. При полном попадании дает 286720 тактов на фрейм на частоте 14МГц (как если бы не было торможения в ОЗУ).
В текущей реализации НЕ взаимодействует с ДМА, поэтому при использовании ДМА требуется делать принудительную инвалидацию. В двух словах так: если в кеше лежит слово и оно валидно, и данное слово по его адресу в ОЗУ будет переписано ДМой, изменения НЕ отразятся в кеше и при чтении оного слова процессором. Проц прочитает старые данные, которые были до ДМА. Опасно тем, что можно нарваться на неожиданный (хоть и просчитываемый) глюк.
Процедура инвалидации кеша:
- Code: Select all
LD HL, #4000
LD DE, #4000
LD BC, #200
LDIR
Должна использоваться ДО вызова ДМА, если не хотим словить глюк. Алсо, если в ту часть, куда срет ДМА проц лазить не будет (например там тайловый битмап, и лазить туда будет только ТС), то можно ничё не инвалидировать. В дальнейшем я чото придумаю, пока так.
Алсо, обновил БИОС. Добавил пункт про кеш.