Computer Organization and Architecture Study Notes
Fundamental Concepts of Computer Organization and Architecture
Computer Architecture encompasses the detailed design and structural organization of computer systems. A computer system can be examined from multiple structural perspectives, ranging from external physical user interfaces to internal electronic hardware components and high-level architectural block diagrams.
From an external perspective, traditional desktop systems consist of output devices such as display monitors and audio speakers, along with input devices including keyboards and mice. The system unit housing contains central hardware components, including the processor, main memory, hard disk drive, DVD-ROM drive, graphics card, and Ethernet interface. Modern portable systems, such as laptops and smartphones, integrate these interfaces directly into compact forms featuring touchpads, touchscreens, wireless connectivity modules, specialized sensors, SD card slots, specific battery capacities, optimized weight profiles, and custom display screen dimensions.
From an internal hardware perspective, the system centers on printed circuit boards such as desktop motherboards, laptop mainboards, and high-density mobile logic boards (such as the iPhone 6 board manufactured by Chipworks). These assemblies house the central processing unit socket, heat sink and cooling fan assemblies, expansion slots, random-access memory slots, and integrated chipset controllers.
At a high functional level, a digital computer is structured into four primary components:
Central Processing Unit (CPU): Executes software instructions and controls operational timing.
Main Memory: Stores active program instructions and operational data.
Input/Output (I/O) Devices: Receives external input data and generates processed output results.
System Bus: Serves as the interconnecting communication pathway that transfers data, address, and control signals between the CPU, Main Memory, and I/O devices.

Computer programming relies on a hierarchy of programming languages. High-level languages are designed to be human-readable and express algorithms in structured logical statements. Low-level languages (machine languages) consist of code that physical computer hardware can execute directly. Translation between high-level instructions and low-level machine codes is performed by software tools such as interpreters and compilers.

Data Representation and Register Data Types
Binary information inside digital computers is stored within memory units or internal processor registers. Registers store two fundamental categories of binary information: control information and data.
Control information consists of individual bits or groups of bits that specify the exact sequence of command signals required to manipulate data stored in other registers.
Data refers to numerical values and binary-coded information. The data types stored within processor registers are classified into three primary categories:
Numbers used in arithmetic computations.
Letters of the alphabet used in general data processing.
Discrete symbols used for specialized control and formatting purposes.
Human communication relies on words, alphabetic characters, and decimal symbols. Because physical digital computing hardware operates strictly on discrete electronic signals, incoming data must be converted into electronic pulses. In binary systems, the absence of an electronic pulse represents a logical , while the presence of an electronic pulse represents a logical .
Each binary digit is called a bit. Standard binary groupings are defined as follows:
Bit: A single binary digit ( or ).
Nibble: A contiguous group of four binary bits (for example, ).
Byte: A contiguous group of eight binary bits (for example, ).
To translate human-readable inputs into computer-compatible numeric formats, standardized encoding schemes such as ASCII assign unique numerical values to every number, character, and symbol.
Fundamental Number Systems
Digital computing systems utilize four main positional number systems: Decimal, Binary, Octal, and Hexadecimal.
In the Decimal Number System, the base (radix) is . It employs ten distinct symbols: . The minimum digit value is and the maximum digit value is . Each positional digit represents a specific power of base . This system is universally used in human calculation.
In the Binary Number System, the base (radix) is . It employs two distinct symbols: and . Each digit represents a power of base . Computers rely natively on the binary system because basic electronic storage components, such as flip-flops, naturally store two stable states ( or ).
In the Octal Number System, the base (radix) is . It employs eight distinct symbols: . Each positional digit represents a power of base . Because , every single octal digit maps directly to a group of three binary bits. Octal notation is primarily used to represent long binary strings in a compact form.
In the Hexadecimal Number System, the base (radix) is . It employs sixteen distinct symbols: numbers and alphabetic letters . The letters through correspond to decimal values through respectively (, , , , , ). Because , every hexadecimal digit maps directly to a group of four binary bits. Hexadecimal is termed an alphanumeric system and is used to express byte-organized computer memory data concisely.
System | Base | Symbols Used | Used by Humans? | Used in Computers? |
|---|---|---|---|---|
Decimal | Yes | No | ||
Binary | No | Yes | ||
Octal | No | No | ||
Hexadecimal | No | No |
The comparative counting sequence across all four number systems from decimal through is formatted below:
Decimal | Binary | Octal | Hexadecimal |
|---|---|---|---|
Number System Base Conversions
Converting integer numbers between bases involves systematic division or positional weighted summation.
To convert an integer from Decimal to Binary, divide the decimal integer repeatedly by and record the remainder of each step. The final binary string is constructed by reading the remainders from bottom to top (least significant bit to most significant bit).
To determine the binary equivalent of :
Reading remainders upward yields:
To convert an integer from Decimal to Octal, divide the decimal integer repeatedly by and collect remainders bottom-to-top.
To determine the octal equivalent of :
Reading remainders upward yields:
To convert an integer from Decimal to Hexadecimal, divide the decimal integer repeatedly by and collect remainders bottom-to-top, replacing remainders from through with corresponding hex letters through .
To determine the hexadecimal equivalent of :
Reading remainders upward yields:
To convert from Binary to Decimal, multiply each binary bit by its positional weight (where is the bit index from right to left starting at ) and sum all weighted products.
To determine the decimal equivalent of :
Bit Position 4:
Bit Position 3:
Bit Position 2:
Bit Position 1:
Bit Position 0:
Sum of weighted bits:
Therefore:
To convert from Binary to Octal, partition the binary bits into groups of three starting from right to left. Convert each 3-bit group into its single octal digit using standard position weighting.
To determine the octal equivalent of :
Grouping into sets of 3 bits: and
First group
Second group
Therefore:
To convert from Binary to Hexadecimal, partition the binary bits into groups of four starting from right to left. Convert each 4-bit group into its single hexadecimal digit using standard position weighting.
To determine the hexadecimal equivalent of :
Grouping into sets of 4 bits: and
First group
Second group
Therefore:
To convert from Octal to Decimal, multiply each octal digit by its positional weight and sum the results.
To determine the decimal equivalent of :
Position 2:
Position 1:
Position 0:
Sum of weighted digits:
Therefore:
To convert from Octal to Binary, expand each individual octal digit directly into its equivalent 3-bit binary pattern.
To determine the binary equivalent of :
Octal digit
Octal digit
Octal digit
Combining binary groups:
To convert from Octal to Hexadecimal, expand the octal digits into 3-bit binary groups, combine them into a single binary string, and regroup the bits into 4-bit sets from right to left to evaluate as hexadecimal digits.
To determine the hexadecimal equivalent of :
Convert octal to binary: , , ,
Combined binary string:
Regroup into 4-bit sets:
Therefore:
To convert from Hexadecimal to Decimal, multiply each hex digit by its positional weight and sum the results.
To determine the decimal equivalent of , noting :
Position 2:
Position 1:
Position 0:
Sum of weighted digits:
Therefore:
To convert from Hexadecimal to Binary, expand each hexadecimal digit directly into its equivalent 4-bit binary pattern.
To determine the binary equivalent of , noting and :
Hex digit
Hex digit
Hex digit
Combining binary groups:
To convert from Hexadecimal to Octal, expand each hex digit into a 4-bit binary group, combine into a unified binary string, and regroup into 3-bit sets from right to left to evaluate as octal digits.
To determine the octal equivalent of , noting :
Convert hex to binary: , ,
Combined binary string:
Regroup into 3-bit sets:
Therefore:
Fractional and Floating-Point Base Conversions
Converting numbers with fractional components requires distinct calculations for the integer part and the fractional part.
For Decimal to Binary fractional conversion, convert the integer part through successive division by . Convert the fractional part through repeated multiplication by ; the integer result of each multiplication step forms the binary fractional bit sequence generated from top to bottom.
To identify the binary number represented by , analyze both parts:
Integer part :
Integer binary =
Fractional part :
Fractional binary =
Combining both parts yields:
For Binary Fractional to Decimal conversion, calculate negative powers of (, , , ) according to the power rule .
To find the decimal equivalent of :
Integer part
Fractional part
Sum of integer and fractional components:
Therefore:
For Hexadecimal Fractional to Decimal conversion, multiply digits right of the radix point by negative powers of (, ).
To find the decimal equivalent of , noting and :
Integer calculations:
Fractional calculations:
Summing all positional weight values:
Therefore:
Exercise Solutions Matrix
The table below details complete multi-base fractional conversion equivalence across Decimal, Binary, Octal, and Hexadecimal representations:
Decimal | Binary | Octal | Hexadecimal |
|---|---|---|---|
Digital Logic Circuits and Logic Gates
Digital logic represents electrical signals and circuit sequences using binary numbers. A logic gate is an elementary building block of a digital circuit. Most logic gates process two or more input signals to produce a single output signal.
At any given moment, every circuit terminal exists in one of two binary conditions: low () or high (), which correspond to distinct physical voltage levels.
The primary logic gates and their operational rules are established as follows:
OR Gate: A logic gate with two or more inputs and one output. It produces a logical high output () if one or more of its inputs are high (). Its Boolean output is expressed as (or ).
Truth Table for OR Gate:
Input X | Input Y | Output Z |
|---|---|---|

AND Gate: A logic gate with two or more inputs and one output. It produces a logical high output () only when all of its inputs are high (). Its Boolean output is expressed as (or ).
Truth Table for AND Gate:
Input X | Input Y | Output Z |
|---|---|---|
NOT Gate: A single-input, single-output circuit that inverts the logical state of its input. It produces a high output () if the input is low (), and a low output () if the input is high (). Its Boolean output is expressed as (or ).
Truth Table for NOT Gate:
Input X | Output Y |
|---|---|
NAND Gate: A logic gate that produces an output that is false () only when all its inputs are true (). The output of a NAND gate is the exact logical complement of an AND gate. Its Boolean output is expressed as (or ).
Truth Table for NAND Gate:
Input X | Input Y | Output Z |
|---|---|---|
NOR Gate: A logic gate that produces a high output () only when all of its inputs are low (). The output of a NOR gate is the exact logical complement of an OR gate. Its Boolean output is expressed as (or ).
Truth Table for NOR Gate:
Input X | Input Y | Output Z |
|---|---|---|
Exclusive-OR (XOR) Gate: A digital logic gate that produces a high output () when an odd number of inputs are true. When both inputs are identical, the output is low (); when inputs differ, the output is high (). Its Boolean output is expressed as (or ).
Truth Table for XOR Gate:
Input X | Input Y | Output Z |
|---|---|---|
Exclusive-NOR (XNOR) Gate: A digital logic gate whose function is the logical complement of the XOR gate. Its output is true () when all inputs are true or when all inputs are false. Its Boolean output is expressed as .
Truth Table for XNOR Gate:
Input X | Input Y | Output Z |
|---|---|---|
Logic gates offer significant practical advantages in electronic design. They reliably distinguish between logical state and logical state . Logic gates serve as the basic components for flip-flops (such as an RS flip-flop constructed from two cross-coupled gates) and form the physical basis for TTL (Transistor-Transistor Logic) and CMOS (Complementary Metal-Oxide-Semiconductor) integrated circuits. Karnaugh Maps (K-maps) are used alongside logic gates to minimize algebraic expressions before physical hardware implementation.
Boolean Algebra and Circuit Optimization
Boolean algebra was developed in 1854 by George Boole in his publication An Investigation of the Laws of Thought. It is a specialized variant of elementary algebra that operates exclusively on binary truth values and . Because it models binary choices, Boolean algebra is also termed Switching Algebra.
Decisions resulting in either YES (TRUE / ) or NO (FALSE / ) are binary decisions. Statements that can be determined to be True or False are truth functions or logical statements. Variables that store truth values are logical variables or binary-valued variables.
Boolean algebra is defined by foundational postulates and identities:
OR Laws:
AND Laws:
NOT Laws:
If , then
If , then
Commutative Laws:
Associative Laws:
Distributive Laws:
Absorptive Laws:
DeMorgan's Laws:
Algebraic simplification reduces the total number of logic gates required to implement a logic function. For example, to simplify the expression , apply Boolean laws step by step:
Expand the product:
Apply the idempotent law to :
Factor out from the first two terms:
Apply the identity :
Factor out from the remaining terms:
Apply the identity :
Simplification result:
Using Boolean algebra to simplify logical expressions reduces gate counts, lowering hardware costs and making digital circuit designs clearer, easier to service, and faster to execute. However, a limitation of Boolean algebra is that it strictly computes direct logic outcomes and cannot derive implied non-binary relationships.
Standard Academic References
The primary textbook for computer organization and architecture studies is:
M. Morris Mano, Computer System Architecture, Pearson Education, 3rd Edition, 2007.
Additional primary reference works include:
Donald P. Leach and Albert Paul Malvino, Digital Principles and Applications, Tata McGraw-Hill, 5th Edition, 2003.
John L. Hennessy and David A. Patterson, Computer Architecture – A Quantitative Approach, Elsevier, 2nd Edition, 2011.
William Stallings, Computer Organization and Architecture: Designing for Performance, Technical Publications, 2010.
High-Level Computer Architecture and Systems Structure
Structural Perspectives
External Perspective (Desktop & Portable Systems)
Desktop Systems: Includes output devices (display monitors, speakers), input devices (keyboards, mice), and the system unit housing central hardware (processor, main memory, hard disk drive, DVD-ROM drive, graphics card, Ethernet interface).
Portable Systems: Integrates interfaces directly into compact forms featuring touchpads, touchscreens, wireless modules, specialized sensors, SD card slots, optimized battery capacities, weight profiles, and specific display dimensions.
Internal Hardware Perspective
Printed Circuit Boards: Centers on motherboards, laptop mainboards, and high-density mobile logic boards (e.g., iPhone 6 logic board).
Housed Components: Central processing unit socket, heat sink and cooling fan assemblies, expansion slots, random-access memory (RAM) slots, and integrated chipset controllers.
High Functional Level Structure
Central Processing Unit (CPU): Executes software instructions and controls operational timing.
Main Memory: Stores active program instructions and operational data.
Input/Output (I/O) Devices: Receives external inputs and generates processed output results.
System Bus: Interconnecting communication pathway transferring data, address, and control signals between CPU, Memory, and I/O.
Data Representation Principles
Signal Pulse Conversion: Hardware operates on discrete electronic signals where absence of pulse represents logical and presence represents logical .
Binary Groupings
Bit: A single binary digit ( or ).
Nibble: A contiguous group of four binary bits (e.g., ).
Byte: A contiguous group of eight binary bits (e.g., ).
Encoding Schemes: Standardized schemes such as ASCII assign unique numerical values to translate human-readable inputs into computer-compatible numeric formats.
Fundamental Number Systems
Primary Positional Number Systems
Decimal System: Base (radix) ; symbols ; positional powers of ; universally used in human calculation.
Binary System: Base (radix) ; symbols ; positional powers of ; native storage system for computers due to electronic components like flip-flops holding two stable states.
Octal System: Base (radix) ; symbols ; positional powers of ; since , each octal digit maps directly to a 3-bit binary group; used to condense long binary strings.
Hexadecimal System: Base (radix) ; symbols and alphabetic letters (representing values through ); since , each hex digit maps directly to a 4-bit binary group; alphanumeric system for byte-organized data.
System Comparison Overview
Decimal: Base , Symbols , Used by Humans: Yes, Used in Computers: No
Binary: Base , Symbols , Used by Humans: No, Used in Computers: Yes
Octal: Base , Symbols , Used by Humans: No, Used in Computers: No
Hexadecimal: Base , Symbols , Used by Humans: No, Used in Computers: No
Number System Base Conversions
Integer Conversions
Decimal to Other Bases
Decimal to Binary: Repeatedly divide by ; collect remainders bottom-to-top (e.g., ).
Decimal to Octal: Repeatedly divide by ; collect remainders bottom-to-top (e.g., ).
Decimal to Hexadecimal: Repeatedly divide by ; collect remainders bottom-to-top using letters for remainders (e.g., ).
Binary to Other Bases
Binary to Decimal: Multiply each bit by positional weight and sum products (e.g., ).
Binary to Octal: Group bits in sets of from right to left using weighting (e.g., ).
Binary to Hexadecimal: Group bits in sets of from right to left using weighting (e.g., ).
Octal to Other Bases
Octal to Decimal: Multiply digits by weight and sum products (e.g., ).
Octal to Binary: Expand each octal digit into its 3-bit binary pattern (e.g., ).
Octal to Hexadecimal: Expand octal digits to 3-bit binary, combine into unified binary string, and regroup into 4-bit sets from right to left (e.g., ).
Hexadecimal to Other Bases
Hexadecimal to Decimal: Multiply digits by weight and sum products (e.g., ).
Hexadecimal to Binary: Expand each hex digit into its 4-bit binary pattern (e.g., ).
Hexadecimal to Octal: Expand hex digits to 4-bit binary, combine into unified binary string, and regroup into 3-bit sets from right to left (e.g., ).
Fractional and Floating-Point Base Conversions
Decimal Fractional to Binary: Convert integer part via successive division by ; convert fractional part via repeated multiplication by , recording integer results top-to-bottom (e.g., ).
Binary Fractional to Decimal: Evaluate negative powers of (, , , ) according to power rule and sum values (e.g., ).
Hexadecimal Fractional to Decimal: Multiply digits right of the radix point by negative powers of (, ) and sum values (e.g., ).
Digital Logic Circuits and Logic Gates
Primary Logic Gates and Operational Rules
OR Gate: Output (); produces high output () if one or more inputs are high ().
AND Gate: Output (); produces high output () only if all inputs are high ().
NOT Gate: Output (); inverts logical input state.
NAND Gate: Output (); produces false () output only when all inputs are true (); complement of AND gate.
NOR Gate: Output (); produces high () output only when all inputs are low (); complement of OR gate.
XOR Gate: Output (); produces high () output when an odd number of inputs are true; low () when inputs are identical.
XNOR Gate: Output ; produces high () output when all inputs are true or all inputs are false; complement of XOR gate.
Practical Advantages in Digital Design
Distinguishes reliably between logic state and logic state .
Serves as the foundational element for constructing flip-flops (such as RS flip-flops).
Forms physical basis for TTL (Transistor-Transistor Logic) and CMOS (Complementary Metal-Oxide-Semiconductor) ICs.
Integrates with Karnaugh Maps (K-maps) to optimize logic circuits.
Boolean Algebra and Circuit Optimization
Foundational Concepts
Developed in 1854 by George Boole in An Investigation of the Laws of Thought.
Operates exclusively on binary truth values and (Switching Algebra).
Models binary decisions (YES / NO) and logical statement variables.
Postulates and Laws
OR Laws: , , ,
AND Laws: , , ,
NOT Laws: \bar{0} = 1, \bar{1} = 0, \overline{\bar{A}} = A
Commutative Laws: ,
Associative Laws: ,
Distributive Laws: , ,
Absorptive Laws: , ,
DeMorgan's Laws: ,
Circuit Optimization Benefits & Limits
Benefits: Simplification reduces required gate counts, lowers manufacturing costs, enhances execution speed, and makes circuit design easier to comprehend and service.
Limitations: Strictly computes direct logic outcomes and cannot derive implied non-binary relationships.
Standard Academic References
M. Morris Mano, Computer System Architecture, Pearson Education, 3rd Edition, 2007.
Donald P. Leach and Albert Paul Malvino, Digital Principles and Applications, Tata McGraw-Hill, 5th Edition, 2003.
John L. Hennessy and David A. Patterson, Computer Architecture – A Quantitative Approach, Elsevier, 2nd Edition, 2011.
William Stallings, Computer Organization and Architecture: Designing for Performance, Technical Publications, 2010.