First Generation the Early Machines Abacus to Babbage to Jacquard Programming

First Generation the Early Machines Abacus to Babbage to Jacquard Programming

Hardware History First Generation The early machines Abacus to Babbage to Jacquard Programming Second Generation - 1940 First electronic ENIAC J.P. Eckert and J. Mauchly Moore school and University of Pennsylvania Other important names of the time John Von Neumann Maurice Wilkes Howard Aiken Other machines EDVAC UNIVAC Whirlwind Project 2K Magnetic core memory 16 bit words Tubes 18000 Size 100 times larger than today’s machines Speed 1/10000 the speed of contemporary machines Software OS None Languages Programmed in machine code Third Generation - 1960 Transistors Size Speed Software OS Microprogramming introduced IBM 360 family Early work with Windows Pointing devices Networking Languages FORTRAN COBOL Basic Fourth Generation - 1970 Integrated Circuits First microprocessors Size Speed Software OS UNIX Languages Assembler for microprocessors C, Pascal, etc. Modula Smalltalk Fifth Generation - 1980 - 2000 VLSI Size Speed OS UNIX continues to evolve Microprocessor OS CP/M – Gary Kildall and Tom Rolander Introduction of operating system with Preemptive multitasking Windows Menu driven user interface First programming language and compiler Specifically for microprocessors First disk operating system First interface to video disks File system and data structures for first consumer CD-ROM First open architecture and bios PC DOS → MS DOS Built as CP/M clone by Seattle Computer Products Developed by Tim Patterson Originally called 86-DOS then PC DOS by IBM Beginning work in distributed operating systems Linda appears Languages C continues to mature Smalltalk 86 developed ADA work started C++ and other object centered languages Beyond 1990 Wafer Scale Integration - Amdahl’s Machine Soft Computing Fuzzy Neural Genetic Algorithms Adaptive architectures Dawn of information age Legitimate mixed media Interactive distributed computing Architecture Two architectures emerge Two men set the direction John Von Neumann Princeton Howard Aiken Harvard The pieces Before looking at contributions of these two men Let’s look at the basic parts Control Most contemporary computers comprise 4 basic parts ALU Input Output Input Output Memory CPU Memory ALU Control Logic Parts are interconnected via what are called busses Busses signals consist of 3 basic types Address Data Control At top level memory comprised of two basic functional parts Storage for Instructions Data It in this area where 2 basic architectures differ Von Neumann - Princeton machine Combines data and instructions Same physical memory Aiken - Harvard machine Place data and instructions Separate memory Most contemporary machines Based upon Von Neumann architecture Gives rise to what is called Von Neumann bottleneck All data and address signals must use the same bus Original microprocessors were Harvard or Aiken machines Intel’s 4004 and 8008 machines Used separate data and instruction memories Physical restrictions and limitations of technology at time Pushed direction towards the Princeton Architecture Software and Its Manifestations Computer hardware is a tool for getting job done As early computer developers showed By re-wiring computer appropriately Could configure to solve desired problem Originally all integer math Anyone knows how to scale numbers Quest for making job easier Increasingly sophisticated and powerful languages developed Machine language Assembler Higher level Hardware - Registers Machine Language Assembler Can use familiar onion model to view relationship Unique to machine High Level Language Begin at center with hardware C, Pascal, Basic Move to outside to point and click languages Higher Level Languages C++, Smalltalk 4th GL Application Programs Combining Hardware and Software As we’ve noted Computer is a tool we’ve designed To make solving problems easier Let’s follow the process from through a computer to see how it works Problem Let’s begin with simple problem Find the sum of 2 and 3 Problem is stated in natural language Today’s computers Cannot accept problem in the form 1. Must translate into more compatible form Problem stated in We will see that all our activities really involve natural language Translating problem from one form to another Until we reach representation we can solve Problem stated in computer language In current case We translate into some new language C Basic This translation is done by hand Note at this point We can have a variety of translations They are not unique This translation is what we call software design Result is what we call a program Let’s see where we are now 2. More translation Problem stated in natural This still not enough language We require addition levels of translation At this stage Problem stated in We can begin to use some additional tool to help in computer language by process hand First such tool is called compiler Program translated into Compiler assembler using compiler Compiler is a tool for translating programs Into variety of forms One such form Assembly language Observe prior to this stage Program did not depend upon machine Now program in form that will execute only on particular machine Assembler Assembler is next tool we use for translating Converts assembly language into machine language Program expressed as collection of 0’s and 1’s machine understands Linker and Loader Although program now in machine language Not ready to be executed Problem All variables and data structures we use Must reside in computer memory Each needs an address in memory Question Which address should we use Unfortunately Cannot always use the same address What if someone else wants to use same address Problem stated in natural language To solve problem assembler generates Relocatable code Problem stated in Code that can be placed anywhere in memory computer language by hand Second question arises at this time We’d like to be able to use existing code Program translated into Our own assembler using compiler Other peoples How do we get this into our program without typing in Program translated into each time mach.lang using assembler Tool called linker loader can help with both problems Does two jobs 1. Links collection of program modules together 2. Resolves address problems Adding that step to flow we now have Problem stated in natural 3. Into Memory language Not quite there yet Several more stages to go Problem stated in At this point linker and loader have gotten program into memory computer language by PC systems this means onto the hard drive hand We will see shortly Program translated into Memory actually comprised of hierarchy of elements assembler using compiler Some of these include Hard drive Program translated into RAM mach.lang using CACHE assembler Registers Instruction register Program linked and loaded into memory using linking loader Adding these we come up with Problem stated in natural We have now seen how to take problem language Expressed in natural language Turn into something that can be solved by computer Problem stated in computer language by Throughout remainder of quarter hand Will examine all steps in greater detail Program translated into assembler using compiler Program translated into mach.lang using assembler Program linked and loaded into memory using linking loader Program lcopied from hard drive into RAM Program goes from RAM to CACHE Program lgoes from cache to Instruction Register.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us