Какая фирма впервые выпустила 64 разрядные процессоры
Стремительное развитие полупроводниковых и компьютерных технологий обеспечило быструю эволюцию архитектуры процессоров. В результате стало возможным расширение функциональных возможностей 32-разрядных процессоров, получивших специальные режимы выполнения 64-разрядных приложений.
В основе современного этапа развития цивилизации лежит эффективная обработка информации, осуществляемая компьютерными системами. Центральными элементами этих систем являются высокопроизводительные процессоры, которые в короткий срок прошли несколько этапов своей эволюции. Каждый из этих исторических этапов характеризуется рядом особенностей. Среди них не только частотные и архитектурные параметры электронных элементов, но и особенности решаемых задач, сложность и разнообразность которых постоянно возрастают, также как и объемы обрабатываемой информации.
Для эффективной работы с большими объемами цифровых данных необходимы устройства, построенные по новым архитектурным принципам. Действительно, все более широкое распространение компьютерных технологий порождает огромное количество новых цифровых данных, требующих своевременного преобразования и потребления.
Для эффективной обработки огромных потоков информации, среди которй значительую долю составляют мультимедийные файлы, конвергентная компьютерно-коммуникационная отрасль должна существенно переработать свои аппаратные средства и приложения. При этом потенциал роста функциональных возможностей и производительности в будущем будет обеспечиваться не только повышением тактовой частоты, задающей темп работы полупроводниковых элементов, но и внедрением перспективных архитектурных инноваций.
Однако будущее компьютерной техники в значительной степени определяется работами, интенсивно проводимыми в лабораториях и на производстве в настоящее время. Основным же объектом внимания ученых и инженеров, как и ранее, остаются процессоры, важнейшим из параметров которых является производительность, зависящая от технологии, микроархитектуры и тактовой частоты.
Производительность процессоров определяется следующими соотношениями:
Производительность процессора = Команды / Время,
Команды / Секунды = (Команды / Такты) х (Такты / секунды),
Параметр Команды/Такты означает количество выполняемых инструкций за такт — IPC ( Instructions per Cycle ), а Такты/секунды – это тактовая частота, на которой работает ядро процессора.
Величина IPC является функцией архитектуры процессора и используемого технологического процесса, что записывается с помощью следующего выражения: IPC = f(архитектура, тех. процесс). При этом тактовая частота F, задающая тем работы процессорного ядра является функцией, как технологического процесса, так и конструктивных особенностей используемых в конструкции процессоров цепей, то есть F = f(тех. процесс, цепи).
AMD х86-64
Компания AMD была первой, кто сумел реализовать возможности современных полупроводниковых технологий для выпуска массовых процессоров для сектора настольных компьютеров.
Как развитие архитектуры 32-разрядных процессоров AMD Athlon , разработчиками данной компании были созданы процессоры, поддерживающие 64-разрядные вычисления. Данная архитектура получила наименование AMD 64. В качестве прототипа новой разработки компании AMD была выбрана архитектура процессоров AMD Athlon XP .
Впервые нововведения перспективной архитектуры, обеспечивающей поддержку 64-разрядных вычислений, были опробованы в серверных решениях. Соответствующие процессоры получили наименование AMD Opteron и были благосклонно приняты компьютерным рынком. Более того, ряд известных производителей объявили системы, основонных на данных процессорах.
Однако наибольшую известность получили модели с архитектурой AMD 64 в секторе настольных компьютеров. Эти модели получили наименование AMD Athlon 64. В качестве осгновы разработки этих процессоров послужили серверные AMD Opteron .
Основное отличие новых настольных процессоров от предыдущих AMD Athlon XP заключается в поддержке не только 32-разрядного, но и 64-битного кода при сохранении полной совместимости с существующими программными приложениями. Это дает возможность осуществить плавный переход от 32-х к 64-разрядному программному обеспечению, а также обеспечить совместимость со следующим поколением Microsoft Windows XP для 64-разрядной платформ.
Оценивая же прикладную полезность новой архитектуры, здесь, следует отметить, что аппаратная реализация 64-разрядных команд позволяет увеличить производительность при обработке данных соответствующей длины. Кроме того, использование 64-разрядных режимов обеспечивает расширение адресного пространства.
Однако необходимо отметить, что для использования потенциала расширенной архитектуры требуется соответствующее программное обеспечение, обеспечивающее поддержку 64-разрядных режимов. В противном случае аппаратные расширения не могут быть использованы.
Для реализации возможностей архитектуры, ориентированной на 64-разрядные вычисления, разработчики AMD удвоили количество регистров общего назначения и увеличили их разрядность до 64 бит.
Кроме того, в числе принципиальных усовершенствований архитектуры процессоров AMD Athlon 64 следует отметить:
· Интегрированный контроллер памяти, ранее присутствующий исключительно в микросхемах North Bridge наборов микросхем системной логики;
· Шина Hyper-Transport для связи с чипсетом, увеличивающая пропускную способность и сокращающая задержки в передаче данных;
· Удлиненные до 12 ступеней конвейер целочисленных вычислений и до 17 ступеней конвейер вещественных вычислений, что предоставляет возможность увеличить тактовые частоты;
· Увеличенный объем кэш-памяти второго уровня;
· Поддержку набора инструкций SSE2 ;
· Поддержку технологии технология Cool-n-Quiet, обеспечивающей энергосбережение и уменьшение тепловыделения;
· Усовершенствованную защиту от вирусов (блокирование переполнения буфера);
· Э ффективное выполнение 32-разрядных приложений.
Из конструктивных особенностей следует отметить появление крышки, защищающей кристалл процессора, в состав которого включена улучшенная цепь температурной защиты.
Из других параметров процессоров AMD Athlon 64 следует отметить: наличие в составе ядра более 100 млн. транзисторов, разъем Socket 754, технологию 0,13 мкм и т. п. Модули микросхем памяти DDR 2 PC 3200/2700/2100/1600 (скорость передачи данных 3,2/2,7/2,1/1,6 Гбайт) — до четырех модулей registered (специальная) DIMM или трех модулей unbuffered (обычная) DIMM подключаются посредством 64-разрядной шины (+8 бит ECC ) с пропускной способностью до 3,2 Гбайт/с. Сам же процессор подключается посредством шины HyperTransport (до 1600 МГц, Full duplex ) с пропускной способностью 6,4 Гбайт. Объем кэш-памяти L1 – 128 Кбайт, объем же кэш-памяти второго уровня L2 зависит от модели. Так модель с рейтингом 3400+ (тактовая частота ядра — 2,2 ГГц) имеет в своем составе кэш-память L2 объемом 1024 Кбайт, модель 3200+ (2,0 ГГц) — 1024 Кбайт, модель 3000+ (2,0 ГГц) — 512 Кбайт.
В качестве разъема этой линейки процессоров первоначально был выбран Socket 940, совпадающий с разъемом серверных решений, однако в настоящее время происходит замена его на разъем Socket 939. Двухканальность подсистемы памяти сохраняется, но с процессорами используется уже обычные стандартные модули DDR 400, что облегчает их интеграцию в системы, предназначенные для настольных компьютеров.
Разработка 64-битных приложений
Наиболее полно вопросы разработки 64-битных приложений рассмотрены в курсе "Уроки разработки 64-битных приложений на языке Си/Си++". Содержание:
Также рекомендую раздел с обзорами статей по тематике связанной с 64-битнми технологиями.
Центральный процессор представляет из себя сложную интегральную схему, которая является одним из ключевых составляющих элементов современного ПК. Первые компьютеры появились примерно в 40-х годах прошлого века, работая на электромеханических реле и вакуумных лампах. Они обеспечивали функционирование первых вычислительных машин. В 60-х годах появились первые интегральные микросхемы которые на долгое время стали неотъемлемой частью любого вычислительного устройства. Началом эпохи современных CPU можно смело назвать 1971-й год.
Intel 4004
Первым однокристальным микропроцессором считается 4-битный Intel 4004, вышедший 15 ноября 1971 года. Компания Intel только начинала свой путь становления и ее создатели, Роберт Нойс, Гордон Мур и Эндрю Гроув, потратили немало сил на процесс развития. Благодаря вкладу итальянского физика Федерико Фаджина, инженерам компании удалось разместить ключевые компоненты на один чип и создать микропроцессор 4004.
Intel 4004 производился по 10-мкм техпроцессу, насчитывал 2250 транзисторов и работал на частоте 108 кГц (проводил 92 600 операций в секунду). Частота синхронизации была 740 кГц. Объем памяти доходил до 4 Кб, разрядность шины — 4 бита. Площадь кристалла составляла 12 мм 2 .
Intel 8008
Одной из первых компьютерных систем на основе микропроцессора стал проект Sac State 8008 (1972 год). Это был полноценный микрокомпьютер с дисковой ОС, цветным дисплеем, ОЗУ 8 Кб и диском 3+2 Мб, клавиатурой, модемом, принтером. Он предназначался для обработки и хранения медицинских записей.
Intel 8080
За счет высокой производительности процессора пользовался успехом. На базе Intel 8080 компания MITS выпустила микрокомпьютер Altair-8800. Несмотря на скромные характеристики (256 байт оперативной памяти, отсутствие монитора и клавиатуры) он обрел небывалую популярность и раскупался очень быстро.
Существовало немало клонов Intel 8080 от других компаний, таких, как National Semiconductor, NEC, Siemens и AMD. Был и советский аналог от Киевского НИИ микроприборов — микропроцессор КР580ВМ80А (1977 год).
Motorola 6800
В 1974 году компания Motorola выпустила свой процессор — 6800. Кристалл производился по 6-мкм техпроцессу, с тактовой частотой 2 МГц и памятью 64 Кб. Использовалась технология N-МОП. Процессор имел 16-битную адресную шину и систему команд из 78 операций. Присутствовал индексный регистр.
Motorola 6800 был весьма популярным, он применялся во многих ПК. На базе его архитектуры были созданы микроконтроллеры Motorola 6801 и 6803.
MOS Technology 6502
Преимуществом данной модели была цена — всего $25 (в разы дешевле чем у Intel и Motorola). Это поспособствовало стремительному росту продаж процессора.
6502 использовался в таких ПК, как Apple I, Apple II, Commodore PET и т.д. Также процессоры данной серии нашел применение в видеоиграх, начиная с приставки Atari 2600, использующую модель 6507 с меньшим количеством выводов и возможностью адресации только 8 Кб памяти.
MOS Technology предоставили лицензии компаниями Rockwell, Synertek на производство процессоров и применение 6502. Существовал советский аналог 4К602ВМ1.
Zilog Z80
Во второй половине 70-х из Intel ушел один из создателей микропроцессора, итальянец Федерико Фаджин. Объединившись с инженером Ральфом Уингерманном и японским инженером Масатоси Симой они основали компанию Zilog. И уже в начале лета 1976 года на рынок вышел процессор Zilog Z80, который по своей архитектуре напоминал улучшенный 8080. У микропроцессора был расширен набор команд, появились новые регистры, режимы прерываний, два отдельных блока регистров.
Z80 производился по 3-мкм техпроцессу с использованием технологии КМОП, содержал 8500 транзисторов. Тактовая частота варьировалась в пределах 2,5 МГц — 8 МГц для основной версии и 1 МГц — 20 МГц для КМОП-версии. Объем памяти доходил до 64 Кб, с 16-битной адресной шиной. Размеры кристалла составляли 4,6 мм х 4,9 мм, с площадью 22,54 мм 2 . Помимо технических преимуществ, Z80 стоил к тому же дешевле интеловского процессора.
CPU выходил в разных вариантах: Z80 (2,5 МГц), Z80A (4 МГц), Z80B (6 МГц) и Z80H (8 МГц). Применялся в компьютерах Sharp, NEC и других.
Intel 8086 и 8088
В 1978 году компания Intel выпустила первый 16-битный микропроцессор 8086. Его разработка велась более двух лет. Процессор производился по 3-мкм техпроцессу, содержал 29 000 транзисторов. Объем памяти достигал 1 Мб. Тактовая частота составляла 4 МГц — 10 МГц, разрядность регистров и шины данных была 16 бит, а разрядность шины адреса — 20 бит. Intel 8086 отличался скоростью работы.
В процессоре 8086 насчитывалось четырнадцать 16-разрядных регистров: 4 общего назначения (AX, BX, CX, DX), 2 индексных регистра (SI, DI), 2 указательных (BP, SP), 4 сегментных регистра (CS, SS, DS, ES), программный счётчик или указатель команды (IP) и регистр флагов (FLAGS, включает в себя 9 флагов).
Процессор использовался в первой модели линейки IBM РС 5150 (1981 год). Многие крупные компании, вроде AMD, Siemens, NEC и других, клонировали 8088.
Zilog Z8000
В 1979 году компания Zilog выпустила свой 16 битный микропроцессор Z8000. Он производился по 6-мкм — 3-мкм техпроцессу с количеством транзисторов 17500. Тактовая частота варьировалась от 4 МГц до 10 МГц для основной версии и от 4 МГц до 20 МГц для КМОП. Объем памяти достигал 8 Мб для Z8001 и 64 Кб для Z8002. Разрядность шины данных была 16 бит, а шины адреса — 23 бит (в версии Z8002 — 16 бит).
Изначально были выпущены две версии процессора: Z8001 и Z8002. Их различия заключались лишь в том, что первый работал с адресацией до 8 Мб памяти, а второй — лишь до 64 Кб. Несколько позже появились модели Z8003 и Z8004, которые умели работать с виртуальной памятью.
Процессоры Z8000 применялись в настольных Unix-компьютерах, позволяющих создавать настоящие многопользовательские системы.
Motorola 68000
Серия CISC-микропроцессоров Motorola 68000 (68к) была представлена в 1979 году. Кристалл имел 32-битное ядро, но работал посредством 16-битных шин данных и 24-разрядной шиной адресов. Его частота составляла 8 МГц — 20 МГц, а количество транзисторов насчитывало 68 000 штук. CPU производился в форм-факторе DIP с 64 контактами. Но также существовали модели с разъемами LCC и PGA.
Процессор приобрел популярность у многих компаний и применялся в различных ПК. Но конечно, наиболее известными являются компьютеры Apple: Lisa и Macintosh.
Intel 80186
Следующим процессором Intel стал 80186, в основе которого лежала архитектура 8086. Он производился по 3-мкм техпроцессу и содержал 134 000 транзисторов. Объем памяти составлял 1 Мб, разрядность шины данных была 16-бит, а шины адреса — 20-бит. Тактовая частота достигала 6 МГц — 25 МГц.
В 80186 добавились новые команды:
— два контроллера прямого доступа к памяти со схемами прерываний (DMA);
— дешифраторы адреса;
— трех-канальный программируемый таймер-счетчик;
— генератор синхронизации;
— программируемый контроллер прерываний.
Процессоры мало применялись в компьютерах, только в некоторых моделях ПК, вроде Compis (Швеция), RM Nimbus (Великобритания), Unisys ICON (Канада), HP 200lx (США), и Tandy 2000 (США).
Intel 80286
Следующая модель компании вышла в феврале 1982 года. Это был 16-битный x86-совместимый микропроцессор второго поколения 80286. Имелась поддержка реального режима. В защищенном режиме емкость адресного пространства могла составлять до 1 Гб за счет изменения механизма адресации памяти.
По техническим характеристикам процессор превосходил предыдущую модель. Он выпускался по 1,5-мкм техпроцессу с количеством транзисторов в 134 000 штук. Объем оперативной памяти составлял 16 Мб, а в защищенном режиме можно было использовать до 1 Гб виртуальной памяти. Разрядность регистров и шины данных составляла 16-бит. В зависимости от модели, тактовая частота могла быть 6 МГц, 8 МГц, 10 МГц или 12,5 МГц (при 12,5 МГц процессор выполнял не менее 2,66 млн операций в секунду).
WDC W65C816S
В 1984 году компания Western Design Center (WDC) выпустила 16-битный микропроцессор W65C816S. В модели была 24-битная адресация памяти и поддерживалось до 16 Мб памяти с произвольным доступом, а также присутствовал расширенный набор инструкций.
Процессор применялся в компьютере Apple IIGS, а также системах Acorn Communicator и C-One.
Intel i386
В 1985 году вышел 32-битный процессор с архитектурой x86 третьего поколения Intel 80386 (или i386). Процессор сохранил обратную совместимость с 8086 и 80286. Производился по 1,5-мкм — 1,0-мкм техпроцессу. Через страничное преобразование процессор мог адресовать до 4 Гб физической памяти и до 64 Гб виртуальной памяти. Тактовая частота составляла 12 МГц — 40 МГц.
Процессор Intel i386 представлялся в разных модификациях, отличающихся между собой производительностью, потребляемой мощностью, разъемами, корпусами и другими характеристиками. Модели: 386DX (DX — Double-word eXternal), 386SX, 386SL и 386EX (модификация процессора 386SX).
Первым компьютером, использующим процессор, стал Compaq Deskpro 386. Также модель была первым 32-разрядным процессором для настольных и портативных IBM PC.
У i386 было довольно много клонов, которые производились компаниями AMD, Cyrix и IBM. Топовая модель компании AMD была Am386DX, которая не уступала в производительности, стоила дешевле и имела тактовую частоту 40 МГц. Клоны компании Cyrix 86SLC и 486DLC также хорошо воспринялись пользователями. Наиболее известные клоны компании IBM были процессоры 386SLC и 386DLC, которые использовались в настольных компьютерах IBM PS/2 и PS/ValuePoint.
Intel i486
Процессор дополнился:
— кэш-памятью (8 Кб);
— вычислительным конвейером, который занимался разделением обработки компьютерной инструкции на последовательность независимых стадий с сохранением результатов в конце каждой из них. Конвейер включал в себя выборку, декодирование, декодирование адресов операндов, выполнение команды и запись результата выполнения инструкции;
— встроенным сопроцессором (модулем операций с плавающей запятой), помогающим выполнять математические операции над вещественными числами;
— коэффициентом умножения (множителем).
Разные компании также копировали Intel i486, как и предыдущие модели. Производством клонов занимались AMD, Cyrix, IBM, Texas Instruments и другие.
Motorola 68020, 68030, 68040
С 1984 по 1990 годы компания Motorola выпустила линейку своих 32-битных процессоров: 68020, 68030, 68040. «Пионер» i386 (68020) производился по 2-мкм техпроцессу и насчитывал 190 000 транзисторов. Его тактовая частота составляла 12 МГц — 33 МГц. 68020 стал первым процессором в линейке Motorola 68k со встроенной кэш-памятью первого уровня (объем 256 байт).
Процессор применялся в компьютерах Apple: Macintosh II и Macintosh LC.
Motorola 68030 также применялся в компьютерах Apple Macintosh II и Commodore Amiga, в системах Next Cube, Sun 3/80, Atari TT и Atari Falcon.
В 1990 году на рынок вышел процессор 68040. В нем появился встроенный сопроцессор. Объем кэша-памяти инструкций и кэш-памяти данных увеличился до 4 Кб. Принцип работы процессора основывался на вычислительных конвейерах, которые состояли из шести стадий. Тактовая частота достигала 40 МГц.
Процессор 68040 стал основой High-End-системы Macintosh Quadra. Macintosh Centris и Performa также использовали процессоры семейства 68040.
DEC VAX
В период с 80-х по 90-е компания DEC выпустила целую серию 32-битных процессоров, которые базировались на собственной архитектуре VAX (32-битная компьютерная архитектура, была разработана Digital Equipment Corporation в рамках проекта Star).
Первым в серии был MicroVAX 78032. Он изготавливался по 3-мкм техпроцессу и содержащий 125 000 транзисторов, работал на частоте 5 МГц.
В 1987 году был представлен чипсет CVAX, тактовая частота которого составляла 11,11 МГц или 12,5 МГц. Производился процессор с помощью технологии CMOS первого поколения, общий объем кэш-памяти инструкций и данных составлял 1 Кб и поддерживалось 64 Кб внешней кэш-памяти.
NEC V60, V70, V80
Отдельного упоминания достойны процессоры внутреннего рынка Японии.
Первый 32-битный процессор V60 был выпущен компанией NEC в 1986 году. Производился этот CPU по 1,5-мкм техпроцессу и насчитывал 375 000 транзисторов. Он использовал вычислительные конвейеры с шестью стадиями, а также имел встроенный сопроцессор и блок управления памятью. Тактовая частота достигала 16 МГц.
В 1987 году вышел V70, который со временем начал производиться по 1,2-мкм техпроцессу. Тактовая частота составляла 20 МГц. При такой скорости работы производительность чипа доходила до 6,6 млн инструкций в секунду.
На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86? Я начал объяснять, что не всё так просто. Захотелось нарисовать более полную картину. Ведь на самом деле это не x64, и даже не x86.
386-ые, Пентиумы и Коры
На самом деле названий для этого феномена, около сорока лет присутствующего на сцене процессорных технологий, было придумано несколько. Даже больше, чем хотелось бы. Они появились из разных источников и используются в разных контекстах, разными компаниями и разными сообществами. Конечно же, это вносит некоторую неразбериху.
Я постарался здесь собрать все известные мне названия. Не хочу пытаться доказать, что одна группа имён лучше другой, — меньше использовать их не станут.
8086 и семейство
В 1978 году был выпущен 16-битный процессор Intel, который имел «имя» 8086. За ним были 8088, 80186, 80286, 80386 (плюс вариации), 80486 (плюс вариации). Легко заметить, что (почти) все эти числовые имена оканчиваются на две цифры 86, что дало название всей серии x86. Оно укрепилось, его продолжили использовать и после того, как процессорам перестали давать цифровые имена, а появились Intel Pentium, Celeron, Xeon, Core, Atom и т.д. Совместимые продукты других вендоров, таких как IBM, AMD, Cyrix, VIA и т.д., также описываются как x86.
По моим наблюдениям, x86 — самый популярный вариант для имени этой архитектуры в Интернете, статьях и прочей литературе, особенно, когда не стоит задачи точно специфицировать разрядность архитектуры или речь явным образом идёт о 32-битном варианте.
Используются также вариации этого названия для 32-битных вариантов, позволяющие более точно указать минимальный набор поддерживаемых инструкций: i386, i486, i586, i686, — например, для различения вариантов сборок бинарных пакетов дистрибутивов Linux.
Пришествие 64 бит
Своими стараниями Intel расширила машинное слово в описанной ранее серии процессоров с 16 до 32 бит. Достигнуть этой архитектуре 64 бит помогла компания AMD, в 2003 году представившая процессор, поддерживающий новые инструкции и регистры и реализующий AMD64.
Для того, чтобы явно указать повышенную битность процессора/кода/пакета, имя x86 стало получать новый суффикс «64». Вот только через какой знак его приписывать не договорились, и иногда видишь x86_64, а порой x86-64. Например, вывод команды uname в Linux использует подчерк. Наконец, у пакетов можно увидеть и суффикс amd64 строчными буквами.
Intel же обозначала это расширение архитектуры сперва IA-32e, затем EM64T. В настоящее время можно встретить оба варианта в различных именах пакетов, документации и прочем. Тем не менее, есть и третье введённое Intel название…
Как это называет Intel
В официальной документации 32-битная архитектура имеет имя IA-32; её 64-битный вариант получил довольно странное с моей точки зрения имя Intel 64. Почему странное — оно создаёт потенциал для путаницы, как мы увидим ближе к концу статьи.
Компании-поставщики софта
- Дистибутивы Linux: x86 и x86_64, иногда x86 и amd64.
- Apple: x86 и x86_64.
- Microsoft и Oracle: x86 и x64.
Всё вместе
- Для 32-битного варианта: IA-32, x86, i386, i486, i586, i686.
- Для 64-битного варианта: Intel 64, AMD64, amd64, EM64T, IA-32e, x86_64, x86-64, x64.
Ложные имена
Как известно, за свою сорокалетнюю историю Intel выпускала (и выпускает сейчас) не только процессоры IA-32. Были и до сих пор присутствуют продукты других архитектур. Они тоже имеют свои имена, иногда несколько созвучные. При этом происходит путаница, от которой хотелось бы предостеречь.
Intel IA-64. Является полным синонимом термина «Intel Itanium». Используется для обозначения 64-битной архитектуры, несовместимой ни с IA-32, ни с 64-битным её вариантом ни по набору команд, ни по принципам работы. Да, существуют аппаратные и программные прослойки для запуска IA-32 приложений на Итаниуме, но это — тема для отдельного и интересного рассказа. Кстати, и для Itanium есть ещё одно обозначение — IPF, используемое изредка как суффикс.
К сожалению, линейки таких семейств процессоров Intel, как i432, i860, i960 или не дожили до наших дней, или же имеют крайне узкую нишу применения. А то глядишь — пришлось бы для каждого из них запоминать ещё по десятку имён.
Программная модель Win64
Также как и в Win32 размер страниц в Win64 составляет 4Кб. Первые 64Кб адресного пространства никогда не отображаются, то есть наименьший правильный адрес это 0x10000. В отличие от Win32, системные DLL загружаются выше 4Гб.
- RCX: первый аргумент
- RDX: второй аргумент
- R8: третий аргумент
- R9: четвертый аргумент
Разница в соглашениях о вызове приводит к тому, что в одной программе нельзя использовать и 64-битный, и 32-битный код. Другими словами, если приложение скомпилировано для 64-битного режима, то все используемые библиотеки (DLL) также должны быть 64-битными.
Передача параметров через регистры является одним из новшеств, делающих 64-битные программы более производительными, чем 32-битные. Дополнительный выигрыш в производительности можно получить, используя 64-битные типы данных.
От 32 к 64
Итак, основываясь на приведенных выше соотношениях, производительность процессора определяется двумя параметрами, один из которых количество инструкций, выполняемых за такт, — IPC , другой — тактовая частота — F.
Если в отмеченных функциональных соотношениях оставить в стороне вопросы технологии и особенности реализации внутренних электронных цепей ядра процессора, то остается зависимость производительности процессора от его архитектурных решений. В эти решения, определяющие параметр IPC , входят многие особенности архитектуры, в частности, разрядность обрабатываемых элементов.
Очевидно, что, чем больше разрядов, отводимых на команды и данные, тем меньше потребуется команд, выполняемых за такт, для решения поставленных задач. Действительно, очевидно, что для выполнения расчетов, требующих высокой точности, в случае процессоров высокой разрядности необходимо меньше машинных слов для размещения операндов и команд, чем в случае малоразрядных элементов.
Несмотря на распространенность данных высокопроизводительных моделей, необходимо отметить, что на рынке уже ряд лет присутствуют и более сложные решения, ориентированные на данные удвоенной длины. Но разработанные 64-разрядные процессоры до недавнего времени предназначались исключительно для рынка серверных решений. Из-за высокой стоимости технологических процессов, используемых в производстве таких изделий, а также их чрезвычайно сложной внутренней структуры, 64-разрядные серверные процессоры отличаются сравнительно высоким уровнем цен. Этот уровень значительно выше того, что установлен для настольных моделей.
Кроме того, существующие модели, рассчитанные под данные, длиной в 64 бит, требуют либо разработки программного обеспечения, специально созданного под конкретные архитектуры, либо перекомпиляцию существующих приложений. Остается добавить, что необходимо и соответствующее аппаратное обеспечение. Все это создает определенные трудности по внедрению перспективных многоразрядных процессорных архитектур.
Однако благодаря стремительному совершенствованию полупроводниковых технологий и внедрению многочисленных архитектурных решений для процессоров происходит не только снижение себестоимости ранее разработанных моделей, но и становится возможным реализовывать все более сложные замыслы разработчиков. Среди этих замыслов есть планы разработки и выпуска для рынка настольных компьютеров высокопроизводительных процессоров большей, чем традиционные 32 бит, разрядности. Это становится все более актуальным, поскольку объективным причинам наращивание частотного потенциала дается все труднее из-за роста токов утечки и соответствующего увеличения теплообразования .
WoW64
Windows-on-Windows 64-bit (WoW64) — подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows.
- программы, скомпилированные для 16-разрядных операционных систем;
- программы режима ядра, скомпилированные для 32-разрядных операционных систем.
WoW64 на архитектуре Intel 64 (AMD64 / x64) не требует эмуляции инструкций. Здесь подсистема WoW64 эмулирует только 32-битное окружение, за счет дополнительной прослойки между 32-битным приложением и 64-битным Windows API. Где-то эта прослойка тонкая, где-то не очень. Для средней программы потери в производительности из-за наличия такой прослойки составят около 2%. Для некоторых программ это значение может быть больше. Два процента это немного, но следует учитывать, что 32-битные приложения работают немного медленнее под управлением 64-битной операционной системы Windows, чем в 32-битной среде.
Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.
Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%\System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%\System32 в папку %systemroot%\SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.
Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN "Running 32-bit Applications".
История 64-битных систем
64-битность только недавно вошла в жизнь большинства пользователей и прикладных программистов. Однако работа с 64-битными данными имеет уже длинную историю.
1961: IBM выпускает суперкомпьютер IBM 7030 Stretch, в котором используются 64-битные слова данных, 32-битные или 64-битные машинные инструкции.
1974: Control Data Corporation запускает векторный суперкомпьютер CDC Star-100, в котором используется архитектура 64-битных слов (предыдущие системы CDC имели 60-битную архитектуру).
1976: Cray Research выпускает первый суперкомпьютер Cray-1, в котором реализована архитектура 64-битных слов и который послужит основой для всех последующих векторных суперкомпьютеров Cray.
1985: Cray выпускает UNICOS — первую 64-битную реализацию операционной системы Unix.
1991: MIPS Technologies производит первый 64-битный процессор, R4000, в котором реализована третья модификация разработанной в их компании архитектуры MIPS. Этот процессор используется в графических рабочих станциях SGI начиная с модели IRIS Crimson. Kendall Square Research выпускает свой первый суперкомпьютер KSR1, построенный на основе их собственной запатентованной 64-битной архитектуры RISC под операционной системой OSF/1.
1992: Digital Equipment Corporation (DEC) представляет полностью 64-битную архитектуру Alpha — детище проекта PRISM.
1993: DEC выпускает 64-битную Unix-подобную операционную систему DEC OSF/1 AXP (позже переименованную в Tru64 UNIX) для своих систем, построенных на архитектуре Alpha.
1995: Sun запускает 64-битный процессор семейства SPARC UltraSPARC. HAL Computer Systems, подчиненная Fujitsu, запускает рабочие станции, созданные на основе 64-битного процессора SPARC64 первого поколения, независимо разработанного компанией HAL. IBM выпускает микропроцессоры A10 и A30, а также 64-битные процессоры PowerPC AS. IBM также выпускает 64-битное обновление для системы AS/400, способное преобразовывать операционную систему, базы данных и приложения.
1996: Nintendo представляет игровую консоль Nintendo 64, созданную на основе более дешевого варианта MIPS R4000. HP выпускает реализацию 64-битной 2.0 версии собственной архитектуры PA-RISC PA-8000.
1997: IBM запускает линейку RS64 64-битных процессоров PowerPC/PowerPC AS.
1998: Sun выпускает Solaris 7 с полной 64-битной поддержкой UltraSPARC.
1999: Intel выпускает набор команд для архитектуры IA-64. AMD публично объявляет о своем наборе 64-битных расширений для IA-32, который был назван x86-64 (позже переименован в AMD64).
2000: IBM выпускает свой первый 64-битный мэйнфрейм zSeries z900, совместимый с ESA/390, а также новую операционную систему z/OS.
2001: Intel наконец запускает линейку 64-битных процессоров, которые теперь получают название Itanium и рассчитаны на высокопроизводительные серверы. Проект не соответствует ожиданиям из-за многочисленных задержек при выпуске IA-64 на рынок. NetBSD становится первой операционной системой, которая запускается на процессоре Intel Itanium после его выхода. Кроме того, Microsoft также выпускает Windows XP 64-Bit Edition для архитектуры IA-64 семейства Itanium, хотя в ней сохраняется возможность запускать 32-битные приложения при помощи прослойки WoW64.
2003: AMD представляет линейки процессоров Opteron и Athlon 64, созданные на основе архитектуры AMD64, которая является первой 64-битной процессорной архитектурой, основанной на архитектуре x86. Apple начинает использовать 64-битный процессор «G5» PowerPC 970 производства IBM. Intel утверждает, что процессорные чипы семейства Itanium останутся единственными 64-битными процессорами, разработанными в их компании.
2004: В ответ на коммерческий успех AMD, Intel признается, что они разрабатывали клон расширений AMD64, которому дали название IA-32e (позже переименован в EM64T, и затем еще раз в Intel 64). Intel также выпускает обновленные версии семейств процессоров Xeon и Pentium 4 с поддержкой новых команд.
2004: VIA Technologies представляет свой 64-битный процессор Isaiah.
2005: 31 января Sun выпускает Solaris 10 с поддержкой процессоров AMD64 / Intel 64. 30 апреля Microsoft выпускает Windows XP Professional x64 Edition для процессоров AMD64 / Intel 64.
2006: Sony, IBM и Toshiba начинают выпуск 64-битного процессора Cell для PlayStation 3, серверов, рабочих станций и других устройств. Microsoft выпускает Windows Vista с включенной 64-битной версией для процессоров AMD64 / Intel 64, которая поддерживает 32-битную совместимость. Все Windows-приложения и компоненты являются 64-битными, однако многие из них имеют 32-битные версии, включенные в систему в виде плагинов в целях совместимости.
2009: Как и Windows Vista, Windows 7 компании Microsoft включает полную 64-битную версию для процессоров AMD64 / Intel 64, и на большинство новых компьютеров по умолчанию устанавливается 64-битная версия. Выходит операционная система компании Apple Mac OS X 10.6, «Snow Leopard» которая имеет 64-битное ядро и предназначена для процессоров AMD64 / Intel 64, однако по умолчанию эта система устанавливается только на некоторые из последних моделей компьютеров компании Apple. Большинство приложений, поставляемых с Mac OS X 10.6, теперь также являются 64-битными.
Более подробно с историей развития 64-битных систем можно познакомиться в статье Джона Машей "Долгая дорога к 64 битам" [1] и в энциклопедической статье в Wikipedia "64-bit" [2].
Intel EM 64T
Существующую тенденцию перехода к разработке и выпуску процессоров гибридной архитектуры поддержала корпорация Intel . Об этом впервые объявил весной этого года на Форуме IDF в Сан-Франциско Крейга Барретт, главный исполнительный директор корпорации Intel (Craig Barrett, Chief Executive Officer). Эта тема была продолжена и на других сессиях Форума.
Адресное пространство
Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в этом случае необходимо огромное количество памяти для страничных таблиц, отображающих память.
Помимо перечисленных ограничений, объем памяти, который доступен в той или иной версии 64-битной операционной системе Windows зависит также от коммерческих соображений компании Microsoft. Ниже приведена информация по объему памяти, поддерживаемой различными версиями 64-биными версиями Windows:
Windows XP Professional — 128 Gbyte;
Windows Server 2003, Standard — 32 Gbyte;
Windows Server 2003, Enterprise — 1 Tbyte;
Windows Server 2003, Datacenter — 1 Tbyte;
Windows Server 2008, Datacenter — 2 Tbyte;
Windows Server 2008, Enterprise — 2 Tbyte;
Windows Server 2008, Standard — 32 Gbyte;
Windows Server 2008, Web Server — 32 Gbyte;
Vista Home Basic — 8 Gbyte;
Vista Home Premium — 16 Gbyte;
Vista Business — 128 Gbyte;
Vista Enterprise — 128 Gbyte;
Vista Ultimate — 128 Gbyte;
Windows 7 Home Basic — 8 Gbyte;
Windows 7 Home Premium — 16 Gbyte;
Windows 7 Professional — 192 Gbyte;
Windows 7 Enterprise — 192 Gbyte;
Windows 7 Ultimate — 192 Gbyte;
64-битные операционные системы
Практически все современные операционные системы сейчас имеют версии для архитектуры Intel 64. Например, Microsoft предоставляет Windows XP x64. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как например Linux Debian 3.5 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, так как Intel 64 обеспечивает обратную совместимость с 32-битными приложениями. Например, 64-битная версия Windows использует специальный режим WoW64 (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы.
Далее в статье мы будем рассматривать только 64-битные операционные системы семейства Windows.
Архитектура Intel 64 (AMD64)
Рассматриваемая архитектура Intel 64 простое, но в то же время мощное обратно совместимое расширение устаревшей промышленной архитектуры x86. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности перекомпилированных 64-битных программ. Архитектура обеспечивает поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.
Отличительной особенностью Intel 64 является поддержка шестнадцати 64-битных регистров общего назначения (в x86-32 имелось восемь 32-битных регистров). Поддерживаются 64-битные арифметические и логические операции над целыми числами. Поддерживаются 64-битные виртуальные адреса. Для адресации новых регистров для команд введены «префиксы расширения регистра», для которых был выбран диапазон кодов 40h-4Fh, использующихся для команд INC и DEC в 32- и 16-битных режимах. Команды INC и DEC в 64-битном режиме должны кодироваться в более общей, двухбайтовой форме.
Необходимость 64-битной архитектуры определяется приложениями, которым необходимо большое адресное пространство. В первую очередь это высокопроизводительные серверы, системы управления базами данных, САПР и, конечно, игры. Такие приложения получат существенные преимущества от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре, ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.
- 64-битное адресное пространство;
- расширенный набор регистров;
- привычный для разработчиков набор команд;
- возможность запуска старых 32-битных приложений в 64-битной операционной системе;
- возможность использования 32-битных операционных систем.
Введение
В рамках архитектуры вычислительной техники под термином «64-битный» понимают 64-битные целые и другие типы данных, имеющих размер 64 бита. Под «64-битными» системами могут пониматься 64-битные архитектуры микропроцессоров (например, EM64T, IA-64) или 64-битные операционные системы (например, Windows XP Professional x64 Edition). Можно говорить о компиляторах, генерирующих 64-битный программный код.
В данной статье будут рассмотрены различные моменты, связанные с 64-битными технологиями. Статья предназначена для программистов, желающих начать разрабатывать 64-битные программы, и ориентирована на Windows-разработчиков, поскольку для них вопрос знакомства с 64-битными системами наиболее актуален.
Анонс на IDF Spring 2004
В числе многочисленных перспективных разработок корпорации CEO Intel отметил планируемую поддержку 64-битных инструкций 32-разрядными процессорами. Эта архитектура, первоначально названная как IA 32e, получила в дальнейшем наименование технология EMT 64T (Extended Memory 64 Technology)
Фото 1. Выступление Крейга Барретт, главный исполнительный директор корпорации Intel
Говоря относительно этой новой для процессоров от Intel архитектуры, Крейг Барретт подчеркнул, что на первоначальном этапе речь идет только о рынке серверов и мощных рабочих станций. Технология поддержки 64-разрядных вычислений, расширяющих возможности архитектуры IA 32, для указанного сектора будет реализована уже в 2004 году. Объектом приложения станут следующие поколения серверных процессоров Intel Xeon . В дальнейшем же по мере расширения рынка программного обеспечения, ориентированного на 64-разрядные вычисления и представленного соответствующими вариантами операционных систем и приложений, данная поддержка появится и в процессорах компьютеров настольного уровня, среди которых 32-разрядные процессоры являются доминирующими (Таблица 1).
Таблица 1. Линейка высокопроизводительных процессоров Intel
Параметры (130 нм)
Intel
Itanium 2
L3 кэш – 3/4/6 Мбайт (MP)
L3 кэш – 1,5/3 Мбайт (DP)
L2 кэш - 256 Кбайт
L1 кэш - 32 Кбайт
128 INT + 128 FP регистров
FSB - 400 МГц, 128 бит
до 512 процессоров
до 4 Мбайт L3 кэш
до 4 процессоров
Intel
Pentium 4 Exteme Edition
Настольные ПК
для офиса и дома
512 Кбайт L2 кэш
технология Hyper - Threading
Intel
Pentium 4
Настольные ПК
для офиса и дома
512 Кбайт L2 кэш
Intel
Pentium M
1 M байт L2 кэш
Необходимо отметить, что и Крейг Барретт, и последующие докладчики, и специалисты, участвующие в многочисленных открытых столах, многократно подчеркивали, что архитектура IA 32e, предусматривающая реализацию 64-разрядных команд, не является копированием уже существующих архитектур AMD . Более того, неоднократно подчеркивалось, что сама система команд, получившая наименование x86-64, не является собственностью фирмы-конкурента. Кроме того, архитектуры процессоров, представленных обоими крупнейшими производителями этого класса полупроводниковых элементов, являются разными и имеют свои специфические особенности реализации. Эти особенности найдут соответствующее воплощение и в 32-х, и в 64-разрядных наборах команд. Примерно так, как это было сделано в MMX , SSE , SSE 2, SSE 3, и т. п. Однако во многих командах совместимость будет присутствовать.
Тем не менее, будут, бессомнения, и отличия. Отличия в изделиях от Intel и AMD будут связаны в основном с разными архитектурами, разными подходами к проектированию процессоров, разными применяемыми в производстве полупроводниковыми технологиями. В качестве примеров уникальных особенностей можно привести развиваемую технологию Hyper-Threading ( HT ), а также используемый набор команд SSE 3, реализованные в продукции Intel и отсутствующие пока у конкурента даже в качестве аналогов. А в ближайшее время будут реализованы и другие инновации, те же технологии LaGrande, Vanderpool и, например, Foxton . В то же время в процессорах AMD используются ряд собственных уникальных разработок, например, 3 DNow !, не имеющие аналогов в изделиях Intel .
Тем не менее, несмотря на возможные отличия в реализации технологий 64-разрядных вычислений, осуществляемых на базе 32-битных процессоров, выступивший от Microsoft Стив Балмер рассказал о том, что готова бета-версия соответствующей операционной системы, поддерживающей 64-разрядные расширения команд. Он отметил, что, по мнению специалистов Microsoft , реализация новых команд позволит повысить производительность и точность некоторых вычислений.
Эту тему продолжил в своем докладе на том же Форуме IDF Майкл Фистер, старший вице-президент и генеральный менеджер подразделения Intel Enterprise Platforms Group ( Michael Fister , Senior Vice President General Manager, Enterprise Platforms Group).
Фото 2. Выступление Майкла Фистера, старшего вице-президента и генерального менеджера подразделения Intel Enterprise Platforms Group
Он сообщил присутствующим на Форуме IDF , что первым процессором с поддержкой 64-битных команд станет 32-разрядный процессор Intel Xeon , построенный на основе ядра Nocona с использованием технологии 90 нм. Ядро младшей модели этого процессора, обладающей кэш-памятью 1 Мбайт и рассчитанной на шину 800 МГц, будет работать на частоте 3,6 ГГц. В дальнейшем по мере совершенствования полупроводникового техпроцесса будут выпущены более производительные варианты этого процессора, созданного на основе ядра Prescott по технологии 90 нм.
На этом пути будет много производственных трудностей, связанных с используемым масштабом литографии. В настоящее время разработчики оперируют элементами, размеры которых составляют уже нанометры. К сожалению, разработка и выпуск процессоров по новейшим технологиям обеспечивает не только уменьшение масштаба литографии и увеличение числа транзисторов на полупроводниковых кристаллах, но также сопровождается рядом негативных явлений. К таким негативным явлениям относятся значительный рост токов утечки и соответствующее увеличение теплообразования. Однако по убеждению руководителей Intel все проблемы будут успешно решены. В доказательство этому на сайте Intel задолго до выпуска соответствующих моделей процессоров был выпущен документ, описывающий технологию 64-разрядного расширения архитектуры 32-битных процессоров — Extended Memory 64 Technology
Прикладное программирование и 64-битные системы
- IA-64 64-битная микропроцессорная архитектура, разработанная совместно компаниями Intel и Hewlett Packard. Реализована в микропроцессорах Itanium и Itanium 2. Для более подробного знакомства с архитектурой IA-64 можно обратиться к следующим статьям в Wikipedia: "IA-64", "Itanium", "Itanium 2". Архитектуру Itanium поддерживает большое количество производителей серверов: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI и Unisys. Эти производители присоединились к Intel и множеству разработчиков ПО для создания Itanium Solutions Alliance, с целью продвижения архитектуры и ускорения темпов портирования ПО.
- Intel 64 (AMD64 / x86-64 / x64 / EM64T) — данная архитектура представляет собой расширение архитектуры x86 с полной обратной совместимостью. Существует множество вариантов названия данной архитектуры, что приводит к путанице, хотя, по сути, все эти названия обозначают одно и тоже: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e, Intel 64, x64. Более подробно узнать о том, как появилось так много названий, можно в статье из Wikipedia: "X86-64". Процессоры с архитектурой Intel 64 нашли широкое распространение персональных компьютерах. И скорее всего ваш компьютер оснащен именно процессором с данной архитектурой.
Особенности архитектуры EM 64T
Технология 64-разрядного расширения представляет расширение 32-разрядной архитектуры.
В результате модифицированная архитектур а IA-32 подразумевает поддержку 64-разрядной адресации. Расширение включает новые режимы работы и новые расширенные инструкции, обеспечивающие увеличение функциональных возможностей процессоров (Рис. 1).
В результате внедрения нововведений 32-разрядные процессоры с поддержкой технологии 64-разрядного расширения совместимы с существующим программным обеспечением. Они рассчитаны на поддержку как 32 бит адресации, так 64 бит прямой адресации больших объемов оперативной памяти.
Рис. 1. Основные нововведения EM 64T
Процессор с реализацией технологии 64-разрядного расширения полностью поддерживает все существующие особенности IA-32. В дополнение к ним вводится новый рабочий режим, получивший наименование IA-32e. Этот режим ( mode ) включает два подрежима (sub-modes).
Первый sub-mode — режим совместимости, доступный 64-разрядной операционной системе, создан для эксплуатации существующего наследия немодифицированного 32-разрядного программного обеспечения.
Второй sub-mode, названный 64-разрядным режимом, доступен 64-разрядной операционной системе, обеспечивающий работу приложений, написанных специально под 64-битную адресацию пространства памяти.
В 64-разрядном режиме, обеспеченного технологией 64 бит расширения, приложения могут использовать следующие возможности:
· 64 бит линейной адресации,
· 8 новых регистров общего назначения — GPR (general-purpose register),
· 8 новых 128 бит регисторов для потоковых команд SIMD-расширений (SSE, SSE2 и SSE3),
· 64-битные GPR и командные указатели,
64-расширения также добавляют унифицированную адресацию byte - register , быстрый механизм выставления приоритетов прерываний и новый режим относительной адресации.
Итак, процессор с реализацией технологии 64-разрядного расширения может работать либо в режиме IA -32 , либо в режиме IA -32 e .
Традиционный режим IA -32 позволяет процессору работать в защищенном режиме, в режиме реальной адресации, режиме виртуальных 8086.
Режим IA -32 e – это режим процессора, используемый только в среде 64-разрядной операционной системы, позволяет использовать средства и преимущества технологии 64-разрядного расширения.
Приведенная Таблица 2 описывает основные характеристики поддерживаемых режимов IA -32е и отличия между ними.
Статья раскрывает смысл термина «64 бита». В статье кратко рассмотрена история развития 64-битных систем, описаны наиболее распространенные на данный момент 64-битные процессоры архитектуры Intel 64 и 64-битная операционная система Windows.
Читайте также: