Re: Cyrix 200+ kontraiP166

Autor: Radoslaw Poplawski (radekp_at_usa.net)
Data: Sun 09 Mar 1997 - 00:53:01 MET


7 Mar 1997 20:59:53 GMT, Jarek Lis <lis_at_ict.pwr.wroc.pl> napisał(a):

/>Radoslaw Poplawski <radekp_at_usa.net> wrote:
/>: />: />> Program typu:
/>: />: />> LDA #$77
/>: />: />> STA adres+1
/>: />: />> adres JMP $E4xx (oryg. xx=00)
/>: />: />>
/>: />: />Oczywiscie, ten program jest prawidlowy. Na procesorach 80286 i nowszych
/>: />: />wykona skok pod adres E400. Na 8088 chyba zreszta tez, ale juz nie pamietam.
/>: />: No, nie wiem. A czemu nie pod $E477?
/>: />A o 'kolejce rozkazow' czytales?
/>
/>: Nie bardzo rozumiem co masz na mysli.
/>
/>Nie czytales znaczy sie :-).

Na 6502 nie bylo czegos takiego :).

/> W procesorach x86 [i x88], jak tylko magistrala
/>nie jest zajeta wykonywaniem operacji, to pewien blok czyta na zapas
/>kolejne slowa programu z pamieci. Zapamietuje je w tzw. 'kolejce rozkazow',
/>o dlugosci od 6 bajtow w gore. W efekcie jak rozkaz STA zapamieta bajt w
/>pamieci, to ten bajt do kolejki byl przeczytany znacznie wczesniej.
/>A wczesniej bylo tam 0.

Czyli wystarczy zapisac 7 bajtow naprzod, aby w komorce pamieci
_zawsze_ znalazla sie wartosc zapisywana przez STA. Czyli taki
zmodyfikowany kod wykona sie prawidlowo na XT, a na Pentim juz nie
(wiekszy cache dla rozkazow).

/>Ale dzieki temu procesor chodzi szybciej - [prawie] zawsze rozkaz do
/>wykonania mamy juz przeczytany :-).

Czyli: poswiecamy kompatybilnosc dla predkosci.

Radoslaw Poplawski (Wroclaw: radekp_at_usa.net)
http://www.geocities.com/MotorCity/3416 (FRAMES ext.)
-- Mordercy predkosci uzywaja Windows(r)(tm)(c)! --



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:58:05 MET DST