SE521753C2 - Förfarande och system för att uppfylla realtidskrav för en dataprocessor - Google Patents
Förfarande och system för att uppfylla realtidskrav för en dataprocessorInfo
- Publication number
- SE521753C2 SE521753C2 SE0200383A SE0200383A SE521753C2 SE 521753 C2 SE521753 C2 SE 521753C2 SE 0200383 A SE0200383 A SE 0200383A SE 0200383 A SE0200383 A SE 0200383A SE 521753 C2 SE521753 C2 SE 521753C2
- Authority
- SE
- Sweden
- Prior art keywords
- sequences
- sequence
- program code
- linker
- instruction memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/457—Communication
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
- Computer And Data Communications (AREA)
Description
25 t 521 ZSS Det är också ett syfte med föreliggande uppfinning att tillhandahålla ett förfarande och ett behandlingssystem för ett kommunikationsnät, vid vilka det är enklare att ta realtidskrav för databehandlingen i nätet under beaktande, under programmering och kompilering av instruktioner för processema.
Dessa syften uppfylls genom ett förfarande och ett behandlingssystem för ett kom- munikationsnät, enligt de kännetecknande delama av patentkrav l respektive 6.
Att uppdela programkoden i ett flertal sekvenser, definiera, baserat på program- koden, en pluralitet av relokeringsobj ekt, var och en svarande mot ett beroende- förhållande mellan två eller flera av sekvensema, och allokera sekvensema till ett processorinstruktionsminne, tillhandahåller en struktur av koder som gör dem enkla att manipulera i syfte att uppfylla databehandlingskrav hos kommunikationsnätet.
Enligt uppfinningen bildas minst en riktad graf baserad på åtminstone några av sekvensema och åtminstone några av relokeringsobjekten, och en längsta exekveringsväg genom den riktade grafen fastställs. Sekvenser i instruktionsminnet kan flyttas. Enligt uppfinningen skrivs minst en tillståndsbevarande operation in, för att göra minst två exekveringsvägar lika långa. Detta tillhandahåller ett effektivt verktyg för att styra koden i syfte att uppfylla realtidskrav i kommunikationsnätet.
Mer specifikt möjliggör uppfinningen, i motsats till kända assemblerar-länkar- algoritmer för processorer, vilka ofta är konstruerade för att optimera minnesutnyttj ande, fastställandet av den totala exekveringstiden för varje altemativ exekveringsväg, varvid svårigheter att möta behandlingstidskrav undviks.
Kortfattad beskrivning av figurer Nedan kommer uppfinningen att beskrivas i detalj med hänvisning till de medföl- jande ritningama, på vilka 10 15 20 25 30 1521 753 3 - fi g. 1 visar schematiskt strukturen hos ett instruktionsininne, enligt en föredra- gen utföringsform av uppfinningen, i förhållande till programmerade instruk- tioner och en dataväg, - fig. 2 visar schematiskt instruktionsminnet i fig. 1 och en del av det forstorat, - fig. 3 visar schematiskt strukturen hos ett program enligt en föredragen utfö- ringsform av uppfinningen, och - fig. 4-7 visar exempel på programstrukturer.
Detaljerad beskrivning Här hänvisas till fig. 1. Behandlingssystemet enligt uppfinningen är anordnat att be- handla fysiska data som passerar genom en logisk rörledning för databehandling 1.
Datat kan vara i form av datapaket. Riktningen hos dataströmmen indikeras med en pil A. Behandlingssystemet kan vara en PISC (Packet Instruction Set Computer), såsom beskriven i patentansökningen 512010022 l-l. Den logiska rörledningen för databehandling 1 omfattar en mångfald av rörledningselement 2. Mellan rörled- ningselementen 2 är motortillträdespunkter (engelska: engine access points) 3 be- lägna, vid vilka, till exempel, datapaketklassiñcering kan äga rum.
Den logiska rörledningen för databehandling 1 kan vara anpassad till en s.k. klassi- ficerings-ingripande-modell (engelska: classify-action model). Därvid utförs, vid behandlingen av ett datapaket, en första klassificering, t.ex. en sökning i ett associa- tivt minne (engelska: CAM lookup). En anpassad klassificeringsregel kan påbörja ett ingripande med ett argument. lngripandet kan vara ett behandlingsprogram exekverat i ett rörledningselement 2 och som utför ett deljobb som en riktad graf av sekvenser som börjar med en rotsekvens, såsom beskrivs nedan. Behandlingssyste- inet kan vara anordnat att köra flera sändnivåapplikationer (engelska: forwarding plane applications) samtidigt, t.ex. både MPLS och lPv4. Applikationerna kan separeras logiskt, t.ex. med speciella etiketter för klassificering och olika uppsätt- ningar av ingripanden (paketprogram). 10 15 20 30 521 753 Behandlingssystemet omfattar ett instruktionsminne 4 för att lagra instruktioner för databehandlingen. Instruktionsminnet 4 omfattar rader 5 och kolumner 6. Varje rör- ledningselement 2 omfattar ett antal instruktionssteg för databehandlingen, varvid varje instruktionssteg är allokerat till en kolumn 6 i instruktionsminnet 4. Följakt- ligen tilldelas varje rörledningselement 2 ett visst antal kolumner såsom indikeras med de brutna linjerna B. Var och en av raderna 5 motsvarar en adress i minnet 4.
I ett förfarande enligt en föredragen utföringsform av uppfinningen, beskrivet när- mare nedan, genererar en assemblerare sekvenser 7 av instruktionsord 8, företrädes- vis maskinkodinstruktionsord, t.ex. VLIW-instruktionsord, och en länkare placerar sekvenserna i instruktionsminnet 4 och länkar ihop sekvenserna. Med hänvisning till fig. 2 upptar, i instruktionsminnet 4, varje sekvens rninnesutryinine i samma rad och i intilliggande koiamner. Varje sekvens är en rad av rnaskinkodinstruktionsord som kommer att exekveras konsekutivt. Efter att ha exekverat ett instruktionsord kom- mer processorn normalt att exekvera ett annat instruktionsord i nästa kolumn på samma rad.
Såsom avbildas i fig. l omfattar behandlingssystemet ett behandlingsprogram, vilket svarar mot en riktad graf 9 av sekvenser 7 som var och en utför ett visst deljobb på data, t.ex. datapaket, såsom vidarebefordran.
Såsom avbildas i fig. 3 börjar den riktade grafen med en rotsekvens 7a. Den är be- gränsad till ett rörledningseleinent 2. Varje rotsekvens 7a är en sekvens i början av ett behandlingsprogram, och kan markeras som "rot" (engelska: root) i programmet.
En rotsekvens 7a kan startas som ett resultat av en klassificering med ett associativt minne (engelska: CAM classification) eller en instruktion i form av ett hopp i en sekvens i ett föregående rörledningselement 2. Länkaren kan exportera en startrad hos rotsekvensen så att en körtidsmjukvara (engelska: run-time softvvare) kan för- dela ingripande till klassificeringsregler. 10 15 20 25 30 i521 753 Den riktade grafen slutar i lövsekvenser (engelska: leaf sequences) 7b. Varje löv- sekvens 7b är en sekvens som slutar med en relokeringsinstruktion att behandlings- prograininet skall avsluta eller hoppa till en sekvens i ett annat rörledningselement 2. Sålunda kan länkaren länka riktade grafer eller program i olika rörledningsele- ment 2 genom att förbinda eller länka en lövsekvens i ett program med en rotsek- vens i ett annat program.
Den riktade grafen 9 omfattar grenar (engelska: branches) 10. Varje gren 10 är ett relokeringsobjekt som tillhandahåller information att det finns en alternativ sekvens att hoppa till vid instruktionen vid vilken grenen är belägen. Genom att använda en gren 10 kan processorn utföra ett hopp till en annan sekvens i en annan rad men en grundvårdesgren (engelska: default branch) exekveras på samma rad och tillhör Samlfla SC JJCHS.
En sekvensavslutning kan vara vilket som helst av följande: Ett relokeringsobjekt som instruerar ett hopp till en annan sekvens i samma rörledningselement 2, ett relokeringsobjekt som instruerar ett hopp till en sekvens i ett följande rörlednings- , element 2 eller en instruktion att avsluta programmet. De två senare alternativen bildar en avslutning i en lövsekvens 7b.
Relokeringsobj ekten resulterar i att behandlingsprogrammet har ett åndligt antal alternativa vågar till dess att programmet avslutas vid en eller många avslutnings- punkter (löv).
I ett forfarande för ett kominunikationsnät enligt en föredragen utforingsforin av uppfinningen tar asseinbleraren emot en prograinkod som omfattar en mångfald av instruktioner för kommunikationsnätet. Assembleraren delar upp programkoden i en mångfald av sekvenser 7, tex. sekvenser av en PlSC-kod, och definierar, baserat på programkoden, ett flertal relokeringsobjekt 10, var och en svarande mot ett beroen- . . . - m 10 15 20 25 30 521 753 6 deforhållande mellan två eller flera av sekvenserna 7. Assembleraren bildar minst en riktad graf 9, baserat på åtminstone några av sekvensema 7 och åtminstone några av relokeringsobjekten 10, vilken riktad graf har en eller flera rötter.
Med andra ord delar assembleraren eller "ko1npilatorn" upp koden i "ato1nära" del- jobb, aktiviteter eller sekvenser som är beroende av varandra så att de måste utföras i en konsekutiv följd.
Den riktade grafen 9 lagras som en objektfil. Objektfilen omfattar ett kodsekvens- format och ett relokeringsobjektformat som definierar beroendena mellan sekven- serna. Varje kodsekvens har en längd (ett antal instruktioner).
Den riktade grafen analyseras. Länkaren bekräftar att den riktade grafen består av en till flera partiella beordrade mängder (engelska: partíal ordered sets). Detta innebär fastställande av existensen av någon cirkelreferens genom något av relokerings- objekten 10 mellan några av sekvensema 7.
F öreträdesvis omfattar förfarandet att länkaren bekräftar att koden uppfyller ett förutbestämt tidskrav, d.v.s. permanent exekveringstidskrav. Detta utförs med en längsta vägalgoritm över den riktade grafen, d.v.s. fastställande av en längsta exekveringsväg genom den riktade grafen, vilken inkluderar addering av sekvens- längder eller längder för partiella sekvenser. 1 fallet med databehandling med logisk rörledning är exekveringstidskravet begränsat av antalet behandlingssteg. I ett all- männare fall kan tidsbegränsningen vara vilket permanent realtidskrav (engelska: hard real-time requirement) som helst.
Länkaren placerar sekvenserna i instruktionsminnet, såsom beskrives ovan. Det två- dimensionella instruktionsminnet 4 tillåter att många alternativa exekveringsvägar lagras parallellt. Härav kravet att programmet måste lagras som en riktad graf. 10 15 20 30 = 521 753 7 Med hänvisning till fig. 4, flyttar länkaren ut en sekvens vid instruktionsminnet och allokerar minst en tillståndsbevarande operation, eller instruktion om ingen opera- tion, NOP i instruktionsminnet, för att göra minst två exekveringsvägar lika långa, varvid längden för de minst två exekveringsvägarna svarar mot den längsta exekve- ringsvägen. Som ett exempel i fig. 4 bestäms den längsta exekveringen av rotsek- vensen 7a, ett första relokeringsobjekt 101 och en första lövsekvens 71. En alterna- tiv exekveringsväg bildas av en del av rotsekvensen 7a, ett andra relokeringsobjekt 102 och en andra lövsekvens 72. Den alternativa exekveringsvägen har en kortare exekveringstid jämfört med den längsta exekveringsvägen, på grund av att det andra relokeringsobjektet 102 är beläget närmare roten på rotsekvensen 7a än det första relokeringsobjektet 101, och den andra lövsekvensen 72 är kortare än den första lövsekvensen. Länkaren flyttar den andra lövsekvensen och skriver in tillstånds- bevarande operationer NOP före och efter den andra lövsekvensen 72. Alternativt flyttas inte den andra lövsekvensen och tillståndsbevarandc operationer N OP förs in efter den andra lövsekvensen 72. Därigenom blir alla alternativa exekveringsvägar lika långa och exekveringstiden är lika med den längsta vägen för alla möjliga alter- nativa vägar.
Med hänvisning till fig. 5, i en alternativ utföringsform, används av länkaren en spe- ciell blindinstruktionsrad (engelska: no operation row) 12 i minnet 4, varvid lövsek- venser 7b i exekveringsvägar som är kortare än den längsta exekveringsvägen kan hoppa med hjälp av ett relokeringsobjekt 10 till blindinstruktionsraden 12 när de avslutats. Det är viktigt att nämnda hopp utförs till korrekt position i blindinstruktionsraden 12 så att exekveringsvägarna blir lika långa.
Fig. 6 avbildar en situation där alternativa exekveringsvägar skall synkroniseras med en samutnyttjad sekvens 7c. Länkaren flyttar en sekvens 73 i en väg som är kortare än den längsta exekveringsvägen och skriver in tillståndsbevarande operationer NOP före och efter den flyttade sekvensen 73. 10 15 20 25 521 753 8 Fig. 7 beskriver ett alternativ till förfarandet beskrivet med hänvisning till fig. 6.
Länkaren kan lägga till en blindinstruktionssekvens 14 på samma rad som, men före den samutnyttjade sekvensen 7c. Ett relokeringsobjekt 103 skrivs in för att göra så att den kortare exekveringsvägen hoppar till blindinstruktionssekvensen 14 innan den samutnyttjade sekvensen 7c påbörjas. Detta möjliggör en enklare programmering av processorn eftersom den exekveringsväg som är kortare än den längsta exekveringsvägen kan förlängas för att svara mot den senare helt enkelt genom att skriva in ett relokeringsobj ekt vid dess slut, vilket relokeringsobj ekt pekar på den definierade blindinstruktionssekvensen 14 eller, med hänvisning till fig. 5, blindinstruktionsraden 12.
Uppfinningen garanterar att paketprogrammet bibehåller sitt tillstånd till nästa motortillträdespunkt (EAP) även efter det att paketprogrammet har avslutats.
Länkaren kan använda en superrot (engelska: super root) med cn längd om noll instruktioner som roten för alla paketprogram, vilket gör grafoperationema enklare.
Såsom beskrivits möjliggör uppfinningen att sekvensema flyttas och de tillstånds- bevarande operationerna skrivs in på ett sådant sätt att sekvenser som är beroende av varandra synkroniseras.
Ovan har uppfinningen beskrivits under påpekande av dess användbarhet för en programkod för ett behandlingssystem med logisk rörledning, såsom en PISC- processor. Emellertid är uppfinningen lämpad för programkoder för vilka perma- nenta realtidsystein som helst, t.ex. i en traditionell processor, där exakt exekve- ringstid är kritisk.
Claims (10)
1. Förfarande för ett kommunikationsnät, omfattande stegen att - ta emot en programkod vilken omfattar en mångfald av instruktioner för koinmunikationsnåtet, - uppdela programkoden i ett flertal sekvenser (7), - definiera, baserat på programkoden, en mångfald av relokeringsobjekt (10), var och en motsvarande ett beroendeförhållande mellan två eller flera av sekvenser- na (7), och - allokera sekvenserna (7) till ett processorinstruktionsminne (4), - kännetecknat av stegen att - bilda minst en riktad graf, baserad på åtminstone några av sekvenserna (7) och åtminstone några av relokeringsobjekten (10), - bestämma en längsta exekveringsväg genom den riktade grafen, och - skriva in minst en tillståndsbevarande operation (NOP) i instruktionsminnet (4) för att göra minst två exekveringsvägar lika långa.
2. Förfarande enligt krav 1, omfattande steget att flytta minst en sekvens i instruk- tionsminnet (4).
3. Förfarande enligt krav 1 eller 2, vari längden hos de minst två exekveringsvågar- na motsvarar den längsta exekveringsvägen.
4. Förfarande enligt något av föregående krav, omfattande steget att fastställa existensen av någon cirkelreferens med något av relokeringsobjekten (10) mellan vilka som helst av sekvenserna (7).
5. Förfarande enligt något av föregående krav, omfattande steget att länka minst en sekvens som år erhållen genom steget att uppdela programkoden, till en sekvens som är erhållen genom uppdelning av en annan programkod. 10 15 20 25 521 753 í*§*5 10
6. Behandlingssystem för ett koinmunikationsnät, omfattande en assemblerare som är anordnad att ta emot en programkod som omfattar en mångfald av instruktioner för kommunikationsnätet, varvid assembleraren är anordnad att dela upp programkoden i ett flertal sekvenser (7), och definiera, baserat på programkoden, ett flertal relokeringsobj ekt (10), var och en motsvarande ett beroendeförhållande mellan två eller flera sekvenser (7), varjämte en länkare är anordnad att allokera sekvenserna (7) till ett processorinstruktionsminne (4), kännetecknat av att assembleraren är anordnad att bilda minst en riktad graf, baserat på åtminstone några av sekvenserna (7) och åtminstone några av relokeringsobjekten ( 10), att länkaren är anordnad att bestämina en längsta exekveringsväg genom den riktade grafen, och att länkaren är anordnad att skriva in minst en tillståndsbevarande operation (NOP) i instruktionsminnet (4), för att göra minst två exekveringsvägar lika långa.
7. Behandlingssystem enligt krav 6, varvid länkaren är anordnad att flytta minst en sekvens i instruktionsminnet (4).
8. Behandlingssystem enligt krav 6 eller 7, varvid längden för de åtminstone två exekveringsvägarna motsvarar den längsta exekveringsvägen.
9. Behandlingssystem enligt något av kraven 6 till 8, varvid länkaren är anordnad att fastställa existensen av någon cirkelreferens genom något av relokeringsobjekten (10) mellan vilka som helst av sekvenserna (7).
10. Behandlingssystem enligt något av kraven 6 till 9, varvid länkaren är anordnad att länka minst en sekvens, erhållen genom uppdelning av programkoden, med en sekvens, erhållen genom uppdelning av en annan programkod.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0200383A SE521753C2 (sv) | 2002-02-08 | 2002-02-08 | Förfarande och system för att uppfylla realtidskrav för en dataprocessor |
US10/500,708 US7661100B2 (en) | 2002-02-08 | 2003-02-06 | Method and system for determining total code execution time in a data processor |
AU2003206323A AU2003206323A1 (en) | 2002-02-08 | 2003-02-06 | A method and system for determining total code execution time in a data processor |
PCT/SE2003/000199 WO2003067431A1 (en) | 2002-02-08 | 2003-02-06 | A method and system for determining total code execution time in a data processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0200383A SE521753C2 (sv) | 2002-02-08 | 2002-02-08 | Förfarande och system för att uppfylla realtidskrav för en dataprocessor |
Publications (3)
Publication Number | Publication Date |
---|---|
SE0200383D0 SE0200383D0 (sv) | 2002-02-08 |
SE0200383L SE0200383L (sv) | 2003-08-09 |
SE521753C2 true SE521753C2 (sv) | 2003-12-02 |
Family
ID=20286913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE0200383A SE521753C2 (sv) | 2002-02-08 | 2002-02-08 | Förfarande och system för att uppfylla realtidskrav för en dataprocessor |
Country Status (4)
Country | Link |
---|---|
US (1) | US7661100B2 (sv) |
AU (1) | AU2003206323A1 (sv) |
SE (1) | SE521753C2 (sv) |
WO (1) | WO2003067431A1 (sv) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074201B2 (en) * | 2002-07-10 | 2011-12-06 | National Instruments Corporation | Deployment and execution of a program on an embedded device |
US7853932B2 (en) * | 2006-07-10 | 2010-12-14 | International Business Machines Corporation | System, method and computer program product for checking a software entity |
US20080016115A1 (en) * | 2006-07-17 | 2008-01-17 | Microsoft Corporation | Managing Networks Using Dependency Analysis |
US7640460B2 (en) | 2007-02-28 | 2009-12-29 | Microsoft Corporation | Detect user-perceived faults using packet traces in enterprise networks |
US8015139B2 (en) | 2007-03-06 | 2011-09-06 | Microsoft Corporation | Inferring candidates that are potentially responsible for user-perceptible network problems |
US8443074B2 (en) | 2007-03-06 | 2013-05-14 | Microsoft Corporation | Constructing an inference graph for a network |
JP2013109652A (ja) * | 2011-11-22 | 2013-06-06 | Le Tekku:Kk | コンパイラ、そのコンパイラによって作成されたプログラムモジュールの制御方法、及び、その制御方法を実現する制御装置 |
WO2013167973A2 (en) * | 2012-05-10 | 2013-11-14 | Marvell World Trade Ltd. | Hybrid dataflow processor |
US9525760B1 (en) | 2013-10-02 | 2016-12-20 | Marvell International Ltd. | Dynamic processing context |
WO2016110316A1 (en) * | 2015-01-05 | 2016-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for loading instructions in a processor |
CN116257244B (zh) * | 2022-09-06 | 2023-10-03 | 无锡芯享信息科技有限公司 | 一种用于芯片制造eap系统的流程代码转换系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497344A (en) * | 1989-01-26 | 1996-03-05 | Sharp Kabushiki Kaisha | Data flow type information processor |
EP0416767A3 (en) * | 1989-09-08 | 1992-04-29 | Digital Equipment Corporation | Position independent code location system |
EP0423989A3 (en) * | 1989-10-16 | 1992-09-23 | Hewlett-Packard Company | Software compiler and linker with improved line number table |
WO1991019244A1 (en) * | 1990-06-04 | 1991-12-12 | 3Com Corporation | Method for optimizing software for any one of a plurality of variant architectures |
US5251205A (en) * | 1990-09-04 | 1993-10-05 | Digital Equipment Corporation | Multiple protocol routing |
IL95996A0 (en) | 1990-10-15 | 1991-07-18 | Ibm Israel | Global instruction scheduler for a computer |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
JP2710548B2 (ja) * | 1993-03-17 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法 |
US5566170A (en) * | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
EP0953898A3 (en) * | 1998-04-28 | 2003-03-26 | Matsushita Electric Industrial Co., Ltd. | A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor |
US6493342B1 (en) * | 1998-09-11 | 2002-12-10 | Teledesic Llc | Method of data transmission in a data communication network |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6985454B1 (en) * | 1999-01-26 | 2006-01-10 | Globalstar L.P. | ISP system using non-geosynchronous orbit satellites |
US7009967B1 (en) * | 1999-08-07 | 2006-03-07 | Shrikumar Hariharasubrahmanian | Systems and methods for transmitting data packets |
EP1089475A1 (en) * | 1999-09-28 | 2001-04-04 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Converter and method for converting an input packet stream containing data with plural transmission rates into an output data symbol stream |
JP3780776B2 (ja) * | 1999-10-15 | 2006-05-31 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US6980566B2 (en) * | 2000-03-10 | 2005-12-27 | Lightwaves Systems, Inc. | Method for routing data packets using an IP address based in GEO position |
US6633927B1 (en) * | 1999-12-29 | 2003-10-14 | Intel Corporation | Device and method to minimize data latency and maximize data throughput using multiple data valid signals |
US6909709B2 (en) * | 2000-06-13 | 2005-06-21 | Altigen Communications, Inc. | Packetized communications apparatus and method |
US20030187761A1 (en) * | 2001-01-17 | 2003-10-02 | Olsen Richard M. | Method and system for storing and processing high-frequency data |
CA2381471A1 (en) * | 2001-05-07 | 2002-11-07 | Andreas Wagner | System and method for reconstructing pathways in large genetic networks from genetic perturbations |
US7386525B2 (en) * | 2001-09-21 | 2008-06-10 | Stonesoft Corporation | Data packet filtering |
US7007161B2 (en) * | 2002-01-08 | 2006-02-28 | Agile Tv Corporation | Fast booting of plex array |
-
2002
- 2002-02-08 SE SE0200383A patent/SE521753C2/sv not_active IP Right Cessation
-
2003
- 2003-02-06 US US10/500,708 patent/US7661100B2/en not_active Expired - Fee Related
- 2003-02-06 WO PCT/SE2003/000199 patent/WO2003067431A1/en not_active Application Discontinuation
- 2003-02-06 AU AU2003206323A patent/AU2003206323A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
SE0200383D0 (sv) | 2002-02-08 |
US20050166202A1 (en) | 2005-07-28 |
US7661100B2 (en) | 2010-02-09 |
SE0200383L (sv) | 2003-08-09 |
WO2003067431A1 (en) | 2003-08-14 |
AU2003206323A1 (en) | 2003-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
US4435758A (en) | Method for conditional branch execution in SIMD vector processors | |
JP4957729B2 (ja) | プログラム並列化方法、プログラム並列化装置及びプログラム | |
US8434074B2 (en) | Register allocation with SIMD architecture using write masks | |
CN103348318B (zh) | 控制依赖于相同数据条件的相邻指令的执行 | |
EP3106982B1 (en) | Determination of branch convergence in a sequence of program instructions | |
US9582321B2 (en) | System and method of data processing | |
CN101268444A (zh) | 用于多处理器上流媒体应用的数据转换 | |
SE521753C2 (sv) | Förfarande och system för att uppfylla realtidskrav för en dataprocessor | |
JPH0475139A (ja) | ループ並列化装置 | |
JPH08507889A (ja) | スーパースカラマイクロプロセッサ用のプログラムから並行的に処理可能な命令グループを機械的に生成する方法 | |
US11720332B2 (en) | Compiling a program from a graph | |
JP2009163624A (ja) | プロセッサ装置及び条件分岐処理方法 | |
KR20180137521A (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
JP4892022B2 (ja) | コンパイル装置およびコンパイルプログラム | |
US7617494B2 (en) | Process for running programs with selectable instruction length processors and corresponding processor system | |
CN101320324A (zh) | 处理机装置及复合条件处理方法 | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
US10338926B2 (en) | Processor with conditional instructions | |
JP2007164504A (ja) | ストリームデータ処理方法およびストリームデータ処理装置 | |
JP2020527797A (ja) | データ処理装置におけるベクトル・インタリーブ | |
US10475151B2 (en) | Graphics engine resource management and allocation system | |
JPH04293150A (ja) | コンパイル方法 | |
JPS6389932A (ja) | デ−タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |