Вектор-06Ц/Instruction Timings

Материал из Emuverse
Версия от 03:55, 5 июня 2021; Nzeemin (обсуждение | вклад) (Новая страница: «{{ДИ|Источник=Вектор User №15 http://www.sensi.org/scalar/ware/572/ https://github.com/svofski/vector06cc/wiki/Instruction_Timings}} <pre> Си…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Источник: Вектор User №15 http://www.sensi.org/scalar/ware/572/ https://github.com/svofski/vector06cc/wiki/Instruction_Timings

Системная шина, или 3МГц: миф или реальность?
Справочное пособие для системных программистов на "Вектор"-
подобных машинах
(C) Copyright 1994 by Spase corp. All rights reserved.

Омск, (3812) 655730 Шашков Вячеслав Александрович.


                         I. Работа системной шины.

        Толчком к написанию этой  статьи  послужили  работы  Омского  центра
программирования  по  установке  в "Вектор"-подобные машины процессора Zilog
Z-80.  Естественно,  при этом хотелось повысить быстродействие компьютера за
счет того,  что Z80 может работать на тактовой частоте вплоть до 12 МГц. Для
этого необходимо было понять, как в "Векторе" решена проблема взаимодействия
процессора и видеоадаптера при обращении к ОЗУ.
        Для обеспечения взаимодействия ОЗУ,  ПЗУ,  микропроцессора и видеоа-
даптера служит системная шина. В первом приближении это - комплекс проводов,
передающих различные сигналы, и устройство управления. Именно оно определяет
эффективность использования ресурсов машины.
        Работа системной шины в "Векторе" организована по циклам.  Различают
два вида цикла шины:  цикл с обращением процессора и цикл без обращения про-
цессора.  Каждый цикл разбивается на 4 такта,  а такт,  в свою очередь, на 4
четверти.  Длительность  одного  такта  составляет 1 период тактовой частоты
процессора (3 МГц на "Векторе"). Рассмотрим работу системной шины по тактам.
        Первый такт  любого цикла шины - такт обращения видеоадаптера.  Уст-
ройство управления вырабатывает сигнал переключения шины  так,  что  на  ад-
ресные входы ОЗУ приходит адрес, сформированный видеоадаптером. В конце так-
та информация,  считанная из ОЗУ,  заносится в регистры сдвига и затем точка
за точкой выводится на экран в течение всего цикла шины.
        Второй такт цикла шины служит для приведения ее в исходное состояние
для обращения процессора. В конце такта процессор, в случае обращения к ОЗУ,
выдает сигнал MREQ.  В ответ на это устройство управления  формирует  сигнал
ПЕР,  который  выбирает  тип  остальных тактов цикла как тактов с обращением
процессора.  Если же сигнал MREQ не был выставлен, то шина отрабатывает цикл
без обращения процессора.
        Во время 3-го и 4-го такта цикла без обращения процессора шина отра-
батывает холостые такты, никакие операции не производятся.
        Во время 3-го такта цикла с обращением процессора (это соответствует
второму  такту микропроцессора) на микросхемы ОЗУ выдается адрес,  сформиро-
ванный процессором. На первой четверти 4-го такта происходит передача данных
между процессором и ОЗУ.  Затем шина подготавливается к выдаче байта видеоа-
даптеру.
        Все происходит нормально,  если начало цикла памяти процессором сов-
падет по времени с тактом 2 цикла шины. В прочих случаях устройство управле-
ния выставляет процессору сигнал READY=0,  в ответ на что процессор, начиная
со следующего такта своего цикла,  перейдет в состояние ожидания,  в котором
будет находиться до тех пор, пока шина не начнет выполнять третий такт. Сле-
довательно,  если процессор выставил запрос на обращение к ОЗУ,  например, в
3-м такте цикла шины,  то он будет находиться в состоянии ожидания в течение
4-го, 1-го и 2-го тактов цикла шины.
        При выполнении процессором последовательности 4-тактных команд, т.е.
команд, цикл которых состоит из 4-х тактов, например, NOP, ADD R, CMA, XCHG,
все  циклы процессора оказываются согласованными с циклами шины,  и дополни-
тельные такты ожидания не появляются. В остальных случаях работа шины приво-
дит  к тому,  что на выполнение любого машинного цикла требуется кратное 4-м
число тактов.  Например,  команда MOV R1,R,  чей цикл занимает 5  тактов,  в
действительности требует 8 тактов.
       
        Установка процессора Z80,  все циклы которого не длиннее 4-х тактов,
приведет к тому,  что одна из наиболее употребляемых команд - MOV, будет ра-
ботать  вдвое  быстрее,  что  повысит  общее  быстродействие  ПК примерно на
15-20%.

                II. Таблица команд МП Intel 8080 (КР580ВМ80)
       
       1-я колонка - время выполнения в тактах i8080;
       2-я колонка - время выполнения на "Вектор"-подобных ПК.
       
MOV R1,R     5   8        MOV R,M     7   8        MVI R,D8   7   8
MVI M,D8    10  12        STAX RP     7   8        LDAX RP    7   8
STA ADR     13  16        LDA ADR    13  16

LXI RP,D16  10  12        SHLD ADR   16  20        LHLD ADR  16  20
PUSH RP     11  16        POP RP     10  12        SPHL       5   8
XCHG         4   4        XTHL       18  24

CMC          4   4        STC         4   4        CMA        4   4
DAA          4   4        INR R       5   8        INR M     10  12
DCR R        5   8        DCR M      10  12        INX RP     5   8
DCX RP       5   8

ADD R        4   4        ADD M       7   8        SUB R      4   4
SUB M        7   8        ADC R       4   4        ADC M      7   8
SBB R        4   4        SBB M       7   8        ANA R      4   4
ANA M        7   8        ORA R       4   4        ORA M      7   8
XRA R        4   4        XRA M       7   8        ADI D8     7   8
ACI D8       7   8        SUI D8      7   8        SBI D8     7   8
ANI D8       7   8        ORI D8      7   8        XRI D8     7   8
CMP R        4   4        CMP M       7   8        CPI D8     7   8

DAD RP      10  12

RRC          4   4        RLC         4   4        RAL        4   4
RAR          4   4

EI           4   4        DI          4   4        NOP        4   4
HLT          7   8

IN #        10  12        OUT #      10  12

PCHL         5   8        JMP ADR    10  12        J* ADR    10  12

CALL ADR    17  24        C* ADR /Y  17  24        C* ADR /N 11  16
RST N       11  16        RET        10  12        R*     /Y 11  16
R*      /N   5   8


             III. Команды Z80, имеющие другое время выполнения.
                   (по материалам НТЦ "ЭЛИС", г. Москва)

ADD HL,RP   DAD RP   11  12        CALL *,ADR   C* ADR   /N  10  12
DEC RP      DCX RP    6   8        DEC REG      DCR R         4   4
EX (SP),HL  XTHL     19  24        INC (HL)     INR M        11  16
DEC (HL)    DCR M    11  16        INC RP       INX RP        6   8
DEC R       DCR R     4   4        JP (HL)      PCHL          4   4
LD R1,R     MOV R1,R  4   4        LD SP,HL     SPHL          6   8
OUT #,A     OUT #    11  12        IN A,#       IN #         11  12

Примечание. Знаки /Y,  /N - обозначают выполнение  команды  в  случае  соот-
            ветственно истинности или ложности условия.