01.08.2013 Views

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Public Version<br />

General-Purpose <strong>Memory</strong> Controller www.ti.com<br />

from the NAND device in read mode (prefetch mode) or to store host data to be programmed into the<br />

NAND device in write mode (write-posting mode). The FIFO draining and filling (read and write) can be<br />

controlled either by the MCU through interrupt synchronization (an interrupt is triggered whenever a<br />

programmable threshold is reached) or the sDMA through DMA request synchronization, with a<br />

programmable request byte size in both prefetch or posting mode.<br />

The prefetch and write-posting engine includes a single memory pool. Therefore, only one mode, read or<br />

write, can be used at any given time. In other words, the prefetch and write-posting engine is a<br />

single-context engine that can be allocated to only one chip-select at a time for a read prefetch or a<br />

write-posting process.<br />

The engine does not support atomic command and address phase programming and is limited to linear<br />

memory read or write access. In consequence, it is limited to NAND data-stream access. The engine<br />

relies on the MCU NAND software driver to control block and page opening with the correct data address<br />

pointer initialization, before the engine can read from or write to the NAND memory device.<br />

Once started, the engine data reads and writes sequencing is solely based on FIFO location availability<br />

and until the total programmed number of bytes is read or written.<br />

Any host-concurrent accesses to a different chip-select are correctly interleaved with ongoing engine<br />

accesses. The engine has the lowest priority access so that host accesses to a different chip-select do not<br />

suffer a large latency.<br />

A round-robin arbitration scheme can be enabled to ensure minimum bandwidth to the prefetch and<br />

write-posting engine in the case of back-to-back direct memory requests to a different chip-select. If the<br />

GPMC.GPMC_PREFETCH_CONFIG1[23] PFPWENROUNDROBIN bit is enabled, the arbitration grants<br />

the prefetch and write posting engine access to the GPMC bus for a number of requests programmed in<br />

the GPMC.GPMC_PREFETCH_CONFIG1[19:16] PFPWWEIGHTEDPRIO field.<br />

The prefetch and write-posting engine is dedicated to data-stream access (as opposed to random data<br />

access). The engine does not include an address generator, and the request is limited to chip-select target<br />

identification. The prefetch/write-posting engine read or write request is routed to the access engine with<br />

the chip-select destination ID. After the required arbitration phase, the access engine processes the<br />

request as a single access with the data access size equal to the device size specified in the<br />

corresponding chip-select configuration.<br />

NOTE: The destination chip-select configuration must be set to the NAND protocol-compatible<br />

configuration for which address lines are not used (the address bus is not changed from its<br />

current value). Selecting a different chip-select configuration can produce undefined<br />

behavior.<br />

<strong>10</strong>.1.5.14.4.1 General Basic Programming Model<br />

The engine can be configured only if the GPMC.GPMC_PREFETCH_CONTROL[0] STARTENGINE bit is<br />

de-asserted.<br />

The engine must be correctly configured in prefetch or write-posting mode and must be linked to a NAND<br />

chip-select before it can be started. The chip-select is linked using the<br />

GPMC.GPMC_PREFETCH_CONFIG1[26:24] ENGINECSSELECTOR field.<br />

In both prefetch and write-posting modes, the engine uses byte or Word16 access requests, respectively,<br />

for an 8- or 16-bit-wide NAND device attached to the linked chip-select. The FIFOTHRESHOLD and<br />

TRANSFERCOUNT fields must be programmed accordingly as a number of bytes.<br />

When the GPMC.GPMC_PREFETCH_CONFIG1[7] ENABLEENGINE bit is set, the FIFO entry on the L3<br />

interconnect port side is accessible at any address in the associated chip-select memory region. When the<br />

ENABLEENGINE bit is set, any host access to this chip-select is rerouted to the FIFO input. Directly<br />

accessing the NAND device linked to this chip-select from the host is still possible through the<br />

GPMC.GPMC_NAND_COMMAND_i, GPMC.GPMC_NAND_ADDRESS_i, and<br />

GPMC.GPMC_NAND_DATA_i registers (where i = 0 to 7).<br />

The FIFO entry on the L3 interconnect port can be accessed with byte, Word16, or Word32 access size,<br />

according to little-endian format, even though the FIFO input is 32-bit wide.<br />

2162 <strong>Memory</strong> <strong>Subsystem</strong> SPRUGN4L–May 20<strong>10</strong>–Revised June 2011<br />

Copyright © 20<strong>10</strong>–2011, Texas Instruments Incorporated

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!