IP Library Granted Patent US 9,129,661
Granted Patent B2
US 9,129,661 · App. 14/016,125 · Granted Sep 8, 2015

Single port memory that emulates dual port memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,129,661
App. No.
14/016,125
Granted
Sep 8, 2015
Kind
B2
Abstract

A single-port memory that operates in single-cycle dual-port mode has a logical capacity of N=k·m memory words and (k+1) single-port RAM having an overall physical capacity of (k+1)·m memory words. A status register holds words identifying which RAM bank has the last data at the i th address in the RAM banks and defining k status words for valid data among the (k+1) RAM banks. Write data is written to the write address of a valid RAM bank for a write operation in the absence of RAM bank read address contention. Write data is written to the write address of a different RAM bank that has no valid data for a write operation if there is contention with the RAM bank read address RADDR of a read operation. The status register is updated to identify the RAM bank of the write operation.

Claims (29)

1. A single-port memory capable of operating in single-cycle dual-port mode and having a logical capacity of N=k·m memory words, the memory comprising:

a number (k+1) of single-port random access memory (RAM) banks having an overall physical capacity of (k+1)·m memory words, wherein the RAM banks store write data;

a status register for holding at least N=k·m status words, of which an i th status word identifies which RAM bank has the last data to have been written at an i th address, where iε[0,k·m], wherein k status words are defined for indicating k RAM banks that have valid data among the (k+1) RAM banks;

a write data input and a read data output; and

control logic for receiving read and write enable signals, read and write addresses, and write data from the write data input, for supplying read data from a corresponding read address of a valid RAM bank to the read data output for a read operation, wherein the valid RAM bank for the read operation is determined based on the k status words, for writing the write data from the write data input to a write address of a valid RAM bank for a write operation in the absence of contention with the RAM bank of the read operation, for writing the write data from the write data input to the write address of a next RAM bank that has no valid data for the write operation at the write address in the case of contention with the RAM bank of the read operation, wherein the next RAM bank is determined based on the k status words, wherein the read and write operations are performed in a single cycle, and for updating the status register to identify the RAM bank of the write operation.

2. The memory apparatus of claim 1 , wherein the (k+1) RAM banks each have the same capacity of m words.

3. The memory apparatus of claim 1 , wherein the k·m words of the status register are binary and each word has at least ┌log 2 (k+1)┐ bits, where ┌log 2 (k+1)┐ represents the next integer larger than log 2 (k+1).

4. The memory of claim 1 , wherein the number (k+1) of RAM banks is at least three.

5. The memory of claim 1 , wherein the read and write addresses are random access addresses.

6. A single-port memory that operates in dual-port mode and has a logical capacity of N=2·m words, the memory comprising:

three single-port random access memory (RAM) banks having an overall physical capacity of 3·m memory words;

a status register for holding at least N=2·m status words, of which an i th status word identifies which RAM bank has the last data written at an i th address, where iε[0,2·m], wherein two status words are defined for indicating two RAM banks that have valid data among the three RAM banks;

a write data input and a read data output; and

control logic for receiving read and write enable signals, read and write addresses, and write data from the write data input, for supplying read data from a corresponding read address of a valid RAM bank to the read data output for a read operation, wherein the valid RAM bank for the read operation is determined based on the two status words, for writing the write data from the write data input to a write address of a valid RAM bank for a write operation in the absence of contention with the RAM bank of the read operation, for writing the write data from the write data input to the write address of a next RAM bank that has no valid data for the write operation at the write address in the case of contention with the RAM bank of the read operation, wherein the next RAM bank is determined based on the two status words, wherein the read and write operations are performed in a single cycle, and for updating the status register to identify the RAM bank of the write operation.

7. The memory apparatus of claim 6 , wherein the three RAM banks each have a capacity of m words.

8. The memory apparatus of claim 6 , wherein the 2·m words of the status register are binary and each word has two bits.

9. The memory apparatus of claim 6 , wherein the read and write addresses are random access addresses.

10. A method of operating a single-port memory in a single-cycle dual-port mode, wherein the memory has a logical capacity of N=k·m words and includes a number (k+1) of single-port random access memory (RAM) banks having an overall physical capacity of (k+1)·m memory words, and a status register for holding at least N=k·m status words, the method comprising:

setting data in the status register with an i th status word identifying which RAM bank has the last data written at an i th address, where iε[0,k·m], and defining k status words for indicating k RAM banks that have valid data among the (k+1) RAM banks;

receiving by control logic of the memory, read and write enable signals, read and write addresses, and write data from a write data input;

supplying read data from a corresponding read address of a valid RAM bank to a read data output for a read operation, wherein the valid RAM bank for the read operation is determined based on the k status words;

writing write data from a write data input to a write address of a valid RAM bank for a write operation in the absence of contention with the RAM bank of the read operation;

writing write data from the write data input to the write address of a next RAM bank that has no valid data for the write operation at the write address in the case of contention with the RAM bank of the read operation, wherein the next RAM bank is determined based on the k status words;

wherein the read and write operations are performed in a single cycle; and

updating the status register to identify the RAM bank of the write operation.

11. The method of claim 10 , wherein the (k+1) RAM banks each has a capacity of m words.

12. The method of claim 10 , wherein the k·m words of the status register are binary and each word has at least ┌log 2 (k+1)┐ bits, where ┌log 2 (k+1)┐ represents the next integer larger than log 2 (k+1).

13. The method of claim 10 , wherein the number (k+1) of RAM banks is at least three.

14. The method of claim 10 , wherein the read and write addresses are random access addresses.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT PCT NUMBERS IB2013000664, US2013051970, US201305935 PREVIOUSLY RECORDED AT REEL: 037444 FRAME: 0787. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Oct 17, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 040450/0715 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0787 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0874 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 13, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 031627/0158 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 13, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031627/0201 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2013
From: JAIN, AARUL; PANDEY, RAKESH; PATEL, ROHIT S.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 031131/0815 →