SE516171C2 - Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde - Google Patents
Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflödeInfo
- Publication number
- SE516171C2 SE516171C2 SE9902752A SE9902752A SE516171C2 SE 516171 C2 SE516171 C2 SE 516171C2 SE 9902752 A SE9902752 A SE 9902752A SE 9902752 A SE9902752 A SE 9902752A SE 516171 C2 SE516171 C2 SE 516171C2
- Authority
- SE
- Sweden
- Prior art keywords
- values
- instruction
- processor architecture
- data
- parameter
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/312—List processing, e.g. LISP programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
Description
15 20 25 30 516 171 2 tionen. Funktionella programspråk har flera egenskaper som mildrar några av nack- delarna med de mera konventionella programspråken.
För ytterligare information och förståelse hänvisas till läroboken ”Functional Pro- gramming Using Standard ML”, Åke Wikström, Prentice Hall 1987.
Ett program som är skrivet i ett fimktionellt språk kan ses som en uppsättning defi- nitioner av egenskaper hos objekt och som beräkningsregler. Definitionema är den förkunnande delen och beräkningsreglema är den operativa delen som datom an- vänder under exekvering. Funktionella språk ger en högre gränssnittsnivå för datom som gör det möjligt för programmeraren att bortse från härdvarurelaterade detalj er i datom. Som en positiv sidoeffekt är funktionella program ofta kortare och lättare att förstå än konventionella ímperativa program.
Nuförtiden implementeras funktionella språk som en virtuell dator på en konventio- nell processor. Detta har gjorts med kompilatorer eller interpretativa program. Detta innebär att ett program exekveras som interpreterar programinstruktionema. Varje programinstruktion resulterar i att ett antal maskininstruktioner exekveras. Exekve- ringen kommer därför att vara långsam.
Det är uppenbart att några av fördelama med den funktionella programinfallsvinkeln har hej dats av det faktum att praktiskt taget ingen användbar dedicerad hårdvara har fimnits på marknaden för processen att lagra och exekvera funktionella program på ett effektivt sätt. Några processorer, anpassade att exekvera funktionella program- språk, s.k. FFP-maskiner, diskuteras i läroboken ”High-level Language Computer Architecture” (ISBN O,88175-1342-4) från 1988, kapitlen 11 och 12, och har kon- struerats och tillverkats från tid till annan. Dedicerade Lisp-arbetsstationer offerera- des exempelvis fram till mitten av åttiotalet. En transputer från Inmos Ltd, som är en processor för inbyggda system, introducerades i mitten av åttiotalet och finns fortfa- rande på marknaden. 10 15 20 25 30 516 171 3 En särskild typ av fimktionellt språk är Erlang, som utvecklades av sökanden for realtidstillämpningar. Trots nackdelen att funktionella program är långsamma att exekvera på von Neumann-typen av dator, mycket långsammare än imperativa språk, ökar användningen för Erlang. Dock är kapaciteten för datorer som har in- stallerat Erlang inte tillräcklig for vissa tillämpningar. Erlang-program är byggda som ett antal kommunicerande processer, även benämnda processer. En omkoppling görs ofta mellan exekvering mellan olika processer. Denna omkoppling är inpro- duktiv och bör göras så snabbt som möjligt. För dagen göres detta i mjukvara, i ett s.k. ”exekverbart system”.
Emedan dataprogram som är skrivna i funktionella språk, såsom Erlang, anordnade på konventionella datorer, år mycket effektforbrukande, alltför mycket för en mängd tillämpningar, finns ett behov fór tillhandahållande av en hårdvara som har en låg effektdissipation. Låg effektdissipation är väsentlig i de flesta produkter. Kravet på låg effektdissipation kommer att i framtiden öka. Hög effektdissipation hindrar vi- dare förbättringar med avseende på processorhastighet.
SAMMANFATTNING UPPFINNINGENS SYFTE Ett syfte med uppfinningen är att tillhandahålla en mikroprocessor som är inrättad att exekvera program eller åtminstone delar av program skrivna i ett språk som har ett sekventiellt instruktionsflöde, exempelvis i Erlang.
Ett annat syfte med uppfinningen är att tillhandahålla en hjälpprocessor som exe- kverar ett funktionellt språk i ett realtidsoperativt system. En eller flera hjälpproces- sorer av denna typ skall kunna hantera processer som kräver stor kapacitet.
Ytterligare ett annat syfte med uppfinningen är att tillhandahålla en processor, spe- ciellt dedicerad för Erlang. 10 15 20 25 30 516 171 4 Ytterligare ett annat syfte med uppfinningen är att tillhandahålla en processor inrät- tad för ett funktionellt språk i en trådlöst portabel utrustning. Processorer i trådlös portabel utrustning är försedda med ett mjukvaruinnehåll (SW) som ofta behöver ändras. I ett sådant fall kan en processor, inrättad att hantera ett fimktionellt språk, såsom Erlang, ge en stor fördel.
Ytterligare ett annat syfte med uppflnningen är att tillhandahålla en processor inrät- tad fór ett fiinktionellt språk som har färre minnestillgångar än vad som är vanligt i dag. Detta innebär ett behov fór en hög instruktionsdensitet.
Ett annat syfte med uppfinningen är att tillhandahålla en anordning som kan hantera mycken funktionalitet implementerad i mjukvara och som har en låg eller rimligt låg dissipation, alltså för att tillhandahålla en stor mängd funktionalitet med en låg ef- fektförbrukning.
Ytterligare ett annat syfte med uppflnningen år att tillhandahålla dedicerad hårdva- rusupport for skräpminnessamling och utföra omkoppling i processorn for att for- bättra exekveringprestanda och lägre effektdissipation. Sådana mekanismer imple- menteras vanligen i ett ”exekverbart system” i mjukvara.
UPPFINNINGEN Uppfinningen hänför sig till en processorarkitektur, anpassad för ett programspråk som arbetar med ett sekventiellt instruktionsflöde och hanterar data genom utnytt- jande av listor eller enkla typer, och innefattande ett instruktionshållande organ, ett dataminnesorgan som lagrar dataobjekt samt exekveringsorgan. Ovan nämnda syfte 10 15 20 25 30 516 171 5 kan lösas genom att tillhandahålla medel för att hantera enkla värden och referenser till dataobjekt i beroende av en aktuell instruktion från det instruktionshållande or- ganet, vilket beroende kallas för en bindning, och organ för att inkrementera refe- rensräkningar till ett dataobj ekt och för att dekrementera referensräkningar till ett dataobjekt i beroende av en aktuell instruktion från det instruktionshållande organet, och i beroende av det medel, som hanterar enkla värden och referenser, lagrar en re- ferens av nämnda dataobj ekt.
Lagringsorgan kan tillhandahållas i medlet för att hantera temporär lagring av data och för att hålla ett öga på bindningar till nämnda temporära lagring. När det över- vakande organet detekterar generering av en nollreferens till ett objekt, innebärande att detta objekt inte längre behövs, gör det lämpligen minnesluckan för detta objekt tillgänglig som en fri minneslucka. Medlet för att hantera temporär lagring av data innefattar lämpligen ett parameterrninnesorgan som har medel för att hålla ett öga på bindningama på de lagrade värdena och som har medel för att lagra nämnda data- värden.
Värdelagringsorgan kan lagra värden och skriva information för värdena matade till parameterminnet. Dessa värden, som är en del av dataobjekten, har då bindningar till parametrarna. Parametenninnet kommer sedan att överföra värden mellan funk- tioner utnyttjande parametrarna och utnyttjande parametrarna för temporär lagring.
Parameterminnet kan ersätta parameterreferenserna i upphämtade instruktioner från instruktionsminnesorganet med lagrade aktuella värden före beräkning. I parame- terrninnet kan tillhandahållas organ för att lagra och leda milj öinformation för pa- rametrarna, när miljön fastställer vilka parametrar som för närvarande är giltiga pa- rametrar. Organ kan tillhandahållas i parameterrninnet för att lagra och leda infor- mation för parametrar och miljöer, när processinfonnation matad till parameterrnin- net används för att fastställa vilka miljöer och vilka parametrar som för närvarande är giltiga. 10 15 20 25 30 516 171 6 Ett processidentifieringsregister kan tillhandahållas för att identifiera den för närva- rande exekverade processen och ett milj öidentifieringsregister för att identifiera den för närvarande exekverade miljön. Åtminstone toppen av åtminstone en prioritetskö av processer som skall exekveras hålls lämpligen tillgänglig för läsning. Åtminstone del av processidentifieraren för nästfölj ande process som skall exekveras hålls sedan tillgänglig för läsning i parameterminnesorganet. För att göra en processomkopp- ling: 0 en ny miljö skapas i parameterminnet, och åtminstone programräknaren lagras i nämnda nya miljö, 0 det nya milj övärdet lagras i processidentifieraren för den aktuella processen, varvid processidentifieraren kan lagras i dataminnet, 0 milj övärdet för den nya processen återlagras, 0 den nya processen ställs in att vara den aktuella processen, 0 åtminstone programräknaren återlagras.
Instruktionerna tillhandahålles lämpligen med enbart ett instruktionsfonnat, varvid varje instruktion är sammansatt av ett distinkt antal subinstruktioner. Varje subin- struktion har i sin tur samma och endast ett instruktionsformat innefattande en första del och en andra del varvid den första delen fastställer den åtgärd som skall vidtas och den andra delen tillhandahåller ett värde för utnyttjande i åtgärden.
Uppfinningen kan anpassas att exekvera funktionella språk. Då skapas en uppsätt- ning instruktioner innefattande dedicerade instruktioner för funktionsanrop, funk- tionsåtergångar, parameteröverföring mellan funktioner. Sedan kan också en upp- sättning instruktioner skapas som innefattar dedicerade instruktioner för inkremente- ring och dekrementering av minnesreferenser. Processörarkitekturen som anvisas här ovan kan anpassas att utföra delar av datorprogram skrivna i ett funktionellt språk.
FÖRDELAR 10 15 20 25 30 516 171 7 Processorarkitekturen är konstruerad att fungera särskilt bra i följande fall: 0 ”Funktionell tillämpning” som utgör kontrollstrukturen i ett funktionellt språk. 0 Processomkoppling, här nedan benämnd kontextomkoppling (andra uttryck för processer är uppgifter eller länkar. Uttrycket process(er) kommer att användas i den kvarvarande delen av texten ehuru det inses att uppgifter eller länkar också skulle kunna användas). Normalt implementeras telekomtillämpningar med ut- nyttjande av ett stort antal processer. Det är väsentligt att snabbt kunna koppla om mellan dessa processer för att ej förlora prestanda. 0 Meddelande som passerar mellan processer. 0 Minnesadministrering, inkluderande skräprninnessamling.
Funktionella språk lämnar minnesadministreringen till det exekverbara systemet.
Att hantera minnet stjäl tid från processom och betraktas allmänt som ett problem.
Vid utnyttjande av uppfinningen, tillhandahållen med exempelvis Erlang, görs detta i processom genom en dedicerad enhet och kommer i mycket liten grad i kollision med den nyttiga beräkningen.
Processom enligt uppfinningen exekverar instruktionerna på ett RISC-liknande sätt, dvs. i ett sekventiellt instruktionsflöde som är lätt att rörleda. Processom enligt upp- finningen är således ingen förrninskningsmaskin men har en enkel kombinatorisk instruktionsavkodning, effektiv exekvering för funktionsanrop, support för skapande och hantering av listor, support för snabbt kontextomkoppling och hög koddensitet.
Detta håller effektdissipationen på en låg och ekonomisk nivå och undviker behovet av dyrbara kylsystem.
KORT BESKRIVNING AV RITNINGARNA För en mera komplett förståelse av föreliggande uppfinning och för ytterligare syf- ten och fördelar med densamma hänvisas nu till följ ande beskrivning i anslutning till bifogade ritningar, där: 10 15 20 25 30 516 171 8 F ig. l visar ett första utförande av en dedicerad processorarkitektur för att hantera funktionella språk som arbetar med ett sekventiellt instruktionsflöde, såsom Erlang.
Fig. 2 visar ett föredraget utförande av en instruktionsrörledning.
Fig. 3 visar ett utförande av den inre strukturen av parameterminnet som ingår i pro- cessorn enligt uppfinningen.
Fig. 4 visar hierarkin i specifikationen för parametrarna lagrade i parameterminnet.
DETALJERAD BESKRIVNING AV UTFÖRANDE Instruktionsuppsättningens arkitektur (ISA) i processorn enligt uppfinningen är kon- struerad att vara kompakt och effektiv för exekvering av funktionella språk och sär- skilt för Erlang. Konceptet enligt uppfinningen är dock också anpassbart till några andra typer av språk än funktionella. Några konstruktionsmål för ISA identifieras här nedan: 0 Exekvering på ett RISC-liknande sätt, dvs. ett sekventiellt instruktionsflöde lätt att rörleda. 0 Enkel instruktionsavkodning. 0 Effektiv exekvering för fimktionella samtal. 0 Support för snabb kontextomkoppling. 0 Hög koddensitet. 0 Stöd för skräpminnesinsamling för listor och liknande.
Företrädesvis finns det bara ett instruktionsformat. Varje instruktion är lämpligen sammansatt av ett distinkt antal subinstruktioner, t.ex. tre, varvid vardera har samma format. Det första subinstruktionsforrnatet innefattar en första del, som fastställer den åtgärd som skall tas, och en andra del som tillhandahåller ett värde som används vid den åtgärd som tagits. Den första subinstruktionen kan fastställa översättningen av hela instruktionen eller kan medge andra subinstruktioner att instruera samtidiga oberoende åtgärder på ett mycket långt instruktionsord (VLIW)-sätt. 10 15 20 25 30 516 171 9 Nu hänvisas till fig. 1 som visar en utföringsform av huvudarkitekturen för proces- som enligt uppfinningen som utför de ovan angivna särdragen. Programmet för pro- cessorn är skrivet i ett instruktionsminne 2. Programmet stegras framåt genom en programräknare 1 som tillhandahåller en adress till instruktionsminnet 2.
Såsom visas i fig. 2 är processorarkitekturen i detta utförande i princip en fyrstegs- rörledning, innefattande stegen hämta IF, instruktionsavkodning ID, parametennin- nesacccess PMA och exekvera EX såsom närmare beskrivs längre fram. Emedan lagringar kan rörledas kan också ett femte lagringssteg betraktas som del av rörled- ningen. Åter till fig. 1 pekas den instruktions som skall hämtas ut av programräknaren 1.
Den hämtas från instruktionsminnet 2 av instruktionshämtningsmekanismen IF.
Programräknaren är därför förbunden med instruktionsminnet 2 och matar en adress till minnet. Minnet skickar sedan tillbaka den utpekade instruktionen genom adres- Sen.
Den upphämtade instruktionen lagras i minnet 2 i kodad form, dvs. i en form kom- pilerad in i processoms maskinkod, och matas sedan till en instruktionsavkodare 3 som gör instruktionsavkodningen ID. Villkorslösa grenar detekteras under avkod- ningssteget. Avkodaren 3 överför instruktionen till ett antal styrsignaler som funge- rar som styrord.
Den avkodade instruktionen överföres sedan till ett parameterminnes-4-steg, för pa- rameterminnesaccessen PMA. Detta parameterminne 4 är ett hårdvarumedel av ett särskilt slag tillhandahållet för denna uppfinning. Inom detta steg kommer parame- terreferenser i den avkodade instruktioner att ersättas av deras motsvarande aktuella värden som är lagrade i parametenninnet 4 vilket kommer att framgå här nedan i samband med fig. 3. 10 15 20 25 30 516 171 10 Processorn arbetar således inte med register eller stackar. Den arbetar istället med parametrar. Parametrama är temporärt bindningar till värden som är temporärt lag- rade i processorns parametenninne 4. Parametrama allokeras enligt behov och fri- görs vid slutförande av funktionstillämpning eller på bestämd instruktion att vara så.
Parametrama görs åtkomliga enligt kontext. Det maximala antalet parametrar be- gränsas inte av arkitekturen utan beror av specialiserad processorrealisering. Detta ger bra och effektivt stöd för hantering av fiinktionsargument och lokala variab- ler/bindningar.
Parametrar är således en central del i instruktionsuppsättningen för processoms en- ligt uppfinningen arkitektur, såsom återges här nedan. Parametrar används for funk- tionsargument och lokala bindningar gjorda inom en funktionskropp och för argu- mentöverforing vid funktionsanrop.
Parameterminnet 4 är konstruerat att tillhandahålla en snabb instruktionsexekvering och lagra aktuella bindningar, t.ex. funktionsparametrar och lokala variabler. Detta innebär att parameteröverföring, lokala bindningar och funktionsresultat inte går ge- nom huvuddataminnet 5 och istället genom det snabba parameterminnet 4.
Inom detta parameterrninnessteg kommer vissa avkodade instruktioner att skapa nya parameterbindningar genom att lagra aktuella värden i parameterminnet 4 och skapa parameterbindningar till dessa värden. Lagrade värden kan tillhandahållas från den avkodade instruktionen eller kan tillhandahållas från ett register eller kan hämtas upp från ett dataminne 5. Flera operationer av endera slaget av lagra och ersätta kan göras under varje klockcykel.
Under parameterminnets accessteg ersätts parameterbindningar i en instruktion av verkliga värden. Parameterminnet 4 kan lämpligen understödja åtminstone två såda- na ersättningar per klockcykel. Efter parameterminnessteget har parameterbindning- ar i en instruktion ersatts av aktuella värden där de aktuella värdena hämtas upp från parametenninnet. 10 15 20 25 30 516 171 11 Dataminneshanteraren 6 för register över adresserna i dataminnet 5 emedan i fiank- tionella språk, såsom Erlang, arbetar programmet inte med adresser och pekare som i imperativa språk. Sådana funktioner är gömda i en s.k. exekveringsprocedur vilket innebär att dataminneshanteraren 6 behöver fastställa och föra register för adresser för de särskilda register som innefattar data för processer lagrade i dataminnet 5.
Adresser för lagrad data skickas tillbaka till exekveringsenheten 7.
Parametenninnet 4 matar ersatta instruktionsdata och kodord till exekveringsenhe- ten 7, vilken exekverar instruktionen. Parametenninnet 4 innefattar också ett register i vilket åtminstone aktuell identitet, id, för en process lagras, såsom diskuteras vida- re i anslutning till fig. 3.
Parametenninnet 4 är i verkligheten den enhet som läser registren i dataminnet 5 under det att en exekveringsenhet 7, ansluten till parametenninnet 4, är den enhet som skriver in data i registren. Dataminneshanteraren 6 är förbunden att samverka med såväl parameterminnet 4 som exekveringsenheten 7.
I likhet med språket Erlang är processorarkitekturen baserad på processer. Ett första dedicerat register i parameterminnet innehåller aktuell process-id, cpr. Ett andra de- dicerat register innehåller aktuell milj öidentitet, env. En miljö innebär en instruk- tionssekvens inom vilken vissa parameterreferenser är giltiga, t.ex. ramen för värde- bindningar.
Den föredragna strukturen för parameterrninnet 4 illustreras i fig. 3. Den innefattar en processlagringsplan 10 i vilken den aktuella processen, process-info, lagras, en milj ölagringsplan ll i vilken information om milj öema, milj ö-info, för processen är lagrad.
Ehuru inte direkt synliga i instruktionsuppsättningen används processer för att hålla redan på processer (eller uppgifter eller länkar) i högnivåspråket exekverat på pro- 10 15 20 25 30 516 171 12 cessorn. Det finns en överensstämmelse mellan en Erlang-process och en process i processorn. En framkallad instruktion skapar en ny process, initierar dess miljö och associerar den med dess processidentifierare. En annan instruktion skjuter en pro- cess till en processkö. En annan instruktion kopplar bort den aktuella processen och kopplar in den forsta processen i processkön för att bli den nya, aktuella processen. Åtminstone följande information lagras i processidentifieraren: 0 Pekare på första meddelande. 0 Pekare på sista meddelande. 0 Aktuell miljö (om ej exekverande). 0 Annan blandad information, såsom en lista av länkade processer.
Arkitekturen baseras också på miljökonceptet. En miljö (env) definierar de aktuella bindningama i parametenninnet 4. Miljöer används för att hålla reda på parameter- omfattningen. En ny milj ö, env, skapas i början av ett funktionsanrop och blir den aktuella miljön. Parameterbanden i ett funktionsanrop binds i den nya miljön. Vid en funktionsåtergång avslutas den aktuella miljön och miljön för anropsfianktion återlagras som den aktuella miljön, dvs. den aktuella miljön ersätts med tidigare miljö. Alla parameterbindningar i den ersatta miljön rensas vid funktionsåtergång.
Såsom illustreras i fig. 4 är en parameter giltig endast inom dess miljö. På liknande sätt är en miljö giltig endast inom dess process.
När det således tillhandahålles en instruktion som gör ett funktionsanrop så stegas env upp med 1. När en instruktion kommer, vilken indikerar ett hopp tillbaka så ste- gas env ned med l.
Parametenninnet 4 har också en lagringsplan 12, exempelvis innefattande ett regis- ter crp, som innehåller processidentitet för ett visst parametervärde och typ lagrat i plan 13. Som återges i fig. 3, sökning efter parametem id, verklig miljö env och verklig process överföres till värdelagringen 13. 10 15 20 25 30 516 171 13 Parameterminnet 4 kan utföra ett antal åtgärder. Exempel på dessa åtgärder och de- ras motsvarande resultat och krävda inmatningar anges här nedan.
Läs: Parameterrninnet 4 skickar tillbaka typen och värdet, lagrade i värdelagrings- planet 13 för den specificerade parametem. Information om parametern id, verklig miljö och verklig process tillhandahålles för lagringsplanen 10, 11 och 12 i para- meterminnet 4.
Pop: Parameterminnet 4 återsänder värdet + typen (lagrade i lagringsplan 13) för den specificerade parametem. Därutöver eliminerar den parametern och dess värde från parameterminnet 4. Infonnation om parameterns id, verklig miljö och verklig process tillhandahålles för lagringsplanen 10, 11 och 12 i parameterminnet 4.
Set: Parameterminnet 4 lagrar en ny parameter med en specificerad id (i typ- och värdelagringsplanet 13). Inforrnation om parametems id, verklig miljö, verklig pro- cess och parametervärde tillhandahålles planen 12, 11 och 10 i parametenninnet 4.
Garb: Parameterminnet eliminerar parametem och dess värde från planen 10-13 i minnet. Inforrnation om parametems id, verklig miljö och verklig process tillhanda- hålles parameterminnet 4.
Garb env: Parametenninnet eliminerar alla parametrar och deras värden från planen 10-13 för det specificerade miljövärdet, infonnation om miljön och den verkliga processen ges till parameterminnet 4.
En läsoperation skulle, exempelvis, arbeta på följande sätt. De tre lagringsplan 10, 11, 12 i fig. 3 som ligger längst till vänster utför en associativ sökning. Den linje som ger träffar i de tre lagringsplanen väljer värdet + typen data lagrad för denna linje i det högra lagringsplanet 13 i fig. 3. 10 15 20 25 30 516 171 14 Funktionen är den liknande för lagring förutom att värdet + typen data lagras istället för läses. Garb- och pop-operationema kasserar informationen i den adresserade po- sitionen och gör den fri att använda.
Parameterrninnet 4 är således använt för att lagra värden och typinforrnation för des- sa värden. Parametrama är bundna till värdena när parametrarna används för att överföra värden mellan funktionen och används för temporär lagring. Parameter- minnet 4 kan ersätta parameterreferenser i upphämtade instruktioner med lagrade verkliga värden före beräkning.
Sökning i filema skulle kunna göras i någon typ av associativ process. Men sök- ningen skulle också kunna implementeras på något annat sätt liksom exempelvis att använda kompromissadresser genom exempelvis process och env. Det är också möjligt att förbinda processlagringen med ett associativt minne och milj ölagringen ll. Då matas parameterreferensen till parametenninnet och gör en sökning. Ett vär- de matas ut.
Parameterrninnet 4 kan även administrera milj öinformation för parametrama när miljön fastställer vilka av de lagrade parametrarna som är de aktuella, giltiga para- metrarna.
Parameterrninnet 4 skulle även kunna administrera processinformation för paramet- rarna och miljöema när processinforrnationen fastställer vilka av de lagrade miljöer- na, som är de för närvarande giltiga milj öema, och vilka av de lagrade parametrama som är de för närvarande giltiga parametrama.
Detta innebär att parametrar används istället för register eller stackar. Detta leder fram till en mera effektiv hantering av funktionsanrop och lokala bindningar. En kontextberoende mekanism användes för att adressera parametrama. Detta gör in- struktionsuppsättningens arkitektur som här beskrivits oberoende av mängden pa- rameterlagring i en särskild processorimplementering. 10 15 20 25 30 516 171 15 Åtminstone en processkö administreras av processorn. Flera köer kan administreras, exempelvis för olika prioritetsnivåer.
Emedan parameterrninnet 4 har ett begränsat antal parameterluckor kan det vara otillräckligt att hålla alla parametrar för ett stort program samtidigt.
Om parameterminnet 4 börjar komma fram till dess kapacitetsbegränsning börjar parametrar att lagras i dataminnet 5 och frigör således luckor i parameterrninnet 4.
Denna åtgärd benämnes byta ut parametrar. Den motsatta åtgärden, benämnd växla in parametrar, läser tidigare lagrade parametrar från dataminnet 5 och återlagrar dem i parameterminnet 4 med korrekt process, miljö och värden för parameter id.
Såväl inväxling som utbyte av parametrar sker automatiskt genom processorn utan att störa instruktionsexekveringen.
Toppen av processkön(köema) observeras. Om en process (PF) återfinns där som för närvarande ej finns i parameterminnet 4, blir parametrar för en process (som inte är den aktuella processen) i parameterrninnet 4 utväxlade och parametrar i de översta milj öema hos den funna processen (PF) införda i parameterrninnet.
En viss mekanism fastställer vilken process som skall ha dess parametrar utbytta. Så exempelvis skulle sist nyligen använda (LRU) kunna vara den strategi genom vilken bestäms vilken process som skall utväxlas.
Om för den aktuella processen antalet miljöer i parameterrninnet börjar nå dess maximala gräns startas en aktivitet fór att utväxla parametrar hos den lägsta miljön till dataminnet. På liknande sätt, om antalet miljöer i parameterminnet börjar nå dess undre gräns startas en aktivitet för att växla in parametrar hos den högsta miljön lag- rad i dataminnet (om någon). 10 15 20 25 516 171 16 Mekanismerna for att växla in och växla ut parametrarna säkerställer att de paramet- rar som är de mest sannolika lagras i parametenninnet 4.
Med avseende på minnesadministreringen kommer de minnesluckor i dataminnet 5 som ej används att organiseras som en lista över tillgängliga minnesregister. Ett be- stämt register (fritt) i dataminneshanteraren 6 pekar på det forsta elementet i den listan. Vid en begäran om lagring av ett element lagras detta element i den minnes- lucka utmärkt av det nämnda dedicerade registret (fritt). Registret (fritt) uppdateras sedan att peka på den nu aktuella, först tillgängliga minnespositionen, nedan be- nämnd minneslucka, som tidigare var den andra på listan. Vid frigörande av en an- vänd minneslucka placeras denna lucka i början av listan över tillgängliga minnes- luckor.
Som ovan nämnts hanterar Erlang data genom utnyttjande av tuples och listor och enkla typer. Dessa data anges genom bindningar. När ett dataobj ekt inte anges ge- nom en bindning behövs det inte längre och kan kastas bort. Dess minneslucka kan då användas for andra dataobjekt. Minnesluckor till vilka ingen hänvisning görs be- traktas således som fria att använda. Detta innebär att en automatisk skräpminnesin- samling kan betraktas såsom gjord. Notering om sådana minnesluckor görs och de frigörs på begäran.
Minnesadministrering understöds bra i denna arkitektur och genomförs enligt prin- cipen for referensräkning. Detta innebär att några subinstruktioner styr inkremente- rad referens och dekrementerad referens for dataobjekt. När en sådan subinstruktion exekveras kommer referensdelen av ett dataobj ekt att automatiskt antingen inkre- menteras eller dekrementeras av enheten för minnesadministreringen. Om en nollre- ferens skulle uppstå och detekteras görs dess minneslucka fri och tillgänglig som fri minneslucka fór användning för andra dataobj ekt. 10 15 20 25 30 516 171 17 Som ovan nämnts baseras arkitekturen för parametenninnet 4 på processer och det kommer ofta att vara ett behov att koppla om från en process till en annan process.
Då behöver följ ande operationer vidtas.
Vid en kontextomkoppling lagras den aktuella miljöidentiteten i en process (eller uppgift) identifierare utpekad av processregistret (cpr). Andra register kan, om så behövs vara lagrade i parametenninnet. När processen kopplas tillbaka kan register- värdena âterlagras från parametenninnet. Den enda access till dataminnet 5 som således behövs för att utföra en kontextomkoppling är att lagra och återlagra miljön.
För att göra en omkoppling: 0 Bind datavärden hos register i den aktuella arbetsuppsåttningen till parametrar och lagra dem i parametenninnet 4. Värdet för den aktuella miljön lagras i pro- cessidentifieraren för den aktuella processen. Env fungerar sedan som en nyckel för att peka ut var i parametenninnet 4 en läsning skall bölja vid återlagring. 0 Läs env och återlagra i parametenninnet 4 den nya ”arbetsuppsåttningen” för den nya processen till vilken omkoppling är gjord från processidentifieraren i data- minnet 5, innehållande miljön för denna nya process. 0 Återlagra programräknaren l till det värde närmast efter vad det var innan den aktuella omkopplade processen frånkopplades.
Följ er man detta schema minimeras tidsödande access till huvudminnet 4 och snabb kontextomkoppling uppnås.
Den arkitektoniska instruktionsuppsättningen skulle exempelvis kunna vara avsedd för exekvering av funktionella språk, understödj ande av språk med dedicerade in- struktioner för funktionella anrop, funktionsåterföringar, överföring av argument mellan funktioner och processadministrering. Det finns särskilda instruktioner för att skapa, läsa, skriva och hantera dataobjekt som uppkommer i Erlang, dvs. listor och enkla typer. 10 15 20 25 516 171 18 Exempel på instruktionsformat Instruktionx = subínstruktion, subínstruktion, subínstruktion subinstruktionx = etikett, värde där etikett specificerar hur värdet skall översättas. T.ex.: par, 5 innebär att parame- temummer 5 är specificerat. Detta uppvisar den logiska organisationen for instruk- tionerna. I en aktuell processor-implementering kan alla etiketter exempelvis vara sammangrupperade. Etiketten i den forsta subinstruktionen specificerar typiskt hur fulla instruktioner skall tolkas. Om exempelvis etikett i den forsta subinstruktionen specificerar en binär aritmetisk operation specificerar de två andra subinstruktioner- na operanda och värdet för den forsta subinstruktionen specificerar typen av arit- metisk operation.
Det kan finnas undantag från denna regel. Vissa av instruktionerna i den forsta min- nesluckan använder bara de två forsta subinstruktionerna i vilket fall den tredje luckan kan utnyttjas for en enstaka subinstruktion, dvs. det skulle kunna finnas en grupp oberoende subinstruktioner som bara fiingerar i den tredje luckan i en in- struktion. Några oberoende subinstruktioner kan också placeras i den andra luckan.
Exempel på etikett/värdekombinationer är: Etikett, värde =fun, fun-nummer (anropa funktion fun-nummer) l par, par-nummer (använd den specificerade parametem) l pop, register-nummer (gå tillbaka från aktuell funktion, leverera resultatet till det specificerade registret) l reg, register-nummer (använd värdet i register-numret) l alu, alu-operation (utfor operation som givits från alu-operation) l gar, par-nummer (frigör utrymmet som används av denna parameter) l etc. 10 15 20 25 30 516 171 19 Exempel Följ ande register kan användas i processorn: acc: lagrar resultat från alu-operationer, cpr: lagrar aktuell process-id, env: lagrar aktuell miljö, id: lagrar minnesadressen for sist lagrat element, res: innehåller ett resultatvärde vid återgång från en funktion, dO: innehåller ett dataelement. Dess delar kan adresseras genom dO1 , dO2, dO3, dO4, där dOI håller elementtypen värde, dO2 håller ett numeriskt värde, dO3 och dO4 håller pekare/heltalsvärden inkluderande värdetyp, free: lagrar den första fria minnesluckan.
Processom kan använda följande, ej adresserbara register: env-old: lagrar föregående miljö cnt: lagrar sist allokerat nummer.
Som ovan nämnts används parametrar för argumentöverforing vid funktionsanrop, och for lokala bindningar. När ett funktionsanrop exekveras listas argumenten i de andra och tredje subinstruktionerna i anropsinstruktionema. Argumenten får konse- kutiva nummer när de visas, startande den forsta subinstruktionen i en ny funktions- kropp.
En lokal bindning görs genom par- eller pad-instruktioner nämnda här nedan, t.ex. (pad:5, regsacc, **) t.ex. binder parametem 5 till värdet i registret acc i den aktu- ella miljön i den aktuella processen. * representerar godtyckligt element.
Det finns också särskilda instruktioner for att hantera referenser till data, dvs. att understödja språket med dedicerade instruktioner att inkrementera eller dekremente- ra antalet minnesreferenser till ett dataobjekt. 10 15 516 171 20 Erfarenheter från denna ISA (Instruction Set Architecture) har pekat på en väsentlig minskning av instruktioner för att åstadkomma en särskild funktionalitet. Detta be- tyder motsvarande färre antal minnesaccesser. Minnesaccesser kräver mycket effekt.
En reducering av dessa kommer därför att minska effektförbrukningen i systemet.
Ehuru uppfinningen är beskriven med avseende på exemplifierade utföringsformer så inses att modifieringar kan göras utan att frångå uppfinningens ram. Uppfinning- en skall således inte anses begränsad till de beskrivna utförandena utan enbart defi- nieras av de följ ande patentkraven som är avsedda att innesluta alla ekvivalenser.
Som ovan nämnts är parameterrninnet 4 baserat på processer. Därför kan denna typ av anordning tillhandahållas även för datorer som hanterar andra typer av språk som utnyttjar processer (eller uppgifter eller länkar) än funktionella språk, exempelvis C och C++. Kontextomkoppling tillhandahålles också i exempelvis språket ADA och de särdrag som beskrivs för kontextomkopplingen skulle också kunna vara giltiga för andra typer av språkhanteringskontextomkoppling. Dataadministrering av den typ som ovan beskrivs är också gjord i exempelvis det moderna språket Java och är därför giltigt även för sådana typer av språk.
Claims (14)
1. Processorarkitektur anpassad för ett programspråk som arbetar med ett sekventiellt instruktionsflöde och hanterar data genom användning av enkla värden och listor och dynamiskt allokerade grupperingar, samt innefattande ett instruktionshållande organ (2,3), ett data minnesorgan (5), som lagrar dataobjekt, samt exekveringsorgan (7), kännetecknad av medel (4,5,6) for att hantera enkla värden och referenser till dataobj ekt i beroende av en aktuell instruktion från det instruktionshållande organet (2, 3), vilket beroende kallas for en bindning; organ (6) for att inkrementera referensräkningar till ett dataobj ekt och fór att dekrementera referensräkningar till ett dataobj ekt i beroende av en aktuell instruktion från det instruktionshållande organet (2,3), och i beroende av det medel (4,5), som hanterar enkla värden och referenser, lagrar en referens av nämnda dataobjekt.
2. Processorarkitektur enligt krav 1, kännetecknad av organ (4) for att hantera lagring av värden och referenser till dataobj ekt i organet (6), vilka lagrade värden och referenser är hänförda till medelst identifierare från instruktioner från det instruktionshållande organet (2,3); och av lagringsorgan (13) i organet (4) for hantering av lagring av enkla data och referenser till dataobj ekt.
3. Processorarkitektur enligt krav 1 eller 2, kännetecknad av att organet (4) fór att hantera lagring av värden innefattar ett parameterminnesorgan (4), som har medel (10,1 1,12) for att varsla om bindningarna till de lagrade värdena och som har lagringsorgan (13) fór att lagra värdena.
4. Processorarkitektur enligt krav 3, kännetecknad av att lagringsorganet (13) i organet (4) för att hantera temporär lagring av värden lagrar värden, vilka innefattar åtminstone typinformation och värdesinformation. 10 15 20 25 30 5192171
5. . Processorarkitektur enligt krav 4, kännetecknad av att parameterrninnesorganet (4) används för att överföra och lagra funktionsargument, så att argumentvärden lagras i parameterminnesorganet (4) i beroende av en aktuell instruktion från det instruktionshållande organet (2,3), då bundna till vissa identifierare i instruktionerna; samt att datavärdena är anordnade att läsas från parameterminnesorganet (4) i beroende av identifierarna i en aktuell instruktion.
6. . Processorarkitektur enligt något av kraven 3-5, kännetecknad av organ (11) i parameterminnesorganet (4) för att lagra och administrera milj öinforrnation för de lagrade värdena, varvid milj öinformationen fastställer vilka parametrar som för närvarande är giltiga och passande att läsas ut från lagringsorganet (13).
7. . Processorarkitektur enligt ett av kraven 3-6, kännetecknad av medel (10-13) i parameterrninnesorganet (4) för att lagra och administrera information för miljöer och värden, där nämnda medel används för att lagra och administrera infonnation för miljö och datavärden, där processinformationen bestämmer vilka miljöer och värden, som for närvarande gäller och är passande att läsas ut från lagringsorganet (13).
8. . Processorarkitektur enligt något av kraven 3 - 5, kännetecknad av ett processidentifikationsregister (PROCESS 1; PROCESS 2) för att identifiera den process, som for närvarande exekveras; ett milj öidentifikationsregister (ENV 1, ENV 2) för att identifiera den för närvarande rådande miljön (fig. 4).
9. . Processorarkitektur enligt ett av kraven 3-8, kännetecknad av att åtminstone toppen av minst en prioritetskö av processer, som skall exekveras, hålls tillgänglig for läsning; och att åtminstone del av processidentifieraren för den process som härnäst skall exekveras hålls tillgänglig för läsning. 10 20 25 30 516 171 23
10. Processorarkitektur enligt krav 9, kännetecknad av för att göra en
11. processomkoppling medlet (4,5,6) för att hantera värden och referenser: skapar en ny miljö och åtminstone programräknaren är lagrad i parameterminnesorganet (4) under användning av denna nya miljö, lagrar nämnda nya miljövärde i processidentifieraren för den aktuella processen varvid processidentifieraren kan lagras i minnesorganet (5) för dataobjekt, återlagrar miljövärdet för processomkopplingen från processidentifieraren för processen, ställer processomkopplingen att vara den aktuella processen, läser åtminstone programräknaren från parametenninnesorganet (4) och utför återlagring. Processorarkitektur enligt ett av föregående krav, kännetecknad av instruktioner som bara har ett instruktionsfonnat, där varje instruktion är sammansatt av ett distinkt antal subinstruktioner, som vardera i sin tur har samma och endast ett instruktionsformat, innefattande en första del, som fastställer den åtgärd, som skall vidtagas, och en andra del, som tillhandahåller ett värde att användas vid åtgärden.
12. Processorarkitektur enligt ett av föregående krav, inrättad att exekvera språk, som använder funktioner och dynamisk minnesallokering, kännetecknad av en uppsättning instruktioner innefattande dedicerade instruktioner för funktionella anrop, funktionsåtergångar, parameteröverföring mellan funktioner.
13. Processorarkitektur enligt krav 11, kännetecknad av en uppsättning instruktioner innefattande dedicerade instruktioner för inkrementering eller dekrementering av antalet referenser till dataobjekt lagrade i minnesorganet (5).
14. Processorarkitektur enligt något av föregående krav, kännetecknad av att den är inrättad att bearbeta delar a datorprogram skrivna i ett funktionellt språk.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9902752A SE516171C2 (sv) | 1999-07-21 | 1999-07-21 | Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde |
AU63305/00A AU6330500A (en) | 1999-07-21 | 2000-07-14 | A processor architecture |
CN00813119A CN1375083A (zh) | 1999-07-21 | 2000-07-14 | 一种处理器结构 |
BR0012580-6A BR0012580A (pt) | 1999-07-21 | 2000-07-14 | Arquitetura de processador adaptada a linguagens de programa |
JP2001511545A JP2003505758A (ja) | 1999-07-21 | 2000-07-14 | プロセッサ・アーキテクチャ |
PCT/SE2000/001494 WO2001006355A1 (en) | 1999-07-21 | 2000-07-14 | A processor architecture |
EP00950169A EP1208427B1 (en) | 1999-07-21 | 2000-07-14 | A processor architecture |
DE60031136T DE60031136T2 (de) | 1999-07-21 | 2000-07-14 | Prozessorarchitectur |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9902752A SE516171C2 (sv) | 1999-07-21 | 1999-07-21 | Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9902752D0 SE9902752D0 (sv) | 1999-07-21 |
SE9902752L SE9902752L (sv) | 2001-01-22 |
SE516171C2 true SE516171C2 (sv) | 2001-11-26 |
Family
ID=20416541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9902752A SE516171C2 (sv) | 1999-07-21 | 1999-07-21 | Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1208427B1 (sv) |
JP (1) | JP2003505758A (sv) |
CN (1) | CN1375083A (sv) |
AU (1) | AU6330500A (sv) |
BR (1) | BR0012580A (sv) |
DE (1) | DE60031136T2 (sv) |
SE (1) | SE516171C2 (sv) |
WO (1) | WO2001006355A1 (sv) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030097537A1 (en) * | 2001-10-23 | 2003-05-22 | Sun Microsystems, Inc. | Method and apparatus for scoped memory |
US8346810B2 (en) * | 2011-05-13 | 2013-01-01 | Simplivity Corporation | Reference count propagation |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10114795B2 (en) * | 2016-12-30 | 2018-10-30 | Western Digital Technologies, Inc. | Processor in non-volatile storage memory |
JP6881256B2 (ja) * | 2017-11-27 | 2021-06-02 | オムロン株式会社 | 制御装置、制御方法、およびプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
US4695949A (en) * | 1984-07-19 | 1987-09-22 | Texas Instruments Incorporated | Method for efficient support for reference counting |
JP2501186B2 (ja) * | 1985-07-04 | 1996-05-29 | 日本電気株式会社 | デイジタル信号処理方法およびその装置 |
US4912629A (en) * | 1986-06-26 | 1990-03-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Real-time garbage collection for list processing using restructured cells for increased reference counter size |
US4825360A (en) * | 1986-07-30 | 1989-04-25 | Symbolics, Inc. | System and method for parallel processing with mostly functional languages |
SE9002558D0 (sv) * | 1990-08-02 | 1990-08-02 | Carlstedt Elektronik Ab | Processor |
US5535390A (en) * | 1994-07-22 | 1996-07-09 | Hildebrandt; Thomas H. | Method for reusing temporaries and reclaiming shared memory |
WO1996008948A2 (en) * | 1994-09-19 | 1996-03-28 | Philips Electronics N.V. | Method and apparatus for fast microcontroller context switching |
-
1999
- 1999-07-21 SE SE9902752A patent/SE516171C2/sv not_active IP Right Cessation
-
2000
- 2000-07-14 JP JP2001511545A patent/JP2003505758A/ja active Pending
- 2000-07-14 AU AU63305/00A patent/AU6330500A/en not_active Abandoned
- 2000-07-14 DE DE60031136T patent/DE60031136T2/de not_active Expired - Lifetime
- 2000-07-14 WO PCT/SE2000/001494 patent/WO2001006355A1/en active IP Right Grant
- 2000-07-14 CN CN00813119A patent/CN1375083A/zh active Pending
- 2000-07-14 EP EP00950169A patent/EP1208427B1/en not_active Expired - Lifetime
- 2000-07-14 BR BR0012580-6A patent/BR0012580A/pt not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2001006355A1 (en) | 2001-01-25 |
DE60031136T2 (de) | 2007-08-16 |
EP1208427B1 (en) | 2006-10-04 |
EP1208427A1 (en) | 2002-05-29 |
SE9902752D0 (sv) | 1999-07-21 |
JP2003505758A (ja) | 2003-02-12 |
SE9902752L (sv) | 2001-01-22 |
BR0012580A (pt) | 2002-07-02 |
AU6330500A (en) | 2001-02-05 |
CN1375083A (zh) | 2002-10-16 |
DE60031136D1 (de) | 2006-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4468736A (en) | Mechanism for creating dependency free code for multiple processing elements | |
US4466061A (en) | Concurrent processing elements for using dependency free code | |
CN1127687C (zh) | 带外部协处理器可访问的上下文切换寄存器组的risc处理器 | |
US4084228A (en) | Process management structures and hardware/firmware control | |
KR920005852B1 (ko) | 데이타 처리 시스템에 있어서 합성 디스크립터를 제공하는 장치 및 방법 | |
US4084224A (en) | System of controlling procedure execution using process control blocks | |
CN101520723B (zh) | 用于装入/移动以及复制指令的处理器、***和方法 | |
US5560029A (en) | Data processing system with synchronization coprocessor for multiple threads | |
CA1103368A (en) | Task handling apparatus for a computer system | |
CN101030192B (zh) | 管理处理器的寄存器的方法和*** | |
CN101110017A (zh) | 一种组合指令的技术 | |
JP2002149424A (ja) | 共有コプロセッサ・リソースに対する複数の論理インタフェース | |
US11630687B2 (en) | Compacted context state management | |
EP0077619B1 (en) | Data-packet driven digital computer | |
SE516171C2 (sv) | Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde | |
US4456958A (en) | System and method of renaming data items for dependency free code | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
EP0101718B1 (en) | Computer with automatic mapping of memory contents into machine registers | |
Tick | Sequential Prolog machine: Image and host architectures | |
JPH04506878A (ja) | データ処理装置 | |
EP4002103A1 (en) | User timer directly programmed by application | |
Laliotis | Implementation aspects of the symbol hardware compiler | |
US6711655B1 (en) | Finding available memory space by finding its associated memory transfer controller | |
KR20240107375A (ko) | 정렬되지 않은 데이터를 처리하는 프로세싱 디바이스 | |
Rauscher | Microprogramming the AN/UYK-17 (XB-1)(V) signal processing element signal processing arithmetic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |