JP3956698B2 - Memory control device - Google Patents

Memory control device Download PDF

Info

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
Application number
JP2001510096A
Other languages
Japanese (ja)
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP3956698B2 publication Critical patent/JP3956698B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing 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.

特開平5−271673号公報JP-A-5-271673 特開平10−55307号公報Japanese Patent Laid-Open No. 10-55307

日本国特開平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 CPU 1 includes a cache memory 20 composed of a memory that can be accessed at high speed. The cache memory 20 stores a copy of the contents of the DRAM 7, but it is assumed that there is no distinction between an instruction and data. In the present embodiment, the CPU 1 is assumed to have a 32-bit architecture, and usually a plurality of memories are connected by an address bus ADDR, a 4-byte data bus DAT, a bus start signal BS_ indicating the start of the bus, and a signal indicating the access space. Assume that three chip select signals CS0_, CS1_, CS2_ for selecting elements are provided in total, and each terminal of the wait signal WAIT_ is provided as means for stopping the CPU 1 while the read data is invalid. Note that “_” at the end of the signal name indicates that the signal is low active.

メモリである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 selector 11.

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 cache memory 20, the CPU 1 reads data from the DRAM 7 via the memory controller 2. At this time, the bus start signal BS_ is asserted for one cycle. Simultaneously with the assertion of the bus start signal BS_, an address in which an instruction / data necessary for processing is stored is output to the address signal ADDR. Further, at this time, one of the chip select signals CS0_, CS1_, CS2_ indicating the address area of the memory storing the instruction / data is asserted. The bus start signal BS_ and the chip select signals CS0_, CS1_, CS2_ are input to the prefetch state management unit 5 of the memory controller 2. The prefetch state management unit 5 includes a mode register 8 that controls two modes of whether or not to prefetch data from the DRAM 7 for the address areas corresponding to the chip select signals CS0_, CS1_, and CS2_. That is, in this embodiment, the unit of the area for controlling the prefetch is for each chip select space.

プリフェッチ状態管理部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 output selector 11 in accordance with the value of the mode register 8. The prefetch state management unit 5 outputs a start signal REQ to the memory sequencer 4 and a prefetch access signal PRF indicating whether the memory access requested by the start signal REQ is a prefetch access. A data valid signal DV indicating that valid data is being output from the DRAM 7 to the data bus D is input.

メモリシーケンサ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 address generation unit 51. The row / column address generation unit 51 generates a row address and a column address in accordance with the address ADDR from the CPU 1 and synchronizes with the control timing of the row address select signal RAS_ and the column address select signal CAS_ output from the memory sequencer 4. A row address and column address are output to A.

プリフェッチ状態管理部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 output selector 11 by a prefetch buffer data set signal PBSET that sets data in the prefetch buffer 6 and an output selector selection signal OPSEL that selects the output of the output selector 11. . The prefetch buffer 6 is composed of four stages of buffers for storing prefetched data in one prefetch. In the present embodiment, it is assumed that one prefetch prefetches data for a cache line that is the number of data stored in one entry of the cache 20. One cache line is 16 bytes for four 32-bit (4 bytes) data. Therefore, in each stage of the prefetch buffer,
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 output selector 11.

出力セレクタ11は、DRAM7が出力するデータとプリフェッチバッファ6が出力するデータを、出力セレクタ選択信号OPSELの値に従って選択し、プロセッサデータバスDATに出力する。具体的には、信号OPSELが0のとき、プリフェッチバッファ6の1段目をプロセッサデータバスDATに出力し、信号OPSELが1の時には2段目のバッファ、信号OPSELが2の時は3段目のバッファ,信号OPSELが3のとき、4段目のバッファの値を各々プロセッサデータバスDATに出力する。   The output selector 11 selects the data output from the DRAM 7 and the data output from the prefetch buffer 6 according to the value of the output selector selection signal OPSEL, and outputs it to the processor data bus DAT. Specifically, when the signal OPSEL is 0, the first stage of the prefetch buffer 6 is output to the processor data bus DAT. When the signal OPSEL is 1, the second stage buffer is output. When the signal OPSEL is 2, the third stage is output. And the signal OPSEL is 3, the value of the buffer at the fourth stage is output to the processor data bus DAT.

CPU1が実行するソフトウェアでは、データが以下の2つに分類されるものとする。1つは、配列や行列演算に用いるデータのように連続的にアクセスする可能性が非常に大きく、プリフェッチを行うことが有効なデータと、もう1つは、I/Oとデータを受渡しするためキャッシュメモリが使用できないデータや、処理するデータのサイズが小さいためプリフェッチを行うと不必要なメモリアクセスが多発するデータである。このような分類は、プログラムを作成する時にプログラム作成者が予め行うものとする。そして、プログラムをコンパイルしリンクする時に、プリフェッチを行うことが有効なデータを格納するDRAM7の領域と、プリフェッチを行うと不必要なアクセスが多発するデータを格納するDRAM7の領域を異なるチップセレクト空間に配置する。また命令は、プリフェッチを行うことが有効なデータを格納する領域に配置する。   In software executed by the CPU 1, data is classified into the following two types. One is very likely to be accessed continuously, such as data used for array and matrix operations, and the other is for prefetching, and the other is for passing I / O and data. This is data that cannot be used in the cache memory or data that requires unnecessary memory access frequently when prefetching is performed because the size of data to be processed is small. Such classification is performed in advance by a program creator when a program is created. Then, when compiling and linking the program, the area of the DRAM 7 that stores data that is effective for prefetching and the area of the DRAM 7 that stores data that frequently requires unnecessary access when prefetching are stored in different chip select spaces. Deploy. The instruction is arranged in an area for storing data that is effective for prefetching.

プログラムの初期化ルーチンにおいては、プリフェッチが有効なデータを格納する領域を示すチップセレクタ信号に対応したモードレジスタ8をプリフェッチアクセス可能モードに設定し、プリフェッチが不必要なデータを格納する領域を示すチップセレクタ信号に対応するモードレジスタ8をプリフェッチアクセス禁止モードに設定する。モードレジスタ8の値の設定手段は特に図示されていないが、ハードウェアによって決まるレジスタ空間内の特定のアドレスに対するCPU1からのアクセスによって行われる。   In the program initialization routine, the mode register 8 corresponding to the chip selector signal indicating the area for storing the data for which prefetch is valid is set to the prefetch accessible mode, and the chip for indicating the area for storing the data not requiring prefetch. The mode register 8 corresponding to the selector signal is set to the prefetch access inhibition mode. A means for setting the value of the mode register 8 is not particularly shown, but is performed by the CPU 1 accessing a specific address in the register space determined by hardware.

モードレジスタ8は、チップセレクト空間毎に独立してチップセレクト信号の数だけ独立したレジスタとして、又はレジスタファイルの形で備えてもよいが、本実施の形態においては、チップセレクト空間毎にプリフェッチの可否を識別できればよいので、チップセレクト空間毎に1ビットの状態を記憶できる回路を設けても良いが、以下の説明では、少なくともチップセレクト信号数のビット幅を持った1つのレジスタの1ビット毎にチップセレクト空間を対応させることとして説明を行う。そして、モードレジスタ8の各ビットの値0/1を調べることにより、対応するチップセレクト空間におけるアクセスの際のプリフェッチの可否を判断するものとする。   The mode register 8 may be provided as a register independent of the number of chip select signals independently for each chip select space or in the form of a register file. In the present embodiment, the prefetch is performed for each chip select space. Since it is only necessary to identify whether or not it is possible, a circuit capable of storing a 1-bit state may be provided for each chip select space. However, in the following description, each bit of one register having at least the bit width of the number of chip select signals is provided. In the following description, it is assumed that the chip select space is associated. Then, by checking the value 0/1 of each bit of the mode register 8, it is determined whether or not prefetching is possible when accessing the corresponding chip select space.

図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 state management unit 52, a buffer management unit 53, an access determination unit 56, a mode register 8, a comparator 54, and an address buffer 55. The access determination unit 56 receives the chip select signals CS0_, CS1_, CS2_ output from the CPU 1 and the value of the mode register 8 and outputs a prefetch enable / disable determination result signal JUG. The prefetch enable / disable determination result signal JUG is obtained by taking the logical product of the chip select signals CS0_, CS1_, CS2_ and the set values of the mode register 8 corresponding to the respective chip select signals, and taking the logical sum of the results. The prefetch enable / disable judgment result signal JUG indicates whether the memory area indicated by the currently asserted chip select signal is set to be prefetchable or set to prefetch prohibition, and is asserted when prefetch is possible, and is negated when prefetch is prohibited. It is.

アドレスバッファ55は、状態管理部52からのアドレスバッファセット信号ABSET がアサートされると、CPU1のアドレスバスADDRの値を保持するバッファである。比較器54は、アドレスバッファ55とCPU1のアドレスバスADDRの値を比較し、アドレスバッファ55の値とCPU1のアドレスバスADDRの値の各々下位4ビットを除く値が一致している場合、比較結果信号HITをアサートし、不一致ならネゲートする。ここで、下位4ビットを除いて値を比較するのは、一度にプリフェッチするデータが16バイトでありアドレスとしては下位4ビットの範囲に相当することから、同じプリフェッチ範囲のアドレスに対してアクセスしているかどうかを判定するために下位4ビットを除いてアドレス比較を行っている。   The address buffer 55 is a buffer that holds the value of the address bus ADDR of the CPU 1 when the address buffer set signal ABSET from the state management unit 52 is asserted. The comparator 54 compares the value of the address buffer 55 and the address bus ADDR of the CPU 1, and if the value of the address buffer 55 and the value of the address bus ADDR of the CPU 1 are the same except for the lower 4 bits, the comparison result The signal HIT is asserted and negated if they do not match. Here, the value is compared except for the lower 4 bits because the data to be prefetched is 16 bytes at a time and the address corresponds to the lower 4 bits range, so the addresses in the same prefetch range are accessed. In order to determine whether or not there is an address comparison, the lower 4 bits are excluded.

状態管理部52は、CPU1の出力信号であるバススタート信号BS_と、アクセス判定部56の判定結果であるプリフェッチ可否判定結果信号JUG及び、メモリシーケンサ4からのデータバリッド信号DVを入力として内部状態が遷移する状態遷移ブロックである。状態管理部52からは、その内部状態の遷移に従い、起動信号REQとプリフェッチアクセス信号PRFとアドレスバッファセット信号ABSETとウェイト信号WAIT_を出力し、更に、状態管理部52の内部状態を状態信号STに出力している。   The state management unit 52 receives the bus start signal BS_ that is the output signal of the CPU 1, the prefetch enable / disable determination result signal JUG that is the determination result of the access determination unit 56, and the data valid signal DV from the memory sequencer 4 as input. It is a state transition block that makes a transition. In accordance with the transition of the internal state, the state management unit 52 outputs a start signal REQ, a prefetch access signal PRF, an address buffer set signal ABSSET, and a wait signal WAIT_, and further changes the internal state of the state management unit 52 to the state signal ST. Output.

図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 state management unit 52. The state 100 is a state indicating that the data stored in the prefetch buffer 6 in FIG. 1 is invalid. The state 101 is a wait state until the start of prefetch is instructed by the prefetch access signal PRF and the first data is ready. Similarly, the state 102 is a state in which prefetching is started and the second data is waited. Similarly, the states 103 and 104 are also waiting for the third and fourth data, respectively. In this embodiment, since four data are prefetched in one prefetch, there are four states in which the data is temporarily waited until each data is ready. The state 106 is a state indicating that prefetching is started and four valid data are stored in the prefetch buffer 6. On the other hand, the state 105 is a single access state indicating that only data requested by the CPU is accessed without executing prefetch access. Therefore, the activation signal REQ is asserted in the states 101, 102, 103, 104, and 105, and the prefetch access signal PRF is asserted in the states 101, 102, 103, and 104, and is transmitted to the memory sequencer 4. In addition, when transitioning from state 100 to state 101, from state 100 to state 105, from state 106 to state 101, and from state 106 to state 105, that is, when prefetch start is instructed or single access is performed, the address The buffer set signal ABSET is asserted to cause the address buffer 55 to hold the value of the address bus ADDR of the CPU 1.

これらはプリフェッチの状態に関する内部状態であるが、これらの内部状態とは別に
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 states 107 and 108 as internal states indicating a request state from the CPU separately from these internal states. A state 107 is a state in which an access request from the CPU can be accepted. The state 108 is a state indicating that the CPU is waiting for data because the data requested by the CPU is not ready. The wait signal WAIT_ is asserted at the time of transition from the state 107 to the state 108 and at the state 108 and is notified to the CPU 1.

次に、各状態の遷移を説明する。状態管理部52の初期状態は、まだ一度もCPU1からのアクセス要求がなく、プリフェッチされたデータもなく、いつでもCPU1からのアクセス要求を受け付けられる状態にあるため、状態100及び状態107にある。   Next, each state transition will be described. The initial state of the state management unit 52 is in the state 100 and the state 107 because there is no access request from the CPU 1 and there is no prefetched data and the access request from the CPU 1 can be accepted at any time.

まず、プリフェッチに関する状態の遷移としては、状態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 state 100 to state 101 is that the bus start signal BS_ is asserted and the prefetch enable / disable determination result signal JUG is asserted. In other words, an access request from the CPU 1 is generated, and the value of the mode register 8 corresponding to the chip selector space including the address instructed by the access indicates a state in which prefetching is performed. On the other hand, the transition condition for transitioning from the state 100 to the state 105 is when the bus start signal BS_ is asserted and the prefetch availability determination result signal JUG is negated. The data valid signal DV from the memory sequencer 4 is asserted as a condition for transition from the state 101 to the state 102, the state 102 to the state 103, the state 103 to the state 104, the state 104 to the state 106, and the state 105 to the state 100. In other words, this is a case where the data from the memory output for each data request becomes valid. The transition conditions for transition from the state 106 to the state 101 are that the bus start signal BS_ is asserted or the state 108, the comparison result signal HIT is negated, and the prefetch availability determination result signal JUG is asserted. That is, when an access from the CPU 1 occurs, the address range previously read stored in the address buffer 55 does not overlap with the address of the next access, and the access to the area where the next access prefetches. This is the case. On the other hand, the transition condition for transitioning from the state 106 to the state 105 is when the bus start signal BS_ is asserted or the state 108 and the prefetch availability determination result signal JUG is negated. This is the same as the transition condition for transitioning from the state 100 to the state 105, and is when the access from the CPU 1 occurs and the access is to an area where prefetching is not performed.

次に、状態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 state 107 to the state 108 is that 1) the bus start signal BS_ is asserted and the prefetch enable / disable determination result signal JUG is negated, or 2) the comparison result signal HIT of the comparator 54 is asserted. It is determined that the prefetch enable / disable determination result signal JUG is asserted and is in any of the states 101, 102, 103, and 104, and the data to be read is not set in the prefetch buffer 6 due to the ADDR of the CPU 1 and the current state If any. Whether the data read by the CPU 1 is set in the prefetch buffer 6 is, for example, whether the value stored in the address indicated by the address buffer 55 has already been set in the prefetch buffer 6 if the internal state is state 102. It can be determined depending on why. If the internal state is state 102, the determination is made based on whether both the address indicated by the address buffer 55 and the value stored next to the address indicated by the address buffer 55 have already been set in the prefetch buffer 6. Can do. Other states can be similarly determined. The transition condition from the state 108 to the state 107 is that necessary data is set in the prefetch buffer 6 or the data valid signal DV is asserted in the state 105.

バッファ管理部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 buffer management unit 53 receives the state signal ST indicating the internal state of the state management unit 52, the lower 4 bits of the address bus ADDR from the CPU 1, and the comparison result signal HIT of the comparator 54 as inputs, and the prefetch buffer 6 This is a logic block for outputting a prefetch buffer set signal PBSET for setting data in and an output selection signal OPSEL of the output selector 11. The signal OPSEL has four values of 0 to 3 corresponding to the number of data of one cache line prefetched by prefetch, and outputs 0 when the signal HIT is negated. When the signal HIT is asserted, the result of decoding the lower 4 bits of the address bus ADDR is output. Similarly, the prefetch buffer set signal PBSET has four values from 0 to 3, and the state management unit 52 is 1 when the state management unit 52 is in the state 102 of FIG. 2 is asserted, 3 is asserted when the state management unit 52 is in the state 104 of FIG. 4, and 0 is asserted in other states.

図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 state 110 is an idle state, and indicates a state waiting for an activation signal REQ from the prefetch state management unit 5. A state 111 indicates a row address access state, in which the RAS address of the DRAM 7 corresponding to the address accessed by the CPU 1 is output to the address bus A, and the row address select signal RAS_ is asserted. The state 112 indicates the first column address access state, in which the CAS address of the DRAM 7 corresponding to the address accessed by the CPU 1 is output to the address bus A and the column address select signal CAS_ is asserted. The states 113, 114, and 115 indicate the second, third, and fourth row address access states that are performed in advance by prefetching, respectively. The initial state of the memory sequencer 4 is state 110. The transition condition from the state 110 to the state 111 is assertion of the activation signal REQ. As a result, access to the DRAM 7 is started.

状態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 state 111, state 112, state 113, state 114, and state 115 to the next state is determined by the access time of DRAM 7, and transitions to the next state every time the access time of DRAM 7 elapses. In particular, in the state 112, when the access time of the DRAM 7 elapses, if the prefetch access signal PRF is asserted, the state 112 is changed to the state 113, and if it is negated, the state 112 is changed to the state 110. That is,
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 state 112, 113, 114, 115 to the next state where the CAS address is output and the data read from the DRAM 7 is confirmed and access for one data is completed. Asserted.

図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 CPU 1 and the memory controller 2 in FIG. 1 operate in synchronization with a clock signal CLK not shown in FIG. 1, and an area (hereinafter referred to as CS0_) corresponding to an address space of a DRAM chip selected by CS0_ of the CPU1. It is assumed that the prefetch prohibition mode is set, and the CS1_ area is set to the prefetch enable mode.

はじめに、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 CPU 1 accesses the address ADDR1 of the CS0_ area. In this case, BS_ and CS0_ are asserted, and the address ADDR1 is output to ADDR. The prefetch state management unit 5 of the memory controller 2 asserts WAIT_ until the data of ADDR1 is ready, that is, until the data is determined on the data bus DAT. At the same time, REQ is asserted to the memory sequencer 4 to notify the occurrence of access. At this time, since the CS0_ area is set to the prefetch prohibition mode, the prefetch access signal PRF is not asserted. The memory sequencer 4 outputs the row address R1 corresponding to the address ADDR1 accessed by the CPU 1 to the address bus A, and asserts RAS_. Next, the column address C1 of ADDR1 is output to the address bus A, and CAS_ is asserted to determine the access address for the DRAM 7. By the operation of the memory controller 2, the DRAM 7 outputs data D1 corresponding to ADDR1 to the memory data bus D. Therefore, the memory sequencer 4 asserts the data valid signal DV to the fetch state management unit 6 at the timing when the data D1 is output to the memory data bus D.

プリフェッチ状態管理部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 selector 11 outputs the data D1 output to the memory data bus D to the processor data bus DAT of the CPU1. .

次に、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 CPU 1 accesses the address ADDR5 in the CS1_ area. Since the CS1_ area is set to the prefetch enable mode, the prefetch state management unit 5 asserts PRF. The memory sequencer 4 outputs the row address R5 corresponding to the address ADDR5 to the address bus A and asserts RAS_. Subsequently, the column address C5 corresponding to ADDR5 is output and CAS_ is asserted. At this time, since PRF is asserted, C6, C7, and C8 are continuously output to the address bus A, and CAS_ is repeatedly asserted / negated in response to the output of each column address. Here, the column address C6 is a value obtained by adding 1 to the column address C5, C7 is obtained by adding 1 to C6, and C8 is obtained by adding 1 to C7. The data corresponding to the row address R5 and the column address C5 is D5, the data corresponding to the row address R5 and the column address C6 is D6, and the data corresponding to the row address R5 and the column address C7 is D7. Data corresponding to the row address R5 and the column address C8 is D8. These data D5 to D8 are continuously output to the memory data bus D.

また、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, processor 1 does not assert wait signal WAIT_ to CPU1. D6 can be output to the data bus. Further, since the prefetch operation is not performed for the CS0_ region, the DRAM 7 is in an idle state between the time when D1 is output to the memory data bus D and the time when D5 is output. That is, since no unnecessary memory access is newly generated, the efficiency of the DRAM 7 is improved and the data processing capacity of the entire system is improved.

以上の説明においては、チップセレクト信号はDRAM7を所定の領域に分割した際に、CPU1からのアクセスがこれら分割した領域のどこに対するアクセスなのかを識別する意味で用いてきたが、チップセレクト信号をその本来の意味で用いて、メモリを構成するDRAMチップ自体を区別するように用いてもよい。この場合、メモリチップ毎にプリフェッチの実行/非実行を制御することになる。これによりメモリ構成に応じたプリフェッチの制御を行うことが可能となる。   In the above description, the chip select signal has been used to identify where the access from the CPU 1 is when accessing the divided area when the DRAM 7 is divided into predetermined areas. In its original meaning, the DRAM chip itself constituting the memory may be distinguished. In this case, execution / non-execution of prefetch is controlled for each memory chip. This makes it possible to perform prefetch control according to the memory configuration.

図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 mode register 8 described in FIG. 1 based on the actually accessed address. In this embodiment, an access monitoring unit 70 that changes the value of the mode register 8 is provided inside the prefetch state management unit 5. The access monitoring unit 70 receives the chip select signals CS0_, CS1_, CS2_, the bus start signal BS_, and the comparison result signal HIT, and sets the values of the mode register 8 corresponding to the chip select signals CS0_, CS1_, CS2_ as outputs. Assert one of Set0, Set1, and Set2 that are signals to be reset, and Rset0, Rset1, and Rset2 that are similarly reset signals.

図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 access monitoring unit 70. The access monitoring unit 70 includes a continuous access determination logic 71 and a mode register selection logic 72. FIG. 8 is a state transition diagram for explaining the operation of the continuous access determination logic 71. The initial state of the continuous access determination logic 71 is the first state in which access is performed first, which is state 910. Next, when the access from CPU1 is started, the HIT signal indicating that the address accessed last time and the address accessed this time are identical except for the lower 4 bits is asserted, and the previous access When the same chip select signal as that of the selected chip select space is asserted, that is, when the subsequent access is made within the same cache line range as the first access, the state transits to the continuous second access state 911. This state is a state where two consecutive accesses are made to the same prefetch range. In this state 911, when the CPU 1 further accesses the same chip select space and the HIT signal indicating that the address accessed last time and the address accessed this time are identical except for the lower 4 bits is asserted, The state transits to the continuous third access state which is the state 912. This state is a state in which three consecutive accesses are made to the same prefetch range. Further, the state transits to a state 910 which is an initial state in which an access of the CPU 1 in which the condition for transitioning to the continuous third access state is not satisfied. Similarly, in the continuous third access state of the state 912, when the CPU 1 accesses the same chip select space and the HIT signal is asserted, the state transits to the continuous fourth access state which is the state 913. When an access by CPU 1 that does not transit to state 913 occurs, the state transits to state 910.

状態913では、CPU1がアクセスを開始すると状態910に遷移する。しかし状態913から状態910へ遷移する時、連続アクセス判定論理71は、プリフェッチ可能信号PFONをアサートする。また、状態911又は状態912から状態910に遷移する時には、連続アクセス判定論理71は、プリフェッチ禁止信号PFOFFをアサートする。即ち、1キャッシュライン分のデータをアクセスしたとき、そのアクセスの全てが同一プリフェッチ範囲内に対するアクセスであれば、そのアクセスが行われたチップセレクト空間にはプリフェッチが有効なデータが格納されているものと判断して、連続アクセス判定論理71はプリフェッチ可能信号PFONをアサートするが、そうでなければ、そのチップセレクト空間にはプリフェッチが無効であると判断して、プリフェッチ禁止信号
PFOFFをアサートする。
In the state 913, when the CPU 1 starts access, the state transitions to the state 910. However, when transitioning from state 913 to state 910, the continuous access decision logic 71 asserts the prefetch enable signal PFON. Further, when transitioning from the state 911 or the state 912 to the state 910, the continuous access determination logic 71 asserts the prefetch prohibition signal PFOFF. That is, when data for one cache line is accessed, if all of the accesses are within the same prefetch range, data for which prefetching is valid is stored in the chip select space where the access has been made. The continuous access determination logic 71 asserts the prefetch enable signal PFON. Otherwise, it determines that prefetch is invalid in the chip select space, and asserts the prefetch inhibition signal PFOFF.

モードレジスタ選択論理72は、前回アクセスしたチップセレクト信号を保持する機能を備え、PFON信号がアサートすると、保持しているチップセレクト信号に対応するモードレジスタ8のセット信号であるSet0,Set1,Set2 のいずれかをアサートする。またPFOFF信号がアサートすると、保持しているチップセレクト信号に対応するモードレジスタ8のリセット信号であるRset0,Rset1,Rset2のいずれかをアサートする。なお、モードレジスタ8はセットされると、プリフェッチアクセス可能モードを示し、リセットするとプリフェッチアクセス禁止モードを示すものとする。この様に、モードレジスタ8の設定を実際にアクセスしたアドレスの状態に基づいて変更し、各チップセレクト空間に対してプリフェッチ処理の実行の有無を自動的に設定することができる。   The mode register selection logic 72 has a function of holding the previously selected chip select signal. When the PFON signal is asserted, the mode register selection logic 72 sets Set0, Set1, Set2 of the mode register 8 corresponding to the held chip select signal. Assert one. When the PFOFF signal is asserted, one of Rset0, Rset1, and Rset2, which is a reset signal of the mode register 8 corresponding to the held chip select signal, is asserted. When the mode register 8 is set, it indicates the prefetch accessible mode, and when it is reset, it indicates the prefetch access prohibited mode. In this way, the setting of the mode register 8 can be changed based on the state of the actually accessed address, and the presence / absence of execution of prefetch processing can be automatically set for each chip select space.

以上の実施の形態ではいずれもメモリに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 mode register 8 so that execution / non-execution of prefetch of memory chips constituting consecutive addresses coincides.

前述の実施の形態では、いずれもプリフェッチの可否を識別するためにCPU1からのチップセレクト信号を用いているが、システムによっては、CPUがアクセスするアドレスの上位ビットによってチップセレクト信号が決まるため、CPU1からプリフェッチ状態管理部5への入力はアドレスバスADDRとバススタート信号BS_だけでもかまわない。この場合アクセス判定部56では、アドレスバスADDRからのアドレスデータを元にチップセレクタ空間を求める処理が必要となる。これにより、CPU1の信号ピンの数を減らすことができる。しかし、アドレスバスADDRに出力されるアドレスデータが静定する時間とアドレスデータからチップセレクタ空間を求めるための処理により遅延が発生してしまう。   In each of the above-described embodiments, the chip select signal from the CPU 1 is used to identify whether or not prefetching is possible. However, depending on the system, the chip select signal is determined by the upper bits of the address accessed by the CPU. The input to the prefetch state management unit 5 may be only the address bus ADDR and the bus start signal BS_. In this case, the access determination unit 56 needs to obtain a chip selector space based on the address data from the address bus ADDR. Thereby, the number of signal pins of the CPU 1 can be reduced. However, a delay occurs due to the time for the address data output to the address bus ADDR to settle and the processing for obtaining the chip selector space from the address data.

また、前述の実施の形態では、プリフェッチを制御する領域の単位がチップセレクト空間と一致していたが、例えばプリフェッチ状態管理部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 mode register 8 of the prefetch state management unit 5 is an address register that stores the boundary of each area. By comparing the value of the address ADDR accessed by the CPU 1 input to the prefetch state management unit 5 with the address of the area boundary stored in the mode register 8, the prefetch can be controlled for each area of any size. In this case, when dividing the memory into two areas, the mode register 8 is one, and when dividing the memory into three areas, the mode register 8 is two. Since this is necessary and the comparison with the value of the address ADDR increases accordingly, the processing in the access determination unit 56 becomes complicated, and the number of registers increases, resulting in an increase in circuit scale.

本発明においては、プリフェッチを行うことが有効なデータを格納するメモリ領域と、プリフェッチを行うと不必要なアクセスが多発するデータを格納するメモリ領域を、異なるチップセレクト空間に配置しているが、プリフェッチを行うことが有効なデータと、プリフェッチを行うと不必要なアクセスが多発するデータを分類しない場合、以下のようにプログラムを作成する。   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 mode register 8 to the prefetch access inhibition mode is described. Further, when processing of data that frequently requires unnecessary access when prefetching is completed, an instruction to return the value of the mode register 8 set to the prefetch access prohibition mode to the prefetch accessible mode is described at the end of the processing. Keep it. Thus, it can be described whether or not prefetching is explicitly executed by the program.

なお、以上の実施の形態においては、メモリコントローラ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 CPU 1. However, the memory sequencer 4, the prefetch state management unit 5, the prefetch buffer 6, and the selector 11 that control the prefetch in the memory controller 2 are provided. May be provided between the cache memory 20 and the main memory DRAM 7 and may be provided in the CPU 1 together with the cache memory 20. Conversely, the cache memory 20 may be provided externally to the CPU.

以上説明したように本発明によって、プログラムやデータを格納する領域を分割し、各領域毎にプリフェッチを行うか否かを制御することが可能になる。よって、データアクセスにおいてもプリフェッチ機能を動作させると有効に動作するデータが格納された領域に対するアクセス場合にはプリフェッチ機能を動作させ、プリフェッチアクセス機能を動作させると不必要なデータをプリフェッチしてしまいメモリアクセス性能を低下させてしまうデータが格納された領域に対するアクセス場合には、プリフェッチ機能を抑止することにより、メモリアクセスの効率を向上することが可能になる。   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.

本発明の実施の形態におけるデータ処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data processor in embodiment of this invention. プリフェッチ状態管理部の構成を示すブロック図である。It is a block diagram which shows the structure of a prefetch state management part. 本発明の実施の形態における計算機の動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of the computer in embodiment of this invention. 状態管理部の状態遷移を示す図である。It is a figure which shows the state transition of a state management part. メモリシーケンサの動作を示す状態遷移図である。It is a state transition diagram showing operation of the memory sequencer. モードレジスタを設定する機能を備えた計算機の構成図である。It is a block diagram of the computer provided with the function which sets a mode register. アクセス監視部の構成図である。It is a block diagram of an access monitoring part. 連続アクセス判定論理の状態遷移を示す図である。It is a figure which shows the state transition of continuous access determination logic.

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.
JP2001510096A 1999-07-07 1999-07-07 Memory control device Expired - Fee Related JP3956698B2 (en)

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)

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

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

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