Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_Arhitektura.doc
Скачиваний:
20
Добавлен:
18.09.2019
Размер:
1.84 Mб
Скачать

47. Топологія апаратних інтерфейсів комп’ютера. Особливості реалізації сучасних апаратних інтерфейсів комп’ютера

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

Например, научившись работать с одной программой под Windows, пользователь с легкостью освоит и другие — потому, что они имеют одинаковый интерфейс.

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

Интерфейс пользователя

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

  • Интерфейс командной строки: инструкции компьютеру даются путём ввода с клавиатуры текстовых строк (команд).

  • Графический интерфейс пользователя: программные функции представляются графическими элементами экрана.

  • Диалоговый интерфейс

  • Естественно-языковой интерфейс: пользователь «разговаривает» с программой на родном ему языке.

Физический интерфейс

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

  • Сетевой интерфейс

  • Шлюз (телекоммуникации) — устройство, соединяющее локальную сеть с более крупной, например, Интернетом

  • Шина (компьютер)

  • Нейро-компьютерный интерфейс (англ. brain-computer interface): отвечает за обмен между нейронами и электронным устройством при помощи специальных имплантированных электродов.

48. Ввід/вивід аналогової інформації. Ввід/вивід дискретних сигналів.

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

Аналоговый сигнал - сигнал, величина которого непрерывно изменяется во времени. Аналоговый сигнал обеспечивает передачу данных путем непрерывного изменения во времени амплитуды, частоты либо фазы. Устройства, работающие только с аналоговыми сигналами, называются аналоговыми устройствами. Название "аналоговый" подразумевает, что сигнал изменяется аналогично физической величине, то есть непрерывно. Аналоговые сигналы естественным образом передают речь, музыку и изображения. Для использования аналоговых сигналов в системах и сетях осуществляется квантование и аналого-дискретное преобразование. Кодирование аналогового сигнала обычно осуществляется при помощи различного типа аналого-цифровых преобразователей (АЦП). Обратная процедура реализуется цифро-аналоговыми преобразователями (ЦАП). Для преобразования сигналов, в частности, используются также различные модуляторы и демодуляторы, широко применяемые, в модемах, при помощи которых компьютеры подключаются к различного типа вычислительным сетям. Часто преобразуют и физическую природу сигнала. В частности, преобразование оптического сигнала в электрический и наоборот, выполняют при помощи различных оптоэлектронных устройств. В природе, практически все сигналы - аналоговые, то есть они изменяются непрерывно в каких-то пределах. Именно поэтому первые электронные устройства были аналоговыми. Они преобразовывали физические величины в пропорциональные им напряжение или ток, производили над ними какие-то операции и затем выполняли обратные преобразования в физические величины.

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

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

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

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

обработка (или преобразование);

передача;

хранение.

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

49. Розслоювання пам’яті. Наличие в системе множества микросхем памяти позволяет использовать потенциальный параллелизм, заложенный в такой организации. Для этого микросхемы памяти часто объединяются в банки или модули, содержащие фиксированное число слов, причем только к одному из этих слов банка возможно обращение в каждый момент времени. Как уже отмечалось, в реальных системах имеющаяся скорость доступа к таким банкам памяти редко оказывается достаточной . Следовательно, чтобы получить большую скорость доступа, нужно осуществлять одновременный доступ ко многим банкам памяти. Одна из общих методик, используемых для этого, называется расслоением памяти. При расслоении банки памяти обычно упорядочиваются так, чтобы N последовательных адресов памяти i, i+1, i+2, ..., i+ N-1 приходились на N различных банков. В i-том банке памяти находятся только слова, адреса которых имеют вид kN + i (где 0 ( k ( M-1, а M число слов в одном банке). Можно достичь в N раз большей скорости доступа к памяти в целом, чем у отдельного ее банка, если обеспечить при каждом доступе обращение к данным в каждом из банков. Имеются разные способы реализации таких расслоенных структур. Большинство из них напоминают конвейеры, обеспечивающие рассылку адресов в различные банки и мультиплексирующие поступающие из банков данные. Таким образом, степень или коэффициент расслоения определяют распределение адресов по банкам памяти. Такие системы оптимизируют обращения по последовательным адресам памяти, что является характерным при подкачке информации в кэш-память при чтении, а также при записи, в случае использования кэш-памятью механизмов обратного копирования. Однако, если требуется доступ к непоследовательно расположенным словам памяти, производительность расслоенной памяти может значительно снижаться.

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

50. Кеш-пам’ять - призначення та структура кеш.

Кэш или кеш (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы. Прямой доступ к данным, хранящимся в кэше, программным путем невозможен.

Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.

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

Уровни кэша

Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать 3. Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости доступа и передаче данных, чем кэш-память уровня N.

Самой быстрой памятью является кэш первого уровня — L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. В современных процессорах обычно кэш L1 разделен на два кэша, кэш команд (инструкций) и кэш данных (Гарвардская архитектура). Большинство процессоров без L1 кэша не могут функционировать. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно. Латентность доступа обычно равна 2−4 тактам ядра. Объём обычно невелик — не более 128 Кбайт.

Вторым по быстродействию является L2-cache — кэш второго уровня, обычно он расположен на кристалле, как и L1. В старых процессорах — набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора. Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра.

Кэш третьего уровня наименее быстродействующий, но он может быть очень внушительного размера — более 24 Мбайт. L3 кэш медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память. В многопроцессорных системах находится в общем пользовании и предназначен для синхронизации данных различных L2.

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

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

В неэксклюзивной кэши могут вести себя как угодно.

Ассоциативность кэша

Одна из фундаментальных характеристик кэш-памяти — уровень ассоциативности — отображает её логическую сегментацию. Дело в том, что последовательный перебор всех строк кэша в поисках необходимых данных потребовал бы десятков тактов и свёл бы на нет весь выигрыш от использования встроенной в ЦП памяти. Поэтому ячейки ОЗУ жёстко привязываются к строкам кэш-памяти (в каждой строке могут быть данные из фиксированного набора адресов), что значительно сокращает время поиска. С каждой ячейкой ОЗУ может быть связано более одной строки кэш-памяти: например, n-канальная ассоциативность (англ. n-way set associative) обозначает, что информация по некоторому адресу оперативной памяти может храниться в n местах кэш-памяти.

При одинаковом объеме кэша схема с большей ассоциативностью будет наименее быстрой, но наиболее эффективной

Кэширование результатов работы

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

Кэширование интернет-страниц

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

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

Концепция кэш-памяти возникла раньше чем архитектура IBM/360, и сегодня кэш-память имеется практически в любом классе

компьютеров, а в некоторых компьютерах - во множественном числе.

Все термины, которые были определены раньше могут быть использованы и для кэш-памяти, хотя слово "строка" (line) часто употребляется вместо слова "блок" (block).

Типовые значения ключевых параметров для кэш-памяти рабочих станций и серверов

Размер блока (строки)

4-128 байт

Время попадания (hit time)

1-4 такта синхронизации (обычно 1 такт)

Потери при промахе (miss penalty) (Время доступа - access time) (Время пересылки - transfer time)

8-32 такта синхронизации (6-10 тактов синхронизации) (2-22 такта синхронизации)

Доля промахов (miss rate)

1%-20%

Размер кэш-памяти

4 Кбайт - 16 Мбайт

51. Кеш-пам’ять - алгоритми разміщення та пошуку даних в кеш.

Кэширование, выполняемое операционной системой

Кэш оперативной памяти состоит из следующих элементов:

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

набор заголовков буферов, описывающих состояние соответствующего буфера;

хеш-таблицы, содержащей соответствие номера блока заголовку;

списки свободных буферов.

Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:

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

(адрес блока кэш-памяти) = (адрес блока основной памяти) mod (число блоков в кэш-памяти)

- если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative);

- если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative). Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative). Для размещения блока прежде всего необходимо определить множество. Множество определяется младшими разрядами адреса блока памяти (индексом):

(адрес множества кэш-памяти) = (адрес блока основной памяти) mod (число множеств в кэш-памяти)

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

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

Адресация множественно-ассоциативной кэш-памяти осуществляется путем деления адреса, поступающего из процессора, на три части:

- поле смещения используется для выбора байта внутри блока кэш-памяти;

- поле индекса определяет номер множества;

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

52. Кеш-пам’ять - алгоритми запису в кеш. Очень часто организация кэш-памяти в разных машинах отличается именно стратегией выполнения записи. Когда выполняется запись в кэш-память имеются две базовые возможности:

сквозная запись (write through, store through) - информация записывается в два места: в блок кэш-памяти и в блок более низкого уровня памяти.

запись с обратным копированием (write back, copy back, store in) - информация записывается только в блок кэш-памяти. Модифицированный блок кэш-памяти записывается в основную память только когда он замещается. Для сокращения частоты копирования блоков при замещении обычно с каждым блоком кэш-памяти связывается так называемый бит модификации (dirty bit). Этот бит состояния показывает был ли модифицирован блок, находящийся в кэш-памяти. Если он не модифицировался, то обратное копирование отменяется, поскольку более низкий уровень содержит ту же самую информацию, что и кэш-память.

Когда процессор ожидает завершения записи при выполнении сквозной записи, то говорят, что он приостанавливается для записи (write stall). Общий прием минимизации остановов по записи связан с использованием буфера записи (write buffer), который позволяет процессору продолжить выполнение команд во время обновления содержимого памяти. Следует отметить, что остановы по записи могут возникать и при наличии буфера записи.

При промахе во время записи имеются две дополнительные возможности:

разместить запись в кэш-памяти (write allocate) (называется также выборкой при записи (fetch on write)). Блок загружается в кэш-память, вслед за чем выполняются действия аналогичные выполняющимся при выполнении записи с попаданием. Это похоже на промах при чтении.

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

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

Алгоритм работы кэша с отложенной записью

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

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

в случае, если полученный буфер занят, ждёт его освобождения;

в случае, если буфер не найден в хеш-таблице, берёт первый буфер из хвоста списка свободных;

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

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

удаляет буфер из хеш-таблицы, если он был помещён в неё;

помещает буфер в хеш-таблицу с новым номером.

Процесс читает данные в полученный буфер и освобождает его. В случае модификации процесс перед освобождением помечает буфер как «грязный». При освобождении буфер помещается в голову списка свободных буферов.

Таким образом:

если процесс прочитал некоторый блок в буфер, то велика вероятность, что другой процесс при чтении этого блока найдёт буфер в оперативной памяти;

запись данных во внешнюю память выполняется только тогда, когда не хватает «чистых» буферов, либо по запросу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]