# US 9,519,442 B2 · Method for concurrent system management and error detection and correction requests in integrated circuits through location aware avoidance logic

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,442 B2
- Document ID: US9519442B2
- Status: Granted
- Kind: B2
- Application number: 14/524,970
- Filed: 2014-10-27
- Published: 2016-04-28
- Granted: 2016-12-13
- Earliest claimed: 2014-10-27
- Assignees: Aeroflex Colorado Springs Inc.
- Applicants: Aeroflex Colorado Springs Inc.
- Inventors: Christopher Mnich; Jonathan Mabra; Matthew Von Thun
- Web page: https://patentgrep.com/patent/US9519442B2

## CPC

- G06F 3/0673: {Single storage device}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 11/106: {Correcting systematically all correctable errors, i.e. scrubbing}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 2211/1088: Scrubbing in RAID systems with parity
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of incorporating active error correction inside a memory device is used, whereby memory scrub cycles can be completely hidden from an end user. The method simplifies the design of the memory interface and simplifies the data integrity management unit for the end user. An arbitration unit is implemented to allow concurrent processing of primary (user) and secondary (scrub) requests. The arbitration unit is location aware in context to the primary interface and is responsible for eliminating overlapping memory requests.

## Claims

### Claim 1

A memory system capable of concurrent system management comprising:
a core memory;
primary interface logic coupled to the core memory;
a secondary interface controller;
an arbitration unit coupled to the primary interface logic, the secondary interface controller, and the core memory;
a scratchpad memory coupled to the arbitration unit;
a primary error detection and correction circuit coupled between the primary interface logic and the core memory; and
a secondary error detection and correction circuit coupled between the secondary interface controller and the core memory.

### Claim 2 (depends on 1)

The memory system of claim 1 wherein the primary interface logic is configured to received user commands, addresses, and data.

### Claim 3 (depends on 1)

The memory system according to claim 1 wherein the core memory comprises:
a plurality of banks of memory, each comprised of a plurality of rows and columns;
a primary command port;
a secondary command port;
a primary data port; and
a secondary data port.

### Claim 4 (depends on 3)

The memory system according to claim 3 wherein the primary command port is configured to perform user operations in the core memory.

### Claim 5 (depends on 3)

The memory system according to claim 3 wherein the secondary command port is configured to perform non-user operations in the core memory.

### Claim 6 (depends on 3)

The memory system according to claim 3 wherein the primary data port is configured to transmit and receive user data to and from the core memory.

### Claim 7 (depends on 3)

The memory system according to claim 3 wherein the secondary data port is configured to transmit and receive non-user data to and from the core memory.

### Claim 8 (depends on 1)

The memory system according to claim 1 wherein the primary interface logic is configured to facilitate user requests to and from the core memory.

### Claim 9 (depends on 1)

The memory system according to claim 1 wherein the secondary interface controller is configured to facilitate non-user requests to and from the core memory.

### Claim 10 (depends on 1)

The memory system according to claim 1 wherein the arbitration unit is configured to determine the operation presented to the secondary command port of the core memory.

### Claim 11 (depends on 1)

The memory system according to claim 1 wherein the scratchpad memory is configured to transmit and receive information regarding unresolved user/non-user conflicted memory locations to the arbitration unit.

### Claim 12 (depends on 1)

The memory system according to claim 1 wherein the memory system is configured to allow background operations to proceed through the core memory instead of being delayed by unresolved user/non-user conflicts.

### Claim 13 (depends on 1)

The memory system according to claim 1 wherein the secondary bus is always presented with at least two valid operations such that secondary (internal) operations will always allow background operations to proceed through the core memory instead of being delayed by unresolved user/non-user conflicts.

### Claim 14 (depends on 1)

The memory system according to claim 1 wherein the core memory comprises a single-port or multi-port memory.

### Claim 15

A concurrent system management method for a memory system, the method comprising:
providing a memory comprising a plurality of memory cells, wherein each memory cell comprises one or more access ports, and wherein the memory cells are arranged into banks;
providing a command arbitration unit coupled to the memory to enable concurrent processing of multiple internally and externally generated commands;
providing an input clock for the memory system;
queuing multiple internally generated memory commands using the command arbitration unit;
issuing an externally generated command;
defining memory array access priorities internally using an on-chip algorithm that is not affected by the externally generated memory commands;
issuing a highest priority request;
concurrently issuing lower priority requests to a memory interface with the highest priority request;
receiving an input clock event;
all commands issued by the command arbitration unit are processed by the bank associated with each request; and
the command arbitration unit preserves unprocessed lower priority commands for a future input clock event.

### Claim 16 (depends on 15)

The method of claim 15 wherein the multiple memory commands are associated with a respective memory bank.

### Claim 17 (depends on 15)

The method of claim 15 wherein the method is repeated from the queuing step.

### Claim 18 (depends on 15)

The method of claim 15 wherein the memory comprises a single-port memory.

### Claim 19 (depends on 15)

The method of claim 15 wherein the memory comprises a multi-port memory.
