JPH0844560A - メモリ制御回路とその回路を内蔵した集積回路素子 - Google Patents
メモリ制御回路とその回路を内蔵した集積回路素子Info
- Publication number
- JPH0844560A JPH0844560A JP17816594A JP17816594A JPH0844560A JP H0844560 A JPH0844560 A JP H0844560A JP 17816594 A JP17816594 A JP 17816594A JP 17816594 A JP17816594 A JP 17816594A JP H0844560 A JPH0844560 A JP H0844560A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- read
- processing unit
- circuit
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/103—Read-write modes for single port memories, i.e. having either a random port or a serial port using serially addressed read-write data registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
- Microcomputers (AREA)
- Communication Control (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 メモリ読み出しの高速化を図る。
【構成】 4ブロックに区分されたメモリ、読み出しア
ドレスが4N+2、4N+3のときに限り、ブロック
0、1に4N+4を与えるアドレス変換手段、各ブロッ
クから読み出されたデータをラッチする回路、ラッチ回
路にラッチされたデータのうち、必要なデータを選択し
てデータバスに出力する選択出力回路とを有する。1回
のラッチ動作のたびに、常時3個以上のブロックのメモ
リを読み出し可能な状態におく。2M個のブロックに区
分された場合も、同様の回路構成とする。
ドレスが4N+2、4N+3のときに限り、ブロック
0、1に4N+4を与えるアドレス変換手段、各ブロッ
クから読み出されたデータをラッチする回路、ラッチ回
路にラッチされたデータのうち、必要なデータを選択し
てデータバスに出力する選択出力回路とを有する。1回
のラッチ動作のたびに、常時3個以上のブロックのメモ
リを読み出し可能な状態におく。2M個のブロックに区
分された場合も、同様の回路構成とする。
Description
【0001】
【産業上の利用分野】この発明はメモリを制御する回
路、特に命令処理部が必要とする命令がデータとして読
み出されるメモリを制御する回路に関するものである。
路、特に命令処理部が必要とする命令がデータとして読
み出されるメモリを制御する回路に関するものである。
【0002】
【従来の技術】近年、1つの半導体チップに命令処理機
能とROMやRAM等のメモリを集積した集積回路、い
わゆるワンチップ・マイクロコンピュータの用途が拡大
している。これは主に、半導体技術の進歩によって高性
能の集積回路素子が供給され、新たな需要が喚起される
ようになったこと、および高性能民生機器の普及に従
い、小型で高速、かつ廉価な制御素子が求められる傾向
が強まったためである。特に最近では、こうした集積回
路素子が、ゲーム機器のコントローラ、MPEGコント
ローラ、ビデオカメラのモータ制御コントローラとして
使用され、さらに高速動作する集積回路素子に対する要
望が高まっている。また例えば携帯電話など携帯機器の
用途では、電池動作時間改善のために機器の電圧を低く
抑えるため、低電圧でも従来同等以上に高速な集積回路
素子が求められている。
能とROMやRAM等のメモリを集積した集積回路、い
わゆるワンチップ・マイクロコンピュータの用途が拡大
している。これは主に、半導体技術の進歩によって高性
能の集積回路素子が供給され、新たな需要が喚起される
ようになったこと、および高性能民生機器の普及に従
い、小型で高速、かつ廉価な制御素子が求められる傾向
が強まったためである。特に最近では、こうした集積回
路素子が、ゲーム機器のコントローラ、MPEGコント
ローラ、ビデオカメラのモータ制御コントローラとして
使用され、さらに高速動作する集積回路素子に対する要
望が高まっている。また例えば携帯電話など携帯機器の
用途では、電池動作時間改善のために機器の電圧を低く
抑えるため、低電圧でも従来同等以上に高速な集積回路
素子が求められている。
【0003】こうした集積回路素子は、主に命令処理を
行う命令処理部と、処理内容を命令として格納するRO
M、およびデータを格納するRAM等から構成される。
集積回路素子の高速化のポイントは、命令処理部の実行
速度、すなわちクロック周波数の向上と命令実行アルゴ
リズムの改善、およびメモリの読み出し時間の短縮等に
ある。
行う命令処理部と、処理内容を命令として格納するRO
M、およびデータを格納するRAM等から構成される。
集積回路素子の高速化のポイントは、命令処理部の実行
速度、すなわちクロック周波数の向上と命令実行アルゴ
リズムの改善、およびメモリの読み出し時間の短縮等に
ある。
【0004】従来、主にクロック周波数の向上のため
に、プロセス微細化による浮遊容量の最小化、配線長の
最短化がなされ、また処理のパイプライン化によって大
幅な高速化が実現した。しかし、メモリの読み出しに対
する取り組みは未だに不十分である。
に、プロセス微細化による浮遊容量の最小化、配線長の
最短化がなされ、また処理のパイプライン化によって大
幅な高速化が実現した。しかし、メモリの読み出しに対
する取り組みは未だに不十分である。
【0005】
【発明が解決しようとする課題】ワンチップ・マイクロ
コンピュータのような集積回路素子においては、メモリ
の読み出しがバイト単位で行われている。このため、命
令処理部の高速化に伴い、メモリ読み出し時間による足
かせが次第に顕著となってきた。
コンピュータのような集積回路素子においては、メモリ
の読み出しがバイト単位で行われている。このため、命
令処理部の高速化に伴い、メモリ読み出し時間による足
かせが次第に顕著となってきた。
【0006】メモリ読み出しの高速化は、メモリを構成
するトランジスタサイズを大型化すれば実現可能である
が、これは必然的にチップサイズの大型化を招く。ワン
チップ・マイクロコンピュータのような集積回路素子は
民生機器に搭載される場合が多く、廉価かつ小型である
ことが第一条件とされるため、チップサイズの大型化は
製品として採るべき手段ではない。同様の理由から、ハ
イエンドのパーソナルコンピュータで使用される高速の
汎用CPUのように、キャッシュメモリを内蔵する方法
も採用しがたい。一方、メモリをバンク分けしてインタ
リーブする方法も考えられるが、この場合は制御回路が
大規模化し、また実行すべきアドレスが分岐したときの
回復時間(オーバーヘッド)が大きい。ある種のワンチ
ップ・マイクロコンピュータでは、命令をメモリ上で一
定バイト間隔に配置する、いわゆるアラインメントと呼
ばれる手法によって、命令の読み込み、解読、実行の高
速化を図るものもあるが、この場合は命令どうしの間に
無駄な隙間が生じ、メモリの使用効率が悪化する。
するトランジスタサイズを大型化すれば実現可能である
が、これは必然的にチップサイズの大型化を招く。ワン
チップ・マイクロコンピュータのような集積回路素子は
民生機器に搭載される場合が多く、廉価かつ小型である
ことが第一条件とされるため、チップサイズの大型化は
製品として採るべき手段ではない。同様の理由から、ハ
イエンドのパーソナルコンピュータで使用される高速の
汎用CPUのように、キャッシュメモリを内蔵する方法
も採用しがたい。一方、メモリをバンク分けしてインタ
リーブする方法も考えられるが、この場合は制御回路が
大規模化し、また実行すべきアドレスが分岐したときの
回復時間(オーバーヘッド)が大きい。ある種のワンチ
ップ・マイクロコンピュータでは、命令をメモリ上で一
定バイト間隔に配置する、いわゆるアラインメントと呼
ばれる手法によって、命令の読み込み、解読、実行の高
速化を図るものもあるが、この場合は命令どうしの間に
無駄な隙間が生じ、メモリの使用効率が悪化する。
【0007】この発明は以上の課題を解決するためにな
されたもので、優れた価格対性能比を実現しつつ、メモ
リの読み出しを高速化する制御回路、特に上記したよう
に、ワンチップ・マイクロコンピュータ等の集積回路素
子に内蔵されることによって大きな効果を発揮するメモ
リ制御回路を提供することを目的とする。
されたもので、優れた価格対性能比を実現しつつ、メモ
リの読み出しを高速化する制御回路、特に上記したよう
に、ワンチップ・マイクロコンピュータ等の集積回路素
子に内蔵されることによって大きな効果を発揮するメモ
リ制御回路を提供することを目的とする。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明のメモリ制御回路は、自然数Mおよび非負整数
Nに対して、2M 個の領域であるブロックi(i=0,
1,・・,2M −1)に区分され、ブロックiがアドレ
ス2M ×N+iに当たるアドレスのデータを格納するメ
モリと、命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=0,1,・・,2M-1 −1) のときはアドレス2M ×Nをすべてのブロックに与え、
かつ、命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) のときは、ブロックj(j=2M-1 ,2M-1 +1,・
・,2M −1)に対してはアドレス2M ×Nを与え、ブ
ロックj(j=0,1,・・,2M-1 −1)に対しては
アドレス2M ×(N+1)を与えるアドレス変換手段
と、メモリの各ブロックと一対一に設けられ、命令処理
部によって各ブロックから読み出されたデータをラッチ
するラッチ回路と、命令処理部が出力するアドレスおよ
び転送要求のタイミングに従い、ラッチ回路にラッチさ
れたデータのうち、命令処理部が必要とするブロックの
データを選択してデータバスに出力する選択出力回路と
を有し、前記の各ラッチ回路によるラッチは全ブロック
に渡って同時に行われるものである。
に本発明のメモリ制御回路は、自然数Mおよび非負整数
Nに対して、2M 個の領域であるブロックi(i=0,
1,・・,2M −1)に区分され、ブロックiがアドレ
ス2M ×N+iに当たるアドレスのデータを格納するメ
モリと、命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=0,1,・・,2M-1 −1) のときはアドレス2M ×Nをすべてのブロックに与え、
かつ、命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) のときは、ブロックj(j=2M-1 ,2M-1 +1,・
・,2M −1)に対してはアドレス2M ×Nを与え、ブ
ロックj(j=0,1,・・,2M-1 −1)に対しては
アドレス2M ×(N+1)を与えるアドレス変換手段
と、メモリの各ブロックと一対一に設けられ、命令処理
部によって各ブロックから読み出されたデータをラッチ
するラッチ回路と、命令処理部が出力するアドレスおよ
び転送要求のタイミングに従い、ラッチ回路にラッチさ
れたデータのうち、命令処理部が必要とするブロックの
データを選択してデータバスに出力する選択出力回路と
を有し、前記の各ラッチ回路によるラッチは全ブロック
に渡って同時に行われるものである。
【0009】また本発明の集積回路素子は、前記のメモ
リ制御回路を内蔵するものである。
リ制御回路を内蔵するものである。
【0010】
【作用】上記構成による本発明のメモリ制御回路によれ
ば、メモリが2M 個の領域であるブロックi(i=0,
1,・・,2M −1)に区分され、ブロックiがアドレ
ス2M ×N+iに当たるアドレスのデータを格納してい
る。このメモリに対して命令処理部が読み出しをする
際、そのアドレスが、 2M ×N+j(j=0,1,・・,2M-1 −1) であれば、アドレス変換手段がアドレス2M ×Nをすべ
てのブロックに与えるため、ブロックjはアドレス2M
×N+jに対応するデータを出力する。このデータはラ
ッチ回路によって同時にラッチされ、選択出力回路がア
ドレスおよび転送要求タイミングに従い、ラッチされた
データのうち命令処理部が必要とするデータをデータバ
スに出力する。
ば、メモリが2M 個の領域であるブロックi(i=0,
1,・・,2M −1)に区分され、ブロックiがアドレ
ス2M ×N+iに当たるアドレスのデータを格納してい
る。このメモリに対して命令処理部が読み出しをする
際、そのアドレスが、 2M ×N+j(j=0,1,・・,2M-1 −1) であれば、アドレス変換手段がアドレス2M ×Nをすべ
てのブロックに与えるため、ブロックjはアドレス2M
×N+jに対応するデータを出力する。このデータはラ
ッチ回路によって同時にラッチされ、選択出力回路がア
ドレスおよび転送要求タイミングに従い、ラッチされた
データのうち命令処理部が必要とするデータをデータバ
スに出力する。
【0011】この転送に際して、アドレスが前記のごと
く、 2M ×N+j(j=0,1,・・,2M-1 −1) であったため、命令処理部はそのアドレスを先頭とし
て、ラッチ回路にラッチされたデータから、 2M ×N+j〜2M ×N+2M −1 のアドレスに当たるデータを連続的に読み出すことがで
きる。この連続するアドレスの個数は、jが最大値2
M-1 −1をとるときに最小値2M-1 +1となるため、命
令処理部は1回のラッチにつき、最低でも2M-1 +1個
の連続したアドレスを含む2M 個のブロックのメモリを
読み出すことができる。
く、 2M ×N+j(j=0,1,・・,2M-1 −1) であったため、命令処理部はそのアドレスを先頭とし
て、ラッチ回路にラッチされたデータから、 2M ×N+j〜2M ×N+2M −1 のアドレスに当たるデータを連続的に読み出すことがで
きる。この連続するアドレスの個数は、jが最大値2
M-1 −1をとるときに最小値2M-1 +1となるため、命
令処理部は1回のラッチにつき、最低でも2M-1 +1個
の連続したアドレスを含む2M 個のブロックのメモリを
読み出すことができる。
【0012】一方、アドレスが、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) の場合は、アドレス変換手段が、ブロックj(j=2
M-1 ,2M-1 +1,・・,2M −1)に対してはアドレ
ス2M ×Nを与え、ブロックj(j=0,1,・・,2
M-1 −1)に対してはアドレス2M ×(N+1)を与え
るため、 ブロック0は アドレス2M ×(N+1) ブロック1は アドレス2M ×(N+1)+1 ・ ・ ブロック2M-1 −1は アドレス2M ×(N+1)+2M-1 −1 ブロック2M-1 は アドレス2M ×N+2M-1 ブロック2M-1 +1 は アドレス2M ×N+2M-1 +1 ・ ・ ブロック2M −1 は アドレス2M ×N+2M −1 に対応するデータを出力する。ここで、アドレスが前記
のごとく、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) であったため、命令処理部はそのアドレスを先頭とし
て、ラッチ回路にラッチされたデータから、 2M ×N+j〜2M ×(N+1)+2M-1 −1 のアドレスに当たるデータを連続的に読み出すことがで
きる。この連続するアドレスの個数は、jが最大値2M
−1をとるときに最小値2M-1 +1となるため、命令処
理部は1回のラッチにつき、最低でも2M-1 +1個の連
続したアドレスを含む2M 個のブロックのメモリを読み
出すことができる。
1) の場合は、アドレス変換手段が、ブロックj(j=2
M-1 ,2M-1 +1,・・,2M −1)に対してはアドレ
ス2M ×Nを与え、ブロックj(j=0,1,・・,2
M-1 −1)に対してはアドレス2M ×(N+1)を与え
るため、 ブロック0は アドレス2M ×(N+1) ブロック1は アドレス2M ×(N+1)+1 ・ ・ ブロック2M-1 −1は アドレス2M ×(N+1)+2M-1 −1 ブロック2M-1 は アドレス2M ×N+2M-1 ブロック2M-1 +1 は アドレス2M ×N+2M-1 +1 ・ ・ ブロック2M −1 は アドレス2M ×N+2M −1 に対応するデータを出力する。ここで、アドレスが前記
のごとく、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) であったため、命令処理部はそのアドレスを先頭とし
て、ラッチ回路にラッチされたデータから、 2M ×N+j〜2M ×(N+1)+2M-1 −1 のアドレスに当たるデータを連続的に読み出すことがで
きる。この連続するアドレスの個数は、jが最大値2M
−1をとるときに最小値2M-1 +1となるため、命令処
理部は1回のラッチにつき、最低でも2M-1 +1個の連
続したアドレスを含む2M 個のブロックのメモリを読み
出すことができる。
【0013】また上記構成の本発明の集積回路素子によ
れば、命令処理部による自己のメモリの読み出しに前記
のメモリ制御回路を使用する。
れば、命令処理部による自己のメモリの読み出しに前記
のメモリ制御回路を使用する。
【0014】
実施例1.ここで本発明の好適な実施例を説明する。本
実施例に係るメモリ制御回路はワンチップ・マイクロコ
ンピュータに内蔵されているものとする。ここで、この
ワンチップ・マイクロコンピュータの命令処理部は以下
の特徴を有するものとし、本実施例はその特徴に最適化
されるものである。そのため、非常に小規模な回路構成
でありながら、メモリ読み出し速度を大幅に改善するこ
とが可能となる。
実施例に係るメモリ制御回路はワンチップ・マイクロコ
ンピュータに内蔵されているものとする。ここで、この
ワンチップ・マイクロコンピュータの命令処理部は以下
の特徴を有するものとし、本実施例はその特徴に最適化
されるものである。そのため、非常に小規模な回路構成
でありながら、メモリ読み出し速度を大幅に改善するこ
とが可能となる。
【0015】[特徴1]命令処理部は最大で3バイトの
読み出し、およびそれに伴うメモリ・命令処理部間のデ
ータ転送をひとつの単位として処理を行う。この処理単
位をサイクルと呼ぶ。命令バイト長が3以下の場合は1
回のサイクルで命令の読み出しが完了し、命令バイト長
が3を越える場合は複数のサイクルによって命令の読み
出しが完了する。各サイクルにおいては、そのサイクル
に含まれる命令バイト数と同じ回数のデータ転送が発生
する。これは、本実施例において、命令処理部とメモリ
を接続するデータバスが従来例同様1バイト幅であると
仮定するためである。例えば、あるサイクルで読み出さ
れる命令が2バイトであれば、1バイト×2回のデータ
転送が行われる。なお、命令処理部はサイクル単位でア
ドレスを発行するが、そのアドレスはそれぞれ次のサイ
クルで使用するデータの先頭アドレスである。
読み出し、およびそれに伴うメモリ・命令処理部間のデ
ータ転送をひとつの単位として処理を行う。この処理単
位をサイクルと呼ぶ。命令バイト長が3以下の場合は1
回のサイクルで命令の読み出しが完了し、命令バイト長
が3を越える場合は複数のサイクルによって命令の読み
出しが完了する。各サイクルにおいては、そのサイクル
に含まれる命令バイト数と同じ回数のデータ転送が発生
する。これは、本実施例において、命令処理部とメモリ
を接続するデータバスが従来例同様1バイト幅であると
仮定するためである。例えば、あるサイクルで読み出さ
れる命令が2バイトであれば、1バイト×2回のデータ
転送が行われる。なお、命令処理部はサイクル単位でア
ドレスを発行するが、そのアドレスはそれぞれ次のサイ
クルで使用するデータの先頭アドレスである。
【0016】[特徴2]上記のサイクルを実行するため
に、命令処理部はRD0〜2という信号を有する。RD
0は各サイクルにおいて最初のバイトの読み出しを要求
する意味を持つ。従ってRD0は、サイクル開始に先行
するアドレス発行からメモリの読み出し時間を経過した
後に発生される。このタイミング調整は任意の従来技術
によってなされるものとする。同様に、RD1は2番目
のバイト、RD2は3番目のバイトの読み出し要求信号
である。従って、あるサイクルが2バイト命令であれ
ば、そのサイクルではRD0とRD1がこの順で発生
し、RD2は発生しない。一方、4バイト命令に対して
は、数通りの動作が有り得る。つまり、1回目のサイク
ルでRD0、RD1、RD2が発生し、2回目のサイク
ルでRD0のみが発生する場合、1回目のサイクルでR
D0、RD1、2回目のサイクルでRD0、RD1が発
生する場合等である。これら発生のしかたは命令処理部
の内部状態に依存するものの、本発明のメモリ制御回路
の動作の本質に影響を与えるものではない。
に、命令処理部はRD0〜2という信号を有する。RD
0は各サイクルにおいて最初のバイトの読み出しを要求
する意味を持つ。従ってRD0は、サイクル開始に先行
するアドレス発行からメモリの読み出し時間を経過した
後に発生される。このタイミング調整は任意の従来技術
によってなされるものとする。同様に、RD1は2番目
のバイト、RD2は3番目のバイトの読み出し要求信号
である。従って、あるサイクルが2バイト命令であれ
ば、そのサイクルではRD0とRD1がこの順で発生
し、RD2は発生しない。一方、4バイト命令に対して
は、数通りの動作が有り得る。つまり、1回目のサイク
ルでRD0、RD1、RD2が発生し、2回目のサイク
ルでRD0のみが発生する場合、1回目のサイクルでR
D0、RD1、2回目のサイクルでRD0、RD1が発
生する場合等である。これら発生のしかたは命令処理部
の内部状態に依存するものの、本発明のメモリ制御回路
の動作の本質に影響を与えるものではない。
【0017】以上の前提条件のもと、本実施例では、命
令格納メモリであるROMを4つのブロックに分ける構
成としている。これは後に説明するように、1サイクル
が最大3バイトの転送から構成される命令処理部に対し
て、必要かつ十分な構成だからである。
令格納メモリであるROMを4つのブロックに分ける構
成としている。これは後に説明するように、1サイクル
が最大3バイトの転送から構成される命令処理部に対し
て、必要かつ十分な構成だからである。
【0018】図1は実施例1に係るメモリ制御回路の全
体構成図である。本実施例のメモリ制御回路はワンチッ
プ・マイクロコンピュータに内蔵され、図示しない命令
処理部とはデータバス1、アドレスバス3によって接続
されている。アドレスバス3はA0〜Anによって構成
される。命令を格納するROMは4つのブロック、RO
M100〜103に分割され、各ブロックは以下のアド
レスに対応するデータを格納している。Nは非負整数と
する。
体構成図である。本実施例のメモリ制御回路はワンチッ
プ・マイクロコンピュータに内蔵され、図示しない命令
処理部とはデータバス1、アドレスバス3によって接続
されている。アドレスバス3はA0〜Anによって構成
される。命令を格納するROMは4つのブロック、RO
M100〜103に分割され、各ブロックは以下のアド
レスに対応するデータを格納している。Nは非負整数と
する。
【0019】・ROM100は、アドレス4N ・ROM101は、アドレス4N+1 ・ROM102は、アドレス4N+2 ・ROM103は、アドレス4N+3 ただし実際には、ROM100〜103は自己のアドレ
スを「4N」としてのみ認識しており、4Nからのオフ
セット値0〜3は認識しない。従ってROM100〜1
03は、オフセット値を決めるアドレスの下位2ビット
を参照しておらず、読み出しがなされるアドレスが4N
〜4N+3の範囲にある限り、このアドレスは原則とし
て「4N」としてROM100〜103に与えられる。
「原則として」としたのは、次に述べるアドレス変換回
路5による作用を配慮したためである。
スを「4N」としてのみ認識しており、4Nからのオフ
セット値0〜3は認識しない。従ってROM100〜1
03は、オフセット値を決めるアドレスの下位2ビット
を参照しておらず、読み出しがなされるアドレスが4N
〜4N+3の範囲にある限り、このアドレスは原則とし
て「4N」としてROM100〜103に与えられる。
「原則として」としたのは、次に述べるアドレス変換回
路5による作用を配慮したためである。
【0020】アドレス変換回路5は、アドレスバス3に
よって伝達されるアドレスに変換を加え、ROM100
とROM101に変換後のアドレスを与える。アドレス
変換の規則は次の通りである。
よって伝達されるアドレスに変換を加え、ROM100
とROM101に変換後のアドレスを与える。アドレス
変換の規則は次の通りである。
【0021】・アドレスが4Nまたは4N+1のとき 無変換、すなわち4N。
【0022】・アドレスが4N+2または4N+3のと
き ROMにとって次のアドレスに相当する4(N+1)。
き ROMにとって次のアドレスに相当する4(N+1)。
【0023】従ってこの規則は、「アドレスA1が1な
らばA2以上のアドレスをインクリメントする」と約言
することができる。この規則を具体化したアドレス変換
回路5の回路例を図2に示す。図2において、アドレス
A2〜Anは、それぞれがゲート素子によって構成され
る加算回路AD2〜ADnにより、A1が1の場合に限
ってインクリメントされ、変換後のアドレスAA2〜A
AnがROM100とROM101に与えられる。な
お、ROM102とROM103には、常にA2〜An
がそのまま与えられている。
らばA2以上のアドレスをインクリメントする」と約言
することができる。この規則を具体化したアドレス変換
回路5の回路例を図2に示す。図2において、アドレス
A2〜Anは、それぞれがゲート素子によって構成され
る加算回路AD2〜ADnにより、A1が1の場合に限
ってインクリメントされ、変換後のアドレスAA2〜A
AnがROM100とROM101に与えられる。な
お、ROM102とROM103には、常にA2〜An
がそのまま与えられている。
【0024】アドレスデコーダ7はアドレス変換回路5
によって必要な変換がされたアドレスを展開してROM
100およびROM101のメモリセルに対する実際の
アクセスを可能にする。つまり、例えばアドレス変換回
路5から出力されるアドレスが10ビットであれば、こ
れを実際に210=1024本の信号に展開する部分であ
る。同様に、アドレス変換回路9はA2〜Anを展開し
てROM102およびROM103に対するアクセスを
可能にする。一方、ROM100〜103の出力データ
は、それぞれデータラッチ200〜203にラッチされ
る。これらのデータラッチは、上記のRD0が発生した
ときに同時にラッチ動作を行う。従ってラッチ動作は、
各サイクルの開始から一定時間経過後に1回のみ発生す
る。データラッチ200〜203にラッチされたデータ
は、それぞれデータバッファ300〜303を介してデ
ータバス1に接続される。データバッファ300〜30
3の開閉は、データセレクタ11から出力されるゲート
信号400〜403によって行われる。データセレクタ
11はRD0〜2、およびアドレスA' 0、A' 1を参
照する。A' 0、A' 1はアドレスA0とA1をラッチ
回路12がRD0でラッチしたものである。A' 0と
A' 1の組合せにより、RD0が発生したときに出力を
許可すべきデータバッファが決定できる。例えば、A'
0=1かつA' 1=0の場合、RD0が発生したとき、
ゲート信号401が活性化されてデータバッファ301
が選択され、アドレス4N+1に当たるデータがデータ
バス1に出力される。続いてRD1が発生すればゲート
信号402が活性化されてデータバッファ302が選択
され、アドレス4N+2に当たるデータが出力される。
他の場合も同様に考えればよい。これらの規則を具体化
したデータセレクタ11の回路例を図3に示す。図3に
おいて、それぞれがゲート素子によって構成されるデコ
ード回路500〜503により、上記の規則に従って、
ゲート信号400〜403が生成される。
によって必要な変換がされたアドレスを展開してROM
100およびROM101のメモリセルに対する実際の
アクセスを可能にする。つまり、例えばアドレス変換回
路5から出力されるアドレスが10ビットであれば、こ
れを実際に210=1024本の信号に展開する部分であ
る。同様に、アドレス変換回路9はA2〜Anを展開し
てROM102およびROM103に対するアクセスを
可能にする。一方、ROM100〜103の出力データ
は、それぞれデータラッチ200〜203にラッチされ
る。これらのデータラッチは、上記のRD0が発生した
ときに同時にラッチ動作を行う。従ってラッチ動作は、
各サイクルの開始から一定時間経過後に1回のみ発生す
る。データラッチ200〜203にラッチされたデータ
は、それぞれデータバッファ300〜303を介してデ
ータバス1に接続される。データバッファ300〜30
3の開閉は、データセレクタ11から出力されるゲート
信号400〜403によって行われる。データセレクタ
11はRD0〜2、およびアドレスA' 0、A' 1を参
照する。A' 0、A' 1はアドレスA0とA1をラッチ
回路12がRD0でラッチしたものである。A' 0と
A' 1の組合せにより、RD0が発生したときに出力を
許可すべきデータバッファが決定できる。例えば、A'
0=1かつA' 1=0の場合、RD0が発生したとき、
ゲート信号401が活性化されてデータバッファ301
が選択され、アドレス4N+1に当たるデータがデータ
バス1に出力される。続いてRD1が発生すればゲート
信号402が活性化されてデータバッファ302が選択
され、アドレス4N+2に当たるデータが出力される。
他の場合も同様に考えればよい。これらの規則を具体化
したデータセレクタ11の回路例を図3に示す。図3に
おいて、それぞれがゲート素子によって構成されるデコ
ード回路500〜503により、上記の規則に従って、
ゲート信号400〜403が生成される。
【0025】以上の構成による本発明のメモリ制御回路
の動作を説明する。
の動作を説明する。
【0026】図4はメモリ制御回路の動作を示すタイミ
ングチャートである。このサイクルでは、3バイト命令
が読み出されるものと仮定する。
ングチャートである。このサイクルでは、3バイト命令
が読み出されるものと仮定する。
【0027】図において、サイクルは時刻T0に開始さ
れ、T1で終了している。T0に先行するT2におい
て、最初にアクセスされるべきアドレス4Nが出力され
ている。このアドレスから、最初に読み出しがされるべ
きROMがROM100であることがわかる。また、ア
ドレスが4Nであるため、アドレス変換回路5はアドレ
スを変更することなくROM100とROM101に与
える。従ってROM100〜103にはすべてアドレス
4Nが与えられ、それぞれのROMから対応するアドレ
ス4N〜4N+3のデータが出力される。
れ、T1で終了している。T0に先行するT2におい
て、最初にアクセスされるべきアドレス4Nが出力され
ている。このアドレスから、最初に読み出しがされるべ
きROMがROM100であることがわかる。また、ア
ドレスが4Nであるため、アドレス変換回路5はアドレ
スを変更することなくROM100とROM101に与
える。従ってROM100〜103にはすべてアドレス
4Nが与えられ、それぞれのROMから対応するアドレ
ス4N〜4N+3のデータが出力される。
【0028】ROM100〜103は、T2から必要な
読み出し時間を経て、T0までには正しいデータを出力
している。そこでT0でRD0が活性化され、データラ
ッチ200〜203が対応するROM100〜103の
データをラッチする。それと同時に、データラッチ20
0に対応するゲート信号400が活性化され、ROM1
00のデータがデータバスに出力される。以降、RD
1、RD2が順に出力されるに従ってゲート信号40
1、ゲート信号402が順に活性化され、対応するRO
M101、ROM102のデータがデータバス1に出力
される。これら3回の転送によって、命令処理部が必要
とする3バイト命令の転送が完了する。
読み出し時間を経て、T0までには正しいデータを出力
している。そこでT0でRD0が活性化され、データラ
ッチ200〜203が対応するROM100〜103の
データをラッチする。それと同時に、データラッチ20
0に対応するゲート信号400が活性化され、ROM1
00のデータがデータバスに出力される。以降、RD
1、RD2が順に出力されるに従ってゲート信号40
1、ゲート信号402が順に活性化され、対応するRO
M101、ROM102のデータがデータバス1に出力
される。これら3回の転送によって、命令処理部が必要
とする3バイト命令の転送が完了する。
【0029】なお、仮に最初のアドレスが4N+1であ
ったとしても、やはりアドレス変換回路5はアドレスを
そのままROM100とROM101に与える。ただし
この場合は、RD0〜2に従って、ゲート信号が40
1、402、403の順に活性化される結果、データバ
ス1に出力されるデータが、アドレス4N+1、4N+
2、4N+3の順になる。
ったとしても、やはりアドレス変換回路5はアドレスを
そのままROM100とROM101に与える。ただし
この場合は、RD0〜2に従って、ゲート信号が40
1、402、403の順に活性化される結果、データバ
ス1に出力されるデータが、アドレス4N+1、4N+
2、4N+3の順になる。
【0030】これらの考察から、読み出しが開始される
アドレスが4Nまたは4N+1の場合は、1回の読み出
し時間毎に、すなわち1回のラッチ動作のたびに、必ず
アドレス4N、4N+1、4N+2、4N+3が読み出
し可能な状態におかれる。この4バイトの中に命令処理
部が必要とする3バイトが必ず含まれるため、命令処理
部によるメモリ読み出し動作が高速化される。この実施
例の場合、3バイト命令が連続するとき、1バイト毎に
読み出しをする従来例に比べて、読み出しに要する時間
を約1/3に短縮することが可能となる。
アドレスが4Nまたは4N+1の場合は、1回の読み出
し時間毎に、すなわち1回のラッチ動作のたびに、必ず
アドレス4N、4N+1、4N+2、4N+3が読み出
し可能な状態におかれる。この4バイトの中に命令処理
部が必要とする3バイトが必ず含まれるため、命令処理
部によるメモリ読み出し動作が高速化される。この実施
例の場合、3バイト命令が連続するとき、1バイト毎に
読み出しをする従来例に比べて、読み出しに要する時間
を約1/3に短縮することが可能となる。
【0031】つづいて、読み出し開始アドレスが4N+
2の場合のサイクルを説明する。
2の場合のサイクルを説明する。
【0032】図5もメモリ制御回路の動作を示すタイミ
ングチャートであり、ここでも3バイト命令が読み出さ
れるものとする。そのため、図5における読み出しのタ
イミングは図4における読み出しのタイミングと等し
い。しかし、アドレスが4N+2であるため、アドレス
変換回路5はROM100およびROM101に対して
アドレス4(N+1)=4N+4を与える。その結果、
ROM100〜103から出力されるデータは、それぞ
れアドレス4N+4、4N+5、4N+2、4N+3に
対応し、それらのデータがデータラッチ200〜203
にラッチされる。ここでRD0〜2に従って、ゲート信
号が402、403、400の順に活性化されるため、
データバス1にはアドレス4N+2、4N+3、4N+
4に対応するデータがこの順に出力される。これら3回
の転送によって、命令処理部が必要とする3バイト命令
の転送が完了する。ここで仮に、最初のアドレスが4N
+3であったとすれば、データバス1には、アドレス4
N+3、4N+4、4N+5に対応するデータがこの順
に出力されることになる。
ングチャートであり、ここでも3バイト命令が読み出さ
れるものとする。そのため、図5における読み出しのタ
イミングは図4における読み出しのタイミングと等し
い。しかし、アドレスが4N+2であるため、アドレス
変換回路5はROM100およびROM101に対して
アドレス4(N+1)=4N+4を与える。その結果、
ROM100〜103から出力されるデータは、それぞ
れアドレス4N+4、4N+5、4N+2、4N+3に
対応し、それらのデータがデータラッチ200〜203
にラッチされる。ここでRD0〜2に従って、ゲート信
号が402、403、400の順に活性化されるため、
データバス1にはアドレス4N+2、4N+3、4N+
4に対応するデータがこの順に出力される。これら3回
の転送によって、命令処理部が必要とする3バイト命令
の転送が完了する。ここで仮に、最初のアドレスが4N
+3であったとすれば、データバス1には、アドレス4
N+3、4N+4、4N+5に対応するデータがこの順
に出力されることになる。
【0033】これらの考察から、読み出しが開始される
アドレスが4N+2の場合は、1回の読み出し時間さえ
待てば、必ずアドレス4N+2、4N+3、4N+4が
読み出し可能となる。一方、アドレスが4N+3の場合
も同様、1回の読み出し時間に対して必ず3バイトの読
み出しが可能となる。この結果、命令処理部が要求する
最大バイト数である3バイトの転送を高速化することが
できる。
アドレスが4N+2の場合は、1回の読み出し時間さえ
待てば、必ずアドレス4N+2、4N+3、4N+4が
読み出し可能となる。一方、アドレスが4N+3の場合
も同様、1回の読み出し時間に対して必ず3バイトの読
み出しが可能となる。この結果、命令処理部が要求する
最大バイト数である3バイトの転送を高速化することが
できる。
【0034】以上、3バイト命令について述べたが、2
バイト以下の命令の読み出し動作についても、図4およ
び図5から容易に理解される。すなわち、2バイト命令
ならば、図4および図5においてRD2が活性化されな
い状態を考えればよい。1バイト命令ならば、RD0の
みが活性化される状態を考えればよい。これらの場合、
当然1回のサイクル完了に必要な時間は短縮される。こ
れらとは逆に、4バイト以上の命令の読み出しの場合
は、これら1〜3バイト命令の読み出しサイクルが複数
回発生するだけであり、各サイクルの動作は図4および
図5で説明した通りである。
バイト以下の命令の読み出し動作についても、図4およ
び図5から容易に理解される。すなわち、2バイト命令
ならば、図4および図5においてRD2が活性化されな
い状態を考えればよい。1バイト命令ならば、RD0の
みが活性化される状態を考えればよい。これらの場合、
当然1回のサイクル完了に必要な時間は短縮される。こ
れらとは逆に、4バイト以上の命令の読み出しの場合
は、これら1〜3バイト命令の読み出しサイクルが複数
回発生するだけであり、各サイクルの動作は図4および
図5で説明した通りである。
【0035】いずれの場合においても、分岐命令等によ
って実行すべきアドレスの順序が変動したときに、本発
明のメモリ制御回路の読み出し速度が影響を受けない点
に注意すべきである。
って実行すべきアドレスの順序が変動したときに、本発
明のメモリ制御回路の読み出し速度が影響を受けない点
に注意すべきである。
【0036】なお、本実施例ではメモリ制御回路がワン
チップ・マイクロコンピュータに内蔵されるものとして
説明したが、本発明の用途はそれら集積回路素子に内蔵
されるものに限られない。この場合は、任意の装置にお
いて、その装置を制御する制御素子とともに回路基板に
実装され、その制御素子によるメモリの読み出しを制御
するために使用すればよい。
チップ・マイクロコンピュータに内蔵されるものとして
説明したが、本発明の用途はそれら集積回路素子に内蔵
されるものに限られない。この場合は、任意の装置にお
いて、その装置を制御する制御素子とともに回路基板に
実装され、その制御素子によるメモリの読み出しを制御
するために使用すればよい。
【0037】実施例2.ここでは、上記の実施例1を一
般化した実施例を説明する。実施例2ではROMのブロ
ック数が一般化されているため、命令処理部が1回のサ
イクルで読み出しをする平均的なバイト数に合わせて回
路を構成することができる。
般化した実施例を説明する。実施例2ではROMのブロ
ック数が一般化されているため、命令処理部が1回のサ
イクルで読み出しをする平均的なバイト数に合わせて回
路を構成することができる。
【0038】図6は実施例2に係るメモリ制御回路の全
体構成図である。本実施例では、実施例1で4ブロック
としたROMが2M のブロック、ROMB0〜B2M −
1に分割され、各ブロックは以下のアドレスに対応する
データを格納している。
体構成図である。本実施例では、実施例1で4ブロック
としたROMが2M のブロック、ROMB0〜B2M −
1に分割され、各ブロックは以下のアドレスに対応する
データを格納している。
【0039】 ・ROMB0は、アドレス2M ×N ・ROMB1は、アドレス2M ×N+1 ・ ・ ・ROMB2M −1は、アドレス2M ×N+2M −1 ただし実際には、ROMB0〜B2M −1は自己のアド
レスを「2M ×N」としてのみ認識しており、2M ×N
からのオフセット値0〜2M −1は認識しない。従って
ROMB0〜B2M −1は、オフセット値を決めるアド
レスA0〜AM- 1 を参照しない。
レスを「2M ×N」としてのみ認識しており、2M ×N
からのオフセット値0〜2M −1は認識しない。従って
ROMB0〜B2M −1は、オフセット値を決めるアド
レスA0〜AM- 1 を参照しない。
【0040】アドレス変換回路50は、アドレスバス3
によって伝達されるアドレスに変換を加え、ROMB0
〜B2M −1のうち、前半に当たるROMB0〜B2
M-1 −1に変換後のアドレスを与える。アドレス変換の
規則は次の通りである。
によって伝達されるアドレスに変換を加え、ROMB0
〜B2M −1のうち、前半に当たるROMB0〜B2
M-1 −1に変換後のアドレスを与える。アドレス変換の
規則は次の通りである。
【0041】・アドレスが2M ×N〜2M ×N+2M-1
−1のとき 無変換、すなわち2M ×N。
−1のとき 無変換、すなわち2M ×N。
【0042】・アドレスが2M ×N+2M-1 〜2M ×N
+2M −1のとき ROMにとって次のアドレスに相当する2M ×(N+
1)。
+2M −1のとき ROMにとって次のアドレスに相当する2M ×(N+
1)。
【0043】従ってこの規則は、「アドレスAM-1 が1
ならばAM 以上のアドレスをインクリメントする」と約
言することができる。図6では変換後のアドレスをAA
M〜AAnと表記している。一方、後半のROMB2
M-1 〜ROMB2M −1には、常にAM 〜Anがそのま
ま与えられている。
ならばAM 以上のアドレスをインクリメントする」と約
言することができる。図6では変換後のアドレスをAA
M〜AAnと表記している。一方、後半のROMB2
M-1 〜ROMB2M −1には、常にAM 〜Anがそのま
ま与えられている。
【0044】アドレスデコーダ52、54はアドレス変
換回路50によって必要な変換がされたアドレスを展開
してそれぞれROMB0〜B2M-1 −1、ROMB2
M-1 〜ROMB2M −1のメモリセルに対する実際のア
クセスを可能にする。
換回路50によって必要な変換がされたアドレスを展開
してそれぞれROMB0〜B2M-1 −1、ROMB2
M-1 〜ROMB2M −1のメモリセルに対する実際のア
クセスを可能にする。
【0045】ROMB0〜B2M −1の出力データは、
それぞれデータラッチL0〜L2M−1にラッチされ
る。これらのデータラッチは、RD0が発生したときに
同時にラッチ動作を行う。またRD0によりアドレスA
0〜AM-1 がA' 0〜A' M-1としてラッチ回路57に
ラッチされる。データラッチL0〜L2M −1にラッチ
されたデータは、それぞれデータバッファBF0〜BF
2M −1を介してデータバス1に接続される。データバ
ッファBF0〜BF2M −1の開閉は、データセレクタ
56から出力されるゲート信号G0〜G2M −1によっ
て行われる。データセレクタ56はRD0〜RD2 −
1、およびアドレスA' 0〜A' M-1 を参照し、RD0
が発生したときに出力を許可すべきデータバッファを決
定する。
それぞれデータラッチL0〜L2M−1にラッチされ
る。これらのデータラッチは、RD0が発生したときに
同時にラッチ動作を行う。またRD0によりアドレスA
0〜AM-1 がA' 0〜A' M-1としてラッチ回路57に
ラッチされる。データラッチL0〜L2M −1にラッチ
されたデータは、それぞれデータバッファBF0〜BF
2M −1を介してデータバス1に接続される。データバ
ッファBF0〜BF2M −1の開閉は、データセレクタ
56から出力されるゲート信号G0〜G2M −1によっ
て行われる。データセレクタ56はRD0〜RD2 −
1、およびアドレスA' 0〜A' M-1 を参照し、RD0
が発生したときに出力を許可すべきデータバッファを決
定する。
【0046】以上の構成による本発明のメモリ制御回路
の動作を説明する。
の動作を説明する。
【0047】図7はメモリ制御回路の動作を示すタイミ
ングチャートである。このサイクルでは、2M-1 +1バ
イト命令が読み出されるものと仮定する。従って命令処
理部は、実施例1でRD0〜RD2とされた信号がRD
0〜RD2M-1 と拡張されている。本実施例のようにR
OMを2M のブロックに分割した場合、このバイト数の
サイクルが連続すると読み出し速度が最も速くなる。こ
の点については後に説明する。
ングチャートである。このサイクルでは、2M-1 +1バ
イト命令が読み出されるものと仮定する。従って命令処
理部は、実施例1でRD0〜RD2とされた信号がRD
0〜RD2M-1 と拡張されている。本実施例のようにR
OMを2M のブロックに分割した場合、このバイト数の
サイクルが連続すると読み出し速度が最も速くなる。こ
の点については後に説明する。
【0048】図において、サイクルは時刻T0に開始さ
れ、T1で終了している。T0に先行するT2におい
て、最初にアクセスされるべきアドレス2M ×Nが出力
されている。このアドレスから、最初に読み出しがされ
るべきROMがROMB0であることがわかる。また、
アドレスが2M ×Nであるため、アドレス変換回路50
はアドレスを変更することなくROMB0〜B2M-1 −
1に与える。従ってROMB0〜B2M −1には、すべ
てアドレス2M ×Nが与えられ、対応するアドレス2M
×N〜2M ×N+2M −1のデータが出力される。
れ、T1で終了している。T0に先行するT2におい
て、最初にアクセスされるべきアドレス2M ×Nが出力
されている。このアドレスから、最初に読み出しがされ
るべきROMがROMB0であることがわかる。また、
アドレスが2M ×Nであるため、アドレス変換回路50
はアドレスを変更することなくROMB0〜B2M-1 −
1に与える。従ってROMB0〜B2M −1には、すべ
てアドレス2M ×Nが与えられ、対応するアドレス2M
×N〜2M ×N+2M −1のデータが出力される。
【0049】ここで実施例1と同様、T0でRD0が活
性化され、データラッチL0〜L2M −1がROMB0
〜B2M −1のデータをラッチする。それと同時に、R
OMB0に対応するゲート信号G0が活性化され、RO
MB0のデータがデータバスに出力される。以降、RD
1、RD2・・・RD2M-1 が順に活性化され、これら
2M −1回の転送によって、命令処理部が必要とする2
M −1バイト命令の転送が完了する。
性化され、データラッチL0〜L2M −1がROMB0
〜B2M −1のデータをラッチする。それと同時に、R
OMB0に対応するゲート信号G0が活性化され、RO
MB0のデータがデータバスに出力される。以降、RD
1、RD2・・・RD2M-1 が順に活性化され、これら
2M −1回の転送によって、命令処理部が必要とする2
M −1バイト命令の転送が完了する。
【0050】なお、仮に最初のアドレスが2M ×N〜2
M ×N+2M-1 −1の範囲であれば、やはりアドレス変
換回路50はアドレスをそのままROMB0〜B2M-1
−1に与える。そのため、図7において、読み出し開始
および終了のアドレスが下方に平行移動すると考えれば
よい。
M ×N+2M-1 −1の範囲であれば、やはりアドレス変
換回路50はアドレスをそのままROMB0〜B2M-1
−1に与える。そのため、図7において、読み出し開始
および終了のアドレスが下方に平行移動すると考えれば
よい。
【0051】この考察から、最初のアドレスが2M ×N
〜2M ×N+2M-1 −1の範囲であれば、1回の読み出
し時間毎に、すなわち1回のラッチ動作のたびに、必ず
アドレス2M-1 +1バイトの読み出しが可能となる。従
って、命令処理部が要求する最大バイト数の転送を高速
化することができる。この実施例の場合、2M-1 +1バ
イト命令が連続する場合、理想的には2M-1 +1倍の読
み出し高速化が可能である。
〜2M ×N+2M-1 −1の範囲であれば、1回の読み出
し時間毎に、すなわち1回のラッチ動作のたびに、必ず
アドレス2M-1 +1バイトの読み出しが可能となる。従
って、命令処理部が要求する最大バイト数の転送を高速
化することができる。この実施例の場合、2M-1 +1バ
イト命令が連続する場合、理想的には2M-1 +1倍の読
み出し高速化が可能である。
【0052】つづいて、読み出し開始アドレスが後半の
ブロックに入る2M ×N+2M-1 の場合のサイクルを説
明する。
ブロックに入る2M ×N+2M-1 の場合のサイクルを説
明する。
【0053】図8もメモリ制御回路の動作を示すタイミ
ングチャートであり、この場合も2M-1 +1バイト命令
が読み出されるものとする。ここで、最初のアドレスが
2M×N+2M-1 であるため、アドレス変換回路50は
ROMB0〜B2M-1 −1に対してアドレス2M ×(N
+1)を与える。これは次のように考えるとわかり易
い。すなわち、ROMB0〜B2M −1のうち、最も小
さいアドレスに対応するデータを出力するROMは、後
半の先頭ブロックROMB2M-1 である。ここから順次
アドレスが増加して後半の最後のブロックに到達し、前
半の先頭ブロックであるROMB0へ戻る。ここから前
半のブロックを辿り、前半最後のブロックROMB2
M-1 −1が最も大きなアドレスに対応する。つまり後半
ブロック、前半ブロック、の順にアドレスが一循するの
である。この規則を表示すれば、次の通りとなる。
ングチャートであり、この場合も2M-1 +1バイト命令
が読み出されるものとする。ここで、最初のアドレスが
2M×N+2M-1 であるため、アドレス変換回路50は
ROMB0〜B2M-1 −1に対してアドレス2M ×(N
+1)を与える。これは次のように考えるとわかり易
い。すなわち、ROMB0〜B2M −1のうち、最も小
さいアドレスに対応するデータを出力するROMは、後
半の先頭ブロックROMB2M-1 である。ここから順次
アドレスが増加して後半の最後のブロックに到達し、前
半の先頭ブロックであるROMB0へ戻る。ここから前
半のブロックを辿り、前半最後のブロックROMB2
M-1 −1が最も大きなアドレスに対応する。つまり後半
ブロック、前半ブロック、の順にアドレスが一循するの
である。この規則を表示すれば、次の通りとなる。
【0054】 [前半] ROMB0は、アドレス2M ×N+2M ROMB1は、アドレス2M ×N+2M +1 ・ ・ ROMB2M-1 −1は、アドレス2M ×N+2M +2M-1 −1 [後半] ROMB2M-1 は、アドレス2M ×N+2M-1 ROMB2M-1 +1は、アドレス2M ×N+2M-1 +1 ・ ・ ROMB2M −1は、アドレス2M ×N+2M −1 ここでRD0〜2M-1 に従って、ゲート信号G2M-1 〜
G2M −1、およびG0がこの順に活性化され、 がこの順序で正しく読み出される。これら2M-1 +1回
の転送によって、命令処理部が必要とする2M-1 +1バ
イト命令の転送が完了する。ここで一般に、最初のアド
レスが2M ×N+2M-1 〜2M ×N+2M −1の範囲に
含まれる場合、上記同様、データはまず後半のブロック
から、続いて残りのバイトを前半のブロックから読み出
される結果、1回のサイクルで2M-1 +1バイト命令の
転送が可能となる。
G2M −1、およびG0がこの順に活性化され、 がこの順序で正しく読み出される。これら2M-1 +1回
の転送によって、命令処理部が必要とする2M-1 +1バ
イト命令の転送が完了する。ここで一般に、最初のアド
レスが2M ×N+2M-1 〜2M ×N+2M −1の範囲に
含まれる場合、上記同様、データはまず後半のブロック
から、続いて残りのバイトを前半のブロックから読み出
される結果、1回のサイクルで2M-1 +1バイト命令の
転送が可能となる。
【0055】以上、2M-1 +1バイト命令について述べ
たが、それ以外のバイト数の読み出し動作についても、
図7および図8から容易に理解することができる。これ
らの場合の様子は実施例1で説明した通りである。
たが、それ以外のバイト数の読み出し動作についても、
図7および図8から容易に理解することができる。これ
らの場合の様子は実施例1で説明した通りである。
【0056】なお、本実施例もワンチップ・マイクロコ
ンピュータに内蔵されるものとして説明したが、本発明
の用途はそうした集積回路素子に内蔵される場合に限ら
れるものではない。
ンピュータに内蔵されるものとして説明したが、本発明
の用途はそうした集積回路素子に内蔵される場合に限ら
れるものではない。
【0057】実施例3.実施例1においては、命令処理
部が読み出しバイトの指定のためにRD0〜2の3本の
信号を使用したが、これは別の構成であってもよい。こ
こでは、命令処理部がRDLATおよびRDINCとい
う2本の信号のみでバイト指定を行う場合に関するメモ
リ制御回路の実施例を説明する。
部が読み出しバイトの指定のためにRD0〜2の3本の
信号を使用したが、これは別の構成であってもよい。こ
こでは、命令処理部がRDLATおよびRDINCとい
う2本の信号のみでバイト指定を行う場合に関するメモ
リ制御回路の実施例を説明する。
【0058】上記のRDLATは実施例1のRD0と全
く同じ動作をする。一方、RDINCは実施例1のRD
1とRD2のオア信号である。実施例1ではRD1とR
D2がそれぞれサイクル中の第二、第三回の転送バイト
を指定したが、RD1とRD2は必ずこの順序で発生す
るため、外部回路でこれらの区別をつけることができ
る。すなわち、RDLATが発生した後、1回目のRD
INCは実施例1のRD1、2回目のRDINCはRD
2に相当するため、外部回路はRDINCの発生回数を
数える構成とする。
く同じ動作をする。一方、RDINCは実施例1のRD
1とRD2のオア信号である。実施例1ではRD1とR
D2がそれぞれサイクル中の第二、第三回の転送バイト
を指定したが、RD1とRD2は必ずこの順序で発生す
るため、外部回路でこれらの区別をつけることができ
る。すなわち、RDLATが発生した後、1回目のRD
INCは実施例1のRD1、2回目のRDINCはRD
2に相当するため、外部回路はRDINCの発生回数を
数える構成とする。
【0059】図9は本実施例に係るメモリ制御回路のデ
ータセレクタの回路例を示す図である。このデータセレ
クタは、2つのTフリップフロップ62、64およびそ
れらTフリップフロップ62、64の遷移条件を決定す
るゲート素子66、68、70、72、74、76、お
よびTフリップフロップ62、64の出力から最終信号
を生成するゲート素子78、80、82、84によって
構成され、ROM100〜103に対応するゲート信号
400〜403を生成する。
ータセレクタの回路例を示す図である。このデータセレ
クタは、2つのTフリップフロップ62、64およびそ
れらTフリップフロップ62、64の遷移条件を決定す
るゲート素子66、68、70、72、74、76、お
よびTフリップフロップ62、64の出力から最終信号
を生成するゲート素子78、80、82、84によって
構成され、ROM100〜103に対応するゲート信号
400〜403を生成する。
【0060】この構成によって、例えばA0=0、A1
=0のとき、まずRDLATが発生すると、Tフリップ
フロップ62、64とも反転出力NQが1となり、ゲー
ト信号400が活性化される。次にRDINCが発生す
ると、Tフリップフロップ62の正論理出力Qが1とな
り、ゲート信号401が活性化される。その他の場合も
同様に、A0およびA1の組合せによってゲート信号4
00〜403が順次活性化され、この結果、命令処理部
から与えられる読み出しバイト指示信号が2本であるに
も拘らず正しい読み出しが可能となる。
=0のとき、まずRDLATが発生すると、Tフリップ
フロップ62、64とも反転出力NQが1となり、ゲー
ト信号400が活性化される。次にRDINCが発生す
ると、Tフリップフロップ62の正論理出力Qが1とな
り、ゲート信号401が活性化される。その他の場合も
同様に、A0およびA1の組合せによってゲート信号4
00〜403が順次活性化され、この結果、命令処理部
から与えられる読み出しバイト指示信号が2本であるに
も拘らず正しい読み出しが可能となる。
【0061】なお、本実施例の方法は、実施例2の一般
化されたメモリ制御回路に対しても実現が可能である。
この場合も命令処理部から与えられる読み出しバイト指
示信号はRDLATとRDINCの2本であるが、Tフ
リップフロップの数をM個設ければよい。
化されたメモリ制御回路に対しても実現が可能である。
この場合も命令処理部から与えられる読み出しバイト指
示信号はRDLATとRDINCの2本であるが、Tフ
リップフロップの数をM個設ければよい。
【0062】
【発明の効果】以上詳細に説明したように本発明のメモ
リ制御回路によれば、命令処理部によるメモリ読み出し
の大幅な高速化が可能である。この際、分岐命令等によ
って実行すべきアドレスの順序に変動があるときでも、
本発明のメモリ制御回路の読み出し速度は影響を受けな
い。また、いかなるアドレスから読み出しが開始されて
も、1回のサイクルで必ず2M-1 +1個の連続したアド
レスのデータの読み出しが可能となる。この結果、イン
タリーブ方式、キャッシュメモリ方式のように、読み出
し速度がアドレスに依存することはなく、これらの方式
に比べても回路構成が非常に単純になる。なぜなら、本
発明のアドレス変換回路は命令処理部が出力するアドレ
スを変換するだけであり、アドレスが順序よく増加する
ものとして最適設計されるインタリーブ方式とは根本的
に異なる構成だからである。また、キャッシュメモリ方
式のような特別なメモリを必要とするものに比べても、
回路規模、価格の点で有利である。さらに、命令をメモ
リ上に一定間隔で配置する必要もないため、メモリ使用
効率を低下させるおそれもない。
リ制御回路によれば、命令処理部によるメモリ読み出し
の大幅な高速化が可能である。この際、分岐命令等によ
って実行すべきアドレスの順序に変動があるときでも、
本発明のメモリ制御回路の読み出し速度は影響を受けな
い。また、いかなるアドレスから読み出しが開始されて
も、1回のサイクルで必ず2M-1 +1個の連続したアド
レスのデータの読み出しが可能となる。この結果、イン
タリーブ方式、キャッシュメモリ方式のように、読み出
し速度がアドレスに依存することはなく、これらの方式
に比べても回路構成が非常に単純になる。なぜなら、本
発明のアドレス変換回路は命令処理部が出力するアドレ
スを変換するだけであり、アドレスが順序よく増加する
ものとして最適設計されるインタリーブ方式とは根本的
に異なる構成だからである。また、キャッシュメモリ方
式のような特別なメモリを必要とするものに比べても、
回路規模、価格の点で有利である。さらに、命令をメモ
リ上に一定間隔で配置する必要もないため、メモリ使用
効率を低下させるおそれもない。
【0063】以上の特徴により、本発明のメモリ制御回
路はワンチップ・マイクロコンピュータのような集積回
路素子に内蔵されたとき、特に効果的である。なぜな
ら、本発明のメモリ制御回路は、自身の回路規模が小さ
いだけでなく、読み出し速度の遅いメモリを想定するた
め、メモリ回路のプロセス選択余地を広げるためであ
る。さらに、集積回路素子の命令処理部と直結すること
により、命令処理部のメモリ読み出し規則に最適化した
回路とすることができ、状況に応じて回路規模と読み出
し速度を決定する柔軟性をも有している。これらの結
果、民生機器に搭載される集積回路素子に求められる廉
価かつ小型という条件を満たし、優れた価格対性能比を
実現するものである。
路はワンチップ・マイクロコンピュータのような集積回
路素子に内蔵されたとき、特に効果的である。なぜな
ら、本発明のメモリ制御回路は、自身の回路規模が小さ
いだけでなく、読み出し速度の遅いメモリを想定するた
め、メモリ回路のプロセス選択余地を広げるためであ
る。さらに、集積回路素子の命令処理部と直結すること
により、命令処理部のメモリ読み出し規則に最適化した
回路とすることができ、状況に応じて回路規模と読み出
し速度を決定する柔軟性をも有している。これらの結
果、民生機器に搭載される集積回路素子に求められる廉
価かつ小型という条件を満たし、優れた価格対性能比を
実現するものである。
【図1】実施例1に係るメモリ制御回路の全体構成図で
ある。
ある。
【図2】実施例1のアドレス変換回路5の回路例を示す
図である。
図である。
【図3】実施例1のデータセレクタ11の回路例を示す
図である。
図である。
【図4】実施例1のメモリ制御回路の動作を示すタイミ
ングチャートである。
ングチャートである。
【図5】実施例1のメモリ制御回路の動作を示すタイミ
ングチャートである。
ングチャートである。
【図6】実施例2に係るメモリ制御回路の全体構成図で
ある。
ある。
【図7】実施例2のメモリ制御回路の動作を示すタイミ
ングチャートである。
ングチャートである。
【図8】実施例2のメモリ制御回路の動作を示すタイミ
ングチャートである。
ングチャートである。
【図9】実施例3のデータセレクタ60の回路例を示す
図である。
図である。
5、50 アドレス変換回路 11、60 データセレクタ 62、64 Tフリップフロップ 66、68、70、72、74、76、78、80、8
2、84 ゲート素子 100〜103 ROM 200〜203 データラッチ 300〜303 データバッファ 500〜503 デコード回路 AD2〜ADn 加算回路 B0〜B2M −1 ROM BF0〜BF2M −1 データバッファ L0〜L2M −1 データラッチ
2、84 ゲート素子 100〜103 ROM 200〜203 データラッチ 300〜303 データバッファ 500〜503 デコード回路 AD2〜ADn 加算回路 B0〜B2M −1 ROM BF0〜BF2M −1 データバッファ L0〜L2M −1 データラッチ
Claims (2)
- 【請求項1】 命令処理部がメモリからデータを読み出
すためのメモリ制御回路であって、Mは自然数でありN
は非負整数であり、 2M 個の領域であるブロックi(i=0,1,・・,2
M −1)に区分され、ブロックiがアドレス2M ×N+
iに当たるアドレスのデータを格納するメモリと、 命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=0,1,・・,2M-1 −1) のときはアドレス2M ×Nをすべてのブロックに与え、
かつ、命令処理部が読み出しを要求するアドレスが、 2M ×N+j(j=2M-1 ,2M-1 +1,・・,2M −
1) のときは、ブロックj(j=2M-1 ,2M-1 +1,・
・,2M −1)に対してはアドレス2M ×Nを与え、ブ
ロックj(j=0,1,・・,2M-1 −1)に対しては
アドレス2M ×(N+1)を与えるアドレス変換手段
と、 メモリの各ブロックと一対一に設けられ、命令処理部に
よって各ブロックから読み出されたデータをラッチする
ラッチ回路と、 命令処理部が出力するアドレスおよび転送要求のタイミ
ングに従い、ラッチ回路にラッチされたデータのうち、
命令処理部が必要とするブロックのデータを選択してデ
ータバスに出力する選択出力回路と、 を有し、 前記の各ラッチ回路によるラッチは全ブロックに渡って
同時に行われることによって、1回のラッチ動作のたび
に、少なくとも2M-1 +1個の連続したアドレスを含む
2M 個のブロックのメモリが命令処理部から読み出し可
能な状態におかれることを特徴とするメモリ制御回路。 - 【請求項2】 請求項1に記載のメモリ制御回路を内蔵
したことを特徴とする集積回路素子。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17816594A JP3096576B2 (ja) | 1994-07-29 | 1994-07-29 | メモリ制御回路とその回路を内蔵した集積回路素子 |
| KR1019950022801A KR0156976B1 (ko) | 1994-07-29 | 1995-07-28 | 메모리 제어 회로와 그 회로를 내장한 집적 회로 소자 |
| US08/509,500 US5765212A (en) | 1994-07-29 | 1995-07-28 | Memory control circuit that selectively performs address translation based on the value of a road start address |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17816594A JP3096576B2 (ja) | 1994-07-29 | 1994-07-29 | メモリ制御回路とその回路を内蔵した集積回路素子 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0844560A true JPH0844560A (ja) | 1996-02-16 |
| JP3096576B2 JP3096576B2 (ja) | 2000-10-10 |
Family
ID=16043762
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17816594A Expired - Fee Related JP3096576B2 (ja) | 1994-07-29 | 1994-07-29 | メモリ制御回路とその回路を内蔵した集積回路素子 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5765212A (ja) |
| JP (1) | JP3096576B2 (ja) |
| KR (1) | KR0156976B1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100315042B1 (ko) * | 1999-12-23 | 2001-11-29 | 박종섭 | 버츄얼 채널 디램 |
| KR100803188B1 (ko) * | 2005-09-09 | 2008-02-14 | 후지쯔 가부시끼가이샤 | 반도체 기억 장치와 이것을 이용한 반도체 집적 회로시스템 및 반도체 기억 장치의 제어 방법 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5960462A (en) * | 1996-09-26 | 1999-09-28 | Intel Corporation | Method and apparatus for analyzing a main memory configuration to program a memory controller |
| US6643760B2 (en) * | 2001-04-30 | 2003-11-04 | Zilog, Inc. | Architecture to relax memory performance requirements |
| JP2003280982A (ja) * | 2002-03-20 | 2003-10-03 | Seiko Epson Corp | 多次元メモリのデータ転送装置及び多次元メモリのデータ転送プログラム、並びに多次元メモリのデータ転送方法 |
| US9123189B2 (en) * | 2007-02-12 | 2015-09-01 | The Boeing Company | System and method for point-of-use instruction |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1515376A (en) * | 1975-07-09 | 1978-06-21 | Int Computers Ltd | Data storage systems |
| US4319324A (en) * | 1980-01-08 | 1982-03-09 | Honeywell Information Systems Inc. | Double word fetch system |
| US4378591A (en) * | 1980-12-31 | 1983-03-29 | Honeywell Information Systems Inc. | Memory management unit for developing multiple physical addresses in parallel for use in a cache memory |
| US4424561A (en) * | 1980-12-31 | 1984-01-03 | Honeywell Information Systems Inc. | Odd/even bank structure for a cache memory |
| JPH06149662A (ja) * | 1992-11-02 | 1994-05-31 | Toshiba Corp | Romバースト転送の連続読みだし拡大方式およびその方式を用いたrom内蔵型マイクロコンピュータシステム |
| JP3005402B2 (ja) * | 1993-09-29 | 2000-01-31 | 三洋電機株式会社 | Romの読出切換回路 |
-
1994
- 1994-07-29 JP JP17816594A patent/JP3096576B2/ja not_active Expired - Fee Related
-
1995
- 1995-07-28 US US08/509,500 patent/US5765212A/en not_active Expired - Fee Related
- 1995-07-28 KR KR1019950022801A patent/KR0156976B1/ko not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100315042B1 (ko) * | 1999-12-23 | 2001-11-29 | 박종섭 | 버츄얼 채널 디램 |
| KR100803188B1 (ko) * | 2005-09-09 | 2008-02-14 | 후지쯔 가부시끼가이샤 | 반도체 기억 장치와 이것을 이용한 반도체 집적 회로시스템 및 반도체 기억 장치의 제어 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR960005616A (ko) | 1996-02-23 |
| JP3096576B2 (ja) | 2000-10-10 |
| KR0156976B1 (ko) | 1998-12-01 |
| US5765212A (en) | 1998-06-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3369227B2 (ja) | プロセッサ | |
| US5440749A (en) | High performance, low cost microprocessor architecture | |
| CN109219805B (zh) | 一种多核系统内存访问方法、相关装置、系统及存储介质 | |
| US6915413B2 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
| JPH04313121A (ja) | インストラクションメモリ装置 | |
| US4509120A (en) | Variable cycle-time microcomputer | |
| EP1235155B1 (en) | Semiconductor memory device and information processing unit | |
| JPH0844560A (ja) | メモリ制御回路とその回路を内蔵した集積回路素子 | |
| EP0690450A2 (en) | Memory circuit sequentially accessible by arbitrary address | |
| KR0184633B1 (ko) | 씨피유코어 | |
| JP3202654B2 (ja) | マイクロプロセッサシステム | |
| JPH04104350A (ja) | マイクロプロセッサ | |
| JPH07226079A (ja) | 半導体メモリ装置 | |
| JP5025521B2 (ja) | 半導体装置 | |
| KR950003883B1 (ko) | 메모리제어논리장치 | |
| JP2012128559A (ja) | 演算処理装置 | |
| JP5929600B2 (ja) | 情報処理システム、情報処理装置、及び電子装置 | |
| JP3242474B2 (ja) | データ処理装置 | |
| JPH0736166B2 (ja) | データ転送方式 | |
| JPH03204695A (ja) | 楽音合成装置 | |
| JP2003015866A (ja) | プロセッサ | |
| JP2008065377A (ja) | 情報処理装置 | |
| JP2002116951A (ja) | アドレス生成回路 | |
| JP2003296105A (ja) | データ処理装置 | |
| JP2000267849A (ja) | パイプライン・プロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070804 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080804 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090804 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |