|
Computer Hardware Architecture and Organization
|
> > |
Digital logic
- Logic expressions
- Transformation
- minimization
- normal forms
|
|
|
< < |
Digital logic and digital systems
- Basics of electronic circuits
- Fundamental building blocks (logic gates, flip-flops, counters, registers, PLA)
- Functional characteristics (switching, concurrency)
- Electronic (and other technologies) features and constraints (delays, fanout)
- Logic expressions, minimization, normal forms
- Register transfer notation - functional considerations
- Hardware description languages (e.g. VHDL)
|
> > |
Digital systems
- Electronic circuits
- logic gates
- flip-flops,
- counters,
- registers,
- PLA
- switching
- concurrency
- constraints
- features
|
|
|
< < |
- Layout, placement and routing
- Electronic design of digital systems (e.g. towards VLSI design)
|
> > |
-
- Design Considerations
- layout
- placement
- routing
- VLSI
- Hardware Language
- Register transfer notation
- functional considerations
- Hardware description languages (e.g. VHDL)
|
|
Machine level representation of data
|
< < |
- Bits, bytes, and words
- Numeric data representation and number bases
- Fixed- and floating-point systems
- Signed and twos-complement representations
- Representation of nonnumeric data (character codes, graphical data)
- Multimedia data (sound, photographs, video)
- Representation of records and arrays
Assembly level machine organization
- Basic organization of the von Neumann machine
- Control unit; instruction fetch, decode, and execution
- Instruction sets
- Instruction types (data manipulation, control, I/O)
- Instruction set design
- Assembly/machine language programming
- Instruction formats
|
> > |
- Storage units
- Information Representation
- Size
- Numeric
- Integer
- Twos complement
- Sign magnitude
- Ones complement
- Non Integer
- Fixed point
- Floating point
* IEEE standard
- Character
- Graphical
- Multimedia
- Complex data
- Record (struc)
- Array
- Multiple precision
- Pointer (aka address)
- Programs
|
|
|
< < |
- Subroutine call and return mechanisms
- I/O and interrupts
Arithmetic / logic units
- Half adders, full adders fast adders
- Boolean operations
- Floating-point arithmetic - standards and algorithms
- Floating point arithmetic - implementation
- Design of ALU (including high performance considerations)
- Design of control units
- Input / output considerations ( buses and I/o control)
- Dual core processors
Memory system organization and architecture
- Storage systems and their technology
- Coding, data compression, and data integrity
- Memory hierarchy
- Main memory organization and operations
- Latency, cycle time, bandwidth, and interleaving
- Cache memories (address mapping, block size, replacement and store policy)
- Virtual memory (segmentation, page table, TLB)
- Error correcting codes (e.g. parity, Hamming codes)
- Fault handling and reliability
Devices
- Monitors and displays (including interaction capability)
- Storage devices (discs, memory sticks, etc.)
- Graphical devices ( including image processing)
- Input devices such as digital cameras
- Location aware devices (e.g. GPS)
- People
- Embedded systems
Functional organization
- Implementation of simple datapaths
- Control unit: hardwired realization vs. microprogrammed realization
- Instruction pipelining
- Instruction-level parallelism (ILP)
Fundamental concepts
- 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
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
|
> > |
-
-
-
- Instruction types
- data manipulation
- control
- sequential
- loop
- decision (if)
- subroutine call
- parallel
- interrupt
- input/output
|
|
|
< < |
Memory system organization and architecture
- Memory module design
- Memory systems hierarchy
- Coding, data compression, and data integrity
- Electronic, magnetic and optical technologies
- Main memory organization
- Characteristics
- Performance
- Latency, cycle time, bandwidth, interleaving
- Cache memories
- address mapping
- line size
- replacement policies
- write-back policies
- write through policies
- Virtual memory (virtual storage) systems
- Memory technologies
- Reliability
- error detecting
- error correcting
|
> > |
-
- Encoding standards
- Compression
- Integrity
- Error correcting codes
- Fault handling
|
|
|
< < |
Interfacing and communcation
- I/O fundamentals
- I/O techniques
- programmed I/O
- interrupt-driven I/O
- Direct Memory Access (DMA)
- Interrupt structures
- Interrupt controlers
- vectored interrupt structures
- prioritized interrupts
- overhead
- reentrant code
- Memory system design and interfacing
- Buses
- Bus protocols
- arbitration
Device subsystems
- External storage systems
- disk drives
- optical memory
- I/O controllers
- RAID architectures
- Video control
- I/O Performance
- SMART technology
|
> > |
Machine Organization
- Design Structure
- vonNeumann
- Processor Count
- Single Processor
- Multi Processor
- Dual Core Processsor
* Embedded system
|
|
|
< < |
Processor systems design
|
> > |
|
|
|
|
|
< < |
Organization of the CPU
- Implementation of the von Neumann machine
- Bus datapaths
- Instruction set architecture
- Architecture - compiler relationship
- Implementation of instructions
- Control unit
- hardware implementation
- microprogrammed implementation
- Arithmetic and Logic Unit
- Instruction pipelining
- Architecture trends
- CISC
- RISC
- VLIW (very large instructions word)
- Instruction-level parallelism
- Pipeline hazards
Performance
|
> > |
-
-
- Instruction Set Architecture
- Complex Instruction Set Computer (CISC)
- Reduced Instrucion Set Computer (RISC)
- Very Large Instruction Word (VLIW)
- Short vector instruction sets
- Influence on Compiler requirements
- architecture - multimedia application connections
- Performance
- Pipeline
- Hazards
* Structural
* Data
* Data Control
- Superscalar architecture
- Multithreading
- Scalability
|
|
|
|
|
> > |
-
- Storage
* Registers
-
- Accumulator
- Program Counter
- Instruction Register
- Stack Pointer
- Memory Buffer Register
- Memory Address Register
- Interrupt bits (register)
- Processor Status Word
- General Purpose Registers
- L0 Cache
- Control Unit
- Design Considerations
- Microprogramming
- Hard wiring
- Operation
- Machine Cycle
- Fetch Instruction
- Decode
- Fetch operands
- Execute
- Write result
- Arithmetic - Logic Unit
- Design Considerations
- Functional Units
- Adders
- Half Adders
- Full Adders
- Fast Adders
- Multipliers
- Logic Unit (aka Boolean Unit)
- Floating Point Unit
- Algorithms
- Implemenation
- Standards
- Data path
- Bus
- Single
- Multiple
- Protocols
* Arbitration
- Memory
- Technology
- latency
- cycle time
- bandwidth
- DIMM
- DRAM
- SDRAM
- EPROM
- EEPROM
- Organization
- Interleaving
- Cache
- Address mapping
- Block size / line size
- Replacement policy
- Store policy
- write-back policies
- write through policies
- Performance
- Branch prediction
- Prefetching
- Speculative execution
- Reliability
- error detection
- error correction
- Virtual Memory
- Segmentation
- Page table
- TLB (TABLE LOOKAHEAD BUFFER??)
- Input - Output
- Performance
- Interface / Communication
- Handshaking
- Buffering
- Programmed
- Interrupt driven
- Interrupt structures
- Interrupt controlers
- vectored interrupt structures
- prioritized interrupts
- overhead
- reentrant code
- Direct Memory Access
- Device Drivers
- Secondary Storage
- Connection
- Directly connected
- Off line
- Networked
- RAID architectures
- Technology
- Electronic
- Magnetic
- Optical
- Flash
- SMART technology
- Input Devices
- Keyboard
- Mouse
- Voice Input device
- Data gathering devices
- Temperature Probe
- Geographical Positioning System
- Biometric
- SMART card reader
- Graphic tablet
- Camera
- Output Devices
- Printer
- Monitor/Display
- Speaker
- Alarm
Computer Arithmetic
- Algorithms for common arithmetic operations (addition, subtraction, multiplication, division)
- Algorithms for carrying out common floating-point operations
- Converting between integer and real numbers
- The generation of higher order functions from square roots to transcendental functions
MERGED with NETWORKS and DISTRIBUTED SYSTEMS
|
|
Distributed system models
|
|
-
- models
- classification
- concurrency control
|
< < |
Performance Enhancements
- Superscalar architecture
- Branch prediction
- Prefetching
- Speculative execution
- Multithreading
- Scalability
- Short vector instruction sets
- Streaming extensions
- AltiVec?
- architecture - multimedia application connections
|
|
|