Forth
http://fforum.winglion.ru/

Код и данные в двупортовой памяти
http://fforum.winglion.ru/viewtopic.php?f=3&t=2610
Страница 1 из 1

Автор:  Hishnik [ Чт июн 10, 2010 01:44 ]
Заголовок сообщения:  Код и данные в двупортовой памяти

Вот и еще одна разновидность использования двупортовой памяти - по одному порту читаем команды, по другому работаем с этим блоком как с данными. Тут не столько модификация кода в процессе работы, сколько экономия блоков. При желании можно "искусственно разделить" адресные пространства, заставляя процессор аппаратно прибавлять смещение блока данных из специального регистра. Но здесь речь идет о встроенных системах на базе FPGA, в которых жалко отдавать минимум два блока памяти на каждое процессорное ядро. В таких устройствах проблемы с влезанием ядра не туда будут только в процессе отладки.

Автор:  WingLion [ Чт июн 10, 2010 02:17 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

Это актуально для гарвардской архитектуры.
А фон-нейман в этом деле оказывается в некотором выигрыше, если иметь в виду предыдущую тему с подключением к одной памяти двух процессоров с двух сторон.

Автор:  Hishnik [ Чт июн 10, 2010 02:42 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

WingLion писал(а):
Это актуально для гарвардской архитектуры.
А фон-нейман в этом деле оказывается в некотором выигрыше, если иметь в виду предыдущую тему с подключением к одной памяти двух процессоров с двух сторон.

Так ведь RISC, да еще и конвейеризованный, будет постоянно читать команды. Отдавать ему шину для работы с данными - это приостановить выборку команд.

Автор:  WingLion [ Чт июн 10, 2010 03:20 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

Хищник писал(а):
Так ведь RISC, да еще и конвейеризованный, будет постоянно читать команды. Отдавать ему шину для работы с данными - это приостановить выборку команд.


Да, но только в том случае, если одна выборка на одну команду. А если одна выборка на четыре/восемь команд, то все меняется. Еще и не каждой команде надо в память лазить.

Автор:  Hishnik [ Чт июн 10, 2010 03:24 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

WingLion писал(а):
Да, но только в том случае, если одна выборка на одну команду. А если одна выборка на четыре/восемь команд, то все меняется.

Разве что так, но я больше люблю гарвардскую архитектуру. Причем сильно больше. Собственно, наличие параллельно работающих шни доступа к памяти и является большим плюсом FPGA, так зачем же искусственно резать это? Опять же, стеки, работающие независимо от памяти, также являются элементом повышения производительности by design.

Автор:  WingLion [ Чт июн 10, 2010 03:58 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

В условиях ПЛИС имеется физическое ограничение на количество циклов доступа к памяти. Двухпортовость это количество удваивает, возможность разделить блоки памяти и работать с кусочками отдельно - умножает на некое целое число.

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

Фон-неймановская же автоматом работает с тем соотношением, какое необходимо для конкретной программы, и поэтому, либо на выборку команд, либо на выборку данных придется более половины всех циклов памяти, и по соответствующим показателям фон-нейман окажется в выигрыше.

п.с. А на счет запихивания стеков в общую память, речи в ПЛИС и не идет.

Автор:  Hishnik [ Чт июн 10, 2010 12:14 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

WingLion писал(а):
Фон-неймановская же автоматом работает с тем соотношением, какое необходимо для конкретной программы, и поэтому, либо на выборку команд, либо на выборку данных придется более половины всех циклов памяти, и по соответствующим показателям фон-нейман окажется в выигрыше.

Только память все равно обеспечивает большую пропускную способность, чем может затребовать устройство на ячейках. Она изготавливается так, чтобы гарантированно работать на системной тактовой частоте, а это одна ячейка в комбинаторной цепочке, лучше уже некуда. Так что гарвард все равно не доберется до ее пределов, зато при мультиплексировании адреса на фон неймане будет еще один узел со своей задержкой.
WingLion писал(а):
п.с. А на счет запихивания стеков в общую память, речи в ПЛИС и не идет.

О чем и речь, что не идет. Можно реализовать подход "как можно больше транзакций за такт", а фон нейман от этого уводит.

Автор:  вопрос [ Чт июн 10, 2010 13:12 ]
Заголовок сообщения:  Re: Код и данные в двупортовой памяти

Хищник писал(а):
параллельно работающих шни доступа

шин доступа?

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/