OSDev
http://osdev.su/

Write Combine
http://osdev.su/viewtopic.php?f=5&t=2329
Страница 1 из 2

Автор:  grenders22 [ 03 май 2018, 16:40 ]
Заголовок сообщения:  Write Combine

Где больше узнать о Write Combine и посмотреть реализацию? В гугле практически ничего, а здесь на форуме теории маловато, не понимаю о чем речь собственно идет)

Автор:  SII [ 03 май 2018, 18:51 ]
Заголовок сообщения:  Re: Write Combine

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

Автор:  Yoda [ 04 май 2018, 11:43 ]
Заголовок сообщения:  Re: Write Combine

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

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

Автор:  grenders22 [ 04 май 2018, 14:13 ]
Заголовок сообщения:  Re: Write Combine

Yoda писал(а):
Не очень понятно, какую реализацию вы хотите посмотреть. Это чисто аппаратные механизмы.


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

Автор:  stlw [ 12 май 2018, 05:16 ]
Заголовок сообщения:  Re: Write Combine

Необходимо пользоваться правильным memory type для правильных целей.

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

Автор:  pavia [ 12 май 2018, 12:56 ]
Заголовок сообщения:  Re: Write Combine

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

Бред.

Автор:  Himik [ 12 май 2018, 21:41 ]
Заголовок сообщения:  Re: Write Combine

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

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

Автор:  stlw [ 14 май 2018, 06:31 ]
Заголовок сообщения:  Re: Write Combine

pavia писал(а):
Бред.


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

Автор:  pavia [ 14 май 2018, 21:00 ]
Заголовок сообщения:  Re: Write Combine

Когда пишут слово бред то имеют в виду что у человека несвязанная речь или другими словами словесный понос.
Цитата:
Графический 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.

Автор:  stlw [ 14 май 2018, 21:30 ]
Заголовок сообщения:  Re: Write Combine

pavia писал(а):
Когда пишут слово бред то имеют в виду что у человека несвязанная речь или другими словами словесный понос.


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

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/