Professional Documents
Culture Documents
COEN 311
Computer Organization & Software
Introduction and Terminology
All lectures adapted from notes by
Dr. Fadi Alzhouri
Dr. Sofiene Tahar, and Dr. Anjali Agarwal
Computing machine
• Application software
– Written in high-level language
• System software
– Compiler: translates HLL code to machine code
– Operating System: service code
• Handling input/output
• Managing memory and storage
• Scheduling tasks & sharing resources
• Hardware
– Processor
– Memory
– I/O ports (Controllers)
Output Input
ports ports
• Memory is used to store data and instructions that the CPU requires
during execution.
Machine-Independent
• High-level languages:
– Are designed to be closer to human language. Application programs
– Examples: C++, Java
High-level languages
• Assembly languages:
– Are low-level languages that are specific to
Machine-dependent
a particular computer architecture.
Assembly language
– Examples: x86 assembly, ARM assembly,
and MIPS assembly.
Machine language
• Machine Languages:
– Are the lowest level of programming language
and consists of binary code (0s and 1s). Hardware
Linker
Assembler
List file
Myfile.o (or .odj Object file)
Linker
Machine Code
Executable file
Hardware
Registers (R1,R2,…)
Machine Program
1000 01 0011
+
1000 10 0010
1010 11 01 10
CPU Memory
• Von-Neuman :
– A common bus for both data as well as code
memory.
– Either an instruction can be fetched from
memory or data can be read/written to/from
memory during each memory access cycle.
– Instructions and data are stored in the same
memory subsystem and share a common bus to
the processor.
• Harvard:
– Separate memories for data and instructions
– Separate buses for data and instructions
– Data and instructions can be accessed
simultaneously
– Increases efficiency
Von-Neuman : Harvard:
• It is RISC processor.
ifixit.com/News
Dr. Fadi Alzhouri 23