
iiBusModuLes:sdRaMContRoLLeR(sdRaMC)
ii-4-18
ePson
s1C33L17teChniCaLManuaL
ii.4.2instruction/dataQueueBuffers
ii.4.2.1overview
The SDRAMC Module contains the SDRAMC Application Unit that is an interface unit to connect between the
C33 PE Core (AHB bus) and the SDRAM Interface Unit described in Section II.4.1. It generates the read, write,
address, data, and handshake signals to drive the SDRAM Interface Unit. Besides generating these signals, it also
includes a Data Queue Buffer and an Instruction Queue Buffer to realize the instruction pre-fetch function and to
increase the C33 PE Core memory performance.
SDRAM
interface
SDRAM
Queuebuffer
controller
Instruction
QueueBuffer
Data
QueueBuffer
Read/write
control
Address
register
Address
ToAHBbus
DataIn
DataOut
Read/write
signals
#WAIT
Address
comparator
SDRAMCApplicationUnit
FigureII.4.2.1.1Instruction/DataQueueBuffers
ii.4.2.2iQB(instructionQueueBuffer)
This is a queue buffer to pre-fetch instructions and consists of 16
× 16-bit D flip-flops. It is organized in 2 slots × 8
× 16 bits as shown in the figure below.
a[24:14]
IQBaddress
a[3:1]
Slot0
Slot1
a[13:4]
Slot0address
Slot1address
Buf0
Buf1
Buf2
Buf3
Buf4
Buf5
Buf6
Buf7
Buf0
Buf1
Buf2
Buf3
Buf4
Buf5
Buf6
Buf7
FigureII.4.2.2.1StructureofIQB
IQB acts as an instruction cache located between the CPU and SDRAM when it is enabled by setting IQB (D0/
0x301610) to 1.
iQB:InstructionQueueBufferEnableBitintheSDRAMApplicationConfigurationRegister(D0/0x301610)
When the CPU attempts to fetch the first instruction from the SDRAM after IQB is enabled, the SDRAMC Ap-
plication Unit pre-fetches 8 instructions from the SDRAM (including CPU aimed instructions) and stores them
in IQB's Slot 0. The CPU then gets the needed instruction from IQB. After that, the CPU can get the subsequent
instructions to be executed from IQB if IQB contains them (called as IQB Hit). If IQB does not contain the instruc-
tion to be executed next (called as IQB Not Hit), the SDRAMC Application Unit pre-fetches another 8 instruc-
tions (including CPU aimed instructions) from the SDRAM and stores them in IQB's Slot 1, then the CPU gets the
needed instruction from IQB's Slot 1. The two slots are used alternately like this and the CPU continues fetching
instructions from IQB while the routine to be executed is located in the SDRAM.
Each slot can store 8 instructions, so IQB always stores the pre-fetched data beginning with a 4-word (128 bits)
boundary address.