SkillGridИзучай computer science на практике

Память: схема, которая отказывается забывать

Все вентили до сих пор отвечали мгновенно и тут же забывали. Подключи выход вентиля к его же входу — и он начнёт помнить.

14 мин · 45 XP

У всего, что мы собрали, есть одна беда: у схемы нет прошлого. Вентиль AND не знает, что он выдавал секунду назад, он знает только то, что на его входах сейчас. Убери входы — и выход перестанет что-либо значить. Чтобы хранить бит, нужна схема, чей выход зависит от того, что она делала раньше, а обычные вентили так не умеют.

Хитрость в обратной связи: соедини выход вентиля обратно с его входом. Теперь у схемы есть состояние, потому что значение на проводе — одновременно и причина, и следствие. Толкни её в 1 — и она останется в 1; толкни в 0 — останется в 0. Ничему снаружи не нужно удерживать вход: петля держит себя сама.

stored = NOT(NOT(stored))

stored = 1  ->  NOT(1) = 0  ->  NOT(0) = 1  ->  stays 1
stored = 0  ->  NOT(0) = 1  ->  NOT(1) = 0  ->  stays 0Петля из двух вентилей NOT хранит то, что в неё положили

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

Write lineLatchOutputnothing is being writtenoutput feeds back into inputkeeps reporting the old bitwrite 1now reports 1 and holds itthe write line goes low againstill 1, the loop remembers

Соедини 64 защёлки — и получишь регистр: 64 бита, которые процессор читает и пишет как одно число, и лежат они вплотную к арифметическому устройству, чтобы быть доступными за один такт. Горстки регистров процессору хватает для работы. Оперативная память — та же идея, повторённая миллиарды раз, только перед ней стоит дешифратор адреса, чтобы процессор мог сказать «дай байт по этому адресу»: медленнее и куда больше, но собрано из ровно той же петли обратной связи.

Практика

  1. Защёлка хранит значение 1. Входной сигнал после этого убирают совсем. Что выдаёт защёлка?

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

    15 XP

  2. Расставь шаги записи одного бита в защёлку и его хранения.

    Подсказки
    • Ничто не переживает пропажу питания, поэтому начни с того, как бит попадает внутрь, пока питание ещё есть.
    • Значение держит петля; всё, что после, — это просто чтение результата наружу.

    15 XP

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

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

    15 XP