JP3956698B2 - Memory control device - Google Patents
Memory control device Download PDFInfo
- Publication number
- JP3956698B2 JP3956698B2 JP2001510096A JP2001510096A JP3956698B2 JP 3956698 B2 JP3956698 B2 JP 3956698B2 JP 2001510096 A JP2001510096 A JP 2001510096A JP 2001510096 A JP2001510096 A JP 2001510096A JP 3956698 B2 JP3956698 B2 JP 3956698B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- data
- state
- memory
- access
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明はデータ処理装置に関し、特にメモリからのプリフェッチを行うメモリ制御装置のプリフェッチ制御に関する。 The present invention relates to a data processing apparatus, and more particularly to prefetch control of a memory control apparatus that performs prefetch from a memory.
計算機の分野において、一般的なプログラムでは一度アクセスしたデータを再度利用する傾向が高く、また、一度アクセスされたデータの近傍にあるデータも参照される傾向がある。これらの傾向は、局所参照性と呼ばれている。多くの計算機では、この局所参照性を活用し、メモリアクセスの待ち時間を減らす目的で、キャッシュメモリと呼ばれる高速なメモリをCPUとメモリの間に配置している。このキャッシュメモリには最近アクセスしたメモリの写しを持ち、メモリに対してアクセスする代わりにメモリよりアクセスが高速なキャッシュメモリに対してアクセスすることで、メモリアクセスの待ち時間を減らし、処理性能の向上を図っている。 In the computer field, general programs tend to use data once accessed again, and there is a tendency to refer to data in the vicinity of data accessed once. These tendencies are called local referentiality. In many computers, a high-speed memory called a cache memory is arranged between the CPU and the memory in order to utilize this local referential property and reduce the waiting time of memory access. This cache memory has a copy of the recently accessed memory, and instead of accessing the memory, accessing the cache memory, which is faster than the memory, reduces the memory access waiting time and improves the processing performance. I am trying.
キャッシュメモリを管理するキャッシュコントローラは、CPUが処理するデータサイズのn倍の単位でキャッシュメモリに記憶されている内容が有効,無効を管理している。このキャッシュメモリを管理する単位をキャッシュラインと呼ぶ。32ビットアーキテクチャのCPUの場合、このキャッシュラインは4バイトのn倍となり、通常16,32,64,128バイトといった値となっている。また、キャッシュコントローラが行うメモリからキャッシュメモリへの転送は、管理単位であるキャッシュライン単位で行っている。 The cache controller that manages the cache memory manages whether the contents stored in the cache memory are valid or invalid in units of n times the data size processed by the CPU. A unit for managing the cache memory is called a cache line. In the case of a 32-bit architecture CPU, this cache line is n times 4 bytes, and is usually 16, 32, 64, 128 bytes. Further, the transfer from the memory to the cache memory performed by the cache controller is performed in units of cache lines which are management units.
一方、メモリには、DRAMやシンクロナスDRAMが使われている。DRAMやシンクロナスDRAMは格子状に記憶素子が構成されており、各記憶素子へは行と列を指定してアクセスを行う。これらのメモリにおいては、同一行内の異なる列に対するアクセス時間は、行を指定してから列を指定するアクセス時間に比べ短い。DRAMの場合、この同一行で異なる列の記憶素子を連続してアクセスする方式をページモードアクセスと呼び、シンクロナスDRAMの場合バーストモードアクセスと呼ぶ。 On the other hand, DRAM or synchronous DRAM is used for the memory. DRAMs and synchronous DRAMs are configured with storage elements in a lattice pattern, and each storage element is accessed by specifying a row and a column. In these memories, the access time for different columns in the same row is shorter than the access time for specifying a column after specifying a row. In the case of DRAM, this method of continuously accessing storage elements in different columns in the same row is called page mode access, and in the case of synchronous DRAM, it is called burst mode access.
CPUが処理を行う上で必要な命令やデータがキャッシュメモリ上に存在しない場合をキャッシュミスと呼ぶ。キャッシュミスが発生すると、キャッシュコントローラは、メモリからキャッシュラインサイズ分のデータを連続的に読み出す。この読み出す動作をキャッシュフィル動作と呼ぶ。メモリコントローラは、CPUからメモリへのリードアクセスが発生すると、キャッシュミスが生じキャッシュフィル動作が発生したと仮定し、ページモード、又は、バーストモードでメモリからデータを先行して読み出している。読み出したデータは、メモリコントローラ内のバッファに格納する。この動作をプリフェッチと呼ぶ。 A case where an instruction or data necessary for processing by the CPU does not exist in the cache memory is called a cache miss. When a cache miss occurs, the cache controller continuously reads data for the cache line size from the memory. This reading operation is called a cache fill operation. When a read access from the CPU to the memory occurs, the memory controller assumes that a cache miss has occurred and a cache fill operation has occurred, and reads data from the memory in advance in the page mode or burst mode. The read data is stored in a buffer in the memory controller. This operation is called prefetch.
このプリフェッチ動作を制御する技術として、日本国特開平10−55307号公報に記載の技術が挙げられる。日本国特開平10−55307号公報では、CPUにおいて、メモリに対する要求が命令に対する要求であるかデータに対する要求であるかを示す制御信号を生成している。この制御信号に従い、メモリからキャッシュメモリにプリフェッチされるデータ量を判断するプリフェッチ論理回路を組み込むことにより、不必要なメモリアクセスを低減し、メモリシステムの効率を向上させている。 As a technique for controlling the prefetch operation, there is a technique described in Japanese Patent Laid-Open No. 10-55307. In Japanese Patent Application Laid-Open No. 10-55307, a CPU generates a control signal indicating whether a request for a memory is a request for an instruction or a request for data. By incorporating a prefetch logic circuit that determines the amount of data prefetched from the memory to the cache memory according to this control signal, unnecessary memory access is reduced and the efficiency of the memory system is improved.
また、日本国特開平5−271673号では、キャッシュメモリに一旦プリフェッチされたデータのリプレースを制御することにより、キャッシュを効率的に使用する技術が開示されている。 Japanese Patent Laid-Open No. 5-271673 discloses a technique for efficiently using a cache by controlling replacement of data once prefetched into a cache memory.
日本国特開平10−55307号公報は、命令に対するメモリアクセス(命令フェッチ)とデータに対するメモリアクセス(データフェッチ)の違いにより、メモリからのプリフェッチされるデータ量を変えることでメモリシステムの効率化を図っている。しかし、日本国特開平10−55307号公報では、命令に対する要求であるかデータに対する要求であるかを示す制御信号によりプリフェッチを制御しているが、計算機が処理するデータには、配列や行列演算に用いるデータのように連続的にアクセスする可能性が非常に大きく、プリフェッチを行うことが有効なデータと、I/Oや他のCPUとデータを受渡しするためのデータや、処理するデータサイズが小さくプリフェッチを用いると不必要なメモリアクセスが多発するデータなどの、プリフェッチが有効に働かないデータがある。このようにデータと言っても、プリフェッチを行うと性能が向上する場合のデータと、逆にプリフェッチを行うことにより性能が低下する場合があるため、データアクセスであるからという理由だけで、メモリからプリフェッチするデータ量を決めてしまうと、メモリシステムのアクセス効率を向上させることは難しい。 Japanese Laid-Open Patent Publication No. 10-55307 discloses that the efficiency of a memory system can be improved by changing the amount of prefetched data from the memory due to the difference between memory access (instruction fetch) for instructions and memory access (data fetch) for data. I am trying. However, in Japanese Patent Application Laid-Open No. 10-55307, prefetch is controlled by a control signal indicating whether a request is for an instruction or a request for data. However, for data processed by a computer, an array or matrix operation is used. There is a very high possibility of continuous access, such as the data used for data, the data for which prefetching is effective, the data for passing data to and from I / O and other CPUs, and the data size to be processed There are some data that prefetching does not work effectively, such as data that frequently requires unnecessary memory access when prefetching is used. In this way, even if the data is prefetched, the performance is improved, and conversely, the performance may be degraded by prefetching. Once the amount of data to be prefetched is determined, it is difficult to improve the access efficiency of the memory system.
一方、日本国特開平5−271673号公報では、キャッシュのエントリ単位にプリフェッチの有無並びにリプレースを制御しているが、予めプリフェッチ要のデータに対応したエントリのアドレスを登録しておく必要があり、またプリフェッチの要・不要も細かく指定する必要があり、メモリからプリフェッチされるデータ量を変更することが難しい。 On the other hand, in Japanese Patent Application Laid-Open No. 5-271673, the presence / absence of prefetch and replacement are controlled in units of cache entries, but it is necessary to register the address of the entry corresponding to the data requiring prefetch beforehand. In addition, it is necessary to specify whether prefetching is necessary or not, and it is difficult to change the amount of data prefetched from the memory.
本発明の課題は、データの使われ方に対応してメモリからプリフェッチされるデータ量を変更可能にすることにより、メモリシステムの効率を向上させることである。 An object of the present invention is to improve the efficiency of a memory system by making it possible to change the amount of data prefetched from a memory in accordance with how the data is used.
メモリのアドレス空間を複数の領域に分割し、更に、分割した領域毎に、メモリコントローラがプリフェッチを行うか否かを決めるモードレジスタをメモリコントローラに設ける。メモリコントローラでは、このモードレジスタに従い、CPUがアクセスするメモリのアドレスが含まれる領域毎にプリフェッチ機能を動作させ、メモリからデータをアクセスする。 The memory address space is divided into a plurality of areas, and a mode register for determining whether or not the memory controller performs prefetching is provided in the memory controller for each divided area. The memory controller accesses the data from the memory by operating the prefetch function for each area including the address of the memory accessed by the CPU according to the mode register.
処理を行うプログラムにおいては、プリフェッチを行うことが有効なデータを格納する領域のモードレジスタをプリフェッチ動作モードに設定し、プリフェッチを用いると不必要なアクセスが多発するデータを格納する領域のモードレジスタをプリフェッチ非動作モードに設定する。 In a program that performs processing, the mode register of the area that stores data that is effective to be prefetched is set to the prefetch operation mode, and if the prefetch is used, the mode register of the area that stores data that frequently requires unnecessary access is set. Set to prefetch non-operation mode.
これにより、連続的にデータを読み出す場合は、プリフェッチ機能を動作させ、先行して連続的にデータを読み出し、単発でアクセスするデータに対しては、プリフェッチを行うことにより生じる不必要なデータ読み出しを生じさせないようにプログラムから制御することが可能になり、メモリアクセス効率が向上する。 As a result, when reading data continuously, the prefetch function is operated to read data continuously in advance, and for data that is accessed in a single shot, unnecessary data reading caused by prefetching is performed. It is possible to control from the program so that it does not occur, and the memory access efficiency is improved.
本発明の実施の形態を図面を用いて以下に説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1は、本発明の一実施例で、本発明を適応した計算機やプログラマブル・コントローラに代表される、データ処理装置のメモリ制御に関連する部分の構成を示すブロック図である。CPU1は、高速アクセス可能なメモリで構成したキャッシュメモリ20を備えている。キャッシュメモリ20には、DRAM7の内容の写しを格納するが、命令とデータの区別はしていないものとする。本実施の形態においては、CPU1は32ビットアーキテクチャであるものとし、アドレスバスADDRと4バイト幅のデータバスDAT,バスの開始を示すバススタート信号BS_,アクセス空間を示す信号で通常複数接続した記憶素子を選択するためのチップセレクト信号CS0_,CS1_,CS2_を計3本備え、また、リードデータが無効の間、CPU1を停止させる手段として、ウェイト信号WAIT_の各端子を備えているものとする。なお、信号名の最後の“_”は、信号がローアクティブであることを示している。
FIG. 1 is a block diagram showing the configuration of a portion related to memory control of a data processing apparatus, represented by a computer or programmable controller to which the present invention is applied, according to an embodiment of the present invention. The
メモリであるDRAM7はページモードでアクセス可能なDRAMであり、行アドレスセレクト信号RAS_と列アドレスセレクト信号CAS_の動作で、アドレスバスAに出力された行アドレスと列アドレスに対応したリードデータを4バイト幅のデータバスDに出力する機能を備えている。メモリコントローラ2は、プリフェッチ状態管理部5,メモリシーケンサ4,プリフェッチバッファ6,セレクタ11で構成されている。
A DRAM 7 as a memory is a DRAM that can be accessed in the page mode. Read data corresponding to the row address and the column address output to the address bus A is 4 bytes by the operation of the row address select signal RAS_ and the column address select signal CAS_. A function of outputting to the width data bus D is provided. The memory controller 2 includes a prefetch state management unit 5, a memory sequencer 4, a prefetch buffer 6, and a
CPU1は、処理に必要な命令又はデータがキャッシュメモリ20に存在しない場合、メモリコントローラ2を介してDRAM7からデータを読み出す。この時、バススタート信号BS_を1サイクルアサートする。バススタート信号BS_のアサートと同時に、処理に必要な命令/データが格納されているアドレスをアドレス信号ADDRに出力する。更にこの時、この命令/データが格納されているメモリのアドレス領域を示すチップセレクト信号CS0_,CS1_,CS2_の何れか1信号をアサートするものとする。バススタート信号BS_,チップセレクト信号CS0_,CS1_,CS2_は、メモリコントローラ2のプリフェッチ状態管理部5に入力される。プリフェッチ状態管理部5は、チップセレクト信号CS0_,CS1_,CS2_のそれぞれが対応するアドレス領域に対して、DRAM7からデータをプリフェッチするか否かという2つのモードを制御するモードレジスタ8を備えている。即ち、本実施の形態では、プリフェッチを制御する領域の単位は各チップセレクト空間毎ということになる。
When the instruction or data necessary for processing does not exist in the
プリフェッチ状態管理部5はこのモードレジスタ8の値に従い、メモリシーケンサ4,プリフェッチバッファ6,出力セレクタ11を制御する。プリフェッチ状態管理部5からは、メモリシーケンサ4への起動信号REQ,起動信号REQによって要求したメモリアクセスがプリフェッチアクセスであるか否かを示すプリフェッチアクセス信号PRFが出力される。またDRAM7からデータバスDに有効なデータを出力していることを示すデータバリッド信号DVが入力される。
The prefetch state management unit 5 controls the memory sequencer 4, the prefetch buffer 6, and the
メモリシーケンサ4は、プリフェッチ状態管理部5からの起動信号REQとプリフェッチアクセス信号PRFに従い、行アドレスセレクト信号RAS_と列アドレスセレクト信号CAS_を制御して、DRAM7からデータを読み出す制御を行う。このメモリシーケンサ4は、行・列アドレス生成部51を備えている。行・列アドレス生成部51は、CPU1からのアドレスADDRに従い行アドレスと列アドレスを生成し、メモリシーケンサ4が出力する行アドレスセレクト信号RAS_と列アドレスセレクト信号CAS_の制御タイミングと同期してアドレスバスAに行アドレス・列アドレスを出力する。
The memory sequencer 4 controls the row address select signal RAS_ and the column address select signal CAS_ in accordance with the activation signal REQ and the prefetch access signal PRF from the prefetch state management unit 5 and performs control for reading data from the DRAM 7. The memory sequencer 4 includes a row / column
プリフェッチ状態管理部5は、プリフェッチバッファ6にデータをセットするプリフェッチバッファデータセット信号PBSETと、出力セレクタ11の出力を選択する出力セレクタ選択信号OPSELにより、プリフェッチバッファ6と出力セレクタ11を制御している。プリフェッチバッファ6は、1回のプリフェッチで先読みするデータを格納するため、4段のバッファから構成されている。本実施の形態においては、1回のプリフェッチはキャッシュ20の1エントリに格納されるデータ数であるキャッシュライン分のデータを先読みするものとする。そして1キャッシュラインは、32ビット(4バイト)データ4個分の16バイトであるものとする。従って、プリフェッチバッファの各段には、
32ビットデータ1つが格納されることになる。なおこのキャッシュラインのデータサイズはキャッシュの構成によって変わるものであり、本発明においてプリフェッチするデータサイズが16バイトに制限されるものではない。
The prefetch state management unit 5 controls the prefetch buffer 6 and the
One piece of 32-bit data is stored. Note that the data size of the cache line varies depending on the cache configuration, and the data size to be prefetched in the present invention is not limited to 16 bytes.
また、プリフェッチ状態管理部5は、プリフェッチバッファデータセット信号PBSET の値に従い、DRAM7がデータバスDに出力したデータを任意の段のバッファにセットする機能を備えている。具体的には、プリフェッチバッファデータセット信号PBSETが0のとき、DRAM7が出力するデータを1段目のバッファにセットし、信号PBSETが1のとき、DRAM7が出力するデータを2段目のバッファにセットし、信号PBSET が2のとき、3段目のバッファにDRAM7が出力するデータをセットし、信号PBSETが3の場合には、DRAM7が出力するデータを4段目のバッファにセットする。また、全てのバッファに格納されているデータは、すべて出力セレクタ11に出力されている。
The prefetch state management unit 5 has a function of setting the data output from the DRAM 7 to the data bus D in a buffer at an arbitrary stage according to the value of the prefetch buffer data set signal PBSET. Specifically, when the prefetch buffer data set signal PBSET is 0, the data output from the DRAM 7 is set in the first stage buffer, and when the signal PBSET is 1, the data output from the DRAM 7 is stored in the second stage buffer. When the signal PBSET is 2, the data output from the DRAM 7 is set in the third-stage buffer. When the signal PBSET is 3, the data output from the DRAM 7 is set in the fourth-stage buffer. Further, all data stored in all the buffers is output to the
出力セレクタ11は、DRAM7が出力するデータとプリフェッチバッファ6が出力するデータを、出力セレクタ選択信号OPSELの値に従って選択し、プロセッサデータバスDATに出力する。具体的には、信号OPSELが0のとき、プリフェッチバッファ6の1段目をプロセッサデータバスDATに出力し、信号OPSELが1の時には2段目のバッファ、信号OPSELが2の時は3段目のバッファ,信号OPSELが3のとき、4段目のバッファの値を各々プロセッサデータバスDATに出力する。
The
CPU1が実行するソフトウェアでは、データが以下の2つに分類されるものとする。1つは、配列や行列演算に用いるデータのように連続的にアクセスする可能性が非常に大きく、プリフェッチを行うことが有効なデータと、もう1つは、I/Oとデータを受渡しするためキャッシュメモリが使用できないデータや、処理するデータのサイズが小さいためプリフェッチを行うと不必要なメモリアクセスが多発するデータである。このような分類は、プログラムを作成する時にプログラム作成者が予め行うものとする。そして、プログラムをコンパイルしリンクする時に、プリフェッチを行うことが有効なデータを格納するDRAM7の領域と、プリフェッチを行うと不必要なアクセスが多発するデータを格納するDRAM7の領域を異なるチップセレクト空間に配置する。また命令は、プリフェッチを行うことが有効なデータを格納する領域に配置する。
In software executed by the
プログラムの初期化ルーチンにおいては、プリフェッチが有効なデータを格納する領域を示すチップセレクタ信号に対応したモードレジスタ8をプリフェッチアクセス可能モードに設定し、プリフェッチが不必要なデータを格納する領域を示すチップセレクタ信号に対応するモードレジスタ8をプリフェッチアクセス禁止モードに設定する。モードレジスタ8の値の設定手段は特に図示されていないが、ハードウェアによって決まるレジスタ空間内の特定のアドレスに対するCPU1からのアクセスによって行われる。
In the program initialization routine, the
モードレジスタ8は、チップセレクト空間毎に独立してチップセレクト信号の数だけ独立したレジスタとして、又はレジスタファイルの形で備えてもよいが、本実施の形態においては、チップセレクト空間毎にプリフェッチの可否を識別できればよいので、チップセレクト空間毎に1ビットの状態を記憶できる回路を設けても良いが、以下の説明では、少なくともチップセレクト信号数のビット幅を持った1つのレジスタの1ビット毎にチップセレクト空間を対応させることとして説明を行う。そして、モードレジスタ8の各ビットの値0/1を調べることにより、対応するチップセレクト空間におけるアクセスの際のプリフェッチの可否を判断するものとする。
The
図2は、プリフェッチ状態管理部5の構成を示したブロック図である。図2を用いてプリフェッチ状態管理部の詳細な機能を説明する。プリフェッチ状態管理部5は、状態管理部52,バッファ管理部53,アクセス判定部56,モードレジスタ8,比較器54とアドレスバッファ55から構成される。アクセス判定部56は、CPU1から出力されるチップセレクト信号CS0_,CS1_,CS2_とモードレジスタ8の値を入力とし、プリフェッチ可否判定結果信号JUGを出力する。プリフェッチ可否判定結果信号JUGは、チップセレクト信号CS0_,CS1_,CS2_とそれぞれのチップセレクト信号に対応するモードレジスタ8の設定値の論理積をとり、その結果の論理和をとったものである。プリフェッチ可否判定結果信号JUGは、現在アサートしているチップセレクト信号が示すメモリ領域がプリフェッチ可能に設定しているかプリフェッチ禁止に設定しているかを示し、プリフェッチ可能ならアサート、プリフェッチ禁止ならネゲートとなる信号である。
FIG. 2 is a block diagram showing the configuration of the prefetch state management unit 5. Detailed functions of the prefetch state management unit will be described with reference to FIG. The prefetch state management unit 5 includes a
アドレスバッファ55は、状態管理部52からのアドレスバッファセット信号ABSET がアサートされると、CPU1のアドレスバスADDRの値を保持するバッファである。比較器54は、アドレスバッファ55とCPU1のアドレスバスADDRの値を比較し、アドレスバッファ55の値とCPU1のアドレスバスADDRの値の各々下位4ビットを除く値が一致している場合、比較結果信号HITをアサートし、不一致ならネゲートする。ここで、下位4ビットを除いて値を比較するのは、一度にプリフェッチするデータが16バイトでありアドレスとしては下位4ビットの範囲に相当することから、同じプリフェッチ範囲のアドレスに対してアクセスしているかどうかを判定するために下位4ビットを除いてアドレス比較を行っている。
The
状態管理部52は、CPU1の出力信号であるバススタート信号BS_と、アクセス判定部56の判定結果であるプリフェッチ可否判定結果信号JUG及び、メモリシーケンサ4からのデータバリッド信号DVを入力として内部状態が遷移する状態遷移ブロックである。状態管理部52からは、その内部状態の遷移に従い、起動信号REQとプリフェッチアクセス信号PRFとアドレスバッファセット信号ABSETとウェイト信号WAIT_を出力し、更に、状態管理部52の内部状態を状態信号STに出力している。
The
図4にこの状態管理部52の状態遷移図を示す。状態100は、図1のプリフェッチバッファ6に格納しているデータが無効であることを示している状態である。状態101はプリフェッチアクセス信号PRFによりプリフェッチの開始を指示し、一番最初のデータの準備ができるまでのウェイト状態である。同様に状態102は、プリフェッチを開始し2つ目のデータをウェイトしている状態である。状態103,104も同様にそれぞれ3つ目,4つ目のデータをウェイトしている状態である。本実施の形態では1回のプリフェッチで4つのデータを先読みするため、各々のデータの準備ができるまで一旦ウェイトする状態が4つあることになる。状態106は、プリフェッチが開始されプリフェッチバッファ6に有効なデータが4つ格納されたことを示す状態である。これに対し、状態105は、プリフェッチアクセスを実行せずにCPUが要求しているデータのみをアクセスしていることを示す単発アクセス状態である。従って、起動信号REQは状態101,102,103,104及び105の時にアサートされ、プリフェッチアクセス信号PRFは、状態101,102,103,104の時にアサートされ、メモリシーケンサ4に伝えられる。又、状態100から状態101へ、状態100から状態105へ、状態106から状態101へ、そして状態106から状態105へと遷移する時、即ちプリフェッチ開始を指示するか単発アクセスを行う際に、アドレスバッファセット信号ABSETをアサートし、アドレスバッファ55にCPU1のアドレスバスADDRの値を保持させる。
FIG. 4 shows a state transition diagram of the
これらはプリフェッチの状態に関する内部状態であるが、これらの内部状態とは別に
CPUからの要求状態を示す内部状態として状態107,108がある。状態107は、CPUからのアクセス要求が受付可能な状態である。状態108はCPUが要求しているデータの準備ができていないため、CPUをデータ待ちにしていることを示す状態である。ウェイト信号WAIT_は状態107から状態108へ遷移する時と状態108のときアサートされ、CPU1に通知される。
These are internal states related to the prefetch state, but there are
次に、各状態の遷移を説明する。状態管理部52の初期状態は、まだ一度もCPU1からのアクセス要求がなく、プリフェッチされたデータもなく、いつでもCPU1からのアクセス要求を受け付けられる状態にあるため、状態100及び状態107にある。
Next, each state transition will be described. The initial state of the
まず、プリフェッチに関する状態の遷移としては、状態100から状態101へ遷移する遷移条件は、バススタート信号BS_がアサートであり、かつプリフェッチ可否判定結果信号JUGがアサートされることである。即ち、CPU1からのアクセス要求が発生し、アクセスで指示されたアドレスを含むチップセレクタ空間に対応したモードレジスタ8の値がプリフェッチを行う状態を示している場合である。これに対し、状態100から状態105へ遷移する遷移条件は、バススタート信号BS_がアサートであり、かつプリフェッチ可否判定結果信号JUGがネゲートの場合である。状態101から状態102,状態102から状態103,状態103から状態104,状態104から状態106,状態105から状態100へ遷移する条件は、メモリシーケンサ4からのデータバリッド信号DVがアサートである。即ち、各データ要求に対して出力されるメモリからのデータが有効になった場合である。状態106から状態101へ遷移する遷移条件は、バススタート信号BS_がアサート又は状態108であり、かつ、比較結果信号HITがネゲート、かつ、プリフェッチ可否判定結果信号JUGがアサートである。即ち、CPU1からのアクセスが発生し、アドレスバッファ55に格納されているこれまで先読みしていたアドレスの範囲と今度のアクセスのアドレスが重ならず、かつ、今度のアクセスがプリフェッチを行う領域に対するアクセスの場合である。一方、状態106から状態105へ遷移する遷移条件は、バススタート信号BS_がアサート又は状態108であり、かつ、プリフェッチ可否判定結果信号JUGがネゲートの場合である。これは、状態100から状態105へ遷移する遷移条件と同じで、CPU1からのアクセスが発生し、かつアクセスがプリフェッチを行わない領域に対するものであった場合である。
First, as a state transition related to prefetching, the transition condition for transitioning from
次に、状態107から状態108への遷移条件は、1)バススタート信号BS_がアサートでプリフェッチ可否判定結果信号JUGがネゲートであるか、又は、2)比較器54の比較結果信号HITがアサートでプリフェッチ可否判定結果信号JUGがアサート、かつ状態101,102,103,104のいずれかの状態であり、なおかつCPU1のADDRと現在の状態により読み出すデータがプリフェッチバッファ6にセットされていないと判定された場合、のいずれかである。CPU1が読み出すデータがプリフェッチバッファ6にセットされているかどうかは、例えば、内部状態が状態102であれば、アドレスバッファ55の示すアドレスに格納されている値がプリフェッチバッファ6に既にセット済であるかどうかにより判別することができる。また、内部状態が状態102であれば、アドレスバッファ55の示すアドレスとアドレスバッファ55の示すアドレスの次に格納されている値がいずれもプリフェッチバッファ6に既にセット済であるかどうかにより判別することができる。他の状態についても、同様にして判別が可能である。状態108から状態107への遷移条件は、必要なデータがプリフェッチバッファ6にセットしてあるか、又は、状態105でデータバリッド信号DVがアサートである。
Next, the transition condition from the
バッファ管理部53は、前述の状態管理部52の内部状態を示す状態信号STと、CPU1からのアドレスバスADDRの下位4ビットと、比較器54の比較結果信号HITとを入力とし、プリフェッチバッファ6にデータをセットするプリフェッチバッファセット信号PBSETと出力セレクタ11の出力選択信号OPSELを出力する論理ブロックである。信号OPSELはプリフェッチで先読みする1キャッシュラインのデータ個数に対応して0から3の4つの値を持ち、信号HITがネゲートしている場合0を出力する。また、信号HITがアサートしている場合、アドレスバスADDRの下位4ビットをデコードした結果を出力する。同様に、プリフェッチバッファセット信号PBSETも、0から3の4つの値を持ち、状態信号STの値により、状態管理部52が図4の状態102である場合は1、状態管理部52が図4の状態103である場合には2、状態管理部52が図4の状態104である場合は3、そしてそれ以外の状態の場合には0をアサートする。
The
図5は、メモリシーケンサ4の動作を状態遷移図として示したものである。状態110はアイドル状態であり、プリフェッチ状態管理部5からの起動信号REQを待っている状態を示す。状態111は、行アドレスアクセス状態を示し、CPU1からアクセスされたアドレスに対応するDRAM7のRASアドレスをアドレスバスAに出力し、行アドレスセレクト信号RAS_をアサートする状態である。状態112は、1回目の列アドレスアクセス状態を示し、CPU1からアクセスされたアドレスに対応するDRAM7のCASアドレスをアドレスバスAに出力し、列アドレスセレクト信号CAS_をアサートする状態である。状態113,114,115は、それぞれプリフェッチにより先行して行う2回目,3回目,4回目の行アドレスアクセス状態を示している。メモリシーケンサ4の初期状態は状態110である。状態110から状態111への遷移条件は、起動信号REQのアサートである。これによりDRAM7へのアクセスが開始される。
FIG. 5 shows the operation of the memory sequencer 4 as a state transition diagram. A
状態111,状態112,状態113,状態114,状態115から次の状態に遷移する遷移条件は、DRAM7のアクセス時間で決定され、DRAM7のアクセス時間が経過する毎に次の状態に遷移する。特に状態112においては、DRAM7のアクセス時間が経過した時に、プリフェッチアクセス信号PRFがアサートしていれば状態112から状態113へ遷移し、ネゲートであれば状態112から状態110へ遷移する。即ち、
DRAM7からデータを1つアクセスした後、プリフェッチが指示されていれば、引き続き同じRASアドレスの下で先読み対象となるデータのCASアドレスを出力して、1キャッシュライン分のデータに対し連続してアクセスすることになる。なお、データバリッド信号DVは、CASアドレスが出力されDRAM7から読み出されたデータが確定して1データ分のアクセスが完了する状態112,113,114,115から次の状態への遷移の際にアサートされる。
The transition condition for transitioning from
If prefetch is instructed after accessing one data from the DRAM 7, the CAS address of the data to be prefetched is continuously output under the same RAS address, and the data for one cache line is continuously accessed. Will do. The data valid signal DV is output at the time of transition from the
図3に図1に示すメモリコントローラ2の動作を示したタイミングチャートを示す。図1のCPU1及びメモリコントローラ2は、図1には図示されていないクロック信号CLKに同期して動作するものとし、CPU1のCS0_によって選択されるDRAMチップのアドレス空間に対応する領域(以下、CS0_領域と呼ぶ。他も同様である)は、プリフェッチ禁止モード、CS1_領域はプリフェッチ可能モードに設定しているものとする。
FIG. 3 is a timing chart showing the operation of the memory controller 2 shown in FIG. The
はじめに、CPU1は、CS0_領域のアドレスADDR1にアクセスするものとする。この場合、BS_,CS0_をアサートし、ADDRにはアドレスADDR1を出力する。メモリコントローラ2のプリフェッチ状態管理部5は、ADDR1のデータが準備できるまで、即ちデータバスDAT上でデータが確定するまでWAIT_をアサートする。同時にメモリシーケンサ4にREQをアサートして、アクセスの発生を通知する。この時、CS0_領域は、プリフェッチ禁止モードに設定しているので、プリフェッチアクセス信号PRFはアサートしない。メモリシーケンサ4は、CPU1からアクセスされたアドレスADDR1に対応する行アドレスR1をアドレスバスAに出力し、RAS_をアサートする。次に、ADDR1の列アドレスC1をアドレスバスAに出力し、CAS_をアサートしてDRAM7に対するアクセスアドレスを確定する。このメモリコントローラ2の動作によりDRAM7はADDR1に対応するデータD1をメモリデータバスDに出力する。そこでメモリシーケンサ4はメモリデータバスDにデータD1が出力されたタイミングで、フェッチ状態管理部6にデータバリッド信号DVをアサートする。
First, it is assumed that the
プリフェッチ状態管理部5では、データバリッド信号DVがアサートされたことにより、ウェイト信号WAIT_をネゲートし、セレクタ11はCPU1のプロセッサデータバスDATに、メモリデータバスDに出力されているデータD1を出力する。
In the prefetch state management unit 5, when the data valid signal DV is asserted, the wait signal WAIT_ is negated, and the
次に、CPU1がCS1_領域のアドレスADDR5にアクセスするものとする。CS1_領域はプリフェッチ可能モードに設定しているので、プリフェッチ状態管理部5はPRFをアサートする。メモリシーケンサ4は、アドレスADDR5の対応する行アドレスR5をアドレスバスAに出力し、RAS_をアサートする。続いて、ADDR5に対応する列アドレスC5を出力しCAS_をアサートする。この時PRFがアサートされているため更に、アドレスバスAにC6,C7,C8と連続に出力し、CAS_も各列アドレスの出力に対応してアサート/ネゲートを同様に繰り返す。ここで、列アドレスC6は、列アドレスC5に1加算した値であり、C7はC6に1加算、C8はC7に1加算したものである。また、行アドレスR5と列アドレスC5に対応するデータがD5であり、行アドレスR5と列アドレスC6に対応するデータがD6であり、行アドレスR5と列アドレスC7に対応するデータがD7であり、行アドレスR5と列アドレスC8に対応するデータが
D8である。そして、これらデータD5〜D8が連続してメモリデータバスDに出力される。
Next, it is assumed that the
また、CS1_領域をプリフェッチ可能モードに設定し、このCS1_領域に格納する命令やデータが、配列や行列演算に用いるデータのように連続的にアクセスする可能性が非常に大きく、プリフェッチを行うことが有効なデータか命令である場合、次に、ADDR5に続いてADDR6に対するアクセスが生じる可能が高い。このADDR6の行アドレスはR5であり、列アドレスはC6である。つまり、ADDR6に対応するデータはD6であり、仮にCPU1が次にADDR6にアクセスすると、このデータは既にDRAM7から読み出しプリフェッチバッファ6に格納してあるため、CPU1にウェイト信号WAIT_をアサートすることなくプロセッサデータバスにD6を出力することが可能になる。さらに、CS0_領域に対しては、プリフェッチ動作を行わないため、メモリデータバスDにD1を出力してからD5を出力するまでの間、DRAM7はアイドル状態になる。つまり、新たに不要なメモリアクセスが生じないため、DRAM7の効率が向上し、システム全体のデータ処理能力が向上する。
In addition, the CS1_ area is set to a prefetchable mode, and it is very likely that instructions and data stored in the CS1_ area are continuously accessed like data used for an array or matrix operation. If it is valid data or an instruction, then it is highly likely that access to ADDR6 will occur following ADDR5. The row address of ADDR6 is R5 and the column address is C6. In other words, the data corresponding to ADDR6 is D6. If CPU1 next accesses ADDR6, this data is already read from DRAM 7 and stored in prefetch buffer 6. Therefore,
以上の説明においては、チップセレクト信号はDRAM7を所定の領域に分割した際に、CPU1からのアクセスがこれら分割した領域のどこに対するアクセスなのかを識別する意味で用いてきたが、チップセレクト信号をその本来の意味で用いて、メモリを構成するDRAMチップ自体を区別するように用いてもよい。この場合、メモリチップ毎にプリフェッチの実行/非実行を制御することになる。これによりメモリ構成に応じたプリフェッチの制御を行うことが可能となる。
In the above description, the chip select signal has been used to identify where the access from the
図6は、図1で説明したモードレジスタ8の設定を実際にアクセスしたアドレスを元に変更を行う機能を備えた実施の形態である。この実施の形態ではプリフェッチ状態管理部5の内部に、モードレジスタ8の値を変更するアクセス監視部70を備えている。アクセス監視部70は、チップセレクト信号CS0_,CS1_,CS2_,バススタート信号BS_、そして比較結果信号HITを入力とし、出力としてチップセレクト信号CS0_,CS1_,CS2_に対応するモードレジスタ8の値をそれぞれセットする信号であるSet0,Set1,Set2と、同様にリセットする信号であるRset0,Rset1,Rset2のいずれか1つをアサートする。
FIG. 6 shows an embodiment provided with a function for changing the setting of the
図7はアクセス監視部70の内部の概要を示した図である。アクセス監視部70は、連続アクセス判定論理71とモードレジスタ選択論理72で構成される。図8は連続アクセス判定論理71の動作を説明するための状態遷移図である。連続アクセス判定論理71の初期状態は、状態910である最初にアクセスが行われる1回目の状態である。次にCPU1からのアクセスが開始されると、前回アクセスしたアドレスと今回アクセスするアドレスとが下位4ビットを除いて一致していることを示しているHIT信号がアサートしていて、なおかつ、前回アクセスしたチップセレクト空間と同一チップセレクト信号がアサートしている場合、即ち最初のアクセスと同じキャッシュラインの範囲で続いてアクセスが行われた場合、状態911である連続2回目アクセス状態へ遷移する。この状態は、同一プリフェッチ範囲に対して連続して2回のアクセスが行われた状態である。この状態911において、更にCPU1が同一チップセレクト空間にアクセスし、同様に前回アクセスしたアドレスと今回アクセスするアドレスが下位4ビットを除いて一致していることを示すHIT信号がアサートしていると、状態912である連続3回目アクセス状態に遷移する。この状態は即ち連続3回のアクセスが同じプリフェッチ範囲に対して行われた状態である。また連続3回目アクセス状態に遷移する条件が成立しないCPU1のアクセスが生じる初期状態である状態910に遷移する。状態912の連続3回目アクセス状態においても、同様に、CPU1が同一チップセレクト空間にアクセスし、更に、HIT信号がアサートしていると、状態913である連続4回目アクセス状態に遷移し、一方、状態913に遷移しないCPU1のアクセスが生じると状態910に遷移する。
FIG. 7 is a diagram showing an outline of the inside of the
状態913では、CPU1がアクセスを開始すると状態910に遷移する。しかし状態913から状態910へ遷移する時、連続アクセス判定論理71は、プリフェッチ可能信号PFONをアサートする。また、状態911又は状態912から状態910に遷移する時には、連続アクセス判定論理71は、プリフェッチ禁止信号PFOFFをアサートする。即ち、1キャッシュライン分のデータをアクセスしたとき、そのアクセスの全てが同一プリフェッチ範囲内に対するアクセスであれば、そのアクセスが行われたチップセレクト空間にはプリフェッチが有効なデータが格納されているものと判断して、連続アクセス判定論理71はプリフェッチ可能信号PFONをアサートするが、そうでなければ、そのチップセレクト空間にはプリフェッチが無効であると判断して、プリフェッチ禁止信号
PFOFFをアサートする。
In the
モードレジスタ選択論理72は、前回アクセスしたチップセレクト信号を保持する機能を備え、PFON信号がアサートすると、保持しているチップセレクト信号に対応するモードレジスタ8のセット信号であるSet0,Set1,Set2 のいずれかをアサートする。またPFOFF信号がアサートすると、保持しているチップセレクト信号に対応するモードレジスタ8のリセット信号であるRset0,Rset1,Rset2のいずれかをアサートする。なお、モードレジスタ8はセットされると、プリフェッチアクセス可能モードを示し、リセットするとプリフェッチアクセス禁止モードを示すものとする。この様に、モードレジスタ8の設定を実際にアクセスしたアドレスの状態に基づいて変更し、各チップセレクト空間に対してプリフェッチ処理の実行の有無を自動的に設定することができる。
The mode
以上の実施の形態ではいずれもメモリにDRAMを用いた場合を説明してきたが、本発明はメモリがDRAMに限定されるものではなく、SDRAM,PBRAM等、一般の半導体メモリに代表される記憶素子に適用することができ、その場合の構成も本実施の形態と同様のものとなる。また、上述の実施の形態においてはアクセスを行うデータは同じ
DRAMに連続して格納されているものとして説明してきたが、メモリはインターリーブ構成を採ることも可能である。この場合は、連続するアドレスを構成するメモリチップ同士のプリフェッチの実行/非実行が一致するようにモードレジスタ8を設定することにより実現できる。
In the above embodiments, the case where a DRAM is used as a memory has been described. However, the present invention is not limited to a DRAM, and a storage element represented by a general semiconductor memory such as an SDRAM or a PBRAM. The configuration in that case is the same as that of this embodiment. In the above-described embodiments, the data to be accessed has been described as being continuously stored in the same DRAM. However, the memory may have an interleave configuration. In this case, it can be realized by setting the
前述の実施の形態では、いずれもプリフェッチの可否を識別するためにCPU1からのチップセレクト信号を用いているが、システムによっては、CPUがアクセスするアドレスの上位ビットによってチップセレクト信号が決まるため、CPU1からプリフェッチ状態管理部5への入力はアドレスバスADDRとバススタート信号BS_だけでもかまわない。この場合アクセス判定部56では、アドレスバスADDRからのアドレスデータを元にチップセレクタ空間を求める処理が必要となる。これにより、CPU1の信号ピンの数を減らすことができる。しかし、アドレスバスADDRに出力されるアドレスデータが静定する時間とアドレスデータからチップセレクタ空間を求めるための処理により遅延が発生してしまう。
In each of the above-described embodiments, the chip select signal from the
また、前述の実施の形態では、プリフェッチを制御する領域の単位がチップセレクト空間と一致していたが、例えばプリフェッチ状態管理部5のモードレジスタ8を、各領域の境界を格納するアドレスレジスタとし、プリフェッチ状態管理部5に入力されるCPU1のアクセスしたアドレスADDRの値をモードレジスタ8に格納された領域境界のアドレスと比較することにより、任意サイズの領域毎にプリフェッチを制御することができる。この場合、メモリを2つの領域に分ける場合はモードレジスタ8が1つ、メモリを3つの領域に分ける場合はモードレジスタ8が2つと言うように、モードレジスタ8は分割する領域の数−1個必要になり、またそれだけアドレスADDRの値との比較が増えることになるため、アクセス判定部56における処理が複雑になり、またレジスタ数も増えることから回路規模が大きくなってしまう。
In the above-described embodiment, the unit of the area for controlling the prefetch coincides with the chip select space. For example, the
本発明においては、プリフェッチを行うことが有効なデータを格納するメモリ領域と、プリフェッチを行うと不必要なアクセスが多発するデータを格納するメモリ領域を、異なるチップセレクト空間に配置しているが、プリフェッチを行うことが有効なデータと、プリフェッチを行うと不必要なアクセスが多発するデータを分類しない場合、以下のようにプログラムを作成する。 In the present invention, a memory area for storing data effective for prefetching and a memory area for storing data that frequently requires unnecessary access when prefetching are arranged in different chip select spaces. When data that is effective for prefetching and data that frequently requires unnecessary access when prefetching is not classified, a program is created as follows.
まずプログラムの初期化処理の際に、全てのモードレジスタ8をプリフェッチアクセス可能モードに予め設定しておく。その後、処理対象となるデータがプリフェッチを行うと不必要なアクセスが多発するデータである処理を実行する場合、その処理を行う直前に、該当するデータを格納するアドレスを示すチップセレクト信号に対応するモードレジスタ8をプリフェッチアクセス禁止モードに設定する命令を記述しておく。更に、プリフェッチを行うと不必要なアクセスが多発するデータの処理が終了した時、先にプリフェッチアクセス禁止モードにセットしたモードレジスタ8の値をプリフェッチアクセス可能モードに戻す命令をその処理の終わりに記述しておく。これによりプログラムで明示的にプリフェッチを実行するか否かを記述することができる。
First, at the time of program initialization processing, all the mode registers 8 are set in a prefetch accessible mode in advance. After that, when executing processing in which data to be processed is data in which unnecessary access frequently occurs when prefetching is performed, it corresponds to a chip select signal indicating an address for storing the corresponding data immediately before performing the processing. An instruction for setting the
なお、以上の実施の形態においては、メモリコントローラ2はCPU1と独立して設けられていたが、メモリコントローラ2内のプリフェッチを制御するメモリシーケンサ4,プリフェッチ状態管理部5,プリフェッチバッファ6,セレクタ11は、キャッシュメモリ20と主メモリDRAM7の間にあればよく、キャッシュメモリ20とともにCPU1内に設けてもよい。逆に、キャッシュメモリ20はCPUに対して外付けで設けても良い。
In the above embodiment, the memory controller 2 is provided independently of the
以上説明したように本発明によって、プログラムやデータを格納する領域を分割し、各領域毎にプリフェッチを行うか否かを制御することが可能になる。よって、データアクセスにおいてもプリフェッチ機能を動作させると有効に動作するデータが格納された領域に対するアクセス場合にはプリフェッチ機能を動作させ、プリフェッチアクセス機能を動作させると不必要なデータをプリフェッチしてしまいメモリアクセス性能を低下させてしまうデータが格納された領域に対するアクセス場合には、プリフェッチ機能を抑止することにより、メモリアクセスの効率を向上することが可能になる。 As described above, according to the present invention, it is possible to divide an area for storing a program and data and control whether to perform prefetch for each area. Therefore, even in data access, if the prefetch function is operated, the prefetch function is operated when accessing an area storing data that operates effectively, and unnecessary data is prefetched when the prefetch access function is operated. In the case of accessing an area in which data that degrades the access performance is stored, the memory access efficiency can be improved by suppressing the prefetch function.
以上のように、本発明にかかるメモリ制御装置は、データアクセスにおいてプリフェッチ機能を制御することにより、効率の良いメモリシステムとして有用であり、データ処理装置のメモリ制御に用いるのに適している。 As described above, the memory control device according to the present invention is useful as an efficient memory system by controlling the prefetch function in data access, and is suitable for use in memory control of the data processing device.
Claims (1)
前記メモリ制御装置は、プロセッサからメモリに対するアクセスの際にプリフェッチを行うか否かを決定するプリフェッチ管理手段を備え、
前記メモリのアドレス空間は複数の管理領域に分割され、
前記プリフェッチ管理手段は、前記各管理領域毎にプリフェッチを制御するためのレジスタを備え、
前記プロセッサから前記メモリに対してアクセスが行われた時、アクセスするアドレスが含まれる管理領域に対応する前記レジスタの値に基づき、当該アクセスにおいてプリフェッチを行うか否かを決定するものであって、
前記プリフェッチ管理手段は、プロセッサからの所定の回数の連続したアクセスが同一のプリフェッチ範囲に対して行われた場合、当該プリフェッチ範囲を含む管理領域に対応する前記レジスタを当該管理領域に対してプリフェッチを行うように設定する手段を備えたことを特徴とするメモリ制御装置。 In a memory control device that is disposed between a processor and a memory and includes a prefetch unit that performs prefetching and a storage unit that stores a prefetch result when accessing the memory from the processor,
The memory control device includes prefetch management means for determining whether to perform prefetching when accessing a memory from a processor,
The address space of the memory is divided into a plurality of management areas,
The prefetch management means includes a register for controlling prefetch for each management area,
When accessing the memory from the processor, based on the value of the register corresponding to the management area containing the address to be accessed, whether to perform prefetch in the access ,
The prefetch management means prefetches the register corresponding to the management area including the prefetch range with respect to the management area when a predetermined number of consecutive accesses from the processor are performed on the same prefetch range. A memory control device comprising means for setting to perform.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1999/003669 WO2001004760A1 (en) | 1999-07-07 | 1999-07-07 | Memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3956698B2 true JP3956698B2 (en) | 2007-08-08 |
Family
ID=14236172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001510096A Expired - Fee Related JP3956698B2 (en) | 1999-07-07 | 1999-07-07 | Memory control device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3956698B2 (en) |
WO (1) | WO2001004760A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6871246B2 (en) * | 2003-05-07 | 2005-03-22 | Freescale Semiconductor, Inc. | Prefetch control in a data processing system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0449540B1 (en) * | 1990-03-27 | 2000-05-17 | Digital Equipment Corporation | Memory system and method with prefetch buffer |
JPH04326437A (en) * | 1991-04-26 | 1992-11-16 | Mitsubishi Electric Corp | Information processor |
JP2881049B2 (en) * | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | Prefetch buffer |
JPH06103169A (en) * | 1992-09-18 | 1994-04-15 | Nec Corp | Read data prefetching mechanism for central arithmetic processor |
JPH06295263A (en) * | 1993-04-08 | 1994-10-21 | Mitsubishi Electric Corp | Memory system |
JPH07210454A (en) * | 1994-01-25 | 1995-08-11 | Sharp Corp | High-speed processor |
JPH08137754A (en) * | 1994-11-10 | 1996-05-31 | Fuji Xerox Co Ltd | Disk cache device |
-
1999
- 1999-07-07 WO PCT/JP1999/003669 patent/WO2001004760A1/en active Application Filing
- 1999-07-07 JP JP2001510096A patent/JP3956698B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2001004760A1 (en) | 2001-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5265236A (en) | Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode | |
US5367494A (en) | Randomly accessible memory having time overlapping memory accesses | |
US7590774B2 (en) | Method and system for efficient context swapping | |
JP2000242558A (en) | Cache system and its operating method | |
JP2002526861A (en) | Memory controller with programmable delay counter for tuning performance based on timing parameters of controlled memory storage | |
JP2006024233A (en) | Structure of reduced instruction set-computer microprocessor | |
JP2003501747A (en) | Programmable SRAM and DRAM cache interface | |
US5860117A (en) | Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests | |
JP3956698B2 (en) | Memory control device | |
KR960007833B1 (en) | Method and apparatus for fast page mode selection | |
US6954873B2 (en) | Implementation of wait-states | |
KR100417548B1 (en) | Integrated cache memory and how to provide data to memory devices in digital memory | |
US5916311A (en) | Bus controller and information processing device providing reduced idle cycle time during synchronization | |
JP4024247B2 (en) | Semiconductor data processor | |
US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
KR930003443B1 (en) | Computer system | |
JP2007328910A (en) | Main memory system with multiple data paths | |
KR100334298B1 (en) | Memory device | |
JP2004094807A (en) | Instruction cache, microprocessor, and design method for same | |
US6356976B1 (en) | LSI system capable of reading and writing at high speed | |
JP2851777B2 (en) | Bus control method and information processing device | |
JP2007108882A (en) | Memory controller, memory-controlling method, and information processing device | |
JPH0594376A (en) | Portable computer | |
US20040103267A1 (en) | Data processor having cache memory | |
JP2004326633A (en) | Hierarchical memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040311 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
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: 20070417 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070430 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |