Computer Engineering

Summary

Computer engineering refers to the field of designing hardware and software components that interact to maximize the speed and processing capabilities of the central processing unit (CPU), memory, and peripheral devices, including the keyboard, monitor, disk drives, mouse, and printer. Because the first computers were based on using on-and-off mechanical switches to control electrical circuits, computer hardware is based on the binary number system. Computer engineering involves developing operating systems that can interact with compilers that translate the software programs written by humans into machine instructions that depend on the binary number system to control electrical logic circuits and communication ports to access the internet.

Definition and Basic Principles

Much of the work within the field of computer engineering focuses on optimizing computer hardware, which is the general term that describes the electronic and mechanical devices that make it possible for a computer user (client) to utilize the power of a computer. These physical devices are based on binary logic. Humans use the decimal system for numbers, instead of the base two-number system of binary logic, and naturally, humans communicate with words. A great deal of interface activity is necessary to bridge this communication gap, and computer engineering involves additional types of software (programs) that function as intermediate interfaces to translate human instructions into hardware activity. Examples of these types of software include operating systems, drivers, browsers, compilers, and linkers.

89250403-78354.jpg

Computer hardware and software generally can be arranged in a series of hierarchical levels, with the lowest level of software being the machine language, consisting of numbers and operands that the processor executes. Assembly language is the next level. It uses instruction mnemonics, which are machine-specific instructions used to communicate with the operating system and hardware. Each instruction written in assembly language corresponds to one instruction written in machine code, and these instructions are used directly by the processor. Assembly language is also used to optimize the runtime execution of application programs. At the next level is the operating system, which is a computer program written to manage resources, such as disk drives and printers, and may function as an interface between a computer user and various pieces of hardware. The highest level includes applications that humans use daily. These are considered the highest level because they consist of statements that are very close to human language.

Background and History

The first computers used vacuum tubes and mechanical relays to indicate the switch positions of on or off as the logic units corresponding to the binary digits of 0 or 1, and it was necessary to reconfigure them each time a new task was approached. They were large enough to occupy entire rooms and required huge amounts of electricity and cooling. In the 1930s, the Atanasoff-Berry Computer (ABC) was created at Iowa State University to solve simultaneous numerical equations, and it was followed by the Electronic Numerical Integrator And Computer (ENIAC), developed by the military for mathematical operations.

The transistor was invented in 1947 by John Bardeen, Walter Brattain, and William Shockley, which led to the use of large transistors as logic units in the 1950s. The integrated circuit chip was invented by Jack St. Clair Kilby and Robert Norton Noyce in 1958 and caused integrated circuits to come into use in the 1960s. These early integrated circuits were still quite large and included transistors, diodes, capacitors, and transistors. Modern silicon chips can hold these components and as many as 55 million transistors. Silicon chips are called microprocessors because each microprocessor can hold these logic units within just over a square inch of space.

How It Works

Hardware. A computer's hardware, or physical components, can be classified according to their general uses of input, output, processing, and storage. Typical input devices include the mouse, keyboard, scanner, and microphone that facilitate communication of information between the human user and the computer. The operation of each of these peripheral devices requires special software called a driver, which is a type of controller, that can translate the input data into a form that can be communicated to the operating system and controls input and output peripheral devices.

A read-only memory (ROM) chip contains instructions for the basic input-output system (BIOS) that all the peripheral devices use to interact with the CPU. This process is especially important when a user first turns on a computer for the boot process.

When a computer is turned on, it first activates the BIOS, which is software that facilitates the interactions between the operating system, hardware, and peripherals. The BIOS accomplishes this interaction by first running the power-on self-test (POST)—a set of routines always available at a specific memory address in the read-only memory. These routines communicate with the keyboard, monitor, disk drives, printer, and communication ports to access the internet. The BIOS also controls the time-of-day clock. These tasks completed by the BIOS are sometimes referred to as booting up (from the expression “lift itself up by its bootstraps”). The last instruction within the BIOS is to start reading the operating system from either a boot disk in a diskette drive or the hard drive. When shutting down a computer, some steps are followed to allow settings to be stored and network connections to be terminated.

The CPU allows instructions and data to be stored in memory locations, called registers, which facilitate the processing of information as it is exchanged between the control unit, arithmetic-logic unit, and any peripheral devices. The processor interacts continuously with storage locations, which can be classified as volatile or nonvolatile types of memory. Volatile memory is erased when the computer is turned off and consists of main memory, called random-access memory (RAM), and cache memory. The fundamental unit of volatile memory is the flip-flop, which can store a value of 0 or 1 when the computer is on. This value can be flipped when the computer needs to change it. If a series of 8 flip-flops is hooked together, an 8-bit number can be stored in a register. Registers can store only a small amount of data temporarily while the computer is on. Therefore, the RAM is needed for larger amounts of information. However, it takes longer to access data stored in the RAM because it is outside the processor and needs to be retrieved, causing a lag time. Another type of memory, called cache, is located in the processor and can be considered an intermediate type of memory between registers and main memory.

Nonvolatile memory is not erased when a computer is turned off. It consists of hard disks that make up the hard drive, or flash memory. Although additional nonvolatile memory can be purchased for less money than volatile memory, it is slower. A traditional hard drive (HDD) consists of several circular discs called platters made from aluminum, glass, or ceramics and covered by a magnetic material so that they can develop a magnetic charge. There are read-and-write heads made of copper so a magnetic field develops that can read or write data when interacting with the platters. A spindle motor causes the platters to spin at a constant rate, and either a stepper motor or voice coil is used as the head actuator to initiate interaction with the platters. In the twenty-first century, HDDs were increasingly replaced by solid-state drives (SDDs), which perform the same functions faster and more efficiently using flash memory. SDDs also lack the moving parts of HDDs, making them smaller and more reliable in many applications. While SDDs were initially much more expensive than HDDs, the technology became more affordable over time.

The control unit of the CPU manages the circuits for completing operations of the arithmetic-logic unit. The arithmetic-logic unit of the CPU also contains circuits for completing the logical operations, in addition to data operations, causing the CPU essentially to function as the brain of the computer. The CPU is located physically on the motherboard. The motherboard is a flat board that contains all the chips needed to run a computer, including the CPU, BIOS, and RAM, as well as expansion slots and power supply connectors. A set of wires, called a bus, etched into the motherboard connects these components. Expansion slots are empty places on the motherboard that allow upgrades or the insertion of expansion cards for various video and voice controllers, memory expansion cards, fax boards, and modems without reconfiguring the entire computer. The motherboard is the main circuit board for the entire computer.

Circuit Design and Connectivity. Most makers of processor chips use the transistor-transistor logic (TTL) because this type of logic gate allows for the output from one gate to be used directly as the input for another gate without additional electronic input, which maximizes possible data transmission while minimizing electronic complications. The TTL makes this possible because any value less than 0.5 volts is recognized as the logic value of 0, while any value that exceeds 2.7 volts indicates the logic value of 1. The processor chips interact with external computer devices via connectivity locations called ports. One of the most important of these ports is the Universal Serial Bus (USB) port, which is a high-speed, serial, daisy-chainable port used to connect keyboards, printers, mice, external disk drives, and additional input and output devices. Several generations of USB emerged over the years, offering higher data transfer speeds.

Software. The operating system consists of software programs that function as an interface between the user and the hardware components. The operating system also assists the output devices of printers and monitors. Most of the operating systems being used also have an application programming interface (API), which includes graphics and facilitates use. APIs are written in high-level languages (using statements approximating human language), such as C++, Java, and Visual Basic.

Applications and Products

Stand-Alone Computers. Most computer users rely on relatively small computers such as laptops and personal computers (microcomputers). Companies that manufacture these relatively inexpensive computers have come into existence only since the early 1980s and have transformed the lives of average Americans by making computer usage a part of everyday life. Before microcomputers came into wide usage, the workstation was the most accessible smaller-size computer. It is still used by small and medium-sized businesses needing additional memory and speed capabilities. Larger organizations such as universities use mainframe computers to handle their larger power requirements. Mainframes generally occupy an entire room. The most powerful computers are referred to as supercomputers, and they are so expensive that often several universities will share them for scientific and computational activities. Supercomputers are also used for military, government, and other purposes. They often require the space of several rooms.

Inter-Network Service Architecture, Interfaces, and Inter-Network Interfaces. A network consists of two or more computers connected to share resources. The first networks used coaxial cable, but now wireless technologies allow computer devices to communicate without the need to be physically connected by a coaxial cable. The internet has been a computer-engineering application that has transformed the way people live. Connecting to the internet first involved the same analog transmission used by the plain old telephone service (POTS), but connections have evolved to the use of fiber-optic technology and wireless connections. Laptop and tablet computers, cell phones, smartphones, RFID (radio frequency identification), and Global Positioning Systems (GPS) can communicate, and their developments have been made possible by the implementation of the fundamental architectural model for inter-network service connections called the Open Systems Interconnection (OSI) model. OSI is the layered architectural model for connecting networks. It was developed in 1977 and is used to make troubleshooting easier so that if a component fails on one computer, a new, similar component can be used to fix the problem, even if the component was manufactured by a different company.

OSI's seven layers are the application, presentation, session, transport, network, data link, and physical layers.

The application and presentation layers work together. The application layer synchronizes applications and services in use by a person on an individual computer with the applications and services shared with others via a server. The services include email, the World Wide Web, and financial transactions. One of the primary functions of the presentation layer is the conversion of data in a native format such as extended binary coded decimal interchange code (EBCDIC) into a standard format such as American Standard Code for Information Interchange (ASCII).

As its name implies, the primary purpose of the session layer is to control the dialog sessions between two devices. The network file system (NFS) and structured query language (SQL) are examples of tools used in this layer.

The transport layer controls the connection-oriented flow of data by sending acknowledgments to data senders once the recipient has received data and also makes sure that segments of data are retransmitted if they do not reach the intended recipient. A router is one of the fundamental devices that works in this layer, and it is used to connect two or more networks physically by providing a high degree of security and traffic control.

The data link layer translates the data transmitted by the components of the physical layer, and it is within the physical layer that the most dramatic technological advances made possible by computer engineering have had the greatest impact. The coaxial cable originally used has been replaced by fiber-optic technology and wireless connections.

Fiber Distributed Data Interface (FDDI) is a fiber-optic technology that is a high-speed method of networking, composed of two concentric rings of fiber-optic cable, allowing it to transmit over a longer distance but at greater expense. Fiber-optic cable uses glass threads or plastic fibers to transmit data. Each cable contains a bundle of threads that work by reflecting light waves. They have much greater bandwidth than the traditional coaxial cables and can carry data at a much faster rate because light travels faster than electrical signals. Fiber-optic cables are also not susceptible to electromagnetic interference and weigh less than coaxial cables.

Wireless networks use radio or infrared signals for cell phones and a rapidly growing variety of handheld devices, including smartphones and tablets. The proliferation of devices using wireless technologies Bluetooth and Wi-Fi for mobile connections led to the next phase of inter-network communications with the internet, called cloud computing. Cloud computing refers to the storage of data, software, and other information on the internet, where users can access it on demand from any connected device. Cloud computing providers operate massive server banks, and often make their services available for a fee. Cloud computing, along with teleconferencing and videoconferencing computer applications, made it easier and cheaper to do business all around the world.

Careers and Course Work

Knowledge of the design of electrical devices and logic circuits is important to computer engineers, so a strong background in mathematics and physics is helpful. Since there is a great deal of overlap between computer engineering and electrical engineering, any graduate with a degree in electrical engineering may also find work within the computer field.

Occupations within the computer engineering field include network and computer systems administrators, computer systems analysts, network security specialists, and software engineers. Such jobs at established companies and organizations generally require at least a bachelor's degree, typically in computer engineering, electrical engineering, software engineering, computer science, information systems, or network security. However, there are also many examples of self-taught computer experts who find success by demonstrating their skills in creative ways that catch the attention of employers, or by starting their own company.

Social Context and Future Prospects

Given the steadily increasing prevalence of computers in virtually every aspect of society, computer engineering is expected to only increase in importance. Mobile devices such as smartphones, laptops, and tablets have made computing an essential part of daily life for many people. Computers are vital to business and government operations. As long as this is the case, computer engineers will be in demand and will be among those who continue to develop the field into new areas.

The ubiquity of computer technology does bring certain specialized concerns. Notably, the rapid growth of wireless integration and internet applications that facilitate communication and financial transactions in the first decades of the twenty-first century was accompanied by increasing rates of identity theft and other cybercrimes. Therefore, network security continues to be an especially important application of computer engineering.

Bibliography

"Computer Systems Analysts." Occupational Outlook Handbook, US Bureau of Labor Statistics, 17 Apr. 2024, www.bls.gov/ooh/computer-and-information-technology/computer-systems-analysts.htm. Accessed 20 May 2024.

Dhillon, Gurphreet. “Dimensions of Power and IS Implementation.” Information and Management 41.5 (2004): 635–44.

Farley, DavidModern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley, 2022.

"FBI Releases the Internet Crime Report." FBI, 4 Apr. 2024, www.fbi.gov/contact-us/field-offices/sanfrancisco/news/fbi-releases-internet-crime-report. Accessed 20 May 2024.

Freiberger, Paul A., et al. "Computer." Britannica, 27 Aug. 2024, www.britannica.com/technology/computer. Accessed 6 Dec. 2024.

Irvine, Kip R. Assembly Language for Intel-Based Computers. 8th ed., Prentice, 2019.

Kerns, David V., Jr., and J. David Irwin. Essentials of Electrical and Computer Engineering. 2nd ed., John Wiley & Sons, 2022.

Limoncelli, Tom, Strata R. Chalup, and Christina J. Hogan. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems. Addison, 2015.

Magee, Jeff, and Jeff Kramer. Concurrency: State Models and Java Programming. Wiley, 2006.

"Network and Computer Systems Administrators." Occupational Outlook Handbook, US Bureau of Labor Statistics, 17 Apr. 2024, www.bls.gov/ooh/computer-and-information-technology/network-and-computer-systems-administrators.htm. Accessed 20 May 2024.

Silvester, P. P., and D. A. Lowther. Computer Engineering Circuits, Programs, and Data. Oxford UP, 1989.

Sommerville, Ian. Engineering Software Products: An Introduction to Modern Software Engineering. Pearson, 2020.