![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Правда ли, что одноядерный процессор работает в реальном режиме быстрее, чем в защищенном, так как в реальном ему не приходиться отвлекаться на переключение страниц дескрипторов, контролировать границы памяти (кода/даннах) и заниматься еще многим всем, помимо исполнения основной программы.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
иногда да, это правда.
но в реальном режиме у нас всего 1 МБ памяти, и 16 битные регистры и ещё куча вещей которыми мы не можем пользоваться |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Регистры у нас в реальном могут быть и 16 битные, и 32-битные, и даже в перемешку. Все точно так же, как и в защищенном. Более того, доступны команды MMX, SSE 1-4 и все прочие расширения. Про память сейчас речи не идет, 1 Mb вполне себе достаточно для задач типа брутфорса или какой-либо молотилки чисел.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 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 Т.е. выигрыш может и будет, но измеряться он будет процентами, имхо.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#5 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]() Цитата:
Из того что в real-mode можно изменить состояние управляющих регистров, не следует, что все разрешенные фичи будут доступны для real-mode софта. rpy3uH правильно сказал. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Какие "разрешенные фичи"? мультимедиа-расширения (MMX,SSE) - будут доступны. 32-битные регистры - будут доступны.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> каким чудом?
префикс 66h на размер данных/регистров работает и в real mode.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 19.07.2011 в 13:27. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
![]()
И этот же префикс смены разрядности в некоторых процессорах добавляет такт ко времени выполнения команды. Если в процессоре 1 ядро, то быстрей всего будет защищенный режим без страничной адресации и переключения задач. То есть по сути тот же реальный, но с 4Гб-ми 32-х разрядными сегментами данных и кода (или сейчас уже длинный 64-х разрядный режим
![]() |
![]() |
![]() |
![]() |
#9 |
C/C++, Asm
Участник клуба
Регистрация: 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. |
![]() |
![]() |
![]() |
#10 | |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
в защищённом режиме основное торможение уходит на трансляцию адресов, поэтому всё упирается в трансляцию адресов. если есть трансляция адресов и если программа неправильно написана, то замедление будет ощущаться по сравнению с режимом реальных адресов. все остальные проверки безопасности и всякие фишки защищённого режима совершенно не влияют на скорость.
Цитата:
т.е. если взять два одинаковых куска кода. один кусок вырпонить в real-mode процессора, а другой в protected без трасляции адресов. то различий никаких. проверки сегментов и флагов защиты, это всё чушь, расходы процессорного времени ничтожны. трансляция адресов основной ступор, если трансляция адресов есть, то скорость понизится. но если правильно написать программу чтобы кэш нормально использовался, то все потери будут снивелированы Последний раз редактировалось rpy3uH; 19.07.2011 в 14:23. |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Самый быстрый браузер | 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 |