2013-06-25 6 views
7

В соответствии с «компьютерной архитектуры и организации» Майлз Murdoca и Винсент Heuring,Почему процессоры CISC сложнее конвейерно? В каком смысле некоторые инструкции «более сложные», чем другие?

CISC инструкции не подходят конвейерных архитектур очень хорошо. Для эффективной работы конвейерной обработки каждая инструкция должна иметь схожесть с другими инструкциями, по крайней мере с точки зрения относительной сложности .

Почему это правда? Что подразумевается под сложностью инструкций, не все инструкции принимают один такт, чтобы начать выполнение; если инструкция читает или записывает в память, тогда потребуется больше времени, но RISC-процессоры читают также запись в память (конечно)?

+0

Лучший способ узнать, что означают авторы книги, - это напрямую спросить их. Что касается других частей вашего вопроса, то на современных процессорах простые инструкции (ADD/SUB/MOV, логические инструкции, сдвиги) обычно выполняются за 1 цикл, целочисленное умножение выполняется в 3-4 цикла, умножение с плавающей запятой в 3-6, плавающее - добавление точки в 2-5. –

+0

@ МаратДухан, но какой цикл? Даже [поиск Google] (https://www.google.com/search?q=define%3Acycle&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#client = светлячок-а-вс = Mig & RLS = org.mozilla: EN-US: официальный и д = часы + цикл & TBS = д.ф.н.:. 1 & ТВО = и & са = X & е = 9hfJUZvXLrD1igLztYHYDw & вед = 0CC0QkQ4 & BAV = on.2, or.r_qf & BVM = bv.48340889, d.cGE & Ф.П. = a6e1eebee3fff02f & biw = 1920 & bih = 956) либо сказал, что это самая фундаментальная единица времени или количество времени, которое требуется для завершения одной инструкции, которая дает круговое определение. – Celeritas

+1

Сборочная линия, которая производит один виджет в минуту, никоим образом не означает, что виджет занимает минуту, чтобы произвести, это может занять часы или дни, когда виджет начинает заканчиваться. эта производственная линия, хотя, вероятно, имеет очень мало, если есть какие-либо варианты для каждого виджета, поэтому конвейер может двигаться плавно, минута за минутой навсегда. Инструкции, очевидно, требуют, чтобы ряд тактовых циклов начинал заканчиваться на современных компьютерах или в старых. Они стремятся усреднить одну (или более) инструкцию (ы), выполненную за такт для всплесков инструкций, затем вы получите стойло и повторите попытку. –

ответ

10

«Сложность» инструкций связана с тем, насколько их размер и формат могут отличаться. Возьмите архитектуру x86 IA32 (Intel 32 бит), например CISC. Размер инструкций может варьироваться от 1 до 12 байтов, и их формат также сильно меняется (формат - это то, сколько бит используется для каждого поля, где расположены эти биты и т. Д.).

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

Все инструкции ARM (архитектура RISC), с другой стороны, имеют ровно 4 байта. Поэтому, как только вы получаете 4 байта, вы знаете, что вы можете отправить эти байты для этапа декодирования конвейера, и вы можете сразу начать получать следующую инструкцию.

1

Что подразумевается под архитектурой CISC, обычно требуются инструкции, которые относительно длиннее RISC. Поэтому планирование сложнее. В CISC часто встречаются простые инструкции, а более сложные инструкции занимают больше времени. Таким образом, в трубопроводе есть вещи, называемые опасностями, которые могут создавать проблемы для гладкой конвейерной обработки. Инструкции по плавающей точке X86 будут, например, длиннее, чем загрузка или сохранение x86.

+0

Так что действительно просто, что вы говорите, с CISC больше опасностей на трубопроводах? – Celeritas

+0

Да, чем более регулярным или похожим ваш набор инструкций, тем легче планировать его. Инструкции могут варьироваться не только по длине, но и по сложности. – BillH

+0

Что такое «планирование»? – Celeritas