Пишите,кто знает.
Сущность RISK и CISK архитектур
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
Здраствуйте,давайте обсудим эти две архитектуры.Давайте начнем из их структуры и основного отличия.
Пишите,кто знает.
Пишите,кто знает.
- Реклама
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
- Реклама
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
Значит так,я не так давно вообще услышел эти слова Risc iCISC архитектуры. Я вообще начел изучать микропроцесорную технику наверное как и большенство студентов из МК 8051. На сколько я знаю у него CISC архитектура.Я прав?
Но потом мы перешли на AVR МК у микрокон. этого семейства архит. RISC. Мне сразу же захотелось понять отличие архитектур.
Конечно же у нете можно сразу же найти,что Risc -это вычисления с сокращённым набором команд, а CISC вычисления с полнымнабором команд.
Но потом мы перешли на AVR МК у микрокон. этого семейства архит. RISC. Мне сразу же захотелось понять отличие архитектур.
Конечно же у нете можно сразу же найти,что Risc -это вычисления с сокращённым набором команд, а CISC вычисления с полнымнабором команд.
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
CISC (англ. Complex Instruction Set Computing) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:
Нефиксированным значением длины команды.
Арифметические действия, кодируется в одной инструкции.
Небольшим числом регистров, каждый из которых выполняет строго определённую функцию.
Нефиксированным значением длины команды.
Арифметические действия, кодируется в одной инструкции.
Небольшим числом регистров, каждый из которых выполняет строго определённую функцию.
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
А никакой жесткой классификации и нет. Есть условная. ТОчнее главное отличие. У Рисков фиксированная длинна команды (у авр 16бит), это _значительно_ упрощает декодер команд, а следовательно конвеер. У Кисков же длина команды варьируется. Например у пресловутого и оплеванного x86 от одного байта до кажется шешнадцати. Изза этого помнится до 30-40%% транзисторов занимаются только разбором команд и предсказаниями, что же хотел компилятор этим сказать. В общем конвеер не разогнать. Поэтому и было признанным тупиковым направление NetBurst (?).
Присутсвует второй ищо аспект. Киск команды предполагались для осмысления программистом, и облегчения ему работы. Риск команды предполагают наискорейшее выполнение примитивных операций. Но примитивных не значит некачественных или неспособных. Их (команд) будет больше, чем в киск варианте, но при грамотном программинге риск алгоритм опередит киск.
Самые последние же веяния в процессоростроении говорят о том, что все движется в сторону риска. Посмотрите на наборы SSE. Типичный путь упрощения и унификации системы команд. В смысле декодеру их разбирать проще и проще. В 64 битном формате (АМД64 + х86_64) вообще новый формат системы команд. Гораздо ближе к рисковому.
Ну и напоследок. Вы вероятно слышали о микрокоде? Так вот - он занимается тем что расшифровывает некоторые киск команды в последовательности внутренних риск команд. Таким образом киск команды выступают уже макросами на внутренних риск командах. Оставляя за киск пожалуй только одно преимущество - более компактный код. Но эти несколько процентов компактности ценой половины транзисторов - хомут на шее.
Вот как дорого дается интелу обратная совместимость.
Что же касательно МК - история повторяется. Почему например панасоник МК 8 бит топчутся у порога в 10мипс. Потому что система команд киск. И опять эта обратная совместимость. Вот и плесневеют там. В то время как авры, с их типично рисковым подходом, уже десятки мипс.
Кажется все сказал
Присутсвует второй ищо аспект. Киск команды предполагались для осмысления программистом, и облегчения ему работы. Риск команды предполагают наискорейшее выполнение примитивных операций. Но примитивных не значит некачественных или неспособных. Их (команд) будет больше, чем в киск варианте, но при грамотном программинге риск алгоритм опередит киск.
Самые последние же веяния в процессоростроении говорят о том, что все движется в сторону риска. Посмотрите на наборы SSE. Типичный путь упрощения и унификации системы команд. В смысле декодеру их разбирать проще и проще. В 64 битном формате (АМД64 + х86_64) вообще новый формат системы команд. Гораздо ближе к рисковому.
Ну и напоследок. Вы вероятно слышали о микрокоде? Так вот - он занимается тем что расшифровывает некоторые киск команды в последовательности внутренних риск команд. Таким образом киск команды выступают уже макросами на внутренних риск командах. Оставляя за киск пожалуй только одно преимущество - более компактный код. Но эти несколько процентов компактности ценой половины транзисторов - хомут на шее.
Вот как дорого дается интелу обратная совместимость.
Что же касательно МК - история повторяется. Почему например панасоник МК 8 бит топчутся у порога в 10мипс. Потому что система команд киск. И опять эта обратная совместимость. Вот и плесневеют там. В то время как авры, с их типично рисковым подходом, уже десятки мипс.
Кажется все сказал
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
ЗЫ Про регистры. Киск часто привязывают регистры к некоторым функциям. Вспомните совковый х86 - команду ААС или как ее там. Аргументы неявные. Взять с такого то регистра, что то сделать и положить в такой то. Типичный же подход риск - явное указание что откуда брать и куда это затем положить.
Ну и в МК кисках корявая работа с регистрами. Например типичный фреймстек киски - сохранить на стеке указать не фреймстек, затем рабочие рагистры, затем копию параметров. В рисках же (для примера С166) просто переключается регистровый блок. Потому как регистры более универсальны.
Думаю особого плеча в количестве регистров не наблюдается, но перевес в сторону риска есть.
А то что их в 8051 всего 8 (?) - це веяние времени. В АРМЕ 31, например.
Ну и в МК кисках корявая работа с регистрами. Например типичный фреймстек киски - сохранить на стеке указать не фреймстек, затем рабочие рагистры, затем копию параметров. В рисках же (для примера С166) просто переключается регистровый блок. Потому как регистры более универсальны.
Думаю особого плеча в количестве регистров не наблюдается, но перевес в сторону риска есть.
А то что их в 8051 всего 8 (?) - це веяние времени. В АРМЕ 31, например.
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
- Сообщения: 161
- Зарегистрирован: Ср апр 22, 2009 11:07:00
Да - риск не значит обделенный. И не значит микроконтроллер!
Первый _процессор_ был 4х битным, и не имел ММU. Его уделает даже АВР тини. А АРМ710 имеет 32 разряда и ММU но тем не менее микроконтроллер! А тот же 386 и 32 разряда и ММУ - но уже процессор!
Нет никакой классификации. Как позиционирует производитель. Как правило критерии другие - встраиваемость, управление памятью. и т.д. Можете взять такой критерий- есть MMU - это процессор. В него можно втюхать операционку ширпотреб. Нету MMU это уже скорее микроконтролер. Там все проще, и сложней. Операционка не настоящая.
Никто же не называет 386 - микроконтроллером.
Первый _процессор_ был 4х битным, и не имел ММU. Его уделает даже АВР тини. А АРМ710 имеет 32 разряда и ММU но тем не менее микроконтроллер! А тот же 386 и 32 разряда и ММУ - но уже процессор!
Нет никакой классификации. Как позиционирует производитель. Как правило критерии другие - встраиваемость, управление памятью. и т.д. Можете взять такой критерий- есть MMU - это процессор. В него можно втюхать операционку ширпотреб. Нету MMU это уже скорее микроконтролер. Там все проще, и сложней. Операционка не настоящая.
Никто же не называет 386 - микроконтроллером.


