Episode: 24
Title: HPR0024: An interview with Jonathan Bartlett
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0024/hpr0024.mp3
Transcribed: 2025-10-07 10:25:20

---

¶¶
Hello and welcome to Hacker Public Radio, I'll be your host for today Deep Geek.
Today is a very special show for me today because I'm joined today on the phone by Jonathan
Bartlett.
Jonathan is a web developer at New Media in Tulsa, Oklahoma, as well as being an adjunct
instructor at Tulsa Community College.
He is the author of programming from the ground up.
A Guide to Learning Linux Assembly Language, a book in use at Princeton University as a textbook,
which aims at making good programmers better programmers by giving them a deep appreciation
for how the CPU works.
He is also the author of numerous articles at IBM.com's Developer Works.
Hi John, how you doing?
Doing great thanks for having me or I'm so glad you could join us today.
John in addition to being a web developer and being an instructor, John is also a PS3 hacker.
And I'm always interested in talking to people about exotic hardware.
And so that's why the PS3 is pretty exotic.
It's got an architecture of making the other, I think.
Well, John, perhaps not all of our listeners are real CPU enthusiasts.
Can you tell us a little bit about the differences in architecture between the cell and the
more popular windtell CPUs?
Yeah, as you said, the PS3 has a processor on it called the cell, which was developed
jointly by IBM and Sony.
And historically, each chip processor chip has one core on it.
So each CPU can only execute one stream of code at a time.
It can alternate quickly between streams, so it feels like it's doing multiple tasks at
one.
But really each CPU was only doing one thing at a time.
With multi-threading, there was some sharing where you could have some streams going simultaneously.
But finally, they started building what's called multi-core processors, where you actually have
multiple independent processing units on each chip.
Now Intel does that by simply taking the same chip and replicating it multiple times.
So it's basically the same architecture as if you had multiple independent chips, but
just all put together on the same piece of those.
In the cell, it's different.
It's a multi-core design, but the big difference is that the cell has one kind of supervisor
core, which is basically just a stripped-down power PC chip.
And then eight specialized cores, called synergistic processing units, through this CPU.
And they're actually full cores, but they're different from a typical CPU core, because they're specialized for
computational programming.
And so if you think about, you know, you have the vector processing units like alpha-back,
and MMX, and those sorts of things that you have on traditional processors.
Well, these FPUs are kind of like those, except they can be extended to have a full range of instructions on them.
So they're not piggybacking off of a traditional CPU that actually have the full instruction set.
So anyway, these chips don't have all the capabilities of a full chip, but they're not limited as just a straight vector processor.
And what's that give you is really huge multimedia support, because that's basically what we buy vector processors for.
MMX and alpha-back, it's for doing multimedia processing.
And so these are specialized for that.
So the cell processor has a one primary core, and then it has eight FPUs attached.
And all of them, I believe they all run at 3.4 gigahertz.
So they're screaming fast.
So is it both the power PC part, the stripped down power PC part, and the FPUs are running at that high speed?
Yes.
Okay.
So I mean, so it sounds like what you're telling me.
Like if I board a dual core Intel, you know, the links tunnel would recognize if the access slows immediately, both those cores, right?
But in this case, it won't.
Right.
That's correct, because, you know, for like one X, you have to have each core have to be able to support virtual memory and support preemptive multitasking, and that sort of thing.
So it can switch processes correctly.
These chips are specialized for multimedia.
They don't have all that extra stuff on them.
So basically, they're owned by one processor at the time, and you actually have to write specialized code for each of these cores to run on.
You can't just take a standard out of the box program and compile it for these processes.
You actually have to write special codes to take care of that.
So, let me know just on the side now, if I compare, say, a 3.4 gigahertz cell and a 3.4 gigahertz Pentium or programs, let's say I'm not a specialized seed programmer.
Or is my Linux background going to operate the same speed between those two processor types?
You're probably going to get less speed out of the cell, in that case.
Why would that be?
The prior PC, which ships on it, is actually a little bit stripped down, so it doesn't have all the optimizations that are in a standard prior PC chip.
But as I said, in order to get the 8th synergistic cores working, they have to have specialized codes to run on those.
So, what you wind up with is if you don't have any programs that know how to use your SPUs, then you wind up with just a prior PC that does work as well as most of them.
That's interesting, you know, because a lot of hackers have an extensive knowledge of seed.
So, I mean, it sounds like they could still get some good mileage out of this.
Yeah, especially if you want to do any sort of scientific programming, that's actually where my articles that I wrote for IBM kind of focus on during scientific processes on those specialized processes.
You know what I think of is, as I remember, there was this hacker webpage, and what the guy did was he made a look up of all the hash values that passwords could possibly link to.
Now, if somebody wanted to write a generator table like that really quickly, would he load into the SPUs, a bunch of seed numbers, and then channel them all together,
and actually do eight calculations at a time that way, is that how it would work?
Yeah.
Yeah, basically, yeah, it's kind of interesting because you actually have to explicitly code all memory moves from and to main memory on the cell.
It's unusual to usually just access it directly.
But yeah, I mean, basically, you'd load it in, load it in the code into each of the eight processors, go through it, and calculate all of your hash's simultaneous.
Uh-huh.
That's really amazing.
So it would be a fast computer for a typical desktop user, but it would be even better for a more knowledgeable programmer.
Yeah, if you were at that.
That's amazing.
And also, it's possible that in the future, because it's such a different technology, there's not a whole lot of people developing for at the beginning.
And so it's possible, as time goes on, we'll have more apps to come out that have specialized cell extensions.
You know, you're already seeing that with a bunch of the at-home type apps, like Folding At Home.
I believe Einstein at home is trying to work on a place vision, a cell version, and a bunch of those kind of do-it-at-home scientific apps are working on those.
You know, I wonder if a more mainstream application, such as a spreadsheet, could take advantage of all those SPUs.
You know, because that's a calculation-intensive application, right?
You probably could, I mean, because most spreadsheets aren't really that calculation-intensive.
You know, you've got about, you know, 30, 100, maybe a thousand calculations to do.
The cell really shines, you know, a couple million.
A couple million.
Which is why it's kind of specialized for graphics.
In fact, what I kind of heard from the room though, the room though, is that the first design of the PlayStation 3 is actually going to have two cell processors.
And they were going to be simply, rather than have a graphics processor, they're just going to use the cell in its place.
And the reason that they chunked that design was simply because there's a whole stack of dissolves of work that goes along with making a video card or a video board,
and making all the libraries that go with it.
So they just want to have you with the standard one, rather than trying to build it themselves.
But multi-media processing is really what the cell is built for.
That's amazing.
Yeah, one of the reasons for the architecture is because, you know, Intel has eight core processors now, or is working on them a lot, but I don't think they're out yet.
But the difference is that those runs really hot because each core is a full processor.
But the cell, since each core are these specialized multi-medias, the cell actually runs really cool.
So you don't have to have, like, a grunk-antuan pan sitting on your TV or whatever sort of multi-media device.
So this would really, like, advance, like, you know, a media company or an animation company.
Well, perhaps a company that needed to run bare wolf clusters, like for the forecasting or something.
Yeah.
Yeah.
Also animation rendering.
I think it would be fantastic.
Do you know, because I've seen pictures in Linux Journal of the render form used by the Shrek movies,
do you never have any actual installations where people have replaced render forms with all cell processors?
I'm not.
And I think the reason is because no one's actually done the development work to move a lot of these rendering platforms to use the cell to protect them.
You know, I heard that Toshiba released a prototype motherboard.
But that no one ever came out with, you know, a regular standardized, consumable-level motherboard centered around the cell.
Is there a reason for that?
And have there been industrial state blade server-style motherboards made with the cell?
Yeah, there's been a lot of blade servers made with the cell.
Yeah.
I think that before the PlayStation 3 came out, most of the people using the cell were on some sort of IBM blades,
or there's not a company making blades that I forget the name right now.
So actually, both, you know, besides the PS3, most cells right now are running in place.
So this could really replace a person looking to change home computers.
They could actually get this.
Get a PS3 and use it as a home computer.
Yeah, you can use it as a regular Linux box.
I actually did that for a while, although I have a really, really crappy TV, so it didn't work out as well as it looked for other people.
Well, you know, I know it comes with a blue right, a PS3.
So I would assume you would need to get, you know, like a HDTV monitor.
Do you want to?
Yeah.
But now, in your case, you don't.
You know, I'm a cheap bastard, you know.
So much, I don't know.
So how do you connect to it then?
Do you connect to it just with the TV set or do you tunnel into it somehow?
No, well, I connect direct to my TV set.
You know, I think Sony engineers would probably be crying in their beer.
They saw the kind of setup I had for it.
Yeah, and if I actually need to, I actually want to see a full desktop.
I usually run an external into it that way.
Yeah, so you'd log in via KVM or something?
Exactly.
So, you know, it's interesting because I heard these game councils are sold
at a slight loss by the big companies who make them, you know,
because they want to get them out in the expect to recoup money on licensing fees
like for the gate individual games.
So I'm wondering if like the actual hardware of the PS3 is actually worth more
than what you have to buy it for.
This probably is.
In some of these several things to try to shave off some diamond off of it,
as opposed to the cells that come on the PS3 instead of having 8th SPU cores
that actually have 7th.
And the reason they did that is that, you know, when you go into manufacturing,
some of your chips will be slightly defective and some of them will be, you know, even more defective.
And so what they did is they basically said we're going to manufacture these
but we're going to only throw out chips if they have 2 defective SPUs.
Well, they keep them, they keep them if they have 1 and if they manage to get all 8,
we'll just disable one of them.
You know, that's an amazing thing.
I just don't know how to respond to that.
You know, because I know that the CPUs are actually made in mass
and that there's a quality assurance and sometimes they know that some can operate a certain speed
and those can't, like I've read that, until they rate the speed of a batch somehow.
But in this case, they're actually rating how many of the SPUs are fully functional.
Exactly.
Amazing.
Yeah, it's interesting what they do in engineering but that's why I'm a software guy, not a hardware guy.
So what kind of Linux do you prefer, John?
I'm generally just, I usually stick with Red Hat just because that's kind of what I grew up on.
Now, I'm a devian guy and I did read that some people got devian Linux up and working.
What are the different Linuxes that are known to work with the PS3?
Well, the main one that they got, the first one they got running on PS3 was yellow dog.
And they've been kind of the stable power CPU vendor for a long time.
But because Sony actually paid them to all the porting work to get yellow dog up and running on the PS3,
which I thought was kind of interesting kind of showing Sony's commitment to Linux on the PS3.
Yeah, you know, that is a lot of commitment from them.
Has any nine Linux operating systems been made to work on this platform?
Perhaps the...
Yeah, I've heard netbfp.
Netbfp?
Yeah, but I've never tried it myself.
Yeah.
So, you know, I know that Macintosh Apple released used to have a power PC computer before they switched to Intel's.
But they've made no attempt.
In fact, that was one thing that I was a bit disappointed at because I thought that would have been a great move for Apple
because their PCs are so heavily multimedia-oriented.
Yeah.
That the cell would have been a natural fit going from power PC to the cell,
because it doesn't require any rewrite of any application code.
But they could have used the SPUs for doing a lot of their quick time graphics processes.
That would have been great.
They probably missed the bottom of this one.
Well, now, a lot of my listeners, a lot of our listeners at Hacker Public Radio are heavily pre-soft for people.
And some of them have said that they've had problems with Sony because they do a lot of patenting and a lot of, you know,
I don't know if close sources are the right word, but it's certainly closed architecture.
Well, how does this wash with you?
As far as hardware goes, I don't have much of a opinion on it one way or another.
I'm a big free software fan myself.
My book I released under the GNU free documentation license.
And I try, at the place I work, we try to, as large parts of the software, we develop as we can try to open source.
But, you know, the main thing that, my main disagreeing with Sony is when they started putting those root kits on,
I think they were putting root kits on CDs or something like that.
Yeah, that was a real tobacco.
Yeah, that went way too far.
But as far as, you know, one of the things that people complain about is that they've walked the graphics processor on the cell.
So that you can't use any of the graphics processors 3D capability.
Yeah, but I did want to ask you about the graphics processor, because I understand it's like a really, I'm correcting if I'm wrong.
That is like a really advanced, I believe in video, but I'm not sure.
And that some people have used the actual video card for photography calculations.
Do you know anything about that?
I'm not familiar with any of that, although I wouldn't be surprised.
There's actually a company called RocketMind, and they have the software development kits that I believe haven't looked at it as closely as I'd like.
It allows you to use a lot of these alternate execution environments such as graphics cards,
SPUs, and that sort of thing fairly easily from within a C++ environment.
I wouldn't be surprised if someone had used that in conjunction with something like RocketMind that makes it pretty easy to write stuff to work on specialized graphics.
But as far as on the PlayStation 3 itself, Sony's walked that card down pretty hard, so you actually can't access it from Linux except through a frame buffer.
So that must have been if anything that people know about that has done, used that technique, that must be very advanced.
Well, I mean, before we wrap things up, John, is there anything I should have asked you?
I think we covered most of the basics, especially for non-programmers.
There's a lot of interesting stuff as well when you get into the actual individual programming on it.
But anyone who's interested in that can also check out my articles on IBM's developer work.
It's kind of interesting the way I got into it is because I actually thought, you know, we were talking about Macs, I actually bought a Mac.
And I was interested in running the programming.
But I was just pointing because I got a laptop in there, 32 bits, and I wanted to do the 64 bit stuff.
And someone told me that this file was a 64 bit RPC processor.
And is it?
And it turns out they actually have a simulator available for the cell.
So before it even came out, I was able to do some practice programming on it via simulator that I did have.
They still produce it.
And it's actually quite an interesting little thing because it literally mimics the hardware exactly.
So it mimics the actual cycle through so you can actually know how many cycles your programming is taking just by running it on a simulator.
That sounds very intense and it also makes me wonder if maybe if somebody actually set this up as a home computer.
If they could maybe run a virtualization environment and be able to run their old favorite Windows apps in that way.
That's very popular.
Yes.
And that's not the kind of sure on all the details I'm talking about.
Well, look, John, I really want to thank you for coming back to public radio because you know I do web searches on this topic.
And it just doesn't seem to be enough interesting information out there.
So I hope this really enlightens the listenership.
Thank you again.
Well thanks for having me. I appreciate it.
Thank you for listening to Hack with Public Radio.
HPR is sponsored by Carol.net.
So head on over to C-A-R-O dot-A-T for all of us here.
Thanks for watching.
You
