WO2010034167A1 - 一种集成电路的处理器结构 - Google Patents

一种集成电路的处理器结构 Download PDF

Info

Publication number
WO2010034167A1
WO2010034167A1 PCT/CN2008/073514 CN2008073514W WO2010034167A1 WO 2010034167 A1 WO2010034167 A1 WO 2010034167A1 CN 2008073514 W CN2008073514 W CN 2008073514W WO 2010034167 A1 WO2010034167 A1 WO 2010034167A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
configuration
processor
register
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2008/073514
Other languages
English (en)
French (fr)
Inventor
戴鹏
胡子一
王新安
张兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
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
Priority claimed from CN200810216362A external-priority patent/CN101685389B/zh
Priority claimed from CN2008102168586A external-priority patent/CN101727433B/zh
Priority claimed from CN2008102168590A external-priority patent/CN101727434B/zh
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to US13/121,406 priority Critical patent/US20110271078A1/en
Publication of WO2010034167A1 publication Critical patent/WO2010034167A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Definitions

  • the present invention relates to the field of integrated circuit design, and in particular to a processor structure or system of an integrated circuit. Background technique
  • ASIC Application Specific Integrated
  • complex algorithms such as digital media and wireless communication algorithms
  • Circuits ie ASICs
  • ASICs are faced with long design cycles, high design costs, poor flexibility, and poor scalability, making it difficult to meet the needs of fast time-to-market and ever-increasing functions. Therefore, it is increasingly important to implement complex algorithms based on processors that support storage instruction control.
  • the technical problem to be solved by the present invention is to provide a processor structure or system of an integrated circuit, which has configurable, programmable flexibility, simple operation and good algorithm confidentiality.
  • the present invention provides a processor structure of an integrated circuit, including at least one processor (abbreviated as AP) that can configure an arithmetic component and at least one configurable storage component processor (referred to as MP A processor configuring the computing component is interconnected with at least one of a processor configurable computing component, a processor configurable storage component, a processor of the configurable storage component and a processor configurable storage component, configurable storage component At least one of the processors is interconnected; the processor of the configurable computing component includes a first algorithm data control component and at least one computing component for performing an arithmetic operation on the input data, the computing component including a logical operation unit and a configuration a register, the first algorithm data control unit executes a configuration instruction, and writes the configuration information to the configuration of the operation component specified in the instruction And the arithmetic component performs a logical operation according to the configuration information in its own configuration register; the processor of the configurable storage component includes a second algorithm data control component and at least one
  • the configuration command includes three operation elements, an operation code, a configuration information, and a configuration purpose, where the operation code is a command code that specifies an operation performed by the instruction, and the configuration information is an object of the instruction operation, and the configuration purpose is used. Specifies the configuration register to write configuration information.
  • a processor architecture of an integrated circuit comprising a second algorithm data control component and at least one storage component for storing or reading data, the storage component comprising a storage unit and a configuration register, the second algorithm data control unit executes a configuration instruction to write configuration information into a configuration register of a storage unit specified in the instruction, and the storage unit performs data access according to configuration information in its own configuration register .
  • a processor structure of an integrated circuit comprising: a first algorithm data control component and at least one arithmetic component for performing an arithmetic operation on the input data, the arithmetic component including logic operation a unit and a configuration register, the first algorithm data control unit executes a configuration instruction, writes the configuration information to a configuration register of an operation unit specified in the instruction, and the operation unit performs a logic operation according to the configuration information in the self configuration register.
  • the present invention implements a rapid design of an ASIC by arranging a processor AP of a configurable computing unit and a processor MP of a configurable storage component through cascading of a plurality of APs and/or MP processors.
  • the AP and MP cascading of the present invention are relatively simple, configurable, programmable, and do not require complex logic to simplify the hardware structure, but can support complex algorithm functions.
  • an arithmetic function or an arithmetic unit
  • a storage function or a storage unit
  • the configuration instruction of the present invention includes three operation elements of operation code, configuration information, and configuration purpose, and different configuration information sources. Different configurations can achieve different semantics, and the same instructions can complete different configurations. Therefore, the present invention has good algorithm confidentiality.
  • FIG. 1 is a block diagram of a hardware module of an ADU in an embodiment of the present invention.
  • FIG. 2 is a hardware block diagram of a processor of a configurable computing component in accordance with an embodiment of the present invention
  • FIG. 3 is a hardware block diagram of a processor of a configurable storage component in accordance with another embodiment of the present invention.
  • Figure 4 is a block diagram showing the structure of an embodiment of the storage unit of the present invention.
  • FIG. 5 is a structural block diagram of direct cascading between multi-core DSPs of the present invention.
  • FIG. 6 is a structural block diagram of indirect cascading between multi-core DSPs of the present invention through a switching switch;
  • FIG. 7-10 are several cascaded manners of a processor of a configurable computing component and a processor of a configurable storage component of the present invention
  • FIG. 11 is a diagram showing a demand analysis of a specific application algorithm according to an embodiment of the present invention.
  • Figure 12 is a cascade diagram according to Figure 11.
  • the configurable DSP in the processor architecture or system of the present invention supports the fast implementation of complex algorithms by selecting optimized configurable components.
  • the configurable component includes a configurable algorithm data control component (hereinafter referred to as a control component, 38 in FIG. 1, 10 in FIG. 2, 20 in FIG. 3), and a configurable computing component (12 in FIG. 2), Configurable storage components (22 in Figure 3) and configurable data paths (l la, 11 b in Figure 2, 22a, 22b in Figure 3).
  • the configurable concept of the present invention not only indicates that a DSP soft core or a hard core is generated through a series of software or hardware, and the functions or numbers of configurable components in different DSP soft cores/hard cores are inconsistent; also indicates that the generated DSP soft core/hard core is generated.
  • the configurable components in the actual running process can be configured according to the needs of the actual functions; it can also indicate that the topology of multiple DSP cores is configurable.
  • a configurable control unit can be understood as a processor having only a few instructions that does not include an arithmetic unit.
  • the configurable control unit ADU includes a load module, an instruction memory. , a data memory, a decoder, and a general purpose register, which may further include a fixed or a meter Modules such as the number.
  • Figure 1 shows a specific structure of the configurable control unit ADU38.
  • the module 31 is a program counter PC for indicating the address of the currently running program.
  • the modules 32 and 33 represent the data memory DMEM and the instruction memory IMEM, respectively.
  • a memory can be used to store data and instructions;
  • module 34 is a decoding unit that is used to analyze the meaning of the instructions and interpret the behavior of the instructions;
  • module 36 is a general register set for storing data or instructions; 37 indicates the loading module.
  • the load module 37 loads data from the external port into the data memory DMEM or the instruction memory IMEM, and the counter or counter 35 provides metering or counting processing for the ADU.
  • the load module 37 loads the data port, the load module loads the data from the input port to the data memory dmem, and when the load module 37 loads the command file, the load module loads the command from the input port to the instruction memory imm, provided by the PC module.
  • the address will be selected from the instruction memory to select the corresponding instruction to operate.
  • the configurability of the ADU is mainly reflected in the change of the instruction word length. It is desirable to complete all the configuration (operational components, data paths, etc.) of an instruction, or only the configuration of the arithmetic unit. Take the computing component as an example to illustrate the following:
  • the configuration information of the four ALU units is 4n bit
  • the word length of the configuration command is 4n+m bit, where m is the operation code of the configuration instruction.
  • the number of ALUs required by the DSP is different, so the command word length of the ADU also varies according to the number of ALUs.
  • a configurable arithmetic component can include a number of arithmetic units, each of which includes a logical arithmetic unit (ALU) and a configuration register.
  • the configurable control unit executes a configuration command to write configuration information to a configuration register of the operational component, and the arithmetic component performs a specified data operation based on configuration information in its own configuration register.
  • the configurable storage component includes a storage unit and a configuration register, and the configurable control component executes a configuration instruction to write configuration information to a configuration register of a storage component specified in the instruction, the storage component being configured according to its own configuration register Information for data access.
  • the configurable data path is a data path for selecting a data input or output path, including a data input path and an output selection unit, the data input path including a data input change switch and a configuration register, the output selection unit including Data output transfer switch and output port configuration register.
  • the configurable control unit also writes configuration information to the configuration register of the data path specified in the instruction according to the configuration instruction.
  • the data input path controls the switching of the data input change switch according to the configuration information in its own configuration register
  • the output selection unit controls the switching of the data output change switch according to the configuration information in its own configuration register.
  • the configurable data path in the present invention has two meanings.
  • One is a configurable data path inside the DSP, which is mainly composed of a switch and a configuration register.
  • At the input of the data input path there are three input data sources: configurable control unit A temporary storage data in the general-purpose register, data input from the input port, and data output from the output selection unit, the data input path can be based on
  • the configuration information in the configuration register is selected among the three data sources.
  • the data output path can output data through four paths, namely: output data to the output port, output to the input port of the data input path, general-purpose register stored in the ADU, and data memory.
  • the output selection unit can be used in four data according to the configuration information. Make a selection in the output path. Therefore, the configurable performance of the internal data path of the DSP is to write configuration values through the ADU to the configuration registers in the data path, selecting the data input source and the data output destination.
  • the second meaning of the configurable data path in the present invention is that the data path between the DSP cores can be configured to specifically represent the data cascade between the multiple cores.
  • each DSP core can receive data from at most two DSP cores, and can transmit data to any number of DSP cores.
  • Multi-core cascading can use static cascading, that is, two DSP cores are directly connected (as shown in Figure 5), and the inter-core DSP can be interconnected remotely through configurable interconnect switches between DSP cores ( Figure 6). ).
  • the configurable performance of the data path between DSP cores is mapped to a multi-core DSP topology ⁇ configurable to the inter-core data path.
  • the configurable arithmetic unit, the configurable storage unit, and the configurable data path are configured by the corresponding control unit to execute the configuration command completion configuration function.
  • the configuration command includes three operation elements, an operation code, a configuration information, and a configuration purpose, where the operation code is a command code that specifies an operation performed by the instruction, and the configuration information is an object of the instruction operation, and the configuration purpose is used to specify the write. Enter the configuration register for the configuration information.
  • the operation code, configuration information, and configuration purpose can be set by the user, and the format and bit width of the configuration instruction are not limited, and the format and the bit width can be adjusted according to actual conditions.
  • the configuration information may be the content in the general-purpose register, or may be the content of the immediate data or the contents of the data memory or the register of the input port.
  • This instruction writes the data in the general-purpose register reg to the specified configuration register, which directly completes the function of the corresponding arithmetic unit or the path configuration of the data path.
  • the general register reg in the above instruction can also be changed to the immediate imm, ie Movesc, if the instruction bit width allows.
  • Immediate imm can also represent the address of the data memory.
  • the data of the data memory of the corresponding address is used as the configuration information.
  • the immediate value can also be a specific operation or value.
  • This instruction writes the data in the general-purpose register reg to the specified data register.
  • reg in the instruction can be the data input port register of the processor, that is, the value of the data input port register of the processor is written into the specified data register, and the configuration instruction is: Inpu t
  • the datareg in the instruction can refer to the data output port register of the processor, that is, the value of the general-purpose register of the processor is written into the specified data output port register.
  • the command is: Output reg, port°
  • control unit can have the following configuration options:
  • Configreg where configreg is used to configure the data path in the switch, that is, select the switch
  • Configreg where configreg is used to configure the data path in the switch, that is, select the switch
  • a pause instruction for controlling a pause of a processor including two operation elements of an operation code and a pause count information, one of The format is:
  • the ADU executes a pause instruction
  • the control processor is in a pause state, starts the timer count or counter count, and causes the processor to be in a pause state, so that the data path and/or Or the configuration information of the storage component remains unchanged until the recovery information is received.
  • the ADU unit does not execute instructions, and the processing unit that outputs faster data is also in a wait state.
  • the various parts of the processor resume normal operation.
  • This directive can also be written in the form of rouser reg, where the value in reg replaces imm.
  • the pause command can also be in the following format: HLT;
  • This instruction is a special form of the rouser instruction, that is, when the ADU executes the instruction, it will suspend the operation of the processor until it is woken up by other signals (such as interrupt signals, etc.).
  • the arithmetic unit After processing the data stream, it is assumed that the last operation of the arithmetic unit is an addition operation. After the execution of the pause instruction, the arithmetic unit will maintain the addition function and add the input data until the processor resumes normal operation.
  • the arithmetic component is configured with new arithmetic functions.
  • the configuration instruction and its hardware implementation can easily change the connection relationship and operation/storage function of the internal arithmetic unit/storage unit, and realize the configurability of the data path and function of the processor. In the case of large-scale data stream processing, especially for arrays of digital signal processing.
  • the invention needs to add a calculation function, does not need to modify and increase the instruction, and only needs to define the semantics of the newly added configuration information, which is beneficial to the expansion of the processor function and does not increase the complexity of the hardware design.
  • the present invention can complete various complicated arithmetic operations and algorithm mappings by simple configuration instructions. From the perspective of instruction design, the instructions executed by each functional unit are basically the same, but different configuration information can be different. operating. For example, the same movesc instruction configures the functions of different steps according to the configuration registers written; since the ALU can design the arithmetic unit/storage unit according to the hardware designer, even if the configuration information of the configuration ALU instruction is exactly the same, the calculation/ The execution function of the memory unit can also vary depending on the operation/storage unit. Therefore, the instructions in the present invention are cryptographic, and each system design manufacturer can customize the semantics of the configuration information of the operation/storage unit clusters in the array according to actual conditions, thereby obtaining a customized instruction system and effectively protecting the independent intellectual property rights.
  • the instructions and hardware structure of the present invention facilitate data stream processing.
  • Each processing unit in the array structure can be configured correspondingly by the configuration instruction to implement different computing functions.
  • data flows from the input port of the array After performing large-scale digital signal processing, data flows from the input port of the array, and the corresponding operations are completed by each processing unit.
  • the algorithm mapping of complex digital signal processing can be completed without the need for each processing unit to execute instructions frequently, only need to complete each computing unit function and data path configuration after initialization, or correspondingly during the work of a few processing units The operation/storage function and modification of the data path.
  • the present invention can combine a processor that forms a configurable computing component and a configurable storage component
  • the processor has two types of processor structures, and can easily cascade two types of processors through a configurable data path, and has completed fast algorithm implementation.
  • This embodiment is a processor with configurable computing components.
  • the processor includes at least one configurable control component, a data path for selecting a data input/output source, and a configurable arithmetic component (ALU) for performing an arithmetic operation on the input data, and the ADU is responsible for configuring data of the data path.
  • ALU configurable arithmetic component
  • the input and / or output path and the operational functions of the ALU that is, for the relevant algorithm application, the ADU performs the path configuration of the data path and the operational function configuration of the ALU by executing configuration instructions.
  • Each configurable arithmetic component includes a logical arithmetic unit ALU and a configuration register.
  • Module 12 represents a configurable arithmetic unit (referred to as an ALU cluster), and each ALU cluster includes a logical operation unit ALU14 and a configuration register 17a.
  • Module 10 in the figure represents an ADU unit in the processor that is responsible for executing a series of instructions in the present invention, which may employ the aforementioned ADU or the structure shown in FIG.
  • the ADU unit can execute configuration instructions, write configuration information to the configuration register 17a, and configure the logical operation unit (ALU) 14 to the required logical operation unit.
  • the ALU unit can be, but is not limited to, a basic arithmetic module such as an adder, a multiplier, a shifter, and the like.
  • the ALU can also include various specialized arithmetic units, such as a butterfly operation unit, a cordic unit, and the like.
  • the configurable performance of the ALU unit is based on the ADU configuration instructions for different operations on the operands.
  • the data path includes a data input path 11a and an output selection unit 1 ib.
  • the data input path 11a includes a data input switch 13a and a configuration register 17c.
  • the output selection unit 1 ib includes a data output switch 13b and an output port configuration register 17b. .
  • Modules 15 and 16 represent the input and output ports of the processor, respectively, and are responsible for the input and output of data.
  • Module 18 represents the data register of the data path and holds the operational data for the ALU cluster.
  • the data input path 11a there are three input data sources: data temporarily stored in the general-purpose registers in the configurable control unit ADU, data input from the input port, and data output from the output selection unit, data input
  • the path 11a can be selected among three data sources based on the configuration information.
  • Output selection unit l ib can output data through three paths, gP: output data to output port, input Output to the input port of the data path Switch and the general-purpose register stored in the ADU, the output selection unit can select among the three data output paths according to the configuration information.
  • the configurable control unit ADU executes the configuration command and writes the configuration information to the configuration register specified in the instruction.
  • the configuration information can be the contents of a general purpose register or an immediate value.
  • the various configuration information of the configuration register is subjected to a simple decoding operation, and the corresponding function module can be selected for calculation. For example, assume that 000 is addition, 001 subtraction. Then, after the instruction writes 000 to the configuration register, a small decoder (or selector) is enabled according to the 000 selection adder, so the two operands a and b entering the logic unit complete the addition.
  • the configuration register specified in the instruction can be the configuration register of the data input path, the configuration register of the arithmetic unit ALU, or the configuration register of the output selection unit.
  • the processor can perform various arithmetic operations by configuring the following configurable unit, and the configuration instruction is one of the foregoing instructions:
  • Configreg where configreg is used to configure the data path in the data input path, that is, select the switch in the data input path to determine the source of the input data;
  • [78] Configure and manage the data input and output ports, configure the ALU operation result to be written back to the destination, such as general-purpose registers, data memory in the data input path or output port, etc.
  • the corresponding instruction is: movesc reg configreg, where configreg Corresponding to the configuration register selected by the data output switch.
  • the configuration information is written to the relevant configuration register, the configuration of the relevant unit is completed, and the configuration information is saved to the configuration register until the next rewrite. After the ALU function and data path are configured, the subsequent data processing can be completed automatically.
  • This embodiment is a processor with configurable storage components.
  • the processor of the configurable storage component includes a configurable control component (ADU for short), a data path for selecting a data input and/or an output path, and at least one storage component for storing or reading data.
  • ADU is responsible for executing configuration instructions , configure the data path of the data path and the access function of the storage unit.
  • each storage component includes a storage unit and a configuration register, the configurable control component executing a configuration instruction to write configuration information to a configuration register of a storage component specified in the instruction, the storage component being in accordance with its own configuration register Configuration information for data access.
  • the module 20 in the figure represents an ADU unit in the processor, which is responsible for executing a series of instructions in the present invention, which can employ the aforementioned AD U or the structure shown in FIG. 1; the ADU unit 20 executes configuration commands, and the data path
  • the access function of the storage unit 22 is configured.
  • the data path includes a data input path 21a including a data input change switch 23a and a configuration register 27c, and an output selection unit 21b including a data output change switch 23b and an output port configuration register 27b .
  • the ADU unit 20 writes the configuration information into the configuration register of the data path specified in the instruction according to the configuration command, and the data input path 21a controls the switching of the data input changeover switch 23a based on the configuration information in its own configuration register 27c, the output
  • the selection unit 21b controls the switching of the data output changeover switch 23b in accordance with the configuration information in its own configuration register 27b.
  • the configuration information is used as a control signal to control the switching of the switch.
  • the data input path 21a is connected to the general-purpose registers in the input port 25 and the ADU unit 20, and the input source of the data may be a general-purpose register in the ADU unit 20 or an input port 25.
  • the output selection unit 21b is connected to the general-purpose registers in the output port 26 and the ADU unit 20, and the output path of the data may be output through the output port 26 or may be output to a general-purpose register.
  • An embodiment of the storage unit 22 includes a storage unit (i.e., MEM) 24 and a configuration register 27a.
  • the ADU unit 20 executes configuration instructions to write configuration information into its configuration register 27a.
  • the storage unit 22 will The data is stored in the storage unit 24, or the data is read from the storage unit 24.
  • Another embodiment of the storage unit includes a storage unit, a configuration register, and an address generator.
  • the address generator is respectively connected to the configuration register and the storage unit of the storage unit, and the address generator is configured according to
  • the configuration information in the configuration register sets an address base address (ie, an initial address of the access data), a hopping step length, and a hopping number of the storage unit access data, according to the address base address, a jump step size, The number of hops determines the actual physical address of the data access. For example, if a data segment of 1-16 needs to be stored, the address generator can generate an address base address for storing data according to the configuration information, and control data from the storage.
  • the address of the storage unit begins to be stored, and the jump step is 1 and jumps 15 times until the last data is stored. ⁇ Accessing data in this way, the address generator can automatically generate a large number of regular addresses according to the content in the configuration information, and in the face of the DSP algorithm, large-scale data access is regular, such as an address. Since the increase of 1, increase by 2 and so on. In this way, only one instruction can be executed, and a piece of data can be accessed without repeating 16 instructions or looping an instruction, thereby simplifying operations, especially for stream processing or large data access operations. It is convenient, and the address is given by the programmer without having to access each time.
  • the storage unit can be any storage medium such as FLASH, EEPROM or SRAM, different storage media are stored in different ways.
  • the storage component may further include at least one format converter respectively connected to the configuration register and the storage unit of the storage component, decoding the configuration information in the configuration register, and selecting a corresponding format converter.
  • the format converter converts external data into a format that is accessed for the storage unit.
  • the EEPROM is a serial data access
  • the access mode of the S RAM is different. Therefore, the data needs to be converted or unpacked to perform access, and the conversion operation is performed by the format converter.
  • Different memories require different format converters, so in this embodiment, a plurality of format converters can be provided and selected among a plurality of format converters depending on the configuration information.
  • Configreg where configreg is used to configure the data path in data input path 21a, ie select the transfer switch.
  • the data input path 21a selects the input source of the data based on the configuration information in the configuration register 27c, and the data is temporarily stored in the data register 28 of the data input path 21a and input to a designated storage unit 22.
  • the storage function of the storage unit cluster storage unit 22 is configured.
  • the corresponding instruction is: movesc reg configreg, where configreg is used to configure the storage function of the storage unit 22, and the storage unit 22 is based on the configuration information in the configuration register 27a from the address base address.
  • the data is stored in accordance with the jump step size and the number of jumps. And configure and manage data input and output ports.
  • the configuration command executed by the configurable control unit may be one of the aforementioned instructions.
  • the configurability of the storage components is mainly embodied in the configurability of the address generator so that different access addresses can be generated; and the different capacities and types of the storage unit and the format converter are configured.
  • the choice of storage medium is mainly embodied in the configurability of the address generator so that different access addresses can be generated; and the different capacities and types of the storage unit and the format converter are configured. The choice of storage medium.
  • This embodiment is a processor having a configurable computing component processor and a configurable storage component processor and its cascade.
  • any specific application algorithm ASIC ie, ASIC
  • ASIC can be implemented by cascading a series of APs and MPs.
  • the structure includes at least one AP and at least one MP, and the AP is interconnected with at least one of the AP and the MP, MP and AP. At least one interconnect in the MP, as shown in Figure 7-10.
  • the input data is first calculated by two APs, and the result is temporarily stored, and then respectively operated by two and four APs, and then temporarily stored. As a result, the result of the temporary storage is subjected to four AP operations, and finally the data is output.
  • a flow chart of operation and storage requirements is formed, and then a cascade diagram of the AP and the MP can be formed, as shown in FIG.
  • the cascading manner of the AP and the MP can be set as needed to implement the required algorithm.
  • the configurable control components in the AP and the configurable control components in the MP can use the same structure or different structures.
  • the ADUs of the same structure are described with AP and MP.
  • the first configurable control component of the AP and the second configurable control component of the MP may be independently owned by each unit, or may be shared by several units.
  • the instruction processing components of APs and MPs are relatively simple, and both the arithmetic functions and the storage functions are organized into internal processing of configurable arithmetic components and configurable storage components.
  • Such APs and MPs can efficiently cascade to support the implementation of application algorithms with configurability and programmable flexibility. If the design of a specific application algorithm ASIC has been implemented by means of AP and MP cascading, and it is necessary to further reduce the chip area and reduce the cost, the configurable components (arithmetic components, storage components, etc.) can be performed according to the needs of the application algorithm. Customization: Cancel configurable features that are not being used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

一种集成电路的处理器结构
技术领域
本发明涉及集成电路设计领域, 具体涉及一种集成电路的处理器结构或系统。 背景技术
随着集成电路制造工艺进入 90nm-45nm阶段, 复杂算法 (如数字媒体和无线通 信算法等) 的 ASIC (Application Specific Integrated
Circuit, 即专用集成电路) 实现, 面临设计周期长、 设计成本高、 灵活性差、 扩 展性差, 难以满足产品快速上市、 功能不断提升的需求。 因此, 基于支持存储 指令控制的处理器来实现复杂算法, 就显得越来越重要。
[3] 然而, 一般处理器和指令系统的设计方法, 要支持复杂算法的实现, 必然需要 相对复杂的指令系统和指令格式以及实现方式, 并且不易扩展, 比如, 当处理 器需要支持一种新的运算 /存储功能或增加新的运算 /存储部件吋, 往往需要重新 修改整个处理器的设计、 甚至修改整个指令系统, 以支持新功能的实现。
[4] 同吋, 基于一般处理器指令系统的算法设计, 程序代码的语义明确, 比较容易 被抄袭, 难以保护设计者的智力劳动成果。
发明内容
[5] 本发明要解决的技术问题是: 提供一种集成电路的处理器结构或系统,具有可配 置、 可编程的灵活性, 操作简便并具有良好的算法保密性。
[6] 为解决上述问题, 本发明提供一种集成电路的处理器结构, 包括至少一个可配 置运算部件的处理器 (简称 AP) 和至少一个可配置存储部件的处理器 (简称 MP 所述可配置运算部件的处理器与可配置运算部件的处理器、 可配置存储部 件的处理器中的至少一个互联, 所述可配置存储部件的处理器与可配置运算部 件的处理器、 可配置存储部件的处理器中的至少一个互联; 所述可配置运算部 件的处理器包括第一算法数据控制部件和至少一个用于对输入数据执行运算操 作的运算部件, 所述运算部件包括逻辑运算单元和配置寄存器, 所述第一算法 数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件的配置寄 存器, 所述运算部件根据其自身配置寄存器中的配置信息进行逻辑运算; 所述 可配置存储部件的处理器包括第二算法数据控制部件和至少一个用于对数据进 行存储或读出操作的存储部件, 所述存储部件包括存储单元和配置寄存器, 所 述第二算法数据控制部件执行配置指令, 将配置信息写入指令中指定的存储部 件的配置寄存器, 所述存储部件根据其自身配置寄存器中的配置信息进行数据 存取。
[7] 所述配置指令包含操作码、 配置信息和配置目的三个操作元素, 所述操作码为 规定指令所执行操作的命令码, 所述配置信息为指令操作的对象, 所述配置目 的用于指定写入配置信息的配置寄存器。
[8] 在另一实施例中, 还提供一种集成电路的处理器结构, 包括第二算法数据控制 部件和至少一个用于对数据进行存储或读出操作的存储部件, 所述存储部件包 括存储单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将配置 信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其自身配置 寄存器中的配置信息进行数据存取。
[9] 在又一实施例中, 还提供一种集成电路的处理器结构, 包括第一算法数据控制 部件和至少一个用于对输入数据执行运算操作的运算部件, 所述运算部件包括 逻辑运算单元和配置寄存器, 所述第一算法数据控制部件执行配置指令, 将配 置信息写入指令中指定的运算部件的配置寄存器, 所述运算部件根据其自身配 置寄存器中的配置信息进行逻辑运算。
[10] 本发明的有益效果是:
[11] 本发明釆用一种可配置运算部件的处理器 AP和一种可配置存储部件的处理器 M P, 通过多个 AP和 /或 MP处理器的级联, 实现 ASIC的快速设计。 本发明的 AP和 MP级联较简明, 具有可配置、 可编程的灵活性, 不需要复杂的逻辑, 可简化硬 件结构, 但可支持复杂的算法功能。 在需要增加运算功能 (或运算部件) 和存 储功能 (或存储部件) 吋, 因为本发明将配置信息写入相应的配置寄存器, 而 运算部件和存储部件分别根据其自身的配置寄存器中的内容进行逻辑运算和数 据存取, 不需要对 AP和 MP的指令系统进行修改和增加, 只需定义新增配置信息 即可。 [12] 同吋, 本发明的指令系统与现有技术中的具有确定性语义的指令不同, 本发明 的配置指令中包含操作码、 配置信息和配置目的三个操作元素, 不同的配置信 息来源和不同的配置目的, 可产生不同的语义, 可能同样的指令完成不同的配 置, 所以本发明具有良好的算法保密性。
附图说明
[13] 图 1是本发明一种实施例中 ADU的硬件模块框图;
[14] 图 2是本发明一种实施例的可配置运算部件的处理器的硬件框图;
[15] 图 3是本发明另一种实施例的可配置存储部件的处理器的硬件框图;
[16] 图 4是本发明存储部件的一种实施例的结构框图;
[17] 图 5是本发明多核 DSP间直接级联的结构框图;
[18] 图 6是是本发明多核 DSP间通过交换开关间接级联的结构框图;
[19] 图 7—图 10是本发明可配置运算部件的处理器和可配置存储部件的处理器的 几种级联方式;
[20] 图 11是本发明一种实施例的特定应用算法需求分析图;
[21] 图 12是根据图 11的级联图。
具体实施方式
[22] 下面通过实施例结合附图对本发明作进一步详细说明。
[23] 本发明的处理器结构或系统中的可配置 DSP通过选择优化的可配置部件, 支撑 复杂算法的快速实现。 其中, 可配置部件包括可配置的算法数据控制部件 (以 下简称控制部件, 如图 1中的 38, 图 2中 10, 图 3中的 20) 、 可配置的运算部件 ( 图 2中 12) 、 可配置的存储部件 (图 3中 22) 及可配置的数据路径 (图 2中 l la、 11 b, 图 3中的 22a、 22b) 。 本发明的可配置概念不仅表示通过一系列软件或硬件生 成 DSP软核或硬核, 不同 DSP软核 /硬核中可配置部件的功能或数目不一致; 也表 示已生成的 DSP软核 /硬核中可配置部件在实际运行过程中根据需要进行实吋的 功能配置; 还可表示多个 DSP核级联的拓扑结构可配置。
[24] 其中, 可配置的控制部件 (ADU) 可以理解为是一个不包括运算部件的只有几 条指令的处理器, 在一种实施例中, 可配置的控制部件 ADU包括加载模块、 指 令存储器、 数据存储器、 译码器、 和通用寄存器, 还可以进一步包括定吋或计 数器等模块。 如图 1所示为可配置的控制部件 ADU38的一种具体结构, 模块 31为 程序计数器 PC, 用来指示当前运行程序的地址; 模块 32和 33分别代表数据存储 器 DMEM和指令存储器 IMEM, 分别用来存储数据和指令, 当然也可以釆用一个 存储器存储数据和指令; 模块 34是译码单元, 用做分析指令含义, 解释指令行 为; 模块 36为通用寄存器组, 用于存储数据或指令; 模块 37表示加载模块。 加 载模块 37从外部端口加载数据存入数据存储器 DMEM或指令存储器 IMEM, 定吋 或计数器 35为 ADU提供计吋或计数处理。 当加载模块 37加载的是数据吋, 加载 模块将数据从输入端口加载至数据存储器 dmem, 当加载模块 37加载的是指令吋 , 载模块将指令从输入端口加载至指令存储器 imem, 通过 PC模块提供的地址将 从指令存储器中选择对应指令进行操作。
[25] ADU的可配置主要表现在指令字长的变化上, 希望一条指令完成全部配置 (运 算部件、 数据通路等) , 还是只完成运算部件的配置。 以运算部件为例说明如 下:
[26] 假设配置一个 ALU单元的配置信息为 n
bit,则同吋配置四个 ALU单元的配置信息为 4n bit, 配置指令的字长为 4n+m bit, 其中 m为该配置指令的操作码。 对于不同应用情况, DSP需要的 ALU数目不 同, 因此 ADU的指令字长也根据 ALU的数目而变化。
[27] 可配置的运算部件可包括若干个运算单元, 每个运算单元包括逻辑运算单元 ( 简称 ALU) 和配置寄存器。 可配置控制部件执行配置指令, 将配置信息写入运 算部件的配置寄存器, 所述运算部件根据其自身配置寄存器中的配置信息进行 指定的数据运算。
[28] 可配置的存储部件包括存储单元和配置寄存器, 可配置控制部件执行配置指令 , 将配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其 自身配置寄存器中的配置信息进行数据存取。
[29] 可配置的数据路径为用于选择数据输入或输出路径的数据通路, 包括数据输入 通路和输出选择单元, 所述数据输入通路包括数据输入转换开关和配置寄存器 , 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器。 可配置控 制部件还根据配置指令, 将配置信息写入指令中指定的数据通路的配置寄存器 , 数据输入通路根据其自身配置寄存器中的配置信息控制数据输入转换开关的 切换, 输出选择单元根据其自身配置寄存器中的配置信息控制数据输出转换开 关的切换。
[30] 在本发明中可配置的数据路径有两种含义。 一种为 DSP内部可配置的数据路径 , 主要由转换开关和配置寄存器组成。 在数据输入通路的输入端, 输入数据来 源有三个: 可配置的控制部件 ADU中的通用寄存器中暂存的数据、 从输入端口 输入的数据和输出选择单元输出的数据, 数据输入通路可根据其配置寄存器中 的配置信息在三个数据来源中进行选择。 数据输出通路可通过四个路径输出数 据, 即: 将数据输出到输出端口、 输出到数据输入通路的输入口、 存入 ADU的 通用寄存器和数据存储器, 输出选择单元可根据配置信息在四个数据输出路径 中进行选择。 因此, 对 DSP内部数据路径的可配置表现在通过 ADU向数据通路 中的配置寄存器写配置值, 选择数据输入来源和数据输出目标。
[31] 本发明中可配置数据路径的第二种含义为 DSP核间的数据路径可配置, 具体表 现在多核之间的数据级联。 本发明中每个 DSP核最多可从两个 DSP核接收数据, 可向任意多的 DSP核发送数据。 多核级联可以釆用静态级联的方式, 即两个 DSP 核间连线直连 (如图 5), 也可以通过 DSP核间的可配置互联开关进行核间 DSP远距 离互联 (如图 6) 。 对 DSP核间数据路径的可配置表现在映射多核 DSP拓扑结构 吋对核间数据路径的可配置。
[32] 针对上述可配置的硬件结构, 在本发明的一种实施例中提出了一套语义简单的 指令系统, 具体说明如下:
[33] 本发明中, 可配置运算部件、 可配置存储部件及可配置的数据路径由其对应的 控制部件执行配置指令完成配置功能。 其中, 配置指令包含操作码、 配置信息 和配置目的三个操作元素, 所述操作码为规定指令所执行操作的命令码, 所述 配置信息为指令操作的对象, 所述配置目的用于指定写入配置信息的配置寄存 器。 所述操作码、 配置信息和配置目的可由用户设置, 配置指令的格式和位宽 不限, 可根据实际情况进行调整格式和位宽。 所述配置信息可以为通用寄存器 中的内容, 也可以是立即数或数据存储器的内容或输入端口的寄存器的内容。 例如: [34] Movesc reg , configreg:
[35] 该指令将通用寄存器 reg中的数据写入指定的配置寄存器, 该配置寄存器直接 完成相应的运算部件的功能或数据通路的路径配置。
[36] 作为该类指令的变种, 在指令位宽允许的情况下, 也可将上述指令中的通用寄 存器 reg改为立即数 imm, 即 Movesc
imm, COnfigreg。 将 imm直接写入指定的配置寄存器。
[37] 立即数 imm也可表示数据存储器的地址, 将对应地址的数据存储器的数据作为 配置信息, 立即数还可以是具体的操作或数值。
[38] 上述配置寄存器中数据所代表的配置含义, 即指定的运算操作或数据路径, 可 以根据需要定制, 从而使非法的程序代码获取者无法破译实际执行的算法。
[39] Movesd reg, datareg:
[40] 该指令将通用寄存器 reg中的数据写入指定的数据寄存器。
[41] 作为该指令的变种, 该指令中的 reg可以是处理器的数据输入端口寄存器, 即 将处理器的数据输入端口寄存器的值写入指定的数据寄存器, 配置指令为: Inpu t
p0rt,datareg。 同样, 该指令中的 datareg可以指处理器的数据输出端口寄存器, 即 将处理器的通用寄存器的值写入指定的数据输出端口寄存器,
酉己置指令为: Output reg, port°
[42] 在处理器进行运算或存储功能吋, 控制部件可有以下几种配置选择:
[43] 1.配置 Switch的数据路径 (也称为交换幵关) , 选择运算部件簇的数据输入路 径, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 Switch中的数据路径, 即选择交换幵关;
[44] 2.同样可以配置 Switch的数据路径 (也称为交换幵关) , 选择存储部件簇的数 据输入路径, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 Switch中的数据路径,即选择交换幵关;
[45] 3.配置运算单元簇各运算单元的运算功能, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置运算单元的运算操作;
[46] 4.配置存储单元簇各存储单元的存储功能, 相应的指令为: movesc reg configreg, 其中 configreg用于配置存储单元的存储操作;
[47] 5.配置和管理数据输入和输出端口, 配置运算单元 /存储单元的结果写回目的地 , 如通用寄存器、 switch中的数据存储器或者输出端口等, 对应的指令为: move sc reg configreg, 其中 configreg对应的是数据输出转换幵关选择的配置寄存器。
[48] 6.配置和管理数据输入和输出端口。
[49] 根据算法的实现要求, 按一定的吋间和顺序重复上述步骤, 即是实现算法的程 序, 便可完成预定的算法功能。
[50] 在进行数据流或数据段处理吋, 存在三种特殊情况:
[51] 1 . 在进行数据流处理吋, 常常会遇到一个逻辑运算单元仅需完成一个特定功 能运算的情况下, 这样往往需要反复循环地执行一段特定的程序。
[52] 2. 当 ADU单元执行完一个指令 (例如该指令是存入一个数据段) 后, 需要等 待存储部件操作完成后才可以执行下一条指令 (例如下一条指令是存入另一个 数据段) 。
[53] 3 . 当处理单元 a需要从另两个处理单元 b和 c取数再进行运算吋, 会出现其中一 个处理单元 b的数据到得比较早, 另外一个处理单元 c数据到得比较晚 (由于两个 处理器工作任务不同, 很容易造成数据到达吋间上的不统一) , 处理单元 a会将 处理单元 b和一个空数据发生有效操作, 而导致计算错误。
[54] 为解决上述三个问题, 在本发明的另一实施例中, 定义了控制处理器暂停的暂 停指令, 所述暂停指令包括操作码和暂停吋间计数信息两个操作元素, 其一种 格式是:
[55] Rouser #imm;
[56] 在处理器对数据流进行处理吋 ADU执行暂停指令, 控制处理器处于暂停状态, 启动定吋器计吋或计数器计数, 同吋使处理器处于暂停状态, 使所述数据通路 和 /或存储部件的配置信息保持不变, 直到接收到恢复信息。 这段吋间内, ADU 单元不执行指令, 输出数据比较快的处理单元也处于等待状态。 当计吋或计数 完成吋, 处理器中各部分恢复正常运行状态。
[57] 该指令也可写为 rouser reg的形式, 这吋 reg中的值取代 imm。
[58] 暂停指令还可以是以下格式: HLT;
该指令作为 rouser指令的特殊形式, 即当 ADU执行该指令吋, 将暂停处理器的 工作, 直到被其他信号 (如中断信号等) 唤醒。
[61] 例如, 在处理数据流吋, 假设运算部件的上次运算是加法运算, 执行暂停指令 后, 运算部件将保持加法运算功能, 对输入的数据作加法运算, 直到处理器恢 复正常运行状态, 运算部件被配置以新的运算功能。
[62] 以上可知, 利用该配置指令及其硬件实现, 可方便地改变其内部的运算单元 / 存储单元的连接关系和运算 /存储功能, 实现处理器的数据通路和功能的可配置 性, 适用于对大规模数据流处理的情况, 特别是针对数字信号处理的阵列。
[63] 本发明在需要增加计算功能吋, 不需要对指令进行修改和增加, 仅需定义新增 配置信息的语义即可, 有利于处理器功能的扩展并且不增加硬件设计的复杂性
[64] 本发明仅需通过简单的配置指令即可完成各种复杂的运算操作和算法映射, 从 指令设计上来看各功能单元执行的指令基本相同, 而通过配置信息的不同却可 完成不同的操作。 例如同样的 movesc指令, 根据所写的配置寄存器不同而配置 不同步骤的功能实现; 由于 ALU可根据硬件设计者自行设计运算单元 /存储单元 , 因此即使执行配置 ALU指令的配置信息完全一样, 计算 /存储单元的执行功能 也可根据运算 /存储单元的不同而不同。 因此, 本发明中的指令具有加密性, 各 系统设计厂商可根据实际情况自定义阵列中运算 /存储单元簇的配置信息的语义 , 从而得到自定义的指令系统, 并可有效保护自主知识产权。
[65] 本发明的指令和硬件结构有利于数据流处理。 阵列结构中的每个处理单元都可 通过该配置指令完成相应配置从而实现不同的计算功能, 在进行大规模数字信 号处理吋, 数据从阵列的输入端口流进, 途经各个处理单元完成相应的运算操 作, 即可完成复杂的数字信号处理的算法映射, 而不需要各处理单元频繁地执 行指令, 仅需在初始化吋完成各计算单元功能和数据路径配置, 或在少数处理 单元工作过程中进行相应的运算 /存储功能和数据路径的修改。
[66] 根据上述可配置的控制部件、 可配置的运算部件、 可配置的存储部件以及可配 置的数据路径, 本发明可组合形成可配置运算部件的处理器及可配置存储部件 的处理器两类处理器结构, 并可通过可配置的数据路径方便地将两类处理器进 行级联, 已完成快速算法实现功能。
[67] 实施例一:
[68] 本实施例为具有可配置运算部件的处理器。 处理器中包括至少一个可配置的控 制部件、 用于选择数据输入 /输出来源的数据通路和用于对输入数据执行运算操 作的可配置的运算部件 (简称 ALU) , ADU负责配置数据通路的数据输入和 /或 输出路径和 ALU的运算功能, 即针对相关的算法应用, ADU通过执行配置指令 进行数据通路的路径配置和 ALU的运算功能配置。
[69] 如图 2所示为可配置运算部件处理器的一种具体结构, 为方便说明, 本图中可 配置的运算部件仅画了两个, 运算部件可以有一个或多个, 可根据具体需要设 计。 每个可配置的运算部件包括逻辑运算单元 ALU和配置寄存器。 模块 12 代表可配置的运算部件 (简称 ALU簇) , 每个 ALU簇包括逻辑运算单元 ALU14 和配置寄存器 17a。 图中模块 10表示处理器中的 ADU单元, 该单元负责执行本发 明中的一系列指令, 其可釆用前述的 ADU或图 1所示的结构。 本实施例中, ADU 单元可执行配置指令, 将配置信息写入配置寄存器 17a, 将逻辑运算单元 (ALU ) 14配置成需要的逻辑运算单元。 例如, 通过配置, ALU单元可以是但不限于 加法器、 乘法器、 移位器等基本的运算模块。 特别的, ALU还可以包括各种专 用的运算单元, 如蝶形运算单元、 cordic单元等。 对 ALU单元的可配置表现在根 据 ADU的配置指令对操作数进行不同的运算操作。
[70] 数据通路包括数据输入通路 11a和输出选择单元 l ib, 数据输入通路 11a包括数 据输入交换开关 13a和配置寄存器 17c, 输出选择单元 l ib包括数据输出转换开关 1 3b和输出端口配置寄存器 17b。
[71] 模块 15和 16分别代表处理器的输入端口和输出端口, 负责数据的输入和输出。
模块 18代表数据通路的数据寄存器, 为 ALU簇保存操作数据。
[72] 在数据输入通路 11a的输入端, 输入数据来源有三个: 可配置的控制部件 ADU 中的通用寄存器中暂存的数据、 从输入端口输入的数据和输出选择单元输出的 数据, 数据输入通路 11a可根据配置信息在三个数据来源中进行选择。
[73] 输出选择单元 l ib可通过三个路径输出数据, gP: 将数据输出到输出端口、 输 出到数据通路 Switch的输入口和存入 ADU的通用寄存器, 输出选择单元可根据配 置信息在三个数据输出路径中进行选择。
[74] 由上可知, 可配置的控制部件 ADU执行配置指令, 将配置信息写入指令中指定 的配置寄存器。 配置信息可以是通用寄存器的内容或者是立即数。 数据作为配 置信息, 配置寄存器的各种配置信息经过简单的译码操作, 可对应选择相应的 功能模块进行运算。 例如, 假定 000是加法, 001减法。 则该指令将 000写入配置 寄存器后, 一个很小的译码器 (或者是选择器) 根据 000选择加法器使能工作, 因此进入逻辑运算单元中的两个操作数 a和 b完成加法。 指令中指定的配置寄存器 可以是数据输入通路的配置寄存器, 也可以是运算部件 ALU的配置寄存器, 还 可以是输出选择单元的配置寄存器。
[75] 基于本实施例的硬件结构, 处理器可通过对如下可配置单元进行配置完成各种 运算操作, 配置指令为前述指令中的某一种:
[76] 1.配置数据输入路径 (也称为交换开关) , 即选择 ALU簇的数据输入路径, 相 应的指令为: movesc reg
configreg, 其中 configreg用于配置数据输入通路中的数据路径,即选择数据输入通 路中的交换开关,确定输入数据来源;
[77] 2.配置 ALU簇各 ALU的运算功能, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 ALU的运算操作;
[78] 3.配置和管理数据输入和输出端口, 配置 ALU运算结果写回目的地, 如通用寄 存器、 数据输入通路中的数据存储器或者输出端口等, 对应的指令为: movesc reg configreg, 其中 configreg对应的是数据输出转换开关选择的配置寄存器。
[79] 按照以上步骤, 配置信息被写入相关配置寄存器, 完成对相关单元的配置, 且 配置信息被保存至配置寄存器中, 直到下一次再写入吋才会改变。 ALU功能、 数据路径都配置完成之后, 即可自动完成后续数据处理。
[80] 实施例二:
[81] 本实施例为具有可配置存储部件的处理器。 可配置存储部件的处理器中包括可 配置的控制部件 (简称 ADU) 、 用于选择数据输入和 /或输出路径的数据通路和 至少一个用于对数据进行存储或读出操作的存储部件。 ADU负责执行配置指令 , 对数据通路的数据路径和存储部件的存取功能进行配置。
[82] 每个存储部件包括存储单元和配置寄存器, 所述可配置的控制部件执行配置指 令, 将配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据 其自身配置寄存器中的配置信息进行数据存取。
[83] 如图 3所示为处理器的一种具体结构, 为方便说明, 本图中存储部件仅画了两 个, 存储部件可以有一个或多个, 可根据具体需要设计。 图中模块 20表示处理 器中的 ADU单元, 该单元负责执行本发明中的一系列指令, 其可釆用前述的 AD U或图 1所示的结构; ADU单元 20执行配置指令, 对数据通路和存储部件 22的存 取功能进行配置。 所述数据通路包括数据输入通路 21a和输出选择单元 21b, 所述 数据输入通路 21a包括数据输入转换开关 23a和配置寄存器 27c, 所述输出选择单 元 21b包括数据输出转换开关 23b和输出端口配置寄存器 27b。 ADU单元 20根据配 置指令, 将配置信息写入指令中指定的数据通路的配置寄存器, 所述数据输入 通路 21a根据其自身配置寄存器 27c中的配置信息控制数据输入转换开关 23a的切 换, 所述输出选择单元 21b根据其自身配置寄存器 27b中的配置信息控制数据输 出转换开关 23b的切换。 即将配置信息作为控制信号, 控制开关的切换。 数据输 入通路 21a连接输入端口 25和 ADU单元 20中的通用寄存器, 数据的输入来源可以 是 ADU单元 20中的通用寄存器, 还可以是输入端口 25。 输出选择单元 21b连接输 出端口 26和 ADU单元 20中的通用寄存器, 数据的输出路径可以是通过输出端口 2 6输出, 也可以输出到通用寄存器。
[84] 存储部件 22的一种实施方式是包括存储单元 (即 MEM) 24和配置寄存器 27a, ADU单元 20执行配置指令, 将配置信息写入其配置寄存器 27a中, 存储部件 22根 据配置信息将数据存入存储单元 24中, 或将数据从存储单元 24中读出。
[85] 存储部件的另一种实施方式是包括存储单元、 配置寄存器和地址产生器, 如图 4所示, 地址产生器分别连接该存储部件的配置寄存器和存储单元, 所述地址产 生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地址基址 (即存取数据的初始地址) 、 跳变步长和跳变次数, 根据地址基址, 跳变步长 , 跳变次数可确定数据存取的实际物理地址。 例如, 需要存储 1-16的一个数据段 吋, 地址产生器可根据配置信息, 产生出存储数据的地址基址, 控制数据从存 储单元的该地址开始存储, 并以跳变步长为 1, 跳变 15次, 直到将最后一个数据 存入。 釆用这种方式存取数据, 可以通过地址产生器根据配置信息中的内容自 动产生一大段有规律的地址, 而面对 DSP算法, 大段数据的存取都是有规律的, 如地址自增 1, 自增 2等。 这样可以只需要执行一次指令, 即可对一段数据进行 存取操作, 而不需要重复执行 16条指令或进行一段指令的循环, 从而简化了操 作, 尤其是对流处理或者大块数据存取的操作比较方便, 不用每次存取都由程 序员控制给出地址。
[86] 因存储单元可以是 FLASH, EEPROM或 SRAM等任意一种存储介质, 不同的存 储介质进行存储的方式不同, 为通过配置将相同的输入数据格式转化为不同存 储器的读写数据格式, 在另外的具体实施例中, 存储部件还可以包括至少一个 分别连接该存储部件的配置寄存器和存储单元的格式转换器, 将所述配置寄存 器中的配置信息进行译码, 选择相应的格式转换器, 通过该格式转换器将外部 数据转化为针对该存储单元存取的格式。 例如, EEPROM是串行数据存取, 和 S RAM的存取方式不同, 则需要对数据进行一定的打包或解包等转换操作才能进 行存取, 而转换操作就由格式转换器完成。 不同的存储器需要不同的格式转换 器, 因而在该实施例中, 可设置多种格式转换器, 并根据配置信息在多种格式 转换器中进行选择。
[87] 需要存入数据吋, 配置数据输入通路 21a的数据路径,相应的指令为: movesc reg
configreg,其中 configreg用于配置数据输入通路 21a中的数据路径,即选择转换开关 。 数据输入通路 21a根据其配置寄存器 27c中的配置信息,选择数据的输入来源, 数据在数据输入通路 21a的数据寄存器 28中进行暂存后输入到某个指定的存储部 件 22中。 配置存储部件簇各存储部件 22的存储功能, 相应的指令为: movesc reg configreg, 其中 configreg用于配置存储部件 22的存储功能,存储部件 22根据其配置 寄存器 27a中的配置信息,从地址基址按照跳变步长和跳变次数存入数据。 并配置 和管理数据输入和输出端口。
[88] 按一定的吋间和顺序重复上述步骤, 即是实现算法的程序, 便可完成预定算法 的存储功能。 [89] 需要读出数据吋, 存储部件 22根据其配置寄存器 27a中的配置信息, 从地址基 址按照跳变步长和跳变次数读出数据, 并输出数据到输出选择单元 21b, 输出选 择单元 21b根据其配置寄存器 23b中的配置信息, 选择数据的输出路径。
[90] 基于本实施例的硬件结构, 可配置的控制部件执行的配置指令可为前述指令中 的某一种。
[91] 因此, 对存储部件的可配置主要体现在对地址产生器的可配置, 使之可以产生 不同的存取访问地址; 以及通过对存储单元、 格式转换器的配置进行不同容量 , 不同类型的存储介质的选择。
[92] 实施例三:
[93] 本实施例为具有可配置运算部件处理器和可配置存储部件处理器的处理器及其 级联。
[94] 为表述方便, 我们将可配置运算部件的处理器称为 AP, 将可配置存储部件的 处理器称为 MP。 通过一系列 AP和 MP的级联就可以实现任何特定应用算法专用 集成电路 (即 ASIC) , 该种结构包括至少一个 AP和至少一个 MP, AP与 AP、 M P中的至少一个互联, MP与 AP、 MP中的至少一个互联, 如图 7- 10所示。
[95] 图 11是本发明一种实施例的特定应用算法需求分析, 将输入的数据先通过两个 AP进行运算, 暂存结果, 然后再分别经两个和四个 AP运算, 再暂存结果, 暂存 的结果再经四个 AP运算, 最后将数据输出。 通过对特定应用算法的需求分析, 形成一个运算和存储需求流程图, 然后就可以形成 AP和 MP的级联图, 如图 12所 示。 当然, 还需要根据算法的吋间约束等条件, 通过 AP和 MP的复用、 减少 AP 和 MP的数量, 同吋在完成算法功能后进一步定制, 取消没有使用的可配置功能
[96] 根据本发明的构思, 可以根据需要设置 AP和 MP的级联方式, 实现所需要的算 法。
[97] AP中的可配置的控制部件和 MP中的可配置的控制部件可以釆用相同的结构, 也可以釆用不同的结构。 本实施例中以 AP和 MP釆用相同结构的 ADU进行说明。 上述实施例中, AP的第一可配置的控制部件和 MP的第二可配置的控制部件可以 是每个单元独立拥有的, 也可以是若干单元共用的。 [98] AP和 MP的指令处理部件较简单, 将运算功能和存储功能都规整到可配置运算 部件和可配置存储部件的内部处理。
[99] 这样的 AP和 MP能够高效级联支撑应用算法的实现, 并具有可配置和可编程的 灵活性。 如果特定应用算法专用集成电路的设计已经釆用 AP和 MP级联的方式实 现, 需要进一步缩小芯片面积、 降低成本, 则可以将可配置部件 (运算部件、 存储部件等) 按照应用算法的需要进行定制: 取消没有使用的可配置功能。
[100] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明, 不能认 定本发明的具体实施只局限于这些说明。 对于本发明所属技术领域的普通技术 人员来说, 在不脱离本发明构思的前提下, 还可以做出若干简单推演或替换, 都应当视为属于本发明的保护范围。

Claims

权利要求书
[1] 1.一种集成电路的处理器结构, 其特征在于: 包括至少一个可配置运算部 件的处理器和至少一个可配置存储部件的处理器, 所述每个可配置运算部 件的处理器与可配置运算部件的处理器、 可配置存储部件的处理器中的至 少一个互联, 所述每个可配置存储部件的处理器与可配置运算部件的处理 器、 可配置存储部件的处理器中的至少一个互联; 所述可配置运算部件的 处理器包括第一算法数据控制部件和至少一个用于对输入数据执行运算操 作的运算部件, 所述运算部件包括逻辑运算单元和配置寄存器, 所述第一 算法数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件 的配置寄存器, 所述运算部件根据其自身配置寄存器中的配置信息进行逻 辑运算; 所述可配置存储部件的处理器包括第二算法数据控制部件和至少 一个用于对数据进行存储或读出操作的存储部件, 所述存储部件包括存储 单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将配置信 息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其自身配 置寄存器中的配置信息进行数据存取。
[2] 2.如权利要求 1所述的处理器结构, 其特征在于: 所述配置指令包含操作码
、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操作 的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写入 配置信息的配置寄存器。
[3] 3.如权利要求 2所述的处理器结构, 其特征在于: 所述操作码、 配置信息和 配置目的可由用户设置, 所述指令的位宽可根据实际情况进行调整。
[4] 4.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述存储部 件还包括分别连接该存储部件的配置寄存器和存储单元的地址产生器和至 少一个格式转换器, 所述地址产生器根据所述配置寄存器中的配置信息设 定所述存储单元存取数据的地址基址、 跳变步长和跳变次数, 所述配置寄 存器根据其中的配置信息选择相应的格式转换器, 使所述格式转换器将外 部数据转化为针对该存储单元存取的格式。
[5] 5.如权利要求 1所述的处理器结构, 其特征在于: 所述可配置运算部件的处 理器和可配置存储部件的处理器还分别包括用于选择数据输入或输出路径 的数据通路, 所述数据通路包括数据输入通路和输出选择单元, 所述数据 输入通路包括数据输入转换开关和配置寄存器, 所述输出选择单元包括数 据输出转换开关和输出端口配置寄存器, 所述第一或第二算法数据控制部 件还根据配置指令, 将配置信息写入指令中指定的数据通路的配置寄存器 , 所述数据输入通路根据其自身配置寄存器中的配置信息控制数据输入交 换开关的切换, 所述输出选择单元根据其自身配置寄存器中的配置信息控 制数据输出转换开关的切换。
[6] 6.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述第一算 法数据控制部件和第二算法数据控制部件都包括加载模块和通用寄存器, 所述加载模块用于从外部端口加载指令或数据并存入通用寄存器, 所述配 置信息为通用寄存器中的内容、 立即数或数据存储器中的内容。
[7] 7.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述第一算 法数据控制部件和第二算法数据控制部件还执行暂停指令, 控制各自的处 理器处于暂停状态, 并使所述运算部件和存储部件的配置信息保持不变, 直到接收到恢复信息。
[8] 8.如权利要求 7所述的处理器结构, 其特征在于: 所述恢复信息为从执行暂 停指令开始计吋或计数完成的信息或中断信号。
[9] 9.如权利要求 7或 8所述的处理器结构, 其特征在于: 所述暂停指令包括操 作码和暂停吋间计数信息两个操作元素。
[10] 10.如权利要求 1所述的处理器结构, 其特征在于: 所述可配置运算部件的 处理器或可配置存储部件的处理器最多与可配置运算部件的处理器、 可配 置存储部件的处理器中的四个互联。
[11] 11.一种集成电路的处理器结构, 包括第二算法数据控制部件和至少一个用 于对数据进行存储或读出操作的存储部件, 其特征在于: 所述存储部件包 括存储单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将 配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其 自身配置寄存器中的配置信息进行数据存取。
[12] 12.如权利要求 11所述的处理器结构, 其特征在于: 所述配置指令包含操作 码、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操 作的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写 入配置信息的配置寄存器。
[13] 13.如权利要求 11或 12所述的处理器结构, 其特征在于: 所述存储部件还包 括分别连接该存储部件的配置寄存器和存储单元的地址产生器, 所述地址 产生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地 址基址、 跳变步长和跳变次数。
[14] 14.如权利要求 13所述的处理器结构, 其特征在于: 所述存储部件还包括至 少一个分别连接该存储部件的配置寄存器和存储单元的格式转换器, 根据 所述配置寄存器中的配置信息选择相应的格式转换器, 将外部数据转化为 针对该存储单元存取的格式。
[15] 15.如权利要求 13所述的处理器结构, 其特征在于: 所述处理器还包括用于 选择数据输入或输出路径的第二数据通路, 所述第二数据通路包括数据输 入通路和输出选择单元, 所述数据输入通路包括数据输入交换开关和配置 寄存器, 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器 , 所述第二算法数据控制部件还根据配置指令, 将配置信息写入指令中指 定的第二数据通路的配置寄存器, 所述数据输入通路根据其自身配置寄存 器中的配置信息控制数据输入交换开关的切换, 所述输出选择单元根据其 自身配置寄存器中的配置信息控制数据输出转换开关的切换。
[16] 16.如权利要求 11至 13中任一项所述的处理器结构, 其特征在于: 所述第二 算法数据控制部件包括加载模块和通用寄存器, 所述加载模块用于从外部 端口加载指令或数据并存入通用寄存器, 所述配置信息为通用寄存器中的 内容、 立即数或数据存储器中的内容。
[17] 17.—种集成电路的处理器结构, 包括第一算法数据控制部件和至少一个用 于对输入数据执行运算操作的运算部件, 其特征在于: 所述运算部件包括 逻辑运算单元和配置寄存器, 所述第一算法数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件的配置寄存器, 所述运算部件根据 其自身配置寄存器中的配置信息进行逻辑运算。
[18] 18.如权利要求 17所述的处理器结构, 其特征在于: 所述配置指令包含操作 码、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操 作的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写 入配置信息的配置寄存器。
[19] 19.如权利要求 18所述的处理器结构, 其特征在于: 所述处理器还包括用于 选择数据输入或输出路径的第一数据通路, 所述第一数据通路包括数据输 入通路和输出选择单元, 所述数据输入通路包括数据输入交换开关和配置 寄存器, 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器 , 所述第一算法数据控制部件还根据配置指令, 将配置信息写入指令中指 定的第一数据通路的配置寄存器, 所述数据输入通路根据其自身配置寄存 器中的配置信息控制数据输入交换开关的切换, 所述输出选择单元根据其 自身配置寄存器中的配置信息控制数据输出转换开关的切换。
[20] 20.如权利要求 17所述的处理器结构, 其特征在于: 所述第一算法数据控制 部件包括加载模块和通用寄存器, 所述加载模块用于从外部端口加载指令 或数据并存入通用寄存器, 所述配置信息为通用寄存器中的内容、 立即数 或数据存储器中的内容。
[21] 21.如权利要求 19所述的处理器结构, 其特征在于: 所述第一算法数据控制 部件还用于在处理器对数据流进行运算吋执行暂停指令, 控制处理器处于 暂停状态, 并使所述第一数据通路和 /或运算部件的配置信息保持不变, 直 到接收到恢复信息。
PCT/CN2008/073514 2008-09-28 2008-12-15 一种集成电路的处理器结构 Ceased WO2010034167A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/121,406 US20110271078A1 (en) 2008-09-28 2008-12-15 Processor structure of integrated circuit

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN200810216362A CN101685389B (zh) 2008-09-28 2008-09-28 一种处理器
CN200810216362.9 2008-09-28
CN200810216859.0 2008-10-20
CN2008102168586A CN101727433B (zh) 2008-10-20 2008-10-20 一种处理器结构
CN2008102168590A CN101727434B (zh) 2008-10-20 2008-10-20 一种特定应用算法专用集成电路结构
CN200810216858.6 2008-10-20

Publications (1)

Publication Number Publication Date
WO2010034167A1 true WO2010034167A1 (zh) 2010-04-01

Family

ID=42059279

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2008/073514 Ceased WO2010034167A1 (zh) 2008-09-28 2008-12-15 一种集成电路的处理器结构

Country Status (2)

Country Link
US (1) US20110271078A1 (zh)
WO (1) WO2010034167A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529571B2 (en) * 2011-10-05 2016-12-27 Telefonaktiebolaget Lm Ericsson (Publ) SIMD memory circuit and methodology to support upsampling, downsampling and transposition
GB2522661B (en) 2014-01-31 2021-03-31 Metaswitch Networks Ltd Context configuration
US11573834B2 (en) * 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659540A (zh) * 2002-06-03 2005-08-24 皇家飞利浦电子股份有限公司 可重配置集成电路
CN101136070A (zh) * 2007-10-18 2008-03-05 复旦大学 基于可重构架构的多协议射频标签读写器基带处理器
CN101211330A (zh) * 2006-12-25 2008-07-02 顾士平 可编程指令集计算机集成电路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07111713B2 (ja) * 1988-02-24 1995-11-29 富士通株式会社 構成変更制御方式
US7007203B2 (en) * 2002-08-02 2006-02-28 Motorola, Inc. Error checking in a reconfigurable logic signal processor (RLSP)
US8478947B2 (en) * 2005-07-05 2013-07-02 Arm Limited Memory controller
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659540A (zh) * 2002-06-03 2005-08-24 皇家飞利浦电子股份有限公司 可重配置集成电路
CN101211330A (zh) * 2006-12-25 2008-07-02 顾士平 可编程指令集计算机集成电路
CN101136070A (zh) * 2007-10-18 2008-03-05 复旦大学 基于可重构架构的多协议射频标签读写器基带处理器

Also Published As

Publication number Publication date
US20110271078A1 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
CN109716318B (zh) 配置硬件在运行时期间多种模式下操作的装置和方法
CN1653446B (zh) 具有可配置执行单元的高性能混合处理器
JP4339245B2 (ja) スカラー/ベクトルプロセッサ
CN101882127B (zh) 一种多核心处理器
CN105468568B (zh) 高效的粗粒度可重构计算系统
CN112099762B (zh) 快速实现sm2密码算法的协处理系统及方法
JP2016517570A (ja) マルチモードベクトル処理を提供するためのプログラム可能データ経路構成を有するベクトル処理エンジン、ならびに関連ベクトルプロセッサ、システム、および方法
US20060265571A1 (en) Processor with different types of control units for jointly used resources
US7383419B2 (en) Address generation unit for a processor
JP4861030B2 (ja) 半導体装置
US8402251B2 (en) Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
CN101739383B (zh) 一种可配置处理器体系结构和控制方法
CN112486907B (zh) 可重构处理器上多层循环任务的硬件实现方法
CN101727434B (zh) 一种特定应用算法专用集成电路结构
WO2010034167A1 (zh) 一种集成电路的处理器结构
JP4073721B2 (ja) データ処理装置
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
CN101685389B (zh) 一种处理器
Abdelhamid et al. MITRACA: A next-gen heterogeneous architecture
CN101727433B (zh) 一种处理器结构
JP2013246816A (ja) ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法
WO2010013427A1 (ja) 集積回路
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
JP4382076B2 (ja) データ処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13121406

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10/06/2011)

122 Ep: pct application non-entry in european phase

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1