??? 07/06/07 17:36 Read: times |
#141559 - it's a preliminary notion Responding to: ???'s previous message |
Jan,
I have 256kB of memory, of which 64kB is needed by the processing of the data. I have 192 KB of memory in addition to that, most of which is needed for the data buffer to be written by a DMAC. I'm going to fetch each byte of data from the buffer, translate it through a table, and dispatch it to another buffer from which it will be transferred block by block to an external destination. Presently, I'm planning to make the adder function only in the one 16kB window to which it applies. When the MCU addresses 0x8000 to 0xBFFF, it "sees" the extended memory. When it is in code space, or when it is in memory outside that 16kB window, it leaves the address bus unmodified, hence, leaving the extended memory alone. The CPLD is pretty fast, so adding another layer of logic won't have much impact on MCU performance. The CPLD lies between the MCU and its address latches, due to I/O count limitations. I haven't yet figured out exactly how I'm going to do this, so I'd be interested in how you propose. I'm not sure that what you suggest is applicable to so large a memory. Please explain in more detail what you have in mind. If I had not opened my big mouth and claimed this would be easy with an 805x, I'd have used a larger processor with a built in MMU and built-in DMAC, as those don't cost more than the DS89C4x0, and they're considerably faster. However, now that I'm in it, I want to follow through. It is, after all, a one-off freebie. BTW, I'm using external code space because the DS89C4x0 of years past (I make no such claim about the current silicon) could execute code faster from external memory than from internal FLASH due to limitations of their FLASH process. RE |