https://emuverse.ru/w/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80-06%D0%A6/Instruction_Timings&feed=atom&action=historyВектор-06Ц/Instruction Timings - История изменений2024-03-29T14:32:31ZИстория изменений этой страницы в викиMediaWiki 1.40.0https://emuverse.ru/w/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80-06%D0%A6/Instruction_Timings&diff=3158&oldid=prevNzeemin: Новая страница: «{{ДИ|Источник=Вектор User №15 http://www.sensi.org/scalar/ware/572/ https://github.com/svofski/vector06cc/wiki/Instruction_Timings}} <pre> Си…»2021-06-05T00:55:01Z<p>Новая страница: «{{ДИ|Источник=Вектор User №15 http://www.sensi.org/scalar/ware/572/ https://github.com/svofski/vector06cc/wiki/Instruction_Timings}} <pre> Си…»</p>
<p><b>Новая страница</b></p><div>{{ДИ|Источник=Вектор User №15 http://www.sensi.org/scalar/ware/572/ https://github.com/svofski/vector06cc/wiki/Instruction_Timings}}<br />
<pre><br />
Системная шина, или 3МГц: миф или реальность?<br />
Справочное пособие для системных программистов на "Вектор"-<br />
подобных машинах<br />
(C) Copyright 1994 by Spase corp. All rights reserved.<br />
<br />
Омск, (3812) 655730 Шашков Вячеслав Александрович.<br />
<br />
<br />
I. Работа системной шины.<br />
<br />
Толчком к написанию этой статьи послужили работы Омского центра<br />
программирования по установке в "Вектор"-подобные машины процессора Zilog<br />
Z-80. Естественно, при этом хотелось повысить быстродействие компьютера за<br />
счет того, что Z80 может работать на тактовой частоте вплоть до 12 МГц. Для<br />
этого необходимо было понять, как в "Векторе" решена проблема взаимодействия<br />
процессора и видеоадаптера при обращении к ОЗУ.<br />
Для обеспечения взаимодействия ОЗУ, ПЗУ, микропроцессора и видеоа-<br />
даптера служит системная шина. В первом приближении это - комплекс проводов,<br />
передающих различные сигналы, и устройство управления. Именно оно определяет<br />
эффективность использования ресурсов машины.<br />
Работа системной шины в "Векторе" организована по циклам. Различают<br />
два вида цикла шины: цикл с обращением процессора и цикл без обращения про-<br />
цессора. Каждый цикл разбивается на 4 такта, а такт, в свою очередь, на 4<br />
четверти. Длительность одного такта составляет 1 период тактовой частоты<br />
процессора (3 МГц на "Векторе"). Рассмотрим работу системной шины по тактам.<br />
Первый такт любого цикла шины - такт обращения видеоадаптера. Уст-<br />
ройство управления вырабатывает сигнал переключения шины так, что на ад-<br />
ресные входы ОЗУ приходит адрес, сформированный видеоадаптером. В конце так-<br />
та информация, считанная из ОЗУ, заносится в регистры сдвига и затем точка<br />
за точкой выводится на экран в течение всего цикла шины.<br />
Второй такт цикла шины служит для приведения ее в исходное состояние<br />
для обращения процессора. В конце такта процессор, в случае обращения к ОЗУ,<br />
выдает сигнал MREQ. В ответ на это устройство управления формирует сигнал<br />
ПЕР, который выбирает тип остальных тактов цикла как тактов с обращением<br />
процессора. Если же сигнал MREQ не был выставлен, то шина отрабатывает цикл<br />
без обращения процессора.<br />
Во время 3-го и 4-го такта цикла без обращения процессора шина отра-<br />
батывает холостые такты, никакие операции не производятся.<br />
Во время 3-го такта цикла с обращением процессора (это соответствует<br />
второму такту микропроцессора) на микросхемы ОЗУ выдается адрес, сформиро-<br />
ванный процессором. На первой четверти 4-го такта происходит передача данных<br />
между процессором и ОЗУ. Затем шина подготавливается к выдаче байта видеоа-<br />
даптеру.<br />
Все происходит нормально, если начало цикла памяти процессором сов-<br />
падет по времени с тактом 2 цикла шины. В прочих случаях устройство управле-<br />
ния выставляет процессору сигнал READY=0, в ответ на что процессор, начиная<br />
со следующего такта своего цикла, перейдет в состояние ожидания, в котором<br />
будет находиться до тех пор, пока шина не начнет выполнять третий такт. Сле-<br />
довательно, если процессор выставил запрос на обращение к ОЗУ, например, в<br />
3-м такте цикла шины, то он будет находиться в состоянии ожидания в течение<br />
4-го, 1-го и 2-го тактов цикла шины.<br />
При выполнении процессором последовательности 4-тактных команд, т.е.<br />
команд, цикл которых состоит из 4-х тактов, например, NOP, ADD R, CMA, XCHG,<br />
все циклы процессора оказываются согласованными с циклами шины, и дополни-<br />
тельные такты ожидания не появляются. В остальных случаях работа шины приво-<br />
дит к тому, что на выполнение любого машинного цикла требуется кратное 4-м<br />
число тактов. Например, команда MOV R1,R, чей цикл занимает 5 тактов, в<br />
действительности требует 8 тактов.<br />
<br />
Установка процессора Z80, все циклы которого не длиннее 4-х тактов,<br />
приведет к тому, что одна из наиболее употребляемых команд - MOV, будет ра-<br />
ботать вдвое быстрее, что повысит общее быстродействие ПК примерно на<br />
15-20%.<br />
<br />
II. Таблица команд МП Intel 8080 (КР580ВМ80)<br />
<br />
1-я колонка - время выполнения в тактах i8080;<br />
2-я колонка - время выполнения на "Вектор"-подобных ПК.<br />
<br />
MOV R1,R 5 8 MOV R,M 7 8 MVI R,D8 7 8<br />
MVI M,D8 10 12 STAX RP 7 8 LDAX RP 7 8<br />
STA ADR 13 16 LDA ADR 13 16<br />
<br />
LXI RP,D16 10 12 SHLD ADR 16 20 LHLD ADR 16 20<br />
PUSH RP 11 16 POP RP 10 12 SPHL 5 8<br />
XCHG 4 4 XTHL 18 24<br />
<br />
CMC 4 4 STC 4 4 CMA 4 4<br />
DAA 4 4 INR R 5 8 INR M 10 12<br />
DCR R 5 8 DCR M 10 12 INX RP 5 8<br />
DCX RP 5 8<br />
<br />
ADD R 4 4 ADD M 7 8 SUB R 4 4<br />
SUB M 7 8 ADC R 4 4 ADC M 7 8<br />
SBB R 4 4 SBB M 7 8 ANA R 4 4<br />
ANA M 7 8 ORA R 4 4 ORA M 7 8<br />
XRA R 4 4 XRA M 7 8 ADI D8 7 8<br />
ACI D8 7 8 SUI D8 7 8 SBI D8 7 8<br />
ANI D8 7 8 ORI D8 7 8 XRI D8 7 8<br />
CMP R 4 4 CMP M 7 8 CPI D8 7 8<br />
<br />
DAD RP 10 12<br />
<br />
RRC 4 4 RLC 4 4 RAL 4 4<br />
RAR 4 4<br />
<br />
EI 4 4 DI 4 4 NOP 4 4<br />
HLT 7 8<br />
<br />
IN # 10 12 OUT # 10 12<br />
<br />
PCHL 5 8 JMP ADR 10 12 J* ADR 10 12<br />
<br />
CALL ADR 17 24 C* ADR /Y 17 24 C* ADR /N 11 16<br />
RST N 11 16 RET 10 12 R* /Y 11 16<br />
R* /N 5 8<br />
<br />
<br />
III. Команды Z80, имеющие другое время выполнения.<br />
(по материалам НТЦ "ЭЛИС", г. Москва)<br />
<br />
ADD HL,RP DAD RP 11 12 CALL *,ADR C* ADR /N 10 12<br />
DEC RP DCX RP 6 8 DEC REG DCR R 4 4<br />
EX (SP),HL XTHL 19 24 INC (HL) INR M 11 16<br />
DEC (HL) DCR M 11 16 INC RP INX RP 6 8<br />
DEC R DCR R 4 4 JP (HL) PCHL 4 4<br />
LD R1,R MOV R1,R 4 4 LD SP,HL SPHL 6 8<br />
OUT #,A OUT # 11 12 IN A,# IN # 11 12<br />
<br />
Примечание. Знаки /Y, /N - обозначают выполнение команды в случае соот-<br />
ветственно истинности или ложности условия.<br />
<br />
</pre><br />
[[Категория:Вектор-06Ц]]</div>Nzeemin