JPH02236651A - メモリバッファ - Google Patents

メモリバッファ

Info

Publication number
JPH02236651A
JPH02236651A JP2029389A JP2938990A JPH02236651A JP H02236651 A JPH02236651 A JP H02236651A JP 2029389 A JP2029389 A JP 2029389A JP 2938990 A JP2938990 A JP 2938990A JP H02236651 A JPH02236651 A JP H02236651A
Authority
JP
Japan
Prior art keywords
memory
cache memory
cache
instruction
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2029389A
Other languages
English (en)
Inventor
Kee Kaitan Basanto
バサント ケー カイタン
Daburiyuu Burasuko Richiyaado
リチャード ダブリュー ブラスコ
Jiennpin Chiyangu Tonii
トニー ジェン‐ピン チャング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH02236651A publication Critical patent/JPH02236651A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はメモリバッファさらにはプロセッサのプログラ
ムメモリバッファに係り,例えばディジタルシグナルプ
ロセッサに適用して有効な技術に関するものである. 〔従来の技術〕 相対的に動作速度の遅い外部メモリから相対的に動作速
度の速いプロセッサへ情報をバッファリングする幾つか
の公知の方式やシステムがある.同システムとしては,
一定の少数のビットで構成されている極めて単純なレジ
スタから大容量キャッシュメモリに至るまで各種のもの
がある.また、このようなレジスタやキャッシュメモリ
などはハードウェアとソフトウエアの双方によってその
機能を実現している. 〔発明が解決しようとする課題〕 斯る従来のメモリバソファリング技術は、プロセッサの
動作プログラムに含まれるようなインストラクションを
外部メモリよりも速い速度でプロセッサへ送るような場
合に利用することができるが,プロセッサの様々なイン
ストラクションフェッチの条件を満足することができな
いという問題点がある.例えばプロセッサが反復プログ
ラムループからのフェッチを必要とする場合があり,キ
ャッシュメモリはそのためインストラクションのフェッ
チを効率的に処理することができるが、簡単な構成のレ
ジスタでは有効に処理できない。また、プロセッサが特
定のシーケンスから非反復インストラクションをリクエ
ストする場合があり、レジスタはそのフェッチを有効に
処理するが、キャッシュメモリは有効に処理できない.
また、従来の技術ではインストラクションの実行に呼応
してバッファリングするため、インストラクションをデ
コードもしくは実行しなければそのインストラクション
タイプを知ることができない.さらにプロセッサが条件
付きジャンプもしくはブランチのためのインストラクシ
ョンをリクエストもしくはフェッチする場合があり,そ
の場合には当該インストラクシ目ンに対してキャッシュ
メモリもレジスタも有効に処理することができない.本
発明の目的は、相対的に動作速度の遅い外部メモリと、
リクエストしてフエツチしたインストラクションに従っ
たオペレーションを実行するプロセッサとの間のメモリ
バッファリング技術を提供することにある。
更に詳述すれば、本発明は、反復プログラムループ、非
反復インストラクションシーケンス、及び条件付きジャ
ンプもしくはブランチを有効に処理するメモリバッファ
を提供することを目的とする。本発明はまた,超大規模
集積回路技術を応用した単一集積回路チップに含まれる
メモリバッファを提供することを目的とする。また、本
発明は、プログラムフローを予測することができるメモ
リバッファを提供しようとする.さらに本発明は、ディ
ジタルシグナルプロセッサやマイクロコンピュータのた
めのメモリバッファを提供することを目的とする。
本発明の前記並びにその他の目的と新規な特徴は本明細
書の記述並びに添付図面から明らかになるであろう. 〔課題を解決するための手段〕 本願にお・いて開示される発明のうち代表的なものの概
要を簡単に説明すれば下記の通りである。
すなわち、相対的に低アクセス速度の外部メモリから相
対的に高速度で機能するプロセッサへデータをバッファ
リングするメモリバッファとして構成されるものであり
、相対的に高アクセス速度のキャッシュメモリ並びにそ
れよりも記憶容量が小さく且つ高速アクセス可能な先入
れ先出しメモリと、直通データ伝送路とを、外部メモリ
とプロセッサとの間に配置する.そして,第1制御信号
に応じて前記外部メモリから、前記キャッシュメモリ.
先入れ先出しメモリ、直通データ伝送路の内の一つにデ
ータを書き込み可能にすると共に、第2制御信号に応じ
て前記キャッシュメモリ、先入れ先出しメモリ、直通デ
ータ伝送路の内の一つからプロセッサへデータを読出し
可能にし、このとき制御手段により、複数のインディシ
ア情報の夫々の状態を検出し、各インディシア情報の状
態に応じて前記第1、第2制御信号を発生させるように
するものである. ここで、前記各インディシア情報としては,外部メモリ
から送られてくるインストラクシ3ンタイプ、前記キャ
ッシュメモリに割り当てられているアドレスのレンジ,
及び前記キャッシュメモリ並びに先入れ先出しメモリの
保有情報を採用することができる. さらにインディシア情報の組合せ条件に応じて前記キャ
ッシュメモリ及び先入れ先出しメモリの記憶情報をクリ
アもしくはフラッシングすることができる。
このクリアもしくはフラッシング待ちの状態でインスト
ラクションフエツチが停止されてもよい場合には直通デ
ータ伝送路を省いて構成してもよい. このようなメモリバッファは1チップ型のマイクロコン
ピュータと同一の半導体基板に構成することができる. 〔作 用〕 上記した手段よれば、キャッシュメモリには反復的に利
用される反復ループインストラクションのような情報を
バッファリングし、先入れ先出しメモリには反復的に利
用され難い非反復ループインストラクションのような情
報をバツファリングし,直通データ伝送路は条件付きジ
ャンプインストラクションのように例外的に利用される
ような情報などの直通路として割り当てられる.実際に
バッファリングすべき情報に対してどの経路を選択する
かはインディシア情報に基づいて制御手段が最適化制御
する。これにより、プロセッサはその動作上必要な低速
外部メモリ上の情報をそしの動作手順に応じて効率的に
且つ高速に受け取るようになる. 〔実 施 例〕 第1図には本発明の一実施例に係るメモリバ・ソファの
概略ブロック図が示される. 同図に示されるメモリバッファの構成要素としてのキャ
ッシュメモリ2は,プロセッサよりも速度が速い複数の
メモリエレメントで構成されている.キャッシュメモリ
2はまた、1ワードNビツトによりMワードで構成され
ている。一例として,ワード数は128、1ワードのビ
ット数は16である.したがって、キャッシュメモリ2
に格納されているもしくは割り当てられているアドレス
のレンジは、[第1インストランション+M].即ち[
第1アドレス+128]のアドレスである.また、本発
明の一実施例に係るメモリバッファの構成要素としての
先入れ先出しメモリ4も、プロセッサよりも速度が速い
複数のメモリエレメントで構成されている。先入れ先出
しメモリ4は,1ワードLビットによりKワードで構成
されている。一例として、Kは8、16などの数であり
、Lは16である. メモリバッファの入力側にはデマルチブレクサのような
第1選択スイッチ回路6が設けられており、第1選択ス
イッチ回路6の入力側には相対的に遅い外部メモリが接
続されている.メモリバッファの出力側にはマルチブレ
クサのような第2選択スイッチ回路8が設けられており
、この第2選択スイッチ回路8の出力側はプロセッサに
接続されている。
第1選択スイッチ回路6及び第2選択スイッチ回路8は
論理ゲートもしくは論理トランジスタによって構成する
ことができる。第1選択スイッチ回路6は、入力数が1
であり、出力数が3である。
第2選択スイッチ回路8は、入力数が3であり、出力数
が1である. 第1選択スイッチ回路6の第1出力はキャッシュメモリ
2の入力に接続され,キャッシュメモリ2の出力は第2
選択スイッチ回路8の第1人力に接続されている。第1
選択スイッチ回路6の第2出力は先入れ先出しメモリ4
の入力に接続され、先入れ先出しメモリ4の出力は第2
選択スイッチ回路8の第2人力に接続されている.第1
選択スイッチ回路6の第3出力は第2選択スイッチ8の
第3人力に直結されており,その間がバイパス経路10
を形成している. 構成要素としてさらに,制御ロジック12が外部メモリ
とプロセッサに接続されており、さらにキャッシュメモ
リ2と先入れ先出しメモリ4に接続されている.この接
続関係において、外部メモリ、プロセッサ、キャッシュ
メモリ2,及び先入れ先出しメモリ4に接続された制御
ロジック12が、キャッシャメモリ2のアドレスのレン
ジ、キャッシュメモリ2並びに先入れ先出しメモリ4の
保有情報、外部メモリから受け取るインストラクション
のタイプ、そしてプロセッサがリクエストするインスト
ラクションのタイプを夫々チェックする。また、制御ロ
ジック12は、それらチックした条件に基づいてキャッ
シュメモリ2及び先入れ先出しメモリ4をクリアもしく
はフラッシングしてその内容を消去若しくは書き換える
.制御ロジック12は、外部メモリからキャッシュメモ
リ2或いは先入れ先出しメモリ4又はバイパス経路10
ヘインストラクションが読み込まれることをチェックす
る制御信号,そして、プロセッサへ送られるインストラ
クションがキャッシュメモリ2或いは先入れ先出しメモ
リ4又はバイパス経路10から読み出されることをチェ
ックする制御信号を発生し,第1選択スイッチ回路6及
び第2選択スイッチ回路8へ送る. 制御ロジック12の働きにより、外部メモリから送られ
てくるインストラクションのアドレスがキャッシュメモ
リ2のレンジ外であるとき,先入れ先出しメモリ4が満
杯になっていなければ,外部メモリから送られてくるイ
ンストラクションが先入れ先出しメモリ4に書き込まれ
る,また、反復ループインストラクションが検知され、
反復ループのインストラクションのアドレスがキャッシ
ュメモリ2のアドレスのレンジ内であって,キャッシュ
メモリ4に存在していなければ外部メモリから送られて
くるインストラクションがキャッシュメモリ2に書き込
まれる。また、次の3つのケースの場合,即ち、インス
トラクションが条件付きブランチもしくはジャンプであ
る場合,インストラクシミンのアドレスがキャッシュメ
モリ2のアドレスのレンジ外であって先入れ先出しメモ
リ4が空である場合,インストラクションのアドレスが
キャッシュメモリ2のアドレスのレンジ内であっても当
該キャッシュメモリ2に存在していない場合には、外部
メモリから送られてくるインストラクションがパイバス
経路10に伝達もしくは書き込まれ,これをプロセッサ
が読み出す。尚13つのケースの内の第3番目のケース
においては、インス1−ラクションはキャッシュメモリ
2にも書き込まれるがキャッシュメモリ2からは読み出
されない. プロセッサがリクエストする若しくはフェッチすべきイ
ンストラクションは,キャッシュメモリ2のアドレスの
レンジ内であって,キャッシュメモリ2に存在していれ
ば同メモリ2から読み出される。アドレスがキャッシュ
メモリ2のアドレスのレンジ外であって、先入れ先出し
メモリ4が空でなく、また、先行インストラクションが
条件付きブランチもしくはジャンプでなかった場合は先
入れ先出しメモリ4から読み出される。
また,制御ロジック12の働きにより、特定の条件でキ
ャッシュメモリ2と先入れ先出しメモリ4はクリアもし
くはフラッシングされる.具体的には、反復ループイン
ストラクションがキャッシュメモリ2のアドレスのレン
ジ外であればキャッシュメモリ2がフラッシングされ、
バイパス経路10が必要になる場合には先入れ先出しメ
モリ4がフラッシングされる。
動作原理としては、プロセッサが外部メモリに対してイ
ンストラクションのフェッチリクエストを行う.第1フ
ェッチが行われるときにキャッシュメモリ2と先入れ先
出しメモリ4は空になっている.キャッシュメモリ2と
先入れ先出しメモリ4が空である故、制御ロジック12
の作用によって外部メモリからバイパス経路10を介し
てインストラクションがフェッチされる.また、インス
トラクションが反復インストラクションであり、ループ
の最終インストラクションがキャッシュメモリ2のレン
ジ内であることを制御ロジック12が検知した場合は、
反復インストラクションがループの他のインストラクシ
ョンと共にキャッシュメモリ2に書き込まれる.インス
トラクションが反復インストラクションではなく,キャ
ッシュメモリ2のレンジ外であることを制御ロジック1
2が検知した場合は,制御ロジックl2から送られてく
る制御信号に応じて第1選択スイッチ回路6が働き、イ
ンストラクションが先入れ先出しメモリ4に書き込まれ
る.続いてプロセッサが次のインストラクションをリク
エスト或いはフェッチする。同インス1ヘラクションの
アドレスがキャッシュメモリ2のアドレスのレンジ内で
あって、キャッシュメモリ2に存在していることを制御
ロジック12が検知した場合は、インストラクシミンが
キャッシュメモリ2から読み出される。これに対して,
インストラクションのアドレスがキャッシュメモリ2の
アドレスのレンジ内であっても当該キャッシュメモリ2
に存在していないことを制御ロジック12が検知した場
合は、制御ロジック12から送られてくる制御信号に応
じて第1選択スイッチ回路6と第2選択スイッチ回路8
が働き、インストラクションが再びバイパス経路10を
介してフェッチされ、さらにキャッシュメモリ2に書き
込まれる.同様にして、制御ロジック12は、プロセッ
サのフェッチリクエスト、キャッシュメモリ2のコンテ
ンツもしくは保有情報並びにアドレスレンジ、先入れ先
出しメモリ4のコンテンッ若しくは保有情報,プロセッ
サがリクエストするインストラクションのタイプ及びそ
のアドレス並びに外部メモリへリクエストするインスト
ラクションタイプに応じて、インストラクションをメモ
リバッファに書込み,メモリバッファからプロセッサへ
読出す6 第2図にはディジタルシグナルプロセッサに適用される
本実施例のメモリバソファの詳細ブロック図が示される
.同図に示されるメモリバッファの構造は第2図に示さ
れる通りであって、同図の実線はデータ/アドレス情報
を伝達する信号線もしくはバスを示し、点線は制御信号
線を示す。同図に示されるメモリバッファの主要構成要
素は、キャッシュメモリ20、先入れ先出しメモリ22
、バイパス24、ブリフェッチシーケンサ26、プログ
ラムシーケンサ28、アドレスオフセットレジスタ30
、フラッシングロジック回路32、ブリフェッチシーケ
ンサインストラクションタイプデコーダ34,及びプロ
グラムシーケンサインストラクションタイプデコーダ3
6である。
キャッシュメモリ20は、前述と同様に各NビットでM
ワードを格納する複数のメモリエレメントで構成されて
いる。また、該当するメモリアドレスにおける格納情報
の有効性を指示するタグピットが追加されている。例え
ば、M=128.N=16とすると、キャッシュメモリ
20は1ワード16ビットと1ビットのタグビットのペ
アを128個格納可能にされる。
先入れ先出しメモリ22は、前述と同様に各Lビットで
Kワードを格納する複数のメモリエレメントで構成され
ている.先入れ先出しメモリ22のワード数は一般的に
少ない。
ブリフェッチシーケンサ26は、ブリフェッチシーケン
サロジック38、ブリフェッチカウンタ40、及びブリ
フェッチスタック42によって構成される.プログラム
シーケンサ28は、プログラムシーケンサロジック44
、プログラムカウンタ46、及びプログラムスタック4
8によって構成される。ブリフェッシーケンサ26及び
プログラムシーケンサ28は,特に制限されないが,標
準的な論理回路、カウンタ、フリップフロツプなどの各
種順序回路や組合せ回路又はシーケンシャルロジック回
路によって構成することができる。
ブリフェッチシーケンサインストラクションタイプデコ
ーダ34は外部メモリから送られてくるインストラクシ
ョンをチェックし、同情報をブリフェッチシーケンサ2
6へ送る.プログラムシーケンサインストラクションタ
イプデコーダ36はプロセッサがリクエストするインス
トラクションをチェックし、同情報をプログラムシーケ
ンサ28へ送る.アドレスオフセットレジスタ3oは、
キャッシュメモリ20のアドレスのレンジ内の外部メモ
リ50の実アドレスを追跡するための演算器である.ア
ドレスオフセットレジスタ3oは,キャッシュメモリ2
o内の第1アドレスを指定するアドレスを外部メモリ5
0がら受け、続いて同アドレスにNを加える.これに原
アドレスを加えたものがキャッシュメモリ20のレンジ
になる.この情報レンジがブリフェッチシーケンサ26
とプログラムシーケンサ28へ送られる.フラッシング
ロジック回略32は,ブリフェッチシーケンサ26から
制御信号を受け、キャッシュメモリ20と先入れ先出し
メモリ22へ送り,特定の条件で両メモリをクリア若し
くはフラッシングする.第2図,そして外部メモリから
のブリフェッチ制御並びにプログラム制御のフローチャ
ートを示す第3図を参照しなからディジタル信号処理プ
ロセスについて説明する. ブリフェッチシーケンサ26の働きによってキャッシュ
メモリ20、先入れ先出しメモリ22、バイパス24に
おけるインストラクシ目ンの読出し/書込みが行われる
.また、ブリフェッチシーケンサ26の働きによって外
部メモリ50へアドレスが転送され,外部メモリ50と
の間で情報が送受される.プログラムシーケンサ28は
、キャッシュメモリ20,先入れ先出しメモリ22、バ
イパス24から情報を取り出し、これをプロセッサのイ
ンストラクションデコーダなどに与える。
プリフェッチシーケンサ26は、外部メモリ50から送
られてくる反復インストラクションがキャッシュメモリ
2oのレンジ内であってもキャッシュメモリ20に存在
しないことを検出すればキャッシュメモリ20にインス
トラクションを書き込む.即ち、プリフェッチシーケン
サ26は、アドレスオフセットレジスタ30から送られ
てくるデータをチェックし、反復インストラクションの
アドレスがキャッシュメモリ2oのアドレスのレンジ内
であるかどうかをチェックする.同インストラクション
のアドレスがキャッシュメモリ20のレンジ内であれば
ブリフェッチシーケンサ26はキャッシュメモリ20内
の所要反復インストラクシゴンのアドレスに係るタグピ
ットをチェックし,同タグピットが有効であるかどうか
をチェックする.タグピットが有効でなければ(例えば
タグピット=0)、ブリフエツチシーケンサ26は外部
メモリ50から送られてくる反復インストラクションを
キャッシュメモリ20に書き込む指示を出す.プリフェ
ッシーケンサ26はまたキャッシュメモリ20において
タグピットをセットし、キャッシュメモリ20のこのメ
モリ位置に有効データが存在していることを指示する。
一方、タグピットが有効であれば(例えばタグピット=
1)、ブリフェッチシーケンサ26は外部メモリ50か
ら送られてくるインストラクションのフェッチをぬかす
。また、ブリフェッチシーケンサ26は、キャッシュメ
モリ20からフェッチされるインストラクションである
か外部メモリ50からフエッチされるインストラクショ
ンであるかの別に関係なくフェッチした全てのインスト
ラクシ五ンをデコードする。このようにしてブリフェッ
チシーケンサ26はプログラl1シーケンサ28とは無
関係にプログラムフローを追跡する.ブリフエッチシー
ケンサ26がキャッシュメモリ20の書込み或いは読出
しを行っているときにプログラムシーケンサ28はキャ
ッシュメモリ20の保有情報を読出し、その反復インス
トラクションをチェックする.具体的には、インストラ
クションアドレスがキャッシュメモリ20のアドレスレ
ンジ内であって、タグピットが有効であれば、プログラ
ムシーケンサ28はキャッシュメモリ20を読出し制御
する。
以上の構造並びに動作原理の説明により、デュアルポー
トを持つキャッシュメモリ20は反復インスl・ラクシ
ョンを供給する働きが非常に優れており、プロセッサの
反復インストラクションの実行機能を向上させる。但し
、プロセッサの反復インストラクションの実行機能のレ
ベルに応じて単一ポート型のキャッシュメモリとしたり
、マルチポートを有するキャッシュメモリとすることも
できる. 同様にキャッシュメモリ20は反復インストラクション
をバッファリングし,先入れ先出しメモリ22は非反復
インストラクションをバクファリングする.先入れ先出
しメモリ22は,外部メモリ50側のブリフェッチシー
ケンサ26によって書込むことができ、またプロセッサ
側のプログラムシーケンサ28で読出すことができる.
インストラクションのアドレスがキャッシュメモリ22
のアドレスレンジ外であって先入れ先出しメモリ22が
満杯になっていなければ、ブリフェッチシーケンサ26
は先入れ先出しメモリ22に書き込む。この先入れ先出
しメモリ22への書込みは、実行ユニットが外部メモリ
50から次のインストラクションをリクエストしないと
いう条件で行われる.この条件は直接フェッチというこ
とになる.例えば、プログラムシーケンサインストラク
ションタイプデコーダ36から送られてくるデータに基
づいてプログラムシーケンサ28が認識する条件付きジ
ャンプインストラクシミンによってリクエストされたイ
ンストラクシJンが外部メモリ50からバイパス24を
介してプロセッサの実行ユニットに直接フェッチされる
.インストラクションのアドレスがキャッシュメモリ2
0のアドレスレンジ外であって先入れ先出しメモリ22
が空になっておらず、先行インストラクションがキャッ
シュメモリ20のアドレスレンジ外であれば、プログラ
ムシーケンサ28は先入れ先出しメモリ22を読出し制
御する。但し先入れ先出しメモリ22が空になっていれ
ば、プロセッサは外部メモリ50からバイパス24を介
してインストラクションを直接フェッチする。
大半の時間はキャッシュメモリ20と先入れ先出しメモ
リ22を用いてメモリバッファへインストラクションを
書込み、メモリバッファからプロセッサへインストラク
ションを読出すが、プロセッサが外部メモリ50からバ
イパス24を介してインストラクションを直接フェッチ
するための条件は次に示す3通りである.第1の条件と
して、ブリフェッチシーケンサ26は条件付きインスト
ラクションの条件つき実行を前もってチェックすること
ができず、条件が満たされいないものとみなす故、条件
が満たされれば条件付きインストラクションは外部メモ
リ50からバイパス24を介して直接フェッチしなけれ
ばならない。第2の条件として,キャッシュメモリ20
のアドレスレンジ内であるが、キャッシュメモリ2oに
存在しておらず(タグピット二〇),またブリフェッチ
カウンタ40によって指定されないインストラクシヨン
はそのアドレスのインストラクションに等しくなく、プ
ロセッサは外部メモリ50からバイパス24を介してイ
ンストラクションを直接フェッチする.この場合はまた
、次の反復実行用にインストラクションをセービングす
べくインストラクションはキャッシュメモリ20に書き
込まれる.第3の条件として、インストラクションがキ
ャッシュメモリ20のアドレスレンジ外であって、先入
れ先出しメモリ22が空になっており、ブリフエツチカ
ウンタ40がインストラクションアドレスに等しくなけ
れば、プロセッサはやはり外部メモリ50からバイパス
24を介してインストラクションを直接フェッチする, プログラムシーケンサ28のプログラムカウンタ26及
びプリフェッチシーケンサ26のブリフェッチカウンタ
40がアドレスオフセットレジスタ3o、ブリフェッチ
シーケンサロジック38,並びにプログラムシーケンサ
ロジック44とbeし,任意のタイミングで有効アドレ
スをチェックする.一般的にはキャッシュメモリ20及
び先入れ先出しメモリ22よりもはるかに大きな外部メ
モリ50の一部分をキャッシュメモリ20及び先入れ先
出しメモリ22ヘマッピングしなければならない故にそ
のオペレーションが必要になる。したがって、ブリフェ
ッチカウンタ40の有効アドレスとプログラムカウンタ
46の有効アドレスは夫々別個にチェックされ、ブリフ
エツチカウンタ40とプログラムカウンタ46は各々別
個に動作され、メモリバッファの性能に寄与する.また
、第2図並びに上記説明から,ブリフェッチシーケンサ
26及びプログラムシーケンサ28が制御信号によって
複数のマルチプレクサもしくはデマルチプレクサのよう
な選択スイッチ回路52〜54を制御し、外部メモリ5
0,キャッシュメモリ22、先入れ先出しメモリ26,
及びバイパス24にアクセスすることがわかる. また、インストラクションがキャッシュメモリ20及び
先入れ先出しメモリ22に書き込まれ、そこから読出さ
れるだけでなく、特定の条件が整えばフラッシングロジ
ック回路32によってキャッシュメモリ20及び先入れ
先出しメモリ22がクリア若しくはフラッシングれる.
具体的には、フラッシングロジック回路32は、プロセ
ッサがリクエストする反復ループインストラクションの
ターゲットアドレスがキャッシュメモリ20のアドレス
レンジ外であることを確認すれば、アドレスオフセット
レジスタ30を新しい内容にし、キャッシュメモリ20
の全ワードのタグピットをリセットして無効にする(タ
グピット=0)ことによって、キャッシュメモリ20を
クリア若しくはフラッシングする.先入れ先出しメモリ
22は,条件付きインストラクションの発生中など、バ
イパス24の使用中にフラッシングされる.上記実施例
によれば,ディジタルシグナルプロセッサに含まれるメ
モリバッファは.高価な大量のコンポーネントを必要と
することなく外部メモリに格納されているインストラク
ション並びにデータを迅速にアクセスすることができる
。そして、このメモリバッファは,比較的少数の個別回
路を利用し、また、1チップ型の超大規模集積回路に採
用して簡単に構成もしくは実施することができる. 以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる.例えば複数個のキャッシュメモリ、ア
ドレスオフセットレジスタ並びに゜先入れ先出しメモリ
を用いることによって速度そして処理能力を高くし、ま
た、キャッシュメモリ,先入れ先出しメモリのフラッシ
ング待ち状態でインストラクションフエッチの停止を防
止することができる.また、それほど高い処理能力を必
要としない場合は、バイパス24を省き、キャッシュメ
モリ及び先入れ先出しメモリからインストラクションを
読出すようにしてもよい. 以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるディジタルシグナル
プロセッサに適用した場合について説明したが、本発明
はそれに限定されるものではなく、マイクロコンピュー
タなど各種データ処理用論理LSIや単体のメモリバソ
ファとしても広く適用することができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記の通りである。
すなわち、反復ループインストラクションのように反復
的に利用されるような情報をバツファリングするキャッ
シュメモリ、非反復ループインストラクションのような
非反復的に利用されるような情報をバッファリングする
先入れ先出しメモリ、そして条件付きジャンプインスト
ラクシ目ンのような例外的に利用されるような情報のた
めの直通データ伝送路を備え,メモリバッファの内部状
態やバッファリングすべき情報の種別などを表し若しく
は反映するインディシア情報に基づいてそれらバッファ
リングの経路を最適化選択制御するから、プロセッサは
その動作上必要な低速外部メモリ上の情報を,その動作
手順に応じて効率的にさらには高速に受け取ることがで
きるという効果がある. これにより、反復プログラムループ、非反復インストラ
クションシーケンス、及び条件付きジャンプもしくはブ
ランチを有効に処理することができる.このことは,プ
ログラムフローを予測しながら各種インストラクション
を能率的にパッファリング可能になるという効果をもた
らす.また,キャッシュメモリや先入れ先出しメモリを
初期化もしくはクリアする処理を上記インディシア情報
に従って行うことにより、プロセッサの動作手順に応じ
て、反復ループインストラクションのアドレスレンジが
変わった場合の対処,そしてブランチなどによってプロ
グラムフローが変更になったとき既にバッファリングさ
れていて不要になる非反復ループインストラクションな
どの更新処理への対応が組織化されて容易になる.キャ
ッシュメモリにデュアルポートRAMを利用することに
より、外部メモリ側とプロセッサ側からの並列的なアク
セス可能になり,処理効率が一層向上する. また、インディシア情報として外部メモリから送られて
くるインストラクションタイプ、前記キャッシュメモリ
に割り当てられているアドレスのレンジ,及び前記キャ
ッシュメモリ並びに先入れ先出しメモリの保有情報など
を採用することにより、バッファリングのための特別な
制御情報を付加しなくても済む. また、キャッシュメモリや先入れ先出しメモリのクリア
もしくはフラッシング待ちの状態でインストラクション
フェッチなどの情報転送が停止されてもよい場合に直通
データ伝送路を省けば,プロセッサもしくはその応用シ
ステムに要求される処理能力に応じたメモリバッファを
得ることができる。
このようなメモリバッファを1チップ型のマイクロコン
ピュータのような単一集積回路チップと同一の半導体基
板上に搭載することにより、メモリバッファとプロセッ
サとの間での情報転送速度が一層向上する.
【図面の簡単な説明】
第1図は本発明の一実施例に係るメモリバッファの基本
的な構成ブロック図、 第2図はディジタルシグナルプロセッサに適用されるメ
モリパソファの一実施例ブロック図、第3図は外部フェ
ッチ並びにプログラムコントロールの一例フローチャー
トである。 2・・・キャッシュメモリ、4・・・先入れ先出しメモ
リ、10・・・バイパス経路、12・・・制御ロジック
、20・・・キャッシュメモリ、22・・・先入れ先出
しメモリ、24・・・バイパス、26・・・ブリフェッ
チシーケンサ,28・・・プログラムシーケンサ、30
・・・アドレスオフセットレジスタ、32・・・フラッ
シングロジック回路、34・・・ブリフェッチシーケン
サインストラクションタイプデコーダ,36・・・プロ
グラムシーケンサインストラクションタイプデコーダ、
38・・・ブリフェッチシーケンサロジック、40・・
・ブリフェッチカウンタ、44・・・プログラムシーケ
ンサロジック、46・・・プログラムカウンタ、50・
・・外部メモリ。

Claims (1)

  1. 【特許請求の範囲】 1、相対的に低アクセス速度の複数のメモリエレメント
    で構成されている外部メモリから相対的に高速度で機能
    するプロセッサへデータをバッファリングするメモリバ
    ッファであって、 相対的に高アクセス速度の複数のメモリエレメントで構
    成される少なくとも1個のキャッシュメモリと、 相対的に高アクセス速度のメモリエレメントで構成され
    ていて、前記キャッシュメモリよりも記憶容量の小さな
    少なくとも1個の先入れ先出しメモリと、 少なくとも1個の直通データ伝送路と、 第1制御信号に応じて前記外部メモリから、前記キャッ
    シュメモリ、先入れ先出しメモリ、直通データ伝送路の
    内の一つにデータを書き込む手段と、 第2制御信号に応じて前記キャッシュメモリ、先入れ先
    出しメモリ、直通データ伝送路の内の一つからプロセッ
    サへデータを読出す手段と、複数のインディシア情報の
    夫々の状態を検出し、各インディシア情報の状態に応じ
    て前記第1、第2制御信号を発生する制御手段と、 を含んで成るメモリバッファ。 2、前記各インディシア情報の所定の状態に応じて前記
    キャッシュメモリ及び先入れ先出しメモリの記憶情報を
    クリアもしくはフラッシングする手段を設けた 請求項1記載のメモリバッファ。 3、前記キャッシュメモリはデュアルポートを持つもの
    である 請求項1記載のメモリバッファ。 4、前記インディシア情報は、外部メモリから送られて
    くるインストラクションタイプ、前記キャッシュメモリ
    に割り当てられているアドレスのレンジ、及び前記キャ
    ッシュメモリ並びに先入れ先出しメモリの保有情報であ
    る 請求項1記載のメモリバッファ。 5、相対的に低アクセス速度の複数のメモリエレメント
    で構成されている外部メモリから相対的に高速度で機能
    するプロセッサへデータをバッファリングするメモリバ
    ッファであって、 相対的に高アクセス速度の複数のメモリエレメントで構
    成される少なくとも1個のキャッシュメモリと、 相対的に高アクセス速度のメモリエレメントで構成され
    ていて、前記キャッシュメモリよりも記憶容量の小さな
    少なくとも1個の先入れ先出しメモリと、 第1制御信号に応じて前記外部メモリから、前記キャッ
    シュメモリ、先入れ先出しメモリの内の一つにデータを
    書き込む手段と、 第2制御信号に応じて前記キャッシュメモリ、先入れ先
    出しメモリの内の一つからプロセッサへデータを読出す
    手段と、 複数のインディシア情報の夫々の状態を検出し、各イン
    ディシア情報の状態に応じて前記第1、第2制御信号を
    発生する制御手段と、 を含んで成るメモリバッファ。 6、前記各インディシア情報の所定の状態に応じて前記
    キャッシュメモリ及び先入れ先出しメモリの記憶情報を
    クリアもしくはフラッシングする手段を設けた 請求項5記載のメモリバッファ。 7、前記キャッシュメモリはデュアルポートを持つもの
    である 請求項5記載のメモリバッファ。 8、前記インディシア情報は、外部メモリから送られて
    くるインストラクションタイプ、前記キャッシュメモリ
    に割り当てられているされているアドレスのレンジ、及
    び前記キャッシュメモリ並びに先入れ先出しメモリの保
    有情報である請求項5記載のメモリバッファ。 9、マイクロコンピュータに含まれて成るものである請
    求項1乃至8の何れか1項記載のメモリバッファ。
JP2029389A 1989-02-08 1990-02-08 メモリバッファ Pending JPH02236651A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30813989A 1989-02-08 1989-02-08
US308139 1989-02-08

Publications (1)

Publication Number Publication Date
JPH02236651A true JPH02236651A (ja) 1990-09-19

Family

ID=23192717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2029389A Pending JPH02236651A (ja) 1989-02-08 1990-02-08 メモリバッファ

Country Status (3)

Country Link
EP (1) EP0382396A3 (ja)
JP (1) JPH02236651A (ja)
KR (1) KR900013514A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006109421A1 (ja) * 2005-04-08 2006-10-19 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840232B1 (en) * 1996-10-31 2004-01-02 Texas Instruments Incorporated Microprocessor comprising means for storing non-cacheable data
JP3964049B2 (ja) 1997-06-06 2007-08-22 テキサス インスツルメンツ インコーポレイテツド マイクロプロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
JPH0630075B2 (ja) * 1984-08-31 1994-04-20 株式会社日立製作所 キャッシュメモリを有するデータ処理装置
US4833655A (en) * 1985-06-28 1989-05-23 Wang Laboratories, Inc. FIFO memory with decreased fall-through delay
CA1299767C (en) * 1987-02-18 1992-04-28 Toshikatsu Mori Cache memory control system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006109421A1 (ja) * 2005-04-08 2006-10-19 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges

Also Published As

Publication number Publication date
KR900013514A (ko) 1990-09-06
EP0382396A3 (en) 1991-11-27
EP0382396A2 (en) 1990-08-16

Similar Documents

Publication Publication Date Title
US5257359A (en) Instruction cache buffer with program-flow control
US4888741A (en) Memory with cache register interface structure
JP3760041B2 (ja) 分岐予測する情報処理装置
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
JPH10124314A (ja) データプロセッサ及びデータ処理システム
JPH11272464A (ja) 投機的境界不整列ロ―ド操作方法及び装置
JP3641031B2 (ja) 命令装置
EP1000398B1 (en) Isochronous buffers for mmx-equipped microprocessors
US20020169947A1 (en) Scalable processer
US5930520A (en) Pipelining device in a parallel processing apparatus and an instruction supplying method therefor
KR100348099B1 (ko) 단일의캐쉬액세스파이프단을이용하여파이프라인저장명령을실행하기위한장치및방법과,파이프라인프로세서및,컴퓨터시스템
US6507899B1 (en) Interface for a memory unit
US6581120B1 (en) Interrupt controller
US5283890A (en) Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
US5835746A (en) Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
US5617549A (en) System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
CN116149733A (zh) 指令转移预测系统、方法、装置、计算机设备及存储介质
JPH0520068A (ja) 並列演算処理装置
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US20080140934A1 (en) Store-Through L2 Cache Mode
JPH02236651A (ja) メモリバッファ
EP1596280A1 (en) Pseudo register file write ports
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
US8209492B2 (en) Systems and methods of accessing common registers in a multi-core processor
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式