Computer architecture · A level · OCR H446 1.1.1, AQA 7517 4.6.1.1, Eduqas A500QS 2.1 · about 20 min
Internal components, the three buses and their widths, I/O controllers, the stored program concept, and von Neumann against Harvard.
[1 mark]Which bus is unidirectional, carrying signals only from the processor?
[1 mark]A processor has a 20-bit address bus. How many different memory addresses can it use?
[1 mark]Which statement is the stored program concept?
[1 mark]Where is the Harvard architecture typically used?
[1 mark]What is the job of an I/O controller?
[1 mark]How does hardware relate to software?
Work out what a bus of a given width can carry.
- For each address bus width in [12, 16, 24, 32] bits, print how many different addresses it can make, as a whole number with no commas, in the form address bus 16 bits: 65536 addresses.
- For each data bus width in [8, 16, 32] bits, print the smallest and largest unsigned whole number it can carry, in the form data bus 8 bits: 0 to 255.
Print the seven lines in that order. The robot does not move.
# the two lines every program starts with: the commands, then the robot from bugbot import * connect() address_widths = [12, 16, 24, 32] data_widths = [8, 16, 32]
The hint students can ask for: Each wire carries one bit, so ask how many different patterns a given number of bits can make. The smallest unsigned value is all zeros; the largest is all ones, which is one less than the number of patterns.
from bugbot import *
connect()
address_widths = [12, 16, 24, 32]
data_widths = [8, 16, 32]
for n in address_widths:
print(f"address bus {n} bits: {2 ** n} addresses")
for w in data_widths:
print(f"data bus {w} bits: 0 to {2 ** w - 1}")
Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.