Heriot-Watt logo

      Computer Architectures and Networks
      Lecturers: Dr. James McLean  Dr. Yvan Petillot 
      Contact Details: Room 2.24 Room 3.20 
      email: J.McLean@hw.ac.uk email: Y.R.Petillot@hw.ac.uk
      Aim of Course: To introduce concepts of computer architecture and modern networking including TCP/IP and OSI standards
      Course Policy:
      If you don't understand something during the lectures or think we are assuming too much (or too little) prior knowledge, then please feel free to interrupt and ask a question. Alternatively, come to see us in our offices or email your query - contact details above.
      Outline Description:
      Weeks 1-5, Dr. James McClean
      Performance: MIPs,MFLOPs,progs to evaluate performance, Benchmarks,benchmark suits,comparison figures,Amdahl's law Computer Design: Best price/perf for given functional requirement,Moore's law, IC costs,wafer yield,test costs. Memory Hierarchy: Technologies,evolution of DRAM tech, speed calculations,interleaved memories.
      Weeks 6-10, Dr. Yvan Petillot
      Networks: Introduction to layered communication, ISO reference model, overview of levels 1-7; Physical layer: stop and wait, alternating bit and sliding window protocols; commercial examples; Network Layer: routing and congestion control, virtual circuits and datagrammes; Transport Layer: levels of service.


      Lecture Timetable

      Mondays, 9.15 -10.15am Room EM 1.82
      Tuesdays, Room EM 3.06 1.15-2.15pm
      Fridays 12.15pm Fridays Room EM 3.06
      Estimate 10 lectures and 5 tutorials the last 2 being revision in weeks 5 and 10.


      Structure of Course

      Performance
      Performance metrics, benchmark suites, Amdahl's law, performance improvements, [8.10/14.10], part lecture/part tutorial [11.10]
      Computer Design
      Computer design, price/performance, Moore's law, SIA roadmap, IC costs, fabrication, testing, packaging, cost & price breakdown of a product, [15.10/21.10], part lecture/part tutorial [18.10]
      Memory Management
      Memory hierarchy, attribute table for high-end PCs or workstations, memory speed calculations, conventional DRAM, enhancements, FPM, EDO, SDRAM, DDRAM, RDRAM, interleaved memory, multiword-width memory, performance comparison, [22.10/28.10/29.10], part lecture/part tutorial [25.10/1.11] Cache memories architectural/structural level overview, Speed/performance issues. [4.11/2.11/4.11], revision tutorials [8.11/13.12]
      Introduction to Computer Networks
      General introduction
      Requirements of networks
      Encapsulation
      Network models and topologies
      The physical layer
      Theoretical basis for data communications
      Transmission Media: wires and fibers
      The telephone system
      Narrowband ISDN
      The Data link Layer
      What are the services provides
      DLL protocols
      Error detection and correction
      The sliding window protocol
      Protocol verification
      TCP/IP (Network and Transport Layers)
      Introduction to internet protocols and sockets
      Data structures and data handling
      Systems calls
      Client server examples
      Datagram sockets

      LABs and PRAXIS

      You will have 2 3 hours labs on socket programming and client server applications

      The Program of work is as follows:
       

        Week 8: PRAXIS on DLL protocols. You will download the file DLL_protocols.tar and you will use it on a unix machine using the following commands:

          tar xfv DLL_protocols.tar. This will untar the files (x = extract, v = verbose, f = file)

          make. This will compile the code and generate the executables

          gui.tcl. This will launch the graphical interface.

          You are ready to try some protocols and analyse them

          IN ANY CASE, READ THE README FILE!

        Week 9: Theory of TCP/IP. First lab

        You will have to download the following files:

          Lab0.pdf. This is a general description of TCP/IP and how to use it to program client server applications.

          Sockets.pdf. This is a general description of TCP/IP sockets, TCP/IP and how to use it to program client server applications. This is much more in-depth than the Lab material and can be used to support you during the labs.

          UNIX_C.pdf. This is an introduction to C programming in Unix. Very short and limited but should get you going.

          UNIX_OS.pdf. This is an introduction to Unix. Very short and limited but should get you going.

          tcp_client.c. This is the client part of the client server code using tcp/ip protocol. The code is the same as in Lab0.ppt.

          tcp_server.c. This is the server part of the client server code using tcp/ip protocol. The code is the same as in Lab0.ppt.

          client.c. This is the client part of the client server code using tcp/ip protocol. The code is more elaborated and uses a better functional approach.

          server.c. This is the server part of the client server code using tcp/ip protocol. The code allows for multiple clients

          f_tcp.c. This is a required 'library' code to compile the two previous files.

          f_tcp.h. This is a required 'library' code to compile the two previous files.

          Makefile. This is the makefile required to generate the executables.

        Week 10: Lab 1 presentation. TCP/UDP/IP programming example

        You will have to download the following files:

          Lab1.pdf. This is a general description of TCP/UDP/IP and how to use it to program UDP applications.

          Sockets.pdf. This is a general description of TCP/IP sockets, TCP/IP and how to use it to program client server applications. This is much more in-depth than the Lab material and can be used to support you during the labs.

          UNIX_C.pdf. This is an introduction to C programming in Unix. Very short and limited but should get you going.

          UNIX_OS.pdf. This is an introduction to Unix. Very short and limited but should get you going.

          tcp_client.c. This is the client part of the client server code using tcp/ip protocol. The code is the same as in Lab0.ppt.

          tcp_server.c. This is the server part of the client server code using tcp/ip protocol. The code is the same as in Lab0.ppt.

          f_tcp.c. This is a required 'library' code to compile the two previous files.

          f_tcp.h. This is a required 'library' code to compile the two previous files.

          udpListen.c. This is an example of UDP listener

          udpTalk.c. This is an example of UDP talker

          udpChat.c. This is an example of UDP Chat, similar to Messenger but for a subnet.

          Makefile. This is the makefile required to generate the executables.
           


        Recommended Text

        Most architecture and networks book including:
         
        • Computer Networks

        • Andrew S. Tannenbaum
           
        • Computer Organisation and Architecture

        • Designing for Performance, 6th Edition,
          William Stallings, Prentice Hall, (2002)
          (strongly suggested you buy)
          ISBN: 0-13-049307-4
          Price £33.99 Amazon UK
          or Blackwells, Campus shop or South Bridge

           
        On line Ressources
           
        • Support for the William Stallings book

        • http://williamstallings.com/COA6e.html/
        • If instead you already have the 5th edition (2000)

        • http://williamstallings.com/COA5e.html/
          This text provides a clear, comprehensive presentation of the organization and architecture of modern-day computers, emphasizing both fundamental principles and the critical role of performance in driving computer design. The text conveys concepts through a wealth of concrete examples highlighting modern CISC and RISC systems
           
        • Beej's socket programming pages

        • http://www.ecst.csuchico.edu/~beej/guide/net/html/
           

        Written Examination, April 2003.

        The 3 hour paper is synoptic comprising 2 Sections, Computer Architecture & Networks (B34LA1) and Multiprocessor Computers and Networks (B34DJ2). The rubric (not yet agreed) is likely to be :Attempt FOUR questions, TWO from three in each Section. Past papers with similar architecture coverage to mine in part were classified under 22.4DH1 but these did not have the networks section.


        If you have any queries please send email to me at Y.R.Petillot@hw.ac.uk

        NOTE: Clipart from http://www.signgray.demon.co.uk/clipart/