Computer Architecture Computational Models Ola Flygt V ä xj ö University +46 470 70 86 49.

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

1 Programming Languages (CS 550) Mini Language Interpreter Jeremy R. Johnson.
Semantics Static semantics Dynamic semantics attribute grammars
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
The Concept of Computer Architecture
Concurrency: Mutual Exclusion and Synchronization Why we need Mutual Exclusion? Classical examples: Bank Transactions:Read Account (A); Compute A = A +
Overview of Programming Paradigms
CSCI 8150 Advanced Computer Architecture Hwang, Chapter 2 Program and Network Properties 2.3 Program Flow Mechanisms.
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 2 Microcomputer Systems Design (Embedded Systems)
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
Application architectures
Programming Languages Structure
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
COMPUTATIONAL MODELS Chapter No. 1. What Is Computational Model? zThe common basis of programming language and computer architecture is known as computational.
Communication in Distributed Systems –Part 2
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Model Checking Lecture 5. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
Computer Architecture The Concept Ola Flygt V ä xj ö University
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Comparative Programming Languages hussein suleman uct csc304s 2003.
High Performance Architectures
Imperative Programming
ProgrammingLanguages Programming Languages Computational Paradigms.
© 2009 Matthew J. Sottile, Timothy G. Mattson, and Craig E Rasmussen 1 Concurrency in Programming Languages Matthew J. Sottile Timothy G. Mattson Craig.
CSC3315 (Spring 2009)1 CSC 3315 Programming Languages Hamid Harroud School of Science and Engineering, Akhawayn University
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
Chapter 6 Programming Languages. © 2005 Pearson Addison-Wesley. All rights reserved 6-2 Chapter 6: Programming Languages 6.1 Historical Perspective 6.2.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
Languages for HW and SW Development Ondrej Cevan.
Module : Algorithmic state machines. Machine language Machine language is built up from discrete statements or instructions. On the processing architecture,
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
ELEN 033 Lecture #1 Tokunbo Ogunfunmi Santa Clara University.
Indira Gandhi National Open University presents. A Video Lecture Course: Computer Platforms.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
8-1 Compilers Compiler A program that translates a high-level language program into machine code High-level languages provide a richer set of instructions.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
CMPB454 ARTIFICIAL INTELLIGENCE (AI) CHAPTER 1.1 Background Information CHAPTER 1.1 Background Information Instructor: Alicia Tang Y. C.
Sept. 2005EE37E Adv. Digital Electronics Lesson 4 Synchronous Design Architectures: Control Unit Design (part three)
Review for Test 2 Chapters 5 (start at 5.4), 6.1, , 12, 13, 15.1, Python.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Functional Programming
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
CS 3723 Programming Languages
Programming paradigms
PROGRAMMING LANGUAGES
CS 326 Programming Languages, Concepts and Implementation
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
CS 326 Programming Languages, Concepts and Implementation
Computer Programming.
VHDL Discussion Subprograms
High Level Programming Languages
Chapter 6: Programming Languages
Low Level Programming Languages
VHDL Discussion Subprograms
Presentation transcript:

Computer Architecture Computational Models Ola Flygt V ä xj ö University

Computational Models  The concept of a computational model  Basic computational models  The von Neumann computational model  Key concepts relating to computational models CH01

The concept of a computational model  Model: Foundation or paradigm  Level of abstraction  Computational Model  Computer architecture  Computer language

Interpretation of concept of a computational model  Computational Model  (1) Basic items of computation  (2) Problem description model  (3) Execution model

(1) Basic items of computation  e.g. data, object, argument and functions, element of sets and the predicates

(2) Problem description model  Problem description model  Style  Method  Problem description style  Procedural  (algorithm for solving the problem is stated)  Declarative  (all the facts and relationships relevant to the given problem is stated)

Problem description style (e.g.) Calculate n factorial, n!  Procedural style int nfac (int n) { int fac = 1; if (n > 0) for ( int i = 2; i <= n; i++ ) fac = fac * i; return fac; }  Declarative style fac (0) = 1; fac ( n>0 ) = n * fac ( n-1 );

Declarative style  Using functions  in a model called applicative, (Pure Lisp)  Using predicates  in a model called predicate logic-based, (Prolog)

Problem description method  Procedural method  how a solution of the given problem has to be described  e.g. sequence of instructions  Declarative method  how the problem itself has to be described  e.g. set of functions

(3) Execution Model  Interpretation of how to perform the computation related to the problem description method  Execution semantics rule that prescribes how a single execution step is to be performed  Control of the execution sequence ordering of execution sequence

Execution semantic  State transition semantics  Turing model  von Neumann model  object-based model  Dataflow semantics  dataflow model  Reduction semantics  applicative model (Pure Lisp)  SLD-resolution  Predicate logic-based model (Prolog)

Control of the execution sequence  Control driven  assumed that there exists a program consisting of sequence of instructions  execution sequence is then implicitly given by the order of the instruction  explicit control instructions to change the order  Data driven  an operation is activated as soon as all the needed input data is available (eager evaluation)  Demand driven  an operation is activated only when execution is needed to achieve the final result

Concepts of computational model, programming language, and architecture Computational model Programming Language Computer Architecture Specification tool Implementation tool Execution

Typical Evolution  Computation model  Corresponding programming language  Corresponding architecture

Basic computational models  Turing  von Neumann  object based  dataflow  applicative  predicate logic based

Key features of basic computational models  See Figure 1.13

The von Neumann computational model  Basic items of computation are data  variables (named data entities)  memory or register locations whose addresses correspond to the names of the variables  data container  multiple assignments of data to variables are allowed  Problem description model is procedural (sequence of instructions)  Execution model is state transition semantics  Finite State Machine

von Neumann model vs. finite state machine  As far as execution is concerned the von Neumann model behaves like a finite state machine (FSM)  FSM = { I, G, , G 0, G f }  I: the input alphabet, given as the set of the instructions  G: the set of the state (global), data state space D, control state space C, flags state space F, G = D x C x F   : the transition function:  : I x G  G  G 0 : the initial state  G f : the final state

Key characteristics of the von Neumann model  Consequences of multiple assignments of data  history sensitive  side effects  Consequences of control-driven execution  computation is basically a sequential one  ++ easily be implemented  Related language  allow declaration of variables with multiple assignments  provide a proper set of control statements to implement the control-driven mode of execution

Extensions of the von Neumann computational model  new abstraction of parallel execution  communication mechanism allows the transfer of data between executable units  unprotected shared (global) variables  shared variables protected by modules or monitors  message passing, and  rendezvous  synchronization mechanism  semaphores  signals  events  queues  barrier synchronization

Key concepts relating to computational models  Granularity  complexity of the items of computation  size  fine-grained  middle-grained  coarse-grained  Typing  data based type ~ Tagged  object based type (object classes)