PDA

Просмотр полной версии : Z80 Pipeline



Higgins
04.05.2007, 17:26
Вопрос знатокам внутренней архитектуры Z80.

На страничке
http://www.z80.info/z80arki.htm
сказано, что в Z80 выборка инструкции (fetch) и исполнение инструкции могут перекрываться по времени, т.е. фактически реализован конвейер.
Более того, приведена временная диаграммка для этого случая.

Все бы ничего, и можно было бы даже не обращать внимания на то, что о конвейере в Z80 я никогда не слышал, но вот только что автор понимает под исполнением инструкции? В оригинальном User's Manual я ни в одной диаграмме не вижу ни микросекунды какого бы то ни было исполнения. Вместо это ясно сказано, что инструкция выполняется в три машинных цикла M1, M2 и M3, где M1 - выборка, M2 - чтение памяти, M3 - запись в память. Единственное, что сказано об исполнении инструкции, - это то, что оно (вместе с декодированием) происходит на циклах T3 и T4 в пределах цикла M1 (выборка), и это же время используется для обновления динамической памяти.

Мало того, на диаграммке по приведенной выше ссылке видно, что выборка первой инструкции длится 3 временных цикла. А в том же User's Manual сказано, что выборка всегда длится 4, 5 или 6 временных циклов, ни никак не 3.

Кто-нибудь может прояснить ситуацию?

ZEK
04.05.2007, 20:37
данную статью я бы к примеру назвал бы не совсем точной :)

Mikka_A
05.05.2007, 00:18
данную статью я бы к примеру назвал бы не совсем точной :)

с чего такое мнение ( про НЕМО ):v2_conf2: ?

Higgins
07.05.2007, 12:12
Еще два вопроса о Z80.

В User's Manual сказано, что значение младших битов регистра R увеличивается после каждой выборки инструкции, а старший копируется из старшего бита регистра A. Это нужно понимать так, что R инкрементируется после каждого M-цикла выборки или только один раз на инструкцию, после выборки всех ее оп-кодов?

Второй вопрос о значении адресной шины во время активного ~RFSH. Если я правильно понял, A15-A8 в это время - это значение R (кстати, уже увеличенного или еще до увеличения?). А чему в это время равны A7-A0?

Спасибо!

Sonic
07.05.2007, 12:18
Насколько я помню, один раз за инструкцию, даже с префиксами. Хотя могу ошибаться - много времени прошло.
Касаемо старшего бита - он просто сохраняется неизменным. Его можно загрузить по команде LD R, A. По этой команде R становится равным A, инкремент происходит уже на следующей команде.