Важная информация

User Tag List

Показано с 1 по 10 из 625

Тема: Расчёт точного времени выполнения команд различными процессорами архитектуры PDP-11.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Расчёт точного времени выполнения команд различными процессорами архитектуры PDP-11.

    Универсальные тесты таймингов:

    Последние версии всех универсальных тестов в одном архиве:

    PDP11_TimingsTests.

    Старые версии тестов, но с индивидуальным описанием каждого теста:

    PDPCLK.SAV, IRQ.SAV, MOV.SAV, MOVB.SAV, CMP.SAV, CMPB.SAV, ADD.SAV, BIS.SAV, BISB.SAV, OP1.SAV, MOVPC.SAV, MOVPC_v1.1, MOVPC2.SAV, RTS.SAV, JMP.SAV, JSR.SAV, MUL.SAV, DIV.SAV, ASH.SAV, ASHC.SAV


    Тесты таймингов для процессора 1801ВМ1 и систем с ВЕ-таймером:

    VM1C4.SAV, VM1MOV.SAV, VM1CMP.SAV, VM1ADD.SAV, VM1BIS.SAV

    ===========================================

    Исходное сообщение темы ( представляет главным образом исторический интерес ):

    Скрытый текст


    Исходные величины, одинаково влияющие на время выполнения процессором любой команды - это задержка шины и задержка ячейки ( образующие в сумме задержку доступа Tadr ) и продолжительность такта процессора T.

    Задержка доступа различается по:

    1. Типу адресуемой ячейки:
    1.1 ячейка ОЗУ - Tadr = Tram;
    1.2 регистр устройства - Tadr = Tdev;
    1.3 ячейка ПЗУ - Tadr = Trom

    2. Типу доступа:
    2.1 чтение TadrR;
    2.2 запись TadrW;
    2.3 модификация TadrM.

    В данное время мне наиболее интересны параметры времени выполнения команд процессором 1801ВМ1.

    Выборка команд из памяти у процессора 1801ВМ1 не конвееризована, поэтому время выполнения команды NOP складывается из времени выборки команды ( TadrR ) и времени обработки команды ( 8*T ).

    Значит, формула времени выполнения команды NOP: Tnop = TadrR + 8T. Если команда NOP находится в ОЗУ, то это TramR + 8T, а если в ПЗУ - то TromR + 8T.

    В справочниках есть упрощённые формулы вычисления времени выполнения команд 1801ВМ1:
    Код:
    Времена выполнения команд:
    
         одноадресных			     двухадресных
    метод		время		метод адресации		время
    адресации	выполнения	источн.	приемн.		выполнения
        0		8T+tn		0	0		8T+tn
        1		21T+3tn		1	0		18T+2tn
        2		20T+3tn		2	0		18T+2tn
        3		27T+4tn	<Испр.	3	0		25T+3tn
        4		21T+3tn		4	0		20T+2tn
        5		28T+4tn		5	0		26T+3tn
        6		27T+4tn		6	0		25T+3tn
        7		34T+5tn		7	0		32T+4tn <Испр.
    				0	1		26T+2tn 
    Время выполнения команд		0	2		28T+2tn 
    управления HALT=54T+7tn		0	3		31T+3tn
    команд IOT,BPT,EMT,TRAP		0	4		28T+2tn
    42T+5tn; команд устано-		0	5		32T+3tn
    вки и очистки признаков		0	6		31T+3tn
    8T+tn;     максимальное		0	7		40T+4tn
    время ожидания ПДП  8T+		1	1		28T+3tn
    +2tn для цикла ввод-па-		2	2		30T+3tn
    уза-вывод; максимальное		3	3		40T+5tn
    время от момента запро-		4	4		31T+3tn
    са прерывания до выбор-		5	5		42T+5tn
    ки первой команды ново-		6	6		40T+5tn
    го  процесса   98T+12tn		7	7		56T+7tn
    (время выполнения самой
    длинной команды  + IOT)
    
    В  таблицах  приведены   времена    исполнения    для   одноадресных команд
    COM, INC, DEC, ADC,  SBC,  ASR,  ASL,  ROL,  ROR,  CLR,  и для двухадресных
    ADD, SUB, BIC, BIS, XOR. За T обозначен период тактовой частоты процессора,
    tn-время между выдачей DIN/DOUT и приходом RPLY.
    Однако, здесь уже не всё так просто и очевидно, как в случае с NOP.

    Начнём с одноадресных команд. Рассмотрим формулы времени выполнения команды INC в зависимости от используемого метода адресации:

    Код:
    0:   INC   R0         TadrR + 8T
    1:   INC   (R0)       TadrR + 8T + TadrR + 13T + TadrW
    2.   INC   (R0)+      TadrR + 8T + TadrR + 12T + TadrW
    3:   INC   @(R0)+     TadrR + 8T + TadrR + 19T + TadrW
    4:   INC   -(R0)      TadrR + 8T + TadrR + 13T + TadrW
    5:   INC   @-(R0)     TadrR + 8T + TadrR + 13T + TadrR + 7T + TadrW
    6:   INC   2(R0)      TadrR + 8T + TadrR + 12T + TadrR + 7T + TadrW
    7:   INC   @2(R0)     TadrR + 8T + TadrR + 12T + TadrR + 7T + TadrR + 7T + TadrW
    Как такое может быть, чтобы команда INC @-(R0) требовала ( для своего выполнения ) четырёх обращений к памяти, а команда INC @(R0)+ только ТРЁХ ???

    Очевидно, что в справочнике ошибка - исправляем.
    Код:
    0:   INC   R0         TadrR + 8T
    1:   INC   (R0)       TadrR + 8T + TadrR + 13T + TadrW
    2.   INC   (R0)+      TadrR + 8T + TadrR + 12T + TadrW
    3:   INC   @(R0)+     TadrR + 8T + TadrR + 12T + TadrR + 7T + TadrW
    4:   INC   -(R0)      TadrR + 8T + TadrR + 13T + TadrW
    5:   INC   @-(R0)     TadrR + 8T + TadrR + 13T + TadrR + 7T + TadrW
    6:   INC   2(R0)      TadrR + 8T + TadrR + 12T + TadrR + 7T + TadrW
    7:   INC   @2(R0)     TadrR + 8T + TadrR + 12T + TadrR + 7T + TadrR + 7T + TadrW


    Теперь двухадресные команды:


    Код:
    00:   ADD   R0, R1         TadrR +8T 
    10:   ADD   (R0), R1       TadrR +10T +TadrR +8T
    01:   ADD   R0, (R1)       TadrR +10T +(TadrR+8T) +8T 
    20:   ADD   (R0)+, R1      TadrR +10T +TadrR +8T
    02:   ADD   R0, (R1)+      TadrR +10T +(TadrR+8T) +10T
    30:   ADD   @(R0)+, R1     TadrR +10T +TadrR +7T +TadrR +8T
    03:   ADD   R0, @(R1)+     TadrR +9T +TadrR +7T +(TadrR+8T) +7T
    40:   ADD   -(R0), R1      TadrR +12T +TadrR +8T
    04:   ADD   R0, -(R1)      TadrR +10T +(TadrR+8T) +10T
    50:   ADD   @-(R0), R1     TadrR +10T +TadrR +8T +TadrR +8T
    05:   ADD   R0, @-(R1)     TadrR +10T +TadrR +7T +(TadrR+8T) +7T
    60:   ADD   2(R0), R1      TadrR +10T +TadrR +7T +TadrR +8T
    06:   ADD   R0, 2(R1)      TadrR +9T +TadrR +7T +(TadrR+8T) +7T
    70:   ADD   @2(R0), R1     TadrR +10T +TadrR +7T +TadrR +7T +TadrR +8T
    07:   ADD   R0, @2(R1)     TadrR +10T +TadrR +7T +TadrR +7T +(TadrR+8T) +8T
    Код:
    11: ADD (R0), (R1)      TadrR+6T+TadrR+7T+(TadrR+8T)+7T
    22: ADD (R0)+, (R1)+    TadrR+8T+TadrR+7T+(TadrR+8T)+7T
    33: ADD @(R0)+, @(R1)+  TadrR+8T+TadrR+6T+TadrR+6T+TadrR+6T+(TadrR+8T)+6T
    44: ADD -(R0), -(R1)    TadrR+8T+TadrR+7T+(TadrR+8T)+8T
    55: ADD @-(R0), @-(R1)  TadrR+8T+TadrR+7T+TadrR+6T+TadrR+7T+(TadrR+8T)+6T
    66: ADD 2(R0), 2(R1)    TadrR+8T+TadrR+6T+TadrR+6T+TadrR+6T+(TadrR+8T)+6T
    77: ADD @2(R0), @2(R1)  TadrR+10T+TadrR+6T+TadrR+6T+TadrR+6T+TadrR+6T
                            +TadrR+6T+(TadrR+8T)+8T
    Весьма странная информация..

    Из информации об одноадресных командах следует, что процессор 1801ВМ1 не использует цикл "чтение-модификация-запись" при выполнении одноадресных команд. Вместо этого для модификации операнда используется его "полновесное" чтение и затем такая же запись. В таблице же двухадресных команд циклы записи вообще отсутствуют, но зато к последнему циклу чтения делается "добавка" +8T, как бы намекающая на то, что это и не чтение вовсе, а "чтение-модификация-запись".

    Но уж слишком это противоречит информации из таблицы времени выполнения одноадресных команд.

    ...

    Однако, для практической эмуляции достоверного быстродействия процессора 1801ВМ1 нужны не только точные формулы, но и конкретные значения используемых в вычислениях величин.

    С продолжительностью такта процессора всё понятно - при рабочей частоте 1801ВМ1 = 100 кГц - 5 МГц, продолжительность такта составит T = 10 мкс - 0.2 мкс.
    [свернуть]
    ...

    Добавлен файл VM1S2.zip, содержащий "1801VM1 System test 2"
    Добавлен файл VM1SPD.zip, содержащий "1801VM1 Mhz Speed Meter v1.0"
    Добавлен файл VM1VE3.zip, содержащий "1801VM1 VE-Timer Test #3"
    Добавлен файл VM1VE4.zip, содержащий "1801VM1 VE-Timer Test #4"
    Добавлен файл VM1C1.zip, содержащий "1801VM1 Timings Test #1a"

    ...
    Вложения Вложения
    • Тип файла: zip VM1S2.zip (17.4 Кб, Просмотров: 604)
    • Тип файла: zip VM1SPD.zip (17.9 Кб, Просмотров: 629)
    • Тип файла: zip VM1VE3.zip (18.3 Кб, Просмотров: 599)
    • Тип файла: zip VM1VE4.zip (19.5 Кб, Просмотров: 635)
    • Тип файла: zip VM1C1.zip (20.3 Кб, Просмотров: 605)
    Последний раз редактировалось Patron; 21.02.2014 в 13:27.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 234
    Последнее: 26.02.2021, 11:05
  2. Время выполнения команд CPI/CPD/CPIR/CPDR
    от ARTi в разделе Программирование
    Ответов: 27
    Последнее: 18.12.2007, 16:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •