H446/01 · 2 hours 30 minutes · 40% of A-Level · Topics 1.1 – 1.5
1.1 - The characteristics of contemporary processors, input, output and storage devices
CPU components:
Buses:
Fetch-Decode-Execute cycle:
Factors affecting CPU performance:
Pipelining: while one instruction is being executed, the next is being decoded and the one after is being fetched. Increases throughput but hazards (data dependencies, branching) can cause stalls.
Processor architectures:
Know the trade-offs: speed vs cost vs capacity vs volatility. Exam questions often ask you to justify storage choice for a given scenario.
1.2 - Software and software development
Operating system functions: manages hardware resources, provides user interface, manages files, handles security and user accounts, manages processes and memory.
Memory management:
Interrupts: signal to the CPU that an event needs attention. CPU finishes current instruction, saves state to stack, executes ISR (Interrupt Service Routine), restores state and continues. Types: hardware interrupts (keyboard, mouse, I/O), software interrupts (program calls), timer interrupts.
Scheduling algorithms:
Types of operating system:
BIOS (Basic Input/Output System): firmware stored in ROM. First code to run on boot. Performs POST (Power-On Self Test), identifies hardware, loads OS bootloader.
Device drivers: software allowing the OS to communicate with hardware. Translates generic OS commands into device-specific instructions.
Virtual machines: software emulation of a computer. Allows one OS to run inside another. Uses: running legacy software, testing, sandboxing, cloud computing (hypervisors manage multiple VMs on one physical machine).
Translators:
Stages of compilation (4 stages per spec):
Linkers: combine object code files and library code into one executable. Loaders: load executable into memory ready to run. Libraries: pre-written, tested code modules that can be reused.
Programming paradigms:
OOP concepts:
Assembly language and addressing modes:
The spec requires following and writing simple programs using the Little Man Computer (LMC) instruction set:
| Mnemonic | Operation |
|---|---|
| INP | Input a value → ACC |
| OUT | Output ACC |
| LDA x | Load value at address x → ACC |
| STA x | Store ACC → address x |
| ADD x | ACC = ACC + value at x |
| SUB x | ACC = ACC − value at x |
| BRA x | Branch always → address x |
| BRZ x | Branch to x if ACC = 0 |
| BRP x | Branch to x if ACC ≥ 0 |
| HLT | Halt the program |
| DAT | Define a data value / label a memory location |
Addressing modes:
1.3 - Exchanging data
Hashing: one-way function that converts data to a fixed-length hash value. Cannot be reversed. Uses: password storage (store hash not password), data integrity checking, hash tables (for fast lookup), digital signatures.
Symmetric vs asymmetric: symmetric is faster but has the key distribution problem. Asymmetric solves key sharing but is slower. In practice, asymmetric is used to exchange a symmetric key, which is then used for bulk encryption (TLS does this).
Normalisation: process of structuring a database to reduce redundancy.
SQL: the spec requires students to interpret and modify SQL queries:
Also know: INSERT INTO, UPDATE SET, DELETE FROM. The focus is on reading and modifying existing queries rather than writing complex queries from scratch.
Transaction processing: ACID properties:
Record locking: prevents two users editing same record simultaneously. Deadlock: two processes each waiting for the other to release a lock; prevented by ordering locks or timeout.
Indexing: creates a separate data structure for fast lookups on a field. Speeds up queries but slows INSERT/UPDATE/DELETE.
TCP/IP stack (4 layers):
DNS (Domain Name System): translates domain names (e.g. example.com) to IP addresses. Hierarchical: root servers → TLD servers → authoritative servers.
Network security: firewalls (filter packets by rules), proxies (intermediate server that hides client IP and caches content), encryption (TLS/HTTPS).
Network hardware: switch (connects devices in LAN, uses MAC addresses), router (connects networks, uses IP addresses), NIC (network interface card), WAP (wireless access point).
Search engine indexing: web crawlers follow links and index page content. Index is a data structure mapping keywords to URLs. Allows fast search queries.
PageRank algorithm: ranks pages by the number and quality of links pointing to them. More links from high-ranked pages = higher rank. Iterative algorithm: rank flows through the link graph.
1.4 - Data types, data structures and algorithms
Primitive data types: integer, real/floating-point, character, string, Boolean.
Two's complement (representing negative integers):
Sign and magnitude: MSB = sign bit (0=positive, 1=negative). Simpler but two representations of zero. Less used in practice.
Hexadecimal: base 16, digits 0–9 and A–F. Each hex digit = 4 bits (nibble). Used as shorthand for binary, as it is easier to read. IPv6 addresses, colour codes (#FF5733), memory addresses.
Floating point representation: sign bit + mantissa + exponent. Value = mantissa × 2^exponent.
Bitwise operations:
Character sets: ASCII (7-bit, 128 characters, basic Latin), Extended ASCII (8-bit, 256), Unicode (up to 32-bit, covers all world languages and symbols). UTF-8 is the most common Unicode encoding.
Binary addition: add column by column right to left. 0+0=0, 0+1=1, 1+1=10 (write 0 carry 1), 1+1+1=11 (write 1 carry 1). Overflow occurs if the result requires more bits than available.
Binary subtraction: use two's complement by negating the number being subtracted, then add. Alternatively, subtract directly: 0−0=0, 1−0=1, 1−1=0, 10−1=1 (borrow from next column).
Know how to create, traverse, add and remove from each structure. Also know which is best for which scenario, e.g. hash table for fast lookup, queue for scheduling, stack for backtracking.
Logic gates: AND, OR, NOT, NAND, NOR, XOR. Know their truth tables and symbols.
Boolean laws for simplification (as listed in spec):
Karnaugh maps (K-maps): visual tool for simplifying Boolean expressions. Group 1s in powers of 2 (1, 2, 4, 8). Larger groups = simpler expression. Wrap around edges allowed. Eliminates need for algebraic manipulation.
D-type flip-flop: stores 1 bit. Output Q takes the value of input D on the rising clock edge. Used in registers and memory cells.
Half adder: adds two 1-bit inputs. Sum = A XOR B. Carry = A AND B.
Full adder: adds two 1-bit inputs + carry in. Built from two half adders. Enables multi-bit addition.
1.5 - Legal, moral, cultural and ethical issues