User Tag List

Страница 3 из 48 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 627

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

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

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

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

    По умолчанию

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

    [Время выполнения команды] = [Суммарное время всех циклов шины] + [Суммарное время всех штрафов].

    Процессор 1801ВМ1 использует следующие циклы шины Q-Bus:

    1. DATI ( Чтение ) - для выборки команд и не модифицируемых данных из памяти.
    2. DATO / DATOB ( Запись / Запись байта ) - только в командах MOV и MOVB для записи результата в память.
    3. DATIO ( Чтение-Модификация-Запись ) - для доступа ко всем модифицируемым данным в памяти.

    Время выполнения циклов процессором 1801ВМ1 зависит от продолжительности периода тактовой частоты T и времени задержки памяти tn:
    Код:
    DATI : [ 7*T+tn]
    DATO : [10*T+tn]
    DATIO: [13*T+tn+tn]
    В дальнейшем изложении (для простоты) множитель *T упоминаться не будет, поэтому формулы продолжительности циклов шины будут иметь такой вид:
    Код:
    DATI : [7+tn]
    DATO : [10+tn]
    DATIO: [13+2tn]
    Время задержки памяти (в тактах) для ОЗУ ДВК-1: tn = 6, для ПЗУ ДВК-1: tn = 2.

    Поэтому, например - в ОЗУ ДВК-1 цикл чтения ( DATI ) будет выполняться за 7 + 6 = 13 тактов.

    ...

    Теперь рассмотрим какие штрафы быстродействия (в тактах) имеет процессор 1801ВМ1 при выполнении команд:
    Код:
    1. [Штраф исполнения]            = 1 - для всех команд.
    2. [Штраф второго операнда]      = 1 - для команд, использующих два операнда,
                                           если один из них в памяти.
    3. [Штраф отмены предвыборки]    = 2 - для команд, выполняющих больше одного 
                                           цикла шины.
    4. [Штраф префиксной адресации]  = 1 - для каждого операнда с 
                                           префиксной адресацией.
    5. [Штраф невзаимности]          = 5 ( для MOV = 4 ) - для команд, у которых 
                                           первый операнд не обращается к памяти,
                                           а второй - обращается.
    Кроме того, команда MOV имеет при некоторых режимах адресации дополнительные штрафы от 1 до 4 тактов, природа которых пока совсем не понятна.

    Теперь попробуем определить при помощи предложенного формализма продолжительность выполнения процессором 1801ВМ1 в ОЗУ ДВК-1 команды
    Код:
    	Add	@TAB(R1), -(R0)
    1. Сначала определим используемые циклы шины и их продолжительность: DATI (чтение кода команды) + DATI (чтение смещения к адресу первого операнда) + DATI (чтение адреса первого операнда) + DATI (чтение первого операнда) + DATIO (чтение-модификация-запись второго операнда) = [7+tn]+[7+tn]+[7+tn]+[7+tn]+[13+2tn] = 77 тактов.

    2. Теперь определим используемые штрафы: [Штраф исполнения]+[Штраф второго операнда]+[Штраф отмены предвыборки]+[Штраф префиксной адресации ( за второй операнд ) ] = 1+1+2+1 = 5 тактов.

    3. Определим суммарную продолжительность выполнения команды: 77 + 5 = 82 такта ( что полностью соответствует измеренной величине ) .
    Последний раз редактировалось Patron; 18.12.2012 в 13:03.

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

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    2. DATO / DATOB ( Запись / Запись байта ) - только в командах MOV и MOVB для записи результата в память.
    А у CLR и подобных команд какой цикл?

  4. #3

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так команды с байтами получаются быстрее или медленнее? И насколько?

  5. #4

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >Таблицы таймингов рулят.
    Это конечно, но элементарных вопросов, когда всё познаёшь с нуля не избежать.
    Как я понимаю по таблице, с байтами команды работают то же время, что и со словами. Это же таблица для однооперандных команд? И почему время выполнения OPR @(R0)+ и ORP @-(R0) отличается на такт? Неужели из-за того, что постинкремент мог параллелиться с основной командой?
    Последний раз редактировалось NovaStorm; 19.12.2012 в 14:25.

  6. #5

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

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    И почему время выполнения OPR @(R0)+ и ORP @-(R0) отличается на такт? Неужели из-за того, что постинкремент мог параллелиться с основной командой?
    Именно!

    Вообще, независимая параллельная работа отдельных блоков ( шинного, управляющего и арифметического ) применяется в процессорах ВМх везде, где только можно.

    Разработчики стремились сделать так, чтобы на каждом такте каждый блок процессора вносил максимальный вклад в итоговое быстродействие.

    Например, судя по итогам проведённого тестирования - шинный блок 1801ВМ1 сам начинает (предположительно) предвыборку кода следующей команды, пока управляющий блок ещё не раскодировал текущую. Из-за этого в тех случаях, когда текущая команда запрашивает дополнительный цикл шины ( чтобы прочитать или записать операнд ) - происходит удлинение выполнения команды из-за отмены предвыборки (это может быть и просто задержка получения исполнительного адреса). Штраф отмены предвыборки у 1801ВМ1 составляет 2 такта ( или, возможно, только 1 такт - это ещё предстоит уточнить ).
    Последний раз редактировалось Patron; 20.12.2012 в 12:17.

  7. #6

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ого, таки не лаптем щи у нас хлебали! =)

  8. #7

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Ого, таки не лаптем щи у нас хлебали! =)
    Не у нас, вроде, а в DEC. Или, как в случае с 580ИК80, контактные площадки рулят? ;-)
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  9. #8

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

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Не у нас, вроде, а в DEC.
    Только если микроядро LSI-11 может осуществлять несколько операций параллельно, как это делает 1801ВМ1.

  10. #9

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Только если микроядро LSI-11 может осуществлять несколько операций параллельно, как это делает 1801ВМ1.
    Могу протестировать М7264ЕВ(без чипа FIS).

    - - - Добавлено - - -

    Тест скорости М7264ЕВ.
    Код:
    .SPEED
     
    ТЕСТ БЫСТРОДЕЙСТВИЯ
     
    КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
    БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК)      232
     
    КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
    БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК)      168
    .
    Не густо.

    - - - Добавлено - - -

    Тест PDPCLK.
    Код:
    .PDPCLK
    PDPCLK - Calculate CPU clocks - v1.0
     
    This CPU has no ASHC instruction !!!
     
    Program completed.
    - - - Добавлено - - -

    Хреново, похоже и EIS нет.
    Последний раз редактировалось MiX; 04.09.2024 в 15:40.

    Этот пользователь поблагодарил MiX за это полезное сообщение:

    Denkixot(06.09.2024)

  11. #10

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Не у нас, вроде, а в DEC.
    Не, реализация-то наша. Архитектура PDP вообще из-за постоянного доступа к памяти хреново параллелится. DEC более-менее приличную архитектуру только к альфе осилила и то, грелась она как печка, а производительности было не так уж сильно больше чем у PPro.

Страница 3 из 48 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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