Sunday, January 31, 2010

History of the Computer Industry

The computer industry started with John Presper Eckert and John W. Mauchly, who designed two of the earliest electronic computers,  ENIAC and EDVAC, at the University of Pennsylvania during World War II. In 1946 they left to start the Electronic Control Company, the first computer manufacturer, and their Univac (Universal Automatic Computer) was the first commercially successful computer. Other pioneering commercial ventures included two British machines: the Ferranti Mark I, based on Manchester University’s Mark I prototype; and LEO, the Lyons Electronic Office, developed by the Lyons tea shop company from Cambridge University’s EDSAC computer. Indeed, the first commercially built Mark I was installed at Manchester University in February 1951, a month before the first Univac was delivered to the United States Census bureau. However, it was the Univac that proved there was a market for computers, and that encouraged other companies to begin manufacturing them.
The computer represented a new way of doing things, but most of the things that needed doing were already being done using electromechanical devices. At IBM, the computer was mainly seen as a faster way of tabulating punched cards, which had been the basis of data processing since 1890. IBM was thus able to convert its domination of the data processing business into a corresponding domination of the computer industry. In his autobiography, Tom Watson Jr., IBM’s chief executive from 1956 to 1971, pointed out that only IBM had the “large field force of salesmen, repairmen, and servicemen” who understood how to install automated bookkeeping systems. “The invention [of the computer] was important,” he wrote, “but the knowledge of how to put a great big system online, how to make it run, and solve problems was probably four times as important.”
The industry started to change dramatically when silicon chips became available in quantity. The microprocessor, or “computer on a chip”, developed by Intel in 1971, made computer power a mass-market commodity. Computers had been huge, complicated machines that only large companies, governments, and a few universities could afford, and they were often kept behind glass walls where they could be seen but not touched. (Many firms had visitors’ galleries for people who had never seen a computer.) Microprocessors made computers available in ordinary homes and offices. When Eckert and Mauchly started, they struggled to win orders for their first six Univacs. By comparison, sales of personal computers passed 60 million a year in 1996.
Small, cheap, programmable microprocessors also made it relatively simple for small companies to build computers. Between 1975 and 1985, hundreds of firms entered the business. Some started in garages (such as Apple Computer, Inc.), university computer departments (such as Sun Microsystems, Inc.), and college dormitories (such as Dell). Only a handful became successful global corporations: most died. While it was comparatively easy to design a personal computer, other aspects of the business—manufacturing, advertising, telephone support, maintenance, and so on—were beyond most of the hobbyists and enthusiasts involved.
New computer manufacturers also discovered that software was another major problem. Users who bought a cheap computer required cheap software as well, and—unlike large companies using minicomputers and mainframes—were not willing or equipped to write it themselves. Customers therefore tended to buy the computers for which most software was available, while software houses preferred to write programs for the best-selling computers. This created a “virtuous circle” for a few manufacturers who came to dominate the market, but a vicious circle for the rest.
The market was particularly unkind to small European manufacturers: they were rarely able to compete with American rivals, whose larger home market provided greater economies of scale. Dozens of small firms entered the British microcomputer market in the late 1970s and early 1980s, including Acorn, Amstrad, Apricot, Camputers, Dragon Data, Enterprise, Grundy, Jupiter Cantab, Memotech, Oric, Positron, Sinclair Research (the creation of Sir Clive Sinclair), and Torch. Most struggled to attract software, and few survived.
The market needed a standard, and IBM, the industry’s dominant supplier, was best placed to create it. The company did that when it launched its first personal computer, the IBM PC, in 1981. Since then, “PC-compatibles”, or “clones” of the PC, have gradually taken over more and more of the market, displacing proprietary designs such as the Atari ST, Commodore Amiga, and Apple Macintosh.
However, the personal computer market has become different from the older minicomputer and mainframe markets, because IBM did not take its usual approach of creating the PC’s hardware and software itself. Instead, it went to outside suppliers for parts. Most importantly, it went to Intel for the 8088 microprocessor and to Microsoft for the MS-DOS disk operating system. Intel and Microsoft retained the ability to supply these parts (and their successors) to IBM’s rivals, creating an intensely competitive and relatively open market, while making immense profits.
OPEN SYSTEMS 
Intel’s microprocessors and Microsoft’s MS-DOS and Windows programs have become de facto standards because their sales dominate the personal computer market. However, they are still owned by Intel and Microsoft, which gives these companies an advantage. There is an alternative, the open-systems approach, in which standards are specified independently of particular manufacturers by industry committees. Suppliers compete by trying to produce the best implementation of an agreed standard. In theory, this should lead to better products at lower prices. It is certainly less risky for manufacturers to support an agreed standard than for each company to develop a different proprietary system: probably only one or two such systems would be successful, and the rest would fail. For this reason, computer industry suppliers invest a great deal of time and energy in efforts to agree standards. Companies will even “give away” their technologies to recognized industry bodies to encourage their adoption as standards.
In the mid-1980s several European companies, encouraged by the European Commission began to agree open-systems standards for computers, and they were soon joined by the leading American and Japanese suppliers. These standards were based on a portable (not machine-specific) operating specification called Posix, which was ultimately derived from AT&T’s UNIX operating system, and on Open Systems Interconnection (OSI) networking, as ratified by the International Standards Organization. Following a Commission directive, many governments mandated public bodies to buy open-systems computers whenever possible, and the United States government and some others took similar actions. Leading manufacturers such as IBM, Digital Equipment, and the British company ICL changed their proprietary operating systems and networks to comply with the required standards.
However, the open-systems approach was not successful in capturing the mass market, and the effort exposed several problems with it. Because the specifications had to satisfy many participants in the standards-making process, they often proved to be complex and expensive to implement. Some standards provided too many options, or allowed different interpretations, so that even when different firms implemented the same standards, their systems remained incompatible. The standards-setting process often proved to be too slow for the fast-moving computer market.
As a result, computer industry suppliers now participate in numerous shifting alliances formed around various technologies. These alliances constantly generate publicity in an attempt to sway the market, producing an often spurious impression that the computer industry is continually at war with itself.
Since 1994 the Internet has had an increasing influence on the development of the computer industry. Most suppliers are now adopting Internet standards that have been developed in universities and research institutes over the past 25 years. In particular, the Internet’s method of connecting computers, which is called TCP/IP (Transmission Control Protocol/Internet Protocol), is displacing commercial alternatives produced by companies such as IBM and Novell, Inc., as well as the open-systems standard, OSI.
THE GLOBAL NATURE OF THE COMPUTER INDUSTRY 
 Although its heart is in California’s Silicon Valley, the computer industry is a global enterprise. Intel’s Pentium processor, for example, was designed in the United States, but a particular example might be manufactured in Ireland from a Japanese semiconductor wafer, packaged in its protective housing in Malaysia, inserted into a printed circuit board in Taiwan, and assembled into a product that is sold in England by a German manufacturer. Many of the parts used in personal computers are now manufactured in Asian countries, including Korea, Hong Kong, and Japan. Many industry suppliers expect China and India to become large markets for computers in the future, and to develop large computer-manufacturing and software industries.
The software industry is also global. However, because programs have not yet been “componentized” (split into reusable modules that can be created separately), it is not as diverse as the computer hardware industry. All the best-selling operating systems and most of the leading applications programs have been written in the United States, then converted for use elsewhere. There are exceptions, such as accounting packages that meet local needs, but these tend not to be exportable. Nonetheless, the large pool of computer science graduates and the relatively low wages in countries such as India and China have started to create custom-programming industries outside the United States and Europe. Further globalization can be expected, thanks to the Internet’s tendency to make national boundaries invisible, and its ability to deliver software at little or no cost, without the need for packaging or printed manuals.
In the 1950s and 1960s large companies used relatively small numbers of computers to automate internal processes such as payroll and stock control, and computers are still performing these mundane tasks. However, the industry’s emphasis has shifted towards personal use, for “productivity applications” such as word processor programs, for communications, or for entertainment. Tens of millions of people now use personal computers in their daily lives, and tens of millions use their computers to communicate over the Internet with companies, organizations, and other individuals. Few industries have changed so much in such a short time, and the pace of change shows no signs of slowing.

Computer History

In the stone age the earliest computing device present in the world is the five fingers of each hand, and it is the most popular counting system since the earlier days of the human race.
It was not more then a few thousands' years  when someone thought for  calculation  by using the  pebbles instead of using fingers. Thus ten pebbles are used instead of the five fingers  for calculations. The calculation by using pebbles has remained for centuries and it is consisted as the best calculation system  in the stone age.
About five thousands' years before  in the valley of Tigris-Euphrates and about 460 BC in Egypt an idea arose for making a clay board with a number of grooves into which the pebbles were placed. Calculations  were made by sliding pebbles along the grooves from one side to the other.
The  grooved pebble became known in China , Japan and Rome  by various means such as the deported slaves.
The grooved pebble was modified in China  and known as the abacus, while the grooved pebble that modified in Japan was known as soroban. Abacus was the first  mechanical computer that  performed all the arithmetic operations., and in the hands of  a skilled operator it can be as fast as  desk-type computers. The soroban or abacus is still is  used  by Japanese and Chinese.
After reaching this milestone, the development of computing devices seems to have stagnated for the next two thousand years.
The real beginning of mechanical era of computers  goes back to  the seventeenth century, from which we date our 'modern era'  in  just about every  field of endeavor.
The development of logarithms by John Napier in 1614, and their conversion to the base 10 by Henry Briggs in 1615, stimulated the invention of various devices. One  such device, invented  by John Napier in 1617, was a mechanical arrangement of numbering rods, which could do multiplication. These became known later, fittingly, as 'Napier's bones.' 
A slide rule without moving parts, based upon Napier's  logarithms, was invented in 1620 by Edmund Gunter. This was improved upon by the introduction of a sliding scale by William Oughtred in 1632. He gave it the name 'astrolabe' because of its astronomical uses.
The real history of modern  computing began with an analog machine. In 1623 German scientist Wilhelm Schikard invented a machine that used 11 complete and 6 incomplete sprocketed wheels that could add and, with the aid of logarithm tables, multiply and divide
Perhaps most significant in the evaluation of the mechanical calculators was the introduction ,in 1642, of the tooth wheels by Blaise Pascal who was the famous French philosopher and mathematician. Although this machine is limited to  addition and subtraction. Pascal built 50 copies of his machine, but most served as curiosities in parlors of the wealthy.
It was not long before scientists realized that Pascal's toothed wheels could also perform multiplication.  The German philosopher and mathematician, Baron von Leibniz, added this improvement to the Pascal machine in 1671. The Leibniz machine known as 'rockoning machine' was the first machine designed for multiplication but mechanical flaws prevented it from becoming popular.
In 1820 Thomas de Colmar improved Pascal's calculator sufficiency to make it practicable for multiplication. Over the next sixty years Thomas made some 1500 machines.
In the early 19th century French inventor Joseph-Marie Jacquard devised a specialized type of computer: ‘a loom’. Jacquard’s loom used punched cards to program patterns that were output as woven fabrics by the loom. Though Jacquard was rewarded and admired by French emperor Napoleon I for his work, he fled for his life from the city of Lyon pursued by weavers who feared their jobs were in jeopardy due to Jacquard’s invention. The loom prevailed, however: When Jacquard passed away, more than 30,000 of his looms existed in Lyon. The looms are still used today, especially in the manufacture of fine furniture fabrics.
The Newton of the computer field was Charles Babbage, a professor of mathematics at Cambridge University. It was in 1812 that Babbage first Conceived the idea of building a machine that could solve differential equations and print the answers. He worked on his machine, named as 'differential engine' with the help of the British Government for some twenty years, but finally gave up in 1842. 
Although equally unsuccessful in practice, the ideas behind Babbage's next project -- 'the analytical engine'-- proved to be the seeds for the development of large scale modern digital computers. The idea as conceived by Babbage is the basis of all automatic computing, but the Babbage's analytical engine never worked; it was too far ahead of its time.
Augusta Ada Byron (Countess of Lovelace, 1815-52) was a personal friend and student of Babbage. She was the daughter of the famous poet Lord Byron and one of only a few woman mathematicians of her time. She prepared extensive notes concerning Babbage’s ideas and the Analytical Engine. Ada’s conceptual programs for the Engine led to the naming of a programming language (Ada) in her honor. Although the Analytical Engine was never built, its key concepts, such as the capacity to store instructions, the use of punched cards as a primitive memory, and the ability to print, can be found in many modern computers.
Though Babbage's ideas did not come into their own until a century later, other workers in the field improved the existing mechanical calculators considerably. 
Dorr Felt patented a key-driven adding machine in 1850 and developed a practical machine in 1866. 
In 1887 a patent was issued for an improved machine.  At about the same time William Seward Burrouhs produced one of the first commercial adding machines.  Many improvement were made upon these early designs in succeeding years, the printing feature (in 1899) being perhaps the most important
Herman Hollerith, an American inventor, used an idea similar to Jacquard’s loom when he combined the use of punched cards with devices that created and electronically read the cards. Hollerith’s tabulator was used for the 1890 U.S. census, and it made the computational time three to four times shorter than the time previously needed for hand counts. Hollerith’s Tabulating Machine Company eventually merged with other companies in 1924 to become IBM.
The first appearance of electrical  computers was in the 1920s, when the General Electric Company and Westinghouse both invented analogue machines for simulating the behavior of networks. These were known as d.c. network  analysers. A much more versatile machine, the a.c network analyser, was introduced in 1929. This machine occupies a large-sized room.
In 1936 British mathematician Alan Turing proposed the idea of a machine that could process equations without human direction. The machine (now known as a Turing machine) resembled an automatic typewriter that used symbols for math and logic instead of letters. Turing intended the device to be used as a “universal machine” that could be programmed to duplicate the function of any other existing machine. Turing’s machine was the theoretical precursor to the modern digital computer.
Meanwhile continual improvements were being made on the  mechanical analogue computing devices, such as the ball-and-disc integrator. These mechanical improvements culminated in the development  at Massachusetts Institute of Technology of a large-scale completely mechanical 'differential analyser' by Dr. Vannevar Bush in 1931.
In the mid -- 1930s Hartree and Porter at Manchester University devised a model  mechanical differential analyser`
M.I.T.  Staff developed  a more advanced differential analyser, in which all interconnections could be made by electrical means. This machine was first brought out in 1942, solved important military problems during the second world war. Although in principal it is still a  mechanical computer, the second M.I.T differential analyser uses about 200 miles of wire, 3000 relays, 150 electric motors, and 2000 electronic valves.
The first large-scale fully automatic digital computer was almost certainly the IBM (International Business Machines Corporation) Automatic Sequence Controlled Calculator. This machine, which later became known as Mark I, was the brainchild of American mathematician Prof. Howard Aiken of Harvard. Its development began in 1937 and went on until 1944. The Harvard-IBM Mark I calculator has all the important functional components of an automatic digital computer. This electronic calculating machine used relays and electromagnetic components to replace mechanical components. In later machines, Aiken used vacuum tubes and solid state transistors (tiny electrical switches) to manipulate the binary numbers. Aiken also introduced computers to universities by establishing the first computer science program at Harvard University. Aiken never trusted the concept of storing a program within the computer. Instead his computer had to read instructions from punched cards.
Although more advanced  electromechanical computers were built in the 1940s. The first one, called ENIAC (Electronic Numerical Integrator and Calculator), was constructed between 1942 and 1945 at the Moore School of Electrical Engineering of the University of Pennsylvania.
ENIAC,  the first large-scale, general purpose, digital computer. ENIAC was initially built for the United States military to calculate the paths of artillery shells. It was later used to make calculations for nuclear weapons research, weather prediction, and wind tunnel design. ENIAC began operating in February 1946 and was used until October 1955.
ENIAC was built by the American physicist John W. Mauchly and the American electrical engineer J. Presper Eckert at the Moore School of Electrical Engineering, University of Pennsylvania. Eckert and Mauchly successfully demonstrated ENIAC less than three years after the Army commissioned its construction. In 1947 ENIAC was moved from the University of Pennsylvania to its permanent home at the Aberdeen Proving Ground in Maryland. Only one system of its type was ever built, but it operated continuously until October 1955.
ENIAC used vacuum tubes to process data. It had 19,000 tubes, each the size of a small light bulb. The computer was composed of 30 separate units with additional power supplies and cooling units. It weighed more than 30 tons, occupied 1800 sq ft and consumed 175 kw of power.
ENIAC was designed to calculate continuously, day and night. However, because its circuitry was composed of a vast number of vacuum tubes that tended to burn out, ENIAC had to be constantly serviced. This continual servicing considerably reduced ENIAC’s net operating time. During a typical week, ENIAC was down for maintenance about one-third of the time. As soon as they completed the ENIAC design, Eckert and Mauchly signed a contract to build a successor, which they called EDVAC for Electronic Discrete Variable Automatic Computer. This more efficient design reduced the number of vacuum tubes in the EDVAC to about 4000. EDVAC was the first electronic computer to use a program stored entirely within its memory.
Although it was the first large-scale machine to do routine calculations in a production environment, the ENIAC was not the first electronic computer. Between 1939 and 1942, John Atanasoff, a physics and mathematics professor at Iowa State University, and his graduate student Clifford Berry, assembled the Atanasoff-Berry Computer, which incorporated many digital circuit design innovations. Their system used the binary arithmetic system of 1s and 0s commonly used in today’s computers as well as a memory drum that stored data in a method similar to the storage technique used in modern memory chips.
After Eckert and Mauchly were granted a patent for the ENIAC, a long court battle began over who actually created the first modern electronic computer. Finally, in 1973, a federal judge invalidated the ENIAC patent and awarded recognition to Atanasoff and Berry, more than 30 years after their pioneering accomplishments.
UNIVAC, (UNIVersal Automatic Computer), the first electronic computer designed and sold to solve commercial problems. The UNIVAC contained about 5000 vacuum tubes, occupied 943 cubic feet, and weighed 8 tons. From 1951 to 1957 a variety of governmental and commercial customers bought a total of 48 UNIVAC computers.
The UNIVAC was a successor to the first general-purpose electronic computer, the ENIAC (Electronic Numerical Integrator And Calculator). The ENIAC was built for the United States armed services by American physicist J. Presper Eckert and American electrical engineer John Mauchly between 1943 and 1946. It was the first large-scale, general-purpose electronic computer. In 1947 and 1948 Eckert and Mauchly built an improved machine called the EDVAC (Electronic Discrete Variable Automatic Computer), which incorporated some important design innovations by Hungarian American mathematician John von Neumann. In December 1948 Eckert and Mauchly left the University of Pennsylvania, where they had worked, and formally organized the Eckert-Mauchly Computer Corporation. In August 1949 they delivered a computer for (onboard) missile control to the Northrup Corporation, which they called BINAC (BINary Automatic Computer). BINAC was to be the prototype for the commercial UNIVAC system.
In March 1951 Eckert and Mauchly delivered the first UNIVAC to the U.S. Census Bureau. The UNIVAC gained national attention in 1952 when General Dwight D. Eisenhower was running against Adlai E. Stevenson for the presidency of the United States. A UNIVAC was used to predict the results of the election on national television. Using an early ballot count of only a few percent of the votes, UNIVAC predicted a landslide win for Eisenhower. The television networks delayed announcement of the predicted margin until a greater percentage of election returns could be counted. When a large enough percentage of the votes was finally counted, it was found that UNIVAC had been correct in its predictions. This successful demonstration contributed greatly to the popularity of the UNIVAC as well as to the public’s opinion of computers.
 The UNIVAC contained many improvements over the earlier ENIAC. The number of vacuum tubes in the UNIVAC was reduced to about 5000 from ENIAC’s 19,000. UNIVAC’s 943 cubic feet of cabinets took up less floor space than ENIAC, but it still would have filled a single-car garage. The UNIVAC weighed 8 tons instead of the ENIAC’s 30 tons, and it consumed about 100 kilowatts of power instead of the 175 kilowatts of power that the ENIAC used. Despite the major improvements of the UNIVAC over the ENIAC, it was still extremely inefficient by today’s standards.
The UNIVAC could perform up to 1905 operations per second. Early UNIVAC customers included government agencies, the A. C. Nielsen Company, the Prudential Insurance Company, and the General Electric Appliance Division. UNIVAC computers were used for many different purposes, including accounting, data processing, and record keeping.
In 1948, at Bell Telephone Laboratories, American physicists Walter Houser Brattain, John Bardeen, and William Bradford Shockley developed the transistor, a device that can act as an electric switch. The transistor had a tremendous impact on computer design, replacing costly, energy-inefficient, and unreliable vacuum tubes.
In the late 1960s integrated circuits, tiny transistors and other electrical components arranged on a single chip of silicon, replaced individual transistors in computers. Integrated circuits became miniaturized, enabling more components to be designed into a single computer circuit. In the 1970s refinements in integrated circuit technology led to the development of the modern microprocessor, integrated circuits that contained thousands of transistors. Modern microprocessors contain as many as 10 million transistors.
Manufacturers used integrated circuit technology to build smaller and cheaper computers. The first of these so-called personal computers (PCs) was sold by Instrumentation Telemetry Systems. The Altair 8800 appeared in 1975. It used an 8-bit Intel 8080 microprocessor, had 256 bytes of RAM, received input through switches on the front panel, and displayed output on rows of light-emitting diodes (LEDs). Refinements in the PC continued with the inclusion of video displays, better storage devices, and CPUs with more computational abilities. Graphical user interfaces were first designed by the Xerox Corporation, then later used successfully by the Apple Computer Corporation with its Macintosh computer. Today the development of sophisticated operating systems such as Windows 95 and Unix enables computer users to run programs and manipulate data in ways that were unimaginable 50 years ago.
Possibly the largest single calculation was accomplished by physicists at IBM in 1995 solving one million trillion mathematical problems by continuously running 448 computers for two years to demonstrate the existence of a previously hypothetical subatomic particle called a glueball. Japan, Italy, and the United States are collaborating to develop new supercomputers that will run these calculations one hundred times faster.
 In 1996 IBM challenged Gary Kasparov, the reigning world chess champion, to a chess match with a supercomputer called Deep Blue. The computer had the ability to compute more than 100 million chess positions per second. Kasparov won the match with three wins, two draws, and one loss. Deep Blue was the first computer to win a game against a reigning world chess champion with regulation time controls. Many experts predict these types of parallel processing machines will soon surpass human chess playing ability, and some speculate that massive calculating power will one day replace intelligence. Deep Blue serves as a prototype for future computers that will be required to solve complex problems.
Future Developments 
In 1965 semiconductor pioneer Gordon Moore predicted that the number of transistors contained on a computer chip would double every year. This is now known as Moore’s Law, and it has proven to be somewhat accurate. The number of transistors and the computational speed of microprocessors currently doubles approximately every 18 months. Components continue to shrink in size and are becoming faster, cheaper, and more versatile.
With their increasing power and versatility, computers simplify day-to-day life. Unfortunately, as computer use becomes more widespread, so do the opportunities for misuse. Computer hackers—people who illegally gain access to computer systems—often violate privacy and can tamper with or destroy records. Programs called viruses or worms can replicate and spread from computer to computer, erasing information or causing computer malfunctions. Other individuals have used computers to electronically embezzle funds and alter credit histories. New ethical issues also have arisen, such as how to regulate material on the Internet and the World Wide Web. Individuals, companies, and governments are working to solve these problems by developing better computer security and enacting regulatory legislation.
Computers will become more advanced and they will also become easier to use. Reliable speech recognition will make the operation of a computer easier. Virtual reality, the technology of interacting with a computer using all of the human senses, will also contribute to better human and computer interfaces. Standards for virtual-reality program languages, called Virtual Reality Modeling language (VRML), currently are being developed for the World Wide Web.
Communications between computer users and networks will benefit from new technologies such as broadband communication systems that can carry significantly more data and carry it faster, to and from the vast interconnected databases that continue to grow in number and type.

Thursday, January 7, 2010

USB Communication

The first PCs shipped in 1981 used serial ports and parallel ports to connect external peripherals. Although the RS-232 serial and Centronics parallel technologies had improved gradually over the years, by the mid-'90s those technologies had reached their limits. In terms of connectivity to external devices, the PC of 1995 differed very little from the PC of 1981; the ports were a bit faster, perhaps, but they were fundamentally similar.
In the interim, the bandwidth needs of external peripherals had increased greatly. Character-mode dot-matrix and daisy-wheel printers had given way to graphic-mode page printers. Modems were pushing the throughput limitations of RS-232. Also, it was obvious that emerging categories of external peripherals—such as digital cameras, CD writers, tape drives, and other external storage devices—would require much more bandwidth than standard serial or parallel connections could provide. Neither was bandwidth the only limitation. Serial and parallel ports have the following drawbacks for connecting external peripherals:
Low bandwidth:Standard serial ports top out at 115 Kb/s, and parallel ports at 500 Kb/s to 2 Mb/s. Although these speeds are adequate for low-speed peripherals, they are unacceptably slow for hi-speed peripherals.
  • Point-to-point connections: Standard serial and parallel ports dedicate a port to each device. Because there is a practical limit to the number of serial ports and parallel ports that can be installed in a PC, the number and type of external devices that can be connected are limited.
  • Resource demands: Each serial or parallel port occupies scarce system resources, in particular an IRQ. A PC has only 16 IRQ lines, most of which are already occupied. It is often impossible to install the required number of serial or parallel ports because insufficient interrupts are available.
  • Ease-of-use issues: Connecting devices to serial or parallel ports may be complex and trouble-prone because cable pinouts and port configurations are not well-standardized. Serial ports in particular accept a wide variety of different cables, none of which is likely to be interchangeable with any other. Parallel ports use more standardized cable pinouts, but various parallel devices may require different port configurations. In particular, attempting to daisy-chain parallel devices via pass-through ports often introduces incompatibilities. Also, serial and parallel ports are always located on the rear of the computer, which makes connecting and disconnecting them inconvenient.
What PCs really needed was a fast bus-based scheme that allowed multiple devices to be daisy-chained together from a single port on the PC. SCSI had the potential to fulfill this need, but its high cost and complexity made it a nonstarter for that purpose. IEEE-1394, also called FireWire, might have been suitable, but FireWire is a proprietary Apple technology with, at the time, high licensing costs that motherboard and peripheral makers refused to pay. The PC industry had long been aware of the need for better external peripheral connectivity, but it was not until 1996 that vendors finally began to address it. Their solution is called Universal Serial Bus (USB).
USB is aptly named. It is universal because every modern PC or motherboard includes USB and because USB allows you to connect almost any type of peripheral, including modems, printers, speakers, keyboards, scanners, mice, joysticks, external drives, and digital cameras. It is serial in that it uses serial communication protocols on a single data pair. It is a logical bus (although the physical topology is a tiered star) that allows up to 127 devices to be daisy-chained on a single pair of conductors.
One convenient way to think about USB is as an outside-the-box Plug-and-Play bus. All connected USB devices are managed by the USB Host Controller Interface (HCI) in the PC, and all devices share the IRQ assigned to that HCI. Devices can (in theory, at least) be plugged or unplugged without rebooting the computer.
Although nearly all PCs and motherboards made since 1997 have USB ports, for a long time those ports were nearly useless, for three reasons:
  • USB requires native operating system support to provide full functionality. Until Windows 98 and Windows 2000 began to proliferate, that support was lacking. Windows NT 4 and early Windows 95 releases have no USB support, although a few peripheral makers provided custom drivers to allow their devices to work under these operating systems. Windows 95 OSR 2.1 introduced limited support for a few USB devices, but using USB under Windows 95 is an exercise in frustration. Windows 98/98SE/Me/2000/XP support USB 1.1. Windows XP supports USB 2.0 natively if SP1 or later is applied, although you may need to download the latest release of the USB 2.0 driver from the Windows Update site. Even with the latest service pack installed, Windows 2000 does not support USB 2.0 directly, although you can download native Windows 2000 USB 2.0 drivers from the Windows Update site. For more information about USB 2.0 support under Windows 2000 and Windows XP,. The Linux kernel has included USB support since 2.2.18. The Linux 2.4.20 or later kernel supports USB 2.0 directly.
  • USB peripherals were hard to find prior to 1999, and were often more expensive than versions that used legacy interfaces. By 2000, that situation had reversed itself, with USB peripherals readily available and often cheaper than peripherals with legacy interfaces. As of July 2003, nearly all mainstream external peripherals use the USB interface, and old-style serial and parallel peripherals are becoming hard to find.
  • Early USB ports and peripherals often exhibited incompatibilities and other strange behavior. Removing a connected peripheral might crash your system, or a newly connected device might require a reboot to be recognized. Some peripherals demanded that their drivers be reinstalled every time they were disconnected and then reconnected. Some peripherals drew so much power that other devices on that USB port would cease operating or the system would refuse to boot until the offending device was disconnected. And so on. In fact, these conflicts and incompatibilities remain a problem with more recent USB interfaces and devices, although the problems are less severe. As of July 2003, it appears that the teething pains USB experienced during its early days have largely been overcome, although even some very recent motherboards and chipsets continue to cause problems.
Despite these problems, by mid-2000 USB had achieved critical mass. With Windows 98/SE/Me and Windows 2000 available and USB peripherals shipping in volume, USB transitioned from a developing standard with great potential into a real-world solution, albeit a flawed one. USB has now largely replaced the legacy connectors that clutter the back of recent PCs.
Legacy-reduced motherboards that began shipping in 2000 replaced or supplemented serial and parallel ports with additional USB ports—usually four rather than the previously standard two. Legacy-free motherboards provide nothing but USB ports for connecting external peripherals (other than perhaps video), and are usually equipped with six USB ports—four at the rear and two on the front panel. A few legacy-free motherboards also include IEEE-1394 (FireWire) ports. Most external peripherals now have only a USB interface, as serial and parallel peripherals now teeter on the edge between obsolescent and obsolete.
Despite its slow start and the nagging problems that still sometimes plague it, USB has moved from being the wave of the future to being the current standard.
USB Characteristics
All USB devices share several general characteristics. Among these are:
  • Hot swapping :In theory, at least, USB peripherals can be connected to and disconnected from the bus at any time, without shutting down the computer or taking any action to inform applications or the OS that a device is being added or removed. In practice, this is not always the case, particularly with older interfaces and devices.
  • Automatic configuration: The USB host controller chipset installed on the PC motherboard or an add-on USB port card manages driver software and allocates bandwidth to each USB device attached to the bus. When a device is added or removed, the USB host controller automatically loads or unloads the driver for that device.
  • Interrupt sharing : A USB host controller occupies one interrupt, which is shared among all devices attached to the bus. This small resource footprint allows multiple USB host controllers to be installed in a system without undue demands on scarce IRQs. Although each USB host controller can in theory support as many as 127 devices, it's often better to distribute multiple USB devices among host controllers to avoid conflicts.
  • Bandwidth sharing and allocation : A USB 1.1 bus provides 12 Mb/s of bandwidth and a USB 2.0 bus provides 480 Mb/s of bandwidth, which is shared among all devices attached to the bus. Many devices may communicate simultaneously on a USB, provided that adequate bandwidth is available to service all of them at the same time. Properly designed USB peripherals and drivers use bandwidth dynamically, releasing bandwidth they are not using so that it can be used by other devices. For isochronous (time-critical) tasks such as audio or video streams, USB permits dedicating bandwidth as needed to a particular peripheral, although that dedicated bandwidth then becomes permanently unavailable for use by other peripherals.
  • Embedded power connections: In addition to providing a data connection, USB provides electrical power to peripherals, allowing you to eliminate the tangle of power cables required by traditional peripherals. That power, however, is limited to 500 milliamps (mA), which must be shared by all unpowered devices connected to the USB port. In practice, that means that only low-power peripherals, such as keyboards and mice, can be powered directly by a USB connection. High-power peripherals, such as printers and scanners, usually (but not always) have their own power bricks and are powered directly from a standard AC receptacle. For example, the Canon Canoscan 1220U relies on the USB port for power. Despite the minimal amount of current available on the USB port, it is possible to connect multiple unpowered USB peripherals by connecting them to powered USB hubs, each port of which has its own 500 milliamp supply.
The following sections detail other important characteristics of USB interfaces and devices.
USB Versions
Three versions of USB exist:
  • USB 1.0 :  USB 1.0 was the original specification. Most systems produced from 1996 through mid-1998 have USB 1.0 ports. USB 1.0 supports data rates of 1.5 Mb/s and 12 Mb/s. Relatively few USB 1.0 peripherals were produced because by the time USB peripherals began shipping in volume, USB 1.0 had been superseded by USB 1.1. USB 1.0-compliant peripherals generally operate properly when connected to a USB 1.1 or USB 2.0 interface, but USB 1.1 or USB 2.0 peripherals may not function properly when connected to a USB 1.0 interface. USB 1.0 interfaces are primitive and buggy, so if your motherboard has USB 1.0 ports, we recommend you disable those ports in BIOS Setup and install an add-on PCI USB port card. The first release of Windows 98 included USB 1.0 support.
  • USB 1.1 : USB 1.1 was formalized in September 1998, although many manufacturers produced USB 1.1-compliant motherboards and peripherals based on the proposed standard long before the formal standard was adopted. USB 1.1 also supports data rates of 1.5 Mb/s and 12 Mb/s, and was largely a clarification of ambiguities in the USB 1.0 specification. A few functional definitions were changed in USB 1.1, including minor changes to hub specifications, removing provision for battery-powered hubs, adding interrupt-out mode, and changes to recommended enumeration to eliminate the requirement for an 8-byte endpoint zero. Most changes, however, merely tightened up the existing requirements because experience had shown that there were enough ambiguities in the USB 1.0 specification to allow producing interfaces and devices that complied with the standard but were not interoperable. USB 1.1 interfaces and devices began shipping in mid-1998 and are still in production. Early USB 1.1 interfaces and devices suffered many incompatibilities, but current production models have relatively fewer such issues. You can download the Universal Serial Bus Revision 1.1 Specification from http://www.usb.org/developers/docs/usbspec.zip.
  • USB 2.0 : USB 2.0 was formalized in April 2000, with various errata and Engineering Change Notices later incorporated as supplements. USB 2.0 supports data rates of 1.5 Mb/s, 12 Mb/s, and 480 Mb/s, and provides full backward compatibility with USB 1.0 and USB 1.1 devices.
The uptake of USB 2.0 was slower than expected because USB 2.0 chipsets were slower in arriving than expected and because Microsoft initially did not provide USB 2.0 Windows drivers. Microsoft shipped native USB 2.0 drivers for Windows XP in early 2002 and for Windows 2000 in late 2002. Microsoft has no plans to provide Windows 9X USB 2.0 drivers. Using USB 2.0 under Windows 9X requires drivers supplied by the manufacturer of the motherboard (or PCI/USB card) and USB 2.0 peripherals.
With so many of the major players in the computer industry backing it, USB 2.0 saw a fast ramp-up during late 2002 and into 2003. Most motherboards introduced during fall 2002 and later have chipset-level USB 2.0 support, and by early 2003 USB 2.0 peripherals such as external hard drives and optical drives were readily available. Older systems can be upgraded to support USB 2.0 by adding an inexpensive adapter.
In addition to its much higher speed, the attraction of USB 2.0 is its standardization. Earlier USB versions had frequent compatibility problems, not the least because two different and slightly incompatible controller standards existed. USB 2.0 defines one controller interface, called the Enhanced Host Controller Interface (EHCI), which eliminates many compatibility issues. You can download the most recent complete Universal Serial Bus Revision 2.0 Specification from http://www.usb.org/developers/docs/usb_20.zip.
USB Speeds
USB defines the following three speeds, all of which can coexist on one bus:
  • Low Speed : Low Speed USB peripherals operate at a data rate of 1.5 Mb/s, and are supported by USB 1.1 and USB 2.0 interfaces. Low Speed USB is intended for such low-bandwidth devices as mice and keyboards, and is designed to be inexpensive to implement. Low Speed USB devices use a captive cable that can be no longer than 3 meters. Actual throughput on Low Speed USB is typically limited by overhead and other factors to about 1.2 Mb/s, or 150 KB/s.
  • Full Speed :  Full Speed USB peripherals operate at a data rate of 12.0 Mb/s, and are supported by USB 1.1 and USB 2.0 interfaces. Full Speed is the fastest speed supported by USB 1.0 and USB 1.1, and is intended for such moderate-bandwidth devices as printers and scanners. Full Speed USB devices use active components, which are more expensive to implement than the passive components used by Low Speed USB. Full Speed USB devices use a detachable cable that can be no longer than 5 meters. Full Speed USB seldom exceeds actual throughput of 900 KB/s or so.
  • Hi-Speed: Hi-Speed USB peripherals operate at a data rate of 480 Mb/s, and are supported only by USB 2.0 interfaces. Hi-Speed USB is intended for such high-bandwidth devices as external drives. Hi-Speed USB devices use active components that are more expensive than Full Speed USB components. Also, Hi-Speed USB hubs require additional circuitry to arbitrate between mixed Hi-Speed and Full Speed devices connected to that hub. Accordingly, Hi-Speed USB devices, particularly hubs, were initially more expensive than USB 1.1 devices, although that differential had largely disappeared by early 2003. Hi-Speed USB devices use the same detachable cable used by Full Speed USB devices, which can be no longer than 5 meters. Hi-Speed USB typically achieves actual maximum throughput of 35 to 40 MB/s, which is fast enough to keep up with all but the fastest hard drives.
Note that USB bandwidth is shared among all devices connected to the bus, and that the system reserves some bandwidth (typically 10%) for control signals and other administrative purposes. Although many Hi-Speed USB devices require much less than 480 Mb/s, if you do connect more than one high-bandwidth Hi-Speed device to a single USB channel, you may throttle the bandwidth available to each when more than one are operating. In that situation, if your system has more than one USB 2.0 HCI, we recommend splitting your high-bandwidth devices among different host controllers.
 USB Topology
USB uses a tiered-star topology. At the center of the star is the USB host, which defines the USB, and only one of which is permitted per USB. (Note, however, that more than one USB host may be installed in a PC, and in fact most recent motherboards have multiple USB hosts installed.) The USB host resides inside the PC, and is implemented as a combination of hardware, firmware, and software. The USB host has one or more USB root hubs, which provide attachment points called USB ports to which USB hubs and USB functions may be connected. (Loosely speaking, a USB function is a peripheral such as a scanner, printer, mouse, digital camera, etc.)
USB hubs use two types of connections. An upstream connection links the USB hub to another USB hub in the next-higher tier. A downstream connection links the USB hub to another USB hub or to a USB function located in the next-lower tier. Each USB hub has one upstream port, and may have as many as seven downstream ports. Via daisy-chaining, USB allows connecting a maximum of 127 devices (USB hubs and USB functions) in a maximum of seven tiers. The limitation on the number of tiers is required to ensure that the most distant USB device can communicate within the maximum allowable propagation delay defined in the USB specification.
If you mix USB 1.1 and USB 2.0 devices on a bus, it's important to understand the following points:
  • USB 2.0 hubs support USB 1.0/1.1 and USB 2.0 devices, including downstream USB 1.0/1.1 hubs and USB 2.0 hubs, providing full bandwidth to each device according to its version.
  • USB 1.0/1.1 hubs support USB 1.0/1.1 and USB 2.0 devices, but USB 2.0 devices connected to a USB 1.1 hub function as USB 1.1 Full Speed devices (i.e., at 12 Mb/s maximum), which means that it is pointless to connect a USB 2.0 hub downstream from a USB 1.1 hub.
  • Although USB 2.0 hubs provide transparent support for Low Speed and Full Speed USB devices, that support incurs significant overhead on the USB 2.0 hub and is intended only for limited use, such as connecting a USB mouse and keyboard. Connecting multiple Low Speed or Full Speed USB devices to a USB 2.0 hub, either directly or downstream, degrades the ability of the USB 2.0 hub to support Hi-Speed USB 2.0 devices. If you have many Low Speed or Full Speed USB devices, connect them to a USB 1.1 root hub port and reserve your USB 2.0 ports for Hi-Speed devices.
 USB Cables and Connectors
USB connectors and cables are simple and rigidly standardized. USB defines three plug/jack combinations, designated Series A, Series B, and Series mini-B.
The narrow Series A jacks appear on the back of a PC or USB hub, and may be labeled "down" jacks. These provide connection points for USB peripherals, including USB hubs. Some USB peripherals have permanently connected cables that terminate in a Series A plug. Series A plugs always face upstream, toward the host system, and Series A jacks always face downstream, toward the device.
  • USB Series A connector: Peripherals that do not have a permanent cable instead have a Series B jack, shown in figure. Series B plugs always face downstream, and Series B jacks always face upstream. Use a standard USB A-B device cable to connect these peripherals to the PC or hub.
  •  USB Series B connector: A USB cable uses four wires, two each for data and power. The data wires are a green/white twisted pair that carry +Data and -Data, respectively. USB uses differential digital signaling, which means that the same signal is present on each data wire, but with different polarity. This allows electrical noise to be eliminated from the circuit because induced voltages affect the + and - signals equally, netting to zero. The power wires may or may not be twisted. The red wire carries nominal +5V DC, and the black is a ground return for the power circuit. The USB specification permits cables as long as 5 meters (~16 feet), a limitation enforced by the allowable propagation delay between a port and a connected device.
The USB specification defines only three types of USB cable:
  • Low-speed captive cable : Keyboards and similar low-speed devices use a USB low-speed captive cable. The maximum allowable length for a low-speed USB cable is 3 meters (9 feet, 10 inches). This limit is determined by the rise and fall times of low-speed USB signaling, which restricts low-speed USB cables to a maximum length only 60% that of standard full-speed/hi-speed cables. A USB standards-compliant low-speed cable must be captive or hardwired, which is to say that the cable either must be permanently connected to the device or must use a nonstandard or proprietary connector on the end that connects to the device. The concern is that if a low-speed USB device used a standard USB device connector, a standard detachable USB cable longer than acceptable for low-speed USB devices could be used to connect that device.
  • Standard detachable cable : Most full-speed and hi-speed USB devices use a USB standard detachable cable. This cable is terminated on one end with a Series A plug and on the other with a Series B plug or Series mini-B plug. The maximum allowable length for a standard detachable cable is 5 meters (16 feet, 5 inches).
  • High-/full-speed captive cable:  Some full-speed and hi-speed USB devices use a USB hi-/full-speed captive cable. This cable is terminated on one end with a Series A plug. The other end terminates either as a hard-wired connection to the device or with a vendor-proprietary connector. The maximum allowable length for a hi-/full-speed captive cable is also 5 meters.
Although the USB standard states that only these three cable assemblies are acceptable, it further emphasizes it by specifically prohibiting the following cable assemblies, all of which have been manufactured and sold despite their non-compliance:

  • Cable assembly that violates USB topology rules:Some vendors produce cables that terminate with two Series A plugs, two Series B receptacles, or two Series mini-B receptacles, which allow connecting USB ports and devices in prohibited combinations. 
  • Extension cable assembly: A cable that terminates with a Series A plug and a Series A receptacle, a Series B plug and a Series B receptacle, or a Series mini-B plug and a Series mini-B receptacle is specifically prohibited by the USB specification. However, many vendors sell such cables, including some vendors who should know better. The purpose of these cables is to extend the distance between port and device by joining multiple cable segments. The risk is that the joined cables will exceed the maximum 5 meters permissible under the standard, which can cause problems, from sporadic operation to complete failure of the entire USB. Even if the joined cables total less than 5 meters, the electrical characteristics of the extended cable may fall outside specifications. Avoid using extension cables under any circumstances. 

  • Standard detachable cable assembly for low-speed USB devices : The USB specification does not permit low-speed devices to use standard detachable cables. Standard detachable cables are used only to connect hi-speed/full-speed devices. Their capacitive load exceeds the maximum allowable for a low-speed device.
 USB Data Transfer Modes
USB uses a set of unidirectional and bidirectional pipes to transfer user data and control information between the host and USB devices. Each device may support multiple pipes for different purposes, and data transferred in one pipe is independent from data transferred in other pipes. For example, a USB printer might have one pipe that it uses to receive page data from the host, and a second pipe that it uses to transfer status information to the host. USB defines the following data flow types:
  • Isochronous Data Transfers : Isochronous Data Transfers are used for periodic, continuous communication between the host and a device, typically time-critical data such as audio or video streams. Isochronous Data Transfers are enabled by reserving the required amount of bandwidth for the isochronous device, which the USB host controller makes unavailable to other devices whether the isochronous device happens to be using that bandwidth at any given time. Isochronous Data Transfers have the highest priority for bandwidth. If all available bandwidth is reserved for Isochronous Data Transfers, no other device can use the USB.
  • Interrupt Data Transfers : Interrupt Data Transfers are used for small, limited-latency transfers when timely, reliable delivery of data is required—for example, to receive coordinate changes from a mouse or status changes from a modem. Interrupt Data Transfers have lower priority for available bandwidth than do Isochronous Data Transfers.
  • Control Transfers: Control Transfers are used to configure a device when it is connected to the USB, and may be used for other device-specific control, configuration, and status commands, including controlling other pipes on the device. Control Transfers usually comprise small amounts of data that are not time-critical, and have lower priority for available bandwidth than do Interrupt Data Transfers.
  • Bulk Data Transfers : Bulk Data Transfers are used to communicate large amounts of nonperiodic, bursty data with relaxed timing constraints to a device—e.g., sending page data to a USB printer. Bulk Data Transfers are not time-critical, and have the lowest priority for available bandwidth. Some early HCIs implemented bulk mode poorly, and so work properly with USB devices such as keyboards and mice but are unsuitable for use with devices such as scanners and printers.

Wednesday, January 6, 2010

Network Interface Cards

Role of NICs
Network interface cards (NICs) are known by a variety of names including network adapters or cards, network adapter boards, and media access cards. Regardless of their name, they share a common set of functions in enabling computers to communicate across a network. Network interface cards are often defined by:
  • The type of Data Link protocol they support, such as an Ethernet adapter or a Token Ring adapter
  • The type of media they connect to
  • The data bus for which they were designed
In order to interact with the computer where it is installed, the network adapter, like any other peripheral device, must have a software driver installed. This driver allows the operating system and higher level protocols to control the functions of the adapter.
The NIC performs the following functions:
  • Translates data from the parallel data bus to a serial bit stream for transmission across the network.
  • Formats packets of data in accordance with protocol.
  • Transmits and receives data based on the hardware address of the card.
Translating from Parallel to Serial
The network adapter, like any device installed in a system, is attached to the CPU via a parallel data bus, such as an ISA or PCI bus. These parallel buses move data quickly between devices internal to the system. Network transmission, on the other hand, relies on a serial data stream in order to transmit messages. Therefore, all data coming into the network card from the bus must be transformed into a serial data stream before transmission.
Formatting Packets
Data transmission within a network interface card has two characteristics. The first of these is the transmission of binary bits across the network medium. A Physical Layer protocol defines the voltages and signal standards used to represent binary data on the network. This is built into the hardware on the card. In addition, the Data Link protocol supported by the card defines a packet structure for sending and receiving data. This structure includes fields for addressing and control information as well as the data. This function is implemented by the card and its software driver.
Transmitting and Receiving Data
The primary function of the network adapter is to transmit and receive data between other network interface cards across the network media. It does this based on the fact that each card has an address, known as the MAC (media access control) address or hardware address. This address is generally built into the card by the manufacturer, and includes portions that identify the brand, as well as uniquely identifying the card itself. Each card is designed to pick out messages on the network destined for their hardware address as well as broadcast messages.
Configuration Settings
Configuration of a network interface card is a two-step process that involves:
  1.  Setting the configuration parameters on the card itself 
  2. Configuring the network driver to match the settings on the card
Setting parameters on a network adapter has traditionally been performed using jumpers on the card. These jumpers are rows of pins on the card that are jumpered by plugging small receptacles over two pins, which closes a circuit between them. In some cases, DIP switches are used instead of jumpers, These small switches, in a dual-inline-pin (DIP) configuration, are opened or closed as appropriate for the jumper setting. More recently, software-configurable adapters have rendered these jumpers obsolete. Software-configurable adapters use a software configuration utility to set parameters, which allows them to be reconfigured without accessing or removing them from the system. Software-configurable adapters also support plug-and-play operating systems that dynamically assign these parameters.
The parameters that typically need to be set include:
  •  I/O base address  The I/O base address, IRQ, and DMA channel are common parameters that may need to be set for many types of peripheral devices. The I/O base address refers to the starting address for a series of registers used to control the card. A common I/O address for a network card is 300h. Care must be taken to ensure that this address in not already in use by another device or the adapter will fail.
  • IRQ  The IRQ (interrupt request line) is used by the device to interrupt the processor and request service. There are sixteen IRQ lines, many of which are routinely committed to devices such as the disk controllers, serial and parallel ports, and others. A common configuration for a network card may use IRQ 3, which is also used by the serial port COM2, IRQ 5, or IRQ 10. Like the I/O address, the IRQ must be chosen so the card does not conflict with another device. 
  • DMA channel  DMA (direct memory access) is a process whereby some devices can directly access memory on the system without the intervention of the CPU. This offloads the processor from having to handle these data transfers, and speeds the transfer process. Any device with DMA capability is a DMA channel, which it uses to control direct memory access. Since many hardware devices do not use this feature, there is more flexibility in configuring this setting. 
  • Base memory address  The base memory address may be a configurable parameter on those cards that make use of system RAM. The base memory address refers to a section of memory set aside for use as buffer space. If a network card does not have this setting, it may not need any system RAM for buffer space, or the parameter may not be configurable. 
  • Transceiver type   The transceiver type setting is required for network adapters that are capable of attaching to more than one media type. Typical cards of this nature include Ethernet cards that have both twisted pair and coaxial connectors. This is one of the more common oversights in configuring a network interface card, and renders the card nonfunctional if configured for the wrong media connection. To alleviate this problem, some cards of this type have an auto setting that causes the card to search for the transceiver that has media connected to it.

 Transceiver Types
Transceivers are that portion of the network interface that actually transmit and receive electrical signals across the transmission media. They are also the part of the interface that actually connects to the media. Transceiver types can be classified as being either on-board or external.
  1. On-Board Transceivers  On-board transceivers are built onto the network interface card. With these types of transceivers, the media connector is built right on the back of the NIC. Common examples of this include RJ-45 receptacles for twisted-pair and BNC connectors for thinwire coaxial cable.
  2. External Transceivers With an external transceiver, the actual media connection is made external to the network interface card using a small device that attaches via an extension cable to the network interface card. These types of connections use an AUI (adapter unit interface) connector, also called a DIX (Digital-Intel-Xerox) connector, on the back of the network interface card. The AUI connector is a female 15-pin D connector that looks very much like a joystick port. An AUI connector allows a network card to be used with multiple types of media. A common implementation is to use this configuration for an Ethernet card that can be attached to twisted-pair, thickwire or thinwire coax by just changing the external transceiver type.  
 Configuration
 The transceiver type configuration is set using jumpers, DIP switches, or configuration software, in the same way that the I/O base address and other parameters are set on the card. Most cards have at most two types of transceivers. During configuration, these may be referred to in the following ways:
  1. Internal vs. External, where the card has an AUI port and an onboard twisted-pair or coaxial connector
  2. DIX or AUI indicating the use of an external transceiver
  3. Coax, 10Base2, or BNC indicating the onboard thinwire Ethernet connection
  4. TP, UTP, or 10BaseT indicating the on-board twisted-pair connection
  5. The auto setting may be available if the card can autosense the connected media  
 Data Bus Compatibility 
The network interface card has to be connected in two places for it to function. It has to be connected to the network media through a transceiver, either internal or external. It also has to be connected to the processor in which it is installed via a data bus. This data bus provides power, control information, and data to the card.
Network interface cards are designed to plug into and operate with a specific data bus type. These types include:
  • ISA  IBM developed the ISA (Industry Standard Architecture) bus for use on their PCs. Originally an 8-bit bus, it was later extended to 16 bits using a connector strategy that retained compatibility for the older 8-bit cards. This is still one of the most common buses in use, particularly for general purpose workstation PCs. Network cards for ISA buses are the least expensive but lowest performance cards due to the limitations of the 16-bit architecture. 
  • MCA  Recognizing the speed limitations of the 16-bit bus, both IBM and other companies released new bus architectures in 1988. IBM’s 32-bit data bus was called MCA (Microchannel Architecture). It was released with IBM’s PS/2 product line, and was a totally new architecture that was not backward compatible with ISA cards. MCA adapters were predictably more expensive and offered higher performance than an ISA adapter. IBM has since phased out MCA and these types of adapters have become increasingly difficult to obtain.
  • EISA EISA (Extended Industry Standard Architecture) is an alternate 32-bit bus architecture that was designed by a consortium of companies, including Hewlett-Packard and Compaq. It was designed to be backward compatible with ISA devices and is the data bus of choice for PC servers in non-IBM environments for high performance and throughput. They are also higher in terms of cost and performance than ISA cards. 
  • PCI PCI (peripheral component interconnect) is the current favorite for high-speed bus interfaces. It is supported by the latest Intel-based and Apple computers. It is a 32-bit bus often called a local bus, and was first used for video adapter cards to increase their speed in graphics rendering. It has since been adopted for use by devices that need high throughput, such as disk controllers and network interface cards. This is the data bus preferred for network interface cards in high-capacity servers today.
  • PC Card or PCMCIA  The PC card bus, formerly known as PCMCIA, is an architecture designed primarily for laptops and other portable computers. Adapters for this bus are sometimes called credit card adapters after their size and shape, which is roughly equal to the size of a credit card. Because of their small size, most have a receptacle to which an external adapter must be connected for attachment to the media. These network interface cards are also sometimes combined with a modem in a single card called a combo card. 
Connectors
 The types of transceivers and media that can be served by a network interface card determine the appropriate connector. Each media type has a typical connector type or connection method.

  •  Thickwire Coax  Thickwire, or standard Ethernet coax, uses a connection method that typically involves an external transceiver connected to the adapter’s AUI port. This external transceiver has a connection called a vampire tap. To attach a thickwire transceiver to the media, you must drill a hole in the cable using a special drilling jig that controls the depth of the hole. This jig prevents the drill from drilling through and severing the center conductor.  The vampire tap consists of a pin that is inserted into the hole drilled in the cable, and a clamp that holds the tap onto the cable. One of the challenges of this type of connection is to position the tap so it contacts the center conductor without shorting to the shield surrounding it. These difficulties, as well as the cost and size of thickwire cable, have rendered it largely obsolete, although it may occasionally be found in existing installations.
  • Thinwire Coax Thinwire coax can be attached directly to an adapter if an on-board transceiver is used. In this case, a connector called a BNC or barrel connector on the network card attaches to a T-connector. The T-connector has a female fitting that attaches to the card, as well as two additional male fittings that attach to cable segments or a terminator. Each end of a thinwire Ethernet segment must be terminated, so the last node on each end may have a terminator attached to the side of the T-connector opposite the inbound cable. All other nodes use T-connectors with cable segments attached to both sides, just like Christmas tree lights. A thinwire segment cannot be attached directly to the BNC connector on the network adapter, but must use a T-connector.  An alternative connection method can use the AUI connector with an external thinwire transceiver. In this case, the cable attachment to the transceiver is still made through a T-connector.
  • Twisted-Pair Wiring The typical connector for a twisted-pair connection is called an RJ-45 connector. The RJ-45 connector looks like an oversized phone connector. The reason for the difference in size is that a phone connector has four wires, while the RJ-45 is an 8-wire connector.  An RJ-45 patch cable can be plugged directly into the back of a twisted-pair network adapter or, less commonly, it can be attached to an external transceiver. The patch cable usually runs to a wall receptacle, which is wired back to a patch panel, and ultimately back to a wiring hub.
  • Fiber-Optic Cabling Fiber-optic adapters generally have two connectors, one each for incoming and outgoing fiber cables. The mechanical connectors that join the cable are called ST connectors, and are designed to pass light seamlessly across the joined fiber segments. For this reason, these connectors must be made with great precision. Fiber-optic runs are generally made back to a concentrator that performs a hub function.  In many situations, fiber-optic cabling is used to connect high-speed computers, and to provide a high-speed backbone to which slower speed LANs are attached. The LANs might connect copper media, such as twisted-pair or coaxial cable, to a set of hubs that are then bridged to the fiber-optic backbone for high-speed data transfer between LANs.  
 Server NICs vs. Client NICs
The speed and capacity of an NIC depends on a wide range of factors. First among them is the data transfer rate for the Data Link protocol. That is, a 16MB Token Ring card is faster than a 10MB Ethernet card. In addition, as discussed earlier, the data bus connecting the card to the CPU is a determinant of potential speed. There may also be design features of the card that speed up its ability to process and transfer data. In choosing a network adapter for use in a network node, it is important to consider the role of the machine, and the resultant demands placed on its network card.
Difference in Capacity Requirements
In contrasting NICs in servers with those in workstations, the patterns of traffic determine the performance characteristics needed. For a client workstation, there is a single user generating network traffic with a single or limited number of servers. The size and frequency of file transfers initiated by the client determines the requirements for a NIC card in this situation. In most cases, the demands on a client workstation NIC are relatively modest. There are also compelling economic reasons for not putting high-performance NICs in hundreds or thousands of client machines unless they are absolutely necessary.
By contrast, a server is constantly processing requests from multiple users, and might be servicing hundreds of user connections at a given time. In this situation, speed is very important, since a slow NIC impacts every user waiting to be processed by the server. Unless the network is very small, the server specification will certainly include a high-performance network adapter.
Matching the Function with Appropriate NIC Features
We have already discussed the impact of data bus type on the performance of the network interface card. 32-bit bus architectures like EISA and PCI support faster transfer rates than a 16-bit ISA bus. In addition, there are other design features that may improve the performance of the processor.
Shared memory between the NIC and the system processor may improve speed and throughput. This shared memory may reside in system RAM, or may be on the network adapter card.
Offloading the system processor by using DMA or bus mastering for transfers to memory may also increase performance. Bus mastering is a process by which the network card assumes temporary control of the data bus instead of the system processor, and is a feature of both EISA and MCA buses. Including an on-board processor on the NIC also reduces demand on the system processor and increase speed.
Buffering data using RAM on the network adapter may also speed performance by allowing the card to accept data faster than it can process it. The buffers store the excess data until the card can service it.
Specialized NICs
There are network interface cards available for a wide variety of situations and environments. Two of these are NICs for wireless media and network adapters used in diskless workstations.
  1.  Wireless NICs  There are a variety of wireless media that involve the use of radio frequency transmission, or light transmission via laser or infrared. Wireless NICs are used to accommodate these transmission methods. The main difference between a wireless NIC and a more traditional cabled NIC lies in the transceiver. In the case of radio frequency NICs, the transceiver performs the functions of a radio transceiver, and generally has an antenna attached. These may interact directly with other wireless nodes, or may attach to a wired LAN via a wireless concentrator.  In the case of an optical transmission method such as infrared, the transceiver uses LEDs and photosensitive devices to generate and recognize the data stream. These transmission methods generally require "line-of-sight" alignment between communicating nodes.
  2. Remote Boot PROMs  The diskless workstation is a concept that has been around for some time. Designed for use in fairly large environments, it originally had two goals. The first was to enhance security on the network by removing local storage from the end user, and requiring that all data and applications be stored on servers. By managing user access to this information via server permissions, the LAN administrator could more effectively control the environment. The second goal of diskless workstations was the cost of mass storage. By removing the cost of local storage, particularly as workstation populations increased, companies could save costs. This has become less of an issue as the cost of mass storage has declined.  The challenge of using diskless workstations is how to boot them. Normally, a system at startup looks for a hard disk that is bootable in order to start the operating system. This specifically involves looking for a Master Boot Record that tells the system where to find the boot files. In the case of a diskless workstation, there is no disk available to perform this function, since all storage is accessed through the network adapter. A remote boot PROM can be added to a network adapter to allow the system to boot using files stored on the network. An adapter capable of doing remote boot has an empty socket that can be populated with a boot PROM. Once installed and configured, this boot PROM directs the system to the network location of the boot files.  
 NDIS and Novell ODI Network Drivers
The process of adding devices to a computer involves not only the physical installation of the devices, but also the installation of appropriate software to allow the system to control the device. This software is the device driver. Similarly, network interface cards require network drivers to function.
NIC Drivers
The function of the network driver is to act as an intermediary between the hardware components on the network adapter and the higher levels of software that need access to the card. On the low end, a network driver directly accesses the hardware registers and memory space used to pass instructions and data to the card. On the high end, the driver must connect with, or bind to a transport protocol, such as TCP/IP, that performs high-level functions such as routing, error checking, and session establishment across the network. From the standpoint of a network operating system, installing an adapter means installing the network driver that controls the adapter.
Purpose of NDIS and ODI Architectures
The first network drivers were designed so that the driver included not only the Data Link protocol, but also the high-level protocols used by the network. This monolithic approach to driver design was adequate for proprietary networks, where the protocols at all levels were consistent and predefined. With the rise of multi-vendor networks, this driver design became a problem, since it could only accommodate one protocol at a time.
Both NDIS (Network Device Interface Specification) and Novell’s ODI (Open Driver Interface) were designed to overcome this limitation and allow multiple protocols to be used with the same network card. Both standards achieve this by adding a layer of software that provides a common interface on the bottom end to which any compliant driver can attach, and a common interface on the top to which multiple compliant protocols can be attached. This layer is called the NDIS wrapper or, in the case of ODI, the Link Support Layer. In addition to providing these compatible interfaces, this software layer also provides a routing function to match incoming messages to the appropriate protocol stack.
Placement in OSI Model
The placement of the network interface card and its associated driver reside at the lowest two levels of the OSI model. The Physical Layer functions of transmitting bits are incorporated into the hardware design of the card. The Data Link functions involving point-to-point data transmission are handled by the network driver. NDIS or ODI components reside at the top end of this layer, where the Data Link protocol such as Ethernet meets the network protocol, such as IP or IPX.
Binding Drivers to Protocols
Each network software component must be joined to those below and above it in order for the software layers to interact. This process is called binding. The network interface driver must be bound to the network and transport protocols above it, and these in turn must be bound to the services that use them. These bindings may be configured manually, or may be automatic. In the case of Windows NT, all network software components are bound by default. Manual configuration requires unbinding components that do not need to interact.
Another issue with bindings concerns binding order. Because of the functionality of NDIS and ODI, a network adapter may operate using several protocols. Where multiple protocols are bound to the adapter, the most commonly used protocol should be listed first in the client’s binding order. The reason for this is that the system may attempt to communicate on each protocol until it gets a response. Less traffic and time is wasted if the first protocol it tries is the one that succeeds.
Installing and Configuring Network Adapters
The process of installing a network adapter involves two activities. The first of concerns the physical installation of the card into the computer. The second involves installing and configuring the software driver, and possibly setting up the high-level protocol software to which it will be bound.
 Physical Installation
  • Before beginning the physical installation of the network adapter, the following issues should be addressed: 
  • Ensure that the adapter is compatible with the data bus, the protocol, the media, and the network operating system.
  • Ensure that there is an open bus slot on the machine in which to install the adapter.
  • Ensure that there are system resources, including an IRQ level, base I/O address, and DMA channel available to be assigned to the adapter. Choose and record parameters from available settings, unless the adapter will be configured automatically through plug and play.
  • Ensure that the adapter includes all items necessary for installation. These may include external transceivers or adapters. It may also include such items as a T-connector for a thinwire Ethernet adapter and product documentation. Software, including the network driver and utilities for testing and configuring the adapter, should also be included.
  • If a software driver is not provided, a driver may be included with operating system installation media. If not, drivers and driver updates may be available for download from the adapter manufacturer via the Internet or a bulletin board service.
  • Remember that the network adapter cannot do any useful work until high-level protocols and network services have also been installed and configured.  
 Installation Process
 To install a network adapter, take the following steps:
  1. Review the installation instructions included in the documentation. This can help you avoid unnecessary problems and make the installation more efficient.
  2. If necessary, configure selected settings on the network adapter, using either jumper plugs or DIP switches. If this is required, make sure that all settings are completed before installing the card or it will have to be removed again. With a software-configurable adapter, this configuration occurs after the physical adapter is installed.
  3. Power down the computer and remove the outer case. The system chassis and the installing technician should be grounded using ESD (electrostatic discharge} protection, such as wrist strap or static mat. This prevents damage to the adapter from static electricity.
  4. There may also be a cover plate on the back of the system chassis, over the chosen bus slot, that must be removed to allow access to the card. Retain the screw holding on this plate and reuse it to secure the adapter card once it is installed.
  5. Insert the network adapter into the chosen data bus slot and make sure it is securely seated in the slot. Care should be taken during this process so that the adapter and adjacent cards are not inadvertently damaged or shorted to each other. Make sure that the rear connectors on the adapter are properly aligned, so that they are not damaged or partially obstructed by the computer chassis. Once properly positioned, secure the card using the screw retained in step 4.
  6. Finally, replace the outer cover on the system and make the external connections to the adapter, including the media or the external transceiver and media. 
Testing
Once the network adapter is physically installed in the machine, it may be possible to use the supplied diagnostics to test it. Alternatively, testing may occur as part of the driver installation. The adapter may also have some status LEDs that show when it is operating. These may not function, however, until the driver installation and configuration are complete.
With a plug-and-play operating system restarting the system may cause it to discover the card, identify it, and prompt for the driver software. If this driver is available on the hard disk and can be found, it may be loaded automatically. Remember to attach the network interface card to the media or it may report an error.