реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
aaarrr
сообщение Apr 25 2013, 21:13
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Apr 26 2013, 00:51) *
Кеши имеют разные алгоритмы работы, но в целом они автоматизированы, попали в ячейку памяти забрали ее и некую область вокруг. Попали в область кеша работаем из него, промазали, сбросили кеш загрузили новую область. Размер кеша допустим 4 кбайта, если вы будите тыкаться в ячейки расположенные друг от друга в 5 кбайтах так и будет постоянный сброс кеша и загрузка, будет медленее чем без него.

Кэш работает строками. Если тыкаться в ячейки, расположенные друг от друга в 5 килобайтах, то в кэше окажутся загружены две строки с соответствующими адресами.
И израсходовано на это дело будет всего 64 байта из допущенных 4 кБайт.

Цитата(Golikov A. @ Apr 26 2013, 00:51) *
И вот тут как я понимаю и помогает ММУ, как я понял при помощи него вы можете положить себе поближе нужные куски памяти, и постараться учесть как будет вести себя программа, как она будет и куда прыгать и так далее.. То есть это как бы интеллектуальный, управляемый кеш... Хотя я могу ошибаться, и тогда меня поправятsm.gif...

MMU нужен исключительно для построения виртуальной памяти. Кэшу он ничуть не помогает, а совсем даже наоборот sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 26 2013, 03:31
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(aaarrr @ Apr 26 2013, 01:13) *
Кэш работает строками. Если тыкаться в ячейки, расположенные друг от друга в 5 килобайтах, то в кэше окажутся загружены две строки с соответствующими адресами.
И израсходовано на это дело будет всего 64 байта из допущенных 4 кБайт.

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

Цитата(aaarrr @ Apr 26 2013, 01:13) *
MMU нужен исключительно для построения виртуальной памяти. Кэшу он ничуть не помогает, а совсем даже наоборот sm.gif

А виртуальная память зачем? Удобство? Или возможность перетащить куски из ДДР поближе?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 26 2013, 07:57
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Apr 26 2013, 07:31) *
я условно написал, потому что когда вы израсходуете все строки будет опять та же ситуация. И опять же 64 байта - тоже условность, есть и другие значения. Общий смысл что бывают и промахи по кешу.

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

Цитата(Golikov A. @ Apr 26 2013, 07:31) *
А виртуальная память зачем? Удобство? Или возможность перетащить куски из ДДР поближе?

Удобство, прежде всего для "тяжелых" ОС - фиксированный адрес для приложений, защита памяти и т.п.

А есть смысл таскать куски памяти поближе, если процессор может адресовать все 4 Гбайта?

Вот периферию "таскать" приходилось - например, чтобы отразить контроллер прерываний в верхних адресах ради возможности
быстрого перехода по адресу вектора через ldr pc, [pc, #-X].
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 26 2013, 11:18
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(aaarrr @ Apr 26 2013, 11:57) *
Просто из вашего предыдущего сообщения можно было сделать вывод, что при промахе кэш загружается полностью с одного адреса,
в то время как на самом деле загружена будет только одна строка.


Удобство, прежде всего для "тяжелых" ОС - фиксированный адрес для приложений, защита памяти и т.п.

А есть смысл таскать куски памяти поближе, если процессор может адресовать все 4 Гбайта?

Вот периферию "таскать" приходилось - например, чтобы отразить контроллер прерываний в верхних адресах ради возможности
быстрого перехода по адресу вектора через ldr pc, [pc, #-X].


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

Я обычно пишу маленькие системы, потому ММУ для меня чистая теория. думаю что можно какие то выгоды получить подтащив куски кода, переходы сократить, кешу помочь и так далее... но я не настаиваюsm.gif...

О кстати нашел у себя ММУ в процеsm.gif, там предлагают еще возможность организовать Shadow регистры данных и инструкции. То есть фактически шаг к виртуализации и многопотоковости...
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 20:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016