AMD64 - kdo doda HW?

Jan Derfinak ja na mail.upjs.sk
Úterý Listopad 25 11:41:51 CET 2003


On Tue, 25 Nov 2003, Pavel Janoušek wrote:

> > O tom, ze sa bitovost berie podla velkosti typu INT. 
> 
> 	Ano a od toho se odviji schopnost pocitat v ALU (tedy zpravidla
> 	registr A, AX apod.) a od toho se odviji s jakym cislem jsem schopen
> 	efektivne pocitat - je prima mit na 8-bitove platforme knihovnu pro

Nie, int je definicia typu v programovaciom jazyku a nemozte od neho
odvodzovat typ procesora.

> 	Vy povazujete prechod 32 -> 64 za hladky, ja nikoliv, nejen z duvodu
> 	historickych zkusenosti.

Nemate pravdu. Vy Ste tvrdili:
"Sorry, ale to je hezký marketingový blábol. Dneska tu krome
komerčních UNIXů (a ty nejsou IMHO Opteron-ready) nemáme realné
64-bit OS."

Teda nic o prechode. Ja tvrdim, ze 64 bitovy linux existuje.

> 	Mozna to je zakladni nase vzajemne nepochopeni. Ve Vasem pojeti
> 	Linux = kernel, vse ostatni je GNU apod. (tedy nikoli operacni
> 	system Linux) V mem pojeti Linux = operacni system Linux - stejne
> 	jako OS MS Windows neni jen kernel32.dll... - rozdilnost definic
> 	jsem si jiz vsiml, proto jsem se snazil vzdy nejprve definovat...

Prekrucate. Napisal som toto:
"Je tak daleko, ze si mozete kupit 64-bitove distribucie pre Intel, AMD.
PPC64 alebo S390.
V distribuciach sa nachadzaju 64-bitove aplikacie. Tiez existuju
64-bitove komercne aplikacie (nedavno som instaloval DB2 na AMD a Intel)."

alebo

"V tom pripade si nainstalujte 64 bitovu distribuciu a hladajte tam
"zle" napisane programy. Ked ich tam najdete tak to budu "realne" programy.
Napriek tomu, ze si to mozte vyskusat a realne argumetovat, tak stale sa
pohybujete v teoretickej urovni Vasej predstavy."

Tvrdim, ze existuju a su realne dostupne 64 bitove distribucie a aplikacie.

> 
> > unsigned long velka_pamat;
> > ...
> > if ((m = malloc (velka_pamat)) == NULL)
> >   printf ("nemozem alokovat pamat");
> > else
> >   nacitavam_velke_data(m);
> > 
> 
> 	To je hezkla ukazka HODNE PRASACKEHO kodu, ktery jste nejprve
> 	odsoudil - je pravda, ze long mate 64-bit - to tak bude vzdy? Pokud
> 	se divam do reference ke GLIBC, tak vidim u malloc tuto deklaraci
> 	(ANSI C bude vyhovovat vzdy, Vas kod tuto vysadu mit nemusi):
> 
> void *malloc(size_t size);

V glibc includoch (je to mozno aj niekde inde, toto je prve co som nasiel):
typedef unsigned long int __size_t;
/* The GNU CC stddef.h version defines __size_t as empty.  We need a real
   definition.  */
# undef __size_t
# define __size_t size_t

size_t ma velkost, taku aby bol schopny adresovat pamat pristupnu pre danu
architekturu. Obe typy (long aj size_t) menia svoju velkost v zavislosti od
architektury. Moze sa sa stat, ze long bude mensi ako size_t, ale nie opacny
pripad. Ale mate pravdu, ze uplne ciste by bolo definovat tu premennu ako
size_t.

> 	Tak a ted mi reknete bez testovani a analyzy jak z kristalove koule
> 	poznate velikost toho size_t? Bavili jsme se snad o portabilnich

Pre Vasu informaciu sizeof(size_t).

> 	programech, dle toho by mely vypadat i programovaci konstrukce...
> 	Zajimal by me CISTY zpusob (a bez if - to je prace progamatora, vy
> 	tvrdite, ze je to prace pro kompilator) - ja ho nejsem schopen
> 	vymyslet, proto se po nem pidim, kdyz rikate jak je to snadne a jak
> 	to kompilator zaridi za nas...

Napisal som toto:
 "Pokial taky program prelozite ako 32-bitovy bude moct
 alokovat iba pamat pristupnu 32 bitovym aplikaciam. Pokial ho prelozite ako
 64 bitovy bude moct alokovat pamat adresovatelnu v 64 bitovom rezime. V
 kazdom pripade vyuzijete maximum pamate, ktore Vam poskytne architektura.
 Rozdiel je vo velkosti dat, ktore je schopny spracovat."

Precitajte si to znova. Je tam odpoved na Vasu otazku.

> 	Ne chtel jsem rici, ze jednotny zaklad v Linux kernelu (C & ASM)
> 	nestaci, a ze kompilator si nemuze domyslet... proto tam nelze
> 	pouzit Intel C, ktery produkuje na modernich Intel CPU kvalitnejsi

Znova nemate pravdu. Ak Intel C nemozno pouzit, tak kvoli tomu, ze nerozumie
zdrojovym kodom napisanym pre gnu c. Problem je, ze niekto nedodrzal
normu alebo je mozne vysvetlit si ju viac sposobmi, nie v 64 bitovom kode.

> > Nikto sa tu nebavi o POKUD. Ale dobre pokial mi ukazete 
> > skodovku z motorom
> > napriklad z liazky tak Vam uverim. Ale pokial nie, tak je to len Vasa,
> > nepodlozena hypoteza.
> 
> 	Jenze Vy jsme mel to POKUD take - bud Kernel a GCC nebo jazyk C... -
> 	bez predpokladu neni vysledku:-)

Nie, ja som hovoril o realnych standartoch, ktorym musia jednotlive
komponenty odpovedat. Vy hovorite o tom, ze nahodou by to mohlo fungovat.

V minulom maile som Vas ziadal aby Ste uviedli dokazy o tom, ze neexistuje
64 bitova linux distribucia. Ziadne Ste neuviedli, tak predpokladam, ze ich
nie Ste schopny uviest. Ako poznamenal citatel diskusneho listu, tato
diskusia uz nie je konstruktivna a pokial nebudete schopny argumentovat,
povazujem je z mojej strany za ukoncenu.

				jano

-- 


Další informace o konferenci Linux