JP4786209B2 - Memory access device - Google Patents

Memory access device Download PDF

Info

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
Application number
JP2005080478A
Other languages
Japanese (ja)
Other versions
JP2006260472A (en
Inventor
和秀 藤本
隆史 山田
大輔 伊元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005080478A priority Critical patent/JP4786209B2/en
Publication of JP2006260472A publication Critical patent/JP2006260472A/en
Application granted granted Critical
Publication of JP4786209B2 publication Critical patent/JP4786209B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 command table unit 907, a command issuing unit 903, and a memory control unit 904. The command issuing unit 903 includes an RW command issuing unit 931 and an ACT command issuing unit 932. The memory control unit 904 includes a refresh generation unit 941, a mode register unit 942, a memory command issue arbitration unit 943, a read data buffer 944, and a write data buffer 945.

図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 command table unit 907 according to the necessary priority, and the memory access request is transferred to the command issuing unit 903. Here, the memory access request may be a simple burst transfer read or write command or a read or write batch command across a plurality of pages in a plurality of banks. In other words, addressing is often performed regardless of bank or page boundaries.

次に、コマンド発行部903においてメモリアクセス要求によりアクセス対象のページのロウアドレスを指定しアクティブコマンドと、アクティブ化されたページのカラムアドレスを指定しリードコマンドまたはライトコマンドを発行する。RWコマンド発行部931ではリードまたはライトコマンドが発行され、ACTコマンド発行部932では次にアクセスされるバンクをアクティブ化するために先行アクティブコマンドが発行される。次に、メモリ制御部904においてリードまたはライトコマンドと、アクティブコマンドと、SDRAMデバイス固有のリフレッシュコマンド、モード設定コマンドを選択し、各アクセス要求マスタとSDRAM5とのリードデータ転送またはライトデータ転送を行う。リフレッシュ生成部941では(リフレッシュ周期/リフレッシュ回数)を満足するリフレッシュコマンドが発行され、モードレジスタ部941ではモードレジスタ設定コマンドが発行される。メモリコマンド発行調停部943ではそれらDRAMコマンドの発行をSDRAMタイミング規約に従い発行順を調停する。また、リードデータバッファ944、ライトデータバッファ945により各アクセス要求マスタに対してのデータ制御が行われる。
特開2002−342159号公報
Next, the command issuing unit 903 issues a read command or a write command by designating an active command and a column address of the activated page by designating the row address of the page to be accessed by a memory access request. The RW command issuing unit 931 issues a read or write command, and the ACT command issuing unit 932 issues a preceding active command in order to activate the next accessed bank. Next, the memory control unit 904 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 transfer or write data transfer between each access request master and the SDRAM 5. The refresh generation unit 941 issues a refresh command that satisfies (refresh cycle / refresh count), and the mode register unit 941 issues a mode register setting command. The memory command issue arbitration unit 943 arbitrates the issue order of the DRAM commands in accordance with the SDRAM timing protocol. Further, data control for each access request master is performed by the read data buffer 944 and the write data buffer 945.
JP 2002-342159 A

しかしながら、従来技術においては、メモリアクセス要求同士の発行順を入れ替えても、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 request input unit 10, a command division unit 11, a command management unit 1, an access order optimization unit 2, a command issue unit 3, a memory control unit 4, and a data output unit 12. And a data input unit 13 are connected to the SDRAM 5. The access order optimization unit 2 includes an access order replacement optimization unit 21 and a command history management unit 22. The command issuing unit 3 includes an RW command issuing unit 31 and an ACT command issuing unit 32. The memory control unit 4 includes a refresh generation unit 41, a mode register unit 42, a memory command issue arbitration unit 43, a read data buffer 44, and a write data buffer 45.

コマンド入力部10は、プロセッサやDMACなどの複数のアクセス要求マスターからメモリアクセス要求を受け取る。図1B〜図1Dに、メモリアクセス要求の例を示す。図1Bのメモリアクセス要求は先頭アドレスと末尾アドレスとを含む。図1Cのメモリアクセス要求は先頭アドレスとデータ長とを含む。図1Dのメモリアクセス要求は、画像データ内の矩形領域の左上座標(X0,Y0)に対応するアドレスA0と、右下座標(X1,Y1)に対応するアドレスA1とを含む。いずれのメモリアクセス要求も、SDRAM5のバンクまたはページの境界とは無関係に指定されるので、アクセスデータがバンクまたはページに収まる場合もあれば、収まらない場合もある。   The command input unit 10 receives memory access requests from a plurality of access request masters such as a processor and a DMAC. 1B to 1D show examples of memory access requests. The memory access request in FIG. 1B includes a head address and a tail address. The memory access request in FIG. 1C includes a head address and a data length. The memory access request in FIG. 1D includes an address A0 corresponding to the upper left coordinate (X0, Y0) of the rectangular area in the image data and an address A1 corresponding to the lower right coordinate (X1, Y1). Since any memory access request is specified irrespective of the bank or page boundary of the SDRAM 5, the access data may or may not fit in the bank or page.

また、新たに分割したコマンドと、コマンド管理部1にに保持されているコマンドとが同一バンクまたは同一ページを連続アクセス可能なコマンドである場合に、当該2つのコマンドを結合する。   When the newly divided command and the command held in the command management unit 1 are commands that can continuously access the same bank or the same page, the two commands are combined.

コマンド管理部1は、コマンドバッファ101、102、111、112、121、122、131、132からなるバンクテーブルを有し、コマンド分割部11によって分割された各バンクのページ単位のコマンドを保持する。第1の実施形態のコマンド管理部1では、4つのバンクの各2つのページに対するコマンドをそれぞれ1つまで格納するものである。コマンド管理部1は、いずれかのバンクが第1ページもしくは第2ページに対し2つ目のコマンドが要求された場合、アクセス順最適化部2に、バンクテーブルに格納されているコマンド情報を出力する。また、アクセス要求マスタには格納ビジー情報を出力し、メモリアクセス要求の出力を保持させておく。   The command management unit 1 has a bank table made up of command buffers 101, 102, 111, 112, 121, 122, 131, 132, and holds a page unit command for each bank divided by the command division unit 11. The command management unit 1 of the first embodiment stores up to one command for each of the two pages of the four banks. The command management unit 1 outputs the command information stored in the bank table to the access order optimization unit 2 when any bank requests the second command for the first page or the second page. To do. In addition, the storage busy information is output to the access request master, and the output of the memory access request is held.

アクセス順最適化部2は、コマンド管理部1から出力されたコマンド情報を入力として、アクセス順入替最適化回路21で、バンク、ページ及び、データ量を比較して発行順番を入れ替え、コマンド発行部3にコマンドを出力する。また、その後アクティブ化されるバンク及びページ情報も出力する。   The access order optimization unit 2 receives the command information output from the command management unit 1, and the access order replacement optimization circuit 21 compares the bank, page, and data amount, and switches the issue order. The command is output to 3. It also outputs bank and page information that is subsequently activated.

コマンド履歴管理回路22は、アクセス順入替最適化回路21が出力したコマンド履歴を管理し、コマンド履歴情報を出力する。コマンド履歴情報は、過去のアクセスのバンクアドレス、ページアドレスであり、アクセス順入替最適化回路21で、次のコマンド選択に使用する。   The command history management circuit 22 manages the command history output by the access order change optimization circuit 21 and outputs command history information. The command history information is the bank address and page address of the past access, and is used for the next command selection in the access order change optimization circuit 21.

コマンド発行部3は、メモリアクセス要求によりアクセス対象のページのロウアドレスを指定しアクティブコマンドと、アクティブ化されたページのカラムアドレスを指定しリードまたはライトコマンドを発行する。RWコマンド発行回路31ではリードまたはライトコマンドが発行され、ACTコマンド発行回路32では次にアクセスされるバンクをアクティブ化するために先行アクティブコマンドが発行される。   The command issuing unit 3 issues a read or write command by designating an active command and a column address of the activated page by designating a row address of a page to be accessed by a memory access request. The RW command issuing circuit 31 issues a read or write command, and the ACT command issuing circuit 32 issues a preceding active command to activate the next accessed bank.

メモリ制御部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 / SDRAM 5.

リフレッシュ生成回路41は、(リフレッシュ周期/リフレッシュ回数)を満足するリフレッシュコマンドが発行され、モードレジスタ回路41ではモードレジスタ設定コマンドが発行される。   The refresh generation circuit 41 issues a refresh command that satisfies (refresh cycle / refresh count), and the mode register circuit 41 issues a mode register setting command.

メモリコマンド発行調停回路43は、それらDRAMコマンドの発行をSDRAMタイミング規約に従い発行順を調停する。また、リードデータバッファ44、ライトデータバッファ45により各アクセス要求マスタに対してのデータ制御が行われる。   The memory command issue arbitration circuit 43 arbitrates the issue order of the DRAM commands in accordance with the SDRAM timing protocol. The read data buffer 44 and the write data buffer 45 perform data control for each access request master.

ここで、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 bank 0, page a (0a) Command (2): Read 24 bytes of data for bank 1, page a (1a) Command (3): Bank 2, page a 8 bytes data read for (2a) Command (4): 4 bytes data read for bank 3, page a (3a) Command (5): 28 bytes data read for bank 3, page b (3b) Command (6): Read data of 24 bytes for bank 2, page b (2b) Command (7): Read data of 8 bytes for bank 1, page b (1b) Command (8): Bank 0, page b When (4b) data read access order is not changed for (0b), command (4) and command (5) are the same as shown in FIG. 2A Because different pages a and page b accesses to link 3 is contiguous, tRAS, tRP, overhead 9clk can not be secured clock cycle tRCD occurs. Hereinafter, this state is referred to as a bank competing.

また、必ずバンクの競合が発生しないように、バンク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 bank 0 → bank 1 → bank 2 → bank 3 so that bank conflict does not always occur, command (8) → command after command (4) as shown in FIG. 2B. (7) → Command (6) → Command (5). Although bank conflict does not occur, the transfer data amount of the command (4), the command (7), and the command (8) is small, so that clock cycles of tRAS, tRP, and tRCD cannot be secured, resulting in an overhead of 6 clk.

そこで、バンク競合を比較し競合が少ない順と、異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合は、図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 conflict determination step 301, valid bank and page commands on the bank table are compared with bank addresses of previously issued commands. The bank contention comparison calculates contention levels 0 to 7 indicating that the smaller the number of overhead clock cycles, the less the bank contention. In step 302, in order to give priority to a command with less bank contention, whether or not the contention level of each command is lower than other commands is compared, and a command selection signal bank_sel [7: 0] for selecting the highest priority command is generated. . The command with the lowest contention level is selected (high). Further, when there are a plurality of commands having the lowest contention level, a plurality of commands are selected. In step 303, it is determined whether a plurality of commands have been selected. When only one command is selected, the process proceeds to a command selection issue step 308. When a plurality of commands are selected, the process proceeds to a determination step 304 for the maximum / minimum command. Next, in the maximum / minimum command determination step 304, the transfer sizes of the respective commands are compared to determine the maximum command and the minimum command, respectively. Next, in the selection command determination step 305, if the burst length of the second transfer and the previous transfer is 6 or more, the minimum command is selected. Otherwise, in step 307, the maximum command is selected. Select a command.

次に、コマンド選択発行ステップ308では、選択されたコマンドのコマンドをバンクテーブルより選択し、コマンド発行部3にコマンドを出力する。次に、発行済みコマンドフラグステップ309では、選択済みコマンド情報フラグレジスタに、コマンド選択信号bank_sel[7:0]で選択されたコマンドにフラグを立てる。選択済みコマンド情報は、バンク競合の判定ステップ302において、バンクテーブル上のバンク及びページのコマンドをマスクすることに使用され、選択済みのコマンドを判定対象から除外する。次に、未発行コマンド判定ステップ310では、発行したコマンド数を数えて、全てのコマンドが選択されるまで、一連のアクセス順入れ替え最適化を行い、全てのコマンドが選択されると、banksort_ack信号をコマンド管理部1に返し、アクセス順入れ替え最適化を完了する。   Next, in the command selection issue step 308, the command of the selected command is selected from the bank table, and the command is output to the command issue unit 3. Next, in an issued command flag step 309, a flag is set for the command selected by the command selection signal bank_sel [7: 0] in the selected command information flag register. The selected command information is used to mask the bank and page commands on the bank table in the bank conflict determination step 302, and excludes the selected command from the determination target. Next, in the unissued command determination step 310, the number of issued commands is counted, and a series of access order switching optimization is performed until all commands are selected. When all commands are selected, the banksort_ack signal is output. Return to the command management unit 1 to complete the access order switching optimization.

これにより、第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 order switching unit 21 sets all combinations of the command information immediately before held in the command history management unit 22 and the commands held in the command management unit 1 (S311), and loop 1 In FIG. 5, the competition levels are calculated for all combinations. In other words, the access order switching unit 21 reads the previous command of the combination and the subsequent command (S313), and assumes that the two commands are issued in succession, then the command after the PRE command of the previous command. The number of clocks up to the R / W command is counted, and the number of clocks is set to the competition level (S314).

(第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 conflict determination step 301, valid bank and page commands on the bank table are compared with the bank addresses of commands transferred in the past. The bank contention comparison calculates the contention levels 0 to 7 indicating that the smaller the number of clock cycles of the overhead is, the less the contention of the bank, and gives priority to the command with less bank contention. A command selection signal bank_sel [7: 0] for selecting the command with the highest priority is generated by comparing whether the command is lower. The command with the lowest contention level is set (high). When there are a plurality of commands having the same contention level, a plurality of commands are set. Next, in step 303 for selecting a command with less contention, a predetermined command in the bank table is selected according to the command selection signal bank_sel [7: 0]. When only one command is selected, the process proceeds to a command selection issue step 308. When a plurality of commands are selected, the process proceeds to a determination step 304 for the maximum / minimum command. Next, in the maximum / minimum command determination step 304, the transfer sizes of the respective commands are compared to determine the maximum command and the minimum command, respectively. Next, when the commands for two or more pages of two or more banks are set in the command table at the start of command replacement (step 401), the largest command and the smallest command are alternately selected. (Step 402) In addition to the above conditions, if the second transfer and the burst length of the previous transfer are 6 or more (Step 305), the smallest command is selected (Step 306), If the condition is satisfied, the maximum command is selected (step 307). Next, in the command selection issue step 308, the command of the selected command is selected from the bank table, and the command is output to the command issue unit 3. Next, in an issued command flag step 309, a flag is set for the command selected by the command selection signal bank_sel [7: 0] in the selected command information flag register. The selected command information is used to mask the bank and page commands on the bank table in the bank conflict determination step 302, and excludes the selected command from the determination target. Next, in the unissued command determination step 310, the number of issued commands is counted, and a series of access order switching optimization is performed until all commands are selected. When all commands are selected, the banksort_ack signal is output. Return to the command management unit 1 to complete the access order switching optimization.

これにより、第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 command management unit 1, an access order optimization unit 2, a command issue unit 3, a memory control unit 5044, an access order replacement optimization circuit 21, a command history management circuit 22, RW command issue circuit 31, ACT command issue circuit 32, refresh generation circuit 41, mode register circuit 42, memory command issue arbitration circuit 43, read data buffer 44, write data buffer 45, and R / W control A circuit 502 is provided, and R / W data restoration information 501 is output from the command history management circuit 22.

まず、コマンド管理部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 command management unit 1, a memory access request from each access request master is input, and a command is stored in the bank table for each bank page. In addition, when the memory access from each access request master is an access command to a plurality of banks and a plurality of pages, the command is divided into page units of each bank, and then the command is stored in the bank table in units of pages of each bank. Store. The command management unit according to the third embodiment stores up to one command for each of two pages of four banks. The command management unit 1 outputs the command information stored in the bank table to the access order optimization unit 2 when any bank requests the second command for the first page or the second page. To do. In addition, the storage busy information is output to the access request master, and the output of the memory access request is held. Next, in the access order optimization unit 2, the command information output from the command management unit 1 is input, and the access order replacement optimization circuit 21 compares the bank, page, and data amount and switches the issue order. The command is output to the command issuing unit 3. It also outputs bank and page information that is subsequently activated. Further, the command history management circuit 22 manages the command history output by the access order change optimization circuit 21 and outputs command history information. The command history information is the bank address and page address of the past access, and is used for the next command selection in the access order change optimization circuit 21. Further, R / W data restoration information 501 in which read or write information is added to the command history information is output. Next, the command issuing unit 3 issues a read or write command by designating an active command and a column address of the activated page by designating the row address of the page to be accessed by a memory access request. The RW command issuing circuit 31 issues a read or write command, and the ACT command issuing circuit 32 issues a preceding active command to activate the next accessed bank. Next, 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 between each access request master and the SDRAM 5. . The refresh generation circuit 41 issues a refresh command that satisfies (refresh cycle / refresh count), and the mode register circuit 41 issues a mode register setting command. The memory command issue arbitration circuit 43 arbitrates the issue order of the DRAM commands in accordance with the SDRAM timing protocol. Data transfer with the SDRAM is performed using the read data buffer 44 and the write data buffer 45. Further, the R / W control circuit 502 uses the R / W data restoration information 501 to perform data transfer between each access request master and the read data buffer 44 and the write data buffer 45 before the access order rearrangement is optimized. Data is transferred according to the order in which commands are issued from the access request master.

SDRAMからの読み出しの場合は、R/W制御回路502は、各アクセス要求マスタの命令発行順に従ったリード転送データが、リードデータバッファ44に準備された時点で、各アクセス要求マスタへリード有効信号とリードデータを出力する。さらに、アクセス順並び替え前のアクセス順番でリードするように、リードバッファ44のリードポインタ管理を行う。また、SDRAMへの書き込みの場合は、R/W制御回路502の制御によらず、各アクセス要求マスタからのライト転送データをライトデータバッファ45に出力する。さらに、SDRAMへのアクセス順並び替え後のアクセス順番でライトするように、ライトバッファ45のライトポインタ管理を行う。   In the case of reading from the SDRAM, the R / W control circuit 502 reads the read valid signal to each access request master when the read transfer data according to the instruction issue order of each access request master is prepared in the read data buffer 44. And read data. Further, the read pointer management of the read buffer 44 is performed so as to read in the access order before the rearrangement of the access order. In the case of writing to the SDRAM, the write transfer data from each access request master is output to the write data buffer 45 without being controlled by the R / W control circuit 502. Further, the write pointer management of the write buffer 45 is performed so that writing is performed in the access order after rearrangement of the access order to the SDRAM.

これにより、第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 command dividing unit 11, a command management unit 1, an access order optimization unit 602, a priority command management unit 6, a command issuing unit 3, and a memory control unit 504. .

まず、コマンド管理部1において、各アクセス要求マスタからのメモリアクセス要求を入力として、各バンクのページ単位でコマンドをバンクテーブルに格納する。また、各アクセス要求マスタからのメモリアクセスが複数のバンク及び、複数のページに対してのアクセスコマンドの場合は、各バンクのページ単位に分割した後、各バンクのページ単位でコマンドをバンクテーブルに格納する。第4の実施形態のコマンド管理部では、4つのバンクの各2つのページに対するコマンドをそれぞれ1つまで格納するものである。コマンド管理部1は、いずれかのバンクが第1ページもしくは第2ページに対し2つ目のコマンドが要求された場合、アクセス順最適化部2に、バンクテーブルに格納されているコマンド情報を出力する。また、アクセス要求マスタには格納ビジー情報を出力し、メモリアクセス要求の出力を保持させておく。また、優先コマンド管理部6では、プロセッサのキャッシュミスなどによる命令フェッチのようにリアルタイム性が必要な優先度の高いアクセス要求コマンドを格納する。次に、アクセス順最適化部2において、コマンド管理部1と、優先コマンド管理部6から出力されたコマンド情報を入力として、アクセス順入替最適化回路21で、バンク及び、ページ及び、データ量を比較して発行順番を入れ替え、コマンド発行部3にコマンドを出力する。優先コマンドは通常コマンドよりも最優先でアクセス順入れ替え最適化処理がなされる。また、その後アクティブ化されるバンク及びページ情報も出力する。さらに、コマンド履歴管理回路22は、アクセス順入替最適化回路21が出力したコマンド履歴を管理し、コマンド履歴情報を出力する。コマンド履歴情報は、過去のアクセスのバンクアドレス、ページアドレスであり、アクセス順入替最適化回路21で、次のコマンド選択に使用する。   First, in the command management unit 1, a memory access request from each access request master is input, and a command is stored in the bank table for each bank page. In addition, when the memory access from each access request master is an access command to a plurality of banks and a plurality of pages, the command is divided into page units of each bank, and then the command is stored in the bank table in units of pages of each bank. Store. The command management unit of the fourth embodiment stores up to one command for each of the two pages of the four banks. The command management unit 1 outputs the command information stored in the bank table to the access order optimization unit 2 when any bank requests the second command for the first page or the second page. To do. In addition, the storage busy information is output to the access request master, and the output of the memory access request is held. The priority command management unit 6 stores a high-priority access request command that requires real-time performance, such as instruction fetch due to a processor cache miss or the like. Next, in the access order optimization unit 2, the command information output from the command management unit 1 and the priority command management unit 6 is input, and the access order replacement optimization circuit 21 determines the bank, page, and data amount. The issuance order is switched by comparison, and the command is output to the command issuing unit 3. The priority command has the highest priority over the normal command, and the access order switching optimization process is performed. It also outputs bank and page information that is subsequently activated. Further, the command history management circuit 22 manages the command history output by the access order change optimization circuit 21 and outputs command history information. The command history information is the bank address and page address of the past access, and is used for the next command selection in the access order change optimization circuit 21.

次に、第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 determination step 702, when the emergency_req signal is set, the priority command flag signal emergency_flag is set (high), and the process proceeds to the bank conflict determination step 703. On the other hand, when there is no priority command, the process proceeds to a bank conflict determination step 302. Next, in a bank conflict determination step 703, the priority command of the priority command management unit is compared with the bank address of the command transferred in the past of the command. In the bank contention comparison, contention levels 0 to 7 indicating that the smaller the number of overhead clock cycles is, the less the contention of the bank, are calculated, and the priority command is selected when the contention level becomes 0 (no bank contention). In the case of the competition levels 7 to 1, the priority command flag signal emergency_flag remains set, and the process proceeds to the bank conflict determination step 302 in the normal command processing. At the next normal command processing, the priority command compares the priority command of the priority command management unit with the bank address of the command transferred in the past in the bank conflict determination step 803 again. Next, in a bank conflict determination step 302, valid bank and page commands on the bank table are compared with the bank addresses of commands transferred in the past. The bank contention comparison calculates the contention levels 0 to 7 indicating that the smaller the number of clock cycles of the overhead is, the less the contention of the bank, and gives priority to the command with less bank contention. A command selection signal bank_sel [7: 0] for selecting the command with the highest priority is generated by comparing whether the command is lower. The command with the lowest contention level is set (high). When there are a plurality of commands having the same contention level, a plurality of commands are set. Next, in step 303 for selecting a command with less contention, a predetermined command in the bank table is selected according to the command selection signal bank_sel [7: 0]. When only one command is selected, the process proceeds to a command selection issue step 308. When a plurality of commands are selected, the process proceeds to a determination step 304 for the maximum / minimum command. Next, in the maximum / minimum command determination step 304, the transfer sizes of the respective commands are compared to determine the maximum command and the minimum command, respectively. Next, in the selection command determination step 305, when commands of two or more pages in each of two or more banks are set in the command table at the start of command replacement, the maximum command and the minimum command are alternately displayed. In addition to the above condition, if the second transfer and the burst length of the previous transfer is 6 or more, the minimum command is selected, otherwise the maximum command is selected. To do. Next, in the command selection issue step 308, the command of the selected command is selected from the bank table, and the command is output to the command issue unit 3. Only when a priority command is issued, an emergency_ack signal is returned to the priority command management unit. Next, in an issued command flag step 309, a flag is set for the command selected by the command selection signal bank_sel [7: 0] in the selected command information flag register. The selected command information is used to mask the bank and page commands on the bank table in the bank conflict determination step 302, and excludes the selected command from the determination target. Next, in the unissued command determination step 310, the number of issued commands is counted, and a series of access order switching optimization is performed until all commands are selected. When all commands are selected, the banksort_ack signal is output. Return to the command management unit 1 to complete the access order switching optimization.

これにより、第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 cycle counter circuit 801, a counter enable circuit 802, a refresh holding circuit 803, a refresh command issuing condition circuit 804, and a refresh command holding condition circuit 805.

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 cycle counter circuit 801 counts down the refresh cycle set by refcunt [9: 0] and outputs a refresh cycle signal. In addition, the refresh cycle counter first performs clear (CLR) priority, then load (LE) priority, countdown (CE) last, and always counts down.

カウンタイネーブル回路802では、aref_en信号がenableでは、常にリフレッシュサイクルカウンタをカウントダウンし、aref_en信号がdisableでは、リフレッシュサイクルカウンタを停止(lowにクリア)する。   The counter enable circuit 802 always counts down the refresh cycle counter when the aref_en signal is enabled, and stops (clears to low) the refresh cycle counter when the aref_en signal is disabled.

リフレッシュ保持回路803では、リフレッシュ周期信号によりセットされ、リフレッシュコマンド発行でリセットされるF/Fであり、aref_req信号を出力する。   The refresh holding circuit 803 is an F / F that is set by a refresh cycle signal and reset by issuing a refresh command, and outputs an aref_req signal.

リフレッシュコマンド発行条件回路804で判別され、条件を満たしている場合にaref_sel信号が出力される。aref_sel信号によりリフレッシュコマンド発行が行われる。   If it is determined by the refresh command issuance condition circuit 804 and the condition is satisfied, the aref_sel signal is output. A refresh command is issued by the aref_sel signal.

リフレッシュコマンド保持条件回路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 condition circuit 805, when the emergency_flag signal is set, the priority command is prioritized during the period set by reg_wait_count [1: 0] × refresh command issuing cycle. Here, in the fifth embodiment, reg_wait_count [1: 0] is set to 1. When the continuous priority command exceeds the period set by reg_wait_count [1: 0] × refresh command issuance cycle, a refresh command is forcibly issued.

リフレッシュコマンド発行条件回路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 issue condition circuit 804 is as follows:
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 condition circuit 805 is:
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 cycle counter circuit 801. Here, in the above setting, when there is a conflict with the priority command, the priority command has the highest priority, so the refresh command is not in time, and the refresh cycle is not satisfied.

第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におけるアクセス順入替え最適化回路を備えたメモリアクセス装置のブロック図である。1 is a block diagram of a memory access device including an access order change optimization circuit according to Embodiment 1. FIG. メモリアクセス要求の第1例を示す説明図である。It is explanatory drawing which shows the 1st example of a memory access request. メモリアクセス要求の第2例を示す説明図である。It is explanatory drawing which shows the 2nd example of a memory access request. メモリアクセス要求の第3例を示す説明図である。It is explanatory drawing which shows the 3rd example of a memory access request. アクセス順入替えを行わない場合のDRAMアクセスのタイミングチャートである。6 is a timing chart of DRAM access when access order is not changed. バンク競合が少ない順にアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。FIG. 10 is a timing chart of DRAM access when access switching is performed in ascending order of bank contention. FIG. バンク競合を比較しバンク競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。10 is a timing chart of DRAM access when comparing bank conflicts and comparing the transfer data size of the next access between different banks with the least amount of bank conflicts and performing the access replacement in the order of less overhead. 複数のバンクと複数のページのアクセスにおいて競合を比較し競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのタイミングチャートである。Timing of DRAM access when access is switched in the order of less contention and the transfer data size of the next access between different banks by comparing contention in accesses of a plurality of banks and pages, and in order of less overhead It is a chart. アクセス順最適化部においてバンク競合を比較し競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのフロー図である。FIG. 11 is a flow chart of DRAM access when the access order optimization unit compares bank conflicts, compares the transfer data size of the next access between different banks, and performs access replacement in the order of less overhead. . 図3のステップS301における競合レベルの算出処理を示すフローチャート図である。It is a flowchart figure which shows the calculation process of the competition level in step S301 of FIG. 実施の形態2における、アクセス順最適化部において複数のバンクと複数のページのアクセスにおいて競合を比較し競合が少ない順と異なるバンク間での次アクセスの転送データサイズを比較しオーバーヘッドが少ない順とにアクセス入替えを行った場合のDRAMアクセスのフローチャート図である。In the second embodiment, the access order optimization unit compares the conflicts in accessing a plurality of banks and a plurality of pages and compares the transfer data size of the next access between different banks and the order in which the overhead is low. It is a flowchart figure of DRAM access at the time of performing access change to. 実施の形態3における命令発行順に従ったデータ転送を行うメモリ制御部を備えたメモリアクセス装置のブロック図である。FIG. 11 is a block diagram of a memory access device including a memory control unit that performs data transfer in accordance with an instruction issue order according to the third embodiment. 実施の形態4における優先アクセス割込みによるオーバーヘッドを低減するアクセス順入替え最適化回路のブロック図である。FIG. 10 is a block diagram of an access order change optimization circuit that reduces overhead due to a priority access interrupt in the fourth embodiment. 優先アクセス割込みによるオーバーヘッドを低減するアクセス順入替え最適化を行った場合のDRAMアクセスのフロー図である。FIG. 10 is a flow diagram of DRAM access when access order permutation optimization is performed to reduce overhead due to priority access interrupts. 優先コマンドとDRAMリフレッシュコマンド発行を最適化するリフレッシュ生成回路の回路構成を示す図である。It is a figure which shows the circuit structure of the refresh production | generation circuit which optimizes issue of a priority command and DRAM refresh command. (a)優先コマンドによりDRAMリフレッシュサイクルが満足できないリフレッシュコマンド生成を説明するタイミングチャートである。(b)優先コマンド割込み時もDRAMリフレッシュサイクルを満足するリフレッシュコマンド生成を説明するタイミングチャートである。(c)連続した優先コマンド割込み時もDRAMリフレッシュサイクルを満足するリフレッシュコマンド生成を説明するタイミングチャートである。(A) It is a timing chart explaining the refresh command generation which cannot satisfy a DRAM refresh cycle by a priority command. (B) A timing chart for explaining generation of a refresh command that satisfies a DRAM refresh cycle even when a priority command is interrupted. (C) is a timing chart for explaining generation of a refresh command that satisfies a DRAM refresh cycle even when consecutive priority command interruptions occur. 従来のメモリアクセス装置の構成を示すブロック図である。It is a block diagram which shows the structure of the conventional memory access apparatus.

符号の説明Explanation of symbols

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 SYMBOLS 1 Command management part 2 Access order optimization part 3 Command issue part 4 Memory control part 5 SDRAM
6 Priority Command Management Unit 7 Command Table Unit 21 Access Order Replacement Optimization Circuit 22 Command History Management Circuit 31 RW Command Issuance Circuit 32 ACT Command Issuance Circuit 41 Refresh Generation Circuit 42 Mode Register Circuit 43 Memory Command Issuance Arbitration Circuit 44 Read Data Buffer 45 Write data buffer 502 R / W control circuit 801 Refresh cycle counter circuit 802 Counter enable circuit 803 Refresh hold circuit 804 Refresh command issue condition circuit 805 Refresh command hold condition circuit

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:
前記決定手段は、
前記選択手段によって複数のコマンドが選択された場合には、直前に発行されたコマンドの転送データサイズが所定値以上か否かを判定し、
所定値以上と判定された場合には、前記複数のコマンドのうちの転送データ数が最小のコマンド次に発行すべきコマンドと決定し、
所定値以上でない判定された場合には、前記複数のコマンドのうちの転送データ数が最大のコマンド次に発行すべきコマンドと決定する
ことを特徴とする請求項に記載のメモリアクセス装置。
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つのコマンドのうち転送データサイズの小さい方のコマンドの順に発行すべきコマンドと決定する
ことを特徴とする請求項に記載のメモリアクセス装置。
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 .
JP2005080478A 2005-03-18 2005-03-18 Memory access device Active JP4786209B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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