USPatent applicationPatented

Dual ported memory with selective read and write protection

Granted 27 Jan 2009 · 1 office action

Current assignee: Dell International L.L.C. · originally Dell Inc.

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Shawn J. Dube, Timothy M. Lambert · Examiner: Son L Mai · AU 2827 · TC 2800

Life of the application

22 dated events
⤢ drag to zoom2008201020122014201620182020202220242026ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A device comprising a first port, a second port, and a non-volatile memory. The first port is coupled to and accessible by a first module, and the second port is coupled to and accessible by a second module. The non-volatile memory of the device comprises a first memory portion and a second memory portion. The first memory portion is writable by the first port and write protected from the second port, and the second memory portion is writable by the second port and write protected from the first port.

Description

6 parts
›FIELD OF THE DISCLOSURE

This disclosure relates generally to a memory storage device, and relates more particularly to multiport memory storage devices.

›BACKGROUND

As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.

A multiport memory device can provide storage for multiple modules located within a system or can provide storage for multiple systems. The modules in the system, or the multiple systems can be isolated from one another, so that data stored by a module or system is only available to another module or system at the multiport memory device. Data from the different modules or systems are saved in one memory portion of the multiport memory device. Management of the memory is desirable, so that the data stored by each module or system is maintained, and is not corrupted by data stored by other modules Accordingly, there is a need for an improved memory device.

›BRIEF DESCRIPTION OF THE DRAWINGS

It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the Figures have not necessarily been drawn to scale For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the drawings presented herein, in which:

FIG. 1 is an exemplary block diagram of a multiport non-volatile memory device;

FIG. 2 is an exemplary block diagram of a multiport non-volatile memory device within a modular server chassis;

FIG. 3 is a flow chart of implementing a multiport non-volatile memory device;

FIG. 4 is a flow diagram of allowing or denying a write request in a non-volatile multiport memory device; and

FIG. 5 is a flow diagram of allowing or denying a read request in a non-volatile multiport memory device.

The use of the same reference symbols in different drawings indicates similar or identical items.

›DETAILED DESCRIPTION · 1 of 3

The following description in combination with the Figures is provided to assist in understanding the teachings disclosed herein. The following discussion will focus on specific implementations and embodiments of the teachings. This focus is provided to assist in describing the teachings and should not be interpreted as a limitation on the scope or applicability of the teachings.

Disclosed is a multiport memory device, wherein there are multiple memory portions to allow modules within a system to store data on the multiport memory device. Each memory portion has a selective read and write permission for accessing the data by a module within the system. The read and write permission is based on a determination of which particular memory portion to be accessed and which module is making the read or write request. With different modules having write permission on the memory portions the data in the memory portions are protected from being corrupted by a module that does not have access to write data. Also with different modules having different read permission the memory portions allow for secure protection of the stored data. For example, the read and write permissions can be set so that only authorized modules can read or write secured data saved in the memory portions.

FIG. 1 shows an exemplary block diagram of a particular embodiment of a system 100 . The system 100 includes a multiport memory device 102 coupled to a first module 104 and a second module 106 . The first module 104 is coupled to a first port 108 of the multiport memory device 102 and the second module 106 is coupled to a second port 110 . As illustrated, the first module 104 and the second module 106 are on two separate buses within the system 100 , so they do not have any direct communication with each other. The first port 108 allows communication and data transfer between the multiport memory device 102 and the first module 104 , and the second port 110 allows communication and data transfer between the multiport memory device 102 and the second module 106 . It will be appreciated that although the first module 104 and the second module 106 are illustrated as different modules of a system, in another particular embodiment the first module and the second module are separate independent systems that access the multiport memory device 102 .

The multiport memory device 102 includes a memory bank 112 to store the data from the first module 104 and the second module 106 . The memory bank 112 includes a first memory portion 114 , a second memory portion 116 , a third memory portion 118 , a fourth memory portion 120 , a fifth memory portion 122 , and a sixth memory portion 124 .

During operation of the system 100 , the various portions of the memory bank 112 have selective read and write permissions for both the first module 104 and the second module 106 . In the illustrated embodiment, the first memory portion 114 is read only memory where neither the first module 104 nor the second module 106 has write permission for the first memory portion In contrast, the second memory portion 116 allows read request from both the first module 104 and the second module 106 , but only allows write requests from the second module. Additionally, the third memory portion 118 allows read request from both the first module 104 and the second module 106 , and only allows write requests from the first module. Next, the fourth memory portion 120 allows both read and write requests from both the first module 104 and the second module 106 . Also, the fifth memory 122 allows both read and write requests from the first module 104 , but is not visible by the second module 106 . Finally, the sixth memory 124 allows both read and write requests from the second module 106 , but is not read or writable by the first module 104 . The first memory portion 114 , the second memory portion 116 , the third memory portion 118 , the fourth memory portion 120 , the fifth memory portion 122 , and the sixth memory portion 124 are selectively mapped to the first port 108 and the second port 110 to allow the different read and write request from the first module 104 and the second module 106 .

This example of read and write permissions on the different memory portions allows the data saved on the multiport memory device 102 to be protected from corruption. The fifth memory portion 122 and the sixth memory portion 124 allow security to the first module 104 and the second module 106 , because only one module has read and write permission on the fifth memory portion and the sixth memory portion. With only one module having access to a memory portion, the module is able to store data securely on the multiport memory device 102 . The other read and write permissions allow one of the modules or neither module to write data on the memory portion associated with the particular permission, but both modules can read the data on the memory portion. These read and write permissions allow only certain data to be changed by either the first module 104 or the second module 106 so that the data is not corrupted by the other module that is not allowed to store data on the memory portion.

The selective read and write permissions stated above are set in a variety of ways One such way is by a controller (not shown) of the multiport memory device 102 , which assigns the specific read and write permissions and thereby controls the access to each of the memory portions. When a read or write request is made the controller determines which module is sending the request and which memory portion the request is directed toward and based on this information the controller either allows or denies the request. In another particular embodiment, either the first module 104 or the second module 106 stores the selective read and write permissions for each memory portion when the system is first setup.

Additionally, in a different setup the first port 108 and the second port 110 allow the different read and write request from the first module 104 and the second module 106 for the first memory portion 114 , the second memory portion 116 , the third memory portion 118 , the fourth memory portion 120 , the fifth memory portion 122 , and the sixth memory portion 124 . In another particular embodiment the first module 104 and the second module 106 each store a map set that indicates the read or write permissions for each memory portion. Also, in another embodiment the read and write permission is controlled by a control module (not shown) within the multiport memory device 102 . The control module determines the appropriate permission and the size of each memory portion based on stored control information. The control information can be provided by firmware of the multiport memory device 102 and the read and write permissions can be changed by a firmware upgrade, this allows on-the-fly permission changing. Further, the stored control information can be changed by either of the modules 104 and 106 . In a particular embodiment, the modules 104 and 106 must supply a software key in order to gain authorization to change the control information.

›DETAILED DESCRIPTION · 2 of 3

The multiport memory device 102 uses internal FLASH to create the memory bank 112 into a virtual dual port non-volatile memory bank. Non-volatile memory is capable of retaining data even when there is no longer any power supplied to the non-volatile memory. Thus, information from the first module 104 and the second module 106 saved on the memory bank 112 can be accessed every time the multiport memory device 102 is turned on.

When accessing the memory bank 112 to read data the first module 104 uses the first port 108 and the second module 106 uses the second port 10 of the multiport memory device 102 . With in-system based firmware updates, the memory bank 112 and data allocations for the first memory portion 114 , the second memory portion 116 , the third memory portion 118 , the fourth memory portion 120 , the fifth memory portion 122 and the sixth memory portion 124 can be restructured, as well as the associated permissions for the first module 104 and the second module 106 .

FIG. 2 shows an exemplary block diagram of a particular embodiment of a system 200 . The system 200 includes a multiport memory device 202 coupled to an input and output (I/O) module 204 and a chassis management controller (CMC) 206 by a first port 208 and a second port 210 . In the illustrated embodiment the system 200 is a server chassis system, or any similar system. The first port 208 allows communication and data transfer between the multiport memory device 202 and the I/O module 204 , and the second port 210 allows communication and data transfer between the multiport memory device 202 and the CMC 206 . The multiport memory device 202 uses a memory bank 212 to store the data from the I/O module 204 and the CMC 206 . The memory bank 212 includes a first memory portion 214 , a second memory portion 216 , a third memory portion 218 and a fourth memory portion 220 .

When accessing the memory bank 212 to read data the I/O module 204 uses the first port 208 and the CMC 206 uses the second port 210 of the multiport memory device 202 . The first memory portion 214 is factory-written onto the multiport memory device 202 with field replaceable unit (FRU) data for the multiport memory device. The second memory portion 216 has chassis service tag and link-tuning table data stored on it where the CMC 206 writes the data for the I/O module 204 to access. Also, the third memory portion 218 has dynamic IP address data stored on it by an I/O module 204 for a chassis management module to read. The I/O module 204 and the CMC 206 each save data in the fourth memory portion 220 that both the I/O module 204 and the CMC 206 manipulate and rewrite in the multiport memory device 202 In system 200 , the fourth memory portion 220 is like a scratch pad and used for message posting by both the I/O module 204 and the CMC 206 to save data such as BAUD rates for the system.

FIG. 3 shows a flow chart 300 of an exemplary method of using a virtual dual port non-volatile multiport memory device in a computer device or subsystem In step 302 , the number of memory portions needed for a multiport memory device is determined Security needs for the modules coupled to the multiport memory device and the types of data to be stored are used in determining the number of memory portions needed in the multiport memory device. For example, one or both of the modules may have critical information that is desirable to protect from access by the other module. In that case, each module can be assigned its own separate memory portion in the multiport memory device with other modules being denied read or write access to the memory portion. Further, it may be desirable to allow information stored by one module to be readable by the other module.

In step 304 the read/write permission for the first memory portion is set to read-only for both modules. Next, in step 306 the read/write permission for the second memory portion is set to read-only for the first module and full read/write permission for the second module. In step 308 the read/write permission for the third memory portion is set to read-only for the second module and full read/write permission for the first module. In step 310 the read/write permission for the fourth memory portion is set to full read/write permission for both the first module and the second module. In the next step 312 , full read/write permission of the fifth memory portion is granted for the first module and no read/write permission is granted to the second module, which makes the fifth memory portion invisible to the second module. Finally, in the next step 314 full read/write permission of the sixth memory portion is granted to the second module and no read/write permission is granted to the first module, which makes the sixth memory portion invisible to the first module.

FIG. 4 shows an exemplary flow diagram 400 of using selective write permission in the system 100 . In step 402 the multiport memory device receives a write request, which indicates a module and a memory portion. The write request indicates whether the first module or the second module sent the write request, and the memory portion the module wants to access. The method proceeds, in step 404 the determination of whether the module requesting the write permission has access to the indicated memory portion. As indicated in step 406 , if the module does not have write permission for the memory portion indicated in the write request, the request will be denied and the multiport memory device will wait for another write request. However, if as shown in step 408 the module does have write permission for the memory portion indicated, the write request will be allowed.

FIG. 5 shows an exemplary flow diagram 500 of using selective write permission in the system 100 . In step 502 , the multiport memory device receives a write request, which indicates a module and a memory portion. The write request indicates whether the first module or the second module sent the write request, and the memory portion the module wants to access. Step 504 indicates that the determination of whether the module requesting the write permission has access to the indicate memory portion is performed. In step 506 , if the module does not have write permission for the memory portion indicated in the write request, the request will be denied and the multiport memory device will wait for another write request. However, if as shown in step 508 the module does have write permission for the memory portion indicated, the write request will be allowed.

›DETAILED DESCRIPTION · 3 of 3

It will be appreciated that although only two ports have been discussed more than the illustrated number of ports, memory portions, and permission can be employed.

Although only a few exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of the embodiments of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the embodiments of the present disclosure as defined in the following claims In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures.

Claims as granted

16 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section G — Physics
  • G11C7/00
USPC · US Patent Classification
365/189.4365/230.5

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2007Apr 2007Jul 2007Oct 2007Jan 2008Apr 2008Jul 2008Oct 2008Jan 2009USPTOApplicantNon-final rejectionResponse after non-finalNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
2.0 y
727 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Son L Mai
art unit 2827 · TC 2800
Citations: 19 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2008201020122014201620182020202220242026Owner 1liens, releases & corrections
TitleLienReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock