Физическое окружение вычислительной техники

       

RISC, CISC и тд


Исторически сложилось так, что набор инструкций, "понимаемых" (т. е. выполняемых) процессорами очень велик. Всего существует более 100 различных типов инструкций, причем многие из них принимают модификаторы, по существу превращающие один тип инструкций в целое семейство типов. В общем, процессор готов исполнить несколько сотен приказов программиста. Некоторые из них чрезвычайно просты, другие изрядно сложны. (Но не сложнее даже очевидной фразы на практически любом умеренно сложном человеческом языке.)

Длина инструкций процессоров, например, х86 варьируется от одного - до десятка байтов. Короткими инструкциями кодируются простые действия. Сложные — длинными, причем некоторые могут достигать со всеми модификаторами до 20 байт длины.

Все эти характеристики типичны для так называемого CISC-компьютера (Complex Instruction Set Computer, CISC — компьютер со сложным набором инструкций). С каждым новым поколением процессоров х86 CISC-компьютеры становятся все сложнее. Забавно, но одновременно они все больше напоминают RISC-машины (Reduced Instruction Set Computer, RISC — компьютер с уменьшенным набором инструкций). RISC-машины характеризуются относительно скудным набором инструкций одинаковой длины.

В научных кругах уже много лет ведутся дискуссии о сравнительных достоинствах подходов CISC и RISC к проектированию. Проблема выбора уступила место идее объединения двух подходов.

По мнению адвокатов RISC, хотя такой тип машин и не может выполнить много действий, реализуя одну инструкцию, зато каждая инструкция быстрее декодируется в набор операций для логического устройства процессора в силу их единого размера. В среднем, для выполнения RISC-инструкции требуется меньше тактов, чем для выполнения средней CISC-инструкции. Более того, обычно RISC-машинам под силу исполнение сразу нескольких инструкций за такт а на CISC-машинах есть инструкции, для выполнения требующие более 100 тактов.

Ha эти выпады защитники CISC спокойно отвечают, что любимый ими подход имеет перед RISC два больших преимущества.
Во-первых, заявляют они, программировать легче и естественнее под CISC-процессор, потому что он "знает" больше операций, элементарных с точки зрения программиста. А во-вторых, грамотно сделанный CISC- процессор может работать даже быстрее соответствующей RISC-машины, потому что сложные инструкции делают программы короче, а значит и быстрее. Банально, но истина опять где-то посередине. Всего 10 или 20 лет назад все высокопроизводительные рабочие станции, используемые инженерами, программистами, компьютерными художниками, были построены на базе RISC-процессора (или процессоров). Теперь же уровня RISC-станции можно достичь, купив CISC-персональный компьютер.

Просто создатели CISC-процессоров, наконец, позаимствовали некоторые идеи RISC-подхода. В некоторых случаях, примером чему AMD, процессор научился разбивать сложные инструкции х86, ,которые программист считает неделимыми, на множество меньших RISC-инструкций, и уже они выполняются логическим устройством процессора. По сути дела, имеет место эмуляция работы CISC-процессора RISC-процессором.

Что в свою очередь, очень неплохо, описывает работу процессоров Intel Pentium Pro, Pentium II, и последующих. Теперь даже Intel, до этого главный сторонник CISC-подхода, поумнела, и на микропрограммном уровне использует RISC подход, создавая уже RISC, но на программном уровне выглядящие как очень быстрые CISC-, машины.

Более простой пример заимствования — конвейерная обработка и продуманное исполнение, разработанные первоначально именно для RISC-машин.

Ho нашлись и те, которые не спорили, а пошли в третьем направлении, названном YLIW-обработкой (Very Long Computer Word, VLIW - очень длинное машинное слово). Основная идея здесь состоит в том, чтобы поместить несколько относительно простых инструкций в одну длинную, а затем построить процессор, выполняющий их все за один раз. Если все делать правильно, то может получиться нечто, имеющее лучшие черты и RISC-, и CISC-подхода. Сейчас Hewlett-Packard и Intel сотрудничают в этой области.


Содержание раздела