Autor: MiW (miw_at_zeus.polsl.gliwice.pl)
Data: Mon 03 Nov 2003 - 00:23:04 MET
> Kiedys tak bylo... Nawiasem mowiac zlap sobie intel software developer's
> manual i przejrzyj niektore rozkazy - sa tam wypisane ilosci taktow
> potrzebne do wykonania (oops... wlasnie zajrzalem - ilosci taktow nie
ma...
> ale ze maja niektore po 20 to nie watpie).
Znalazlem... 'Intel P4 Optimization Reference Manual' (pdf do sciagniecia z
intela).
Jest tam opis, jak mniej-wiecej wyglada architektura (ten caly 'netburst')
proca i magistrali wewnatrz procesora.
> Co ciekawsze rozkazy robia wieeele rzeczy naraz i maja bardzo dziwne
nazwy.
> Moje ulubione:
> CVTTPD2DQ (SSE, Convert with Truncation Packed Double-Precision
> Floating-Point Values to Packed Doubleword Integers)
9 taktow
> PUNPCKLQDQ (SSE/SSE2 ?, Unpack Low Data)
4 takty
Co ciekawe... DIVPD (Divide Packed Double-Prec Floating Point Values) ma np
69 taktow :)))
> Albo takie RSQRTPS... chyba mi nikt nie powie, ze proc umie policzyc
> odwrotnosc pierwiastka kwadratowego z liczby zmiennoprzecinowej
pojedynczej
> precyzji, na dodatek jako dane spakowane (czyli bodaj 4 naraz) w _jednym_
> takcie zegara ? ;-)
6 taktow :)
Nawiasem mowiac - co do takich prostych instrukcji i 'mniej niz 1 takt' to
strzelalem i zgadlem :)
np ADD, SUB, AND, OR, XOR, MOVy 0.5 taktu :)
POP/PUSH 1.5 taktu...
Ale takie IMUL/IDIV (integerowe) 14-18/56-70 taktow :)))
-- pzdr. MiW
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 11:37:12 MET DST