psx.wiki

CPU Access Time

Measures the CPU cycles that one load takes in each region of the memory map.

CPU Access Time
MachineSCPH-5501
Programcpu/access-time (ps1-tests)

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

Overview

The program runs a loop of 100 turns twice: once with a NOP, decrement and branch, and once with a load added after the decrement. The difference between the two, divided by 100, is the time of one load in CPU cycles. It does this for byte, halfword and word loads at one address in each region of the memory map and at several I/O ports.1

SPUCNT at 1F801DAAh is not word aligned, so its word column uses an LWL and LWR pair. The program prints the hundredths after the point without a leading zero: "1.3" means 1.03 cycles and "5.15" means 5.15 cycles.1

Results

The cycles per load were as follows. The figures are the whole cycles of the run of 25 September 2026; the hundredths moved by up to 0.5 between runs.2

Table 1: Load time by region (CPU cycles)
Region Address Byte Halfword Word
RAM 80000000h 5 5 5
BIOS ROM BFC00000h 7 13 25
Scratchpad 1F800000h 1 1 1
Expansion 1 1F000000h 7 13 25
Expansion 2 1F802000h 11 26 56
Expansion 3 1FA00000h 6 6 10
DMA control, JOY_STAT, SIO_STAT, RAM_SIZE, I_STAT, timer 0, GPUSTAT, MDEC status 1F801044h to 1F801824h 3 3 3
CD-ROM status 1F801800h 8 14 26
SPUCNT 1F801DAAh 18 18 39
Cache control FFFE0130h 1 1 1

The BIOS ROM and Expansion 1 cost the same at each width. A halfword load there takes about twice the time of a byte load and a word load about four times. Expansion 2 is slower again at every width.2

A byte read of a CD-ROM register costs 8 cycles. A halfword costs 14 and a word 26, so each byte after the first adds 6 cycles. The SPU costs 18 cycles for a byte or halfword and 39 for the LWL and LWR pair.2

RAM loads measured between 5.15 and 5.47 cycles across the seven runs. In every other region each figure rounds to the same whole cycle in all seven runs.2

Runs

25 September 2026

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.15     5.12     5.19    
BIOS       (0xbfc00000)    7.0     13.0     25.1     
SCRATCHPAD (0x1f800000)    1.14     1.3      0.96    
EXPANSION1 (0x1f000000)    7.2     13.0     25.1     
EXPANSION2 (0x1f802000)   11.13    26.6     56.1     
EXPANSION3 (0x1fa00000)    6.10     6.0      9.90    
DMAC_CTRL  (0x1f8010f0)    3.6      3.3      2.96    
JOY_STAT   (0x1f801044)    3.6      3.1      2.91    
SIO_STAT   (0x1f801054)    3.6      3.8      2.94    
RAM_SIZE   (0x1f801060)    3.18     3.15     3.15    
I_STAT     (0x1f801070)    3.9      3.1      2.91    
TIMER0_VAL (0x1f801100)    3.6      3.3      2.96    
CDROM_STAT (0x1f801800)    8.4     14.0     26.1     
GPUSTAT    (0x1f801814)    3.12     3.3      2.96    
MDECSTAT   (0x1f801824)    3.6      3.3      2.96    
SPUCNT     (0x1f801daa)   18.4     18.6     39.7     
CACHECTRL  (0xfffe0130)    1.14     1.3      0.96    
Done.

27 September 2026

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.18     5.23     5.32    
BIOS       (0xbfc00000)    7.1     13.1     25.1     
SCRATCHPAD (0x1f800000)    1.2      1.2      1.2     
EXPANSION1 (0x1f000000)    7.1     13.1     25.1     
EXPANSION2 (0x1f802000)   11.1     26.1     56.1     
EXPANSION3 (0x1fa00000)    6.1      6.1     10.1     
DMAC_CTRL  (0x1f8010f0)    3.2      3.2      3.2     
JOY_STAT   (0x1f801044)    3.2      3.2      3.2     
SIO_STAT   (0x1f801054)    3.2      3.2      3.2     
RAM_SIZE   (0x1f801060)    3.15     3.12     3.13    
I_STAT     (0x1f801070)    3.2      3.2      3.2     
TIMER0_VAL (0x1f801100)    3.2      3.2      3.2     
CDROM_STAT (0x1f801800)    8.1     14.1     26.1     
GPUSTAT    (0x1f801814)    3.2      3.2      3.2     
MDECSTAT   (0x1f801824)    3.2      3.2      3.2     
SPUCNT     (0x1f801daa)   18.1     18.1     39.19    
CACHECTRL  (0xfffe0130)    1.2      1.2      1.2     
Done.

27 September 2026 run 2

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.18     5.31     5.30    
BIOS       (0xbfc00000)    7.2     13.2     25.2     
SCRATCHPAD (0x1f800000)    1.3      1.3      1.3     
EXPANSION1 (0x1f000000)    7.2     13.2     25.2     
EXPANSION2 (0x1f802000)   11.2     26.2     56.2     
EXPANSION3 (0x1fa00000)    6.2      6.2     10.2     
DMAC_CTRL  (0x1f8010f0)    3.3      3.3      3.3     
JOY_STAT   (0x1f801044)    3.3      3.3      3.3     
SIO_STAT   (0x1f801054)    3.3      3.3      3.3     
RAM_SIZE   (0x1f801060)    3.17     3.13     3.18    
I_STAT     (0x1f801070)    3.3      3.3      3.3     
TIMER0_VAL (0x1f801100)    3.3      3.3      3.3     
CDROM_STAT (0x1f801800)    8.2     14.2     26.2     
GPUSTAT    (0x1f801814)    3.3      3.3      3.3     
MDECSTAT   (0x1f801824)    3.3      3.3      3.3     
SPUCNT     (0x1f801daa)   18.2     18.2     39.21    
CACHECTRL  (0xfffe0130)    1.3      1.3      1.3     
Done.

27 September 2026 run 3

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.18     5.31     5.30    
BIOS       (0xbfc00000)    7.2     13.2     25.2     
SCRATCHPAD (0x1f800000)    1.3      1.3      1.3     
EXPANSION1 (0x1f000000)    7.2     13.2     25.2     
EXPANSION2 (0x1f802000)   11.2     26.2     56.2     
EXPANSION3 (0x1fa00000)    6.2      6.2     10.2     
DMAC_CTRL  (0x1f8010f0)    3.3      3.3      3.3     
JOY_STAT   (0x1f801044)    3.3      3.3      3.3     
SIO_STAT   (0x1f801054)    3.3      3.3      3.3     
RAM_SIZE   (0x1f801060)    3.17     3.13     3.18    
I_STAT     (0x1f801070)    3.3      3.3      3.3     
TIMER0_VAL (0x1f801100)    3.3      3.3      3.3     
CDROM_STAT (0x1f801800)    8.2     14.2     26.2     
GPUSTAT    (0x1f801814)    3.3      3.3      3.3     
MDECSTAT   (0x1f801824)    3.3      3.3      3.3     
SPUCNT     (0x1f801daa)   18.2     18.2     39.21    
CACHECTRL  (0xfffe0130)    1.3      1.3      1.3     
Done.

27 September 2026 run 4

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.18     5.31     5.30    
BIOS       (0xbfc00000)    7.2     13.2     25.2     
SCRATCHPAD (0x1f800000)    1.3      1.3      1.3     
EXPANSION1 (0x1f000000)    7.2     13.2     25.2     
EXPANSION2 (0x1f802000)   11.2     26.2     56.2     
EXPANSION3 (0x1fa00000)    6.2      6.2     10.2     
DMAC_CTRL  (0x1f8010f0)    3.3      3.3      3.3     
JOY_STAT   (0x1f801044)    3.3      3.3      3.3     
SIO_STAT   (0x1f801054)    3.3      3.3      3.3     
RAM_SIZE   (0x1f801060)    3.17     3.13     3.18    
I_STAT     (0x1f801070)    3.3      3.3      3.3     
TIMER0_VAL (0x1f801100)    3.3      3.3      3.3     
CDROM_STAT (0x1f801800)    8.2     14.2     26.2     
GPUSTAT    (0x1f801814)    3.3      3.3      3.3     
MDECSTAT   (0x1f801824)    3.3      3.3      3.3     
SPUCNT     (0x1f801daa)   18.2     18.2     39.21    
CACHECTRL  (0xfffe0130)    1.3      1.3      1.3     
Done.

27 September 2026 run 5

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.29     5.44     5.40    
BIOS       (0xbfc00000)    7.6     13.6     25.6     
SCRATCHPAD (0x1f800000)    1.7      1.8      1.7     
EXPANSION1 (0x1f000000)    7.6     13.6     25.6     
EXPANSION2 (0x1f802000)   11.6     26.6     56.6     
EXPANSION3 (0x1fa00000)    6.6      6.6     10.6     
DMAC_CTRL  (0x1f8010f0)    3.7      3.7      3.7     
JOY_STAT   (0x1f801044)    3.7      3.7      3.7     
SIO_STAT   (0x1f801054)    3.7      3.7      3.7     
RAM_SIZE   (0x1f801060)    3.15     3.17     3.16    
I_STAT     (0x1f801070)    3.7      3.7      3.7     
TIMER0_VAL (0x1f801100)    3.7      3.7      3.7     
CDROM_STAT (0x1f801800)    8.8     14.6     26.6     
GPUSTAT    (0x1f801814)    3.7      3.7      3.7     
MDECSTAT   (0x1f801824)    3.7      3.7      3.7     
SPUCNT     (0x1f801daa)   18.6     18.6     39.25    
CACHECTRL  (0xfffe0130)    1.7      1.7      1.8     
Done.

28 September 2026

02ACC.txt

===== 02 ACC CPU ACCESS TIME | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/access-time
Test CPU access time to different parts of memory map.
There are no assertions - please manually compare your results with provided psx.log.

SEGMENT    (   ADDRESS)    8bit    16bit    32bit    (cpu cycles per bitsize)
RAM        (0x80000000)    5.22     5.40     5.47    
BIOS       (0xbfc00000)    7.6     13.6     25.6     
SCRATCHPAD (0x1f800000)    1.7      1.8      1.7     
EXPANSION1 (0x1f000000)    7.6     13.6     25.6     
EXPANSION2 (0x1f802000)   11.6     26.6     56.6     
EXPANSION3 (0x1fa00000)    6.6      6.6     10.6     
DMAC_CTRL  (0x1f8010f0)    3.7      3.7      3.7     
JOY_STAT   (0x1f801044)    3.7      3.7      3.7     
SIO_STAT   (0x1f801054)    3.7      3.7      3.7     
RAM_SIZE   (0x1f801060)    3.15     3.17     3.16    
I_STAT     (0x1f801070)    3.7      3.7      3.7     
TIMER0_VAL (0x1f801100)    3.7      3.7      3.7     
CDROM_STAT (0x1f801800)    8.8     14.6     26.6     
GPUSTAT    (0x1f801814)    3.7      3.7      3.7     
MDECSTAT   (0x1f801824)    3.7      3.7      3.7     
SPUCNT     (0x1f801daa)   18.6     18.6     39.25    
CACHECTRL  (0xfffe0130)    1.7      1.7      1.8     
Done.

References


  1. ^ a b ps1-tests, cpu/access-time. https://github.com/JaCzekanski/ps1-tests.

  2. ^ a b c d SCPH-5501 output: main/02ACC.txt and the files beside it, with the other runs listed under Runs.

Categories: Hardware tests