64 bit computing
64 bitů je nové
marketingové heslo mezi mobilními telefony a tablety, ale ve světě
PC je už docela běžné. Přestože 64 bitové systémy používáme už řadu let, všeobecné
porozumění co to vlastně znamená je kupodivu na velice nízké
úrovni. Dovolíme si proto nejprve vysvětlit několik pojmů než
přejdeme k 64 bitové verzi programu
SIPS.
64 bitový procesor je
centrální jednotka počítače s interními registry, které dokáží
uchovat a zpracovat jednotlivé údaje (celá čísla, adresy v paměti,
...) až do délky 64 bitů. První
mikroprocesor vůbec byl 4 bitový
(Intel 4004), ale brzy byl nahrazen 8 bitovou verzí (Intel 8008). 8 bitové procesory se staly velice populární.
Objevila se řada modelů (Intel 8080, Zilog Z80, Motorola 6800, MOS
Technology 6502, ...), pohánějící první skutečně osobní počítače.
V honbě za stále větším výpočetním výkonem a schopností pracovat s
větší pamětí se objevily 16 bitové a
později 32 bitové procesory, některé
vytvořené jako rozšíření stávajících architektur, jiné navržené
zcela nově přímo jako 16 nebo dokonce
32 bitové.
Neustále rostoucí potřeba paměti, přesahující limit 4 GB 32 bitových
procesorů (2^32 = 4G), vedla k návrhu 64 bitových procesorů. A obdobně některé z nich
vznikly jako přirozené rozšíření existujících 32 bitových architektur, jiné byly nově navrženy
přímo jako 64 bitové.
Ale procesorové architektury mají těžký život. Buď rychle
uspějí a stanou se široce populární nebo brzy zahynou. Dnes
dominují pouze dvě architektury (Intel x86-64 a ARM v7/v8) a obě
jsou k dispozici v 64 bitové
variantě. A obě vznikly evolucí předcházející 32 bitové verze, takže obě mohou spouštět
32 bitové i 64 bitové programy.
64 bitový operační systém
potřebuje k běhu 64 bitový CPU. Jistě
je možné vytvořit čistě 64 bitový
operační systém, provozující čistě 64 bitové aplikace, ale zřejmě je zhola nemožné s
takovým systémem uspět na trhu. Lidé potřebují spouštět existující
32 bitové aplikace, takže zachování
zpětné kompatibility je klíčové.
Aby byla zachována zpětná kompatibilita, musí ji
podporovat hardware (CPU) a také software (operační systém). A
všichni hlavní hráči tak činí (x64 a ARM, Windows a
Android).
64 bitový procesor může
spouštět 32 bitový i 64 bitový operační systém a aplikace. Pokud
pracuje 32 bitový OS, celý systém
pracuje čistě 32 bitově, včetně
limitů adresování paměti. Není možné použít jedinou 64 bitovou část kódu, 64 bitové aplikace nepracují.
Pokud na 64 bitovém
procesoru pracuje 64 bitový
operační systém, je možné spouštět 32 bitové i 64 bitové aplikace. Takže 64 bitové verze Windows dovoluje spouštět
32 bitovou i 64 bitovou verzi SIPS bez jakýchkoliv
problémů.
Ale je zde jedno důležité omezení. Není možné míchat
32 bitový a 64 bitový kód v rámci jednoho procesu. Každý
proces je buď kompletně 32 bitový
nebo kompletně 64 bitový, včetně
všech DLL, ovladačů a dalších komponent. To samé platí pro jádro
operačního systému — pokud je 64 bitové, všechny systémové ovladače musí být
také 64 bitové. Podobně
ovladače v uživatelské aplikaci musí být 32 bitové pokud je aplikace 32 bitová (připomínáme — většina aplikací je stále 32 bitová), i pokud aplikace pracuje na
64 bit procesoru a operačním
systému.
Skutečnost, že 32 bitový a
64 bitový kód nemůže být smíchán a
64 bitový program je vždy nově
přeložen (a upraven), dovoluje provést změny v instrukční sadě
procesorů. Obě firmy (AMD s x86-64 i ARM s v8) této možnosti
využily a v novém 64 bitovém módu
dané architektury rozšířily. x64 poněkud přeorganizovala sadu
registrů, aby byla symetričtější, a především zdvojnásobila jejich
počet (z 8 na 16). ARM podobně odstranil podmíněné vykonávání
všech instrukcí a ušetřené místo v instrukčním slově využil k
adresování dvojnásobného počtu registrů (32 namísto 16). Bez
nadsázky tak lze říci, že 64 bitová
ARM v8 je zcela nová architektura vzdáleně připomínající
32 bitovou ARM v7 (podobně jako
16 bitový Intel 8086 vzdáleně
připomínal 8 bitový Intel 8080).
64 bitový SIPS
64 bitová verze programu SIPS je v
jádru identická s 32 bitovou verzí.
Přirozeně může používat mnohem více paměti, což se může hodit
zejména když SIPS používá množiny obrazů se stovkami prvků a PC je
vybaven více jak 4 GB paměti. A
samozřejmě jsou zapotřebí 64 bitové
verze všech ovladačů zařízení, ale všechny podporované ovladače
jsou dodávány spolu s programem, takže to nepředstavuje
problém.
Jak bylo zmíněno v předchozí kapitole, 64 bitové aplikace uchovávají ukazatele do
paměti (adresy dat v paměti) ve dvojnásobně dlouhých registrech
ve srovnání s 32 bitovými programy.
Tedy přirozeně 64 bitové programy
jsou poněkud delší a manipulují s větším objemem dat i pokud
nepoužívají více jak 4 GB paměti.
To přináší určitou režii — delší kód
znamená více čtení a zápisů do paměti a efektivně zmenšuje
velikost rychlých vyrovnávacích pamětí. Ale na druhé straně
64 bitový kód má k dispozici
dvakrát více registrů (u x64) k uchování potřebných informací a
nepotřebuje tak často přistupovat k paměti, což režii zase
omezuje. Takže otázka je — je 64 bitový kód rychlejší nebo pomalejší ve
srovnání s 32 bitovým kódem? Ve
skutečnosti může být někdy rychlejší a někdy pomalejší v
závislosti na prováděném algoritmu:
Pokud je algoritmus velmi jednoduchý a převážně jen
přenáší data v paměti, 32 bitový
kód je typicky rychlejší. Procesory x86 mají dostatek registrů
pro jednoduché algoritmy a pracovat pouze s ukazateli dlouhými
32 bitů spotřebuje méně zdrojů ve
srovnání s 64 bitovými
ukazateli. Typický příklad je mediánový filtr, který
prochází velké množství pixelů, ale nejsložitější operace je
jednoduché porovnání dvou hodnot pixelů. 32 bitová verze SIPS je v tomto případě
rychlejší než 64 bitová
verze. Test mediánový filtr na 16 bitovém a 32 bitovém FITS souboru ukazuje zpomalení
64 bitového kódu (x64) ve
srovnání s 32 bitovým
protějškem
Komplexnější algoritmy, které využijí všech 16 registrů,
které jsou k dispozici v 64 bitovém
módu procesoru, na druhé straně pracují výrazně rychleji v
porovnání s 32 bitovou
verzí. Takový komplexní algoritmus je např. vyhledávání
hvězd v obraze. Je zapotřebí provést řadu testů k určení jestli
je daný pixel součástí obrazu hvězdy nebo jen osamocený hotpixel
apod. Také je prováděna řada výpočtů v plovoucí řádové čárce
(výpočet směrodatné odchylky v ploše clonky apod.). 64 bitový kód je zde výrazně rychlejší oproti
32 bitovému kódu a dokonce procesor
střední třídy Core i5, zpracovávající 64 bitový kód, překoná hi-end Core i7
pracující s 32 bitovou
verzí. Algoritmus hledání hvězd pracující na jednom jádru
(vlevo) a na všech jádrech (vpravo), 64 bitová verze (x64) je významně
rychlejší
Přirozeně celočíselné výpočty používající celých 64 bitových čísel jsou na x64 procesoru výrazně
rychlejší. Zatímco x86 procesor může samozřejmě také provádět
takové výpočty, ve 32 bitovém módu je
zapotřebí několika instrukcí k provedení jediné 64 bitové operace. 64 bitový procesor potřebuje pouze jedinou
instrukci. Naneštěstí SIPS tak velké celočíselné operace
nepotřebuje, takže toto potenciální urychlení nedokáže využít.
Podpora obrazovek s vysokým rozlišením (Hi-DPI
display)
Už předchozí verze programu SIPS byly upraveny aby pracovaly na
obrazovkách s vysokým rozlišením (high DPI), některé nástroje
(Histogram and Stretch, záložka Cooling v
nástroji Kamera, ...) zůstaly zafixovány pro 96 DPI monitory. Ale
vysoká bodová hustota přirozeně poskytuje mnohem hezčí obraz a
stává se čím dále běžnější i v případech levných notebooků a
tabletů (2 in 1, convertibles).
Kromě přizpůsobení záložky Cooling monitorům s
vysokým rozlišením byl rozšířen interval teplot až do
-75C, protože nové EC (Enhanced
Cooling) modely kamer Gx dokáží ochladit čip až o 60C pod okolní teplotu a minimální teplota
-50C přestala dostačovat.
Další vylepšení
Nový SIPS konečně zavedl ovládání všech vlastností do
rozhraní ovladačů dalekohledů (montáží) a uživatelských
nástrojů. Kromě základních funkcí (souřadnice, goto, ...) je
nyní možno ovládat:
Parkování a odparkování montáže, včetně nastavení pozice
pro parkování.
Čtení a zápis geografické polohy (je možné ji nastavit
podle GPS přijímače připojeného k PC).
Čtení a zápis módu pohybu montáže (tracking), tedy
zapínání a vypínání a také volba rychlosti (sideral, solar,
lunar).
Synchronizace času v montáži s časem v PC (opět je možné
nastavit čas podle GPS přijímače připojeného k PC nebo v PC
synchronizovat čas přes Internet s časovým serverem).
Vývoj nástroje Telescope od SIPS v2.0
(vlevo) po SIPS v2.3.3 (vpravo)
Nástroj New FITS Header dovoloval manuální,
poloautomatické nebo plně automatické vyplňování některých
hlaviček:
Manuálně vyplňované hlavičky jsou např. OBJECT nebo
TELESCOP. Uživatel musí zaškrtnout volbu a vyplnit příslušný
editační řádek. Pak se hlavička objeví ve FITS souboru.
Poloautomaticky vyplňované hlavičky jsou např. informace
o geografické poloze (LONG-OBS, LAT--OBS a ELEV-OBS). Je možné
je vyplnit ručně nebo kliknout na tlačítko Get Location
from GPS a načíst je z připojeného přijímače GPS.
Plně automaticky vyplňované hlavičky nedovolují jakýkoliv
zásah uživatele, např. EXPTIME, FILTER nebo IMAGETYP. Hodnoty
těchto hlaviček jsou přiřazeny programem v okamžiku pořízení
snímku.
Nová verze programu SIPS přináší rozšířený nástroj New
FITS Header, který jasně rozlišuje mezi automatickým a
manuálním vyplňováním hodnot patřičných hlaviček. Tyto hlavičky
dovolují uživateli definovat jejich hodnotu v editačním řádku, ale
také dovolují volbu automatického vyplňování v okamžiku pořízení
snímku, samozřejmě pokud je požadovaná informace k dispozici.
Například vezměme nově zavedené hlavičky RA a DEC. Mají
obsahovat rovníkové souřadnice středu snímku. Je možné je zadat
manuálně, ale pokud je připojen ovladač dalekohledu, která
poskytuje souřadnice, je možné zaškrtnout volbu R.A./Dec.
from telescope, aby se tyto hlavičky vyplnily automaticky
vždy při stažení snímku z kamery.
Nástroj New FITS Header dovoluje automatické
vyplňování hodnot některých hlaviček
Nástroj Kamera nyní podporuje pointaci nejen přes
AutoGuider port pointační kamery, ale také přes ovladač
dalekohledu, pokud poskytuje rozhraní PulseGuide.
SIPS nyní korektně zpracovává řádky v hlavičkách FITS souborů s
tzv. prázdným komentářem. Řádky nezačínající žádným
klíčovým slovem (samými mezerami) jsou považovány za komentářové
řádky a SIPS byl upraven aby správně pracoval s FITS soubory,
které tuto vlastnost využívají.
SIPS je volně ke stažení ze sekce Download tohoto www serveru.
|