PL170083B1 - Sposób przetwarzania danych w multimedialnym urzadzeniu komputerowym i multimedialne urzadzenie komputerowe PL PL - Google Patents
Sposób przetwarzania danych w multimedialnym urzadzeniu komputerowym i multimedialne urzadzenie komputerowe PL PLInfo
- Publication number
- PL170083B1 PL170083B1 PL92302682A PL30268292A PL170083B1 PL 170083 B1 PL170083 B1 PL 170083B1 PL 92302682 A PL92302682 A PL 92302682A PL 30268292 A PL30268292 A PL 30268292A PL 170083 B1 PL170083 B1 PL 170083B1
- Authority
- PL
- Poland
- Prior art keywords
- dsp
- dma
- data
- digital processor
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
- Complex Calculations (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
- Selective Calling Equipment (AREA)
- Communication Control (AREA)
Abstract
1 . Sposób przetwarzania danych w multimedialnym urza- d z e n i u komputerowym zawierajacym pierwszy procesor cyfrowy, do wykonywania programów zadaniowych uzytkownika, oraz drugi procesor cyfrowy, do realizacji zadan przetwarzania sygnalu cyfro- wego we wspóldzialaniu z w ykonywaniem programów zadanio- wych uzytkownika w pierwszym procesorze cyfrowym, znam ienny tym , ze wyznacza sie na wstepie ogólne wymagania sprzetowe drugiego procesora cyfrowego niezbedne do wspomagania realiza- cji aktywnych, wybranych przez uzytkownika programów zadanio-- wych, nastepnie porównuje sie wym agania sprzetowe drugiego procesora cyfrowego z maksymalnymi dostepnymi mozliwosciami drugiego procesora cyfrowego oraz elim inuje sie realizacje kazdego z wybranych przez uzytkownika programów zadaniowych w pier-- wszym procesorze cyfrowym , jezeli wym agania zwiazane z reali-- zacja programu zadaniowego powoduja, ze ogólne wymagania sprzetowe drugiego procesora cyfrowego przekraczaja maksymalne dostepne mozliwosci tego drugiego procesora cyfrowego, po czym zestawia sie, zgodnie do otrzymanych przez drugi procesor cyfrowy zadan przetwarzania sygnalu cyfrowego, dzielone na partycje kolej- ki zadan przesylu danych z bezposrednim dostepem do pamieci oraz wstawia sie znaczniki partycji w kolejke w regularnych przedzialach czasu, po czym udostepnia sie dane przeznaczone do przekazania w pierwszym procesorze cyfrow ym lub w drugim procesorze cyf- rowym i przesyla sie dane do pamieci buforowej, oraz udostepnia sie pamiec buforowa pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, w której dane m aja zostac zapisane, i przesyla sie dane do pamieci buforowej pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, a nastepnie zezwala sie na wykona- nie zadan przesylu danych z partycji kolejki w przedziale czasu, w którym drugi procesor cyfrowy zestawia inna partycje kolejki. Fig. 2 PL PL
Description
Przedmiotem wynalazku jest sposób przetwarzania danych w multimedialnym urządzeniu komputerowym i multimedialne urządzenie komputerowe, przeznaczony zwłaszcza do wielozadaniowego przetwarzania sygnałów cyfrowych w czasie rzeczywistym.
Procesory sygnałów cyfrowych są dobrze znanym elementem składowym wielu dostępnych systemów komputerowych. Specjalizowane cyfrowe procesory sygnałów (DSP) są dostarczane do sieci handlowej przez wielu producentów i są stosowane do bardzo szybkiego interacyjnego wykonywania algorytmów, wykorzystywanych do filtracji sygnałów cyfrowych, rozpoznawania lub syntezy mowy, sterowania serwomechanizmami, kodowanej generacji mowy, generacji muzyki i dźwięków, bazującej na próbkowaniu dysków kompaktowych wysokiej jakości, wykonywania funkcji modulacji i demodulacji danych przesyłanych za pomocą modemów, wykonywania funkcji kodowania i dekodowania w systemie telekopiowego przesyłania danych, wykonywania kompresji i wyświetlania danych dla obrazów kolorowych i monochromatycznych, wykonywania funkcji przetwarzania obrazów ruchomych i wielu protokołów konwersji lub kodowania danych, korekcji błędów lub podobnych funkcji. Lista potencjalnych przemysłowych zastosowań procesora sygnałów cyfrowych, takich jak na przykład szybkie, repetycyjne wykonywanie takich algorytmów jak przekształcenie Fouriera dla bardzo szybkich strumieni próbek cyfrowych sygnału analogowego, jest w rzeczywistości bardzo rozległa.
Szczególnie korzystną architekturę procesora sygnałów przedstawiano w opisie patentowym USA nr 4 794 517. Odwoływanie się do tego opisu patentowego jest dokonywane w celu ułatwienia zrozumienia budowy procesorów sygnałów cyfrowych oraz możliwość ich wykorzystania. Tym nie mniej dla specjalistów z tej dziedziny jest oczywiste, że wspomniana architektura procesora sygnałów stanowi jedno z konkurencyjnych rozwiązań dostępnych na rynku. Ponadto zastosowania procesorów sygnałów cyfrowych rosną prawie w postępie geometrycznym, szczególnie w rozwijającej się dziedzinie tak zwanych multimedialnych systemów komputerowych. Użytkownik takich systemów może żądać równoczesnego wykonywania wielu funkcji, takich jak kodowanie mowy dla celów transmisji, sterowanie ruchem obrazu, prowadzenie nadawania i odbierania modemowego, być może odtwarzanie w tle muzyki z dysków kompaktowych, a także realizowanie kilku aplikacji audiowizualnych lub multimedialnych. Aplikacje te mogą być
170 083 realizowane w typowych systemach bazowych, takich jak komputer personalny typu IBM System/2 lub w jakimkolwiek z wielu podobnie dostępnych wielozadaniowych systemów komputerowych znajdujących się obecnie w powszechnej sprzedaży.
Zadania przetwarzania sygnałów cyfrowych są zwykle w takich systemach multimedialnych ładowane (przez układ DMA) do specjalizowanego, szybkiego procesora sygnałów cyfrowych (DSP). Jednak w miarę wzrostu prędkości i pojemności pamięci procesorów, procesory te mogą również wykonywać zadania użytkownika, co zostanie dalej omówione. W systemach tego typu, funkcje układu (DMA) mogą być realizowane przez procesor DSP. W przypadku, gdy wymaganych jest tylko kilka kanałów dostępu DMA, typowy układ sterujący DMA może zezwolić procesorowi sygnałów i procesorowi bazowemu na obsługę jednego lub kilku modułów sprzętowych. Jednak w przypadku, gdy procesor bazowy jest procesorem wielozadaniowym i istnieje duża liczba urządzeń we/wy, istnienie tylko kilku kanałów DMA pomiędzy wielozadaniowym procesorem bazowym i pomocniczym procesorem sygnałów cyfrowych może stać się wąskim gardłem nie do pokonania, gdy z układu DMA korzystają równocześnie wszystkie działające urządzenia we/wy i różne moduły wykorzystywane w ramach realizacji zadania.
Rozważając typowe środowisko multimedialne, w którym do przetwarzania wielu próbek sygnału akustycznego wysokiej jakości wykorzystuje się znajdujące się w pamięci niezależne tablice próbek sygnału akustycznego, tablice sterujące wielu pamięci, obwiednie poziomów energetycznych i wysokości tonów zapamiętane w pamięci, można wskazać systemy wymagające stosowania większej od stu liczby oddzielnych kanałów bezpośredniego dostępu (DMA) w czasie mniejszym od milisekundy. W przypadku 16 stereofonicznych kanałów akustycznych wysokiej jakości (hi-fi), każdy kanał akustyczny wymaga przesłania 88200 bajtów próbek na sekundę. Mając na uwadze tak krótki czas należy zauważyć, że 100 kanałów DMA uczestniczy w 100000 transakcji blokowych na sekundę, przy czym każdy blok ma określony własny adres źródłowy i docelowy oraz wielkość przesyłanego bloku. Przy stosowaniu konwencjonalnych układów bezpośredniego dostępu do pamięci, procesor systemowy, tak jak procesor sygnałów cyfrowych powinien otrzymywać przerwania dla każdego nowego przesłania danych, w celu wykonania wymaganych operacji, średnio co około 10 mikrosekund. Wykonanie każdego przesłania będzie wymagało kilku cykli maszynowych, a system szybko przestanie działać, ponieważ żadne zasoby procesora nie będą w stanie realizować bieżących zadań przetwarzania sygnałów wykraczających poza zadania niezbędne do sterowania bezpośrednim dostępem do pamięci.
Poza typowymi zastosowaniami fonicznymi mogą być wykonywane również inne zadania systemu bazowego, wymagające komunikacji pomiędzy procesorem sygnałów i procesorem głównym w tym samym czasie, w którym odbywa się odtwarzanie sygnałów fonicznych. Przykładem może być modem fototelegraficzny (fax) do przesyłania danych określających ruchomy obraz z lub do pamięci systemu głównego, w powiązaniu z foniczną informacją muzyczną, mową lub odtwarzanym tłem. Dodatkowo mogą być realizowane zadania rozpoznawania mowy wymagające przesyłania szablonów mowy pomiędzy pamięcią systemu głównego i pamięcią procesorów sygnału dla stwierdzenia ich zgodności, a następnie zwrotne zapisywanie elementarnych jednostek języka po ich rozpoznaniu. W tym samym czasie, w którym jest realizowana funkcja syntezy mowy łącznie z wyszukiwaniem danych fonemowych z banku pamięci systemowej, mogą być realizowane programy komputerowo wspomaganego obrazowania, dla których jest wymagany procesor sygnału wykorzystywany do wymagającego wielu złożonych iteracyjnych obliczeń, obracania trójwymiarowego obiektu znajdującego się w buforze obrazu wyświetlanego na ekranie. Wykonanie powyższych czynności wymaga wykorzystania olbrzymich ilości efektywnych kanałów bezpośredniego dostępu do pamięci działających w złożonym środowisku wieloprocesorowym i wielozadaniowym, wspomaganym przez procesor sygnałów.
Znane są układy scalone jednostek sterujących wieloma kanałami DMA, takie jak układ przedstawiony w opisie patentowym USA Nr 4 831 523. Układy tego typu działają jak jednostki sterujące urządzeń peryferyjnych i ich konstrukcja pozwala dołączyć do magistrali systemowej określoną liczbę, wynoszącą cztery, fizycznych urządzeń peryferyjnych. Urządzenia fizyczne
170 083 nie mogą być traktowane jako ekwiwalent procesów wielozadaniowych wymagających dla realizacji zadań wymaganych przez użytkownika, aby próbki przetwarzanych sygnałów były dostarczane według sztywnego harmonogramu wykonywanego w czasie rzeczywistym. Cztery fizyczne urządzenia peryferyjne zajmują w przybliżeniu nie więcej niż osiem kanałów DMA i tak urządzenia nie są obsługiwane przez z góry określony czas, ponieważ ich obsługa odbywa się w trybie cyklicznym i jedno urządzenie może wykonywać swoją pracę przez arbitralnie długi czas, likwidując tym samym możliwość zakończenia w ustalonym przedziale czasu pracy innego urządzenia działającego w czasie rzeczywistym.
Bezpośredni dostęp do pamięci, korzystający z mechanizmu wspólnego wykorzystania kanałów, przedstawiono również w publikacji IBM Technical Disclosure Biulletin tom 30 nr 7 opublikowanej w grudniu 1987, na stronach 369 i 370. Jednak przedstawiony tam mechanizm wymaga sprzętowych rozwiązań wejścia/wyjścia, które mogą być dynamicznie przyporządkowane. Okazuje się, że mechanizmem tym jest program, który dynamicznie przyporządkowuje małą liczbę kanałów sprzętowych DMA żądającym dostępu sprzętowym urządzeniom zewnętrznym, co daje możliwość wspólnego wykorzystania kanałów DMA. Nie istnieje sprecyzowana informacja określająca wymiar, liczbę lub przedział czasu, w którym może być wytworzone potwierdzenie przyjęcia do wykonania dowolnych żądań i nie są podawane żadne szczegóły o tym, w jaki sposób urządzenie sprzętowe może zrealizować to żądanie. Przedstawiony system nie jest w rzeczywistości systemem czasu rzeczywistego, to jest zadania, których wykonania zażądano i których próbki sygnałów będą przetwarzane i dostarczane, nie będą obsługiwane w precyzyjnie określonych i powtarzających się przedziałach czasowych, podobnie jak ma to miejsce w systemie odtwarzania muzyki z dysków kompaktowych, w których, z częstotliwością 88.200 bajtów na sekundę realizowane jest przesyłanie i przetwarzanie informacji, a przetworzone sygnały są przesyłane z powrotem do wykorzystania w żądanym zadaniu.
W opisie patentowym USA nr 4 807 121 przedstawiono system interfejsu dla urządzeń peryferyjnych, w którym procesor wejścia/wyjścia może być dołączony maksymalnie do czterech jednostek multipleksujących, przy czym każda taka jednostka może stanowić interfejs maksymalnie dla czterech jednostek sterujących. Procesor wejścia/wyjścia ma kanał DMA odbierający z multiplekserów zmultipleksowane dane szeregowe. Dane są przekazywane pomiędzy procesorem wejścia/wyjścia i dowolnąjednostką sterującą, poprzez wypełnianie obszaru pamięci bufora informacją z lokalnej pamięci procesora wejścia/wyjścia przesyłaną w sposób szeregowy kanałem DMA. Zastosowano tylko jeden kanał, a jego użytkowanie zapewnia układ multipleksujący. Paczki danych są przesyłane z jednostki sterującej do multipleksera według zasady podziału czasu i w sposób szeregowy z pamięci multipleksera do pamięci procesora. Nie ma jednak żadnych informacji o tym, że system ten ma jakiekolwiek elementy pozwalające spełnić wymagania dotyczące dynamiki, przy sztywnych harmonogramach pracy w czasie rzeczywistym, które to wymagania powstają przy równoczesnym wykonaniu zadań użytkowych wyżej wspomnianego typu.
Istotą sposobu przetwarzania danych według wynalazku w multimedialnym urządzeniu komputerowym zawierającym pierwszy procesor cyfrowy, do wykonywania programów zadaniowych użytkownika, oraz drugi procesor cyfrowy, do realizacji żądań przetwarzania sygnału cyfrowego we współdziałaniu z wykonywaniem programów zadaniowych użytkownika w pierwszym procesorze cyfrowym, jest to, że wyznacza się na wstępie ogólne wymagania sprzętowe drugiego procesora cyfrowego niezbędne do wspomagania realizacji aktywnych, wybranych przez użytkownika programów zadaniowych, następnie porównuje się wymagania sprzętowe drugiego procesora cyfrowego z maksymalnymi dostępnymi możliwościami drugiego procesora cyfrowego oraz eliminuje się realizację każdego z wybranych przez użytkownika programów zadaniowych w pierwszym procesorze cyfrowym, jeżeli wymagania związane z realizacją programu zadaniowego powodują, że ogólne wymagania sprzętowe drugiego procesora cyfrowego przekraczają maksymalne dostępne możliwości tego drugiego procesora cyfrowego. Następnie zestawia się, zgodnie do otrzymanych przez drugi procesor cyfrowy żądań przetwarzania sygnału cyfrowego, dzielone na partycje kolejki żądań przesyłu danych z bezpośrednim dostępem do pamięci oraz wstawia się znaczniki partycji w kolejkę w regularnych przedziałach czasu, po czym udostępnia się dane przeznaczone do przekazania w pierwszym
170 (983 procesorze cyfrowym lub w drugim procesorze cyfrowym i przesyła się dane do pamięci buforowej. Kolejno udostępnia się pamięć buforową pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, w której dane mają zostać zapisane, i przesyła się dane do pamięci buforowej pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, a następnie zezwala się na wykonanie żądań przesyłu danych z partycji kolejki w przedziale czasu, w którym drugi procesor cyfrowy zestawia inną partycję kolejki.
Istotą multimedialnego urządzenia komputerowego według wynalazku zawierające pierwszy procesor cyfrowy, do wykonywania programów zadaniowych użytkownika, jest to, że zawiera drugi procesor cyfrowy do przetwarzania sygnału cyfrowego we współdziałaniu z wykonywaniem programów zadaniowych użytkownika, magistralę systemu głównego włączoną między pierwszy procesor cyfrowy a podzespół urządzenia zawierający drugi procesor cyfrowy, przy czym podzespół ten zawiera ponadto układ analizowania nadchodzących żądań z zadaniami i zestawiania partycjowanej kolejki żądań przesyłu danych z bezpośrednim dostępem do pamięci, do przesyłania danych między pamięcią główną a drugim procesorem cyfrowym, układ wprowadzania znaczników regulacji ruchu w kolejce w regularnych odstępach czasu, do generacji sygnału startowego przesyłanego z drugiego procesora cyfrowego do międzyprocesorowego sterownika, oraz międzyprocesorowy sterownik do sterowania przesyłem danych między drugim procesorem cyfrowym a pamięcią główną, przy odczycie z pamięci głównej, w odpowiedzi na sygnał startowy, partycji danych spod adresu, pod którym ostatnio znajdował się pakiet oczekujący na żądanie przesyłu, ustawionego w kolejkę partycji.
Korzystne jest to, że zgodnie z wynalazkiem każde żądanie przesyłu danych z bezpośrednim dostępem do pamięci zawiera, generowane przez drugi procesor cyfrowy, pola specyfikujące dane określające adres źródłowy i adres przeznaczenia w pamięci, kierunek przesyłu danych, liczbę bloków przesyłanych danych, operacyjne wskaźniki sterujące i wskaźnik końca żądania.
Korzystne jest także, gdy według wynalazku międzyprocesorowy sterownik stanowi układ do sterowania przesyłem danych między pierwszym procesorem cyfrowym i drugim procesorem cyfrowym, zaś urządzenie zawiera magistrale danych i adresową łączące międzyprocesorowy sterownik z pierwszym procesorem cyfrowym i drugim procesorem cyfrowym. Międzyprocesorowy sterownik stanowi także układ realizacji przesyłu danych między pierwszym procesorem cyfrowym i drugim procesorem cyfrowym poprzez dostęp do partycjowanej kolejki i sterowanie przesyłem danych do pól danych wyspecyfikowanych w tych żądaniach. Drugi procesor cyfrowy stanowi układ zestawiania partycji kolejki i umieszczania w niej żądania przesyłu danych z międzyprocesorowego sterownika występujące w regularnych odstępach czasu, podczas których międzyprocesorowy sterownik realizuje przesył danych na podstawie żądań przesyłu danych z innych partycji kolejki.
Urządzenie według wynalazku korzystnie zawiera układy dostępu do zasobów przetwarzania sygnałowego drugiego procesora cyfrowego, niezbędnych do realizacji każdego z programów zadania użytkownika przy jego wybraniu przez użytkownika, przy czym dostęp obejmuje określenie maksymalnego żądania przesyłu bloku danych przez program zadania wybranego przez użytkownika w zadanym okresie czasu, maksymalnej żądanej prędkości wykonania i maksymalnej wielkości pamięci wymaganej przez drugi procesor cyfrowy. Międzyprocesorowy sterownik zawiera pamięć buforową i realizuje żądanie przesyłu danych przez dostęp do źródłowego adresu pamięci, umieszczenie danych spod niego w pamięci buforowej, dostęp do adresu przeznaczenia w pamięci i przesył danych pod ten adres z pamięci buforowej.
Zaletą rozwiązania według wynalazku jest efektywne wspomaganie wielozadaniowych operacji wykonywanych w pierwszym procesorze cyfrowym stanowiącym procesor główny, przy sztywnym harmonogramie pracy w czasie rzeczywistym.
Przedmiot wynalazku przestawiono w przykładzie wykonania na rysunku, na którym fig. 1 przedstawia zalecane wykonanie wynalazku w postaci blokowej z pokazanym operacyjnym przepływem danych zarówno do, jak i z obu procesorów cyfrowych, poprzez międzyprocesorowy sterownik, fig. 2 - schemat połączeń podzespołu z pierwszym procesorem cyfrowym z drugim procesorem cyfrowym stanowiącym procesor główny, fig. 3 - schemat przepływu danych w programowanym module wejścia/wyjścia magistrali DMA, jednostki sterującej i układzie
170 083 arbitrażu, fig. 4 - szczegóły formatu i zawartość rozkazów żądań pakietu DMA wytwarzanych w drugim procesorze cyfrowym, fig. 5 - wzajemne rozmieszczenie względem siebie rysunków na fig. 5 i 5B, które z kolei ilustrują przepływ danych do i na zewnątrz bufora pakietu i rejestrów do przepływu danych oraz informacji sterujących wewnątrz międzyprocesorowej jednostki sterującej i układzie arbitrażu DMA, fig. 6 - sieć działań programu w pierwszym procesorze cyfrowym ilustrującą tworzenie list roboczych zadań przetwarzania sygnału cyfrowego lub żądań i zarządzania nimi w taki sposób, aby nie przekroczyć dostępnych resursów przetwarzania sygnału w drugim procesorze cyfrowym, fig. 7 - wzajemne usytuowanie względem siebie fig. 7A i 7B, które z kolei ilustrują przebieg operacji międzyprocesorowej jednostki sterującej i układu arbitrażu DMA podczas przetwarzania list żądań pakietów stworzonych w drugim procesorze cyfrowym, fig. 8 - część sprzętu obsługującego układ DMA zastosowaną w zalecanym wykonaniu wynalazku, fig. 9 - wzajemne usytuowanie względem siebie, fig. 9A i 9B, które z kolei ilustrują sposób przesyłania w kanale DMA, wykonywany przez międzyprocesorowy układ arbitrażu i jednostkę sterującą DMA, zaś fig. 10 przedstawia sieć działań wyższego poziomu określającą realizowany w drugim procesorze cyfrowym sposób tworzenia listy pakietów.
Podany zostanie pełny opis zalecanego wykonania wynalazku, z krótkim omówieniem ilustrujących to wykonanie rysunków. Jednak na początku pożądane jest przedstawienie zakresu problemu z późniejszym zilustrowaniem efektywności i ulepszeń uzyskanych w wyniku zastosowania zrealizowanego według niniejszego wynalazku systemu i mechanizmu sterowania pakietami bezpośredniego dostępu do pamięciu (DMA).
Jak wspomniano wyżej, zarządzanie przepływem danych zarówno do jak i z podsystemu procesora sygnału cyfrowego (DSP) zaskakuje potencjalnie olbrzymimi obciążeniami procesora DSP. W charakterze przykładu można rozpatrzyć znajdujący się w obrocie handlowym komputer, taki jak Motorola 68030, w którym zastosowano powszechnie dostępny procesor, stanowiący rdzeń wielu komputerów personalnych. Typowym procesorem DSP może być procesor typu Motorola 56000 PC, który może być umieszczony na płycie głównej procesora. Pomiędzy procesorami 56000 i 68030 istnieje droga bezpośredniego dostępu do pamięci, tym nie mniej układ DMA obciąża tylko procesor 68030 i nie czyni nic dla poprawienia funkcjonowania procesora DSP 56000. Dla przesyłania każdego słowa pomiędzy procesorem 68030 i 56000 wykonywane jest krótkie przerwanie w procesorze 68030. Podczas tego przerwania magistrala procesora głównego jest dołączana do układu DMA, który przemieszcza następnie słowo danych lub próbkę sygnału. Jednak bezpośrednio po tym, gdy słowo zostaje przyjęte przez procesor DSP, w procesorze tym musi być wykonane przerwanie. Procesor DSP musi przerwać wykonywane w tym czasie działania i przesłać słowo danych do swojej pamięci przez układ obsługi przerwań.
Szacunkowa liczba cykli procesora DSP dla wykonania tych czynności wynosi około 10. Ponieważ w procesorze 56000 stosuje się trójfazowe sterowanie potokiem, powoduje to stratę w przybliżeniu jednego cyklu, natomiast dla zachowania zawartości kilku rejestrów wymagane jest wykonanie od dwu do trzech kolejnych cykli procesora, przy czym w ciągu kolejnych kilku cykli procesora odbywa się określanie wskaźnika indeksu pamięci DSP i wskaźnika sterowania licznika modularnego. Wreszcie kilka dodatkowych cykli procesora zostaje zużytych dla odtworzenia stanu maszynowego procesora DSP i jego powrotu do wykonywania przerwanego zadania. Ta pełna liczba około 10 cykli procesora jest niezbędna dla przesiania tylko jednego słowa danych lub próbki zarówno do procesora DSP jak i z tego procesora. Rozpatrywany procesor DSP należy do wskazywanych wcześniej procesorów tego typu jak przedstawiony procesor DSP w patencie USA Nr 4 794 517, w którym również zastosowano trójfazową architekturę potokową.
Niniejszy wynalazek pozwala uzyskać ulepszony system multimedialny przy zastosowaniu maszyny działającej z pakietami DMA, to jest posiadającej programowany mechanizm umożliwiający przesyłanie danych w bardziej efektywny sposób. Przesiania DMA są inicjalizowane przez żądania programowe wytwarzane w procesorze DSP, a nie w wyniku działania mechanizmu DMA. Mechanizm DMA zawierający jednostkę sterującą i układ arbitrażu ma za gwarantowaną obsługę procesora DSP w przedziale powtarzalnych okien czasowych,
170 083 których długość jest dobrana odpowiednio do przewidzianych do obsługi najbardziej czasochłonnych zadań z wykazu wielu zadań procesora głównego. Przykładowo w oknie czasowym o szerokości 726 mikrosekund można zebrać 32 bity (pełne słowo) próbek niezbędnych do uzyskania 88200 typowych próbek cyfrowego sygnału stereofonicznego dla zapewnienia odtwarzania średnio w każdym przedziale 726 mikrosekund. Przy typowej szybkości działania procesora DSP, w przedziale czasowym 726 milisekund można przetworzyć ponad 100 takich 32 bitowych pakietów. Pozwala to uzyskać pojemność ponad 100 pojedynczych transakcji lub kanałów komunikacyjnych dla przepływu danych pomiędzy zadaniami realizowanymi w wieloprogramowym systemie bazowym i operacjami wykonywanymi w podsystemie DSP.
Gdy jednostka sterująca kanałem DMA odczytuje żądanie przesłania pakietu umieszczone w kolejce podzielonej na sekcję w trakcie wykonywania przez procesor DSP zadania wymagającego obsługi, układ arbitrażu i jednostka sterująca bezpośrednim dostępem do pamięci będą wykonywały arbitraż dostępu do magistrali systemu bazowego np. magistrali IBM PS/2 microchannel lub ekwiwalentnej magistrali bazowej, a gdy układ arbitrażu i jednostka sterująca otrzymają od systemu bazowego potwierdzenie dostępu do magistrali dla żądania wysłanego przez procesor DSP, do pierwszego rejestru buforowego jednostki sterującej DMA typu FIFO (pierwszy wszedł pierwszy wyszedł) można przesunąć do 16 bajtów (zależnie od wielkości bufora) danych. Natychmiast po tym, gdy bajty znajdują się w rejestrze FIFO, układ arbitrażu i jednostka sterująca DMA będą prowadziły arbitraż lokalnej magistrali danych procesora DSP i bezpośrednio po wykonaniu potwierdzenia dostępu.prześlą słowo 16-to bitowe, a potem zlikwidują żądanie dostępu do magistrali. Słowo to jest następnie przesuwane do pamięci procesora DSP, a procesor DSP zostaje zatrzymany na jeden cykl magistrali. Tak więc na przesłanie każdego słowa tracony jestjeden cykl procesora DSP. Jednostka sterująca DMA i układ arbitrażu kontynuują arbitraż lokalnej magistrali DSP, aż do pełnego opróżnienia zawartości rejestru FIFO jednostki sterującej DMA. Następnie jednostka sterująca DMA wysyła do magistrali systemu bazowego nowe żądanie przesłania kolejnych danych.
Należy zauważyć, że proces arbitrażu magistrali systemowej lub magistrali procesora DSP jest prowadzony najbardziej efektywnie przez dedykowany programowalny sprzęt i procedury, takie jak zaimplementowane w układzie arbitrażu DMA i jednostce sterującej. Możliwość przetwarzania list pakietów w jednostce sterującej DMA pozwala efektywnie wykorzystywać zarówno magistralę systemu bazowego jak i magistralę procesora DSP. Przypominając opisane skrótowo wyżej wcześniejsze rozwiązania można zauważyć, że niniejsze rozwiązanie pozwala zaoszczędzić dziewięć z dziesięciu średnich cykli procesora DSP.
Wracając przykładowo do wspomnianego wyżej przetwarzania stereofonicznego sygnału hi-fi wymagającego podtrzymywania muzyki stereofonicznej z dysku kompaktowego stwierdzamy, że wymaga to odtwarzania w każdej sekundzie 88.200 standardowych 16-to bitowych próbek cyfrowych. To wymaga z kolei przesłania w każdej sekundzie 88.200 słów danych przez procesor systemu głównego, który odczytuje dysk kompaktowy, przesyła odczytane próbki do procesora DSP, odbiera przetworzone próbki foniczne z procesora DSP i odtwarza je w analogowych zintegrowanych segmentach fonicznych z szybkością 88.200 na sekundę. W maszynach wcześniejszej konstrukcji i wskazywanych wyżej systemach tylko ta operacja będzie wymagała procesora DSP o szybkości wyznaczonej iloczynem 88.200 słów na sekundę przez 10 cykli dla jednego słowa, to jest 882.000 cykli na sekundę. W zalecanym wykonaniu według niniejszego wynalazku wymagana szybkość procesora DSP wynosi tylko 88 200 cykli, to jest około dziesięciokrotnie mniej od wartości stosowanych we wcześniejszych rozwiązaniach.
Wracając do przykładu jednostki sterującej DMA i układu arbitrażu oraz stosowanego systemu przetwarzania list załóżmy, że żądania rozpoznawania mowy i zadanie odtwarzania stereofonicznych płyt kompaktowych hi-fi są realizowane równolegle, zgodnie z ustawieniem procesora głównego przez użytkownika, przy czym dla ich podtrzymania wymagane są środki procesora DSP. Zadanie rozpoznania mowy wymaga dla jednej operacji szacunkowo dwu kanałów DMA, jednego dla przyjmowanej, a drugiego dla wysyłanej informacji, przy czym prędkość szczytowa każdego z nich wynosi około 256 słów dla jednego kanału. Zadanie odtwarzania muzyki z dysku kompaktowego wymaga jednego kanału DMA, o prędkości szczytowej około 64 słów. Każdorazowo, gdy wykonywane są zadania foniczne związane z
170 083 dyskiem kompaktowym, a procesor DSP realizuje zadania przetwarzania sygnału z otrzymanych próbek, procesor ten musi przesłać dodatkowo 64 słowa danych z pamięci procesora systemu bazowego do pamięci procesora DSP. Aby to wykonać, procesor DSP każdorazowo wywołuje swoją procedurę obsługi operacyjnej żądania bezpośredniego dostępu do pamięci. Przy każdym wywołaniu dostarczany jest następny adres przewidziany do pobrania przez procesor systemu, a także następny adres pamięci wewnętrznej i początkowy odczyt, pod którym mogą być pamiętane przewidywane do pobrania 64 słowa. Każdorazowo, gdy w procesorze DSP jest realizowane zadanie rozpoznawania mowy, procedura obsługi żądania procesora DSP uzyskania bezpośredniego dostępu do pamięci jest wywoływana dwukrotnie. Każde zadanie będzie miało unikalny adres systemowy w systemie głównym, z którego będzie pobierana lub do którego będzie dostarczana informacja i unikalny adres pamięci procesora DSP, pod którym próbki będą pamiętane lub z którego będą pobierane. Każdorazowo, gdy w procesorze DSP są wykonywane zadania iteracyjne, procesor ten umieszcza w buforze dwa szablony identyfikacyjne. Długość każdego szablonu wynosi w przybliżeniu 256 słów.
W przypadku pojawienia się trzech żądań bezpośredniego dostępu do pamięci, reprezentowanych przez jedno żądanie wykonania zadania dotyczącego dysku kompaktowego i przez dwa żądania wykonania zadań rozpoznawania mowy, procesor DSP będzie umieszczał je w kolejce o strukturze segmentowej. Przykładowo rozpoczęte zadanie rozpoznania mowy, które umieściło swoje pierwsze żądanie, może być przerwane wówczas, gdy sterowanie przejmuje realizowane w DSP zadanie dotyczące płyty kompaktowej, które umieszcza swoje żądanie bezpośredniego dostępu do pamięci. Gdy żądanie wykonania zadania dotyczącego płyty kompaktowej zostanie zrealizowane, ponownie może rozpocząć się wykonywanie zadania rozpoznania mowy, które może umieścić swoje drugie żądanie bezpośredniego dostępu do pamięci. Jeżeli podczas jednego, 726 mikrosekundowego przedziału czasowego, podczas którego procesor DSP tworzy kolejkę o strukturze segmentowej umieszczone zostaną w tej kolejce tylko trzy podane żądania, to żądania te nie są obsługiwane przez jednostkę sterującą DMA w czasie ich umieszczania w kolejce. Przy następnym przerwaniu zegara 1,378 Hz (1/726 με) będzie pobrana i przetworzona przez układ arbitrażu i jednostkę sterującą bezpośrednim dostępem do pamięci następna grupa żądania pakietów DMA, umieszczonych w kolejce w poprzednich 726 mikrosekundach.
W tym przykładzie układ arbitrażu jednostki sterującej DMA w pierwszej kolejności znajdzie żądanie pakietu, które prosi o przesłanie 256 słów dla zadania rozpoznania mowy. Układ załaduje wskazane słowa sterujące z żądania pakietu dla określenia liczby słów, które należy przesłać oraz załaduje modułowo adresowane granice sterowania. Następnie układ odczyta adres pamięci systemu bazowego oraz adres pamięci procesora DSP i przeprowadzi arbitraż dostępu do magistrali pamięci głównej. Jednostka sterująca DMA i procesor, bezpośrednio po otrzymaniu potwierdzenia dostępu do magistrali pamięci głównej przesyłają szereg bajtów (w tym wykonaniu 16 bajtów) danych z pamięci procesora systemu bazowego do własnego bufora wewnętrznego. Następnie przeprowadzany jest arbitraż dostępu do magistrali procesora DSP i każdorazowo, po otrzymaniu potwierdzenia dostępu do magistrali, przeprowadzany jest zapis innego słowa do pamięci procesora DSP, zgodnie z adresem początkowym pamięci procesora DSP odczytanym ze słowa sterującego żądania pakietu DMA. Po wpisaniu wszystkich 16 bajtów, układ wraca z powrotem do arbitrażu dostępu do magistrali pamięci systemu głównego. Proces jest kontynuowany aż do zakończenia przesyłania wszystkich 256 słów. Następnie urządzenie bezpośredniego dostępu do pamięci odczytuje kolejny pakiet z listy żądań przesłania pakietów DMA.
W tym przykładzie będzie to pakiet zadania dotyczącego dysku kompaktowego. W przypadku tego pakietu, 64 słowa powinny być przesłane za pomocą tych samych operacji, które opisano poprzednio. Po przesłaniu wszystkich 64 słów, układ arbitrażu i sterowania bezpośrednim dostępem do pamięci pobiera następne żądanie przesłania pakietu, który będzie drugim pakietem zadania rozpoznawania mowy i po przetworzeniu tego pakietu w ten sam sposób stwierdza brak dalszych pakietów i wchodzi do stanu czekania, w którym pozostaje aż do zadania 726-mikrosekundowego okna czasowego. W przypadku, gdy w kolejce o strukturze segmentowej stworzonej przez procesor DSP podczas 726 mikrosekundowego okna czasowego
170 083 znalazło się więcej umieszczonych tam żądań pakietów DMA, żądania te nie będą obsługiwane, aż do następnego okna czasowego.
Pełna sieć działań procesu tego typu, może być zwięźle przedstawiona w postaci podanej na fig. 1. W pokazanym na fig. 1 bloku 1, użytkownik inicjalizuje działania wywołując lub wybierając żądania programu użytkowego przeznaczone do wykonania w komputerze personalnym, które dla ich realizacji nie muszą koniecznie zawierać zadań przetwarzania sygnału. Przykładami mogą być: odtwarzanie nagrań dźwiękowych wysokiej jakości, rozpoznawanie mowy, przesyłanie danych z modemu, wykonywanie funkcji telekopiowania danych, ruchome obrazy wizyjne, synteza mowy lub dowolne z różnorodnych zastosowań ze środowiska multimedialnego dobrze zrozumiałe dla specjalistów w tej dziedziny.
Bazowy komputer personalny żąda wykonania zadań procesora DSP wysyłając identyfikatory żądanych zadań do systemu operacyjnego procesora DSP. Odbywa się to w pokazanym na fig. 1 bloku 2.
W bloku 3 system operacyjny procesora DSP na podstawie dowolnych aktywnych żądań wykonania zadań tworzy podzielone na segmenty listy pakietów, umieszczając końce sekcji żądań w powtarzających się przedziałach czasowych. Na fig. 10 pokazano sieć działań wysokiego poziomu dla wykonywanych przez procesor DSP operacji tworzenia list pakietów. W jednym z omawianych wyżej zalecanych rozwiązań te przedziały czasowe typu koniec listy (E.O.L) występują w każdych 726 mikrosekundach.
Jak pokazano w bloku 4, procesor DSP odmierza lub taktuje międzyprocesorową jednostkę sterującą z częstotliwością zegara odpowiadającą 726 mikrosekundom i kontynuuje tworzenie segmentowych list żądań pakietów dla wykonania dowolnych aktywnych zadań, które mogą być realizowane w procesorze DSP, lub które są wywoływane przez nowe żądania użytkownika przychodzące z komputera personalnego, co pokazano w bloku 11.
Jak pokazano w bloku 5, międzyprocesorową jednostka sterująca DMA będzie otrzymywała z procesora DSP taktujący sygnał zegarowy rozpoczynający 726 mikrosekundowy przedział czasowy. W bloku 6 międzyprocesorową jednostka sterująca DMA rozpoczyna czytanie listy pakietów od zbudowanego przez procesor DSP segmentu listy pakietów wymagających bezpośredniego dostępu do pamięci. W bloku 4 zależnie od potrzeb związanych z żądanym przesłaniem pakietu jednostka sterująca DMA prowadzi arbitraż magistrali systemowych lub magistrali danych, lub pamięci procesora DSP i otrzymuje potwierdzenie dostępu do odpowiedniej magistrali, co pokazano w bloku 8, a następnie w bloku 9 przesyła szereg pakietów do lub z bufora DMA i wykonuje powtórny arbitraż dostępu do magistrali systemowej lub magistrali procesora DSP, odzwierciedlony na schemacie połączeniem bloku 9 z blokiem 7, aż do zakończenia wszystkich przesłań, co pokazano w bloku 10.
Na podstawie powyższego krótkiego opisu sieci działań przy uwzględnieniu fig. 1 wydaje się oczywiste, że zarządzanie realizowane przez system bazowy (lub przez procesor DSP, jeżeli ma on odpowiednią moc obliczeniową, lub przez procesor pomocniczy jeżeli jest to pożądane) musi być prowadzone w taki sposób, aby wszystkie żądania zadań procesora DSP mogły być przetwarzane w minimalnym przedziale czasowym, wynoszącym na przykład 726 gs lub narażone jest na konsekwencje tego, że każde późniejsze żądanie wykonania zadania użytkownika może nie być zaspokojone w ściśle określonym czasie rzeczywistym. Dla złagodzenia tego wymagania, w zalecanym wykonaniu, w tym przypadku w procesorze głównym zastosowano schemat zarządzania i przydzielania zasobów procesora DSP. Funkcję zarządzania i przydzielania zasobów ilustruje schematycznie fig. 6. Jeżeli jest to pożądane to funkcja ta może być realizowana przez procesor DSP lub procesor pomocniczy i można ją opisać w sposób następujący.
Funkcja zarządzania i przydzielania zasobów nadzoruje całkowite obciążenie procesora DSP dowolnymi zadaniami wywoływanymi przez użytkownika. Obciążeniejest określane całkowitą dostępną dla bezpośredniego dostępu do pamięci szerokością pasma przesyłania bajtów, długością listy pakietów i dostępną mocą lub prędkością zasobów procesora DSP mierzonych w cyklach wykonania, podawaną w milionach rozkazów na sekundę (MIPS). Funkcja zarządzania i przydzielania daje pewność, że w każdym 726 mikrosekundowym przedziale czasowym, dla wszystkich żądanych zadań procesora DSP będą dostępne
170 083 wystarczające zasoby procesora sygnału, co gwarantuje, że może być zaspokojone każde zadanie procesora, wymagające spełnienia wymagań bezpośredniego dostępu do pamięci w czasie rzeczywistym.
Całkowita wielkość dostępnych zasobów stanowi funkcję konkretnego zastosowania systemu, to jest prędkości procesora DSP wyrażonej w MIPS-ach, szerokości pasma przenoszenia przesłań mechanizmu DMA i długości segmentu listy żądań przesłania pakietów, która będzie wykonana przez procesor DSP. Chociaż wszystkie te parametry mogą zmieniać się odpowiednio do zastosowania, to dla systemu przeznaczonego dla określonego zastosowania są ustalone. Szerokość pasma przenoszenia mechanizmu DMA jest ograniczona, to jest wymusza je najniższe ograniczenie wynikające z szerokości pasma magistrali procesora głównego, czasu cyklu rozkazu procesora DSP lub szerokości pasma sprzętu układów bezpośredniego dostępu do pamięci. Jak wspomniano wcześniej wielkość listy pakietów jest ograniczona wielkością dostępnej pamięci danych procesora DSP i szybkością zegara taktującego procesor DSP.
Aby wykorzystać funkcję zarządzania i przydzielania zasobów, każde zadanie użytkownika w systemie bazowym musi zawierać informację lub deklarację przewidywanych wymaganych całkowitych zasobów zadań procesora DSP określonych za pomocą maksymalnej szerokości pasma, długości listy pakietów i maksymalnej liczby MIPS-ów procesora DSP, która będzie konsumowana przez wywołane zadanie. Ponieważ zadania DSP są wywoływane w systemie głównym przez użytkowników końcowych, pokazana na fig. 6 funkcja zarządzania i przydzielania zasobów przydziela w procesorze DSP deklarowane wymagania zasobów żądanym zadaniom procesora DSP. Dopóki wszystkie wymagania zasobów zadań procesora DSP mieszczą się w ograniczeniach systemu, zadanie DSP będzie ładowane do procesora DSP. Wykonuje to system bazowy przekazując żądanie zadania DSP do systemu operacyjnego procesora DSP. Jeżeli wystarczające zasoby nie są dostępne, to umieszczone przez użytkownika żądanie zadania DSP będzie odrzucone i wysłany zostanie odpowiedni komunikat o błędzie użytkownika.
Działania pokazane na fig. 6 rozpoczynają się od wprowadzonego przez użytkownika żądania wykonania zadania w jego komputerze personalnym, przykładowo rozpoznania mowy. W następstwie tego, jak pokazano w bloku 1 na fig. 6, w głównym komputerze personalnym zostanie wywołany program rozpoznawania mowy o odpowiednich parametrach, jeśli chodzi o szerokość pasma wyrażoną maksymalną liczbą słów przekazywanych w oknie czasowym bezpośredniego dostępu, maksymalną liczbą MIPS-ów procesora DSP, której będzie on wymagał i maksymalną wielkością pamięci, której może potrzebować. System jest poinformowany o dostępnych maksymalnych zasobach procesora DSP także na podstawie danych wprowadzonych przez użytkownika lub na podstawie rejestrów kodujących sprzęt sprawdzanego systemu (nie pokazane) znajdujących się w jednostce sterowania i arbitrażu DMA oraz w procesorze DSP. Przedstawiono to w bloku 2.
W bloku 3 tworzona jest suma wszystkich żądań użytkownika, to jest całkowite zapotrzebowanie na bezpośredni dostęp do pamięci jest uzyskiwane poprzez sumowanie wymagań dla wszystkich aktualnie realizowanych i nowowywoływanych zadań. Suma ta jest w bloku 3 porównywana z maksymalną całkowitą zdolnością przesyłania słów przy bezpośrednim dostępie do pamięci i z całkowitymi zasobami procesora DSP. W przypadku, gdy całkowite zapotrzebowanie na przesyłanie słów przewyższa dostępne zasoby, to jak pokazano w bloku 4, zadanie niejest ładowane i sygnalizowany jest powrót do wybierania żądań przez użytkownika, co pokazano w bloku 5. Jeżeli nie nastąpiło przekroczenie całkowitego zapotrzebowania na bezpośredni dostęp do pamięci dla zadań użytkownika, to system przechodzi do realizacji bloku 6, w którym suma zasobów dla wykonania wszystkich rozkazów procesora DSP dla wszystkich aktywnych zadań użytkownika jest porównywana z maksymalną dostępną liczbą MIPS-ów procesora DSP. Jeżeli wartość maksymalna została przekroczona, to jak wskazuje powrót do bloków 4 i 5, nowe zadania nie będą ładowane. Jeżeli jednak całkowita liczba MIPS-ów procesora DSP niejest przekroczona, to system przechodzi do bloku 7, w którym są wyznaczane sumaryczne wymagania dotyczące pamięci procesora DSP dla wszystkich aktywnych zadań użytkownika, które są porównywane z maksymalną wielkością dostępnej pamięci danych procesora DSP.
170 083
Jeżeli wartość maksymalna niejest przekroczona, to program zarządzający obciążeniem procesora DSP (który może rezydować w procesorze DSP lub w procesorze pomocniczym jeśli jest to pożądane), odpowiedzialny za zarządzanie i przydział zasobów głównego komputera personalnego, przejdzie do bloku 8, w którym będzie ładował zadania, sygnalizując systemowi operacyjnemu procesora DSP potrzebę przywołania początku nowego zadania wybranego przez użytkownika, a następnie przechodzi do zakończenia procedury w bloku 9.
Jak wspomniano wcześniej, listy żądań przesłania pakietów danych DMA są tworzone w postaci segmentowej w pamięci procesora DSP przez system operacyjny procesora DSP. Bezpośrednio po wprowadzeniu żądań wykonania zadań do systemu operacyjnego procesora DSP, procesor ten tworzy listę niezbędnych przesłań pakietów danych DMA, warunkujących wykonanie żądanego zadania. Format żądań pakietów danych pokazano na fig. 4.
Jeżeli zgodnie z fig. 4, żądany pakiet DMA zawiera pięć słów, to dwa z tych słów są zapamiętywane w rejestrach sterujących 1 i 2, dwa słowa określają adres pamięci systemu głównego (mniej znaczące i bardziej znaczące bity adresu), ajedno słowo stanowi adres miejsca pamięci procesora DSP, od którego rozpoczyna się ciąg liczb przesyłanych w jednym lub w drugim kierunku. Sposób kodowania szczególnych słów sterujących dla rejestrów sterujących pokazano na fig. 4. Te słowa sterujące są wykorzystywane przez międzyprocesorowy układ arbitrażu i sterowania DMA, co dalej będzie opisane bardziej szczegółowo.
System operacyjny procesora DSP tworzy w pamięci listy żądanych przesłań pakietów DMA. Adresowanie jest zorganizowane w taki sposób, że pamięć funkcjonuje jak bufor cykliczny procesora DSP. Lista żądań pakietów jest listą o strukturze segmentowej zbudowanej w taki sposób, że zawiera grupę jednego lub większej liczby żądań przesłania poszczególnych pakietów DMA i końcowy znacznik stanu czekania lub końca listy. Koniec listy w pamięci procesora DSP ma wskaźnik kierujący program z powrotem do początku, w związku z czym bufor będzie obiegany bez końca. Dostępna dla tworzenia bufora pamięć procesora DSP musi być wystarczająco duża, aby w każdej chwili czasowej mogła pomieścić co najmniej dwie kompletne listy żądań pakietów. Wynika to stąd, że jednostka sterująca DMA przetwarza zawartość jednej listy żądań w tym samym czasie, w którym system operacyjny procesora DSP jest zajęty tworzeniem następnego segmentu listy. System operacyjny procesora DSP tworzy listy żądań pakietów DMA (jak pokazano na fig. 10) do przesyłania danych poprzez dołączanie żądań pakietów pojedynczo do zawartości bieżącej listy pakietów jako aktywnych zadań w miejsce żądań bezpośredniego dostępu do pamięci procesora DSP, odpowiednio w celu pobrania nowych próbek sygnału do przetwarzania lub w celu przesłania przetwarzanych próbek z powrotem do żądanego zadania użytkownika.
Określone zadanie wykonywane w procesorze DSP żąda przesłania pakietu DMA ładując w pierwszej kolejności pożądany adres źródłowy, adres docelowy i wszelką niezbędną informację sterującą do wewnętrznie wyspecyfikowanych rejestrów DSP, a następnie wywołując system operacyjny, który dodaje to żądanie do listy, która jest aktualnie tworzona w jego listach segmentowych. Zadania procesora DSP mogą wytwarzać żądania przesłań pakietów w każdej chwili. Takie żądania mogą powstawać asynchronicznie w stosunku do realizacji list układu arbitrażu i sterowania DMA kontrolowanej przez mechanizm sterowania bezpośrednim dostępem do pamięci. Realizacja listy pakietów przez mechanizm sterowania bezpośrednim dostępem do pamięci jest taktowana w precyzyjnych przedziałach czasowych przez system operacyjny procesora DSP, który umieszcza pakiet czekania lub znacznik końca listy w postaci znacznika na końcu segmentu aktualnie tworzonej listy pakietów. Znaczniki te w zalecanym wykonaniu są wstępnie wpisywane do kolejki w pamięci w taki sposób, że występują w regularnych odstępach podczas odczytywania kolejki przez urządzenie DMA. Procesor DSP, w precyzyjnie powtarzających się chwilach czasowych, sygnalizuje jednostce sterującej DMA kontynuowanie realizacji listy żądań przesłania pakietu, przewidzianej do przetwarzania w następnej kolejności. Pakiet czekania (E.O.L.) może pełnić rolę środka pomocniczego lub znacznika zatrzymującego działanie układów DMA po zakończeniu przetwarzania bieżącej listy. Ponieważ zadania wykonywane w procesorze DSP kontynuują realizację żądań przesyłania pakietów danych DMA, to system operacyjny może rozpocząć wypełnianie następnego segmentu listy pakietów. W przemyśle dobrze znane są takie procesory DSP, jak wcześniej wspomniany procesor
170 083
Motorola 56000, specjaliści znają również możliwości systemu operacyjnego tego mikroprocesora użyteczne przy tworzeniu tego typu list w pamięci, w związku z czym nie ma potrzeby dalszego opisywania tych zagadnień.
Na fig. 2 pokazano ogólne fizyczne rozmieszczenie modułów i przepływ danych w postaci pakietów informacji z typowego systemu bazowego, takiego jak IBM PS/2 lub wspomnianego wcześniej systemu Motorola 68030, przez odpowiednie magistrale danych i adresów systemu bazowego do międzyprocesorowego układu arbitrażu i sterowania bezpośrednim dostępem do pamięci, takim jak programowalna jednostka sterująca micro-channel/DMA typu Intel 82325. Pokazano również interfejsy pomiędzy międzyprocesorowym układem arbitrażu i sterowania bezpośrednim dostępem do pamięci, i typowym procesorem DSP, takim jak przedstawiony w patencie USA Nr 4 794 517, to jest trójfazowym potokowym procesorem DSP, lub wcześniej opisanym procesorem Motorola 56000. Pakiety danych są przesyłane w jedną i drugą stronę pomiędzy pamięcią systemu bazowego i buforem wewnątrz układu arbitrażu i sterowania bezpośrednim dostępem do pamięci przez magistrale pamięci DSP do pamięci danych lub rozkazów procesora DSP.
Do tych celów może być wykorzystany programowalny międzyprocesorowy układ arbitrażu i sterowania DMA/IO, taki jak dostępny w handlu zestaw układów scalonych Intel 82325. Układ ten nazywany również modułem sterującym magistralą wykonuje bieżące przesłania żądanych pakietów danych pomiędzy pamięcią danych głównego komputera personalnego i pamięcią rozkazów lub danych procesora DSP. Moduł sterujący magistralą może być podzielony na dwie główne części funkcjonalne: procesor listy pakietów i układ obsługi przesłań DMA. Procesor listy pakietów odbiera startowy sygnał taktujący z systemu operacyjnego procesora DSP napoczątku jednego, naprzykład 726-mikrosekundowego przedziału. Od tego sygnału rozpoczyna się odczytywanie segmentu z utworzonej w pamięci procesora DSP listy pakietów, począwszy od adresu, pod którym ostatnio stwierdzono żądanie pakietu czekania, stanowiącego granicę lub znacznik segmentu. Adres i informacja sterująca znajdująca się w żądaniu pakietu DMA uzyskanego z pamięci procesora DSP zostają po przetworzeniu przekazane do układu obsługi przerwań DMA, który realizuje wyspecyfikowane przesłanie DMA.
Informacja sterująca i adresowa w liście żądań pakietów podlega przetworzeniu, a następnie jest przekazywana do układu obsługi przesłań DMA, który wykonuje wyspecyfikowane przesłanie DMA, podobnie jak w przypadku dowolnego normalnego urządzenia sterowanego przez moduł sterujący magistralą. Proces jest kontynuowany dla kolejnych żądań pakietów, aż do ponownego wystąpienia pakietu czekania. Pakiet ten zatrzymuje moduł sterujący magistralą i kończy przetwarzanie segmentu listy żądań pakietów.
Wracamy do wspomnianego wcześniej przykładu użytkownika, który chce, aby jego komputer personalny realizował funkcję rozpoznawania mowy oraz funkcję odtwarzania muzyki wysokiej jakości (hi-fi) z dysku kompaktowego przy wykorzystaniu procesora DSP. Najpierw użytkownik chce uzyskać funkcję rozpoznawania mowy i funkcję hi-fi wybierając, być może, odpowiednie ikony za pomocą myszki lub kursora lub innych środków jego komputera personalnego. Ten wybór będzie powodował, że na podstawie żądania zostaną załadowane odpowiednie zadania procesora DSP. Żądanie jest przetwarzane przez proces pokazany na fig. 6 do pierwszego stwierdzenia, że dostępne są odpowiednie zasoby procesora dSp i szerokość pasma DMA. Przed faktycznym załadowaniem tych żądanych zadań wywoływane są funkcje zarządzania i przydziału zasobów (w omawianym tu zalecanym wykonaniu odbywa się to w głównym komputerze personalnym) w celu zweryfikowania, że istnieją wystarczające zasoby dla zaspokojenia żądanych zadań procesora DSP, które będą zadeklarowane przez użytkownika w wywołaniu żądanych zadań. Jeżeli, jak pokazano na fig. 6, wystarczające zasoby istnieją, to zadania zostaną załadowane, a w procesorze DSP rozpocznie się realizacja funkcji. W przeciwnym razie główny komputer personalny wygeneruje komunikat o błędzie dla poinformowania użytkownika, że żądane zadania nie będą załadowane.
W tej dyskusji zakłada się, że system operacyjny procesora DSP był już zainicjalizowany i że przed odebraniem dowolnych nowopojawiających się żądanych funkcji procesora, w buforze listy pakietów zostały skrzętnie umieszczone żądania i znaczniki przesłań DMA dla
170 083 dowolnych poprzednio żądanych funkcji, oraz że inicjalizacja lub taktowanie jednostki sterującej DMA (kończące segment) jest przeprowadzane w każdym przedziale czasowym, takim jak założony przedział 726 mikrosekundowy. Zakładając, że nie zażądano żadnych poprzednich zadań, w tym przykładzie przyjmuje się, że zadanie rozpoznania mowy jest równoznaczne z zapotrzebowaniem na dwa kanały DMA i szerokość pasma o maksymalnej prędkości 256 słów na kanał, a zadanie odtwarzania hi-fi wymaga dla swoich potrzeb jednego kanału DMA, o maksymalnej prędkości 64 słów. Każdorazowo, gdy w procesorze DSP realizowane jest zadanie odtwarzania dysku kompaktowego, zachodzi potrzeba przesłania 64 dodatkowych słów danych z pamięci procesora systemu bazowego, w postaci cyfrowych próbek sygnału odczytanych bezpośrednio z dysku kompaktowego. Słowa te dla wykonania programu muszą być przesłane z pamięci systemu bazowego do cyklicznego bufora pakietów w pamięci procesora DSP. Aby to wykonać, procesor DSP powinien wywołać procedurę serwisową swojego systemu operacyjnego w celu umieszczenia żądania DMA i powinno to być wykonywane każdorazowo podczas wykonywania zadania, to jest każdorazowo należy przetworzyć próbkę zawierającą 64 słowa. Procesor DSP przy każdym wywołaniu powinien dostarczyć następny adres pamięci procesora systemu głównego, pod który należy wykonać zapis lub z którego należy wykonać odczyt a także dostarczyć następny adres bufora DSP, od którego rozpoczyna się odliczanie 64 słów.
Ponadto zawsze, gdy w procesorze DSPrealizowanejest zadanie rozpoznawania mowy, system operacyjny procesora DSP będzie wywoływał program obsługi żądania bezpośredniego dostępu do pamięci. Każde żądanie będzie miało każdorazowo unikalny adres systemowy i unikalny adres bufora DSP dla przesłania do bufora dwu szablonów identyfikacyjnych z systemu bazowego. W większości programów rozpoznawania mowy każdy szablon ma długość 256 słów, wobec czego system operacyjny procesora DSP będzie szeregowo wpisywał do listy żądań pakietów DMA łącznie trzy żądania bezpośredniego dostępu do pamięci każdorazowo, gdy tylko one wystąpią.
Trzy żądania przesłania pakietu DMA będą obsłużone przez układ arbitrażu i sterowania bezpośrednim dostępem do pamięci podczas kolejnych 726 mikrosekund, następujących po minięciu znacznika segmentu. Znacznikiem jest stan czekania lub końca listy (E.O.L.) w segmencie listy żądań przesłania DMA tworzonej przez procesor DSP. Na początku tego następnego przedziału czasowego system operacyjny procesora DSP umieszcza żądanie pakietu stanu czekania jako znacznika zakończenia w segmencie listy pakietów, który został ostatnio stworzony i chce uruchomić moduł sterujący magistralą DMA za pomocą sygnału zegarowego lub rozkazu taktującego.
Moduł sterujący magistralą DMA uzyskuje dostęp do pamięci procesora DSP, znajduje pakiet z żądaniami przesłania 256 słów dla zadania rozpoznawania mowy, ładuje słowa sterujące występujące w żądaniu pakietu dla stwierdzenia jaką liczbę słów należy przesłać i jakie będą ograniczenia sterowania adresowania modulo. Następnie moduł sterujący czyta systemowa pamięć procesora (komputera personalnego) nadrzędnego i odczytuje adresy pamięci lokalnej procesora DSP z żądania przesłania pakietu DMA. Z kolei moduł przeprowadza arbitraż uzyskania dostępu do magistrali komputera personalnego typu microchannel lub do innej magistrali systemu głównego, a gdy uzyska potwierdzenie dostępu do tej magistrali, przesyła określoną liczbę (16 bajtów) danych z pamięci procesorów głównych do bufora sprzętu bezpośredniego dostępu do pamięci. Następnie jednostka sterująca DMA przeprowadza arbitraż magistrali pamięci procesora DSP i każdorazowo po otrzymaniu potwierdzenia dostępu do magistrali wpisuje inne słowo do pamięci procesora DSP, pod adres tej pamięci odczytany poprzednio z żądania listy pakietów DMA. Proces jest kontynuowany tak, jak zostało to opisane poprzednio, dopóki nie zostaną przetworzone wszystkie niezbędne pakiety DMA. Jeżeli nawet podczas bieżącego 726 mikrosekundowego przedziału czasowego system operacyjny umieści większą liczbę żądań pakietu DMA, to żądania te nie zostaną obsłużone i nie będą obsługiwane, aż do początku następnego przedziału czasowego. Proces jest repetycyjnie kontynuowany aż do ewentualnego zakończenia przez użytkownika wszystkich zadań procesora DSP w systemie głównym.
W przypadku tego rozwiązania należy sobie zdawać sprawę z tego, że lista żądań przesłania pakietów DMA, łącznie z przyporządkowaniem procesora DSP i szerokości pasma
170 083 kanału DMA (które w tym wykonaniu są sterowane w głównym komputerze personalnym), dają gwarancję obsłużenia i przesłania do procesora DMA wszystkich żądań przesłania pakietu danych DMA w czasie dwu bazowych cykli zegarowych. Zatem w podanym wyżej przykładzie żądania bezpośredniego dostępu do pamięci oczekujące w segmentowej liście wytworzonej przez system operacyjny procesora DSP w pamięci tego procesora, w jednym przedziale czasowym, będą znajdowane i odczytywane przez mechanizm DMA, i realizowane w następnym, 726 milisekundowym przedziale czasowym. Jeżeli próbki powinny być pobrane z pamięci głównego komputera personalnego i dostarczone do pamięci procesora DSP, to może to nastąpić wewnątrz 726 mikrosekundowego przedziału czasowego. Podczas kolejnego przedziału czasowego, procesor DSP rozpocznie przetwarzanie próbek danych i tworzenie nowych żądań pakietów DMA, w celu dostarczenia przetworzonych próbek z powrotem do systemu głównego. Żądania te będą umieszczone w segmencie listy żądań DMA, znajdującym się za segmentem aktualnie wykonywanym przez jednostkę sterującą i układ arbitrażu DMA. Tak więc w następnym w kolejności przedziale czasowym zakończone próbki będą dostępne do przesłania kanałem DMA z procesora DSP, z powrotem do procesora systemu głównego, przy czym całkowite opóźnienie związane z wykonaniem tej operacji jest równe tylko dwóm przedziałom DMA.
Z taką samą szybkością operacyjną będą obsługiwane wszystkie znajdujące się w toku załatwiania żądania wykonania zadań pod warunkiem, że nie przekroczone zostały wymagane dla wykonania zadań całkowite zasoby procesora DSP i całkowita szerokość pasma DMA. Jest to zapewnione przez mechanizm przydzielania i sterowania funkcjonujący w komputerze personalnym systemu głównego. Oznacza to, że stałe zadania realizowane przez procesor DSP w czasie rzeczywistym mogą mieć zagwarantowaną dostawę odpowiedniej ilości danych lub usuwanie przetworzonych danych, aby spełnić wymagania jakichkolwiek zadań żądanych przez użytkownika. Ponieważ dla wszystkich zadań przewidzianych do wykonania w komputerze głównym wymaga się wcześniejszego wyspecyfikowania czasu, który przy realizacji żądania pakietu może być potrzebny do przesłania maksymalnej liczby słów, jak również wyrażonej w MIPS-ach maksymalnej wymaganej liczby rozkazów przetwarzanych w procesie DSP, to moduł przydzielania zasobów w głównym komputerze personalnym będzie dokładnie wiedział jaka może być całkowita długość listy żądanych przesłań DMA w określonej chwili czasowej i kiedy istnieje niebezpieczeństwo przekroczenia możliwości wykonawczych, w takim stopniu, że uniemożliwi to wywołanie jakichkolwiek nowych zadań.
Dlatego też układ arbitrażu i sterowania bezpośrednim dostępem do pamięci zawsze przetwarza żądania przesłań pakietów DMA z pamięci procesora DSP, które zostały tam umieszczone przez zadania wykonywane w poprzednim przedziale czasowym. Zatem, podczas gdy mechanizm DMA działa ze swoim segmentem bieżącej listy żądań bezpośredniego dostępu do pamięci, nowe żądania przesłania pakietów DMA są umieszczone w następnym, kolejnym segmencie kolejki żądań pakietów DMA w pamięci procesora DSP, dla umożliwienia ich pobrania przez mechanizm DMA i wykonania w następnym przedziale czasowym. Takie rozwiązanie stwarza możliwość łatwego wyprowadzenia do systemu wielu procesorów DSP. Każdy procesor DSP powinien mieć własny układ wykonywania przesłań pakietów DMA, działający jak moduł sterujący magistralą procesora DSP lub magistralą głównego komputera personalnego. Ponadto, jeżeli wszystkie procesory DSP korzystają z tego samego zegara synchronizacji przerwań, z którego korzysta mechanizm DMA, to pamięć systemu głównego powinna mieć proste środki lub bufory do przesyłania danych pomiędzy procesorami DSP.
Można zatem zauważyć, że układ arbitrażu i sterowania wykonaniem żądań pakietów DMA stanowi solidne rozwiązanie problemu obsługi dużej liczby kanałów komunikacyjnych lub żądań pomiędzy procesorem głównym i procesorem DSP lub między wieloma procesorami DSP i zadaniami realizowanymi we wszystkich różnorodnych procesorach. Próby zrealizowania ponad 100 kanałów bezpośredniego dostępu do pamięci wyłącznie za pomocą rozwiązań sprzętowych, jak na przykład zastosowanie 100 oddzielnych układów DMA lub 25 sprzętowych czterokanałowych układów DMA lub 25 sprzętowych czterokanałowych modułów DMA, prowadzą w rezultacie do drogiego systemu, którego arbitraż i sterowanie są prawie niewykonalne. Układy arbitrażu i sterowania bezpośrednim dostępem do pamięci i procesor listy pozwalają uniknąć
170 083 arbitrażu 100 kanałów bezpośredniego dostępu, ponieważ w kanałach tych zastosowano mułtipleksowanie czasowe działające tak, że wszystkie kanały mogąbyć obsłużone w powtarzających się przedziałach czasowych, umożliwiających sekwencyjne przetwarzanie indywidualnie realizowanego arbitrażu magistrali, potwierdzenia dostępu, i przesyłania strumieni danych w przypisanych im przedziałach czasowych.
Jak wynika to z wcześniejszych rozważań, międzyprocesorowy główny układ arbitrażu i sterowania kanału DMA, i magistrali we/wy jest kluczowym elementem takiego systemu jak pokazany na fig. 2. Całkowity przepływ danych i głównych sygnałów sterowania układu arbitrażu i sterowania pokazano na fig. 3. Taki układ sterowania jak główny programowalny układ arbitrażu i magistrali typu Intel 82325 może być nabyty w sieci handlowej i ma wystarczające możliwości sprzętowe i programowe, aby realizować wszystkie funkcje pokazano na fig. 3. Główny układ arbitrażu i sterowania kanału DMA/magistrali we/wy (lub po prostu moduł sterujący” magistralą) wykorzystuje cztery kontrolery sprzętowe pokazane na fig. 3. Są to następujące moduły: kontroler 10 pakietu, układ 11_ obsługi i sterowania DMA, układ 13 lokalnego arbitrażu i sterowania DSP/DMA i układ 12 arbitrażu i sterowania kanałem bezpośredniego dostępu do pamięci systemu głównego.
Pokazany na fig. 3 kontroler 10 pakietu czyta słowa kontrolne pakietu z pamięci danych procesorów DSP według segmentowej listy żądań umieszczanej w nim przez system operacyjny procesorów DSP. Jak pokazano na fig. 4, po odczytaniu pięciu słów sterujących dla zadanego żądania pakietu kontroler 10 pakietu uruchamia układ U obsługi DMA.
Układ 11 obsługi DMA dzieli bajty pakietu, których liczbę wskazują słowa kontrolne pakietu DMA, na szereg sekwencji danych. Zależnie od kierunku przesyłania, wskazywanego przez bit kierunku przesyłania w żądaniu pakietu DMA, układ 11 obsługi DMA repetycyjnie uruchamia układ 12 arbitrażu i sterowania magistrali systemu głównego lub układ 13 głównego sterownika magistrali DSP, dla uruchomienia arbitrażu dostępu do odpowiednich magistral i przesłania sekwencji danych o odpowiedniej wielkości do lub z miejsc pamięci o początkowych adresach określonych w żądaniu pakietu DMA, odczytanym z pamięci procesora DSP. Gdy uruchomiony układ arbitrażu i sterowania kanałem DMA zakończy przesłanie DMA, informuje o tym układ 11 obsługi i sterowania DMA, który sygnalizuje nową sekwencję lub pakiet, lub jeżeli w trakcie wykonywanego liczenia stwierdza zrealizowanie pakietu według żądanego odczytu licznika, potwierdza jego zakończenie wysyłając sygnał zwrotny do kontrolera 10 pakietu. Następnie kontroler 10 pakietu powinien wczytać inny zestaw słów sterujących pakietu dla innej operacji DMA i proces powinien być kontynuowany aż do osiągnięcia końca segmentu listy sterowania przesłaniami pakietów DMA i natknięcia się na pakiet stanu czekania.
Żądania przesłania pakietu DMA znajdujące się w trakcie załatwiania zawierają pięć słów informacji, których formaty pokazano na fig. 4 w rozbiciu na części składowe, odpowiadające zawartości adresu startowego pamięci DSP, górnego i dolnego zakresu adresów startowych komputerów personalnych i zawartości rejestrów sterujących mechanizmu DMA. Każde żądanie pakietu DMA zawierające pięć słów jest po pobraniu do pokazanego na fig. 3 kontrolera 10 pakietu przetwarzane zgodnie z procesem pokazanym na fig. 7 przez procesor list DMA znajdujący się w kontrolerze 10 pakietu.
Pokazany na fig. 7 stan czekaj wyznacza granicę segmentu listy pakietów DMA wskazywaną przez pokazane na fig. 4 bity 01 i 02 sterujące kierunkiem, które jak pokazano na fig. 4 mają w obu przypadkach wartość zero. Stan czekaj stanowi początkowy punkt realizacji listy DMA w procesorze 10 pokazanym na fig. 3. Zgodnie z fig. 7, rozpoczyna się on w bloku 20 i przechodzi przez bloki 21,22,23,24 lub dalej, do bloków 25-28. Bity sterowania kierunkiem są odczytywane w pokazanym na fig. 7 bloku 29 i podejmowana jest stosowna decyzja o wejściu do stanu czekania lub przesłaniu z pamięci systemu bazowego do pamięci procesora DSP lub z pamięci procesora DSP do pamięci systemu głównego, odpowiednio do wartości bitów wskaźników 01 i 02 pokazanych na fig. 4. Bloki 30-32 kontrolują przyrosty wskaźników, a bloki 33A, 33B i 33C porównują całkowity odczyt z wartością maksymalną (równą maksymalnej liczbie 256 słów).
Na fig. 5 pokazano schemat niektórych efektywnie działających buforów i rejestrów znajdujących się w układzie arbitrażu i sterowania DMA pokazanego na fig. 3 bloku W
170 083 kontrolera pakietu. Jak pokazano na fig. 5, rejestr 14 jest wykonany z kilku segmentów i zawiera wskaźnik pakietu DMA. Jest to rejestr 16-to bitowy, którego zawartość może odczytywać tylko procesor DSP i który przechowuje 12 najmniej znaczących bitów wskaźnika listy żądań pakietów DMA w pamięci danych procesora DSP. Zawartość rejestru jest aktualizowana sprzętowo, a trzy najbardziej znaczące bity mają wartości zerowe. Nie istnieją trzy najmniej znaczące bity i bit 15, których zawartości w zadanej implementacji są odczytywane jako zera. Dane w pamięci danych, które będą załadowane do tego rejestru są zapamiętywane jako adres bajtu. Rejestr 19 jest utworzony z kilku części i zawiera adres pamięci systemu lub systemu bazowego. Jest to rejestr 32-bitowy, którego zawartość nie może być odczytana lub zapisana zarówno przez procesor DSP jak i procesor systemowy systemu bazowego. W rejestrze znajduje się adres pamięci systemu bazowego lub obszar adresowy we/wy, który będzie wykorzystywany do przesłania pakietu. Zawartość 24 najmniej znaczących bitów rejestru 19 zwiększa się automatycznie przy wykonywaniu przesłań zawartości pamięci procesora systemu bazowego. Wybór pamięci lub obszaru we/wy wskazuje wartość bitu pamięć systemu - we/wy. Adres pamiętany w tym rejestrze jest adresem bajtu.
Rejestr 18 zawiera adres pamięci procesora DSP i stanowi 16-to bitowy rejestr autoprzyrostowy, którego zawartość nie może być odczytywana lub zapisywana zarówno przez procesor DSP, jak i komputer personalny systemu głównego. Zawiera on adres pamięci danych lub rozkazów procesora DSP, które będą wykorzystywane do przesłania pakietu. Bity sterowania modulo są wykorzystywane do sterowania przyrostem zawartości tego rejestru. Dane w pamięci danych, które będą ładowane do tego rejestru są pamiętane w postaci adresów słów lub rozkazów, w których do adresowania pamięci danych wykorzystuje się tylko 15 najmniej znaczących bitów.
Pokazany na fig. 3 układ 11 obsługi DMA jest uruchamiany przez sygnał startu DMA z kontrolera 10 pakietu, co ilustruje fig. 3. Układ U obsługi DMA początkowo przekształca liczbę (wielkość) pakietu otrzymaną z kontrolera 10 pakietu na liczbę bajtów pakietu. Zadaniem układu obsługi DMA jest podzielenie liczby bajtów pakietów na liczby (wielkości) sekwencji, ponieważ wewnętrzny bufor mechanizmu sterowania bezpośrednim dostępem do pamięci ma w tym wykonaniu dwie pamięci RAM o pojemności 16 bajtów 8 bitowych, w związku z czym rozmiar sekwencji jest ograniczony dla danej chwili do 32 bajtów. Jeżeli bajt lub bit słowa z rejestrów sterujących wskazuje na tryb bajtowy, to dane nie będą upakowywane w pamięci danych. Do wykonywania operacji modułu sterującego magistralą wykorzystywane są tylko najmniej znaczące bajty pamięci danych. Przy istnieniu takiego warunku stosowanajest sekwencja o normalnym rozmiarze wynoszącym 16 bitów.
Przesłania DMA są realizowane za pomocą sekwencji określonych wielkością sekwencji (bc). Wielkość sekwencji bc jest równa rozmiarowi sekwencji z wyjątkiem przypadków, gdy pozostała lub początkowa liczba (wielkość) pakietu jest mniejsza od rozmiaru sekwencji. Liczba bajtów pakietu jest repetycyjnie dzielona na sekwencje, aż do jej wyczerpania.
Jak pokazano na fig. 8, początkowa liczba bajtów jest ładowana do akumulatora 35. Układ 11 obsługi DMA zawiera sprzęt pokazany na fig.8. Rozmiar sekwencji jest ustalany na podstawie wartości bitu bajt/słowo znajdującego się w informacji sterującej żądania przesłania DMA. Zerowa wartość bitu znaku oznacza, że wartość znajdująca się w akumulatorze jest większa od rozmiaru sekwencji. Jak zostało to opisane wcześniej, rozmiar sekwencji jest wstępnie wybierany, odpowiednio do wykorzystywanego systemu. Liczba bajtów jest ładowana do systemu i do znajdującego się w procesorze DSP licznika bajtów DMA, a układ 11 obsługi DMA kontroluje bity kierunku.
W przypadku, gdy bity kierunku odczytane w pokazanym na fig. 7 bloku 29 wskazują odczyt pamięci systemu bazowego, układ 11 obsługi DMA przełącza sterowanie multipleksera danych wejściowych na porty danych systemu, co pokazano na wyjściu bloku U przedstawionego na fig. 3. Wybrane zostają również obwody sterujące buforami systemu, a układ 11 obsługi DMA uruchamia główny układ 12 sterowania systemem. Działanie głównego układu 12 sterowania systemem będzie powodowało wypełnianie wewnętrznego bufora 14 typu RAM i dekodowanie operacji wczytywanych do bufora z pamięci systemu bazowego. Jak pokazuje odpowiednia linia sygnału na fig. 3, główny układ 12 sterowania systemem po wpisaniu danych do bufora 14 potwierdzi zakończenie przesłania wysyłając sygnał z powrotem do układu 11 obsługi DMA.
170 083
Układ 11 obsługi DMA po otrzymaniu sygnału zakończenia przesłania przełączy sterowanie bufora na układ 13 sterowania bezpośrednim dostępem do pamięci procesora DSP. Następnie układ 11 obsługi DMA uruchomi układ 13 sterowania bezpośrednim dostępem do pamięci procesora DSP, którego działanie spowoduje przesłanie danych z bufora 14 do pamięci DSP, a po zakończeniu tej operacji wyśle z powrotem do układu 11 obsługi DMA potwierdzenie zakończenia przesłania.
W przypadku, gdy układ U obsługi DMA przy sprawdzaniu kierunku przesłania wykrył zapis do pamięci systemu, układ Π sterowania obsługą DMA przełączy sterowanie multipleksera danych wejściowych na port danych bezpośredniego dostępu do pamięci procesora DSP, a sterowanie bufora DMA procesora DSP dołączy bufor 14 do układu 13 sterowania bezpośrednim dostępem do pamięci procesora DSP. Następnie układ 11 obsługi DMA uruchomi układ 13 sterowania bezpośrednim dostępem do pamięci procesora DSP, który zdekoduje operację jako czytanie z pamięci procesora DSP do bufora 14. Działanie układu 12 sterowania spowoduje załadowanie bufora 14, a po wczytaniu danych do bufora 14, wysyłanie potwierdzenia zakończenia przesłania z powrotem do układu 11 obsługi. Gdy układ ten stwierdzi, że operacja bezpośredniego dostępu do pamięci procesora DSP została zakończona, układ Π obsługi DMA przełączy sterowanie bufora na część systemową, uruchomi główny układ 12 sterowania magistralą systemu bazowego i uruchomi przesyłanie danych z bufora 14 do pamięci bazowego. Po zakończeniu przesłania, układ 12 sterowania zwrotnie powiadomi o tym fakcie układ 11 obsługi DMA. Po przesłaniu pierwszej sekwencji, układ 11 obsługi DMA ładuje liczbę pozostałych bajtów do pokazanego na fig. 8 akumulatora 35. Ponownie, jeżeli bit znaku jest równy zeru, w miejsce liczby sekwencji jest wpisywana wartość rozmiaru sekwencji i określona przez tę wartość ilość danych jest przesyłana za pomocą operacji DMA. Jednak gdy bit znaku ma wartość 1, liczba w akumulatorze 35 będzie mniejsza od rozmiaru sekwencji w rejestrze sekwencji 36. Multiplekser 37 typu dwa najeden wybierze zatem zawartość akumulatora dla ostatniego i końcowego przesłania DMA. Bit znaku o wartości 1 oznacza liczbę ujemną, a bit znaku o wartości 0 oznacza liczbę dodatnią lub zero. Wykrywanie zerajest istotne, ponieważ wskazuje, że zerowa liczba sekwencji nie powinna być realizowana. Po wyczerpaniu liczby bajtów pakietu, układ U obsługi DMA odpowiada pokazanemu na fig. 3 kontrolerowi 10 pakietu potwierdzeniem zakończenia operacji.
Pokazany na fig. 3 układ 13 arbitrażu i sterowania bezpośrednim dostępem do pamięci procesora DSP stanowi część wspomnianego wyżej programowalnego układu arbitrażu i sterowania DMA/IO typu Intel 82325. Układ wykorzystuje licznik adresów procesora DSP zawierający wartości modulo, a także wartości licznika bajtów załadowanego liczbą sekwencji, co ilustrują pokazane na fig. 3 wyjścia z bloku 1^ i 15, biegnące do bloku 13. Kontroler 10 pakietu ładuje licznik adresów w bloku 13, a układ 11 ładuje licznik bajtów i zeruje wewnętrzny bufor adresów przy inicjalizacji startu operacji DMA procesora DSP. Układ U obsługi DMA również ustawia drogi danych bufora DMA i sprawdza przed uruchomieniem układ 13 sterowania bezpośrednim dostępem do pamięci procesora DSP. Znajdujący się w bloku 13 licznik liczby bajtów bezpośredniego dostępu do pamięci procesora DSP zwiększa swoją zawartość o jeden lub dwa każdorazowo, gdy działanie modułu sterującego magistralą dotyczy pamięci danych. Licznik bajtów zwiększa swoją zawartość o jeden w trybie przesyłania bajtów i o dwa w trybie przesyłania słów. Licznik bajtów zwiększa swoją zawartość o cztery, gdy operacja dotyczy pamięci rozkazów, co można stwierdzić na podstawie bloku 38 pokazanego na fig. 5. Układ 13 sterowania bezpośrednim dostępem do pamięci procesora DSP po odebraniu sygnału startu realizuje albo odczytywanie danych z procesora DSP i zapamiętuje te dane w buforze wewnętrznym 14, albo czyta dane z bufora 14 i zapamiętuje je w procesorze DSP, albo też czyta bufor i zapamiętuje jego zawartość w pamięci rozkazów procesora DSP, odpowiedno do informacji sterującej z bitów kierunkowych 01,02 pokazanych na fig. 4.
Pokazany na fig. 3 główny układ 12 arbitrażu i sterowania magistralą systemu głównego stanowi również część układu scalonego typu Intel 82325. Ten układ sterowaniajest odpowiedzialny za dwukierunkowy ruch danych pomiędzy magistralami głównego komputera personalnego i pokazanym na fig. 3 wewnętrznym buforem 14 typu RAM. W tym układzie 12 sterowania wykorzystuje się adresujący układ sekwencyjny ośmioelementowego kodu Grey'a taktowany co 30 ns, który daje
170 083 sekwencje o długości cyklu 240 ns. Układ sterowania ma układy logiczne do arbitrażu magistrali systemu głównego, rozmieszczenia bajtów, kierowania danych, wykonywania funkcji rozwijania i trzymania przy modułowym adresowaniu pamięci, a także układy logiczne do upakowania buforów wewnętrznych. Pod pojęciem rozwijania rozumie się przyrostową, skokową zmianę adresu, począwszy od adresu startowego w pamięci do następnego w kolejności adresu startowego. Pod pojęciem trzymania rozumie się każdorazowe odczytywanie szeregu słów (adresów), począwszy od adresu początkowego. Skok oznacza szereg słów (adresów), które nie są czytane (to jest szereg słów za pomocą których rozwijanie przekracza wartości trzymane). Jak pokazano na fig. 3, układ 12 sterowania współpracuje z kontrolerem 10 i układem Π obsługi DMA. Interfejsem kontrolera W pakietu jest po prostu interfejs słowa sterującego, przy czym parametry słowa sterującego są przekazywane z pokazanego na fig. 4 słowa sterującego do głównego układu arbitrażu i sterowania magistralą główną. Zgodnie z fig. 3, parametry te obejmują: bity kierunkowe, wskaźnik bajtu/słowa, górny i dolny adresy systemu itp. Bity kierunkowe informują układ 12 sterowania o tym, czy w pamięci systemu głównego należy wykonać operację czytania lub pisania. Bit system M/IO informuje układ 12 sterowania o tym, czy należy czytać lub pisać do pamięci głównego komputera personalnego,”hib do jego obszaru we/wy. Połączone ze sobą górny i dolne adresy systemu określają adres startowy wykorzystywany przez układ 12 sterowania do wykonywania operacji modułu sterującego magistralą. Licznik adresów systemowych może być zwiększany o 20 bitów, wobec czego wszystkie operacje są ograniczone granicami 1 megabajta. Bity rozwijania/trzymania i zezwolenia wprowadzane do układu 12 sterowania z kontrolera 10 pakietów dają modułowi zwiększania adresu systemu głównego możliwości skoku, to jest w przypadku zezwolenia, wykonania modułowego lub blokowego adresowania pamięci. Wartości rozwijania i trzymania są wartościami binarnymi wprowadzanymi do układu 12 sterowania przez kontroler 10 pakietu. Wartość trzymaj jest zawarta w wartości rozwijaj według wspomnianej wcześniej ogólnej zależności dodanie trzymania do rozwinięcia daje skok.
Układ 1_1 obsługi DMA inicjalizuje rozpoczęcie operacji w głównym układzie Γ2 arbitrażu i sterowania magistrali systemowej. Po jego zainicjalizowaniu, układ 12. sterowania prowadzi pełne sterowanie wewnętrznego bufora 14 typu RAM, do którego dostarcza adresy bufora i sygnały zezwolenia pisania, i akceptuje lub odbiera dane z bufora. Parametry określające liczbę sekwencji i nową liczbę pakietu są przekazywane przez układ 11 obsługi do układu 12 sterowania.
Pełne działanie kontrolera 10 pakietu jest inicjalizowane przez sygnał z procesora DSP nazywany poprzednio sterowaniem taktującym. Rozpoczynając od fig. 9, omówimy dokładnie przebieg wykonywania operacji w pokazanym na fig. 3 kontrolerze 10 pakietu. D>^^al^anie kontrolera 10 pakietu rozpoczyna przychodzący z DSP sygnał taktujący. W bloku 40 kontroler uzyskuje dostęp do pamięci danych procesora DSP, w której znajduje się pakiet DMA i odczytuje zawartość licznika cykli. W bloku 41 kontroler otrzymuje z procesora DSP pozycję startową wskaźnika pierwszego pakietu DMA, a następnie w bloku 42 czyta pamięć danych DSP i licznika cykli. W bloku 43. następuje zwiększenie wartości wskaźnika i w bloku 44 przeprowadzany jest test sprawdzający, czy został osiągnięty koniec listy pakietów w liście żądań pakietów DMA procesora DSP. W przypadku, gdy koniec nie został osiągnięty, kontroler w bloku 45 odczytuje bity kierunkowe i jeżeli oba bity mają wartość zero, co wskazuje na stwierdzenie pakietu czekania, w bloku 46 przeprowadzane jest czterokrotne zwiększenie wskaźnika pakietu, a potem następuje powrót do bloku 40, w którym odbywa się oczekiwanie na nowy sygnał taktujący.
Jeżeli nie stwierdzono bitów czekania, to działania są kontynuowane w bloku 48,w którym odpowiednio do wartości wskaźnika pakietujest odczytywany rejestr sterujący. W bloku 49 następuje zwiększenie wskaźnika i sprawdzane są jego bardziej znaczące bity dla stwierdzenia, czy są one większe od zera. Jeżeli bity te są większe od zera, to w bloku 51 nie wykonuje się ładowania żadnych parametrów trzymania i rozwijania. Jeżeli jednak bity Π-15 są różne od zera, to jak pokazano to szczegółowo na fig. 4, przeprowadzane jest ładowanie wartości trzymania i rozwijania z rejestrów 1 i 2. słowa sterowania pod adres umieszczony w bitach 11-15.
170 083
W bloku 53, do bitów 08-23_ rejestru adresu systemowego są wprowadzane dane wskazywane przez wskaźnik, który jest następnie zwiększany w bloku 54, a adres systemowy jest zapamiętywany jako adres bajtu. W bloku 55 dane wskazywane przez wskaźnik są ładowane do bitów 00-07 rejestru adresu systemowego, a w bloku 56 zwiększany jest wskaźnik wskazujący dane, które są ładowane do wyspecyfikowanego rejestru adresu procesora DSP, po czym wskaźnik jest zwiększany w bloku 58.·
W bloku 59 adres DSP jest zapamiętywany jako adres słowa i w bloku 60 wykonywane jest przesłanie do lub z adresu DSP wskazanego przez pokazany na fig. 3 inicjalizujący układ 11 obsługi DMA. Działania wracają z powrotem do bloku 42, w którym odczytywany jest następny adres pamięci danych procesora DSP, itd. W bloku 44 ponownie sprawdzany jest koniec listy i w przypadku, gdy koniec listy został osiągnięty, napotykany jest blok 47, w którym pod adres wskaźnika DMA jest ładowana wartość startowa wskaźnika pakietu co powoduje, że kontroler pakietu wykona pętlę z powrotem do następnego segmentu segmentowej listy żądań DMA wykonanej przez procesor DSP.
Na podstawie wcześniejszych rozważań można rzeczywiście uznać, że opisane poprzednio rozwiązanie stanowi pełny system komputerowy zawierający podsystem bezpośredniego dostępu do pamięci (DMA) i zestaw podsystemów komputer główny/DMA i DMA/DSP indywidualnie przystosowanych do trudnych, działających w czasie rzeczywistym zastosowań wieloprocesorowych, na przykład takich, jak spotykane w multimedialnym systemie komputerowym. Elementami pełnego multimedialnego systemu komputerowego są dobrze znane i dostępne w handlu komponenty, włączając w to układy arbitrażu procesorów DSP, modułów we/wy typu DMA i scalonych jednostek sterujących, i komputerów głównych do zarządzania systemem komputerów personalnych, co było w różnych aspektach wspomniane i opisane wyżej.
Jest to konfiguracja systemu i podsystemów, i środków sterowania i komunikacji pomiędzy podsystemami i indywidualnymi procesorami, która umożliwiła uzyskanie unikalnych korzyści niniejszego wynalazku, dlatego też dla specjalistów jest oczywiste, że możliwe są różnorodne modyfikacje sprzętowo/programowej struktury systemu i dołączonych podsystemów, bez oddalania się od idei i zakresu sposobu działania lub funkcjonalnej struktury systemu.
Przykładowo, ponieważ prędkości i pojemności pamięci aktualnie dostępnych procesorów sygnałów są doskonałe, i szybko mogą być dostępne jeszcze szybsze procesory z większymi pamięciami, za pomocą których praktycznie byłoby możliwe przeniesienie funkcji zarządzania relokacją zasobów z procesorów DP do procesorów DSP, lub na odwrót, zarządzanie relokacją żądań zasobów procesorów DSP może być przydzielone dodatkowemu procesorowi w tym samym systemie, w którym znajdują się procesory DP i DSP, lub procesor DSP może mieć taką prędkość i pojemność pamięci, które pozwolą mu realizować nie tylko zadania procesora DSP, lecz także zarządzać przyporządkowaniem własnych zasobów i realizować na bieżąco zadania użytkownika również zamiast procesora DP, przy czym wszystko to bez odejścia od idei i zakresu niniejszego wynalazku. Również całkowicie mogą być zastąpione układy DMA, gdy procesor DSP podejmie się bezpośredniej realizacji programów z zadaniami użytkownika, wobec czego międzyprocesorowy układ sterowania układami we/wy bezpośredniego dostępu do pamięci nie będzie potrzebny, ponieważ system operacyjny procesora DSP może zarządzać i zasoby przetwarzania sygnałów DSP za zarządzanych list zadań, podobnie jak w zalecanym wykonaniu zarządzany jest układ sterowania we/wy bezpośredniego dostępu do pamięci i listy pakietów procesora DSP.
Przykładowo jeżeli procesor DSP ma wystarczającą prędkość i dostępna jest dostateczna pojemność pamięci rezydentnej, to żądania listy pakietów procesora DSP mogą być przetwarzane i obsługiwane przez ten sam procesor DSP, który może również wykonywać początkowe rozmieszczenie zadań dotyczących zasobów. Mówiąc skrótowo, przedstawiony tu wynalazek rozważa wydajność rozmieszczania zasobów zadań użytkownika, tworzenia list przesyłania danych, wykonywania zadań przetwarzania sygnału w uzupełnieniu zadań użytkownika i możliwość całkowitego zastąpienia funkcji DMA poprzez zastosowanie tylko jednego procesora DSP, co może nastąpić natychmiast po tym, gdy w takich procesorach DSP staną się dostępne wyższe prędkości pracy i/lub większe pojemności pamięci.
170 083
170 083
Fig. 2
170 083
BITY KIERUNKU
ROZWIJ7 /TRZYM
INTER ir<H>
li
BAJT/
SŁOWO
Ir
START
UKŁADU
OBSŁUGI'
DMA
PAM. MAGISTR. DANYCH DSP
ŁADOWANIE GORNEGO I DOLNEGO ADRESU SYSTEMU
TABLICA -OROZWIJ.
PTR -O ADR ES DMA/DSP
BAJT/SŁOWO
ŁADUJ ^LICZBĘ
BAJTÓW PAKIETU UKL OBSL \ DMA \ładowanie
ADRESU DSP
FEJS
ZEWN.
SYST.
UKŁAD ARBITRAŻU I STEROWANIA MAGIS\ TRALĄ SYSTEMU GŁĆWNEGO
SYS
M/IO
START
SYS
SYS
ZAKON,
ZAKOŃCZ
OPER UKL OBSL DMA
NOWY
-PAKIET > KIERUNEK BAJT/ SŁOWO > SYS M/IO -> MODULO -C> LICZBA
PAKIETU
MODUŁ
BITY KIER
BAJT/
SŁOWO
ZEZW ADR. SYSJ_
ŁADUJ ADR. SYST. (WYS, NISKI)
WE BUF SYST · (WYS., NISKI)
ŁADUJ
UKŁAO OBSŁUGI I
STEROWANIA DMA ,1 ZEZW LICZ/BĘ^SEKW
ŁADUJ I ZEZWÓL LICZBĘ TRZYM
MULTIPL
DAN= rSYSfr
USTAW STAN POCZp.
BUF. ADR. SYST
ZEZW ADR. BUF
START LDMA /SEKW LD
ZAKOŃCZONY
LDMA
BITY KIER.
STER /BUF - SYS
BAJT/
SŁOWO
ZMNIEJSZ BUFOR DMA
ZMIEŃ/
WE-WY
DANYCH
SYST (GÓRNY. DOLNY)
PODSYSTEM
BUFORA
PAKIETU
ΓΊ
MAGISTR. PAMIĘCI SYST GŁÓWNEGO
UKŁAD ARBITRAŻU MAGISTRALI I STEROWA
ZADANIE |LDMA
POTW ^LDMA -O ZEZW WE
NIA DSP/DMA V REJ
A
USTAW STAN POCZ. BUF ADRESU DSP
ZEZWOLENIE BUF ADR DSP
Ku
MAGISTR PAMIĘCI ——& nrt-rL/ a? tnAkic nco
ZEZW/ WY REJ 2
ZEZW
WY
REJ.1
Fig.3
170 083
BARDZIEJ ZNACZ BITÓW: 8 MNIEJ ZNACZ.
BIT WSKAŹNIKA STERUJĄCEGO KOŃCA LISTY
Fig.4
170 083
WEJ DANYCH SYS
ZEZW REJ_£.
WE SYS
ADRES
I PAMIĘCI I SYSTEMOWEJ
ODP BUF ADR SYST
ZEZW BUF. ADR H SYST
ODP BUF
WEJ
REJ
SYST.
Χ16
ADR H BUF SYST
MULTIPLEKSER
PRZEM.
DANE MUSZA BYĆ UPORZADK WG.
PARZYSTOŚCI
WE
DANYCH DO PRZEM
MULTIPLEKSER DANYCH
MILT DANYCH : SYST
ADR BUF. DSP
MULTIPLEKSER
2«1
ADR.H
A3 - AO (WYSOKI)
ADR BUF DSP
-STER BUF = SYST
| ADR. SYST | A0R.1 | Lc |
| BUF SYST | c | |
| ZEZW BUF^ |
MULTIPLEKSER
2«1
A3- AO (NISKI)
ADRES
SYST
BC = . 1 LUB 2
WE DSP -c
HWE SYST -O
WE LOK _
-C
LWE SYST
MULTIPLEKSER
2x1
TER. BUF : SYST ψ STER. BUF T--SYST
MULTIPLEKSER
2x1
HWE
BUFOR 32 BAJTOWY OMA(DWA UKŁADY RAM 16 SLOW χ 8 BITÓW)
LWE
DO WYJŚCIA OANYCH SYST<ł—
| - ςγςτ | WYJ SYST | |
| MULTI- PLEKSER | ||
| REO | ||
| PRZEM. | <3-WYJŚCIE-DANYCH DO7CrkJłCC7r7 | Χ16 |
WYJŚCIE DANYCH BUFORA
-ZEZW. WYJ REJ. SYST
WSK. ADRES SYST ROZWIŃ
LD ADR SYST. H,L ZEZW. ADR. SYST
LICZBA SEKWENCJI
LD STER SEKW (BC) ZEZW STER. SEKW (BC)
| FIG. | FIG. |
| ,5A | 5B |
FIG.5
Fig. 5A
170 083
I (TEN REJESTR JEST WYKORZYSTYI WANY WSPÓLNIE PRZEZ UKŁAD I STER PAKIETU I UKŁADU STER.
I DSP/DMA NA FIG 3)
Z WEJŚCIA MAGISTRALI DANYCH DSP ZEZW REJ WE DSP
ADRES BUFORA DSP
USTAW ADRES BUFORA DSP
ZEZW ADR BUFORA OSP
Fig. 5B
170 083
Fig. 6
170 083
Fig. 7A
170 083
Fig. 7B
170 083
POCZĄTKOWA
LICZBA
BAJTÓW
BAJTÓW LICZBA
SEKWENCJI
Fig.8
170 083
Fig. 9A
170 083
Fig. 9B
170 083
Fig. 10
170 083
Fig. 1
Departament Wydawnictw UP RP. Nakład 90 egz.
Cena 6,00 zł
Claims (8)
- Zastrzeżenia patentowe1. Sposób przetwarzania danych w multimedialnym urządzeniu komputerowym zawierającym pierwszy procesor cyfrowy, do wykonywania programów zadaniowych użytkownika, oraz drugi procesor cyfrowy, do realizacji żądań przetwarzania sygnału cyfrowego we współdziałaniu z wykonywaniem programów zadaniowych użytkownika w pierwszym procesorze cyfrowym, znamienny tym, że wyznacza się na wstępie ogólne wymagania sprzętowe drugiego procesora cyfrowego niezbędne do wspomagania realizacji aktywnych, wybranych przez użytkownika programów zadaniowych, następnie porównuje się wymagania sprzętowe drugiego procesora cyfrowego z maksymalnymi dostępnymi możliwościami drugiego procesora cyfrowego oraz eliminuje się realizację każdego z wybranych przez użytkownika programów zadaniowych w pierwszym procesorze cyfrowym, jeżeli wymagania związane z realizacją programu zadaniowego powodują, że ogólne wymagania sprzętowe drugiego procesora cyfrowego przekraczają maksymalne dostępne możliwości tego drugiego procesora cyfrowego, po czym zestawia się, zgodnie do otrzymanych przez drugi procesor cyfrowy żądań przetwarzania sygnału cyfrowego, dzielone na partycje kolejki żądań przesyłu danych z bezpośrednim dostępem do pamięci oraz wstawia się znaczniki partycji w kolejkę w regularnych przedziałach czasu, po czym udostępnia się dane przeznaczone do przekazania w pierwszym procesorze cyfrowym lub w drugim procesorze cyfrowym i przesyła się dane do pamięci buforowej, oraz udostępnia się pamięć buforową pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, w której dane mają zostać zapisane, i przesyła się dane do pamięci buforowej pierwszego procesora cyfrowego lub drugiego procesora cyfrowego, a następnie zezwala się na wykonanie żądań przesyłu danych z partycji kolejki w przedziale czasu, w którym drugi procesor cyfrowy zestawia inną partycję kolejki.
- 2. Multimedialne urządzenie komputerowe zawierające pierwszy procesor cyfrowy, do wykonywania programów zadaniowych użytkownika, znamienne tym, że zawiera drugi procesor cyfrowy (DSP) do przetwarzania sygnału cyfrowego we współdziałaniu z wykonywaniem programów zadaniowych użytkownika, magistralę systemu głównego włączoną między pierwszy procesor cyfrowy (DS) a podzespół urządzenia zawierający drugi procesor cyfrowy (DSP), przy czym podzespół ten zawiera ponadto układ analizowania nadchodzących żądań z zadaniami i zestawiania partycjowanej kolejki żądań przesyłu danych z bezpośrednim dostępem do pamięci (DMA), do przesyłania danych między pamięcią główną a drugim procesorem cyfrowym (DSP), układ wprowadzania znaczników regulacji ruchu w kolejce w regularnych odstępach czasu, do generacji sygnału startowego przesyłanego z drugiego procesora cyfrowego (DSP) do międzyprocesorowego sterownika (DMA/IO), oraz międzyprocesorowy sterownik (DMA/IO) do sterowania przesyłem danych między drugim procesorem cyfrowym (DSP) a pamięcią główną, przy odczycie z pamięci głównej, w odpowiedzi na sygnał startowy, partycji danych spod adresu, pod którym ostatnio znajdował się pakiet oczekujący na żądanie przesyłu, ustawionego w kolejkę partycji.
- 3. Urządzenie według zastrz. 2, znamienne tym, że każde żądanie przesyłu danych z bezpośrednim dostępem do pamięci (DMA) zawiera, generowane przez drugi procesor cyfrowy (DSP), pola specyfikujące dane określające adres źródłowy i adres przeznaczenia w pamięci (DMA), kierunek przesyłu danych, liczbę bloków przesyłanych danych, operacyjne wskaźniki sterujące i wskaźnik końca żądania.
- 4. Urządzenie według zastrz. 2, znamienne tym, że międzyprocesorowy sterownik (DMA/IO) stanowi układ do sterowania przesyłem danych między pierwszym procesorem cyfrowym (DP) i drugim procesorem cyfrowym (DSP), zaś urządzenie zawiera magistrale170 083 danych i adresową łączące międzyprocesorowy sterownik (DMA/IO) z pierwszym procesorem cyfrowym (DS) i drugim procesorem cyfrowym (DSP).
- 5. Urządzenie według zastrz. 4, znamienne tym, że międzyprocesorowy sterownik (DMA/IO) stanowi układ realizacji przesyłu danych między pierwszym procesorem cyfrowym (DP) i drugim procesorem cyfrowym (DSP) poprzez dostęp do partycjowanej kolejki i sterowanie przesyłem danych do pól danych wyspecyfikowanych w tych żądaniach.
- 6. Urządzenie według zastrz. 4, znamienne tym, że drugi procesor cyfrowy (DSP) stanowi układ zestawiania partycji kolejki i umieszczania w niej żądania przesyłu danych z międzyprocesorowego sterownika (DMA/IO) występujące w regularnych odstępach czasu, podczas których międzyprocesorowy sterownik (DMA/IO) realizuje przesył danych na podstawie żądań przesyłu danych z innych partycji kolejki.
- 7. Urządzenie według zastrz. 2, znamienne tym, że zawiera układy dostępu do zasobów przetwarzania sygnałowego drugiego procesora cyfrowego (DSP), niezbędnych do realizacji każdego z programów zadania użytkownika przy jego wybraniu przez użytkownika, przy czym dostęp obejmuje określenie maksymalnego żądania przesyłu bloku danych przez program zadania wybranego przez użytkownika w zadanym okresie czasu, maksymalnej żądanej prędkości wykonania i maksymalnej wielkości pamięci wymaganej przez drugi procesor cyfrowy (DSP).
- 8. Urządzenie według zastrz. 2, znamienne tym, że międzyprocesorowy sterownik (DMA/IO) zawiera pamięć buforową i realizuje żądanie przesyłu danych przez dostęp do źródłowego adresu pamięci, umieszczenie danych spod niego w pamięci buforowej, dostęp do adresu przeznaczenia w pamięci i przesył danych pod ten adres z pamięci buforowej.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US76153491A | 1991-09-18 | 1991-09-18 | |
| PCT/EP1992/001965 WO1993006553A1 (en) | 1991-09-18 | 1992-08-26 | Multi-media signal processor computer system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| PL170083B1 true PL170083B1 (pl) | 1996-10-31 |
Family
ID=25062507
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PL92302682A PL170083B1 (pl) | 1991-09-18 | 1992-08-26 | Sposób przetwarzania danych w multimedialnym urzadzeniu komputerowym i multimedialne urzadzenie komputerowe PL PL |
Country Status (15)
| Country | Link |
|---|---|
| US (3) | US5404522A (pl) |
| EP (1) | EP0604471B1 (pl) |
| JP (1) | JPH0827782B2 (pl) |
| KR (1) | KR970000910B1 (pl) |
| CN (1) | CN1026733C (pl) |
| AT (1) | ATE149259T1 (pl) |
| BR (1) | BR9203427A (pl) |
| CA (1) | CA2069711C (pl) |
| CZ (1) | CZ290716B6 (pl) |
| DE (1) | DE69217664T2 (pl) |
| HU (1) | HU219533B (pl) |
| PH (1) | PH31674A (pl) |
| PL (1) | PL170083B1 (pl) |
| SK (1) | SK31194A3 (pl) |
| WO (1) | WO1993006553A1 (pl) |
Families Citing this family (122)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5440740A (en) * | 1992-10-13 | 1995-08-08 | Chen; Fetchi | System and method for managing devices on multiple digital signal processors |
| US6026443A (en) * | 1992-12-22 | 2000-02-15 | Sun Microsystems, Inc. | Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface |
| US5828856A (en) * | 1994-01-28 | 1998-10-27 | Apple Computer, Inc. | Dual bus concurrent multi-channel direct memory access controller and method |
| US5805927A (en) * | 1994-01-28 | 1998-09-08 | Apple Computer, Inc. | Direct memory access channel architecture and method for reception of network information |
| US5655151A (en) * | 1994-01-28 | 1997-08-05 | Apple Computer, Inc. | DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer |
| WO1995027251A1 (en) * | 1994-03-30 | 1995-10-12 | Apple Computer, Inc. | Streaming storage system and streaming data buffer |
| DE4428068A1 (de) * | 1994-08-09 | 1996-02-15 | Sel Alcatel Ag | Telekommunikationsendgerät |
| TW270193B (pl) * | 1994-08-10 | 1996-02-11 | Ibm | |
| US5685005A (en) * | 1994-10-04 | 1997-11-04 | Analog Devices, Inc. | Digital signal processor configured for multiprocessing |
| US5634076A (en) * | 1994-10-04 | 1997-05-27 | Analog Devices, Inc. | DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer |
| US5634099A (en) * | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
| DE69614291T2 (de) * | 1995-03-17 | 2001-12-06 | Lsi Logic Corp., Fort Collins | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
| US5864712A (en) * | 1995-03-17 | 1999-01-26 | Lsi Logic Corporation | Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment |
| US5774745A (en) * | 1995-03-31 | 1998-06-30 | Cirrus Logic, Inc. | Method and apparatus for writing and reading entries in an event status queue of a host memory |
| US5659749A (en) * | 1995-05-08 | 1997-08-19 | National Instruments Corporation | System and method for performing efficient hardware context switching in an instrumentation system |
| US5870622A (en) * | 1995-06-07 | 1999-02-09 | Advanced Micro Devices, Inc. | Computer system and method for transferring commands and data to a dedicated multimedia engine |
| EP0834136B1 (en) * | 1995-06-07 | 1999-08-11 | Advanced Micro Devices, Inc. | Computer system having a dedicated multimedia engine including multimedia memory |
| WO1997006490A1 (en) * | 1995-08-09 | 1997-02-20 | Cirrus Logic, Inc. | Parasitic personal computer interface |
| US5784592A (en) * | 1995-09-11 | 1998-07-21 | Advanced Micro Devices, Inc. | Computer system which includes a local expansion bus and a dedicated real-time bus for increased multimedia performance |
| US5692211A (en) * | 1995-09-11 | 1997-11-25 | Advanced Micro Devices, Inc. | Computer system and method having a dedicated multimedia engine and including separate command and data paths |
| EP0867016A1 (en) * | 1995-12-06 | 1998-09-30 | Intergraph Corporation | Peer-to-peer parallel processing graphics accelerator |
| US5748921A (en) * | 1995-12-11 | 1998-05-05 | Advanced Micro Devices, Inc. | Computer system including a plurality of multimedia devices each having a high-speed memory data channel for accessing system memory |
| US5761532A (en) * | 1995-12-29 | 1998-06-02 | Intel Corporation | Direct memory access controller with interface configured to generate wait states |
| US5954811A (en) * | 1996-01-25 | 1999-09-21 | Analog Devices, Inc. | Digital signal processor architecture |
| US5896543A (en) * | 1996-01-25 | 1999-04-20 | Analog Devices, Inc. | Digital signal processor architecture |
| JPH09212461A (ja) * | 1996-01-29 | 1997-08-15 | Internatl Business Mach Corp <Ibm> | データ転送制御方法 |
| US6115767A (en) * | 1996-03-04 | 2000-09-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of partially transferring data through bus and bus master control device |
| US5987590A (en) * | 1996-04-02 | 1999-11-16 | Texas Instruments Incorporated | PC circuits, systems and methods |
| US5894554A (en) | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
| EP0804008B1 (en) * | 1996-04-26 | 2006-11-15 | Texas Instruments Incorporated | Apparatus for data packet transfer control |
| US6006286A (en) * | 1996-04-26 | 1999-12-21 | Texas Instruments Incorporated | System for controlling data packet transfers by associating plurality of data packet transfer control instructions in packet control list including plurality of related logical functions |
| US5898892A (en) * | 1996-05-17 | 1999-04-27 | Advanced Micro Devices, Inc. | Computer system with a data cache for providing real-time multimedia data to a multimedia engine |
| US5805838A (en) * | 1996-05-31 | 1998-09-08 | Sun Microsystems, Inc. | Fast arbiter with decision storage |
| US6832380B1 (en) * | 1996-06-28 | 2004-12-14 | Tarantella, Inc. | Client-server application partitioning with metering technique for distributed computing |
| US5898895A (en) * | 1996-10-10 | 1999-04-27 | Unisys Corporation | System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing |
| US5926649A (en) * | 1996-10-23 | 1999-07-20 | Industrial Technology Research Institute | Media server for storage and retrieval of voluminous multimedia data |
| US6076127A (en) * | 1996-11-06 | 2000-06-13 | International Business Machines Corporation | Configuration of a single point bus arbitration scheme using on-chip arbiters |
| US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
| US6259957B1 (en) | 1997-04-04 | 2001-07-10 | Cirrus Logic, Inc. | Circuits and methods for implementing audio Codecs and systems using the same |
| JPH10328163A (ja) | 1997-05-28 | 1998-12-15 | Siemens Ag | 核スピン断層撮影装置のためのパルスシーケンスの制御方法及び装置 |
| US6539415B1 (en) * | 1997-09-24 | 2003-03-25 | Sony Corporation | Method and apparatus for the allocation of audio/video tasks in a network system |
| US6002882A (en) * | 1997-11-03 | 1999-12-14 | Analog Devices, Inc. | Bidirectional communication port for digital signal processor |
| US5938744A (en) * | 1997-11-04 | 1999-08-17 | Aiwa/Raid Technlogy, | Method for managing multiple DMA queues by a single controller |
| US6061779A (en) * | 1998-01-16 | 2000-05-09 | Analog Devices, Inc. | Digital signal processor having data alignment buffer for performing unaligned data accesses |
| EP0936813A1 (en) | 1998-02-16 | 1999-08-18 | CANAL+ Société Anonyme | Processing of digital picture data in a decoder |
| US6253237B1 (en) * | 1998-05-20 | 2001-06-26 | Audible, Inc. | Personalized time-shifted programming |
| US6418459B1 (en) * | 1998-06-09 | 2002-07-09 | Advanced Micro Devices, Inc. | Isochronous task scheduling structure for a non-real-time operating system |
| US6421702B1 (en) * | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
| US6704763B1 (en) | 1998-06-09 | 2004-03-09 | Advanced Micro Devices, Inc. | Hardware enforcement mechanism for an isochronous task scheduler |
| US6502123B1 (en) | 1998-06-09 | 2002-12-31 | Advanced Micro Devices, Inc. | Isochronous system using certified drivers to ensure system stability |
| WO1999064990A2 (en) | 1998-06-12 | 1999-12-16 | Intergraph Corporation | System for reducing aliasing on a display device |
| US6378017B1 (en) * | 1998-07-08 | 2002-04-23 | Nms Communications Corporation | Processor interconnection |
| US6577316B2 (en) | 1998-07-17 | 2003-06-10 | 3Dlabs, Inc., Ltd | Wide instruction word graphics processor |
| US6459453B1 (en) | 1998-07-17 | 2002-10-01 | 3Dlabs Inc. Ltd. | System for displaying a television signal on a computer monitor |
| WO2000004527A1 (en) * | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Apparatus and method of directing graphical data to a display device |
| US6188410B1 (en) | 1998-07-17 | 2001-02-13 | 3Dlabs Inc. Ltd. | System for processing vertices from a graphics request stream |
| US6480913B1 (en) | 1998-07-17 | 2002-11-12 | 3Dlabs Inc. Led. | Data sequencer with MUX select input for converting input data stream and to specific output data stream using two exclusive-or logic gates and counter |
| US7518616B1 (en) | 1998-07-17 | 2009-04-14 | 3Dlabs, Inc. Ltd. | Graphics processor with texture memory allocation system |
| US6476816B1 (en) | 1998-07-17 | 2002-11-05 | 3Dlabs Inc. Ltd. | Multi-processor graphics accelerator |
| US6518971B1 (en) | 1998-07-17 | 2003-02-11 | 3Dlabs Inc. Ltd. | Graphics processing system with multiple strip breakers |
| US6181355B1 (en) | 1998-07-17 | 2001-01-30 | 3Dlabs Inc. Ltd. | Graphics processing with transcendental function generator |
| US6415345B1 (en) * | 1998-08-03 | 2002-07-02 | Ati Technologies | Bus mastering interface control system for transferring multistream data over a host bus |
| US6219725B1 (en) * | 1998-08-28 | 2001-04-17 | Hewlett-Packard Company | Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations |
| US6233639B1 (en) | 1999-01-04 | 2001-05-15 | International Business Machines Corporation | Memory card utilizing two wire bus |
| US6674440B1 (en) | 1999-04-05 | 2004-01-06 | 3Dlabs, Inc., Inc. Ltd. | Graphics processor for stereoscopically displaying a graphical image |
| GB9909196D0 (en) * | 1999-04-21 | 1999-06-16 | Texas Instruments Ltd | Transfer controller with hub and ports architecture |
| EP1059781B1 (de) | 1999-05-06 | 2007-09-05 | Siemens Aktiengesellschaft | Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten |
| NO993483L (no) | 1999-07-15 | 2001-01-16 | Ericsson Telefon Ab L M | Fremgangsmåte og anordning for effektiv overföring av datapakker |
| US6892339B1 (en) * | 1999-09-20 | 2005-05-10 | Freescale Semiconductor, Inc. | Discrete multi-tone (DMT) system and method that communicates a data pump data stream between a general purpose CPU and a DSP via a buffering scheme |
| US6421744B1 (en) * | 1999-10-25 | 2002-07-16 | Motorola, Inc. | Direct memory access controller and method therefor |
| US6985964B1 (en) * | 1999-12-22 | 2006-01-10 | Cisco Technology, Inc. | Network processor system including a central processor and at least one peripheral processor |
| US7661107B1 (en) * | 2000-01-18 | 2010-02-09 | Advanced Micro Devices, Inc. | Method and apparatus for dynamic allocation of processing resources |
| US6925641B1 (en) * | 2000-02-04 | 2005-08-02 | Xronix Communications, Inc. | Real time DSP load management system |
| US6757904B1 (en) * | 2000-03-10 | 2004-06-29 | Microsoft Corporation | Flexible interface for communicating between operating systems |
| US6615173B1 (en) * | 2000-08-28 | 2003-09-02 | International Business Machines Corporation | Real time audio transmission system supporting asynchronous input from a text-to-speech (TTS) engine |
| JP4915631B2 (ja) * | 2000-09-06 | 2012-04-11 | エスティー‐エリクソン、ソシエテ、アノニム | プロセッサ間通信システム |
| US20020089348A1 (en) * | 2000-10-02 | 2002-07-11 | Martin Langhammer | Programmable logic integrated circuit devices including dedicated processor components |
| US6721826B2 (en) * | 2001-09-25 | 2004-04-13 | Lsi Logic Corporation | Buffer partitioning for managing multiple data streams |
| JP2005508539A (ja) * | 2001-10-10 | 2005-03-31 | ガートナー インコーポレイテッド | コンピュータシステムにエンジン測定メトリクスを割り当てるシステム及び方法 |
| US7234144B2 (en) * | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
| EP1351514A3 (en) * | 2002-04-01 | 2005-07-20 | Broadcom Corporation | Memory acces engine having multi-level command structure |
| US7302503B2 (en) * | 2002-04-01 | 2007-11-27 | Broadcom Corporation | Memory access engine having multi-level command structure |
| US7426182B1 (en) * | 2002-08-28 | 2008-09-16 | Cisco Technology, Inc. | Method of managing signal processing resources |
| EP1662376A4 (en) * | 2003-08-07 | 2009-02-18 | Panasonic Corp | INTEGRATED PROCESSOR SWITCHING AND PRODUCT DEVELOPMENT PROCESS WITH INTEGRATED PROCESSOR SWITCHING |
| US20050038946A1 (en) * | 2003-08-12 | 2005-02-17 | Tadpole Computer, Inc. | System and method using a high speed interface in a system having co-processors |
| US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
| US7895411B2 (en) * | 2003-10-02 | 2011-02-22 | Nvidia Corporation | Physics processing unit |
| US7739479B2 (en) * | 2003-10-02 | 2010-06-15 | Nvidia Corporation | Method for providing physics simulation data |
| JP2005128963A (ja) * | 2003-10-27 | 2005-05-19 | Toshiba Information Systems (Japan) Corp | 記憶制御装置及びdma転送が可能な制御システム |
| US7188195B2 (en) * | 2003-11-14 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | DMA slot allocation |
| US7240135B2 (en) * | 2004-03-05 | 2007-07-03 | International Business Machines Corporation | Method of balancing work load with prioritized tasks across a multitude of communication ports |
| US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
| US7457484B2 (en) * | 2004-06-23 | 2008-11-25 | Creative Technology Ltd | Method and device to process digital media streams |
| US20060026308A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | DMAC issue mechanism via streaming ID method |
| JP4585809B2 (ja) * | 2004-08-02 | 2010-11-24 | 株式会社リコー | 画像処理制御装置 |
| US20060075157A1 (en) * | 2004-09-28 | 2006-04-06 | Paul Marchal | Programmable memory interfacing device for use in active memory management |
| US7370123B2 (en) | 2004-10-12 | 2008-05-06 | Nec Electronics Corporation | Information processing apparatus |
| US8079036B2 (en) * | 2004-11-10 | 2011-12-13 | Microsoft Corporation | Method and system for structured DMA transactions |
| US7369502B2 (en) * | 2004-12-02 | 2008-05-06 | Cisco Technology, Inc. | Intelligent provisioning of DSP channels for codec changes |
| US7774584B2 (en) * | 2005-03-30 | 2010-08-10 | Freescale Semiconductor, Inc. | Discrete multi-tone (DMT) system and method that communicates a data pump data stream between a general purpose CPU and a DSP via a buffering scheme |
| US7697536B2 (en) * | 2005-04-01 | 2010-04-13 | International Business Machines Corporation | Network communications for operating system partitions |
| US7496695B2 (en) * | 2005-09-29 | 2009-02-24 | P.A. Semi, Inc. | Unified DMA |
| US7620746B2 (en) * | 2005-09-29 | 2009-11-17 | Apple Inc. | Functional DMA performing operation on DMA data and writing result of operation |
| JP2007156824A (ja) * | 2005-12-05 | 2007-06-21 | Nec Electronics Corp | プロセッサシステム、タスク制御方法 |
| US7415449B2 (en) * | 2006-01-30 | 2008-08-19 | Xerox Corporation | Solution recommendation based on incomplete data sets |
| US20090222270A2 (en) * | 2006-02-14 | 2009-09-03 | Ivc Inc. | Voice command interface device |
| US8069279B2 (en) * | 2007-03-05 | 2011-11-29 | Apple Inc. | Data flow control within and between DMA channels |
| GB2459331B (en) * | 2008-04-24 | 2012-02-15 | Icera Inc | Direct Memory Access (DMA) via a serial link |
| US8526460B2 (en) * | 2008-10-01 | 2013-09-03 | Harris Corporation | Systems and methods for scheduling asynchronous tasks to residual channel space |
| US8181184B2 (en) * | 2008-10-17 | 2012-05-15 | Harris Corporation | System and method for scheduling tasks in processing frames |
| US8719463B2 (en) * | 2010-11-16 | 2014-05-06 | Taiwan Semiconductor Manufacturing Company, Ltd. | Processor with tightly coupled smart memory unit |
| US8843714B1 (en) * | 2011-03-30 | 2014-09-23 | Emc Corporation | Write pacing simulation tool |
| US9553590B1 (en) | 2012-10-29 | 2017-01-24 | Altera Corporation | Configuring programmable integrated circuit device resources as processing elements |
| CN103955408B (zh) * | 2014-04-24 | 2018-11-16 | 深圳中微电科技有限公司 | Mvp处理器中有dma参与的线程管理方法及装置 |
| US10452392B1 (en) | 2015-01-20 | 2019-10-22 | Altera Corporation | Configuring programmable integrated circuit device resources as processors |
| US10110233B2 (en) | 2016-06-23 | 2018-10-23 | Altera Corporation | Methods for specifying processor architectures for programmable integrated circuits |
| US10805424B2 (en) | 2017-06-29 | 2020-10-13 | Bank Of America Corporation | System for sending digital requests for resource transfers |
| CN111093109B (zh) * | 2018-10-24 | 2022-07-29 | 杭州海康威视数字技术股份有限公司 | 媒体数据播放处理方法、媒体播放设备 |
| CN112328519B (zh) * | 2020-09-30 | 2022-02-18 | 郑州信大捷安信息技术股份有限公司 | 一种pcie设备、基于sr-iov的数据包有序传输方法和系统 |
| CN112328520B (zh) * | 2020-09-30 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种pcie设备、基于pcie设备的数据传输方法和系统 |
| US20220029936A1 (en) * | 2021-06-01 | 2022-01-27 | Fujitsu Limited | Packet transmission device and packet transmission method |
| CN117215664B (zh) * | 2023-08-21 | 2024-06-11 | 白盒子(上海)微电子科技有限公司 | 一种片上系统多核dsp快速启动方法 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS603216B2 (ja) * | 1977-12-26 | 1985-01-26 | 富士通株式会社 | デ−タ処理システム運転制御方式 |
| US4485438A (en) * | 1982-06-28 | 1984-11-27 | Myrmo Erik R | High transfer rate between multi-processor units |
| JPS63153643A (ja) * | 1986-12-17 | 1988-06-27 | Mitsubishi Electric Corp | ジヨブの選択制御方式 |
| CA1279393C (en) * | 1987-01-23 | 1991-01-22 | A. David Milton | Digital signal processing system |
| US5195092A (en) * | 1987-08-04 | 1993-03-16 | Telaction Corporation | Interactive multimedia presentation & communication system |
| US4930069A (en) * | 1987-11-18 | 1990-05-29 | International Business Machines Corporation | Mechanism and method for transferring data between bus units having varying master and slave DMA capabilities |
| JPH065524B2 (ja) * | 1987-11-18 | 1994-01-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置管理方法 |
| US5142672A (en) * | 1987-12-15 | 1992-08-25 | Advanced Micro Devices, Inc. | Data transfer controller incorporating direct memory access channels and address mapped input/output windows |
| JPH01291545A (ja) * | 1988-05-18 | 1989-11-24 | Fujitsu Ltd | マルチメディア多重化装置 |
| US5003465A (en) * | 1988-06-27 | 1991-03-26 | International Business Machines Corp. | Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device |
| US4935868A (en) * | 1988-11-28 | 1990-06-19 | Ncr Corporation | Multiple port bus interface controller with slave bus |
| JPH02170644A (ja) * | 1988-12-22 | 1990-07-02 | Nec Corp | マルチメディア通信システムの優先送信方法 |
| US5377332A (en) * | 1989-10-02 | 1994-12-27 | Data General Corporation | Bus arbitration algorithm and apparatus |
| US5247626A (en) * | 1990-05-29 | 1993-09-21 | Advanced Micro Devices, Inc. | Fddi controller having flexible buffer management |
| US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
| US5165021A (en) * | 1991-01-18 | 1992-11-17 | Racal-Datacom, Inc. | Transmit queue with loadsheding |
| US5226041A (en) * | 1991-02-21 | 1993-07-06 | International Business Machines Corporation | Method for efficiently simulating the dynamic behavior of a data communications network |
-
1992
- 1992-05-27 CA CA002069711A patent/CA2069711C/en not_active Expired - Fee Related
- 1992-08-04 JP JP4207901A patent/JPH0827782B2/ja not_active Expired - Fee Related
- 1992-08-18 KR KR1019920014825A patent/KR970000910B1/ko not_active Expired - Fee Related
- 1992-08-18 PH PH44829A patent/PH31674A/en unknown
- 1992-08-18 CN CN92108730A patent/CN1026733C/zh not_active Expired - Fee Related
- 1992-08-26 HU HU9400792A patent/HU219533B/hu not_active IP Right Cessation
- 1992-08-26 PL PL92302682A patent/PL170083B1/pl not_active IP Right Cessation
- 1992-08-26 AT AT92918307T patent/ATE149259T1/de not_active IP Right Cessation
- 1992-08-26 EP EP92918307A patent/EP0604471B1/en not_active Expired - Lifetime
- 1992-08-26 SK SK311-94A patent/SK31194A3/sk unknown
- 1992-08-26 CZ CZ1994549A patent/CZ290716B6/cs not_active IP Right Cessation
- 1992-08-26 WO PCT/EP1992/001965 patent/WO1993006553A1/en not_active Ceased
- 1992-08-26 DE DE69217664T patent/DE69217664T2/de not_active Expired - Fee Related
- 1992-09-02 BR BR929203427A patent/BR9203427A/pt not_active IP Right Cessation
-
1993
- 1993-10-26 US US08/143,406 patent/US5404522A/en not_active Expired - Fee Related
-
1995
- 1995-02-06 US US08/384,192 patent/US5724583A/en not_active Expired - Fee Related
- 1995-06-08 US US08/474,713 patent/US5724587A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5404522A (en) | 1995-04-04 |
| SK31194A3 (en) | 1994-07-06 |
| DE69217664D1 (de) | 1997-04-03 |
| DE69217664T2 (de) | 1997-09-11 |
| CA2069711A1 (en) | 1993-03-19 |
| CA2069711C (en) | 1999-11-30 |
| JPH05204828A (ja) | 1993-08-13 |
| JPH0827782B2 (ja) | 1996-03-21 |
| HUT68084A (en) | 1995-05-29 |
| EP0604471B1 (en) | 1997-02-26 |
| HU9400792D0 (en) | 1994-07-28 |
| US5724583A (en) | 1998-03-03 |
| ATE149259T1 (de) | 1997-03-15 |
| PH31674A (en) | 1999-01-18 |
| US5724587A (en) | 1998-03-03 |
| CZ290716B6 (cs) | 2002-10-16 |
| CZ9400549A3 (cs) | 2002-05-15 |
| CN1026733C (zh) | 1994-11-23 |
| CN1070751A (zh) | 1993-04-07 |
| KR970000910B1 (ko) | 1997-01-21 |
| EP0604471A1 (en) | 1994-07-06 |
| HU219533B (hu) | 2001-05-28 |
| KR930006550A (ko) | 1993-04-21 |
| BR9203427A (pt) | 1993-04-20 |
| WO1993006553A1 (en) | 1993-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| PL170083B1 (pl) | Sposób przetwarzania danych w multimedialnym urzadzeniu komputerowym i multimedialne urzadzenie komputerowe PL PL | |
| KR0163234B1 (ko) | 데이타 스트리밍 메카니즘, 스트리밍 장치 어댑터, 컴퓨터 시스템 및 데이타 처리 시스템 | |
| EP0241129B1 (en) | Addressing arrangement for a RAM buffer controller | |
| US4933846A (en) | Network communications adapter with dual interleaved memory banks servicing multiple processors | |
| EP0550164B1 (en) | Method and apparatus for interleaving multiple-channel DMA operations | |
| US5133062A (en) | RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory | |
| JP3273202B2 (ja) | 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ | |
| US5910178A (en) | Method for controlling a message send in a packet-switched interconnection network | |
| US4803622A (en) | Programmable I/O sequencer for use in an I/O processor | |
| CN112131176B (zh) | 一种基于pcie的fpga快速局部重构方法 | |
| EP0226096A2 (en) | Multiple-hierarchical-level multiprocessor system | |
| EP0712076A2 (en) | System for distributed multiprocessor communication | |
| JP2001142842A (ja) | Dmaハンドシェークプロトコル | |
| JPH07120337B2 (ja) | プロセツサシステム | |
| US4470115A (en) | Input/output method | |
| CN113051195A (zh) | 存储器、gpu及电子设备 | |
| Gangwal et al. | A scalable and flexible data synchronization scheme for embedded hw-sw shared-memory systems | |
| US5944788A (en) | Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules | |
| US6161153A (en) | Method for sharing data buffers from a buffer pool | |
| CN101647002A (zh) | 多处理系统及方法 | |
| US5842003A (en) | Auxiliary message arbitrator for digital message transfer system in network of hardware modules | |
| JP2576934B2 (ja) | メモリ−マップド割込み方式 | |
| Fischer et al. | Implementation of a CAN Controller and Monitor Application on the Rapid Prototyping Platform REAR | |
| JP2001325208A (ja) | データ処理装置及びデータ処理方法 | |
| JPH10214249A (ja) | バス制御装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Decisions on the lapse of the protection rights |
Effective date: 20070826 |