Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Лекций.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

Архитектура эвм. Определение. Примеры.

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

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

Примерами различных архитектур могут служить классическая фон-неймановская архитектура (смотри Рисунок 2), многопроцессорная система (смотри Рисунок 3), архитектурное решение параллельного использования нескольких АЛУ (смотри Рисунок 4) и архитектура многомашинной вычислительной системы (смотри Рисунок 5)

Рисунок 3. Архитектура многопроцессорной системы.

АЛУ3

Рисунок 4. Архитектура системы с одним процессором и несколькими арифметико-логическими устройствами.

Рисунок 5. Архитектура многомашинной вычислительной системы.

Задание: проанализируйте приведенные варианты архитектур.

В рамках данного курса изучаются

  • основные компоненты любой вычислительной системы

    • процессор

    • память

    • системная магистраль как элемент, связующий процессор, память и устройства ввода/вывода.

    • устройства ввода/вывода

  • взаимодействие компонент вычислительной системы

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

  • основные термины, принципы работы локальных сетей, сетевые протоколы.

Виды информации и кодирование информации

Данный раздел предназначен для систематизации знаний в области представления и кодирования информации.

Первые вычислительные системы, были предназначены для математических расчетов и имели дело только с числовой информацией. В настоящее время вся представляемая в вычислительных системах информация, а именно:

  • Числа

  • Текст

  • Изображение

  • Звук

  • Видео

представляется в двоичном коде и хранится в памяти вычислительной системы.

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

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

  • Кодирование – преобразование входной информации в форму, воспринимаемую вычислительной системой, т.е. двоичный код.

  • Декодирование – преобразование данных из двоичного кода в форму, понятную человеку.

Кодирование числовой информации

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

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

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

И двоичная и десятичная система счисления являются позиционными.

Механизм формирования числа в любой позиционной системе счисления следующий: имеется набор символов (цифр) для записи числа, упорядоченный по старшинству. В десятичной системе – это 9,8,7,6,5,4,3,2,1,0. Вначале заполняется самый младший разряд, по достижению старшего символа, подключается следующий разряд (смотри Рисунок 6).

Рисунок 6. Формирование числа в 10ой и 2ой система счисления.

Если число в любой (в частности в двоичной) системе счисления записывается как

A= amam-1am-2 ...a1 a0, то преобразование данного числа в десятичную систему счисления выглядит как

A= amam-1am-2 ...a2 a1=am*xm-1+ am-1 *xm-2+am-2*xm-3+…+a2*x1+a1*x0 , где x – основание системы счисления, в которой представление число A.

Например, для двоичной системы

1001012=1*25+0*24+0*23+1*22+0*21+1*20=1*32+0*16+0*8+1*4+0*2+1*1=32+4+1=37

Задание: преобразуйте число из двоичной системы счисления в десятичную: 110002, 1112, 101010102.

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

Например, для того, чтобы 56210 перевести в двоичную систему делим 562/2 (смотри Рисунок 7), получаем целочисленный результат деления и остаток. Ответ собирается как цифры остатка: 1000110010.

Рисунок 7. Перевод число в десятичной системе счисления с двоичную.

Задание: переведите в десятичную систему числа 666, 789 десятичной системы счисления.

Для представления в вычислительной системе какого-либо числа отводится некоторое количество разрядов: количество разрядов определяется как величиной числа, так и особенностями организации ЭВМ.

Задание: сколько разрядов требуется для представления числа 32? 64? 128? 256?

Очевидно, что в одном байте размещается число не более 255. И, при необходимости представления числа большего размера требуется более одного байта (более 8 разрядов). Но для представления чисел 16 и 32 в памяти ЭВМ, несмотря на то, что число 16 требует 5 разрядов, а число 32 – 6 разрядов, отводится одинаковое количество разрядов.

Особенности организации ЭВМ таковы, что для представления каждого числа отводится заранее определенное количество байтов в зависимости от его типа.

Например (смотри Рисунок 8), в языке высокого уровня Паскаль под число, заявленное как тип Byte, отводится только 1 байт, и, как результат, переменная типа Byte не может хранить значение большее 255. Переменная типа Word размером 2 байта может хранить число от 0 до 65535 (2 в 16 степени). Аналогичные типы данных присутствуют в Бейсике.

Название числового типа данных

Длина, байт числового типа данных

Диапазон значений числового типа данных

Byte

1

0..255

ShortInt

1

-128..+127

Word

2

0..65535

Integer

2

-32768..+32767

LongInt

4

-2 147 483 648..+2 147 483 647

Рисунок 8. Целые числовые типы данных в Паскале.

В языке высокого уровня Си Шарп имеется большее разнообразие аналогичных типов данных (смотри Рисунок 9 типы столбца «Без знака»).

Количество байт

Со знаком

Без знака

1

sbyte

byte

2

short

ushort

4

int

uint

8

long

ulong

Рисунок 9. Целые числовые типы данных в Си Шарп.

Задание: определите диапазон представления чисел типа uint и ulong в Си Шарп.

Таким образом, числа 16 и 32 соответствуют типу данных byte и представляются как , занимая каждый 8 разрядов.

Типы byte, integer, ushort, uint, ulong предназначены для представления целых положительных чисел. Как видно из приведенных примеров, целые положительные числа представляются в так называемом прямом коде (полученном в результате преобразования числа из десятичной системы в двоичную) и его величина определяется выделенной разрядной сеткой.

Если представляемое число может быть как положительное, так и отрицательное (то есть имеет знак), под знак требуется отвести один начальный разряд: для положительных чисел он равен «0», для отрицательных «1».

В прямом коде числа -16 и -32 будут представлены как

Таким образом, в одном байте можно представить числа со знаком в диапазоне от -0111 1111 до +0111 1111, то есть от -127 до +127.

Задание: определите диапазон представления чисел типа short, int и long в Си Шарп.

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

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

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

Например, если число 35 представляется в двоичном коде как , то отрицательное число -35 в прямом коде будет иметь вид , в обратном коде , в дополнительном коде .

Причина введения обратного и дополнительного кода – заменить вычитание сложением. Основным арифметическим узлом в АЛУ процессора является сумматор. Разработав логическую схему сумматора, разработчики пришли к выводу, что проще произвести математические преобразования вычитаемых чисел и заменить вычитание сложением числа в обратном или дополнительном код, нежели разрабатывать схему «вычитателя».

Замена вычитания сложением будет продемонстрирована на примере 9-5=4. Предполагается, что под каждое число выделяется один байт.

Преобразуем вычитаемое число 5 как суммируемое -5

Для операции сложения двух чисел представим -5 в обратном коде

Сложим числа 9 и -5ок, используя классические правила сложения чисел

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

Получившийся результат 0000 0100 соответствует числу 4 в десятичной системе счисления.

Задание: произведите расчет с использованием обратного кода: 5-6=? ; 8-3=?

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

Как видно, по результатам суммирования 9 с -5дк также получается единица переноса в 9ый разряд. По правилам суммирования в дополнительном коде эта единица отбрасывается.

Результат также получается также 0000 0100.

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

Дробное число в любой позиционной системе счисления можно представить как:

A= amam-1am-2 ...a2 a1 •a0 a-1 a-2 a-3…

Таким образом, для перевода числа в десятичную систему

A= amam-1am-2 ...a2 a1 •a0 a-1 a-2 a-3…=am*xm-1+ am-1 *xm-2+am-2*xm-3+…+a2*x1+a1*x0+a0*x-1+a-1*x-2+a-2*x-3+…

Где x – основание системы счисления, в которой представление число A.

Для двоичной системы

A= amam-1am-2 ...a2 a1 •a0 a-1 a-2 a-3…=am*2m-1+ am-1 *2-2+am-2*2m-3+…+a2*21+a1*20+a0*2-1+a-1*2-2+a-2*2-3+…

Например, для перевода числа 101,011012 в десятичную систему счисления получаем:

101,011012 = 1*22+0*21+1*20+0*2-1-+1*2-2-+1*2-3-+0*2-4-1*2-5- =1*4+0*2+1*1+0*0,5+1*0,25+1*0,125+0*0,0625+1*0,03125=5,4062510

Задание: Перевести в десятичную систему счисления число 10,1101 двоичной системы счисления.

Целая часть дробного числа переводится по стандартным правилам. Дробная часть переводится по следующей схеме:

  1. дробная часть десятичной дроби умножается на основание системы счисления (на два);

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

  3. оставшаяся дробная часть опять умножается на основание системы счисления (повтор п.1)

  4. повтор п.2

Остановка производится

  • если дробная часть полученного произведения равна нулю или

  • если достигнута требуемая точность вычислений.

Например, перевод в двоичную систему счисления числа 0,123 выглядит следующим образом:

0,123

0,246

0

(0.123*2=0.246: 0 записывается после запятой, 0,246 опять *2)

0,246

0,492

0

0,492

0,984

0

0,984

1,968

1

(0.984*2=1,936: 1 записывается после запятой, 0,968 опять *2)

0,968

1,936

1

0,936

1,872

1

0,872

1,744

1

0,744

1,488

1

0,488

0,976

0

0,976

1,952

1

0,952

1,904

1

0,904

1,808

1

0,808

1,616

1

0,616

1,232

1

0,232

0,464

0

0,464

0,928

0

0,928

1,856

1

Результат перевода 0,123 в двоичную систему счисления число 0.00011111011111001

Обратное преобразование числа 0.00011111011111001 в десятичную систему счисления выглядит как

0,5

0

0

0,25

0

0

0,125

0

0

0,0625

1

0,0625

0,03125

1

0,03125

0,015625

1

0,015625

0,007813

1

0,0078125

0,003906

1

0,00390625

0,001953

0

0

0,000977

1

0,000976563

0,000488

1

0,000488281

0,000244

1

0,000244141

0,000122

1

0,00012207

6,1E-05

1

6,10352E-05

3,05E-05

0

0

1,53E-05

0

0

7,63E-06

1

7,62939E-06

Результат равен сумме правого столбца, то есть 0,122993469. Обратите внимание на расхождение конечного результата с исходным числом.

Задание: объясните причину возникновения погрешности при переводе числа из десятичной системы счисления в двоичную и последующем обратном переводе его в десятичную.

При разработке способа хранения дробных чисел одним из вариантов рассматривался представление чисел с фиксированной запятой: 11,457 или 70901,2 или 0,0000486. В данном варианте число имеет фиксированный вид с фиксированным разделителем. Данный способ был просто в реализации. Недостатком данного способа была опасность, что не все числа уместятся в предполагаемой размерной сетке (например, числа 189675450001,1 и 0,000000010650000099).

Альтернативным вариантом является представление чисел с плавающей запятой: известно, что любое число можно записать в виде A=мантисса*основание системы счисления порядок.

Например: 321,14=3,2114*102=32,114*101=321,14*100=3211,4*10-1=32114,0*10-2.

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

0,a1a2a3…*основание системы счисления порядок

Порядок – степень, в которую возводится основание системы счисления, 0,a1a2a3…- мантисса. Мантисса меньше единицы, a1 отлично от нуля. Примеры нормализованного вида числа:

  • 321,14=0,32114*103

  • 6,321=0,6321*101

  • 0,006321=0,6321*10-2

Нормализованная форма не позволяет хранить число «ноль» (a1, согласно нормализованной форме, должно быть отлично от нуля). Поэтому введено правило, что ноль представляется нулевой мантиссой и нулевым порядком.

Таким образом, для хранения дробного числа, требуется хранить знак числа, мантиссу и порядка числа.

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

Рассмотрим число 5,73, представленное вещественным типом данных с одинарной точностью float (32 бита). В этом случае под порядок отводится 8 бит, под мантиссу 32-1-8=23 бита.

Перевод целой части числа 5,73 в двоичную систему дает число

Перевод дробной части числа 5,73 в двоичную систему дает число

Результат:

Для представления числа вещественным типом данных с одинарной точностью float число нормализируется. Нормализованный вид числа (мантисса) получается сдвигом числа на 2 разряда вправо . Цель подобной нормализации (чтобы первая единица была слева от запятой) – экономия разрядов: стандартизируя обязательную единицу при представлении любого числа единица слева подразумевается, но не записывается. Мантисса будет записана как .

Порядок числа равен 2 (сдвиг на два разряда). Но, чтобы не отводить бит для представления порядка, при непосредственной записи числа порядок записывается со смещением. При восьми битах (тип float) на порядок числа максимально-возможный порядок равен 127 (число с учетом знака порядка ). Если не вводить бит знака порядка, то порядок записывается со смещением 127. Для данного числа порядок (равный 2) запишется как 127+2=129= .

В результате число 5, 73 будет представлено в памяти как

Задание: Самостоятельно определите представление числа 123,625 и 0,318359375 как вещественный тип данных с одинарной точностью float (32 бита).

Для проверки приведены ответы

Задание: объясните причины (минимум две), по которым для хранения дробных чисел требуется большее количество разрядов, чем для целых.

Длина, байт числового типа данных

Название числового типа данных

Количество значащих цифр числового типа данных

Диапазон десятичного порядка числового типа данных

4

Single

7..8

-45..+38

6

Real

11..12

-39..+38

8

Double

15..16

-324..+308

10

Extended

19..20

-4951..+4932

8

Comp

19 . .20

-2*1063 +1..+2*1063 -1

Рисунок 10. Вещественные числовые типы данных в Паскале.

Тип С#

Порядок (в битах)

Мантисса (в битах)

Диапазон представления чисел

float

8

24

-3.402823E+38 -3.402823E+38

double

11

53

1.79769313486232E+308 -1.79769313486232Е+308

Рисунок 11. Вещественные числовые типы данных в Си Шарп.

На рисунках (смотри Рисунок 10 и Рисунок 11) приведены типы данных вещественных чисел в Паскале и в Си Шарп.

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

Одним из способов определить производительность процессора является определение скорости выполнения компьютером операций с числами, представленными в форме с плавающей запятой. Данная скорость измеряется в мегафлопcах (от англ. FLOPS — число операций с плавающей запятой в секунду) , гигафлопcах и так далее.

Задание: почему именно флопс выбран в качестве меры скорости работы?