Скачиваний:
170
Добавлен:
15.04.2023
Размер:
29.36 Mб
Скачать

16. Особенности процессоров Soft-Core.

17. Основные понятия в процессорной архитектуре. Набор команд. Соглашения о наборе команд.

Архитектура процессора состоит из набора команд процессора.

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

1.Набор команд

2.Соглашение о наборе команд

3.Переходы

4.Прерывания и исключения

Набор команд для большинства процессоров основан на наборе регистров для хранения операндов и адресов.

Размер набора регистров варьируется от 8 до 64 слов и более, каждое слово состоит из 32-64 бит.

Обычно также доступен дополнительный набор регистров с плавающей запятой (32-128 бит).

Типичный набор команд определяет слово состояния программы, которое состоит из различных типов информации о состоянии управления, включая коды условий (СС), установленные инструкцией.

18. Машинный язык.

Машинный язык- это совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнять машина и др. Каждый компьютер имеет свой машинный язык.

Машинный код - последовательность чисел, которые представляются как совокупность двух цифр: 0 и 1.

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

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

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

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

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

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

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

Машинные и машинно-ориентированные языки – этоязыки низкогоуровня, требующие указания мелких деталей процесса обработки данных.

Их особенности.

Во-первых, машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1.

Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процессора, типа: переслать число в ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции.

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

Языки программирования высокого уровня имеют следующие достоинства:

  • алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;

  • набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;

  • конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;

  • используется аппарат переменных и действия с ними;

  • поддерживается широкий набор типов данных.

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

19. Прерывания и исключения.

20. Микроархитектура.

Микроархитектура: аппаратная реализация архитектуры в виде схемы.

Процессор: Тракт данных: функциональные блоки обработки и передачи данных (арифметико-логические устройства, регистровые файлы, мультиплексоры и т.д.); Устройство управления: формирует управляющие сигналы для функциональных блоков.

21. Конфликты конвейера. Разрешение конфликтов.

Конфликты:

Разрешение конфликтов:

Конфликты управления:

Предсказания переходов:

Хз надо или нет, пусть будет:

22. Многопоточность и мультипроцессорность.

Потоки: определения:

Многопроцессорность:

23. Soft и hard процессоры: процессор в качестве IP.

24. Целые двоичные числа со знаком.

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

Каждый двоичный разряд представляет собой степень числа 2. Все разряды числа являются значащими. С помощью «-разрядного двоичного кода можно записать целые числа без знака в диапазоне от 0 до 2" - 1. Посредством 4-разрядного кода, например, можно записать 16 чисел в диапазоне от 0 до 15.

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

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

Диапазон чисел, которые можно представить в прямом «-разрядном коде составляет от - 1) до (2,,_1 - 1), а число нуль может быть положительным и отрицательным.

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

Примеры записи знаковых 4-разрядных чисел в прямом коде:

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

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

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

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

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

Десятичные значения 4-разрядных чисел без знака показаны на диаграмме слева внутри круга. Для чисел без знака минимальное

Рис. 5.2. Круговые диаграммы, поясняющие процесс счета

число равно нулю, максимальное равно 15, а количество наборов (вариантов) кодов составляет 16.

Результат вычислений должен соответствовать диапазону от О до 15. При переходе за пределы этого диапазона происходит переполнение разрядной сетки и возникает ошибка. В вычислительных устройствах при переходе от 15 к 0 или от 0 к 15 формируется признак переноса «С» (от слова carry — перенос).

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

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

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

Для знаковых 4-разрядных двоичных чисел в дополнительном коде имеем 16 различных значений кодов, при этом максимальное число равно +7, а минимальное число равно -8. Переполнение разрядной сетки при использовании дополнительного кода возникает при переходе границы между максимальным положительным числом (+7) и минимальным числом (-8). В вычислительных системах в этой ситуации формируют признак переполнения OV(от слова overflow — переполнение).

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

Для вычисления дополнительного кода обычно используют два способа.

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

Пример. Вычислим дополнительный код 4-разрядного числа -1.

Абсолютная величина числа 0001

Обратный код 1110

Дополнительный код 1111

Второй способ основан на использовании правила: модуль отрицательного числа Х и дополнительный код Хлк в сумме равны 2", где п — количество разрядов. Это правило позволяет записать два выражения, позволяющие определить дополнительный код для заданного модуля числа, и наоборот, вычислить модуль числа по заданному дополнительному коду:

Эти вычисления целесообразно выполнять в десятичной системе, а затем переводить результат в двоичную систему.

Соседние файлы в предмете Основы разработки систем на кристалле