Many here way not know about the world outside of X86. I’ll be the first to admit that the Intel and AMD war is absolutely hilarious to watch to me. But, whats outside of that? If you want a peek into other hardware have a look at the links above.
The TALOS workstations are based on POWER, an extended family member of the PowerPC family, and a processor architecture that is /normally/ used on servers and supercomputers. What are the advantages? Well for example 4 core 16 thread CPU’s to do science stuff with, as well as big endian and little endian bit switching. To the average desktop user that way not be useful, but to someone doing very complicated CPU based tasks? Something like this would be very very useful. I’ll also be the first to admit that I am in love with IBM anything. I have always loved thinkpads, and I love the CPU’s they make. One of my favorite machines to use has been an ibook. So small and convenient…
So where does the TALOS fit in here? Its a brand new machine based in DDR4 and PCIe 4, comes in a dual socket setup with single ore dual CPU’s, and is probably louder than me when I’m drunk. I can hear you thinking “What the hell OS would it even run?” Isn’t that obvious? Linux and BSD!
One of the advantages the TALOS will be providing to its users is a stupid amount of performance that will last. A lot of the uses won’t be towards average desktop stuff. While, yes, you can use it as a desktop system and such, the intended use cases are for laboratories, colleges, and places that need a lot of fire power out of very little. What may be more interesting, to me at least, is to see what the amiga crowd does with it. They still work on PPC machines and some POWER7 machines as well, nor are they afraid to pump money into the machine.
I’ve seen some people ask why such a thing would be around as it seems rather ridiculous and we’ll honestly just have to wait and see what happens. I think its really going to shake up the workstation market as Intel and IBM have been at each others necks for the last few years, slapping each other back and forth for the top of the HPC and workstation performance market. We may see a change in the design of the PHI’s even, who knows! But what Raptor is offering here is a LOT cheaper than POWER based systems that you might get from other companies (and you can get a Firepro WX7100 with it!). We’ll have to watch what happens with it.
I must confess I am also very giddy about this development, and I really wanted one; then I started reading more about OpenPOWER and now I’m just drooling.
OpenPOWER boot
All the boot stages in OpenPOWER (not necessarily true for other IBM Power products) are open-source (hostboot, skiboot, petitboot), There’s part of the processor that runs some thermal management code – that’s also open source, just look at the occ repo.
They repeatedly state that there is no firmware running in the background after you boot; the OPAL firmware code loaded by skiboot just acts like a library for the OS, and the OS has to call it for anything to happen. I think this may also be true for EFI after ExitBootServices is called, but I am not sure.
Talos II workstation
The Talos II also has OpenBMC, which while not part of the OpenPOWER spec, looks like it might become the standard on OpenPOWER systems later on. (see references)
What is a bit curious is the chips Raptor Computing has for preorder; they are 4-core, when most of the information about POWER9 has talked about 12-core and 24-core chips. They say they will have “additional Sforza CPU options planned” which someone I was talking to on reddit suspected meant they disable 8 of 12 cores on a normal IBM Sforza chip.
Alas, the mind is willing, but the wallet is weak.
Its to defer crypto miners. Just a big fuck you really. They couldn’t label it though. I’m excited that they did that. You can still OC and shit from inside windows and linux tho.
Well I mean its a server. You have a server board in there, EATX at least. You’re not going to fit that in some bitfenix thing. Its not a gaming machine, its for work.
As long as the case is EATX it should be fine; the product page for the board doesn’t mention any special considerations beyond that. Maybe they really wanted the drives accessible from the front and that limited their options?
Hmm, the Fractal Define XL says it can handle EATX…
Interestingly, I saw someone on twitter referring to the mainboard as the POWER9 Developer Board; can’t find the tweet anymore though.
Oh, and from what I see in the image the BMC chip looks like its an AST2500.
True, I still find it a bit sad though, if that’s the final case.
I value function over form too, but it looks like parts of the front panel are made from cheap plastic. Especially the top panel and its needlessly chrome-coloured plastic power button.
It looks like Form over Function to me, and not a Form which is particularly appealing.
My dad was a 35 year IBMer and I used to get excited about RISC architecture.
But after multiple nothingburgers over the years, most notably PReP architecture and rumors of PowerPC 604 based motherboards made by Tyan back in the mid 90s, I got tired of getting let down. Believe me, the thought of OS/2 on a 604 PowerPC at the time was so intoxicating that I was practically delirious.
As much as I’d like to see POWER be a viable competitor, I just don’t think that it ever will be in today’s era of cheap and good enough x86 compatible systems. The only RISC system I see with any potential to unseat x86 is ARM, and it’s going to have to win a race to the bottom… ultra cheap computing (Raspberry Pi prices).
But there is nothing wrong with a little day dreaming. I’ve already read all about this and watched too many videos on it. I just can’t get excited or be bothered to spend any money on products that probably will never be available in any meaningful or cost effective quantity. Let me know when you got your TALOS system up an running. Maybe you can reignite the fire in me.
I also recently came across someone remarking that a post on twitter from February, describes a motherboard near identical to Talos II’s as an “IBMPowerSystems developers board”.
This makes me wonder if Raptor Computing/Engineering is actually making/contracting the board themselves, or if are they just reselling a developer board. This would also explain the chopped down 4-core Sforza’s they are initially shipping with it.
As I was writing this I noticed that less than an hour ago they announced a press release, and started using the “RaptorCompSys” twitter account, which had been sitting dormant until now. As of now I still see no mention of the board being a developer board, though the 4U server is labelled as a development platform the workstation is not. The plot thickens…
Weird sidenote from looking into this stuff, apparently there is a Twitter account that tracks when trademarks are filed. So apparently, Raptor Computing Systems was also filed back in September 2016, when the Twitter account was made.
So I feel like for some people on this forum they may not know what the differences are… So lets talk about little endian vs big endian shall we?
What are the two different theories, what do they set out to accomplish?
Little Endian and Big endian are two ways of storing multi-byte data-types ( int, float, etc) in computers. In a sense this is how the computer stores data in its processor registers, which can hold a variety of data types from instructions to storage addresses to stack pointers.
What’s the difference between the theories?
In Little Endian machines, last byte or least significant bit of binary representation of the multi-byte data-type is stored first while in Big Endian machines, first byte or most significant bit of binary representation of the multi-byte data-type is stored first.
For example:
Suppose an integer is stored as 4 bytes(32-bits), then a variable y with value 0xdeadbeef( Hexa-decimal representation) is stored as four bytes 0xDE, 0xAD, 0xBE, 0xEF, on Big-endian while on Little-Endian (Intel x86), it will be stored in reverse order as follows 0xEF 0xBE 0xAD 0xDE.
Example: How 0x1234567 is stored at memory location 0x100-ox103 on any standard machine at home?
Here is a piece of code from my ECE330 class that I wrote to do exactly that for a test given zero help to test endianness the third day of class. Execute it at home on a linux machine prefereably with all the build tools LOL… Or windows whichever you may prefer the operating system is completely irrelevant
#include <stdio.h>
/* function to show bytes in memory, from location start to start+n*/
void show_mem_rep(char *start, int n){
int i;
for (i = 0; i < n; i++)
printf(" %.2x", start[i]);
printf("\n");
}
/*Main function to call above function for 0xba5eba11*/
int main(){
int i = 0xba5eba11;
show_mem_rep((char *)&i, sizeof(i));
return 0;
}
How to remember?
Well think about this. If you have two fishes. In big endian you have the whole fish but lets try to think about it as two halves of the fish in the correct order. representing each bit. Now in little endian you cut the fish in half and put the tail first then start counting. See the difference? Draw it for yourself all you gotta remember is that in Little Endian, things are stored in reverse order.
So you find yourself asking which is better?
Both have advantages and disadvantages:
In “Little Endian” form, assembly language instructions for picking up a 1, 2, 4, or longer byte number proceed in exactly the same way for all data storage formats. The process goes like this… first pick up the lowest order byte at offset 0. Also, because of the 1:1 relationship between address offset and byte number (offset 0 is byte 0), multiple precision math routines are correspondingly easier to write. Armed with that knowledge we can see why we write most mathematical routines in little endian.
In “Big Endian” form, by having the high-order byte come first, you can always test whether the number is positive or negative by looking at the byte at offset zero which is incredibly useful because you don’t have to know how long the number is, nor do you have to skip over any bytes to find the byte containing the sign information of the data or numerical instruction set. The numbers are also stored in the order in which they are printed out, so binary to decimal routines are particularly efficient and easier to read by humans
So what software has what kind of endianess?
Glad you asked…
Adobe Photoshop – Big Endian
BMP (Windows and OS/2 Bitmaps) – Little Endian
DXF (AutoCad) – Variable
GIF – Little Endian
IMG (GEM Raster) – Big Endian
JPEG – Big Endian
FLI (Autodesk Animator) – Little Endian
MacPaint – Big Endian
PCX (PC Paintbrush) – Little Endian
PostScript – Not Applicable (text!)
POV (Persistence of Vision ray-tracer) – Not Applicable (text!)
QTM (Quicktime Movies) – Little Endian (on a Mac!)
Microsoft RIFF (.WAV & .AVI) – Both
Microsoft RTF (Rich Text Format) – Little Endian
SGI (Silicon Graphics) – Big Endian
Sun Raster – Big Endian
TGA (Targa) – Little Endian
TIFF – Both, Endian identifier encoded into file
WPG (WordPerfect Graphics Metafile) – Big Endian (on a PC!)
XWD (X Window Dump) – Both, Endian identifier encoded into file
And so on
If you ever find yourself in need of reversing the order of a multibyte integer to suit your liking… there are many methods to doing so
It is pretty easy to reverse a multibyte integer if you find you need the other format. A single function can be used to switch from one to the other, in either direction. A simple and not very efficient version might look as follows:
Function Reverse (N:LongInt) : LongInt ;
Var B0, B1, B2, B3 : Byte ;
Begin
B0 := N Mod 256 ;
N := N Div 256 ;
B1 := N Mod 256 ;
N := N Div 256 ;
B2 := N Mod 256 ;
N := N Div 256 ;
B3 := N Mod 256 ;
Reverse := (((B0 * 256 + B1) * 256 + B2) * 256 + B3) ;
End ;
A more efficient version that depends on the presence of hexadecimal numbers, bit masking operators AND, OR, and NOT, and shift operators SHL and SHR might look as follows:
Function Reverse (N:LongInt) : LongInt ;
Var B0, B1, B2, B3 : Byte ;
Begin
B0 := (N AND $000000FF) SHR 0 ;
B1 := (N AND $0000FF00) SHR 8 ;
B2 := (N AND $00FF0000) SHR 16 ;
B3 := (N AND $FF000000) SHR 24 ;
Reverse := (B0 SHL 24) OR (B1 SHL 16) OR (B2 SHL 8) OR (B3 SHL 0) ;
End ;
There are certainly more efficient methods, some of which are quite machine and platform dependent as @FaunCB pointed out the Power Architecture has its own way of doing so that is optimized for its platform… Use what works best for your situation