Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Соотношение тактовой частоты и частоты шины
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
D-Luxe
Вопрос касается всех процессоров, но решил задать его здесь.

Зачем сделано разделение частот шин и тактовых частот процессоров, почему эти частоты не всегда совпадают? Частота проца равна произведению множителя на частоту шины. Для чего это сделано?
vadimuzzz
Цитата(D-Luxe @ May 7 2011, 21:15) *
почему эти частоты не всегда совпадают?

потому что это невозможно физически? допустим, на примере ниоса с контроллером DDR. ниос разводится с Fmax=100МГц, контроллер памяти с Fmax=150МГц. что делать? либо понижать частоту контроллера, либо (что логичнее, т.к. контроллером памяти может пользоваться не только ниос) делать на разных частотах
D-Luxe
Цитата(vadimuzzz @ May 7 2011, 19:23) *
потому что это невозможно физически? допустим, на примере ниоса с контроллером DDR. ниос разводится с Fmax=100МГц, контроллер памяти с Fmax=150МГц. что делать? либо понижать частоту контроллера, либо (что логичнее, т.к. контроллером памяти может пользоваться не только ниос) делать на разных частотах

Частота проца выше частоты шины, это видно из написанного мной выше соотношения. По крайней мере это соотношение подходит для процессоров в ПК. Не знаю насчет встроенных систем.

Твой пример мне непонятен, зачем память работает на 150 Мгц, если процессор из него читает на сотке.
des00
Цитата(D-Luxe @ May 7 2011, 10:04) *
Твой пример мне непонятен, зачем память работает на 150 Мгц, если процессор из него читает на сотке.

а с чего вы взяли, что только процессор читает память ? %)
vadimuzzz
Цитата(D-Luxe @ May 7 2011, 23:04) *
Твой пример мне непонятен, зачем память работает на 150 Мгц, если процессор из него читает на сотке.

потому что кроме проца добавится несколько контролеров DMA для периферии, делить шину памяти они будут все вместе
D-Luxe
Цитата(des00 @ May 7 2011, 20:23) *
а с чего вы взяли, что только процессор читает память ? %)

В принципе по dma может периферия читать.

Я говорю про другое, частота шины проца не совпадает с его тактовой частотой. Вот в чем вопрос. Зачем так сделано?
vadimuzzz
Цитата(D-Luxe @ May 7 2011, 23:04) *
Частота проца выше частоты шины, это видно из написанного мной выше соотношения.

потому что на шине еще куча всего висит. а частота проца - это сферический конь в вакууме sm.gif. имеет смысл пока он в своих регистрах ковыряется. как наружу вылез - или в память упрется или в I/O
D-Luxe
Цитата(vadimuzzz @ May 7 2011, 20:27) *
потому что на шине еще куча всего висит. а частота проца - это сферический конь в вакууме sm.gif. имеет смысл пока он в своих регистрах ковыряется. как наружу вылез - или в память упрется или в I/O

Теперь понял, хочешь сказать частоту шины ограничивают максимальной частотой периферии?
gosu-art
bb-offtopic.gif А что тут на форуме уже перешли на ТЫ ? 1111493779.gif
D-Luxe
Цитата(gosu-art @ May 7 2011, 21:07) *
bb-offtopic.gif А что тут на форуме уже перешли на ТЫ ? 1111493779.gif


Цитата
Участники форума обязаны:

2.1 Поддерживать общепринятую культуру общения:

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


По моему про это здесь не сказано....
alexPec
Цитата(D-Luxe @ May 7 2011, 20:04) *
Частота проца выше частоты шины, это видно из написанного мной выше соотношения. По крайней мере это соотношение подходит для процессоров в ПК. Не знаю насчет встроенных систем.

Твой пример мне непонятен, зачем память работает на 150 Мгц, если процессор из него читает на сотке.

Для ПК - другой пример: нужно обсчитывать чего нибудь, с плавающей точкой. Т.е проц берет числа из памяти, делает преобразования с плавающей точкой, по какому нибудь алгоритму, записывает в память. Самое быстрое - прочитал за один такт, записал на следующем такте (это такты частоты шины), но между чтением и записью надо провернуть алгоритм преобразования, с плавающей точкой, - за один так ведь не сделать. Вот проц и крутит внутри себя эти преобразования на повышенной частоте, чтобы шина не простаивала, используя кэш 1 го уровня для промежуточных вычислений, которая кстати скорее всего работает на той же частоте что и проц.

Цитата
Теперь понял, хочешь сказать частоту шины ограничивают максимальной частотой периферии?

Для ПК по-моему это ограничение на шине определяется памятью. Выходит память с большей частотой - появляются материнки с быстрой шиной.


PS. Мое личное мнение, но Vadimuzzz - человек уважаемый, я всегда к нему на Вы.


vadimuzzz
Цитата(D-Luxe @ May 7 2011, 23:34) *
Теперь понял, хочешь сказать частоту шины ограничивают максимальной частотой периферии?

в новых поколениях ПК - главным образом память, согласен с alexPec. сейчас на шине и сидят-то проц, видюха и южный мост. а если копнуть чуть ранее, во времена PCI или ISA - то таки да, частота I/O. ну, а технически - опорный генератор для шин один (RTC и т.п. не считаем), из него все на PLL делается.
D-Luxe
Цитата(vadimuzzz @ May 8 2011, 05:34) *
в новых поколениях ПК - главным образом память, согласен с alexPec. сейчас на шине и сидят-то проц, видюха и южный мост. а если копнуть чуть ранее, во времена PCI или ISA - то таки да, частота I/O. ну, а технически - опорный генератор для шин один (RTC и т.п. не считаем), из него все на PLL делается.

Немного другой вопрос: если в даташите на микросхему памяти написано 133 Мгц, а частота шины 100 Мгц, то есть смысл заводить на память 133 Мгц или можно ограничить частотой шины?
vadimuzzz
все от задачи зависит, насколько узким местом является обмен с памятью. и да, всякие clock-crossing bridges (в терминах альтеровских SOPC) добавляют латентности. так что профит от увеличения тактовой частоты памяти не очевиден. я бы сделал так: завел все на 100 МГц, это и проще, и быстрее. затем потестить, а уж потом принимать решение. эти 30% прироста будут заметны на больших объемах данных. с исполнением кода хуже - тут дополнительная латентность ни к чему.
ASN
D-Luxe
Зависит от характера задачи, состава вычислителя и алгоритма обработки (в том числе и удачности его реализации).
В документации на SDRAM указывается максимальная частота, с которой она может работать без сбоев.
Если нет необходимости в экстремальных характеристиках, то лучше частоту понизить.
У Micron латентность на 133 - 3 такта, на 100 - 2 такта.
Может оказаться, что на 100 работать будет быстрее.
К тому же, единая частота - это проще (значит надёжнее).
Вообще, лучше обсудить этот вопрос с прикладными программистами - они могут представлять работу системы в целом иначе.
D-Luxe
Цитата(ASN @ May 8 2011, 14:57) *
D-Luxe
Зависит от характера задачи, состава вычислителя и алгоритма обработки (в том числе и удачности его реализации).
В документации на SDRAM указывается максимальная частота, с которой она может работать без сбоев.
Если нет необходимости в экстремальных характеристиках, то лучше частоту понизить.
У Micron латентность на 133 - 3 такта, на 100 - 2 такта.
Может оказаться, что на 100 работать будет быстрее.
К тому же, единая частота - это проще (значит надёжнее).
Вообще, лучше обсудить этот вопрос с прикладными программистами - они могут представлять работу системы в целом иначе.

Спасибо за ответ!

Но я не понял, почему на 100 Мгц может быстрее работать, частота же определяет скорость работы железки, можете поподробнее объяснить?
ASN
D-Luxe
Если используется большое количество обращений к SDRAM в произвольном порядке (не burst), то основную роль начинает играть латентность доступа к памяти.
В частности, при реализации алгоритма перемежения (к примеру для турбо-кодов оптимальным является псевдослучайный закон) требуется считать число и записать его в другой адрес памяти.
Адрес памяти задаётся законом перемежения, поэтому чем меньше латентность памяти, тем лучше.
Аналогично перемещение по двоичному дереву при поиске также вызывает многократные обращения по разным адресам.
Если в программе много ветвлений, то тоже осуществляется чтение инструкций по разным адресам.
Вариантом много.
Лучше точно определить необходимые ресурсы и прикладные алгоритмы, а затем "выгрызать" каждый такт (ели не хватит).
D-Luxe
Цитата(ASN @ May 8 2011, 16:34) *
D-Luxe
Если используется большое количество обращений к SDRAM в произвольном порядке (не burst), то основную роль начинает играть латентность доступа к памяти.
В частности, при реализации алгоритма перемежения (к примеру для турбо-кодов оптимальным является псевдослучайный закон) требуется считать число и записать его в другой адрес памяти.
Адрес памяти задаётся законом перемежения, поэтому чем меньше латентность памяти, тем лучше.
Аналогично перемещение по двоичному дереву при поиске также вызывает многократные обращения по разным адресам.
Если в программе много ветвлений, то тоже осуществляется чтение инструкций по разным адресам.
Вариантом много.
Лучше точно определить необходимые ресурсы и прикладные алгоритмы, а затем "выгрызать" каждый такт (ели не хватит).

Т.е. чем выше частота тем выше латентность? Хочу уточнить я говорю про SSRAM, а не SDRAM.
vadimuzzz
Цитата(D-Luxe @ May 8 2011, 20:01) *
Т.е. чем выше частота тем выше латентность?

в общем случае - да, но смотрите доки на свой чип. но в любом случае при разных частотах CPU и памяти появляется дополнительная латентность на буферном FIFO между ними
D-Luxe
Цитата(vadimuzzz @ May 8 2011, 18:04) *
в общем случае - да, но смотрите доки на свой чип. но в любом случае при разных частотах CPU и памяти появляется дополнительная латентность на буферном FIFO между ними

Время доступа
133 Мгц 6,5 нс
117 Мгц 8,5 нс
vadimuzzz
Цитата(D-Luxe @ May 8 2011, 21:16) *
Время доступа
133 Мгц 6,5 нс
117 Мгц 8,5 нс

вот, а с фифой время доступа увеличится до порядка 3 циклов. т.е. на одиночных обращениях будет заметный проигрыш.
D-Luxe
Цитата(vadimuzzz @ May 9 2011, 04:18) *
вот, а с фифой время доступа увеличится до порядка 3 циклов. т.е. на одиночных обращениях будет заметный проигрыш.

Зачем ставить буферное фифо? Можно просто подать на память 133 МГц, а запросы на чтение/запись от проца будут идти с частотой 100 МГц.
vadimuzzz
Цитата(D-Luxe @ May 9 2011, 14:44) *
Зачем ставить буферное фифо? Можно просто подать на память 133 МГц, а запросы на чтение/запись от проца будут идти с частотой 100 МГц.

ничего не понял. а как переходить с одного клока на другой? физически какие клоки в системе?
D-Luxe
Цитата(vadimuzzz @ May 9 2011, 12:32) *
ничего не понял. а как переходить с одного клока на другой? физически какие клоки в системе?

100 Мгц идет с генератора на ПЛИС. А в ПЛИС с DCM можно получить 133 Мгц.
vadimuzzz
Цитата(D-Luxe @ May 9 2011, 15:58) *
100 Мгц идет с генератора на ПЛИС. А в ПЛИС с DCM можно получить 133 Мгц.

это понятно. но, если CPU работает на частоте 100МГц, а память - на 133, что делать с метастабильностью без FIFO?
D-Luxe
Цитата(vadimuzzz @ May 9 2011, 16:39) *
это понятно. но, если CPU работает на частоте 100МГц, а память - на 133, что делать с метастабильностью без FIFO?

Хороший вопрос, но не могу на него ответить. А как фифо ставить? Вообще как частоты развести лучше? Поподробнее пожалуйста.
vadimuzzz
Цитата(D-Luxe @ May 9 2011, 20:09) *
А как фифо ставить? Вообще как частоты развести лучше? Поподробнее пожалуйста.

если система с ниосом - то эта штука называется там Clock Crossing Bridge, ее и воткнуть между ядром и SRAM. А вообще я придерживаюсь (стараюсь) принципа - чем меньше клоков, тем лучше. из доступной в этой теме информации я пока не увидел смысла городить многоклоковый дизайн. ну, а если будете делать с фифой, достаточно объявить переход между клоковыми доменами как False Path
D-Luxe
Цитата(vadimuzzz @ May 9 2011, 18:23) *
если система с ниосом - то эта штука называется там Clock Crossing Bridge, ее и воткнуть между ядром и SRAM. А вообще я придерживаюсь (стараюсь) принципа - чем меньше клоков, тем лучше. из доступной в этой теме информации я пока не увидел смысла городить многоклоковый дизайн. ну, а если будете делать с фифой, достаточно объявить переход между клоковыми доменами как False Path

Если честно мне это инфа ничего не дала, поскольку я работаю с Xilinx. Но сделал вывод работать на сотке )
vadimuzzz
Цитата(D-Luxe @ May 9 2011, 21:27) *
Если честно мне это инфа ничего не дала, поскольку я работаю с Xilinx. Но сделал вывод работать на сотке )

это самый правильный вывод, имхо sm.gif
WitFed
> Я говорю про другое, частота шины проца не совпадает с его тактовой частотой. Вот в чем вопрос. Зачем так сделано?

Обычно каждый компонент стараются разогнать до максимальной частоты, которую он тянет.
Потом, если жрётся сильно много энергии/денег без толку для конечного результата, могут урезать конкретные места.
Чем ближе компоненты друг к другу, тем на бОльших частотах они могут работать, как в Интел-проце, где гигагерцы давно уже случились, а память -- она далеко на плате, столько не потянет, помехи/ёмкости/индуктивности проводников замучают, поэтому начинают городить кэши накристалльные многоМетровые, где большинство кода уже сидит при правильном программировании, а на шину вылазят по большим праздникам или пожрать купить еще wink.gif
Не так давно для приличных расстояний в дело пошли дифференциально-крученые пары проводников, в PCI-E например, но до наших дешевых ПЛИС они еще не добрались, частоты остаются локально-детскими, плюс-минус 1.5 раза, так что легче всего их и не плодить разными без надобности -- себе дороже среди фифошек многоклоковых найти никогда неглючащую wink.gif
Fynjisx
Цитата(vadimuzzz @ May 7 2011, 18:23) *
потому что это невозможно физически? допустим, на примере ниоса с контроллером DDR. ниос разводится с Fmax=100МГц, контроллер памяти с Fmax=150МГц. что делать? либо понижать частоту контроллера, либо (что логичнее, т.к. контроллером памяти может пользоваться не только ниос) делать на разных частотах

вот вроде бы читал как работать с TimeQuest, а все равно мне кажется как то запутанно все там. Посему такой вопрос: Как узнать что ниос система разводится на такой то частоте? Надо прописать какой-то constrain? Не подскажите парочку constrains для любой системы ниос, самых общих???
Заранее благодарен...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.