Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2011, 10:48   #1
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию Самый быстрый режим работы процессора

Правда ли, что одноядерный процессор работает в реальном режиме быстрее, чем в защищенном, так как в реальном ему не приходиться отвлекаться на переключение страниц дескрипторов, контролировать границы памяти (кода/даннах) и заниматься еще многим всем, помимо исполнения основной программы.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 19.07.2011, 10:55   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

иногда да, это правда.

но в реальном режиме у нас всего 1 МБ памяти, и 16 битные регистры и ещё куча вещей которыми мы не можем пользоваться
rpy3uH вне форума Ответить с цитированием
Старый 19.07.2011, 11:02   #3
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
иногда да, это правда.

но в реальном режиме у нас всего 1 МБ памяти, и 16 битные регистры и ещё куча вещей которыми мы не можем пользоваться
Регистры у нас в реальном могут быть и 16 битные, и 32-битные, и даже в перемешку. Все точно так же, как и в защищенном. Более того, доступны команды MMX, SSE 1-4 и все прочие расширения. Про память сейчас речи не идет, 1 Mb вполне себе достаточно для задач типа брутфорса или какой-либо молотилки чисел.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 19.07.2011, 12:29   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Многое зависит от того, кто хостит защищённый режим. Вероятно, винда или убунту будут чаще отвлекаться на свои нужды, чем какой-нибудь QNX/RTLinux. Можно и свой хост написать и свести все переключения к минимуму, так что различия между real/protected будут минимальны. Там и так различий мало, на самом деле. По-сути, реальный режим (на 386 и выше) — это защищённый режим со специально загруженными селекторами сегментов. Вплоть до того, что можно выйти в реальный режим и получить достут к сегменту памяти размером в 4GB:

http://www.os2museum.com/wp/?p=319
http://www.rcollins.org/articles/pmb...ec_a1_doc.html

Т.е. выигрыш может и будет, но измеряться он будет процентами, имхо.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 19.07.2011, 13:04   #5
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
регистры у нас в реальном могут быть и 16 битные, и 32-битные, и даже в перемешку. Все точно так же, как и в защищенном. Более того, доступны команды MMX, SSE 1-4 и все прочие расширения.
Интересно, каким чудом?
Из того что в real-mode можно изменить состояние управляющих регистров, не следует, что все разрешенные фичи будут доступны для real-mode софта.

rpy3uH правильно сказал.
f.hump вне форума Ответить с цитированием
Старый 19.07.2011, 13:12   #6
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
Интересно, каким чудом?
....
не следует, что все разрешенные фичи будут доступны для real-mode софта.
Какие "разрешенные фичи"? мультимедиа-расширения (MMX,SSE) - будут доступны. 32-битные регистры - будут доступны.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 19.07.2011, 13:20   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> каким чудом?

префикс 66h на размер данных/регистров работает и в real mode.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 19.07.2011 в 13:27.
veniside вне форума Ответить с цитированием
Старый 19.07.2011, 13:39   #8
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

И этот же префикс смены разрядности в некоторых процессорах добавляет такт ко времени выполнения команды. Если в процессоре 1 ядро, то быстрей всего будет защищенный режим без страничной адресации и переключения задач. То есть по сути тот же реальный, но с 4Гб-ми 32-х разрядными сегментами данных и кода (или сейчас уже длинный 64-х разрядный режим). А если больше одного ядра, то лучше немного потерять на переключении задач, но использовать все ядра процессора.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 19.07.2011, 13:39   #9
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Ладно.
В real-mode есть досту к ресурсам в рамках 8086 архитектуры (16-битные регистры, сегментная адресация, 1Мб памяти). Это режим в котором оказывается процессор после reset или power-on.
Фичи - это защищенные режимы 32/64-bit; кеши процессора; расширения MMX, SSE, AVX.. И для того чтобы ими воспользоваться их нужно продетектировать и включить, для этого есть CPUID и управлющие регистры CR0-CR4. И тут важно знать, что в real-mode нет доступа к расширениям. Точно также как protected-32 имеет лишь ограниченный доступ к SSE, AVX.

Последний раз редактировалось f.hump; 19.07.2011 в 13:42.
f.hump вне форума Ответить с цитированием
Старый 19.07.2011, 14:04   #10
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

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

Цитата:
Сообщение от alexcoder Посмотреть сообщение
А если больше одного ядра, то лучше немного потерять на переключении задач, но использовать все ядра процессора.
я говорю именно про чистый код защищённого режима без всяких там мультизадачностей и прочего.

т.е. если взять два одинаковых куска кода. один кусок вырпонить в real-mode процессора, а другой в protected без трасляции адресов. то различий никаких. проверки сегментов и флагов защиты, это всё чушь, расходы процессорного времени ничтожны. трансляция адресов основной ступор, если трансляция адресов есть, то скорость понизится. но если правильно написать программу чтобы кэш нормально использовался, то все потери будут снивелированы

Последний раз редактировалось rpy3uH; 19.07.2011 в 14:23.
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самый быстрый браузер Marsel737 Софт 31 30.08.2010 01:09
Самый быстрый способ получить изображение в заданном прямоугольнике? TwiX Мультимедиа в Delphi 4 04.04.2010 10:08
Самый быстрый способ проверить прокси? TwiX Работа с сетью в Delphi 6 15.02.2010 22:41
Самый быстрый вид сортировки массива Warnes Свободное общение 42 06.12.2009 16:02
Предложите самый быстрый алгоритм! Gambler Общие вопросы Delphi 6 26.12.2006 22:44