Вычислительные Системы, 08 лекция (от 29 октября)
Материал из eSyr's wiki.
Предыдущая лекция | Следующая лекция
Содержание |
Проблема записи в кэш-память
Засчет Таблицы старения и таблицы омоложения очень удачно работала БЭСМ6. Тоже самое можно сказать о блоках. Таким образом можно максимально задержать выталкивание в оп. Это так в бэсм6. Можно ещё выталкивать по мере необходимости(при этом таблицу старения тоже можно хранить). Это хорошо тогда, когда есть 1 процессор, у него свой кэш, никому больше его данные не нужны, никакой заботы о колизиях. А вот если SMP-комп с общей памятью и отдельным кэшем для каждого процессора(в кэше каждого процессора пусть по 4 блока,есть регистры в оторых хранятся адреса данных из блока в оп, общий кэш для команд и данных)? Записали в 01(0-ой проц, 1 блок). ПРоцессоры выполняют ветви одной программы, пользуются одними данными. И что если эти же даные находятся в 33? Если 3 процессор захочет взять данные из 33, то они должны стать такими же, как в 01.Эти коллизии описаны в литературе, причем описаны так, что кажется, что эти коллизии случаются прямо каждую наносекунду. Но это совсем не так! Если какому то процессу нужны данные, формируемые другим процессом, то первый процесс обычно ждёт, пока второй процесс не освободит _группу_ ячеек. Поэтому лектору не нрвится как они пишут про коллизии. Но в момент пересменки действительно могут быть нюансы. Итак,как быть в примере? Есть разные пути.
- Запись сразу в кэш и в оп.Называется Райт Сру(зпись через). Ну, вполне подходит, гм, название.
- Происходит сразу запись в кэш(Райт Бэк -- возмущение лектора по поводу названия).
- Объявление блоков других кэшей недействительными(что это такое и как делается сейчас посмотрим). Это означает, что по адресу, который у нас возник мы не только записали в оп, но ещё поискали этот адрес в адресных тэгах других кэшей. И если нашли, то этот блок сделали недействительным.И всё! И больше ничего! Когда процесс на 3 процессоре обратится к блоку, он получит отлуп и полезет в память, а в памяти он уже обновленный. Вот-т и вс-сё. Для SMP-систем подходящее действие, хотя нужно много микросхем для реализции поиска. Это путь называется путь с блокировкой.
- Обновление данных в блоках других кэшей. Вроде казалось бы что это лучше - не тащим через память. Но технически это сложнее, обородувания надо больше. Называется -- запись с обновлением.
Это простейшие варианты, естественно есть более сложные.
Сейчаас вот готовяися стандарты по образованию. Не так давно лектор видел стандарт, разработанный в бауманке(Заччем они сменили название, Училище!люди шляпу преклоняли!А теперь... Технический университет..И только пока люди сообразять что это бауманка! А с академиями... "Академия метода крупных частиц!"Маразм! С президентом, со всем... А есть ещё одна академия, я хочу вас предостеречь. А так, есть 3 заслуженных академии - наук, медицинских наук, сельскохоз наук. А дальше, акад естественных наук там -- это уже производные, там те же люди что и в первых трех. Есть академия, которую мы называем позор россии. И лучшие люди туда попавшие, прячут этот факт. Называется - МАИ(Международная академия информатизации). Она была образована 3 людьми, уволенным за плохое руководство(бывший начальник мосгоссправки(достаточно почитать его труды...) Когда была образована это академя, они охмурили ряд академиков, включая моисеева(устроили собрание в кремле), и тогда уже было ясно, что там полная тьма и такой бред...)А охочии до пиара и денег это подхватывают. Международная теперь. И этот шабаш проходит! Вместо того чтобы мгновенно скрутить! Вы почитайте эти труды.. Это позор россии - появление таких академий. Это просто гротескный случай! С лектором лично был интересный случай. К нему подошел человек и говорит --- Александр николаич,вам задание -- написать 3 страницы в рамках конференции такой-то. Лектор отвечает: Да мы там все друг друга знаем, что там писать, пожмем руки разойдемся.. А человек говорит: Напишите! А то сделаем вас академиком МАИ! Так что,это соврменный шабаш ведьм. Люди, будьте бдительны!)Давайте сделаем перерыв. Нет, я неправильно посчитал время, не будем делать перерыв, не будем.
Проблема параллелизма работы внешних устройств
Варианты управления ВУ с точки зрения параллелизма. Раньше было интересно - было АЛУ, ОП, УУ. Клмманды шли от ОП к АЛУ, ОТ АЛУ к УУ. Данные ходили между АЛУ и ОП. Раньше ВУ цеплялись к АЛУ, и пока выполнялось общение в ВУ, ничего другого не делалось. Это сильно задердивало вычисленияю Ну и естесственно появилась идея обеспечить обмен между ВУ и ОП, в не сколько потоков параллельных друг с другом и с выполнением вычислений на процессоре. И как же эти обмены осуществлялись?Возникло две идеи -- селекторные и мультиплексные каналы (IBM) и общая шина(DEC). В рисунке есть общее, но в управлении раззное.
- селекторные и мультиплексные каналы. Пусть между ОП и ВУ есть несколько(много) селекторных и один два мультиплексных канаов. Есть ус-ва, работа с которыми не должна прерываться. Например диски, под них надо выделять отдельный канал. Обмен с одним диском идет по одному селекторному каналу. Это не значит, что к одному селекторному каналу подключен только один диск. Схема: ОП -- Некоторе УУ(кОнтрОллер) -- а за УУ один или несколько дисков. Итак, есть магистраль. УУ организует передачу данных по так называемому селекторному каналу. Кончился один обмен, может нчаться другой, уже с другим диском. Важно, что запущенный обмен не прерывается. Посмотрим, что же такое селекторный канал.СК -- это устройство(а сам подход называется централизованным).Использовалось в IBM360/370 и ЕС ЭВМ. Интерфейсом в этих машинах назывались каналы между контроллером и ВУ.
Итак, Селекторный канал
- регистр данных. Через него данные идут в ву и обратно.
- регистр управляющего слова обмена.3+1 компонента
- операция (считывания/записи)
- разряд - надо ли прерывать процесс
- адрес по оп, естественно, начальный.(иногда бывает конечный)(увеличивается)
- n, кол-во передаваемых данных(можно в байтах, можно в словах)(уменьшается)
Всё происходит следующим образом
- процессор, на нем работает драйвер, подает по доп каналам подает на контроллер(уу) команду "пуск обмена".
- уу подает сигнал о готовности к обмену.
- управляющее слово обмена с i-ым подканалом считывается в регистр управляющего слова обмена.
- начинается обмен
Куда пишем знает только селекторный канал. Когда обмен закончился, смотрим по разряду прерывания надо ли прерывать(может быть дальше идет обмен с этим же устойством). Пусть есть "программа" подканала из 3 упр слов. Она составляется все тем же драйвером. "Программа" в кавычках потому что иногда эту часть называют эвм. Но это же автомат в чистом виде!Откуда он берет нужное слово? Такие программы готовятся для всех подканалов. В памяти имеется таблица адресных слов подканалов. По сигналу о готовности процессор вытаскивает из этой таблицы слово для нужного подканала, и помещает его в регистр адресного слова. Фактически это указатель на управляющее слово/слова.
Мультиплексный канал
Для устройств типа клавиатуры. Передавать может блоками разного размера. Не старт-стопные ус-ва, щас мы об этом моменте поговорим.УГУ(устроййство группового управления=))
- регистр данных
- управляющее слово обмена
- адрес оп
- n
- адресное слово
Есть так же программа i-го подканала. И также есть адресные слова, идущие подряд. Пока все точно так же. ТОлько интенсивность смены здесь больше. Итак. процессор зпускает ус-во за ус-вом подавая команду пуск обмена. И ус-ва, подготовившись, начинают стучаться в мультиплексный канал с готовностью своей. В контроллере есть буффер, куда принмаются(откуда выдаются) данные с ус-ва. Задача мультиплексного канала - взять данные из буфера/положить данные в буффер.Такая схема делает ву старт-стопными. Цикл работы мультиплексного канала.
- считывание адресного слова(это обращение к памяти, смотрите, что интересно)
- считывание управляющего слова
- обмен
- запись измененного управляющего слова
Итак, три обращения к памяти, полновесных, на 1 байт. Нич-чего себе, накладный расходики. Понятно, что если передаем 100 байтов то можно. А если по доному, то жто так, основательно. И все таки это делается. Почему?Ради параллелизма работы устройств. О стартстопности. Считываем перфокарту. Толкнули, уже остановить не можем. Считался 12 разрядный код, передали его в память.Через какое то время(200, то есть 400, то есь 200 микросекунд), придет новый код. В память надо успевать помещать. Автомат может ждать, пока буффер не будет выбран и не толкать следующую перфокарту. Вот в бэсм6 таких усв не было, только в ЕС, содрав с зарубжных, стали так делать. Или в обратную сторону -- печать. Скалка головок с молоточками. Когда под молоточки подходит а -- дается прерывание. Надо взть некий код и на некий регистр его поместить. Помещение кода в этот регистр одзначало удары по молоточкам. Помещение означает бах-бах-бах. Затем, через полторы милисекнуды под удары подходит литера б. Прерывание берерт из памяти, кладет в регистр и опять ба-бах-бах -- литера б. Операционной системе надо было очень четко следить за временем(если на полторы милисекунды задержаться, то вместо б появится в, вместо 2 3 и корабль не в ту сторону полетит). Эти ус-ва назывались не старт стопными. В старт стопных ус-ву дается строка, которая загоняется в буффер. Как только загналась, модно печатать.В буффере уже работает автомат. Именно поэтому для БЫСМ6 внешних каналов было 6 бысторого обмена(для барабанов, лент, позже дисков), фактически эти каналы были селекторными. Управляющих слов было по одном(программ из ус не было). Мультиплексных каналов не было, вместо них работала ос, щанимая этим время. если все ус-ва работали, процессор занимался на 100 процентов времени, хотя ошибки не было. Проблема -- если уже все од завязку, новой ус-во не подключить. А старт-стопных можно подключать сколько угодно. В свое время, когда машины продавали в индию. и говорили, что 15 процентоввремени уходит только на печать(я вам рассказывал история про цыганскую тактику?) давайте так, для ввода-вывода купим отдельную венгерскую машину. Ну хорошо, давайте так. И контракт был очень интересный -- если машина поставляется и запускается, то деньги вылачиваются, но деньги выплачиваются только тогда, когда все начинает работать.о этого ведется бесплатное обслуживание. А венгры все раз, и не поставляли. Год бесплатно обслуживали.sssssssssssssssssssssssss
- DEC. Есть ОП, она подключена к общей шине, к этой же шине присоединяются все уу. Есть арбитр шины. Каждое из уу может захватить шину для передачи(получения) данных.s
01 02 03 04 05 06 07 08 09 10 11
Календарь
пн | пн | пн | пн | пн | |
Сентябрь
| 03 | 10 | 17 | ||
Октябрь
| 01 | 08 | 15 | 22 | 29 |
Ноябрь
| 05 | 12 | 19 |
Материалы
Вопросы по курсу