This is a temporary, read-only recovery of the chessprogrammingwiki while a longer-term plan is worked out. Editing is not possible right now, but will be again soon.
Chess Programming Wiki All pages Other namespaces

Memory

Home * Hardware * Memory

RNA, biological data storage 1RNA, biological data storage 1


  1. Data storage device from Wikipedia↩︎

Memory is the ability to store, retain, and recall information and experiences as researched in cognitive science. Computer memory refers to physical devices used to store data and sequences of instructions (programs) on a temporary or permanent basis, typically distinguished as fast random-access memory and relatively slow data storage.

Contents
  1. Flip-Flop
  2. N-Bit Latches
  3. RAM
    1. Static RAM
    2. Dynamic RAM
  4. ROM
  5. Persistence
  6. Auxiliary Storage
  7. Historical Data Storage
  8. Memory Hierarchy
  9. Memory Management
    1. Virtual Memory
    2. Paging
    3. TLB
    4. Huge Pages
  10. Memory Model
    1. Shared Memory
    2. Cache
    3. Segmentation
    4. Allocation
  11. Memory Footprint
  12. Multiprocessing
  13. Memory versus Search
  14. See also
  15. Publications
    1. Computer Memory
      1. 1960 ...
      2. 1970 ...
      3. 1980 ...
      4. 1990 ...
      5. 2000 ...
      6. 2010 ...
    2. Cognition
      1. 1960 ...
      2. 1970 ...
      3. 1980 ...
      4. 1990 ...
      5. 2000 ...
  16. Forum Posts
    1. 1995 ...
    2. 2000 ...
    3. 2005 ...
    4. 2010 ...
    5. 2015 ...
    6. 2020 ...
  17. External Links
    1. Computer Memory
    2. Gustavo Duarte's Blog
    3. Cognition
    4. Neuroscience
    5. Misc
  18. References

Flip-Flop

A flip-flop or latch is a one bit memory. For instance a simple relay (K1) with its contact parallel to the On-push-button S2, "remembers" whether last action was pushing S1 (reset) or S2 (set) 1 . A RS flip-flop is a pair of cross-coupled NAND or NOR-gates, where the outputs are feed back to the inputs. A D flip-flop, the most common flip-flop, stores the input D with the rising edge (0-1 transition) of a clock.

RS flip-flop

D flip-flop

Discrete

from two NOR (red == 1) 1

from six NAND 2

PDP-6 flip-flop 3 4


  1. Latch (electronics) from Wikipedia↩︎
  2. Flip-flop (electronics) from Wikipedia↩︎
  3. Bits by Lawrence J. Krakauer↩︎
  4. PDP-6 Circuit Instruction Manual, © 1966, Digital Equipment Corporation (pdf)↩︎

N-Bit Latches

N-Bit latches are arrays of one-bit latches or flip-flops typically as wide as a connected parallel data-bus. They may be used as a registers or scratchpad RAM inside a central processing unit.

RAM

Random access memory is a fast form of computer memory and refers to the idea that any piece of data can be stored and retrieved in a constant time, regardless of its physical location and whether or not it is related to the previous piece of data.

Static RAM

Static RAM (SRAM) is an array of latches, where each latch has a unique address, which connects the addressed latch to its data-bus, often used as CPU cache.

Dynamic RAM

Dynamic random access memory (DRAM) is a type of random access memory that stores each bit of data in a separate capacitor within an electronic circuit. Since capacitors leak charge, the information eventually fades unless the capacitor charge is refreshed periodically, which is the reason to call that memory dynamic. Since DRAM takes only one transistor and capacitor per bit, it is therefor used as cheap main memory part of recent computer data storage, despite its worse latency compared to SRAM.

DRAM write at a 4 by 4 array 2

ROM

Read-only memory (ROM) is a class of storage programmed once and mainly used to distribute firmware. EPROMs have a small quartz window which admits UV light for erasure 3 . ROM or EPROM were often embedded inside a microcontroller in conjunction with some RAM. They were often used in dedicated chess computers.

National Semiconductor EPROMs 2764 and 2716 4

Since each data-bit stored in a ROM is a boolean function of its inputs or address, a ROM is also used to implement combinatorial logic.

Persistence

Auxiliary Storage

Beside the computer's random access main memory, auxiliary storage refer to mass storage like optical discs, and magnetic storage hard disk drives. Those devices are usually connected via a serial bus, and accessed via streams.

Compact Cassette as Auxiliary Storage in Intelligent Chess 5

USB 3.0

Historical Data Storage

Plated wire memory from Wikipedia

Memory Hierarchy

Memory Management

Todays processors utilize all the above types of memory from small and fast to large but slow within the concepts of virtual memory, paging, protection and various caches.

Virtual Memory

Physical address translation 1

Virtual and physical address space 2


  1. Page table from Wikipedia↩︎
  2. Virtual address from Wikipedia↩︎

Paging

Page table

Page replacement algorithm

Paging

Demand Paging

Page fault

Copy-on-write

TLB

Huge Pages

Note that what Windows calls "large pages," Linux and Unix call "huge pages" or "huge TLB pages (x86 and x86-64)

Memory Model

Shared Memory

Shared Memory:

False sharing from Wikipedia

Cache

Cache:

MSI protocol from Wikipedia

MESI protocol from Wikipedia

MOESI protocol from Wikipedia

assembly - The prefetch instruction - Stack Overflow

Data Prefetch Support - GNU Project - Free Software Foundation (FSF)

Software prefetching considered harmful by Linus Torvalds, LWN.net, May 19, 2011

Segmentation

Allocation

Manual memory management

Memory leak

Garbage collection

Memory Footprint

Beside their individual memory footprint, chess programs have to deal with huge memory areas of transposition table and possibly caches for endgame table- or bitbases and their relative huge random access latencies.

Miles Davis, Wayne Shorter, Herbie Hancock, Ron Carter, Tony Williams

Watch on YouTube

Monika Malczak, Mateusz Gramburg, Paweł Zwierzyński-Pióro, Michał Szeligowski

Watch on YouTube

Multiprocessing

See also

Publications

Computer Memory

1960 ...

1970 ...

1980 ...

1990 ...

2000 ...

Memory part 1

Memory part 2: CPU caches

Memory part 3: Virtual Memory

Memory part 4: NUMA support

Memory part 5: What programmers can do

2010 ...

Cognition

1960 ...

1970 ...

1980 ...

1990 ...

2000 ...

Forum Posts

1995 ...

2000 ...

2005 ...

2010 ...

2011

2012

2013

2014

2015 ...

2016

2017 ...

2020 ...

Computer Memory

Gustavo Duarte's Blog

from Best Of by Gustavo Duarte:

Cognition

Neuroscience

Misc

Watch on YouTube

References

Up one Level


  1. Selbsthaltefunktion from Wikidepia.de (German)↩︎

  2. Dynamic random access memory from Wikipedia↩︎

  3. How to program a 2716↩︎

  4. Category:EPROM 2716 - Wikimedia Commons↩︎

  5. Intelligent Chess from Chess Computer UK by Mike Watters↩︎

  6. 3D XPoint by Edmund Moshammer, CCC, August 02, 2015↩︎

  7. Buddy memory allocation from Wikipedia↩︎

  8. Cache-oblivious algorithm from Wikipedia↩︎

  9. Buddy memory allocation from Wikipedia↩︎

  10. DNA data storage breaks records : Nature News & Comment by Monya Baker, August 16, 2012↩︎

  11. DNA data storage breaks records by Terry McCracken, CCC, August 18, 2012↩︎

  12. April 01, 2018↩︎

  13. K-line (artificial intelligence) from Wikipedia↩︎

  14. Fernand Gobet (2007). Chunk hierarchies and retrieval structures: Comments on Saariluoma and Laine. Scandinavian Journal of Psychology, 42. pdf↩︎

  15. George Church, Yuan Gao, Sriram Kosuri (2012). Next-Generation Digital Information Storage in DNA. Science↩︎

  16. Hybrid Memory Cube from Wikipedia↩︎

  17. Intel Nehalem Core i3↩︎

  18. 3D XPoint from Wikipedia↩︎

Categories: Herbie Hancock · Ron Carter · Stanley Clarke · Miles Davis · Al Di Meola · Jean-Luc Ponty · Wayne Shorter

What links here

Contributors: GerdIsenberg, Smatovic.