Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/80
G06F-009/30
출원번호
US-0973184
(2007-10-06)
등록번호
US-8099583
(2012-01-17)
발명자
/ 주소
Wang, Xiaolin
출원인 / 주소
Axis Semiconductor, Inc.
대리인 / 주소
Vern Maine & Associates
인용정보
피인용 횟수 :
10인용 특허 :
33
초록▼
A new signal processor technique and apparatus combining microprocessor technology with switch fabric telecommunication technology to achieve a programmable processor architecture wherein the processor and the connections among its functional blocks are configured by software for each specific appli
A new signal processor technique and apparatus combining microprocessor technology with switch fabric telecommunication technology to achieve a programmable processor architecture wherein the processor and the connections among its functional blocks are configured by software for each specific application by communication through a switch fabric in a dynamic, parallel and flexible fashion to achieve a reconfigurable pipeline, wherein the length of the pipeline stages and the order of the stages varies from time to time and from application to application, admirably handling the explosion of varieties of diverse signal processing needs in single devices such as handsets, set-top boxes and the like with unprecedented performance, cost and power savings, and with full application flexibility.
대표청구항▼
1. A flexible data pipeline architecture for accommodating substantially all types of software computational requirements for varying applications, comprising: a programmable embedded processor having a plurality of pipeline stages;the pipeline stages including execution units and memory units;an in
1. A flexible data pipeline architecture for accommodating substantially all types of software computational requirements for varying applications, comprising: a programmable embedded processor having a plurality of pipeline stages;the pipeline stages including execution units and memory units;an interconnecting switch, each of the pipeline stages having a direct connection to the interconnecting switch, the interconnecting switch being able to form direct interconnections between the pipeline stages, the direct interconnections between the pipeline stages being variable in response to varying application instruction sequences so as to interconnect the pipeline stages in any desired number and in any desired order; andinterconnections between the pipeline stages being reconfigurable and operating modes of at least some of the pipeline stages being changeable under control of each individual instruction as it is executed. 2. The data pipeline architecture of claim 1 wherein the interconnecting switch is a switch matrix. 3. The data pipeline architecture of claim 2 wherein the processor is (1) dynamically configurable because its internal structure can vary with time, (2) scalable because the number of pipeline stages is only determined by the specific application, and (3) is programmable because it is a true processor applicable to many different applications. 4. The data pipeline architecture of claim 1 wherein the pipeline stages can be reconfigured by the individual instructions every clock cycle as the individual instructions are executed. 5. The data pipeline architecture of claim 4 wherein the application instruction sequences are generated by a software compiler receiving application software instructions and analyzing the same to determine which computational tasks need to be performed in each application and how to configure the processor and the connections amongst the pipeline stages to accommodate the same. 6. The data pipeline architecture of claim 5 wherein, after the application instruction sequences are generated, the number of interconnected pipeline stages and the order of the stages vary from time to time and from application to application. 7. The data pipeline architecture of claim 6 wherein the interconnection of the pipeline stages permits of a flexible structure as contrasted with fixed single pipeline data streams. 8. The data pipeline architecture of claim 5 where both simple and complicated software application instruction sequences of varying sizes are enabled efficiently to use the same pipeline concurrently. 9. The data pipeline architecture of claim 1, wherein the interconnecting switch is a cross-connect switch matrix and the pipeline stages include mathematical execution units of adders and multipliers, and memory units dynamically and parallelly interconnectable through the switch. 10. The data pipeline architecture of claim 9 wherein the architecture is scalable, with computation intensive applications requiring more mathematical execution units then less complicated applications. 11. The data pipeline architecture of claim 10 wherein the amount of execution and/or memory units is determined during a design cycle for a particular application without requiring modification to the compiler and with little impact on development time. 12. The data pipeline architecture of claim 9 wherein the memory units are divided into several banks, connected to the switch, thereby increasing memory access bandwidth and making full utilization of multiple mathematical units possible. 13. The data pipeline architecture of claim 1, wherein the processor is configured for performing parallel processing. 14. The data pipeline architecture of claim 1 wherein efficiency resulting from reconfiguring the interconnections between the pipeline stages enables reduction in the total clock rate cycles required for each application. 15. The data pipeline architecture of claim 14 wherein the lower clock rate reduces power consumption and allows for more logic between two pipeline stages, leading to fewer pipeline stages. 16. The data pipeline architecture of claim 14 wherein the lower clock rate provides for more computing power, allowing the handling of more complicated calculations and applications. 17. A flexible data pipeline structure for accommodating software computational instructions for varying program applications, comprising: a programmable embedded processor having a plurality of pipeline stages, the pipeline stages including mathematical execution units and memory units;a switch matrix, each of the pipeline stages having a direct connection to the switch matrix, the switch matrix being able to form direct interconnections between the pipeline stages, the direct interconnections between the pipeline stages being variable in response to varying program application instructions, the processor including program memory for storing application instructions from a compiler; andat least one instruction fetch and decode unit connected to the program memory;the switch matrix selectively interconnecting pluralities of the mathematical execution units and memory units so as to directly interconnect the pipeline stages in any desired number and in any desired order, the switch matrix being controllable by at least one switch control unit having local storage of at least one switch control vector, the switch matrix being also controllable by commands received from the at least one instruction fetch and decode unit;the switch matrix providing full access switching with any allowable connections between any two pipeline stages, and with the switch matrix connecting to a DMA; andthe interconnections between the pipeline stages being reconfigurable and operating modes of at least some of the pipeline stages being changeable under control of each individual instruction as it is executed. 18. The data pipeline structure of claim 17 wherein the mathematical execution units are selected from the group consisting of integer multipliers, integer ALU, floating-point multipliers, and floating-point ALU. 19. The data pipeline structure of claim 17 wherein the memory units are one of data memory banks and L2 memory banks. 20. The data pipeline structure of claim 17 wherein the processor is provided with a C library including special computational functions, to be directly fed to the compiler and converting the program to the desired processor machine code instructions for setting the mathematical execution units operation, the switch control instructions for connecting the different execution units, and instructions for setting the parameter of the memory unit operations. 21. The data pipeline structure of claim 20 wherein the compiler exploits parallelism for each program based on its instruction sequence and task-required execution units, producing machine instructions in the appropriate time sequence to configure the execution units and memory units and DMA and the connections amongst them. 22. The data pipeline structure of claim 20 wherein special memory unit configuration instructions are provided for each memory unit providing the start address for memory access, auto memory address increment after each access, and memory access clock cycle frequency. 23. The data pipeline structure of claim 22 wherein one instruction fed through the switch matrix configures multiple memory units, providing address and mode information. 24. The data pipeline structure of claim 17 wherein the switch control unit is operated by switch control vectors to set the connections from the output of one mathematic execution unit to the input of another, the connections from any memory unit to an execution unit input, the connection of the DMA to any memory unit, and the connections from the instruction decoder to any execution unit, memory unit and/or DMA. 25. The data pipeline structure of claim 1 provided in a single package adapted to accommodate the convergence of a variety of differing signal-processing application demands with parallelism. 26. A method of processing computer software computational instructions fed to a processor, the method comprising: compiling and analyzing inputted user software applications to determine the specific computational tasks that need to be performed for each software application;generating a set of instruction sequences for each software application, including a set of configuration sequences of the processor functional components and of the connections among them required for that specific software application; andunder control of the individual instructions as they are executed, forming direct interconnections between functional components of the processor through switching of an interconnecting switch, each of the pipeline stages having a direct connection to the interconnecting switch, the interconnecting switch being able to form direct interconnections between the pipeline stages, thereby forming a logical data pipeline having any desired number and order of functional components, interconnections between the functional components being reconfigurable and operating modes of at least some of the functional components being changeable under control of each individual instruction as it is executed. 27. The method of claim 26 wherein said functional components include pluralities of mathematical execution units and pluralities of memory units or banks. 28. The method of claim 27 wherein said switching is cross-connection switching between the execution units and the memory units to configure them into different structures for different application algorithms at different times and corresponding to the different specific software applications. 29. A method as claimed in claim 26 wherein new user defined assembly instructions are created that are tailored to one or more of specific functions, computational equations, or tasks, and which correspond to specific sets of internal processor configurations, including the execution of unit configurations, switch control configurations, and memory unit configurations. 30. A method of signal processing combining microprocessor technology with switch fabric telecommunication technology, the method comprising: utilizing a programmable processor architecture, configuring connections among functional blocks by software through a switch fabric in a dynamic, parallel and flexible fashion, each of the functional blocks having a direct connection to the switch fabric, the switch fabric being able to form direct interconnections between the functional blocks, thereby forming a reconfigurable logical pipeline having any desired number of directly connected functional blocks in any desired order; andvarying the interconnections between the functional blocks, the operating modes of at least some of the functional blocks, and the shape of the logical pipeline from clock cycle to clock cycle and from application to application.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (33)
Krech, Jr., Alan S.; Jordan, Stephen D, Algorithmically programmable memory tester with history FIFO's that aid in error analysis and recovery.
Ing-Simmons Nicholas K. (Oakley TX GB2) Guttag Karl M. (Missouri City TX) Gove Robert J. (Plano TX) Balmer Keith (Bedford GB2), Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode.
Lauritzen Mogens ; Weiss Richard A., Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction.
Gerald G. Pechanek ; Juan Guillermo Revilla ; Edwin F. Barry, Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor.
Pechanek Gerald G. ; Revilla Juan Guillermo ; Barry Edwin F., Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor.
Pechanek, Gerald G.; Revilla, Juan Guillermo; Barry, Edwin Franklin, Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor.
Pechanek, Gerald George; Drabenstott, Thomas L.; Revilla, Juan Guillermo; Strube, David; Morris, Grayson, Methods and apparatus for efficient synchronous MIMD operations with IVLIW PE-TO-PE communication.
Gerald G. Pechanek ; Thomas L. Drabenstott ; Juan Guillermo Revilla ; David Carl Strube ; Grayson Morris, Methods and apparatus for efficient synchronous MIMD operations with iVLIW PE-to-PE communication.
Pechanek Gerald G. ; Drabenstott Thomas L. ; Revilla Juan Guillermo ; Strube David Carl ; Morris Grayson, Methods and apparatus for efficient synchronous MIMD operations with iVLIW PE-to-PE communication.
Pechanek Gerald G. ; Barry Edwin F. ; Revilla Juan Guillermo ; Larsen Larry D., Methods and apparatus for scalable instruction set architecture with dynamic compact instructions.
Revilla Juan Guillermo ; Barry Edwin F. ; Marchand Patrick Rene ; Pechanek Gerald G., Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor.
Gove Robert J. (Plano TX) Balmer Keith (Bedford GB2) Ing-Simmons Nicholas K. (Bedford TX GB2) Guttag Karl M. (Missouri City TX), Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD).
Gove Robert J. (Plano TX) Guttag Karl M. (Missouri City TX) Balmer Keith (Bedfordshire GB2) Ing-Simmons Nicholas K. (Bedfordshire GB2), Multi-processor with crossbar link of processors and memories and method of operation.
Balmer Keith (6 Salcombe Close Bedford (Bedfordshire) GB2 MK40 38A) Ing-Simmons Nicholas K. (74 Lincroft ; Oakley Bedford (Bedfordshire) TX GB2 MK43 7SS) Guttag Karl M. (4015 S. Sandy Ct. Missouri Ci, Switch matrix having integrated crosspoint logic and method of operation.
Gove Robert J. ; Balmer Keith,GBX ; Ing-Simmons Nicholas Kerin,GBX ; Guttag Karl Marion, System and method of memory access in apparatus having plural processors and plural memories.
Carnevale Michael J. (Rochester MN) Kalla Ronald N. (Zumbro Falls MN) McClannahan Gary P. (Rochester MN) Trombley Michael R. (Rochester MN), Variable stage entry/exit instruction pipeline.
Doerr, Michael B.; Dobbs, Carl S.; Solka, Michael B.; Trocino, Michael R.; Gibson, David A., Multiprocessor fabric having configurable communication that is selectively disabled for secure processing.
Standley, Douglas A.; Dodge, Matthew R.; Bye, Randall E., System and method for a development environment for building services for a platform instance.
Standley, Douglas A.; Dodge, Matthew R.; Bye, Randall E., System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.