Hamming Code Handoff for Distributed Memory Write Error Checking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-core systems face challenges with coherency issues due to multiple processing cores accessing shared memory addresses, leading to operational inefficiencies and outdated data retrieval, which traditional software cache maintenance operations fail to address effectively.
Innovation Solution
Implementing a multi-core shared memory controller (MSMC) with a snoop filter bank, cache tag bank, and memory bank, along with an arbitration and data path manager to enforce coherency and manage memory access requests, utilizing hardware-based coherency controllers and virtual channels to reduce wiring and improve efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software cache maintenance operations are used to manage coherency, then coherency can be maintained, but operational efficiency deteriorates due to slow performance and excessive operational time consumption
Solution Approach 1:
The patent replaces software-based cache maintenance operations with a hardware-based coherency controller that automatically manages cache coherency. The coherency controller includes snoop filter banks, cache tag banks, and memory banks that operate in hardware to detect and maintain coherency states, eliminating the need for software intervention and thereby improving operational efficiency while maintaining coherency reliability.
Solution Approach 2:
The coherency controller is configured to automatically monitor and maintain cache coherency without requiring software cache maintenance operations. The hardware controller self-manages the coherency states by intercepting memory access requests, checking cache tags, and coordinating between multiple caches, thereby enabling the system to self-service its coherency needs and improve operational efficiency.
2Adaptability or versatility
If multiple processing cores access shared memory addresses simultaneously, then system functionality is enhanced, but coherency issues arise leading to outdated data retrieval
Solution Approach 1:
The patent introduces a coherency controller as an intermediary between multiple processing cores and shared memory. The controller intercepts memory access requests from multiple cores, checks cache tag banks to determine coherency states, and coordinates access to ensure that all cores retrieve up-to-date data. This intermediary mechanism enables multi-core access capability while maintaining data coherency reliability.
Solution Approach 2:
The coherency controller implements feedback mechanisms by continuously monitoring cache access patterns and coherency states. When a memory access request is intercepted, the controller checks the cache tag banks, determines the current coherency state, and provides feedback to coordinate subsequent accesses. This feedback loop ensures that multiple cores can access shared memory simultaneously while maintaining data coherency.
3Device complexity
If traditional memory access methods are used without coherency control, then device complexity is reduced, but operational inefficiencies and latency increase
Solution Approach 1:
The patent merges the coherency control functionality into the memory controller itself, combining cache tag banks, snoop filter banks, and memory banks into a unified coherency controller. This integration allows the memory controller to simultaneously manage memory access and enforce coherency policies, thereby maintaining operational efficiency without significantly increasing device complexity.
Solution Approach 2:
The coherency controller is designed with multi-functionality, serving as both a memory controller and a coherency management unit. It handles memory access requests, checks cache tags, monitors coherency states, and coordinates between multiple caches, thereby performing multiple functions within a single controller and avoiding the need for separate coherency management hardware that would increase complexity.
Data Source
AI summary
A device includes a data path, a first interface connected to the data path and configured to receive a request from a processor package to write a data value to a memory address, and a controller connected to the data path and configured to receive the request to write the data value to the memory address and to calculate a Hamming code of the data value. The controller is configured to transmit the data value and the Hamming code on the data path. The device includes an external memory interleave connected to the data path. The external memory interleave is configured to receive the data value and calculate a test Hamming code of the data value and to determine whether to send the data value to an external memory interface to be written to the memory address based on a comparison of the Hamming code and the test Hamming code.


