Memory Controller ROM Error Detection via Suspend Code Address

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory controllers struggle to effectively detect and manage erroneous codes during initialization, leading to suspended operations and inability to identify errors in codes stored in ROM.

Innovation Solution

A memory controller with a debug controller and code executor that sets a suspend code address, allowing for separate initialization and execution of codes, enabling detection of erroneous codes by suspending operations and monitoring code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If codes are executed sequentially without suspension capability, then operational simplicity is maintained, but error detection capability deteriorates

Engineering Contradiction:
Improveerror detection capabilityVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The debug controller pre-loads and stores suspend code addresses in a suspend code address register before code execution begins. This preliminary preparation enables the code executor to quickly suspend execution at predetermined locations without complex real-time decision-making, thereby improving error detection capability while maintaining operational simplicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A debug controller is introduced as an intermediary component between the code memory and the code executor. This mediator manages the suspension and resumption of code execution by comparing current code addresses with stored suspend code addresses, enabling error detection without requiring complex modifications to the core execution pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If initialization operations are performed simultaneously for all components, then initialization speed is improved, but initialization order control deteriorates

Engineering Contradiction:
Improveinitialization speedVSAvoidinitialization order control
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The initialization controller dynamically adjusts the initialization sequence of different components based on their interdependencies. Instead of a fixed sequential or simultaneous initialization approach, the system adaptively determines which components should be initialized first, allowing parallel initialization where possible while maintaining proper ordering where required.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The initialization process is segmented into distinct phases and component groups. The initialization controller manages different segments (debug controller, code executor, memory subsystems) independently, allowing each segment to be initialized in parallel when possible, while ensuring proper inter-segment ordering through controlled handshaking protocols.

Inventive Principle:
Principle #1Segmentation

3Reliability

If suspend code addresses are not stored, then memory usage is minimized, but code execution suspension capability deteriorates

Engineering Contradiction:
Improvecode execution suspension capabilityVSAvoidmemory resource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Suspend code addresses are extracted from the main code memory and stored in a dedicated suspend code address register within the debug controller. This separation allows the system to maintain suspension capability with minimal additional memory resources, as the register stores only the critical suspension points rather than duplicating entire code segments.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system changes the representation of suspend code information from storing complete code segments to storing only critical address parameters. This parameter transformation reduces memory consumption from potentially large code data to compact address values, while preserving the full suspension and resumption functionality through address-based control.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11294780B2Memory controller and operating method thereof
Publication Date: 2022.04.05 SK HYNIX INC
  • US11294780B2 patent drawing
  • US11294780B2 patent drawing
  • US11294780B2 patent drawing

AI summary

A memory controller capable of detecting a code having an error among codes stored in a Read Only Memory (ROM) controls a memory device. The memory controller includes: a code memory for storing codes used to perform an operation; a code executor for executing the codes stored in the code memory to perform the operation; a debug controller for setting a suspend code address for suspending the execution of the codes used to perform the operation; an initialization controller for controlling an initialization operation of at least one of the debug controller and the code executor; and an interfacing component for receiving a suspend code setting request corresponding to an operation of setting the suspend code address and providing the received suspend code setting request to the debug controller.