Chap1 - PART 1 - Abstraction And Technology Flashcards
What is Computer Architecture?
Define it
Computer Architecture: is the design of the abstraction/implementation layers that allow us to execute information processing applications efficiently using manufacturing technologies
List the Order of the Computer Architecture section in the “Abstractions in Modern Computing System”
[OS/VM] > [ISA] > [Microarchitecture] > [Register-Transfer level] > [Gates]
Computer Architecture is Constantly Changing!
Explain: Application Requirements:
Explain: Technology Constraints:
Application Requirements:
- This refers to how to improve the architecture
- Provide revenue to fund development
Technology Constraints:
- Restrict what can be done efficiently
- New technologies make new architecture possible
Note that: Architecture provides feedback to guide application and technology research directions!
List all types of Computer
- Personal Computer
- Super Computers
- Embedded Computers
- Server Computers
Describe Personal Computer
- General purpose, variety of software
- Subject to cost/performance tradeoff [makes sense]
Describe Supercomputers
- capable of executing High-end scientific and engineering calculations
- has the highest capability but repressent a small fraction of the overall computer market.
Describe Server Computers
- Network based
- High capacity, performance, reliability
- range from small servers to building sized
Describe embedded computers
- This is the largest class of computers
- It is usually hidden as components of systems
- Stringent power/performance/cost constraints
Describe PMDS
Personal Mobile Device:
- Small wireless devices that connect to the internet
- Relies on battery hence portability
Describe Cloud computing
This is a large collections of servers that provide services over the internet
Describe “Software as a service (SaaS)”
- Delivering software and data as a service over the internet. Eg. Citrix
Image of the Old Machine Structures

What is the Old Conventional Wisdom?
Moore’s Law + Dennard Scaling = Faster + Cheaper + Lower-powered general purpose computers per year
Remember it is dumb to compete by designing: Parallel or specialized computers
Because by the time you have finished one design, the next generation of general-purpose will beat you for sure.
How many TFLOPS/Chip Google has?
They use the Google TPU2: which is a specialized engine for NN training that is deployed in cloud.
It is 45 TFLOPS / chip.
meaning:
Trillion Floating Point Operation Per Second
Understanding Performance:
Explain the term below:
- Algorithm
This determines the number of operations executed.
Understanding Performance:
Explain the term below:
- Programming language, compiler, architecture
This determine the number of machine instructions executed per operation
Understanding Performance:
Explain the term below:
- Processor and Memory System
This determine how fast instructions are executed
Understanding Performance:
Explain the term below:
- I/O System (Including OS)
This determines how fast I/O operations are executed.
What are the 8 great ideas in Computer Architecture?
- Design for Moore’s Law
- Use Abstraction to simplify design
- Make the Common Case Fast
- Performance via Parallelism
- Performance via Pipelining
- Performance via Prediction
- Hieracrchy of memories
- Dependability via Redundancy
State the design for Moore’s Law
Gordon Moore
Intel Co-Founder
The number of resoruces in an integrated circuit (IC) doubles every 18-24 months
Idea #2:
Abstraction

Idea # 3:
Make the Common Case Fast
Making the common case fast will:
- tend to enchance performance better than optimizing the rare case
- However, common case is often simplier than the rare one and hence it is easier to enhance.
- Making the common case fast is known as : Amdahl’s law
Idea #4:
Performance via Parallelism
Parallelism != Concurrency
Therefore, explain: Concurrency.
Also explain: Parallelism
Remember Parallelism CANNOT occur in a single core CPU
Concurrency:
- This is the fast switching between operations/programs/applications, giving the impression that these are occuring at the same time. Also natively known as share time.
Parallelism:
- This is the running of several tasks, or parts of tasks at the same time

Idea #5:
Performance via Pipelining
- This is known as extension parallelism.
- For example, we can imagine the execution of instructions as an assembly line.
- As soon as the first part of an instruction is done, you then move onto the second part and start the first part of the enxt instruction.
- Difference between Pipeline and Non-Pipelined






