Computing with Memory

Computing with Memory

Computing with Memory refers to computing platforms where function response is stored in memory array, either one or two-dimensional, in the form of lookup tables (LUTs) and functions are evaluated by retrieving the values from the LUTs. These computing platforms can follow either a purely spatial computing model, as in Field-programmable gate array (FPGA), or a temporal computing model, where a function is evaluated across multiple clock cycles. The latter approach aims at reducing the overhead of programmable interconnect in FPGA by folding interconnect resources inside a computing element. It uses dense two-dimensional memory arrays to store large multiple-input multiple-output LUTs. Computing with Memory differs from Computing in Memory or Processor-in-memory (PIM) concepts, widely investigated in the context of integrating a processor and memory on the same chip to reduce memory latency and increase bandwidth. These architectures seek to reduce the distance the data travels between the processor and the memory. Berkeley IRAM project is one notable contribution in the area of PIM architectures.


Computing with memory platforms are typically used to provide the benefit of hardware reconfigurabilty. Reconfigurable computing platforms offer advantages in terms of reduced design cost, early time-to-market, rapid prototyping and easily customizable hardware systems. FPGAs present a popular reconfigurable computing platform for implementing digital circuits. They follow a purely spatial computing model. Since their inception in 1985, the basic structure of the FPGAs has continued to consist of two-dimensional array of Configurable Logic blocks (CLBs) and a programmable interconnect matrix [1]. FPGA performance and power dissipation is largely dominated by the elaborate programmable interconnect (PI) architecture [2][3]. An effective way of reducing the impact of the PI architecture in FPGA is to place small LUTs in close proximity (referred as clusters) and to allow intra-cluster communication using local interconnects. Due to the benefits of a clustered FPGA architecture, major FPGA vendors have incorporated it in their commercial products [4][5]. Investigations have also been made to reduce the overhead due to PI in fine-grained FPGAs by mapping larger multi-input multi-output LUTs to embedded memory blocks. Although it follows a similar spatial computing model, part of the logic functions are implemented using embedded memory blocks while the remaining part is realized using smaller LUTs [6]. Such a heterogeneous mapping can improve the area and performance by reducing the contribution of programmable interconnects.

Contrary to the purely spatial computing model of FPGA, a reconfigurable computing platform that employs a temporal computing model (or a combination of both temporal and spatial) has also been investigated [7] [8] in the context of improving performance and energy over conventional FPGA. These platforms, referred as Memory Based Computing (MBC), use dense two-dimensional memory array to store the LUTs. Such frameworks rely on breaking a complex function (f) into small sub-functions; representing the sub-functions as into multi-input, multi-output LUTs in the memory array; and evaluating the function f over multiple cycles. MBC can leverage on the high density, low power and high performance advantages of nanoscale memory [8]. Image:Memory Logic Block.png shows the high-level block diagram of MBC. Each computing element incorporates a two-dimensional memory array for storing LUTs, a small controller for sequencing evaluation of sub-functions and a set of temporary registers to hold the intermediate outputs from individual partitions. A fast, local routing framework inside each computing block generates the address for LUT access. Multiple such computing elements can be spatially connected using FPGA-like programmable interconnect architecture to enable mapping of large functions. The local time-multiplexed execution inside the computing elements can drastically reduce the requirement of programmable interconnects leading to large improvement in energy-delay product and better scalability of performance across technology generations. The memory array inside each computing element can be realized by Content-addressable memory (CAM) to drastically reduce the memory requirement for certain applications [7].

See also


References

  1. ^ K.Compton and S. Hauck, "Computing: A Survey of systems and software", ACM Surveys, Vol. 34, No. 2, June, 2002.
  2. ^ S.M. Trimberger, "Field Programmable Gate Array Technology", Norwell, MA: Kluwer, 1994.
  3. ^ A. Rahman, S. Das, A.P. Chandrakasan, R. Reif, "Wiring Requirement and Three-Dimensional Integration Technology for Field Programmable Gate Arrays", IEEE Trans. on Very Large Scale Integration Systems, Vol. 11, No. 1, February, 2003.
  4. ^ Xilinx Corporation
  5. ^ Altera Corporation
  6. ^ J. Cong and S. Xu, "Technology Mapping for FPGAs with Embedded Memory Blocks", Symposium on Field Programmable Gate Array, 1998.
  7. ^ a b S. Paul and S. Bhunia, "Reconfigurable Computing Using Content Addressable Memory for Improved Performance and Resource Usage", Design Automation Conference, 2008.
  8. ^ a b S. Paul, S. Chatterjee, S. Mukhopadhyay and S. Bhunia, "Nanoscale Reconfigurable Computing Using Non-Volatile 2-D STTRAM Array", International Conference on Nanotechnology, 2009.

Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • memory — mem‧o‧ry [ˈmemri] noun [uncountable] COMPUTING the part of a computer in which information is stored: • Storing and retrieving video images requires vast amounts of computer memory. • a machine with 4 gigabytes of memory • Both companies have… …   Financial and business terms

  • Memory model — may refer to: Psychology Atkinson–Shiffrin memory model Baddeley s model of working memory Memory prediction model Informatics In computer software, a memory model describes how threads interact through memory, or what assumptions the compiler… …   Wikipedia

  • Memory-mapped I/O — For more generic meanings of input/output port, see Computer port (hardware). MMIO redirects here. For the airport serving Saltillo, Mexico, assigned the ICAO code MMIO, see Plan de Guadalupe International Airport. Memory mapped I/O (MMIO) and… …   Wikipedia

  • Memory model (computing) — In computing, a memory model describes the interactions of threads through memory and specifies the assumptions the compiler is allowed to make when generating code for segmented memory or paged memory platforms. History and significance A memory …   Wikipedia

  • Memory virtualization — In computer science, memory virtualization decouples volatile random access memory (RAM) resources from individual systems in the data center, and then aggregates those resources into a virtualized memory pool available to any computer in the… …   Wikipedia

  • memory */*/*/ — UK [ˈmem(ə)rɪ] / US noun Word forms memory : singular memory plural memories 1) a) [countable] something that you remember The memory of that night is still clear in his mind. memory of: I don t have very fond memories of my school days. a vivid… …   English dictionary

  • Memory latency — In computing, memory latency is the time between initiating a request for a byte or word in memory until it is retrieved. If the data are not in the processor s cache, it takes longer to obtain them, as the processor will have to communicate with …   Wikipedia

  • Memory hole (disambiguation) — Not to be confused with Memory leak. Memory hole may refer to: The memory hole, a concept in George Orwell s Nineteen Eighty Four In computing, it may refer to: The Memory Hole (web site) founded in 2002 In a computer a slab, a contiguous area of …   Wikipedia

  • Reconfigurable computing — is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like field programmable gate arrays (FPGAs). The principal difference… …   Wikipedia

  • Memory-level parallelism — or MLP is a term in computer architecture referring to the ability to have pending multiple memory operations, in particular cache misses or translation lookaside buffer misses, at the same time. In a single processor, MLP may be considered a… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”