Jan 21, 2009

Hardware Error Checking

Error Checking


Most memory available today is highly reliable. Most systems simply have the memory controller check for errors at start-up and rely on that. Memory chips with built-in error-checking typically use a method known as parity to check for errors. Parity chips have an extra bit for every 8 bits of data. The way parity works is simple. Let's look at even parity first.

When the 8 bits in a byte receive data, the chip adds up the total number of 1s. If the total number of 1s is odd, the parity bit is set to 1. If the total is even, the parity bit is set to 0. When the data is read back out of the bits, the total is added up again and compared to the parity bit. If the total is odd and the parity bit is 1, then the data is assumed to be valid and is sent to the CPU. But if the total is odd and the parity bit is 0, the chip knows that there is an error somewhere in the 8 bits and dumps the data. Odd parity works the same way, but the parity bit is set to 1 when the total number of 1s in the byte are even.

The problem with parity is that it discovers errors but does nothing to correct them. If a byte of data does not match its parity bit, then the data are discarded and the system tries again. Computers in critical positions need a higher level of fault tolerance. High-end servers often have a form of error-checking known as error-correction code (ECC). Like parity, ECC uses additional bits to monitor the data in each byte. The difference is that ECC uses several bits for error checking -- how many depends on the width of the bus -- instead of one. ECC memory uses a special algorithm not only to detect single bit errors, but actually correct them as well. ECC memory will also detect instances when more than one bit of data in a byte fails. Such failures are very rare, and they are not correctable, even with ECC.

The majority of computers sold today use nonparity memory chips. These chips do not provide any type of built-in error checking, but instead rely on the memory controller for error detection.

SRAM
Static random access memory uses multiple transistors, typically four to six, for each memory cell but doesn't have a capacitor in each cell. It is used primarily for cache.

DRAM
Dynamic random access memory has memory cells with a paired transistor and capacitor requiring constant refreshing.

FPM DRAM
Fast page mode dynamic random access memory was the original form of DRAM. It waits through the entire process of locating a bit of data by column and row and then reading the bit before it starts on the next bit. Maximum transfer rate to L2 cache is approximately 176 MBps.

EDO DRAM
Extended data-out dynamic random access memory does not wait for all of the processing of the first bit before continuing to the next one. As soon as the address of the first bit is located, EDO DRAM begins looking for the next bit. It is about five percent faster than FPM. Maximum transfer rate to L2 cache is approximately 264 MBps.

SDRAM
Synchronous dynamic random access memory takes advantage of the burst mode concept to greatly improve performance. It does this by staying on the row containing the requested bit and moving rapidly through the columns, reading each bit as it goes. The idea is that most of the time the data needed by the CPU will be in sequence. SDRAM is about five percent faster than EDO RAM and is the most common form in desktops today. Maximum transfer rate to L2 cache is approximately 528 MBps.

DDR SDRAM

Double data rate synchronous dynamic RAM is just like SDRAM except that is has higher bandwidth, meaning greater speed. Maximum transfer rate to L2 cache is approximately 1,064 MBps (for DDR SDRAM 133 MHZ).

RDRAM
Rambus dynamic random access memory is a radical departure from the previous DRAM architecture. Designed by Rambus, RDRAM uses a Rambus in-line memory module (RIMM), which is similar in size and pin configuration to a standard DIMM. What makes RDRAM so different is its use of a special high-speed data bus called the Rambus channel. RDRAM memory chips work in parallel to achieve a data rate of 800 MHz, or 1,600 MBps.

Credit Card Memory

Credit card memory is a proprietary self-contained DRAM memory module that plugs into a special slot for use in notebook computers.

PCMCIA Memory Card

Another self-contained DRAM module for notebooks, cards of this type are not proprietary and should work with any notebook computer whose system bus matches the memory card's configuration.

CMOS RAM

CMOS RAM is a term for the small amount of memory used by your computer and some other devices to remember things like hard disk settings -- see Why does my computer need a battery? for details. This memory uses a small battery to provide it with the power it needs to maintain the memory contents.

VRAM
VideoRAM, also known as multiport dynamic random access memory (MPDRAM), is a type of RAM used specifically for video adapters or 3-D accelerators. The "multiport" part comes from the fact that VRAM normally has two independent access ports instead of one, allowing the CPU and graphics processor to access the RAM simultaneously. VRAM is located on the graphics card and comes in a variety of formats, many of which are proprietary. The amount of VRAM is a determining factor in the resolution and color depth of the display. VRAM is also used to hold graphics-specific information such as 3-D geometry data and texture maps. True multiport VRAM tends to be expensive, so today, many graphics cards use SGRAM (synchronous graphics RAM) instead. Performance is nearly the same, but SGRAM is cheaper.

For a comprehensive examination of RAM types, including diagrams and speed tables, check out the PDF document A Basic Overview of Commonly Encountered Types of Random Access Memory.

How Much Do You Need?


It's said that you can never have enough money, and the same seems to hold true for RAM, especially if you do a lot of graphics-intensive work or gaming. Next to the CPU itself, RAM is the most important factor in computer performance. If you don't have enough, adding RAM can make more of a difference than getting a new CPU!

If your system responds slowly or accesses the hard drive constantly, then you need to add more RAM. If you are running Windows 95/98, you need a bare minimum of 32 MB, and your computer will work much better with 64 MB. Windows NT/2000 needs at least 64 MB, and it will take everything you can throw at it, so you'll probably want 128 MB or more.

Linux works happily on a system with only 4 MB of RAM. If you plan to add X-Windows or do much serious work, however, you'll probably want 64 MB. Apple Mac OS systems should have a minimum of 32 MB.

The amount of RAM listed for each system above is estimated for normal usage -- accessing the Internet, word processing, standard home/office applications and light entertainment. If you do computer-aided design (CAD), 3-D modeling/animation or heavy data processing, or if you are a serious gamer, then you will most likely need more RAM. You may also need more RAM if your computer acts as a server of some sort (Web pages, database, application, FTP or network).

Another question is how much VRAM you want on your video card. Almost all cards that you can buy today have at least 8 MB of RAM. This is normally enough to operate in a typical office environment. You should probably invest in a 32-MB graphics card if you want to do any of the following:

  • Play realistic games
  • Capture and edit video
  • Create 3-D graphics
  • Work in a high-resolution, full-color environment
  • Design full-color illustrations

When shopping for video cards, remember that your monitor and computer must be capable of supporting the card you choose.

How to Install RAM


Most of the time, installing RAM is a very simple and straightforward procedure. The key is to do your research. Here's what you need to know:

  • How much RAM you have
  • How much RAM you wish to add
  • Form factor
  • RAM type
  • Tools needed
  • Warranty
  • Where it goes

In the previous section, we discussed how much RAM is needed in most situations. RAM is usually sold in multiples of 16 megabytes: 16, 32, 64, 128, 256, 512. This means that if you currently have a system with 64 MB RAM and you want at least 100 MB RAM total, then you will probably need to add another 64 MB module.

Once you know how much RAM you want, check to see what form factor (card type) you need to buy. You can find this in the manual that came with your computer, or you can contact the manufacturer. An important thing to realize is that your options will depend on the design of your computer. Most computers sold today for normal home/office use have DIMM slots. High-end systems are moving to RIMM technology, which will eventually take over in standard desktop computers as well. Since DIMM and RIMM slots look a lot alike, be very careful to make sure you know which type your computer uses. Putting the wrong type of card in a slot can cause damage to your system and ruin the card.

You will also need to know what type of RAM is required. Some computers require very specific types of RAM to operate. For example, your computer may only work with 60ns-70ns parity EDO RAM. Most computers are not quite that restrictive, but they do have limitations. For optimal performance, the RAM you add to your computer must also match the existing RAM in speed, parity and type. The most common type available today is SDRAM.

Before you open your computer, check to make sure you won't be voiding the warranty. Some manufacturers seal the case and request that the customer have an authorized technician install RAM. If you're set to open the case, turn off and unplug the computer. Ground yourself by using an anti-static pad or wrist strap to discharge any static electricity. Depending on your computer, you may need a screwdriver or nut-driver to open the case. Many systems sold today come in toolless cases that use thumbscrews or a simple latch.

The actual installation of the memory module does not normally require any tools. RAM is installed in a series of slots on the motherboard known as the memory bank. The memory module is notched at one end so you won't be able to insert it in the wrong direction. For SIMMs and some DIMMs, you install the module by placing it in the slot at approximately a 45-degree angle. Then push it forward until it is perpendicular to the motherboard and the small metal clips at each end snap into place. If the clips do not catch properly, check to make sure the notch is at the right end and the card is firmly seated. Many DIMMs do not have metal clips; they rely on friction to hold them in place. Again, just make sure the module is firmly seated in the slot.

Once the module is installed, close the case, plug the computer back in and power it up. When the computer starts the POST, it should automatically recognize the memory. That's all there is to it!

For more information on RAM, other types of computer memory and related topics, check out the links on the next page.

So, you've decided it isn't good enough anymore to just know IP addresses are on the Network Layer of the OSI model, you want to apply that knowledge. This path will ultimately lead you to subnetting. For now, let's separate the IP classes.

Remember that every IP addy is 32 bits long and is divided into four (the quartet) octets arranged in dotted-decimal notation. An octet is 8 bits. This is one way look at an IP address:

216.77.133.249

Here's another:

11011000.01001101.10000101.11111001

It May not look it, right off the bat, but it's the same number. The first one is in decimal, the second is in binary. I don't want to stray too far from this article's topic, though I will, briefly, in just a second. Click here for another Cramsession article with a fuller explanation.

The IP address represented above in binary above contains four octets; the eight bits clearly designated (not so easily recognized in decimal). The position of each bit represents the binary number in powers of 2, like so:

2^7 = 128
2^6 = 64
2^5 = 32
2^4 = 16
2^3 = 8
2^2 = 4
2^1 = 2
2^0 = 1

Placing a 1 in any position turns it "on." And remember, in binary, the only language a computer knows, on = 1, off = 0.

So, returning to our example above, the first octet in the decimal version of the IP address, it comes out as:

1 = 128
1 = 64
0
1 = 16
1 = 8
0
0
0

So 128 + 64 + 16 + 8 = 216, which was the first octet (in decimal) in the IP address.

The highest possible value, in decimal, of each octet is 255:
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.

When all the bits are "on" you get 11111111. When all the bits are "off" you get 00000000. So, a binary IP address of 11111111.11111111.11111111.11111111 will be, in decimal, 255.255.255.255 (a flooded broadcast). On the other hand, a binary IP address of 00000000.00000000.00000000.00000000 will be, in decimal, 0.0.0.0, which in a routing table represents an unknown network or host, and is typically used to designate the default gateway of last resort.

In theory, the 32-bit IP addressing scheme supports up to 3,720,314,628 hosts. In reality, it won't go that high. Generally, there will be only as many IP addresses as may be designated by the three most common classes of IP addresses, A, B and C. There are two more classes, D & E, but they are used for multicast and experimental purposes respectively, so we won't get into those here.

The classes are split based on the number in the first Octet. It breaks down like this:

Class First decimal value

Just as an aside, you'll notice the Class A IP address ends in 127 but that value really is not to be used. 127.0.0.1 is a special Class A address used for internal loopback testing and will generate no network traffic. Ping it sometime and you'll see what I mean.

Now, those are the decimal values. Get ready for a shock. Spotting IP address classes is even easier in binary. Each class can be identified by looking at the high order bits (the digits at the left end of the octet) and figuring out where the first zero falls, that is where the first "off" bit is. In Class A addresses, the very first high order bit is always off. In Class B, the second high order bit is always off, the first is on. In Class C, the third high order bit is always off, the first two are always on. That breaks down like this:

Class High Order Bit Value


So, when we look at our above example again, in decimal:
216.77.133.249

and in binary
11011000.01001101.10000101.11111001

In decimal, we see the value in the first octet is 216, which means it's a Class C IP Address. In binary, we look at the high order bits in the first octet and see that the first high order bit to be off (or 0) is the third one, so this is a Class C address.

Knowing the class is important because that will determine your default subnet. It also will indicate the network and host portions of each address. The default subnet mask for a Class A IP address is 255.0.0.0; Class B is 255.255.0.0 and Class C is 255.255.255.0. By coincidence, (yeah, you bet!) the network portion of a Class A IP address is the first octet. In Class B, it's the first two octets. In class C, it's the first three octets. In all three cases, the host number follows the network portion of the address.

The network portion of any IP address uniquely identifies the network to which the address belongs. Every workstation, every piece of equipment that can be assigned an IP address, will share the network portion in its IP address....

The term you selected is being presented by searchWebServices.com, a TechTarget site for Web Services professionals.



Site Sponsor








This definition is based on Internet Protocol Version 4. See Internet Protocol Version 6 (IPv6) for a description of the newer 128-bit IP address. Note that the system of IP address classes described here, while forming the basis for IP address assignment, is generally bypassed today by use of Classless Inter-Domain Routing (CIDR) addressing.

In the most widely installed level of the Internet Protocol (IP) today, an IP address is a 32-bit number that identifies each sender or receiver of information that is sent in packets across the Internet. When you request an HTML page or send e-mail, the Internet Protocol part of TCP/IP includes your IP address in the message (actually, in each of the packets if more than one is required) and sends it to the IP address that is obtained by looking up the domain name in the Uniform Resource Locator you requested or in the e-mail address you're sending a note to. At the other end, the recipient can see the IP address of the Web page requestor or the e-mail sender and can respond by sending another message using the IP address it received.

An IP address has two parts: the identifier of a particular network on the Internet and an identifier of the particular device (which can be a server or a workstation) within that network. On the Internet itself - that is, between the router that move packets from one point to another along the route - only the network part of the address is looked at.

The Network Part of the IP Address

The Internet is really the interconnection of many individual networks (it's sometimes referred to as an internetwork). So the Internet Protocol (IP) is basically the set of rules for one network communicating with any other (or occasionally, for broadcast messages, all other networks). Each network must know its own address on the Internet and that of any other networks with which it communicates. To be part of the Internet, an organization needs an Internet network number, which it can request from the Network Information Center (NIC). This unique network number is included in any packet sent out of the network onto the Internet.

The Local or Host Part of the IP Address

In addition to the network address or number, information is needed about which specific machine or host in a network is sending or receiving a message. So the IP address needs both the unique network number and a host number (which is unique within the network). (The host number is sometimes called a local or machine address.)

Part of the local address can identify a subnetwork or subnet address, which makes it easier for a network that is divided into several physical subnetworks (for examples, several different local area networks or ) to handle many devices.

IP Address Classes and Their Formats

Since networks vary in size, there are four different address formats or classes to consider when applying to NIC for a network number:

  • Class A addresses are for large networks with many devices.
  • Class B addresses are for medium-sized networks.
  • Class C addresses are for small networks (fewer than 256 devices).
  • Class D addresses are multicast addresses.

The first few bits of each IP address indicate which of the address class formats it is using. The address structures look like this:

Class A

0

Network (7 bits)

Local address (24 bits)

Class B

10

Network (14 bits)

Local address (16 bits)

Class C

110

Network (21 bits)

Local address (8 bits)

Class D

1110

Multicast address (28 bits)

The IP address is usually expressed as four decimal numbers, each representing eight bits, separated by periods. This is sometimes known as the dot address and, more technically, as dotted quad notation. For Class A IP addresses, the numbers would represent "network.local.local.local"; for a Class C IP address, they would represent "network.network.network.local". The number version of the IP address can (and usually is) represented by a name or series of names called the domain name.

The Internet's explosive growth makes it likely that, without some new architecture, the number of possible network addresses using the scheme above would soon be used up (at least, for Class C network addresses). However, a new IP version, IPv6, expands the size of the IP address to 128 bits, which will accommodate a large growth in the number of network addresses. For hosts still using IPv4, the use of subnets in the host or local part of the IP address will help reduce new applications for network numbers. In addition, most sites on today's mostly IPv4 Internet have gotten around the Class C network address limitation by using the Classless Inter-Domain Routing (CIDR) scheme for address notation.

Relationship of the IP Address to the Physical Address

The machine or physical address used within an organization's local area networks may be different than the Internet's IP address. The most typical example is the 48-bit Ethernet address. TCP/IP includes a facility called the Address Resolution Protocol (ARP) that lets the administrator create a table that maps IP addresses to physical addresses. The table is known as the ARP cache.

Static versus Dynamic IP Addresses

The discussion above assumes that IP addresses are assigned on a static basis. In fact, many IP addresses are assigned dynamically from a pool. Many corporate networks and online services economize on the number of IP addresses they use by sharing a pool of IP addresses among a large number of users. If you're an America Online user, for example, your IP address will vary from one logon session to the next because AOL is assigning it to you from a pool that is much smaller than AOL's base of subscribers.



No comments:

Post a Comment

Popular Posts