Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Cache explorer - free drive caching test tool (Read 43019 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Cache explorer - free drive caching test tool

Reply #26
Just trying with a Plextor PA-230A - I have a hunch this drive does not cache (on re-reads of bad sectors it does not always take the same minimum number, so bad data is coming from somewhere on a re-read).

cacheex reports values all over the place (300KB to 1MB), my own routine also does the same....it is a tough Hombre.

@spath the machine it is tested on is a dual core machine - just want to check your timing routine is aligned to a specific processor (ie if using queryperformancecounter it will return different values from the different cpus). Don't really want to pull the drive to a single cpu system if not needed.

Cache explorer - free drive caching test tool

Reply #27
Just trying with a Plextor PA-230A - I have a hunch this drive does not cache (on re-reads of bad sectors it does not always take the same minimum number, so bad data is coming from somewhere on a re-read).
cacheex reports values all over the place (300KB to 1MB), my own routine also does the same....it is a tough Hombre.

Interesting, what is your method ?
@spath the machine it is tested on is a dual core machine - just want to check your timing routine is aligned to a specific processor (ie if using queryperformancecounter it will return different values from the different cpus). Don't really want to pull the drive to a single cpu system if not needed.

Nope, it's not "bad MP system proof". As Microsoft says, on a correct MP system we
should not have to care about procesor affinity when using QueryPerformanceCounter,
but I'll fix it anyway and release a new version this weekend. Thanks for the tip.

Cache explorer - free drive caching test tool

Reply #28
>release a new version this weekend. Thanks for the tip.

I doubt it is that, but want to be sure, I think it is down to this plextor type.

>Interesting, what is your method ?

You tell me yours and I will tell you mine?

Loop frame 0 to frame 1000, Rip LBA 0, rip LBA n (0 to 1000) and time. Store all times and look for a jump in time (against a running average).

I might rethink the routine to see if I can get it better, pehaps time the LBA 0 rip instead. What is yours?

Cache explorer - free drive caching test tool

Reply #29
Loop frame 0 to frame 1000, Rip LBA 0, rip LBA n (0 to 1000) and time. Store all times and look for a jump in time (against a running average).

I might rethink the routine to see if I can get it better, pehaps time the LBA 0 rip instead. What is yours?

It's the same, except that I trigger only when a new LBA0 rip time exceeds the previous
LBA0 rip time multiplied by a factor (-m sets the loop max value and -x sets the factor).
If you trigger on all time jumps this can explain the 1 sector difference, but the algorithms
are so close that we should always get the same values (+/-1). In any case, I'm convinced
that reading back LBA0 is really better than the old "forward only" method, which on some
very fast drives gave me the illusion of an infinite cache.

Cache explorer - free drive caching test tool

Reply #30
Further news on this...I changed the drive (plextor px-230a) to a single processor machine, cachex tends to detect 588 frames (most of the time), my program also detects this but I am not beleving it (as mentioned before I have seen this drive return different results during 2 sector re-reads).

So I have tried to come up with a simple test to determine a Yes / No does it cache before moving onto the detection routine. This is what I have at the moment:

A) it reads 5000 frames - 2 frames at a time and times.
B) reads 5000 frames - 2 frames, then re-reads those 2 fames before moving onto next 2 frames and times.

Now if the drive cached (ie took the 2nd 2 frame reread from the cache) then the (b) read pass should be longer than (a) pass but not a huge amount (as the second read comes from cache). The times for the plextor are:

a) 6 seconds
b) 13 seconds

This says to me this plextor does not cache. Thoughts? I have another drive that cleary does not cache:

a) 33 seconds
b) 400 seconds

Cache explorer - free drive caching test tool

Reply #31
You could add some additional logic (e.g. C = read double-frames four (4) times) assuming we're not approaching the minimum known cache size with a double frame.  Then test the relavent time difference between A and B vs. B and C. 

If B is right between A and C then it is caching, but if B is closer to C then it is not caching?  The definition of "closer" might need to be experimentally obtained?  Hmm, that first part doesn't sound right.  Hmm.  Nope, it's more complicated than that as there appear to be some resyncing issues with the second drive example that might be optimized around in newer drives regardless of cache enabled status.

Perhaps throwing out the A-type results and working only with the distances between B/C/D tests (2/4/6 rereads) might be useful?  Or perhaps the time difference of those three, but with A subtracted from all of them?

Perhaps comparing against interleaved reads X,X-1,X+1  then  (X+2),(X+2)-1,(X+2)+1, ..., etc., might give some numbers that would be useful?

It might be useful to get an idea of the possible cache algorithms and/or resync algorithms at work...

-brendan

Cache explorer - free drive caching test tool

Reply #32
My test is a simple:

if B > (A * 2)  then it does not cache (the extra time will come from having to move the head back)

Cache explorer - free drive caching test tool

Reply #33
A) it reads 5000 frames - 2 frames at a time and times.
B) reads 5000 frames - 2 frames, then re-reads those 2 fames before moving onto next 2 frames and times.

Now if the drive cached (ie took the 2nd 2 frame reread from the cache) then the (b) read pass should be longer than (a) pass but not a huge amount (as the second read comes from cache). The times for the plextor are:

a) 6 seconds
b) 13 seconds

This says to me this plextor does not cache. Thoughts? I have another drive that cleary does not cache:

a) 33 seconds
b) 400 seconds

To me it says that the Plextor caches.

For a straight cache reloading strategy, the time difference between B) and A) is a linear
function of the total size read (it's independent of the cache size). Also the bigger the cache,
the closer B_time will be of 2*A_time, so for 588 sectors it makes sense (the ratio between
B and A is much bigger for your second drive). Also 588 sectors is a common result for Plextor
drives, so it confirms my opinion.

Quote
I'll fix it anyway and release a new version this weekend.

Not done yet because of insane work pressure, but it's still on the list.

Cache explorer - free drive caching test tool

Reply #34
Trying the test on a PX708a (without FUA disable) it takes 5 seconds to do test a, and 5 seconds to do test b as you would expect if it was just reading from ram, the 708 has a similar cache size.

With cache it should't take more than 2x the orignal time, otherwise it is slower than a drive without cache, so what would be the point of cache.

>588 sectors is a common result for Plextor

The drive might be doing something else other than loading a cache every 588, not sure what though.

This drive (230a) is quite a new plextor drive, you would think if it cached it would work with FUA which it does not, Plextools pro would not be able to clear the cache of this drive.

...also I have seen a 230a on a loop when re-reading the same sector give different values on the re-reads, in that instance the result did not come from the cache.

Can you think of a test that can be certain wether a drive caches or not?

Cache explorer - free drive caching test tool

Reply #35
Code: [Select]
D:\Stuff>cachex -i -c -n 3 q:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on Q is  ATAPI    COMBO52XMAX      1.20

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
[+] Testing cache line size:
no cache detected
no cache detected
no cache detected

This matches what Feurio reports where as
Code: [Select]
Drive on P is  ASUS     CRW-5224A        1.70

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
[+] Testing cache line size:
no cache detected
no cache detected
no cache detected

I am pretty sure that Feurio reports that the Asus caches.

Cache explorer - free drive caching test tool

Reply #36
Code: [Select]
CacheExplorer 0.8 - spath@cdfreaks.com

Drive on D is  HL-DT-ST DVDRAM GSA-4167B DL11

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
[+] Plextor flush command: accepted
[+] Plextor flush tests: 4/5

C:\Documents and Settings\All Users\Tiedostot\Lataus\cachex>

What does a result of 4/5 indicate?

Cache explorer - free drive caching test tool

Reply #37
for fun, I did this to test the program:


CacheExplorer 0.8 - spath@cdfreaks.com

Drive on D is  SAMSUNG  CD-ROM SH-152A  C505

  • Buffer size: 128 kB
  • Supported read commands: BEh
  • Testing cache line size:
    no cache detected
    no cache detected
    no cache detected
  • Testing cache line numbers:
    1 1 1
  • Testing cache disabling: not supported

    CacheExplorer 0.8 - spath@cdfreaks.com

    Drive on G is  PLEXTOR  CD-R  PX-230A  1.02

  • Buffer size: 2048 kB, read cache is enabled
  • Supported read commands:
  • Plextor flush command: rejected
  • Testing cache line size:
  • Testing cache line numbers:
  • Testing cache disabling: not supported

    ~D

Cache explorer - free drive caching test tool

Reply #38
This drive (230a) is quite a new plextor drive, you would think if it cached it would work with FUA which it does not, Plextools pro would not be able to clear the cache of this drive.

The PX-230A isn't made by Plextor, so why would you expect it to work with the FUA command?

Cache explorer - free drive caching test tool

Reply #39
Drive on G is  PLEXTOR  DVDR  PX-760A  5a02

  • Buffer size: 2048 kB, read cache is enabled
  • Supported read commands: BEh D8h
  • Plextor flush command: accepted
  • Plextor flush tests: 3/3
  • Testing cache line size:
    581 kB / 253 sectors
    581 kB / 253 sectors
    581 kB / 253 sectors
  • Testing cache line numbers:
    1 1 1
  • Testing cache disabling: not supported

    decent, flush before reading a second time can avoid Cache DAE issues re: secure ripping, I haven't looked much into this drive model yet.  I need more googlin' time, but I have not confirmed of DAE cache issue with this drive model.  Don't fix it/flush it if it's not broken, yeah know?

    ~D

    I forgot to say thank you Spath.  I'm going to go hack around in cdparanoia a bit.

Cache explorer - free drive caching test tool

Reply #40
> so why would you expect it to work with the FUA command?

Plextor would have to be able to flush the cache if there was one in Plextools. I am guessing that Plextor also modify the firmware themselves.

Cache explorer - free drive caching test tool

Reply #41
> so why would you expect it to work with the FUA command?

Plextor would have to be able to flush the cache if there was one in Plextools. I am guessing that Plextor also modify the firmware themselves.

That sounds reasonable. 

Cache explorer - free drive caching test tool

Reply #42
> Trying the test on a PX708a (without FUA disable) it
> takes 5 seconds to do test a, and 5 seconds to do
> test b as you would expect if it was just reading
> from ram, the 708 has a similar cache size.

I do not expect a) and b) to take the same time when
b) means reading two times the number of sectors of a),
even cached. For 5000/588 a drive would load the cache
8 times and read 2492 times from the cache. So reading
from the cache would have to be thousands of times
faster than reading from the disc to be neglectible in b),
and I've never seen any ratio higher than 200.

> With cache it should't take more than 2x the orignal
> time, ...

Well, it's true for just cache vs disk reading, but we are also
timing everything the firmware does like the ATAPI overhead,
what your OS does and so on. At 13 seconds you consider it
does not cache, under 12 seconds you would have said it
does : it's too close for me, especially compared to the factor
12 for your real non-caching drive.

> ... otherwise it is slower than a drive without cache,
> so what would be the point of cache.

No, a drive without cache would take much more time for
both a) and b) than a caching drive.

> The drive might be doing something else other than loading
> a cache every 588, not sure what though.

Maybe, but in a burst read how fast are sectors read after 588 ?
If all sectors 6xx are read much faster than sector 588, then
some caching must be involved.

> This drive (230a) is quite a new plextor drive, you would think if
> it cached it would work with FUA which it does not, Plextools pro
> would not be able to clear the cache of this drive.

You mean it doesn't work both with normal FUA and Plextools'
special FUA ? The simplest is to get latest Plextools and try
extracting a bad disc with this drive with Bustrace running,
then you'll see how it handles cache during re-reads.

> ...also I have seen a 230a on a loop when re-reading the same sector
> give different values on the re-reads, in that instance the result
> did not come from the cache.

Strange, i have no idea what is happening there.

> Can you think of a test that can be certain wether a drive caches or not?

Well, if it's just to determine about caching or not, timing the
difference between the initial read and following ones is very
robust. For instance, on a caching drive i get this :
cachex -i -. -c -m 10 -b 2 -n 1 e:
...
  • Testing cache line size:
    init 15000: 72.813915
    15000: 0.652137
    15001: 0.655490
    15000: 0.579212
    15003: 0.447052
    15000: 0.666387
    15005: 0.670020
    ...

    73 ms to load the cache, then 0.6 ms to read 2 sectors from it.
    Without cache, the ratio between initial and next reads is much
    smaller. Can you try the same command on your 708 and 730 ?

Cache explorer - free drive caching test tool

Reply #43
Heres the results of the plextors:

Plextor PX-230A
Code: [Select]
C:\cachex.exe -i -c d:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on D is  PLEXTOR  CD-R   PX-230A   1.01

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
[+] Testing cache line size:
1345 kB / 586 sectors
6 kB / 3 sectors
no cache detected
1345 kB / 586 sectors
1350 kB / 588 sectors
1350 kB / 588 sectors
780 kB / 340 sectors
1348 kB / 587 sectors
1350 kB / 588 sectors
1350 kB / 588 sectors


C:\>C:\cachex.exe -i -. -c -m 10 -b 2 -n 1 d:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on D is  PLEXTOR  CD-R   PX-230A   1.01

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
command A8h rejected
command 28h rejected
command D4h rejected
command D5h rejected
command D8h rejected
[+] Testing cache line size:
init 15000: 95.516059
15000: 0.946626
15001: 0.971098
15000: 0.972642
15003: 0.966764
15000: 0.975249
15005: 1.278869
15000: 0.986146
15007: 1.590191
15000: 0.971432
15009: 1.466104
15000: 0.974060
no cache detected

------dBpowerAMP R12------
5312ms without re-read and 5750ms with re-read
587 sectors
--------------------


Plextor PX708a
Code: [Select]
C:\>cachex.exe -i -c e:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on E is  PLEXTOR  DVDR   PX-708A   1.12

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh D8h
[+] Testing cache line size:
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
13 kB / 6 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors

C:\>cachex.exe -i -. -c -m 10 -b 2 -n 1 e:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on E is  PLEXTOR  DVDR   PX-708A   1.12

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
command A8h rejected
command 28h rejected
command D4h rejected
command D5h rejected D8h
command D8h with FUA bit rejected
[+] Testing cache line size:
init 15000: 67.844187
15000: 0.617817
15001: 0.525929
15000: 0.548503
15003: 0.640503
15000: 0.609329
15005: 0.539712
15000: 0.549165
15007: 0.629210
15000: 0.547930
15009: 0.556209
15000: 0.599586
no cache detected
------dBpowerAMP R12------
3844ms without re-read and 3844 with re-read
254 sectors
-------------------------


Retesting the PX230A on a different CD:
Code: [Select]
Drive on E is  PLEXTOR  CD-R   PX-230A   1.01

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
command A8h rejected
command 28h rejected
command D4h rejected
command D5h rejected
command D8h rejected
[+] Testing cache line size:
init 15000: 92.982701
15000: 1.052926
15001: 0.958790
15000: 0.967066
15003: 1.589474
15000: 0.971994
15005: 2.216799
15000: 0.972971
15007: 2.172395
15000: 1.003475
15009: 0.994602
15000: 0.953897
no cache detected

C:\>cachex.exe -i -c e:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on E is  PLEXTOR  CD-R   PX-230A   1.01

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh
[+] Testing cache line size:
656 kB / 286 sectors
142 kB / 62 sectors
165 kB / 72 sectors
6 kB / 3 sectors
32 kB / 14 sectors
no cache detected
408 kB / 178 sectors
847 kB / 369 sectors
1274 kB / 555 sectors
803 kB / 350 sectors


I am beginning to think the 230A does cache. FUA clear does not work.

Cache explorer - free drive caching test tool

Reply #44
I am beginning to think the 230A does cache. FUA clear does not work.


It surely does ... it's a BenQ OEM drive ...
The name was Plex The Ripper, not Jack The Ripper

Cache explorer - free drive caching test tool

Reply #45
init 15000: 95.516059
15000: 0.946626

init 15000: 92.982701
15000: 1.052926

With these figures it seems clear to me that PX-230 does indeed cache.

Cache explorer - free drive caching test tool

Reply #46
I am wondering about one thing... If I test the Plextor FUA command and use 10 tests, the result is 5/10. I also tried with higher test numbers and it seems that my PX-755A doesn't use the cache only 5 times, the result being 5/x for x values being ≥ 5.

Also, I performed this test with my LG E10L and it seems that it also supports the Plextor FUA command - or at least that is what I understand. The results are always 3/3, 5/5, 10/10, 20/20...

Cache explorer - free drive caching test tool

Reply #47
My results for a PX-755SA:
Code: [Select]
D:\Temp\cachex>cachex.exe -i -c e:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on E is  PLEXTOR  DVDR   PX-755A   1.02

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh A8h(FUA) 28h(FUA) D4h(FUA) D5h(FUA) D8h(FUA)
[+] Testing cache line size:
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors

D:\Temp\cachex>cachex.exe -i -. -c -m 10 -b 2 -n 1 e:

CacheExplorer 0.8 - spath@cdfreaks.com

Drive on E is  PLEXTOR  DVDR   PX-755A   1.02

[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh A8h(FUA) 28h(FUA) D4h(FUA) D5h(FUA) D8h(FUA)
[+] Testing cache line size:
init 15000: 73.634535
15000: 0.636211
15001: 0.582565
15000: 0.562727
15003: 0.664152
15000: 0.610506
15005: 0.647388
15000: 0.539257
15007: 0.920648
15000: 0.618609
15009: 0.888516
15000: 0.635652
no cache detected


As you can see, it doesn't report the fact that my drive is SATA, giving the wrong model number.

As for EAC, with the -usefua switch the red blocks fill up at normal speed when it encounters errors, without it, it fills up really fast. I would suppose this is because the sectors are read from cache, and so that the -usefua switch works for me. I haven't been able to detect differences yet but i haven't tested a lot yet either.
Veni Vidi Vorbis.

 

Re: Cache explorer - free drive caching test tool

Reply #48
In case anybody's looking for this tool, I was lucky enough to grab the source when spath made it available in the (now long gone) CDFreaks forums.

You can find it here : https://github.com/xavery/cachex