WO2004066146A1 - List management program and list management device - Google Patents

List management program and list management device Download PDF

Info

Publication number
WO2004066146A1
WO2004066146A1 PCT/JP2003/000417 JP0300417W WO2004066146A1 WO 2004066146 A1 WO2004066146 A1 WO 2004066146A1 JP 0300417 W JP0300417 W JP 0300417W WO 2004066146 A1 WO2004066146 A1 WO 2004066146A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
list
search
list management
Prior art date
Application number
PCT/JP2003/000417
Other languages
French (fr)
Japanese (ja)
Inventor
Katsuyoshi Moriya
Masanori Kaneko
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/000417 priority Critical patent/WO2004066146A1/en
Publication of WO2004066146A1 publication Critical patent/WO2004066146A1/en

Links

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Definitions

  • the present invention relates to a list management program and a list management device for managing data having a list structure used in a computer having a cache memory.
  • the present invention relates to a program and a list management device. .
  • a binary search tree has been used as a method for searching and importing data at high speed. That is, assuming that the number of data to be searched is ⁇ , in a binary search tree, the average computational complexity of both data search and import is of the order of log ⁇ . On the other hand, in the linear search, the computational complexity of the search is of the order of ⁇ , and in the case of insertion, the computational complexity is of the order of ⁇ if it is necessary to confirm that the same data does not exist. In a binary search that uses magnitude comparison as in the case of a binary search tree, the computational complexity of the search is log n, but the computational complexity of the order is n. For information on such conventional search technologies, see, for example, Kiyoshi Ishihata, “Algorithms and Data Structures”, Iwanami Lecture, Soft Tuesce Science, March 30, 1989, 5.57-8 It is introduced in 7.
  • the search is performed.
  • the actual search speed is based on whether or not the data to be searched hits the cache memory rather than the amount of calculation required for It greatly affects the degree.
  • the present invention has been made to solve the above-described problem of the related art, and has as its object to provide a list management program and a list management device capable of preventing a reduction in data search speed due to a cache miss.
  • the purpose is. Disclosure of the invention
  • the present invention is directed to a list management program for managing data of a list structure used in a computer having a cache memory.
  • the present invention also relates to a list management device for managing data having a list structure used in an information processing device having a cache memory, wherein the number of data that can be read into the cache memory by one memory access is determined.
  • a data registration unit for registering data in a list in which the number of data to be stored in each node constituting the list structure is determined; and a node constituting the list by registering the data registered in the list by the data registration unit.
  • a data search means for performing a control so that each node is in a state of being read into the cache memory at the start of the search of each node. .
  • data is stored in a list in which the number of data to be stored in each node forming the list structure is determined based on the number of data that can be read into the cache memory by one memory access.
  • FIG. 1 is an explanatory diagram for explaining the concept of thread variable variable management by the list management device according to the present embodiment.
  • FIG. 2 is a diagram illustrating the list management device according to the present embodiment.
  • FIG. 3 is a functional block diagram showing the configuration
  • FIG. 3 is a flowchart showing a processing procedure of a data search unit shown in FIG. 2
  • FIG. 4 is a flowchart showing a processing procedure of data registration processing.
  • FIG. 5 is a diagram showing a computer system that executes the list management program according to the present embodiment. BEST MODE FOR CARRYING OUT THE INVENTION
  • a thread local variable is a variable that has a variable with the same name in the main thread and is local to the child thread. Then, the list management device uses the address of a variable having the same name in the main thread (hereinafter referred to as “main thread variable address”).
  • thread local variable address the address of the thread local variable (hereinafter referred to as “thread local variable address”) are managed in association with each other, and given the main thread variable address, the corresponding thread local variable address is returned.
  • FIG. 1 is an explanatory diagram for explaining the concept of thread local variable address management by the list management device according to the present embodiment.
  • FIG. 2A is a diagram showing conventional thread local variable address management.
  • Figure (b) is Mel a view showing a thread-local variables address management according to the embodiment 0
  • the main thread variable address and the thread local variable address are determined by using a binary search tree whose key is the address of the variable in the main thread. It was managed in correspondence. Specifically, on the source program
  • the variables v a, v b, v c, v d, v e, v f, and v g are managed by a binary search tree with the variable v d as the root and the leaves v a, v c, v e, and v g as the leaves.
  • Each node has a main thread variable address and a thread variable variable address.
  • a node corresponding to the variable Vd is a main thread variable address of "0 0 AC" in hexadecimal.
  • the given main thread variable address is compared with the Vd main thread variable address, and the given main thread variable address is smaller than the Vd main thread variable address.
  • the node on the left side that is, the node of Vb is accessed, and a cache miss occurs at this time.
  • the given main thread variable address is compared with the main thread variable address of Vb, and if the given main thread variable address is smaller than the main thread variable address of Vb, the node of Va is Is accessed, and a cache miss also occurs at this time. That is, in the conventional thread variable variable address management, a cache miss occurs every time each node is entered, and it takes much time to search.
  • n ⁇ 1 messages are stored in one node using the variable address list 100.
  • the thread variable address, a pointer to the next node, and (n-1) thread draw force variables corresponding to the (n-1) main thread variable addresses, respectively.
  • each node creates each node so that the start address of each node is a multiple of the cache line size.
  • (n — 1) main thread When the variable address and the pointer to the next node are read into the cache memory, and the address of the node's first address + cache line size is accessed, (n-1) thread local variable addresses can be read into the cache memory. .
  • a prefetch instruction is issued during the search initialization process to the first T-address of the first node and the first node's first address + the address of the cache line size,
  • searching for the first node prepare so that the first node is in the cache memory.
  • the address of the second node and the address of the first node + cache line size are used using the address of the next node stored in the first node.
  • control is performed such that all data of the nodes is stored in the cache memory at the time of searching for data of each node in the variable address list 100.
  • it is possible to prevent the search efficiency from being lowered due to the latency of the cache memory.
  • FIG. 2 is a functional block diagram showing a configuration of the list management device according to the present embodiment.
  • the list management device 200 includes a data registration unit 210, a data search unit 220, and a list storage unit 230.
  • the data registration unit 210 is a processing unit that creates a new entry and adds it to the variable address list 100 0 when the thread local variable address is not registered in the variable address list 100.
  • the data registration unit 210 creates a new node, and makes the first address of the created node a multiple of the size of the cache line.
  • the data retrieval unit 220 is a processing unit that receives a main thread variable address, retrieves and returns a corresponding thread local variable address.
  • the data search unit 220 controls the search using a prefetch instruction so that the data of the node to be searched is always in the cache memory.
  • the list storage unit 230 stores a main thread variable address and a thread local variable address in association with each other. More specifically, the variable address list 10 shown in FIG. 1 (b) is stored. Note 0.
  • the list management device 200 creates a node such that the leading address is a multiple of the cache line size, and the data search unit 220 searches for the data.
  • the cache memory is controlled by using a prefetch instruction so that the data of the node to be executed is always in the cache memory. , It is possible to prevent a decrease in search efficiency caused by the search.
  • FIG. 3 is a flowchart showing a processing procedure of the data search unit 220 shown in FIG.
  • the data search unit 220 receives the first node of the variable address list 100 stored in the list storage unit 230 in consideration of the cache miss latency during the search initialization process. Is prefetched (step S301). Also, before starting the search for the first node, the next node is prefetched (step S302), so that the next node enters the cache memory before the search for the next node starts. prepare.
  • the data search index i in the node is initialized to “1” (step S303), the i-th data is extracted from the node (step S304), and the end of the registered data is obtained. (Step S305). Here, whether or not the end of the registered data is determined depending on whether or not the data value is “0”.
  • step S306 if it is not the end of the registered data, it is checked whether or not the given main thread variable address matches the data (step S306), and if not, i is set to “ The value is increased by 1 (step S307), and it is checked whether the i-force is smaller than "16", that is, whether or not the next data exists in this node (step S308).
  • step S304 If i is smaller than "1 6”, the flow returns to step S304 to check the next data. If i becomes "16J”, the flow returns to step S302. Search for the next node At this time, the next node is in the state of being stored in the cache memory due to the prefetching of the previous step S302, and before starting the search for the next node, one after another Prefetch.
  • step S309 if the given main thread variable address matches the data, the corresponding thread local variable address is returned (step S309), and the processing ends. Complete. If the i-th data is at the end of the data, the main thread variable address and the corresponding thread local variable address are added to the node as new entries by data registration processing (step S310). The registered thread local variable address is returned (step S311).
  • the data search unit 220 prefetches the next node before starting the search of each node in the variable address list 100, so that all data in the node is searched at the time of each node search. Are in the cache memory.
  • FIG. 4 is a flowchart showing a procedure of a data registration process. Note that this data registration processing corresponds to the processing of the data registration unit 210 shown in FIG.
  • the address of a new local variable is obtained (step S401), the obtained address is used as the thread local variable address, and the variable with the given main thread variable address. It is registered as a new entry in the address list 100 (step S402). Then, it is checked whether or not the node to which the new entry has been added has room for registering the next entry (step S403). If there is a space, the process ends as it is.
  • step S404 if there is no free space, a new node with a multiple of the cache line size as the start address is created (step S404). At this time, all data in the created node is cleared to zero. Then, the created node is connected to the variable address list 100 (step S405).
  • the head address is set to a multiple of the cache line size.
  • the data search unit was designed to use a prefetch instruction so that the node data was always stored in the cache memory when searching for each node. High-speed thread local variable addressing by preventing search efficiency from deteriorating due to the latency of Can be searched.
  • the list management device has been described. However, by realizing the configuration of the list management device by software, a list management program having the same function can be obtained. Therefore, a computer system that executes the list management program will be described.
  • FIG. 5 is a diagram showing a computer system that executes the list management program according to the present embodiment.
  • the computer system 500 includes a main body 510, a display device 520 for displaying a display screen according to an instruction from the main body 510, and a keyboard 530 for inputting various information to the computer system 500. And a mouse 540 for specifying a position on the display screen.
  • the main unit 510 includes a CPU 511 having a cache, a RAM 512, a ROM 513, a hard disk drive (HDD) 514, a CD-ROM / DVD drive 515, an FD drive 516, and an I / O interface 51 7 And a LAN interface 518 and a modem 519.
  • a CPU 511 having a cache, a RAM 512, a ROM 513, a hard disk drive (HDD) 514, a CD-ROM / DVD drive 515, an FD drive 516, and an I / O interface 51 7 And a LAN interface 518 and a modem 519.
  • PC computer system
  • server 552 a printer 553, and the like
  • LAN 550 connected to a LAN interface 518
  • a modem 519 can be connected to a public line 560 via a modem 519.
  • the list management program executed in the computer system 500 is stored in a portable storage medium such as a floppy disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, and an IC card. It is read from the medium and installed on computer system 500.
  • a portable storage medium such as a floppy disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, and an IC card.
  • the list management program may be a database of a server 552 connected via a LAN interface 518, a database of another computer system (PC) 551, and a database of another computer system connected via a public line 560. Etc., read from these databases, and installed in the computer system 500.
  • the installed list management program is stored in the HDD 514 and executed by the CPU 511 using the RAM 511, the ROM 513, and the like.
  • data is registered in a list in which the number of data to be stored in each node constituting the list structure is determined based on the number of data that can be read into the cache memory by one memory access, and the registered data is listed.
  • the list management program and the list management device according to the present invention are suitable for the case where data is managed using a list structure in an information processing device having a large latency of cache miss.

Abstract

A list management program for managing data of a list structure used by a computer having a cache memory, realizing a data registering section for creating a node in such a way that the first address is a multiple of the cache line size and adding the node to a variable address list and a data retrieving section for carrying out control using a prefetch instruction so that the data on the nodes is present in the cache memory when a node is retrieved.

Description

リスト管理プログラムおよびリスト管理装置 List management program and list management device
技術分野 Technical field
この発明は、 キャッシュメモリを有するコンピュータで使用されるリスト構造 のデータを管理するリスト管理プログラムおよびリスト管理装置に関し、 特に、 明  The present invention relates to a list management program and a list management device for managing data having a list structure used in a computer having a cache memory.
キヤッシュミスに起因するデータ検索速度の低下を防ぐことができるリスト管理 田 , List management that can prevent data search speed from dropping due to cache mistakes
プログラムおよびリスト管理装置に関するものである。 . The present invention relates to a program and a list management device. .
書 背景技術  Background art
従来から、 データの検索と揷入を高速におこなうための手法として 2分探索木 がある。 すなわち、 検索するデータの数を ηとすると、 2分探索木では、 データ の検索と揷入の両方の平均の計算量が log ηのオーダとなる。 これに対して、 線 形探索では、 検索の計算量は ηのオーダであり、 挿入の場合にも、 同じデータが 無いことを確認する必要がある場合には計算量は ηのオーダとなる。 また、 検索 に 2分探索木と同様に大小比較を用いる 2分探索では、 検索の計算量は log nで あるが揷入の計算量は nのオーダとなる。 このような、 従来からの検索技術につ いては、 たとえば、 石畑 清著 「アルゴリズムとデ一タ構造」 岩波講座ソフトゥ エア科学 3、 1 9 8 9年 3月 3 0日、 . 5 7 - 8 7に紹介されている。  Conventionally, a binary search tree has been used as a method for searching and importing data at high speed. That is, assuming that the number of data to be searched is η, in a binary search tree, the average computational complexity of both data search and import is of the order of log η. On the other hand, in the linear search, the computational complexity of the search is of the order of η, and in the case of insertion, the computational complexity is of the order of η if it is necessary to confirm that the same data does not exist. In a binary search that uses magnitude comparison as in the case of a binary search tree, the computational complexity of the search is log n, but the computational complexity of the order is n. For information on such conventional search technologies, see, for example, Kiyoshi Ishihata, “Algorithms and Data Structures”, Iwanami Lecture, Soft Tuesce Science, March 30, 1989, 5.57-8 It is introduced in 7.
しかしながら、 キャッシュメモリを有するコンピュータで 2分探索木などのリ スト構造を使用する場合には、 ポインタを迪るごとにキャッシュミスが発生し、 データの検索および挿入に多くの時間を必要とするという問題がある。  However, when using a list structure such as a binary search tree on a computer with a cache memory, a cache miss occurs every time a pointer is entered, and it takes a lot of time to search and insert data. There's a problem.
すなわち、 - ヤッシュ—ミスのレイテジシ (キヤッシュラ シめ取一 —込みを含め たデータ読み出し遅延) がキャッシュヒットのレイテンシ (キャッシュメモリか らのデータ読み出し遅延) と比較して非常に大きい場合には、 検索に要する計算 量よりも検索するデータがキャッシュメモリにヒットするか否かが実際の検索速 度に大きく影響する。 In other words:-If the latency of the misses (the delay of reading the data including cache) is very large compared to the latency of the cache hit (the delay of reading the data from the cache memory), the search is performed. The actual search speed is based on whether or not the data to be searched hits the cache memory rather than the amount of calculation required for It greatly affects the degree.
この発明は、 上述した従来技術による問題点を解消するためになされたもので あり、 キャッシュミスに起因するデータ検索速度の低下を防ぐことができるリス ト管理プログラムおよびリスト管理装置を提供することを目的としている。 発明の開示  SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problem of the related art, and has as its object to provide a list management program and a list management device capable of preventing a reduction in data search speed due to a cache miss. The purpose is. Disclosure of the invention
上述した課題を解決し、 目的を達成するため、 本発明は、 キャッシュメモリを 有するコンピュータで使用されるリス ト構造のデータを管理するリスト管理プロ グラムであって、 1回のメモリアクセスにより前記キャッシュメモリに読み込め るデータの個数に基づいて前記リスト構造を構成する各ノードに格納するデータ の個数が定められたリストにデータを登録するデータ登録手順と、 前記データ登 録手順によりリストに登録されたデータを該リストを構成するノードを順番に迪 つて検索する際に、 各ノードの検索開始時には該各ノードがキヤッシュメモリに 読み込まれている状態とする制御をおこないつつ検索するデータ検索手順と、 を 実行することを特徴とする。  In order to solve the above-described problems and achieve the object, the present invention is directed to a list management program for managing data of a list structure used in a computer having a cache memory. A data registration procedure for registering data in a list in which the number of data to be stored in each node constituting the list structure is determined based on the number of data that can be read into the memory; and When searching for data sequentially for nodes constituting the list, a data search procedure for performing search while controlling each node to be in a state of being read into the cache memory at the start of search of each node. It is characterized by executing.
また、 本宪明は、 キヤッシュメモリを有する情報処理装置で使用されるリスト 構造のデータを管理するリスト管理装置であって、 1回のメモリアクセスにより 前記キャッシュメモリに読み込めるデータの個数に基づいて前記リスト構造を構 成する各ノ一ドに格納するデータの個数が定められたリストにデータを登録する データ登録手段と、 前記データ登録手段によりリストに登録されたデータを該リ ストを構成するノードを順番に迪つて検索する際に、 各ノードの検索開始時には 該各ノードがキャッシュメモリに読み込まれている状態とする制御をおこないつ つ検索するデータ検索手段と、 を備えたことを特徴とする。  The present invention also relates to a list management device for managing data having a list structure used in an information processing device having a cache memory, wherein the number of data that can be read into the cache memory by one memory access is determined. A data registration unit for registering data in a list in which the number of data to be stored in each node constituting the list structure is determined; and a node constituting the list by registering the data registered in the list by the data registration unit. And a data search means for performing a control so that each node is in a state of being read into the cache memory at the start of the search of each node. .
• かか ¾努明によれば、 1回のメモリアクセスによりキャッシュメ リに読み込 めるデータの個数に基づいてリスト構造を構成する各ノードに格納するデータの 個数が定められたリストにデータを登録し、 登録したデータをリストを構成する ノードを順番に迪つて検索する際に、 各ノードの検索開始時には各ノードがキヤ ッシュメモリに読み込まれている状態とする制御をおこないつつ検索することと したので、 キヤッシュミスに起因するデータ検索速度の低下を防ぐことができる • According to the effort, data is stored in a list in which the number of data to be stored in each node forming the list structure is determined based on the number of data that can be read into the cache memory by one memory access. When searching for the nodes that make up a list of registered data in order, when each node starts searching, Since the search is performed while controlling the data to be read into the cache memory, it is possible to prevent a reduction in the data search speed due to a cache miss.
図面の簡単な説明 BRIEF DESCRIPTION OF THE FIGURES
第 1図は、 本実施の形態に係るリスト管理装置によるスレッドロー力ル変数管 理の概念を説明するための説明図であり、 第 2図は、 本実施の形態に係るリス ト 管理装置の構成を示す機能ブロック図であり、 第 3図は、 第 2図に示したデータ 検索部の処理手順を示すフローチャートであり、 第 4図は、 データ登録処理の処 理手順を示すフローチヤ一トであり、 第 5図は、 本実施の形態に係るリスト管理 プログラムを実行するコンピュータシステムを示す図である。 発明を実施するための最良の形態  FIG. 1 is an explanatory diagram for explaining the concept of thread variable variable management by the list management device according to the present embodiment. FIG. 2 is a diagram illustrating the list management device according to the present embodiment. FIG. 3 is a functional block diagram showing the configuration, FIG. 3 is a flowchart showing a processing procedure of a data search unit shown in FIG. 2, and FIG. 4 is a flowchart showing a processing procedure of data registration processing. FIG. 5 is a diagram showing a computer system that executes the list management program according to the present embodiment. BEST MODE FOR CARRYING OUT THE INVENTION
以下、 添付図面を参照して、 この発明に係るリスト管理プログラムおよびリス ト管理装置の好適な実施の形態を詳細に説明する。 なお、 ここでは、 この発明に 係るリスト管理装置を用いてスレツドローカル変数のァドレス管理をおこなう場 合について説明する。  Hereinafter, preferred embodiments of a list management program and a list management device according to the present invention will be described in detail with reference to the accompanying drawings. Here, a case where the address management of a thread local variable is performed using the list management device according to the present invention will be described.
ここで、 スレッドローカル変数とは、 メインスレツドに同一名の変数があって 子スレッドにローカルな変数である。 そして、 リスト管理装置は、 メインスレツ ドでの同一名の変数のアドレス (以下 「メインスレッド変数アドレス」 という。 Here, a thread local variable is a variable that has a variable with the same name in the main thread and is local to the child thread. Then, the list management device uses the address of a variable having the same name in the main thread (hereinafter referred to as “main thread variable address”).
) とスレッドローカル変数のアドレス (以下 「スレッドローカル変数アドレス」 という。 ) とを対応付けて管理し、 メインスレツド変数ァドレスを与えられて対 応するスレッド口一カル変数ァドレスを返す。 ) And the address of the thread local variable (hereinafter referred to as “thread local variable address”) are managed in association with each other, and given the main thread variable address, the corresponding thread local variable address is returned.
まず、 本実施の形通に係るリスト管理装置に iるスレツドロー ル変数ァドレ ス管理の概念について説明する。 第 1図は、 本実施の形態に係るリスト管理装置 によるスレツドローカル変数ァドレス管理の概念を説明するための説明図である 。 同図 (a ) は、 従来のスレッドローカル変数アドレス管理を示す図であり、 同 図 (b ) は、 本実施の形態に係るスレッドローカル変数アドレス管理を示す図で める 0 First, the concept of thread control variable address management in the list management device according to the present embodiment will be described. FIG. 1 is an explanatory diagram for explaining the concept of thread local variable address management by the list management device according to the present embodiment. FIG. 2A is a diagram showing conventional thread local variable address management. Figure (b) is Mel a view showing a thread-local variables address management according to the embodiment 0
同図 (a ) に示すように、 従来のスレッドローカル変数アドレス管理では、 メ インスレツドでの変数のァドレスをキーとする 2分探索木を用いて、 メインスレ ッド変数ァドレスとスレツドローカル変数ァドレスを対応させて管理していた。 具体的には、 ソースプログラム上で  In the conventional thread-local variable address management, as shown in Fig. 2 (a), the main thread variable address and the thread local variable address are determined by using a binary search tree whose key is the address of the variable in the main thread. It was managed in correspondence. Specifically, on the source program
i n t v a , ν D , ν c , ν d , v e, ν ι, ν g ;  intva, νD, νc, νd, ve, νι, νg;
と宣言された変数 v a, v b, v c, v d , v e , v fおよび v gは、 変数 v d をルートとし、 v a、 v c、 v eおよび v gをリーフとする 2分探索木で管理さ れる。 そして、 各ノードは、 メインスレッ ド変数ァドレスとスレッド口一カル変 数ァドレスを有し、 たとえば、 変数 V dに対応するノ一ドは、 1 6進で" 0 0 A C" のメインスレッド変数ァドレスと 1 6進で" 0 1 B C " のスレッドロー力ノレ 変数ァドレスを有する。 The variables v a, v b, v c, v d, v e, v f, and v g are managed by a binary search tree with the variable v d as the root and the leaves v a, v c, v e, and v g as the leaves. Each node has a main thread variable address and a thread variable variable address. For example, a node corresponding to the variable Vd is a main thread variable address of "0 0 AC" in hexadecimal. And the hexadecimal "01BC" thread low force variable variable address.
このような 2分探索木を検索する場合に、 まず与えられたメインスレッド変数 アドレスと V dのメインスレツド変数ァドレスが比較され、 与えられたメインス レツド変数ァドレスが V dのメインスレツド変数ァドレスより小さい場合には、 左側のノードすなわち V bのノードがアクセスされ、 この時キャッシュミスが発 生する。 同様に、 与えられたメインスレッド変数ァドレスと V bのメインスレツ ド変数ァドレスが比較され、 与えられたメインスレツド変数ァドレスが V bのメ インスレツド変数ァドレスより小さレ、場合には、 V aのノードがァクセスされ、 この時もキャッシュミスが発生する。 すなわち、 従来のスレッドロー力ル変数ァ ドレス管理では、 各ノ一ドを迪るごとにキャッシュミスが発生し、 検索に多くの 時間がかかることとなる。  When searching such a binary search tree, first, the given main thread variable address is compared with the Vd main thread variable address, and the given main thread variable address is smaller than the Vd main thread variable address. In this case, the node on the left side, that is, the node of Vb is accessed, and a cache miss occurs at this time. Similarly, the given main thread variable address is compared with the main thread variable address of Vb, and if the given main thread variable address is smaller than the main thread variable address of Vb, the node of Va is Is accessed, and a cache miss also occurs at this time. That is, in the conventional thread variable variable address management, a cache miss occurs every time each node is entered, and it takes much time to search.
一方、 同図 (b ) に示すように、 本実施の形態 孫るスレツ ロニ; ¾ル変数管 理では、 変数アドレスリスト 1 0 0を用いて、 一つのノードに (n— 1 ) 個のメ インスレツド変数ァドレス、 次のノードへのポインタ、 ( n - 1 ) 個のメインス レツド変数ァドレスにそれぞれ対応する (n— 1 ) 個のスレツドロー力ノレ変数ァ ドレスを順に並べて管理する。 ここで、 nは、 キャッシュラインのサイズ ÷アド レスサイズであり、 したがって、 各ノードのサイズは、 キャッシュラインのサイ ズの 2倍となる。 たとえば、 キャッシュラインのサイズが 6 4ノ イトでァドレス のサイズが 4バイトである場合には、 n = 6 4 ÷ 4 = 1 6となり、 各ノードのサ ィズは 1 2 8バイトとなる。 On the other hand, as shown in FIG. 11B, in the present embodiment, in the variable variable management, which is a descendant of the present invention, (n−1) messages are stored in one node using the variable address list 100. The thread variable address, a pointer to the next node, and (n-1) thread draw force variables corresponding to the (n-1) main thread variable addresses, respectively. Manage dresses in order. Where n is the size of the cache line divided by the address size, so the size of each node is twice the size of the cache line. For example, if the cache line size is 64 bytes and the address size is 4 bytes, then n = 64 ÷ 4 = 16 and the size of each node is 128 bytes.
また、 各ノードの先頭アドレスは、 キャッシュラインサイズの倍数となるよう に、 各ノードを作成する。 このように、 各ノードの先頭ァドレスをキヤッシュラ インサイズの倍数とし、 各ノードのサイズをキャッシュラインの 2倍とすること によって、 ノードの先頭をアクセスした場合に、 (n _ 1 ) 個のメインスレッド 変数アドレスと次のノードへのポインタをキャッシュメモリに読み込み、 ノード の先頭ァドレス +キャッシュラインサイズのァドレスをアクセスした場合に、 ( n - 1 ) 個のスレツドローカル変数ァドレスをキヤッシュメモリに読み込むこと ができる。  Also, create each node so that the start address of each node is a multiple of the cache line size. In this way, by setting the head address of each node to be a multiple of the cache line size and doubling the size of each node to the cache line, when the head of the node is accessed, (n — 1) main thread When the variable address and the pointer to the next node are read into the cache memory, and the address of the node's first address + cache line size is accessed, (n-1) thread local variable addresses can be read into the cache memory. .
そして、 スレツドローカル変数ァドレスの検索をおこなう場合には、 検索の初 期化処理中に第一ノードの先頭 Tドレスおよび第一ノードの先頭アドレス +キヤ ッシユラインサイズのァドレスにプリフェッチ命令を出し、 第一ノードを検索す る時点で第一ノードがキャッシュメモリに載っているように準備する。 また、 第 一ノードを検索する前に、 第一ノードに格納された次のノードへのァドレスを用 いて第二ノードの先頭ァドレスおよび第二ノ一ドの先頭ァドレス +キャッシュラ インサイズのアドレスにプリフェッチ命令を出すことによって、 第一ノードの検 索中に第二ノードをキャッシュメモリに載せる。  When searching for a thread local variable address, a prefetch instruction is issued during the search initialization process to the first T-address of the first node and the first node's first address + the address of the cache line size, When searching for the first node, prepare so that the first node is in the cache memory. Also, before searching for the first node, the address of the second node and the address of the first node + cache line size are used using the address of the next node stored in the first node. By issuing a prefetch instruction, the second node is placed in the cache memory while the first node is being searched.
このように、 本実施の形態係るスレッド口一カル変数ァドレス管理では、 変数 アドレスリスト 1 0 0の各ノードのデータを検索する時点でノードのデータが全 てキャッシュメモリに載っているように制御することによって、 キャッシュミ―ズ のレイテンシに起因する検索効率の低下を防ぐことができる。  As described above, in the thread-based variable address management according to the present embodiment, control is performed such that all data of the nodes is stored in the cache memory at the time of searching for data of each node in the variable address list 100. As a result, it is possible to prevent the search efficiency from being lowered due to the latency of the cache memory.
たとえば、 検索するデータの数を 6 4、 キヤッシュミスのレイテンシを 8 2ク ロック、 キヤッシュヒットのレイテンシを 3クロックとすると、 従来のスレッド ローカル変数ァドレス管理では、 平均検索回数は、 約 l o g 2 6 4 _ l = 5、 す なわち約 5回であり、 検索の度にキャッシュミスが発生するため、 検索に必要な クロック数は、 8 2クロック X 5 = 4 1 0クロックとなる。 一方、 本実施の形態 係るスレツドローカル変数ァドレス管理では、 平均検索回数は、 6 4 ÷ 2 = 3 2 回と増えるが、 キャッシュミスは発生しないため、 検索に必要なクロック数は、 3クロック X 3 2 = 9 6クロックとなり、 検索時間を大幅に短縮することができ る。 For example, if the number of data to be searched is 64, the latency of cache miss is 82 clocks, and the latency of cache hit is 3 clocks, the conventional thread In local variable address management, the average number of searches is about log 2 64 _ l = 5, that is, about 5 times. Since a cache miss occurs each time a search is performed, the number of clocks required for the search is 8 Two clocks X 5 = 4 10 clocks. On the other hand, in the thread local variable address management according to the present embodiment, the average number of searches increases to 6 4 = 2 = 32 times, but since no cache miss occurs, the number of clocks required for the search is 3 clocks X 3 2 = 96 clocks, and the search time can be greatly reduced.
次に、 本実施の形態に係るリスト管理装置の構成について説明する。 第 2図は 、 本実施の形態に係るリスト管理装置の構成を示す機能ブロック図である。 同図 に示すように、 このリスト管理装置 2 0 0は、 データ登録部 2 1 0と、 データ検 索部 2 2 0と、 リスト記憶部 2 3 0とを有する。  Next, the configuration of the list management device according to the present embodiment will be described. FIG. 2 is a functional block diagram showing a configuration of the list management device according to the present embodiment. As shown in the figure, the list management device 200 includes a data registration unit 210, a data search unit 220, and a list storage unit 230.
データ登録部 2 1 0は、 スレッド口一カル変数ァドレスが変数ァドレスリスト 1 0 0に登録されていない場合に、 新たなェントリを作成し、 変数ァドレスリス ト 1 0 0に追加する処理部である。 また、 このデータ登録部 2 1 0は、 新たなェ ントリを追カ卩したノードが一杯になると、 新たなノードを作成し、 作成するノー ドの先頭ァドレスがキヤッシュラインのサイズの倍数になるようにする。  The data registration unit 210 is a processing unit that creates a new entry and adds it to the variable address list 100 0 when the thread local variable address is not registered in the variable address list 100. When the node that has added a new entry becomes full, the data registration unit 210 creates a new node, and makes the first address of the created node a multiple of the size of the cache line. To
データ検索部 2 2 0は、 メインスレッド変数アドレスを受け取り、 対応するス レツドローカル変数アドレスを検索して返す処理部である。 このデータ検索部 2 2 0は、 検索にあたって、 検索するノードのデータが常にキャッシュメモリに載 つている状態にあるようにプリフェッチ命令を用いて制御する。  The data retrieval unit 220 is a processing unit that receives a main thread variable address, retrieves and returns a corresponding thread local variable address. The data search unit 220 controls the search using a prefetch instruction so that the data of the node to be searched is always in the cache memory.
リス卜記憶部 2 3 0は、 メインスレッド変数ァドレスとスレッド口一カル変数 アドレスを対応させて記憶した記憶部であり、 具体的には、 第 1図 (b ) に示し た変数ァドレスリスト 1 0 0を記'慮する。  The list storage unit 230 stores a main thread variable address and a thread local variable address in association with each other. More specifically, the variable address list 10 shown in FIG. 1 (b) is stored. Note 0.
このように、 このリスト管理装置 2 0 0は、 データ登録部 2 1 0力 先頭ァド レスがキャッシュラインのサイズの倍数になるようにノードを作成し、 データ検 索部 2 2 0が、 検索するノードのデータが常にキャッシュメモリに載っている状 態にあるようにプリフェツチ命令を用いて制御することによって、 キャッシュミ スに起因する検索効率の低下を防ぐことができる。 In this way, the list management device 200 creates a node such that the leading address is a multiple of the cache line size, and the data search unit 220 searches for the data. The cache memory is controlled by using a prefetch instruction so that the data of the node to be executed is always in the cache memory. , It is possible to prevent a decrease in search efficiency caused by the search.
次に、 第 2図に示したデータ検索部 2 2 0の処理手順について説明する。 第 3 図は、 第 2図に示したデータ検索部 2 2 0の処理手順を示すフローチヤ一トであ る。  Next, the processing procedure of the data search unit 220 shown in FIG. 2 will be described. FIG. 3 is a flowchart showing a processing procedure of the data search unit 220 shown in FIG.
同図に示すように、 このデータ検索部 2 2 0は、 検索の初期化処理中に、 キヤ ッシュミスのレイテンシを考慮してリスト記憶部 2 3 0に記憶した変数ァドレス リスト 1 0 0の先頭ノードをプリフェッチする (ステップ S 3 0 1 ) 。 また、 先 頭ノードの検索を開始する前に、 次のノードをプリフェッチし (ステップ S 3 0 2 ) 、 次のノ一ドの検索開始前に次のノ一ドがキヤッシュメモリに载るように準 備する。  As shown in the figure, the data search unit 220 receives the first node of the variable address list 100 stored in the list storage unit 230 in consideration of the cache miss latency during the search initialization process. Is prefetched (step S301). Also, before starting the search for the first node, the next node is prefetched (step S302), so that the next node enters the cache memory before the search for the next node starts. prepare.
そして、 ノ一ド内のデータ検索用インデックス iを 「1」 に初期化し (ステツ プ S 3 0 3 ) 、 ノードから i番目のデータを取り出し (ステップ S 3 0 4 ) 、 登 録したデータの終端である力否かを調べる (ステップ S 3 0 5 ) 。 ここで、 登録 したデータの終端であるか否かは、 データの値が 「0」 であるか否かによって調 ベる。  Then, the data search index i in the node is initialized to “1” (step S303), the i-th data is extracted from the node (step S304), and the end of the registered data is obtained. (Step S305). Here, whether or not the end of the registered data is determined depending on whether or not the data value is “0”.
その結果、 登録したデータの終端でない場合には、 与えられたメインスレッド 変数アドレスとデータが一致するか否かを調べ (ステップ S 3 0 6 ) 、 一致しな かった場合には、 iを 「1」 増やし (ステップ S 3 0 7 ) 、 i力 「1 6」 より小 さいか否か、 すなわち、 このノード内に次のデータがあるか否かを調べる (ステ ップ S 3 0 8 ) 。  As a result, if it is not the end of the registered data, it is checked whether or not the given main thread variable address matches the data (step S306), and if not, i is set to “ The value is increased by 1 (step S307), and it is checked whether the i-force is smaller than "16", that is, whether or not the next data exists in this node (step S308).
そして、 iが 「1 6」 より小さい場合には、 ステップ S 3 0 4に戻って、 次の データを調べ、 iが 「1 6 J になった場合には、 ステップ S 3 0 2に戻って次の ノードを検索する。 この時、 次のノードは前回のステップ S 3 0 2のプリフェツ チによってキャッシュメモリに載っている状態にある。 また、 次のノードの検索 を開始する前に、 次々ノードをプリフェッチする。  If i is smaller than "1 6", the flow returns to step S304 to check the next data. If i becomes "16J", the flow returns to step S302. Search for the next node At this time, the next node is in the state of being stored in the cache memory due to the prefetching of the previous step S302, and before starting the search for the next node, one after another Prefetch.
一方、 与えられたメインスレツド変数ァドレスとデータが一致した場合には、 対応するスレツドローカル変数ァドレスを返し (ステップ S 3 0 9 ) 、 処理を終 了する。 また、 i番目のデータがデータの終端である場合には、 データ登録処理 によってメインスレツド変数ァドレスと対応するスレッド口一カル変数ァドレス とを新たなエントリとしてノードに追加し (ステップ S 3 1 0 ) 、 登録したスレ ッドローカル変数ァドレスを返す (ステップ S 3 1 1 ) 。 On the other hand, if the given main thread variable address matches the data, the corresponding thread local variable address is returned (step S309), and the processing ends. Complete. If the i-th data is at the end of the data, the main thread variable address and the corresponding thread local variable address are added to the node as new entries by data registration processing (step S310). The registered thread local variable address is returned (step S311).
ごのように、 このデータ検索部 2 2 0が、 変数アドレスリスト 1 0 0の各ノー ドの検索を開始する前に次のノードをプリフェッチすることによって、 各ノード 検索時にノード内の全てのデータがキャッシュメモリに f つている状態とするこ とができる。  As described above, the data search unit 220 prefetches the next node before starting the search of each node in the variable address list 100, so that all data in the node is searched at the time of each node search. Are in the cache memory.
次に、 データ登録処理 (ステップ S 3 1 0 ) の処理手順について説明する。 第 4図は、 データ登録処理の処理手順を示すフローチャートである。 なお、 このデ ータ登録処理は、 第 2図に示したデータ登録部 2 1 0の処理に対応する。  Next, the processing procedure of the data registration processing (step S310) will be described. FIG. 4 is a flowchart showing a procedure of a data registration process. Note that this data registration processing corresponds to the processing of the data registration unit 210 shown in FIG.
同図に示すように、 このデータ登録処理は、 新たなローカル変数のアドレスを 取得し (ステップ S 4 0 1 ) 、 取得したアドレスをスレッドローカル変数アドレ スとし、 与えられたメインスレツド変数ァドレスとともに変数ァドレスリスト 1 0 0に新たなエントリとして登録する (ステップ S 4 0 2 ) 。 そして、 新たなェ ントリを追加したノードに次のェントリを登録する空きがあるか否かを調べ (ス テツプ S 4 0 3 ) 、 空きがある場合には、 そのまま処理を終了する。  As shown in the figure, in this data registration process, the address of a new local variable is obtained (step S401), the obtained address is used as the thread local variable address, and the variable with the given main thread variable address. It is registered as a new entry in the address list 100 (step S402). Then, it is checked whether or not the node to which the new entry has been added has room for registering the next entry (step S403). If there is a space, the process ends as it is.
一方、 空きがない場合には、 キャッシュラインサイズの倍数を開始ァドレスと する新たなノードを作成する (ステップ S 4 0 4 ) 。 この時、 作成したノード内 の全データをゼロクリアしておく。 そして、 作成したノードを変数ァドレスリス ト 1 0 0につなげる (ステップ S 4 0 5 ) 。  On the other hand, if there is no free space, a new node with a multiple of the cache line size as the start address is created (step S404). At this time, all data in the created node is cleared to zero. Then, the created node is connected to the variable address list 100 (step S405).
上述したように、 本実施の形態では、 データ登録部 2 1 crが、 変数アドレスリ スト 1 0 0に追加するノ一ドを新たに作成する場合に、 先頭ァドレスがキヤッシ ユラインサイズの倍数となるように作成し、 データ検索部 2 2 0力 各ノードを 検索する時点で常にノードのデータがキャッシュメモリに載っている状態とする ようにプリフエチ命令を用いて制御することとしたので、 キャッシュミスのレイ テンシに起因する検索効率の低下を防ぎ、 スレツドローカル変数ァドレスを高速 に検索することができる。 As described above, in the present embodiment, when the data registration unit 21 cr newly creates a node to be added to the variable address list 100, the head address is set to a multiple of the cache line size. The data search unit was designed to use a prefetch instruction so that the node data was always stored in the cache memory when searching for each node. High-speed thread local variable addressing by preventing search efficiency from deteriorating due to the latency of Can be searched.
なお、 本実施の形態では、 リスト管理装置について説明したが、 このリスト管 理装置が有する構成をソフトウエアによって実現することで、 同様の機能を有す るリスト管理プログラムを得ることができる。 そこで、 このリスト管理プロダラ ムを実行するコンピュータシステムについて説明する。  In the present embodiment, the list management device has been described. However, by realizing the configuration of the list management device by software, a list management program having the same function can be obtained. Therefore, a computer system that executes the list management program will be described.
第 5図は、 本実施の形態に係るリスト管理プログラムを実行するコンピュータ システムを示す図である。 同図に示すように、 このコンピュータシステム 500 は、 本体部 510と、 本体部 510からの指示によって表示画面を表示する表示 装置 520と、 コンピュータシステム 500に種々の情報を入力するためのキー ボード 530と、 表示画面上の位置を指定するマウス 540とを有する。  FIG. 5 is a diagram showing a computer system that executes the list management program according to the present embodiment. As shown in the figure, the computer system 500 includes a main body 510, a display device 520 for displaying a display screen according to an instruction from the main body 510, and a keyboard 530 for inputting various information to the computer system 500. And a mouse 540 for specifying a position on the display screen.
また、 本体部 510は、 キャッシュを有する CPU 511と、 RAM 512と 、 ROM 513と、 ハードディスクドライブ (HDD) 514と、 CD-ROM /DVDドライブ 515と、 FDドライブ 516と、 I/Oインタフェース 51 7と、 LANィンタフェース 518と、 モデム 519とを有する。  The main unit 510 includes a CPU 511 having a cache, a RAM 512, a ROM 513, a hard disk drive (HDD) 514, a CD-ROM / DVD drive 515, an FD drive 516, and an I / O interface 51 7 And a LAN interface 518 and a modem 519.
そして、 このコンピュータシステム 500は、 LANインタフェース 518に 接続された LAN 550を介してほかのコンピュータシステム (PC) 551、 サーバ 552、 プリンタ 553などに接続することができ、 モデム 519を介し て公衆回線 560に接続することができる。  The computer system 500 can be connected to another computer system (PC) 551, a server 552, a printer 553, and the like via a LAN 550 connected to a LAN interface 518, and can be connected to a public line 560 via a modem 519. Can be connected to
また、 このコンピュータシステム 500において実行されるリスト管理プログ ラムは、 フロッピィディスク (FD) 、 CD-ROM, DVDディスク、 光磁気 ディスクおよび I C力一ドなどの可搬型記憶媒体に記憶され、 これらの記憶媒体 から読み出されてコンピュータシステム 500にインストールされる。  The list management program executed in the computer system 500 is stored in a portable storage medium such as a floppy disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, and an IC card. It is read from the medium and installed on computer system 500.
あるいは、 このリスト管理プログラムは、 LANインタフェース 518を介し て接続されたサーバ 552のデータベース、 他のコンピュータシステム (PC) 551のデータベースおよび公衆回線 560を介して接続される他のコンビユー タシステムのデ一タベースなどに記憶され、 これらのデータベースから読み出さ れてコンピュータシステム 500にインストールされる。 そして、 インストールされたリスト管理プログラムは、 HD D 5 1 4に記憶さ れ、 RAM 5 1 2、 R OM 5 1 3などを利用して C P U 5 1 1により実行される 以上説明したように、 本発明によれば、 1回のメモリアクセスによりキヤッシ ュメモリに読み込めるデータの個数に基づいてリスト構造を構成する各ノードに 格納するデータの個数が定められたリストにデータを登録し、 登録したデータを リストを構成するノ一ドを順番に迪つて検索する際に、 各ノ一ドの検索開始時に は各ノードがキヤッシュメモリに読み込まれている状態とする制御をおこないつ つ検索するよう構成したので、 キャッシュミスに起因するデータ検索速度の低下 を防ぐことができるという効果を奏する。 産業上の利用可能性 Alternatively, the list management program may be a database of a server 552 connected via a LAN interface 518, a database of another computer system (PC) 551, and a database of another computer system connected via a public line 560. Etc., read from these databases, and installed in the computer system 500. The installed list management program is stored in the HDD 514 and executed by the CPU 511 using the RAM 511, the ROM 513, and the like. According to the present invention, data is registered in a list in which the number of data to be stored in each node constituting the list structure is determined based on the number of data that can be read into the cache memory by one memory access, and the registered data is listed. When searching for the nodes that make up the nodes in order, at the start of the search for each node, control is performed so that each node is in the state of being read into the cache memory. This has the effect of preventing a reduction in data search speed due to a cache miss. Industrial applicability
以上のように、 本宪明に係るリスト管理プログラムおよびリスト管理装置は、 キヤシュミスのレイテンシが大きい情報処理装置でリスト構造を用いてデータを 管理する場合に適している。  As described above, the list management program and the list management device according to the present invention are suitable for the case where data is managed using a list structure in an information processing device having a large latency of cache miss.

Claims

請 求 の 範 囲 The scope of the claims
1 . キャッシュメモリを有するコンピュータで使用されるリスト構造のデータ を管理するリスト管理プログラムであって、 1. A list management program for managing data of a list structure used in a computer having a cache memory,
1回のメモリアクセスにより前記キャッシュメモリに読み込めるデータの個数 に基づいて前記リスト構造を構成する各ノードに格納するデータの個数が定めら れたリス トにデータを登録するデータ登録手順と、  A data registration procedure for registering data in a list in which the number of data to be stored in each node constituting the list structure is determined based on the number of data that can be read into the cache memory by one memory access;
前記データ登録手順によりリストに登録されたデータを該リストを構成するノ 一ドを順番に迪つて検索する際に、 各ノードの検索開始時には該各ノードがキヤ ッシュメモリに読み込まれている状態とする制御をおこないつつ検索するデータ 検索手順と、  When searching the data registered in the list by the data registration procedure for nodes constituting the list in order, it is assumed that each node is read into the cache memory at the start of the search of each node. Data search procedure to search while controlling,
を実行することを特徴とするリスト管理プログラム。  A list management program characterized by executing the following.
2 . 前記データ検索手順は、 検索するノードに対して事前にプリフェッチ命令 を出すことによって、 該ノードの検索開始時には該ノードがキャッシュメモリに 読み込まれている状態とする制御をおこなうことを特徴とする請求の範囲第 1項 に記載のリスト管理プログラム。 2. The data search procedure is characterized in that a prefetch instruction is issued to a node to be searched in advance, so that the node is read into the cache memory at the start of the search of the node. The list management program according to claim 1.
3 . 前記データ検索手順は、 各ノードの検索を開始する前に次のノードに対し てプリフェッチ命令を出すことによって、 該次のノ一ドの検索開始時には該次の ノードがキャッシュメモリに読み込まれている状態とする制御をおこなうことを 特徴とする請求の範囲第 2項に記載のリスト管理プロダラム。 3. In the data search procedure, a prefetch instruction is issued to the next node before starting the search of each node, so that the next node is read into the cache memory at the start of the search of the next node. 3. The list management program according to claim 2, wherein the list management program performs control for setting the list management state.
4 . 前記データ登録手順は、 前記デー の登録に利用する新たなノードが必要 になった場合に、 2回のメモリアクセスによりキャッシュメモリに載るノードを 作成してデータを登録することを特徴とする請求の範囲第 1項、 第 2項または第 3項に記載のリス ト管理プログラム。 . 4. The data registration procedure is characterized in that, when a new node to be used for registering the data becomes necessary, a node to be placed in the cache memory is created by two memory accesses to register the data. The list management program according to claim 1, 2, or 3. .
5 . 前記データ登録手順は、 前記データの登録に利用する新たなノードが必要 になった場合に、 キャッシュラインサイズの倍数を先頭ァドレスとしてキヤッシ ユラインサイズの 2倍の大きさのノードを作成することにより、 該作成されたノ ードが 2回のメモリアクセスでキャッシュメモリに載ることを特徴とする請求の 範囲第 4項に記載のリスト管理プログラム。 5. In the data registration procedure, when a new node to be used for registering the data becomes necessary, a node having a size twice as large as the cache line size is created using a multiple of the cache line size as a leading address. 5. The list management program according to claim 4, wherein the created node is stored in the cache memory by two memory accesses.
6 . キャッシュメモリを有する情報処理装置で使用されるリスト構造のデータ を管理するリスト管理装置であって、 6. A list management device for managing data having a list structure used in an information processing device having a cache memory,
1回のメモリアクセスにより前記キャッシュメモリに読み込めるデータの個数 に基づいて前記リスト構造を構成する各ノードに格納するデータの個数が定めら れたリストにデータを登録するデータ登録手段と、  Data registration means for registering data in a list in which the number of data to be stored in each node constituting the list structure is determined based on the number of data that can be read into the cache memory by one memory access;
前記データ登録手段によりリストに登録されたデータを該リストを構成するノ 一ドを順番に迪つて検索する際に、 各ノードの検索開始時には該各ノードがキヤ ッシュメモリに読み込まれている状態とする制御をおこないつつ検索するデータ 検索手段と、  When searching the data registered in the list by the data registration means for nodes constituting the list in order, it is assumed that each node is read into the cache memory at the start of the search of each node. Data search means for searching while controlling,
を備えたことを特徴とするリスト管理装置。  A list management device comprising:
7 . 前記データ検索手段は、 検索するノードに対して事前にプリフェッチ命令 を出すことによって、 該ノードの検索開始時には該ノードがキャッシュメモリに 読み込まれている状態とする制御をおこなうことを特徴とする請求の範囲第 6項 に記載のリスト管理装置。 7. The data search means executes a prefetch instruction to a node to be searched in advance to control the node to be in a state of being read into the cache memory at the start of the search of the node. The list management device according to claim 6.
8 . 前記データ検索手段は、 各ノードの検索を開始する前 次めノニドに対し てプリフェッチ命令を出すことによって、 該次のノードの検索開始時には該次の ノードがキャッシュメモリに読み込まれている状態とする制御をおこなうことを 特徴とする請求の範囲第 7項に記載のリスト管理装置。 8. The data search means issues a prefetch instruction to the next nonide before starting the search of each node, so that the next node is read into the cache memory at the start of the search of the next node. 8. The list management device according to claim 7, wherein the list management device performs the following control.
9 . 前記データ登録手段は、 前記データの登録に利用する新たなノードが必要 になつた場合に、 2回のメモリアクセスによりキャッシュメモリに載るノードを 作成してデータを登録することを特徴とする請求の範囲第 6項、 第 7項または第 8項に記載のリスト管理装置。 9. The data registering means is characterized in that, when a new node to be used for registering the data becomes necessary, a node to be placed in the cache memory is created by two memory accesses to register the data. 9. The list management device according to claim 6, 7, or 8.
1 0 . 前記データ登録手段は、 前記データの登録に利用する新たなノードが必 要になった場合に、 キヤッシュラインサイズの倍数を先頭ァドレスとしてキヤッ シュラィンサイズの 2倍の大きさのノードを作成することにより、 該作成された ノードが 2回のメモリアクセスでキャッシュメモリに載ることを特徴とする請求 の範囲第 9項に記載のリスト管理装置。 10. The data registering means, when a new node used for registering the data becomes necessary, sets a node having a size twice as large as the cache line size with a multiple of the cache line size as a leading address. 10. The list management device according to claim 9, wherein the created node is placed on the cache memory by performing two memory accesses.
PCT/JP2003/000417 2003-01-20 2003-01-20 List management program and list management device WO2004066146A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000417 WO2004066146A1 (en) 2003-01-20 2003-01-20 List management program and list management device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000417 WO2004066146A1 (en) 2003-01-20 2003-01-20 List management program and list management device

Publications (1)

Publication Number Publication Date
WO2004066146A1 true WO2004066146A1 (en) 2004-08-05

Family

ID=32750564

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/000417 WO2004066146A1 (en) 2003-01-20 2003-01-20 List management program and list management device

Country Status (1)

Country Link
WO (1) WO2004066146A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583165A (en) * 1982-06-30 1986-04-15 International Business Machines Corporation Apparatus and method for controlling storage access in a multilevel storage system
JPH04111131A (en) * 1990-08-31 1992-04-13 Nec Corp Computer language translating device
JPH0728702A (en) * 1993-07-14 1995-01-31 Hitachi Ltd Program converting method
JPH08212081A (en) * 1995-02-08 1996-08-20 Hitachi Ltd Memory allocation method, compiling method and compiler

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583165A (en) * 1982-06-30 1986-04-15 International Business Machines Corporation Apparatus and method for controlling storage access in a multilevel storage system
JPH04111131A (en) * 1990-08-31 1992-04-13 Nec Corp Computer language translating device
JPH0728702A (en) * 1993-07-14 1995-01-31 Hitachi Ltd Program converting method
JPH08212081A (en) * 1995-02-08 1996-08-20 Hitachi Ltd Memory allocation method, compiling method and compiler

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Hidehisa TAKAMIZAWA et al., "Hairetsu o Mochiita Cash Conscious na Teian", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku, The Institute of Electronics, Information and Communication Engineers, 10 July, 2002, Vol. 102, No. 207, pages 43 - 48 *
Shuji YAMAMURA et al., "Senkei List o Taisho to shita Data Preload Hoshiki no Hyoka", Information Processing Society of Japan Kenku Hokoku, (2000-ARC-139), 05 August, 2000, Vol. 2000, No. 74, pages 115-122 *
Shuji YAMAMURA et al., "Senkei List o Taisho to shita Data Preload Hoshiki no Hyoka", Information Processing Society of Japan Kenku Hokoku, (2000-ARC-139), 05 August, 2000, Vol. 2000, No. 74, pages 67 - 72 *
Teruhisa MIURA and Toru ISHIDA, "Stochastic Node Caching for Memory-bounded Search", Proceedings., National Conference on Artificial Intelligence, 26 July, 1998, 15th, pages 450 - 456 *
Yoshihisa HONDA et al., "CSS-tree no Sonyu Shori no Kosokuka", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku, 10 July, 2002, Vol. 102, No. 207, pages 49 - 54 *

Similar Documents

Publication Publication Date Title
US7552107B2 (en) Associative database scanning and information retrieval
US7216066B2 (en) Method and apparatus for generating and managing a language model data structure
US7953685B2 (en) Frequent pattern array
US6467026B2 (en) Web cache memory device and browser apparatus utilizing the same
JP2002230021A (en) Information retrieval device and method, and storage medium
CN104160397B (en) Position unique file
KR19980071452A (en) Information registration method and document information processing device
US6564222B1 (en) Information processing system and method that selects an appropriate information retrieval system based on a context in which a user makes a request for retrieval
JP2008268985A (en) Method for attaching tag
JP2001195197A (en) Digital data sub-system including directory to efficiently provide format information about stored record
WO2004066146A1 (en) List management program and list management device
US7610449B2 (en) Apparatus and method for saving power in a trace cache
JP2001067881A (en) Associative storage and storage medium
JP2000227921A (en) Method and device for retrieving data, and recording medium
JP4615010B2 (en) Document management program and document management method
JP2002032376A (en) Method for constructing database and device for retrieving database
JP4881196B2 (en) Information retrieval apparatus and information retrieval program
CN117131090A (en) Data caching method and related device
JP3847836B2 (en) Character string search method and apparatus
JPH031250A (en) Cache memory retrieving device
JP2003006214A (en) Document retrieval processing method, system, and storage medium
JP2024049305A (en) Blockchain-based data processing device and method
JPH10228489A (en) Database control system and recording medium
JP2006092136A (en) Document retrieval system and method
JP2002245064A (en) Device and method for supporting retrieval

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 10500290

Country of ref document: US

AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP