2011-01-31 2 views
7

Если вы писали учебник, и вам нужно было решить, как спроектировать процессор, чтобы поговорить о некоторых проблемах, вы бы выбрали RISC или CISC? Плюсы для RISC, ну, вы знаете: чище, проще и т. Д. Минусы для RISC: мне пришлось бы использовать эмулятор, несколько процессоров на рынке, по сравнению с x86 и, следовательно, меньшее влияние, чем если бы я выбрал чистый RISC-процессор, такой как ARM или SPARC. Я разорван, хотя я склоняюсь к x86 и CISC ... многие плюсы, минусы: не RISC, и все те книги, как Henessy et al. и другие любят RISC! Итак, вкратце: вы бы выбрали RISC или CISC (x86)? Спасибо.cisc versus risc

+0

@James: по сравнению с x86. у вас есть номера? возможно, я смогу использовать их. –

+1

Какова тема учебника? Для какого типа аудитории/читателя? – ChrisW

+1

Запрашивается 15 лет. Дни, когда архитектура механизма внутреннего исполнения имела какое-то сходство с набором команд, уже давно. Google «micro-ops». –

ответ

3

Fory general (или programmer) аудиторий Предлагаю x86. Независимо от того, на каком языке они знакомы, те же строительные блоки, что и , для и , если, или концепция функций может быть легко продемонстрирована инструкциями x86.

Asm достаточно абстрактен, он бесценен, если они могут связывать новые знания с их существующим пониманием программирования. (Это может даже помочь им написать код лучшего качества).

Я не думаю, что выбор x86 означает, что вы должны включить все инструкции. Следующий уровень может заключаться в том, что вы вводите представление машинного кода для некоторых структур ASM, но только тогда, когда они сначала совместимы с их мнемониками.

11

Вы говорите конкретно о дизайне процессора x86 или о конкретной функции дизайна, которая более распространена в x86, чем что-либо еще? Нет? Затем перейдите к архитектуре RISC.

Все, что использует x86, будет заключаться в том, что механика x86 закроет любую точку, которую вы на самом деле пытаетесь сделать.

+0

+1, но: Почему это заслонит его? Кроме того, какова будет моя среда разработки, если я поеду с RISC? –

+4

@ Dervin: набор инструкций x86 ужасно сложный. Только инструкции с переменной шириной будут скрывать любую точку, которую вы попытаетесь сделать для кэширования и предварительной выборки, неравнозначных запросов к памяти, специальных команд, * дьявольски сложных одиночных инструкций *, в основном много крутизны, которые не нужны для того, что вы фактически преподавание. –

+0

Спасибо. Тот же вопрос, который я назвал Blackbear ... как вы думаете, моя среда разработки должна быть? –

4

Я предпочитаю RISC, потому что у них есть быстро и небольшие инструкции. Они дешевле чем CISCs и имеют много больше регистров. И некоторые инструкции процессоров CISC, например, Intel xchg или scas, stos, movs и cmps, используемые с rep, настолько конкретны, что многие компиляторы никогда их не используют, поэтому иметь их - всего лишь отходы от кремния и денег.
И, говоря о регистрах, даже если процессоры RISC нуждаются в дополнительных инструкциях для выполнения того, что CISC будет делать только с одним, у них так много регистров, что (я думаю) память обращается реже на RISC. Я говорю как «программист» CISC, так как я узнал об x86 intel и иногда имею только 6 регистров общего назначения, которые часто сокращаются до 3 или 4 в циклах (ecx ушел с помощью edi или esi или оба), может быть очень сложным. Хотя сама сборка имеет тенденцию скрывать истинную природу кода, я думаю (помню, что я вырос с x86), что сборку RISC сложнее понять из-за большего объема требуемой инструкции.

+0

Если бы я пошел с RISC, мне пришлось бы использовать эмулятор, что бы вы предложили моей среде разработки? –

+0

@ Dervin Thunk: проверьте этот вопрос: http://stackoverflow.com/questions/265846/small-risc-emulator – BlackBear

+0

@Dervin Thunk: Я никогда не пробовал программировать на RISC, поэтому я не могу предложить вам что-то интересное. Но попробуйте задать другой вопрос. ;) – BlackBear

1

Если основным требованием для проекта является безопасность, а не пропускная способность, так как безопасность часто является компромиссом для пропускной способности, тогда я предлагаю использовать архитектуру RISC. Известно, что брандмауэр, который, например, использует ассемблер x86, имеет проблему безопасности, что реализация RISC, такая как ассемблер SPARC, не выполнялась. Таким образом, спецификация для самого безопасного проекта может заключаться в использовании сборки SPARC, поскольку она известна как безопасная среда, и даже если она не была известна как безопасная среда, так мало людей, которые могут программировать сборку SPARC по сравнению с сборкой x86 поэтому количество злоумышленников, которые могут запрограммировать нарушение безопасности, будет меньше, если работает брандмауэр, это архитектура RISC.

Так что я говорю, что если вы говорите о приложении межсетевого экрана, то, вероятно, это должна быть архитектура RISC.

Смежные вопросы