US20040153818A1 - Defining breakpoints and viewpoints in the software development environment for programmable stream computers - Google Patents

Defining breakpoints and viewpoints in the software development environment for programmable stream computers Download PDF

Info

Publication number
US20040153818A1
US20040153818A1 US10/630,891 US63089103A US2004153818A1 US 20040153818 A1 US20040153818 A1 US 20040153818A1 US 63089103 A US63089103 A US 63089103A US 2004153818 A1 US2004153818 A1 US 2004153818A1
Authority
US
United States
Prior art keywords
stream
functional units
computer
debug
breakpoint
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.)
Abandoned
Application number
US10/630,891
Inventor
Thomas Woodall
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.)
Raytheon Co
Original Assignee
Raytheon Co
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 Raytheon Co filed Critical Raytheon Co
Priority to US10/630,891 priority Critical patent/US20040153818A1/en
Assigned to RAYTHEON COMPANY reassignment RAYTHEON COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WOODALL, THOMAS R.
Priority to US10/644,449 priority patent/US7035996B2/en
Publication of US20040153818A1 publication Critical patent/US20040153818A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, 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, 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

  • This invention is in the field of software development using breakpoints and viewpoints for use in stream computers.
  • a stream computer comprising a first plurality of interconnected functional units.
  • the functional units are responsive to a data stream containing data and tokens.
  • the data is to be operated on by one or more of said first plurality of interconnected functional units.
  • a second plurality of said interconnected functional units are allocated for comparing said data stream with a debug stream to generate debug signals.
  • Reporting logic is responsive to the debug signals for reporting the occurrence of matches between said data stream and said debug stream in a format compatible for human perception.
  • the second plurality of interconnected functional units generate viewpoints and breakpoints in response to similarities between the data streams present within said stream computer and the debug stream(s).
  • the breakpoint can either interrupt the data stream or pass it through. Viewpoints do not change the streams they examine, but only extract information therefrom matching said debug stream.
  • the reporting logic is compatible with a graphical user interface, where the graphical user interface identifies the functional units, inputs and outputs (streams) to or from the functional units, as well as streams between the functional units.
  • FIG. 1 is an exemplary configuration of prior art Von Newman, single control computer architecture.
  • FIG. 2 is an exemplary graphic representation of a problem to be solved using stream computers
  • FIG. 3 is an exemplary user defined function of the problem in FIG. 2 via a graphical interface
  • FIG. 4 is the user defined function of FIG. 3, further refined and ready to run on a target computer or compatible simulator;
  • FIG. 5 shows a typical breakpoints and viewpoints depiction for the Graphical Programming Environment of this invention for the problem of FIG. 4;
  • FIG. 6 shows details of breakpoint and viewpoints applied to the exemplary stream computer described herein;
  • FIG. 7 shows an example of digital logic implementing a breakpoint applicable to this invention
  • FIG. 8 shows an example of digital logic implementing a viewpoint applicable to this invention
  • FIG. 9 shows an example of allocating part of a stream computer to implement the digital logic required to generate breakpoints and viewpoints.
  • the present invention describes an apparatus and method of inducing breakpoints and initiating viewpoints during the programming of a stream computer.
  • the stream computer comprises a first plurality of interconnected functional units.
  • the functional units are responsive to a data stream containing data and tokens.
  • the data is to be operated on by one or more of said first plurality of interconnected functional units.
  • a second plurality of said interconnected functional units are allocated for comparing said data stream, as well as other streams internal to the computer, with a debug stream to generate debug signals.
  • Reporting logic is responsive to the debug signals for reporting the occurrence of matches between said data stream and said debug stream in a format compatible for human perception.
  • the second plurality of interconnected functional units generate viewpoints and breakpoints in response to similarities between the data streams present within said stream computer and the debug stream(s).
  • the breakpoint can either interrupts the data stream or pass it through. Viewpoints do not change the streams they examine.
  • the reporting logic is compatible with a graphical user interface, where the graphical user interface has symbols identifying in human compatible format the functional units, and inputs and outputs (streams) to or from the functional units.
  • Stream computers are collections of functional units (nodes) operationally interconnected via software streams in addition to hardware links. More specifically, stream computers comprise a plurality of similar functional units where the specification of the computer (and the programming thereof) is defined by the operations performed by the functional units and the streams (also known as data flows) that connect, or traverse the functional units. Thus, the specification of a computer program for stream computers is defined by the operations performed by the functional units and the streams (also known as data flows) that connect the functional units.
  • the functional units perform prescribed operations on the input(s) and create output(s) when all inputs are valid and the output flow can accept the output.
  • the software streams flowing between functional units contain data, for example, integer data.
  • Some stream computers also have control/token information as part of the data, generally at most a few bits, or a small percentage of the data bits. This control/token information also flows along with the data between functional units.
  • the token information is not operated on (e.g. added, multiplied) but rather is used to determine what operation the functional units perform.
  • FIG. 1 is an exemplary Von Newman computer structure of the prior art.
  • a control unit 107 monitors the transfer of digital information between memory 101 , Arithmetic and Logic Unit (ALU) 103 , and Input/Output unit 105 .
  • control unit 107 will instruct ALU 103 to fetch contents of a particular location within memory 101 , perform a mathematical or logical operation on the retrieved data, then write the results at another location within memory 101 .
  • Control unit 107 can interpret an instruction retrieved from memory 101 and select alternative courses of action based on the results of previous operations.
  • Memory 101 contains both data and instructions to be followed by control unit 107 and/or ALU 103 . The instructions can be followed in any order.
  • control unit 107 will instruct Input/Output (I/O) unit 105 to make ready data for ALU 103 to read.
  • I/O Input/Output
  • monitoring control unit 107 contents of memory 101 and I/O 105 will suffice to ascertain the state of the computer on a step by step basis and monitor progress of program execution.
  • Compilers of the prior art provide break points within a sequence of executed steps by control unit 107 . The break points typically halt the execution of program steps within control unit 107 and list contents of certain locations within memory 101 for inspection and reconciliation with expected values.
  • Von Newman architectures there is no flow of data to a plurality of functional units, each capable of computing the required results. Von Newman architectures can be viewed as having centralized control, while stream computers represent a distributed structure with much duplication of individual functional units where each functional unit reacts independently of the others and computes results under control of flowing data and tokens.
  • this invention inserts breakpoint and viewpoint logic into the definition (or program) of a programmable stream computer.
  • This functionality is best implemented in a graphical programming environment and the examples illustrating the best mode of the invention use such an environment.
  • P, Q, R and X are inputs and Y is the output.
  • X and Y are the only dynamic data streams and P, Q, and R are constants (i.e. registers preloaded with constant values) whereas a new value of X is potentially available on the input stream for every clock pulse.
  • the fundamental (primitive) functional unit in the sample computer is a functional unit 202 capable of performing a multiplication in multiplier 206 and an addition in adder 208 .
  • the results from multiplier 206 are combined with an addition in adder 208 . While this example shows a multiplier 206 and adder 208 , any other functions can be substituted, depending on computational needs.
  • Functional unit 202 is shown by the dashed line and in later figures will be identified as a MUL.
  • Functional unit 204 is structurally similar to functional unit 202 , having a multiplier 212 and adder 214 to generate an output Y.
  • Delay 210 applied to X matches the delay experienced in functional unit 202 . Without delay 210 , X would be presented to functional unit 204 before the result from functional unit 202 , PX+Q, was ready. This facilitates keeping the pipeline full.
  • the output Y is the result of PX 2 +QX+R, as computed by functional units 202 and 204 .
  • the user graphically represents the function being performed.
  • MUL 301 is the hardware functional unit 202
  • MUL 303 is the hardware functional unit 303 .
  • the delay 305 for X is also provided to facilitate the operation of the pipeline.
  • the user selects each data flow and selects the data types.
  • the user also selects the function and specifies the function to be performed by MUL 301 and MUL 303 .
  • the function of MUL 301 and MUL 303 is a multiply with an add.
  • the specification will be executed on a simulator or directly in hardware.
  • the graphical representation shown in FIG. 4 is an example of the structure of FIG. 3.
  • the graphical representation is compiled to generate an executable program.
  • the details of compilation of a specification, and running the compilation on a target are well known, and therefore not detailed further.
  • the development environment of this invention inserts the breakpoint and viewpoint specifications into the executable program generated from FIG. 4.
  • the breakpoint and viewpoint specifications are loaded as part of the program image in FIG. 5.
  • the capabilities are fully programmable.
  • the graphical programming environment incorporates the details. The programmer sees the view as shown in FIG. 5. The other mechanistic, underlying details are conveniently shielded from the user to facilitate the development process.
  • the graphical interface saves the definition but allows the user to determine whether or not specific breakpoints and viewpoints are incorporated into the specific program image being created.
  • FIG. 4 shows the combination of functions MUL reading the X values from a file, source of X values 402 , and deposits the Y outputs into another file, or storage means, store results Y 404 .
  • the specification defines the values of P, Q, and R to be 2, 3, and 4 respectively, so that the sample equation now becomes
  • the capabilities of the stream computer functional units will define the set of available breakpoint conditions.
  • the breakpoint function can use one or more functional units.
  • the number of breakpoint functions is only limited by the number of programmable functional units and connectivity defined by the programmable stream computer.
  • the programmer introduces a breakpoint triggered by the data stream between MUL 301 and MUL 303 having a value of 1.
  • the programmer also wants to view the X input stream to the second MUL 303 after delay 305 .
  • the corresponding value of X is ⁇ 1.
  • FIG. 5 shows how the user specifies this breakpoint graphically using the graphic interface.
  • Breakpoint 501 specifies the data condition and token condition. Data condition for breakpoint 501 is D: 1 while token condition is T: ANY.
  • the AND function indicates that both conditions must be met for a breakpoint to be triggered.
  • Viewpoint 503 indicates the condition necessary to generate a viewpoint. For example, the data value 0 is shown, followed by a semicolon, and then the token value 0.
  • Viewpoint 505 monitors the stream of X, after delay 305 , before entering MUL 303 .
  • the viewpoint is triggered when the data value is 0 and token value is also 0.
  • FIG. 6 shows an exemplary implementation for the breakpoints shown in FIG. 5 using a similar level of abstraction.
  • viewpoints 604 , and 606 and breakpoint 602 are interposed to examine the data streams from MUL 301 and into MUL 303 .
  • FIG. 7 shows an example of a breakpoint implementation applicable to this invention.
  • the breakpoint uses digital logic and uses an independent stream (the debug stream) to perform comparisons and identify the occurrence of a condition for triggering the breakpoint.
  • ALU 701 compares a debug stream and breakpoint number and stores results in a memory 703 .
  • the quantities stored in memory 703 are compared by ALU 705 with the data stream to identify a breakpoint.
  • ALU 701 The structure the digital logic made of ALU 701 , memory 703 and ALU 705 used to identify the breakpoint is the same as that used within the functional units.
  • An ALU is the same functionally, and can be the same as a MUL functional unit without the multiply capability, as shown in FIGS. 6 and 7.
  • the debug stream carries information to the digital logic and enables output of the results.
  • the input to initiate a breakpoint is a debug stream that will indicate whether the breakpoint is enabled.
  • a combination of data and token can be used.
  • the data may be a unique identifier for each breakpoint so that more than one can be used.
  • the output stream will indicate if the breakpoint has been triggered or else it will pass along the input.
  • the viewpoints then take this information (also passing it along for downstream viewpoints) and act accordingly. If the breakpoint has been triggered, then on the first available clock it may forward breakpoint trigger information.
  • the digital logic of FIG. 7 may output the identifier of the viewpoint and then finally the value of the viewpoint to a reporting logic.
  • the token values that are input to and output by the viewpoints are:
  • breakpoint data is the address of the breakpoint and enable/disable/trigger data
  • viewpoint identifier data is the viewpoint identifier
  • viewpoint value (the data is the value of the viewpoint).
  • the Breakpoint in FIG. 7 is implemented by having ALU 701 and 705 compare the debug stream input. If the token indicates breakpoint, ALU 701 will detect if the breakpoint number (a constant) is a match, if so it will output a breakpoint hit. This detection by ALU 701 controls digital logic that will generate output that is the same as this input until a breakpoint is hit. If a breakpoint has been hit then the digital logic will neither consume the input (causing upstream functions to stop), nor produce output causing downstream functions to stop. This information also continues down the debug stream to viewpoints so they will output their data.
  • the viewpoint in FIG. 8 is implemented by splitting the data stream and always forwarding it unchanged.
  • the digital logic on the debug stream, viewpoint ALU 802 looks to see if any breakpoint has been detected. If so, the digital logic will insert its viewpoint identifier and data stream values into the debug stream at the first available opportunity and will continue to do so until no data stream information is available or the breakpoint is released.
  • Memory 804 provides the incoming data stream to viewpoint ALU 802 for viewpoint detection in accordance with the debug stream, as well as passing the data stream unchanged to the next stage or functional unit.
  • This invention does not preclude special debug capabilities, but rather frees the software development engineer from relying on them. This differs from the prior art because most processors require and implement special functions to support debugging. Using this paradigm no special capabilities are required, although the system does require some functional units to be available for debug. However, having spare units would be normal during unit testing where small fragments of the overall program are being tested.
  • the results from digital logic 919 are transferred to reporting logic 921 for conversion to a format compatible with the display of breakpoints, viewpoints and associated data stream content 923 .
  • functional units 905 and 911 part of the stream computer are programmed to respond to the debug stream and the data/token stream for debugging purposes. It is envisioned that the functional units making up the stream computer as well as reporting logic 921 are integrated on a single semiconductor or hybrid substrate to minimize size and cost.

Abstract

A stream computer has a first plurality of interconnected functional units. The functional units are responsive to a data stream containing data and tokens. The data is to be operated on by one or more of the first plurality of interconnected functional units.
A second plurality of said interconnected functional units, also part of said stream computer units, are allocated for comparing the data stream with a debug stream to generate debug signals. Reporting logic is responsive to the debug signals for reporting the occurrence of matches between the data stream and the debug stream in a format compatible for human perception.
The second plurality of interconnected functional units generate viewpoints and breakpoints in response to similarities between the data streams present within the stream computer and the debug stream. The breakpoint can either interrupt the data stream or let it pass through. Viewpoints do not change the streams they examine.
The reporting logic is compatible with a graphical user interface, where the graphical user interface identifies the functional units, input and output streams of each of the functional units.

Description

  • This application is a continuation in part of U.S. Patent and Trademark Office application Ser. No. 10,052,082 titled “Reconfigurable Processor Architectures”.[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of Invention [0002]
  • This invention is in the field of software development using breakpoints and viewpoints for use in stream computers. [0003]
  • 2. Description of the Related Art [0004]
  • Software, the instructions for a computer to follow, are necessary to perform a particular function and render the computer useful. Developing a properly executing software package, possibly comprising thousands of computer instructions, or steps, is an arduous task. Ideally, in a quality software package, all computer instructions are correct and in the proper sequence, errors have been identified and corrected, and desired functions completely implemented. [0005]
  • In arriving at a quality software package, generally an iteration method is used wherein executable instructions, or code, are written into registers or memory locations and then presented for execution on the target computer. After examining results of code execution, its effects on the registers and memory locations, the code is modified to correct any errors that may have been found. Thus, during the software development process, code compatible tools are needed that allow the examination of various machine states at certain points in the execution of a program to insure that the software is performing the desired function and specified results are reached. Like the oscilloscope is a tool allowing the builder of electronic circuits to “see” circuits in operation, a similar tool is developed for the software engineer. This tool allows the examination of registers and memory locations following the particular execution of one or more instructions thus tracing the changes brought on by executing the computer instructions. [0006]
  • In prior art, Von Newman type, central control computers, progress of execution of computer instructions is typically performed by examining register contents at certain time intervals corresponding to events chosen by the programmer. These events are defined with the aid of a a compiler or other software tool having the capability of stopping execution and presenting the specific contents of registers and memory locations for inspection and evaluation. [0007]
  • Prior art software tools allowing the step by step examination of registers and memory location in Von Newman architecture computers are well known. However, with the advent of distributed, stream computers described in the parent application, the software tools relevant in single central processing unit (CPU) Von Newman architectures are no longer applicable, in fact, impossible to use. The prior art tools depend on a central entity, the central processing unit to transfer and process information between various parts of a computer. Thus, this one central entity, is responsible for program progress and is the area to be monitored. In this invention, in contrast, there are pluralities of independent processing entities, having no relationship to the Von Newman structure, function or concept. [0008]
  • SUMMARY OF THE INVENTION
  • Above limitations are solved by the present invention by a stream computer, said stream computer comprising a first plurality of interconnected functional units. The functional units are responsive to a data stream containing data and tokens. The data is to be operated on by one or more of said first plurality of interconnected functional units. [0009]
  • A second plurality of said interconnected functional units, also part of said stream computer, are allocated for comparing said data stream with a debug stream to generate debug signals. Reporting logic is responsive to the debug signals for reporting the occurrence of matches between said data stream and said debug stream in a format compatible for human perception. [0010]
  • The second plurality of interconnected functional units generate viewpoints and breakpoints in response to similarities between the data streams present within said stream computer and the debug stream(s). The breakpoint can either interrupt the data stream or pass it through. Viewpoints do not change the streams they examine, but only extract information therefrom matching said debug stream. [0011]
  • The reporting logic is compatible with a graphical user interface, where the graphical user interface identifies the functional units, inputs and outputs (streams) to or from the functional units, as well as streams between the functional units.[0012]
  • BRIEF DESCRIPTION OF THE DRAWING
  • In the Drawing: [0013]
  • FIG. 1 is an exemplary configuration of prior art Von Newman, single control computer architecture. [0014]
  • FIG. 2 is an exemplary graphic representation of a problem to be solved using stream computers; [0015]
  • FIG. 3 is an exemplary user defined function of the problem in FIG. 2 via a graphical interface; [0016]
  • FIG. 4 is the user defined function of FIG. 3, further refined and ready to run on a target computer or compatible simulator; [0017]
  • FIG. 5 shows a typical breakpoints and viewpoints depiction for the Graphical Programming Environment of this invention for the problem of FIG. 4; [0018]
  • FIG. 6 shows details of breakpoint and viewpoints applied to the exemplary stream computer described herein; [0019]
  • FIG. 7 shows an example of digital logic implementing a breakpoint applicable to this invention; [0020]
  • FIG. 8 shows an example of digital logic implementing a viewpoint applicable to this invention; [0021]
  • FIG. 9 shows an example of allocating part of a stream computer to implement the digital logic required to generate breakpoints and viewpoints.[0022]
  • DETAILED DESCRIPTION
  • The present invention describes an apparatus and method of inducing breakpoints and initiating viewpoints during the programming of a stream computer. [0023]
  • The stream computer comprises a first plurality of interconnected functional units. The functional units are responsive to a data stream containing data and tokens. The data is to be operated on by one or more of said first plurality of interconnected functional units. [0024]
  • A second plurality of said interconnected functional units, also part of said stream computer, are allocated for comparing said data stream, as well as other streams internal to the computer, with a debug stream to generate debug signals. Reporting logic is responsive to the debug signals for reporting the occurrence of matches between said data stream and said debug stream in a format compatible for human perception. [0025]
  • The second plurality of interconnected functional units generate viewpoints and breakpoints in response to similarities between the data streams present within said stream computer and the debug stream(s). The breakpoint can either interrupts the data stream or pass it through. Viewpoints do not change the streams they examine. [0026]
  • The reporting logic is compatible with a graphical user interface, where the graphical user interface has symbols identifying in human compatible format the functional units, and inputs and outputs (streams) to or from the functional units. [0027]
  • Stream computers are collections of functional units (nodes) operationally interconnected via software streams in addition to hardware links. More specifically, stream computers comprise a plurality of similar functional units where the specification of the computer (and the programming thereof) is defined by the operations performed by the functional units and the streams (also known as data flows) that connect, or traverse the functional units. Thus, the specification of a computer program for stream computers is defined by the operations performed by the functional units and the streams (also known as data flows) that connect the functional units. [0028]
  • The functional units perform prescribed operations on the input(s) and create output(s) when all inputs are valid and the output flow can accept the output. The software streams flowing between functional units contain data, for example, integer data. Some stream computers also have control/token information as part of the data, generally at most a few bits, or a small percentage of the data bits. This control/token information also flows along with the data between functional units. The token information is not operated on (e.g. added, multiplied) but rather is used to determine what operation the functional units perform. [0029]
  • In contrast to stream computers, FIG. 1 is an exemplary Von Newman computer structure of the prior art. A [0030] control unit 107 monitors the transfer of digital information between memory 101, Arithmetic and Logic Unit (ALU) 103, and Input/Output unit 105. Typically, control unit 107 will instruct ALU 103 to fetch contents of a particular location within memory 101, perform a mathematical or logical operation on the retrieved data, then write the results at another location within memory 101. Control unit 107 can interpret an instruction retrieved from memory 101 and select alternative courses of action based on the results of previous operations. Memory 101 contains both data and instructions to be followed by control unit 107 and/or ALU 103. The instructions can be followed in any order. Similarly, control unit 107 will instruct Input/Output (I/O) unit 105 to make ready data for ALU 103 to read. Thus, for software development purposes, monitoring control unit 107, contents of memory 101 and I/O 105 will suffice to ascertain the state of the computer on a step by step basis and monitor progress of program execution. Compilers of the prior art provide break points within a sequence of executed steps by control unit 107. The break points typically halt the execution of program steps within control unit 107 and list contents of certain locations within memory 101 for inspection and reconciliation with expected values. In Von Newman architectures, there is no flow of data to a plurality of functional units, each capable of computing the required results. Von Newman architectures can be viewed as having centralized control, while stream computers represent a distributed structure with much duplication of individual functional units where each functional unit reacts independently of the others and computes results under control of flowing data and tokens.
  • To accommodate the distributed nature of stream computers, and facilitate software development for them, this invention inserts breakpoint and viewpoint logic into the definition (or program) of a programmable stream computer. This functionality is best implemented in a graphical programming environment and the examples illustrating the best mode of the invention use such an environment. [0031]
  • The examples in this invention are illustrated by the use of a simple polynomial equation to illustrate the characteristics of this invention. Typically a large number, perhaps hundreds, of functional units exemplified below are interconnected to compute Fast Fourier Transforms, or matched filter functions. [0032]
  • A simple, general illustrative equation is used: [0033]
  • Y=PX 2 +QX+R
  • where P, Q, R and X are inputs and Y is the output. For simplicity, X and Y are the only dynamic data streams and P, Q, and R are constants (i.e. registers preloaded with constant values) whereas a new value of X is potentially available on the input stream for every clock pulse. [0034]
  • As shown in FIG. 2, in this example, the fundamental (primitive) functional unit in the sample computer is a [0035] functional unit 202 capable of performing a multiplication in multiplier 206 and an addition in adder 208. The results from multiplier 206 are combined with an addition in adder 208. While this example shows a multiplier 206 and adder 208, any other functions can be substituted, depending on computational needs.
  • [0036] Functional unit 202 is shown by the dashed line and in later figures will be identified as a MUL. Functional unit 204 is structurally similar to functional unit 202, having a multiplier 212 and adder 214 to generate an output Y.
  • [0037] Delay 210 applied to X matches the delay experienced in functional unit 202. Without delay 210, X would be presented to functional unit 204 before the result from functional unit 202, PX+Q, was ready. This facilitates keeping the pipeline full.
  • From the diagram in FIG. 2, the output Y is the result of PX[0038] 2+QX+R, as computed by functional units 202 and 204.
  • Breakpoints and Viewpoints [0039]
  • In a graphical programming environment to be used with this invention, the user graphically represents the function being performed. In this example, as shown in FIG. 3, a user defined function for the same equation as in FIG. 2 Y=PX[0040] 2+QX+R is being defined. In the graphical interface, MUL 301 is the hardware functional unit 202, while MUL 303 is the hardware functional unit 303. The delay 305 for X is also provided to facilitate the operation of the pipeline.
  • In the graphical interface, for this example, the user selects each data flow and selects the data types. The user also selects the function and specifies the function to be performed by [0041] MUL 301 and MUL 303. In this case, the function of MUL 301 and MUL 303 is a multiply with an add.
  • Typically, having completed the specification of the functional units, the specification will be executed on a simulator or directly in hardware. The graphical representation shown in FIG. 4, is an example of the structure of FIG. 3. The graphical representation is compiled to generate an executable program. The executable to compute Y=2X[0042] 2+3X+4 is then run on a target computer or simulator. The details of compilation of a specification, and running the compilation on a target (whether real hardware or a simulation) are well known, and therefore not detailed further.
  • The development environment of this invention inserts the breakpoint and viewpoint specifications into the executable program generated from FIG. 4. The breakpoint and viewpoint specifications are loaded as part of the program image in FIG. 5. The capabilities are fully programmable. The graphical programming environment incorporates the details. The programmer sees the view as shown in FIG. 5. The other mechanistic, underlying details are conveniently shielded from the user to facilitate the development process. [0043]
  • Once a breakpoint and/or viewpoint is defined, the graphical interface saves the definition but allows the user to determine whether or not specific breakpoints and viewpoints are incorporated into the specific program image being created. [0044]
  • The graphical programming environment is tied to the target as shown in FIG. 4. FIG. 4 shows the combination of functions MUL reading the X values from a file, source of X values [0045] 402, and deposits the Y outputs into another file, or storage means, store results Y 404. The specification defines the values of P, Q, and R to be 2, 3, and 4 respectively, so that the sample equation now becomes
  • Y=2X 2+3X+4
  • When the user runs this program the input file in [0046] 402 is read and the output file in 404 is written. If the programmer has incorrectly specified the function to be performed by one or both functional units (identified as MUL in the graphic interface) 301 and 303 units then the output Y may not be as expected. That is, there may be an error in the program. With an error present, the programmer inserts a breakpoint in an attempt to locate the error. This invention allows a breakpoint to be inserted on any data stream. Therefore, the user can select the input stream X, the stream flowing between MUL units 301 and 303, or the output stream Y. Since each stream has two components, namely data and token, the user is able to select a combination of the two. For example, a condition for generating a breakpoint is defined by:
  • a) when the data is greater than zero and [0047]
  • b) the token equals zero. [0048]
  • The capabilities of the stream computer functional units will define the set of available breakpoint conditions. However, the breakpoint function can use one or more functional units. The number of breakpoint functions is only limited by the number of programmable functional units and connectivity defined by the programmable stream computer. [0049]
  • In the example of FIG. 5, the programmer introduces a breakpoint triggered by the data stream between [0050] MUL 301 and MUL 303 having a value of 1. The programmer also wants to view the X input stream to the second MUL 303 after delay 305. For the example shown, the corresponding value of X is −1. FIG. 5 shows how the user specifies this breakpoint graphically using the graphic interface. Breakpoint 501 specifies the data condition and token condition. Data condition for breakpoint 501 is D: 1 while token condition is T: ANY. The AND function indicates that both conditions must be met for a breakpoint to be triggered.
  • [0051] Viewpoint 503 indicates the condition necessary to generate a viewpoint. For example, the data value 0 is shown, followed by a semicolon, and then the token value 0.
  • [0052] Viewpoint 505 monitors the stream of X, after delay 305, before entering MUL 303. The viewpoint is triggered when the data value is 0 and token value is also 0.
  • The display of the graphic interface shields the programmer from the underlying details and facilitates the programming process. FIG. 6 shows an exemplary implementation for the breakpoints shown in FIG. 5 using a similar level of abstraction. In FIG. 6, [0053] viewpoints 604, and 606 and breakpoint 602 are interposed to examine the data streams from MUL 301 and into MUL 303.
  • FIG. 7 shows an example of a breakpoint implementation applicable to this invention. The breakpoint uses digital logic and uses an independent stream (the debug stream) to perform comparisons and identify the occurrence of a condition for triggering the breakpoint. In this digital logic, [0054] ALU 701 compares a debug stream and breakpoint number and stores results in a memory 703. The quantities stored in memory 703 are compared by ALU 705 with the data stream to identify a breakpoint.
  • The structure the digital logic made of [0055] ALU 701, memory 703 and ALU 705 used to identify the breakpoint is the same as that used within the functional units. An ALU is the same functionally, and can be the same as a MUL functional unit without the multiply capability, as shown in FIGS. 6 and 7. The debug stream carries information to the digital logic and enables output of the results.
  • Because the functional units have the same structure required for breakpoint generation, a programmer has the option to allocate part of the stream computer resources for breakpoint generation, on a case by case basis. If breakpoints are specified in the program, they require valuable resources within the stream computer, namely streams and functional units. [0056]
  • In the example shown in FIG. 7, the input to initiate a breakpoint is a debug stream that will indicate whether the breakpoint is enabled. A combination of data and token can be used. For example, the data may be a unique identifier for each breakpoint so that more than one can be used. The output stream will indicate if the breakpoint has been triggered or else it will pass along the input. The viewpoints then take this information (also passing it along for downstream viewpoints) and act accordingly. If the breakpoint has been triggered, then on the first available clock it may forward breakpoint trigger information. [0057]
  • On the next clock cycle, the digital logic of FIG. 7 may output the identifier of the viewpoint and then finally the value of the viewpoint to a reporting logic. The token values that are input to and output by the viewpoints are: [0058]
  • null (data is invalid); [0059]
  • breakpoint (data is the address of the breakpoint and enable/disable/trigger data); [0060]
  • viewpoint identifier (data is the viewpoint identifier); [0061]
  • viewpoint value (the data is the value of the viewpoint). [0062]
  • The Breakpoint in FIG. 7 is implemented by having [0063] ALU 701 and 705 compare the debug stream input. If the token indicates breakpoint, ALU 701 will detect if the breakpoint number (a constant) is a match, if so it will output a breakpoint hit. This detection by ALU 701 controls digital logic that will generate output that is the same as this input until a breakpoint is hit. If a breakpoint has been hit then the digital logic will neither consume the input (causing upstream functions to stop), nor produce output causing downstream functions to stop. This information also continues down the debug stream to viewpoints so they will output their data.
  • The viewpoint in FIG. 8 is implemented by splitting the data stream and always forwarding it unchanged. The digital logic on the debug stream, [0064] viewpoint ALU 802, looks to see if any breakpoint has been detected. If so, the digital logic will insert its viewpoint identifier and data stream values into the debug stream at the first available opportunity and will continue to do so until no data stream information is available or the breakpoint is released. Memory 804 provides the incoming data stream to viewpoint ALU 802 for viewpoint detection in accordance with the debug stream, as well as passing the data stream unchanged to the next stage or functional unit.
  • These implementations are examples indicative of the concept of the invention. The exact implementation will be a function of the capabilities of the functional units and available stream connectivity in the system. Breakpoints and viewpoints are implemented using the same programmable functional capabilities as the typical, normal function units available within a stream computer. These functions are inserted into the program of the stream computer the same as any other functionality. Because of this and the fact that no special debug capabilities are required and that generally differ in hardware versus a simulation, there will be a consistent implementation in the simulation and the target thereby easing program development. [0065]
  • This invention does not preclude special debug capabilities, but rather frees the software development engineer from relying on them. This differs from the prior art because most processors require and implement special functions to support debugging. Using this paradigm no special capabilities are required, although the system does require some functional units to be available for debug. However, having spare units would be normal during unit testing where small fragments of the overall program are being tested. [0066]
  • The concept is further summarized using the concepts from FIG. 2 to FIG. 8 in a simple example shown in FIG. 9. Here, [0067] functional units 901, 903, 905, 907, 909, 911, 913, 915 and 917 form a stream computer and have access to the data and token stream. Of these, functional units 905 and 911 are allocated to process breakpoint/viewpoint generation. Functional units 905 and 911 form digital logic 919 required to interpret a debug stream. Functional units 905 and 911 are cooperatively associated with, for example, functional units 903 and 909 respectively, in that the data stream through 903 and 909 are monitored by 905 and 911 respectively.
  • The results from [0068] digital logic 919 are transferred to reporting logic 921 for conversion to a format compatible with the display of breakpoints, viewpoints and associated data stream content 923. In effect, functional units 905 and 911, part of the stream computer are programmed to respond to the debug stream and the data/token stream for debugging purposes. It is envisioned that the functional units making up the stream computer as well as reporting logic 921 are integrated on a single semiconductor or hybrid substrate to minimize size and cost.
  • The structure of the stream computer applicable herein is discussed in the parent application, and is incorporated herein in its entirety. [0069]
  • Although presented in exemplary fashion employing specific embodiments, the disclosed structures are not intended to be so limited. For example, although a multiply and add function is shown as a building block example, any other combination of mathematical or Boolean logic operation could benefit from the concepts described by the invention herein. [0070]
  • Those skilled in the art will also appreciate that numerous changes and modifications could be made to the embodiment described herein without departing in any way from the invention. These changes and modifications and all obvious variations of the disclosed embodiment are intended to be embraced by the claims to the limits set by law. [0071]

Claims (28)

I claim:
1. A stream computer, said stream computer comprising:
a plurality of interconnected functional units, each of said functional units responsive to a data stream containing data to be operated on by one or more of said functional units;
digital logic cooperatively associated with one of said functional units for comparing said data stream presented to said one of said functional units with a debug stream;
reporting logic associated with said digital logic for reporting the occurrence of matches between said data stream and said debug stream.
2. A stream computer as described in claim 1 wherein said digital logic extracts similarities between said data stream and said debug stream to generate a viewpoint.
3. A stream computer as described in claim 2 wherein said digital logic generates said viewpoint without interrupting said data stream.
4. A stream computer as described in claim 1 wherein said digital logic extracts similarities between said data stream and said debug stream to induce a breakpoint.
5. A stream computer as described in claim 4 wherein said digital logic extracts similarities between said data stream and said debug stream to induce said breakpoint in response to a breakpoint number arriving at said digital logic.
6. A stream computer as described in claim 4 wherein said digital logic generates said breakpoint and interrupts said data stream passing through said digital logic.
7. A stream computer as described in claim 4 wherein said digital logic generates said breakpoint and allows said data stream to pass through.
8. A stream computer as described in claim 1 wherein said at least one of said plurality of interconnected functional units, said digital logic, and said reporting logic are integrated on a single substrate.
9. A stream computer as described in claim 1 wherein said reporting logic are compatible with a graphical user interface, said graphical user interface identifying said functional units, and inputs and outputs of said functional units.
10. A stream computer as described in claim 1 wherein one or more of said functional units are reconfigured to become part of said digital logic.
11. A stream computer as described in claim 1 wherein said digital logic further comprises arithmetic logic units (ALU) and memory functions, said functions obtained by allocating some functional units to perform said ALU and memory functions.
12. A stream computer, said stream computer comprising:
a first plurality of interconnected functional units, said functional units responsive to a data stream containing data and tokens to be operated on by one or more of said first plurality of interconnected functional units;
a second plurality of said interconnected functional units allocated for comparing said data stream, and internal streams within said stream computer, with a debug stream to generate debug signals;
reporting logic responsive to said debug signals for reporting the occurrence of matches between said data stream and said debug stream compatible with human perception.
13. A stream computer as described in claim 12 wherein said second plurality of interconnected functional units extracts similarities between said data stream and said debug stream to generate a viewpoint.
14. A stream computer as described in claim 13 wherein said second plurality of interconnected functional units generates said viewpoint without interrupting said data stream.
15. A stream computer as described in claim 12 wherein said second plurality of interconnected functional units extracts similarities between said data stream and said debug stream to induce a breakpoint.
16. A stream computer as described in claim 15 wherein said second plurality of interconnected functional units extracts similarities between said data stream and said debug stream to induce said breakpoint in response to a breakpoint number.
17. A stream computer as described in claim 15 wherein said second plurality of interconnected functional units generates said breakpoint and interrupts said data stream.
18. A stream computer as described in claim 15 wherein said second plurality of interconnected functional units generates said breakpoint and allows said data stream to pass through.
19. A stream computer as described in claim 12 wherein at least one of said plurality of interconnected functional units, and said reporting logic are integrated on a single substrate.
20. A stream computer as described in claim 12 wherein said reporting logic is compatible with a graphical user interface, said graphical user interface identifying said functional units, and inputs and outputs of said functional units.
21. A method for operating a stream computer, said method comprising the steps of:
programming a first plurality of interconnected functional units forming said stream computer to compute in accordance with data and token contained in a data stream;
programming a second plurality of said interconnected functional units forming said stream computer to compare said data stream, and internal streams within said stream computer, with a debug stream;
reporting the occurrence of matches between said data stream and said debug stream using symbols compatible with human perception.
22. A method as described in claim 21 further including the step of extracting similarities between said data stream and said debug stream to generate a viewpoint, using said second plurality of interconnected functional units.
23. A method as described in claim 22 wherein said step of extracting similarities by said second plurality of interconnected functional units generates said viewpoint without interrupting said data stream.
24. A method as described in claim 21 wherein said step of extracting similarities by said second plurality of interconnected functional units between said data stream and said debug stream induces a breakpoint.
25. A method as described in claim 24 wherein said step of extracting similarities by said second plurality of interconnected functional units also induces said breakpoint in response to a breakpoint number.
26. A method as described in claim 24 wherein inducing said breakpoint interrupts said data stream.
27. A method as described in claim 24 wherein inducing said breakpoint allows said data stream to pass through.
28. A method as described in claim 21 computer wherein said reporting step generates information compatible with a graphical user interface, said graphical user interface identifying said functional units, and inputs and outputs of said functional units.
US10/630,891 2002-01-17 2003-07-30 Defining breakpoints and viewpoints in the software development environment for programmable stream computers Abandoned US20040153818A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/630,891 US20040153818A1 (en) 2002-01-17 2003-07-30 Defining breakpoints and viewpoints in the software development environment for programmable stream computers
US10/644,449 US7035996B2 (en) 2002-01-17 2003-08-19 Generating data type token value error in stream computer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/052,082 US6920545B2 (en) 2002-01-17 2002-01-17 Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster
US10/630,891 US20040153818A1 (en) 2002-01-17 2003-07-30 Defining breakpoints and viewpoints in the software development environment for programmable stream computers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/052,082 Continuation-In-Part US6920545B2 (en) 2002-01-17 2002-01-17 Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/644,449 Continuation-In-Part US7035996B2 (en) 2002-01-17 2003-08-19 Generating data type token value error in stream computer

Publications (1)

Publication Number Publication Date
US20040153818A1 true US20040153818A1 (en) 2004-08-05

Family

ID=21975343

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/052,082 Expired - Lifetime US6920545B2 (en) 2002-01-17 2002-01-17 Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster
US10/630,891 Abandoned US20040153818A1 (en) 2002-01-17 2003-07-30 Defining breakpoints and viewpoints in the software development environment for programmable stream computers

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/052,082 Expired - Lifetime US6920545B2 (en) 2002-01-17 2002-01-17 Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster

Country Status (2)

Country Link
US (2) US6920545B2 (en)
EP (1) EP1329815A3 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041867A1 (en) * 2004-08-19 2006-02-23 International Business Machines Corporation Method, apparatus and computer program product for implementing enhanced compiled breakpoint analysis
US20120137178A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Stream based debugging techniques
US20130305225A1 (en) * 2012-05-09 2013-11-14 International Business Machines Corporation Streams debugging within a windowing condition
US20170139807A1 (en) * 2015-11-12 2017-05-18 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US10255172B1 (en) * 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620678B1 (en) * 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7461234B2 (en) * 2002-07-01 2008-12-02 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
JP2004341732A (en) * 2003-05-14 2004-12-02 Canon Inc Processor, data processing method, program and storage medium
EP1654554A1 (en) * 2003-07-23 2006-05-10 Koninklijke Philips Electronics N.V. Efficient mapping of reconstruction algorithms for magnetic resonance imaging onto a reconfigurable reconstruction system
US7620736B2 (en) * 2003-08-08 2009-11-17 Cray Canada Corporation Network topology having nodes interconnected by extended diagonal links
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
JP4594666B2 (en) * 2004-07-12 2010-12-08 富士通株式会社 Reconfigurable computing device
US7581079B2 (en) * 2005-03-28 2009-08-25 Gerald George Pechanek Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7613902B1 (en) * 2005-09-22 2009-11-03 Lockheed Martin Corporation Device and method for enabling efficient and flexible reconfigurable computing
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7934075B2 (en) * 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
EP2008182B1 (en) * 2006-03-27 2010-05-12 Coherent Logix Incorporated Programming a multi-processor system
US20070233761A1 (en) * 2006-04-03 2007-10-04 Mouttet Blaise L Crossbar arithmetic processor
US9965251B2 (en) * 2006-04-03 2018-05-08 Blaise Laurent Mouttet Crossbar arithmetic and summation processor
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
US8015368B2 (en) * 2007-04-20 2011-09-06 Siport, Inc. Processor extensions for accelerating spectral band replication
KR101731929B1 (en) 2011-02-08 2017-05-02 삼성전자주식회사 Reconfigurable processor and method for controlling driving
CN102214158B (en) * 2011-06-08 2013-05-22 清华大学 Dynamic reconfigurable processor with full-interconnection routing structure
US8767193B2 (en) 2012-07-10 2014-07-01 Raytheon Company Doppler tracking in presence of vehicle velocity uncertainty
US9231865B2 (en) * 2012-08-10 2016-01-05 Wisconsin Alumni Research Foundation Lookup engine with reconfigurable low latency computational tiles
CN102902656B (en) * 2012-09-28 2015-05-20 无锡江南计算技术研究所 Modularization three-dimensional construction method for reconfigurable clusters and reconfigurable cluster construction structure
US10341232B2 (en) * 2012-11-13 2019-07-02 Netronome Systems, Inc. Packet prediction in a multi-protocol label switching network using openflow messaging
US20150052330A1 (en) * 2013-08-14 2015-02-19 Qualcomm Incorporated Vector arithmetic reduction
CN105447414B (en) * 2015-10-21 2018-06-19 清华大学无锡应用技术研究院 Restructural cipher processor
CN108628800A (en) * 2018-05-08 2018-10-09 济南浪潮高新科技投资发展有限公司 A kind of the intelligence computation cluster and its configuration method of dynamic reconfigurable
US10915324B2 (en) 2018-08-16 2021-02-09 Tachyum Ltd. System and method for creating and executing an instruction word for simultaneous execution of instruction operations
CN116204488A (en) * 2021-11-30 2023-06-02 中兴通讯股份有限公司 Radio frequency chip, algorithm reconstruction method and computer readable storage medium

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517657A (en) * 1994-03-30 1996-05-14 Intel Corporation Segment register file read and write pipeline
US5754839A (en) * 1995-08-28 1998-05-19 Motorola, Inc. Apparatus and method for implementing watchpoints and breakpoints in a data processing system
US5850510A (en) * 1994-12-28 1998-12-15 Fujitsu Limited Interpreter language processing device
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6349371B1 (en) * 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6634020B1 (en) * 2000-03-24 2003-10-14 International Business Machines Corporation Uninitialized memory watch
US6799265B1 (en) * 2000-07-11 2004-09-28 Intel Corporation Dependency checking for reconfigurable logic
US6836839B2 (en) * 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US7080360B2 (en) * 2001-12-14 2006-07-18 International Business Machines Corporation Breakpoint safety net

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
GB8528892D0 (en) * 1985-11-23 1986-01-02 Int Computers Ltd Multi-node data processing system
IL97315A (en) * 1990-02-28 1994-10-07 Hughes Aircraft Co Multiple cluster signal processor
US6282583B1 (en) * 1991-06-04 2001-08-28 Silicon Graphics, Inc. Method and apparatus for memory access in a matrix processor computer
RO105026B1 (en) * 1991-10-10 1993-09-01 Ion Minca Network structure for parallel processing of calcullation programs
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5740350A (en) * 1995-06-30 1998-04-14 Bull Hn Information Systems Inc. Reconfigurable computer system
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US6085317A (en) * 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
JP3463558B2 (en) * 1998-03-23 2003-11-05 日本電気株式会社 Crossbar switch, sub crossbar switch unit, parallel computer, telephone exchange, and frame data exchange
US6362650B1 (en) * 2000-05-18 2002-03-26 Xilinx, Inc. Method and apparatus for incorporating a multiplier into an FPGA
US6862634B2 (en) * 2001-06-29 2005-03-01 Fujitsu Limited Mechanism to improve performance in a multi-node computer system
EP1284587B1 (en) * 2001-08-15 2011-09-28 Sound Design Technologies Ltd. Low-power reconfigurable hearing instrument
US7043596B2 (en) * 2001-08-17 2006-05-09 Sun Microsystems, Inc. Method and apparatus for simulation processor

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517657A (en) * 1994-03-30 1996-05-14 Intel Corporation Segment register file read and write pipeline
US5850510A (en) * 1994-12-28 1998-12-15 Fujitsu Limited Interpreter language processing device
US5754839A (en) * 1995-08-28 1998-05-19 Motorola, Inc. Apparatus and method for implementing watchpoints and breakpoints in a data processing system
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6349371B1 (en) * 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US6634020B1 (en) * 2000-03-24 2003-10-14 International Business Machines Corporation Uninitialized memory watch
US6799265B1 (en) * 2000-07-11 2004-09-28 Intel Corporation Dependency checking for reconfigurable logic
US6836839B2 (en) * 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7080360B2 (en) * 2001-12-14 2006-07-18 International Business Machines Corporation Breakpoint safety net

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041867A1 (en) * 2004-08-19 2006-02-23 International Business Machines Corporation Method, apparatus and computer program product for implementing enhanced compiled breakpoint analysis
US7552425B2 (en) * 2004-08-19 2009-06-23 International Business Machines Corporation Implementing enhanced compiled breakpoint analysis
US20120137178A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Stream based debugging techniques
US8327337B2 (en) * 2010-11-30 2012-12-04 International Business Machines Corporation Stream based debugging techniques
US20130305225A1 (en) * 2012-05-09 2013-11-14 International Business Machines Corporation Streams debugging within a windowing condition
US20130305227A1 (en) * 2012-05-09 2013-11-14 International Business Machines Corporation Streams debugging within a windowing condition
US8924939B2 (en) * 2012-05-09 2014-12-30 International Business Machines Corporation Streams debugging within a windowing condition
US8924940B2 (en) * 2012-05-09 2014-12-30 International Business Machines Corporation Streams debugging within a windowing condition
US20170139807A1 (en) * 2015-11-12 2017-05-18 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US9720802B2 (en) 2015-11-12 2017-08-01 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US9747189B2 (en) * 2015-11-12 2017-08-29 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US10042736B2 (en) 2015-11-12 2018-08-07 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US10255172B1 (en) * 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection

Also Published As

Publication number Publication date
US6920545B2 (en) 2005-07-19
US20030135710A1 (en) 2003-07-17
EP1329815A3 (en) 2004-01-02
EP1329815A2 (en) 2003-07-23

Similar Documents

Publication Publication Date Title
US20040153818A1 (en) Defining breakpoints and viewpoints in the software development environment for programmable stream computers
US7266725B2 (en) Method for debugging reconfigurable architectures
Schuette et al. Processor control flow monitoring using signatured instruction streams
Saavedra-Barrera et al. Machine characterization based on an abstract high-level language machine
Shen et al. Native mode functional test generation for processors with applications to self test and design validation
Ernst Embedded program timing analysis based on path clustering and architecture classification
Boulé et al. Adding debug enhancements to assertion checkers for hardware emulation and silicon debug
Tsai et al. Nvbitfi: Dynamic fault injection for gpus
NL1024839C2 (en) A programmable event-driven revenue mechanism that can activate other process flows.
US9367658B2 (en) Method and apparatus for designing and generating a stream processor
US8336032B2 (en) Implementing enhanced template debug
US7035996B2 (en) Generating data type token value error in stream computer
JPH0844590A (en) Apparatus and method for selection test of software system
Mitra et al. Accurate application progress analysis for large-scale parallel debugging
Ma et al. Debugging in the brave new world of reconfigurable hardware
Boulé et al. Debug enhancements in assertion-checker generation
Piumatti et al. An efficient strategy for the development of software test libraries for an automotive microcontroller family
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
Atanassov et al. Using real hardware to create an accurate timing model for execution-time analysis
Goeders et al. Using round-robin tracepoints to debug multithreaded hls circuits on fpgas
Langdon Debugging cuda
Duran et al. Simulation and formal: The best of both domains for instruction set verification of risc-v based processors
Kooli Analysing and supporting the reliability decision-making process in computing systems with a reliability evaluation framework
Ziener et al. Concepts for autonomous control flow checking for embedded cpus
Hoppe et al. Control flow analysis for embedded multi-core hybrid systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: RAYTHEON COMPANY, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WOODALL, THOMAS R.;REEL/FRAME:014366/0086

Effective date: 20030724

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION