Moravian instruments, Inc., source: https://www.gxccd.com/art?id=440&lang=409, printed: 11.02.2025 2:26:38
Main page▹Product Overview▹Software | 27.5.2015 |
---|
64 bit version of the Scientific Image Processing System package was tested for several months and it is now released for free download with the minor SIPS release v2.3.3. Software variant supporting 64 bit memory addressing (this means not limited to 4GB) is not the only new feature. This minor release added support for new hardware, allows much better control of attached telescopes, broadened compatibility with FITS standard etc. It was also significantly updated to work much better on HI-DPI displays. |
64 bit computing64 bits seems to be a buzzword of current mobile computing, but it is quite common in the PC space. Despite we use 64 bit systems for a couple of years, general understanding what this exactly means is low. Let us explain a few terms before we describe 64 bit version of SIPS. 64 bit CPU is a computer processor with internal registers, holding and processing individual pieces of information (integer numbers, memory pointers, ...), up to 64 bits long. The first microprocessor ever was 4 bit (Intel 4004), but it was soon replaced by 8 bit version (Intel 8008). 8 bit CPUs become widely popular and numerous models appeared (Intel 8080, Zilog Z80, Motorola 6800, MOS Technology 6502, ...) and they powered first truly personal computers. In a chase for greater computing power and the ability to access more memory 16 bit and later 32 bit processors appeared, some of them created as extension of existing architectures, some designed from the scratch to be directly 16 or even 32 bit. Continuous demand for more memory caused the 4 GB limit, allowed by 32 bit processors (2^32 = 4G) was exceeded and a room for 64 bit processors opened. And similarly, some of them were natural extension of older 32 bit architectures, some of them were newly designed as 64 bit. But processor architectures have tough life. They either become successful and widely spread or die soon. Currently only two architectures dominates (Intel x86-64 and ARM v7/v8) and both are available in 64 bit variant. And both evolved from previous 32 bit versions, so they are able to run both 32 bit and 64 bit code. Remark: Intel x86 evolved from 16 bit to 32 bit first and only later 64 bit mode was added. It is worth noting that 64 bit version of the ancient x86 architecture was not introduced by Intel, which was busy promoting now dead Intel Itanium processors, completely incompatible with x86 standard. Instead AMD, another manufacturer of x86 processors, invented 64 bit x86-64 extensions and when Microsoft started to support it, even Intel has to accept this standard. The key feature was the ability of 64 bit x86 CPUs to run all existing 32 bit software. Completely 32 bit environment was used first (operating system, applications) and only later 64 bit operating systems started to be common, running a mix of 32 bit and 64 bit applications. 64 bit x86 CPUs were marked x86-64, which was later reduced to x64 only. So x86 means 32 bit Intel architecture, while x64 means 64 bit Intel architecture (invented by AMD :). 64 bit operating system needs 64 bit CPU to run. While a purely 64 bit OS, requiring 64 bit applications only, could be designed, it is almost impossible to succeed on the market. People need to run existing applications, so a backward compatibility is a key to success. To achieve compatibility, both hardware (CPU) and software (operating system) must support it. And all major players do this (x64 and ARM, Windows and Android).
The fact that 32 bit and 64 bit code cannot be mixed and 64 bit code is always newly translated/modified allowed CPU designers to more or less modify the instruction set. Both AMD with x86-64 and ARM with v8 took advantage of introduction of a new 64 bit mode and upgraded the respective architectures. x64 somewhat reorganized register set, making it more regular, and doubled number of registers (from 8 to 16). ARM similarly removed conditional execution of all instructions and used the saved space in the instruction word to address twice as much registers (32 instead of 16). So it is not exaggeration to say that 64 bit ARM v8 is a completely new architecture, only similar to 32 bit ARM v7 (similarly like 16 bit Intel 8086 remotely resembled 8 bit Intel 8080). Remark: This is also source of confusion even among journalists focused to IT—64 bit code does not bring greater accessible memory only. Because of architectural updates the code also can run faster even if less that 4 GB memory is used. 64 bit SIPS64 bit version of SIPS is essentially the same as 32 bit version. It is naturally able to use much more memory, which comes handy especially when SIPS uses image sets with hundreds of images and the PC is equipped with more than 4 GB of memory. And it of course needs 64 bit versions of all device drivers, but all supported drivers comes with the program itself so this is not a problem. As was noted in the previous chapter, 64 bit applications keep pointers (addresses of data in memory) in twice as long registers compared to 32 bit programs. So naturally 64 bit programs are somewhat longer and they need to operate larger amount of data even if they do not use memory above 4 GB. This is kind of performance penalty—longer code means larger memory traffics and effectively shrinks sizes of fast cache memory. But on the other side, 64 bit code can use twice as much registers to keep various variables (in the case of x64) and it does not need to access memory so often, which causes performance gain. So the question is—is the 64 bit code faster or slower compared to 32 bit code? In reality it can be both faster and slower, depending on the algorithm:
Naturally integer calculations using whole 64 bit integers are much faster on x64 CPU. While x86 CPU can of course perform such calculations, several instructions are necessary to handle single 64 bit calculation in 32 bit mode, while 64 bit CPU needs only single instruction. Unfortunately SIPS has no use for such large integers, so potential speed gain is not utilized here. Hi-DPI display supportWhile support for high DPI (high resolution) displays were added to previous SIPS versions, some tools (Histogram and Stretch, Cooling tab in the Camera tool, ...) remained fixed to 96 DPI displays. But high resolution displays provide much smoother image and they are more and more common even in the case of cheap 2 in 1 and convertible computers. Beside flexible adjustment of Cooling tab to Hi-DPI displays, the temperature range was increased up to -75C, because new EC (Enhanced Cooling) models of Gx cameras provide temperature drop up to 60C below ambient and -50C minimum temperature was no low enough. Other enhancementsNew SIPS finally brought all features to the Telescope (mount) drivers and control tools. Beside basic functions (coordinates, goto, ...), it is now possible to control:
Evolution of the Telescope tool from SIPS v2.0 (left) to SIPS v2.3.3 (right) The New FITS Header tool allowed manual, semi-automatic or fully automatic entry of some headers:
New version of SIPS introduced updated New FITS Header tool, which clearly distinguishes between automatic and manual filling of respective headers. Such headers allow user to define their value in the edit box, but also allow to check the option to update the value upon image acquisition, providing the proper information is available. Let's take newly introduced RA and DEC headers as example. They should contain equatorial coordinates of the image center. It is possible to enter their value manually, but if the telescope driver is active and provides telescope coordinates, it is possible to check the option R.A./Dec. from telescope to fill these headers each time the new image is downloaded from the camera automatically. The New FITS Header tool allows optional automatic filling of selected header values Camera tool now supports guiding not only through guider camera with AutoGuider port, but also through a telescope driver, providing the driver supports PulseGuide interface. SIPS now properly handles FITS blank comment lines. Lines beginning with no keyword at all (only spaces) have to be considered as comment lines and SIPS was updated to work properly with FITS files using this feature. SIPS is a freeware and can be downloaded from the Download section of this web site. |