psx.wiki

CPU Timing on BIOS DMA2 List Shapes

Measures CPU loads, stores, line fills, SPU accesses and the BIOS shell's code path while DMA2 walks lists laid out like the ones the BIOS sends during its logo.

CPU Timing on BIOS DMA2 List Shapes
MachineSCPH-5501
Programfollowup14

Overview

Root counter 2 counts system clock cycles while the program runs CPU code alone and straight after DMA2 starts a list. Most rows are 100 turns of a short loop run from the instruction cache, and each row runs twice. After a row the program reads which node DMA2 had reached and when the list ended.1

The lists have four shapes. L0 is 1024 empty nodes in forward order, and L1 is an ordering table of 1024 entries in the order ClearOTagR() builds. L2 copies the layout of the list the BIOS sends on frame 399 of its logo. The first node holds no words and the second holds 5. The next 1018 nodes are empty, and the last four hold 8, 0, 6 and 6 words, all of them GP0 NOPs. L3 is L2 with the BIOS's own words: a six word environment node and then a 640 x 480 flat quadrangle at node 1. The last group adds L4, an ordering table of 1024 entries with three 6 word packets of GP0 NOPs, and L5, the same table with three GP0(30h) triangles of about 1, 64 and 4096 pixels.1

Table 1: Groups
Tag Rows
USX A RAM lw and an addu of its value d instructions later, and pointer chases
MDV DIVU or MULTU, k NOPs, MFLO, a RAM lw
ONK One RAM lw and p NOPs (p 5 to 16), the lw first or last in the turn
RLD A RAM sh, k NOPs, a read of root counter 2 saved each turn, a RAM lw
STP Two stores 0 to 6 NOPs apart, a store and a load, a store in a delay slot
FLX Calls into a routine whose cache lines are filled cold on every call
SPU SPU register loads and stores
SHX The BIOS shell's loops run from ROM, each with one change
BST 200 RAM stores during lists of 16 nodes of 16, 64 or 255 GP0 NOP words
UNF 512 NOPs from KSEG1 and from the cache during lists of 16 nodes
SRC A store that links a node ahead of DMA2 to a side node that ends the list
RPW The BIOS shell's code path through the logo window, cold and warm
DRS Stores to DMA registers and loads of DMA2 registers
L3X The FLX and SPU rows on L3
RP3 The RPW code path on L3
DRW The RPW code path on L4 and L5

See also:

Results

Loads and Uses

A RAM load whose value is used 7 instructions later in a turn of 10 took about 1,565 cycles alone and 2,339 to 2,353 during L0 or L2. With the use 9 instructions later the list time fell to about 1,900. In a turn of 13 the use at 7 or 9 gave about 2,340 during the list and the use at 12 gave about 2,030. The same rows took 1,857 to 1,887 cycles alone. The three pointer chases took 1,884 to 1,965 cycles alone and 2,589 to 2,595 during either list.1

One RAM load and p NOPs took the same time whether the load came first or last in the turn. During L0 the row stayed near 1,370 cycles from p 5 to p 6. From p 8 on the list time ran 50 to 150 cycles above the alone time.1

Table 2: Cycles for 100 turns of one RAM load and p NOPs
p Alone During L0
5 1,167 1,370
7 1,365 1,438
8 1,463 1,608
12 1,862 1,920
16 2,262 2,313

A DIVU, k NOPs, MFLO and a RAM load took about 4,660 cycles alone at k 0, 2 and 8, and 4,562 to 4,572 during L0 or L2. A MULTU in the same place took about 1,662 alone and 1,597 to 1,625 during the lists. These rows therefore ran about 50 to 100 cycles faster during a list than alone.1

Stores

Two RAM stores of the same width 40h apart took 570 to 579 cycles alone with no NOP between them, and each NOP added about 100. During L0, L1 or L2 they took 2,743 to 2,756 cycles at every gap from 0 to 6 NOPs, and SB, SH and SW gave the same times. A halfword store followed by a load of the same word took 1,471 to 1,481 cycles alone and 2,703 to 2,716 during a list. A load of a word in another line took 2,653 to 2,659 during a list.1

The RLD rows saved the counter each turn, so the time of every turn is in the output. Alone, most turns took 19 cycles at k 0 and 2, 21 at k 4 and 25 at k 8. During L0 most turns took 35 cycles at every k, and about every seventh turn took 36 to 41 cycles. At k 4 a few pairs of turns read 28 and 48. The totals during L0 were 3,662 to 3,687 cycles for every k.1

Stores to DMA registers, each writing back the value read, took 659 to 664 cycles for 100 turns alone and 1,136 to 1,142 during L0. Loads of D2_MADR and D2_BCR took 859 to 870 alone and 1,168 to 1,173 during L0.1

Line Fills

Each call in the FLX rows fills the routine's cache lines cold, because the program calls the routine and a twin 4 KB away in turn. A routine of 1 line of NOPs took 1,343 cycles for 100 calls alone and about 1,680 during a list. Each further line added about 900 cycles alone and about 1,530 during a list.1

Table 3: Cycles for 100 cold calls by line count
Lines Alone During L0, L1 or L2
1 1,333 to 1,343 1,677 to 1,681
2 2,228 to 2,236 3,205 to 3,212
4 4,063 to 4,070 6,262 to 6,270
8 7,737 to 7,740 12,378 to 12,381

Entering a 2 line routine at word 1, 2 or 3 instead of word 0 saved about 100 cycles for each word skipped, alone and during a list. A RAM load as the first word raised the call to 2,618 to 2,639 cycles alone and 4,417 to 4,424 during a list, and a RAM store as the first word to about 2,750 and 4,493 to 4,501. A load at word 2, 3 or 4 cost about 180 cycles less alone than a load at word 0 or 1, but the list time stayed at about 4,420. A call by JR took 2,621 cycles alone and 3,658 to 3,677 during a list. A call by JAL took 2,222 to 2,234 alone and 3,205 to 3,209 during a list.1

On L3 every FLX and SPU row ran within about 15 cycles of its alone time, except the SPU loads with 12 NOPs after each, which took about 95 cycles more. DMA2 stayed at node 2 for the whole row, and the list ended 198,544 to 202,373 cycles after its start. Root counter 1 counted 95 to 98 horizontal blanks over that time.1

SPU Registers

Four turns of 24 halfword loads from the SPU voice registers took 2,079 cycles alone with no NOPs after each load and about 2,170 with 2 to 12 NOPs. During L0, L1 or L2 the same rows took 2,587 to 2,627 cycles with 0 to 4 NOPs and 2,736 to 2,750 with 12. 100 turns of six SPU halfword stores took about 4,840 cycles alone and 6,245 to 6,257 during a list, whether the stores went to voice 16's registers or to KOFF, KON and EON.1

BIOS Shell Loops

The shell's loop at 800524DCh, run from ROM for 35 turns, took 1,905 to 1,915 cycles alone. Changing its loads to LW, fixing its addresses or moving its first word to the place it holds in the BIOS left the time unchanged, and removing the uses of its loaded values brought it to 1,513 to 1,559. The loop at 800531ACh took 666 to 684 cycles for 24 turns with its loads on a RAM table, and 980 to 989 with them on the SPU. During a list the SPU version took 1,305 to 1,320 and the RAM version 1,000 to 1,010.1

The byte copy at 800308D0h took 1,386 to 1,404 cycles for 58h bytes. Unrolled by 8 it took about 1,396 alone and about 2,368 during L0.1

Short Lists

The BST rows store 200 times during lists of 16 nodes. Two byte, halfword or word stores with no NOP between them took 566 to 580 cycles alone. During lists of 16, 64 and 255 word nodes they took about 880, 1,440 and 3,670 cycles, and the list ended at about 1,080, 1,835 and 4,865 cycles.1

Table 4: Cycles for 512 NOPs during lists of 16 nodes of k words
k KSEG1 Cache
Alone 3,167 to 3,175 526
0 3,230 599 to 603
16 3,448 to 3,453 718 to 730
64 4,005 to 4,010 1,153
128 4,750 to 4,756 1,880 to 1,890
255 6,227 to 6,234 3,356 to 3,361

Store Ahead of the List

The SRC rows read DMA2's MADR at node 31 to 33 of the list, then perform one access, then store a link at node m to a side node that ends the list. With m 4 or 8 nodes past the node read, DMA2 had passed node m before the link landed in every row. With m 16 nodes on, DMA2 took the link in every row. The access between the read and the store made no difference: a cold call, a RAM load, an SPU store or 0 to 8 cached NOPs all gave the same result.1

BIOS Code Path

The RPW group runs the BIOS shell's instruction path through the logo window from a flushed cache. Its loads at 800531CCh go to the SPU as they do in the BIOS. It samples root counter 2 and DMA2's node 17 times along the way, and the path took the same course on L0, L1 and L2. DMA2 reached node 140 at about 1,820 cycles, node 423 at about 5,770 and node 943 at about 12,940, and at about 14,100 cycles the list had ended. Warm, with each part called once before the list starts, the four parts took about 3,155, 3,020, 3,065 and 1,732 cycles on L0 or L1.1

On L3 the cold path ran faster. The 16th of its 17 samples came at 11,307 to 11,332 cycles, against 17,278 to 17,327 on L0, L1 and L2, and DMA2 stayed at node 2 throughout. The list ended at 198,708 to 202,057 cycles, when root counter 1 had counted 124 to 126 horizontal blanks.1

On L4 the path gave the same samples as on L0. The list ended at 17,394 to 17,412 cycles, when root counter 1 had counted 41 or 42 horizontal blanks. On L5 DMA2 was still at node 1021 at 14,104 cycles, and the list ended at 17,380 cycles. With no CPU code but the poll of CHCR2, L4 ended at 10,546 cycles and L5 at 11,006.1

Runs

3 October 2026

00RUN.txt

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

01USX.txt

===== 01 USX F14 USE AND CHASE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
DPCR as found: 33333B33 (the BIOS's in the window: 0F6F4B21, store-win.txt:2)
100 turns of a RAM lw and an addu of it d on, the turn padded (followup8 UDS), and of
pointer chases; on L0 and L2.
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
turn of 10, use 7 on: alone 1568; L0 2339/223/10748; L2 2339/217/10752; alone 1563; L0 2341/217/10718; L2 2353/218/10747;
turn of 10, use 9 on: alone 1568; L0 1899/174/10818; L2 1902/168/10808; alone 1557; L0 1895/168/10767; L2 1902/168/10815;
turn of 13, use 7 on: alone 1886; L0 2339/223/10751; L2 2331/216/10750; alone 1881; L0 2339/217/10708; L2 2331/216/10758;
turn of 13, use 9 on: alone 1887; L0 2342/223/10751; L2 2335/216/10759; alone 1877; L0 2343/217/10717; L2 2347/218/10742;
turn of 13, use 12 on: alone 1862; L0 2033/189/10793; L2 2033/183/10787; alone 1857; L0 2027/182/10757; L2 2034/183/10788;
lw p, NOP, lw 0(p): alone 1884; L0 2593/227/10966; L2 2589/221/10965; alone 1885; L0 2589/221/10918; L2 2593/221/10956;
lw p, NOP, NOP, lbu 0(p): alone 1965; L0 2589/227/10957; L2 2592/221/10955; alone 1960; L0 2592/221/10925; L2 2595/221/10965;
lw p, NOP, lw of the same word by s0: alone 1892; L0 2590/227/10955; L2 2591/221/10958; alone 1889; L0 2590/221/10924; L2 2589/221/10950;
Done.

02MDV.txt

===== 02 MDV F14 MULT DIV | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of divu or multu (1000 and 7), k NOPs, mflo, a RAM lw, 2 NOPs; on L0 and L2.
(opcode-encoding.txt:17-19, 36, 38)
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
divu, 0 NOPs: alone 4662; L0 4562/440/10748; L2 4570/435/10751; alone 4657; L0 4564/435/10704; L2 4572/435/10750;
divu, 2 NOPs: alone 4666; L0 4566/441/10743; L2 4564/435/10743; alone 4657; L0 4569/435/10701; L2 4572/435/10745;
divu, 8 NOPs: alone 4662; L0 4572/441/10744; L2 4562/435/10743; alone 4657; L0 4571/435/10702; L2 4562/434/10749;
multu, 0 NOPs: alone 1662; L0 1611/148/10787; L2 1608/142/10796; alone 1661; L0 1625/143/10754; L2 1609/142/10791;
multu, 2 NOPs: alone 1667; L0 1614/148/10784; L2 1597/141/10783; alone 1660; L0 1610/142/10746; L2 1613/142/10781;
Done.

03ONK.txt

===== 03 ONK F14 ONE LOAD P5 16 | 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, the lw first or last in the turn (followup6 ONE), on L0.
MADR and timer 2 read straight after the 100th turn.
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
lw first, p  5: alone 1167; L0 1370/127/10759; alone 1170; L0 1375/121/10732;
lw first, p  6: alone 1262; L0 1376/127/10773; alone 1263; L0 1374/121/10731;
lw first, p  7: alone 1365; L0 1438/127/10831; alone 1359; L0 1445/122/10793;
lw first, p  8: alone 1463; L0 1608/148/10787; alone 1458; L0 1608/142/10745;
lw first, p  9: alone 1562; L0 1668/156/10765; alone 1557; L0 1655/149/10717;
lw first, p 10: alone 1666; L0 1751/162/10779; alone 1657; L0 1750/156/10740;
lw first, p 11: alone 1762; L0 1828/171/10766; alone 1761; L0 1818/164/10730;
lw first, p 12: alone 1862; L0 1920/180/10771; alone 1857; L0 1913/173/10729;
lw first, p 13: alone 1962; L0 2018/188/10787; alone 1957; L0 2013/182/10741;
lw first, p 14: alone 2062; L0 2113/200/10753; alone 2057; L0 2119/194/10719;
lw first, p 15: alone 2162; L0 2210/209/10757; alone 2157; L0 2214/203/10725;
lw first, p 16: alone 2262; L0 2313/220/10749; alone 2257; L0 2315/214/10716;
lw last, p  5: alone 1170; L0 1374/127/10759; alone 1170; L0 1369/121/10720;
lw last, p  6: alone 1263; L0 1376/127/10773; alone 1262; L0 1369/121/10725;
lw last, p  7: alone 1365; L0 1441/127/10833; alone 1357; L0 1441/121/10799;
lw last, p  8: alone 1463; L0 1611/148/10787; alone 1458; L0 1598/141/10745;
lw last, p  9: alone 1562; L0 1665/155/10767; alone 1557; L0 1661/149/10720;
lw last, p 10: alone 1666; L0 1750/162/10782; alone 1657; L0 1762/157/10746;
lw last, p 11: alone 1762; L0 1826/171/10770; alone 1757; L0 1835/166/10727;
lw last, p 12: alone 1862; L0 1915/179/10772; alone 1857; L0 1924/174/10730;
lw last, p 13: alone 1962; L0 2020/188/10787; alone 1957; L0 2019/182/10744;
lw last, p 14: alone 2062; L0 2118/200/10765; alone 2057; L0 2116/194/10720;
lw last, p 15: alone 2162; L0 2219/210/10761; alone 2157; L0 2211/203/10726;
lw last, p 16: alone 2262; L0 2315/220/10756; alone 2257; L0 2319/215/10707;
Done.

04RLD.txt

===== 04 RLD F14 RELEASED WRITE | 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, lhu timer 2 (saved each turn to the scratchpad), a RAM lw;
alone and on L0: the total, then the 99 turn-to-turn counts of the timer read.
k 0 alone 1979, turns: 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 25 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 24 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
k 0 L0 3666/322/11035, turns: 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35
k 0 alone 1991, turns: 19 19 19 19 19 19 19 25 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 29 19 19 19 19 19 19 19 19 19 19 19 19 25 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 24 19 19 19 19 19 19 19 19 19 19 19 19
k 0 L0 3662/318/11005, turns: 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39
k 2 alone 1981, turns: 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 24 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 24 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19
k 2 L0 3663/322/11042, turns: 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35
k 2 alone 1985, turns: 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19 19 19 19 19 25 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 29 19 19 19 19 19 19 19 19 19 19 19 19 25 19 19 19 19 19 19 19 19 19 19 19 19 19 22 19 19 19 19 19 19 19 19
k 2 L0 3668/318/11003, turns: 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35
k 4 alone 2191, turns: 21 21 21 21 21 21 21 21 21 21 21 21 22 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21
k 4 L0 3684/323/11048, turns: 48 35 35 41 35 35 35 35 35 35 28 48 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 28 48 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 28 48 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35
k 4 alone 2191, turns: 23 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21 21 21 21 21 21 21 21 21 21 25 21 21
k 4 L0 3678/319/11005, turns: 48 35 35 40 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 28 48 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 28 48 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35
k 8 alone 2610, turns: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25
k 8 L0 3679/323/11035, turns: 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35
k 8 alone 2596, turns: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 28 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25 25 25 25 25 25 25 25 25 31 25
k 8 L0 3687/319/11015, turns: 35 35 35 35 35 35 40 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35 35 36 35 35 35 35 35 35 39 35 35 35 35 35 35 41 35 35 35 35 35 35 39 35 35 35 35 35 35 40 35 35 35 35 35 35
Done.

05STP.txt

===== 05 STP F14 STORE PAIRS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns from the cache of stores close together, on L0, L1 and L2 (sh/sb/sw v1 to
x_sbuf; the second store 40h on, in another line).
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
sh, 0 NOPs, sh: alone 577; L0 2754/223/11169; L1 2749/217/11130; L2 2743/217/11169; alone 570; L0 2744/217/11126; L1 2743/217/11135; L2 2751/217/11171;
sh, 1 NOPs, sh: alone 675; L0 2755/223/11169; L1 2756/217/11133; L2 2756/217/11180; alone 666; L0 2744/217/11127; L1 2749/217/11129; L2 2756/217/11170;
sh, 2 NOPs, sh: alone 762; L0 2748/223/11167; L1 2744/217/11131; L2 2748/217/11163; alone 762; L0 2754/217/11133; L1 2755/217/11131; L2 2748/217/11162;
sh, 3 NOPs, sh: alone 864; L0 2743/223/11166; L1 2744/217/11131; L2 2748/217/11167; alone 859; L0 2755/217/11131; L1 2749/217/11129; L2 2750/217/11170;
sh, 4 NOPs, sh: alone 962; L0 2755/223/11182; L1 2751/217/11137; L2 2755/217/11174; alone 959; L0 2745/217/11133; L1 2748/217/11129; L2 2750/217/11177;
sh, 5 NOPs, sh: alone 1062; L0 2748/223/11170; L1 2748/217/11128; L2 2749/217/11167; alone 1060; L0 2756/217/11136; L1 2750/217/11133; L2 2749/217/11169;
sh, 6 NOPs, sh: alone 1164; L0 2754/223/11168; L1 2749/217/11131; L2 2750/217/11170; alone 1159; L0 2749/217/11129; L1 2750/217/11131; L2 2751/217/11170;
sb, 0 NOPs, sb: alone 575; L0 2750/223/11176; L1 2750/217/11131; L2 2749/217/11172; alone 579; L0 2749/217/11130; L1 2756/217/11133; L2 2754/217/11169;
sb, 1 NOPs, sb: alone 672; L0 2744/223/11176; L1 2755/217/11134; L2 2755/217/11174; alone 666; L0 2748/217/11125; L1 2755/217/11137; L2 2745/217/11159;
sb, 2 NOPs, sb: alone 768; L0 2755/223/11178; L1 2749/217/11125; L2 2749/217/11169; alone 761; L0 2751/217/11131; L1 2743/217/11133; L2 2756/217/11180;
sb, 3 NOPs, sb: alone 862; L0 2749/223/11169; L1 2755/217/11132; L2 2749/217/11167; alone 865; L0 2745/217/11127; L1 2743/217/11135; L2 2744/217/11164;
sb, 4 NOPs, sb: alone 962; L0 2755/223/11175; L1 2750/217/11136; L2 2755/217/11174; alone 959; L0 2745/217/11133; L1 2748/217/11129; L2 2750/217/11177;
sb, 5 NOPs, sb: alone 1062; L0 2756/223/11176; L1 2755/217/11128; L2 2750/217/11170; alone 1058; L0 2749/217/11133; L1 2750/217/11131; L2 2756/217/11186;
sb, 6 NOPs, sb: alone 1163; L0 2754/223/11174; L1 2748/217/11121; L2 2750/217/11170; alone 1159; L0 2749/217/11129; L1 2750/217/11131; L2 2751/217/11170;
sw, 0 NOPs, sw: alone 575; L0 2750/223/11176; L1 2750/217/11131; L2 2749/217/11172; alone 579; L0 2749/217/11130; L1 2756/217/11133; L2 2754/217/11169;
sw, 1 NOPs, sw: alone 672; L0 2744/223/11176; L1 2755/217/11134; L2 2755/217/11174; alone 666; L0 2748/217/11125; L1 2755/217/11137; L2 2745/217/11159;
sw, 2 NOPs, sw: alone 768; L0 2755/223/11178; L1 2749/217/11125; L2 2749/217/11169; alone 761; L0 2751/217/11131; L1 2743/217/11133; L2 2756/217/11180;
sw, 3 NOPs, sw: alone 862; L0 2749/223/11169; L1 2755/217/11132; L2 2749/217/11167; alone 865; L0 2745/217/11127; L1 2743/217/11135; L2 2744/217/11164;
sw, 4 NOPs, sw: alone 964; L0 2756/223/11179; L1 2750/217/11136; L2 2755/217/11174; alone 959; L0 2745/217/11133; L1 2748/217/11129; L2 2750/217/11177;
sw, 5 NOPs, sw: alone 1062; L0 2756/223/11176; L1 2755/217/11128; L2 2750/217/11170; alone 1058; L0 2749/217/11133; L1 2750/217/11131; L2 2756/217/11186;
sw, 6 NOPs, sw: alone 1162; L0 2748/223/11165; L1 2749/217/11124; L2 2754/217/11180; alone 1159; L0 2755/217/11130; L1 2752/217/11137; L2 2745/217/11159;
sh, 0 NOPs, lhu of the same word: alone 1481; L0 2716/227/11080; L1 2715/221/11039; L2 2703/221/11074; alone 1475; L0 2711/221/11038; L1 2707/221/11036; L2 2707/221/11087;
sh, 4 NOPs, lhu of the same word: alone 1476; L0 2707/227/11069; L1 2708/221/11030; L2 2710/221/11070; alone 1471; L0 2709/221/11041; L1 2705/221/11036; L2 2710/221/11083;
sh, 0 NOPs, lhu of a word in another line: alone 1476; L0 2657/223/11069; L1 2658/217/11038; L2 2659/217/11080; alone 1482; L0 2654/217/11034; L1 2655/217/11036; L2 2654/217/11073;
sh, 4 NOPs, lhu of a word in another line: alone 1481; L0 2654/223/11072; L1 2657/217/11036; L2 2654/217/11073; alone 1475; L0 2653/217/11039; L1 2657/217/11037; L2 2657/217/11087;
sh in the delay slot of a taken forward bne, 3 NOPs: alone 862; L0 1441/124/10881; L1 1445/118/10834; L2 1445/118/10873; alone 857; L0 1438/118/10830; L1 1439/118/10828; L2 1437/118/10869;
sh in the delay slot of a not taken forward bne, 3 NOPs: alone 962; L0 1439/124/10873; L1 1439/118/10826; L2 1434/118/10863; alone 957; L0 1437/118/10822; L1 1440/118/10838; L2 1438/118/10863;
Done.

06FLX.txt

===== 06 FLX F14 LINE FILLS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
A cached loop calls a routine R and its twin 4 KB on (the same cache lines, another tag)
in turn, 100 calls, every one filling R's lines cold; on L0, L1 and L2.
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
a. R of 1 line of NOPs, by jal at word 0: alone 1343; L0 1677/127/11073; L1 1680/121/11026; L2 1680/121/11072; alone 1333; L0 1681/121/11033; L1 1678/121/11035; L2 1679/121/11070;
a. R of 2 lines of NOPs, by jal at word 0: alone 2236; L0 3211/227/11578; L1 3208/221/11530; L2 3205/221/11573; alone 2228; L0 3212/221/11540; L1 3212/221/11541; L2 3210/221/11572;
a. R of 4 lines of NOPs, by jal at word 0: alone 4070; L0 6270/427/12591; L1 6268/421/12546; L2 6262/421/12587; alone 4063; L0 6264/421/12541; L1 6262/421/12537; L2 6263/421/12592;
a. R of 8 lines of NOPs, by jal at word 0: alone 7740; L0 12380/827/14604; L1 12380/821/14558; L2 12378/821/14597; alone 7737; L0 12378/821/14563; L1 12378/821/14567; L2 12381/821/14602;
b. R of 2 lines, entered at word 1: alone 2140; L0 3106/227/11482; L1 3106/221/11427; L2 3105/221/11475; alone 2132; L0 3104/221/11430; L1 3109/221/11433; L2 3105/221/11465;
b. R of 2 lines, entered at word 2: alone 2023; L0 2994/227/11367; L1 2999/221/11325; L2 2993/221/11365; alone 2033; L0 2999/221/11325; L1 3000/221/11330; L2 2999/221/11375;
b. R of 2 lines, entered at word 3: alone 1927; L0 2901/227/11277; L1 2908/221/11232; L2 2902/221/11270; alone 1920; L0 2902/221/11232; L1 2901/221/11233; L2 2907/221/11275;
c. R of 2 lines, a RAM lw as its first word: alone 2639; L0 4417/327/11768; L1 4419/321/11719; L2 4418/321/11758; alone 2629; L0 4417/321/11725; L1 4424/321/11730; L2 4422/321/11768;
c. R of 2 lines, a RAM lbu as its first word: alone 2618; L0 4417/327/11765; L1 4423/321/11721; L2 4423/321/11760; alone 2639; L0 4419/321/11719; L1 4417/321/11719; L2 4423/321/11760;
c. R of 2 lines, a RAM lh as its first word: alone 2639; L0 4417/327/11768; L1 4419/321/11719; L2 4418/321/11758; alone 2629; L0 4417/321/11725; L1 4424/321/11730; L2 4422/321/11768;
c. R of 2 lines, a RAM sh as its first word: alone 2750; L0 4494/324/11882; L1 4498/318/11837; L2 4493/318/11884; alone 2755; L0 4498/318/11835; L1 4497/318/11841; L2 4501/318/11883;
c. R of 2 lines, a RAM sb as its first word: alone 2750; L0 4494/324/11882; L1 4498/318/11837; L2 4493/318/11884; alone 2755; L0 4498/318/11835; L1 4497/318/11841; L2 4501/318/11883;
c. R of 2 lines, a RAM sw as its first word: alone 2750; L0 4494/324/11882; L1 4498/318/11837; L2 4493/318/11884; alone 2755; L0 4498/318/11835; L1 4497/318/11841; L2 4501/318/11883;
d. R of 2 lines, a RAM lw at word 1 (1 after the fill's first word): alone 2630; L0 4417/327/11765; L1 4423/321/11721; L2 4423/321/11760; alone 2639; L0 4419/321/11719; L1 4417/321/11719; L2 4423/321/11760;
d. R of 2 lines, a RAM lw at word 2 (2 after the fill's first word): alone 2459; L0 4417/327/11763; L1 4417/321/11719; L2 4430/321/11773; alone 2449; L0 4417/321/11723; L1 4433/321/11737; L2 4417/321/11771;
d. R of 2 lines, a RAM lw at word 3 (3 after the fill's first word): alone 2456; L0 4426/327/11767; L1 4417/321/11717; L2 4419/321/11766; alone 2447; L0 4424/321/11726; L1 4417/321/11721; L2 4419/321/11764;
d. R of 2 lines, a RAM lw at word 4 (4 after the fill's first word): alone 2453; L0 4417/327/11763; L1 4421/321/11726; L2 4417/321/11766; alone 2445; L0 4417/321/11714; L1 4417/321/11715; L2 4430/321/11772;
e. R of 2 lines, reached by jal: alone 2234; L0 3209/227/11575; L1 3207/221/11535; L2 3205/221/11582; alone 2222; L0 3205/221/11536; L1 3207/221/11542; L2 3206/221/11581;
e. R of 2 lines, reached by a taken beq: alone 2432; L0 3254/227/11622; L1 3252/221/11575; L2 3247/221/11616; alone 2423; L0 3255/221/11579; L1 3255/221/11582; L2 3251/221/11612;
e. R of 2 lines, reached by a taken bne: alone 2426; L0 3256/227/11624; L1 3248/221/11584; L2 3252/221/11619; alone 2428; L0 3251/221/11578; L1 3256/221/11584; L2 3247/221/11616;
e. R of 2 lines, reached by jr from a register: alone 2621; L0 3660/272/11568; L1 3670/267/11531; L2 3666/266/11567; alone 2621; L0 3670/267/11531; L1 3658/266/11522; L2 3677/267/11570;
f. a RAM sh, then the call by jal: alone 2864; L0 4499/324/11871; L1 4495/318/11841; L2 4496/318/11881; alone 2864; L0 4499/318/11834; L1 4500/318/11841; L2 4493/318/11872;
g. the call by jal, a RAM lw in its delay slot: alone 2621; L0 4421/327/11769; L1 4420/321/11731; L2 4419/321/11766; alone 2631; L0 4424/321/11730; L1 4420/321/11731; L2 4423/321/11760;
Done.

07SPU.txt

===== 07 SPU F14 SPU REGISTERS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
SPU registers from the cache, on L0, L1 and L2 (i-o-map.txt:108-130; s2 = 1F801000h).
Every store writes back what was read, or 0 to KON and KOFF (no change, voice-flags.txt:4-12).
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 0 NOPs after each: alone 2079; L0 2613/123/12038; L1 2587/117/11984; L2 2592/117/12017; alone 2074; L0 2588/117/11987; L1 2593/117/11983; L2 2587/117/12020;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 2 NOPs after each: alone 2171; L0 2599/123/12032; L1 2600/117/11996; L2 2603/117/12034; alone 2167; L0 2605/117/11990; L1 2590/117/11986; L2 2598/117/12031;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 4 NOPs after each: alone 2171; L0 2627/124/12050; L1 2609/118/11997; L2 2615/118/12036; alone 2166; L0 2619/118/11995; L1 2604/118/11980; L2 2604/118/12022;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 12 NOPs after each: alone 2171; L0 2749/133/12079; L1 2750/127/12067; L2 2736/127/12091; alone 2166; L0 2741/127/12056; L1 2737/127/12053; L2 2749/127/12099;
b. the shell's L2 loop (800531ACh) from ROM, 24 turns, its lhu on the SPU, as in the BIOS: alone 989; L0 1320/95/11048; L1 1318/89/11013; L2 1317/89/11048; alone 980; L0 1305/89/10993; L1 1309/89/10999; L2 1315/89/11043;
b. the shell's L2 loop (800531ACh) from ROM, 24 turns, its lhu on a RAM table (followup5 SHL): alone 684; L0 1002/95/10729; L1 1003/89/10694; L2 1003/89/10731; alone 670; L0 1010/89/10695; L1 1000/89/10697; L2 1004/89/10732;
c. 100 turns of sh to voice 16's 1D04h, 1D00h, 1D02h, 1D06h, 1D08h, 1D0Ah, writing back
   0BFC 0000 0000 0200 8C7A DFED: alone 4844; L0 6252/623/10569; L1 6247/617/10524; L2 6252/617/10567; alone 4839; L0 6250/617/10533; L1 6252/617/10527; L2 6253/617/10562;
d. 100 turns of sh KOFF 0 0, KON 0 0, EON FFFF 003F (1D8Ch, 1D8Eh, 1D88h, 1D8Ah, 1D98h, 1D9Ah): alone 4836; L0 6252/623/10561; L1 6255/617/10526; L2 6251/617/10575; alone 4831; L0 6257/617/10528; L1 6245/617/10524; L2 6245/617/10560;
Done.

08SHX.txt

===== 08 SHX F14 SHELL LOOPS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
The BIOS shell's loops from ROM as chain j SHL ran them (followup5.c:150-215), alone, and
with one change each; 'line word' is the loop's first word's place in its cache line.
L1 (800524DCh) 35 turns, as chain j SHL, line word 2: alone 1908, 1911; alone 1911, 1909;
L1 (800524DCh) 35 turns, loads as lw, line word 2: alone 1913, 1912; alone 1911, 1905;
L1 (800524DCh) 35 turns, uses removed, line word 2: alone 1559, 1519; alone 1515, 1513;
L1 (800524DCh) 35 turns, addresses fixed, line word 2: alone 1914, 1906; alone 1906, 1915;
L1 (800524DCh) 35 turns, first word at the shell's line word, line word 3: alone 1913, 1912; alone 1911, 1905;
L2 (800531ACh) 24 turns, as chain j SHL, line word 2: alone 684, 671; alone 672, 677;
L2 (800531ACh) 24 turns, loads as lw, line word 2: alone 675, 667; alone 679, 673;
L2 (800531ACh) 24 turns, uses removed: does not apply (see the source)
L2 (800531ACh) 24 turns, addresses fixed, line word 2: alone 678, 674; alone 673, 666;
L2 (800531ACh) 24 turns, first word at the shell's line word, line word 3: alone 684, 667; alone 669, 679;
byte copy (800308D0h) 58h bytes, as chain j SHL, line word 2: alone 1404, 1393; alone 1386, 1392;
byte copy (800308D0h) 58h bytes, loads as lw: does not apply (see the source)
byte copy (800308D0h) 58h bytes, uses removed: does not apply (see the source)
byte copy (800308D0h) 58h bytes, addresses fixed, line word 2: alone 1398, 1399; alone 1386, 1392;
byte copy (800308D0h) 58h bytes, first word at the shell's line word, line word 0: alone 1402, 1388; alone 1389, 1392;
copy unrolled by 8: alone 1392; L0 2370/199/11019;
copy unrolled by 8: alone 1400; L0 2366/196/10989;
copy unrolled by 8, timer 2 read every 8th turn: alone 1479; 8-turn steps: 125 130 125 131 125 131 125 131 125 131 125; L0 2489/212/10997; 8-turn steps: 198 214 216 215 216 210 214 215 214 214 215;
copy unrolled by 8, timer 2 read every 8th turn: alone 1468; 8-turn steps: 125 126 125 129 125 131 125 131 125 131 125; L0 2491/209/10976; 8-turn steps: 201 215 214 215 215 210 214 216 215 214 214;
Done.

09BST.txt

===== 09 BST F14 STORES ON WORDS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
200 RAM stores (100 turns of two, 0 and 4 on), alone and during lists of 16 nodes of
k GP0 NOP words: k<k> cycles/list done.
followup4's C loop, RAM sb x200: alone 1221; k16 1447/1658; k64 2009/2382; k255 4236/5419; alone 1212; k16 1447/1624; k64 2009/2386; k255 4232/5415;
sb, 0 NOPs between: alone 575; k16 880/1090; k64 1435/1831; k255 3677/4869; alone 566; k16 879/1063; k64 1441/1837; k255 3677/4869;
sb, 2 NOPs between: alone 962; k16 1250/1450; k64 1802/2188; k255 4019/5223; alone 957; k16 1238/1418; k64 1792/2188; k255 4017/5209;
sh, 0 NOPs between: alone 580; k16 889/1089; k64 1441/1827; k255 3667/4859; alone 570; k16 882/1062; k64 1449/1835; k255 3663/4855;
sh, 2 NOPs between: alone 963; k16 1237/1447; k64 1797/2193; k255 4026/5218; alone 957; k16 1242/1422; k64 1799/2180; k255 4019/5223;
sw, 0 NOPs between: alone 575; k16 880/1090; k64 1435/1831; k255 3677/4869; alone 566; k16 879/1063; k64 1441/1837; k255 3677/4869;
sw, 2 NOPs between: alone 966; k16 1245/1445; k64 1802/2188; k255 4019/5223; alone 957; k16 1238/1418; k64 1792/2188; k255 4017/5209;
Done.

10UNF.txt

===== 10 UNF F14 UNCACHED FETCH | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
512 NOPs from KSEG1 (memory-map.txt:31) and from the cache, alone and during lists of
16 nodes of k GP0 NOP words (followup4 LFE): k<k> cycles/list done.
512 NOPs, KSEG1: alone 3175; k0 3230/3359; k16 3448/3625; k64 4010/4381; k128 4750/5402; k255 6227/7410; alone 3167; k0 3231/3326; k16 3453/3630; k64 4005/4392; k128 4756/5407; k255 6234/7417;
512 NOPs, KSEG0, cached: alone 526; k0 603/732; k16 718/934; k64 1153/1559; k128 1890/2564; k255 3356/4578; alone 526; k0 599/723; k16 730/930; k64 1153/1559; k128 1880/2566; k255 3361/4578;
Done.

11SRC.txt

===== 11 SRC F14 HELD WRITE RACE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
A RAM sh, then one access, then a store linking node m (m = the node MADR read 4, 8 or 16
on) to a side node: 1 DMA2 took it, 0 it had passed m; @ the node MADR read. L0, L1, L2.
cold call (R, 2 lines): L0 0@33 0@32 1@32; L1 0@32 0@32 1@33; L2 0@32 0@31 1@31; L0 0@32 0@32 1@32; L1 0@32 0@32 1@33; L2 0@32 0@31 1@31;
RAM lw: L0 0@32 0@33 1@32; L1 0@32 0@32 1@32; L2 0@31 0@32 1@31; L0 0@32 0@33 1@32; L1 0@32 0@32 1@32; L2 0@31 0@32 1@31;
SPU KOFF sh 0: L0 0@32 0@32 1@32; L1 0@32 0@32 1@32; L2 0@32 0@32 1@32; L0 0@32 0@32 1@32; L1 0@32 0@32 1@32; L2 0@32 0@32 1@32;
0 cached NOPs: L0 0@32 0@32 1@33; L1 0@33 0@32 1@32; L2 0@32 0@31 1@32; L0 0@33 0@32 1@32; L1 0@32 0@32 1@32; L2 0@32 0@32 1@31;
1 cached NOPs: L0 0@32 0@32 1@32; L1 0@33 0@32 1@32; L2 0@32 0@32 1@32; L0 0@32 0@32 1@32; L1 0@33 0@32 1@32; L2 0@31 0@31 1@32;
2 cached NOPs: L0 0@32 0@32 1@32; L1 0@33 0@32 1@32; L2 0@31 0@32 1@32; L0 0@32 0@33 1@32; L1 0@32 0@32 1@33; L2 0@31 0@31 1@32;
3 cached NOPs: L0 0@32 0@32 1@33; L1 0@32 0@32 1@32; L2 0@31 0@31 1@31; L0 0@32 0@32 1@32; L1 0@32 0@32 1@32; L2 0@31 0@32 1@32;
4 cached NOPs: L0 0@32 0@32 1@32; L1 0@32 0@32 1@32; L2 0@32 0@31 1@32; L0 0@32 0@32 1@32; L1 0@32 0@32 1@32; L2 0@32 0@31 1@32;
5 cached NOPs: L0 0@33 0@33 1@33; L1 0@32 0@32 1@32; L2 0@32 0@31 1@32; L0 0@33 0@31 1@32; L1 0@32 0@33 1@33; L2 0@32 0@32 1@32;
6 cached NOPs: L0 0@31 0@32 1@32; L1 0@33 0@33 1@33; L2 0@31 0@32 1@32; L0 0@32 0@33 1@33; L1 0@32 0@32 1@32; L2 0@32 0@32 1@32;
7 cached NOPs: L0 0@32 0@33 1@32; L1 0@33 0@32 1@32; L2 0@32 0@31 1@32; L0 0@32 0@32 1@32; L1 0@33 0@32 1@32; L2 0@31 0@32 1@31;
8 cached NOPs: L0 0@32 0@33 1@33; L1 0@32 0@33 1@33; L2 0@31 0@31 1@32; L0 0@33 0@33 1@33; L1 0@32 0@33 1@33; L2 0@31 0@31 1@32;
Done.

12RPW.txt

===== 12 RPW F14 RACE PATH | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
The window's path (followup11 RPM, its 800531CCh loads on the SPU, cut at the first
header sb), cold, timer 2 from the list's start/node: 3 points in each part, after it, the end.
L0: 1817/140 3269/244 4433/326 5774/423 7371/539 8666/635 9986/730 11359/829 12950/943 14117/E 14924/E 15791/E 16209/E 16560/E 16867/E 17301/E 17188/E; list done at 17384
L1: 1824/140 3273/244 4441/326 5774/423 7382/540 8655/635 9974/730 11351/829 12933/943 14104/E 14915/E 15784/E 16211/E 16551/E 16856/E 17293/E 17184/E; list done at 17376
L2: 1820/140 3267/244 4437/326 5769/423 7379/540 8662/635 9988/730 11359/829 12947/943 14150/E 14955/E 15819/E 16239/E 16584/E 16887/E 17318/E 17209/E; list done at 17401
L0: 1826/140 3275/244 4443/326 5775/423 7382/540 8661/635 9979/730 11352/829 12934/943 14099/E 14912/E 15779/E 16202/E 16547/E 16855/E 17283/E 17174/E; list done at 17366
L1: 1816/140 3272/244 4436/326 5770/423 7383/540 8659/635 9978/730 11350/829 12930/943 14104/E 14914/E 15775/E 16194/E 16534/E 16847/E 17278/E 17169/E; list done at 17364
L2: 1818/140 3267/244 4434/326 5767/423 7379/540 8661/635 9978/730 11349/829 12933/943 14133/E 14933/E 15799/E 16217/E 16559/E 16863/E 17294/E 17185/E; list done at 17377
L0: 1823/140 3268/244 4433/326 5766/423 7381/540 8659/635 9983/730 11353/829 12938/943 14112/E 14914/E 15780/E 16203/E 16547/E 16858/E 17286/E 17177/E; list done at 17374
L1: 1816/140 3262/244 4429/326 5763/423 7379/540 8655/635 9975/730 11352/829 12933/943 14099/E 14907/E 15775/E 16198/E 16541/E 16849/E 17286/E 17171/E; list done at 17369
L2: 1818/140 3273/244 4448/326 5781/423 7384/540 8666/635 9985/730 11365/829 12945/943 14143/E 14949/E 15818/E 16245/E 16585/E 16890/E 17327/E 17218/E; list done at 17410
Each part warm (called once before the list starts), on L0 and L1, three runs: its three
points and after it (part 3 also the end), then list done.
L0 part 0 warm: 1084/88 1813/145 2337/188 3152/253; list done at 11100
L0 part 1 warm: 852/71 1639/140 2278/192 3028/253; list done at 10951
L0 part 2 warm: 847/68 1565/131 2280/187 3066/238; list done at 11165
L0 part 3 warm: 388/29 814/57 1193/88 1736/133 end 1521/115; list done at 10917
L1 part 0 warm: 1085/88 1813/145 2340/188 3160/253; list done at 11104
L1 part 1 warm: 839/70 1625/139 2260/191 3008/252; list done at 10940
L1 part 2 warm: 853/68 1557/130 2275/186 3057/237; list done at 11168
L1 part 3 warm: 388/29 809/57 1192/88 1727/133 end 1515/115; list done at 10905
L0 part 0 warm: 1084/88 1812/145 2339/188 3155/253; list done at 11103
L0 part 1 warm: 851/71 1641/140 2282/192 3032/253; list done at 10960
L0 part 2 warm: 853/68 1569/131 2285/187 3069/238; list done at 11170
L0 part 3 warm: 384/29 812/57 1193/88 1733/133 end 1518/115; list done at 10909
L1 part 0 warm: 1090/88 1817/145 2342/188 3158/253; list done at 11110
L1 part 1 warm: 845/71 1637/140 2275/192 3023/253; list done at 10943
L1 part 2 warm: 845/68 1564/131 2277/187 3058/238; list done at 11153
L1 part 3 warm: 388/29 815/57 1198/88 1732/133 end 1519/115; list done at 10910
L0 part 0 warm: 1091/88 1815/145 2339/188 3155/253; list done at 11104
L0 part 1 warm: 846/71 1628/140 2264/192 3011/253; list done at 10942
L0 part 2 warm: 849/68 1568/131 2288/187 3074/238; list done at 11173
L0 part 3 warm: 388/29 814/57 1193/88 1736/133 end 1521/115; list done at 10917
L1 part 0 warm: 1085/88 1813/145 2340/188 3160/253; list done at 11104
L1 part 1 warm: 839/70 1625/139 2260/191 3008/252; list done at 10940
L1 part 2 warm: 853/68 1557/130 2275/186 3057/237; list done at 11168
L1 part 3 warm: 388/29 809/57 1192/88 1727/133 end 1515/115; list done at 10905
Done.

13DRS.txt

===== 13 DRS F14 DMA REG STORES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
100 turns of one DMA register access and 2 NOPs, alone and on L0 (as chain l IOL); the
stores write what was read (channels.txt:18-131; DICR flags are write 1 to clear, :129).
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
sw DPCR (its value), 33333B33: alone 664; L0 1136/124/10561; alone 659; L0 1142/118/10519;
sw DICR (its value, flags 0), 00000000: alone 664; L0 1139/124/10570; alone 659; L0 1142/118/10527;
sw D6_MADR (its value), 000EB914: alone 664; L0 1139/124/10570; alone 659; L0 1142/118/10527;
sw D6_BCR (its value), 00000400: alone 664; L0 1137/124/10564; alone 659; L0 1138/117/10527;
sw D6_CHCR (bits 24, 28 clear), 00000002: alone 664; L0 1142/124/10569; alone 659; L0 1138/117/10527;
lw D2_MADR, 00FFFFFF: alone 870; L0 1172/127/10565; alone 859; L0 1173/121/10535;
lw D2_BCR, 00000000: alone 864; L0 1168/127/10570; alone 859; L0 1170/121/10520;
Done.

14L3X.txt

===== 14 L3X F14 BIOS LIST ROWS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
G1's and G2's rows on L3, the BIOS's own list (a 640x480 quad at node 1) after its
environment node; h<n> hblanks (timer 1) from the list's start to the GPU idle.
Each row: alone (cycles), then L<shape> cycles/node at the end/list done; twice.
a. R of 1 line of NOPs, by jal at word 0: alone 1345; L3 1329/2/198706 h95; alone 1335; L3 1331/2/202296 h98;
a. R of 2 lines of NOPs, by jal at word 0: alone 2230; L3 2230/2/198635 h96; alone 2228; L3 2227/2/202229 h98;
a. R of 4 lines of NOPs, by jal at word 0: alone 4070; L3 4060/2/198631 h96; alone 4063; L3 4060/2/202320 h98;
a. R of 8 lines of NOPs, by jal at word 0: alone 7741; L3 7736/2/198632 h96; alone 7728; L3 7734/2/202204 h98;
b. R of 2 lines, entered at word 1: alone 2135; L3 2131/2/198603 h95; alone 2132; L3 2132/2/202151 h98;
b. R of 2 lines, entered at word 2: alone 2023; L3 2031/2/198678 h96; alone 2032; L3 2039/2/202300 h98;
b. R of 2 lines, entered at word 3: alone 1928; L3 1925/2/198658 h96; alone 1925; L3 1923/2/202210 h97;
c. R of 2 lines, a RAM lw as its first word: alone 2620; L3 2635/2/198605 h96; alone 2629; L3 2620/2/202019 h97;
c. R of 2 lines, a RAM lbu as its first word: alone 2620; L3 2635/2/198595 h95; alone 2630; L3 2625/2/202336 h98;
c. R of 2 lines, a RAM lh as its first word: alone 2620; L3 2635/2/198686 h96; alone 2638; L3 2623/2/202210 h98;
c. R of 2 lines, a RAM sh as its first word: alone 2761; L3 2748/2/198544 h96; alone 2744; L3 2749/2/202218 h97;
c. R of 2 lines, a RAM sb as its first word: alone 2761; L3 2753/2/198643 h96; alone 2755; L3 2753/2/202180 h98;
c. R of 2 lines, a RAM sw as its first word: alone 2757; L3 2745/2/198559 h96; alone 2753; L3 2743/2/202048 h97;
d. R of 2 lines, a RAM lw at word 1 (1 after the fill's first word): alone 2620; L3 2635/2/198670 h95; alone 2629; L3 2620/2/202229 h97;
d. R of 2 lines, a RAM lw at word 2 (2 after the fill's first word): alone 2456; L3 2451/2/199560 h96; alone 2445; L3 2453/2/202176 h98;
d. R of 2 lines, a RAM lw at word 3 (3 after the fill's first word): alone 2456; L3 2451/2/201042 h97; alone 2449; L3 2448/2/202283 h98;
d. R of 2 lines, a RAM lw at word 4 (4 after the fill's first word): alone 2456; L3 2451/2/202208 h97; alone 2447; L3 2453/2/202237 h97;
e. R of 2 lines, reached by jal: alone 2229; L3 2224/2/202137 h98; alone 2222; L3 2230/2/202210 h97;
e. R of 2 lines, reached by a taken beq: alone 2426; L3 2426/2/200719 h97; alone 2423; L3 2419/2/202299 h98;
e. R of 2 lines, reached by a taken bne: alone 2426; L3 2431/2/198644 h96; alone 2428; L3 2421/2/202355 h97;
e. R of 2 lines, reached by jr from a register: alone 2624; L3 2608/2/198571 h96; alone 2621; L3 2615/2/202042 h97;
f. a RAM sh, then the call by jal: alone 2876; L3 2865/2/198712 h95; alone 2861; L3 2861/2/202182 h98;
g. the call by jal, a RAM lw in its delay slot: alone 2620; L3 2635/2/198609 h96; alone 2629; L3 2620/2/202300 h98;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 0 NOPs after each: alone 2079; L3 2074/2/201868 h97; alone 2074; L3 2074/2/202176 h97;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 2 NOPs after each: alone 2176; L3 2166/2/202188 h97; alone 2166; L3 2166/2/201955 h98;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 4 NOPs after each: alone 2171; L3 2174/2/202232 h98; alone 2170; L3 2174/2/200924 h96;
a. 4 turns of lhu 1F801C0Ch+N*10h, N 0 to 23, 12 NOPs after each: alone 2171; L3 2261/2/202323 h97; alone 2167; L3 2267/2/200319 h97;
b. the shell's L2 loop (800531ACh) from ROM, 24 turns, its lhu on the SPU, as in the BIOS: alone 989; L3 979/2/202373 h97; alone 980; L3 978/2/198922 h95;
b. the shell's L2 loop (800531ACh) from ROM, 24 turns, its lhu on a RAM table (followup5 SHL): alone 678; L3 678/2/202204 h98; alone 679; L3 675/2/198666 h96;
c. 100 turns of sh to voice 16's 1D04h, 1D00h, 1D02h, 1D06h, 1D08h, 1D0Ah, writing back
   0BFC 0000 0000 0200 8C7A DFED: alone 4844; L3 4839/2/202358 h98; alone 4839; L3 4839/2/198662 h96;
d. 100 turns of sh KOFF 0 0, KON 0 0, EON FFFF 003F (1D8Ch, 1D8Eh, 1D88h, 1D8Ah, 1D98h, 1D9Ah): alone 4836; L3 4831/2/202207 h98; alone 4831; L3 4831/2/199326 h97;
Done.

15RP3.txt

===== 15 RP3 F14 RACE PATH L3 | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
The window's path cold on L3 (the BIOS's words and environment node), as RPW; h<n>
hblanks from the list's start to the GPU idle. Three runs.
L3: 933/2 1691/2 2390/2 3173/2 4057/2 4934/2 5687/2 6465/2 7305/2 8148/2 8955/2 9822/2 10240/2 10591/2 10898/2 11332/2 11219/2; list done at 198708 h124
L3: 937/2 1688/2 2383/2 3164/2 4043/2 4910/2 5659/2 6433/2 7272/2 8116/2 8929/2 9798/2 10216/2 10567/2 10876/2 11307/2 11198/2; list done at 199908 h125
L3: 938/2 1684/2 2379/2 3165/2 4053/2 4918/2 5672/2 6452/2 7287/2 8128/2 8947/2 9814/2 10237/2 10582/2 10890/2 11318/2 11209/2; list done at 202057 h126
Done.

16DRW.txt

===== 16 DRW F14 DRAWING PRIMS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
Row 7: a 1024 entry OT with three 6 word prims after entries 3, 2, 1: GP0 NOPs (L4) or
GP0(30h) triangles of about 1, 64, 4096 pixels (L5); with the path (as RPW) and alone.
L4: 1818/140 3266/244 4429/326 5767/423 7364/539 8659/635 9979/730 11352/829 12943/943 14144/E 14958/E 15821/E 16242/E 16587/E 16896/E 17329/E 17216/E; list done at 17412 h42
L4, no CPU code but the CHCR2 poll: list done at 10546 h5
L5: 1816/140 3268/244 4434/326 5768/423 7381/540 8662/635 9981/730 11353/829 12933/943 14104/1021 14947/E 15806/E 16224/E 16574/E 16882/E 17313/E 17204/E; list done at 17380 h42
L5, no CPU code but the CHCR2 poll: list done at 11006 h8
L4: 1818/140 3266/244 4429/326 5767/423 7364/539 8659/635 9979/730 11352/829 12943/943 14144/E 14958/E 15821/E 16242/E 16587/E 16896/E 17329/E 17216/E; list done at 17412 h42
L4, no CPU code but the CHCR2 poll: list done at 10546 h5
L5: 1816/140 3268/244 4434/326 5768/423 7381/540 8662/635 9981/730 11353/829 12933/943 14104/1021 14947/E 15806/E 16224/E 16574/E 16882/E 17313/E 17204/E; list done at 17380 h42
L5, no CPU code but the CHCR2 poll: list done at 11006 h7
L4: 1821/140 3270/244 4437/326 5771/423 7387/540 8663/635 9983/730 11360/829 12941/943 14141/E 14947/E 15810/E 16223/E 16568/E 16876/E 17311/E 17197/E; list done at 17394 h41
L4, no CPU code but the CHCR2 poll: list done at 10546 h5
L5: 1816/140 3268/244 4434/326 5768/423 7381/540 8662/635 9981/730 11353/829 12933/943 14104/1021 14947/E 15806/E 16224/E 16574/E 16882/E 17313/E 17204/E; list done at 17380 h42
L5, no CPU code but the CHCR2 poll: list done at 11006 h7
Done.

References


  1. ^ a b c d e f g h i j k l m n o p q r s SCPH-5501 output: followup14/01USX.txt and the files beside it, listed under Runs.

Categories: Hardware tests