Автор Тема: Время доступа к данным  (Прочитано 5436 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Время доступа к данным
« : 11 Август 2011, 20:27:36 »
Ну я создал такую тему в разделе хакинг и программировании, но вероятно тут может лучше знают

http://www.emu-land.net/forum/index.php/topic,55537.0.html

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #1 : 11 Август 2011, 20:40:26 »
Разбери цикл шины 68000. Там, кстати, есть такой сигнал /DTACK. И чтение из ПЗУ всегда только словом.

Добавлено позже:
Вообще две одинаковые темы в разных разделах не есть хорошо

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #2 : 11 Август 2011, 20:54:09 »
Да тема двоякая, с одной стороны интересует скорость чтения данных из оперативки и пзу в плане скорости исполнения кода, с другой просто хочется разобраться как оно вообще работает

а в мегадрайве сколько тогда скорость?
у M68K шина данных 16-ти разрядная, поэтому разумеется там словами идет, но в мегадрайве есть возможность по сигналу /AS брать данные по 8 бит, вроде он в 2 раза короче чем /OE и по нему можно данные 2 раза из 8-ми битной ПЗУ брать на шину в 16 бит и все работает, т.е. чисто практически скорость всоса данных может быть 2 раза быстрее, раз 2 раза брать успевает :?

Про снес я вообще молчу, мало того что там вообще 2 скорости чтения из картриджа и при этом на нем же защита постороена, так еще и сама шина в 8 бит, хотя проц 16-ти битный...

И интересна тонкость - скорость чтения данных из внутренней оперативной памяти приставке выше чем из картриджа?
ну допустим если надо быстро данные перегнать, то лучше из картриджа или из оперативки их брать?
« Последнее редактирование: 11 Август 2011, 21:00:20 от sergi »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #3 : 11 Август 2011, 21:25:36 »
И интересна тонкость - скорость чтения данных из внутренней оперативной памяти приставке выше чем из картриджа?
ну допустим если надо быстро данные перегнать, то лучше из картриджа или из оперативки их брать?
Скорость исполнения команд одна - значит одинаковая.  Из картирджа лучше через dma быстрее(если в vram), ведь не придется использовать ram.

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #4 : 11 Август 2011, 22:46:38 »
И чтение из ПЗУ всегда только словом.
Чтение вообще всегда только словом вроде бы. Цикл чтения или записи и для .b, и для .w занимает 2 такта. Для .l - 4 такта.
Не знаю, кто раздул информацию о том, что из РОМА можно читать ТОЛЬКО словами. Многие игры читают байтами. Вот словами с нечётного адреса читать нельзя - это да, но это особенность 68к.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #5 : 11 Август 2011, 23:33:55 »
у M68K шина данных 16-ти разрядная, поэтому разумеется там словами идет, но в мегадрайве есть возможность по сигналу /AS брать данные по 8 бит, вроде он в 2 раза короче чем /OE и по нему можно данные 2 раза из 8-ми битной ПЗУ брать на шину в 16 бит и все работает, т.е. чисто практически скорость всоса данных может быть 2 раза быстрее, раз 2 раза брать успевает :?
Я всё же настоятельно рекомендую взять доки на 68000. Там все картинки, все циклы, по тактам и всё такое.
Теперь объясняю, как это работает на самом деле. Во-первых, кроме ПЗУ там есть ещё и регистр, в который защелкивается один байт. Во-вторых, сигнал не /AS, а /RAS2 (а тот, что /OE, на самом деле /CE0). Вот, собственно, схема. Думаю, всё очевидно

Добавлено позже:
Не знаю, кто раздул информацию о том, что из РОМА можно читать ТОЛЬКО словами.
Никто не раздул, это так и есть. Посмотри на сигналы на слоте. Запись можно делать раздельно по байтам, есть сигналы /LWR и /UWR. А чтение ативизирует одни и те же сигналы и какую команду ты не используешь, картридж всё равно выставит на шину слово целиком. Это и имеется в виду, когда говориться, что читать можно ТОЛЬКО словом. А уж как их обрабатывать - твоё дело, хоть один бит.

Добавлено позже:
И ещё раз напомню: длительность цикла шины зависит от сигнала /DTACK, который формируется периферией. Всякие умные устройства типа VDP могут сами управлять им, для памяти он фиксирован.
« Последнее редактирование: 11 Август 2011, 23:55:05 от Rumata »

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #6 : 12 Август 2011, 00:42:41 »
Цитата
Это и имеется в виду, когда говориться, что читать можно ТОЛЬКО словом. А уж как их обрабатывать - твоё дело, хоть один бит.
Просто когда я читал это в доке, то представлял себе это так, что из ПЗУ можно читать только командами по словам (на уровне программиста), то есть байтовые команды запрещены. А раз это на более низком уровне и раз 68к байтовые и двухбайтовые чтения делает одинаково - сразу целым словом, то никакой проблемы не возникает.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #7 : 12 Август 2011, 05:55:38 »
Не, не, давайте лучше уточним, так чтение из картриджа идет через /DTACK или через RAS и прочее?
скорость шины картриджа то какая?
Я просто натыкался на разные данные, вроде там скорость гораздо ниже чем при работе с оперативной памятью, вот и вопрос, если тебе нужно быстро с чем-то работать, то нужно это дело в оперативку положить, либо с картриджа можно брать :?

пусть M68K берет только словами, я не возражаю, я просто про скорость спрашиваю
у него есть возможность и байтами брать, но вероятно только один из слова берет и только четные поэтому, либо сразу по 4 байта, но там палюбому это медленнее, т.к. 2 раза лезет за данными, дело может тут даже и не чисто в тактах, а во времени доступа к данным :-\

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #8 : 12 Август 2011, 22:47:42 »
sergi, доки ты читать не хочешь из принципа? Какое чтение через /DTACK?  :lol:
Вообще если нужны конкретные цифры, то приборы надо в руки брать

Добавлено позже:
Заодно перенёс и переименовал, а как-то совсем не в тему.  :-\

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #9 : 12 Август 2011, 23:54:18 »
Да футболят тему и угла в угол, нужно не про проц, а про конкретную приставку.

Приборы это хорошо, но пока только на глаз получается, вот и спрашиваю - может кто в теме еще... :-\

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #10 : 13 Август 2011, 00:09:24 »
Ну уж извиняй, сам темы создавал, сам называл...
Честно говоря, я вообще не понимаю сути проблемы  o_0

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #11 : 13 Август 2011, 01:01:14 »
Проблема в том что когда ты код пишешь на приставку, то быстрее он исполняется из оперативной памяти или из картриджа или скорость одинаковая?

ну если тебе нужно очень чегото быстро исполнить то где быстрее это лучше сделать - в этом коренная суть вопроса

раньше мне казалось что скорость и там и там одинаковая, но я читал разные доки и там написано что скорость картриджа не такая уж и быстрая, отсюда и вопросы возникают, какая скорость и где быстрее. :-\

А, ну и еще один уточняющий вопрос, я его уже озвучивал, но еще раз повторю, раз есть сигнал который аж 2 раза может прочитать из ПЗУ данные по 8 байт, то можно ли ускорить обмен данными по шине картриджа? ну хотя бы в теории - выдает ли шина полную скорость, соответствующую заявленной тактовой частоте или всеже система специально замедляет опрос ПЗУ, чтобы разные типы ПЗУ могли правильно с ней работать и правильно читаться - суть в этом моего вопроса также.
« Последнее редактирование: 13 Август 2011, 01:10:13 от sergi »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #12 : 13 Август 2011, 01:21:34 »
Если ты пишешь код на приставку, то он весь в картридже. ОЗУ вообще для стека и переменных.
Что значит - исполнить? Что именно? Если операции между регистрами, то они в самом процессоре, вообще от памяти не зависит. Если с внешним устройством, то зависит от устройства.
Пока я просто не понимаю задачи: очень быстро исполнить - что именно и зачем?
И потом, имей в виду: картридж - первичный носитель информации. Не факт, что есть смысл что-то из него переносить в ОЗУ, чтобы потом выполнить. Суммарные затраты окажутся больше

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #13 : 13 Август 2011, 01:26:01 »
Ну это какбы в теории, мне хочется значть быстрее или нет, ОЗУ для переменных знаю, но если ты выжимаешь максимум из консоли, то тебе через ОЗУ и можно сделать то что через ПЗУ будет медленным

ну допустим какие-то данные таблиц перегонять или обрабатывать для видео там, может сжатие небольшое какое, какое количество тактов для ОЗУ требуется чтобы байт или слово данных в регистр забрать и какое из ПЗУ - ну как пример :?

В идеале может даже неплохо было тайм-диаграмму иметь где видно было бы сколько тактов на чтение данных из ПЗУ уходит, сколько из ОЗУ ну и может еще откуда - допустим из порта джоев - чтобы наглядно было

Ну что-то типа как здесь, но только про ПЗУ, а не VDP
http://gendev.spritesmind.net/forum/viewtopic.php?t=851
« Последнее редактирование: 13 Август 2011, 01:33:57 от sergi »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #14 : 13 Август 2011, 01:32:07 »
А, ну и еще один уточняющий вопрос, я его уже озвучивал, но еще раз повторю, раз есть сигнал который аж 2 раза может прочитать из ПЗУ данные по 8 байт, то можно ли ускорить обмен данными по шине картриджа? ну хотя бы в теории - выдает ли шина полную скорость, соответствующую заявленной тактовой частоте или всеже система специально замедляет опрос ПЗУ, чтобы разные типы ПЗУ могли правильно с ней работать и правильно читаться - суть в этом моего вопроса также.
:wall: да нет такого сигнала. Ну это ж как с DRAM, сначала защелка адреса, потом выдача данных. Пофиг, какое у тебя ПЗУ!!! Цикл чтения занимает в любом случае одно и то же время. Просто в это время можно выполнить некоторые операции с ПЗУ, которые на время выполнения цикла чтения вообще не влияют

Добавлено позже:
В идеале - диаграмму иметь не хило. Но её нет. Только приборы в руки.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #15 : 13 Август 2011, 01:35:57 »
Значит скорость из ПЗУ меньше всеже чем максимально возможная для 8 мегагерц :-\

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24742
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #16 : 13 Август 2011, 01:39:50 »
Не понимаю постановки вопроса. Максимальная скорость возможна в режиме "DTACK всегда на нуле", но его в Мегадрайве нет и быть не может

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #17 : 13 Август 2011, 01:46:48 »
Ну вот тут обсуждают это же походу, кстати не так давно обсуждают судя по дате

http://www.sega-16.com/forum/archive/index.php/t-17019.html

Но судя по их разговору вроде понятно и видно что всеже обращение к ПЗУ чуть ли не в 2 раза медленнее чем обращение к ОЗУ приставки, а в таких случаях как Амига, то там вообще вроде за 150 наносекунд доступ к данным рандомный, т.е. 1/2 скорости тактов.
От системы зависит и ее архитектуры, но работать чисто с ПЗУ медленно походу...
« Последнее редактирование: 13 Август 2011, 02:00:30 от sergi »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #18 : 13 Август 2011, 11:31:58 »
Какое количество тактов для ОЗУ требуется чтобы байт или слово данных в регистр забрать и какое из ПЗУ - ну как пример :?
В архиве с этим мануалом по инструкциям 68000 есть скорость для всех команд, как можно было незаметить?
68khtml.rar

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #19 : 13 Август 2011, 13:20:22 »
Ну тут какбы не скорость непосредственно моторолки, а конкретно приставки интересует :-\

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7561
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #20 : 13 Август 2011, 17:02:58 »
Когда я смотрел осциллом, то видел, что VDP формирует DTACK одинаково для всех разрешенных областей. Стало быть, скорость работы ПЗУ картриджа равна скорости внутреннего ОЗУ, несмотря на то, что сам чип ПЗУ медленнее чипов ОЗУ. Тем не менее, если применять чипы медленнее 150нс в качестве ПЗУ картриджа возможны проблемы. Так что как и Rumata, я не вижу смысла в топике.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #21 : 13 Август 2011, 20:15:50 »
А в снесе? :?

я в тех ссылках которые приводил и читал, там у сеги доступ в картридж где-то аж 525 наносекунд :?

Оффлайн murgatroid_79

  • Пользователь
  • Сообщений: 388
  • Пол: Мужской
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #22 : 14 Август 2011, 20:21:59 »
  sergi,что ты называеш доступом?  Временем доступа?

525 наносекунд-это между какими сигналами

Вот тут пошукай:http://dmeti.dp.ua/kaf/k-its/books/motorola/oper1_perdan.html

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Время доступа к данным
« Ответ #23 : 14 Август 2011, 20:51:28 »
байт за байтом или слово за словом

Ну в общем как я понял чтение слова осуществляется в соотношении 1/4 к тактовой частоте, т.е. на 8 мегагерц будет 125*4=525 наносекунд если каждой командой тянуть данные из картриджа

вроде сказали что скорость из оперативы такая же, т.е. нет смысла для скорости перекладывать в оперативу это дело

т.е. с сегой разобрались, если кто со снесом поможет то будет гуд :)