память с параллельным доступом

Обсуждаем цифровые устройства...
Ответить
thunder87l
Встал на лапы
Сообщения: 138
Зарегистрирован: Вт дек 30, 2008 22:54:36

память с параллельным доступом

Сообщение thunder87l »

Слышал что существуют RAM чипы с возможностью одновременно писать и читать или читать две разные ячейки.
Если существуют двухканальные, можно предположить что где-то есть и 4x. Собственно интересует - где предел этому безобразию и где купить такое чудо. Применение - параллельная обработка массива данных несколькими процессорами.
petrenko
Друг Кота
Сообщения: 5321
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: память с параллельным доступом

Сообщение petrenko »

Да, разумеется, существуют ИМС двухпортового, трёх- и даже много-портового ОЗУ.
Стоят дороже, нежели однопортовое статическое ОЗУ, но если кому деиствительно нужно - покупают.
Насчёт найти - не поленитесь попользовать поисковые машины. Советую АльтаВисту. ( гугль Вам и так насоветуют "стопицот" раз все, кому не лень )
P.S. Только вот что то есть смутные сомнения, что после той "параллельной обработки массива данных несколькими процессорами" результаты могут оказаться зело чудными.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
thunder87l
Встал на лапы
Сообщения: 138
Зарегистрирован: Вт дек 30, 2008 22:54:36

Re: память с параллельным доступом

Сообщение thunder87l »

Насчёт найти - не поленитесь попользовать поисковые машины. Советую АльтаВисту


Да, двухпортовую то я нашёл, и даже четырёхпортовую. Но вопрос то был - что на данный момент в конце линейки и где ЭТО купить?

P.S. Только вот что то есть смутные сомнения, что после той "параллельной обработки массива данных несколькими процессорами" результаты могут оказаться зело чудными.


Понятия не имеете для чего система, но уже имеете смутные сомнения насчёт результатов?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: память с параллельным доступом

Сообщение Alexeyslav »

Сомнения оправданы. Несколько процессоров будут иметь доступ в одну и ту же область памяти, один может изменить какие-то результаты который возьмет второй - когда это будет происходить несинхронно могут быть различные ситуации когда один процессор возьмет результат второго до того как он его выложит в память или даже В ПРОЦЕССЕ. Нужна будет синхронизация какая-то, но тогда накой многопортовая память? Ведь куда проще выделить для каждого процессора отдельный участок памяти - страницу например, а для возможности межпроцессорного обмена - иметь возможность предоставлять каждому процессору доступ только к одной или двум страницам памяти, обойдясь при этом обычной однопортовой памятью. Даже в таком случае, можно что-то сделать с многопортовой для ускорения работы - т.е. дать возможность одновременно одному процессору писать в страницу памяти а другому читать из той же страницы.
Rokl
Друг Кота
Сообщения: 5232
Зарегистрирован: Пт авг 25, 2006 09:26:19
Откуда: Москва

Re: память с параллельным доступом

Сообщение Rokl »

thunder87l писал(а):Слышал что существуют RAM чипы с возможностью одновременно писать и читать...

Это стандартная процедура DRAM.
ОЗУ обычно работает в режиме ЧТЕНИЕ,ЗАПИСЬ,ХРАНЕНИЕ.
DRAM может ещё работать в режиме ЧТЕНИЕ,МОДИФИКАЦИЯ ЗАПИСИ.
Т.Е. можно одновременно прочитать содержимое ячейки и тутже в цикле чтения, не производя повторной выборки, изменить содержимое ячейки(произвести модификацию записи).
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: память с параллельным доступом

Сообщение Alexeyslav »

Это касается только одной ячейки, иметь возможность записи по одному адресу а чтение производить по другому ОДНОВРЕМЕННО - это уже совсем другая способность.
Rokl
Друг Кота
Сообщения: 5232
Зарегистрирован: Пт авг 25, 2006 09:26:19
Откуда: Москва

Re: память с параллельным доступом

Сообщение Rokl »

Alexeyslav писал(а):Это касается только одной ячейки, иметь возможность записи по одному адресу а чтение производить по другому ОДНОВРЕМЕННО - это уже совсем другая способность.

Только кто выставит другой адрес и КАК???, если адресная шина проца и ОЗУ занята первым адресом????
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: память с параллельным доступом

Сообщение Meteor »

Не обязательно таскать данные через общую шину, равно как и адрес выставлять.
С процессорами конечно заморочка, а вот в ПЛИС реализовать доступ на чтение и запись можно без проблем
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Rokl
Друг Кота
Сообщения: 5232
Зарегистрирован: Пт авг 25, 2006 09:26:19
Откуда: Москва

Re: память с параллельным доступом

Сообщение Rokl »

Meteor писал(а):Не обязательно таскать данные через общую шину, равно как и адрес выставлять.
С процессорами конечно заморочка, а вот в ПЛИС реализовать доступ на чтение и запись можно без проблем

И что? проц всеравно занят единомоментно либо одним адресом, либо другим.Просто вы в ПЛИС назначите регистр хранения числа, где оно будет валяться, пока проц занимается другим числом. Другое дело два проца и ПЛИС...
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: память с параллельным доступом

Сообщение ibiza11 »

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

видимо вы с ПЛИС не работали. Что мешает плис работать с памятью в двух потоках с разными адресами без участия процессоров?
Ставим плюсы: )
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: память с параллельным доступом

Сообщение Alexeyslav »

Это ведь и называется двухпортовая память. В случае одной памяти доступной двум процессорам для выполнения ОДНОЙ или совмещенных задач больше времени уйдет на синхронизацию чем выиграешь на совместном доступе. Многопортовая память хорошо себя показывает на конвеерах, когда несколько исполнительных блоков могут брать данные одновременно с разных частей памяти.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: память с параллельным доступом

Сообщение Meteor »

Rokl писал(а):...Просто вы в ПЛИС назначите регистр хранения числа, где оно будет валяться, пока проц занимается другим числом...

Если использовать ПЛИС в качестве расширителя портов ввода\вывода, то да. Но например у меня в ПЛИС реализована и двухпортовая память (2шт пока) и устройство записи данных (с 2х каналов) и обработка. Для обработки выдергиваются данные из обоих блоков памяти с разными (редко одинаковыми) адресами. И процессора нет ваще! :shock:
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Rokl
Друг Кота
Сообщения: 5232
Зарегистрирован: Пт авг 25, 2006 09:26:19
Откуда: Москва

Re: память с параллельным доступом

Сообщение Rokl »

Meteor писал(а):... Но например у меня в ПЛИС реализована и двухпортовая память (2шт пока) и устройство записи данных (с 2х каналов) и обработка. Для обработки выдергиваются данные из обоих блоков памяти с разными (редко одинаковыми) адресами. И процессора нет ваще! :shock:

Ключевая фраза - ...данные из обоих блоков памяти. Т.е. вы организовали два независимых банка памяти и их каким то образом используете.
Топикстартер имел ввиду один чип памяти с независимой выборкой по двум разным адресам:
thunder87l писал(а):... Слышал что существуют RAM чипы с возможностью одновременно писать и читать или читать две разные ячейки.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: память с параллельным доступом

Сообщение Meteor »

Rokl, поясняю.
Реализовано два одинаковых блока являющихся двухпортовым ОЗУ емкостью 256 Байт. У каждого блока есть шина адреса записи, шина данных для записи, шина адреса чтения и шина данных для чтения. Запись в блоки происходит одновременно. Так же и с чтением. Отличие может быть только в том, что в данный момент запись была по адресам Ni, а чтение по адресам Nk и Nm, где i, k и m могут принимать как разные, так и одинаковые значения.
Микросхемы двухпортовой памяти устроены совершенно так же - 4 шины, из них две адреса и две данных.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
petrenko
Друг Кота
Сообщения: 5321
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: память с параллельным доступом

Сообщение petrenko »

"Alexeyslav" верно говорит, что смутные сомнения обоснованы.
Действительно, независимо от сути проекта, возможны разнообразнейшие "спецэффекты" при работе именно с таким ОЗУ.
А если никогда не требуется параллельный совместный доступ нескольких устройств( в т.ч., возможно, нескольких CPU ) в одну область памяти, то и память такого типа применять нет смысла, в таких случаях просто части массива данных копируются в локальные ОЗУ каждого CPU ,а потом уже производится "стыковка" обработанных кусков.
И вообще эти вопросы очень подробно описывались и прорабатывались ещё в период 1977~1989++( судя по годам издания литературы на эту тему )
А тут даже зачем то уже спорить начали, к тому же, прямо скажем, ни о чём. :dont_know:
Для примера ведь можно посмотреть на ИМС двухпортовой памяти типа {155/133/533/555}РП1 ( aka {54/74/54LS/74LS}170 ,пожалуй самого маленького объёма из любых, серийно выпускавшихся... ) ,или на ИМС трёхпортовой памяти типа {155/133/533/555}РП3 ( aka {54/74}172 ) ,чтобы не спорить хотя бы по вопросу определения, что есть такое "двух-, трёх-, или N-портовое ОЗУ. И другие справочники и учебники тоже можно посмотреть.
В нынешнее время, разумеется, выпускаются ИМС гораздо большего объёма, нежели тогда.
И неверно будет утверждать, что поисковые машины ну никак не могут найти, где и какие ИМС продаются и по какой цене.
Как раз продавцов и цены находят в первую очередь. Это вот с "дэйтащиитами" поскуднее будет, но тоже шукают, если не лениться составить правильный поисковый запрос. :roll:

ttlp111.gif
(2 КБ) 981 скачивание

ttlp140.gif
(2.82 КБ) 398 скачиваний
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
thunder87l
Встал на лапы
Сообщения: 138
Зарегистрирован: Вт дек 30, 2008 22:54:36

Re: память с параллельным доступом

Сообщение thunder87l »

petrenko писал(а):"Alexeyslav" верно говорит, что смутные сомнения обоснованы.
Действительно, независимо от сути проекта, возможны разнообразнейшие "спецэффекты" при работе именно с таким ОЗУ.
А если никогда не требуется параллельный совместный доступ нескольких устройств( в т.ч., возможно, нескольких CPU ) в одну область памяти, то и память такого типа применять нет смысла, в таких случаях просто части массива данных копируются в локальные ОЗУ каждого CPU ,а потом уже производится "стыковка" обработанных кусков.


В общем то я интересовался raytracing'ом. Сама по себе трассировка лучей - штука не сложная, если не лезть во всякие извращения вроде матовых поверхностей и сглаживания. Вполне выполнимо на FPGA. Нет никаких препятствий к тому чтобы выполнять трассировку хоть всех пикселей паралельно, за исключением того, что каждый трассирующий блок должен иметь доступ ко всей сцене целиком. Никаких спецэффектов с моей точки зрения быть не может, потому как 1) в FPGA блоки синхронизированы, 2) трассировщики только читают из памяти. В процессе трассировки объекты из памяти перебираются один за другим - пока не окажется, что луч пересекает объект. Приходят к результату они по идее в разное время, поэтому читать сцену одновременно для всех трассировщиков неэффективно. Два варианта - либо многопортовый чип, либо несколько одинаковых чипов. Мне почему-то кажется, что многопортовый как-то удобнее.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: память с параллельным доступом

Сообщение Alexeyslav »

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

т.е. читаем мы данные из памяти(не важно, сразу все данные или по частям по ходу вычислений - главное тут соотношение времени когда выполняется чтение данных с общей памяти и времени собственно вычисления) обрабатываем у себя и выплевываем результат. Вот когда время потраченное на чтение данных из памяти всеми процессами будет равно времени вычисления одним процессом - это граничное условие при котором еще имеет смысл одновременного чтения данных из общей памяти, иначе если время вычисления будет больше - память будет простаивать и имеет смысл уменьшить количество портов и ввести очередь чтения - все равно память будет иногда простаивать.
thunder87l
Встал на лапы
Сообщения: 138
Зарегистрирован: Вт дек 30, 2008 22:54:36

Re: память с параллельным доступом

Сообщение thunder87l »

Согласен. Я ещё не прикидывал тайминг. Надо бы сперва написать рабочий трассировщик, а потом смотреть размер vs. скорость. Если за один такт FPGA реально просчитать одно пересечение, то скажем 4 ядра трассировщика работающих параллельно таки потребуют одновременного доступа к памяти. Если на вычисления уйдёт 4 такта, то лучше организовать очередь. С другой стороны 4 такта - это либо сбросить количество пикселей, либо глубину трассировки. Но это уже лирика. В любом случае - ответ я получил, спасибо :)
Ответить

Вернуться в «Цифровая техника»