Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21611 Discussions

Difference between Cache and Tightly Coupled Memeory

Altera_Forum
Honored Contributor II
5,475 Views

Hello, 

 

We are designing a system that is used to send video frames from one embedded system to another via Ethernet.  

 

It is required to send 30 interlaced frames per second, the design is now capable of sending 8 frames/sec. It was suggested to use tightly coupled memory to enhance the NIOS II performance. 

 

Can any one explain the difference between tightly coupled memory and the cache memory:confused:. 

 

Thanks & Regards.
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
3,772 Views

You can easily find the answer in Nios/sopc documentation, which I think is more clear and detailed than what I write here.  

Anyway the difference is this: 

While both are very fast accessed memories, cache stores dynamically data/code which has been lately used in order to improve access speed, compared to standard memory connected to the global Avalon matrix. Every time a memory access is required, the processor checks if the required data is already present in the cache or must be newly fetched from memory; in the meantime, old unused cache data is being continously replaced with new data. 

Tightly coupled memory is also a fast access memory, since it exploits a dedicated port, but it has static content: you decide what you need there and you specify it in the linker script.
0 Kudos
Altera_Forum
Honored Contributor II
3,772 Views

Cache memory is implemented with on-chip memory and control logic. Tightly coupled memory is implemented with on-chip memory and a dedicated connection. 

 

Tightly coupled memory has a fixed span in the address map. Cache does not live in the address map (.... well it kinda does.... just don't think of it as a physical memory) but instead serves as an intermediate between the processor and the memory to (hopefully) provide more efficient memory accesses. 

 

Tightly coupled memory has deterministic access time. Accesses through the cache are not deterministic since the data will either live in the cache (hit) or the data must be fetched from main memory (miss). 

 

For what you are trying to do I would recommend taking a look at this since it should give you much more bandwidth: http://www.alterawiki.com/wiki/nios_ii_udp_offload_example
0 Kudos
Reply