Introduction to computer design Flashcards
What is Moore’s law?
The number of transistors double every 18 months.
However, this is now slowing down.
Define the internet of things/embedded systems
Computers that are integrated as components in systems. Have very few applications and are not programmamble by the end user.
(cars, washing machine, …)
Power, performance and costs set the constraints for embedded systems
What are personal mobile devices?
Wireless devices with multimedia user interfaces.
As embedded systems, they are power, performance and cost constrained
(phones, tablet, …)
What are desktop computers?
General purpose running a variety of software.
Limited by power, but not as much because of the ability to an outlet.
Performance constrained
What are servers?
Network based computers.
Have high throughput and need to be reliable.
High capacity.
Energy constrained.
What is one way to improve computer performance?
Exploiting parallellism
What two types of parallelism are there?
Data-level parallelism: Same operation of multiple data
Task-level parallelism: Divide the work into tasks that can operate mostly in parallell
What are the sources of parallelism in computers(5)?
Instruction-level parallelism
Thread-level parallelism
Request-level parallelism
Memory-level parallelism
Vector processing (SIMD - single instruction multiple data)
What are Instruction level paralellism?
Observing that if instructions are independent of each other, they can be executed in parallell.
What is vector processing / SIMD (Single input multiple data)
You operate the same instruction on multiple data
What is thread level parallelism?
Software is organized as different threads that can run in parallell.
Threads can communicate with each other.
What type of parallelism can be implemented in request-respons systems?
Request-level parallelism
What is request-level parallelism?
In these systems, such as servers, requests tend to be independent of each other.
Request-level parallelism is when systems processes requests in parallell.
What type of parallelism can be implemented for load and store requests?
Memory-level parallelism.
What is Memory-level parallelism?
Processor memory requests can be issued in parallell to hide memory latencies
Name the categories in Flynn’s taxonomy
SISD: Single instruction, single data (sequential)
SIMD: Single input, multiple data (Vector architectures, GPU)
MISD: Multiple instructions, single data (not commonly used, very impractical, more theoretical)
MIMD: Multiple instruction multiple data
What are the two categories of MIMD systems?
Tightly-coupled: Multi-cores, many-cores
Loosely-coupled: Clusters, data centers
Define computer architecture
The instruction set architecture (ISA).
The set of instructions that can be executed by the hardware.
Todays objective of computer architecture is to design the organization and the hardware to meet objectives and functional requirements.
Final definition: Computer architeture covers the ISA, the organization and the hardware
What does the ISA define (7)?
Operand types (registers, memory locations)
Memory addressing (is the memory byte addressible…?)
Addressing modes (registers, immediate, displacement)
Types and sizes of operands (word, char, double word)
Operations
control flow (conditional branches, unconditional jumps)
Encoding (are all instructions the same size, variable lengths to not waste bits)
What is computer organization?
High-level aspects of a computer’s design.
Memory system, interconnects - how components are connected to each other, CPU design
What is computer hardware?
Logic design and packaging of the computer.
Name the levels of a computer
Application software: Software in high-level language
System software: Compiler (translates HLL to machine code), OS (provides service code, I/O, scheduling, share resources)
Hardware: RAM, CPU, I/O
What are the levels of program code
High-level language:
- Level of abstraction closer to problem domain
- readable for humans (productivity)
Assembly language:
- Textual representation of instructions
Hardware representation:
- stream of bits
- encoded instructions and data