● According to the operation unit [i], [S] is set to the area specified by "[D]+3" (write pointer).
● "[D]+3" (write pointer) is incremented (+1).
● After incrementing, if "[D]+3 (write pointer) is equal to [S] (buffer size)", [D]+3 (write pointer)
is set to 0.
● "[S]+1" (stored data amount) is incremented (+1).
■
Format of data buffer (FIFO)
Buffer size
Stored data amount
Reading pointer
Writing pointer
・・・Size of the data buffer area
・・・Stored data amount (by operation unit)
・・・Relative number from [D]+4
・・・Relative number from [D]+4
Data buffer area
[D]
[D]+1
[D]+2
[D]+3
・・・・・・・・
■
Processing
1. Set [S] (write data) to the area specified by "[D]+3" (write pointer).
2. "[D]+3" (write pointer) is incremented (+1).
3. Increment (+1) "[D]+1" (stored data amount).
105
5
0
101
103
3
3
102
104
5
0
101
103
DT0
DT1
DT2
DT3
DT4
DT5
DT6
DT7
Example) 16 bits (US, SS)
4
4
102
201
DT0
DT1
DT2
DT3
DT4
DT5
DT6
DT7
DT8
105DT8
[S]…DT20 [D]…DT0
[D]
[D]+1
[D]+2
[D]+3
[D]+4
[D]+5
[D]+6
[D]+7
[D]+8
(Buffer size)
(Stored data amount)
(Reading pointer)
(0th)
(1st)
(2nd)
(3rd)
(4th)
[D]
[D]+1
[D]+2
[D]+3
[D]+4
[D]+5
[D]+6
[D]+7
[D]+8
③ Increment (+1)
② Increment (+1)
(Writing pointer)
(Buffer size)
(Stored data amount)
(Reading pointer)
(0th)
(1st)
(2nd)
(3rd)
(4th)
(Writing pointer)
① Because [D]+3 (writing
pointer) points at 3, [S]
is transferred to the 3rd
area of the buffer.
[i]…US,SS
■
Flag operations
Name Description
SR7
SR8
(ER)
To be set in the case of out-of-range in indirect access (index modification).
To be set when [D] (buffer size) is larger than 4096, or [D] (buffer size) is 0.
To be set when [D] +1 (stored data amount) is greater than or equal to [D] (buffer size).
To be set when [D] +3 (write pointer) is greater than or equal to [D] (buffer size).
To be set when the buffer area exceeds the upper limit of a specified device.
8.19 BUFW (Data Write)
WUME-FP7CPUPGR-12 8-41