JPH10134008A - 半導体装置およびコンピュータシステム - Google Patents

半導体装置およびコンピュータシステム

Info

Publication number
JPH10134008A
JPH10134008A JP8292642A JP29264296A JPH10134008A JP H10134008 A JPH10134008 A JP H10134008A JP 8292642 A JP8292642 A JP 8292642A JP 29264296 A JP29264296 A JP 29264296A JP H10134008 A JPH10134008 A JP H10134008A
Authority
JP
Japan
Prior art keywords
signal
access
level
memory
cpu
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
JP8292642A
Other languages
English (en)
Inventor
Mitsugi Sato
佐藤  貢
Shunichi Iwata
俊一 岩田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8292642A priority Critical patent/JPH10134008A/ja
Priority to TW086102608A priority patent/TW335468B/zh
Priority to KR1019970016938A priority patent/KR100272938B1/ko
Priority to US08/850,703 priority patent/US6101584A/en
Priority to DE19723065A priority patent/DE19723065B4/de
Priority to CN97113846A priority patent/CN1113300C/zh
Publication of JPH10134008A publication Critical patent/JPH10134008A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 CPU とメモリを同一チップに形成した半導体
装置では、CPU が内臓メモリにインターロックアクセス
する機能がないため、CPU による内臓メモリへのリード
モディファイライトが不可分におこなえなかった。 【解決手段】 CPU 110 、内臓DRAM120 、およびCPU 11
0 が内臓DRAM120 へインターロックアクセスできるよう
制御するメモリコントローラ160 を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は半導体装置および
コンピュータシステムに係り、特にCPU(CentralProcess
ing Unit)とメモリを同一チップ内に備えるメモリ内蔵
半導体装置およびメモリ内蔵半導体装置を使用したコン
ピュータシステムに関するものである。
【0002】
【従来の技術】パーソナルコンピュータやワークステー
ションなどのシステムは、データの演算処理をおこなう
CPU(Central Processing Unit)を含むマイクロプロセッ
サ、およびデータを記憶するメモリを有している。マイ
クロプロセッサおよびメモリは互いに別々のチップとし
てボード上に実装されており、両者はボード上にプリン
トされた外部のデータバスを介してデータのやりとりを
おこなっている。
【0003】
【発明が解決しようとする課題】システムの中には複数
のマイクロプロセッサを備えるマルチプロセッサシステ
ムがある。このマルチプロセッサシステムではメモリを
複数のマイクロプロセッサで共有する。マルチプロセッ
サシステムでは各マイクロプロセッサで並列に実行され
るプロセスの順序付けが問題になる。つまり、複数のマ
イクロプロセッサで共有するメモリなどの共有資源を複
数のマイクロプロセッサが同時にアクセスするような、
アクセス競合の問題がある。
【0004】従来のマルチプロセッサシステムではアク
セス競合の問題をセマフォを利用することで解決してい
る。このセマフォの値は共有資源を利用可能であるとい
った状態を示す。共有資源をアクセスしようとするマイ
クロプロセッサは、まずセマフォの値を読んで(read)共
有資源がアクセス可能であることを判断すると、セマフ
ォの値を新しい値に書き換えて(modify-write)この共有
資源のアクセス権を獲得する。この一連のセマフォへの
read-modify-write アクセスは不可分におこなわれなく
てはならない。なぜならばreadとwriteが切り離される
とreadとwriteの間に他のマイクロプロセッサがまだ書
き換えの終わっていないセマフォの値を読んで共有資源
がアクセス可能と判断してしまい、結果として2つのマ
イクロプロセッサ間で共有資源へのアクセスが衝突して
しまうからである。
【0005】以上に説明した手順を経て共有資源へのア
クセス権を獲得したマイクロプロセッサは共有資源に対
してアクセスを開始する。一方、セマフォの値を読んだ
結果共有資源へのアクセス権を得られなかったマイクロ
プロセッサは待機状態にはいる。このセマフォの値は従
来のマルチプロセッサシステムではマイクロプロセッサ
とは別チップのメモリに記憶されている。従来のマイク
ロプロセッサは他のマイクロプロセッサによるセマフォ
へのアクセスを禁止してみずからがセマフォにアクセス
するインターロックメモリアクセスを実行するための専
用命令や外部端子を備えており、この命令の実行中(例
えばセマフォへのread-modify-write アクセスをしてい
る間)は外部端子をアサートして一連のメモリアクセス
が不可分におこなわれるように外部のバスコントローラ
に対して要求する。バスコントローラはこの要求を受け
て他のマイクロプロセッサのセマフォへのアクセスを禁
止する。
【0006】この発明はCPU およびメモリを同一チップ
内に備えるメモリ内蔵半導体装置に含まれるメモリへの
チップ外部からのアクセスとメモリ内蔵半導体装置に含
まれるCPU からのアクセスとの競合の問題が改善された
メモリ内蔵半導体装置を得ることを目的としている。ま
た、CPU およびメモリを同一チップ内に備えるメモリ内
蔵半導体装置におけるCPU の内蔵メモリへの一連のメモ
リアクセスが、外部からのアクセスに影響されずに不可
分に行われるメモリ内蔵半導体装置を得ることを目的と
している。
【0007】
【課題を解決するための手段】この発明に係る半導体記
憶装置は、データを記憶するメモリ、メモリにインター
ロックアクセスするCPU 、およびメモリに外部からアク
セスするための要求信号を受け、要求信号に応答する応
答信号を出力し、CPU がインターロックアクセスする期
間は応答信号を外部からメモリへのアクセスが排除され
ていること示す状態にする制御回路を1チップ内に備え
るものである。
【0008】また、CPU はインターロックアクセス命令
を受けてインターロックアクセスを開始し、インターロ
ックアクセス終了命令を受けてインターロックアクセス
を終了するものである。
【0009】また、CPU はメモリを非インターロックア
クセスし、要求信号はバス権を要求するためのホールド
リクエスト信号を含み、応答信号はバス権を解放したこ
とを通知するためのホールドアクノレッジ信号を含み、
制御回路はCPU における非インターロックアクセス時は
ホールドリクエスト信号がバス権を要求したことを示す
レベルになったのに応答してホールドアクノレッジ信号
をバス権を解放したことを示す応答レベルにし、CPU に
おけるインターロックアクセス期間はホールドアクノレ
ッジ信号を応答レベルと異なるレベルにすることで応答
信号を外部からメモリへのアクセスが排除されているこ
とを示す状態にするものである。
【0010】また、CPU はメモリを非インターロックア
クセスし、要求信号は外部からメモリへのアクセスを要
求するためのチップセレクト信号を含み、応答信号は外
部からメモリへのアクセスが完了したことを通知するた
めのデータコンプリート信号を含み、制御回路はCPU に
おける非インターロックアクセス時はチップセレクト信
号が外部からメモリへのアクセスを要求したことを示す
レベルになったのに応答してデータコンプリート信号を
外部からメモリへのアクセスが完了したことを示す応答
レベルにし、CPU におけるインターロックアクセス期間
はデータコンプリート信号を応答レベルと異なるレベル
にすることで応答信号を外部からメモリへのアクセスが
排除されていることを示す状態にするものである。
【0011】また、CPU はメモリを非インターロックア
クセスし、要求信号はバス権を要求するためのホールド
リクエスト信号および外部からメモリへのアクセスを要
求するためのチップセレクト信号を含み、応答信号はバ
ス権を解放したことを通知するためのホールドアクノレ
ッジ信号および外部からメモリへのアクセスが完了した
ことを通知するためのデータコンプリート信号を含み、
制御回路は、切り替え可能な第1のロックモードおよび
第2のロックモードを有し、第1のロックモードではCP
U における非インターロックアクセス時はホールドリク
エスト信号がバス権を要求したことを示すレベルになっ
たのに応答してホールドアクノレッジ信号をバス権を解
放したことを示す第1の応答レベルにし、CPU における
インターロックアクセス期間はホールドアクノレッジ信
号を第1の応答レベルと異なるレベルにすることで応答
信号を外部からメモリへのアクセスが排除されているこ
とを示す状態にし、第2のロックモードではCPU におけ
る非インターロックアクセス時はチップセレクト信号が
外部からメモリへのアクセスを要求したことを示すレベ
ルになったのに応答してデータコンプリート信号を外部
からメモリへのアクセスが完了したことを示す第2の応
答レベルにし、CPU におけるインターロックアクセス期
間はデータコンプリート信号を第2の応答レベルと異な
るレベルにすることで応答信号を外部からメモリへのア
クセスが排除されていることを示す状態にするものであ
る。
【0012】また、この発明に係るコンピュータシステ
ムは、CPU およびメモリを1チップ内に含みCPU はメモ
リにインターロックアクセスする半導体装置、メモリに
アクセスする外部バスマスタ、およびCPU がインターロ
ックアクセスする期間は外部バスマスタによるメモリへ
のアクセスを禁止する外部バスコントローラを備えるも
のである。
【0013】
【発明の実施の形態】
実施の形態1.以下、この発明の実施の形態であるDRAM
(Dynamic Random Access Memory)内蔵の32ビットRISC(R
educed Instruction Set Computer)型マイクロプロセッ
サについて図1 から図14に基づき説明する。まず図1 を
参照して、コンピュータシステムSTM はワンボード上に
配置された1チップマイクロプロセッサ100 、外部バス
コントローラ200 、外部バスマスタ300 および外部メモ
リ400 を備える。マイクロプロセッサ100 、外部バスマ
スタ300 および外部メモリ400 はボード上に形成された
16ビット幅の外部データバス500 に接続されており、こ
の外部データバス500 を介してデータの授受を行ってい
る。
【0014】マイクロプロセッサ100 はDRAMを内蔵して
おり、外部から入力されるクロック信号CLKIN を受け、
このクロック信号CLKIN に同期して動作する。また、マ
イクロプロセッサ100 は外部バスコントローラ200 から
のホールドリクエスト信号/HREQ を受け、このホールド
リクエスト信号/HREQ がマイクロプロセッサ100 のホー
ルド状態への遷移の要求を示すLレベルになると、ホー
ルド状態に遷移したことを示すLレベルとなるホールド
アクノレッジ信号/HACK を出力する。
【0015】つまり、ホールドアクノレッジ信号/HACK
が、マイクロプロセッサ100 がホールド状態でないこと
を示すHレベルのときは外部データバス500 を使用する
ことのできるバス権はマイクロプロセッサ100 にある。
外部バスコントローラ200 は例えば外部バスマスタが外
部データバス500 を介して外部メモリ400 からデータを
リードするような外部データバス500 のバス権が必要な
場合は、外部データバス500 のバス権を要求するための
ホールドリクエスト信号/HREQ をLレベルにして、マイ
クロプロセッサ100 に対してバス権を要求する。マイク
ロプロセッサ100 は外部データバス500 のバス権を与え
てもよいと判断すると、みずからがホールド状態へ遷移
し、外部データバス500 のバス権を解放したことを通知
するためのホールドアクノレッジ信号/HACK をLレベル
にしてバス権を解放する。このように外部バスコントロ
ーラ200 は外部データバス500 上でマイクロプロセッサ
100 、外部バスマスタ300 および外部メモリ400 からの
データが衝突しないように外部バスをコントロールして
いる。
【0016】さらに、マイクロプロセッサ100 は外部バ
スコントローラ200 からマイクロプロセッサ100 に内蔵
されたDRAMへのアクセスを要求するためのチップセレク
ト信号/CS 、このアクセスがリードなのかライトなのか
示すためのリード/ライト信号R/W およびアクセスされ
る内蔵DRAM領域内のアドレスを指定するための23ビット
のアドレス信号A[8:30] を受ける。マイクロプロセッサ
100 はチップセレクト信号/CS がアクセスを要求するこ
とを示すLレベルになったのに応答してリード/ライト
信号R/W がリードを指示するHレベルのときは内蔵DRAM
領域内のアドレス信号A[8:30] で指定されたアドレスに
格納されたデータを外部データextD[0:15]として外部デ
ータバス500 に出力し、リード/ライト信号R/W がライ
トを指示するLレベルのときは内蔵DRAM領域内のアドレ
ス信号A[8:30] で指定されたアドレスに外部データextD
[0:15]に応じたデータをライトする。
【0017】さらにまた、マイクロプロセッサ100 は外
部バスマスタ300 から内蔵DRAM領域へのアクセスがある
ときは内蔵DRAM領域へのアクセス(内部バスサイクル)
が完了したことを通知するためのデータコンプリート信
号/DC を出力する。マイクロプロセッサ100 はチップセ
レクト信号/CS がLレベルにされるとデータコンプリー
ト信号/DC を出力し、内蔵DRAM領域へのアクセスが未完
了であることを示すHレベルにする。その後、マイクロ
プロセッサ100 は内蔵DRAM領域へのアクセスが完了する
とデータコンプリート信号/DC をアクセスが完了したこ
とを示すLレベルに変化させる。そして、マイクロプロ
セッサ100 はチップセレクト信号/CS がもとのHレベル
にもどるとデータコンプリート信号/DC の出力を終了す
る。また、マイクロプロセッサ100 はホールドリクエス
ト信号/HREQ がもとのHレベルにもどるとホールドアク
ノレッジ信号/HACK をHレベルにする。
【0018】また、マイクロプロセッサ100 は外部デー
タバス500 に対してバスサイクルを起動するためのバス
スタート信号/BS を外部バスコントローラ200 に出力し
ている。マイクロプロセッサ100 は、外部メモリ400 に
アクセスするときはバススタート信号/BS を外部データ
バス500 に対してバスサイクルを起動したことを示すL
レベルにする。それとともに、マイクロプロセッサ100
はリード/ライト信号R/W およびアドレス信号A[8:30]
を外部バスコントローラ200 に与え、リード/ライト信
号R/W がHレベルのときは外部データバス500 を介して
外部メモリ400から外部データextD[0:15]としてデータ
をリードし、リード/ライト信号R/WがLレベルのとき
は外部データバス500 に外部データextD[0:15]としてデ
ータを出力して外部メモリ400 にこのデータをライトす
る。その後、外部バスコントローラ200 がデータコンプ
リート信号/DC を外部メモリ400 へのアクセス(外部バ
スサイクル)が完了したことを示すLレベルに変化させ
ると、マイクロプロセッサ100 はバススタート信号/BS
をHレベルにする。また、データコンプリート信号/DC
がLレベルになったのに応じて、マイクロプロセッサ10
0 はリードデータをラッチし、またはライトデータの保
持を終了する。
【0019】外部バスコントローラ200 は外部バスマス
タ300 から外部データバス500 のバス権の要求を通知す
るためのバス権リクエスト信号/REQB を受ける。外部バ
スコントローラ200 はこのバス権リクエスト信号/REQB
がバス権が要求されたことを示すLレベルになるとホー
ルドリクエスト信号/HREQ をLレベルにするとともにH
レベルにしていたデータコンプリート信号/DC の出力を
中断する。この時点ではマイクロプロセッサ100 もデー
タコンプリート信号/DC を出力していないので、このデ
ータコンプリート信号/DC はハイインピーダンス状態と
なる。外部バスコントローラ200 はバス権リクエスト信
号/REQB がHレベルとなるとホールドリクエスト信号/H
REQ をHレベルにする。
【0020】また、外部バスコントローラ200 は外部バ
スマスタ300 からデータのリードまたはライトを示すた
めのバスマスタ用リード/ライト信号R/WBM および24ビ
ットのアドレス信号A[8:31] を受け、マイクロプロセッ
サ100 内のDRAM領域にアクセスするための制御信号/CS,
R/W,A[8:30] および外部メモリ400 にアクセスするため
の制御信号CTRLを出力する。外部バスコントローラ200
はホールドリクエスト信号/HREQ に応答してホールドア
クノレッジ信号/HACK がLレベルになるとバスマスタ用
リード/ライト信号R/WBM およびアドレス信号A[8:31]
に応答して制御信号/CS,R/W,A[8:30] または制御信号CT
RLを変化させる。
【0021】もっと詳細に説明すると、外部バスコント
ローラ200 は外部バスマスタ300 からの24ビットのアド
レス信号A[8:31] のうち4 ビットA[8:11] が0000ならば
マイクロプロセッサ100 における内蔵DRAM領域へのアク
セスであると判断する。そして外部バスコントローラ20
0 はチップセレクト信号/CS をLレベルとするととも
に、アドレス信号A[8:31] のうちの23ビットA[8:30] を
マイクロプロセッサ100に与え、バスマスタ用リード/
ライト信号R/WBM がHレベルならばリードと判断してリ
ード/ライト信号R/W をHレベルにし、バスマスタ用リ
ード/ライト信号R/WBM がLレベルならばライトと判断
してリード/ライト信号R/W をLレベルにする。また、
24ビットのアドレス信号A[8:31] のうちの4 ビットA[8:
11] の中で少なくとも1ビットが1 ならば外部メモリ40
0 へのアクセスであると判断する。そして外部バスコン
トローラ200 は制御信号CTRLをアドレス信号A[8:31] お
よびバスマスタ用リード/ライト信号R/WBM に応じて変
化させる。ここで制御信号CTRLは外部メモリ400 を制御
するための複数の信号を総称して表わしている。
【0022】さらにまた、外部バスコントローラ200 は
マイクロプロセッサ100 の内蔵DRAM領域または外部メモ
リ400 へのアクセスが終了したことを通知するためのバ
スマスタ用データコンプリート信号/DCBM を外部バスマ
スタ300 へ出力する。外部バスコントローラ200 は外部
バスマスタ300 がマイクロプロセッサ100 の内蔵DRAM領
域にアクセスしたときは、マイクロプロセッサ100 によ
りデータコンプリート信号/DC がLレベルにされるとバ
スマスタ用データコンプリート信号/DCBM をアクセスが
終了したことを示すLレベルにする。また、外部バスコ
ントローラ200は外部バスマスタ300 が外部メモリ400
にアクセスしたときは、あらかじめ決まっている外部メ
モリ400 のリードまたはライトサイクルタイムが経過す
るのを見計らってバスマスタ用データコンプリート信号
/DCBM をLレベルにする。
【0023】また、外部バスコントローラ200 はチップ
セレクト信号/CS をLレベルにしているとき、外部バス
マスタ300 からのバス権リクエスト信号/REQB がHレベ
ルにされるとホールドリクエスト信号/HREQ をHレベル
に変化させる前かまたは同時にチップセレクト信号/CS
をHレベルにするとともにリード/ライト信号R/W およ
びアドレス信号A[8:30] の出力を終了する。
【0024】さらに、外部バスコントローラ200 はバス
スタート信号/BS がLレベルになるとマイクロプロセッ
サ100 から外部メモリ400 へのアクセスであると判断す
る。そして、外部バスコントローラ200 はマイクロプロ
セッサ100 からのリード/ライト信号R/W およびアドレ
ス信号A[8:30] に応じて制御信号CTRLを変化させる。そ
の後、外部バスコントローラ200 はあらかじめ決まって
いる外部メモリ400 のリードまたはライトサイクルタイ
ムが経過するのを見計らってデータコンプリート信号/D
C をLレベルにするとともに、制御信号CTRLの保持を終
了する。
【0025】外部バスマスタ300 は外部データバス500
に対するバス権を要求する。例えばマイクロプロセッサ
100 と同じ構成のマイクロプロセッサまたは構成の異な
る別の種類のマイクロプロセッサなどはこの外部バスマ
スタ300 に含まれる。外部バスマスタ300 はマイクロプ
ロセッサ100 の内蔵DRAM領域または外部メモリ400 にア
クセスするときにバス権リクエスト信号/REQB をLレベ
ルにするとともに、バスマスタ用リードライト信号R/WB
M およびアドレス信号A[8:31] をアクセスに応じたレベ
ルに変化させる。また、外部バスマスタ300 はバスマス
タ用データコンプリート信号/DCBM がLレベルになると
リードサイクル時は外部データextD[0:15]をラッチし、
ライトサイクル時は外部データextD[0:15]の保持を終了
する。
【0026】外部メモリ400 は16MByte(128Mbit)の容量
を有しており、例えば×8 品の64MbitDRAMを2 個を含
む。外部メモリ400 は外部バスコントローラ200 から制
御信号CTRLを受け、この制御信号CTRLに応答して外部デ
ータバス500 を介して与えられた外部データextD[0:15]
を記憶したり、記憶されたデータを外部データバス500
に外部データextD[0:15]として出力する。
【0027】次にマイクロプロセッサ100 の構成につい
て説明する。図1を参照して、マイクロプロセッサ100
はデータの演算をおこなうCPU 110 、データを記憶する
1MByte(8Mbit) の内蔵DRAM120 、および内蔵DRAM120 に
記憶されたデータの一部を記憶する4KByte(32Kbit)のキ
ャッシュメモリ130 を1チップ内に備える。また、マイ
クロプロセッサ100 は外部から入力されるクロック信号
CLKIN を受けて、クロック信号CLKIN の4 倍の周波数の
クロック信号CLOCK およびクロック信号CLKINに同期し
た内部クロック信号intCLKを発生するPLL(Phase Locked
Loop)クロック生成回路140 を備える。さらに、マイク
ロプロセッサ100 はチップ外部と内部回路との間で信号
をやり取りするための外部バスインターフェイスユニッ
ト150を備える。さらにまた、マイクロプロセッサ100
はクロック信号CLOCK に同期して動作し、CPU 110 およ
び外部バスインターフェイスユニット150 から種々の信
号を受け、この信号に応答してDRAM120 およびキャッシ
ュメモリ130 を制御するためのメモリコントローラ160
を備える。また、マイクロプロセッサ110 は128 ビッ
ト幅の内部データバス170 を備え、CPU 110 、DRAM120
、キャッシュメモリ130 、および外部バスインターフ
ェイスユニット150 はこの内部データバス170 を介し
てデータのやり取りを行っている。
【0028】CPU 110 はメモリコントローラ160 に対し
て命令コードをCPU 110 にフェッチする要求を通知する
ための命令フェッチアクセスリクエスト信号/REQF 、命
令の実行対象データであるオペランドをリードまたはラ
イトする要求を通知するためのオペランドアクセスリク
エスト信号/REQO 、命令フェッチアクセスするメモリの
アドレスを指定するための命令フェッチアクセスアドレ
ス信号AF、オペランドアクセスするメモリのアドレスを
指定するためのオペランドアクセスアドレス信号AO、お
よびCPU 110 が要求する内蔵DRAM領域へのアクセスがイ
ンターロックアクセスか否かを通知するためのロック信
号/LOCK を出力する。キャッシュメモリ130 にはDRAM12
0 の一部のデータをコピーして記憶しているので、内蔵
DRAM領域へのアクセスとはDRAM120 またはキャッシュメ
モリ130 へのアクセスを意味する。また、CPU 110 はオ
ペランドアクセスがリードかライトかを示すためのオペ
ランドリード/ライト信号OPR/W を出力する。
【0029】また、CPU 110 は命令フェッチアクセスに
応じたことを示すための命令フェッチアクセスアクノレ
ッジ信号/ACKF 、オペランドアクセスに応じたことを示
すためのオペランドアクセスアクノレッジ信号/ACKO 、
命令フェッチアクセスが完了したことを通知するための
命令フェッチアクセス完了信号/ENDF 、およびオペラン
ドアクセスが完了したことを通知するためのオペランド
アクセス完了信号/ENDO をメモリコントローラ160 から
受ける。
【0030】そして、CPU 110 は命令フェッチアクセス
のときは命令フェッチアクセスリクエスト信号/REQF を
命令フェッチアクセスを要求したことを示すLレベルに
するとともに、命令フェッチアクセスアドレス信号AFを
アクセスしようとするアドレスに応じて変化させる。こ
の命令フェッチアクセスリクエスト信号/REQF に応答し
て命令フェッチアクセスアクノレッジ信号/ACKF がLレ
ベルに変化した後、命令フェッチアクセス完了信号/END
F が命令フェッチアクセスの完了を示すLレベルに変化
すると、CPU 110 は内部データバス170 上の128 ビット
の内部データintD[0:127] をラッチする。
【0031】また、CPU 110 はオペランドアクセスのと
きはオペランドアクセスリクエスト信号/REQO をオペラ
ンドアクセスを要求したことを示すLレベルにする。そ
れとともにCPU 110 はオペランドリード/ライト信号OP
R/W をオペランドリードの場合はHレベルに、オペラン
ドライトの場合はLレベルにし、内部アドレス信号intA
をアクセスしようとするアドレスに応じて変化させる。
また、オペランドリードがインターロックアクセスの場
合は併せてロック信号/LOCK をインターロックアクセス
であることを示すLレベルにする。その後、オペランド
アクセスアクノレッジ信号/ACKO がLレベルに変化する
と、オペランドライトの場合はオペランドを内部データ
バス170 に内部データintD[0:127] のうちの32ビットの
データとして出力する。また、オペランドライトがイン
ターロックアクセスの場合はインターロックアクセス期
間を終わらせるためにロック信号/LOCK をHレベルにす
る。その後、オペランドアクセス完了信号/ENDO がオペ
ランドアクセスの完了を示すLレベルに変化すると、オ
ペランドリードの場合、CPU 110 は内部データバス170
上の128 ビットの内部データintD[0:127] をラッチし、
オペランドライトの場合、CPU 110 は内部データバス17
0 へ出力していたオペランドの保持を終了する。
【0032】DRAM120 はメモリコントローラ160 から制
御信号CTRLD を受け、この制御信号CTRLD に応答して内
部データバス170 を介して与えられた内部データintD
[0:127] を記憶したり、記憶されたデータを内部データ
バス170 に内部データintD[0:127] として出力する。こ
こで制御信号CTRLD はDRAM120 をリードおよびライト動
作させるための種々の信号を総称している。
【0033】キャッシュメモリ130 はSRAM(Static Rand
om Access Memory) で構成される。キャッシュメモリ13
0 はメモリコントローラ160 から制御信号CTRLC を受
け、この制御信号CTRLC に応答して内部データバス170
を介して与えられた内部データintD[0:127] を記憶した
り、記憶されたデータを内部データバス170 に内部デー
タintD[0:127] として出力する。ここで制御信号CTRLC
はキャッシュメモリ130をリードおよびライト動作させ
るための種々の信号を総称している。また、キャッシュ
メモリ130 は内蔵DRAM120 に記憶されたデータの一部ま
たは外部メモリ400 に記憶されたデータの一部をコピー
して記憶することができる。つまり、内蔵DRAM120 のキ
ャッシュか外部メモリ400 のキャッシュか切り替え可能
になっているが、ここでは内蔵DRAM120 のキャッシュと
して説明をおこなう。
【0034】PLL クロック生成回路140 は逓倍回路を含
み、例えば外部から入力されるクロック信号CLKIN の周
波数が16.65MHzのときは66.6MHz のクロック信号CLOCK
を出力する。内部クロック信号intCLKは入力されたクロ
ック信号CLKIN と同位相の信号で、周波数はクロック信
号CLKIN と同じである。
【0035】外部バスインターフェイスユニット150 は
外部からホールドリクエスト信号/HREQ 、チップセレク
ト信号/CS 、データコンプリート信号/DC 、リードライ
ト信号R/W 、およびアドレス信号A[8:30] を受け、これ
らの信号のそれぞれに応じた内部ホールドリクエスト信
号int/HREQ、内部チップセレクト信号int/CS、内部デー
タコンプリート信号int/DC、内部リードライト信号intR
/W、および内部アドレス信号intA[8:30]を出力する。ま
た、外部バスインターフェイスユニット150 は内部ホー
ルドアクノレッジ信号int/HACK、内部データコンプリー
ト信号int/DC、内部リード/ライト信号intR/W、および
内部バススタート信号int/BSを受け、これらの信号のそ
れぞれに応じたホールドアクノレッジ信号/HACK 、デー
タコンプリート信号/DC 、リード/ライト信号R/W 、お
よびバススタート信号/BS を外部に出力する。
【0036】また、外部バスインターフェイスユニット
150 は外部データバス500 と内部データバス170 との間
でのデータ転送をする。内部データバス170 から外部デ
ータバス500 にデータを転送するとき、外部バスインタ
ーフェイスユニット150 はまず内部データバス170 上の
128 ビットのパラレルな内部データintD[0:127] をいっ
たん保持して16ビットずつ順に外部データバス500 に外
部データextD[0:15]としてシリアルに出力する。逆に外
部データバス500 から内部データバス170 にデータを転
送するとき、外部インターフェイスユニット150 はまず
外部データバス500 上の外部データextD[0:15]を16ビッ
トずつ順にシリアルに取り込んで保持し、内部データバ
ス170 にパラレルに出力する。パラレル出力のしかたは
128 ビットまで取り込んでパラレルに128 ビット出力す
る場合もあれば32ビットで取り込みをやめてパラレルに
32ビット出力する場合や同様に64ビット出力、96ビット
出力の場合もある。
【0037】メモリコントローラ160 はCPU 110 から命
令フェッチアクセスアドレス信号AF、オペランドアクセ
スアドレス信号AO、命令フェッチアクセスリクエスト信
号/REQF 、オペランドアクセスリクエスト信号/REQO 、
ロック信号/LOCK およびオペランドリード/ライト信号
OPR/W 、外部バスインターフェイスユニット150 から内
部ホールドリクエスト信号int/HREQおよび内部データコ
ンプリート信号int/DCを受ける。内部ホールドリクエス
ト信号int/HREQおよび内部チップセレクト信号int/CSは
外部から内蔵DRAM領域へアクセスするために必要な信号
である。メモリコントローラ160 は命令フェッチアクセ
スリクエスト、オペランドアクセスリクエスト、ホール
ドリクエスト、およびチップセレクト(内蔵DRAM領域へ
のアクセスリクエスト)の4つの要求のアービトレーシ
ョンをおこなう。
【0038】メモリコントローラ160 はインターロック
アクセス期間中と非インターロックアクセス期間中とで
このアービトレーションの仕方を変える。また、インタ
ーロックアクセスには内部ホールドリクエスト信号/HRE
Q と排他的に行われるホールド排他ロックモードおよび
内部チップセレクト信号/CS と排他的に行われるチップ
セレクト排他ロックモードのソフトウェアで切り替え可
能な2種類のモードがあり、各モードによってアービト
レーションのしかたも切り替わるようになっている。ま
た、メモリコントローラ160 は4つの要求のアービトレ
ーションの結果が反映する命令フェッチアクセスアクノ
レッジ信号/ACKF 、オペランドアクセスアクノレッジ信
号/ACKO 、内部ホールドアクノレッジ信号int/HACK、お
よび内部データコンプリート信号int/DCを出力する。
【0039】そして、非インターロックアクセス時、メ
モリコントローラ160 は内部ホールドリクエスト信号in
t/HREQがLレベルになると、マイクロプロセッサ100 が
外部データバスに対するバスサイクルを起動しようとし
ていないか判定して、起動しようとしていなければ内部
ホールドアクノレッジ信号int/HACKをLレベルにする。
すなわち、命令フェッチアクセスおよびオペランドアク
セスが外部メモリ400に対しておこなおうとしていない
かを、命令フェッチアクセスまたはオペランドアクセス
の要求を示す命令フェッチアクセスリクエスト信号/REQ
F またはオペランドアクセスリクエスト信号/REQO がL
レベルになっていないか、また命令フェッチアクセスア
ドレス信号AFまたはオペランドアクセスアドレス信号AO
が外部メモリ400 のアドレスを指定しているかで判断す
る。
【0040】そして、命令フェッチアクセスリクエスト
信号/REQF がLレベルかつ命令フェッチアクセスアドレ
ス信号AFが外部メモリ400 のアドレスを指定している
か、またはオペランドアクセスリクエスト信号/REQO が
Lレベルかつオペランドアクセスアドレス信号AOが外部
メモリ400 のアドレスを指定していれば、メモリコント
ローラ160 は内部ホールドリクエスト信号int/HREQがL
レベルになっても実行中の外部への命令フェッチアクセ
スまたはオペランドアクセスが終了するまでは内部ホー
ルドアクセスアクノレッジ信号int/HACKをLレベルにし
ない。さもなくば、すぐに内部ホールドアクノレッジ信
号int/HACKをLレベルにする。
【0041】また、非インターロックアクセス時、メモ
リコントローラ160 は内部ホールドリクエスト信号int/
HREQがLレベルになっているとCPU 110 からの外部への
命令フェッチアクセスまたはオペランドアクセスの要求
に応じない。つまり、メモリコントローラ160 は内部ホ
ールドリクエスト信号int/HREQがLレベルのとき、命令
フェッチアクセスアドレス信号AFが外部メモリ400 のア
ドレスを指定し、かつ命令フェッチアクセスリクエスト
信号/REQF がLレベルとなるか、またはオペランドアク
セスアドレス信号AOが外部メモリ400 のアドレスを指定
し、かつオペランドアクセスリクエスト信号/REQO がL
レベルとなっても内部ホールドリクエスト信号int/HREQ
がHレベルになるのに応じて内部ホールドアクノレッジ
信号int/HACKをHレベルにして外部データバス500 のバ
ス権を得るまでは要求のそれぞれに対応した命令フェッ
チアクセスアクノレッジ信号/ACKF またはオペランドア
クセスアクノレッジ信号/ACKO をLレベルにしない。
【0042】つまり、非インターロック時は命令フェッ
チアクセスおよびオペランドアクセスが外部メモリ400
へのアクセスであれば、メモリコントローラ160 は命令
フェッチアクセスリクエスト信号/REQF 、オペランドア
クセスリクエスト信号/REQOおよび内部ホールドリクエ
スト信号int/HREQのうちLレベルになるのが早いものか
ら順に応答の信号、つまり命令フェッチアクセスアクノ
レッジ信号/ACKF 、オペランドアクセスアクノレッジ信
号/ACKO および内部ホールドアクノレッジ信号int/HACK
をLレベルにしていく。命令フェッチアクセスリクエス
ト信号/REQF、オペランドアクセスリクエスト信号/REQO
および内部ホールドリクエスト信号int/HREQが同時に
Lレベルとなった場合は、メモリコントローラ160 はま
ずホールドリクエストに応じて内部ホールドアクノレッ
ジ信号int/HACKをLレベルにする。その後、オペランド
アクセスリクエストに応じてオペランドアクセスアクノ
レッジ信号/ACKO をLレベルにする。そして、このオペ
ランドアクセスが完了すると命令フェッチアクセスリク
エストに応じて命令フェッチアクセスアクノレッジ信号
/ACKF をLレベルにする。
【0043】しかしながら、非インターロック時に命令
フェッチアクセスおよびオペランドアクセスが内蔵DRAM
領域へのアクセスであれば、内部ホールドリクエスト信
号int/HREQによらずに命令フェッチアクセスリクエスト
信号/REQF およびオペランドアクセスリクエスト信号/R
EQO のうちLレベルになるのが早いものから順に応答の
信号、つまり命令フェッチアクセスアクノレッジ信号/A
CKF およびオペランドアクセスアクノレッジ信号/ACKO
をLレベルにしていく。この場合、命令フェッチアクセ
スリクエスト信号/REQF およびオペランドアクセスリク
エスト信号/REQO が同時にLレベルになると、まずオペ
ランドアクセスアクノレッジ信号/ACKOをLレベルに
し、このオペランドアクセスが完了すると命令フェッチ
アクセスリクエストに応じて命令フェッチアクセスアク
ノレッジ信号/ACKF をLレベルにする。
【0044】また、非インターロックアクセス時、内部
チップセレクト信号int/CSがLレベルになると、メモリ
コントローラ160 は命令フェッチアクセスリクエスト信
号/REQF およびオペランドアクセスリクエスト信号/REQ
O がHレベルであるか、この少なくともどちらか一方が
既にLレベルであってもその要求が外部へのアクセスで
あるために対応の命令フェッチアクセスアクノレッジ信
号/ACKF またはオペランドアクセスアクノレッジ信号/A
CKO がHレベルのままの場合はチップセレクトに応じて
内蔵DRAMへのアクセスをおこない、このアクセスが終わ
ると応答の内部データコンプリート信号int/DCをLレベ
ルにする。
【0045】また、非インターロックアクセス時に命令
フェッチアクセスリクエスト信号/REQF 、オペランドア
クセスリクエスト信号/REQO 、および内部チップセレク
ト信号int/CSが同時にLレベルになった場合は、メモリ
コントローラ160 はまずチップセレクトに応じて内蔵DR
AM領域へのアクセスをおこない、このアクセスが終わる
と内部データコンプリート信号int/DCをLレベルにす
る。その後、オペランドアクセスリクエストに応じてオ
ペランドアクセスアクノレッジ信号/ACKO をLレベルに
する。そして、このオペランドアクセスが完了すると命
令フェッチアクセスリクエストに応じて命令フェッチア
クセスアクノレッジ信号/ACKF をLレベルにする。チッ
プセレクト信号/CS はホールドリクエスト信号/HREQ お
よびホールドアクノレッジ信号/HACK がLレベルになっ
てからLレベルとされるので、内部チップセレクト信号
int/CSがLレベルになるときは内部ホールドアクノレッ
ジ信号int/HACKはLレベルとなっている。
【0046】ロック信号/LOCK がLレベル、オペランド
リード/ライト信号OPR/W がHレベルにされ、オペラン
ドアクセスリクエスト信号/REQO がLレベルになったの
に応答してオペランドアクセスアクノレッジ信号/ACKO
がLレベルになることで、つまりインターロック付のオ
ペランドリードサイクルが始まったときからインターロ
ックアクセス期間が始まる。このインターロックアクセ
ス期間はロック信号/LOCK がHレベル、オペランドリー
ド/ライト信号OPR/W がLレベルにされ、オペランドア
クセスリクエスト信号/REQO がLレベルになった後、オ
ペランドアクセス完了信号/ENDO がLレベルとなること
で、つまりインターロック付のオペランドライトサイク
ルが終わったときで終了する。
【0047】インターロックアクセス期間中、ホールド
排他ロックモードに設定されている場合は、メモリコン
トローラ160 は内部ホールドリクエスト信号int/HREQが
Lレベルになってもインターロックアクセス期間が終了
するまでは無視して内部ホールドアクノレッジ信号int/
HACKを外部から内蔵DRAM領域へのアクセスが排除されて
いることを示すHレベルにする。また、インターロック
期間中もメモリコントローラ160 は命令フェッチアクセ
スリクエスト信号/REQF およびオペランドアクセスリク
エスト信号/REQO のうちLレベルになるのが早いほうか
ら順に応答の命令フェッチアクセスアクノレッジ信号/A
CKF およびオペランドアクセスアクノレッジ信号/ACKO
をLレベルにする。さらに、メモリコントローラ160 は
命令フェッチアクセスリクエスト信号/REQF およびオペ
ランドアクセスリクエスト信号/REQO が同時にLレベル
になるとまずオペランドアクセスアクノレッジ信号/ACK
OをLレベルにする。そして、このオペランドアクセス
が完了すると命令フェッチアクセスアクノレッジ信号/A
CKF をLレベルにする。
【0048】インターロックアクセス期間中、チップセ
レクト排他ロックモードに設定されている場合は、メモ
リコントローラ160 は内部チップセレクト信号int/CSが
Lレベルになってもインターロックアクセス期間が終了
するまでは無視して内蔵DRAM領域へのアクセスを行わ
ず、データコンプリート信号int/DCをHレベルのままに
して内蔵DRAM領域へのアクセスが排除されていることを
知らせる。また、このときもメモリコントローラ160 は
命令フェッチアクセスリクエスト信号/REQF およびオペ
ランドアクセスリクエスト信号/REQO のうちLレベルに
なるのが早いほうから順に応答の命令フェッチアクセス
アクノレッジ信号/ACKF およびオペランドアクセスアク
ノレッジ信号/ACKO をLレベルにする。さらに、メモリ
コントローラ160 は命令フェッチアクセスリクエスト信
号/REQF およびオペランドアクセスリクエスト信号/REQ
O が同時にLレベルになるとまずオペランドアクセスア
クノレッジ信号/ACKO をLレベルにする。そして、この
オペランドアクセスが完了すると命令フェッチアクセス
アクノレッジ信号/ACKF をLレベルにする。
【0049】さらに、メモリコントローラ160 は外部バ
スインターフェイスユニット150 から内部データコンプ
リート信号int/DC、内部リード/ライト信号intR/W、内
部アドレス信号intA[8:30]を受け、命令フェッチアクセ
ス完了信号/ENDF 、オペランドアクセス完了信号/ENDO
、内部リード/ライト信号intR/W、内部アドレス信号i
ntA[8:30]、内部バススタート信号int/BS、制御信号CTR
LD および制御信号CTRLC を出力する。
【0050】メモリコントローラ160 は命令フェッチア
クセスアクノレッジ信号/ACKF をLレベルにしたとき
は、CPU 110 からの命令フェッチアクセスアドレス信号
AFが内蔵DRAM領域内のアドレスを指定しているか外部メ
モリ400 のアドレスを指定しているか判定した結果、外
部メモリへのアクセスであると判断すると内部リード/
ライト信号intR/Wをリードを示すHレベルにするととも
に、内部アドレス信号intA[8:30]を外部メモリ400 をア
クセスするアドレスに変化させ、内部バススタート信号
int/BSを外部データバス500 に対してバスサイクルを起
動したことを示すLレベルにする。その後、内部データ
コンプリート信号int/DCがバスサイクルの完了を示すL
レベルになると、メモリコントローラ160 は内部バスス
タート信号int/BSをHレベルにもどし、再びLレベルに
するとともに内部アドレス信号intA[8:30]を変化させて
バスサイクルを起動する。このようにして32ビットのデ
ータを取り込むときは2 回、64ビットならば4 回、96ビ
ットならば6 回、128 ビットならば8 回のバスサイクル
を起動させる。そして、メモリコントローラ160 は内部
データコンプリート信号int/DCが2,4,6 または8 回Lレ
ベルになったのに応じて命令フェッチアクセス完了信号
/ENDF をLレベルにする。
【0051】また、判定の結果内蔵DRAM領域へのアクセ
スであると判断すると、メモリコントローラ160 はCPU
110 からの命令フェッチアクセスアドレス信号AFがキャ
ッシュメモリ130 に記憶されているデータに対応するア
ドレスか否かを判定し、対応するアドレスならばキャッ
シュヒットとしてキャッシュメモリ130 へのアクセスで
あると判断し、キャッシュメモリ130 を制御するための
制御信号CTRLC を変化させる。また、対応するアドレス
でなければキャッシュミスとして内蔵DRAM120へのアク
セスであると判断し、内蔵DRAM120 を制御するための制
御信号CTRLDを変化させる。その後、メモリコントロー
ラ160 は内蔵DRAM120 またはキャッシュメモリ130 のサ
イクルタイムが経過するのを見計らって命令フェッチア
クセス完了信号/ENDF をLレベルにするとともに、制御
信号CTRLC またはCTRLD の保持を終了する。
【0052】また、メモリコントローラ160 はオペラン
ドアクセスアクノレッジ信号/ACKOをLレベルにしたと
きも、命令フェッチアクセスアクノレッジ信号/ACKF を
Lレベルにしたときと同様にオペランドアクセスが外部
メモリ400 へのアクセスであると判断すると、内部リー
ド/ライト信号intR/Wをオペランドリード/ライト信号
OPR/W に応答して、オペランドリード/ライト信号OPR/
W がHレベルならばHレベルに、LレベルならばLレベ
ルに変化させる。それとともに、内部アドレス信号intA
[8:30]を外部メモリ400 をアクセスするアドレスに変化
させ、内部バススタート信号int/BSを外部データバス50
0 に対してバスサイクルを起動したことを示すLレベル
にする。
【0053】その後、内部データコンプリート信号int/
DCがバスサイクルの完了を示すLレベルになるとメモリ
コントローラ160 は内部バススタート信号int/BSをHレ
ベルにもどし、再びLレベルにするとともに内部アドレ
ス信号intA[8:30]を変化させてバスサイクルを起動す
る。このようにして32ビットのデータを取り込むまたは
出力するときは2 回、64ビットならば4 回、96ビットな
らば6 回、128 ビットならば8 回のバスサイクルを起動
させる。そして、メモリコントローラ160 は内部データ
コンプリート信号int/DCが2,4,6 または8 回Lレベルに
なったのに応じてオペランドアクセス完了信号/ENDO を
Lレベルにする。
【0054】また、オペランドアクセスが内蔵DRAM領域
へのアクセスであると判断すると、キャッシュヒットな
らばキャッシュメモリ130 を制御するための制御信号CT
RLCをCPU 110 からのオペランドアクセスアドレス信号A
Oおよびオペランドリード/ライト信号OPR/W に応答し
て変化させる。また、キャッシュミスならば内蔵DRAM12
0 を制御するための制御信号CTRLD をCPU 110 からのオ
ペランドアクセスアドレス信号AOおよびオペランドリー
ド/ライト信号OPR/W に応答して変化させる。その後、
メモリコントローラ160 は内蔵DRAM120 またはキャッシ
ュメモリ130のサイクルタイムが経過するのを見計らっ
てオペランドアクセス完了信号/ENDO をLレベルにす
るとともに、制御信号CTRLC またはCTRLD の保持を終了
する。
【0055】さらに、メモリコントローラ160 は内部チ
ップセレクト信号int/CSがLレベルになったのに応じた
場合はCPU 110 による内蔵DRAM領域へのアクセスのとき
と同様に外部バスインターフェイスユニット150 からの
内部アドレスintA[8:30]に基づきキャッシュヒットかミ
スかの判定をおこなう。そして、キャッシュヒットなら
ばキャッシュメモリ130 を制御するための制御信号CTRL
C を内部リードライト信号intR/Wおよび外部バスインタ
ーフェイスユニット150 からの内部アドレスintA[8:30]
に応答して変化させる。また、キャッシュミスならば内
蔵DRAM120 を制御するための制御信号CTRLD を内部リー
ドライト信号intR/Wおよび外部バスインターフェイスユ
ニット150 からの内部アドレスintA[8:30]に応答して変
化させる。その後、メモリコントローラ160 は内蔵DRAM
120 またはキャッシュメモリ130のサイクルタイムが経
過するのを見計らって内部データコンプリート信号int/
DCをLレベルにするとともに制御信号CTRLC またはCTRL
D の保持を終了する。
【0056】次に図2 を参照してCPU 110 についてもう
少し詳しく説明する。CPU 110 は32ビットRISC型のCPU
コアで構成される。命令長は16ビットまたは32ビットと
なっている。また、CPU 110 から内蔵DRAM領域または外
部メモリ400 へのオペランドアクセスはload命令および
store 命令だけで行われる。図2 を参照して、CPU 110
は内部データバス170 からの128 ビットの内部データin
tD[0:127] を受けてこのうちの32ビットを命令として出
力するための命令キュー110aを含む。また、CPU 110 は
命令キュー110aから受けた命令をデコードして出力する
命令デコーダ110bを含む。命令キュー110aから32ビット
のデータが転送されてきたときにはそのデータが32ビッ
トの命令か16ビットの命令かはわからないが、この命令
デコーダ110bでデコードされることで32ビットか16ビッ
トかわかる。
【0057】また、CPU 110 は命令キュー110aがフェッ
チしようとする命令が記憶されている命令フェッチアク
セスアドレス信号AFを発生するプログラムカウンタ110
c、データを格納しておくためのレジスタユニット110d
を含む。レジスタユニット110dは32ビット幅のレジスタ
を16本有する。さらに、CPU 110 はデータの足し算、引
き算およびAND やORなどの論理演算をおこなうためのAL
U(Arithmetic Logic Unit)110e、データのビット列を所
望のビット分シフトまたはローテートするためのシフタ
110f、データの積和演算をするための積和演算ユニット
110gを含む。積和演算ユニット110gは32×16ビットの乗
算器と56ビットのアキュムレータを有する。さらにま
た、CPU 110 はレジスタユニット110d、ALU 110e、シフ
タ110fおよび積和演算ユニット110gの間でデータのロー
ドおよびストアをおこなうためのロードストアユニット
110hを含む。
【0058】また、CPU 110 は内部データバス170 から
の128 ビットの内部データintD[0:127] を受けてこのう
ちの32ビットを出力し、逆に32ビットのデータをレジス
タ110dなどのユニットから受けて内部データバス170 に
出力するためのデータセレクタ110iを含む。さらに、CP
U 110 はオペランドアクセスを制御するためのCPU 制御
回路110jを含む。命令は5 段のパイプラインで処理され
る。パイプラインは命令キュー110aでの命令フェッチ、
命令デコーダ110bでの命令でコード、ALU 110eなどでの
実行、CPU 制御回路110jでのメモリアクセス、およびデ
ータセレクタ110iでのレジスタへのライトバックであ
る。
【0059】命令キュー110aは必要な命令を全て命令デ
コーダ110bに出力してしまうと、次の命令をフェッチす
るために命令フェッチアクセスリクエスト信号/REQF を
Lレベルにする。そして、内部データバス170 を介して
命令が伝達されてきて命令フェッチアクセス完了信号/E
NDF がLレベルになると内部データバス170 からの命令
をラッチする。命令デコーダ110bは命令キュー110aから
与えられた命令をデコードし、レジスタユニット110d、
ALU 110e、シフタ110f、積和演算ユニット110g、ロード
ストアユニット110hまたはCPU 制御回路110jに転送す
る。プログラムカウンタ110cは命令キュー110aが命令フ
ェッチアクセスリクエスト信号/REQF をLレベルにする
と命令フェッチアクセス先を指定するための命令フェッ
チアクセスアドレス信号AFをアクセスするアドレスに変
化させる。また、プログラムカウンタ110cは命令フェッ
チアクノレッジ信号/ACKF がLレベルになると命令フェ
ッチアクセスアドレス信号AFの出力を終了する。
【0060】データセレクタ110iはオペランドアクセス
アドレス信号AO、オペランドアクセスアクノレッジ信号
/ACKO およびオペランドアクセス完了信号/ENDO を受け
る。データセレクタ110iは、オペランドライト時はオペ
ランドアクセスアクノレッジ信号/ACKO がLレベルにな
るとレジスタユニット110dなどから受けた32ビットのデ
ータを128 ビット幅の内部データバス170 のうちのオペ
ランドアクセスアドレス信号AOに応答した32ビットに出
力する。また、データセレクタ110iは、オペランドリー
ド時はオペランドアクセス完了信号/ENDO がLレベルに
なると内部データバス170 からの128 ビットのデータを
ラッチし、そのうちのオペランドアクセスアドレス信号
AOに応答した32ビットを出力する。
【0061】CPU 制御回路110jは命令デコーダ110bから
デコードされた命令を受ける。また、CPU 制御回路110j
は命令デコーダ110bからの命令がload命令またはstore
命令でこれらの命令のオペランド指定部分が内蔵DRAM領
域、外部メモリ400 およびマイクロプロセッサ100 内に
はあるがCPU 110 の外にあるレジスタなどを指定してい
るとき、このオペランド指定部分に応じてオペランドア
クセスアドレス信号AOを変化させる。このとき、CPU 制
御回路110jはオペランドアクセスリクエスト信号/REQO
をLレベルにし、オペランドリード/ライト信号OPR/W
をload命令の場合はHレベルに、store 命令の場合はL
レベルにする。また、CPU 制御回路110jはload命令がイ
ンターロック付load命令の場合はロック信号/LOCK をL
レベルにし、インターロック付store 命令の場合はロッ
ク信号/LOCK をHレベルにもどす。
【0062】次に外部バスインターフェイスユニット15
0 についてもう少し詳しく説明する。図3 を参照して、
外部バスインターフェイスユニット150 は外部からホー
ルドリクエスト信号/HREQ を受けて内部ホールドリクエ
スト信号int/HREQを出力するホールドリクエスト信号入
力バッファ150aを含む。ホールドリクエスト信号入力バ
ッファ150aは内部ホールドリクエスト信号int/HREQをホ
ールドリクエスト信号/HREQ がHレベルならばHレベル
に、LレベルならばLレベルにする。また、外部バスイ
ンターフェイスユニット150 は内部ホールドアクノレッ
ジ信号int/HACKを受けて外部にホールドアクノレッジ信
号/HACK を出力するホールドアクノレッジ信号出力バッ
ファ150bを含む。ホールドアクノレッジ信号出力バッフ
ァ150bはホールドアクノレッジ信号/HACK を内部ホール
ドアクノレッジ信号int/HACKがHレベルならばHレベル
に、LレベルならばLレベルにする。
【0063】さらに、外部バスインターフェイスユニッ
ト150 は外部からチップセレクト信号/CS を受けて内部
チップセレクト信号int/CSを出力するチップセレクト信
号入力バッファ150cを含む。チップセレクト信号入力バ
ッファ150cは内部チップセレクト信号int/CSをチップセ
レクト信号/CS がHレベルならばHレベルに、Lレベル
ならばLレベルにする。さらにまた、外部バスインター
フェイスユニット150は内部チップセレクト信号int/CS
を受け、さらに外部からデータコンプリート信号/DC を
受けて内部データコンプリート信号int/DCを出力し、ま
た内部データコンプリート信号int/DCを受けてデータコ
ンプリート信号/DC を出力するデータコンプリート信号
入出力バッファ150dを含む。データコンプリート信号入
出力バッファ150dは、内部チップセレクト信号int/CSが
Hレベルの場合は内部データコンプリート信号int/DCを
外部からのデータコンプリート信号/DC がHレベルなら
ばHレベルに、LレベルならばLレベルにし、内部チッ
プセレクト信号int/CSがLレベルの場合は外部へのデー
タコンプリート信号/DC を内部データコンプリート信号
int/DCがHレベルならばHレベルに、LレベルならばL
レベルにする。
【0064】また、外部バスインターフェイスユニット
150 は内部ホールドアクノレッジ信号int/HACKを受け、
さらに外部からリード/ライト信号R/W を受けて内部リ
ード/ライト信号intR/Wを出力し、また内部リード/ラ
イト信号intR/Wを受けてリード/ライト信号R/W を出力
するリード/ライト信号入出力バッファ150eを含む。リ
ード/ライト信号入出力バッファ150eは、内部ホールド
アクノレッジ信号int/HACKがHレベルの場合はリード/
ライト信号R/W を内部リード/ライト信号intR/WがHレ
ベルならばHレベルに、LレベルならばLレベルにし、
内部ホールドアクノレッジ信号int/HACKがLレベルの場
合は内部リード/ライト信号intR/Wを外部からのリード
/ライト信号R/W がHレベルならばHレベルに、Lレベ
ルならばLレベルにする。
【0065】さらに、外部バスインターフェイスユニッ
ト150 は内部ホールドアクノレッジ信号int/HACKを受
け、さらに外部からアドレス信号A[8:30] を受けて内部
アドレス信号intA[8:30]を出力し、また内部アドレス信
号intA[8:30]を受けてアドレス信号A[8:30] を出力する
アドレス信号入出力バッファ150fを含む。アドレス信号
入出力バッファ150fは、内部ホールドアクノレッジ信号
int/HACKがHレベルの場合はアドレス信号A[8:30] を内
部アドレス信号intA[8:30]と同じレベルにし、内部ホー
ルドアクノレッジ信号int/HACKがLレベルの場合は内部
アドレス信号intA[8:30]をアドレス信号A[8:30] と同じ
レベルにする。
【0066】さらにまた、外部バスインターフェイスユ
ニット150 は内部バススタート信号int/BSを受け、外部
へバススタート信号/BS を出力するバススタート信号出
力バッファ150gを含む。バススタート信号出力バッファ
150gはバススタート信号/BSを内部バススタート信号int
/BSがHレベルならばHレベルに、LレベルならばLレ
ベルにする。
【0067】また、外部バスインターフェイスユニット
150 は内部ホールドアクノレッジ信号int/HACK、内部デ
ータコンプリート信号int/DC、内部リード/ライト信号
R/Wおよび内部クロック信号intCLKを受け、さらに外部
から外部データextD[0:15]を受けて内部データintD[0:1
27] を出力し、また内部データintD[0:127] を受けて外
部データextD[0:15]を出力する、128 ビットの内部デー
タバスと16ビットの外部データバスとのバス幅変換をお
こなうためのデータバッファ150hを含む。データバッフ
ァ150hは内部ホールドアクノレッジ信号int/HACKがHレ
ベルのとき、内部リード/ライト信号intR/WがHレベル
の場合は内部クロック信号intCLKがLレベルからHレベ
ルに変化する際に内部データコンプリート信号int/DCが
Lレベルであると16ビットの外部データextD[0:15]をラ
ッチしてデータバッファ150hに蓄えるとともに、蓄えた
データを128 ビットの内部データintD[0:127] のいずれ
か16ビットとして出力する。
【0068】また、データバッファ150hは内部ホールド
アクノレッジ信号int/HACKがHレベルのとき、内部リー
ド/ライト信号intR/WがLレベルの場合は内部クロック
信号intCLKがLレベルからHレベルに変化する際に内部
データコンプリート信号int/DCがLレベルであると128
ビットの内部データintD[0:127] のうちから出力してい
た16ビットの外部データextD[0:15]の出力保持を終了す
る。さらに、データバッファ150hは内部ホールドアクノ
レッジ信号int/HACKがLレベルのとき、内部リード/ラ
イト信号intR/WがHレベルの場合は内部クロック信号in
tCLKがHレベルからLレベルに変化する際に内部データ
コンプリート信号int/DCがLレベルであると128 ビット
の内部データintD[0:127] のうちから16ビットの外部デ
ータextD[0:15]を出力する。
【0069】さらにまた、データバッファ150hは内部ホ
ールドアクノレッジ信号int/HACKがLレベルのとき、内
部リード/ライト信号intR/WがLレベルの場合は内部ク
ロック信号intCLKがHレベルからLレベルに変化する際
に内部データコンプリート信号int/DCがLレベルである
と16ビットの外部データextD[0:15]をラッチしてデータ
バッファ150hに蓄えるとともに、蓄えたデータを128 ビ
ットの内部データintD[0:127] のいずれか16ビットとし
て出力する。
【0070】次に、マイクロプロセッサ100 におけるメ
モリコントローラ160 についてもう少し詳しく説明す
る。図4 を参照して、メモリコントローラ160 は内部デ
ータバスを介して転送されてきたデータを記憶し、この
記憶データをロックモード信号LMとして出力するロック
モードを設定するためのロックモードレジスタ161 を含
む。ロックモード信号LMがLレベルのときはロックモー
ドはホールド排他ロックモードに設定され、Hレベルの
ときはチップセレクト排他ロックモードに設定される。
ロックモードレジスタ161 の値を設定するために、CPU
110 にロックモードレジスタ161 へのstore 命令を実行
させる。つまりST AO,LMという命令を実行させる。STは
store 命令を示し、AOはstore 命令の実行先アドレスを
示し、LMはロックモードのデータを示す。AOをロックモ
ードレジスタ161 のアドレスに、LMをホールド排他ロ
ックモードに設定するときは0 に、チップセレクト排
他ロックモードに設定するときは1 にすることでオペラ
ンドアクセスがおこなわれると、オペランドアクセスア
ドレス信号AOによりロックモードレジスタ161 が指定さ
れて内部データバス170 を介してLMがロックモードレジ
スタ161 に転送される。
【0071】また、メモリコントローラ160 はロックモ
ード信号LM、ロック信号/LOCK 内部ホールドリクエスト
信号int/HREQおよび内部チップセレクト信号int/CSを受
け、ロック付ホールドリクエスト信号/HREQLおよびロッ
ク付チップセレクト信号/CSLを出力するインターロック
回路162 を含む。インターロック回路162 はさらに、内
部ホールドリクエスト信号int/HREQを受けてこの反転信
号を出力するインバータ162aおよびロック信号/LOCK を
受けてこの反転信号を出力するインバータ162bを含む。
また、インターロック回路162 はインバータ162bからの
反転信号とロック付ホールドリクエスト信号/HREQLとを
受けるNAND回路162c、およびインバータ162aからの反転
信号とNAND回路162cの出力信号とロックモード信号LMと
を受けてロック付ホールドリクエスト信号/HREQLを出力
するNANDゲートとORゲートとからなる複合ゲート回路16
2dを含む。
【0072】さらに、インターロック回路162 はロック
モード信号LMを受けてこの反転信号を出力するインバー
タ162eおよび内部チップセレクト信号int/CSを受けこの
反転信号を出力するインバータ162fを含む。インターロ
ック回路162 はさらに、インバータ162bからのロック信
号/LOCK の反転信号とロック付チップセレクト信号/CSL
とを受けるNAND回路162g、およびNAND回路162gの出力信
号とインバータ162fからの反転信号とロックモード信号
LMのインバータ162eによる反転信号を受け、ロック付チ
ップセレクト信号/CSLを出力するNANDゲートとORゲート
とからなる複合ゲート回路162hを含む。そして、インタ
ーロック回路162 は、ロック信号/LOCKがHレベルのと
きはロックモード信号LMの値によらず、ロック付ホール
ドリクエスト信号/HREQLおよびロック付チップセレクト
信号/CSLをそれぞれ内部ホールドリクエスト信号int/HR
EQおよび内部チップセレクト信号int/CSに応じたレベル
に変化させる。
【0073】また、インターロック回路162 はロック信
号/LOCK がLレベルでロック付ホールドリクエスト信号
/HREQLがHレベルのときは、ロックモード信号LMがLレ
ベルであるとロック付ホールドリクエスト信号/HREQLを
内部ホールドリクエスト信号int/HREQによらずHレベル
にロックする。さらに、インターロック回路162 はロッ
ク信号/LOCK がLレベルでロック付チップセレクト信号
/CSLがHレベルのときは、ロックモード信号LMがHレベ
ルであるとロック付ホールドリクエスト信号/HREQLのほ
うは内部ホールドリクエスト信号int/HREQに応じたレベ
ルに変化させるものの、ロック付チップセレクト信号/C
SLを内部チップセレクト信号int/CSによらずHレベルに
ロックする。
【0074】ところで、先のメモリコントローラ160 の
説明で便宜上命令フェッチアクセスリクエスト信号/REQ
F 、オペランドアクセスリクエスト信号/REQO および内
部ホールドリクエスト信号int/HREQが同時にLレベルに
なる場合の説明をしたが、この説明はインターロック回
路162 中のインバータ162aおよび複合ゲート回路162dの
遅延があるので、厳密には命令フェッチアクセスリクエ
スト信号/REQF 、オペランドアクセスリクエスト信号/R
EQO およびロック付ホールドリクエスト信号/HREQLが同
時にLレベルになった場合の説明である。同様に命令フ
ェッチアクセスリクエスト信号/REQF 、オペランドアク
セスリクエスト信号/REQO および内部チップセレクト信
号int/CSが同時にLレベルになる場合の説明をしたが、
この説明はインターロック回路162 中のインバータ162f
および複合ゲート回路162hの遅延があるので、厳密には
命令フェッチアクセスリクエスト信号/REQF 、オペラン
ドアクセスリクエスト信号/REQO およびロック付チップ
セレクト信号/CSLが同時にLレベルになった場合の説明
である。
【0075】さらに、メモリコントローラ160 は命令フ
ェッチアクセスアドレス信号AF、オペランドアクセスア
ドレス信号AO、命令フェッチアクセスリクエスト信号/R
EQF、オペランドアクセスリクエスト信号/REQO および
ロック付ホールドリクエスト信号/HREQLを受け、内部ホ
ールドアクノレッジ信号int/HACKを出力するホールド制
御回路163 を含む。ホールド制御回路163 はまた、ロッ
ク付ホールドリクエスト信号/HREQLと命令フェッチアク
セスリクエスト信号/REQF のどちらが早くLレベルにな
ったかを示すための命令フェッチ用早遅検知信号FLF 、
ロック付ホールドリクエスト信号/HREQLとオペランドア
クセスリクエスト信号/REQO のどちらが早くLレベルに
なったかを示すオペランド用早遅検知信号FLO 、命令フ
ェッチアクセスアドレス信号AFが外部メモリ400 のアド
レスを指定しているか否か示すための命令フェッチ用外
部アクセス検知信号EADF、およびオペランドアクセスア
ドレス信号AOが外部メモリ400 のアドレスを指定してい
るか否か示すためのオペランド用外部アクセス検知信号
EADOを出力する。
【0076】ホールド制御回路163 はロック付ホールド
リクエスト信号/HREQLが命令フェッチアクセスリクエス
ト信号/REQF およびオペランドアクセスリクエスト信号
/REQO よりも早くLレベルになるか、ロック付ホールド
リクエスト信号/HREQLと命令フェッチアクセスリクエス
ト信号/REQF およびオペランドアクセスリクエスト信号
/REQO の一方とが同時にLレベルになり、他方が同時ま
たはそれよりも遅くLレベルになるとすぐに内部ホール
ドアクノレッジ信号int/HACKをLレベルにする。また、
ホールド制御回路163 はロック付ホールドリクエスト信
号/HREQLが命令フェッチアクセスリクエスト信号/REQF
よりも遅くLレベルになっても、命令フェッチアクセス
アドレス信号AFが外部メモリ400 のアドレスを指示して
いなければ、すなわち命令フェッチアクセスが外部バス
サイクルを起動するものでなければ、内部ホールドアク
ノレッジ信号int/HACKをすぐにLレベルにする。
【0077】また、ホールド制御回路163 はロック付ホ
ールドリクエスト信号/HREQLがオペランドアクセスリク
エスト信号/REQO よりも遅くLレベルになっても、オペ
ランドアクセスアドレス信号AOが外部メモリ400 のアド
レスを指示していなければ、すなわちオペランドアクセ
スが外部バスサイクルを起動するものでなければ、内部
ホールドアクノレッジ信号int/HACKをすぐにLレベルに
する。これら以外のときはロック付ホールドリクエスト
信号/HREQLがLレベルになっても、ホールドリクエスト
制御回路163 は内部ホールドアクノレッジ信号int/HACK
をすぐにLレベルにしないことでこの要求に対して待機
をかけて、先にLレベルになっていた命令フェッチアク
セスリクエスト信号/REQF またはオペランドアクセスリ
クエスト信号/REQO がHレベルになってから内部ホール
ドアクノレッジ信号int/HACKをLレベルにする。
【0078】さらに、ホールド制御回路163 はロック付
ホールドリクエスト信号/HREQLよりも命令フェッチアク
セスリクエスト信号/REQF のほうが早くLレベルになる
と命令フェッチ用早遅検知信号FLF をHレベルにし、ロ
ック付ホールドリクエスト信号/HREQLよりも命令フェッ
チアクセスリクエスト信号/REQF のほうが遅いか、同時
にLレベルになると命令フェッチ用早遅検知信号FLF を
Lレベルにする。また、ホールド制御回路163 はロック
付ホールドリクエスト信号/HREQLよりもオペランドアク
セスリクエスト信号/REQO のほうが早くLレベルになる
とオペランド用早遅検知信号FLO をHレベルにし、ロッ
ク付ホールドリクエスト信号/HREQLよりもオペランドア
クセスリクエスト信号/REQO のほうが遅いか、同時にL
レベルになるとオペランド用早遅検知信号FLO をLレベ
ルにする。
【0079】また、ホールド制御回路163 は命令フェッ
チアクセスアドレス信号AFが外部メモリ400 のアドレス
を指定している場合は命令フェッチ用外部アクセス検知
信号EADFをHレベルにし、さもなくばLレベルにする。
さらに、ホールド制御回路163 はオペランドアクセスア
ドレス信号AOが外部メモリ400 のアドレスを指定してい
る場合はオペランド用外部アクセス検知信号EADOをHレ
ベルにし、さもなくばLレベルにする。
【0080】さらにまた、メモリコントローラ160 は命
令フェッチアクセスリクエスト信号/REQF 、オペランド
アクセスリクエスト信号/REQO 、ロック付ホールドリク
エスト信号/HREQL、ロック付チップセレクト信号/CSL、
命令フェッチ用早遅検知信号FLF 、オペランド用早遅検
知信号FLO 、命令フェッチ用外部アクセス検知信号EADF
およびオペランド用外部アクセス検知信号EADOを受け、
命令フェッチアクセスアクノレッジ信号/ACKF 、オペラ
ンドアクセスアクノレッジ信号/ACKO 、命令フェッチア
クセス完了信号/ENDF 、オペランドアクセス完了信号/E
NDO 、および内部データコンプリート信号int/DCを出力
するアービトレーション制御回路164 を含む。
【0081】アービトレーション制御回路164 は命令フ
ェッチアクセスリクエスト信号/REQF がオペランドアク
セスリクエスト信号/REQO よりも早くLレベルになり、
命令フェッチ用早遅検知信号FLF が、命令フェッチアク
セスリクエスト信号/REQF のほうがロック付ホールドリ
クエスト信号/HREQLよりもLレベルになるのが早かった
ことを示すHレベルであると、すぐに命令フェッチアク
セスアクノレッジ信号/ACKF をLレベルにする。このと
き、命令フェッチ用早遅検知信号FLF がLレベルであっ
ても、命令フェッチ用外部アクセス検出信号EADFが外部
バスサイクルを起動しないことを示すLレベルになって
おり、かつ命令フェッチアクセスリクエスト信号/REQF
のほうがロック付チップセレクト信号/CSLよりも早くL
レベルになっていればすぐに命令フェッチアクセスアク
ノレッジ信号/ACKF をLレベルにする。これら以外のと
きは、アービトレーション制御回路164 は命令フェッチ
アクセスリクエスト信号/REQF がLレベルになっても、
命令フェッチアクセスアクノレッジ信号/ACKF をすぐに
Lレベルにしないことでこの要求に対して待機をかけ
る。
【0082】そして、ロック付ホールドリクエスト信号
/HREQLのほうが先にまたは同時にLレベルとなっていた
ために待機がかかったときはこのロック付ホールドリク
エスト信号/HREQLがHレベルになってから、ロック付チ
ップセレクト信号/CSLのほうが先にまたは同時にLレベ
ルとなっていたために待機がかかっていたときはこのロ
ック付チップセレクト信号/CSLがHレベルになってか
ら、オペランドアクセスリクエスト信号/REQO のほうが
先または同時にLレベルとなっていたために待機がかか
っていたときはこのオペランドアクセスリクエスト信号
/REQO がHレベルになってから、アービトレーション制
御回路164 は命令フェッチアクセスアクノレッジ信号/A
CKF をLレベルにする。
【0083】また、アービトレーション制御回路164 は
オペランドアクセスリクエスト信号/REQO が命令フェッ
チアクセスリクエスト信号/REQF よりも早くLレベルに
なるかまたは同時にLレベルになり、オペランド用早遅
検知信号FLO が、オペランドアクセスリクエスト信号/R
EQO のほうがロック付ホールドリクエスト信号/HREQLよ
りもLレベルになるのが早かったことを示すHレベルで
あると、すぐにオペランドアクセスアクノレッジ信号/A
CKO をLレベルにする。このとき、オペランド用早遅検
知信号FLO がLレベルであっても、オペランド用外部ア
クセス検出信号EADOが外部バスサイクルを起動しないこ
とを示すLレベルになっており、かつオペランドアクセ
スリクエスト信号/REQO のほうがロック付チップセレク
ト信号/CSLよりも早くLレベルになっていればすぐにオ
ペランドアクセスアクノレッジ信号/ACKO をLレベルに
する。これら以外のときは、アービトレーション制御回
路164 はオペランドアクセスリクエスト信号/REQO がL
レベルになってもオペランドアクセスアクノレッジ信号
/ACKO をすぐにLレベルにしないことでこの要求に対し
て待機をかける。
【0084】そして、ロック付ホールドリクエスト信号
/HREQLのほうが先にまたは同時にLレベルとなっていた
ために待機がかかったときはこのロック付ホールドリク
エスト信号/HREQLがHレベルになってから、ロック付チ
ップセレクト信号/CSLのほうが先にまたは同時にLレベ
ルとなっていたために待機がかかっていたときはこのロ
ック付チップセレクト信号/CSLがHレベルになってか
ら、命令フェッチアクセスリクエスト信号/REQF のほう
が先にLレベルとなっていたために待機がかかっていた
ときはこの命令フェッチアクセスリクエスト信号/REQF
がHレベルになってから、アービトレーション制御回路
164 はオペランドアクセスアクノレッジ信号/ACKO をL
レベルにする。
【0085】さらに、アービトレーション制御回路164
はロック付チップセレクト信号/CSLが命令フェッチアク
セスリクエスト信号/REQF およびオペランドアクセスリ
クエスト信号/REQO よりも早くLレベルになるか、また
は同時にLレベルになると命令フェッチアクセスアクノ
レッジ信号/ACKF およびオペランドアクセスアクノレッ
ジ信号/ACKO をHレベルのままとして、内蔵DRAM120 ま
たはキャッシュメモリ130 のサイクルタイムが経過する
のを見計らって内部データコンプリート信号int/DCをL
レベルにする。また、ロック付チップセレクト信号/CSL
が命令フェッチアクセスリクエスト信号/REQF またはオ
ペランドアクセスリクエスト信号/REQOよりも遅くLレ
ベルになったとしても、先にLレベルになった命令フェ
ッチアクセスリクエスト信号/REQF またはオペランドア
クセスアクノレッジ信号/REQOに対応する外部アクセス
検知信号EADFまたはEADOが外部バスサイクルを起動する
ことを示すHレベルとなっているためにロック付ホール
ドリクエスト信号/HREQLとのアービトレーションの結
果、待機をかけられて命令フェッチアクセスアクノレッ
ジ信号/ACKF またはオペランドアクセスアクノレッジ信
号/ACKO をHレベルのままとしているときも、アービト
レーション制御回路164 は内蔵DRAM120 またはキャッシ
ュメモリ130 のサイクルタイムが経過するのを見計らっ
て内部データコンプリート信号int/DCをLレベルにす
る。
【0086】さらにまた、アービトレーション制御回路
164 は命令フェッチアクセスアクノレッジ信号/ACKF を
Lレベルにしたとき、命令フェッチ用外部アクセス検知
信号EADFがHレベルであれば内部データコンプリート信
号int/DCに応じて、Lレベルであれば内蔵DRAM120 また
はキャッシュメモリ130 のサイクルタイムが経過するの
を見計らって、命令フェッチアクセス完了信号/ENDF を
Lレベルにする。また、アービトレーション制御回路16
4 はオペランドアクセスアクノレッジ信号/ACKO をLレ
ベルにしたとき、オペランド用外部アクセス検知信号EA
DOがHレベルであれば内部データコンプリート信号int/
DCに応じて、Lレベルであれば内蔵DRAM120 またはキャ
ッシュメモリ130 のサイクルタイムが経過するのを見計
らって、オペランドアクセス完了信号/ENDO をLレベル
にする。
【0087】次に、アドレス空間について説明してお
く。図5 を参照して、マイクロプロセッサ100 のユーザ
空間のうちユーザーが利用可能な領域は物理アドレスH
■00 0000 からH■FF FFFF 番地までの16MByte であ
る。このうちH■00 0000からH■0FFFFFまでの1MByteの
領域は内臓DRAM領域となっている。また、アドレスは32
ビット幅で扱われる。
【0088】次にマイクロプロセッサ100 の命令の転送
動作および命令の実行対象データであるオペランドの転
送動作について説明する。まず、CPU 110 が命令をフェ
ッチする命令フェッチアクセスの場合について説明す
る。図1 、図2 および図3 を参照して、フェッチしよう
とする命令がキャッシュメモリ130 に存在するときは、
キャッシュヒットとなり128 ビット分の4 つの命令コー
ドがキャッシュメモリ130 から内部データバス170 を介
してCPU 110 内の命令キュー110aに転送される。16ビッ
ト長の命令も見かけ上は32ビットの命令コードである。
CPU 110 がフェッチしようとする命令がキャッシュメモ
リ130 に存在せず、内蔵DRAM120 に存在するときは128
ビット分の命令コードが内蔵DRAM120 から内部データバ
ス170 を介してCPU 110 内の命令キュー110aに転送され
る。CPU 110 がフェッチしようとする命令がキャッシュ
メモリ130 にも内蔵DRAM120 にも存在せず外部メモリ40
0 にあるときは、命令コードは外部メモリ400 から外部
データバス500 を介して外部バスインターフェイスユニ
ット150 内の128 ビットのデータバッファ150hに蓄えら
れる。
【0089】データバッファ150hへのデータの蓄えられ
かたには3 通りの蓄えられかたがある。第1 は16ビット
ずつ2 回命令を取り込んで所望の32ビットの1 つの命令
コードだけデータバッファ150hに蓄える場合である。第
2 は所望の32ビットの1 つの命令コードを先頭にデータ
バッファ150hの境界までの命令コードをデータバッファ
150hに蓄える場合である。この場合は所望の32ビットの
命令コードがデータバッファ150hの先頭アドレス部分に
取り込まれると、データバッファ150hの境界までの残り
の96ビット分の3 つの命令コードが続いてデータバッフ
ァ150hに取り込まれる。つまり16ビットずつ8 回命令を
外部データバス500 から取り込む。また、所望の32ビッ
トの命令コードがデータバッファ150hの先頭から2 番目
のアドレス部分に取り込まれると、データバッファ150h
の境界までの残り64ビット分の2つの命令コードが続い
てデータバッファ150hに取り込まれる。つまり16ビット
ずつ6 回命令を外部データバス500 から取り込む。
【0090】同様に考えて、所望の32ビットの命令コー
ドがデータバッファ150hの先頭から3 番目のアドレス部
分に取り込まれると、データバッファ150hの境界までの
残り32ビット分の1 つの命令コードが続いてデータバッ
ファ150hに取り込まれる。つまり16ビットずつ4 回命令
を外部データバス500 から取り込む。所望の32ビットの
命令コードがデータバッファ150hの最後のアドレス部分
に取り込まれると続いて命令コードの取り込みはおこな
わない。つまり16ビットずつ2 回命令を外部データバス
500 から取り込む。また、第3 は所望の32ビットの1 つ
の命令コードを含めて128 ビット分4 つの命令コードを
データバッファ150hに蓄える場合である。この場合、デ
ータバッファ150hは16ビットずつ8 回命令コードを外部
データバス500 から取り込む。そして、外部バスインタ
ーフェイス150 内のデータバッファ150hに蓄えられた命
令コードは内部データバス170 を介してCPU 110 内の命
令キュー110aに転送される
【0091】次に、CPU 110 がオペランドをリードする
オペランドリードアクセスの場合について説明する。CP
U 110 が必要とするオペランドが内蔵DRAM領域のアドレ
スに存在するとき、必要なオペランドを含む128 ビット
のデータがキャッシュメモリ130 または内蔵DRAM120 か
ら内部データバス170 を介してCPU 110 内のデータセレ
クタ110iに転送される。データセレクタ110iはそのうち
の必要な32ビット分のオペランドをCPU 110 内部の回路
に転送する。CPU 110 が必要とするオペランドが外部メ
モリ領域のアドレスに存在するとき、外部データバス50
0 から外部バスインターフェイスユニット150 内のデー
タバッファ150hに32ビットの所望のオペランドが蓄えら
れ、内部データバス170 を介してCPU 110 内のデータセ
レクタ110iに転送される。
【0092】次に、CPU 110 がオペランドをライトする
オペランドライトアクセスの場合について説明する。ま
ず、CPU 110 から出力された32ビットのオペランドがデ
ータセレクタ110iに与えられる。データセレクタ110iは
128 本の内部データバス170のうち32本にCPU 110
からの32ビットのオペランドを転送する。そして、この
オペランドを内蔵DRAM領域のアドレスにライトするとき
は内部データバス170 を介してキャッシュメモリ130 ま
たは内蔵DRAM120 にオペランドがライトされる。また、
このオペランドを外部メモリ400 にライトするときはオ
ペランドが内部データバス170 を介して外部バスインタ
ーフェイスユニット150 内のデータバッファ150hに一旦
蓄えられ、16ビットづつ外部データバス500 に転送され
る。
【0093】次に、外部バスマスタ300 が内蔵DRAM領域
内のアドレスに存在するオペランドをリードする外部バ
スマスタリードアクセスの場合について説明する。まず
キャッシュメモリ130 または内蔵DRAM120 から所望のオ
ペランドを含む128 ビットのデータが内部データバス17
0 を介して外部バスインターフェイスユニット150 内の
データバッファ150hに転送され蓄えられる。その後、こ
のデータバッファ150hに蓄えられたオペランドは16ビッ
トづつ外部データバス500 に転送される。そして外部バ
スマスタ300 は外部データバス500 を介して転送された
オペランドを受ける。
【0094】次に、外部バスマスタ300 が内蔵DRAM領域
内のアドレスにオペランドをライトする外部バスマスタ
ライトアクセスの場合について説明する。まず外部バス
マスタ300 から外部データバスを介して16ビット単位で
外部バスインターフェイスユニット150 内のデータバッ
ファ150hにデータが転送されてデータバッファ150hに蓄
えられる。その後、データバッファ150hに蓄えられたデ
ータは内部データバス170 を介してキャッシュメモリ13
0 または内蔵DRAM120 にライトされる。
【0095】次に、キャッシュメモリまたは内蔵DRAMへ
のアクセス動作について詳細に説明する。最初にCPU 11
0 がキャッシュメモリ130 または内蔵DRAM120 からデー
タをリードする命令フェッチアクセスのプロトコルにつ
いて図6 を参照して説明する。まず、時刻t1でCPU 110
内の命令キュー110aが時刻t1で命令フェッチリクエスト
信号/REQF をLレベルにしてCPU 110 内のプログラムカ
ウンタ110cが命令フェッチアクセスアドレス信号AFを内
蔵DRAM領域を指定するアドレスに変化させると、メモリ
コントローラ160 はこの要求に応答して命令フェッチア
クセスアクノレッジ信号/ACKF を時刻t2でLレベルにす
る。その後、メモリコントローラ160 はキャッシュメモ
リ130 または内蔵DRAM120 に対して制御信号CTRLC また
はCTRLDをリードを指示する状態にする。すると、内部
データバス170 にキャッシュメモリ130 または内蔵DRAM
120 からのデータが内部データintD[0:127] として時刻
t3に出力される。この出力された内部データintD[0:12
7] はCPU 110 にフェッチされる。また、メモリコント
ローラ160 は時刻t3で命令フェッチアクセス完了信号/E
NDF をLレベルにする。
【0096】2 番目にCPU 110 がキャッシュメモリ130
または内蔵DRAM120 からデータをリードするオペランド
リードアクセスのプロトコルについて図7 を参照して説
明する。まず、時刻t1でCPU 110 内のCPU 制御回路110j
が時刻t1でオペランドアクセスリクエスト信号/REQO を
Lレベルにしてオペランドアクセスアドレス信号AOを内
蔵DRAM領域を指定するアドレスに変化させると、メモリ
コントローラ160 はこの要求に応答してオペランドアク
セスアクノレッジ信号/ACKO を時刻t2でLレベルにす
る。その後、メモリコントローラ160 はキャッシュメモ
リ130 または内蔵DRAM120 に対して制御信号CTRLC また
はCTRLD をリードを指示する状態にする。すると、内部
データバス170 にキャッシュメモリ130 または内蔵DRAM
120 からのデータが内部データintD[0:127] として時刻
t3に出力される。この出力された内部データintD[0:12
7] はCPU 110 にフェッチされる。また、メモリコント
ローラ160 は時刻t3でオペランドアクセス完了信号/END
O をLレベルにする。
【0097】3 番目にCPU がキャッシュメモリ130 また
は内蔵DRAM120 にデータをライトするオペランドライト
アクセスのプロトコルについて図8 を参照して説明す
る。まず、時刻t1でCPU 110 内のCPU 制御回路110jが時
刻t1でオペランドアクセスリクエスト信号/REQO をLレ
ベルにしてオペランドアクセスアドレス信号AOを内蔵DR
AM領域を指定するアドレスに変化させると、メモリコン
トローラ160 はこの要求に応答してオペランドアクセス
アクノレッジ信号/ACKO を時刻t2でLレベルにする。す
るとCPU 110 はライトデータを内部データintD[0:127]
として内部データバス170 に出力する。その後、メモリ
コントローラ160 はキャッシュメモリ130または内蔵DRA
M120 に対して制御信号CTRLC またはCTRLD をライトを
指示する状態にする。すると、キャッシュメモリ130 ま
たは内蔵DRAM120 に内部データバス170 からのデータが
ライトされる。また、メモリコントローラ160 は時刻t5
でオペランドアクセス完了信号/ENDO をLレベルにす
る。
【0098】4 番目に外部バスマスタ300 がキャッシュ
メモリ130 または内蔵DRAM120 からデータをリードする
外部バスマスタリードアクセスのプロトコルについて図
9 を参照して説明する。まず、外部バスマスタ300 から
の要求に応じて外部バスコントローラ300 は時刻t1でホ
ールドリクエスト信号/HREQ をLレベルにする。マイク
ロプロセッサ100 はこれに応答して時刻t2でホールドア
クノレッジ信号/HACKをLレベルにする。すると、外部
バスコントローラ200 は時刻t3でチップセレクト信号/C
S をLレベルにするとともに、アドレス信号A[8:30] を
指定先のアドレスに変化させ、リード/ライト信号R/W
をHレベルにする。すると、CPU 110内のメモリコント
ローラ160 はキャッシュメモリ130 または内蔵DRAM120
に対して制御信号CTRLC またはCTRLD をリードを指示す
る状態にする。
【0099】その後、キャッシュメモリ130 または内蔵
DRAM120 から内部データintD[0:127] が内部データバス
170 に出力されて外部バスインターフェイスユニット15
0 に取り込まれて格納され、この格納されたデータが外
部データバス500 に外部データextD[0:15]として16ビッ
トずつ時刻t6,t8,t10,t12 の各時刻で出力される。ま
た、データコンプリート信号/DC は時刻t6でLレベルに
される。
【0100】5 番目に外部バスマスタ300 がキャッシュ
メモリ130 または内蔵DRAM120 にデータをライトする外
部バスマスタライトアクセスのプロトコルについて図10
を参照して説明する。まず、外部バスマスタ300 からの
要求に応じて外部バスコントローラ300 は時刻t1でホー
ルドリクエスト信号/HREQ をLレベルにする。マイクロ
プロセッサ100 はこれに応答して時刻t2でホールドアク
ノレッジ信号/HACK をLレベルにする。すると、外部バ
スコントローラ200 は時刻t3でチップセレクト信号/CS
をLレベルにするとともに、アドレス信号A[8:30] を指
定先のアドレスに変化させ、リード/ライト信号R/W を
Lレベルにし、外部バスマスタ300 はライトデータを外
部データextD[0:15]として与える。
【0101】外部バスマスタ300 から出力されたライト
データはマイクロプロセッサ100 における外部バスイン
ターフェイスユニット150 内のデータバッファ150hに16
ビットずつ格納される。マイクロプロセッサ100 は外部
データバス500 上のデータがデータバッファ150hに格納
されたことを外部に通知するために、データコンプリー
ト信号/DC を時刻t4でLレベルにする。チップセレクト
信号/CS が時刻t11 でHレベルとされ、リード/ライト
信号R/W がLレベルであると、メモリコントローラ160
はキャッシュメモリ130 または内蔵DRAM120 に対して制
御信号CTRLC またはCTRLD をライトを指示する状態にす
る。
【0102】その後、外部バスインターフェイスユニッ
ト150 に取り込まれて格納されていたライトデータが内
部データバス170 に出力され、この内部データバス170
上のデータがキャッシュメモリ130 または内蔵DRAM120
に格納される。
【0103】次にCPU 110 と外部バスマスタ300 のアク
セスが競合した場合の説明をする。図11を参照して、例
えばオペランドアクセスリクエスト信号/REQO とチップ
セレクト信号/CS が同時にLレベルになったときのよう
な、CPU 110 からのアクセスリクエストと外部バスマス
タ300 からのアクセスリクエストが同時に発生した場
合、はメモリコントローラ160 の制御によって外部バス
マスタ300 からのアクセスリクエストを優先して処理し
た後、CPU 110 からのリクエストを処理する。また、図
12を参照して、例えばオペランドアクセスリクエスト信
号/REQO がチップセレクト信号/CS よりも早くLレベル
になったときのようなチップセレクトCPU110 からのア
クセスリクエストが先に発生した場合、メモリコントロ
ーラ160の制御によってCPU 110 からのアクセスリクエ
ストを処理した後、外部バスマスタ300 からのリクエス
トを処理する。外部バスマスタ300 からのアクセスリク
エストが先に発生した場合はこれとは逆の順序になる。
【0104】次にCPU 110 によるインターロックアクセ
スについて説明する。まず、図13を参照してホールド排
他ロックモードに設定されているときのインターロック
アクセスのプロトコルについて説明する。CPU 110 はイ
ンターロック付load命令の実行からインターロック付st
ore 命令を実行するまでの期間、ロック信号/LOCK をL
レベルにする。メモリコントローラ160 はインターロッ
ク付load命令によるオペランドアクセスリクエストに応
じてオペランドアクセスアクノレッジ信号/ACKO をLレ
ベルにしてからロック付store 命令によるオペランドア
クセスリクエストに応じてオペランドアクセスアクノレ
ッジ信号/ACKO をLレベルにするまでの期間、外部から
与えられるホールドリクエスト信号/HREQ がLレベルに
なっても無視する。したがって、CPU 110 によるインタ
ーロックアクセス期間中は外部バスマスタ300 に対して
外部データバス500 のバス権の解放はおこなわれない。
そして、メモリコントローラ160 はロック付store 命令
によるstore 処理を行ったあとは、ホールドリクエスト
を受け付ける。
【0105】さらに、図14を参照してチップセレクト排
他ロックモードに設定されているときのインターロック
アクセスのプロトコルについて説明する。CPU 110 はイ
ンターロック付load命令の実行からインターロック付st
ore 命令を実行するまでの期間、ロック信号/LOCK をL
レベルにする。メモリコントローラ160 はインターロッ
ク付load命令によるオペランドアクセスリクエストに応
じてオペランドアクセスアクノレッジ信号/ACKO をLレ
ベルにしてからロック付store 命令によるオペランドア
クセスリクエストに応じてオペランドアクセスアクノレ
ッジ信号/ACKOをLレベルにするまでの期間、外部から
与えられるチップセレクト信号/CS がLレベルになって
も無視する。したがってCPU 110 によるインターロック
アクセス期間中は外部バスマスタ300 による内蔵DRAM領
域へのアクセスはおこなわれない。そして、メモリコン
トローラ160 はロック付store 命令によるstore 処理を
行った後は外部バスマスタ300 からのアクセスリクエス
トを受け付ける。
【0106】以上のようにこの実施の形態1のマイクロ
プロセッサ100 はCPU 110 と内蔵DRAM120 とCPU 110 が
内蔵DRAM120 にインターロックアクセスを行う制御をす
るメモリコントローラ160 とを備えてCPU 110 がインタ
ーロックアクセスを行えるようにしたので、外部から内
蔵DRAM120 へのアクセスに干渉されることなくCPU 110
がread-modify-write アクセスを不可分におこなうこと
ができる。これによって内蔵DRAM120 とCPU 110 を1チ
ップにしたことによるアクセス競合の問題を解決できる
ため内蔵DRAM120 を外部との共有メモリとして利用でき
る。
【0107】特に、内蔵DRAM領域にセマフォの値を記憶
させるようなシステムにおいては、CPU 110 がセマフォ
の値を読んで書き換える間に外部から書き換えが行われ
るという問題を解決できる。また、それ以外にも内蔵DR
AM領域を共有メモリとして使用する場合に、CPU 110 が
外部からのアクセスリクエストに対して排他的に一連の
プロセスを実行することができる。
【0108】また、ホールド排他ロックモードとチップ
セレクト排他ロックモードとを切り替えられるようにし
たので、システムに応じて最適なロックモードに設定で
きる。
【0109】
【発明の効果】以上のようにこの発明によれば外部から
のアクセスに干渉されずにread-modify-write を行える
メモリ内蔵の半導体装置を得ることができる。
【0110】さらに、アクセス競合の問題が改善された
コンピュータシステムを得ることができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態のコンピュータシステ
ムを示すブロック図である。
【図2】 この発明の実施の形態のCPU を示すブロック
図である。
【図3】 この発明の実施の形態の外部バスインターフ
ェイスユニットを示すブロック図である。
【図4】 この発明の実施の形態のメモリコントローラ
を示すブロック図である。
【図5】 この発明の実施の形態のマイクロプロセッサ
のアドレス空間を示す図である。
【図6】 この発明の実施の形態のマイクロプロセッサ
の命令フェッチアクセス動作を示すタイミング図であ
る。
【図7】 この発明の実施の形態のマイクロプロセッサ
のオペランドリードアクセス動作を示すタイミング図で
ある。
【図8】 この発明の実施の形態のマイクロプロセッサ
のオペランドライトアクセス動作を示すタイミング図で
ある。
【図9】 この発明の実施の形態のマイクロプロセッサ
の外部バスマスタリードアクセス動作を示すタイミング
図である。
【図10】 この発明の実施の形態のマイクロプロセッ
サの外部バスマスタライトサイクル動作を示すタイミン
グ図である。
【図11】 この発明の実施の形態のマイクロプロセッ
サのアクセスが競合したときの動作を示すタイミング図
である。
【図12】 この発明の実施の形態のマイクロプロセッ
サのアクセスが競合したときの動作を示すタイミング図
である。
【図13】 この発明の実施の形態のマイクロプロセッ
サのホールド排他ロックモード時のインターロックアク
セスを示すタイミング図である。
【図14】 この発明の実施の形態のマイクロプロセッ
サのチップセレクト排他ロックモード時のインターロッ
クアクセスを示すタイミング図である。
【符号の説明】
100 マイクロプロセッサ、 110 CPU 、 120 DRAM 160 メモリコントローラ 200 外部バスコントローラ 300 外部バスマスタ STM コンピュータシステム

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 データを記憶するメモリ、 前記メモリにインターロックアクセスするCPU 、および
    前記メモリに外部からアクセスするための要求信号を受
    け、前記要求信号に応答する応答信号を出力し、前記CP
    U が前記インターロックアクセスする期間は前記応答信
    号を外部から前記メモリへのアクセスが排除されている
    こと示す状態にする制御回路を1チップ内に備える半導
    体装置。
  2. 【請求項2】 CPU はインターロックアクセス命令を受
    けてインターロックアクセスを開始し、インターロック
    アクセス終了命令を受けてインターロックアクセスを終
    了する請求項1記載の半導体装置。
  3. 【請求項3】 CPU は、メモリを非インターロックアク
    セスし、 要求信号は、バス権を要求するためのホールドリクエス
    ト信号を含み、 応答信号は、前記バス権を解放したことを通知するため
    のホールドアクノレッジ信号を含み、 制御回路は、前記CPU における前記非インターロックア
    クセス時は前記ホールドリクエスト信号がバス権を要求
    したことを示すレベルになったのに応答して前記ホール
    ドアクノレッジ信号をバス権を解放したことを示す応答
    レベルにし、前記CPU におけるインターロックアクセス
    期間は前記ホールドアクノレッジ信号を前記応答レベル
    と異なるレベルにすることで前記応答信号を外部から前
    記メモリへのアクセスが排除されていることを示す状態
    にする請求項1記載の半導体装置。
  4. 【請求項4】 CPU は、メモリを非インターロックアク
    セスし、 要求信号は、外部から前記メモリへのアクセスを要求す
    るためのチップセレクト信号を含み、 応答信号は、外部から前記メモリへのアクセスが完了し
    たことを通知するためのデータコンプリート信号を含
    み、 制御回路は、前記CPU における前記非インターロックア
    クセス時は前記チップセレクト信号が外部から前記メモ
    リへのアクセスを要求したことを示すレベルになったの
    に応答して前記データコンプリート信号を外部から前記
    メモリへのアクセスが完了したことを示す応答レベルに
    し、前記CPU におけるインターロックアクセス期間は前
    記データコンプリート信号を前記応答レベルと異なるレ
    ベルにすることで前記応答信号を外部から前記メモリへ
    のアクセスが排除されていることを示す状態にする請求
    項1記載の半導体装置。
  5. 【請求項5】 CPU は、メモリを非インターロックアク
    セスし、 要求信号は、バス権を要求するためのホールドリクエス
    ト信号および外部から前記メモリへのアクセスを要求す
    るためのチップセレクト信号を含み、 応答信号は、前記バス権を解放したことを通知するため
    のホールドアクノレッジ信号および外部から前記メモリ
    へのアクセスが完了したことを通知するためのデータコ
    ンプリート信号を含み、 制御回路は切り替え可能な第1のロックモードおよび第
    2のロックモードを有し、前記第1のロックモードでは
    前記CPU における前記非インターロックアクセス時は前
    記ホールドリクエスト信号がバス権を要求したことを示
    すレベルになったのに応答して前記ホールドアクノレッ
    ジ信号をバス権を解放したことを示す第1の応答レベル
    にし、前記CPU におけるインターロックアクセス期間は
    前記ホールドアクノレッジ信号を前記第1の応答レベル
    と異なるレベルにすることで前記応答信号を外部から前
    記メモリへのアクセスが排除されていることを示す状態
    にし、前記第2のロックモードでは前記CPU における前
    記非インターロックアクセス時は前記チップセレクト信
    号が外部から前記メモリへのアクセスを要求したことを
    示すレベルになったのに応答して前記データコンプリー
    ト信号を外部から前記メモリへのアクセスが完了したこ
    とを示す第2の応答レベルにし、前記CPU におけるイン
    ターロックアクセス期間は前記データコンプリート信号
    を前記第2の応答レベルと異なるレベルにすることで前
    記応答信号を外部から前記メモリへのアクセスが排除さ
    れていることを示す状態にする請求項1記載の半導体装
    置。
  6. 【請求項6】 CPU およびメモリを1チップ内に含み前
    記CPU は前記メモリにインターロックアクセスする半導
    体装置、 前記メモリにアクセスする外部バスマスタ、および前記
    CPU がインターロックアクセスする期間は前記外部バス
    マスタによる前記メモリへのアクセスを禁止する外部バ
    スコントローラを備えるコンピュータシステム。
JP8292642A 1996-11-05 1996-11-05 半導体装置およびコンピュータシステム Pending JPH10134008A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP8292642A JPH10134008A (ja) 1996-11-05 1996-11-05 半導体装置およびコンピュータシステム
TW086102608A TW335468B (en) 1996-11-05 1997-03-04 Semiconductor device and the computer system
KR1019970016938A KR100272938B1 (ko) 1996-11-05 1997-04-28 반도체장치및컴퓨터시스템
US08/850,703 US6101584A (en) 1996-11-05 1997-05-02 Computer system and semiconductor device on one chip including a memory and central processing unit for making interlock access to the memory
DE19723065A DE19723065B4 (de) 1996-11-05 1997-06-02 Halbleitereinrichtung und Computersystem
CN97113846A CN1113300C (zh) 1996-11-05 1997-06-27 半导体装置及计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8292642A JPH10134008A (ja) 1996-11-05 1996-11-05 半導体装置およびコンピュータシステム

Publications (1)

Publication Number Publication Date
JPH10134008A true JPH10134008A (ja) 1998-05-22

Family

ID=17784435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8292642A Pending JPH10134008A (ja) 1996-11-05 1996-11-05 半導体装置およびコンピュータシステム

Country Status (6)

Country Link
US (1) US6101584A (ja)
JP (1) JPH10134008A (ja)
KR (1) KR100272938B1 (ja)
CN (1) CN1113300C (ja)
DE (1) DE19723065B4 (ja)
TW (1) TW335468B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007507042A (ja) * 2003-09-25 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のメモリを有する半導体デバイス
US7266630B2 (en) 2002-12-16 2007-09-04 Matsushita Electric Industrial Co., Ltd. CPU contained LSI
JP2007265000A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd バスマスタ回路/スレーブ回路切替え回路
WO2007119373A1 (ja) * 2006-04-04 2007-10-25 Panasonic Corporation システム制御装置
CN100350393C (zh) * 2001-06-11 2007-11-21 株式会社日立制作所 半导体存储装置
US7406551B2 (en) 2003-09-26 2008-07-29 Oki Electric Industry Co., Ltd. Bus configuration circuit
JP2012238306A (ja) * 2011-05-09 2012-12-06 Freescale Semiconductor Inc ルーティングのための方法及び装置

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
SE512773C2 (sv) * 1998-10-28 2000-05-08 Imsys Ab Metod och anordning för kontroll/access av DRAM-minnen
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
DE10034855B4 (de) * 2000-07-18 2006-05-11 Infineon Technologies Ag System zum Test von schnellen integrierten Digitalschaltungen und BOST-Halbleiterschaltungsbaustein als Testschaltkreis
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US6609178B1 (en) * 2000-11-28 2003-08-19 Emc Corporation Selective validation for queued multimodal locking services
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7225441B2 (en) 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US6986005B2 (en) * 2001-12-31 2006-01-10 Hewlett-Packard Development Company, L.P. Low latency lock for multiprocessor computer system
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
EP1477903A3 (en) * 2003-05-13 2004-12-29 Freescale Semiconductor, Inc. Memory system for a radiotelephone
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
GB2430053B (en) * 2005-09-08 2010-09-22 Advanced Risc Mach Ltd Accessing external memory from an integrated circuit
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
CN100394393C (zh) * 2006-03-10 2008-06-11 四川大学 信息系统数据一致性检测方法
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US20100318707A1 (en) * 2008-02-08 2010-12-16 Panasonic Corporation External device access apparatus, control method thereof, and system lsi
TWI450275B (zh) * 2010-05-19 2014-08-21 Wistron Corp 可提升寫入保護之記憶體系統及相關方法
CN102279728B (zh) * 2011-08-10 2016-03-23 北京百度网讯科技有限公司 数据存储设备及数据计算方法
JP2017037505A (ja) * 2015-08-11 2017-02-16 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55108027A (en) * 1979-02-09 1980-08-19 Nec Corp Processor system
JPS55164922A (en) * 1979-06-08 1980-12-23 Toshiba Corp Multimicrocomputer
JPS6191752A (ja) * 1984-10-11 1986-05-09 Nec Corp マイクロコンピユ−タ
US4760521A (en) * 1985-11-18 1988-07-26 White Consolidated Industries, Inc. Arbitration system using centralized and decentralized arbitrators to access local memories in a multi-processor controlled machine tool
JPS635456A (ja) * 1986-06-25 1988-01-11 Nec Corp マイクロプロセツサシステム
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US5170481A (en) * 1989-06-19 1992-12-08 International Business Machines Corporation Microprocessor hold and lock circuitry
US5251304A (en) * 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
JPH04141757A (ja) * 1990-10-03 1992-05-15 Fujitsu Ltd バス制御方式
US5283870A (en) * 1991-10-04 1994-02-01 Bull Hn Information Systems Inc. Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
US5341501A (en) * 1991-10-04 1994-08-23 Bull Hn Information Systems Inc. Processor bus access
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
JPH08212185A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp マイクロコンピュータ
US5787486A (en) * 1995-12-15 1998-07-28 International Business Machines Corporation Bus protocol for locked cycle cache hit

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100350393C (zh) * 2001-06-11 2007-11-21 株式会社日立制作所 半导体存储装置
US7266630B2 (en) 2002-12-16 2007-09-04 Matsushita Electric Industrial Co., Ltd. CPU contained LSI
JP2007507042A (ja) * 2003-09-25 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のメモリを有する半導体デバイス
US7406551B2 (en) 2003-09-26 2008-07-29 Oki Electric Industry Co., Ltd. Bus configuration circuit
JP2007265000A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd バスマスタ回路/スレーブ回路切替え回路
WO2007119373A1 (ja) * 2006-04-04 2007-10-25 Panasonic Corporation システム制御装置
JP2012238306A (ja) * 2011-05-09 2012-12-06 Freescale Semiconductor Inc ルーティングのための方法及び装置

Also Published As

Publication number Publication date
CN1113300C (zh) 2003-07-02
CN1181548A (zh) 1998-05-13
KR19980041719A (ko) 1998-08-17
DE19723065B4 (de) 2004-02-19
TW335468B (en) 1998-07-01
DE19723065A1 (de) 1998-05-07
US6101584A (en) 2000-08-08
KR100272938B1 (ko) 2000-11-15

Similar Documents

Publication Publication Date Title
JPH10134008A (ja) 半導体装置およびコンピュータシステム
US5293500A (en) Parallel processing method and apparatus
JP3406744B2 (ja) 制御されたバーストメモリアクセスを備えたデータプロセッサおよびその方法
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
JPH06139189A (ja) 共有バス調停機構
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPS6134182B2 (ja)
US6738837B1 (en) Digital system with split transaction memory access
JP4865960B2 (ja) データ処理装置およびその制御方法
JP3153078B2 (ja) データ処理装置
JP2976850B2 (ja) データ処理装置
JPH0227696B2 (ja) Johoshorisochi
JPH051504B2 (ja)
JP3562215B2 (ja) マイクロコンピュータ及び電子機器
JP3839068B2 (ja) 半導体集積回路装置
JPS59200361A (ja) デイジタルプロセツサ及び処理方式
JPS60195661A (ja) デ−タ処理システム
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP2000047930A (ja) データ処理装置
JPS62119661A (ja) 共有メモリに対するアクセス管理方式
JP4322284B2 (ja) シングルチップマイクロコンピュータ
JP2973227B2 (ja) 排他制御命令実行方法
JPS6146545A (ja) 入出力命令制御方法
JPH0589057A (ja) レジスタ制御装置
JPH0474237A (ja) メモリ管理用制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050329