that connect the CPU
in a digital system
to the memory
, usually the RAM
. In smaller systems that make use of memory-mapped I/O
, other device
s may also be connected to the memory bus
. This includes things like sensors
communication chips, graphics
and so on.
The lines making up a memory bus consist of three main groups: address lines (for saying which piece of memory you're interested in), data lines (for saying what the data actually is) and control lines (for saying what it is you want to do with the memory: store, load, reset, etc etc). There might be four or five control wires, depending on the protocol.
The three most important characteristics of a memory bus are the data bus width (in bits -- with each bit corresponding to one physical wire), the clock speed in Hertz (although these days it's in megahertz and will soon be in gigahertz) and the address bus width. The wider the data bus, the more the memory that can be read in a single go. The bandwidth is the product of the data bus width and the clock speed, which shows theoretically how much data can be transferred through the bus per second. In practice, things don't always work this fast. And it gets even more confusing if you consider DDR SDRAM. The address bus width defines the total maximum memory that you can (easily) talk to. Maximum memory is 2 to the power of the address bus width.
Usual size are powers of 2 for both address and data, for a variety of reasons related to computers using binary digits. The "first" (i.e. sort of first) microprocessor, the Intel 4004, was designed for use with a 4-bit data bus and an 8-bit address bus (well, sorta ... it would actually use a 4-bit address bus twice). On modern computers, things get a little more confusing, but a typical computer system today would have an physical address bus width of 32 bits (allowing it to access 4 gigabytes of RAM), data bus width of 128 bits, and clock speed of 133 megahertz.