JPH10240525A - Information processor - Google Patents

Information processor

Info

Publication number
JPH10240525A
JPH10240525A JP4037897A JP4037897A JPH10240525A JP H10240525 A JPH10240525 A JP H10240525A JP 4037897 A JP4037897 A JP 4037897A JP 4037897 A JP4037897 A JP 4037897A JP H10240525 A JPH10240525 A JP H10240525A
Authority
JP
Japan
Prior art keywords
register
memory
data
depth
register file
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
JP4037897A
Other languages
Japanese (ja)
Inventor
Yoshio Miki
良雄 三木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4037897A priority Critical patent/JPH10240525A/en
Publication of JPH10240525A publication Critical patent/JPH10240525A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To extend a register set which has a different depth register value by substituting information of a memory line which is made to correspond by a depth register for a register file when the contents of the depth register are updated. SOLUTION: The information processor 1 has a data memory 102, the register file 103, and an arithmetic circuit 109 mounted on the same chip. A column pointer 104 stores information for discriminating line memory lines 101 and its numeric information is decoded by a column selecting circuit 105 into a select signal for the memory lines 101. When data of the memory lines 101 are transferred to the register file 103, the contents of the column pointer 104 are written in the depth register. In this case, when the contents of the depth register are updated, the information of the memory lines 101 which are made to correspond through the depth register is substituted for the register file 103.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、命令列によって処
理内容が制御される情報処理装置に係り、特に、大容量
メモリを搭載したLSI等で構成され、マルチメディアや
科学技術計算時に頻発する複数データに対する同一演算
処理機能を備えた情報処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus in which the processing content is controlled by a sequence of instructions, and more particularly to an information processing apparatus comprising an LSI or the like equipped with a large-capacity memory, and The present invention relates to an information processing apparatus having the same arithmetic processing function for data.

【0002】[0002]

【従来の技術】LSIプロセス技術の向上に伴い、従来、
別部品として構成されていたDRAMのような大容量メモリ
と、マイクロプロセッサのような大規模論理回路が同一
チップ上に実現できるようになってきた。マイクロプロ
セッサ等のプログラムによって動作を制御可能な装置で
は、命令語によって大規模メモリ内のデータを指定可能
であることが必要であり、その指定方法を定義しなけれ
ばならない。プロセッサ内のメモリ資源をいわゆるアー
キテクチャレジスタ(命令語によってユーザが読み書き
可能なレジスタ)として参照可能な方法としてレジスタ
ウインドウが知られている(参考文献1:中澤喜三郎著
計算機アーキテクチャと構成方式 朝倉書店1995年
374頁〜378頁)。レジスタウィンドウを備えたプロセッ
サには、アーキテクチャレジスタ全体の数倍の容量を持
つメモリと、現在レジスタとして使用中のメモリ位置を
示すためのベースレジスタとが内蔵されている。命令語
に含まれるレジスタ名(番号)は一旦数値に変換され、
ベースレジスタとの加算結果が上記メモリのアドレスと
なる。これにより、ベースレジスタの内容を変えること
で、実際には論理的なレジスタ数以上のレジスタを読み
書きすることが可能である。この機構は物理的なレジス
タと命令語で指定される論理的なレジスタが異なること
を許すものであり、あるレジスタの参照が終了する前に
先行するロード命令で同じレジスタにロードを開始する
等の処理が可能となる。つまり、命令1でレジスタ1に
データをロードし、命令2でレジスタ1の内容を利用
し、さらに命令3で命令1とは異なるデータをレジスタ
1にロードする命令列を考えた場合、命令3がレジスタ
1に上書きすることによる命令2の誤動作を防ぐため
に、命令3は命令2でレジスタ1の内容を参照し終わる
まで、実行を待たなければならない。ところが、ロード
命令が出現する毎にベースレジスタの値を更新すること
とし、継続する命令はそのベースレジスタでレジスタを
参照するよう関連づけ、さらに後続命令に同じレジスタ
へロードする命令が出現した場合には再びベースレジス
タを更新して物理的には異なる場所へデータをロードす
れば、上記の命令1と3は連続して実行可能である。
[Prior Art] With the improvement of LSI process technology,
A large-capacity memory such as DRAM and a large-scale logic circuit such as a microprocessor, which are configured as separate components, can be realized on the same chip. In a device whose operation can be controlled by a program such as a microprocessor, it is necessary that data in a large-scale memory can be specified by a command word, and a specification method must be defined. A register window is known as a method of referring to a memory resource in a processor as a so-called architectural register (a register readable and writable by a user using an instruction word) (Reference 1: Kisaburo Nakazawa, Computer architecture and configuration method Asakura Shoten 1995)
374-378). A processor having a register window includes a memory having a capacity several times larger than that of the entire architectural register, and a base register for indicating a memory location currently used as a register. The register name (number) included in the instruction word is temporarily converted to a numerical value,
The result of addition with the base register becomes the address of the memory. Thus, by changing the contents of the base register, it is possible to actually read / write more registers than the logical number of registers. This mechanism allows the physical register and the logical register specified by the instruction word to be different from each other. For example, before the reference of a certain register is completed, the preceding load instruction starts loading the same register. Processing becomes possible. That is, if an instruction sequence is used in which data is loaded into register 1 with instruction 1, instruction 2 uses the contents of register 1, and instruction 3 loads data different from instruction 1 into register 1, In order to prevent the malfunction of the instruction 2 caused by overwriting the register 1, the execution of the instruction 3 must wait until the instruction 2 has finished referring to the contents of the register 1. However, each time a load instruction appears, the value of the base register is updated, the following instruction is associated with the base register to refer to the register, and if an instruction to load the same register appears in a subsequent instruction, If the base register is updated again and data is loaded to a physically different location, the above instructions 1 and 3 can be continuously executed.

【0003】一方、マイクロプロセッサ等の新しい処理
対象として、データ、音、静止画、動画等を含むマルチ
メディアが台頭している。このマルチメディアを処理す
る際の核となる符号化処理、信号処理ではDSP(Degital
Signal Processor)やベクトル計算機の有するSIMD(Sing
le Instruction Mutiple Data)処理能力が有効である。
しかし、マルチメディア機器のように、より少ない部品
数で多機能を実現することが重要な装置ではDSPやベク
トル計算機構といった専用プロセッサの導入を避け、汎
用プロセッサの拡張機能としてマルチメディア処理を実
現する傾向が強い。神保進一著:「最新マイクロプロセ
サテクノロジ」日経BP社1996年刊に示される命令で
は、1データ語長(例えば32bit)を複数に分割し、1命
令で複数のデータ処理を実現しようとするものである。
ただし、1データ語長を分割した場合に表現可能な数値
が小さくなるため、画像処理のピクセルデータなどへの
用途が中心となる。
On the other hand, multimedia including data, sound, still images, moving images, and the like is emerging as a new processing object such as a microprocessor. DSP (Digital) is used for encoding and signal processing, which is the core when processing this multimedia.
Signal Processor) and SIMD (Sing
le Instruction Mutiple Data) processing capacity is effective.
However, for devices where it is important to realize multiple functions with a smaller number of components, such as multimedia devices, avoid the introduction of dedicated processors such as DSPs and vector calculation mechanisms, and implement multimedia processing as an extended function of general-purpose processors. Strong tendency. Shinbo Jimbo: "Latest Microprocessor Technology", an instruction published in Nikkei BP, 1996, divides one data word length (for example, 32 bits) into multiple parts and attempts to realize multiple data processing with one instruction. .
However, since the numerical value that can be expressed when the length of one data word is divided becomes small, it is mainly used for image processing such as pixel data.

【0004】[0004]

【発明が解決しようとする課題】上述のように、汎用マ
イクロプロセッサでマルチメディア処理を実現するに
は、DSPやベクトルプロセッサに見られるSIMD処理機構
を導入することが望ましい。しかし、DSPのデータメモ
リやベクトルプロセッサのベクトルレジスタ等の専用メ
モリをアーキテクチャに導入することはユーザアーキテ
クチャの大幅な変更を伴う。
As described above, in order to realize multimedia processing with a general-purpose microprocessor, it is desirable to introduce a SIMD processing mechanism found in a DSP or a vector processor. However, introducing a dedicated memory such as a data memory of a DSP or a vector register of a vector processor into the architecture involves a drastic change in the user architecture.

【0005】また、レジスタウインドウはレジスタ番号
等、論理的アーキテクチャ構成を保存したままで、物理
的メモリを導入可能であるが、DRAMや強誘電体メモリと
いった大容量メモリには適さない。なぜなら、アーキテ
クチャレジスタには、プロセッサ内で動作中の複数の命
令(例えば演算命令とロード・ストア命令)からの読み
出し要求、書き込み要求が到達するために、複数データ
の読み出し、書き込みを可能としたいわゆるマルチポー
トメモリのしての機能が必要となるからである。つま
り、レジスタウインドウを実現するための物理メモリは
全アドレスに関してマルチポートメモリの機能が必要と
なり、同容量のシングルポートメモリに対して数倍の面
積増となる。
Although the register window can store a physical memory while retaining a logical architecture configuration such as a register number, it is not suitable for a large-capacity memory such as a DRAM or a ferroelectric memory. This is because, in the architecture register, a plurality of data can be read and written because a read request and a write request from a plurality of instructions (for example, an operation instruction and a load / store instruction) operating in the processor arrive. This is because the function required for the multiport memory is required. In other words, the physical memory for realizing the register window requires a multi-port memory function for all addresses, and the area is several times larger than that of a single-port memory having the same capacity.

【0006】以上のことから、本発明の解決すべき課題
は次の2点となる。第1の課題は汎用プロセッサアーキ
テクチャの大幅な変更をせずに、ベクトル処理のような
SIMD処理を実現することであり、第2の課題は大幅なア
ーキテクチャの変更をせずに、大容量メモリをアーキテ
クチャ内に導入することである。
From the above, the problems to be solved by the present invention are the following two points. The first is that without significant changes to the general-purpose processor architecture, such as vector processing,
A second challenge is to implement a SIMD process, and to introduce a large-capacity memory into the architecture without significant architectural changes.

【0007】[0007]

【課題を解決するための手段】第1の課題を解決する手
段として、1命令語によって同一の演算がレジスタファ
イル内の複数のレジスタに対して施される演算回路を設
ける。具体的にはアーキテクチャレジスタ(例えばR0〜
R15,R16〜R31)をそれぞれベクトルレジスタと考え、16
個のデータ要素に対して同一の演算を施すベクトル演算
機能を設ける。しかしながら、このように既存のアーキ
テクチャレジスタだけでベクトルレジスタを構成する
と、ベクトルレジスタの本数(上述の方法では2本)が
不足する。この不足問題と第2の課題は同一手段によっ
て解決される。つまり、1データ単位を記憶するデータ
セルと、列状に構成されたデータセルから成るメモリラ
インと、複数のメモリラインから構成されるデータメモ
リと、命令語によって指定可能なレジスタを複数含むレ
ジスタファイルと、メモリラインに対応する数値を格納
するデプスレジスタとを設け、デプスレジスタの内容が
更新された際に、デプスレジスタによって対応づけられ
るメモリラインの情報によってレジスタファイルを置換
する。これにより、見かけのアーキテクチャレジスタは
同一で、デプスレジスタの値が異なるレジスタセットを
増設することが可能である。また、データメモリを直接
レジスタとして使用しないために、データメモリ部分は
例えばDRAM,SRAMといった大容量のシングルポートメモ
リがそのまま利用可能である。
As means for solving the first problem, there is provided an operation circuit in which the same operation is performed on a plurality of registers in a register file by one instruction word. Specifically, an architecture register (for example, R0 to
R15, R16 to R31) are considered as vector registers, respectively.
A vector operation function for performing the same operation on the data elements is provided. However, if the vector registers are configured only with the existing architecture registers, the number of vector registers (two in the above-described method) is insufficient. This shortage problem and the second problem are solved by the same means. That is, a register file including a data cell storing one data unit, a memory line composed of data cells arranged in a column, a data memory composed of a plurality of memory lines, and a plurality of registers that can be specified by a command word And a depth register for storing a numerical value corresponding to the memory line, and when the content of the depth register is updated, the register file is replaced with information on the memory line associated with the depth register. As a result, it is possible to add a register set having the same apparent architectural register but different values of the depth register. In addition, since the data memory is not used directly as a register, a large-capacity single-port memory such as a DRAM or an SRAM can be used as the data memory portion.

【0008】[0008]

【発明の実施の形態】本発明の実施の形態を図を用いて
説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described with reference to the drawings.

【0009】<実施形態の概要>図1は、本発明を実現
する情報処理装置(CPU)の構成例である。図1にお
いて情報処理装置(CPU)1で示された波線内部が半導体
チップとして、いわゆる一つのCPUパッケージを構成
する部分である。情報処理装置1において、データメモ
リ102とレジスタファイル103と演算回路109とが同一チ
ップ内に格納されていることが、本発明における情報処
理装置の主な構成要件である。
<Outline of Embodiment> FIG. 1 shows an example of the configuration of an information processing apparatus (CPU) for realizing the present invention. In FIG. 1, the inside of the dashed line indicated by the information processing device (CPU) 1 is a portion constituting a so-called one CPU package as a semiconductor chip. In the information processing device 1, the main configuration requirement of the information processing device according to the present invention is that the data memory 102, the register file 103, and the arithmetic circuit 109 are stored in the same chip.

【0010】図1において、データセル100は情報処理
装置内の処理単位となるデータ長(例えば32bit)の情
報を記憶する記録回路であり、複数のデータセルでメモ
リライン101を構成する。メモリラインは通常のSRAMやD
RAMの内部メモリアレイと同様にライン(列)単位での
読み出し書き込みが可能であり、複数のメモリラインで
データメモリ102を構成している。レジスタファイル103
は、アーキテクチャレジスタ(以降、単にレジスタと記
載)としてのR0〜R15,R16〜R31のレジスタ名(番号)で
識別可能な32本と、レジスタと先のメモリライン101
を指示するためのデプスレジスタDR0,DR1から構成され
ている。それぞれのレジスタは情報処理装置内の処理単
位となるデータ長の情報を記憶することが可能であり、
あるメモリライン内のデータセルと一対一の対応関係に
ある。後述するようにレジスタファイル103からは同時
に異なるレジスタ番号で識別される二つのレジスタ内容
を演算回路109へ読み出すことと、一つのレジスタへの
ロード/ストア回路110または演算回路109からの書き込
み、一つのデータメモリ102への書き込みが可能であ
る。本実施の形態ではデータメモリ102への書き込みと
レジスタファイルへの書き込みは独立して実行可能であ
る。この同時実行可能な書き込み、読み出し可能数は発
明内容を特に制限するものではないが、データメモリ10
2の読み出し、書き込みがメモリライン101単位であるの
に対して、レジスタファイル103はレジスタ単位の読み
書きが可能であることと、同時に複数の読み書きが可能
であるという関係は本発明の前提条件である。
In FIG. 1, a data cell 100 is a recording circuit for storing information of a data length (for example, 32 bits) as a processing unit in an information processing apparatus, and a memory line 101 is constituted by a plurality of data cells. Memory line is normal SRAM or D
Like the internal memory array of the RAM, reading and writing can be performed in line (column) units, and the data memory 102 is constituted by a plurality of memory lines. Register file 103
Are 32 registers identifiable by register names (numbers) R0 to R15 and R16 to R31 as architecture registers (hereinafter simply referred to as registers);
, And depth registers DR0 and DR1 for instructing the operation. Each register can store data length information as a processing unit in the information processing device,
There is a one-to-one correspondence with a data cell in a certain memory line. As will be described later, reading two register contents simultaneously identified by different register numbers from the register file 103 to the arithmetic circuit 109, writing to one load / store circuit 110 or writing from the arithmetic circuit 109, Writing to the data memory 102 is possible. In the present embodiment, writing to the data memory 102 and writing to the register file can be executed independently. Although the number of simultaneously readable and writable data does not particularly limit the content of the invention, the data memory 10
The relationship that the register file 103 is readable and writable in register units and that multiple read and write operations are possible at the same time is a prerequisite for the present invention, whereas the reading and writing of 2 are performed in units of the memory line 101. .

【0011】レジスタファイル103とデータメモリ102の
関係は、データメモリ102内のいずれかのメモリライン1
01がレジスタファイル103内のレジスタ(R0〜R15)また
は(R16〜R31)と一致しているという関係にある。ただ
し、本実施の形態ではデプスレジスタがDR0とDR1の二つ
存在し、DR0がレジスタ(R0〜R15)とDR1が(R16〜R31)
と関連づけられているので、厳密には1レジスタファイ
ルはメモリライン2本分のデータを半分ずつ保持するこ
とが可能である。どのメモリラインと一致しているかは
デプスレジスタ(DR0,DR1)に示される。本実施の形態
ではデプスレジスタは二つ存在し、DR0がR0〜R15の内
容、DR1がR16〜R31の内容について該当するメモリライ
ンを示している。具体的なメモリラインの選択は、デプ
スレジスタDR0,DR1の内容がそれぞれに対応した列ポイ
ンタ104にライン120により転送されることにより行われ
る。列ポインタ104には複数あるメモリライン101を識別
する情報(例えば、数値情報)が格納され、その数値情
報は列選択回路105によってデコードされ、メモリライ
ンの選択信号となる。逆に、メモリライン101のデータ
がレジスタファイル103に転送される時には列ポインタ1
04の内容がデプスレジスタに書き込まれる。つまり、デ
プスレジスタDR0,DR1は現在レジスタとして命令語にて
指定可能なメモリラインの識別情報を保持していること
になる。
The relationship between the register file 103 and the data memory 102 is as follows.
01 is consistent with the registers (R0 to R15) or (R16 to R31) in the register file 103. However, in this embodiment, there are two depth registers DR0 and DR1, and DR0 is a register (R0 to R15) and DR1 is a register (R16 to R31).
Strictly speaking, one register file can hold half the data of two memory lines at a time. Which memory line matches is indicated in the depth register (DR0, DR1). In this embodiment, there are two depth registers, and DR0 indicates the corresponding memory line for the contents of R0 to R15 and DR1 indicates the corresponding memory line for the contents of R16 to R31. The specific memory line is selected by transferring the contents of the depth registers DR0 and DR1 to the corresponding column pointers 104 via the line 120. Information (for example, numerical information) for identifying the plurality of memory lines 101 is stored in the column pointer 104, and the numerical information is decoded by the column selection circuit 105 and becomes a memory line selection signal. Conversely, when data on the memory line 101 is transferred to the register file 103, the column pointer 1
04 is written to the depth register. That is, the depth registers DR0 and DR1 hold the identification information of the memory line that can be specified by the instruction word as the current register.

【0012】次に本実施の形態のベクトル処理動作を説
明するのに先立ち、本発明で用いる命令フォーマットを
図11を用いて説明する。命令フォーマットは2種類存
在し、どちらも命令の種別を表す命令種別1101、レジス
タを指定するレジスタ指定部OP0(1102)を有する。命
令フォーマット1は主にレジスタ間の演算命令に用いら
れるために、演算の入力値が格納されるレジスタを指定
するレジスタ指定部、OP1(1103)、OP2(1104)を有す
る。なお、命令フォーマット1ではレジスタ指定部OP0
は演算結果を格納するレジスタが指定される。命令フォ
ーマット2は命令語に埋め込まれたデータ、いわゆる即
値データを扱うためのフォーマットであり、即値データ
を格納すべきレジスタをレジスタ指定部OP0(1102)で指
定し、即値データ自身は即値データ部1105に格納され
る。この命令フォーマットは後述のように、各レジスタ
の値を直接設定したり、外部記憶装置中の即値データを
アドレスとして参照される箇所のデータをレジスタにロ
ードしたり、逆にレジスタ指定部OP0(1102)で指定され
るレジスタの内容を外部記憶装置にストアするのに用い
られる。
Next, prior to describing the vector processing operation of the present embodiment, an instruction format used in the present invention will be described with reference to FIG. There are two types of instruction formats, both of which have an instruction type 1101 indicating the type of instruction and a register specification unit OP0 (1102) for specifying a register. Since the instruction format 1 is mainly used for an operation instruction between registers, it has a register specification unit OP1 (1103) and OP2 (1104) for specifying a register in which an operation input value is stored. In the instruction format 1, the register specifying unit OP0
Is a register that stores the operation result. The instruction format 2 is a format for handling data embedded in an instruction word, that is, so-called immediate data. The register in which the immediate data is to be stored is specified by the register specifying unit OP0 (1102), and the immediate data itself is stored in the immediate data unit 1105. Is stored in As will be described later, this instruction format directly sets the value of each register, loads data of a location referred to as an immediate data in an external storage device as an address, and conversely, a register specifying unit OP0 (1102 ) Is used to store the contents of the register designated by ()) in the external storage device.

【0013】次に本発明の情報処理装置で用いられる命
令語のアセンブラ言語としての表現例を述べる(図1
2)。
Next, an example of expression of an instruction word used in the information processing apparatus of the present invention as an assembler language will be described (FIG. 1).
2).

【0014】命令1201は加算命令であり、レジスタ0(R
0)にレジスタ1(R1)とレジスタ2(R2)の加算結果を格納
する。本発明では後述するようにベクトル演算が可能で
あるが、命令語としては単に指定するレジスタ名を命令
1202のようにVR0,VR1といったベクトルレジスタ名に変
えるだけでよい。
The instruction 1201 is an addition instruction, and the register 120 (R
0) stores the result of addition of the register 1 (R1) and the register 2 (R2). In the present invention, a vector operation can be performed as will be described later.
Just change to vector register names such as VR0 and VR1 like 1202.

【0015】命令1202はこの命令語1語でR(i)=R(i)+R
(i+15)の加算をi=0からi=15まで全ての場合について実
施する。ただし、R(i)はレジスタ番号iを意味する。
The instruction 1202 is one instruction word, and R (i) = R (i) + R
The addition of (i + 15) is performed for all cases from i = 0 to i = 15. Here, R (i) means the register number i.

【0016】次に命令1203は数値の移動命令であり、レ
ジスタ1(R1)の内容をレジスタ0(R0)に移動する。図1
1に示した命令フォーマット2を用いると数値を直接扱
うことも可能であり、命令1204は直接レジスタ0に数値
255を入力することができる。以上二例のMOVE命令は一
般的な情報処理装置とかわりないが、これらの命令と同
じ形式で以下の本発明における情報処理装置に固有のレ
ジスタを操作することができる。
Next, an instruction 1203 is a numerical value moving instruction, which moves the contents of the register 1 (R1) to the register 0 (R0). FIG.
Using the instruction format 2 shown in (1), it is possible to directly handle numeric values.
You can enter 255. The above two examples of the MOVE instruction are the same as those of general information processing devices, but can operate the following registers unique to the information processing device of the present invention in the same format as these instructions.

【0017】命令1205はベクトル長レジスタ(VL)に数値
8を設定する命令である。これにより、後述のベクトル
演算の対象となるレジスタが決定される。
An instruction 1205 is an instruction for setting a numerical value 8 in a vector length register (VL). As a result, a register to be subjected to a vector operation described later is determined.

【0018】また、命令1206は図1,図2に示したデプ
スレジスタ(DR0)に数値128を設定する命令である。先に
述べたように、デプスレジスタはメモリライン101の位
置を示す数値が格納されていることから、デプスレジス
タに特定の数値を設定することはデータメモリ102内の
あるメモリラインの値をレジスタに読み出してくる動作
に対応する。この動作については後に図6を用いて説明
する。
An instruction 1206 is an instruction for setting a numerical value 128 in the depth register (DR0) shown in FIGS. As described above, since the depth register stores a numerical value indicating the position of the memory line 101, setting a specific numerical value in the depth register requires the value of a certain memory line in the data memory 102 to be stored in the register. This corresponds to the operation of reading. This operation will be described later with reference to FIG.

【0019】次の命令1207もやはりデプスレジスタに数
値128を設定する命令である。命令1207は命令1206のよ
うに単にデータメモリからデータを読み出すだけでな
く、変更される直前のデプスレジスタで示されるメモリ
ラインにレジスタファイルの値を書き戻してから、新し
いデプスレジスタで示される(この例では128)メモリラ
インの内容をレジスタファイルに読み出す。つまり、レ
ジスタファイル内の数値に関して、自動的にデータメモ
リ102との間で入れ替えを行う命令である。この動作に
ついても図5を用いて後で詳細に説明する。
The next instruction 1207 is also an instruction for setting a numerical value 128 in the depth register. The instruction 1207 does not merely read data from the data memory as the instruction 1206, but also writes the value of the register file back to the memory line indicated by the depth register immediately before being changed, and then indicates by the new depth register. In the example, 128) Read the contents of the memory line into the register file. That is, this is an instruction for automatically exchanging the numerical value in the register file with the data memory 102. This operation will also be described later in detail with reference to FIG.

【0020】最後に命令1208は外部記憶装置113からデ
ータメモリ102へデータをロードする命令である。本実
施の形態では図1の列ポインタ104はユーザーが命令語
で直接に値を変更可能なレジスタではなく、ロード命令
のレジスタ指定部で指定されたレジスタの値(命令1208
の場合はレジスタ0)かデプスレジスタの値が使用され
る。命令1208では外部記憶装置の1420番地のデータをレ
ジスタ(R0)で示されるメモリラインへロードする。この
動作は図7を用い後で説明する。
Finally, an instruction 1208 is an instruction to load data from the external storage device 113 to the data memory 102. In this embodiment, the column pointer 104 in FIG. 1 is not a register whose value can be directly changed by the user with an instruction word, but a register value (instruction 1208) designated by a register designation section of a load instruction.
In this case, the value of the register 0) or the depth register is used. In the instruction 1208, the data at the address 1420 in the external storage device is loaded into the memory line indicated by the register (R0). This operation will be described later with reference to FIG.

【0021】これらの命令語は外部記憶装置113に格納
されており、命令バッファ106に読み込まれた後、命令
デコーダ115で解読され、命令語に含まれるレジスタ名
はレジスタ番号ポインタ107に一旦格納される。演算命
令は通常2入力1出力の形態をとるため、最大3つのレ
ジスタを指定可能でなければならない。
These instruction words are stored in the external storage device 113, read into the instruction buffer 106, decoded by the instruction decoder 115, and the register names included in the instruction words are temporarily stored in the register number pointer 107. You. Since the operation instruction usually takes the form of two inputs and one output, it must be possible to specify up to three registers.

【0022】レジスタ番号ポインタ107に格納されたレ
ジスタ名はレジスタ選択回路108にてデコードされる。
そのデコード結果に従って、レジスタファイルは命令語
に指定されたレジスタの内容を演算回路109またはロー
ド/ストア回路110に出力する。
The register name stored in the register number pointer 107 is decoded by the register selection circuit 108.
According to the decoding result, the register file outputs the contents of the register designated by the instruction word to the arithmetic circuit 109 or the load / store circuit 110.

【0023】特に、命令語中に後述するベクトルレジス
タVR0またはVR1が指定されたときには、ベクトル長レジ
スタ(VL)111に格納されている個数だけ連続したレジス
タが読み出される。つまり、レジスタ番号ポインタ107
に設定された値がベクトル長レジスタ111に格納された
回数だけ自動的にインクリメントされ、1命令語で複数
のレジスタが読み出される結果となる。例えば、加算命
令(add)のオペランドとしてVR0,VR1が指定され、予めベ
クトル長レジスタ111に4が設定されている場合には、
(R0,R16) (R1,R17) (R2,R18) (R3,R19)の4組のレジス
タが保持している数値が連続して演算回路109に入力さ
れ加算演算が実行される。レジスタへの書き込みも読み
出しと同様に実行される。
In particular, when a vector register VR0 or VR1 to be described later is specified in the instruction word, consecutive registers are read by the number stored in the vector length register (VL) 111. That is, the register number pointer 107
Is automatically incremented by the number of times stored in the vector length register 111, and a plurality of registers are read by one instruction word. For example, when VR0 and VR1 are specified as operands of the addition instruction (add) and 4 is set in the vector length register 111 in advance,
Numerical values held in four sets of registers (R0, R16), (R1, R17), (R2, R18), and (R3, R19) are successively input to the arithmetic circuit 109 and an addition operation is performed. Writing to the register is executed in the same manner as reading.

【0024】本実施の形態では後述するように、レジス
タファイル全体への2レジスタ読み出しと1レジスタ書
き込みが同時に実行可能であるため、VR0を読み出す命
令でVR0に演算結果を格納するといった同一ベクトルレ
ジスタへの読み出し書き込みが可能である。また、上記
のベクトル処理動作中はデータの流れがレジスタと演算
器間に限定され、命令の解読等ほかの動作に律速される
要因がない。そのため、レジスタの読み出し書き込みと
演算器の臨界動作速度までに動作クロックを速めること
が可能である。本実施形態におけるクロック切換回路11
2は、ベクトル処理動作の際により短ピッチのクロック
を演算器へ供給する切り換え回路である。上記のよう
に、ベクトル処理中はクロックの速度を演算器の限界ま
で上げることが可能なため、ベクトルレジスタが指定さ
れた命令の実行でクロック切換回路112はクロックを短
ピッチなものに切り換え、非ベクトル処理、つまりベク
トルレジスタ以外のレジスタが指定される命令で元のク
ロックに戻す。
In the present embodiment, as will be described later, since two register reading and one register writing to the entire register file can be executed at the same time, the same vector register is used to store the operation result in VR0 by the instruction to read VR0. Can be read and written. Also, during the above-described vector processing operation, the flow of data is limited between the register and the arithmetic unit, and there is no factor that limits the speed of other operations such as decoding of instructions. Therefore, it is possible to increase the operation clock by the time of reading / writing of the register and the critical operation speed of the arithmetic unit. Clock switching circuit 11 in the present embodiment
Reference numeral 2 denotes a switching circuit that supplies a clock having a shorter pitch to the arithmetic unit during the vector processing operation. As described above, since the clock speed can be increased to the limit of the arithmetic unit during vector processing, the clock switching circuit 112 switches the clock to a short pitch by executing the instruction specified by the vector register. Vector processing, that is, returning to the original clock by an instruction that specifies a register other than the vector register.

【0025】以上の本実施形態における情報処理装置の
命令語にて更新可能なレジスタをまとめると図2のよう
になる。演算命令の入出力となる一般レジスタR0〜R31
はR0〜R15およびR16〜R31をそれぞれベクトルレジスタV
R0,VR1としても参照可能である。先に述べたベクトル長
レジスタ(VL)111は一般レジスタとは独立して存在し、
別途命令語によって変更可能である。またデプスレジス
タDR0,DR1はそれぞれR0〜R15,R16〜R31のレジスタがデ
ータメモリのどの列と対応づけられているかを示す数値
を格納する。
FIG. 2 summarizes the registers that can be updated by the instruction word of the information processing apparatus according to the present embodiment. General registers R0 to R31 for input / output of operation instructions
Is the vector register V for R0-R15 and R16-R31 respectively.
It can also be referred to as R0, VR1. The vector length register (VL) 111 described above exists independently of a general register,
It can be changed by a separate command. The depth registers DR0 and DR1 store numerical values indicating which columns of the data memory correspond to the registers R0 to R15 and R16 to R31, respectively.

【0026】<レジスタファイル>図3は、レジスタフ
ァイル103の構成を示す。図3では、レジスタファイル
の内のレジスタR0とデプスレジスタDR0,DR1を記載
し、レジスタR1〜R15およびR16〜R31は省略
している。回路図はレジスタ1ビット分であり、図面奥
行き方向にレジスタあたりのデータビット長分(本実施
の形態では32ビット)の同一回路が存在する。データメ
モリ102からのデータ読み出しを指示するMemRead(Memor
y Read)、データメモリ102へのデータ書き込みを指示す
るMemWrite(Memory Write)、および、ReadLatch200(Rea
d Latch)とWriteLatch201(Write Latch)間のデータ転送
を指示するRegBack(Register Back)は、図1に示す制御
回路114で生成される。
<Register File> FIG. 3 shows the configuration of the register file 103. FIG. 3 illustrates the register R0 and the depth registers DR0 and DR1 in the register file, and omits the registers R1 to R15 and R16 to R31. The circuit diagram is for one bit of a register, and the same circuit having a data bit length per register (32 bits in this embodiment) exists in the depth direction of the drawing. MemRead (MemorRead) that instructs data reading from the data memory 102
y Read), MemWrite (Memory Write) for instructing data writing to the data memory 102, and ReadLatch 200 (Rea
RegBack (Register Back) for instructing data transfer between dLatch) and WriteLatch 201 (Write Latch) is generated by the control circuit 114 shown in FIG.

【0027】データメモリ102からレジスタファイル103
内にデータを読み込む際にMemReadが有効(Highレベ
ル)になり、レジスタファイル103内のデータをデータ
メモリ102に書き込む際にMemWriteが有効になる。ま
た、1ビットのレジスタ内にはReadLatch200とWriteLat
ch201とが回路的に形成されており、ReadLatch200の内
容をWriteLatch201へ転送する際にRegBackが有効とな
る。
From the data memory 102 to the register file 103
MemRead becomes valid (High level) when reading data into the memory, and MemWrite becomes valid when writing data in the register file 103 to the data memory 102. In addition, ReadLatch200 and WriteLat200
The ch201 is formed as a circuit, and when the contents of the ReadLatch 200 are transferred to the WriteLatch 201, the RegBack becomes valid.

【0028】ReadReg1(Read Register1),ReadReg2(Read
Register2)はレジスタ選択回路108にて生成され、演算
回路109で用いるために必要なデータを保持しているレ
ジスタを選択し、データ読み出しの経路を生成する信号
である。本実施の形態ではレジスタがR0〜R31の計32本
存在するため、レジスタ選択回路108は各レジスタ対応
に32本づつのReadReg1,ReadReg2を生成する。図3にお
いてReadReg1(r)のように(r)でしめすrはレジスタ番号
が対応し、ReadReg1,ReadReg2は一度に2つのレジスタ
を選択することが可能であり、いわゆる読み出しに関し
ての2ポートメモリを形成している。WriteRegはレジス
タ書き込みに関するレジスタ選択信号であり、レジスタ
との対応はReadReg1,ReadReg2と同様である。選択され
たレジスタのデータはReadReg1で選択されたレジスタの
データがReadRegData1(Read RegisterData1)から、Read
Reg2(Read Register Data2)で選択されたレジスタのデ
ータがReadRegData2から出力され、WriteRegData(Write
Register Data)はWriteRegで選択されたレジスタに書
き込まれる。データは選択されたレジスタに関して32ビ
ット存在するため、そのビットを識別するために、図中
ではReadRegData1(i)のようにiによってビットを表す。
MemLoad(Memory Load),MemLoadData(Memory Load Data)
はロード/ストア回路110と接続される。後述のよう
に、本実施の形態では外部記憶装置113とレジスタファ
イル103内の双方向データ転送が可能である。MemLoadが
有効になると、MemLoadDdataの内容がWriteLatch201に
書き込まれる。MemLoadDataの内容はロード/ストア回
路110によって外部記憶装置113から読み出された値であ
る。レジスタファイル103内のデータが外部記憶装置113
に書き込まれるときには、上記のレジスタ読み出し手段
によってReadRegData1またはReadRegData2に出現したデ
ータをロード/ストア回路110によって外部記憶装置113
へ書き込む。
ReadReg1 (Read Register1), ReadReg2 (Read
Register 2) is a signal generated by the register selection circuit 108 to select a register holding data necessary for use in the arithmetic circuit 109 and to generate a data read path. In this embodiment, since there are a total of 32 registers R0 to R31, the register selection circuit 108 generates 32 ReadReg1 and ReadReg2 for each register. In FIG. 3, r indicates the register number as in ReadReg1 (r), and r corresponds to the register number, and ReadReg1 and ReadReg2 can select two registers at a time, forming a so-called two-port memory for reading. doing. WriteReg is a register selection signal related to register writing, and the correspondence with the register is the same as ReadReg1 and ReadReg2. The data of the register selected by ReadReg1 is read from ReadRegData1 (Read RegisterData1).
The data of the register selected by Reg2 (Read Register Data2) is output from ReadRegData2, and WriteRegData (Write
Register Data) is written to the register selected by WriteReg. Since there are 32 bits of data with respect to the selected register, in order to identify the bit, the bit is represented by i as in ReadRegData1 (i) in the figure.
MemLoad (Memory Load), MemLoadData (Memory Load Data)
Is connected to the load / store circuit 110. As described later, in the present embodiment, bidirectional data transfer between the external storage device 113 and the register file 103 is possible. When MemLoad is enabled, the contents of MemLoadDdata are written to WriteLatch201. The contents of MemLoadData are values read from the external storage device 113 by the load / store circuit 110. The data in the register file 103 is stored in the external storage device 113
When data is written to the external storage device 113, the data appearing in ReadRegData1 or ReadRegData2 by the register reading means is loaded by the load / store circuit 110.
Write to

【0029】詳細な動作機能を説明する。The detailed operation function will be described.

【0030】図3においてMemBitは、データメモリ102
から読み出されたデータ1ビット相当分を伝送する信号
線である。この信号線は、データメモリ102をDRAM
やSRAMの技術を用いて構成した場合、DRAMやS
RAMを構成するメモリセルからデータを読み出すビッ
ト線と接続される構成となる。即ち、レジスタファイル
の各レジスタの各ビットがデータメモリ中のビット単位
で情報を記憶するメモリセルと対応する構成となる。見
方を変えれば、本情報処理装置は、1データ単位を記憶
する複数のデータセルと、列状に構成された複数の該デ
ータセルから成るメモリラインと、行状に構成された複
数の該メモリラインからなるデータメモリと、複数のビ
ットからなる複数のレジスタを含むレジスタファイル
と、行状に並んだ複数の該データセルと該ビットを接続
する信号線を有するとも言うことができる。センスアン
プ202はMemBitの電気信号を論理的なHighレベルもしく
はLowレベルに増幅、確定する機能を有する。ReadLatch
200として囲んだ部分のインバータによるループはいわ
ゆるラッチ機能を有し、センスアンプ202の出力論理値
を保持する。また、その内容はWriteRegが有効なとき、
WriteRegDataの値によって置き換えることが可能であ
る。
In FIG. 3, MemBit is a data memory 102
This is a signal line for transmitting one bit of data read out of the device. This signal line connects the data memory 102 to the DRAM
And SRAM using SRAM, DRAM and SRAM
It is configured to be connected to a bit line for reading data from a memory cell constituting a RAM. That is, the configuration is such that each bit of each register of the register file corresponds to a memory cell that stores information in a bit unit in the data memory. In other words, the information processing apparatus includes a plurality of data cells for storing one data unit, a memory line including a plurality of the data cells arranged in a column, and a plurality of the memory lines configured in a row. , A register file including a plurality of registers including a plurality of bits, and a signal line connecting the plurality of data cells and the bits arranged in a row. The sense amplifier 202 has a function of amplifying and determining the MemBit electric signal to a logical high level or low level. ReadLatch
The loop formed by the inverter surrounded by 200 has a so-called latch function, and holds the output logic value of the sense amplifier 202. When WriteReg is valid,
It can be replaced by the value of WriteRegData.

【0031】WriteLatch201はReadLatch200と同様にル
ープ状に接続されたインバータによって構成されてお
り、RegBackが有効なときにはReadLatch200と同一内容
が、MemLoadが有効なときにはMemLoadDataの内容が保持
される。つまり、MemBit(Memory Bit)を通してデータ
メモリ102へ書き込もうとするデータが一時的に保持さ
れる。
The WriteLatch 201 is composed of an inverter connected in a loop like the ReadLatch 200, and holds the same contents as the ReadLatch 200 when RegBack is valid and MemLoadData when MemLoad is valid. That is, data to be written to the data memory 102 through MemBit (Memory Bit) is temporarily held.

【0032】図4はデプスレジスタの回路図である。図
4ではデプスレジスタDR1を示している。DR0も同
様の構成で実現可能であるが、DR0は図3からわかる
ように、ReadRegData,RegBack,MemLoad等の信号線を左
右に貫通させている点だけが異なる。デプスレジスタの
内容は基本的に図3に示したレジスタと同じ回路である
が、デプスレジスタの内容は列ポインタ104との間で転
送されるため、MemBitの代わりRowBit信号120がもちい
られる。
FIG. 4 is a circuit diagram of the depth register. FIG. 4 shows the depth register DR1. DR0 can be realized by a similar configuration, but DR0 is different only in that signal lines such as ReadRegData, RegBack, MemLoad and the like are penetrated to the left and right, as can be seen from FIG. The contents of the depth register are basically the same as those of the register shown in FIG. 3, but the contents of the depth register are transferred to and from the column pointer 104, so that the RowBit signal 120 is used instead of the MemBit.

【0033】<本実施形態の動作説明>次に図5〜図10
を用いて本実施形態における情報処理装置の動作を説明
する。なお、先の説明からわかるように、レジスタR0〜
R15とDR0とは、R16〜R31とDR1とのそれぞれと互いに同
一機能を有するため、説明はR0〜R15とDR0について行
う。
<Description of Operation of the Present Embodiment> Next, FIGS.
The operation of the information processing apparatus according to the present embodiment will be described with reference to FIG. As can be seen from the above description, the registers R0 to R0
Since R15 and DR0 have the same functions as R16 to R31 and DR1, respectively, the description will be given for R0 to R15 and DR0.

【0034】次に図12で示した命令1207のようにデー
タメモリ102とレジスタファイル103の内容を入れ替える
動作について説明する。本発明はレジスタ本数等のユー
ザーから見えるアーキテクチャを大幅に変更せずにDRAM
やSRAM等の大容量メモリを導入することが目的である。
これには従来技術のレジスタウインドウと同様にある制
御レジスタの値を変えるだけで、物理的には別のレジス
タ内容が読み書きできることが便利である。ところが、
レジスタウインドのように全てのレジスタについて同時
に2データの読み出し可能、あるいは書き込み可能にす
るためには、2ポート以上のポート数を持つ膨大なメモ
リ回路が必要である。そこで、本発明では通常のDRAM,S
RAMと同様な1ポートの大容量メモリを設け、そのデー
タポートの位置に通常のレジスタファイルを接続するこ
とで、大容量性とマルチポート性を両立させている。し
かし、あくまでもレジスタウインドウとどうように、制
御用のレジスタを更新しただけで、大容量メモリのある
部分がレジスタとして機能するかのように見せるために
は、レジスタの内容と大容量メモリ(本実施の形態では
データメモリ102)の内容が制御用レジスタの更新に伴
って自動的に入れ替わることか好ましい。
Next, an operation of exchanging the contents of the data memory 102 and the register file 103 like the instruction 1207 shown in FIG. 12 will be described. The present invention provides a DRAM without significantly changing the architecture seen by the user such as the number of registers.
The purpose is to introduce a large-capacity memory such as a memory and an SRAM.
For this purpose, it is convenient that the contents of another register can be physically read and written only by changing the value of a certain control register as in the conventional register window. However,
In order to be able to simultaneously read or write two data for all registers like a register window, an enormous memory circuit having two or more ports is required. Therefore, in the present invention, ordinary DRAM, S
A large-capacity memory of one port similar to the RAM is provided, and a normal register file is connected to the position of the data port, thereby achieving both large-capacity and multi-port characteristics. However, just like updating the control window and the register window, it is necessary to update the contents of the register and the large-capacity memory (this implementation) in order to make it appear as if a certain part of the large-capacity memory functions as a register. In the embodiment, it is preferable that the contents of the data memory 102) are automatically replaced with the update of the control register.

【0035】図5はR0〜R15のレジスタとメモリライン1
01の入れ替え動作についてのフローチャートである。こ
の動作はMOVE DR0,128のようにデプスレジスタを更新し
ようとする命令によって起動されるハードウェアの動作
である。まず、DR0の内容が変更されようとすると、DR0
が実際に変更されるのに先立ちRegBackが有効となり、R
eadLatchの内容がWriteLatchにコピーされる(500)。次
に、変更しようとする新しいDR0の内容が列ポインタ104
に設定される(501)。これにより、データメモリ内のメ
モリラインが選択されることになる。続いてMemReadが
有効化されることにより、列ポインタ104にて指定され
たメモリラインの内容がReadLatchに読み込まれる(50
2)。このとき、列ポインタ104の内容はDR0のReadLatch
に格納される。以上の動作により、新しいレジスタファ
イルの内容が設定される。本入れ替え動作では、WriteL
atchの内容がメモリラインに書き戻されることも一連の
動作として実行される。つまり、DR0のWriteLatchに格
納されている値が、列ポインタ104に設定される(503)。
これは、古いレジスタファイルの値がどのメモリライン
に書き戻されるべきかが指定されたことになる。最後に
MemWriteが有効となり、全レジスタのWriteLatchの内容
がメモリラインに格納される(504)。
FIG. 5 shows registers R0 to R15 and memory line 1.
It is a flowchart about the replacement operation of 01. This operation is a hardware operation started by an instruction to update the depth register such as MOVE DR0,128. First, if the contents of DR0 are to be changed, DR0
RegBack is enabled before R is actually changed, and R
The contents of eadLatch are copied to WriteLatch (500). Next, the contents of the new DR0 to be changed are
Is set to (501). As a result, a memory line in the data memory is selected. Subsequently, by enabling MemRead, the contents of the memory line specified by the column pointer 104 are read into the ReadLatch (50
2). At this time, the contents of the column pointer 104 are the ReadLatch of DR0.
Is stored in With the above operation, the contents of the new register file are set. In this replacement operation, WriteL
Writing back the contents of the atch to the memory line is also executed as a series of operations. That is, the value stored in WriteLatch of DR0 is set in column pointer 104 (503).
This specifies to which memory line the old register file values should be written back. Finally
MemWrite becomes valid, and the contents of WriteLatch of all registers are stored in the memory line (504).

【0036】このレジスタ入れ替え動作は、例えばMOVE
DR0,255(DR0に数値255を入れる)と行った命令動作に
対応する。この場合、即値データの255はデータメモリ1
02の列方向のアドレスに対応しており、デプスレジスタ
DR0を更新するということは、従来技術のレジスタウイ
ンドウでベースレジスタを更新したときのように、使用
中のレジスタを物理的には異なるメモリへ割り当てるこ
とを意味する。つまり、1命令動作により、レジスタの
総入れ替えが可能であり、サブルーチンジャンプ、リタ
ーンおよびプロセスやタスクの切り換えを高速に実行す
ることが可能となる。その他にも後述するベクトル動作
において、少ない論理ベクトルレジスタ数にて実質的に
多くのベクトルレジスタを有する動作が実現可能とな
る。
This register exchange operation is performed by, for example, MOVE
DR0,255 (insert a value of 255 into DR0) corresponds to the executed instruction. In this case, 255 of immediate data is data memory 1.
It corresponds to the address in the column direction of 02 and the depth register
Updating DR0 means allocating the in-use register to a physically different memory, as when updating the base register in a prior art register window. That is, registers can be totally replaced by one instruction operation, and subroutine jumps, returns, and switching of processes and tasks can be executed at high speed. In addition, in a vector operation described later, an operation having a substantially large number of vector registers can be realized with a small number of logical vector registers.

【0037】図6は、図5に示したレジスタ入れ替え動
作のうち、古いレジスタ内容をメモリラインに書き戻す
動作を省略したものである。命令語としては例えばMOVE
DR0,(255)と表記し、この命令が実行されると古いレジ
スタ内容は保存しないで、数値255にて指定されるメモ
リラインの内容をレジスタに読み込む。これは一般的な
情報処理装置における外部メモリからのデータロードに
対応した動作である。データメモリが同一基板上に形成
された情報処理装置では、高速なデータ転送が可能であ
るため、データメモリを外部メモリとして位置づけるの
ではなく、レジスタに関する操作としてメモリアクセス
が可能な実現方法として本機能は位置づけられる。
FIG. 6 omits the operation of writing the old register contents back to the memory line in the register replacement operation shown in FIG. For example, MOVE
This instruction is written as DR0, (255). When this instruction is executed, the contents of the memory line specified by the numerical value 255 are read into the register without saving the old register contents. This is an operation corresponding to data loading from an external memory in a general information processing apparatus. In an information processing device in which a data memory is formed on the same substrate, high-speed data transfer is possible. Therefore, this function is used as a realization method that enables memory access as an operation related to registers instead of positioning the data memory as an external memory. Is positioned.

【0038】図7は、外部記憶装置113内のデータをデ
ータメモリ内に読み込む動作を示す、即ち、データメモ
リ102へのデータロード機能の動作のフローチャートで
ある。まず、外部記憶装置113から読み込まれたデータ
は図3のMemLoadDataを確定する。次にロード命令にて
指定されたメモリラインが列ポインタ104に設定される
(701)。MemLoadが有効になることで、MemLoadDataの内
容はWriteLatch201に読み込まれる(702)。最後にMemWri
teが有効化されることにより、WriteLatchの内容がメモ
リラインに格納される。
FIG. 7 is a flowchart showing an operation of reading data in the external storage device 113 into the data memory, that is, an operation of a function of loading data into the data memory 102. First, the data read from the external storage device 113 determines MemLoadData in FIG. Next, the memory line specified by the load instruction is set to the column pointer 104
(701). When MemLoad is enabled, the contents of MemLoadData are read into WriteLatch 201 (702). Finally MemWri
By enabling te, the contents of WriteLatch are stored in the memory line.

【0039】本実施形態の情報処理装置では、レジスタ
と外部記憶装置間のデータ転送手段としてレジスタへの
データロード、レジスタからのデータストアが可能であ
ることが前提条件であり、データメモリへのデータロー
ド機能は付加的である。
In the information processing apparatus of the present embodiment, it is a precondition that data can be loaded into the register and data can be stored from the register as data transfer means between the register and the external storage device. The load function is additional.

【0040】図8と図9は、レジスタファイルからのデ
ータ読み出しと書き込みの基本動作を示すフローチャー
トである。読み出すレジスタ番号rはレジスタ選択回路1
08にてデコードされ、いずれかのレジスタに接続された
ReadRegが有効になる。読み出されたデータはReadRegDa
taに出力され、演算回路109によって使用される。レジ
スタ書き込みの際も同様にレジスタ選択回路108による
デコード結果に基づき該当レジスタのWriteRegが有効に
なり、WriteRegDataの内容がReadLatch200に格納され
る。
FIGS. 8 and 9 are flowcharts showing the basic operation of reading and writing data from the register file. The register number r to be read is the register selection circuit 1.
Decoded at 08 and connected to any register
ReadReg is enabled. Read data is ReadRegDa
output to ta and used by the arithmetic circuit 109. Similarly, at the time of register writing, WriteReg of the corresponding register becomes valid based on the decoding result by the register selection circuit 108, and the contents of WriteRegData are stored in the ReadLatch 200.

【0041】図10は、本発明の特徴的動作であるベクト
ル動作について説明したフローチャートである。まず、
ここに示すベクトル動作は後述するように、演算命令語
中にVR0あるいはVR1というベクトルレジスタ名が指定さ
れたときの動作であるが、それに先立ちMOVE VL,8(ベ
クトル長レジスタに数値の8を格納する)といった、ベ
クトル長レジスタ111の設定動作が必要である(1000)。
ベクトルレジスタが指定された演算命令ではまず三つの
レジスタ番号ポインタ107にそれぞれR0とR16に対応する
数値を格納する(1001)。二つは入力ベクトルレジスタの
先頭要素、残りの一つは書き込み先の先頭要素に対応す
る。この状態から以降の処理をベクトル長レジスタ内の
数値が0になるまで繰り返す(1005)。繰り返し動作の最
初として、レジスタ番号ポインタの指す二つの入力レジ
スタから、図8を用いて説明したレジスタリード動作に
よってデータを読み出し、演算回路で演算を実施する(1
002)。演算結果は出力レジスタを指し示すレジスタ番号
ポインタに基づき図9で示したレジスタライト動作によ
って格納される(1003)。この際、一見レジスタの読み出
しと書き込みが衝突するかのように思われるが、レジス
タ番号rのレジスタを読み出した後で、同じ番号への書
き込み動作に入るため衝突はない。最後にベクトル長レ
ジスタを減算、レジスタ番号ポインタをそれぞれレジス
タ番号として+1加算する。
FIG. 10 is a flowchart for explaining a vector operation which is a characteristic operation of the present invention. First,
The vector operation shown here is an operation when a vector register name of VR0 or VR1 is specified in the operation instruction word, as described later. Prior to that, MOVE VL, 8 (stores a numerical value 8 in the vector length register) A setting operation of the vector length register 111 is necessary (1000).
In the operation instruction in which the vector register is specified, first, numerical values corresponding to R0 and R16 are stored in the three register number pointers 107 (1001). Two correspond to the first element of the input vector register, and the other corresponds to the first element of the write destination. From this state, the subsequent processing is repeated until the value in the vector length register becomes 0 (1005). At the beginning of the repetitive operation, data is read from the two input registers pointed to by the register number pointers by the register read operation described with reference to FIG.
002). The operation result is stored by the register write operation shown in FIG. 9 based on the register number pointer indicating the output register (1003). At this time, it seems at first glance that the reading and writing of the register conflict with each other. However, after reading the register of the register number r, the writing operation to the same number is started, so that there is no collision. Finally, the vector length register is subtracted, and the register number pointer is incremented by 1 as a register number.

【0042】[0042]

【発明の効果】本発明によれば、レジスタファイル内の
レジスタセットをベクトルレジスタとして使用可能であ
り、マルチメディア処理に頻発する符号処理、信号処理
に好適なベクトル演算を実行可能である。また、大容量
メモリをデータメモリと位置づけ、さらに情報処理装置
(CPU)内に設けた。デプスレジスタで指定されたデ
ータメモリ内のメモリラインはレジスタファイルと入れ
替え可能であるため、ユーザから見たレジスタ構成をほ
とんど変更することなく、事実上大量のレジスタ、ベク
トルレジスタを実装可能である。
According to the present invention, a register set in a register file can be used as a vector register, and a vector operation suitable for code processing and signal processing frequently occurring in multimedia processing can be executed. Further, the large-capacity memory is positioned as a data memory, and further provided in an information processing device (CPU). Since the memory line in the data memory specified by the depth register can be replaced with a register file, a large number of registers and vector registers can be implemented with practically no change in the register configuration seen from the user.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明を実現する情報処理装置(CPU)の構
成例である。
FIG. 1 is a configuration example of an information processing device (CPU) that realizes the present invention.

【図2】命令語によって更新可能なレジスタである。FIG. 2 is a register that can be updated by an instruction word.

【図3】本発明の実施の形態によるレジスタ回路図であ
る。
FIG. 3 is a register circuit diagram according to the embodiment of the present invention.

【図4】本発明の実施の形態によるデプスレジスタ回路
図である。
FIG. 4 is a circuit diagram of a depth register according to the embodiment of the present invention.

【図5】本発明の実施の形態におけるレジスタ入れ替え
動作を説明するフローチャートである。
FIG. 5 is a flowchart illustrating a register swap operation according to the embodiment of the present invention.

【図6】データメモリからレジスタの読み出し動作を説
明するフローチャートである。
FIG. 6 is a flowchart illustrating an operation of reading a register from a data memory.

【図7】メモリからデータメモリへのロード動作を説明
するフローチャートである。
FIG. 7 is a flowchart illustrating a loading operation from a memory to a data memory.

【図8】レジスタから演算器へのレジスタリード動作を
説明するフローチャートである。
FIG. 8 is a flowchart illustrating a register read operation from a register to an arithmetic unit.

【図9】演算器からレジスタへのレジスタライト動作を
説明するフローチャートである。
FIG. 9 is a flowchart illustrating a register write operation from an arithmetic unit to a register.

【図10】ベクトル動作を説明するフローチャートであ
る。
FIG. 10 is a flowchart illustrating a vector operation.

【図11】命令語のフォーマットを説明する図である。FIG. 11 is a diagram illustrating a format of a command word.

【図12】命令語のアセンブラ言語例である。FIG. 12 is an assembler language example of a command word.

【符号の説明】 100…データセル、101…メモリライン、102…データメ
モリ,103…レジスタファイル,104…列ポインタ、105…
列選択回路、106…命令バッファ、107…レジスタ番号ポ
インタ、108…レジスタ選択回路、109…演算回路、110
…ロード/ストア回路、111…ベクトル長レジスタ、112
…クロック切換回路、113…外部記憶装置、114…制御回
路、115…命令デコーダ、120…RowBit。
[Description of Signs] 100: data cell, 101: memory line, 102: data memory, 103: register file, 104: column pointer, 105:
Column selection circuit, 106: instruction buffer, 107: register number pointer, 108: register selection circuit, 109: arithmetic circuit, 110
... Load / store circuit, 111 ... Vector length register, 112
... Clock switching circuit, 113 ... External storage device, 114 ... Control circuit, 115 ... Instruction decoder, 120 ... RowBit.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】演算の入力値および出力値を格納するレジ
スタを命令語によって指定する情報処理装置であって、 1データ単位を記憶するデータセルと、列状に構成され
たデータセルから成るメモリラインと、複数のメモリラ
インから構成されるデータメモリと、命令語によって指
定可能なレジスタを複数含むレジスタファイルと、メモ
リラインに対応する数値を格納するデプスレジスタとか
ら構成され、デプスレジスタの内容が更新された際に、
デプスレジスタによって対応づけられるメモリラインの
情報によってレジスタファイルを置換することを特徴と
する情報処理装置。
1. An information processing apparatus for designating a register for storing an input value and an output value of an operation by a command word, comprising: a data cell for storing one data unit; and a memory comprising data cells arranged in columns. Line, a data memory composed of a plurality of memory lines, a register file including a plurality of registers that can be specified by an instruction word, and a depth register storing a numerical value corresponding to the memory line. When updated,
An information processing apparatus, wherein a register file is replaced with information of a memory line associated with a depth register.
【請求項2】演算の入力値および出力値を格納するレジ
スタを命令語によって指定する情報処理装置であって、 1データ単位を記憶するデータセルと、列状に構成され
たデータセルから成るメモリラインと、複数のメモリラ
インから構成されるデータメモリと、命令語によって指
定可能なレジスタを複数含むレジスタファイルと、メモ
リラインに対応する数値を格納するデプスレジスタとか
ら構成され、 デプスレジスタはレジスタファイルを構成する1レジス
タであり、デプスレジスタが更新される直前に、まず、
レジスタファイルの内容をデプスレジスタにて指し示さ
れるメモリラインへ格納し、新しい値でデプスレジスタ
を更新し、その後にデプスレジスタにて指し示されるメ
モリラインをレジスタファイルに格納することを特徴と
する情報処理装置。
2. An information processing apparatus for designating a register for storing an input value and an output value of an operation by a command word, wherein the memory comprises a data cell for storing one data unit and a data cell arranged in a column. A register file containing a plurality of registers that can be specified by a command word, and a depth register storing a numerical value corresponding to the memory line. The depth register is a register file. And immediately before the depth register is updated,
Information storing the contents of the register file in the memory line indicated by the depth register, updating the depth register with a new value, and then storing the memory line indicated by the depth register in the register file Processing equipment.
【請求項3】演算の入力値および出力値を格納するレジ
スタを命令語によって指定する情報処理装置であって、 1データ単位を記憶するデータセルと、列状に構成され
たデータセルから成るメモリラインと、複数のメモリラ
インから構成されるデータメモリと、命令語によって指
定可能なレジスタを複数含むレジスタファイルと、メモ
リラインに対応する数値を格納するデプスレジスタと、
1命令語によって同一の演算がレジスタファイル内の複
数のレジスタに対して施される演算回路とから構成さ
れ、デプスレジスタが更新された時に、デプスレジスタ
が指し示すメモリラインがレジスタファイルに格納され
ることを特徴とする情報処理装置。
3. An information processing apparatus for designating a register for storing an input value and an output value of an operation by a command word, wherein the memory comprises a data cell for storing one data unit and a data cell arranged in a column. A line, a data memory composed of a plurality of memory lines, a register file including a plurality of registers that can be specified by an instruction word, and a depth register storing a numerical value corresponding to the memory line,
An operation circuit for performing the same operation on a plurality of registers in the register file by one instruction word, and when the depth register is updated, a memory line indicated by the depth register is stored in the register file. An information processing apparatus characterized by the following.
【請求項4】1データ単位を記憶する複数のデータセル
と、 列状に構成された複数の該データセルから成るメモリラ
インと、 行状に構成された複数の該メモリラインからなるデータ
メモリと、 複数のビットからなる複数のレジスタを含むレジスタフ
ァイルと、 行状に並んだ複数の該データセルと該ビットを接続する
信号線を有する情報処理装置。
4. A data memory comprising a plurality of data cells for storing one data unit, a memory line comprising a plurality of said data cells arranged in a column, and a data memory comprising a plurality of said memory lines constituted in a row. An information processing device comprising: a register file including a plurality of registers each including a plurality of bits; and a signal line connecting the plurality of data cells and the bits arranged in a row.
【請求項5】命令語によって指定されるメモリラインの
内容を該レジスタファイルに書き込むことを指示する該
命令語を解釈するデコーダーと、 該解釈結果に従って該レジスタファイルに書き込まれる
べきメモリラインを指定する回路を有する請求項4記載
の情報処理装置。
5. A decoder for interpreting the instruction word instructing to write the contents of a memory line specified by the instruction word to the register file, and specifying a memory line to be written to the register file according to the interpretation result. The information processing apparatus according to claim 4, further comprising a circuit.
【請求項6】該レジスタファイルは、該信号線に接続さ
れた、メモリラインへ書き込むデータと該メモリライン
から読み出したデータをそれぞれ保持する手段を有する
請求項4記載の情報処理装置。
6. The information processing apparatus according to claim 4, wherein said register file has means connected to said signal line for holding data to be written to a memory line and data read from said memory line, respectively.
JP4037897A 1997-02-25 1997-02-25 Information processor Pending JPH10240525A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4037897A JPH10240525A (en) 1997-02-25 1997-02-25 Information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4037897A JPH10240525A (en) 1997-02-25 1997-02-25 Information processor

Publications (1)

Publication Number Publication Date
JPH10240525A true JPH10240525A (en) 1998-09-11

Family

ID=12578999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4037897A Pending JPH10240525A (en) 1997-02-25 1997-02-25 Information processor

Country Status (1)

Country Link
JP (1) JPH10240525A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007234011A (en) * 2006-03-02 2007-09-13 Internatl Business Mach Corp <Ibm> Method, system and program for simd-oriented management of register map for indirect access to register file based on map
JP2011065522A (en) * 2009-09-18 2011-03-31 Nec Computertechno Ltd Vector processor, vector processing method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007234011A (en) * 2006-03-02 2007-09-13 Internatl Business Mach Corp <Ibm> Method, system and program for simd-oriented management of register map for indirect access to register file based on map
JP2011065522A (en) * 2009-09-18 2011-03-31 Nec Computertechno Ltd Vector processor, vector processing method, and program

Similar Documents

Publication Publication Date Title
US5239642A (en) Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
US5649230A (en) System for transferring data using value in hardware FIFO&#39;S unused data start pointer to update virtual FIFO&#39;S start address pointer for fast context switching
JP2776132B2 (en) Data processing system with static and dynamic masking of information in operands
EP0218523B1 (en) programmable access memory
JPS59501684A (en) Accelerated instruction mapping outside the source and destination instruction streams for near real-time insertion into the destination instruction stream
JPS6297036A (en) Calculator system
JPH0414385B2 (en)
US4949242A (en) Microcomputer capable of accessing continuous addresses for a short time
US5420997A (en) Memory having concurrent read and writing from different addresses
JPH10240525A (en) Information processor
KR910001708B1 (en) Central processing unit
JPS59114677A (en) Vector processor
JPS62156742A (en) Data writing control system
US4747066A (en) Arithmetic unit
JP3132566B2 (en) Instruction precedence controller
JPS6055911B2 (en) main storage
JPS58137047A (en) Cotroller for omitting instruction of computer
JPS6223891B2 (en)
JPS60134937A (en) Address extension device
JPH0535472A (en) Microcomputer
JPH06301600A (en) Storage device
JP2842024B2 (en) Register file circuit
JPH03225452A (en) Processing for inserting/extracting tag bit for bit encode data processing system and data word
JPS61223956A (en) Store buffer control system
JPS62145430A (en) Data processor