JPH01150951A - Memory access method - Google Patents
Memory access methodInfo
- Publication number
- JPH01150951A JPH01150951A JP31018187A JP31018187A JPH01150951A JP H01150951 A JPH01150951 A JP H01150951A JP 31018187 A JP31018187 A JP 31018187A JP 31018187 A JP31018187 A JP 31018187A JP H01150951 A JPH01150951 A JP H01150951A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- register
- memory
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Abstract
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明はデータ処理装置に関し、特にリクエスト要求元
とメモリ制御装置とメモリ装置を含むデータ処理装置に
関する。DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a data processing device, and more particularly to a data processing device including a request source, a memory control device, and a memory device.
(従来の技術)
従来、この種のデータ処理装置では、演算制御装置等の
リクエスト要求元が、メモリ上の連続するデータを一括
して得ようとする場合には、ブロックデータ転送要求(
ブロックロードリクエストとも言う。)をもって行なっ
ていた。(Prior Art) Conventionally, in this type of data processing device, when a request source such as an arithmetic and control unit wishes to obtain continuous data on a memory all at once, a block data transfer request (
Also called a block load request. ).
この場合、リクエスト要求元は、必要とするメモリデー
タの先頭アドレスと共に、ブロックロードリクエストを
メモリ制御装置に送出する。メモリ制御装置はアクセス
されたブロックデータをメモリ装置より読出して複数区
分に分割し、アクセスされたアドレス上の転送区分デー
タを先頭として、複数回に分けてブロックデータの転送
を行なう。例えば1ブロツクデータが64バイトである
場合は、第2図でボされるように、この64バイトのブ
ロックデータがリクエスト要求元とメモリ制御装置の間
のデータ転送幅で定まるデータ長、この場合は8バイト
ごとに区分され、8回に分けてブロックデータが転送さ
れる。ここで第2図のようにブロック境界の先頭から順
に8バイトデータ毎にアドレス増加方向にワード番号を
付加し、リクエスト要求元が要求したメモリデータの先
頭アドレスがワード番号4を示していたとすると、該当
ブロックデータのリクエスト要求元への転送順序はワー
ド番号4−ワード番号5−ワード番号6−ワード番号7
−ワード番号0−ワード番号1−ワード番号2−ワード
番号3となる。In this case, the request source sends a block load request to the memory control device along with the start address of the required memory data. The memory control device reads the accessed block data from the memory device, divides it into a plurality of sections, and transfers the block data in a plurality of times, starting with the transfer section data at the accessed address. For example, if one block of data is 64 bytes, as shown in Figure 2, this 64-byte block data is the data length determined by the data transfer width between the request source and the memory control device, in this case. Block data is divided into 8 bytes and transferred 8 times. Here, if a word number is added in the increasing address direction for every 8-byte data from the beginning of the block boundary as shown in FIG. 2, and the beginning address of the memory data requested by the request source indicates word number 4, The order in which the corresponding block data is transferred to the request source is word number 4 - word number 5 - word number 6 - word number 7.
- Word number 0 - Word number 1 - Word number 2 - Word number 3.
上述した従来のデータ処理装置は、例えばリクエスト要
求元である演算制御装置が必要とするエレメントデータ
が第2図で示されるようにブロック境界の途中から次の
ブロック境界の途中までの、ワード番号4からワード番
号13までに連続して配列されている場合には、ブロッ
クロードリクエストによって、必要とするデータを一括
して得ることは不可能である。即ち、ワード番号4に対
するアドレスでブロックロードリクエストを送出した場
合には、必要とするワード番号4からワード番号7まで
のエレメントデータの他に不要データであるワード番号
0からワード゛番号3までのデータも転送されてしまう
。さらに、残りのエレメントデータを得るために、ワー
ド番号8に対するアドレスでブロックロードリクエスト
を送出した場合には、必要とするワード番号8からワー
ド番号13までのエレメントデータの他に不要データで
あるワード番号14とワード番号15のデータも転送さ
れてしまう。そのためにリクエスト要求元である演算制
御装置内で必要データと不要データを選択するための処
理や、不要データをメモリ装置から読出して転送するた
めのリクエスト処理の遅れ等が生じてしまう。したがっ
て、リクエスト要求元では、ブロックロードリクエスト
でのデータフェッチを諦め、8バイト毎に遂次アドレス
計算を行ない該当個数分のリクエストを送出しなければ
ならなかった。また、リクエスト要求元が必要とする連
続データが1ブロツク境界内に閉じている場合でも、そ
の先端のアドレスと終端のアドレスがブロック境界に一
致していなければ、上述と同様な問題が生じてしまう。In the conventional data processing device described above, for example, the element data required by the arithmetic control unit that is the request source is stored in word number 4 from the middle of a block boundary to the middle of the next block boundary, as shown in FIG. If the data is consecutively arranged from word number 13 to word number 13, it is impossible to obtain the required data all at once by a block load request. That is, when a block load request is sent with an address for word number 4, in addition to the necessary element data from word number 4 to word number 7, unnecessary data from word number 0 to word number 3 is sent. will also be transferred. Furthermore, in order to obtain the remaining element data, if a block load request is sent with the address for word number 8, in addition to the element data from word number 8 to word number 13 that is needed, word number 14 and word number 15 are also transferred. This results in delays in processing for selecting necessary data and unnecessary data within the arithmetic and control unit that is the request source, and in request processing for reading and transferring unnecessary data from the memory device. Therefore, the request source had to give up on fetching data in block load requests, sequentially calculate addresses every 8 bytes, and send out the corresponding number of requests. Furthermore, even if the continuous data required by the request source is confined within one block boundary, the same problem as described above will occur if the leading and ending addresses do not match the block boundary. .
即ちデータがメモリ上に連続に配列されている場合でも
該当データが完全にブロック境界に一致している場合の
みにしかブロックロードリクエストによりてデータを効
率よく一括フエッチできない。That is, even if the data is arranged continuously on the memory, it is only possible to efficiently fetch the data all at once using a block load request only when the data completely coincides with the block boundary.
本発明のメモリアクセス方法は、リクエスト要求元は、
メモリ装置上の連続するデータを一括して得ようとする
場合、メモリデータ要求と当該データ群の先頭データの
アドレスとデータ転送回数をメモリ制御装置に対して指
示し、メモリ制御装置は、リクエスト要求元から指示さ
れた先頭アドレスに対応する転送区分データから連続す
る前記指示されたデータ転送回数分の転送区分データを
読出して、リクエスト要求元に転送する。In the memory access method of the present invention, the request source is
When attempting to obtain continuous data on a memory device all at once, a memory data request, the address of the first data in the data group, and the number of data transfers are instructed to the memory control device, and the memory control device receives the request. Transfer classification data corresponding to the originally designated start address is read out for the number of consecutive data transfers specified above, and transferred to the request source.
(作 用〕
したがって、リクエスト要求元は所望するデータの先端
および終端のアドレス位置等を特に気にすることなしに
、所望するデータのみを一括して高速に得ることが可能
となる。(Function) Therefore, the request source can obtain only the desired data at once and at high speed without worrying about the address positions of the beginning and end of the desired data.
次に、本発明の実施例について図面を参照して説明する
。Next, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明のメモリアクセス方法が適用されたデー
タ処理装置の一実施例のブロック図である。FIG. 1 is a block diagram of an embodiment of a data processing device to which the memory access method of the present invention is applied.
本実施例のデータ処理装置は、リクエスト要求元である
演算制御装置1とメモリ制御装置2とメモリ装置3とか
らなる。リクエスト要求元としては本実施例のように演
算制御装置1以外にメモリ装置3からデータを読出す必
要のある装置、たとえば入出力装置などであってもよい
。メモリ装置3は、主メモリ装置であっても、また主メ
モリ装置の記憶するデータの一部を保持するバッファメ
モリであってもよい。演算制御装置1とメモリ制御装置
2とメモリ装置3との各装置間のデータ転送幅は8バイ
トであるとし、メモリのブロック境界は64バイト境界
であるとする。The data processing device of this embodiment includes an arithmetic control device 1 that is a request source, a memory control device 2, and a memory device 3. The request source may be a device that needs to read data from the memory device 3, such as an input/output device, in addition to the arithmetic control device 1 as in this embodiment. The memory device 3 may be a main memory device or a buffer memory that holds part of the data stored in the main memory device. It is assumed that the data transfer width between the arithmetic control unit 1, memory control unit 2, and memory device 3 is 8 bytes, and the memory block boundary is a 64-byte boundary.
まず、演算制御装置1の構成を説明する。アドレスレジ
スタ10は、演算制御装置1でデータフェッチ動作が開
始されると、エレメントデータの先頭データのアドレス
がセットされる。リクエスト種レジスタ12は、演算制
御装置1で用いられる各種のリクエスト、例えば8Bの
ロード/ストアやブロックロード等のリクエストタイプ
を保持するレジスタである。本実施例ではオペランド連
続取出し指示のリクエストが設定される。リクエスト種
レジスタ12にセットされたリクエストタイプはエンコ
ーダ16でリクエストコードに変換されて、リクエスト
コードレジスタ15にセットされる。First, the configuration of the arithmetic and control device 1 will be explained. The address register 10 is set with the address of the first data of the element data when the arithmetic and control unit 1 starts a data fetch operation. The request type register 12 is a register that holds various requests used by the arithmetic control device 1, such as request types such as 8B load/store and block load. In this embodiment, a request for instructing continuous fetching of operands is set. The request type set in the request type register 12 is converted into a request code by the encoder 16 and set in the request code register 15.
エレメント数レジスタ11には、演算制御装置1がデー
タをフェッチすべきエレメント数の初期値がセットされ
る。加算器19はエレメント数レジスタ11にセットさ
れているエレメント数から値「8」を減算し、残りのエ
レメント数を求める。加算器17はアドレスレジスタ1
0のアドレスに値「64」を加算し、新たに連続する次
にフェッチすべきオペランドの先頭アドレスを求める。The element number register 11 is set with an initial value of the number of elements from which the arithmetic control unit 1 should fetch data. Adder 19 subtracts the value "8" from the number of elements set in element number register 11 to obtain the remaining number of elements. Adder 17 is address register 1
The value "64" is added to the address of 0 to find the start address of the next consecutive operand to be fetched.
比較器18はエレメント数レジスタ11にセットされて
いるエレメント数を値「8」と比較し、値「8」より大
きければ論理”l”を出力する。比較器18から”1”
が出力されると、アドレスレジスタ10のアドレスがア
ドレス送出レジスタ13にセットされる。セレクタ32
は比較器18から“1”が出力されると、加算器17の
出力をアドレスレジスタ10にセットする。セレクタ3
3は比較器18から”l”が出力されると加算器19の
出力をエレメント数レジスタ11にセットする。セレク
タ34は比較器18から1”が出力されると、値「8」
を選択し、また比較器18がら“0“が出力されるとエ
レメント数レジスタ11のエレメント数を転送回数送出
レジスタ14にセットする。データ受レジスタ31はメ
モリ制御装置2から転送されたデータを保持する。The comparator 18 compares the number of elements set in the element number register 11 with the value "8", and outputs logic "1" if the number is greater than the value "8". "1" from comparator 18
When the is output, the address of the address register 10 is set in the address sending register 13. selector 32
When “1” is output from the comparator 18, the output from the adder 17 is set in the address register 10. selector 3
3 sets the output of the adder 19 in the element number register 11 when "l" is output from the comparator 18. When the comparator 18 outputs “1”, the selector 34 takes the value “8”.
is selected, and when "0" is output from the comparator 18, the number of elements in the element number register 11 is set in the transfer number sending register 14. The data receiving register 31 holds data transferred from the memory control device 2.
次に、メモリ制御装置2の構成を説明する。Next, the configuration of the memory control device 2 will be explained.
メモリ制御装置2がメモリリクエスト受付可能状態にな
ると、アドレス送出レジスタ13から送出されたアドレ
スはその下位6ビツト(ブロック境界内のアドレスを表
わす)がセレクタ36を通してアドレスレジスタ21に
セットされ、残りの上位のアドレスがセレクタ35を通
してアドレスレジスタ20にセットされる。また、転送
回数レジスタ22にはセレクタ37を通して転送回数送
出レジスタ14がら送出された転送回数がセットされる
。この転送回数送出レジスタ14にセットされた転送回
数はメモリ装置3から1つのエレメントデータが読出さ
れる毎にマイナス1回路27により「1」減算されてセ
レクタ37を通して転送回数レジスタ22にセットされ
る。オア回路29はマイナス1回路27の全ビットの論
理和をとり、転送回数がrQJになったかどうかを検出
する。デコーダ24は、リクエストコードレジスタ15
の内容をデコードしオペランド連続取出し指示のリクエ
ストがデコードされると、オペランド連続取出指示レジ
スタ23に論理”1”を設定し、以後本リクエストの動
作が終了するまで論理”1”を保持する。加算器25は
アドレスレジスタ21のアドレスに値「8」を加算し、
ブロック内アドレスを更新する。プラス1回路26はア
ドレスレジスタ20のアドレスをプラス1する。When the memory control device 2 becomes ready to accept memory requests, the lower 6 bits of the address sent from the address sending register 13 (representing an address within the block boundary) are set in the address register 21 through the selector 36, and the remaining upper bits are set in the address register 21. The address is set in the address register 20 through the selector 35. Further, the number of transfers sent out from the transfer number sending register 14 through the selector 37 is set in the transfer number register 22 . The number of transfers set in the transfer number sending register 14 is subtracted by "1" by the minus one circuit 27 every time one element data is read from the memory device 3, and is set in the transfer number register 22 through the selector 37. The OR circuit 29 performs the logical sum of all the bits of the minus one circuit 27, and detects whether the number of transfers has reached rQJ. The decoder 24 includes the request code register 15
When the contents of is decoded and the request for instructing continuous operand retrieval is decoded, logic "1" is set in the continuous operand retrieval instructing register 23, and the logic "1" is held thereafter until the operation of this request is completed. The adder 25 adds the value "8" to the address of the address register 21,
Update the address within the block. The plus one circuit 26 adds one to the address of the address register 20.
セレクタ36はオア回路29の出力が“l”のときは加
算器25の出力を選択し、オア回路29の出力か”0”
になるとアドレス送出レジスタ13から転送されたアド
レスの下位6ビツトを選択し、アドレスレジスタ21に
セットする。アンド回路28はオペランド連続取出指示
レジスタ23に論理”l”が設定され、オア回路29の
出力が”l”で、かつ加算器25からキャリが出力され
たとき“l”を出力する。セレクタ35はアンド回路2
8の出力が”0”のときアドレス送出レジスタ13から
送出されたアドレスを選択し、”l”のときプラス1回
路26の出力を選択する。加算器25でキャリイが出力
されたときにはセレクタ35で選択されたアドレスがア
ドレスレジスタ20にセットされる。セレクタ37はオ
ア回路29の出力が”l”のときマイナス1回路27の
出力を選択し、“0”になると転送回数送出レジスタ1
4から転送された転送回数を選択し、転送回数レジスタ
22にセットする。データレジスタ30にはメモリ装置
3から読出されたデータがセットされる。The selector 36 selects the output of the adder 25 when the output of the OR circuit 29 is "L", and selects the output of the OR circuit 29 or "0".
When this happens, the lower 6 bits of the address transferred from the address sending register 13 are selected and set in the address register 21. The AND circuit 28 outputs "l" when the operand continuous extraction instruction register 23 is set to logic "l", the output of the OR circuit 29 is "l", and the adder 25 outputs a carry. Selector 35 is AND circuit 2
When the output of 8 is "0", the address sent from the address sending register 13 is selected, and when it is "1", the output of the plus 1 circuit 26 is selected. When the adder 25 outputs a carry, the address selected by the selector 35 is set in the address register 20. The selector 37 selects the output of the minus 1 circuit 27 when the output of the OR circuit 29 is "L", and selects the output of the minus 1 circuit 27 when the output of the OR circuit 29 is "0", and selects the output of the transfer count sending register 1 when the output of the OR circuit 29 is "0".
Select the number of transfers from 4 and set it in the transfer number register 22. Data read from the memory device 3 is set in the data register 30.
次に、本実施例の動作を説明する。Next, the operation of this embodiment will be explained.
今、演算制御装置1が第2図のようにワード番号4から
ワード番号13までに連続に配列された工レメントデー
タを処理するためのフェッチ動作について述べる。1エ
レメントデータの大きさは8バイトであり、第2図では
エレメントデータ0からエレメントデータ9までの10
エレメントデータがワード番号4からワード番号13ま
でアドレス増加方向に連続に配列されている。Now, a fetch operation by which the arithmetic and control unit 1 processes the element data consecutively arranged from word number 4 to word number 13 as shown in FIG. 2 will be described. The size of one element data is 8 bytes, and in Figure 2 there are 10 bytes from element data 0 to element data 9.
Element data is continuously arranged from word number 4 to word number 13 in the address increasing direction.
演算制御装置1でデータフェッチ動作が開始されると、
エレメントデータの先頭アドレス、即ちエレメントデー
タ0の位置するワード番号4に対応するアドレスがセレ
クタ32を通してアドレスレジスタlOにセットされる
。また、処理すべきエレメントデータの個数、本実施例
では「lO」がセレクタ33を通してエレメント数レジ
スタ11にセットされる。エレメント数レジスタ11に
セットされたエレメント数は比較器18で値「8」と比
較される。エレメント数が8より大きいと比較器1Bは
論理”l”を送出し、セレクタ32,33.34を操作
して、アドレスレジスタIO、エレメント数レジスタ1
1および転送回数送出レジスタ14の内容の更新および
設定を行なう。即ちアドレスレジスタ10の中のアドレ
スはアドレス送出レジスタ13にセットされると共に、
加算器17で「64」が加算されて、セレクタ32を通
して選択され、新たに連続する次の 、フェッチすべき
オペランドの先頭アドレスとしてアドレスレジスタlO
の内容を更新する。さらに、エレメント数レジスタ11
の値は加算器19で「8」が減算されてセレクタ33を
通して選択され、エレメント数レジスタ11の内容を更
新する。転送回数送出レジスタ14にはセレクタ34を
通して値「8」が選択されて設定される。このことは、
演算制御装置1からメモリ制御装置2に指示される転送
回数の最大値がr8」 (=64バイトデータ)である
ことを示している。ただし、この値はrl (=64
バイト)に固定されるわけではなく、装置固有に任意に
設定可能である。一方、エレメント数が8以下の場合は
比較器18は論理”0”を送出し、アドレスレジスタ1
0の内容はアドレス送出レジスタ13にセットされ、エ
レメント数レジスタ11の内容はセレクタ34を通して
選択されてそのまま転送回数送出レジスタ14にセット
される。そして、アドレスレジスタlOおよびエレメン
ト数レジスタ11のそれぞれは、比較器18の指示によ
って新たなリクエストの受付待状態となる。When the data fetch operation is started in the arithmetic and control unit 1,
The start address of the element data, ie, the address corresponding to word number 4 where element data 0 is located, is set in the address register IO through the selector 32. Further, the number of element data to be processed, "lO" in this embodiment, is set in the element number register 11 through the selector 33. The number of elements set in the element number register 11 is compared with the value "8" by the comparator 18. If the number of elements is greater than 8, the comparator 1B sends out a logic "l", operates the selectors 32, 33, and 34, and selects the address register IO and the element number register 1.
1 and the contents of the transfer count sending register 14 are updated and set. That is, the address in the address register 10 is set in the address sending register 13, and
Adder 17 adds "64", selects it through selector 32, and stores it in address register lO as the start address of the next consecutive operand to be fetched.
Update the contents of. Furthermore, the element number register 11
The adder 19 subtracts "8" from the value and selects it through the selector 33 to update the contents of the element number register 11. The value "8" is selected and set in the transfer count sending register 14 through the selector 34. This means that
This indicates that the maximum number of transfers instructed from the arithmetic control unit 1 to the memory control unit 2 is r8'' (=64 bytes of data). However, this value is rl (=64
It is not fixed to the number of bytes), but can be set arbitrarily depending on the device. On the other hand, if the number of elements is 8 or less, the comparator 18 sends out a logic "0" and the address register 1
The contents of 0 are set in the address sending register 13, and the contents of the element number register 11 are selected through the selector 34 and set as they are in the transfer number sending register 14. Then, each of the address register IO and the element number register 11 enters a state of waiting for a new request according to an instruction from the comparator 18.
本実施例ではエレメント数レジスタ11に設定されるエ
レメント数の初期値は「lO」であり、「8」より大で
ある。したがって、上述したようにアドレスレジスタl
Oの中のアドレスはアドレス送出レジスタ13に設定さ
れると共に、加算器17で「64」が加算され、新たに
連続する次のフェッチすべきオペランドの先頭アドレス
として更新される。また、転送回数送出レジスタ14に
は「8」が設定され、エレメント数レジスタ11の値は
加算器19で「8」が減算された値、即ち「2」に更新
される。In this embodiment, the initial value of the number of elements set in the element number register 11 is "lO", which is greater than "8". Therefore, as mentioned above, the address register l
The address in O is set in the address sending register 13, and "64" is added by the adder 17, and updated as the start address of the next consecutive operand to be fetched. Further, "8" is set in the transfer count sending register 14, and the value of the element number register 11 is updated to the value obtained by subtracting "8" by the adder 19, that is, "2".
メモリ制御装置2がリクエスト受付可能状態になるとア
ドレス送出レジスタ13、転送回数送出レジスタ14お
よびリクエストコードレジスタ15の内容がそれぞれメ
モリ制御装置2へ送出される。アドレス送出レジスタ1
3から送出されるアドレスの内、下位6ビツトはセレク
タ36を通して選択されて、アドレスレジスタ21に設
定される。このアドレスはブロック境界内のアドレスを
表わす。残りの上位のアドレスはセレクタ35を通して
選択されてアドレスレジスタ20に設定される。転送回
数送出レジスタ14の内容はセレクタ37を通して選択
されて転送回数レジスタ22に設定される。リクエスト
コードレジスタ15の内容はデコーダ24でデコードさ
れ、オペランド連続取出し指示のリクエストがデコード
されて、オペランド連続取出指示レジスタ23に論理”
l”が設定され、以後本リクエストの動作が終了するま
で保持される。同時に、演算制御装置1では、残りの2
エレメントデータであるエレメントデータ8,9のフェ
ッチのためのリクエスト送出の準備が行なわれる。エレ
メント数レジスタ11では、フェッチすべき残りの2エ
レメントデータの個数に対応する値「2」が保持されて
おり、比較器1Bで値「8」と比較されて論理”0”が
出力される。リクエスト種レジスタ12では、オペラン
ド連続取出し指示のリクエストが保持され続けており、
再びエンコーダ16でリクエストコードに変換されて、
リクエストコードレジスタ15にセットされる。ここで
、リクエスト種レジスタ12は始めて空状態となり、新
たなリクエストの受付待状態となる。同様に前述したよ
うに比較器18で論理”0”が送出されることにより、
アドレスレジスタ10およびエレメント数レジスタ11
の内容がそれぞれアドレス送出レジスタ13および転送
回数送出レジスタ14にセットされ、アドレスレジスタ
10およびエレメント数レジスタ11のそれぞれも新た
なリクエストの受付待状態となる。残りの2エレメント
データのフェッチのためにアドレス送出レジスタ13、
転送回数送出レジスタ14およびリクエストコードレジ
スタ15にセットされた内容は、メモリ制御装置2がリ
クエスト受付可能状態となるまでそれぞれ保持される。When the memory control device 2 becomes ready to accept requests, the contents of the address sending register 13, the transfer count sending register 14, and the request code register 15 are sent to the memory control device 2, respectively. Address sending register 1
The lower 6 bits of the address sent from address 3 are selected through selector 36 and set in address register 21. This address represents an address within a block boundary. The remaining upper addresses are selected through the selector 35 and set in the address register 20. The contents of the transfer count sending register 14 are selected through the selector 37 and set in the transfer count register 22. The contents of the request code register 15 are decoded by the decoder 24, the request for continuous operand retrieval instruction is decoded, and a logic ""
l" is set and held until the operation of this request is completed. At the same time, the arithmetic and control unit 1 sets the remaining 2
Preparations are made to send a request for fetching element data 8 and 9, which are element data. The element number register 11 holds a value "2" corresponding to the number of remaining two-element data to be fetched, and the comparator 1B compares it with the value "8" and outputs a logic "0". The request type register 12 continues to hold requests for instructions for continuous fetching of operands.
It is converted into a request code again by the encoder 16,
It is set in the request code register 15. At this point, the request type register 12 becomes empty for the first time, and is ready to accept a new request. Similarly, as described above, by sending out a logic "0" from the comparator 18,
Address register 10 and element number register 11
The contents of are set in the address sending register 13 and transfer count sending register 14, respectively, and the address register 10 and the number of elements register 11 are also placed in a state of waiting for new requests. Address sending register 13 for fetching the remaining two element data;
The contents set in the transfer count sending register 14 and the request code register 15 are respectively held until the memory control device 2 becomes ready to accept requests.
メモリ制御装置2では、まずアドレスレジスタ20およ
びアドレスレジスタ21にセットされたアドレスでメモ
リ装置3をアクセスし、先頭のエレメントデータ0を読
出す。読出されたエレメントデータ0はメモリ制御装置
2内のデータレジスタ30にセットされ、リクエスト要
求元である演算制御装置1に転送されてデータ受レジス
タ31にセットされる。The memory control device 2 first accesses the memory device 3 using the addresses set in the address registers 20 and 21, and reads out the first element data 0. The read element data 0 is set in the data register 30 in the memory control device 2, transferred to the arithmetic control device 1 which is the request source, and set in the data receiving register 31.
こうして、先頭のエレメントデータ0がメモリ装置3よ
り読出されて演算制御装置1に転送される訳であるが、
引続きエレメントデータ0に連続するエレメントデータ
1を読出すためにエレメントデータ0に対するメモリア
クセスが行なわれるのと同じサイクルで以下の動作が行
なわれる。転送回数レジスタ22には初期値「8」がセ
ットされており、この値がマイナス1回路27でマイナ
ス1されて値「7」が生成される。この値がオア回路2
9に送出されて、各々のビットの論理和がとられ、値が
0であるか否かが検出される。0でないことが検出され
ると、オア回路29は論理”l”を送出し、セレクタ3
6、セレクタ37およびアンド回路28の操作を行なっ
て、新たに連続する次のエレメントデータの先頭アドレ
スの生成の指示を行なう。転送回数レジスタ22の値は
、エレメントデータ0に対するメモリアクセスが行なわ
れたことにより、残転送回数を表わす値に更新される。In this way, the first element data 0 is read out from the memory device 3 and transferred to the arithmetic control device 1.
Subsequently, the following operation is performed in the same cycle as memory access to element data 0 is performed in order to read element data 1 following element data 0. The initial value "8" is set in the transfer number register 22, and this value is subtracted by one by the minus one circuit 27 to generate the value "7". This value is OR circuit 2
9, each bit is logically summed, and it is detected whether the value is 0 or not. If it is detected that it is not 0, the OR circuit 29 sends out a logic "l" and the selector 3
6. Operate the selector 37 and the AND circuit 28 to issue an instruction to generate a new starting address of the next consecutive element data. The value of the transfer count register 22 is updated to a value representing the remaining transfer count due to the memory access to element data 0.
つまリマイナス1回路27で生成された値「7」がエレ
メントデータ0に対するメモリアクセスが行なわれるタ
イミングでセレクタ37を通して選択されて、転送回数
レジスタ22にセットされる。同じタイミングでアドレ
スレジスタ21が保持しているメモリアドレスの下位6
ビツトの値に加算器25で「8」が加算され、その値が
セレクタ36を通して選択されてアドレスレジスタ21
の値を更新する。In other words, the value "7" generated by the minus 1 circuit 27 is selected through the selector 37 and set in the transfer number register 22 at the timing when memory access to element data 0 is performed. The lower 6 memory addresses held by the address register 21 at the same timing
Adder 25 adds "8" to the bit value, and that value is selected through selector 36 and sent to address register 21.
Update the value of
このアドレスはブロック境界内の相対アドレスを表わし
、エレメントデータ1の位置するワード番号5に対応す
る。アドレスレジスタ20の値は、オペランド連続取出
指示レジスタ23が論理”l”を送出し、かつオア回路
29が論理″1”を送出し、かつ加算器25でキャリイ
が出力された場合に、アンド回路28で論理”1”が出
力され、プラス1回路26でアドレスレジスタ20の値
にプラス1された値がセレクタ35で選択されて更新さ
れる。加算器25でキャリイが出力されるのは、生成さ
れるアドレスがブロック境界を越える場合であり、エレ
メントデータ1のアドレス生成においては、エレメント
データOと同一ブロック境界内でのアドレス生成であり
キャリイは出力されず、アドレスレジスタ20の値は元
のままである。This address represents a relative address within the block boundary and corresponds to word number 5 where element data 1 is located. The value of the address register 20 is determined by the AND circuit when the operand continuous retrieval instruction register 23 sends out a logic "1", the OR circuit 29 sends out a logic "1", and the adder 25 outputs a carry. Logic "1" is output at step 28, and the value obtained by adding 1 to the value of address register 20 at plus 1 circuit 26 is selected by selector 35 and updated. The adder 25 outputs a carry when the generated address exceeds a block boundary. In the address generation of element data 1, the address is generated within the same block boundary as element data O, and a carry is output. It is not output, and the value of the address register 20 remains as it was.
以上のようにして、エレメントデータ1に対応するアド
レスが生成されメモリ装置3をアクセスしてエレメント
データ1が読出され、演算制御装置1に転送される。以
下同様にしてエレメントデータ2,3のアドレスが生成
され、順次メモリ装置3からエレメントデータ2,3が
読出されて演算制御装置1に転送される。エレメントデ
ータ4に対するアドレス生成において加算器25でキャ
リイが出力され、アドレスレジスタ20の値はプラス1
された値に更新される。即ち、新たに連続する次のブロ
ックデータのアドレスを示すように更新される。ここで
、通常のブロックロードリクエストの場合は、オペラン
ド連続取出指示レジスタ23はセットされていないため
に論理”0“が出力されており、アンド回路28の出力
も論理″0”となり、アドレスレジスタ20の値は更新
されず元のままである。したがって、この場合のアドレ
スレジスタ20とアドレスレジスタ21で示されるアド
レスはワード番号0を示すことになる。オペランド連続
取出し指示リクエストの場合には、オペランド連続取出
指示レジスタ23の指示によりワード番号8のエレメン
トデータ4に対応するように、アドレスレジスタ20が
保持する上位アドレスも更新される。As described above, an address corresponding to element data 1 is generated, the memory device 3 is accessed, element data 1 is read out, and transferred to the arithmetic control unit 1. Thereafter, addresses for element data 2 and 3 are generated in the same manner, and element data 2 and 3 are sequentially read from the memory device 3 and transferred to the arithmetic and control device 1. When generating the address for element data 4, the adder 25 outputs a carry, and the value of the address register 20 becomes plus 1.
updated to the specified value. That is, it is updated to indicate the address of the next consecutive block data. Here, in the case of a normal block load request, since the operand continuous fetch instruction register 23 is not set, a logic "0" is output, and the output of the AND circuit 28 is also a logic "0", and the address register 23 outputs a logic "0". The value is not updated and remains the same. Therefore, the address indicated by address register 20 and address register 21 in this case indicates word number 0. In the case of a continuous operand extraction instruction request, the upper address held by the address register 20 is also updated to correspond to element data 4 of word number 8 according to the instruction from the operand continuous extraction instruction register 23.
このようにして、新たに連続する次のブロックデータ上
、のデータであるエレメントデータ4゜5.6のアドレ
スが生成され、順次メモリ装置3から該当エレメントデ
ータが読出されて演算制御装置1に転送される。エレメ
ントデータ6に対するメモリアクセスが行われた時点で
、アドレスレジスタ20およびアドレスレジスタ21の
値はエレメントデータ7を示す値に更新され、転送回数
レジスタ22の値は、残転送回数を示す値「1」に更新
されている。この場合、マイナス1回路27は「0」を
生成して出力し、オア回路29で値が「0」であること
が検出される。オア回路29で値「0」が検出されると
、オア回路29では論理″0”を送出し、セレクタ:1
6,37およびアンド回路28を通じてセレクタ35を
操作して、演算制御装置1がら新たなリクエストの受け
つけの準備を指示する。そして、メモリ装置3に対して
、エレメントデータ7を読出すためのメモリアクセスを
行い、同時に、演算制御装置1に対してリクエスト受付
可能状態を通知する。この時、オペランド連続取出し指
示レジスタ23が論理“0″にリセットされる。メモリ
装置3からはエレメントデータ7が読出され、データレ
ジスタ30を通して演算制御装置1に転送される。メモ
リ制御装置2からリクエスト受付可能状態を通知された
演算制御装置1は、残りのエレメントデータ8,9を読
出すためにアドレス送出レジスタ13.転送回数送出レ
ジスタ14およびリクエストコードレジスタ15に準備
したリクエスト情報をメモリ制御装置2に送出する。メ
モリ制御装置2では上述と同様な動作を行ってメモリ装
置3から残りのエレメントデータ8,9を読出して演算
制御装置1に転送し、オペランド連続取出し指示のリク
エストの一連の動作が終了する。In this way, the address of element data 4°5.6, which is the data on the next consecutive block data, is generated, and the corresponding element data is sequentially read from the memory device 3 and transferred to the arithmetic control unit 1. be done. When the memory access to element data 6 is performed, the values of address register 20 and address register 21 are updated to the value indicating element data 7, and the value of transfer count register 22 is set to the value "1" indicating the remaining transfer count. has been updated. In this case, the minus 1 circuit 27 generates and outputs "0", and the OR circuit 29 detects that the value is "0". When the value "0" is detected in the OR circuit 29, the OR circuit 29 sends out a logic "0" and the selector: 1
6, 37 and the AND circuit 28 to instruct the arithmetic and control unit 1 to prepare for accepting a new request. Then, it performs memory access to the memory device 3 to read the element data 7, and at the same time notifies the arithmetic and control unit 1 that the request can be accepted. At this time, the operand continuous fetch instruction register 23 is reset to logic "0". Element data 7 is read from memory device 3 and transferred to arithmetic control unit 1 through data register 30. The arithmetic control unit 1, which has been notified of the request acceptance state from the memory control unit 2, sends the address sending register 13. The request information prepared in the transfer count sending register 14 and the request code register 15 is sent to the memory control device 2. The memory control device 2 performs the same operation as described above to read the remaining element data 8 and 9 from the memory device 3 and transfers it to the arithmetic control device 1, thereby completing the series of operations for requesting a continuous operand retrieval instruction.
以上により、演算制御装置1が必要としたワード番号4
からワード番号13までに連続に配列されたエレメント
データ0からエレメントデータ9までのlOエレメント
データのみがメモリ装置3から読出されて、リクエスト
要求元である演算制御装置1に転送される。As a result of the above, word number 4 required by the arithmetic and control unit 1
Only the lO element data from element data 0 to element data 9, which are consecutively arranged from word number 1 to word number 13, are read from the memory device 3 and transferred to the arithmetic control device 1 that is the request source.
(発明の効果)
以上説明したように本発明は、リクエスト要求元が所望
するデータの先頭アドレスとその転送回数を指示し、メ
モリ制御装置がその指示に応答して、メモリ装置より指
示されたアドレス上のデータより、指示された転送回数
分の連続データを読出してリクエスト要求元へ転送する
ことにより、リクエスト要求元は所望するデータの先端
および終端のアドレス位置等を特に気にすることなしに
、所望するデータのみを一括して高速に得ることが可能
となる効果がある。(Effects of the Invention) As explained above, in the present invention, the request source instructs the start address of the desired data and the number of transfers thereof, and the memory control device responds to the instruction, and the memory device responds to the specified address. By reading continuous data for the specified number of transfers from the above data and transmitting it to the request source, the request source does not have to worry about the start and end address positions of the desired data, etc. This has the effect of making it possible to obtain only desired data at once and at high speed.
第1図は本発明のメモリアクセス方法が適用されたデー
タ処理装置の一実施例のブロック構成図、第2図はメモ
リデータ形式を示す概略図である。
1・・・・・・・・・・・・演算制御装置、2・・・・
・・・・・・・・メモリ制御装置、3・・・・・・メモ
リ装置+0.20.21・・・アドレスレジスタ、11
−・・・・・・・・・・・エレメント数レジスタ、12
・・・・・・・・・・・・リクエスト種レジスタ、13
−−−−・・・・・・・・アドレス送出レジスタ、14
・・・・・・・・・・・・転送回数送出レジスタ、15
・・・・・・・・・・・・リクエストコードレジスタ、
16・・・・・・・・・・・・エンコーダ、17.19
.25−・・加算器、 18−・・・・・・・・比較
器、22−−−−−−−−−−−−転送回数レジスタ、
23−−−−−−−−−−−−オペランド連続取出指示
レジスタ、24・・・・・・・・・・・・デコーダ、
26−−−−−−・・・プラス1回路27・・・・・・
・・・・・・マイナス1回路、2 B −−−−−−・
・・・・・アンド回路、29−−−−−−・・・オア回
路、30−−−−−−−−−・・・データレジスタ、3
1・・・・・・・・・・・・データ受レジスタ、32〜
37・・・・・・セレクタ。FIG. 1 is a block diagram of an embodiment of a data processing device to which the memory access method of the present invention is applied, and FIG. 2 is a schematic diagram showing a memory data format. 1...... Arithmetic control device, 2...
......Memory control device, 3...Memory device +0.20.21...Address register, 11
-・・・・・・・・・Element number register, 12
・・・・・・・・・・・・Request type register, 13
-------- Address sending register, 14
・・・・・・・・・Transfer count sending register, 15
・・・・・・・・・・・・Request code register,
16・・・・・・・・・Encoder, 17.19
.. 25--Adder, 18--Comparator, 22--Transfer count register,
23 --- Operand continuous retrieval instruction register, 24 --- Decoder,
26---------Plus 1 circuit 27...
・・・・・・Minus 1 circuit, 2 B −−−−−−・
...AND circuit, 29-------OR circuit, 30----------data register, 3
1... Data receiving register, 32~
37...Selector.
Claims (1)
むデータ処理装置において、 前記リクエスト要求元は、前記メモリ装置上の連続する
データを一括して得ようとする場合、メモリデータ要求
と当該データ群の先頭データのアドレスとデータ転送回
数を前記メモリ制御装置に対して指示し、 前記メモリ制御装置は、前記リクエスト要求元から指示
された先頭アドレスに対応する転送区分データから連続
する前記指示されたデータ転送回数分の転送区分データ
を読出して、前記リクエスト要求元に転送するメモリア
クセス方法。[Claims] In a data processing device including a request source, a memory control device, and a memory device, when the request request source attempts to obtain continuous data on the memory device at once, the request source obtains memory data. The request, the address of the first data of the data group, and the number of data transfers are instructed to the memory control device, and the memory control device transfers consecutive data from the transfer category corresponding to the first address instructed by the request source. A memory access method that reads transfer classification data for the number of times of data transfer instructed and transfers it to the request source.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31018187A JPH01150951A (en) | 1987-12-07 | 1987-12-07 | Memory access method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31018187A JPH01150951A (en) | 1987-12-07 | 1987-12-07 | Memory access method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01150951A true JPH01150951A (en) | 1989-06-13 |
Family
ID=18002144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31018187A Pending JPH01150951A (en) | 1987-12-07 | 1987-12-07 | Memory access method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01150951A (en) |
-
1987
- 1987-12-07 JP JP31018187A patent/JPH01150951A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5471632A (en) | System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred | |
US4298927A (en) | Computer instruction prefetch circuit | |
JPH0636515B2 (en) | Communication processor device | |
US4868740A (en) | System for processing data with multiple virtual address and data word lengths | |
US4371924A (en) | Computer system apparatus for prefetching data requested by a peripheral device from memory | |
US5594878A (en) | Bus interface structure and system for controlling the bus interface structure | |
US5081608A (en) | Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields | |
EP0332151B1 (en) | Direct memory access controller | |
US4325118A (en) | Instruction fetch circuitry for computers | |
JPS6158853B2 (en) | ||
EP0338564B1 (en) | Microprogram branching method and microsequencer employing the method | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
JPH10124447A (en) | Data transfer control method and device | |
JPH01150951A (en) | Memory access method | |
JPH0544049B2 (en) | ||
JP2526644B2 (en) | Data processing device | |
US5524221A (en) | Next instruction pointer calculation system for a microcomputer | |
JP3216965B2 (en) | Data receiving apparatus, method, and system | |
JP2594611B2 (en) | DMA transfer control device | |
JPH0363094B2 (en) | ||
JP2560520B2 (en) | Advance control device | |
JPH0344748A (en) | Read control system for memory data | |
KR20010053200A (en) | Program downloading device and program downloading method | |
JPS63205726A (en) | Microcomputer | |
JPH06274450A (en) | Data transfer system |