Computer Architecture Flashcards
Digital computer
Computer system that uses digital signals to perform calculations
Logical gates
Abstract binary operators that can be applied to one or multiple bits to generate a new bit
Basic logic gates
- AND
- NAND
- OR
- NOR
- XOR
- OR
Elements of digital circuits
- 1+ input terminals
- 1+ output terminals
- Functional specification to describe relationship between input and output
- Timing specification to describe delay between any change in input and response in output
Combinational circuits
(system does not have memory) = outputs of the circuit depend only on current input values
Sequential circuits
(system has memory) = outputs of the circuit depend on the current AND previous values (ex. NOR)
The number of unique values that can be represented with n bits
2^n
Data type
particular representation that can be used by computer to encode information
Convert BIN => HEX
- Divide number in 4bits nibbles
- Convert each nibble to decimal
- Represent values as hex
Transistor
electrical switch that can be controlled and put in ON or OFF state by applying different voltages on input terminals
Doping
the process of adding impurities to the silicon crystal to make it an electrical conductor.
Hole
the lack of the electron in the impurity atom.
nMOS transistors
when gate voltage is low, then transistor is OFF
pMOS transistors
when gate voltage is low, then transistor is ON
Programmable logic array
array of AND gates followed by an array of OR gates. The number of AND gates corresponds to number of input combinations in truth table (rows). The number of OR gates corresponds to number of columns in truth table.
Logical completeness
a set of gates {AND, OR, NOT} is logically complete if it possible to build any truth table without using any other kind of gate
Integrated circuit
a set of electronic circuits on a small flat piece of semiconductor
Netlist
list of circuit components and their connections
Logic synthesis
verified HDL code is used by CAD tool to generate a detailed design including all components, such as logic gates, transistors and their interconnections
Computer system organization
physical aspects of a system (implementation), its functional elements and their connections
Computer system architecture
abstract description of internal organization; logical aspects of the system
Instruction set
set of instructions that should be executed by the hardware
Main goal of computer system architecture
balancing performance, reliability, efficiency, cost
Von Neumann architecture components
- Processor
- Memory
- I/O devices
- Bus system to transfer data and instructions between processor and memory
Control unit
A part of CPU which controls CPU operations, manages data flow between CPU and memory, decodes instructions
ALU
A part of CPU which perform logical and mathematical operations
Registers
high speed memory blocks used to store data fetched from main memory before it is processed
Program counter
memory address of next instruction to be executed
Stack pointer
memory address of the top of the stack
Memory addressability
number of bits of information stored in each location
Memory address space
total number of uniquely identifiable locations
Memory address
reference to a specific location in a memory, expressed by a fixed length sequence of digits
MAR
Memory address register (=location)
MDR
Memory data register (=content)
Fetch-decode process
- Fetch instruction
- Decode instruction
- Evaluate address of memory location needed to complete the instruction
- Fetch operands
- Execute operation
- Store result
Von Neumann bottleneck
data and instructions are stored on a shared memory and can only be accessed through the data bus; when the data are transmitted via the data bus, the CPU cannot do anything
Harvard architecture
two separate memories (for data and instructions) that can be accessed via two separate buses (data bus, instruction bus)
State of the system
snapshot of all the relevant elements of the system at the moment the snapshot is taken
Instruction set architecture
interface between hardware and software that specifies memory organization, register set, instruction set, addressing modes, opcodes, data types
Instruction
smallest piece of work specified in a computer program