OSDev

для всех
Текущее время: 17 ноя 2018, 16:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Write Combine
СообщениеДобавлено: 03 май 2018, 16:40 

Зарегистрирован: 04 мар 2018, 21:34
Сообщения: 54
Где больше узнать о Write Combine и посмотреть реализацию? В гугле практически ничего, а здесь на форуме теории маловато, не понимаю о чем речь собственно идет)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 03 май 2018, 18:51 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1353
Откуда: Зеленоград
Разбираться, что такое кэш-память и буфер записи, как они работают, а желательно и как их реализуют в железе (в общих чертах, естественно). Ссылок не дам: искать лениво, а сам изучал в те времена, когда этих ваших интернетов ещё не было.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 04 май 2018, 11:43 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 946
Откуда: Дагоба
Внешняя память работает медленно. Кэш — быстро. Если бы каждая запись производилась непосредственно во внешнюю память, были бы жуткие тормоза. Соответственно, операции записи в память также кэшируются, только принцип кэширования отличается от операции чтения. Операции записи буферизуются. При этом возможны следующие варианты.
  • Write through (сквозная запись). Запись производится напрямую, минуя буфер. Это требуется при обращении к некоторым внешним устройствам, порты ввода-вывода которых отображены в адресное пространство. При записи через буфер последовательность операций может быть нарушена, режим write through гарантирует очерёдность записи.
  • Write back (отложенная запись). Данные попадают в буфер, организованный в виде очереди. Наиболее старые (или в другой последовательности, определённой алгоритмом работы кэша) элементы буфера в фоновом режиме выгружаются во внешнюю память.
  • Write combine (объединённая запись). При записи буфер просматривается и если он уже содержит данные, относящиеся к той же ячейке памяти, то старые данные выкидываются и заменяются новыми данными. Таким образом, несколько операций записи по одному и тому же адресу заменяются единственным обращением, содержащим только последние записанные данные. Очевидно, что этот режим неприемлем при отображении в адресное пространство портов ввода-вывода внешних устройств, так как при записи в них данных они могут потеряться.
Режим write back может нарушить последовательность операций при следующих условиях. Элемент буфера имеет определённый размер, чаще всего такой же, как и линейка кэш-памяти. Если мы сначала записываем один байт в пределах этого элемента, затем что-либо по другому адресу, затем в прежний элемент другой байт, то независимо от алгоритма выгрузки данных из буфера последовательность операций будет нарушена. Вместо трёх обращений в память будет произведено только два (хотя при этом никакие данные в буфере и не замещаются).

Не очень понятно, какую реализацию вы хотите посмотреть. Это чисто аппаратные механизмы. Если нужны исходные тексты крутого кэш-контроллера на языке Verilog, то их можно взять из исходников открытого процессора OpenSPARC T2.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 04 май 2018, 14:13 

Зарегистрирован: 04 мар 2018, 21:34
Сообщения: 54
Yoda писал(а):
Не очень понятно, какую реализацию вы хотите посмотреть. Это чисто аппаратные механизмы.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 12 май 2018, 05:16 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
Необходимо пользоваться правильным memory type для правильных целей.

Графический display это MMIO device, запись в опеределенные ячейки памяти приводят к отображению пикселей не дисплее.
Если использовать write-back то ничего не дисплее не появиться, так как все операции записи останутся в кеше процессора. Можно сделать CLFLUFH но он работает медленно, с полной сериализацией между каждым CLFLUSH. Чтобы данные не застревали в кеше надо memory type без кэширования - UC или WC.
UC означает полную сериализацию между отдельными операциями записи. USWC - нет. То есть USWC будет во много раз (раз в 10-20 по моим измерениям) быстрее UC на запись.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 12 май 2018, 12:56 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1092
stlw писал(а):
Графический display это MMIO device, запись в опеределенные ячейки памяти приводят к отображению пикселей не дисплее.Если использовать write-back то ничего не дисплее не появиться, так как все операции записи останутся в кеше процессора. Можно сделать CLFLUFH но он работает медленно, с полной сериализацией между каждым CLFLUSH. Чтобы данные не застревали в кеше надо memory type без кэширования - UC или WC.UC означает полную сериализацию между отдельными операциями записи. USWC - нет. То есть USWC будет во много раз (раз в 10-20 по моим измерениям) быстрее UC на запись.

Бред.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 12 май 2018, 21:41 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1070
Откуда: Балаково
stlw писал(а):
UC означает полную сериализацию между отдельными операциями записи. USWC - нет. То есть USWC будет во много раз (раз в 10-20 по моим измерениям) быстрее UC на запись.

Кажется, ты имеешь ввиду настройки BIOS в старых компьютерах. Сейчас это уже не настраивается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 14 май 2018, 06:31 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
pavia писал(а):
Бред.


Ну так обоснуй и напиши как правильно. Потому покажу где ьы ошибаешься.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 14 май 2018, 21:00 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1092
Когда пишут слово бред то имеют в виду что у человека несвязанная речь или другими словами словесный понос.
Цитата:
Графический display это MMIO device

https://en.wikipedia.org/wiki/Display_device
Дислей не имеет "программных" портов. Порты имеет видеокарта.
Вместо слово "Графический display" следует писать видеокарта.

Цитата:
Графический display это MMIO device, запись в опеределенные ячейки памяти приводят к отображению пикселей не дисплее.

Ячейки памяти ни как не связаны с MMIO. См.
http://download.intel.com/design/Pentiu ... 442201.pdf


Цитата:
Если использовать write-back то ничего не дисплее не появиться, так как все операции записи останутся в кеше процессора.

Запишется, но не сразу.

Цитата:
memory; instead, they are accumulated in the cache. The modified cache lines are written to system memory later, when a write-back operation is performed. Write-back operations are triggered when cache lines need to be deallocated, such as when new cache lines are being allocated in a cache that is already full.


Цитата:
UC означает полную сериализацию между отдельными операциями записи. USWC - нет. То есть USWC будет во много раз (раз в 10-20 по моим измерениям) быстрее UC на запись.

Интел даёт другие определения.

Цитата:
Uncacheable (UC-) — Has same characteristics as the strong uncacheable (UC) memory type, except that this memory type can be overridden by programming the MTRRs for the WC memory type. This memory type is available in processor families starting from the Pentium III processors and can only be selected through the PAT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Write Combine
СообщениеДобавлено: 14 май 2018, 21:30 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
pavia писал(а):
Когда пишут слово бред то имеют в виду что у человека несвязанная речь или другими словами словесный понос.


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB