1/27
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
The following 3 terms are repeatedly encountered in this course. Define each:
1. Computer Architecture
2. Organization
3. Implementation
Computer Architecture - What the system is designed to do
Organization - How the pieces are arranged
Implementation - How to physically build it
What topics from previous classes does CPEN 4700 build upon?
Logic gates
Digital components
Processor / memory
Complete computer architecture
Boolean algebra
Encoders / decoders
Multiplexers / demultiplexers
T/F : Computer architecture is assembling a computer from parts
False
comp architecture IS NOT assembling a computer from parts.
comp architecture IS the design of computing systems including all their major subsystems
Comp architecture is the design of computing systems including all their major subsystems. What are the 3 major subsystems?
Central processing unit (CPU) - executes instructions
Memory system - stores instructions in data
Input / Output (I/O) system - allows the computer to communicate with devices and outside world
What does a bus do within computer architecture?
Buses are connections that allow the different parts of the system to communicate with each other
Why is the word “architecture” useful?
Designing a system is similar to designing a building
Different applications create different design priorities
For example:
Architects design buildings with a variety of different purposes in mind (office building, factory, home, store, etc.)
The design for a home is very different from a factory, but the same basic principles apply
The same is true of computer architects - the intended uses of computer system vary widely therefore so do their designs
For example:
A small embedded system (like a security chip on a debit card) may prioritize low power / cost
A desktop computer may prioritize performance / cost
While a supercomputer costs much more while prioritizing performance
How to best describe architecture?
Architecture is like a blueprint of the overall system and how various components will fit together to accomplish the desired purpose of the system
Describe the difference between architecture and implementation:
Architecture asks:
“what should the system look like and how should it work”
The design
Implementation asks:
“how do we actually build it”
The technology used to realize that design
Note that neither is much at all useful without the other
How to best describe implementation?
Implementation
The physical realization of a system.
For example:
To implement a building we might use steel, wood, plastic, glass, etc. to make up the doors, windows, walls, stairs, and other parts of the structure
To implement a computer we will use integrated circuits, wires, circuit boards, magnetic or optical disks, keyboards, mice, displays, etc.
Is a CPU an integrated circuit?`
Yes, a modern processor is implemented as an integrated circuit containing a huge number of transistors
T/F: Good design cannot rescue bad implementation, and good implementation cannot rescue bad design
True
If we want to end up with a system that performs its intended function(s) well, both the architecture and implementation are important
T / F: Better technology enables new architectures, and new architectures push technology forward.
True (like a feedback loop)
To produce a reliable system that performs well on the intended application(s) architecture and implementation must work hand-in-hand
Neither architecture or implementation exist in a vacuum. They influence, and are influenced by, each other.
Architectural vision affects the technologies chosen for implementation
Conversely, as new implementation technologies are discovered/invented, the availability of these technologies allows architects to experiment with new designs
True / False: Designs influence implementation, and new implementation technologies influence design.
True
Designs influence implementation, and new implementation technologies influence design. A computer design that was impossible to build 10-20 years ago is now commonplace.
Over a relatively short period of time - about 80 years, computer architecture and implementation technologies have evolved to produce the computing systems we use today. They will continue to evolve and develop during the careers of today’s students.
Describe the chronology of computing systems
Counting boards - ancient greeks and romans
Abacus - introduced to China around 1200 AD
Mechanical calculators date back to 17th century
First design for a programmable digital computer - Charles Babbage made the Analytical Engine (1837)
Mechanical NOT electronic (light bulb not yet incented)
It was never actually completed due to lack of funding
Ada Lovelace
Developed “cards” (instructions) for the Analytical Engine, and thus is considered the world’s first computer programmer (Ada language named after her)
Herman Hollerith
Designed mechanical punched-card data processing devices in the late 18000s they were used to tabulate the results of the 1890 US census. His company then merged with another to become IBM (International Business Machines).
Babbage’s Analytical Engine
was based on decimal (base 10) number system most familiar to humans. However, constructing practical computing devices based on this number proved to be difficult.
Babbage’s contemporaries (George Boole and Augustus DeMorgan - were developing a logical (Boolean) algebra system based on binary value (0/1, true/false, on/off).
Boolean algebra
Had no practical applications until Claude Shannon found (1937) that it could be used to design telephone switching systems
Modern computers now use binary
Why is binary used by computer hardware?
Binary IS NOT used because humans find it easier; it is used because hardware can represent two stable states very reliably
Early computers used analog computing
Early computer architects quickly adopted Boolean algebra and the binary number system as the logical basis for computer system design
Binary artihmetic and logic are much easier to implement in mechanical and electronic switching system (each component only needs to be able to assume two distinct, stable states rather than ten)
Using binary logic allows systems to be less costly and more reliable.
True / False: Did some historical computing systems not use discrete-valued representation at all?
True
Analog computers (properly termed analog simulators since they dont perform numerical calculations explicitly) used electrical components to represent quantities in a system of differential equations.
Variables were represented by continuous signals that were measured (not counted)
Analog computers were widely used in scientific applications before digital computers matured (1930s-60s)
They became obsolete as the performance of digital computers improved rapidly.
Describe first generation computers
Time period - late 1930s to early 1990s
They were all custom designed (one of a kind) for a specific purpose
Many were conceived and build as part of the war effort on one side or another. They were mostly used for military purposes (code breaking)
Alan Turing helped design Colossus to read German messages
Many of these machines remained secret long after the war
Technology is still very primitive
Electromagnetic relays (very slow)
Vacuum tubes (somewhat faster but not reliable)
Early computing machines included
Mark-I (also known as the Automatic Sequence Controlled Calculator or ASCC) and Mark-II, built by Howard Aiken at Harvard University
Atanasoff-Berry Computer (ABC), Iowa State
Electronic Numerical Integrator and Calculator (ENIAC) built by Presper Eckert and John Mauchly at the University of Pennsylvania
True or False - Most early computers were more like calculators and were not programmable.
True
Wired to do a very specific calculation
Most modern computer designs trace their lineage to the Electronic Discrete Variable Computer (EDVAC)
Why was it different?
Instructions stored in memory along with the data
This meant that functions performed by the machine could be changed by changing the instructions stored in memory (software) rather than by changing the wiring (hardware)
The stored program concept is embodied in what we call the “von Neumann architecture)
This is the basis for the vast majority of computers produced since that time
Why was von Neumann computer architecture so significant?
The von neumann computer architecture was a key development in the history of computing machines because it made general-purpose computers feasible. One set of hardware could run many different software programs at different times based on the users needs.
True / False: Reliability of the entire computer depends not only on how reliable one component is, but also how many components the system contains.
True
Describe second generation computers
Key point: Reliability of the entire computer depends not only on how reliable one component is, but also how many components the system contains.
Advances in computer architecture were driven/enablede by improvements in implementation technologies
Thevacuum tubes used in many first-generation computers limited the ocmplexity of architectures because they were prone to frequent failures
The mean time between failures for vacuum tubes was short, so more complex machines failed more frequently
The big Technological advancement was the transistor
Smaller, less heat, and most importantly lasted many hundreds / thousands / millions of hours
Second generation computers built with transistors could eb physically smaller yet more complex in functionality, allowing new features to be added.
Transistor technology allowed many new architectural features to be added to computers. List examples
Hardware representation of floating-point numbers
Hardware interrupts
General-purpose registers for arithmetic / addressing
Asynchronous I/O carried out by parallel I/O processors
Virtual memory
Key takeaway: Better hardware made richer computer architecture possible
Why was magnetic core memory so significant?
Core memory did for storage what transistors did for computational logic: allowed more storage in a smaller space for less cost than previous memory technologies. While first generation machines might only have 1-4KB of main memory, second generation computers could have more. Less cost is relative
Describe why second generation computers were good / bad
Good
Second generation machines invented batch processing and multiprogramming
Batch processing
Processing one after the other
Multiprogramming
Due to larger memory more than one program could be kept in memory at once
This means that downtime could be reduced while waiting for I/O of one program to keep the CPU busy
Goal: keep expensive CPU doing as much work as possible
Human friendly programming languages first developed
Assembly language (symbolic machine language) was developed in early 1950s.
The first high-level languages were developed shortly after that
FORmula TRANslation (FORTRAN)
ALGOrithmic Language (ALGOL)
COmmon Business-Oriented Language (COBOL)
Some of these languages are still used in critical legacy systems today
Bad
still very expensive (initial purchase, maintenance, upkeep)
Not economically feasible to leave machines idle for any length of time
By the end of the second generation computers (mid 1950s to early 1960s)
hardware, memory, operating systems, programming languages all improved
Next step - putting more hardware together into a single chip
Third generation: mid 1960s - early 1970s
As before advances in architecture / performance were made due to improvements in implementation technologies
The discrete (individually wired) transistors used in second generation computers began to be replaced by integrated circuits (wafers) of semiconductor material containing multiple transistors already connected together to perform a given function
Over a period of several years, the level of integration on a single chip progressed:
Smaller, cheaper, and more reliable system
Why was integrated circuits an advnacement
Core memory stiill used during third generation, but gradually began to be replaced with semiconductor memory devices
computers were smaller, less expensive, and more powerful
earlier systems were all large mainframes (very large, consumed a lot of power)
during third generation, new types of computer systems emerged that would not justify having a huge mainframe
Key point: expanding what system could be built, also compatibility across different computer models

FULL TIMELINE SCREENSHOT
for referencing later :D