CISC- и RISC-архитектура компьютеров. Разработка машинного языка требует предварительного принятия многих
решений. Одно из них состоит в выборе между построением сложной машины, способной декодировать и выполнять широ-
кий спектр разнообразных команд, и созданием более простой машины, которая будет иметь ограниченный набор команд. К
первому варианту относятся компьютеры с CISC-архитектурой (Complex Instruction Set Computer – компьютер со сложным
набором команд), а ко второму – компьютеры с RISC-архитектурой (Reduced Instruction Set Computer – компьютер с ограни-
ченным набором команд). CISC-компьютер проще программировать, поскольку единственная его команда позволяет решить
задачу, выполнение которой в RISC-компьютере потребует длинной последовательности более простых команд. Однако
CISC-компьютер сложнее сконструировать, и он обходится дороже как при создании, так и при эксплуатации. Более того,
многие сложные команды найдут лишь ограниченное применение, вследствие чего могут оказаться просто балластом, соз-
дающим дополнительную бесполезную нагрузку.
Для уменьшения числа используемых электронных цепей CISC-процессоры обычно конструируются по двухуровневой
схеме, при которой каждая машинная команда в действительности выполняется как последовательность простейших опера-
ций. В такие процессоры обычно встроен блок специальных ячеек памяти, называемых памятью микрокоманд, в которых
записана программа, именуемая микропрограммой. Именно эта микропрограмма управляет выполнением сложных команд
машинного языка. Кроме того, в микропрограмму можно вносить коррективы и тем самым изменять смысл команд машин-
ного языка. Таким образом, помимо поддержки расширенного набора команд CISC-процессоров, реализуемой без использо-
вания сложных электронных схем, наличие микропрограммы позволяет настраивать один и тот же тип центрального процес-
сора на поддержку различных специализированных команд машинного языка просто посредством внесения необходимых
изменений в микропрограмму.
Сторонники RISC-архитектуры заявляют, что все эти преимущества не оправдывают издержки, связанные с поддерж-
кой микропрограммирования. Они утверждают, что лучше спроектировать более простую машину с небольшим, но тща-
тельно продуманным набором команд. Такой подход позволяет избежать усложнения конструкции, связанного с поддержкой
памяти микропрограмм, что приводит к упрощению проектирования центрального процессора. Однако это означает, что
программы на машинном языке для RISC-компьютеров будут значительно длиннее программ для CISC-компьютеров, так
как для выполнения сложных операций потребуется несколько отдельных машинных команд, тогда как в CISC-архитектуре
тот же результат достигается с помощью единственной команды.
В настоящее время на рынке представлены оба вида процессоров – как с CISC-, так и с RISC-архитектурой. Процессоры
серии Pentium, выпускаемые компанией Intel, являются примером центральных процессоров с CISC-архитектурой, тогда как
процессоры серии PowerPC, выпускаемые компаниями Apple Computer, IBM и Motorola, имеют RISC-архитектуру.
Конвейерная обработка. Скорость прохождения электронных импульсов по проводам не превышает скорости света.
Поскольку скорость света составляет около 30 см в наносекунду (одна миллиардная часть секунды), потребуется не менее
двух наносекунд, чтобы блок управления центрального процессора выбрал команду из ячейки памяти, которая находится от
него на расстоянии около 30 см. Запрос на считывание должен поступить в схемы основной памяти, для чего потребуется не
менее одной наносекунды. После этого выбранная команда должна быть доставлена в блок управления, что также потребует
не менее одной наносекунды. Следовательно, чтобы выбрать и выполнить команду, машине потребуется несколько наносе-
кунд, а это означает, что увеличение скорости выполнения команд прямо связано с проблемой его миниатюризации. Несмот-
ря на фантастический прогресс в этой области, все же рано или поздно будет достигнут теоретический предел.
Попытки решить эту проблему привели к тому, что конструкторы вычислительных машин заменили исходную концеп-
цию скорости выполнения команд принципом пропускной способности. Этот термин означает общее количество работы,
которое машина способна выполнить за определенный период времени, при этом продолжительность выполнения отдельно-
го задания в расчет не принимается.
Приведем пример того, как можно повысить пропускную способность компьютера без увеличения скорости выполнения ко-
манд. В данном случае используется подход, называемый конвейерной обработкой, согласно которому выполнение этапов
машинного цикла может перекрываться во времени. Например, во время этапа выполнения одной из команд для следующей
команды уже может выполняться этап выборки, а это означает, что выполнение более одной команды одновременно осуще-
ствляется по принципу "конвейера", т.е. каждая из них будет находиться на разной стадии выполнения. В результате общая
пропускная способность компьютера увеличится, причем без повышения скорости выборки и выполнения каждой отдельной
команды. Естественно, когда машина достигнет команды перехода, все преимущества от предварительной выборки и вы-
полнения последующих команд будут утрачены, так как в действительности потребуется выполнение совершенно других
команд, которых в данное время на "конвейере" нет.
Конструкции современных процессоров оставляют далеко позади рассмотренный выше простейший пример конвейер-
ной обработки. Современные процессоры способны выбирать сразу несколько команд за одно и то же время, а также реаль-
но выполнять больше одной команды одновременно, если только их действия не являются взаимозависимыми.
Многопроцессорные машины. Использование конвейерного режима можно рассматривать как первый шаг в направ-
лении реализации параллельной обработки, предусматривающей одновременное выполнение сразу нескольких действий.
Однако параллельная обработка требует использования нескольких устройств обработки данных, что приводит к необходи-
мости создания многопроцессорных машин.
Аргументом в пользу создания многопроцессорных машин может стать не что иное, как модель работы человеческого
мозга. Современные технологии уже позволяют создавать электронные схемы, в которых есть столько же переключающих
цепей, сколько нейронов в мозге человека (нейроны можно рассматривать как живые переключающие схемы). Несмотря на
это, возможности современных компьютеров все еще значительно уступают возможностям человеческого мозга. Считается,
что это происходит из-за неэффективного использования компонентов машин, вызванного недостатками архитектуры ком-
пьютеров. Действительно, если в компьютере установлено множество схем памяти и всего один центральный процессор, то
большинство схем памяти в любой момент времени просто не используется. В противоположность этому, большая часть
человеческого мозга в любой момент времени пребывает в активном состоянии. По этой причине сторонники параллельной
обработки выступают в защиту машин, имеющих несколько устройств обработки данных. Они заявляют, что такое решение