Pre-Grant Publication Number: 20080098157
Please help the USPTO examine the application by evaluating the relevance of the publicly submitted prior art to the patent application.
Peer-to-Patent forwards the Top 10 most relevant prior art submissions and their annotations to the United States Patent and Trademark Office.
Review this prior art and click on the thumbs up (or down) to indicate whether this submission should be forwarded to the USPTO.
If you login then you can add an annotation by typing in the box at the bottom of the screen to comment on the relevance of the prior art to the claims of the patent application.
Review this prior art and click on the thumbs up (or down) to indicate whether this submission should be forwarded to the USPTO.
If you login then you can add an annotation by typing in the box at the bottom of the screen to comment on the relevance of the prior art to the claims of the patent application.

Prior Art Detail
Summary / Description
| Summary / Description | Techniques for using Non-Volatile storage to back up volatile storage of existed for a long time - currently known as Memory Mapped files. This details documentation example is from the documentation for Microsoft Windows - but the technique has been available from about 1978 (In the VAX/VMS operating system) |
Basic Information
| Type of Prior Art | Online Publication |
| URL | http://msdn.microsoft.com/en-us... |
| Author/Creator | Randy Kath, Microsoft Developer Network Technology Group |
| Title | Managing Memory-Mapped Files in Win32 |
| Publication Date | February 9, 1993 |
| Publisher | Microsoft Corporation |
| Directions to Document Location | |
| Additional Information | In most implementations, the Non-volatile storage can be any device which can be treated by the Operating system as a disk (a block device). This would include the Flash Style Devices mentioned in this patent - which are typically available in a disk dri |
Notes / To Do
| Notes | |
Excerpt
Excerpt Memory-mapped files (MMFs) offer a unique memory management feature that allows applications to access files on disk in the same way they access dynamic memory—through pointers. With this capability you can map a view of all or part of a file on disk to a specific range of addresses within your process's address space. And once that is done, accessing the content of a memory-mapped file is as simple as dereferencing a pointer in the designated range of addresses. So, writing data to a file can be as simple as assigning a value to a dereferenced pointer |
Relevance
Claims
1
A non-volatile memory system comprising:
block-accessible non-volatile memory;
random access memory arranged to be linearly addressable by a processor as part of the processor's memory address space, to be read from and written to by the processor; and
logic interposed between the block-accessible non-volatile memory and the random access memory and arranged to write parts of the content of the random access memory in blocks to blocks of the non-volatile, block-accessible memory;
wherein the logic is arranged to monitor processor writes to the random access memory, and to write blocks of the random access memory that differ from a most recent copy in the non-volatile, block-accessible memory to the non-volatile, block-accessible memory.
Relevance
This is simple description of a typical memory mapped file scheme - as per the documentation mentioned above. In most implementations the logic is computer software and the non-volatile block device is a disk file.
This is simple description of a typical memory mapped file scheme - as per the documentation mentioned above. In most implementations the logic is computer software and the non-volatile block device is a disk file.
Claim Chart
All
2
A memory system according to Claim 1, further comprising logic arranged to initialize the memory system, comprising logic arranged to copy contents of the non-volatile, block-accessible memory to the random access memory.
Relevance
In a typical memory mapped file scheme - methods are provided to initialise the memory from the file. In the documentation mentioned above this is implemented by the OpenFileMapping method.
In a typical memory mapped file scheme - methods are provided to initialise the memory from the file. In the documentation mentioned above this is implemented by the OpenFileMapping method.
Claim Chart
All
3
A memory system according to Claim 1, wherein the non-volatile, block-accessible memory is flash memory.
Relevance
Most modern computers treat flash memory devices are normally treated as block accessible devices. Typical devices are normally known as Memory cards - with a good listing of such devices available here: http://en.wikipedia.org/wiki/Memory_card. The treatment of such devices as block devices is typically done by the computer operating system and is implemented in each of Microsoft Windows, Apple Mac OS X and Linux.
Most modern computers treat flash memory devices are normally treated as block accessible devices. Typical devices are normally known as Memory cards - with a good listing of such devices available here: http://en.wikipedia.org/wiki/Memory_card. The treatment of such devices as block devices is typically done by the computer operating system and is implemented in each of Microsoft Windows, Apple Mac OS X and Linux.
Claim Chart
All
4
A memory system according to Claim 1, wherein the block-accessible memory is larger than the random access memory that is written to the block-accessible memory, and wherein the logic arranged to write is arranged to write from the random access memory to vacant blocks of the block-accessible memory and to write to the block-accessible memory metadata enabling the most recently written copy of a part of the random access memory to be identified.
Relevance
In memory mapped filed schemes, such as that documented above, the block device will be considerable larger then the random access memory. A typical modern computer system might have 4 billion bytes of random access memory, but 100 billion bytes of block accessible disk storage.
In memory mapped filed schemes, such as that documented above, the block device will be considerable larger then the random access memory. A typical modern computer system might have 4 billion bytes of random access memory, but 100 billion bytes of block accessible disk storage.
Claim Chart
Some
5
A memory system according to Claim 1, further comprising at least one logic device independent of the processor comprising at least part of the logic arranged to write from the random access memory to the block-accessible memory.
Relevance
Any logic that can be implemented by the processor could also be implemented by device independent of the processor. This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering) , and is typically implemented using a device known as a "Memory Management unit". An introduction to such devices is available here http://en.wikipedia.org/wiki/Memory_management_unit
Any logic that can be implemented by the processor could also be implemented by device independent of the processor. This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering) , and is typically implemented using a device known as a "Memory Management unit". An introduction to such devices is available here http://en.wikipedia.org/wiki/Memory_management_unit
Claim Chart
All
6
A memory system according to Claim 1, further comprising an integrated circuit package containing at least two of the random access memory, the non-volatile memory, and the logic.
Relevance
This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering).
This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering).
Claim Chart
All
7
A non-volatile memory system according to Claim 1, wherein in operation the random access memory contains a complete copy of current contents of the memory system, and wherein the block-accessible memory contains copies of all parts of the contents of the memory system other than parts that have been altered in the random access memory and await writing to the block-accessible memory.
Relevance
The documentation mentioned above, in the section titled "Flushing Views of Files" infers that the described system the system keeps in random access memory parts of the contents of memory which have not yet been written back to the block accessible memory.
The documentation mentioned above, in the section titled "Flushing Views of Files" infers that the described system the system keeps in random access memory parts of the contents of memory which have not yet been written back to the block accessible memory.
Claim Chart
All
10
A computer system comprising:
a processor;
random access memory, wherein the processor is arranged to address the random access memory solely as part of the processor's random access memory address space;
non-volatile, block-addressable memory; and
logic arranged in normal operation to address said random access memory in blocks and to write the content of blocks of the random access memory including data that have been written by the processor to blocks of the non-volatile, block-accessible memory.
Relevance
This describes the abstraction of the concept such that the details of the operation are hidden from the processor - the processor treats this device as normal memory. This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering).
This describes the abstraction of the concept such that the details of the operation are hidden from the processor - the processor treats this device as normal memory. This is an obvious extension of the scheme to Partitioners in the relevant arts (e.g. Computer Engineering).
Claim Chart
All
11
A computer system according to Claim 10, further comprising logic arranged to read contents of blocks of the non-volatile, block-accessible memory to the random access memory after an event that causes loss of the contents of the random access memory.
Relevance
This is the reading of the file back into memory.
This is the reading of the file back into memory.
Claim Chart
All
12
A computer system according to Claim 11, wherein the logic comprises logic arranged to initialize the random access memory after the event that causes loss of the contents thereof by reading from the block-accessible memory and writing to the random access memory a most recent copy of each part of the random access memory.
Relevance
This is the reading of the file back into memory.
This is the reading of the file back into memory.
Claim Chart
All
13
A computer system according to Claim 10, further comprising logic arranged to write to the block accessible memory any part of the random access memory that differs from a most recently written copy of that part in response to the beginning of an event that causes loss of the contents of the random access memory.
Relevance
The documentation mentioned above, in the section titled "Flushing Views of Files", describes such a scheme, both its automated operation (in this case, on closure of files) and its operation on a given event.
The documentation mentioned above, in the section titled "Flushing Views of Files", describes such a scheme, both its automated operation (in this case, on closure of files) and its operation on a given event.
Claim Chart
All
0 days left






