Download Comprehensive Course on Computer Architecture & Organization for Engineering Students and more Study notes Architecture in PDF only on Docsity! Bachelor of Science in Computer Engineering 1 CMP1203 Computer Architecture and Organization Period per Week Contact Hour per Semester Weighted Total Mark Weighted Exam Mark Weighted Continuous Assessment Mark Credit Units LH PH TH CH WTM WEM WCM CU 45 00 30 60 100 40 100 4 Rationale Computer architecture is a key component of computer engineering and the practicing computer engineer should have a practical understanding of this topic. It is concerned with all aspects of the design and organization of the central processing unit and the integration of the CPU into the computer system itself. Objectives • To provide an overview of computer architecture and teach students the operation of a typical computing machine. • To cover basic principles, while acknowledging the complexity of existing commercial systems. • To reinforce topics that are common to other areas of computer engineering; for example, teaching register indirect addressing reinforces the concept of pointers in C. • To expose the student to how various peripheral devices interact with, and how they are interfaced to a CPU. Course Content 1. History and Overview Bachelor of Science in Computer Engineering 2 • Reasons for study • Influences on Computer Architecture Organization • System organization and architecture, memory, interfacing, microprocessors, and performance; Differences between computer organization and architecture; binary arithmetic • Components of computer design; CPU organization; Caching; Multiprocessing strategies 2. Fundamentals of computer architecture • Organization of the von Neumann machine, Instruction formats, The fetch/execute cycle; instruction decoding and execution , Registers and register files, Instruction types and addressing modes, Subroutine call and return mechanisms, Programming in assembly language, I/O techniques and interrupts 3. Computer Arithmetic • Representation of integers (positive and negative numbers), Algorithms for common arithmetic operations (addition, subtraction, multiplication, division) • Significance of range, precision, and accuracy in computer arithmetic, Representation of real numbers (standards for floating-point arithmetic) • Algorithms for carrying out common floating-point operations, Converting between integer and real numbers , Multi-precision arithmetic • Hardware and software implementation of arithmetic unit • The generation of higher order functions from square roots to transcendental functions 4. Memory System Organization and Architecture • Memory systems hierarchy, Coding, data compression, and data integrity , Electronic, magnetic and optical technologies • Main memory organization and its characteristics and performance, Latency, cycle time, bandwidth, and interleaving, Cache memories (address mapping, line size, replacement and write-back policies), Virtual memory systems • Memory technologies such as DRAM, EPROM, and FLASH, Reliability of memory systems; error detecting and error correcting systems 5. Interfacing and Communication • I/O fundamentals: handshaking, buffering • I/O techniques: programmed I/O, interrupt-driven I/O, DMA • Interrupt structures: vectored and prioritized, interrupt overhead, interrupts and reentrant code • Memory system design and interfacing • Buses: bus protocols, local and geographic arbitration 6. Device Subsystems • External storage systems • Organization and structure of disk drives and optical memory • Basic I/O controllers such as a keyboard and a mouse, RAID architectures, Video control, I/O Performance, SMART technology and fault detection • Processor to network interfaces 7. Processor System Design • The CPU interface: clock, control, data and address buses • Address decoding and memory interfacing • Basic parallel and serial interfaces