CN1791854B - 信息处理系统和信息处理方法 - Google Patents

信息处理系统和信息处理方法 Download PDF

Info

Publication number
CN1791854B
CN1791854B CN2004800133972A CN200480013397A CN1791854B CN 1791854 B CN1791854 B CN 1791854B CN 2004800133972 A CN2004800133972 A CN 2004800133972A CN 200480013397 A CN200480013397 A CN 200480013397A CN 1791854 B CN1791854 B CN 1791854B
Authority
CN
China
Prior art keywords
value
array
pmm
global
project
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
CN2004800133972A
Other languages
English (en)
Other versions
CN1791854A (zh
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.)
Turbo Data Laboratories Inc
Original Assignee
Turbo Data Laboratories Inc
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 Turbo Data Laboratories Inc filed Critical Turbo Data Laboratories Inc
Publication of CN1791854A publication Critical patent/CN1791854A/zh
Application granted granted Critical
Publication of CN1791854B publication Critical patent/CN1791854B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/24569Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在分布式存储器中,存储在各种存储器中的一连串元素通过单个指令输入/输出,并且处理和通信被统一。在相邻PMM(12)间,存在用于将分组从第一PMM发送到第二PMM的第一分组传输路径(14)和用于将分组从第二PMM发送到第一PMM的第二分组传输路径(16)。每个PMM具有由值列表和指针序列组成的信息块。值列表包含按对应于属于特定项目的项目值的项目值号码的顺序的项目值,用于表达表型数据,所述表型数据被表达为一连串记录,每个记录包含项目和属于该项目的项目值。指针序列包含用于指示唯一序列集合安排顺序中的项目号码的指针值。由各存储器保存的信息块构成全局信息块。

Description

信息处理系统和信息处理方法
技术领域
本发明涉及采用能够实现SIMD(单指令流,多数据流)的并行计算机体系结构的信息处理系统。
背景技术
这些日子以来,在计算机被引入到整个社会的各个场所,并且包括因特网在内的网络被广泛应用之时,海量的数据在各处被存储。为了处理这种海量数据,需要大量的计算,为此,尝试引入并行处理是就是自然而然的了。
并行处理体系结构大致上被分成“共享存储器型”和“分布式存储器型”。前者(“共享存储器型”)是这样一种系统,在这种系统中多个处理器共享一个巨大的存储空间。在此系统中,由于处理器群组和共享存储器之间的流量成为了瓶颈,因此利用多于一百个处理器构造一个实际系统是不太容易的。因此,例如,当计算十亿个浮点变量的平方根时,对单个CPU的加速比最多是100倍。根据经验,上限约为30倍。
在后者(“分布式存储器型”)中,每个处理器具有一个本地存储器,并且这些处理器被集成以构造一个系统。在此系统中,可以设计包括几百到几万个处理器的硬件系统。因此,当计算十亿个浮点变量的平方根时,可以使对单个CPU的加速比为几百到几万倍。但是,在后者中也存在某些稍后所述的问题。
[第一问题:大型阵列的分配管理]
“分布式存储器型”的第一问题是数据的分配管理问题。
大量数据(由于它一般是阵列,所以以下描述中将使用阵列这个术语)无法被包含在一个处理器所拥有的一个本地存储器中,并且它必然要被分配到多个本地存储器并被多个本地存储器所管理。显而易见的是,除非引入有效且灵活的分配管理机制,否则在程序的开发和执行中会导致各种麻烦。
[第二问题:处理器间通信的低效率]
当分布式存储器型系统的每个处理器尝试访问大型阵列时,虽然它可迅速访问其自己的本地存储器上的阵列元素,但是对由另一个处理器所拥有的阵列元素的访问必然要求处理器间通信。和与本地存储器的通信相比,处理器间通信的性能极低,并且据说最少要求100个时钟。从而在执行排序之时,会参考大型阵列的整个区域,并且处理器间通信频繁发生,因此性能极大降低。
此问题将会被更具体地描述。1999年,个人计算机使用一个到几个CPU,并且被构造为“共享存储器型”。此个人计算机中使用的标准CPU以比存储器总线约快5至6倍的内部时钟进行操作,其内部具有自动并行执行功能和流水线处理功能,并且一段数据可在一个时钟(存储器总线)上被处理。
从而,在“分布式存储器型”多处理器系统中,虽然处理器的数目较大,但是它会变得比单个处理器(共享存储器型)慢100倍。
[第三问题:程序的提供]
“分布式存储器型”的第三问题是如何向许多处理器提供程序的问题。
在不同程序被加载到极大量的处理器并且整个系统被协同操作的系统(MIMD:多指令流,多数据流)中,程序创建、汇编和分布要求很大负载。
另一方面,在许多处理器被相同程序所操作的系统(SIMD:单指令流,多数据流)中,程序的自由度降低,并且也会想象这样一种情形:无法开发产生所需结果的程序。
本发明提供了一种方法和计算机体系结构,用于解决“分布式存储器型”的第一至第三问题。
顺便提一句,为了存储表状数据,本发明的发明人设计了一种结构和一种处理方法,其中为每个项目形成一个信息块,并且在信息块中提供一个存储项目值的值列表和一个存储用于指定各个记录的值列表的值(指针值)的指针阵列,并且从一个记录号顺序地指定指针阵列和值列表,以便可获得的表状视图(参见国际公布WO00/10103,尤其是图3和图4)。在此结构中,随着记录数目增大,值列表和指针阵列,尤其是指针阵列变得非常大,因此,希望这被分配到多个存储器,并且诸如检索、制表和排序这样的处理能够被单个指令所执行。
于是,本发明的一个目的是提供一种计算机体系结构,其能够通过在分布式存储器型中以单条指令输入/输出存储在各种存储器中的阵列中的元素并且通过综合处理和通信,从而实现甚高速并行处理。
发明内容
本发明的目的由一种信息处理系统实现,该信息处理系统包括
多个信息处理单元,其中每一个保存本地信息块,以表示表状数据,该表状数据被表达为包括项目和属于该项目的项目值的记录阵列,以及
分组传输路径,用于连接多个信息处理单元,
其中本地信息块包括值列表,其中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序存储的,还包括指针阵列,其中指示项目值号码的指针值是按指示对应于记录的唯一本地顺序的号码的顺序存储的,并且
该信息处理单元的特征在于
多个信息处理单元中的每一个包括
用于基于指示本地信息块中的本地顺序的号码创建指示所有多个信息处理单元中的唯一全局顺序的号码的装置,
用于通过分组传输路径将值列表发送到另一信息处理单元的装置,
用于通过分组传输路径接收来自另一信息处理单元的值列表的装置,以及
用于通过参考来自另一信息处理单元的值列表中的项目值,将所有多个信息处理单元中的全局顺序赋予本地信息块中的值列表的项目值的装置(权利要求1)。
根据本发明,分组被并行发送到分组传输路径,并且在每个PMM中,其自己掌握的本地值列表的项目值的顺序可在考虑到另一PMM的值列表的顺序的情况下来确定。因此,在每个PMM,可以适当地掌握其自己掌握的子集作为全局表状数据的位置或顺序。通过掌握上述位置或顺序,可顺利实现上述检索、交叉制表和排序处理。
此外,本发明的目的由一种信息处理系统实现,该信息处理系统包括多个存储器模块,其中每一个具有存储器、接口和控制设备;以及分组传输路径,其连接相邻存储器模块的接口,
其中多个存储器模块中的每一个的存储器保存信息块,该信息块包括值列表,用于表示表状数据,该表状数据被表达为各自包括项目以及属于该项目的项目值的记录阵列,并且在该值列表中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序存储的,该信息块还包括指针阵列,其中指示项目值号码的指针值是按有序集合阵列的唯一顺序存储的,并且全局信息块由各存储器中保存的信息块的聚集形成,并且
该信息处理系统的特征在于
多个存储器模块中的每一个的控制设备包括偏置值存储装置,用于保存偏置值,以指示其自己掌握的信息块作为全局信息块的子集占据了指针阵列中的哪个位置,
全局有序集合阵列创建装置,用于基于偏置值创建全局信息块中的全局有序集合阵列,
分组发送装置,用于封装其自己的项目值列表并通过使用相邻存储器模块之间的传输路径发送该值列表,
分组接收装置,用于并行于由分组发送装置进行的分组发送,通过使用传输路径,来接收另一存储器模块的封装后的值列表,以及
顺序判断装置,用于通过参考接收到的各个值列表确定其自己的项目值列表中的项目值在全局信息块中的顺序,并且用于将项目值在全局信息块中的顺序存储在与该项目相关的全局值号码阵列中(权利要求2)。
在优选实施例中,顺序判断装置被构造为通过将判断出的各个相对顺序与原始顺序之间的差异的总和加到该原始顺序,来计算在全局信息块中的顺序(权利要求3)。
在更优选的实施例中,顺序判断装置比较发送的分组和接收的分组,并删除重复值(权利要求4)。
在另一优选实施例中,多个存储器模块中的每一个的控制设备包括
标记阵列设置装置,用于对于要检索的项目创建尺寸与项目的值列表的尺寸相同的标记阵列,并且用于向对应于符合检索条件的项目值的标记阵列的内部赋予特定值;
检索条件判断装置,用于通过对于要检索的项目,指定对应于由有序集合阵列所指示的位置的指针阵列中的值,然后通过指定对应于由指针阵列中的值所指示的位置处的标记阵列的值,来判断对应于有序集合阵列中的值的记录是否符合检索条件,以及
本地检索装置,用于将符合检索条件的有序集合的值以及相应的全局有序集合的值存储到第二有序集合阵列和第二全局有序集合阵列中,
其中分组发送装置使用传输路径,封装第二全局有序集合阵列并发送第二全局有序集合阵列,分组接收装置使用传输路径,并接收另一存储器模块的封装后的第二全局有序集合阵列,
还包括第二顺序判断装置,用于通过参考接收到的各个第二全局有序集合阵列来确定其自己的全局有序集合阵列的值在全局信息块中的顺序,并且用于将全局信息块中的顺序存储到第三全局有序集合阵列中,并且
符合检索条件的记录的顺序由第三全局有序集合阵列的值决定(权利要求5)。
此外,在另一优选实施例中,多个存储器模块中的每一个的控制设备包括
总计装置,用于对于要制表的项目创建逻辑坐标阵列,该逻辑坐标阵列的尺寸是通过将项目的值列表的尺寸相乘而获得的,并且用于通过对由有序集合阵列中的值所指示的并且对应于要制表的项目的指针阵列中的值集合的逻辑坐标阵列的值进行总计,来获取每个项目的每个项目值集合的记录的数目,
其中分组发送装置使用传输路径,并封装和发送其中已由总计装置执行了总计的逻辑坐标阵列,每个全局项目的每个项目值集合的记录数目通过在多个存储器模块中的每一个中顺序执行同一逻辑坐标阵列的总计以及利用传输路径进行的发送而被存储在逻辑坐标阵列中,并且
在多个存储器模块中的每一个中,分组发送装置和分组接收装置顺序执行其中总计已结束的逻辑坐标阵列的接收和存储,以及利用传输路径进行的传输(权利要求6)。
在更优选的实施例中,总计装置对于要制表的项目创建多维总计阵列,其尺寸是通过将项目的值列表的尺寸相乘而获得的;通过对由有序集合阵列中的值所指示的并且对应于要制表的项目的指针阵列中的值集合的总计阵列中的值进行总计来获取每个项目的每个项目值集合的记录数目;并且在完成了到总计阵列中的位置的映射的逻辑坐标阵列中根据所述映射安排总计阵列中的值(权利要求7)。
此外,在另一优选实施例中,多个存储器模块中的每一个的控制设备包括
存在数字阵列创建装置,用于对于要排序的项目创建尺寸与项目的值列表的尺寸相同的存在数字阵列,并用于安排有序集合阵列的值数目,以指定值列表中的各项目值;
累计号码阵列创建装置,用于累计所述存在数字阵列中的值,计算累计号码,以指示在存储器模块中执行排序时具有相应的项目值的记录的头部位置,并且将累计号码安排在累计号码阵列中,以及
本地排序装置,用于创建第二全局值号码阵列、第四全局有序集合阵列和第三有序集合阵列,基于对应于由有序集合阵列的值所指示的项目值的累计号码阵列中的累计号码,将对应于项目值的全局值号码安排在由第二全局值号码阵列中的累计号码所指示的位置处,并且将有序集合阵列的值和相应的全局有序集合阵列的值安排在由第三有序集合阵列和第四全局有序集合阵列中的累计号码所指示的位置处,
其中分组发送装置使用传输路径,并且封装和发送至少第二全局值号码阵列,分组接收装置并行使用传输路径,并接收另一存储器模块的封装后的第二全局值阵列,
还包括第三顺序判断装置,用于将其自己的第二全局值号码阵列中的值在全局信息块中的顺序存储到第五全局有序集合阵列中,并且排序后的记录的顺序由第五全局有序集合阵列中的值决定(权利要求8)。
在更优选的实施例中,分组发送装置通过将第二全局值号码阵列的值和第四全局有序集合阵列的值形成一对,来封装和发送第二全局值号码阵列和第四全局有序集合阵列,分组接收装置接收另一存储器模块的封装后的第二全局值号码阵列和第四全局有序集合阵列,并且
第三顺序判断装置通过在其自己的第二全局值号码阵列的值和另一存储器模块的第二全局号码阵列的值相等时,比较形成一对各自的值的第四全局有序集合阵列的值,来判断顺序(权利要求9)。
在另一优选实施例中,存储器模块的控制设备包括寄存器群组,用作该阵列,并且使用该阵列的操作是在不访问存储器的情况下执行的(权利要求10)。
前述结构中的各个装置,例如有序集合阵列创建装置、顺序判断装置、标记阵列设置装置、检查条件判断装置、本地检索装置等等是由存储器模块中的控制设备实现的。
此外,在一种信息处理系统中,该信息处理系统包括多个信息处理单元,其中每一个保存本地信息块,以表示表状数据,该表状数据被表达为包括项目和属于该项目的项目值的记录阵列,该信息处理系统还包括分组传输路径,用于连接多个信息处理单元,
其中本地信息块包括值列表,其中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序存储的,还包括指针阵列,其中指示项目值号码的指针值是按指示对应于记录的唯一本地顺序的号码的顺序存储的,
本发明的目的是通过一种信息处理方法实现,该信息处理方法的特征在于包括
多个信息处理单元中的每一个基于指示本地信息块中的本地顺序的号码创建指示所有多个信息处理单元中的唯一全局顺序的号码的步骤,
多个信息处理单元中的每一个通过分组传输路径将值列表发送到另一信息处理单元的步骤,
多个信息处理单元中的每一个通过分组传输路径接收来自另一信息处理单元的值列表的步骤,以及
多个信息处理单元中的每一个通过参考来自另一信息处理单元的值列表中的项目值将所有多个信息处理单元中的全局顺序赋予本地信息块中的值列表的项目值的步骤(权利要求11)。
此外,在一种信息处理系统中,该信息处理系统包括多个存储器模块,其中每一个具有存储器、接口和控制设备,还包括分组传输路径,其连接相邻存储器模块的接口,
其中多个存储器模块中的每一个的存储器保存信息块,该信息块包括值列表,用于表示表状数据,该表状数据被表达为各自包括项目以及属于所述项目的项目值的记录阵列,并且在该值列表中项目值是按对应于属于特定项目的项目值的项目值号码的顺序存储的,该信息块还包括指针阵列,其中指示项目值号码的指针值是按有序集合阵列的唯一顺序存储的,并且全局信息块由各存储器中保存的信息块的聚集形成,
本发明的目的由一种信息处理方法实现,该信息处理方法的特征在于包括
偏置值存储步骤,该步骤保存偏置值,以指示其自己掌握的信息块作为全局信息块的子集占据了指针阵列中的哪个位置,
全局有序集合阵列创建步骤,该步骤基于偏置值创建全局信息块中的全局有序集合阵列,
分组发送步骤,该步骤封装其自己的项目值列表并通过使用相邻存储器模块之间的传输路径发送该值列表,
分组接收步骤,该步骤并行于由分组发送装置进行的分组发送,通过使用传输路径,来接收另一存储器模块的封装后的值列表,以及
顺序判断步骤,该步骤参考接收到的各个值列表,并将其自己的项目值列表中的项目值在全局信息块中的顺序存储在与项目相关的全局值号码阵列中(权利要求12)。
在优选实施例中,顺序判断步骤包括以下步骤:通过将判断出的各个相对顺序与原始顺序之间的差异的总和加到该原始顺序,来计算全局信息块中的顺序(权利要求12)。
在优选实施例中,顺序判断步骤包括以下步骤:通过将判断出的各个相对顺序与原始顺序之间的差异的总和加到该原始顺序,来计算全局信息块中的顺序(权利要求13)。
在更优选的实施例中,在顺序判断步骤中,发送的分组被与接收的分组相比较,并且重复值被删除(权利要求14)。
此外,在另一优选实施例中,在多个存储器模块中的每一个中包括
标记阵列设置步骤,该步骤创建尺寸与项目的值列表的尺寸相同的标记阵列,并且向对应于符合检索条件的项目值的标记阵列的内部赋予特定值,
检索条件判断步骤,该步骤通过对于要检索的项目,指定对应于由有序集合阵列所指示的位置的指针阵列中的值,并通过指定对应于由指针阵列中的值所指示的位置处的标记阵列的值,来判断对应于有序集合阵列中的值的记录是否符合检索条件,
本地检索步骤,该步骤将符合检索条件的有序集合的值以及相应的全局有序集合的值存储到第二有序集合阵列和第二全局有序集合阵列中,
第二分组发送步骤,该步骤封装第二全局有序集合阵列并通过使用传输路径发送第二全局有序集合阵列,
第二分组接收步骤,该步骤并行于分组发送通过使用传输路径,来接收另一存储器模块的封装后的第二全局有序集合阵列,以及
第二顺序判断步骤,该步骤通过参考接收到的各个第二全局有序集合阵列来确定其自己的全局有序集合阵列的值在全局信息块中的顺序,并且将全局信息块中的顺序存储到第三全局有序集合阵列中,
其中符合检索条件的记录的顺序由第三全局有序集合阵列的值决定(权利要求15)。
此外,在另一优选实施例中,在多个存储器模块中的每一个中包括
总计步骤,该步骤对于要制表的项目创建逻辑坐标阵列,该逻辑坐标阵列的尺寸是通过将项目的值列表的尺寸相乘而获得的,该步骤还通过对由有序集合阵列中的值所指示的并且对应于要制表的项目的指针阵列中的值集合的逻辑坐标阵列的值进行总计,来获取每个项目的每个项目值集合的记录的数目,以及
第三分组发送步骤,该步骤通过使用传输路径,封装和发送其中已执行了总计的逻辑坐标阵列,
其中每个全局项目的每个项目值集合的记录数目通过在多个存储器模块中的每一个中对于同一逻辑坐标阵列顺序地执行总计步骤以及利用传输路径进行的发送步骤而被存储在逻辑坐标阵列中,并且
还包括
第三分组接收步骤,该步骤在多个存储器模块中的每一个中,接收和存储其中总计已结束的逻辑坐标阵列;以及
第四分组发送步骤,该步骤通过使用传输路径发送接收到的逻辑坐标阵列(权利要求16)。
在更优选的实施例中,在总计步骤中,
对于要制表的项目创建多维总计阵列,其尺寸是通过将项目的值列表的尺寸相乘而获得的;通过对由有序集合阵列中的值所指示的并且对应于要制表的项目的指针阵列中的值集合的总计阵列中的值进行总计来获取每个项目的每个项目值集合的记录数目;并且在完成了到总计阵列中的位置的映射的逻辑坐标阵列中,根据所述映射安排总计阵列中的值(权利要求17)。
此外,在另一实施例中,在多个存储器模块中的每一个中包括
存在数字阵列创建步骤,该步骤对于要排序的项目创建尺寸与项目的值列表的尺寸相同的存在数字阵列,并安排有序集合阵列的值数目,以指定值列表中的各项目值,
累计号码阵列创建步骤,该步骤累计所述存在数字阵列中的值,计算累计号码,以指示在存储器模块中执行排序时具有相应的项目值的记录的头部位置,并且将累计号码安排在累计号码阵列中;
本地排序步骤,该步骤创建第二全局值号码阵列、第四全局有序集合阵列和第三有序集合阵列,基于对应于由有序集合阵列的值所指示的项目值的累计号码阵列中的累计号码,将对应于项目值的全局值号码安排在由第二全局值号码阵列中的累计号码所指示的位置处,并且将有序集合阵列的值和相应的全局有序集合阵列的值安排在由第三有序集合阵列和第四全局有序集合阵列中的累计号码所指示的位置处,
第五分组发送步骤,该步骤通过使用传输路径封装和发送至少第二全局值号码阵列,
第四分组接收步骤,该步骤并行于分组发送通过使用传输路径,来接收另一存储器模块的封装后的第二全局值阵列,以及
第三顺序判断步骤,该步骤将其自己的第二全局值号码阵列中的值在全局信息块中的顺序存储到第五全局有序集合阵列中,
其中排序后的记录的顺序由第五全局有序集合阵列中的值决定(权利要求18)。
在更优选的实施例中,在第五分组发送步骤中,将第二全局值号码阵列的值和第四全局有序集合阵列的值形成一对,并且封装和发送第二全局值号码阵列和第四全局有序集合阵列,
在第四分组接收步骤中,接收另一存储器模块的封装后的第二全局值号码阵列和第四全局有序集合阵列,以及
在第三顺序判断步骤中,通过在其自己的第二全局值号码阵列的值和另一存储器模块的第二全局号码阵列的值相等时,比较形成一对各自的值的第四全局有序集合阵列的值,来判断顺序(权利要求19)。
此外,在一种信息处理系统中,该信息处理系统包括多个信息处理单元,其中每一个保存本地信息块,以表示表状数据,该表状数据被表达为包括项目和属于该项目的项目值的记录阵列,还包括分组传输路径,用于连接多个信息处理单元,
其中本地信息块包括值列表,其中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序存储的,还包括指针阵列,其中指示项目值号码的指针值是按指示对应于该记录的唯一本地顺序的号码的顺序存储的,
本发明目的由一种程序实现,该程序致使多个信息处理单元中的每一个实现
基于指示本地信息块中的本地顺序的号码创建指示所有多个信息处理单元中的唯一全局顺序的号码的功能,
通过分组传输路径将值列表发送到另一信息处理单元的功能,
通过分组传输路径接收来自另一信息处理单元的值列表的功能,以及
通过参考来自另一信息处理单元的值列表中的项目值将所有多个信息处理单元中的全局顺序赋予本地信息块中的值列表的项目值的功能(权利要求20)。
此外,本发明的目的由一种信息处理系统实现,该信息处理系统包括多个信息处理单元,其中每一个包括存储器和控制设备,
其中多个信息处理单元中的每一个的存储器保存表状数据,该表状数据被表达为各自包括项目以及属于该项目的项目值的记录阵列,并且全局表状数据由各存储器模块中保存的表状数据的聚集形成,并且该信息处理系统的特征在于
多个信息处理单元中的每一个包括
全局有序集合阵列,其包含指示全局表状数据中的各个记录的顺序的值,以及
记录抽取装置,用于根据由设备控制接收到的指定顺序的指令来指定全局有序集合阵列中的值,并用于抽取由该值指示的记录(权利要求21)。
根据本发明,本地表状数据被分配到信息处理单元,并由信息处理单元所保存,该信息处理单元包括PMM、个人计算机、服务器等等,并且本地检索和制表可由单个信息处理单元执行,另外,提供了全局有序集合阵列,以便还可以实现全局表状数据的检索等等。顺带提一句,单个个人计算机或服务器可对应于单个信息处理单元,或者单个个人计算机或服务器可包括多个信息处理单元。
在优选实施例中,为了反映信息处理单元中的排序顺序,信息处理单元包括另一有序集合阵列,其中指定记录的值被交换,并且
在全局有序集合阵列中,指示顺序的值被重新安排以指示由另一有序集合阵列中的值所指示的记录在全局表状数据中的排序顺序(权利要求22)。全局有序集合阵列中重新安排的值具有升序。
此外,在另一优选实施例中,信息处理单元重新安排指示顺序的值,以指示信息处理单元中的排序后的记录在全局有序集合阵列中的排序顺序(权利要求23)。
同样在此实施例中,全局有序集合阵列中重新安排的值具有升序。如上所述,本发明也可应用于指定记录的值被排序的模式,并且此值被存储到另一有序集合阵列中,本发明还可应用到记录本身被排序而重新安排的模式中。
在另一优选实施例中,多个信息处理单元中的每一个的存储器保存
信息块,其包括值列表,该值列表用于表示表状数据,该表状数据被表达为各自包括项目和属于该项目的项目值的记录阵列,并且在该值列表中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序来存储的,该信息块还包括指针阵列,其中指示该项目值号码的值是按有序集合阵列的唯一顺序来存储的,并且全局信息块由各存储器中保存的信息块的聚集形成(权利要求24)。
此外,本发明的目的由一种信息处理系统实现,该信息处理系统包括多个信息单元,其中每一个包括存储器和控制设备,
其中多个存储器模块中的每一个的存储器保存
信息块,其包括值列表,该值列表用于表示表状数据,该表状数据被表达为各自包括项目和属于该项目的项目值的记录阵列,并且在该值列表中项目值是按对应于属于一个特定项目的项目值的项目值号码的顺序来存储的,该信息块还包括指针阵列,其中指示项目值号码的值是按有序集合阵列的唯一顺序来存储的,并且全局信息块由各存储器中保存的信息块的聚集形成,并且该信息处理系统的特征在于
信息处理单元包括
全局值号码阵列,用于接收指示项目值在全局信息块中的顺序的值,以及
项目值抽取装置,用于根据由控制设备接收到的指定顺序的指令来指定全局有序集合阵列中的值,并用于抽取由该值指示的值列表中的项目值(权利要求25)。
顺带提一句,在本说明书中,虽然各种阵列中包含的数字值被称为“元素”或“值”,但是这些说法仅是表达上的不同,而没有根本差异。例如,虽然值列表中所包含的被称为“项目值”,但是显然这也是值列表中的“元素”。
附图说明
通过参考实施例以及附图,本发明的该目的和其他目的会变得更明显。此处,
图1是示出根据本发明的一个实施例的信息处理系统的轮廓的图。
图2是示出根据本发明的实施例的PMM的结构的示例的视图。
图3是示出表状数据的示例的视图。
图4是用于说明在实施例中用于保存表状数据的结构的原理的视图。
图5是用于说明实施例中分配到各个PMM并由各个PMM所保存的阵列及其值的视图。
图6是示出最初分别分配到PMM-0至PMM-4的表状数据的示例的视图。
图7是示出最初分别分配到PMM-0至PMM-4的表状数据的示例的视图。
图8是大致示出根据实施例的汇编处理的流程图。
图9是示出将值安排到图6和7所示的示例中的全局有序集合阵列GOrd的视图。
图10是示出根据实施例的汇编处理中的分组发送的示例的视图。
图11是示出根据实施例的汇编处理中的分组发送的示例的视图。
图12是示出根据实施例的汇编处理中的分组发送的示例的视图。
图13是示出根据实施例的汇编处理中的分组发送的示例的视图。
图14A和图14B是分别示出在根据实施例的汇编处理中的分组发送和接收之时在PMM中执行的处理的流程图。
图15A和图15B是分别示出在根据实施例的汇编处理中的分组接收之时在PMM中执行的处理的流程图。
图16是大致示出根据实施例的检索处理的一部分的流程图。
图17是示出一个状态的示例的视图,在该状态中,在每个PMM中创建其中设置值的标记阵列的以及新的全局有序集合阵列和区域有序集合阵列。
图18是示出一个状态的示例的视图,在该状态中,在每个PMM中,图16的处理被执行,并且值被本地且并行地安排在新的全局有序集合阵列GOrd’中以及有序集合阵列OrdSet’中。
图19是示出阵列中的不必要区域被删除的状态的视图。
图20是示出根据实施例的检索处理中在分组发送之前执行的处理的流程图。
图21是示出根据实施例的检索处理中的分组发送的示例的视图。
图22A和22B是分别示出在根据实施例的检索处理中的分组发送和接收之时在PMM中执行的处理的流程图。
图23是示出根据实施例的检索处理中的分组发送的示例的视图。
图24是示出在根据实施例的检索处理中的分组接收之时在PMM中执行的处理的流程图。
图25是示出根据实施例的检索处理中的分组发送的示例的视图。
图26示出作为根据实施例的检索处理的结果而获得的新阵列。
图27是大致示出根据实施例的交叉制表处理的一部分的流程图。
图28是示出一个状态的视图,在该状态中,对于要被交叉制表的项目,在每个PMM中形成一个区域,该区域的尺寸是通过将项目的值列表VL的尺寸相乘获得的,并且为每个区域赋予初始值“0”。
图29是示出在交叉制表处理中每个PMM的总计的示例的视图。
图30是示出一个状态的视图,该状态利用全局值号码阵列GVNo来指定每个PMM中的全局区域的值。
图31A和图31B是分别示出在根据实施例的交叉制表处理中的分组发送和接收之时在PMM中执行的处理的流程图。
图32是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图33是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图34是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图35是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图36是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图37是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图38是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图39是示出根据实施例的交叉制表处理中的分组发送的示例的视图。
图40是示出由根据实施例的交叉制表处理得到的制表结果的视图。
图41是大致示出根据实施例的排序处理的一部分的流程图。
图42是示出一个状态的视图,在该状态中,对于每个要排序的项目,在每个PMM中形成一个区域,该区域的尺寸与该项目的值列表VL的尺寸相同,并且为每个区域赋予初始值“0”。
图43是示出每个PMM中的总计的示例的视图。
图44是大致示出根据实施例的排序处理的一部分(创建累计号码阵列)的流程图。
图45是示出根据实施例的累计号码阵列的示例的视图。
图46是示出根据实施例在每个PMM中执行的本地排序处理的流程图。
图47是示出在每个PMM中执行本地排序处理的状态的示例的视图。
图48是示出在每个PMM中执行本地排序处理的状态的示例的视图。
图49是示出在根据实施例的排序处理中的分组发送之时在PMM中执行的处理的流程图。
图50是示出一个状态的视图,在该状态中,在实施例中的每个PMM中形成安排了初始值的阵列GOrd”。
图51是示出根据实施例的排序处理中的分组发送的示例的视图。
图52A和图52B是分别示出在根据实施例的排序处理中的分组发送和分组接收之时在PMM中执行的处理的流程图。
图53是示出根据实施例的排序处理中的分组发送的示例的视图。
图54是示出根据实施例的排序处理中的分组发送的示例的视图。
图55示出在根据实施例的排序处理中的分组接收之时在PMM中执行的处理的流程图。
图56是根据实施例由排序处理获得的排序结果的视图。
图57是根据实施例由排序处理获得的按项目“年龄”排序的表状数据的示例的视图。
图58A和图58B是示出一个示例的视图,在该示例中表状数据的排序由地址信息的重新安排来表达。
图59是示出一个示例的视图,在该示例中,在没有全局有序集合阵列的情况下,图58A和58B中所示的表状数据被分配到各PMM并被各PMM所保存。
图60是示出一个示例的视图,在该示例中图58A和58B中所示的表状数据被用全局有序集合阵列分配到各PMM并由各PMM保存。
图61是示出一个状态的视图,在该状态中,在各PMM中获取制表结果。
具体实施方式
[硬件结构]
以下,将参考附图描述本发明的实施例。图1是示出根据本发明的一个实施例的信息处理系统的轮廓的框图。如图1所示,在此实施例中,多个具有处理器(以下分别被称为“PMM”)12-0,12-1,12-2,...存储器模块被安排成环形,并且相邻存储器模块被第一总线(例如参见标号14-0,14-1)连接以顺时针发送数据,并被第二总线(例如参见标号16-0,16-1)连接以逆时针发送数据。在第一总线和第二总线中,执行PMM之间的分组通信。在此实施例中,在其中执行分组通信的传输路径(分组传输路径)被称为第一总线和第二总线。
图2是示出PMM 12的结构的示例的视图。如图2所示,PMM 12包括用于根据指令控制对存储器的访问、操作的执行等等的控制电路20、总线接口(I/F)22和存储器24。
存储器24包括多个池BANK0,1,...,n(标号26-0,...,n),后面提到的指定阵列可在存储中每个池中。
此外,控制电路20可执行去到/来自另一外部计算机等的数据发送/接收。此外,另一个计算机可通过总线仲裁访问所需的存储器池。
[数据的存储结构]
图3是示出表状数据的示例的视图。如此处所示,在表状数据中,值被赋予每个记录中的各种项目(在此示例中是“性别”、“年龄”“身高”和“体重”)。本实施例的信息处理装置大体上基于图4所示的数据格式来保存表状数据。
如图4所示,在有序集合阵列OrdSet中,记录号作为每个序列号的值被安排。在此示例中,由于所有的记录都被表达,因此序列号与记录号一致。
例如,对于性别而言,表状数据由值列表VL和值列表的指针阵列VNo来表达,在该值列表VL中,值“男”或“女”作为实际项目值被按指定顺序排序,在该指针阵列VNo中,对应于有序集合阵列OrdSet的每个元素(记录号),存储值列表中由记录号所指示的号码。值列表VL和指针阵列VNo的组合被称为“信息块”(涉及性别的信息块对应于标号401)。
指定有序集合阵列OrdSet中的元素(记录号)所指示的位置之处的指针阵列VNo中的值,并且抽取由该值所指示的位置处的值列表VL中的项目值,以便可获取对应于记录号的项目值。另一项目的信息块具有相同的结构。
当单个存储器(虽然物理上可存在多个存储器,但是使用单个存储器这个术语的意思是它们被置于单个地址空间中)中的单个计算机被访问时,构成每个信息块的有序集合阵列OrdSet、值列表VL和指针阵列VNo只须被存储在存储器中。但是,为了保存大量记录,存储器容量也正比于尺寸而变大,因此,希望这些信息能被分布和安排。此外,从处理的并行化的角度来看,希望所分布和安排的信息能够被分配和保存。
然后,在本实施例中,记录的数据被无交迭地分配到多个PMM,并被多个PMM所保存,并且高速检索、交叉制表和检索由PMM间的分组通信实现。
[汇编处理]
首先将描述一个处理(汇编处理),其中将数据分布并分配到多个PMM,并且使这些PMM可用。例如,将会考虑如图5所示的情形,其中具有指定数目的记录的数据被存储到四个PMM(PMM-0至PMM-3)中。在此示例中,假设分别存储与记录号0至2相关联的一系列数据、与记录号3和4相关联的一系列数据、与记录号5至7相关联的一系列数据以及与记录号8和9相关联的一系列数据。此外在每个PMM中,表状数据的部分是以信息块的格式来存储的。
图6和图7是示出最初分别分配到PMM-0至PMM-4的表状数据的示例的视图。从这些图中看出,每个项目的信息块的子集等被包含在每个PMM中。例如,在图6中,项目“性别”的信息块601包括原始指针阵列VNo(参见图4)的子集VNo(这也被称为“指针阵列”)以及原始值列表VL(参见图4)的子集VL(这也被称为“值列表”)。
指针阵列VNo的元素的数目与分配到PMM的记录的数目一致。另一方面,在值列表VL中,只抽取由指针阵列VNo所指示的值。对于项目“性别”而言,由于指针阵列VNo的值指示值列表VL的所有元素(项目值),因此值列表VL与原始值列表VL一致。另一方面,对于项目“年龄”、“身高”和“体重”,要理解只有由指针阵列中的元素所指示的值被抽取,作为来自原始值列表VL的原始值列表的子集VL。
此外,在要分配的信息块中,在每个PMM中,为了使值列表VL的元素(项目值)由指针阵列VNo的元素适当地指示,即为了使在PMM中的本地处理(指针值的指定和项目值的指定)中也保持一致性,元素被从原始指针阵列VNo的相应元素进行转换。
如上所述,在要分配的信息块中,值列表VL只保存所分配的信息块所必要的元素(项目值)。从而,本地处理的一致性由指针阵列VNo和值列表VL所保持。但是,为了保持PMM间的处理的一致性,有必要掌握分配到每个PMM的值列表VL的元素(项目值)在整个值列表中的位置,即,每个项目值在整个值列表的指定顺序中的位置。于是,在此实施例中,在每个要分配的信息块中,安排了全局值号码阵列GVNo,并且包含了指示对应于项目值的值的位置的号码。
用于信息块的子集分配的偏置值(OFFSET)被分配到每个PMM。偏置值OFFSET对应于原始有序集合OrdSet中的头部关于分配到PMM的记录的值。
此外,在每个PMM中,为了保持本地处理中的一致性,形成新的有序集合OrdSet。有序集合OrdSet的元素的数目与分配到PMM的记录的数目一致。另一方面,为了保持PMM间的处理的一致性,有必要掌握分配到每个PMM的记录具有整体之中的哪个号码(有序集合的元素)。从而,提供了包含各记录的整体之中各记录的号码的全局有序集合阵列GOrd。
图8是大致示出根据实施例的汇编处理的流程图。如图所示,首先,创建图6至7所示的初始信息块(步骤801)。此步骤是以下述方式实现的:要被分配到每个PMM的有序集合OrdSet、构成每个信息块的指针阵列VNo和值列表VL以及偏置值OFFSET被例如从另一个外部计算机提供给PMM。阵列被存储在各PMM的存储器24中。
随后到步骤802,过程前进到每个PMM中的本地处理以及与PMM间的分组通信相关的处理。每个PMM的控制电路20参考偏置值,计算要在全局有序集合阵列GOrd中排序的各个值,并且在阵列中安排值(步骤802)。图9是示出将值安排到图6至7所示的示例中的全局有序集合阵列GOrd的视图。这里,通过将偏置值OFFSET添加到有序集合的值所获得的值只须被安排在全局有序集合阵列GOrd的相应位置处。步骤802可由每个PMM中的本地处理实现。
接下来,确定全局值列表号码阵列GVNo的值。更详细地说,首先,在每个PMM中,作为全局值号码阵列的各个元素,初始值是以升序给出的(步骤811)。例如,如图10和图11所示,在具有三个元素的PMM-0中,从头部开始按升序安排的值0、1和2变成初始值(见标号1001)。同样,对于其他PMM(PMM-1和PMM-3),全局值列表号码阵列GVNo的初始值被并行设置(见标号1011、1101、1111)。
接下来,相邻PMM形成一对,并且形成对的一个PMM通过利用连接该对的PMM的一条总线(例如第一总线14)来封装和发送包含在其自己的值列表VL中的一系列元素(项目值),而另一PMM通过利用另一总线(例如第二总线16)来封装和发送包含在其自己的值列表VL中的一系列元素(项目值)(步骤812)。在图10的示例中,分组[18,21,24]被从PMM-0发送到PMM-1,分组[16,28]被从PMM-1发送到PMM-0。另外,在图11的示例中,分组[16,20,33]和[18,24]分别被从PMM-2和PMM-3发送。
每个PMM参考接收到的分组,将分组中的值(其他PMM的项目值)与其自己的值列表VL中的项目值相比较,并在考虑到另一PMM的项目值的情况下指定相对值位置(顺序)(步骤813)。按照该位置(顺序),所述全局值号码阵列GVNo被更新(步骤814)。顺便提一句,PMM临时存储其自己的PMM和成对的另一PMM的值列表中的项目值的总数(步骤815)。
在图10的示例中,PMM-0接收分组[16,28],将其与它自己的VL[18,21,24]相比较。这里,由于“16<18<21<24<28”,因此全局值号码阵列GVNo的值分别被更新为“1”、“2”和“3”(见标号1021)。另一方面,PMM-1接收分组[18,21,24],并且将其与它自己的VL[16,28]相比较。结果,GVN的值分别被更新为“0”和“4”(见标号1031)。如图11所示,在PMM-2和PMM-3之间执行类似的处理。顺便提一句,如果PMM在下一时序在分组被发送的方向上发送所接收到的分组,就足够了。因为没有接收者,所以此分组被丢弃。
接下来,使先前形成的PMM对成为PMM群组,并且形成一对相邻的PMM群组。顺便提一句,当PMM的数目是2的幂时,可形成一对PMM群组,但是,当不是2的幂时,可将其中无法形成一对PMM群组的部分保持为原样。例如,当PMM的数目是三时,可形成包括PMM-0和PMM-1的PMM群组以及PMM-2的一对。
然后,分组被按顺时针方向从一个PMM群组的上游方PMM顺时针发送到总线(第一总线)上,而分组被按逆时针方向从另一PMM群组的下游方PMM逆时针发送到总线(第二总线)上。对于图10和11所示的示例,分组被从PMM-0顺时针发送到第一总线上,并且分组被从PMM-3逆时针发送到第二总线上(参见图12)。
更详细而言,如图14A所示,首先发送分组的PMM创建基于步骤815中存储的项目值的数目的分组,值的数目与项目值的数目一致,PMM本身的值列表VL的元素(项目值)被安排在由全局值号码阵列GVNo的值所指示的相应位置,而空值被安排在其他位置(步骤1401至1403),并按指定方向将分组发送到下一PMM(步骤1404)。
如图12所示,例如,在PMM-0中,已知PMM-0和PMM-1这一对具有五个项目值。因此,具有五个值的分组[-,18,21,24,-](这里“-”表示空值)被通过第一总线顺时针发送到PMM-1。另一方面,在PMM-3中,已知PMM-2和PMM-3这一对具有五个项目值。因此,分组[-,18,-,24,-]被通过第二总线逆时针发送到PMM-2。
作为分组的目的地,已接收到分组的PMM参考其自己的全局值号码阵列GVNo,并将相应的项目值安排在分组中的空值的指定位置处,即,由全局值号码阵列GVNo的元素所指示的位置(步骤1411、1412)。然后,PMM沿着分组流动的方向向下一PMM发送分组(步骤1413)。
在图12中,已接收到来自PMM-0的分组的PMM-1将相应的值“16”和“28”安排在已安排了空值的位置之中由其自己的全局值号码阵列GVNo的元素“0”和“4”所指示的位置处。这样,分组[16,18,21,24,28]被通过第一总线顺时针发送。此外,已接收到来自PMM-3的分组的PMM-2类似地通过第二总线逆时针发送分组[16,18,20,24,33]。
在该示例中,虽然一个PMM群组包括两个PMM,但是在一个PMM群组包括三个或更多个PMM时,对于已接收到分组的PMM,还执行图14B所示的处理。
接下来,将描述当构成与一个PMM群组配对的另一个PMM群组的PMM接收到分组时要执行的处理。
如图15A所示,当构成另一PMM群组的PMM接收到分组时(步骤1501),PMM将接收到的分组与其自己发送的分组相比较(步骤1502),并且当项目值等于其自己发送的分组时,即在接收到的分组中存在重复的项目值时,该项目值被删除(步骤1503)。接下来,PMM参考其中删除了重复的项目值的分组,将分组中的值(另一PMM群组的项目值)与其自己的值列表中的项目值相比较,并在考虑到另一PMM群组的项目值情况下指定相对值位置(顺序)(步骤1504)。根据此位置(顺序),全局值号码阵列GVNo的值被更新(步骤1505)。
删除重复项目值后的分组被通过总线发送到构成同一PMM群组的相邻PMM(步骤1506)。
在图13中,PMM-1逆时针地从作为构成相邻PMM群组的PMM的PMM-2接收分组[16,18,20,24,33]。另一方面,PMM-1顺时针地向PMM-2发送分组[16,28,21,24,28]。PMM-1比较这两个分组,并且由于16、18和24在接收到的分组中是重复的,因此删除这些元素,并且对分组[20,33]进行更新(见标号1300)。然后,在考虑到分组中的项目值“20”和“33”的情况下,由于“16<20<28<33”,因此在其自己的全局值号码阵列GVNo中,对应于项目值“16”的值“0”不被更新,而对应于项目值“28”的值“4”被更新为“5”(见标号1301)。此外,分组[20,33]被逆时针发送到PMM-0。
另一方面,PMM-2顺时针地从作为构成相邻PM群组的PMM的PMM-1接收分组[16,18,21,24,28]。同样,在PMM-2中,接收到的分组被与发送的分组相比较,接收到的分组中的重复值被删除,并且更新被对分组[21,28]做出(见标号1300)。接下来,在考虑到分组中的项目值的情况下,由于“16<20<21<28<33”,因此在其自己的全局值号码阵列GVNo中,PMM-2不更新对应于项目值“16”和“20”的值“0”和“2”,而对应于项目值“33”的值“4”被更新为“6”(见标号1302)。此外,分组[21,28]被顺时针地发送到PMM-3。
如图15B所示,从构成同一PMM群组的PMM接收到分组的PMM(见步骤1511)执行接收到的分组与其自己的值列表VL中的项目值的比较,其自己的项目值的相对值位置(顺序)的指定(步骤1512),以及基于指定的位置(顺序)的全局值号码阵列GVNo的更新(步骤1513)。此外,分组被按与发送方向相同的方向发送到下一PMM(步骤1514)。顺带提一句,当没有下一PMM时,分组被丢弃。另一方面,当存在下一PMM时,在PMM中执行步骤15¨至1513的处理。
在图13中,标号1310表示考虑到发送的分组[20,33]的全局值号码阵列GVNo的更新,标号1313表示考虑到发送的分组[21,28]的全局值号码阵列GVNo的更新。
通过这种方式,创建了用于建立PMM之间的处理的一致性的全局有序集合阵列GOrd以及全局值号码阵列GVNo,以便完成汇编处理。顺带提一句,对于全局值号码阵列,为每个项目执行上述处理,并获得每个项目的全局值号码阵列。
当汇编处理结束时,即可顺利且迅速地执行诸如检索、交叉制表或排序这样的处理。
[检索处理]
接下来将描述检索处理。如图16所示,首先,每个PMM对于作为检索对象的项目,创建标记阵列,该标记阵列的尺寸与值列表VL的尺寸相同(步骤1601),接下来,在通过/失败条件下设置标记阵列的值(步骤1602)。在此设置中,“1”被设置为对应于符合检索条件的项目值的标记阵列的值,“0”被设置为除此之外的标记阵列的值。
接下来,每个PMM创建新的全局有序集合阵列GOrd’作为检索结果存储区域,并创建OrdSet’(步骤1603)。图17是示出一个状态的示例的视图,在该状态中,新的全局有序集合阵列和有序集合阵列被创建,作为其中设置了值的标记阵列和区域。以此示例中,对于项目“年龄”,检索“从20岁到24岁”的记录。因此,在每个PMM中,对于其中项目值为从20到24的项目的标记阵列的值为“1”。
接下来,进行通过/失败判断(步骤1604)。在此处理中,为有序集合OrdSet的每个值查找值列表的指针VNo的值(指针值),并且获取由指针值指示的标记阵列的值(步骤1611)。当此值为“0”时(步骤1612中的“否“(No)),不执行处理。另一方面,当标记阵列的值为“1”时(步骤1612中的“是“(Yes)),与处理相关的全局有序集合阵列GOrd以及有序集合阵列OrdSet的值被顺序存储在新的全局有序集合阵列GOrd’和有序集合阵列OrdSet’中(步骤1613)。
步骤1611至1613的处理被重复,直到有序集合阵列的最后一个元素(参见步骤1614和1615)。图16的处理被在各PMM中本地且并行地执行。图18示出一个状态的示例,在该状态中,图16的处理被执行,并且值被本地且并行地安排在新的全局有序集合阵列GOrd’中以及有序集合阵列OrdSet’中。此外,图19是示出不必要区域被删除的状态的视图(参见标号1901至1904)。
在上述处理之后,转换到涉及PMM间的分组通信的处理。首先,每个PMM创建新的全局有序集合阵列GOrd”,用于存储匹配检索条件的记录在整个PMM中的位置(顺序)(步骤2001),并且初始值被按升序存储在阵列中(步骤2002)。新的全局有序集合GOrd”的尺寸与阵列GOrd’或Gord的尺寸一致。
接下来,相邻PMM形成一对,该对中的一个PMM使用连接该对的PMM的一条总线(例如第一总线14),封装先前由图16所示的处理创建的阵列GOrd’的元素,并将其发送到该对中的另一PM M(步骤2003)。另一方面,另一PMM也使用连接该对的PM M的另一总线(例如第二总线16),封装阵列Gord’的元素,并将其发送到该对的PMM。
在图21的示例中,对应于GOrd’的分组[1,2]被从PMM-0发送到PMM-1,对应于GOrd’的分组[Φ](空集)被从PMM-1的发送。
在接收到分组时,PMM参考接收到的分组,将分组中的值与其自己的阵列GOrd’中的值相比较,在考虑到其他PMM的阵列GOrd’的情况下指定值的位置(步骤2004)。根据此位置,更新新的全局有序集合阵列GOrd”的值(步骤2005)。通过这种方式,固定PMM对中的项目值的顺序。虽然分组是按与接收方向相同的方向被发送的,但是由于没有接收者,因此它被丢弃。顺带提一句,PMM临时存储其自己的PMM和该对中的另一PMM的阵列GOrd’的元素的总数目(步骤2006)。
在图21的示例中,PMM-0参考从PMM-1提供的分组(空集中的元素)。由于分组的元素处于空集中,因此不改变阵列GOrd”的值。同样,在PMM-1中,由于阵列的元素最初为空,因此不执行处理。
另一方面,PMM-2参考从PMM-3提供的分组[8],并将其与它自己的阵列GOrd’相比较。这里,由于“8>5”,所以不改变GOrd’的值。另一方面,在PMM-3中,接收到的分组[5]被与其自己的GOrd’的值相比较。这里,由于“5<8”,所以将GOrd”的值从“0”更新为“1”。
接下来,使先前形成的PMM对成为PMM群组,并形成一对相邻的PMM群组。这与汇编处理的情形类似。然后,分组被按顺时针方向从一个PMM群组的上游方PMM顺时针发送到总线(第一总线)上,而分组被按逆时针方向从另一PMM群组的下游方PMM逆时针发送到总线(第二总线)上。在图21中,分组被从PMM-0顺时针发送到第一总线上,并且分组被从PMM-3逆时针发送到第二总线上。
更详细而言,如图22A所示,首先发送分组的PMM创建基于步骤2005中存储的阵列GOrd’的总数的分组,值的数目与总数一致,PMM本身的阵列GOrd’的值被安排在由相应的阵列GOrd”的值所指示的位置,而空值被安排在其他位置(步骤2201至2203),并按指定方向将分组发送到下一PMM(步骤2204)。
如图23所示,例如,在PMM-0中,已知PMM-0和PMM-1中有两个项目值。因此,具有两个值的分组[1,2]被通过第一总线顺时针发送到PMM-1。另一方面,在PMM-3中,已知PMM-2和PMM-3中有两个项目值。因此,具有两个值的分组[-,8](这里“-”表示空值)被通过第二总线逆时针发送到PMM-2。
如图22B所示,作为分组的目的地,已接收到分组的PMM参考其自己阵列GOrd”,并将相应的阵列GOrd安排在分组中的空值的指定位置处,即,由阵列GOrd’的值所指示的位置(步骤2211、2212)。然后,PMM沿着分组流动的方向向下一PMM发送分组(步骤2213)。
在图23中,已从PMM-0接收到分组的PMM-1直接通过第一总线顺时针发送分组,因为GOrd”中没有元素(即是空的)。此外,已从PMM-3接收到分组的PMM-2将其自己的GOrd’的元素安排在分组的指定位置处,并通过第二总线逆时针发送分组[5,8]。
在以上示例中,虽然一个PMM群组包括两个PMM,但是在一个PMM群组包括三个或更多个PMM时,丢弃该分组。另一方面,当存在下一个PMM时,在已接收到分组的PMM中还执行图22B所示的处理。
接下来,将描述当构成与一个PMM群组成对的另一个PMM群组的PMM接收到分组时要执行的处理。
如图23所示,已接收到定向到其自己的分组的PMM(参见步骤2401)将接收到的分组中的值与其自己的阵列GOrd’中的值相比较,并指定该值在阵列GOrd’中的相对位置(顺序)(步骤2402)。接下来,基于指定的顺序,PMM更新阵列GOrd”(步骤2403)。然后,PMM沿着与发送方向相同的方向向下一PMM发送分组(步骤2404)。顺带提一句,当没有下一PMM时,丢弃该分组。另一方面,当存在下一个PMM时,在PMM中执行步骤2401-2404的步骤。
在图25的示例中,由于已接收到来自PMM-2的分组[5,8]的PMM-1在其自己的阵列GOrd’中没有元素。因此它直接沿着相同方向将分组发送到PMM-0。此外,已接收到来自PMM-1的分组[1,2]的PMM-2将分组的值与阵列GOrd’的值比较。这里,因为“1<2<5”,所以将GOrd”的值从“0”更新为“2”。另外,分组被发送到PMM-3。
同样,在已接收到来自PMM-1的分组的PMM-0中,接收到的分组被与其自己的GOrd’的值相比较。这里,因为“1<2<5<8”,所以不改变GOrd”的值。另一方面,在已接收到来自PMM-2的分组的PMM-3中的接收到的分组与其自己的GOrd’的之间的比较中,因为“1<2<8”,所以将GOrd”的值从“1”更新为“3”。
上述处理被并行执行,以便PMM的阵列GOrd’的值变得确定。阵列GOrd”的值表示整体上由检索抽取的记录的顺序,即全局顺序。当使GOrd”成为新GOrd,并且当记录被根据阵列GOrd中的值顺序地抽取时,就可以根据指定的顺序获取检索结果。
图26中的每个PMM的阵列GOrd是作为检索处理的结果获得的新阵列。当相应阵列OrdSet的值以及由此值所指示的值列表VL的值被按照此阵列GOrd的值的升序抽取时,对于项目“年龄”,记录“从20岁到24岁”可按记录号(有序集合)的顺序列出。
[交叉制表处理]
接下来将描述交叉制表处理。在这里,处理同样从汇编处理结束的状态开始。如图27所示,每个PMM创建一个总计区域,其尺寸是通过将与要交叉制表的项目相关的多个值列表VL的尺寸相乘获得的(步骤2701)。接下来,此区域中的各个值被初始化为“0”(步骤2702)。图28示出一个状态,在该状态中,对于项目“性别”和“年龄“,在每个PMM中形成一个区域,该区域的尺寸是(与“性别”相关的值列表VL的尺寸)×(与“年龄”相关的值列表VL的尺寸),并且分别赋予初始值“0”。
接下来,每个PMM向每个总计阵列执行总计处理(步骤2703)。更详细而言,每个PMM参考有序集合阵列OrdSet的值,并指定每个要交叉制表的项目的指针阵列VNo的值(步骤2711)。接下来,对由多个指针阵列VNo的值所指定的区域中的位置的值进行总计(步骤2712)。上述处理被重复直到有序集合阵列OrdSet结束(参见步骤2713和2714)。
图29是示出每个PMM中的总计的示例的视图。例如,在PMM-0中,由有序集合阵列OrdSet的元素“0”所指示的位置处的项目“性别”的指针阵列VNo的值为“1”,而项目“年龄”的指针阵列VNo的值为“0”。因此,总计区域中的由(性别,年龄)=(1,0)指定的区域的值被从“0”总计到“1”。可以理解,同样在其他PMM,类似的处理被执行。
当总计结束时,在后续处理中,在总计区域中,每个项目的全局值号码阵列GVNo的值作为轴,而不是实际项目值,被设置为关键字。即,通过指定全局值号码阵列GVNo的值,指定了总计区域的值。
图30是示出一个状态的视图,在该状态中全局值号码阵列GVNo的值被用于指定每个PMM中的全局区域的值。实际上,并未执行用于赋予值以作为这种全局区域的项目的处理,相反这些阵列GVNo仅用于随后的处理中。
在PMM中,使用公共逻辑坐标阵列,并且总计区域的各个值被求和。更详细而言,如图31A所示,当PMM接收逻辑坐标阵列的分组时(步骤3101),由表格的多个项目的阵列GVNo所指定的总计区域的值被加到分配到逻辑坐标阵列中的多个项目的阵列GVNo的多个位置的值(步骤3102)。顺带提一句,在首先创建逻辑坐标阵列并执行设置值的处理而不是逻辑坐标阵列的接收的PMM中,执行逻辑坐标阵列的创建和初始值的安排(见步骤3100)。
现将描述逻辑坐标阵列。逻辑坐标阵列包括逻辑坐标的值及与其相应的计数值。逻辑坐标的值被促成为唯一对应于作为交叉制表的对象的项目的多维坐标。例如,在对项目“性别”和项目“年龄”执行交叉制表的情况下,(与项目“性别”相关的阵列GVNo的值,与项目“年龄”相关的阵列GVNo的值)被促成为唯一对应于逻辑坐标的值。此对应性被预先通知给每个PMM,并被存储在每个PMM中。图32是示出最初创建逻辑坐标阵列的PMM-0中的逻辑坐标阵列中的总计的示例的视图。在此示例中,逻辑坐标和多维坐标被促使为彼此对应,如下所示。
0=(项目“性别”的GVNo的值“0”,项目“年龄”的GVNo的值“0”)
1=(项目“性别”的GVNo的值“0”,项目“年龄”的GVNo的值“1”)
2=(项目“性别”的GVNo的值“0”,项目“年龄”的GVNo的值“2”)
3=(项目“性别”的GVNo的值“0”,项目“年龄”的GVNo的值“3”)
4=(项目“性别”的GVNo的值“0”,项目“年龄”的GVNo的值“4”)
12=(项目“性别”的GVNo的值“1”,项目“年龄”的GVNo的值“5”)
13=(项目“性别”的GVNo的值“1”,项目“年龄”的GVNo的值“6”)
由于坐标(0,3)、(1,1)和(4,1)的值被设置为“1”,因此PMM-0分别通过设置的值对逻辑坐标对应于“3”、“8”和“11”的总计区域的值进行总计。
在上述处理之后,PMM封装逻辑坐标阵列(步骤3103),并将其发送到相邻的指定的PMM(步骤3104)。在图32的示例中,分组被发送到PMM-1。
接收到的PMM类似地执行图30的处理,并将沿着分组先前被发送的方向将分组发送到相邻PMM。图32至35是示出在PMM-1至PMM-3中相继执行的逻辑坐标阵列的总计处理的视图。
通过这种方式,逻辑坐标阵列被提供给每个PMM,并且逻辑坐标阵列的值根据总计区域的值而变为确定的。从总计后的PMM(在本示例中为PMM-3)中,其值变为确定的逻辑坐标阵列的分组又被提供给最初创建逻辑坐标阵列的PMM。如图31B所示,当PMM又接收到逻辑坐标阵列的分组时(步骤3111),总计区域的值被更新为相应的逻辑坐标阵列中的值(步骤3112)。即,虽然图31A的处理是其中总计区域的值被写入到逻辑坐标阵列中的模式,但是在图31B的处理中,逻辑坐标阵列的值被写入总计阵列中。这里,与图31A的处理类似,利用了指定总计区域的每个值的坐标与逻辑坐标阵列之间的对应关系。
当值的更新结束时,PMM沿着分组被发送的方向将分组发送到相邻的指定的PMM(步骤3113)。图36和图37是分别示出PMM-0和PMM-3中相继执行的逻辑坐标阵列的值的捕捉处理(图35的处理)的视图。
通过这种方式,如图40所示,在每个PMM中,对于作为交叉制表的对象的项目的每个多维坐标,可获得与项目的项目值的组合相关的制表后的值。在图40中,标号4001至4004分别表示与PMM-0至PMM-3相关的制表结果。制表结果的阵列(总计区域)被存储在PMM的存储器中。
[排序处理]
接下来将描述排序处理。在这里处理同样从汇编处理结束的状态开始。如图41所示,每个PMM创建一个存在数字阵列的区域,该区域的尺寸与要排序的项目相关的值列表VL的尺寸相同(步骤4101),并向区域中的各个值赋予初始值“0”(步骤4102)。图42示出一个状态,在该状态中,对于项目“年龄”,在每个PMM中形成一个区域,该区域的尺寸与值列表VL的尺寸相同,并且为每个区域赋予初始值“0”。
接下来,每个PMM对存在数字阵列中的每一个执行总计处理(步骤4103)。更具体而言,每个PMM参考有序集合阵列OrdSet的值,并指定要排序的项目的指针阵列VNo的值(步骤4111)。接下来,每个PMM对由指针阵列VNo的值所指示的位置处的值进行总计(步骤4112)。上述处理被重复,直到有序集合阵列OrdSet结束(见步骤4113和4114)。
图43是示出每个PMM中的总计的示例的视图。例如,在PMM-0中,由有序集合阵列OrdSet的元素“0”所指示的位置处的年龄的指针阵列VNo的值为“0”。因此,存在数字阵列的“第0”位置处的值,即头部位置处的值被从“0”总计到“1”。要注意在其他PMM中也执行类似的处理。
当总计处理结束时,如图44所示,每个PMM累计存在数字阵列的元素,并将存在数字阵列转换为累计号码阵列(步骤4401)。考虑到指示记录(所述记录指示项目值)的数目的存在数字,作为累计号码阵列的元素的累计号码指示安排累计号码的位置处的项目值。具体而言,每个PMM初始化指示阵列位置的参数“i”(步骤4411),抽取由参数指示存在数字阵列中的值(步骤4412),并将步骤4412中抽取的值加到参数“i”指示的位置之后的位置处的存在阵列的值,即位置“i+1”、“i+2”...处的存在阵列的值(步骤4413)。步骤4412和4413中所示的处理被重复且重复次数等于值列表VL的元素(项目值)的数目是适当的(见步骤4414和4415)。
如上所述,例如,可获得图45所示的累计号码阵列。另外,在每个PMM中,还形成以后用于存储整个PMM的顺序的阵列GVNo、GOrd’和OrdSet’的区域。这些阵列的尺寸分别与值列表VL的尺寸一致。
接下来,执行每个PMM中的本地排序处理。如图46所示,每个PMM抽取有序集合阵列OrdSet的值(步骤4601),然后指定由指针阵列VNo中的阵列OrdSet的值指示的位置处的值(指针值)(步骤4602)。然后,每个PMM获取由要排序的项目的全局值号码阵列中的指针阵列VNo的值所指示的位置处的值(步骤4603)。此值被用于稍后提到的值存储处理中。另一方面,同样在累计号码阵列中,获取由指针阵列VNo指示的位置处的值(步骤4604)。此值被用于指定稍后提到的值存储处理中的阵列的位置。
接下来,执行值存储处理。每个PMM将步骤4602中获取的、与要排序的项目相关的GVNo的值,安排在先前创建的阵列GVNo中由步骤4604中获取的累计号码阵列的值所指示的位置处(步骤4605)。此外,每个PMM将全局有序集合阵列GOrd和有序集合阵列OrdSet的值安排在阵列GOrd’和OrdSet’中由步骤4604中获取的累计号码阵列的值所指示的位置处(步骤4606)。接下来,递增用于处理的累计号码阵列的值(步骤4607)。
对于阵列OrdSet中的所有值顺序执行步骤4601至4607的处理(见步骤4608和4609)。
图47和图48是示出在每个PMM中执行本地排序处理的状态的示例的视图。例如,对于PMM-0,在图47中,理解到执行了阵列OrdSet的值“0”的抽取(见步骤4601),由OrdSet的值“0”指示的位置处的阵列VNo的值“0”的指定(见步骤4602),由阵列VNo的值“0”指示的位置处的阵列GVNo的值“1”获取(步骤4603),以及由阵列VNo的值“0”指示的位置处的累计号码阵列的值“0”的获取(步骤4603)。此外,理解到在累计号码阵列的获取之后,累计号码阵列的值被从“0”改变为“1”(见步骤4607)。
此外,对于PMM-0,在图48中,理解到示出了将与项目“年龄”相关的阵列GVNo的值“1”、阵列GOrd的值“0”以及阵列OrdSet的值“0”安排到由步骤4603中获取的累计号码阵列的值所指示的位置处的阵列GVNo、GOrd’和Ordset’。同样,对于其他PMM,在图47和48中,理解到类似地执行步骤4601至4605中的处理。
当每个PMM中的上述本地排序处理结束时,通过PMM之间的分组通信执行整个PMM的排序处理。如图49所示,在每个PMM中创建用于存储整个PMM中的排序顺序的阵列GOrd”的区域(步骤4901),并且在每个阵列中以升序赋予初始值(步骤4902)。通过这些处理,如图50所示,在每个PMM中形成了其中安排了初始值的阵列GOrd”。
接下来,相邻PMM形成一对,形成该对的一个PMM使用连接成对PMM的总线(例如第一总线14),封装其自己的阵列GVNo和GOrd’的一对值并发送该对值(步骤4903)。类似地,另一PMM使用另一总线(例如第二总线16),封装其自己的阵列GVNo和GOrd’的一对,并发送该对(步骤4903)。
在图51的示例中,分组[(1,0),(3,1),(4,2)]被从PMM-0发送到PMM-1,分组[(0,3),(5,4)]被从PMM-1发送到PMM-0。类似地,分组[(0,6),(2,5),(6,7)]被从PMM-2发送到PMM-3,分组[(1,9),(4,8)]被从PMM-4发送到PMM-2。
已接收到分组的PMM将接收到的分组中的该对的另一PMM的阵列GVNo的值与其自己的阵列GVNo的值相比较,并在考虑到另一PMM的阵列GVNo的情况下指定相对值位置(顺序)(步骤4904)。根据此位置(顺序),阵列GOrd”的值被更新(步骤4905)。顺带提一句,PMM已更新的情况下临时存储其自己的PMM和该对中的另一PMM的阵列GVNo中的值的总数(步骤4906)。
在图51的示例中,PMM-0接收分组[(0,3),(5,4)]。在此分组中,对应于阵列GVNo的值“0”和“5”以及其自己的阵列GVNo的值“1”、“3”和“4”被比较。这里,由于“0<1<3<4<5”,因此阵列GOrd”的值分别被更新为“1”、“2”和“3”。另一方面,PMM-1接收分组[(1,0),(3,1),(4,2)]。在此分组中,对应于阵列GVNo的值的“1”、“3”和“4”被与其自己的阵列GVNo的值“0”和“5”相比较。在这里,同样由于“0<1<3<4<5”,因此阵列GOrd”的值被分别变为“0”和“4”。同样,在PMM-2和PMM-3中,GOrd”的值被通过类似的处理所更新。顺带提一句,如果PMM在下一定时朝着分组被发送的方向发送接收到的分组,就足够了。由于没有接收者,所以此分组被丢弃。
接下来,使先前形成的PMM对成为PMM群组,并且形成一对相邻的PMM群组。顺便提一句,当PMM的数目是2的幂时,可形成一对PMM群组,但是,当不是2的幂时,可将其中无法形成一对PMM群组的部分保持为原样。例如,当PMM的数目是三时,可形成包括PMM-0和PMM-1的PMM群组以及PMM-2的一对。
然后,分组被按顺时针方向从一个PMM群组的上游方PMM顺时针发送到总线(第一总线)上,而分组被按逆时针方向从另一PMM群组的下游方PMM逆时针发送到总线(第二总线)上。对于图50和51所示的示例,分组被从PMM-0顺时针发送到第一总线上,并且分组被从PMM-3逆时针发送到第二总线上(参见图53)。
更详细而言,如图52A所示,首先发送分组的PMM生成基于步骤4906中存储的整个PMM群组的阵列GVNo的值的总数的分组,值对的数目与阵列GVNo的总数一致,PMM本身的阵列GVNo的值与阵列GOrd’的值形成的一对被安排在由阵列GOrd”中的相应值所指示的位置处,而空值被安排在其他位置处(步骤5201至5203)所创建的分组被按指定方向将分组发送到下一PMM(步骤5204)。
如图53所示,例如,在PMM-0中,已知在PMM-0和PMM-1这一对中,在阵列GVNo中有五个值。因此,具有一组五个值的分组[-,(1,0),(3,1),(4,2),-](这里“-”表示空值)被通过第一路径顺时针发送到PMM-1。另一方面,在PMM-3中,已知在PMM-2和PMM-3这一对中,在阵列GVNo中有五个值。因此,具有五个值的分组[-,(1,9),-,(4,8),-]被通过第二总线逆时针发送到PMM-2。
如图52B所示,作为分组的目的地,已接收到分组的PMM参考其自己的阵列GOrd”,并将相应的阵列GVNo的值和GOrd’的值形成的一对安排在分组中的空值的指定位置处,即,由阵列GOrd”的值所指示的位置(步骤5211和5212)。然后,PMM沿着分组流动的方向向下一PMM发送分组(步骤5213)。
在图53中,已接收到来自PMM-0的分组的PMM-1将相应的值对(0,3)和(5,4)安排在已安排了空值的位置之间由其自己的阵列GOrd”的元素“0”和“4”所指示的位置处。这样,分组[(0,3),(1,0),(3,1),(4,2),(5,4)]被通过第一总线顺时针发送。此外,已接收到来自PMM-3的分组的PMM-2类似地通过第二总线逆时针发送分组[(0,6),(1,9),(2,5),(4,8),(6,7)]。
接下来,将描述当构成与一个PMM群组成对的另一个PMM群组的PMM接收到分组时要执行的处理。
如图55所示,当构成另一PMM群组的PMM接收到分组时(步骤5501),PMM将接收到的分组中对应于GVNo的值与其自己的GVNo的值相比较,并在考虑到另一PMM的阵列GVNo的情况下指定相对位置(顺序)(步骤5502)。根据此位置(顺序),阵列GOrd”的值被更新(步骤5503)。接下来,PMM沿着分组被发送的方向将分组发送到下一相邻PMM(步骤5504)。顺便提一句,在步骤5502中,在GVNo的值相同的情况下,参考所述对的阵列GOrd’的值,并且值较小的那个被安排在较高等级处。
在已接收到分组的PMM中,顺序重复图55所示的处理,完成指示排序顺序的全局有序集合阵列GOrd。当处理结束时,所创建的GOrd”被读取为GOrd,并且OrdSet’被读取为OrdSet。
在图54的示例中,PMM-1接收来自PMM-2的分组[(0,6),(1,9),(2,5),(4,8),(6,7)]。在此分组中,当对应于阵列GVNo的值与其自己的阵列GVNo的值被彼此比较时,由于“0=0<1<2<4<5”,所以阵列GOrd”的值分别被从“0”和“4”更新为“0”和“8”。顺便提一句,当阵列GVNo的值相同时,参考各相应的GOrd’的值。
在下一时序,PMM-0接收来自PMM-1的相同分组[(0,6),(1,9),(2,5),(4,8),(6,7)]。在此分组中,当对应于阵列GVNo的值与其自己的阵列GVNo的值被彼此比较时,获得“0<1=1<2<3<4=4<6”。因此,阵列GOrd”的值分别被从“1”、“2”和“3”更新为“2”、“5”和“6”。在PMM-2和PMM-3中也执行类似的处理,并且为其中每一个更新GOrd”的值。
如上所述,所创建的GOrd”被读取为GOrd,并且OrdSet’被读取为OrdSet,以便例如在每个PMM中获取图56所示的阵列。这里,按阵列GOrd的顺序来顺序抽取记录,以便可获得排序后的表状数据(见图57)。
[系统结构,本发明的意义]
本发明的信息处理系统例如通过环状信道连接到作为前端的终端设备,并且每个PMM接收来自终端设备的指令,以便可在PMM中执行前述汇编、检索、交叉制表和排序的处理。此外,每个PMM只须利用总线发送分组,不必外部地控制PMM间的同步。
此外,除了包括包含用于诸如汇编或检索这样的重复操作的硬件结构的加速芯片外,控制设备还可包括通用CPU。通用CPU解释通过信道从终端设备发送来的指令,并可向加速芯片给出必要指令。
另外,希望在控制设备尤其是加速芯片中提供寄存器群组,用于接收操作所必要的各种阵列,例如有序集合阵列和全局有序集合阵列。这样,当处理所必要的值一旦被从存储器加载到寄存器时,在前述与汇编、检索、交叉制表和排序相关的处理操作中,控制设备可在不访问存储器的情况下从寄存器读取值,并可将值写入寄存器中。这样可显著降低存储器访问次数(操作处理之前加载以及处理结果的写入),并且可显著缩短处理时间。
接下来将描述本发明中引入的阵列GOrd和阵列GVNo的意义。在本发明中,全局有序集合阵列GOrd指示由每个PMM掌握的表状数据的每个记录在全局表状数据中的位置(顺序),在该全局表状数据中汇集了各PMM所掌握的本地表状数据。即在本发明中,记录的位置信息被全局有序集合阵列GOrd和有序集合阵列OrdSet划分全局成分和本地成分,并且通过这样的方式,可以处理全局表状数据,每个PMM还可以单独执行处理。
在此实施例中,虽然PMM被构造为保存每个项目的信息块,但是在PMM按原样保存表状数据的情况下,如稍后所述,GOrd类似地起作用。
例如在此实施例中,在汇编结束的状态下(例如见图17),按全局有序集合阵列GOrd的值的顺序抽取每个项目的项目值,以便可创建整体表状数据的视图。同样在检索结束的状态中(例如见图26)和排序结束的状态中(例如见图56),同样的操作也适用。
更详细而言,例如,在图17中,当PMM-2的控制电路20接收到指示顺序的值“5”时,指定全局有序集合阵列GOrd中与值“5”相关的(本地)有序集合阵列OrdSet的值“0”。另外,对于项目“年龄”,指定指针阵列VNo中的值“1”,然后可指定值列表VL中的项目值“20”。当然,同样对于另一项目,指定指针阵列VNo中的项目值,和由阵列VNo中的值指定的值列表VL中的项目值。这样,可以抽取对应于指示顺序的值的记录。
此外,即使在不保存信息块的结构中,响应于接收到上述指示顺序的值,也可实现相应记录的抽取。这可在稍后参考图60来描述。
接下来,将参考不保存信息块的结构进一步描述阵列GOrd的意义。例如,将考虑如图58A所示的情况,其中表状数据不是通过对值(项目值)本身排序来实现的,而是通过将有序集合阵列的值排序作为地址信息以指定在阵列中重新安排值的项目,图58B中的有序集合阵列OrdSet示出排序后记录的顺序。
接下来,将考虑有序集合阵列OrdSet和表状数据的主体(见图58B的标号5800)被分配到多个PMM并被多个PMM保存。图59示出一个示例,其中有序集合阵列OrdSet被划分,表状数据主体被划分,并且划分后的阵列OrdSet和划分后的表状数据主体所形成的对被分配到PMM。在此情况下,还存在PMM阵列OrdSet中的值指示另一PMM保存的记录的情况(例如参见箭头5901和5902)。因此,实际上不存在可由每个PMM单独执行的处理。此外,在图59的示例中,在项目“性别”被缩小(检索)到项目值“女”的情况下,不可能形成关于如何分配包含指示缩小后的记录的值的阵列的明确标准。即前述状态中的检索基本上变得不可能。
另一方面,如图60所示,由每个PMM保存的表状数据的子集中的本地排序的记录的顺序由有序集合阵列OrdSet掌握,并且整体中的每个排序后的记录的顺序由全局有序集合阵列GOrd掌握。由于(本地)有序集合阵列OrdSet指示其自己掌握的表状数据的子集的记录,因此单个PMM进行的处理就变得可能了。
以下将描述图60所示的示例中响应于接收指示顺序的值而进行的记录的抽取。例如,当PMM-0的控制电路接收到指示顺序的值“5”时,指定全局有序集合阵列GOrd中与值“5”相关的(本地)有序集合阵列OrdSet的值“1”。这样,PMM-0中的记录“性别:男”、“年龄:21”、“身高:172”和“体重:64”被抽取。
另外,这里尤其应当注意由于反映了本地排序,因此值的顺序的颠倒可能发生在(本地)有序集合阵列OrdSet的值中,但是全局有序集合阵列GOrd的值具有升序。这样,PMM间的高速处理以及PMM中的处理就变得可能了。当然,同样在检索处理和交叉制表处理后,全局有序集合阵列GOrd的值具有升序。
如上所述,阵列GOrd具有升序产生下述优点。例如,在前述检索处理中,由于阵列GOrd(阵列GOrd’被用于处理)具有升序,因此可以高速实现值的比较(见图23至图25)。类似地,同样对于前述排序处理,由于阵列GOrd(阵列GOrd’被用于处理)具有升序(此外,由于后面提到的阵列GVNo也具有升序),因此可以高速实现值的比较处理(图52A至图54)。
此外,即使在抽取排序后的记录且创建排序后的视图的情况下,由于全局有序集合阵列GOrd具有升序,因此每个PMM只须从头记录开始顺序输出数据,从而可加速处理。
接下来,将描述全局值号码阵列GVNo的意义。全局值号码阵列在制表时尤其有用。例如,假设图61所示的表状数据的子集的记录被掌握在各个PMM中(见标号6100至6103)。在上述示例中,考虑了综合各个PMM中的制表结果以获取整个表状数据的制表结果的情况。
例如在对项目“年龄”的出现数字制表的情况下,对于项目“年龄”的每个项目值,可在每个PMM中形成指示出现数字的阵列(见标号6110至6113)。但是,非常难以按原样综合各PMM中的各项目值的出现号码。
另一方面,通过引入全局值号码阵列,可指定每个PMM中保存的项目值在所有项目值中的确定顺序的位置。因此,使全局值号码阵列的值成为关键字,并且可实现整体制表,即出现值的综合。
另外,在交叉制表中,通过利用每个项目的信息块中提供的全局值号码阵列GVNo,在由与交叉制表相关的项目的全局值号码阵列GVNo的值集合所唯一指定的逻辑坐标阵列中的位置处累计每个PMM中的制表结果,以便可顺利实现出现值的综合。
此外,全局值号码阵列GVNo还被用于指定和抽取项目值,即PMM接收指示全局表状数据中的值(项目值)的顺序的信息并抽取对应于该顺序的项目值。例如,在图17中,对于项目“年龄”,为了知道头部,即第0个项目值,已接收到指示值的顺序“0”的指令的PMM-1可指定与全局值号码阵列GVNo中的值“0”相关的值列表VL中的值“16”。当然,已接收到指令的PMM-2可类似地进行操作。
另外,全局值号码阵列GVNo也具有升序。这是因为当由每个PMM掌握的(本地)值列表的项目值具有升序时,顺序被保存。因此,在排序处理中,可以高速实现值的比较处理(见图52A至图54)。
本发明不限于以上实施例,可在权利要求所述的本发明的范围内做出各种修改,并且无疑这些修改也包含在本发明的范围中。
在实施例中,PMM被连接成环状,其一方面由第一总线(第一传输路径)连接以便顺时针发送分组,另一方面由第二总线(第二传输路径)连接以便逆时针发送分组。通过上述结构,由于可使分组发送的延迟时间统一,因此是有利的。但是,不限于这种方式,而可采用诸如总线类型的另一模式传输路径。
此外,在此实施例中,虽然使用了包括存储器、接口和控制电路的PMM,但是并不限于此,而是可使用个人计算机、服务器等取代PMM作为向其分配本地表状数据的信息处理单元。或者,可采用这样一种结构,其中单个个人计算机或服务器保存多个信息处理单元。同样在这些情况下,信息处理单元接收指示记录顺序的值,并且可通过参考全局有序集合阵列GOrd来指定记录。此外,还可以通过参考全局值号码阵列来指定项目值。
此外,信息处理单元之间的传输路径也可采用所谓的网络型或总线型。
通过采用在单个个人计算机中提供多个信息处理单元的结构,可按如下方式使用本发明。例如,准备Sapporo分公司、Tokyo分公司和Fukuoka分公司的三段表状数据,并且在各分公司的单元中正常执行检索、制表、分类等等。另外,考虑其中综合了三个分公司的全局表状数据,并且将每个分公司的表状数据视为整体表的部分表,并且可实现与全局表状数据有关的检索、分类和制表。
当然,同样在多个计算机通过网络连接的情况下,类似地,也可实现与分配到个人计算机的本地表状数据相关的处理,以及与全局表状数据相关的处理。
根据本发明,在分布式存储器型中,通过综合处理和通信,可提供能够实现甚高速并行处理的信息处理装置。
产业应用领域
本发明尤其可用于管理大量数据的系统,例如数据库或数据仓库。更具体而言,它可用于大规模科学计算、诸如接单/下单管理或库存事务等的基本商业管理以及办公室管理。

Claims (9)

1.一种信息处理系统,包括:
多个信息处理单元,被安排成环形,每个信息处理单元保存本地信息块以表示表状数据,所述表状数据被表达为包括属于各项目的项目值的记录的阵列;以及
分组传输路径,用于连接所述多个信息处理单元,
其中所述本地信息块包括值列表和指针阵列,该值列表具有按指示值列表中项目值位置的项目值号码的顺序存储的项目值,该指针阵列指示所述项目值号码的指针值是按对应于所述记录的唯一本地序列号的顺序存储,其特征在于:
每一个所述信息处理单元包括:
用于基于所述本地信息块中的本地序列号创建所有所述多个信息处理单元中的唯一全局序列号的装置;
用于通过所述分组传输路径将所述值列表发送到一个相邻信息处理单元的装置;
用于通过所述分组传输路径接收来自其它相邻信息处理单元的值列表的装置;以及
如果在发送自所述信息处理单元和接收自其它相邻信息处理单元的值列表中存在重复值,用于删除接收自其它相邻信息处理单元的值列表中的项目值中的重复项目值并且将所有所述多个信息处理单元中的全局序列号赋予所述本地信息块中的值列表的项目值的装置。
2.根据权利要求1所述的信息处理系统,其中,每一个信息处理单元包括存储器和控制设备,由所述信息处理单元所保存的表状数据的聚集形成全局表状数据,所述全局表状数据包含由所有所述信息处理单元为每个项目保存的项目值的唯一全局序列号,并且
每一个所述信息处理单元都包括:
全局有序集合阵列,其包含指示所述全局表状数据中的记录的序列号的值;以及
记录抽取装置,用于根据用来指定由该信息处理单元的控制设备所接收到的序列号的指令来识别所述全局有序集合阵列中的值,并用于抽取由所述全局有序集合阵列中的被识别的值所指示的记录。
3.如权利要求2所述的信息处理系统,其特征在于:所述信息处理单元保存另外的有序集合阵列,在该另外的有序集合阵列中识别所述记录的值被交换以反映该信息处理单元中的排序顺序,并且所述信息处理单元重新安排指示所述全局有序集合阵列中的序列号的值以反映所述全局表状数据中的记录的排序顺序,其中所述记录由所述另外的有序集合阵列中的值指定。
4.如权利要求2所述的信息处理系统,其特征在于,所述信息处理单元重新安排指示所述全局有序集合阵列中的序列号的值以反映所述全局表状数据中的记录的排序顺序,其中在该信息处理单元中对所述记录进行排序。
5.一种信息处理系统,包括:
多个存储器模块,被安排成环形,其中每一个存储器模块都具有存储器、接口和控制设备;以及
分组传输路径,其连接相邻存储器模块的接口,
其中每一个所述存储器模块的存储器保存每个项目的信息块以表示表状数据,所述表状数据被表达为包括属于各项目的项目值的记录的阵列,使得所述信息块包括具有按照指示值列表中项目值位置的项目值号码的顺序存储的项目值的值列表,并且所述信息块还包括具有指针值的指针阵列,所述指针值指示按对应于所述记录的唯一本地序列号的顺序存储的项目值号码,并且由各存储器所保存的信息块的聚集形成全局信息块,特征在于:
每一个所述存储器模块的控制设备都包括:
偏置值存储装置,用于保存偏置值,以指示由该存储器模块保存的信息块占据了所述全局信息块中的哪个位置;
全局有序集合阵列创建装置,用于基于所述偏置值创建所述全局信息块中包含对应于所述记录的全局序列号的全局有序集合阵列;
分组发送装置,用于封装由该存储器模块保存的每一个项目的值列表并通过使用所述传输路径将所述值列表发送到一个相邻存储器模块;
分组接收装置,用于并行于由所述分组发送装置进行的分组发送,通过使用所述传输路径,接收来自其它相邻存储器模块的由其它存储器模块保存的封装后的值列表;以及
顺序判断装置,用于:
将由该存储器模块保存的每一个项目的值列表与所接收到的每一个项目的值列表中的每一个进行比较,
如果在由该存储器模块保存的每一个项目的值列表和所接收到的每一个项目的值列表中的每一个之间存在重复值,从所接收到的每一个项目的值列表中的每一个中删除重复值,
确定由该存储器模块保存的每一个项目的值列表中的项目值相对于所接收到的每一个项目的值列表的相对序列号,
基于所述相对序列号确定整个全局信息块中的由该存储器模块保存的每一个项目的值列表中的项目值的全局序列号,以及
将在由该存储器模块保存的每一个项目的值列表中的项目值的全局序列号存储到每个项目的全局值号码阵列中。
6.如权利要求5所述的信息处理系统,其特征在于,所述信息处理系统还包括用于按照用于指定所述记录的序列号的指令来指定所述全局有序集合阵列中的值和抽取由所指定的值指示的记录的记录抽取装置。
7.一种用于信息处理系统中的信息处理方法,所述信息处理系统包括:多个信息处理单元,被安排成环形,并且将数据分发到所述多个信息处理单元并使其能够使用该数据,每个信息处理单元保存本地信息块以表示表状数据,所述表状数据被表达为包括属于各项目的项目值的记录的阵列;以及
分组传输路径,用于连接所述多个信息处理单元,
其中所述本地信息块包括值列表和指针阵列,其中,该值列表具有按照指示值列表中项目值的位置的项目值号码的顺序存储的项目值,该指针阵列用于指示所述项目值号码的指针值按对应于所述记录的唯一本地序列号的顺序存储,
特征在于,在每一个所述信息处理单元中,所述方法包括:
基于所述本地信息块中的本地序列号在所有所述多个信息处理单元中创建唯一全局序列号的步骤;
通过所述分组传输路径将所述值列表发送到一个相邻信息处理单元的步骤;
通过所述分组传输路径接收来自其它信息处理单元的值列表的步骤;以及
如果在发送自该信息处理单元和接收自其它信息处理单元的值列表中存在重复值,删除接收自其它信息处理单元的值列表中的项目值中的重复项目值并且将所有所述多个信息处理单元中的全局序列号赋予所述本地信息块中的值列表中的项目值的步骤。
8.一种用于信息处理系统中的信息处理方法,所述信息处理系统包括:多个存储器模块,被安排成环形,并且将数据分发到所述多个存储器模块并使其能够使用该数据,每一个存储器模块都具有存储器、接口和控制设备;以及分组传输路径,其连接相邻存储器模块的接口,
其中每一个所述存储器模块的存储器保存每个项目的信息块以表示表状数据,所述表状数据被表达为包括属于各项目的项目值的记录的阵列,使得所述信息块包括值列表和指针阵列,其中,该值列表具有按照指示值列表中项目值的位置的项目值号码的顺序存储的项目值,该指针阵列用于指示所述项目值号码的指针值按对应于所述记录的唯一本地序列号的顺序存储,并且由各存储器保存的信息块的聚集形成全局信息块,其特征在于,在每一个所述存储器模块中,所述方法包括:
偏置值存储步骤,该步骤保存偏置值,以指示由该存储器模块保存的所述信息块在所述全局信息块中占据了哪个位置;
全局有序集合阵列创建步骤,该步骤基于所述偏置值创建所述全局信息块中的包含对应于所述记录的全局序列号的全局有序集合阵列;
分组发送步骤,该步骤封装该存储器模块保存的每个项目的值列表并通过使用所述传输路径将所述值列表发送到一个相邻存储器模块;
分组接收步骤,该步骤并行于所述分组发送步骤,通过使用所述传输路径,来接收由其它相邻存储器模块保存的封装后的值列表;以及
顺序判断步骤,该步骤:
将由该存储器模块保存的每一个项目的值列表与所接收到的每一个项目的值列表中的每一个进行比较,
如果在由该存储器模块保存的每一个项目的值列表和所接收到的每一个项目的值列表中的每一个之间存在重复值,从所接收到的每一个项目的值列表中的每一个中删除重复值,
确定由该存储器模块保存的每一个项目的值列表中的所述项目值相对于所接收到的每一个项目的值列表的相对序列号,
基于所述相对序列号,确定整个全局信息块中的由该存储器模块保存的每一个项目的值列表中的所述项目值的全局序列号,以及
将在所述全局信息块中的已确定的项目值的全局序列号存储到每个项目的全局值号码阵列中。
9.如权利要求8所述的信息处理方法,其特征在于,所述顺序判断步骤包括以下步骤:根据用于指定所述记录的序列号的指令来指定所述全局有序集合阵列中的值并且抽取由所指定的值所指示的记录。
CN2004800133972A 2003-04-16 2004-04-14 信息处理系统和信息处理方法 Expired - Fee Related CN1791854B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP111978/2003 2003-04-16
JP2003111978 2003-04-16
PCT/JP2004/005323 WO2004092948A1 (ja) 2003-04-16 2004-04-14 情報処理システムおよび情報処理方法

Publications (2)

Publication Number Publication Date
CN1791854A CN1791854A (zh) 2006-06-21
CN1791854B true CN1791854B (zh) 2010-05-26

Family

ID=33296013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800133972A Expired - Fee Related CN1791854B (zh) 2003-04-16 2004-04-14 信息处理系统和信息处理方法

Country Status (7)

Country Link
US (1) US20060265379A1 (zh)
EP (1) EP1615121A4 (zh)
JP (1) JP4511464B2 (zh)
KR (1) KR20060008889A (zh)
CN (1) CN1791854B (zh)
CA (1) CA2521363A1 (zh)
WO (1) WO2004092948A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2597521A1 (en) 2005-04-18 2006-10-26 Turbo Data Laboratories Inc. Information processing system and information processing method
KR101196566B1 (ko) 2005-05-24 2012-11-01 가부시키가이샤 터보 데이터 라보라토리 멀티 프로세서 시스템 및 그 정보처리방법
US8495105B2 (en) * 2009-12-22 2013-07-23 International Business Machines Corporation Consolidating input messages for social activity summarization
GB2500863A (en) * 2012-01-20 2013-10-09 Data Re Ltd A method of indexing a database
CN114166123B (zh) * 2021-12-03 2024-04-30 蚌埠凯盛工程技术有限公司 一种随动式镀膜生产线玻璃基板位置自动追踪方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
WO2000010103A1 (fr) * 1998-08-11 2000-02-24 Shinji Furusho Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux
JP4425377B2 (ja) * 1999-07-29 2010-03-03 株式会社ターボデータラボラトリー データ処理装置、および、データ処理方法
JP4317296B2 (ja) * 1999-09-17 2009-08-19 株式会社ターボデータラボラトリー 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット
JP2001147800A (ja) * 1999-11-22 2001-05-29 Taabo Data Laboratory Kk 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法
JP2001291048A (ja) * 2000-04-04 2001-10-19 Taabo Data Laboratory Kk データ集計方法、および、当該データ集計方法にかかるプログラムを記憶した記憶媒体
JP4563558B2 (ja) * 2000-07-31 2010-10-13 株式会社ターボデータラボラトリー データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体
AUPQ982400A0 (en) * 2000-09-01 2000-09-28 Canon Kabushiki Kaisha Entropy encoding and decoding

Also Published As

Publication number Publication date
EP1615121A1 (en) 2006-01-11
EP1615121A4 (en) 2008-10-08
JP4511464B2 (ja) 2010-07-28
CA2521363A1 (en) 2004-10-28
US20060265379A1 (en) 2006-11-23
JPWO2004092948A1 (ja) 2006-07-06
WO2004092948A1 (ja) 2004-10-28
KR20060008889A (ko) 2006-01-27
CN1791854A (zh) 2006-06-21

Similar Documents

Publication Publication Date Title
CN101133414B (zh) 多处理器系统及其信息处理方法
CN105637524A (zh) 硬件平台中的资产管理设备和方法
CN100447781C (zh) 用于将可扩展标记语言映射到n维数据结构的方法和系统
JP4511469B2 (ja) 情報処理方法及び情報処理システム
CN1791854B (zh) 信息处理系统和信息处理方法
WO2005106713A1 (ja) 情報処理方法及び情報処理システム
US6219672B1 (en) Distributed shared memory system and method of controlling distributed shared memory
JP4620593B2 (ja) 情報処理システムおよび情報処理方法
US8200913B2 (en) Distributed memory type information processing system
Hollaar Specialized merge processor networks for combining sorted lists
Skliarova et al. Hardware/software co-design
JP4772506B2 (ja) 情報処理方法、情報処理システムおよびプログラム
Chisvin et al. Content-addressable and associative memory
KR101188761B1 (ko) 정보 처리 시스템 및 정보 처리 방법
Parhami Architectural tradeoffs in the design of VLSI-based associative memories
Muraszkiewicz Cellular array architecture for relational database implementation
Parhami The mixed serial/parallel approach to VLSI search processors
Zhang et al. GeoLake: Bringing Geospatial Support to Lakehouses
Kung et al. Two papers on a tree-structured parallel computer
Sweiger Scalable Computer Architectures for Data Warehousing
Das et al. O (log log n) time algorithms for Hamiltonian-suffix and min-max-pair heap operations on hypercube multicomputers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: KLEANAIRE DATA LABS CO.,LTD.

Free format text: FORMER OWNER: ANTIQUARIAN HORN

Effective date: 20060721

C10 Entry into substantive examination
C41 Transfer of patent application or patent right or utility model
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20060721

Address after: Kanagawa, Japan

Applicant after: Turbo Data Laboratory Inc.

Address before: Kanagawa

Applicant before: Furusho Shinji

EE01 Entry into force of recordation of patent licensing contract

Assignee: Fujitsu Broad Solution & Consu

Assignor: Turbo Data Laboratory Inc.

Contract fulfillment period: 2009.10.26 to 2026.4.16 contract change

Contract record no.: 2009990001259

Denomination of invention: Information processing system and information processing method

License type: General permission

Record date: 20091112

LIC Patent licence contract for exploitation submitted for record

Free format text: COMMON LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.10.26 TO 2026.4.16; CHANGE OF CONTRACT

Name of requester: CO., LTD. FUJITSU BSC

Effective date: 20091112

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

Termination date: 20140414