32 bit SDRAM
Pence128
Posts: 20
With lots of glue logic, it would be possible to read/write SDRAM (or any other memory) 32 bits at a time. This would allow you to load code into a cog faster than a coginit instruction, or even load up to four cogs simultaneously. I/O would have to be multiplexed, and it would be disabled for everything else for about 15us at a time.
Is this worth pursuing? Are there any applications that need lots of code but little I/O?
Is this worth pursuing? Are there any applications that need lots of code but little I/O?
Comments
A high speed SDRAM interface could be useful, but it would depend heavily on the specifics of the application
And how will the loader get into the COG? Perhaps with COGINIT...
But that implies that every "blob" of code that you load into COG also includes the SDRAM loader code so that it can "chain load" another "blob".
Many times there is not going to be space in COG to do that.
Besides I've never heard it said that COG loading time was an issue.
The half baked idea was sort of a large memory model. It would be like regular PASM, but there would be a subroutine for "long jumps" that would load a block of code corresponding to the high address bits, and then jump to the low address bits.
The problem with 8 and 16 bit widths is the difficulty in assembling them into longs. It's faster to write them to hub and then read them back. At that point you might as well write them to hub and do a coginit.
In the 8/16 bit case, you're right of course. I use a cache cog to load code from SDRAM to HUB. A problem with that approach is the time to restart a cog is huge like 100us or so. So your idea of loading from SDRAM has merit even with 8 bit access. I'm working with dual Quad SPI Flash these days which is simpler and almost as fast as SDRAM - faster if you count repeated power up boot cycle times.