Організація роботи мiкропроцесора в захищеному режимi, страница 26

                  'пiдтримує запис історії переходів';

                 end;

              end;

              writeln(s);

            end;

            readkey;

            clrscr;

           writeln('Особливостi мiкpопpоцесоpа:');

            for i:=22to 31 do

            if not ((i=28) or (i=30)) then begin

              s:='';

              case i of

             22:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує прогнамний контроль частоти МП';

                end;

             23:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує MMX команди';

                end;

             24:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+

                  'пiдтримує команди FXSAVE i FXRSTOR';

                end;

             25:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує команди SSE';

                end;

               26:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує команди SSE2';

                end;

               27:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує розрішення  конфліктів пам‘яті';

                end;

               28:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує логічні процесори і HT';

                end;

               29:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує температурний моніторинг';

                end;

               31:begin

                  if (feature shr i) and 1=0 then s:='не ';

                  s:=s+'пiдтримує переривання по FERR’;

                end;

              end;

              writeln(s);

            end;

            readkey;

            clrscr;

            if par>1 then begin

              writeln('Число повторень команди CPUID з EAX=2 - ',

                data_cach[1,1]);

              writeln(' МП має такi блоки кеш-пам''ятi:');

              writeln;

              for i:=1 to 4 do

              for j:=1 to 4 do

              if (i<>1) or (j<>1) then

              if data_cach[i,4] and 128=0 then begin

                s:='';

                if data_cach[i,j]<>0 then begin

                  case  data_cach[i,j] of

      1:s:='TLB команд: 4 Кб-сторiнки, 4-напр., 32 рядки';

      2:s:='TLB команд: 4 Мб-сторiнки, 4-напр., 2 рядки;

      3:s:='TLB даних : 4 Кб-сторiнки, 4-напр., 64 рядки';

      4:s:='TLB даних : 4 Мб-сторiнки, 4-напр., 8 рядкiв';

      6:s:='Кеш команд: 8 Кб, 4-напр.,  рядок 32 байти';

      8:s:='Кеш команд: 16 Кб, 4-напр., рядок 32 байти';

     $A:s:='Кеш даних : 8 Кб, 2-напр.,  рядок 32 байти';

     $C:s:='Кеш даних : 16 Кб, 4-напр., рядок 32 байти';

     $22:s:=’ Об''єдн. кеш L3:512 Кб, 4-напр., рядок 64 байти';

$23:s:=’ Об''єдн. кеш L3:1 Мб, 8-напр., рядок 64 байти';

$25:s:=’ Об''єдн. кеш L3:2 Мб, 8-напр., рядок 64 байти';

$29:s:=’ Об''єдн. кеш L3:4 Мб, 8-напр., рядок 64 байти';

   $39:s:='Об''єдн. кеш L2: 128 Кб, 4-напр., рядок 64 байти';

   $3B:s:='Об''єдн. кеш L2: 128 Кб, 2-напр., рядок 64 байти';

$3C:s:='Об''єдн. кеш L2: 256 Кб, 4-напр., рядок 64 байти';

    $40:s:='МП не мiстить кеш L2для P6 чи L3 для Pentium 4';

    $41:s:='Об''єдн. кеш: 128 Кб, 4-напр., рядок 32 байти';

    $42:s:='Об''єдн. кеш: 256 Кб, 4-напр., рядок 32 байти';

    $43:s:='Об''єдн. кеш: 512 Кб, 4-напр., рядок 32 байти';

    $44:s:='Об''єдн. кеш: 1 Мб,   4-напр., рядок 32 байти';

    $45:s:='Об''єдн. кеш: 2 Мб, 4-напр., рядок 32 байти';

    $50:s:=’TLB команд: 4Кб, 2 Мб або 4 Мб, повністю асоц., 64 рядка ’;

$51:s:=’TLB команд: 4Кб, 2 Мб або 4 Мб, повністю асоц., 128 рядків ’;

$52:s:=’TLB команд: 4Кб, 2 Мб або 4 Мб, повністю асоц., 256 рядків ’;

    $5B:s:=’TLB команд: 4Кбабо 4 Мб, повністю асоц., 64 рядка ’;