Вычислительные Системы, 03 лекция (от 17 сентября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция


Запись

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

Для предотвращения этой неприятности был БРЗ (БуфеР Записи), на 8 регистром размером с слово.

Как устроены float: два разряда контрольные, знак порядка, 6 разрядов порядок, знак чдисла, 40 разрядов мантиссы.

В машине крей слово 64 разряда, но в памяти хранилось 72, 8 --- код Хемминга. То есть, в 60-х годах ошибки были настолько часты, что необходимо было автоматическое хотя бы одиночных ошибок.

Когда приходит команда записи, то сразу исполнительный адрес записи сравнивается с адресами в буфере. Если есть такой, то прекрасно, туда и будем записывать. То есть, тут уже определяется сразу номер регистра БРЗ (не БРЧ). А если не находится здесь совпадения, то там всегда есть одна свободная (так делается), и туда записывается результат.

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

Для того, чтобы всегда была одна свободная, всегда определяется претендент на удаление из буфера. Делается это очень просто: Рисуем табличку 8 на 8. 8 на 8 сложно, рисуем 4 на 4. обычная табличка без диагональных ячеек:

  1 2 3 4
1     0
2     0
3     0
4 1 1 1

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

При моделировании выяснилось, что наличссие этого кэша даёт до 30 процентов выигрыша по сравнению с отсутствием такового.

Была такая кривая:

  • 4 — 20%
  • 8 — 30%
  • 16 — 37%

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

Когда моделируется что-то, можно использовать специальные данные, а можно реальные данные. Можно как моделировать: при поступлении добавить 1,1 мкс, а можно реально моделировать выполнение кодов. Ведь сложение требует выравнивание порядков, и всё такое. И на это уходит время. Если не надо ничего выравнивать, то может быть 0.5 мкс, если надо то может быть и 5 и 10 и 15 и 20 мкс.

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

Можно было сделать треитй кэш, но при этом там было бы увеличение производительности 1—2 процента.

Эта схема оказалась весьма совершенной. И в Крее была похожая архитектура.

Потом возникла идея: не разбить ли АЛУ и обеспечить загрузку их командами? Это Control Data Corporation, и он был реализован в CDC 6xxx.

Второй момент: научились ещё и выполнять операции конвеером. Например, тот же самый сложить/вычитать. Он разбивается на 4 части, и вот у вас есть два массива данных: a1 ... an и b1 ... bn. Чтобы их сложить, естественно, складывать их будем покомпонентно, то есть будем подавать ai, bi, получать ci. При этом ai = 2^p_a_i × M_a_i, bi = 2^p_b_i × M_b_i, и были следующие 4 стадии:

  • выравниквание порядков
  • сложение порядков
  • нормализация
  • округление

Работая вот так, получаем c1 через 4 такта, но дальше по ci за такт. И в Крее была реализована эта идея.

Но конвейер команд уже есть в БЭСМ-6. Сергей Алексеевич называл это водопроводом.

В след. раз Томилина не будет, будет захаров со своей лекцией.


Вычислительные Системы


01 02 03 04 05 06 07 08 09 10 11


Календарь

пн пн пн пн пн
Сентябрь
03 10 17
Октябрь
01 08 15 22 29
Ноябрь
05 12 19

Материалы
Вопросы по курсу


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы