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 dataprocessor

Info

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
Application number
SE0200383A
Other languages
English (en)
Other versions
SE0200383D0 (sv
SE0200383L (sv
Inventor
Peter Gerell
Thomas Stroemqvist
Original Assignee
Xelerated Ab
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 Xelerated Ab filed Critical Xelerated Ab
Priority to SE0200383A priority Critical patent/SE521753C2/sv
Publication of SE0200383D0 publication Critical patent/SE0200383D0/sv
Priority to US10/500,708 priority patent/US7661100B2/en
Priority to AU2003206323A priority patent/AU2003206323A1/en
Priority to PCT/SE2003/000199 priority patent/WO2003067431A1/en
Publication of SE0200383L publication Critical patent/SE0200383L/sv
Publication of SE521753C2 publication Critical patent/SE521753C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/457Communication

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)

10 15 20 25 521 rss 1; /01 Patentkrav (ändrade)
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.
SE0200383A 2002-02-08 2002-02-08 Förfarande och system för att uppfylla realtidskrav för en dataprocessor SE521753C2 (sv)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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