Chapt 2 machine architecture
1 / 16

- PowerPoint PPT Presentation

  • Uploaded on

Chapt.2 Machine Architecture . Impact of languages Support – faster, more secure Primitive Operations e.g. nested subroutine calls Subroutines implemented with stack (ex: PL/1- recursion) IBM704 – index registers Security e.g., data and code kept separate O.S. kept separate Limitations

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about '' - lavonn

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Chapt 2 machine architecture l.jpg
Chapt.2 Machine Architecture

  • Impact of languages

    • Support – faster, more secure

      • Primitive Operations

        • e.g. nested subroutine calls

          • Subroutines implemented with stack (ex: PL/1- recursion)

      • IBM704 – index registers

      • Security

        • e.g., data and code kept separate

        • O.S. kept separate

    • Limitations

      • Space

      • Time

    • Networks, multiprocessors, etc.

Hardware or actual computer l.jpg
Hardware or actual computer

  • Data / storage CELL

    • Main memory, cache and registers

    • Fixed-length words determines range of values of data

      • Limitation on range and precision of numbers

    • Strictly speaking, built-in types are determined by operations

  • Operations on data

    • Primitive operations manipulate data

      • Integer, character, bit string, (1-dimensional) arrays

      • Possibly floating-point, character string

    • Data operations are valid on all data cells

Hardware l.jpg

  • Sequence control (control operations)

    • Sequence (von Neumann architecture)

      • Program address register (PC) incremented automatically

    • Jump or branch

    • Branch conditionally

    • Multiprocessing as alternative control mechanism

  • Data access

    • Operation (move, load, etc.)

    • Operand – typically address of cell

  • RISC (fewer hardware ops) vs CISC

Hardware4 l.jpg

  • Effect of current access times

    • Register access – 5-10 nsec

    • Memory access – 50-70 nsec

    • I/O access – 10-15 msec.

  • Modular programs can make efficient use of cache and virtual memory (hits)

  • Cost of tasking

  • In-line modules

  • Multi-dimensional arrays

Computer states l.jpg
Computer states

  • State transitions for representing virtual machine

  • State transition diagrams for proving correctness

Role of firmware l.jpg
Role of firmware

  • Instructions in microprogram

  • Emulation to create virtual computer

  • FORTRAN hardware machine

    • Statements in hardware/firmware

  • Translator is interpreter

  • Cost in terms of flexibility, monetary, speed

    • Slower for running spreadsheet, for example

Translators l.jpg

  • Translators allow for the creation of virtual machines

  • A program language defines its own machine

    • May restrict data operations

      • e.g., pure LISP does not have use floating point operations

    • May restrict control operations

      • Typically does not allow use of primitive i/o operations

    • Adds its own data and control structures

Translators8 l.jpg

  • Interpreter – decodes and executes each hardware machine instruction or higher level statement (initially Basic, Snobol, LISP, Perl, Smalltalk, Java)

    • Does not create object code

    • Each statement (even in a loop) must be repeatedly translated

  • Assembler – specific to hardware; translates almost 1-1 to hardware machine instruction

Translators9 l.jpg

  • Virtual machine is portable, user friendly(?)

  • Compiler creates object code in assembler or hardware machine language

    • Quick and dirty

    • Optimizing

  • Cross compiler – translates to machine language of another machine (simulation)

    • Useful for designing code for small chips

  • Load or link editor - source code is typically relocatable and object code is a single executable program with external references resolved

  • Preprocessor or macroprocessor

    • Source and object code both in high level language

    • Initial pass for expanding macros, constants, C++, etc.

Hierarchies of virtual machines l.jpg
Hierarchies of virtual machines

  • Hardware machine- gates, switches

  • Augmented by microcode

  • Operating System virtual machine

    • Denies some functions

    • Adds some capabilities

      • e.g., i/o, semaphores

  • C virtual computer

    • Hides/ adds capabilities

    • C library routines

  • Web virtual machine

    • Browser executing HTML, XML pages

Binding times l.jpg
Binding Times

  • Binding of data: association with cell(s)

  • Binding of operation: association with hardware primitive operation(s)

  • Typically several intermediate steps

  • Flexibility versus efficiency/ reliability

    • Late binding provides greater flexibility, less efficiency, typically less reliability

Binding times12 l.jpg
Binding Times

  • During program execution

    • Module entry- semi-dynamic

    • Arbitrary run times – dynamic

  • During compile/ translation time

    • Bindings chosen by the programmer

      • Ex: types and their operations

      • Array and record size

    • Bindings chosen by the translator

      • Ex: position of data on the stack

    • Bindings chosen by the loader, linker

      • Ex: storage location or displacement

Binding times13 l.jpg
Binding Times

  • During language implementation for specific hardware

    • possibly number implementation

      • C’s int

      • Issue of portability

  • During language definition type

    • The ability to define more operations for a type

    • The ability to define new data types

Binding times example l.jpg
Binding Times: example

  • Statement X = X + 10

    • Association of Type with X

      • Language definition determines possible range of types (int, short int, float, complex, user defined, etc.)

      • X’s type may be chosen statically (C),

        or dynamically (SNOBOL)

    • Association of Value with X

      • Language implementation may determine range and representation of value

      • X’s value is determined at arbitrary pts of execution

    • Association of +

      • Language definition determines what + can be (or sum, etc.)

      • Binding of + to hardware or software op

        • Compile time in FORTRAN, C

        • At arbitrary pts of execution in C++ – polymorphism

Binding time example l.jpg
Binding time: example

  • static int X = 10;

    • In C

      • X’s range of types, meaning of = are determined at language definition

      • X is assigned 10 only upon first execution

      • X retains value between calls

Do we need to know about the hardware l.jpg
Do we need to know about the hardware?

  • High speed, large memories shield us from many of the problems that earlier programmers had

  • Speed of translating and executing Java is small in relation to network transmission, user response time

  • Can careful language design shield us from hardware? – not entirely