Computer Architecture
Microprocessor
a computer processor that incorporates the functions of a computer's central processing unit (CPU) on a single integrated circuit (IC), or at most a few integrated circuits
Compiler
a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code)
Debugger
a computer program that is used to test and debug other programs (the "target" program)
Disassembler
a computer program that translates machine language into assembly language—the inverse operation to that of an assembler
I/O bound
a condition in which the time it takes to complete a computation is determined principally by the period spent waiting for input/output operations to be completed
Register-Transfer Level (RTL)
a design abstraction which models a synchronous digital circuit in terms of the flow of digital signals (data) between hardware registers, and the logical operations performed on those signals
Memory Controller
a digital circuit that manages the flow of data going to and from the computer's main memory
Arithmetic Logic Unit (ALU)
a digital circuit that performs arithmetic and bitwise logical operations on integer binary numbers
x86
a family of backward compatible instruction set architectures based on the Intel 8086 CPU and its Intel 8088 variant
Direct Memory Access (DMA)
a feature of computerized systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU)
Java
a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible
C++
a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing the facilities for low-level memory manipulation
C
a general-purpose, imperative computer programming language. It supports structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations
Assembly Language
a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions
Instructions per second (IPS)
a measure of a computer's processor speed
Virtual Memory
a memory management technique that is implemented using both hardware and software
Engineering Design Process
a methodical series of steps that engineers use in creating functional products and processes
execution or functional unit
a part of a CPU that performs the operations and calculations called for by the computer program
Assembler
a program which creates object code by translating combinations of mnemonics and syntax for operations and addressing modes into their numerical equivalents
High-level programming language
a programming language with strong abstraction from the details of the computer
Floorplan
a schematic representation of tentative placement of its major functional blocks
Transistor
a semiconductor device used to amplify and switch electronic signals and electrical power
Pipeline
a set of data processing elements connected in series, where the output of one element is the input of the next one
Machine Code
a set of instructions executed directly by a computer's central processing unit (CPU)
Memory Bound
a situation in which the time to complete a given computational problem is decided primarily by the amount of memory required to hold data
Processor Register
a small amount of storage available as part of a digital processor, such as a central processing unit (CPU)
Word
a term for the natural unit of data used by a particular processor design
abstraction layer
a way of hiding the implementation details of a particular set of functionality, allowing the separation of concerns to facilitate interoperability and platform independence
Addressing Mode
an aspect of the instruction set architecture in most central processing unit (CPU) designs
Logic Gate
an idealized or physical device implementing a Boolean function; that is, it performs a logical operation on one or more logical inputs, and produces a single logical output
VAX
an instruction set architecture (ISA), developed by Digital Equipment Corporation (DEC) in the mid-1970s
Field-Programmable Gate Array (FPGA)
an integrated circuit designed to be configured by a customer or a designer after manufacturing
Software
any set of machine-readable instructions that directs a computer's processor to perform specific operations
Benchmark
the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it
Processor Design
the design engineering task of creating a microprocessor, a component of computer hardware
Central Processing Unit (CPU)
the electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic arithmetic, logical, control and input/output (I/O) operations specified by the instructions
Clock Speed
the frequency at which a chip like a central processing unit (CPU), one core of a multi-core processor is running, and is used as an indicator of the processor's speed
Instruction Set Architecture (ISA)
the part of computer architecture related to programming, native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O
Opcode
the portion of a machine language instruction that specifies the operation to be performed
Real-time computing (RTC)
the study of hardware and software systems that are subject to a "real-time constraint", for example operational deadlines from event to system response
Interrupt Latency
the time that elapses from when an interrupt is generated to when the source of the interrupt is serviced
Multiprocessing
the use of two or more central processing units (CPUs) within a single computer system
Manchester Small-Scale Experimental Machine (SSEM, Baby)
the world's first stored-program computer
Memory Hierarchy
used in computer architecture when discussing performance issues in computer architectural design, algorithm predictions, and the lower level programming constructs such as involving locality of reference
CPU-bound
when the time for it to complete a task is determined principally by the speed of the central processor: processor utilization is high, perhaps at 100% usage for many seconds or minutes
CPU Cache
a cache used by the central processing unit (CPU) of a computer to reduce the average time to access data from the main memory
Data Type
a classification identifying one of various types of data, such as real, integer or Boolean, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of that type can be stored
Bus
a communication system that transfers data between components inside a computer, or between computers
Computer Cluster
consists of a set of loosely or tightly connected computers that work together so that, in many respects, they can be viewed as a single system
Computer Architecture
discipline describing the functionality, organization, and implementation of computer systems
Computer Engineering
discipline utilizing electrical engineering and computer science to develop computer hardware and software
Emulator
hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest)
Superscalar
implements a form of parallelism called instruction-level parallelism within a single processor
Non-uniform memory access (NUMA)
is a computer memory design used in multiprocessing, where the memory access time depends on the memory location relative to the processor
Microarchitecture
is the way a given instruction set architecture (ISA) is implemented on a processor