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

 
 
> C64x выполнение инструкций, шаманство камня
Warlord
сообщение Sep 1 2006, 12:08
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 23-09-05
Из: Москва
Пользователь №: 8 874



Всем привет!
Пишу следующие 2 команды
Код
     OR.D1      0,A4,A3
     MPY.M1X   A3,B8,A12
||   MPY.M2X   B8,A3,B12

процессор выполняет эти 2 команды за 3 такта, хотя по логике должен за 2. Если закоментить первую, оставшуюся выполнит за один такт, если поменять в первой A3 на другой, например OR.D1 0,A4, A7, камень исполняет за 2 такта. Где шаманство?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Warlord
сообщение Sep 1 2006, 13:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 23-09-05
Из: Москва
Пользователь №: 8 874



Нашел, пришлось внимательно читать мануалы:
On the C64x, a delay clock cycle is introduced whenever an instruction
attempts to read a source register via a cross path where that register was
updated in the previous cycle. This is known as a cross path stall. This stall is
inserted automatically by the hardware; no NOP instruction is needed. This cross path
stall is necessary so that the C64x can achieve clock rate goals beyond 1GHz.
Go to the top of the page
 
+Quote Post
Shamil.Ru
сообщение Sep 1 2006, 14:36
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 28-08-06
Из: msk.ru.earth
Пользователь №: 19 894



Цитата(Warlord @ Sep 1 2006, 17:57) *
Нашел, пришлось внимательно читать мануалы:
On the C64x, a delay clock cycle is introduced whenever an instruction
attempts to read a source register via a cross path where that register was
updated in the previous cycle. This is known as a cross path stall. This stall is
inserted automatically by the hardware; no NOP instruction is needed. This cross path
stall is necessary so that the C64x can achieve clock rate goals beyond 1GHz.

Кросс-пути -- это вообще такая нетривиальная вещь, из-за которой на 64-х малоцелесообразно писать на ассемблере. Потому что человек не может держать в голове все эти банки регистров, 8 вычислителей, кто с кем вступает в конфликт. Там в документации есть такие конструкции, когда можно учесть такты и даже сделать последовательные вычисления в параллельных инструкциях. Имхо, это такое исскуство, что ему надо учиться годами, а потом с появлением нового камня снова переучиваться smile.gif

Отсюда мое личное имхо -- на 6000-никах только Си (и Си++)!
Go to the top of the page
 
+Quote Post



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

 


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


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