реклама на сайте
подробности

 
 
> Свои процессоры, Разработка своих процессоров со своей системой команд
PVL
сообщение Mar 12 2009, 19:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 1-02-07
Пользователь №: 24 959



Занимаюсь разработкой своего проца под SoC. Если есть предложения по системе команд и практической реализации пишем сюда.

Сообщение отредактировал PVL - Mar 12 2009, 19:54
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Leka
сообщение Jun 2 2010, 10:31
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Косвенную адресацию памяти
R6[R10]=R7; --> STORE R7,(R6+R10)
R13=R3[R10]; --> LOAD R13,(R3+R10)
Для 2х-операндной архитектуры:
R6[R10]=R7; -->
MOV R0,R6
ADD R0,R10
ST R7,(R0)
R13=R3[R10]; -->
MOV R0,R3
ADD R0,R10
LD R13,(R0)
или переписать "ассемблерный" код под 2х-операндную архитектуру с использованием указателей R6 R3 вместо пар база-индекс:
*R6=R7;
R13=*R3;
и учесть такие мнемоники в трансляторе в машинные коды.



Вариант N-ферзей с указателями на "ассемблерном" Си (кроме main(){}).
CODE
queens( int N ){
int
count,
arow[20],
aleft[20],
aright[20],
aposs[20],
poss,
place,
val,
pos,
pos1,
N1,
temp,
temp1,
*prow,
*pleft,
*pright,
*pposs,
*prow1,
*pleft1,
*pright1,
*pposs1;

count = 0;
N1= N & 1;
temp = 1 << N;
val = temp - 1;
temp = N >> 1;
poss = val >> temp;
pos = 1;
//
prow=arow+1;
pleft=aleft+1;
pright=aright+1;
pposs=aposs+1;
//arow[1] = 0;
//aleft[1] = 0;
//aright[1] = 0;
//aposs[1] = poss;
*prow = 0;
*pleft = 0;
*pright = 0;
*pposs = poss;
do{
if( poss != 0 ){
temp = -poss;
place = poss & temp;
temp = ~place;
poss = poss & temp;
if( pos == N1 && poss == 0 )
count = count << 1;
if( pos != N ){
pos1 = pos + 1;
//
prow1 = prow+1;
pleft1 = pleft+1;
pright1 = pright+1;
pposs1 = pposs+1;
//aposs[pos] = poss;
*pposs = poss;
//temp = arow[pos];
temp = *prow;
temp = temp | place;
//arow[pos1] = temp;
*prow1 = temp;
//temp = aleft[pos];
temp = *pleft;
temp = temp | place;
temp = temp << 1;
//aleft[pos1] = temp;
*pleft1 = temp;
//temp = aright[pos];
temp = *pright;
temp = temp | place;
temp = temp >> 1;
//aright[pos1] = temp;
*pright1 = temp;
//temp = arow[pos1];
temp = *prow1;
//temp1 = aleft[pos1];
temp1 = *pleft1;
temp = temp | temp1;
//temp1 = aright[pos1];
temp1 = *pright1;
temp = temp | temp1;
temp = ~temp;
temp = temp & val;
poss = temp;
pos = pos1;
//
prow += 1;
pleft += 1;
pright += 1;
pposs += 1;
}else
count = count + 1;
}else{
pos = pos - 1;
//
prow -= 1;
pleft -= 1;
pright -= 1;
pposs -= 1;
//poss = aposs[pos];
poss = *pposs;
}
}while( pos != 0 );
if( N1 == 0 )
count = count << 1;
return count;
}

main(){
int N;
for(N = 1; N < 15; N = N + 1){
printf("queens(%d)=%d \n", N, queens(N));
}
}


Сообщение отредактировал Omen_13 - Jul 18 2010, 20:57
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PVL   Свои процессоры   Mar 12 2009, 19:51
- - SM   Как классно поставлен вопрос Свои процы делаются...   Mar 12 2009, 19:58
|- - PVL   Цитата(SM @ Mar 12 2009, 22:58) Как класс...   Mar 12 2009, 20:05
|- - Methane   Цитата(PVL @ Mar 12 2009, 22:05) Сейчас в...   Mar 12 2009, 20:13
|- - PVL   Цитата(Methane @ Mar 12 2009, 23:13) Что ...   Mar 12 2009, 20:16
|- - Methane   Цитата(PVL @ Mar 12 2009, 22:16) Почти то...   Mar 12 2009, 20:20
||- - PVL   Цитата(Methane @ Mar 12 2009, 23:20) И тр...   Mar 12 2009, 20:23
||- - Methane   Цитата(PVL @ Mar 12 2009, 22:23) Не для с...   Mar 12 2009, 20:37
||- - PVL   Цитата(Methane @ Mar 12 2009, 23:37) Как ...   Mar 12 2009, 20:39
||- - Methane   Цитата(PVL @ Mar 12 2009, 22:39) Не повер...   Mar 12 2009, 20:49
||- - PVL   Цитата(Methane @ Mar 12 2009, 23:49) А я ...   Mar 12 2009, 20:53
||- - Methane   Цитата(PVL @ Mar 12 2009, 22:53) На спарт...   Mar 12 2009, 21:02
||- - SM   Цитата(PVL @ Mar 12 2009, 23:53) Система ...   Mar 13 2009, 18:41
||- - PVL   Цитата(SM @ Mar 13 2009, 21:41) Ну почему...   Mar 19 2009, 16:03
||- - SM   Цитата(PVL @ Mar 19 2009, 19:03) Во вторы...   Mar 19 2009, 17:28
||- - Maverick   Цитата(PVL @ Mar 19 2009, 20:03) 57 бит н...   Mar 25 2009, 06:29
||- - SM   Цитата(Maverick @ Mar 25 2009, 09:29) А м...   Mar 25 2009, 08:33
||- - Maverick   Цитата(SM @ Mar 25 2009, 12:33) Спасибо...   Mar 25 2009, 11:03
|- - yes   Цитата(PVL @ Mar 12 2009, 23:16) Почти то...   Mar 25 2009, 18:01
|- - PVL   Цитата(yes @ Mar 25 2009, 22:01) я всегда...   Mar 29 2009, 15:34
|- - yes   Цитата(PVL @ Mar 29 2009, 19:34) Это ЛАЖА...   Mar 30 2009, 10:35
- - des00   Цитата(PVL @ Mar 12 2009, 13:51) Занимаюс...   Mar 13 2009, 03:47
|- - SM   Цитата(des00 @ Mar 13 2009, 06:47) ЗЫ. на...   Mar 13 2009, 07:51
|- - Ynicky   А у меня уже есть свой процессор. LCC осилил, а во...   Mar 13 2009, 10:23
|- - SM   Цитата(Ynicky @ Mar 13 2009, 13:23) А у м...   Mar 13 2009, 10:55
||- - Harbour   Цитата(SM @ Mar 13 2009, 12:55) Что интер...   Mar 21 2009, 11:19
|- - OverDrewk   Цитата(Ynicky @ Mar 13 2009, 17:23) А у м...   Oct 23 2009, 04:57
|- - Ynicky   Цитата(OverDrewk @ Oct 23 2009, 08:57) См...   Oct 23 2009, 16:07
|- - Leka   Цитата(Ynicky @ Oct 23 2009, 20:07) Перед...   Oct 23 2009, 17:32
|- - Ynicky   Цитата(Leka @ Oct 23 2009, 21:32) Ну и ка...   Oct 23 2009, 19:27
- - Sefo   Цитата(PVL @ Mar 12 2009, 23:53) Система ...   Mar 13 2009, 11:40
- - PVL   Что такое binutils? Готовая среда для разработки С...   Mar 24 2009, 14:54
|- - Ynicky   Цитата(PVL @ Mar 24 2009, 17:54) Что тако...   Mar 24 2009, 16:53
|- - SM   Цитата(PVL @ Mar 24 2009, 17:54) Что тако...   Mar 24 2009, 19:13
- - Ynicky   Чтобы не плодить новую тему, напишу сдесь. Если, к...   Jun 13 2009, 11:04
|- - Ynicky   Выкладываю новую версию проекта. Просьба сообщить,...   Jun 14 2009, 14:30
||- - Leka   Цитата(Ynicky @ Jun 14 2009, 18:30) Прось...   Jun 14 2009, 19:39
||- - des00   Цитата(Ynicky @ Jun 14 2009, 09:30) Выкла...   Jun 15 2009, 02:59
|||- - Ynicky   Цитата(des00 @ Jun 15 2009, 06:59) для те...   Jun 15 2009, 06:42
|||- - SFx   Цитата(des00 @ Jun 15 2009, 06:59) для те...   Jun 15 2009, 07:34
||- - Ynicky   Исправили ошибки загрузки/выгрузки. Николай.   Jun 15 2009, 17:13
||- - Ynicky   Подкорректировали проект. Проверили прерывания. До...   Jun 17 2009, 15:07
||- - Ynicky   Написали JTAG на vhdl, чтобы можно было проект заш...   Jul 1 2009, 05:52
||- - Ynicky   Добавили 2 блока к внутрисхемному эмулятору. Отмод...   Jul 8 2009, 07:06
||- - Ynicky   Добавили блок чтения регистрового файла в режиме о...   Sep 10 2009, 18:18
|- - Leka   Команды Break и LU - что делают? И зачем выделенн...   Jun 14 2009, 18:27
|- - Ynicky   Цитата(Leka @ Jun 14 2009, 22:27) Команды...   Jun 14 2009, 19:02
- - kuchynski   Пользуюсь своим процессором 5 год, за это время и ...   Oct 16 2009, 06:37
|- - Aner   Цитата(kuchynski @ Oct 16 2009, 09:37) По...   Oct 16 2009, 09:58
|- - kuchynski   Цитата(Aner @ Oct 16 2009, 12:58) Тактова...   Oct 21 2009, 09:10
- - Leka   ~2K LUT - немного по сравнению с LEON/OpenRISC/Cor...   Oct 23 2009, 20:26
|- - Ynicky   Цитата(Leka @ Oct 24 2009, 00:21) ~2K LUT...   Oct 23 2009, 20:39
|- - Leka   Цитата(Ynicky @ Oct 24 2009, 00:30) Так э...   Oct 23 2009, 20:45
|- - Ynicky   Цитата(Leka @ Oct 24 2009, 00:44) Вот и с...   Oct 23 2009, 20:47
|- - Leka   Цитата(Ynicky @ Oct 24 2009, 00:47) А FPG...   Oct 23 2009, 21:20
- - flipflop   Кто-нибудь реализовал MMU? Поделитесь опытом. Не ...   Dec 5 2009, 14:19
|- - Ynicky   Цитата(flipflop @ Dec 5 2009, 17:19) Кто-...   Dec 6 2009, 09:41
|- - flipflop   Цитата(Ynicky @ Dec 6 2009, 12:41) А что ...   Dec 6 2009, 10:27
|- - Ynicky   Цитата(flipflop @ Dec 6 2009, 13:27) 3) Е...   Dec 6 2009, 12:45
|- - flipflop   Цитата(Ynicky @ Dec 6 2009, 15:45) В моем...   Dec 6 2009, 12:54
|- - Ynicky   Цитата(flipflop @ Dec 6 2009, 15:54) Ясно...   Dec 6 2009, 13:06
|- - flipflop   Цитата(Ynicky @ Dec 6 2009, 16:06) В ASIC...   Dec 6 2009, 13:21
|- - Ynicky   Цитата(flipflop @ Dec 6 2009, 16:21) Ого,...   Dec 6 2009, 13:34
|- - Ynicky   Перешел в тему "Свои процессоры" из ...   May 23 2010, 16:56
|- - =AK=   Цитата(Ynicky @ May 24 2010, 02:26) Предл...   May 25 2010, 07:26
- - Leka   Я бы упростил систему команд, все-таки большинству...   May 24 2010, 21:01
|- - Ynicky   Я как раз и собираюсь "пощупать" процесс...   May 25 2010, 05:43
|- - Leka   Цитата(Ynicky @ May 25 2010, 09:43) А как...   May 25 2010, 08:01
|- - Ynicky   Цитата(Leka @ May 25 2010, 12:01) Пример ...   May 25 2010, 11:12
||- - Ynicky   Начал делать АЛУ и сразу возникла мысль: в операци...   May 25 2010, 15:21
||- - Leka   Цитата(Ynicky @ May 25 2010, 19:21) это н...   May 25 2010, 17:45
||- - Ynicky   Подкорректировал описание.   May 25 2010, 18:23
|- - =AK=   Цитата(Leka @ May 25 2010, 17:31) А зачем...   May 26 2010, 07:43
- - Leka   Проблема вот в чем. На уровне "ассемблерног...   May 25 2010, 21:47
- - Leka   Если регистры не используются одновременно разными...   May 26 2010, 08:28
|- - =AK=   Цитата(Leka @ May 26 2010, 17:58) Если ре...   May 26 2010, 11:14
- - Leka   Из: Кодqueens( int N ){ int count, arow...   May 26 2010, 12:36
|- - =AK=   Цитата(Leka @ May 26 2010, 22:06) Все пер...   May 26 2010, 12:46
|- - Ynicky   Цитата(=AK= @ May 26 2010, 16:46) Я в одн...   May 26 2010, 17:40
|- - Leka   Цитата(Ynicky @ May 26 2010, 21:40) Я пок...   May 26 2010, 19:59
|- - Ynicky   Цитата(Leka @ May 26 2010, 23:59) Тогда р...   May 27 2010, 09:21
- - Leka   А нету временных переменных. Как после: #define in...   May 26 2010, 13:11
|- - =AK=   Цитата(Leka @ May 26 2010, 22:41) А нету ...   May 27 2010, 08:59
|- - Leka   Цитата(=AK= @ May 27 2010, 12:59) ...Соот...   May 27 2010, 09:31
|- - =AK=   Цитата(Leka @ May 27 2010, 19:01) сравнит...   May 27 2010, 10:04
|- - Ynicky   Ну вот, выкладываю первую версию процессора. Проек...   May 30 2010, 07:15
|- - des00   Цитата(Ynicky @ May 30 2010, 02:15) Ну во...   May 30 2010, 10:32
- - Leka   Гораздо проще придумать свой язык и компилятор к н...   May 27 2010, 05:04
- - Leka   Вся система команд с учетом архитектуры будет опис...   May 27 2010, 08:08
- - Leka   Презентации - неинтересно. Первая попавшаяся нерек...   May 27 2010, 12:19
- - Leka   На этой неделе постараюсь выложить первую версию к...   May 31 2010, 22:17
|- - Ynicky   Цитата(Leka @ Jun 1 2010, 02:17) Нужна ещ...   Jun 1 2010, 05:56
- - Leka   Чтобы проще было вылавливать ошибки в компиляторе ...   Jun 1 2010, 22:29
|- - Ynicky   А что означают выражения?: R6[R10]=R7; R13=R3[R10]...   Jun 2 2010, 06:50
|- - Ynicky   Закончил "в черне" процессор. Вынес памя...   Jun 2 2010, 19:34
|- - Ynicky   Цитата(Ynicky @ Jun 2 2010, 23:34) Описан...   Jun 5 2010, 16:47
- - Leka   Написал компилятор "ассемблерный" Си --...   Jun 2 2010, 20:50
- - Leka   Первая версия компилятора "ассемблерный...   Jun 7 2010, 19:40
- - Leka   У меня указатель на область локальных переменных а...   Jun 7 2010, 21:25
4 страниц V   1 2 3 > » 


Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01617 секунд с 7
ELECTRONIX ©2004-2016