![]() |
|
|
![]()
|
|
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Читаем П.Абеля:
"...В дальнейшем архитектура процессоров 8086 расширялась и дополнялась, и на базе этой архитектуры создавались все новые и новые процессоры - 80286, 80386, 80486, Pentium, Pentium II и т.д. Каждое семейство процессоров имеет собственный уникальный набор инструкций, используемый для выполнения операций..." 1. Означает ли это что каждая серия (80286, 80386 и т.д. это серии?) имеет собственный уникальный набор инструкций? Или же речь идет вообще о микропроцессорах Intel (от поколения к поколению просто добавлялись новые инструкции)? Машинный язык каждого отдельно взятого процессора уникален или же у каждого производителя процессоров он свой? 2. Раз машинные языки различных процессоров могут отличаться то откуда знает компилятор (интерпретатор) на какой из языков ему переводить исходный код на том же c++? Ведь никогда никто не говорит о реализациях тех или иных компиляторов(интерпретаторов) под конкретный процессор (или я ошибаюсь?). Восновном речь идет об ос-ях, например под дос, винду, линух... Может быть перед трансляцией транслирующая программа выясняет для себя набор машинных инструкций используемых процессором? Но если так то при том, что машинные языки разных процов могут быть различны, программа часто может не работать на других машинах. Но ведь все как правило работает? Это сообщение отредактировал(а) main - 26.7.2006, 07:54 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Exekutor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 1.11.2005 Где: Казахстан. Костан ай Репутация: нет Всего: 4 |
Есть интелсовместимые процессоры, которые поддерживают стандартный набор инструкций это Athlon и пень
-------------------- [color=blue][size=2]En taro addun, ma sol larinas[/size][/color] |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Каждый последующий проц х86 поддерживает команды предидущего + что нибудь новое. Иногда для этого нужно переходить в специальные режимы, т.к. разница между процами может быть огромна, например между 268 и 386 (страницы, вирутальная памят, поддержка (железная) многозадачности и т.д.). Также в вводом SSE инструкций (семейство SIMD) нельзя пользовать FPU одновременнно, ну и прочие заморочки. У компилера есть множество back-end'дов транслирующих высокоуровневый промежуточный байткод в машинный конкретного проца. Чем новее проц, тем больше свободы (читай свободы для оптимизаций) для компилера, но на более младших процах такая прога может и не работать. В итоге прога скомпилированная под athlon-xp теоретически должна быть быстрее чем эта же прога под 80386. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
2Executor
Что такое стандартный набор инструкций и для кого он являеться стандартом? Значит прога скомпиленая на "интелосовместимой" машине может не работать на "интелонесовместимой"? К примеру, такие процессоры как Duron, Celeron, Semperon и т.д.? Или эти процессоры тоже являються "интелсовместимыми"? 2Sardar Значит инструкции серии x86 дополнялись от поколения к поколению. А разве Pentium не являеться продолжением серии x86 или же он стоит особняком?
А что такое back-end'ы? По смыслу - нечто вроде базы инструкций для различных процессоров? Это сообщение отредактировал(а) main - 27.7.2006, 01:23 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Есть такой термин как архитектура процессора, говорим не о физическом устройстве, а о наборе инструкций и возможностей процессора. К примеру есть х86, также SPARC (Sun'овские машины), PowerPC (Mac'и) или z80 (SpectrumZX! Каждая архитектура имеет свои особенности, собственный набор инструкций и возможностей. Различные производители могут выпускать разные процы под единой архитектурой, придумывая проц "с нуля". Т.е. этo общие международные стандарты "как должен вести себя проц".
Это торговая марка, просто название. Все они пентиумы, но у каждой серии своё ядро, разные кеши, разные добавленные фишки. Но! все старшие модели совместимы с младшими, именно потому они "тормозят". Сейчас наследие х86 настолько "опостылело", что придумываються новые архитектуры как AMD64, которые не совместимы со старыми х86 процами. Хотя IA64 поддерживает i386 (IA32), но через переход в специальный режим, т.е. специально для извращенцев (надавили менеджеры на разработчиков Техничеки это верно, сегодняшние процы на самом деле интерпретаторы х86, т.е. высокоуровневые инструкции разбираються на более простые опы и исполняються процессором. Проблема подхода:
Модули компилятора генерирующие код из промежуточного высокоуровнего кода. Front-end это парсер конкретного языка. Так например GCC имеет front-end'ы под массу популярных языков (то что оффициально поддерживаеться есть очень малая часть всего main, ответы на большинство твоих вопросов можешь найти на http://wikipedia.org -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
2Sardar
Спасибо! Ощущаеться опыт и глубочайшие познания в области. С пониманием реплики на первую цитату не возникло никаких проблем. Но все же она не содержит ответа на поставленный вопрос (или я что-то по незнанию пропустил?). Там рассказано о том что такое архитектура и какие они бывают. Это все понятно даже такому нубу в асме как мне. С пентиумом тоже все ясно. А вот с бек- и фронт- ендами не совсем. Можешь немного разьяснить? Боюсь ставить неправильно сформулированные вопросы. Вопервых что такое парсер в этом контексте? "Модули компилятора генерирующие код из промежуточного высокоуровнего кода." - а разве это не основная функция компилера? Какая специфика этих модулей? Разьясни плз. P.S. Спасибо за ссылки Это сообщение отредактировал(а) main - 27.7.2006, 03:08 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Есть, большой, им убить можно Parser - синтаксический анализатор, зачитывает твой текст (либо граф. диаграму, хотя их парсерами не называют) на конкретном языке и транслирует его в промежуточную форму, их много (AST с аттрубутами до RTL и подобного), на каждой стадии свои оптимизации. Для справки читать как устроен GCC, он не есть истина в последней инстанции, но его устройство логично и красиво.
Генерация кода есть лишь часть основного кода компилера. Выбирая конкретный back-end можно на уровне инструкций скомпилировать прогу под требуемую платформу, а внутри платформы под конкретный проц (пользуя его расширения и "навороты") если требуеться. На пальцах разжевать довольно сложно, лучше сам прочти: http://en.wikibooks.org/wiki/GNU_C_Compiler_Internals И вообще помни что на 90% твоих любых вопросов википедия знает ответ -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Спасибо за помощь, тему можно закрыть.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |