← Back to context

Comment by flipacholas

5 years ago

Oh what an amazing feeling seeing one of my articles here. Let me share you a bit of history about this one:

- A year ago, an old version of this article got shared in hn (https://github.com/flipacholas/Architecture-of-consoles) to discuss improvements but you can also find my email in the site.

PS: The insight shared by developers in the parent thread is phenomenal.

> CD-ROM sub-channels traditionally store metadata, mostly to guide the drive. These aren’t user accessible and conventional readers rarely allow to manually write over them.

Maybe early CD-ROM drives couldn't read the side-channel data, but all drives (readers and burners) after a certain generation can read raw 2448 byte (2352 byte raw sector data + 96 byte subchannel data) sectors. I think Plextor drives might have been the first to support it?

> 5-stage pipeline: Up to five instructions can be executed simultaneously

Although technically correct, that's a bit misleading IMO. The instruction execution is overlapping, but you can still execute at most 1 instruction per cycle (each stage of the pipeline can only execute one instruction at a time). You need a super-scalar pipeline design to do more than 1 instruction per cycle.

  • > Although technically correct, that's a bit misleading IMO.

    I Agree. My issue is that the other consoles also have a pipelined CPU and I'm trying not to copy-paste the same long explanation from other articles every time. So I included a link next to the PS1's pipeline description. I will try to reword it though. Thanks!

  • Yes, with cdrdao I could read any rented PSX disc under Linux in order to "backup" it.