Важно понимать, что хотя в тракте данных нет никаких запоминающих элементов, для прохождения сигнала по нему требуется определенное время. Изменение значения на шине В вызывает изменения на шине С не сразу, а только после паузы (это объясняется задержками на каждом шаге). Следовательно, даже если один из входных регистров изменяется, новое значение сохраняется в регистре задолго до того, как старое (и уже неправильное) значение этого регистра, помещенное на шину В, сможет достичь АЛУ.
Рис. 4.2. Временная диаграмма цикла тракта данных
Для такой системы требуется жесткая синхронизация и довольно длинный цикл; должно быть известно минимальное время прохождения сигнала через АЛУ; регистры должны загружаться с шины С очень быстро. Если подойти к этому вопросу с достаточным вниманием, можно сделать так, чтобы тракт данных функционировал правильно.
Цикл тракта данных можно разбить на подциклы. Начало подцикла 1 инициирует спад синхронизирующего сигнала. Далее показано, что происходит во время каждого из подциклов. В скобках приводится величина подцикла.
1. Устанавливаются сигналы управления (Ат).
2. Значения регистров загружаются на шину В (Ад:).
3. Действуют АЛУ и схемы сдвига (Ау).
4. Результаты проходят по шине С обратно к регистрам (Аг).
На фронте следующего цикла результаты сохраняются в регистрах.
Никаких внешних сигналов, указывающих на начало и конец подцикла и сообщающих АЛУ, когда нужно начинать работу и передавать результаты на шину С, нет. В действительности АЛУ и схема сдвига работают постоянно. Однако их входные сигналы недействительны в течение периода Ат + Ах. Точно так же их выходные сигналы недействительны в течение периода Ат + Ах + Ау. Единственными внешними сигналами, управляющими трактом данных, являются спад синхронизирующего сигнала, с которого начинается цикл тракта данных, и фронт синхронизирующего сигнала, инициирующий загрузку регистров с шины С. Границы подциклов определяются только временем прохождения сигнала, поэтому разработчики тракта данных должны все очень четко рассчитать.
Функционирование памяти
Наша машина может взаимодействовать с памятью двумя способами: через порт с пословной адресацией (32-разрядный) и через порт с побайтовой адресацией (8-разрядный). Порт с пословной адресацией управляется двумя регистрами: MAR (Memory Address Register — адресный регистр памяти) и MDR (Memory Data Register — информационный регистр памяти), которые показаны на рис. 4.1. Порт с побайтовой адресацией управляется регистром PC, который записывает 1 байт в 8 младших битов регистра MBR (Memory Buffer Register — буферный регистр памяти). Этот порт может считывать данные из памяти, но не может записывать их в память.
Каждый из этих регистров, а также все остальные регистры, изображенные на рис. 4.1, запускаются одним из сигналов управления. Белая стрелка под регистром указывает на сигнал управления, который разрешает передавать выходной сигнал регистра на шину В. Регистр MAR не связан с шиной В, поэтому у него нет разрешающего сигнала управления. У регистра Н этого сигнала тоже нет, так как он является единственным возможным левым входом АЛУ и поэтому всегда разрешен.