18th February 2006, 1:53 PM
(This post was last modified: 18th February 2006, 2:39 PM by A Black Falcon.)
RAM-related tech specs for the N64 and GC (ignoring stuff like CPU-to-GPU speeds, the precise design of the architecture, etc)
For the N64 specifically: (Wikipedia)
That means that the N64's RDRAM has a long access time, but as you read continuously it gets faster... as the interview below shows though, that's not the best for gaming. Still, it's very fast RAM (that is a feature of RDRAM, high speed... 500MHz here.)...
(ie it takes 60-90 nanoseconds to access the RAM, but once accessed you have a very fast connection for the time -- over 500 MB/s (with 4 or 8 megs of ram...).)
Note that the PS2 also uses RDRAM.
Gamecube: (Nintendo.com)
Note that the DRAM is very slow, and that's why it is "A-Memory" - auxiliary, for things that do not require speed (audio, perhaps cache, etc). The 1T-SRAM is faster, but its distinguishing feature is its very short access times, not its speed -- that stated 5-10nanosecond time.
Ah, there we go, this site says the 1T-SRAM's clock speed is 324MHz. Multiplied by the 64-bit bus, you get the stated 2.6GB/s transfer speed.
http://www.segatech.com/gamecube/overview/
Also, this interview is very interesting...
http://www.chip.de/c1_forum/thread.html?...did=156070
That is, for the Gamecube, the main RAM has very fast access -- 10 nanoseconds at most. The actual speed is a 324MHz connection over a 64-bit bus, or 2.6GB/s (that is how much data you can transfer per second...) on the main 24MBs of RAM... and 81MB/s on an 8-bit bus for the 16MBs of DRAM. You don't need to understand everything (I don't quite, and am not certain that I'm using the numbers completely correctly here...) to see the obvious difference in speed between them.
Anway, um, how would RAM through USB work... yeah, I don't know... the connection would be through that 57MB/s USB link. I guess (not certain, just my best guess) that that number is the one you'd compare to the DRAM's 81MB/s or the 1T-SRAM's 2.6GB/s or the N64's 562MB/s, and either way it appears to be slower than even the DRAM (though if I'm analyzing this wrong, as I could be, that might be wrong).
That leaves out one big part though: What is the access speed? What access speeds could RAM through USB have?
I know hard drives can be done through USB access, but that they are a bit slower than HDDs accessed through within your system -- I'd imagine the same is true for RAM, since RAM on the system can be directly connected with a short, fast link while RAM through USB has to go through that, which definitely seems to be slower.
For the N64 specifically: (Wikipedia)
Quote:#I think that '640ns' might actually supposed to be '64ns', because elsewhere I read that the N64's latency is '60 to 90 nanoseconds'. The Wikipedia article seems quite clear about it though, so I'm not sure... it's not really that important though.
*
# RAM: 4MB RDRAM (upgradeable to 8MB with 4MB Expansion Pak)
* Bandwidth: 562.5 MB/s
* Data path: Custom 9-bit Rambus at 500 MHz (max)
* Poor RAM latency. 64 clocks for a read (approx. 640ns)
That means that the N64's RDRAM has a long access time, but as you read continuously it gets faster... as the interview below shows though, that's not the best for gaming. Still, it's very fast RAM (that is a feature of RDRAM, high speed... 500MHz here.)...
(ie it takes 60-90 nanoseconds to access the RAM, but once accessed you have a very fast connection for the time -- over 500 MB/s (with 4 or 8 megs of ram...).)
Note that the PS2 also uses RDRAM.
Gamecube: (Nintendo.com)
Quote:#The A-Memory bandwidth is 81MB/second.
# System Memory : 40MB
# Main Memory : 24 MB MoSys 1T-SRAM, Approximately 10ns Sustainable Latency
# A-Memory : 16MB (81MHz DRAM)
#
# Main memory bandwidth : 2.6GB/second (Peak)
Note that the DRAM is very slow, and that's why it is "A-Memory" - auxiliary, for things that do not require speed (audio, perhaps cache, etc). The 1T-SRAM is faster, but its distinguishing feature is its very short access times, not its speed -- that stated 5-10nanosecond time.
Ah, there we go, this site says the 1T-SRAM's clock speed is 324MHz. Multiplied by the 64-bit bus, you get the stated 2.6GB/s transfer speed.
http://www.segatech.com/gamecube/overview/
Also, this interview is very interesting...
http://www.chip.de/c1_forum/thread.html?...did=156070
Quote:How will these systems feel about
the new Gamecube in one years' time?
Q: What is the reasoning behind connecting memory directly to the video chip?
A: Nintendo figured that incorporating a larger CPU cache would reduce the number of memory accesses the graphic chip requires. We also wanted to do everything we can to reduce CPU burden caused by graphics .
Q: What sort of results does this bring?
A: Well, to put it as simply as I can, the main worry is textures, or 2D images mapped onto polygons. These textures normally have to be in the video chip's memory to be displayed. Every game machine, including the Nintendo 64, is like this. The problem is that video memories are usually pretty small. The Nintendo 64 had only 4KB, and even the Gamecube only has 1MB. Because of that, operations ingame that require textures to be switched frequently can't be processed quickly enough. On the N64, you had to call the CPU to read textures into video memory, but the Gamecube's video chip can access textures directly from main memory without bothering the CPU. You could call it a kind of virtual texture memory. Thanks to this memory, the Gamecube can handle lots of textures easily with zero performance drop.
Q: A virtual memory for textures?
A: Right. This memory was one of the first things we tackled during development, since that was what we received the most feedback about from N64 developers. It was a difficult issue to deal with on a technical level.
Q: Is this memory why the Gamecube is easier to work on?
A: It's one of the main reasons. Still, making software easier to create isn't a matter of finding one problem and solving it, but going through every major obstacle and quashing them all, one by one. If we didn't pay attention to everything, there'd still be little snags left behind to make things harder. We really worked hard to solve all these problems this time around. I'd say the texture data problem was about number two or three on our list.
Q: There were other matters to deal with.
A: Right. Memory issues were still top on our list, though.
Q: Like, for example, how the main memory buffers textures by itself, but the Flipper video chip also has an onboard memory of its own.
A: You're talking about the video RAM. The PS2 uses DRAM in the graphic chip, too. The trend in video-chip technology these days is to incorporate a very wide bus connection between chip and onboard memory; this allows parallel processing of data and gets around memory bottlenecks for higher speed. Putting RAM in the chip is the best way to get this large-scale parallel connection.
Q: So the Gamecube's video memory arrangement resembles the PS2's?
A: It shares a few points with the PS2, but we're coming at it from a different approach, so it's not at all a similar design.
Q: What are some of the differences, then?
A: Well, on more general terms, the main difference between the Gamecube and the PS2 is that during development we stuck exclusively to features necessary for games. The concept of the PS2 is to let coders do anything they could possibly want to do; ours is offer high performance, easy development and the ability to concentrate more on creative matters. We know from experience what kind of platform we need, and we included onboard video memory and parallel processing features simply because we thought that's what the games require. I think that's a far different approach from the one PS2 is taking.
Q: Is the main memory designed to speed up memory access as well?
A: Splash, the Gamecube's main memory, uses 1T-SRAM from MoSys. It's a very specialized chip.
Q: 1T-SRAM?
A: That's one-transistor SRAM. Memory latency [the time between memory request and reception of data] has become a major bottleneck in data processing, and 1T-SRAM solves that bottleneck. It's both low-cost and low-latency.
Q: What made you decide to use that memory?
A: That was just another technology Takeda found after looking around. Actually, I believe the RDRAM from Rambus that's becoming standard in PCs today was first used mass-market by Takeda for the Nintendo 64. After using the N64 and studying what kind of memory is best suited to the needs of a game machine, we decided that 1T-SRAM is the best choice.
Q: How is 1T-SRAM better suited for consoles?
A: There's a major difference in random-access time between RDRAM and 1T-SRAM. RDRAM's most distinctive feature is that the first read from memory is very latent, but if you read in a lot of consecutive data at once, the latency gradually shrinks down. The problem is, games access memory very haphazardly, reading little fragments here and there again and again. The merits of RDRAM aren't geared towards this type of usage. A typical memory wait is a few dozen nanoseconds, and on a 480MHz processor or a 160MHz video chip that's a few dozen cycles wasted waiting for memory.
Q: So memory latency can downgrade console performance.
A: Exactly. CPU pipelines have made huge advances, and chips are clocked to run faster and faster, so now memory is the main factor which dictates how fast the entire machine runs. With 1T-SRAM, though, it uses SRAM so reading and writing data is a lot faster generally. It's about ten times faster than using DRAM, so the processor only has to wait a tenth of the time... or, really, not at all, usually. 1T-SRAM is absolutely perfect for game systems. You could almost say the Gamecube doesn't have a main memory -- it just has a giant level-3 cache.
Q: The whole memory's a cache?
A: Right. The memory in Flipper is 1T-SRAM as well, to make the memory system go as fast as possible. Games access random parts of memory for textures all the time, so this gives us a major edge over the DRAM used in the PS2. The 1T-SRAM is probably the most distinctive feature of the Gamecube, actually.
Q: There's also something called A Memory in the specs.
A: That's short for auxiliary memory; it's a regular synchronized DRAM. We couldn't use more than 24MB of 1T-SRAM from a board-area perspective, so we put this extra RAM in as a kind of temporary storage area. We used to call it "audio memory", but then the sound guys would want it all for themselves, so we changed it to "A Memory" (laughs).
Q: What sort of things would the A memory be used for?
A: A sample buffer, an animation bufer, a disc cache; pretty much anything.
Q: You've devoted a lot of work to RAM here.
A: We have, and we're getting just as much out of it too. Especially in graphics. If it wasn't for 1T-SRAM we'd never be able to test out the idea of virtual texture RAM. We'd just have to use textures without any tuning, processing speed would've gone down, and the whole machine would have been slower. We couldn't have tried it without these very high speed, very low latency chips. Thanks to that, you can get fabulous performance without devoting so much time to optimization. It makes development far more efficient.
Q: Do you perform any texture compression?
A: Definitely. The Gamecube is a hundred times better graphics-wise than the N64, but only has six times as much memory. We needed to do something about this, or else none of this performance would be accessible. We're using S3TC [S3 Compression Technology] to compress textures, as well as some vector compression technology.
Q: What does this do?
A: S3TC compression technology allows you to compress a full-color picture to four bits per dot. It's the same technology used in DirectX. Basically it compresses to about 25% of the original size. Some people claim it's more like 16%, but I think 25% is closer.
Q: What about vector compression?
A: 3D model vectors are usually stored in RAM as 32-bit floating point decimal numbers, but the Gamecube can also store data in 8- and 16-bit integer form. Using vector compression, you can convert these 8- and 16-bit numbers into 32-bit vectors automatically. It's great for memory conservation when all you need is 8- or 16-bit precision, and having less data to deal with also makes memory operations faster. There are a few other advantages, but those are the major ones. Basically we've been trying our best to compact data down and reduce memory burden as much as possible.
Q: Was this vector compression developed by Nintendo themselves?
A: I believe so. I haven't heard much about this elsewhere.
That is, for the Gamecube, the main RAM has very fast access -- 10 nanoseconds at most. The actual speed is a 324MHz connection over a 64-bit bus, or 2.6GB/s (that is how much data you can transfer per second...) on the main 24MBs of RAM... and 81MB/s on an 8-bit bus for the 16MBs of DRAM. You don't need to understand everything (I don't quite, and am not certain that I'm using the numbers completely correctly here...) to see the obvious difference in speed between them.
Anway, um, how would RAM through USB work... yeah, I don't know... the connection would be through that 57MB/s USB link. I guess (not certain, just my best guess) that that number is the one you'd compare to the DRAM's 81MB/s or the 1T-SRAM's 2.6GB/s or the N64's 562MB/s, and either way it appears to be slower than even the DRAM (though if I'm analyzing this wrong, as I could be, that might be wrong).
That leaves out one big part though: What is the access speed? What access speeds could RAM through USB have?
I know hard drives can be done through USB access, but that they are a bit slower than HDDs accessed through within your system -- I'd imagine the same is true for RAM, since RAM on the system can be directly connected with a short, fast link while RAM through USB has to go through that, which definitely seems to be slower.