← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag