Одним из первых устройств (VI—V вв. до н. э.), облегчающих вычисления, можно считать специальную доску для вычислений, названную «абак». Вычисления на ней производились перемещением камешков или костей в углубления досок из бронзы, камня или слоновой кости.В 1670—1680 гг. немецкий математик Готфрид Лейбниц конструировал счётную машину, которая выполняла все арифметические действия. В течение следующих двухсот лет было изобретено и построено ещё несколько подобных счётных устройств, которые, однако, из-за своих недостатков, в том числе из-за медлительности в работе, не получили широкого распространения.Лишь в 1878 году русский ученый П. Чебышёв предложил счётную машину, выполнявшую сложение и вычитание многозначных чисел. Наибольшую популярность получил тогда арифмометр, сконструированный петербургским инженером Однером в 1874 году Конструкция прибора оказалась весьма удачной, так как позволяла довольно быстро выполнять все четыре арифметических действия.В 30-е годы XX столетия в нашей стране был разработан более совершенный арифмометр — «Феликс». Эти счётные устройства использовались несколько десятилетий, став основным техническим средством облегчения человеческого труда.В 1834 году Бэббидж приступил к созданию «аналитической» машины. Его проект содержал более 2000 чертежей различных узлов. Машина Бэббиджа предполагалась как чисто механическое устройство с паровым приводом. Она состояла из хранилища для чисел («склад»), устройства для производства арифметических действий над числами (Бэббидж назвал его «фабрикой») и устройства, управляющего операциями машины в нужной последовательности, включая перенос чисел из одного места в другое; были предусмотрены средства для ввода и вывода чисел. Бэббидж работал над созданием своей машины до конца своей жизни (он умер в 1871 году), успев сделать лишь некоторые узлы своей машины, которая оказалась слишком сложной для того уровня развития техники. После Бэббиджа значительный вклад в развитие техники автоматизации счёта внёс американский изобретатель Г. Холлерит, который в 1890 году впервые построил ручной перфоратор для нанесения цифровых данных на перфокарты и ввёл механическую сортировку для раскладки этих перфокарт в зависимости от места пробива. Им была построена машина — табулятор, которая прощупывала отверстия на перфокартах, воспринимала их как соответствующие числа и подсчитывала их. Холлерит основал всемирно известную фирму Computer Tabulating Recording, специализирующуюся на выпуске счетно-перфорационных машин и перфокарт. В дальнейшем фирма была преобразована в фирму International Business Machines (IBM), ставшую сейчас передовым разработчиком компьютеров. Разработка первой серии электронной машины UNIAC (Universal Automatic Computer) начата примерно в 1947 году. Д. П. Эккертом и Д. Мочли, основавшими фирму Eckert-Mauchly. Первый образец UNIAC-1 был построен для Бюро переписи США в 1951 г. UNIAC был создан на базе ЭВМ ENIAC и EDVIAC. Работала с тактовой частотой 2,25 МГц и содержала около 5000 электронных ламп. Емкость памяти — 1000 12-разрядных десятичных чисел. В середине 50-ых гг. XX века, когда ламповые компьютеры достигли «насыщения», ряд фирм объявил о работах по созданию транзисторных ЭВМ. Первоначально это вызвало скептицизм из-за того, что производство полупроводников будет сложным и дорогостоящим. Однако этого не случилось — постоянно совершенствовались методы производства транзисторов. В 1955 году в США было объявлено о создании цифрового компьютера TRADIC, построенного на 800 транзисторах и 11 000 германиевых диодах. В этом же году фирма объявила о создании полностью транзисторной ЭВМ. Первая такая машина «Philco-2000» была сделана в ноябре 1958 года, она содержала 56 тыс. транзисторов, 1 200 диодов, но всё же в её составе было 450 электронных ламп. «Philco-2000» выполняла сложение за 1,7 мкс, умножение — за 40,3 мкс. В 1971 году компания Intel выпустила микросхему Intel-4004 — первый микропроцессор и родоначальник доминирующего и самого известного сегодня семейства. В 1976 году компания Intel начала усиленно работать над микропроцессором Intel-8086. Размер его регистров был увеличен вдвое, что дало возможность увеличить в 10 раз производительность по сравнению с 8080. Кроме того, размер адресной шины был увеличен до 16 бит, чем опередил своё время — ему дополнительно нужна 16-разрядная микросхема.В 1979 году был разработан новый процессор — Intel-8088. Вянваре 1984 г. состоялась презентация первого компьютера Macintosh компании Apple Computer. В 1989 году появляется новая разработка компании Intel — микропроцессор Intel-80486 (Intel-80486DX). В 1993 году компания Intel начала промышленный выпуск нового процессора — Intel Pentium (Intel не стал присваивать ему номер 80586). Первые модели работали на тактовой частоте 60 и 66 МГц и объединяли в себе до 3,3 млн. транзисторов. Pentium — это первый 64-разрядный суперскалярный процессор с RISC-ядром, изготовленный по 0,8-микронной технологии BiCMOS.
Особенности архитектуры современной вычислительной машины
Оперативная память современных ЭВМ массового производства способна считывать и записывать данные примерно каждые 2 наносекунды (нс., 1нс = 10-9 сек.), а центральный процессор может выполнить машинную машинную операцию над содержимым своих регистров примерно за 1нс.
На современных ЭВМ проблема несоответствия скорости работы оперативной памяти и центрального процессора решается в совокупности несколькими способами. Так как главным тормозом в работе является оперативная память, эту па-мять стали делать таким образом, чтобы за одно обращение к ней она выдавала не по одному байту, а сразу по несколько байт с последовательными адресами. Для этого оперативную память разбивают на блоки (обычно называемые банками памяти), причём эти банки памяти могут работать параллельно. Этот приём называют расслоением памяти. 80% своего времени цен-тральный процессор вынужден ждать, пока из оперативной памяти поступят нужные команды и дан-ные. Для того чтобы исправить эту неприятную ситуацию, в архитектуру современных компьютеров встраивается специальная память, которую называют памятью типа кэш, или просто кэшем. Кэш делается на очень быстрых интегральных схемах статической памяти и работает с такой же скоростью, как и сам центральный процессор, т.е. может, например, выдавать по 8 байт за каждую наносекунду. Для программиста кэш является невидимой памятью в том смысле, что эта память не адресуемая, к ней нельзя обратиться из программы по какой-либо команде чтения или записи дан-ных. Конечно, существуют привилегированные команды для работы с кэшем как с единым целым, это, например, команда очистки кэша от всех находящихся там команд и данных. Когда центральному процессору нужна какая-то команда или данное, то сначала он смотрит, не находится ли уже эта команда или данные в кэше, и, если они там есть, читает их оттуда, не обраща-ясь к оперативной памяти. Разумеется, если требуемой команды или данных в кэше нет, то централь-ный процессор вынужден читать их из относительно медленной оперативной памяти, однако копию прочитанного он обязательно оставляет при этом в кэше. Особая ситуация складывается, если требуется что-то записать в кэш, а там нет свободного места. В этом случае по специальному алгоритму из кэша удаляются некоторые данные, обычно те, к которым дольше всего не было обращения из центрального процессора. Проще всего это сделать, если вести очередь обра-щений к данным в кэше, при этом при каждом чтении или записи некоторого данного, оно ставится в начало этой очереди. Легко понять, что при этом в конце очереди автоматически соберутся те дан-ные, к которым дольше всего не было обращения. При этом, если эти данные в кэш памяти изменя-лись, то они переписываются в оперативную память. В архитектуре некоторых ЭВМ может быть два отдельных кэша, один для команд и другой для данных. При этом обычно команды запрещается ме-нять, поэтому в кэш команд никогда не производится запись, что позволяет упростить реализацию этого кэша.
Таким образом, в кэше накапливаются наиболее часто используемые команды и данные выпол-няемой программы, например, все команды не очень длинных циклов после их первого выполнения будут находиться в памяти типа кэш.
Архитектура ЭВМ с общей шиной
Эта архитектура была разработана, когда появилась необходимость в массовом производстве от-носительно простых компьютеров (их тогда называли мини- и микро- ЭВМ [11]). Основой архитек-туры этого класса ЭВМ была общая шина.1 В первом при-ближении общую шину можно представить себе как набор электрических проводов (линий), снаб-женных некоторыми электронными схемами. В современных ЭВМ число линий в такой шине обычно не превышает двух сотен. Все устройства компьютера в архитектуре с общей шиной соединяются между собой посредством подключения к такому общему для них набору электрических проводов – шине. В этой архитектуре шина исполняет роль главного элемента, связующей магистрали, по которой производится обмен информацией между всеми остальными устройствами ЭВМ. Легко понять, что, так как обмен информацией производится по шине с помощью электрических сигналов, то в каждый момент времени только два устройства могут выполнять такой обмен. Обычно одно из этих уст-ройств является ведущим (инициатором обмена данными), а другое – подчиненным (ведомым). Все устройства компьютера связаны с общей шиной посредством специальных электронных схем, кото-рые чаще всего называются портами ввода/вывода. Каждый такой порт имеет на шине уникальный номер (в нашей архитектуре этот номер имеет формат i16). Обычно каждому устройству компьюте-ра приписан не один порт, а несколько, так как они специализированные: по некоторым портам уст-ройство может читать данные с шины, по другим – записывать (передавать) данные в шину, а есть и универсальные порты, как для чтения, так и для записи.
Архитектура ЭВМ с каналами ввода/вывода предполагает возможность параллельной работы не-скольких устройств компьютера. на больших компьютерах есть несколько каналов ввода/вывода, так как эти каналы выгоднее делать специализированными. Обычно один канал ввода/вывода успевает обслуживать все медленные внешние устройства (клавиатура, печать, дисплеи, линии связи и т.д.), такой канал называется мультиплексным.1 Один или несколько других каналов работают с быстрыми внешними устройствами (обычно это дисковая память), такие каналы называются селекторными. В отличие от мультиплексного канала, который успевает, быстро переключаясь с одного медленного внешнего устройства на другое, обслуживать их все как бы одновременно, селекторный канал в каждый момент времени может работать только с одним быстрым внешним устройством. внешние устройства подключаются к каналам не напрямую, а через специальные электронные схемы, которые называются контроллерами. Это связано с тем, что каналы являются универсальными, они должны допускать подключение внешних устройств, очень разных по своим характеристикам. Таким образом, канал работает как бы с некоторыми обобщенными (абст-рактными) внешними устройствами, а все особенности связи с конкретными устройствами реализу-ются в контроллерах. Например, один контроллер предназначен для подключения к каналу жестких дисков, другой – архивных накопителей на магнитной ленте.