psx.wiki

RAM Access During a DMA2 List

Measures how RAM loads and stores a few cycles apart are delayed while DMA2 walks a list of empty nodes.

RAM Access During a DMA2 List
MachineSCPH-5501
Programfollowup6

This is an old revision of this page, as edited by RemmyLee at 05:18, 23 October 2026. Edit this revision | Latest revision

Overview

Each row runs a loop of 100 turns from the instruction cache. Root counter 2 times it, and the program reads the counter with loads only. It runs once alone after a warm call and once straight after DMA2 starts a list of 1024 empty nodes, and the pair is repeated. No loaded value is used.1

Table 1: Groups
Tag Turn of the loop
ONE One RAM load and p NOPs (p 0 to 16)
LLS Two RAM loads of different words with k NOPs between them (k 0 to 12)
LLN Three or four RAM loads with k NOPs between each (k 0, 2, 4, 8)
SLS A RAM halfword store, k NOPs, and a load of a word in another cache line
LSS A RAM load, k NOPs, and a halfword store to a word in another cache line

Results

One Load a Turn

With 0 to 3 NOPs the loop took about 945 cycles alone and 1,306 to 1,313 cycles during the list. From 4 NOPs on each NOP added 100 cycles alone. That is one cycle a turn. During the list the time stayed at about 1,306 up to 6 NOPs. From 7 NOPs on it rose with the alone time and stayed 40 to 130 cycles above it.1

Table 2: Cycles for 100 turns of one RAM load and p NOPs
p Alone During the list
0 947 1,306
4 1,046 1,306
6 1,242 1,307
7 1,346 1,392
8 1,440 1,567
12 1,840 1,894
16 2,240 2,280

Several Loads a Turn

Two loads a turn took 1,452 to 2,364 cycles alone, rising with the NOPs between them, and 2,522 to 2,533 cycles during the list whatever the gap. Three loads took about 3,745 cycles during the list and four loads about 4,965. Each load in a turn therefore added about 1,220 cycles over 100 turns during the list.1

Store and Load

A halfword store followed by a load of another line took about 1,455 cycles alone with up to 5 NOPs between them. During the list it took 2,590 to 2,640 cycles at every gap. A load followed by a store took 1,251 to 1,269 cycles alone with no NOP between them and about 1,460 with 1 to 7 NOPs. During the list it took 2,590 to 2,594 cycles at every gap.1

Runs

1 October 2026

00RUN.txt

===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
5 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 00000000 TAR BFC02BAC DCIC 00000000 BadVaddr 00000480 BDAM 00000000
BPCM 00000000 SR 00000000 Cause 00000020 EPC 80016C84 PRId 00000002

01ONE.txt

===== 01 ONE F6 ONE LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of one RAM lw and p NOPs, cycles by timer 2, alone and straight after a DMA2
list of 1024 empty nodes starts (CHCR 01000401, GP1(04h)=2).
p  0: alone 947, during 1306, list done at 10733; alone 941, during 1306, list done at 10698;
p  1: alone 948, during 1306, list done at 10733; alone 945, during 1307, list done at 10696;
p  2: alone 949, during 1313, list done at 10745; alone 947, during 1312, list done at 10709;
p  3: alone 954, during 1309, list done at 10733; alone 943, during 1308, list done at 10707;
p  4: alone 1046, during 1306, list done at 10734; alone 1037, during 1306, list done at 10705;
p  5: alone 1149, during 1316, list done at 10744; alone 1145, during 1309, list done at 10700;
p  6: alone 1242, during 1307, list done at 10739; alone 1236, during 1312, list done at 10709;
p  7: alone 1346, during 1392, list done at 10816; alone 1336, during 1406, list done at 10789;
p  8: alone 1440, during 1567, list done at 10767; alone 1438, during 1576, list done at 10724;
p  9: alone 1540, during 1620, list done at 10742; alone 1533, during 1621, list done at 10703;
p 10: alone 1640, during 1714, list done at 10755; alone 1633, during 1700, list done at 10725;
p 11: alone 1740, during 1785, list done at 10744; alone 1733, during 1796, list done at 10707;
p 12: alone 1840, during 1894, list done at 10747; alone 1833, during 1885, list done at 10709;
p 13: alone 1940, during 1983, list done at 10757; alone 1933, during 1984, list done at 10720;
p 14: alone 2040, during 2088, list done at 10733; alone 2033, during 2087, list done at 10694;
p 15: alone 2140, during 2178, list done at 10737; alone 2133, during 2176, list done at 10700;
p 16: alone 2240, during 2280, list done at 10723; alone 2233, during 2285, list done at 10683;
Done.

02LLS.txt

===== 02 LLS F6 TWO LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of two RAM lw of other words (0 and 40h on), k NOPs between, alone and
during a list of 1024 empty nodes.
k  0: alone 1462, during 2527, list done at 10927; alone 1452, during 2526, list done at 10892;
k  1: alone 1664, during 2532, list done at 10938; alone 1661, during 2527, list done at 10898;
k  2: alone 1659, during 2528, list done at 10932; alone 1656, during 2527, list done at 10898;
k  3: alone 1659, during 2522, list done at 10930; alone 1656, during 2527, list done at 10902;
k  4: alone 1658, during 2522, list done at 10930; alone 1661, during 2523, list done at 10892;
k  5: alone 1664, during 2532, list done at 10938; alone 1650, during 2527, list done at 10894;
k  6: alone 1745, during 2531, list done at 10937; alone 1742, during 2527, list done at 10904;
k  7: alone 1859, during 2531, list done at 10939; alone 1858, during 2526, list done at 10897;
k  8: alone 1947, during 2526, list done at 10929; alone 1937, during 2529, list done at 10896;
k  9: alone 2048, during 2528, list done at 10944; alone 2039, during 2524, list done at 10900;
k 10: alone 2172, during 2524, list done at 10924; alone 2162, during 2528, list done at 10903;
k 11: alone 2259, during 2533, list done at 10945; alone 2258, during 2529, list done at 10892;
k 12: alone 2364, during 2526, list done at 10926; alone 2348, during 2526, list done at 10891;
Done.

03LLN.txt

===== 03 LLN F6 MORE LOADS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of n RAM lw of other words (0, 40h, 80h, C0h on), k NOPs between each,
alone and during a list of 1024 empty nodes.
n 3, k 0: alone 2068, during 3745, list done at 11131; alone 2063, during 3753, list done at 11096;
n 3, k 2: alone 2478, during 3742, list done at 11129; alone 2471, during 3749, list done at 11096;
n 3, k 4: alone 2478, during 3742, list done at 11126; alone 2465, during 3747, list done at 11090;
n 3, k 8: alone 3048, during 3748, list done at 11132; alone 3047, during 3745, list done at 11088;
n 4, k 0: alone 2689, during 4962, list done at 11321; alone 2674, during 4968, list done at 11291;
n 4, k 2: alone 3288, during 4968, list done at 11320; alone 3285, during 4973, list done at 11292;
n 4, k 4: alone 3289, during 4967, list done at 11323; alone 3278, during 4967, list done at 11286;
n 4, k 8: alone 4140, during 4962, list done at 11322; alone 4132, during 4962, list done at 11289;
Done.

04SLS.txt

===== 04 SLS F6 STORE LOAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of a RAM sh, k NOPs, a RAM lw of a word in another line, alone and during a
list of 1024 empty nodes.
k  0: alone 1462, during 2590, list done at 11046; alone 1456, during 2590, list done at 11008;
k  1: alone 1462, during 2590, list done at 11051; alone 1455, during 2597, list done at 11012;
k  2: alone 1456, during 2590, list done at 11046; alone 1467, during 2590, list done at 11014;
k  3: alone 1457, during 2589, list done at 11049; alone 1450, during 2597, list done at 11012;
k  4: alone 1458, during 2630, list done at 11058; alone 1451, during 2637, list done at 11018;
k  5: alone 1453, during 2624, list done at 11059; alone 1451, during 2634, list done at 11012;
k  6: alone 1555, during 2633, list done at 11054; alone 1547, during 2633, list done at 11022;
k  7: alone 1641, during 2627, list done at 11051; alone 1645, during 2629, list done at 11017;
k  8: alone 1743, during 2633, list done at 11053; alone 1750, during 2638, list done at 11020;
k  9: alone 1868, during 2619, list done at 11048; alone 1857, during 2617, list done at 11018;
k 10: alone 1946, during 2632, list done at 11055; alone 1941, during 2639, list done at 11018;
k 11: alone 2045, during 2627, list done at 11045; alone 2036, during 2627, list done at 11010;
k 12: alone 2166, during 2630, list done at 11050; alone 2149, during 2630, list done at 11013;
Done.

05LSS.txt

===== 05 LSS F6 LOAD STORE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of a RAM lw, k NOPs, a RAM sh to a word in another line, alone and during a
list of 1024 empty nodes.
k 0: alone 1269, during 2590, list done at 11051; alone 1251, during 2591, list done at 11016;
k 1: alone 1455, during 2592, list done at 11054; alone 1454, during 2590, list done at 11018;
k 2: alone 1468, during 2593, list done at 11058; alone 1447, during 2594, list done at 11022;
k 3: alone 1468, during 2590, list done at 11053; alone 1461, during 2592, list done at 11017;
k 4: alone 1459, during 2591, list done at 11052; alone 1451, during 2592, list done at 11018;
k 5: alone 1459, during 2591, list done at 11052; alone 1451, during 2592, list done at 11018;
k 6: alone 1468, during 2590, list done at 11053; alone 1461, during 2592, list done at 11012;
k 7: alone 1468, during 2593, list done at 11058; alone 1464, during 2590, list done at 11013;
k 8: alone 1546, during 2593, list done at 11049; alone 1538, during 2590, list done at 11011;
Done.

References


  1. ^ a b c d SCPH-5501 output: followup6/00RUN.txt and the files beside it, with the other runs listed under Runs.

Categories: Hardware tests