NO309169B1 - Sokeprosessor - Google Patents

Sokeprosessor Download PDF

Info

Publication number
NO309169B1
NO309169B1 NO19985315A NO985315A NO309169B1 NO 309169 B1 NO309169 B1 NO 309169B1 NO 19985315 A NO19985315 A NO 19985315A NO 985315 A NO985315 A NO 985315A NO 309169 B1 NO309169 B1 NO 309169B1
Authority
NO
Norway
Prior art keywords
output
input
result
unit
processing circuit
Prior art date
Application number
NO19985315A
Other languages
English (en)
Other versions
NO985315L (no
NO985315D0 (no
Inventor
Boerge Svingen
Arne Halaas
Olaf Rene Birkeland
Original Assignee
Interagon As
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interagon As filed Critical Interagon As
Priority to NO19985315A priority Critical patent/NO309169B1/no
Publication of NO985315D0 publication Critical patent/NO985315D0/no
Priority to JP2000582922A priority patent/JP3588049B2/ja
Priority to KR10-2001-7006084A priority patent/KR100417908B1/ko
Priority to CA002350468A priority patent/CA2350468C/en
Priority to ES99972331T priority patent/ES2192887T3/es
Priority to BR9915340-8A priority patent/BR9915340A/pt
Priority to US09/600,256 priority patent/US6587852B1/en
Priority to AT99972331T priority patent/ATE232617T1/de
Priority to IL14286299A priority patent/IL142862A0/xx
Priority to EP99972331A priority patent/EP1135735B1/en
Priority to PCT/NO1999/000344 priority patent/WO2000029981A2/en
Priority to CNB99815623XA priority patent/CN100449529C/zh
Priority to RU2001116129/09A priority patent/RU2216772C2/ru
Priority to AU11915/00A priority patent/AU751081B2/en
Priority to DK99972331T priority patent/DK1135735T3/da
Priority to DE69905394T priority patent/DE69905394T2/de
Publication of NO985315L publication Critical patent/NO985315L/no
Publication of NO309169B1 publication Critical patent/NO309169B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Description

Oppfinnelsen angår en prosesseringskrets til gjenkjenning og sammenligning av komplekse mønstre i høyhastighetsdatastrømmer, spesielt til bruk i søkemotorer for søking og gjenfinning av data lagret i strukturerte eller ustrukturerte databaser, og hvor prosesseringskretsen utgjør en node i et nettverk av slike prosesseringskretser, samt en søkeprosessorkrets omfattende en multiprosessorenhet Pn med trestruktur til gjenkjenning og sammenligning av komplekse mønstre i høyhastighetsdatastrømmer, spesielt til bruk i søkemotorer for søking og gjenfinning av data lagret i strukturerte eller ustrukturerte databaser, hvor multiprosessorenheten omfatter prosesseringskretser Pi i henhold til krav 1 og hvor multiprosessorenheten Pi utgjør en krets dannet i form av et binært eller superbinært tre med n+1 nivåer S0, Si,... Sn og grad k = 2m, hvor m er et positivt helt tall større eller lik 1 og et superbinært tre definert ved k > 2.
Den foreliggende oppfinnelse realiserer en søkeprosessorkrets på basis av en multiprosessorenhet med en rekke prosesseringskretser. Ved en søkeoperasjon føres en strøm av data trinnvis gjennom søkeprosessorkretsens prosesseringskretser og for hvert trinn blir de data som for øyeblikket befinner seg i søkeprosessorkretsen, sammenlignet med et eller annet mønster som kan være kodet som en bitstreng og på forhånd lagt inn i prosesseringskretsene.
For søking av informasjon i store datastrømmer, noe som eksempelvis vil være aktuelt for søkemotorer for datakommunikasjonsnett av typen Internett eller Intranett, for overvåking av innhold i datastrømmer og for gjenfinning av data i store strukturerte og ustrukturerte databaser har det i de senere år vært utviklet dediserte prosessorer. Grunnen er at gjenkjenning og gjenfinning av informasjon på de ovennevnte områder ved kritiske operasjoner som ikke lar seg realisere effektivt med bruk av vanlige dataprosessorer. I utgangspunktet er søking og gjenkjenning av mønstre i store datamengder egnet for massivt parallell løsninger, hvor det benyttes et stort antall prosessorelementer som samtidig leter i samme eller forskjellige datasegmenter. Ved bruk av en massiv parallellisering vil det være mulig å betjene et stort antall spørsmål eller søk samtidig. For søkingen er det foreslått å benytte spesielle søkespråk som har tilstrekkelig uttrykkskraft til å beskrive trekk ved den søkte informasjon.
I teknikken er det kjent prosessorer som baserer seg på sammenligning av strenger av data eller symboler. Som eksempel på kjent teknikk i den forbindelse kan det vises til internasjonal patentsøknad PCT/NO92/00173 med tittelen "Non-numeric coprocessor". Videre har firmaet Paracel Inc. utviklet en patentert databehandlingsenhet kalt Fast Data Finder (FDF) som er spesielt innrettet til å analysere likheter mellom data. FDF benytter en mønsterjevnføringsteknologi som kan detektere en eksakt overenstemmelse, men også kan finne fjerne likhetstrekk, noe som kan være anvendelig i genforskning og tekstsøking.
Videre er det fra US patent nr. 5 553 272 (Ranganatan & al.) kjent en lineær, systolisk arrayprosessor for å beregne editeringsavstanden mellom to strenger over et gitt alfabet. Denne beregningen er basert på et kodeopplegg som reduserer antallet bit som er nødvendig for å representere en tilstand i beregningen. Den systoliske arrayprosessor er gitt en arkitektur som ikke beskranker lengden av de strenger som kan sammenlignes og benytter enkle basisceller som behøver bare å kommunisere med nærmeste cellenabo, slik at den er godt egnet for VLSI-implementasjon.
En ulempe med de kjente dediserte søkeprosessorer er at de ikke frembyr en tilstrekkelig avansert funksjonalitet for å håndtere svært komplekse søkespørsmål. En annen ulempe er at de for den alt overveiende del er basert på en kretsarkitektur som vanskelig kan tilby en slik funksjonalitet uten å bli unødig komplisert.
Et forsøk på å løse dette problemet er kjent fra US patent nr. 4 860 201 (Stolfo & al.) som viser en parallell prosesseringsinnretning strukturert som et binært tre, hvor det benyttes et stort antall prosessorer, hver med en egen I/O-enhet. Generelt angir Stolfo & al. en datamaskin med et stort antall prosessorer forbundet i en binært trestruktur slik at hver prosessor bortsett fra de som utgjør henholdsvis roten og treets blader, har en enkelt forelderprosessor og to barnprosessorer. Prosessorene arbeider typisk synkront med data som føres til dem fra forelderprosessoren og fører resultatene videre til de nærmeste etterfølgende prosessorer, dvs. forelderprosessorens barn. Samtidig kan barnprosessorene til en forelderprosessor også kommunisere med hverandre. I henhold til Stolfo & al. utgjør hver node et prosesseringselement som omfatter en prosessor i en egentlig forstand, et lese/skriveminne eller randomaksessminne og en I/O-anordning. I/O-anordningen skaffer grensesnitt mellom hvert prosesseringselement og dens forelder- og barn-prosesseringselementer slik at det fås en vesentlig forbedring i hastigheten hvormed data sendes gjennom den binære trestruktur. Da den binære trestruktur har et prosesseringelement i hver eneste node, vil prosesseringsinnretningen generelt omfatte 2n<->l prosesseringselementer, altså 1023 prosesseringselementer dersom det binære tre er realisert med n = 10 nivåer. I en foretrukket utførelse har denne kjente parallellprosessorinnretning en klokkefrekvens på 12 MHz som i tilfelle det benyttes et tre med 1023 prosessorer som hver har en gjennomsnittlig instruksjonssyklustid på 1,8 us, gir en prosesseringsytelse på omtrent 570 millioner instruksjoner i sekundet.
En binær parallellprosessor av denne art kan f.eks. være velegnet til å håndtere oppspaltbare eller partisjonerbare databehandlingsproblemer, f.eks. søking i store informasjonsmengder. Et partisjonerbart søkeproblem kan defineres som et problem hvor et spørsmål om relasjonen mellom et objekt x og en objektmengde svarer til en gjentatt bruk av en kommutativ og assosiativ binær operator b som har en identitet og et primitivt søkespørsmål som appliseres mellom et nytt objekt x og hvert element f i mengden F. Man har da et partisjonerbart søkeproblem når den logiske funksjon ELLER kombineres med det primitive spørsmål "er x lik f anvendt mellom objektet x og hvert element f i F. Som anført hos Stolfo & al., kan et problem som består i å besvare et spørsmål om mengden F, besvares med å kombinere svarene på spørsmålene applisert til vilkårlige undermengder av F. Problemet er med andre ord partisjonerbart eller oppspaltbart og velegnet til hurtig å eksekveres ved hjelp av parallell prosessering. Mengden F partisjoneres i et antall vilkårlige undermengder lik antall tilgjengelige prosessorer. Det primitive spørsmål q blir deretter applisert i parallell på hver prosessor mellom den ukjente x som formidles til samtlige prosessorer og det lokalt lagrede element f i mengden F. Resultatene blir deretter vilkårlig kombinert i parallell av log2N repetisjoner av operatoren b, idet det først utføres et antall beregninger på N/2 tilstøtende par av prosessorer og deretter et tilsvarende antall beregninger på N/4 par av prosessorer med resultatene fra de første beregningene. Operasjonene flytter seg dermed under prosessen til overliggende nivåer i det binære tre, m.a.o. fra barnprosessorer til prosessoren osv. og repeteres i parallell på hvert nivå.
Fra internasjonal patentsøknad PCT/NO99/00308 som tilhører nærværende søker er det kjent en digital prosesseringsinnretning som er egnet til å prosessere digitale data- og signalstrukturer hvor data- og signalstrukturene omfatter gjentatte sekvenser og/eller nøstede mønstre. Denne prosesseringsinnretningen er generelt konfigurert som et regulært tre med n+1 nivåer So, Si,...Sn og av grad k. Denne arkitekturen gir en rekke fordeler fremfor den som er vist i ovennevnte US patent nr. 4 860 201 og kan i en utførelse benyttes til å realisere en multiprosessorarkitektur basert på et regulært binært tre av grad 2 eller et superbinært tre av grad 2m, hvor m er et postivt helt tall større enn 4, slik at det superbinære tre eksempelvis vil ha graden 4, 8, 16... osv. En slik binær eller superbinær arkitektur vil i likhet med den som er foreslått i US patent nr. 4860201 være i stand til å håndtere partisjonerbare søkeproblemer på en effektiv måte.
Hovedhensikten med den foreliggende måte er derfor å skaffe en søkeprosessorkrets som med utgangspunkt i den generelle multiprosessorarkiktektur som angitt i søkerens ovennevnte internasjonale patentsøknad kan realiseres med en multiprosessorarkitektur som unngår de ovennevnte ulemper med kjente dediserte søkeprosessorer, men som samtidig også vil kunne gi en langt bedre prosesseringsøkonomi og komponentøkonomi enn hva som er tilfelle med parallellprosessoren som angitt i US patent nr. 4 860 201.
Ytterligere er det en hensikt med oppfinnelsen å skaffe en prosesseringskrets som kan benyttes til å realisere en multiprosessorenhet i søkeprosessorkrets og effektivt utføre søking ved jevnføring av mønstre.
Endelig er det også en hensikt med oppfinnelsen å skaffe en søkeprosessorkrets hvis arkitektur ikke bare gjør at den kan ta hånd om binært partisjonerbare søkeproblemer med hensiktsmessig funksjonalitet, men som også lar seg implementere med varierende grad av integrasjon ved hjelp av tilgjengelige kretsløsninger kjent i mikroelektronikken. Spesielt er det i den forbindelse hensikten at den kan realiseres i form av en mikroelektronisk komponent implementert som en såkalt feltprogrammerbar portmatrise (FPGA) eller en applikasjonsspesifikk integrert krets (ASIC). De ovennevnte hensikter og andre trekk og fordeler oppnås i henhold til den foreliggende oppfinnelse med en prosesseringskrets som er kjennetegnet ved at den omfatter et grensesnitt med inn- og utganger for data som utgjør henholdsvis konfigurerende parametre og operative parametre for prosesseringskretsen , idet de konfigurerende parametre tilføres prosesseringskretsen over uspesifiserte eller dediserte innganger i grensesnittet en gang for alle for en gitt prosesseringsoppgave og de operative data som prosesseres ved eksekvering av den gitte prosesseringsoppgave, kontinuerlig tilføres eller gis ut fra prosesseringskretsen over spesifiserte respektive innganger og utganger i grensesnittet, minst en kjerneprosessor i form av en komparatorenhet, idet komparatorenheten er innrettet til å sammenligne to dataord, og en logisk enhet forbundet med komparatorenheten, idet den logiske enhet omfatter en multiplekser forbundet med følgende innganger i grensesnittet: en sekvensiell datainngang, en sekvensiell dokumentinngang, en sekvensiell vippeinngang, en sekvensiell resultatinngang på en foregående prosesseringskrets, en sekvensiell resultatinngang på en påfølgende prosesseringskrets, en parallell datainngang, en parallell dokumentinngang og en parallell vippeinngang, en parallell resultatinngang fra en foregående prosesseringskrets og en parallell resultatinngang fra en påfølgende prosesseirngskrets; og med følgende utganger i grensesnittet: en utgang for valgt dataverdi, en utgang for valgt dokumentverdi, en utgang for valgt vippeverdi, en utgang for et valgt resultat til en foregående prosesseringskrets og en utgang for et valgt resultat til en påfølgende prosesseringskrets, en første D-vippe, en latensitetsenhet som er innrettet til å forsinke en positiv binær verdi med et gitt antall tidsenheter, en annen D-vippe, en sekvenskontrollenhet som er innrettet til å overvåke og styre en sammenligningsoperasjon i komparatorenheten, og en resultatvelger som er innrettet til å kombinere to resultatverdier fra andre prosesseringskretser eller andre resultatvelgere; at komparatorenheten er forbundet med en utgang for en valgt dataverdi på multiplekseren og med en datautgang i grensesnittet og dessuten har en resultatutgang forbundet med en første OG-port og en likhetsutgang forbundet med en annen OG-port, at den første D-vippe er forbundet med en utgang for en valgt dokumentverdi på multiplekseren og har en tilbakestillingsutgang som over en tilbakestillingslinje er forbundet henholdsvis med en inngang på den første OG-port, en inngang på den annen OG-port, en inngang på latensitetsenheten samt med en dokumentinngang i grensesnittet, at den annen OG-port har en likhetsutgang i grensesnittet, at latensitetsenheten er forbundet med utgangen på den første OG-port og med en resultatinngang på sekvenskontrollenheten, at den annen D-vippe er forbundet med tilbakestillingsutgangen på den første D-vippe og henholdsvis en vippeutgang og vippeinngang på sekvenskontrollenheten samt med en vippeutgang i grensesnittet, at sekvenskontrollenheten er forbundet med utgangen for en valgt vippeverdi og utgangen for et valgt resultat for en foregående prosesseringskrets på multiplekseren og med en resultatinngang på en påfølgende prosesseringskrets og en resultatutgang i grensesnittet, og at resultatvelgeren er forbundet med henholdsvis en første resultatinngang, en første dokumentinngang, en første likhetsinngang, en annen resultatinngang, en annen dokumentinngang og en annen likhetsinngang i grensesnittet og med henholdsvis en resultatutgang, en dokumentutgang og en likhetsutgang i grensesnittet.
I en fordelaktig utførelse av prosesseringskretsen i henhold til oppfinnelsen omfatter komparatorenheten COM et første register som i hvert tilfelle rommer inngangsdata i form av et dataord x og henholdsvis er forbundet med en datainngang og en datautgang, et annet register som rommer et dataord a som dataordet x i det første register skal sammenlignes med, samt en eller flere logiske porter, og en multiplekser forbundet med registerne for utførelse av en sammenligningsoperasjon, idet en utgang på multiplekseren utgjør komparatorenhetens resultatutgang.
I en fordelaktig utgørelse av prosesseringskretsen i henhold til oppfinnelsen omfatter latensitetsenheten en teller som henholdsvis over en første inngang er forbundet med utgangen på den annen OG-port og over en annen inngang med tilbakestillingslinjen, idet telleren er forbundet med et latensitetsregister som rommer en konfigurerende latentsitetsparameter, og har en utgang som utgjør latensitetenhetens resultatutgang.
I en fordelaktig utførelse av prosesseringskretsen i henhold til oppfinnelsen omfatter sekvenskontrollenheten en første OG-port forbundet med en resultatinngang på en foregående prosesseringskrets og en resultatutgang på latensitetsenheten, en første ELLER-port forbundet henholdsvis med en utgang på den første OG-port og en utgang på den annen D-vippe, en annen OG-port forbundet med resultatutgangen på latensitetsenheten og en resultatinngang fra en påfølgende prosesseringskrets, en annen ELLER-port forbundet med resultatinngangen på en påfølgende prosesseringskrets og med utgangen på den annen D-vippe, en tredje OG-port forbundet med resultatutgangen på latensitetsenheten og med en utgang på ELLER-porten 13, og en multiplekser forbundet henholdsvis med resultatutgangen på latensitetsenheten, en utgang på hver av OG-portene og den første ELLER-port, resultatinngangen på en foregående prosesseringskrets, og vippeutgangen på en foregående prosesseringskrets, idet en utgang på sekvenskontrollenheten utgjør resultatutgangen på prosesseringskretsen.
I en fordelaktig utførelse av prosesseringskretsen i henhold til oppfinnelsen omfatter resultatvelgeren en første en første OG-port forbundet med den første likhetsinngang og den annen likhetsinngang, en annen OG-port forbundet med den første resultatinngang og den annen resultatinngang, en tredje OG-port forbundet med den første resultatinngang og den annen likhetsinngang, en IKKE-port forbundet med den annen likhetsinngang, en fjerde OG-port forbundet med den annen resultatinngang og utgangen på IKKE-porten, en første ELLER-port forbundet med henholdsvis den første og den annen likhetsinngang, en annen ELLER-port forbundet med henholdsvis den første og den annen resultatinngang, en tredje ELLER-port forbundet henholdsvis med utgangen på den tredje og fjerde OG-port, en multiplekser forbundet med den første resultatinngang, den annen resultatinngang, den første likhetsinngang, den annen likhetsinngang, utgangen fra henholdsvis den første og annen OG-port, samt med utgangen fra henholdsvis den første, annen og tredje ELLER-port, en femte OG-port forbundet henholdsvis med den første og annen dokumentinngang samt med dokumentutgangen i grensesnittet, en sjette OG-port forbundet med henholdsvis utgangen på den femte OG-port og en første utgang på multiplekseren samt med resultatutgangen i grensesnittet, og en syvende OG-port forbundet med henholdsvis den femte OG-port og en annen utgang på multiplekseren samt med likhetsutgangen i grensesnittet.
De ovennevnte hensikter og andre trekk og fordeler oppnås i henhold til den foreliggende oppfinnelse også med en søkeprosessorkrets som er kjennetegnet ved at multiprosessorenheten Pn er anordnet på nivået Sn og danner en rotnode i treet og omfatter et grensesnitt Ip1 og en logisk enhet E, at det nærmest underliggende nivå Sn omfatter 2m kretser Pn.i som er anordnet nøstet i multiprosessorenheten Pn og utgjør dens barnnoder, idet hver av kretsene Pn_i har identiske grensesnitt IPn} og omfatter en tilsvarende logisk enhet E, at multiprosessorenheten Pn på et underliggende nivå Sn.q, q € {l,2,...n -1}, generelt omfattter 2<mq> kretser Pn.q, hver med grensesnitt IPn , og tilsvarende logiske enheter og anordnet nøstet i de 2<m>(<q>"<1>) kretser Pn.q+i på det overliggende nivå Sn.q+i, idet hver krets Pn-q+i på dette nivå omfatter 2m kretser Pn.q, at et for multiprosessorenheten Pn for q = n definert nullte nivå n - q = S0 og omfatter fra 2<m>(<n>"<1>) til 2<mn> kjerneprosessorer P0 som utgjør komparatorenheter i de 2<m>(<n>"<1>) prosesseringskretser Pi på nivået Sj, at hver prosesseringskrets Pi omfatter fra én til 2m komparatorenheter og hver har grensesnitt IPl og tilsvarende logiske enheter, at generelt har samtlige kretser Pi, P2..Pn på nivåene Sj, S2,...Sn identiske grensesnitt I slik at IPl<=> Ip2 = .... IPn = I, og at hver logisk enhet omfatter en resultatvelger eller oppslagstabell for å innhente resultatene av en søkeoperasjon eller jevnføringsoperasjon eksekvert av prosesseringsenhetene Pi på nivået Si.
I en fordelaktig utførelse av søkeprosessorkretsen i henhold til oppfinnelsen omfatter hver prosesseringsenhet på nivået Si 2m komparatorenheter, slik at multiprosessorenheten Pn danner et uredusert binært eller superbinært tre, at en prosesseringskrets Pj avbilder en krets P2 på det overliggende nivået med en faktor r = 2m, og at generelt avbilder en krets Pn.q på nivået Sn.q for qe{l,2...n-l} en krets Pn-q+i på det overliggende nivå Sn.q+i rekursivt med faktoren r = 2m, slik at det binære eller superbinære tre som konfigurerer kretsen Pn i hvert tilfelle utgjør et fra nivået Si rekursivt generert binært eller superbinært tre.
I en fordelaktig utførelse av søkeprosessorkretsen i henhold til oppfinnelsen, hvor den logiske enhet omfatter en latensitetsenhet og en sekvenskontrollenhet samt en oppslagstabellenhet, omfatter den logiske enhet dessuten en første OG-port, en første mulitiplekser, en annen OG-port og en annen multiplekser, og oppslagstabellenheten er forbundet med en resultatutgang på hver prosesseringskrets Pn.i det umiddelbart underliggende nivå, den første OG-port med en dokumentutgang på hver av de nevnte kretser Pn.i, den annen OG-port med utgangen på den første OG-port og utgangen på oppslagstabellenheten, den første multiplekser med utgangen på den annen OG-port og en annen resultatutgang på en siste av de nevnte kretser Pn.i, latensitetsenheten med utgangen på den første OG-port, sekvenskontrollenheten med en utgang på latensitetsenheten, en resultatutgang og en vippeutgang på en første av de nevnte kretser Pn.i, en resultatinngang på den logiske enhet og en vippeutgang på den siste av den nevnte kretser Pn.], og den annen multiplekser med en vippeutgang på sekvenskontrollenheten samt henholdsvis med første og en annen vippeinngang på logiske enhet og dessuten over henholdsvis første og annen vippeutganger med den første av de nevnte kretser Pn.i.
En foretrukket utførelse av søkeprosessorkretsen i henhold til oppfinnelsen omfatter en dokumentforvaltningsenhet som ved en datautgang er forbundet med henholdsvis den sekvensielle og den parallelle datainngang på multiprosessorenheten Pn og ved en dokumentutgang er forbundet med den sekvensielle dokumentinngang på multiprosessorenheten Pn.
Fortrinnsvis kan også søkeprosessorkretsen i henhold til oppfinnelsen også omfatte <l>Ak = 2<m>~' trefforvaltningsenheter anordnet forbundet med henholdsvis respektive resultatutganger og dokumentutganger på prosesseringskretsene Pn.j, idet hver trefforvaltningsenhet over en resultatinngang er forbundet til respektive resultatutganger i multiprosessorenhetens grensesnitt.
Ytterligere trekk og fordeler fremgår av de øvrige vedføyde uselvstendige krav.
Oppfinnelsen skal nå forklares mer detaljert i tilknytning til utførelseseksempler for de enkelte enheter i prosesseringskretsen i henhold til oppfinnelsen, samt eksempler på utførelse av denne og en søkeprosessorkrets med en multiprosessorenhet basert på slike prosesseringskretser, og med henvisning til tegningen, hvor fig. 1 viser prinsippet for søkeprosessorkretsen i henhold til oppfinnelsen,
fig. 2 en komparatorenhet som benyttet i den foreliggende oppfinnelse,
fig. 3 prinsippet for hvordan et tegnmønster jevnføres ved den foreliggende oppfinnelse,
fig. 4 prinsippet for hvordan et annet tegnmønster jevnføres ved den foreliggende oppfinnelse,
fig. 5 prinsippet for hvordan et mønster av to tegn jevnføres ved den foreliggende oppfinnelse,
fig. 6 prinsippet for hvordan gjentatte mønstre av varierende lengde jevnføres ved den foreliggende oppfinnelse,
fig. 7 en sekvenskontrollenhet benyttet ved jevnføring av gjentatte forekomster av tegnmønstre ved den foreliggende oppfinnelse,
fig. 8 sekvenskontrollenheten på fig. 7 koblet sammen med komparatorenheten på fig. 2,
fig. 9 prinsippet for hvordan tegnstrenger hvor mønsteret er valgfritt, jevnføres ved den foreliggende oppfinnelse,
fig. 10 en første utførelse av et binært datafordelingstre for søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 11 implementeringen av det binære datafordelingstre på fig. 10 og med bruk av koblingen vist på fig. 8,
fig. 12 en annen utførelse av et binært datafordelingstre for søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 13 en tredje utførelse av et binært datafordelingstre for søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 14 prinsippet for en resultatvelger som benyttet i den foreliggende oppfinnelse,
fig. 15 prinsippet for innsamling av resultater fra prosesseringskretser med bruk av resultatvelgere som benyttet i den foreliggende oppfinnelse,
fig. 16 en fjerde utførelse av et binært datafordelingstre for søkeprosessoren i henhold til den foreliggende oppfinnelse,
fig. 17 en femte utførelse av et datafordelingstre i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 18 prinsippet for hvordan et positivt resultat av en jevnføring holdes over et visst antall tegn etter at jevnføringen ved den foreliggende oppfinnelse, har funnet sted,
fig. 19 det grunnleggende operative prinsipp for hvordan mønstre jevnføres i henhold til den foreliggende oppfinnelse,
fig. 20 prinsippet for hvordan forskjellige dokumenter med bruk av merkelapper for hvert dokument håndteres ved den foreliggende oppfinnelse,
fig. 21 prinsippet for hvordan antall treff ved en jevnføring begrenses ved den foreliggende oppfinnelse,
fig. 22 skjematisk et datafordelingstre for å håndtere flere søkespørsmål samtidig og hvor bladnodene består av en rekke prosesseringskretser,
fig. 23 prinsippet for hvordan en reduksjon av antall treff kan implementeres på et datafordelingstre i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 24 utførelsen av en komparatorenhet i prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 25 utførelsen av en D-vippe i prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 26 utførelsen av en latensitetsenhet i prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 27 utførelsen av en dokumentforvaltningsenhet i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 28 skjematisk utførelse av en oppslagstabell i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 29 det operative prinsipp for hvordan sekvenskontrollenheter benyttes sammen med prosesseringskretser i henhold til den foreliggende oppfinnelse,
fig. 30 en utførelse av en sekvenskontrollenhet i prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 31 prinsippet for hvordan tegnstrenger jevnføres med bruk av resultatvelgere i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 32 utførelsen av en resultatvelgeren i prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 33 en utførelse av prosesseringskretsen i henhold til den foreliggende oppfinnelse,
fig. 34 et blokkskjema med inn- og utgangene for prosesseringskretsen på fig. 33,
fig. 35 en utførelse av søkeprosessorkretsen i henhold til den foreliggende oppfinnelse realisert som en multiprosessorenhet i form av et datatre med åtte prosesseringskretser,
fig. 36 en trefforvaltningsenhet som benyttet i søkeprosessorkretsen i henhold til den foreliggende oppfinnelse,
fig. 37 søkeprosessorkretsen på fig. 36 realisert med bruk av en dokumentforvaltningsenhet som vist på fig. 27 og trefforvaltningsenheter som vist på fig. 36, og
fig. 38 en kjerneprosessorkrets omfattende en komparatorenhet og en sekvenskontrollenhet.
Til ytterligere forklaring av de enkelte enheter og kretser er disse angitt ved sin verilogkoder som er inntatt i respektive tabeller Al-A 13 i et eget tillegg i beskrivelsen. - Som velkjent for fagfolk er Verilog definert i IEEE standard 1364-1995 ("Standard Description Language Based on the Verilog Hardware Description Language").
Det skal nå gis en detaljert beskrivelse av søkeprosessorkretsen i henhold til oppfinnelsen. Operativt kan søkeprosessorkretsen samlet gjengis som vist på fig. 1. En datastrøm skiftes trinnvis gjennom kretsen og i hvert trinn blir de data som befinner seg i kretsen jevnført med et eller annet mønster. Dette mønsteret er kodet som en bitstreng som er skrevet inn i kretsen. Den fundamentale dataenhet i søkeprosessorkretsen skal anta å være 1 byte og denne byte vil vanligvis representere et tegn. Dette er imidlertid ikke av vesentlig betydning på dette nivå og kan lett endres.
Søkeprosessorkretsen i henhold til oppfinnelsen er bygget opp med et stort antall kjerneprosessorer i form av komparatorenheter. Den grunnleggende komparatorenhet er vist på fig. 2. Registeret X rommer her bare byten x som for øyeblikket er skiftet inn i komparatoren og registeret A inneholder byten a som x skal sammenlignes med. Slik det fremgår av fig. 2, kan det utføres fire sammenligninger, nemlig x = a, x > a, x * a, x < a og resultatet fås på komparatorenhetens utgang. Med en sammenkobling av kjerneprosessorer, dvs. komparatorenheter som vist på fig. 2, vil det være mulig å jevnføre enkle tegnmønstre. F.eks. vil enheter koblet som vist på fig. 3, jevnføre strengen "abc", dvs. en "a", direkte fulgt av en "b" som igjen følges direkte av en "c". Det vil imidlertid også være interessant å sammenligne et mønster bestående av en "a" etterfulgt av en eller flere "b", direkte fulgt av en "c". Dette vil i det følgende skrives som mønsteret "ab + c". Komparatorenhetene på fig. 3 kan endres slik at dette kan utføres ved å anordne et énbitminne, idet biten i dette vil bli tilordnet elementet som stemmer overens med "b", og angir hvorvidt en "b" ble funnet før det siste skift. Videre er det nødvendig å benytte en eller annen form for sekvenskontroll, slik at en komparatorenhet bare vil angi en overensstemmelse hvis den neste eller påfølgende komparatorenhet også har en overensstemmelse. Dette betyr at det endelige resultat fås fra den siste komparatorenhet. I den forbindelse skal det forståes at komparatorenhetene, dvs. kjerneprosessorenhetene, er anordnet slik at den enhet hvortil et tegn først skiftes, betegnes om det "første", idet det betyr at denne enheten inneholder det siste tegn i mønsteret, mens den "siste" enhet inneholder det første tegn i mønsteret. ;Hvordan en jevnføring av et gjentatt mønster foregår, kan beskrives ved den nedenstående eksempel med henvisning til fig. 4a-e. Fig. 4a - en "a" skiftes inn i den første komparatorenhet. Ingen av komparatorenhetene viser en overensstemmelse. Fig. 4b - en "b" skiftes inn og det er fremdeles ingen overensstemmelse. Fig. 4c - en annen "b" skiftes inn og de siste to enhetene gir overensstemmelser, mens den første enheten ikke gjør det. Dette krever nå at enhetene nå skal huske at da de to siste enhetene viste en overensstemmelse, må denne overensstemmelse opprettholdes så lenge som den midtre enhet har en overensstemmelse, selv om den siste enheten ikke har det. Fig. 4d - en rekke "b"-er er skiftet inn og overensstemmelsene opprettholdes som beskrevet for fig. 4c. Hvis et annet tegn i tillegg til "b" var blitt skiftet inn i den midtre enhet, ville overensstemmelsene i begge enhetene blitt slettet. Fig. 4e - en "c" skiftes inn i den første enhet og samtlige tre enheter er nå satt for å angi en overenstemmelse. Et mønster av formen "ab+c" er nå funnet. ;Hvis denne fremgangsmåten skal benyttes til å gjenta mønstre bestående av mer enn et enkelt tegn, må minnet forbindes med gruppen av komparatorenheter som jevnfører mønsteret. Dette skal beskrives nedenfor. ;For at en fremgangsmåte som er beskrevet ovenfor, skal tillate jevnføring av gjentattet forekomster av mønstre som er lengre enn en enkelt byte, f.eks. av lengden n, er det nødvendig å ta rede på hvorvidt en overensstemmelse er funnet for hver av de n mulige startpunktene. Dette kan oppnås ved å forbinde n vipper og la minnebitene skiftes gjennom dem etterhvert som nye byter skiftes inn i elementene. Utgangen fra den siste vippe vil da angi hvorvidt eller ikke en overensstemmelse forekom n posisjoner tidligere. Et eksempel hvor mønstre av to karakterer jevnføres er vist på fig. 5. Her er E[ i]' det virkelige resultat fra jevnføringene, E[ i- 1] er resultatet fra den neste komparatorenhet, benyttet til å implementere en sekvenskontroll, mens E[ i] er det nye resultatet hvor gjentatt jevnføring tillates hvis signalet mt er satt. Signalet sc angir hvorvidt sekvenskontrollen i det hele tatt skulle ha blitt benyttet. Hvis sc ikke er satt, vil jevnføringen av multiple mønstre ikke finne sted. Hvis det skulle være mulig å variere lengden av mønstrene som skal gjentas, kan et opplegg som vist på fig. 6 benyttes. Her anvendes en multiplekser til å velge utgangen etter den /'te vippe hvor i er lengden av mønsteret som skal jevnføres. Bruken av denne fremgangsmåten vil imidlertid ikke være nødvendig, slik det skal omtales nedenfor. ;En enhet som implementerer sekvenskontrollen som er nødvendig for å oppnå jevnføring av gjentatte forekomster av mønstre, er vist på fig. 7. Denne enheten antas å være plassert sammen med et sett av komparatorenheter og det nødvendige antall D-vipper. Multiplekseren benyttes til å avgjøre hvorvidt multiple forekomster av mønstre tillates. Inngangene og utgangene kan beskrives som følger: ;På fig. 8 er sekvenskontrollenheten vist sammen med komparatorenheten på fig. 2 og tillater repetisjon av tegnet jevnført av komparatorenheten. Her benyttes en enkelt D-vippe til å representere minnet, og denne D-vippe er derfor satt om de følgende betingelser er sanne: ;• Gjentatte forekomster av mønstre jevnført av denne enheten skal tillates. • Det foreligger en samtidig overensstemmelse for denne enheten og den følgende. • Alle byte skiftet inn i denne enheten etter at den foregående betingelse ble sann, har vært overensstemmelser. ;For at dette skal virke, må utgangen fra enheten som tillater multiple forekomster av det overensstemmende mønster benyttes til å angi resultatene for både denne enheten og den foregående. For å generalisere virkemåten blir sekvenskontroll alltid benyttet sammen med multippel mønsterjevnføring, slik det ovenfor er beskrevet. En enhet vil med andre ord bare gi et positivt resultat om den foregående også gjorde det. ;I tillegg til jevnføringen av gjentatte mønstre som beskrevet i det foregående avsnitt, kan det også være av interesse å jevnføre tegnstrenger hvor deler av mønsteret er valgfritt. Dette vil skje på analog måte og kan beskrives med følgende eksempel med henvisning til fig. 9a-c. ;Fig. 9a - En "a" skiftes inn i den første enhet. Ingen av enhetene har en ;overensstemmelse. ;Fig. 9b - En "c" skiftes inn og det er nå en overensstemmelse i den ;første enhet. Den midtre enhet skal nå huske dette. ;Fig. 9c - Tegnene skiftes til høyre og det foreligger nå en overensstemmelse på den siste enhet. Da det også var en overensstemmelse på det midtre enhet ett tegn tilbake, har enhetene jevnført strengen "ac". ;For at dette skal skje, må sekvenskontrollen virke i motsatt retning av hva som var tilfellet når gjentatte mønstre ble jevnført. ;Det skal nå beskrives en trestruktur for å fordele data til komparatorenhetene. Som datafordelingstre benyttes et fullstendig, balansert binært tre som vist på fig. 10. På hver innvendig node 3 avgjør en multiplekser hvorvidt de to undertrær skal motta de samme dataelementer i parallell eller hvorvidt det skal motta dataelementene sekvensielt. En enkel implementasjon av det binære datafordelingstre på fig. 10 er vist på fig. 11. ;Det kan nå gis en annen innfallsvinkel til jevnføringen av forekommende gjentatte og overhoppede mønstre, som beskrevet ovenfor. Prosesseringskretsen vist på fig. 8, benyttes til å danne trestrukturen på fig. 11, og gjentatte eller overhoppede mønstre kan nå jevnføres på flere nivåer. For å forenkle dette kan det antas at dette bare vil tillates for individuelle tegn eller for hele treet som består av 8 prosesseringskretser. ;Det er nå i utgangspunktet seks forskjellige operasjonsmoder for dette treet: • Ingen sekvenskontroll benyttes - resultatene fra hver av de åtte prosesseringskretsene er uavhengige. • Likefrem sekvenskontroll benyttes - bare resultatet fra prosesseringskretsen 0 vil bli benyttet og den vil bare være positiv hvis alle åtte komparatorenheter har overensstemmelser. ;• Gjentatte jevnføringer tillates for en eller flere av komparatorenhetene. ;• Overhoppede jevnføringer tillates for en eller flere av komparatorenhetene. ;• Gjentatte jevnføringer tillates for hele treet. ;• Overhoppede jevnføringer tillates for hele treet. ;Det første av de tre ovennevnte punkter håndteres av prosesseringskretsen som vist på fig. 8, det fjerde av et analog element for å hoppe over mønsteret. De to siste krever imidlertid at en annen sekvenskontrollenhet som vist på fig. 7, benyttes for hele treet. Slik det kan ses på denne figuren, må det riktige antall vipper stå til rådighet for denne enheten. Antallet vipper som skal benyttes, må være likt antallet tegn i mønsteret som skal gjentas, men dette kan variere fra én til åtte, avhengig av konfigurasjonen av multiplekserne som definerer treet. En løsning lik den vist på fig. 6 er innlysende, men dette vil gjøre programmeringen av kretsen mer komplisert og mer feiltilbøyelig, da antallet tegn som skal gjentas, essensielt blir satt to ganger, én gang ved definisjonen av treet og én gang i multiplekseren som velger resultatet fra den riktige vippe. Heldigvis kan det fås en mer elegant løsning ved å benytte vippene som allerede foreligger i prosesseringskretsene i treet. Da antall av tegn i treet på et vilkårlig tidspunkt er gitt av datastrømmen, kan multiplekserne som benyttes til datafordeling også benyttes til å rute minnebitene gjennom det korrekte antall vipper. En implementering av dette er vist på fig. 12, og da de samme vipper benyttes for repetisjoner på to mulige nivåer, kan mønsteret bare repeteres på ett nivå av gangen. Det skal bemerkes at repeterende mønster på forskjellige nivåer samtidig ikke vil være mulig ved bruk av denne fremgangsmåte under noen omstendighet, da lengden av den gjentagbare streng ville variere. En annen komplikasjon er at hvert prosesseringskrets trenger resultater fra den foregående komparatorenhet for å implementere sekvenskontrollen, men dette vil bli omtalt nedenfor. ;Det er nå mulig å utvide trestrukturen. Som vist på fig. 13, benyttes totalt antall på 32 kjerneprosessorer eller komparatorenheter og tillater repetisjoner på en enkelt prosesseringskrets med en gruppe av 8 prosesseringskretser eller på hele treet. Samme resonnement gjelder også for overhopping av mønstre. ;Det er i utgangspunktet to praktiske måter å samle resultatene fra et datasamlende tre som beskrevet i det foregående avsnitt. Den mest naturlige er å benytte et annet binært tre hvor resultatene kombineres ved hver innvendige node. Dette har imidlertid en rekke ulemper, da det gjør det umulig å utføre visse operasjoner som det å kreve at et bestemt antall av prosesseringskretser skal ha overensstemmelser. Hvis antallet prosesseringskretser er forholdsvis lite, vil det være mulig å benytte en oppslagstabell LUT. Dette vil imidlertid by på problemer når gjentatte jevnføringer tillates, da jevnføringer ikke defineres for en del av treet. Disse to metoder vil bli beskrevet i de nedenstående avsnitt, etterfulgt av en drøftelse av deres fordeler og ulemper. Først skal det omtales hvordan resultater samles med bruk av et binært tre. ;Gitt resultatene fra to prosesseringskretser er en naturlig måte å kombinere dem på å utføre én av de logiske operasjoner OG og ELLER. Det kan også være fordelaktig å være i stand til å velge utelukkende ett av resultatene og ignorere de andre. En enhet som utfører denne operasjonen, er vist på fig. 14 og vil i det følgende bli betegnet som en velger. Slike elementer kan nå kombineres i et binært tre og skaffe et enkelt resultat fra en gruppe av prosesseringskretser, som vist på fig. 15. Det vil også være mulig å benytte et binært tre for å sammenligne strenger alfabetisk eller numerisk, noe som vil bli beskrevet i det følgende. Det problem som er omtalt ovenfor, nemlig å få resultatet av sammenligning av tegnet før eller etter det som behandles av den foreliggende prosesseringskrets, kan nå håndteres. For det første vil bare de foregående eller følgende resultater være nødvendige på et vilkårlig tidspunkt, da jevnføringen av både gjentatte og overhoppede mønstre ikke kan utføres samtidig. Dette innebærer på grunn av den benyttede sekvenskontroll at det resultatsamlende tre kan konfigureres slik at det velger enten de høyre eller venstre resultater for vilkårlige prosesseringskretser som ser på forskjellige tegn. Resultatet for hvilket som helst undertre på n elementer kan finnes n nivåer opp i det resultatsamlende tre. Når flere elementer ser på det samme tegn, vil for det annet deres foregående og påfølgende resultater også være de samme. Disse resultatene kan finnes ved å benytte de samme multipleksere til å styre datastrømmen, slik at resultat bare føres videre til hvilke som helst to naboenheter som ser på det samme tegn. ;Fig. 16 viser hvordan utførelsen på fig. 12 kan kompletteres med bruk av denne metoden. Det er viktig å merke seg at det samme sett av multipleksere nå benyttes for tre forskjellige formål, nemlig til å fordele dataene, til å rute minnebitene gjennom det riktige antall vipper og til å skaffe resultatene fra sammenligninger av de foregående og følgende tegn. ;En enkel måte for å kombinere resultatene fra forskjellige prosesseringskretser på er bruken av en oppslagstabell (LUT). Det er da mulig å spesifisere hvilke som helst krav til forskjellige prosesseringskretser, innbefattet telling av antall overensstemmelser, og forutsatt at det benyttes et forholdsvis lite tre, vil ikke på oppslagstabellen bli for stor. Med 8 komparatorenheter er det nødvendig å sette 2<8> = 256 bit, og dette vil være håndterlig. En mulig implementasjon av et datafordelingstre med LUT er gitt på fig. 17. Hovedulempen ved å bruke denne metoden er at gjentatte forekomster av mønstre ikke kan jevnføres med mindre dette finner sted på nivået til en enkelt prosesseringskrets eller for hele treet. Dette skyldes det faktum at med en LUT vil det ikke defineres noen kombinert resultat for et tegn som undersøkes av 2n elementer, men dette er nødvendig for at sekvenskontrollen skal virke. ;I visse situasjoner kan det være ønskelig å opprettholde treff over lengre tid, dvs. at når en overensstemmelse er funnet, vil det positive resultat beholdes for et visst antall karakterer etter den angjeldende overensstemmelse. Dette kan benyttes til å utføre søk hvor overensstemmelser for flere mønstre skal kunne finnes innenfor visse avstander fra hverandre. En enkel implementasjon av dett er vist på fig. 18. Her blir en eller annen verdi n lagret i et register og når en overensstemmelse finnes, skiftes denne verdien inn i telleren. Det endelige resultat blir dermed holdt på en positiv verdi inntil telleren når 0 og enhver overensstemmelse vil derfor ha en latensitet på n tegn. Denne latensiteten kalles trefflatensitet. ;Basert på det ovenstående er det klart at bruken av trær og LUT for å samle resultater både har fordeler og ulemper. Tremetoden gjør jevnføring av repetive mønstre lett, men tillater bare spesifikke og logiske funksjoner, mens LUT-metoden tillater alle mulig funksjoner, men gjør jevnføringer av repetive mønstre mer tungvint. ;Den innlysende løsning er derfor å benytte begge metoder, idet dette gir brukeren muligheten for å velge den beste metode i hvert tilfelle, men dette fører igjen til ekstra kostnader. En annen mulighet er å benytte forskjellige metoder i forskjellige deler av treet. Eksempelvis kan tremetoden benyttes på lave nivåer hvor gjentatte mønstre er mest ønskelig, og en LUT på høye nivåer, hvor telling av antall treff for forskjellige mønstre kan være ønskelig, eller alternativt begge metoder på lave nivåer og bare LUT på høye nivåer. ;Tekstdata deles ofte i et sett av ikke-overlappende dokumenter, og når søk utføres på slike dokumenter er det vanligvis uønsket å gjenfinne overensstemmelser som strekker seg over flere dokumenter. Det er derfor nødvendig med en eller annen metode som unngår dette. Fråsett datafordelingstreet, illustrerer fig. 19 den grunnleggende virkemåte til en søkeprosessorkrets for jevnføring av mønstre (mønsterjevnføringskrets eller "pattern matching chip" (PMC)). Hver prosesseringskrets antas her å arbeide med et enkelt tegn i teksten. Dokumentseparasjonen kan nå håndteres med bruk av opplegget vist på fig. 20. Her blir en spesiell mønsterjevnføringsenhet plassert ved begynnelsen av dataveien benyttet til å søke en merkelapp som angir begynnelsen på et nytt dokument, og et signal som angir dette, føres videre sammen med dataene til hver prosesseringskrets. Gitt dette signalet, kan prosesseringskretsen tilbakestille alle latensiteter som kan være innstilt. Dette signalet føres også videre til resultatvelgerne og oppslagstabellene LUT som samler resultatene, slik at positive resultater bare godtas når de forekommer innenfor samme dokument. ;Gitt de mønsterjevnførende muligheter som er beskrevet i det ovenstående, er det forsatt to problemer som må løses. • Antallet treff skal begrenses tilstrekkelig til at mottakersystemet kan håndtere dem. • Det må være mulig å håndtere forskjellige spørsmål samtidig i forskjellige deler av datafordelingstreet. ;Disse to forhold er beslektet og vil bli behandlet i det følgende. ;Først skal begrensning av antall treff omtales. Da innretninger for å returnere treff fra mønsterjevnføringskretsen til vertsprosessoren sannsynligvis vil ha en begrenset kapasitet og da treffene ofte kommer i grupper, er det nødvendig med en eller annen metode for å begrense antallet treff. Det er to innlysende løsninger på dette problem: ;• Rapportere bare ett treff for et visst antall tilstøtende tegn. ;• Rapportere bare ett treff for hvert dokument. ;Det naturlige valg er å benytte begge disse metodene. Fig. 21 viser hvordan dette kan gjøres. Vippen D holder rede på hvorvidt treff er blitt rapportert innenfor det foreliggende treffområdet, og den første inngang på multiplekseren MUX velges hvis alle treff skal rapporteres. I tillegg kunne en teller benyttes til å telle antallet treff, slik at dette tallet kan returneres i stedet for de virkelige treffene. Hvis bare ett treff pr. dokument rapporteres, så vil denne tellingen være antall dokumenter med treff. ;Nå skal håndteringen av multiple spørsmål drøftes. Det kan være en stor fordel om mønsterjevnføringskretsen er i stand til å håndtere en rekke samtidige spørsmål. Da antallet prosesseringskretser som er nødvendig for enkeltspørsmål sannsynligvis vil være svært variabelt, burde det være mulig å konfigurere dette individuelt. En praktisk måte å gjøre dette på er å la en del av datafordelingstreet sette opp et individuelt spørsmål. Problemet med dette er at et meget stort antall resultater, 2n-1 for n prosesseringskretser, må returneres til mottakersystemet, dvs. at for 512 prosesseringskretser vil antallet mulige resultater være 2-512-1=1023, noe som vanligvis blir betraktet som for stort. Den mest naturlige måte å redusere dette tallet på er å sette en nedre grense for antall prosesseringskretser som skal benyttes til et enkeltspørsmål. Et rimelig valg er her 16 og med 512 kretser gir dette 2-^-1 = 63 mulige resultater, som er et akseptabelt antall. Fig. 22 viser skjematisk disse mulige resultater, idet boksene på det nedre nivå i treet består av 16 prosesseringskretser (eller komparatorelementer). Når dette kombineres med metoden beskrevet i det foregående avsnitt, kunne en treffbegrensningsenhet innbefattes for hvert mulige resultat. Da det imidlertid aldri vil være mer enn samtidige spørsmål, vil dette antall kretser være tilstrekkelig. For at dette skal kunne gå, er det nødvendig med flere treffbegrensningsenheter for å ta resultatet fra en rekke mulige spørsmål, idet disse spørsmålene må velges slik at ingen kan være aktive samtidig. Fig. 23 viser hvordan dette kan gjøres, idet de mulig spørsmålspunkter i svart her deres egen treffbegrensningsenhet, mens bare de hvite spørsmålspunktene fordeler sine resultater som vist ved pilene. I tillegg er det nødvendig å sette en bit for hvert av de mulige spørsmål for å angi hvorvidt det angjeldende resultat virkelig representerer et uavhengig spørsmål. ;Nå skal det gis en detaljert beskrivelse av en prosesseringskrets i henhold til oppfinnelsen. Prosesseringskretsen kan ses som en modul i søkeprosessoren og følgelig beskrives om søkemodul. Den detaljerte beskrivelse vil vise til verilogkoder for de enkelte komponenter, idet disse koder som nevnt er gitt i tabeller i et til beskrivelsen vedføyd tillegg. ;Prosesseringskretsen eller søkeprosessorkretsen rommer en klokke og verilogkoden for denne klokken er vist i tilleggets tab Al og klokkesignalet CLK gis i hvert tilfelle henholdsvis til komparatorenheten og D-vippen i prosesseringskretsen eller til samtlige komparatorenheter og D-vipper i søkeprosessorkretsen. Dette er trivielt, og anordningen av klokken og klokkesignallinjene derfor ikke nærmere vist. ;Kjerneprosessoren eller komparatorenheten er vist på fig. 24. Den svarer selvsagt til kjerneprosessoren eller komparatorenheten på fig. 2. Registeret 6 inneholder som før byten x som for nærværende skiftes inn i enheten og registeret 7 inneholder den byte a som x skal sammenlignes med. Som det ;kan ses av fig. 25, kan fire sammenligninger utføres, nemlig x = a, x > a, ;x * a, x < a. Resultatet gis til utgangen et res. I tillegg gir signalet eq x = a, og dette benyttes til å sammenligne strenger alfabetisk eller numerisk slik det skal beskrives nærmere nedenfor. Verilogkoden som implementerer kjerneprosessoren eller komparatorenheten, er vist i tilleggets tab. A2, og en forklaring av komparatorenhetens grensesnitt gitt ved dens innganger og utganger fremgår av tabell 1.
En D-vippe er vist skjematisk på fig. 25. Verilogkoden som implementerer D-vippen er vist i tilleggets tab. A3, og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 2.
Latensitetsenheten LAT er vist på fig. 26 og benyttes til å forsinke en positiv binær verdi res_ for et visst antall sykler. Registeret 9 rommer latensiteten og telleren 8 benyttes til å telle ned fra tidspunktet når et positivt resultat registreres, res gir det modifiserte resultatsignalet og signalet _reset tilbakestiller telleren til 0. Verilogkoden som implementerer latensitetsenheten LAT, er vist på tilleggets tab. A4, og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 3.
Dokumentforvaltningsenheten DOC er vist på fig. 27. Den benyttes til å la søkeprosessorkretsen holde rede på forskjellige dokumenter. De tre komparatorenhetene eller et suffiks av dem stilles inn for å jevnføre en merkelapp som angir et nytt dokument, og signalet doc settes lik 0 når denne merkelappen dukker opp. Figuren er noe forenklet, da dersom det benyttes færre enn tre karakterer i merkelappen, skal ikke komparatorenheten eller komparatorenhetene lengst til venstre påvirke resultatene. Latensiteten skal settes lik antallet karakterer i merkelappen, nemlig 1 til 3. Verilogkoden som implementerer denne enheten er gitt i tilleggets tab. A5, og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 4. Oppslagstabellenheten LUT med 8 innganger er vist på fig. 28. res gir resultatet, verilogkoden for oppslagstabellen er gitt i tilleggets tab. A6, mens en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tab. 5.
Sekvenskontrollenheten SC benyttes til å realisere de følgende tre muligheter: Kreve at den foregående eller en etterfølgende prosesseringskrets eller komparatorenhet rapporterer en overensstemmelse før den foreliggende tillates å rapportere en overensstemmelse.
Tillate jevnføring av mønstre hvor visse deler av mønsteret kan mangle Tillate jevnføring av mønstre hvor visse deler av mønsteret kan være
gjentatt.
Sekvenskontrollenheten SC plasseres sammen med en prosesseringskrets som kan være enkelt kjerneprosessor eller komparatorenhet eller en gruppe av prosesseringskretser samt et sett av vipper. Antallet vipper skal være likt antallet tegn jevnført av prosesseringskretsen. Dette er vist på fig. 29. En sekvenskontrollenhet SC kan derfor implementeres som vist på fig. 30. Her benyttes tre resultatverdier og verdiene fra den foreliggende og tidligere vipper som innganger, og en ny resultatverdi gis ut. Det dreier seg nå ganske enkelt om å spesifisere atferden til sekvenskontrollenheten SC som er rent kombinatorisk.
Sannhetsverditabeller for fem tilfeller, nemlig ingen sekvenskontroll, foroversekvenskontroll, bakoversekvenskontroll, jevnføring av gjentatte mønstre og jevnføring av overhoppede mønster er henholdsvis vist i tabellene 6-10.
Selv om det ikke er vist i tabellene, skal utgangen ff_ out i de første tre tilfeller settes like utgangen fra vippene i den foregående prosesseirngskrets for å tillate vippeverdier å flyte gjennom deler av systemet. Basert på de hosstående sannhetsverditabeller, utledes lett de symbolske former vist i tabell 11. Den resulterende sekvenskontrollenhet er vist på fig. 30 og multiplekseren velger her mellom 5 operasjonsmoder, nummerert fra høyre til venstre og ovenfra og ned som vist i tabell 11.
Verilogkoden som implementerer sekvenskontrollenheten er vist i tilleggets tabell A7 og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 12.
Resultatvelgeren RS benyttes til å kombinere to resultatverdier fra prosesseringskretser eller andre resultatvelgere. De følgende operasjoner skal støttes:
• Bruk av bare det første resultat.
• Bruk av bare det annet resultat.
• Utførelse av den boolske operasjon OG på to resultater.
Utførelse av den boolske operasjon ELLER på to resultater.
Utførelse av operasjonen < over et sett av prosesseringskretser.
Utførelse av operasjonen > over et sett av prosesseringskretser.
De fire første operasjoner kan håndteres direkte, de andre er mer kompliserte.
Fig. 31 viser et eksempel på hvordan det er mulig å jevnføre alle strenger alfabetisk/numerisk større enn 1990. For å starte med velgeren RS2; hvis tegnet som er jevnført av prosesseringskretsen lengst til høyre og som er sifferet lengst til venstre i tallet som jevnføres, er større enn 1, betyr det at hele tallet er større og dette vil være resultatet. I dette eksempelet er de like og de andre prosesseringskretsene avgjør. Velger RS2 returnerer derfor likhet. Velger RS1 følger igjen det samme prinsippet. Her returnerer den annen velger RS2 likhet, mens den første velger RS 1 returnerer at verdien er større og dette er derfor resultatet fra RS1. Velger RS3 gjør det samme og returnerer at et tall større enn 1990 er blitt funnet. For tilfeller hvor alfabetiske/numeriske sammenligninger utføres er res gitt som res = eqlresl + - eqlresl.
Basert på ovenstående trekk vil resultatvelgeren implementert se ut som vist på fig. 32. Multiplekseren MUX4 velger mellom de første fem operasjonsmoder ; velger første resultat, velger annet resultat og utfører OG-operasjonen på resultater, utfører ELLER-operasjonen på resultater og utfører strengsammenligning.
Verilogkoden som implementerer denne enheten er vist i tillegget tab. A8 og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 13. Dokumentsignalene benyttes nå sammen med dokumentforvaltningsenheten for å unngå aksept av resultater som krysser dokumentgrenser.
Prosesseringskretsen i henhold til oppfinnelsen er vist på fig. 33. Den består av minst én komparatorenhet COM, en latensitetsenhet LAT, D-vipper 2,4, en sekvenskontrollenhet SC og en resultatvelger RS. En blokkversjon av prosesseringskretsen med inn- og utganger er vist på fig. 34. Verilogkoden som implementerer prosesseringskretsen, er gitt i tilleggets tab. A9 og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår av tabell 14. Et datatre, dvs. en søkeprosessorkrets PMC i henhold til oppfinnelsen i form av multiprosessorenhet Pn er vist på fig. 35. Multiprosessorenheten er konfigurert som et tre og består der av åtte prosesseringskretser Pn.i, en sekvenskontrollenhet SC, en latensitetsenhet LAT og en LUT. Kretsen Pn eller datatreet som kan benevnes som et 8-tre ("Tree8") har nøyaktig samme grensesnitt som prosesseringskretsen og det betyr at hver prosesseringskrets i treet kan erstattes av et slikt tre, slik at treet kan bestå av hvilket som helst antall nivåer. Det innebærer igjen at datatreet vil omfatte et antall nøstede kretser Pn.q, slik at hver krets på et underliggende nivå Sn.q er nøstet i kretsen på det overliggende nivå Sn.q+i, dersom datatreet selv utgjør det høyeste nivå, nemlig nivået Sn og q-e {1,2,...,n}. Er treet et regulært tre, f.eks. et binært tre, vil dessuten prosesseringskretsen Pn.q på et nivå avbilde prosesseringskretsen Pn.q+i på det overliggende nivå Sn.q+i rekursivt og tilfellet av et binært tre naturligvis med en avbildningsfaktor på 2. Da det generelle søkeproblem, som innledningsvis nevnt, kan anses som et binært partisjonerbart problem, er det naturligvis ingenting i veien for at et slik partisjoneringsproblem tas hånd om av eksempelvis et tre hvor graden ikke er 2, men 4, 8, 16 etc., et forhold som her er benevnt som superbinært. Generelt har graden k = 2m, hvor m for superbinære trær er et heltall større enn 1, altså k > 2.1 en rekursiv avbildning er naturligvis avbildningsfaktoren r = k. Treet på fig. 35 kan eksempelvis ses som en prosessor med to nivåer Si, S2, idet det første nivå omfatter de åtte prosesseringskretsene Pj som da igjen eksempelvis hver svarer til prosesseringskretsen Pn.i på fig. 33 og følgelig hver omfatter bare én kjerneprosessor eller ett komparatorelement COM. Kjerneprosessorene er derfor treets bladnoder og utgjør et nullte nivå S0 i treet, dannet av kretsene P0 på nullte nivå i treet, mens prosesseringskretsen Pi består av en kjerneprosessorkrets P0 og et logisk element E, representert ved de øvrige komponenter i prosesseringskretsen på fig. 33. På nivået S2 er kretsen identisk med søkeprosessoren selv og denne omfatter da i tillegg til de åtte prosesseringskretsene Pi på nivået Si selv en logisk enhet E hovedsakelig omfattende den nevnte sekvenskontrollenhet SC, en latensitetsenhet LAT og en LUT. Slik beskrevet blir multiprosessorenheten Pn på fig. 33 et symmetrisk og balansert redusert tre, da hver prosesseringskrets Pi bare omfatter en eneste komparatorenhet. Det er imidlertid ingenting i veien for at søkeprosessorkretsen eller 8-treet realiseres som et regulært, uredusert tre av grad 8 og i så fall ville de åtte prosesseringskretsene P] på første nivå hver omfatte åtte kjerneprosessorer eller komparatorenheter P0, slik at det blir 64 i alt. Utvides treet med nok et nivå og bibeholdes regulariteten, ville det nullte nivå S0 fått 512 kjerneprosessorer eller komparatorenheter, det første nivå Sj 64 prosesseringskretser Pj, det annet nivå S2 8 prosesseringskretser P2 og søkeprosessorkretsen selv ville utgjøres av kretsen P3 på nivået S3. Verilogkoden som implementerer 8-treet som vist på fig. 35, er gitt i tilleggets tabell Al0 og en forklaring av søkeprosessorkretsens grensesnitt gitt ved dens innganger og utganger fremgår av tabell 15. Realiserer søkeprosessoren eksempelvis med henholdsvis 64 eller 512 kjerneprosessorer, kan søkeprosessoren godt være realisert som en nøstet krets i form av et regulært tre med avbildningsfaktoren 8, men kan også realiseres direkte som respektive 64-tre eller et 512-tre. I alle fall er verilogkoden for en søkeprosessor med 64 kjerneprosessorer vist i tilleggets tabell All, mens verilogkoden for en søkeprosessor med 512 kjerneprosessorer er vist i tilleggets tabell A12.
Trefforvaltningsenheten HIT er vist på fig. 36. Vippen benyttes her til å holde rede på hvorvidt det neste treff skal rapporteres eller ikke. Verilogkoden som implementerer trefforvaltningsenheten, er vist i tilleggets tabell Al3 og en forklaring av grensesnittet gitt ved dens innganger og utganger fremgår i tabell 16.
Hvordan henholdsvis dokumentforvaltningsenheten DOC og trefforvaltningsenheten HIT er anordnet i en søkeprosessorkrets PMC i form av en multiprosessorenhet Pn eller et 8-tre som vist på fig. 35, fremgår av den vedføyde fig. 37. Av hensyn til oversikten er bare koblingene mellom DOC og HIT og multiprosessorenheten vist på fig. 37, mens de øvrige signallinjer er utelatt. Det vil der ses at søkeprosessorkretsen PMC i tillegg til multiprosessorenheten Pn omfatter her en dokumentforvaltningsenhet DOC som med en datautgang er forbundet med henholdsvis den sekvensielle og den parallelle datainngang på multiprosessorenheten Pj og en dokumentutgang med den sekvensielle dokumentinngang på multiprosessorenheten Pn. Videre omfatter søkeprosessorkretsen PMC også Vik =2"1"1= 2<3>"<1> = 4 treffforvaltningsenheter HIT 1-4 forbundet med henholdsvis respektive resultatutganger og dokumentutganger på prosesseringskretsene Pn.l5 idet hver trefforvaltningsenhet HIT over en resultatutgang er forbundet til de respektive resultatutganger i søkeprosessorens grensesnitt. En trefforvaltningsenhet er forøvrig skjematisk vist på fig. 21 og omtalt i forbindelse med denne. Videre er anordningen av trefforvaltningsenhetene HIT i en søkeprosessorkrets PMC realisert som en multiprosessorkrets med trestruktur vist på fig. 23 og det er i tilknytning til denne figuren allerede omtalt hvordan trefforvaltningsenheten kan benyttes til å rapportere resultater fra multiple spørsmål. Dens virkemåte skal derfor ikke behandles nærmere her. Det skal imidlertid bemerkes at trefforvaltningsenheter bare er anordnet i de svarte nodene, mens de hvite nodene på fig. 23 fordeler sine resultater som vist med pilene.
Derfor er det på inngangen til to av trefforvaltningsenhetene som vist på fig.
37 anordnet én respektive to multipleksere.
I en praktisk implementering på en kretsbrikke vil foretrukket søkeprosessorkretsen PMC i henhold til oppfinnelsen være realisert som et superbinært tre med k eksempelvis lik 2<3>, 2<6> eller 2<9> og derfor fremtre som et superbinært tre med et balansert redusert på et nullte nivå. Dette vil igjen si at multiprosessorenheten Pn blir lik P2 og utgjør henholdsvis et 8-tre med 8 prosesseringsenheter Pi, eller et 64-tre med 64 prosesseringsenheter Pi eller et 512-tre med 512 prosesseringsenheter Pi som igjen hver omfatter en eneste komparatorenhet COM. På det nullte nivå er altså treet redusert. Dermed kan også den logiske enhet E i hver prosesseringskrets Pi realiseres med bare én sekvenskontrollenhet SC, foruten vipper, multiplekseren MUX1, latensitetsenheten LAT og resultatvelgerenheten RS.
Endelig skal det bemerkes at multiprosessorenheten Pn i søkeprosessorkretsen PMC i henhold til oppfinnelsen utgjøre et spesialtilfelle av multiprosessorarkitekturer basert på trenettverk av vilkårlig grad og med et vilkårlig antall nivåer slik disse er omtalt i ovennevnte internasjonale patentsøknad PCT/NO99/0308 (Halaas & al.) som tilhører nærværende søker og som utleder prioritet fra NO patentsøknad nr. 19984746 av 9. oktober 1998. Et særtrekk for en multiprosessorarkitektur av denne art er at de enkle dataprosessorer utelukkende er anordnet på det nullte nivå i trestrukturen eller svarer til prosesseringskretsen på det første nivå i trestrukturen dersom treet er et redusert tre. Er reduksjonen symmetrisk og balansert på det nullte nivå So, genereres kretsen på overliggende nivåer S2, ...Sn dessuten rekursivt av prosesseringskretsen Pi på nivået Si. Slike kretser kan implementeres med særlig god økonomi for å håndtere databehandlingsproblemer med vilkårlig partisjoneringsgrad, idet det klassiske søkeproblem naturligvis utgjør et generelt binært partisjonerbart databehandlingsproblem.
Med utgangspunkt i Halaas & al. ville derfor en kjerneprosessor P0 formelt svare til koblingen på fig. 8 og omfatter i tillegg til den egentlige prosessor, komparatorenheten COM, en latensitetsenhet LAT, en sekvenskontrollenhet SC, det nødvendige antall vipper 2, 4 og logiske porter 1, 3 som vist på fig. 38. For hver komparatorenhet COM, må det naturligvis være anordnet en sekvenskontrollenhet SC, jf. fig. 29. Prosesseringskretsen Pi på fig. 33 kunne derfor i realiteten omfatte to eller eventuelt flere komparatorenheter med en logisk enhet E utstyrt med det tilsvarende antall sekvenskontrollenheter SC. Grensesnittet for en krets Po med en komparatorenhet COM som formelt er den egentlige kjerneprosessor og én sekvenskontrollenhet SC ville da være gitt ved kretsens inn- og utganger slik de fremgår av tab. 17.
I praksis implementeres søkeprosessorkretsen PMC i henhold til den foreliggende oppfinnelse som en integrert kretsbrikkeløsning og fordelaktig realiseres denne som et superbinært tre hvor prosesseringskretsen Pi på nivået Si bare har én komparator COM. All egentlig prosessering (søke- og jevnføringsoperasjoner) skjer da på dette nivå. En implementasjon hvor søkeprosessorkretsen Pn = P2, altså formelt med 3 nivåer, danner et superbinært tre med eksempelvis 512 prosesseringskretser Pi gir dessuten en svært god utnyttelsesgrad for kretsbrikken.
TILLEGG

Claims (22)

1. Prosesseringskrets (Pi) til gjenkjenning og sammenligning av komplekse mønstre i høyhastighetsdatastrømmer, spesielt til bruk i søkemotorer for søking og gjenfinning av data lagret i strukturerte eller ustrukturerte databaser, og hvor prosesseringskretsen (Pi) utgjør en node i et nettverk av slike prosesseringskretser, karakterisert ved at prosesseringskretsen (Pi) omfatter et grensesnitt med inn- og utganger for data som utgjør henholdsvis konfigurerende parametre og operative parametre for prosesseringskretsen (Pi), idet de konfigurerende parametre tilføres prosesseringskretsen (Pi) over uspesifiserte eller dediserte innganger i grensesnittet en gang for alle for en gitt prosesseringsoppgave og de operative data som prosesseres ved eksekvering av den gitte prosesseringsoppgave, kontinuerlig tilføres eller gis ut fra prosesseringskretsen (Pi) over spesifiserte respektive innganger og utganger i grensesnittet, minst en kjerneprosessor (P0) i form av en komparatorenhet (COM), idet komparatorenheten (COM) er innrettet til å sammenligne to dataord, og en logisk enhet (E) forbundet med komparatorenheten, idet den logiske enhet omfatter en multiplekser (MUX1) forbundet med følgende innganger i grensesnittet: en sekvensiell datainngang, en sekvensiell dokumentinngang, en sekvensiell vippeinngang, en sekvensiell resultatinngang fra en foregående prosesseringskrets, en sekvensiell resultatinngang fra en påfølgende prosesseringskrets, en parallell datainngang, en parallell dokumentinngang og en parallell vippeinngang, en parallell resultatinngang på en foregående prosesseringskrets og en parallell resultatinngang på en påfølgende prosesseringskrets; og med følgende utganger i grensesnittet: en utgang for valgt dataverdi, en utgang for valgt dokumentverdi, en utgang for valgt vippeverdi, en utgang for et valgt resultat til en foregående prosesseringskrets og en utgang for et valgt resultat til en påfølgende prosesseringskrets, en første D-vippe (2), en latensitetsenhet (LAT) som er innrettet til å forsinke en positiv binær verdi med et gitt antall tidsenheter, en annen D-vippe (4), en sekvenskontrollenhet (SC) som er innrettet til å overvåke og styre en sammenligningsoperasjon i komparatorenheten (COM), og en resultatvelger (RS) som er innrettet til å kombinere to resultatverdier fra andre prosesseringskretser eller andre resultatvelgere, at komparatorenheten er forbundet med en utgang for en valgt dataverdi på multiplekseren (MUX1) og med en datautgang i grensesnittet og dessuten har en resultatutgang forbundet med en første OG-port (1) og en likhetsutgang forbundet med en annen OG-port (3), at den første D-vippe er forbundet med en utgang for en valgt dokumentverdi på multiplekseren (MUX1) og har en tilbakestillingsutgang som over en tilbakestillingslinje (5) er forbundet henholdsvis med en inngang på den første OG-port (1), en inngang på den annen OG-port (3) en inngang på latensitetsenheten (LAT) samt med en dokumentinngang i grensesnittet, at den annen OG-port (3) har en likhetsutgang i grensesnittet, at latensitetsenheten (LAT) er forbundet med utgangen på den første OG-port (1) og med en resultatinngang på sekvenskontrollenheten (SC), at den annen D-vippe (4) er forbundet med tilbakestillingsutgangen på den første D-vippe (2) og henholdsvis en vippeutgang og vippeinngang på sekvenskontrollenheten (SC) samt med en vippeutgang i grensesnittet, at sekvenskontrollenheten (SC) er forbundet med utgangen for en valgt vippeverdi og utgangen for et valgt resultat fra en foregående prosesseringskrets på multiplekseren (MUX1) og med en resultatinngang på en påfølgende prosesseringskrets og en resultatutgang i grensesnittet, og at resultatvelgeren (RS) er forbundet med henholdsvis en første resultatinngang, en første dokumentinngang, en første likhetsinngang, en annen resultatinngang, en annen dokumentinngang og en annen likhetsinngang i grensesnittet og med henholdsvis en resultatutgang, en dokumentutgang og en likhetsutgang i grensesnittet.
2. Prosesseringskrets (Pi) i henhold til krav 1, karakterisert ved at grensesnittet er definert ved innganger for de konfigurerende parametre og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn- eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter:
3. Prosesseringskrets (Pi) i henhold til krav 1, karakterisert ved at komparatorenheten (COM) omfatter et første register (6) som i hvert tilfelle rommer inngangsdata i form av et dataord x og henholdsvis er forbundet med en datainngang og en datautgang, et annet register (7) som rommer et dataord a som dataordet x i det første register (6) skal sammenlignes med, samt en eller flere logiske porter, og en multiplekser (MUX2) forbundet med registerne (6,7) for utførelse av en sammenligningsoperasjon, idet en utgang på multiplekseren (MUX2) utgjør komparatorenhetens resultatutgang.
4. Prosesseringskrets (Pi) i henhold til krav 3, karakterisert ved at komparatorenhetens (COM) grensesnitt er definert ved innganger for de konfigurerende parametre og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn- eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter:
5. Prosesseringskrets (Pi) i henhold til krav 4, karakterisert ved at sammenligningsoperasjonen er en av operasjonene <,>,*, og =, og gitt ved den konfigurerende parameter C lagt inn som binær 0 for <, binær 1 for >, binær 2 for *, og binær 3 for =.
6. Prosesseringskrets (Pi) i henhold til krav 1, karakterisert ved at latensitetsenheten (LAT) omfatter en teller (8) som henholdsvis over en første inngang er forbundet med utgangen på den annen OG-port (3) og over en annen inngang med tilbakestillingslinjen (5), idet telleren (8) er forbundet med et latensitetsregister (9) som rommer en konfigurerende latensitetsparameter, og har en utgang som utgjør latensitetsenhetens resultatutgang.
7. Prosesseringskrets (Pi) i henhold til krav 6, karakterisert ved at latensitetsenhetens (LAT) grensesnitt er definert ved en inngang for en konfigurerende latensitetsparameter og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn- eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter.
8. Prosesseringskrets (Pi) i henhold til krav 7, karakterisert ved atL = 0gir ingen latensitet, L = t gir latensitet t tidsenheter og L = t = 2<W>"' gir uendelig latensitet.
9. Prosesseringskrets (Pi) i henhold til krav 1, karakterisert ved at sekvenskontrollenheten (SC) omfatter en første OG-port (10) forbundet med en resultatinngang på en foregående prosesseringskrets og en resultatutgang på latensitetsenheten (LAT), en første ELLER-port (11) forbundet henholdsvis med en utgang på den første OG-port (10) og en utgang på den annen D-vippe (4), en annen OG-port (12) forbundet med resultatutgangen på latensitetsenheten (LAT) og en resultatinngang på en påfølgende prosesseringskrets, en annen ELLER-port (13) forbundet med resultatinngangen på en påfølgende prosesseringskrets og med utgangen på den annen D-vippe (4), en tredje OG-port (14) forbundet med resultatutgangen på latensitetsenheten (LAT) og med en utgang på ELLER-porten (13), og en multiplekser (MUX3) forbundet henholdsvis med resultatutgangen på latensitetsenheten (LAT), en utgang på hver av OG-portene (10, 12, 14) og den første ELLER-port (11), resultatinngangen på en foregående prosesseringskrets og vippeutgangen på en foregående prosesseringskrets, idet en utgang på sekvenskontrollenheten (SC) utgjør resultatutgangen på prosesseringskretsen (Pi).
10. Prosesseringskrets (Pi) i henhold til krav 9, karakterisert ved at sekvenskontrollenhetens (SC) grensesnitt er definert ved inngangen for konfigurerende parameter og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn- eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter:
11. Prosesseringskrets (Pi) i henhold til krav 10, karakterisert ved at sekvenskontrollenheten (SC) implementerer en eller flere av de følgende sekvenskontrolloperasjoner: - tillater komparatorenheten (COM) å avgi et sammenligningsresultat betinget av at enten den foregående eller den påfølgende enhet avgir et sammenligningsresultat, - tillater sammenligning med mønstre hvor deler av mønsteret mangler, - tillater sammenligning av mønstre hvor deler av mønsteret repeteres.
12. Prosesseringskrets (Pi) i henhold til krav 11, karakterisert ved at den konfigurerende parameter S er lagt inn som binær 1 dersom en sekvenskontrolloperasjon skal finne sted, at den konfigurerende parameter D er lagt inn som binær 0 eller binær 1 for henholdsvis en foroversekvenskontroll og en bakoversekvenskontroll, og at den konfigurerende parameter MM er lagt inn som binær 1 dersom manglende mønster eller gjentatte mønstre tillates sammenlignet.
13. Prosesseringskrets (Pi) i henhold til krav 1, karakterisert ved at resultatvelgeren (RS) omfatter en første OG-port (15) forbundet med den første likhetsinngang og den annen likhetsinngang, en annen OG-port (16) forbundet med den første resultatinngang og den annen resultatinngang, en tredje OG-port (17) forbundet med den første resultatinngang og den annen likhetsinngang, en IKKE-port (18) forbundet med den annen likhetsinngang, en fjerde OG-port (19) forbundet med den annen resultatinngang og utgangen på IKKE-porten (18), en første ELLER-port (20) forbundet med henholdsvis den første og den annen likhetsinngang, en annen ELLER-port (21) forbundet med henholdsvis den første og den annen resultatinngang, en tredje ELLER-port (22) forbundet henholdsvis med utgangen på den tredje og fjerde OG-port (17; 19), en multiplekser (MUX4) forbundet med den første resultatinngang, den annen resultatinngang, den første likhetsinngang, den annen likhetsinngang, utgangen fra henholdsvis den første og annen OG-port (15; 16), samt med utgangen fra henholdsvis den første, annen og tredje ELLER-port (20;21;22), en femte OG-port (23) forbundet henholdsvis med den første og annen dokumentinngang samt med dokumentutgangen i grensesnittet, en sjette OG-port (24) forbundet med henholdsvis utgangen på den femte OG-port (23) og en første utgang på multiplekseren (MUX4) samt med resultatutgangen i grensesnittet, og en syvende OG-port (25) forbundet med henholdsvis den femte OG-port og en annen utgang på multiplekseren (MUX4) samt med likhetsutgangen i grensesnittet.
14. Prosesseringskrets (Pi) i henhold til krav 13, karakterisert ved at resultatvelgerens (RS) grensesnitt er definert ved innganger for de konfigurerende parametre og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn- eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter:
15. Prosesseringskrets (Pi) i henhold til krav 14, karakterisert ved at resultatvelgeren (RS) implementerer en eller flere av de følgende operasjoner: bruker bare et første resultat (resi) bruker bare et annet resultat (res2) utfører operasjonen boolsk OG på det første og annet resultat utfører operasjonen boolsk ELLER på det første og annet resultat utfører operasjonen > over et sett av prosesseringskretser (Pi) utfører operasjonen < over et sett av prosesseringskretser (PO.
16. Prosesseringskrets (Pi) i henhold til krav 15, karakterisert ved at den konfigurerende parameter RM for resultatvelgeren (RS) og er lagt inn som 3-bits binære verdier spesifikke for hver av operasjonene som resultatvelgeren implementerer.
17. Søkeprosessorkrets (PMC) omfattende en multiprosessorenhet Pn med trestruktur til gjenkjenning og sammenligning av komplekse mønstre i høyhastighetsdatastrømmer, spesielt til bruk i søkemotorer for søking og gjenfinning av data lagret i strukturerte eller ustrukturerte databaser, hvor multiprosessorenheten Pn omfatter prosesseringskretser P) i henhold til krav 1 og hvor multiprosessorenheten Pn utgjør en krets dannet i form av et binært eller superbinært tre med n+1 nivåer S0, S),... Sn og grad k = 2m, hvor m er et positivt helt tall større eller lik 1 og et superbinært tre definert ved k > 2, karakterisert ved at multiprosessorenheten Pn er anordnet på nivået Sn og danner en rotnode i treet og omfatter et grensesnitt IPn og en logisk enhet E, at det nærmest underliggende nivå S„.i omfatter 2m kretser Pn.i som er anordnet nøstet i multiprosessorenheten Pn og utgjør dens barnnoder, idet hver av kretsene Pn.i har identiske grensesnitt Ipn og omfatter en tilsvarende logisk enhet E, at multiprosessorenheten Pn på et underliggende nivå Sn.q, q e {l,2,...n -1}, generelt omfattter 2mq kretser Pn.q, hver med grensesnitt IP|i , og tilsvarende logiske enheter (E) og anordnet nøstet i de 2<m>(<q>"<1>) kretser Pn-q+i på det overliggende nivå Sn.q+i, idet hver krets Pn-q+i på dette nivå omfatter 2m kretser Pn.q, at et for multiprosessorenheten Pn for q = n definert nullte nivå n - q = S0 og omfatter fra 2<m>(<n>",) til 2<mn >kjerneprosessorer P0 som utgjør komparatorenheter (COM) i de 2<m>(<n>'<1>) prosesseringskretser Pj på nivået Si, at hver prosesseringskrets Pi omfatter fra én til 2m komparatorenheter (COM) og hver har grensesnitt IP) og tilsvarende logiske enheter (E), at generelt har samtlige kretser P[, P2...Pn på nivåene Sls S2,...Sn identiske grensesnitt I slik at IPl = l?2 = .... IPn<=> I, og at hver logisk enhet (E) omfatter en resultatvelger (RS) eller oppslagstabell (LUT) for å innhente resultatene av en søkeoperasjon eller jevnføringsoperasjon eksekvert av prosesseringsenhetene Pi på nivået S].
18. Søkeprosessorkrets (PMC) i henhold til krav 17, karakterisert ved at hver prosesseringsenhet P) på nivået Si omfatter 2m komparatorenheter (COM), slik at multiprosessorenheten Pn danner et uredusert binært eller superbinært tre, at en prosesseringskrets P] avbilder en krets P2 på det overliggende nivået med en faktor r = 2m, og at generelt avbilder en krets Pn.q på nivået Sn.q for qe {1,2,...n-1} en krets P„-q+i på det overliggende nivå Sn.q+i rekursivt med faktoren r = 2m, slik at det binære eller superbinære tre som konfigurerer kretsen Pn i hvert tilfelle utgjør et fra nivået Sj rekursivt generert binært eller superbinært tre.
19. Søkeprosessorkrets (PMC) i henhold til krav 17, karakterisert ved at grensesnittet IPn for multiprosessorenheten Pn og grensesnittene IP for hver krets Pn.q som inngår i kretsen Pn på underliggende nivåer Sn.q, er definert ved innganger for de konfigurerende parametre og inn- og utganger for de operative parametre i henhold til den følgende tabell, idet tabellens første kolonne angir parameterens betegnelse, den annen kolonne parametertypen som henholdsvis operativ eller konfigurerende, den tredje kolonne parameteren som henholdsvis en inn-eller utgangsparameter, den fjerde kolonne inngangens eller utgangens bredde i bit og den femte kolonne en nærmere definisjon av den angjeldende parameter:
20. Søkeprosessorkrets (PMC) i henhold til krav 17, hvor den logiske enhet (E) omfatter en latensitetsenhet (LAT) og sekvenskontrollenhet (SC) samt en oppslagstabellenhet (LUT), karakterisert ved at den logiske enhet (E) omfatter dessuten en første OG-port (26), en første mulitiplekser (MUX5), en annen OG-port (27) og en annen multiplekser (MUX6), at oppslagstabellenheten (LUT) er forbundet med en resultatutgang på hver prosesseringskrets P„-i i det umiddelbart underliggende nivå, den første OG-port (26) med en dokumentutgang på hver av de nevnte kretser Pn„i, den annen OG-port (27) med utgangen på den første OG-port (26) og utgangen på oppslagstabellenheten (LUT), den første multiplekser (MUX5) med utgangen på den annen OG-port (27) og en annen resultatutgang på en siste av de nevnte kretser Pn.i, latensitetsenheten (LAT) med utgangen på den første OG-port (26), sekvenskontrollenheten (SC) med en utgang på latensitetsenheten (LAT), en resultatutgang og en vippeutgang på en første av de nevnte kretser Pn_i, en resultatinngang på den logiske enhet (E) og en vippeutgang på den siste av den nevnte kretser Pn.i, og den annen multiplekser (MUX6) med en vippeutgang på sekvenskontrollenheten (SC) samt henholdsvis med første og en annen vippeinngang på logiske enhet (E) og dessuten over henholdsvis første og andre vippeutganger med den første av de nevnte kretser Pn_i.
21. Søkeprosessorkrets (PMC) i henhold til krav 20, karakterisert ved at søkeprosessorkretsen (PMC) omfatter en dokumentforvaltningsenhet (DOC) som ved en datautgang er forbundet med henholdsvis den sekvensielle og den parallelle datainngang på multiprosessorenheten Pn og ved en dokumentutgang er forbundet med den sekvensielle dokumentinngang på multiprosessorenheten Pn.
22. Søkeprosessorkrets i henhold til krav 20, karakterisert ved at søkeprosessorkretsen (PMC) omfatter '/ik = 2<1>""<1> trefforvaltningsenheter (HIT) anordnet forbundet med henholdsvis respektive resultatutganger og dokumentutganger på prosesseringskretsene Pn_i, idet hver trefforvaltningsenhet (HIT) over en resultatinngang er forbundet til respektive resultatutganger i multiprosessorenhetens Pn grensesnitt.
NO19985315A 1998-11-13 1998-11-13 Sokeprosessor NO309169B1 (no)

Priority Applications (16)

Application Number Priority Date Filing Date Title
NO19985315A NO309169B1 (no) 1998-11-13 1998-11-13 Sokeprosessor
DE69905394T DE69905394T2 (de) 1998-11-13 1999-11-12 Datenverarbeitungs- und such-prozessor-schaltkreis
IL14286299A IL142862A0 (en) 1998-11-13 1999-11-12 A processing circuit and a search processor circuit
PCT/NO1999/000344 WO2000029981A2 (en) 1998-11-13 1999-11-12 A processing circuit and a search processor circuit
CA002350468A CA2350468C (en) 1998-11-13 1999-11-12 A processing circuit and a search processor circuit
ES99972331T ES2192887T3 (es) 1998-11-13 1999-11-12 Circuito de procesado y circuito procesador de busqueda.
BR9915340-8A BR9915340A (pt) 1998-11-13 1999-11-12 Circuito de processamento e circuito processador de busca
US09/600,256 US6587852B1 (en) 1998-11-13 1999-11-12 Processing circuit and a search processor circuit
AT99972331T ATE232617T1 (de) 1998-11-13 1999-11-12 Datenverarbeitungs- und such-prozessor- schaltkreis
JP2000582922A JP3588049B2 (ja) 1998-11-13 1999-11-12 処理回路及び検索プロセッサ回路
EP99972331A EP1135735B1 (en) 1998-11-13 1999-11-12 A processing circuit and a search processor circuit
KR10-2001-7006084A KR100417908B1 (ko) 1998-11-13 1999-11-12 처리 회로 및 검색 프로세서 회로
CNB99815623XA CN100449529C (zh) 1998-11-13 1999-11-12 处理电路和搜索处理器电路
RU2001116129/09A RU2216772C2 (ru) 1998-11-13 1999-11-12 Схема обработки и схема процессора поиска
AU11915/00A AU751081B2 (en) 1998-11-13 1999-11-12 A processing circuit and a search processor circuit
DK99972331T DK1135735T3 (da) 1998-11-13 1999-11-12 Databehandlingskredsløb og søgeprocessorkredsløb

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NO19985315A NO309169B1 (no) 1998-11-13 1998-11-13 Sokeprosessor

Publications (3)

Publication Number Publication Date
NO985315D0 NO985315D0 (no) 1998-11-13
NO985315L NO985315L (no) 2000-05-15
NO309169B1 true NO309169B1 (no) 2000-12-18

Family

ID=19902623

Family Applications (1)

Application Number Title Priority Date Filing Date
NO19985315A NO309169B1 (no) 1998-11-13 1998-11-13 Sokeprosessor

Country Status (16)

Country Link
US (1) US6587852B1 (no)
EP (1) EP1135735B1 (no)
JP (1) JP3588049B2 (no)
KR (1) KR100417908B1 (no)
CN (1) CN100449529C (no)
AT (1) ATE232617T1 (no)
AU (1) AU751081B2 (no)
BR (1) BR9915340A (no)
CA (1) CA2350468C (no)
DE (1) DE69905394T2 (no)
DK (1) DK1135735T3 (no)
ES (1) ES2192887T3 (no)
IL (1) IL142862A0 (no)
NO (1) NO309169B1 (no)
RU (1) RU2216772C2 (no)
WO (1) WO2000029981A2 (no)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434687B1 (en) * 1997-12-17 2002-08-13 Src Computers, Inc. System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image
TW518833B (en) * 2001-12-12 2003-01-21 Defence Dept Chung Shan Inst Decoding method and circuits for comma-free reed-Solomon codes
US6944813B2 (en) * 2002-04-12 2005-09-13 Chung Shan Institute Of Science And Technology Weighted decoding method and circuits for Comma-Free Reed-Solomon codes
US7051263B2 (en) * 2002-04-12 2006-05-23 Chung Shan Institute Of Science And Technology Systolic architecture for Comma-Free Reed-Solomon decoding circuit
US7369575B2 (en) * 2003-07-17 2008-05-06 Sun Microsystems, Inc. Bandwidth matching device and method for operating the same
US7243165B2 (en) * 2004-01-14 2007-07-10 International Business Machines Corporation Parallel pattern detection engine
US7953750B1 (en) * 2006-09-28 2011-05-31 Verint Americas, Inc. Systems and methods for storing and searching data in a customer center environment
CN101739541B (zh) * 2008-11-12 2011-11-09 北京同方微电子有限公司 一种适用于pie编码的解码器
CN102226897A (zh) * 2011-05-13 2011-10-26 南京烽火星空通信发展有限公司 一种综合索引查询方法及装置
CN104063493A (zh) * 2014-07-04 2014-09-24 用友软件股份有限公司 级次布局的处理方法和级次布局的处理系统
US10956357B2 (en) * 2019-04-01 2021-03-23 International Business Machines Corporation Method for flexible, fast all-reduce on arbitrary tree topology

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3585411D1 (de) * 1985-10-31 1992-03-26 Trw Inc Schneller recherchenprozessor und verfahren fuer seine benutzung.
US5051947A (en) * 1985-12-10 1991-09-24 Trw Inc. High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US5060143A (en) * 1988-08-10 1991-10-22 Bell Communications Research, Inc. System for string searching including parallel comparison of candidate data block-by-block
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
US5758148A (en) * 1989-03-10 1998-05-26 Board Of Regents, The University Of Texas System System and method for searching a data base using a content-searchable memory
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5561768A (en) * 1992-03-17 1996-10-01 Thinking Machines Corporation System and method for partitioning a massively parallel computer system
JPH08502609A (ja) * 1992-10-16 1996-03-19 ハラース,アーネ 非数値コプロセッサ
US5706497A (en) * 1994-08-15 1998-01-06 Nec Research Institute, Inc. Document retrieval using fuzzy-logic inference
US5761440A (en) * 1994-09-15 1998-06-02 International Business Machines Corporation System and method utilizing multiple search trees to route data within a data processing network
KR100309673B1 (ko) * 1997-12-19 2001-11-22 이계철 지역성을 이용한 데이터 탐색방법

Also Published As

Publication number Publication date
WO2000029981A3 (en) 2000-08-10
JP2002530747A (ja) 2002-09-17
DK1135735T3 (da) 2003-05-26
ES2192887T3 (es) 2003-10-16
CN1333895A (zh) 2002-01-30
DE69905394D1 (de) 2003-03-20
CA2350468C (en) 2006-05-23
JP3588049B2 (ja) 2004-11-10
AU1191500A (en) 2000-06-05
CN100449529C (zh) 2009-01-07
NO985315L (no) 2000-05-15
ATE232617T1 (de) 2003-02-15
AU751081B2 (en) 2002-08-08
EP1135735B1 (en) 2003-02-12
EP1135735A2 (en) 2001-09-26
BR9915340A (pt) 2001-09-25
RU2216772C2 (ru) 2003-11-20
IL142862A0 (en) 2002-03-10
WO2000029981A2 (en) 2000-05-25
NO985315D0 (no) 1998-11-13
DE69905394T2 (de) 2003-10-09
KR100417908B1 (ko) 2004-02-11
CA2350468A1 (en) 2000-05-25
KR20010086028A (ko) 2001-09-07
US6587852B1 (en) 2003-07-01

Similar Documents

Publication Publication Date Title
US20160342662A1 (en) Multi-stage tcam search
JP3789302B2 (ja) ディジタル処理装置
NO309169B1 (no) Sokeprosessor
CN104715021A (zh) 一种基于哈希方法的多标记学习的设计方法
CN100388264C (zh) 具有可重构体系结构的计算机装置
CN102736888B (zh) 与数据流同步的数据检索电路
JPH03129427A (ja) 分類加速装置のデータ保全性特徴
US10691964B2 (en) Methods and systems for event reporting
Gupta et al. Parallel generation of permutations
Sipper Computing with cellular automata: Three cases for nonuniformity
Looks et al. Streaming hierarchical clustering for concept mining
Schwabe Constant-slowdown simulations of normal hypercube algorithms on the butterfly network
EP0136379B1 (en) Word comparator means and method
Clifford et al. Time bounds for streaming problems
Poikonen et al. Implementation of nondeterministic finite automata in an autoassociative CAM circuit
Singh et al. Cell-like P-systems using deterministic update rules to solve Sudoku
Chen et al. Fault-tolerant algorithm for Fast Fourier Transform on hypercubes
JP4995724B2 (ja) 情報処理システムおよび情報処理方法
KR100585935B1 (ko) 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법
Das et al. O (log logN) Time Algorithms for Hamiltonian Suffix and Min-Max-Pair Heap Operations on the Hypercube
An Efficient Algorithms for a Mesh-Connected Computer with Additional Global Bandwidth
Das et al. O (log log n) time algorithms for Hamiltonian-suffix and min-max-pair heap operations on hypercube multicomputers
Lewenstein et al. Amihood Amir1, Dmitry Keselman2, Gad M. Landau3, Moshe Lewenstein4
CHUNG ON MODULAR MESH-CONNECTED COMPUTERS
Keselmanx et al. Text Indexing and Dictionary Matching with One Error

Legal Events

Date Code Title Description
CREP Change of representative

Representative=s name: BRYN AARFLOT AS, POSTBOKS 449 SENTRUM, 0104 OSLO,

MM1K Lapsed by not paying the annual fees