0% found this document useful (0 votes)
28 views6 pages

Computer Architecture and assembly language(1)

Uploaded by

dillasemera2014
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
28 views6 pages

Computer Architecture and assembly language(1)

Uploaded by

dillasemera2014
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 6

Course Title: Computer Organization and Assembly Programming

Course number: COSC 2042


Credit hours: 4
Contact hours: 5 (3 Lect. hrs. 2 Lab hrs.)
Prerequisite: COSC 1012
Laboratory: Required

Course Objectives

After a successful completion of this course, students will be able to:


 Describe the basic structure and operation of a digital computer,
 Represent information with numbers and Convert from one number base to another;
 Use the Rules of Boolean Algebra for Circuit optimization;
 Describe the Fetch-Decode-Execute Cycle;
 Enumerate the principal components of a CPU and describe their function;
 Describe how ROM, DRAM and SRAM work;
 Identify different I/O communicating techniques and standard I/O interfaces,
 Describe parallel processor organizations and explain the basic concepts of multi-core
computer systems.

 Use assembler to develop and run assembly language programs;


 Identify registry, memory allocation, memory reference techniques, File processing,
modular programming etc.;
 Identify how to interface serial and parallel I/O devices with a microprocessor;
 Write code to process exceptions and interrupts;

Course Description

This course is intended to acquaint the student to the taxonomies of Computer Design, the basic
concerns of Computer Architecture, provide an overview of the technology trends that drive the
industry and how to use this information in the art of Computer Design. The course also
Introduces students about Programming micro-computers using assembly & machine Languages.
The course covers: computer evolution, classification of computers, number systems, Logic
gates, Boolean algebra, combinational circuits, sequential circuits, register transfer and micro-
operations, CPU-Organization, memory organization, organization of input and output
subsystems, parallel processing (including symmetric multiprocessing and clustering), and
organization of multi-core computers, assembly language programming, micro processor
assemblers.

Course Contents
1. Introduction to Computers
1.1. Concepts of Computer Organization and Architecture
1.2. Evolution(or history) of Computers (from year 1940 generation through year 2016+ )
1.3. Factors behind the need to design computers for higher performance
1.4. Example: Evolution of the Intel x86 architecture
1.5. Current classification of computers
2. Number systems
2.1 Decimal number system
2.2 Binary number system
2.3 Converting between binary and decimal numbers
2.4 Hexadecimal number system and its conversion to binary or decimal number system
2.5 Twos complement representation
2.6 Fixed ̶ Point representation
2.7 Floating ̶ Point representation
3. Introduction to Digital Logic circuits
3.1 Logic gates, symbols, and truth tables

3.2 Boolean algebra

3.3 Combinational circuits


3.3.1 Multiplexers
3.3.2 Decoders, Encoders
3.3.3 Read-Only Memory
3.3.4 Adders
3.4 Sequential circuits
3.4.1 Flip-Flops (S-R, D, and J-K Flip-flops)
3.4.2 Registers (parallel, shift-registers)
4. Central Processing Unit (CPU)
4.1. Internal components of a CPU (ALU, CU, Registers, Cache(s))
4.2. General register organization of 8086 CPU, Stack organization
4.3. Instruction formats
4.3.1. Three-Address instructions
4.3.2. Two-Address instructions
4.3.3. One-Address instructions
4.3.4. Zero-Address instructions
4.3.5. RISC-Address instructions
4.4. Addressing Modes of 8086 Microprocessor
4.4.1. Direct (or absolute addressing)
4.4.2. Register addressing
4.4.3. Register indirect addressing
4.4.4. Immediate addressing
4.4.5. Implicit (or implied) addressing
4.4.6. Indexed addressing
4.5. Categories of computer instructions
4.5.1. Data transfer
4.5.2. Data manipulation
4.5.3. Program control
4.6. Characteristics of CISC and RISC computers
5. Memory Organization
5.1. Memory hierarchy
5.2. Semiconductor main memory
5.2.1. Dynamic RAMs, Static RAMs
5.2.2. ROM family (ROM, PROM, EPROM, EEPROM)
5.2.3. Memory address map
5.3. Cache memory organization
5.3.1. Direct mapping
5.3.2. Associative mapping
5.3.3. Set-associative mapping
5.3.4. Number of caches (multilevel caches, unified versus split caches)
6. Input–Output Organization
6.1. Computer peripheral devices
6.2. Modes of input-output (I/O) transfer
6.2.1. Programmed I/O transfer
6.2.2. Interrupt-driven I/O transfer
6.2.3. Direct memory access (DMA) transfer
6.3. Priority interrupt
6.3.1. Daisy-chaining priority
6.3.2. Parallel priority interrupt
6.3.3. Interrupt cycle
6.4. Input-Output processor (IOP)
6.4.1. CPU-IOP communication
6.4.2. Serial communication
6.4.3. Character-oriented and Bit-oriented protocol
7. Parallel Processing
7.1. Multiple processor organization (or Parallel processor system)
7.2. Symmetric multiprocessors
7.3. Cache coherence problem and MESI-Protocol
7.4. Cluster computer architecture
8. Parallel Processing and Multi-Core computers
8.1. Multiple processor organization (or Parallel processor system)
8.2. Symmetric multiprocessors
8.3. Cache coherence problem and MESI-Protocol
8.4. Cluster computer architecture
8.5. Multi-Core Organization concepts

9. Machine and Assembly Languages concepts


 Machine language
 Assembly languages
 Instruction operands
 Basic instructions
 Directives
 Creating a program
 First program
 Compiler dependencies
 Assembling the code

10. Basic Assembly Language


 Control structures
 Comparisons
 Branch Instructions
 Control structures
 Loop instructions

11. Procedure and Functions


 Procedures
 Functions
 Saving the state of the machine
 Parameters

Course Delivery Modalities


Teaching Methods: Lecture and Laboratory Practical work
Evaluation Methods: Theoretical Tests (20%), Practical Tests (15%), Assignments (15%) and
Final Exam (50%)

Text book(s)
1. William Stalling; “Computer Organization and Architecture: Designing for Performance”,
9th Edition, Prentice Hall, 2013
2. Randall Hyde , The Art of Assembly Language, 2nd ed. (2010) , No Starch Press, USA

Reference book(s) and Websites


1. M. Morris Mano ; “Computer System Architecture”; Prentice Hall, 3rd Edition, 1993
2. Web sites(s) that provides support for students and instructors
3.
4. http:// WilliamStallings.com/Computer Organization
5. http:// WilliamStallings.com/StudentSupport.html

You might also like