|
Заблокирован
|
||||||
Memory shift или самый быстрый способ перемещения блока памяти30.10.2014, 18:45. Показов 7421. Ответов 50
Метки нет (Все метки)
Речь идёт о памяти DDR SDRAM. 1. Может есть специальные процессорные команды процессоров последних поколений для такого перемещения памяти? 2. Может есть специальный тип памяти, не который позволяет делать memory shift? 3. Может есть специальный тип процессора для этих целей? P.S. ассемблерный код приветствуется.
0
|
||||||
| 30.10.2014, 18:45 | |
|
Ответы с готовыми решениями:
50
Самый быстрый способ решения задачи a+b
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|
| 30.10.2014, 20:11 | |
|
0
|
|
|
Заблокирован
|
|||||||
| 30.10.2014, 20:15 [ТС] | |||||||
0
|
|||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||||||
| 30.10.2014, 20:19 | ||||||
|
могу предложить такой вариант, в рамках языка
допустим тебе нужен буфер из 10 ячеек, выделяем 20
Добавлено через 1 минуту никаких копирований но памяти в два раза больше
1
|
||||||
|
Заблокирован
|
|
| 30.10.2014, 20:26 [ТС] | |
|
ValeryS, так что на счёт копирования видео памяти в видео память ?
0
|
|
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
||
| 30.10.2014, 20:30 | ||
|
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||
| 30.10.2014, 20:33 | ||
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||
| 30.10.2014, 20:36 | |||
|
0
|
|||
|
Студент
121 / 132 / 39
Регистрация: 07.04.2011
Сообщений: 503
|
||
| 30.10.2014, 20:37 | ||
|
0
|
||
|
|
||||||
| 30.10.2014, 20:46 | ||||||
Сообщение было отмечено -THE_MASTER666- как решение
Решение
При чём тут DMA, CUDA и видеопамять, если речь идёт конкретно об RAM ПК, с которой и работает пример из первого поста?
GCC. x86. Почти идеальный вариант (как было сказано выше через rep movsd):
Не по теме: -THE_MASTER666-, а тебе не кажется, что ты лезешь в недостижимые на данный момент для тебя дебри? Ведь ты же даже толком и не знаешь что тебе нужно.
0
|
||||||
|
Заблокирован
|
|||||
| 30.10.2014, 20:59 [ТС] | |||||
![]() Вот если б такое было для больших блоков памяти... А ток то, всего 4 байта, ну или 8 в случае х64, что ясен пень связанно с размером регистров процессора. Ну вот представьте себе поезд на рельсах, длинной в один перрон. Он припаркован на перроне и занимает всю его длину. Я подошёл к поезду сзади и пнул его ногой (я супер мэн) и поезд покатился по рельсам и допусти остановился тогда, когда только что ушёл с перрона, вот он и сдвинулся на длину своего состава, то есть он сдвинулся. А вот если б он скопировался, тогда бы ситуация была следующей: На участке за перроном прибегает бригада инженеров со сварщиками и начинает там собирать там поезд прямо на рельсах, когда соберут, они могут даже разобрать первый поезд (обнулить), если потребуется. Но всё это долго, гораздо быстрее его просто сдвинуть. Добавлено через 1 минуту Не по теме:
Добавлено через 3 минуты castaway, спасибо за пример, поизучаю (почему то спасибо сказать нельзя). Сейчас времени уже нет - ушёл.
0
|
|||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||
| 30.10.2014, 21:06 | ||
Сообщение было отмечено -THE_MASTER666- как решение
Решениеесли ты имеешь ввиду регистр процессора то к памяти это отношения не имеет для того чтобы сдвинуть в памяти нужно считать в регистр, сдвинуть и записать обратно в память итого 1 чтение 2 модификация 3 запись что больше чем просто копирование 1 чтение 2 запись а уж тем более чем чтение/ запись одной командой movsd
1
|
||
|
Заблокирован
|
|||||||
| 30.10.2014, 21:31 [ТС] | |||||||
__movsd(a1, a2, 10); - эта штука сама строку формирует, которую ты вручную вбивал
0
|
|||||||
| 30.10.2014, 21:42 | |
|
0
|
|
|
|
||
| 30.10.2014, 22:13 | ||
Сообщение было отмечено -THE_MASTER666- как решение
Решение
А с какой целью делается сдвиг памяти? А то вполне возможно, что проблема вовсе не в сдвиге, а в алгоритме, который требует сдвигать память. А если всё-таки нужно двигать память, то можно выдрать исходники memmove/memcpy из glibc
Добавлено через 2 минуты
1
|
||
|
Студент
121 / 132 / 39
Регистрация: 07.04.2011
Сообщений: 503
|
|||
| 30.10.2014, 22:29 | |||
|
Добавлено через 5 минут
0
|
|||
|
Заблокирован
|
||
| 30.10.2014, 22:31 [ТС] | ||
|
Отдалённо это похоже на дефрагментацию HDD. Ладно, нет шифта, ну и ладно... Всем спасибо
0
|
||
|
|
|||
| 30.10.2014, 22:32 | |||
|
Добавлено через 45 секунд
0
|
|||
|
Заблокирован
|
|
| 30.10.2014, 22:40 [ТС] | |
|
0
|
|
|
|
|
| 30.10.2014, 22:54 | |
|
Тогда задам следующий вопрос, который будет вполне очевидным и до банальности идиотским: а зачем?
Не по теме: Сразу вспомнился анекдот. Сидит негр в norton commander'е, поёт "i like to move it move it" и нажимает F6-Tab-F6-Tab...
1
|
|
|
Заблокирован
|
||
| 30.10.2014, 23:06 [ТС] | ||
![]() У меня тут есть вопрос по этой дефрагментации: 1. В SDRAM в плане скорости чтения / записи есть разница между чтением блоков одинаково размера из случайных позиций в адресном пространстве памяти или же из последовательной цепочки? Не то есть если я читаю просто рандомом какие - то ячейки памяти, у меня скорость одна (Synchronous Dynamic Random Access Memory - собственно и создан для рандом аксеса), но вот вопрос, быстрее будет произведено чтение, если я буду читать ровно столько же блоков памяти и ровно такого же размера, в случае, если они в адресном пространстве расположены один за другим поровозиком ?
0
|
||
| 30.10.2014, 23:06 | |
|
Считать квадратную матрицу. Какой самый быстрый способ это сделать? Каков самый быстрый способ узнать количество строк в оргомном текстовом файле в Windows?
Самый быстрый способ склеивания строк Какой способ рисования самый быстрый? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BitTorrent (версия 7.11 English) и Меню Настройки
russiannick 15.11.2026
Пункты, отвечающие за отключение обновлений в BitTorrent версии 7. 11 (английской)
Options
Preferences
General
Language
|
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент".
В данной функции нет апострофов,. . .
|
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы.
Карта этого меню приложена ниже.
Нужный пункт выделен красным.
Сервис
Настройки
Поведение
|
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки.
Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён".
Изменено отображение буквы Й.
Добавлена. . .
|
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|