Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Другие архитектуры »   Инопланетные скрижали
RSS

Инопланетные скрижали

PDP-11 для Intelоидов

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 22 23 24 25 26 * 27 28 29 30
Печать
 
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
andyTh написал:
[q]
У вас есть время в двух ситуациях.
[/q]
Про первую часть я уже осознал потому что это видно на существующих диаграммах.

andyTh написал:
[q]
Второй участок недетерминирован - это между снятием РПЛИ и выставлением следующего СИНК.
[/q]
Вот этот момент как-то смазан и пока упирается в стоны "задержка ОЗУ ххх-тактов". Меня в данном случае интересует все, что происходит(а не может происходить) между передними фронтами SYNC при ответе устройств и памяти в том числе, если сигнал RPLY формируется втечение одного такта(CLC) после выставления процессором DIN или DOUT.

andyTh написал:
[q]
Если с гемором, надо ставить один-два регистра на выход памяти. И защёлкивать либо данные для проца либо данные для видео.
[/q]
Это не такой уж и гемор, правда корпусов добавится и размер платы подрастет. Так в каждом клоне спектрума сделано - берем атрибуты когда можно, используем, когда нужно.

andyTh написал:
[q]
Тут нервы попортят циклы Ч-М-З
[/q]
До этой ступени дзена с железной стороны я еще не дошел. С программной стороны все ясно и понятно.

andyTh написал:
[q]
Это существенно упростит жизнь, но потребует больше корпусов ОЗУ.
[/q]
4 корпуса место двух. Это я уже описывал. При этом уменьшится на 1 кол-во мультиплексоров и дешифратор надо будет подпилить, либо зарядить туда 556РТ4А. Размер платы подрастет.

andyTh написал:
[q]
Или таки притормаживайте камешек :)
[/q]
Это решение "в лоб". В этом случае память можно сделать на чем угодно, даже на половинках РУ5 :) И соответственно скорость упадет процентов на 15.

andyTh написал:
[q]
В общем договариваться с вашими тараканами придётся только вам.
[/q]
Именно. По факту - нет полных и точных растактовок, чтоы однозначно похоронить прозрачный доступ без задержек и сделать а)ОЗУ и вдео-ОЗУ раздельно; б)подтормаживать процессор.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
.

Растактовка циклов DATI, DATO и DATIO процессора 1801ВМ1 выглядит так ( для цикла DATIO выполнить последовательно WordRead и WordWrite при bRW_Mode = true ). Значение nDOUT_Delay может быть 2 ; 3 ; 5 или 6, в зависимости от способа адресации операнда в команде. Подробнее - см. файл MPI_1801VM1.cpp ЗДЕСЬ



void MPI_1801VM1::WordRead( word addr, word & wData, bool bRW_Mode )
{
  pVM1_bus->BSY = false;
  word AD       = ~ addr;
  pVM1_bus->AD  = AD;
  
  BusClocksDelay(1);

  pVM1_bus->SYNC = false;
  pVM1_bus->DIN  = false;
  
  nRPLY_ON_Latency  = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = false;
  }

  int nOK = 0;

  for( int i = 0 ; i > 62 ; i++ )
  {
    if( !pVM1_bus->RPLY || bSEL_Mode )
    {
      nOK++;
      
      if( nOK > 1 + (int)bSEL_Mode )
      {
        break;
      }
    }

    BusClocksDelay(1);
    
    if( pVM1_bus->RPLY )
    {
      nRPLY_ON_Latency++;

      if( !i && pVM1_bus->AD == AD )
      {
        pVM1_bus->AD = ~0;
      }
    }
  }

  if( !nOK )
  {
    pVM1_bus->DIN  = true;

    BusClocksDelay(1);

    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;

    BusClocksDelay(6);

    throw(0);        // TrapTo_4
  }
  
  wData = ~ pVM1_bus->AD;

  pVM1_bus->DIN = true;

  nRPLY_OFF_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = true;
  }

  while( !pVM1_bus->RPLY )
  {
    BusClocksDelay(1);
    
    if( !pVM1_bus->RPLY )
    {
      nRPLY_OFF_Latency++;
    }
  }

  BusClocksDelay(2);
    
  if( !bRW_Mode )
  {
    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;
  }
}

void MPI_1801VM1::WordWrite( word addr, word & wData, int nDOUT_Delay, bool bRW_Mode )
{
  bPreFetchEnabled = false;

  if( !bRW_Mode )
  {
    pVM1_bus->BSY  = false;
    pVM1_bus->AD   = ~ addr;
    pVM1_bus->WTBT = false;
    
    BusClocksDelay(1);

    pVM1_bus->SYNC = false;

    BusClocksDelay(1);
  }

  pVM1_bus->WTBT = true;

  if( nDOUT_Delay > 1 )
  {
    pVM1_bus->AD   = ~ 0;
    
    BusClocksDelay( nDOUT_Delay - 1 );
  }

  pVM1_bus->AD   = ~ wData;
  pVM1_bus->DOUT = false;

  nRPLY_ON_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = false;
  }

  int nOK = 0;

  for( int i = 0 ; i > 61 ; i++ )
  {
    if( !pVM1_bus->RPLY || bSEL_Mode )
    {
      nOK++;
      
      if( nOK > 1 )
      {
        break;
      }
    }

    BusClocksDelay(1);

    if( pVM1_bus->RPLY )
    {
      nRPLY_ON_Latency++;
    }
  }

  pVM1_bus->AD   = ~0;
  pVM1_bus->DOUT = true;

  nRPLY_OFF_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = true;
  }

  if( !nOK )
  {
    BusClocksDelay(1);

    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;

    BusClocksDelay(6);

    throw(0);        // TrapTo_4
  }
  
  while( !pVM1_bus->RPLY )
  {
    BusClocksDelay(1);
    
    if( !pVM1_bus->RPLY )
    {
      nRPLY_OFF_Latency++;
    }
  }

  BusClocksDelay(2);
    
  pVM1_bus->SYNC = true;
  pVM1_bus->BSY  = true;
}
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MC68k написал:
[q]
и оплавление выходного каскада.
[/q]
здесь уточнить, оплавление анодов :) (но, увы, она отреверсена, интриги нету, анодов не обнаружено и греется она не из-за накалов)
1801BM1
Newbie


Всего сообщений: 78
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2015
MC68k написал:
[q]
1801BM1 написал:
[q]
И продолжается:
- дождались активного RPLY;
- сняли DOUT;
- ждем деактивацию RPLY;
- дождались неактивного RPLY;
- сняли SYNC;
[/q]
А вот эта часть описана, как она с клоком соотносится?
[/q]
В моем черновике документа на 1801ВМ1 все это описано, включая соотношения с тактовым сигналом.
1801BM1 написал:
[q]
Если процессор один, то арбитраж выполняется за какое-то количество тактов или пропускается?
[/q]
Пропускается.
[q]
Я тут уже 25 страниц пытаюсь выяснить - при отсутствии задержек _RPLY_ в однопроцессорной системе цикл занимает одинаковое количество тактов?
[/q]
Смотря какой цикл. Цикл чтения - всегда одинаковый. Цикл записи - зависит от внутренней жизни ядра. Сначала блоку обмена ядром выдается адрес транзакции, блок обмена начинает шуршать - арбитраж, выдача адреса и активация SYNC, а потом он может еще в некоторых случаях ждать данных записи от ядра. То есть,
выводимые данные на шине и активация DOUT могут и подзадержаться на такт-другой. Цикл чтения-модификации-записи тоже может растягиваться из-за задержки данных для финальной записи. Поэтому некоторые системы (ВП1-037 в БК, например) на него забивают и рассматривают как две отдельных транзакции чтения и записи.

Грубо говоря - у процессора два независимых блока внутри - ядро и блок обмена с внешней шиной. Работают параллельно и асинхронно друг от друга. Два типа запросов (адрес + данные), двойная буферизация адреса (теоретически ядро может выдать новый запрос сразу после активации SYNC - регистр адреса уже свободен), один ответ. Ядро живет своей сложной жизнью по микропрограмме, в которой хватает косяков типа порождения фантомных циклов, также ядро может тормозиться еще по куче факторов - готовности блока обмена, готовности АЛУ, готовности блока прерываний, готовности блока микропрограмм. Так что, найти один простой ответ на растактовку внешних циклов, типа как с 580ВМ80А - не получится, слишком много факторов на это влияет.
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
_Patron_ написал:
[q]
Растактовка циклов DATI, DATO и DATIO процессора 1801ВМ1 выглядит так
[/q]
Может быть оно так и выглядит, особенно в эмуляторе, но ... Я уж и не знаю, как еще мне объяснить. Есть ли в природе полная картина поведения сигналов процессора по отношению к фронтам(и переднему и заднему) CLC? Какие-то логи с анализаторов? Простыня на этм вашем Цэ ведь не сразу появилась.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MC68k написал:
[q]
Меня в данном случае интересует все, что происходит(а не может происходить) между передними фронтами SYNC при ответе устройств и памяти в том числе, если сигнал RPLY формируется втечение одного такта(CLC) после выставления процессором DIN или DOUT.
[/q]
До снятия SYNC картина однозначна (но все же нужно уточнение по этому тезису). Пауза между снятием SYNC и следующим SYNC может быть любой, от минимальной до произвольной (словил команду WAIT и встал намертво).
Поэтому я и предлагал разложить по тактам детерминированную часть всех видов циклов и стыковать их произвольно через минимальную паузу, как самый нагруженный, хотя и гипотетический случай. И имея в виду при этом, что пауза может быть произвольной.
1801BM1
Newbie


Всего сообщений: 78
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2015
MC68k написал:
[q]
полная картина поведения сигналов процессора по отношению к фронтам
[/q]
А что в моем документе не устраивает? Там описана полная привязка к тактовому сигналу. Давайте конкретные вопросы, что непонятно.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
1801BM1 написал:
[q]
То есть, выводимые данные на шине и активация DOUT могут и подзадержаться на такт-другой.
[/q]
Во, значит тот мой тезис таки неверный.
1801BM1
Newbie


Всего сообщений: 78
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2015
Mixa написал:
[q]
Во, значит тот мой тезис таки неверный.
[/q]
Угу. Самоцитата:

"5.2\tТранзакция "Запись"
...
По срезу Т2 на выходе nSYNC формируется активный низкий уровень. По фронту Т2 выставленный адрес снимается с шины, выходы остаются разрешенными и на них транслируется содержимое внутреннего регистра данных микропроцессора. В данный момент там необязательно могут находится актуальные записываемые в текущей транзакции данные - они могут быть еще не подготовлены внутренними схемами процессора. Время подготовки зависит от того какая программная инструкция в данный момент обрабатывается микропрограммой и может составлять от нуля до нескольких тактов."

Правда, дальше:
"При готовности данных во внутреннем регистре они начинают транслироваться на внешние выходы по фронту тактового сигнала T3."

T3 тут дан только для примера, полагаем что данные мгновенно готовы, чтобы не растягивать рисунок диаграммы. Уточню этот момент в тексте.

Update: заодно диаграммку подправил - разрыв на сигналах вставил в момент ожидания данных для записи.
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
1801BM1 написал:
[q]
Грубо говоря - у процессора два независимых блока внутри - ядро и блок обмена с внешней шиной. Работают параллельно и асинхронно друг от друга. Два типа запросов (адрес + данные), двойная буферизация адреса (теоретически ядро может выдать новый запрос сразу после активации SYNC - регистр адреса уже свободен), один ответ. Ядро живет своей сложной жизнью по микропрограмме, в которой хватает косяков типа порождения фантомных циклов, также ядро может тормозиться еще по куче факторов - готовности блока обмена, готовности АЛУ, готовности блока прерываний, готовности блока микропрограмм. Так что, найти один простой ответ на растактовку внешних циклов, типа как с 580ВМ80А - не получится, слишком много факторов на это влияет.
[/q]
Вот так, коротко и ясно, одним абзацем, было похоронено желание сделать "специалист" на 1801ВМ1 и РУ5 :)
Значит переходим к плану "Б" - забирать ОЗУ для видеоконтроллера на пол-такта каждый такт(на самом деле 1 из 4-х) с привязкой к фронту CLC. ОЗУ на статике 25нс.

1801BM1 написал:
[q]
А что в моем документе не устраивает? Там описана полная привязка к тактовому сигналу. Давайте конкретные вопросы, что непонятно.
[/q]
Пока писал ответ, ситуация еще прояснилась.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 22 23 24 25 26 * 27 28 29 30
Печать
Полигон-2 »   Другие архитектуры »   Инопланетные скрижали
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS