JP2005258617A - Memory contention time measuring device, memory contention time measuring method and program - Google Patents

Memory contention time measuring device, memory contention time measuring method and program Download PDF

Info

Publication number
JP2005258617A
JP2005258617A JP2004066670A JP2004066670A JP2005258617A JP 2005258617 A JP2005258617 A JP 2005258617A JP 2004066670 A JP2004066670 A JP 2004066670A JP 2004066670 A JP2004066670 A JP 2004066670A JP 2005258617 A JP2005258617 A JP 2005258617A
Authority
JP
Japan
Prior art keywords
memory
contention
instruction
time
period
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
JP2004066670A
Other languages
Japanese (ja)
Inventor
Yumiko Nagasaka
裕美子 長坂
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
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 filed Critical NEC Corp
Priority to JP2004066670A priority Critical patent/JP2005258617A/en
Publication of JP2005258617A publication Critical patent/JP2005258617A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory contention time measuring device and the like that can accurately measure a memory contention time. <P>SOLUTION: About every instruction executed by an operation control part OCk, a memory contention counter MCCk identifies an excess period beyond the turnaround time in which a network unit NUk of a central processing unit CPUk starts to access a memory management unit and receives a response from the memory management unit which is in the absence of contention with other central processing units. The period accumulation of excess periods at least about any instruction is identified as a memory contention time. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、プロセッサ等がメモリにアクセスする時間が他の装置との競合のために遅延する量を計測するためのメモリ競合時間計測装置及びメモリ競合時間計測方法に関する。   The present invention relates to a memory contention time measuring apparatus and a memory contention time measuring method for measuring an amount of time that a processor or the like accesses to a memory due to contention with another device.

互いに対等な立場で共通のメモリに読み書きのリクエストを行う複数のCPU(中央処理ユニット)からなる、共有メモリ型SMP(Symmetric Multi-Processor)が、従来より利用されている。
共有メモリ型SMPのような、複数のCPUが共通のメモリにアクセスするシステムの動作を効率的にするには、複数のCPUによるメモリへのアクセスが競合することによるアクセス時間の遅延量、すなわちメモリ競合時間を知り、このメモリ競合時間をできるだけ短縮することが重要である。
Conventionally, a shared memory type SMP (Symmetric Multi-Processor) composed of a plurality of CPUs (Central Processing Units) that make read / write requests to a common memory in an equal position is used.
In order to efficiently operate a system in which a plurality of CPUs access a common memory, such as a shared memory type SMP, a delay amount of access time due to contention of accesses to the memory by the plurality of CPUs, that is, a memory It is important to know the contention time and reduce this memory contention time as much as possible.

メモリ競合時間あるいはこれに関連する情報を得る手法としては、メモリへのアクセスの競合のためにメモリアクセス要求の送出が遅延することに着目し、この遅延量を計測する手法が知られている(特許文献1参照)。
特開平2−236692号公報
As a method for obtaining the memory contention time or information related thereto, a method of measuring the amount of delay is known by paying attention to the delay in sending the memory access request due to the contention of access to the memory ( Patent Document 1).
JP-A-2-236692

しかし、特許文献1の手法は、メモリ競合時間自体を計測するものではないため、メモリ競合時間を正確に知ることができない。
本発明は、上記実状に鑑みてなされたもので、メモリ競合時間を正確に計測できるメモリ競合時間計測装置、メモリ競合時間計測方法及びプログラムを提供することを目的とする。
However, since the method of Patent Document 1 does not measure the memory contention time itself, the memory contention time cannot be accurately known.
The present invention has been made in view of the above circumstances, and an object thereof is to provide a memory contention time measuring device, a memory contention time measuring method, and a program capable of accurately measuring a memory contention time.

この目的を達成するため、本発明の第1の観点に係るメモリ競合時間計測装置は、
計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶するための無競合時ターンアラウンドタイムデータ記憶手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定する個別超過時間特定手段と、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する全体超過時間特定手段と、
を備えることを特徴とする。
このようなメモリ競合時間計測装置によれば、メモリ競合時間が正確に計測される。
In order to achieve this object, a memory contention time measuring apparatus according to the first aspect of the present invention includes:
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Contention-free turnaround time data storage means for storing contention-free turnaround time data representing the time taken to receive a response from the memory;
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. Individual overtime specifying means for specifying the excess period for each instruction,
Total excess time specifying means for specifying, as a measurement result of memory contention time, a period specified as the excess period for at least one of the instructions;
It is characterized by providing.
According to such a memory contention time measuring apparatus, the memory contention time is accurately measured.

前記個別超過時間特定手段は、前記命令がベクトル命令である場合、当該ベクトル命令を構成する最後の要素に従って前記計測対象のプロセッサが前記メモリへのアクセスを開始してから当該計測対象のプロセッサが前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している期間を、当該ベクトル命令についての超過期間として特定するものであってもよい。
このような構成を有していれば、一般に1個当たり数百個の要素を有するベクトル命令のすべての要素について超過期間を求めることによる処理の複雑化を避けることができる。
When the instruction is a vector instruction, the individual excess time specifying unit is configured so that the measurement target processor starts the access to the memory according to the last element constituting the vector instruction. Of the period until the response is received from the memory, the period exceeding the time indicated by the contention free turnaround time data may be specified as the excess period for the vector instruction.
With such a configuration, it is possible to avoid complication of processing due to obtaining an excess period for all elements of a vector instruction generally having several hundred elements per one.

無競合時ターンアラウンドタイムデータ記憶手段は、例えば複数の記憶領域を有していてもよく、この場合、各々の当該記憶領域は、前記無競合時ターンアラウンドタイムデータと、フラグとを記憶するための記憶領域であってもよい。
そしてこの場合、前記個別超過時間特定手段は、例えば、
前記計測対象のプロセッサが、前記命令を受け付けた旨の信号を発したとき、当該信号に応答して、前記無競合時ターンアラウンドタイムデータ記憶手段の記憶領域のいずれかを当該命令に割り当てる手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始した旨の信号を発したとき、当該信号に応答し、応答して以降、当該命令に割り当てられている記憶領域が記憶する前記無競合時ターンアラウンドタイムデータの値が0になるまでの間、当該無競合時ターンアラウンドタイムデータを、経過した時間に相当する量減算された状態へと更新する手段と、
前記命令に割り当てられている記憶領域が記憶する前記無競合時ターンアラウンドタイムデータの値が0になったことに応答して、当該記憶領域が記憶するフラグを、当該命令についての超過期間内であることを示す値へと更新する手段と、
前記命令に従って開始されたアクセスに前記メモリが応答したことを検知して、当該命令に割り当てられている記憶領域が記憶するフラグを、当該命令についての超過期間外であることを示す値へと更新する手段と、を備えていてもよく、
前記全体超過時間特定手段は、少なくともいずれかのフラグが超過期間内であることを示す値をとっていた期間の長さを計測し、計測結果を、メモリ競合時間の計測結果として特定する手段を備えるものであってもよい。
The contention-free turnaround time data storage means may have, for example, a plurality of storage areas. In this case, each storage area stores the contention-free turnaround time data and a flag. It may be a storage area.
In this case, the individual excess time specifying means is, for example,
Means for allocating one of the storage areas of the contention-free turnaround time data storage means to the instruction in response to the signal when the measurement target processor issues a signal indicating that the instruction has been received; ,
When the processor to be measured issues a signal indicating that access to the memory has been started by executing the instruction, the storage area allocated to the instruction after responding to the signal and responding to the signal Until the value of the contention-free turnaround time data stored in the table becomes 0, the contention-free turnaround time data is updated to an amount subtracted by an amount corresponding to the elapsed time;
In response to the value of the contention-free turnaround time data stored in the storage area allocated to the instruction being 0, the flag stored in the storage area is set within the excess period for the instruction. Means for updating to a value indicating that there is,
Detects that the memory responds to an access started in accordance with the instruction, and updates the flag stored in the storage area allocated to the instruction to a value indicating that it is outside the excess period for the instruction And a means for
The overall excess time specifying means measures a length of a period in which at least one of the flags takes a value indicating that it is within the excess period, and specifies a measurement result as a measurement result of the memory contention time. It may be provided.

また、本発明の第2の観点に係るメモリ競合時間計測方法は、
計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶し、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定し、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する、
ことを特徴とする。
このようなメモリ競合時間計測方法によっても、メモリ競合時間が正確に計測される。
In addition, the memory contention time measuring method according to the second aspect of the present invention includes:
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Stores contention-free turnaround time data representing the time it takes to receive a response from memory,
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. For each order,
Specifying the period specified as the excess period for at least one of the instructions as a measurement result of a memory contention time;
It is characterized by that.
Also by such a memory contention time measuring method, the memory contention time is accurately measured.

また、本発明の第3の観点に係るプログラムは、
コンピュータを、
計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶するための無競合時ターンアラウンドタイムデータ記憶手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定する個別超過時間特定手段と、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する全体超過時間特定手段と、
して機能させるためのものであることを特徴とする。
このようなプログラムを実行するコンピュータによっても、メモリ競合時間が正確に計測される。
A program according to the third aspect of the present invention is:
Computer
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Contention-free turnaround time data storage means for storing contention-free turnaround time data representing the time taken to receive a response from the memory;
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. Individual overtime specifying means for specifying the excess period for each instruction,
Total excess time specifying means for specifying a period specified as the excess period for at least one of the instructions as a measurement result of a memory contention time;
It is for making it function.
The memory contention time is accurately measured even by a computer that executes such a program.

本発明によれば、メモリ競合時間を正確に計測できるメモリ競合時間計測装置、メモリ競合時間計測方法及びプログラムが実現される。   According to the present invention, a memory contention time measuring apparatus, a memory contention time measuring method, and a program that can accurately measure a memory contention time are realized.

以下、本発明の実施の形態を、演算システムを例とし、図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings, taking an arithmetic system as an example.

図1は、この発明の実施の形態に係る演算システムの構成を示す図である。図示するように、この演算システムは、α個の中央処理ユニットCPU1〜CPUαと、β個のメモリ管理ユニットMMU1〜MMUβとより構成されている。中央処理ユニットCPU1〜CPUαは互いに実質的に同一の構成を有しており、メモリ管理ユニットMMU1〜MMUβは互いに実質的に同一の構成を有している。そしてこの演算システムは、中央処理ユニットCPU1〜CPUαがメモリ管理ユニットMMU1〜MMUβに対等にアクセスできるSMP(Symmetric Multi-Processor)を形成している。   FIG. 1 is a diagram showing a configuration of an arithmetic system according to an embodiment of the present invention. As shown in the figure, this arithmetic system is composed of α central processing units CPU1 to CPUα and β memory management units MMU1 to MMUβ. The central processing units CPU1 to CPUα have substantially the same configuration, and the memory management units MMU1 to MMUβ have substantially the same configuration. This arithmetic system forms an SMP (Symmetric Multi-Processor) in which the central processing units CPU1 to CPUα can access the memory management units MMU1 to MMUβ on an equal basis.

中央処理ユニットCPUk(kは1以上α以下の整数)は、図1及び図2に示すように、演算制御部OCkと、アドレス制御部ACkと、ネットワークユニットNUkと、メモリ競合カウンタMCCkと、水晶発振器等からなる図示しないクロック生成部とを備えている。   As shown in FIGS. 1 and 2, the central processing unit CPUk (k is an integer between 1 and α) includes an arithmetic control unit OCk, an address control unit ACk, a network unit NUk, a memory contention counter MCCk, and a crystal. A clock generator (not shown) including an oscillator and the like.

演算制御部OCk、アドレス制御部ACk及びネットワークユニットNUkは互いに接続されており、メモリ競合カウンタMCCkは、アドレス制御部ACk及びネットワークユニットNUkに接続されている。また、ネットワークユニットNUkは、バスを介し、メモリ管理ユニットMMU1〜MMUβの後述するメモリ制御部MC1〜MCβに接続されている。クロック生成部はクロック信号を生成し、このクロック信号を、演算制御部OCk、アドレス制御部ACk、ネットワークユニットNUk及びメモリ競合カウンタMCCkに連続的に供給する。   The arithmetic control unit OCk, the address control unit ACk, and the network unit NUk are connected to each other, and the memory contention counter MCCk is connected to the address control unit ACk and the network unit NUk. The network unit NUk is connected to memory control units MC1 to MCβ (to be described later) of the memory management units MMU1 to MMUβ via a bus. The clock generation unit generates a clock signal and continuously supplies this clock signal to the arithmetic control unit OCk, the address control unit ACk, the network unit NUk, and the memory contention counter MCCk.

演算制御部OCkは、論理演算の処理やデータの一時記憶などを行う論理回路などより構成されている。演算制御部OCkは、ネットワークユニットNUkより供給されるコマンドやオペランドに従った演算を実行し、実行の結果生成されるデータを出力しあるいは一時記憶する。
演算制御部OCkが出力するデータとしては、例えば、メモリ管理ユニットMMU1〜MMUβにストアするデータや、アドレス制御部ACkに向けて発するメモリアクセス(メモリ管理ユニットMMU1〜MMUβへのデータのストア、又はメモリ管理ユニットMMU1〜MMUβからのデータのロード)のリクエストや、メモリ管理ユニットMMU1〜MMUβが有するアクセス対象の記憶領域のアドレスなどがある。
The arithmetic control unit OCk is composed of a logic circuit that performs logical operation processing and temporary storage of data. The operation control unit OCk executes an operation according to a command or operand supplied from the network unit NUk, and outputs or temporarily stores data generated as a result of the execution.
The data output from the arithmetic control unit OCk includes, for example, data stored in the memory management units MMU1 to MMUβ, memory access issued to the address control unit ACk (data storage to the memory management units MMU1 to MMUβ, or memory Data load from the management units MMU1 to MMUβ), addresses of storage areas to be accessed by the memory management units MMU1 to MMUβ, and the like.

アドレス制御部ACkは、アドレスの一時記憶や加減算等の演算及び入出力を行う論理回路などより構成されている。アドレス制御部ACkは、演算制御部OCkより供給されるメモリアクセスのリクエストを取得して、このリクエストに従い、ネットワークユニットNUkに、メモリ管理ユニットMMU1〜MMUβのいずれかであるアクセス対象のメモリ管理ユニットへのメモリアクセスを要求する制御信号や、アクセスの対象となる記憶位置のアドレス等を供給する。また、このリクエストに応答して、メモリ競合カウンタMCCkに、メモリアクセスのリクエストを受け付けた旨を通知する信号を供給する。この信号は、当該リクエストが、演算制御部OCkが実行するどの命令に基づいて発せられたものかを特定する情報も含まれているものとする。   The address control unit ACk includes a logic circuit that performs operations such as temporary storage of addresses, addition and subtraction, and input / output. The address control unit ACk acquires a memory access request supplied from the arithmetic control unit OCk, and in accordance with this request, the network unit NUk is sent to the memory management unit to be accessed that is one of the memory management units MMU1 to MMUβ. A control signal for requesting memory access, an address of a storage location to be accessed, and the like are supplied. In response to this request, a signal for notifying that the memory access request has been accepted is supplied to the memory contention counter MCCk. It is assumed that this signal also includes information for specifying which instruction the request is issued by the arithmetic control unit OCk.

ネットワークユニットNUkは、論理回路等より構成されており、アドレス制御部ACkが制御信号を供給するとこの制御信号に応答して、メモリ競合カウンタMCCkに、リクエストを実行してメモリアクセスを開始する旨を通知する信号を供給する。一方でネットワークユニットNUkは、この制御信号に従い、バスを介し、アクセス対象のメモリ管理ユニットにメモリアクセスを行うことにより、リクエストを実行する。このメモリアクセスを行う際、ネットワークユニットNUkは、バスやアクセス対象のメモリ管理ユニットが中央処理ユニットCPUk以外の装置により利用されていないタイミングでこのメモリアクセスを行えるよう、ネゴシエーション(メモリアクセスのタイミングの調整等)を行う。また、アクセス対象のメモリ管理ユニットに、メモリアクセスの対象となる記憶位置のアドレス等を供給する。   The network unit NUk is composed of a logic circuit or the like, and when the address control unit ACk supplies a control signal, in response to the control signal, the memory contention counter MCCk executes a request to start memory access. Supply a signal to notify. On the other hand, the network unit NUk executes the request by performing memory access to the memory management unit to be accessed via the bus according to the control signal. When performing this memory access, the network unit NUk negotiates (adjusts the timing of the memory access) so that the memory management unit can be accessed at a timing when the bus or the memory management unit to be accessed is not used by a device other than the central processing unit CPUk. Etc.). Further, the memory management unit to be accessed is supplied with the address of the storage location to be accessed.

また、ネットワークユニットNUkは、メモリアクセスの結果として、アクセス対象のメモリ管理ユニットよりロードされたデータやその他の信号を供給されると、これらの信号等に応答して、メモリ競合カウンタMCCkに、メモリ管理ユニットMMU1〜MMUβからの応答を受け付けた旨を通知する信号を供給する。また、アクセス対象のメモリ管理ユニットよりロードされ供給されたデータを、演算制御部OCkに供給する。   Further, when the network unit NUk is supplied with data and other signals loaded from the memory management unit to be accessed as a result of the memory access, in response to these signals, the network unit NUk stores the memory contention counter MCCk in the memory A signal for notifying that the responses from the management units MMU1 to MMUβ have been received is supplied. Further, the data loaded and supplied from the memory management unit to be accessed is supplied to the arithmetic control unit OCk.

メモリ競合カウンタMCCkは、図2に示すように、R個(Rは演算処理部OCkが実行し得る命令のうちメモリアクセスを伴う命令の総個数以上の数であることが望ましい)の命令割り当てレジスタCARk−0〜CARk−(R−1)と、OR演算部ORkと、全体用カウンタC2kと、図示しないカウンタ制御部とより構成されている。このうちカウンタ制御部は、論理回路などより構成されており、命令割り当てレジスタCARk−0〜CARk−(R−1)や全体用カウンタC2kへのデータのストアや、命令割り当てレジスタCARk−0〜CARk−(R−1)や全体用カウンタC2kからのデータのロード、及びその他後述の処理を実行する。   As shown in FIG. 2, the memory contention counter MCCk has R instruction allocation registers (R is preferably a number equal to or greater than the total number of instructions with memory access among instructions that can be executed by the arithmetic processing unit OCk). CARk-0 to CARk- (R-1), an OR operation unit ORk, an overall counter C2k, and a counter control unit (not shown). Among these, the counter control unit is configured by a logic circuit or the like, and stores data in the instruction allocation registers CARk-0 to CARk- (R-1) and the overall counter C2k, and the instruction allocation registers CARk-0 to CARk. -Load data from (R-1) and the counter for the whole C2k, and other processing described later.

命令割り当てレジスタCARk−0〜CARk−(R−1)は、互いに実質的に同一の構成を有しており、それぞれ、データの一時記憶や加減算等の演算や入出力及びその他後述の処理を行う論理回路等より構成されている。
命令割り当てレジスタCARk−m(mは0以上R未満の整数)は、命令有効ビット記憶部CMVk−mと、命令別カウンタC1k−mと、カウンタ有効ビット記憶部CTVk−mとを備えている。なお、命令割り当てレジスタCARk−mには、レジスタ番号“m”が割り当てられているものとする。
The instruction allocation registers CARk-0 to CARk- (R-1) have substantially the same configuration, and perform operations such as temporary storage of data, addition / subtraction, input / output, and other processing described later. It is composed of a logic circuit or the like.
The instruction allocation register CARk-m (m is an integer greater than or equal to 0 and less than R) includes an instruction valid bit storage unit CMVk-m, an instruction-specific counter C1k-m, and a counter valid bit storage unit CTVk-m. It is assumed that the register number “m” is assigned to the instruction assignment register CARk-m.

命令有効ビット記憶部CMVk−mは、1ビットのデータからなる命令有効ビットを記憶し、後述する処理に従って、命令有効ビットの値を“0”又は“1”にセットする。
なお、命令有効ビット記憶部CMVk−mが記憶する命令有効ビットは、命令割り当てレジスタCARk−mが特定の命令に割り当てられているか否かを示すデータである。以下では、特定の命令に割り当てられていないことを示すとき命令有効ビットは値“0”をとり、割り当てられていることを示すとき値“1”をとるものとして説明する。
The instruction valid bit storage unit CMVk-m stores an instruction valid bit composed of 1-bit data, and sets the value of the instruction valid bit to “0” or “1” according to the processing described later.
Note that the instruction valid bit stored in the instruction valid bit storage unit CMVk-m is data indicating whether or not the instruction allocation register CARk-m is allocated to a specific instruction. In the following description, it is assumed that the instruction valid bit takes the value “0” when indicating that it is not assigned to a specific instruction, and takes the value “1” when indicating that it is assigned.

命令別カウンタC1k−mは、後述する処理に従って、後述の無競合時ターンアラウンドタイムを示す値を初期値として記憶し、次いで、オン状態にあるときはこの値のデクリメントを行い、オフ状態にあるときは源に記憶している値を保つ。   The instruction-specific counter C1k-m stores a value indicating a non-contention turnaround time, which will be described later, as an initial value in accordance with processing described later, and then decrements this value when in the on state and is in the off state. Sometimes keep the value stored in the source.

カウンタ有効ビット記憶部CTVk−mは、1ビットのデータからなるカウンタ有効ビットを記憶し、後述する処理に従って、カウンタ有効ビットの値を“0”又は“1”にセットする。
なお、カウンタ有効ビット記憶部CTVk−mが記憶するカウンタ有効ビットは、命令別カウンタC1k−mが記憶する値が“0”であるか否かを示すデータである。以下では、カウンタ有効ビットは値“0”をとるときは命令別カウンタC1k−mが記憶する値が“0”ではない状態を示し、値“1”をとるときは、命令別カウンタC1k−mが記憶する値が“0”である状態を示すものとして説明する。
The counter valid bit storage unit CTVk-m stores a counter valid bit composed of 1-bit data, and sets the value of the counter valid bit to “0” or “1” according to the processing described later.
The counter valid bit stored in the counter valid bit storage unit CTVk-m is data indicating whether or not the value stored in the instruction-specific counter C1k-m is “0”. In the following, when the counter valid bit takes the value “0”, it indicates that the value stored in the instruction-specific counter C1k-m is not “0”, and when it takes the value “1”, the instruction-specific counter C1k-m In the following description, it is assumed that the value stored in is “0”.

OR演算部ORkは、R個のカウンタ有効ビット記憶部CTVk−1〜CTVk−(R−1)が記憶するR個のカウンタ有効ビットの値の論理和を表すデータを生成して全体用カウンタC2kに供給する。   The OR operation unit ORk generates data representing the logical sum of the values of the R counter effective bits stored in the R counter effective bit storage units CTVk-1 to CTVk- (R-1), and generates a counter C2k for the whole. To supply.

全体用カウンタC2kは、初期値として値“0”を記憶し、OR演算部ORkより供給されるデータの値が“1”であるとき、クロック信号が所定の状態(例えば、立ち上がり)に至るタイミングが来るごとに、自己が記憶している値をインクリメントする。(以下では、当該所定の状態は、クロック信号の立ち上がりであるものとして説明する。)   The overall counter C2k stores a value “0” as an initial value, and when the value of data supplied from the OR operation unit ORk is “1”, the timing at which the clock signal reaches a predetermined state (for example, rise) Each time comes, increments the value stored by itself. (Hereinafter, the predetermined state will be described as the rising edge of the clock signal.)

MMUj(jは1以上β以下の整数)は、メモリ制御部MCjと、ランダムアクセスメモリRAMjとを備えている。メモリ制御部MCjとランダムアクセスメモリRAMjとは互いに接続されており、また、メモリ制御部MCjは、上述したバスを介し、中央処理ユニットCPU1〜αのネットワークユニットNU1〜NUαに接続されている。   MMUj (j is an integer between 1 and β) includes a memory control unit MCj and a random access memory RAMj. The memory control unit MCj and the random access memory RAMj are connected to each other, and the memory control unit MCj is connected to the network units NU1 to NUα of the central processing units CPU1 to αα via the bus described above.

メモリ制御部MCjは論理回路等より構成されており、ネットワークユニットNU1〜NUαよりバスを介してメモリアクセスを受け、メモリアクセスの対象となる記憶位置のアドレス等を供給されると、このメモリアクセスに従い、ランダムアクセスメモリRAMjの記憶領域内の当該記憶位置へのデータのストア、又は当該記憶位置からのデータのロードを行う。そして、ロード又はストアの完了を示す信号や、ロードされたデータを、メモリアクセスを行ったネットワークユニットへと供給する。なお、この信号やロードされたデータを供給する際、メモリ制御部MCjは、バスが自己以外の装置により利用されていないタイミングでこのメモリアクセスを行えるよう、ネゴシエーション(データを供給するタイミングの調整等)を行う。また、メモリ制御部MCjは、データのストアやロードの実行中、あるいはその他ネットワークユニットNU1〜NUαからの要求を受け付けることができない期間は、所定のビジー信号を出力する。   The memory control unit MCj is configured by a logic circuit or the like. When the memory access is received from the network units NU1 to NUα via the bus and the address of the storage location to be accessed is supplied, the memory control unit MCj follows the memory access. The data is stored in the storage location in the storage area of the random access memory RAMj, or the data is loaded from the storage location. Then, a signal indicating the completion of loading or storing and the loaded data are supplied to the network unit that performed the memory access. When supplying this signal and loaded data, the memory control unit MCj performs negotiation (adjustment of data supply timing, etc.) so that the memory can be accessed at a timing when the bus is not used by a device other than itself. )I do. Further, the memory control unit MCj outputs a predetermined busy signal during execution of data storage or loading, or during a period during which other requests from the network units NU1 to NUα cannot be accepted.

ランダムアクセスメモリRAMjは、メモリ制御部MCjのロードの処理に従い、メモリ制御部MCjが指定する記憶位置からデータを読み出してメモリ制御部MCjに供給する。また、メモリ制御部MCjのストアの処理に従い、メモリ制御部MCjが指定する記憶位置にデータを記憶したりする。   The random access memory RAMj reads data from the storage location designated by the memory control unit MCj and supplies it to the memory control unit MCj in accordance with the loading process of the memory control unit MCj. Further, according to the store processing of the memory control unit MCj, data is stored in a storage location designated by the memory control unit MCj.

次に、この演算システムがメモリ競合時間を計測する手順を、中央処理ユニットCPUkがメモリ管理ユニットMMUjにメモリアクセスを行う場合を例として、メモリ競合カウンタMCCkが実行する処理を中心に、図3を参照して説明する。図3は、メモリ競合時間を計測する手順を示すフローチャートである。   Next, a procedure for measuring the memory contention time by this arithmetic system will be described with reference to FIG. 3 focusing on the processing executed by the memory contention counter MCCk, taking as an example the case where the central processing unit CPUk accesses the memory management unit MMUj. The description will be given with reference. FIG. 3 is a flowchart showing a procedure for measuring the memory contention time.

まず、中央処理ユニットCPUkが動作を開始すると、メモリ競合カウンタMCCkは、所定の初期化を行う(図3、ステップS1)。具体的には、メモリ競合カウンタMCCkのカウンタ制御部は、ステップS1で、以下(1)〜(4)として示す処理を行う。つまり、
(1) 命令有効ビット記憶部CMVk−1〜CMVk−(R−1)が記憶する命令有効ビットの値を、いずれも“0”にセットする。
(2) カウンタ有効ビット記憶部CTVk−1〜CTVk−(R−1)が記憶するカウンタ有効ビットの値を、いずれも“0”にセットする。
(3) 命令別カウンタC1k−1〜C1k−(R−1)に、それぞれ無競合時ターンアラウンドタイムを示す値を初期値として格納する。
(4) 全体用カウンタC2kに、値“0”を初期値として格納する。
First, when the central processing unit CPUk starts operation, the memory contention counter MCCk performs predetermined initialization (FIG. 3, step S1). Specifically, the counter control unit of the memory contention counter MCCk performs the following processes (1) to (4) in step S1. That means
(1) The instruction effective bit values stored in the instruction effective bit storage units CMVk-1 to CMVk- (R-1) are all set to “0”.
(2) The value of the counter valid bit stored in the counter valid bit storage units CTVk-1 to CTVk- (R-1) is set to “0”.
(3) In the counters by instruction C1k-1 to C1k- (R-1), values indicating the non-contention turnaround time are stored as initial values.
(4) The value “0” is stored as an initial value in the overall counter C2k.

なお、中央処理ユニットCPUkのターンアラウンドタイムは、1個の命令に基づいて、ネットワークユニットNUkがメモリアクセスを開始する旨の信号を出力してから、ネットワークユニットNUkがメモリ管理ユニットMMU1〜MMUβからの応答を受け付けた旨の信号を出力するまでの時間である。そして、中央処理ユニットCPUkの無競合時ターンアラウンドタイムは、中央処理ユニットCPUk以外の中央処理ユニットがメモリアクセスを行っていない状態における、中央処理ユニットCPUkのターンアラウンドタイムである。
この、中央処理ユニットCPUkの無競合時ターンアラウンドタイムの値は、例えばあらかじめ実験を行って特定し、メモリ競合カウンタMCCkがあらかじめ記憶して、ステップS1においてこれを命令別カウンタC1k−1〜C1k−(R−1)にロードするようにすればよい。この場合、メモリ競合カウンタMCCkは、例えば、無競合時ターンアラウンドタイムの値を記憶する図示しない不揮発性メモリを備えていればよい。
また、命令別カウンタC1k−1〜C1k−(R−1)が記憶する、無競合時ターンアラウンドタイムを示す値は、具体的には、例えば、中央処理ユニットCPUkの無競合時ターンアラウンドタイムを上述のクロック信号の周期で除した値にほぼ等しい整数であるものとする。
Note that the turnaround time of the central processing unit CPUk is based on one instruction, and after the network unit NUk outputs a signal indicating that the memory access is started, the network unit NUk receives from the memory management units MMU1 to MMUβ. This is the time until a signal indicating that a response has been accepted is output. The contention-free turnaround time of the central processing unit CPUk is the turnaround time of the central processing unit CPUk in a state where no central processing unit other than the central processing unit CPUk performs memory access.
The contention-free turnaround time value of the central processing unit CPUk is specified, for example, by conducting an experiment in advance, and stored in advance in the memory contention counter MCCk, and in step S1, it is stored in the instruction-specific counters C1k-1 to C1k-. (R-1) may be loaded. In this case, the memory contention counter MCCk may include a non-volatile memory (not shown) that stores a value of the contention-free turnaround time, for example.
Further, the value indicating the non-contention turnaround time stored in the instruction-specific counters C1k-1 to C1k- (R-1) is, for example, the non-contention turnaround time of the central processing unit CPUk. It is assumed that the integer is substantially equal to the value divided by the period of the clock signal described above.

ステップS1の処理が終わった後、アドレス制御部ACkが、特定の命令(以下、当該命令を命令Aとする)に基づくメモリアクセスのリクエストを受け付けた旨の信号をメモリ競合カウンタMCCkへと供給した(ステップS2)とする。このとき、メモリ競合カウンタMCCkのカウンタ制御部は、命令有効ビット記憶部が記憶する命令有効ビットの値が“0”である命令割り当てレジスタのうち、レジスタ番号が最も若いものを命令Aに割り当てることを決定し(ステップS3)、命令Aに割り当てられた命令割り当てレジスタの命令有効ビット記憶部が記憶する命令有効ビットの値を、“1”にセットする(ステップS4)。
ただし、命令Aがベクトル命令である場合、ステップS3でメモリ競合カウンタMCCkのカウンタ制御部は、命令Aを構成する最後の要素のみを、当該命令割り当てレジスタに割り当てるものとする。
After the processing in step S1, the address control unit ACk supplies a signal indicating that a memory access request based on a specific instruction (hereinafter, the instruction is referred to as instruction A) to the memory contention counter MCCk. (Step S2). At this time, the counter control unit of the memory contention counter MCCk allocates to the instruction A the one with the smallest register number among the instruction allocation registers whose instruction valid bit value stored in the instruction valid bit storage unit is “0”. (Step S3), and the value of the instruction effective bit stored in the instruction effective bit storage unit of the instruction allocation register allocated to the instruction A is set to “1” (step S4).
However, if the instruction A is a vector instruction, the counter control unit of the memory contention counter MCCk assigns only the last element constituting the instruction A to the instruction allocation register in step S3.

次に、ネットワークユニットNUkが、この命令Aに基づくメモリアクセスを開始する旨の信号をメモリ競合カウンタMCCkに供給すると、メモリ競合カウンタMCCkのカウンタ制御部は、命令Aに割り当てられた命令割り当てレジスタの命令別カウンタをオン状態とする(ステップS5)。   Next, when the network unit NUk supplies a signal indicating that the memory access based on the instruction A is started to the memory contention counter MCCk, the counter control unit of the memory contention counter MCCk stores the instruction allocation register assigned to the instruction A. The instruction-specific counter is turned on (step S5).

一方、メモリ競合カウンタMCCkの各命令別カウンタのうちオン状態であるものは、メモリ競合カウンタMCCkに供給されるクロック信号が立ち上がる毎に、各自が記憶している値を1ずつデクリメントする(ステップS6)。そして、ステップS6でデクリメントを行った命令別カウンタは、各自が記憶している値が0以外の値であるか否かを判別し(ステップS7)、0以外であると判別した命令別カウンタはステップS6の処理を続行する。一方、0であると判別した命令別カウンタは、更なるデクリメントを行わないこととし、また、自己と同じ命令割り当てレジスタ内のカウンタ有効ビット記憶部が記憶するカウンタ有効ビットの値を“0”から“1”に書き換える(ステップS8)。
カウンタ有効ビットの値が“1”となることは、当該カウンタ有効ビットを記憶する命令割り当てレジスタに割り当てられている命令についてはターンアラウンドタイムが無競合時ターンアラウンドタイムを超過している、ということを示すものである。
On the other hand, the instructions in the memory contention counter MCCk that are on are decremented by 1 each time the clock signal supplied to the memory contention counter MCCk rises (step S6). ). The instruction-by-instruction counter that has decremented in step S6 determines whether or not the value stored in it is a value other than 0 (step S7). The process of step S6 is continued. On the other hand, the instruction-specific counter determined to be 0 does not further decrement, and the counter valid bit value stored in the counter valid bit storage unit in the same instruction allocation register as itself is changed from “0”. It is rewritten to “1” (step S8).
When the value of the counter valid bit is “1”, the turnaround time of the instruction assigned to the instruction assignment register that stores the counter valid bit exceeds the turnaround time when there is no contention. Is shown.

そして、メモリ競合カウンタMCCkのカウンタ制御部は、ネットワークユニットNUkが、命令Aに基づくメモリ管理ユニットMMU1〜MMUβからの応答を受け付けた旨の信号を発したか否かを判別する(ステップS9)。
ステップS9での判別の結果、当該信号が供給されたと判別すると、メモリ競合カウンタMCCkのカウンタ制御部は、命令Aに割り当てられた命令割り当てレジスタの命令別カウンタの値を、中央処理ユニットCPUkの無競合時ターンアラウンドタイムを示す値へとリセットし、当該命令別カウンタをオフ状態とする(ステップS10)。また、当該命令割り当てレジスタの命令有効ビット記憶部及びカウンタ有効ビット記憶部が記憶する命令有効ビット及びカウンタ有効ビットの値を、いずれも“0”へとリセットする。
一方、当該信号が供給されていないと判別すると、メモリ競合カウンタMCCkはステップS9の処理を繰り返す。
Then, the counter control unit of the memory contention counter MCCk determines whether or not the network unit NUk has issued a signal indicating that a response from the memory management units MMU1 to MMUβ based on the instruction A has been received (step S9).
If it is determined that the signal is supplied as a result of the determination in step S9, the counter control unit of the memory contention counter MCCk sets the value of the instruction-specific counter of the instruction allocation register allocated to the instruction A to the value of the central processing unit CPUk. The counter is reset to a value indicating the turnaround time at the time of competition, and the instruction-specific counter is turned off (step S10). Further, the values of the instruction effective bit and the counter effective bit stored in the instruction effective bit storage unit and the counter effective bit storage unit of the instruction allocation register are reset to “0”.
On the other hand, if it is determined that the signal is not supplied, the memory contention counter MCCk repeats the process of step S9.

ただし、上述したように、全体用カウンタC2kは、OR演算部ORkより供給されるデータの値が“1”であるとき(つまり、カウンタ有効ビット記憶部CTVk−1〜CTVk−(R−1)が記憶するカウンタ有効ビットのうち少なくともいずれかの値が“1”であるとき)は、クロック信号が立ち上がる毎に、自己が記憶している値をインクリメントする(ステップS11,S12)。   However, as described above, the overall counter C2k has a value of “1” supplied from the OR operation unit ORk (that is, the counter valid bit storage units CTVk-1 to CTVk− (R−1)). When the value of at least one of the counter valid bits stored in (1) is “1”), the value stored by itself is incremented each time the clock signal rises (steps S11 and S12).

メモリ競合カウンタMCCkが上述のステップS1〜S12の動作を行う一方、メモリ競合カウンタMCCkのカウンタ制御部は、全体用カウンタC2kが記憶している値を示すデータを、中央処理ユニットCPUkのメモリ競合時間を示すデータとして、外部に出力する。   While the memory contention counter MCCk performs the operations of steps S1 to S12 described above, the counter control unit of the memory contention counter MCCk uses the data indicating the value stored in the overall counter C2k as the memory contention time of the central processing unit CPUk. Is output to the outside as data indicating.

メモリ競合カウンタMCCkが上述の動作をする結果、特定の時点で全体用カウンタC2kが記憶する値は、当該時点までに、中央処理ユニットCPUkが実行するいずれかの命令について実際のターンアラウンドタイムが無競合時ターンアラウンドタイムを超過していた期間を累計した時間を示している。この時間が、当該時点までにおける中央処理ユニットCPUkのメモリ競合時間である。
なお、ベクトル命令の最後の要素のみを命令割り当てレジスタに割り当てるようにすると、すべての要素を割り当てた場合に比べ、メモリ競合時間の計測の精度は若干低下することが考えられるものの、処理の複雑化を避けたり、メモリ競合カウンタMCCkの構成を小型で簡単なものとしたりする上では有益である。
As a result of the above-described operation of the memory contention counter MCCk, the value stored in the overall counter C2k at a specific point in time has no actual turnaround time for any instruction executed by the central processing unit CPUk by that point. It shows the cumulative total of the periods that exceeded the turnaround time at the time of competition. This time is the memory contention time of the central processing unit CPUk up to this point.
Note that if only the last element of a vector instruction is assigned to the instruction allocation register, the accuracy of measuring the memory contention time may be slightly lower than when all elements are assigned, but the processing becomes more complicated. This is useful for avoiding the above-mentioned problem and making the configuration of the memory contention counter MCCk small and simple.

以上説明したこの演算システムの構成は、必ずしも上述のものに限られない。
例えば、演算制御部OC1〜OCαの構成は必ずしも実質的に同一である必要はなく、また、中央処理ユニットCPU1〜CPUαはまったく対等な立場でメモリ管理ユニットMMU1〜MMUβにアクセスするものである必要はない。
また、メモリ競合カウンタは中央処理ユニットCPU1〜CPUαのすべてが備えている必要はなく、メモリ競合時間を計測する対象である中央処理ユニットのみが備えていれば十分である。メモリ競合カウンタを備えない中央処理ユニットのアドレス制御部やネットワークユニットは、メモリ競合カウンタへと信号を供給する機能を有する必要はない。
また、メモリ競合カウンタMCCkは、演算制御部OCkやアドレス制御部ACkやネットワークユニットNUkと一体に形成されている必要はない。
また、ベクトル命令のすべての要素を命令割り当てレジスタに割り当てることによる処理の複雑化を許容できるような条件下では、すべての要素を割り当てるようにしてもよい。
The configuration of the arithmetic system described above is not necessarily limited to that described above.
For example, the configurations of the arithmetic control units OC1 to OCα do not necessarily have to be substantially the same, and the central processing units CPU1 to CPUα need to access the memory management units MMU1 to MMUβ from an entirely equivalent standpoint. Absent.
Further, it is not necessary for the memory contention counter to be provided in all of the central processing units CPU1 to CPUα, and it is sufficient if only the central processing unit that is a target for measuring the memory contention time is provided. The address control unit or network unit of the central processing unit that does not include a memory conflict counter need not have a function of supplying a signal to the memory conflict counter.
Further, the memory contention counter MCCk does not need to be formed integrally with the arithmetic control unit OCk, the address control unit ACk, and the network unit NUk.
Also, all the elements may be allocated under conditions that allow the processing complexity to be allowed by allocating all the elements of the vector instruction to the instruction allocation register.

以上、この発明の実施の形態を説明したが、この発明にかかるメモリ競合時間計測装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、中央処理ユニットCPUkのアドレス制御部ACk及びネットワークユニットNUkに接続されたパーソナルコンピュータに上述の命令割り当てレジスタCARk−0〜CARk−(R−1)、OR演算部ORk、全体用カウンタC2k及びカウンタ制御部の動作を実行させるためのプログラムを格納した記録媒体(CD−ROM、MO、フレキシブルディスク等)から該プログラムをインストールすることにより、メモリ競合カウンタMCCkを構成することができる。   Although the embodiment of the present invention has been described above, the memory contention time measuring apparatus according to the present invention can be realized using a normal computer system, not a dedicated system. For example, the above-described instruction allocation registers CARk-0 to CARk- (R-1), the OR operation unit ORk, the overall counter C2k and the counter are added to the personal computer connected to the address control unit ACk and the network unit NUk of the central processing unit CPUk. The memory contention counter MCCk can be configured by installing the program from a recording medium (CD-ROM, MO, flexible disk, etc.) storing a program for executing the operation of the control unit.

また、例えば、通信回線の掲示板(BBS)にこのプログラムをアップロードし、これを通信回線を介して配信してもよく、また、このプログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調してこれらのプログラムを復元するようにしてもよい。
そして、このプログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
Further, for example, this program may be uploaded to a bulletin board (BBS) of a communication line and distributed via the communication line. Also, a carrier wave is modulated by a signal representing this program, and the obtained modulated wave is A device that transmits and receives the modulated wave may demodulate the modulated wave to restore these programs.
The above-described processing can be executed by starting this program and executing it under the control of the OS in the same manner as other application programs.

なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。   When the OS shares a part of the processing, or when the OS constitutes a part of one component of the present invention, a program excluding the part is stored in the recording medium. May be. Also in this case, in the present invention, it is assumed that the recording medium stores a program for executing each function or step executed by the computer.

本発明の実施の形態に係る演算システムの構成を示す図である。It is a figure which shows the structure of the arithmetic system which concerns on embodiment of this invention. 中央処理ユニットの構成を示す図である。It is a figure which shows the structure of a central processing unit. メモリ競合時間を計測する処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process which measures memory contention time.

符号の説明Explanation of symbols

CPU1〜CPUα 中央処理ユニット
OC1〜OCα 演算制御部
AC1〜ACα アドレス制御部
NU1〜NUα ネットワークユニット
MCC1〜MCCα メモリ競合カウンタ
CAR1−0〜CARα−(R−1) 命令割り当てカウンタ
CMV1−0〜CMVα−(R−1) 命令有効ビット記憶部
C11−0〜C1α−(R−1) 命令別カウンタ
CTV1−0〜CTVα−(R−1) カウンタ有効ビット記憶部
OR1〜ORα OR演算部
C21〜C2α 全体用カウンタ
MMU1〜MMUβ メモリ管理ユニット
MC1〜MCβ メモリ制御部
RAM1〜RAMβ ランダムアクセスメモリ
CPU1 to CPUα Central processing unit OC1 to OCα Operation control unit AC1 to ACα Address control unit NU1 to NUα Network unit MCC1 to MCCα Memory contention counter CAR1-0 to CARα- (R-1) Instruction allocation counter CMV1-0 to CMVα- ( R-1) Instruction valid bit storage unit C11-0 to C1α- (R-1) Instruction-specific counter CTV1-0 to CTVα- (R-1) Counter valid bit storage unit OR1 to ORα OR operation unit C21 to C2α Counter MMU1-MMUβ Memory management unit MC1-MCβ Memory control unit RAM1-RAMβ Random access memory

Claims (5)

計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶するための無競合時ターンアラウンドタイムデータ記憶手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定する個別超過時間特定手段と、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する全体超過時間特定手段と、
を備えることを特徴とするメモリ競合時間計測装置。
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Contention-free turnaround time data storage means for storing contention-free turnaround time data representing the time taken to receive a response from the memory;
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. Individual overtime specifying means for specifying the excess period for each instruction,
Total excess time specifying means for specifying, as a measurement result of memory contention time, a period specified as the excess period for at least one of the instructions;
A memory contention time measuring apparatus comprising:
前記個別超過時間特定手段は、前記命令がベクトル命令である場合、当該ベクトル命令を構成する最後の要素に従って前記計測対象のプロセッサが前記メモリへのアクセスを開始してから当該計測対象のプロセッサが前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している期間を、当該ベクトル命令についての超過期間として特定するものである、
ことを特徴とする請求項1に記載のメモリ競合時間計測装置。
When the instruction is a vector instruction, the individual excess time specifying unit is configured so that the measurement target processor starts the access to the memory according to the last element constituting the vector instruction. Among the periods until a response is received from the memory, the period exceeding the time indicated by the contention free turnaround time data is specified as the excess period for the vector instruction.
The memory contention time measuring apparatus according to claim 1.
無競合時ターンアラウンドタイムデータ記憶手段は複数の記憶領域を有しており、各々の当該記憶領域は、前記無競合時ターンアラウンドタイムデータと、フラグとを記憶するための記憶領域であり、
前記個別超過時間特定手段は、
前記計測対象のプロセッサが、前記命令を受け付けた旨の信号を発したとき、当該信号に応答して、前記無競合時ターンアラウンドタイムデータ記憶手段の記憶領域のいずれかを当該命令に割り当てる手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始した旨の信号を発したとき、当該信号に応答し、応答して以降、当該命令に割り当てられている記憶領域が記憶する前記無競合時ターンアラウンドタイムデータの値が0になるまでの間、当該無競合時ターンアラウンドタイムデータを、経過した時間に相当する量減算された状態へと更新する手段と、
前記命令に割り当てられている記憶領域が記憶する前記無競合時ターンアラウンドタイムデータの値が0になったことに応答して、当該記憶領域が記憶するフラグを、当該命令についての超過期間内であることを示す値へと更新する手段と、
前記命令に従って開始されたアクセスに前記メモリが応答したことを検知して、当該命令に割り当てられている記憶領域が記憶するフラグを、当該命令についての超過期間外であることを示す値へと更新する手段と、を備え、
前記全体超過時間特定手段は、少なくともいずれかのフラグが超過期間内であることを示す値をとっていた期間の長さを計測し、計測結果を、メモリ競合時間の計測結果として特定する手段を備える、
ことを特徴とする請求項1又は2に記載のメモリ競合時間計測装置。
The contention-free turnaround time data storage means has a plurality of storage areas, and each storage area is a storage area for storing the contention-free turnaround time data and a flag,
The individual excess time specifying means is:
Means for allocating one of the storage areas of the contention-free turnaround time data storage means to the instruction in response to the signal when the measurement target processor issues a signal indicating that the instruction has been received; ,
When the measurement target processor issues a signal indicating that access to the memory has been started by executing the instruction, the storage area allocated to the instruction after responding to the signal and responding to the signal Until the value of the contention-free turnaround time data stored in is stored at 0, the contention-free turnaround time data is updated to a state subtracted by an amount corresponding to the elapsed time;
In response to the value of the contention-free turnaround time data stored in the storage area allocated to the instruction being 0, the flag stored in the storage area is set within the excess period for the instruction. Means for updating to a value indicating that there is,
Detects that the memory responds to an access started in accordance with the instruction, and updates the flag stored in the storage area allocated to the instruction to a value indicating that it is outside the excess period for the instruction And means for
The total excess time specifying means measures a length of a period in which at least one of the flags takes a value indicating that it is within the excess period, and specifies a measurement result as a measurement result of the memory contention time. Prepare
The memory contention time measuring apparatus according to claim 1 or 2, characterized in that:
計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶し、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定し、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する、
ことを特徴とするメモリ競合時間計測方法。
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Stores contention-free turnaround time data representing the time it takes to receive a response from memory,
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. For each order,
Specifying the period specified as the excess period for at least one of the instructions as a measurement result of a memory contention time;
A memory contention time measuring method characterized by the above.
コンピュータを、
計測対象のプロセッサが、メモリへのアクセスを指示する命令を実行することにより前記メモリへのアクセスを開始してから、前記メモリにアクセスする他の装置が存在しない状態で当該計測対象のプロセッサが前記メモリより応答を受けるまでの時間を表す無競合時ターンアラウンドタイムデータを記憶するための無競合時ターンアラウンドタイムデータ記憶手段と、
前記計測対象のプロセッサが、前記命令を実行することにより前記メモリへのアクセスを開始してから前記メモリより応答を受けるまでの期間のうち、前記無競合時ターンアラウンドタイムデータが示す時間を超過している超過期間を、命令毎に特定する個別超過時間特定手段と、
少なくともいずれかの前記命令について前記超過期間と特定された期間を、メモリ競合時間の計測結果として特定する全体超過時間特定手段と、
して機能させるためのプログラム。
Computer
The measurement target processor starts the access to the memory by executing an instruction to access the memory, and then the measurement target processor does not exist in a state where there is no other device that accesses the memory. Contention-free turnaround time data storage means for storing contention-free turnaround time data representing the time taken to receive a response from the memory;
Of the period from when the measurement target processor starts accessing the memory by executing the instruction to receiving a response from the memory, the time indicated by the contention-free turnaround time data is exceeded. Individual overtime specifying means for specifying the excess period for each instruction,
Total excess time specifying means for specifying, as a measurement result of memory contention time, a period specified as the excess period for at least one of the instructions;
Program to make it function.
JP2004066670A 2004-03-10 2004-03-10 Memory contention time measuring device, memory contention time measuring method and program Pending JP2005258617A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004066670A JP2005258617A (en) 2004-03-10 2004-03-10 Memory contention time measuring device, memory contention time measuring method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004066670A JP2005258617A (en) 2004-03-10 2004-03-10 Memory contention time measuring device, memory contention time measuring method and program

Publications (1)

Publication Number Publication Date
JP2005258617A true JP2005258617A (en) 2005-09-22

Family

ID=35084294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004066670A Pending JP2005258617A (en) 2004-03-10 2004-03-10 Memory contention time measuring device, memory contention time measuring method and program

Country Status (1)

Country Link
JP (1) JP2005258617A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101772921B1 (en) 2016-11-25 2017-08-30 전남대학교 산학협력단 Memory contention aware power management for high performance GPU and power management unit, GPU
US11942184B2 (en) 2020-09-29 2024-03-26 Fujifilm Business Innovation Corp. Programmable logic circuit, information processing apparatus, and non-transitory computer readable medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101772921B1 (en) 2016-11-25 2017-08-30 전남대학교 산학협력단 Memory contention aware power management for high performance GPU and power management unit, GPU
US11942184B2 (en) 2020-09-29 2024-03-26 Fujifilm Business Innovation Corp. Programmable logic circuit, information processing apparatus, and non-transitory computer readable medium

Similar Documents

Publication Publication Date Title
CN107729159B (en) Address mapping method and device for shared memory
US7082509B2 (en) Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
CN100592271C (en) Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
CN103198450B (en) Image processing system
US4782439A (en) Direct memory access system for microcontroller
US8972957B2 (en) Thermal-aware source code compilation
JP2000181857A (en) Method and device for implementing direct access transfer related to nonsequential address designable storage place
US7493435B2 (en) Optimization of SMI handling and initialization
EP0071743A2 (en) Refresh circuit for dynamic memory of a data processor employing a direct memory access controller
JP2007026094A (en) Execution device and application program
JPWO2009119009A1 (en) Access control device
CN109977037B (en) DMA data transmission method and system
US11068283B2 (en) Semiconductor apparatus, operation method thereof, and stacked memory apparatus having the same
JP2007508607A (en) Memory interface for a system having multiple processors and a memory system
CN115576716A (en) Memory management method based on multiple processes
US7552319B2 (en) Methods and apparatus to manage memory access
EP3327570A1 (en) Dual mode local data store
JP2002140283A (en) Memory allocating method to a plurality of extended slots in data processing system
JP2005258617A (en) Memory contention time measuring device, memory contention time measuring method and program
US4811204A (en) Direct memory access and display system
CN109656720B (en) Address space allocation method and device
JP2015215684A (en) Information processing apparatus and information processing program
JPWO2006001051A1 (en) Multiprocessor device and control method thereof
TW201220044A (en) Method for setting memory address space
JP2022056144A (en) Programmable logic circuit, information processing apparatus, information processing system, and program