Классические принципы построениявычислительной машины. Принципы фон Неймана
1.1.Классические принципы построения архитектуры ЭВМ были предложены в 40-x годах ХХ века Дж. фонНейманом. К этим принципам относятся:
• Использование двоичной системы представления данных
Авторы продемонстрировали преимущества двоичной системы для технической реализации, удобство и простотувыполнения в ней арифметических и логических операций. ЭВМ стали обрабатывать и нечисловые виды информации — текстовую, графическую, звуковую и другие.Двоичное кодирование данных по-прежнему составляет информационную основу компьютера.
• Принцип программного управления
Согласно этому принципу программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности. Как это происходит? Введем 2 определения:
Регистр – специализированная дополнительная ячейка памяти в процессоре. Регистр выполняет функцию кратковременного хранения числа или команды.
Счетчик комадн – регистр УУ, содержимое которого соответствует адресу очередной выполняемой команды, он служит для автоматической выборки программы из последовательных ячеек памяти. То есть, с его помощью осуществляется выборка программы из памяти. Этот регистр последовательно увеличивает хранимый в нем адрес очередной команды на длину команды. А так как, команды программы расположены в памяти друг за другом, то тем самым осуществляется выборка цепочки команд из последовательно расположенных ячеек памяти. Если же нужно после выполнения команды перейти не к следующей, а к какой – то другой, используются команды условного или безусловного переходов. Таким образом, процессор исполняет программу автоматически, без вмешательства человека.
• Принцип однородности памяти
Программы и данные хранятся в одной и той же памяти. Поэтому ЭВМ не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными.
• Принцип хранимой программы
программа задавалась путем установки перемычек на специальной коммутационной панели. Нейман предложил сохранять программу в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений. Фон Нейман выдвинул основополагающие принципы логического устройства ЭВМ ,и предложил ее структуру которая воспроизводилась в течение первых двух поколений ЭВМ. Устройство управления (УУ) и арифметико-логическое устройство (АЛУ) в современных компьютерах объединены в один блок — процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств. Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров «многоярусно» и включает оперативное запоминающее устройство (ОЗУ) и внешние запоминающие устройства(ВЗУ). ОЗУ- это устройство, хранящее ту информацию, с которой компьютер работает непосредственно в данное время ВЗУ-устройства гораздо большей емкости, чем ОЗУ, но существенно более медленны.
• Принцип адресности
Структурно основная память состоит из пронумерованных ячеек. Процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы к запомненным в них значениям можно было бы впоследствии обращаться или менять их в процессе выполнения программы с использованием присвоенных имен.
• Принцип последовательного выполнения операций
Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой.
• Принцип условного перехода
При выполнении программы возможен переход к той или иной команде в зависимости от промежуточных результатов вычислений; это допускает создание циклов. (Сам принцип был сформулирован задолго до фонНеймана Адой Лавлейз и Чарльзом Бэббиджем, однако он добавлен в общую архитектуру.)
Компьютеры, построенные на этих принципах, относят к типу фоннеймановских.
2.2.Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.
Устройство управления и арифметико-логическое устройство в современных компьютерах объединены в один блок – процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств (сюда относятся выборка команд из памяти, кодирование и декодирование, выполнение различных, в том числе и арифметических, операций, согласование работы узлов компьютера). Более детально функции процессора будут обсуждаться ниже.
Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров “многоярусно” и включает оперативное запоминающее устройство (ОЗУ), хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для нее данных, некоторые управляющие программы), и внешние запоминающие устройства (ВЗУ) гораздо большей емкости, чем ОЗУ. но с существенно более медленным доступом (и значительно меньшей стоимостью в расчете на 1 байт хранимой информации). На ОЗУ и ВЗУ классификация устройств памяти не заканчивается – определенные функции выполняют и СОЗУ (сверхоперативное запоминающее устройство), и ПЗУ (постоянное запоминающее устройство), и другие подвиды компьютерной памяти.
В построенной по описанной схеме ЭВМ происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти. из которой будет извлечена следующая команда программы, указывается специальным устройством – счетчиком команд в УУ. Его наличие также является одним из характерных признаков рассматриваемой архитектуры.
Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название “фон-неймановской архитектуры”. Подавляющее большинство вычислительных машин на сегодняшний день – фон-неймановские машины. Исключение составляют лишь отдельные разновидности систем для параллельных вычислений, в которых отсутствует счетчик команд, не реализована классическая концепция переменной и имеются другие существенные принципиальные отличия от классической модели (примерами могут служить потоковая и редукционная вычислительные машины).
По-видимому, значительное отклонение от фон-неймановской архитектуры произойдет в результате развития идеи машин пятого поколения, в основе обработки информации в которых лежат не вычисления, а логические выводы.
Первое поколение ЭВМ(1945-1954 гг.)В этот период формируется типовой набор структурных элементов, входящих в состав ЭВМ. К этому времени у разработчиков уже сложилось примерно одинаковое представление о том, из каких элементов должна состоять типичная ЭВМ. Это - центральный процессор (ЦП), оперативная память (или оперативно запоминающее устройство - ОЗУ) и устройства ввода-вывода (УВВ). ЦП, в свою очередь, должен состоять из арифметико-логического устройства (АЛУ) и управляющею устройства (УУ). Машины этого поколения работали на ламповой элементной базе, из-за чего поглощали огромное количество энергии и были очень не ненадежны. С их помощью, в основном, решались научные задачи. Программы для этих машин уже можно было составлять не на машинном языке, а на языке ассемблера.
Второе поколение ЭВМ(1955-1964 гг.). Смену поколений определило появление новой элементной базы: вместо громоздкой лампы в ЭВМ стали применяться миниатюрные транзисторы, линии задержки как элементы оперативной памяти сменила память на магнитных сердечниках. Это в конечном итоге привело к уменьшению габаритов, повышению надежности и производительности ЭВМ. В архитектуре ЭВМ появились индексные регистры и аппаратные средства для выполнения операций с плавающей точкой. Были разработаны команды для вызова подпрограмм.
Появились языки программирования высокого уровня - Algol, FORTRAN, COBOL, - создавшие предпосылки для появления переносимого программного обеспечения, не зависящего от типа ЭВМ. С появлением языков высокого уровня возникли компиляторы для них, библиотеки стандартных подпрограмм и другие хорошо знакомые нам сейчас вещи.
Важное новшество, которое хотелось бы отметить, - это появление так называемых процессоров ввода-вывода. Эти специализированные процессоры позволили освободить центральный процессор от управления вводом-выводом и осуществлять ввод-вывод с помощью специализированного устройства одновременно с процессом вычислений. На этом этапе резко расширился круг пользователей ЭВМ и возросла номенклатура решаемых задач. Для эффективного управления ресурсами машины стали использоваться операционные системы (ОС).
Четвертое поколение ЭВМ(1970-1984 гг.). Очередная смена элементной базы привела к смене поколений. В 70-е годы активно ведутся работы по созданию больших и сверхбольших интегральных схем (БИС и СБИС), которые позволили разместить на одном кристалле десятки тысяч элементов. Это повлекло дальнейшее существенное снижение размеров и стоимости ЭВМ. Работа с программным обеспечением стала более дружественной, что повлекло за собой рост количества пользователей.
В принципе, при такой степени интеграции элементов стало возможным попытаться создать функционально полную ЭВМ на одном кристалле. Соответствующие попытки были предприняты, хотя они и встречались, в основном, недоверчивой улыбкой. Наверное, этих улыбок стало бы меньше, если бы можно было предвидеть, что именно эта идея станет причиной вымирания больших ЭВМ через каких-нибудь полтора десятка лет.
Тем не менее в начале 70-х годов фирмой Intel был выпущен микропроцессор (МП) 4004. И если до этого в мире вычислительной техники были только три направления (супер ЭВМ, большие ЭВМ (мэйнфреймы) и мини-ЭВМ), то теперь к ним прибавилось еще одно - микропроцессорное. В общем случае под процессором понимают функциональный блок ЭВМ, предназначенный для логической и арифметической обработки информации на основе принципа микропрограммного управления. По аппаратной реализации процессоры можно разделить на микропроцессоры (полностью интегрированы все функции процессора) и процессоры с малой и средней интеграцией. Конструктивно это выражается в том, что микропроцессоры реализуют все функции процессора на одном кристалле, а процессоры других типов реализуют их путем соединения большого количества микросхем.
Intel 4004
Итак, первый микропроцессор 4004 был создан фирмой Intel на рубеже 70-х годов. Он представлял собой 4-разрядное параллельное вычислительное устройство, и его возможности были сильно ограничены. 4004 мог производить четыре основные арифметические операции и применялся поначалу только в карманных калькуляторах. Позднее сфера его применения была расширена за счет использования в различных системах управления (например, для управления светофорами). Фирма Intel, правильно предугадав перспективность микропроцессоров, продолжила интенсивные разработки, и один из ее проектов в конечном итоге привел к крупному успеху, предопределившему будущий путь развития вычислительной техники.
Intel 8080
Им стал проект по разработке 8-разрядного процессора 8080 (1974 г.). Этот микропроцессор имел довольно развитую систему команд и умел делить числа. Именно он был использован при создании персонального компьютера Альтаир, для которого молодой Билл Гейтс написал один из своих первых интерпретаторов языка BASIC. Наверное, именно с этого момента следует вести отсчет 5-го поколения.
Материнская плата (англ. motherboard, MB, также используется название англ. mainboard — главная плата; сленг. мама, мать,материнка) — сложная многослойная печатная плата, на которой устанавливаются основные компоненты персонального компьютералибо сервера начального уровня (центральный процессор, контроллер оперативной памяти и собственно ОЗУ, загрузочное ПЗУ, контроллеры базовых интерфейсов ввода-вывода). Именно материнская плата объединяет и координирует работу таких различных по своей сути и функциональности комплектующих, как процессор, оперативная память, платы расширения и всевозможные накопители.
AT (англ. Advanced Technology) — первый широко использовавшийся форм-фактор в персональных компьютерах. Форм-фактор AT был создан IBM в 1984году и пришёл на смену ранее существовавшим форм-факторам PC и XT.
В 1985 IBM представила уменьшенную версию форм-фактора — Baby AT (аналогичные уменьшенные версии форм-факторов более новых стандартов выходили с префиксом micro-).
Стандарт был очень популярен вплоть до конца 1999 — начала 2001 года, когда на смену Baby AT пришёл форм-фактор ATX.
Размеры платы: 12х11-13" (305х279-330 мм).
Форм-фактор (от англ. form factor) — стандарт, задающий габаритные размеры технического изделия, а также описывающий дополнительные совокупности его технических параметров, например форму, типы дополнительных элементов размещаемых в/на устройстве, их положение и ориентацию.
Форм-фактор (как и любые другие стандарты) носит рекомендательный характер. Спецификация форм-фактора определяет обязательные и дополнительные компоненты. Однако подавляющее большинство производителей предпочитают соблюдать спецификацию, поскольку ценой соответствия существующим стандартам является совместимость материнской платы и стандартизированного оборудования (периферии, карт расширения) других производителей в будущем.
Чаще всего употребляется в отношении ИТ-оборудования:
• корпусов сотовых телефонов;
• корпусов компьютеров и их комплектующих — материнских и процессорных плат, жёстких дисков, др. периферийных устройств;
• оборудования связи.
MicroATX (µATX, mATX, uATX) — форм-фактор материнской платы 9,6х9,6" (244х244 мм), разработан Intel в 1997году. Используется как для процессоров архитектуры x86, так и архитектуры x64.
Форм-фактор разрабатывался с учётом полной электрической и обратной механической совместимостью с форм-фактором ATX. Материнские платы µATX могут использоваться в корпусах для ATX (но не наоборот). При выпуске материнских плат часто выпускают на одном и том же чипсете платы как формата ATX, так и µATX, при этом различие обычно состоит в количестве PCI слотов и интегрированной периферии. Весьма часто встречается следующее различие: платы µATX выпускаются со встроенной видеокартой, ATX - без (µATX предполагается для офисной работы и, в основном, не рассчитан на игровое применение, требующее мощных видеокарт).
2.Никто не станет спорить, что архитектура Intel Architecture стала стандартом "де-факто" современной компьютерной индустрии. Основополагающими факторами такой популярности Intel считает полную совместимость программного обеспечения, разработанного под Intel Architecture процессоры, и все более серьезные увеличения производительности, предлагавшиеся с выходом новых поколений процессоров. Проследим путь компании от истоков - 16-разрядной архитектуры, до современной 32-разрядной архитектуры IA-32 , применяющейся во всех современных процессорах от Intel.
Родоначальниками процессорной архитектуры Intel Architecture являлись 16-разрядные процессоры 8088 и 8086, причем объектный код, разработанный в расчете на них в 1978 году, и поныне без проблем исполняется на самых последних процессорах архитектуры IA-32.
Процессор 8086 имел 16-разрядные регистры общего назначения, 16-разрядную шину данных и 20-разрядную шину адреса, что позволяло ему оперировать адресным пространством в 1 мегабайт. Отличие процессора 8088 заключалось в 8-разрядной шине данных.
Эти процессоры привнесли сегментацию в архитектуру IA-32. Память разделялась на сегменты размером до 64 килобайт. Оперируя четырьмя сегментными регистрами одновременно, процессор имел возможность адресации до 256 килобайт памяти без переключения между сегментами. При этом 20-разрядные адреса получались путем добавления 16-разрядного адреса к указателю сегментного регистра.
Процессор 80286 привнес в архитектуру IA-32 защищенный режим. В нем содержимое сегментных регистров используется в качестве указателей на таблицы дескрипторов, которые давали возможность 24-разрядной адресации, что составляло 16 мегабайт адресного пространства. К тому же, появилась возможность проверки границ сегментов, опций read и execute-only для сегментов и 4 уровня защиты кода операционной системы от приложений и защита приложений друг от друга.
Intel 80386 стал первым 32-разрядным процессором в архитектуре IA-32. В архитектуру введены 32-разрядные регистры общего назначения (GP - general purpose), подходящие как для хранения адресов, так и для операндов. Нижняя и верхняя половина сохранили возможность работы в качестве самостоятельных регистров для обеспечения совместимости с предыдущими процессорами. Для обеспечения эффективного выполнения кода, созданного под ранние процессоры, на 32-разрядных процессорах, был введен виртуальный х86 режим.
Имея 32-разрядную шину адреса, 80386 процессор поддерживал адресацию до 4 гигабайт памяти. При этом была возможность использования как сегментированной памяти, так и "плоской", при которой все сегментные регистры содержали указатель на один и тот же адрес, и в каждом сегменте доступно все 4-х гигабайтное адресное пространство. Для виртуального управления памятью вводится страничный метод, при котором адресное пространство делится на фиксированные страницы размером по 4 килобайта, эффективность которого значительно превышала использование сегментов. 16-разрядные инструкции, доставшиеся в наследство от предыдущих процессоров, получили возможность работы с 32-разрядными операндами и адресами, а также был добавлен ряд новых 32-разрядных инструкций.
В поисках новых технологий для увеличения быстродействия, в 80386 впервые реализована возможность параллельной работы нескольких блоков процессора, что положило начало конвейеризации вычислений в процессоре 80486.
В новом процессоре 80486 блок декодирования команд и блок вычислений преобразованы в пяти-стадийный конвейер, в котором каждая стадия по мере надобности могла выполняться параллельно с другими, исполняя до 5 команд на разных стадиях выполнения. Конвейерные микропроцессоры выполняют команды подобно сборочной линии: полная обработка каждой инструкции занимает несколько тактов, но, разбивая процесс на несколько этапов, и начиная выполнение следующей команды сразу вслед за тем, как предыдущая команда пройдет первый этап, можно быстро выдать несколько завершенных команд. При этом нельзя не отметить и такие технологические инновации, как 8-килобайтный кэш первого уровня в чипе для обеспечения полноценной загрузки конвейера, интегрированный х87 сопроцессор, а также расширения для поддержки внешнего кэша 2-го уровня и многопроцессорных систем.
Процессор Pentium стал первым процессором, в котором была применена суперскалярная архитектура - два конвейера, называвшиеся U и V, позволяли выполнять 2 инструкции за такт. Количество L1-кэша удвоилось - теперь на команды и данные приходилось по 8 килобайт, причем кэш данных использовал более эффективную схему с обратной записью. Для эффективного предсказания переходов в циклических конструкциях применялась встроенная таблица ветвлений.
В виртуальном х86 режиме, в дополнение к 4-килобайтным страницам, появилась поддержка 4-мегабайтных страниц. Регистры остались 32-разрядными, но некоторые внутренние шины расширились до 64 и даже 128 разрядов. Также 64-разрядной стала внешняя шина данных.
Последний процессор этого поколения, Pentium MMX, привнес в архитектуру расширенный набор команд, позволявший эффективно оперировать с упакованными целочисленными данными, находящимися в 64-разрядных MMX регистрах.
В 1995 году был представлено семейство процессоров P6, имевшее уже 3 независимых конвейера. Первым процессором этого семейства был процессор Pentium Pro.
Принципиальное отличие этого семейства состоит в том, что P6 преобразует команды x86 во внутренние, RISC-подобные команды, называемые микрокомандами (micro-ops). Это позволяет устранить многие ограничения, свойственные набору команд x86, такие как нерегулярность кодирования команд, операции целочисленных пересылок регистр-память и переменная длина непосредственных операндов.
Шина адреса процессоров P6 расширилась до 36 разрядов, что позволяет использовать адресное пространство размером до 64 гигабайт.
Процессор Pentium III привнес в архитектуру IA-32 расширения SSE (Streaming SIMD(Single Instruction Multiple Data) Extensions) - стали доступны новые 128 разрядные регистры и SIMD операции над упакованными операндами с плавающей запятой с одинарной точностью.