JPS60132241A - Data processing device - Google Patents

Data processing device

Info

Publication number
JPS60132241A
JPS60132241A JP24033383A JP24033383A JPS60132241A JP S60132241 A JPS60132241 A JP S60132241A JP 24033383 A JP24033383 A JP 24033383A JP 24033383 A JP24033383 A JP 24033383A JP S60132241 A JPS60132241 A JP S60132241A
Authority
JP
Japan
Prior art keywords
memory
address
register
memory area
main memory
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
JP24033383A
Other languages
Japanese (ja)
Inventor
Hideo Shimazu
秀雄 島津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP24033383A priority Critical patent/JPS60132241A/en
Publication of JPS60132241A publication Critical patent/JPS60132241A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To cope efficiently with a request of a large quantity of continuous memories and a request of memory extension by providing a means for securing a necessary memory area by coupling plural memory area pieces on a main memory. CONSTITUTION:When it is decided by a controlling circuit 6 that an instruction code stored in an instruction register 7 is a memory access instruction, an A1 field of an operand of the instruction register 7 is stored in an address register 2, and an A2 field is stored in a register 21 of a differential circuit 3 through a data bus 37. The controlling circuit 6 reads out a main memory 1 by using a value stored in the address register 2 as an address. The read-out contents of the main memory consist of an Li part for showing the length of a memory area and an Ri part having an address of the next continuous memories, and the Li is stored temporaily in a buffer register 4 through a bus 38, and sent to the differential circuit 3 in order to be compared with an operand part of the memory access instruction stored in the register 21. The Ri is stored in the address register 2 for the purpose of preparation for executing access to the next memory area.

Description

【発明の詳細な説明】 本発明は実行時に動的にメモリの拡張、解放を行なうプ
ログラムを効率良く実行できるデータ処理装置に関し、
特に命令中に論理アドレスで表現されるオペランドを専
用のハードウェアを用いて直接高性能に実行するデータ
処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device that can efficiently execute a program that dynamically expands and releases memory during execution.
In particular, the present invention relates to a data processing device that directly executes operands expressed as logical addresses in instructions with high performance using dedicated hardware.

電子計算機を用いてデータ処理を行なう場合、最近、記
号処理に向いた高級言語といわれるPROLOGやLI
MP等を用いてプログラムされることが多いが、これら
の言語で書かれたプログラムは実行時に動的に多量のメ
モリを消費する。またこれらの言語を実行する処理系も
同様に多量のメモリを消費するが、その際大量のメモリ
を一時に要求したり、実行時にそれ以前に要求したメモ
〈 すの大きさを拡大したなることが多い。処理系内で保持
するテーブルの多くはこの機能を要する。
When processing data using an electronic computer, PROLOG and LI, which are high-level languages suitable for symbolic processing, are recently used.
Although programs are often programmed using MP or the like, programs written in these languages dynamically consume a large amount of memory when executed. Processing systems that execute these languages also consume a large amount of memory, but they may request a large amount of memory at once, or expand the size of a previously requested memo during execution. There are many. Many of the tables maintained within the processing system require this function.

しかしながら、従来はソフトウェアでこれらの処理を行
なっていた為に、処理効率の低下を防ぐために実行時の
メモリの動的な拡張を許可しない場合が多かった。また
プログラマの要求するメモリ長のメモリ領域が存在しな
い場合にはそこで終了してしまうか、または本来の処理
を一時中断し、ガーベジコレクタが起動さJまた。ガー
ベジコレクタは、離散している小メモリ片を集め、より
大きいメモリ片にして、主メモリ上に連続領域を作りだ
すという処理を行なう為に、必すしも高い性能を持って
処理されてはいない。ガーベジコレクションの方法は種
々あるが、一般にそのプログラムはソフトウェアで提供
される為に、ガーベジコレクタプログラムの起動はシス
テムの大幅な効率低下を伴なう。
However, in the past, these processes were performed using software, and dynamic expansion of memory during execution was often not allowed to prevent a decline in processing efficiency. Also, if a memory area with the memory length requested by the programmer does not exist, the program will terminate there, or the original processing will be temporarily interrupted and the garbage collector will be activated. Garbage collectors collect small discrete pieces of memory, make them into larger pieces of memory, and create a contiguous area on main memory, so they do not necessarily have high performance. Although there are various garbage collection methods, the programs are generally provided as software, and starting the garbage collector program involves a significant decrease in system efficiency.

本発明の目的は、大量の連続メモリの要求やメモリ長の
拡張の要求を効率よく実現するメモリ管理方式を専用に
実行するデータ処理装置を提供することにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing device that exclusively executes a memory management method that efficiently realizes requests for large amounts of continuous memory and requests for expansion of memory length.

本発明の他の目的は前記メモリ管理方式をとることによ
り原始プログラム中のアドレスの境界を越えるというア
クセスエラーを実行時に検出するデータ処理装置を提供
することにある。
Another object of the present invention is to provide a data processing apparatus that employs the above-mentioned memory management method to detect an access error that causes an address boundary in a source program to be crossed during execution.

本発明のデータ処理装置を用いると、ガーベジコレクタ
の起動の必要な状況が大幅に減少するので、システムの
効率が大きく向上することになる。
Using the data processing apparatus of the present invention, the situations in which the garbage collector needs to be activated are greatly reduced, resulting in a significant increase in system efficiency.

本発明のデータ処理装置は与えられたタスクの処理に必
要なデータおよびプログラムが主メモリ上で連続なメモ
リ領域を要求するとき、要求された大きさのメモリ領域
を物理的に連続に主メモリ上に確保しなくても、前記要
求値頃下の複数個の主メモリ上のメモリ領域片を結合す
ることで前記要求を満足し、上記連続メモリのベースア
ドレスとベースアドレスからのオフセットの組で主メモ
リ中の位置を表現するオペランドを持つ命令を備えると
ともに、主メモリと、主メモリ中の位置を示すアドレス
レジスタと、上記組表現のアドレスをオペランド部に持
つ命令を実行するとき上記組表現のアドレスζこ相当す
る主メモリ上の位置が上記連続なメモリ領域を代替する
上記複数個の主メモリ上のメモリ領域片のいずれのメモ
’J f=jI域片に存在するかを判断し、そのメモリ
領域片からのオフセットを算出するという処理を行なう
差分回路と、王メモリから前記差分回路への入力を一時
的に格納するバッファレジスタと、命令を格納する命令
レジスタと、前記処理において前記差分回路により■」
断されたメモリ領域片のベースアドレスと前記差分回路
により算出されたオフセットを訓算する加算器と、全体
の1lilJ御を行なう制御回路とから構成されている
When the data and program necessary for processing a given task request a contiguous memory area in the main memory, the data processing device of the present invention physically contiguously stores the memory area of the requested size in the main memory. Even if you do not allocate the memory area to the base address of the continuous memory and the offset from the base address, the request can be satisfied by combining memory area pieces on multiple main memories that are below the required value. The main memory, an address register indicating the position in the main memory, and the address ζ of the set representation when executing the instruction having the address of the set representation in the operand part. It is determined in which memory area piece of the plurality of memory area pieces on the main memory that replaces the continuous memory area the corresponding location on the main memory exists, and the memory area is a differential circuit that performs the process of calculating an offset from one side; a buffer register that temporarily stores the input from the king memory to the differential circuit; an instruction register that stores instructions; ”
It consists of an adder that calculates the base address of the disconnected memory area piece and the offset calculated by the difference circuit, and a control circuit that controls the whole.

プログラムの実行中に動的に連続なメモリ領域を要求し
たり、そのメモリ領域を拡張したいということは、しば
しば起こることである。
It often happens that a program dynamically requests a contiguous memory area or wants to expand that memory area during execution.

例えば、次にシステム記述用言語Cの関数の1つである alloc (Nl) (N1 バイトの連続メモリを要求するとそれだけの大
きさ以上の連続メモリが存在する時のみ、その領域が確
保され、その先頭アドレスが関数値として戻る)につい
て具体的に説明する。
For example, if you request N1 bytes of contiguous memory, which is one of the functions of the system description language C, alloc (Nl) (N1 bytes of contiguous memory), the area will be allocated only if contiguous memory of that size or more exists, and the area will be reserved. (The start address is returned as a function value) will be explained in detail.

従来のデータ処理装置では、上記言語Cのステートメン
トはコンパイラと称する翻訳プログラムにより (1) 未使用メモリのリストをしらべる(2)変数N
1より大きい未使用メモリ連続領域を見つける (3) 存在すればそのメモリのアドレスヲ返1゛(4
)存在しないとガーベジコレクタとWbするプログラム
を起動し、主メモリ中の未使用部分を1すj収し未使用
メモリのリストに付加する t5) (2)に戻る という一連の処理を行なう機械語命令の列に変挨された
後、この機械語命令を逐次実行することによって実行さ
れる。
In conventional data processing devices, the above-mentioned language C statements are processed by a translation program called a compiler that (1) examines the list of unused memory and (2) sets the variable N.
Find an unused memory contiguous area larger than 1 (3) If it exists, return the address of that memory 1 (4
) Machine language that performs a series of processes such as starting a program that calls the garbage collector if it does not exist, collecting all unused portions of main memory, and adding them to the unused memory list.t5) Returning to (2) After being converted into a sequence of instructions, the machine language instructions are executed sequentially.

大量のメモリを一時に要求する場合はallocを呼び
出すことになる。一方、メモリ長の拡張を要求する場合
プログラマは (1)拡張後のメモリ長を引数にしてallocを呼び
出す。
When requesting a large amount of memory at once, alloc is called. On the other hand, when requesting an expansion of the memory length, the programmer (1) calls alloc with the expanded memory length as an argument.

(2)拡張前のメモリ内のデータを(1)で得たメモリ
にコビイする。
(2) Copy the data in the memory before expansion to the memory obtained in (1).

(3)拡張前のメモリを参照していたプログラム中のア
ドレスを(1)で得たメモリのアドレスに変更する。
(3) Change the address in the program that referred to the memory before expansion to the memory address obtained in (1).

という一連の手順を行な4つなくてはならない。You must perform a series of four steps.

以上の操作はすべてソフトウェアによって行なわれるた
め、その実行効率は非常に悪い。
Since all of the above operations are performed by software, their execution efficiency is extremely low.

これに対して、本発明を用いたメモリ管理方式ではある
大きさの連続したメモリをそれ以下のサイズのメモリの
複数個の結合で実現可能にしている為al Iocでの
大量の連続したメモリの獲得が容易であり、また連続し
たメモリの実行時の動的な拡張要求に対しても同様の機
能でメモリ効率のよい処理が可能である。加えて本発明
を用いたデータ処理装置では上記メモリ管理方式をハー
ドウェアで実現している為、十分な実行性能を得ること
が出来る。
On the other hand, the memory management method using the present invention allows contiguous memory of a certain size to be realized by combining multiple pieces of memory of smaller size, so it is possible to realize a large amount of contiguous memory in al IOC. It is easy to acquire, and the same function can perform memory-efficient processing for dynamic expansion requests during continuous memory execution. In addition, since the data processing device using the present invention implements the memory management method described above in hardware, sufficient execution performance can be obtained.

次に図面を参照して本発明の詳細な説明する。Next, the present invention will be described in detail with reference to the drawings.

第1図は本発明に用いられるメモリ管理方式で使用する
主メモリ上のデータの構成を示す図である。
FIG. 1 is a diagram showing the structure of data on a main memory used in the memory management method used in the present invention.

第1図では主メモリ上の3個のメモリ領域Ml。In FIG. 1, there are three memory areas Ml on the main memory.

M2 、 M3が各先頭語の一部を使って連結されてい
る。
M2 and M3 are connected using a part of each leading word.

各メモリ領域の先頭語は2つのフィールドL1゜Ri 
(i=1.2.3)から構成され、上位フィールドLi
は各メモリ領域の長さを表現し、下位フィールドRiは
別のメモリ領域を指すか、終端記号0が入っている。第
1図の例では連結の最後尾のメモリ領域M3のR3には
終端を示す0が格納されている。Ml、M2.M3を見
つけだし、Li、Riに値をセットすることはプログラ
マがあるサイズの連続領域を要求したとき、それ以下の
サイズのメモリ領域を複数個見つけ出し、それを結合す
るということに相当する。この処理は本発明のデータ処
理装置とは別にメモリ管理機構としてソフトウェアまた
はハードウェアで用意さイする必要がある。
The first word of each memory area is two fields L1゜Ri
(i=1.2.3), and the upper field Li
represents the length of each memory area, and the lower field Ri points to another memory area or contains the terminal symbol 0. In the example of FIG. 1, 0 indicating the end is stored in R3 of the memory area M3 at the end of the connection. Ml, M2. Finding M3 and setting values to Li and Ri corresponds to, when the programmer requests a continuous area of a certain size, finding multiple memory areas of smaller size and combining them. This processing needs to be prepared in software or hardware as a memory management mechanism separate from the data processing device of the present invention.

次に第1図を用いてメモリアクセスの処理の流れを簡単
に説明する。第1図において、1ftはメモリアクセス
命令が格納されている時の命令レジスタを示している。
Next, the flow of memory access processing will be briefly explained using FIG. In FIG. 1, 1ft indicates an instruction register in which memory access instructions are stored.

オペランド部はAI、A2に分かれ、A1はプログラマ
の要求した連続メモリの先頭番地、A2は前記連続メモ
リの先頭語からの仮想的なオフセットである。この仮想
的なオフセットから実際の目的番地を取り出す処理は次
の様になされる。
The operand part is divided into AI and A2, where A1 is the starting address of the continuous memory requested by the programmer, and A2 is a virtual offset from the starting word of the continuous memory. The process of extracting the actual destination address from this virtual offset is performed as follows.

オペランドのA1フィールドはMlを指している。仮想
的なオフセントであるA2がMlのサイズL1以下のと
き、すなわちA2≦L1 のとき、目的番地はMl中に
存在する。このときはAl+A2の値が目的番地になる
。A2)1,1のとさは、Mlの先頭語中R1が指すメ
モリ領域M2において前記M1を対象として行なった処
理と同様の動作を行なう。すなわち(A2−LL)≦L
2 のときは、目的番地はR1+(A2−LL)であり
、(A2−Li )>R2のときは、目的番地はM2に
は存在しないことがわかる。従りて次にR2の指すM3
で同様の処理を行なう。
The A1 field of the operand points to Ml. When A2, which is a virtual offset, is less than or equal to the size L1 of Ml, that is, when A2≦L1, the destination address exists in Ml. At this time, the value of Al+A2 becomes the destination address. A2) The 1,1 crest performs the same operation as the processing performed for M1 in the memory area M2 pointed to by R1 in the first word of Ml. That is, (A2-LL)≦L
2, the destination address is R1+(A2-LL), and when (A2-Li)>R2, it is understood that the destination address does not exist in M2. Therefore, next, M3 pointed to by R2
Perform the same process with .

簡単な例を用いて説明する、 あるメモリアクセス命令の実行が行なわれることを考え
る。命令レジスフのオペランドのA1フィールドに10
00 、 A2フィールドに50が格納されているとす
る。第1図連続メモリM1の先頭番地を1000番地、
メモリ長を30とし、M2の先頭番地を2000番地、
メモリ長を50とし、M3の先頭番地を3000番地、
メモリ長を20とする。
Let us consider the execution of a certain memory access instruction, which will be explained using a simple example. 10 in the A1 field of the operand of the instruction register
00, and 50 is stored in the A2 field. Figure 1: The first address of continuous memory M1 is 1000,
The memory length is 30, the first address of M2 is 2000,
The memory length is 50, the first address of M3 is 3000,
Let the memory length be 20.

前記仮定のもとでは第1図M1のり、は30.馬は20
00 、 M2のR2は50 、 k”zは3000 
、1Vi3のり。
Under the above assumption, the glue M1 in FIG. 1 is 30. 20 horses
00, R2 of M2 is 50, k”z is 3000
, 1Vi3 Nori.

は20.鳥はOとなる。is 20. Bird becomes O.

前記連続メモリをオペランドフィールドに持つメモリア
クセス命令は論理的にはメモリ長100の連続メモリの
アクセスが可能である。Mlの長さは30であり%A2
の方が大きいのでA、とMl の長さの差20を保持し
つつ、几、フィールドの1直を1吏つてM2をアクセス
する。M2の長さは50なので20 < 50であり、
M2の先頭番地2000に20を加えた2020番地が
前記メモリアクセス命令のオペランド部で表現していた
目的番地ということになる。
The memory access instruction having the continuous memory in the operand field is logically capable of accessing a continuous memory with a memory length of 100. The length of Ml is 30 and %A2
Since A is larger, M2 is accessed by using the first shift of the field while maintaining the 20 difference in length between A and Ml. The length of M2 is 50, so 20 < 50,
Address 2020, which is the starting address 2000 of M2 plus 20, is the destination address expressed in the operand part of the memory access instruction.

第2図は、本発明の一実施例を示すブロック図である。FIG. 2 is a block diagram showing one embodiment of the present invention.

第2図に示す本発明のデータ処理装置は、命令およびデ
ータ等を保存する主メモリーと、主メモリの記憶位置を
示すアドレスレジスタ2と。
The data processing device of the present invention shown in FIG. 2 includes a main memory for storing instructions, data, etc., and an address register 2 that indicates the storage location of the main memory.

プログラムの実行を指示する命令レジスタ7と。and an instruction register 7 for instructing program execution.

モ アのオペランドフィールドが示すアドレスと生汁す上の
連続メモリの先頭語の一部であるLlを差分してその値
を比較して格納する機能を持つ差分回路3と、差分回路
3への入力データとして渡される前記連続メモリの先頭
語の一部であるLiを一時的に格納するバッファレジス
タ4と最終的に主メモリ上の目的番地を生成するのに使
われる加算器5と命令取り出し、命令コードの判定およ
びメモリアクセス命令で規定される処理を制御する制御
回路6とから構成されている。
A difference circuit 3 which has a function of comparing and storing the difference between the address indicated by the operand field of the mower and Ll, which is a part of the first word of the continuous memory on the raw juice, and the input to the difference circuit 3. A buffer register 4 that temporarily stores Li, which is a part of the first word of the continuous memory that is passed as data, an adder 5 that is used to finally generate a destination address on the main memory, and an instruction fetcher and an instruction It is comprised of a control circuit 6 that controls code determination and processing specified by memory access commands.

主メモリーは通常の半導体メモリで構成され、プログラ
ムの動作はデータバス32を介して主メモ11から、命
令レジスタ7に順に送られて実行さイするという形で進
行する。制御回路6によって命令レジスタ7で格納する
命令コードがメモリアクセス命令と判定さI″Iると、
命令レジスタ7のオペランドのAIフィールドがアドレ
スレジスタ2に、A2フィールドがデータバス37を介
して差分回路3のレジスタ21に格納される。
The main memory is constituted by an ordinary semiconductor memory, and the program operation progresses by sequentially sending the program from the main memory 11 to the instruction register 7 via the data bus 32 for execution. When the control circuit 6 determines that the instruction code stored in the instruction register 7 is a memory access instruction,
The AI field of the operand of the instruction register 7 is stored in the address register 2, and the A2 field is stored in the register 21 of the differential circuit 3 via the data bus 37.

アドレスレジスタ2は通常のしンスタであり、制御回路
6は前記アドレスレジスタ2に格納された値を番地とし
て主メモリを読み出す。読み出さ11た主メモリは第1
図で示したようにメモリ領域の長さを示すLi部と次の
連続メモリのアドレスまたは0を持つRi部とからなっ
ている。Liは命令レジスタ7の持つ命令のオペランド
部で示すアドレスがこの連続メモリ中に存在するかどう
かを調べるために38を介してバッファレジスタ4に一
時的に保存される。Riは次のメモリ領域をアクセスす
る準備の為に、アドレスレジスタ2に格納される。前記
バッファレジスタ4の内存はレジスタ21に格納された
メモリアクセス命令のオペランド部と比較rるために差
分回路3へ39を介して送られる。
The address register 2 is a normal register, and the control circuit 6 reads out the main memory using the value stored in the address register 2 as an address. The read 11 main memory is the first
As shown in the figure, it consists of an Li section indicating the length of the memory area and an Ri section containing the address of the next consecutive memory or 0. Li is temporarily stored in the buffer register 4 via 38 in order to check whether the address indicated by the operand part of the instruction held in the instruction register 7 exists in this continuous memory. Ri is stored in address register 2 in preparation for accessing the next memory area. The contents of the buffer register 4 are sent to the differential circuit 3 via 39 for comparison with the operand part of the memory access instruction stored in the register 21.

第3図は差分回路3の詳細な構成の実施例を示すブロッ
ク図であり、通常のレジスタ21と2進の減痺を行なう
減俸器22から構成される。減算器22はデータバス3
6を介して入力するレジスタ21の内容Nからデータバ
ス39からの入力nを減じた結果N −n 〉0のとき
、信−号41に2進イ直1を出力する。
FIG. 3 is a block diagram showing an embodiment of the detailed configuration of the differential circuit 3, which is composed of a normal register 21 and a decimator 22 that performs binary decimation. The subtracter 22 is connected to the data bus 3
When the result of subtracting the input n from the data bus 39 from the content N of the register 21 input via the register 6 is N -n > 0, a binary a straight 1 is output to the signal 41.

これは命令レジスタ7のオペランドで示す目的番地が現
在対象としているメモリ領域に存在しないことを意味す
る。制御回路6は信号41の2進値データ1をデコード
すると減算器22の演算結果N −nをレジスタ2】に
格納し、かつアドレスレジスタ2の内容を調べる。この
値がOのときは、命令レジスタ7のオペランド部はレン
ジオーバーの番地アクセスをしようとしたことになるの
でそのエラー処理を行なう。0でないときは、前記アド
レスレジスタ2の示すアドレスの内容を主メモリ1から
読み出す。この内容は連続メモリのサイズLi+xと次
の連続メモリのアドレスRi +、からなり、Li−+
、+がバッファレジスタ4に格納さ、fl、Ri部1が
アドレスレジスタ2に格納さ才する。差分回路3では再
び同じ処理がなされる。
This means that the target address indicated by the operand of the instruction register 7 does not exist in the currently targeted memory area. When the control circuit 6 decodes the binary value data 1 of the signal 41, it stores the calculation result N-n of the subtracter 22 in the register 2] and checks the contents of the address register 2. When this value is O, it means that the operand section of the instruction register 7 attempts to access an address that is out of range, so error handling is performed. If it is not 0, the contents of the address indicated by the address register 2 are read from the main memory 1. This content consists of the continuous memory size Li+x and the next continuous memory address Ri+, Li-+
, + are stored in the buffer register 4, and fl and Ri part 1 are stored in the address register 2. The same processing is performed again in the difference circuit 3.

前記減算器22の演算結果N −n ((1のときは、
信号41にOが出力される。これは命令レジスタ7のオ
ペランドで示す目的番地が現在対象としているメモリ領
域中に含まれていることを意味する。
The calculation result of the subtracter 22 N −n ((When 1,
O is output to the signal 41. This means that the target address indicated by the operand of instruction register 7 is included in the currently targeted memory area.

制御回路6は信号41の2進値データ0をデコードする
と、レジスタ21の値33とアドレスレジスタ2の値3
4を加算器5の人力として、加算を行ない、その出力3
5をアドレスレジスタ2に格納する。この加2体器の動
作は、メモリ領域片をたぐっていき、目的番地を含むメ
モリ領域に到達したときに、そのメモリ領域のベースア
ドレスとそこから目的番地までのオフセットを加算する
という意味を持つ。
When the control circuit 6 decodes the binary value data 0 of the signal 41, the value 33 of the register 21 and the value 3 of the address register 2 are obtained.
4 as the human power of adder 5, performs addition, and outputs 3
5 is stored in address register 2. The operation of this adding unit has the meaning of traversing through a piece of memory area, and when it reaches the memory area that includes the destination address, it adds the base address of that memory area and the offset from there to the destination address. .

制−回路6はアドレスレジスタ2の内g を用いて主メ
モリ1の読み出しを行なう。これによって得られる値が
前記メモリアクセス命令における目的アドレスの内容で
ある。
The control circuit 6 uses g in the address register 2 to read data from the main memory 1. The value obtained thereby is the content of the target address in the memory access instruction.

以上、笑施例を剛いて本発明の詳細な説明した。The present invention has been described above in detail with reference to several embodiments.

本発明を用いたデータ処理装置を用いると、プログラム
の実行中のメモリ要求やメモリの拡張要求に対しで従来
の方法に比較して格段に処理効率が高く行なえるという
効果がある。
When a data processing device according to the present invention is used, memory requests and memory expansion requests during program execution can be processed with much higher processing efficiency than conventional methods.

本発明を用いたデータ処理装置の他の効果としては原始
プログラム中で、本来許されない主メモリ中の番地のア
クセスをするきいうエラーを実行時にハードウェアで検
出することが出来るということがある。これはプログラ
ムのデバ、り情報として非常に有効であるという効果が
ある。
Another advantage of the data processing apparatus using the present invention is that it is possible to detect errors in the source program, such as accessing an address in the main memory that is not normally allowed, by hardware at the time of execution. This has the effect of being very effective as program device information.

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

第1図は本発明に用いられるメモリ管理方式を説明する
ための構1左図である。 第2図は本発明の一実施例を示すブロック図である。 第3図は前記3の差分回路の一実施例を示すブロック図
である。 図において、 1は主メモリ、2はアドレスレジスタ、3は差分回路、
4はバッファレジスタ、5は加算器、6は制御回路、7
は命令レジスタ、21はレジスタ、22は減算器、31
 、 :32 、33 、34 、 :35 、 、う
6 、37 、38 、 :;9はデータバス、41は
信号線である。
FIG. 1 is a left diagram of a structure 1 for explaining the memory management method used in the present invention. FIG. 2 is a block diagram showing one embodiment of the present invention. FIG. 3 is a block diagram showing one embodiment of the above-mentioned three differential circuits. In the figure, 1 is the main memory, 2 is the address register, 3 is the differential circuit,
4 is a buffer register, 5 is an adder, 6 is a control circuit, 7
is an instruction register, 21 is a register, 22 is a subtracter, 31
, :32, 33, 34, :35, , u6, 37, 38, :;9 is a data bus, and 41 is a signal line.

Claims (1)

【特許請求の範囲】[Claims] あるタスクの実行に必要なデータおよびプログラムが主
メモリ上で連続なメモリ領域を要求するとき、要求され
た大きさのメモリ領域を物理的に連続に主メモリ上に確
保しなくても、前記要求値以下の複数個の主メモリ上の
メモリ領域片を結合することで前記要求を満足し、上記
連続メモリのベースアドレスとベースアドレスからのオ
フセットの組で主メモリ中の位置を表現するオペランド
を持つ命令を備えるとともに、主メモリと、主メモリ中
の位置を示すアドレスレジスタと、上記組表現のアドレ
スをオペランド部に持つ命令を実行するとき上記組表現
のアドレスに相当する主メモリ上の位置が上記連続な−
メモリ領域を代替する上記複数個の主メモリ上のメモリ
領域片のいずれのメモリ領域片に存在するかを判断し、
そのメモリ領域片のベースからの丈フセットを算出する
という処理を行なう差分回路と、主メモリから前記差分
回路への入力を一時的に格納するバッファレジスタと、
命令を格納する命令レジスタと、前記差分回路により判
断されたメモリ領域片のベースアドレスと前記差分回路
により算出されたオフセットを加算し、目的アドレスを
生成する加算器と、全体の制御を行なう制御回路とから
構成されることを特徴とするデータ処理装置。
When data and programs necessary to execute a certain task request a contiguous memory area on main memory, the request can be processed even if the requested size of memory area is not physically allocated contiguously on main memory. It satisfies the above requirement by combining memory area pieces in multiple main memories that are less than or equal to the value, and has an operand that expresses a position in the main memory by a pair of a base address of the continuous memory and an offset from the base address. It includes a main memory, an address register indicating a location in the main memory, and when an instruction having an address of the above group expression in the operand part is executed, the location in the main memory corresponding to the address of the above group expression is the above. continuous
determining in which of the plurality of memory area pieces on the main memory that replaces the memory area the memory area exists;
a differential circuit that performs a process of calculating the height offset from the base of the memory area piece; a buffer register that temporarily stores input from the main memory to the differential circuit;
an instruction register that stores instructions; an adder that adds the base address of the memory area piece determined by the difference circuit to the offset calculated by the difference circuit to generate a target address; and a control circuit that performs overall control. A data processing device comprising:
JP24033383A 1983-12-20 1983-12-20 Data processing device Pending JPS60132241A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24033383A JPS60132241A (en) 1983-12-20 1983-12-20 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24033383A JPS60132241A (en) 1983-12-20 1983-12-20 Data processing device

Publications (1)

Publication Number Publication Date
JPS60132241A true JPS60132241A (en) 1985-07-15

Family

ID=17057916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24033383A Pending JPS60132241A (en) 1983-12-20 1983-12-20 Data processing device

Country Status (1)

Country Link
JP (1) JPS60132241A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090399A (en) * 2009-10-20 2011-05-06 Fanuc Ltd Numerical controller capable of dividing and combining memory areas to store machining programs and binary data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090399A (en) * 2009-10-20 2011-05-06 Fanuc Ltd Numerical controller capable of dividing and combining memory areas to store machining programs and binary data
US8195911B2 (en) 2009-10-20 2012-06-05 Fanuc Ltd. Numerical controller capable of dividing and combining memory areas to store machining programs and binary data

Similar Documents

Publication Publication Date Title
US4812981A (en) Memory management system improving the efficiency of fork operations
JP2000347872A (en) Method and device for processing exception as regular control flow
JPS60176143A (en) Program calling apparatus
US7076629B2 (en) Method for providing concurrent non-blocking heap memory management for fixed sized blocks
JPH0340868B2 (en)
JPS60132241A (en) Data processing device
US6145043A (en) Boolean and movement accelerator
EP0560393B1 (en) Microprocessor and data processing system with register file
JPS62168497A (en) Data base processing system for exchange-processing program
JPS603229B2 (en) Information processing method
JPS6051947A (en) Instruction prefetching system in virtual storage computer
JPH02189658A (en) Cache memory
JP2526728B2 (en) Disk cache automatic usage method
JPH0721766B2 (en) FORTRAN I / O control processor
JPH03137736A (en) Operation tracing system for micro processor
JPH11249937A (en) Computer system
JPH0447350A (en) Main storage read/response control
JPS6069745A (en) Data addressing system
JP2718676B2 (en) Virtual memory dump processing method
JPS6218074B2 (en)
JPH03125236A (en) Memory dump collection system
JPH10507548A (en) Data processing systems and methods and communication systems with such systems
JPH03252856A (en) Processing system for program
JP2517977B2 (en) Input / output interrupt control method in virtual machine
JPS63121929A (en) Stack processing system