Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
USB 1.0

USB 1.0

:For other meanings of the abbreviation USB see USB (disambiguation). USB (disambiguation) USB (disambiguation) USB (disambiguation) Universal Serial Bus (USB) provides a serial bus standard for connecting devices, usually to a computer, but it also is in use on other devices such as set-top boxes, game consoles such as Sony's PlayStation 2, Microsoft's Xbox 360, Nintendo's Revolution and PDAs.

Overview

A USB system has an asymmetric design, consisting of a host controller and multiple devices connected in a tree-like fashion using special hub devices. There is a limit of 5 levels of branching hubs per controller. Up to 127 devices may be connected to a single host controller, but the count must include the hub devices as well. A modern computer likely has several host controllers so the total useful number of connected devices is beyond what could reasonably be connected to a single controller. There is no need for a terminator on any USB bus, as there is for SPI-SCSI and some others. The design of USB aimed to remove the need for adding separate expansion cards into the computer's ISA or PCI bus, and improve plug-and-play capabilities by allowing devices to be hot swapped or added to the system without rebooting the computer. When the new device first plugs in, the host enumerates it and loads the device driver necessary to run it. device driver USB can connect peripherals such as mice, keyboards, gamepads and joysticks, scanners, digital cameras, printers, hard disks, and networking components. For multimedia devices such as scanners and digital cameras, USB has become the standard connection method. For printers, USB has also grown in popularity and started displacing parallel ports because USB makes it simple to add more than one printer to a computer. As of 2004 there were about 1 billion USB devices in the world. As of 2005, the only large classes of peripherals that cannot use USB (because they need a higher data rate than USB can provide) are displays and monitors, data acquisition devices that use firewire ports, and high-quality digital video components.

Standardization

The design of USB is standardized by the USB Implementers Forum (USB-IF), an industry standards body incorporating leading companies from the computer and electronics industries. Notable members have included Apple Computer, Hewlett-Packard, NEC, Microsoft, Intel, and Agere. The USB specification is at version 2.0 as of January 2005. Hewlett-Packard, Intel, Lucent, Microsoft, NEC and Philips jointly led the initiative to develop a higher data transfer rate than the 1.1 specification to meet the bandwidth demands of developing technologies. The USB 2.0 specification was released in April 2000 and was standardized by the USB-IF at the end of 2001. Previous notable releases of the specification were 0.9, 1.0, and 1.1. Each iteration of the standard is completely backward compatible with previous versions. Smaller USB plugs and receptors called Mini-A and Mini-B are also available, as specified by the On-The-Go Supplement to the USB 2.0 Specification. The specification is of revision 1.0a currently.

Technical details

2001 USB connects several devices to a host controller through a chain of hubs. In USB terminology devices are referred to as functions, because in theory what we know as a device may actually host several functions, such as a router that is a Secure Digital Card reader at the same time. The hubs are special purpose devices that are not officially considered functions. There always exists one hub known as the root hub, which is attached directly to the host controller. These devices/functions (and hubs) have associated pipes (logical channels) which are connections from the host controller to a logical entity on the device named an endpoint. The pipes are synonymous to byte streams such as in the pipelines of Unix, however in USB lingo the term endpoint is (sloppily) used as a synonym for the entire pipe, even in the standard documentation. These endpoints (and their respective pipes) are numbered 0-15 in each direction, so a device/function can have up to 32 active pipes, 16 inward and 16 outward. (The OUT direction shall be interpreted out of the host controller and the IN direction is into the host controller.) Endpoint 0 is however reserved for the bus management in both directions and thus takes up two of the 32 endpoints. In these pipes, data is transferred in packets of varying length. Each pipe has a maximum packet length, typically 2^n bytes, so a USB packet will often contain something on the order of 8, 16, 32, 64, 128, 256, 512 or 1024 bytes. Each endpoint can transfer data in one direction only, either into or out of the device/function, so each pipe is uni-directional. All USB devices have at least two such pipes/endpoints: namely endpoint 0 which is used to control the device on the bus. There is always an inward and an outward pipe numbered 0 on each device. The pipes are also divided into four different categories by way of their transfer type:
- control transfers - typically used for short, simple commands to the device, and a status response, used e.g. by the bus control pipe number 0
- isochronous transfers - at some guaranteed speed (often but not necessarily as fast as possible) but with possible data loss, e.g. realtime audio or video
- interrupt transfers - devices that need guaranteed quick responses (bounded latency), e.g. pointing devices and keyboards
- bulk transfers - large sporadic transfers using all remaining available bandwidth (but with no guarantees on bandwidth or latency), e.g. file transfers When a device (function) or hub is attached to the host controller through any hub on the bus, it is given a unique 7 bit address on the bus by the host controller. The host controller then polls the bus for traffic, usually in a round-robin fashion, so no device can transfer any data on the bus without explicit request from the host controller. To access an endpoint, a hierarchical configuration must be obtained. The device connected to the bus has one (and only one) device descriptor which in turn has one or more configuration descriptors. These configurations often correspond to states, e.g. active vs. low power mode. Each configuration descriptor in turn has one or more interface descriptors, which describe certain aspects of the device, so that it may be used for different purposes: for example, a camera may have both audio and video interfaces. These interface descriptors in turn have one default interface setting and possibly more alternate interface settings which in turn have endpoint descriptors, as outlined above. An endpoint may however be reused among several interfaces and alternate interface settings. The hardware that contains the host controller and the root hub has an interface toward the programmer which is called Host Controller Device (HCD) and is defined by the hardware implementer. In practice, these are hardware registers (ports) in the computer. At version 1.0 and 1.1 there were two competing HCD implementations. Compaq's Open Host Controller Interface (OHCI) was adopted as the standard by the USB-IF. However, Intel subsequently created a specification they called the Universal Host Controller Interface (UHCI) and insisted other implementers pay to license and implement UHCI. VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. The main difference between OHCI and UHCI is the fact that UHCI is more software-driven than OHCI is, making UHCI slightly more processor-intensive but cheaper to implement (excluding the license fees). The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations which increased cost. During the design phase of USB 2.0 the USB-IF insisted on only one implementation. The USB 2.0 HCD implementation is called the Extended Host Controller Interface (EHCI). Only EHCI can support high-speed transfers. Each EHCI controller contains four virtual HCD implementations to support Full Speed and Low Speed devices. The virtual HCD on Intel and Via EHCI controllers are UHCI. All other vendors use virtual OHCI controllers. On Microsoft Windows platforms, one can tell whether a USB port is version 2.0 by opening the Device Manager and checking for the word "Enhanced" in its description; only USB 2.0 drivers will contain the word "Enhanced." On Linux systems, the lspci command will list all PCI devices, and a controllers will be named OHCI, UHCI or EHCI respectively, which is also the case in the Mac OS X system profiler.

Device classes

Devices that attach to the bus can be full-custom devices requiring a full-custom device driver to be used, or may belong to a device class. These classes define an expected behaviour in terms of device and interface descriptors so that the same device driver may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device. The most used device classes are:
- USB human interface device class, keyboards, mice, etc.
- USB mass storage device class used for keydrives, portable hard drives, Multi Media Card readers, digital cameras, digital audio players etc. This device class presents the device as a block device (almost always used to store a file system).
- USB communications device class ("CDC") used for modems (and winmodems), network cards (and cross-over cables), ISDN connections, Fax
- USB printer device class, printer-like devices
- USB audio device class, sound card-like devices
- USB video device class, webcam-like devices, motion image capture devices Device classes are decided upon by the Device Working Group of the USB Implementers Forum.

USB signaling

Standard USB signaling

webcam USB signals are transmitted on a twisted pair of data cables, labelled D+ and D−. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. D+ and D− operate together; they are not separate simplex connections.
Transfer speed
USB supports three data rates.
- A Low Speed rate of 1.5 Mbit/s (183 KiB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice and joysticks.
- A Full Speed rate of 12 Mbit/s (1.4 MiB/s). Full Speed was the fastest rate before the USB 2.0 specification and many devices fall back to Full Speed. Full Speed devices divide the USB bandwidth between them in a first-come first-served basis and it is not uncommon to run out of bandwidth with several isochronous devices. All USB Hubs support Full Speed.
- A Hi-Speed rate of 480 Mbit/s (57 MiB/s). (Commonly called USB 2.0) Not all USB 2.0 devices are Hi-Speed. A USB device should specify the speed it will use by correct labeling on the box it came in or sometimes on the device itself. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or High-Speed after passing a compliancy test and paying a licensing fee. Hi-Speed devices should fall back to the slower data rate of Full Speed when plugged into a Full Speed hub. Hi-Speed hubs have a special function called the Transaction Translator that segregates Full Speed and Low Speed bus traffic from Hi-Speed traffic. The Transaction Translator in a Hi-Speed hub (or possibly each port depending on the electrical design) will function as a completely separate Full Speed bus to Full Speed and Low Speed devices attached to it. This segregation is for bandwidth only; bus rules about power and hub depth still apply.

Mini USB signaling

USB-IF Most of the pins of a mini USB connector are the same as a standard USB connector, except pin 4. Pin 4 is called ID and is connected to pin 5 for a mini-A and is either unconnected or connected to pin 5 through a resistor for a mini-B.

USB connectors

The connectors which the USB committee specified were designed to support a number of USB's underlying goals, and to reflect lessons learned from the varied menagerie of connectors then in service. In particular:
- The connectors are designed to be robust. Many previous connector designs were fragile, with pins or other delicate components prone to bending or breaking, even with the application of only very modest force. The electrical contacts in a USB connector are protected by an adjacent plastic tongue, and the entire connecting assembly is further protected by an enclosing metal sheath. As a result USB connectors can safely be handled, inserted, and removed, even by a small child. The encasing sheath and the tough moulded plug body mean that a connector can be dropped, stepped upon, even crushed or struck, all without damage; a considerable degree of force is needed to significantly damage a USB connector.
- It is difficult to incorrectly attach a USB connector. Connectors cannot be plugged-in upside down, and it is clear from the appearance and kinesthetic sensation of making a connection when the plug and socket are correctly mated.
- The connectors are particularly cheap to manufacture.
- The connectors enforce the directed topology of a USB network. USB does not support cyclical networks, so the connectors from incompatible USB devices are themselves incompatible. Unlike other communications systems (e.g. RJ-45 cabling) gender-changers are never used, making it difficult to create a cyclic USB network.
- A moderate insertion/removal force is specified. USB cables and small USB devices are held in place by the gripping force from the receptacle (without the need for the screws, clips, or thumbturns other connectors require). The force needed to make or break a connection is modest, allowing connections to be made in awkward circumstances or by those with motor disabilities.
- The connector construction always ensures that the external sheath on the plug contacts with its counterpart in the receptacle before the four connectors within are connected. This sheath is typically connected to the system ground, allowing otherwise damaging static charges to be safely discharged by this route (rather than via delicate electronic components). This means of enclosure also means that there is a (moderate) degree of protection from electromagnetic interference afforded to the USB signal while it travels through the mated connector pair (this is the only location when the otherwise twisted data pair must travel a distance in parallel).
- The USB standard specifies relatively low tolerances for compliant USB connectors, intending to minimize incompatibilities in connectors produced by different vendors (a goal that has been very successfully achieved). Unlike most other connector standards, the USB spec also defines limits to the size of a connecting device in the area around its plug. This was done to avoid circumstances where a device complied with the connector specification but its large size blocked adjacent ports. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does. The USB 1.0, 1.1 and 2.0 specifications define two types of connectors for the attachment of devices to the bus: A, and B. However, the mechanical layer has changed in some examples. For example, the IBM UltraPort is a proprietary USB connector located on the top of IBM's laptop LCDs. It uses a different mechanical connector while preserving the USB signaling and protocol. Other manufacturers of small items also developed their own small form factor connector, and a wide variety of these have appeared. For specification purposes, these devices were treated as having a captive cable. An extension to USB called USB On-The-Go allows a single port to act as either a host or a device - chosen by which end of the cable plugs into the socket on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This facility targets units such as PDAs where the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance. USB On-The-Go has therefore defined two small form factor connectors, the mini-A and mini-B, and a hermaphroditic socket (mini-AB), which should stop the proliferation of proprietary designs. Wireless USB is a promising future standard being developed to extend the USB standard while maintaining backwards compatibility with USB 1.1 and USB 2.0 on the protocol level. The maximum length of a USB cable is 5 meters; greater lengths require hubs [http://www.usb.org/developers/usbfaq/#cab1].

Power supply

The USB connector provides a single nominally 5 volt wire from which connected USB devices may power themselves. In practice, delivered voltage can drop well below 5 V, to only slightly above 4 V. The compliance spec requires no more than 5.25 V anywhere and no less than 4.375 V at the worst case; a low-power function after a bus-powered hub. In typical situations the voltage is close to 5 V. A given segment of the bus is specified to deliver up to 500 mA. This is often enough to power several devices, although this budget must be shared among all devices downstream of an unpowered hub. A bus-powered device may use as much of that power as allowed by the port it is plugged into. Bus-powered hubs can continue to distribute the bus provided power to connected devices but the USB specification only allows for a single level of bus-powered devices from a bus-powered hub. This disallows connection of a bus-powered hub to another bus-powered hub. Many hubs include external power supplies which will power devices connected through them without taking power from the bus. Devices that need more than 500 mA must provide their own power. When USB devices (including hubs) are first connected they are interrogated by the host controller, which enquires of each their maximum power requirements. The host operating system typically keeps track of the power requirements of the USB network and may warn the computer's operator when a given segment requires more power than is available (and will generally shut down devices or hubs in order to keep power consumption within the available resource). A number of devices use this power supply without participating in a proper USB network. The typical example is a USB-powered reading light, but fans, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are available. In most cases, these items contain no electronic circuitry, and thus are not proper USB devices at all. This can cause problems with some computers—the USB specification requires that devices connect in a low-power mode (100 mA maximum) and state how much current they need, before switching, with the host's permission, into high-power mode. Some devices intended for connection to laptops draw more power than is permitted by the specification for a single USB port; to avoid requiring an exernal power supply, these devices come with dual cables, and the user is instructed that the device must be plugged-into two USB ports. On a laptop with only two ports, this means only one such device can be used at a time, unless a powered hub is added. A number of peripherals for IBM laptops (now made by Lenovo) are designed to use dual USB connections in this manner. USB-powered devices attempting to draw large currents without requesting the power will not work with certain USB controllers, and will either disrupt other devices on the bus or fail to work themselves (or both). Those problems with the abuse of the USB power supply have inspired a number of April Fool hoaxes, like the introduction of a USB-powered George Foreman iGrill [http://www.thinkgeek.com/stuff/looflirpa/igrill.shtml] and a desktop USB Fondue Set [http://www.thinkgeek.com/stuff/41/fundue.shtml].

USB compared to other standards

Storage

Fondue USB implements connections to storage devices using a set of standards called the USB mass-storage device class. This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices. USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE) and SCSI fulfill that role. However, USB has one important advantage in making it possible to install and remove devices without opening the computer case, making it useful for external drives. Today, a number of manufacturers offer portable USB hard drives that offer performance comparable to conventional ATA (IDE) drives. These external drives, called enclosures, are often composed of translating devices that connect to USB on one side and to conventional IDE, ATA, ATAPI, or SCSI drives on the other. A drive is installed into the enclosure and the enclosure is then plugged into the computer, thus creating the function of a regular USB mass-storage device. FireWire technology is also commonly used with portable hard drives, some of which include both USB and FireWire ports. FireWire tends to perform better in speed benchmark tests. However, USB ports are more common on consumer-level computers, which enhances the portability of a USB drive.

Human-interface devices (HIDs)

USB has not completely replaced AT keyboard connections and PS/2 keyboard and mouse connections, but virtually all PC motherboards manufactured today have one or more USB ports. As of 2004, most new motherboards have multiple USB 2.0 high-speed ports, though some are internal, and require a "header" connection to be accessible from the front or rear of the computer case. Similarly, support for joysticks, keypads, tablets and other human-interface devices is progressively migrating from MIDI, "game", and PS/2 connectors to USB. It is now quite common for a mouse or keyboard to be a USB device, which is shipped with a small USB-to-PS/2 adaptor connected to the end of its cable, so it can be used with either USB or PS/2 ports. Apple computers have used USB mice and keyboards exclusively since January 1999.

USB 2.0 vs FireWire

USB 2.0 transmits data at up to 480 megabits per second (Mbps) while FireWire 400 (IEEE 1394a) handles data at up to 400 Mbps [http://www.choice.com.au/viewArticle.aspx?id=104527&catId=100274&tid=100008&p=1]. However USB 2.0 is not commonly considered to be faster than FireWire 400. USB uses more CPU resources than FireWire and its data transfer rate is degraded as more load is applied to the CPU (by running concurrent tasks). Finally, the more recent IEEE 1394b specification of FireWire supports data rates up to 3.2 gigabits per second.

Version history

USB


- USB 1.0 FDR: Released in November 1995, the same year that Apple adopted the IEEE 1394 standard known as FireWire.
- USB 1.0: Released in January 1996.
- USB 1.1: Released in September 1998.
- USB 2.0: Released in April 2000. The major feature of this standard was the addition of high-speed mode. This is the current revision.
- USB 2.0: Revised in December 2002. Added three speed distinction to this standard, allowing all devices to be USB 2.0 compliant even if they were previously considered only 1.1 or 1.0 compliant. The makes the backwards compatibility explicit, but more difficult to determine a device's throughput without seeing the symbol. As an example, a computer's port could be incapable of USB 2.0's hi-speed fast transfer rates, but still claim USB 2.0 compliance (since it supports some of USB 2.0).

USB On-The-Go Supplement


- USB On-The-Go Supplement 1.0: Released in December 2001.
- USB On-The-Go Supplement 1.0a: Released in June 2003. This is the current revision.

Extensions to USB

The PictBridge standard allows for interconnecting consumer imaging devices. It typically uses USB as the underlying communication layer. Microsoft's Xbox game console uses standard USB 1.1 signalling, but features a proprietary connector rather than the standard USB connector. Similarly IBM UltraPort uses standard USB signalling, but uses a proprietary connection format. The USB Implementers Forum is working on a wireless networking standard based on the USB protocol. Wireless USB is intended as a cable-replacement technology, and will use Ultra wideband wireless technology for data rates of up to 480 Mbit/s. Wireless USB is well suited to wireless connection of PC centric devices, just as Bluetooth is now widely used for mobile phone centric personal networks (at much lower data rates). See http://www.usb.org/developers/wusb/ for more details.

See also


- ACCESS.bus
- FireWire (also known as IEEE 1394, or I.link)
- USB Flash Drive
- USB streaming
- U3
- Serial cable (obsoleted by USB and Wi-Fi)

External links


- [http://www.usb.org/ Home of USB Implementers Forum, Inc.], including [http://www.usb.org/developers/docs/ the USB 2.0 specification]
- [http://www.lvr.com/usb.htm USB Central] for developers of USB devices and hosts
- [http://www.bootdisk.com/usb.htm USB for DOS]
- [http://www.linux-usb.org/ Linux USB Project], containing much technical information and documentation
- [http://www.windowsnetworking.com/articles_tutorials/usbmain.html USB Networking Introduction]
- [http://usbmount.alioth.debian.org/ Linux usbmount].
- [http://www.beyondlogic.org/usbnutshell/usb-in-a-nutshell.pdf USB in a NutShell] - a primer for developers
- [http://developer.intel.com/technology/usb/uhci11d.htm Universal Host Controller Interface (UHCI)] Category:Computer buses Category:USB ko:USB ja:Universal Serial Bus nb:USB simple:Universal Serial Bus th:ยูเอสบี

USB (disambiguation)

USB can mean:
- Universal Serial Bus, a computer bus standard
- ultrasound-guided biopsy in oncology
- unified S band in communications satellites
- Uniwersytet Stefana Batorego (Stefan Batory University; now Vilnius University), a university in Lithuania
- upper sideband, an amplitude modulation transmission method by radio
- U.S. Bancorp, a financial services holding company
- Stony Brook University, sometimes known as the University at Stony Brook

Computer/bus

In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers. Unlike a point-to-point connection, a bus can logically connect several peripherals over the same set of wires. Each bus defines its set of connectors to physically plug devices, cards or cables together. Early computer buses were literally parallel electrical buses with multiple connections, but the term is now used for any physical arrangement that provides the same logical functionality as a parallel electrical bus. Modern computer buses can use both parallel and bit-serial connections, and can be wired in either a multidrop (electrical parallel) or daisy chain topology, or connected by switched hubs, as in the case of USB.

History

Early computer buses were bundles of wire that attached memory and peripherals. They were named after electrical buses, or busbars. Almost always, there was one bus for memory, and another for peripherals, and these were accessed by separate instructions, with completely different timings and protocols. One of the first complications was the use of interrupts. Early computers performed I/O by waiting in a loop for the peripheral to become ready. This was a waste of time for programs that had other tasks to do. Also, if the program attempted to perform those other tasks, it might take too long for the program to check again, resulting in lost data. Engineers thus arranged for the peripherals to interrupt the CPU. The interrupts had to be prioritised, because the CPU can only execute code for one peripheral at a time, and some devices are more time-critical than others. Some time after this, some computers (such as the RCA Spectra, running Multics) began to share memory between several CPUs. On these computers, access to the bus had to be prioritised, as well. The classic, simple way to prioritise interrupts or bus access was with a daisy chain. DEC noted that having two buses seemed wasteful and expensive for small, mass-produced computers, and mapped peripherals into the memory bus, so that the devices appeared to be memory locations. At the time, this was a very daring design. Cynics predicted failure. Early microcomputer bus systems were essentially a passive backplane connected to the pins of the CPU. Memory and other devices would be added to the bus using the same address and data pins as the CPU itself used, connected in parallel. In some instances, such as the IBM PC, instructions still generated signals at the CPU that could be used to implement a true I/O bus. In many microcontrollers and embedded systems, an I/O bus still does not exist. Communication is controlled by the CPU, which reads and writes data from the devices as if they are blocks of memory (in most cases), all timed by a central clock controlling the speed of the CPU. Devices ask for service by signalling on other CPU pins, typically using some form of interrupt. For instance, a disk drive controller would signal the CPU that new data was ready to be read, at which point the CPU would move the data by reading the memory that corresponded to the disk drive. Almost all early computers were built in this fashion, starting with the S-100 bus in the Altair, and continuing through the IBM PC in the 1980s. These simple bus systems had a serious drawback for general-purpose computers. All the equipment on the bus has to talk at the same speed, and thus shares a single clock. Increasing the speed of the CPU is not a simple matter, because the speed of all the devices must increase as well. This often leads to odd situations where very fast CPUs have to "slow down" in order to talk to other devices in the computer. While acceptable in embedded systems, this problem was not tolerated for long in commercial computers. Another problem is that the CPU is required for all operations, so if it becomes busy with other tasks, the real throughput of the bus could suffer dramatically. Such bus systems are difficult to configure when constructed from common off-the-shelf equipment. Typically each added PC board requires many jumpers in order to set memory addresses, I/O addresses, interrupt priorities, and interrupt numbers. "Second generation" bus systems like NuBus addressed some of these problems. They typically separated the computer into two "worlds", the CPU and memory on one side, and the various devices on the other, with a bus controller in between. This allowed the CPU to increase in speed without affecting the bus. This also moved much of the burden for moving the data out of the CPU and into the cards and controller, so devices on the bus could talk to each other with no CPU intervention. This led to much better "real world" performance, but also required the cards to be much more complex. These buses also often addressed speed issues by being "bigger" in terms of the size of the data path, moving from 8-bit parallel buses in the first generation, to 16 or 32-bit in the second, as well as adding software setup (now standardised as Plug-n-play) to supplant or replace the jumpers. However these newer systems shared one quality with their earlier cousins, in that everyone on the bus had to talk at the same speed. While the CPU was now insulated and could increase speed without fear, CPUs and memory continued to increase in speed much faster than the buses they talked to. The result was that the bus speeds were now very much slower than what a modern system needed, and the machines were left starved for data. A particularly common example of this problem was that video cards quickly outran even the newer bus systems like PCI, and computers began to include the AGP bus just to drive the video card. By 2004 AGP was outgrown again by high-end video cards and is being replaced with the new PCI Express bus. An increasing number of external devices started employing their own bus systems as well. When disk drives were first introduced, they would be added to the machine with a card plugged into the bus, which is why computers have so many slots on the bus. But through the 1980s and 1990s, new systems like SCSI and IDE were introduced to serve this need, leaving most slots in modern systems empty. Today there are likely to be about five different buses in the typical machine, supporting various devices. A useful differentiation then became popular, the concept of the local bus as opposed to external bus. The former referred to bus systems that were designed to be used with internal devices, such as graphics cards, and the latter to buses designed to add external devices such as scanners. Note, though, that "local" also referred to the greater proximity to the processor of VL-Bus and PCI than ISA. IDE is an external bus in terms of how it is used, but is almost always found inside the machine. "Third generation" buses are now in the process of coming to market, including HyperTransport and InfiniBand. They typically include features that allow them to run at the very high speeds needed to support memory and video cards, while also supporting lower speeds when talking to slower devices such as disk drives. They also tend to be very flexible in terms of their physical connections, allowing them to be used both as internal buses, as well as connecting different machines together. This can lead to complex problems when trying to service different requests, so much of the work on these systems concerns software design, as opposed to the hardware itself. In general, these third generation buses tend to look more like a network than the original concept of a bus, with a higher protocol overhead needed than early systems, while also allowing multiple devices to use the bus at once. On another track, integrated circuits are increasingly being designed from predesigned logic, "intellectual property." Buses such as Wishbone have been developed to permit devices on integrated circuits to talk to one another.

Description

At one time, "bus" meant an electrically parallel system, with electrical conductors similar or identical to the pins on the CPU. This is no longer the case, and modern systems are blurring the lines between buses and networks. Buses can be parallel buses, which carry data words striped across multiple wires, or serial buses, which carry data in bit-serial form. The addition of extra power and control connections, differential drivers, and data connections in each direction usually means that most serial buses have more conductors than the minimum of two used in the I²C serial bus. As data rates increase, the problems of timing skew and crosstalk across parallel buses become more and more difficult to circumvent. One partial solution to this problem has been to double pump the bus. Often, a serial bus can actually be operated at higher overall data rates than a parallel bus, despite having fewer electrical connections, because a serial bus inherently has no timing skew or crosstalk. USB, FireWire, and Serial ATA are examples of this. Multidrop connections do not work well for fast serial buses, so most modern serial buses use daisy-chain or hub designs. Most computers have both internal and external buses. An internal bus connects all the internal components of a computer to the motherboard (and thus, the CPU and internal memory). These types of buses are also referred to as a local bus, because they are intended to connect to local devices, not to those in other machines or external to the computer. An external bus connects external peripherals to the motherboard. Network connections such as Ethernet are not generally regarded as buses, although the difference is largely conceptual rather than practical. The arrival of technologies such as InfiniBand and HyperTransport is further blurring the boundaries between networks and buses. Even the lines between internal and external are sometimes fuzzy, I²C can be used as both an internal bus, or an external bus (where it is known as ACCESS.bus), and InfiniBand is intended to replace both internal buses like PCI as well as external ones like Fibre Channel. Modern trends in personal computers, especially laptops, have been moving towards eliminating all external connections except for modem jack, Cat5, USB, headphone jack, and optional VGA or FireWire.

Bus topology

In a network, the master scheduler controls the data traffic. If data is to be transferred the requesting computer sends a message to the scheduler, which puts the request into a queue. The message contains an identification code which is broadcast to all nodes of the network. The scheduler works out priorities and notifies the receiver as soon as the bus is available. The identified node takes the message and performs the data transfer between the two computers. Having completed the data transfer the bus becomes free for the next request in the scheduler's queue. Bus benefit: any computer can be accessed directly and message can be sent in a relatively simple and fast way. Disadvantage: needs a scheduler to assign frequencies and priorities to organize the traffic. See also: Bus network

Examples of internal computer buses

Parallel


- Accelerated graphics port or AGP (for video cards)
- CAMAC for instrumentation systems
- Extended ISA or EISA
- Industry Standard Architecture or ISA
- Low Pin Count or LPC
- MicroChannel or MCA
- MBus
- Multibus for industrial systems
- NuBus or IEEE 1196
- Peripheral Component Interconnect or PCI
- S-100 bus or IEEE 696, used in the Altair and similar microcomputers
- SBus or IEEE 1496
- VESA Local Bus or VLB or VL-bus (for video cards)
- VMEbus, the VERSAmodule Eurocard bus
- STD Bus for 8- and 16-bit microprocessor systems

Serial


- 1-Wire
- HyperTransport
- I2C
- PCI Express or PCIe
- Serial Peripheral Interface Bus or SPI bus

Examples of external computer buses

Parallel


- Advanced Technology Attachment or ATA (aka PATA, IDE, EIDE, ATAPI, etc.) disk/tape peripheral attachment bus
(the original ATA is parallel, but see also the recent development Serial ATA, below)
- Centronics parallel (generally connects single device, occasionally 2 daisy-chained)
- HIPPI HIgh Performance Parallel Interface
- IEEE-488 (aka GPIB, General-Purpose Instrumentation Bus, and HPIB, Hewlett-Packard Instrumentation Bus)
- PCMCIA, now known as PC card, much used in laptop computers and other portables, but fading with the introduction of USB and built-in network and modem connections.
- SCSI Small Computer System Interface, disk/tape peripheral attachment bus

Serial


- ACCESS.bus (A.b)
- Apple Desktop Bus (ADB)
- Controller Area Network (CAN)
- Fibre Channel
- IEEE 1394 (FireWire)
- RS-485
- Serial ATA or SATA
- Serial Storage Architecture (SSA)
- Universal Serial Bus (USB)

Proprietary


- Floppy drive connector

Examples of internal/external computer buses


- Futurebus
- InfiniBand
- QuickRing
- SCI

See also


- Bus contention
- Front side bus

External links


- Chip Weems' [http://www.cs.umass.edu/~weems/CmpSci635/635lecture12.html Lecture 12: Buses]
- http://dmoz.org/Computers/Hardware/Buses/ Category:Digital electronics
- Computer bus
Category:Motherboard ja:バス (コンピュータ)

Computer

A computer is a device capable of processing data according to a program — a list of instructions. The data to be processed may represent many types of information including numbers, text, pictures, or sound. Computers can be extremely versatile. In fact, they are universal information processing machines. According to the Church-Turing thesis, a computer with a certain minimum threshold capability is in principle capable of performing the tasks of any other computer, from those of a personal digital assistant to a supercomputer. Therefore, the same computer designs have been adapted for tasks from processing company payrolls to controlling industrial robots. Modern electronic computers also have enormous speed and capacity for information processing compared to earlier designs, and they have become exponentially more powerful over the years (a phenomenon known as Moore's Law). Computers are available in many physical forms. The original computers were the size of a large room, and such enormous computing facilities still exist for specialized scientific computation - supercomputers - and for the transaction processing requirements of large companies, generally called mainframes. Smaller computers for individual use, called personal computers, and their portable equivalent, the notebook computer, are ubiquitous information-processing and communication tools and are perhaps what most non-experts think of as "a computer". However, the most common form of computer in use today is the embedded computer, small computers used to control another device. Embedded computers control machines from fighter planes to digital cameras.

History of computing

Originally, a "computer" was a person who performed numerical calculations under the direction of a mathematician, often with the aid of a variety of mechanical calculating devices from the abacus onward. An example of an early computing device was the Antikythera mechanism, an ancient Greek device for calculating the movements of planets, dating from about 87 BCE. The technology responsible for this mysterious device seems to have been lost at some point. The end of the Middle Ages saw a reinvigoration of European mathematics and engineering, and by the early 17th century a succession of mechanical calculating devices had been constructed using clockwork technology. A considerable number of technologies that would later prove vital for the digital computer were developed in the late 19th and early 20th centuries, such as the punched card and the vacuum tube ((or valve). Charles Babbage was the first to conceptualize and design a fully programmable computer as early as 1837, but due to a combination of the limits of the technology of the time, limited finance, and an inability to resist tinkering with his design (a trait that would in time doom thousands of computer-related engineering projects), the device was never actually constructed in his lifetime. During the first half of the 20th century, many scientific computing needs were met by increasingly sophisticated, special-purpose analog computers, which used a direct physical or electrical model of the problem as a basis for computation. These became increasingly rare after the development of the digital computer. A succession of steadily more powerful and flexible computing devices were constructed in the 1930s and 1940s, gradually adding the key features of modern computers, such as the use of digital electronics (invented by Claude Shannon in 1937) and more flexible programmability. Defining one point along this road as "the first computer" is exceedingly difficult. Notable achievements include the Atanasoff Berry Computer, a special-purpose machine that used valve-driven computation and binary numbers; Konrad Zuse's Z machines; the secret British Colossus computer, which had limited programmability but demonstrated that a device using thousands of valves could be made reliable and reprogrammed electronically; and the American ENIAC — the first general purpose machine, but with an inflexible architecture that meant reprogramming it essentially required it to be rewired. The team who developed ENIAC, recognizing its flaws, came up with a far more flexible and elegant design, which has become known as the stored program architecture, which is the basis from which virtually all modern computers were derived. A number of projects to develop computers based on the stored program architecture commenced in the late 1940s; the first of these to be up and running was the Small-Scale Experimental Machine, but the EDSAC was perhaps the first practical version. Valve-driven computer designs were in use throughout the 1950s, but were eventually replaced with transistor-based computers, which were smaller, faster, cheaper, and much more reliable, thus allowing them to be commercially produced, in the 1960s. By the 1970s, the adoption of integrated circuit technology had enabled computers to be produced at a low enough cost to allow individuals to own a personal computer of the type familiar today.

How computers work: the stored program architecture

While the technologies used in computers have changed dramatically since the first electronic, general-purpose, computers of the 1940s, most still use the stored program architecture (sometimes called the von Neumann architecture; as the article describes the primary inventors were probably ENIAC designers J. Presper Eckert and John William Mauchly). The design made the universal computer a practical reality. The architecture describes a computer with four main sections: the arithmetic and logic unit (ALU), the control circuitry, the memory, and the input and output devices (collectively termed I/O). These parts are interconnected by a bundle of wires (a "bus") and are usually driven by a timer or clock (although other events could drive the control circuitry). Conceptually, a computer's memory can be viewed as a list of cells. Each cell has a numbered "address" and can store a small, fixed amount of information. This information can either be an instruction, telling the computer what to do, or data, the information which the computer is to process using the instructions that have been placed in the memory. In principle, any cell can be used to store either instructions or data. The ALU is in many senses the heart of the computer. It is capable of performing two classes of basic operations: arithmetic operations, the core of which is the ability to add or subtract two numbers but also encompasses operations like "multiply this number by 2" or "divide by 2" (for reasons which will become clear later), as well as some others. The second class of ALU operations involves comparison operations, which, given two numbers, can determine if they are equal, and if not, which is bigger. The I/O systems are the means by which the computer receives information from the outside world, and reports its results back to that world. On a typical personal computer, input devices include objects like the keyboard and mouse, and output devices include computer monitors, printers and the like, but as will be discussed later a huge variety of devices can be connected to a computer and serve as I/O devices. The control system ties this all together. Its job is to read instructions and data from memory or the I/O devices, decode the instructions, providing the ALU with the correct inputs according to the instructions, "tell" the ALU what operation to perform on those inputs, and send the results back to the memory or to the I/O devices. One key component of the control system is a counter that keeps track of what the address of the current instruction is; typically, this is incremented each time an instruction is executed, unless the instruction itself indicates that the next instruction should be at some other location (allowing the computer to repeatedly execute the same instructions). Physically, since the 1980s the ALU and control unit have been located on a single integrated circuit called a Central Processing Unit or CPU. The functioning of such a computer is in principle quite straightforward. Typically, on each clock cycle, the computer fetches instructions and data from its memory. The instructions are executed, the results are stored, and the next instruction is fetched. This procedure repeats until a halt instruction is encountered. Larger computers, such as some minicomputers, mainframe computers, servers, differ from the model above in one significant aspect; rather than one CPU they often have a number of them. Supercomputers often have highly unusual architectures significantly different from the basic stored-program architecture, sometimes featuring thousands of CPUs, but such designs tend to be useful only for specialized tasks.

Digital circuits

The conceptual design above could be implemented using a variety of different technologies. As previously mentioned, a stored program computer could be designed entirely of mechanical components like Babbage's. However, digital circuits allow Boolean logic and arithmetic using binary numerals to be implemented using relays - essentially, electrically controlled switches. Shannon's famous thesis showed how relays could be arranged to form units called logic gates, implementing simple Boolean operations. Others soon figured out that vacuum tubes - electronic devices, could be used instead. Vacuum tubes were originally used as a signal amplifier for radio and other applications, but were used in digital electronics as a very fast switch; when electricity is provided to one of the pins, current can flow through between the other two. Through arrangements of logic gates, one can build digital circuits to do more complex tasks, for instance, an adder, which implements in electronics the same method - in computer terminology, an algorithm - to add two numbers together that children are taught - add one column at a time, and carry what's left over. Eventually, through combining circuits together, a complete ALU and control system can be built up. This does require a considerable number of components. CSIRAC, one of the earliest stored-program computers, is probably close to the smallest practically useful design. It had about 2,000 valves, some of which were "dual components", so this represented somewhere between 2 and 4,000 logic components. Vacuum tubes had severe limitations for the construction of large numbers of gates. They were expensive, unreliable (particularly when used in such large quantities), took up a lot of space, and used a lot of electrical power, and, while incredibly fast compared to a mechanical switch, had limits to the speed at which they could operate. Therefore, by the 1960s they were replaced by the transistor, a new device which performed the same task as the tube but was much smaller, faster operating, reliable, used much less power, and was far cheaper. transistor In the 1960s and 1970s, the transistor itself was gradually replaced by the integrated circuit, which placed multiple transistors (and other components) and the wires connecting them on a single, solid piece of silicon. By the 1970s, the entire ALU and control unit, the combination becoming known as a CPU, were being placed on a single "chip" called a microprocessor. Over the history of the integrated circuit, the number of components that can be placed on one has grown enormously. The first IC's contained a few tens of components; as of 2005, modern microprocessors such from AMD and Intel contain over 100 million transistors. Tubes, transistors, and transistors on integrated circuits can be and are used as the "storage" component of the stored-program architecture, using a circuit design known as a flip-flop, and indeed flip-flops are used for small amounts of very high-speed storage. However, few computer designs have used flip-flops for the bulk of their storage needs. Instead, earliest computers stored data in Williams tubes - essentially, projecting some dots on a TV screen and reading them again, or mercury delay lines where the data was stored as sound pulses traveling slowly (compared to the machine itself) along long tubes filled with mercury. These somewhat ungainly but effective methods were eventually replaced by magnetic memory devices, such as magnetic core memory, where electrical currents were used to introduce a permanent (but weak) magnetic field in some ferrous material, which could then be read to retrieve the data. Eventually, DRAM was introduced. A DRAM unit is a type of integrated circuit containing huge banks of an electronic component called a capacitor which can store an electrical charge for a period of time. The level of charge in a capacitor could be set to store information, and then measured to read the information when required.

I/O devices

I/O is a general term for devices that send computers information from the outside world and that return the results of computations. These results can either be viewed directly by a user, or they can be sent to another machine, whose control has been assigned the computer: In a robot, for instance, the controlling computer's major output device is the robot itself. The first generation of computers were equipped with a fairly limited range of input devices. A punch card reader, or something similar, was used to enter instructions and data into the computer's memory, and some kind of printer, usually a modified teletype, was used to record the results. Over the years, a huge variety of other devices have been added. For the personal computer, for instance, keyboards and mice are the primary ways people directly enter information into the computer; and monitors are the primary way in which information from the computer is presented back to the user, though printers, speakers, and headphones are common, too. There is a huge variety of other devices for obtaining other types of input. One example is the digital camera, which can be used to input visual information. There are two prominent classes of I/O devices. The first class is that of secondary storage devices, such as hard disks, CD-ROMs, key drives and the like, which represent comparatively slow, but high-capacity devices, where information can be stored for later retrieval; the second class is that of devices used to access computer networks. The ability to transfer data between computers has opened up a huge range of capabilities for the computer. The global Internet allows millions of computers to transfer information of all types between each other.

Instructions

The instructions interpreted by the control unit, and executed by the ALU, are not nearly as rich as a human language. A computer responds only to a limited number of instructions, but they are well defined, simple, and unambiguous. Typical sorts of instructions supported by most computers are "copy the contents of memory cell 5 and place the copy in cell 10", "add the contents of cell 7 to the contents of cell 13 and place the result in cell 20", "if the contents of cell 999 are 0, the next instruction is at cell 30". All computer instructions fall into one of four categories: 1) moving data from one location to another; 2) executing arithmetic and logical processes on data; 3) testing the condition of data; and 4) altering the sequence of operations. Instructions are represented within the computer as binary code - a base two system of counting. For example, the code for one kind of "copy" operation in the Intel line of microprocessors is 10110000. The particular instruction set that a specific computer supports is known as that computer's machine language. To slightly oversimplify, if two computers have CPUs that respond to the same set of instructions identically, software from one can run on the other without modification. This easy portability of existing software creates a great incentive to stick with existing designs, only switching for the most compelling of reasons, and has gradually narrowed the number of distinct instruction set architectures in the marketplace.

Programs

Computer programs are simply lists of instructions for the computer to execute. These can range from just a few instructions which perform a simple task, to a much more complex instruction list which may also include tables of data. Many computer programs contain millions of instructions, and many of those instructions are executed repeatedly. A typical modern PC (in the year 2005) can execute around 3 billion instructions per second. Computers do not gain their extraordinary capabilities through the ability to execute complex instructions. Rather, they do millions of simple instructions arranged by people known as programmers. In practice, people do not normally write the instructions for computers directly in machine language. Such programming is incredibly tedious and highly error-prone, making programmers very unproductive. Instead, programmers describe the desired actions in a "high level" programming language which is then translated into the machine language automatically by special computer programs (interpreters and compilers). Some programming languages map very closely to the machine language, such as Assembly Language (low level languages); at the other end, languages like Prolog are based on abstract principles far removed from the details of the machine's actual operation (high level languages). The language chosen for a particular task depends on the nature of the task, the skill set of the programmers, tool availability and, often, the requirements of the customers (for instance, projects for the US military were often required to be in the Ada programming language). Computer software is an alternative term for computer programs; it is a more inclusive phrase and includes all the ancillary material accompanying the program needed to do useful tasks. For instance, a video game includes not only the program itself, but also data representing the pictures, sounds, and other material needed to create the virtual environment of the game. A computer application is a piece of computer software provided to many computer users, often in a retail environment. The stereotypical modern example of an application is perhaps the office suite, a set of interrelated programs for performing common office tasks. Going from the extremely simple capabilities of a single machine language instruction to the myriad capabilities of application programs means that many computer programs are extremely large and complex. A typical example is the Firefox web browser, created from roughly 2 million lines of computer code in the C++ programming language; there are many projects of even bigger scope, built by large teams of programmers. The management of this enormous complexity is key to making such projects possible; programming languages, and programming practices, enable the task to be divided into smaller and smaller subtasks until they come within the capabilities of a single programmer in a reasonable period. Nevertheless, the process of developing software remains slow, unpredictable, and error-prone; the discipline of software engineering has attempted, with some partial success, to make the process quicker and more productive and improve the quality of the end product.

Libraries and operating systems

Soon after the development of the computer, it was discovered that certain tasks were required in many different programs; an early example was computing some of the standard mathematical functions. For the purposes of efficiency, standard versions of these were collected in libraries and made available to all who required them. A particularly common task set related to handling the gritty details of "talking" to the various I/O devices, so libraries for these were quickly developed. By the 1960s, with computers in wide industrial use for many purposes, it became common for them to be used for many different jobs within an organization. Soon, special software to automate the scheduling and execution of these many jobs became available. The combination of managing "hardware" and scheduling jobs became known as the "operating system"; the classic example of this type of early operating system was OS/360 by IBM. The next major development in operating systems was timesharing - the idea that multiple users could use the machine "simultaneously" by keeping all of their programs in memory, executing each user's program for a short time so as to provide the illusion that each user had their own computer. Such a development required the operating system to provide each user's programs with a "virtual machine" such that one user's program could not interfere with another's (by accident or design). The range of devices that operating systems had to manage also expanded; a notable one was hard disks; the idea of individual "files" and a hierarchical structure of "directories" (now often called folders) greatly simplified the use of these devices for permanent storage. Security access controls, allowing computer users access only to files, directories and programs they had permissions to use, were also common. Perhaps the last major addition to the operating system were tools to provide programs with a standardized graphical user interface. While there are few technical reasons why a GUI has to be tied to the rest of an operating system, it allows the operating system vendor to encourage all the software for their operating system to have a similar looking and acting interface. Outside these "core" functions, operating systems are usually shipped with an array of other tools, some of which may have little connection with these original core functions but have been found useful by enough customers for a provider to include them. For instance, Apple's Mac OS X ships with a digital video editor application. Not all operating systems provide all of the above functions; operating systems for smaller computers typically provide fewer, such as the highly minimal operating systems for early microcomputers. Embedded computers may have a specialized operating system, or sometimes none at all. Instead, the custom programs written for their task perform all necessary functions that would be performed by an operating system in less specialized roles.

Computer applications

Embedded computer The first electronic digital computers, with their large size and cost, mainly performed scientific calculations, often to support military objectives. The ENIAC was originally designed to calculate ballistics-firing tables for artillery, but it was also used to calculate neutron cross-sectional densities to help in the design of the hydrogen bomb. This calculation, performed in December, 1945 through January, 1946 and involving over a million punch cards of data, showed the design then under consideration would fail. (Many of the most powerful supercomputers available today are also used for nuclear weapons simulations.) The CSIR Mk I, the first Australian stored-program computer, evaluated rainfall patterns for the catchment area of the Snowy Mountains Scheme, a large hydroelectric generation project. Others were used in cryptanalysis, for example the first programmable (though not general-purpose) digital electronic computer, Colossus, built in 1943 during World War II. Despite this early focus of scientific and military engineering applications, computers were quickly used in other areas. From the beginning, stored program computers were applied to business problems. The LEO, a stored program-computer built by J. Lyons and Co. in the United Kingdom, was operational and being used for inventory management and other purposes 3 years before IBM built their first commercial stored-program computer. Continual reductions in the cost and size of computers saw them adopted by ever-smaller organizations. Moreover, with the invention of the microprocessor in the 1970s, it became possible to produce inexpensive computers. In the 1980s, personal computers became popular for many tasks, including book-keeping, writing and printing documents, calculating forecasts and other repetitive mathematical tasks involving spreadsheets. spreadsheet (1989) marked the acceptance of CGI in the visual effects industry.]] As computers have become cheaper, they have been used extensively in the creative arts as well. Sound, still pictures, and video are now routinely created (through synthesizers, computer graphics and computer animation), and near-universally edited by computer. They have also been used for entertainment, with the video game becoming a huge industry. Computers have been used to control mechanical devices since they became small and cheap enough to do so; indeed, a major spur for integrated circuit technology was building a computer small enough to guide the Apollo missions and the Minuteman missile, two of the first major applications for embedded computers. Today, it is almost rarer to find a powered mechanical device not controlled by a computer than to find one that is at least partly so. Perhaps the most famous computer-controlled mechanical devices are robots, machines with more-or-less human appearance and some subset of their capabilities. Industrial robots have become commonplace in mass production, but general-purpose human-like robots have not lived up to the promise of their fictional counterparts and remain either toys or research projects. Robotics, indeed, is the physical expressions of the field of artificial intelligence, a discipline whose exact boundaries are fuzzy but to some degree involves attempting to give computers capabilities that they do not currently possess but humans do. Over the years, methods have been developed to allow computers to do things previously regarded as the exclusive domain of humans - for instance, "read" handwriting, play chess, or perform symbolic integration. However, progress on creating a computer that exhibits "general" intelligence comparable to a human has been extremely slow.

Networking and the Internet

In the 1970s, computer engineers at research institutions throughout the US began to link their computers together using telecommunications technology. This effort was funded by ARPA, and the computer network that it produced was called the ARPANET. The technologies that made the Arpanet possible spread and evolved. In time, the network spread beyond academic and military institutions and became known as the Internet. The emergence of networking involved a redefinition of the nature and boundaries of the computer. In the phrase of John Gage and Bill Joy (of Sun Microsystems), "the network is the computer". Computer operating systems and applications were modified to include the ability to define and access the resources of other computers on the network, such as peripheral devices, stored information, and the like, as extensions of the resources of an individual computer. Initially these facilities were available primarily to people working in high-tech environments, but in the 1990s the spread of applications like email and the World Wide Web, combined with the development of cheap, fast networking technologies like Ethernet and ADSL saw computer networking become ubiquitous almost everywhere. In fact, the number of computers that are networked is growing phenomenally. A very large proportion of personal computers regularly connect to the Internet to communicate and receive information.

Computing professions and disciplines

In the developed world, virtually every profession makes use of computers. However, certain professional and academic disciplines have evolved that specialize in techniques to construct, program, and use computers. Terminology for different professional disciplines is still somewhat fluid and new fields emerge from time to time: however, some of the major groupings are as follows:
- Computer engineering is that branch of electronic engineering devoted to the physical construction of computers and their attendant components.
- Computer science is an academic study of the processes related to computation, such as developing efficient algorithms to perform specific tasks. It has tackled questions as to whether problems can be solved at all using a computer, how efficiently they can be solved, and how to construct efficient programs to compute solutions. A huge array of specialties has developed within computer science to investigate different classes of problem.
- Software engineering concentrates on methodologies and practices to allow the development of reliable software systems while minimizing, and reliably estimating, costs and timelines.
- Information systems concentrates on the use and deployment of computer systems in a wider organizational (usually business) context.
- Many disciplines have developed at the intersection of computers with other professions; one of many examples is experts in geographical information systems who apply computer technology to problems of managing geographical information.

See also


- Computer hardware
- Computability theory
- Computer datasheet
- Computer expo
- Computer science
- Computer types: desktop, laptop, desknote, roll-away computer, embedded computer, cart computer
- Computing
- Computers in fiction
- Digital
- History of computing
- List of computing topics
- Personal computer
- Word processing
- Computer Programming
- Quantum Computer

References


- [http://www.andrew.mallett.net/tech Learn to configure your computer at Andy's Tech Page] category: computer science ja:コンピュータ ko:컴퓨터 ms:Komputer nb:Datamaskin simple:Computer th:คอมพิวเตอร์

PlayStation 2

: The PlayStation 2 (PS2) (Japanese: プレイステーション2) is Sony's second video game console, the successor to the PlayStation and the predecessor to the PlayStation 3. Its development was announced in March 1999, and it was first released in Japan on March 4, 2000 and in the North American market on October 26, 2000. It was released in Europe on November 24, 2000. The PS2 is part of the sixth generation era, and has become the fastest selling gaming console in history, with over [http://www.scei.co.jp/corporate/release/pdf/051130e.pdf 100 million units shipped], beating the previous record holder, the PlayStation, by three years and nine months.

History

The PlayStation 2 had a difficult start. Only a few million users had obtained consoles by the end of 2000 due to manufacturing delays. Developers also complained that it was difficult to develop for the system, with little in the way of reference material from Sony for its exotic architecture. The PS2 launch seemed unimpressive and gaffe-prone, compared to the well-planned launch of the Sega Dreamcast, which was making a genuine attempt to woo developers and which had better launch titles. Yet, the PS2 initially sold well solely on the basis of the strength of the PlayStation brand and its backwards compatibility, selling over 900,000 units in the first weekend in Japan. This allowed the PS2 to tap the large install base established by the PlayStation. Another major selling point over the Dreamcast was the PlayStation 2's ability to play DVDs, which gained it a presence in electronics stores which did not formerly sell video game consoles. Later, Sony gained steam with new development kits for game developers and more PlayStations for consumers. Many analysts predicted a close 3-way matchup between the PS2 and its soon-to-be-released competitors Microsoft Xbox and Nintendo GameCube, noting that the PS2's graphics were inferior but that it had the advantage of a head start, and had a wide assortment of games of every genre (Xbox's strength was in its hardware; GameCube was the cheapest of the 3 consoles). However, the release of several blockbuster games during the 2001 holiday season pushed the PS2 far in front even as the Xbox and GameCube made their impressive debuts. Although Sony placed little emphasis on online gaming during its first year, all that changed because of the launch of the online-capable Xbox. Not only did Sony roll out the PS2 online adapter in late 2002 to compete with Microsoft, several online launch games were first party titles such as SOCOM US Navy SEALS in order to show that Sony was supporting this feature actively. Sony also advertised heavily as well and it had the advantage of being supported by Electronic Arts. As a result, although Sony and Nintendo both started out late and although both followed a decentralized model of online gaming where the responsibility is up to the developer to provide the servers, Sony's efforts made PS2 online gaming a big success. Hardware sales remained strong until 2004 saw the console apparently approaching saturation point. In September of that year, in time for the launch of Grand Theft Auto: San Andreas (the best-selling game during the 2004 Holiday season), Sony revealed a new, smaller PS2 (see Hardware revisions). In preparation for the launch of a new, slimmer PlayStation 2 model (SCPH-70000), Sony had stopped making the older PS2 model (SCPH-5000x) sometime during the summer of 2004 to let the distribution channel empty out stock of the units. After an apparent manufacturing issue caused some initial slowdown in producing the new unit, Sony reportedly underestimated demand, caused in part by shortages between the time the old units were cleared out and the new units were ready. This led to further shortages, and the issue was compounded in Britain when a Russian oil tanker became stuck in the Suez Canal, blocking a ship from China carrying PS2s bound for the UK. During one week in November, sales in the entire country of Britain totalled 6,000 units — compared to 70,000 a few weeks prior. [http://entertainment.timesonline.co.uk/article/0,,14935-1396182,00.html] Shortages in North America were also extremely severe; one retail chain in the U.S., GameStop, had just 186 PS2 and Xbox units on hand across more than 1700 stores on the day before Christmas. [http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=GME&script=1010&item_id=997399]

Sales Record

When the PlayStation 2 launched in Japan in March 2000, Sony sold 940,000 units over the opening weekend. When the PlayStation 2 launched in America in October 26, 2000, Sony sold 510,000 units within the first 24 hours. With a price of $299.99 per console, Sony made gross sales of roughly $153,000,000. To this day, the PS2 holds the record for the most consoles sold in a single day as well as the record for most consoles sold in launch day in America. PS2's opening day console sales eclipsed the previous record of 225,000 made by the Sega Dreamcast in 1999. The PlayStation 2 holds the record of fastest selling video game console ever, 100 million PlayStation 2 units were shipped in only five years and nine months, shattering the previous record of nine years and six months by the PlayStation. [http://www.scei.co.jp/corporate/release/pdf/051130e.pdf]

Games

: The PlayStation brand's strength has lead to strong third-party support for the system. Although the launch titles for the PS2 were unimpressive in 2000, the holiday season of 2001 saw the release of several best-selling and critically acclaimed games. Those PS2 titles helped the PS2 maintain and extend its lead in the video game console market, despite increased competition from the launches of the Microsoft Xbox and Nintendo GameCube. Critically acclaimed games on the machine are the Grand Theft Auto and Final Fantasy series, the latest two Metal Gear Solid titles, all three Devil May Cry titles, the SSX series, latest three Ace Combat titles, the Square Enix/Disney collaboration Kingdom Hearts, and first-party Sony Computer Entertainment brands such as the Gran Turismo, SOCOM, Ratchet & Clank and Jak and Daxter series, ICO, Shadow of the Colossus, God of War and the Everquest spin-offs Champions of Norrath and Champions: Return to Arms.

Hardware compatibility

Champions: Return to Arms video game console on the right]] The PS2 hardware can read both compact discs and DVDs. It is backwards compatible with older PlayStation (PS1) games, allows for DVD Video playback, and will play PS2 games off of cheap CD-ROMs or higher-capacity DVD-ROMs. The ability to play DVD movies allowed consumers to more easily justify the PS2's relatively high price tag (in October 2000, the MSRP was $300) as it removed the need to buy an external DVD player (indeed, it could be said that the success of the DVD format was partly due to the PS2's ability to play DVDs, as the format seemed to appeal more to consumers after the console's launch). The PS2 also supports PS1 memory cards (for PS1 game saves only) and controllers (the PS2's Dual Shock 2 controller is essentially a slightly upgraded PS1 Dual Shock). When it was released, the PS2 had many advanced features that were not present in other contemporary video game consoles, including its DVD capabilities and USB and IEEE 1394 expansion ports. It was not until late 2001 that the Microsoft Xbox became the second console with (non-standard) USB and DVD support. (This is assuming the Nuon, an advanced DVD player graphics coprocessor, is not considered a console.) Even then, the Xbox required separate remote accessory to unlock the DVD function and Sony could continue to pitch the PS2 as DVD capable out of the box.

Software compatibility

Support for original PlayStation games was also an important selling point for the PS2, letting owners of an older system upgrade to the PlayStation 2 and keep their old software, and giving new users access to older games until a larger library was developed for the new system. As an added bonus, the PS2 had the ability to enhance PlayStation games by speeding up disc read time and/or adding texture smoothing to improve graphics. While the texture smoothing was universally effective (albeit with odd effects where transparent textures are used), faster disk reading could cause some games to fail to load or play correctly. A handful of PlayStation titles (notably Metal Gear Solid: VR Missions) fail to run on the PS2 at all (VR Missions fails to recognise Metal Gear Solid at the disk swap screen, for example). This problem appears to have been rectified in the slimline versions of the PS2, where most of the previously unplayable PSone games can now be played. It is a common misconception that disk swapping in a game (for example, for multi-disk games or expansion packs) is not possible on the PS2. The anomalous failure of the above title at its disk swap screen may have given birth to this rumor. Software for all PlayStation consoles contains one of three region codes: for Japan and Asia: NTSC/J, North America: NTSC-U/C and Europe and Oceania: PAL.

Online play

With the purchase of a separate unit called the Network Adaptor (which is built into the newest system revision), some PS2 games support online multiplayer. Instead of having a unified, subscription-based online service like Xbox Live, online multiplayer on the PS2 is split between publishers and run on third-party servers. However, this comes at a price as any connection can connect to the internet with a PS2, resulting in lag whenever slow connections are present. Most recent PS2 online games have been developed to exclusively only support broadband internet access. Xbox Live exclusively requires broadband internet. All newer online PS2 games (since 2003) are protected by the Dynamic Network Authentication System (DNAS). The purpose of this system is to prevent piracy and online cheating. DNAS will prevent games from being played online if they are determined to be pirated copies, or if they have been modified.

Home development

online cheating Sony released a version of the Linux operating system for the PS2 in a package that also includes a keyboard, mouse, Ethernet adapter and hard disk drive. Currently, Sony's online store states that the Linux kit is no longer for sale in North America. However as of July 2005, the European version was still available. (The kit boots by installing a proprietary interface, the Run-time environment which is on a region-coded DVD, so the European and USA kits each only work with a PS2 from that region). In Europe and Australia, the PlayStation 2 comes with a free Yabasic interpreter on the bundled demo disk. This allows simple programs to be created for the PlayStation 2 by the end-user. This was included in a failed attempt to circumvent a UK tax by defining the console as a "computer" if it contained certain software. A port of the NetBSD project is also available for the PS2. It is also possible to listen to MP3 music and watch Divx movies with homebrew programs running in consoles that have a modchip installed.

Hardware revisions

modchip The PlayStation 2 has undergone many revisions, some only of internal construction and others with substantial external changes. These are colloquially known amongst PlayStation 2 hardware hackers as V0, V1, V2, etc., up to V12 (as of November 25, 2004). V0 was a Japanese model and was never sold in Europe or the US. These included a PCMCIA slot instead of the Expansion Bay (DEV9) port of newer models. V0 did not have a built-in DVD player and instead relied on an encrypted player that was copied to a memory card from an included CD-ROM (normally, the PS2 will only execute encrypted software from its memory card, but see PS2 Independence Exploit). V3 has a substantially different internal structure from the subsequent revisions, featuring several interconnected printed circuit boards. As of V4 everything was unified into one board, except the power supply. V5 introduces minor internal changes and the only difference between V6 (sometimes called V5.1) and V5 is the orientation of the Power/Reset switch board connector, which was reversed to prevent the use of no-solder modchips. V7 and V8 are also similar, and V9 (model number SCPH-50000/SCPH-50001) added the Infrared port for the optional DVD Remote Control, removed the widely unused FireWire port, added the capability to read DVD-RW discs, and a quieter fan. V10 and V11 have minor changes. FireWire In September 2004 Sony unveiled the third major hardware revision (V12, model number SCPH-70000). Available in November 2004, it is smaller and thinner than the old version and includes a built-in Ethernet port. In some markets it also integrates a modem. Due to its thinner profile, it does not contain the 3.5" expansion bay, and therefore does not support the internal hard disk drive but due to the presence of USB 2.0 ports an external USB Hard disk can still be used, and now uses an external power supply, like the Gamecube. Although external USB 2.0 enclosures are affordable the lack of internal hard disk has implicated a problem for users with perhaps little knowledge of the software requiered to enable the external disk functionality. For some consumers this is in fact a limitation, especially for the fans of titles such as Final Fantasy XI, which requires the use of this peripheral, and prevents the use of the official PS2 Linux kit. A product named HD Connect can be soldered into the unit giving hard drive support though. It is widely believed that Sony has abandoned support for the hard drive. There are also some disputes on the numbering for this PS2 version, since there are actually two sub-versions of the SCPH-70000. One of them includes the old EE and GS chips, and the other contains the newer unified EE+GS chip, otherwise being identical. Since the V12 version had already been established for this model, there were some disputes regarding these sub-versions. Two propositions were to name the old model (EE and GS, separate chips) V11.5 and the newer model V12, and to name the old model V12 and the newer model V13. Currently, most people just use V12 for both models, or V12 for the old model and V13 for the newer one. The new V12 model was first released in black. A silver edition is available in the United Kingdom exclusively. It is unknown whether or not this will follow the color schemes of the older model. There is also now a V14 model (SCPH-75001) which contains an integrated EE and GS , and different ASICs compared to previous revisions, some chips having a copyright date of 2005 compared to 2000,2001 for earlier models. It also has a different lens and some compatibility issues documented by Sony for earlier PS2 games. Sony has also made a PVR/DVD burning consumer device that plays PlayStation 2 games called the PSX. The device was poorly received, with some major features absent from the first revisions of the hardware, and has thus far experienced very poor sales in Japan, in spite of major price drops [http://www.gamesindustry.biz/news.php?aid=4280]. The machine's future continues to be uncertain, with North American and European launches considered to be distant if at all. Later hardware revisions had better compatibility with PlayStation games (Metal Gear Solid: VR Missons works on most silver models). However the New Slim Silver Models have more issues with playing PlayStation games than the first PS2 revisions.

Screenshots

Image:gt3as.jpg|Gran Turismo 3: A-Spec
SCE (2001) Image:ssx.jpg|SSX
EA Sports (2000) Image:tmblack.jpg|Twisted Metal: Black
SCE (2001) Image:Ace_combat5.jpg|Ace Combat 5
Namco (2004) Image:ffx.jpg|
Final Fantasy X
Square (2002) Image:madden05.jpg|
Madden NFL 2005
EA Sports (2005) Image:thps3_2.jpg|
Tony Hawk Pro Skater 3
Activision (2001) Image:MGS3 scope.jpg|
Metal Gear Solid 3
Konami (2004) Image:Sapreview2.jpg|
GTA San Andreas
Rockstar Games (2004) Image:ratchet2.jpg|
Ratchet & Clank 3
SCE (2004) Image:Godofwar27.jpg|
God of War
SCE (2005) Image:Ico07.jpg|
ICO
SCE (2002) Image:Tekken5114.jpg|
Tekken 5
Namco (2005) Image:Sophitia_Vs_Nightmare.jpg|
Soul Calibur III
Namco (2005) Image:Kata27.jpg|
Katamari Damacy
Namco (2004) Image:Shadow_Col01.jpg|
Shadow of the Colossus
SCE (2005)

Accessories

Technical specifications

The specifications of the PlayStation 2 console are as follows, with hardware revisions: 2005
- CPU: 128 bit "Emotion Engine" clocked at 294 MHz (later versions 299 MHz), 10.5 million transistors
  - System Memory: 32 MB Direct Rambus or RDRAM (note that some computers use this type of RAM)
  - Memory Bus Bandwidth: 3.2 GB per second
  - Main processor: MIPS R5900 CPU core, 64 bit
  - Co-Processor: FPU (Floating Point Multiply Accumulator × 1, Floating Point Divider × 1)
  - Vector Units: VU0 and VU1 (Floating Point Multiply Accumulator × 9, Floating Point Divider × 1), 128 bit
  - Floating Point Performance: 6.2 GFLOPS
  - 3D CG Geometric Transformation: 66 million polygons per second (1)
  - Compressed Image Decoder: MPEG-2
  - I/O Processor interconnection: Remote Procedure Call over a serial link, DMA controller for bulk transfer
  - Cache Memory: Instruction: 16KB, Data: 8KB + 16 KB (ScrP)
- Graphics: "Graphics Synthesizer" clocked at 147 MHz
  - DRAM Bus bandwidth: 47.0GB per second
  - DRAM Bus width: 2560-bit
  - Pixel Configuration: RGB:Alpha:Z Buffer (24:8, 15:1 for RGB, 16, 24, or 32-bit Z buffer)
  - Maximum Polygon Rate: 75 million polygons per second (1)
  - Dedicated connection to: Main CPU and VU1
- Sound: "SPU1+SPU2"
  - Number of voices: 48 hardware channels of ADPCM on SPU2 plus software-mixed channels
  - Sampling Frequency: 4