User Tag List

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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тесты продолжительности (в тактах) двухоперандных команд процессора 1801ВМ1 дали на ДВК-1 5.3 МГц следующие результаты:

    1801VM1 MOV Timings Test v1.1

    Код:
    Scale: 256
    Retry: 256
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    Mov     R1     14   37    41      49      41      50    49     49      64
    Mov    (R1)    30   45    49      59      49      59    59     59      72
    Mov    (R1)+   30   46    49      59      49      59    59     59      72
    Mov   @(R1)+   43   59    62      72      62      73    73     73      84
    Mov   -(R1)    30   47    49      59      49      60    59     59      73
    Mov  @-(R1)    44   60    63      73      63      73    73     73      86
    Mov    Addr    43   59    62      73      62      73    73     73      85
    Mov  @Tab(R1)  56   73    73      85      73      86    85     85      98
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    MovB    R1     14   37    41      49      41      51    49     49      64
    MovB   (R1)    30   46    49      59      49      60    59     59      73
    MovB   (R1)+   30   46    49      59      49      60    59     59      73
    MovB  @(R1)+   43   59    62      73      62      73    73     73      85
    MovB  -(R1)    30   47    49      59      49      60    59     59      73
    MovB @-(R1)    44   60    63      73      63      73    73     73      86
    MovB   Addr    43   59    62      73      62      73    73     73      85
    MovB @Tab(R1)  56   73    73      85      73      86    85     85      98

    1801VM1 ADD & SUB Timings Test v1.0

    Код:
    Scale: 256
    Retry: 400
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    Add     R1     14   47    47      60      49      61    60     60      73
    Add    (R1)    30   55    55      69      56      70    69     69      82
    Add    (R1)+   30   55    55      69      56      70    69     69      82
    Add   @(R1)+   43   68    68      82      70      83    82     82      95
    Add   -(R1)    30   56    56      69      56      70    69     69      82
    Add  @-(R1)    44   69    69      82      70      83    82     82      96
    Add    Addr    43   68    68      82      70      83    82     82      95
    Add  @Tab(R1)  56   81    81      95      82      95    95     95      108
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    Sub     R1     14   47    47      60      49      61    60     60      73
    Sub    (R1)    30   55    55      69      56      70    69     69      82
    Sub    (R1)+   30   55    55      69      56      70    69     69      82
    Sub   @(R1)+   43   68    68      82      70      83    82     82      95
    Sub   -(R1)    30   56    56      69      56      70    69     69      82
    Sub  @-(R1)    44   69    69      82      70      83    82     82      96
    Sub    Addr    43   68    68      82      70      83    82     82      95
    Sub  @Tab(R1)  56   81    81      95      82      95    95     95      108

    1801VM1 CMP & BIT Timings Test v1.0

    Код:
    Scale: 256
    Retry: 400
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiT     R1     14   35    35      49      36      49    49     49      61
    BiT    (R1)    30   43    43      56      44      58    57     57      70
    BiT    (R1)+   30   43    43      57      44      58    57     57      70
    BiT   @(R1)+   43   57    57      70      58      71    70     70      83
    BiT   -(R1)    31   44    44      57      45      58    57     57      71
    BiT  @-(R1)    44   57    57      71      58      72    71     71      84
    BiT    Addr    43   57    57      70      58      71    70     70      83
    BiT  @Tab(R1)  56   70    70      83      71      84    83     83      96
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiTB    R1     14   35    35      49      36      49    49     49      61
    BiTB   (R1)    30   43    43      57      44      58    57     57      70
    BiTB   (R1)+   30   43    43      57      44      58    57     57      70
    BiTB  @(R1)+   43   57    57      70      58      71    70     70      83
    BiTB  -(R1)    31   44    44      57      45      58    57     57      71
    BiTB @-(R1)    44   57    57      70      58      72    70     71      84
    BiTB   Addr    43   57    57      70      58      71    70     70      83
    BiTB @Tab(R1)  56   70    70      83      71      84    83     83      96
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    Cmp     R1     14   35    35      49      36      49    49     49      61
    Cmp    (R1)    30   43    43      57      44      58    57     57      70
    Cmp    (R1)+   30   43    43      57      44      58    57     57      70
    Cmp   @(R1)+   43   57    57      70      58      71    70     70      83
    Cmp   -(R1)    31   44    44      57      45      58    57     57      71
    Cmp  @-(R1)    44   57    57      71      58      72    71     71      84
    Cmp    Addr    43   57    57      70      57      71    70     70      83
    Cmp  @Tab(R1)  56   70    70      83      71      84    83     83      96
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    CmpB    R1     14   35    35      49      36      49    49     49      61
    CmpB   (R1)    30   43    43      56      44      58    56     56      70
    CmpB   (R1)+   30   43    43      56      44      58    57     57      70
    CmpB  @(R1)+   43   57    57      70      58      71    70     70      83
    CmpB  -(R1)    30   44    44      57      45      58    57     57      71
    CmpB @-(R1)    44   57    57      70      58      72    70     70      84
    CmpB   Addr    43   56    56      70      58      71    70     70      83
    CmpB @Tab(R1)  56   70    70      83      71      84    83     83      96


    1801VM1 BIS & BIC Timings Test v1.0

    Код:
    Scale: 256
    Retry: 400
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiC     R1     14   47    47      60      49      61    60     60      73
    BiC    (R1)    30   55    55      69      56      70    69     69      82
    BiC    (R1)+   30   55    55      69      56      70    69     69      82
    BiC   @(R1)+   43   68    68      82      70      83    82     82      95
    BiC   -(R1)    30   55    55      69      57      70    69     69      82
    BiC  @-(R1)    44   69    69      82      70      83    82     82      96
    BiC    Addr    43   68    68      82      70      83    82     82      95
    BiC  @Tab(R1)  56   82    82      95      82      95    95     95      109
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiCB    R1     14   47    47      60      49      61    60     60      73
    BiCB   (R1)    30   55    55      69      56      70    69     69      82
    BiCB   (R1)+   30   55    55      69      56      70    69     69      82
    BiCB  @(R1)+   43   68    68      82      70      83    82     82      95
    BiCB  -(R1)    31   55    55      69      57      70    69     69      82
    BiCB @-(R1)    44   69    69      82      70      83    82     82      96
    BiCB   Addr    43   68    68      82      70      83    82     82      95
    BiCB @Tab(R1)  56   82    82      95      82      96    95     95      109
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiS     R1     14   47    47      60      49      61    60     60      73
    BiS    (R1)    30   55    55      69      56      70    69     69      82
    BiS    (R1)+   30   55    55      69      56      70    69     69      82
    BiS   @(R1)+   43   68    68      82      70      83    82     82      95
    BiS   -(R1)    31   55    55      69      57      70    69     69      82
    BiS  @-(R1)    44   69    69      82      70      83    82     82      96
    BiS    Addr    43   68    68      82      70      83    82     82      95
    BiS  @Tab(R1)  56   82    82      95      82      96    95     95      109
    
                   R0  (R0)  (R0)+  @(R0)+  -(R0)  @-(R0)  Addr  @#Addr  @Tab(R0)
    
    BiSB    R1     14   47    47      60      49      61    60     60      73
    BiSB   (R1)    30   55    55      69      56      70    69     69      82
    BiSB   (R1)+   30   55    55      69      56      70    69     69      82
    BiSB  @(R1)+   43   68    68      82      70      83    82     82      95
    BiSB  -(R1)    31   55    55      69      57      70    69     69      82
    BiSB @-(R1)    44   69    69      82      70      83    82     82      96
    BiSB   Addr    43   68    68      82      70      83    82     82      95
    BiSB @Tab(R1)  56   82    82      95      82      96    95     95      109

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

  3. #2

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если взять исправленную "официальную таблицу" таймингов команд процессора 1801ВМ1 для двухоперандных команд типа ADD и добавить туда измеренные значения - получится так:

    Код:
    Времена выполнения команд:
    
         двухадресных	предсказанное	измеренное	
    метод адресации		время		время		разница	
    источн.	приемн.		выполнения	выполнения
       0	   0		8T+tn		8T+tn		 0
       1	   0		18T+2tn		18T+2tn		 0
       2	   0		18T+2tn		18T+2tn		 0
       3	   0		25T+3tn		25T+3tn		 0
       4	   0		19T+2tn		19T+2tn		 0
       5	   0		26T+3tn		26T+3tn		 0
       6	   0		25T+3tn		25T+3tn		 0
       7	   0		32T+4tn		32T+4tn		 0
       0	   1		26T+3tn		29T+3tn		+3
       0	   2		28T+3tn		29T+3tn		+1
       0	   3		31T+4tn		36T+4tn		+5
       0	   4		28T+3tn		31T+3tn		+3
       0	   5		32T+4tn		37T+4tn		+5
       0	   6		31T+4tn		36T+4tn		+5
       0	   7		40T+5tn		43T+5tn		+3
       1	   1		28T+4tn		31T+4tn		+3
       2	   2		30T+4tn		31T+4tn		+1
       3	   3		40T+6tn		46T+6tn		+6
       4	   4		31T+4tn		32T+4tn		+1
       5	   5		42T+6tn		47T+6tn		+5
       6	   6		40T+6tn		46T+6tn		+6
       7	   7		56T+8tn		60T+8tn		+4
    Для команд, не пишущих результат в память - совпадение предсказанных и измеренных результатов идеальное.
    При выполнении завершающего команду цикла ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ ( цикл DATIO ) - реально команда выполняется немного медленнее, чем предсказано.

    ...
    P.S.
    В процессе изучения "официальной таблицы таймингов" из описания 1801ВМ1 - выяснилось, что её исходный вариант имеет ошибки с указанием числа ожиданий сигнала RPLY ( tn ) - практически в каждой строке.

    Для сравнения - исходный и исправленный варианты таблицы:

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


    Код:
    Времена выполнения команд:
    
         одноадресных			     двухадресных
    метод		время		метод адресации		время
    адресации	выполнения	источн.	приемн.		выполнения
        0		8T+tn		0	0		8T+tn
        1		21T+3tn		1	0		18T+2tn
        2		20T+3tn		2	0		18T+2tn
        3		27T+3tn		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+3tn
    				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)
    Код:
    Времена выполнения команд:
    
         одноадресных			     двухадресных
    метод		время		метод адресации		время
    адресации	выполнения	источн.	приемн.		выполнения
        0		8T+tn		0	0		8T+tn
        1		20T+3tn	<Испр.	1	0		18T+2tn
        2		20T+3tn		2	0		18T+2tn
        3		27T+4tn	<Испр.	3	0		25T+3tn
        4		21T+3tn		4	0		19T+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+3tn <Испр.
    Время выполнения команд		0	2		28T+3tn <Испр.
    управления HALT=54T+7tn		0	3		31T+4tn <Испр.
    команд IOT,BPT,EMT,TRAP		0	4		28T+3tn <Испр.
    42T+5tn; команд устано-		0	5		32T+4tn <Испр.
    вки и очистки признаков		0	6		31T+4tn <Испр.
    8T+tn;     максимальное		0	7		40T+5tn <Испр.
    время ожидания ПДП  8T+		1	1		28T+4tn <Испр.
    +2tn для цикла ввод-па-		2	2		30T+4tn <Испр.
    уза-вывод; максимальное		3	3		40T+6tn <Испр.
    время от момента запро-		4	4		31T+4tn <Испр.
    са прерывания до выбор-		5	5		42T+6tn <Испр.
    ки первой команды ново-		6	6		40T+6tn <Испр.
    го  процесса   98T+12tn		7	7		56T+8tn <Испр.
    (время выполнения самой
    длинной команды  + IOT)
    [свернуть]
    Так ( например ) авторы "официальной таблицы" ошибочно указали, что в ходе выполнения команды ADD @Tab(R1), @Tab(R0) процессор 1801ВМ1 ожидает сигнал RPLY - 7 раз, тогда как на самом деле - 8, чтобы:

    1 - прочитать код команды;
    2 - прочитать смещение первого аргумента
    3 - прочитать адрес первого аргумента
    4 - прочитать первый аргумент
    5 - прочитать смещение второго аргумента
    6 - прочитать адрес второго аргумента
    7 - прочитать второй аргумент
    8 - записать результат

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

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

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

Похожие темы

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

Ваши права

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