Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2 Узлы современного компьютера .docx
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
201 Кб
Скачать
☆

Многоуровневая компьютерная организация

Объекты на уровне 0 называются вентилями. Вентили состоят из аналоговых компонентов (транзисторы) и смоделированы как цифровые средства, на входе у которых цифровые сигналы (или набор 0 и 1), а на выходе – результат простых функций («И» или «ИЛИ»). Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти, объединенные в группы, например, по 16,32 или 64, формируют регистры.

Уровень 1. Микроархитектурный уровень, представляет собой локальную память (совокупность регистров) и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт, по которому поступают данные.

Уровень 2. Уровень архитектуры команд. Этот уровень включает набор машинных команд, которые выполняются микропрограммой-интерпретатором или аппаратным обеспечением.

Уровень 3. Уровень операционной системы. Включает набор новых команд, обеспечивает собственную организацию памяти, способность выполнять две и более программ одновременно.

Нижние три уровня конструируются не для того, чтобы с ними работал обычный программист. Они изначально предназначены для работы интерпретаторов и трансляторов, поддерживающих более высокие уровни. Эти трансляторы и интерпретаторы составляются так называемыми системными программистами, которые специализируются на разработке и построении новых виртуальных машин. Уровни с четвертого и выше предназначены для прикладных программистов, решающих конкретные задачи.

Машинные языки уровней 1,2 и 3 — цифровые. Программы, написанные на этих языках, состоят из длинных рядов цифр, которые удобны для компьютеров, но совершенно неудобны для людей. Начиная с четвертого уровня, языки содержат слова и сокращения, понятные человеку.

Уровень 4. Уровень языка ассемблера. Представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет трансляцию, называется ассемблером.

Уровень 5. Язык высокого уровня. Обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — BASIC, С, C++, Java, LISP и Prolog.

Программы, написанные на этих языках, транслируются на нижние уровни . Трансляторы, которые обрабатывают эти программы, называются компиляторами или иногда используется метод интерпретации. Например, программы на языке Java обычно интерпретируются.

Интерпретатор берёт очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет. Только после того как текущий оператор успешно выполнен, интерпретатор перейдёт к следующему. Если один и тот же оператор будет выполняться в программе многократно, интерпретатор будет выполнять его так как, как будто встретил впервые. Вследствие этого программы, в которых требуется осуществить большой объём вычислений, будут выполняться медленно. 

Компиляторы полностью обрабатывают весь текст программы. Они просматривают его в поиске синтаксических ошибок (иногда несколько раз), производят определенный смысловой анализ, а затем автоматически переводят (транслируют) на машинный язык - генерируют машинный код.

Пользователь – представительский уровень

Понятие «архитектуры» применительно к процессорам несколько двойственно: под ним может пониматься как совместимость с неким единым набором команд, так и совокупность аппаратных решений, присущих определённой достаточно широкой группе процессоров.  

Известны процессоры с расширенной и укороченной системой команд, именуемые соответственно CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). Для CISC-процессоров характерны большое число машинных команд различных форматов, по некоторым командам выполняются довольно объемные вычисления, эквивалентные операторам языков программирования. Такие команды занимают много тактов. Архитектура CISC используется в микропроцессорах компаний Intel и AMD

В процессорах архитектуры RISC, появившейся в 1980 г., длинные команды заменяются совокупностями коротких команд, выполнение каждой из которых происходит за малое число тактов компьютера, чаще всего за один такт. Упрощение обработки команд достигается также за счет их фиксированного размера и формата. Состав системы команд должен быть "удобен" для компиляции операторов языков высокого уровня. Архитектуру RISC имеют многие микропроцессоры, разработанные для рабочих станций, например, микропроцессоры SPARC компании Sun Microsystems, микропроцессоры Power6 компаний IBM и Apple.

 Общая структура персонального компьютера с подсоединенными периферийными устройствами

Физическим управлением любого устройства, передачей информации через порт и выставлением некоторых сигналов на магистрали занимается контроллер устройства. Контроллер может управлять несколькими устройствами, связываясь с их контроллерами посредством специальных шин ввода-вывода (шина IDE, шина SCSI и т. д.). Для того, чтобы записать информацию в память или прочитать ее из памяти, необходим  – контроллер прямого доступа к памяти.

Современные процессоры AMD поддерживают такие технологии, как технология виртуализации AMD Virtualization, технология антивирусной защиты NX Bit, технология 64-разрядных вычислений AMD64 и технология энергосбережения AMD Cool ‘n’ Quiet

Процессорная технология защиты от вирусов. Сегодня она реализована во всех новых процессорах Intel и AMD. Суть этой технологии состоит в аппаратном обеспечении антивирусной защиты, заключается в перехватывании зловредного кода и сведении к минимуму опасности умышленного переполнения буфера (Buffer Overflow).

Переполнение буфера (buffer overflows) - название самой распространенной уязвимости в области безопасности программного обеспечения. Первая атака с применением данной уязвимости использовалась в вирусе-черве Морриса в 1988 году. Переполнение буфера является наиболее популярным способом взлома компьютерных систем, так как большинство языков высокого уровня используют технологию стекового кадра — размещение данных в стеке процесса, смешивая данные программы с управляющими данными (в том числе адреса начала стекового кадра и адреса возврата из исполняемой функции).

Программа, которая использует уязвимость для разрушения защиты другой программы, называется эксплойтом. Эксплойт переполнения буфера вводит специально изготовленные данные, выполняющие эловредный  машинный код  с правами учетной записи основной программы, и изменяет данные, следующие за этим буфером в памяти.

Майкрософт разработала механизм защиты стека, предназначенный для Windows Server 2003. Стек помечается с помощью так называемых «осведомителей» (canary), целостность которых затем проверяется. Если «осведомитель» был изменён, значит, стек повреждён.

64-разрядные вычисления – производительность шины позволила значительно увеличить кэш (с 0,512-4ГГбайт до 8-192), увеличение точности вычислений и ускорение многозадачных процессов.

Многоядерность – быстродействие + многозадачность при наличии специализированного ПО.

Энергопотребление – автоматическое отключение не работающих потребителей, автоматическое снижение частоты, режим гибернации - ускоренного усыпления и пробуждения. Поиски замены кремния (нитрид галлия) и применения оптических технологий – замена электрона фотоном.

 развивает линию процессоров Itanium 2, Xeon и Pentium.В ноябре 2008 г. компания Intel приступила к поставкам процессоров Intel Core i7 (Nehalem). Это четырехъядерные чипы Core i7 920 , 940, 965 Extreme Edition с частотами 2,66 — 3,2 ГГц, выполнены по 45-нанометровой (последние данные – 32 нм) технологии. Цены от 949 до 3699 долларов. Тепловыделение 130 Вт. Новинкой является механизм защиты от перегрева, автоматически уменьшающий частоту при превышении выделяемой мощностью или током определенных ограничений.

Компания   в 2009 г. выпускает шестиядерные процессоры Opteron (прежнее кодовое название Istanbul). Например, Opteron 8435 по цене $2649. 2.6 ГГц, 75 Вт, частота шины достигает 4,8 ГГц. На каждое ядро приходится по 128 Кб кэша первого уровня и по 512 Кб кэша второго уровня, кэш третьего уровня объёмом 6 Мб делится между шестью ядрами. Напряжение 1.3 В. Цены на другие шестиядерные процессоры ниже, например, Opteron 2427 (2.2 ГГц) — $455.

По технологии 45 нм выпускаются также четырехядерные процессоры серий Phenom II X4 800 и 900 (Deneb) и трехядерные Phenom II X3 700 (Heka).

Разработан ряд процессоров для настольных компьютеров. Примером двухядерного процессора служит Athlon II X2 250, 2 х 1 Мб кэша второго уровня, частота 3.0 ГГц, мощность 65 Вт, 45 нм проектные нормы, цена $87. По цене $102 выпускается AMD Phenom II X2 550, 3,1 ГГц, переведенный на 45 нм технологию. Начинаются поставки процессоров Neo для тонких и легких ноутбуков. Частота 1,6 ГГц, технология 65 нм, в процессоре два ядра. 

AMD разработан графический процессор, поддерживающий Microsoft DirectX 11(специальный графический интерфейс для взаимодействия операционной системы и приложений с драйверами видеокарты).

В 2011 году AMD планирует выпуск по 32 нм технологии процессоров серий Opteron 6000 и Opteron 4000 с числом ядер от 12 до 16.

В микропроцессорах   для построения серверов насчитывается от 2 до 16 ядер. Процессор Power6 выполнен по 65 нм КМОП технологии, работает на частоте 4,7 ГГц, быстродействие оценивается в 14-18 Gflop/s на одно ядро (в чипе может быть до 8 ядер и тогда быстродействие достигает 120 Gflop/s), при потреблении примерно такого же количества энергии, как в процессоре POWER5. Чипы POWER6 имеют кэш-память объемом 8 Мб (вчетверо больше, чем у POWER5). Микропроцессоры POWER6 рассчитаны на пониженное напряжение питания. Кроме того, в них реализованы специальные меры для понижения энергопотребления и тепловыделения.

Видеокарта включает видеопамять (обычный объем от 2 до 8 Мбайт) и видеопроцессор, используемый для разгрузки центрального процессора при выполнении определенных графических операций и декодирования данных, например, при вводе из видеокамеры.

Графический процессор предназначен для хранения, обработки и передачи на монитор данных о выводимом на экран изображении. ГП существенно повышает производительность компьютера, освобождая центральный процессор (ЦП) от обработки графических данных. По своей сложности современные ГП могут превосходить ЦП. Графические процессоры имеют конвейерную архитектуру. В классическом варианте различают вершинные и пиксельные процессоры — конвейеры.

Компания NVIDIA предложила применять унифицированные графические процессоры, которые могли бы выполнять как вершинные, так и пиксельные шейдеры. Унифицированные процессоры  NVIDIA GeForce 8800 могут выполнять также обычные расчеты и представляют собой скалярные процессоры общего назначения для обработки данных с плавающей запятой. Процессор распределения задач способен распараллеливать шейдерный код на сотни потоков (до 512 потоков), увеличивая эффективность выполнения вершинных и пиксельных операций. Cовременные видеокарты используют разную ширину шины: от 64 до 512 бит, в зависимости от ценового диапазона и времени выпуска конкретной модели GPU.

В 2006-2007 компания NVIDIA произвела революцию в GPGPU и ускорила вычисления благодаря новой архитектуре массивно параллельных вычислений CUDA.

CUDA — платформа, а не язык программирования, не среда программирования, платформа, которая позволяет использовать мощности графических процессоров (GPU) для вычислений общего назначения. Графический конвейер остался тем же самым, но разработчики добавили программируемость в определенные места этого конвейера. Т.е. возможность заменять участки крнвейера на программы.

Появилась возможность использовать GPU не только для графики, но и для любых вычислений. Архитектура графических процессоров (GPGPU, универсальные расчеты средствами видеокарты) называется SIMT — (single instruction, multiple threads, одна инструкция — множество потоков). http://habrahabr.ru/blogs/hi/117021/

В результате:

1) Параллельно могут выполняться сотни операций над сотнями ячеек данных. 2) В каждом потоке выполняется произвольная последовательность команд.3) Возможны ветвления. При этом, правда, параллельно могут выполняться только нити с одной и той же последовательностью операций.