Для сокращения числа циклов, необходимых для вызова команды, требуется нечто большее, чем простое добавление схемы, которая увеличивает РС на 1. Чтобы повысить скорость вызова команды, нужно применить третий подход — параллельное выполнение команд. Весьма эффективно отделение схем для вызова команд (8-разрядного порта памяти и регистров РС и МВ11), если этот блок сделать функционально независимым от основного тракта данных. Таким образом, он может сам вызывать следующий код операции или операнд. Возможно, он даже будет работать асинхронно относительно другой части процессора и вызывать одну или несколько команд заранее.
Один из наиболее трудоемких процессов при выполнении команд — вызов 2-байтного смещения и сохранение его в регистре Н для подготовки к сложению (например, при переходе к РС ± п байт). Одно из возможных решений — увеличить порт памяти до 16 бит, но это значительно усложнит операцию, поскольку требуемые 16 бит могут перекрывать границы слова, тогда даже считывание из памяти 32 бит за одно обращение не обязательно приведет к вызову обоих нужных нам байтов.
Одновременное выполнение нескольких операций — самый продуктивный подход. Он дает возможность значительно увеличить быстродействие компьютера. Даже простое перекрытие вызова и выполнения команды чрезвычайно эффективны. При более сложных технологиях допустимо одновременное выполнение нескольких команд. Вообще говоря, эта идея является основой проектов современных компьютеров. Далее мы обсудим некоторые технические приемы, позволяющие воплотить этот подход в жизнь.
На одной чаше весов находится быстродействие, на другой — стоимость. Стоимость можно измерять различными способами, но точное определение стоимости дать очень трудно. В те времена, когда процессоры собирались из дискретных компонентов, достаточно было подсчитать общее число этих компонентов. В настоящее время процессор целиком помещается на одну микросхему, но большие и более сложные микросхемы стоят гораздо дороже, чем более простые микросхемы небольшого размера. Можно посчитать отдельные компоненты (транзисторы, вентили, функциональные блоки), но обычно это число не так важно, как размер контактного участка, необходимый для интегральной схемы. Чем больше участок, тем больше микросхема. И стоимость микросхемы растет гораздо быстрее, чем занимаемое ею пространство. По этой причине разработчики часто измеряют стоимость в единицах, применимых к «недвижимости», то есть с точки зрения пространства, которое требуется для микросхемы (предполагаем, что площадь поверхности измеряется в пикоакрах).
В истории компьютерной индустрии одной из наиболее тщательно проработанных микросхем является двоичный сумматор. Были реализованы тысячи
проектов, и самые быстрые двоичные сумматоры значительно превосходят по быстродействию наиболее медленные. Естественно, высокоскоростные сумматоры гораздо сложнее низкоскоростных. Специалистам по разработке систем приходится останавливаться на определенном соотношении быстродействия и занимаемого пространства.