Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yedelev_megapack_VT49V / Интерфейсы периферийных устройств (черновик).doc
Скачиваний:
28
Добавлен:
15.02.2016
Размер:
2.25 Mб
Скачать

Представление числовой и символьной информации в ЭВМ.

Системы счисления.

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

Позиционная система счисления определяется целым числом b>1, называемым основанием системы счисления. Система счисления с основаниемbтакже называетсяb‑ричной (в частности, двоичной, троичной, десятичной и т. п.).

Целое число без знака xвb‑ричной системе счисления представляется в виде конечной линейной комбинации степеней числаb:

, где ak– это целые числа, называемые цифрами, удовлетворяющие неравенству0 ≤ ak ≤ b-1

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

x = an‑1an‑2…a0b

Прямой, обратный и дополнительный коды.

Прямой код

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

Обратный код

Запись положительных чисел в обратном коде полностью совпадает записью их в прямом коде. Если число отрицательное, то все цифровые разряды числа инвертируются. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.

Недостатки прямых и обратных кодов:

  • В прямых и обратных двоичных кодах имеются два кода числа 0: «положительный нуль» (00000000) и «отрицательный нуль» (прямой код – 10000000, обратный код – 11111111). Это приводит к некоторому усложнению операции суммирования.

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

Запись положительных чисел в дополнительном коде полностью совпадает записью их в прямом коде. Если число отрицательное, то все цифровые разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.

Нумерация бит в байте. Нумерация байт (Big‑Endian, Little‑Endian, Middle‑Endian).

Нумерация бит

Биты нумеруются справа налево от 0 до 7 при этом правые разряды (с меньшими номерами) называются младшими, а левые старшими.

Порядок от старшего к младшему (BigEndian)

Порядок от старшего к младшему или (англ. big‑endian, дословно: «тупоконечный»):An…A0, запись начинается со старшего и заканчивается младшим. Этот порядок является стандартным для протоколов TCP/IP, он используется в заголовках пакетов данных и во многих протоколах более высокого уровня, разработанных для использования поверх TCP/IP. Поэтому, порядок байтов от старшего к младшему часто называют сетевым порядком байтов (англ. network byte order). Этот порядок байтов используется процессорами IBM 360/370/390, Motorola 68000, SPARC (отсюда третье название — порядок байтов Motorola, Motorola byte order).

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

Порядок байтов от старшего к младшему применяется во многих форматах файлов — например, PNG, FLV, EBML.

Порядок от младшего к старшему (LittleEndian)

Порядок от младшего к старшему или (англ. little‑endian, дословно: «остроконечный»):A0…An, запись начинается с младшего и заканчивается старшим. Этот порядок записи принят в памяти персональных компьютеров с x86‑процессорами, в связи с чем иногда его называют интеловский порядок байтов (по названию фирмы‑создателя архитектуры x86). В некоторых кругах используется название англ. VAX order, например, в документации Perl.

Смешанный порядок (Middle‑Endian)

Смешанный порядок байтов (англ. middle‑endian) иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.

Единицы измерения информации.

Бит (англ. binary digit; также игра слов: англ. bit – немного) (один двоичный разряд в двоичной системе счисления) – одна из самых известных единиц измерения количества информации.

Ниббл (англ. nibble, nybble), или полубайт – единица измерения информации, равная четырём двоичным разрядам (битам), удобна тем, что представима одной шестнадцатеричной цифрой, то есть является одним шестнадцатеричным разрядом.

Байт (англ. byte, представляет собой сокращение словосочетания BinarY TErm -«двоичный терм») – единица хранения и обработки цифровой информации. В современных вычислительных системах байт считается равным восьми битам, в этом случае он может принимать одно из2= 256различных значений (состояний, кодов). Однако в истории компьютеров известны решения с другим размером байта, например 6 битов, 36 битов в PDP-10. Поэтому иногда в компьютерных стандартах и официальных документах для однозначного обозначения 8-битного слова используется термин «октет» (лат. octet). В большинстве вычислительных архитектур байт - это минимальный независимо адресуемый набор данных.

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

  • разрядность данных, обрабатываемых процессором;

  • разрядность адресуемых данных (разрядность шины данных);

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

  • максимальный объём оперативной памяти, напрямую адресуемой процессором.

Десятичные и двоичные кратные приставки.

Двоичные приставки – приставки перед единицами измерения, обозначающие их умножение на 210 = 1024. Благодаря близости чисел 1024 и 1000 двоичные приставки построены по аналогии со стандартными десятичными приставками СИ. Каждая двоичная приставка получается заменой последнего слога соответствующей десятичной приставки на би (от лат. bīnārius-двоичный). Двоичные приставки используются для образования единиц измерения информации, кратных битам и байтам. Приставки были введены Международной электротехнической комиссией (МЭК) в марте 1999 года. Выглядят они следующим образом:

Двоичная

приставка

Аналогичная

десятичная

приставка

Сокращения

по МЭК для

битов, байтов

Значение, на которое

умножается исходная

величина

киби/kibi (210)

кило (103)

Кибит, КиБ/KiB

210= 1 024

меби/mebi (220)

мега (106)

Мибит, МиБ/MiB

220= 1 048 576

гиби/gibi (230)

гига (109)

Гибит, ГиБ/GiB

230= 1 073 741 824

теби/tebi (240)

тера (1012)

Тибит, ТиБ/TiB

240= 1 099 511 627 776

пеби/pebi (250)

пета (1015)

Пибит, ПиБ/PiB

250= 1 125 899 906 842 624

эксби/exbi (260)

экса (1018)

Эибит, ЭиБ/EiB

260= 1 152 921 504 606 846 976

зеби/zebi (270)

зетта (1021)

Зибит, ЗиБ/ZiB

270= 1 180 591 620 717 411 303 424

йоби/yobi (280)

йотта (1024)

Йибит, ЙиБ/YiB

280= 1 208 925 819 614 629 174 706 176

Представление текстовой информации в ЭВМ. Кодировки ASCII и Unicode.

Для представления текстовой информации в ЭВМ графическому отображению каждого символа сопостовляется некий код.

Набор символов/Кодировка (англ. character set) – таблица, задающая кодировку конечного множества символов алфавита (обычно элементов текста: букв, цифр, знаков препинания). Такая таблица сопоставляет каждому символу последовательность длиной в один или несколько символов другого алфавита, например - нулей и единиц (битов).

ASCII (англ. American Standard Code for Information Interchange) – американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов (коды с 0x00 по 0x1F).

ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Изначально разработанная (в 1963 году) как 7‑битная, после широкого распространением 8‑битного байта ASCII стала восприниматься как половина 8‑битной. В компьютерах обычно используют расширения ASCII с задействованным 8-м битом и второй половиной другой кодовой таблицы (например КОИ‑8).

Юнико́д или Унико́д (англ. Unicode) – стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.

Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.

Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам - представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление кодов UCS.

Для определения формата представления Юникода в начало текстового файла записывается сигнатура - код FEFF (символ с таким кодом в Unicode отсутствует), также именуемый меткой порядка байтов (англ. byte order mark, BOM). Также этот способ иногда применяется для обозначения формата UTF‑8, хотя к этому формату и неприменимо понятие порядка байтов.

Основные Unicode‑кодировки:

  • UTF-8 (EF BB BF)

  • UTF-16BE (FE FF)

  • UTF-16LE (FF FE)

  • UTF-32BE (00 00 FE FF)

  • UTF-32LE (FF FE 00 00)

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

Память компьютера (по способу доступа к ней ЦП) принято разделять на внешнюю и внутреннюю.

К внутренней памяти относятся:

  • Оперативная память (ОП)

  • регистры и кэш‑память центрального процессора (ЦП)

  • Flash ROM материнской платы

К устройствам внешней памяти (УВП) принято относить все остальные запоминающие устройства.

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

Структура размещения физических блоков данных.

Рис. 1

Информация на устройствах внешней памяти (УВП) сгруппирована в блоки – сектора.

Сектор– применительно к устройствам внешней памяти (УВП) минимальная адресуемая единица хранения информации. Сектора являются частьюдорожекленты или диска.

У большинства устройств размер сектора составляет 512 байт (почти все виды магнитных накопителей), либо 2048 байт (оптические диски). Но встречаются и другие размеры сектора, например в последнее время всё чаще появляются НЖМД с 4096-байтным сектором. Нумерация секторов внутри дорожки НЖМД ведётся с единицы, но при этом каждый сектор также имеет свой уникальный номер (LBA-адрес) при этом нумерация ведётся с нуля.

Информация на диске располагается в виде концентрических треков/дорожек(магнитные диски), либо в виде одного спирального трека/дорожки (оптические диски).

Для считывания информации в НЖМД для каждой поверхности имеется своя головка считывания/записи, головки нумеруются начиная с нуля.

Если накопитель имеет несколько рабочих поверхностей(один диск - двеповерхности), то совокупность всех треков с одним и тем же номером составляет –цилиндр.

Номер цилиндра (C), головки (H) и сектора (S) однозначно определяет местоположение блока данных в накопителе и эти три номера составляют CHS‑адрес сектора.

Внутри каждого сектора помимо данных (512, 2048 или 4096 байт) также хранится и служебная информация: метка синхронизации, LBA и CHS адреса, контрольные коды.

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

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

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

Физический жесткий диск может быть разбит на несколько разделов (partition). Информация о структуре диска – таблица разделов (partition table) может хранится:

  • Либо в главной загрузочной записи MBR (Master Boot Record), находящейся в нулевом секторе (LBA 0 / CHS 0,0,1) (Только для дисков размером < 232 * 512 = 232 * 29= 241= 2 TiB).

  • Либо в двух GUID‑таблицах (Globally Unique Identifier Partition Table / GUID Partition Table - GPT), размером 33 сектора каждая, одна из которых расположена в начале - после MBR(LBA 1 ‑ LBA 33 / CHS 0,0,2 ‑ CHS 0,0,34), а другая в конце диска.

Область данных логического диска разделена на участки одинакового размера – кластеры. Кластер может состоять из одного или нескольких последовательно расположенных на диске секторов. Число секторов в кластере должно быть кратно 2N. Размер кластера как правило определяет минимально возможный размер файла не нулевого размера.

Логическая структура оперативной памяти в IBM PC‑совместимых компьютерах.

В зависимости от архитектуры ЭВМ, как правило, существуют некоторые особенности организации расположения данных в оперативной памяти компьютера. Для IBM PC‑совместимых компьютеров оперативную память логически делят на несколько областей, структура которых, в общем случае, выглядит следующим образом:

Таблица 1:Карта областей памяти вIBM PC‑совместимых компьютерах.

Адреса

Назначение области (в реальном режиме)

Области памяти

0 0000

Таблица векторов прерываний реального режима (1 КиБ)

CMA‑память или Стандартная память (640 КиБ)

Непосредственно адресуемая память (1 МиБ)

0 03FF

0 0400

Область служебных программ и данных операционной системы (63 КиБ)

0 FFFF

1 0000

Область программ и данных операционной системы и пользователя (576 КиБ)

9 FFFF

A 0000

Область видеопямяти (128 КиБ)

UMA‑память или Верхняя память (384 КиБ)

B FFFF

C 0000

Область ПЗУ адаптеров (128 КиБ)

D FFFF

E 0000

Область системного ПЗУ – программ BIOS (128 КиБ)

F FFFF

10 0000

Может использоваться для хранения любой информации, но, как правило, используется как область служебных программ и данных операционной системы (64 КиБ – 16 байт, или 65520 байт)

HMA‑память или “Высокая” память (64 КиБ – 16 байт, или 65520 байт)

EMS/XMS‑память (63 МиБ)

Расширенная память

(16 ЭиБ – 1 МиБ, или 244 – 1 МиБ, или 264 – 220 байт)

10 FFEF

10 FFF0

Может использоваться

400 0000

400 0001

для хранения любой информации

FFFF FFFF FFFF FFFF

Организация ibm pc/at.

PC/AT разрабатывалась как система с переменным составом оборудования. Ее архитектура предполагала использование системной (материнской) платы, на которой располагались основные системные компоненты, объединенные системой внутренних интерфейсов. Архитектурой предусматривалось использование основного системного (объединительного) интерфейса. Он имел внутреннюю часть, которой объединялись компоненты подсистем, располагавшихся на материнской плате, и внешнюю - в виде слотов расширения, к которым подключались устройства расширения системы (видеоадаптер, адаптеры жестких и гибких дисков, адаптеры портов, сетевой адаптер и т.п.).

Рис.2. Структурная схема IBM PC/AT.

На рис. 1 представлена структурная схема IBM PC/AT и ее система внутренних и внешних интерфейсов. На рисунке сплошной линией выделена материнская плата.

Системный интерфейс представлен S-шиной (стандарта ISA) со слотами расширения.

Структура локальной шины (L-шины) определяется внешним интерфейсом микропроцессора. L-шина подключается к системной магистрали (S-шине) посредством интерфейса с системной шиной.

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

Х-шина представляет интерфейс обмена периферийных БИС (больших интегральных схем) с системой. На базе этих БИС реализован ряд подсистем РС: подсистема прямого доступа к памяти -DMA (Direct Memory Access), подсистема аппаратных прерываний, подсистема программируемого таймера, подсистема часов реального времени и памяти конфигурации системы (CMOS/RTC) а также адаптер клавиатуры.

Шины L, S, M и X имеют три набора проводников, обеспечивающих передачу адреса, данных и управляющих сигналов (соответственно шины А - Address, D - Data, и С - Control).

Функционирование микрокомпьютеров с шинной организацией.

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

Рассмотрим упрощенную схему функционирования РС в рамках локальной шины (L-шины). На рис.3 изображены синхрогенератор 82284, микропроцессор 80286 и шинный контроллер 82288. Кроме того, показаны три шины: адреса, данных и управляющих сигналов.

Синхрогенератор генерирует тактовый сигнал CLK для синхронизации внутреннего функционирования процессора и других микросхем. Сигнал RESET производит сброс процессора в начальное состояние. Это соединение показано на рисунке упрощенно. Сигнал READY также формируется с помощью синхрогенератора. Он предназначен для удлинения циклов при работе с медленными периферийными устройствами.

Рис. 3. Компоненты РС, определяющие функционирование локальной шины.

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

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

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

Микропроцессор использует шинный контроллер для формирования управляющих сигналов, определяющих перенос данных по шине; Он выставляет три сигнала S0, S1, M/IO, которые определяют тип цикла шины. На основании значений этих сигналов шинный контроллер формирует управляющие и командные сигналы, контролирующие динамику данного типа цикла шины.

Таблица 2: Кодирование типа цикла шины в процессорах i80286/i80386

М/-IO

S1

S0

Тип цикла шины

0

0

0

подтверждение прерывания

0

0

1

чтение из порта ввода/вывода

0

1

0

запись в порт ввода/вывода

0

1

1

1

0

0

останов или выключение

1

0

1

чтение данных из оперативной памяти при COD/-INTA = 0

и команды - при COD/-INTA = 1

1

1

0

запись данных в оперативную память

1

1

1

Вывод COD/-INTA.Это выходной сигнал, который позволяет отличить цикл чтения данных из памяти от цикла чтения кода инструкций процессора (COD/INTA=1) из оперативной памяти.

Вывод BHE.Это выходной сигнал, указывающий на перенос верхнего байта по шине данных, то есть на перенос байтов по выводам D15-D8. Совместно с выводом А0 он кодирует одну из трех возможных ситуаций при передаче информации по шине данных.

Для того чтобы понять динамику работы разберем, каким образом осуществляется процессором чтение слова из оперативной памяти. Это происходит в течение 4 тактов CLK, или 2 состояний процессора (т.е. каждое состояние процессора длится 2 такта синхросигнала CLK). Во время первого состояния, обозначаемого как Ts, процессор выставляет на адресную шину значение адреса, по которому будет читаться слово. Кроме того, он формирует на шине совместно с шинным контроллером соответствующие значения управляющих сигналов. Эти сигналы и адрес обрабатываются схемой управления памятью, в результате чего, начиная с середины второго состояния процессора ТС (т.е. в начале четвертого такта CLK) на шине данных появляется значение содержимого соответствующего слова из оперативной памяти. И, наконец, процессор считывает значение этого слова с шины данных. На этом перенос (копирование) значения слова из памяти в процессор заканчивается.

Структурная схема системной (материнской) платы IBM PC/AT.

На рис.4 представлена упрощенная структурная схема одной из первых IBM PC/AT, выпускавшейся фирмой IBM.

Рис.4. Структурная схема системной платы IBM PC/AT, выполненной на базе интегральных схем малой, средней и большой степени интеграции.

Кратко охарактеризуем основные компоненты, представленные на структурной схеме:

Локальная шина(L-шина) на схеме представлена тремя составляющими: 24-разрядной шиной адреса LA (0 - 23), 16-разрядной шиной данных LD (0 - 15) и локальной шиной управления LC. Разрядность шин адреса и данных определяется внешним интерфейсом микропроцессора 80286.

Системнас шина(S-шина) включает в себя:

  • 24-разрядную системную шину адреса, состоящую из 20-разрядной шины SA(0 - 19), совместимой с шиной адреса персонального компьютера IBM PC/XT, и шины LA(17 - 23) старших разрядов адреса;

  • - 16-разрядную шину данных SD (0 - 15)

  • системную шину управления SC.

Характеристики и набор сигналов системной шины определяется стандартом системного интерфейса ISA или AT-BUS.

Шина периферийных БИС(X-шина) также представлена тремя составляющими:

  • 17-разрядной шиной адреса ХА(0 - 16), которая при программном обмене с регистрами периферийных БИС служит для адресации этих регистров, а в режиме прямого доступа к памяти обеспечиавет передачу на системную шину двух младших байтов адреса, генерируемого контроллерами прямого доступа к памяти 8237А;

  • 8-разрядная шиной данных XD(0 - 7), обеспечивающей обмен данными между регисрами периферийных БИС и процессором в режиме их программирования, опроса и обслуживания их запросов на прерывание;

  • шиной управления XC, связанной с шиной LC двунаправленным формирователем LS245, который в программном режиме передает управляющие сигналы с шины LC на шину XC, а в режиме прямого доступа - в обратном направлении.

Шина памяти(М-шина) состоит из:

  • мультиплексированной шины адреса MD(0 - 9), через которую контроллер памяти передает в модули динамической памяти сначала младшие 10 разрядов, а затем старшие 10 разрядов 20-разрядного адреса в сопровождении соответствующих стробирующих сигналов (RAS и CAS соответственно). Такой порядок передачи адресной информации определяется внешним интерфейсом интегральных схем динамической памяти (чипов памяти);

  • 16-разрядной шины данных MD(0 - 15), обеспечивающей передачу как 16-разрядного слова, так и отдельно или старшего, или младшего байта слова. Через эту шину осуществляется также считывание информации и из БИС постоянной памяти (ROM).

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

Порт ввода-вывода

Ввод‑вывод через порты (англ. I/O ports) - схемотехническое решение, организующее взаимодействие процессора и устройств ввода‑вывода. Противоположность вводу‑выводу через память.

Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение‑запись в память - так называемый «ввод‑вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляются на ввод‑вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода‑вывода - IN и OUT - и, соответственно, отдельное адресное пространство: в процессорах Intel - от 0000hдо FFFFh.

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

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

Преимущества портов:

  • Возможна совсем другая схемотехническая организация ввода-вывода.

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

  • Всё адресное пространство машины можно пустить на ОЗУ, без всяких «дыр» наподобие UMB.

  • Для машин низкой разрядности, у которых адрес в памяти задаётся регистровой парой, а на порт хватает и одного регистра, ускоряется работа с внешними устройствами.

Преимущества памяти:

  • Упрощение конструкции процессора.

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

  • Удобнее работа с функциями, оперирующими большими объёмами данных (например, чтение-запись на диск, в видеоадаптер).

Обзор различных архитектур ЭВМ

Архитектура вычислительной машины (Архитектура ЭВМ, англ. Computer architecture)– концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения.

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

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

Рис. 5

Гарвардская архитектура– отличается от архитектуры фон Неймана тем что:

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

  • Канал инструкций и канал данных также физически разделены.

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

По типу параллелизма в потоках команд и данных, согласно Классификации Флинна, все архитектуры ЭВМ делятся на:

  • SISD (Single Instruction stream over a Single Data stream)

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

  • SIMD (Single Instruction, Multiple Data)

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

  • MISD (Multiple Instruction Single Data)

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

  • MIMD (Multiple Instruction Multiple Data)

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

По набору команд архитектуры процессоров можно разделить на:

  1. CISC (Complex Instruction Set Computer)- компьютер с комплексным набором команд:

    1. нефиксированное значение длины команды;

    2. арифметические действия кодируются в одной команде;

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

Типичные представители – i8086‑i80486.

  1. RISC (Restricted (Reduced) Instruction Set Computer)- компьютер с сокращённым набором команд.

Архитектура процессора, в которой быстродействие увеличивается за счёт упрощения инструкций, чтобы их декодирование было более простым, а время выполнения - короче.

К этой группе принадлежит большинство современных процессоров. Типичные представители – x86 от Pentium и выше.

  1. URISC (Ultimate RISC)/OISC (One Instruction Set Computer)- математическая абстракция, предельный случай RISC‑процессора, в котором выполняется только один тип команд.

  2. VLIW (Very Long Instruction Word)– “очень длинная машинная команда”.

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

  1. MISC (Minimal Instruction Set Computer)- компьютер с минимальным набором команд. Гибрид RISC и VLIW‑процессоров.

  2. EPIC (Explicitly Parallel Instruction Computing)- микропроцессорная архитектура с явным параллелизмом команд.

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

Типичный представитель – Itanium.

Есть и другие - разрабатываемые или менее распространённые архитектуры процессоров.

Архитектуры параллельных (мультипроцессорных) вычислительных систем

SMP (англ. Symmetric Multiprocessing) Симметричное мультипроцессирование– архитектура многопроцессорных компьютеров, в которой два или более одинаковых процессоров (ЦП) подключаются к общей памяти (ОП) (Большинство современных многопроцессорных систем).

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

Недостатки SMP‑архитектуры:

  • Ограничение на количество процессоров - при увеличении числа процессоров заметно увеличивается требование к полосе пропускания шины памяти. Современные SMP-системы позволяют эффективно работать при 16 процессорах.

  • Проблема когерентности кэш-памяти - возникает из-за того, что значение одного и того же участка ОП, хранящееся в кэш-памяти двух разных ЦП, может быть изменено одним из них, и при попытке вывода данных из памяти другим будет получено старое значение. Наоборот, если СВВ (система ввода/вывода) вводит в ОП новое значение, в кэш-памяти процессора по-прежнему остается старое.

MPP (англ. Massive Parallel Processing) Массово-параллельная архитектура– архитектура многопроцессорных компьютеров, в которой память физически разделена.

Система строится из отдельных узлов, содержащих: процессор, локальный банк оперативной памяти, коммуникационные процессоры или сетевые адаптеры, иногда - жесткие диски и/или другие устройства ввода/вывода. Доступ к банку оперативной памяти данного узла имеют только процессоры из этого же узла. Узлы соединяются специальными коммуникационными каналами.

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

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

Во втором варианте на каждом модуле работает полноценная, чаще всего UNIX-подобная ОС, устанавливаемая отдельно.

Преимущества MPP‑архитектуры:

  • Хорошая масштабируемость, то есть - способность системы, сети или процесса увеличивать свою производительность при добавлении ресурсов (обычно аппаратных).

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

Недостатки MPP‑архитектуры:

  • Отсутствие общей памяти заметно снижает скорость межпроцессорного обмена.

  • Требуется специальная техника программирования для реализации обмена сообщениями между процессорами

  • Каждый процессор может использовать только ограниченный объем локального банка памяти;

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

  • Высокая цена программного обеспечения.

Закон Амдала (англ. Amdahl's law)

Предположим, что необходимо решить некоторую вычислительную задачу. Пусть её алгоритм таков, что доля αот общего объёма вычислений может быть получена только последовательными расчётами, а, соответственно, доля1‑αможет быть распараллелена идеально (то есть время вычисления будет обратно пропорционально числу задействованных узловp). Тогда рост производительности, который может быть получен на вычислительной системе изpпроцессоров, по сравнению с однопроцессорным решением не будет превышать величины:

Поскольку при α ≠ 0 , - , то очевидно, что при доле последовательных вычисленийαобщий прирост производительности не может превысить1/α.

Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи с α ≠ 0. Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе. Более того, если учесть время, необходимое для передачи данных между узлами вычислительной системы, то зависимость времени вычислений от числа узлов будет иметь максимум. Это накладывает ограничение на масштабируемость вычислительной системы, то есть означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи.