История и методология информатики и вычислительной техники. Парфенов П.С. - 88 стр.

UptoLike

Составители: 

90
На первых этапах реализация в компьютерах большого количества
инструкций была оправдана, т.к. языки высокого уровня только начали
развиваться, и это было удобно для программистов. Использование
сложных инструкций позволяло сократить размеры программ, а значит
уменьшить требования к памяти и время выполнения. А использование
микропрограмм смягчало проблему пропускной способности памяти.
Сравнительно небольшое число регистров общего назначения в
микропроцессорах было вызвано тем, что внутренние регистры
перегружали ограниченную площадь чипа при существующем уровне
технологии. Кроме того, использование большого числа регистров
требовало применения большого числа битов инструкции для адресации
отдельных регистров, что увеличивало бы программный код.
Рис. 5.1. Микропроцессор iAPX 286. Микрофотография и компоновочный
план кристалла [5.1]
К началу восьмидесятых годов классические CISC полностью
исчерпали себя, расширять набор инструкций больше не имело смысла.
Процессор VAX поддерживал инструкцию «провести интерполяцию
полиномом», а процессоры Motorola 68k поддерживали до двенадцати
режимов адресации. Из-за высокой сложности процессоров оказалось
трудно наращивать их тактовую частоту, а инструкции сложно было не
только выполнять, но и декодировать (см. размер исполнительного блока
на рис. 5.1). Чтобы машинный код CISC-процессоров из-за сложных
инструкций не разрастался, инструкции имели неоднородную структуру
и сильно отличающуюся длину (в x86, например, длина инструкций
варьируется от 1 до 15 байт), что затрудняло работу конвейера. Часть
инструкции оказалось невозможным выполнить аппаратно без
существенного усложнения процессора, и поздние CISC-процессоры
заменяли некоторые сложные команды на последовательность более