Всем привет! Мы продолжаем серию обзоров популярных архитектур процессоров нашего недавнего прошлого и как порой оказывается, не все действительно канули в лету. Некогда популярные архитектуры процессоров становятся основой для следующего прорыва в технике, а также казалось бы, забытые архитектуры продолжают жить в различной встраиваемой технике и особо не афишируя себя занимаются полезным делом.
Героями следующих выпусков является целое семейство процессоров Intel, создаваемые с конца 70-x по конец 90-x годов прошлого века и есть одна причина, побуждающая рассмотреть все эти процессоры неразрывно друг от друга. Причина эта называется обратная совместимость программ и это, пожалуй, уникальный случай в технике, принявший такие астрономические масштабы. Давайте же не будем спешить и начнем с предпосылок.
Предпосылки
В середине 70-ч годов компания Intel создала довольно популярный 8-битный процессор, ставший основой для большого количества домашних компьютеров. Он имеет обозначение 8080 и мы неплохо рассмотрели его особенности в одном из прошлых выпусков.
Пара 8-битных регистров могла быть объединена для формирования 16-битного адреса данных (A0-A15) в оперативной памяти. Такая архитектура позволяет обращаться к ячейкам памяти в диапазоне от нуля до 64 килобайт.
По тем временам это было неплохим решением, однако, конкуренты предлагали уже 16-битные процессоры, а это значит, что именно с такой разрядностью машинных слов должно было справляться арифметико-логическое устройство, что заметно ускоряло вычисления.
Конкуренты наступают на пятки
Чуть позже компания Motorola представила процессор, способный адресовать своей 24-разрядной шиной адреса до 16 мегабайт данных.
Intel же посчитала, что это будет решением слишком сильно обгоняющим свое время, а значит дорогим и скорее всего менее популярным. Они остановились 20-битной шине адреса, способной адресовать до одного мегабайта данных. Скорее всего, заявление Била Гейтса о том, что любой программе хватит 640 килобайт памяти является изощренным маркетинговым ходом ибо он не мог не предполагать, что домашним компьютерам очень скоро потребуется столько же памяти, сколько и рабочим станциям. И ровно в этом месте произошло нечто, оставившее глубочайший отпечаток на всей компьютерной индустрии.
Обратная совместимость
Экономия и выпуск на рынок явно промежуточного решения грозили большими проблемами в будущем. Если процессор становится популярным, то для него появляется много программного обеспечения. Как только появляется более совершенный процессор, то переход на него будет затруднен только из-за того, что пользователям будет очень сложно либо отказываться от старых программ, либо искать им замену, либо заниматься разработкой новых. В общем, при отсутствии совместимости программного обеспечения гарантированы проблемы с продвижением.
Чтобы избежать этих проблем компания Intel вынуждена уже более 40 лет переносить устаревшие 16-разрядные регистры довольно примитивной архитектуры первого процессора семейства x86 на следующие версии, которые позже стали 32-разрядными, а еще позже и 64-разрядными. Мало того, шагая в ногу со временем Intel снабжает свои процессоры все новыми и новыми модулями, в частности, для работы с потоковым аудио и видео. Эти модули содержат регистры разрядностью 128, 256 и даже 512 бит (SSE, AVX и др) необходимы для векторных операций над массивами чисел. Кроме того, новые модули требуют введения в систему команд новых инструкций.
Как вы понимаете, что система регистров, что система команд у более поздних процессоров семейства x86 это страшный сон инженера и огромное счастье, что большинство программистов и понятия не имеет с каким монстром они работают.
Продолжение следует...
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.
Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.