JP7408954B2 - Memory control method, memory control device, program - Google Patents
Memory control method, memory control device, program Download PDFInfo
- Publication number
- JP7408954B2 JP7408954B2 JP2019159545A JP2019159545A JP7408954B2 JP 7408954 B2 JP7408954 B2 JP 7408954B2 JP 2019159545 A JP2019159545 A JP 2019159545A JP 2019159545 A JP2019159545 A JP 2019159545A JP 7408954 B2 JP7408954 B2 JP 7408954B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory control
- bank
- address
- memories
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 322
- 238000000034 method Methods 0.000 title claims description 39
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Description
本発明は、複数のバンクを有するメモリを制御するメモリ制御方法、メモリ制御装置、プログラムに関する。 The present invention relates to a memory control method, a memory control device, and a program for controlling a memory having a plurality of banks.
プロセッサは、外部メモリ及びキャッシュメモリからデータを転送し、かかるデータに対する演算処理を行う。このため、データの演算処理性能は、メモリ帯域の影響を受ける。特に、ベクトルプロセッサにおいては、複数の演算処理を並列して行うため、さらにメモリ帯域の影響を受けやすくなり、メモリ帯域が重要である。そこで、ベクトルプロセッサ装置では、多数のメモリチャネルを接続し、チャネル間をインタリーブすることによってメモリ帯域を上げている。また、近年では、コスト面からDDR SDRAMを使用するケースが増えている。DDR SDRAMは、メモリ帯域性能を上げるために複数のバンクから構成される。そして、特許文献1に示すように、このような複数のバンクが構成されるメモリにおいて、バンク間でインタリーブすることで、メモリ帯域を上げることも行われている。 The processor transfers data from external memory and cache memory and performs arithmetic processing on the data. Therefore, data arithmetic processing performance is affected by memory bandwidth. In particular, vector processors perform multiple arithmetic operations in parallel, so they are more susceptible to the influence of memory bandwidth, and memory bandwidth is important. Therefore, in vector processor devices, memory bandwidth is increased by connecting a large number of memory channels and interleaving the channels. Additionally, in recent years, the use of DDR SDRAM has increased due to cost considerations. DDR SDRAM consists of multiple banks to increase memory bandwidth performance. As shown in Patent Document 1, in such a memory configured with a plurality of banks, interleaving is performed between the banks to increase the memory bandwidth.
ここで、DDR SDRAMをベクトルプロセッサ装置のメモリとして使用した場合について説明する。この場合、ベクトルプロセッサ装置は、複数バンクを備えた複数のメモリを備えており、当該複数のメモリに1つのメモリ制御装置を介してベクトルプロセッサが接続されることとなる。そして、例えば、図1に示すように、1つのメモリ制御装置100は、バンクアドレス生成部101とメモリアドレス生成部102とを備えており、バンクアドレス生成部101は、図2に示すように、ベクトルプロセッサからメモリアクセスが行われた際に送信された物理アドレス内のバンク番号を抽出して、バンクアドレスを生成する。
Here, a case will be described in which DDR SDRAM is used as a memory of a vector processor device. In this case, the vector processor device includes a plurality of memories each having a plurality of banks, and the vector processor is connected to the plurality of memories via one memory control device. For example, as shown in FIG. 1, one
しかしながら、上述したバンクアドレス生成部101は、複数のメモリに対して共通であるため、メモリに対する複数のシーケンシャルアクセス間のバンク競合が発生し、メモリ帯域を効率的に使えないこととなる。つまり、あるメモリでバンク競合が発生すると、他のメモリでもバンク競合が発生し、複数のシーケンシャルアクセスの間、ずっとバンク競合が発生することとなり、メモリ帯域を効率的に使用できない、という問題が生じる。一方で、メモリに対する複数のシーケンシャルアクセス間のバンク競合を避けるためには、ソフトウエアによるメモリ空間確保の調整が必要となり、構成が複雑となる。
However, since the bank
このため、本発明の目的は、構成が複雑となることと、メモリ帯域を効率的に利用できないこと、を解決することができるメモリ制御方法、メモリ制御装置、プログラムを提供することにある。 Therefore, an object of the present invention is to provide a memory control method, a memory control device, and a program that can solve the problems of a complicated configuration and an inability to use memory bandwidth efficiently.
本発明の一形態であるメモリ制御方法は、
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御方法であって、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成すると共に、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
という構成をとる。
A memory control method that is one form of the present invention includes:
A memory control method for controlling access to a plurality of memories each having a plurality of banks, the method comprising:
Generating a plurality of memory addresses that designate each of the plurality of memories as an access destination from a specified physical address, and a plurality of banks that designate each of the predetermined banks in the plurality of memories as an access destination from the physical address. generating a plurality of bank addresses that are different for each memory when generating addresses;
The structure is as follows.
また、本発明の一形態であるメモリ制御装置は、
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御装置であって、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成し、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
という構成をとる。
Further, a memory control device that is one form of the present invention includes:
A memory control device that controls access to a plurality of memories each having a plurality of banks, the memory control device comprising:
Generating a plurality of memory addresses specifying each of the plurality of memories as an access destination from a specified physical address, and a plurality of bank addresses specifying each of the predetermined banks in the plurality of memories as an access destination from the physical address. generating a plurality of bank addresses that are different for each memory when generating the bank address;
The structure is as follows.
また、本発明の一形態であるプログラムは、
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御装置に、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成し、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する処理、
を実行させる、
という構成をとる。
Further, a program that is one form of the present invention is
A memory control device that controls access to a plurality of memories each having a plurality of banks;
Generating a plurality of memory addresses specifying each of the plurality of memories as an access destination from a specified physical address, and a plurality of bank addresses specifying each of the predetermined banks in the plurality of memories as an access destination from the physical address. a process of generating a plurality of bank addresses that are different for each memory when generating a bank address;
to execute,
The structure is as follows.
また、本発明の一形態であるベクトルプロセッサ装置は、
ベクトルプロセッサと、複数のバンクをそれぞれ有する複数のメモリと、前記メモリに対するアクセスを制御するメモリ制御装置と、を備え、
前記メモリ制御装置は、前記ベクトルプロセッサにて指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成すると共に、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
という構成をとる。
Further, a vector processor device that is one form of the present invention includes
A vector processor, a plurality of memories each having a plurality of banks, and a memory control device that controls access to the memory,
The memory control device generates a plurality of memory addresses that designate each of the plurality of memories as an access destination from the physical address specified by the vector processor, and also generates a plurality of memory addresses that designate each of the plurality of memories as an access destination from the physical address, and generating a plurality of bank addresses that are different for each of the memories when generating a plurality of bank addresses each specifying a bank as an access destination;
The structure is as follows.
本発明は、以上のように構成されることにより、メモリ帯域を効率的に利用することができる。 By being configured as described above, the present invention can efficiently utilize memory bandwidth.
<実施形態1>
本発明の第1の実施形態を、図3乃至図9を参照して説明する。図3に示すように、本発明のベクトルプロセッサ装置1は、ベクトルプロセッサ40と、メモリネットワーク30と、複数のメモリ制御部10と、複数のメモリ20と、を備えている。そして、ベクトルプロセッサ40が、メモリネットワーク30を経由して複数のメモリ制御部10に接続されており、また、各メモリ制御部10は、各メモリ20に接続されている。図3の例では、例えば、4つのメモリ制御部10(番号0~3)にそれぞれメモリ20(番号0~3)が接続されている。また、各メモリ20は、それぞれ複数バンク21を備えており、例えば、DDR SDRAMにて構成されている。図3の例では、各メモリ20は、例えば、それぞれ8つのバンク21(番号0~7)を備えている。なお、ベクトルプロセッサ装置1は、装備された複数のメモリに対するアクセスを制御するため、メモリ制御装置として機能する。
<Embodiment 1>
A first embodiment of the present invention will be described with reference to FIGS. 3 to 9. As shown in FIG. 3, the vector processor device 1 of the present invention includes a
上記メモリ制御部10は、演算装置で構成されており、プログラムを実行することで構築されたバンクアドレス生成部11と、メモリアドレス生成部12と、を備えている。メモリアドレス生成部12は、後述するようにベクトルプロセッサ40から発行されるベクトルロード命令またはベクトルストア命令による物理アドレスから、接続されているメモリ20をアクセス先として指定するメモリアドレスを生成する。また、バンクアドレス生成部11は、上記物理アドレスから、接続されているメモリ20内のバンクをアクセス先として指定するバンクアドレスを生成する。本発明では、後述するように、複数のメモリ制御部10の各バンクアドレス生成部11が、それぞれ異なる演算方法を用いて、同一の物理アドレスからそれぞれ異なるバンクアドレス(バンク番号)を生成する。
The
ここで、上述したバンクアドレス生成部11とメモリアドレス生成部12とによる各アドレスの生成方法について、詳しく説明する。まず、ベクトルプロセッサ40からのベクトルロード命令またはベクトルストア命令に応じてメモリアクセスが行われ、かかるメモリアクセスは、物理アドレスで行われる。このとき、ベクトルロード命令およびベクトルストア命令では、連続した物理アドレスがメモリネットワーク30を経由して各メモリ制御部10にインタリーブされるため、各メモリ制御部10に送信される物理アドレスは同一である。なお、物理アドレスは、図5に示すように、下位ビットから、ライン内アドレス、バンク番号、上位アドレス、を含んで構成される。
Here, the method of generating each address by the bank
そして、上述したように物理アドレスを受け付けた各メモリアドレス生成部12は、図5に示すように、物理アドレス内の上位アドレスとライン内アドレスとを結合してメモリアドレスを生成する。このため、同一の物理アドレスを受け付けた各メモリアドレス生成部15は、それぞれ同一のメモリアドレスを生成することとなり、それぞれに接続されたメモリ20をアクセス先として指定することとなる。
Then, each memory
また、上述したように物理アドレスを受け付けた各バンクアドレス生成部11は、図5に示すように、物理アドレス内の上位アドレスとバンク番号とを用いて、それぞれに接続されたメモリ20内のいずれかのバンク21をアクセス先として指定するバンクアドレスを生成する。具体的に、各バンクアドレス生成部11は、まず、接続されるメモリ20毎にそれぞれ異なる関数(演算方法)を用いて、物理アドレスの「上位アドレス」から、バンク21を指定する「バンク番号」と同一のビットサイズの中間データ(変形データ)を生成する。つまり、図5に示すように、まず、関数「fメモリ番号(上位アドレス)」にて、上位アドレスから接続されるメモリ20毎にそれぞれ異なる第一データを生成し、かかる第一データを必要に応じて複数に分割して、中間データを生成する。そして、各バンクアドレス生成部11は、生成した「中間データ」と、物理アドレスに含まれる「バンク番号」とのビットごとの排他的論理和を取ることにより、バンクアドレスを生成する。
Further, each bank
ここで、各メモリ20に接続された各メモリ制御部10(番号0~3)がそれぞれ備えるバンクアドレス生成部11によるバンクアドレスの生成の一例を、図6乃至図9を参照して説明する。まず、図6は、メモリ番号0のメモリ20に対応するバンクアドレス生成部11による生成例を示している。図6に示すように、まず「上位アドレス」をそのまま第一データとして用い、かかる第一データを「バンク番号」と同一のビットサイズに分割した中間データを生成する。ここでは、第一データを3つに分割しているが、分割数は一例である。そして、分割した各上位アドレスである中間データの排他的論理和と、さらにバンク番号との排他的論理和により、バンクアドレスを生成する。
Here, an example of bank address generation by the bank
また、図7は、メモリ番号1のメモリ20に対応するバンクアドレス生成部11による生成例を示している。図7に示すように、メモリ番号1のメモリ20に対しては、まず「上位アドレス」を1ビット右ローテートして第一データを生成する。つまり、「上位アドレス」の最下位ビットを最上位ビットとし、その他のビットをそれぞれ1ビットずつ下位にずらす。そして、1ビットずらして生成した第一データを、バンク番号と同一のビットサイズに分割して(例えば、3分割)中間データを生成し、それぞれの排他的論理和とバンク番号との排他的論理和により、バンクアドレスを生成する。
Further, FIG. 7 shows an example of generation by the bank
また、図8は、メモリ番号2のメモリ20に対応するバンクアドレス生成部11による生成例を示している。図8に示すように、メモリ番号2のメモリ20に対しては、まず「上位アドレス」を2ビット右ローテートして第一データを生成する。つまり、「上位アドレス」の最下位2ビットを最上位2ビットとし、その他のビットをそれぞれ2ビットずつ下位にずらす。そして、2ビットずらして生成した第一データを、バンク番号と同一のビットサイズに分割して(例えば、3分割)中間データを生成し、それぞれの排他的論理和とバンク番号との排他的論理和により、バンクアドレスを生成する。
Further, FIG. 8 shows an example of generation by the bank
また、図9は、メモリ番号3のメモリ20に対応するバンクアドレス生成部11による生成例を示している。図9に示すように、メモリ番号3のメモリ20に対しては、まず「上位アドレス」を3ビット右ローテートして第一データを生成する。つまり、「上位アドレス」の最下位3ビットを最上位3ビットとし、その他のビットをそれぞれ3ビットずつ下位にずらす。そして、3ビットずらして生成した第一データを、バンク番号と同一のビットサイズに分割して(例えば、3分割)中間データを生成し、それぞれの排他的論理和とバンク番号との排他的論理和により、バンクアドレスを生成する。
Further, FIG. 9 shows an example of generation by the bank
以上のように、本発明では、複数のメモリ20毎に、同一の物理アドレスに対してそれぞれ異なる関数を用いて、つまり、それぞれ異なるビット数をローテートさせて中間データを生成し、かかる中間データからバンクアドレスを生成している。このため、複数のメモリ20毎にそれぞれ異なるバンクアドレスが生成されることとなり、メモリ20に対する複数のシーケンシャルアクセス間のバンク競合を減らすことができる。その結果、メモリ帯域の向上を実現することができる。
As described above, in the present invention, intermediate data is generated for each of the plurality of
<実施形態2>
次に、本発明の第2の実施形態を、図10を参照して説明する。図10は、実施形態2メモリ制御装置の構成を示すブロック図である。なお、本実施形態では、実施形態1で説明したベクトルプロセッサ装置の構成の概略を示している。
<Embodiment 2>
Next, a second embodiment of the present invention will be described with reference to FIG. FIG. 10 is a block diagram showing the configuration of a memory control device according to the second embodiment. Note that this embodiment shows an outline of the configuration of the vector processor device described in the first embodiment.
図10に示すように、本実施形態におけるメモリ制御装置200は、
複数のバンク211をそれぞれ有する複数のメモリ210に対するアクセスを制御するメモリ制御装置200であって、
指定された物理アドレスから複数の前記メモリ210をそれぞれアクセス先として指定する複数のメモリアドレスを生成し、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
という構成を有する。
As shown in FIG. 10, the
A
A plurality of memory addresses that designate each of the plurality of
It has the following structure.
なお、上記メモリ制御装置200による機能は、メモリ制御装置200がプログラムを実行することで実現される。
Note that the functions of the
そして、上記構成のメモリ制御装置200は、
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御方法として、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成すると共に、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
という処理を実行するよう作動する。
The
As a memory control method for controlling access to multiple memories each having multiple banks,
Generating a plurality of memory addresses that designate each of the plurality of memories as an access destination from a specified physical address, and a plurality of banks that designate each of the predetermined banks in the plurality of memories as an access destination from the physical address. generating a plurality of bank addresses that are different for each memory when generating addresses;
It operates to execute the process.
以上のように、本発明によると、複数のメモリ毎にそれぞれ異なるバンクアドレスを生成している。このため、メモリに対する複数のシーケンシャルアクセス間のバンク競合を減らすことができ、メモリ帯域の向上を実現することができる。 As described above, according to the present invention, different bank addresses are generated for each of a plurality of memories. Therefore, bank conflicts between multiple sequential accesses to memory can be reduced, and memory bandwidth can be improved.
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリ制御方法、メモリ制御装置、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
<Additional notes>
Part or all of the above embodiments may also be described as in the following additional notes. Hereinafter, the outline of the structure of the memory control method, memory control device, and program according to the present invention will be explained. However, the present invention is not limited to the following configuration.
(付記1)
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御方法であって、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成すると共に、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
メモリ制御方法。
(Additional note 1)
A memory control method for controlling access to a plurality of memories each having a plurality of banks, the method comprising:
Generating a plurality of memory addresses specifying each of the plurality of memories as an access destination from a specified physical address, and a plurality of banks specifying each of the predetermined banks in the plurality of memories as an access destination from the physical address. generating a plurality of bank addresses that are different for each memory when generating addresses;
Memory control method.
(付記2)
付記1に記載のメモリ制御方法であって、
前記メモリ毎にそれぞれ接続されたメモリ制御部がそれぞれ、前記物理アドレスから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Additional note 2)
The memory control method according to appendix 1, comprising:
Each memory control unit connected to each of the memories generates the bank address, which is different for each of the memories, from the physical address.
Memory control method.
(付記3)
付記1又は2に記載のメモリ制御方法であって、
前記メモリ毎にそれぞれ異なる演算方法を用いて、前記物理アドレスから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Additional note 3)
The memory control method according to supplementary note 1 or 2,
generating the bank address, which is different for each memory, from the physical address using a different calculation method for each memory;
Memory control method.
(付記4)
付記1乃至3のいずれかに記載のメモリ制御方法であって、
前記物理アドレスから前記メモリ毎に異なる変形データを生成し、当該変形データから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Additional note 4)
The memory control method according to any one of Supplementary Notes 1 to 3,
generating different modified data for each of the memories from the physical address, and generating different bank addresses for each of the memories from the transformed data;
Memory control method.
(付記5)
付記4に記載のメモリ制御方法であって、
前記メモリ毎に、前記物理アドレスの少なくとも一部のデータをスライド移動させて当該メモリ毎に異なる前記変形データを生成し、当該変形データから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Appendix 5)
The memory control method according to appendix 4, comprising:
sliding at least part of the data of the physical address for each memory to generate the deformed data that is different for each memory, and generate the bank address that is different for each memory from the deformed data;
Memory control method.
(付記6)
付記4又は5に記載のメモリ制御方法であって、
前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データと、に基づいて、前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Appendix 6)
The memory control method according to appendix 4 or 5,
generating a different bank address for each memory based on an address specifying the bank included in the physical address and the modified data;
Memory control method.
(付記7)
付記6に記載のメモリ制御方法であって、
前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データから抽出された1つ又は複数のデータと、の排他的論理和から前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。
(Appendix 7)
The memory control method according to appendix 6, comprising:
generating a different bank address for each memory from an exclusive OR of an address specifying the bank included in the physical address and one or more data extracted from the modified data;
Memory control method.
(付記8)
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御装置であって、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成し、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8)
A memory control device that controls access to a plurality of memories each having a plurality of banks, the memory control device comprising:
Generating a plurality of memory addresses specifying each of the plurality of memories as an access destination from a specified physical address, and a plurality of bank addresses specifying each of the predetermined banks in the plurality of memories as an access destination from the physical address. generating a plurality of bank addresses that are different for each memory when generating the bank address;
Memory controller.
(付記8-1)
付記8に記載のメモリ制御装置であって、
前記メモリ毎にそれぞれ接続されたメモリ制御部を備え、
前記メモリ制御部はそれぞれ、接続された前記メモリをアクセス先として指定する前記メモリアドレスを生成するメモリアドレス生成部と、接続された前記メモリ内の所定の前記バンクをアクセス先として指定する前記バンクアドレスを、他の前記メモリ制御部にて生成される前記バンクアドレスとは異なるよう生成するバンクアドレス生成部と、を備えた、
メモリ制御装置。
(Appendix 8-1)
The memory control device according to appendix 8,
A memory control unit connected to each of the memories,
Each of the memory control units includes a memory address generation unit that generates the memory address that specifies the connected memory as an access destination, and a bank address that specifies the predetermined bank in the connected memory as the access destination. a bank address generation unit that generates a bank address different from the bank address generated by the other memory control unit,
Memory controller.
(付記8-2)
付記8-1に記載のメモリ制御装置であって、
前記メモリ制御部の前記バンクアドレス生成部は、他の前記メモリ制御部の前記バンクアドレス生成部が用いる方法とは異なる演算方法を用いて、前記物理アドレスから前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8-2)
The memory control device according to Appendix 8-1,
The bank address generation unit of the memory control unit generates the bank address from the physical address using a calculation method different from the method used by the bank address generation units of other memory control units.
Memory controller.
(付記8-3)
付記8-1又は8-2に記載のメモリ制御装置であって、
前記メモリ制御部の前記バンクアドレス生成部は、前記物理アドレスから他の前記メモリ制御部の前記バンクアドレス生成部が生成するデータとは異なる変形データを生成し、当該変形データから前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8-3)
The memory control device according to appendix 8-1 or 8-2,
The bank address generation unit of the memory control unit generates modified data different from data generated by the bank address generation units of other memory control units from the physical address, and generates the bank address from the modified data. do,
Memory controller.
(付記8-4)
付記8-3に記載のメモリ制御装置であって、
前記メモリ制御部の前記バンクアドレス生成部は、前記物理アドレスの少なくとも一部のデータをそのまま用いて、又は、スライド移動させて、他の前記メモリ制御部の前記バンクアドレス生成部が生成するデータとは異なる前記変形データを生成し、当該変形データから前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8-4)
The memory control device according to Appendix 8-3,
The bank address generation section of the memory control section uses at least part of the data of the physical address as it is or slides it to combine it with data generated by the bank address generation section of the other memory control section. generates the different modified data, and generates the bank address from the modified data;
Memory controller.
(付記8-5)
付記8-3又は8-4に記載のメモリ制御装置であって、
前記メモリ制御部の前記バンクアドレス生成部は、前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データと、に基づいて前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8-5)
The memory control device according to appendix 8-3 or 8-4,
The bank address generation unit of the memory control unit generates the bank address based on the address specifying the bank included in the physical address and the modified data.
Memory controller.
(付記8-6)
付記8-5に記載のメモリ制御装置であって、
前記メモリ制御部の前記バンクアドレス生成部は、前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データから抽出された1つ又は複数のデータと、の排他的論理和から前記バンクアドレスを生成する、
メモリ制御装置。
(Appendix 8-6)
The memory control device according to Appendix 8-5,
The bank address generation unit of the memory control unit generates the bank address from an exclusive OR of an address specifying the bank included in the physical address and one or more data extracted from the modified data. generate,
Memory controller.
(付記9)
複数のバンクをそれぞれ有する複数のメモリに対するアクセスを制御するメモリ制御装置に、
指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成し、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する処理、
を実行させるためのプログラム。
(Appendix 9)
A memory control device that controls access to a plurality of memories each having a plurality of banks;
Generating a plurality of memory addresses specifying each of the plurality of memories as an access destination from a specified physical address, and a plurality of bank addresses specifying each of the predetermined banks in the plurality of memories as an access destination from the physical address. a process of generating a plurality of bank addresses that are different for each memory when generating a bank address;
A program to run.
(付記9-1)
付記9に記載のプログラムであって、
前記メモリ制御装置に、さらに、前記メモリ毎にそれぞれ接続されたメモリ制御部を実現させると共に、
前記メモリ制御部にそれぞれ、接続された前記メモリをアクセス先として指定する前記メモリアドレスを生成するメモリアドレス生成部と、接続された前記メモリ内の所定の前記バンクをアクセス先として指定する前記バンクアドレスを、他の前記メモリ制御部にて生成される前記バンクアドレスとは異なるよう生成するバンクアドレス生成部と、を実現させる、
ためのプログラム。
(Appendix 9-1)
The program described in Appendix 9,
The memory control device further includes a memory control unit connected to each of the memories, and
a memory address generation unit that generates the memory address that specifies the memory connected to the memory control unit as an access destination; and the bank address that specifies the predetermined bank in the connected memory as the access destination. and a bank address generation unit that generates a bank address different from the bank address generated by another of the memory control units,
program for.
(付記10)
ベクトルプロセッサと、複数のバンクをそれぞれ有する複数のメモリと、前記メモリに対するアクセスを制御するメモリ制御装置と、を備え、
前記メモリ制御装置は、前記ベクトルプロセッサにて指定された物理アドレスから複数の前記メモリをそれぞれアクセス先として指定する複数のメモリアドレスを生成すると共に、前記物理アドレスから複数の前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる複数の前記バンクアドレスを生成する、
ベクトルプロセッサ装置。
(Appendix 10)
A vector processor, a plurality of memories each having a plurality of banks, and a memory control device that controls access to the memory,
The memory control device generates a plurality of memory addresses that designate each of the plurality of memories as an access destination from the physical address specified by the vector processor, and also generates a plurality of memory addresses that designate each of the plurality of memories as an access destination from the physical address, and also generates a plurality of memory addresses from the physical address in the plurality of memories. generating a plurality of bank addresses that are different for each of the memories when generating a plurality of bank addresses specifying each bank as an access destination;
Vector processor device.
(付記10-1)
付記10に記載のベクトルプロセッサ装置であって、
前記メモリ制御装置は、前記メモリ毎にそれぞれ接続されたメモリ制御部を備え、
前記メモリ制御部はそれぞれ、接続された前記メモリをアクセス先として指定する前記メモリアドレスを生成するメモリアドレス生成部と、接続された前記メモリ内の所定の前記バンクをアクセス先として指定する前記バンクアドレスを、他の前記メモリ制御部にて生成される前記バンクアドレスとは異なるよう生成するバンクアドレス生成部と、を備えた、
ベクトルプロセッサ装置。
(Appendix 10-1)
The vector processor device according to
The memory control device includes a memory control unit connected to each of the memories,
Each of the memory control units includes a memory address generation unit that generates the memory address that specifies the connected memory as an access destination, and a bank address that specifies the predetermined bank in the connected memory as the access destination. a bank address generation unit that generates a bank address different from the bank address generated by the other memory control unit,
Vector processor device.
なお、上記プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 Note that the program can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer-readable media includes various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R/W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)). The program may also be provided to the computer on various types of transitory computer readable media. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can provide the program to the computer via wired communication channels, such as electrical wires and fiber optics, or wireless communication channels.
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。 Although the present invention has been described above with reference to the above-described embodiments, the present invention is not limited to the above-described embodiments. The configuration and details of the present invention can be modified in various ways within the scope of the present invention by those skilled in the art.
1 ベクトルプロセッサ装置
10 メモリ制御部
11 バンクアドレス生成部
12 メモリアドレス生成部
20 メモリ
21 バンク
30 メモリネットワーク
40 ベクトルプロセッサ
200 メモリ制御装置
210 メモリ
211 バンク
1
Claims (8)
前記メモリ毎にそれぞれ接続された前記メモリ制御部がそれぞれ、指定された物理アドレスから前記メモリ制御部に接続された前記メモリをアクセス先として指定するメモリアドレスを生成すると共に、前記物理アドレスから前記メモリ制御部に接続された前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。 A memory control method in which a plurality of memory control units control access to a plurality of memories each having a plurality of banks, the method comprising:
Each of the memory control units connected to each of the memories generates a memory address that designates the memory connected to the memory control unit as an access destination from a specified physical address, and generating a different bank address for each memory when generating a plurality of bank addresses each specifying a predetermined bank in the memory connected to the memory control unit as an access destination;
Memory control method.
前記メモリ制御部が、前記メモリ毎にそれぞれ異なる演算方法を用いて、前記物理アドレスから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。 The memory control method according to claim 1 , comprising:
the memory control unit generates the bank address, which is different for each memory, from the physical address using a different calculation method for each memory;
Memory control method.
前記メモリ制御部が、前記物理アドレスから前記メモリ毎に異なる変形データを生成し、当該変形データから前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。 The memory control method according to claim 1 or 2 ,
the memory control unit generates different modified data for each of the memories from the physical address, and generates the bank address that differs for each of the memories from the modified data;
Memory control method.
前記メモリ制御部が、前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データと、に基づいて、前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。 4. The memory control method according to claim 3 ,
the memory control unit generates the bank address, which is different for each memory, based on the address specifying the bank included in the physical address and the deformation data;
Memory control method.
前記メモリ制御部が、前記物理アドレスに含まれる前記バンクを指定するアドレスと、前記変形データから抽出された1つ又は複数のデータと、の排他的論理和から前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御方法。 5. The memory control method according to claim 4 ,
The memory control unit determines the bank address, which is different for each memory, from an exclusive OR of an address specifying the bank included in the physical address and one or more data extracted from the modified data. generate,
Memory control method.
前記メモリ毎にそれぞれ接続された前記メモリ制御部がそれぞれ、指定された物理アドレスから前記メモリ制御部に接続された前記メモリをアクセス先として指定するメモリアドレスを生成し、前記物理アドレスから前記メモリ制御部に接続された前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる前記バンクアドレスを生成する、
メモリ制御装置。 A memory control device having a plurality of memory control units that control access to a plurality of memories each having a plurality of banks,
Each of the memory control units connected to each of the memories generates a memory address specifying the memory connected to the memory control unit as an access destination from a specified physical address, and from the physical address. generating a different bank address for each memory when generating a plurality of bank addresses each designating a predetermined bank in the memory connected to the memory control unit as an access destination;
Memory controller.
前記メモリ毎にそれぞれ接続された前記メモリ制御部がそれぞれ、指定された物理アドレスから前記メモリ制御部に接続された前記メモリをアクセス先として指定するメモリアドレスを生成し、前記物理アドレスから前記メモリ制御部に接続された前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる前記バンクアドレスを生成する、
処理を実行させるためのプログラム。 A memory control device having a plurality of memory control units that control access to a plurality of memories each having a plurality of banks;
Each of the memory control units connected to each of the memories generates a memory address specifying the memory connected to the memory control unit as an access destination from a specified physical address, and from the physical address. generating a different bank address for each memory when generating a plurality of bank addresses each designating a predetermined bank in the memory connected to the memory control unit as an access destination ;
A program to execute processing .
前記メモリ毎にそれぞれ接続された前記メモリ制御部がそれぞれ、前記ベクトルプロセッサにて指定された物理アドレスから前記メモリ制御部に接続された前記メモリをアクセス先として指定するメモリアドレスを生成すると共に、前記物理アドレスから前記メモリ制御部に接続された前記メモリ内の所定の前記バンクをそれぞれアクセス先として指定する複数のバンクアドレスを生成する際に前記メモリ毎に異なる前記バンクアドレスを生成する、
ベクトルプロセッサ装置。 comprising a vector processor, a plurality of memories each having a plurality of banks, and a memory control device having a plurality of memory control units that control access to the memory,
Each of the memory control units connected to each memory generates a memory address specifying the memory connected to the memory control unit as an access destination from the physical address specified by the vector processor. and generating a different bank address for each memory when generating a plurality of bank addresses each specifying a predetermined bank in the memory connected to the memory control unit as an access destination from the physical address. do,
Vector processor device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019159545A JP7408954B2 (en) | 2019-09-02 | 2019-09-02 | Memory control method, memory control device, program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019159545A JP7408954B2 (en) | 2019-09-02 | 2019-09-02 | Memory control method, memory control device, program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021039486A JP2021039486A (en) | 2021-03-11 |
JP7408954B2 true JP7408954B2 (en) | 2024-01-09 |
Family
ID=74847063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019159545A Active JP7408954B2 (en) | 2019-09-02 | 2019-09-02 | Memory control method, memory control device, program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7408954B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7168731B1 (en) | 2021-07-19 | 2022-11-09 | Necプラットフォームズ株式会社 | MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, AND MEMORY ACCESS CONTROL PROGRAM |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163316A (en) | 1998-11-27 | 2000-06-16 | Hitachi Ltd | Computer system |
JP2002073412A (en) | 2000-07-17 | 2002-03-12 | Internatl Business Mach Corp <Ibm> | Access method to memory and memory |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3654608B2 (en) * | 1995-04-27 | 2005-06-02 | 株式会社日立製作所 | Processor system having address allocation and address lock function suitable for memory comprising synchronous DRAM |
US6453380B1 (en) * | 1999-01-23 | 2002-09-17 | International Business Machines Corporation | Address mapping for configurable memory system |
-
2019
- 2019-09-02 JP JP2019159545A patent/JP7408954B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163316A (en) | 1998-11-27 | 2000-06-16 | Hitachi Ltd | Computer system |
JP2002073412A (en) | 2000-07-17 | 2002-03-12 | Internatl Business Mach Corp <Ibm> | Access method to memory and memory |
Also Published As
Publication number | Publication date |
---|---|
JP2021039486A (en) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10203878B2 (en) | Near memory accelerator | |
JP6253514B2 (en) | Processor | |
JP6961997B2 (en) | Information processing device, memory control device, control method of information processing device | |
US20220237041A1 (en) | Parallel processing system performing in-memory processing | |
JP7408954B2 (en) | Memory control method, memory control device, program | |
US10223260B2 (en) | Compiler-generated memory mapping hints | |
US9798550B2 (en) | Memory access for a vector processor | |
JP6004463B2 (en) | Storage device and control method thereof | |
WO2017010127A1 (en) | Information processing device, method, and program | |
WO2013184855A1 (en) | Memory with bank-conflict-resolution (bcr) module including cache | |
US20220318015A1 (en) | Enforcing data placement requirements via address bit swapping | |
US9760508B2 (en) | Control apparatus, computer system, control method and storage medium | |
WO2017082323A1 (en) | Distributed processing system, distributed processing device, method, and storage medium | |
US6643718B1 (en) | Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure | |
JP7346883B2 (en) | Vector processor device and generation method | |
KR101967857B1 (en) | Processing in memory device with multiple cache and memory accessing method thereof | |
JP2001256106A (en) | Memory access system | |
JP5182175B2 (en) | Information processing device | |
US20160140034A1 (en) | Devices and methods for linked list array hardware implementation | |
US9304917B2 (en) | Flush control apparatus, flush control method and cache memory apparatus | |
US20220283806A1 (en) | Processing-in-memory device having a plurality of global buffers and processing-in-memory system including the same | |
KR102149153B1 (en) | Page placement method and apparatus for gpgpu with heterogeneous memory | |
JP5852090B2 (en) | Instruction processing apparatus and instruction processing method thereof | |
JP2007034404A (en) | Information processing system and memory controller | |
US20220019374A1 (en) | Processing-in-memory (pim) systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231031 |
|
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: 20231121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231204 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7408954 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |