WEBVTT

00:00:00.400 --> 00:00:09.840
To understand why a bizarre device like this one here exists, we need to travel

00:00:05.680 --> 00:00:12.559
back to the time of its release.

00:00:09.840 --> 00:00:17.520
The year was 2006. High performance consumer SSDs were still 2 years away,

00:00:15.360 --> 00:00:20.960
an eternity in computer hardware terms. And even the fastest consumer hard drive

00:00:19.520 --> 00:00:25.519
on the market, the Western Digital Raptor X, barely stood out from the

00:00:23.039 --> 00:00:31.840
pack. So, there was a very real appetite for faster boot devices. Meanwhile,

00:00:28.720 --> 00:00:33.600
Intel's Core2 Duo Conro platform was one

00:00:31.840 --> 00:00:40.960
of the most compelling upgrades for gamers in years, but it required an

00:00:37.760 --> 00:00:43.440
upgrade to shiny new DDR2 memory,

00:00:40.960 --> 00:00:49.760
resulting in an abundance of Castaway DDR1 memory sticks. So, there to

00:00:46.559 --> 00:00:52.559
capitalize on these two conditions was

00:00:49.760 --> 00:00:59.120
Gigabyte. The idea here was really simple. Here we go. Take some of the

00:00:56.239 --> 00:01:04.720
leftover DDR1 memory that you already have lying around and instead of

00:01:01.440 --> 00:01:07.360
spending thousands of dollars on an SSD,

00:01:04.720 --> 00:01:18.880
take it, chuck it on this thing, and use that as your system boot drive.

00:01:18.880 --> 00:01:24.880
I never had one of these when they were new. Back then, I was busy spending all

00:01:22.400 --> 00:01:29.600
my money on textbooks I'd never read for a degree that I'd never finish. That

00:01:27.439 --> 00:01:34.400
worked out great. So, when I saw this on eBay for like 30 bucks, I figured, what

00:01:32.159 --> 00:01:38.079
the hey, let's take a look at it. Let's start with the PCI connector. Now, on

00:01:36.560 --> 00:01:44.960
the surface, you might think that this looks very similar to a modern PCI

00:01:40.720 --> 00:01:46.880
Express SSD, but you'd be wrong for a

00:01:44.960 --> 00:01:52.079
number of reasons. Starting with the connector at the bottom. This is a PCI

00:01:50.079 --> 00:01:58.960
connector and this interface capped out at just 133 megabytes per second. That

00:01:55.840 --> 00:02:01.840
is even less than SATA 1 at 150

00:01:58.960 --> 00:02:07.200
megabytes a second. But that wasn't even its main problem. PCI is what's called a

00:02:04.880 --> 00:02:14.400
shared bus, which means that every device on it has to fight over that 133

00:02:11.200 --> 00:02:16.879
megabytes a second. And thing is, many

00:02:14.400 --> 00:02:21.680
older motherboard designs not only had their PCI slots hooked up to it, they

00:02:19.280 --> 00:02:26.800
even had onboard devices like their built-in sound card and network

00:02:23.440 --> 00:02:30.160
interface running off of it already. So,

00:02:26.800 --> 00:02:33.280
this slot was only suitable to use for

00:02:30.160 --> 00:02:35.280
power. It's also got a SATA port, so

00:02:33.280 --> 00:02:41.040
that's how it actually communicates with the rest of your system. Unlike PCI,

00:02:38.239 --> 00:02:46.640
SATA ports are not forced to share the same bus. So that means full performance

00:02:43.280 --> 00:02:48.239
to this port all the time. Well, at

00:02:46.640 --> 00:02:51.599
least as long as you don't run into a bottleneck elsewhere in your system,

00:02:50.080 --> 00:02:55.760
like on the link between the south bridge and the north bridge. I remember

00:02:53.760 --> 00:03:00.480
people used to hit those all the time when they were running multiple drives

00:02:57.440 --> 00:03:03.760
in RAID zero. Now, let's talk about this

00:03:00.480 --> 00:03:06.319
chip right here. This XYLink's FPGA

00:03:03.760 --> 00:03:12.080
probably represents a big chunk of the cost of the IRAM. FPGAAS offer

00:03:09.440 --> 00:03:18.640
incredible flexibility, allowing one to basically manufacture a processor in

00:03:15.200 --> 00:03:22.000
software, then program that processor

00:03:18.640 --> 00:03:24.640
into a blank one. Now, the cost is that

00:03:22.000 --> 00:03:30.159
you lose some efficiency and your per unit costs go way up. If this was a high

00:03:28.159 --> 00:03:34.400
volume product, they'd create custom silicon for it. But Gigabyte, even at

00:03:32.879 --> 00:03:40.640
the time, admitted that their first production run was a measly 1,000 units

00:03:37.360 --> 00:03:42.720
for the entire world. So clearly custom

00:03:40.640 --> 00:03:47.200
silicon wasn't going to be a problem. Let's talk about why they needed this

00:03:44.799 --> 00:03:52.000
processor, though. Fundamentally, the principle of storing data is the same

00:03:49.360 --> 00:03:57.760
between RAM and hard drives. You got your ones and you got your zeros. But

00:03:54.720 --> 00:04:00.959
the way the binary data is organized on

00:03:57.760 --> 00:04:03.439
the device is completely different. A

00:04:00.959 --> 00:04:08.080
hard drive uses a physical spinning platter covered in circular tracks that

00:04:06.000 --> 00:04:12.400
are divided up into sectors. So when your operating system asks for a

00:04:10.000 --> 00:04:17.040
particular bit, it tells your hard drive where to move the read head to grab the

00:04:14.560 --> 00:04:23.759
information it needs as it goes whipping by at 7200 revs per minute. By contrast,

00:04:20.720 --> 00:04:27.040
RAM stores bits, so zeros and ones, in

00:04:23.759 --> 00:04:29.759
cells that are laid out in a giant grid

00:04:27.040 --> 00:04:34.000
and that can be instantly accessed as long as you know the intersecting row

00:04:32.000 --> 00:04:38.240
and column, which is known as an address. Well, that's exactly the

00:04:36.560 --> 00:04:43.600
performance advantage that we're after here. But it also means that you can't

00:04:40.880 --> 00:04:50.000
just treat this thing exactly the way that you would a hard drive. So, our

00:04:46.960 --> 00:04:52.000
FPGA is programmed to act as a

00:04:50.000 --> 00:04:57.199
translation layer between our SATA interface here and the memory controller

00:04:54.639 --> 00:05:04.000
that's built into it. Now, let's look at the memory slots. These are operating at

00:04:59.919 --> 00:05:05.840
DDR1200 MHz. And while modern memory

00:05:04.000 --> 00:05:10.800
modules and their controllers would operate at much higher frequencies, even

00:05:08.400 --> 00:05:14.960
with the inefficiency of using SATA instead of NVMe like we would for any

00:05:12.560 --> 00:05:22.560
solid state drive today, that is a theoretical limit of 1.6 GB per second

00:05:19.680 --> 00:05:29.840
between our FPGA and our RAM here. That's as fast as a decent modern SSD

00:05:25.280 --> 00:05:32.240
and way faster than a hard drive. Well,

00:05:29.840 --> 00:05:35.280
SATA bottleneck notwithstanding. So, let's get the rest of these RAM sticks

00:05:33.680 --> 00:05:39.600
on here. Let's fire this thing up. All right. So, as you guys probably saw, I

00:05:37.520 --> 00:05:45.199
already had Windows fired up on this thing before we started. So, okay, just

00:05:43.120 --> 00:05:50.560
going to go ahead put all my RAM back into place. Let's throw this on the one

00:05:48.560 --> 00:05:55.520
accessible PCI slot we have on this board

00:05:52.880 --> 00:06:01.039
and fire it up. Well, that's curious. It's empty. No

00:05:58.560 --> 00:06:06.400
bootable device. So, our Gigabyte IRAM is showing up as

00:06:03.280 --> 00:06:08.880
our first boot device,

00:06:06.400 --> 00:06:15.759
but we failed to boot. My device that was full not half an hour

00:06:11.919 --> 00:06:20.000
ago is now empty. And there in lies the

00:06:15.759 --> 00:06:22.960
Achilles heel of the Gigabyte RAM. DRAM

00:06:20.000 --> 00:06:28.080
is what's known as volatile memory. So each cell on a memory chip, by the way,

00:06:25.520 --> 00:06:33.360
if you like this shirt, ltstore.com, is made up of a transistor and a capacitor.

00:06:30.960 --> 00:06:38.720
The transistor acts as a switch, and the capacitor either gets filled up with

00:06:35.520 --> 00:06:42.160
electrons, that's a one, or emptied of

00:06:38.720 --> 00:06:45.759
electrons, that's a zero. The problem is

00:06:42.160 --> 00:06:48.720
that if left alone with no power, all of

00:06:45.759 --> 00:06:56.319
the cells gradually lose their charge and zero out. No data left means no

00:06:53.360 --> 00:07:01.360
Windows boot. So, we should probably get Windows reinstalled.

00:06:58.319 --> 00:07:04.639
Going to use my super definitely genuine

00:07:01.360 --> 00:07:05.919
Windows XP CD here. Actually, that's not

00:07:04.639 --> 00:07:11.319
probably anymore. I have checked this. It does in fact have Windows XP on it.

00:07:07.840 --> 00:07:11.319
Can fix that.

00:07:20.319 --> 00:07:29.199
All right. So, here it is. Our whopping 4 GB of unpartitioned space. Now, you

00:07:26.319 --> 00:07:33.840
might wonder, why are you using Windows XP, Linus? And the reason is that it's

00:07:32.160 --> 00:07:39.199
actually the most recent version of Windows that will run on a 4 gig drive.

00:07:37.440 --> 00:07:44.160
I think I should even have about a gig left over when we're done here. All

00:07:41.520 --> 00:07:49.280
right. So, while that fires up, let's talk about what happened there.

00:07:47.440 --> 00:07:54.400
This was the first thing Brandon asked me about. This weird battery case

00:07:52.319 --> 00:08:01.199
looking thing over on the far right of the card. That is exactly what it is.

00:07:58.240 --> 00:08:06.800
And what it does is it takes the power that's being given to the card through

00:08:03.039 --> 00:08:10.000
the PCI slot and stores a little bit of

00:08:06.800 --> 00:08:12.560
it so that in the event that I turn off

00:08:10.000 --> 00:08:16.879
my computer, my operating system doesn't immediately

00:08:14.240 --> 00:08:21.919
disappear and I need to completely reinstall it and all my boot drive

00:08:19.440 --> 00:08:25.680
applications all over again. Now, it wasn't a perfect solution, and in fact,

00:08:23.680 --> 00:08:31.440
Gigabyte only rated it for, I think it was either 16 or 18 hours of power loss,

00:08:28.800 --> 00:08:36.479
but it did mean that in the event of an accidental power supply unplug or a

00:08:34.000 --> 00:08:41.599
short power outage, you weren't stuck starting fresh in Windows XP, you know,

00:08:39.200 --> 00:08:45.760
changing your uh I was always partial to the the chess pieces picture, you know,

00:08:43.760 --> 00:08:51.120
and all that good stuff. So, it's funny. I had actually intended to do some, you

00:08:49.120 --> 00:08:56.880
know, comparative benchmark testing between our IRAM and this old hard drive

00:08:54.240 --> 00:09:00.240
here. But what I realized is that once you've got the operating system

00:08:58.160 --> 00:09:07.360
installed on the IRAM, you've only got about I don't know 800 mgab of space

00:09:04.959 --> 00:09:12.880
left over. So there it's not really a whole lot to work with. Oh wow. And I

00:09:09.760 --> 00:09:15.200
just installed one game and it hit 365.

00:09:12.880 --> 00:09:19.600
Problem number two is even if we did want to do game loading times, for

00:09:16.800 --> 00:09:22.640
example, there's no Windows XP driver for the Titan XP graphics card. I have

00:09:21.360 --> 00:09:25.760
to go get another graphics card. You know what? They benchmarked it to death

00:09:24.399 --> 00:09:30.480
back when it was released. It's a little bit faster in terms of real world

00:09:27.920 --> 00:09:35.440
performance and a lot faster in terms of synthetic performance, particularly when

00:09:32.160 --> 00:09:38.959
it comes to random reads and writes. So

00:09:35.440 --> 00:09:42.399
you can see here we're at a right steady

00:09:38.959 --> 00:09:44.000
125 or so megabytes per second. Unlike a

00:09:42.399 --> 00:09:48.399
hard drive which would start at the outer edge of the platter like

00:09:45.920 --> 00:09:52.000
physically and then taper off in terms of performance as it makes its way to

00:09:50.240 --> 00:09:57.440
the data that's stored closer to the center.

00:09:54.160 --> 00:10:01.760
Not so here. And this is where things

00:09:57.440 --> 00:10:04.320
get really crazy. That access time

00:10:01.760 --> 00:10:09.440
literally 0.0c 0 milliseconds.

00:10:06.560 --> 00:10:13.760
Hard drives would be all over the place in here.

00:10:12.320 --> 00:10:19.680
Now, I'm just going to go ahead and restart. Oh, no. I turned it off.

00:10:17.200 --> 00:10:23.760
Actually, that's okay because as long as the power supply still has power, you

00:10:22.240 --> 00:10:28.640
can actually see there's an indicator LED here on the card. It's getting

00:10:26.399 --> 00:10:35.040
standby power off the slot and that's keeping the memory cells constantly

00:10:31.360 --> 00:10:37.760
refreshed so that they don't drain. But

00:10:35.040 --> 00:10:43.040
if I were to do this, it's gone. So, cool things about the

00:10:41.519 --> 00:10:47.760
IRAM. Really, really fast in spite of its

00:10:46.000 --> 00:10:52.640
interface bottleneck, especially compared to hardware that existed at the

00:10:50.000 --> 00:10:58.800
time. But its downfalls were of course the aforementioned interface bottleneck,

00:10:55.040 --> 00:11:01.360
the cludgy power loss resiliency, and

00:10:58.800 --> 00:11:05.360
the poor capacity. Because, you know, for sky's is the limit at any cost

00:11:03.680 --> 00:11:10.000
enthusiasts, something like this honestly doesn't

00:11:07.040 --> 00:11:16.560
even seem that crazy except that it was rated for 8 GB of maximum capacity. And

00:11:14.399 --> 00:11:22.000
practically speaking, there was actually no way to achieve that. Unbuffered DDR1

00:11:19.440 --> 00:11:28.880
DIMs only went up to 1 gig per stick. And while ECC server DDR1 memory modules

00:11:25.839 --> 00:11:31.600
were made in 2 gig capacities, this card

00:11:28.880 --> 00:11:35.839
has no support for ECC memory. And then the final nail in the coffin was, of

00:11:33.200 --> 00:11:40.640
course, that it was really expensive. If you had the memory lying around, and if

00:11:38.399 --> 00:11:46.399
you were way too lazy to just flip it on Craigslist, you could use that memory.

00:11:43.040 --> 00:11:50.320
But otherwise, at around $90 per stick

00:11:46.399 --> 00:11:52.880
at the time, you were looking at $500 to

00:11:50.320 --> 00:11:58.480
fully load this thing up. That is pretty steep for a five or at best 10second

00:11:56.240 --> 00:12:02.640
boot time or game loading time advantage. So, with the high cost and

00:12:00.560 --> 00:12:06.639
inconvenience as major factors, Gigabyte probably didn't make many more than the

00:12:04.240 --> 00:12:10.720
first thousand of these. But the IRAM was definitely a sign of the direction

00:12:09.040 --> 00:12:16.320
that computer storage was heading. In fact, Intel's Optane technology is a low

00:12:13.600 --> 00:12:20.399
latency solidstate storage tech that can now be found on memory modules just

00:12:19.040 --> 00:12:26.000
like, you know, they look just like these ones and used as a layer that goes

00:12:23.200 --> 00:12:31.680
in between conventional RAM and SSDs and servers with the added bonus of Optane

00:12:28.320 --> 00:12:33.360
being nonvolatile like an SSD. So, if

00:12:31.680 --> 00:12:36.959
you guys liked this video, maybe check out our explainer on Optane at the link

00:12:35.360 --> 00:12:41.200
below. Make sure you're subscribed so you don't miss our upcoming video

00:12:38.560 --> 00:12:44.000
checking out some cool SSDs from Liquid. Thanks for watching, guys. I hope you

00:12:42.480 --> 00:12:48.320
enjoyed this look at a really fascinating piece of retro technology as

00:12:45.920 --> 00:12:51.720
much as I did. I will see you guys in the next video.

00:12:59.920 --> 00:13:02.920
Colton.

00:13:12.240 --> 00:13:16.040
What? What the hell?
