Page Table Synchronization via RCsync Instruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor computing environments, existing technologies face challenges in synchronizing updates of status indicators in page tables across processors, leading to inefficiencies in memory management operations such as bulk operations and process termination, as updates are not guaranteed to be committed in a timely manner.

Innovation Solution

A synchronization capability is introduced, where a processor initiates an RCsync instruction to ensure that pending updates in cached page table entries are committed to memory, allowing for the invalidation of selected cache entries and facilitating operations like bulk memory changes and process teardowns by ensuring all updates are reflected in memory before proceeding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If cached copies of page table entries are maintained in TLBs to optimize performance, then access speed is improved, but consistency between cache and memory is worsened

Engineering Contradiction:
Improveaccess speedVSAvoidconsistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by initiating a synchronization operation (RCsync instruction) before performing bulk operations or process termination. This ensures that all pending updates to page table status indicators in cached copies are committed to memory in advance, guaranteeing consistency before the operation proceeds. The synchronization operation is performed proactively to prevent potential inconsistency issues.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If updates to page table entries are deferred in cached copies, then productivity is improved, but update commitment timeliness is worsened

Engineering Contradiction:
ImproveproductivityVSAvoidupdate commitment timeliness
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements periodic action by using synchronization operations at specific intervals or trigger points in the system operation. The RCsync instruction is executed periodically or at critical moments (before bulk operations, process termination) to commit accumulated updates. This allows the system to maintain high productivity during normal operation while ensuring timely commitment of updates at appropriate intervals.

Inventive Principle:
Principle #19Periodic action

3Productivity

If bulk operations are performed without synchronizing updates first, then productivity is improved, but reliability is worsened

Engineering Contradiction:
ImproveproductivityVSAvoidreliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by requiring a synchronization operation to be initiated before bulk operations are executed. The RCsync instruction ensures that all pending updates to page table status indicators are committed to memory before the bulk operation proceeds. This preliminary synchronization step guarantees reliability while maintaining productivity, as the actual bulk operation can still be performed efficiently once synchronization is complete.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9390014B2Synchronizing updates of page table status indicators and performing bulk operations
Publication Date: 2016.07.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9390014B2 patent drawing
  • US9390014B2 patent drawing
  • US9390014B2 patent drawing

AI summary

A synchronization capability to synchronize updates to page tables by forcing updates in cached entries to be made visible in memory (i.e., in in-memory page table entries). A synchronization instruction is used that ensures after the instruction has completed that updates to the cached entries that occurred prior to the synchronization instruction are made visible in memory. Synchronization may be used to facilitate memory management operations, such as bulk operations used to change a large section of memory to read-only, operations to manage a free list of memory pages, and/or operations associated with terminating processes.