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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Bопрос по АРМ9, Обработчики прерываний
sergeeff
сообщение Feb 23 2009, 13:02
Сообщение #16


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(axa09 @ Feb 23 2009, 10:45) *
В общем удалось ради эксперимента таблицу запихать во внутреннюю срам.
прироста в скорости не дало sad.gif
по ходу больше никак не выжать.

вот собственно задача:
есть буфер MxN байт- индексов другого массива(палитра).
требуется находить средние интенсивности компонент цвета из 4-х смежных точек(2х2 пиксела). короче,некое подобие фильтра при уменьшении картинки в два раза.
как можно сделать быстрее?
буфера во внешней памяти


Даже любопытно, как удалось 16 KB'ую таблицу запихнуть в 16 KB'ую SRAM и сохранить в ней таблицу векторов прерываний?
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 13:32
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Цитата(sergeeff @ Feb 23 2009, 04:02) *
Даже любопытно, как удалось 16 KB'ую таблицу запихнуть в 16 KB'ую SRAM и сохранить в ней таблицу векторов прерываний?



все просто. прикиньте сами:
0x00000000 - внутренняя SRAM после ReMap - отхавает RESET(вектор 0)
0x00100000 - внутренний ROM - отхавает Undef (вектор 1)
0x00200000 - внутренняя SRAM всегда - отхавает SWInt (вектор 2)

далее не затираем. Поэтому IRQ и FIQ целые. Остальные не пользуем wink.gif

0x00200400 - первый мегабайт SRAM (NCS0)
0x00200404 - второй мегабайт SRAM
итд...
0x00200С00 - периферия(дисплей) не кешируется и не буферизуется
...
стек в конце


О задаче по -подробнее:


//Буфер 256x240 исходного изобржения. Элемент -байт - индекс массива палитры
extern uint8 *Buf;

//Палитра. Каждый элемент 00rrr00ggg00bb- нули для того чтобы при сложении 4-х цветов небыло переполнения.
u16 PALETTE[256];

/*
256

1212121212..
3434343434..
1212121212.. 240
3434343434..
............
*/

/*
Далее ниже находим "средний пиксел"(среднее арифметическое каждой интенсивности R,G,cool.gif
Для этого складываем все компоненты смежных пикселов "1"+"2"+"3"+"4"
Потом сдвигами и битовыми "И" приводим к виду RRrGGgBB = R:G:B=>3:3:2
И отправляем байт в дисплей (шина EBI,8бит, автоинкремент адреса, 128x120 авто-скругление по кадру)
*/

#define Pixel \
c =PALETTE[*(u8*) Buf ]; \
c+=PALETTE[*(u8*)(Buf+ 1)]; \
c+=PALETTE[*(u8*)(Buf+256)]; \
c+=PALETTE[*(u8*)(Buf+257)]; \
Display_Data_Register=((c>>2)&0x03)|((c>>4)&0x1C)|((c>>6)&0xE0); \
Buf+=2;

void BlitScreen(u8 *Buf) //Отрисовка экрана
{
register u32 y,BufE,c;
for(y=0;y<120;y++)
{
BufE=(u32)Buf+256;
for(;(u32)Buf<BufE;)
{
Pixel
Pixel
Pixel
Pixel
}
Buf+=256;
}
}

//Таким образом изображение 256x240 ужимаем в 128x120 с применением палитры(конвертируем цвета)
// и "фильтра"(среднее значение компонент смежных пикселей 2x2)

Как можно оптимизировать быстрее??? На ассемблере?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 23 2009, 14:28
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(axa09 @ Feb 23 2009, 16:32) *
Как можно оптимизировать быстрее??? На ассемблере?

Можно сначала попробовать соптимизировать чтение - читать данные 32-бит словами, сразу для двух блоков 2x2.
Ну, и листинг не грех посмотреть.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 14:47
Сообщение #19


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



У меня память 16 бит шина данных. всёравно по 32 бита читать?
листинг смотрел-быстрее тот вариант, который с меньшим количеством обращений к памяти(операнды в квадратных скобках)
и всё-же, предложите свой вариант который,возможно, быстрее wink.gif
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 23 2009, 14:56
Сообщение #20


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата
0x00200400 - первый мегабайт SRAM (NCS0)


Значит 16 КБ таблица пишется с начальным смещением в 1 КБ в память объемом 16 КБ и там еще место под стек осталось? Так не бывает.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 23 2009, 15:03
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(axa09 @ Feb 23 2009, 17:47) *
У меня память 16 бит шина данных. всёравно по 32 бита читать?

Вы все равно уже читаете кэш.

Цитата(axa09 @ Feb 23 2009, 17:47) *
и всё-же, предложите свой вариант который,возможно, быстрее wink.gif

Сколько занимает по времени этот вариант?
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 15:14
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Вариант идёт с 45 преобразований/с. но это не чисто- ещё много другого в цикле делается(не путать с циклом отрисовки!)

по таблице. не надо все 16кб заполнять!
надо только память и периферию. остальное не имеет значение-всёравно обращений по этим адресам не будет!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 23 2009, 15:41
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(axa09 @ Feb 23 2009, 18:14) *
Вариант идёт с 45 преобразований/с. но это не чисто- ещё много другого в цикле делается(не путать с циклом отрисовки!)

Т.е. не измеряли что ли?

CODE

#define Pixel \
a = Bufw[0]; \
b = Bufw[64]; \
c = PALETTE[a & 0xff]; \
c += PALETTE[(a >> 8) & 0xff]; \
c += PALETTE[b & 0xff]; \
c += PALETTE[(b >> 8) & 0xff]; \
Display_Data_Register=((c>>2)&0x03)|((c>>4)&0x1C)|((c>>6)&0xE0); \
c = PALETTE[(a >> 16) & 0xff]; \
c += PALETTE[(a >> 24) & 0xff]; \
c += PALETTE[(b >> 16) & 0xff]; \
c += PALETTE[(b >> 24) & 0xff]; \
Display_Data_Register=((c>>2)&0x03)|((c>>4)&0x1C)|((c>>6)&0xE0); \
Bufw++;


void BlitScreen(u8 *Buf)
{
u32 *Bufw = (u32*)Buf, a, b, c, y, x;
for(y = 0; y < 120; y++)
{
for(x = 0; x < 64 / 4; x++)
{
Pixel
Pixel
Pixel
Pixel
}
Bufw += 64;
}
}

25% не обещаю, но 15 точно должно быть. Buf должен быть выровнен по границе слова.
Только вот процедурка и в исходном виде достаточно короткая (меньше 5мс).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 23 2009, 16:14
Сообщение #24


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Совет. Длительность CS для вывода на дисплей соответствует тому, что минимально необходимо?
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 21:30
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Спасибо! как проверю-напишу результаты и приведу асм-листинг обеих вариантов.

времянки дисплея выставлены максимально короткими.
любопытно,что повышение частоты шины не ведёт к увеличению итоговой производительности. а вот оверклочение ядра с 180 на 200 на глаз ощутимо повышением скорости выполнения программы!
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 24 2009, 10:45
Сообщение #26


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Цитата(aaarrr @ Feb 23 2009, 07:41) *
Т.е. не измеряли что ли?

25% не обещаю, но 15 точно должно быть. Buf должен быть выровнен по границе слова.
Только вот процедурка и в исходном виде достаточно короткая (меньше 5мс).


В общем сегодня замерил свой и ваш варианты. Мой 206 FPS, ваш 203 FPS. Я даже расстроился sad.gif
Листинги вложил сюда.

На всякий случай сообщаю настройки компилятора:
Keil Real View v3.3
Code generation: ARM-Mode
Use cross-module optimization

C compiler:
enable arm/thumb intervorking
optimization level 2 (-02)
optimize for time

ASM:
enable ARM/thumb interworking

Дополнительные ключи C компилятора:
--pointer_alignment=8
--min_array_alignment=8
--no_vfe

замерял производительность с двумя вариантами стеков: во внутренней срам и во внешней - тоже самое все.
пробовал PALETTE[] расположить во внутренней срам- тоже ничего не поменялось.

листинги решил вложить, так как вымахали большими.

есть подозрение что фиговый асм-код генерится.

в общем посмотрите плиз.
может что-то лишнее и вредное в настройках включено?
или надо что-то добавить?

если нетрудно, приведите плиз асм-код .
Прикрепленные файлы
Прикрепленный файл  ______________________.txt ( 5.83 килобайт ) Кол-во скачиваний: 69
Прикрепленный файл  ______________.txt ( 10.2 килобайт ) Кол-во скачиваний: 46
 
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 24 2009, 14:32
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Запись во внешний медленный порт сильно портит все дело. Вот что получилось у меня (RVDS 2.2, полная оптимизация по скорости):

1. Без записи в порт, вместо регистра пишем кэшируемую память.
Ваш вариант 334 FPS, мой - 397 FPS. Разница заметна.

2. С записью в порт.
Ваш вариант - 215 FPS, мой - 221 FPS. Практически одинаково.

CODE

BlitScreen
$a
.text
0x00000000: e92d07f0 ..-. PUSH {r4-r10}
0x00000004: e1a03000 .0.. MOV r3,r0
0x00000008: e59f03f4 .... LDR r0,[pc,#1012] ; [.bss$5 = 0x404] = 0
0x0000000c: e3a0a000 .... MOV r10,#0
0x00000010: e3a06202 .b.. MOV r6,#0x20000000
0x00000014: e3a050e0 .P.. MOV r5,#0xe0
0x00000018: e3a0401c .@.. MOV r4,#0x1c
0x0000001c: e3a07000 .p.. MOV r7,#0
0x00000020: e5931000 .... LDR r1,[r3,#0]
0x00000024: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000028: e201c0ff .... AND r12,r1,#0xff
0x0000002c: e2018cff .... AND r8,r1,#0xff00
0x00000030: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000034: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000038: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000003c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000040: e088c00c .... ADD r12,r8,r12
0x00000044: e20280ff .... AND r8,r2,#0xff
0x00000048: e0808088 .... ADD r8,r0,r8,LSL #1
0x0000004c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000050: e088c00c .... ADD r12,r8,r12
0x00000054: e2028cff .... AND r8,r2,#0xff00
0x00000058: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000005c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000060: e088c00c .... ADD r12,r8,r12
0x00000064: e004822c ,... AND r8,r4,r12,LSR #4
0x00000068: e1a09e0c .... LSL r9,r12,#28
0x0000006c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000070: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000074: e188c00c .... ORR r12,r8,r12
0x00000078: e5c6c007 .... STRB r12,[r6,#7]
0x0000007c: e201c8ff .... AND r12,r1,#0xff0000
0x00000080: e1a01c21 !... LSR r1,r1,#24
0x00000084: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000088: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000008c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000090: e1d110b0 .... LDRH r1,[r1,#0]
0x00000094: e081100c .... ADD r1,r1,r12
0x00000098: e202c8ff .... AND r12,r2,#0xff0000
0x0000009c: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000000a0: e1a02c22 ",.. LSR r2,r2,#24
0x000000a4: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000000a8: e0802082 . .. ADD r2,r0,r2,LSL #1
0x000000ac: e1d220b0 . .. LDRH r2,[r2,#0]
0x000000b0: e08c1001 .... ADD r1,r12,r1
0x000000b4: e0821001 .... ADD r1,r2,r1
0x000000b8: e0042221 !".. AND r2,r4,r1,LSR #4
0x000000bc: e1a0ce01 .... LSL r12,r1,#28
0x000000c0: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x000000c4: e0051321 !... AND r1,r5,r1,LSR #6
0x000000c8: e1821001 .... ORR r1,r2,r1
0x000000cc: e5c61007 .... STRB r1,[r6,#7]
0x000000d0: e5b31004 .... LDR r1,[r3,#4]!
0x000000d4: e5932100 .!.. LDR r2,[r3,#0x100]
0x000000d8: e201c0ff .... AND r12,r1,#0xff
0x000000dc: e2018cff .... AND r8,r1,#0xff00
0x000000e0: e08083a8 .... ADD r8,r0,r8,LSR #7
0x000000e4: e080c08c .... ADD r12,r0,r12,LSL #1
0x000000e8: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000000ec: e1d880b0 .... LDRH r8,[r8,#0]
0x000000f0: e088c00c .... ADD r12,r8,r12
0x000000f4: e20280ff .... AND r8,r2,#0xff
0x000000f8: e0808088 .... ADD r8,r0,r8,LSL #1
0x000000fc: e1d880b0 .... LDRH r8,[r8,#0]
0x00000100: e088c00c .... ADD r12,r8,r12
0x00000104: e2028cff .... AND r8,r2,#0xff00
0x00000108: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000010c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000110: e088c00c .... ADD r12,r8,r12
0x00000114: e004822c ,... AND r8,r4,r12,LSR #4
0x00000118: e1a09e0c .... LSL r9,r12,#28
0x0000011c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000120: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000124: e188c00c .... ORR r12,r8,r12
0x00000128: e5c6c007 .... STRB r12,[r6,#7]
0x0000012c: e201c8ff .... AND r12,r1,#0xff0000
0x00000130: e1a01c21 !... LSR r1,r1,#24
0x00000134: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000138: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000013c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000140: e1d110b0 .... LDRH r1,[r1,#0]
0x00000144: e081100c .... ADD r1,r1,r12
0x00000148: e202c8ff .... AND r12,r2,#0xff0000
0x0000014c: e080c7ac .... ADD r12,r0,r12,LSR #15
0x00000150: e1a02c22 ",.. LSR r2,r2,#24
0x00000154: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000158: e0802082 . .. ADD r2,r0,r2,LSL #1
0x0000015c: e1d220b0 . .. LDRH r2,[r2,#0]
0x00000160: e08c1001 .... ADD r1,r12,r1
0x00000164: e0821001 .... ADD r1,r2,r1
0x00000168: e0042221 !".. AND r2,r4,r1,LSR #4
0x0000016c: e1a0ce01 .... LSL r12,r1,#28
0x00000170: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x00000174: e0051321 !... AND r1,r5,r1,LSR #6
0x00000178: e1821001 .... ORR r1,r2,r1
0x0000017c: e5c61007 .... STRB r1,[r6,#7]
0x00000180: e5b31004 .... LDR r1,[r3,#4]!
0x00000184: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000188: e201c0ff .... AND r12,r1,#0xff
0x0000018c: e2018cff .... AND r8,r1,#0xff00
0x00000190: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000194: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000198: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000019c: e1d880b0 .... LDRH r8,[r8,#0]
0x000001a0: e088c00c .... ADD r12,r8,r12
0x000001a4: e20280ff .... AND r8,r2,#0xff
0x000001a8: e0808088 .... ADD r8,r0,r8,LSL #1
0x000001ac: e1d880b0 .... LDRH r8,[r8,#0]
0x000001b0: e088c00c .... ADD r12,r8,r12
0x000001b4: e2028cff .... AND r8,r2,#0xff00
0x000001b8: e08083a8 .... ADD r8,r0,r8,LSR #7
0x000001bc: e1d880b0 .... LDRH r8,[r8,#0]
0x000001c0: e088c00c .... ADD r12,r8,r12
0x000001c4: e004822c ,... AND r8,r4,r12,LSR #4
0x000001c8: e1a09e0c .... LSL r9,r12,#28
0x000001cc: e1888f29 )... ORR r8,r8,r9,LSR #30
0x000001d0: e005c32c ,... AND r12,r5,r12,LSR #6
0x000001d4: e188c00c .... ORR r12,r8,r12
0x000001d8: e5c6c007 .... STRB r12,[r6,#7]
0x000001dc: e201c8ff .... AND r12,r1,#0xff0000
0x000001e0: e1a01c21 !... LSR r1,r1,#24
0x000001e4: e0801081 .... ADD r1,r0,r1,LSL #1
0x000001e8: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000001ec: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000001f0: e1d110b0 .... LDRH r1,[r1,#0]
0x000001f4: e081100c .... ADD r1,r1,r12
0x000001f8: e202c8ff .... AND r12,r2,#0xff0000
0x000001fc: e080c7ac .... ADD r12,r0,r12,LSR #15
0x00000200: e1a02c22 ",.. LSR r2,r2,#24
0x00000204: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000208: e0802082 . .. ADD r2,r0,r2,LSL #1
0x0000020c: e1d220b0 . .. LDRH r2,[r2,#0]
0x00000210: e08c1001 .... ADD r1,r12,r1
0x00000214: e0821001 .... ADD r1,r2,r1
0x00000218: e0042221 !".. AND r2,r4,r1,LSR #4
0x0000021c: e1a0ce01 .... LSL r12,r1,#28
0x00000220: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x00000224: e0051321 !... AND r1,r5,r1,LSR #6
0x00000228: e1821001 .... ORR r1,r2,r1
0x0000022c: e5c61007 .... STRB r1,[r6,#7]
0x00000230: e5b31004 .... LDR r1,[r3,#4]!
0x00000234: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000238: e201c0ff .... AND r12,r1,#0xff
0x0000023c: e2018cff .... AND r8,r1,#0xff00
0x00000240: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000244: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000248: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000024c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000250: e088c00c .... ADD r12,r8,r12
0x00000254: e20280ff .... AND r8,r2,#0xff
0x00000258: e0808088 .... ADD r8,r0,r8,LSL #1
0x0000025c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000260: e088c00c .... ADD r12,r8,r12
0x00000264: e2028cff .... AND r8,r2,#0xff00
0x00000268: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000026c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000270: e088c00c .... ADD r12,r8,r12
0x00000274: e004822c ,... AND r8,r4,r12,LSR #4
0x00000278: e1a09e0c .... LSL r9,r12,#28
0x0000027c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000280: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000284: e188c00c .... ORR r12,r8,r12
0x00000288: e5c6c007 .... STRB r12,[r6,#7]
0x0000028c: e201c8ff .... AND r12,r1,#0xff0000
0x00000290: e1a01c21 !... LSR r1,r1,#24
0x00000294: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000298: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000029c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000002a0: e1d110b0 .... LDRH r1,[r1,#0]
0x000002a4: e081100c .... ADD r1,r1,r12
0x000002a8: e202c8ff .... AND r12,r2,#0xff0000
0x000002ac: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000002b0: e1a02c22 ",.. LSR r2,r2,#24
0x000002b4: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000002b8: e0802082 . .. ADD r2,r0,r2,LSL #1
0x000002bc: e1d220b0 . .. LDRH r2,[r2,#0]
0x000002c0: e08c1001 .... ADD r1,r12,r1
0x000002c4: e0821001 .... ADD r1,r2,r1
0x000002c8: e0042221 !".. AND r2,r4,r1,LSR #4
0x000002cc: e1a0ce01 .... LSL r12,r1,#28
0x000002d0: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x000002d4: e0051321 !... AND r1,r5,r1,LSR #6
0x000002d8: e1821001 .... ORR r1,r2,r1
0x000002dc: e5c61007 .... STRB r1,[r6,#7]
0x000002e0: e2877001 .p.. ADD r7,r7,#1
0x000002e4: e3570010 ..W. CMP r7,#0x10
0x000002e8: e2833004 .0.. ADD r3,r3,#4
0x000002ec: 3affff4b K..: BCC {pc} - 0x2cc ; 0x20
0x000002f0: e28aa001 .... ADD r10,r10,#1
0x000002f4: e35a0078 x.Z. CMP r10,#0x78
0x000002f8: e2833c01 .<.. ADD r3,r3,#0x100
0x000002fc: 3affff46 F..: BCC {pc} - 0x2e0 ; 0x1c
0x00000300: e8bd07f0 .... POP {r4-r10}
0x00000304: e12fff1e ../. BX r14


Цитата(axa09 @ Feb 24 2009, 13:45) *
замерял производительность с двумя вариантами стеков: во внутренней срам и во внешней - тоже самое все.
пробовал PALETTE[] расположить во внутренней срам- тоже ничего не поменялось.

Стек не используется, а PALETTE полностью ложится в кэш, так что разницы и не должно быть.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 24 2009, 15:33
Сообщение #28


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



тоесть в моём случае уже ничего не придумать?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 24 2009, 15:50
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну, можно Write Buffer включить - сразу прибавится производительности.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 24 2009, 19:50
Сообщение #30


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Он включен(бит buferable-1)
или в другом месте еще надо?
Go to the top of the page
 
+Quote Post

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

 


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


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