Арифметические основы вычислительных машин

Автор работы: Пользователь скрыл имя, 04 Сентября 2014 в 13:43, реферат

Описание работы

Все компьютеры используют для хранения информации двоичную систему. Это значит, что каждый элемент хранимой информации может иметь только два состояния. Эти состояния обозначаются как «включен» и «выключен», «истина» и «ложь», или «1» и «0». Как правило, компьютер использует эти значения в виде уровней напряжения.
Из-за двоичного представления данных компьютеры используют в своих вычислениях арифметику с двоичным основанием. Используя простейшие числа 0 и 1, можно выполнять очень сложные вычисления.

Файлы: 1 файл

Архитектура компьютера и принципы его работы.doc

— 1.02 Мб (Скачать файл)


Двухуровневый кэш: Большинство современных систем имеют как минимум два уровня кэш-памяти. (См. рис. ..) Первый, наиболее «близкий» к процессору (условно обозначаемый Level 1 или сокращенно L1). Объем L1-кэша весьма невелик и редко превышает 32 Кб, поэтому он должен хранить только самые-самые необходимые данные. Зато на обработку ячейки из кэша уходит всего один такт процессора.


Рисунок Структура двухуровневого кэша

 

Между кэшем первого уровня и оперативной памятью расположен кэш второго уровня (условно обозначаемый Level 2 или сокращенно L2). Он работает на пониженной тактовой частоте. Объем L2 кэша составляет сотни килобайт, а зачастую достигает и нескольких мегабайт! Между тем, скорость доступа к нему относительно невелика (хотя, естественно, многократно превосходит скорость доступа к основной памяти).

Intel Pentium II – процессор x86-совместимой архитектуры Intel P6, анонсированный в 1997 году. Ядро Pentium II представляет собой модифицированное ядро P6 (впервые использованное в процессорах Pentium Pro). Основными отличиями от предшественника являются увеличенный с 16 до 32 Кб кэш первого уровня и наличие блока инструкций MMX (появившихся немногим ранее в Pentium MMX).

Intel Pentium III выпущен в 1999 году. Ядро Pentium III представляет собой модифицированное ядро, которое использовалось в процессорах Pentium II. По сравнению с предшественником расширен набор команд (добавлен набор инструкций SSE).

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

SSE включает  в архитектуру процессора восемь 128-битных регистров.

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

Введем еще одно понятие Celeron – это большое семейство бюджетных x86-совместимых процессоров компании Intel. Семейство Celeron предназначалось для построения недорогих компьютеров для дома и офиса. Одной из причин невысокой цены является их более низкая, по отношению к старшим процессорам, производительность, что достигается двумя основными методами: искусственным снижением частоты шины процессора и блокировкой части кэш-памяти 2 уровня.

Процессоры семейства Celeron строятся на основе Pentium II, Pentium III, Pentium 4, Pentium M и Core 2 Duo.

 

Pentium 4 – одноядерный x86-совместимый микропроцессор компании Intel, представленный в 2000 году, ставший первым микропроцессором, в основе которого лежала принципиально новая по сравнению с предшественниками архитектура седьмого поколения (по классификации Intel) — NetBurst. Помимо различных вариантов Pentium 4, к процессорам архитектуры NetBurst относятся двухъядерные процессоры Pentium D. Кроме того, часть процессоров Celeron, предназначенных для систем нижнего ценового уровня, представляет собой Pentium 4 с частично отключённым кэшем второго уровня.

Архитектура, лежащая в основе процессоров Pentium 4, разрабатывалась, в первую очередь, с целью достижения высоких тактовых частот процессоров. Она не является развитием архитектуры P6, использовавшейся в процессорах Pentium III, а представляет собой принципиально новую по сравнению с предшественниками архитектуру. Характерными особенностями архитектуры NetBurst являются гиперконвейеризация. Поясним сущность этого понятия.

Как мы уже говорили ранее, чем примитивнее команды, тем на большей частоте способно работать исполняющее их ядро. Однако элементы конвейера также подпадают под это правило: чем проще одна ступень конвейера тем с большей скоростью он может «продвигаться». Но простая ступень может выполнять только простое действие, следовательно, количество их должно возрасти. Поэтому было принято кардинальное решение: увеличить длину конвейера 20 ступеней! При этом многие части процессора, ранее входившие в конвейер (к примеру, блок декодирования команд), были вообще вынесены за его пределы и работают теперь как бы сами по себе. Данная архитектура получила название гиперконвейерной (hyperpipelined). Естественно, возможная частота работы возросла.

Описанный поход имеет очень серьезную проблему – возрастает цена ошибки предсказания перехода (это называется штраф). Что происходит, если предсказатель ошибся? А происходит следующее – весь конвейер приходится очищать от ненужных команд и в срочном порядке начинать готовить к исполнению новые, находящиеся еще в памяти и совсем по другому адресу. Естественно, ядро процессора в это время просто исполняет холостой цикл, так как ни подготовленных данных, ни команд к нему не поступает. Таким образом, основная проблема гиперконвейерной архитектуры следующая – чем длиннее конвейер, тем больше работы идет насмарку и тем дольше придется ждать, пока он будет «вычищен» от непонадобившихся команд и снова заполнен нужными.

Рассмотрим архитектуру процессора седьмого поколения более детально (См. рис….). Чтобы понять, как это работает, опишем последовательность работы:

  1. Предварительно инструкции x86 поступают в кэш-память второго уровня. Обмен процессора с системной шиной осуществляется с помощью 64-разрядной двунаправленной шины данных.
  2. Выполнение инструкции начинается с её выборки и декодирования. Блок предвыборки инструкций осуществляет предварительную выборку на основании информации полученной от блока трассировки и предсказания ветвлений.
  3. Декодер инструкций осуществляет преобразование CISC-инструкций x86 в последовательность RISC-микроопераций (или иначе микрокоманд). Большинство x86 инструкций декодируются примерно в две или три микрокоманды. Но встречаются и такие инструкции, которые декодируются в десятки микрокоманд. При декодировании сложные команды заменяются на последовательности микроопераций, которые хранятся в памяти микропрограмм (ПЗУ микрокода). Если в потоке команд оказывается команда условного перехода (ветвления программы), то включается механизм предсказания ветвления, который формирует адрес следующей выбираемой команды до того, как будет определено условие выполнения перехода.
  4. После дешифровки микрооперации поступают в кэш память микрокоманд (он же кэш трассировки, Trace cache), где хранятся в упорядоченном виде. Концепция кэш трассировки, состоит в том, чтобы сохранять в кэше инструкций первого уровня не те команды, которые считаны из памяти, а уже декодированные последовательности. Таким образом, если некая x86-команда исполняется повторно, и она всё ещё находится в L1I, декодеру процессора не нужно снова преобразовывать её в последовательность команд «внутреннего кода», так как кэш память микрокоманд содержит данную последовательность в уже декодированном виде.
  5. После формирования потоков микрокоманд производится выделение регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется блоком распределения регистров, который выделяет для каждого указанного в команде логического регистра один из 128 физических регистров, входящих в состав блоков регистров замещения (БРЗ, в некоторых источниках этот блок называется регистровый файл Register File).
  6. После подготовки процессора к выполнению микроопераций (резервирования регистров), они помещаются в очередь микроопераций.
  7. Микрокоманды, находящиеся в очереди должны быть подготовлены к исполнению, в частности необходимо прочитать операнды, хранящиеся в памяти Адреса операндов, выбираемых из памяти, вычисляются блоком формирования адреса (БФА), который реализует интерфейс с кэш-памятью данных 1-го уровня (L1). При выборке операнда из памяти производится обращение к кэш памяти данных. За один такт производится выборка операндов для двух команд. Кэш-память данных первого уровня в свою очередь соединяется с кэшем второго уровня (L2) шиной шириной 256 бит.


Рисунок  Архитектура процессора Pentium 4.

  1. Планировщики микроопераций (отдельно для целочисленных инструкций и для инструкций с плавающей точкой) определяют готовность микроопераций, находящихся в очередях, к исполнению и направляют их на выполнение в соответствующие исполнительные блоки. Планировщик выбирает микрокоманды из очереди не в порядке их поступления, а по мере готовности соответствующих операндов и исполнительных устройств. В результате команды, поступившие позже, могут быть выполнены до ранее выбранных команд. При этом реализуется одновременное выполнение нескольких микрокоманд в параллельно работающих исполнительных устройствах.
  2. Следующим шагом выполняется чтение операндов из регистров блока регистров замещения (регистрового файла). Напоминаем что, регистровый файл обеспечивает хранение результатов операций.
  3. Исполнительные устройства, т.е. арифметико-логические устройства (ALU) или блоки обработки чисел с плавающей запятой (FP / MMX / SSE ) выполняют микрокоманду.
  4. После выполнения микроопераций происходит проверка корректности результатов. Если результаты выполнения микрооперации некорректны (например, был неверно предсказан переход), эта микрооперация или отправляется на повторное исполнение, или потребуется перезагрузка конвейера.

 

Многоядерные процессоры — процессоры, содержащие два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.

Во всех существующих на сегодняшний день многоядерных процессорах кэш-память первого уровня у каждого ядра своя, а кэш 2-го уровня существует в нескольких вариантах:

  • разделяемый – кэш расположен на одном с обеими ядрами кристалле и доступен каждому из них в полном объеме. Используется в процессорах семейств Intel Core.
  • индивидуальный – отдельные кэши равного объема, интегрированные в каждое из ядер. Обмен данными из кэшей L2 между ядрами осуществляется через контроллер памяти.

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

На сегодняшний день (2009) основными производителями процессоров — Intel и AMD дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности. Уже освоено производство 4-ядерных процессоров для домашних компьютеров, а также 6-ядерных в серверных системах.

 

Intel Core 2 — восьмое выпущенное корпорацией Intel поколение микропроцессоров архитектуры x86, основанное на совершенно новой процессорной архитектуре, которая называется Intel Core. Это потомок архитектуры Intel P6 на которой, начиная с процессора Pentium Pro, построено большинство микропроцессоров Intel, исключая процессоры с архитектурой NetBurst. Первые процессоры Core 2 были представлены в 2006 году. Они делятся на модели Solo (одноядерные), Duo (двухъядерные), Quad (четырёхъядерные) и Extreme (двух- или четырёхъядерные с повышеной частотой и разблокированным множителем).

В отличие от процессоров архитектуры NetBurst (Pentium 4), в архитектуре Core 2 ставка делается не на повышение тактовой частоты, а на улучшение других параметров процессоров, таких как кэш, эффективность и количество ядер. Рассеиваемая мощность этих процессоров значительно ниже, чем у Pentium 4.

Информации по этим процессорам  Intel предоставляет недостаточно, поэтому разобрать их архитектуру не представляется возможным.

Intel Core i7 — является преемником семейства Intel Core 2. Данная микроархитектура содержит ряд новых возможностей. Вот лишь некоторые из них, по сравнению с Core 2:

  • Процессорная шина FSB (см. ниже) заменена на новую шину QuickPath (QPI), производительность которой составляет до 32 гигабайт в секунду.
  • Контроллер памяти находится в самом процессоре, не в отдельном чипсете. Таким образом, процессор имеeт прямой доступ к памяти.
  • Core i7 имеет 8-ми мегабайтный кэш третьего уровня (L3) .

 

 

Шины

 

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

Последовательные и параллельные шины

По способу передачи сигнала все шины можно разделить на последовательные и параллельные.

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

  • Линии для обмена данными (шина данных);
  • Линии для адресации данных (шина адреса);
  • Линии для управления данными (шина управления);

Для каждой из этих шин вводится понятие ширины. В параллельных шинах понятие «ширина шины» соответствует её разрядности – количеству сигнальных линий, или, другими словами, количеству одновременно передаваемых («выставляемых на шину») битов информации. Сигнал на каждой линии может принимать два значения 0 и 1 (линия с двумя состояниями). Сигналом для старта и завершения цикла приёма/передачи данных служит внешний синхросигнал.

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

На рис … показана в приближенном виде передача данных по шине шириной 8 разрядов (т.е. шина имеет 8 линий для передачи данных и одну для синхросигнала). Понятно, что за один цикл по 8-разрядной шине может передаваться один байт.

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

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

Еще раз обсудим особенности каждой из видов шин (линий), перечисленных выше.

Шина данных – это основная шина, по которой собственно и происходит передача информации. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена. Скорость передачи данных (она же пропускная способность) высчитывается по формуле:

скорость передачи данных = тактовая частота * разрядность * [2..4]

Коэффициент в квадратных скобках показывает, как часто за один период синхросигнала происходит передача данных. Если передача данных по шине происходит только один раз за период (по переднему фронту), коэффициент будет равен 1, если два раза (по переднему и заднему фронтам) коэффициент будет равен 2. Если четыре раза – коэффициент 4.

Полученное число не является реальным. В жизни на шины влияет куча всевозможных факторов: неэффективная проводимость материалов, помехи, недостатки конструкции и сборки а также многое другое. По некоторым данным, разность между теоретической скоростью передачи данных и практической может составлять до 25%.

                             

0

 

0

1

0

1

 

Будет передано

                             

1

 

1

0

0

0

 

1101011

10101001

00000101

10011110

                             

2

 

1

1

0

0

         
                             

3

 

0

0

0

1

         
                             

4

 

1

1

0

1

         
                             

5

 

0

0

1

1

         
                             

6

 

1

0

0

1

         
                             

7

 

1

1

1

0

         
                             
                             

Синхросигнал

                           
                             
                             

Информация о работе Арифметические основы вычислительных машин