SK41393A3 - System and method for dynamically linked code segments in real time - Google Patents

System and method for dynamically linked code segments in real time Download PDF

Info

Publication number
SK41393A3
SK41393A3 SK41393A SK41393A SK41393A3 SK 41393 A3 SK41393 A3 SK 41393A3 SK 41393 A SK41393 A SK 41393A SK 41393 A SK41393 A SK 41393A SK 41393 A3 SK41393 A3 SK 41393A3
Authority
SK
Slovakia
Prior art keywords
code
processor
buffer
pointer
dsp
Prior art date
Application number
SK41393A
Other languages
English (en)
Inventor
Ronald J Lisle
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of SK41393A3 publication Critical patent/SK41393A3/sk

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/004Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Description

Oblasť techniky
Vynález sa týka spôsobu dynamického zväzovania kódových segmentov v reálnom Čase v multiprocesorovom počítačovom systéme s prístupom do zdielanej pamäti. Vynález sa ďalej týka. systému na vykonávanie spôsobu definovaného vyššie.
Doterajší stav techniky
Pri implementácii niektorých komplexných funkcií v procesore digitálnych signálov sa všeobecne používajú základné stavebné bloky alebo kódové segmenty, ktoré môžu byť prepojené mnohými spôsobmi. Tieto kódové segmenty sú analogické jednotlivým modulom hardwaru, ktoré bolo možné skôr nájsť v rozličných systémoch používajúcich zväzkové struny alebo spínateľné tvrdo zadrôtované prepojenia kvôli umožneniu voľby a konfigurácie modulov.
Ako jeden z možných príkladov, na ktoré však nemá byt vynález obmedzený a pripúšťa početné vyhotovenia a použitia pri použití syntezátora hudby s procesorom číselného signálu by takéto moduly mohli obsahovať analogické softwarové implementácie hardwarových modulov ako oscilátorov, filtrov alebo napätím riadených zosilňovačov. Tieto moduly boli nájdené v syntezátoroch hudby z rokou 1970, kde boli prepojené podľa požiadaviek a ako bolo skôr popísané, so zväzkovými strunami alebo inými prostriedkami.
V implementácii takýchto komplexných funkcií procesorom číselných signálov môže byt v mnohých aplikáciách žiadúce vykonať zmenu konfigurácie systému v reálnom čase. Ak použijeme opäť ako jeden z možných príkladov aplikáciu v hudbe, môže byt žiadúce vykonať implementáciu syntezátora hudby procesorom číselných signálov, kde .syntezátor môže byt uspôsobený na zmenu konfigurácie v reálnom čase kvôli umožneniu vyvíjania niekoľkých súčasných od^š^ých zvuRpv, ktorého schopnosť sa v odbore označuje ako mnohafarebnost.
V takejto implementácii funkcie, kde sa vyžaduje zmena konfigurácie v reálnom čase (typický v systémoch a v kóde procesoru číselných signálov) jedno zrejmé riešenie problému zmeny konfigurácie v reálnom čase spočíva v zoskupení všetkých možných kódových segmentov žiadaných pre implementáciu funkcie, ako je zvláštny zvuk jedného nástroja, filter a pod. Každá kódová sekvencia potrebná pre implementáciu tejto funkcie je vytvorená ako volateľná'' rutina. Týmto spôsobom daná konfigurácia potom vyžaduje len tvoriť zoznam takých podprogramov a poradí, v ktorom sa objavujú. Pri tejto implementácii by sa objavilo, že by tento prístup umožnil veľkú pružnosť v konfigurácii modulov. Ničmenej bolo zistené, že táto implementácia trpí významnými obmedzeniami vykonávania vyplývajúcich z času potrebného na uskutočnenie nutných volaní a návratov vykonávaných s každým takým kódovým segmentom.
Pri rozvíjaní tohto odboru sa javilo možné riešenie, kde by požadované kódové moduly boli spolu zviazané podľa požiadaviek. Toto zviazanie bola všeobecná programovacia procedúra použitá kompilátorom programu, napríklad, ktorý by mal typicky spojiť množstvo kódových segmentov do jednej kódovej postupnosti.
Jeden problém spojený s týmto prístupom sa však týka hlavne diskutovanej aplikácie, kde rozličné kódové moduly ša pri potrebe predvádzania menia s časom ako napríklad v prípade, keď procesor číselných signálov za účelom implementácie mnohofarebnej kombinácie zvuku plechových a drevených dychových nástrojov by musel najprv implementovať kódový modul plechových nástrojov nasledovaný veľmi rýchlo kódovým modulom drevených dychových nástrojov, aby zvuk mal charakter súčasného znenia oboch typov nástrojov. Naviac je problém skomplikovaný v niektorých použitiach vplyvom chovania zdielanej pamäti koprocesorových systémov s procesorom číselných signálov, ktoré môžu mať pomerne malú zdielanú pamäť s veľkosťou rádovo 8K, ktoré musia v nej uložený kód vykonávať veľmi vysokou rýchlosťou. Vzhľadom k malej pamäti je pre dosiahnutie žiadaného mnohofarebného účinku i iných účinkov periodicky zavádzaný iný kód z vonkajšej procesorovej jednotky do zdielanej pamäti pre vykonávanie procesorom číselných signálov. Ničmenej, vplyvom sčítacieho faktoru tohto kódu, ktorý má byť vykonávaný veľmi rýchlo, napríklad pre vyvíjanie uspokojivého syntetizovaného zvukového signálu vznikol problém, ako vložiť takéto prídavné kódové moduly do tejto obmedzenej pamäti takým spôsobom, aby sa zamedzil sklon vonkajšej procesorovej jednotky predatovat bufer zdielanej pamäti, zatiaľ čo kód v bufre bol vykonávaný procesorom číselných signálov.
Zvyčajne je procesor číselných signálov jiiimo činnosť behom týchto periód, kedy vonkajšia procesorová jednotka zapisuje prídavný program tohto procesoru do zdielanej pamäti pre zamedzenie pokusov tohto procesoru číselných signálov vykonávať také inštrukcie, ktoré boli len čiastočne vypísané ' procesorom vonkajšej riadiacej jednotky do zdielanej pamäti. Spôsob ping-pongu dvoch bufrov bol v odbore spracovania dát dlho známy, kde jeden bufer obsahuje kód vykonávaný, zatiaľ čo druhý bufer je naplňovaný. Situácia sa naplnenom bufre sa vykonáva, zatiaľ prvého bufra. Ničmenej táto obvyklá prax, hoci užitočná tým, že zamedzuje vonkajšej riadiacej jednotke predatovať za istých okolností bufer vykonávaný procesorom číselných signálov, nie je celkom uspokojivá- Napríklad, keď vonkajšia riadiaca jednotka sa pokúsila predatovať bufry dvakrát v rýchlom slede, taká technika dvoch bufrov by nezamedzila nežiaduce predatovanie vonkajšej riadiacej jednotky bufru vykonávaného procesorom číselných signálov.
Je teda pochopiteľné, že z týchto i iných dôvodov boli dlhú dobu žiadané systém a spôsob pre dynamické zväzovanie kódových segmentov, kde vykonateľný kód je optimalizovaný vykonávaním zväzovania kódových segmentov v reálnom čase.
potom obráti, kód v práve čo ďalší kód sa zavádza do
Podstata vynálezu
Vynález teda vytvára spôsob zväzovania kódových segmentov v multiprocesorovom počítačovom systéme s prístupom do zdielanej pamäti, ktorého podstata spočíva v tom, že sa prvým procesorom v zdielanej pamäti” vykoná prvý kódový modul pri zavedení druhého kódového modulu do zdielanej pamäti druhým procesorom a prvým procesorom sa vykoná druhý kódový modul pri zavedení tretieho kódového modulu druhým procesorom do zdielanej pamäti.
Podľa výhodného vyhotovenia predloženého vynálezu sa druhý kódový modul zväzuje v reálnom čase.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu zdielaná pamät obsahuje prvý bufer a druhý bufer.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu prvý procesor striedavo prevádza kódy z prvého bufra a z druhého bufra.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu druhý procesor striedavo zavádza kód do druhého bufra, keď prvý procesor prevádza kód v prvom bufre a druhý procesor zavádza kód do prvého bufra. keď prvý procesor vykonáva kód v druhom bufre.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu premenná prvého ukazovateľa sa nastaví na adresové miesto zodpovedajúce jednému z bufrov, keď prvý procesor priebežne vykonáva kód a premenná druhého ukazovateľa sa nastaví na adresové miesto zodpovedajúce zostávajúcemu bufru po predatovaní druhým procesorom .
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu prvý procesor je procesor číselných signálov.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu prvý procesor je mikroprocesor.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu prvý kódový modul zodpovedá kódu, ktorý spôsobuje, že prvý procesor číselných signálov vyvíja akustické dáta zodpovedajúce prvému zvuku.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu druhý kód zodpovedá kódu, ktorý spôsobuje, že procesor číselných signálov vyvíja akustické dáta zodpovedajúce druhému zvuku.
Podľa ďalšieho výhodného vyhotovenia predloženého vynálezu procesor číselných signálov vykonáva prvý a druhý kódový modul z prvého a druhého bufra striedavo rýchlosťou, pri ktorej sú prvý a druhý zvuk prijímané sluchom akoby boli súčasné.
Vynález ďalej vytvára systém na vykonávanie spôsobu definovaného vyššie pre zväzovanie kódových segmentov v multiprpcesorovom počítačovom systéme majúcom prvý a druhý procesor s prístupom do zdielanej pamäti, ktorého podstata spočíva v tom, že obsahuje prostriedok pre vykonávanie prvým procesorom kódu v zdielanej pamäti zodpovedajúceho prvej funkcii a prostriedok pre zviazanie kódu zodpovedajúceho druhej funkcii druhým procesorom počas vykonávania prvým procesorom.
Prehľad obrázkov na výkresoch
Vynález je znázornený na výkresoch. kde obr. 1 znázorňuje počítačom vybavený systém adaptéru pre záznam a prehrávanie audiosignálov používajúcich zväzovací systém podľa vynálezu, obr. 2 je blokový diagram reprezentatívneho kódu počítača pre vyvíjanie akustického zvuku systémom z obr. 1 znázorňujúci stavebné bloky reprezentatívnych modulov a submodulov, obr. 3 je schematické znázornenie kódových segmentov obsahujúcich násobné moduly ako tie znázornené v obr. 2, ktoré majú byt vykonávané procesorom číselných signálov v systémovej časti počítača zabezpečeného systémom z obr. 1, obr. 5 je znázornenie techniky s dvoma buframi známej z doterajšieho stavu techniky pre vykonávanie kódových modulov pri súčasnom zavádzaní prídavných modulov pre vykonávanie, obr- 6A - 6D znázorňujú schematický postup ukazovateľov použitých v systéme zväzovania podľa vynálezu, obr. 7 je znázornenie špecifického stavu ukazovateľov pri činnosti systému zväzovania, ktorý spôsobuje nesprávnu funkciu systému v obr. 1, keď nie sú použité opatrenia podľa systému zväzovania podľa vynálezu a obr. 8 je vývojová schéma rozličných stavov systému z obr. 1 v súvislosti s ukazovateľmi z obr. 6 pri prevádzke podľa vynálezu.
Príklad vyhotovenia
Najskôr bude vyhotovený všeobecný popis príkladného prostredia, ktorému môže byt vynález prispôsobený v súvislosti s vyvíjaním zvuku. V nadväznosti na tieto skutočnosti budú najprv s prihliadnutím k ,obr. 2a 3 popísané všeobecné funkcie zaisťované procesorom číselných signálov a-ko zložkou systému z obr. 1 a kódové segmenty vykonávané procesorom číselných signálov pre vyvíjanie hudobného zvuku všeobecne. Obr. 2 znázorňuje typické príkladné kódové segmenty požadované pre vyvíjanie zvuku všeobecne a obr. 3 znázorňuje sled kódových segmentov, ktoré majú byť vyko6 návané používateľom pre vytváranie rozličných zložitých súčasných zvukov označených ako mnohofarebné v hudobnom umení. S prihliadnutím na obr. 4 bude teraz vykonaný popis príkladného adaptéru pre záznam a prehrávanie obsahujúceho procesor číselných signálov ako súčast systému z obr. 1. Potom bude nasledovať vysvetlenie nového systému zväzovania podľa vynálezu používajúceho množinu ukazovateľov programových adries, kde sú uložené rôzne kódové segmenty kódu procesoru číselných signálov s prihliadnutím na obr. 6A - 6D.
V obr. 1 je znázornený počítačom vybavený systém pre záznam a prehrávanie 10 v zjednodušenej forme. Systém 10 obsahuje počítač 12 obsahujúci vonkajšiu procesorovú jednotku 22 a vstupno/výstupnú zbernicu 20. K vstupno/výstupnej zbernici 20 sú pripojené početné periférne prístroje v odbore dobre známe, ako klávesnica 12, displej 14, mikrofón 16 a reproduktor 18.. Systém 10 okrem adaptéru 24 pre záznam a prehrávanie môže mať formu zvyčajného osobného počítača ako napríklad PS/2 spoločnosti IBM. Pokiaľ ide o adaptér 24 pre záznam na prehrávanie, tento môže mať v prednostnom vyhotovení tvar adaptačnej karty, ktorá môže byť zasunutá do expanznej drážky, ktorá je časťou počítača 12. Táto karta bude prednostne obsahovať procesor 26 číselných signálov ako je procesor TMS 320 C25 spoločnosti Texas Instruments Corporation. Prídavné bude adaptér 24 obsahov zdielanú pamäť 28 pri stupnú procesorom 26 číselných signálov i vonkajšiu procesorovú jednotku 22 cez vstupno/výstupnú zbernicu 20.
Jedným z účelov adaptéru 24 je získavať analógové audiodáta z nejakého audlozdroja ako je mikrofón 16 cez vstupno/výstupnú zbernicu 20, zaznamenať alebo digitizovať tieto audiodáta, zapamätať ich a neskôr vyhľadať a previesť späť na analógový tvar a vyslať cez vstupno/výstupnú zbernicu 20 do vhodného zvukového meniča, ako je reproduktor 18- Klávesnica 12 a displej 14 budú slúžiť pre normálne účely známe v oblasti zjednodušenia komunikácie človeka s počítačom 12 a nebudú tu podrobne vysvetľované. Z dôvodov zjednodušenia sú ďalšie súčasti počítača ako disková jednotka a pod.,ako všeobecne známe, vynechané.
Prídavná významná funkcia adaptéru 24 je vykonávať kód, ktorý môže vyvíjať syntetický zvuk. Pri tejto forme prevádzky je vy7 konateľný kód zapamätaný v zdielanej pamäti 28, ktorá je sprístupnená a je vykonávaný procesorom 26 číselných signálov, ktorých výstup je vedený cez vstupno/výstupnú zbernicu 20 do reproduktoru 18 alebo na žiadosť zaznamenaný a pod. Dôležitá poznámka ohľadom systému z obr. 4, ktorý bude ďalej podrobnejšie popísaný, sa týka skutočnosti, že systém 10 z obr. 1, v ktorom je vynález zabudovaný, je tesne zviazaný s koprocesorovým systémom, v ktorom je obsiahnutá zdielaná pamäť prístupná množstvom procesorov ako je vonkajšia procesorová jednotka 22 a procesor 26 číselných signálov. Hoci v implementácii znázornenej v obr. 10 jeden z procesorov je procesor číselných signálov v odbore dobre známy, je treba uviesť, že úmyslom nie je vynález takto obmedziť a pripúšťajú sa i iné implementácie nepoužívajúce procesor číselných signálov, ale inú formu množstva procesorov s prístupom k zdielanej pamäť 28 pre vytvorenie tesne zviazaného koprocesorového systému.
Je treba uviesť, že, ako bude ďalej objasnené, táto zdielaná pamäť bude obsahovať pamäťové miesta, ktoré môžu byť čítané vonkajšou procesorovou jednotkou 22 ako i procesorom 26 číselných signálov a zapisovaná vonkajšou procesorovou jednotkou 22. Táto zdielaná pamäť 28 bude obsahovať kódové segmenty alebo moduly, ktoré budú vykonávané procesorom 26 číselných signálov pre vyvíjanie žiadaných zvukov. Ničmenej, z dôvodu obmedzenia veľkosti zdielanej pamäti 28 a potreby rýchleho vykonávania je potrebné pre vonkajšiu procesorovú jednotku 22 zavádzať z času na čas prídavné tiež kódové segmenty pre následné vykonávanie procesorom 26 číselných signálov. To, že procesor 26 číselných signálov i vonkajšia procesorová jednotka 22 majú prístup k zdielanej pamäti 28, spôsobuje problém pri realizácii vynálezu, kde vznikajú nezhody v súvislosti s touto zdielanou pamäťou 28. To súvisí so skutočnosťou, že k zdielanej pamäti 28 je prístup v koprocesorovom prostredí množstvom procesorov ako je procesor 26 číselných signálov a vonkajšia procesorová jednotka 22.
V obr. 2 je znázornený funkčný blokový diagram typických kódových segmentov, ktoré musia byt implementované a vykonávané procesorom 26 číselných signálov pre vyvíjanie audiozvukov. Je treba poznamenať, že hoci sa jedná o zvukovú aplikáciu, vynález nie je v tomto zmysle obmedzený, ale má použitie v množstve
Pri ako kódových modulov. Ďalej je uvedené, že zvláštna funkcia vykonávaná týmto kódovým segmentom 80 v obr. 2 vykonávaná procesorom 26 číselných signálov môže byt v podstate akákoľvek funkcia, hoci vo zvláštnom vyhotovení, ktoré je popisované, sa tieto funkcie týkajú vyvíjania akustických zvukov, implementácii zvuku procesorom 26 číselných signálov v prípade emulácie syntezátoru hudby procesorom 26 číselných signálov sa všeobecne používajú základné stavebné bloky alebo kódové segmenty ako je kódový segment 80 obsahujúci podbloky ako oscilátor 82, filter 84, napätím riadený zosilňovač 86 a rozličné operátory 90-94. ktoré môžu byt prepojené radom spôsobov, aby vyvíjali rôzne zvuky podľa želania. Takéto kódové segmenty sú analogické k oddeleným hardvarovým modulom vyskytujúcim sa vo väčších syntezátoroch hudby z roku 1970. V poslednom prípade bolo zvyčajné používat buď zväzkové struny alebo obmedzenú množinu spínateľných pevne drôtovaných prepojení pre umožnenie voľby a konfigurácie modulov podľa želania. Ničmenej pri modernej implementácii syntezátora hudby, o ktorý sa jedná, je žiaduce vykonávat zmenu konfigurácie v reálnom čase na umožnenie vykonávania niekoľkých rozličných zvukov súčasne, ktorá funkcia sa označuje ako mnohofarebnost. Takáto činnost vyžaduje postupné vykonávanie rôznych verzií modulov, ako sú tie znázornené v obr. 2. Z čiary 96 v obr. 2 je vidno, že niektoré z funkcií potrebných pre vyvíjanie zvukov pre daný modul, byt implementované procesorom vykonávajúcich kód zodpovedajúci segmente 80 uloženom v zdielanej pamäti 28.
Prídavné funkcie pod čiarou 96 ako operátory 90-94 môžu byt vykonávané vonkajšou procesorovou jednotkou 22. Funkcie objavujúca sa nad čiarou 96 sú tie, ktoré vyžadujú rýchle postupné vykonávanie, kde kódové segmenty submodulov ako je oscilátor 82, filter' 84 a napätím riadený zosilňovač 86 musia byt vykonávané rýchlo v slučke pre vyvíjanie žiadaného číselného výstupu 88, ktorý môže byt prevedený na prijateľný analógový akustický výstup. Takáto slučka cez celý súbor kódových segmentov znázornených v oddiele 80 sa môže typicky objavit pri digitizácii audiosignálov alebo vzoriek napríklad 44 KHz, napríklad kódový segment prebieha ako tie nad čiarou 96, môžu 26 číselných signálov týmto funkciám v kódovom v slučke a vykonáva sa raz pre každú vzorku vyvíjanú pre akustický signál z akustického zdroja 16.
Naopak, prídavný kód v obr. 2 . pod čiarou 96 sa môže vykonávať pri oveľa nižšej rýchlosti ako 100 - 300 Hz a môže teda byť typicky vykonávaný vonkajšou procesorovou jednotkou 22. Príklady takých operátorov implementovaných vonkajšou procesorovou jednotkou 22 v rovnakom čase, keď je procesorom 26 číselných signálov vykonávaný kód segmentu 80, sú napríklad amplitúdové obálky. Prídavné k rýchlemu vykonávaniu kódového segmentu 80 sa ďalší dôvod na obmedzenie veľkosti vykonávania kódu procesorom 26 číselných signálov týka charakteru zdielanej pamäti 28 združenej s procesorom 26 číselných signálov, hlavne, že veľkosť takej pamäti je oveľa menšia oproti veľkosti obvyklej pamäti normálne združenej so systémom počítača 12. Ako príklad môže v takýchto systémoch mať zdielaná pamäť 28 veľkosť len 8 K. Z dôvodov potreby rozličných typov kódových modulov ako v obr. 2 vykonávaných postupne pre dosiahnutie žiadaného mnohofarebného účinku a z dôvodov obmedzenia malou veľkosťou pamäti je zrejmé, že môže byť nutné pre vonkajšiu procesorovú jednotku 22 občas zaviesť do zdielanej pamäti 28 prídavné také kódové segmenty ako v obr. 2. To môže byť vysvetlené odkazom na obr. 3.
V rámci podrobnejšieho vysvetlenia obr. 3 v tomto obr. je znázornený kódový segment 98, ktorý môže zodpovedať kódovému segmentu 80 z obr. 2 včítane potrebného kódu procesoru číselných signálov ako oscilátorov, filtrov a pod. rinetu. Ako je znázornené v obr- 3, sú
100 a 102 podobné kódovému segmentu 98 a zovšeobecnenej reprezentácii kódu pre vyvíjanie zvuku nejakého nástroja ako je kódový segment 80 v obr. 2. Z obr. 3 je zrejmé, že k vyvíjaniu zvuku nejakého nástroja ako je trúbka alebo lesný roh predstavovaného kódovými segmentmi 100 alebo 102 postupne, je žiadaná odlišná forma oscilátora 82, filtra 84 alebo iných submodulov alebo ich kombinácií. Vykonávaním procesorom 26 číselných signálov týchto kódových segmentov 100. 98, a 102 postupne, ako je schematicky znázornené šípkou 104 a dostatočnou rýchlosťou takto získané akustické dáta z adaptéru 24 ako je označené výstupom 88 v obr. 2, dosiahnu žiadaný mnohofarebný účinok, takže ľudský činiteľ môže pre vyvíjanie zvuku klaprídavné kódové segmenty získať súčasne zvuk trúbky, klarinetu a lesného rohu zodpovedajúceho kódovým segmentom 100, 98 a 102.
Opäť je uvedené, že následkom obmedzenej veľkosti zdielanej pamäti 298 niekedy nie je možné zaviesť všetky kódové segmenty 100, 98 a 102 do zdielanej pamäti 28. To je znázornené oddielom 106 a šípkou 108 označujúcou, že zdielaná pamäť 28 má len takú veľkosť, že môže obsahovať len kódový segment 98 združený so zvukom klarinetu. Možno teda ľahko pochopiť, že v určitom čase je tu potreba, aby vonkajšia procesorová jednotka 22 zaviedla tieto e
prídavné kódové segmenty ako 100 pre trúbku a 102 pre lesný roh do zdielanej pamäti 28. Prídavný dôvod pre umožnenie zavedenia prídavných kódových segmentov z vonkajšej procesorovej jednotky 22 do zdielanej pamäti 28 pre vykonávanie procesorom 26 číselných signálov v reálnom čase je ten, že nutné alebo žiadané prídavné kódové segmenty by mohli byť určené sa meniť s časom v závislosti požiadavkách. Jeden problém • v koprocesorovom prostredí pre umožnenie zavedenia vonkajšou procesorovou jednotkou 22 týchto prídavných kódových segmentov do zdielanej pamäti 28 je ten, že táto zdielaná pamäť 28 je súčasne vystavená prístupu procesoru 26 číselných signálov.
vzniká problém umožnenia vonkajšej procesorovej 22 uloženie zodpovedajúcich kódových segmentov podľa do tejto zdielanej pamäti 28 bez ovplyvnenia možnosti procesoru 26 číselných signálov do nej a teda bez postupným vykonávaním kódu v zdielanej pamäti 28 procesorom 26 číselných signálov. Ako jednoduchý znázorňujúci príklad procesor 26 číselných signálov môže byť uprostred v zdielanej pamäti 28 združené s funkciou obr. 2, keď následkom asynchrónnej činnosti vonkajšej procesorovej jednotky 22 zahajuje zavádzanie iného kódového segmentu do zdielanej pamäti 28, takže sa prepíše kód, ktorý má byť teraz vykonávaný procesorom 26 vztiahnutý k oscilátoru 82. - ‘
Skôr, ako bude vyhotovený podrobný popis techniky dvoch bufrov podľa doterajšieho stavu techniky s prihliadnutím k obr.
a techník podľa vynálezu s prihliadnutím k obr. 6 až 8, bude bežne v reálnom čase, a teda na iných parametroch alebo zabezpečenia štruktúry
Teda jednotke želania prístupu rušenia vykonávania kódu oscilátora 82 v urobený podrobný popis adaptéru 24 pre záznam a prehrávanie podľa obr. 1. ktorý môže byt použitý vi systéme počítača 12 pre vykonávanie dynamického zväzovania kódových segmentov v reálnom čase podľa vynálezu.
V obr. 4 je znázornený funkčný blokový diagram adaptéru 24. ktorý obsahuje procesor 26 číselných signálov, ktorý môže byt použitý k implementácii spôsobu a zariadenia podľa vynálezu. Äko bolo uvedené vyššie, tento adaptér 24 môže predstavovať adaptér ACPA spoločnosti IBM, ktorý je na trhu dosiahnuteľný. V takejto implementácii je použitý procesor 26 číselných signálov TMS 320C25 spoločnosti Texas Instruments alebo iný vhodný procesor číselných signálov.
Ako je znázornené, rozhranie medzi vonkajšou procesorovou jednotkou 22 a procesorom 26 číselných signálov tvorí vstupno/výstupnú zbernicu 30. Odborníkom školeným v odbore bude jasné, že vstupno/výstupná zbernica 30 môže byť implementovaná použitím zbernice Micro Channel alebo PC 1/0 zbernice, ktoré sú dosiahnuteľné na trhu a v odbore známe.
Použitím vstupno/výstupnej zbernice 30 môže vonkajšia procesorová jednotka 22 získať prístup k vonkajšiemu povelovému registru 32. Vonkajší povelový register 32 a vonkajší stavový register 34 sú použité vonkajšou procesorovou jednotkou 22 k vysielaniu povelov a monitorovaniu stavu adaptéru 24 znázornenému v obr. 4.
Vonkajšia procesorová jednotka 22 môže tiež používať vstupno/výstupnú zbernicu 30 pre prístup k čítaču horného bytu adresy a dolného bytu adresy, ktoré sa používajú vonkajšou procesorovou jednotkou 22 na získanie prístupu k zdielanej pamäti 48. ktorá je tiež znázornená v obr'. 1 ako zdielaná pamäť 28, vo vnútri adaptéru 24 znázorneného v obr. 4. Sdílená pamäť 48 je prednostne rýchla statická RAM pamäť 8 K x 16, ktorá je zdielaná v tom zmysle, že ako vonkajšia procesorová jednotka 22, tak procesor 26 môžu získať prístup k zmienenej pamäti. Ako bude ďalej podrobne vysvetlene, je použitý dohodový obvod pamäti, aby bol zamedzený súčasný prístup vonkajšej procesorovej jednotky 22 a procesoru 26 číselných signálov k zdielanej pamäti 48.
Ako je znázornené, procesor 26 číselných signálov tiež prednostne obsahuje riadiaci register 36 procesoru a stavový register procesoru, ktoré sa používajú rovnakým spôsobom ako vonkajší povelový register 32 a vonkajší stavový register 34 pre umožnenie procesoru 26 číselných signálov vysielať povely a monitorovať stav rôznych prístrojov v adaptéri 24.
Vonkajšia procesorová jednotka 22 môže byť tiež používaná na prenos dát do a zo zdielanej pamäti 28 ce? vstupno/výstupnú zbernicu 30 použitím dvojsmerného spoja 44 horného bytu dát a dvojsmerného spoja 46 dolného bytu dát spôsobom v odbore známym.
Adaptér 24 znázornený na obr. 4 ďalej obsahuje vzorkovú pamäť 50. Vzorková pamäť 50 je prednostne statická RAM pamäť 2K x 16 používaná procesorom 26 číselných signálov pre vystupujúce signály, ktoré majú byť prehrávané a pre vstupujúce vzorky digitizovaných zvukových signálov. Vzorková pamäť 50 môže byť používaná ako dočasný bufer na uloženie dekompresných číselných vzoriek zvukových signálov a MIDI syntetizovaných vzoriek hudby pre súčasný výstup. Odborníkovi školenému v odbore bude zrejmé, že dekompresiou číselných dát zvukových signálov a vytváraním syntetizovanej hudby zo súborov MIDI sa vo vzorkovej pamäti 50 uloží vopred určený objem každého typu dát, pričom bude jednoduchou záležitosťou tieto dva výstupy zložiť na želanie.
V adaptéri podľa obr. 4 je tiež znázornená riadiaca logika 56. Riadiaca logika 56 je prednostne logický blok, ktorý okrem iných úloh vysiela signály prerušenia do vonkajšej procesorovej jednotky 22 po žiadosti o prerušenie procesoru 26 číselných signálov, riadi voľbu spínania vstupu a vysiela príkazy čítania a zápisu do rôznych spojov a pamätí vo vnútri adaptéru 24. Riadiaca logika 56 prednostne vykonáva tieto úlohy s použitím riadiacej zbernice 58.
V znázornenom vyhotovení vynálezu je ďalej prednostne použitá adresová zbernica 60 pre umožnenie, aby adresy rôznych vzoriek a súborov v systéme mohli byť spojené medzi vhodnými prístrojmi v systéme. Dátová zbernica 62 je tiež znázornená a používaná na spojenie· dát medzi rôznymi prístrojmi v adaptéri 24.
Ako bolo uvedené vyššie, riadiaca logika 56 tiež používa dohodovú logiku 64 a 66 pamäti na riadenie prístupu k zdielanej pamäti 48 a vzorkovej pamäti 50 na zaistenie, aby vonkajšia procesorová jednotka 22 a procesor 26 číselných signálov sa nesnažili o súčasný prístup k niektorej pamäti. Táto technika je v odbore dobre známa a je potrebná k zaisteniu vylúčenia zrútenia pamäti alebo iných symptónov nesprávnej funkcie systému.
Konečne je znázornený čísiicovoanalógový prevodník 52, ktorý je použitý na prevod dekompresných číselných zvukových alebo číselných MIDI syntetizovaných hudobných signálov na príslušný analógový signál. Výstup čísiicovoanalógového prevodníka 52 je potom spojený s analógovou výstupnou častou 68. ktorá prednostne obsahuje vhodné filtračné a zosilňovacie obvody. Podobne môže byt adaptér znázornený na obr. 4 použitý k digitizácii a zapamätaniu zvukových signálov ich pripojením k analógovej vstupnej časti 70 a potom k analógovočís1icovému prevodníku 54. Odborníkovi školenému v odbore bude zrejmé. že taký prístroj umožňuje záznam a uloženie analógových zvukových signálov digitizáciou a uloženie číselných hodnôt združených s týmito signálmi.
Teraz, keď bol vykonaný popis adaptéra 24, krátko vysvetlíme, prečo technika dvoch bufrov, v odbore dobre známa, bude neúčinná' pri riešení problému predloženého v súvislosti s obr. 5. Ako je tu uvedené, tradičný spôsob pirig-pong s dvoma buframi, to znamená, zápis do jedného bufra, zatiaľ čo zostávajúci bufer je čítaný, nebude pracovať v popisovanej implementácii pre dynamické zväzovanie kódových segmentov v reálnom čase. Ako je jasné z obr. 5, v súhlase so zvyčajnou praxou v náuke o počítačoch, keď je nutné prijímať a ukladať dáta, zatiaľ čo. procesorový systém pokračuje v plynulom vykonávaní kódu, bolo už dlho známe zabezpečiť dva bufŕe 112 a 114 v systéme 110 pamäti. Ďalej je zvyčajné zabezpečiť ukazovateľ ako ukazovateľa 116, 118 a 120. ktorých funkciou je ukazovať nejaké pamäťové miesto, ktoré je treba poznať. Tak napríklad ukazovateľ 116 by mohol ukazovať kód v bufŕe 112, ktorý sa vykonáva- Keď vonkajšia procesorová jednotka 22 má potrebu vykonávať prídavné funkcie, ktoré nie sú zabezpečené kódom uloženým v ľavom bufŕe, na vhodnú žiadosť z vonkajšej procesorovej jednotky 22 behom vykonávania kódu v ľavom bufŕe 112 by vonkajšia procesorová jednotka 22 mala začať naplňovať pravý bufer 114. Po dokončení naplnenia bufra 114 by bežný bufer bol zmenený, ako je schematický znázornené ukazovateľom 118, pre ukazo14 vanie vpravo, napríklad pri nasledujúcej slučke cez kód by ukazovateľ zabezpečil štartovnú adresu kódu v pravom bufre 114 obsahujúcom novú funkciu, ktorá má byt vykonaná, pričom vykonávanie by začalo slučkou a vykonal by sa nový kód teraz uložený v pravom bufre 114. V ďalšom čase vonkajšia procesorová jednotka 22 vyžadovala prídavnú funkciu, ktorá by bola zabezpečená kódom, ktorý teraz nie je uložený v pravom bufre 114, spôsobom korelatívnym ku skôr popisovaným krokom, vonkajšia procesorová jednotka 22 by odtiaľ začala vypĺňať ľavý bufer 112. Spôsobom podobným kresbe na obr. 5, keď bolo dokončené plnenie ľavého bufra 114 kódom pre vykonávanie týchto prídavných funkcií, ukazovateľ by bol opäť zmenený, ako je schematicky znázornené ukazovateľom 120 pre priame vykonanie vonkajšou procesorovou jednotkou 22 kódu začínajúceho na adrese označené ukazovateľom 120 zodpovedúcej počiatočnej adrese nového kódu práve zavedeného do ľavého bufra 112.
Existuje jeden problém s predchádzajúcim obvyklým usporiadaním bufrov s ohľadom na koprocesorové prostredie vynálezu, ktoré obsahuje vonkajšiu procesorovú jednotku 22 i procesor 26 Číselných signálov. Procesor 26 číselných signálov by mohol byť uprostred vykonávania kódu v ľavom bufre 112, hoci pravý bufer 114 bol plnený, keď druhá žiadosť z vonkajšej procesorovej jednotky 22 o druhý nový modul je prijatá v rýchlom slede po prvej žiadosti, to znamená, že vonkajšia procesorová jednotka 22 prijala žiadosť o predatovanie bufrov dvakrát v rýchlom slede. V takomto by vonkajšia procesorová jednotka 22 začala písať v kóde pre novú funkciu do ľavého bufra 112, takže by prepisovala nevykonaný kód v ľavom bufre 112. Z dôvodu uvedeného vyššie v koprocesorovom prostredí vynálezu vyvstala požiadavka vysporiadať sa s touto možnosťou. Ako je znázornené v obr. 7, vynález čiastočne rieši situáciu tu vyznačenú, kde bežný ukazovateľ 140 ukazuje na kód v bežnom vykonávanom bufre 112 a ďalší ukazovateľ 142 ukazuje na nový kód v bufre 114. Potom keď procesor nechal kód bufra 112. aby začal vykonávať nový kód bufra 114 (snáď uprostred vykonávania bufra 112). nasledujúca žiadosť žiadajúca naplnenie bufra 112 by mohla spôsobiť písanie kódu zavádzajúcu tieto nové funkcie nad kód, ktorý má byť teraz vykonávaný v buŕre 112.
Pred popisovaním činnosti vynálezu s prihliadnutím na obr.
6Α - 6D by malo byt vykonané odlíšenie od formy dynamického zväzovania známeho v odbore s odkazom na systémy s jedným procesorom používajúce nejaký operačný systém ako napríklad OS/2.
V týchto systémoch procesor vykonávajúci kódy je tiež procesorom zavádzajúcim kódy a tu teda nie je možnosť kolízie medzi týmito oboma množinami kódov v bufroch 112 a 114. V takom systéme obsahujúcom jediný procesor a jedinú súvislost, keď bol dosiahnutý čas pre odbočenie vonkajšej procesorovej jednotky 22 k novému podprogramu, vykoná sa vyvolanie riadiaceho obvodu, ktorý je v odbore dobre známy a ktorý zavedie kódový modul, ktorý vykoná kód, načo sa vykoná návrat do miesta volania. To nie je v podstate nič iné, ako volanie podprogramu, kde sa získa adresa, vykoná sa skok na ňu a potom návrat do miesta volania.
V takých systémoch hoci zväzovanie kódových modulov sa môže odohrávať dynamicky pri behu, ako bolo vyššie uvedené, pretože tu je len jeden procesor pre vykonávanie a* zavádzanie kódu, i keď moduly, ktoré sa zavádzajú a vykonávajú, sä môžu v čase dynamicky meniť, ako je žiadané, v systéme s jedným procesorom nie je žiadne nebezpečie konfliktu pri vykonávaní kódových modulov. To je rozdiel od koprocesorového systému podľa vynálezu, kde vonkajšia procesorová jednotka 22 i procesor 26 číselných signálov môžu súčasne vykonávať kód a mať prístup k zdielanej pamäti 28 adaptéru 24.
S prihliadnutím na obr. 6 bude podrobne popísané schematické znázornenie systému, ukazovateľov použité vo vynáleze. ktorý systém umožňuje vykonávanie dynamického zväzovania kódových segmentov v reálnom čase. Ako je vidno zo sledu kresieb v obr.
6A - 6D. prvý obr. 6A má znázorniť začiatok sledu, kde adaptér vykonáva kód nachádzajúci sa v ľavom bufre 112. V tomto stupni v každom čase adaptér 24 prebieha tento kód v slučke na získanie bežného ukazovateľa 120, ktorý ukazuje na adresu, kde sa kód nachádzajúci sa v bufre 112 vykonáva. Vonkajšia procesorová jedncit-ka 22 skutočne vykonáva kód s ňou združený asynchrónne. Keď vonkajšia procesíorová jednotka 22 vykonáva svoj kód a určí potrebu implementácie inej funkcie, ako ktorá sa bežne vykonáva procesorom 26 číselných signálov prostredníctvom kódu v bufre 112 <to znamená, keď vonkajšia procesorová jednotka 22 určí potrebu vykonať modul ako je v obr. 2 procesorom 26 číselných signálov odlišný od bežne vykonávaného ako výsledok kódu v bufre 112), vonkajšia procesorová jednotka 22 najprv spôsobí okopírovanie onej adresy (to znamená, adresy obsiahnutej v bežnom ukazovateli 120). Vonkajšia procesorová jednotka 22 môže ovšem vytvoriť takú kópiu adresy združenej s bežným ukazovateľom 120. pretože umiestnenie ukazovateľov bude na známych spoločných adresách zdielaných procesorom 26 číselných signálov i vonkajšou procesorovou jednotkou 22, to znamená, že sa jedná o tesne zviazaný koprocesorový systém.
S prihliadnutím na obr. 6A je tiež hodno uviest, že '‘ďalší'· ukazovateľ 122 je usporiadaný v systéme 110 pamäti. Tento ďalší ukazovateľ je ukazovateľ, ktorý oznamuje procesoru 26 číselných signálov, keď dokončil slučku cez kód v danom bufre 112 alebo 114, presné miesto adresy, kde by malo začať vykonávanie kódu nejakého modulu v ďalšom čase, to znamená, že v ďalšom čase slučka prechádža bodom hornej vetvy systému 110. Keď teda v prípade znázornenom na obr. 6A je procesor 26 číselných signálov uprostred vykonávania kódu modulu obsiahnutého v bufre 112. ďalší ukazovateľ 122. bude ukazovať vľavo. čo oznamuje, že keď v tomto čase pokračovalo vykonávanie cez bufer 112 a malá by pokračovať slučka späť k vrcholu ľavého bufra 112 na vykonávanie.
Ak vonkajšia procesorová jednotka 22 pri asynchrónnom vykonávaní jej vlastného kódu určila, že tento ďalší modul je nutný pre procesor 26 číselných signálov pre začiatok vykonávania, vopred prekopíruje ukazovateľ 120C do ukazovateľa 133N, pozri obr. 6B. Potom začne vonkajšia jednotka 22 naplňovať pravý bufer 114 novým modulom. Tak dlho ako vonkajšia procesorová jednotka 22 pokračuje v plnení tohto bufra 114 kódom novej funkcie alebo modulu, je treba uviesť, že bežný ukazovateľ 120C a jeho kópie 133N v obr. 6B budú pokračovať v ukazovaní miesta adresy začiatku ľavého bufra 112, čím bude procesor 26 číselných signálov informovaný, aby vykonával tento kód obsiahnutý v ľavom bufre 112. Inými slovami, tento bežný ukazovateľ 120C alebo 133N slúži funkcii informovania vonkajšej procesorovej jednotky 22, aby nezapisovala kód do ľavého bufra 12, pretože procesor 26 číselných signálov práve tento kód vykonáva, to znamená, že'bežný ukazovateľ ukazuje na adresu štartu kódu procesora 26 číselných signálov bežne vykonávaného v slučke.
Pokračujme vysvetlením k obr. 6D, keď bol bufer 114 celkom naplnený vonkajšou procesorovou jednotkou 22. Potom ukazovateľ 133N je reverzovaný (znázornený teraz ako ukazovateľ 132N v obr. 6C a 6D). Keď procesor 26 číselných signálov vykonal zostávajúcu čast kódu v bufre 112 pre posledný čas a dosiahne bod rozvetvenia združený s ukazovateľmi reprezentovanými vrcholom systému 110. ďalší ukazovateľ 132N, viď obr. 6C, teraz čítaný procesorom 26 číselných signálov bude teraz ukazovať na kód v pravom bufre 114. Procesor 26 číselných signálov nebude kopírovať ukazovateľ 132N do bežného ukazovateľa 134C. Tento t· v* lez tento bežný procesorovú ukazovateľ 134C informuje teraz vonkajšiu jednotku 22, aby nepísala·ešte prídavnú funkciu alebo moduly do teraz bežne vykonáva v pravom bufre 114. ukazovateľ teraz ukazuje pravého bufra 114. pretože procesor v slučkách kód modulov obsiahnutý Z predchádzajúceho je zrejmé, že bežný na adresu bufra, procesor 26 číselných signálov odskočil v poslednom čase v slučkách kódu v jednom z bufrov. Naproti tomu ďalší ukazovateľ ukazuje na adresu bufra, kde procesor 26 číselných signálov bude vykonávať kód v ďalšom čase cez systém
110.
Predchádzajúce skutočnosti môžu byt jasné s prihliadnutím na obr. 8, ktorý v podstate znázorňuje vývojovú schému krokov vykonávaných systémom podľa vynálezu pre dosiahnutie vyššie popísaného dynamického zväzovania kódových segmentov v reálnom čase v tesne spojenom procesorovom systéme. Z tejto vývojovej schémy a z predchádzajúceho popisu môže byt vyvíjaný vhodný kód pre vykonanie týchto krokov spôsobom podľa vynálezu. Prvý blok 150 je určený, aby dohodou predstavoval štartovný bod v procese, v ktorom procesor 26 číselných signálov prvý modul nachádzajúci sa v bufre 112. V bode znázornenom blokom 152 ukazovateľ 120 z obr. 6A ukazuje na štartovnú adresu kódu, ktorý sa nachádza v tomto ľavom bufre 112.' Pri bloku 154 je ďalej označené, že ďalší ukazovateľ 122N z obr. 6A tiež ukazuje na tento ľavý bufer 112. U niektorého bodu v asynchrónnom systéme, kde vonkajšia procesorová jednotka 22 vykonáva svoj vlastný kód, vonkajší program oznamuje vykonávanie druhého modulu. sa žiada iný než ten. ktorý je prítomný v bufre 112 a je podrobený bežnému vykonávaniu. To sa odráža v bloku 156 na obr.8.
V tomto bode vonkajšia procesorová jednotka 22 čítajúca bežný ukazovateľ 120C. ktorý ukazuje k ľavému bufru 112. vie. že procesor 26 číselných signálov plynulo pokračuje vo vykonávaní kódu v bufre 112. Vonkajšia procesorová jednotka 22 okopíruje bežný ukazovateľ 120C do ďalšieho ukazovateľa 133N. blok 160. ktorý tiež ukazuje na blok 160. ktorý tiež ukazuje na bufer 112. a potom začne plnenie bufra 114 kódmi nového modulu, viď blok 158.
Keď je bufer 114 naplnený, ako je znázornené u bloku 164 na
132N, ktorý To znamená.
obr. ,9. ďalší ukazovateľ 133N na obr. 6B je reverzovaný ako je znázornené na obr. 6C. aby sa teraz stal ďalším ukazovateľom teraz ukazuje na úplné naplnenie pravého bufra 114. ako bolo uvedené vyššie, že v ďalšom čase procesor číselných signálov je pripravený začať cyklus vykonávania kódu v bufre 112. ktorý pretože pravý bufer 114 je teraz naplnený (a ďalší ukazovateľ reverzovaný ako ukazovateľ 132N teraz ukazuje na bufer 114). procesor 26 číselných signálov môže teraz začať vykonávanie kódu v bufre 114 behom ďalšieho cyklu cez kódy v pufroch. To je ukázané na bloku 166 a bloku 167.
Konečne blok 168 ukazuje, že na ďalšiu žiadosť, aby bol procesorom 26 číselných signálov vykonaný prídavný nový modul, bude pokračovať zrkadlový obraz alebo proces opačný k práve popísanému procesu, kde vonkajšia procesorová jednotka 22 začne napĺňať bufer 112. zatiaľ čo procesor číselných signálov vykonáva kód bufra 114. Keď je bufer 112 úplne naplnený a procesor 26 číselných signálov dokončil vykonávanie celého kódu v bufre 114. procesor 26 číselných signálov v súhlase s prevrátením ukazovateľov vyššie popísaným spôsobom opäť začne vykonávať kód v bufre 112Hoci bol vynález vysvetlený na zvláštnom príklade vyhotovenia bude odborníkovi zrejmé, že je možné vykonať celý rad obmien bez toho.-aby sa vybočilo z rámca myšlienky vynálezu.
NÁHRADNÁ STRANA - 19 PATENTOVÉ NÁROKY

Claims (12)

1. Spôsob zväzovania kódových modulov v počítačovom systéme, majúcom prvý procesor a druhý procesor, ktoré majú prístup k prvému bufru a k druhému bufru, vyznačujúci sa tým, že:
a) vyvinie sa premenná prvého ukazovateľa ukazujúca na prvý bufer obsahujúci prvý kódový modul vykonávaný prvým procesorom (150).
b) vytvorí sa prístup premennej prvého ukazovateľa druhým procesorom (160),
c) nastaví sa premenná druhého ukazovateľa rovná premennej prvého ukazovateľa zmieneným druhým - procesorom (160),
d) uloží sa druhý kódový modul druhým procesorom proti zmienenému prvému bufru ukazovaný zmienenou premennou prvého ukazovateľa, to je v zmienenom druhom bufri (159),
e) premenná druhého ukazovateľa sa nastaví k zmienenému protiľahlému druhému bufru (164),
f) vytvorí sa prístup prvého procesora k premennej druhého ukazovateľa a vytvorí sa kópia premennej druhého ukazovateľa prvým procesorom ku zmienenej premennej prvého ukazovateľa (166) a
g) vykoná sa skok prvým procesorom na druhý kódový modul uložený v zmienenom druhom bufri ukazovaný premennou prvého ukazovateľa (167).
2. Spôsob podľa bodu 1, vyznačujúci sa tým. že druhý kódový modul sa zväzuje v reálnom čase.
3. Spôsob podľa bodu 2, vyznačujúci sa tým, že zdielaná pamäť obsahuje prvý bufer a druhý bufer.
4. Spôsob podľa bodu 3, vyznačujúci sa tým, že prvý procesor striedavo vykonáva kódy z prvého bufru a z druhého bufru.
5. Spôsob podľa bodu 4, vyznačujúci sa tým, že druhý procesor striedavo zavádza kód do druhého bufra, keď prvý
NÁHRADNÁ STRANA procesor vykonáva kód v prvom bufri a druhý procesor zavádza kód do prvého bufra, keď prvý procesor vykonáva kód v druhom bufri.
6. Spôsob podľa bodu 5 vyznačujúci sa tým, že premenná prvého ukazovateľa sa nastaví na adresové miesto zodpovedajúce jednému z bufrov. keď prvý procesor vykonáva priebežne kód a premenná druhého ukazovateľa sa nastaví na adresové miesto zodpovedajúce zostávajúcemu bufru po predatovaní druhým procesorom.
7. Spôsob podľa bodu 6, vyznačujúci sa tým, že prvý procesor je procesor číselných signálov.
8. Spôsob podľa bodu 7, vyznačujúci sa tým, že prvý procesor je mikroprocesor.
9. Spôsob podľa bodu 8, vyznačujúci sa tým, že prvý kódový modul zodpovedá kódu, ktorý spôsobuje, že prvý procesor číselných signálov vyvíja akustické dáta zodpovedajúce prvému zvuku.
10. Spôsob podľa bodu 9, vyznačujúci sa tým, že druhý kód zodpovedá kódu, ktorý spôsobuje, že procesor číselných signálov vyvíja akustické dáta zodpovedajúce druhému zvuku.
11. Spôsob podľa bodu 10, vyznačujúci sa tým, že procesor číselných signálov vykonáva prvý a druhý kódový modul z prvého a druhého bufra striedavo rýchlosťou, v ktorej sú prvý a druhý zvuk prijímané sluchom, ako by boli súčasné.
12. Systém pre zväzovanie kódových segmentov v mu 11i procesorom počítačovom systéme majúcom prvý a druhý procesor s prístupom do zdielanej pamäti, vyznačujúci sa tým, že obsahuje prostriedok pre vykonávanie prvým procesorom kódu v zdielanej pamäti zodpovedajúceho prvej funkcii a prostriedok pre zviazanie kódu zodpovedajúceho druhej funkcii s druhým procesorom v priebehu vykonávania kódu prvým procesorom.
SK41393A 1990-11-01 1991-10-29 System and method for dynamically linked code segments in real time SK41393A3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60812690A 1990-11-01 1990-11-01
PCT/EP1991/002036 WO1992008192A1 (en) 1990-11-01 1991-10-29 System and method for dynamically linking code segments in real time

Publications (1)

Publication Number Publication Date
SK41393A3 true SK41393A3 (en) 1993-07-07

Family

ID=24435152

Family Applications (1)

Application Number Title Priority Date Filing Date
SK41393A SK41393A3 (en) 1990-11-01 1991-10-29 System and method for dynamically linked code segments in real time

Country Status (10)

Country Link
US (1) US5539896A (sk)
EP (1) EP0483970A1 (sk)
JP (1) JP3203701B2 (sk)
CZ (1) CZ9300787A3 (sk)
HU (1) HU215862B (sk)
IL (1) IL99744A (sk)
PL (1) PL166975B1 (sk)
SK (1) SK41393A3 (sk)
WO (1) WO1992008192A1 (sk)
ZA (1) ZA918427B (sk)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253275A (en) * 1991-01-07 1993-10-12 H. Lee Browne Audio and video transmission and receiving system
AU4219693A (en) * 1992-09-30 1994-04-14 Apple Computer, Inc. Inter-task buffer and connections
GB2272085A (en) * 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
US5949891A (en) * 1993-11-24 1999-09-07 Intel Corporation Filtering audio signals from a combined microphone/speaker earpiece
JP3171361B2 (ja) * 1994-05-06 2001-05-28 ヤマハ株式会社 Dspプログラミング装置
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
US5619731A (en) * 1994-09-23 1997-04-08 Ardent Teleproductions, Inc. Interactive music CD and data
US5685005A (en) * 1994-10-04 1997-11-04 Analog Devices, Inc. Digital signal processor configured for multiprocessing
US5671446A (en) * 1995-03-16 1997-09-23 Apple Computer, Inc. Method and apparatus for atomically accessing a queue in a memory structure where LIFO is converted to FIFO
US5696990A (en) * 1995-05-15 1997-12-09 Nvidia Corporation Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
GB2301003B (en) * 1995-05-19 2000-03-01 Sony Uk Ltd Audio mixing console
US6078945A (en) * 1995-06-21 2000-06-20 Tao Group Limited Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques
US5799314A (en) * 1995-06-30 1998-08-25 Sun Microsystems, Inc. System and method of controlling mapping of data buffers for heterogenous programs in digital computer system
US5909702A (en) * 1995-09-29 1999-06-01 Intel Corporation Memory address translations for programs code execution/relocation
JP3087638B2 (ja) * 1995-11-30 2000-09-11 ヤマハ株式会社 音楽情報処理システム
US5819067A (en) * 1996-02-23 1998-10-06 Advanced Micro Devices, Inc. Computer system configured to translate a computer program into a second computer program prior to executing the computer program
US6031916A (en) * 1996-02-28 2000-02-29 Kabushiki Kaisha Kawai Gakki Seisakusho Sound effect adding device using DSP
US5809342A (en) * 1996-03-25 1998-09-15 Advanced Micro Devices, Inc. Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
US5763801A (en) * 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5890013A (en) * 1996-09-30 1999-03-30 Intel Corporation Paged memory architecture for a single chip multi-processor with physical memory pages that are swapped without latency
JP3747584B2 (ja) * 1996-10-18 2006-02-22 ヤマハ株式会社 端末装置の機能拡張方法及びホストコンピュータ並びに端末装置
US6453409B1 (en) * 1996-11-07 2002-09-17 Yamaha Corporation Digital signal processing system
WO2000000887A1 (en) * 1998-06-30 2000-01-06 Intergraph Corporation Method and apparatus for transporting information to a graphic accelerator card
US6308253B1 (en) * 1999-03-31 2001-10-23 Sony Corporation RISC CPU instructions particularly suited for decoding digital signal processing applications
FR2809508B1 (fr) * 2000-05-23 2002-08-30 Thomson Csf Systeme et methode de gestion d'une architecture multi-ressources
AU756842B2 (en) 2000-08-29 2003-01-23 Hoya Corporation Optical element having antireflection film
JP2002207708A (ja) * 2001-01-12 2002-07-26 Mitsubishi Electric Corp 演算装置
EP1293895A3 (en) * 2001-09-14 2006-01-25 Ricoh Company, Ltd. Program execution apparatus, method for creating an executable program and address solution method
US7174548B2 (en) * 2001-10-15 2007-02-06 Intel Corporation Managing firmware download
US7546451B1 (en) * 2002-06-19 2009-06-09 Finisar Corporation Continuously providing instructions to a programmable device
US6996699B2 (en) * 2002-09-10 2006-02-07 Microsoft Corporation Secondary processor execution kernel framework
DE60309923T2 (de) * 2002-11-05 2007-10-18 Koninklijke Philips Electronics N.V. Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster
JP4542308B2 (ja) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
JP4837247B2 (ja) * 2003-09-24 2011-12-14 パナソニック株式会社 プロセッサ
US7487498B2 (en) * 2003-11-12 2009-02-03 Microsoft Corporation Strategy for referencing code resources
US7266804B2 (en) 2004-02-20 2007-09-04 Microsoft Corporation Strategy for selectively making non-public resources of one assembly visible to another
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
US8489783B2 (en) * 2007-01-03 2013-07-16 Apple Inc. Multi buffer asynchronous scheme for processing incoming information
EP2169540A4 (en) * 2007-06-20 2010-09-15 Fujitsu Ltd PROCESSING DEVICE
US8041848B2 (en) * 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US9250858B2 (en) * 2013-02-20 2016-02-02 International Business Machines Corporation Dual-buffer serialization and consumption of variable-length data records produced by multiple parallel threads
EP2840503A1 (de) * 2013-08-22 2015-02-25 Continental Automotive GmbH Verfahren zum Betreiben eines Pufferspeichers einer Datenverarbeitungsanlage und Datenverarbeitungsanlage
US20150363437A1 (en) * 2014-06-17 2015-12-17 Ims Health Incorporated Data collection and cleaning at source
US11716264B2 (en) 2018-08-13 2023-08-01 Cisco Technology, Inc. In situ triggered function as a service within a service mesh

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US4333143A (en) * 1979-11-19 1982-06-01 Texas Instruments Input process sequence controller
JPS57191764A (en) * 1981-05-21 1982-11-25 Nec Corp Storage device
US4562436A (en) * 1982-07-16 1985-12-31 At&T Bell Laboratories Data communication network
US4897780A (en) * 1984-10-09 1990-01-30 Wang Laboratories, Inc. Document manager system for allocating storage locations and generating corresponding control blocks for active documents in response to requests from active tasks
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4667286A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for transferring data between a disk and a central processing unit
US4841437A (en) * 1985-09-18 1989-06-20 Lp Com System architecture for a test apparatus having primary and dependent processors
US4694426A (en) * 1985-12-20 1987-09-15 Ncr Corporation Asynchronous FIFO status circuit
US5133062A (en) * 1986-03-06 1992-07-21 Advanced Micro Devices, Inc. RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
DE3610155A1 (de) * 1986-03-26 1987-10-08 Joachim Bauer Mehrprozessorsystem fuer paralleles schreiben und lesen von informationen
US4791629A (en) * 1986-06-02 1988-12-13 Ibm Corporation Communications switching system
US4791489A (en) * 1987-03-06 1988-12-13 Michael Polatnick General purpose video special effects system and method therefor
US5163132A (en) * 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
US4991169A (en) * 1988-08-02 1991-02-05 International Business Machines Corporation Real-time digital signal processing relative to multiple digital communication channels
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system
US5167028A (en) * 1989-11-13 1992-11-24 Lucid Corporation System for controlling task operation of slave processor by switching access to shared memory banks by master processor
JPH03180933A (ja) * 1989-12-08 1991-08-06 Matsushita Electric Ind Co Ltd スタックメモリ
US5150456A (en) * 1990-08-06 1992-09-22 Elite High Technology, Inc. Graphic image printing system and method

Also Published As

Publication number Publication date
JPH04289955A (ja) 1992-10-14
PL166975B1 (pl) 1995-07-31
ZA918427B (en) 1992-08-26
CZ9300787A3 (cs) 2002-07-17
WO1992008192A1 (en) 1992-05-14
JP3203701B2 (ja) 2001-08-27
EP0483970A1 (en) 1992-05-06
IL99744A (en) 1995-05-26
HU9301263D0 (en) 1993-08-30
HUT65534A (en) 1994-06-28
US5539896A (en) 1996-07-23
HU215862B (hu) 1999-03-29

Similar Documents

Publication Publication Date Title
SK41393A3 (en) System and method for dynamically linked code segments in real time
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US6112312A (en) Method for generating functional tests for a microprocessor having several operating modes and features
CA2082408C (en) System and method for preserving source instruction atomicity in translated program code
US4987537A (en) Computer capable of accessing a memory by supplying an address having a length shorter than that of a required address for the memory
KR101032563B1 (ko) 데이터 프로세싱 장치, 머신 구현형 방법 및 컴퓨터 판독가능 매체
JP2001508909A (ja) バーチャルマシン命令を処理するためのデータ処理装置
US4780819A (en) Emulator system utilizing a program counter and a latch coupled to an emulator memory for reducing fletch line of instructions stored in the emulator memory
US5689694A (en) Data processing apparatus providing bus attribute information for system debugging
JPH0527143B2 (sk)
JPH05505274A (ja) 2個の非類似プログラムユニット間の呼出規格を自動的にインターフェイスさせるシステム及び方法
US5852729A (en) Code segment replacement apparatus and real time signal processor using same
EP0062658A4 (en) STACK STORAGE FOR A DATA PROCESSING SYSTEM.
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US5440757A (en) Data processor having multistage store buffer for processing exceptions
JPS6282402A (ja) シ−ケンス制御装置
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JPH01255933A (ja) 掃出し制御方式
JPH0561660B2 (sk)
JPH03229333A (ja) データ入力装置のデータファイル入力方式
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JPH0713861A (ja) Cpuインタフェース装置
JPH02110636A (ja) タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ
JPH10207764A (ja) Dspのメモリアドレス制御装置
JPH08272612A (ja) パイプライン計算機シミュレータ