I would like to ascertain more of details about how DARAM works, particularly how this relates to resource contention.
When I first read that DARAM is Dual Access, I assumed the old definition of Dual Port, meaning two simultaneous accesses. But after reading volumes of information concerning the C5500, I learned that DARAM actually has the ability to be accessed twice in a single cycle, once early in the cycle and again later in the cycle, but not actually simultaneously. Please correct me if I misinterpreted this.
I also understand that SARAM is perfect for code, since the DSP will never try to access code memory more than once. SARAM also seems appropriate for data accessed via CDP. I further assume that if SARAM can only be accessed once per cycle, then it must be available at the correct time (early/late) needed by the instruction fetch or CDP access. So which phase is it?
If there are two memory access phases per cycle, then what are their restrictions? Is one read-only? Is one DARAM-only? Does the DMA have access to only one of these memory phases? If not, does DMA have preference for one of them? There have been a few hints here that suggest the latter, but my own testing does not confirm this.
I tried searching for this sort of information in the many C5500 documents, but could not find anything.