CN105718991A - Cell array calculation system - Google Patents
Cell array calculation system Download PDFInfo
- Publication number
- CN105718991A CN105718991A CN201510456225.2A CN201510456225A CN105718991A CN 105718991 A CN105718991 A CN 105718991A CN 201510456225 A CN201510456225 A CN 201510456225A CN 105718991 A CN105718991 A CN 105718991A
- Authority
- CN
- China
- Prior art keywords
- cell
- data
- cellular array
- array
- transfer
- 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.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
The invention discloses a cell array calculation system, comprising a main control CPU, a cell array, a cell array bus and at least one memory unit array; the cell array is a two-dimension cell array consisting of at least one cell having functions of calculation and storage, wherein each cell comprises a microprocessor and a nonvolatile random storage device; the memory array is a two dimension array consisting of more than one memory unit; the cell array stacks with the memory unit array to form a three-dimension structure; the memory units in each memory unit are connected to the cells of the cell array in one-to-one correspondence; the memory unit cooperates with the nonvolatile random storage device to commonly perform random storage of the data related to the calculation of the microprocessor; a main control CPU performs communication with each cell in the cell array through the cell array bus; a communication interface is arranged between the adjacent cells in the cell array for transmitting data. The invention can overcome the communication bottleneck between the CPU and the memory and storage in the current computer architecture and improves the integral performance of the system.
Description
Technical field
The present invention relates to computer and Computer Applied Technology field, particularly to a kind of cellular array computing system.
Background technology
As a rule, a computer mainly includes three cores: central processing unit (CPU, CentralProcessingUnit), internal memory and storage.
Through the unremitting effort of some Apical Limited of the world, CPU has evolved into extremely complicated semiconductor chip.Metal-oxide-semiconductor number within top CPU core can more than 100,000,000.Current industry trend is to be limited by power consumption, and the running frequency of CPU is difficult to improve again.Extremely complicated modern CPU, operational efficiency is similarly difficult to improve again.New CPU product, more and more towards the evolution of multinuclear direction.
In internal memory, what occupy dominant position at present is dynamic random access memory (DRAM, DynamicRandomAccessMemory) technology.DRAM can quick random read-write, but content can not be kept in the event of a power failure.Even if it practice, when energising, it is also due to internal being used for stores up the electric leakage of stored capacitor and lose information, it is necessary to periodically self-refresh.
In storage, nand flash memory technology is progressively replacing conventional hard.Floating grid (floatinggate) technology that flash memory relies on, although content can be kept in the event of a power failure, but the speed that write (is rewritten as ' 0 ' by ' 1 ') is very slow, the speed that erasing (is rewritten as ' 1 ' by ' 0 ') is slower, it is impossible to for directly supporting what calculate as DRAM.It is made into block device (blockdevice), it is necessary to monoblock is wiped together, and a block (block) comprises a lot of page (page), and after erasing, each page can read operation.The another one problem of NAND is to have the limited life-span.
DRAM and nand flash memory, and the logic circuit of CPU, although be all based on cmos semiconductor explained hereafter, but the technique of this three is each other and incompatible.Then, three cores of computer cannot coexist on a single die, and this has had a deep effect on the framework of modern computer.
Computer architecture of the prior art is as shown in Figure 1, multiple CPU cores shown in Fig. 1, respectively CPU1, CPU2, CPU3 ..., CPUn, each CPU core generally has corresponding level cache (L1Cache), can also be that each CPU core is equipped with corresponding L2 cache (L2Cache), three grades of buffer memorys (L3Cache) as required further.By Double Data Rate (DDR between DRAM and each CPU core, DoubleDataRate) interface communicates, hard disk (HD, or then communicated by peripheral interface between solid state hard disc (SSD, SolidStateDrives) and each CPU core HardDisk).
On the one hand, CPU is developing to the direction of multinuclear, and internal memory and storage are all in other chip on the other hand.Multi-core CPU is handled up the proportional increase of quantity of information, and the communication with internal memory, storage just increasingly becomes the bottleneck of systematic function.In order to alleviate communication performance bottleneck, CPU has to adopt increasing multi-level buffer.Buffer memory be in internal memory content replicate, it is common that with cost more much higher than DRAM but what speed static RAM faster (SRAM, StaticRandomAccessMemory) designed.Such framework, cost effectiveness difference very.The cost of semiconductor chip is determined by the area of its silicon chip, and the performance boost that convention computer architecture brings is far from proportional to the increase of its silicon area.
Summary of the invention
The lifting that the problem to be solved in the present invention is computer architecture of the prior art affects computer overall performance because of the communication performance bottleneck existed between CPU and internal memory, storage, and make cost effectiveness poor.
For solving the problems referred to above, technical solution of the present invention provides a kind of cellular array computing system, including: master cpu, cellular array, cellular array bus and at least one memory cell array;The two-dimensional array that described cellular array is made up of the more than one cell having calculating and storage function concurrently, each of which cell includes microprocessor (MPU, and non-volatile (NV, NotVolatile) random access memory MicroProcessingUnit);The random access memory of involved data when described non-volatile random access memory calculates for described microprocessor, is additionally operable to the instruction code of storage software and needs the data of persistence;The two-dimensional array that described memory cell array is made up of more than one internal storage location, described cellular array and all memory cell array are built up three dimensional structure, and the internal storage location in each memory cell array is connected correspondingly with the cell in described cellular array;The random access memory of involved data when described internal storage location calculates for described microprocessor;Position in the described cellular array of each leisure of each cell storage is read for the software in cell or hardware as identity recognition number (ID, identification);Described master cpu is communicated with each cell in described cellular array by described cellular array bus;There is communication interface between flanking cell in described cellular array, can mutually send data.
Optionally, at least one that described master cpu includes in situations below by the communication that described cellular array bus and each cell in described cellular array carry out:
The non-volatile random access memory of arbitrary cell in described cellular array or corresponding internal storage location is read and write by address;
The non-volatile random access memory being broadcast in target area by data each cell or corresponding internal storage location, and write the non-volatile random access memory of each cell this target area in or relative address identical in internal storage location accordingly;
Send instruction to the microprocessor of cell arbitrary in described cellular array, send data or reading state;
To the microprocessor broadcasting instructions of all cells in target area.
Optionally, cell in described cellular array also includes bus control unit and cell interior bus, described cell interior bus connects described microprocessor, non-volatile random access memory and the internal storage location corresponding with this cell, described bus control unit and described cellular array bus, microprocessor and cell interior bus are connected, described bus control unit is for identifying the communication carried out between described master cpu and this cell, connect described microprocessor to transmit instruction or the data of the transmission of described master cpu, state reads, or the read-write operation of data is carried out by the described cell interior bus described non-volatile random access memory of connection or the internal storage location corresponding with this cell.
Optionally, can communicate between any two cell in described cellular array, the cell participating in cell-cell communication comprises starting point cell, end point cell and transfer cell, described starting point cell is the cell sending data to described end point cell, described end point cell is the final cell receiving described the sent out data of starting point cell, described transfer cell is adjacent successively along cell-cell communication path and by the sent out data of starting point cell described in described communication interface transfer cells, described cell-cell communication path is by described starting point cell, the data transmit-receive path that transfer cell and end point cell are constituted.
Optionally, arbitrary cell in described cellular array can also carry out mass-sending communication as described starting point cell to all cells in target area, participate in the described cell communicating and being positioned at target area of mass-sending as described starting point cell or as described end point cell or simultaneously as described transfer cell and end point cell, participate in the described cell communicated and be positioned at outside target area of mass-sending as described starting point cell or transfer cell.
Optionally, cell in described cellular array also includes the network controller being connected with described microprocessor, described network controller is for when carrying out cell-cell communication, the data sent, the data of transfer or the data of final reception are carried out transmitting-receiving control, is additionally operable to send interrupt signal to described microprocessor.
Optionally, cell in described cellular array also includes a group or more First Input First Output (FIFO being connected with described network controller, FirstInputFirstOutput), each group First Input First Output corresponding cell adjacent with this cell respectively, each group of First Input First Output includes input First Input First Output and output First Input First Output, described input First Input First Output inputs the data that this cell carries out transfer or the data finally received for storing, the described output First Input First Output data for storing the need exported from this cell and carry out the data of transfer or this cell sending to other cells.
Optionally, described cellular array is additionally provided with at least one full-time output cell, described full-time output cell receives and stores other cells output data to described master cpu as described end point cell, and notifies that described master cpu reads described output data with interrupt signal.
Optionally, passed through silicon through hole (TSV, ThroughSiliconVias) between the cell that described internal storage location is corresponding with described cellular array to establish a communications link.
Optionally, described microprocessor is integrated with at least one in Floating-point Computation processor (FPU, FloatPointUnit) and image processor.
Optionally, described master cpu is integrated in a chip with described cellular array and described cellular array bus.
Optionally, described master cpu, as independent chip, is communicated with the chip being made up of described cellular array and described cellular array bus by the memory interface of standard.
Optionally, described non-volatile random access memory is magnetic RAM (MRAM, MagneticRandomAccessMemory).
Optionally, described memory cell array is MRAM, DRAM or sram chip.
Compared with prior art, technical scheme at least has the advantage that
By by the more than one unit (being called " cell ") composition two-dimensional array (being called " cellular array ") having independent calculating and storage function concurrently, each of which cell includes microprocessor and non-volatile random access memory, described non-volatile random access memory can support described microprocessor random access memory of involved data when being calculated, also can support the instruction code of storage software and need the data of persistence, make internal memory, storage, calculate three functions and be integrated in each cell, and make to be formed between each cell intensive communication network, on the one hand, master cpu can be communicated with each cell in cellular array by cellular array bus, on the other hand, also data can be mutually sent between flanking cell in cellular array, thus can be mass-sended by data and internal network, overcome active computer framework because of CPU and internal memory, the communication performance bottleneck existed between storage, thus promoting the overall performance of computing system, and cost effectiveness can be made preferably;In addition, again through by least one memory cell array being made up of more than one internal storage location, it is built up three dimensional structure with described cellular array, and make the internal storage location in each memory cell array be connected correspondingly with the cell in cellular array, the random access memory of involved data when described internal storage location calculates for described microprocessor, so just with the memory headroom of each cell in relatively low cost extension cellular array, the treatment effeciency of microprocessor in cell can be improved.
By communication interface between flanking cell in cellular array, realize the repeatedly transfer for data between flanking cell, make just can communicate not against master cpu between any two cell in cellular array, improve the efficiency of cell-cell communication, also reduce the processing load of master cpu, it is thus possible to promote the overall performance of computing system further.
By intercellular point communications functionality being expanded to region mass-sending, it is possible to support the higher depth of parallelism, it is thus achieved that much higher total bandwidth, thus promoting the overall performance of computing system further.
By arranging full-time output cell in cellular array, receive and store other cells to the output data of master cpu using described full-time output cell as described end point cell, and in the way of interrupt signal, notify that described master cpu reads described output data, so can improve master cpu when only a few cell needs and exports data to master cpu and read the efficiency of output data.
The invention solves the communication performance bottleneck problem between CPU and internal memory.So, under identical silicon area, the disposal ability of a large amount of miniature MPU, the disposal ability of remote a few top CPU super in a lot of problems, power consumption is then much lower.
The invention enables the framework of computer closer to human brain, provide strong engine for following intelligent algorithm.
Accompanying drawing explanation
Fig. 1 is the schematic diagram of prior art Computer framework;
Fig. 2 is a kind of structural representation of the cellular array computing system that the embodiment of the present invention provides;
Fig. 3 be the embodiment of the present invention a kind of flanking cell between the schematic diagram of communication mode;
Fig. 4 be the embodiment of the present invention another kind of flanking cell between the schematic diagram of communication mode;
Fig. 5 is the structural representation of the cell of the embodiment of the present invention;
Fig. 6 is the schematic diagram that application cell array computation system calculates MonteCarlo integration in pipelined fashion;
Fig. 7 be the embodiment of the present invention cellular array in carry out the structural representation of cell of cell-cell communication;
Fig. 8 be the embodiment of the present invention cellular array in the schematic diagram of Path selection of cell-cell communication;
Fig. 9 is the implementation process schematic diagram of the sole duty output cell of the embodiment of the present invention;
Figure 10 be the embodiment of the present invention cellular array in starting point cell on angle, target area cell mass-sending schematic diagram;
Figure 11 be the embodiment of the present invention cellular array in starting point cell on limit, target area cell mass-sending schematic diagram;
Figure 12 be the embodiment of the present invention cellular array in starting point cell within target area cell mass-send schematic diagram;
Figure 13 be the embodiment of the present invention cellular array in starting point cell outside target area cell mass-sending schematic diagram;
Figure 14 is the another kind of structural representation of the cellular array computing system that the embodiment of the present invention provides.
Detailed description of the invention
The computer architecture of prior art, owing to there is communication performance bottleneck between CPU and internal memory, storage, thus affecting the lifting of computer overall performance, and makes cost effectiveness poor.
Present inventor considers after research, if internal memory, storage, three functions of calculating are integrated on a chip, formed relatively easy but have independent calculating and the unit of storage function concurrently, and make to form intensive communication network between this type of unit a large amount of, realize data with this and broadcast/mass-send function and can the internal network of parallel transmission data on a large scale, just developing a kind of computing architecture that there is similarity with human brain, this is equivalent to substantial amounts of microcomputer to do on a single die.
For this, technical solution of the present invention provides a kind of computing architecture (in technical solution of the present invention be referred to as " cellular array computing system ") similar to human brain structure, this computing architecture is relatively easy by numerous structures, have storage and computing function concurrently, have again unit (being referred to as " cell " in the technical solution of the present invention) composition that dense network connects.This new computing architecture will be widely used in the fields such as mass computing, the process of big data, artificial intelligence.
Understandable for enabling the above-mentioned purpose of the present invention, feature and advantage to become apparent from, below in conjunction with accompanying drawing, specific embodiments of the invention are described in detail.
As in figure 2 it is shown, the cellular array computing system that the embodiment of the present invention provides includes: master cpu, cellular array and cellular array bus;Described cellular array is the main body in described cellular array computing system, the two-dimensional array that it is made up of the more than one cell having calculating and storage function concurrently, each of which cell includes microprocessor (MPU) and non-volatile random access memory (for MRAM in Fig. 2);The random access memory of involved data when described non-volatile random access memory calculates for described microprocessor, is additionally operable to the instruction code of storage software and needs the data of persistence;Position in the described cellular array of each leisure of each cell storage is read for the software in cell or hardware as ID;Described master cpu is communicated with each cell in described cellular array by described cellular array bus;There is communication interface between flanking cell in described cellular array, can mutually send data.
It should be noted that in the present embodiment, described non-volatile random access memory is to illustrate for MRAM.In other embodiments, along with the development further of non-volatile random memory technology is with ripe, described non-volatile random access memory can also adopt other several potential technology to realize, such as: phase-change random access memory (PCRAM, PhaseChangeRandomAccessMemory), resistive formula random access memory (ResistiveRandomAccessMemory), Ferroelectric Random Access Memory (FeRAM, FerroelectricRandomAccessMemory), ferroelectric dynamic random access memory (FEDRAM, FerroelectricDynamicRandomAccessMemory) etc..
MRAM is a kind of new internal memory and memory technology, it is possible to quick random read-write as SRAM/DRAM, and faster than DRAM;As flash memory, can also forever retain data after a loss of power, and unlike nand flash memory, MRAM can not limit secondaryly erasable, and service life is longer.Additionally, the economy of MRAM thinks that locality is good, the silicon area that unit capacity takies has very big advantage than SRAM (buffer memory usually used as CPU), is expected to the level close to DRAM.Its performance is also fairly good, and read-write time delay is close to best SRAM, and power consumption is then best at various internal memories and memory technology.And MRAM is incompatible with standard CMOS semiconductor technique unlike DRAM and Flash, MRAM can be integrated in a chip with logic circuit.By adopting MRAM technology, it is possible to internal memory, storage, three functions of calculating are integrated on a chip, make the realization of described cellular array computing system just can be possibly realized.
In the present embodiment, described microprocessor has the function of usual CPU, the unit such as Floating-point Computation processor, image processor can also be added according to concrete application scenarios, therefore, described microprocessor can be integrated with at least one in Floating-point Computation processor and image processor.
When reality is implemented, described master cpu can be integrated in a chip with described cellular array and described cellular array bus, described master cpu as independent chip, can also be communicated with the chip being made up of described cellular array and described cellular array bus by the memory interface of standard.When the memory interface adopting standard between described master cpu and described cellular array communicates, then master cpu can adopt general cpu chip to realize, it is easier to the enforcement of described cellular array computing system.
In the present embodiment, position in each comfortable cellular array of each cell storage is as ID, described position can adopt the coordinate representation mode of first quartile in plane right-angle coordinate, if (x, y) represent certain cell position in cellular array, then (x, y) can be stored in this cell as ID, software and hardware in cell can read this ID, uses in concrete operation.
In the present embodiment, the communication that described master cpu is undertaken by described cellular array bus and each cell in described cellular array includes situations below:
The non-volatile random access memory of arbitrary cell in described cellular array is read and write by address;
Data are broadcast in described cellular array the non-volatile random access memory of each cell in target area, and write relative address identical in the non-volatile random access memory of each cell in this target area;
Send instruction (including starting, suspending) to the microprocessor of cell arbitrary in described cellular array, send data or reading state;
To the microprocessor broadcasting instructions of all cells in target area.
Certainly, in other embodiments, described master cpu can also be one or more combinations in above-mentioned situation by the communication that described cellular array bus and each cell in described cellular array carry out.
It should be noted that, " target area " in the embodiment of the present invention refers to the region being selected the more than one cell that there are neighbouring relations to constitute by the arbitrary cell in described master cpu or described cellular array, and the cell in this region is the object that data or instruction were broadcasted/mass-sended to the arbitrary cell in master cpu or cellular array.In the present embodiment, described target area is specifically with rectangular area (a≤x≤b, c≤y≤d, wherein a, b are this rectangular area boundary coordinate in x-axis direction in plane right-angle coordinate respectively, and c, d are this rectangular area boundary coordinate in y-axis direction in plane right-angle coordinate respectively) illustrate for example.In other embodiments, described target area can also be the region that other shapes are constituted, for instance diamond-shaped area, delta-shaped region, hexagonal area etc..
Additionally, the concept of " broadcast " is different from the concept of " mass-sending " in the embodiment of the present invention, the former can be send out a pass according to or instruction all of object can be received, the latter point issues different objects many times over.
Except cell arbitrary in described cellular array (including the microprocessor in cell or non-volatile random access memory) being broadcasted by master cpu, in described cellular array, also has a communication network, this communication network enables to a cell under the control of its MPU, can send data to the cell adjacent with it.As it is shown on figure 3, in a plane, arbitrary cell can communicate with the flanking cell of its upper and lower, left and right four direction.Certainly, between flanking cell, the concept of communication mode is not limited only to " upper and lower, left and right four direction ", when configuration can be supported, can also be " upper and lower, left and right, upper left, upper right, lower-left, direction, eight, bottom right ", as shown in Figure 4, arbitrary cell can with its upper and lower, left and right, upper left, upper right, lower-left, eight directions, bottom right flanking cell communicate.
As shown in Figure 5, in the present embodiment, cell in described cellular array specifically can also include bus control unit and cell interior bus, described bus control unit is connected with described cellular array bus, microprocessor and cell interior bus, described bus control unit is for identifying the communication carried out between described master cpu and this cell, connect described microprocessor to transmit instruction or data, the state reading of the transmission of described master cpu, or carried out the read-write operation of data by the described cell interior bus described non-volatile random access memory of connection.
Those skilled in the art know, one fairly simple and the good CPU of performance, such as ARMCotexM0, the only metal-oxide-semiconductor of about 50,000, even if appropriateness increases FPU function, also more than one hundred million the metal-oxide-semiconductors than top CPU are much smaller, and it is out-of-proportion that the area (cost) that lifting cpu performance brings increases.One big CPU is replaced with many little CPU, and when totle drilling cost is the same, total computing capability necessarily increases many times.But convention computer architecture is limited by communication performance bottleneck, the actual performance that a large amount of CPU core brings is used to promote very limited.
And the cellular array computing system that technical solution of the present invention provides is by data broadcast/mass-sending and internal network, the problem solving communication performance bottleneck, thus promoting the overall performance of computing system, and cost effectiveness can be made preferably, this will be more clearly visible that this point in follow-up application example.
Preliminary research shows, if using the MPU being similar to CortexM0, coordinating the internal memory of 32KB, forming a cell.The technique using 40 nanometers, it is possible to 3000 such cells are done on a single die, this is very powerful computing capability.Further investigations have shown that, make in this way, the computing capability (general flops per second (FLOPS, floating-pointoperationspersecond) is measured) of contemporary top CPU can be surmounted in same silicon area.Owing to the cellular array computing system of technical solution of the present invention no longer faces the bottleneck with memory interface, in solving a lot of practical problems, the meeting of performance is better.
Based on above-mentioned cellular array computing system, the embodiment of the present invention also provides for the communication means in a kind of above-mentioned cellular array computing system, including traffic operation between flanking cell in the read-write operation of non-volatile random access memory of: master cpu, traffic operation between master cpu and microprocessor, the broadcast operation of master cpu and cellular array;
The operation of described master cpu read-write non-volatile random access memory specifically includes: the arbitrary cell in described cellular array receives the destination address that described master cpu is broadcasted in described cellular array bus, if judging, described destination address is in this cell, then connect the non-volatile random access memory of this cell so that described master cpu carries out the read-write operation of data.
Traffic operation between described master cpu and microprocessor specifically includes: in system address space, reserved first special address field is for the communication between described master cpu and microprocessor the ID storing target cell, if in described cellular array, arbitrary cell identifies when receiving described first special address field is the communication of microprocessor with this cell, then connects the microprocessor of this cell and complete follow-up command reception, data receiver and status read operation.
It should be noted that, described system address space is not limited only to the address space summation being made up of the non-volatile random access memory comprised in each cell of cellular array, because the memorizer connecting cellular array bus is likely in each cell of not just cellular array the non-volatile random access memory comprised, entirely possible there is also other kinds of memorizer and be connected with cellular array bus, access for described master cpu.Therefore, described master cpu needs the ID according to cell to go to identify its cell (now this cell is called " target cell " in the present embodiment) preparing to access.
The broadcast operation of described master cpu specifically includes: in system address space, reserved second special address field is for described master cpu broadcasting instructions, described second special address field has can assist in the ID of each cell of the scope of target area in described cellular array, if arbitrary cell identifies this cell in described target area after receiving described second special address field in described cellular array, then connect the microprocessor of this cell to transmit instruction or the data of the transmission of described master cpu, state reads, or the read-write operation of data is carried out by connecting the non-volatile random access memory of this cell.
For specifically rectangular area, described target area, the broadcast operation of described master cpu is illustrated below.In system address space, reserved one section is used as broadcasting instructions, and a section in this address is for storing the ID of starting point cell in target rectangle region.Described starting point cell is the first cell accessed by master cpu in this target rectangle region, after bus control unit in this cell receives this special address, the data of a reception word (word) below, these data include the ID in target rectangle region with the cell at starting point cell diagonal angle.Bus control unit judges that this cell is in this region, receives the data of second word.Second sign is bright is the instruction to MPU or data, or some relative address starts write from non-volatile random access memory.If the former, connect MPU, if the latter, connect non-volatile random access memory and complete operation below.
It should be noted that, when the memory space of described second special address field is relatively limited, the cell ID of its storage might not determine therefrom that the scope of target area completely, after now receiving described second special address field, in addition it is also necessary to receive follow-up data to coordinate stored cell ID in described second special address field jointly to determine the scope of target area.
In cellular array, the traffic operation between flanking cell includes: the arbitrary cell in described cellular array sends data to flanking cell under the control of its microprocessor.
In the present embodiment, each cell is provided with a bus control unit, is connected with cellular array bus.Cell interior arranges cell interior bus, described non-volatile random access memory be this cell interior bus from equipment (Slave), described bus control unit and microprocessor are main equipment (Master).
" the arbitrary cell in described cellular array judges that described destination address is whether in this cell " related in communication means in above-mentioned cellular array computing system, " identify whether the communication of microprocessor with this cell ", " identify that this cell is whether in described target area ", and " connecting non-volatile random access memory or microprocessor " is all completed by described bus control unit, described bus control unit connects described non-volatile random access memory by described cell interior bus.
In the specific implementation, described master cpu is higher than this intracellular microprocessor read-write operation for corresponding non-volatile random access memory for the priority of the read-write operation of the non-volatile random access memory of cell arbitrary in described cellular array.If it is to say, the master cpu such as the microprocessor in certain cell needs to read and write the non-volatile random access memory in this cell, palpus just can carry out after completing for the read-write operation of the non-volatile random access memory of this cell.
Being embodied as of communication means in described cellular array computing system with reference to the enforcement of above-mentioned cellular array computing system, can also repeat no more herein.
Additionally, the embodiment of the present invention also provides for a kind of method applying above-mentioned cellular array computing system calculating MonteCarlo integration.MonteCarlo integration is the summation to random number, is the big calculating commonly used in science and engineering, and its principle is relatively easy, and the process that calculates is with reference to equation below.
S=ΣRandom(x)F(x1, x2... .., xN)
Below by show the superiority of cellular array computing system further for this way to solve the problem.The calculating of MonteCarlo integration is very suitable for above-mentioned cellular array computing system, and concrete execution step is as follows:
Described master cpu selects the cell in described cellular array all or in a target area, the relative address section of program broadcast corresponding for integrand F () to each selected cell;
Described master cpu broadcasting instructions, makes the microprocessor of selected cell start to perform program corresponding to integrand F () from described relative address section;
After each cell completes integral operation, summation is stored in the address of agreement, always sues for peace after reading for described master cpu.
In the present embodiment, the program of described integrand F () correspondence is when starting to perform, and the randomizer that it carries reads the ID of cell as seed, so ensure that the random number that each cell produces is different.
When reality is implemented, several thousand cells start simultaneously at computing, and powerful operational capability discharges completely, and the restriction being no longer influenced by prior art communication performance bottleneck, it is thus possible to be more efficiently completed the calculating of MonteCarlo integration.
When reality is implemented, if integrand F () is extremely complex, the internal memory of a cell can not load, it is also possible to is solved by the mode of streamline.Therefore, the present embodiment also provides for the another kind of method applying above-mentioned cellular array computing system calculating MonteCarlo integration, including:
Described master cpu selects the cell in described cellular array all or in a target area;
In the same segment relative address of described master cpu one each cell downloading selected of broadcast, and broadcasting instructions makes the microprocessor of selected cell start to download described in execution from described relative address;The described input downloaded waiting next step;
Program corresponding for integrand splits into two or more subprogram, and described master cpu broadcasts each subprogram in the microprocessor of selected cell;
The microprocessor downloaded described in operation, selects one of them subprogram to store according to the ID of respective place cell, makes each subprogram be deployed according to the order of sequence in one group of adjacent successively cell;
Described master cpu broadcasting instructions, makes the microprocessor of each group of cell perform the subprogram after program corresponding to described integrand is split successively, and the intermediate object program of previous stage is transported to next stage and inputs;
After each group of cell completes integral operation, summation is stored in the address of agreement, always sues for peace after reading for described master cpu.
For example, as shown in Figure 6, such as integrand F () can being split into tri-parts of f1, f2, f3 (three subprograms), be deployed in adjacent cell, the intermediate object program of previous stage is transported to next stage and inputs.
Specifically, as master cpu broadcast f1, f2, f3 to each MPU (note: be not be dealt in internal memory, it is intended for MPU), run the MPU downloaded, select one of them subprogram to store according to oneself ID at the coordinate x (such as with the remainder of x/3) in rectangular coordinate system x-axis direction.So, by the broadcast in two stages, three subprograms have been deployed in all cells participating in and calculating according to desired rule.
Additionally, execution is started from first subprogram owing to the execution of the corresponding program of described integrand F () is actually, when so first subprogram after fractionation starts to perform, remain and read the ID of cell as seed using its randomizer carried, it is ensured that the random number that each cell produces is different.
Compare with convention computer architecture, the broadcast of described cellular array computing system/mass-sending function and can the advantage of the internal network of parallel transmission data on a large scale here embodying.If calculating this problem with traditional multiple nuclear CPU framework, when each CPU buffer memory carried is inadequate, all of CPU be required for from the interface of internal memory read integrand F () code, formed bottleneck.
In the present embodiment, for the enforcement of the internal network of cellular array, not only can send data to flanking cell, but also it is expanded to and can be sent to any one cell from a cell, namely be capable of the cell-cell communication in cellular array.
Specifically, can communicate when not against master cpu between any two cell in the cellular array of described cellular array computing system, the cell participating in cell-cell communication comprises starting point cell, end point cell and transfer cell, described starting point cell is the cell sending data to described end point cell, described end point cell is the final cell receiving described the sent out data of starting point cell, described transfer cell is adjacent successively along cell-cell communication path and by the sent out data of starting point cell described in described communication interface transfer cells, described cell-cell communication path is by described starting point cell, the data transmit-receive path that transfer cell and end point cell are constituted.
By communication interface between flanking cell in cellular array, realize the repeatedly transfer for data between flanking cell, make just can communicate not against master cpu between any two cell in cellular array, improve the efficiency of cell-cell communication, also reduce the processing load of master cpu, it is thus possible to promote the overall performance of computing system further.
It should be noted that, described starting point cell, end point cell and transfer cell are all the relative concepies for certain cell-cell communication process, because certain starting point cell is likely to as the transfer cell in other cell-cell communication processes or end point cell completely, certain end point cell is likely to as the transfer cell in other cell-cell communication processes or starting point cell.
In the specific implementation, cell in described cellular array can also include the network controller being connected with described microprocessor, described network controller, for the data sent, the data of transfer or the data of final reception being carried out transmitting-receiving control when cell-cell communication, is additionally operable to send interrupt signal to described microprocessor.In the present embodiment, by arranging a network controller in each cell, in order to the interim data rapidly when not disturbing MPU, thus reduce the processing load of MPU in cell.In other embodiments, it is also possible to be not provided with described network controller, but realized the transfer of data by MPU.
In the present embodiment, " data sent " refer to the data that described starting point cell is sent out self;" data of transfer " refer to the data that starting point cell described in described transfer transit cell sends, and these data are not send required for this cell self;" the final data received " refer to end point cell received data, and these data are arriving at after repeatedly transfer, will no longer carry out transfer." data sent ", " data of transfer " and " the final data received ", be likely identical data for content, only belongs to the different addresses in different communication stage.
In the specific implementation, cell in described cellular array can also include a group or more First Input First Output being connected with described network controller, each group First Input First Output corresponding cell adjacent with this cell respectively, each group of First Input First Output includes input First Input First Output and output First Input First Output, described input First Input First Output inputs the data that this cell carries out transfer or the data finally received for storing, the described output First Input First Output data for storing the need exported from this cell and carry out the data of transfer or this cell sending to other cells.
If when for communication mode between flanking cell shown in Fig. 3, the cellular array of the present embodiment carries out the structure of cell of cell-cell communication as shown in Figure 7, network controller in Fig. 7 is connected with MPU and 4 groups of fifo queues respectively, each group fifo queue respectively with this cell at " the upper and lower, left and right four direction of two dimensional surface " adjacent cell one_to_one corresponding, when being embodied as, the communication port between each two flanking cell can share one group of corresponding fifo queue.Often group fifo queue all comprises input FIFO and output FIFO, stand in the angle of one of them cell, input FIFO deposits the data inputted from other flanking cells, output FIFO deposits the data exported from this cell to other flanking cells, the output FIFO of flanking cell belongs to input FIFO for belonging to input FIFO, the output FIFO of this cell this cell for flanking cell.
It should be noted that, corresponding in cell shown in Fig. 7 exist 4 groups of fifo queues, if being positioned at the cell at 4 angles of the cellular array of rectangle, then this cell only has two flanking cells, the now corresponding 2 groups of fifo queues of this cell, if being positioned at the cell on 4 limits of the cellular array of rectangle, then this cell has three flanking cells, now the corresponding 3 groups of fifo queues of this cell.
In the present embodiment, network controller also connects with this intracellular MPU, sends out interrupt signal to it, and such as FIFO empty, FIFO is full, newly arrive data, data are sent etc.;MPU then can send data by network controller, and the data sent would generally first be put in a corresponding output fifo queue.
It should be noted that the cellularity in Fig. 7 illustrate only the module relevant to carrying out cell-cell communication, it will be appreciated to those of skill in the art that the cellularity shown in Fig. 7 can combine with the cellularity shown in Fig. 5 completely.
Additionally, the present embodiment adopts fifo queue storage input and exports the data of certain cell, so can make the data relay in cell-cell communication process more efficiently, reduce the process load of MPU.In other embodiments, input and export the data of certain cell and can also be realized by depositor.
The embodiment of the present invention also provides for the communication means in a kind of above-mentioned cellular array computing system between cell, including: the data that the starting point cell in described cellular array will send to end point cell, send to the cell adjacent with described starting point cell by selected sending direction;When the arbitrary cell in described cellular array receives the data of data that flanking cell sends or transfer, if the ID according to the described end point cell indicated in the data received judges that this cell is end point cell, then the data received are stored in the non-volatile random access memory of this cell, or notify that the data received are processed by the microprocessor of this cell, otherwise this cell is as transfer cell, gives the cell adjacent with this cell by the described data relay received after selected sending direction.
In the specific implementation, the each data related in cell-cell communication process all can contain the ID of starting point cell and end point cell, arbitrary cell according to the ID of the end point cell indicated in the data received just may determine that these data be intended for this cell need for further in be given to other flanking cells.One data is by the connection between flanking cell, through repeatedly transfer, reach home cell, if this end point cell needs to make feedback with regard to the sent out data of starting point cell, then according to the ID of starting point cell, feedback data can be sent to starting point cell, the ID of the starting point cell that described end point cell is indicated in the data received is as the ID of end point cell, feedback data obtained after the data received are processed is indicated, starting point cell when now this end point cell becomes a new cell-cell communication, original starting point cell then becomes end point cell during this cell-cell communication.
When being embodied as, while indicating the ID of end point cell, the data that described starting point cell sends to end point cell also indicate address to be accessed in described end point cell or MPU;The described non-volatile random access memory that the data received are stored in this cell, carries out after being the address to be accessed indicated in identifying the data received of described end point cell;The data received are processed by the described MPU notifying this cell, carry out after being the MPU that indicates in identifying the data received of described end point cell.
When reality is implemented, if behind the address to be accessed that end point cell is indicated in identifying the data received, the data then received can be write direct by the network controller in this end point cell this cell non-volatile random access memory in appropriate address, in this case, cell can realize " breeding ", and a cell downloads to another one cell;If after the MPU that end point cell is indicated in identifying the data received, the data of reception will transfer to the MPU process in end point cell.
In the present embodiment, owing to the cell in cellular array also includes the network controller that is connected with MPU, therefore described starting point cell sends arbitrary cell in data, described cellular array to end point cell and receives the data of data that flanking cell sends or transfer and judge that this cell is final cell or transfer cell, the data received is stored in the non-volatile random access memory of this cell or notifies that the data received are processed by the MPU of this cell, is all complete under the control of described network controller.
When being embodied as, the data that described starting point cell sends to end point cell are first inputted described output First Input First Output by described network controller, then by described network controller from the output of described output First Input First Output to the cell adjacent with described starting point cell;If the arbitrary cell in described cellular array receives the data of data that flanking cell sends or transfer, then the data received are inputted described input First Input First Output, and again these data are inputted described output First Input First Output when the data judging to receive need to carry out transfer.
In addition, if described network controller judges that described input First Input First Output or output First Input First Output are empty or full, or receive flanking cell and send or the data of transfer, or send data or interim data to flanking cell, then send interrupt signal to described microprocessor.
In the specific implementation, described starting point cell or transfer cell can select described sending direction in the following way: if can form the communication path of straight line between described starting point cell or transfer cell and described end point cell, then described sending direction is the direction along described straight line to described end point cell by described starting point cell or transfer cell, otherwise described sending direction is to the direction of flanking cell to be selected by described starting point cell or transfer cell, described flanking cell to be selected is the cell among the cell adjacent with described starting point cell or transfer cell near described end point cell.Certainly, the quantity of described flanking cell to be selected is likely two, now then selects the less cell of the communication task exporting data in the two flanking cell to be selected as transfer cell.
In the present embodiment, described starting point cell or transfer cell be selected sending direction by the way, actually it is also assumed that be the path selection process of cell-cell communication in cellular array.Can consulting the cell that each rectangle in Fig. 8, Fig. 8 represents in cellular array, all cells shown in Fig. 8 is the part in whole cellular array, it is assumed that undertaken by the communication mode shown in Fig. 3 between flanking cell.
If A point represents a starting point cell, the end point cell that this starting point cell prepares to C point place sends data, owing to being clearly, between A point and C point, the communication path that straight line can be formed, then data are sent to the cell at the B point place being adjacent by the cell at A point place, in like manner, the cell at B point place is as transfer cell, continue on the direction interim data to C point place cell of the straight line between A point and C point, cell adjacent successively on the cell-cell communication path formed between A point with C point, the data that A point place cell sends repeatedly are forwarded, until being sent to C point place cell.
If D point represents another starting point cell, the end point cell that this starting point cell prepares to G point place sends data, owing to being clearly, between D point and G point, the communication path that straight line cannot be formed, then among the cell adjacent with D point place cell, the cell at E point place and the cell at F point place are obviously closer to the end point cell at G point place, then the two cell belongs to the flanking cell to be selected of D point place cell, the less cell of the communication task wherein exporting data can be selected as transfer cell, if the communication task of the two cell output data is identical, then choose at random a cell as transfer cell.As shown in Figure 8, select cell or the cell at F point place at E point place, different cell-cell communication paths will be formed.
It should be noted that, the present embodiment is for the communication mode between the flanking cell shown in Fig. 3, the Path selection of cell-cell communication is illustrated, what skilled artisans appreciate that is, if the communication mode between the flanking cell shown in employing Fig. 4, then alternative sending direction will be more.
To sum up, when reality is implemented, each sends or the cell of interim data, and its network controller all must select an adjacent cell as the next stop.When beginning and end point-blank time, reasonably select general only one of which;In other situations, there are two same reasonably selection, the neighbours that network controller will select a traffic not relatively to be in a hurry.
If certain input fifo queue has data to enter, then network controller will first check for it:
If terminal is this cell, so: if terminal is specific relative address, owing to network controller has direct memory access (DMA, DirectMemoryAccess) ability, the appropriate address data received being directly stored in described non-volatile random access memory, and use interrupt notification MPU;If terminal is MPU, then directly notify MPU process by interrupt signal.
If terminal is other cells, or the MPU of this cell sends out data, then: if terminal is with this cell point-blank, then selects to be correctly oriented, send data to flanking cell;In other situations, there are two possible directions, select the flanking cell that wherein output fifo queue is more idle to send, if the situation of the output fifo queue in two flanking cells to be selected is identical, then can therefrom choose at random a flanking cell and send.
When reality is implemented, when the thousands of MPU existed in described cellular array calculate together, how the output data of each cell being sent to described master cpu just becomes a problem.In general, each MPU can leave output data in the agreed address in the non-volatile random access memory of its place cell, allows master cpu be read out by the mode of each MPU of poll one by one.But, this is not particularly suited for all problems, in some problem, when in cellular array, only a few cell needs to export data to master cpu, then master cpu poll one by one each MPU efficiency is too low.
Therefore, the cellular array computing system that the embodiment of the present invention provides also includes: be additionally provided with at least one full-time output cell in described cellular array, described full-time output cell receives and stores other cells output data to described master cpu as end point cell, and notifies that described master cpu reads described output data with interrupt signal.
In the specific implementation, fifo queue can also be set in the non-volatile random access memory of described full-time output cell, other cells are stored in this fifo queue to all output data of described master cpu, this fifo queue should have enough memory spaces, all output data storing other cells to described master cpu of having the ability.
During actual enforcement, it is possible to select one or several cell as described full-time output cell in cellular array, generally can select in position and communicate cell more easily between master cpu.It is provided with interrupt line between described full-time output cell and described master cpu, described full-time output cell can send interrupt signal to master cpu, for instance the new fifo queue arranged in the output data of other cells, MRAM is full, FIFO sky etc. of arranging in MRAM.
Based on the above-mentioned cellular array computing system being provided with full-time output cell, the embodiment of the present invention also provides for the communication means in a kind of cellular array computing system, including: after described full-time output cell receives and stores other cells output data to described master cpu, the interrupt signal of reading of giving notice to described master cpu;Described master cpu, after receiving the interrupt signal that described notice reads, reads described output data from described full-time output cell.
When being embodied as, described output data can be sent to described full-time output cell by other cells in the following way described: described output data, as starting point cell, are sent to adjacent cell by the arbitrary cell in other cells described by selected sending direction;When the arbitrary cell in described cellular array receives the described output data that flanking cell sends, if judging, the ID of the end point cell indicated in described output data is consistent with the ID of this cell, the ID of the end point cell owing to indicating in described output data is the ID of described full-time output cell, show that this cell is described full-time output cell, then described output data are stored in the non-volatile random access memory of this cell, otherwise this cell is as transfer cell, gives the cell adjacent with this cell by described output data relay after selected sending direction.
Described output data are sent to the process of described full-time output cell by other cells described, described starting point cell or transfer cell can select described sending direction in the following way: if can form the communication path of straight line between described starting point cell or transfer cell and described full-time output cell, then described sending direction is the direction along described straight line to described full-time output cell by described starting point cell or transfer cell, otherwise described sending direction is to the direction of flanking cell to be selected by described starting point cell or transfer cell, described flanking cell to be selected is the cell among the cell adjacent with described starting point cell or transfer cell near described full-time output cell.
The implementation process of the sole duty output cell of the embodiment of the present invention can also consult Fig. 9.Fig. 9 illustrates master cpu, cellular array and cellular array bus, lattice one by one in cellular array represents cell one by one simply, wherein the cell (cell that namely bold box lattice represents) at J point place is sole duty output cell, Fig. 9 further illustrates the structure of full-time output cell, in Fig. 9 shown in dotted arrow, it will be seen that the full-time MRAM exported in cell is provided with the fifo queue storing other cells to all output data of described master cpu.
Assume that the cell at H point place and the cell at I point place need to provide output data to master cpu, described output data are sent the cell to J point place by the communication mode that then can pass through between cell, H point, to the cell-cell communication path of J point and I point to the cell-cell communication path of J point, refers to Fig. 9.Owing to cell-cell communication mode has a detailed description before this, repeat no more herein.
After the output data that the cell of cell or I point place that the cell at J point place receives H point place sends, then can send the interrupt signal of notice reading to master cpu, after master cpu receives the interrupt signal that this notice reads, just can pass through cellular array bus from the cell at J point place, read this output data.
By arranging full-time output cell in cellular array, receive and store other cells to the output data of master cpu using described full-time output cell as described end point cell, and in the way of interrupt signal, notify that described master cpu reads described output data, so can improve master cpu when only a few cell needs and exports data to master cpu and read the efficiency of output data.
Introduce an example applying above-mentioned cellular array computing system below again.
Speech recognition can be compared with the acoustical signal of known sound bank and input, and this comparison can be can also in frequency domain comparison in time domain comparison.When the words needing comparison gets more and more, such as, it is contemplated that different accents can arrive tens thousand of, if the computing capability only relying on a few CPU just seems not enough for Real-time speech recognition.
The cellular array computing system that the embodiment of the present invention provides then is especially suitable for solution problems.
For this, the embodiment of the present invention also provides for a kind of applying the method that above-mentioned cellular array computing system carries out comparing, including: described master cpu is broadcast to alignment programs in the non-volatile random access memory of each cell after selecting the cell in whole in described cellular array or a target area;The sample that described master cpu is responsible for comparison selected each cell is respectively written in the agreed address of each cell;Described master cpu broadcasting instructions give selected cell microprocessor, make each microprocessor complete initialize after etc. data to be compared to be entered;Described master cpu is broadcast to the microprocessor of selected cell data to be compared;The microprocessor of selected cell runs described alignment programs, the sample that the data to be compared received and this cell are responsible for comparison compares, if obtaining the comparative result that both are consistent, then use the communication means in above-mentioned cellular array computing system, described comparative result is sent extremely described full-time output cell as output data and reads for described master cpu.
When being embodied as, described data to be compared both can be speech data to be identified, it is also possible to is view data to be identified, it is also possible to is other data needing to compare.
When reality is implemented, each MPU constantly accepts speech data and compares, under normal circumstances, hundreds of is in several thousand cells, only one of which or a few obtain data to be compared and be responsible for the comparative result that the sample of comparison is consistent with this cell, these cells are sent to full-time output cell comparative result, by interrupt signal, the latter notifies that master cpu receives.
If described data to be compared are specially speech data, then the process of comparing can carry out in time domain or frequency domain, if the latter, first can be carried out fast Fourier transform (FFT by master cpu segmentation, FastFourierTransformation), then broadcast have been converted to frequency domain speech data give selected cell MPU.
Comparing is carried out by applying the above-mentioned cellular array computing system being provided with full-time output cell, substantial amounts of cell in cellular array can be made to compare the computing of program simultaneously, thus there is extremely strong parallel processing capability, solve the communication performance bottleneck problem between CPU and internal memory in prior art, make the ability of real-time voice/image recognition be greatly improved.
As it was previously stated, certain target area from a cell mass photos and sending messages to cellular array, there is a simple method: read information by master cpu and broadcast again.The present embodiment also provides for another implementation: intercellular point communications functionality is extended to region mass-sending, and this mode can support the higher depth of parallelism, much higher total bandwidth.
In the cellular array computing system that the present embodiment provides, arbitrary cell in described cellular array can also carry out mass-sending communication as described starting point cell to all cells in target area, participate in the described cell communicating and being positioned at target area of mass-sending as described starting point cell or as described end point cell or simultaneously as described transfer cell and end point cell, participate in the described cell communicated and be positioned at outside target area of mass-sending as described starting point cell or transfer cell.
When being embodied as, the network controller being connected with microprocessor in each cell, except carrying out cell-cell communication at any two cell, but also when described mass-sending communication, the data sent, the data of transfer or the data of final reception are carried out transmitting-receiving control, and described network controller is additionally operable to send interrupt signal to described microprocessor.
When reality is implemented, the original sender (as the cell of starting point cell in cellular array) of iuntercellular mass-sending communication is responsible for indicating target area, completes the mass-sending of data still through a series of transfers.What skilled artisans appreciate that is, iuntercellular mass-sending communication is it is also assumed that be repeatedly effective superposition of intercellular point-to-point communication, therefore being embodied as that iuntercellular mass-sending communicates can also with reference to the enforcement communicated between any two cell, such as, equally possible a group or more First Input First Output including being connected with described network controller of cell in the described cellular array mentioned before this, repeats no more herein.
Support on the basis of iuntercellular mass-sending communication at above-mentioned cellular array computing system, the embodiment of the present invention also provides for iuntercellular mass-sending communication means in a kind of above-mentioned cellular array computing system, including: when the arbitrary cell in cellular array initiates mass-sending communication as starting point cell to all cells in target area, if this starting point cell is positioned at this target area, iuntercellular is then mass-sended data send to all flanking cells being positioned at this target area, and update target area for each flanking cell, otherwise by the direction near target area, described iuntercellular is mass-sended data to send to adjacent cell;If the cell being positioned at outside target area receives the described iuntercellular mass-sending data that flanking cell sends, after the target area then indicated in judging described iuntercellular mass-sending data does not comprise this cell, described iuntercellular, as transfer cell, is mass-sended data relay to flanking cell by the direction near target area by this cell;If the cell being positioned at target area receives the described iuntercellular mass-sending data that flanking cell sends, after the target area then indicated in judging described iuntercellular mass-sending data comprises this cell, this cell is as end point cell, the described iuntercellular received is mass-sended data and is stored in the non-volatile random access memory of this cell, or notify that described iuntercellular is mass-sended data and processed by the microprocessor of this cell, if yet suffering from the cell adjacent with this cell in target area, then this cell is also as transfer cell, the described iuntercellular received is mass-sended data relay to all flanking cells being positioned at target area, and update target area for each flanking cell;Target area after renewal includes one or more target areas divided by the target area before updating, send in target area before renewal or each flanking cell of cell of iuntercellular mass-sending data described in transfer is contained in each target area after renewal respectively, sent or the cell of iuntercellular mass-sending data described in transfer is got rid of outside target area in the updated.
It should be noted that, the data of certain cell can also be broadcast to certain target area in cellular array due to master cpu, in order to otherwise varied with " broadcast data of master cpu ", mass-sending data involved when therefore iuntercellular mass-sending being communicated in the present embodiment are called " iuntercellular mass-sending data ".Initiate the cell meeting hard objectives region of iuntercellular mass-sending communication, in this target area, the scope of the ID or all cells ID of all cells will be indicated and mass-send among data at described iuntercellular, arbitrary cell receives described iuntercellular mass-sending data, just can mass-send, according to described iuntercellular, the target area indicated in data and judge that this iuntercellular mass-sending data are finally received by this cell, or need to be given in further other flanking cells, or both all need execution.
In addition, described for each flanking cell renewal target area, it is specifically one or more target areas (having sent or outside the cell of iuntercellular mass-sending data has been excluded target area in the updated described in transfer) that the target area before updating is divided, wherein each target area can each self-contained described flanking cell (namely with update before target area in send or the adjacent cell of cell of iuntercellular mass-sending data described in transfer), each flanking cell described proceeds intercellular mass-sending communication in target area after each corresponding renewal, correspondingly, the target area indicated in described iuntercellular mass-sending data equally also can be updated.
In the present embodiment, with communication mode between flanking cell shown in Fig. 3, and the rectangle that is shaped as of the determined target area of starting point cell to initiate mass-sending communication illustrates.It should be noted that, comparatively convenient and efficient mode when iuntercellular mass-sending communication mode given by the present embodiment is actual enforcement, skilled artisans appreciate that, in other embodiments, in above-mentioned cellular array computing system, iuntercellular mass-sending communication means can be suitably used for communication mode or the target area of other shapes between other flanking cells equally.
When being embodied as, as the difference of the cell present position of starting point cell or transfer cell, send or the mode of transfer is by different.
When the first cell as starting point cell or transfer cell is positioned on the angle of rectangular target areas, if the cell quantity all containing the wherein one side on the adjacent both sides of described first cell in described rectangular target areas is 1, target area after then updating is the rectangular area formed after the described rectangular target areas another side on described adjacent both sides gets rid of described first cell, target area after otherwise updating includes the target area of two rectangles, and one of them target area is the rectangular area that in described adjacent both sides, any side is formed after getting rid of described first cell.It should be noted that the general designation of the class cell that is on the angle of rectangular target areas of described first cell in the present embodiment.
Figure 10 can be consulted, assume the starting point cell that cell is initiation iuntercellular mass-sending communication at K point place, or for being responsible for the transfer cell of transfer iuntercellular mass-sending data, the cell that rectangular target areas 101 is K point place sends or determined target area before iuntercellular mass-sending data described in transfer, now the cell at K point place is in rectangular target areas 101, and it is positioned on the angle of rectangular target areas 101, owing to rectangular target areas 101 this edge in the horizontal direction only comprises 1 cell, now the cell only one of which neighbours at K point place can be chosen as next stop transfer, so described iuntercellular is mass-sended data and is sent to the cell at L point place by the network controller of this cell, and rectangular target areas 101 is updated, the target area formed after renewal is rectangular target areas 102, be equivalent to get rid of outside rectangular target areas 101 cell at K point place;Along with the continuous renewal of target area, if last cell remaining in target area, then stop transfer.
Assume that the cell at M point place is also for initiating the starting point cell of iuntercellular mass-sending communication, or for being responsible for the transfer cell of transfer iuntercellular mass-sending data, the cell that rectangular target areas 103 is M point place sends or determined target area before iuntercellular mass-sending data described in transfer, now the cell at M point place is in rectangular target areas 103, and it is positioned on the angle of rectangular target areas 103, owing to the adjacent both sides of rectangular target areas 103 all comprise the cell of more than 1, now the cell at M point place has two neighbours can be chosen as next stop transfer, so described iuntercellular is mass-sended data and is sent to the cell at N point place and the cell at O point place by the network controller of this cell, and rectangular target areas 103 is updated, target area after renewal includes the target area of two rectangles, one of them target area is rectangular target areas 104, another target area is rectangular target areas 105, be equivalent to get rid of outside rectangular target areas 103 cell at M point place, rectangular target areas 104 and rectangular target areas 105 can continue to carry out data relay with aforementioned similar approach as independent target area;Along with the continuous renewal of target area, if last cell remaining in target area, then stop transfer.
When the second cell as starting point cell or transfer cell is positioned on the limit of rectangular target areas, if the cell quantity on limit adjacent with described second limit, cell place in described rectangular target areas is 1, target area after then updating includes the target area of two rectangles formed after described second cell is got rid of on described second limit, cell place, target area after otherwise updating includes the target area of three rectangles, and two of which target area is two rectangular areas formed after described second cell is got rid of on described second limit, cell place.It should be noted that the general designation of the class cell that is on the limit of rectangular target areas of described second cell in the present embodiment.
Figure 11 can be consulted, assume the starting point cell that cell is initiation iuntercellular mass-sending communication at P point place, or for being responsible for the transfer cell of transfer iuntercellular mass-sending data, the cell that rectangular target areas 111 is P point place sends or determined target area before iuntercellular mass-sending data described in transfer, now the cell at P point place is in rectangular target areas 111, and it is positioned on certain limit of rectangular target areas 111, owing to the cell quantity on limit adjacent with the limit, cell place at P point place in rectangular target areas 111 is more than 1, then now the cell at P point place has three neighbours can be chosen as next stop transfer, described iuntercellular is mass-sended data and is separately sent to the cell at Q point place by the network controller of this cell, the cell at R point place and the cell at S point place, and rectangular target areas 111 is updated, target area after renewal includes the target area of three rectangles, respectively rectangular target areas 112, rectangular target areas 113 and rectangular target areas 114, be equivalent to get rid of outside rectangular target areas 111 cell at P point place, rectangular target areas 112 and rectangular target areas 113 the two target area are the equal of two rectangular areas formed after the cell at the eliminating P point place, limit, cell place at P point place, rectangular target areas 112, rectangular target areas 113 and rectangular target areas 114 can continue to carry out data relay with aforementioned similar approach as independent target area;Along with the continuous renewal of target area, if last cell remaining in target area, then stop transfer.
It is understandable that, if the cell quantity on the limit that target area is adjacent with the limit, cell place at P point place in (not indicating in Figure 11) is 1, then now the cell at P point place has two neighbours can be chosen as next stop transfer, described iuntercellular is mass-sended data and is separately sent to the cell at Q point place and the cell at R point place by the network controller of this cell, and target area is updated, target area after renewal includes the target area of two rectangles, is specially rectangular target areas 112 and rectangular target areas 113.
When the 3rd cell as starting point cell is positioned at the inside of rectangular target areas, target area after renewal includes the target area of four rectangles, two of which target area is two rectangular areas formed after described 3rd cell place row or column gets rid of described 3rd cell, and the described rectangular target areas that two other target area is before updating is split, by described 3rd cell place row or column, two rectangular areas formed.It should be noted that described 3rd cell in the present embodiment is in the general designation of a class cell of the inside of rectangular target areas, the inside of described rectangular target areas refers to the region except " angle " and " limit ".
Figure 12 can be consulted, assume the starting point cell that cell is initiation iuntercellular mass-sending communication (in the present embodiment, the cell at T point place can not be responsible for transfer iuntercellular to mass-send the transfer cell of data) at T point place, the cell that rectangular target areas 121 is T point place send described iuntercellular mass-sending data before determined target area, now the cell at T point place is positioned at the inside of rectangular target areas 121, the cell at T point place has four neighbours can be chosen as next stop transfer, described iuntercellular is mass-sended data and is separately sent to the cell at U point place by the network controller of this cell, the cell at V point place, the cell at W point place and the cell at X point place, and rectangular target areas 121 is updated, target area after renewal includes the target area of four rectangles, respectively rectangular target areas 122, rectangular target areas 123, rectangular target areas 124 and rectangular target areas 125, be equivalent to get rid of outside rectangular target areas 121 cell at T point place, rectangular target areas 122 and rectangular target areas 123 the two target area are the equal of that the cell at T point place is expert at two rectangular areas of formation after the cell getting rid of T point place, rectangular target areas 124 and rectangular target areas 125 the two target area are the equal of rectangular target areas 121 is expert at segmentation by the cell at T point place and two rectangular areas being formed, rectangular target areas 122, rectangular target areas 123, rectangular target areas 124 and rectangular target areas 125 can continue to carry out data relay with aforementioned similar approach as independent target area;Along with the continuous renewal of target area, if last cell remaining in target area, then stop transfer.
In the present embodiment, when the 4th cell as starting point cell or transfer cell is positioned at outside target area, if the communication path of straight line can be formed in described 4th cell and target area between arbitrary cell, then described 4th cell send or described in transfer iuntercellular mass-sending data sending direction be along described straight line to the direction of target area by described 4th cell, otherwise described sending direction is to the direction of flanking cell to be selected by described 4th cell, and described flanking cell to be selected is the cell among the cell adjacent with described 4th cell near target area.It should be noted that described 4th cell in the present embodiment is in the general designation of the class cell outside rectangular target areas.
Figure 13 can be consulted, assume the starting point cell that cell is initiation iuntercellular mass-sending communication at Y1 point place, the cell that rectangular target areas 131 is Y1 point place send described iuntercellular mass-sending data before determined target area, now the cell at Y1 point place is outside rectangular target areas 131, owing to this cell is between the extended line on relative two limits of rectangular target areas, and the communication path of straight line can be formed in rectangular target areas between the cell of Y3 point place, now only one of which neighbours can as the transfer of the next stop, the network controller of the cell at Y1 point place is mass-sended data described iuntercellular and is sent to these neighbours, the i.e. cell at Y2 point place, the cell at Y2 point place is as the transfer cell of iuntercellular mass-sending data described in responsible transfer.The cell at Y2 point place is by along the direction interim data shown in dotted arrow in Figure 13, until being sent to Y3 point place cell.Y3 point place cell is positioned on the limit of rectangular target areas 131, it is possible to continued the transfer process in rectangular target areas 131 according to aforementioned correlation technique.
With continued reference to Figure 13, assume the starting point cell that cell is initiation iuntercellular mass-sending communication at Z1 point place, the cell that rectangular target areas 131 is Z1 point place send described iuntercellular mass-sending data before determined target area, now the cell at Z1 point place is outside rectangular target areas 131, due to this cell not between the extended line on relative two limits of rectangular target areas, and all it is difficult to be formed the communication path of straight line in rectangular target areas between arbitrary cell, now there are two neighbours can as the transfer of the next stop, the i.e. cell at the cell at Z2 point place and Z3 point place, the two cell is the flanking cell to be selected of the cell at Z1 point place, because closer to the cell of rectangular target areas 131 among the cell that the cell that the two cell is Z1 point place is adjacent.When reality is implemented, it is possible to arbitrarily select one or practical communication situation selects burden lighter more cell as next stop transfer, the cell that described burden is lighter refers specifically to the cell that the communication task of output data is less.From the cell at Z1 point place, by two feasible transfer communication paths, until by described iuntercellular mass-sending data relay to Z4 point place cell.Z4 point place cell is positioned on the angle of rectangular target areas 131, it is possible to continued the transfer process in rectangular target areas 131 according to aforementioned correlation technique.
Iuntercellular mass-sending communication means in the cellular array computing system that the present embodiment provides, by intercellular point communications functionality being expanded to region mass-sending, the higher depth of parallelism can be supported, it is thus achieved that much higher total bandwidth, thus promoting the overall performance of computing system further.
As previously mentioned, cell in the cellular array of the embodiment of the present invention has internal memory concurrently, storage and three functions of calculating, intracellular described non-volatile random access memory can realize the random access memory of involved data when described microprocessor calculates, the instruction code of software can be stored again and need the data of persistence, but the cost of described non-volatile random access memory is usually higher, so the space that the non-volatile random access memory in cell is used as memory part is limited, so when in cell, the data processing amount of microprocessor is bigger, limited memory headroom is just likely to affect the treatment effeciency of microprocessor, the memory headroom how extending cell just becomes problem demanding prompt solution.
Based on above-mentioned consideration, the embodiment of the present invention gives the another kind of structure of cellular array computing system, as shown in figure 14, described cellular array computing system is except including foregoing master cpu, cellular array and cellular array bus, can further include at least one memory cell array, the two-dimensional array that described memory cell array is made up of more than one internal storage location, described cellular array and all memory cell array are built up three dimensional structure, internal storage location in each memory cell array is connected correspondingly with the cell in described cellular array, described internal storage location coordinates described non-volatile random access memory, both are provided commonly for the random access memory of involved data when described microprocessor calculates.
When reality is implemented, non-volatile random access memory in cell can be MRAM, described memory cell array can be then MRAM, DRAM or sram chip, generally can choose lower-cost one or more dram chip, wherein each dram chip is the memory cell array formed by the internal storage location consistent with each cell position in described cellular array, again all dram chips and a cellular array chip are carried out 3D combination, can be established a communications link by TSV between the cell that either memory unit is corresponding with cellular array, thus extend the internal memory of each cell.
In the embodiment of the present invention, by by least one memory cell array being made up of more than one internal storage location, it is built up three dimensional structure with described cellular array, and make the internal storage location in each memory cell array be connected correspondingly with the cell in cellular array, the random access memory of involved data when described internal storage location calculates for described microprocessor, so just with the memory headroom of each cell in relatively low cost extension cellular array, the treatment effeciency of microprocessor in cell can be improved.
It is to be noted, illustrate only a memory cell array and described cellular array in Figure 14 and be built up the situation of three dimensional structure, those skilled in the art will also appreciate that more than one memory cell array and described cellular array are built up the situation of three dimensional structure equally.
Those skilled in the art it is also understood that be, the communication that aforementioned master cpu is communicated by cellular array bus cell each with cellular array, carry out not against master cpu between any two cell, arbitrary cell carry out mass-sending to all cells in target area and communicates, receive as end point cell and store other cells to the output data of master cpu for the communication means such as master cpu reading, these cellular array computing systems being equally applicable to comprise described memory cell array by arranging the full-time cell that exports in cellular array.
It should be noted that, the memory headroom due to each Cell expansions in cellular array, described master cpu is except accessing the non-volatile random access memory of this cell, the internal storage location corresponding with this cell can also be accessed (when being superimposed as the quantity of memory cell array of three dimensional structure with cellular array and being more than one, the quantity of then corresponding with this cell internal storage location also has more than one), therefore at least one that described master cpu includes in situations below by the communication that described cellular array bus carries out with each cell in described cellular array: read and write the non-volatile random access memory of arbitrary cell in described cellular array or corresponding internal storage location by address;The non-volatile random access memory being broadcast in target area by data each cell or corresponding internal storage location, and write the non-volatile random access memory of each cell this target area in or relative address identical in internal storage location accordingly;Send instruction to the microprocessor of cell arbitrary in described cellular array, send data or reading state;To the microprocessor broadcasting instructions of all cells in target area.
When also including bus control unit and cell interior bus when the cell in described cellular array, described cell interior bus is except connecting described microprocessor, non-volatile random access memory, also corresponding with this cell internal storage location is connected, described bus control unit and described cellular array bus, microprocessor and cell interior bus are connected, described bus control unit is for identifying the communication carried out between described master cpu and this cell, connect described microprocessor to transmit instruction or the data of the transmission of described master cpu, state reads, or the read-write operation of data is carried out by the described cell interior bus described non-volatile random access memory of connection or the internal storage location corresponding with this cell.
Although present disclosure is as above, but the present invention is not limited to this.Any those skilled in the art, without departing from the spirit and scope of the present invention, all can make various changes or modifications, and therefore protection scope of the present invention should be as the criterion with claim limited range.
Claims (10)
1. a cellular array computing system, it is characterised in that including: master cpu, cellular array, cellular array bus and at least one memory cell array;
The two-dimensional array that described cellular array is made up of the more than one cell having calculating and storage function concurrently, each of which cell includes microprocessor and non-volatile random access memory;The random access memory of involved data when described non-volatile random access memory calculates for described microprocessor, is additionally operable to the instruction code of storage software and needs the data of persistence;
The two-dimensional array that described memory cell array is made up of more than one internal storage location, described cellular array and all memory cell array are built up three dimensional structure, and the internal storage location in each memory cell array is connected correspondingly with the cell in described cellular array;The random access memory of involved data when described internal storage location calculates for described microprocessor;
Position in the described cellular array of each leisure of each cell storage is read for the software in cell or hardware as ID;
Described master cpu is communicated with each cell in described cellular array by described cellular array bus;
There is communication interface between flanking cell in described cellular array, can mutually send data.
2. cellular array computing system according to claim 1, it is characterised in that at least one that the communication that described master cpu is undertaken by described cellular array bus and each cell in described cellular array includes in situations below:
The non-volatile random access memory of arbitrary cell in described cellular array or corresponding internal storage location is read and write by address;
The non-volatile random access memory being broadcast in target area by data each cell or corresponding internal storage location, and write the non-volatile random access memory of each cell this target area in or relative address identical in internal storage location accordingly;
Send instruction to the microprocessor of cell arbitrary in described cellular array, send data or reading state;
To the microprocessor broadcasting instructions of all cells in target area.
3. cellular array computing system according to claim 1, it is characterized in that, cell in described cellular array also includes bus control unit and cell interior bus, described cell interior bus connects described microprocessor, non-volatile random access memory and the internal storage location corresponding with this cell, described bus control unit and described cellular array bus, microprocessor and cell interior bus are connected, described bus control unit is for identifying the communication carried out between described master cpu and this cell, connect described microprocessor to transmit instruction or the data of the transmission of described master cpu, state reads, or the read-write operation of data is carried out by the described cell interior bus described non-volatile random access memory of connection or the internal storage location corresponding with this cell.
4. cellular array computing system according to claim 1, it is characterized in that, can communicate between any two cell in described cellular array, the cell participating in cell-cell communication comprises starting point cell, end point cell and transfer cell, described starting point cell is the cell sending data to described end point cell, described end point cell is the final cell receiving described the sent out data of starting point cell, described transfer cell is adjacent successively along cell-cell communication path and by the sent out data of starting point cell described in described communication interface transfer cells, described cell-cell communication path is by described starting point cell, the data transmit-receive path that transfer cell and end point cell are constituted.
5. cellular array computing system according to claim 4, it is characterized in that, arbitrary cell in described cellular array can also carry out mass-sending communication as described starting point cell to all cells in target area, participate in the described cell communicating and being positioned at target area of mass-sending as described starting point cell or as described end point cell or simultaneously as described transfer cell and end point cell, participate in the described cell communicated and be positioned at outside target area of mass-sending as described starting point cell or transfer cell.
6. the cellular array computing system according to claim 4 or 5, it is characterized in that, described cellular array is additionally provided with at least one full-time output cell, described full-time output cell receives and stores other cells output data to described master cpu as described end point cell, and notifies that described master cpu reads described output data with interrupt signal.
7. the cellular array computing system according to claim 4 or 5, it is characterized in that, cell in described cellular array also includes the network controller being connected with described microprocessor, described network controller is for when carrying out cell-cell communication, the data sent, the data of transfer or the data of final reception are carried out transmitting-receiving control, is additionally operable to send interrupt signal to described microprocessor.
8. cellular array computing system according to claim 7, it is characterized in that, cell in described cellular array also includes a group or more First Input First Output being connected with described network controller, each group First Input First Output corresponding cell adjacent with this cell respectively, each group of First Input First Output includes input First Input First Output and output First Input First Output, described input First Input First Output inputs the data that this cell carries out transfer or the data finally received for storing, the described output First Input First Output data for storing the need exported from this cell and carry out the data of transfer or this cell sending to other cells.
9. cellular array computing system according to claim 1, it is characterised in that passed through silicon through hole between the cell that described internal storage location is corresponding with described cellular array and establish a communications link.
10. cellular array computing system according to claim 1, it is characterised in that described non-volatile random access memory is MRAM, described memory cell array is MRAM, DRAM or sram chip.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456225.2A CN105718991B (en) | 2015-07-29 | 2015-07-29 | Cellular array computing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456225.2A CN105718991B (en) | 2015-07-29 | 2015-07-29 | Cellular array computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718991A true CN105718991A (en) | 2016-06-29 |
CN105718991B CN105718991B (en) | 2019-02-19 |
Family
ID=56144856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510456225.2A Active CN105718991B (en) | 2015-07-29 | 2015-07-29 | Cellular array computing system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718991B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951955A (en) * | 2017-03-09 | 2017-07-14 | 中国人民解放军军械工程学院 | Electronic cell number system of selection in bus embryo's electronic cell array |
CN108256622A (en) * | 2016-12-28 | 2018-07-06 | 上海磁宇信息科技有限公司 | A kind of cellular array computing system |
WO2020135385A1 (en) * | 2018-12-29 | 2020-07-02 | 上海寒武纪信息科技有限公司 | General machine learning model, and model file generation and parsing method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (en) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | High-speed processor system, method of using the same, and recording medium |
CN101354694A (en) * | 2007-07-26 | 2009-01-28 | 上海红神信息技术有限公司 | Ultra-high expanding super computing system based on MPU structure |
CN103019656A (en) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | Dynamically reconfigurable multi-stage parallel single instruction multiple data array processing system |
CN104701309A (en) * | 2015-03-24 | 2015-06-10 | 上海新储集成电路有限公司 | Three-dimensional stacked nerve cell device and preparation method thereof |
-
2015
- 2015-07-29 CN CN201510456225.2A patent/CN105718991B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (en) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | High-speed processor system, method of using the same, and recording medium |
CN101354694A (en) * | 2007-07-26 | 2009-01-28 | 上海红神信息技术有限公司 | Ultra-high expanding super computing system based on MPU structure |
US20090094436A1 (en) * | 2007-07-26 | 2009-04-09 | Yuefan Deng | Ultra-scalable supercomputer based on mpu architecture |
CN103019656A (en) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | Dynamically reconfigurable multi-stage parallel single instruction multiple data array processing system |
CN104701309A (en) * | 2015-03-24 | 2015-06-10 | 上海新储集成电路有限公司 | Three-dimensional stacked nerve cell device and preparation method thereof |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256622A (en) * | 2016-12-28 | 2018-07-06 | 上海磁宇信息科技有限公司 | A kind of cellular array computing system |
CN106951955A (en) * | 2017-03-09 | 2017-07-14 | 中国人民解放军军械工程学院 | Electronic cell number system of selection in bus embryo's electronic cell array |
CN106951955B (en) * | 2017-03-09 | 2019-12-17 | 中国人民解放军军械工程学院 | Method for selecting electronic cell number in bus embryo electronic cell array |
WO2020135385A1 (en) * | 2018-12-29 | 2020-07-02 | 上海寒武纪信息科技有限公司 | General machine learning model, and model file generation and parsing method |
Also Published As
Publication number | Publication date |
---|---|
CN105718991B (en) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718994A (en) | Cell array calculation system | |
CN105740946A (en) | Method for realizing neural network calculation by using cell array computing system | |
CN105718996A (en) | Cell array calculation system and communication method wherein | |
CN102906726B (en) | Association process accelerated method, Apparatus and system | |
CN105608490A (en) | Cellular array computing system and communication method thereof | |
CN109785905B (en) | Accelerating device for gene comparison algorithm | |
US11294599B1 (en) | Registers for restricted memory | |
CN105718392A (en) | Cell array file storage system as well as file storage device thereof and file storage method therefor | |
CN111488114B (en) | Reconfigurable processor architecture and computing device | |
CN105718991A (en) | Cell array calculation system | |
CN110059797B (en) | Computing device and related product | |
CN105718990A (en) | Cell array calculation system and communication method between cells | |
CN105718380A (en) | Cell array calculation system | |
CN105718379A (en) | Cell array calculation system and group-sending communication method among cells thereof | |
CN105718993A (en) | Cell array calculation system and communication method therein | |
US10996865B2 (en) | Application-specific memory scaling in multi-device systems | |
CN105718992A (en) | Cell array calculation system | |
CN105719228A (en) | Camera system and image identification system | |
CN105719227A (en) | Camera system and an image identification system | |
CN105718995A (en) | Cell array calculation system and debugging method thereof | |
CN107291209A (en) | Cellular array computing system | |
CN104951406B (en) | A kind of paging type address space menagement method and controller | |
US20210373790A1 (en) | Inference in memory | |
CN111078624B (en) | Network-on-chip processing system and network-on-chip data processing method | |
CN107341129A (en) | Cellular array computing system and its method of testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |