Самоучитель по 3dsmax 7

         

Такое случается в следующих случаях:


Такое случается в следующих случаях:

  1. Вторая команда вызывает AGI (address generation interlock, блокировка генерирования адреса). Это происходит, если адрес, используемый во второй команде зависит от регистров, измененных в первой команде. Примеры: add ebx,4 / mov eax,[ebx] ; AGI mov eax,[ebx+4] / add ebx,4 ; нормально спаривается add esp,4 / pop esi ; AGI (pop использует esp) inc esi / lea eax,[ebx+4*esi] ; AGI
  2. Две команды одновременно обращаются к одному и тому же двойному слову памяти. Примеры (подразумевается, что esi делится на 4): mov al,[esi] / mov bl,[esi+1] ; неполное спаривание mov al,[esi+3] / mov bl,[esi+4] ; нормальное спариваение
  3. Две команды одновременно обращаются к адресам, в которых одинковы биты 2-4 (это вызывает конфликт кэш-банков). Для dword-адресов это значит, что разница между двумя адресами делится на 32. Пример: mov eax,[esi] / mov ebx,[esi+32000] ; неполное спаривание mov eax,[esi] / mov ebx,[esi+32004] ; нормальное спаривание
  4. Первая команда производит чтение, подсчет и запись одновременно; вторая - чтение и изменение; в этом случае число тактов, требующееся для выполнения пары команд, можно рассчитать по следующей таблице:



     первая команда
    вторая команда mov или
    регистровая
    чтение/
    подсчет
    чтение/подсчет/
    запись
    mov или регистровая123
    чтение/подсчет224
    чтение/подсчет/запись335

    Примеры: add [mem1],eax / add ebx,[mem2] ; 4 такта add ebx,[mem2] / add [mem1],eax ; 3 такта add [mem1],eax / add [mem2],ebx ; 5 тактов add [mem1],eax / sub ebx,ecx ; 3 такта

6.1.2.



Содержание раздела