0% found this document useful (0 votes)
12 views47 pages

CSE Lec1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views47 pages

CSE Lec1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Computer System Engineering

Lecture 0: Introduction

Nguyen Minh Son, Ph.D

1
Course Information
o Instructor
n Dr. Nguyen Minh Son ([email protected])

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

person.setName ( “Weisong Shi” ); STA $1000, “Weisong Shi”

name = person.getName(); 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 = Person.getObject ( “first-name”, “Peter” );
o person = person.getObject ( “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

You might also like