JPS63308653A - Block-in system - Google Patents

Block-in system

Info

Publication number
JPS63308653A
JPS63308653A JP62144252A JP14425287A JPS63308653A JP S63308653 A JPS63308653 A JP S63308653A JP 62144252 A JP62144252 A JP 62144252A JP 14425287 A JP14425287 A JP 14425287A JP S63308653 A JPS63308653 A JP S63308653A
Authority
JP
Japan
Prior art keywords
byte
word
bytes
read
data
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
JP62144252A
Other languages
Japanese (ja)
Inventor
Tomoyuki Nakagami
智之 中上
Takeshi Kitahara
北原 毅
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62144252A priority Critical patent/JPS63308653A/en
Publication of JPS63308653A publication Critical patent/JPS63308653A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To use the memory of a port size different from a microprocessor by executing a dynamic bus sizing and also changing over the update sequence of an access address according to the port size of a memory. CONSTITUTION:The system changes over the update sequence of the access address of a ROM 2 according to the port size of the ROM 2 and executes a dynamic bus sizing to shift the data on a data bus 3 according to the port size of the ROM 2. The system transfers beforehand prescribed block data with constant length from the ROM 2 to a cache memory 4 in a microprocessor 1. Thus, since the dynamic bus sizing is executed, the ROM of a port size different from the microprocessor can be used. And, since the update sequence of the access address is change over, the necessary part of data can be constantly accessed in advance.

Description

【発明の詳細な説明】 〔概要〕 本発明はマイクロプロセッサ内にキャッシュ・メモリを
有するデータプロセッサにおけるブロック・イン方式に
おいて、マイクロプロセッサと異なるポートサイズを有
するメモリなどの装置よりデータをデータバスを介して
キャッシュ・メモリに転送可能とするため、データバス
上のデータをポートサイズに応じてシフトして取り込む
ダイナミック・バスサイジングを用いると共にブロック
・イン・アクセスを行なう際にポートサイズに応じてア
クセス・アドレスの更新順序を切換えることにより、マ
イクロプロセッサと異なるポートサイズの装置の使用を
可能とすると共にポートサイズによらず、かつ、得よう
とするデータがワードバウンダリにまたがって存在して
いても、常にデータの必要部分から先にアクセスするも
のである。
DETAILED DESCRIPTION OF THE INVENTION [Summary] The present invention is a block-in method for a data processor having a cache memory within a microprocessor, in which data is transferred from a device such as a memory having a port size different from that of the microprocessor via a data bus. In order to transfer data to the cache memory using dynamic bus sizing, the data on the data bus is shifted and taken in according to the port size, and when block-in access is performed, the access address is changed according to the port size. By switching the update order of the microprocessor, it is possible to use a device with a port size different from the microprocessor, and the data is always updated regardless of the port size and even if the data to be obtained exists across word boundaries. The necessary part of the file is accessed first.

(産業上の利用分野) 本発明はブロック・イン方式、特にマイクロプロセッサ
内にキャッシュ・メモリを有するデータプロセッサにお
けるメモリなどの装置からキャッシュ・メモリへのブロ
ック・イン方式に関する。
(Industrial Application Field) The present invention relates to a block-in method, and particularly to a block-in method from a device such as a memory to a cache memory in a data processor having a cache memory within a microprocessor.

近年、データプロセッサの小型化及び高速化が要求され
ている。そこで、データプロセッサのシステム構成は、
小型化及び高速化を実現できるように柔軟性を有するこ
とが望ましい。
In recent years, there has been a demand for smaller and faster data processors. Therefore, the system configuration of the data processor is
It is desirable to have flexibility so that miniaturization and high speed can be achieved.

〔従来の技術〕[Conventional technology]

従来のデータプロセッサの構成を第14図に示す。デー
タプロセッサは、大略マイクロプロセッサ51、リード
・オンリ・メモリ(ROM)52、ランダム・アクセス
・メモリ(RAM)53、周辺回路54、入出力制御回
路55、ディスク56よりなる。入出力υ1tl11回
路55は、例えばマイクロプロセッサ51からの命令に
応じてディスク56上の所定領域からデータを取り出す
。マイクロブロセIJ−51、ROM52、RAM53
、周辺回路54、入出力制御回路55は夫々バス58に
より接続されている。
FIG. 14 shows the configuration of a conventional data processor. The data processor generally includes a microprocessor 51, a read only memory (ROM) 52, a random access memory (RAM) 53, a peripheral circuit 54, an input/output control circuit 55, and a disk 56. The input/output υ1tl11 circuit 55 takes out data from a predetermined area on the disk 56 in response to a command from the microprocessor 51, for example. Microbrosse IJ-51, ROM52, RAM53
, peripheral circuit 54, and input/output control circuit 55 are connected by a bus 58, respectively.

電源投入時又はシステムリセット直後には、ROM52
内に格納されているプログラムを用いて、RAM53内
のデータが正しいか否か或いは正しく動作するか否かの
診断やマイクロプロセッサ51自体が正しく命令の実行
を行なえるか否かの診断等の初期診断を行なう。しかし
、例えばRAM53が2 M byte程度の容量を有
する場合、このRAM53が正しく動作するか否かの診
断をROM52内のプログラムの各命令を実行してそれ
に応じてRAM53に対して書き込み及び読み出しをし
て行なうのでは、ROM52のアクセス・タイム等によ
り診断に要する診断時間がかかりすぎてしまう。
When the power is turned on or immediately after a system reset, the ROM52
Using the program stored in the microprocessor 51, initial diagnosis is performed to determine whether the data in the RAM 53 is correct or whether it operates correctly, or whether the microprocessor 51 itself can correctly execute instructions. Perform a diagnosis. However, for example, if the RAM 53 has a capacity of about 2 Mbytes, it is necessary to diagnose whether or not the RAM 53 operates correctly by executing each instruction of the program in the ROM 52 and writing and reading data to and from the RAM 53 accordingly. If this is done, the diagnosis will take too much time due to the access time of the ROM 52 and the like.

そこで、マイクロプロセッサ51は、ROM52内のプ
ログラムの一部をコピーして格納するキャッシュ・メモ
リ59を内蔵している。高速バッファ・メモリであるキ
ャッシュ・メモリ59の容量はRAM53の容量に比べ
て小さい。これにより、ROM52内のプログラムの命
令をマイクロプロセッサ51内のキャッシュ・メモリ5
9内で実行することが可能となり、診断時間が短縮でき
る。これは、ROM52のアクセス・タイムが診断時間
に含まれず、又、バス58の利用も最小限に抑えられる
からである。
Therefore, the microprocessor 51 has a built-in cache memory 59 that copies and stores a portion of the program in the ROM 52. The capacity of cache memory 59, which is a high-speed buffer memory, is smaller than that of RAM 53. This allows instructions of the program in the ROM 52 to be transferred to the cache memory 5 in the microprocessor 51.
The diagnosis time can be shortened. This is because the access time of ROM 52 is not included in the diagnostic time and the use of bus 58 is also minimized.

第15図は、電源投入後のROM52による制御を示す
図である。ROM52は、前記初期診断プログラムに加
えて、初期化プログラム及び初IIプログラムローディ
ング([’L)を行なうためのIPLプログラムも格納
している。電源投入後、ROM52内のプログラムによ
るti11611下でデータプロセッサ内のレジスタが
初期化される。次に、ROM52内の初期診断プログラ
ムにより、マイクロプロセッサ51、周辺回路54、R
AM53、入出力1IJ111回路55に対する初期診
断が行なわれ、更に、ROM52内のIPLプログラム
によりIPLが行なわれる。
FIG. 15 is a diagram showing control by the ROM 52 after power is turned on. In addition to the initial diagnosis program, the ROM 52 also stores an initialization program and an IPL program for performing initial II program loading (['L). After the power is turned on, the registers in the data processor are initialized under ti11611 by the program in the ROM 52. Next, the initial diagnosis program in the ROM 52 causes the microprocessor 51, peripheral circuit 54, and R
Initial diagnosis is performed on the AM53 and the input/output 1IJ111 circuit 55, and further, IPL is performed using the IPL program in the ROM52.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

従来のデータプロセッサでは、マイクロプロセッサ51
とバス58により接続される各装置のポートサイズは1
サイズに固定して設計されている。
In a conventional data processor, a microprocessor 51
The port size of each device connected by bus 58 is 1.
Designed to be fixed in size.

このため、例えばRAM53のポートサイズが8ビット
幅であると、ROM52のポートサイズも8ビット幅に
しないとROM52のプログラムの命令をマイクロプロ
セッサ51内のキャッシュ・メモリ59に転送して実行
することができない。
For this reason, for example, if the port size of the RAM 53 is 8 bits wide, the port size of the ROM 52 must also be 8 bits wide, otherwise the instructions of the program in the ROM 52 cannot be transferred to the cache memory 59 in the microprocessor 51 and executed. Can not.

一般に、ROM52の容量はRAM53の容量に比べて
小であり例えばi kbyte程度である。従って、8
ビットのROM@ROM52に使用する場合、ポートサ
イズが同じ8ビット幅であれば問題はないが、例えばポ
ートサイズが32ビット幅であるとこの8ビットのRO
Mを4個使用してROM52を構成する必要がある。つ
まり、ROM52の容量としては上記8ビットのROM
lfll分(1kbyte程度)あれば十分であるが、
この場合は単に32ビット幅のポートサイズに合わせる
ためだけに4つの8ビットROMを使用しなければなら
ない。この結果、32ビット幅のポートサイズに対して
8ビットのROMを4個使用した場合は約3 kbyt
eが余分であり、ROMの利用効率が悪いという問題点
があった。又、実際には不要な容量分のROMを設ける
ため、特に超大規模集積回路(VLSI)化されたデー
タプロセッサの場合はROMの占有面積が大きいために
集積度の低下をもたらすという問題点もあった。
Generally, the capacity of the ROM 52 is smaller than that of the RAM 53, for example, about 1 kbyte. Therefore, 8
When using a bit ROM@ROM52, there is no problem if the port size is the same 8-bit width, but if the port size is 32-bit wide, for example, this 8-bit RO
It is necessary to configure the ROM 52 using four M's. In other words, the capacity of the ROM 52 is the above 8-bit ROM.
lfll (about 1kbyte) is sufficient, but
In this case, four 8-bit ROMs must be used just to accommodate the 32-bit wide port size. As a result, if four 8-bit ROMs are used for a 32-bit wide port size, approximately 3 kbytes
There was a problem that e was redundant and the ROM usage efficiency was poor. In addition, since a ROM with a capacity that is not actually required is provided, especially in the case of data processors using very large scale integrated circuits (VLSI), there is a problem that the ROM occupies a large area, resulting in a decrease in the degree of integration. Ta.

(問題点を解決するための手段) 本発明のブロック・イン方式は、メモリ装置及びマイク
ロプロセッサよりなるデータプロセッサにおいて、メモ
リ装置のポートサイズに応じてメモリ装置のアクセス・
アドレスの更新順序を切換え、データバス上のデータを
メモリ装置のポートサイズに応じてシフトするダイナミ
ック・バスサイジングを行ない、予め定められた一定長
のブロック・データをメモリ装置よりマイクロプロセッ
サ内のキャッシュ・メモリに転送する。
(Means for Solving the Problems) The block-in method of the present invention provides access control of the memory device according to the port size of the memory device in a data processor consisting of a memory device and a microprocessor.
Dynamic bus sizing is performed in which the address update order is switched and the data on the data bus is shifted according to the port size of the memory device, and a predetermined block of data of a certain length is transferred from the memory device to the cache in the microprocessor. Transfer to memory.

〔作用〕[Effect]

本発明のブロック・イン方式は、ダイナミック・バスサ
イジングを行なうためマイクロプロセッサと異なるポー
トサイズのメモリ装置の使用を可能とする。又、メモリ
装置のポートサイズに応じてメモリ装置のアクセス争ア
ドレスの更新順序を切換えるため、ポートサイズによら
ず常にデータの必要部分から先にアクセスすることが可
能となる。
The block-in scheme of the present invention allows the use of memory devices with different port sizes than the microprocessor to provide dynamic bus sizing. Furthermore, since the order of updating the access contention addresses of the memory device is changed according to the port size of the memory device, it is possible to always access the necessary part of the data first, regardless of the port size.

〔実施例〕〔Example〕

本発明になるブロック・イン方式を適用し得るデータプ
ロセッサの構成を第1図に示す。同図中、第14図と同
一構成部分には同一符号を付し、その説明は省略する。
FIG. 1 shows the configuration of a data processor to which the block-in method according to the present invention can be applied. In the figure, the same components as those in FIG. 14 are denoted by the same reference numerals, and the explanation thereof will be omitted.

マイクロプロセッサ1はその内部にキャッシュ・メモリ
4を有し、バス3を介してRO−M 2などに接続され
ている。
The microprocessor 1 has a cache memory 4 therein, and is connected to a RO-M 2 and the like via a bus 3.

先ず、本発明のブロック・イン方式においてブロック・
イン・アクセスを行なう際にROM2のポートサイズに
応じて切換えるROM2のアクセス・アドレスの更新順
序の各実施例について説明する。説明の便宜上、マイク
ロプロセッサ1のポートサイズは32ビット幅であり、
アクセス・アドレスの1ブロックは第2図に示す構成を
有するものとする。第2図中、rOJ、rN、・・・。
First, in the block-in method of the present invention, the block-in method
Each embodiment of the update order of the access address of the ROM2 which is changed according to the port size of the ROM2 when performing an in-access will be described. For convenience of explanation, the port size of microprocessor 1 is 32 bits wide;
It is assumed that one block of access addresses has the configuration shown in FIG. In Fig. 2, rOJ, rN,...

rFJは夫々バイトアドレスを示す。rFJ each indicates a byte address.

アクセス・アドレスの更新順序の第1実施例を説明する
。ROM2のポートサイズは8ビット幅であり、データ
がワードの境界(ワードバウンダリ)にまたがっている
ものとし、第3.4図ではアクセスするべきデータワー
ドのバイトアドレスを斜線で示す。本実施例では、先ず
指定バイトアドレスの1バイトをROM2より読み、こ
の指定バイトが存在するワード内でこの指定バイトより
後のワード内データがあればそれをワード肉量1位バイ
トまで読み、この指定バイトが存在するワード内でこの
指定バイトより前のワード内データがあればそれをワー
ド内最上位バイトから読み、次のワード内のバイトを最
上位バイトから順に読み、ブロック最上位バイトをアク
セスしていなければこのブロック最上位バイトの存在す
るワードを含め指定バイトの存在するワードの前のワー
ドまで各バイトをアクセスする。
A first example of the access address update order will be described. It is assumed that the port size of ROM 2 is 8 bits wide, and that data straddles word boundaries. In FIG. 3.4, the byte address of the data word to be accessed is indicated by diagonal lines. In this embodiment, first, one byte of the specified byte address is read from ROM2, and if there is data in the word after this specified byte in the word where this specified byte exists, it is read up to the first byte of the word size, and then this byte is read. If there is data in the word before the specified byte in the word where the specified byte exists, it is read from the most significant byte in the word, the bytes in the next word are read in order from the most significant byte, and the most significant byte of the block is accessed. If not, access each byte including the word where the most significant byte of this block exists and up to the word before the word where the specified byte exists.

従って、第3図の場合、アクセス・アドレスr7J、r
4J、r5J、r6J、rBJ、r9J、rAJ、rB
J、rcJ、・・・、r2J、r3Jの順序で更新され
る。同様にして、第4図の場合、アクセス・アドレスは
r5J、r6J、r7J。
Therefore, in the case of FIG. 3, the access addresses r7J, r
4J, r5J, r6J, rBJ, r9J, rAJ, rB
It is updated in the order of J, rcJ, . . . , r2J, r3J. Similarly, in the case of FIG. 4, the access addresses are r5J, r6J, r7J.

r4J、rBJ、r9J、rAJ、rBJ、rcJ、・
・・、r2J、r3Jの順序で更新される。
r4J, rBJ, r9J, rAJ, rBJ, rcJ, ・
..., r2J, r3J are updated in this order.

アクセス・アドレスの更新順序の第2実施例を説明する
。本実施例でも、ROM2のポートサイズ及びデータの
存在は第1実施例の説明の場合と同一とする。本実施例
では、先ず指定バイトアドレスの1バイトをROM2よ
り読み、こり指定バイトが存在するワード内でこの指定
バイトより後のワード内データがあればそれをワード内
最下位バイトまで読み、この指定バイトが存在するワー
ド内でこの指定バイトより前のワード内データがあれば
それをワード内最上位バイトから読むところまでは第1
実施例と同じである。しかし、本実施例では、次に指定
バイトアドレスに「4」を加算したバイトアドレスの1
バイトをROM2より読み、この「4」を加算したバイ
トアドレスを下位2ビットのみが変化し、3ビット目は
桁上げが許されないというラップ・アラウンド方式で順
次インクリメントしてこの「4」を加算したバイトアド
レスの1バイトが存在するワード内の各バイトを読み(
つまり、「4」を加算したバイトアドレスのバイトより
後のバイト及び前のバイトを読み)、この「4」を加算
したバイトアドレスに更に「4」を加算したバイトアド
レスの1バイトをROM2より読み、この更に「4」を
加算したバイトアドレスをラップ・アラウンド方式で順
次インクリメントしてこの更に「4」を加算したバイト
アドレスの1バイトが存在するワード内の各バイトを読
み、以下同様にして指定バイトの存在するワードの前の
ワードまで各バイトをアクセスする。
A second example of the access address update order will be described. In this embodiment as well, the port size of the ROM 2 and the existence of data are the same as those described in the first embodiment. In this embodiment, first, one byte of the specified byte address is read from ROM2, and if there is data in the word after this specified byte in the word where the specified byte exists, it is read up to the lowest byte in the word, and then the specified byte is read. If there is data in the word before this specified byte in the word where the byte exists, it is read from the most significant byte in the word.
It is the same as the example. However, in this embodiment, 1 of the byte address obtained by adding "4" to the next specified byte address.
The byte was read from ROM2, and this "4" was added to the byte address, which was sequentially incremented using a wrap-around method in which only the lower two bits changed and no carry was allowed for the third bit, and then this "4" was added. Read each byte in the word that contains one byte of the byte address (
In other words, read the byte after and the byte before the byte at the byte address to which "4" has been added), and read from ROM2 the byte at the byte address to which "4" has been added and the byte address to which "4" has been added. , this byte address with "4" added to it is sequentially incremented in a wrap-around manner, and each byte in the word where 1 byte of this byte address with "4" added is present is read, and the following instructions are specified in the same way. Access each byte up to the word before the word in which the byte resides.

従って、第3図の場合、アクセス・アドレスはr7J、
  r4J、  r5J、  r6J、  rBJ、 
 rBJ、r9J、rAJ、rFJ、・・・、rlJ、
r2Jの順序で更新される。同様にして、第4図の場合
、アクセス・アドレスはr5J、r6J、r7J。
Therefore, in the case of Figure 3, the access address is r7J,
r4J, r5J, r6J, rBJ,
rBJ, r9J, rAJ, rFJ, ..., rlJ,
Updated in r2J order. Similarly, in the case of FIG. 4, the access addresses are r5J, r6J, r7J.

r4J、r9J、rAJ、rBJ、rBJ、rDJ、・
・・、r3J、rOJの順序で更新される。
r4J, r9J, rAJ, rBJ, rBJ, rDJ, ・
..., r3J, rOJ are updated in this order.

アクセス・アドレスの更新順序の第3実施例を説明する
。本実施例でも、ROM2のポートサイズ及びデータの
存在は第1実施例の説明の場合と同一とする。本実施例
では、先ず指定バイトアドレスの1バイトをROM2よ
り読み、それ以後は順次バイトアドレスをインクリメン
トすることによりブロック内の各バイトを読む。
A third example of the access address update order will be described. In this embodiment as well, the port size of the ROM 2 and the existence of data are the same as those described in the first embodiment. In this embodiment, first, one byte at a designated byte address is read from the ROM 2, and thereafter each byte in the block is read by sequentially incrementing the byte address.

従って、第3図の場合、アクセス・アドレスはr7J、
rBJ、r9J、rAJ、rBJ、rCJ、・・・、r
5J、r6Jの順序で更新される。同様にして、第4図
の場合、アクセス・アドレスはr5J、r6J、r7J
、rBJ、r9J、rAJ、rBJ、rcJ、・・・、
r3J、r4Jの順序で更新される。
Therefore, in the case of Figure 3, the access address is r7J,
rBJ, r9J, rAJ, rBJ, rCJ,..., r
It is updated in the order of 5J and r6J. Similarly, in the case of Figure 4, the access addresses are r5J, r6J, r7J.
, rBJ, r9J, rAJ, rBJ, rcJ,...
They are updated in the order of r3J and r4J.

なお、アクセスするべきデータのバイトアドレスが第5
図に示す如くワードバウンダリにまたがっていない場合
は、第1〜3実施例のいずれの場合もアクセス・アドレ
スはrAJ、r5J、r6J、r7J、rBJ、r9J
、rAJ、rBJ。
Note that the byte address of the data to be accessed is the fifth byte address.
As shown in the figure, if the access address does not straddle a word boundary, the access address is rAJ, r5J, r6J, r7J, rBJ, r9J in any of the first to third embodiments.
, rAJ, rBJ.

「C」、・・・、r2J、r3Jの順序で更新される。They are updated in the order of "C", . . . , r2J, r3J.

次に、アクセス・アドレスの更新順序の第4実施例を説
明する。ROM2のポートサイズは16ビット幅であり
、データがワードバウンダリにまたがっているものとし
、第6,7図ではアクセスすべきデータワードのバイト
アドレスを斜線で示す。本実施例では、先ず指定バイト
アドレスの1バイトがそのバイトが存在するワード内の
上位2バイトに存在すれば上位2バイトを読んでから下
位2バイトを読み、ワード内の下位2バイトに存在すれ
ば下位2バイトを読んでから上位2バイトを読み、それ
以後は各ワード内の上位2バイト及び下位2バイトを順
に指定バイトの存在するワードの前のワードまでアクセ
スする。
Next, a fourth example of the update order of access addresses will be described. It is assumed that the port size of ROM 2 is 16 bits wide, and data straddles word boundaries. In FIGS. 6 and 7, byte addresses of data words to be accessed are indicated by diagonal lines. In this embodiment, if one byte of the specified byte address exists in the upper two bytes of the word in which the byte exists, first read the upper two bytes, then read the lower two bytes, and if the byte exists in the lower two bytes of the word. For example, the lower 2 bytes are read, then the upper 2 bytes are read, and thereafter the upper 2 bytes and lower 2 bytes in each word are sequentially accessed up to the word before the word in which the specified byte exists.

従って、第6図の場合、アクセス・アドレスは2バイト
単位で示すとr6.7J、r4,5J。
Therefore, in the case of FIG. 6, the access addresses are r6.7J, r4, and 5J in 2-byte units.

r8.9J 、rA、BJ 、rC,DJ 、・・・、
「2゜3」の順序で更新される。同様にして、第7図の
場合、アクセス・アドレスは2バイト単位で示すとr4
.5J、 r6.7J、 r8.9J、 rA。
r8.9J, rA, BJ, rC, DJ,...
It is updated in the order of "2°3". Similarly, in the case of FIG. 7, the access address is r4 in 2-byte units.
.. 5J, r6.7J, r8.9J, rA.

BJ 、rc、DJ 、・・・、r2.3Jの順序で更
新される。
They are updated in the order of BJ, rc, DJ, ..., r2.3J.

アクセス・アドレスの更新順序の第5実施例を説明する
。本実施例でも、ROM2のポートサイズ及びデータの
存在は第4実施例の説明の場合と同一とする。本実施例
では、先ず指定バイトアドレスの1バイトがそのバイト
が存在するワード内の上位2バイトに存在すれば上位2
バイトを読んでから下位2バイトを読み、ワード内の下
位2バイトに存在すれば下位2バイトを読んでから上位
2バイトを読むところまでは第4実施例と同じである。
A fifth example of the access address update order will be described. In this embodiment as well, the port size of the ROM 2 and the existence of data are the same as those described in the fourth embodiment. In this embodiment, first, if one byte of the specified byte address exists in the upper two bytes of the word in which that byte exists, the upper two bytes
The steps from reading the byte to reading the lower 2 bytes and reading the lower 2 bytes and then reading the upper 2 bytes if the word exists in the lower 2 bytes are the same as in the fourth embodiment.

しかし、本実施例では、次に指定バイトアドレスに「4
」を加算したバイトアドレスの1バイトが含まれる上位
又は下位2バイトを読んでからこの「4」を加算したバ
イトアドレスをラップ・アラウンド方式で順次インクリ
メントしてこの「4」を加算したバイトアドレスの1バ
イトが存在するワード内においてこの「4」を加算した
バイトアドレスの1バイトが含まれない下位又は上位2
バイトを読み、この「4」を加算したバイトアドレスに
更に「4」を加算したバイトアドレスの1バイトが含ま
れる上位又は下位2バイトを読んでからこの更に「4」
を加算したバイトアドレスをラップ・アラウンド方式で
順次インクリメントしてこの更に「4」を加算したバイ
トアドレスの1バイトが存在するワード内においてこの
更に「4」を加算したバイトアドレスの1バイトが含ま
れない下位又は上位2バイトを読み、以下同様にして指
定バイトの存在するワードの前のワードまで各2バイト
をアクセスする。
However, in this embodiment, the next specified byte address is “4”.
Read the upper or lower 2 bytes that include 1 byte of the byte address to which "4" has been added, then increment the byte address to which "4" has been added sequentially in a wrap-around manner to obtain the byte address to which "4" has been added. The lower or upper 2 byte of the byte address added with this "4" is not included in the word where 1 byte exists.
Read the byte, read the upper or lower 2 bytes that include 1 byte of the byte address that is the byte address that is the result of adding this “4”, and then add this “4”.
The byte address obtained by adding ``4'' is sequentially incremented in a wrap-around manner, and within the word where 1 byte of the byte address obtained by adding ``4'' is included, 1 byte of the byte address obtained by adding ``4'' is included. The lower or upper 2 bytes that do not exist are read, and each 2 byte is accessed in the same manner up to the word before the word where the specified byte exists.

従って、第6図の場合、アクセス・アドレスは2バイト
単位で示すとr6,7J、r4.5J。
Therefore, in the case of FIG. 6, the access addresses are r6, 7J, and r4.5J in 2-byte units.

rA、BJ、r8,9J、rE、FJ、・・・、「0゜
1」の順序で更新される。同様にして、第7図の場合、
アクセス・アドレスは2バイト単位で示すとr4.5J
、 r6.7J、 r8.9J、 FA。
They are updated in the order of rA, BJ, r8, 9J, rE, FJ, . . . "0°1". Similarly, in the case of Figure 7,
The access address is r4.5J in 2-byte units.
, r6.7J, r8.9J, FA.

BJ 、rc、DJ 、・・−、r2.3Jの順序で更
新される。
It is updated in the order of BJ, rc, DJ, . . . , r2.3J.

アクセス・アドレスの更新順序の第6実施例を説明する
。本実施例でも、ROM2のポートサイズ及びデータの
存在は第4実施例の説明の場合と同一とする。本実施例
では、先ず指定バイトアドレスの1バイトの含まれる上
位又は)位2バイトを読み、それ以後は順次バイトアド
レスに「2」を加算することによりブロック内の各2バ
イトを読む。
A sixth embodiment of the access address update order will be described. In this embodiment as well, the port size of the ROM 2 and the existence of data are the same as those described in the fourth embodiment. In this embodiment, first the upper or )-order two bytes included in one byte of the designated byte address are read, and thereafter each two bytes in the block are read by sequentially adding "2" to the byte address.

従って、第6図の場合、アクセス・アドレスは2バイト
単位で示すとr6.7J、r8,9J。
Therefore, in the case of FIG. 6, the access addresses are r6.7J, r8, and 9J in 2-byte units.

rA、BJ 、rC,DJ 、・・・、r4.5Jの順
序で更新される。同様にして、第7図の場合、アクセス
・アドレスは2バイト単位で示すとr4.5J、r6.
.7J、r8.9J、rA、BJ、rC。
They are updated in the order of rA, BJ, rC, DJ, . . . , r4.5J. Similarly, in the case of FIG. 7, the access addresses are r4.5J, r6.
.. 7J, r8.9J, rA, BJ, rC.

DJ、・・・、r2.3Jの順序で更新される。It is updated in the order of DJ, . . . , r2.3J.

なお、アクセスするべきデータのバイトアドレスが第8
図に示す如くワードバウンダリにまたがっでいない場合
は、第4〜6実施例のいずれの場合もアクセス・アドレ
スは2バイト単位で示すとr4.5J 、r6.7J 
、r8.9J 、rA、BJ、rC,DJ、・・・、r
2.3Jの順序で更新される。
Note that the byte address of the data to be accessed is the 8th byte address.
As shown in the figure, if the access address does not straddle a word boundary, the access address is r4.5J, r6.7J in 2-byte units in any of the fourth to sixth embodiments.
, r8.9J, rA, BJ, rC, DJ, ..., r
2. Updated in the order of 3J.

上記の説明より明らかな如く、第1.4実施例はポート
サイズが異なるために生じる違いはあるものの、基本的
には同じ第1の更新順序を用いている。同様に、第2.
5実施例は基本的には同じ第2の更新順序を用いており
、第3.6実施例は基本的には同じ第3の更新順序を用
いている。
As is clear from the above description, the 1.4 embodiments basically use the same first update order, although there are differences due to different port sizes. Similarly, the second.
The fifth embodiment basically uses the same second update order, and the third and sixth embodiments basically use the same third update order.

次に、アクセス・アドレスの更新順序の第7実施例を説
明する。ROM2のポートサイズは32ビット幅であり
、データがワードバウンダリにまたがっている場合を第
9.10図に示し、またがっていない場合を第11図に
示す。第9〜11図中、アクセスするべきデータワード
のバイトアドレスを斜線で示す。本実施例では、先ず指
定バイトアドレスの1バイトが存在するワードを読み、
以後各ワードを指定バイトの存在するワードの前のワー
ドまでアクセスする。従って、前記第1〜3の更新順序
のいずれを用いても更新順序は同一となる。つまり、第
9〜11図の場合、アクセス・アドレスはいずれもワー
ド単位で示すと「4゜5.6.7J 、r8.9.A、
BJ 、rc、D。
Next, a seventh embodiment of the access address update order will be described. The port size of ROM2 is 32 bits wide, and FIG. 9.10 shows a case where data straddles a word boundary, and FIG. 11 shows a case where data does not straddle a word boundary. In Figures 9-11, the byte address of the data word to be accessed is indicated by diagonal lines. In this embodiment, first, a word containing one byte of a specified byte address is read, and
Thereafter, each word is accessed up to the word before the word containing the specified byte. Therefore, no matter which of the first to third update orders are used, the update order is the same. In other words, in the case of Figures 9 to 11, the access addresses are all expressed in word units as "4°5.6.7J, r8.9.A,
BJ, rc, D.

E、FJ、ro、1.2.3Jの順序で更新される。Updated in the order of E, FJ, ro, 1.2.3J.

次に、マイクロプロセッサ1の要部の構成の一実施例に
ついて第12図と共に説明する。第12図は、マイクロ
プロセッサ1内の演算制御部11と、記憶制御部12と
、入出力制御部13とを示す。記憶−制御部12は、大
略命令キャッシュ・メモリ14、オペランド・キャッシ
ュ・メモリ15、命令トランスレーション・ルックアサ
イド・バッファ(TLB)16、オペランドTLB17
を含む回路からなる。命令キャッシュ・メモリ14及び
オペランド・キャッシュ・メモリ15はキャッシュ・メ
モリ4を構成する。なお、単一のキャッシュ・メモリを
命令キャッシュ・メモリ及びオペランド・キャッシュ・
メモリとして使用しても良い。入出力制御部13は、大
略シフタ・マトリックス回路18と、ダイナミック・バ
スサイジング回路19と、アドレス・インクリメンタ2
0を含む回路からなる。
Next, an embodiment of the configuration of the main parts of the microprocessor 1 will be described with reference to FIG. 12. FIG. 12 shows the arithmetic control section 11, storage control section 12, and input/output control section 13 within the microprocessor 1. The storage-control unit 12 generally includes an instruction cache memory 14, an operand cache memory 15, an instruction translation lookaside buffer (TLB) 16, and an operand TLB 17.
It consists of a circuit including. Instruction cache memory 14 and operand cache memory 15 constitute cache memory 4. Note that a single cache memory can be divided into instruction cache memory and operand cache memory.
It may also be used as memory. The input/output control section 13 generally includes a shifter matrix circuit 18, a dynamic bus sizing circuit 19, and an address incrementer 2.
It consists of a circuit containing 0.

例えば、演算制御部11からROM2内の領域Aに格納
されているデータAAと領域Bに格納されているデータ
BBとを加算して、和を領域Bに格納するよう指示があ
るとする。この場合、オペランドTLB17がオペラン
ド・キャッシュ・メモリ15にデータAA、BBが格納
されているか否かを判別する。データAA、8Bがキャ
ッシュ・メモリ15に格納されていれば、アクセス・タ
イムの長いROM2を直接アクセスすることなく、オペ
ランド・キャッシュ・メモリ15をアクセスしてデータ
AA、BBを加算して和をオペランド・キャッシュ・メ
モリ15に格納する。なお、例えばアドレスO〜3をア
クセスする場合、ROM2のアドレスO〜3がシステム
専用領域であるとアドレスO〜3はアクセス禁止領域で
あり、アドレスO〜3を例えばアドレス1000〜10
03に変換して実際にはアドレス1000〜1003を
アクセスする必要がある。つまり、この場合のアドレス
O〜3は実質的に仮想アドレスであり、アドレス100
0〜1003が実アドレスである。オペランドTLB1
7は、この様なアドレス変換を必要に応じて行なう。
For example, assume that there is an instruction from the arithmetic control unit 11 to add data AA stored in area A in the ROM 2 and data BB stored in area B, and to store the sum in area B. In this case, the operand TLB 17 determines whether data AA and BB are stored in the operand cache memory 15. If the data AA and 8B are stored in the cache memory 15, the operand cache memory 15 is accessed and the data AA and BB are added together, and the sum is added to the operand cache memory 15 without directly accessing ROM2, which requires a long access time. The data is stored in the cache memory 15. For example, when accessing addresses O to 3, if addresses O to 3 of ROM2 are system-only areas, addresses O to 3 are access prohibited areas, and addresses O to 3 are accessed, for example, to addresses 1000 to 10.
03 and actually access addresses 1000 to 1003. In other words, addresses O to 3 in this case are essentially virtual addresses, and address 100
0 to 1003 are real addresses. Operand TLB1
7 performs such address conversion as necessary.

命令キャッシュ・メモリ14は、データではなく、命令
を格納する点を除けばオペランド・キャッシュ・メモリ
15と同じであり、同様に命令TLB16もオペランド
TLB17と同じである。
Instruction cache memory 14 is the same as operand cache memory 15 except that it stores instructions rather than data, and similarly instruction TLB 16 is the same as operand TLB 17.

従って、命令キャッシュ・メモリ14及び命令TLB1
6の説明は省略する。
Therefore, instruction cache memory 14 and instruction TLB1
6 will be omitted.

所望のデータ(又は命令)がキャッシュ・メモリ15(
又は14)に格納されていない場合、この所望のデータ
を含むROM2の一部をコピーしてキャッシュ・メモリ
15(又は14)に格納する。この所望のデータをRO
M2に取りに行く際、ダイナミック・バスサイジング回
路19は、バイト・マークを出力し、アドレス・インク
リメンタ20はアクセスするアドレスを出力する。アク
セスは、たとえ所望データが4バイトであっても第2図
に示す如き16バイトよりなる1ブロックを単位として
行なわれる。この様にして、1ブロックのデータをRO
M2に取りに行き、この1ブロックのデータをバス3を
介してオペランド・キャッシュ・メモリ15に格納する
(ブロック・インする)サイクルをブロック・イン・サ
イクルと言う。オペランド・キャッシュ・メモリ15に
対するブロック・インを行なう際、ダイナミック・バス
サイジング回路19はポートサイズ信号よりROM2の
ポートサイズを判別し、アドレス・インクリメンタ20
に対して次に発生するべきアドレスを指示する。これに
より、アドレス・インクリメンタ20はダイナミック・
バスサイジング回路19により制御されてポートサイズ
に応じた、かつ、前記第1〜3の更新順序のうち選択さ
れた更新順序でアクセス・アドレスを発生する。
The desired data (or instructions) are stored in the cache memory 15 (
or 14), a part of the ROM 2 containing this desired data is copied and stored in the cache memory 15 (or 14). RO this desired data
When fetching M2, the dynamic bus sizing circuit 19 outputs a byte mark, and the address incrementer 20 outputs the address to be accessed. Even if the desired data is 4 bytes, access is performed in units of 16 byte blocks as shown in FIG. In this way, one block of data is RO
A cycle in which data is fetched from M2 and this one block of data is stored (blocked in) in the operand cache memory 15 via the bus 3 is called a block-in cycle. When performing block-in to the operand cache memory 15, the dynamic bus sizing circuit 19 determines the port size of the ROM 2 from the port size signal, and uses the address incrementer 20.
indicates the next address to occur. This causes the address incrementer 20 to dynamically
The access address is generated under the control of the bus sizing circuit 19 in accordance with the port size and in an update order selected from the first to third update orders.

ポートサイズ信号は、例えば2ビットの信号であり、R
OM2のポートサイズを表わす。ポートサイズ信号の2
ビットが夫々r00J、roll。
The port size signal is, for example, a 2-bit signal, and R
Represents the OM2 port size. port size signal 2
The bits are r00J and roll respectively.

「10」の場合をポートサイズが32ビット幅。If it is "10", the port size is 32 bits wide.

16ビット幅、8ビット幅とすると、2ビットが「11
」の場合はリザーブ用となる。
Assuming 16 bit width and 8 bit width, 2 bits are “11
”, it will be reserved.

ROM2のポートサイズによって、バス3中のデータバ
スのうち使用されるビットが′(データバス上の有効な
バイト位置)が異なる。このため、ポートサイズに応じ
てデータバスへの接続を適切に切換える必要がある。シ
フタ・マトリックス回路18は、演専制御部11からの
データ長を示す信号及びTLBl 7又は16からのア
クセス・アドレスの所定下位ビットに応じてダイナミッ
ク・バスサイジング回路19より出力される制御構号に
応答してデータバスへの接続を実質的に切換えるもので
あり、ポートサイズが異なるために生じるデータバスへ
の接続の違いを吸収する一種のデータ・シフタである。
Depending on the port size of the ROM 2, the used bits of the data bus in the bus 3 (valid byte positions on the data bus) differ. Therefore, it is necessary to appropriately switch the connection to the data bus depending on the port size. The shifter matrix circuit 18 responds to the control structure output from the dynamic bus sizing circuit 19 in response to a signal indicating the data length from the dedicated controller 11 and a predetermined lower bit of the access address from TLBl 7 or 16. It essentially switches the connection to the data bus in response, and is a type of data shifter that accommodates differences in connection to the data bus due to different port sizes.

これにより、データバス上のROM2からのリード・デ
ータはシフタ・マトリックス回路18によりポートサイ
ズに応じた適切なシフトを受けてキャッシュ・メモリ1
4又は15へ供給される。又、キャッシュ・メモリ14
又は15からのライト・データはシフタ・マトリックス
回路18によりポートサイズに応じて適切なシフトを受
けてデータバスを介してROM2へ供給される。
As a result, the read data from ROM2 on the data bus is shifted appropriately according to the port size by the shifter matrix circuit 18, and then transferred to the cache memory 1.
4 or 15. Also, cache memory 14
Alternatively, the write data from 15 is appropriately shifted by the shifter matrix circuit 18 according to the port size and is supplied to the ROM 2 via the data bus.

なお、第12図中、データバス、アドレスバス。In addition, in FIG. 12, a data bus and an address bus.

ポートサイズ信号用信号線、バイト・マーク用信号線は
夫々第1図のバス3に含まれるものとする。
It is assumed that the port size signal line and the byte mark signal line are each included in the bus 3 in FIG.

次に、第12図中の入出力制御部13の一実施例につい
て第13図と共に説明する。第13図中、シフタ・マト
リックス回路18は、マトリックス制御回路25と、セ
レクタ26.27と、ラッチ回路28.29とよりなる
。ダイナミック・バスサイジング回路19は、バイト・
マーク生成回路30と、バイト・マーク更新回路31と
、マルチプレクサ32と、ラッチ回路33とよりなる。
Next, an embodiment of the input/output control section 13 in FIG. 12 will be described with reference to FIG. 13. In FIG. 13, the shifter matrix circuit 18 includes a matrix control circuit 25, selectors 26, 27, and latch circuits 28, 29. The dynamic bus sizing circuit 19
It consists of a mark generation circuit 30, a byte mark update circuit 31, a multiplexer 32, and a latch circuit 33.

アドレス・インクリメンタ20は、マルチプレクサ34
と、加算回路35と、ラッチ回路36とよりなる。
Address incrementer 20 is connected to multiplexer 34
, an adder circuit 35 , and a latch circuit 36 .

バイト・マーク生成回路30は、演枠制御回路11から
のデータ長を示す2ビットの信号及びTLBl6又は1
7からのアクセス・アドレスの下位2ビットを供給され
、データバス上の自効なバイト位置を示す4ビットのバ
イト・マークを生成し、出力する。このバイト・マーク
は、バイト・マーク更新回路31及びマトリックス制御
回路25に供給される。マトリックス制御回路25は、
第12図において図示を省略した記憶制御部12内の制
御回路からリード/ライト信号をも供給されている。記
憶制御部12内の制御回路はキャッシュ・メモリ14.
15及びTLBl6.17を制御する回路であり、リー
ド/ライト信号によりリード(読み出し)又はライト(
書き込み)動作を指示する。従って、マトリックス制御
回路25は、バイト・マーク生成回路30からのバイト
・マーク及びリード/ライト信号に応じてセレクタ26
.27を制御することにより、リード・データ又はライ
ト・データをポートサイズに応じてシフトする。
The byte mark generation circuit 30 receives a 2-bit signal indicating the data length from the performance frame control circuit 11 and TLB16 or 1.
It is supplied with the lower 2 bits of the access address from 7 and generates and outputs a 4-bit byte mark indicating the valid byte position on the data bus. This byte mark is supplied to a byte mark update circuit 31 and a matrix control circuit 25. The matrix control circuit 25 is
Read/write signals are also supplied from a control circuit within the storage control section 12, which is not shown in FIG. A control circuit within the storage control unit 12 includes a cache memory 14.
15 and TLB16.17, it is a circuit that controls read (read) or write (
write) operation. Therefore, the matrix control circuit 25 selects the selector 26 in response to the byte mark and read/write signals from the byte mark generation circuit 30.
.. 27, read data or write data is shifted according to the port size.

バイト・マーク更新回路31は、バイト・マーク生成回
路30からのバイト・マーク及びデータ長を示す信号か
らデータがワードバウンダリにまたがっているか否かを
判別し、バイト・マークを更新する。この更新されたバ
イト・マークは、マルチプレクサ32に供給される。マ
ルチプレクサ32は、ポートサイズが8ビット幅の場合
は最初のバイトのアクセス時(16ビット幅の場合は最
初の2バイトのアクセス時、32ビット幅の場合は最初
のワードのアクセス時)にはバイト・マーク生成回路3
0からのバイト・マークを選択出力し、以後はバイト・
マーク更新回路31からの更新されたバイト・マークを
選択出力する。マルチプレクサ32からのバイト・マー
クは、ラップ回路33を介して入出力制御部13より出
力される。
The byte mark update circuit 31 determines whether the data spans a word boundary based on the byte mark and the signal indicating the data length from the byte mark generation circuit 30, and updates the byte mark. This updated byte mark is provided to multiplexer 32. The multiplexer 32 selects a byte when accessing the first byte when the port size is 8 bits wide (when accessing the first two bytes when the port size is 16 bits wide, and when accessing the first word when the port size is 32 bits wide).・Mark generation circuit 3
Selectively outputs byte marks starting from 0, and from then on, bytes/marks are output.
The updated byte mark from the mark update circuit 31 is selectively output. The byte mark from the multiplexer 32 is output from the input/output control section 13 via the wrap circuit 33.

なお、バイト・マーク更新回路31はボート・サイズ信
号に基づいて、前記第1〜3の更新順序のうち1つのア
クセス・アドレス更新順序を指示する制御信号を加算回
路35に供給する。
Note that the byte mark update circuit 31 supplies the adder circuit 35 with a control signal instructing one access address update order among the first to third update orders, based on the boat size signal.

加算回路35は、マルチプレクサ34の出力下位4ビッ
トアドレスにバイト・マーク更新回路31からの制御信
号に応じた値を順次加算する。
The adder circuit 35 sequentially adds a value according to the control signal from the byte mark update circuit 31 to the output lower 4-bit address of the multiplexer 34.

例えば、第3図のデータの場合、第1の更新順序を選択
すれば、加算回路35は、バイトアドレス「7」をアク
セスすると順次バイトアドレスをラップ・アラウンド方
式でインクリメントしてバイトアドレスr4J、r5J
、r6Jを出力した後はバイトアドレス「7」より後の
バイトアドレスを順次インクリメントして出力するよう
に111 allされる。第3図のデータの場合で第2
の更新順序を選択すれば、加韓回路35はバイトアドレ
ス「7」をアクセスすると順次バイトアドレスをラップ
・アラウンド方式でインクリメントしてバイトアドレス
r4J、r5J、r6Jを出力した後はバイトアドレス
「7」に「4」を加算しこの「4」を加算されたバイト
アドレス(rBJ)をラップ・アラウンド方式でインク
リントしてバイトアドレスr8J、r9J、rAJを出
力するといった動作を繰り返すように制御される。更に
、第3図のデータの場合で第3の更新順序を選択すれば
、加算回路35はバイトアドレス「7」をアクセスする
と順次バイトアドレスをインクリメントしてバイトアド
レスr8J、r9J、rAJ’、・・・を出力するよう
に制御される。
For example, in the case of the data in FIG. 3, if the first update order is selected, the adder circuit 35 increments the byte addresses in a wrap-around manner when byte address "7" is accessed, and increments the byte addresses r4J, r5J.
, r6J, 111 all is performed so that the byte addresses after byte address "7" are sequentially incremented and output. In the case of the data in Figure 3, the second
If the update order is selected, when the byte address "7" is accessed, the Korean circuit 35 sequentially increments the byte address in a wrap-around manner and outputs the byte addresses r4J, r5J, and r6J, and then outputs the byte address "7". It is controlled to repeat the operation of adding "4" to "4" and incrementing the byte address (rBJ) to which "4" has been added in a wrap-around manner to output byte addresses r8J, r9J, and rAJ. Furthermore, if the third update order is selected in the case of the data in FIG. 3, when the adder circuit 35 accesses byte address "7", it sequentially increments the byte addresses and writes byte addresses r8J, r9J, rAJ', . . .・It is controlled to output.

マルチプレクサ34は、記憶制御部12からのアクセス
・アドレス中の下位4ビット及び加算回路35の4ビッ
ト出力とを供給されている。このマルチプレクサ34は
、ポートサイズが8ビット幅の場合は最初のバイトのア
クセス時(16ビット幅の場合は最初の2バイトのアク
セス時、32ビット幅の場合は最初のワードのアクセス
時)には記憶制御部12からのアクセス・アドレス中の
下位4ビットを選択出力し、以後は加算回路35の4ビ
ット出力を選択出力する。
The multiplexer 34 is supplied with the lower 4 bits of the access address from the storage control unit 12 and the 4-bit output of the adder circuit 35. This multiplexer 34 is used when accessing the first byte when the port size is 8 bits wide (when accessing the first 2 bytes when the port size is 16 bits wide, and when accessing the first word when the port size is 32 bits wide). The lower 4 bits of the access address from the storage control unit 12 are selectively output, and thereafter the 4-bit output of the adder circuit 35 is selectively output.

加算回路35の4ビット出力及び記憶制御部12からの
アクセス・アドレス中上位28ビットは夫々ラッチ回路
36を介して32ビットのアドレスとして入出力制御部
13より出力される。なお、加算回路35の4ビット出
力は記憶制御部12内のキャッシュ・メモリ14.15
にも供給され、これらキャッシュ・メモリ14.15に
対するライト動作時に使用される。
The 4-bit output of the adder circuit 35 and the upper 28 bits of the access address from the storage controller 12 are output from the input/output controller 13 as a 32-bit address via the latch circuit 36, respectively. Note that the 4-bit output of the adder circuit 35 is stored in the cache memory 14.15 in the storage control unit 12.
It is also supplied to the cache memories 14 and 15 and used during write operations to these cache memories 14 and 15.

以上の説明では、本発明をROM2からキャッシュ・メ
モリ4へのブロック・インに適用した場合について述べ
たが、これに限ることはなく、他のメモリなどの装置か
らのブロック・インにも適用可能であることは言うまで
もない。
In the above explanation, the present invention is applied to block input from ROM 2 to cache memory 4, but the present invention is not limited to this, and can also be applied to block input from other devices such as memory. Needless to say, it is.

〔発明の効果〕〔Effect of the invention〕

本発明によれば、ダイナミック・バスサイジングを用い
ているのでデータプロセッサ内のマイクロプロセッサと
異なるポートサイズを有するメモリなどの装置よりのデ
ータがデータバスを介してマイクロプロセッサ内のキャ
ッシュ・メモリに転送(ブロック・イン)可能となり、
又、ブロックφイン・アクセスを行なう際に装置のポー
トサイズに応じてアクセス・アドレスの更新順序を切換
えているのでデータプロセッサ内でマイクロプロセッサ
と異なるポートサイズの装置の使用が可能となり1.ポ
ートサイズによらず、かつ、得ようとするデータがワー
ドバウンダリにまたがって存在していても、常にデータ
の必要部分から先にアクセスすることができる。
According to the present invention, since dynamic bus sizing is used, data from a device such as a memory having a port size different from that of the microprocessor in the data processor is transferred to the cache memory in the microprocessor via the data bus ( block-in) is now possible,
Furthermore, when performing a block φ-in access, the update order of access addresses is switched according to the port size of the device, so devices with port sizes different from the microprocessor can be used within the data processor.1. Regardless of the port size and even if the data to be obtained exists across word boundaries, the necessary part of the data can always be accessed first.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明になるブロック・イン方式の一実施例を
適用し得るデータプロセッサの構成を示す図、 第2図はアクセス・アドレスの1ブロックの構成を示す
図、 第3〜5図は夫々アクセス・アドレスの更新順序の第1
〜3実施例を説明するための図、第6〜8図は夫々アク
セス・アドレスの更新順序の第4〜6実施例を説明する
ための図、第9〜11図は夫々アクセス・アドレスの更
新順序の第7実施例を説明するための図、第12図はマ
イクロプロセッサの要部の一実施例を示すブロック図、 第13図は第12図中の入出力制御部の一実施例を示す
ブロック図、 第14図は従来のデータプロセッサの構成を示すブロッ
ク図、 第15図はデータプロセッサ内のROMによる11Jt
Eを説明するための図である。 第1図、第12図、第13図において、1はマイクロプ
ロセッサ、 2はROM。 3はバス、 4はキャッシュ・メモリ、 11は演篩制師部、 12は記憶制御部、 13は入出力制御11部、 14は命令キャッシュ・メモリ、 15はオペランドキャッシュ・メモリ、16は命令TL
B。 17はオペランドTLB。 18はシフタ・マトリックス回路、 19はダイナミック・バスサイジング回路、20はアド
レス・インクリメンタ、 25はマトリックス制御回路、 26.27はセレクタ、 28.29.33.36はラッチ回路、30はバイト・
マーク生成回路、 31はバイト・マーク更新回路、 32.34はマルチプレクサ、 35は加算回路、 53はRAM。 54は周辺回路、 55は入出力&Ij日回路、 56はディスクである。 第i図 了2セス・アドレス/)7ブb、7の       了
2せス・アドレスの*mH立構戚を需オ図      
    吻耳す(目薬2図      第3図 第4図      第5図 第6図      嘉7図 第8図      第9図 第10図       第1図 マaP)o 10セ−y+n9−’JF)プローv;4
1第12図 赴のデー970セ・Y−ワ・^刊1〈亡木オブ℃・ν2
冴1第14図 プゝP7υセヅ寸↑qのQONp=よ3判御寂事ン四」
する司第15図
FIG. 1 is a diagram showing the configuration of a data processor to which an embodiment of the block-in method according to the present invention can be applied. FIG. 2 is a diagram showing the configuration of one block of access addresses. The first in the update order of the access address
- Figures 6 to 8 are diagrams for explaining the access address update order in the fourth to sixth embodiments, and Figures 9 to 11 are diagrams for explaining the access address update order, respectively. A diagram for explaining the seventh embodiment of the sequence, FIG. 12 is a block diagram showing an embodiment of the main part of the microprocessor, and FIG. 13 shows an embodiment of the input/output control section in FIG. 12. Block diagram: Figure 14 is a block diagram showing the configuration of a conventional data processor; Figure 15 is an 11Jt block diagram using the ROM in the data processor.
FIG. In FIGS. 1, 12, and 13, 1 is a microprocessor, and 2 is a ROM. 3 is a bus, 4 is a cache memory, 11 is a sieve control phloem, 12 is a storage control section, 13 is an input/output control section 11, 14 is an instruction cache memory, 15 is an operand cache memory, 16 is an instruction TL
B. 17 is the operand TLB. 18 is a shifter matrix circuit, 19 is a dynamic bus sizing circuit, 20 is an address incrementer, 25 is a matrix control circuit, 26.27 is a selector, 28.29.33.36 is a latch circuit, 30 is a byte
31 is a byte mark update circuit; 32, 34 is a multiplexer; 35 is an adder circuit; 53 is a RAM. 54 is a peripheral circuit, 55 is an input/output & IJ circuit, and 56 is a disk. Figure i shows the *mH structure of the 2nd address of 7b, 7th address.
Nose and ears (Eyedrops 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 1 MaaP)o 10Se-y+n9-'JF) Plow v;4
1 Figure 12 Day of departure 970 CE Y-wa ^ publication 1〈Lost tree ob ℃ ν2
Sae 1 Figure 14 puゝP7υsezu size ↑q's QONp = Yo 3 Han Gojijiji 4''
Tsukasa Figure 15

Claims (8)

【特許請求の範囲】[Claims] (1)互いにデータバスにより接続されているメモリ装
置と内部にキャッシュ・メモリを有するマイクロプロセ
ッサとよりなるデータプロセッサにおけるブロック・イ
ン方式において、 該メモリ装置のポートサイズ応じて該メモリ装置のアク
セス・アドレスの更新順序を切換え、該データバス上の
データを該ポートサイズに応じてシフトするダイナミッ
ク・バスサイジングを行ない、 予め定められた一定長のブロック・データを該メモリ装
置より該キャッシュ・メモリへ転送することを特徴とす
るブロック・イン方式。
(1) In a block-in method in a data processor consisting of a memory device and a microprocessor having an internal cache memory that are connected to each other by a data bus, the access address of the memory device is determined according to the port size of the memory device. Dynamic bus sizing is performed in which the data on the data bus is shifted according to the port size, and a predetermined block of data of a certain length is transferred from the memory device to the cache memory. The block-in method is characterized by:
(2)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが8ビッ
ト幅であると、前記キャッシュ・メモリへ転送するデー
タの1ブロックが16バイトで構成されその1ブロック
内の4バイトよりなるデータワードをアクセスする際に
アクセス・アドレスの更新順序は、先ず指定バイトアド
レスの1バイトを該メモリ装置から読み、この指定バイ
トが存在するワード内でこの指定バイトより後のワード
内データがあればそれをワード内最下位バイトまで読み
、この指定バイトが存在するワード内でこの指定バイト
より前のワード内データがあればそれをワード内最上位
バイトから読み、この指定バイトが存在するワードの次
のワード内データを最上位バイトから順に読み、ブロッ
ク最上位バイトをアクセスしていなければこのブロック
最上位バイトの存在するワードを含め指定バイトの存在
するワードの前のワードまで各バイトを順に読むように
切換えることを特徴とする特許請求の範囲第1項記載の
ブロック・イン方式。
(2) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 8 bits wide, one block of data to be transferred to the cache memory consists of 16 bytes; When accessing a data word consisting of 4 bytes within the memory device, the order of updating the access address is to first read one byte at the specified byte address from the memory device, and then read the byte after this specified byte in the word in which this specified byte exists. If there is data in the word, it is read up to the least significant byte in the word, and if there is data in the word before this specified byte in the word where this specified byte exists, it is read from the most significant byte in the word, and this specified byte is read. Read the data in the word next to the word where the block exists, starting from the most significant byte, and if the most significant byte of the block is not accessed, read up to the word before the word where the specified byte exists, including the word where the most significant byte of this block exists. A block-in method according to claim 1, characterized in that each byte is switched to be read in sequence.
(3)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが8ビッ
ト幅であると、前記キャッシュ・メモリへ転送するデー
タの1ブロックが16バイトで構成されその1ブロック
内の4バイトよりなるデータワードをアクセスする際に
アクセス・アドレスの更新順序は、先ず指定バイトアド
レスの1バイトを該メモリ装置から読み、この指定バイ
トが存在するワード内でこの指定バイトより後のワード
内データがあればそれをワード内最下位バイトまで読み
、この指定バイトが存在するワード内でこの指定バイト
より前のワード内データがあればそれをワード内最上位
バイトから読み、指定バイトアドレスに「4」を加算し
たバイトアドレスの1バイトを読み、この「4」を加算
したバイトアドレスのバイトより後のワード内データが
あればそれをワード内最下位バイトまで読み、この「4
」を加算したバイトアドレスのバイトより前のワード内
データがあればそれをワード内最上位バイトから読み、
この「4」を加算したバイトアドレスに更に「4」を加
算したバイトアドレスのバイトの存在するワード内デー
タを同様な順序で読むことを指定バイトの存在するワー
ドの前のワードまで繰り返すように切換えることを特徴
とする特許請求の範囲第1項記載のブロック・イン方式
(3) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 8 bits wide, one block of data to be transferred to the cache memory consists of 16 bytes; When accessing a data word consisting of 4 bytes within the memory device, the order of updating the access address is to first read one byte at the specified byte address from the memory device, and then read the byte after this specified byte in the word in which this specified byte exists. If there is data in the word, it is read up to the least significant byte in the word, and if there is data in the word before this specified byte in the word where this specified byte exists, it is read from the most significant byte in the word, and the specified byte address is read. Read one byte of the byte address obtained by adding "4" to the byte address, and if there is data in the word after the byte of the byte address to which this "4" is added, read it to the lowest byte in the word, and read this "4"
If there is data in the word before the byte at the byte address that has been added, read it from the most significant byte in the word,
The data in the word containing the byte of the byte address obtained by adding "4" to the byte address obtained by adding "4" is read in the same order, and the process is repeated to the word before the word containing the specified byte. A block-in method according to claim 1, characterized in that:
(4)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが8ビッ
ト幅であると、前記キャッシュ、メモリへ転送するデー
タの1ブロックが16バイトで構成されその1ブロック
内の4バイトよりなるデータワードをアクセスする際に
アクセス・アドレスの更新順序は、先ず指定バイトアド
レスの1バイトを該メモリ装置から読み、以後指定バイ
トアドレスを順次インクリメントしてこの指定バイトの
前のバイトまで各バイトを順に読むように切換えること
を特徴とする特許請求の範囲第1項記載のブロック・イ
ン方式。
(4) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 8 bits wide, one block of data to be transferred to the cache or memory consists of 16 bytes; When accessing a data word consisting of 4 bytes, the access address is updated in the following order: First, one byte of the specified byte address is read from the memory device, and then the specified byte address is sequentially incremented to read the previous byte of the specified byte. A block-in method according to claim 1, characterized in that the block-in method switches to sequentially read each byte up to a byte.
(5)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが16ビ
ット幅であると、前記キャッシュ・メモリへ転送するデ
ータの1ブロックが16バイトで構成されその1ブロッ
ク内の4バイトよりなるデータワードをアクセスする際
にアクセス・アドレスの更新順序は、先ず指定バイトア
ドレスの1バイトがそのバイトが存在するワード内の上
位2バイトに存在すれば上位2バイトを読んでから下位
2バイトを該メモリ装置から読みワード内の下位2バイ
トに存在すれば下位2バイトを読んでから上位2バイト
を読み、この指定バイトが存在するワードの次のワード
内のデータを上位2バイトから順に読み、ブロック最上
位2バイトをアクセスしていなければこのブロック最上
位2バイトの存在するワードを含め指定バイトの存在す
るワードの前のワードまで各2バイトを順に読むように
切換えることを特徴とする特許請求の範囲第1項記載の
ブロック・イン方式。
(5) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 16 bits wide, one block of data to be transferred to the cache memory consists of 16 bytes; When accessing a data word consisting of 4 bytes, the access address is updated in the following order: first, if a byte of the specified byte address exists in the upper 2 bytes of the word in which that byte exists, read the upper 2 bytes; Read the lower 2 bytes from the memory device, if it exists in the lower 2 bytes of the word, read the lower 2 bytes, then read the upper 2 bytes, and read the data in the word next to the word in which this specified byte exists. Read bytes in order, and if the most significant 2 bytes of the block are not accessed, switch to read each 2 bytes in order, including the word in which the most significant 2 bytes of this block exist, up to the word before the word in which the specified byte exists. A block-in method according to claim 1, characterized in that:
(6)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが16ビ
ット幅であると、前記キャッシュ・メモリへ転送するデ
ータの1ブロックが16バイトで構成されその1ブロッ
ク内の4バイトよりなるデータワードをアクセスする際
にアクセス・アドレスの更新順序は、先ず指定バイトア
ドレスの1バイトがそのバイトが存在するワード内の上
位2バイトに存在すれば上位2バイトを読んでから下位
2バイトを該メモリ装置から読みワード内の下位2バイ
トに存在すれば下位2バイトを読んでから上位2バイト
を読み、指定バイトアドレスに「4」を加算したバイト
アドレスの1バイトがそのバイトが存在するワード内の
上位2バイトに存在すれば上位2バイトを読んでから下
位2バイトを読みワード内の下位2バイトに存在すれば
下位2バイトを読んでから上位2バイトを読み、この「
4」を加算したバイトアドレスに更に「4」を加算した
バイトアドレスのバイトの存在するワード内データを同
様な順序で読むことを指定バイトの存在するワードの前
のワードまで繰り返すように切換えることを特徴とする
特許請求の範囲第1項記載のブロック・イン方式。
(6) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 16 bits wide, one block of data to be transferred to the cache memory is composed of 16 bytes; When accessing a data word consisting of 4 bytes, the access address is updated in the following order: first, if a byte of the specified byte address exists in the upper 2 bytes of the word in which that byte exists, read the upper 2 bytes; Read the lower 2 bytes from the memory device, and if it exists in the lower 2 bytes of the word, read the lower 2 bytes, then read the upper 2 bytes, and the 1 byte at the byte address obtained by adding "4" to the specified byte address is If the byte exists in the upper 2 bytes of the word, read the upper 2 bytes, then read the lower 2 bytes. If the byte exists in the lower 2 bytes of the word, read the lower 2 bytes, then read the upper 2 bytes, and then "
The data in the word containing the byte of the byte address obtained by adding "4" to the byte address obtained by adding "4" is read in the same order until the word before the word containing the specified byte is switched. A block-in method according to claim 1, characterized in that:
(7)前記マイクロプロセッサのポートサイズが32ビ
ット幅であり、前記メモリ装置のポートサイズが16ビ
ット幅であると、前記キャッシュ・メモリへ転送するデ
ータの1ブロックが16バイトで構成されその1ブロッ
ク内の4バイトよりなるデータワードをアクセスする際
にアクセス・アドレスの更新順序は、先ず指定バイトア
ドレスの1バイトがそのバイトが存在するワード内の上
位2バイトに存在すれば上位2バイトを該メモリ装置か
ら読みワード内の下位2バイトに存在すれば下位2バイ
トを読み、以後指定バイトへ含まれる上位又は下位2バ
イトのバイトアドレスに「2」を順次加算して指定バイ
トの含まれる上位又は下位2バイトの前の2バイトまで
各2バイトを順に読むように切換えることを特徴とする
特許請求の範囲第1項記載のブロック・イン方式。
(7) If the port size of the microprocessor is 32 bits wide and the port size of the memory device is 16 bits wide, one block of data to be transferred to the cache memory consists of 16 bytes; When accessing a data word consisting of 4 bytes, the access address is updated in the following order: First, if a byte of the specified byte address exists in the upper 2 bytes of the word in which that byte exists, the upper 2 bytes are moved to the memory. If it exists in the lower 2 bytes of the read word from the device, read the lower 2 bytes, and then sequentially add "2" to the byte address of the upper or lower 2 bytes included in the specified byte to determine the upper or lower address of the specified byte. 2. The block-in method according to claim 1, wherein the block-in method is switched to sequentially read each 2 bytes up to the 2 bytes before the 2 bytes.
(8)前記マイクロプロセッサのポートサイズ及び前記
メモリ装置のポートサイズが夫々32ビット幅であると
、前記キャッシュ・メモリへ転送するデータの1ブロッ
クが16バイトで構成されその1ブロック内の4バイト
よりなるデータワードをアクセスする際にアクセス・ア
ドレスの更新順序は先ず指定バイトアドレスの1バイト
が存在するワードを読み、以後次のワードを指定バイト
が存在するワードの前のワードまで順に読むように切換
えることを特徴とする特許請求の範囲第1項記載のブロ
ック・イン方式。
(8) If the port size of the microprocessor and the port size of the memory device are each 32 bits wide, one block of data to be transferred to the cache memory consists of 16 bytes, and 4 bytes in that one block When accessing a data word, the update order of the access address is changed so that the word containing one byte of the specified byte address is read first, and then the next word is read sequentially up to the word before the word containing the specified byte. A block-in method according to claim 1, characterized in that:
JP62144252A 1987-06-10 1987-06-10 Block-in system Pending JPS63308653A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62144252A JPS63308653A (en) 1987-06-10 1987-06-10 Block-in system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62144252A JPS63308653A (en) 1987-06-10 1987-06-10 Block-in system

Publications (1)

Publication Number Publication Date
JPS63308653A true JPS63308653A (en) 1988-12-16

Family

ID=15357774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62144252A Pending JPS63308653A (en) 1987-06-10 1987-06-10 Block-in system

Country Status (1)

Country Link
JP (1) JPS63308653A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581128A (en) * 1990-10-26 1993-04-02 Internatl Business Mach Corp <Ibm> Method and device for keeping maintainability of cash

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581128A (en) * 1990-10-26 1993-04-02 Internatl Business Mach Corp <Ibm> Method and device for keeping maintainability of cash

Similar Documents

Publication Publication Date Title
KR960001273B1 (en) Single chip microcomputer
US5239642A (en) Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
US5809274A (en) Purge control for ON-chip cache memory
US6058474A (en) Method and apparatus for DMA boot loading a microprocessor without an internal ROM
US7430631B2 (en) Access to a wide memory
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
JP3612186B2 (en) Data processing device
CA2275172C (en) Eight-bit microcontroller having a risc architecture
US20080270707A1 (en) Data processor
JP4226085B2 (en) Microprocessor and multiprocessor system
JPH05173837A (en) Data processing system wherein static masking and dynamic masking of information in operand are both provided
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
US6898690B2 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
JP3971535B2 (en) SIMD type processor
US5696957A (en) Integrated circuit comprising a central processing unit for executing a plurality of programs
US5206945A (en) Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
JPS63308653A (en) Block-in system
KR100309864B1 (en) Low-latency cache design
GB2366426A (en) Multi-processor system with registers having a common address map
JP3206960B2 (en) Extended central processing unit
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JP2568017B2 (en) Microprocessor and data processing system using the same
JP2522063B2 (en) Single-chip micro computer
JPH023821A (en) High speed arithmetic unit
JPH05165641A (en) Single chip microcomputer