Computer Systems Architecture
Syllabus Outline
The Von Neumann Inheritance: digital logic, CPU& fetch-execute, microcode, migration of functionality, the RISC/CISC debate, the bus bottleneck, future architectures: multiprocessors, distributed data.
CPU architecture, adders/subtractors in two's complement integer format, decoders, barrel shifters.
From Hex to X: machine code, assembler routines, compiled & interpreted languages, compiler/interpreter strategies, linking, Win32 libraries, using debuggers.
How Windows Work: video subsystems, graphic primitives, graphics coprocessors, multitasking, input from mice, network communication, X protocols, Client-server applications.
The Network as a Computing Environment: network applications, WWW, ftp, telnet, email, ping address resolution, ip name, ip number, mac number, hosts file, arp/rarp networked operating systems, Unix, Windows/NT introduction to basic facilities, sockets, rpcs, rcp, NFS/mount, the tx/rx of data packets ethernet cards video/voice transmission.
Networking from Nothing: serial communications through the COM ports. Packet addressing, routing and flow control. Handling errors with a checksum.
Choosing and Using Peripherals: CD-ROM and hard-disk units, the IDE and SCSII interfaces, disc organisation and directory structures, laser printers, introduction to PostScript, graphic subsystems, document scanners.
Estimating disk access and data transmission times.
Using Unix as a software tool-bench.
Individual worksheet and group-oriented practical exercises are central to the students\' experience in order to reinforce and extend the lectures and associated readings. The laboratory work includes both hardware and software, at basic unit and higher system level.
An extended case-study, supported by focussed tutorials and practicals, will allow the students to follow through an example application from design to implementation, and appreciate the relevance of all the component parts of the module syllabus. Some example subjects would be:
a) The development of a ring-based LAN by implementing packet handling routines using the PC COM ports. There are many problems which need to be dealt with in order to accomplish this task. Some include: transmission flow-control, error trapping, incorrect packet addressing, user registration and notification, avoidance of blocking. One advantage of undertaking such a programming exercise is the excellent preparation that it offers for the second level networking activities. Either C or Java can be used.
b) The implementation of an elementary socket-based communication system, offering a remote message distribution centre with store and forward facilities. Users must log into the system remotely, identify themselves and receive stored messages. They can then compose and transmit replies through the central server. The implementation can be done using Java or C.