JP4786209B2 - Memory access device - Google Patents
Memory access device Download PDFInfo
- Publication number
- JP4786209B2 JP4786209B2 JP2005080478A JP2005080478A JP4786209B2 JP 4786209 B2 JP4786209 B2 JP 4786209B2 JP 2005080478 A JP2005080478 A JP 2005080478A JP 2005080478 A JP2005080478 A JP 2005080478A JP 4786209 B2 JP4786209 B2 JP 4786209B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- commands
- bank
- access
- refresh
- 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 128
- 238000005457 optimization Methods 0.000 description 42
- 239000000872 buffer Substances 0.000 description 25
- 238000000034 method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000003213 activating effect Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Landscapes
- Memory System (AREA)
- Dram (AREA)
Description
複数のバンクと各バンクが複数のページで構成されるメモリのメモリアクセス装置に関して、特に、データ転送の高効率化技術に関する。 The present invention relates to a memory access device having a plurality of banks and a memory in which each bank is composed of a plurality of pages.
近年、マルチメディア機器には、システム制御を行うプロセッサや、メディア処理を行うプロセッサやアクセラレータ、さらにユニバーサルシリアルバス(以下、USBと記す)などのストリームインターフェース装置や、映像音声インターフェース装置や、カメラなどの撮像処理装置などにワンチップにしたシステムLSIが搭載されるようになった。 In recent years, multimedia devices include processors that perform system control, processors and accelerators that perform media processing, stream interface devices such as a universal serial bus (hereinafter referred to as USB), video / audio interface devices, cameras, and the like. One-chip system LSIs are now mounted on imaging processing devices.
また、システムLSIの主記憶メモリとしてダイナミックランダムアクセスメモリ(以下、DRAMと記す)が多く使われている。そのDRAMの技術革新も進み、外部メモリクロックに同期しバースト転送を行うことで高速化を図ったシンクロナスDRAM(以下、SDRAMと記す)や、外部メモリクロックの立ち上がりと立ち下がり両エッジに同期してバースト転送を行い、SDRAMの2倍の転送速度が得られるダブルデータレートSDRAM(以下、DDR−SDRAMと記す)や、さらに終端抵抗を内部に取り込んだ機能により、信号の反射を低減しDDR−SDRAMより高速化を図ったDDR2−SDRAMや、ランバスDRAM(以下、RDRAMと記す)がある。特にSDRAMは大容量でかつ安価であり、システムコストが抑制できるメリットがある。 In addition, a dynamic random access memory (hereinafter referred to as DRAM) is often used as the main memory of the system LSI. Technological innovation of the DRAM has also advanced, and synchronous DRAM (hereinafter referred to as SDRAM), which has been increased in speed by performing burst transfer in synchronization with the external memory clock, and synchronized with both rising and falling edges of the external memory clock. By using burst data transfer, double data rate SDRAM (hereinafter referred to as DDR-SDRAM) that can obtain twice the transfer rate of SDRAM and the function of incorporating a termination resistor inside, DDR- There are DDR2-SDRAMs and Rambus DRAMs (hereinafter referred to as RDRAMs) that are faster than SDRAMs. In particular, SDRAM has a large capacity and is inexpensive, and has an advantage that system cost can be suppressed.
ここで、システム制御を行うプロセッサや、メディア処理を行うプロセッサやアクセラレータ、さらにUSBなどのストリームインターフェース装置や、映像音声インターフェース装置や、カメラなどの撮像処理装置を主記憶メモリに対するアクセス要求マスタと呼ぶ。また、主記憶メモリに記憶されるデータは、システム制御を行うプロセッサの命令コードや、メディア処理を行うプロセッサやアクセラレータのメディア処理データや、さらにストリームインターフェースから転送されるデータや、映像音声インターフェースからのフレームデータや、撮像処理でのピクセルデータである。また、各アクセス要求マスタが使用する用途の異なる様々なデータメモリを1つの主記憶メモリで構成する技術としてユニファイドメモリ技術がよく知られている。 Here, a processor that performs system control, a processor and an accelerator that perform media processing, a stream interface device such as a USB, a video / audio interface device, and an imaging processing device such as a camera are referred to as an access request master for main memory. The data stored in the main memory includes the instruction code of the processor that controls the system, the media processing data of the processor and accelerator that performs the media processing, the data transferred from the stream interface, and the video and audio interface. Frame data and pixel data in imaging processing. In addition, a unified memory technique is well known as a technique for configuring various data memories used by each access request master for different purposes with one main memory.
SDRAMにアクセスするためには、まずSDRAMの初期化(イニシャライズ)を行う必要がある。次に、SDRAMのバースト長やCASレイテンシなどの動作設定を、モードレジスタ設定コマンドにより設定する。次に、SDRAMへのデータ転送を、SDRAM制御信号を組み合わせたメモリコマンドにより行う。代表的なメモリコマンドにはアクティブコマンド(以下、ACTと称す),リードコマンド(以下、RDと称す),ライトコマンド(以下、WRと称す),プリチャージコマンド(以下、PREと称す)などがある。また、SDRAM内のデータを保持するためにリフレッシュ動作が必要である。 In order to access the SDRAM, it is necessary to initialize the SDRAM first. Next, operation settings such as SDRAM burst length and CAS latency are set by a mode register setting command. Next, data transfer to the SDRAM is performed by a memory command combined with the SDRAM control signal. Typical memory commands include an active command (hereinafter referred to as ACT), a read command (hereinafter referred to as RD), a write command (hereinafter referred to as WR), a precharge command (hereinafter referred to as PRE), and the like. . In addition, a refresh operation is required to hold data in the SDRAM.
SDRAMをリードするには、ページをアクティブ化した後、リードコマンドを発行する。 In order to read the SDRAM, after activating the page, a read command is issued.
(1)アクティブコマンド(ACT)とロウアドレスを発行し、該当バンクをアクティブ化する。 (1) Issue an active command (ACT) and a row address to activate the corresponding bank.
(2)tRCD(RAS−CAS ディレー タイム)経過後、リードコマンド(RD)とカラムアドレスを発行する。 (2) After tRCD (RAS-CAS delay time) elapses, a read command (RD) and a column address are issued.
(3)モードレジスタ設定コマンドで設定されたバースト長と、CASレイテンシに従い、指定したアドレスのデータを読み出す。 (3) Read the data at the specified address according to the burst length and CAS latency set by the mode register setting command.
(4)tRAS(RASアクティブタイム)経過後、プリチャージコマンド(PRE)を発行する。 (4) After tRAS (RAS active time) has elapsed, a precharge command (PRE) is issued.
(5)tRP(RASプリチャージタイム)経過後、該当バンクはアイドル状態になる。 (5) After tRP (RAS precharge time) elapses, the corresponding bank enters an idle state.
また、SDRAMをライトするには、ページをアクティブ化した後、ライトコマンドを発行する。 In order to write SDRAM, after activating a page, a write command is issued.
(1)アクティブコマンド(ACT)とロウアドレスを発行し、該当バンクのアクティブ化する。 (1) Issue an active command (ACT) and a row address to activate the corresponding bank.
(2)tRCD経過後、ライトコマンド(WR)とカラムアドレスを発行する。 (2) After tRCD has elapsed, a write command (WR) and a column address are issued.
(3)モードレジスタ設定コマンドで設定されたバースト長に従い、指定したアドレスにデータを書き込む。 (3) Write data to the specified address according to the burst length set by the mode register setting command.
(4)tRAS経過後、プリチャージコマンド(PRE)を発行する。すべてのデータをメモリ・セルに正確に書き込むためにはtDPLを満足する必要がある。 (4) A precharge command (PRE) is issued after elapse of tRAS. In order to correctly write all data to the memory cell, it is necessary to satisfy tDPL.
(5)tRP経過後、該当バンクはアイドル状態になる。 (5) After tRP elapses, the corresponding bank enters an idle state.
同一バンクの同一ページのデータ領域に対しては連続したアクセスできるが、異なるページのデータ領域にアクセスがするときには、まず、元のページのプリチャージを行いアイドル状態にし、さらに、アクセス対象の異なるページをアクティブ化した後、異なるページのデータ領域にアクセスしなければならない。すなわち、同一バンクの同一ページにアクセスするときには連続したアクセスが可能であるため、アクセス効率を高めることができるが、同一バンクの異なるページにアクセスするときにはページミスヒットが発生し、元ページに対してプリチャージ、アクセス対象ページのアクティブ化の処理が必要であり、メモリアクセスの効率が低下することになる。このため、SDRAMをユニファイドメモリ化するためには、各アクセス要求マスタ同士のアクセス調停を行うだけでなく、ページミスヒットの発生を少なくすることが望ましい。 The data area of the same page in the same bank can be accessed continuously, but when accessing the data area of a different page, first the original page is precharged to be in an idle state, and then the page to be accessed is different. After activating, the data area of a different page must be accessed. In other words, continuous access is possible when accessing the same page in the same bank, so that the access efficiency can be improved. However, when a different page in the same bank is accessed, a page miss occurs and the original page is not accessed. Precharging and activation of the access target page are necessary, and the efficiency of memory access is reduced. Therefore, in order to make the SDRAM a unified memory, it is desirable not only to perform access arbitration between the access request masters but also to reduce the occurrence of page misses.
したがって、転送効率の高いメモリアクセスを行うために、従来から様々なメモリアクセス装置設計上の工夫がなされている。 Therefore, in order to perform memory access with high transfer efficiency, various devices for designing memory access devices have been conventionally used.
例えば、アクセス要求マスタからメモリアクセス要求を基にアクティブ化されたページへのアクセスが行われる前に、次のアクセス対象となる異なるバンクの先行プリチャージを行い、次のアクセスがプリチャージを実行することなく直ちにバンクをアクティブ化し、ページミスヒットによるオーバーヘッドを隠蔽するメモリアクセス装置が開示されている(例えば、特許文献1)。 For example, before an access to a page activated based on a memory access request from the access request master is performed, a pre-precharge of a different bank to be accessed next is performed, and the next access executes pre-charge. There has been disclosed a memory access device that immediately activates a bank without losing the overhead due to page miss hits (for example, Patent Document 1).
図11は、このような従来のメモリアクセス装置のブロック図である。図11のメモリアクセス装置は、コマンドテーブル部907と、コマンド発行部903と、メモリ制御部904を備えている。コマンド発行部903はRWコマンド発行部931と、ACTコマンド発行部932を備える。メモリ制御部904は、リフレッシュ生成部941と、モードレジスタ部942と、メモリコマンド発行調停部943と、リードデータバッファ944と、ライトデータバッファ945が備えられている。
FIG. 11 is a block diagram of such a conventional memory access device. The memory access device of FIG. 11 includes a
図11を参照して、従来のメモリアクセス装置を説明する。各アクセス要求マスタからのメモリアクセス要求はコマンドテーブル部907において必要優先順位に従い並べられ、コマンド発行部903にメモリアクセス要求が転送される。ここでメモリアクセス要求とは、単純なバースト転送のリードもしくはライトコマンドであったり、複数のバンク複数のページに跨るリードもしくはライトの一括コマンドであったりする。つまり、バンクやページの境界とは無関係にアドレス指定されることが多い。
A conventional memory access device will be described with reference to FIG. The memory access requests from the access request masters are arranged in the
次に、コマンド発行部903においてメモリアクセス要求によりアクセス対象のページのロウアドレスを指定しアクティブコマンドと、アクティブ化されたページのカラムアドレスを指定しリードコマンドまたはライトコマンドを発行する。RWコマンド発行部931ではリードまたはライトコマンドが発行され、ACTコマンド発行部932では次にアクセスされるバンクをアクティブ化するために先行アクティブコマンドが発行される。次に、メモリ制御部904においてリードまたはライトコマンドと、アクティブコマンドと、SDRAMデバイス固有のリフレッシュコマンド、モード設定コマンドを選択し、各アクセス要求マスタとSDRAM5とのリードデータ転送またはライトデータ転送を行う。リフレッシュ生成部941では(リフレッシュ周期/リフレッシュ回数)を満足するリフレッシュコマンドが発行され、モードレジスタ部941ではモードレジスタ設定コマンドが発行される。メモリコマンド発行調停部943ではそれらDRAMコマンドの発行をSDRAMタイミング規約に従い発行順を調停する。また、リードデータバッファ944、ライトデータバッファ945により各アクセス要求マスタに対してのデータ制御が行われる。
しかしながら、従来技術においては、メモリアクセス要求同士の発行順を入れ替えても、1つメモリアクセス要求の実行において、同一バンクの異なるページにアクセスが連続したときにオーバーヘッドが生じてしまう。また同一バンクの異なるメモリアクセス要求の間に異なるバンクへのメモリアクセス要求を挟んだときでも、異なるバンクアクセスのデータ転送量が少ない場合には、ページアクセスサイクルが確保できずオーバーヘッドが生じる。 However, in the prior art, even if the issue order of the memory access requests is changed, an overhead occurs when accesses to different pages in the same bank are continued in the execution of one memory access request. Even when a memory access request to a different bank is sandwiched between different memory access requests in the same bank, if the data transfer amount of the different bank access is small, a page access cycle cannot be secured and an overhead occurs.
また、マスタからプロセッサのキャッシュミス時の命令フェッチのようにリアルタイム性が必要な優先度の高いアクセスがあった場合、すでにアクティブ化されたページのアクセスを中断するか、すでにアクティブ化されたページのアクセスの直後に割り込ませることで、アクセス要求からデータ転送までのレイテンシを短縮(リアルタイム性の保証)したが、その結果、同一バンクの異なるページアクセスが連続しページミスヒットによるオーバーヘッドが生じる。 Also, if there is a high-priority access that requires real-time performance, such as fetching instructions from the master when a processor cache miss occurs, access to a page that has already been activated is interrupted, or By interrupting immediately after the access, the latency from the access request to the data transfer is shortened (guaranteeing real-time property). As a result, different page accesses in the same bank are continuous, resulting in an overhead due to a page miss.
本発明は、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現するメモリアクセス装置を提供することである。 An object of the present invention is to provide a memory access device that realizes high transfer efficiency by concealing overhead in memory access.
上記課題を解決するため、本発明のメモリアクセス装置は、複数のバンクで構成されるメモリのメモリアクセス装置であって、外部から入力されるメモリアクセス要求を、バンク単位のコマンドに分割する分割手段と、分割されたコマンドを保持する保持手段と、前記保持手段に保持されているコマンドの発行順序を入れ替える入替手段と、前記入替手段による発行順序に従ってコマンドを前記メモリに発行する発行手段とを備え、前記メモリは、バンク毎に複数のページを有し、前記分割手段は、外部から入力されるメモリアクセス要求を、ページ単位のコマンドに分割し、前記入替手段は、直前に発行されたコマンドに続いて前記保持手段に保持されているコマンドを発行するとした場合に当該2つのコマンド間で発生するクロック数を、前記保持手段に保持されているコマンド毎に競合レベルとして算出する算出手段と、競合レベルの最も小さいコマンドを選択する選択手段と、選択されたコマンドに基づいて発行順序を決定する決定手段とを有する。 In order to solve the above problems, a memory access device according to the present invention is a memory access device for a memory constituted by a plurality of banks, and a dividing means for dividing a memory access request inputted from the outside into commands in units of banks. comprising the holding means for holding the split command, the replacement unit replaces the issue order of the commands held in said holding means and issuing means for issuing a command to said memory according to issue order by said replacement means The memory has a plurality of pages for each bank, the dividing unit divides a memory access request input from the outside into commands in units of pages, and the replacement unit converts the command issued immediately before Subsequently, when issuing a command held in the holding means, the number of clocks generated between the two commands is calculated. Calculation means for calculating as a competition level for each command held in the holding means, selection means for selecting a command having the lowest competition level, and determination means for determining an issuance order based on the selected command .
この構成によれば、メモリアクセス要求の単位で発行順を入れ替えるのではなく、バンク単位のコマンドの発行順を入れ替えるので、同一バンクへの連続アクセスなどを容易に回避することができ、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現することができる。 According to this configuration, since the issue order of the bank unit is changed instead of changing the issue order in units of memory access requests, continuous access to the same bank can be easily avoided. It is possible to realize high transfer efficiency that conceals the overhead.
ここで、前記メモリは、バンク毎に複数のページを有し、前記分割手段は、外部から入力されるメモリアクセス要求を、ページ単位のコマンドに分割するようにしている。 Here, the memory has a plurality of pages for each bank, said dividing means, a memory access request input from the outside, so as to divide the command of page units.
この構成によれば、各バンクが複数ページから構成される場合に、ページ単位(つまり1つのローアドレスでアクセス可能な単位)のコマンドの発行順を入れ替えるので、同一ページの連続アクセスなどを容易に回避することができ、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現することができる。 According to this configuration, when each bank is composed of a plurality of pages, the order of issuing commands in units of pages (that is, units that can be accessed by one row address) is changed, so that continuous access of the same page can be easily performed. It can be avoided, and high transfer efficiency in which the overhead in memory access is concealed can be realized.
ここで、前記分割手段は、さらに、新たに分割されたコマンドと、保持手段に保持されているコマンドとが同一バンクまたは同一ページを連続アクセスするコマンドである場合に、当該2つのコマンドを結合するようにしてもよい。 Here, the dividing means further combines the two commands when the newly divided command and the command held in the holding means are commands for successively accessing the same bank or the same page. You may do it.
この構成によれば、同一バンクまたは同一ページをアクセスするコマンドは結合されるので、より高転送効率を実現することができる。 According to this configuration, since commands for accessing the same bank or the same page are combined, higher transfer efficiency can be realized.
ここで、前記入替手段は、直前に発行されたコマンドに続いて保持手段に保持されているコマンドを発行するとした場合に当該2つのコマンド間で発生するクロック数を、保持手段に保持されているコマンド毎に競合レベルとして算出する算出手段と、競合レベルの最も小さいコマンドを選択する選択手段と、選択されたコマンドに基づいて発行順序を決定する決定手段とを有するようにしている。 Here, the replacement means holds the number of clocks generated between the two commands when the command held in the holding means is issued following the command issued immediately before. Calculation means for calculating as a competition level for each command, selection means for selecting a command having the lowest competition level, and determination means for determining an issue order based on the selected command are provided .
この構成によれば、直前に発行されたコマンドと、次の発行候補となるコマンドとの間で発生するクロック数を最小にするように、次に発行すべきコマンドを選択するので、より高転送効率を実現することができる。例えば、同一バンクの異なるページにアクセスが連続しないようにすることができる。 According to this configuration, since the command to be issued next is selected so as to minimize the number of clocks generated between the command issued immediately before and the command to be the next issue candidate, higher transfer is possible. Efficiency can be realized. For example, access to different pages in the same bank can be prevented from continuing.
ここで、前記決定手段は、選択手段によって1つのコマンドが選択された場合には当該コマンドを次に発行すべきコマンドと決定し、選択手段によって複数のコマンドが選択された場合には、直前に発行されたコマンドの転送データサイズに応じて、前記複数のコマンドのうちの1つを次に発行すべきコマンドと決定するようにしてもよい。 Here, the determining means determines that the command to be issued next when one command is selected by the selecting means, and immediately before when a plurality of commands are selected by the selecting means. Depending on the transfer data size of the issued command, one of the plurality of commands may be determined as a command to be issued next.
この構成によれば、競合レベルが最小のコマンドが複数存在する場合には、直前に発行されたコマンドの転送データサイズに応じて、次に発行すべきコマンドを決定するので、よりオーバーヘッドの少ない発行順序を決定することができる。例えば、同一バンクの異なるページアクセスの間に、一定量以上のデータの異なるバンクアクセスを挟むことができ、また、tRAS、tRCD、tRPを確保するために発生する空きクロック数を抑え、オーバーヘッドが隠蔽できる。 According to this configuration, when there are a plurality of commands having the lowest contention level, the command to be issued next is determined according to the transfer data size of the command issued immediately before. The order can be determined. For example, different bank accesses of a certain amount of data can be sandwiched between different page accesses in the same bank, and the number of free clocks generated to secure tRAS, tRCD, and tRP is suppressed, and the overhead is hidden. it can.
ここで、前記決定手段は、選択手段によって複数のコマンドが選択された場合には、直前に発行されたコマンドの転送データサイズが所定値以上か否かを判定し、所定値以上と判定された場合には、前記複数のコマンドのうちの転送データ数が最小のコマンドの次に発行すべきコマンドと決定し、所定値以上でない判定された場合には、前記複数のコマンドのうちの転送データ数が最大のコマンドの次に発行すべきコマンドと決定するようにしてもよい。 Here, when a plurality of commands are selected by the selection unit, the determination unit determines whether the transfer data size of the command issued immediately before is greater than a predetermined value, and is determined to be greater than the predetermined value. in this case, when the number of transfer data of the plurality of commands determines the smallest next to issue command command, it is determined less than the predetermined value, the number of transfer data of the plurality of commands There may be determined as the command to be issued next greatest command.
この構成によれば、競合レベルが最小のコマンドが複数存在する場合には、当該複数のコマンドのうち、まず転送サイズが最大のコマンド、次に転送サイズが最大のコマンド、さらに転送サイズが最大のコマンド、というように発行順序が入れ替えられる。その結果、転送サイズが大きいコマンドの間に転送サイズの小さいコマンドを挟み込むように発行順序が決定され、オーバヘッドを少なくすることができる。 According to this configuration, when there are a plurality of commands having the lowest contention level, the command having the largest transfer size, the command having the largest transfer size, and the command having the largest transfer size are then selected. Command issuance order is changed. As a result, the issuance order is determined so that a command having a small transfer size is sandwiched between commands having a large transfer size, and overhead can be reduced.
ここで、前記決定手段は、さらに選択手段によって複数のコマンドが選択された場合に、当該複数コマンドに同一バンクの異なるページにアクセスする2つのコマンドが含まれる場合に、第1に、当該2つのコマンドのうち転送データサイズの大きい方のコマンド、第2に、当該2つのコマンドとは異なるバンクにアクセスする他のコマンド、第3に、当該2つのコマンドのうち転送データサイズの小さい方のコマンドの順に発行すべきコマンドと決定するようにしてもよい。 Here, when the plurality of commands are further selected by the selection unit, and when the plurality of commands include two commands for accessing different pages in the same bank, Of the commands, the command having the larger transfer data size, second, the other command accessing the bank different from the two commands, and third, the command having the smaller transfer data size of the two commands. You may make it determine with the command which should be issued in order.
この構成によれば、同一バンクの異なるページにアクセスするコマンドが連続しないことや、また同一バンクの異なるページアクセスの間に、ページアクセスサイクルを確保した一定量以上のデータの異なるバンクアクセスを挟むことができ、tRAS、tRCD、tRPを確保するための無駄な空きクロック数を抑えてオーバーヘッドが隠蔽できる。 According to this configuration, commands that access different pages in the same bank are not consecutive, and different bank accesses of a certain amount of data that secure a page access cycle are sandwiched between different page accesses in the same bank. The overhead can be concealed by suppressing the number of useless empty clocks for securing tRAS, tRCD, and tRP.
ここで、前記メモリアクセス装置は、さらに、メモリからのリードデータを保持するリードデータバッファと、メモリへのライトデータを保持するライトデータバッファと、リードデータバッファ内のリードデータをメモリアクセス要求の順番通りに外部に出力し、ライトデータバッファ内のライトデータを入替手段の発行順通りにメモリに出力する制御手段とを備えるようにしてもよい。 The memory access device further includes a read data buffer that holds read data from the memory, a write data buffer that holds write data to the memory, and the read data in the read data buffer in the order of memory access requests. Control means for outputting the data to the outside and outputting the write data in the write data buffer to the memory in the issuing order of the replacement means.
この構成によれば、オーバーヘッドを隠蔽するために並び替えたコマンドに対応するリードデータをメモリアクセス要求を発行したマスタに対してメモリアクセス要求の順番の通り並び替えることができ、データ転送のインオーダー制御ができる。 According to this configuration, the read data corresponding to the command rearranged to conceal the overhead can be rearranged in the order of the memory access request to the master that has issued the memory access request, and in-order of data transfer Can control.
ここで、前記メモリアクセス装置は、さらに、外部から入力される優先度の高いメモリアクセス要求を、バンク単位のコマンドに分割して保持する優先コマンド管理手段を備え、前記入替手段は、優先コマンド管理手段に保持されたコマンドが、直前に発行したコマンドと異なるバンクをアクセスするコマンドである場合、優先コマンド管理手段に保持されたコマンドを優先して発行順序を決定するようにしてもよい。 Here, the memory access device further includes priority command management means for dividing and holding a memory access request having a high priority inputted from outside into commands in bank units, and the replacement means includes priority command management When the command held in the means is a command that accesses a bank different from the command issued immediately before, the issuing order may be determined with priority given to the command held in the priority command management means.
この構成によれば、プロセッサのキャッシュミスなどによる命令フェッチのようにリアルタイム性が必要な優先度の高いアクセスを割り込ませることができ、処理中のアクセスを中断する必要が無く、且つ同一バンクの異なるページアクセスが連続することも無く、オーバーヘッドを隠蔽した優先度の高いコマンド処理ができる。 According to this configuration, it is possible to interrupt high-priority access that requires real-time performance, such as instruction fetch due to a processor cache miss, etc., and there is no need to interrupt access during processing, and the same bank is different. There is no continuous page access, and high-priority command processing with hidden overhead can be performed.
ここで、前記メモリアクセス装置は、さらに、リフレッシュ周期よりも短い周期のリフレッシュ周期信号を出力するリフレッシュサイクルカウンタ回路と、リフレッシュ周期信号に基づいてリフレッシュコマンドを発行するリフレッシュコマンド発行手段と、リフレッシュコマンドと優先コマンドとの調停条件を保持する条件保持手段と、前記優先コマンド管理手段にコマンドが保持されている場合に、条件保持手段の調停条件に従って、優先コマンドの発行とリフレッシュコマンドの発行とを調停する発行制御手段とを備えるようにしてもよい。 Here, the memory access device further includes a refresh cycle counter circuit that outputs a refresh cycle signal having a cycle shorter than the refresh cycle, a refresh command issuing unit that issues a refresh command based on the refresh cycle signal, a refresh command, A condition holding unit that holds an arbitration condition with a priority command, and, when a command is held in the priority command management unit, arbitrates between issuing a priority command and issuing a refresh command according to the arbitration condition of the condition holding unit. Issue control means may be provided.
この構成によれば、優先度の高いアクセスと、リフレッシュコマンドの発行タイミングが重なっても、優先度の高いコマンドをリフレッシュコマンドより優先させることができ、且つリフレッシュ周期を確保したリフレッシュコマンドの発行をすることができる。 According to this configuration, even if the access with high priority and the issue timing of the refresh command overlap, the command with high priority can be given priority over the refresh command, and the refresh command with a refresh cycle secured can be issued. be able to.
本発明のメモリアクセス装置によれば、マスターからのメモリアクセス要求の単位で発行順を入れ替えるのではなく、バンク単位のコマンドの発行順を入れ替えるので、同一バンクへの連続アクセスなどを容易に回避することができ、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現することができる。例えば、同一バンクの異なるページにアクセスが連続しないことや、また同一バンクの異なるページアクセスの間に、ページアクセスサイクルが確保した一定量以上のデータの異なるバンクアクセスを挟むことができ、tRAS、tRCD、tRPが確保できないことによるページミスヒットを抑え、オーバーヘッドが隠蔽できる。 According to the memory access device of the present invention, since the issue order of the bank unit is changed instead of changing the issue order in units of memory access requests from the master, continuous access to the same bank is easily avoided. It is possible to realize high transfer efficiency that conceals the overhead in memory access. For example, access to different pages in the same bank is not continuous, and different bank accesses of a certain amount or more of data secured by the page access cycle can be sandwiched between different page accesses in the same bank. TRAS, tRCD , The page miss hit due to the inability to secure tRP can be suppressed, and the overhead can be concealed.
また、オーバーヘッドを隠蔽するために並び替えたSDRAMから読み出すデータ、またはSDRAMへ書き込むデータを再度アクセス要求マスタからのメモリアクセス要求順番のとおり並び替えることができ、データ転送のインオーダー制御ができる。 Further, data read from the rearranged SDRAM in order to conceal overhead or data to be written to the SDRAM can be rearranged again in the order of memory access requests from the access request master, and in-order control of data transfer can be performed.
また、プロセッサのキャッシュミスなどによる命令フェッチのようにリアルタイム性が必要な優先度の高いアクセスを割り込ませても、処理中のアクセスを中断する必要が無く、且つ同一バンクの異なるページアクセスが連続することも無く、ページミスヒットによるオーバーヘッドを隠蔽した優先度の高いコマンド処理ができる。 Also, even when interrupting a high-priority access that requires real-time performance, such as instruction fetch due to a processor cache miss, it is not necessary to interrupt the access being processed, and different page accesses in the same bank continue. In addition, high-priority command processing that conceals the overhead due to page miss hits can be performed.
また、優先度の高いアクセスと、リフレッシュコマンドの発行タイミングが重なっても、優先度の高いコマンドをリフレッシュコマンドより優先させることができ、かつリフレッシュ周期を確保したリフレッシュコマンドの発行ができる。 Further, even if the access with a high priority overlaps with the issuance timing of the refresh command, the command with a high priority can be given priority over the refresh command, and a refresh command with a refresh cycle secured can be issued.
また、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現するメモリアクセス装置を使用することで、単位時間あたりの有効データ転送量を増加することができバンド幅の向上を行える。また、バンド幅を向上したことで動作周波数が抑えられ低消費電力化にも貢献できる。 Also, by using a memory access device that realizes high transfer efficiency that conceals the overhead in memory access, the effective data transfer amount per unit time can be increased, and the bandwidth can be improved. In addition, the improved bandwidth reduces the operating frequency and can contribute to lower power consumption.
以下、本発明の実施の形態について、図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(第1の実施形態)
図1Aは、本発明の第1の実施形態に係るメモリアクセス装置の構成を示すブロック図である。同図においてメモリアクセス装置は、アクセス要求入力部10、コマンド分割部11と、コマンド管理部1と、アクセス順最適化部2と、コマンド発行部3と、メモリ制御部4と、データ出力部12と、データ入力部13とを備え、SDRAM5に接続されている。アクセス順最適化部2は、アクセス順入替最適化部21と、コマンド履歴管理部22と備える。コマンド発行部3は、RWコマンド発行部31と、ACTコマンド発行部32とを備える。メモリ制御部4は、リフレッシュ生成部41と、モードレジスタ部42と、メモリコマンド発行調停部43と、リードデータバッファ44と、ライトデータバッファ45とを備える。
(First embodiment)
FIG. 1A is a block diagram showing a configuration of a memory access apparatus according to the first embodiment of the present invention. In the figure, the memory access device includes an access
コマンド入力部10は、プロセッサやDMACなどの複数のアクセス要求マスターからメモリアクセス要求を受け取る。図1B〜図1Dに、メモリアクセス要求の例を示す。図1Bのメモリアクセス要求は先頭アドレスと末尾アドレスとを含む。図1Cのメモリアクセス要求は先頭アドレスとデータ長とを含む。図1Dのメモリアクセス要求は、画像データ内の矩形領域の左上座標(X0,Y0)に対応するアドレスA0と、右下座標(X1,Y1)に対応するアドレスA1とを含む。いずれのメモリアクセス要求も、SDRAM5のバンクまたはページの境界とは無関係に指定されるので、アクセスデータがバンクまたはページに収まる場合もあれば、収まらない場合もある。
The
また、新たに分割したコマンドと、コマンド管理部1にに保持されているコマンドとが同一バンクまたは同一ページを連続アクセス可能なコマンドである場合に、当該2つのコマンドを結合する。
When the newly divided command and the command held in the
コマンド管理部1は、コマンドバッファ101、102、111、112、121、122、131、132からなるバンクテーブルを有し、コマンド分割部11によって分割された各バンクのページ単位のコマンドを保持する。第1の実施形態のコマンド管理部1では、4つのバンクの各2つのページに対するコマンドをそれぞれ1つまで格納するものである。コマンド管理部1は、いずれかのバンクが第1ページもしくは第2ページに対し2つ目のコマンドが要求された場合、アクセス順最適化部2に、バンクテーブルに格納されているコマンド情報を出力する。また、アクセス要求マスタには格納ビジー情報を出力し、メモリアクセス要求の出力を保持させておく。
The
アクセス順最適化部2は、コマンド管理部1から出力されたコマンド情報を入力として、アクセス順入替最適化回路21で、バンク、ページ及び、データ量を比較して発行順番を入れ替え、コマンド発行部3にコマンドを出力する。また、その後アクティブ化されるバンク及びページ情報も出力する。
The access
コマンド履歴管理回路22は、アクセス順入替最適化回路21が出力したコマンド履歴を管理し、コマンド履歴情報を出力する。コマンド履歴情報は、過去のアクセスのバンクアドレス、ページアドレスであり、アクセス順入替最適化回路21で、次のコマンド選択に使用する。
The command
コマンド発行部3は、メモリアクセス要求によりアクセス対象のページのロウアドレスを指定しアクティブコマンドと、アクティブ化されたページのカラムアドレスを指定しリードまたはライトコマンドを発行する。RWコマンド発行回路31ではリードまたはライトコマンドが発行され、ACTコマンド発行回路32では次にアクセスされるバンクをアクティブ化するために先行アクティブコマンドが発行される。
The
メモリ制御部4は、リードまたはライトコマンドと、アクティブコマンドと、SDRAMデバイス固有のリフレッシュコマンド、モード設定コマンドを選択し、各アクセス要求マスタ⇔SDRAM5とのリードデータまたはライトデータ転送を行う。
The memory control unit 4 selects a read or write command, an active command, a refresh command specific to the SDRAM device, and a mode setting command, and performs read data or write data transfer with each access request master /
リフレッシュ生成回路41は、(リフレッシュ周期/リフレッシュ回数)を満足するリフレッシュコマンドが発行され、モードレジスタ回路41ではモードレジスタ設定コマンドが発行される。
The
メモリコマンド発行調停回路43は、それらDRAMコマンドの発行をSDRAMタイミング規約に従い発行順を調停する。また、リードデータバッファ44、ライトデータバッファ45により各アクセス要求マスタに対してのデータ制御が行われる。
The memory command
ここで、SDRAMアクセスをもとに、オーバーヘッドを隠蔽した転送効率の最適なアクセス順ルールについて説明する。 Here, an optimal access order rule for transfer efficiency that conceals overhead based on SDRAM access will be described.
図2Aは、アクセス順入替えを行わない場合のDRAMアクセスのタイミングチャートである。また、図2Bは、競合が少ない順にアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。また、図2Cは、バンク競合を比較し競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。また、図2Dは、複数のバンクと複数のページのアクセスにおいて競合を比較し競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。 FIG. 2A is a timing chart of DRAM access when access order is not changed. FIG. 2B is a timing chart of DRAM access when access switching is performed in the order of the least contention. FIG. 2C is a timing chart of DRAM access when comparing bank conflicts and comparing the transfer data size of the next access between different banks and changing the access in the order of less overhead. . Also, in FIG. 2D, in the access of a plurality of banks and a plurality of pages, a comparison is made, and the transfer data size of the next access between different banks is compared with the order in which there is less contention, and the access is switched in the order with less overhead. 10 is a timing chart of DRAM access in a case.
それぞれのタイミングチャートで使用するSDRAMは、32bitのデータバス幅で、tRC=10clk、tRAS=7clk、tRP=3clk、tRCD=3clk、tRRD=3clk、tDPL=2clk、バースト長=8、CASレイテンシ=3である。また、タイミングチャートのcycleは外部メモリクロックであり、bankはコマンドが有効となるバンク、ページを示し(0aは、バンク0のページa)、cmdはメモリコマンドのアクティブコマンド(ACT),リードコマンド(RD),ライトコマンド(WR),プリチャージコマンド(PRE)であり、lengthは転送データ量を示し、dataはSDRAMのデータバスを示す。また、SDRAMアクセスにあたりプリチャージコマンド(PRE)は、リードまたはライトの直後に発行し、アクティブコマンド(ACT)はSDRAMの消費電力が低くなるようにアクティブ化期間が少ないなる範囲内で先行発行する。また、図中の斜線部がページミスヒット(どのページもアクセスされていない空のクロック)によるオーバーヘッドである。 The SDRAM used in each timing chart has a 32-bit data bus width, tRC = 10 clk, tRAS = 7 clk, tRP = 3 clk, tRCD = 3 clk, tRRD = 3 clk, tDPL = 2 clk, burst length = 8, CAS latency = 3 It is. In addition, cycle in the timing chart is an external memory clock, bank indicates a bank and page in which the command is valid (0a is page a in bank 0), cmd is an active command (ACT) of a memory command, and a read command ( RD), write command (WR), precharge command (PRE), length indicates the amount of transfer data, and data indicates the data bus of the SDRAM. For SDRAM access, a precharge command (PRE) is issued immediately after reading or writing, and an active command (ACT) is issued in advance within a range where the activation period is short so that power consumption of the SDRAM is reduced. Further, the hatched portion in the figure is an overhead due to a page miss (empty clock in which no page is accessed).
アクセス要求マスタより、コマンド(1)〜コマンド(8)の順でアクセスがあった場合には、
コマンド(1):バンク0、ページa(0a)に対し、28Byteのデータ読み出し
コマンド(2):バンク1、ページa(1a)に対し、24Byteのデータ読み出し
コマンド(3):バンク2、ページa(2a)に対し、8Byteのデータ読み出し
コマンド(4):バンク3、ページa(3a)に対し、4Byteのデータ読み出し
コマンド(5):バンク3、ページb(3b)に対し、28Byteのデータ読み出し
コマンド(6):バンク2、ページb(2b)に対し、24Byteのデータ読み出し
コマンド(7):バンク1、ページb(1b)に対し、8Byteのデータ読み出し
コマンド(8):バンク0、ページb(0b)に対し、4Byteのデータ読み出し
アクセス順入替えを行わない場合は、図2Aのとおりコマンド(4)とコマンド(5)の同一バンク3に対して異なるページaとページbのアクセスが連続するため、tRAS、tRP、tRCDのクロックサイクルを確保できず9clkのオーバーヘッドが発生する。以下、この状態をバンクが競合するという。
If there is access from the access request master in the order of command (1) to command (8),
Command (1): Read 28 bytes of data for
また、必ずバンクの競合が発生しないように、バンク0→バンク1→バンク2→バンク3と固定順番でアクセス入れ替えた場合は、図2Bのとおりコマンド(4)の後、コマンド(8)→コマンド(7)→コマンド(6)→コマンド(5)となる。バンク競合は発生しないが、コマンド(4)とコマンド(7)とコマンド(8)の転送データ量が少ないため、tRAS、tRP、tRCDのクロックサイクルを確保できず6clkのオーバーヘッドが発生する。
In addition, when access is changed in the fixed order of
そこで、バンク競合を比較し競合が少ない順と、異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合は、図2Cのとおりコマンド(4)の後、コマンド(7)→コマンド(6)→コマンド(5)→コマンド(8)となる。tRAS、tRP、tRCDのクロックサイクルを確保するには、まだコマンド(4)とコマンド(7)の転送データ量が少ないが、5clkのオーバーヘッドに改善できる。 Therefore, if access is switched in the order of less contention by comparing bank conflicts and the transfer data size of the next access between different banks and in order of less overhead, the command (4) is changed as shown in FIG. 2C. After that, command (7) → command (6) → command (5) → command (8). In order to secure the clock cycles of tRAS, tRP, and tRCD, the transfer data amount of the command (4) and the command (7) is still small, but the overhead can be improved to 5 clk.
さらに、複数のバンクと複数のページのアクセスにおいて競合を比較し競合が少ない順と、異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合は、図2Dのとおりコマンド(1)→コマンド(3)→コマンド(4)→コマンド(2)→コマンド(8)→コマンド(6)→コマンド(5)→コマンド(7)となる。バンク競合もなく、また転送データ量の大きいコマンドの後には、比較的に転送データ量に小さいコマンドを連続させ、その後には比較的に転送データ量の大きいコマンドのアクセス順とすると、tRAS、tRP、tRCDのクロックサイクルが確保でき、3clkのオーバーヘッドに改善できる。各タイミングチャートではリードアクセスのみで説明したが、ライトアクセスとの組み合わせ時も同様である。 In addition, when comparing access in multiple banks and multiple page accesses and comparing the order of less contention and comparing the transfer data size of the next access between different banks and ordering the access in the order of less overhead, As shown in FIG. 2D, command (1) → command (3) → command (4) → command (2) → command (8) → command (6) → command (5) → command (7). If there is no bank contention and a command with a large transfer data amount is followed by a command with a relatively small transfer data amount, and then the access order of commands with a relatively large transfer data amount is tRAS, tRP , TRCD clock cycle can be secured and the overhead can be improved to 3 clk. In each timing chart, only read access has been described, but the same applies when combined with write access.
次に、第1の実施形態でのアクセス順入れ替えの最適化方法について説明する。
図3は、アクセス順最適化部においてバンク競合を比較し競合が少ない順と、異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行うコマンド順入れ替え処理を示すフロー図である。
Next, an optimization method for changing the access order in the first embodiment will be described.
FIG. 3 shows a command order change process in which the access order optimization unit compares the bank conflicts to reduce the contention, and compares the transfer data size of the next access between different banks and performs the access change in the order of less overhead. FIG.
同図のコマンド順入れ替え処理は、バンクテーブルにコマンドがセットされると、banksort_req信号がセットされ、コマンド順入れ替えを開始する。バンク競合の判定ステップ301では、バンクテーブル上の有効なバンク及びページのコマンドと、過去に発行したコマンドのバンクアドレスを比較する。バンク競合比較は、オーバーヘッドのクロックサイクル数の小さいほうがバンク競合の少ないことを示す競合レベル0〜7を計算する。ステップ302では、バンク競合が少ないコマンドを優先させるため、それぞれのコマンドにおいて競合レベルが他のコマンドより低いかを比較し、最優先のコマンドを選択するコマンド選択信号bank_sel[7:0]を生成する。最も競合レベルの低いコマンドが選択(high)される。また、最も競合レベルの低いコマンドが複数ある場合は、複数のコマンドが選択される。ステップ303では、複数コマンドが選択されたかどうかを判定する。1つのコマンドしか選択されないときは、コマンド選択発行ステップ308へ、複数のコマンドが選択されたときは、最大最小コマンドの判定ステップ304へ進む。次に、最大最小コマンドの判定ステップ304では、それぞれのコマンドの転送サイズを比較し、最大のコマンド、最小のコマンドをそれぞれ判定する。次に、選択コマンド判定ステップ305では、2つめの転送、かつ前の転送のバースト長が6以上の条件の場合、最小のコマンドを選択し、それ以外の条件の場合、ステップ307では、最大のコマンドを選択する。
In the command order switching process shown in FIG. 3, when a command is set in the bank table, the banksort_req signal is set and the command order switching is started. In bank
次に、コマンド選択発行ステップ308では、選択されたコマンドのコマンドをバンクテーブルより選択し、コマンド発行部3にコマンドを出力する。次に、発行済みコマンドフラグステップ309では、選択済みコマンド情報フラグレジスタに、コマンド選択信号bank_sel[7:0]で選択されたコマンドにフラグを立てる。選択済みコマンド情報は、バンク競合の判定ステップ302において、バンクテーブル上のバンク及びページのコマンドをマスクすることに使用され、選択済みのコマンドを判定対象から除外する。次に、未発行コマンド判定ステップ310では、発行したコマンド数を数えて、全てのコマンドが選択されるまで、一連のアクセス順入れ替え最適化を行い、全てのコマンドが選択されると、banksort_ack信号をコマンド管理部1に返し、アクセス順入れ替え最適化を完了する。
Next, in the command
これにより、第1の実施形態おいては、同一バンクの異なるページにアクセスが連続しないことや、また同一バンクの異なるページアクセスの間に、ページアクセスサイクルが確保した一定量以上のデータの異なるバンクアクセスを挟むことができ、tRAS、tRCD、tRPを確保するために発生する無駄な空きクロック数を抑え、オーバーヘッドを隠蔽することができる。 As a result, in the first embodiment, accesses to different pages in the same bank are not consecutive, and different pages of data of a certain amount or more secured by a page access cycle between different page accesses in the same bank. Access can be sandwiched, the number of useless empty clocks generated for securing tRAS, tRCD, and tRP can be suppressed, and the overhead can be concealed.
図4は、図3のステップS301における競合レベルの算出処理を示すフローチャート図である。同図において、アクセス順入替部21は、コマンド履歴管理部22に保持された直前のコマンド情報と、コマンド管理部1に保持されているコマンドとの全ての組み合わせを設定し(S311)、ループ1において、全ての組み合わせについて競合レベルを算出する。すなわち、アクセス順入替部21は、当該組み合わせの先のコマンドと、あとのコマンドとを読み出し(S313)、当該2つのコマンドが連続発行されると仮定して
先のコマンドのPREコマンドから後のコマンドのR/Wコマンドまでのクロック数をカウントし、当該クロック数を競合レベルとする(S314)。
FIG. 4 is a flowchart showing the competition level calculation processing in step S301 of FIG. In the figure, the access
(第2の実施形態)
次に、第2の実施形態でのアクセス順入れ替えの最適化方法について説明する。
(Second Embodiment)
Next, a method for optimizing access order in the second embodiment will be described.
図5は、アクセス順最適化部において複数のバンクと複数のページのアクセスにおいて競合を比較し競合が少ない順と、異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのフロー図である。 FIG. 5 shows an order in which the access order optimization unit compares the contention between accesses of a plurality of banks and a plurality of pages to reduce the contention, and compares the transfer data size of the next access between different banks to reduce the overhead. FIG. 10 is a flowchart of DRAM access when access is switched.
このコマンド順入れ替え処理は、バンクテーブルにコマンドがセットされると、banksort_req信号がセットされ、コマンド順入れ替えを開始する。バンク競合の判定ステップ301では、バンクテーブル上の有効なバンク及びページのコマンドと、コマンド過去の転送したコマンドのバンクアドレスを比較する。バンク競合比較は、オーバーヘッドのクロックサイクル数の小さいほうがバンク競合の少ないことを示す競合レベル0〜7を計算し、バンク競合が少ないコマンドを優先させるため、それぞれのコマンドにおいて競合レベルが他のコマンドより低いかを比較し、最優先のコマンドを選択するコマンド選択信号bank_sel[7:0]を生成する。最も競合レベルの低いコマンドがセット(high)される。また、同一の競合レベルのコマンドが複数ある場合は、複数のコマンドがセットされる。次に、競合の少ないコマンドを選択するステップ303では、コマンド選択信号bank_sel[7:0]に従い、バンクテーブルの所定のコマンドを選択する。1つのコマンドしか選択されないときは、コマンド選択発行ステップ308へ、複数のコマンドが選択されたときは、最大最小コマンドの判定ステップ304へ進む。次に、最大最小コマンドの判定ステップ304では、それぞれのコマンドの転送サイズを比較し、最大のコマンド、最小のコマンドをそれぞれ判定する。次に、コマンド入れ替え開始時点で、2つ以上のバンクのそれぞれ2つ以上のページのコマンドがコマンドテーブルにセットされている場合は(ステップ401)、最大のコマンドと最小のコマンドを交互に選択し(ステップ402)、また、前記条件に加え、2つめの転送、且つ前の転送のバースト長が6以上の条件の場合(ステップ305)、最小のコマンドを選択し(ステップ306)、それ以外の条件の場合、最大のコマンドを選択する(ステップ307)。次に、コマンド選択発行ステップ308では、選択されたコマンドのコマンドをバンクテーブルより選択し、コマンド発行部3にコマンドを出力する。次に、発行済みコマンドフラグステップ309では、選択済みコマンド情報フラグレジスタに、コマンド選択信号bank_sel[7:0]で選択されたコマンドにフラグを立てる。選択済みコマンド情報は、バンク競合の判定ステップ302において、バンクテーブル上のバンク及びページのコマンドをマスクすることに使用され、選択済みのコマンドを判定対象から除外する。次に、未発行コマンド判定ステップ310では、発行したコマンド数を数えて、全てのコマンドが選択されるまで、一連のアクセス順入れ替え最適化を行い、全てのコマンドが選択されると、banksort_ack信号をコマンド管理部1に返し、アクセス順入れ替え最適化を完了する。
In this command order switching process, when a command is set in the bank table, the banksort_req signal is set and the command order switching is started. In a bank
これにより、第2の実施形態おいては、同一バンクの異なるページにアクセスが連続しないことや、また同一バンクの異なるページアクセスの間に、ページアクセスサイクルが確保した一定量以上のデータの異なるバンクアクセスを挟むことができ、tRAS、tRCD、tRPが確保できないことによるページミスヒットを抑え、オーバーヘッドが隠蔽できる。 As a result, in the second embodiment, access to different pages in the same bank is not continuous, and different banks of data of a certain amount or more secured by a page access cycle between different page accesses in the same bank. Access can be sandwiched, page miss hits due to inability to secure tRAS, tRCD, and tRP can be suppressed, and overhead can be concealed.
(第3の実施形態)
図6は、本発明の第3の実施形態に係る命令発行順に従ったデータ転送を行うメモリ制御部を備えたメモリアクセス装置のブロック図である。図6のメモリアクセス装置は、コマンド管理部1と、アクセス順最適化部2と、コマンド発行部3と、メモリ制御部5044と、アクセス順入替最適化回路21と、コマンド履歴管理回路22と、RWコマンド発行回路31と、ACTコマンド発行回路32と、リフレッシュ生成回路41と、モードレジスタ回路42と、メモリコマンド発行調停回路43と、リードデータバッファ44と、ライトデータバッファ45と、R/W制御回路502を備え、コマンド履歴管理回路22よりR/Wデータ復元情報501を出力する。
(Third embodiment)
FIG. 6 is a block diagram of a memory access device including a memory control unit that performs data transfer according to the instruction issue order according to the third embodiment of the present invention. The memory access device of FIG. 6 includes a
まず、コマンド管理部1において、各アクセス要求マスタからのメモリアクセス要求を入力として、各バンクのページ単位でコマンドをバンクテーブルに格納する。また、各アクセス要求マスタからのメモリアクセスが複数のバンク及び、複数のページに対してのアクセスコマンドの場合は、各バンクのページ単位に分割した後、各バンクのページ単位でコマンドをバンクテーブルに格納する。第3の実施形態のコマンド管理部では、4つのバンクの各2つのページに対するコマンドをそれぞれ1つまで格納するものである。コマンド管理部1は、いずれかのバンクが第1ページもしくは第2ページに対し2つ目のコマンドが要求された場合、アクセス順最適化部2に、バンクテーブルに格納されているコマンド情報を出力する。また、アクセス要求マスタには格納ビジー情報を出力し、メモリアクセス要求の出力を保持させておく。次に、アクセス順最適化部2において、コマンド管理部1から出力されたコマンド情報を入力として、アクセス順入替最適化回路21で、バンク及び、ページ及び、データ量を比較して発行順番を入れ替え、コマンド発行部3にコマンドを出力する。また、その後アクティブ化されるバンク及びページ情報も出力する。さらに、コマンド履歴管理回路22は、アクセス順入替最適化回路21が出力したコマンド履歴を管理し、コマンド履歴情報を出力する。コマンド履歴情報は、過去のアクセスのバンクアドレス、ページアドレスであり、アクセス順入替最適化回路21で、次のコマンド選択に使用する。さらに、前記コマンド履歴情報に加えリードまたはライトの情報を追加したR/Wデータ復元情報501を出力する。次に、コマンド発行部3においてメモリアクセス要求によりアクセス対象のページのロウアドレスを指定しアクティブコマンドと、アクティブ化されたページのカラムアドレスを指定しリードまたはライトコマンドを発行する。RWコマンド発行回路31ではリードまたはライトコマンドが発行され、ACTコマンド発行回路32では次にアクセスされるバンクをアクティブ化するために先行アクティブコマンドが発行される。次に、メモリ制御部4においてリードまたはライトコマンドと、アクティブコマンドと、SDRAMデバイス固有のリフレッシュコマンド、モード設定コマンドを選択し、各アクセス要求マスタとSDRAM5との間のリードデータまたはライトデータ転送を行う。リフレッシュ生成回路41では(リフレッシュ周期/リフレッシュ回数)を満足するリフレッシュコマンドが発行され、モードレジスタ回路41ではモードレジスタ設定コマンドが発行される。メモリコマンド発行調停回路43ではそれらDRAMコマンドの発行をSDRAMタイミング規約に従い発行順を調停する。また、SDRAMとのデータ転送をリードデータバッファ44、ライトデータバッファ45を用いて行う。また、R/W制御回路502で、R/Wデータ復元情報501により、各アクセス要求マスタと、リードデータバッファ44、ライトデータバッファ45とのデータ転送を、アクセス順並び替え最適化される前のアクセス要求マスタからの命令発行順に従ったデータ転送を行う。
First, in the
SDRAMからの読み出しの場合は、R/W制御回路502は、各アクセス要求マスタの命令発行順に従ったリード転送データが、リードデータバッファ44に準備された時点で、各アクセス要求マスタへリード有効信号とリードデータを出力する。さらに、アクセス順並び替え前のアクセス順番でリードするように、リードバッファ44のリードポインタ管理を行う。また、SDRAMへの書き込みの場合は、R/W制御回路502の制御によらず、各アクセス要求マスタからのライト転送データをライトデータバッファ45に出力する。さらに、SDRAMへのアクセス順並び替え後のアクセス順番でライトするように、ライトバッファ45のライトポインタ管理を行う。
In the case of reading from the SDRAM, the R /
これにより、第3の実施形態おいては、オーバーヘッドを隠蔽するために並び替えたSDRAMから読み出すデータ、またはSDRAMへ書き込むデータを再度アクセス要求マスタからのメモリアクセス要求順番のとおり並び替えることができ、データ転送のインオーダー制御ができる。 Thereby, in the third embodiment, the data read from the rearranged SDRAM to conceal the overhead or the data to be written to the SDRAM can be rearranged again in the order of the memory access requests from the access request master. In-order control of data transfer is possible.
(第4の実施形態)
図7は、本発明の第4の実施形態に係る転送データを管理するメモリ制御部を備えたメモリアクセス装置の優先アクセス割込みによるオーバーヘッドを低減するメモリアクセス装置のブロック図である。図7のメモリアクセス装置は、コマンド分割部11と、コマンド管理部1と、アクセス順最適化部602と、優先コマンド管理部6と、コマンド発行部3と、メモリ制御部504とを備えている。
(Fourth embodiment)
FIG. 7 is a block diagram of a memory access device that reduces overhead due to a priority access interrupt of a memory access device including a memory control unit that manages transfer data according to the fourth embodiment of the present invention. The memory access device of FIG. 7 includes a
まず、コマンド管理部1において、各アクセス要求マスタからのメモリアクセス要求を入力として、各バンクのページ単位でコマンドをバンクテーブルに格納する。また、各アクセス要求マスタからのメモリアクセスが複数のバンク及び、複数のページに対してのアクセスコマンドの場合は、各バンクのページ単位に分割した後、各バンクのページ単位でコマンドをバンクテーブルに格納する。第4の実施形態のコマンド管理部では、4つのバンクの各2つのページに対するコマンドをそれぞれ1つまで格納するものである。コマンド管理部1は、いずれかのバンクが第1ページもしくは第2ページに対し2つ目のコマンドが要求された場合、アクセス順最適化部2に、バンクテーブルに格納されているコマンド情報を出力する。また、アクセス要求マスタには格納ビジー情報を出力し、メモリアクセス要求の出力を保持させておく。また、優先コマンド管理部6では、プロセッサのキャッシュミスなどによる命令フェッチのようにリアルタイム性が必要な優先度の高いアクセス要求コマンドを格納する。次に、アクセス順最適化部2において、コマンド管理部1と、優先コマンド管理部6から出力されたコマンド情報を入力として、アクセス順入替最適化回路21で、バンク及び、ページ及び、データ量を比較して発行順番を入れ替え、コマンド発行部3にコマンドを出力する。優先コマンドは通常コマンドよりも最優先でアクセス順入れ替え最適化処理がなされる。また、その後アクティブ化されるバンク及びページ情報も出力する。さらに、コマンド履歴管理回路22は、アクセス順入替最適化回路21が出力したコマンド履歴を管理し、コマンド履歴情報を出力する。コマンド履歴情報は、過去のアクセスのバンクアドレス、ページアドレスであり、アクセス順入替最適化回路21で、次のコマンド選択に使用する。
First, in the
次に、第4の実施形態での優先アクセス割込みによるオーバーヘッドを低減するアクセス順入替え最適化方法について説明する。 Next, an access order permutation optimization method for reducing overhead due to a priority access interrupt in the fourth embodiment will be described.
図8は、優先アクセス割込みによるオーバーヘッドを低減するアクセス順入替え最適化を行った場合のDRAMアクセスのフロー図である。 FIG. 8 is a flowchart of DRAM access when access order permutation optimization is performed to reduce overhead due to priority access interrupts.
このコマンド順入れ替え処理は、バンクテーブルにコマンドがセットされると、banksort_req信号がセットされ、コマンド順入れ替えを開始する。また、優先コマンド管理部に優先コマンドがセットされると、emergency_req信号がセットされ、即座に優先コマンド処理を開始する。次に、割込み判別ステップ702では、emergency_req信号がセットされると、優先コマンドフラグ信号emergency_flagがセット(high)され、バンク競合の判定ステップ703へ進む。また、優先コマンドが無いときは、バンク競合の判定ステップ302に進む。次に、バンク競合の判定ステップ703では、優先コマンド管理部の優先コマンドと、コマンド過去の転送したコマンドのバンクアドレスを比較する。バンク競合比較は、オーバーヘッドのクロックサイクル数の小さいほうがバンク競合の少ないことを示す競合レベル0〜7を計算し、競合レベル0(バンク競合が無い)となった時点で優先コマンドが選択される。競合レベル7〜1の場合は優先コマンドフラグ信号emergency_flagがセットされたままの状態で、通常コマンド処理のバンク競合の判定ステップ302へ進む。優先コマンドは、次の通常コマンド処理のとき、再度バンク競合の判定ステップ803で、優先コマンド管理部の優先コマンドと、コマンド過去の転送したコマンドのバンクアドレスを比較する。次に、バンク競合の判定ステップ302では、バンクテーブル上の有効なバンク及びページのコマンドと、コマンド過去の転送したコマンドのバンクアドレスを比較する。バンク競合比較は、オーバーヘッドのクロックサイクル数の小さいほうがバンク競合の少ないことを示す競合レベル0〜7を計算し、バンク競合が少ないコマンドを優先させるため、それぞれのコマンドにおいて競合レベルが他のコマンドより低いかを比較し、最優先のコマンドを選択するコマンド選択信号bank_sel[7:0]を生成する。最も競合レベルの低いコマンドがセット(high)される。また、同一の競合レベルのコマンドが複数ある場合は、複数のコマンドがセットされる。次に、競合の少ないコマンドを選択するステップ303では、コマンド選択信号bank_sel[7:0]に従い、バンクテーブルの所定のコマンドを選択する。1つのコマンドしか選択されないときは、コマンド選択発行ステップ308へ、複数のコマンドが選択されたときは、最大最小コマンドの判定ステップ304へ進む。次に、最大最小コマンドの判定ステップ304では、それぞれのコマンドの転送サイズを比較し、最大のコマンド、最小のコマンドをそれぞれ判定する。次に、選択コマンド判定ステップ305では、コマンド入れ替え開始時点で、2つ以上のバンクのそれぞれ2つ以上のページのコマンドがコマンドテーブルにセットされている場合は、最大のコマンドと最小のコマンドを交互に選択し、また、前記条件に加え、2つめの転送、且つ前の転送のバースト長が6以上の条件の場合、最小のコマンドを選択し、それ以外の条件の場合、最大のコマンドを選択する。次に、コマンド選択発行ステップ308では、選択されたコマンドのコマンドをバンクテーブルより選択し、コマンド発行部3にコマンドを出力する。優先コマンドが発行されたときのみ、emergency_ack信号を優先コマンド管理部に返する。次に、発行済みコマンドフラグステップ309では、選択済みコマンド情報フラグレジスタに、コマンド選択信号bank_sel[7:0]で選択されたコマンドにフラグを立てる。選択済みコマンド情報は、バンク競合の判定ステップ302において、バンクテーブル上のバンク及びページのコマンドをマスクすることに使用され、選択済みのコマンドを判定対象から除外する。次に、未発行コマンド判定ステップ310では、発行したコマンド数を数えて、全てのコマンドが選択されるまで、一連のアクセス順入れ替え最適化を行い、全てのコマンドが選択されると、banksort_ack信号をコマンド管理部1に返し、アクセス順入れ替え最適化を完了する。
In this command order switching process, when a command is set in the bank table, the banksort_req signal is set and the command order switching is started. When a priority command is set in the priority command management unit, an emergency_req signal is set and the priority command processing is started immediately. Next, in the interrupt
これにより、第4の実施形態おいては、プロセッサのキャッシュミスなどによる命令フェッチのようにリアルタイム性が必要な優先度の高いアクセスを割り込ませても、処理中のアクセスを中断する必要が無く、且つ同一バンクの異なるページアクセスが連続することも無く、ページミスヒットによるオーバーヘッドを隠蔽した優先度の高いコマンド処理ができる。 As a result, in the fourth embodiment, even when interrupting a high-priority access that requires real-time performance, such as instruction fetch due to a cache miss of the processor, there is no need to interrupt the access being processed, Further, different page accesses in the same bank do not continue, and high priority command processing that conceals the overhead due to page misses can be performed.
(第5の実施形態)
図9は、優先コマンドとDRAMリフレッシュコマンド発行を最適化するリフレッシュ生成回路の回路構成を示すものである。図9のリフレッシュ生成回路は、リフレッシュサイクルカウンタ回路801と、カウンタイネーブル回路802と、リフレッシュ保持回路803と、リフレッシュコマンド発行条件回路804と、リフレッシュコマンド保持条件回路805を備えている。
(Fifth embodiment)
FIG. 9 shows a circuit configuration of a refresh generation circuit for optimizing issuance of a priority command and a DRAM refresh command. The refresh generation circuit of FIG. 9 includes a refresh
SDRAMは、各ページ(8192ページ、もしくは4096ページ)を、64ms以内に、少なくとも各1回はリフレッシュをかける必要がある。リフレッシュをかけるには、8912回/64ms、もしくは4096回/64msのリフレッシュコマンド発行が必要で、リフレッシュコマンドにより、SDRAM内部で自動的にロウアドレスが選択されリフレッシュされる。 The SDRAM needs to refresh each page (8192 pages or 4096 pages) at least once within 64 ms. In order to perform refresh, it is necessary to issue a refresh command of 8912 times / 64 ms or 4096 times / 64 ms, and a row address is automatically selected and refreshed in the SDRAM by the refresh command.
リフレッシュサイクルカウンタ回路801では、refcunt[9:0]で設定したリフレッシュ周期をカウントダウンし、リフレッシュ周期信号を出力する。また、リフレッシュサイクルカウンタは、まずクリア(CLR)優先、次にロード(LE)優先、カウントダウン(CE)は最後で、常にカウントダウンを行う。
The refresh
カウンタイネーブル回路802では、aref_en信号がenableでは、常にリフレッシュサイクルカウンタをカウントダウンし、aref_en信号がdisableでは、リフレッシュサイクルカウンタを停止(lowにクリア)する。
The counter enable
リフレッシュ保持回路803では、リフレッシュ周期信号によりセットされ、リフレッシュコマンド発行でリセットされるF/Fであり、aref_req信号を出力する。
The
リフレッシュコマンド発行条件回路804で判別され、条件を満たしている場合にaref_sel信号が出力される。aref_sel信号によりリフレッシュコマンド発行が行われる。
If it is determined by the refresh command
リフレッシュコマンド保持条件回路805では、emergency_flag信号がセットされているとき、reg_wait_count[1:0]×リフレッシュコマンド発行周期で設定された期間は、優先コマンドを優先させる。ここで、第5の実施形態では、reg_wait_count[1:0]を1とする。連続優先コマンドがreg_wait_count[1:0] ×リフレッシュコマンド発行周期で設定された期間を超えると、強制的にリフレッシュコマンドが発行される。
In the refresh command holding
リフレッシュコマンド発行条件回路804におけるコマンド発行条件は、
1)aref_req信号がセットされ、優先コマンドがreg_wait_count[1:0] ×リフレッシュコマンド発行周期で設定された期間以上連続した場合
2)aref_req信号がセットされ、コマンドがない場合
3)aref_req信号がセットされ、コマンドはあっても優先コマンドではない場合
すなわち、連続優先コマンドがreg_wait_count[1:0] ×リフレッシュコマンド発行周期で設定された期間内の場合は、リフレッシュコマンドよりも優先コマンドが優先される。また、リフレッシュコマンド保持条件回路805におけるリフレッシュコマンド保持回数カウンタの条件は、
4)リフレッシュコマンド要求があるときに優先コマンドが選択された場合、カウントアップし、クリアよりもカウントアップが優先される。
5)リフレッシュコマンドまたは、通常コマンドが選択された場合、クリアされる。
The command issue condition in the refresh command
1) When the aref_req signal is set and the priority command continues for more than the period set by reg_wait_count [1: 0] × refresh command issue cycle 2) When the aref_req signal is set and there is no command 3) The aref_req signal is set If the command is present but not a priority command, that is, if the continuous priority command is within the period set by reg_wait_count [1: 0] × refresh command issuance period, the priority command has priority over the refresh command. The condition of the refresh command holding number counter in the refresh command holding
4) If a priority command is selected when there is a refresh command request, the count up is performed, and the count up has priority over clear.
5) Cleared when refresh command or normal command is selected.
次に、第5の実施形態での優先コマンドとDRAMリフレッシュコマンド発行の最適化について説明する。 Next, optimization of priority command and DRAM refresh command issuance in the fifth embodiment will be described.
図10(a)は、優先コマンドによりDRAMリフレッシュサイクルが満足できないリフレッシュコマンド生成を説明するタイミングチャートである。また、図10(b)は、優先コマンド割込み時もDRAMリフレッシュサイクルを満足するリフレッシュコマンド生成を説明するタイミングチャートである。また、図10(c)は、連続した優先コマンド割込み時もDRAMリフレッシュサイクルを満足するリフレッシュコマンド生成を説明するタイミングチャートである。それぞれのタイミングチャートで使用するSDRAMは、8192ページを64ms以内に少なくとも各1回はリフレッシュをかける必要がある。また、第5の実施形態では、1度のリフレッシュコマンド発行処理を1ページとする。 FIG. 10A is a timing chart for explaining a refresh command generation in which a DRAM refresh cycle cannot be satisfied by a priority command. FIG. 10B is a timing chart for explaining generation of a refresh command that satisfies a DRAM refresh cycle even when a priority command is interrupted. FIG. 10C is a timing chart for explaining generation of a refresh command that satisfies a DRAM refresh cycle even when consecutive priority command interruptions occur. The SDRAM used in each timing chart needs to refresh 8192 pages at least once within 64 ms. In the fifth embodiment, one refresh command issuance process is set to one page.
図10(a)では、リフレッシュコマンド発行周期tREF_CYCLEは、64ms/8192回=7.8125μsである。回路の動作周波数を96MHzとすると、リフレッシュコマンド発行サイクル数は750で、リフレッシュサイクルカウンタ回路801のrefcunt[9:0]にリフレッシュコマンド発行サイクル=750を設定する。ここで前記の設定では、優先コマンドと競合した場合、優先コマンドが最優先にためリフレッシュコマンドが間に合わず、リフレッシュ周期を満たさなくなる。
In FIG. 10A, the refresh command issue cycle tREF_CYCLE is 64 ms / 8192 times = 7.8125 μs. When the operating frequency of the circuit is 96 MHz, the number of refresh command issuance cycles is 750, and refresh command issuance cycle = 750 is set in refcunt [9: 0] of the refresh
第5の実施形態の優先コマンドとDRAMリフレッシュコマンド発行を最適化するリフレッシュ生成回路によると、図10(b)のようにreg_wait_count[1:0]を1に設定すると、リフレッシュコマンド発行周期が64ms/(8192+1)回=7.8115μsとなり、同一ページの次のリフレッシュコマンド発行までに、リフレッシュコマンド発行周期tREF_CYCLEの1周期分マージンが確保でき、そのマージン分だけリフレッシュコマンド発行を遅延させることが出来る。 According to the refresh generation circuit for optimizing the priority command and DRAM refresh command issuance of the fifth embodiment, when reg_wait_count [1: 0] is set to 1 as shown in FIG. (8192 + 1) times = 7.8115 μs, so that one cycle margin of the refresh command issuance period tREF_CYCLE can be secured before the next refresh command is issued on the same page, and the refresh command issuance can be delayed by that margin.
優先コマンドとDRAMリフレッシュコマンド発行の最適化方法は、
1)リフレッシュコマンド発行周期×8192回よりも1周期のマージンを持たせ、リフレッシュ周期を設定する。
2)他のコマンドがない場合にリフレッシュコマンドを発行する。
3)但し、一定時間tREF_WAIT待ってもリフレッシュコマンドが発行できない場合は、他のコマンドを止めリフレッシュコマンドを優先させる。この場合、少なくともリフレッシュコマンドの実行する時間tREF_TIMEを確保しておく必要がある。リフレッシュコマンド実行に、ワーストでtREF_TIMEかかるとすると、リフレッシュコマンド発行を待つことの出来る時間tREF_WAIT=(tREF_CYCLE−tREF_TIME)になる。tREF_CYCLEとtREF_WAITは、このタイミングを確保できるように設定する。
The optimization method for issuing the priority command and DRAM refresh command is as follows:
1) A refresh cycle is set with a margin of one cycle than the refresh command issuance cycle × 8192 times.
2) Issue a refresh command when there are no other commands.
3) However, if a refresh command cannot be issued even after waiting for a predetermined time tREF_WAIT, other commands are stopped and the refresh command is given priority. In this case, at least the time tREF_TIME for executing the refresh command needs to be secured. If it takes the worst tREF_TIME to execute the refresh command, the time tREF_WAIT = (tREF_CYCLE−tREF_TIME) during which the refresh command issuance can be waited. tREF_CYCLE and tREF_WAIT are set to ensure this timing.
また、リフレッシュ保持回路803で複数回のリフレッシュコマンドを貯めるにすれば、tREF_WAITは、1サイクル以内ではなく、複数サイクルにまたがるように出来る。図10(c)のように、同一ページの次のリフレッシュコマンド発行までに、リフレッシュコマンド発行周期tREF_CYCLEの2周期分マージンを持たせると、リフレッシュコマンド発行を待つことの出来る時間tREF_WAITは、(tREF_CYCLE×2−tREF_TIME)になる。 Further, if the refresh command is stored in the refresh holding circuit 803 a plurality of times, tREF_WAIT can extend over a plurality of cycles instead of within one cycle. As shown in FIG. 10C, when a margin for two refresh command issuance periods tREF_CYCLE is given until the next refresh command issuance for the same page, the time tREF_WAIT for waiting for the refresh command is (tREF_CYCLE × 2-tREF_TIME).
これにより、第5の実施形態おいては、オーバーヘッドを隠蔽して優先度の高いアクセスと、リフレッシュコマンドの発行タイミングが重なっても、優先度の高いコマンドをリフレッシュコマンドより優先させることができ、且つリフレッシュ周期を確保したリフレッシュコマンドの発行ができる。 Thereby, in the fifth embodiment, even if the access with a high priority by concealing the overhead and the issuing timing of the refresh command overlap, the command with a high priority can be given priority over the refresh command, and A refresh command with a refresh cycle can be issued.
本発明に係るメモリアクセス装置は、オーバーヘッドを隠蔽した高転送効率を実現し、単位時間あたりの有効データ転送量を増加させることで、DRAMを用いたシステムのバンド幅向上に有用である。さらに、バンド幅を向上したことで動作周波数が抑えられ低消費電力化にも有用である。 The memory access device according to the present invention is useful for improving the bandwidth of a system using a DRAM by realizing high transfer efficiency that conceals overhead and increasing the effective data transfer amount per unit time. Furthermore, the improved bandwidth reduces the operating frequency and is useful for reducing power consumption.
1 コマンド管理部
2 アクセス順最適化部
3 コマンド発行部
4 メモリ制御部
5 SDRAM
6 優先コマンド管理部
7 コマンドテーブル部
21 アクセス順入替最適化回路
22 コマンド履歴管理回路
31 RWコマンド発行回路
32 ACTコマンド発行回路
41 リフレッシュ生成回路
42 モードレジスタ回路
43 メモリコマンド発行調停回路
44 リードデータバッファ
45 ライトデータバッファ
502 R/W制御回路
801 リフレッシュサイクルカウンタ回路
802 カウンタイネーブル回路
803 リフレッシュ保持回路
804 リフレッシュコマンド発行条件回路
805 リフレッシュコマンド保持条件回路
DESCRIPTION OF
6 Priority Command Management Unit 7
Claims (6)
外部から入力されるメモリアクセス要求を、バンク単位のコマンドに分割する分割手段と、
分割されたコマンドを保持する保持手段と、
前記保持手段に保持されているコマンドの発行順序を入れ替える入替手段と、
前記入替手段による発行順序に従ってコマンドを前記メモリに発行する発行手段と
を備え、
前記メモリは、バンク毎に複数のページを有し、
前記分割手段は、外部から入力されるメモリアクセス要求を、ページ単位のコマンドに分割し、
前記入替手段は、
直前に発行されたコマンドに続いて前記保持手段に保持されているコマンドを発行するとした場合に当該2つのコマンド間で発生するクロック数を、前記保持手段に保持されているコマンド毎に競合レベルとして算出する算出手段と、
競合レベルの最も小さいコマンドを選択する選択手段と、
選択されたコマンドに基づいて発行順序を決定する決定手段と
を有する
ことを特徴とするメモリアクセス装置。 A memory access device for accessing a memory composed of a plurality of banks,
Dividing means for dividing an externally input memory access request into bank unit commands;
Holding means for holding the divided commands;
Replacement means for changing the order of issuing commands held in the holding means;
Issuing means for issuing a command to the memory in accordance with an issuing order by the replacement means ,
The memory has a plurality of pages per bank;
The dividing unit divides a memory access request input from the outside into commands in page units,
The replacement means includes
If the command held in the holding unit is issued following the command issued immediately before, the number of clocks generated between the two commands is set as the contention level for each command held in the holding unit. A calculating means for calculating;
A selection means for selecting the command with the lowest contention level;
A determining means for determining an issue order based on the selected command;
Memory access apparatus characterized by having a.
前記選択手段によって複数のコマンドが選択された場合には、直前に発行されたコマンドの転送データサイズに応じて、前記複数のコマンドのうちの1つを次に発行すべきコマンドと決定する
ことを特徴とする請求項1に記載のメモリアクセス装置。 It said determination unit, when one command is selected by the selection means determines a command to be next issued the command,
When a plurality of commands are selected by the selection means, one of the plurality of commands is determined as the next command to be issued according to the transfer data size of the command issued immediately before. The memory access device according to claim 1 , wherein:
前記選択手段によって複数のコマンドが選択された場合には、直前に発行されたコマンドの転送データサイズが所定値以上か否かを判定し、
所定値以上と判定された場合には、前記複数のコマンドのうちの転送データ数が最小のコマンドの次に発行すべきコマンドと決定し、
所定値以上でない判定された場合には、前記複数のコマンドのうちの転送データ数が最大のコマンドの次に発行すべきコマンドと決定する
ことを特徴とする請求項2に記載のメモリアクセス装置。 The determining means includes
When a plurality of commands are selected by the selection means, it is determined whether the transfer data size of the command issued immediately before is a predetermined value or more,
When it is determined that more than the predetermined value, determines that next to issue commands in a command number of transfer data is the smallest of the plurality of commands,
If it is determined less than the predetermined value, the memory access apparatus according to claim 2, characterized in that the number of transfer data of the plurality of command determines that next to issue commands up command.
前記選択手段によって複数のコマンドが選択された場合に、当該複数コマンドに同一バンクの異なるページにアクセスする2つのコマンドが含まれる場合に、第1に、当該2つのコマンドのうち転送データサイズの大きい方のコマンド、第2に、当該2つのコマンドとは異なるバンクにアクセスする他のコマンド、第3に、当該2つのコマンドのうち転送データサイズの小さい方のコマンドの順に発行すべきコマンドと決定する
ことを特徴とする請求項3に記載のメモリアクセス装置。 The determining means further includes
When a plurality of commands are selected by the selection unit, if the plurality of commands include two commands for accessing different pages in the same bank, first, the transfer data size of the two commands is large. The second command, second, another command that accesses a bank different from the two commands, and third, the command to be issued in the order of the two commands with the smaller transfer data size. The memory access device according to claim 3 .
外部から入力される優先度の高いメモリアクセス要求を、バンク単位のコマンドに分割して保持する優先コマンド管理手段を備え、
前記入替手段は、前記優先コマンド管理手段に保持されたコマンドが、直前に発行したコマンドと異なるバンクをアクセスするコマンドである場合、前記優先コマンド管理手段に保持されたコマンドを優先して発行順序を決定する
ことを特徴とする請求項1に記載のメモリアクセス装置。 The memory access device further includes:
Priority command management means for holding a memory access request with high priority inputted from the outside divided into bank unit commands,
The replacing means, the priority command management means commands held in the, case of a command for accessing different and command issued immediately before the banks, the issue order in favor of commands held in the priority command management means The memory access device according to claim 1 , wherein the memory access device is determined.
リフレッシュ周期よりも短い周期のリフレッシュ周期信号を出力するリフレッシュサイクルカウンタ回路と、
前記リフレッシュ周期信号に基づいてリフレッシュコマンドを発行するリフレッシュコマンド発行手段と、
前記リフレッシュコマンドと優先コマンドとの調停条件を保持する条件保持手段と、
前記優先コマンド管理手段にコマンドが保持されている場合に、前記条件保持手段の調停条件に従って、優先コマンドの発行とリフレッシュコマンドの発行とを調停する発行制御手段と
を備えることを特徴とする請求項5に記載のメモリアクセス装置。 The memory access device further includes a refresh cycle counter circuit for outputting a refresh cycle signal having a cycle shorter than the refresh cycle,
A refresh command issuing means for issuing a refresh command based on the refresh cycle signal,
And condition holding means for holding the arbitration condition priority command and the refresh command,
If the command is held in the priority command management unit, the claims in accordance with the arbitration condition of the condition holding means, characterized in that it comprises a dispatch control means for arbitrating the Issuance and refresh command priority command 5. The memory access device according to 5 .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005080478A JP4786209B2 (en) | 2005-03-18 | 2005-03-18 | Memory access device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005080478A JP4786209B2 (en) | 2005-03-18 | 2005-03-18 | Memory access device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006260472A JP2006260472A (en) | 2006-09-28 |
JP4786209B2 true JP4786209B2 (en) | 2011-10-05 |
Family
ID=37099594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005080478A Active JP4786209B2 (en) | 2005-03-18 | 2005-03-18 | Memory access device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4786209B2 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007116612A1 (en) * | 2006-03-31 | 2007-10-18 | Matsushita Electric Industrial Co., Ltd. | Command output controller |
JP2009193107A (en) | 2008-02-12 | 2009-08-27 | Panasonic Corp | Memory access device |
JP2010003067A (en) * | 2008-06-19 | 2010-01-07 | Sony Corp | Memory system, access control method therefor, and computer program |
JP5414209B2 (en) * | 2008-06-30 | 2014-02-12 | キヤノン株式会社 | Memory controller and control method thereof |
JP4752882B2 (en) | 2008-07-24 | 2011-08-17 | ソニー株式会社 | MEMORY ACCESS SYSTEM, MEMORY CONTROL DEVICE, MEMORY CONTROL METHOD, AND PROGRAM |
JP2010134628A (en) * | 2008-12-03 | 2010-06-17 | Renesas Technology Corp | Memory controller and data processor |
JP5321189B2 (en) * | 2009-03-27 | 2013-10-23 | ソニー株式会社 | Memory control device |
JP5365336B2 (en) * | 2009-05-01 | 2013-12-11 | ソニー株式会社 | Memory control device and memory control method |
KR20110032606A (en) * | 2009-09-23 | 2011-03-30 | 삼성전자주식회사 | Electronic device controller for improving performance of the electronic device |
JP5707911B2 (en) | 2010-01-27 | 2015-04-30 | 富士通セミコンダクター株式会社 | Data transfer control device |
JP5630568B2 (en) * | 2011-03-22 | 2014-11-26 | 富士通株式会社 | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus |
JP2014154119A (en) * | 2013-02-14 | 2014-08-25 | Ricoh Co Ltd | Memory controller and semiconductor storage device |
JP6210742B2 (en) | 2013-06-10 | 2017-10-11 | オリンパス株式会社 | Data processing device and data transfer control device |
JP6210743B2 (en) | 2013-06-10 | 2017-10-11 | オリンパス株式会社 | Data processing device and data transfer control device |
JP6180398B2 (en) * | 2014-10-28 | 2017-08-16 | 京セラドキュメントソリューションズ株式会社 | Memory access device |
JP6233287B2 (en) * | 2014-12-11 | 2017-11-22 | 京セラドキュメントソリューションズ株式会社 | Memory access device, image processing device |
US10764455B2 (en) * | 2018-12-31 | 2020-09-01 | Kyocera Document Solutions Inc. | Memory control method, memory control apparatus, and image forming method that uses memory control method |
JP7292044B2 (en) * | 2019-02-07 | 2023-06-16 | キヤノン株式会社 | Control device and control method |
JP2021039447A (en) * | 2019-08-30 | 2021-03-11 | キヤノン株式会社 | Memory controller and method implemented by memory controller |
JP2023069039A (en) | 2021-11-04 | 2023-05-18 | 富士通株式会社 | Memory access controller and memory access control method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002328837A (en) * | 2001-04-27 | 2002-11-15 | Fujitsu Ltd | Memory controller |
JP3918145B2 (en) * | 2001-05-21 | 2007-05-23 | 株式会社ルネサステクノロジ | Memory controller |
CN100432958C (en) * | 2003-01-27 | 2008-11-12 | 松下电器产业株式会社 | Memory controller |
-
2005
- 2005-03-18 JP JP2005080478A patent/JP4786209B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2006260472A (en) | 2006-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4786209B2 (en) | Memory access device | |
US8095744B2 (en) | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages | |
JP3918145B2 (en) | Memory controller | |
KR101622311B1 (en) | Memory device having an adaptable number of open rows | |
US7707328B2 (en) | Memory access control circuit | |
US6963516B2 (en) | Dynamic optimization of latency and bandwidth on DRAM interfaces | |
US6477598B1 (en) | Memory controller arbitrating RAS, CAS and bank precharge signals | |
US20120239873A1 (en) | Memory access system and method for optimizing SDRAM bandwidth | |
JP5428687B2 (en) | Memory control device | |
JP2005339348A (en) | Semiconductor device | |
JP2016218721A (en) | Memory control circuit and memory control method | |
JP2003114825A (en) | Memory control method, memory control circuit using the control method, and integrated circuit loaded with the memory control circuit | |
US20050182908A1 (en) | Method and apparatus of interleaving memory bank in multi-layer bus system | |
JP2003015949A (en) | Control device for semiconductor storage device and control method for semiconductor storage device | |
US5802581A (en) | SDRAM memory controller with multiple arbitration points during a memory cycle | |
JP2007018222A (en) | Memory access control circuit | |
JP4250989B2 (en) | Memory access control device | |
US20030229750A1 (en) | Access controller that efficiently accesses synchronous semiconductor memory device | |
JP4054598B2 (en) | Memory control circuit, DMA request block, and memory access system | |
JP2003271445A (en) | Memory control device and method | |
JP4108237B2 (en) | Memory control device | |
US20120072681A1 (en) | Memory control apparatus and memory control method | |
JP4112813B2 (en) | Bus system and command transmission method thereof | |
JP3615478B2 (en) | Memory access arbitration method | |
JP2011034214A (en) | Memory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110405 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110602 |
|
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: 20110621 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110713 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4786209 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140722 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |