`
`Europaisches Patentamt
`
`European PatentOflfce _
`Office européen des brevets
`
`.
`
`.
`
`'® Publicationnumberaf'
`.
`
`O 071 727
`A1
`
`@
`
`EUROPEAN PATENT APPLICATION
`
`I.
`
`@ Application number;821osms
`
`@ lnt.Cl.’: G 06 F 15/06
`
`® Date offiling:23.06.82
`
`® Priority: 24.07.81 us 286426
`24.07.01 US 288424
`24.07.81 US 286425
`
`.
`@ Date of publication of application: 16.02.83
`Bulletin 83/7
`
`® Designated Contracting States: DE FR es NL
`
`® Restructurable integrated circuit.
`
`@ A restructurable integrated circuit. including four 16-bit
`processors PRO, PR1, PR2, PR3. data and control memories
`68 and 78, and external interfaces 72, 73, 74. 75, 76 all
`mounted on a chip. The processors include reconfigurable
`connections through a status bus 52. microprogramming
`capability with dynamic logic array interpretation, and a
`multi-level flexible Interrupt management system, so that
`the processors PRO-PR3 may be reconfigured program-
`mably to operate independently, in lockstep. or as pipelined
`F processors. All processors PRO-PR3 are connected to data,
`control, and status buses 56, 14, and 52. In addition. exter-
`nal control. data. and status interfaces 72—76 are also
`h provided, connected through the respective corresponding
`busses 56. 14. and 52 to each of the processors PRO-PR3.
`N These external interfaces are connected to all of the inter-
`h connections which permit
`reconfigurability among the
`processors on a chip. and these external interfaces permit
`F coordination of the processors on more than one RIC chip.
`
`EP007
`
`® Applicant: TEXAS INSTRUMENTS INCORPORATED,
`13500 North Central Expressway. Dallas
`Texas 75265 (08)
`
`® Inventor: Budzlnsld, Robert L. 1106 Edgewood Drive.
`Richardson Texas 75081 (US)
`Inventor: Thatte. Satieh M., 1304 Elk Grove, Richardson
`Texas 75081 (US)
`
`® Representative: Lelser, Gottfried, DlpL-lng. et ai,
`Patentanwilte Prinz. Bunke a: Partner Emsberger
`Strasse 19, 0.8000 Mllnchen so (as)
`
`
`
`"
`
`couraouron: “nun
`
`IAIAGII
`
`INTKIRUPT
`MANAGE-
`SCHEDULE!
`
`nu g
`
`EXTEIIAL
`EIIEII‘L
`STATUS
`I sure:
`
`roar
`
`
`(XTEIIIL
`- INTERIUH‘
`
`
`
`EXTERNAL I
`- DATAPOIT
`72
`
`IAI IEIOIY
`
`
`
`
`ACTORUM AG
`
`INTEL - 1006
`
`INTEL - 1006
`
`
`
`n.
`
`d
`
`RESTRUCTURABLE INTEGRATED CIRCUIT
`
`0071727
`
`SPECIFICATION
`
`Background of the Invention
`
`5
`
`This invention relates to a restructurable integrated
`
`circuit which includes multiple 16—bit processors all
`
`accessing a common memory, with the interconnections
`
`between the processors being alterable in software so that
`
`the restructurable IC may be operated in a variety of
`
`10
`
`different computing configurations.
`
`A major difficulty in taking advantage of
`
`the
`
`possible economies offered by VLSI
`
`technology is that few
`
`prOSpective VLSI parts can be produced in sufficient
`
`quantity to bring the price down to an attractive level.
`
`15
`
`In particular, since many applications impose their own
`
`particular constraints on processor function, special
`
`processors for such applications have been custom—
`
`designed, at a necessarily high cost.
`
`It is a particular object of the present invention to
`
`20
`
`satisfy the peculiar processing requirements of many
`
`different applications by one common IC chip design, which
`
`can therefore be manufactured in large quantities
`
`economically.
`
`In addition to a main processor,
`
`it is often
`
`1)
`
`25
`
`advantageous to use a dedicated processor for controlling
`
`for memory
`I/O functions (such as CRT display),
`management, or for specialized arithmetic processing.
`
`However, as noted above,
`
`the high cost of custom VLSI
`
`design has prevented optimal exploitation of
`
`the
`
`30
`
`advantages provided by such dedicated processors.
`
`It is a further object of the present
`
`invention to
`
`provide means for easily configuring a dedicated special-
`
`purpose processor by means of a unsPecialized common IC.
`
`It
`
`is often particularly advantageous,
`
`in
`
`35
`
`implementing such dedicated processors,
`
`to integrate them
`
`on a single chip with a general-purpose processor.
`
`~ However, such structures require further specialization of
`
`the design,
`
`and are therefore subject
`
`to cost
`
`disadvantages as discussed above.
`
`INTEL-1006
`
`INTEL - 1006
`
`
`
`
`
`
`
`
`
`-*
`
`2
`
`
`
`'
`
`0071727
`
`
`
`
`
`
`
`
`
`
`It is a further object of the present invention to
`
`
`
`
`
`
`
`permit integration of a general-purpose processor with one
`or more special-purpose processors on a single chip, by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`means of a general—purpose reconfigurable IC which can
`
`
`
`
`
`5 easily be'manufactured in quantity.
`7
`
`
`
`
`
`
`
`
`
`7 A further disadvantage of custom VLSI design is that,
`
`
`
`
`
`
`
`
`
`together with cost, yield, and reliability of the finished
`
`
`
`
`
`
`
`
`
`part normally improve as the manufacturing history of the
`
`
`
`
`
`
`
`
`part proceeds along the "learning curve". However, custom
`
`
`
`
`
`
`
`
`lospecial—purpose designs are normally not manufactured in
`
`
`
`
`
`
`
`
`
`
`
`large enough numbers over a large enough period of time to
`
`
`
`
`
`
`
`permit exploitation of the progressive improvement of
`
`
`
`cost and reliability.
`
`
`
`
`
`
`
`
`invention is
`A further object of the present
`
`
`
`
`
`
`
`
`
`
`
`15 therefore to provide a general purpose part which can be
`.7 manufactured in large quantity over a long period of time,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to permit exploitation of cost yield, and reliability
`
`
`
`
`
`
`
`improvements obtained by progress along the "learning
`curve".
`7
`
`
`20
`
`
`
`30
`
`
`
`
`
`
`
`
`
`
`
`they often have
`Expensive as custom VLSI designs are,
`
`
`
`
`
`
`
`
`the further disadvantage that the gate density is
`
`
`
`
`
`
`
`
`
`
`
`relatively low. This is because, for a part which will be
`
`
`
`
`
`
`
`
`
`to
`produced in small quantities, it is not economical
`Spend the additional time and money to optimize ther
`
`
`
`
`
`
`
`
`
`
`
`
`25 packing density.
`
`
`
`
`
`
`
`
`
`Thus, it is a further object of the present invention
`'
`
`
`
`
`
`
`
`
`
`to provide an integrated circuit which can satisfy the
`
`
`
`
`
`
`requirements of a custom integrated circuit while
`
`
`
`
`
`retaining a high gate density.
`
`
`
`
`
`
`
`
`
`Gate arrays provide an extremely flexible LSI or VLSI
`
`
`
`
`
`
`
`
`
`part, and gate arrays do satisfy some special functions
`
`
`
`
`
`
`
`
`
`
`
`(such as a high speed multiplier or a cross bar switch)
`
`
`
`
`
`
`
`
`efficiently. However, gate arrays are not very well
`
`
`
`
`
`
`
`
`adapted to supporting programmable systems, and the gate
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`35 density of a gate array is normally not as high as that of
`
`
`a processor.
`
`
`
`
`
`
`
`
`
`Thus, it is'a further object of the present invention
`
`
`
`
`
`
`
`
`
`to provide-a restructurable integrated circuit which has a
`
`
`
`
`
`
`
`
`
`
`higher gate density than a gate array, and is better
`
`
`
`INTEL-1006
`
`’5;
`
`(In
`
`(a:
`
`W:
`
`
`
`
`
`INTEL - 1006
`
`
`
`1|
`
`
`
`3
`
`
`
`'
`
`00717—27
`
`
`
`5
`
`10
`
`
`
`
`
`
`
`
`
`adapted to supporting a programmable system.
`
`
`
`
`
`
`
`Where relatively large and complicated systems must
`be mathematically modelled, it is frequently desirable to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`have a large array processor, where, even though the data
`
`
`
`
`
`
`
`
`throughput capacity of each processor is relatively low,
`
`
`
`
`
`
`
`
`
`
`‘the total data throughput is extremely high, due to the
`
`
`
`
`
`
`
`large degree of parallelism. However, such array
`
`
`
`
`
`
`
`
`processors have to date been relatively expensive, since
`
`
`
`
`
`
`
`they were usually constructed as special-purpose systems.
`
`
`
`
`
`
`
`
`Similarly, it is sometimes desirable to perform a
`
`
`
`
`
`
`
`
`long series of computations on an extremely wide
`
`
`
`
`
`
`
`multiple—precision word (e.g., where a complex orbital
`
`
`
`
`
`
`
`
`
`
`
`system must be modeled over a very long period of time.)
`
`
`
`
`
`
`
`
`
`In this case also, adaptation of existing systems has
`
`
`
`
`
`
`
`
`
`
`15 normally imposed disadvantages of high cost,
`low speed, or.
`
`
`both.
`
`
`25
`
`
`
`invention
`
`
`
`
`
`
`
`
`
`invention
`Thus, it is a further object of the present
`to provide a processor in an integrated circuit, such that
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a number of these integrated circuits can be combined to
`
`
`
`
`
`20 provide array processing and/or multiple—precision
`
`
`
`
`
`
`processing cheaply, without custom hardware design.
`
`
`
`
`
`
`
`A further crucial disadvantage of custom VLSI designs
`
`
`
`
`
`
`
`
`
`is that the design cycle time is unavoidably long, since
`
`
`
`
`
`
`
`redesign and testing of hardware is required.
`
`
`
`
`
`
`
`Thus, it is a further object of the present
`
`
`
`
`
`
`
`
`to provide an integrated circuit which can be reconfigured
`
`
`
`
`
`
`
`for custom applications solely by changes to software
`
`
`and/or firmware.
`Additional background references on multiple
`
`
`
`
`
`
`
`
`
`
`30 processing systems, dynamic architecture, and micro—
`
`
`
`
`
`
`processor architecture generally,
`include the following:
`
`
`
`
`
`
`
`Multiprocessors and Parallel Processing (ed. P. Enslow,
`Jr. 1974); A. Abd-Alla & A. Meltzer, Principles of. Digital
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Computer Design (1976); C. Mead & L. Conway, Introduction
`
`
`
`
`
`
`
`
`
`35 to VLSI Systems (1980); R. Krutz, Microprocessors and
`
`
`
`
`
`
`
`
`Logic Design (1980); G. Myers, Advances in Computer
`
`
`
`
`
`Architecture (1978); Baer, Multiprocessing Systems,
`
`
`
`
`
`
`
`
`25 IEEE Transactions on Computers 1271 (1976); Thurber &
`
`
`
`
`
`
`Wald, Associative and Parallel Processors,
`7 Computing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INTEL-1006
`
`INTEL - 1006
`
`
`
`4
`
`
`
`0071727
`
`
`
`
`
`
`
`
`
`
`
`Surveys 215 (1975); Kartashev & Kartashev, Dynamic
`
`
`
`
`
`
`
`Architectures: Eroblems and Solutions, Computer Magazine,
`
`
`
`
`
`
`
`
`July '78,
`26; Kartashev & Kartashev, A Multicomputer
`
`
`
`
`
`
`
`
`System with Dynamic Architecture, 28 IEEE Transactions on
`
`
`
`
`
`
`Computers 704 (1979); Kartashev & Kartashev, Super Systems
`
`
`
`
`
`
`
`
`
`
`
`for the 80's, Computer Magazine, November 1980, at ll; and
`
`
`
`
`
`
`
`Vick, Adaptable Architectures for Super Systems, Computer
`
`
`
`
`
`
`
`
`
`
`Magazine, November 1980 at 17; all of which are hereby
`
`
`
`.incorporated by reference.
`
`
`
`
`
`
`It is often advantageous, particularly where
`
`
`
`
`
`
`
`
`
`unsophisticated users are involved,
`to design a very high
`
`
`
`
`
`
`
`
`
`level application language which is tailored to a specifier
`
`
`
`
`
`
`
`
`job. However, such application languages, if embodied in
`
`
`
`
`
`
`
`
`
`software, are normally very slow, and if embodied in
`
`
`
`
`
`hardware, are normally very expensive.
`
`
`
`
`
`
`
`
`
`
`It is thus a further object of the present invention
`
`
`
`
`
`
`
`to provide means for economically providing VLSI
`
`
`
`
`
`
`
`
`processors which are adapted to interpret any desired
`
`
`application language.
`
`
`
`
`
`
`
`The many advantages of multi—processor systems have
`
`
`
`
`
`
`
`seldom been efficiently exploited, partly because it has
`
`
`
`
`
`
`
`
`
`always been difficult to train programmers to adapt their
`
`
`
`
`
`
`
`
`
`programming so as to be optimal on a multi—processorr
`
`
`
`
`
`
`
`
`
`rather than a uniprocessor system. Thus, it is a further
`
`
`
`
`
`
`
`
`
`
`object of the present invention to provide a system which
`
`
`
`
`
`
`
`
`is easily reconfigurable between a multiprocessing and a
`
`
`
`
`
`
`
`uniprocessing system, so that programmers may gradually
`
`
`
`
`
`
`
`
`accustom themselves to the advantages and requirements of
`
`
`multiprocessor programming.
`
`
`
`
`
`
`
`A further difficulty with the exploitation of
`
`
`
`
`
`
`
`
`multiprocessing systems has been the problem of inflexible
`
`
`
`
`
`
`
`
`
`hardware structures.
`Since much of the behavor of a
`
`
`
`
`
`
`
`multiprocessor system is determined by its hardware
`
`
`
`
`
`
`
`
`structure, and since all hardware structures yet suggested
`
`
`
`
`
`
`
`
`
`
`
`
`appear to be optimized for one type of problem but not for
`
`
`
`
`
`
`
`
`another, no multiprocessor hardware structure has yet been
`
`
`
`
`
`
`
`
`achieved which appears to be a truly general—purpose
`
`system.
`'
`Thus it is a further object of the present invention
`
`
`
`
`
`
`
`
`
`INTEL-1006
`
`10
`
`
`
`15
`
`
`
`20
`
`
`
`
`25
`
`3O
`
`
`
`
`. 35
`
`III
`
`
`
`.A...‘
`
`m:
`
`Illy
`
`ll"
`
`INTEL - 1006
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is
`
`then
`
`
`
`
`
`
`
`
`
`
`
`0071727
`5
`
`
`
`
`
`
`
`
`to provide a multi-processor hardware structure which is
`
`
`
`
`
`
`reconfigurable, and which thereby provides a truly
`
`
`
`
`general—purpose multiprocessor hardware structure.
`
`
`
`
`
`
`
`A further difficulty which has arisen in many
`
`
`
`
`
`
`
`5 multiprocessor systems is the problem of interprocessor
`
`
`
`
`
`
`
`interference, which occurs when more than one processor
`
`
`
`
`
`
`
`
`
`attempts to access the same area of memory.
`It is
`
`
`
`
`
`
`
`
`
`possible to restrict the area of memory which may be
`
`
`
`
`
`
`
`
`
`‘accessed by any one processor, but, while this avoids the
`
`
`
`
`
`
`10 problems of interprocessor interference, it sacrifices
`
`
`
`
`
`
`
`
`much of the advantage of a multiprocessor system.
`
`
`
`
`
`
`
`
`
`Thus, it is a further object of the present invention
`
`
`
`
`
`
`
`to provide a multiprocessor architecture which, while
`
`
`
`
`
`
`
`
`
`permitting every processor to access any area of memory,»
`
`
`
`15 protects data integrity.
`
`
`
`
`
`Emulation of microprocessor languages and
`
`
`
`
`
`
`architectures, and of micro— and minicomputer systems,
`
`
`
`
`
`
`
`at present relatively expensive.
`If emulation could be
`
`
`
`
`
`
`
`
`
`made cheaper, e.g. based on a single prOcessing chip,
`
`
`
`
`
`
`
`the cheaper development and testing possible would permit
`
`
`
`
`
`
`
`wider use of custom designed application systems, and
`
`
`
`
`
`faster adoption of new innovations.
`
`
`
`
`
`
`
`invention is to
`A further object of the present
`
`
`
`
`
`
`
`provide a single-chip processor capable of versatile and
`
`
`
`25 efficient emulation.
`
`20
`
`
`
`
`
`
`
`
`
`
`
`
`
`It would also be desirable to provide a
`
`
`
`
`
`
`microprocessor architecture which would permit graceful
`
`
`
`
`
`
`
`
`degradation in the event of failure. Thus, both
`
`
`
`
`
`
`
`
`
`reliability and yield could be greatly improved, since the
`
`
`
`
`
`
`
`
`
`
`
`30 first major hardware fault would not prevent function of a
`
`
`
`
`
`
`
`
`chip, but would simply degrade its preformance marginally.
`
`
`
`
`
`
`
`
`
`
`It is a further object of the present invention to
`
`
`
`
`
`
`provide a microprocessing architecture which provides
`
`
`
`
`
`
`
`graceful degradation, rather than catastrophic failure,
`
`
`
`
`
`the event of hardware fault.
`
`in
`
`
`35
`
`gs
`
`I)
`
`
`
`
`
`
`
`
`
`
`the advantages of
`Only minor exploration of
`
`
`
`
`
`multiprocessor systems including large numbers of
`
`
`
`
`
`
`
`processors has hetherto been undertaken, because of the
`
`
`
`
`
`
`expense of multiple processors,
`the difficulty of
`
`
`
`
`
`
`
`INTEL-1006
`
`INTEL - 1006
`
`
`
`-
`
`
`
`10
`
`
`
`15
`
`
`
`20
`
`
`
`
`25
`
`3O
`
`
`
`
`0071727
`6
`_
`
`
`
`
`
`
`
`
`interconnecting them, and the extreme difficulty of
`
`
`
`
`
`
`
`specifying appropriate protocols for the interface between
`
`
`
`
`
`processors in a large system.
`
`
`
`
`
`
`
`
`Thus, it is a further object of the present
`
`
`
`
`
`
`
`invention to provide processors which can easily be
`
`
`
`
`
`
`combined into a multi-processor system including any
`
`
`
`
`desired number of processors.
`A further difficulty, if lC processors are to be made
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`capable of combination into multi-processor systems,
`
`
`
`
`
`
`
`
`
`the provision of additional hardware on chip for interface
`
`
`
`
`
`
`with external processors.
`I/O communication, receipt
`
`
`
`
`
`
`
`and routing of externally generated interrupts, and
`
`
`
`
`
`interprocessor communication with external processors‘
`
`
`
`
`
`
`
`
`are functions which will require excess hardware if
`
`
`implemented separately.
`
`
`
`
`
`
`
`
`Thus, it is a further object of the present invention
`
`
`
`
`
`
`
`
`
`to provide an external interface which can both handle I/O
`
`
`
`
`communications inmediate interprocessor communication.
`
`
`
`
`
`
`
`
`It is a further object of the present invention to
`
`
`
`
`
`
`provide an interrupt managing structure,
`in each
`
`
`
`
`
`
`
`
`
`processor, such that interrupts can be used both to govern
`
`
`
`
`
`interprocessor communication and to transmit externally
`
`
`generated interrupts.
`
`
`
`
`
`
`
`
`
`
`When a change in operating function or structure of a
`
`
`
`
`
`
`
`
`
`processor system is required, logic redesign is not only
`
`
`
`
`
`
`
`expensive and difficult, but also time consuming.
`
`
`
`
`
`
`
`
`Thus it is a further object of the present invention
`
`
`
`
`
`
`
`
`to permit ready alteration of processor operation, at any
`
`
`
`
`
`
`
`
`level, by reprogramming rather than by logic redesign.
`
`
`
`
`
`
`
`
`
`It would be highly desirable to have a processor
`
`
`
`
`
`
`
`
`hardware system to which an "architecture compiler" could
`
`
`
`
`
`
`
`
`
`be applied.
`Such a compiler would permit programming of
`
`
`
`
`
`
`
`
`
`the effective architecture of the system,
`in addition to
`
`
`
`
`
`
`
`the other changes normally possible by programming.
`
`
`
`
`
`
`
`
`
`
`
`35 However,
`to support such a compiler it is necessary to
`
`
`
`
`
`
`
`have hardware which permits selective and programmable
`
`
`
`
`reconfiguration of functional interconnections.
`
`
`
`
`
`
`
`
`Thus, it is a further object of the present invention
`
`
`
`
`
`
`
`to provide a processor architecture having the necessary
`
`is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INTEL-1006
`
`ll
`
`’Ii;
`
`m:
`
`w
`
`
`
`INTEL - 1006
`
`
`
`7
`
`0071727
`
`alterable functional structure to support an architecture
`compiler.
`
`Summary of the Invention
`Th e
`p r e s e n t i n v e n t i o n p r o v i d e s fo r fo u r
`
`5
`
`15
`
`microprogrammable 16-bit microprocessors on a single
`chip. Microprogramming capability is provided by a large
`PLA which is included in each process or. Each of the
`processors is connected to each of three main buses,
`10 namely the status bus, the data bus, and the control bus.
`Each p rocessor is connected to the status bus by a
`respective status bus multiplexer, which operates as a
`programmable interconnect. In accordance with the various
`configurations of the status bus connections which are
`th u s p o s s ibl e , t h e p r o c e s s ors m a y b e o perated
`independent l y (e.g. as four 16-bit processors), in
`lockstep (e.g. as one 64-bit processor), or pipelined.
`Thus, two major sources of programming flexibility are
`provided:
`the microprogramming flexibility provided by
`20 PLA interpretation, and the processor reconfiguration
`fle x i b i l i t y w h ich is p r o v i d e d by t h e use of the
`programmable status bus connections and by controlling the
`instruction streams interpreted by each proc�ssor.
`To exploit this flexibility in processor control,
`25 each chip level instruction is directed to one or more
`specific processors. Thus, when it is desired to operate
`the p r o cessors in a pipeline mode (where separate
`processors sequentially perform different operations on a
`single data stream), each processor is respectively
`30 instructed to perform the operation appropriate to its
`pos i t ion i n t he p i pe l i ne seq uence. In l o ckstep
`processing, one processor is designated as the master
`processor (to control sequencing etc.), and the other
`lockstepped processors are all controlled simultaneously.
`35 These modes of reconfiguration may also be combined, so
`that, e.g., a chip might be reconfigured to contain four
`independent 16-bit processors, two pipelined 32-bit
`processors,. one 4 8-bi t processor (three locks tepped 16-bi t
`processors) and one independent 16-bit processor, etc.
`
`•
`
`•
`
`INTEL - 1006
`
`
`
`8
`
`0071727
`
`
`
`
`
`
`
`
`
`
`
`
`
`Since the control bus may be segmented to carry plural
`
`
`
`
`
`
`unrelated sequences of instructions,
`a multilevel
`
`
`
`
`
`
`
`
`interrupt hierarchy is used, arbitrated by a single
`
`
`
`
`
`
`
`
`
`control store manager,
`to arbitrate access to the control
`
`
`
`
`
`
`
`The external
`interface controls (including an
`
`
`
`
`
`
`
`
`external interrupt manager,
`two external status ports and
`
`
`
`
`
`
`
`
`
`two external data ports) also permit processors on more
`
`
`
`
`
`
`
`
`
`
`
`than one RIC chip to be linked together in the various
`
`
`
`
`
`
`
`
`modes discussed above. In addition,
`the external interface
`
`
`
`
`
`
`
`
`controls also control access to external memory, I/O's,
`
`
`bus.
`
`etc.
`
`
`
`in
`
`
`
`
`
`
`
`
`A substantial amount of on—chip RAM is provided”
`
`
`
`
`
`
`
`
`
`
`which may be accessed by any of the processors. However,
`
`
`
`
`
`
`
`
`
`each processor also has direct access to a primary
`
`
`
`
`
`
`
`
`allocation of the on—chip RAM. All processors may
`
`
`
`
`
`
`
`directly access their respective primary allocations of
`
`
`
`
`
`
`
`
`
`
`
`RAM in parallel, but,
`to access other portions of RAM, a
`
`
`
`
`
`
`
`
`
`processor must use the data bus, and therefore such
`
`
`
`
`
`
`
`accesses must be arbitrated.
`Two design expedients
`
`
`
`
`
`
`
`
`prevent hangups and deadlocks:
`first, 256 priority levels
`
`
`
`
`
`
`
`
`are used coincidence of priority is thereby reduced.
`
`
`
`
`
`
`
`
`SeCOnd, all interrupts are sent, and acknowledged,
`
`
`
`
`
`
`
`
`
`parallel. Third, any processor which is unable to acquire-
`
`
`
`
`
`
`
`
`all resources needed to proceed with execution releases
`
`
`
`
`
`
`
`
`
`all previously acquired resources while it is waiting for
`
`
`
`
`
`
`the necessary resources to become available.
`
`
`
`
`
`
`
`In addition to these crucial elements, numerous
`
`
`
`
`
`
`
`
`
`conventional elements are also used to fully implement the
`
`
`
`
`
`
`
`
`
`For example, each processor includes an ALU, a
`design.
`
`
`
`
`
`
`
`
`barrel shifter, a memory mapper, a microsequencer, etc.
`
`
`
`
`
`
`
`
`The advantages of the present invention include all
`
`
`
`
`
`
`
`
`
`objects of the invention discussed above, and others which
`
`
`
`
`
`
`
`
`
`
`
`will be obvious to those skilled in the art. For example,
`
`
`
`
`
`
`
`
`
`
`
`
`the hardware layout time of the RIC chip is reduced by a
`
`
`
`
`
`
`
`
`
`
`factor of almost four, since much of the structure (e.g.,
`
`
`
`
`
`all four processors)
`is replicated.
`
`
`
`
`
`
`
`
`Of course,
`the processors need not be 16-bit
`
`
`
`
`
`
`
`
`processors‘but may alternatively be 32-bit, 8—bit, etc.
`
`
`
`
`
`
`
`
`
`
`
`the number of processors on a chip may not be
`INTEL-1006
`
`Similarly,
`
`
`
`10
`
`
`
`15
`
`
`
`20
`
`
`
`
`25
`
`3O
`
`
`
`
`35
`
`\II
`
`In;
`
`"I
`
`(I!
`
`an
`
`m
`
`m
`
`INTEL - 1006
`
`
`
`9
`
`
`
`
`
`
`
`
`
`
`0071727,
`
`
`
`
`
`
`
`
`
`
`
`exactly four, but may be three, or any number larger than
`
`
`
`
`
`
`
`
`
`In fact,
`the maximum number of processors is
`
`
`
`
`
`
`
`constrained simply by manufacturing technology, as smaller
`
`
`
`
`
`
`
`
`geometries become practicable, it might be very desirable
`
`
`
`
`
`
`
`
`
`
`
`to include large numbers of processors on a chip.
`In such
`
`
`
`
`
`
`
`the interconnections, busses, and protocols would
`
`
`
`
`
`
`
`
`
`
`remain the same. Of course, if the processors were other
`
`
`
`
`
`
`
`
`
`
`than 16-bit,
`the width of the respective busses would have
`
`
`
`
`to be changed correspondingly.
`
`
`
`
`
`
`
`there is provided
`According to the present invention,
`
`
`
`
`
`
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`
`
`
`
`
`
`
`
`
`plurality of busses, each connected to all of said
`
`
`
`
`
`
`
`
`processors; and means, connected to each of said
`
`
`
`
`
`
`processors, for reconfiguring said processors selectively
`
`
`
`
`
`
`
`
`
`so that said processors are operable in lockstep or
`
`
`
`
`
`
`
`
`there is provided
`According to the present invention,
`
`
`
`
`
`
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`
`
`
`
`
`
`
`
`
`plurality of busses, each connected to all of said
`
`
`
`
`
`
`
`
`processors; said busses comprising a status bus including
`
`
`
`
`
`
`
`
`
`
`a plurality of lines said lines of said status bus
`
`
`
`
`
`
`including synchronization and arithmetic linkage lines;
`
`
`
`
`
`
`
`
`each said processor comprising a respective status bus
`
`
`
`
`
`
`
`
`multiplexer connected to said respective processor and to
`
`
`
`
`
`
`
`
`said status bus, said respective status bus multiplexer
`
`
`
`
`
`
`selectively and programmably connecting or interrupting
`
`
`
`
`
`
`
`
`selected lines of said status bus and selectively
`
`
`
`
`
`
`
`
`connecting said respective processor to said status bus,
`
`
`
`
`
`
`thereby selectively and programmably connecting said
`
`
`
`
`
`
`
`
`respective processor through said status bus to adjacent
`
`
`
`
`ones of said processors.
`
`
`
`
`
`
`
`there is provided
`According to the present invention,
`
`
`
`
`
`
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`
`
`
`
`
`
`
`
`plurality of busses, each connected to all said
`
`
`
`
`
`
`
`
`processors; each said processor comprising a dynamic logic
`
`
`
`
`
`
`
`
`array (DLA) connected
`to receive commands
`provided to
`INTEL-1006
`
`four.
`
`case,
`
`independently.
`
`
`
`10
`
`
`
`15
`
`
`
`20
`
`
`
`
`25
`
`30
`
`
`
`
`35
`
`D)
`
`INTEL - 1006
`
`
`
`10
`
`
`
`0071727
`
`
`
`
`10
`
`
`
`15
`
`
`
`
`20,
`
`
`25
`
`30
`
`
`
`
`35
`
`
`
`
`
`
`
`
`
`said respective processor said DLA comprising: an AND
`
`
`
`
`
`
`
`
`matrix; an OR matrix;
`intermediate lines connecting said
`
`
`
`
`
`
`
`
`
`
`
`AND matrix to said OR matrix; a plurality of input lines,
`
`
`
`
`
`
`
`
`
`
`
`
`
`connected to a first one of the AND and OR matrices; and a
`
`
`
`
`
`
`
`
`
`
`plurality of output lines connected to the other one of
`
`
`
`
`
`
`
`
`
`
`
`
`
`said AND and OR matrices; at least one of said AND and OR
`
`
`
`
`
`
`
`
`
`
`
`matrices of said DLA being arranged in rows and columns to
`define partitions within said respective matrix; each said
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`partition being selectively arranged to contain a selected
`
`
`
`
`
`
`
`
`
`number of active elements disposed to implement a desired
`
`
`
`
`
`
`
`
`
`logical function; and a plurality of control lines, each
`
`
`
`
`
`
`
`
`
`said control line being connected to selectively enable or
`
`
`
`
`
`
`
`
`
`
`disable said active devices in one or more of said
`
`
`
`
`
`
`
`
`
`partitions, so that said DLA implements a selected logical
`
`
`
`
`
`
`
`
`
`
`function in accordance with a state of said control lines;
`
`
`
`
`
`
`
`
`whereby said DLA interprets commands provided to said
`
`
`
`
`
`
`
`respective processor selectively in accordance with the
`
`
`
`
`
`state of said control lines.
`
`
`
`
`
`
`
`there is provided
`According to the present invention,
`
`
`
`
`
`
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`
`
`
`
`
`
`
`
`
`plurality of busses, each connected to all of said
`
`
`
`
`
`
`
`
`
`processors; a RAM memory, said RAM memory comprising a»
`
`
`
`
`
`
`
`
`
`plurality of RAM memory modules; said busses comprising a
`
`
`
`
`
`
`
`
`
`
`data bus including a plurality of lines; and a plurality'
`of bus control units, each said bus control unit being
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`connected to one of said processors,
`to one of said RAM
`
`
`
`
`
`
`
`
`
`
`memory modules, and to said data bus, said bus control
`
`
`
`
`
`
`
`
`unit selectively connecting said processor to said data
`
`
`
`
`
`
`
`
`
`bus or directly to said corresponding RAM memory module.7
`
`
`
`
`
`
`
`
`According to the present invention,
`there is provided
`
`
`
`
`
`
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`plurality of busses, each connected to all of said
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`processors; and means for reconfiguring each said
`
`
`
`
`
`
`
`
`processor, so that each said processor selectively and
`
`
`
`
`
`
`
`
`programmably is operated in lockstep with or independently
`
`
`
`
`
`
`
`
`
`
`
`of one or more others of said processors on the samer
`
`
`
`
`
`
`
`restructurable integrated circuit or on another similar
`
`
`
`INTEL-1006
`
`«I
`
`
`(M
`
`II!
`
`I"
`
`m
`
`INTEL - 1006
`
`
`
`r
`
`ll
`
`
`
`0071727
`
`
`
`
`
`
`
`
`
`restructurable integrated circuit.
`
`
`
`
`
`
`
`there is provided
`According to the present invention,
`a restructurable integrated circuit, comprising a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`monolithic substrate having: a plurality of processors; a
`
`
`
`
`
`
`
`
`
`plurality of busses, each connected to all of said
`
`
`
`
`
`
`
`
`processors; said busses comprising a control bus, said
`control bus comprising lines for transmitting commands,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`and also lines for transmitting interrupt signals, each
`
`
`
`
`
`
`said interrupt signal including bits indicating a priority
`and an interruptee processor among said processors,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`wherein one of said interrupt signals initiates each
`
`
`
`
`
`
`
`
`sequence of said commands; wherein each said processor
`
`
`
`
`
`
`
`
`contains an interrupt manager, connected to said control
`to receive said interrupt signals, and wherein said:
`bus,
`
`
`
`
`
`
`
`
`
`interrupt manager tests each successive one of said
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`interrupt signals to determine whether said respective
`
`
`
`
`
`
`
`is
`processor which includes said interrupt manager
`designated by said successive interrupt signal as an
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`interruptee, wherein said interrupt manager stores the
`
`
`
`
`
`
`
`
`
`priority of the one of said interrupt signals which
`
`
`
`
`
`
`
`initiated whichever respective sequence of commands is
`
`
`
`
`
`
`
`
`currently being executed by said processOr, and wherein
`
`
`
`
`
`
`
`
`said interrupt manager compares the priority of each
`
`
`
`
`
`
`
`
`successive one of said interrupt signals which is
`
`
`
`
`
`
`
`
`addressed to said respective processor with the priority
`
`
`
`
`
`
`
`of said respective interrupt signal which initiated
`
`
`
`
`
`
`
`whichever respective sequence of commands is currently
`
`
`
`
`
`
`
`
`being executed by said processor and provides a
`
`
`
`
`
`
`
`
`corresponding context switch output; and wherein each said
`
`
`
`
`
`
`
`respective processor also contains a scheduler, connected
`
`
`
`
`
`
`
`
`
`to said context switch line of said interrupt manager,
`
`
`
`
`
`
`
`
`said scheduler displacing a sequence of said commands
`
`
`
`
`
`
`
`currently being executed by said corresponding processor
`
`
`
`
`
`
`
`
`
`whenever said context switch line indicates that a newly
`
`
`
`
`
`
`
`received interrupt signal includes a higher priority
`
`
`
`
`10
`
`
`
`
`15'
`
`20
`
`
`
`
`25
`
`30
`
`
`
`
`35
`
`
`
`a)
`
`level.
`
`INTEL-1006
`
`INTEL - 1006
`
`
`
`A-
`
`'
`
`*
`
`n
`
`
`
`0071727-
`
`
`
`
`
`
`
`Brief Description of the Drawings
`
`
`
`
`
`
`
`The present invention will now be described more
`
`
`
`
`
`
`specifically with reference to the accompanying drawings
`
`
`wherein:
`
`
`
`the
`
`
`
`
`
`
`
`
`,
`
`
`
`
`
`
`
`
`
`a general overview of
`Figure l shows
`
`
`
`
`
`
`
`restructurable IC according to the present invention;
`
`
`
`
`
`
`
`
`
`
`
`Figure 2 shows a floor plan of a portion of the RIC,
`
`
`
`
`
`
`
`
`
`including one processor in its entirety and one of each
`
`
`
`
`
`kind of the external interfaces;
`
`
`
`
`
`
`
`
`
`
`Figure 3 shows portions of the AND and OR portions of
`
`
`
`
`
`
`
`
`a DLA, embodied in a NOR gate implementation;
`
`
`
`
`
`
`
`
`
`Figure 4
`shows portions of the AND and OR matrixes
`
`
`
`
`
`
`
`
`
`of a DLA embodied in a named gate implementation;
`
`
`
`
`
`
`
`
`Figure 5 shows the structure of the control bus;
`
`
`
`
`
`
`
`Figure 6 shows the relation between the central
`
`
`
`
`
`
`
`
`control store controller and the four module controllers;
`
`
`
`
`
`
`
`Figure 7 is a flowchart illustrating the operation of
`
`
`
`
`
`
`
`
`the central control store controller and of the respective
`
`
`
`
`
`
`
`module controller, where the control store is being
`
`
`
`
`
`
`
`
`
`
`Figure 8 shows the connection of the daisy chained
`bus available line;
`7
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 9 is a schematic diagram of major portions of
`
`
`
`
`
`the ALU within each processor;
`
`
`
`
`
`
`Figures 10 and ll respectively provide circuit
`
`
`
`
`
`
`
`
`diagrams of portions of functional and carry chain blocks
`
`
`
`
`
`
`within the ALU in each processor;
`
`
`
`
`
`
`
`
`Figure 12 is a flow chart illustrating the structure
`
`
`
`
`
`
`
`of the barrel shifter within each processor;
`
`
`
`
`
`
`
`
`Figures 13, 14(a),
`l4(b) and l4(c) show examples of
`
`
`
`
`
`
`
`shift and/or rotate operations performed by the barrel
`
`
`
`