COMP2300/6300: Computer Organisation and Program Execution lays the foundations for the understanding of CPU architectures, networking and operating systems. Additionally, it introduces topics which cut across many computer systems, such as cross-layer communication and basic concurrency (as well as basic ideas of virtualization and efficiency through proximity).
CPU architectures are discussed from first principles (digital logic) and are expanded into current day designs. This also involves assembler level programming to connect hardware circuits to the world of software. Representations of data types and high-level code at the machine level will be made clear by keeping the relations between high-level and machine-level code throughout the course. It will also look at how concurrent software constructs can or cannot be translated into parallel hardware operations.
This course will cover a wide range of topics such as digital logic: transistors, gates, and combinatorial circuits; clocks; registers and register banks; arithmetic-logic units; data representation: big-endian and little-endian integers; ones and twos complement arithmetic; signed and unsigned values; Von-Neumann architecture and bottleneck; instruction sets; RISC and CISC designs; instruction pipelines and stalls; rearranging code; memory and address spaces; physical and virtual memory; interleaving; page tables; memory caches; bus architecture; polling and interrupts; DMA; device programming; assembly language; optimizations; concurrency and parallelism; and data pipelining.
Knowledge of the principles of networking and operating systems (as well as their relation to computer hardware) are essential for every computer scientist and this course will provide those foundations.
The relation of assembler level building blocks (macros) to constructs in direct compiled language is demonstrated throughout the course.
While this course provides the above foundations (which stand on their own), it also prepares students for the follow-up course COMP2310 Systems, Networks and Concurrency, which rounds off the knowledge about concurrency in current computer systems of any scale, as well as expands the knowledge in networking and operating systems.
- Mode of Delivery: on-campus
- Prerequisites: COMP1100 or COMP1130 or COMP1730 and 6 units of 1000-level MATH courses
- Incompatible Courses: None
- Co-taught Courses: COMP6300
- Course Convener: Ben Swift
- Phone: 6125 7027
- Email: firstname.lastname@example.org
- Research Interests: creative code, human-computer interaction, high-performance computing
- Lecturers: Ben Swift, Uwe Zimmer
- Phone: 6125 7027 (Ben), 6125 8619 (Uwe)
- Email: email@example.com, firstname.lastname@example.org
- Tutors: Benjamin Wang, Migara Liyanagamage, Nathan Yong, Leon Sheldon, Max Wang, Michael Bennett, James Dannatt, Javad Amiri