Difference between revisions of "Multi-port memory"
(A start) |
m (+cat) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | A '''multi-port memory''' is a memory bank (usually of [[main memory]]) which can be physically connected to multiple clients (typically [[Central Processing Unit|CPUs]], [[Direct Memory Access|DMA]] [[device controller]]s, etc). | + | A '''multi-port memory''' is a memory bank (usually of [[main memory]]) which can be physically separately connected to multiple clients (typically [[Central Processing Unit|CPUs]], [[channel]]s, [[Direct Memory Access|DMA]] [[device controller]]s, etc). |
==Implementation== | ==Implementation== | ||
Line 5: | Line 5: | ||
The internal implementation can vary considerably; there are a number of approaches, based on cost, performance, etc goals. | The internal implementation can vary considerably; there are a number of approaches, based on cost, performance, etc goals. | ||
− | The simplest choice is a priority arrangement, where the ports are numbered. and the memory controller attends to requests in priority order. | + | The simplest choice is a priority arrangement, where the ports are numbered. and the memory controller attends to requests in priority order, using an [[arbiter]] to deal with requests that arrive simultaneously. |
− | If there are multiple banks in the memory, then as long as access requests are spread out fairly evenly across them, it may be possible to perform memory cycles on separate ports simultaneously. (This approach was used on the [[PDP-10]] and [[Honeywell 6000 series|Honeywell 6000]] systems.) | + | If there are multiple banks in the memory, then as long as access requests are spread out fairly evenly across them, it may be possible to perform memory cycles to different clients on separate ports simultaneously. (This approach was used on the [[PDP-10]] and [[Honeywell 6000 series|Honeywell 6000]] systems.) |
For small multi-port memories, it is possible to replicate the memories, so no read contention ever happens (since each port has its own private copy of all the data). If more than one port can write, however, contention may arise in the writing. | For small multi-port memories, it is possible to replicate the memories, so no read contention ever happens (since each port has its own private copy of all the data). If more than one port can write, however, contention may arise in the writing. | ||
Line 13: | Line 13: | ||
The topic remains an area of research to the current day. | The topic remains an area of research to the current day. | ||
− | {{stub}} | + | {{semi-stub}} |
+ | |||
+ | [[Category: Memory Basics]] |
Latest revision as of 15:36, 15 December 2018
A multi-port memory is a memory bank (usually of main memory) which can be physically separately connected to multiple clients (typically CPUs, channels, DMA device controllers, etc).
Implementation
The internal implementation can vary considerably; there are a number of approaches, based on cost, performance, etc goals.
The simplest choice is a priority arrangement, where the ports are numbered. and the memory controller attends to requests in priority order, using an arbiter to deal with requests that arrive simultaneously.
If there are multiple banks in the memory, then as long as access requests are spread out fairly evenly across them, it may be possible to perform memory cycles to different clients on separate ports simultaneously. (This approach was used on the PDP-10 and Honeywell 6000 systems.)
For small multi-port memories, it is possible to replicate the memories, so no read contention ever happens (since each port has its own private copy of all the data). If more than one port can write, however, contention may arise in the writing.
The topic remains an area of research to the current day.