JP2012093944A - Information processor and information processing method - Google Patents

Information processor and information processing method Download PDF

Info

Publication number
JP2012093944A
JP2012093944A JP2010240447A JP2010240447A JP2012093944A JP 2012093944 A JP2012093944 A JP 2012093944A JP 2010240447 A JP2010240447 A JP 2010240447A JP 2010240447 A JP2010240447 A JP 2010240447A JP 2012093944 A JP2012093944 A JP 2012093944A
Authority
JP
Japan
Prior art keywords
load
buffer
load data
counter
alignment
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.)
Granted
Application number
JP2010240447A
Other languages
Japanese (ja)
Other versions
JP5348698B2 (en
Inventor
Takahiro Uchida
尊博 内田
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 Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2010240447A priority Critical patent/JP5348698B2/en
Publication of JP2012093944A publication Critical patent/JP2012093944A/en
Application granted granted Critical
Publication of JP5348698B2 publication Critical patent/JP5348698B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide high-speed reading to a calculation register while securing data reliability.SOLUTION: The information processor comprises: a load request generation part; a load buffer for storing load data to individual load requests and transferring them into a calculation register; a memory network for inputting the load request generated by the load request generation part, reading the load data to the load request from a main memory, and controlling the main memory so that accompanying information, generated by the main memory, indicating the order in which the load data is read from the load buffer should be sent out prior to the load data; and an alignment determination part for detecting delay of arrival of the load data corresponding to the accompanying information on the basis thereof and adjusting a start time of reading from the load buffer to the calculation register on the basis of delay of arrival of the load data.

Description

本発明は、情報処理装置に関する。   The present invention relates to an information processing apparatus.

従来より、(1)1つのロード命令から、命令で指定された複数のロードリクエストを生成し、(2)個々のロードリクエストに対するロードデータを一旦ロードバッファに格納し、(3)全てのロードデータがロードバッファに格納されることを識別し、(4)ロードバッファから演算レジスタにロードデータを転送する情報処理装置が知られている。このような情報処理装置は、例えば、特許文献1に開示されている。   Conventionally, (1) a plurality of load requests specified by an instruction is generated from one load instruction, (2) load data for each load request is temporarily stored in a load buffer, and (3) all load data Is known to be stored in a load buffer, and (4) an information processing device is known that transfers load data from the load buffer to an arithmetic register. Such an information processing apparatus is disclosed in Patent Document 1, for example.

図10は、従来の情報処理装置のうち、ロードデータがロードバッファに格納されたことを判定する整数判定部の構成を示す図である。図10において、701はTAG認識タイミング調整回路で、4つのポートで受けたTAGを8サイクル分持ち回り、ロードバッファからの読み出し順番に対応したタイミングでTAGを識別してカウントする機能を持つ。この整列判定部の動作を図11A及び11Bに示す。   FIG. 10 is a diagram illustrating a configuration of an integer determination unit that determines that load data is stored in a load buffer in a conventional information processing apparatus. In FIG. 10, reference numeral 701 denotes a TAG recognition timing adjustment circuit, which carries around TAGs received by four ports for eight cycles, and has a function of identifying and counting TAGs at a timing corresponding to the reading order from the load buffer. The operation of this alignment determination unit is shown in FIGS. 11A and 11B.

図11Aは、整列判定部の動作を示すタイムチャートであり、図11Bは、図11Aに続くタイムチャートである。図11A及び11Bにおいて、縦軸はシーケンスの識別番号(以下No.と示す)であり、横軸はクロック数である。図11A及び11Bは、従来の整列判定部において、理想的にTAGが到着する場合のロードデータをロードバッファ#0に格納する場合の動作を示している。なお、理想的にTAGが到着する様子は、図11AのNo.4〜7に示されている。従来の整数判定部では、図11BのNo.24に示すように、ロードバッファ#0整列判定カウンタが、32要素分のTAG数をカウントする。図11Bでは、No.24のクロック25で、32要素分のTAG数のカウントが完了することにより、ロードデータがロードバッファに格納されたことを判定している。   FIG. 11A is a time chart showing the operation of the alignment determination unit, and FIG. 11B is a time chart following FIG. 11A. 11A and 11B, the vertical axis represents a sequence identification number (hereinafter referred to as “No.”), and the horizontal axis represents the number of clocks. 11A and 11B show an operation in the case of storing load data in the load buffer # 0 when the TAG arrives ideally in the conventional alignment determination unit. Note that the ideal arrival of the TAG is shown in No. 4-7. In the conventional integer determination unit, No. 1 in FIG. As shown at 24, the load buffer # 0 alignment determination counter counts the number of TAGs for 32 elements. In FIG. It is determined that the load data is stored in the load buffer by completing counting of the number of TAGs for 32 elements at 24 clocks 25.

特開2009−252133号公報JP 2009-252133 A

しかしながら、従来の整数判定部を含む情報処理装置では、ロードデータをロードバッファに一旦格納した後で、レジスタで持ちまわった各々のタイミングで、付随情報(TAG)を識別することにより、全てのリプライ(ロードデータ)が揃っているか否か判定(整列判定)を行なっている。そのため、従来の情報処理装置では、整列判定を行なってから、ロードバッファから演算レジスタにロードデータの転送を開始するまでに時間がかかるという問題を有する。   However, in a conventional information processing apparatus including an integer determination unit, all the replies are identified by identifying the accompanying information (TAG) at each timing carried by the register after the load data is temporarily stored in the load buffer. It is determined whether or not (load data) is aligned (alignment determination). For this reason, the conventional information processing apparatus has a problem that it takes a long time to start the transfer of load data from the load buffer to the arithmetic register after performing the alignment determination.

本発明は、このような問題点に対してなされたものであり、ロードデータを演算レジスタに呼び出すまでに要する時間を短縮することができる情報処理装置を提供することを目的とする。   The present invention has been made to solve such a problem, and an object of the present invention is to provide an information processing apparatus capable of shortening the time required to load data to an operation register.

本発明の係る情報処理装置の一態様は、1つのロード命令から複数のロードリクエストを生成するロードリクエスト分解部と、個々の前記ロードリクエストに対するロードデータを格納し、演算レジスタに転送するロードバッファと、前記ロードリクエスト分解部によって生成された前記ロードリクエストを入力し、前記ロードリクエストに対する前記ロードデータをメインメモリから読み出すと共に、前記メインメモリによって生成された、前記ロードデータを前記ロードバッファから読み出す順番を示す付随情報を、前記ロードデータに先立って送出するよう制御するメモリネットワークと、前記メモリネットワークから受け付けられた当該付随情報に基づいて、前記付随情報に対応する前記ロードデータの到着の遅れを検出し、前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整する整列判定部と、を備えたことを特徴とする。   One aspect of the information processing apparatus according to the present invention is a load request disassembling unit that generates a plurality of load requests from one load instruction, a load buffer that stores load data for each of the load requests, and transfers the load data to an arithmetic register. The load request generated by the load request decomposition unit is input, the load data for the load request is read from the main memory, and the load data generated by the main memory is read out from the load buffer. And detecting a delay in arrival of the load data corresponding to the accompanying information based on the accompanying information received from the memory network and a memory network that controls the accompanying information to be transmitted prior to the load data. , Said b Based on the delay of the arrival of the Dodeta, characterized in that and a alignment judging unit for adjusting the read start time of the load data from the load buffer to the arithmetic register.

本発明に係る情報処理装置は、ロードデータを演算レジスタに呼び出すまでに要する時間を短縮することができる情報処理装置を提供することができる。   The information processing apparatus according to the present invention can provide an information processing apparatus that can reduce the time required to load data to the arithmetic register.

本発明の実施の形態に係る情報処理装置の構成を示す図である。It is a figure which shows the structure of the information processing apparatus which concerns on embodiment of this invention. 本発明の実施の形態に係る情報処理装置における、整列判定部の構成を示す図である。It is a figure which shows the structure of the alignment determination part in the information processing apparatus which concerns on embodiment of this invention. 本発明の実施の形態に係る情報処理装置において、32個に分解されたロードリクエストに対するメモリからのロードデータが、ロードバッファでどのように格納されるかを示す図である。It is a figure which shows how the load data from the memory with respect to the load request decomposed | disassembled into 32 pieces is stored in a load buffer in the information processing apparatus which concerns on embodiment of this invention. 本実施の形態に係る情報処理装置における、ロードバッファと演算レジスタの接続関係を示す図である。It is a figure which shows the connection relation of a load buffer and an arithmetic register in the information processing apparatus which concerns on this Embodiment. 本発明の実施の形態に係る情報処理装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the information processing apparatus which concerns on embodiment of this invention. 本発明の実施の形態に係る情報処理装置において、要素番号毎に設定されるカウンタセット値を示す表である。5 is a table showing counter set values set for each element number in the information processing apparatus according to the embodiment of the present invention. 本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートである。It is a time chart which shows operation | movement of the information processing apparatus which concerns on embodiment of this invention. 本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートであり、図7Aに続くタイムチャートである。It is a time chart which shows operation | movement of the information processing apparatus which concerns on embodiment of this invention, and is a time chart following FIG. 7A. 本発明の実施の形態に係る情報処理装置において、TAG(及びロードデータ)の到着順序が乱れた場合の動作を示すタイムチャートである。6 is a time chart showing an operation when the arrival order of TAG (and load data) is disturbed in the information processing apparatus according to the embodiment of the present invention. 本発明の実施の形態に係る情報処理装置において、TAG(及びロードデータ)の到着順序が乱れた場合の動作を示すタイムチャートであり、図8Aに続くタイムチャートである。FIG. 8B is a time chart showing the operation when the arrival order of TAG (and load data) is disturbed in the information processing apparatus according to the embodiment of the present invention, and is a time chart following FIG. 8A. 比較例における、TAG(及びロードデータ)の到着順序が乱れた場合の動作を示すタイムチャートである。It is a time chart which shows operation | movement when the arrival order of TAG (and load data) is disturbed in a comparative example. 比較例における、TAG(及びロードデータ)の到着順序が乱れた場合の動作を示すタイムチャートであり、図9Aに続くタイムチャートである。FIG. 9B is a time chart showing the operation when the arrival order of TAG (and load data) is disturbed in the comparative example, and is a time chart following FIG. 9A. 従来の整列判定部の構成を示す図である。It is a figure which shows the structure of the conventional alignment determination part. 従来の情報処理装置の動作を示すタイムチャートである。It is a time chart which shows operation | movement of the conventional information processing apparatus. 従来の情報処理装置の動作を示すタイムチャートであり、図11Aに続くタイムチャートである。It is a time chart which shows operation | movement of the conventional information processing apparatus, and is a time chart following FIG. 11A.

以下、添付した図面を参照して本発明に係る情報処理装置について説明する。まず、発明の詳細な説明をする前に、後述の実施の形態に係る情報処理装置が示された図1を援用し、本発明に係る情報処理装置の概要について説明する。この情報処理装置は、ロードリクエスト分解部103、メモリネットワーク(行き)104、メモリネットワーク(帰り)106、整列判定部107、及びロードバッファ109を有している。   Hereinafter, an information processing apparatus according to the present invention will be described with reference to the accompanying drawings. First, before detailed description of the invention, the outline of the information processing apparatus according to the present invention will be described with reference to FIG. 1 showing an information processing apparatus according to an embodiment described later. The information processing apparatus includes a load request decomposition unit 103, a memory network (bound) 104, a memory network (return) 106, an alignment determination unit 107, and a load buffer 109.

ロードリクエスト分解部103は、1つのロード命令から複数のロードリクエストを生成する。メモリネットワーク(行き)104は、ロードリクエスト分解部103によって生成されたロードリクエストを入力し、ロードリクエストに対するロードデータをメインメモリ105から読み出す。メモリネットワーク(帰り)106は、メインメモリ105によって生成された付随情報を、ロードデータに先立って整列判定部107に送出する。付随情報には、ロードデータをロードバッファ109から読み出す順番を示す情報が含まれている。   The load request decomposition unit 103 generates a plurality of load requests from one load instruction. The memory network (bound) 104 receives the load request generated by the load request decomposing unit 103 and reads load data corresponding to the load request from the main memory 105. The memory network (return) 106 sends the accompanying information generated by the main memory 105 to the alignment determination unit 107 prior to the load data. The accompanying information includes information indicating the order of reading the load data from the load buffer 109.

整列判定部107は、メモリネットワーク(帰り)106から受け付けられた付随情報に基づいて、付随情報に対応するロードデータの到着の遅れを検出する。そして、整列判定部107は、検出されたロードデータの到着の遅れに基づいて、ロードバッファ109から演算レジスタ110へのロードデータの読み出し開始時間を調整する。ロードバッファ109は、個々のロードリクエストに対するロードデータを格納し、演算レジスタ110に転送する。   The alignment determination unit 107 detects the arrival delay of the load data corresponding to the accompanying information based on the accompanying information received from the memory network (return) 106. Then, the alignment determination unit 107 adjusts the load data read start time from the load buffer 109 to the arithmetic register 110 based on the detected delay of arrival of the load data. The load buffer 109 stores load data for each load request and transfers it to the arithmetic register 110.

また、ロードリクエスト分解部103は、ロードリクエストの数を整列判定部107に送出する。整列判定部107は、ロードリクエストの数と、受け付けられた付随情報の数を比較することにより、ロードバッファ109から演算レジスタ110への読み出しの開始時間を調整する。   In addition, the load request decomposition unit 103 sends the number of load requests to the alignment determination unit 107. The alignment determination unit 107 adjusts the start time of reading from the load buffer 109 to the arithmetic register 110 by comparing the number of load requests with the number of received accompanying information.

このように、本発明に係る情報処理装置は、ロードデータに先立って付随情報を整列判定部107に送出し、整列判定部107において付随情報に基づいてロードデータの到着の遅れを検出する。これによって、従来のようにロードデータの到着を待って、すべてのロードデータが揃ったか否かを判定する処理よりも、先行して送られた付随情報に基づいて短時間内ですべてのロードデータがロードバッファに到着したのか否か判定することができる。この結果、ロードバッファ109から演算レジスタ110へのロードデータの転送開始までに要する時間を短縮することができる。   As described above, the information processing apparatus according to the present invention sends the accompanying information to the alignment determining unit 107 prior to the load data, and the alignment determining unit 107 detects a delay in arrival of the load data based on the accompanying information. This makes it possible to wait for the arrival of load data as in the past, and to determine whether or not all the load data has been prepared. Can be determined whether has arrived in the load buffer. As a result, it is possible to reduce the time required to start the transfer of load data from the load buffer 109 to the arithmetic register 110.

実施の形態.
次に、本発明の詳細な構成について説明を行う。図1は、本発明の実施の形態に係る情報処理装置の構成を示す図である。図1において、101は命令発行部で、ロード命令を発行する。102は、使用ロードバッファ決定部で、101で発行されたロード命令が使用するロードバッファ番号を決定し、ロード命令とともに103に送出する。103は、ロードリクエスト分解部で、ロード命令を指定された要素数分のロードリクエストに分解して104に送出するとともに、102において決定されたロードバッファ番号と、ロード命令情報を、ロードバッファ使用通知として整列判定部107に送出する。ロードリクエスト分解部103は、要素数分のロードリクエストに分解する際に、ロードバッファの格納位置情報を付随情報としてロードリクエストに付与して送出する。
Embodiment.
Next, a detailed configuration of the present invention will be described. FIG. 1 is a diagram showing a configuration of an information processing apparatus according to an embodiment of the present invention. In FIG. 1, reference numeral 101 denotes an instruction issuing unit that issues a load instruction. Reference numeral 102 denotes a use load buffer determination unit which determines the load buffer number used by the load instruction issued in 101 and sends it to 103 together with the load instruction. Reference numeral 103 denotes a load request decomposition unit which decomposes a load instruction into a load request for the designated number of elements and sends it to 104, and also notifies the load buffer number and load instruction information determined in 102 to the load buffer use notification. To the alignment determination unit 107. When decomposing into load requests for the number of elements, the load request decomposing unit 103 attaches and sends the load buffer storage position information to the load request as accompanying information.

104は、メモリネットワーク(行き)で、ロードリクエスト分解部103から送られたロードリクエストと付随情報をメモリアドレスに応じたバンク宛に振り分け、必要に応じてロードリクエスト間の調停を行いメインメモリ105に送出する。105は、メインメモリで、ロードリクエストで指定されたアドレスのデータを、RAM(Random Access Memory)から読み出してメモリネットワーク(帰り)106に送出する。その際、メインメモリ105は、読み出しシーケンスに入ってからデータが読み出されるまでの時間差を利用し、ロードリクエスト付随情報を、データ送出の10サイクル前にメモリネットワーク(帰り)106に送出する。図1中の点線矢印が、帰り側ロードリクエストの付随情報(以下、TAGと呼ぶ)の経路を示している。   Reference numeral 104 denotes a memory network (bound), which distributes the load request and accompanying information sent from the load request decomposing unit 103 to a bank corresponding to the memory address, and performs arbitration between the load requests as necessary to the main memory 105. Send it out. Reference numeral 105 denotes a main memory which reads out data at an address designated by the load request from a RAM (Random Access Memory) and sends it to the memory network (return) 106. At that time, the main memory 105 uses the time difference from the start of the read sequence until the data is read, and sends the load request accompanying information to the memory network (return) 106 10 cycles before the data is sent. A dotted arrow in FIG. 1 indicates a path of accompanying information (hereinafter referred to as TAG) of the return side load request.

106は、メモリネットワーク(帰り)で、メインメモリ105から受けたTAGの情報から、送出先ポートを識別し、TAGとロードデータを調停し、TAGは整列判定部107に、データはロードバッファ109に送出する。その際、メモリネットワーク(帰り)106は、データに対して10サイクル先行して送られてくるTAGとロードデータのタイミングを保ったまま、整列判定部107及びロードバッファ109に、TAGとロードデータを送出する。   Reference numeral 106 denotes a memory network (return), which identifies the destination port from the TAG information received from the main memory 105, arbitrates the TAG and load data, the TAG is sent to the alignment determination unit 107, and the data is sent to the load buffer 109. Send it out. At that time, the memory network (return) 106 sends the TAG and the load data to the alignment determination unit 107 and the load buffer 109 while maintaining the timing of the TAG and the load data sent 10 cycles ahead of the data. Send it out.

107は、整列判定部で、メモリネットワーク(帰り)106より受け取ったTAGからロードバッファ番号を識別して、ロード命令で指定された要素数分のTAGが帰ってきたことを判別し、ロードバッファ109及び演算レジスタ110に、演算レジスタへのロードデータの転送開始指示を送出する。また、整列判定部107は、受け取ったTAGをリプライTAGタイミング調整部108に送出する。   An alignment determination unit 107 identifies a load buffer number from the TAG received from the memory network (return) 106, determines that TAGs corresponding to the number of elements specified by the load instruction have returned, and the load buffer 109 In addition, a load data transfer start instruction to the arithmetic register is sent to the arithmetic register 110. The alignment determination unit 107 sends the received TAG to the reply TAG timing adjustment unit 108.

108は、リプライTAGタイミング調整部で、4ポート分のリプライTAGを整列判定部107より受け取って、9サイクル分タイミング調整し、メモリネットワーク(帰り)106よりデータがロードバッファ109に送られるタイミングに合わせて、TAGをロードバッファ109に送出する。109は、ロードバッファで、4ポート分のロードデータとTAGを受け取り、TAGからロードバッファ格納位置を識別してロードデータを格納する。また、ロードバッファ109は、整列判定部107からの演算レジスタ転送開始指示を受け取って、指定されたロードバッファ番号のロードデータを順番に読み出して演算レジスタ110に送出する。   Reference numeral 108 denotes a reply TAG timing adjustment unit, which receives a reply TAG for four ports from the alignment determination unit 107, adjusts the timing for nine cycles, and matches the timing at which data is sent from the memory network (return) 106 to the load buffer 109. TAG is sent to the load buffer 109. A load buffer 109 receives load data and TAG for four ports, identifies the load buffer storage position from the TAG, and stores the load data. In addition, the load buffer 109 receives the operation register transfer start instruction from the alignment determination unit 107, sequentially reads the load data of the designated load buffer number, and sends it to the operation register 110.

110は、演算レジスタで、整列判定部107からの演算レジスタ転送指示を受け取って、ロードバッファ109から送られてきたロードデータを、指定されたレジスタに格納する。また、演算レジスタ110は、整列判定部107から演算開始指示を受けると、格納されているデータを順番に読み出して演算器111に送出する。111は、演算器で、整列判定部107からの指示を受け、演算レジスタ110より送られてきたロードデータに対し、指定された演算を行った後、演算レジスタ110に格納する。なお、演算器111の出力を演算レジスタ110に格納する動作は、一般的な動作であるので図では省略している。   An operation register 110 receives an operation register transfer instruction from the alignment determination unit 107, and stores the load data sent from the load buffer 109 in a designated register. In addition, upon receiving an operation start instruction from the alignment determination unit 107, the operation register 110 sequentially reads stored data and sends it to the operation unit 111. An arithmetic unit 111 receives an instruction from the alignment determination unit 107, performs a specified operation on the load data sent from the operation register 110, and stores the load data in the operation register 110. Note that the operation of storing the output of the arithmetic unit 111 in the arithmetic register 110 is a general operation and is not shown in the figure.

図2は、本発明の実施の形態に係る情報処理装置における、整列判定部の構成を示す図である。ここで、ロードデータが保持されるロードバッファ109は、ロードバッファ#0とロードバッファ#1によって構成されている。整列判定部107は、ロードバッファ#0の演算レジスタ110への転送タイミングを管理する部分と、ロードバッファ#1の演算レジスタ110への転送タイミングを管理する部分により構成されている。   FIG. 2 is a diagram showing a configuration of the alignment determination unit in the information processing apparatus according to the embodiment of the present invention. Here, the load buffer 109 that holds the load data is composed of a load buffer # 0 and a load buffer # 1. The alignment determination unit 107 includes a part that manages the transfer timing of the load buffer # 0 to the arithmetic register 110 and a part that manages the transfer timing of the load buffer # 1 to the arithmetic register 110.

ロードバッファ#0側の管理部分は、TAG数カウンタ201、カウンタセット値最大値検出回路202、整列判定カウンタ制御回路210、整列判定カウンタ271、ロード命令情報格納レジスタ270、整列タイミング調整カウンタ制御回路211、整列タイミング調整カウンタ272、演算レジスタ転送開始条件確認回路220を備えている。   The management part on the load buffer # 0 side includes a TAG number counter 201, a counter set value maximum value detection circuit 202, an alignment determination counter control circuit 210, an alignment determination counter 271, a load instruction information storage register 270, and an alignment timing adjustment counter control circuit 211. , An alignment timing adjustment counter 272 and an arithmetic register transfer start condition confirmation circuit 220 are provided.

一方、ロードバッファ#1側の管理部分は、TAG数カウンタ203、カウンタセット値最大値検出回路204、整列判定カウンタ制御回路212、整列判定カウンタ275、ロード命令情報格納レジスタ274、整列タイミング調整カウンタ制御回路213、整列タイミング調整カウンタ276、演算レジスタ転送開始条件確認回路221を備えている。   On the other hand, the management part on the load buffer # 1 side includes a TAG number counter 203, a counter set value maximum value detection circuit 204, an alignment determination counter control circuit 212, an alignment determination counter 275, a load instruction information storage register 274, and an alignment timing adjustment counter control. A circuit 213, an alignment timing adjustment counter 276, and an arithmetic register transfer start condition confirmation circuit 221 are provided.

図2において、250は、TAG受付レジスタで、メモリネットワーク(帰り)106より送出された4ポート分のTAGを受け取り、1サイクル保持する。TAG受付レジスタ250は、ロードバッファ#0と#1で共有されている。   In FIG. 2, reference numeral 250 denotes a TAG reception register which receives TAGs for four ports sent from the memory network (return) 106 and holds them for one cycle. The TAG reception register 250 is shared by the load buffers # 0 and # 1.

ロードバッファ#0側の管理部分とロードバッファ#1側の管理部分は、略同一構成を備えている。以下では、ロードバッファ#0側を例にして各要素の説明を行う。201は、ロードバッファ#0用のTAG数カウンタで、ロードバッファ#0宛ての1クロック中のTAG数をカウントする。本実施の形態では、カウント結果の最大値は、ポート数と同じ「4」である。   The management part on the load buffer # 0 side and the management part on the load buffer # 1 side have substantially the same configuration. Hereinafter, each element will be described by taking the load buffer # 0 side as an example. Reference numeral 201 denotes a TAG counter for the load buffer # 0, which counts the number of TAGs in one clock addressed to the load buffer # 0. In the present embodiment, the maximum value of the count result is “4”, which is the same as the number of ports.

202は、ロードバッファ#0用のカウンタセット値最大値検出回路で、ロードバッファ#0宛てのTAGから要素番号を識別し、要素番号に対応したカウンタセット値の最大値を検出する。具体的には、カウンタセット値最大値検出回路202は、予め定められた図6の表に従って、複数のTAGに含まれる要素番号に対応するカウンタセット値をそれぞれ参照し、参照したカウンタセット値のうち、最大のカウンタセット値を保持する。換言すれば、カウンタセット値最大値検出回路202は、TAGに含まれる要素番号に基づいて、TAGに対応するロードデータの遅延を検出する。また、カウンタセット値最大値検出回路202は、要素番号に対応するカウンタセット値の最大値を保持することで、複数のロードデータの有する遅延時間のうち、最大の遅延時間に基づいて転送開始時間を調整する機能を果たしている。   Reference numeral 202 denotes a counter set value maximum value detection circuit for the load buffer # 0, which identifies the element number from the TAG addressed to the load buffer # 0 and detects the maximum value of the counter set value corresponding to the element number. Specifically, the counter set value maximum value detection circuit 202 refers to each counter set value corresponding to an element number included in a plurality of TAGs according to a predetermined table in FIG. Of these, the maximum counter set value is held. In other words, the counter set value maximum value detection circuit 202 detects the delay of the load data corresponding to the TAG based on the element number included in the TAG. Further, the counter set value maximum value detection circuit 202 holds the maximum value of the counter set value corresponding to the element number, so that the transfer start time is based on the maximum delay time among the delay times of the plurality of load data. Plays the function of adjusting.

210は、ロードバッファ#0用の整列判定カウンタ制御回路である。整列判定カウンタ制御回路210は、整列判定カウンタ271の値からTAG数カウンタ201の出力値を引いて、整列判定カウンタ271に戻す。また、ロードバッファ#0用の整列判定カウンタ制御回路210は、ロードリクエスト分解部103よりロードバッファ使用通知を受けると、要素数情報を識別して、要素数を整列判定カウンタ271にセットする機能を持つ。   Reference numeral 210 denotes an alignment determination counter control circuit for the load buffer # 0. The alignment determination counter control circuit 210 subtracts the output value of the TAG number counter 201 from the value of the alignment determination counter 271 and returns it to the alignment determination counter 271. Further, upon receiving the load buffer usage notification from the load request decomposition unit 103, the alignment determination counter control circuit 210 for the load buffer # 0 has a function of identifying the number of elements information and setting the number of elements in the alignment determination counter 271. Have.

211は、ロードバッファ#0用の整列タイミング調整カウンタ制御回路で、カウンタセット値最大値検出回路202の出力であるカウンタセット値の最大値と、整列タイミング調整カウンタ272の値を比較し、カウンタセット値最大値検出回路202の出力値が、整列タイミング調整カウンタ272の値以上であった場合には、カウンタセット値最大値検出回路202の出力値を、整列タイミング調整カウンタ272にセットする。整列タイミング調整カウンタ制御回路211は、それ以外の場合は、整列タイミング調整カウンタ272に保持されている値を−1とした後、その値を整列タイミング調整カウンタ272に保持する。すなわち、整列タイミング調整カウンタ制御回路211は、付随情報に基づいて、ロードデータの到着の遅れを検出し、到着の遅れを考慮して転送開始時間を調整する機能を果たしている。   Reference numeral 211 denotes an alignment timing adjustment counter control circuit for the load buffer # 0, which compares the maximum counter set value output from the counter set value maximum value detection circuit 202 with the value of the alignment timing adjustment counter 272, and sets the counter set. When the output value of the maximum value detection circuit 202 is equal to or greater than the value of the alignment timing adjustment counter 272, the output value of the counter set value maximum value detection circuit 202 is set in the alignment timing adjustment counter 272. In other cases, the alignment timing adjustment counter control circuit 211 sets the value held in the alignment timing adjustment counter 272 to −1 and then holds the value in the alignment timing adjustment counter 272. That is, the alignment timing adjustment counter control circuit 211 has a function of detecting a delay in the arrival of the load data based on the accompanying information and adjusting the transfer start time in consideration of the arrival delay.

なお、整列タイミング調整カウンタ制御回路211は、ロードリクエスト分解部103よりロードバッファ使用通知を受け取ったタイミングでは、特別な制御は行わず、TAGがメモリネットワーク(帰り)106より戻ったタイミングで上記の動作を行う。   The alignment timing adjustment counter control circuit 211 does not perform any special control at the timing when the load buffer use notification is received from the load request decomposition unit 103, and performs the above operation when the TAG returns from the memory network (return) 106. I do.

270は、ロードバッファ#0用のロード命令情報格納レジスタで、ロードリクエスト分解部103よりロードバッファ使用通知を受けると、演算レジスタ番号等のロード命令情報を保持する機能をもつ。ロード命令情報格納レジスタ270は、演算レジスタ転送開始指示を送出するタイミングでリセットされる。271は、ロードバッファ#0用の整列判定カウンタで、メインメモリ105からの残りロードデータ要素数値が格納される。272は、ロードバッファ#0用の整列タイミング調整カウンタで、整列判定カウンタ271の値が"0"となった場合に、演算レジスタ転送開始指示を送出するまでのサイクル数(待ちサイクル数)が格納される。   A load instruction information storage register 270 for the load buffer # 0 has a function of holding load instruction information such as an operation register number when a load buffer use notification is received from the load request decomposition unit 103. The load instruction information storage register 270 is reset at the timing of sending the operation register transfer start instruction. Reference numeral 271 denotes an alignment determination counter for the load buffer # 0, in which the remaining load data element values from the main memory 105 are stored. Reference numeral 272 denotes an alignment timing adjustment counter for the load buffer # 0. When the value of the alignment determination counter 271 becomes “0”, the number of cycles until the operation register transfer start instruction is sent (the number of wait cycles) is stored. Is done.

220は、ロードバッファ#0用の演算レジスタ転送開始条件確認回路であり、以下の(1)乃至(5)用件をすべて満足した場合に、演算レジスタ転送開始信号を調停回路230に出力する。
(1)有効なロード命令がロード命令情報格納レジスタ270に格納されていること
(2)整列判定カウンタ271の出力が"0"であること
(3)整列タイミング調整カウンタ272の出力が"0"であること
(4)ロードデータ転送パスがビジーで無いこと
(5)転送先の演算レジスタがビジーで無いこと
An arithmetic register transfer start condition confirmation circuit 220 for load buffer # 0 outputs an arithmetic register transfer start signal to the arbitration circuit 230 when all of the following requirements (1) to (5) are satisfied.
(1) A valid load instruction is stored in the load instruction information storage register 270. (2) The output of the alignment determination counter 271 is “0”. (3) The output of the alignment timing adjustment counter 272 is “0”. (4) Load data transfer path is not busy (5) Transfer destination operation register is not busy

また、ロードバッファ#0とロードバッファ#1で共有される273は、ビジーフラグ群である。ビジーフラグ群は、ロードバッファ109から演算レジスタ110へのロードデータ転送パスのビジーフラグやデータコヒーレンシを考慮した演算レジスタへの書き込みタイミング制御フラグなどから構成されている。データパス制御やコヒーレンシ制御は一般的な動作であるため、ここでは詳しい機能・動作については省略する。230は、調停回路で、演算レジスタ転送開始条件確認回路220と221の両方から演算レジスタ転送開始信号が送出された場合に、先行のロード命令を有効にするなどの調停を行って演算レジスタ転送開始信号保持レジスタ280に出力する。280は、演算レジスタ転送開始信号保持レジスタで、1サイクルの間、演算レジスタ転送開始信号を保持する。   Also, 273 shared by the load buffer # 0 and the load buffer # 1 is a busy flag group. The busy flag group includes a busy flag for a load data transfer path from the load buffer 109 to the arithmetic register 110, a write timing control flag for the arithmetic register in consideration of data coherency, and the like. Since data path control and coherency control are general operations, detailed functions and operations are omitted here. Reference numeral 230 denotes an arbitration circuit. When an arithmetic register transfer start signal is sent from both of the arithmetic register transfer start condition confirmation circuits 220 and 221, arbitration such as enabling the preceding load instruction is performed to start arithmetic register transfer. The signal is output to the signal holding register 280. An arithmetic register transfer start signal holding register 280 holds an arithmetic register transfer start signal for one cycle.

以下、ロードバッファ#1側についても、ロードバッファ#0用の各要素と同じ機能を有する要素を有する。すなわち、203は、TAG数カウンタ(ロードバッファ#1用)で、TAG数カウンタ(ロードバッファ#0用)201と同等の機能を持つ。204は、カウンタセット値最大値検出回路(ロードバッファ#1用)で、カウンタセット値最大値検出回路(ロードバッファ#0用)202と同等の機能を持つ。274は、ロード命令情報格納レジスタ(ロードバッファ#1用)で、ロード命令情報格納レジスタ(ロードバッファ#0用)270と同等の機能を持つ。275は、整列判定カウンタ(ロードバッファ#1用)で、整列判定カウンタ(ロードバッファ#0用)271と同等の機能を持つ。   Hereinafter, the load buffer # 1 side also has an element having the same function as each element for the load buffer # 0. That is, 203 is a TAG number counter (for load buffer # 1) and has the same function as the TAG number counter (for load buffer # 0) 201. A counter set value maximum value detection circuit (for load buffer # 1) 204 has a function equivalent to that of the counter set value maximum value detection circuit (for load buffer # 0) 202. A load instruction information storage register (for load buffer # 1) 274 has a function equivalent to that of the load instruction information storage register (for load buffer # 0) 270. Reference numeral 275 denotes an alignment determination counter (for load buffer # 1), which has a function equivalent to that of the alignment determination counter (for load buffer # 0) 271.

276は、整列タイミング調整カウンタ(ロードバッファ#1用)で、整列タイミング調整カウンタ(ロードバッファ#0用)272と同等の機能を持つ。212は、整列判定カウンタ制御回路(ロードバッファ#1用)で、整列判定カウンタ制御回路(ロードバッファ#0用)210と同等の機能を持つ。213は、整列タイミング調整カウンタ制御回路(ロードバッファ#1用)で、整列タイミング調整カウンタ制御回路(ロードバッファ#0用)211と同等の機能を持つ。221は、演算レジスタ転送開始条件確認回路(ロードバッファ#1用)で、演算レジスタ転送開始条件確認回路(ロードバッファ#0用)220と同等の機能を持つ。   Reference numeral 276 denotes an alignment timing adjustment counter (for load buffer # 1), which has the same function as the alignment timing adjustment counter (for load buffer # 0) 272. An alignment determination counter control circuit (for load buffer # 1) 212 has the same function as the alignment determination counter control circuit (for load buffer # 0) 210. Reference numeral 213 denotes an alignment timing adjustment counter control circuit (for load buffer # 1), which has a function equivalent to that of the alignment timing adjustment counter control circuit (for load buffer # 0) 211. Reference numeral 221 denotes an arithmetic register transfer start condition confirmation circuit (for load buffer # 1), which has the same function as the arithmetic register transfer start condition confirmation circuit (for load buffer # 0) 220.

次に、ロードバッファ109の詳細な構成について説明する。図3には、32個に分解されたロードリクエストに対する、メモリからの32個のロードデータe00〜e31が、ロードバッファ109において格納される様子が示されている。ロードバッファ109は、ロードバッファ要素300乃至303を有している。また、ロードバッファ要素300乃至303は、それぞれロードバッファ#0とロードバッファ#1に割り当てられている。図3では、ロードバッファ要素300乃至303は、同時に2つのロード命令分のロードデータを格納する容量があることを示している。   Next, a detailed configuration of the load buffer 109 will be described. FIG. 3 shows a state in which 32 pieces of load data e00 to e31 from the memory are stored in the load buffer 109 in response to a load request that has been divided into 32 pieces. The load buffer 109 includes load buffer elements 300 to 303. The load buffer elements 300 to 303 are assigned to the load buffer # 0 and the load buffer # 1, respectively. FIG. 3 shows that the load buffer elements 300 to 303 have a capacity for storing load data for two load instructions at the same time.

具体的には、ロードバッファ要素300は、ポート#0に入力されたロードデータを格納するロードバッファの一部であり、ロードデータe00、e04、e08、e12、e16、e20、e24、e28が格納される。ロードバッファ要素300は、整列判定部107から演算レジスタ転送開始信号が入力されると、e00、e04、e08、e12、e16、e20、e24、e28の順番でロードデータを読み出して演算レジスタ110に送出する。   Specifically, the load buffer element 300 is a part of the load buffer for storing the load data input to the port # 0, and the load data e00, e04, e08, e12, e16, e20, e24, e28 are stored. Is done. When an operation register transfer start signal is input from the alignment determination unit 107, the load buffer element 300 reads the load data in the order of e00, e04, e08, e12, e16, e20, e24, e28 and sends them to the operation register 110. To do.

ロードバッファ要素301は、ポート#1に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素300と同等の機能を持つ。格納されるロードデータは、ロードバッファ要素300と異なり、ロードデータe01、e05、e09、e13、e17、e21、e25、e29が格納される。読み出される順番は、e01から順に演算レジスタ110に読み出される。   The load buffer element 301 is a part of the load buffer that stores the load data input to the port # 1, and has the same function as the load buffer element 300. Unlike the load buffer element 300, load data e01, e05, e09, e13, e17, e21, e25, e29 are stored. The reading order is read to the arithmetic register 110 in order from e01.

ロードバッファ要素302は、ポート#2に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素300と同等の機能を持つ。格納されるロードデータは、ロードデータe02、e06、e10、e14、e18、e22、e26、e30が格納される。読み出される順番は、ロードデータe02から順番に読み出される。ロードバッファ要素303は、ポート#3に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素300と同等の機能を持つ。格納されるロードデータは、ロードデータe03、e07、e11、e15、e19、e23、e27、e31であり、e03から順に読み出される。   The load buffer element 302 is a part of the load buffer that stores the load data input to the port # 2, and has the same function as the load buffer element 300. As load data to be stored, load data e02, e06, e10, e14, e18, e22, e26, e30 are stored. The order of reading is sequentially read from the load data e02. The load buffer element 303 is a part of the load buffer that stores the load data input to the port # 3, and has the same function as the load buffer element 300. Load data to be stored are load data e03, e07, e11, e15, e19, e23, e27, e31, which are read in order from e03.

図4は、本実施の形態に係る情報処理装置における、ロードバッファと演算レジスタの接続関係を示す図である。ロードバッファ109は、4つのSRAM(Static Random Access Memory)からなるロードバッファ要素300〜303により構成されている。ロードバッファ要素300には、TAGとロードデータが同じタイミングで届くが、ロードバッファ要素300において、TAGからSRAMのライトアドレスを生成し、ロードデータが到着した2サイクル後のタイミングでロードデータをSRAMに書き込む。   FIG. 4 is a diagram illustrating a connection relationship between the load buffer and the arithmetic register in the information processing apparatus according to the present embodiment. The load buffer 109 is composed of load buffer elements 300 to 303 each including four SRAMs (Static Random Access Memory). The TAG and the load data arrive at the load buffer element 300 at the same timing. However, the load buffer element 300 generates an SRAM write address from the TAG, and loads the load data to the SRAM at the timing two cycles after the load data arrives. Write.

ロードバッファ要素300は、整列判定部107から演算レジスタ転送開始信号が届くと、演算レジスタ転送開始信号からリードアドレスを生成し、演算レジスタ転送開始信号が届いた3サイクル後に読み出されたロードデータを演算レジスタ110に送出する。ロードバッファ109は、演算レジスタ転送開始信号が届いた後、指定された要素数の読み出しが完了するまでリードアドレスをインクリメントして連続してロードデータを演算レジスタ110に送出する。   When the arithmetic register transfer start signal arrives from the alignment determination unit 107, the load buffer element 300 generates a read address from the arithmetic register transfer start signal, and loads the read data read three cycles after the arithmetic register transfer start signal arrives. It is sent to the arithmetic register 110. After the operation register transfer start signal arrives, the load buffer 109 increments the read address until the reading of the designated number of elements is completed, and continuously sends the load data to the operation register 110.

次に、このように構成された情報処理装置の動作について説明する。図5は、本発明の実施の形態に係る情報処理装置の動作を示すフローチャートであり、図7A及び7Bは、本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートである。図7A及び7Bにおいて、縦軸はシーケンスの識別番号を示し、横軸はクロック数を示している。本説明では、シーケンスの識別番号を「No.」と示し、クロック数を、「クロック」と示す。はじめに、命令発行部101から、要素数32のロード命令が発行されると、使用ロードバッファ決定部102は、使用するロードバッファ番号(例えば、#0)を決定する。また、使用ロードバッファ決定部102は、要素数と同じ32個分に相当するロードリエストを生成する(S400)。   Next, the operation of the information processing apparatus configured as described above will be described. FIG. 5 is a flowchart showing the operation of the information processing apparatus according to the embodiment of the present invention, and FIGS. 7A and 7B are time charts showing the operation of the information processing apparatus according to the embodiment of the present invention. 7A and 7B, the vertical axis represents the sequence identification number, and the horizontal axis represents the number of clocks. In this description, the sequence identification number is indicated as “No.”, and the number of clocks is indicated as “clock”. First, when a load instruction having 32 elements is issued from the instruction issuing unit 101, the used load buffer determining unit 102 determines a load buffer number (for example, # 0) to be used. Further, the used load buffer determination unit 102 generates a load request corresponding to the same 32 elements as the number of elements (S400).

ロードリクエスト分解部103は、使用ロードバッファ決定部102によって生成されたロードリクエストを、要素数32個のロードリクエストに分解すると共に、ロードバッファ番号#0とロード命令情報から成るロードバッファ使用通知を整列判定部107に送出する(S401)。なお、ロードリクエスト分解部103から送出されるロードバッファ使用通知は、図7BのタイムチャートのNo.22のクロック2に示されている。   The load request decomposition unit 103 decomposes the load request generated by the use load buffer determination unit 102 into load requests having 32 elements, and arranges load buffer usage notifications consisting of load buffer number # 0 and load instruction information. The data is sent to the determination unit 107 (S401). Note that the load buffer use notification sent from the load request decomposition unit 103 is No. in the time chart of FIG. 22 clocks 2 are shown.

また、整列判定部107は、ロードリクエスト分解部103からロードバッファ使用通知を受けると、ロード命令情報格納レジスタ270に、ロード命令情報をセットする(S401)。そして、整列判定部107は、整列判定カウンタ271に、要素数"32"をセットする(S402)。なお、ロードバッファ#0用の整列判定カウンタ271に要素数"32"がセットされる動作は、図7BのタイムチャートのNo.24のクロック3に示されている。   When receiving the load buffer use notification from the load request decomposition unit 103, the alignment determination unit 107 sets the load command information in the load command information storage register 270 (S401). Then, the alignment determination unit 107 sets the number of elements “32” in the alignment determination counter 271 (S402). The operation of setting the number of elements “32” in the alignment determination counter 271 for the load buffer # 0 corresponds to No. in the time chart of FIG. 24 clocks 3 are shown.

ここで、ロードリクエスト分解部103で生成された要素数32個分のロードリクエストは、メモリネットワーク(行き)104でアドレスが指定するメモリバンクにルーティングされてメインメモリ105の1つのメモリバンクに送られる。メインメモリ105は、ロードリクエストを受けつけると、RAMの読み出しシーケンスを開始する。メインメモリ105は、読み出したロードデータ出力の10サイクル前に、TAGをメモリネットワーク(帰り)106に送出する。その後、メインメモリ105は、TAGの10サイクル後に、ロードデータをメモリネットワーク(帰り)106に送出する。   Here, the load request for 32 elements generated by the load request decomposition unit 103 is routed to the memory bank designated by the address in the memory network (bound) 104 and sent to one memory bank of the main memory 105. . When the main memory 105 receives the load request, the main memory 105 starts a RAM read sequence. The main memory 105 sends the TAG to the memory network (return) 106 10 cycles before outputting the read load data. Thereafter, the main memory 105 sends the load data to the memory network (return) 106 after 10 cycles of the TAG.

メモリネットワーク(帰り)106は、受け取ったTAGから、ポート情報を識別してルーティングを行い整列判定部107に送出する。整列判定部107は、到着したTAGを識別し、ロードバッファ#0の到着TAG数と、ロードバッファ#1の到着TAG数を201及び203でカウントする(S403)。整列判定部107によりカウントされる到着TAG数については、図7AのNo.20に示されている。具体的には、No.20において、クロック7で識別された到着TAG数は"4"である。   The memory network (return) 106 identifies port information from the received TAG, performs routing, and sends it to the alignment determination unit 107. The alignment determination unit 107 identifies the TAGs that have arrived, and counts the number of arrival TAGs in the load buffer # 0 and the number of arrival TAGs in the load buffer # 1 in 201 and 203 (S403). For the number of arrival TAGs counted by the alignment determination unit 107, No. 1 in FIG. 20. Specifically, no. At 20, the number of arrival TAGs identified by clock 7 is “4”.

整列判定カウンタ制御回路210は、整列判定カウンタ271に格納されているNo.24のクロック7の値"32"から、クロック7で到着した到着TAG数201の出力値"4"を引いた値である"28"を整列判定カウンタ271にセットする(S404)。この動作を、図7BのタイムチャートのNo24のクロック8に示す。   The alignment determination counter control circuit 210 has a No. stored in the alignment determination counter 271. “28”, which is a value obtained by subtracting the output value “4” of the arrival tag number 201 arriving at the clock 7 from the value “32” of the clock 7 of 24, is set in the alignment determination counter 271 (S404). This operation is shown in No. 24 clock 8 in the time chart of FIG. 7B.

ロードバッファ#0用のカウンタセット値最大値検出回路202は、ロードバッファ#0の到着TAGから、要素番号を識別し、図6の表に従って要素番号に対応するカウンタセット値を得る。具体的には、クロック7では、No.4のポート#0には要素00が、No.5のポート#1には要素01が、No.6のポート#2には要素02が、No.7のポート#3には要素03が到着している。図6を参照すれば、要素00、01、02、03に対応するカウンタセット値は、順に"7"、"7"、"7"、"7"と全て"7"である。よって、カウンタセット値最大値検出回路202の出力値は、最大値である"7"に設定される。この最大値は、整列タイミング調整カウンタ制御回路211に出力される(S405)。この動作は、図7BのタイムチャートのNo.27のクロック7に示されている。   The counter set value maximum value detection circuit 202 for the load buffer # 0 identifies the element number from the arrival TAG of the load buffer # 0, and obtains the counter set value corresponding to the element number according to the table of FIG. Specifically, in clock 7, No. Element 00 is assigned to port # 0 of No. 4 5 is port 01, element 01 is No. 6 is port 02, element 02 is No. The element 03 arrives at the port # 3 of 7. Referring to FIG. 6, the counter set values corresponding to the elements 00, 01, 02, and 03 are “7”, “7”, “7”, “7”, and “7” in order. Therefore, the output value of the counter set value maximum value detection circuit 202 is set to “7” which is the maximum value. This maximum value is output to the alignment timing adjustment counter control circuit 211 (S405). This operation is performed in accordance with No. 1 in the time chart of FIG. 27 clocks 7 are shown.

次に、整列タイミング調整カウンタ制御回路211は、カウンタセット値最大値検出回路202の出力値"7"と、ロードバッファ#0用の整列タイミング調整カウンタ272の格納値"0"を比較する(S406)。ここで、カウンタセット値最大値検出回路202の出力値"7"は、整列タイミング調整カウンタ272の格納値"0"以上であるため(S406においてNO)、整列タイミング調整カウンタ制御回路211は、カウンタセット値最大値検出回路202の出力値"7"を整列タイミング調整カウンタ272にセットする(S408)。この動作は、図7BのタイムチャートのNo.30のクロック8に示されている。   Next, the alignment timing adjustment counter control circuit 211 compares the output value “7” of the counter set value maximum value detection circuit 202 with the stored value “0” of the alignment timing adjustment counter 272 for the load buffer # 0 (S406). ). Here, since the output value “7” of the counter set value maximum value detection circuit 202 is equal to or greater than the stored value “0” of the alignment timing adjustment counter 272 (NO in S406), the alignment timing adjustment counter control circuit 211 The output value “7” of the set value maximum value detection circuit 202 is set in the alignment timing adjustment counter 272 (S408). This operation is performed in accordance with No. 1 in the time chart of FIG. Thirty clocks 8 are shown.

次に、演算レジスタ転送開始条件確認回路220は、整列タイミング調整カウンタ値と整列判定カウンタ値が、いずれもが"0"であるか否か判定する(S409)。ここで、図7Bのクロック8において、整列判定カウンタの値は"28"であり、整列タイミング調整カウンタの値は"7"であるため(S409においてNO)、ステップS403に戻る。図7BのタイムチャートのNo.32のクロック8において、演算レジスタ転送開始条件確認回路220は、演算レジスタ転送開始信号を有効としない。   Next, the arithmetic register transfer start condition confirmation circuit 220 determines whether or not both the alignment timing adjustment counter value and the alignment determination counter value are “0” (S409). Here, since the value of the alignment determination counter is “28” and the value of the alignment timing adjustment counter is “7” in clock 8 in FIG. 7B (NO in S409), the process returns to step S403. In the time chart of FIG. At 32 clock 8, the arithmetic register transfer start condition confirmation circuit 220 does not validate the arithmetic register transfer start signal.

ステップS403に戻り、整列判定部107は、到着したTAGを識別し、ロードバッファ#0の到着TAG数と、ロードバッファ#1の到着TAG数を201及び202でカウントする。ここで、図7AのNo.4〜7のクロック8では、ポート#0には要素04が、ポート#1には要素05が、ポート#2には要素06が、ポート#3には要素07が到着している。そのため、到着TAG数であるTAG数カウンタ201の出力値は、"4"となる。この動作は、図7AのタイムチャートのNo.20のクロック8に示されている。   Returning to step S403, the alignment determining unit 107 identifies the TAGs that have arrived, and counts 201 and 202 the number of arrival TAGs in the load buffer # 0 and the number of arrival TAGs in the load buffer # 1. Here, in FIG. In the clock 8 of 4 to 7, the element 04 arrives at the port # 0, the element 05 arrives at the port # 1, the element 06 arrives at the port # 2, and the element 07 arrives at the port # 3. Therefore, the output value of the TAG number counter 201 which is the number of arrival TAGs is “4”. This operation is performed in accordance with No. of the time chart of FIG. Twenty clocks 8 are shown.

ステップS404に進み、整列判定カウンタ制御回路210は、整列判定カウンタ271に格納されている値"28"からTAG数カウンタ201の出力値"4"を引いて、"24"を整列判定カウンタ271にセットする。この動作は、図7BのNo.24のクロック9に示されている。   In step S 404, the alignment determination counter control circuit 210 subtracts the output value “4” of the TAG number counter 201 from the value “28” stored in the alignment determination counter 271 and sets “24” to the alignment determination counter 271. set. This operation is performed in accordance with No. 1 in FIG. 24 clocks 9 are shown.

続いて、ステップS405に進み、カウンタセット値最大値検出回路202は、ロードバッファ#0の到着TAGから、要素番号を識別し、図6の表に従って要素番号に対応するカウンタセット値を得る。ここで、クロック8では、各ポートの要素番号に相当するカウンタセット値は、順に"6"、"6"、"6"、"6"と全て"6"である。よって、カウンタセット値最大値検出回路202は、最大値である"6"を整列タイミング調整カウンタ制御回路211に出力する。この動作は、図7BのNo.27のクロック8に示されている。   In step S405, the counter set value maximum value detection circuit 202 identifies the element number from the arrival TAG of the load buffer # 0, and obtains the counter set value corresponding to the element number according to the table of FIG. Here, in the clock 8, the counter set values corresponding to the element numbers of the respective ports are “6”, “6”, “6”, “6” and all “6” in order. Therefore, the counter set value maximum value detection circuit 202 outputs the maximum value “6” to the alignment timing adjustment counter control circuit 211. This operation is performed in accordance with No. 1 in FIG. 27 clocks 8 are shown.

ステップS406において、カウンタセット値最大値検出回路202の出力値"6"が整列タイミング調整カウンタ272の格納値"7"より小さいため(ステップS406においてYES)、整列タイミング調整カウンタ制御回路211は、"7"を−1し、算出した値"6"を、整列タイミング調整カウンタ272にセットする。この動作は、図7BのNo.30のクロック9に示されている。   In step S406, since the output value “6” of the counter set value maximum value detection circuit 202 is smaller than the stored value “7” of the alignment timing adjustment counter 272 (YES in step S406), the alignment timing adjustment counter control circuit 211 7 "is decremented by 1, and the calculated value" 6 "is set in the alignment timing adjustment counter 272. This operation is performed in accordance with No. 1 in FIG. Thirty clocks 9 are shown.

ステップS409において、演算レジスタ転送開始条件確認回路220は、整列判定カウンタ271および整列タイミング調整カウンタ272の出力が"0"であるか否か判定する。いずれも"0"でないため(ステップS409においてNO)、ステップS403に戻る。すなわち、図7BのNo.32のクロック9に示すように、演算レジスタ転送開始条件確認回路220は、演算レジスタ転送開始信号は有効としない。   In step S409, the arithmetic register transfer start condition confirmation circuit 220 determines whether the outputs of the alignment determination counter 271 and the alignment timing adjustment counter 272 are “0”. Since neither is “0” (NO in step S409), the process returns to step S403. That is, No. 7 in FIG. As indicated by 32 of clock 9, the arithmetic register transfer start condition confirmation circuit 220 does not validate the arithmetic register transfer start signal.

以降、32個の要素中28個の要素のTAGが、整列判定部107に到着するまで、ステップ403〜S409の処理が繰り返される。この間、整列判定カウンタ271の値は"28"、"24"、"20"、"16"、"12"、"8"、"4"と順に変化する。一方、整列タイミング調整カウンタ272の値は、"7"、"6"、"5"、"4"、"3"、"2"、"1"と変化する。   Thereafter, the processes of steps 403 to S409 are repeated until TAGs of 28 elements out of 32 elements arrive at the alignment determination unit 107. During this time, the value of the alignment determination counter 271 changes in order of “28”, “24”, “20”, “16”, “12”, “8”, “4”. On the other hand, the value of the alignment timing adjustment counter 272 changes to “7”, “6”, “5”, “4”, “3”, “2”, “1”.

次に、図7AのタイムチャートのNo.4〜7のクロック14においては、32要素中、最後の4要素が到着している。具体的には、ポート#0には要素28が、ポート#1には要素29が、ポート#2には要素30が、ポート#3には要素31がそれぞれ到着している。よって、ステップS403において、TAG数カウンタ201の出力値は"4"となる。この動作は、図7AのNo.20のクロック14に示されている。   Next, No. in the time chart of FIG. In the 4 to 7 clocks 14, the last 4 elements of 32 elements have arrived. Specifically, element 28 arrives at port # 0, element 29 arrives at port # 1, element 30 arrives at port # 2, and element 31 arrives at port # 3. Therefore, in step S403, the output value of the TAG number counter 201 is “4”. This operation is performed in accordance with No. 7 in FIG. Twenty clocks 14 are shown.

ステップS404では、整列判定カウンタ271に保持されている値"4"から、TAG数カウンタ201の出力値"4"を減ずることで、整列判定カウンタ271には"0"が格納される。この動作は、図7BのNo.24のクロック15に示されている。   In step S <b> 404, “0” is stored in the alignment determination counter 271 by subtracting the output value “4” of the TAG number counter 201 from the value “4” held in the alignment determination counter 271. This operation is performed in accordance with No. 1 in FIG. 24 clocks 15 are shown.

続いて、ステップS405に移り、図6の表を参照し、各要素番号に対応するカウンタセット値を算出する。ここで、図6では、各用度番号に対応するカウンタセット値は、順に"0"、"0"、"0"、"0"と全て"0"である。よって、カウンタセット値最大値検出回路202の出力値は最大値である"0"を、整列タイミング調整カウンタ制御回路211に出力する。この動作は、図7BのNo.27のクロック14に示されている。   Subsequently, the process proceeds to step S405, and a counter set value corresponding to each element number is calculated with reference to the table of FIG. Here, in FIG. 6, the counter set values corresponding to the respective usage numbers are “0”, “0”, “0”, “0” and all “0” in order. Therefore, the counter set value maximum value detection circuit 202 outputs “0”, which is the maximum value, to the alignment timing adjustment counter control circuit 211. This operation is performed in accordance with No. 1 in FIG. 27 clocks 14 are shown.

ステップS406において、整列タイミング調整カウンタ制御回路211は、カウンタセット値最大値検出回路202の出力値"0"が整列タイミング調整カウンタ272の格納値"1"より小さいため(ステップS406においてYES)、整列タイミング調整カウンタ272の格納値"1"を−1して"0"を整列タイミング調整カウンタ272にセットする(ステップS407)。この動作は、図7BのタイムチャートのNo.30のクロック15に示されている。   In step S406, the alignment timing adjustment counter control circuit 211 determines that the output value “0” of the counter set value maximum value detection circuit 202 is smaller than the stored value “1” of the alignment timing adjustment counter 272 (YES in step S406). The stored value “1” of the timing adjustment counter 272 is set to −1 and “0” is set to the alignment timing adjustment counter 272 (step S407). This operation is performed in accordance with No. 1 in the time chart of FIG. Thirty clocks 15 are shown.

ステップS409において、演算レジスタ転送開始条件確認回路220は、整列判定カウンタ271及び整列タイミング調整カウンタ272の出力がどちらも"0"であることを確認する。また、演算レジスタ転送開始条件確認回路220は、ロード命令情報格納レジスタ270に、有効なロード命令情報が格納されており、かつ、ビジーフラグが立っていないことを確認し、演算レジスタ転送開始信号を有効とする。   In step S409, the operation register transfer start condition confirmation circuit 220 confirms that the outputs of the alignment determination counter 271 and the alignment timing adjustment counter 272 are both “0”. The operation register transfer start condition confirmation circuit 220 confirms that valid load instruction information is stored in the load instruction information storage register 270 and that the busy flag is not set, and the operation register transfer start signal is validated. And

ここで、ロードバッファ#1側には有効なロード命令情報が存在しないため、ロードバッファ#1用の演算レジスタ転送開始条件確認回路221の出力は有効とされない。調停回路230は、ロードバッファ#0用の演算レジスタ転送開始条件確認回路220が出力する演算レジスタ転送開始信号を選択し、演算レジスタ転送開始信号保持レジスタ280に出力する。この動作は、図7BのタイムチャートのNo.32のクロック16に示されている。   Here, since there is no valid load instruction information on the load buffer # 1 side, the output of the operation register transfer start condition confirmation circuit 221 for the load buffer # 1 is not validated. The arbitration circuit 230 selects the operation register transfer start signal output from the operation register transfer start condition confirmation circuit 220 for the load buffer # 0 and outputs the operation register transfer start signal to the operation register transfer start signal holding register 280. This operation is performed in accordance with No. 1 in the time chart of FIG. 32 clocks 16 are shown.

その後、演算レジスタ転送開始信号保持レジスタ280から、ロードバッファ109及び演算レジスタ110に対して演算レジスタ転送開始信号を送出する(ステップS410)。ロードバッファ109では、演算レジスタ転送開始指示をレジスタで受けてリードアドレスを生成する。この動作は、図7BのタイムチャートのNo.34のクロック17に示されている。   Thereafter, an arithmetic register transfer start signal is sent from the arithmetic register transfer start signal holding register 280 to the load buffer 109 and the arithmetic register 110 (step S410). In the load buffer 109, an operation register transfer start instruction is received by the register and a read address is generated. This operation is performed in accordance with No. 1 in the time chart of FIG. 34 clocks 17.

そして、整列判定部107は、ロードバッファ109及び110に対して演算レジスタ転送開始指示を送出すると同時に、ステップS411において、ロードバッファ#0の開放通知をロードリクエスト分解部103に送出し、ロード命令情報格納レジスタ270をクリアする。この動作を、図7BのタイムチャートのNo.49のクロック17に示す。   Then, the alignment determining unit 107 sends an operation register transfer start instruction to the load buffers 109 and 110, and at the same time, sends a load buffer # 0 release notification to the load request decomposing unit 103 in step S411 to load the load instruction information. The storage register 270 is cleared. This operation is designated as No. in the time chart of FIG. Forty-nine clocks 17 are shown.

ロードバッファ109は、リードアドレスをインクリメントして順次ロードデータを読み出して、演算レジスタ110に送出する。演算レジスタ110は、整列判定部107より演算レジスタ転送開始指示を受けた後、ロードバッファ109より送られてくるロードデータを、指示された演算レジスタに格納していく。   The load buffer 109 increments the read address, sequentially reads the load data, and sends it to the arithmetic register 110. After receiving the operation register transfer start instruction from the alignment determination unit 107, the operation register 110 stores the load data sent from the load buffer 109 in the instructed operation register.

以降、ロードバッファ109は、32要素全部を読み出し、演算レジスタ110は、受け取ったロードデータを32要素分格納する。これにより、1つのロード命令に対する一連の動作が完了する。   Thereafter, the load buffer 109 reads all 32 elements, and the arithmetic register 110 stores the received load data for 32 elements. Thereby, a series of operations for one load instruction is completed.

次に、図8A及び8Bを用いて、本実施の形態に係る情報処理装置の動作を説明する。図8A及び8Bは、TAG(及びロードデータ)の到着順序が乱れた場合のタイムチャートである。なお、基本的な動作については、変更が無いため、特徴のある箇所に着目して説明する。また、図8A及び8Bのシーケンスの識別番号(No.)は、図7A及び7Bのシーケンスの識別番号(No.)に対応しているため、各シーケンス名は図8A及び8Bでは省略している。   Next, the operation of the information processing apparatus according to the present embodiment will be described with reference to FIGS. 8A and 8B. 8A and 8B are time charts when the arrival order of TAG (and load data) is disturbed. In addition, since there is no change about a basic operation | movement, it demonstrates paying attention to a characteristic location. 8A and 8B corresponds to the identification number (No.) of the sequence in FIGS. 7A and 7B, and therefore each sequence name is omitted in FIGS. 8A and 8B. .

図7A及び7Bでは、TAGが順番通り理想的に到着する場合を示しており、例えば、図7A及び7Bにおいて、要素00のTAGはNo.4のクロック7で整列判定部107に到着している。しかしながら、図8AではNo.4のクロック15で要素00が到着している。また、図8Aでは、さらにその1サイクル後(クロック16)に、要素28が到着している。また、図8Aでは、No.4のクロック14で示すように、TAGが到着しないタイミングも存在する。なお、実際の情報処理装置では、メモリバンクビジーやネットワーク競合などの影響により、図8A及び8Bに示すように、到着する要素の順番が入れ替わったり、間隙が空くことは頻繁に発生する現象である。   7A and 7B show a case where TAGs arrive ideally in order. For example, in FIGS. 4 arrives at the alignment determination unit 107 at clock 7. However, in FIG. Element 00 arrives at 4 clock 15. In FIG. 8A, the element 28 arrives one cycle later (clock 16). Further, in FIG. As shown by the clock 14 in FIG. 4, there is a timing when the TAG does not arrive. Note that in an actual information processing apparatus, due to the influence of memory bank busy, network contention, etc., as shown in FIGS. 8A and 8B, the order of arriving elements is switched or gaps are frequently generated. .

次に、図5のフローチャートに従って、図8A及び8Bの場合の情報処理装置の動作を説明する。なお、ステップS400〜402については、前述の通りであるので省略する。ステップS403において、1クロック内で到着したTAG数がカウントされる。例えば、図8Aのクロック7では、ロードバッファ#0宛てのTAGの到着数は"3"なのでNo.20のクロック7におけるTAG数カウンタ201の出力値も"3"となる。   Next, the operation of the information processing apparatus in the case of FIGS. 8A and 8B will be described according to the flowchart of FIG. Steps S400 to S402 are the same as described above, and will be omitted. In step S403, the number of TAGs that arrive within one clock is counted. For example, in the clock 7 of FIG. 8A, the number of arrivals of the TAG addressed to the load buffer # 0 is “3”. The output value of the TAG number counter 201 at 20 clocks 7 is also “3”.

ステップS404では、クロック7において保持される整列判定カウンタ271の値"32"から、到着TAG数"3"を減じた値である"29"が、整列判定カウンタ271に格納される。この動作が、No.24のクロック8に示されている。   In step S <b> 404, “29”, which is a value obtained by subtracting the arrival tag number “3” from the value “32” of the alignment determination counter 271 held in the clock 7, is stored in the alignment determination counter 271. This operation is no. 24 clocks 8 are shown.

ステップS405では、最大カウントセット値が算出される。具体的には、図8AのNo.4〜7には、クロック14において要素26と要素31が到着している。図6を参照すれば、各要素26、31に対応するカウンタセット値は"1"と"0"である。よって、最大値である"1"が、カウンタセット値最大値検出回路202から出力される。   In step S405, the maximum count set value is calculated. Specifically, No. 8 in FIG. Elements 26 and 31 arrive at 4 to 7 in the clock 14. Referring to FIG. 6, the counter set values corresponding to the elements 26 and 31 are “1” and “0”. Therefore, the maximum value “1” is output from the counter set value maximum value detection circuit 202.

ステップS406では、整列タイミング調整カウンタ272の値がカウンタセット値最大値検出回路202の出力値よりも大きいか否か判定される。クロック14において、整列タイミング調整カウンタ272の値"1"は、カウンタセット値最大値検出回路202の出力値"1"と同じなので(ステップS406においてNO)、カウンタセット値最大値検出回路202の出力値"1"が、整列タイミング調整カウンタ272にセットされる(ステップS408)。   In step S406, it is determined whether or not the value of the alignment timing adjustment counter 272 is larger than the output value of the counter set value maximum value detection circuit 202. Since the value “1” of the alignment timing adjustment counter 272 is the same as the output value “1” of the counter set value maximum value detection circuit 202 at the clock 14 (NO in step S406), the output of the counter set value maximum value detection circuit 202 is output. The value “1” is set in the alignment timing adjustment counter 272 (step S408).

一方、特徴的なクロックについて着目すると、No.4〜7のクロック15では、遅れて到着した要素00と要素30が到着しており、各要素00、30に対応するカウンタセット値は"7"と"0"である。よって、ステップS405では、最大値である"7"がカウンタセット値最大値検出回路202より出力される。ステップS406では、整列タイミング調整カウンタ272の値"1"は、カウンタセット値最大値検出回路202の出力値"7"より小さいので(ステップS406においてNO)、カウンタセット値最大値検出回路202の出力値"7"を、整列タイミング調整カウンタ272にセットする。   On the other hand, when focusing on the characteristic clock, no. In the clocks 4 to 7, the element 00 and the element 30 that have arrived late have arrived, and the counter set values corresponding to the elements 00 and 30 are “7” and “0”. Therefore, in step S405, the maximum value “7” is output from the counter set value maximum value detection circuit 202. In step S406, since the value “1” of the alignment timing adjustment counter 272 is smaller than the output value “7” of the counter set value maximum value detection circuit 202 (NO in step S406), the output of the counter set value maximum value detection circuit 202 is output. The value “7” is set in the alignment timing adjustment counter 272.

次に、図8AのNo.4〜7のクロック16では、要素28と要素29と要素23が到着している。ステップS405において、要素に対応するカウンタセット値はそれぞれ"0"と"0"と"2"なので、最大値"2"がカウンタセット値最大値検出回路202より出力される。ステップS406では、整列タイミング調整カウンタ272の値"7"はカウンタセット値最大値検出回路202の出力値である"2"より大きいので(S406においてYES)、"7"を−1した"6"を整列タイミング調整カウンタ272にセットする。   Next, in FIG. In the clocks 4 to 7, the elements 28, 29, and 23 have arrived. In step S405, the counter set values corresponding to the elements are “0”, “0”, and “2”, respectively, so the maximum value “2” is output from the counter set value maximum value detection circuit 202. In step S406, the value “7” of the alignment timing adjustment counter 272 is larger than “2” which is the output value of the counter set value maximum value detection circuit 202 (YES in S406). Is set in the alignment timing adjustment counter 272.

また、クロック16では、最後の3つのTAGが到着したため、ステップS404において、整列判定カウンタ271の値に"0"がセットされる。   In clock 16, since the last three TAGs have arrived, “0” is set to the value of the alignment determination counter 271 in step S404.

その後、TAGの到着は無いため、No.30に示される整列タイミング調整カウンタ272の値は、1ずつ減算され、クロック23で"0"となる。そして、クロック23において、整列判定カウンタ271(No.24)と整列タイミング調整カウンタ272(No.30)の値が共に"0"となるため、演算レジスタ転送開始条件確認回路220は、このタイミングで、有効な演算レジスタ転送開始信号を出力する。この動作が図8BのNo.32のクロック24に示されている。   After that, no TAG arrived. The value of the alignment timing adjustment counter 272 indicated by 30 is decremented by 1 and becomes “0” at the clock 23. In the clock 23, since the values of the alignment determination counter 271 (No. 24) and the alignment timing adjustment counter 272 (No. 30) are both “0”, the arithmetic register transfer start condition confirmation circuit 220 is at this timing. A valid operation register transfer start signal is output. This operation is shown in FIG. 32 clocks 24 are shown.

そして図7A及びBと同様に、調停回路230と演算レジスタ転送開始信号保持レジスタ280を経て、演算レジスタ転送開始信号がロードバッファ109及び演算レジスタ110に送出される。これにより、ロードデータの転送が開始される。   7A and 7B, the operation register transfer start signal is sent to the load buffer 109 and the operation register 110 through the arbitration circuit 230 and the operation register transfer start signal holding register 280. Thereby, transfer of load data is started.

このように、本実施の形態に係る情報処理装置では、整列判定カウンタ271と整列タイミング調整カウンタ272の2つのカウンタ制御を連携させることで、ロードバッファにてデータ一貫性を損なうことなく、最速のタイミングで演算レジスタ110にロードデータを格納可能となる。   As described above, in the information processing apparatus according to the present embodiment, the two counter controls of the alignment determination counter 271 and the alignment timing adjustment counter 272 are linked to each other, so that the load buffer does not impair data consistency and the fastest. Load data can be stored in the arithmetic register 110 at the timing.

また、本実施の形態に係る情報処理装置では、TAGをロードデータに先行して送出する構成を有することで、カウンタを利用して最適なタイミングでロードバッファから演算レジスタへのデータ転送を開始できる。そのため、少ない面積の投資でロードTATを短縮し装置の処理能力を向上させることが可能となる。   In addition, the information processing apparatus according to the present embodiment has a configuration in which the TAG is transmitted prior to the load data, so that the data transfer from the load buffer to the arithmetic register can be started at an optimal timing using the counter. . Therefore, it is possible to shorten the load TAT and improve the processing capacity of the apparatus with a small area investment.

次に、図9A及び9Bの比較例を用いて、さらに本実施の形態の効果について説明する。本実施の形態では、カウンタセット値最大値検出回路202の最大値と整列タイミング調整カウンタ272の値と比較して、転送開始時間を調整していた。これに対し、図9A及び9Bの比較例では、カウンタセット値最大値検出回路202の出力値が"1"以上であった場合は、カウンタセット値最大値検出回路202の最大値と整列タイミング調整カウンタ272の値と比較することなく、整列タイミング調整カウンタ272に、カウンタセット値最大値検出回路202の出力値をセットする論理を有しているものとする。なお、図9A及び9BのTAG到着タイミングは、図8A及び9Bと同じであるとする。また、各シーケンス番号(No.)は、図7A及び7Bの(No.)にそれぞれ対応しているため、図示については省略する。   Next, the effect of the present embodiment will be further described using a comparative example of FIGS. 9A and 9B. In this embodiment, the transfer start time is adjusted by comparing the maximum value of the counter set value maximum value detection circuit 202 with the value of the alignment timing adjustment counter 272. On the other hand, in the comparative example of FIGS. 9A and 9B, when the output value of the counter set value maximum value detection circuit 202 is “1” or more, the maximum value of the counter set value maximum value detection circuit 202 and the alignment timing adjustment are adjusted. It is assumed that the alignment timing adjustment counter 272 has logic for setting the output value of the counter set value maximum value detection circuit 202 without comparing with the value of the counter 272. Note that the TAG arrival timings in FIGS. 9A and 9B are the same as those in FIGS. 8A and 9B. Since each sequence number (No.) corresponds to (No.) in FIGS. 7A and 7B, illustration is omitted.

この比較例では、クロック17で、No.30に示される整列タイミング調整カウンタ272の値に"2"がセットされている。そのため、カウンタ値がディクリメントされ、2サイクル後のNo.30のクロック19で、整列タイミング調整カウンタ272の値が"0"となる。これをトリガとして、演算レジスタ転送開始指示がロードバッファ109及び演算レジスタ110に送出され、ロードデータの転送が開始される。この図9A及び9Bの比較例では、カウンタセット値最大値検出回路202の最大値と整列タイミング調整カウンタ272の値と比較していないため、要素00のロードデータがロードバッファに格納される前に、読み出しが開始されてしまうことがわかる。そのため、比較例では、データの一貫性が損なわれることが分かる。   In this comparative example, no. The value of the alignment timing adjustment counter 272 shown at 30 is set to “2”. Therefore, the counter value is decremented and No. 2 after two cycles. At 30 clocks 19, the value of the alignment timing adjustment counter 272 becomes “0”. With this as a trigger, an operation register transfer start instruction is sent to the load buffer 109 and the operation register 110, and load data transfer is started. 9A and 9B, since the maximum value of the counter set value maximum value detection circuit 202 is not compared with the value of the alignment timing adjustment counter 272, before the load data of the element 00 is stored in the load buffer. It can be seen that reading is started. Therefore, it can be seen that the data consistency is lost in the comparative example.

これに対し、本実施の形態に係る情報処理装置では、カウンタセット値最大値検出回路202の最大値と整列タイミング調整カウンタ272の値と比較し、TAG到着の最大遅延時間を考慮して読み出しを開始することができる。そのため、図8A及びBに示すように、データの一貫性が損なわれることなく、ロードデータを読み出すことができる。   On the other hand, in the information processing apparatus according to the present embodiment, the maximum value of the counter set value maximum value detection circuit 202 is compared with the value of the alignment timing adjustment counter 272, and reading is performed in consideration of the maximum delay time of TAG arrival. Can start. Therefore, as shown in FIGS. 8A and 8B, the load data can be read without losing data consistency.

また、背景技術に記載した従来の情報処理装置では、図11Aに示すように、レジスタ701にてリプライTAGのタイミング調整を行っていた。すなわち、読み出し順番に対応するタイミングで、有効なリプライTAGであることを識別していた。そのため、必要論理を構成する場合は、同時読み出し数が8以上の特殊なRAMを使用するか、レジスタを用いる必要が有り、必要面積が増大してしまうという問題点があった。   Further, in the conventional information processing apparatus described in the background art, the timing of the reply TAG is adjusted by the register 701 as shown in FIG. 11A. In other words, it is identified that the reply TAG is valid at the timing corresponding to the reading order. Therefore, when the necessary logic is configured, it is necessary to use a special RAM having 8 or more simultaneous readings or a register, and there is a problem that a necessary area increases.

これに対し、本実施の形態に係る情報処理装置のリプライTAGタイミング調整機能は、108の機能を説明しているとおり、9サイクル分ロードデータを転送するタイミングを調整する機能のみを追加すればよいので、Write Port1個、Read Port1個(1R1W)の汎用的なRAMで構成することが可能であり、必要面積が少なく済むという利点がある。   On the other hand, the reply TAG timing adjustment function of the information processing apparatus according to the present embodiment only needs to add a function for adjusting the timing for transferring the load data for 9 cycles as described in the function 108. Therefore, it is possible to configure with one write port and one read port (1R1W) general-purpose RAM, and there is an advantage that a required area is small.

なお、本発明は、上記の説明に限られるものではなく、当業者によって種々の設計変更を実施することが可能である。例えば、メインメモリ105のメモリバンク数とロードバッファ109のポート数は一致している必要は無く、さまざまなバリエーションを取ることが可能である。また、ロードバッファ109のSRAM構成やロードバッファ数および演算レジスタ110への出力線数もさまざまなバリエーションを取ることが可能である。また、1つのロード命令で32個以下または32個以上のロードリクエストに分解するような命令セットの構成とすることも可能である。   The present invention is not limited to the above description, and various design changes can be implemented by those skilled in the art. For example, the number of memory banks in the main memory 105 and the number of ports in the load buffer 109 do not need to match, and various variations can be taken. In addition, the SRAM configuration of the load buffer 109, the number of load buffers, and the number of output lines to the arithmetic register 110 can be varied. It is also possible to adopt an instruction set configuration in which one load instruction is decomposed into 32 or fewer or 32 or more load requests.

また、レジスタ挿入によるクロック高速化についても対応可能である。また、1つのロード命令から生成されるロードリクエスト数が増える場合には、ロードバッファから演算レジスタへのデータ転送サイクルが増加する分、TAGをロードデータに先行して送出するとTAT短縮効果が大きくなる。   In addition, it is possible to cope with clock speedup by register insertion. Also, when the number of load requests generated from one load instruction increases, the TAT shortening effect is increased by sending the TAG in advance of the load data because the data transfer cycle from the load buffer to the operation register increases. .

具体的には、1つのロード命令から64個のロードリクエストが生成される命令セットでは、実施例の延長で実装するとロードバッファから演算レジスタへの転送サイクルが16サイクルとなり、実施例より8サイクル増加する。この場合、実施の形態ではロードデータに対して10サイクル早くTAGを送出していたところを、18サイクル早くTAGを送出する構成とすると、最大のロードTAT短縮効果が得られる。   Specifically, in an instruction set in which 64 load requests are generated from one load instruction, when implemented as an extension of the embodiment, the transfer cycle from the load buffer to the operation register is 16 cycles, which is an increase of 8 cycles from the embodiment. To do. In this case, when the TAG is sent 10 cycles earlier than the load data in the embodiment, the maximum load TAT shortening effect can be obtained if the TAG is sent 18 cycles earlier.

なお、この場合、図6のカウンタセット値の対応表は次のような手順により作成することができる。すなわち、最大のTAT短縮効果を得るために、TAGを18サイクル早く送出する構成では、ロードバッファ読み出し順で一番最後となるサイクルの要素番号"60"、"61"、"62"、"63"のカウンタセット値を0として、その1つ前に読み出される要素番号"56"、"57"、"58"、"59"のカウンタセット値を1とする。このように読み出し順番が早くなる毎にカウンタセット値を増やしていくようにして対応表を作成することができる。この場合、要素番号0、1、2、3のカウントセット値は15となる。   In this case, the counter set value correspondence table of FIG. 6 can be created by the following procedure. That is, in order to obtain the maximum TAT shortening effect, in the configuration in which the TAG is sent 18 cycles earlier, the element numbers “60”, “61”, “62”, “63” of the last cycle in the load buffer reading order. The counter set value of “0” is set to 0, and the counter set values of element numbers “56”, “57”, “58”, and “59” read immediately before are set to 1. In this way, the correspondence table can be created by increasing the counter set value every time the reading order is advanced. In this case, the count set value of element numbers 0, 1, 2, and 3 is 15.

また、図5のフローチャートに示される情報処理方法は、プログラムとして実施することもでき、このプログラムは、様々な記録媒体に格納することもできる。   The information processing method shown in the flowchart of FIG. 5 can also be implemented as a program, and this program can also be stored in various recording media.

101 命令発行部
102 使用ロードバッファ決定部
103 ロードリクエスト分解部
105 メインメモリ
104、106 メモリネットワーク
107 整列判定部
109 ロードバッファ
110 演算レジスタ
111 演算器
201、203 TAG数カウンタ
202、204 カウンタセット値最大値検出回路
210、212 整列判定カウンタ制御回路
211、213 整列タイミング調整カウンタ制御回路
220、221 演算レジスタ転送開始条件確認回路
230 調停回路
270、274 ロード命令情報格納レジスタ
271、275 整列判定カウンタ
272、276 整列タイミング調整カウンタ
273 ビジーフラグ群
280 演算レジスタ転送開始信号保持レジスタ
300〜303 ロードバッファ要素
101 Instruction issuing unit 102 Load buffer determining unit 103 Load request decomposing unit 105 Main memory 104, 106 Memory network 107 Alignment determining unit 109 Load buffer 110 Arithmetic register 111 Arithmetic unit 201, 203 TAG counters 202, 204 Maximum counter set value Detection circuits 210 and 212 Alignment determination counter control circuits 211 and 213 Alignment timing adjustment counter control circuits 220 and 221 Arithmetic register transfer start condition confirmation circuit 230 Arbitration circuits 270 and 274 Load instruction information storage registers 271 and 275 Alignment determination counters 272 and 276 Alignment Timing adjustment counter 273 Busy flag group 280 Operation register transfer start signal holding register 300 to 303 Load buffer element

Claims (8)

1つのロード命令から複数のロードリクエストを生成するロードリクエスト分解部と、
個々の前記ロードリクエストに対するロードデータを格納し、演算レジスタに転送するロードバッファと、
前記ロードリクエスト分解部によって生成された前記ロードリクエストを入力し、前記ロードリクエストに対する前記ロードデータをメインメモリから読み出すと共に、前記メインメモリによって生成された、前記ロードデータを前記ロードバッファから読み出す順番を示す付随情報を、前記ロードデータに先立って送出するよう制御するメモリネットワークと、
先立って送出された前記付随情報に基づいて、前記付随情報に対応する前記ロードデータの到着の遅れを検出し、前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整する整列判定部と、を備えた情報処理装置。
A load request decomposition unit for generating a plurality of load requests from one load instruction;
A load buffer for storing load data for each of the load requests and transferring the load data to an operation register;
The load request generated by the load request decomposition unit is input, the load data corresponding to the load request is read from the main memory, and the load data generated by the main memory is read out from the load buffer. A memory network for controlling the accompanying information to be transmitted prior to the load data;
Based on the accompanying information sent in advance, the delay of arrival of the load data corresponding to the accompanying information is detected, and based on the arrival delay of the load data, the load buffer to the arithmetic register An information processing apparatus comprising: an alignment determination unit that adjusts a read start time of load data.
前記ロードリクエスト分解部は、前記ロードリクエストの数を前記整列判定部に送出し、
前記整列判定部は、前記ロードリクエストの数と、受け付けられた前記付随情報の数を比較することにより、前記読み出しの開始時間を調整する、請求項1に記載の情報処理装置。
The load request decomposition unit sends the number of load requests to the alignment determination unit,
The information processing apparatus according to claim 1, wherein the alignment determination unit adjusts the read start time by comparing the number of the load requests with the number of the associated information received.
前記付随情報を、当該付随情報に対応する前記ロードバッファのタイミングに調整して前記ロードバッファに送出する付随情報タイミング調整部を更に備えた請求項1又は2に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising an accompanying information timing adjustment unit that adjusts the accompanying information to a timing of the load buffer corresponding to the accompanying information and sends the adjusted information to the load buffer. 前記整列判定部は、複数の前記付随情報のうち、到着が最も遅れた前記付随情報に対応する前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの前記読み出し開始時間を調整する、請求項1乃至3のうちいずれか1項に記載の情報処理装置。   The alignment determination unit, based on a delay in arrival of the load data corresponding to the accompanying information that arrived most late among a plurality of the accompanying information, the load data from the load buffer to the operation register The information processing apparatus according to claim 1, wherein the read start time is adjusted. 前記整列判定部は、前記ロードデータを前記ロードバッファから読み出す順番と、前記読み出し開始時間を遅延させる遅延時間とが対応付けられた表を参照することで、前記付随情報に基づき前記読み出し開始時間を設定する、請求項1乃至4のうちいずれか1項に記載の情報処理装置。   The alignment determining unit refers to a table in which the order of reading the load data from the load buffer and a delay time for delaying the read start time are referred to, thereby determining the read start time based on the accompanying information. The information processing apparatus according to claim 1, wherein the information processing apparatus is set. 前記整列判定部は、到着する前記付随情報毎に前記表を参照することで前記読み出し開始時間の前記遅延時間を設定し、最も大きい前記遅延時間に応じて前記読み出し開始時間を更新する、請求項5に記載の情報処理装置。   The alignment determination unit sets the delay time of the read start time by referring to the table for each accompanying information that arrives, and updates the read start time according to the largest delay time. 5. The information processing apparatus according to 5. 1つのロード命令から複数のロードリクエストを生成し、
生成された前記ロードリクエストを入力し、前記ロードリクエストに対する前記ロードデータをメインメモリから読み出し、
前記メインメモリによって生成された、前記ロードデータをロードバッファから演算レジスタへ読み出す順番を示す付随情報を、前記ロードデータに先立って送出し、
先立って送出された前記付随情報に基づいて、前記付随情報に対応する前記ロードデータの到着の遅れを検出し、
前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整する、情報処理方法。
Generate multiple load requests from one load instruction,
Input the generated load request, read the load data for the load request from the main memory,
The accompanying information generated by the main memory indicating the order in which the load data is read from the load buffer to the operation register is sent prior to the load data,
Detecting a delay in arrival of the load data corresponding to the accompanying information based on the accompanying information sent in advance;
An information processing method of adjusting a read start time of the load data from the load buffer to the arithmetic register based on a delay in arrival of the load data.
前記ロードリクエストの数と、受け付けられた前記付随情報の数を比較することにより、前記読み出しの開始時間を調整する、請求項7に記載の情報処理方法。   The information processing method according to claim 7, wherein the read start time is adjusted by comparing the number of the load requests with the number of the associated information received.
JP2010240447A 2010-10-27 2010-10-27 Information processing apparatus and information processing method Active JP5348698B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010240447A JP5348698B2 (en) 2010-10-27 2010-10-27 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010240447A JP5348698B2 (en) 2010-10-27 2010-10-27 Information processing apparatus and information processing method

Publications (2)

Publication Number Publication Date
JP2012093944A true JP2012093944A (en) 2012-05-17
JP5348698B2 JP5348698B2 (en) 2013-11-20

Family

ID=46387203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010240447A Active JP5348698B2 (en) 2010-10-27 2010-10-27 Information processing apparatus and information processing method

Country Status (1)

Country Link
JP (1) JP5348698B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320778A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
CN112311843A (en) * 2020-03-18 2021-02-02 北京沃东天骏信息技术有限公司 Data loading method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319829A (en) * 1994-05-25 1995-12-08 Kofu Nippon Denki Kk Method for transferring data
JP2005025693A (en) * 2003-07-04 2005-01-27 Nec Computertechno Ltd Vector processor and method for loading vector
JP2009252133A (en) * 2008-04-10 2009-10-29 Nec Computertechno Ltd Device and method for processing vector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319829A (en) * 1994-05-25 1995-12-08 Kofu Nippon Denki Kk Method for transferring data
JP2005025693A (en) * 2003-07-04 2005-01-27 Nec Computertechno Ltd Vector processor and method for loading vector
JP2009252133A (en) * 2008-04-10 2009-10-29 Nec Computertechno Ltd Device and method for processing vector

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320778A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
CN112311843A (en) * 2020-03-18 2021-02-02 北京沃东天骏信息技术有限公司 Data loading method and device

Also Published As

Publication number Publication date
JP5348698B2 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
US8161274B2 (en) Command selection method and its apparatus
US7694035B2 (en) DMA shared byte counters in a parallel computer
US7231478B2 (en) Programmed access latency in mock multiport memory
CN101344871A (en) Bus arbitration unit for guaranteeing access sequence and its implementing method
US7373467B2 (en) Storage device flow control
JP5267328B2 (en) Interrupt notification control device and semiconductor integrated circuit
JP2016189096A (en) Semiconductor device
CN103870245A (en) Tracking a relative arrival order of events being stored in multiple queues using a counter
JPH05342178A (en) Arbitration circuit and data processor using the circuit
CN106330741B (en) Message transmission method and device
JP5348698B2 (en) Information processing apparatus and information processing method
US5944788A (en) Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules
TW449720B (en) Routing dependent instructions to clustered execution units
US7308540B2 (en) Pseudo multiport data memory has stall facility
US5999969A (en) Interrupt handling system for message transfers in network having mixed hardware and software emulated modules
US5983266A (en) Control method for message communication in network supporting software emulated modules and hardware implemented modules
JP5239769B2 (en) Request order control system, request order control method, and request order control program
US6829647B1 (en) Scaleable hardware arbiter
Andreozzi et al. A MILP approach to DRAM access worst-case analysis
CN116596990B (en) Target detection method, device, equipment and storage medium
JP2005242500A (en) Read request arbitration control system and its method
US11928523B2 (en) Synchronisation for a multi-tile processing unit
US11907772B2 (en) Tracing synchronization activity of a processing unit
JPH10333979A (en) Bank access control system
JP3882791B2 (en) Node blocker for computer system and transaction control method thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130815

R150 Certificate of patent or registration of utility model

Ref document number: 5348698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350