JP2009238132A - Data processing apparatus - Google Patents
Data processing apparatus Download PDFInfo
- Publication number
- JP2009238132A JP2009238132A JP2008086375A JP2008086375A JP2009238132A JP 2009238132 A JP2009238132 A JP 2009238132A JP 2008086375 A JP2008086375 A JP 2008086375A JP 2008086375 A JP2008086375 A JP 2008086375A JP 2009238132 A JP2009238132 A JP 2009238132A
- Authority
- JP
- Japan
- Prior art keywords
- register
- memory
- stored
- copy
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 122
- 230000000593 degrading effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本発明はメモリコピー用レジスタファイル、データ処理装置、メモリコピー方法及び同方法を実施するプログラムに関する。 The present invention relates to a memory copy register file, a data processing apparatus, a memory copy method, and a program for executing the method.
メモリコピー処理は一般のデータ処理装置において広く行われている。 Memory copy processing is widely performed in general data processing apparatuses.
メモリコピー処理とは、対象データをメモリのコピー元からメモリのコピー先にプロセッサを介して転送する処理である。特に、データ転送処理の比重が高い入出力処理装置においては、処理の多くがこのメモリコピー処理であり、このメモリコピー処理の信頼度を向上させることは極めて重要である。 The memory copy process is a process of transferring target data from a memory copy source to a memory copy destination via a processor. In particular, in an input / output processing device having a high specific gravity for data transfer processing, most of the processing is this memory copy processing, and it is extremely important to improve the reliability of this memory copy processing.
メモリコピー処理の信頼度を向上させる装置の一例として、特開平8−16484号公報(特許文献1)に記載されている二重化メモリシステムがある。 As an example of an apparatus for improving the reliability of the memory copy process, there is a duplex memory system described in Japanese Patent Laid-Open No. 8-16484 (Patent Document 1).
この二重化メモリシステムは、それぞれ二重化されているCPUバス、システムバス制御装置、システムバス及びメモリ装置を備えており、CPUバス、システムバス制御装置、システムバス及びメモリ装置の各々はデータの比較回路を備えている。これらの比較回路の各々において、二重化処理されたデータが相互に一致するか否かのチェックが行われる。 This dual memory system includes a dual CPU bus, system bus control device, system bus and memory device, and each of the CPU bus, system bus control device, system bus and memory device has a data comparison circuit. I have. In each of these comparison circuits, a check is made as to whether or not the duplicated data match each other.
また、特開昭56−9828号公報(特許文献2)は、データをキーボードからキーボード制御装置に転送する際に、キーボードから同じデータを少なくとも2回キーボード制御装置に転送し、転送された2つのデータが一致するときに、そのデータを有効とするデータ転送読み取り方式を提案している。 Japanese Patent Laid-Open No. 56-9828 (Patent Document 2) discloses that when data is transferred from the keyboard to the keyboard control device, the same data is transferred from the keyboard to the keyboard control device at least twice, and the two transferred data are transferred. We have proposed a data transfer reading method that makes data valid when the data match.
また、特開平8−328888号公報(特許文献3)は、第一の処理装置において処理プログラムを実行した後、同じ処理を行う処理プログラムを第二の処理装置において実行し、双方の出力データを比較して、一致した場合に限り、その出力データを出力装置を介して出力するソフトウェア二重化処理装置を提案している。
特開平8−16484号公報(特許文献1)に記載されている二重化メモリシステムにおいては、CPUバス、システムバス制御装置、システムバス及びメモリ装置の各々において二重化処理を行うことが必要になるため、ハードウェア量が非常に多くなってしまうという問題があった。 In the duplex memory system described in JP-A-8-16484 (Patent Document 1), it is necessary to perform duplex processing in each of the CPU bus, the system bus control device, the system bus, and the memory device. There was a problem that the amount of hardware would become very large.
特開昭56−9828号公報(特許文献2)に記載されているデータ転送読み取り方式は、キーボードからキーボード制御装置へのデータの読み出しにのみ関するものであるため、そのままの構成ではデータ処理装置におけるメモリコピー処理に適用することは困難であるという問題があった。さらに、性能が大きく低下するという問題もあった。 The data transfer reading method described in Japanese Patent Application Laid-Open No. 56-9828 (Patent Document 2) relates only to reading of data from the keyboard to the keyboard control device. There is a problem that it is difficult to apply to memory copy processing. In addition, there is a problem that the performance is greatly reduced.
また、特開平8−328888号公報(特許文献3)に記載されているソフトウェア二重化処理装置によれば、ソフトウェアによる同じ処理を2回繰り返して行わなければならないため、データ処理量が多くなることを避けることができないという問題点があった。さらに、性能が大きく低下するという問題もあった。 In addition, according to the software duplex processing apparatus described in Japanese Patent Laid-Open No. 8-328888 (Patent Document 3), the same processing by software must be repeated twice, so that the data processing amount increases. There was a problem that could not be avoided. In addition, there is a problem that the performance is greatly reduced.
本発明は、上述の課題を解決するメモリコピー用レジスタ・ファイル、データ処理装置、メモリコピー方法及び同方法を実施するプログラムを提供することを目的とする。 It is an object of the present invention to provide a memory copy register file, a data processing apparatus, a memory copy method, and a program for executing the method that solve the above-described problems.
上記の目的を達成するため、本発明は、第一の態様として、コピー元に記憶されているデータを前記コピー元からコピー先にコピーするメモリコピー用レジスタ・ファイルであって、前記コピー元のアドレスをそれぞれ記憶する第1のレジスタ及び第2のレジスタと、前記コピー先のアドレスを記憶する第3のレジスタと、前記データの転送サイクル数を記憶する第4のレジスタと、前記データの1サイクルでの転送データ長を記憶する第5のレジスタと、前記第1のレジスタにおいて記憶された前記アドレスを介して読み出されたデータを格納する第6のレジスタと、前記第2のレジスタにおいて記憶された前記アドレスを介して読み出されたデータを格納する第7のレジスタと、前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を格納する第8のレジスタと、前記第8のレジスタに格納された排他的論理和と自レジスタが格納している値との論理和を格納する第9のレジスタと、を備えるレジスタ・ファイルを提供する。 In order to achieve the above object, according to a first aspect of the present invention, there is provided a memory copy register file for copying data stored in a copy source from the copy source to a copy destination. A first register and a second register for storing addresses, a third register for storing the copy destination address, a fourth register for storing the number of data transfer cycles, and one cycle of the data The fifth register for storing the transfer data length in the first register, the sixth register for storing the data read via the address stored in the first register, and the second register. A seventh register for storing data read via the address; data stored in the sixth register; and the seventh register. And an eighth register for storing an exclusive OR with the data stored in the data, and a logical sum of the exclusive OR stored in the eighth register and the value stored in the register. And a register file comprising a ninth register.
さらに、本発明は、第二の態様として、上記のレジスタ・ファイルと、それぞれが同時に命令を実行可能な少なくとも二つの命令実行ユニットを備え、前記レジスタ・ファイルと接続されているプロセッサと、前記プロセッサと接続されているメモリと、を備えるデータ処理装置を提供する。 Furthermore, the present invention provides, as a second aspect, a processor connected to the register file, including the register file described above, and at least two instruction execution units each capable of executing instructions simultaneously, and the processor And a memory connected to the data processing device.
さらに、本発明は、第三の態様として、上記のレジスタ・ファイルにおいて、前記第1のレジスタ及び前記第2のレジスタに格納されたアドレスを使用して、前記第6のレジスタ及び前記第7のレジスタに前記コピー元から読み出したデータを格納する二つのメモリロードを実行する第一の過程と、前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を第8のレジスタに格納する第二の過程と、前記第8のレジスタに格納された前記排他的論理和と前記第9のレジスタに格納された値との論理和を前記第9のレジスタに格納する第三の過程と、前記第3のレジスタに格納されたアドレスを使用して、前記第6のレジスタに格納されたデータを前記コピー先に格納するメモリストアを実行する第四の過程と、を備えるコピー元に記憶されているデータを前記コピー元から前記コピー先にコピーする方法を提供する。 Furthermore, the present invention provides, as a third aspect, in the above register file, using the addresses stored in the first register and the second register, the sixth register and the seventh register. The first process of executing two memory loads for storing the data read from the copy source in the register, and the exclusive of the data stored in the sixth register and the data stored in the seventh register A second step of storing a logical sum in the eighth register; and a logical sum of the exclusive logical sum stored in the eighth register and the value stored in the ninth register. A third process for storing in the register and a memory store for storing the data stored in the sixth register in the copy destination using the address stored in the third register. It provides a way to copy the steps of the data stored in the copy source comprising the copy destination from the copy source.
さらに、本発明は、第四の態様として、上記のレジスタ・ファイルにおいて、コピー元に記憶されているデータを前記コピー元から前記コピー先にコピーする方法をコンピュータに実行させるためのプログラムであって、前記プログラムが行う処理は、前記第1のレジスタ及び前記第2のレジスタに格納されたアドレスを使用して、前記第6のレジスタ及び前記第7のレジスタに前記コピー元から読み出したデータを格納する二つのメモリロードを実行する第一の処理と、前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を第8のレジスタに格納する第二の処理と、前記第8のレジスタに格納された前記排他的論理和と前記第9のレジスタに格納された値との論理和を前記第9のレジスタに格納する第三の処理と、前記第3のレジスタに格納されたアドレスを使用して、前記第6のレジスタに格納されたデータを前記コピー先に格納するメモリストアを実行する第四の処理と、からなるものであるプログラムを提供する。 Furthermore, the present invention provides, as a fourth aspect, a program for causing a computer to execute a method of copying data stored in a copy source from the copy source to the copy destination in the register file. The processing performed by the program uses the addresses stored in the first register and the second register to store the data read from the copy source in the sixth register and the seventh register. A first process for executing the two memory loads, and an exclusive OR of the data stored in the sixth register and the data stored in the seventh register is stored in the eighth register. And the logical sum of the exclusive OR stored in the eighth register and the value stored in the ninth register is stored in the ninth register. And a fourth process for executing a memory store for storing the data stored in the sixth register in the copy destination using the address stored in the third register. Provide a program that consists of
本発明によれば、以下に記載するような効果がある。 The present invention has the following effects.
第1の効果は、メモリコピー処理において、メモリ読み出しを二重化するとともに、プロセッサ上において双方のデータが一致するか否かを判定しているので、データ化けを防止し、メモリコピー処理の信頼性の向上を図ることができることである。 The first effect is that, in the memory copy process, memory reading is duplicated and it is determined whether or not both data match on the processor, so that data corruption is prevented and the reliability of the memory copy process is improved. It is possible to improve.
第2の効果は、メモリコピー処理において、メモリコピー元のアドレス管理レジスタ(第1のレジスタ及び第2のレジスタ)及びメモリコピー先のアドレス管理レジスタ(第3のレジスタ)について、メモリコピー処理終了時の格納値と予め計算した最終アドレスとが一致するか否かの判定を行っているので、メモリコピー処理中のアドレス化けを防止し、メモリコピー処理の信頼性の向上を図ることができることである。 The second effect is that, in the memory copy process, the memory copy source address management register (first register and second register) and the memory copy destination address management register (third register) are terminated. Since it is determined whether or not the stored value matches the final address calculated in advance, address corruption during the memory copy process can be prevented, and the reliability of the memory copy process can be improved. .
第3の効果は、メモリコピー処理は、複数の命令を同時に処理可能なプロセッサ上のソフトウェアにより実行されるため、メモリコピー処理を実施するための特別なハードウェアを必要とせず、安価にメモリコピー処理を実現することができることである。 The third effect is that the memory copy process is executed by software on a processor capable of processing a plurality of instructions at the same time. Therefore, special hardware for executing the memory copy process is not required, and the memory copy process is inexpensive. The process can be realized.
第4の効果は、メモリコピー処理は、複数の命令を同時に処理可能なプロセッサ上のソフトウェアにより実行されるため、他の手段によるメモリコピー処理、例えば、同一処理を直列的に2回実行し、結果の一致を確認するメモリコピー処理と比較して、性能低下が発生しないことである。 The fourth effect is that the memory copy process is executed by software on a processor capable of simultaneously processing a plurality of instructions. Therefore, the memory copy process by other means, for example, the same process is executed twice in series. Compared with the memory copy process for confirming the coincidence of results, there is no performance degradation.
以上のように、本発明によれば、複数の命令を同時に処理可能な命令実行ユニットを備えるプロセッサにおいて、プロセッサ上で動作するソフトウェアの論理に従って、メモリ読み出し処理を二重化するととともに、プロセッサ上で双方のデータが一致するか否かの判定を実施することにより、性能を低下させることなく、メモリコピー処理の信頼性の向上を図ることができる。 As described above, according to the present invention, in a processor having an instruction execution unit capable of simultaneously processing a plurality of instructions, memory read processing is duplexed according to the logic of software operating on the processor, and both of the processors are executed on the processor. By determining whether or not the data match, it is possible to improve the reliability of the memory copy process without degrading the performance.
(第一の実施形態)
図1は、本発明の第一の実施形態に係るレジスタ・ファイル101を備えたデータ処理装置100のハードウェア構成を示すブロック図である。
(First embodiment)
FIG. 1 is a block diagram showing a hardware configuration of a
図1に示すデータ処理装置100は、本発明の第一の実施形態に係るレジスタ・ファイル101と、レジスタ・ファイル101と接続されているプロセッサ102と、プロセッサ102と接続されているメモリ103と、から構成されている。
A
メモリ103は、データ処理装置100における主記憶装置として機能するメモリである。
The
プロセッサ102は、それぞれが同時に命令を実行可能なN(Nは2以上の整数)個の命令実行ユニット102−1乃至102−Nを備えている。
The
プロセッサ102は、データ処理装置100において、ソフトウェア・プログラムにより指定された命令を実行する。
The
図2は、本発明の第一の実施形態に係るレジスタ・ファイル101の構造を示すブロック図である。
FIG. 2 is a block diagram showing the structure of the
レジスタ・ファイル101は各種レジスタを含んでおり、レジスタの種類としては、汎用レジスタ、浮動小数点レジスタ、制御レジスタ、命令ポインタなどがある。
The
図2に示すように、レジスタ・ファイル101は、メモリコピー元のアドレスを管理する第1のレジスタ(マスタ側レジスタ)201と、メモリコピー元のアドレスを管理する第2のレジスタ(スレーブ側レジスタ)202と、メモリコピー先のアドレスを管理する第3のレジスタ203と、メモリコピーの実行処理においてサイクル回数を管理する第4のレジスタ204と、1サイクル当たりのデータ長を管理する、すなわち、1サイクルでコピーされるバイト長が格納される第5のレジスタ205と、メモリコピーのデータを格納する第6のレジスタ(マスタ側レジスタ)と、メモリコピーのデータを格納する第7のレジスタ(スレーブ側レジスタ)と、排他的論理和の演算結果を格納する第8のレジスタ208と、論理和の演算結果を格納する第9のレジスタ209と、から構成されている。
As shown in FIG. 2, the
レジスタ・ファイル101は、メモリの読み出しを二重化するため、メモリコピー元のアドレスを管理するレジスタとして二つのレジスタ、すなわち、マスタ側レジスタとしての第1のレジスタ201とスレーブ側レジスタとしての第2のレジスタ202とを備えている。
The
後述するように、第5のレジスタ205には「1」または「8」が格納される。
As will be described later, “1” or “8” is stored in the
第1のレジスタ201及び第2のレジスタ202の場合と同様に、レジスタ・ファイル101は、メモリの読み出しを二重化するため、メモリコピーのデータを格納するレジスタとして二つのレジスタ、すなわち、マスタ側レジスタとしての第6のレジスタ206とスレーブ側レジスタとしての第7のレジスタ207とを備えている。
Similar to the case of the
第8のレジスタ208及び第9のレジスタ209は、メモリから読み出したデータの二重化チェックのために使用される。
The
図3は、本実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100におけるメモリコピーの開始処理のフローチャートである。
FIG. 3 is a flowchart of a memory copy start process in the
以下、図3を参照して、データ処理装置100におけるメモリコピーの開始処理を説明する。
Hereinafter, a memory copy start process in the
先ず、第1のレジスタ201にメモリコピー元の先頭アドレスを格納する(ステップS301)。 First, the first address of the memory copy source is stored in the first register 201 (step S301).
次いで、第2のレジスタ202にメモリコピー元の先頭アドレスを格納する(ステップS302)。 Next, the start address of the memory copy source is stored in the second register 202 (step S302).
次いで、第3のレジスタ203にメモリコピー先の先頭アドレスを格納する(ステップS303)。 Next, the start address of the memory copy destination is stored in the third register 203 (step S303).
次いで、第4のレジスタ204にメモリコピーのサイクル回数を格納する(ステップS304)。 Next, the number of memory copy cycles is stored in the fourth register 204 (step S304).
次いで、第5のレジスタ205にメモリコピーの1サイクルのデータ長を格納する(ステップS305)。 Next, the data length of one cycle of memory copy is stored in the fifth register 205 (step S305).
次いで、第9のレジスタ209にゼロを格納する(ステップS306)。すなわち、エラー表示をクリアしておく。 Next, zero is stored in the ninth register 209 (step S306). That is, the error display is cleared.
図4は、本実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100におけるメモリコピーの実行処理のフローチャートである。
FIG. 4 is a flowchart of the memory copy execution process in the
図4に示す各ステップは図3に示したステップの後に実行される。 Each step shown in FIG. 4 is executed after the step shown in FIG.
以下、図4を参照して、データ処理装置100におけるメモリコピーの実行処理を説明する。
Hereinafter, a memory copy execution process in the
先ず、第1のレジスタ201内に格納されているアドレスで指定されたメモリデータを読み出し、読み出したメモリデータを第6のレジスタ206に格納する(ステップS401)。
First, the memory data designated by the address stored in the
第2のレジスタ202内に格納されているアドレスで指定されたメモリデータを読み出し、読み出したメモリデータを第7のレジスタ207に格納する(ステップS402)。
The memory data designated by the address stored in the
第1のレジスタ201内に格納されているアドレスで指定されたメモリデータの読み出し(ステップS401)と第2のレジスタ202内に格納されているアドレスで指定されたメモリデータの読み出し(ステップS402)とは並行して行われる。すなわち、これら二つのステップS401及びS402は相前後して実行してもよく、あるいは、同時に実行してもよい。 Reading of memory data designated by the address stored in the first register 201 (step S401), reading of memory data designated by the address stored in the second register 202 (step S402), Are done in parallel. That is, these two steps S401 and S402 may be executed in succession or simultaneously.
第1のレジスタ201及び第2のレジスタ202に格納されたアドレスはともにメモリコピー元の先頭アドレス(図3のステップS301、S302)であり、同一のアドレスである。このため、ハードウェア障害が発生しない限り、第6のレジスタ206と第7のレジスタ207に格納されたメモリデータも同一である。
The addresses stored in the
次いで、第6のレジスタ206に格納されているメモリデータと第7のレジスタ207に格納されているメモリデータの排他的論理和演算を行い、その演算結果を第8のレジスタ208に格納する(ステップS403)。
Next, an exclusive OR operation of the memory data stored in the
第6のレジスタ206に格納されているデータと第7のレジスタ207に格納されているデータの内容が一致していれば、排他的論理和演算の演算結果は零となり、不一致であれば、演算結果は非零となる。
If the data stored in the
次いで、第8のレジスタ208に格納されている演算結果と第9のレジスタ209に格納されているデータ(最初の段階ではゼロ)との論理和演算を行い、その演算結果を第9のレジスタ209に再度格納する(ステップS404)。
Next, an OR operation is performed on the operation result stored in the
従って、メモリコピーの実行処理において、第6のレジスタ206に格納されているデータと第7のレジスタ207に格納されているデータの内容の不一致が一度でもあれば、メモリコピー終了時に、第9のレジスタ209の内容は非零となる。
Therefore, in the memory copy execution process, if there is even a mismatch between the contents of the data stored in the
一方、第6のレジスタ206に格納されているデータと第7のレジスタに格納されているデータの内容の不一致が一度もなかった場合は、メモリコピー終了時に、第9のレジスタ209の内容は零となる。
On the other hand, if there has never been a mismatch between the contents of the data stored in the
次いで、第6のレジスタ206に格納されているメモリデータを第3のレジスタ203に格納されているアドレスで指定されたメモリエリアに格納する(ステップS405)。
Next, the memory data stored in the
次いで、第1のレジスタ201、第2のレジスタ202及び第3のレジスタ203に格納されているアドレスに、第5のレジスタ205に格納されているメモリコピーの1サイクルのデータ長をそれぞれ加算し、その加算結果を第1のレジスタ201、第2のレジスタ202及び第3のレジスタ203に再度格納する(ステップS406)。
Next, the data length of one cycle of the memory copy stored in the
本実施形態においては、第5のレジスタ205に格納された値は「1」または「8」に設定されている。第5のレジスタ205に格納された値が「1」である場合には、対応するメモリコピーは1サイクル当たり1バイトの処理となり、第5のレジスタ205に格納された値が「8」である場合には、対応するメモリコピーは1サイクル当たり8バイトの処理となる。
In the present embodiment, the value stored in the
さらに、第4のレジスタ204に格納されているメモリコピーのサイクル回数から「1」を減算し、その減算結果を第4のレジスタ204に再度格納する(ステップS406)。
Furthermore, “1” is subtracted from the number of memory copy cycles stored in the
次いで、第4のレジスタ204に格納されているメモリコピーのサイクル回数が零か否かを確認する(ステップS407)。
Next, it is confirmed whether or not the number of memory copy cycles stored in the
メモリコピーのサイクル回数が零である場合には(ステップS407のYES)、メモリコピーの実行処理は終了し、後述するメモリコピーの終了処理(図5)に進む。 If the number of memory copy cycles is zero (YES in step S407), the memory copy execution process ends, and the process proceeds to a memory copy end process described later (FIG. 5).
メモリコピーのサイクル回数が非零である場合には(ステップS407のNO)、メモリコピーの実行処理を続行する。すなわち、ステップS401及びS402乃至ステップS407の処理を再度実行する。 If the memory copy cycle number is non-zero (NO in step S407), the memory copy execution process is continued. That is, the processes in steps S401 and S402 to S407 are executed again.
図5は、本実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100におけるメモリコピーの終了処理のフローチャートである。
FIG. 5 is a flowchart of a memory copy end process in the
図5に示す各ステップは図4に示したステップの後に実行される。 Each step shown in FIG. 5 is executed after the step shown in FIG.
以下、図5を参照して、データ処理装置100におけるメモリコピーの終了処理を説明する。
Hereinafter, the memory copy end process in the
以下に述べるように、メモリコピー処理の終了処理は、第4のレジスタ204に格納されたサイクル回数が零になった場合に開始され、第9のレジスタ209に最後に格納された値が零の場合に正常に終了し、零でない場合にはエラー検出となる。
As will be described below, the end process of the memory copy process is started when the number of cycles stored in the
先ず、第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致するか否かを判定する(ステップS501)。
First, it is determined whether or not the content stored in the
第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致していない場合には(ステップS501のNO)、ハードウェア障害が発生しており、メモリコピー処理が信頼できないことを示している。このため、障害処理を行う(ステップS505)。
If the contents stored in the
第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致している場合には(ステップS501のYES)、第9のレジスタ209に格納されている内容が零か否かを判定する(ステップS504)。
If the content stored in the
第9のレジスタ209に格納されている内容が零ではない場合(ステップS504のNO)、メモリ読み出し二重化チェックにおいて、ハードウェア障害が発生したことを示している。このため、障害処理を行う(ステップS505)。
If the content stored in the
第9のレジスタ209に格納されている内容が零である場合(ステップS504のYES)、メモリコピー処理は正常に終了する。
If the content stored in the
図6は、本実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100において、メモリコピーのパイプライン処理を行う場合のタイムチャートである。
FIG. 6 is a time chart when a memory copy pipeline process is performed in the
図6に示すタイムチャートは項目601乃至607から構成されている。
The time chart shown in FIG. 6 includes
項目601はマシンサイクルを示している。図6においては、マシンサイクル1から10までを示しており、マシンサイクル11以降は省略してある。
An
項目602は、ステップS406(図4)において実行される第4のレジスタ204の内容の更新状況を示している。
本実施形態においては、初期値は「7」に設定されている。すなわち、図4に示したメモリコピーの実行処理においては、7サイクルの処理が行われる。 In the present embodiment, the initial value is set to “7”. That is, in the memory copy execution process shown in FIG. 4, a process of 7 cycles is performed.
項目603はステップS401(図4)において実行されるメモリロード(マスタ側)の実行回数を示している。
An
項目604はステップS402(図4)において実行されるメモリロード(スレーブ側)の実行回数を示している。
An
項目603と項目604との比較から明らかであるように、同一マシンサイクルにおいては、同一実行回数のメモリロードが行われる。
As is clear from the comparison between the
項目605はステップS403(図4)において実行される排他的論理和演算の実行回数を示している。
An
項目606はステップS404(図4)において実行される論理和演算の実行回数を示している。
An
項目607はステップS405(図4)において実行されるメモリストアの回数を示している。
An
図4に示したフローチャートにおいては、論理的に理解し易くするため、実際の実行順序を入れ替えて示している。マシンサイクルに対応させた場合、メモリコピーの実行処理においては、図6に示したタイムチャートのようにパイプライン処理される。 In the flowchart shown in FIG. 4, the actual execution order is changed for easy understanding logically. In the case of corresponding to the machine cycle, in the execution process of the memory copy, pipeline processing is performed as shown in the time chart shown in FIG.
項目603乃至607において、実行回数の同一番号は同一のメモリデータに対応している。
In
例えば、実行回数の1回目に着目すると、「1回目」は、マシンサイクル「1」に対応する項目603及び604、マシンサイクル「7」に対応する項目605及び607、マシンサイクル「8」に対応する項目606に示されている。すなわち、マシンサイクル「1」に対応する項目603及び604において1回目のメモリロードでメモリから読み出したデータは、マシンサイクル「7」にそれぞれ対応する項目605の1回目の排他的論理和演算と、項目607の1回目のメモリストアで使用され、マシンサイクル「8」に対応する項目606の1回目の論理和演算においては、マシンサイクル「7」に対応する項目605の1回目の排他的論理和演算の結果が使用される。
For example, when focusing on the first execution number, “first time” corresponds to
同様に、実行回数の2回目に着目すると、「2回目」は、マシンサイクル「2」に対応する項目603及び604、マシンサイクル「8」に対応する項目605及び607、マシンサイクル「9」に対応する項目606に示されている。すなわち、マシンサイクル「2」に対応する項目603及び604において2回目のメモリロードでメモリから読み出したデータは、マシンサイクル「8」にそれぞれ対応する項目605の2回目の排他的論理和演算と、項目607の2回目のメモリストアで使用され、マシンサイクル「9」に対応する項目606の2回目の論理和演算においては、マシンサイクル「8」に対応する項目605の2回目の排他的論理和演算の結果が使用される。
Similarly, paying attention to the second execution number, “second” corresponds to
実行回数の「3回目」乃至「7回目」についても同様である。 The same applies to the “third” to “seventh” execution times.
以上のように、メモリロード(マスタ側)の実行回数、メモリロード(スレーブ側)の実行回数、排他的論理和演算の実行回数、論理和演算の実行回数、メモリストアの回数はマシンサイクルの番号に対応して実施される。 As described above, the number of executions of memory load (master side), the number of executions of memory load (slave side), the number of executions of exclusive OR operations, the number of executions of OR operations, and the number of memory stores are machine cycle numbers. It is implemented corresponding to.
このように、それぞれが同時に命令を実行可能なN個の命令実行ユニット102−1乃至102−Nを活用することにより、図6に示したようなメモリコピーのパイプライン処理を行うことが可能になる。 In this way, by utilizing the N instruction execution units 102-1 to 102-N, each capable of executing instructions simultaneously, it is possible to perform pipeline processing of memory copy as shown in FIG. Become.
なお、メモリコピー処理の実行処理においては、項目602乃至607は別々の命令実行ユニットで並列処理される。
In the execution process of the memory copy process,
図7はメモリコピーの処理分類を行う際のフローチャートである。 FIG. 7 is a flowchart when performing memory copy processing classification.
一般に、メモリコピーのデータ長、メモリコピー元のアドレス、メモリコピー先のアドレスには制限はない。従って、1サイクルのデータ長を1バイトにして、1バイト単位のメモリコピー処理を実行すれば論理的な矛盾は発生しないが、1バイト単位のメモリコピー処理を全てのケースで実行すると、性能的な問題が発生することが予測される。 In general, there is no limitation on the data length of the memory copy, the memory copy source address, and the memory copy destination address. Therefore, if the data length of one cycle is set to 1 byte and a memory copy process in units of 1 byte is executed, no logical contradiction occurs. However, if a memory copy process in units of 1 byte is executed in all cases, performance is improved. Is expected to occur.
このような性能的問題を回避するため、図7に示したフローチャートにより、メモリコピーの処理を分類している。 In order to avoid such performance problems, the memory copy processing is classified according to the flowchart shown in FIG.
先ず、メモリコピーのデータ長が8バイト以上であるか否かを判定する(ステップS701)。 First, it is determined whether or not the data length of the memory copy is 8 bytes or more (step S701).
メモリコピーのデータ長が8バイト未満である場合(ステップS701のNO)、メモリコピーのサイクル回数をメモリコピーのデータ長とする(ステップS702)。 When the memory copy data length is less than 8 bytes (NO in step S701), the memory copy cycle number is set as the memory copy data length (step S702).
次いで、メモリコピーの1サイクルのデータ長を1バイトに設定する(ステップS703)。 Next, the data length of one cycle of memory copy is set to 1 byte (step S703).
次いで、1バイト単位のメモリコピー処理を実行する(ステップS704)。 Next, a memory copy process in units of 1 byte is executed (step S704).
これにより、メモリコピー処理は終了する。 Thereby, the memory copy process ends.
メモリコピーのデータ長が8バイト以上である場合には(ステップS701のYES)、メモリコピーのサイクル回数を式(1)の商とし、次メモリコピーのデータ長を式(1)の余りとする(ステップS705)。 If the data length of the memory copy is 8 bytes or more (YES in step S701), the memory copy cycle number is the quotient of equation (1), and the data length of the next memory copy is the remainder of equation (1). (Step S705).
メモリコピーのデータ長÷8 (1) Memory copy data length ÷ 8 (1)
次いで、メモリコピーの1サイクルのデータ長を8バイトに設定する(ステップS706)。 Next, the data length of one cycle of memory copy is set to 8 bytes (step S706).
次いで、8バイト単位のメモリコピー処理を実行する(ステップS707)。 Next, a memory copy process in units of 8 bytes is executed (step S707).
次いで、式(1)の余りとして設定した次メモリコピーのデータ長(ステップS705)が零か否かを判定する(ステップS708)。 Next, it is determined whether or not the data length (step S705) of the next memory copy set as the remainder of the equation (1) is zero (step S708).
次メモリコピーのデータ長が零である場合には(ステップS708のYES)、メモリコピー処理は終了する。 If the data length of the next memory copy is zero (YES in step S708), the memory copy process ends.
次メモリコピーのデータ長が零でない場合には(ステップS708のNO)、メモリコピーのサイクル回数を次メモリコピーのデータ長とする(ステップS709)。 If the data length of the next memory copy is not zero (NO in step S708), the memory copy cycle number is set as the data length of the next memory copy (step S709).
次いで、メモリコピーの1サイクルのデータ長を1バイトに設定する(ステップS710)。 Next, the data length of one cycle of memory copy is set to 1 byte (step S710).
次いで、1バイト単位のメモリコピー処理を実行する(ステップS711)。 Next, a memory copy process in units of 1 byte is executed (step S711).
これにより、メモリコピー処理は終了する。 Thereby, the memory copy process ends.
1バイト単位のメモリコピー処理(ステップS704)は、具体的には、図3乃至図5に示したフローチャートに従って、実行される。 Specifically, the one-byte unit memory copy process (step S704) is executed according to the flowcharts shown in FIGS.
また、8バイト単位のメモリコピー処理(ステップS707)は、具体的には、図3乃至図5に示したフローチャートに従って、実行される。 Further, the memory copy process in units of 8 bytes (step S707) is specifically executed according to the flowcharts shown in FIGS.
また、1バイト単位のメモリコピー処理(ステップS711)は、具体的には、図3乃至図5に示したフローチャートに従って、実行される。 Further, the memory copy processing in units of 1 byte (step S711) is specifically executed according to the flowcharts shown in FIGS.
メモリコピーのサイクル回数(図3のステップS304)及びメモリコピーの1サイクルのデータ長(図3のステップS305)は図7のフローチャートに示す各ステップにより決定される。 The number of memory copy cycles (step S304 in FIG. 3) and the data length of one cycle of memory copy (step S305 in FIG. 3) are determined by the steps shown in the flowchart of FIG.
以上のように、本実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100によれば、メモリコピー処理において、メモリ読み出しを二重化するとともに、プロセッサ102上においてこれら二つのデータが一致するか否かを判定しているので、データ化けを防止し、メモリコピー処理の信頼性の向上を図ることが可能である。
As described above, according to the
(第一の実施形態の変形例)
図8は、本発明の第一の実施形態に係るレジスタ・ファイル101を備えるデータ処理装置100の変形例であるデータ処理装置150のブロック図である。
(Modification of the first embodiment)
FIG. 8 is a block diagram of a
本変形例におけるデータ処理装置150は、第一の実施形態におけるデータ処理装置100と比較して、キャッシュメモリ104を追加的に備えている。
The
キャッシュメモリ104はプロセッサ102とメモリ103との間に接続されている。
The
キャッシュメモリ104はメモリ103に格納されているデータの一部を一時的に格納する。これにより、プロセッサ102からメモリ103へのアクセス性能を向上させることができる。
The
(第二の実施形態)
図9は、本発明の第二の実施形態に係るレジスタ・ファイル200の構造を示すブロック図である。
(Second embodiment)
FIG. 9 is a block diagram showing the structure of the
図9に示すように、本実施形態に係るレジスタ・ファイル200は、第一の実施形態に係るレジスタ・ファイル101を構成する第1乃至第9のレジスタ201乃至209に加えて、第1のレジスタ201及び第2のレジスタ202におけるアドレス計算を検証する第10のレジスタ210と、第3のレジスタ203におけるアドレス計算を検証する第11のレジスタ211と、を備えている。
As shown in FIG. 9, the
第10のレジスタ210及び第11のレジスタ211は、第1のレジスタ201、第2のレジスタ202及び第3のレジスタ203におけるアドレス計算が正しく実施されたか否かを検証するために使用される。
The
第10のレジスタ210及び第11のレジスタ211を追加して備えている点を除いて、本実施形態に係るレジスタ・ファイル200は第一の実施形態に係るレジスタ・ファイル101と同一の構造を有しており、また、本実施形態に係るレジスタ・ファイル200を含むデータ処理装置も第一の実施形態に係るレジスタ・ファイル101を含むデータ処理装置100と同一の構造を有している。このため、第一の実施形態と同一の構成要素に対しては第一の実施形態における参照符号をそのまま用いる。
The
図10は、本実施形態に係るレジスタ・ファイル200を備えるデータ処理装置におけるメモリコピーの開始処理のフローチャートである。
FIG. 10 is a flowchart of the memory copy start process in the data processing apparatus including the
以下、図10を参照して、本実施形態に係るレジスタ・ファイル200を備えるデータ処理装置におけるメモリコピーの開始処理を説明する。
Hereinafter, a memory copy start process in the data processing apparatus including the
ステップS301乃至ステップS306までの各ステップは第一の実施形態の場合と同様に実施される。 Each step from step S301 to step S306 is performed in the same manner as in the first embodiment.
ステップS306に続けて、第10のレジスタ210にメモリコピー終了時のメモリコピー元のアドレスを格納する(ステップS307)。 Subsequent to step S306, the memory copy source address at the end of the memory copy is stored in the tenth register 210 (step S307).
具体的には、式(2)に示すように、第4のレジスタ204に格納されているデータと第5のレジスタ205に格納されているデータとの積と第1のレジスタ201に格納されているデータとの和を第10のレジスタ210に格納する。
Specifically, as shown in Expression (2), the product of the data stored in the
[第10のレジスタ]=
[第1のレジスタ]+[第4のレジスタ]×[第5のレジスタ] (2)
[Tenth register] =
[First register] + [fourth register] × [fifth register] (2)
次いで、第11のレジスタ211にメモリコピー終了時のメモリコピー先のアドレスを格納する(ステップS308)。 Next, the memory copy destination address at the end of the memory copy is stored in the eleventh register 211 (step S308).
具体的には、式(3)に示すように、第4のレジスタ204に格納されているデータと第5のレジスタ205に格納されているデータとの積と第3のレジスタ203に格納されているデータとの和を第11のレジスタ211に格納する。
Specifically, as shown in Expression (3), the product of the data stored in the
[第11のレジスタ]=
[第3のレジスタ]+[第4のレジスタ]×[第5のレジスタ] (3)
[Eleventh register] =
[Third register] + [fourth register] × [fifth register] (3)
第10のレジスタ210及び第11のレジスタ211は、メモリコピー終了時にアドレスの更新が正しく実施されたか否かをチェックするために使用される。
The
図11は、本実施形態に係るレジスタ・ファイル200を備えるデータ処理装置におけるメモリコピーの終了処理のフローチャートである。
FIG. 11 is a flowchart of the memory copy end process in the data processing apparatus including the
図11に示す各ステップは図4に示したステップの後に実行される。 Each step shown in FIG. 11 is executed after the step shown in FIG.
以下、図11を参照して、本実施形態に係るレジスタ・ファイル200を備えるデータ処理装置におけるメモリコピーの終了処理を説明する。
Hereinafter, with reference to FIG. 11, a memory copy end process in the data processing apparatus including the
先ず、第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致するか否かを判定する(ステップS501)。
First, it is determined whether or not the content stored in the
第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致していない場合には(ステップS501のNO)、ハードウェア障害が発生しており、メモリコピー処理が信頼できないことを示している。このため、障害処理を行う(ステップS505)。
If the contents stored in the
第1のレジスタ201に格納されている内容と第2のレジスタ202に格納されている内容とが一致している場合には(ステップS501のYES)、第2のレジスタ202に格納されている内容と第10のレジスタ210に格納されている内容とが一致するか否かを判定する(ステップS502)。
If the content stored in the
第2のレジスタ202に格納されている内容と第10のレジスタ210に格納されている内容とが一致していない場合には(ステップS502のNO)、ハードウェア障害が発生しており、メモリコピー処理が信頼できないことを示している。このため、障害処理を行う(ステップS505)。
If the contents stored in the
第2のレジスタ202に格納されている内容と第10のレジスタ210に格納されている内容とが一致している場合には(ステップS502のYES)、第3のレジスタ203に格納されている内容と第11のレジスタ211に格納されている内容とが一致するか否かを判定する(ステップS503)。
If the content stored in the
第3のレジスタ203に格納されている内容と第11のレジスタ211に格納されている内容とが一致していない場合には(ステップS503のNO)、ハードウェア障害が発生しており、メモリコピー処理が信頼できないことを示している。このため、障害処理を行う(ステップS505)。
If the contents stored in the
第3のレジスタ203に格納されている内容と第11のレジスタ211に格納されている内容とが一致している場合には(ステップS503のYES)、第9のレジスタ209に格納されている内容が零か否かを判定する(ステップS504)。
When the content stored in the
第9のレジスタ209に格納されている内容が零ではない場合(ステップS504のNO)、メモリ読み出し二重化チェックにおいて、ハードウェア障害が発生したことを示している。このため、障害処理を行う(ステップS505)。
If the content stored in the
第9のレジスタ209に格納されている内容が零である場合(ステップS504のYES)、メモリコピー処理は正常に終了する。
If the content stored in the
以上のように、本実施形態に係るレジスタ・ファイル200によれば、第1のレジスタ201、第2のレジスタ202及び第3のレジスタ203におけるアドレス計算の検証を行う第10のレジスタ210及び第11のレジスタ211を備えているため、メモリコピー処理の信頼性の向上を図ることができる。
As described above, according to the
100 第一の実施形態に係るレジスタ・ファイルを備えるデータ処理装置
101 第一の実施形態に係るレジスタ・ファイル
102 プロセッサ
102−1乃至102−N 命令実行ユニット
103 メモリ
104 キャッシュメモリ
150 変形例に係るデータ処理装置
200 第二の実施形態に係るレジスタ・ファイル
100
Claims (16)
前記コピー元のアドレスをそれぞれ記憶する第1のレジスタ及び第2のレジスタと、
前記コピー先のアドレスを記憶する第3のレジスタと、
前記データの転送サイクル数を記憶する第4のレジスタと、
前記データの1サイクルでの転送データ長を記憶する第5のレジスタと、
前記第1のレジスタにおいて記憶された前記アドレスを介して読み出されたデータを格納する第6のレジスタと、
前記第2のレジスタにおいて記憶された前記アドレスを介して読み出されたデータを格納する第7のレジスタと、
前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を格納する第8のレジスタと、
前記第8のレジスタに格納された排他的論理和と自レジスタが格納している値との論理和を格納する第9のレジスタと、
を備えるレジスタ・ファイル。 A memory copy register file for copying data stored in a copy source from the copy source to a copy destination,
A first register and a second register for respectively storing the copy source addresses;
A third register for storing the address of the copy destination;
A fourth register for storing the number of data transfer cycles;
A fifth register for storing a transfer data length in one cycle of the data;
A sixth register for storing data read via the address stored in the first register;
A seventh register for storing data read via the address stored in the second register;
An eighth register for storing an exclusive OR of the data stored in the sixth register and the data stored in the seventh register;
A ninth register for storing a logical sum of the exclusive OR stored in the eighth register and the value stored in the register;
A register file with
それぞれが同時に命令を実行可能な少なくとも二つの命令実行ユニットを備え、前記レジスタ・ファイルと接続されているプロセッサと、
前記プロセッサと接続されているメモリと、
を備えるデータ処理装置。 A register file as claimed in any one of claims 1 to 3;
A processor comprising at least two instruction execution units each capable of executing instructions simultaneously and connected to the register file;
A memory connected to the processor;
A data processing apparatus comprising:
前記第1のレジスタ及び前記第2のレジスタに格納されたアドレスを使用して、前記第6のレジスタ及び前記第7のレジスタに前記コピー元から読み出したデータを格納する二つのメモリロードを実行する第一の過程と、
前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を第8のレジスタに格納する第二の過程と、
前記第8のレジスタに格納された前記排他的論理和と前記第9のレジスタに格納された値との論理和を前記第9のレジスタに格納する第三の過程と、
前記第3のレジスタに格納されたアドレスを使用して、前記第6のレジスタに格納されたデータを前記コピー先に格納するメモリストアを実行する第四の過程と、
を備えるコピー元に記憶されているデータを前記コピー元から前記コピー先にコピーする方法。 In the register file according to any one of claims 1 to 3,
Two memory loads for storing data read from the copy source in the sixth register and the seventh register are executed using the addresses stored in the first register and the second register. The first process and
A second step of storing an exclusive OR of the data stored in the sixth register and the data stored in the seventh register in the eighth register;
A third step of storing a logical sum of the exclusive OR stored in the eighth register and a value stored in the ninth register in the ninth register;
A fourth step of executing a memory store for storing the data stored in the sixth register in the copy destination using the address stored in the third register;
A method of copying data stored in a copy source comprising the copy source to the copy destination.
前記第4のレジスタに格納されたサイクル回数から1を減算する第六の過程と、
前記第六の過程における減算により前記第4のレジスタに格納されたサイクル回数が零になるまで前記第一の過程乃至第六の過程を繰り返す第七の過程と、
をさらに備え、
前記第五乃至第七の過程は前記第四の過程後に実行されることを特徴とする請求項7に記載の方法。 The addresses stored in the first register, the second register, and the third register are added by the data length stored in the copy destination in one cycle of the first process to the fourth process. And the fifth process
A sixth step of subtracting 1 from the number of cycles stored in the fourth register;
A seventh process of repeating the first to sixth processes until the number of cycles stored in the fourth register becomes zero by subtraction in the sixth process;
Further comprising
The method according to claim 7, wherein the fifth to seventh processes are performed after the fourth process.
前記第2のレジスタにメモリコピー元の先頭アドレスを格納する第九の過程と、
前記第3のレジスタにメモリコピー先の先頭アドレスを格納する第十の過程と、
前記第5のレジスタにメモリコピーの1サイクルのデータ長を格納する第十一の過程と、
前記第9のレジスタにゼロを格納する第十二の過程と、
をさらに備え、
前記第九乃至第十二の過程は前記第一の過程前に実行されることを特徴とする請求項7または8に記載の方法。 An eighth step of storing the first address of the memory copy source in the first register;
A ninth step of storing the start address of the memory copy source in the second register;
A tenth step of storing the start address of the memory copy destination in the third register;
An eleventh step of storing the data length of one cycle of memory copy in the fifth register;
A twelfth process of storing zero in the ninth register;
Further comprising
The method according to claim 7 or 8, wherein the ninth to twelfth processes are performed before the first process.
メモリコピーのデータ長が予め定められたバイト数であるNバイト以上であるか否かを判定する過程と、
メモリコピーのデータ長がNバイト未満である場合に、メモリコピーのサイクル回数をメモリコピーのデータ長とする過程と、
メモリコピーの1サイクルのデータ長を1バイトに設定する過程と、
によって定められるものであることを特徴とする請求項9乃至12の何れか一項に記載の方法。 The data length is
Determining whether or not the data length of the memory copy is greater than or equal to N bytes, which is a predetermined number of bytes;
When the memory copy data length is less than N bytes, the process of setting the memory copy cycle number to the memory copy data length;
The process of setting the data length of one cycle of memory copy to 1 byte;
The method according to claim 9, wherein the method is defined by:
メモリコピーのデータ長が予め定められたバイト数であるNバイト以上であるか否かを判定する過程と、
メモリコピーのデータ長がNバイト以上である場合に、メモリコピーのサイクル回数を式(1)の商とし、次メモリコピーのデータ長を式(1)の余りとする過程と、
メモリコピーのデータ長÷N (1)
メモリコピーの1サイクルのデータ長をNバイトに設定する過程と、
により定められるものであり、
Nバイト単位のメモリコピー処理を実行する過程と、
次メモリコピーのデータ長が零か否かを判定する過程と、
次メモリコピーのデータ長が零である場合に、メモリコピー処理を終了する過程と、
をさらに備えることを特徴とする請求項7乃至12の何れか一項に記載の方法。 The data length is
Determining whether or not the data length of the memory copy is greater than or equal to N bytes, which is a predetermined number of bytes;
When the data length of the memory copy is N bytes or more, the process of setting the number of memory copy cycles as the quotient of equation (1) and the data length of the next memory copy as the remainder of equation (1);
Memory copy data length ÷ N (1)
Setting the data length of one cycle of memory copy to N bytes;
Is defined by
A process of executing a memory copy process in units of N bytes;
Determining whether the data length of the next memory copy is zero,
The process of ending the memory copy process when the data length of the next memory copy is zero,
The method according to claim 7, further comprising:
メモリコピーのデータ長が予め定められたバイト数であるNバイト以上であるか否かを判定する過程と、
メモリコピーのデータ長がNバイト以上である場合に、メモリコピーのサイクル回数を式(1)の商とし、次メモリコピーのデータ長を式(1)の余りとする過程と、
メモリコピーのデータ長÷N (1)
メモリコピーの1サイクルのデータ長をNバイトに設定する過程と、
Nバイト単位のメモリコピー処理を実行する過程と、
次メモリコピーのデータ長が零か否かを判定する過程と、
次メモリコピーのデータ長が零でない場合に、メモリコピーのサイクル回数を次メモリコピーのデータ長とする過程と、
メモリコピーの1サイクルのデータ長を1バイトに設定する過程と、
によって定められるものであることを特徴とする請求項7乃至12の何れか一項に記載の方法。 The data length is
Determining whether or not the data length of the memory copy is greater than or equal to N bytes, which is a predetermined number of bytes;
When the data length of the memory copy is N bytes or more, the process of setting the number of memory copy cycles as the quotient of equation (1) and the data length of the next memory copy as the remainder of equation (1);
Memory copy data length ÷ N (1)
Setting the data length of one cycle of memory copy to N bytes;
A process of executing a memory copy process in units of N bytes;
Determining whether the data length of the next memory copy is zero,
When the data length of the next memory copy is not zero, the process of setting the number of memory copy cycles to the data length of the next memory copy,
The process of setting the data length of one cycle of memory copy to 1 byte;
The method according to claim 7, wherein the method is defined by:
前記プログラムが行う処理は、
前記第1のレジスタ及び前記第2のレジスタに格納されたアドレスを使用して、前記第6のレジスタ及び前記第7のレジスタに前記コピー元から読み出したデータを格納する二つのメモリロードを実行する第一の処理と、
前記第6のレジスタに格納されたデータと前記第7のレジスタに格納されたデータとの排他的論理和を第8のレジスタに格納する第二の処理と、
前記第8のレジスタに格納された前記排他的論理和と前記第9のレジスタに格納された値との論理和を前記第9のレジスタに格納する第三の処理と、
前記第3のレジスタに格納されたアドレスを使用して、前記第6のレジスタに格納されたデータを前記コピー先に格納するメモリストアを実行する第四の処理と、
からなるものであるプログラム。 A program for causing a computer to execute a method of copying data stored in a copy source from the copy source to the copy destination in the register file according to any one of claims 1 to 3. ,
The processing performed by the program is as follows:
Two memory loads for storing data read from the copy source in the sixth register and the seventh register are executed using the addresses stored in the first register and the second register. The first process,
A second process of storing an exclusive OR of the data stored in the sixth register and the data stored in the seventh register in the eighth register;
A third process of storing a logical sum of the exclusive OR stored in the eighth register and a value stored in the ninth register in the ninth register;
A fourth process for executing a memory store for storing the data stored in the sixth register in the copy destination using the address stored in the third register;
A program that consists of:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008086375A JP2009238132A (en) | 2008-03-28 | 2008-03-28 | Data processing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008086375A JP2009238132A (en) | 2008-03-28 | 2008-03-28 | Data processing apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009238132A true JP2009238132A (en) | 2009-10-15 |
Family
ID=41251948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008086375A Pending JP2009238132A (en) | 2008-03-28 | 2008-03-28 | Data processing apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009238132A (en) |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05158688A (en) * | 1991-12-10 | 1993-06-25 | Fujitsu Ltd | Memory access device |
| JPH05165737A (en) * | 1991-12-17 | 1993-07-02 | Nec Eng Ltd | Memory test system |
| JPH05265789A (en) * | 1992-03-19 | 1993-10-15 | Fujitsu Ltd | Memory copy system |
| JPH11110215A (en) * | 1997-10-03 | 1999-04-23 | Keisuke Shindo | Information processor using multi thread program |
| JPH11175408A (en) * | 1997-12-05 | 1999-07-02 | Fujitsu Ltd | Information processing device |
| JP2001134538A (en) * | 1999-11-05 | 2001-05-18 | Ricoh Co Ltd | Signal processing device |
| JP2001256105A (en) * | 2000-02-18 | 2001-09-21 | Texas Instr Inc <Ti> | Microprocessor using unaligned circulation address specification |
| JP2001290710A (en) * | 2000-04-10 | 2001-10-19 | Toshiba Corp | Data error detection device |
| JP2003167730A (en) * | 2001-12-03 | 2003-06-13 | Hitachi Ltd | Instruction set variable microprocessor |
| JP2004157795A (en) * | 2002-11-07 | 2004-06-03 | Hitachi Ltd | Dual computer and its shared data matching method |
| JP2007257547A (en) * | 2006-03-24 | 2007-10-04 | Toshiba Corp | Memory system and bus splitter |
-
2008
- 2008-03-28 JP JP2008086375A patent/JP2009238132A/en active Pending
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05158688A (en) * | 1991-12-10 | 1993-06-25 | Fujitsu Ltd | Memory access device |
| JPH05165737A (en) * | 1991-12-17 | 1993-07-02 | Nec Eng Ltd | Memory test system |
| JPH05265789A (en) * | 1992-03-19 | 1993-10-15 | Fujitsu Ltd | Memory copy system |
| JPH11110215A (en) * | 1997-10-03 | 1999-04-23 | Keisuke Shindo | Information processor using multi thread program |
| JPH11175408A (en) * | 1997-12-05 | 1999-07-02 | Fujitsu Ltd | Information processing device |
| JP2001134538A (en) * | 1999-11-05 | 2001-05-18 | Ricoh Co Ltd | Signal processing device |
| JP2001256105A (en) * | 2000-02-18 | 2001-09-21 | Texas Instr Inc <Ti> | Microprocessor using unaligned circulation address specification |
| JP2001290710A (en) * | 2000-04-10 | 2001-10-19 | Toshiba Corp | Data error detection device |
| JP2003167730A (en) * | 2001-12-03 | 2003-06-13 | Hitachi Ltd | Instruction set variable microprocessor |
| JP2004157795A (en) * | 2002-11-07 | 2004-06-03 | Hitachi Ltd | Dual computer and its shared data matching method |
| JP2007257547A (en) * | 2006-03-24 | 2007-10-04 | Toshiba Corp | Memory system and bus splitter |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8732550B2 (en) | Processor and error correcting method | |
| US8196110B2 (en) | Method and apparatus for verifying a suspect return pointer in a stack | |
| CN108140011B (en) | vector load instruction | |
| CN108139907A (en) | Vector data send instructions | |
| US7840874B2 (en) | Speculative cache tag evaluation | |
| US20100017581A1 (en) | Low overhead atomic memory operations | |
| US20140149800A1 (en) | Test method and test control apparatus | |
| TWI670648B (en) | Method and apparatus for supporting wide operations using atomic sequences | |
| CN101847096A (en) | Optimization method of stack variable-containing function | |
| US5553232A (en) | Automated safestore stack generation and move in a fault tolerant central processor | |
| CN116670652A (en) | Providing host-based error detection capability in a remote execution device | |
| US5276862A (en) | Safestore frame implementation in a central processor | |
| JPS59231652A (en) | Memory access overlap detection method | |
| WO1995034855A2 (en) | Automated safestore stack generation and move in a fault tolerant central processor | |
| EP0645708B1 (en) | Store "UNDO" for cache store error recovery | |
| CN116382958A (en) | Memory error processing method and computing device | |
| US20090217135A1 (en) | Method, system, and computer program product for address generation checking | |
| US20060235894A1 (en) | Disambiguating globally unique identifiers after duplication | |
| JP2009238132A (en) | Data processing apparatus | |
| Hsiao et al. | The carry-dependent sum adder | |
| CN104239001A (en) | Operand generation in at least one processing pipeline | |
| CN110161835A (en) | The method and apparatus of the data model in system for calculating safety-critical | |
| CN114896179B (en) | Memory page copying method and device, computing equipment and readable storage medium | |
| US9021234B2 (en) | Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing | |
| JP4382128B2 (en) | Information processing apparatus and error calculation detection method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100702 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110207 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130130 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130212 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130415 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130514 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130917 |