Patents by Inventor Martijn Rutten
Martijn Rutten has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20160070550Abstract: A computer-implemented method of automatically generating an embedded system on the basis of an original computer program, comprising analyzing the original computer program, comprising a step of compiling the original computer program into an executable to obtain data flow graphs with static data dependencies and a step of executing the executable using test data to provide dynamic data dependencies as communication patterns between load and store operations of the original computer program, and a step of transforming the original computer program into an intermediary computer program that exhibits multi-threaded parallelism with inter-thread communication, which comprises identifying at least one static and/or dynamic data dependency that crosses a thread boundary and converting said data dependency into a buffered communication channel with read/write access.Type: ApplicationFiled: July 13, 2015Publication date: March 10, 2016Inventors: Jos VAN EIJNDHOVEN, Tommy KAMPS, Maurice KASTELIJN, Martijn RUTTEN, Paul STRAVERS
-
Patent number: 9141350Abstract: A method of generating an embedded system (4999) from an original computer program (996) which embedded system (4999) provides a parallellized hardware (4598) and software (4599) implementation of the original computer program (996), which parallellized implementation (4598, 4599) satisfies one or more criteria regarding hardware constraints of the embedded system (4999). The system provides partitioning of functionality from the original computer program (996) using structural and behavioral program models and detects streaming and memory dependencies to improve the partitioning, relying on added indications of source lines and variables in said original computer program to relate partitions and dependencies in the program model with locations in the original program source code.Type: GrantFiled: April 20, 2011Date of Patent: September 22, 2015Assignee: Vector Fabrics B.V.Inventors: Paul Stravers, Jos Van Eijndhoven, Martijn Rutten, Alexey Rodriguez, Wouter Swierstra, Maurice Kastelijn
-
Patent number: 9081928Abstract: A computer-implemented method of automatically generating an embedded system on the basis of an original computer program, comprising analyzing the original computer program, comprising a step of compiling the original computer program into an executable to obtain data flow graphs with static data dependencies and a step of executing the executable using test data to provide dynamic data dependencies as communication patterns between load and store operations of the original computer program, and a step of transforming the original computer program into an intermediary computer program that exhibits multi-threaded parallelism with inter-thread communication, which comprises identifying at least one static and/or dynamic data dependency that crosses a thread boundary and converting said data dependency into a buffered communication channel with read/write access.Type: GrantFiled: June 1, 2010Date of Patent: July 14, 2015Assignee: Vector Fabrics, B.V.Inventors: Jos Van Eijndhoven, Tommy Kamps, Maurice Kastelijn, Martijn Rutten, Paul Stravers
-
Publication number: 20130080993Abstract: A method of generating an embedded system (4999) from an original computer program (996) which embedded system (4999) provides a parallellized hardware (4598) and software (4599) implementation of the original computer program (996), which parallellized implementation (4598, 4599) satisfies one or more criteria regarding hardware constraints of the embedded system (4999). The system provides partitioning of functionality from the original computer program (996) using structural and behavioral program models and detects streaming and memory dependencies to improve the partitioning, relying on added indications of source lines and variables in said original computer program to relate partitions and dependencies in the program model with locations in the original program source code.Type: ApplicationFiled: April 4, 2011Publication date: March 28, 2013Applicant: VECTOR FABRICS B.V.Inventors: Paul Stravers, Jos Van Eijndhoven, Martijn Rutten, Alexey Rodriguez, Wouter Swierstra, Maurice Kastelijn
-
Publication number: 20120144376Abstract: A computer-implemented method of automatically generating an embedded system on the basis of an original computer program, comprising analyzing the original computer program, comprising a step of compiling the original computer program into an executable to obtain data flow graphs with static data dependencies and a step of executing the executable using test data to provide dynamic data dependencies as communication patterns between load and store operations of the original computer program, and a step of transforming the original computer program into an intermediary computer program that exhibits multi-threaded parallelism with inter-thread communication, which comprises identifying at least one static and/or dynamic data dependency that crosses a thread boundary and converting said data dependency into a buffered communication channel with read/write access.Type: ApplicationFiled: June 1, 2010Publication date: June 7, 2012Applicant: VECTOR FABRICS B.V.Inventors: Jos Van Eijndhoven, Tommy Kamps, Maurice Kastelijn, Martijn Rutten, Paul Stravers
-
Publication number: 20070168615Abstract: Non-overlapping cache locations are reserved for each data stream. Therefore, stream information, which is unique to each stream, is used to index the cache memory. Here, this stream information is represented by the stream identification. In particular, a data processing system optimised for processing dataflow applications with tasks and data streams, where different streams compete for shared cache resources is provided. An unambiguous stream identification is associated to each of said data stream. Said data processing system comprises at least one processor (12) for processing streaming data, at least one cache memory (200) having a plurality of cache blocks, wherein one of said cache memories (200) is associated to each of said processors (12), and at least one cache controller (300) for controlling said cache memory (200), wherein one of said cache controllers (300) is associated to each of said cache memories (200).Type: ApplicationFiled: February 25, 2004Publication date: July 19, 2007Inventors: Josephus Theodorus Van Eijndhoven, Martijn Rutten, Evert-Jan Pol
-
Publication number: 20060290776Abstract: The invention relates to task management in a data processing system, having a plurality of processing elements (CPU, ProcA, ProcB, ProcC). Therefore a data processing system is provided, comprising at least a first processing element (CPU, ProcA, ProcB, ProcC) and a second processing element (CPU, ProcA, ProcB, ProcC) for processing a stream of data objects (DS_Q, DS R, DS S, DST), the first processing element being arranged to pass data objects from the stream of data objects to the second processing element The first and the second processing element are arranged for parallel execution of an application comprising a set of tasks (TP, TA, TB1, TB2, TC), and the first and the second processing element are arranged to be responsive to the receipt of a unique identifier. In order to ensure integrity of data during reconfiguration of the application, the unique identifier is inserted into data stream and passed from one processing element to the other.Type: ApplicationFiled: February 18, 2004Publication date: December 28, 2006Inventors: Martijn Rutten, Josephus Theodorus Van Eijndhoven, Evert-Jan Pol
-
Publication number: 20060190688Abstract: The dismissing of cached data that is not expected to be further used is predicted instead of predicting future I/O operations and then data is fetched from the main memory to replace the dismissed data in the cache. Thus, firstly a location in a cache memory containing data, which is expected not to be further used, is identified, followed by performing a prefetch operation in order to request new data to refill the above location in the cache memory. Therefore, a data processing system comprises at least one processor (12) for processing streaming data, at least one cache memory (200) having a plurality of cache blocks (210), wherein one of said cache memories (200) is associated to each of said processors (12), and at least one cache controller (300) for prefetching data into said cache memory (200), wherein one of said cache controllers (300) is associated to each of said cache memories (200).Type: ApplicationFiled: February 25, 2004Publication date: August 24, 2006Inventors: Josephus Theodorus Van Eijndhoven, Martijn Rutten, Evert-Jan Pol
-
Publication number: 20050183091Abstract: A multiprocessor data processing system is described wherein the processor (12a, 12b, 12c) communicate to each other via a shared memory (10). Each of the processors comprises an administration unit (18a) and a computational unit (12a). The administration unit of a writing processor (11a) maintains information defining a section in the memory (10) which is free for storing data objects for readout by the reading processor (12b). The administration unit (18b) of the reading processor (11b) maintains information defining a section in the memory (10) in which the writing processor has written completed data for the data objects. The processors are arranged to signal a message (M, M?) to another processor via a processor synchronization channel for updating the information in the administration unit of said other processor. Each of the processors is arranged to suspend processing the stream of data objects when a location which it needs to access is outside the section defined by its administration unit.Type: ApplicationFiled: December 5, 2002Publication date: August 18, 2005Inventors: Josephus Theodorous Van Eijndhoven, Evert Pol, Martijn Rutten
-
Publication number: 20050081200Abstract: The invention is based on the idea to provide distributed task scheduling in a data processing system having multiple processors. Therefore, a data processing system comprising a first and at least one second processor for processing a stream of data objects, wherein said first processor passes data objects from a stream of data objects to the second processor, and a communication network and a memory is provided. Said second processors are multi-tasking processors, capable of interleaved processing of a first and second task, wherein said first and second tasks process a first and second stream of data objects, respectively. Said data processing system further comprises a task scheduling means for each of said second processors, wherein said task scheduling means is operatively arranged between said second processor and said communication network, and controls the task scheduling of said second processor.Type: ApplicationFiled: December 5, 2002Publication date: April 14, 2005Inventors: Martijn Rutten, Josephus Theodorus Van Eijndhoven, Evert-Jan Pol
-
Publication number: 20050021807Abstract: The invention is based on the idea to effectively separate communication hardware, e.g. busses and memory, and computation hardware, e.g. processors, in a data processing system by introducing a communication means for each processor. By introducing this separation the processors can concentrate on performing their function-specific tasks, while the communication means provide the communication support for the respective processor. Therefore, a data processing system is provided with a computation, a communication support and a communication network layer. The computation layer comprises a first and at least a second processor for processing a stream of data objects. The first processor passes a number of data objects from a stream to the second processor which can then process the data objects. The communication network layer includes a memory and a communication network for linking the first processor and the second processors with said memory.Type: ApplicationFiled: December 5, 2002Publication date: January 27, 2005Inventors: Joseph Theodorus Van Eijndhoven, Evert Pol, Martijn Rutten, Pieter van Der Wolf, Om Gangwal
-
Publication number: 20050015372Abstract: The invention is based on the idea to separate a synchronisation operation from reading and writing operations. Therefore, a method for data processing in the data processing system is provided, wherein said data processing system comprises a first and at least a second processor for processing streams of data objects, wherein said first processor passes data objects from a stream of data objects to the second processor. Said data processing system further comprises at least one memory for storing and retrieving data objects, wherein a shared access of said first and second processors is provided. The processors perform a read operations and/or write operations in order to exchange data objects with his said memory. Said processors further perform inquiry operations and/or commit operations in order to synchronise a data object transfer between tasks which are executed by said processors.Type: ApplicationFiled: December 5, 2002Publication date: January 20, 2005Inventors: Josephus Van Eijndhoven, Evert-Jan Pol, Martijn Rutten
-
Publication number: 20050015637Abstract: A data processing system is claimed which comprises a plurality of processors (12a, 12b, 12c) which communicate data streams with each other via a shared memory (10). The data processing system comprises processor synchronization means (18), for synchronizing the processors (12a-c) when passing the stream of data objects. For that purpose the processors are capable of issuing synchronization commands (Ca-c) to the synchronization means (18). At least one of the processors (12a) comprises a cache memory (184a), and the synchronization means (18) initiate a cache operation (CCa) in response to a synchronization commands (Ca).Type: ApplicationFiled: December 5, 2002Publication date: January 20, 2005Inventors: Josephus Theodorus Johannes Van Eijndhoven, Evert-Jan Pol, Martijn Rutten, Om Gangwal