US5257359A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Instruction cache buffer with program-flow control
Assignee: Renesas Technology America Inc
•
Filing: 1992-07-07
•
Granted: 1993-10-26
•
Expires: 2012-07-07
Abstract
Abstract A memory buffer for buffering data from an external memory to a processor including a cache memory, a first-in-first-out memory, a direct data path, a writing selector for writing data from the external memory to one of the cache memory, first-in-first-out memory and direct data path, a reading selector for reading data from one of the cache memory, first-in-first-out memory and direct data path and a controller for controlling the writing and reading selectors in response to the occurrence of certain conditions.
Inventors
- 👤 Richard Blasco
- 👤 Basant Khaitan
- 👤 Tony J. Chiang
- 👤 Tahir Sheikh
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 18:33
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3814; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0875; G06F9/3808; G06F9/381; G06F12/0888
Claims Analysis
Total Claims: 29
Claim 1
Independent Claim
275 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction path; means for writing program instructions from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct program instruction path, in response to a first control signal; means for reading said program instructions selectively from one of said cache memory, said first-in-first-out memory, and said direct program instruction path, to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched and based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions being transferred for selecting a processor program instruction buffering path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instructions, said second control signal having second characteristics that depend on said program instructions, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory, said first-in-first-out memory, or said direct program instruction path is selected.
Claim 2
Dependent Claim
275 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction path; means for writing program instructions from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct program instruction path, in response to a first control signal; means for reading said program instructions selectively from one of said cache memory, said first-in-first-out memory, and said direct program instruction path, to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched and based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions being transferred for selecting a processor program instruction buffering path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instructions, said second control signal having second characteristics that depend on said program instructions, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory, said first-in-first-out memory, or said direct program instruction path is selected.
Claim 3
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 1, further comprising means for flushing said cache memory and said first-in-first-out memory in response to predetermined conditions of each of said indicia.
Claim 4
Dependent Claim
41 words
An intelligent program-flow controlled memory buffer in accordance with claim 1, wherein said cache memory is a dual ported cache memory, said dual ports providing concurrent coupling of said cache memory to said means for reading and said means for writing.
Claim 5
Dependent Claim
47 words
An intelligent program-flow controlled memory buffer in accordance with claim 1, wherein said indicia comprises instruction type received from said external memory, instruction type requested by said processor, range of addresses stored in said cache memory, contents of said cache memory, and contents of said first-in-first-out memory.
Claim 6
Dependent Claim
46 words
An intelligent program-flow controlled memory buffer in accordance with claim 4, wherein said control means comprises a means for sensing the type of program instruction, the range of the addresses stored in the cache memory and the contents of said cache memory and said first-in-first-out memory.
Claim 7
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 1, wherein said intelligent program-flow controlled memory buffer is implemented utilizing very large scale integrated circuit techniques in a single integrated circuit chip.
Claim 8
Dependent Claim
252 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instruction data from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data and based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data being transferred for selecting a processor program instruction data path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instruction data, said second control signal having second characteristics that depend on said program instruction data, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory or said first-in-first-out memory is selected.
Claim 9
Dependent Claim
252 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instruction data from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data and based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data being transferred for selecting a processor program instruction data path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instruction data, said second control signal having second characteristics that depend on said program instruction data, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory or said first-in-first-out memory is selected.
Claim 10
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 7, further comprising means for flushing said cache memory and said first-in-first-out memory in response to predetermined conditions of each of said indicia.
Claim 11
Dependent Claim
250 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instructions from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instructions selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched and said condition of each of said predetermined plurality of indicia of said program instructions being transferred for selecting a processor program instruction buffering path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instructions, said second control signal having second characteristics that depend on said program instructions, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory or said first-in-first-out memory is selected.
Claim 12
Dependent Claim
250 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instructions from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instructions selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; and control means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched and said condition of each of said predetermined plurality of indicia of said program instructions being transferred for selecting a processor program instruction buffering path for a particular processor program by dynamically generating said first and second control signals, said first control signal having first characteristics that depend on said program instructions, said second control signal having second characteristics that depend on said program instructions, said first and said second characteristics indicating to said means for writing and said means for reading respectively, which one of said cache memory or said first-in-first-out memory is selected.
Claim 13
Dependent Claim
47 words
An intelligent program-flow controlled memory buffer in accordance with claim 7, wherein said indicia comprises instruction type received from said external memory, instruction type requested by said processor, range of addresses stored in said cache memory, contents of said cache memory, and contents of said first-in-first-out memory.
Claim 14
Dependent Claim
46 words
An intelligent program-flow controlled memory buffer in accordance with claim 10, wherein said control means comprises a means for sensing the type of program instruction, the range of the addresses stored in the cache memory and the contents of said cache memory and said first-in-first-out memory.
Claim 15
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 7, wherein said intelligent program-flow controlled memory buffer is implemented utilizing very large scale integrated circuit techniques in a single integrated circuit chip.
Claim 16
Dependent Claim
307 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction data path; means for writing program instruction data from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct data path, in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory, said first-in-first-out memory, and said direct data path, to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data; means for selecting a processor program instruction data path for a particular processor program instruction retrieval from among a plurality of available data paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined data paths comprising said cache memory, said first-in-first-out memory, and said direct data path, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory, said first-in-first-out memory, or said direct data path.
Claim 17
Dependent Claim
307 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction data path; means for writing program instruction data from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct data path, in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory, said first-in-first-out memory, and said direct data path, to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data; means for selecting a processor program instruction data path for a particular processor program instruction retrieval from among a plurality of available data paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined data paths comprising said cache memory, said first-in-first-out memory, and said direct data path, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory, said first-in-first-out memory, or said direct data path.
Claim 18
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 13, further comprising means for flushing said cache memory and said first-in-first-out memory in response to predetermined conditions of each of said indicia.
Claim 19
Dependent Claim
317 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow sped memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction path; means for writing program instructions from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct program instruction path in response to a first control signal; means for reading said program instructions selectively from one of said cache memory, said first-in-first-out memory, and said direct program instruction path, to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched; means for selecting a processor program instruction buffering path for a particular processor program instruction retrieval from among a plurality of available program instruction paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined program instruction paths comprising said cache memory, said first-in-first-out memory, and said direct program instruction path, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory, said first-in-first-out memory, or said direct program instruction path.
Claim 20
Dependent Claim
317 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow sped memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; a direct program instruction path; means for writing program instructions from said external memory selectively to one of said cache memory, said first-in-first-out memory, and said direct program instruction path in response to a first control signal; means for reading said program instructions selectively from one of said cache memory, said first-in-first-out memory, and said direct program instruction path, to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched; means for selecting a processor program instruction buffering path for a particular processor program instruction retrieval from among a plurality of available program instruction paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined program instruction paths comprising said cache memory, said first-in-first-out memory, and said direct program instruction path, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory, said first-in-first-out memory, or said direct program instruction path.
Claim 21
Dependent Claim
47 words
An intelligent program-flow controlled memory buffer in accordance with claim 13, wherein said indicia comprises instruction type received from said external memory, instruction type requested by said processor, range of addresses stored in said cache memory, contents of said cache memory, and contents of said first-in-first-out memory.
Claim 22
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 13, wherein said intelligent program-flow controlled memory buffer is implemented utilizing very large scale integrated circuit techniques in a single integrated circuit chip.
Claim 23
Dependent Claim
285 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instruction data from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data; means for selecting a processor program instruction data path for a particular processor program instruction retrieval from among a plurality of available data paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined data paths comprising said cache memory and said first-in-first-out memory, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory or said first-in-first-out memory.
Claim 24
Dependent Claim
285 words
An intelligent program-flow controlled memory buffer for buffering program instruction data from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instruction data from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instruction data selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instruction data; means for selecting a processor program instruction data path for a particular processor program instruction retrieval from among a plurality of available data paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instruction data, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined data paths comprising said cache memory and said first-in-first-out memory, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory or said first-in-first-out memory.
Claim 25
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 18, further comprising means for flushing said cache memory and said first-in-first-out memory in response to predetermined conditions of each of said indicia.
Claim 26
Dependent Claim
41 words
An intelligent program-flow controlled memory buffer in accordance with claim 18, wherein said cache memory is a dual ported cache memory, said dual ports providing concurrent coupling of said cache memory to said means for reading and said means for writing.
Claim 27
Dependent Claim
293 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instructions from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instructions selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched; means for selecting a processor program instruction buffering path for a particular processor program instruction retrieval from among a plurality of available program instruction paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined program instruction paths comprising said cache memory and said first-in-first-out memory, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information d determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory or said first-in-first-out memory.
Claim 28
Dependent Claim
293 words
An intelligent program-flow controlled memory buffer for buffering program instructions from an external memory made up of relatively slow speed memory elements to a processor which operates at relatively high speeds, said program-flow controlled memory buffer comprising: at least one cache memory made up of relatively high speed memory elements; at least one first-in-first-out memory made of relatively high speed memory elements, said first-in-first-out memory being substantially smaller than said cache memory; means for writing program instructions from said external memory selectively to one of said cache memory and said first-in-first-out memory in response to a first control signal; means for reading said program instructions selectively from one of said cache memory and said first-in-first-out memory to said processor in response to a second control signal; means for sensing a condition of each of a predetermined plurality of indicia of said program instructions to determine what type of instruction is currently being prefetched; means for selecting a processor program instruction buffering path for a particular processor program instruction retrieval from among a plurality of available program instruction paths based on predetermined rules and said condition of each of said predetermined plurality of indicia of said program instructions, so that efficient processor operation is achieved for different types of program instructions, said plurality of predefined program instruction paths comprising said cache memory and said first-in-first-out memory, said types of program instruction comprising repetitive program loops, non-repetitive instruction sequences, conditional jumps, and conditional branches; and means for generating said first and second control signals having control information d determined by said means for selecting, said control information comprising information to which said means for writing and said means for reading are responsive to, and which identifies one of said cache memory or said first-in-first-out memory.
Claim 29
Dependent Claim
33 words
An intelligent program-flow controlled memory buffer in accordance with claim 18, wherein said intelligent program-flow controlled memory buffer is implemented utilizing very large scale integrated circuit techniques in a single integrated circuit chip.
References Cited (Backward Citations)
US3938097A
Cited
US4571674A
Cited
US4905196A
Cited
US4654778A
Cited
EP0173981A2
Cited
US4918597A
Cited
EP0207439A2
Cited
US4949252A
Cited
EP0279421A2
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-10-25 | 1997-04-26 | 1997-10-26 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-10-25 | 2001-04-26 | 2001-10-26 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-10-25 | 2005-04-26 | 2005-10-26 | $7700.00 | Window Closed / Lapsed |