Computer System Engineering
Lecture 0: Introduction
Nguyen Minh Son, Ph.D
1
Course Information
o Instructor
n Dr. Nguyen Minh Son (sonnm@[Link])
o Office: Faculty of CE, Building E6.5
o Prerequisite: Computer Architecture or the equivalent
o Meeting time: WED 2-5 periods, C704
Required
o Textbook
n Jerome H. Saltzer, Principles of Computer System
Design(1st edition), Morgan Kaufmann, 2009.
o Other teaching materials
n Some reference books available in class meetings and course
web
n Slides & Lectures
n Coordinator: …
Reading references
2
Objectives – To Learn
Recent trends of architectural features in high-performance
computer systems
o Week 1,2: Elements of Computer System Organization (Ch2)
o Week 3,4: Performance – Term project assignment (Ch6)
o Week 5,6: Virtualization (Ch5)
o Week 7: Fault tolerance (Ch8)
o Week 8: Mid-Term Exam
o Week 9,15: Term Projects
o Week 16: Final Exam
o Week 17: Submission Deadline of Term project Report
3
Course evaluation
o Grading policy:
n Quizzes (attendance) + Term Project: 30%
o Problem Solving: 4 Quizzes
o Presentation: W2 – W4
n Midterm exam + Term Project : 20%
o Problem Solving: 1 exam
o Report: W2 – W4 – W7
o Presentation: W7/8
n Final exam + Term Project : 50%
o Problem Solving: 1 exam
o Report: W9 – W11 – W14
o Presentation: W14/15
o No cheating ?!
4
Computer System Engineering
Lecture 1&2: Elements of Computer System
Nguyen Minh Son, Ph.D
5
Agenda
o Problem Statement
o System and Complexity
o The Three Fundamental Abstractions
o Naming in Computer Systems
o Organizing Computer Systems with Names and
Layers
o Summary
Industrial Revolution
US National Science Foundation 7
Internet of Things
8
Internet of Things
9
Problem Stament
What will the average score in “math exam” in a
class having 4 students, whose names & scores
are as follows:John,80 Katie,70 Jane,65
John 80 Bob,79
--------------
Katie 70
-----
--------------
---
------
Jane 65 Brain
Bob 79
Averaging
Technique
Average=73.5
Problem Stament: Computer
Average=73.5
John 80
Katie 70
Jane 65
Bob 79
Averaging Technique
(Computer Software)
Computer System Engineering
o Computer System Engineering is a problem-solving activity.
n Itemize desired system functions
n Analyze them
n Allocate functions to individual system elements
o Systems Analyst (computer systems engineer)
n Start with customer-defined goals and constraints
n Derive a representation of function, performance, interfaces,
design constraints, and information structure
n That can be allocated to each of the generic system elements
(i.e., Software, Hardware, People, Database, Documentation,
Procedures)
o Focus on WHAT, NOT how.
12
Criteria for System Configuration: Technical
Criteria for allocation of function and performance to generic system
elements:
o Technical Analysis: (existence of necessary technology,
function and performance assured, maintainability)
o Environmental Interfaces: (proposed configuration integrate with
external environment, interoperability)
o Off-the-shelf options must be considered.
o Manufacturing evaluation: (facilities and equipment available,
quality assured?)
13
Software Engineering
CSE470: Cheng
Criteria for System Configuration: Business Issues
Criteria for allocation of function and performance to generic system
elements:
o Project_Considerations: (cost, schedules, and risks)
o Business_Considerations: (marketability, profitability)
o Legal_Considerations: (liability, proprietary issues, infringement?)
o Human issues: (personnel trained? political problems, customer
understanding of problem)
14
Software Engineering
CSE470: Cheng
Hardware and Hardware Engineering
o Characteristics:
n Components are packaged as individual building blocks
n Standardized interfaces among components
n Large number of off-the-shelf components
n Performance, cost, and availability easily
determined/measured
o Hardware configuration built from a hierarchy of
"building blocks."
15
Software Engineering
CSE470: Cheng
Hardware Engineering
o Phases to system engineering of hardware:
n Development Planning and requirements analysis:
o best classes of hardware for problem,
o availability of hardware
o type of interface required
o identification of what needs to be designed and built
n Establish a Plan or "road map" for design implementation
o May involve a hardware specification.
o Use CAE/CAD to develop a prototype (breadboard)
o Develop printed circuit (PC) boards
o Manufacturing of boards
16
Software Engineering
CSE470: Cheng
Software and Software Engineering
o Function may be the implementation of a sequential procedure
for data manipulation
o Performance may not be explicitly defined (exception is real-time
systems)
o Software element of computer-based system consists of two
classes of programs, data, and documentation
n Application_Software:
o implements the procedure that is required to accommodate information
processing functions
n System Software:
o implements control functions that enable application software to
interface with other system elements
17
Software Engineering
CSE470: Cheng
CSE: Design Phase
Maintenance Definition
• Operation?
• What?
• Managing?
Development
• How?
o Umbrella Activities: Throughout lifecycle
18
Definition
o Requirements definition and analysis
n Developer must understand
o Application domain
o Required functionality
o Required performance
o User interface
19
Software Engineering
CSE470: Cheng
Definition (cont.)
o Project planning o System analysis
n Allocate resources n Allocate system
n Estimate costs resources to
n Define work tasks o Hardware
n Define schedule o Software
o Users
20
Software Engineering
CSE470: Cheng
Development
o System design
n User interface design
n High-level design
o Define modular components
o Define major data structures
n Detailed design
o Define algorithms and procedural detail
n HW design
o Blocks/Subblock
o Interaction
21
Software Engineering
CSE470: Cheng
Development (cont.)
o Coding o Integration
n Develop code for each n Combine modules
module n System testing
n Unit testing
22
Software Engineering
CSE470: Cheng
Maintenance
o Correction - Fix software defects
o Adaptation - Accommodate changes
n New hardware
n New company policies
o Enhancement - Add functionality
o Prevention - make more maintainable
23
Software Engineering
CSE470: Cheng
Umbrella Activities
o Reviews - assure quality
o Documentation - improve maintainability
o Version control - track changes
o Configuration management - integrity of collection of
components
24
Software Engineering
CSE470: Cheng
Agenda
o Problem Statement
o System and Complexity
o The Three Fundamental Abstractions
o Naming in Computer Systems
o Organizing Computer Systems with Names and
Layers
o Summary
System and Complexity
o Systems, components, interfaces, and environments
n System - a set of interconnected components that has a
specified behavior observed at the interface with its
environment
n Components – the many often diverse parts of a system –
“black boxed”
n Interface – interactions between a system and its
environment
n Environment – part of the system not under discussion
System and Complexity
o Systems, components, interfaces, and environments
n To analyze a system one must establish a point of view to
determine
o which things are considered components,
o what the granularity of those components
should be,
o where the boundary of the system lies, and
o which interfaces between the system and its
environment are of interest
n Names for subsystems: systems, subsystems,
components, elements, constituents, objects, modules,
sub-modules, assemblies, subassemblies, etc.
27
System and Complexity
o Complexity
n Complex means “difficult to understand”
n Underlying feature of complexity – a lack of systematic
understanding
n Complexity is both subjective and relative
n No unified measure of complexity – so describe it!
n Five signs of complexity
o Large number of components
o Large number of interconnections (interfaces)
o Irregularity
o Lack of a methodical description
o Team of size N > 1
28
System DESIGN
o Symbol
29
System DESIGN
o Example
30
System DESIGN
o Example
31
Read and Q&A
o Problem Statement
o System and Complexity
o The Three Fundamental Abstractions
o Naming in Computer Systems
o Organizing Computer Systems with Names and
Layers
o Summary
The Three Fundamental Abstractions
o Memory
n Data items that must be remembered
o Interpreters
n Steps that must be executed
o Communication Links
n Messages that must be communicated
o Goals
n What do the abstractions do?
n How does it do it?
n What are the interfaces?
n What are the ways names are used for interconnection?
Memory
[Link] ( “Weisong Shi” ); STA $1000, “Weisong Shi”
name = [Link](); LDA R1, $1000
Interpreters
o Active elements of a computer system that perform the
actions that constitute computations – made up of:
n Instruction Reference – tells interpreter where to get next
instruction (IP/PC)
n Repertoire – defines the set of actions the interpreter can
perform
n Environment Reference – tells the interpreter where to find its
environment, e.g. memory, or which microcode instructions) are
executed for a given assembly language instruction
o Normal operation is to proceed sequentially through some
program
n Load instruction, from the point of the instruction reference
n Fetch data from memory (environment), increment instruction
reference
n Execute some microcode, e.g. do a compare
n Store data to memory (environment), increment instruction
reference
Interpreters (cont’d)
Communication Links
o Provides a way for information to move between
physically separated components
o Has two key operations
n SEND ( link_name, outgoing_message_buffer )
o Specifies a message
(outgoing_message_buffer) by designating
the address and size of buffer in memory
that contains the message
n RECEIVE ( link_name, incoming_message_buffer )
o Accepts an incoming message
(incoming_message_buffer) by designating
the address and size of the buffer to
holding the incoming message
Communication Links (cont’d)
o Complications
n A wide range of operating parameters that makes the
time to complete a SEND or RECEIVE operation
unpredictable
n A hostile environment that threatens integrity of the
data transfer
n Asynchronous operation that leads to arrival of messages
whose size and time of delivery can not be known in
advance
n Forwarding of messages over a series of links
o Programs that invoke SEND and RECEIVE must
take these explicitly into account
o Organized and implemented in layers
Agenda
o Problem Statement
o The Three Fundamental Abstractions
o Naming in Computer Systems
o Organizing Computer Systems with Names and
Layers
o Summary
Naming in Computer Systems
q The Naming Model
For examples of context, think scope in a source code file
Naming in Computer Systems (cont’d)
o When building systems out of
subsystems, it is essential to be
able to use a subsystem without
having to know details of how
that subsystem refers to its
components (black box)
o Names are thus used to achieve
modularity
o An object may be structured, i.e.
it is a composite object and has
other objects as components (a
vehicle has a powertrain which
has an engine)
n Can be by value (copy)
n Can be by reference (named)
o Sharing requires by reference
Naming in Computer Systems (cont’d)
o Purpose of Naming
n Sharing – as a communication and organizing tool
o Two names can refer to the same object
n To allow a system designer to defer to a more favorable time
the decision which object the name refers, and to make it easy
to change that decision later
o person = [Link] ( “first-name”, “Peter” );
o person = [Link] ( “first-name”, “Katie” );
n Indirection
o Decoupling one object from another by using a name as an
intermediary
n Binding
o Deciding on the correspondence between a name and an object
o Allows the same object handle to be assigned to different objects
n Naming is the cornerstone of modularity!
Agenda
o Problem Statement
o The Three Fundamental Abstractions
o Naming in Computer Systems
o Organizing Computer Systems with Names and
Layers
o Summary
Organizing Computer Systems with
Names and Layers
Organizing Computer Systems with
Names and Layers (cont’d)
Organizing Computer Systems with
Names and Layers
o Typical organization of a computer
system is in three layers
n Application Layer
o Software that implements
application-specific
functionality, e.g. WinEDT
n Operating System Layer
o Collection of software modules
that abstract hardware
resources into a convenient API
n Hardware Layer
o Processors, memories,
communication links
Enjoy !!!
Q&A
47