Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб ноя 18, 2017 00:51

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 73 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 15:53 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
DDR - это, как раз, тот самый медведь, который не то что не убит...
его даже еще не выследили в лесу... и еще неизвестно, а есть ли он там?

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 15:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
огда это не имеет смысла, лучше каждому дать свою память


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

К личным данным надо относить изменяемую часть форт-кода, переменные (фактически все!), обрабатываемые данные и т.д. и т.п.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 15:57 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4831
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
а вот личные данные ядер - надо разделять

мндя, а зачем?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 15:58 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
мндя, а зачем?


Чтобы разные ядра друг другу не мешали.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:10 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4831
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
Чтобы разные ядра друг другу не мешали.

а с чего они будут мешать?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6086
Благодарил (а): 13 раз.
Поблагодарили: 96 раз.
mOleg писал(а):
HDL нет, а вот в виде алгоритма можно.
кстати, тут надо оговориться, нужно ли действительно всем процессорам одновременно запускаться (возможно более удачный вариант - запуск одного, инициализация системы (Загрузка кода, инициализация перифирии, распределение памяти), и принудительный запуск остальных процессоров с конкретными задачами для них. Т.е. речь об иерархической системе.

А вот это все как? :) Особенно "распределение памяти" - аппаратно, что ли?
mOleg писал(а):
что же до алгоритма. То должна существовать ячейка памяти X


Код:
if clk'event and clk = '1' then
  if resetA = '1' then ipA <= 0; end if;
  if resetB = '1' then ipB <= 5; end if;


То есть вот это сложнее?
mOleg писал(а):
после этого код выполняет только один процессор (сколько бы других ни было)

Да-да. Схема стала в два раза больше, чтобы работала только ее половина...
mOleg писал(а):
кстати, а не получится, что память начнет сильно тормозить?
ведь скорее всего адреса будут у разных процов разные (т.е. в разных страницах), а это по нескольку дополнительных тактов на доступ???

Причем выше неоднократно отмечалось, что речь о накристальной статической памяти, которая у Xilinx еще и не имеет латентности...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6086
Благодарил (а): 13 раз.
Поблагодарили: 96 раз.
mOleg писал(а):
дело в том, что объекты синхронизации придется всеравно делать, раз уж память общаяя. Тот же HERE надо будет трогать монопольно только одному процессору за раз (к примеру).

А какой такой HERE окажется в памяти целевой системы при кросс-компиляции? Кстати говоря, я уже писал, что двупортовая память самостоятельно разрешает аппаратные конфликты при доступе к одной и той же ячейке.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4831
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
Хищник писал(а):
Особенно "распределение памяти" - аппаратно, что ли?

нет, это сделает первый проц, а потом запустит другие, которым будут уже "розданы карты"

Хищник писал(а):
То есть вот это сложнее?

а то!
ведь не все знают HDL, не так ли?

Хищник писал(а):
ричем выше неоднократно отмечалось, что речь о накристальной статической памяти, которая у Xilinx еще и не имеет латентности...

не один Хищник читает через строку ;)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:42 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4831
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
Хищник писал(а):
А какой такой HERE окажется в памяти целевой системы при кросс-компиляции?

ну, вот и Хищник читает через сообщение 8)
я для примера привел HERE (хотя, вы бы придрались к любому другому примеру по-любому)

Хищник писал(а):
Да-да. Схема стала в два раза больше, чтобы работала только ее половина...

дедлоки в помощь!

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 16:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6086
Благодарил (а): 13 раз.
Поблагодарили: 96 раз.
mOleg писал(а):
нет, это сделает первый проц, а потом запустит другие, которым будут уже "розданы карты"

То есть второй и последующие процессоры должны быть из другого теста и управляться строго программно?
mOleg писал(а):
а то!
ведь не все знают HDL, не так ли?

А зачем тогда спорить по вопросу, о котором нет достаточных знаний?
mOleg писал(а):
Хищник писал(а):
Да-да. Схема стала в два раза больше, чтобы работала только ее половина...

дедлоки в помощь!

Не надо применять отвлеченные рассуждения для анализа поведения схемы, построенной по другим принципам. Синхронизация нужна при наличии возможности получить электрический конфликт. Если такой возможности нет, то и ожидать второе ядро незачем. А значит, никаких взаимных блокировок и не будет, если только специально их не написать, из вредности.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Сб май 29, 2010 17:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
а с чего они будут мешать?


Совершенно ясно, что мешать они могут только сдуру...
Либо у программера крыша съехала, либо у программы им написанной...

Если же ни того, ни другого не наблюдается, то процессы (aka ядра процессора) должны уважать друг друга и в чужие данные без надобности не лазить. А вот для этого надо сначала определиться, где чьи данные, т.е. провести разделение общего адресного пространства...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Вс май 30, 2010 14:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6086
Благодарил (а): 13 раз.
Поблагодарили: 96 раз.
WingLion писал(а):
К личным данным надо относить изменяемую часть форт-кода, переменные (фактически все!), обрабатываемые данные и т.д. и т.п.

А вот не факт, что эти данные при размещении в одном адресном пространстве будут подвергаться несанкционированным изменениям.

Код:
CREATE X[] 1000 CELLS ALLOT

: SUM-ARRAY1
  0
  500 0 DO
    X[] I -TH @ +
  LOOP
;

: SUM-ARRAY2
  0
  1000 500 DO
    X[] I -TH @ +
  LOOP
;

VARIABLE SUM2

: MAIN1  \ точка старта первого ядра
  SUM-ARRAY1
  SUM2 @ +
\ теперь на стеке первого ядра сумма элементов массива X[]
;

: MAIN2  \ точка старта второго ядра
  SUM-ARRAY2
  SUM2 !
;


Массив в общем доступе, переменная SUM2 тоже. Другое дело, что оба ядра "договорились", что не будут портить друг другу жизнь. Но я потому и писал о multithreading (а не multitasking), что по сути программа-то одна, только исполняется в два потока. Вот тут получился двукратный прирост производительности, поскольку ядра посчитали по половинке массива.

А вообще, про память данных ничего не конкретизировалось. Речь шла об общей памяти программ, а память данных можно как обобщать, так и делать раздельной для ядер.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Вс май 30, 2010 20:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Надо все-таки подходить творчески к подобному разделению.

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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Вс май 30, 2010 20:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6086
Благодарил (а): 13 раз.
Поблагодарили: 96 раз.
WingLion писал(а):
Если два ядра работают над одной задачей, ясен пень, что у них данные общие.
А у разных-то задач данные всяко должны быть разделены.

Multithreading - это "много нитей". Это и есть работа над одной задачей. Тут как раз и будет полезен совместный доступ к коду.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Multi-threading для софт-процессора
СообщениеДобавлено: Вс май 30, 2010 21:51 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
просто повторюсь...

WingLion писал(а):
Надо все-таки подходить творчески к подобному разделению.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 73 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB