Using Barcode generation for Software Control to generate, create EAN 128 image in Software applications.

Okay, before you learn more about DRAM, I need to make a critical point extremely clear When you first saw the 8088 s machine language in the previous chapter, all the examples in the codebook were exactly 1-byte commands Figure 46 shows the codebook again see how all the commands are 1 byte

Using Barcode creation for iPhone Control to generate, create barcode image in iPhone applications.

Well, the reality is slightly different Most of the 8088 machine language commands are 1 byte, but a few more complex commands need 2 bytes For example, the command below tells the CPU to move 163 bytes up the RAM spreadsheet and run whatever command is there Cool, eh

1110100110100011

The problem here is that the command is 2 bytes wide, not 1 byte wide! So how did the 8088 handle this Simple it just took the command 1 byte at a time It took twice as long to handle the command because the MCC had to go to RAM twice, but it worked Okay, so if some of the commands are more than 1 byte wide, why didn t Intel make the 8088 with a 16-bit frontside bus Wouldn t that have been better Well, Intel did! Intel invented a CPU called the 8086 The 8086 actually predates the 8088 and was absolutely identical to the 8088 except for one small detail it had a 16-bit frontside bus IBM could have used the 8086 instead of the 8088 and used 2-byte-wide RAM instead of 1-byte-wide RAM Of course, they would have needed to invent a memory controller chip that handled that kind of RAM (Figure 47) Why didn t Intel sell IBM the 8086 instead of the 8088 There were two reasons First, nobody had invented an affordable MCC or RAM that handled two bytes at a time Sure, chips were invented, but they were expensive and IBM didn t think that anyone would want to pay US$12,000 for a per- Figure 47 Pumped-up 8086 MCC at work sonal computer So IBM bought the Intel 8088, not the Intel 8086, and all our RAM came in bytes But as you might imagine, it didn t stay that way too long

DRAM Sticks

As CPU data bus sizes increased, so too did the need for RAM wide enough to fill the bus The Intel 80386 CPU, for example, had a 32-bit data bus and thus the need for 32-bit-wide DRAM Imagine having to line up 32 1-bit-wide DRAM chips on a motherboard Talk about a waste of space! Figure 48 shows motherboard RAM run amuck DRAM manufacturers responded by creating wider DRAM chips, such as 4, 8, and 16, and putting multiples of them on a small circuit board called a stick or module Figure 49 shows an early stick, called a single inline memory module (SIMM), with eight DRAM chips

Figure 48

That s a lot of real estate used by RAM chips!

4: Understanding RAM

Figure 49

A 72-pin SIMM

Some MCCs are 128 bits wide

To add RAM to a modern machine means you need to get the right stick or sticks for the particular motherboard Your motherboard manual tells you precisely what sort of module you need and how much RAM you can install Modern CPUs are a lot smarter than the old Intel 8088 Their machine languages have some commands that are up to 64 bits (8 bytes) wide They also have at least a 64-bit frontside bus that can handle more than just 8 bits They don t want RAM to give them a puny 8 bits at a time! To optimize the flow of data into and out of the CPU, the modern MCC provides at least 64 bits of data every time the CPU requests information from RAM Modern DRAM sticks come in 32-bit- and 64-bit-wide form factors with a varying number of chips Many techs describe these memory modules by their width, so 32 and 64 Note that this number does not describe the width of the individual DRAM chips on the module! When you read or hear about by whatever memory, simply note that you need to know whether that person is talking about the DRAM width or the module width When the CPU needs certain bytes of data, it requests those bytes via the address bus The CPU does not know the physical location of the RAM that stores that data, nor the physical makeup of the RAM such as how many DRAM chips work together to provide the 64-bit-wide memory rows The MCC keeps track of this and just gives the CPU whichever bytes it requests (Figure 410)