WO2003007155A1 - Dispositif a circuit integre - Google Patents

Dispositif a circuit integre Download PDF

Info

Publication number
WO2003007155A1
WO2003007155A1 PCT/JP2002/007076 JP0207076W WO03007155A1 WO 2003007155 A1 WO2003007155 A1 WO 2003007155A1 JP 0207076 W JP0207076 W JP 0207076W WO 03007155 A1 WO03007155 A1 WO 03007155A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
output
input
address
Prior art date
Application number
PCT/JP2002/007076
Other languages
English (en)
French (fr)
Inventor
Kenji Ikeda
Original Assignee
Ip Flex Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ip Flex Inc. filed Critical Ip Flex Inc.
Priority to AU2002318809A priority Critical patent/AU2002318809B2/en
Priority to KR1020047000422A priority patent/KR100912437B1/ko
Priority to US10/363,885 priority patent/US6868017B2/en
Priority to CA002451003A priority patent/CA2451003A1/en
Priority to EP02745985A priority patent/EP1416388A4/en
Priority to JP2003512850A priority patent/JP4188233B2/ja
Publication of WO2003007155A1 publication Critical patent/WO2003007155A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory

Definitions

  • the present invention relates to an integrated circuit device capable of reconfiguring a data flow.
  • a cache or cache memory When processing instructions (hereinafter referred to as data when there is no need to distinguish between instructions and data) using a CPU or the like, a relatively small-capacity but high-speed memory called a cache or cache memory is used. It uses the temporal locality or spatial locality of data to improve the access speed to data. Therefore, an integrated circuit device called a VLSI, system LSI, or system ASIC with a processor or processor core has a cache system with a cache memory and a circuit such as an MMU that controls the cache memory. .
  • MMU Memory Management Unit
  • TLB Translation Look-aside Buffer
  • data in the cache memory is input / output to / from the CPU core. If there is no data in the cache memory, the virtual address is converted to a physical address by the MMU and TLB, input / output occurs to external memory, and the data in the cache memory is also updated. Therefore, the cache memory is configured to be transparent to the software running on the CPU core by the cache control mechanism equipped with the MMU. For this reason, software only needs to be developed to operate based on virtual addresses that do not depend on hardware, and the time and cost required for development and design can be reduced. In addition, the same software can be run on different hardware, making effective use of software assets it can.
  • MMU Memory Management Unit
  • TLB Translation Look-aside Buffer
  • the cache memory simply becomes an overhead, which adversely affects the execution time of the program.
  • technologies to separate the instruction cache from the data cache increase the number of layers in the cache, and prefetch mechanically or software are being studied.
  • a multi-level cache is effective when there is a large difference in access time and storage capacity between the cache and external memory.
  • the number of accesses to memory is inevitably increased by increasing the number of layers, so the possibility of overhead is always increased depending on conditions such as the software configuration and the input / output media of the data to be processed. is there.
  • any technology can improve the cache memory hit rate if the conditions such as the software executed on the CPU and the media on which the data is stored match the cache memory method. is there.
  • cache memory is hardware that is placed in between the external memory Therefore, if the processing content of the software to be executed and the environment of the hardware storing the data to be processed by the software are different, the expected cache efficiency may not be obtained, or the overhead may increase. This will cause the execution time of the processor to decrease.
  • a processor specialized for a particular application may be able to use the optimal cache memory system. However, if a processor is aimed at a certain degree of versatility, a cache memory system that will not cause much overhead, if not very effective, will be introduced to utilize the cache memory. Therefore, even if there is a cache memory system, the performance will not improve much.
  • FPGA Field Programmable Gate Array
  • This is an integrated circuit device that can be used.
  • integrated circuit devices that can change the structure of the data path using a medium-sized single-structured basic function unit that performs various processes according to the instruction set are being studied.
  • the applicant of the present application has developed a processing unit including a plurality of types of dedicated processing elements each having an internal data path suitable for a different specific process, and a wiring group connecting these dedicated processing elements. I have.
  • a circuit that controls the cache memory is configured by a part of the processing unit that can change or reconfigure these data flows. That is, in the integrated circuit device of the present invention, at least one data flow is formed with the first memory capable of inputting and / or outputting data with the second memory, and at least one of the data flows is formed.
  • a processing unit that can be changed in part, the processing unit comprising: a data processing section for processing data input and / or output to and from the first memory; A first address output section for outputting a first address of data input and / or output to and from the processing section; and an input and Z or A second address output section for outputting a second address of data to be output.
  • the first configuration can be performed by the hardware configuration of the data processing section or the software executed in the data processing section. It is possible to change the data flow of the address output section or the second address output section and control the output of each section. Therefore, a cache memory system most suitable for processing executed by the integrated circuit device can be configured in the integrated circuit device. Alternatively, the control circuit of the cache memory can be configured in the integrated circuit device so as to control the cache memory most suitable for the processing executed by the integrated circuit device.
  • the first memory serving as the cache memory is converted into a second address for the second memory, that is, a physical address of data in the second memory, or a logical address or a physical address that can be converted to a physical address. It is also possible to control passively by virtual address. With this control, it is also possible to configure so that the first memory exists transparently to the second memory and / or the data processing section.
  • the output section can actively control the input and output of data. It is also possible to control data input / output operations between the first and second memories in parallel with the data processing section and the first address output section. Therefore, the second address output section can be configured to determine the data access destination of the data processing section and the first address output section, and the cache is transparent to the conventional CPU. Instead of a cache, it is possible to configure a cache that controls the processing in the processing unit.
  • the conventional cache architecture is uniform and transparent so that the execution speed can be improved on average for software running on a processing mechanism with a uniform hardware configuration such as a CPU core or DSP core. It is configured to provide an interface.
  • a data processing section serving as a core is provided by an architecture such as an FPGA that can change the configuration of a data path itself.
  • the configuration also allows the configuration to be dynamically changed to the optimal configuration for the data processing partition and the software running on it. Therefore, it is not necessary to be transparent in the uniform, and it is possible to provide a completely different interface or service to the data processing section, which is the core or the execution unit, from the conventional cache.
  • the first memory can be most efficiently used as a cache according to the processing contents of the software executed by the processing unit and the hardware environment.
  • a cache system can be configured so that a high hit rate can be obtained when executing various kinds of software, and an integrated circuit device in which the input / output of cache memory does not become an overhead when executing the software is provided. can do.
  • the second address output section independently prefetches data depending on the remaining amount of data in the first memory. It is possible to Therefore, the data can be prefetched into the second memory serving as a cache by hardware or by software for controlling the second address output section without consuming the processing time of the data processing section.
  • the first address output section outputs, as the first address, the address of the first memory, that is, the physical address of the first memory, or a virtual or logical address that can be converted to a physical address, From the second address output section, as a second address, the address of the second memory, that is, the physical address of the first memory, or the physical address of the first memory. Outputs a virtual or logical address that can be converted.
  • the hardware or software can be configured so that processing proceeds at the address of the first memory serving as the cache memory.
  • the second address output section be operable asynchronously, i.e., independently, of the data processing section and / or the first address output section, so that it is independent of the data processing section. Prefetching in parallel processing.
  • the first memory is provided asynchronously, i.e., with a plurality of storage sections that can be input and output independently, for example, a plurality of memory banks, so that inputs and outputs to the second memory can be processed independently in parallel. It is desirable.
  • the second address output section can output the second address based on the data in the first memory independently or in combination with the data processing section. Data processing by addressing can be performed without any restrictions.
  • the first memory that operates as a cache includes a first input memory that stores data input to the data processing section and a first output memory that stores data output from the data processing section. It is desirable. Thereby, the input and output of data to the data flow formed in the data processing section can be controlled independently. Although the address of the first memory is output from the first address output section, there is no data corresponding to the first address in the first memory, or there is a space for storing data corresponding to the first address. Otherwise, it will be an obstacle to the processing of the data flow formed in the data processing section. Therefore, it is desirable to provide a first arbitration unit that manages the input and Z or output between the first memory and the data processing section.
  • the first arbitration unit does not have data corresponding to the first address, or has no space for storing data corresponding to the first address, such as input or output conditions with the data processing section. If the condition is not satisfied, a function to output a stop signal to the data processing section can be provided.
  • the data processing section is provided with a function to stop processing of at least one data path or data flow formed in the data processing section by a stop signal, thereby performing the first adjustment.
  • the on / off of the data path or data flow can be controlled by the shutdown. Therefore, control can be easily realized such that the data path or the data flow formed in the data processing section is activated after the data to be processed is prepared.
  • the first arbitration unit manages the transfer of data from the first input memory to the data processing section. It is desirable to have a first input arbitration unit and a first output arbitration unit that manages the transfer of data from the data processing section to the first output memory. Thereby, control of the data flow formed in the data processing section can be performed independently from the input side and the output side.
  • the first arbitration unit has a function of independently managing each of the plurality of storage sections. It is possible. Each of the plurality of data flows formed in the data processing section can be independently controlled by the first arbitration unit according to the state of the corresponding storage section. On the other hand, the first arbitration unit can be provided with a function of managing a plurality of storage sections in association with each other. This allows the data port formed in the data processing section to preferentially process the data input from the external memory in the predetermined storage section, or outputs the data flow from the data flow to the external storage via the predetermined storage section. Control to give priority to memory can be easily realized.
  • a plurality of first memories are provided, and the processing unit includes first and second address output sections corresponding to the respective first memories. Is desirably formed. This makes it possible to configure a multi-level cache by appropriately configuring the data processing section and the first address output section.
  • a plurality of first memories may be selectively used as an instruction cache and a data cache. By using a plurality of first memories separately, the data cached in each first memory can be appropriately controlled by the second address output section.
  • the second memory and the plurality of first It is desirable to provide a second arbitration unit that manages input and output to and from the memory, and the second address is supplied to the second arbitration unit.
  • the integrated circuit device of the present invention can access the external memory as in the conventional case.
  • the second memory can input and Z or output data between the third memory and the third memory.
  • a third address output means for outputting a third address of data to be input and / or output to / from the second memory, thereby making the cache memory multi-layered.
  • the third memory is an external memory
  • a cache memory is constituted by the first and second memories.
  • the third address output means may be a conventional cache control mechanism such as an MMU. It can also be configured in the same way as the address output section of the 4th or higher level memory (including not only ROM and RAM but also various types of recording media such as disks). The same applies when controlling.
  • the processing unit capable of changing or reconfiguring the data flow is provided with a plurality of single types of logic elements whose functions can be changed and a group of wires connecting these logic elements, that is, the above-described FPGA and the like. Even if the data path structure or the data structure can be changed using a medium-sized single-structured basic function unit, it is acceptable. It is possible to employ a processing unit that includes a plurality of types of dedicated processing elements each having an internal data path suitable for a specific process different from each other, and a wiring group that connects these dedicated processing elements. With such a reconfigurable processing unit, it is possible to incorporate in advance a dedicated processing element having an internal data path suitable for outputting an address, thereby improving the processing efficiency for generating addresses. The processing speed can be further improved. Also, since the existence of extra circuit elements can be reduced, the elements to be selected for changing the data flow can be reduced, the AC characteristics can be improved, and the space efficiency can be increased.
  • control unit that instructs at least a part of the data flow of the processing unit to configure the data processing section, the first address output section, and the second address output section to the processing unit.
  • the process to instruct the data flow can be changed flexibly and dynamically in a short time.
  • a compact and economical integrated circuit device having a flexible cache system can be provided.
  • control unit can reconfigure the data flow by rewriting the contents of the configuration memory or instructing at least part of the data flow of the processing unit to change.
  • this control unit allows asynchronous or independent changes in the data flow of the data processing section, the first address output section, or the second address output section. Can be instructed.
  • the dedicated processing elements constituting the data processing section and / or the first address output section constitute another data flow for another purpose.
  • Use the dedicated processing element of the second address output section to control a different memory, or use it for a different purpose while processing is performed in the data processing section. This makes it possible to utilize the resources of the processing unit flexibly and efficiently.
  • FIG. 1 is a block diagram showing a schematic configuration of an integrated circuit device according to an embodiment of the present invention.
  • FIG. 2 is a diagram showing a schematic configuration of the processing unit AAP.
  • FIG. 3 is a diagram showing a schematic configuration of the matrix section.
  • FIG. 4 shows an example of a data path section suitable for processing for outputting an end address.
  • FIG. 5 is a diagram showing a configuration of an address generation circuit of the data path unit shown in FIG.
  • FIG. 6 is a diagram showing a configuration of the counter shown in FIG.
  • FIG. 7 is a diagram showing a configuration of an address generation circuit different from FIG.
  • FIG. 8 is a diagram showing a state in which a large-capacity RAM is controlled as an external memory.
  • FIG. 9 is a diagram illustrating a state in which a large-capacity RAM and peripheral devices are controlled as an external memory.
  • FIG. 10 is a diagram showing how a plurality of large-capacity RAMs and peripheral devices are controlled as external memories.
  • FIG. 11 is a diagram illustrating a state in which a large-capacity RAM is controlled as an external memory by a different integrated circuit device of the present invention.
  • FIG. 1 shows a schematic configuration of a system LSI 10 according to the present invention.
  • This LSI 10 has a general-purpose processor section (hereinafter referred to as a basic processor or processor) 11 that performs general-purpose processing including error processing based on an instruction set given by a program or the like, and a matrix-like configuration.
  • a basic processor or processor a general-purpose processor section
  • FIG. 1 shows a schematic configuration of a system LSI 10 according to the present invention.
  • This LSI 10 has a general-purpose processor section (hereinafter referred to as a basic processor or processor) 11 that performs general-purpose processing including error processing based on an instruction set given by a program or the like, and a matrix-like configuration.
  • AAP Advanced Application Processor unit or AAP unit (hereinafter AAP) 20 in which a data flow or a pseudo data port adapted to the specific data processing is formed in the barrier by the arranged arithmetic or logical elements,
  • An interrupt controller 12 that controls the interrupt processing from the AAP 20, a clock generator 13 that supplies a clock signal for operation to the AAP 20, and an arithmetic circuit that can be provided by the LSI 10 FPGA section 14 to further enhance the flexibility of
  • This is a data processing system including a control unit 15.
  • the FPGA section 14 is an interface with an FPG A chip provided outside the LSI 10, and is hereinafter referred to as an off-chip FPGA or an FPGA.
  • the basic processor 11 and the AAP 20 include a data bus 17 capable of exchanging data between the basic processor 11 and the AAP 20, and the basic processor 11 to the AAP 20. It is connected to an instruction bus 18 for controlling the configuration and operation of the device. Also, an interrupt signal is supplied from the AAP 20 to the interrupt control unit 12 via the signal line 19: ⁇ , when the processing in the AAP 20 is completed, or when an error occurs during the processing, the state of the AAP 20 is changed. Feedback can be provided to the basic processor 11.
  • the AAP 20 and the FPGA 14 are also connected by the data bus 21, so that data is supplied from the AAP 20 to the FPGA 14 for processing, and the result can be returned to the AAP 20. Further, the AAP 20 is connected to the path control unit 15 by a load bus 22 and a storage bus 23, so that data can be exchanged with a data bus outside the LSI 10. Therefore, the AAP 20 can input data from the external DRAM 2 or another device, and can output the result of processing the data by the AAP 20 to the external device again.
  • the basic processor 11 can also input and output data to and from external devices via the data bus 11a and the bus control unit 15.
  • FIG. 2 shows an outline of the AAP unit 20.
  • the AAP unit 20 of this example includes a matrix section 28 in which a plurality of logic blocks, logic units or logic elements (hereinafter, elements) for performing arithmetic and / or logic operations are arranged in a matrix, and the matrix section 28
  • An input buffer 26 for supplying data and an output buffer 27 for storing data output from the matrix unit 28 are provided.
  • Each of the input buffer 26 and the output buffer 27 includes four small-capacity input memories (RAMs) 26a to 26d and output memories (RAMs) 27a to 27d.
  • the AAP 20 further includes an external access arbitration unit (the second access arbitration unit) that controls data input / output operations between the input buffer 26 and the output buffer 27 composed of the plurality of memories and the bus control unit 15.
  • Mediation unit G the second access arbitration unit
  • Each of the input RAMs 26a to 26d and the output RAMs 27a to 27d in this example functions as a 1-kbyte 2-port RAM, and is a 2-bank RAM with a 64-kbit width and a 512-byte depth. And can be used as 82. Therefore, by using different banks for input and output to the memory, it is possible to process input / output as independent operations.
  • an arbitration unit (first arbitration unit) 85 that manages input and output to and from RAMs 81 and 82 is provided, so that the full and empty status of each bank can be checked by counting the number of inputs and outputs. .
  • a plurality of types of control signals are exchanged between the matrix unit 28 and each RAM and arbitration unit 85. Is done.
  • a 16-bit input read address data (ira, first address) 61 for controlling data read by the matrix unit 28 from the input RAMs 26a to 26d is provided. Is output.
  • the input read address 61 is a logical or physical address of each of the input RAMs 26a to 26d.
  • an input read address stop signal for controlling the supply of address data 61 from the arbitration unit 85 of each input 18 26 & to 26 d to the matrix unit 28 by full and / or empty. 62 is output.
  • the arbitration unit 85 also outputs an input read address stop signal 62 when input conditions for the matrix unit 28 are not satisfied, such as when there is no data corresponding to the address data 61 supplied from the matrix unit 28.
  • the data flow formed in the matrix section 28 is turned on / off by the stop signal 62. Therefore, in the execution process after the data flow is formed in the matrix section 28, the execution of the processing defined by the data flow can be controlled by the arbitration unit 85 of each of the input RAMs 26a to 26d. Therefore, if there is no data corresponding to the input read address data 61 in the input RAM 26, the processing of the data flow enters a wait state. If there is data corresponding to the input read address data 61 in the input RAM 26, the The input read data (ird) 63 is supplied to the matrix section 28, processed by the formed data flow, and output to one of the output RAMs 27.
  • a stop signal (ird_s to) 64 for controlling the input read data 63 is output from the matrix section 28 to each of the input RAMs 26a to 26d, and the operation of the data port of the matrix section 28 is, for example, If it stops due to the output side, stop reading.
  • the arbitration unit 85 for each input RAM 26a to 26d basically
  • the arbitration unit 85 of the input RAMs 26a to 26d can be connected by wiring between the input RAMs 26a to 26d or by wiring through the matrix unit 28. It is also possible to associate and manage the RAMs 26a to 26d. By associating and managing a plurality of input RAMs 26a to 26d, a plurality of input RAMs can be allocated to a data flow formed in the matrix unit 28. Then, the arbitration unit 85 can prioritize the plurality of input RAMs 26a to 26d and supply the data to the data flow from the data of the RAM with the highest priority.
  • 32-bit input write address data (for controlling data to be read from the external memory 2 via the bus control unit 15 and written to each of the input RAMs 26a to 26d) iwa, the second address) 65 and a 4-bit control signal (iwd—type) 66 that can specify the data type and the like are output from the matrix unit 28.
  • the input write address data 65 and the control signal 66 corresponding to each of the input RAMs 26a to 26d are all output to the external access arbitration unit 25.
  • the input write address 65 is a physical address of the RAM2, which is an external memory, or a logical or virtual address corresponding to the physical address.
  • external access arbitration unit 25 A stop signal (i wa-stop) 67 for controlling the output of the address data 65 is supplied to the matrix 28.
  • 64-bit input write data (iwd) 68 corresponding to the input write address data 65 supplied to the external access arbitration unit 25 is supplied from the arbitration unit 25 to each of the input RAMs 26a to 26d.
  • a stop signal (iwd-stop) 69 for controlling the input write data 68 is output from the RAMs 26 a to 26 d to the external access arbitration unit 25.
  • Address data ( OWA , first address) 71 is output.
  • the output write address 71 is a logical or physical address of each output RAM 27a to 27d.
  • an output write address stop signal (owa-stop) 72 for controlling the supply of address data 71 by a full load / empty unit is output from the arbitration unit 85 of each output RAM 27a to 27d to the matrix unit 28. Is done. That is, the arbitration unit 85 outputs the output write address stop signal 72 when the condition for receiving the output from the matrix section 28 is not satisfied.
  • the data flow formed in the matrix unit 28 is turned on / off by the stop signal 72, and the execution of the process defined by the data flow is controlled. If the output RAM 27 has a space, 32-bit output write data (owd) 73 is output from the matrix section 28 together with the output write address data 71. Further, a stop signal (owd_s top) 74 for controlling the output write data 73 is supplied from the arbitration unit 85 of each of the output RAMs 27 a to 27 d to the matrix unit 28.
  • 32-bit output read address data (32 bits) for controlling the data read from each input RAM 26 a to 26 d via the path control unit 15 and written to the external memory 2. ora, second address) 75, and a 4-bit control signal (ord-type) 76 capable of designating its data type and the like are output from the matrix unit 28.
  • the output read address data 75 and the control signal 76 are all output to the external access arbitration unit 25.
  • the output read address 75 is a physical address of the DRAM 2 which is an external memory, or a logical or virtual address corresponding to the physical address.
  • a stop signal (or a_s top) 77 for controlling the output of the address data 75 from the external access arbitration unit 25 is supplied to the matrix 28.
  • 64-bit output read data (ord) 78 is supplied from each output RAM 27a to 27d to the external access arbitration unit 25, and from the external access arbitration unit 25 to each output RAM 27a to A stop signal (ord-stop) 79 for controlling the output read data 68 is supplied to 27 d.
  • the input data 63 of the matrix unit 28 is transferred to the bus control unit serving as an interface with the external memory 2 through the plurality of input RAMs 26 a to 26 d and the external access arbitration unit 25. Supplied from 15.
  • the output data 73 of the matrix unit 28 is supplied to the bus control unit 15 serving as an interface with the external memory 2 via the plurality of output RAMs 27 a to 27 d and the external access arbitration unit 25. Since each of the input RAMs 26a to 26d and the output RAMs 27a to 27d has a two-bank configuration, processing between the input RAMs 26a to 26d and the output RAMs 27a to 27d and the matrix unit 28 is performed. And the processing between the input RAMs 26a to 26d and the output RAMs 27a to 27d and the external access arbitration unit 25, that is, the processing with the external RAM 2 can be executed independently or asynchronously and in parallel. .
  • a load bus 22 and a storage bus 23 are connected between the external access arbitration unit 25 and the bus control unit 15 by a 32-bit address bus and a 256-bit data bus so that data can be input / output in block units at a high speed. Is configured. Then, an input address signal 22a and an output address signal 23a are transmitted via an input address bus, and input data 22b and output data 23b are transmitted via a data bus. In addition, a signal line for transmitting 5-bit commands 22 c and 23 c, a signal line for transmitting busy signals 22 d and 23 d of the bus control unit 15, and a ready signal 22 e of the bus control unit 15 are transmitted Signal lines are also provided. FIG.
  • the matrix section 28 is a system capable of reconfiguring a data path or a data flow corresponding to the processing unit in the present invention.
  • the matrix section 28 includes a plurality of arithmetic units 30, and the elements 30 are arranged in an array or a matrix such that the elements 30 constitute four lines in the vertical direction.
  • the matrix section 28 includes a row wiring group 51 extending in the horizontal direction and a column wiring group 52 extending in the vertical direction, arranged between these elements 30.
  • the column wiring group 52 is composed of a pair of wiring groups 52 X and 52 y separately arranged on the left and right of the arithmetic unit 30 arranged in the column direction. Data from 5 2 y is supplied to each element 30.
  • a switching unit 55 is disposed, and any channel of the row wiring group 51 and any channel of the column wiring group 52 are arranged. You can switch to connect.
  • Each of the switching units 55 has a configuration RAM for storing settings, and the row wiring is performed by rewriting the contents of the configuration RAM with data supplied from the processor unit 11.
  • the connection between the group 51 and the column wiring group 52 can be dynamically and arbitrarily controlled. For this reason, in the matrix section 28 of the present example, the configuration of the data flow formed by connecting all or a part of the plurality of elements 30 by the wiring groups 51 and 52 can be dynamically adjusted arbitrarily. Can be changed.
  • Each element 30 is composed of a set of selectors 3 1 for selecting input data from each of the group of lines 5 2 x and 5 2 y of 1 a, and the selected input data di X and diy And an internal data path section 32 that performs specific arithmetic and Z or logical operation processing on the data and outputs the result to the row wiring group 51 as output data do.
  • elements 30 each having an internal data path section 32 for performing different processing for each row are arranged side by side.
  • these rooster lines 51 and 52 are also provided with wires for transmitting carry signals.
  • the carry signal can be used as a carry signal or a signal indicating true / false.
  • arithmetic and logical operations are performed in each element 30. It is used for controlling or transmitting the result to other elements.
  • the element 30 arranged in the first row has a data path unit 32 i suitable for receiving data from the input buffer 26.
  • the load data path section (LD) 32 i does not require a logic gate if it only accepts data, receives data from the load bus 22 and outputs it to the row wiring group 51.
  • the load data path section 32 i receives the stop signal 62 from the ram arbitration unit 85 of the input ram 26, the data path section 32 i of this data path section 32 i It has a function to stop processing of the data flow connected to element 30. Further, when the data flow connected to the element of the data path unit 32 i is stopped due to an internal factor of the matrix unit 28 or an output side factor, the arbitration unit 85 of the corresponding input RAM 26 is stopped. Output a stop signal 64.
  • the element 30a arranged in the second row is an element for writing data from the external RAM 2 to each of the input RAMs 26a to 26d of the input buffer 26, and the second address Corresponds to the output section. Therefore, a data path unit 32a having an internal data path suitable for generating an address (second address) for block loading is provided.
  • This data path section 32a is called a BLA (Back Ground Load Address Generator).
  • FIG. 4 is an example of the data path section 32a, which includes an address generation circuit 38 including a counter and the like, and the address is output from the address generation circuit 38 as an output signal do.
  • the output signal do is supplied to the data path unit 32 as it is or as an input signal dix or diy after being processed by another element 30 via the row wiring group 51 and the column wiring group 52.
  • one of the supplied addresses is selected by the selector SEL, and is output as an input write address 65 from the matrix section 28 to the access arbitration unit 25 via the flip-flop FF.
  • each counter 38a has a configuration in which an arithmetic operation unit ALU38c and a comparator 38d are combined, and the ALU38c has ADD, SUB, BIT shift, OR, XOR It can be set to perform operations that combine them. Therefore, it has a function as a function generating circuit that generates a value each time a clock comes.
  • the function of this counter 3.8a can be set from the processor unit 11 via the configuration RAM39.
  • control signal en of the ALU 38c can be set by the carry signal cy supplied from the other counter 38a, and the output of the comparator 38d can be transmitted to the other counter 38a as the carry signal cy.
  • the state of the other counter 38a can be set according to the state of the counter 38a, and an arbitrary address can be generated.
  • the control signal en of the counter 38a can be set by the carry signal cy supplied from the other element 30 or transmitted to the other element 30.
  • the element (BLA) 30a that outputs the input write address 65 has a configuration suitable for address generation having the address generation circuit 38 as the internal data path 32a, and the processor 11 through the configuration RAM 39. It is possible to control the content of the address generation processing from, and further, the association with other elements 30 can be set freely.
  • the plurality of counters 38a included in the BLA 32a are, for example, 32-bit counters, and generate addresses for DMA transfer from the external memory 2 to the RAMs 26a to 26b, which are local store buffers.
  • the element 30b arranged in the third row of FIG. 3 includes a data path section 32b for generating an input read address 61 for loading desired data from each of the input RAMs 26a to 26d into the matrix section 28. Provided, corresponding to the first address output section.
  • the data path section 32b is called an LDA (Load Address Generator).
  • LDA Local Address Generator
  • the configuration of the data path section 32b is such that the output address is 32 bits.
  • the configuration is basically the same as that of the internal data path section 32a for generating an address described above, except that it is 16 bits. Therefore, the basic configuration of the data path section 32b is as shown in FIG.
  • the address generation circuit 38 includes four 16-bit counters 38a, and generates an address for transferring data from the local store buffers RAM 26a to 26b to the matrix unit 28.
  • the control signal e n of the counter 38 a can be set by a carry signal cy supplied from another element 30, and can be transmitted to the other element 30.
  • the data is supplied from the input RAMs 26a to 26d to the matrix unit 28 by the input read address 61 output from the element 30, and the data is supplied to the matrix unit 28 and processed by the other logic and calculation elements constituting the matrix unit 28.
  • the elements 30c arranged in the fourth and fifth rows have a data path (SMA) 32c suitable for arithmetic and logical operations.
  • the data path unit 32c includes, for example, a shift circuit, a mask circuit, a logical operation unit ALU, and a configuration RAM 39 for setting an operation to be processed by the ALU. Therefore, according to the instruction written by the processor 11, the input data di and diy can be added or subtracted, compared, or ORed and ANDed, and the result is output as an output signal do. You.
  • the element 30d arranged in the lower row has a data path (DEL) 32d suitable for processing for delaying the timing at which data is transmitted.
  • DEL data path
  • a data path composed of a combination of a plurality of selectors and flip-flops FF is prepared, and the path selected by the selector based on the data of the configuration RAM M39 is provided.
  • the input signals dix and diy pass, they are output as output signals do X and doy with a delay of an arbitrary number of clocks.
  • the element 30 e arranged in the lower row has a data path unit (MUL) 32 e suitable for multiplication processing including a multiplier and the like.
  • a further different element 30 f includes an interface with the FPGA 14 prepared outside the matrix section 28.
  • An element having a data path section 32 f for the face is also prepared, and the data can be supplied to the FPGA 14 and processed once, and then returned to the matrix section 28 to continue the processing.
  • elements 30 g and 30 h having data paths 32 g and 32 h, respectively, suitable for generating addresses for storage are provided.
  • These data path sections 32g and 32h have basically the same configuration as the data path sections 32b and 32a that generate addresses described above with reference to FIGS. 4 to 7.
  • the element 30g including the data path section 32g is a first address output section, and outputs an output write address 71 for writing data output from the matrix 28 to the output RAMs 27a to 27d. Then, the data output from the data processing sequence constituted by the above-described respective types of elements 30 c to 30 f is written to the output RAMs 27 a to 27 d.
  • the data path section 32 g is called a STA (Store address Generator) and has the same configuration as the LDA 32 b.
  • the element 3Oh which is arranged below the element (STA) 30 g and has a data path section 32h, is a second address output section, and reads the data of the output RAMs 27a to 27d to read the data of the external RAM 2d. It outputs an output read address 75 for writing to the external RAM 2, and writes the data processed by the matrix unit 28 to the external RAM 2.
  • the data path section 32h is called a BSA (Back Ground Store Address Generator) and has the same configuration as the BLA 32a.
  • the elements 30 each having a data path section 32s suitable for outputting data for storage are arranged.
  • the data path section 32s is called an ST, and can employ a data path section having substantially the same configuration as the arithmetic operation data path section 32c.
  • the output data path unit 32 s receives the stop signal 74 from the arbitration circuit 85 of the output RAM 27, the output data path unit 32 s has a function of stopping the processing of the data flow connected to the output element 30.
  • the matrix 28 of the present example includes an element 30a having an internal data path (BLA) 32a for generating an address for inputting (block loading) data from the external RAM 2 to the input RAMs 26a to 26d.
  • BLA internal data path
  • An internal data path (LDA) 32b for generating an address for inputting data from 6a to 26d to the matrix unit 28 is provided, and an element 30b is provided.
  • STA internal data path
  • It has an element 30 h with an internal data path (BSA) 32 h for generating an address for output to RAM 2 (block loading).
  • BSA internal data path
  • Each of these elements 30a, 30b, 30g, and 30h has a data path suitable for generating an address as described above, and also has the configuration or function of the data of the configuration RAM 39.
  • connection environment between the matrix unit 28 and the other elements 30 can also be changed by changing the connections of the wiring groups 51 and 52. Therefore, it is possible to provide address generation data from the processor 11 or the other element 30 of the matrix unit 28, and flexibly control the timing of generating an address.
  • each of the plurality of input RAMs 26a to 26d is an independent input / output storage section.
  • the input RAMs 26a to 26d have a two-bank configuration, input and output for the input RAMs 26a to 26d can be performed in parallel, and data for the input RAMs 26a to 26d can be output in parallel.
  • the input and output of the device can be performed very efficiently.
  • Each of the output RAMs 27a to 27d is a storage section that can be input and output independently, and inputs and outputs to the individual RAMs 27a to 27d can be performed independently and in parallel. Therefore, in this system, data can be input / output to / from the RAMs 26a to 26d and 27a to 27d operating as a cache very efficiently.
  • Matritas 28 in this example is basically composed of elements 30 a, 30 b, and 30 g each having a data path section 32 a, 32 b, 32 g, and 32 h suitable for generating an address. And 30 h, each operation of which is determined by instructions from the basic processor 11. That is, the instruction supplied from the basic processor 11 as the control unit via the control bus 28 to the RAM 26 a to 26 d and 27 a to 27 d as the first memories The circuit to be accessed is determined, and the circuit to access the DRAM 2 that is the main memory (second memory) is determined.
  • circuits for controlling access to these memories are configured in a matrix, the operation of those circuits depends on the conditions inside the matrix 28, for example, the data flow configuration or processing results, and the matrix 28 It is extremely easy to directly or indirectly reflect the results of processing using other elements.
  • Elements 30a, 30b, 30g, and 30h suitable for generating addresses, like other elements, are connected to other elements of the matrix section 28 by wiring 51 and 52. Can be wired freely. For this reason, the elements 30a, 30b, 30g and 30h are controlled by a data flow constituted by other elements which are data processing sections in the matrix section 28 or software executed in the data processing section. The output can be controlled by changing the parameters or processing details.
  • the access method to the RAMs 26a to 26d and 27a to 27d which are the first memories that constitute the cache system, and the DRAM that is the main memory (the second memory)
  • the access method to 2 can be flexibly determined according to the conditions inside the matrix 28, for example, the configuration of the data flow or the processing result.
  • the matrix section 28 can be reconfigured under the control of the basic processor 11, the data paths and the internal data paths of the elements 30a, 30b, 30g and 30h that generate these addresses are provided. Functions can be dynamically reconfigured, and connections to other external elements can be dynamically reconfigured. Of course, connections within and between elements can be reconfigured inside the matrix section 28 It is also possible to bring in functions. Therefore, when the connection of the other elements 30 of the matrix section 28 is changed according to the processing executed in the matrix section 28 to reconstruct the data flow or the data path structure, the buffer composed of the input RAM is used.
  • buffer 27 comprising output RAM 26 and output RAM.
  • a data processing sequence is constituted by the other elements 30 in the matrix section 28, a data input structure suitable for the data processing sequence is realized, and data loading is started in advance, Even after the data processing sequence is reconfigured for other processing, processing that could not be considered in the past, such as maintaining the data output structure and continuing only data output, can be executed extremely flexibly.
  • the processing of the first memory, RAM 26 and 27, and the second memory, DRAM 2 can be performed freely, depending on whether other elements are dependent on data flow or independent. It can be performed at any time.
  • the element 30 a When the input RAM 26 a becomes empty, the element 30 a outputs the input write address 65 to write data from the RAM 2, and the element 3 Ob receives the input RAM 26 a. If there is data in 26a, it is also possible to perform a process of loading the data into the matrix unit 28. This makes it possible to move the elements 30a and 30b independently and in parallel. The data in the external RAM2 can be prefetched to the input RAM 26a without wasting time. In addition, if the element 30a controls the address for inputting data from the external RAM 2, in the data processing system composed of the element 30b and the matrix section 28, the processing can be performed only with the address of the internal RAM 26a. It is possible.
  • a data flow type processing system is defined by a plurality of other elements 30 in the matrix section 28, the data processing can be performed in the matrix section 28 only with the data excluding the end address. is there.
  • a virtual address is output from the data processing sequence of the matrix section 28, and is converted into the physical address of the input RAM 26a at element 30b to supply the data. If there is no data in the input RAM 26, the element 30a It is also possible to convert to the physical address of the external RAM 2 and load it from the external RAM 2.
  • the element (BLA) 30a can also be configured to generate an address by data input from the input RAM 26b, and thereby load data from the external RAM 2 to the input RAM 26a. Therefore, independent of the data processing sequence configured in the matrix section 28, complete indirect addressing control can be performed only by a mechanism for processing input / output to / from the input RAM 26 or the output RAM 27. Further, by linking the plurality of input RAMs 26a to 26d, the output RAMs 27a to 27d, and the access arbitration unit 25, a cache structure having a plurality of hierarchical structures can be realized.
  • the AAP 20 of this example four input RAMs 26a to 26d and four output RAMs 27a to 27d are provided corresponding to the arrangement of the elements 30 in four columns. Therefore, these input RAMs 26a to 26d and output RAMs 27a to 27d can be used for the matrix unit 28 as a cache memory individually corresponding to a plurality of data processing series constituted by other elements 30. For this reason, when a plurality of jobs or applications are executed in the matrix unit 28, the input RAMs 26a to 26d and the output RAMs 27a to 27d are used as the optimal caches for the jobs or applications. it can.
  • the element 30 has four rows and the S row, the data processing series constituted by the element 30 is not limited to four rows.
  • Matrix section 28 If the data processing sequence to be configured is three columns or less, by assigning a plurality of RAMs of the input RAMs 26a to 26d and the output RAMs 27a to 27d to one data processing sequence, The capacity of the cache memory can be increased. If the number of data processing lines is 5 or more, one RAM is allocated to a plurality of data processing lines as cache memory, but at the worst, it is a data processing line that shares RAM and multiplied by the current CPU core. Only the same situation occurs when the task is cached.
  • the system LSI 10 which is an integrated circuit device or a processing device of the present invention, has a structure or assembly 29 having a matrix unit as a processing unit and a small-capacity RAM.
  • the address output from the matrix unit to the external RAM 2 is supplied to the external RAM 2 via the arbitration circuit 25. Since the address generation mechanism that controls the input / output of the small-capacity RAM is implemented by a matrix part that can reconfigure the data flow, the architecture that controls the small-capacity RAM that functions as a cache memory is also reconfigured. It is possible, and the configuration can be changed to the optimal configuration for the software executed in the matrix section.
  • a small-capacity RAM can be most efficiently used as a cache memory according to the processing content of the software to be executed and the hardware environment.
  • the cache memory and the circuit that controls the cache memory can be configured so that a high hit rate can be obtained, and the input and output of the cache memory is an overhead when executing the software.
  • An integrated circuit device or a processing device such as a system LSI or AS IC that cannot be provided can be provided.
  • the external memory controllable by the system LSI 10, that is, the second memory is not limited to the RAM.
  • the external memory for the input RAM or output RAM is not limited to RAM, ROM, or a recording device such as a hard disk device, and data can be input / output by specifying an address. All devices are included.
  • the LSI 10 controls the large-capacity RAM 2 and the peripheral device 3 such as a printer / display as an external memory
  • the element BL to be block-loaded in the matrix unit 28 is used.
  • A30a and BSA30h a physical address assigned to peripheral device 3 may be generated.
  • the arbitration circuit 25 may be provided in a multiplicity. Deformation is also possible. Further, the large capacity RAM 2 can be mounted inside the LI S 10, and a configuration in which the large capacity RAM 2 is used as a cache memory for the peripheral device 3 is also possible. It is also possible to use the large-capacity RAM 2 as the code RAM of the processor 11.
  • the configuration of the matrix section 28 described above is an example, and the present invention is not limited to this.
  • the elements described above for the specific internal data path 32 that performs the operation are examples of those having a data path suitable for specific processing such as address generation, arithmetic operation, logical operation, multiplication, and delay.
  • the function and configuration are not limited to this example.
  • the data flow is changed by arranging elements having a data path of a function suitable for an application executed by the LSI 10 which is the integrated circuit device or the data processing device of the present invention in a matrix or array.
  • a reconfigurable processing unit can be provided.
  • the matrix section 28 may be plural, and by arranging a plurality of matrix sections in a plane or three-dimensionally, it is possible to construct an integrated circuit device having a larger number of elements. Is possible.
  • the integrated circuit device of the present invention is not limited to an electronic circuit, but can be applied to an optical circuit or an optoelectronic circuit.
  • the present invention is described by an example in which the AA P 20, the basic processor 11, and the bus control unit 15 are incorporated and provided as a system LSI 10, but which range is provided as one chip It depends on conditions such as the application to be implemented.
  • the AAP 20 can be provided as a single chip, or the range 29 including the RAMs 26 and 27 serving as caches and the matrix section 28 can be formed into chips. Further, it is also possible to provide a larger system LSI or ASIC including a plurality of AAPs or other dedicated circuits in addition to the basic processor 15.
  • a processing unit replacing the FPGA with the matrix unit 28 is used.
  • FPGA is an architecture that can change the data path structure with versatility at the transistor level.
  • the integrated circuit device which has been studied is also being studied.
  • the first and second address outputs of the present invention that allow the input RAM 26 and the output RAM 27 to function as a cache in addition to the data processing section for a processing unit configured with such an architecture.
  • the integrated circuit device or the processing device of the present invention can be realized.
  • the architecture based on the matrix unit described above has different types of internal data paths and different elements. Therefore, it is not an architecture that requires the versatility of transistor transistors, so the mounting density can be improved and a compact and economical system can be provided.
  • Each element 30 is provided with a data path section 32 dedicated to specific data processing, so that a redundant configuration can be reduced as much as possible, and a basic functional unit of an FPGA or other single configuration is provided.
  • the processing speed can be greatly increased and the AC characteristics can be improved as compared with the processing unit in which the cells are arranged. Also, space efficiency is improved, so a compact layout can be adopted and the wiring length can be reduced. Therefore, a processing device that is optimal for an integrated circuit device and a processing device that can reliably utilize the efficient cache structure disclosed in the present invention and that can perform high-speed processing can be provided at low cost.
  • the combination of elements 30 with a data path section 32 suitable for specific processing is changed in advance, so that the data processing unit can be implemented in almost one clock in a short time. That is, there is also an advantage that the configuration and function of the data processing sequence configured in the matrix unit 28 can be changed.
  • the data path section 3.2 The functions of the selectors and logic gates such as the ALU can also be set independently by the processor 11 via the conformation memory 39, and the data path section 32 of each element 30 is It can be changed flexibly within the range of the function to be served. For this reason, the range of functions that can be executed in the data flow type data processing in the matrix section 28 of this example is very wide.
  • the first address output section and the second address output section that control the first memory that can be used as a cache memory and the processing unit that can change the data flow are formed. .
  • the configuration of the cache system can be dynamically changed to the configuration of the data processing partition and the configuration that is optimal for the software to be executed in the cache system, and a high hit ratio can be obtained when executing various software.
  • the processing unit and the integrated circuit device of the present invention can be provided as a system LSI or ASIC capable of executing various data processing. Further, the processing unit and the integrated circuit device of the present invention are not limited to electronic circuits, but can be applied to optical circuits or optoelectronic circuits. Since the integrated circuit device of the present invention can execute data processing at high speed by reconfigurable hardware, it is suitable for a data processing device requiring high-speed and real-time properties such as network processing and image processing. is there.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)

Description

技術分野
本発明は、 データフローを再構成可能な集積回路装置に関するものである。 背景技術
R AM、 R OMあるいは磁気ディスクなどのメモリに格納されたデータあるい 田
は命令 (以降においては、 特に命令とデータを区別する必要がないときはデータ と称する) を C P Uなどで処理する場合、 キャッシュあるいはキャッシュメモリ と呼ばれる比較的小容量ではあるが高速なメモリを用い、 データの時間的局所性 あるいは空間的局所性を利用してデータへのアクセス速度を向上するようにして いる。 したがって、 プロセッサあるいはプロセッサコアを搭載した、 V L S I、 システム L S Iあるいはシステム A S I Cなどと称される集積回路装置において は、 キャッシュメモリとそれを制御する MMUなどの回路を備えたキャッシュシ ステムが搭載されている。
キャッシュメモリを利用する場合は、 MMU (Memory Management Unit) お よぴ T L B (Translation Look-aside Buffer)を用いて、 C P Uコアから出力される 仮想あるいは論理アドレスに対応したデータがキャッシュメモリにあれば、 C P Uコアに対してはキャッシュメモリのデータが入出力される。 キャッシュメモリ にデータがない場合は、 MMUおよび T L Bによって仮想ァドレスが物理ァドレ スに変換されて外部のメモリに対して入出力が発生し、 キャッシュメモリのデー タも更新される。 したがって、 MMUなどを備えたキャッシュ制御機構により、 C P Uコアで動作するソフトウェアに対しては、 キャッシュメモリは透過的な存 在となるように構成されている。 このため、 ソフトウェアはハードウェアに依存 しない仮想ァドレスに基づき動作するように開発すれば良く、 開発および設計に かかる時間およびコストを低減することができる。 また、 同一のソフトウェアを、 異なるハードウェアでも稼動させることができ、 ソフトウェア資産を有効に利用 できる。
C P Uコアから出力された仮想ァドレスのデータがキャッシュメモリに存在し ない、 すなわち、 キャッシュメモリにヒットしないときは外部メモリに対して入 出力処理が発生する。 したがって、 キャッシュメモリのヒット率が少ない場合は、 キャッシュメモリは単にオーバヘッドになるだけであり、 プログラムの実行時間 に悪影響を及ぼす。 このため、 ヒット率を改善するために、 命令キャッシュと データキャッシュを分離したり、 キャッシュを多階層化したり、 機械的にあるい はソフトウェア的にプリフェッチするなどの技術が検討されている。
しかしながら、 命令キャッシュとデータキャッシュを分離する場合は、 1つの ブロックに命令とデータが同時に存在すると、 その取り扱いが難しくなる。 たと えば、 命令を書き換える処理があるとソフトウェアの処理に支障をきたす可能性 がある。 さらに、 命令とデータへのアクセスが均等でないソフトウェアでは、 単 にキャッシュを分離しても効率は向上しない。 たとえば、 データへのアクセスが 離散的であれば、 データキャッシュの利用効率が低くなり、 オーバヘッドになつ てしまう可能性もある。
多階層キャッシュは、 キャッシュと外部メモリとのアクセス時間や記憶容量の 差が大きい場合は有効である。 しかしながら、 多階層化することによりメモリに アクセスする回数は必然的に增加するので、 ソフトウェアの構成や、 処理する データの入出力メディァなどの条件によつてはオーバへッドになる可能性は常に ある。
プリフェッチした場合でも、 分岐などのときのペナルティ一を解消することは できない。 数値計算プログラムにおいて配列要素の参照が多く、 アクセスする要 素が予め予想できるソフトウエアであると、 プリフェッチ命令を用いてキヤッ シュのペナルティ一は減少できるが、 プリフェッチ命令を実行するために C P U の時間を費やすことになり、 効果的に利用できるソフトウェアは限定される。
上述したように、 いずれの技術も、 C P Uで実行するソフトウェアと、 データ が格納されているメディアなどの条件がキャッシュメモリの方式と合致する場合 は、 キャッシュメモリのヒット率を向上することは可能である。 しかしながら、 キャッシュメモリは外部メモリとの間に中間的に配置されるハードウェアである ために、 実行されるソフトウェアの処理内容や、 そのソフトウェアの処理対象と なるデータが格納されたハードウヱァの環境などが異なると、 予定している キャッシュ効率が得られなかったり、 逆にオーバヘッドになり、 プロセッサの実 行時間を低下させる要因となる。 特定のアプリケーションに特化したプロセッサ であれば最適なキャッシュメモリシステムを採用できるかもしれない。 しかしな がら、 ある程度の汎用性を目指したプロセッサであると、 キャッシュメモリを活 かすためには、 それほど効果的ではないとしても、 オーバヘッドになることの少 ないキャッシュメモリシステムを導入することになる。 したがって、 キャッシュ メモリシステムがあってもそれほど性能が向上しないということになる。
そこで、 本発明においては、 プロセッサで実行されるソフトウェアの処理内容 やハードウェア環境に対応して、 キャッシュとして最も効率良く利用することが できるメモリを有する集積回路装置を提供することを目的としている。 また、 メ モリを、 キャッシュとして最も効率良く利用することができる制御機能を備えた 集積回路装置を提供することを目的としている。 そして、 様々なソフトウェアを さらに効率良く実行することができる集積回路装置を提供することを目的として いる。 発明の開示
近年、 データパスの構成またはデータフローの少なくとも 1部を変更可能な処 理ユニットが登場している。 F P GA (Field Programmable Gate Array) は、 単 一な構成で論理を変更可能な論理エレメントまたは論理プロックをァレイ状に敷 き詰めてその間の結線を自由に変更し、 データパスの構造を変更することができ る集積回路装置である。 また、 命令セットにより種々の処理を行う中規模な単一 構成の基本機能ュニットを用いてデータパスの構造を変更可能とした集積回路装 置も検討されている。 さらに、 本願の出願人は、 それぞれ異なる特定の処理に適 した内部データパスを備えた複数種類の専用処理要素と、 これらの専用処理要素 を接続する配線群とを備えた処理ユニットを開発している。 そこで、 これらの データフローを変更または再構成可能な処理ュニットの一部によりキャッシュメ モリを制御する回路を構成する。 すなわち、 本発明の集積回路装置は、 第 2のメモリとの間でデータを入力およ び/または出力可能な第 1のメモリと、 少なくとも 1つのデータフローが形成さ れ、 そのデータフローの少なくとも 1部を変更可能な処理ユニットとを有し、 こ の処理ュニットは、 第 1のメモリとの間で入力および/または出力されるデータ を処理するデータ処理区画と、 第 1のメモリとデ タ処理区画との間で入力およ び/または出力されるデータの第 1のァドレスを出力する第 1のァドレス出力区 画と、 第 2のメモリと第 1のメモリとの間で入力および Zまたは出力されるデー タの第 2のアドレスを出力する第 2のァドレス出力区画とを備えている。 データ フローを変更可能な処理ュニットの一部により第 1および第 2のァドレス出力区 画を構成することにより、 データ処理区画のハードウェア構成あるいはデータ処 理区画で実行するソフトウエアにより、 第 1のァドレス出力区画または第 2のァ ドレス出力区画のデータフローを変更したり、 それぞれの区画の出力を制御する ことが可能となる。 したがって、 この集積回路装置で実行する処理に最も適した キャッシュメモリシステムをこの集積回路装置に構成できる。 あるいは、 集積回 路装置で実行する処理に最も適したキャッシュメモリの制御を行うように、 キャッシュメモリの制御回路を集積回路装置に構成することができる。
本発明の集積回路装置では、 キャッシュメモリとなる第 1のメモリを、 第 2の メモリに対する第 2のァドレス、 すなわち、 データの第 2のメモリにおける物理 アドレス、 または物理ァドレスに変換可能な論理ァドレスあるいは仮想ァドレス により受動的に制御することも可能である。 この制御により、 第 2のメモリおよ び/またはデータ処理区画に対して第 1のメモリが透過的に存在するように構成 することも可能である。 それに加えて、 データ処理区画および Zまたは第 1のァ ドレス出力区画からのデータあるいは信号により、 さらには、 データ処理区画お よび第 1のァドレス出力区画のいずれからも独立して、 第 2のアドレス出力区画 が能動的にデータの入出力を制御することが可能である。 また、 データ処理区画 および第 1のァドレス出力区画と並列に、 第 1および第 2のメモリ間における データの入出力動作を制御することも可能である。 したがって、 第 2のアドレス 出力区画により、 データ処理区画および第 1のァドレス出力区画のデータのァク セス先を決定するような構成も可能となり、 従来の C P Uに対し透過的なキヤッ シュではなく、 逆に処理ュニットにおける処理を制御するようなキャッシュを構 成することが可能となる。
すなわち、 従来のキャッシュのアーキテクチャは、 C P Uコアあるいは D S P コアなどの画一的なハードウェア構成の処理機構で動作するソフトウェアに対し て、 平均的に実行速度を向上できるように、 ユニホームで透過的なインターフエ イスを提供するように構成されている。 これに対し、 本発明の集積回路装置にお いては、 F P GAなどのデータパスの構成そのものを変更可能なアーキテクチャ により、 コアとなるデータ処理区画が提供されるので、 それにあわせて、 キヤッ シュの構成もデータ処理区画の構成、 およびそこで実行されるソフトウェアに最 適な構成に動的に変更可能にするものである。 したがって、 ユニホームで透過的 である必要はなく、 コアあるいは実行部であるデータ処理区画に対して、 従来の キャッシュとまったく異なったインターフェイスあるいはサービスを提供するこ とが可能となる。
このため、 本発明の集積回路装置では、 処理ユニットで実行されるソフトゥェ ァの処理内容やハードウェア環境に応じて、 第 1のメモリをキャッシュとして最 も効率良く利用することができる。 そして、 種々のソフトウェアを実行する際に、 高いヒット率が得られるようにキャッシュシステムを構成でき、 キャッシュメモ リの入出力がソフトウエアを実行する際のオーバへッドとならない集積回路装置 を提供することができる。
たとえば、 データ処理区画で実行されるデータの第 2のメモリにおけるァドレ スが判明している場合は、 第 1のメモリのデータ残存量などによって第 2のアド レス出力区画が独立してデータをプリフェッチすることが可能である。 したがつ て、 データ処理区画の処理時間を消費せずにキャッシュとなる第 2のメモリに データをハードウエア的に、 あるいは第 2のァドレス出力区画を制御するソフト ウェアによりプリフェッチすることができる。 たとえば、 第 1のアドレス出力区 画からは第 1のアドレスとして第 1のメモリのアドレス、 すなわち、 第 1のメモ リの物理ァドレス、 あるいは物理ァドレスに変換可能な仮想あるいは論理ァドレ スを出力し、 第 2のァドレス出力区画からは第 2のァドレスとして第 2のメモリ のアドレス、 すなわち、 第 1のメモリの物理アドレス、 あるいは物理アドレスに 変換可 t|な仮想あるいは論理アドレスを出力する。 さらに、 データ処理区画では、 キャッシュメモリとなる第 1のメモリのァドレスで処理が進むようにハードゥエ ァあるいはソフトウェアを構成することができる。
さらに、 第 2のアドレス出力区画を、 データ処理区画および/または第 1のァ ドレス出力区画とは非同期に、 すなわち独立して動作可能とすることが望ましく、 これにより、 データ処理区画とは独立して並列処理でプリフェッチすることが可 能となる。 第 2のメモリに対する入力と出力を並列に独立して処理できるように、 第 1のメモリは非同期に、 すなわち、 独立に入出力可能な複数の格納区画、 たと えば複数のメモリバンクを備えていることが望ましい。
また、 第 2のアドレス出力区画が独自で、 あるいはデータ処理区画との組み合 わせにより、 第 1のメモリのデータに基づいて第 2のァドレスを出力するように 構成することも可能であり、 間接ァドレッシングによるデータ処理を何らの制限 もなく実行することができる。
キャッシュとして動作する第 1のメモリは、 データ処理区画に入力されるデー タを格納する第 1の入力メモリと、 データ処理区画から出力されたデータを格納 する第 1の出力メモリとを備えていることが望ましい。 これにより、 データ処理 区画に形成されるデータフローに対するデータの入力と出力とを独立して制御で きる。 第 1のァドレス出力区画からは第 1のメモリのァドレスが出力されるが、 第 1のメモリに第 1のアドレスに対応するデータがなかったり、 第 1のァドレス に対応するデータを格納するスペースがないと、 データ処理区画に形成される データフローの処理の障害となる。 したがって、 第 1のメモリとデータ処理区画 との間の入力および Zまたは出力を管理する第 1の調停ュニットを設けることが 望ましい。
第 1の調停ユニットには、 第 1のアドレスに対応するデータがない、 または、 第 1のァドレスに対応するデータを格納するスペースがないなどのデータ処理区 画との間の入力または出力の条件を満たさない場合は、 ストップ信号をデータ処 理区画に出力する機能を持たせることができる。 そして、 データ処理区画には、 ストップ信号により、 当該データ処理区画に形成された少なくとも 1つのデータ パスまたはデータフローの処理を停止する機能を持たせることにより、 第 1の調 停ュ-ットによりデータパスまたはデータフローのオンオフを制御できる。 した がって、 データ処理区画に形成されたデータパスまたはデータフローを、 処理対 象となるデータが揃うのを待つて稼動させるような制御を容易に実現できる。 第 1のメモリ力 第 1の入力メモリと第 1の出力メモリとを備えているのであ れば、 第 1の調停ユニットとして、 第 1の入力メモリからデータ処理区画への データの転送を管理する第 1の入力調停ュニットと、 データ処理区画から第 1の 出力メモリへのデータの転送を管理する第 1の出力調停ュニットとを設けること が望ましい。 これにより、 データ処理区画に形成されるデータフローの制御を入 力側と出力側とから独立に行うことができる。
さらに、 第 1のメモリ力 s、 独立に入出力可能な複数の格納区画を備えている場 合は、 第 1の調停ユニットに、 複数の格納区画のそれぞれを独立に管理する機能 を備えていることが可能である。 データ処理区画に形成される複数のデータフ ローのそれぞれを、 対応する格納区画の状態により第 1の調停ュニットにより独 立して制御できる。 一方、 第 1の調停ユニットに、 複数の格納区画を関連付けし て管理する機能を設けることも可能である。 これにより、 データ処理区画に形成 されたデータフ口一が、 所定の格納区画に外部メモリから入力されたデータを優 先して処理したり、 データフロ一からの出力を所定の格納区画を介して外部メモ リに対して優先的に出力したりする制御が容易に実現できる。
さらに、 データ処理区画に複数のデータフローが構成可能であるときには、 複 数の第 1のメモリを設け、 処理ユニットには、 各々の第 1のメモリに対応する第 1および第 2のァドレス出力区画が形成されるようにすることが望ましい。 これ により、 データ処理区画および第 1のァドレス出力区画を適切に構成することに より多階層キャッシュを構成することも可能となる。 また、 集積回路装置で実行 するプログラムによっては、 複数の第 1のメモリを命令キャッシュとデータ キャッシュとして使い分けたり、 さらには、 複数のデータ処理区画を設けたとき にそれらで処理するデータをキャッシュするために複数の第 1のメモリを使い分 け、 第 2のァドレス出力区画によりそれぞれの第 1のメモリにキャッシュされる データを適切に制御することが可能となる。
複数の第 2のアドレス出力区画を設ける場合は、 第 2のメモリと複数の第 1の メモリとの間の入出力を管理する第 2の調停ユニットを用意し、 第 2のアドレス は第 2の調停ユニットに供給されるようにすることが望ましい。 これにより、 第 2のメモリが外部メモリであるときに、 その外部メモリに対して従来と同様に本 発明の集積回路装置はアクセスできる。 また、 第 2のメモリが同一チップ内に形 成された集積回路装置においては、 第 2のメモリが第 3のメモリとの間でデータ を入力および Zまたは出力可能として、 第 3のメモリと第 2のメモリとの間で入 力および /"または出力されるデータの第 3のァドレスを出力する第 3のァドレス 出力手段も設けてキャッシュメモリを多階層化することが可能である。 すなわち、 第 3のメモリが外部メモリであれば、 第 1および第 2のメモリによりキャッシュ メモリが構成される。 この第 3のアドレス出力手段は、 MMUなどの従来の キャッシュ制御機構であっても良く、 第 2のァドレス出力区画と同様に構成する ことも可能である。 第 4あるいはそれ以上の階層のメモリ (R OM、 R AMに限 らず、 ディスクなどの様々なタイプの記録媒体を含む) を対象として制御する場 合も同様である。
データフローを変更あるいは再構成可能な処理ユニットは、 機能を変更可能な 複数の単一種類の論理要素と、 これらの論理要素を接続する配線群とを備えてい るもの、 すなわち、 上述した F P G Aや、 中規模な単一構成の基本機能ユニット を用いてデータパス構造またはデータフ口一を変更可能としたものであっても良 レ、。 それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の専用 処理要素と、 これらの専用処理要素を接続する配線群とを備えている処理ュニッ トを採用することが可能である。 そして、 このような再構成可能な処理ユニット であれば、 了ドレスを出力するのに適した内部データパスを備えた専用処理要素 を予め組み込むことが可能であり、 アドレスを発生する処理効率を高め、 処理速 度をさらに向上できる。 また、 余剰な回路要素の存在を低減できるので、 データ フローを変更するために選択する要素も低減でき、 A C特性も向上でき、 さらに、 スペース効率も高くなる。
したがって、 処理ュニットのデータフローの少なくとも 1部の変更を指示する 制御ユニットが、 処理ユニットに対し、 上述したデータ処理区画と、 第 1のアド レス出力区画と、 第 2のァドレス出力区画とを構成するように指示する工程を実 行することにより、 データフローをフレキシブルに、 そして短時間にダイナミツ クに変更できる。 そして、 フレキシブルなキャッシュシステムを備えた、 コンパ クトで経済的な集積回路装置を提供できる。
処理ュニットのデータフローの変更を容易にするために、 専用処理要素間の接 続を変更可能とすると共に、 専用処理要素の内部データパスの一部を選択する手 段と、 内部のデータパスの選択を記憶するコンフィグレイシヨンメモリとを設け ることが望ましい。 制御ユニットは、 コンフィグレイシヨンメモリの内容を書き 換えたり、 処理ュニットのデータフローの少なくとも 1部の変更を指示すること によりデータフローを再構成できる。 さらに、 専用処理要素を備えた処理ュニッ トであれば、 この制御ユニットにより、 データ処理区画、 第 1のアドレス出力区 画、 または、 第 2のアドレス出力区画のデータフローの変更を非同期または独立 して指示することが可能となる。 これにより、 第 1のメモリに対してデータを入 出力している間は、 データ処理区画および/または第 1のァドレス出力区画を構 成する専用処理要素を、 別の目的のデータフローを構成するために使用したり、 逆に、 データ処理区画で処理を実行している間は、 第 2のアドレス出力区画の専 用処理要素を異なるメモリの制御に用いたり、 あるいは異なる目的で利用したり することが可能となり、 処理ユエットのリソースをフレキシブルに効率良く活用 できる。
さらに、 制御ュニットに上記の処理を行わせるプログラムコードを記憶する コードメモリを搭載することにより、 ワンチップのシステム L S Iなどの集積回 路装置を構成することが可能となる。 したがって、 様々な目的のソフトウェアに 対し、 キャッシュがオーバヘッドとならず、 効率的に利用し、 実行速度を向上で きる集積回路装置を提供できる。 また、 データフローを再構成可能な処理ュニッ トを単体のチップあるいはプロセッサコアとして提供したり、 キャッシュメモリ となる第 1のメモリを搭載した状態でチップとして提供することも可能であり、 本発明を実現可能な形態は様々であり、 それらの形態を含む処理装置も本発明に 含まれる。 図面の簡単な説明
図 1は、 本発明の実施の形態に係る集積回路装置の概略構成を示すプロック図 である。
図 2は、 処理ュニットである AA Pの概略構成を示す図である。
図 3は、 マトリクス部の概略構成を示す図である。
図 4は、 了ドレスを出力する処理に適したデータパス部の例である。
図 5は、 図 4に示したデータパス部のァドレス発生回路の構成を示す図である。 図 6は、 図 5に示したカウンタの構成を示す図である。
図 7は、 図 5と異なるアドレス発生回路の構成を示す図である。
図 8は、 大容量 RAMを外部メモリとして制御する様子を示す図である。
図 9は、 大容量 R AMおよび周辺デバイスを外部メモリとして制御する様子を 示す図である。
図 1 0は、 複数の大容量 R AMおよび周辺デバイスを外部メモリとして制御す る様子を示す図である。
図 1 1は、 本発明の異なる集積回路装置により大容量 R AMを外部メモリとし て制御する様子を示す図である。 発明を実施するための最良の形態
以下に図面を参照しながら、 本発明についてさらに説明する。 図 1に、 本発明 に係るシステム L S I 1 0の概略構成を示してある。 この L S I 1 0は、 プログ ラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処 理を行う汎用な構成のプロセッサ部 (以降では基本プロセッサまたはプロセッ サ) 1 1と、 マトリクス状に配置された演算あるいは論理エレメントにより特定 のデータ処理に適合したデータフローあるいは擬似データフ口一がバリアブノレに 开成される AA P (Adoptive Application Processor) 部あるいは A A Pユニット (以降では AA P ) 2 0と、 この AA P 2 0からの割り込み処理を制御する割り 込み制御部 1 2と、 AA P 2 0に作動用のクロック信号を供給するクロック発生 部 1 3と、 この L S I 1 0で提供可能な演算回路のフレキシビリティーをさらに 向上するための F P GA部 1 4と、 外部に対するデータの入出力を制御するバス 制御部 15とを備えたデータ処理システムである。 FPGA部 14は、 この LS I 10の外部に設けられた FPG Aチップとのインターフェイスであり、 以降で はオフチップ FPGAあるいは FPGAとして参照する。 本発明の集積回路装置 である LS I 10では、 基本プロセッサ 1 1と AAP 20は、 基本プロセッサ 1 1と AAP 20との間でデータを交換可能なデータバス 17と、 基本プロセッサ 1 1から AAP 20の構成および動作を制御するための命令バス 18とにより接 続されている。 また、 AAP 20から割り込み制御部 1 2に信号線 1 9を:^して 割り込み信号が供給され、 AAP 20における処理が終了したり、 処理中にェ ラーが発生したときは AAP 20の状態を基本プロセッサ 1 1にフィードバック できるようになつている。
AAP 20と FPGA14との間もデータバス 21により接続されており、 A AP 20から FPGA14にデータを供給して処理を行い、 その結果を A A P 2 0に返せるようになつている。 さらに、 AAP 20は、 ロードバス 22およびス トァバス 23によってパス制御ュニット 15と接続されており、 L S I 10の外 部のデータバスとの間でデータを交換できるようになつている。 したがって、 A AP 20は、 外部の DRAM2やその他のデバイスからデータを入力でき、 その データを AAP 20で処理した結果を再び外部のデバイスに出力できる。 基本プ 口セッサ 1 1もデータバス 1 1 aとバス制御ュ-ット 1 5を介して外部のデバイ スとデ一タを入出力できる。
図 2に AAPユニット 20の概要を示してある。 本例の AAPユニット 20は、 複数の算術および/または論理演算を行う論理プロック、 論理ュニットあるいは 論理要素 (以降ではエレメント) がマトリクス状に配置されたマトリクス部 28 と、 そのマトリクス部 28に対してデータを供給する入力バッファ 26と、 マト リクス部 28から出力されるデータを格納する出力バッファ 27を備えている。 これら入力バッファ 26および出力バッファ 27は、 それぞれ 4つの小容量の入 カメモリ (RAM) 26 a~26 dと、 出力メモリ (RAM) 27 a〜27 dと を備えている。 AAP 20は、 さらに、 これらの複数のメモリから構成される入 力バッファ 26および出力バッファ 27とバス制御ュ-ット 15との間における データの入出力動作を制御する外部アクセス調停ュニット (第 2の調停ュニッ ト) 25とを備えている。
本例の入力 RAM 26 a〜26 dおよび出力 RAM 27 a〜 27 dは、 各々が 1 kバイトの 2ポート RAMとして機能し、 64 kビット幅で 512バイトの深 さのある 2バンク形式の RAM81および 82として使用できるようになつてい る。 したがって、 メモリに対する入力と出力で異なるバンクを使用することによ り入出力を独立した動作として処理することが可能である。 さらに、 RAM81 および 82に対する入出力を管理する調停ユニット (第 1の調停ユニット) 85 を備えており、 入力および出力の回数をカウントすることにより各バンクのフル およびェンプティーをチェックできるようになつている。
これら入力 RAM 26 a〜26 dおよび出力 RAM 27 a〜27 dの入出力を 制御するために、 マトリクス部 28とそれぞれの RAMおよび調停ュ-ット 85 との間で複数種類の制御信号が交換される。 まず、 各入力 RAM26 a〜26 d 毎に、 入力 RAM26 a〜26 dからマトリクス部 28が読み出すデータを制御 するための 16ビットの入力読み出しァドレスデ'ータ ( i r a、 第 1のァドレ ス) 61が出力される。 この入力読み出しアドレス 61は、 各入力 RAM26 a 〜26 dの論理あるいは物理アドレスである。 また、 各入カ1 八1 26 &〜26 dの調停ュニット 8 5からマトリクス部 28に、 フルおよび/またはェンプ ティーによりアドレスデータ 61の供給を制御する入力読み出しァドレスス トツ プ信号 ( i r a— s t o p) 62が出力される。 また、 調停ユニット 85からは、 マトリクス部 28から供給されたァドレスデータ 61に対応するデータがないな どの、 マトリクス部 28に対する入力条件が整わない場合も入力読み出しァドレ スストップ信号 62が出力される。
マトリクス部 28では、 このストップ信号 62によりマトリクス部 28に形成 されるデータフローをオンオフする。 したがって、 マトリクス部 28にデータフ ローが形成された後の実行工程においては、 データフローで定義された処理の実 行を各入力 RAM 26 a〜26 dの調停ュニット 85により制御することができ る。 したがって、 入力 RAM26に、 入力読み出しアドレスデータ 61に対応す るデータがなければ、 データフローの処理は待ち状態になる。 また、 入力 RAM 26に、 入力読み出しァドレスデータ 6 1に対応するデータがあれば、 32ビッ トの入力読み出しデータ (i r d) 63がマトリクス部 28に供給され、 形成さ れたデータフローにより処理され、 出力 RAM27のいずれかに出力される。 ま た、 マトリクス部 28からは入力読み出しデータ 63を制御するストップ信号 ( i r d_s t o ) 64が各入力 RAM 26 a〜26 dに出力され、 マトリク ス部 28のデータフ口一の動作が、 たとえば、 出力側による原因で停止したとき は読み出しを停止する。
各入力 RAM 26 a〜26 dの調停ュニット 85は、 基本的には、 各 RAM 2
6 a〜26 dを独立して制御する。 したがって、 各入力 RAM2.6 a〜26 dと マトリタス部 28との間のデータ交換は、 入力 RAM 26 a〜26 d毎に制御お よび実行され、 入力 RAM26 a〜26 dに対応して形成されたマトリクス部 2 8のデータフローが独立して制御される。 以下で説明する出力 RAM 27 a〜2
7 dについても同様である。 一方、 これら入力 RAM26 a〜 26 dの調停ュ ニット 85は、 入力 RAM26 a〜26 dの間の配線により、 または、 マトリク ス部 28を介した配線により接続することも可能であり、 複数の入力 RAM 26 a〜26 dを関連付けして管理することも可能である。 複数の入力 RAM26 a 〜26 dを関連付けして管理することにより、 マトリクス部 28に形成される データフロ一に対して複数の入力 RAMを割り付けることが可能である。 そして、 調停ュニット 85により、 複数の入力 RAM 26 a〜 26 dに優先順位をつけて、 優先度の高い R AMのデータからデータフローに供給するといつた制御が実現で きる。
また、 入力 RAM26 a〜26 d毎に、 バス制御ユニット 15を介して外部メ モリ 2から読み出して各入力 RAM 26 a〜26 dに書き込むデータを制御する ための 32ビッ トの入力書き込みアドレスデータ ( i w a、 第 2のアドレス) 6 5と、 そのデータタイプなどを指定可能な 4ビットの制御信号 ( i w d— t y p e) 66がマトリクス部 28から出力される。 各入力 RAM26 a〜26 dに対 応するこれらの入力書き込みアドレスデータ 65および制御信号 66は、 すべて 外部アクセス調停ユエット 25に出力される。 この入力書き込みアドレス 65は、 外部メモリである RAM2の物理ァドレス、 あるいは物理ァドレスに相当する論 理または仮想ァドレスとなる。 これに対し、 外部アクセス調停ュニット 25から 了ドレスデータ 65の出力を制御するストップ信号 (i wa— s t o p) 67が マトリクス 28に供給される。
さらに、 外部アクセス調停ュニット 25に供給された入力書き込みァドレス データ 65に呼応した 64ビットの入力書き込みデータ (i wd) 68が調停ュ ニット 25から各入力 RAM 26 a〜26 dに供給され、 各入力 RAM 26 a〜 26 dからは入力書き込みデータ 68を制御するストップ信号 (i wd— s t o p) 69が外部アクセス調停ュニット 25に出力される。
マトリクス部 28からの出力を制御するためには、 各出力 RAM 27 a〜27 d毎に、 マトリクス部 28から読み出して出力 RAM27 a〜27 dに書き込む データを制御するための 16ビッ トの出力書き込みアドレスデータ (o w a、 第 1のアドレス) 71が出力される。 この出力書き込みアドレス 71は、 各出力 R AM27 a〜27 dの論理または物理アドレスとなる。 また、 各出力 RAM27 a〜27 dの調停ュニット 85からマトリタス部 28に、 フルおょぴ /またはェ ンプティ一によりアドレスデータ 71の供給を制御する出力書き込みァドレスス トップ信号 (owa— s t o p) 72が出力される。 すなわち、 調停ユニット 8 5力 らは、 マトリクス部 28からの出力を受ける条件を満たさない場合に、 出力 書き込みアドレスストップ信号 72が出力される。 マトリクス部 28では、 この ストップ信号 72によりマトリクス部 28に形成されるデータフローをオンオフ し、 データフローで定義された処理の実行を制御する。 出力 RAM27にスぺー スがあれば、 出力書き込みアドレスデータ 71と共に 32ビットの出力書き込み データ (owd) 73がマトリクス部 28から出力される。 また、 各出力 RAM 27 a〜27 dの調停ュニット 85からマトリクス部 28に出力書き込みデータ 73を制御するストップ信号 (o wd_s t o p) 74が供給される。
また、 出力 RAM27 a〜27 d毎に、 パス制御ユニット 15を介して各入力 R AM 26 a〜 26 dから読み出して外部メモリ 2に書き込むデータを制御する ための 32ビッ トの出力読み出しアドレスデータ (o r a、 第 2のアドレス) 7 5と、 そのデータタイプなどを指定可能な 4ビットの制御信号 (o r d— t y p e) 76がマトリクス部 28から出力される。 これらの出力読み出しァドレス データ 75と制御信号 76はすべて外部アクセス調停ュニット 25に出力される。 この出力読み出しァドレス 75は、 外部メモリである DRAM 2の物理ァドレス、 あるいは物理ァドレスに相当する論理または仮想ァドレスとなる。 これに対し、 外部アクセス調停ュニット 25からァドレスデータ 75の出力を制御するストツ プ信号 (o r a_s t o p) 77がマトリクス 28に供給される。
さらに、 出力読み出しアドレスデータ 75と共に、 64ビットの出力読み出し みデータ (o r d) 78が各出力 RAM27 a〜27 dから外部アクセス調停ュ ニット 25に供給され、 外部アクセス調停ュニット 25から各出力 RAM27 a 〜27 dに出力読み出しデータ 68を制御するストップ信号 (o r d— s t o p) 79が供給される。
したがって、 本例の AAP 20においては、 マトリクス部 28の入力データ 6 3は、 複数の入力 RAM 26 a〜26 dと、 外部アクセス調停ュニット 25とを 経て外部メモリ 2とのインターフェイスとなるバス制御ュニット 15から供給さ れる。 また、 マトリクス部 28の出力データ 73は、 複数の出力 RAM27 a〜 27 dと、 外部アクセス調停ュニット 25とを経て外部メモリ 2とのインター フェイスとなるバス制御ュニット 15に供給される。 そして、 入力 RAM26 a 〜26 dおよび出力 RAM27 a〜27 dは、 各々が 2バンク構成になっている ので、 入力 RAM26 a~26 dおよび出力 RAM27 a〜27 dとマトリクス 部 28との間の処理と、 入力 RAM 26 a〜26 dおよび出力 RAM 27 a〜2 7 dと外部アクセス調停ュニット 25との間、 すなわち、 外部 RAM 2との間の 処理とを独立してあるいは非同期で並列に実行できる。
また、 外部アクセス調停ュニット 25とバス制御ュニット 15との間には、 高 速でブロック単位でデータを入出力できるように、 32ビットのアドレスバスと 256ビットのデータバスによりロードバス 22およびストァバス 23が構成さ れている。 そして、 了ドレスバスを介して入力ァドレス信号 22 aおよび出力ァ ドレス信号 23 aが伝達され、 データバスを介して入力データ 22 bおよび出力 データ 23 bが伝達される。 また、 5ビットのコマンド 22 cおよび 23 cを伝 達する信号線と、 バス制御ュニット 15のビジー信号 22 dおよび 23 dを伝達 する信号線と、 バス制御ュニット 1 5のレディー信号 22 eを伝達する信号線も 用意されている。 図 3に、 本例のマトリクス部 2 8と小容量 R AM 2 6 a〜2 6 dおよび 2 7 a 〜2 7 dを含んだ構成 2 9の概要を示してある。 このマトリクス部 2 8が、 本発 明における処理ュニットに対応するデータパスあるいはデータフローを再構成可 能なシステムである。 マトリクス部 2 8は、 複数の演算ユニットであるエレメン ト 3 0を備え、 それらのエレメント 3 0が縦方向に 4つのラインを構成するよう にアレイ状あるいはマトリクス状に配置されている。 また、 マトリクス部 2 8は、 これらのエレメント 3 0の間に配置された、 横方向に延びた行配線群 5 1と、 縦 方向に延びた列配線群 5 2とを備えている。 列配線群 5 2は、 列方向に並んだ演 算ュニット 3 0の左右に分かれて配置された配線群 5 2 Xおよび 5 2 yが 1対に なっており、 これらの配線群 5 2 Xおよび 5 2 yからデータが各々のエレメント 3 0に供給される。
行配線群 5 1および列配線群 5 2との交点にはスィツチングュ二ット 5 5が配 置されており、 行配線群 5 1の任意のチャンネルを、 列配線群 5 2の任意のチヤ ンネルに切り替えて接続できるようになつている。 各々のスィツチングュエツト 5 5は、 設定を記憶するコンフィグレイシヨン R AMを備えており、 プロセッサ 部 1 1から供給されるデータによりコンフィグレイシヨン R AMの内容を書き換 えることにより、 行配線群 5 1と列配線群 5 2の接続を動的に任意に制御できる。 このため、 本例のマトリクス部 2 8においては、 複数のエレメント 3 0の全部あ るいは一部が配線群 5 1および 5 2により接続されて形成されるデータフローの 構成を任意に動的に変更することができる。
各エレメント 3 0は、 1 aの列酉己線群 5 2 xおよび 5 2 yのそれぞれから入力 データを選択するための 1組のセレクタ 3 1と、 選択された入力データ d i Xお ょぴ d i yに特定の算術および Zまたは論理演算処理を施し、 出力データ d oと して行配線群 5 1に出力する内部データパス部 3 2を備えている。 そして、 本例 のマトリクス部 2 8には、 各行毎に異なる処理を行うための内部データパス部 3 2を備えたエレメント 3 0が並んで配置されている。 さらに、 これらの酉己線群 5 1および 5 2には、 キャリー信号を伝送する配線も用意されている。 キャリー信 号は、 桁上げ用の信号や真偽を示す信号として使用することが可能であり、 本例 のマトリクス部 2 8では、 各エレメント 3 0において算術演算および論理演算を 制御したり、 結果を他のエレメント 3◦に伝 j - るためなどに利用される。
まず、 第 1行目に配列されたエレメント 3 0は、 入力バッファ 2 6からのデー タを受信する処理に適したデータパス部 3 2 iを備えている。 ロード用のデータ パス部 (L D) 3 2 iは、 単にデータを受け入れるだけであれば、 論理ゲートは 不要であり、 ロードバス 2 2からデータを受信して、 行配線群 5 1に出力する。 本例のマトリクス部 2 8においては、 ロード用のデータパス部 3 2 iは、 入力 R AM 2 6の R AM調停ュニット 8 5からストップ信号 6 2を受けると、 このデー タパス部 3 2 iのエレメント 3 0に繋がったデータフローの処理を停止する機能 を備えている。 さらに、 マトリクス部 2 8の内部要因や、 出力側の要因により データパス部 3 2 iのエレメントに繋がったデータフローを停止するときは、 対 応する入力 R AM 2 6の調停ュニット 8 5に対してストップ信号 6 4を出力する 機能を備えている。
第 2行目に配置されたエレメント 3 0 aは、 入力バッファ 2 6の入力 R AM 2 6 a〜2 6 dの各々に外部 RAM 2からデータを書き込むためのエレメントであ り、 第 2のアドレス出力区画に対応する。 したがって、 ブロックロードするため のアドレス (第 2のアドレス) を発生するのに適した内部データパスを具備する データパス部 3 2 aを備えている。 このデータパス部 3 2 aは、 B L A (Back Ground Load Address Generator) と称される。 図 4は、 データパス部 3 2 aの一 例であり、 カウンタなどからなるアドレス発生回路 3 8を備えており、 そのアド レス発生回路 3 8からアドレスが出力信号 d oとして出力される。 出力信号 d o は、 行配線群 5 1およぴ列配線群 5 2を介して、 そのまま、 あるいは、 他のエレ メント 3 0によって処理された後に入力信号 d i xあるいは d i yとしてデータ パス部 3 2に供給され、 供給されたアドレスのいずれかがセレクタ S E Lで選択 されてフリップフロップ F Fを介してマトリクス部 2 8からアクセス調停ュニッ ト 2 5に入力書き込みアドレス 6 5として出力される。
マトリクス 2 8を構成する全てのエレメント 3 0と同様に、 このアドレスを発 生するエレメント 3 0もァドレス発生回路 3 8やセレクタ S E Lの状態を設定す るコンフィグレイシヨン R AM 3 9を備えており、 このコンフィグレイションメ モリ 3 9のデータは基本プロセッサ 1 1よりの制御信号 1 8によりセットされる。 図 5にァドレス発生回路 38の一例を示してある。 このァドレス発生回路 38 は、 複数のカウンタ 38 aと、 これらのカウンタ 38 aからの出力を演算してァ ドレスとして出力する加算器 38 bとを備えている。 各々のカウンタ 38 aは、 図 6に示したように、 算術演算ユニット ALU38 cと、 コンパレータ 38 dと が組み合わされた構成となっており、 ALU38 cは、 ADD、 SUB、 B I T シフト、 OR、 XORやそれらを組み合わせた演算を行うようにセットすること が可能である。 したがって、 クロックが来る度に値を発生する関数発生回路とし ての機能があり、 このカウンタ 3.8 aの機能はコンフィグレイション RAM39 を介してプロセッサ部 11からセットすることができる。
また、 ALU 38 cの制御信号 e nを他のカウンタ 38 aから供給されるキヤ リー信号 c yによりセットしたり、 コンパレータ 38 dの出力をキャリー信号 c yとして他のカウンタ 38 aに伝達できる。 このようにキャリー信号を利用する ことにより、 カウンタ 38 aの状態により他のカウンタ 38 aの状態をセットし、 任意のアドレスを発生させることができる。 さらに、 本図には示されていないが、 カウンタ 38 aの制御信号 e nを他のエレメント 30から供給されるキャリー信 号 c yによりセットしたり、 他のエレメント 30に伝達できる。
したがって、 この入力書き込みアドレス 65を出力するエレメント (BLA) 30 aは、 内部データパス 32 aとしてァドレス発生回路 38を備えたァドレス 発生に適した構成であると共に、 コンフィグレイシヨン RAM39を通じてプロ セッサ 1 1からアドレス発生の処理内容を制御することが可能であり、 さらに、 他のエレメント 30との関連性も自由にセットすることができる。 BLA32 a に含まれる複数のカウンタ 38 aは、 たとえば、 32ビットのカウンタであり、 外部メモリ 2からローカルストァバッファである RAM26 a〜26 bへ DMA 転送するためのァドレスを発生する。
図 3の第 3行目に配置されたエレメント 30 bは、 入力 RAM 26 a〜26 d の各々より所望のデータをマトリクス部 28へロードする入力読み出しアドレス 6 1を発生するデータパス部 32 bを備えており、 第 1のアドレス出力区画に対 応する。 このデータパス部 32 bは、 LDA (Load Address Generator) と称さ れる。 このデータパス部 32 bの構成は、 出力されるァドレスが 32ビットでは なく 16ビットであることを除き、 基本的には上記のァドレス発生用の内部デー タパス部 32 aの構成と同じである。 したがって、 データパス部 32 bの基本的 構成は図 4に示した通りである。
LDA32 bに含まれるァドレス発生回路 38の一例を図 7に示してある。 こ のアドレス発生回路 38は、 4つの 1 6ビッ トカウンタ 38 aを備えており、 ローカルストァバッファである R A M 26 a〜 26 bからマトリクス部 28へ データを転送するためのアドレスを発生する。 また、 カウンタ 38 aの制御信号 e nは他のエレメント 30から供給されるキャリー信号 c yによりセットでき、 さらに、 他のエレメント 30に伝達できるように構成されている。 このエレメン ト 30から出力された入力読み出しァドレス 61により、 入力 RAM26 a〜2 6 dよりマトリクス部 28へデータが供給され、 マトリクス部 28を構成する他 の論理および演算エレメントにより演算処理される。
第 4行目および第 5行目に配列されたエレメント 30 cは、 算術演算および論 理演算に適したデータパス部 (SMA) 32 cを備えている。 このデータパス部 32 cは、 たとえば、 シフト回路、 マスク回路、 論理演算ユニット ALUおよび ALUで処理する演算をセットするコンフィグレイシヨン RAM 39を備えてい る。 したがって、 プロセッサ 1 1が書き込んだ命令により、 入力データ d i お よび d i yを加算あるいは減算したり、 比較したり、 論理和あるいは論理積を 取ったりすることができ、 その結果が出力信号 d oとして出力される。
その下の行に配列されたエレメント 30 dは、 データが伝送されるタイミング を遅延する処理に適したデータパス部 (DEL) 32 dを備えている。 このデー タパス部 32 dには、 たとえば、 複数のセレクタとフリップフロップ FFとの組 み合わせで構成されたデータパスが用意されており、 コンフィグレイシヨン R A M39のデータによりセレクタで選択されたパスを入力信号 d i xおよび d i y が通ることにより、 任意のクロック数だけ遅延して出力信号 d o Xおよび d o y として出力される。
その下の行に配列されたエレメント 30 eは、 乗算器などを含む乗算処理に適 したデータパス部 (MUL) 32 eを備えている。 さらに異なるエレメント 30 f としては、 マトリタス部 28の外部に用意された F PGA 14とのインター フェイス用のデータパス部 32 f を備えたエレメントも用意されており、 データ をいつたん FPGA14に供給して処理した後、 再びマトリクス部 28に戻して 処理を継続することができる。
これらのデータ処理区画に相当するエレメントが配列された領域のさらに下方 には、 ストア用のアドレスを発生するのに適したデータパス部 32 gおよび 32 hをそれぞれ備えたエレメント 30 gおよび 30 hが配置されている。 これらの データパス部 32 gおよび 32 hは、 上記にて図 4から図 7を参照しながら説明 したァドレスを発生するデータパス部 32 bおよび 32 aと基本的に同一の構成 となっている。 データパス部 32 gを備えたエレメント 30 gは第 1のアドレス 出力区画であり、 マトリクス 28から出力されるデータを出力 RAM27 a〜2 7 dに書き込むための出力書き込みアドレス 71を出力する。 そして、 上述した 各種類のエレメント 30 c~30 f により構成されたデータ処理系列から出力さ れたデータを出力 RAM 27 a〜27 dに書き込む。 このデータパス部 32 gは、 STA (Store address Generator) と称され、 LDA32 bと同様の構成となる。 このエレメント (STA) 30 gの下方に配置され、 データパス部 32 hを備 えたエレメント 3 O hは、 第 2のアドレス出力区画であり、 出力 RAM27 a〜 27 dのデータを読み出して外部 RAM 2に書き込むための出力読み出しァドレ ス 75を出力し、 外部 RAM 2にマトリタス部 28で処理されたデータを書き込 む。 このデータパス部 32 hは、 B S A (Back Ground Store Address Generato r) と称され、 BLA32 aと同様の構成となる。
そして、 最下段には、 ストア用にデータを出力するのに適したデータパス部 3 2 sを備えたエレメント 30が配列されている。 このデータパス部 32 sは ST と称されており、 算術演算用のデータパス部 32 cとほぼ同様の構成のデータパ ス部を採用できる。 さらに、 本例においては、 この出力用のデータパス部 32 s は、 出力 RAM27の調停回路 85からストップ信号 74を受けると、 この出力 用のエレメント 30に繋がったデータフローの処理を停止する機能を備えている。 このように、 本例のマトリクス 28は、 外部 RAM2から入力 RAM26 a〜 26 dにデータを入力 (ブロックロードする) ためのアドレスを発生する内部 データパス (BLA) 32 aを備えたエレメント 30 aと、 それら入力 RAM2 6 a〜26 dからマトリクス部 28へデータを入力するためのァドレスを発生す る内部データパス (LDA) 32 bを備えエレメント 30 bを備えている。 さら に、 マトリクス部 28から出力 RAM27 a〜27 dへデータを出力するための アドレスを発生する内部データパス (STA) 32 gを備えたエレメント 30 g と、 出力 RAM27 a〜 27 dのデータを外部 RAM 2に出力する (ブロック ロードする) ためのアドレスを発生する内部データパス (BSA) 32 hを備え たエレメント 30 hとを備えている。 これらのエレメント 30 a、 30 b、 30 gおよび 30 hは、 上述したようにいずれもァドレスを発生させるのに適した データパスを備えていると共に、 その構成あるいは機能をコンフィグレイシヨン RAM39のデータを書き換えることにより変更できる。 そして、 マトリクス部 28の他のエレメント 30との接続環境も配線群 51および 52の接続を変える ことにより変更できる。 したがって、 プロセッサ 1 1、 あるいは、 マトリクス部 28の他のエレメント 30からァドレス発生のデータを提供したり、 アドレスを 発生するタイミングをフレキシブルに制御することが可能である。
したがって、 様々な条件および または構成で、 外部 RAM 2からキャッシュ となる入力 RAM26 a〜26 dに対しデータをロードすることができる。 また、 その処理とは別に、 非同期で、 あるいは独立して、 異なる条件で入力 RAM26 a〜26 dからマトリクス部 28へデータをロードすることが可能である。 そし て、 エレメント 30 aおよび 30 bが独立しているので、 これらの処理を並列に 実行することが可能である。 したがって、 これら複数の入力 RAM26 a〜26 dは、 それぞれが独立で入出力可能な格納区画となっている。
さらに、 入力 RAM26 a〜26 dは 2バンク構成になっているので、 入力 R AM26 a〜26 dに対する入力おょぴ出力も並列に行うことが可能であり、 入 力 RAM26 a〜26 dに対するデータの入出力が極めて効率良く行える構成と なっている。 出力 RAM27 a〜27 dも同様であり、 それぞれが独立で入出力 可能な格納区画となり、 さらに、 個々の RAM27 a〜27 dに対する入力およ び出力も独立で並列に行うことが可能である。 したがって、 このシステムでは、 キャッシュとして ¾作する RAM26 a〜26 dおよび 27 a〜27 dに対して データの入出力を極めて効率良く行うことができる。 本例のマトリタス 2 8は、 基本的にァドレス発生に適したデータパス部 3 2 a、 3 2 b、 3 2 gおよび 3 2 hをそれぞれ備えたエレメント 3 0 a、 3 0 b、 3 0 gおよび 3 0 hを備えており、 それぞれの動作は基本プロセッサ 1 1から指示に より決定される。 すなわち、 制御ユニットである基本プロセッサ 1 1から制御バ ス 2 8を介して供給される指示により、 第 1のメモリである R AM 2 6 a〜2 6 dおよび 2 7 a〜2 7 dへのアクセスする回路が決定され、 さらに、 主メモリ (第 2のメモリ) となる D R AM 2へのアクセスする回路が決定される。
さらに、 それらメモリへのアクセスを制御する回路がマトリクス内に構成され るので、 それらの回路の動作に、 マトリクス 2 8の内部における条件、 たとえば、 データフローの構成あるいは処理結果さらには、 マトリクス 2 8の他のエレメン トを用いた処理の結果が直接あるいは間接的に反映することは極めて容易である。 アドレスを発生させるのに適したエレメント 3 0 a、 3 0 b、 3 O gおよび 3 0 hは他のエレメントと同様に、 配線 5 1および 5 2により、 マトリクス部 2 8の 他のエレメントに対して自由に配線できる。 このため、 マトリクス部 2 8の中で データ処理区画となる他のエレメントにより構成されるデータフローあるいは データ処理区画で実行するソフトウェアにより、 エレメント 3 0 a、 3 0 b、 3 0 gおよび 3 0 hのパラメータあるいは処理内容を変えることにより出力を制御 できる。 さらには、 エレメント 3 0 a、 3 0 b、 3 0 gおよび 3 0 hと他のエレ メントでデータフローを構成することにより、 他のエレメントの機能をァドレス 発生用に利用することも可能である。 したがって、 キャッシュシステムを構成す る第 1のメモリである R AM 2 6 a〜2 6 dおよび 2 7 a〜2 7 dへのアクセス 方法、 さらに、 主メモリ (第 2のメモリ) となる D R AM 2へのアクセス方法を マトリクス 2 8の内部における条件、 たとえば、 データフローの構成あるいは処 理結果によりフレキシブルに決定できる。
さらに、 マトリクス部 2 8は基本プロセッサ 1 1からの制御により再構成可能 な構成なので、 これらアドレスを発生するエレメント 3 0 a、 3 0 b、 3 0 gお よび 3 0 hの内部のデータパスおよび機能を動的に再構成することが可能であり、 外部の他のエレメントとの接続も動的に再構成することができる。 もちろん、 マ トリタス部 2 8の内部にエレメント内およびエレメント間の接続を再構成できる 機能を持ち込むことも可能である。 したがって、 マトリクス部 2 8で実行する処 理内容によってマトリクス部 2 8の他のェレメント 3 0の接続を変更してデータ フローあるいはデータパス構造を再構成する際に、 入力 R AMからなるバッファ
2 6および出力 R AMからなるバッファ 2 7にデータを入出力する構成も変更す ることが可能である。
このため、 マトリクス部 2 8で実行する処理に最も適した構成でデータを入力 バッファ 2 6および出力バッファ 2 7に入出力するように構成することが可能で あり、 キャッシュとしてのヒット率を高めたり、 キャッシュの書き換えの回数を 削減したりすることが可能となる。 また、 アドレスを発生するエレメント 3 0 a、 3 0 b、 3 0 gおよび 3 0 hの内部およびこれに関連するデータパス構造を、 ェ レメント毎に再構成することも可能であり、 それぞれの R AM 2 6 a〜2 6 dお よび 2 7 a〜2 7 dの単位でキャッシュシステムを再構成することも可能である。 このため、 フレキシビリティーは非常に高い。 したがって、 マトリクス部 2 8に 他のエレメント 3 0によりデータ処理系列が構成される前に、 そのデータ処理系 列に適したデータ入力構造を実現して、 データのロードを先行して開始したり、 データ処理系列が他の処理のために再構成された後もデータ出力構造を維持して データの出力だけを継続するなどの従来では考えられなかった処理も極めてフレ キシブルに実行できる。 すなわち、 第 1のメモリである R AM 2 6および 2 7、 さらには第 2のメモリである D R AM 2に対する処理を、 他のエレメントあるレヽ はデータフローに従属した状態でも、 独立した状態でも自由に実行することがで きる。 もちろん、 アドレスを発生するエレメント 3 0 a、 3 0 b、 3 0 gおよび
3 0 hを関連して動作させることも可能であり、 複数のエレメント 3 0 aあるい は 3 0 bを関連して動作させ、 複数の R AM 2 6を 1つの大容量のキヤッシュと してマトリクス部に利用させることも可能である。
また、 エレメント 3 0 aは、 入力 R AM 2 6 aがエンプティーになると入力書 き込みァドレス 6 5を出力して R AM 2からデータを書き込む処理を行い、 エレ メント 3 O bは、 入力 R AM 2 6 aにデータがあると、 そのデータをマトリクス 部 2 8にロードする処理を行うことも可能である。 これにより、 エレメント 3 0 aおよび 3 0 bを独立に並列に動かすことが可能であり、 データ処理系列の処理 時間を浪費することなく外部 RAM2のデータを入力 RAM 26 aにプリフェツ チすることができる。 また、 エレメント 30 aが外部 RAM 2からデータを入力 するァドレスを制御すれば、 エレメント 30 bおよびマトリクス部 28に構成さ れるデータ処理系列においては、 内部 RAM26 aのァドレスだけで処理を進め ることも可能である。 さらに、 マトリクス部 28の他の複数のエレメント 30に よりデータフロータイプの処理系が定義されているようであれば、 了ドレスを除 いたデータだけでマトリクス部 28ではデータ処理を進めることも可能である。 マトリクス部 28のデータ処理系列からは仮想ァドレスが出力され、 それをェ レメント 30 bで入力 RAM 26 aの物理ァドレスに変換してデータを供給し、 入力 RAM 26 にデータがない場合はエレメント 30 aで外部 RAM 2の物理 ァドレスに変換して外部 RAM 2からロードする構成にすることも可能である。
.また、 エレメント (BLA) 30 a力 入力 RAM 26 bから入力されたデー タによりァドレスを発生し、 それにより外部 RAM2から入力 RAM26 aに データをロードするように構成することも可能である。 したがって、 マトリクス 部 28に構成されるデータ処理系列とは独立して、 入力 RAM26あるいは出力 RAM27に対する入出力を処理する機構だけで、 完全な間接アドレッシングの 制御を行うことができる。 さらに、 複数の入力 RAM26 a〜26 d、 出力 RA M27 a〜27 dさらにはアクセス調停ュニット 25を連動させることにより複 数の階層構造を備えたキヤッシュ構造を実現することも可能である。
また、 本例の AAP20では、 エレメント 30を 4列に並べているのに対応さ せて 4つの入力 RAM26 a〜26 dおよび出力 RAM27 a〜27 dを用意し ている。 したがって、 これらの入力 RAM26 a〜26 dおよび出力 RAM27 a ~27 dをマトリクス部 28に、 他のエレメント 30により構成される複数の データ処理系列に個別に対応したキャッシュメモリとして利用することができる。 このため、 マトリクス部 28で複数のジョブあるいはアプリケーションが実行さ れている場合に、 それらのジョブあるいはアプリケーションにそれぞれ最適な キャッシュとして各入力 RAM 26 a〜26 dおよび出力 RAM 27 a〜27 d を利用できる。 エレメント 30は 4列に酉 S列しているが、 エレメント 30により 構成されるデータ処理系列は 4列に限定されることはない。 マトリクス部 28に 構成されるデータ処理系列が 3列以下であれば、 入力 RAM26 a〜26 dおよ び出力 RAM 27 a〜27 dのうちの複数の R AMを 1つのデータ処理系列に割 り当てることにより、 キャッシュメモリの容量を増やすことができる。 データ処 理系列が 5列以上であれば、 キャッシュメモリとして 1つの RAMを複数のデー タ処理系列に割り当てることになるが、 最悪でも、 RAMを共用するデータ処理 系列で、 現状の C P Uコアでマルチタスクのキャッシュ処理が行われてレ、るのと 同様の状況が発生するだけである。
図 8に概要を示すように、 本発明の集積回路装置または処理装置であるシステ ム LS I 10は、 処理ュニットであるマトリタス部と小容量の RAMとを備えた 構造あるいはアセンブリ 29を備えており、 マトリクス部から外部の RAM2に 出力されるアドレスは調停回路 25を経て外部の RAM 2に供給される。 そして、 小容量の RAMの入出力を制御するァドレス発生機構はデータフローを再構成可 能なマトリクス部で実現されているので、 キャッシュメモリとして機能する小容 量の RAMを制御するアーキテクチャも再構成可能であり、 マトリクス部で実行 されるソフトウェアに最適な構成に変更することができる。 したがって、 本発明 の集積回路装置あるいは処理装置となるシステム L S I 10では、 実行されるソ フトウエアの処理内容やハードウエア環境に応じて、 小容量の RAMをキヤッ シュメモリとして最も効率良く利用することができる。 そして、 種々のソフト ウェアを実行する際に、 高いヒット率が得られるようにキャッシュメモリおよび それを制御する回路を構成でき、 キャッシュメモリの入出力がソフトウェアを実 行する際のオーバへッドとならないシステム L S Iあるいは AS I Cといった集 積回路装置あるいは処理装置を提供することができる。
また、 システム LS I 10で制御可能な外部メモリ、 すなわち、 第 2のメモリ は RAMに限定されるものではない。 入力 RAMあるいは出力 RAMに対して外 部メモリとなるものは、 RAMや ROM、 さらにはハードディスク装置のような 記録装置に限定されることはなく、 了ドレスを指定することによりデータを入出 力可能なデバイスは全て含まれる。 たとえば、 図 9に示したように、 LS I 10 が大容量 R AM 2とプリンタゃディスプレイなどの周辺デバィス 3を外部メモリ として制御する場合は、 マトリクス部 28のプロックロードするエレメント B L A 3 0 aおよび B S A 3 0 hにおいて、 周辺デバイス 3に割り当てられた物理ァ ドレスを発生すれば良い。
また、 図 1 0に示したように、 L S I 1 0が複数のバスコントローラを経て複 数の大容量 R AM 2および周辺デバイス 3を制御する場合は、 調停回路 2 5を多 重化するなどの変形も可能である。 さらに、 大容量 R AM 2を L I S 1 0の内部 に搭載することも可能であり、 その大容量 R AM 2を周辺デバィス 3に対する キャッシュメモリとして利用するような構成も可能である。 また、 大容量 R AM 2をプロセッサ部 1 1のコード R AMとして利用することも可能である。
また、 上述したマトリクス部 2 8の構成は例示であり、 これに限定されるもの ではない。 演算を行う特定の内部データパス 3 2を上述したエレメントはァドレ ス発生、 算術演算、 論理演算、 乗算、 遅延などの特定の処理に適したデータパス を備えているものの例であり、 データパスの機能や、 構成は本例に限定されるも のではない。 本発明の集積回路装置またはデータ処理装置である L S I 1 0で実 行されるアプリケーションに適した機能のデータパスを備えたエレメントをマト リクスあるいはアレイ状に酉己置することにより、 データフローを変更あるいは再 構成できる処理ユニットを提供することができる。 また、 マトリクス部 2 8は複 数であっても良く、 複数のマトリクス部を平面的に配置したり、 立体的に配置す ることにより、 さらに多数のエレメントを備えた集積回路装置を構築することが 可能である。 また、 本発明の集積回路装置は、 電子回路に限定されることはなく、 光回路あるいは光電子回路にも適用できるものである。
さらに、 上記では、 AA P 2 0、 基本プロセッサ 1 1およびバス制御ユニット 1 5を組み込んでシステム L S I 1 0として提供する例により本発明を説明して いるが、 どの範囲を 1つのチップとして提供するか実装するアプリケーションな どの条件により異なる。 AA P 2 0を 1つのチップとして提供することも可能で あるし、 キャッシュとなる R AM 2 6および 2 7とマトリクス部 2 8を含めた範 囲 2 9をチップ化することも可能である。 さらには、 基本プロセッサ 1 5に加え て複数の AA Pあるいは他の専用回路などを含めていっそう大きなシステム L S Iあるいは A S I Cとして提供することも可能である。
また、 図 1 1に示すように、 F P G Aをマトリクス部 2 8に代わる処理ュニッ トとし、 本発明のデータ処理区画に加え、 入力 R AM 2 6および出力 R AM 2 7 をキャッシュとして機能させる本発明の第 1および第 2のァドレス出力区画をプ ログラミングあるいはマッビングすることにより、 本発明の集積回路装置または 処理装置を実現することも可能である。 F P G Aは、 トランジスタレベルで汎用 性を備えたデータパス構造を変更可能なアーキテクチャである。 さらに、 トラン ジスタレベルではないが、 単一的な構成要素を備え、 命令セットにより種々の処 理を行う中規模な単一構成の基本機能ュニットを用いてデータパス構造または データフローを変更可能とした集積回路装置も検討されている。 そのようなァー キテクチャで構成された処理ユニットに対しても、 データ処理区画に加え、 入力 R AM 2 6および出力 R AM 2 7をキャッシュとして機能させる本発明の第 1お よび第 2のァドレス出力区画を構成する、 あるいは構成するように指示すること により、 本発明の集積回路装置または処理装置を実現できる。
しかしながら、 これらの単一構成の基本ュニットを並べたアーキテクチャと異 なり、 上述したマトリクス部に基づくアーキテクチャは、 複数種類の内部データ パスの異なるエレメントを備えたものである。 したがって、 トランジスタレべノレ の汎用性を要求するアーキテクチャではないので、 実装密度も向上でき、 コンパ タトで経済的なシステムを提供できる。 そして、 各々のエレメント 3 0が特定の データ処理に特化したデータパス部 3 2を備えているので、 冗長な構成を極力削 減することができ、 F P G Aや他の単一構成の基本機能ユニットを並べた処理ュ ニットに比べて大幅に処理速度を高速化でき、 A C特性も向上できる。 また、 ス ペース効率も高くなるので、 コンパクトなレイアウトを採用し、 配線長も短くで きる。 したがって、 本発明で開示している効率の良いキャッシュ構造を、 確実に 活かせる集積回路装置および処理装置には最適であり、 高速処理が可能な処理装 置を低コストで提供できる。
さらに、 トランジスタレベ^^で回路をマッピングする F P G Aと異なり、 予め 特定の処理に適したデータパス部 3 2を備えたエレメント 3 0の組み合わせを変 えるので、 短時間 、 ほとんど 1クロックでデータ処理ユニット、 すなわちマト リタス部 2 8に構成されるデータ処理系列の構成や機能を変更することができる というメリットもある。 さらに、 各々のエレメント 3 0では、 データパス部 3. 2 を構成するセレクタや A L Uなどの論理ゲートの機能もコンブイグレイシヨンメ モリ 3 9を介してプロセッサ 1 1によって独立してセットすることが可能であり、 各エレメント 3 0のデータパス部 3 2がサービスする機能の範囲内でフレキシブ ルに変更することができる。 このため、 本例のマトリクス部 2 8でデータフロー 型のデータ処理で実行可能な機能の範囲は非常に広い。 また、 ネットワーク処理 や、 画像処理などの L S I 1 0が用いられるアプリケーションに適した種類の演 算ユニット 3 0を選択し、 酉己列することが可能であり、 さらに実装効率が良く、 実行速度の速い集積回路装置を提供することが可能である。
以上に説明したように、 本発明は、 キャッシュメモリとして使用できる第 1の メモリを制御する第 1のァドレス出力区画および第 2のァドレス出力区画とデー タフローを変更可能な処理ユニットに形成している。 このため、 キャッシュシス テムの構成を、 データ処理区画の構成と、 そこで実行されるソフトウェアに最適 な構成に動的に変更でき、 種々のソフトウェアを実行する際に、 高いヒット率が 得られるキャッシュシステムを構成できる。 したがって、 様々なソフトウェアあ るいはアプリケーションをさらに短い処理時間で実行することができる集積回路 装置を提供できる。 産業上の利用可能性
本発明の処理ュニットおよび集積回路装置は、 様々なデータ処理を実行可能な システム L S Iあるいは A S I Cなどとして提供することが可能である。 また、 本発明の処理ュニットおよび集積回路装置は、 電子回路に限定されることはなく、 光回路あるいは光電子回路にも適用できるものである。 本発明の集積回路装置は、 再構成可能なハードウェアによりデータ処理を高速に実行できるので、 ネット ワーク処理や、 画像処理などの高速性およびリアルタイム性が要求されるデータ 処理装置に好適なものである。

Claims

請 求 の 範 囲
1 . 第 2のメモリとの間でデータを入力および Zまたは出力可能な第 1のメモ リと、
少なくとも 1つのデータフローが形成され、 その少なくとも 1つのデータフ 口一の少なくとも 1部を変更可能な処理ユエットとを有し、
この処理ュ-ットは、 前記第 1のメモリとの間で入力および/または出力され るデータを処理するデータ処理区画と、
前記第 1のメモリと前記データ処理区画との間で入力および/または出力され るデータの第 1のァドレスを出力する第 1のァドレス出力区画と、
前記第 2のメモリと前記第 1のメモリとの間で入力および Zまたは出力される データの第 2のァドレスを出力する第 2のァドレス出力区画と、 を備えている集
2 . 前記第 1のアドレスは前記第 1のメモリのアドレスであり、 前記第 2のァ ドレスは前記第 2のメモリのァドレスである、 請求項 1の集積回路装置。
3 . 前記第 2のアドレス出力区画は、 前記データ処理区画および Zまたは前記 第 1のアドレス出力区画とは独立して動作可能である、 請求項 1の集積回路装置。
4 . 前記第 1のメモリは独立に入出力可能な複数の格納区画を備えている、 請 求項 1の集積回路装置。
5 . 前記第 1のメモリは、 前記データ処理区画に入力されるデータを格納する 第 1の入力メモリと、 前記データ処理区画から出力されたデータを格納する第 1 の出力メモリとを備えている、 請求項 1の集積回路装置。
6 . 前記第 1のメモリと前記データ処理区画との間の入力および/または出力 を管理する第 1の調停ュニットを有する、 請求項 1の集積回路装置。
7 . 前記第 1の調停ュニットは、 前記データ処理区画との間の入力または出力 の条件を満たさない場合にストップ信号を前記データ処理区画に出力する機能を 備えている、 請求項 6の集積回路装置。
8 . 前記データ処理区画は、 前記ストップ信号により、 当該データ処理区画に 形成された少なくとも 1つのデータフローの処理を停止する機能を備えている、 請求項 7の集積回路装置。
9 . 前記第 1のメモリは、 前記データ処理区画に入力されるデータを格納する 第 1の入力メモリと、 前記データ処理区画から出力されたデータを格納する第 1 の出力メモリとを備えており、
前記第 1の調停ュニットは、 前記第 1の入力メモリから前記データ処理区画へ のデータの転送を管理する第 1の入力調停ュニットと、 前記データ処理区画から 前記第 1の出力メモリへのデータの転送を管理する第 1の出力調停ュニットとを 備えている、 請求項 6の集積回路装置。
1 0 . 前記第 1のメモリは独立に入出力可能な複数の格納区画を備えており、 前記第 1の調停ュニットは、 前記複数の格納区画のそれぞれを独立して管理す る機能を備えている、 請求項 6の集積回路装置。
1 1 . 前記第 1のメモリ〖ま独立に入出力可能な複数の格納区画を備えており、 前記第 1の調停ュニットは、 前記複数の格納区画を関連付けして管理する機能 を備えている、 請求項 6の集積回路装置。
1 2 . 前記データ処理区画には複数のデータフローを構成可能であり、 さらに 複数の前記第 1のメモリを有し、
前記処理ュニットには、 各々の前記第 1のメモリに対応する前記第 1および第 2のァドレス出力区画が形成される、 請求項 1の集積回路装置。
1 3 . 前記第 2のメモリと前記複数の第 1のメモリとの間の入出力を管理する 第 2の調停ユエットを有し、 前記第 2のァドレスは前記第 2の調停ュニットに供 給される、 請求項 1 2の集積回路装置。
1 4. 前記処理ュニットは、 機能を変更可能な複数の単一種類の論理要素と、 これらの論理要素を接続する配線群とを備えている、 請求項 1の集積回路装置。
1 5 . 前記処理ユニットは、 それぞれ異なる特定の処理に適した内部データパ スを備えた複数種類の専用処理要素と、 これらの専用処理要素を接続する配線群 とを備えている、 請求項 1の集積回路装置。
1 6 . 前記処理ュニットは、 了ドレスを出力するのに適した前記内部データパ スを備えた前記専用処理要素を備えている、 請求項 1 5の集積回路装置。
1 7 . 前記専用処理要素は、 前記内部データパスの一部を選択する手段と、 前 記内部データパスの選択を記憶するコンフィグレイションメモリとを備えている、 請求項 1 5の集積回路装置。
1 8 . 前記コンフィグレイシヨンメモリの内容を書き換える制御ユニットを有 する、 請求項 1 7の集積回路装置。
1 9 . 前記処理ュニットのデータフ口一の少なくとも 1部の変更を指示する制 御ユニットを有する、 請求項 1の集積回路装置。
2 0 . 前記制御ュニットは、 前記データ処理区画、 第 1のアドレス出力区画、 または前記第 2のアドレス出力区画のデータフ口一の変更を独立に指示可能であ る、 請求項 1 9の集積回路装置。
2 1 . 前記制御ュニットを制御するプロダラムコードを記憶するコードメモリ を有する、 請求項 1 9の集積回路装置。
2 2 . 前記第 2のメモリを有し、 この第 2のメモリは、 第 3のメモリとの間で データを入力および/または出力可能であり、
前記第 3のメモリと前記第 2のメモリとの間で入力および/または出力される データの第 3のァドレスを出力する第 3のァドレス出力手段を有する、 請求項 1
2 3 . 第 2のメモリとの間でデータを入力および/または出力可能な第 1のメ モリと、
この第 1のメモリとの間で入力および Zまたは出力されるデータを処理する少 なくとも 1つのデータフローが形成される処理ュニットと、
前記第 1のメモリと前記処理ュニットとの間の入力および/または出力を管理 する第 1の調停ュニットを有し、
前記第 1の調停ユエットは、 前記データ処理区画との間の入力または出力の条 件を満たさない場合にストップ信号を前記データ処理区画に出力する機能を備え、 前記処理ュニットは、 前記ストップ信号により、 前記少なくとも 1つのデータ フローの処理を停止する機能を備えている、 集積回路装置。
2 4 . 前記処理ユエットは、 前記少なくとも 1つのデ一タフローの少なくとも 1部を変更可能である、 請求項 2 3の集積回路装置。
2 5 . 前記第 1のメモリは、 前記処理ュニットに入力されるデータを格納する 第 1の入力メモリと、 前記処理ュニットから出力されたデータを格納する第 1の 出力メモリとを備えており、
前記第 1の調停ュニットは、 前記第 1の入力メモリから前記処理ュ-ットへの データの転送を管理する第 1の入力調停ュニットと、 前記処理ュニットから前記 第 1の出力メモリへのデータの転送を管理する第 1の出力調停ユエットとを備え ている、 請求項 2 3の集積回路装置。
2 6 . 前記第 1のメモリは独立に入出力可能な複数の格納区画を備えており、 前記第 1の調停ュニットは、 前記複数の格納区画のそれぞれを独立して管理す る機能を備えている、 請求項 2 3の集積回路装置。
2 7 . 前記第 1のメモリは独立に入出力可能な複数の格納区画を備えており、 前記第 1の調停ュニットは、 前記複数の格納区画を関連付けして管理する機能 を備えている、 請求項 2 3の集積回路装置。
2 8 . 少なくとも 1つのデータフローが开成され、 その少なくとも 1つのデー タフ口一の少なくとも 1部を変更可能な処理ュニットであって、
第 2のメモリ との間でデータを入力および/または出力可能な第 1のメモリと の間で入力および/または出力されるデータを処理するデータ処理区画と、 前記第 1のメモリと前記データ処理区画との間で入力および/または出力され るデータの第 1のァドレスを出力する第 1のァドレス出力区画と、
前記第 2のメモリと前記第 1のメモリとの間で入力および Zまたは出力される データの第 2のァドレスを出力する第 2のァドレス出力区画と、 を有する処理ュ ニット。
2 9 . 前記第 2のアドレス出力区画は、 前記データ処理区画および/または前 記第 1のアドレス出力区画とは独立して動作可能である、 請求項 2 8の処理ュ ニット。
3 0. 前記データ処理区画には複数のデータフ口一を構成可能であり、 さらに 複数の前記第 1のメモリの各々に対応する前記第 1および第 2のアドレス出力 区画を備えている、 請求項 2 8の処理ュニット。
3 1 . それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の 専用処理要素と、 これらの専用処理要素を接続する配線群とを有する、 請求項 2 8の処理ユエット。
3 2 . アドレスを出力するのに適した前記内部データパスを備えた前記専用処 理要素を有する、 請求項 3 1の処理ユニット。
3 3 . 請求項 3 1に記載の処理ュニットと、
前記第 1のメモリとを有する処理装置。
3 4 . 前記処理ュュットのデータフ口一の少なくとも 1部の変更を指示する制 御ュニットをさらに有する、 請求項 3 3の処理装置。
3 5 . 第 2のメモリとの間でデータを入力および Zまたは出力可能な第 1のメ モリと、 少なくとも 1つのデータフ口一が形成され、 その少なくとも 1つのデー タフローの少なくとも i部を変更可能な処理ユエットとを有する集積回路装置の 制御方法であって、
前記処理ュニットに対し、 前記第 1のメモリとの間で入力および Zまたは出力 されるデータを処理するデータ処理区画と、 前記第 1のメモリと前記データ処理 区画との間で入力および/または出力されるデータの第 1のアドレスを出力する 第 1のアドレス出力区画と、 前記第 2のメモリと前記第 1のメモリ との間で入力 および Zまたは出力されるデータの第 2のァドレスを出力する第 2のァドレス出 力区画とを構成するように指示する工程を有する集積回路装置の制御方法。
3 6 . 前記指示する工程は、 前記データ処理区画、 前記第 1のァドレス出力区 画、 または、 第 2のアドレス出力区画のデータフローの変更を独立して指示する 工程を備えている、 請求項 3 5の制御方法。
3 7 . 前記指示する工程では、 第 2のアドレス出力区画が、 前記データ処理区 画および/または前記第 1のァドレス出力区画とは独立して動作するように指示 する、 請求項 3 5の制御方法。
3 8 . 前記データ処理区画には複数のデータフローを構成可能であり、 さらに 前記指示する工程では、 複数の前記第 1のメモリの各々に対応する前記第 1お よび第 2のァドレス出力区画を形成するように指示する、 請求項 3 5の制御方法。
3 9 . 前記データ処理区画に少なくとも 1つのデータフローを形成し、 前記第 1のメモリと入力および Zまたは出力するデータに関連する処理を実行する工程 を有し、 この実行する工程では、 前記第 1のメモリと前記データ処理区画との間 の入力および Zまたは出力を管理する第 1の調停ュニットが入力または出力の条 件を満たさない場合に出力するストップ信号により、 当該データ区画に形成され た少なくとも 1つのデータフ口一の処理を停止する、 請求項 3 5の制御方法。
4 0 . 第 2のメモリとの間でデータを入力および/または出力可能な第 1のメ モリと、 この第 1のメモリとの間で入力および /または出力されるデータを処理 する少なくとも 1つのデータフローが形成される処理ユエットとを有する集積回 路装置の制御方法であつて、
前記第 1のメモリと入力および Zまたは出力するデータに関連する処理を実行 する工程を有し、 この実行する工程では、 前記第 1のメモリと前記処理ユニット との間の入力および Zまたは出力を管理する第 1の調停ュニットが入力または出 力の条件を満たさない場合に出力するストップ信号により、 前記少なくとも 1つ のデータフ口一の処理を停止する、 集積回路装置の制御方法。
PCT/JP2002/007076 2001-07-12 2002-07-11 Dispositif a circuit integre WO2003007155A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU2002318809A AU2002318809B2 (en) 2001-07-12 2002-07-11 Integrated circuit device
KR1020047000422A KR100912437B1 (ko) 2001-07-12 2002-07-11 집적회로장치
US10/363,885 US6868017B2 (en) 2001-07-12 2002-07-11 Integrated circuit device
CA002451003A CA2451003A1 (en) 2001-07-12 2002-07-11 Integrated circuit device
EP02745985A EP1416388A4 (en) 2001-07-12 2002-07-11 INTEGRATED CIRCUIT DEVICE
JP2003512850A JP4188233B2 (ja) 2001-07-12 2002-07-11 集積回路装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001212545 2001-07-12
JP2001-212545 2001-07-12

Publications (1)

Publication Number Publication Date
WO2003007155A1 true WO2003007155A1 (fr) 2003-01-23

Family

ID=19047692

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/007076 WO2003007155A1 (fr) 2001-07-12 2002-07-11 Dispositif a circuit integre

Country Status (9)

Country Link
US (1) US6868017B2 (ja)
EP (1) EP1416388A4 (ja)
JP (1) JP4188233B2 (ja)
KR (1) KR100912437B1 (ja)
CN (1) CN1526100A (ja)
AU (1) AU2002318809B2 (ja)
CA (1) CA2451003A1 (ja)
TW (1) TW577020B (ja)
WO (1) WO2003007155A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164186A (ja) * 2004-12-10 2006-06-22 Ip Flex Kk 集積回路のデバッグ方法、デバッグプログラム
US7403235B2 (en) 2003-01-24 2008-07-22 Sony Corporation Integrated circuit and information signal processing apparatus having multiple processing portions
US7908453B2 (en) 2004-06-30 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device having a dynamically reconfigurable circuit configuration

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993674B2 (en) * 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US7197620B1 (en) * 2002-12-10 2007-03-27 Unisys Corporation Sparse matrix paging system
JP2005018626A (ja) 2003-06-27 2005-01-20 Ip Flex Kk 並列処理システムの生成方法
US20050283550A1 (en) * 2004-06-18 2005-12-22 Honeywell International Inc. Method and architecture of a coupling system for microprocessors and logic devices
US7746846B2 (en) * 2004-07-15 2010-06-29 Broadcom Corporation Method and system for a gigabit Ethernet IP telephone chip with integrated security module
US7493578B1 (en) * 2005-03-18 2009-02-17 Xilinx, Inc. Correlation of data from design analysis tools with design blocks in a high-level modeling system
US7496869B1 (en) 2005-10-04 2009-02-24 Xilinx, Inc. Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
US7363599B1 (en) 2005-10-04 2008-04-22 Xilinx, Inc. Method and system for matching a hierarchical identifier
US8402409B1 (en) 2006-03-10 2013-03-19 Xilinx, Inc. Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit
US7380232B1 (en) 2006-03-10 2008-05-27 Xilinx, Inc. Method and apparatus for designing a system for implementation in a programmable logic device
US7761272B1 (en) 2006-03-10 2010-07-20 Xilinx, Inc. Method and apparatus for processing a dataflow description of a digital processing system
JP5605975B2 (ja) * 2007-06-04 2014-10-15 ピーエスフォー ルクスコ エスエイアールエル 半導体装置及びその製造方法、並びに、データ処理システム
CN101727433B (zh) * 2008-10-20 2012-04-25 北京大学深圳研究生院 一种处理器结构
CN101727434B (zh) * 2008-10-20 2012-06-13 北京大学深圳研究生院 一种特定应用算法专用集成电路结构
KR101581882B1 (ko) * 2009-04-20 2015-12-31 삼성전자주식회사 재구성 가능한 프로세서 및 그 재구성 방법
US8134927B2 (en) * 2009-07-31 2012-03-13 Ixia Apparatus and methods for capturing data packets from a network
US9270542B2 (en) 2009-07-31 2016-02-23 Ixia Apparatus and methods for forwarding data packets captured from a network
WO2011066459A2 (en) * 2009-11-25 2011-06-03 Howard University Multiple-memory application-specific digital signal processor
EP2561645B1 (en) 2010-04-23 2020-02-26 Keysight Technologies Singapore (Sales) Pte. Ltd. Integrated network data collection arrangement
US8869123B2 (en) 2011-06-24 2014-10-21 Robert Keith Mykland System and method for applying a sequence of operations code to program configurable logic circuitry
US9158544B2 (en) 2011-06-24 2015-10-13 Robert Keith Mykland System and method for performing a branch object conversion to program configurable logic circuitry
US10089277B2 (en) 2011-06-24 2018-10-02 Robert Keith Mykland Configurable circuit array
US9304770B2 (en) 2011-11-21 2016-04-05 Robert Keith Mykland Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor
US9633160B2 (en) 2012-06-11 2017-04-25 Robert Keith Mykland Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor
US10904075B2 (en) 2012-07-02 2021-01-26 Keysight Technologies Singapore (Sales) Pte. Ltd. Preconfigured filters, dynamic updates and cloud based configurations in a network access switch
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
KR20150127608A (ko) * 2013-03-01 2015-11-17 아토나프 가부시키가이샤 데이터 처리 장치 및 그 제어 방법
US9275203B1 (en) 2014-02-03 2016-03-01 Purdue Research Foundation Methods, systems, and computer readable media for preventing software piracy and protecting digital documents using same
US9967150B2 (en) 2014-04-30 2018-05-08 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods and apparatuses for implementing network visibility infrastructure
US9571296B2 (en) 2014-04-30 2017-02-14 Ixia Methods and apparatuses for abstracting filters in a network visibility infrastructure
US10404459B2 (en) * 2017-02-09 2019-09-03 Intel Corporation Technologies for elliptic curve cryptography hardware acceleration
EP3796145B1 (en) * 2019-09-19 2024-07-03 MyScript A method and correspond device for selecting graphical objects

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS649548A (en) * 1987-07-01 1989-01-12 Nec Corp Cache memory device
JPH01273132A (ja) * 1988-04-25 1989-11-01 Nec Corp マイクロプロセッサ
JPH11143774A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd キャッシュ制御機構
JP2002163150A (ja) * 2000-11-28 2002-06-07 Toshiba Corp プロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
JP3106998B2 (ja) * 1997-04-11 2000-11-06 日本電気株式会社 メモリ付加型プログラマブルロジックlsi
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6417691B1 (en) * 2000-08-29 2002-07-09 Motorola, Inc. Communication device with configurable module interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS649548A (en) * 1987-07-01 1989-01-12 Nec Corp Cache memory device
JPH01273132A (ja) * 1988-04-25 1989-11-01 Nec Corp マイクロプロセッサ
JPH11143774A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd キャッシュ制御機構
JP2002163150A (ja) * 2000-11-28 2002-06-07 Toshiba Corp プロセッサ

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
COMPTON K.: "Reconfigurable computing: A survey of systems and software", ACM COMPUTING SURVEYS, vol. 34, no. 2, June 2002 (2002-06-01), pages 171 AND 210, XP002957662 *
KIM H.S. ET AL.: "A reconfigurable multi-function computing cache architecture", PROCEEDINGS OF ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS, 2000, pages 85 AND 94, XP000970735 *
RANGANATHAN P. ET AL.: "Reconfigurable caches and their application to media processing", PROCEEDINGS OF THE 27TH INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA 27), June 2000 (2000-06-01), pages 214 AND 224, XP000928730 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403235B2 (en) 2003-01-24 2008-07-22 Sony Corporation Integrated circuit and information signal processing apparatus having multiple processing portions
US7908453B2 (en) 2004-06-30 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device having a dynamically reconfigurable circuit configuration
JP2006164186A (ja) * 2004-12-10 2006-06-22 Ip Flex Kk 集積回路のデバッグ方法、デバッグプログラム
JP4569284B2 (ja) * 2004-12-10 2010-10-27 富士ゼロックス株式会社 集積回路のデバッグ方法、デバッグプログラム

Also Published As

Publication number Publication date
CN1526100A (zh) 2004-09-01
US20040015613A1 (en) 2004-01-22
KR100912437B1 (ko) 2009-08-14
TW577020B (en) 2004-02-21
JP4188233B2 (ja) 2008-11-26
AU2002318809B2 (en) 2008-02-28
US6868017B2 (en) 2005-03-15
EP1416388A1 (en) 2004-05-06
CA2451003A1 (en) 2003-01-23
JPWO2003007155A1 (ja) 2004-11-04
EP1416388A4 (en) 2006-02-08
KR20040017291A (ko) 2004-02-26

Similar Documents

Publication Publication Date Title
WO2003007155A1 (fr) Dispositif a circuit integre
Loh 3D-stacked memory architectures for multi-core processors
JP3853736B2 (ja) ユーザによる構成可能なオンチップメモリシステム
KR960016397B1 (ko) 화일기억장치 및 그것을 사용한 정보처리장치
CN104699631A (zh) Gpdsp中多层次协同与共享的存储装置和访存方法
JP4497184B2 (ja) 集積装置およびそのレイアウト方法、並びにプログラム
JP2009514070A (ja) 局所キャッシュとしてシフトレジスタを使用する論理シミュレーション用のハードウェア加速システム
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US6101589A (en) High performance shared cache
US20210382691A1 (en) In-Memory Near-Data Approximate Acceleration
CN109891397A (zh) 用于固态装置中的操作系统高速缓冲存储器的设备及方法
US6594711B1 (en) Method and apparatus for operating one or more caches in conjunction with direct memory access controller
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
TWI825853B (zh) 可重組態資料處理器的缺陷修復電路
US7765250B2 (en) Data processor with internal memory structure for processing stream data
JPH1097464A (ja) 情報処理システム
US6240487B1 (en) Integrated cache buffers
Paul et al. Energy-efficient hardware acceleration through computing in the memory
US20020108021A1 (en) High performance cache and method for operating same
JPH0438014B2 (ja)
US20230100573A1 (en) Memory device, memory device operating method, and electronic device including memory device
JP3952856B2 (ja) キャッシュ方法
Hussain et al. PVMC: Programmable vector memory controller
US6430651B1 (en) Memory device for constituting a memory subsystem of a data processing apparatus
TWI828052B (zh) 基於晶體堆疊架構的計算機系統和記憶體管理方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)

Free format text: EXCEPT/SAUF US

WWE Wipo information: entry into national phase

Ref document number: 10363885

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2003512850

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2115/DELNP/2003

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2002745985

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2451003

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2002318809

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 20028137671

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020047000422

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2002745985

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2002745985

Country of ref document: EP