Thursday, March 1, 2018

Let's talk about space and computing with space in mind..

The human aspect of programming has always been built around the presence of best environments for coding - mostly called as the 'happy' path coding - where you just care about the code and best rest assured everything else would be taken care of with no intended variations.
Well - what is this 'everything else' we are talking about?
Let's take a look.. with an example of today's times..
When you are going into space you need to look at 3 major things - 

1. temperatures -180 degree centigrade to 240 degree centigrade.
2. cosmic rays
3. vibrations

the third one is important during launch but 1 & 2 would always be there once you go into space.
*Any instrument put into space should work with above 3 parameters not affecting the output.
#2 sometimes hits the microprocessor and has a capability to change the parity bit - flip it from 1 to 0 or 0 to 1.
This may cause the microprocessor to give incorrect results - say 100 + 100 = might have one bit flipped and give 240 instead of 200. This can cause major errors in computational and decision making algorithms in place in the computer programs in systems equipped for space.
In order to take care of this the space team employs methods to protect bit flip by using sturdier materials for processor. 

* Companies like SpaceX uses a different technique - it doesn't use all the cores of a 'say' three core CPU - instead it sends the same computation to each core and then evaluates the result, compares it - if there a difference - it restarts the core with error which causes the bit flip to be rectified.
For this to happen at least 3 cores are required to understand which core failed.
* Companies like SpaceX can use above technique and save on costs of building systems with costly materials, and use programming languages which are open source like C++ to develop code for the different navigational programs.
* They use labview to generate the simulations and auto cad for designing - simple everyday applications.
* CI (continuous integration) is heavily used to test the whole launch sequence which has built in tests to launch and navigate - for e.g. for falcon models.
It's cool... looks complicated and might be definitely but is built from every applications and simple materials .. cost effective by using some interesting corrective techniques.

No comments:

Post a Comment