Patents by Inventor Jan Hoogerbrugge

Jan Hoogerbrugge 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).

  • Patent number: 7779205
    Abstract: A multi processor system 1 comprises a plurality of processors 21 to 25, a system bus 30 and a main system memory 40. Each processor 21 to 25 is connected to a respective cache memory 41 to 45, with each cache memory 41 to 45 in turn being connected to the system bus 30. The cache memories 41 to 45 store copies of data or instructions that are used frequently by the respective processors 21 to 25, thereby eliminating the need for the processors 21 to 25 to access the main system memory 40 during each read or write operation. Processor 25 is connected to a local memory 50 having a plurality of data blocks (not shown). According to the invention, the local memory 50 has a first port 51 for connection to its respective processor 25. In addition, the local memory 50 has a second port 52 connected to the system bus 30, thereby allowing one or more of the other processors 21 to 24 to access the local memory 50.
    Type: Grant
    Filed: November 8, 2005
    Date of Patent: August 17, 2010
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Jan Hoogerbrugge
  • Patent number: 7577827
    Abstract: A data processor that addresses instructions as groups of commands which may contain more than one branch command, such as VLIW instructions that contain several commands for parallel execution. The processor selects an expected taken branch command from the branch commands in a group. The processor also selects a tentative target for the expected taken branch command and tentatively redirects control flow to a further group of commands identified by the tentative target. The processor contains an associative target memory for storing targets of previously executed branch commands. Targets are retrieved with an associative address that identifies a command in the group, the tentative target being selected on the basis of a match between the associative address associated with the tentative target and an indication of the expected taken command.
    Type: Grant
    Filed: February 28, 2001
    Date of Patent: August 18, 2009
    Assignee: NXP B.V.
    Inventor: Jan Hoogerbrugge
  • Patent number: 7577823
    Abstract: The present invention relates to a multi-processor computer system comprising at least two processors for parallel execution of processes, at least two cache memory units, each being associated with and connected to a separate processor, a connection bus connecting said processors and said cache memory units, and a process list unit connected to said connection line for storing a process list of processes to be available for execution by said processors.
    Type: Grant
    Filed: June 23, 2003
    Date of Patent: August 18, 2009
    Assignee: NXP B.V.
    Inventor: Jan Hoogerbrugge
  • Patent number: 7568082
    Abstract: The invention provides a controller for a memory having at least one memory cell, that involves a higher cost for writing than for reading. The memory cell is allocated to a first address information and adapted to store memory data. The memory controller of the invention comprises a register. A write controller connected with said register and said memory is adapted to receive a write request comprising said first address information and first write data allocated thereto, ascertain whether said first address information is stored in said register. If yes, the write controller compares said first write data with second write data of an earlier write request in said register allocated to said first address information. If no, it compares said first write data with said memory data allocated to the first address information.
    Type: Grant
    Filed: November 26, 2003
    Date of Patent: July 28, 2009
    Inventor: Jan Hoogerbrugge
  • Publication number: 20090150619
    Abstract: A multi processor system 1 comprises a plurality of processors 21 to 25, a system bus 30 and a main system memory 40. Each processor 21 to 25 is connected to a respective cache memory 41 to 45, with each cache memory 41 to 45 in turn being connected to the system bus 30. The cache memories 41 to 45 store copies of data or instructions that are used frequently by the respective processors 21 to 25, thereby eliminating the need for the processors 21 to 25 to access the main system memory 40 during each read or write operation. Processor 25 is connected to a local memory 50 having a plurality of data blocks (not shown). According to the invention, the local memory 50 has a first port 51 for connection to its respective processor 25. In addition, the local memory 50 has a second port 52 connected to the system bus 30, thereby allowing one or more of the other processors 21 to 24 to access the local memory 50.
    Type: Application
    Filed: November 8, 2005
    Publication date: June 11, 2009
    Applicant: KONINKLIJKE PHILIPS ELECTRONICS, N.V.
    Inventor: Jan Hoogerbrugge
  • Publication number: 20080195851
    Abstract: A multi-threaded processor comprises a processing unit (PU) for concurrently processing multiple threads. A register file means (RF) is provided having a plurality of registers, wherein a first register (LI) is used for storing loop invariant values and N second registers (LVI-LVN) are each used for storing loop variant values. Furthermore N program counters (PCI-PCN) are provided each being associated to one of the multiple threads, wherein N being the number of threads being processed.
    Type: Application
    Filed: January 17, 2006
    Publication date: August 14, 2008
    Applicant: NXP B.V.
    Inventor: Jan Hoogerbrugge
  • Publication number: 20080028189
    Abstract: Therefore, a microprocessor for processing instructions is provided. Said microprocessor comprises a cache for caching instructions and/or data to be processed, which are arranged in cache words, and an alignment unit for aligning instructions to predetermined positions with regard to cache word boundaries of said cache by introducing padding bytes (padd1, padd2). At least one of said padding bytes (padd1, padd2) include static data, which are required within the processing of one of said instructions. Accordingly, the padding bytes which are required for the alignment of the instructions, can be utilized for data which is needed during the processing of the instruction such that these bytes are not wasted and the available storage capacity is efficiently used.
    Type: Application
    Filed: May 18, 2005
    Publication date: January 31, 2008
    Inventor: Jan Hoogerbrugge
  • Patent number: 7194734
    Abstract: A threaded interpreter executes a program having a series of program instructions stored in a memory. For the execution of a program instruction the threaded interpreter includes a preparatory unit for executing a plurality of preparatory steps making th program instruction available in the threaded interpreter, and an execution unit with one or more machine instructions emulating the program instruction. The threaded interpreter is designed such that during the execution on an instruction-level parallel processor of the series of program instructions. Machine instructions implement a first one of the preparatory steps for execution in parallel with machine instructions implementing a second one of the preparatory steps for respective ones of the series of program instructions.
    Type: Grant
    Filed: February 13, 2003
    Date of Patent: March 20, 2007
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Jan Hoogerbrugge, Alexander Augusteijn
  • Patent number: 7082518
    Abstract: The present invention relates to a digital signal processing apparatus comprising a plurality of available hardware resource means and a first instruction set means having access to said available hardware resource means, so that at least a part of said hardware resource means execute operations under control of said first instruction set means, and further comprising a second instruction set means having access to only a predetermined limited subset of said plurality of available hardware resource means, so that at least a part of said predetermined limited subset of said hardware resource means execute operations under control of said second instruction set means.
    Type: Grant
    Filed: October 16, 2001
    Date of Patent: July 25, 2006
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Jeroen Anton Johan Leijten, Marco Jan Gerrit Bekooij, Adrianus Josephus Bink, Johan Sebastiaan Henri Van Gageldonk, Jan Hoogerbrugge, Bart Mesman
  • Patent number: 7051136
    Abstract: The invention is based on the idea that for a large data structure with N entries, memory space for the locks corresponding to the entries can be saved by performing a hashing function on a value that represents an entry into a hashed value 1 to M. This hashed value is used to index the table of M locks. The value of M is typically much smaller than the value of N thereby reducing memory space requirements. If M is chosen large enough and a good hashing function is selected, problems with collisions will be very small. Additionally, problems relating to deadlock occurring, when the hashed value of a second entry equals the hashed value of a first entry, are being addressed by swapping the hashed values of the first and second entries, when the hashed value of the second entry is smaller than the hashed value of the first entry.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: May 23, 2006
    Assignee: Koninklijke Philips Electronics, N.V.
    Inventors: Jan HoogerBrugge, Paul Stravers
  • Publication number: 20060106969
    Abstract: The invention provides a controller for a memory having at least one memory cell, that involves a higher cost for writing than for reading. The memory cell is allocated to a first address information and adapted to store memory data. The memory controller of the invention comprises a register. A write controller connected with said register and said memory is adapted to receive a write request comprising said first address information and first write data allocated thereto, ascertain whether said first address information is stored in said register. If yes, the write controller compares said first write data with second write data of an earlier write request in said register allocated to said first address information. If no, it compares said first write data with said memory data allocated to the first address information.
    Type: Application
    Filed: November 26, 2003
    Publication date: May 18, 2006
    Applicant: KONINKLIJKE PHILIPS ELECTRONICS N.V.
    Inventor: Jan Hoogerbrugge
  • Patent number: 7032102
    Abstract: A signal processing device and method of supplying a signal processing result to a plurality of registers arranged in different register files. A plurality of different register files are selected based on a corresponding indication in said instruction word and the register address is supplied to said selected register files. Result values can be broadcasted to multiple registers in a single processor cycle while a copy operation between different register files is eliminated. Broadcasting is thus implemented via overlapping register address spaces, since physical registers having the same logical register address are provided in different register files.
    Type: Grant
    Filed: December 10, 2001
    Date of Patent: April 18, 2006
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Jeroen Anton Johan Leijten, Marco Jan Gerrit Bekooij, Adrianus Josephus Bink, Johan Sebastiaan Henri Van Gageldonk, Jan Hoogerbrugge, Bart Mesman, Cornelis Arnoldus Josephus Van Eijk
  • Publication number: 20060069738
    Abstract: The present invention relates to a multi-processor computer system comprising at least two processors for parallel execution of processes, at least two cache memory units, each being associated with and connected to a separate processor, a connection bus connecting said processors and said cache memory units, and a process list unit connected to said connection line for storing a process list of processes to be available for execution by said processors.
    Type: Application
    Filed: June 23, 2003
    Publication date: March 30, 2006
    Inventor: Jan Hoogerbrugge
  • Publication number: 20060059311
    Abstract: Data prefetching is used to reduce an average latency of memory references for retrieval of data therefrom. The prefetching process is typically based on anticipation of future processor data references. In example embodiment, there is a method of data retrieval that comprises providing a first memory circuit (610), a stride prediction (611) table (SPT) and a cache memory circuit (612). Instructions for accessing data (613) within the first memory are executed. A cache miss (614) is detected. Only when a cache miss is detected is the SPT accessed and updated (615). A feature of this embodiment includes using a stream buffer as the cache memory circuit. Another feature includes using random access cache memory as the cache memory circuit.
    Type: Application
    Filed: November 11, 2003
    Publication date: March 16, 2006
    Inventors: Jan-Willem Van De Waerdt, Jan Hoogerbrugge
  • Patent number: 6948158
    Abstract: The present invention relates to a compiling method and system for generating a sequence of program instructions for use in a processing architecture with architecture resources executing instructions from a corresponding instruction set. A retargetable compiler is used to generate a code using at least two instruction sets in the same processing architecture. One instruction set for a compact code and one for a parallel high performance code. The compact instruction set (Compact Instruction Format) covers a subset (RF11, ALU1, L/S1, BU1) of the architecture, whereas the complete instruction set covers the entire architecture (RF1, UC1, UC2, RF2, UC3, UC4, RF3, UC5, UC6, RF4, UC7). By using the at least two instruction sets of different sizes, the compiler is able to reduce the processed average code length, since fewer bits are needed in the compact code to encode operations and registers.
    Type: Grant
    Filed: October 2, 2001
    Date of Patent: September 20, 2005
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Johan Sebastiaan Henri Van Gageldonk, Marco Jan Gerrit Bekooij, Adrianus Josephus Bink, Jan Hoogerbrugge, Jeroen Anton Johan Leijten, Bart Mesman
  • Publication number: 20050177659
    Abstract: The invention is based on the idea to maintain two counters for an input or output port of a FIFO. A device for writing data elements from a coprocessor into a FIFO memory is provided. Said device is embedded in a multiprocessing environment comprising at least one coprocessor, a FIFO memory and a controller. Said device comprises a first counter for counting the available room in said FIFO memory, and a second counter for counting the number of data elements written into said FIFO memory. Said device further comprises a control means for checking said first counter for available room in said FIFO memory, and for checking said second counter whethera predetermined number N of data elements have been written into said FIFO memory. Said control means decrements the count of said first counter and increments the count of said second counter, after a data element has been written into said FIFO memory. Said device finally comprises an output means for outputting data elements to said FIFO memory.
    Type: Application
    Filed: May 21, 2003
    Publication date: August 11, 2005
    Inventors: Jan Hoogerbrugge, Paul Stravers
  • Publication number: 20040267745
    Abstract: The invention is based on the idea that for a large data structure with N entries, memory space for the locks corresponding to said entries can be saved by performing a hashing function on a value that represents an entry into a hashed value 1 to M. This hashed value is used to index the table of M locks. The value of M is typically much smaller than the value of N thereby reducing memory space requirements. If M is chosen large enough and a good hashing function is selected problems with collisions will be very small. Additionally, problems relating to deadlock occurring, when the hashed value of a second entry equals the hashed value of the a first entry, are being addressed by swapping said hashed values of said first and second entry, when the hashed value of the second entry is smaller than the hashed value of the first entry.
    Type: Application
    Filed: May 7, 2004
    Publication date: December 30, 2004
    Inventors: Jan HoogerBrugge, Paul Stravers
  • Publication number: 20040260888
    Abstract: The invention relates to a method and a device for reading/writing data elements from/into a shared FIFO buffer, wherein the signalling that a data element or a storage space for a data element is available in a FIFO buffer, i.e. performing a V-operation, is not performed atomically as soon as a data element or a storage space for a data element becomes available in said FIFO buffer but to wait until L data elements or L storage spaces for L data elements have become available in said FIFO buffer before performing one signalling of the availability of the L data elements or L storage spaces for L data elements. In a sense, the signalling of the availability of the data elements or the storage spaces for data elements, i.e. performing a V-operation, is buffered until a certain amount of V-operations is collected before outputting of the signalling of the availability.
    Type: Application
    Filed: May 12, 2004
    Publication date: December 23, 2004
    Inventors: Jan Hoogerbrugge, Paul Stravers
  • Publication number: 20040260890
    Abstract: A V-operation not performed atomically for each data element or storage space that becomes available in a FIFO or a P-operation is not performed atomically for each request for a data element or a storage space in the FIFO but rather one V-operation is performed after m data elements or m storage spaces have become available in the FIFO or one P-operation is performed after m requests for data elements or m requests for storage spaces have been received. Upon using these P-operations, i.e. performing said request operations in bursts rather than atomically, cases may occur where less data elements or storage spaces are available in said FIFO buffer than needed or requested by a consumer process, e.g. a reading or a writing process. A P-operation is performed by requesting m data elements or m storage spaces for m data elements. The P-operation will only be blocked completely, if no data elements or storage spaces are available in the FIFO buffer, i.e. the semaphore counter being zero.
    Type: Application
    Filed: May 12, 2004
    Publication date: December 23, 2004
    Inventors: Jan Hoogerbrugge, Paul Stravers
  • Publication number: 20040172524
    Abstract: The present invention relates to a method, processor and compiler for predicting a branch target of a program. A hint operation is provided in the program to hint the branch prediction about upcoming indirect branches. A table of branch targets of indirect branches can be used to improve prediction accuracy of indirect branches. The branch target is determined on the basis of a key information derived from the hint operation.
    Type: Application
    Filed: December 23, 2003
    Publication date: September 2, 2004
    Inventor: Jan Hoogerbrugge