Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
- | [[Вычислительные Системы, 02 лекция (от 10 сентября)|Предыдущая лекция]] | [[Вычислительные Системы, 04 лекция (от 24 сентября)|Следующая лекция]]
| + | == From Ebaums Inc to MurkLoar. == |
- | | + | We at EbaumsWorld consider you as disgrace of human race. |
- | <!-- педедыв -->
| + | Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated. |
- | | + | Dig yourself a grave - you will need it. |
- | Запись
| + | |
- | | + | |
- | Пока не будет пройдена команда записи и слово не будет записан, мы не сможем выполнять команды считывания.
| + | |
- | | + | |
- | Для предотвращения этой неприятности был БРЗ (БуфеР Записи), на 8 регистром размером с слово.
| + | |
- | | + | |
- | Как устроены float: два разряда контрольные, знак порядка, 6 разрядов порядок, знак чдисла, 40 разрядов мантиссы.
| + | |
- | | + | |
- | В машине крей слово 64 разряда, но в памяти хранилось 72, 8 --- код Хемминга. То есть, в 60-х годах ошибки были настолько часты, что необходимо было автоматическое хотя бы одиночных ошибок.
| + | |
- | | + | |
- | Когда приходит команда записи, то сразу исполнительный адрес записи сравнивается с адресами в буфере. Если есть такой, то прекрасно, туда и будем записывать. То есть, тут уже определяется сразу номер регистра БРЗ (не БРЧ). А если не находится здесь совпадения, то там всегда есть одна свободная (так делается), и туда записывается результат.
| + | |
- | | + | |
- | Получился самый настоящий кэш данных, правда, не обновляющийся при считывании. Он обновлялся при записи и всегда использовался. Теперь можно использовать запись в конвейере.
| + | |
- | | + | |
- | Для того, чтобы всегда была одна свободная, всегда определяется претендент на удаление из буфера. Делается это очень просто:
| + | |
- | Рисуем табличку 8 на 8. 8 на 8 сложно, рисуем 4 на 4. обычная табличка без диагональных ячеек:
| + | |
- | {|style="text-align:center"
| + | |
- | !
| + | |
- | !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. Сергей Алексеевич называл это водопроводом.
| + | |
- | | + | |
- | В след. раз Томилина не будет, будет захаров со своей лекцией.
| + | |
- | | + | |
- | {{Вычислительные Системы}}
| + | |
- | {{Lection-stub}}
| + | |