|
Lattice бросился вдогонку за альтерой, LatticeMico32 Open, Free 32-Bit Soft Processor |
|
|
|
 |
Ответов
|
Oct 2 2006, 13:38
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Leka @ Oct 2 2006, 08:12)  Имхо, все упрется в программирование, и ассемблер не выход: упор на быстродействие приведет к "длинной" инструкции, ограничения архитектуры FPGA - к вынужденной неортогональности --> проблемы программирования. хмм, опять же зависит от того, с какой стороны посмотреть. если под длинной инструкцией вы понимаете програмное слово со слабым кодированием, то это не есть проблема. К тому же 64 бита ширины програмного слова не проблема на фпга. Не стоит делать у такого проца большое кол-во команд и режимов адресаций, а достаточно заточить его под задачу, помня о назначении проца. Т.е. после написания кода, помочь синтезатору и "поотключать" все неиспользуемые команды. Синтезатор достаточно хорошо минимизирует логику. Если вы хотите много считать, то сделайте отдельный блок математики и включите его в декодер комманд процессора и/или отмапте на регистровый файл и пару пинов ввода/вывода. PS. Не обязательно процессор делать однотактным и без конвейера. PPS. кстати по такому пути пошли Field Programmable Object Array (FPOA) и Ambric и т.д. PPPS. Декодер потока команд управления, своего StateSeq я как раз и "вырвал" из своего программируемого проца, версии2 (версия2, заимствует идеи интерконекта как раз из FPOA). Посмотрите на StateSeq и вы поймете что я имею в виду, под заточкой под задачу  . http://electronix.ru/forum/index.php?showt...19202&st=15
--------------------
|
|
|
|
|
Oct 2 2006, 15:09
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(des00 @ Oct 2 2006, 17:38)  Цитата(Leka @ Oct 2 2006, 08:12)  Имхо, все упрется в программирование, и ассемблер не выход: упор на быстродействие приведет к "длинной" инструкции, ограничения архитектуры FPGA - к вынужденной неортогональности --> проблемы программирования.
хмм, опять же зависит от того, с какой стороны посмотреть. если под длинной инструкцией вы понимаете програмное слово со слабым кодированием, то это не есть проблема. К тому же 64 бита ширины програмного слова не проблема на фпга. ... Под длинной инструкцией понимаю несколько операций в одном программном слове. Например: переход + арифметика + пересылка. Свой софт-процессор написал (однотактный, конвейер - 2 стадии). Столкнулся с тем, что неортогональность при длинной инструкции превращает написание программы(на ассемблере) в пытку.
Сообщение отредактировал Leka - Oct 2 2006, 15:10
|
|
|
|
|
Oct 2 2006, 15:54
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Leka @ Oct 2 2006, 10:09)  Цитата(des00 @ Oct 2 2006, 17:38)  Цитата(Leka @ Oct 2 2006, 08:12)  Имхо, все упрется в программирование, и ассемблер не выход: упор на быстродействие приведет к "длинной" инструкции, ограничения архитектуры FPGA - к вынужденной неортогональности --> проблемы программирования.
хмм, опять же зависит от того, с какой стороны посмотреть. если под длинной инструкцией вы понимаете програмное слово со слабым кодированием, то это не есть проблема. К тому же 64 бита ширины програмного слова не проблема на фпга. ... Под длинной инструкцией понимаю несколько операций в одном программном слове. Например: переход + арифметика + пересылка. Свой софт-процессор написал (однотактный, конвейер - 2 стадии). Столкнулся с тем, что неортогональность при длинной инструкции превращает написание программы(на ассемблере) в пытку. понятно, спасибо за разьяснение. Один раз я как раз угодил в подобную ловушку, т.е. достаточно сильно переутяжелил логику процессора, в итоге сильно упала тактовая и разработка на асме стала пыткой, т.к. голову сломаешь что да куда.  В итоге отказался от такого подхода. Именно поэтому и обеими руками за упрощение проца + его конфигурируемость. Основное назначение проца - управление и медленная (многотактная математика). Если нужно что то считать быстро - например ДКТ, то пишем корку и мапим регистры дкт на регистры такого проца. На этом его задача заканчиваеться. Нужна выше производительность ? поставим еще проц и будет конвейер. нужно порулить ДМА и 10 аппаратными блоками по AMBA вообще не имплементим математику, только адреса считать.
--------------------
|
|
|
|
|
Oct 4 2006, 04:55
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Leka @ Oct 3 2006, 05:54)  Имхо. Одна из главных проблем софт-процессора: "правильный" многопортовый регистровый файл с асинхронным чтением. Блочная память не допускает асинхронное чтение, распределенная - многопортовую запись. Обход этого ограничения выливается либо в неортогональность системы команд, либо к дополнительным тактам/ступеням/логике(+задержке). вы правы, но даже такая задача решаеться достаточно просто. 1. Честный двухпортовый регистровый файл у ксайлов делаеться на 2-х RAM16D. При этом мы можем читать 4 числа и писать 2 числа. Если не нужен доступ одновременно к 4 м числам, то все еще проще. Нужно использовать 2 однопортовки. Но при таком подходе возникает не возможность отмапливания регистров на внешние устройства. 2. Если требуеться небольшое кол-во регистров, то все просто, можно использовать набор обычных регистров. В этом случае упрощаеться реализация управления внешними устройствами + можно делать распределенную, многобайтную арфиметику. Можно также сделать составной регистровый файл. часть на памяти, часть на регистрах. я в програмировании не очень силен, т.к. писал на асме в основном только под х86, AVR, 51, но не могу понять зачем вы хотите именно ортогональную систему комманд, в процессоре специализированного (фпга) применения. Т.е. проц для фпга ИМХО - прежде всего не универсальное решение на все случаи жизни, а уменьшение времени разработки и отладки. Всем: Думаю достаточно клаву греть Если кто-то хочет поучаствовать в разработе подобного проца, то давайте каждый подготовит описание типовых задач, которые он решал/решает в текущее время и выдвинет свои требования к процу. Затем, за несколько on-line встреч (можно в irc), можно обсудить идеи и выработать концепцию проца и стратегии разработки. А дальше остаеться только определиться с назначением работ по разработке и реализовать, как сам проц, так и софт для разработки на нем.
--------------------
|
|
|
|
|
Oct 4 2006, 10:23
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(des00 @ Oct 4 2006, 08:55)  Цитата(Leka @ Oct 3 2006, 05:54)  Имхо. Одна из главных проблем софт-процессора: "правильный" многопортовый регистровый файл с асинхронным чтением. Блочная память не допускает асинхронное чтение, распределенная - многопортовую запись. Обход этого ограничения выливается либо в неортогональность системы команд, либо к дополнительным тактам/ступеням/логике(+задержке).
вы правы, но даже такая задача решаеться достаточно просто. 1. Честный двухпортовый регистровый файл у ксайлов делаеться на 2-х RAM16D. При этом мы можем читать 4 числа и писать 2 числа. Если не нужен доступ одновременно к 4 м числам, то все еще проще. Нужно использовать 2 однопортовки. Но при таком подходе возникает не возможность отмапливания регистров на внешние устройства. ... У меня "красиво" не получилось. True dual port у меня реализуется на 2-х RAM16D и дополнительной логике, но тактовая падает вдвое при 8-кратном росте числа LUT --> теряется всякий смысл. На 2-х однопортвках однотактовый true dual port не реализуется, имхо. Можно примеры? Цитата Всем: Думаю достаточно клаву греть Если кто-то хочет поучаствовать в разработе подобного проца, то давайте каждый подготовит описание типовых задач, которые он решал/решает в текущее время и выдвинет свои требования к процу. У меня проект - многоядерный микроконтроллер, с прицелом на перевод в ASIC, отсюда все требования к ядру. Проверка софт-процессора "на вшивость": чисто программная (т.е. без использования каких-либо аппаратных костылей) реализация цветного текстового контроллера VGA (640*480 @25МГц) - задача управления в чистом виде со строгим таймингом. Для 8 цветов у меня с этим справляются 2 ядра(по 300..400 LUT) @50МГц (starter kit spartan3e).
|
|
|
|
Сообщений в этой теме
Stewart Little Lattice бросился вдогонку за альтерой Sep 28 2006, 10:51 des00 хмм а почему в догонку ? альтера тоже открыла исхо... Sep 28 2006, 15:19 id_gene Цитата(des00 @ Sep 28 2006, 19:19) хмм а ... Sep 29 2006, 08:08 makc Цитата(des00 @ Sep 28 2006, 19:19) нуно к... Sep 29 2006, 09:20  des00 Цитата(makc @ Sep 29 2006, 04:20) Цитата(... Sep 29 2006, 11:37 Stewart Little А на LatticeMicro8 кто-нибудь посмотрел?
http://ww... Sep 29 2006, 12:08 des00 Цитата(Stewart Little @ Sep 29 2006, 07:0... Sep 29 2006, 12:18  Stewart Little Цитата(des00 @ Sep 29 2006, 16:18) 1. ест... Sep 29 2006, 12:38 vetal ЦитатаИнтерес (пока чисто академический) - возможе... Sep 29 2006, 12:49 Uuftc Цитата(vetal @ Sep 29 2006, 16:49) OpenUP... Sep 9 2008, 21:06 3.14 А я чего то уже наелся синтезируемыми процессорами... Sep 29 2006, 13:09 des00 Цитата(3.14 @ Sep 29 2006, 08:09) А я чег... Sep 29 2006, 13:14  RobFPGA [quote name='des00' date='Sep 29 2006,... Sep 30 2006, 10:08   klop [quote name='RobFPGA' date='Sep 30 200... Sep 30 2006, 11:27 3.14 Мне вот интересно, какую тактовую системную частот... Sep 29 2006, 13:38 Stewart Little Цитата(3.14 @ Sep 29 2006, 17:38) Мне вот... Sep 29 2006, 14:20 3.14 Не плохо, на спартане3 без секса больше 50~60МГц п... Sep 29 2006, 16:54 makc Цитата(3.14 @ Sep 29 2006, 20:54) Не плох... Sep 30 2006, 10:44 Stewart Little Цитата(3.14 @ Sep 29 2006, 20:54) А сколь... Oct 2 2006, 07:11 antti Цитата(3.14 @ Sep 29 2006, 20:54) Не плох... Oct 3 2006, 18:11 des00 2 klop и RobFPGA
Если вам интересно мое ИМХО, то ... Sep 30 2006, 12:43 iosifk Цитата(des00 @ Sep 30 2006, 16:43) 2 klop... Oct 2 2006, 07:36  klop Цитата(iosifk @ Oct 2 2006, 11:36) Цитата... Oct 2 2006, 13:50 Doka Цитата(des00 @ Sep 30 2006, 16:43) Есть м... May 6 2008, 15:35  yes Цитата(Doka @ May 6 2008, 19:35) это очен... Jun 18 2008, 14:22 klop Ну то есть енто проц специально для FPGA. Вот и от... Sep 30 2006, 12:57      Postoroniy_V Цитата(des00 @ Oct 4 2006, 08:55) Всем:
... Oct 4 2006, 07:09       des00 После выходных не получилось работы много навалил... Oct 12 2006, 14:46        Leka Цитата(des00 @ Oct 12 2006, 18:46) ...
А ... Oct 13 2006, 08:53 antti LatticeMico32
http://www.latticesemi.com/dynamic... Oct 3 2006, 17:52 des00 2 Postoroniy_V, Leka, RobFPGA
Извеняюсь за паузу... Oct 5 2006, 15:29 tegumay Тоже предлагаю выделить в отд.тему:
атачмент -
И... Oct 18 2006, 18:03 Vitaliy_ARM Народ! Кто уже использует этот проц, просьба п... Sep 5 2008, 12:01 vladz Цитата(Vitaliy_ARM @ Sep 5 2008, 15:01) Н... Sep 8 2008, 18:20  Vitaliy_ARM Цитата(vladz @ Sep 8 2008, 22:20) Процесс... Sep 10 2008, 11:24   vladz Цитата(Vitaliy_ARM @ Sep 10 2008, 14:24) ... Sep 12 2008, 05:57 Doka Uuftc
как вариант: посмотреть сайт через кэш гугл:... Sep 10 2008, 05:09 Uuftc Цитата(Doka @ Sep 10 2008, 09:09) Uuftc
к... Sep 10 2008, 11:22 Doka Uuftc
Sep 10 2008, 15:33 Uuftc Цитата(Doka @ Sep 10 2008, 19:33) DSPuva1... Sep 10 2008, 22:45 Mahagam Цитата(Doka @ Sep 10 2008, 18:33) Uuftc
... Sep 12 2008, 07:32 Doka Mahagam
кэш гугла у вас есть - где там про тестебе... Sep 12 2008, 19:24 Mahagam Цитата(Doka @ Sep 12 2008, 22:24) Mahagam... Sep 15 2008, 09:15 Doka Mahagam
http://www.dte.eis.uva.es/Datos/Congresos/... Sep 15 2008, 17:15 Mahagam Цитата(Doka @ Sep 15 2008, 20:15) на перв... Sep 16 2008, 08:43 Yra http://opensource.zylin.com/zpudownload.html Проц... Aug 7 2010, 13:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|