Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Введение
Цифровой компьютер — это машина, которая может решать задачи, выполняя данные ей команды. Последовательность команд, описывающих решение определенной задачи, называется программой. Электронные схемы каждого компьютера могут распознавать и выполнять ограниченный набор простых команд. Все программы перед выполнением должны быть превращены в последовательность таких команд, которые обычно не сложнее чем:
- сложить 2 числа; проверить, не является ли число нулем; скопировать кусок данных из одной части памяти компьютера в другую.
Эти примитивные команды в совокупности составляют язык, на котором люди могут общаться с компьютером. Такой язык называется машинным языком. Разработчик при создании нового компьютера должен решать, какие команды включить в машинный язык этого компьютера. Это зависит от назначения компьютера, от того, какие задачи он должен выполнять. Обычно стараются сделать машинные команды как можно проще, чтобы избежать сложностей при конструировании компьютера и снизить затраты на необходимую электронику. Так как большинство машинных языков очень примитивны, использовать их трудно и утомительно.
Это простое наблюдение с течением времени привело к построению ряда уровней абстракций, каждая из которых надстраивается над абстракцией более низкого уровня. Именно таким образом можно преодолеть сложности при общении с компьютером. Этот подход называется многоуровневой компьютерной организацией.
Многоуровненвая компьютерная организация
Существует огромная разница между тем, что удобно для людей, и тем, что удобно для компьютеров. Люди хотят сделать X, но компьютеры могут сделать только Y.
Языки уровни и виртуальные машины
Проблему можно решить двумя способами. Оба эти способа включают в себя разработку новых команд, которые более удобны для человека, чем встроенные машинные команды. Эти новые команды в совокупности формируют язык, который мы будем называть Я1. Встроенные машинные команды тоже формируют язык, и мы будем называть его Я0. Компьютер может выполнять только программы, написанные на его машинном языке Я0. Упомянутые два способа решения проблемы различаются тем, каким образом компьютер будет выполнять программы, написанные на языке Я1.
Первый способ выполнения программы, написанной на языке Я1, — замена каждой команды на эквивалентный набор команд в языке Я0. В этом случае компьютер выполняет новую программу, написанную на языке Я0, вместо старой программы, написанной на Я1. Эта технология называется трансляцией.
Второй способ — написание программы на языке Я0, которая берет программы, написанные на языке Я1, в качестве входных данных, рассматривает каждую команду по очереди и сразу выполняет эквивалентный набор команд языка Я0. Эта технология не требует составления новой программы на Я0. Она называется интерпретацией, а программа, которая осуществляет интерпретацию, называется интерпретатором.
Трансляция и интерпретация сходны. При применении обоих методов компьютер в конечном итоге выполняет набор команд на языке Я0, эквивалентных командам Я1. Различие лишь в том, что при трансляции вся программа Я1 переделывается в программу Я0, программа Я1 отбрасывается, а новая программа на Я0 загружается в память компьютера и затем выполняется.
При интерпретации каждая команда программы на Я1 перекодируется в Я0 и сразу же выполняется. В отличие от трансляции, здесь не создается новая программа на Я0, а происходит последовательная перекодировка и выполнение команд. Оба эти метода, а также их комбинация широко используются.
Обычно гораздо проще представить себе существование гипотетического компьютера или виртуальной машины, для которой машинным языком является язык Я1, чем думать о трансляции и интерпретации. Назовем такую виртуальную машину М1, а виртуальную машину с языком Я0 — М0. Чтобы трансляция и интерпретация были целесообразными, языки Я0 и Я1 не должны сильно различаться. Далее происходит создание еще одного набора команд, которые в большей степени ориентированы на человека и в меньшей степени на компьютер, чем Я1. Этот третий набор команд также формирует язык, который называется Я2, а соответствующая виртуальная машина — М2. Человек может писать программы на языке Я2, как будто виртуальная машина с машинным языком Я2 действительно существует. Такие программы могут или транслироваться на язык Я1, или выполняться интерпретатором, написанным на языке Я1. Изобретение целого ряда языков, каждый из которых более удобен для человека, чем предыдущий, может продолжаться до тех пор, пока не создается подходящий нам язык.
Таким образом, можно рассматривать компьютер в виде ряда уровней:

Рис. 1.1. Многоуровневая машина
Между языком и виртуальной машиной существует важная зависимость. У каждой машины есть какой-то определенный машинный язык, состоящий из всех команд, которые эта машина может выполнять. В сущности, машина определяет язык. Сходным образом язык определяет машину, которая может выполнять все программы, написанные на этом языке.
Компьютер с n уровнями можно рассматривать как n разных виртуальных машин, у каждой из которых есть свой машинный язык. Человеку, который пишет программы для виртуальной машины уровня n, не обязательно знать о трансляторах и интерпретаторах более низких уровней. Машина выполнит эти программы, и не важно, будут ли они выполняться шаг за шагом интерпретатором или их будет выполнять сама машина.
Современные многоуровневые машины.
Большинство современных компьютеров состоит из двух и более уровней. Существует также, еще один уровень расположенныйо ниже уровня 0. Он называется уровнем физических устройств. На этом уровне находятся транзисторы, которые являются примитивами для разработчиков компьютеров
На самом нижнем уровне, цифровом логическом уровне, объекты называются вентилями. Хотя вентили состоят из аналоговых компонентов, таких как транзисторы, они могут быть точно смоделированы как цифровые средства. У каждого вентиля есть одно или несколько цифровых входных данных (сигналов, представляющих 0 или 1). Вентиль вычисляет простые функции этих сигналов, такие как И или ИЛИ. Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти, объединенные в группы, например, по 16,32 или 64, формируют регистры. Каждый регистр может содержать одно двоичное число до определенного предела.
Следующий уровень — микроархитектурный уровень. На этом уровне можно видеть совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Основная операция тракта данных состоит в следующем. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров. На некоторых машинах работа тракта данных контролируется особой программой, которая называется микропрограммой. На других машинах тракт данных контролируется аппаратными средствами.
Второй уровень называется уровнем архитектуры системы команд. Каждый производитель публикует руководство для компьютеров, которые он продает. Такие руководства содержат информацию именно об этом уровне.
Следующий уровень обычно гибридный. Большинство команд в его языке есть также и на уровне архитектуры системы команд (команды, имеющиеся на одном из уровней, вполне могут находиться на других уровнях). У этого уровня есть некоторые дополнительные особенности: набор новых команд, другая организация памяти, способность выполнять две и более программ одновременно и некоторые другие. Новые средства, появившиеся на третьем уровне, выполняются интерпретатором, который работает на втором уровне. Этот интерпретатор был когда-то назван операционной системой. Команды третьего уровня, идентичные командам второго уровня, выполняются микропрограммой или аппаратным обеспечением, но не операционной системой. Иными словами, одна часть команд третьего уровня интерпретируется операционной системой, а другая часть — микропрограммой. Этот уровень называется уровнем операционной системы.
Между третьим и четвертым уровнями есть существенная разница. Нижние три уровня конструируются не для того, чтобы с ними работал обычный программист. Они изначально предназначены для работы интерпретаторов и трансляторов, поддерживающих более высокие уровни. Эти трансляторы и интерпретаторы составляются так называемыми системными программистами. Четвертый уровень представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет трансляцию, называется ассемблером.
Пятый уровень обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — BASIC, С, C++, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, называются компиляторами.

Рис. 1.2. Компьютер с 6 уровнями.
Развитие компьютерной архитектуры
Нулевое поколение (механические компьютеры), 1642-1945г. г.
Первым человеком, создавшим счетную машину, был французский ученый Блез Паскаль, в честь которого назван один из языков программирования. Счетная машина Паскаля могла выполнять только операции сложения и вычитания.
Тридцать лет спустя немецкий математик построил другую механическую машину, которая кроме сложения и вычитания могла выполнять операции умножения и деления. В сущности, Лейбниц три века назад создал подобие карманного калькулятора с четырьмя функциями.
Еще через 150 лет профессор математики Кембриджского университета Чарльз Бэббидж, разработал и сконструировал разностную машину. Эта механическая машина, которая, как и машина Паскаля, могла только складывать и вычитать, подсчитывала таблицы чисел для морской навигации. В машину был заложен только один алгоритм — метод конечных разностей с использованием полиномов. У этой машины был довольно интересный способ вывода информации: результаты выдавливались стальным штампом на медной дощечке, что предвосхитило более поздние средства ввода-вывода — перфокарты и компакт-диски. Бэббиджу вскоре наскучила машина, выполнявшая только один алгоритм, и он потратил очень много временина разработку аналитической машины. У аналитической машины было 4 компонента: запоминающее устройство (память), вычислительное устройство, устройство ввода (для считывания перфокарт), устройство вывода (перфоратор и печатающее устройство). Память состояла из 1000 слов по 50 десятичных разрядов, каждое из которых содержало переменные и результаты. Вычислительное устройство принимало операнды из памяти, затем выполняло операции сложения, вычитания, умножения или деления и возвращало полученный результат обратно в память. Как и разностная машина, это устройство было механическим. Преимущество аналитической машины заключалось в том, что она могла вы полнять разные задачи. Она считывала команды с перфокарт и выполняла их. Поскольку эта аналитическая машина программировалась на ассемблере, ей было необходимо программное обеспечение. Чтобы создать это программное обеспечение, Бэббидж нанял молодую женщину — Аду Августу Ловлейс. Она была первым в мире программистом. В е честь назван язык программирования Ada.
В 20-40 годах XX в. было сконструированно несколько машин, на основе электромагнитных реле.
Первое поколение (электронные лампы), 1945-1955г. г
Стимулом к созданию электронного компьютера стала Вторая мировая война. В начале войны германские подводные лодки разрушали британские корабли. Германские адмиралы посылали на подводные лодки по радио команды, а англичане могли перехватывать эти команды. Проблема заключалась в том, что эти радиопослания были закодированы с помощью прибора под названием ENIGMA. В начале войны англичанам удалось приобрести ENIGMA у поляков, которые, в свою очередь, украли его у немцев. Однако чтобы расшифровать закодированное послание, требовалось огромное количество вычислений, и их нужно было произвести сразу после того, как радиопослание было перехвачено. Поэтому британское правительство основало секретную лабораторию для создания электронного компьютера под названием COLOSSUS. В создании этой машины принимал участие знаменитый британский математик Алан Тьюринг. COLOSSUS работал уже в 1943 году, но так как британское правительство полностью контролировало этот проект и рассматривало его как военную тайну на протяжении 30 лет, COLOSSUS не мог служить основой дальнейшего развития компьютеров.
Вторая мировая война повлияла и на развитие компьютерной техники в США. В 1943 году, Джон Моушли со своим студентом, Дж. Преспером Экертом, начали конструировать электронный компьютер, который они назвали ENIAC (Electronic Numerical Integrator and Computer). Он состоял из 18 000 электровакуумных ламп и 1500 реле. ENIAC весил 30 тонн и потреблял 140 киловатт электроэнергии. У машины было 20 регистров, каждый из которых мог содержать 10-разрядное десятичное число. Работа над машиной была закончена в 1946 году, когда она уже была не нужна. Но поскольку война закончилась, Моушли и Экерту позволили организовать школу, где они рассказывали о своей работе коллегам-ученым. После появления школы и другие исследователи взялись за конструирование электронных вычислительных машин. Первым рабочим компьютером был EDSАС (1949 год). Эту машину сконструировал Морис Уилкс в Кембриджском университете. Далее JOHNIAC — в корпорации Rand, ILLIAC — в Университете Иллинойса, MANIAC — в лаборатории Лос-Аламоса и WEIZAC — в Институте Вайцмана в Израиле. Экерт и Моушли вскоре начали работу над машиной EDVAC (Electronic Discrete Variable Computer). В то время как Экерт и Моушли работали над машиной EDVAC, один из участников проекта ENIAC, Джон фон Нейман, поехал в Институт специальных исследований в Принстоне, чтобы сконструировать свою собственную версию EDVAC, машину IAS. Фон Нейман вскоре осознал, что создание компьютеров с большим количеством переключателей и кабелей требует длительного времени и очень утомительно. Он пришел к мысли, что программа должна быть представлена в памяти компьютера в цифровой форме, вместе с данными. Он также отметил, что десятичная арифметика, используемая в машине ENIAC, где каждый разряд представлялся 10 электронными лампами (1 включена и 9 выключены), должна быть заменена бинарной арифметикой. Основной проект, который он описал вначале, известен сейчас как фон-неймановская вычислительная машина. Он был использован в EDSАС, первой машине
с программой в памяти, и даже сейчас, более чем полвека спустя, является основой большинства современных цифровых компьютеров.

Рис. 1.4 Схема фон-неймановской вычислительной машины
В это же время компания IBM построила свой первый компьютер IBM-701. В IBM-701 было 2048 слов по 36 битов, каждое слово содержало две команды. Он стал первым компьютером, лидирующим на рынке в течение десяти лет. Через три года появился IBM-704, у которого было 4 Кбайт памяти на магнитных сердечниках, команды по 36 битов и процессор с плавающей точкой. В 1958 году компания IBM начала работу над последним компьютером на электронных лампах, IBM-709, который по сути представлял собой усложненную версию IBM-704.
Второе поколение (транзисторы), 1955 – 1965г. г.
Транзистор был изобретен сотрудниками лаборатории Bell Laboratories Джоном Бардином, Уолтером Браттейном и Уильямом Шокли, за что в 1956 году они получили Нобелевскую премию в области физики. В течение десяти лет транзисторы произвели революцию в производстве компьютеров, и к концу 50-х годов компьютеры на вакуумных лампах устарели.
Первый компьютер на транзисторах былпостроен в лаборатории МТИ. Он содержал слова из 16 битов. Компьютер назывался ТХ-0 (Transistorized experimental computer 0) и предназначался только для тестирования машины ТХ-2. Машина ТХ-2 не имела большого значения, но один из инженеров из этой лаборатории, Кеннет Ольсен, в 1957 году основал компанию DEC (Digital Equipment Corporation). Их серийный компьютер PDP-1 появился только в 1961 году. У него было 4 Кбайт слов по 18 битов и время цикла 5 микросекунд. Этот параметр был в два раза меньше, чем у IBM-7090, транзисторного аналога IBM-709. PDP-1 был самым быстрым компьютером в мире в то время. PDP-1 стоил $120000, a IBM-7090 стоил миллионы. Компания DEC продала десятки компьютеров PDP-1, и так появилась компьютерная промышленность.
Через несколько лет DEC разработал модель PDP-8, 12-битный компьютер. PDP-8 стоил гораздо дешевле, чем PDP-1 ($16000). Главное нововведение — одна шина (Omnibus) (рис. 1.5). Шина — это набор параллельно соединенных проводов для связи компонентов компьютера. Это нововведение сильно отличало PDP-8 от IAS. Такая структура с тех пор стала использоваться во всех компьютерах. Компания DEC продала 50 000 компьютеров модели PDP-8 и стала лидером на рынке мини-компьютеров.

Рис. 1.5 Шина компьютера PDP-8
Компания IBM также выпускала компьютеры IBM-1401 для коммерческих расчетов. У IBM-1401 не было регистров и фиксированной длины слова. Память содержала 4 Кбайт по 8 битов (4 Кбайт). Каждый байт содержал символ в 6 битов, административный бит и бит для указания конца слова. У команды MOVE, например, есть исходный адрес и адрес пункта назначения. Эта команда перемещает байты из первого адреса во второй, пока бит конца слова не примет значение 1.
Третье поколение (интегральные схемы), 1965-1980г. г.
Изобретение кремниевой интегральной схемы в 1958 году (изобретатель — Роберт Нойс) дало возможность помещать десятки транзисторов на одну небольшую микросхему. Компьютеры на интегральных схемах были меньшего размера, работали быстрее и стоили дешевле, чем их предшественники на транзисторах.
Компания IBM здесь сделала решительный шаг. Она выпустила серию компьютеров на транзисторах, System/360, которые были предназначены и для научных, и для коммерческих расчетов. System/360 содержала много нововведений. Это было целое семейство компьютеров с одним и тем же языком (ассемблером). Каждая новая модель была больше по размеру и по мощности, чем предыдущая. Компания могла заменить IBM-1401 на IBM-360 (модель 30), a IBM-7094 - на IBM-360 (модель 75). Модель 75 была больше по размеру, работала быстрее и стоила дороже, но программы, написанные для одной из них, могли использоваться для другой. Идея создания семейств компьютеров вскоре стала очень популярной, и в течение нескольких лет большинство компьютерных компаний выпустило целые серии сходных машин с разной стоимостью и функциями. Еще одно нововведение в IBM-360 — мультипрограммирование. В памяти компьютера могло находиться одновременно несколько программ, и пока одна программа ждала, когда закончится процесс ввода-вывода, другая выполнялась. IBM-360 была первой машиной, которая могла полностью имитировать работу других компьютеров. Маленькие модели могли имитировать IBM-1401, а большие IBM-7094, поэтому программисты могли оставлять свои старые программы без изменений и использовать их в работе с IBM-360. Некоторые модели IBM-360 выполняли программы, написанные для IBM-1401, гораздо быстрее, чем сама IBM-1401, поэтому не было никакого смысла в переделывании программ. Мир мини-компьютеров сделал большой шаг вперед в третьем поколении вместе с производством серии компьютеров PDP-11, последователей PDP-8co словами по 16 битов. Во многих отношениях PDP-11 был младшим братом IBM-360, a PDP-1 - младшим братом IBM-7094.
Четвертое поколение (сверхбольшие интегральные схемы), 1980 – н. в.
Появление сверхбольших интегральных схем (СБИС) в 80-х годах позволило помещать на одну плату сначала десятки тысяч, затем сотни тысяч и, наконец, миллионы транзисторов. Это привело к созданию компьютеров меньшего размера и с более высокой скоростью работы. До появления PDP-1 компьютеры были настолько большие и дорогостоящие, что компаниям и университетам приходилось иметь специальные отделы (вычислительные центры). К 80-м годам цены упали так сильно, что возможность приобретать компьютеры появилась не только у организаций, но и у отдельных людей. Началась эра персональных компьютеров.
Первые персональные компьютеры продавались в виде комплектов. Каждый комплект содержал печатную плату, набор интегральных схем, обычно включаю-щий схему Intel 8080, несколько кабелей, источник питания и иногда 8-дюймовый дисковод. Сложить из этих частей компьютер покупатель должен был сам. Программное обеспечение к компьютеру не прилагалось. Покупателю приходилось самому писать программное обеспечение. Позднее появилась операционная система СР/М, написанная Гари Килдаллом для Intel 8080.
Еще один персональный компьютер, Apple (а позднее и Apple II), был разработан Стивом Джобсом и Стивом Возняком. Он стал чрезвычайно популярен среди отдельных покупателей, а также широко использовался в школах, и это сделало компанию Apple серьезным конкурентом IBM.
Наблюдая за тем, чем занимаются другие компании, компания IBM, лидирующая тогда на компьютерном рынке, тоже решила заняться производством персональных компьютеров. Но вместо того чтобы конструировать компьютер с нуля, что заняло бы слишком много времени, компания IBM предоставила одному из своих работников, Филипу Эстриджу, большую сумму денег, приказала ему отправиться куда-нибудь подальше от вмешивающихся во все бюрократов главного управления компании, находящегося в Нью-Йорке, и не возвращаться, пока не будет сконструирован действующий персональный компьютер. Эстридж открыл предприятие достаточно далеко от главного управления компании (во Флориде), взял Intel 8088 в качестве центрального процессора и создал персональный компьютер из серийных компонентов. Этот компьютер (IBM PC) появился в 1981 году и стал самым покупаемым компьютером в истории.
Первая версия IBM PC была оснащена операционной системой MS-DOS, которую выпускала тогда еще крошечная корпорация Microsoft. IBM и Microsoft совместно разработали последовавшую за MS-DOS операционную систему OS/2, характерной чертой которой был графический интерфейс, сходный с интерфейсом Apple Macintosh. Между тем компания Microsoft также разработала собственную операционную систему Windows, которая работала на основе MS-DOS, на случай, если OS/2 не будет иметь спроса. OS/2 действительно не пользовалась спросом, a Microsoft успешно продолжала выпускать операционную систему Windows, что послужило причиной грандиозного раздора между IBM и Microsoft. Легенда о том, как крошечная компания Intel и компания Microsoft, которая была еще меньше, чем Intel, умудрились свергнуть IBM, одну из самых крупных, самых богатых и самых влиятельных корпораций в мировой истории, подробно излагается в бизнес-школах по всему миру.
Семейства компьютеров
Pentium II
В 1968 году Роберт Нойс, изобретатель кремниевой интегральной схемы, Гордон Мур, автор известного закона Мура, и Артур Рок, капиталист из Сан-Франциско, основали корпорацию Intel для производства компьютерных микросхем.
В сентябре 1969 года японская компания Busicom обратилась к корпорации Intel с просьбой выпустить 12 несерийных микросхем для электронной вычислительной машины. Инженер компании Intel Тед Хофф, назначенный на выполнение этого проекта, решил, что можно поместить 4-битный универсальный процессор на одну микросхему, которая будет выполнять те же функции и при этом окажется проще и дешевле. Так в 1970 году появился первый процессор на одной микросхеме, процессор 4004 на 2300 транзисторах.
Когда компания Intel решила, что стоит попробовать использовать процессор 4004 в других разработках, она предложила купить все права на новую микросхему у компании Busicom за $60000, то есть за сумму, которую Busicom заплатила Intel за разработку этой микросхемы. Busicom сразу приняла предложение Intel, и Intel начала работу над 8-битной версией микросхемы 8008, выпущенной в 1972 году. Компания Intel не ожидала большого спроса на микросхему 8008, поэтому она выпустила небольшое количество этой продукции. Ко всеобщему удивлению, новая микросхема вызвала большой интерес, поэтому Intel начала разработку еще одного процессора, в котором предел в 16 Кбайт памяти (как у процессора 8008), навязываемый количеством внешних выводов микросхемы, был преодолен. Так появился небольшой универсальный процессор 8080, выпущенный в 1974 году.
В 1978 году появился процессор 8086 — 16-битный процессор на одной микросхеме. Процессор 8086 был во многом похож на 8080, но не был полностью совместим с ним. Затем появился процессор 8088 с такой же архитектурой, как и у 8086. Он выполнял те же программы, что и 8086, но вместо 16-битной шины у него была 8-битная, из-за чего процессор работал медленнее, но стоил дешевле, чем 8086
Ни 8088, ни 8086 не могли обращаться к более 1 Мбайт памяти. К началу 80-х годов это стало серьезной проблемой, поэтому компания Intel разработала модель 80286, совместимую с 8086.
Следующим шагом был 32-битный процессор 80386, выпущенный в 1985 году. Через четыре года появился процессор 80486. Он работал быстрее, чем 80386, мог выполнять операции с плавающей точкой и имел 8 Кбайт кэш-памяти. Кэш-память используется для того, чтобы держать наиболее часто используемые слова внутри центрального процессора и избегать длительного доступа к основной (оперативной) памяти.
В этот момент Intel, проиграв судебную тяжбу по поводу нарушения правил наименования товаров, выяснила, что номера (например, 80486) не могут быть торговой маркой, поэтому следующее поколение компьютеров получило название Pentium.
Название Pentium стало так хорошо известно, что его решили оставить, и новую микросхему назвали Pentium Pro. Несмотря на столь незначительное изменение названия, этот процессор очень сильно отличался от предыдущего. У него была совершенно другая внутренняя организация, и он мог выполнять до пяти команд одновременно. Еще одно нововведение у Pentium Pro — двухуровневая кэш-память. Процессор содержал 8 Кбайт памяти для часто используемых команд и еще 8 Кбайт для часто используемых данных.
Вслед за Pentium Pro появился процессор Pentium II, по существу такой же, как и его предшественник, но с особой системой команд для мультимедиа-задач (ММХ — multimedia extensions). Эта система команд предназначалась для ускорения вычислений, необходимых при воспроизведении изображения и звука. При наличии ММХ специальные сопроцессоры были не нужны.
В начале 1998 года Intel запустил новую линию продукции под названием Celeron. Celeron имел меньшую производительность, чем Pentium II, но зато стоил дешевле.
UltraSPARC II
В 70-х годах во многих университетах была очень популярна операционная система UNIX, но персональные компьютеры не подходили для этой операционной системы, поэтому любителям UNIX приходилось работать на мини-компьютерах с разделением времени, таких как PDP-11 и VAX. Энди Бехтольсхайм, аспирант Стэнфордского университета, был очень расстроен тем, что ему нужно посещать компьютерный центр, чтобы работать с UNIX. В 1981 году он разрешил эту проблему, самостоятельно построив персональную рабочую станцию UNIX из стандартных частей, имеющихся в продаже, и назвал ее SUN-1 (Stanford University Network — сеть Стэнфордского университета).
На Бехтольсхайма скоро обратил внимание Винод Косла, 27-летний индиец, который горел желанием годам к тридцати стать миллионером и уйти от дел. Косла предложил Бехтольсхайму организовать компанию по производству рабочих станций Sun. Он нанял Скота Мак-Нили, другого аспиранта Стэнфордского университета, чтобы тот возглавил производство. Для написания программного обеспечения они наняли Билла Джоя, главного создателя системы UNIX. В 1982 году они вчетвером основали компанию Sun Microsystems. Первый компьютер компании, Sun-1, был оснащен процессором Motorola 68020 и имел большой успех, как и последующие модели Sun-2 и Sun-З, которые также были сконструированы с использованием микропроцессоров Motorola.
В 1987 году компания Sun, которая к тому времени продавала рабочих станций на полмиллиарда долларов в год, решила разработать свой собственный процессор, основанный на новом революционном проекте калифорнийского университета в Беркли (RISC II). Этот процессор назывался SPARC (Scalable Processor ARChitecture — наращиваемая архитектура процессора). Он был использован при производстве рабочей станции Sun-4. Через некоторое время все рабочие станции компании Sun стали производиться на основе этого процессора.
Первый SPARC был 32-битным и работал с частотой 36 МГц. Центральный процессор назывался IU (Integer Unit — процессор целочисленной арифметики) и был весьма посредственным.
Грандиозный перелом в развитии SPARC произошел в 1995 году, когда была разработана 64-битная версия (версия 9) с адресами и регистрами по 64 бит. Первой рабочей станцией с такой архитектурой стал UltraSPARC I, вышедший в свет в 1995 году. Он был полностью совместим с 32-битными версиями SPARC, хотя сам был 64-битным. Среди нововведений, помимо 64-битной архитектуры, появились 23 новые команды, в том числе команды для упаковки и распаковки пикселов из 64-битных слов, масштабирования и вращения изображений, перемещения блоков, а также для компрессии и декомпрессии видео в реальном времени. Эти команды назывались VIS (Visual Instruction Set) и предназначались для поддержки мультимедиа. Они были аналогичны командам ММХ.
За UltraSPARC I последовали UltraSPARC II и UltraSPARC III. Эти модели отличались друг от друга по скорости, и у каждой из них появлялись какие-то новые особенности.
PicoJava II
В середине 90-х годов исследователи в Sun Microsystems думали, как сделать так, чтобы пользователи могли вызывать двоичные программы через Интернет и загружать их как часть web-страниц. Им нравился C++, но он не был надежным в том смысле, что программа, посланная на некоторый компьютер, могла причинить ущерб этому компьютеру. Тогда они решили на основе C++ создать новый язык программирования Java, с которым не было бы подобных проблем.
Поскольку Java — всего лишь язык программирования, можно написать компилятор, который будет преобразовывать его для Pentium, SPARC или любого другого компьютера. Такие компиляторы существуют. Однако этот язык был создан в первую очередь для того, чтобы пересылать программы между компьютерами по Интернету и чтобы пользователям не приходилось изменять их. Но если программа на языке Java компилировалась для SPARC, то когда она пересылалась по Интернету на Pentium, запустить там эту программу было уже нельзя.
Чтобы разрешить эту проблему, компания Sun придумала новую виртуальную машину JVM (Java Virtual Machine — виртуальная машина Java). Память у этой машины состояла из 32-битных слов, машина поддерживала 226 команд. Большинство команд были простыми, но выполнение некоторых довольно сложных команд требовало большого количества циклов обращения к памяти.
Интерпретация программ JVM (и любых других программ) происходит медленно. Альтернативный подход — сначала скомпилировать апплет или другую программу JVM для вашей собственной машины, а затем запустить скомпилированную программу. Такая стратегия требует наличия компилятора с JVM на машинный язык внутри браузера и возможности активизировать его, когда необходимо. Эти компиляторы называются JIT-компиляторами (Just In Time — «как раз вовремя»), и они широко распространены.
Кроме программного обеспечения JVM (JVM-интерпретаторов и JIT-компиляторов) Sun и другие компании разработали микросхемы JVM — процессоры, которые сразу выполняют двоичные программы JVM без какой-либо интерпретации и компиляции. Picojava I и picojava II были разработаны для рынка встроенных систем.
Picojava II — не физическая микросхема, а проект, который является основой для ряда микросхем, например Sun Microjava 701 и других. Эти микросхемы производятся предприятиями, получившими патент Sun.
Picojava II содержит два факультативных процессора: кэш-память и процессор с плавающей точкой, которые каждый производитель может включать или не включать в разработку. В целях простоты мы будем рассматривать picojava II как микросхему, хотя на самом деле это не микросхема, а проект микросхемы.


