FM1. SRAM, decoders and memory addressing: the exam way
This is the exam way of FM1: each part as you would write it on the paper, with what to recognize, the lines to write, the trap to watch and the answer. Every part keeps the anchor it has on FM1, so the switch at the top of the page takes you to the same part’s full solution. The methods are three cards of the playbook: the SRAM access path for FN10-5, memory addressing for FN10-10 and FN12-10d, and the dynamic row decoder for FN17-6. FM1’s six harder variations stay on FM1 only, at the end of each family: the access path, addressing and decoders and the dynamic row decoder. Work them there, against the budgets their titles give.
The clock. The past finals gave 180 minutes. FN10 and FN12 had 200 points, 0.9 min a point, so FN10-5’s 10, 10 and 6 points have about 9, 9 and 5 minutes, FN10-10’s 4 and 6 points about 4 and 5, and FN12-10d’s 9 points about 8; FN17 had 250, 0.72 min a point, so FN17-6’s two 8-point parts have about 6 minutes each.
Conventions. Delays are in , the paper’s fan-out-of-one delay (the guide’s ), and FO4 , as FN10-5c states. Loads are counted in µm of gate at fF/µm, so fF is µm. A stage’s delay is its gain: its load over the input of the inverter that drives as hard, for a pull-down of equivalent width (devices in series combine like resistors, ), for a rising edge through a PFET of . high is precharge, high is the access, and is the gap from falling to rising.
FN10-5: the SRAM decode path, the bitline and the access time (26 points)
FN10-5, p7. As you learned in the design project, the access time of an SRAM is determined by the delay through the decode path as well as the time to perform the bitline access. Let’s consider these two components of the delay for a memory with 256 rows (8 bits of row address).
Consider the decode path shown above. Sixteen (16) domino NOR gates produce 16 precoded lines that then fanout two 256 race-based wordline decoders. Assume that the wordline drives 256 SRAM cells with access transistors and 100 fF of wire capacitance. Also assume that transistor gate cap is . All devices are minimum length. .
FN10-5’s decode path (Final 2010, p7, redrawn without the key’s handwriting). Widths in µm. The numerals I–V are this guide’s stage names; the load at the right is the paper’s “wordline load”, . “Precoded” and “fanout two” are printed so: read “predecoded” and “fan out to”.
Part (a): the decode path’s delay (10 points)
FN10-5a, p7. Estimate the delay of the decode path shown above (for the critical evaluation edge) as a multiple of the fanout-of-one (FO1) delay, . (10 points)
Hint
Recognize. The SRAM access path, with the gain rule of path sizing: a chain of transistor stages with widths, “as a multiple of ”, “critical evaluation edge”. About 9 minutes: five divisions, and the marks are in the loads.
On the paper.
- Gain = load / input: falling, (input NFET and foot in series); rising,
- Drain capacitance ignored; worst case, one NOR input high
- I ↓: ; load II, :
- II ↑: load (the printed 256X):
- III ↓: , input 6; load IV’s NFET only:
- IV ↓: , input 30; load V, 115:
- Word line, 2 access gates a cell: fF µm
- V ↑:
- Sum:
- (I–III, , before ; IV–V, , after it)
- Note: by the predecoder’s topology each line feeds 64: II 1.71, path ; say which you used
Watch out. One access gate per cell gives 612 fF, stage V 2.04 and : the key’s slip. A 6T cell has two access NFETs on its word line. The precharge PFETs are off on evaluation: they add neither drive nor load.
Answer: about (), with the word line at fF.
Part (b): the bitline’s delay (10 points)
FN10-5b, p8. Estimate the delay of the read access of an SRAM cell (as a multiple of ) assuming that the bitline must be pulled from to for detection. To do this, assume that the nFETs of the 6-T SRAM cell have width and that the total capacitance of the bitline is 250 fF. (10 points)
Hint
Recognize. The SRAM access path, the bitline: “read access of an SRAM cell”, “from to ”, a total bitline capacitance. About 9 minutes for a few lines: spend the spare on the size check.
On the paper.
- Read: the cell’s 0 side pulls its bitline down through access and pull-down, in series
- µm; input µm
- Load: µm of gate (the total: nothing added for drains)
- is the 50 % point, so the gain is the delay
- Size: about 4 times the decode path’s 21.57; the bitline dominates
Watch out. The access NFET alone gives , half the answer: the pull-down is in series with it.
Answer: about ().
Part (c): the access time, the cycle and a remedy (6 points)
FN10-5c, p8. If the fanout-of-four delay (FO4), , what is the approximate memory access time as a multiple of ? If a typical processor has a cycle time of 12-15 FO4, with most cycles including a memory access, why might this be a challenge? Name one technique for improving SRAM access time. (6 points)
Hint
Recognize. The SRAM access path, the total: “access time as a multiple of ”, “cycle time of 12-15 FO4”, “name one technique”. Three questions in about 5 minutes: a line or two each for the number, the reason and the remedy.
On the paper.
- The bitline starts when the word line is up:
- (detector at ; its own delay left out)
- , the paper’s: FO4
- to cycles
- An access in most cycles: slow the clock about 3 times, or pipeline the access over about 3 cycles
- Bitline : attack the bitline
- Sense amplifier at 50–100 mV instead of 1.25 V: the bitline term ÷ 12.5 at 100 mV
- Others: banks (shorter bitlines), a skewed detector, self-timing
Watch out. FO4 holds only with no drain capacitance; the paper fixes 3. Carry 5a’s 21.57, not the key’s 19.86 (which gives its 34 FO4), and answer all three questions: the key gives only the number.
Answer: about 35 FO4 (, divided by 3). That is 2.3–2.9 cycles of 12–15 FO4, so a processor that reads memory in most cycles must slow its clock about threefold or pipeline each access over about three cycles. One technique: a sense amplifier that fires at a 50–100 mV swing, which cuts the dominant bitline term more than tenfold (others: banking, a skewed detector, self-timing).
FN10-10: address bits for a 4k × 16 memory (10 points)
FN10-10, p17. Assume that I have a memory with a logical organization of .
FN10-10 prints no figure. This is the array it asks about: Chapter 18’s SRAM array (Lecture17 @ 57:57, redrawn). Its numbers are Chapter 18’s example, not FN10-10’s: a 1024 × 32 memory stored as 256 rows of 128 columns, its 10 address bits split 8 to the row decoder and 2 to the column multiplexer, 32 bits out.
Part (a): the address bits (4 points)
FN10-10a, p17. How many bits of address do I need? (4 points)
Hint
Recognize. Memory addressing: “logical organization of bits”, “how many bits of address”. About 4 minutes.
On the paper.
- One address names one word: bits
- 4k words
- : 12 bits
- Check: 1k takes 10 bits; 4k is 4 times as many, two bits more: 12
Watch out. The word width never enters. counts bits, and “16 bits” would name each bit on its own; the memory returns 16 at a time.
Answer: 12 address bits ().
Part (b): the column-multiplexing bits (6 points)
FN10-10b, p17. If the internal array is organized to be , how many bits of the address are needed for column multiplexing? Explain. (6 points)
Hint
Recognize. Memory addressing: “internal array organized to be ”, “column multiplexing”, “explain”. About 5 minutes; the explanation is the division.
On the paper.
- It fits:
- Rows: bits to the row decoder
- A row holds words of 16 bits
- Pick one of 16: a 16:1 column multiplexer, bits
- Check: , part (a)‘s count
Watch out. “column bits” picks single columns: bits would name things, 16 times too many. The multiplexer picks words, not bits.
Answer: 4 bits for column multiplexing. 8 bits pick one of the 256 rows; each row holds sixteen-bit words, so a 16:1 column multiplexer driven by the other bits picks the word ().
FN12-10d: a decoder-driven ROM table (9 points)
FN12-10, p17. In this problem, we consider some of the combinational logic circuit styles we studied in the course.
FN12-10d’s circuit (Final 2012, p17, redrawn). Each NFET’s gate sits on the row that selects it; its drain is on a column and its source on the ground line between two rows.
The table (9 points)
FN12-10d, p17. For the following circuit, complete the logic table shown below. (9 points)
Hint
Recognize. Memory addressing, a decoder-driven ROM: bubbled ANDs into rows, pseudo-NMOS columns under grounded-gate PFETs, “complete the logic table”. Read the columns as a PLA’s NOR plane. About 8 minutes, a minute a row of the table.
On the paper.
- An AND is high when its bubbled inputs are 0: the rows decode 000 to 111 top to bottom, the MSB
- One row high; each column a pseudo-NMOS NOR: a device on the selected row makes 0, else 1
- Each device belongs to the row its gate crosses; the ground line is only its source
- Devices: 000 ; 010 ; 100 ; 101 ; 110 ; 111 ; 001, 011 none
- : 000 → 001, 001 → 111, 010 → 010, 011 → 111
- 100 → 011, 101 → 110, 110 → 011, 111 → 101
- Check: 8 devices, 8 zeros
- Check: ‘s devices are on the rows with , so
Watch out. A device makes a 0, not a 1: it pulls its column low against the PFET. Read each device by the row its gate crosses, not by the row its drain sits beside.
Answer:
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
FN17-6: the dynamic row decoder and its column (about 16 points)
FN17-6, p13. Nearly all of you designed and implemented static row decoders for your SRAM array in the design project. Many of you found that these were pretty big (lots of pFETs) and difficult to pitch match in layout to the SRAM array. Some groups decided to implement this with a more area-efficient dynamic decoder, similar to that shown below. We show only one column of the SRAM.
FN17-6’s decoder and one column (Final 2017, p13, redrawn). The bars on at W0 and W2 (†) are hidden under drain wires on the scan; they are read in, since only that reading gives one row per address. and are this guide’s names for each decoder’s stage-1 and stage-2 nodes.
Part (a): the waveforms (8 points)
FN17-6a, p15. For the input waveforms shown, find the waveforms at , , , and data_out. (8 points; the value is overwritten on the scan and uncertain)
FN17-6a’s input waveforms (Final 2017, p15, redrawn without the key’s traces). The four empty rows are the answer.
Hint
Recognize. The dynamic row decoder: race-based NORs on and , one column with write stacks, given waveforms, “find the waveforms at”. About 6 minutes: find the row first, then go phase by phase.
On the paper.
- Read W0 = NOR(, ), W2 = NOR(, ): the only reading with one row per address
- : only W0 has both inputs 0, in every cycle; W1–W3’s stage 1 falls in the gap
- W0 rises at each (stage 2’s foot opens on a high stage-1 node)
- Stage 2’s PFET is on : W0 falls only at the next
- high: and precharged high
- Cycle 1, write = data_in = 1: ‘s stack pulls low fast; the cell stores 0 on its side
- Later cycles, write = 0: reads; the cell pulls low, more slowly
- stays low until restores it
- high throughout, so data_out throughout
Watch out. W0 does not fall with : the lecture’s stage 2 precharges on , this one on . data_out is not data_in: this column returns the complement.
Answer: W0 is selected (the only NOR whose inputs, and , are both low). W0 rises after each rise and falls after the next rise. : high in each precharge; pulled low in the first (the write of data_in = 1), discharged by the cell in each later (reads), and restored at each rise. : high throughout. data_out: low throughout.
Part (b): the non-overlap criterion (8 points)
FN17-6b, p16. What criterion does the dynamic decoder put on the nonoverlap window of phi1 and phi2? (8 points)
Hint
Recognize. The dynamic row decoder: “criterion”, “nonoverlap window of phi1 and phi2”. About 6 minutes: name the gap, the delay it must cover, and why.
On the paper.
- Stage 1 (foot on ) evaluates from : unselected rows’ nodes fall
- Stage 2 (foot on ) evaluates from : it fires on any row whose stage-1 node is still high
- A precharged node drives a dynamic gate directly (no domino inverter): a race
- If comes first, a wrong row’s stage 2 falls and cannot recover before precharge: a second word line
- Criterion: of the stage-1 NOR
- Worst case: one input high, through one NFET and the foot; add margin for skew
- The other gap, to : no race; the word line just stays up
Watch out. The condition is on the gap before , not the one after it. Give the reason, the race onto a second word line: the key states only the condition.
Answer: The non-overlap window from falling to rising must be longer than the evaluation time of the decoder’s stage-1 NOR, , with margin for skew. Every unselected row’s stage-1 node must have fallen before opens stage 2’s foot; otherwise stage 2 discharges on a wrong row and raises a second word line.