CN1223952C - 分类方法、分类处理设备和数据处理设备 - Google Patents
分类方法、分类处理设备和数据处理设备 Download PDFInfo
- Publication number
- CN1223952C CN1223952C CNB021406294A CN02140629A CN1223952C CN 1223952 C CN1223952 C CN 1223952C CN B021406294 A CNB021406294 A CN B021406294A CN 02140629 A CN02140629 A CN 02140629A CN 1223952 C CN1223952 C CN 1223952C
- Authority
- CN
- China
- Prior art keywords
- data
- classification
- processing
- output
- handled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 799
- 238000000034 method Methods 0.000 title claims description 69
- 238000003860 storage Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 43
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 3
- 230000014509 gene expression Effects 0.000 description 44
- 230000015654 memory Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 21
- 238000007689 inspection Methods 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 11
- 230000001174 ascending effect Effects 0.000 description 10
- 230000000717 retained effect Effects 0.000 description 8
- 241001269238 Data Species 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000005755 formation reaction Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000008030 elimination Effects 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 230000004069 differentiation Effects 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000002203 pretreatment Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
数据处理设备的控制器由多处理控制单元,输入数据处理控制单元和输出数据处理控制单元构成以执行多道处理控制,该控制考虑到了由于分类处理设备所引起的时间滞后。另外,利用在数据处理装置的分类处理设备中的分类处理器的控制单元实现的根据输入的初始数据对作业转换的控制等。
Description
本发明涉及对大量数据进行高速分类的分类处理设备、使用该分类设备的分类方法以及进行数据检索等的数据处理设备。
图18表示在“信息处理”33卷12期第1416-1423页上所描述的普通数据处理设备。标号1表示数据处理设备,标号2表示通过解释从CPU7传送给其的命令来控制数据库处理设备3的控制器,标号3表示对于存储在磁盘设备8、主存6等中的数据进行数据库处理的数据库处理设备,标号4表示根据来自数据库处理设备的指令进行分类处理的分类处理设备。控制器2、数据库处理设备3和分类处理设备4位于数据处理设备1内。标号5表示用于连接数据处理设备1、主存6、CPU7、磁盘设备8等的主计算机9的总线。标号6表示主计算机的主存,标号7表示主计算机的CPU,标号8表示在主计算机中存储数据的磁盘设备,标号9表示整个主计算机。
以下对操作进行说明。如果在主计算机9中产生了数据处理请求,主计算机9的CPU7就陆续地从存有目标数据的磁盘设备8中取出数据并通过总线5不断地将它们传送给数据处理设备1。此时,如果需要的话,就将主计算机9的主存6作为输入/输出缓冲区。当数据输入到数据处理设备1时,数据处理设备1就利用数据库处理设备3进行处理、利用分类处理设备4进行分类处理,并再通过总线5将结果返回给CPU7。CPU7按照与输入期间相同的方式将返回的结果数据存储在磁盘设备8中。数据向数据处理设备1的输入和结果数据从数据处理设备的输出由控制器2并行地执行。
以下对数据库处理设备33的操作进行详细的说明。对于从控制器2输入到数据库处理设备3的数据,数据库处理设备3执行与分类处理不同的数据库处理,例如数据选择、格式转换和合并。数据库处理设备3可以利用专门的硬件来实现,或者利用一个或多个通用微处理器来实现。根据来自CPU7的指令内容的不同,数据库处理设备3在需要进行分类处理时通过控制分类处理设备4来进行分类处理。一般来说,数据库处理设备3在分类处理之前进行数据选择、格式转换等,或者在分类处理之后进行求和处理。如果不需要分类处理,数据库处理设备3就只进行数据的选择处理等,并通过控制器2返回结果给CPU7。此外,在这个时候,如例如日本专利申请特许公开第63-86043号中所示,分类处理设备4的存储设备被共享,分类处理设备停止工作,其存储设备被用作数据库处理设备3的存储设备,以便在诸如数据的合并和组合等处理期间作为大容量缓冲区设备。
上述数据库处理设备结构的一实例如图19所示。在图19中,与图18所示标号相同的标号表示相同或相应的部件。标号34和35表示通用微处理器,标号36和37表示分别与微处理器34和35连接的主存储器。标号38表示用于连接两个通用微处理器34和35、控制器2以及分类处理设备4的总线;标号31表示将数据输入给分类处理设备4的总线;标号32表示从分类处理设备4输出数据的总线;标号33表示对分类处理设备4中的共享存储设备进行存取的总线。此后将对于指定的数据处理使用分类处理设备4的情形和没有使用分类处理设备4的情形分别描述数据库处理设备3的操作。
在指定的处理使用分类处理设备4的情形中,就微处理器34和35而论,对于输入数据,例如将微处理器34指定给数据选择处理。微处理器34不断地接收控制器2通过总线38给其传送的数据、利用其主存储器36只取出必需的数据以及通过总线31陆续地将必需的数据传送给分类处理设备4。分类处理设备4不断地接收这些数据重排它们并通过总线32将结果传回给微处理器35。一旦接收到这些结果,微处理器35就利用主存储器37来完成例如数据的格式转换、聚合功能等,并通过总线38将结果传回给控制器2。
在指定的处理没有使用分类处理设备4的情形中,输入数据处理和输出数据处理被分别分配给微处理器34和35。在这种情况下,由于分类处理设备4没有被使用,所以其操作被停止,分类处理设备4的存储设备通过总线33被交替地用作微处理器34和35的主存。就是说,除了微处理器34和35分别具有的主存储器35和37外,微处理器34和35还将分类处理设备4具有的存储设备的一部分用作它们的共享存储设备。传送给这一存储设备的数据被部分地存储,能够减少控制器2输入和输出的数目,由此能够提高处理速度。例如,可以这样地执行对存储在多个文件中的数据组进行合并的处理,使得在数据被陆续地与文件相一致地进行分类时,微处理器34能够将从控制器2接收的文件组的数据暂存在分类处理设备4的共享存储设备的区域中,与此同时,微处理器35能够并行地合并位于该区域中的各个文件的数据。
以下详细地描述分类处理设备4的操作。CPU7通过数据库处理设备3传送的数据串被不断地输入给分类处理设备4并按照指定顺序被重新排列,结果又被返回给数据库处理设备3。这一过程如上述“信息处理”描述的图20所示。图20是说明分类处理设备4的内部结构的图示。在图20中,与图19所示标号相同的标号表示相同或相应的部分。标号41表示首先对经总线31输入的数据进行分类处理的第一级分类处理器;标号42表示对被第一级分类处理器分类的输出数据进行分类处理的第二级分类处理器;标号43和44表示各被用来对来自相应前级分类处理器的输出数据进行分类处理的第三级分类处理器和第四级分类处理器。在第四级即最后级中的分类处理器的输出信号通过总线32输出给微处理器34或35。虽然在此示出四个分类处理器41至44来简化说明,但根据需要可以增加或减少分类处理器的个数。标号45至48表示分别被连接到分类处理器41至44的共享存储设备。共享存储设备45至48的存储容量根据与之连接的分类处理器41至44而变化。例如,与第i级分类处理器连接的共享存储设备的存储容量具有根据2的(i-1)次幂计算的容量。
以下详细描述分类程序444进行的分类处理。图21是说明输入给各个分类处理器的数据的内容以及它们的输入定时的图示。标号49a表示输入给第一级分类器的数据串;49b表示输入给第二级分类处理器的数据串;49c表示输入给第三级分类处理器的数据串;49d表示输入给第四级分类处理器的数据串。
现在考虑数据8,2,1,3,5,7,6,4,···被陆续地输入给分类程序444并按照降序进行分类的情况。首先,第一级中的在前分类处理器41每两个地取出输入的数据、重排它们并将它们传送给在后面级中的分类处理器。每两个地输入给后面级分类处理器的数据是
82,31,75,64,···在这里,前面级分类处理器41传送的数据“1”和“3”的顺序被颠倒,数据作为按颠倒顺序“31”被分类的两个数据的组合被输出。这样每两个地被分类的数据被输入给第二级分类处理器42,该第二级分类处理器42每两组地取装它们和合并它们,并将每四个地被分类的数据串传送给后面级。结果是
8321,7654,···如果例如“82”和“31”被合并,结果就是“8321”。这样每四个地被分类的数据被输入给第三级分类处理器43,该第三级分类处理器43每两组地取出它们和合并它们,并将每八个地被分类的数据串传送给后面级。结果是
87654321,··第四级分类处理器44以及后面分类处理器地进行类似的处理。
如图21所示,各分类处理器41至44能够在前面级分类处理器结束所有处理之前开始处理。因此,可以看出,如果数据被连续地输入,则分类结果被并行地输出,数据输入有微小的时间滞后。
例如,对由第二级分类处理器42开始的处理进行说明。第一级分类处理器41在步骤S1接收“8”、在步骤S2接收“2”。第一级分类处理器41然后在步骤S3比较“8”和“2”,输出较大数值的“8”和接收新的数值“1”。第一级分类处理器41然后比较当前被存储的“2”和“1”,输出“2”和接收新的数值“3”。
其间,第二级分类处理器42在步骤S3开始操作,接收第一级分类处理器41输出的数据“8”。然后,按照与步骤S3相同的方式,第二级分类处理器42在步骤S4接收“2”、在步骤S5接收“3”。然后在步骤S6,第二级分类处理器42比较“8”和“3”、输出较大数值的“8”、将“2”指定为下次要被比较的数值。其间,第二级分类处理器42从第一级分类处理器41接收新的数值“1”,这一值“1”以栈的方式被存储在“3”之后。在步骤S7中,第二级分类处理器42比较“2”和“3”,输出较大数据的“3”。
如上所述,分类结果的输出在分类处理器接收要被分类的全部数据串之前开始(在这一情形中是在步骤S6之前)。
这样一来,2n个数据的重排即分类由n个分类处理器来完成。
由于与相应分类处理器41至44连接的共享存储设备45至48的存储容量由存储器芯片容量及配置等确定,所以这些存储容量实际上不一定是前面级容量的两倍。例如,容量为512kB的存储器芯片安装在所有的前10个级中,容量为1MB的存储器芯片安装在第11级中,容量为2MB的存储器芯片安装在第12级中,后面级依此类推。
由于普通数据处理设备1具有上述结构,所以存在下述问题。
在特定处理正在被执行时不能执行不同的处理。例如,如果数据处理设备1开始需要较长执行时间的处理的执行,则其它处理就不能够被执行。
特别是当存在少量其负载较重的处理操作和大量其负载较轻的处理操作时,如果开始负载较重的处理的执行,则负载较轻的处理的等待时间将非常长,导致***处理能力的下降。
如果试图同时地执行多个处理操作来克服上述问题,就需要将多个数据处理设备与主计算机连接,这导致成本的增大。
一般来说,在全体的数据库操作中,大量负载相当重的处理操作,例如市场支持在白天执行,而少量负载较轻的处理操作、例如每日批处理在夜间执行。为此,对于白天的操作需要大量的数据处理设备,而对于夜间的操作只需要少量的高速数据处理设备。但是,在使用普通数据处理设备的情况下,为了满足白天的需要,需要安装大量的数据处理设备,但大多数这些数据处理设备在夜间不使用,因此降低了资源的利用率。
作出本发明来克服上述问题,本发明的一个目的是提供一设备,在诸如分类这样的数据库处理期间,该设备允许在时间共享的基础上并行地执行其它处理,尤其是即使当需要较长执行时间的处理正在被执行时也能够改善负载较轻的处理的响应时间。本发明的另一个目的是提供一设备,该设备的多道处理的级数可以改变,以便使其既可作为白天使用的高速单个处理设备,又可作为在夜间使用的具有强的处理能力的多道处理设备。
根据本发明,提供了包括以下步骤的分类方法:将包含多个记录的第一数据块分离为各包含多个记录的多个第一小数据块的数据块分离步骤;利用分类处理单元分类被包含在多个第一小数据块的每一个中的多个记录的第一分类步骤;利用分类处理单元分类被包含在与第一数据块不同的第二数据块中的多个记录的第二分类步骤;利用分类处理单元对在第一分类步骤中未被分类的第一小数据块进行分类的第三分类步骤;以及通过合并在第一分类步骤和第三分类步骤中被分类的多个第一小数据块产生分类数据块的数据块合并步骤。
根据本发明,提供了分类处理设备,该分类处理设备包括:第一多输入控制单元,它接受多个分类处理操作,在预定处理条件下输出与一分类处理操作有关的分类数据,在结束该输出后,输出与另一分类处理操作有关的分类数据;分类处理单元,对第一多输入控制单元给其传送的分类数据进行分类;以及多输出控制单元,通过区分分类处理单元传送的分类数据涉及哪种分类处理操作来集中地输出每一分类处理操作的数据。
第一多输入控制单元进行预定时间的与多个分类处理操作中的一分类处理操作的一部分有关的分类数据的输出,在结束该输出后,进行预定时间的与另一分类处理操作的一部分有关的分类数据的输出。
第一多输入控制单元输出与多个分类处理操作中的一分类处理操作的一部分有关的预定数据量的分类数据,在结束该输出后,输出与另一分类处理操作的一部分有关的预定数据量的分类数据。
第一多输入控制单元接受多个分类处理操作,在进行了预定时间的分类数据输出的条件和输出了预定数据量的分类数据的条件之一被满足之前输出与一分类处理操作有关的分类数据,在结束该输出之后,输出与另一分类处理操作有关的分类数据,直到进行了预定时间的分类数据的输出的条件和输出了预定数据量的分类数据的条件之一被满足为止。
当从一分类处理操作转换到另一分类处理操作时,分类处理单元存储与第一多输入控制单元输出的一分类处理操作的一部分有关的分类数据的全部记录。
第一多输入控制单元能够可变地设定其接受的分类处理操作的最大数目。
在输出与分类处理操作有关的分类数据时,如果检测到与分类处理操作有关的误差或消除,第一多输入控制单元就输出被附加了结束数据的分类数据,在多输出的控制单元读出来自分类处理单元的与分类处理操作有关的分类数据直到结束数据时,第一多输入控制单元暂停该分类处理操作。
根据本发明,提供了数据处理设备,该数据处理设备包括:第二多输入控制单元,它接受分类处理操作和数据库处理操作,在预定处理条件下输出与分类处理操作有关的分类数据,在结束该输出之后,在预定处理条件下输出与数据库处理操作有关的数据;由多个分类处理器串接组成的分类处理单元,对第二多输入控制单元给其传送的分类数据进行分类;数据库处理单元,对第二多输入控制单元给其传送的数据执行数据库处理操作;以及多输出控制单元,通过区分传送给多输出控制单元的数据是与分类处理操作有关的数据还是与数据库处理操作有关的数据来集中地输出分类处理单元在分类处理操作中向其传送的分类数据或数据库处理单元在数据库处理操作中向其传送的数据。
该数据处理设备还包括:与分类处理单元的数据库处理单元连接的共享存储部件,在多个分类处理器的至少一个被旁路时使数据库处理单元能够使用未被用于分类处理的存储器。
第二多输入控制单元进行预定时间的与分类处理操作的一部分有关的分类数据的输出,在该输出之后,进行预定时间的与数据库处理操作的一部分有关的数据的输出。
第二多输入控制单元接受分类处理操作和数据库处理操作,输出预定数据量的与分类处理操作有关的分类数据,在该输出之后,输出预定数据量的与数据库处理操作有关的数据。
第二多输入控制单元接受分类处理操作和数据库处理操作,在进行预定时间的分类数据输出的条件和输出了预定数据量的分类数据的条件之一被满足之前,输出与分类处理操作有关的分类数据,在该输出之后,进行预定时间的与数据库处理操作有关的数据的输出。
至少一个分类处理器用于升序/降序检验。
第二多输入控制单元能够可变地设定分类处理操作和与第二多输入控制单元接受的分类处理操作不相同的数据库处理操作的最大数目。因此,第二多输入控制单元在不超出该上限的范围内接受处理,并将该处理的接受数据输出给分类处理单元或数据库处理单元。
如上所述,本发明的分类方法包括以下步骤:将包含多个记录的第一数据块分离为各包含多个记录的多个第一小数据块的数据块分离步骤;利用分类处理单元分类被包含在多个第一小数据块的每一个中的多个记录的第一分类步骤;利用分类处理单元分类被包含在与第一数据块不同的第二数据块中的多个记录的第二分类步骤;利用分类处理单元对在第一分类步骤中未被分类的第一小数据块进行分类的第三分类步骤;以及通过合并在第一分类步骤和第三分类步骤被分类的多个第一小数据块产生分类数据块的数据块合并步骤。因此,在进行操作时,与分类整个第一数据块的情况相比,第一分类步骤在短时间内结束,然后执行第二分类步骤。在第二分类步骤结束之后,在短时间内执行又分类第一数据块的第三分类步骤。
如上所述,本发明的分类处理设备包括:第一多输入控制单元,它接受多个分类处理操作,在预定处理条件下输出与一分类处理操作有关的分类数据,在结束该输出后,输出与另一分类处理操作有关的分类数据;分类处理单元,对第一多输入控制单元给其传送的分类数据进行分类;以及多输出控制单元,通过区分分类处理单元传送的分类数据涉及哪种分类处理操作来集中地输出每一分类处理操作的数据。因此,在进行操作时,第一多输入控制单元通过在预定条件下改变多个分类处理操作来输出数据,分类处理单元接收并分类该数据,多输出控制单元单独地对每一分类处理操作输出分类处理单元传送的分类数据。
此外,第一多输入控制单元进行预定时间的与多个分类处理操作中的一分类处理操作的一部分有关的分类数据的输出,在结束该输出后,进行预定时间的与另一分类处理操作的一部分有关的分类数据的输出。因此,第一多输入控制单元通过在预定时刻转换多个分类处理操作来输出数据,分类处理单元接收并分类该数据,多输出控制单元单独地对每一分类处理操作输出分类处理单元传送的分类数据。
此外,第一多输入控制单元输出与多个分类处理操作中的一分类处理操作的一部分有关的预定数据量的分类数据,在结束该输出后,输出与另一分类处理操作的一部分有关的预定数据量的分类数据。因此,与一种分类处理操作有关的数据被分成固定大小来产生小的数据块,在对于每一小数据块改变多个分类处理操作的时候输出该数据。
此外,第一多输入控制单元接受多个分类处理操作,在进行了预定时间的分类数据输出的条件和输出了预定数据量的分类数据的条件之一被满足之前输出与一分类处理操作有关的分类数据,在结束该输出之后,输出与另一分类处理操作有关的分类数据,直到进行了预定时间的分类数据的输出的条件和输出了预定数据量的分类数据的条件之一被满足为止。因此,不大于固定数量的数据被输出给分类处理单元,对于每一固定的时刻改变分类处理操作。
此外,当从一分类处理操作转换到另一分类处理操作时,分类处理单元存储与第一多输入控制单元输出的一分类处理操作的一部分有关的分类数据的全部记录。因此,在一个小数据块的全部数据被输入到分类处理单元之前,分类处理操作不会被改变。
此外,第一多输入控制单元能够可变地设定其接受的分类处理操作的最大数目。因此,第一多输入控制单元在不超出该上限的范围内接受处理,并将该处理的接受数据输出给分类处理单元。
此外,在输出与分类处理操作有关的分类数据时,如果检测到与分类处理操作有关的误差或消除,第一多输入控制单元就输出被增加了结束数据的分类数据,在多输出控制单元读出来自分类处理单元的与分类处理操作有关的分类数据直到结束数据时,第一多输入控制单元暂停该分类处理操作。因此,一旦检测到误差或消除,第一多输入控制单元就输出被附加了结束数据的分类数据,不输出正在被输出的分类数据的剩余部分,暂停该分类处理操作。为了从分类处理单元中消除与被暂停的分类处理操作有关的分类数据,多输出控制单元执行另一正常的分类处理操作,不与与保留在分类处理单元中的另一正常分类处理操作有关的分类数据一道地重新设定与该暂停分类处理操作有关的数据。其间,多输出控制单元读出与保留在分类处理单元中的暂停分类处理操作有关的分类数据,以便保证该数据不保留在分类处理单元中。
如上所述,本发明的数据处理设备包括:第二多输入控制单元,它接收分类处理操作和数据库处理操作,在预定处理条件下输出与分类处理操作有关的分类数据,在结束该输出之后,在预定处理条件下输出与数据库处理操作有关的数据;由多个分类处理器串接组成的分类处理单元,对第二多输入控制单元给其传送的分类数据进行分类;数据库处理单元,对第二多输入控制单元给其传送的数据执行数据库处理操作;以及多输出控制单元,通过区分传送给多输出控制单元的数据是与分类处理操作有关的数据还是与数据库处理操作有关的数据来集中地输出分类处理单元在分类处理操作中向其传送的分类数据或数据库处理单元在数据库处理操作中向其传送的数据。因此,第二多输入控制单元通过在预定条件下转换分类处理操作和数据库处理操作来输出与分类处理操作有关的分类数据和与数据库处理操作有关的数据,多输出控制单元通过区分分类数据和数据来对每一处理类型单独地输出分类数据和数据。
此外,如上所述,该数据处理设备还包括:与分类处理单元和数据库处理单元连接的共享存储部件,在多个分类处理器的至少一个被旁路时使数据库处理单元能够使用未被用于分类处理的存储器。因为,分类处理器的部分存储器用于数据库处理单元,该存储器的余下部分用于分类处理,与数据库处理和分类处理有关的数据被同时地存储,由此能够按照不对数据造成相互干扰的方式使用存储器。
此外,第二多输入控制单元进行预定时间的与分类处理操作的一部分有关的分类数据的输出,在该输出之后,进行预定时间的与数据库处理操作的一部分有关的数据的输出。因此,第二多输入控制单元通过在预定时刻转换分类处理操作和数据库处理操作来输出与分类处理操作有关的分类数据和与数据库处理有关的数据,多输出控制单元通过区分分类数据和数据来对每一处理类型单独地输出分类数据和数据。
此外,第二多输入控制单元接受分类处理操作和数据库处理操作,输出预定数据量的与分类处理操作有关的分类数据,在该输出之后,输出预定数据量的与数据库处理操作有关的数据。因此,在输出了预定数据量的分类数据之后,第二多输入控制单元输出与数据库处理操作有关的数据。
此外,第二输入控制单元接受分类处理操作和数据库处理操作,在进行了预定时间的分类数据输出的条件和输出了预定数据量的分类数据的条件之一被满足之前,输出与分类处理操作有关的分类数据,在该输出之后,进行预定时间的与数据库处理操作有关的数据的输出。因此,分类处理和数据库处理可被一个数据处理设备并行地执行,在固定时刻输入的数据被转换。
此外,由于至少一个分类处理器用于升序/降序检验,所以升序/降序检验通过利用至少一个分类处理器来进行。当分类处理被执行时,进行升序/降序检验的分类处理器被旁路,其它分类处理器执行分类处理操作。因此,进行升序/降序检验的分类处理器不干扰存储在其它分类处理器中的内容,其它处理器不干扰存储在进行升序/降序检验的处理器中的内容。
此外,第二多输入控制单元能够可变地设定分类处理操作和与第二多输入控制单元接受的分类处理操作不相同的数据库处理操作的最大数目。因此,第二多输入控制单元在不超出该上限的范围内接受处理,并将该处理的接受数据输出给分类处理单元或数据库处理单元。
被包括在本说明书中并构成本说明书的一部分的附图与文字描述一道说明本发明的实施例,描述了本发明的目的、优点和原理。
图1是本发明第一实施例的数据处理设备的功能方框图;
图2是说明本发明第一实施例的数据库***的整体配置的示意图;
图3是说明本发明第一实施例的数据处理设备的输入/输出命令的图示;
图4是说明本发明第一实施例的作业和作业步的图示;
图5是说明在本发明第一实施例的分类处理设备中的数据流动的图示;
图6是说明在分类处理设备在本发明第一实施例中的被使用的情况下作业步的输入/输出定时的图示;
图7是说明在分类处理设备未在本发明第一实施例中被使用的情况下作业步的输入/输出定时的图示;
图8是说明本发明第一实施例的多道处理控制单元的操作的第一流程图;
图9是说明本发明第一实施例的多道处理控制单元的操作的第二流程图;
图10是说明本发明第一实施例的多道处理控制单元的操作的第三流程图;
图11是说明本发明第一实施例的多道处理控制单元的操作的第四流程图;
图12是说明本发明第一实施例的输入数据处理控制单元的操作的流程图;
图13是说明本发明第一实施例的输出数据处理控制单元的操作的流程图;
图14是说明在利用分类处理设备的作业和未利用分类处理设备的作业被并行地执行的情况下作业步的输入/输出定时的图示;
图15是详细描述本发明第一实施例的分类处理设备的功能方框图;
图16是说明本发明第一实施例中的作业步的数据的图示;
图17A至17D是说明在存储设备被两台设备共享的情况下被数据库处理设备和分类处理设备使用的存储区域的图示;
图18是说明普通数据库***的整体配置的示意图;
图19是说明普通数据处理设备结构的功能方框图;
图20是详细说明普通分类处理设备的功能方框图;
图21是说明在普通分流处理中数据的流动的图示。
(第一实施例)
以下将描述本发明的一实施例。在以下的实施例中,为描述简单起见,假定在时间共享的基础上并行地执行的多道处理的道数为2。但是,一般来说,在这一实施例的基础上能够容易地实现3道或3道以上的多道处理。此外,被数据处理设备并行地多道执行的数据库处理此后将明确地称为“作业”。在一道多道处理的情形中,仅作业0被数据处理设备进行多道处理,在两道多道处理的情形中,作业0和作业1被数据处理设备按分时方式进行多道处理。在作业0和作业1被数据处理设备按分时方式通过转换地进行多道处理时,被执行的每一作业的一部分—它构成转换的单元—将称为“作业步”。此外,如以后将要说明的那样,鉴于分类处理设备的特征,不同的作业在数据处理设备内的数据输入侧(即对于数据处理设备的写入)和数据输出侧(即从数据处理设备读出)被执行,所以作业和作业步将分别称为写入侧作业和写入侧作业步,以及读出侧作业和读出侧作业步。
图1是说明本发明实施例的分类处理的概要的图示。在图1中,标号210表示多输入控制单元,它从外界接收多个作业数据、在时间共享的基础上将作业数据分成小数据块(即被分成作业步)和将它们输出给分类处理单元400。标号220表示多输出控制单元,它集中地输出每一作业的被进行多次处理的小数据块(即作业步数据),这些小数据块已被分类处理单元400进行分类,是从分类处理单元400接收的。标号400表示对每一块接收的小数据块(作业步数据)进行分类的分类处理单元。
标号D1和D2表示由CPU等传送的、要被分类的作业数据,D1表示作业0的数据,D2表示作业1的数据。数据D1和数据D2是被进行不同分类处理的数据。
标号D3和D5表示通过划分作业0产生的作业步的数据,D3表示作业步2的数据,D5表示作业表1的数据。标号D5表示作业1的作业步1的数据。
标号D6表示分类处理单元400分类数据D3所获得的数据;D7表示发类数据D4获得的数据;D8表示分类数据D5获得的数据。数据D3至D8被分别提供了表示作业步的开始和初始化分类处理单元400的标题H,还被提供了表示作业步结束的结束数据E。标号D9表示多输出控制单元220组合与作业0有关的数据D6和数据D8而获得的分类数据。标号D10表示通过组合作业1的数据获得的分类数据(在这一情形中,与作业1有关的数据只是D7)。
以下将简要地描述操作。假定能够接受多个分类处理的多输入控制单元210首先接受与作业0有关的数据D1,然后接受与作业1有关的数据D2。数据D1的值A1-A9和数据D2的值B1-B4意味着数字越大则值也越大,假定分类处理是按降序重排数据的分类处理。(多输入控制单元210的操作)
多输入控制单元210从它已接受的作业中选择一个作业并将其输出给分类处理单元400。在此,多输入控制单元210输出它早先接受的作业1的数据D1。在一个作业被分成多个作业步之后,在进行输出时将输出作业步。例如,假定在预定时间t[S]内读出与作业0有关的数据D1,然后将其输出。在3个数据A1-A3已被读出的时刻已经过去了时间t[S],随后标题H和结束数据E被附加到数据上,然后被输出给分类处理单元400(数据D5)。
在接着的时间t[S]内,与作业1有关的数据被读出并被同样地输出给分类处理单元400(数据D4)。在此期间,在进行这一读出时,分类处理单元400对作业步1的先前数据D5执行分类处理。
在接着的时间t[S]内,多输入控制单元210开始读出接着的作业的作业步。由于只有两个作业被接受,所以操作又返回到作业0,作业0的数据D1被读出作为作业步2的数据D3。然后按照与上述方法相同的方法附加标题H和结束数据E,就完成了作业步2的数据D3,将其输出给分类处理单元400。在此期间,在进行这一读出时,分类处理单元400对作业步1的先前数据D4执行分类处理。
(分类处理单元400的操作)
分类处理单元400从多输入控制单元210接收数据D3-D5,对于每一作业步,对它们进行分类并将它们输出。例如,分类处理单元400按照顺序B4、B1和B2接收作业1的数据D4、对它们进行分类并按照顺序B1、B2和B4将它们输出。
(多输出控制单元220的操作)
多输出控制单元220从分类处理单元400接收对每一作业步分类的数据并对每一作业步集中地输出它们。因此,多输出控制单元220首先接收作业0的作业步1的数据D6,然后接收作业1的数据D7,接收作业步2的数据D8。多输出控制单元220将作业步2的数据D7附加到作业0的作业步1的数据D6的末端,将其作为数据D9进行输出。在此期间,作业1的数据作为不同的数据D10被输出。
在以上的描述中,虽然利用时间t[S]作为通过划分作业来产生作业步的方法的基准来划分作业,但可以利用输入或输出数据的数据量作为基准来划分作业。例如,在分类处理单元400每次可分类的数据的数据量为固定的场合中,可以在这一数据量的输出结束的时刻将作业分成作业步。在图1的情形中,可以说每当输出了3个数据,作业就被分成作业步。
如果作业的数据利用作业步来划分,则由于如在数据D9的情形中那样分类结果变成数据被部分地分类的分类结果(在D9中,数据被分成具有在A9和A1之间的边界的两数据块),所以需要将它们合并成为一个分类数据。因此,由于要进行合并处理,所以如果数据划分的数目较小将是有益的。如果将数据量用作将作业分成作业步的基准,就能够将作业步的大小调整为分类处理单元400每次能够分类的最大量,能够如上所述地将数据划分的数目减至最小,由此能够减小合并处理所涉及的处理量。
在以下的情形中将特别看出利用时间作为基准将作业分成作业步的优点。当以后将描述的、具有数据库处理设备3的数据处理设备1用来执行对数据进行检索的作业、然后检索数据被进行分类时,会出现需花费较长时间来收集将由多输入控制单元210输出给分类处理单元400的数据的情形。例如,假定通过检索10000个数据获得的数据个数为10并需花费相当长的时间来检索10000个数据。在利用数据量作为基准来将作业分成作业步的方法中,一般来说,在每次当例如已收集到100个数据时将作业分成作业步的情形中,除非收集到该作业的100个数据或全部的检索已结束,操作不能够进行到接着的作业步。如此一来,不花费太多时间的其它作业必须继续等待直到这一作业步结束为止,因此处理能力下降。在这样的情形中,每次当已过去固定时间时将作业分成作业步的方法是有利的,可以通过使其它作业不能够利用分类处理单元400来防止一个作业长时间地一直利用分类处理单元400(即据库处理设备3)。因此,改善了总的处理能力。
数据处理设备1组合了利用数据量作为基准将作业分成作业步的方法和利用时间作为基准将作业分成作业步的方法,以便具有这两种方法的优点。
此外,由于已通过将数据分成多个作业步来对分类数D9进行分类,所以已如上所述地在数据D9被分成多个数据块的状态中对其进行了分类。确实如此,由于作业0的数据总的来说未被分类,所以需要在分类状态中设定全部数据D9(这将被称为合并处理)。这一处理是由以后将要描述的数据库处理设备3来实现。为了描述这一处理的一实例,首先对数据A2和数据A1进行比较,数据A2和数据A1分别在数据D9的作业步1和2的开始,并将较小的数据A1设定为初始值。然后比较在A1后的数据A3和A2,并将较小的数据A2设定为随后的数据。类似地,按以下方式重复该操作以便实现合并处理。
(从头描述这一处理)
A2: A1 A1
A2: A3 A2
A6; A3 A3
A6: A4 A4
A6: A9 A6 A9
这就合并了作业0的数据,因此完成了分类。最后对A6和A9进行比较是因为这一事实,即由于在图1的数据D9的A1的右手侧的数据(A1、A3和A4)已消失,所以需要比较在A1的左手侧和仍然未被作为分类数据的数据。
为了描述有把握起见,在本发明中不进行上述合并处理来将作业分成作业步。在普通的分类处理中还需要类似的合并处理。这样做的理由是因为对分类处理单元400(图18所示普通数据处理设备中的分类处理设备4)每次能够分类的数据量有限制,所以必须进行这一数据划分,在处理超过分类处理单元400的数据容量的数据的情况下,必须在一项数据被分成多个数据之后进行分类。
对于普通的分类处理,在执行完初始分配的作业之后,开始执行随后的作业。为此,除非相应于上述作业0的分类和上述合并处理已结束,否则不能够执行相应于作业1的处理。因此,只有在过去较长时间之后才能够得到作业1的结果。
相反地,如图1所示,在本发明的分类处理中,多输出控制单元220在作业0的作业步1被输出之后输出与作业1有关的作业步1。由于作业1的作业步1包括作业1的全部处理结果,所以就在这一时刻结束了作业1的处理。就是说,即使需要较长时间进行处理的作业0没有结束,但能够获得作业1的结果,因此在分类处理中能够实现强的处理能力。
(数据处理设备1的细节)
以下详细描述本发明的数据处理设备1。该数据处理设备1执行相应在于上述分类处理的操作,但还具有用来执行不同于分类处理的处理(数据的合并处理、检索处理等)的数据库处理设备3,以便能够并行地执行分类处理和不同于分类处理的数据库处理。
图2是说明本发明的数据库处理***的整体配置的图示。与图18的标号相同的标号表示相同或相应的部分,标号50表示初始化数据处理设备1并改变多道处理的道数等的连接线;标号57和52分别表示相对于作业0输入数据和输出数据的连接线;标号53和54分别表示相对于作业1输入数据和输出数据的连接线;地址被分别分配给连接线50至54,通过指定这些地址来实现利用连接线50至54对控制器2的访问。标号55至59表示暂时保留从CPU7传送到这些连接线50至54的输入/输出命令的队列。相应于各个地址的输入/输出命令利用连接线60从CPU7传出,这些输入/输出命令被存储在相应的队列中。此外,成功和出错的状态以及对于这些输入/输出命令处理的状态也通过这一连接线60通知给主计算机。
在数据处理设备1的控制器2中,标号20表示对CPU7命令的多个处理操作进行多道处理的多道处理控制单元;21表示对与数据输入有关的处理进行控制的输入数据处理控制单元;22表示对与数据输出有关的处理进行控制的输出数据处理控制单元;23表示传送输入/输出命令和与在由多道处理控制单元20选择的数据输入侧的处理有关的数据的连接线;24表示传送输入/输出命令和与在由多道处理控制单元20选择的数据输出侧的处理有关的数据的连接线。标号25表示有选择地将与输入有关的多条连接线的某一条连接连接线等(连接线51和队列56;连接线53和队列58)连接到数据库处理设备3的开关,标号26表示连接到使数据能够从数据库处理设备3返回到CPU7并相应于指定处理结束状态的地址的连接线的开关。
在该第一实施例中,主计算机9的输入/输出设备地址被分配给数据处理设备1本身,假定将0、1、2、3和4赋予在数据处理设备1内的连接线50、51、52、53和54作为单位地址。例如,如果数据处理设备1的输入/输出设备地址是12,则处理设备1与总线5的连接就分别被表示为(12,0),(12,1),(12,2),(12,3),(12,4)。以下假定只有一台数据处理设备1与主计算机9连接,在表示地址时省略在这些地址中的输入/输出设备地址,它们被简单地表示为(0),(1),(2),(3)和(4)。此外,还假定在地址(1)处至计算机9和数据处理设备1之间数据的输入和输出例如是指利用连接线51的数据输入和输出。
地址(0)用来控制数据处理设备1;地址(1)和(3)用来相对于数据处理设备1从CPU7输入数据,即沿写入方向传送数据;地址(2)和(4)用来从数据处理设备1向主计算机9输出数据,即沿读出方向传送数据。
在该第一实施例中,如图3所示,CPU7给数据处理设备1发送输入/输出命令。就是说,通过将地址(0)指定给数据处理设备1,CPU7发出再启动命令来命令操作开始。在这个时候,多道处理的道数被设定为1或2。例如,在通过设定多道处理的道数为1来启动数据处理设备1的情形中,随后只使地址(1)和(2)的集合为可操作的,但在通过设定多道处理的道数为2来启动数据处理设备1的情形中,随后将使地址(1)和(2)的集合以及地址(3)和(4)的集合为可操作的。此后假定根据地址(1)和(2)的集合及地址(3)和(4)的集合分别执行作业0和作业1。
以下将描述使用主计算机9中的这一数据处理设备的基本方法。甚至计算机9已提出利用数据处理设备1进行处理的请求时,CPU7从地址(1)和(2)的集合和地址(3)和(4)的集合中选择可操作和当前未使用的集合。如果选择了地址(1)和(2)的集合,CPU7就发出打开命令给每一个地址(1)和(2),并通知数据处理设备进行初始化处理。CPU7然后多次地发出xfer命令,并向数据处理设备1传送数据。在这个时候,对于地址(2),数据从CPU7输入到数据处理设备1,对于地址(2),数据从数据处理设备1输出给CPU7。一旦结束处理,CPU7就发出关闭命令给每一地址,命令结束处理。如上所述,为了执行某一特定的数据处理,需要相对于向数据处理设备1的输入和从数据处理设备1的输出执行一串输入/输出命令“打开xfer xfer···关闭”
在上面描述中,从主计算机的观点来看,相对于地址集合的整个处理序列,即利用多个xfer的打开至关闭构成了一个处理,即一个作业。此外,将这一处理序列“打开xfer xfer···xfer开闭”分成若干段而获得的部分对应于作业步。 这一关系如图4所示。将作业分成作业步是通过利用作业步可允许的处理时间或预定数据量作为基准来实现的。以后将描述这一划分。作为实现这一划分的另一方法,可以在发出的输入/输出命令的个数已达到固定数值时转换作业。
以下将描述在分类处理设备4中进行多道处理的装置。
首先,鉴于分类处理设备的特性,当在分类处理设备4中写入属于作业0的数据、然后写入属于另一作业1的数据时,需要同时地进行作业1的写入和在分类处理设备4中停留的作业0的数据的读出。因此,在就分类处理设备4而论的多道处理中,需要同时执行不同的作业来处理(在写入侧的)数据输入和处理(在读出侧的)数据输出。
这一过程如图5所示。在图5中,数字61和62分别表示被划分作业步的数据,数字61表示将要写入分类处理设备4的写入数据,数字62表示将要从分类处理设备4中读出的读出数据。数字63表示在分类处理设备4中的数据。此外,数据61、62和63中的空白部分表示无数据,阴影部分64和65表示有数据。标号64表示的阴影部分是作业0的数据,标号65表示的阴影部分是作业1的数据。
以下将描述将数据输入到分类处理设备4和从分类处理设备4输出数据的操作。在图5中,如步骤S20所以,首先在分类处理设备4内无数据的状态下开始操作。
然后操作到达步骤S21,输入作业0的数据。正如已参看图20描述的那样,这一数据是作业步1的数据,该输入数据被分类处理器利用第一级分类处理器41陆续地累加或处理。
然后在步骤S22中将作业步1(作业0)的全部数据存储在分类处理设备4中。在这个时候,在写入侧将作业1的数据作为写入数据61来进行准备。
然后操作到达步骤S23,在分类处理设备4的写入侧开始作业1的作业步1的数据的写入。因此,在这个时候,作业0和作业1的数据都出现在分类处理设备4中。在此期间在分类处理设备4的读出侧开始输出作业0的数据。
在步骤S24,作业0的作业步1的全部处理都已结束,作业1的数据保留在分类处理设备4中。
然后操作到达步骤S25,在分类处理设备4的写入侧又开始写入作业0的数据。作业0的数据被改变为作业步2的数据。在此期间在分类处理设备4的读出侧读出作业步1(作业1)的数据。
在步骤S26,作业1的作业步1的全部处理都已结束。
此后通过按照与上述方法相同的方法交替地改变作业来分类处理。
由于如在上述步骤S23和S25中那样会出现正在被处理的作业在写入侧和读出侧不相同的情况,所以存在控制分类处理设备4的数据库处理3和控制器2不能够简单地改变它们所处理的作业的问题。
在本发明中,通过分别将分类处理设备用于将数据写入分类处理设备4的处理(作业)和用于从分类处理设备4读出数据的处理(作业)来对处理进行管理而解决了上述问题。在此能够随意地确定哪一个作业将要被选作随后的写入侧作业,但读出侧作业被限制为正在被分类处理设备4中的最后级分类处理器(在图20所示分类处理设备4的情形中的第四级分类处理器)处理的作业。
相反地,数据库处理设备3没有这种写入侧和读出侧之间的时间滞后,需要给这两侧分配相同的作业。两种情形之间的这一不同如图6和7所示。
图6表示在使用分类处理设备4的情形中被控制器2控制的作业之间的关系在使用分类处理设备4的情况下,按流水线的方式在该分类处理设备4中执行分类处理,它一直进行到从最后级分类处理器输出了分类数据为止。因此,如图6所示,出现了写入侧和读出侧的作业不相同的现象。
相反地,在不使用分类处理设备4而由数据库处理设备3进行处理的情形中,不按照流水线的方式进行处理。为此,如图7所示,读出侧的作业和写入侧的作业都相同,在一个作业步的处理结果正在被输出给读出侧时,不从写入侧读出随后作业步的数据。就是说,数据库处理设备3在给定时刻只执行一个作业。为此,不会出现读出侧的作业和写入侧的作业不相同的情况。
(但是,在数据库处理设备3由多个处理器构成的情形中,可以提供这样的结构以便在读出侧的处理与写入侧的处理不同。)(作业转换的控制)
实际上,这两种处理(使用分类处理设备4的处理和不使用分类处理设备4的处理)被组合起来并按照任意次序被执行,因此需要根据处理的类型对输入和输出进行控制。
为此,根据以下控制规则控制处理。
*利用多道处理控制单元20确定作业边界和作业步边界
1)多道处理控制单元20根据在输入/输出命令的处理结束时由输入数据处理控制单元21或输出数据处理控制单元22本身返回的结束状态确定作业的开始、作业的结束以及作业步的结束。就是说,当输入数据处理控制单元21或输出数据处理控制单元22在输入/输出命令的处理结束时传送了JSEND或JBEND,已接收到JSEND或JBEND的多道处理控制单元20就确认相关作业步或相关作业的结束。2)此外,多道处理控制单元20监测分配给每一作业步的时间,在该时间结束(时间片结束)时,多道处理控制单元20在当前作业步之后的传送输入/输出命令的时刻将JSEND作为标记进行传送。这就要求相对于输入数据处理控制单元21或输出数据处理控制单元22异常结束多道处理控制单元20命令的作业步。
*利用输入数据处理控制单元21或输出数据处理控制单元22管理作业状态
3-1)确定作业步的结束
一旦确认已到达作业步边界,输入数据处理控制单元21或输出数据处理控制单元22就在命令处理结束的时刻将JSEND作为状态进行设定。这包括以下两种情况。
(1)使用分类处理设备4的数据输入处理在写入侧被执行,已达到分类处理设备4的最大处理容量的向分类处理设备4的数据输入已经结束(在输入给分类处理设备4的数据的末尾附加上结束标记)。
(2)使用分类处理设备4的数据输出处理在读出侧被执行,在分类处理设备4的数据中检测到结束标记。
当输入数据处理控制单元21或输出数据处理控制单元22已接收到关闭命令,就认为作业已经结束。输入数据处理控制单元21或输出数据处理控制单元22在输入/输出命令的处理结束时传送JBEND。
*利用输入数据处理控制单元21或输出数据处理控制单元22控制作业和作业步的转换。
当输入数据处理控制单元21或输出数据处理控制单元22已从多道处理控制单元20接收了JSEND,输入数据处理控制单元21或输出数据处理控制单元22就如下地进行操作。
(1)在未使用分类处理设备4的情况下(数据的合并处理等只由数据库处理设备3来实现)
在这一情况下,作业(步)被即时地转换。读出侧和写入侧都必然地遵循指令
(2)在使用分类处理设备4的情况下
如果输出数据处理控制单元22(读出侧)在检测到结束数据之前检测到JSEN标记,如果在当前作业步结束之前根据JSEND结束当前作业步,则3个或3个以上的作业数据将被保留在分类处理设备4中。因此,读出侧必然地忽略这一指令,执行作业步直到结束为止,一旦作业步结束就转换作业(步)。
在此期间,如果输入数据处理控制单元21(写入侧)忽略JSEND标记,则由于复杂的选择处理等的缘故,在写入侧负载较重时就不能够转换作业。因此,写入侧必然地遵循指令,中断当前作业(步),并将作业(步)转换至随后的作业(步)。
(在分类处理设备4中丢弃数据)
1)在出现误差或消除时输入数据处理控制单元21和输出数据处理控制单元22的处理
例如,现在假定在分类处理设备4中有两个作业,作业0在写入侧被处理,而作业1在读出侧被处理。在这个时候,如果假定CPU7已发送消除作业0的消除命令并由此需要强制地结束作业0,则由于被消除的作业0的数据仍在分类处理设备4中,所以需要丢弃作业0的不必需的数据。
通过在处理的中途发出关闭命令来实现消除。一旦在处理尚未结束的时刻接收到关闭命令,输入数据处理控制单元21或输出数据处理控制单元22就返回JBEND(作业已结束)+CAN(消除已发出)作为结束状态,以便结束作业。
在出现误差的情形中,以下地进行处理。
a)在发出打开命令时出现误差的情况下,输入数据处理控制单元21或输出数据处理控制单元22发出误差报告,然后结束与该作业有关的处理。在这个时候,报告给多道处理控制单元20的结束状态是JBEND+ERR(出现误差)。
b)在发出xfer命令时出现误差的情况下,输入数据处理控制单元21或输出数据处理控制单元22将JSEND(作业步结束)+ERR报告给多道处理控制单元20作为结束状态,然后等待关闭命令。在等待关闭命令接收的xfer命令被忽略。
c)在发出关闭命令时出现误差的情况下,输入数据处理控制单元21或输出数据处理控制单元22将误差报告给多道处理控制单元20,并结束处理。在这个时候,报告结束状态JBEND+ERR。
2)在出现误差或消除之后在分类处理设备4中丢弃数据
例如,假定在读出侧处理作业0的作业步1,在写入侧处理同一作业0的作业步2。在这个时候中,即使在读出侧的作业步1的处理中检测到误差并且作业步1的数据被多道处理控制单元20丢弃,作业步2也在写入侧被处理,因此作业0的数据保留在分类处理设备4中。需要进一步丢弃在读出侧的这一数据。
已检测到误差或消除的输入数据处理控制单元21或输出数据处理控制单元22将上述结束状态返回给多道处理控制单元20。当多道处理控制单元20在作业步边界处检测到该状态时,多道处理控制单元20设置标记来表示在处理发送给相关单元的输入/输出命令时将忽略随后的xfer命令。此外,多道处理控制单元20对于构成作业的相关单元对的另一单元设定类似的状态。当具有这一标记设定的输入/输出命令被传送给输入数据处理控制单元21或输出数据处理控制单元22时,输入数据处理控制单元21或输出数据处理控制单元22无条件地忽略它们,关闭命令除外。因此,当该对的一个单元被停止时,该对的另一单元将xfer命令作为NOP进行处理,直到接收到关闭命令为止。
当在读出侧进行分类期间出现了误差,如果数据是与哪一个相关的作业步正在被读出有关的数据,则在检测到结束数据之前,输出数据处理控制单元22的读出侧丢弃分类处理设备4的这一数据,并结束该相关的作业步。类似地,当在写入侧进行分类期间出现了误差,输入数据处理控制单元21立即输入结束标记给分类处理设备4,停止后读数据的输入。因此,在相关作业步的末尾处,保证了只有写入侧写入的数据保留在分类处理设备4内。
在已出现误差的作业步的未尾之后,在误差出现在读出侧或写入侧的情形中,如果需要的话,多道处理控制单元20就自作主张地丢弃在写入侧被写入的、保留在分类处理设备4中的数据。(如果误差在读出侧出现,读出数据已如上所述地被丢弃。在此丢弃在随后的作业步中在写入侧写入的数据。)根据下表,可以理解需要多道处理控制单元进行丢弃的情况。
表1
写入侧作业 | 读出侧作业 | 出现误差 | 在随后的作业步中的丢弃 |
0 | 0 | 写入 | 需要 |
0 | 0 | 读出 | 需要 |
0 | 0 | 写入和读出 | 需要 |
1 | 0 | 写入 | 需要 |
1 | 0 | 读出 | 需要 |
1 | 0 | 写入和读出 | 需要 |
以后将参看图8至11在上述概念的基础上描述多道处理控制单元20的操作,参看图12描述输入数据处理控制单元21的操作,参看图13描述输出数据处理控制单元22的操作。
(图8:多路处理控制单元操作的部份1)
图8到图10是用以解释多路处理控制单元20的操作的流程图。首先来解释在流程图中使用的各种规定。
jw:当前写入侧作业的识别号;
j:在写入侧下一个将要执行的作业的识别号;
jR:在读出侧下一个将要执行的作业的识别号;
jN:作业的数量;
WU:用于实际向CPU7传送或实际从CPU7接收的数据输入单元地址;
RU:用于实际向CPU7传送或实际从CPU7接收的数据输出单元地址;
TS[0]:以一个作业步相关的写入侧起始时间;
TS[1]:以一个作业步相关的读出侧起始地址;
F[0]:将要传送给输入数据处理控制单元的标记;
F[1]:将要被输出给输出数据处理控制单元的标记;
EXD:作业步结束计数器;
U:受处理支配的单元;
JK[job][read]Side/Write Side]:作业类型;
JK[0][0]:作业0写入侧的作业类型;
JK[1][0]:作业1写入侧的作业类型;
JK[0][1]:作业0读出侧的作业类型;
JK[1][1]:作业1读出侧的作业类型。
尽管对于每种作业而言,在读出侧和写入侧的多种作业的多种类型都是一样的,但由于对于所述的多种作业的多种类型,处理的结束时间点通常是不同的,所以,所述多种作业的多种类型被分别单独保存。所述多种作业的多种类型包括“none”、“sort”、和“other tran Sort”。“None”意味着在相关作业号中不进行处理,即相关作业号处于无用状态。“Sort”意味着使用分类处理设备的作业正在被和相关作业号彼此相一致地进行。“Otherthan Sort”意味着不使用分类处理设备的作业(组合、归并等)正在被与相关作业号彼此相一致地执行。
下面将给出有关操作的描述。
首先,当在步骤S101开始操作时,多处理控制单元20执行在步骤S102中所使用变量的初始化。假设当由CPU7实施所述多处理且处理控制用两级多处理开始时,多处理控制单元20把JW和JR设置为0,并在开始之后立即在写入侧和读出侧实现作业0的处理。另外,根据多处理的级数将JN初始化为2。应当注意,在此后可能会出现JW和JR呈现负值的情况,但这表明相应的作业是不在块的。传送给输入数据处理控制单元21和输出数据处理控制单元22的标记F[0]和F[1]各自被初始化为0。
接着,操作步进到步骤S103,以对数据输入单元变量WU,数据输出单元变量RU以及需经处理的单元变量U进行初始化。
然后操作步进到步骤S104,以检查一个写入侧作业是否存在。若JW≥0,则操作进入下一步S105。若JW是一个负值,则写入侧的作业不存在,操作跳到步骤S108以执行读出侧处理。
在步骤S105,根据数据输出单元变量RU,设定一个与被选择用于下一个将要执行的作业步的作业相对应的写入侧单元地址。这些计算可以利用下面将要解释的一个简单公式的计算来获得。另外,需经处理的单元地址被连续存贮起来作为变量U以用于存贮单元地址。
提供单元地址和作业号之间的关系,以利用单元1和单元2组来执行作业0,利用单元3和单元4组来执行作业1。因此,能够利用J*2+1来计算相对于作业J的写入侧单元。另外,可以利用(WU-1)/2来计算写入侧单元WU以属的作业的作业号。由于可以很简单地计算作业号和单元号之间的对应关系,所以下面有时会给出诸为“对应作业号”和“对应单元号”的简单描述。
另外,作为作业步计数器的END增加1,从而记录下写入侧作业步已经被排写。这就是要去鉴别有三种作业步,即:仅在读出侧执行的作业步,仅在写入侧执行的作业步和在读出侧及写入侧都要执行的作业步。
接着,处理步进到步骤S106,在该步骤中,借助于开关25,相当于设置成数据输入单元变量MU的一个单元的一个连接线被连接到连接线23上。
例如,若作业0被选择用于JW,则数据输入单元变量WU=JW*2+1=1,从而使单元1被选择为MU。另外,开关26被转换到与MU相对应的连接线一侧,并且连接线51被连接到输入数据处理控制单元21上。
作为另外一个例子,若作业0被选择为JW,那么数据输入单元变量MU=1,且所述连接线S1被连接到输入数据处理控制单元21。
随后,在步骤S107,在块时间被设置为TS[0]。这是为测量从作业步开始可经过的时间作准备。
然后,操作步进行步骤S108,步骤S108到步骤S111提供了与读出侧相关的处理。
首先,在步骤S108,检查读出侧作业是否存在。当JR≥0,则确定作业是存在的,那么操作步进到步骤S109。反之,若JR是一个负值,则表明不存在读出侧处理,操作跳到图9的步骤S112。
在步骤S109,根据数据输出单元变量RU,选择一个与被选择用于下一个将被执行的作业步的作业相对应的读出侧单元地址。这些计算可以利用下面将要描述的一个简单公式的计算来获得。另外,需经处理的单元地址被作为变量U而连续存贮起来,以用于存储单元地址。
可以利用J*2+2来计算相对于作业J的读出侧单元。另外,读出侧单元RU所述的作业的作业号可以通过(RU-2)/2加以计算。
另外,作为作业步结束计数器的END加1,从而记录下读出侧作业步已给排定。
接着,操作前进到步骤S106,在该步骤中,对应于被设定成数据输出单元变量RU的所述单元的一个连接线借助于开关26被连接到连线24上。
例如,若作业○被选择用于JW,那么,
JR=JR*2÷2=2,从而可以使用数据输出单元变量RU来代替用以表示单元2的值。另外,开关26被转换到与RU相对应的连线侧,且连线52被连接到输出数据处理控制单元22。
作为另外一个例子,若作业1被选择用于IR,那么数据输出单元变量RU=4,且连线54被连接到输出数据处理控制单元22。
接着,在步骤S111,当前时间被设定为TS[1]。这是为测量从作业步开始以经过的时间作准备。
(图9:多路处理控制单元操作的部份2)
接着,操作前进到图9的步骤S112,以开始执行作业步。
首先,在步骤S112,从相应队列中检索与RU或WU二者之一相应的输入/输出命令,它的作用在于从所述队列中检索出相对于利用需经处理的单元的变量U以指出的单元的输入/输出命令。然后,确定是否存在相对于由变量U以指示单元的输入/输出命令,如果这个输入/输出命令存在,操作前进到步骤S113,反之操作跳到图10的步骤S122,以执行结束作业步的处理。
在步骤S113中,从所述队列中取出在步骤S112中检索到的输入/输出命令。
接着,操作前进到步骤S114,在该步骤中,分别将每一个被取出命令所属的单元,与所述命令相应的作业号以及写入侧和读出侧之间的差异存入u、j和w。
然后操作前进到步骤S115,以判断在步骤S113中取出的命令是否是一个打开命令。若它是一个打开命令,则操作前进到下一步骤S116,反之,则操作跳到图10的步骤S122。
在步骤S116,将被指定为打开命令中自变量的作业处理类型存入JK[j][w]。另外,指令输入数据处理控制单元21或输出数据处理控制单元执行控制的标记F的相关侧(由w指定的读出侧/写入侧)的值被初始化为零。
上述操作开始了相关作业。接着在步骤S117,检查是否超过了一个规定的最大作业步执行时间(MAXTIME)。这是通过将从在步骤S111中所记录的时间开始所经过的时间和MAXTIME二者之间加以比较来执行的。
若MAXTIME已被超过,则操作前进到下一步骤S118,反之,则操作跳到步骤S119。
在步骤S118,由于在步骤S117中已经确定MAXTIME已被超过,所以标记JSEND被置入标记F[W]。其作用在于表示对于输入数据处理控制单元21或输出数据处理控制单元22来讲,作业步已经执行完毕。
当上述预定处理被完成时,操作前进到步骤S119,在该步骤中,根据当前正在被执行的作业步是涉及到了写入侧处理还是涉及到了输出侧处理所述操作进行转换。在写入侧处理的情况下,操作前进到步骤S120,以将在步骤S113中取出的输入/输出命令连同标记F一起传送给输入数据处理控制单元21,并指令该输入数据处理控制单元21执行输入/输出命令。
另外,在写入侧处理的情况下,操作前进到步骤步骤S121,以将输入/输出命令连同标记F一起传送给输出数据处理控制单元22,并指令该输出数据处理控制单元22执行输入/输出命令。
在步骤S120和步骤S121完成之后,操作前进到步骤S122(图10)。
(图10,多处理控制单元操作的部份3)
接着,在步骤S122,检查输入数据处理控制单元21或输出数据处理控制单元22是否已经完成了对在步骤S120或S121中传送给它们的输入/输出命令的处理。由于输入数据处理控制单元21或输出数据处理控制单元22根据输入/输出命令执行的完成传送了一个结束通知,所以要执行一个检查,检查这个结束通知是否被收到。
若这个结束通知已被收到,操作返回到图9的步骤S112,检查输入/输出命令是否再次到达由需经处理的单元变量U指示的单元处,并根据下一个输入/输出命令执行处理。例如,在处理步骤是用于在写入侧和读出侧上进行处理的情况下,在写入侧命令开始执行之后,操作以上述方式执行读出侧命令的处理。
当接收到了结束通知时,操作前进到下一个步骤S123,以执行与结束作业步相关的处理。
在步骤S123,结束命令所属的单元,与所述命令相应的作业号以及在写入侧的读出侧之间的差异被分别存入u、j和w。另外,处理结果的状态被存入S。
接着,操作前进到步骤S124,以检查ERR位或CAN位是否被设置在S中。
这是,若确定ERR位或CAN位已经被设置,操作前进到下一步骤S125。若确定这两个位都没有被设置,则操作跳过在步骤S126开始的不规则时间处的处理,并前进到步骤S128。
当操作已经前进到步骤S125的处理时,它意味着由于误差或删去而使输入/输出命令已经结束。在步骤S125,确定在块作业步骤是否涉及了使用分类处理设备4的处理和写入侧处理,或所述在块作业步是否涉及了使用分类处理设备4的处理和读出侧处理以及在写入侧和读出侧的作业是否是相同的。
这里,如果是前述两种情况,操作前进到下一步骤S126以执行排出。若上述两种情况都不适用,则跳过排除处理,操作前进到步骤S128。
在步骤S126,在检测结束数据标记之前,分类处理设备4中剩余的数据被丢掉。
然后,在步骤S127,设定用于写入侧和读出侧的标记F,并设定用于这两侧的IGNCLS标记,借此以指令输入数据处理控制单元21和输出数据处理控制单元22忽略除关闭命令以外的命令。
然后,操作处理前进到步骤S128,检查结束状态变量S的JSEND位是否存在,若存在,则相应写入侧或读出侧作业步的处理已经完成,这样,作业步结束计数END减1,操作前进到步骤S130。另外,若JBEND不存在,则操作直接跳到步骤S130。
在步骤S130,检查结束状态变量S的JBEND位是否存在,这里,若该位存在,则意味着通过执行关闭命令而使写入侧或读出侧的作业已经结束。因此,在步骤S131,那种状态JK[j][w]被设定为“none”,并且从需经处理的单元变量U中删除相应单元。这里,作为在一方的多处理控制单元20和在另一方的输入数据处理控制单元21及输出数据处理控制单元22之间的一个协议,假定遵循以下原则,即当JBEND存在时,JSEND也被可靠地设置在通态。当完成步骤S131时,操作前进到步骤S132。
同时,当在步骤S130确定S不存在时,则跳过步骤S131,且操作进入到步骤S132。
在步骤S132,确定作业步结束计数END是否被设置为零。若END已被被设置为0,则意味着在写入侧和读出侧的作业步处理已经完成,从而操作前进到步骤S133,以安排下一作业步。若END未设置成0,操作返回到图9的步骤S112,以取出一个输入/输出命令。
(图11:多处理控制单元操作的部份4)
处理从图11的步骤S133开始执行,用于规定当前正在被处理且其处理被暂停的作业。首先,将作业规定给写入侧,在步骤S133,设定与j相关的被周期选择的作业号,通过使当前JW加1或通过计算将相加结果除以JN所获得的余数来确定所述周期选择。这里,在附图中的%表示所计算的相减结果的余数。
接着,在步骤S134,通过检查JK[j][0]来确定与j相应的作业类型,并且根据此前什么样的分类处理设备4在工作如下地确定下一个作业号JR和JW。
首先,若在步骤S134中确定JK[j][0]是“NONE”,那么操作前进到步骤S135。若它确定所述处理是一个分类处理,则操作前进到步骤S136;若它确定所述处理是除分类处理以外的其它处理,则操作前进到步骤S140。
首先来描述在步骤S135中的处理。这是在下述情况,即在与j相应的作业还没有被规定的情况下执行的处理。在步骤S135,检查数据是否仍然被保存在分类处理设备4之中。由于这种检查可以根据直接在前作业的类型是否是一个分类来执行,所以可以检查JK[JW][0]是否是一个分类。若它不是一个分类,则数据不保存在分类处理设备4之中,并且没有接收到与j相关的处理请求,从而操作返回到步骤S133,在此处的处理是一个与周期选择相关的处理,用于选择与下一作业相关的候选者。
如果直接在前作业的类型是一个分类处理,那么在步骤S137,所述直接在前作业被规定给JR,从而读出分类处理设备4中的数据。JW被置为-1,并且没有处理被规定给它。
然后,若完成了步骤S137,操作返回到图8的步骤S103,以开始执行规定给JR的作业步。
接着描述步骤S136,它处于下述情况,即:即将要执行的作业是分类处理。首先,在步骤S136,检查数据是否被保存在分类处理设备4之中。
若将被执行的作业不是分类处理,则数据不被保存在分类处理设备4之中。接着,操作前述到步骤S138,以设定JR=-1和jw=j,并给出指令以执行涉及到步骤S133中所选j的作业。
若在步骤S136确定在分类处理设备4中剩余有数据,则操作前进到步骤S139,以设置JR=JW,并且读出侧执行所述直接在前任务。另外,执行JW=j,并且给出指令,以执行涉及到写入侧在步骤S133中所选j的任务。
在步骤S138或S139完成之后,操作返回到图8的步骤S103,以开始执行指定给JW和JR的作业步。
在步骤S140完成之后,操作返回到图8的步骤S103,以开始执行指定给JW和JR的作业步。
(图12:输入数据处理控制单元21的操作)
参看图12,下面将描述输入数据处理控制单元21的操作。
输入数据处理控制单元21从步骤S199开始工作,并首先在步骤S200等待来自多处理控制单元20的输入/输出命令的到达。就是说,要检查是否存在有一个输入/输出命令。若不存在这样的命令,操作返回到步骤S200以再次进行循环,直到一个输入/输出命令到达为止。
在步骤S201,检查与输入/输出命令一起传送的标记F的值。这里,如果存在有IGNCLS位,操作步进到步骤S202,若这个位不存在,则操作跳到步骤S205。
在步骤S202,检查所述的输入/输出命令是否是一个关闭命令。若它是一个关闭命令,则操作跳到步骤S205,反之,操作前进到步骤S203以把结束状态设定为正常结束(OK)。然后在步骤S204,多路处理控制单元20被告知结束。在完成步骤S204的基础上,操作返回到步骤S200,以等待来自多路处理控制单元20的一个输入/输出命令的来到。
在步骤S205,内部标记FLAG被初始化。
然后,操作前进到步骤S206,检查在从多处理控制单元20传送来的标记F中是否具有JSEND位。这里,如果存在有JSEND(这表明在执行作业步过程中执行了一个超过规定时间的处理,参看图9的步骤S117到S120),则操作前进到步骤S207,以检查是否正在利用分类处理设备4执行读出侧处理。若确定过程中答案是YES,则在步骤S209执行当前处理而不必中断所述处理。这是因为在结束数据被读出之前,在读出侧分类处理过程中的处理不能被中断,所以,即使是在执行了所述时间之后,处理也必须被继续下去。如果确定的答案是NO,那么操作步进到步骤S208,以暂时中断处理,并设置JSEND位,以通知作业步的结束(最后,多处理控制单元20步骤S217被通知作业步结束)。而后,操作前进到步骤S210。在步骤S209,利用数据库处理设备3和分类处理设备4执行诸如分类、组合、归并等的指定处理。特别是,在处理过程中根据作业步初始命令使用分类处理设备4进行处理的情况下,初始化数据首先被输入给分类处理设备4。
在这个时候,由于以混合形式发出了与多处理操作相关的请求,所以,在数量上与所述作业相对应的多个程序被装入数据库处理设备3中,并且,数据库处理设备3通过援引所述程序中与一个指定作业相对应的程序执行处理。例如在具有如图19所示结构的数据库处理设备3中,与作业相应的多个程序被存贮在存贮设备36和37中,并由微机34和35加以执行。
存在有下述情况,即在执行过程中所输入的数据达到了分类处理设备4的容量极限,其结果是使作业步结束,并传递一个作业的结束。在这种情况下,在步骤S309,在FLAG中设置JSEND、JBEND和JSEND,以结束所述处理。
这里,在下述情况下结束一个作业步:
1)当使用分类处理设备4时:
写入侧:在输入给输入数据处理控制单元21的数据达到了分类处理设备4的容量极限的情况下;
2)当没有使用分类处理设备4时:
写入侧:在xfer命令被执行多次且已达到固定时间的情况下。
在这些情况之中,当使用了分类处理设备4时,在写入侧的输入数据处理控制单元21写入结束数据,并且当输入给它的数据达到了分类处理设备4的容量极限时,利用它本身结束作业步。
这样,根据分类处理设备的容量或指定的时间,从主机输入的数据串被分划分开,并且被划分的数据子串以混合形式出现在整个作业上,借此以执行多道处理。
在步骤S209,假设在上述情况中的某个情况(在情况1中写入侧作业步被结束)下,JSEND被设定为通态,借此以结束作业步骤。另外,若所述处理是有关关闭命令的处理,还要设定JBEND,借此以结束作业步。
在完成步骤S209处理的基础上,在步骤S210确定在处理期间是否产生了误差。如果产生了误差,在步骤S211中,在FLAG内设置JSEND和ERR位,且操作前进到步骤S212。反之,若没有产生误差,则操作直接跳到步骤S212。
接着,在步骤S212,若输入/输出命令是一个关闭命令,且有关它的处理正在执行,则在步骤S213中在FLAG内设置JBEND位和CAN位,且操作前进到步骤S214。反之,若在步骤S212中进行确定的答案是NO,操作直接跳跃到步骤S214。
在步骤S214,检查是否存在ERR或CAN位,若答案是YES,那么在步骤S215检查使用分类处理设备4的作业步是否正在被执行。若在步骤S215中进行确定的答案是Yes,操作前进到步骤S216,以把一个结束字写入分类处理设备4,并在下一个步骤S217强制结束对分类处理设备4的数据写入。
另一方面,如果在步骤S214或S215中进行确定的答案是NO,操作跳到步骤S217且不写入结束字。
最后,在步骤S217,在上述步骤S205到S217中设置的多个标记FLAG被输出给多处理控制单元20,以通知结束状态。
然后操作返回到步骤S200以等待下一个输入/输出命令。
(图13:输出数据处理控制单元22的操作)
参看图13,下面将给出有关输出数据处理控制单元22的操作的描述。输出数据处理控制单元22的基本操作与上述输入数据处理控制单元21类似,但是在执行读出侧数据读出等方面是有区别的。
输出数据处理控制单元22在步骤S299开始操作,并首先在步骤S300等候来自多处理控制单元20的输入/输出命令的到达。即:要检查是否存在有一个输入/输出命令。若答案是NO,操作返回到步骤S300并进行循环,直到所述输入/输出命令来到为止。在一个输入/输出命令到达的基础上,操作前进到步骤S301。
在步骤S301,检查连同输入/输出命令一起传送的标记F的值。这里,如果IGNCLS位存在,则操作前进到步骤S302,而如果该位不存在,操作跳到步骤S305。
在步骤S302,检查所述的输入/输出命令是否是一个关闭命令。若它是一个关闭命令,则操作跳到步骤S305,而如果它不是一个关闭命令,操作前进到步骤S303,以把结束状态当作正常结束(OK)加以传送。然后,在步骤S304,将结束信息通知给多路处理控制单元20。在完成步骤S304的基础上,操作返回到步骤S300,以等待来自多处理控制单元20的一个输入/输出命令的到达。
在步骤S305,内部标记FLAG被初始化。
然后,操作前进到步骤S306,以检查在从多处理控制单元20传送来的标记F中是否存在有JSEND位。这里,如果存在有JSEND位(这表示在执行作业步的过程中正在执行超过规定时间的处理,参看图9的步骤S117到S1207,则操作步进到步骤S307,以检查是否正在使用分类处理设备4执行读出侧处理。若检查的答案是Yes,在步骤S309执行当前处理而不中断所述处理,这是因为在读出结束数据以前,在读出侧分类处理过程中,处理不能被中断,所以,即使在执行了所述时间以后,处理也必须被继续下去。如果检查的答案是NO,操作前进到步骤S308,以暂时中断处理,并设置JSEND位,以通知作业步的结束(最后,在步骤S317通知多处理控制单元20作业步结束)。然后,操作前进行步骤S310。
在步骤S309,利用数据库处理设备3和分类处理设备4执行诸如分类,组合和归并等的指定处理。
此时,由于以混合形式发出了对多道处理操作的请求,所以,其数量与作业相应的多个程序被装入数据库处理设备3,数据库处理设备3通过援引所述多个程序中与指定作业相应的程序来执行处理。例如,在具有图19所示结构的数据库处理设备3中,与所述作业相应的多个程序被存贮在主存贮装置36和37中,并由微机34和35加以执行。
存在有在执行过程中输入的数据达到了分类处理设备4容易极限的情况。从而导致作业步的结束和一个作业步结束的传送。在这种情况下,在步骤S309,在FLAG中设置JSEND.JBEND和JSEND,以结束所述处理。
这里,在下述情况下结束作业步:
1)当使用分类处理设备4时:
读出侧:在从分类处理设备4读出的数据达到结束数据的情况下,
2)当不使用分类处理设备4时:
在多次执行xfer命令并达到固定时间的情况下。
在这些情况之中,当使用分类处理设备4时,当在下一步骤利用读出数据处理控制单元22读出由输入数据处理控制单元21写入的数据和结束数据时,读出侧利用本身结束作业步。
这样,根据分类处理设备4的容量或指定的时间从主机输入的数据串被划分,并且被划分的数据子串以混合形式存在于多个作业之上借此以执行多道处理。
在步骤S309,假设在上述情况中的某种情况(在情况1下的读出侧上的作业步结束)下,JSEND被设置为通态,借此以结束作业步骤。另外,如果处理是有关关闭命令的处理,那么还要设置JBEND,借此以结束作业步。
在完成步骤S309处理的前提下,在步骤S310确定在处理期间是否产生了误差。如果产生了误差,在步骤S311中在FLAG内设置JSEND和ERR位,且操作前进到步骤S312。反之,若末产生误差,操作直接跳到步骤S312。
接着,在步骤S312,若输入/输出命令是一个关闭命令,且有关它的处理正在被执行,那么在步骤S313在FLAG中设置JBEND位和CAN位且操作前进到步骤S314。反之,若在步骤S312进行确定的回答是NO,则操作直接跳到步骤S314。
在步骤S314,检查是否存在有ERR或CAN位。若答案是Yes,在步骤S315检查是否正在执行使用分类处理设备4的作业步。若在步骤S315的答案是Yes,操作前进到步骤S316,以在结束字出现之前丢掉分类处理设备4中的数据。在完成丢弃的基础上,操作前进到下一步骤S317。
另一方面,若在步骤S314或S315中的答案是NO,则操作跳到步骤S317,并不丢掉数据。
最后,在步骤S317,在上述步骤S305到S316中设置的各个FLAG被输出给多处理控制单元20以通知结束状态。
然后,操作返回到步骤S300,以等待下一个输入/输出命令。
(多道处理控制的操作侧)
根据上述过程以执行控制的例子示于图14。
步骤S401
在图14中,首先开始使用分类处理设备4的作业0。它的作用在于多处理控制单元20将输入/输出命令传送给输入数据处理控制单元21且输入数据处理控制单元21在接收到同一命令时执行作业0的作业步1(此时,由输入数据处理控制单元21控制的数据库处理设备3和分类处理设备4也执行作业步1的处理)。在这个执行完成的基础上,输入数据处理控制单元21将JSEND通知给多控制单元20,以报告作业0的作业步1被完成。此时,虽然作为作业步1已经完成了作业0的处理。但是作为一个作业,还要继续对作业0进行处理。
步骤S402
接着,多处理控制单元20周期选择一个写入侧作业。多处理控制单元20将作业1设定成写入侧作业,并将一个输入/输出命令传送给输入数据处理控制单元21。这里假设作业1的处理类型是除分类处理以外的处理。在这种情况下,通过将作业1设定成读出侧作业而使多处理控制单元20起动,该单元20还将输入数据处理控制单元提供给输出数据处理控制单元22。
在完成作业1的基础上,输入数据处理控制单元21和输出数据处理控制单元22将JBEND通知给多路处理控制单元20。
(另外,在作业1的作业步1的处理时间超过MAXTIME,并且多处理控制单元20将JSEND通知给输入数据处理控制单元21和输出数据处理控制单元22情况下的操作是不同的。在收到这个通知的基础上,输入数据处理控制单元21和输出数据处理控制单元22暂时结束作业1作业步1的处理)。
步骤403
接着,多路处理控制单元20周期性地再次选择作业0作为写入侧作业并给出一个指令去执行下一作业步2。同时,作业0的作业步1,即此前直接输入给并在分类处理设备4中保存的数据被规定给读出侧。
步骤S404
当诸如在输入给分类处理设备4的数据已经达到了其容量极限或处理时间已经达到MAXTIME的情况下结束写入侧正在被执行的作业0的作业步1时,多处理控制单元20周期性地再一次选择一个作业并将它规定给写入侧。这里假设规定了一个使用分类处理设备4的新作业。
另外,当在从分类处理设备4传送的数据检测到结束数据时,在读出侧的作业0的作业步1结束。类似的,作业0的作业步2,即在此之前输入给分类处理设备4并保持在其中的数据被规定给读出侧。
然后,被规定给写入侧的作业1的作业步2和被规定给读出侧的作业0的作业步0被执行并结束。
步骤S405
假如新的输入/输出命令还没有到达图2中的队列55到59并且没有作业步曾被暂停,那么就没有新的作业被规定给写入侧,且作业1的作业步2仅被规定给读出侧。
(分类处理设备4)
下面将对用于实现多重控制的分类处理设备的结构进行描述。图15示出了构成分类处理设备4的分类处理器的结构。在图15中,与图2标号相同的标号表示相同或相应部份。标号41到44表示分类处理器,标号45到48表示分别连接到分类处理器41到44的存储设备。图15详细地示出多b分类处理器中分类处理器43的内部结构(其它的分类处理器41,42和44与之具有类似结构)。数字430表示分类处理器的控制单元;数字431表示一个作业号寄存器,用于识别正在被分类处理器43进行处理的数据所属的作业;数字432表示数据长度寄存器,用于存贮相关作业的数据的长度;数字433表示一个数据缓冲器,用于暂存在在前级中从分类处理器42输入给分类处理器43的数据;数字434表示一个用于分类的分类电路;数字435表示一个计数器,用以指示保存在分类处理器中将被分类的数据字节数。
分类处理设备4通过连线31和32连接到数据库处理设备30上,利用连线33将分类处理设备4内的存贮设备45到48连接到数据库处理设备3上,从而使存贮设备45到48也被用和数据库处理设备3的主存贮设备。当分类算是设备4被停机时,可以通过连线33对数据库处理设备进行访问。
另外,图16示出了输入给分类处理器4的数据的格式,该数据被提供给每一作业步骤,并被输入和输出,以达到数据初始化,数据处理和数据结束的目的。
首先,初始化数据包括用于指示记录长度的记录长度501;用以表示诸如“分类处理”或“除分类处理以外的处理”等处理类型的处理类型502;具有分别与分类处理器41到44相对应的多个位并在所述位不存在时指令不执行由与该截止位相对应的分类处理器所执行处理的旁路指示503;以及用于识别所述作业的作业号504。
处理数据是一个需给处理的数据部份。最后,结束数据,即一个结束标记表示加之于输入数据处理控制单元21的作业步的结束。
如截至目前所述,分类处理设备4在分时的基础上连续执行多个处理操作。此时,需经处理的数据长度依据处理操作而变化。由此,如图16所示,初始化数据在作业步开始时间处的数据之前被输入,而结束数据被加到在作业步结束处的数据的末尾。
在描述该第一实施例的分类处理器4的操作之前,首先描述当利用依据本发明的分类处理设备4以及包含有该设备的方法执行重处理时所产生的问题。
(多路分类处理方法以及除分类以外的处理方法)
1)分类处理设备4不仅可以被用于如上所述的分类处理,而且在分类处理设备4中的存贮设备45到48还可以被用作用于数据库处理设备3的共用存贮器。现在考虑下面这种情况,在这种情况下,以如下的顺序执行操作:在作业步边界处中断分类处理,操作前进到由数据库处理单元3执行的归并处理,然后分类处理被重新开始。在这种情况下,下面的要求是必需要满足的,即:先前正在执行分类处理的作业步的存贮设备45到48的内容必须被保持在完成归并处理之后允许重新开始分类处理并不受在暂时中断所述分类处理之后由数据库处理设备3执行作业步影响的状态。为此,必须实施某种处理,在这种处理中,作为一个文件,在分类处理设备4中剩余的数据被暂时输出给一具盘设备8或类似设备,如图2所示,在完成了由数据库处理设备3执行的处理之后,所述数据被重新输入给分类处理设备4,以重新开始处理。这样就出现了一个问题即处理性能基本上是下降的。
在本发明中,采用下述方法,以并行执行归并处理和分类处理并不引起处理速度的下降。
图17A到17D的简要示图示出以在分类处理设备4中的存贮设备45到48的使用状态。在图17A到17D中,以图15以用相同的标号表示相同或相应部份。
图17A示出了一种情况,在这种情况下,存贮设备45到48仅用于分类处理。在图17A中,阴影部份表示在存贮设备45到48中的那些区域一直被用于分类处理。这样,所有的这种区域均被用于分类处理。
图17B示出了一种情况,在这种情况下,存贮设备45到48仅被用于除分类处理以外的其它处理。在图17B中,阴影部份表示在存贮设备45到48中的那些区域一直由数据库处理设备3使用。这样,所有这些区域部被用于除分类处理以外的其它处理。
在图17C中,阴影部份表示在利用两级多道处理执行分类处理以及借助归并处理的除分类处理以外的其它处理的情况下用于分类处理的一些区域。
在图17D中,利用与图17C相同的方式,阴影部份表示在利用两级多道处理执行分类处理以及诸如归并处理的除分类处理以外的其它处理的情况下用于分类处理以外的其它处理的一些区域。
在图17C和17D的情况下,第一级分类处理器41被旁路而未被使用。其作用在于与图16所示数据旁路指示503的第一级分类处理器41相对应的位被设定为截止状态。当相关分类处理器被旁路时,与那个分类处理器相关的存贮容量可以减少。为此,为能从图17C和17D所看到的,在分类处理器所使用的区域和在除分类处理以外的其它处理中所使用的区域可以被很清楚地分隔开来而不会重叠,这样就不必在盘设备8或类似设备上保留数据。这样,分类处理和除分类处理以外的其它处理就可以迅速进行转换。
如图17A-17D所示,当第一级被旁路、即被跳过时,在多道处理期间仅使用了分类处理设备4中存贮设备45到48的较低的一半。从分类处理设备4的操作可以很明显看出,如果分类处理设备4的前分类处理器41被旁路,并且第二级分类处理器42被用作前步处理器,那么,第二级分类处理器42仅通过第一级分类处理器41所需的部份来使用它自己的存贮设备。例如,若第一级没有被旁路,那么第二级分类处理器对存贮在从第一级分类存贮器传送来的两个记录的单元内的数据进行分类。为此,第二级分类处理器执行一个处理,在该处理中,第二级分类处理器在它自己的存贮设备45中存贮首先传送给它的前两个记录,并在随后传送给它的一组两个记录中的前记录和其中所存贮的一组两个记录中的前记录之间进行比较。通常,第i级分类处理器首先在其自己的存贮设备中存贮从在前级传送给它的已经分类的2i-1个记录,并利用随后传送给它的已经分类的2i-1个记录对进行归并处理。这样,第i级分类处理器产生由2i个记录构成的已分类记录的串,并将其传送给后继级。因此,如果第二级被用作前分类处理器,那么由那个分类处理器所使用的存贮器等于一个记录部份,并且由第i个分类处理器所使用的存贮容量为2i-2个记录部份。因此,可以看出,所使用的容量为一串。从这个事实来看,就分类处理器45到48中的每一个而言,低于一个预定地址的较低一串可用作与分类相关的存贮器,而较高的一串可以被用作与数据库处理设备3相关的共用存贮器。
虽然在上述的配置中第一级分类处理器41被旁路,但中间分类处理器也可以被旁路或最后一级分类处理器44也可以被旁路。如果最后一级分类处理器44被旁路,那么分类处理设备4的结构将变得很复杂,但由于存贮设备48的所有存贮区域都可以被用于除分类处理以外的其它处理,可以这就有一个优点,即速续的存贮区域都是可靠的。(其原因在于在分类处理设备4中的存贮设备的容量在朝着较大级的方向上变得较大)。
(分类处理的检查)
2)在利用数据库处理设备3执行归并处理或类似处理的情况下,必须确认从分类处理设备4接收的数据已经适当分类,且被归并的数据也处于被分类状态。若分类处理器被用于这种确认处理器,那么输入数据的分类序列可以被很易地确认,但是在多道处理期间分类处理器41到44还能被用于对剩余数据进行分类。因此,数据库处理设备3就需要利用其本身执行一个处理。这样就出现了一个问题,即数据库处理设备3上的负载就变得很高,且数据库处理设备3的性能就会恶化。
在本发明的第一实施例中,在本发明的第一实施例中,这个问题以下述方式获得了解决从而允许进行高速处理。
如在上述1)中可选,在利用多道处理执行分类处理和除分类处理以外的其它处理的情况下,分类处理设备4的第一级分类处理器41被置于未使用状态。通过使用这个第一级分类处理器41,可以对所接收的数据是否已被适当地存贮以及归类的数据是否已处于分类状态进行检查。在一级道路处理的情况下,在归并处理期间,分类处理设备保持未使用状态且其存贮设备被腾空。因此,所以,第一级分类处理器和第一级存贮器总是处于空闲状态。这样,在使用它们时就不会出现问题。
当在检查需由数据库处理设备3操作的数据串是否已被分类时,要准备具有已被写入处理类型502并用于指定升序/降序检查的值的初始化数据,并且这个初始化数据被允许在一个作业步开始处流入分类处理设备4。这个数据串被第一级分类处理器41所中断,并利用一种模式来设定第一级分类处理器41,以用于检查升序/降序。
跟着,用于检查升/降序的数据被传输给第一级分类处理器41。在这种传输过程中,利用未示出的直接存贮器存取控制器(DMAC)以很高的速度将存贮在分类处理设备4中存贮设备45到48之中的数据传送给第一级分类处理器41的存贮设备45。
另外,要准备诸如图16所示一个的数据。升/降序的检查被写入处理类型502,且数据通过正常路径进行传送。
根据所接收的数据,第一级分类处理器41执行这个数据的升/降序的检查。
以如下的方式提供结构,即:若可传输的数据的配置是不适当的并且被不适当地加以分类,那么,从第一级分类处理器向数据库处理设备3或控制器2输出一个误差信号。借助于接收这个信号,数据库处理设备3或控制器2能够确认是否已经执行了适当的分类。
3)在试图同时完成在写入侧和读出侧作为步的情况下,存在有这种可能性,即:在一个记录前端和末端处的数据分别位于分类处理器4的两侧的外边。换言之,将会产生下述问题:
即使处理已经在写入侧一个记录边界处停止,但由于所述记录位于读出侧的外边,所以在读出侧作业步不能完成(除非数据被进一步写入写入侧,否则由整个分类处理设备所构成的流水线将被停止)。
即使处理已经在读出侧的一个记录边界处停止,但由于所述记录位于读出侧的外边,所以在写入侧的作业步也不能完成(除非数据被进一步在读出侧中被读出,否则由整个分类处理设备构成的流水线将被停止)。
在这种情况下,处理不能停止于记录位于外侧的一侧上,所以,作业步就不能被完成。在分类处理设备4中,即使是分类处理器41到44确实没有执行分类处理,输入数据也会被暂时装入它自己的存贮设备45到48中,随后陆续输出给后继级分类处理器,从而允许在作业步边界处的最后记录可靠地装入分类处理设备4。即,即使是在数据被简单旁路的情况下,分类处理器41到44也会把数据缓冲器内容纳不了的数据均匀地暂时装到存贮设备45到48内,并在适当的时候分类处理器41到44会把这些数据传送给后继级。
下面将给出有关为实现上述功能分类处理器4所作操作的描述。
分类处理器41到44中的每一个首先将由在前级或在前级分类处理的输入的数据存贮在它的数据缓冲器433中。然后,控制单元430检查数据缓冲器433中数据的类型。
1)如果数据缓冲器433中的数据是初始化数据,则执行下述操作:
a)检查计数器435。若计数器435未被置0,操作等待,直到计数器435被置0为止,即直到在存贮设备47中剩余的数据被输出给最后级分类处理器44为止。
b)如果计数器435已被置0,那么在初始化数据中的作业是和记录长度被存入各自的内部寄存器431和432中。
2)然后,参考在初始化数据中的处理类型502。
c-1)若分类类型502是分类:
鉴定在初始化数据的旁路指示中是否存在与相关分类处理器相对应的位,例如,在第i级分类处理器的情况下,要检查来自图16所示旁路指示503中前端的第i位是否存在。
c-1-1)如果这个位存在,分类电路434被初始化,从而使得随后陆续输入的数据被存贮在各自的存贮设备41到44中,而后在旁路相关分类处理器的同时在不执行分类的情况下将它们直接传送给后继级分类处理器。
c-1-2)如果这个位不存在,分类电路434被初始化,以进一步执行分类处理。
c-2)若分类类型502是分类顺序检查
分类电路434被设定成升/降序检查。例如在检查数据是否是以升序排列的情况下,如果比较的结果较早输入的数据不大于随后输入的数据,那么不将数据输出给作为在分类处理中比较的结果随后级分类处理器而将一个误差信号报告给分类电路434,可以使得很容易实现升序检查。
2)如果在数据缓冲器433中存在有数据,那么数据被传送给分类电路434,并且给出有关分类执行、升/降序检查或旁路的指示。
例如,如果执行分类处理,首先,当数据从在步级分类处理器(即分类处理器42)被传送给数据缓冲器433时,已经由在前级分类处理器分类的所有初始数据块部被存贮在存贮设备47中。(若没有实施旁路,在第i级分类处理器情况下存贮的这个数据量是2i-1。例如,在第三级分类处理器43,存贮有4个记录部份。)
接着,位于从在前级分类处理器传送来的第2数据块前端的数据被传送给数据缓冲器。这个数据被传送给分类电路434。根据以接收的这个数据,分类电路434读出存贮在存贮设备47中的数据前的初始数据,并将该数据和从数据缓冲器433传送过来的数据相比较。若数据缓冲器434中的数据较大,那么,这个数据被传送给子级分类处理器。若分类电路434中的数据较大,那么分类电路434中的数据被传送给子级分类处理器,并且分类电路434从存贮设备47中读出需要被比较的数据。而后,分类电路434重复所述操作,在该操作中,在被如此读出的数据和从数据缓冲器433中读出的数据之间进行比较之后,较大的数据被传送给子级分类处理器。
3)若缓冲器中的数据是结束数据,在分类处理的情况下,给出一个指令以将剩余数据存贮到分类电路434中,并给它一个指令以把它的结果传送给子级分类处理器中。在执行升/降序检查处理的情况下,给出一个指令以根据剩余数据执行升/降序检查。
另外,在上述实施例中,在多道处理的级数从2变到1的情况下,以仅处理作业0的方式执行一个变化。即,假如从CPU7传送给除单元0、1和2以外的单元、那单元3和4的输入/输出命令存在于多处理控制单元2之中,那么这种状态就作为一个误差而被立即报告给CPU7,随后,有关单元1和2的处理总是被设置在正被处理而不会改变图8所示之流档,借此使得可以变换多路处理的级数。
由于本发明是如上述构成的,所以本发明提供了下述优点。
如上所述,根据本发明的分类方法包括下述步骤:
作为数据块分离步骤,将由多个记录构成的第一数据块分离成多个其中的每一个都包括有多个记录的第一小数据块;作为第一分类步骤,利用分类处理单元对包括在多个第一小数据块的每一个之中的多个记录进行步骤;作为第二分类步骤,利用分类处理单元对包括在不同于第一数据块的第二数据块中的多个记录进行分类:作为第三分类步骤,利用分类处理单元对没有在第一分类步骤中进行分类的第一小数据块进行分类;和作为数据块归并步骤,通过将在第一分类步骤和第二分类步骤中分类的多个第一小数据块加以归并而产生一个分类数据块。因此,在操作过程中,和整个第一数据块被分类加以比较,可以在很短的时间内完成第一分类步骤然后再执行第二分类步骤。在完成了第二分类步骤以后, 在一个很短的时间内执行用于再次对第一数据块进行分类的第三分类步骤。因此,通过使用一个分类单元,在第一数据块正在被分类的同时,可以对第二数据块进行分类,从而使整个***得到了改善。
如上所述,根据本发明的分类处理设备包括:
第一多路输入控制单元,用于承接多个分类处理操作,并在一个预定处理条件下输出涉及一个分类处理操作的分类数据,并在完成上述输出之后输出涉及到另一种分类处理操作的分类数据;分类处理单元,用于对从第一多路输入控制单元传送给它的分类数据进行分类;以及多路输出控制单元,用于通过鉴别从分类处理单元传送的分类数据涉及了哪一种分类处理操作集中输出与每一分类处理操作相关的数据。因此,在操作过程中,第一多路输入控制单元通过在预定条件下转换多个分类处理操作输出数据,分类处理单元接收和分类数据,和多路输出控制单元输出来自分类处理单元并分别与每个分类处理操作相关的分类数据。因此,可以利用一个分类处理单元并行执行多个分类处理操作。
另外,第一多输入控制单元在一个预定时间周期内输出涉及到多个分类处理操作中一个分类处理操作的一部份的分类数据,并在这个输出完成以后,在一个预定时间周期内输出涉及另一分类处理操作的一部分的分类数据。因此,第一多路输入控制单元通过在一预定时间内转换多种分类处理操作输出数据,分类处理单元接收和分类数据,和多路输出控制单元输出来自分类处理单元并分别与每种分类处理操作相关的分类数据。因此,可以使用一个分类处理单元并行执行多个分类处理操作。
另外,第一多路输入控制单元输出涉及到多个分类处理操作中一个分类处理操作的一部份的分类数据的预定数据量,并在这个输出完成之后,输出涉及到另一分类处理操作的一部份的分类数据的预定数据量。因此,涉及到一个分类处理操作的数据被分成固定的规模以产生小数据块,并且在多个分类处理操作被进行转换以用于每一小数据块的同时,数据被读出。因此可以使用一个分类处理单元并行执行多个分类处理操作。
另外,第一多路输入控制单元承接多个分类处理操作,并在分类数据的输出达到一个预定时间周期和分类数据的输出达到一个预定数据量的两条件之一被满足之前输出涉及到一个分类处理操作的分类数据,在完成了上述输出之后,输出涉及到另一分类处理操作的分类数据,直到该分类数据的输出达到一个预定的时间周期和该分类数据的输出达到一个预定数据量的两条件之一被满足为止。因此,不多于固定量的数据被输出给分类处理单元,并且分类处理操作在每一固定时间被进行转换。因此,至少在每个固定处理时间过去之后,可以利用划分来执行多个分类处理操作,并且所述数据可以在该分类处理单元所能处理的数据量的范围内传送。
另外,当从一个分类处理操作转移到另外一个分类处理操作时,分类处理单元存贮由所述第一多路输入控制单元输出的涉及到一个分类处理操作一部份的所有分类数据的记录。因此,在一个小数据块的所有数据被输入给分类处理单元之前,分类处理操作是不进行转换的。随后,利用分类处理单元对一个小数据块进行完整分类。
另外,第一多路输入控制单元可以变化地设置所述第一多路输入控制单元需要承接的分类处理操作的最大量。因此,第一多路输入控制单元承接不超过其上限的范围以内的处理,并向分类处理单元输出用于处理的规定数据。这样,通过使用一个分类处理单元,如果最大量被设定为低等级,就可以实现大量数据的高速处理,而如果最大量被设置为高等级, 就可以实现高容量的多种处理操作。因此,和使用多个分类处理单元的情况相比较就可以降低成本。
另外,当输出涉及到分类处理操作的分类数据时,如果检测到涉及分类处理操作的误差或删除,那么第一多路输入控制单元输出被加有结束数据的分类数据,并且第一多路输入控制单元中止分类处理操作,同时多路输出控制单元从分类处理单元中读出涉及到分类处理操作的分类数据,直到所述结束数据为止。因此,根据检测到的误差或删除,第一多路输入控制单元输出具有被加有结束数据的分类数据,而不再输出正在被输出的剩余分类数据。为了从分类处理单元中消除涉及到被中止分类处理操作的分类数据,多路输出控制单元对第一个正常的分类处理操作进行处理,而不与分类处理单元中剩余的涉及到另一正常分类处理操作的分类数据一起重新设置与被中止分类处理操作相关的数据。
另外,多路输出控制单元读出在分类处理单元中剩余的涉及到被中止分类处理操作的分类数据,以保证数据不被残留在分类处理单元中。因此,即使是产生了误差和删除,也可以适当地执行正在被并行执行的其它分类处理操作。
如上所述,根据本发明的数据处理装置包括:第二多路输入控制单元,用于承接分类处理操作和数据库处理操作,并在预定的处理条件下输出涉及分类处理操作的分类数据,并且在上述输出之后,在预定的处理条件下输出涉及数据库处理操作的数据;由多个相互串联的分类处理器构成的分类处理单元,用于对从第二多路输入控制单元输入给它的分类数据进行分类;数据库处理单元,用于对从第二多路输入控制单元输入给它的数据执行数据库处理操作;以及多路输出控制单元,用于通过鉴别输入给多输出控制单元的数据是涉及到分类处理操作的数据还是涉及到数据库处理操作的数据集中输出用于每一分类处理操作和数据库处理操作的从分类处理单元传送给它的分类数据或从数据库处理单元传送给它的数据。因此,第二多路输入控制单元通过在预定条件下对它们进行转换输出涉及到分类处理操作的分类数据和涉及到数据库处理操作的数据。并且,多路输出控制单元通过在分类数据和所述数据之间进行鉴别分别输出与每一处理类型相关的分类数据和所述数据。这样,通过使用一个数据处理装置,可以并行地执行分类处理和数据库处理。
另外,如上所述,该数据处理装置还包括:连接到分类处理单元和数据库处理单元上的共用存储器部份,从而使得当多个分类处理器中的至少一个被旁路时允许数据库处理单元去使用分类处理及有使用的存贮器。因此,分类处理器的部份存贮器由数据库处理单元所使用,剩余的存贮器用于分类处理,这样,涉及到数据库处理和涉及到分类处理的数据被同时存贮,这样,以这种方式使用存贮器不会引起数据的相关干扰。因此,当正在执行分类处理时,就不必把位于分类处理单元中的数据贮存到一个外部存贮设备中,并且可以高速地并行执行分类处理和数据库处理。
另外,第二多路输入控制单元在一个预定的时间周期内输出涉及到部份分类处理操作的分类数据,并在比输出之后的一个预定时间周期内输出涉及部份数据库处理操作的数据。因此,第二多路输入控制单元通过在一个预定时间内对它们进行转换输出涉及到分类处理操作的分类数据和涉及到数据库处理操作的数据,并且多路输出控制单元通过在分类数据和所述数据之间进行鉴别输出分别用于每一处理类型的分类数据和所述数据。因此,就可以使用一个数据处理装置并行地执行分类处理和数据库处理。
另外,第二多路输入控制单元承接分类处理操作和数据库处理操作,输出预定数量的涉及分类处理操作的分类数据,并在该输出完成之后,输出预定数量的涉及数据库处理操作的数据。因此,在输出了预定数量的分类数据之后,第二多路输入控制单元输出涉及数据库操作的数据。这样,就可以并行执行分类操作和数据库操作。
另外,第二多路输入控制单元承接分类处理操作和数据库处理操作,并且在分类数据的输出达到一个预定时间周期和分类数据的输出达到了一个预定数量这二个条件之一被满足之前一直输出涉及分类处理操作的分类数据,并且在这个输出之后的一个预定时间周期之内输出涉及数据库处理操作的数据。因此,利用一个数据处理装置可以并行地执行分类处理和数据库处理,并且可以转换在一个固定时间内输入的数据。与此同时,分类数据可以在分类处理设备所能处理的数据量的范围内传送。
另外,由于至少有一个分类处理器被用于升/降序检查,所以可以使用至少一个分类处理器执行升/降序检查。当执行分类处理时,用于执行升/降序检查的分类处理器被旁路,其余的分类处理器被用于执行分类处理。这样,用于执行升/降序检查的分类处理器就不会干扰存贮在其它分类处理器中的内容,而其它的分类处理器也不会干扰存贮在用于执行升/降序检查的分类处理器中的内容。因此,可以使用一个分类处理单元并行地执行升/降序检查和分类处理,并且可以很容易地执行在升/降序检查和分类处理之间的转换。
另外,第2多路输入控制单元能够变化地设置分类处理操作以及除分类处理操作以外由该第二多输入控制单元承受的数据库处理操作的最大量。这样,第二多路输入控制单元承接不超过上限范围内的处理,并问分类处理单元或数据库处理单元输出用于处理的规定数据。因此,通过使用一个分类处理单元或一个数据库处理单元,如果所述最大量被设置于低等级,则可以实现大量数据的高速处理,而如果所述最大量被设置在高等级,则可以实现高容量的多个分类处理操作或除分类处理以外的处理操作。和使用多个分类处理单元或多个数据库处理单元的情况比较,可以降低成本。
在我们描述某些特定实施例时,应当理解本发明并不受限于这些实施例,并且在本发明的范围之内可以作出改进,代替和变化。
Claims (8)
1.一种用于分类多个数据块的分类方法,其中每一数据块属于一个单独的分类处理操作,所述方法包括:
数据块分割步骤,用于将用于一个分类处理操作的第一数据块分割成多个其中的每一个都具有多个记录的第一小数据块;所述第一数据块包括多个记录;
第一分类步骤,用于利用一个分类处理单元对包括在多个第一小数据块部分内的多个记录进行分类;
第二分类步骤,用于在第一分类步骤之后利用所述的处理单元对在第一分类步骤中没有被分类的第一小数据块之一进行分类;和
数据块归并步骤,用于通过将在第一分类步骤和第二分类步骤中分类的多个第一小数据块加以归并而对于所述一个分类处理操作产生分类的数据块。
2.一种分类处理设备,包括:
第一多输入控制单元,用于承接包括第一和第二分类处理操作的多种分类处理操作,并在预定处理条件下输出包括涉及第一分类处理操作的一部分的多个记录在内的分类数据,在这个输出完成以后,输出包括涉及第二分类处理操作的一部分的多个记录在内的分类数据;
分类处理单元,用于对从所述第一多路输入控制单元输入给它的用于第一处理操作和第二处理操作的分类数据交替进行分类;和
多输出控制单元,用于通过鉴别从所述分类处理单元传输给它的数据涉及了多个分类处理操作中的哪一个分类处理操作集中输出用于每一分类处理操作的数据。
3.如权利要求2的分类处理设备,其中,所述第一多输入控制单元在一个预定时间周期内输出涉及到多个分类处理操作中一个分类处理操作的一部分的分类数据,并且在完成该输出以后的一个预定时间周期内输出涉及另一个分类处理操作的一部分的分类数据。
4.如权利要求2的分类处理设备,其中,所述第一多输入控制单元输出涉及多个分类处理操作中一个分类处理操作的一部分的预定数据量的分类数据,并在完成这个输出之后,输出涉及另一个分类处理操作的预定数据量的分类数据。
5.如权利要求2的分类处理设备,其中,所述第一多输入控制单元在输出分类数据达到一个预定时间周期和输出的分类数据达到一个预定数据量这两条件之一被满足之前输出涉及多个分类处理操作中一个分类处理操作的一部分的分类数据,并在这个输出完成之后输出涉及到另一分类处理操作的一部分的分类数据,直到分类数据的输出达到一个预定时间周期和输出的分类数据达到一个预定数据量这两个条件之一被满足为止。
6.如权利要求2的分类处理设备,其中,当从一个分类处理操作转移到另一个分类处理操作时,所述的分类处理单元存贮从所述第一多路输入控制单元输出的涉及到一个分类处理操作的一部分的分类数据的所有记录。
7.如权利要求2分类处理设备,其中,所述第一多输入控制单元能够可变地设置由所述第一多输入控制单元承接的分类处理操作的最大量。
8.如权利要求2的分类处理设备,其中,当输出涉及分类处理操作的分类数据时,如果检测到涉及分类处理操作的一个误差或一个删除时,所述第一多输入控制单元输出被加有结束数据的分类数据,并且所述第一多输入控制单元中止分类处理操作,同时,
多输出控制单元读出涉及与被检测到误差或删除相关的分类处理操作的分类数据,直到读出结束数据为止。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP72551/1995 | 1995-03-30 | ||
JP72551/95 | 1995-03-30 | ||
JP07255195A JP3518034B2 (ja) | 1995-03-30 | 1995-03-30 | ソート方法並びにソート処理装置並びにデータ処理装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96107310A Division CN1118765C (zh) | 1995-03-30 | 1996-03-29 | 数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1402150A CN1402150A (zh) | 2003-03-12 |
CN1223952C true CN1223952C (zh) | 2005-10-19 |
Family
ID=13492617
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96107310A Expired - Fee Related CN1118765C (zh) | 1995-03-30 | 1996-03-29 | 数据处理装置 |
CNB021406294A Expired - Fee Related CN1223952C (zh) | 1995-03-30 | 2002-07-04 | 分类方法、分类处理设备和数据处理设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96107310A Expired - Fee Related CN1118765C (zh) | 1995-03-30 | 1996-03-29 | 数据处理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6035296A (zh) |
EP (2) | EP0735460B1 (zh) |
JP (1) | JP3518034B2 (zh) |
KR (1) | KR100407862B1 (zh) |
CN (2) | CN1118765C (zh) |
DE (2) | DE69622776T2 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4304746B2 (ja) * | 1999-01-06 | 2009-07-29 | ソニー株式会社 | ファイルの置き換え方法及び装置 |
US6434560B1 (en) * | 1999-07-19 | 2002-08-13 | International Business Machines Corporation | Method for accelerated sorting based on data format |
US6775667B1 (en) * | 2000-05-01 | 2004-08-10 | Broadcom Corporation | Method and system for providing a hardware sort for a large number of items |
US20030191761A1 (en) * | 2002-04-04 | 2003-10-09 | International Business Machines Corporation | Methods and apparatus for remote file access |
JP2005190047A (ja) | 2003-12-25 | 2005-07-14 | Hitachi Ltd | データソート機能を持つストレージシステム |
JP4776571B2 (ja) * | 2007-03-16 | 2011-09-21 | 富士通株式会社 | 実行制御プログラム,実行制御方法及び実行制御装置 |
US20110055492A1 (en) * | 2009-09-03 | 2011-03-03 | Ren Wu | Multiple processing core data sorting |
US8843502B2 (en) | 2011-06-24 | 2014-09-23 | Microsoft Corporation | Sorting a dataset of incrementally received data |
WO2013086380A1 (en) | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for more efficient usage of memory - to - cpu bandwidth |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9063974B2 (en) | 2012-10-02 | 2015-06-23 | Oracle International Corporation | Hardware for table scan acceleration |
US9430390B2 (en) | 2013-09-21 | 2016-08-30 | Oracle International Corporation | Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications |
US10025823B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Techniques for evaluating query predicates during in-memory table scans |
US9990308B2 (en) | 2015-08-31 | 2018-06-05 | Oracle International Corporation | Selective data compression for in-memory databases |
CN108695075B (zh) * | 2015-11-19 | 2020-04-21 | 福建省福工动力技术有限公司 | 可实时检测的基于can总线通信的超级电容监控*** |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
US10901692B2 (en) | 2018-07-12 | 2021-01-26 | Texas Instruments Incorporated | Bitonic sorting accelerator |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4209845A (en) * | 1977-01-25 | 1980-06-24 | International Business Machines Corporation | File qualifying and sorting system |
US4514826A (en) * | 1981-05-18 | 1985-04-30 | Tokyo Shibaura Denki Kabushiki Kaisha | Relational algebra engine |
JPH077385B2 (ja) * | 1983-12-23 | 1995-01-30 | 株式会社日立製作所 | データ処理装置 |
CA1228677A (en) * | 1984-06-21 | 1987-10-27 | Cray Research, Inc. | Peripheral interface system |
EP0214313B1 (en) * | 1984-08-22 | 1993-03-10 | Hitachi, Ltd. | Method and apparatus for data merging/sorting |
US4890220A (en) * | 1984-12-12 | 1989-12-26 | Hitachi, Ltd. | Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results |
US4962451A (en) * | 1985-11-07 | 1990-10-09 | International Business Machines Corporation | Cache-effective sort string generation method |
JPS6386043A (ja) * | 1986-09-30 | 1988-04-16 | Mitsubishi Electric Corp | ソ−ト機構を有するメモリ装置 |
JP2752634B2 (ja) * | 1988-05-26 | 1998-05-18 | 優 喜連川 | ソート処理装置 |
US5028186A (en) * | 1990-01-29 | 1991-07-02 | Mechanical Plastics Corp. | Hollow wall anchor with enhanced holding strength |
US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
JPH0743700B2 (ja) * | 1990-07-17 | 1995-05-15 | 三菱電機株式会社 | データ駆動型情報処理装置 |
US5978831A (en) * | 1991-03-07 | 1999-11-02 | Lucent Technologies Inc. | Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates |
US5307485A (en) * | 1991-05-31 | 1994-04-26 | International Business Machines Corporation | Method and apparatus for merging sorted lists in a multiprocessor shared memory system |
US5410689A (en) * | 1991-06-13 | 1995-04-25 | Kabushiki Kaisha Toshiba | System for merge sorting that assigns an optical memory capacity to concurrent sort cells |
US5404558A (en) * | 1992-02-17 | 1995-04-04 | Sharp Kabushiki Kaisha | Data driven type information processor having a plurality of memory banks |
JPH06124352A (ja) * | 1992-10-14 | 1994-05-06 | Sharp Corp | データ駆動型情報処理装置 |
JPH0728624A (ja) * | 1993-07-13 | 1995-01-31 | Mitsubishi Electric Corp | ソート装置及びソート方法 |
JP3571367B2 (ja) * | 1993-08-11 | 2004-09-29 | シャープ株式会社 | データ駆動型プロセッサ、データ駆動型情報処理装置、およびこのデータ駆動型情報処理装置において、複数個のデータ駆動型プロセッサの経路接続を確認するための方法 |
US5727200A (en) * | 1994-03-07 | 1998-03-10 | Nippon Steel Corporation | Parallel merge sorting apparatus with an accelerated section |
-
1995
- 1995-03-30 JP JP07255195A patent/JP3518034B2/ja not_active Expired - Fee Related
-
1996
- 1996-03-21 US US08/621,187 patent/US6035296A/en not_active Expired - Fee Related
- 1996-03-28 EP EP96104973A patent/EP0735460B1/en not_active Expired - Lifetime
- 1996-03-28 EP EP01104954A patent/EP1111500B1/en not_active Expired - Lifetime
- 1996-03-28 DE DE69622776T patent/DE69622776T2/de not_active Expired - Fee Related
- 1996-03-28 DE DE69625725T patent/DE69625725T2/de not_active Expired - Fee Related
- 1996-03-29 CN CN96107310A patent/CN1118765C/zh not_active Expired - Fee Related
- 1996-03-29 KR KR1019960009069A patent/KR100407862B1/ko not_active IP Right Cessation
-
2002
- 2002-07-04 CN CNB021406294A patent/CN1223952C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69622776T2 (de) | 2003-04-10 |
JP3518034B2 (ja) | 2004-04-12 |
EP0735460A2 (en) | 1996-10-02 |
DE69622776D1 (de) | 2002-09-12 |
KR100407862B1 (ko) | 2004-03-10 |
DE69625725D1 (de) | 2003-02-13 |
CN1140284A (zh) | 1997-01-15 |
KR960035249A (ko) | 1996-10-24 |
DE69625725T2 (de) | 2003-11-27 |
EP0735460B1 (en) | 2002-08-07 |
EP1111500B1 (en) | 2003-01-08 |
CN1118765C (zh) | 2003-08-20 |
CN1402150A (zh) | 2003-03-12 |
EP1111500A1 (en) | 2001-06-27 |
EP0735460A3 (en) | 1997-03-26 |
JPH08272592A (ja) | 1996-10-18 |
US6035296A (en) | 2000-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1223952C (zh) | 分类方法、分类处理设备和数据处理设备 | |
CN1120425C (zh) | 存储器控制器和存储器控制方法 | |
CN1324861C (zh) | 位串的校验方法及装置 | |
CN1194319C (zh) | 对表格式数据进行查找、列表及分类的方法和装置 | |
CN1498367A (zh) | 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法 | |
CN1271558C (zh) | 表格形式识别设备与方法 | |
CN101042676A (zh) | 存储***以及存储区域释放方法以及存储装置 | |
CN1734438A (zh) | 信息处理设备、信息处理方法和程序 | |
CN1878460A (zh) | 安装作业管理方法、安装机及准备支援方法、安装流水线 | |
CN1655145A (zh) | 最优化行级别数据库安全的***和方法 | |
CN1794729A (zh) | 数据配置管理方法及***和装置以及程序 | |
CN1074301A (zh) | 专家***开发支撑***及专家*** | |
CN1201519C (zh) | 数据一致性检测装置、数据一致性判断装置及数据挑选装置 | |
CN1474976A (zh) | 支持多个客户数据交换协议的工业过程控制数据访问服务器 | |
CN101067869A (zh) | 处理图形的方法和设备 | |
CN1432919A (zh) | 无用存储单元收集装置及无用存储单元收集方法 | |
CN101038560A (zh) | 并行处理方法中的作业分配方法及并行处理方法 | |
CN1318163A (zh) | 可选择性定义对应用程序功能部件访问的***和方法 | |
CN1113210A (zh) | 电梯的控制中枢网络 | |
CN1203395A (zh) | 文件管理装置和方法及记录文件管理程序的记录媒体 | |
CN1102001A (zh) | 交通工具控制装置 | |
CN1284180A (zh) | 利用布尔逻辑和可编程结构进行地址分析的方法和装置 | |
CN1875376A (zh) | 负责人指派***及负责人指派方法 | |
CN1237731A (zh) | 数据处理方法、记录介质及数据处理设备 | |
CN1682497A (zh) | 数字交叉连接交换矩阵映射方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
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: 20051019 |