Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Especially, these days, the distinction between them is very confusing..

For example, NVidia's shared memory is 32-banked, so what they say is in one cycle, 32 data can come out at the same time... then what is port ? also same issues to cache structure

Could anyone clarify on this ? Thanks!

share|improve this question

A "port" is a signal or set of signals that connect directly and exclusively from one group of electronics to another group, usually between distinct electronic components/circuits. A "bank" is a set of devices, ports, or buses that may be addressed individually or as a group.

share|improve this answer

The term "bank" is generally used to refer to a group of essentially identical items -- a memory bank, a bank of disk drives, etc.

The term "port" refers to a conceptual hole or pipe through which something passes. Generally this applies to I/O devices and the like.

share|improve this answer

Yes, in this case, multiple words of data are being read by each bank simultaneously. This requires fine-grained control of memory accesses by the program being executed, otherwise you will encounter bank access/scheduling conflicts. In terms of hardware, a port is just an interface of connections between two pieces of hardware (serial or parallel, one wire or more). Each memory bank will have a port interfacing the shared memory with the GPU cores.

In regards to cache, you might want to see the question What is the difference between a cache and a buffer? for an in-depth look at caches and other nomenclature. With respect to ports, a cache is meant to be transparent to the use of the port - ideally, you should obtain an increase in throughput (or decrease in latency) using a cache without affecting the way the port is used at a high-level.

In terms of memory banks, the controller and end-point of each bank would require no change in terms of interfacing. When accessing subsequent data words, assuming that word has been cached in the cache hierarchy, the data would simply be available/returned faster - rather than if the cache controller has not caught up yet, and accessing the word directly in memory is required. In both cases, the external port interface is identical, just the timing of the signals change due to the increased delay.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .