AMD64 - kdo doda HW?

Pavel Janoušek janousek na fonet.cz
Pondělí Listopad 24 16:29:29 CET 2003


> -----Original Message-----
> From: Jan Derfinak [mailto:ja na mail.upjs.sk] 
> Myslite to snad tak, ze pokial budem vo svojej aplikacii na 
> i368 pouzivat
> short alebo char, tak bude moja aplikacia 16/8 bitova? Int je 
> 32 bitovy a 32

	Prominte, ale bylo celkem zvykem rozlisovat 'bitovost' aplikace podle toho, jaka velikost (v bitech) byla u typu INT - myslim, ze s tim short ci char ma pramalo spolecneho a bylo naprosto normalni povazovat za 16-bit aplikaci tu, ktera mela int ve 2 bytech, za 32-bit aplikaci tu, ktera mela int ve 4 bytech - drzim se teto konvence i nyni... To, ze Intel prichazi s tim, ze INT bude zase "jen" 32-bitu na 64-bit CPU je docela hlina..:-) - sam s tim zacal uz od 4-bitovych CPU (I4004, kde aritmeticky registr mel 4 bity)... Stejne jako Z80 neoznacujeme za 16-bit procesor, ackoli mel spoustu 16-bit registru (namatkou IX, IY, HL, BC, DE), ale pouze 8-bitovy, protoze registr A ("aritmeticky") mel skutecne jen 8-bitu.

> parametrov sa pouziju registry: RDI, RSI, RDX, RCX, R8, R9. 
> Vsetky su 64
> bitove. Uz toto vylepsenie oproti i386, zlepsuje vykon, lebo 
> nie je nutne
> predavat parametry cez zasobnik a teda odpada praca s pamatou.

	Tohle je pro mne prilis nove a neorientuji se v tomto... (priznavam a pujdu studovat...:->) - ja jsem skoncil u predavani parametru pres zasobnik nebo pomoci registru (pokud jich bylo dost).

> Vsetko co Ste popisali, sa ale nieriesi v aplikacii, ale libc 
> hlavickovych
> suboroch. Pokial pozijete spravne typy (teda nie int, ale 
> off_t), tak sa Vam
> program spravne prelozi aj na 32 aj na 64 architekture, kde 
> bude mat off_t
> 64 bitov. Pokial program nepouziva off_t, tak nie je 32 
> bitovy, ale zle
> napisany.

	Uprimne, mluvil jsem o realnych programech, tam se tyto konvence dobre mixuji, programu, ktere nejsou napsany "zle", jak pisete, je jak safranu a stejne to neresi to, ze aplikace si musi zjistit maximalni adresovatelnou velikost, neco jako off_t_max apod. a dle toho pracovat... - prece nechcete nechat na procesoru preteceni na adresu 0x00000000... Fakt by me zajimalo, jak byste takovouto aplikaci psal, abyste nemusel zjistovat na jake -bitove architekture pracujete, ale optimalne ji vyuzival...

> Ved aj pracuje, off_t je automaticky 64 bitovy, volacia 
> konvencia je 64
> bitova, pamatovy priestor nie je obmedzeny na 3GB...

	Ale to aplikace nevi a bud si to aktivne zjistuje (malo aplikaci) nebo pracuje s "rozumnou" velikosti, ktera se ale neodviji od 32-bitu vs. 64-bitu...

> > 	No pri soucasnem navrhu to jinak zrejme nejde, ono jde 
> spise o to,
> > 	ze ty vnitrnosti musi mit take dohodnute API (linux kernel prece
> > 	nekomunikuje pomoci front zprav) a co vyhovuje x86 CISC nemusi
> > 	vyhovovat z hlediska optimalniho behu a vykonu RISCu ci 
> jinym apod.
> 
> Nie je toto uloha prekladaca pre danu architekturu?

	I dnes je vhodne prekladaci pomoci. Mozna pro Vas neni tajemstvim, ze ani dnes bez hacku v GCC by nesel prelozit ani Linux kernel. Oba snad vime, ze velmi optimalni a kvalitni C kompilator produkuje Intel - zkuste to jadro prelozit... nemate sanci. A kdo jiny zna vhodnost servirovani instrukci jednotlivym jednotkam lepe nez vyrobce dotycneho systemu?

-------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)             FoNet, spol. s r. o.
Technicka podpora, Intranet/Internet     Sokolova 67, 619 00 Brno
E-mail: mailto:Janousek na FoNet.Cz         Tel.: +420  5  4324 4749
WWW:    http://WWW.FoNet.Cz/           E-mail: mailto:Info na FoNet.Cz
-------------------------------------------------------------------


Další informace o konferenci Linux