Branch Resolution Routine for Program Block Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing information processing techniques face challenges in achieving fast and efficient access to programs due to limitations in memory capacity and data transfer rates, requiring manual division of programs into modules and manual loading into high-speed memory, which is burdensome for programmers, especially for large and complex programs.
Innovation Solution
An information processing apparatus and method that divides a program into blocks, storing them in both a main memory and a local memory, with a processor that loads and processes program blocks from the main memory to the local memory, using a branch resolution routine to manage access and caching, thereby reducing the need for frequent main memory access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a program is stored entirely in a high-speed memory, then access speed is improved, but the memory capacity requirement increases
Solution Approach 1:
The program is divided into multiple program blocks that can be selectively loaded into the high-speed memory (local memory). Only the currently needed program blocks are stored in the local memory, while other blocks remain in the main memory. This segmentation allows fast access to active code segments without requiring the entire program to reside in high-speed memory.
Solution Approach 2:
The system performs preliminary loading of program blocks into the local memory before they are needed for execution. The branch resolution routine predicts potential branch targets and pre-loads those program blocks into the local memory, so that when a branch is actually taken, the target code is already available in high-speed memory, eliminating access delays.
2Productivity
If a program is manually divided into modules and loading is manually described, then access efficiency is improved, but programming complexity increases
Solution Approach 1:
The system implements automatic program block management through the branch resolution routine, which autonomously determines which program blocks to load into local memory based on branch instructions in the code. The compiler automatically inserts branch resolution routines that monitor program execution and dynamically load required blocks, eliminating the need for programmers to manually divide programs or write loading code.
Solution Approach 2:
The branch resolution routine acts as an intermediary between the program code and the memory loading mechanism. It intercepts branch instructions, determines whether the target block is already in local memory, and automatically loads the required blocks. This intermediary layer shields the programmer from the complexity of memory management while optimizing program access efficiency.
Data Source
AI summary
A main memory stores cache blocks obtained by dividing a program. At a position in a cache block where a branch to another cache block is provided, there is embedded an instruction for activating a branch resolution routine for performing processing, such as loading of a cache block of the branch target. A program is loaded into a local memory in units of cache blocks, and the cache blocks are serially stored in first through nth banks, which are sections provided in the storage area. Management of addresses in the local memory or processing for discarding a copy of a cache block is performed with reference to an address translation table, an inter-bank reference table and a generation number table.


