IBM Promises More Memory In The Same Space
dcallaghan was among the many readers to write with news of IBM's announcement of new memory technology. The upshot seems to be on-the-fly compression in hardware, taking the tack of RamDoubler and other software compression utilities, but moving the actual data sqashing into dedicated (fast) chips. I hope this leaks out of "server only" land soon; I'd love to have 256MB for the price of 128 -- this would be especially nice with pricey notebook memory.
Ask yourself: how many people do you know that double their disk drives? Probably not very many, if any at all.
:-)
A few years ago that was all the rage. Now drives are cheap and large. I expect the same to happen with memory- with all the new technologies coming down the pipeline, would you really want to hassle with a "ram doubler"?
Even if it's in memory, you KNOW it's going to cause a bug in some program somewhere
Feel free to suck away my karma now, I don't think I'll be attempting it again now that i've made first post... heh
This has been a lame post for a really stupid reason. please moderate down.
--
Gonzo Granzeau
Gonzo Granzeau
"Nothing the god of biomechanics wouldn't let you into heaven for.." -Roy Batty
So the compressing is done on hardware, cool.
But since once compressed, we can't compress
them any further, does this mean that any
software compression to increase mem space is
no longer usable?
I like extra MB, but let's hope that they
actually increase the physical storage space instead of just increasing "logical" storage.
Mode (3) smart-aleck mode. Press * to return to main menu.
Since it is on the motherboard it would probably require support at the bios level. Also because it has its own caching system, it may only work with certain CPU chips, maybe, maybe not.
The key to its adoption is if IBM prices low enough it could take the wind out of RAMBUS's sails.
The speed could be slower than current ram, but if the compression chip is fastest enough, because the data is being read and wrote into the chip compressed it could effectively double ram transfer rates. The bottleneck would be the compression chip.
This would rock on the PC, where our bus speeds are slowly reaching 133mhz. If you could send the data compressed across the bus, that is.
Avoiding the low PC bus speeds are what 3D cards do best. You only upload the textures, and then you just send the vertices of the polygons across every time. Hell, some newer cards are even doing the calculations on some of the vertices once they've made the jump across the bus.
This also holds true for DVD decoders.
I wonder how viable hardware decompression is? Would it be a catch all solution for (low end) replacements for all these avert-the-PC-bus hardware cards? Admittedly, I'm not in touch with any relevant benchmarks to this sort of stuff these days.
This is kind of a tangent, but would there be any issues behind this if they were using, say, LZW compression? Yes, I now they're not. But if they did, would it be kosher? Would we be allowed to use it while still feeling ethically clean?
This is similar to an issue that popped up when RMS spoke in Cincinnati. Someone asked if it was ok to use Transmeta's chips if the conversion layer was proprietary. The answer was that he had not heard anything about it (it was a few days after they made their big announcement) but he guessed (I think) that it might be ok, since hardware costs money to distribute (while software does not). My memory may be slightly flawed on this; don't quote me on it.
As free software gains, we will start encountering this questions more often, with the original, simple principle of sharing software moving into a more general ethical realm dealing with intellectual property in general.
Friends don't let friends misuse the subjunctive.
Compression CANNOT guarantee anything better than 1:1 ratio - it is ENTIRELY dependent on the data.
For data compression in memory to succeed, you MUST have an option to cache the "extra" memory to a swapfile incase the prediction logic fails and you run out of physical ram. If you do not, you will tank your system, bigtime.
Sorry, but I'm very leery of any "memory compression" - it requires OS support to function. Period. You aren't going to just plug in a miracle DIMM and make it work. I hope IBM is opening the spec (it looks like they are) and that OS development people quickly embrace this, or their hardware will take a nosedive in the market.
IANAHardware Engineer, but it seems to me that RAM is already designed to do one simple thing (okay, two things: peek and poke) and to do it absolutely as fast as possible. This technology inevitably will degrade RAM performance by a finite amount. Is their chip fast enough that this degredation will be negligible? If so, then this will be Extremely Cool. If not, then no thanks, I'll just shell out for the extra RAM. Of course, the economics on a huge server with 100GB of RAM are most likely compeletely different.
Yo dawg, I heard you like the Ackermann function, so OH GOD OH GOD OH GOD
With increasing RAM prices due to the Rambus patents, this is a very well-timed announcement.
What's the world coming to? I heard this on the radio this morning before I got around to checking Slashdot. Amazing that this is radio-worthy...
"as memory comprises 40 to 70 percent of the cost of most NT-based server configurations"
That's because NT is bloatware. Now if everybody would run Linux, there would be no need for this technology, now would there..
I'm sorry, but I just had to post this.
Seeing as how more consumer video cards are coming with 32 and 64 megs of ram on board, is there anyway to use this as auxillary ram? I know the interface to it would be much slower than main memory, but it would still be magnitudes faster than a hard disk. If you could make it a ram drive, it could be a virtual swap drive that would run a heck of a lot faster than your hard disk. Seems like it would be a neat project.
There is only so much that you can work with, before you need to start throwing out the old paradigm. Silicon is dying so countless engineers develop life support for it, while claiming that things are fine.
.1 micron, you can't outrun the quantum boogeyman. Minimize, dis-consolidize, but realize that our future is not that of Silicon.
Parallel computing, genetic algorithms, and this will not solve the problem. they will only prolong the world's suffering to a time when people will have become used to Big Silicon. Then all of the Wunderkinds of the Valley will be too old to execute for gross negligence.
While this appears to be a good idea, we must understand that we can not grow too secure in silicon. When you get below
Pax Digitalia
Any real-time compression technology tends to make me want to run screaming down the hallway
This product does not promise to double your RAM, but "up to" doubling. Note that it says storage was doubled for "most applications".
On MicroSloth machines where 3/4 of the memory seems to store arrays of zeros, this could be useful. But the more memory-concious the programmer, the poorer the performance of the technology. In other words, I'm not impressed.
With the current problems of the SDRAM/RDRAM saga looming, I'm not sure if another compatibility issue is needed. This sounds like it sits on the motherboard, although the article doesn't quite specify this, producing yet another problem into the notoriously unreliable motherboard market.
At least for home PCs, I'm not seeing this as a real bonus, or a tech that we'll see for quite a while. The market should concentrate on getting a reliable, supported (and preferably non-licensed) RAM tech out and in full production. The more variants of ram being produced, the lower the supply of each one, and therefore higher costs for all.
tsf.
With the disk compression utilities, one of the biggest troubles is that the amount that can fit on the disk suddenly depends on the type of data. You get amazing compression rates if you are story textfiles, horrible ones if you are storing GIFs. (The most common compressed file when disk compression was all the rage.)
This will be similar. Suddenly the amount of memory an application uses is going to be less predictable. Perhaps this isn't much of an issue as with virtual memory, people are increasingly disconnected from application memory usage.
Because of virtual memory, this is likely to greatly improve the apparent speed of the system, at least in cases where memory is moderately tight. (<128 Meg on a windows box, for example). Disk access is something like three orders of magnitude slower than memory access. If compression avoids even a few page faults, the lower page-file requirements will more than make up for the extra time to compress.
The cake is a pie
I don't claim to know a damn thing about this memory technology, but what do they intend to do about the unpredictability of compression ratios? You'd end up with a different amount of RAM depending on the application... No thanks.
-John
To double the ram in his head was RamDoubler?
"Stop whining!" - Arnold, as Mr. Kimble
Strike 1: "IBM Memory eXpansion Technology" BiCapitalization is the first sign of bad tech - it means the marketing people got to it before engineering could get it out the door. It also boils down to yet another meaningless TLA to impress PHBs: MXT.
Strike 2: fake numbers. "as memory comprises 40 to 70 percent of the cost of most NT-based server configurations" Er, gee, not only is that an absurdly large error margin, but most servers cost, oh, we'll say $2000 and up. 40% of is $800. $800 of PC133 right now is about 640MB of RAM. Most systems in that price range have 256-384. Oops.
Strike 3: Stating the obvious "and millions of tiny transistors" Oh, and how else would you do it? An analog circuit, perhaps?!
Strike 4: Not promising: "The new technology is seamless to the end-user because the compressed data can be uncompressed in nanoseconds when needed." Call me a pessimist, but memory right now is around 6ns for PC133. Now, assuming a very conservative 2ns to decode the data, that's 8ns, which is a 25% performance hit. How many admins do you know that would take a 25% hit on performance on their servers to save a couple hundred bucks?
In short, this new tech is gonna tank.
Software compression in RAM, or on disk? Software compression on disk is, of course, unchanged. Compressed data structures in RAM will now bloat...so you will be penalized for using them. That is why I hate forced compression.
This kind of technology has been around for ages, and it's been sold commercially. Products like RamDoubler and the like were very popular during the 90's for exactly this reason.
I don't understand what's supposed to be unique about this technology.
sigs are a waste of space
Remember how for about a year or so manufacturers advertised that they were selling computers with 200Mb hard drives but when you looked in the small print it said "With XXX installed" where XXX was some disk 'doubler'? I guess we're going to get a year of companies misleadingly trying to sell 1/2 Gigabyte PCs claiming they're Gigabyte PCs. You have been warned!
--
-- SIGFPE
well, be prepared for the devil of details! Memory Expanders in hw are cool, but there must still be the hidden gotchas, like zipping a zip makes the file larger not smaller. Not to mention overhead, with additional operations needing to be executed this ram surely can't be faster. Though, I bet its faster than swap. ;)
kicking some CAD is a good thing
Now, here is a curious question. At what point does this actually save you money? For all we know this thing could cost more than what the average user would need to spend in order to double their ram. Heck, if this thing cost even $175 it wouldn't be worth it for me to buy it, yet.
This is great for server news but from what I have read, most of the people here seem to think this will be great for their PC. Maybe in a couple of years when we need more ram to do whatever we are doing or after the price goes down
Disclamer - Opinion of Person
This is so cool!
I think that Nintendo64 might do this too, as funny as that sounds. The data on the ROM cartridges is compressed, I know that much for sure. I'm pretty sure it's decompressed at real-time when it's accessed, but I don't remember if it's done by hardware or by software routines.
Can anyone verify this- whether the N64 does it hardware or software?
OtakuBooty.com: Smart, funny, sexy nerds.
However, what about heat/power problems? Does this chip use more power and/or generate more heat than the same amount of RAM? You'd have to be careful that you give yourself twice as much memory and half as much time to use it. On a desktop/server, of course, this wouldn't be a consideration.
Finally, I notice the article says the hardware-based memory compression is "10000 times faster than software-based solutions"... but no mention is made of how it compares in speed to actual RAM. Anybody got any details?
We need any compnay we can get to startexploring alternatives in memory technology. Whatever happens in the near future, if Rambus has its way, it really won't matter what platform you are using. RAM is gonna ream you either way.
So... IBM taking steps to look into and promote alternative memory technology will probably result in other companies doing the same, so that no one will have to pay implant prices for their silicon.
And... Welcome to the Rambus competition IBM! Really! I appreciate it!!
"This would rock on the PC, where our bus speeds are slowly reaching 133mhz. If you could send the data compressed across the bus, that is."
Maybe, but I'll bet there will be a fairly large impact on latency, with the overhead needed for compression/decompression. Bandwidth is more important for some kinds of memory-intensive applications, like database and photo/video editing stuff. But for everyday applications or games like Q3, the latency is going to knock your performance way down. It's one of the problems with Rambus, where the bandwidth improves but latency actually gets worse.
Looks like they are just adding a L3 cache, and than putting ramdoubler into hardware.
Of course, compressing/decompressing data in hardware very quickly (nanoseconds) is a lot better than being forced to go to swap (microseconds to milliseconds). Still, modern processors tend to take very big performance hits whenever a little bit of lag is introduced. The people at IBM aren't idiots though, and I suppose that keeping the lag down is what the L3 cache is for.
Hey, memory isn't cheap, but not that expensive. Who are they aiming for? People who don't use their computers much don't need this extra memory. People who need all the memory they can get either are working with large amounts of non-compressible data (huge files like graphics, archives, etc.) or people who would be worried if compression failed.
And I still don't know how this works. If I ask for n bytes, and the hardware allocates me n/2 bytes, what happens if I load something non-compressible? Something has to give.
Wouldn't touch this with the 10-foot stick I keep around for these purposes.
Avi
The article glosses over the performance penalty of using this hardware memory compression. I would venture to guess that the latency would increase on reads from decompression delays. The question is how much would this be? This is an important issue considering the targeted server market.
It seems that any performance penalty would be moot once the amount of stored data exceeded the true capacity of your memory. At this point the compression would be offering a real benefit by avoiding disk paging.
--Wiredlogic, Remembering Mac RAM compression (in SW)
I am becoming gerund, destroyer of verbs.
yes, it does mean software compression is moot. duh. also, it won't "double" your memory - god, how i hate that claim. such bullshit.
Call me a pessimist, but memory right now is around 6ns for PC133. Now, assuming a very conservative 2ns to decode the data, that's 8ns, which is a 25% performance hit.
Well, let's say that the stated 2:1 compression ratio is acheived. Now we're moving twice as much data in 133% of the time, which is a 33% performance gain. (2x the data in 8ns, equivalent to same data in 4ns, as compared to the original 6ns.) The break-even point for 2:1 compression is a 2:1 slowdown in performance. If the compression averages 1.5:1, then the performance must be no worse than 1.5x as slow in order to avoid degrading access time. Can the average performance cost ratio go below the average compression gain ratio, and actually increase performance? If not, then how close is tolerable? I'd say there's room for this technology to be of value, especially as stated in the article, in servers with enormous amounts of RAM.
Yo dawg, I heard you like the Ackermann function, so OH GOD OH GOD OH GOD
How much will it cost to implement this technology? WILL it be worth it?
Will rambus find a way to sue IBM and force them to pay royalties thus driving the price of this new technology past a cost effective point?
(i know it's not likely, but shit rambus is trying to fuck everyone over right now)
If my previous statement is false (and I hope it is) this COULD be good if rambus-ram stays at a high price level. It could leverege existing technologies against rambus and give the consumer a tool to fight corporate greed. (But intel seems to be forcing this down our throat)
It will be interesting to see what develops. Until then, i'm buying more ram for my machine(s) now before SDRAM becomes 'rambus-forced-expensive'
I use RAM because it's fast, if we didn't care about speed, we would all be writting to our hard drives and have about 2 megs of RAM and just use swap partitions for all of our memory needs. This won't last because, no matter how fast it is, it will be faster to write straight to the RAM.
Eh...
I can easily see more latency coming out of
RAM compression/decompression: you have to
actually do all the computation. However,
if the data coming across the memory bus is
compressed 50%, then you can get 2x throughput,
so that you can double your bandwidth at the
cost of some extra latency.
The big question is how bad is the latency? If
it is too bad, then performance will suffer. If
it is fast enough, then performance may
actually *increase*.
PeterM
Imagine the extra latency this creates added to the insane latency of RDRAM. This might have some nice applications, but not in the coming server market of Intel chipset based P-III Xeon mobos that need Rambus modules to avoid the problems that come from using SDRAM in RDRAM mobos. Talk about poor performance.
The upside is that, when combined with those nice upcoming DDR/Athlon servers, where an extra few nanoseconds won't be nearly as bad, this could be a decent option, if the data one is using can lends itself to compression well.
The downside is that we sure as hell can't expect to see this used to cut costs on high end video cards. Damn.
In this scene, the victim is persuaded to wear a large frog's head to a costume ball.
Of course, he doesn't know that the clasp is designed to slowly tighten over time, and cannot be opened...
Also, "chip-based compression" is probably already patented by the makers of Pringle's Potato Chips.
Practice random senselessness and act kind of beautiful.
I took a snippet from /proc/kcore and compressed it to see how well it would work.
/spare/mem
/spare/mem
dd if=/proc/kcore of=/spare/mem bs=1 count=1000000
that resulted in a chunk of kcore 1 million bytes long written to the file
bzip2 -9
that resulted in a file named mem.bz2 being 349791 bytes long.
This was on your typical RedHat system running the usual stuff.
If tits were wings it'd be flying around.
Well, let's say that the stated 2:1 compression ratio is acheived. Now we're moving twice as much data in 133% of the time, which is a 33% performance gain
No it is not, you are not moving twice as much
data.
The data rate is still the same. what has increased
is the total amount of memory.
the interface from memory to cpu is still the
same, (or has IBM doubled the bus of the Pentium? also).
Now the question is what is more important to you
total ram size, or the increased latency of memory.
(latency not bandwidth as the first poster was also wrong).
What I was saying, is that I want my memory fast, if it could take all day to write... I would write to swap, but since it can't take all day, I write to RAM, therefore, I don't want to write it to swap, therefore, I use fast memory, and wouldn't compress it, because this will take up time, and make the system slower. I don't need to rethink my position, since what I am saying is, I use RAM, because it is fast, I don't use virtual memory (when avoidable) because it is slow. Why would I want slow memory? Get it?
Eh...
a rule-of-thumb i recall from that era was something along the lines of: 'software solutions to hardware problems are impractical'.
the fact that they do the compression in hardware may have some merit. so i did a bit of testing; i checked the sizes of
on my 32mb box: (4944k used, not counting cache)
on my 192mb box: (144872k used, not counting cache)
figures are probably quite skewed, since the core image was not a snapshot. but it looks like the actual used memory compresses better then the bit-soup that is in the dimms when the system powers up.
who knows... maybe ibm has a few tricks up their sleeves. be interesting to see some linux source to deal with these beasts... i'm assuming that it's os-dependent, and since ibm has been great about linux lately, i'd think they would release whatever kernel patches would be necessary to use these things.
--
I am interested in how big a block of memory this stuff operates on. Compressing a few K at a time, such as a disk block, may be big enough to win, but compressing a 128-bit cache line almost certainly loses. Where's the breakeven point? The hope of this technology is that if you stick it way out in L3 cache, you're usually hauling big enough chunks at a time that the decompression latency for getting the first byte is made up for by the bandwidth of getting the rest of the bytes from a smaller amount of memory.
Help, help, I'm being compressed!
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Is a caching system. From the article:
MXT is a hardware implementation that automatically stores frequently accessed data and instructions close to a computer's microprocessors so they can be accessed immediately -- significantly improving performance. Less frequently accessed data and instructions are compressed and stored in memory instead of on a disk -- increasing memory capacity by a factor of two or more.
Note two things: They are not compressing everything. They are not replacing the actual memory.
Most of the criticisms here are based on misunderstandings of those two things.
(Note that I'm guiltless. I posted a number of times before getting around to read it.)
The cake is a pie
Hey, thanks for not being able to understand what the FAQ said. This brings up a valid point, which is that so many FAQs are just unreadable to the general viewing, hairy-palmed, public.
So, this leads us to an intuitively obvious suggestion reguarding the moderation system: it can be totally done away with, if only a similarly obscure and inscrutable document must be read and irritatingly followed to allow access to slashdot. The instructions should clearly include several mathematical formulae, at least ten words with four or more syllables, and a few misdirections for good measure. That should keep us good and clean.
-- They were frivolous and often danced on the roof. --
No, a file server for your department doesn't need moby RAM. But a large web server or a enterprise-sized database server both win by using lots of RAM to cache data, because RAM really has a few orders of magnitude faster throughput than disk drives, and the latency is much lower which makes a lot of difference for databases. Even a few years ago, it made sense to toss a GB of RAM into a database server, and now that that's only $1000 or so, it usually makes sense to buy more.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Seems like if the codec hardware is "low power" compared to the RAM you might save, not to mention packaging space, that this technology might have some valid uses in laptops and other portables. This is doubly true considering the slower nature of most laptop hard drives and thus their page file.
Bryan Baskin
Wouldn't work. Someone would leak a simplified version.
No it is not, you are not moving twice as much data. The data rate is still the same. what has increased is the total amount of memory.
Actually, my original post is correct. Since the RAM latency we're talking about is on the back end of the RAM-doubling chip, we're only moving half (or whatever fraction) of the data to the physical RAM. You are correct that we're still moving the same amount of data over the bus, but the bus is not where the latency lies.
Yo dawg, I heard you like the Ackermann function, so OH GOD OH GOD OH GOD
When an OS runs short on RAM, maybe it should first attempt to compress LRU pages. Only once some threshold percentage of RAM is compressed, would it start swapping, and obviously the first pages to be swapped out will be the ones that are compressed, so you get more pages out to disk in a given time.
Although compressing pages when there are few CPU cycles to spare may not a good idea, often when a machine starts to swap, CPU utilization drops so there would be cycles to spare. Remember that swapping a single page can cost millions of CPU instructions. If you can compress/decompress a page in fewer instructions, it might be worth it. Hardware accellerated compression would be nice, but maybe not needed.
For fast compression, see: http://wildsau.idv.uni-linz.ac.at/mf x/lzo.html.
A recent announcement from IBM mentioned here on /. was that they were coming out with microdrives with 512 MB and 1GB capacities.
Several posts have pointed out how there are many cases where compressing pre-compressed data ends up using more space; but let's try looking at it from the other side... what applications could most benefit from this technology?
Actually, the speed of theram is less of an issue these days.
Consider the typcial desktop PC:
It will have: an L1 cache right next ot the processor - fastest ram.
L2 Cache somewhere very close, bigger, not quite as fast, but slightly cheaper.
DRAM's: Slower still, but still pretty fast, relativly cheap
Hard drive (Virtual memory): Slowest (realistacally, yes, you _could_ use a floppy as virtual), cheapest.
All this would do would be to give another layer inbetween the main DRAM's and the hard drive. With an appropriate caching and paging algorithm, this could be made _almost_ as useful as ordinary DRAM on a MB for MB ratio, provided only some of it is compressed.
For example, you might have the kernel store a process that is used once every second in the compressed ram, rather than the main DRAM. And so on.
That glances over the point entirely, when what I was saying was that faster RAM == BETTER RAM, and you know it.
Eh...
RAM compression isn't going to deliver compression ratios as good as stream oriented algorithms like deflate and bzip2, because it has to be random-access and the compressor doesn't have as much context to look at.
But as you pointed out, memory tends to be pretty compressible because of the significant redundancy.
Maybe I'm remembering wrong, but wasn't it that RAM doubling product which didn't do anything? It had dials and stuff and claimed that it increased your memory, but it didn't do ANYTHING. Or maybe they've come up with doublers that work now. Has there ever been a successful memory compression program?
Bias Disclaimer: I think that predominantly transparent compression of a large storage area rocks. I'm also a huge fan of decicated hardware accelleration. Thus I think this is the sort of cool idea I'd want regardless of whether or not it actually works.
That said, this should provide some performance increase to any system with a swap file, like my little portable (not that it can be retro-fitted) - but I would like to know how the OS will deal with a variable memory size...
I wonder if this could be implimented in software for older hardware where the software compresion overhead is still faster than swap! Just make a ramdisk and do compressed writes and reads.
While compression cannot guarantee anything better than a 1:1 ratio (note change in emphasis), the system IBM has outlined does not require it.
What IBM is proposing is nothing more than a compressed-RAM disk-cache, in combination with a LRU memory cache for frequently used data. If the compression fails, at worst all you have done is to put an unnecessary step into saving your data to disk. It doesn't require OS support to work, or even the OS to know about it.
This also has been done before by various disk-controller manufacturers. I'm afraid this probably won't keep IBM from trying to patent the entire technique tho :-(
Power consumption can actually drop if the codec logic is placed directly on the DRAMs and chipset, such that only compressed data goes over the system bus. Pushing signals on off-chip busses takes a good amount of juice, and having 1/2 the number of DRAM chips adding parasitics to the memory busses helps a lot too...
-nh4no3
You always turn it off on your modem then? I'm no hardware guru but the obvious implementation to me would be to tag the pages like a cache. You only need to add 1 'uncompressed' bit per page, and you can keep that separately from the bulk memory. And a lot of the time, unless you are just moving the bits around, you will have the data uncompressed in memory anyway.
I think a lot of people here are getting hangups over various nontransparent software compression schemes they have used in the past on DOS.
I'm waiting for the next post: data caches are an awful idea. Cache thrashing means that worst case, they work worse than plain old memory. Let's keep our machines simple and build them all with flat, fast memory like a Cray.
Look at current trends in computing: hardware RAID use is growing, graphics cards are getting more complex, Gigabit NICs often implement IP checksumming in hardware. The future's here, and it's in custom silicon!
Seifert's law of networking also applies here: 'design for the typical case, not the worst case.'
One of the most common drawbacks of pocket mp3 players is their lack of storage. Maybe this will help, but then again mp3 files are already highly compressed.
Only the State obtains its revenue by coercion. - Murray Rothbard
I recall a story from Tom's (or Anandtech, or one of those), the newer "annihilator" drivers are supposedly already doing something like this. (it was a beta win '98 driver that was mistakenly released/leaked by NVidea, if I recall correctly)
In 3D games, one of the biggest problems is moving the textures in and out of the cards' memory rapidly enough.
By compressing the textures before moving them around, the driver boosts both the usable texture size and effective bus speed.
What was most interesting was that the overhead of compressing/decompressing the data was more than compensated for by the increase in speed that data that could be pushed over the AGP bus.
So, once again, we see a sitation where gaming (and game programmers) is/are pushing the edge of the envelope.
The apps that would get the greatest benefit, are those that have the least entropy in the memory they use. It wouldn't be very good for anything that's manipulating real-world data like sound and image files, but it would probably be beneficial for text editors, spreadsheets, databases and the like. -jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
You are forgetting how expensive running out of memory is. Yes, a 25% performance hit is significant. But the memory equation is the following:
They are lowering the Miss Rate and increasing the Hit Time. This should effectively lower the Average Access Time IF they have lowered the miss rate significantly, which they have IF you are running (for example) a gigantic database and it doesn't fit entirely in RAM.
Remember, the Miss Penalty from RAM to Hard Disk is ENORMOUS, measured in milliseconds, not nanoseconds, so, suppose you can lower your miss rate from .01% to .005%, and the miss penalty is 1 ms.
Hence (note 1ms = 1 X 10^6 ns):
If they figured out a way to efficiently and transparently compress pages without nailing performance and cost (internal/external fragmentation problems, lots of on-chip ram in the codec to hold data structures...), I would be a lot more impressed. I also want to know how much control is given to the OS for partitioning memory between paging space and buffer space for the codec, very important in estimating the exact effects on the OS/HW. I'm eagerly waiting the benchmarks/details.
-nh4no3
So, which one do you call the pecker?
--
--
The geeks shall inherit the earth.
A good way to get a quick feel for this is to look at portable MP3 players v's playing MP3s on a WinCE/PocketPC unit. A dedicated MP3 player gives you 64-96MB of RAM for around US$300. A WinCE/PPC unit that can play MP3s will typically cost US$600-$1000 and only include 16MB-32MB. And the battery life is 12hours v's 3 or less.
The driver will probably disable OS built-in disk caching, and install some interrupt handlers to grow and shrink the cache, do replacement policy, etc, when things start to thrash.
If true, then the codec will not increase memory latency, but it will steal bus cycles somewhere, but since the OS itself no longer caches the disk, probably not more cycles than before. There will be an increase in disk latency, but again since the OS caching step is eliminated, no additional latency is incurred. Not like this really matters.
-nh4no3
FAWKING DSL!!!!!!!!!!!!!!!! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. ! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. ! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. ! Lameness filter encountered. Post aborted. Ascii art. How creative. Not here though. !!!!!!!!!!!!!!!!!!!!!!!!!!
............ no.
It's not just the new drivers from nVidia. What nVidia does is DXTC (DirectX texture compression) which is a form of S3TC (S3 texture compression.) 3DFx is doing this to with FXT1 (I think that's right)
A deep unwavering belief is a sure sign you're missing something...
I was under the impression that ram doubler was/is a replacement for the virtual memory on macs. What are you talking about? is there another one?
mmap() a large encrypted file. Start decrypting.
When you do that in the background the OS will have to start paging in the encrypted file. It will stay in memory until that memory is needed for something else. But the encrypted file is a worst case scenario for the compression algorithm.
If someone has an encrypted filesystem this will actually be an extremely common case!
Really, your "Oh we will never hit that in the real world" is exactly how programmers f*ck up time after time again. You may not see how it will happen, but it will happen eventually and people will get hosed.
Deal with your corner cases before turning your code lose on the world, please.
Regards,
Ben
My usual seat in the cluetrain is at A HREF="http://pub4.ezboard.com/biwethey.ht
I know u posted an offtopic question, but IIRC the article mentions the doubling of 84GByte of ram. This is much more than the sum of all the memory in an average pc. So don't worry about a lame 64Mbyte ram on your videocard. It will be quite a while before ram-doubling will be economically interesting for those small amounts.
IBM has lots of experience with ram / dasd doubling on their mainframes. Keeping that in mind I have great confidence in them pulling this off.
And yes, if this ever comes to the desktop, then you could also have 4GBytes ram for the price of 2. 'Cause by the time it arrives, 2GByte of ram will be the feasible for the average PC.
---
---
"Multiple exclamation marks are a sure sign of a sick mind." (Terry Pratchett)
Strike 4: Not promising: "The new technology is seamless to the end-user because the compressed data can be uncompressed in nanoseconds when needed." Call me a pessimist, but memory right now is around 6ns for PC133. Now, assuming a very conservative 2ns to decode the data, that's 8ns, which is a 25% performance hit
What y'all seem to be missing is that the article mentions one other technique. It caches the most frequently asked words, uncompressed, at the front of the memory lane. Thus creating another level of caching.
This would mean that those 2ns (if that really is the right number) would on average be much shorter.
Ofcourse, the OS implications could be quite considerable, but others have talked about that angle quite lenghty.
Arjan Bos
---
---
"Multiple exclamation marks are a sure sign of a sick mind." (Terry Pratchett)
I'm sure everyone here is impressed by your vast Karma. Not to mention the courage to take responsibility for a poinless first post - after you were sure it was first.
One of the arguments for using software disk compression back in the day was that it would increase transfer rates. It was faster to move less data across the disk bus and then process it with a fast processor than it was to move the uncompressed data directly to memory.
1) How true was this claim, and if it was true, why isn't it still true?
2) Will the same effect be apparent in harware memory compression? Furthermore, would more performance be seen if the compressor was moved onto the processor so that not as much data had to be moved across the memory bus?
Aah, change is good. -- Rafiki
Yeah, but it ain't easy. -- Simba
I hate to be the bearer of bad news, but any scheme that would "compress the data on the fly" means one thing and one thing only, you're going to suffer a perofrmance hit in order for this method to "double your memory".
I would imagine that this hit is no small potato when you consider the fact that memory is increasingly pushing the speed barrier forcing cycle times to become smaller and smaller. Now imagine running additional compression overhead on top of that and you're back to a much larger cycle time (anyone remember 80ns SIMMS?)
I would be weary of anything that promises to provide 2x the performance and neglects to mention the associated performance hit. Now, this necessarily won't be a big deal for people on the desktop, but IBM is marketing this for servers. Last time I checked, a server is usually stretched to its limits under worst case scenarios and normally runs with reserve resources in anticipation of the worst case scenario. Adding additional overhead does not make sense from a hardware-savings perspective because:
a. You now *may* have to buy another server to meet your requirements.
b. You very well might be cheaper buying memory upgrades than installing additional servers (although who knows how much memory will cost when the RAMBUS fiasco subsides =)
Much for the same reason we design computers with a hierarchical memory system using caches and the like is to avoid throwing things to devices which are orders of magnitude slower (like hard disks)
Why willingly slow down your fastest storage (memory) in order to double it? (in the context of servers and high load application, desktop is another story)
yeah, what he said!
I haven't had a look at the press release, only the AP article. The one place this would be useful is in the 2nd or 3rd level cache. If you can compress fast enough then the extra size of the cache would come in handy.
The reason why this technique would work on a cache but I can't see how it would work on main memory is that you don't ever see the cache, so you never make assumptions about how large it will be. So the encrypted data sitting in the cache fills it up after 1 Meg, while the empty matrix full of zero can have almost 4 Megs cached.
Cache is transparent, so you can never be bitten by it changing logical size on you. Unlike main memory.
For main memory, like sig11 points out, the OS will make assumptions that it can store exactly that much info. And since the hardware has no provisions for asking the OS to page out memory (and has no business asking, either) eventually havock will be wrought.
So I'm strongly suspecting that this will turn out to be used for 3rd or 4th level cache.
There was a PC product that didn't do anything (don't remember the publisher). I believe there was at least one PC programs that did do something. Ram Doubler for the Mac was a very effective program (largely because of the odd way the Mac organized its memory).
Just junk food for thought...
Who cares if you put memory compression on a separate chip? What's the advantage between that and buying more memory or better hardware? It seems to me that it's just another IBM scheme to try and hook more ppl onto their hardware, where then can then turn around and eek more money out of you to buy more of their hardware and compression chips and then charge more $$ for their support on how to code to the chips/etc .. am I the only one who sees this?