| Приставки > 4 поколение |
| Время доступа к данным |
| (1/2) > >> |
| sergi:
Ну я создал такую тему в разделе хакинг и программировании, но вероятно тут может лучше знают http://www.emu-land.net/forum/index.php/topic,55537.0.html |
| Rumata:
Разбери цикл шины 68000. Там, кстати, есть такой сигнал /DTACK. И чтение из ПЗУ всегда только словом. Добавлено позже: Вообще две одинаковые темы в разных разделах не есть хорошо |
| sergi:
Да тема двоякая, с одной стороны интересует скорость чтения данных из оперативки и пзу в плане скорости исполнения кода, с другой просто хочется разобраться как оно вообще работает а в мегадрайве сколько тогда скорость? у M68K шина данных 16-ти разрядная, поэтому разумеется там словами идет, но в мегадрайве есть возможность по сигналу /AS брать данные по 8 бит, вроде он в 2 раза короче чем /OE и по нему можно данные 2 раза из 8-ми битной ПЗУ брать на шину в 16 бит и все работает, т.е. чисто практически скорость всоса данных может быть 2 раза быстрее, раз 2 раза брать успевает :? Про снес я вообще молчу, мало того что там вообще 2 скорости чтения из картриджа и при этом на нем же защита постороена, так еще и сама шина в 8 бит, хотя проц 16-ти битный... И интересна тонкость - скорость чтения данных из внутренней оперативной памяти приставке выше чем из картриджа? ну допустим если надо быстро данные перегнать, то лучше из картриджа или из оперативки их брать? |
| Ti_:
--- Цитата: sergi от 11 Август 2011, 20:54:09 ---И интересна тонкость - скорость чтения данных из внутренней оперативной памяти приставке выше чем из картриджа? ну допустим если надо быстро данные перегнать, то лучше из картриджа или из оперативки их брать? --- Конец цитаты --- Скорость исполнения команд одна - значит одинаковая. Из картирджа лучше через dma быстрее(если в vram), ведь не придется использовать ram. |
| GManiac:
--- Цитата: Rumata от 11 Август 2011, 20:40:26 ---И чтение из ПЗУ всегда только словом. --- Конец цитаты --- Чтение вообще всегда только словом вроде бы. Цикл чтения или записи и для .b, и для .w занимает 2 такта. Для .l - 4 такта. Не знаю, кто раздул информацию о том, что из РОМА можно читать ТОЛЬКО словами. Многие игры читают байтами. Вот словами с нечётного адреса читать нельзя - это да, но это особенность 68к. |
| Rumata:
--- Цитата: sergi от 11 Август 2011, 20:54:09 ---у M68K шина данных 16-ти разрядная, поэтому разумеется там словами идет, но в мегадрайве есть возможность по сигналу /AS брать данные по 8 бит, вроде он в 2 раза короче чем /OE и по нему можно данные 2 раза из 8-ми битной ПЗУ брать на шину в 16 бит и все работает, т.е. чисто практически скорость всоса данных может быть 2 раза быстрее, раз 2 раза брать успевает :? --- Конец цитаты --- Я всё же настоятельно рекомендую взять доки на 68000. Там все картинки, все циклы, по тактам и всё такое. Теперь объясняю, как это работает на самом деле. Во-первых, кроме ПЗУ там есть ещё и регистр, в который защелкивается один байт. Во-вторых, сигнал не /AS, а /RAS2 (а тот, что /OE, на самом деле /CE0). Вот, собственно, схема. Думаю, всё очевидно Добавлено позже: --- Цитата: GManiac от 11 Август 2011, 22:46:38 ---Не знаю, кто раздул информацию о том, что из РОМА можно читать ТОЛЬКО словами. --- Конец цитаты --- Никто не раздул, это так и есть. Посмотри на сигналы на слоте. Запись можно делать раздельно по байтам, есть сигналы /LWR и /UWR. А чтение ативизирует одни и те же сигналы и какую команду ты не используешь, картридж всё равно выставит на шину слово целиком. Это и имеется в виду, когда говориться, что читать можно ТОЛЬКО словом. А уж как их обрабатывать - твоё дело, хоть один бит. Добавлено позже: И ещё раз напомню: длительность цикла шины зависит от сигнала /DTACK, который формируется периферией. Всякие умные устройства типа VDP могут сами управлять им, для памяти он фиксирован. |
| GManiac:
--- Цитата ---Это и имеется в виду, когда говориться, что читать можно ТОЛЬКО словом. А уж как их обрабатывать - твоё дело, хоть один бит. --- Конец цитаты --- Просто когда я читал это в доке, то представлял себе это так, что из ПЗУ можно читать только командами по словам (на уровне программиста), то есть байтовые команды запрещены. А раз это на более низком уровне и раз 68к байтовые и двухбайтовые чтения делает одинаково - сразу целым словом, то никакой проблемы не возникает. |
| sergi:
Не, не, давайте лучше уточним, так чтение из картриджа идет через /DTACK или через RAS и прочее? скорость шины картриджа то какая? Я просто натыкался на разные данные, вроде там скорость гораздо ниже чем при работе с оперативной памятью, вот и вопрос, если тебе нужно быстро с чем-то работать, то нужно это дело в оперативку положить, либо с картриджа можно брать :? пусть M68K берет только словами, я не возражаю, я просто про скорость спрашиваю у него есть возможность и байтами брать, но вероятно только один из слова берет и только четные поэтому, либо сразу по 4 байта, но там палюбому это медленнее, т.к. 2 раза лезет за данными, дело может тут даже и не чисто в тактах, а во времени доступа к данным :-\ |
| Rumata:
sergi, доки ты читать не хочешь из принципа? Какое чтение через /DTACK? :lol: Вообще если нужны конкретные цифры, то приборы надо в руки брать Добавлено позже: Заодно перенёс и переименовал, а как-то совсем не в тему. :-\ |
| sergi:
Да футболят тему и угла в угол, нужно не про проц, а про конкретную приставку. Приборы это хорошо, но пока только на глаз получается, вот и спрашиваю - может кто в теме еще... :-\ |
| Rumata:
Ну уж извиняй, сам темы создавал, сам называл... Честно говоря, я вообще не понимаю сути проблемы o_0 |
| sergi:
Проблема в том что когда ты код пишешь на приставку, то быстрее он исполняется из оперативной памяти или из картриджа или скорость одинаковая? ну если тебе нужно очень чегото быстро исполнить то где быстрее это лучше сделать - в этом коренная суть вопроса раньше мне казалось что скорость и там и там одинаковая, но я читал разные доки и там написано что скорость картриджа не такая уж и быстрая, отсюда и вопросы возникают, какая скорость и где быстрее. :-\ А, ну и еще один уточняющий вопрос, я его уже озвучивал, но еще раз повторю, раз есть сигнал который аж 2 раза может прочитать из ПЗУ данные по 8 байт, то можно ли ускорить обмен данными по шине картриджа? ну хотя бы в теории - выдает ли шина полную скорость, соответствующую заявленной тактовой частоте или всеже система специально замедляет опрос ПЗУ, чтобы разные типы ПЗУ могли правильно с ней работать и правильно читаться - суть в этом моего вопроса также. |
| Rumata:
Если ты пишешь код на приставку, то он весь в картридже. ОЗУ вообще для стека и переменных. Что значит - исполнить? Что именно? Если операции между регистрами, то они в самом процессоре, вообще от памяти не зависит. Если с внешним устройством, то зависит от устройства. Пока я просто не понимаю задачи: очень быстро исполнить - что именно и зачем? И потом, имей в виду: картридж - первичный носитель информации. Не факт, что есть смысл что-то из него переносить в ОЗУ, чтобы потом выполнить. Суммарные затраты окажутся больше |
| sergi:
Ну это какбы в теории, мне хочется значть быстрее или нет, ОЗУ для переменных знаю, но если ты выжимаешь максимум из консоли, то тебе через ОЗУ и можно сделать то что через ПЗУ будет медленным ну допустим какие-то данные таблиц перегонять или обрабатывать для видео там, может сжатие небольшое какое, какое количество тактов для ОЗУ требуется чтобы байт или слово данных в регистр забрать и какое из ПЗУ - ну как пример :? В идеале может даже неплохо было тайм-диаграмму иметь где видно было бы сколько тактов на чтение данных из ПЗУ уходит, сколько из ОЗУ ну и может еще откуда - допустим из порта джоев - чтобы наглядно было Ну что-то типа как здесь, но только про ПЗУ, а не VDP http://gendev.spritesmind.net/forum/viewtopic.php?t=851 |
| Rumata:
--- Цитата: sergi от 13 Август 2011, 01:01:14 ---А, ну и еще один уточняющий вопрос, я его уже озвучивал, но еще раз повторю, раз есть сигнал который аж 2 раза может прочитать из ПЗУ данные по 8 байт, то можно ли ускорить обмен данными по шине картриджа? ну хотя бы в теории - выдает ли шина полную скорость, соответствующую заявленной тактовой частоте или всеже система специально замедляет опрос ПЗУ, чтобы разные типы ПЗУ могли правильно с ней работать и правильно читаться - суть в этом моего вопроса также. --- Конец цитаты --- :wall: да нет такого сигнала. Ну это ж как с DRAM, сначала защелка адреса, потом выдача данных. Пофиг, какое у тебя ПЗУ!!! Цикл чтения занимает в любом случае одно и то же время. Просто в это время можно выполнить некоторые операции с ПЗУ, которые на время выполнения цикла чтения вообще не влияют Добавлено позже: В идеале - диаграмму иметь не хило. Но её нет. Только приборы в руки. |
| sergi:
Значит скорость из ПЗУ меньше всеже чем максимально возможная для 8 мегагерц :-\ |
| Rumata:
Не понимаю постановки вопроса. Максимальная скорость возможна в режиме "DTACK всегда на нуле", но его в Мегадрайве нет и быть не может |
| sergi:
Ну вот тут обсуждают это же походу, кстати не так давно обсуждают судя по дате http://www.sega-16.com/forum/archive/index.php/t-17019.html Но судя по их разговору вроде понятно и видно что всеже обращение к ПЗУ чуть ли не в 2 раза медленнее чем обращение к ОЗУ приставки, а в таких случаях как Амига, то там вообще вроде за 150 наносекунд доступ к данным рандомный, т.е. 1/2 скорости тактов. От системы зависит и ее архитектуры, но работать чисто с ПЗУ медленно походу... |
| Ti_:
--- Цитата: sergi от 13 Август 2011, 01:26:01 ---Какое количество тактов для ОЗУ требуется чтобы байт или слово данных в регистр забрать и какое из ПЗУ - ну как пример :? --- Конец цитаты --- В архиве с этим мануалом по инструкциям 68000 есть скорость для всех команд, как можно было незаметить? 68khtml.rar |
| sergi:
Ну тут какбы не скорость непосредственно моторолки, а конкретно приставки интересует :-\ |
| Навигация |
| Главная страница сообщений |
| Следующая страница |