2

I'm trying to learn about the protocols busses use in computer engineering and so far I've learned about the CAN bus protocol, where you can even watch traffic on the busses with wireshark, but this is typically used in cars and some micro-chips. Next I want to learn about the equivalent to that protocol for busses on a computer, specifically the one connected to RAM if there are multiple. What's the protocol or "type" of bus called? If there are many different bus types used on different motherboard architectures, I would also like to know a basic list of which different bus types are used, or at least what terms or manuals I can use to find out.

J.Todd
  • 223
  • 2
  • 8
  • 4
    Most main memory on a motherboard nowadays is some form of Synchronous Dynamic Random Access Memory, or SDRAM. Here is nice overview of that memory - https://www.microcontrollertips.com/understanding-ddr-sdram-faq/. You probably should start here, then dig into the details of the protocols used to access the memory. – SteveSh Sep 04 '21 at 18:18
  • @SteveSh I already knew what DDR4 was and about the clock cycle and those basics, that unfortunately doesn't give me a search term for figuring out how it interfaces with the motherboard. Is it not a bus protocol similar to CAN, with frames transferred like a network? Some completely different protocol? – J.Todd Sep 04 '21 at 18:47
  • It's completely different from CAN. – SteveSh Sep 04 '21 at 19:12
  • @SteveSh So is the protocol for the bus interaction included in the spec for DDR4? – J.Todd Sep 04 '21 at 19:15
  • 1
    @J.Todd You can open up a datasheet of a DDR4 memory module like https://www.samsung.com/semiconductor/global.semi/file/resource/2017/11/DS_DDR3_4Gb_D_die_RDIMM_Rev06-0.pdf or a DDR4 memory chip like https://www.micron.com/-/media/client/global/documents/products/data-sheet/dram/ddr4/8gb_ddr4_sdram.pdf . These chips are extremely complex, the datasheet is only about 400 pages long. – Justme Sep 04 '21 at 19:56
  • 6
    No, the DDR4 interface IS the protocol. Read the datasheet for any compatible DDR4 memory IC : I recommend Micron's datasheets. (the IC datasheet will be more thorough than a DIMM datasheet. –  Sep 04 '21 at 19:57
  • 2
    Not to split hairs, but the DDR interface is more than just the protocol. The complete interface [spec] also includes voltage levels, signals (clock, cmd, address, data strobes, etc) and the timing relationship between those signals. The protocol is just a part of the interface definition. – SteveSh Sep 05 '21 at 00:27

2 Answers2

7

Some form of DRAM protocol is used. These are defined and maintained by the members of an industry organization called JEDEC, and a number of versions have evolved over time to keep pace with increasing performance.

Common ones in use for DRAM now include:

  • DDR3, DDR4 for desktop main memory
  • LPDDR3/4 for mobile / laptop
  • GDDR5 for graphics
  • Hyperbus or Xccela for embedded systems

Generally, the DDRx type use separate address / data buses, and use a pin-reduced row+column address scheme. Besides the protocol, JEDEC also defines form factors and pinouts for both individual chips and multi chip modules like DIMMs.

What does ‘DDR’ mean, besides an arcade game? It stands for Double Data Rate, which means that data are transferred on both clock edges. DDR is a synchronous (clocked) DRAM, so it’s called, in full, a DDRx SDRAM (x being the generation.)

This distinguishes DDR from earlier, single-data rate (SDR) SDRAM protocols, and from even earlier asynchronous DRAMs which had no clock, only control signals.

Hyperbus/Xccela are relatively new, targeting embedded systems and vertical markets like automotive. They share address and data on the same pins. Both are descendants of 8-bit SPI, and like DDR also use a double-edge clock to increase throughput. Hyperbus is a JEDEC standard, Xccela is not, although it leads in market share. They are very similar, but not 100% compatible.

There are serial DRAM bus schemes that use high-speed serial/deserializer (SERDES) connections instead of parallel data. One such scheme, called Hybrid Memory Cube, (HMC) combines stacked DRAM die with SERDES links to achieve both high density and throughput. So far it hasn’t gained market traction compared to a competing non-SERDES stacked-die technology called High Bandwidth Memory (HBM), but work continues given renewed interest in HMC in for bandwidth-intensive applications like AI. More here: https://www.eetimes.com/hbm-flourishes-but-hmc-lives/

Nonvolatile memories use these main interfaces now:

  • SPI for low-level NOR boot code
  • eMMC for bulk NAND flash
  • PCIe (NVM Express) or SATA for larger arrays like M.2 cards
hacktastical
  • 53,912
  • 2
  • 49
  • 152
  • Thanks for sharing the knowledge! Your answer was suggested for editing. Besides, I wish you included backup information with pointers/links. For an example, "There are newer DRAM bus schemes coming that use high-speed serial connections instead of parallel data." sounds not convincing without any source of the information. – jay Sep 05 '21 at 12:49
  • I expanded on this. – hacktastical Sep 05 '21 at 17:09
  • Thanks hacktastical! I am learning a lot from you. – jay Sep 05 '21 at 17:12
2

As mentioned in hacktastical's answer and SteveSh's comment, due to the very tight performance requirements for RAM, the interfaces typically are not specified using the neatly layered protocol stacks with clearly defined interfaces between the independent layers that you may be used to from networking protocols. Instead, they often smash together everything from the electrical interface, and sometimes even the physical connectors, over the timing and signals, up to the bus protocols and sometimes even the programming interface into a single interface specification.

So, there is no real distinction between the definition of "GDDR5 SDRAM" and "the bus protocol used to connect GDDR5 SDRAM memory to GDDR5 SDRAM memory controllers". And this applies pretty much to every {G}DDRx DRAM, ever.

Note also that for the same performance reasons, the memory controller is nowadays often integrated into the CPU. In fact, sometimes even the memory is integrated at least into the same package. So, it's not necessarily the motherboard connecting to the RAM, but the CPU directly, and the RAM may not even be on a physically separate location on the motherboard from the CPU.

One set of memory interfaces that was not yet mentioned, is High Bandwidth Memory (HBM), currently available in versions 1, 2, 2E, and 3. As the name implies, HBM targets systems which require high memory bandwidth, e.g. network processors (NPUs), GPUs and GPGPUs, and AI accelerators (for all three of those also for implementations as ASICs and FPGAs), as well as gaming consoles, and general-purpose supercomputers.

Jörg W Mittag
  • 750
  • 7
  • 10