The i4002 RAM array is physically and electrically constructed of 20 rows by 16 columns of DRAM cells. The 16 columns are grouped into 4-bit wide "registers". This is much the way it is depicted in the Intel documentation.
This arrangement means all RAM operations -- read, writes, and refreshes -- act on an entire row at a time. The selection of one of the four 4-bit wide registers is handled by multiplexing and not by addressing.
Now let's take a look at what happens in each phase of the execution of an instruction.
The Intel documentation describes the MCS-4 system as having eight non-overlapping phases (A1, A2, A3, M1, M2, X1, X2, X3). Internally, however, there are 16 overlapping phases: A11, A12, A21, A22, and so on to X31 and X32. The screen capture from the Xilinx ISIM simulator makes these phase relationships clearer.
With this in mind we can talk about RAM operations. Let's start with the refresh cycle, which occurs during the M1 and M2 phases when the RAM array is otherwise idle.
- During the M11 phase, CLK1 causes all column sense lines to be precharged.
- During the M12 phase, the refresh row counter selects a row to be refreshed. CLK2 causes the selected row to be read onto the column sense lines.
- During the M22 phase, the selected row is rewritten with the data read during the M12 phase.
Now let's look at the RAM array read and write operations which occur during the X1 and X2 phases of instruction execution:
- During the X11 phase, CLK1 causes all column sense lines to be precharged to a "high" state.
- During the X12 phase, a row is selected based on the most recent SRC instruction, or the low two bits of OPA for status register read and write instructions. CLK2 causes the selected row to be read onto the column sense lines.
- During the X21 phase, if the current operation is a read, the data from the selected register is gated onto the data bus.
- During the X22 phase, if the current operation is a write, the selected row is written. The previously selected register receives the data from the data bus, while the other registers in the row receive the data read during the X12 phase.
One of the specified behaviors of the i4002 is that asserting the RESET line for a sufficient period results in resetting all contents to zero. This is done by inhibiting the RAM row read operations. This causes the refresh sequence to write zeros into the RAM, though this requires RESET to be asserted for 32 complete eight-phase cycles. The RESET line also inhibits the data bus multiplexer gate signals, preventing data bus values from being written unintentionally.
No comments:
Post a Comment