Cituji : z těchto koprocesorů "nainstalován" -> tak slovo "instalace" bych rozhodně nepoužil, instalace se týká spíš software a nikoliv hardware. Takto to vytváří dojem u lidí co to nezažily, že se musel instalovat něco jako driver matematického koprocesoru, což si myslím že neexistovalo. Podle mě je vhodnější slovo "integrován" protože pokud si dobře pamatuji tak matematický koprocesor nešel ani vyjmout ze základní desky. Tvz. byl tam pevně zapájen. Ovšem je možné že jsem měl pouze zkušenost s těmito integrovanými koprocesory a mohly tehdy existovat základní desky u kterých to fungovalo jinak.
Vzpomínám, že existovaly i piggy-back
varianty, kdy se koprocesor nechal nasadit na záda
CPU.
Ale to je jen taková matná vzpomínka...
V mém okolí se odjakživa instaloval i hardware, včetně kotle, topení a oken.
Profese instalatér měla se SW málo společné.
3. 7. 2025, 11:36 editováno autorem komentáře
Takže "zasunutí" grafické karty do základní desky říkáš "instalace"? A jak říkáš té činnosti kdy se nahrávají drivery aby v OS fungovala? Formátování? Disassembling? Sniffing? Kompilace? Programování ? Či snad každý input jakéhokoliv bajtu do počítače je instalace?
Doporučuji pořádně a soustředně si přečíst ten první odstavec článku a pokud všem těm co tu reagují nedochází nevhodnost použití slova "instalace" v daném kontextu pak co já mohu dělat? Váš problém ....
PS. Pokud sis ještě nevšiml konfliktu u pojmu "instalace" ENG vs CZ v této problematice tak zjevně moc velký odborník nebudeš. "installation software" vs "instalace programu" / "plumber" vs "instalatér". V historickém kontextu v naší řeči je používání slova "instalatér" ještě před vznikem počítačové revoluce je skutečně historická náhoda (anomálie). Mimochodem u kotle je neříká instalace ale "montáž kotle". např. neříkáš "odinstalace kotle" ale "demontáž kotle", neříkáš "odinstalování topení" ale "rozebrání/demontáž topení" atd..
PSS. na ostatní reagovat nebudu
Ja jsem mel v PC-XT koprocesor v patici. Vzhledem k tomu, ze to bych normalni DIP40 chip, pochybuji, ze by v jakemkoliv PC byl zapajen, zvlast, kdyz vetsina PC byla prodavana bez koprocessoru.
Tak to mate divne spojene. Odjakziva se instalace pouziva ve smyslu HW i SW.
Jinak instalovatelne FPU byly naprosto bezne i pro levne mainstreamove PC systemy bez koprocesoru az nekdy do ery uplne poslednich 486.
Hodne se patice vyskytovala u 286a 386
Na FPU byla specialni patice na desce. Dokonce nekdy slo instalovat i FPU tretich stran jako treba Weitek.
V mnoha deskach byla patica na koprecosor.
Byla to ta bajna patice ktera nikdy nebyla osazena a vsichni se ptali jestli tam neco nechybi.
Pamatuji jak jsme chodili koukat na pocitac ktery koprocesor mel. Pak jsme na nem delali testy a vyslo nam ze zadny extremne vyssi vykon to neprineslo.
Já jsem měl, v mojí první 386, osazený koprocesor IIT 4C87. Dodnes leží v depozitáři. Prostě jsem ho chtěl. Připlatil jsem za něj 1000,- Kč. Od běžného x87 se liší tím, že má rozšíření instrukční sady pro maticové operace, takové SIMD. Nárůst výkonu, ve 3D animaci, byl zřetelně viditelný.
Měli jsme ve firmě (~1996) PC XT, kde koprocesor byl - ovšem jen kvůli AutoCADu, který bez něj nefugoval. Ten počítač byl vykopávka už v té době a sloužil jen pro řízení plotteru. Ještě mám kód v C pro konverzi výkresů z formátu HPGL, který na něm fungoval.
… a prováděly ty testy vůbec nějaké FPU instrukce? Bez toho je výkon samozřejmě totožný, protože při vykonávání pouze x86 instrukcí x87 nedělá nic.
Neprovadeli. V tom byla podstata testu ze jsme nepouzivali nic co by ty FPU instrukce vyuzivalo. A tak to podle mne melo spousta lidi.
Na XT byl DIL40 socket pro 8087 koprocesor.
Na 386DX desce byl PGA socket, do kterého šlo dát 486SX CPU nebo 387DX FPU.
Mám v depozitáři vestavný počitač s i8086 a i8087, ve formě ISO karty, pravděpodobně z nějakého telekomunikačního zařízení (je na něm vícero USARTů i8251 a na PCB tužkou poznámka "Kojál"). Na něm jsou oba, CPU i FPU, zapájeny do desky.
Nevybavuji si ale, že bych kdy viděl běžný PC board, kde je připájený FPU. Pravděpodobně jsem vždy viděl osazenou patici.
Nemá smysl to opakovat, mýlíte se. Koprocesor se opravdu doinstalovával.
A tady je ukázka i na videu....
https://www.youtube.com/watch?v=Q2CvVgubmpA
Korektní kód v C je:
uint32_t fx_mul_2(uint32_t x, uint32_t y) { return ((uint64_t)x*y)>>16; }
Nebo 64 bitová verze:
uint32_t fx_mul_2(uint64_t x, uint64_t y) { return ((unsigned __int128)x*y)>>16; }
MSVC nepodporuje __int128, takže tam musíme používat intrinsic funkce _umul128 nebo __umulh: https://learn.microsoft.com/en-us/cpp/intrinsics/umulh?view=msvc-170
3. 7. 2025, 12:42 editováno autorem komentáře
Vždycky se mi líbí, jak dnešní překladače dělí tak, že násobí převrácenou hodnotou - v integerech.
Vzoreček:
Např |12578/10| = |12578*1/10| = |12578 * 6554/65536| = 1257
realizace dělení 65536 je řešena posunem vyzvednutím výsledku z horního slova
mov ax, 12578
imul 6554
mov ax, dx //vysledek
tohle jsou vylepsene postupy, ktere lidi vzdycky pouzivali.
treba kdyz nemate zadnou kalkulacku tak se da i v hlave nahrubo da spocitat odmocnina cisla.
odmocninu z 1000 delam takto:
1000/2 = 500
(500+2)/2 = 251
1000/251 ~ 4
(251+4)/2 = 123
1000/123 ~ 8
(123+8)/2 = 65
1000/65 ~ 16
(65+16)/2 ~ 40
1000/40 = 25
(40+25)/2 ~ 33
1000/33 ~ 30
7. 7. 2025, 22:08 editováno autorem komentáře
Není ta fx_mul_2() špatně? Asi by měla násobit do 64 bitů a pak 64 bitů posunout doprava. Ta aktuální verze vezme jenom spodních 32 bitů a posune.
Typicky se asi použije SHRD nad dvojicí registrů (na 32-bit systému, u 64-bit to bude samozřejmě jeden registr).
jj je špatně naschvál, jak jsem to psal v článku (asi to musím víc zdůraznit), tak překladač C nepochopí (a ani nemá), že mezivýsledek je 64bitový. Takže to funguje jen pro hodnoty, které po vynásobení nepřekročí 2^16-1.