IP Library Granted Patent US 9,348,587
Granted Patent B2
US 9,348,587 · App. 13/809,159 · Granted May 24, 2016

Providing code sections for matrix of arithmetic logic units in a processor

Inventor: Martin Vorbach (Lingenfeld, DE)
Assignee: Hyperion Core, Inc.
G06F9/3001G06F9/3013G06F9/30043G06F9/30054G06F9/30058G06F9/30072G06F9/30076G06F9/30094G06F9/30098G06F9/30138G06F9/30167G06F9/325G06F9/355G06F9/381G06F9/383G06F9/384G06F9/3836G06F9/3855G06F9/3857G06F9/3887G06F9/3889
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,348,587
App. No.
13/809,159
Granted
May 24, 2016
Kind
B2
Abstract

The present invention relates to a processor having a trace cache and a plurality of ALUs arranged in a matrix, comprising an analyzer unit located between the trace cache and the ALUs, wherein the analyzer unit analyzes the code in the trace cache, detects loops, transforms the code, and issues to the ALUs sections of the code combined to blocks for joint execution for a plurality of clock cycles.

Claims (19)

1. A processor comprising:

a trace cache;

a plurality of ALUs arranged in a matrix; and

an analyser unit connected to the trace cache, the analyser unit:

analysing the code in the trace cache;

detecting loops in the code;

transforming the code, including arranging the code into sections of the code mapping to multiple ALUs of the plurality of ALUs; and

issuing to the multiple ALUs the sections of the code for joint execution of instructions in the sections of code for a plurality of clock cycles, each instruction in one of the sections of code being issued to a different ALU within the matrix, and at least one of the instructions issued to one of the ALUs staying temporarily fixed for a plurality of clock cycles while multiple data words are streamed through the ALU.

2. The processor of claim 1 wherein the sections of the code are loops or loop partitions that are statically mapped to the multiple ALUs until the loops terminate.

3. The processor of claim 1 wherein the sections of the code are mapped to the multiple ALUs based on dependencies between multiple instructions in the code.

4. The processor of claim 1 wherein transforming the code includes

analyzing dependencies between multiple instructions in the code, and

setting up connections between one or more pairs of the plurality of ALUs, wherein the connections allow one or more results from execution of instructions by one or more result-generating ALUs to be fed to one or more ALUs that execute instructions dependent on the one or more results.

5. The processor of claim 1 further comprising loop control hardware to compute a loop termination criterion for at least one of the detected loops in the code.

6. The processor of claim 5 wherein the loop control hardware includes a counter.

7. The processor of claim 1 , wherein each of the multiple data words is processed based on a same temporarily fixed instruction.

8. The processor of claim 7 , wherein after the plurality of clock cycles, a new instruction is issued to at least one of the ALUs.

9. The processor of claim 5 wherein transforming the code includes evaluating at least one of a loop header and a loop footer and setting one or more parameters of the loop control hardware based on the evaluation.

10. The processor of claim 9 , wherein transforming the code includes removing code controlling the loop from execution by the plurality of ALUs after setting the one or more parameters of the loop control hardware.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2024
From: HYPERION CORE INC.
To: UBITIUM GMBH
Reel/Frame 068200/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2014
From: VORBACH, MARTIN
To: HYPERION CORE, INC.
Reel/Frame 034290/0711 →
Priority Claims (11)
EP 10007074 · Jul 9, 2010 · regional
EP 10007437 · Jul 19, 2010 · regional
EP 10007657 · Jul 23, 2010 · regional
EP 10008734 · Aug 21, 2010 · regional
EP 10010803 · Sep 27, 2010 · regional
EP 10013253 · Oct 4, 2010 · regional
EP 10013932 · Oct 25, 2010 · regional
EP 10016117 · Dec 28, 2010 · regional
EP 11000597 · Jan 26, 2011 · regional
EP 11001305 · Feb 17, 2011 · regional
EP 11004033 · May 16, 2011 · regional
Continuity (1)
Related Publication 20130205123A1 · Aug 8, 2013