JP3161422B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP3161422B2
JP3161422B2 JP22119398A JP22119398A JP3161422B2 JP 3161422 B2 JP3161422 B2 JP 3161422B2 JP 22119398 A JP22119398 A JP 22119398A JP 22119398 A JP22119398 A JP 22119398A JP 3161422 B2 JP3161422 B2 JP 3161422B2
Authority
JP
Japan
Prior art keywords
buffer
write buffer
address
write
store
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.)
Expired - Fee Related
Application number
JP22119398A
Other languages
English (en)
Other versions
JP2000057047A (ja
Inventor
宏和 塚本
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP22119398A priority Critical patent/JP3161422B2/ja
Publication of JP2000057047A publication Critical patent/JP2000057047A/ja
Application granted granted Critical
Publication of JP3161422B2 publication Critical patent/JP3161422B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロコンピュー
タに関し、特にCPUにおけるロードデータ待ちによる
処理速度の低下を改善したマイクロコンピュータに関す
る。
【0002】
【従来の技術】マイクロコンピュータでは、CPUが命
令フェッチ、もしくは演算のソースデータが必要とわか
ったときにロード動作が発生する。そして、CPUは、
ロード動作が完了するまではデータ待ちとして次の命令
実行が停止される。したがって、マイクロコンピュータ
における処理速度を向上するためには、なるべく優先的
に行うことが好ましい。しかしながら、従来のマイクロ
コンピュータでは、CPUとバス間との間のストア動
作、ロード動作を行うためのライトバッファ、リードバ
ッファは1組しか設けられていないため、ストア動作を
すべて同一のレベルで扱っている。このため、ロード動
作の後で実行しても良い通常のメモリアクセスまでもロ
ード動作の前に処理しており、そのために前記したロー
ド動作の実行が遅れ、CPUコアのロードデータ待ちの
状態が頻繁に発生することになり、処理速度の低下が生
じることになる。特に内部動作よりも外部バス動作のほ
うが相対的に遅い高速のCPUでは複数のバス動作要求
が保持され、演算が中断する可能性が高くなる。
【0003】
【発明が解決しようとする課題】このため、従来の一部
のマイクロコンピュータでは、CPUのソフトウェアを
管理することにより、ストア動作よりもロード動作を優
先的に実行し、CPUコアのロードデータ待ちの状態を
短縮しているものがある。しかし、単純にCPUにおけ
るストア動作の全てに対してロード動作を優先して行う
ものではなく、ロード動作とストア動作の順序を保たな
ければいけないI/Oアクセスなどの場合には、ソフト
ウエアがその事を意識しなければならず、ソフトウエア
が煩雑になり、結果としてソフトウェアの処理が冗長に
なって必ずしも処理速度の向上に結びつかないという問
題がある。
【0004】本発明の目的は、アクセスの順序およびタ
イミングが重要なI/O動作を正確に行いながら、ロー
ド動作を優先して実行可能とし、これによりCPUのデ
ータ待ちを大幅に縮小して処理速度の向上を実現したマ
イクロコンピュータを提供することにある。
【0005】
【課題を解決するための手段】本発明は、CPUコア
と、外部バスとの間に介挿されて前記CPUコアと外部
バスとの間でストア動作及びロード動作を行うライトバ
ッファ及びリードバッファとを備えるマイクロコンピュ
ータにおいて、前記ライトバッファは複数設けられ、少
なくともその一部に、リードバッファの動作に優先して
ストア動作する第1のライトバッファと、前記リードバ
ッファの動作の後にストア動作する第2のライトバッフ
ァとを備え、さらに、前記第1のライトバッファはI/
O空間へのアクセスを行い、前記第2のライトバッファ
はメモリ空間へのアクセスを行う構成とされる。また、
前記第1及び第2のライトバッファのアドレスを指定す
るアドレスデコーダが設けられ、前記第1のライトバッ
ファは前記アドレスデコーダで選択された特定のアドレ
ス範囲へのストア動作を行い、前記第2のライトバッフ
ァは前記特定のアドレス範囲以外のアドレス範囲へのス
トア動作を行う構成とされる。
【0006】本発明によれば、メモリや外部I/Oなど
に対するストア動作と、ロード動作とを、優先順位に応
じてその順序を制御し、特に、ストア動作を行ってから
ロード動作するという順序を守らなければならないI/
Oアクセスの場合にはその順序を守り、この順序を守ら
なくても良いメモリアクセスの場合には順序を変えるこ
とで、ロード動作を一部のストア動作に優先させて行う
ことができ、CPUコアがロード待ちする時間を短縮
し、マイクロコンピュータの処理速度を向上することが
できる。
【0007】
【発明の実施の形態】次に、本発明の実施形態を図面を
参照して説明する。図1は本発明の第1の実施形態のマ
イクロコンピュータ100の要部のブロック構成図であ
る。CPUコア140は内部ライトアドレスバス101
及び内部ライトデータバス102を介して第1及び第2
のそれぞれ独立したライトバッファ110,120が接
続され、さらに、図外の外部アドレスバス及び外部デー
タバスにつながる内部アドレスバス103、内部データ
バス104に接続される。また、前記CPUコア140
に対しては、1つのリードバッファ130が接続され、
前記内部アドレスバス103、内部データバス104に
接続される。
【0008】前記第1ライトバッファ110は、対をな
すアドレス用バッファ111とデータ用バッファ112
を多段に構成したFIFO構造の多段バッファとして構
成され、前記内部ライトアドレスバス101及び内部ラ
イトデータバス102からのアドレスとデータを順次バ
ッファに保持し、かつ順序的に前記内部アドレスバス1
03と内部データバス104に出力するように構成され
る。ここで、前記第1ライトバッファ110へのアクセ
スは、CPUコア140からI/O空間へのストア動作
要求を示すI/OW信号のアクティブにより行われる。
【0009】また、前記第2ライトバッファ120は、
前記第1ライトバッファ110と同様に、アドレス用バ
ッファ121とデータ用バッファ122とでFIFO構
造の多段バッァとして構成されており、前記内部ライト
アドレスバス101及び内部ライトデータバス102か
らのアドレスとデータを順次バッファに保持し、かつ順
序的に前記内部アドレスバス103と内部データバス1
04に出力するように構成される。また、アドレスバッ
ファ121の各段のアドレスと、前記リードバッファ1
30のアドレスを比較するコンパレータ123を備えて
おり、このコンパレータ123における比較結果が一致
した段のデータを前記内部データバス104に送出する
構成とされている。前記第2ライトバッファ120への
アクセスは、CPUコア140からメモリ空間へのスト
ア動作要求を示すMEMW信号のアクティブにより行わ
れる。
【0010】さらに、前記リードバッファ130は、ア
ドレス用バッファ131のアドレスを内部アドレスバス
103に出力し、内部データバス104のデータをデー
タ用バッファ132に読み込むように構成されている。
前記リードバッファ130へのアクセスは、CPUコア
140からメモリおよびI/Oへのロード動作要求を示
すRD信号のアクティブにより行われる。
【0011】ここで、前記マイクロコンピュータ100
では、前記第1及び第2のライトバッファ110,12
0へのアクセスを振り分けており、I/O空間へのアク
セスには、I/OW信号に基づいて第1ライトバッファ
110を使用する。また、メモリ空間へのアクセスに
は、MEMW信号に基づいて第2ライトバッファ120
を使用する。
【0012】以上の構成のマイクロコンピュータにおけ
る、CPUコア140が外部のメモリやI/Oにアクセ
スするときの動作を、バッファの状態に分けて説明す
る。 (a)第1ライトバッファ110、第2ライトバッファ
120、リードバッファ130のいずれか1個所だけが
外部への動作要求を保持している場合には、現在保持さ
れている動作の処理を行う。 (b)第1ライトバッファ110、第2ライトバッファ
120の両方がデータを保持した場合には、第1ライト
バッファ110から外部バスへのストア動作を先に処理
する。第1ライトバッファ110のI/Oストア動作が
完了した後、第2ライトバッファ120のメモリストア
動作を行う。 (c)第1及び第2のライトバッファ110,120に
ストア要求が保持されている状態でリードアクセスが発
生した場合には、状況に応じて以下の(c1)〜(c
3)の動作を行う。
【0013】(c1)第1ライトバッファ110にスト
ア要求が保持されている場合には、CPUコア140の
アクセス順に処理を行う。よって第1ライトバッファ1
10に保持されているI/Oへのストアアクセスを先に
行ってから、ロードアクセスを行う。これにより、I/
Oアクセスに必要なアクセス順序を守る。
【0014】(c2)第2ライトバッファ120にスト
ア要求が保持されている場合には、リードバッファ13
0を経由したロード動作を先に処理する。そして、この
ロード動作が完了した後に、第2ライトバッファ120
に保持されているメモリへのストア動作を行う。これに
より、ロード動作が優先され、CPUの実行速度に直接
影響するリード時のCPUコア停止時間を最小限に抑え
る。また、この実施形態では、第2ライトバッファ12
0に保持されているメモリストア動作のアドレスと、リ
ードバッファ130に保持されたロード動作のアドレス
をコンパレータ123で比較しており、一致した場合に
は該当する段のライトバッファのデータを内部データバ
ス104を通じてリードバッファ130にコピーする。
なお、一致したライトバッファ段のストア動作の保持は
継続し、後にメモリへの書き込みを行う。これにより、
アドレスが一致した場合にメモリまでアクセスすること
なく高速にロードアクセスを実行できる。また、メモリ
へのアクセスを常にリード優先にすることができる。
【0015】(c3)第1ライトバッファ110、第2
ライトバッファ120の両方にストア要求が保持されて
いる場合には、第1ライトバッファ110のI/Oスト
ア動作と、リードバッファ130のロード動作を発生順
に行う。最後に第2ライトバッファ120のメモリスト
ア動作を行う。この動作は今まで説明した2つのバッフ
ァの動作競合の組み合わせである。
【0016】このように、第1の実施形態では、メモリ
へのアクセスが、ロード動作を優先して行えるようにな
る。このため、CPUコア140が命令フェッチ、もし
くは演算のソースデータが必要とわかったときには、第
1ライトバッファ110でのストア動作が完了すると、
第2ライトバッファ120でのストア動作に優先してロ
ード動作が実行されることになる。これにより、アクセ
スの順序およびタイミングが重要なI/O動作を第1ラ
イトバッファ110で確保しながら、その一方でロード
動作を優先して実行でき、CPUコア140におけるデ
ータ待ちでの命令実行の停止時間が短縮される。特に、
内部動作よりも外部バス動作のほうが相対的に遅い、高
速のマイクロプロセッサでは複数のバス動作要求が保持
され、演算が中断する可能性が高く、本発明は特に有効
となる。
【0017】例として、以下の命令列を実行する場合
に、最後の命令フェッチ完了までの時間を試算する。 (1)Store I/O(実行時間 100 nsec) (2)Store MEM(実行時間 100 nsec) (この間に命令キャッシュのライン境界が存在) (3)Load MEM(実行時間 250 nsec) (キャッシュミスヒットによるメモリからのブロックデ
ータロード)
【0018】(A)従来例の場合のメモリアクセス順
序、および実行時間 〔Store I/O 命令実行によるI/O へのストア動作(100n
sec)〕+〔Store MEM 実行によるメモリへのストア動作
(100nsec) 〕+〔Load MEM 実行の命令フェッチによる
命令キャッシュミスが発生:メモリからのブロックデー
タロード動作(250nsec) 〕=〔計(450nsec)〕 (B)本発明(第1実施形態)の場合のメモリアクセス
順序、および実行時間 〔Store I/O命令実行によるI/O へのストア動作(100n
sec)+〔Load MEM 実行の命令フェッチによる命令キャ
ッシュミスが発生:メモリからのブロックデータロード
動作(250nsec)〕=〔計(350nsec)〕 なお、本発明では、Store MEM 実行によるメモリへのス
トア動作は、この後に行われる。このように、本発明で
は、CPUコア140におけるロードの待ち時間は、35
0nsec であり、従来の450nsec に比較して100nsec の実
行時間短縮、22%の処理速度の向上が実現できる。
【0019】図2は本発明の第2の実施形態のマイクロ
コンピュータのブロック構成図であり、第1の実施形態
と等価な部分には同一符号を付してある。ただし、この
第2の実施形態では、前記第1及び第2のライトバッフ
ァ110,120の構成が第1の実施形態とは相違して
いる。ここでは、CPUコア140から前記第1及び第
2のライトバッファ110,120に供給されるアドレ
ス線にアドレスデコーダ150を介挿し、アドレスによ
り第1及び第2のライトバッファ110,120でのス
トア動作を制御するように構成している。すなわち、第
1ライトバッファ110へのアクセスは、アドレスデコ
ーダ150で選択された特定のアドレス範囲へのストア
動作を対象とする。例えば、優先的に、もしくは順序を
守ってアクセスを行わなければいけないアドレス範囲で
ある。一方、第2ライトバッファ120へのアクセス
は、第1ライトバッファ110で指定されていないアド
レス範囲へのストア動作を対象とする。例えば、通常の
メモリなどが配置される、動作優先順位の低いアドレス
範囲である。なお、前記アドレスデコーダ150で指定
するアドレス範囲は、マイクロコンピュータの仕様によ
って、固定された空間、範囲が自由に指定できるなどが
考えられる。
【0020】この第2の実施形態では、アドレス範囲に
よって第1ライトバッファ110を第2ライトバッファ
120に優先してストア動作することができる。したが
って、リードバッファ130によるロード動作よりも先
にストア動作が要求されるデータについては第1ライト
バッファ110にアドレス設定を行い、ロード動作より
も後にストア動作が許されるデータについては第2ライ
トバッファ120にアドレス設定を行う。これにより、
CPUコア140でのロード待ちに際しては、第1ライ
トバッファ110でのストア動作のみを行うことにな
り、その後は直ちにロード動作を実行することができ、
CPUコア140におけるロードの待ち時間を短縮する
ことができる。また、リードバッファ130のアドレス
と第2ライトバッファ120のアドレスを比較するコン
パレータ123を備えることで、アドレスが一致する際
のロードアクセスの高速化が可能となる。したがって、
この第2の実施形態においても、マイクロコンピュータ
の処理速度の向上が可能となる。
【0021】なお、前記第1の実施形態と第2の実施形
態では、第1及び第2のライトバッファにおけるストア
動作の優先形態が異なる例を示しているが、第1及び第
2の実施形態の各ライトバッファを組み合わせた構成と
することも可能である。
【0022】
【発明の効果】以上説明したように本発明は、CPUコ
アと外部バスとの間でストア動作及びロード動作を行う
ためのライトバッファが複数設けられ、少なくともその
一部に、リードバッファの動作に優先してストア動作す
る第1のライトバッファと、前記リードバッファの動作
の後にストア動作する第2のライトバッファとを備えて
おり、第1のライトバッファでリードバッファの動作に
優先してI/O空間へのアクセスを行い、第2のライト
バッファでリードバッファの動作の後にメモリ空間への
アクセスを行うことにより、ストア動作を行ってからロ
ード動作するという順序を守らなければならないI/O
アクセスの場合にはその順序を守り、この順序を守らな
くても良いメモリアクセスの場合には順序を変えること
が可能となり、ロード動作を一部のストア動作に優先さ
せて行うことができ、CPUコアがロード待ちする時間
を短縮し、高速処理動作が可能なマイクロコンピュータ
が実現できる。また、第1及び第2のライトバッファが
動作するアドレス範囲を指定するアドレスデコーダを設
け、第1のライトバッファはアドレスデコーダで選択さ
れた特定のアドレス範囲へのストア動作を行い、第2の
ライトバッファは特定のアドレス範囲以外のアドレス範
囲へのストア動作を行う構成とすることによっても、ロ
ード動作を一部のストア動作に優先させて行うことがで
き、CPUコアがロード待ちする時間を短縮し、高速処
理動作が可能なマイクロコンピュータが実現できる。
【図面の簡単な説明】
【図1】本発明のマイクロコンピュータの第1の実施形
態の要部のブロック構成図である。
【図2】本発明のマイクロコンピュータの第2の実施形
態の要部のブロック構成図である。
【符号の説明】
100 マイクロコンピュータ 101 内部ライトアドレスバス 102 内部ライトデータバス 103 内部アドレスバス 104 内部データバス 110 第1ライトバッファ 120 第2ライトバッファ 130 リードバッファ 140 CPUコア 150 アドレスデコーダ
フロントページの続き (56)参考文献 特開 平10−116227(JP,A) 特開 平3−241442(JP,A) 特開 平9−282223(JP,A) 特開 平2−32436(JP,A) 特開 平8−221311(JP,A) 特開 昭62−84349(JP,A) 特開 昭62−245462(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 12/00 - 12/08 G06F 13/16 - 13/18 G06F 13/38

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 CPUコアと、外部バスとの間に介挿さ
    れて前記CPUコアと外部バスとの間でストア動作及び
    ロード動作を行うライトバッファ及びリードバッファと
    を備えるマイクロコンピュータにおいて、前記ライトバ
    ッファは複数設けられ、少なくともその一部に、前記リ
    ードバッファの動作に優先してストア動作する第1のラ
    イトバッファと、前記リードバッファの動作の後にスト
    ア動作する第2のライトバッファとを備え、前記第1の
    ライトバッファはI/O空間へのアクセスを行い、前記
    第2のライトバッファはメモリ空間へのアクセスを行う
    ことを特徴とするマイクロコンピュータ。
  2. 【請求項2】 前記第2のライトバッファは、前記リー
    ドバッファに格納されたリード要求アドレスとの比較を
    行うコンパレータが設けられ、前記リードバッファは前
    記第2のライトバッファに格納されたストア要求アドレ
    と一致したときに、前記第2のライトバッファに格納
    された該ストア要求アドレスのデータを読み出すように
    構成される請求項に記載のマイクロコンピュータ。
  3. 【請求項3】 CPUコアと、外部バスとの間に介挿さ
    れて前記CPUコアと外部バスとの間でストア動作及び
    ロード動作を行うライトバッファ及びリードバッファと
    を備えるマイクロコンピュータにおいて、前記ライトバ
    ッファは複数設けられ、少なくともその一部に、優先し
    てストア動作する第1のライトバッファと、前記第1の
    ライトバッファの動作の後にストア動作する第2のライ
    トバッファとを備え、前記第1及び第2のライトバッフ
    ァがストア動作するアドレス範囲を指定するアドレスデ
    コーダが設けられ、前記第1のライトバッファは前記ア
    ドレスデコーダで選択された特定のアドレス範囲へのス
    トア動作を行い、前記第2のライトバッファは前記特定
    のアドレス範囲以外のアドレス範囲へのストア動作を行
    うことを特徴とするマイクロコンピュータ。
  4. 【請求項4】 CPUコアと、外部バスとの間に介挿さ
    れて前記CPUコアと外部バスとの間でストア動作及び
    ロード動作を行うライトバッファ及びリードバッファと
    を備えるマイクロコンピュータにおいて、前記ライトバ
    ッファは複数設けられ、少なくともその一部に、前記リ
    ードバッファの動作に優先してストア動作する第1のラ
    イトバッファと、前記リードバッファの動作の後にスト
    ア動作 する第2のライトバッファとを備え、前記第1及
    び第2のライトバッファがストア動作するアドレス範囲
    を指定するアドレスデコーダが設けられ、前記第1のラ
    イトバッファは前記アドレスデコーダで選択された特定
    のアドレス範囲へのストア動作を行い、前記第2のライ
    トバッファは前記特定のアドレス範囲以外のアドレス範
    囲へのストア動作を行うことを特徴とするマイクロコン
    ピュータ。
JP22119398A 1998-08-05 1998-08-05 マイクロコンピュータ Expired - Fee Related JP3161422B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22119398A JP3161422B2 (ja) 1998-08-05 1998-08-05 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22119398A JP3161422B2 (ja) 1998-08-05 1998-08-05 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2000057047A JP2000057047A (ja) 2000-02-25
JP3161422B2 true JP3161422B2 (ja) 2001-04-25

Family

ID=16762937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22119398A Expired - Fee Related JP3161422B2 (ja) 1998-08-05 1998-08-05 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP3161422B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027245A (ja) * 2006-07-21 2008-02-07 Matsushita Electric Ind Co Ltd メモリアクセス制御装置およびメモリアクセス制御方法

Also Published As

Publication number Publication date
JP2000057047A (ja) 2000-02-25

Similar Documents

Publication Publication Date Title
US20010052060A1 (en) Buffering system bus for external-memory access
JP3575572B2 (ja) データ転送方法及びシステム
US6658537B2 (en) DMA driven processor cache
JPH06309230A (ja) バススヌ−プ方法
JP2001075866A (ja) 記憶装置を動作する方法および記憶装置
US5761718A (en) Conditional data pre-fetching in a device controller
JP3164732B2 (ja) データ処理装置
US8719542B2 (en) Data transfer apparatus, data transfer method and processor
US20080016296A1 (en) Data processing system
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
JP3161422B2 (ja) マイクロコンピュータ
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
US7877533B2 (en) Bus system, bus slave and bus control method
US8099533B2 (en) Controller and a method for controlling the communication between a processor and external peripheral device
JPH1063574A (ja) キャッシュメモリ付プロセッサ
JP7513314B1 (ja) プロセッサおよびメモリアクセス例外処理方法
JP3039391B2 (ja) メモリシステム
JP2851777B2 (ja) バス制御方法及び情報処理装置
JPWO2002069150A1 (ja) マイクロプロセッサ及び命令実行順序スケジューリング方法
JPH0683621A (ja) フェッチ方式
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JPH0488537A (ja) 情報処理システム
JP2000194554A (ja) 演算処理装置
JPH11249959A (ja) キャッシュメモリ制御方法および装置
JP2003345515A (ja) ディスク制御装置、ストレージシステム、及びその制御方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees