Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
3-hour, open-book exam. Questions 1 and 2 are mandatory; the first five questions answered constitute a complete paper (Q6 is answered here as well, for completeness). Reference texts: Patterson & Hennessy, Computer Organization and Design, 6th ed.
Given. (a) a memory chip: 15 address lines (A0–A14), 2 bidirectional data pins (D1, D0), a chip-enable E, a read/write control. (b) target: 8-bit-wide, 32KB-total memory built from copies of this chip.
Find. (a) the chip's total capacity in bytes. (b) how many chips (and what wiring) synthesizes the target memory.
Approach. (a) count addressable rows from the address-line count, multiply by the data-pin width to get total bits, convert to bytes. (b) split the requirement into a width-expansion factor (target width / chip width) and a depth-expansion factor (target rows / chip rows), then combine.
Part (a) — chip capacity. 15 address lines (A0–A14) select one of $2^{15}=32{,}768$ distinct rows. Each row exposes exactly 2 data pins (D1, D0), i.e. each addressable row holds 2 bits:
$$\text{total bits} = 32{,}768\times2 = 65{,}536\ \text{bits}$$
$$\boxed{\text{total capacity} = 65{,}536/8 = 8{,}192\ \text{bytes} = 8\text{KB}}$$
Part (b) — synthesizing an 8-bit-wide, 32KB memory. Two independent expansions are needed: width (the target needs 8 data bits per address, this chip only offers 2) and depth (the target needs enough distinct addresses to reach 32KB total).
Width expansion: place chips side by side, all sharing the same 15 address lines (A0–A14), the same E, and the same R/W! signal, with each chip contributing 2 of the 8 output bits (chip 0 → D[1:0], chip 1 → D[3:2], chip 2 → D[5:4], chip 3 → D[7:6]):
$$\text{width chips}=8/2=4$$
Depth expansion: the target needs $32\text{KB}=32{,}768$ distinct byte addresses. A single chip already provides exactly $2^{15}=32{,}768$ rows — precisely matching the target depth — so no depth expansion is required: one row of 4 width-expansion chips already spans the full 32,768-address range with no additional address decoding logic.
$$\boxed{\text{total chips required} = 4\ (\text{width})\times1\ (\text{depth}) = 4}$$
Wiring: tie all 15 address lines (A0–A14) in parallel across all 4 chips, tie E and R/W! together across all 4 chips (a single global enable/read-write control, since there is only one depth group so no address-decoded chip-select logic is needed at all), and concatenate each chip's 2-bit D1:D0 output into its own 2-bit slice of the 8-bit system data bus.