Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
RS67332B1 - Sistemi, aparat, i postupci obrade tipa transportne trake - Google Patents
[go: Go Back, main page]

RS67332B1 - Sistemi, aparat, i postupci obrade tipa transportne trake - Google Patents

Sistemi, aparat, i postupci obrade tipa transportne trake

Info

Publication number
RS67332B1
RS67332B1 RS20250997A RSP20250997A RS67332B1 RS 67332 B1 RS67332 B1 RS 67332B1 RS 20250997 A RS20250997 A RS 20250997A RS P20250997 A RSP20250997 A RS P20250997A RS 67332 B1 RS67332 B1 RS 67332B1
Authority
RS
Serbia
Prior art keywords
data
reprogrammable
conveyor
processors
hardware
Prior art date
Application number
RS20250997A
Other languages
English (en)
Inventor
Zia Shlaimoun
Nico Shlaimoun
Original Assignee
Hexacore Inc
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 Hexacore Inc filed Critical Hexacore Inc
Publication of RS67332B1 publication Critical patent/RS67332B1/sr

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by program execution, i.e. part program or machine function execution, e.g. selection of a program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)

Description

[0001] SRODNE PRIJAVE
[0003] Ova prijava traži priznanje prava prioriteta i prednosti iz privremene prijave patenta u SAD br. U.S.62/896,682, podnete 6. septembra 2019.
[0005] OBLAST TEHNIKE
[0007] Ovaj opis se odnosi na računare i preciznije na procesore računara.
[0009] OBLAST TEHNIKE
[0011] Digitalni računari projektovani za univerzalno računarstvo mogu koristiti standardnu arhitekturu kao što je fon Nojmanova (von Neumann) arhitektura. Projektovana otprilike 1945. od strane fizičara i matematičara Džona fon Nojmana (John von Neumann), fon Nojmanova arhitektura mašine može da bude teorijski projekat za digitalni računar sa memorisanim programskim instrukcijama. SAD patent US5299320A takođe ilustruje tehnološku pozadinu pronalaska kako je definisano u uvodnom delu patentnog zahteva 1.
[0013] KRATAK OPIS SLIKA NACRTA
[0015]
[0017] SL. 1 pokazuje dijagram koji ilustruje primer računarskog sistema.
[0018] SL. 2 pokazuje dijagram koji ilustruje arhitekturu računarskog sistema transportne trake. SL. 3 pokazuje izvorni kod programa koji štampa Fibonačijeve (Fibonacci) brojeve.
[0019] SL. 4 pokazuje mašinski kod programa koji se izvršava na standardnoj arhitekturi sistema za štampanje Fibonačijevih brojeva.
[0020] SL. 5 pokazuje dijagram toka operatorskih blokova koji se izvrše u sistemu arhitekture transportne trake za štampanje Fibonačijevih brojeva.
[0021] SL. 6 pokazuje izvorni kod koji izračunava i štampa zbir cifara.
[0022] SL. 7 pokazuje prvu četvrtinu mašinskog koda koji se izvršava na standardnoj arhitekturi sistema koji izračunava i štampa zbir cifara.
[0023] SL. 8 pokazuje drugu četvrtinu mašinskog koda koji se izvršava na standardnoj arhitekturi sistema koji izračunava i štampa zbir cifara.
[0024] SL. 9 pokazuje treću četvrtinu mašinskog koda koji se izvršava na standardnoj arhitekturi sistema koji izračunava i štampa zbir cifara.
[0025] SL. 10 pokazuje četvrtu četvrtinu mašinskog koda koji se izvršava na standardnoj arhitekturi sistema koji izračunava i štampa zbir cifara.
[0026] SL. 11 pokazuje dijagram toka operatorskih blokova koji se izvrše na arhitekturi sistema tipa transportne trake koji izračunava i štampa zbir cifara.
[0027] SL. 12 pokazuje dijagram bloka koji ilustruje arhitekturu tipa transportne trake računarskog sistema korišćenog u kombinaciji sa računarskim sistemom standardne arhitekture.
[0028] SL. 13 pokazuje dijagram bloka koji ilustruje kako program može da bude izvršen preko arhitekture računarskog sistema transportne trake i standardne arhitekture računarskog sistema.
[0029] SL. 14 pokazuje dijagram toka postupka za izradu arhitekture tipa transportne trake. SL. 15 je blok-dijagram ilustruje računarski sistem i komponente.
[0031] DETALJAN OPIS
[0033] Detaljan opis sistema i postupaka dosledan izvođenjima iz ovog opisa je dat u daljem tekstu. Kako su brojni specifični detalji izloženi u opisu koji sledi da bi se obezbedilo detaljno razumevanje ovde opisanih izvođenja, neka izvođenja moguće je praktikovati bez nekih ili svih ovih detalja. Pored toga, u svrhu jasnoće, izvesni tehnički materijal koji je poznat u srodnoj oblasti nije opisan detaljno da bi se izbeglo bespotrebno ostavljanje nejasnoća opisa.
[0034] Opisuju se tehnike, aparati i postupci koji koriste platformu hardvera koju je moguće rekonfigurisati da bi se izvršilo međupovezivanje lanca operatorskih blokova hardvera koje je moguće rekonfigurisati da bi se manipulisalo podacima dok se podaci pomeraju nizvodno u lančanom toku. Ova arhitektura transportne trake, ili lanca operatorskih blokova, pomera podatke od jednog operatorskog bloka do drugog operatorskog bloka. U mestu dela softvera, lanac operatorskih blokova hardvera koje je moguće ponovo rekonfigurisati može manipulisati podacima dok se podaci pomeraju nizvodno u lančanom toku. Ovaj pronalazak se iznosi u pridodatom nizu patentnih zahteva.
[0035] U nekim izvođenjima, arhitektura računarskog sistema transportne trake može da se koristi pojedinačno da izvede računarske zadatke.
[0036] Višestruka arhitektura računarskih sistema transportne trake može da se koristi serijski ili paralelno, na primer, da se podeli radno opterećenje između računarskih sistema.
[0037] Arhitektura računarskog sistema tipa transportne trake može da se koristi u kombinaciji sa računarskim sistemom standardne arhitekture, a radno opterećenje moguće je deliti između računarskih sistema.
[0038] Višestruka arhitektura računarskih sistema tipa transportne trake može da se koristi serijski ili paralelno, i korišćena u kombinaciji sa računarskim sistemom standardne arhitekture, na primer, da se podeli radno opterećenje između računarskih sistema.
[0039] Arhitektura računarskog sistema tipa transportne trake može da se koristi u kombinaciji sa više računarskih sistema standardne arhitekture, na primer, i radno opterećenje se deli između računarskih sistema.
[0040] SL.1 pokazuje dijagram koji ilustruje primer računarskog sistema koji je sličan ili koji obuhvata računarski sistem fon Nojmanove arhitekture. Računarski sistem obuhvata ulaz 102, računarski sistem 104 i izlaz 106. Ulaz 102 je primljen (npr. preko sabirnice, itd.) na računarski sistem 104, gde se procesira pre slanja (npr., preko sabirnice, itd.) iz računarskog sistema 104 kao izlaz 106. Unutar računarskog sistema 104 je sadržana memorija sa slučajnim pristupom (RAM) 108, koja se spoji na centralnu procesorsku jedinicu (CPU) 112 preko zajedničke sabirnice 110. Pored toga, centralna procesorska jedinica (CPU) 112 obuhvata aritmetičkologičku jedinicu (ALU) 116, upravljačka jedinica 114, i registre 118 i slogove 120.
[0041] Programi koji se izvršavaju na računarskom sistemu standardne arhitekture mogu da obuhvate niz instrukcija koje se izvršavaju u specifičnoj sekvenci da bi se manipulisalo podacima.
[0042] Kada se program učita u memoriju sa slučajnim pristupom (RAM) 108, centralna upravljačka jedinica (CPU) 112 može da izvodi niz instrukcijskih ‘donesi-dekodiraj-izvrši ’ ciklusa, pri čemu sadržaj lokacija memorije sa slučajnim pristupom (RAM) 108 iščitava, dešifruje i zatim izvršava u specifičnoj sekvenci, kako to nalaže (diktira) program. Pošto lokacije u memoriji sa slučajnim pristupom (RAM) 108 sadrže instrukcije i podatke, centralna procesorska jedinica (CPU) 112 čita i dešifruje uputstva da bi utvrdila šta da radi sa informacijom i zatim da izvrši ishod. Neke instrukcije kažu centralnoj procesorskoj jedinici (CPU) 112 da otpiše rezultat rada u lokaciji memorije sa slučajnim pristupom (RAM) 108 i druge instrukcije kažu centralnoj procesorskoj jedinici (CPU) 112 da skoči na specifičnu lokaciju u memoriji sa slučajnim pristupom (RAM) 108, zavisno od rezultata prethodne instrukcije.
[0043] Problem sa ovom arhitekturom može da bude da se instrukcija i podaci programa sadrže u istoj memoriji sa nasumičnim pristupom (RAM) 108. Informaciju u memoriji sa slučajnim pristupom (RAM) 108 moguće je pročitati jednu za drugom i dešifrovati što dovodi do neefikasnosti u ograničenju za arhitekturu i učinak. Pored toga, zajednička sabirnica 110 ne mora da dozvoli centralnoj procesorskoj jedinici (CPU) 112 da pročita i zapiše informacije u isto vreme. Ovo se označava kao usko grlo i može da dodatno ograniči učinak sistema.
[0044] [0016] SL.2 pokazuje dijagram koji ilustruje arhitekturu računarskog sistema tipa transportne trake obuhvata ulaz 202, računarski sistem 204, i izlaz 206. Ulaz 202 primljen (npr. preko sabirnice, itd.) pomoću računarskog sistema 204, gde se procesira pre slanja (npr. preko sabirnice, itd.) iz računarskog sistema 204 kao izlaz 206. Unutar računarskog sistema 204 je sadržana hardverska platforma 208 koju je moguće rekonfigurisati (na primer, Field Programmable Gate Array (oblasno-programabilna logička kapija (FPGA) (programabilnog logičkog kola)) koji sadrži više operatorskih blokova 210, 212, 214, 216 i 218 koje je moguće rekonfigurisati a koji su međusobno povezani pomoću podatkovnih putanja 220, 222, 224 i 226 u jednom smeru i podatkovne putanje 228 u suprotnom smeru.
[0045] Umesto centralne procesorske jedinice (CPU) spojene na memoriju sa slučajnim pristupom (RAM) preko sabirnice, arhitektura transportne trake može da koristi hardversku platformu koju je moguće rekonfigurisati kao što je oblasno-programabilna logička kapija (FPGA) 208 programabilnog logičkog kola da bi međusobno povezali lanac operatorskih blokova koje je moguće rekonfigurisati 210, 212, 214, 216 i 218 za manipulisanje podacima dok se podaci pomeraju niz lanac, iz jednog u drugi operatorski blok preko podatkovnih putanja 220, 222, 224 i 226 u jednom smeru i podatkovne putanje 228 u suprotnom smeru.
[0046] U jednom izvođenju, u svakom operatorskom bloku 210, 212, 214, 216 i 218 operaciji, ili grupi operacija, se izvodi da se manipuliše podacima pre nego što se ti podaci prenesu na sledeći operatorski blok u lancu preko podatkovnih putanja 220, 222, 224 i 226 u jednom smeru i podatkovnoj putanji 228 u suprotnom smeru.
[0047] Progam se prevodi i zatim kopira u hardversku platformu 208 (npr., FPGA, itd.) koja se može rekonfigurisati. Svaka instrukcija, ili grupa instrukcija, se dodeli operatorskom bloku 210, 212, 214, 216 i 218 i tok programa se utvrđuje međupovezivanjem ovih operatorskih blokova.
[0048] Podacima se manipuliše na svakom operatorskom bloku 210, 212, 214, 216 i 218, dok struji niz lanac iz operatorskog bloka u operatorski blok preko podatkovnih putanja 220, 222, 224 i 226.
[0049] U slučaju instrukcije ‘skoči’, protok podataka moguće je izmeniti/preusmeriti pomoću operatorskog bloka u suprotnom smeru ili na neki drugi operatorski blok pomoću odvojene podatkovne putanje 228. U ovom primeru skok na osnovu zatečenog stanja je prikazan u operatorskom bloku 4 (216) vraćen u operatorski blok 2 (212).
[0050] Pored toga, operatorski blok 210, 212, 214, 216 i 218 može biti autonoman i da može da procesira podatke bilo asinhrono ili sinhrono, dok ih prima iz prethodnog operatorskog bloka u lanac.
[0051] U jednom izvođenju autonomne operacije, arhitektura transportne trake omogućava da se izvrši više instrukcija u jednom ciklusu procesora.
[0052] Arhitektura tipa transportne trake može da bude efikasnija od standardne arhitekture zato što ne zahteva da program bude iščitan sa memorije sa slučajnim pristupom (RAM) i dešifrovan.
[0053] Arhitektura tipa transportne trake može da izbegne uska grla povezana sa uobičajenim arhitekturama računara jer se ne oslanja na zajedničku putanju sabirnice i svaki niz operatorskih blokova ima sopstvenu podatkovnu putanju.
[0054] Arhitektura tipa transportne trake može da omogući viši učinak i procesnu snagu.
[0055] Dodatna prednost ove arhitekture je što radi u sinhronom režimu, arhitektura tipa transportne trake može da omogući pakovanje podataka gušće u hardversku platformu koju je moguće rekonfigurisati postavljanjem podataka u red za čekanje na svakom ulazu u operatorski blok, spremne da budu učitani u sledećem operatorskom bloku kad postane dostupan.
[0056] Programske instrukcije mogu da budu sadržane unutar operatorskih blokova u obliku hardverski logički kapije, pre nego softver, što izvršavanje instrukcije čini mnogo bržim nego što to radi odgovarajući softver.
[0057] Još jedna korist od arhitekture transportne trake je što program može da bude teži za hakovanje. Progam može da bude sačuvan kao hardver i bilo kakva modifikacija programa od strane hakera može da prekine lanac transportne trake kao rezultat resetovanja sistema.
[0058] Resetovanje sistema može da prouzrokuje originalni (neizmenjen) program da bude automatski ponovo učitan sistemski u hardversku platformu koju je moguće rekonfigurisati.
[0059] SL.3 -11 pokazuju razlike između dve arhitekture. C izvorni kod i kompajlirani izlazi iz nešto tradicionalnijeg računarskog sistema i računarskog sistema transportne trake se ispituju za dva različita programa.
[0060] SL.3 pokazuje izvorni kod za štampanje Fibonačijevih (Fibonacci) brojeva. C izvorni kod je pokazan za program korišćen da ištampa Fibonačijeve (Fibonacci) brojeve u opsegu 0 do 255.
[0061] SL.4 pokazuje mašinski kod za štampanje Fibonačijevih (Fibonacci) brojeva. C izvorni kod sa SL.3 može da bude kompajliran da izvrši na tradicionalnijem računarskom sistemu. Mašinski jezik koji nastaje kao rezultat može da izgleda slično spisku prikazanom na SL.4. Tradicionalni računarski sistem može da koristi najmanje 85 ciklusa sata centralne procesorske jedinice (CPU) da zaokruži prvu iteraciju petlje za izračunavanje i štampanje. Posle toga tradicionalni računarski sistem može da koristi najmanje 56 ciklusa centralne procesorske jedinice (CPU) da zaokruži naknadnu iteraciju petlje za izračunavanje i štampanje.
[0062] SL.5 pokazuje dijagram toka operatorskih blokova za štampanje Fibonačijevih (Fibonacci) brojeva. U poređenju sa SL.4, izvorni kod C prikazan na Sl.3 može da bude kompajliran da se izvrši na računarskom sistemu transportne trake. Operatorski blokovi dobijeni kao rezultat korišćeni da izvrše program mogu da izgledaju slično onima pokazanim na SL.5.
[0063] Operatorski blok 1 (OB #1) 502 dodeljuje vrednosti ‘x = O’ i ‘y = 1’. Operatorski blok 2 (OB #2) 504 izvodi ‘printf funkciju. Operatorski blok 3 (OB #3) 506 dodaje sadržaj od x i y i dodeljuje ga promenljivoj z. Takođe dodeljuje y uz x i z uz y. Operatorski blok 4 (OB #4) 508 izvršava uslovni skok unazad na početak operatorskog bloka 2504, ako je rezultat ‘x < 255’ tačan i nazad na početak operatorskog bloka 1502, ako je rezultat ‘x < 255’ pogrešan.
[0064] [0034] U ovom izvođenju, brojne instrukcije moguće je grupisati zajedno u jednom operatorskom bloku 502, 504, 506 i 508, što dozvoljava da se više operacija sprovede na podacima pre nego što se podaci proslede na sledeći operatorski blok. Kada radi u sinhronom režimu, arhitektura tipa transportne trake može da koristi četiri ciklusa procesorskog sata da završi prvu i naknadne iteracije petlje izračunavanja i štampanja. Ovo može da omogući mašini arhitekture tipa transportne trake u ovom primeru da radi sa 14 puta bržim faktorom nego uobičajena mašina sa sličnim ciklusom sata (tj.56 ciklusa naspram 4 ciklusa).
[0065] SL.6 pokazuje izvorni kod za pronalaženje zbira cifara. C izvorni kod za program za pronalaženje zbira cifara nekog broja korišćenjem rekurzije je prikazan na SL.6.
[0066] SL.7- 10 pokazuju mašinski kod za pronalaženje zbira cifara. C izvorni kod sa SL.6 može da bude kompajliran da se izvrši na fon Nojmanovom (von Neumann) računarskom sistemu. Mašinski jezik koji nastaje kao rezultat može da izgleda slično spiskovima prikazanim na SL.7-10. 'Glavna' petlja poziva zasebnu 'zbirnu' petlju 802 da izračuna i vrati rezultat 1002. Unutar zbirne petlje, u njoj je sadržana 'ako (if)' naredba 902. Zavisno od rezultata if naredbe, digitalni računar može da koristi bilo 113 ciklusa sata centralne procesorske jedinice (CPU) ili 191 ciklus satnog ciklusa da bi se procesirala samo jedna iteracija.
[0067] SL.9 pokazuje dijagram toka operatorskih blokova za pronalaženje zbira cifara. U poređenju sa SL.7 - 10, izvorni kod C prikazan na Sl.6 može da bude kompajliran da se izvrši na računarskom sistemu arhitekture tipa transportne trake. Dobijeni operatorski blokovi korišćeni da se izvrši program mogu da izgledaju slično onima prikazanim na SL.11.
[0068] Operatorski blok 1 (OB #1) 1102 izvodi funkciju 'printf za štampanje na izlaznom uređaju ''Unesite broj.'' Operatorski blok 2 (OB #2) 1104 izvodi funkciju 'scanf da se unese broj iz ulaznog uređaja. Operatorski blok 3 (OB #3) 1106 izvodi ‘if naredbu koja upoređuje uneti broj na 0 i zatim preusmerava program na bilo operatorski blok 4 (OB #4) 1108, ako je rezultat pozitivan ili na operatorski blok 5 (OB #5) 1110, ako je rezultat negativan. Operatorski blok 4 (OB #4) 1108 izvodi izračunavanje. Operatorski blok 5 (OB #5) 1110 vraća 0. Operatorski blok 6 (OB #6) 1112 dodeljuje broj vraćen pomoću bilo OB #4 (1108) ili OB #5 (1110) na promenljivi ‘zbir.’ Operatorski blok 7 (OB #7) 1114 izvodi funkciju 'printf funkciju za štampanje zbira na izlaznom uređaju. Osim toga, izlaz ovog operatorskog bloka 1114 je spojen na ulaz OB #1 (1102) da se dozvoli programu da bude ponovljen beskonačno (u petlji).
[0069] U ovom izvođenju, operatorski blok može da preusmeri programski lanac zavisno od rezultata uslova. Rad u sinhronom režimu, arhitektura računarskog sistema transportne trake može da koristi šest ciklusa procesorskog sata da zaokruži iteraciju programa, bez obzira na rezultat naredbe 'if. Arhitektura transportne trake računarskog sistema u ovom primeru može da bude 18 puta brža od računarskog sistema standardne arhitekture za sličan ciklus sata (tj.
[0070] 113 ciklusa naspram 6 ciklusa).
[0071] Računarski sistem arhitekture tipa transportne trake može da bude značajno brži od računarskog sistema standardne arhitekture zavisno od primene. Na primer, računarski sistem arhitekture tipa transportne trake može da bude brži u primenama kod kojih se obrađuju velike količine podataka. Prednost koju učinak računarskog sistema arhitekture transportne trake ima nad standardnom arhitekturom računarskog sistema može da zavisi od programa koji se izvršava. Primećeno je kroz testiranje da prednost od 100% do 2.000% jeste moguća u nekim primenama.
[0072] SL.12 pokazuje blok dijagram koji ilustruje arhitekturu tipa transportne trake za računarski sistem korišćenu u kombinaciji sa računarskim sistemom standardne arhitekture. U ovom izvođenju prednji kraj 1202 standardne arhitekture računarskog sistema spaja se na back-end (zadnji kraj) 1204 arhitekture tipa transportne trake za računarski sistem preko zajedničke sabirnice 1206.
[0073] Front end (prednji kraj) standardne arhitekture računarskog sistema obuhvata sledeće komponente; centralnu procesorsku jedinicu (CPU) 1208, dinamičnu memoriju sa slučajnim pristupom (DRAM) 1210, adapter 1212 lokalne računarske breže (LAN), Osnovni ulazni i izlazni sistem (BIOS) 1214 i tvrdi disk (HDD) 1216, spojene preko rasporeda zajedničke sabirnice 1206. U slučaju tvrdog diska HDD 1216, ovo ide preko interfejsa (I/F) 1218.
[0074] Takođe prikazane u ovom izvođenju jesu jedinica za obradu grafike (GPU) 1220 i još jedna procesorska jedinica za dodatno proširenje 1222.
[0075] Back end (zadnji kraj) trake sistema računara sa arhitekturom tipa transportne trake obuhvata oblasno-programabilnu logičku kapiju (FPGA) 1224 programabilnog logičkog kola koja se spaja na ostatak komponenata u celokupnom sistemu pomoću zajedničke sabirnice 1206.
[0076] Pošto neki programi mogu da stoje neangažovani tokom znatnog dela radnih sati, malo smisla ima da se izvrši ovaj neangažovani kod u arhitekturi računarskog sistema tipa transportne trake . Umesto toga, samo specifične sekcije programa (npr., kritične petlje, kritične putanje) mogu da budu prevedene i izvrše se u arhitekturi računarskog sistema tipa transportne trake da bi se izvršilo 'teško podizanje'. Ostatak programa bez specifičnih sekcija može i dalje da bude izvršen u front-end (prednji kraj) računarskih sistema standardne arhitekture. Upotreba dve arhitekture zajedno može da izbegne neophodnost da se ceo program prevodi da radi na arhitekturi računarskog sistema tipa transportne trake. Ovo može da spreči upotrebu vredne imovine arhitekture računarskog sistema tipa transportne trake (npr. programski prostor) koji možda ne obezbedi opipljivu korist. Pored toga, upotreba dve arhitekture osigurava kompatibilnost sa postojećim programima koji su projektovani da se izvrše na računarskom sistemu standardne arhitekture.
[0077] U nekim izvođenjima arhitektura računarskog sistema tipa transportne trake može da se koristi u vezi sa računarskim sistemima standardne arhitekture. Sl.13 pokazuje blok dijagram koji ilustruje kako program može da bude izvršen preko računarskog sistema sa arhitekturom tipa transportne trake i standardne arhitekture računarskih sistema. Fron-end (prednji kraj) 1302 standardne arhitekture računarskog sistema spaja se na back-end (zadnji kraj) 1304 računarskog sistema sa arhitekturom tipa transportne trake preko sabirnice 1306. Glavni deo programa 1308 zatim poziva Rutinu A 1312 i Rutinu B 1314 računarskog sistema sa arhitekturom tipa transportne trake preko funkcija pozivanja 1316 i 1320 i vraća rezultate u 1318 i 1322 prema opisanom redosledu.
[0078] SL.14 pokazuje dijagram toka postupka za izradu arhitekture tipa transportne trake. Ovaj postupak može da se izvodi pomoću ovde opisanih sistema i/ili komponenata, uključujući 204 sa SL.2. U bloku 1402, sistem transportne trake može da primi program konfigurisan da radi kao softver. U bloku 1404, sistem transportne trake može da odredi prvi deo programa da radi u hardveru, i drugi deo programa da radi kao softver. U bloku 1406, sistem transportne trake može da odredi, na osnovu prvog dela, više međusobno povezanih programabilnih operatorskih blokova, koji obuhvataju jednu ili više funkcija transformacije koje uzimaju ulazne podatke iz prethodne sabirnice podataka, izvode jednu ili više transformacija na ulaznim podacima, i izlazni podaci transformisanih ulaznih podataka preko izlazne podatkovne sabirnice. U bloku 1408, sistem transportne trake može da konfiguriše više međusobno povezanih operatorskih blokova koje je moguće reprogamirati da bi se izvršio jedan ili više procesora koje je moguće reprogramirati. U bloku 1410, sistem tipa transportne trake može da izvrši drugi deo preko jednog ili više front-end (prednji kraj) procesora. U bloku 1412, sistem tipa transportne trake može da pošalje prve podatke od jednog ili više front-end (prednji kraj) procesora do jednog ili više reprogramabilnih procesora. U bloku 1414, sistem tipa transportne trake može da izvrši prvi deo preko jednog ili više reprogramabilnih procesora. U bloku 1416, sistem tipa transportne trake može da pošalje druge podatke iz jednog ili više reprogramabilnih procesora na jedan ili više front-end (prednji kraj) procesora. U bloku 1418, sistem tipa transportne trake može da odredi, na osnovu prvih podataka i drugih podataka, podatke rezultata.
[0079] Sistem tipa transportne trake može da odredi, na osnovu računarske složenosti, prvi deo programa da radi u hardveru. Podaci dobijeni kao rezultat mogu biti rezultat izvršavanja programa. Drugi podaci mogu da budu izvedeni iz prvih podataka na osnovu jedne ili više transformacija. Podaci dobijeni kao rezultat mogu da budu izvedeni iz drugih podataka, i drugi podaci mogu da budu izvedeni iz prvih podataka. Jedan ili više reprogramabilnih procesora može da bude oblasno-programabilna logička kapija (FPGA) programabilnog logičkog kola. Slanje prvih podataka od jednog ili više font-end (prednji kraj) procesora na jedan ili više reprogamabilnih procesora može dodatno da obuhvati slanje prvih podataka, preko sabirnice proširenja, od jednog ili više front-end (prednji kraj) procesora na jedan ili više reprogramabilnih procesora. Prijem programa konfigurisanog da radi kao softver može još da obuhvati kompajliranje programa u izvršiv softverski kod, konfiguraciju hardvera, i komunikacioni kod za prenos podataka između izvršivog softverskog koda i konfiguracije hardvera.
[0080] [0049] Procesor tipa transportne trake može da obuhvati ulaznu podatkovnu sabirnicu, više međusobno povezanih reprogramabilnih operatorskih blokova, i izlaznu podatkovnu sabirnicu. Više međupovezanih reprogramabilnih operatorskih blokova može da obuhvati ulaznu podatkovnu sabirnicu, prvog reprogramabilnog operatorskog bloka, spojenu na izlaznu podatkovnu sabirnicu, drugog reprogramabilnog operatorskog bloka, ili ulaznu podatkovnu sabirnicu; izlaznu podatkovnu sabirnicu, prvog reprogramabilnog operatorskog bloka, spojenu na ulaznu podatkovnu sabirnicu trećeg reprogramabilnog operatorskog bloka, ili izlaznu podatkovnu sabirnicu; i jednu ili više funkcija transformacije koje uzimaju ulazne podatke od prve podatkovne sabirnice, izvode jednu ili više transformacija na ulaznim podacima, i izlaze transformisanih ulaznih podataka preko izlazne podatkovne sabirnice.
[0081] Širina sabirnice više međupovezanih reprogramabilnih reprogamabilnih operatorskih blokova ne mora da budu ista. Izlaz naknadnog bloka može da bude ulaz prethodnog bloka. Drugi reprogamabilan operatorski blok i treći reprogamabilan operatorski blok mogu da budu isti. Treći reprogamabilan operatorski blok može da bude pre prvog reprogamabilnog operatorskog bloka u redosledu izvršavanja. Procesor tipa transportne trake može još da obuhvati interfejs programiranja konfigurisan da primi instrukcije za stvaranje više međupovezanih reprogramabilnih operatorskih blokova.
[0082] Sistem za obradu podataka može da obuhvati više procesora i funkciju upravljanja, pri čemu se funkcija upravljanja konfiguriše da dodeli podatke svakom procesoru. Procesor tipa transportne trake može da obuhvati ulaznu podatkovnu sabirnicu, više međusobno povezanih reprogramabilnih operatorskih blokova, i izlaznu podatkovnu sabirnicu. Više međupovezanih reprogramabilnih operatorskih blokova može da obuhvati ulaznu podatkovnu sabirnicu, prvog reprogramabilnog operatorskog bloka, spojenu na izlaznu podatkovnu sabirnicu, drugog reprogramabilnog operatorskog bloka, ili ulaznu podatkovnu sabirnicu; izlaznu podatkovnu sabirnicu, prvog reprogramabilnog operatorskog bloka, spojenu na ulaznu podatkovnu sabirnicu trećeg reprogramabilnog operatorskog bloka, ili izlaznu podatkovnu sabirnicu; i jednu ili više funkcija transformacije koje uzimaju ulazne podatke od prve podatkovne sabirnice, izvode jednu ili više transformacija na ulaznim podacima, i izbacuju transformisane ulazne podatke preko izlazne podatkovne sabirnice.
[0083] Funkcija upravljanja može još da se konfiguriše tako da rekonfiguriše više međupovezanih reprogamabilnih operatorskih blokova. Funkcija upravljanja može da obuhvati instrukcije za skladištenje u memoriji da bi se stvorilo više međupovezanih reprogramabilnih operatorskih blokova od više procesora. Sistem iz patentnog zahteva može još da obuhvati najmanje jedan front-end (prednji kraj) procesor sa arhitekturom drugačijom od arhitekture više procesora. Najmanje jedan front-end (prednji kraj) procesor može da bude neki procesor opšte namene. Funkcija upravljanja može da obuhvati: siguran interfejs konfigurisan da primi promene konfiguracije; i nesiguran interfejs konfigurisan da dodeli podatke na jedan ili više procesora od više procesora.
[0084] SL.15 je dijagram bloka koji ilustruje komponente, prema nekim izvođenjima datim kao primeri, može da pročita instrukcije sa mašinski čitljivog ili računarski čitljivog medijuma (npr. mašinski čitljiv medijum za skladištenje podataka) i izvede bilo koju jednu ili više od ovde razmatranih metodologija. Specifično, SL.15 pokazuje dijagramsku predstavu hardverskih resursa 1500 uključujući jedan ili više procesora (ili procesorskih jezgara) 1510, jedan ili više
[0087] 1
[0088] memorijskih uređaja 1520, i jedan ili više komunikacionih resursa 1530, od kojih je svaki komunikativno spojen preko sabirnice 1540.
[0089] Procesori 1510 (npr. centralna procesorska jedinica (CPU), redukovani instrukcioni niz računarskog (RISC) procesora, složeni instrukcioni niz računarskog (CISC) procesora, grafička procesorska jedinica (GPU), digitalni signalni procesor (DSP) kao što je procesor osnovnog opsega, integrisano kolo specifične namene (ASIC), integrisano kolo integrisana kola za radio frekvencije (RFIC), još jedan procesor, ili bilo koja pogodna kombinacija navedenih) mogu da obuhvate, na primer, procesor 1512 i procesor 1514. Uređaji 1520 za memorisanje/skladištenje mogu da obuhvate glavnu memoriju, disk za skladištenje, ili bilo koju pogodnu kombinaciju navedenih.
[0090] Komunikacioni resursi 1530 mogu da obuhvate međuvezne komponente i/ili komponente mrežnog interfejsa ili druge pogodne uređaje da komuniciraju sa jednim ili više perifernih uređaja 1504 i/ili jednu ili više baza podataka 1506 preko mreže 1508. Na primer, komunikacioni resursi 1530 mogu da obuhvate žičane komponente za komunikaciju (npr. za spajanje preko univerzalne serijske sabirnice (USB)), komponente za komunikaciju mobilnim, komponente za komunikaciju kratkog polja (NFC), Bluetooth® komponente (npr., Bluetooth® male energije), Wi-Fi® komponente, i druge komponente komunikacije.
[0091] Instrukcije 1550 mogu da obuhvate softver, program, aplikaciju, aplet, app, ili drugi izvršiv kod da bi se prouzrokovalo da barem neki od procesora 1510 izvede bilo koju od ili više metodologija koje su ovde razmatrane. Instrukcije 1550 mogu da borave, potpuno ili delimično, unutar barem jednog od procesora 1510 (npr. unutar procesorske sakrivene (keš) memorije), uređaje 1520 za memorisanje/skladištenje, ili bilo koja pogodna kombinacija navedenih. Pored toga, bilo koji deo instrukcija 1550 može da se prenese na hardverske resurse 1500 iz bilo koje kombinacije perifernih uređaja 1504 i/ili baza podataka 1506. U skladu sa tim, memorija procesora 1510, uređaji 1520 za memorisanje/skladištenje, periferni uređaji 1504, i baze podataka 1506 su primeri računarom čitljivih medija (čitljivih na računaru) i mašinski čitljivih medija.
[0092] Kako je ovde korišćeno, pojam "kolo" može da se odnosi na, da bude deo, ili da obuhvati integrisano kolo specifične namene (ASIC), elektronsko kolo, procesor (deljeno, namensko, ili grupno), i/ili memoriju (deljenu, namensku, ili grupnu) koji izvršavaju jedan ili više programa softvera ili firmvera (upravljačkog softvera), kombinatorno logičko kolo, i/ili druge pogodne hardverske komponente koje obezbeđuju opisanu funkcionalnost. U nekim izvođenjima, kolo može da bude implementirano u, ili funkcije povezane sa kolom mogu da budu implementirane pomoću, jednog ili više modula softvera ili modula firmvera (upravljačkog softvera). U nekim izvođenjima, kolo može da obuhvati logiku, barem delimično funkcionalnu u hardveru.
[0093] [0058] Izvođenja i implementacije ovde opisanih sistema i postupaka mogu da obuhvate različite operacije, koje mogu da budu u obliku izvedenom u mašinski izvršivim instrukcijama koje treba izvršiti pomoću računarskog sistema. Računarski sistem može da obuhvati jedan ili više računara opšte namene ili računara specijalne namene (li druge elektronske uređaje). Računarski sistem može da obuhvati hardverske komponente koje obuhvataju specifičnu logiku za izvođenje operacija ili mogu da obuhvate kombinaciju hardvera, softvera, i/ili firmvera (upravljačkog softvera).
[0094] Računarski sistemi i računari u nekom sistemu računara mogu da budu povezani preko mreže. Pogodne mreže za konfiguraciju i/ili upotrebu kako je opisano ovde obuhvataju jednu ili više lokalnih računarskih mreža (LAN), računarske mreže širokog područja, mreže metro/gradskog područja, i/ili Internet ili IP mreže, kao što je svetska internet mreža (World Wide Web), privatni internet, sigurna internet mreža sa dodatom vrednošću, virtuelna privatna mreža, ekstranet, intranet, ili čak samostojeće mašine koje komuniciraju sa drugim mašinama fizičkim transportom medija. Specifično, pogodna mreža može da bude formirana iz delova ili celovitosti dve ili više drugih mreža, uključujući mreže koje koriste različite hardverske i mrežne komunikacione tehnologije.
[0095] Jedna pogodna mreža obuhvata server i jednog ili više klijenata; druge pogodne mreže mogu da obuhvate druge kombinacije servera, klijenata, i/ili ravnopravnih čvorova, i dati računarski sistem može da funkcioniše kao klijent i kao server. Svaka mreža obuhvata najmanje dva računara ili računarska sistema, kao što su server i/ili klijenti. Računarski sistem može da obuhvati radnu stanicu, laptop računar, odvojiv mobilni računar, server, glavni računar (mejnfrejm), skup računara, takozvani ''mrežni računar'' ili ''tanki klijent'', tablet, pametni telefon, lični digitalni asistent ili drugi računarski uređaj za dlan, “pametni” potrošački elektronski uređaj ili aparat, medicinski uređaj, ili kombinaciju navedenih.
[0096] Pogodne mreže mogu da obuhvate komunikaciioni ili mrežni softver, kao što je softver dostupan iz kompanije Novell®, Microsoft®, i drugih prodavaca, ili mogu da rade korišćenjem TCP/IP, SPX, IPX protokola, i drugih protokola preko upredenih parova kablova, koaksijalnih kablova, ili kablova sa optičkim vlaknima, telefonske linije, radio talase, satelite, mikrotalasne releje, modulisane vodove naizmenične struje (AC), fizički transfer fizičkih medija, i/ili druge 'žice'' za prenos podataka poznate stručnjacima u ovoj oblasti. Mreža može da obuhvati manje mreže i/ili da bude poveziva na druge mreže kroz mrežni prolaz ili sličan mehanizam.
[0097] [0062] Različite tehnike, ili izvesni aspekti ili njihovi delovi mogu da uzmu oblik programskog koda (tj. naredbe) u obliku izvedenom u opipljivim nosačima za skladištenje podataka, kao što su flopi diskete, CD-ROM-ovi, tvrdi drajvovi, magnetne ili optičke kartice, poluprovodnički disk (memorijski uređaji u čvrstom stanju), neprelazni na računaru čitljiv skladišni medij, ili bilo koji drugi mašinski čitljiv skladišni medij pri čemu, kada je programski kod učitan u i izvršen pomoću mašine, kao što je računar, mašina postaje aparat za praktikovanje različitih tehnika. U slučaju izvršavanja programskog koda na programabilnim računarima, računarski uređaj može da obuhvati procesor, skladišni medij čitljiv pomoću procesora (uključujući isparljivu i neisparljivu elemente memorije i /ili elemente skladištenja), najmanje jedan ulazni uređaj, i najmanje jedan izlazni uređaj. Nestalna i stalna memorija i/ili elementi za skladištenje mogu da budu RAM, EPROM, USB (univerzalna serijska sabirnica) memorija, optički disk uređaj, tvrdi disk (HDD), ili drugi medij za skladištenje elektronskih podataka. Jedan ili više programa koji mogu da implementiraju ili koriste različite ovde opisane tehnike mogu da koriste programski interfejs aplikacije (API), komande za višestruku upotrebu, i slično. Takve programe je moguće implementirati u proceduralnom i objektno-orijentisanom programskom jeziku visokog nivoa da bi se komuniciralo sa računarskim sistemom. Međutim, programi mogu da budu implementirani u asembleru ili mašinskom jeziku, po želji. U svakom slučaju, jezik može da bude preveden preko kompajlera (koji uzima ceo program) kompajliran ili interpretera (koji uzima jednu liniju koda), i kombinovan sa implementacijama hardvera (softverski kod ili projektovanje specifičnog fizičkog kola za izvršavanje algoritma a zavise od specifičnih zahteva sistema kao što je visoka performansa, specijalizovana funkcionalnost ili ograničenja u pogledu troškova).
[0098] Svaki računarski sistem obuhvata jedan ili više procesora i/ili memorije; računarski sistemi mogu da obuhvate i različite ulazne uređaje i/ili izlazne uređaje. Procesor može da obuhvati uređaj opšte namene, kao što je Intel®, AMD®, ili drugi “standardni’ (za razliku od prilagođavanja postojećeg za izvršavanje radnog opterećenja) mikroprocesor. Procesori mogu da obuhvate procesorske uređaje specijalne namene, kao što je ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD, ili drugi prilagođeni ili programabilni uređaj. Memorija može da obuhvata statičku RAM, dinamičku RAM, fleš memoriju, jedan ili više bistabilnih kola (flip-flop), ROM, CD-ROM, DVD, disk, traku, ili magnetni, optički, ili drugi medij računarskog skladištenja. Ulazni uređaji mogu da obuhvate tastaturu, miš, ekran na dodir, svetlosnu olovku, tablet, mikrofon, senzor, ili drugi hardver sa pratećim firmverom i/ili softverom. Izlazni uređaji mogu da obuhvate monitor ili drugo za prikaz, štampač, sintisajzer govora ili teksta, prekidač (konzolu), signalnu liniju, ili drugi hardver sa pratećim firmverom i/ili softverom.
[0099] Treba razumeti da brojne funkcionalne jedinice opisane u ovoj specifikaciji mogu da budu implementirane kao jedna ili više komponenata, što je pojam korišćen da se preciznije naglasi njihova nezavisnost implementacije. Na primer, komponenta može da bude implementirana kao hardversko kolo koje obuhvata prilagođena kola za integraciju veoma visokog stepena (VLSI) ili logičke nizove, ili standardne poluprovodnike kao što su logički čipovi, tranzistori, ili druge diskretne komponente. Komponenta može takođe da bude implementirana u programabilnim hardverskim uređajima kao što su programabilni nizovi kapija, programabilno logičko polje, programabilni logički uređaji, i slično.
[0100] Komponente mogu takođe da budu implementirane u softver za izvršavanje pomoću različitih tipova procesora. Identifikovana komponenta izvršivog koda može, na primer, da obuhvati jedan ili više fizičkih ili logičkih blokova računarskih naredbi, koje mogu, na primer, da budu organizovane kao objekat, procedura, ili funkcija. Bez obzira na to, izvršni fajlovi identifikovane komponente ne moraju da budu fizički smešteni zajedno, ali mogu da sadrže
[0103] 1
[0104] različite instrukcije sačuvane na različitim lokacijama koje, kada se spoje logički, obuhvataju komponentu i dostižu navedenu svrhu za tu komponentu.
[0105] Svakako, komponenta izvršivog koda može da bude pojedinačna naredba, ili više naredbi, i može čak da bude unutar nekoliko različitih segmenata koda, između različitih programa, i preko nekoliko memorijskih uređaja. Slično tome, operatorske podatke je moguće identifikovati i ilustrovati ovde unutar komponenata, i mogu da budu u obliku izvedenom u bilo kojoj pogodnoj formi i organizovani unutar bilo kog pogodnog tipa strukture podataka.
[0106] Operativni podaci mogu da budu prikupljeni kao pojedinačni skup podataka, ili mogu da budu smešteni na različitim lokacijama na različitim uređajima za skladištenje, i mogu da postoje, barem delimično, prosto kao elektronski signali na sistemu ili mreži. Komponente mogu da budu pasivne ili aktivne, uključujući agense koji rade da bi se izvele željene funkcije.
[0107] Nekoliko aspekata opisanih izvođenja će biti ilustrovano kao softverski moduli ili komponente. Kako je ovde korišćeno, softverski modul ili komponenta može da obuhvati bilo koji tip računarske instrukcije ili računarom izvršivog koda smešten unutar memorijskog uređaja. Softverski modul može, na primer, da obuhvati jedan ili više fizičkih ili logičkih blokova računarskih instrukcija, koje mogu da budu organizovane kao rutina, program, objekat, komponenta, struktura podataka, itd. koje izvode jedan ili više zadataka ili implementiraju specifične tipove podataka. Razume se da softverski modul može biti implementiran u hardver i/ili firmver umesto ili pored implementacije softverom. Jedan ili više funkcionalnih modula opisanih ovde može da bude podeljeno u podmodule i/ili kombinovano u pojedinačne ili mali broj modula.
[0108] U nekim izvođenjima, specifičan modul softvera može da obuhvati različite naredbe sačuvane na različitim lokacijama memorijskog uređaja, različitih memorijskih uređaja, ili različitih računara, koji zajedno implementiraju opisanu funkcionalnost modula. Svakako, modul može da obuhvati pojedinačnu naredbu, ili više naredbi, i može čak da bude unutar nekoliko različitih segmenata koda, između različitih programa, i na nekoliko memorijskih uređaja. Neka izvođenja mogu da budu primenjena u distribuiranom računarskom okruženju gde se zadaci izvode pomoću daljinskog procesnog uređaja povezanog kroz komunikacionu mrežu. U distribuiranom računarskom okruženju, moduli softvera mogu da budu smešteni u lokalnim i/ili daljinskim memorijskim uređajima. Pored toga, podaci koji se vezuju ili vraćaju (učitavaju) zajedno u zapisu baze podataka mogu da budu smešteni u samom memorijskom uređaju, ili preko nekoliko memorijskih uređaja, i mogu da budu povezani u oblastima zapisa u bazi podataka širom mreže.
[0109] Upućivanje u celom ovom dokumentu na “neki primer” znači da specifično svojstvo, struktura, ili karakteristika opisana u vezi sa primerom jeste obuhvaćeno u najmanje jedno izvođenje iz ovog pronalaska. Samim tim, pojavavljivanja fraze 'na nekom primeru' na različitim mestima kroz ovaj dokument ne odnose se neophodno svuda na isto izvođenje.
[0110] Kako je ovde korišćeno, više stavki, strukturnih elemenata, kompozicionih elemenata, i/ili materijala može da bude predstavljeno u zajedničkom spisku, ako je tako praktično.
[0111] Međutim, ove spiskove treba tumačiti kao da je svaki član spiska pojedinačno identifikovan kao poseban i jedinstven član. Pored toga, različita izvođenja i primeri ovog pronalaska mogu da se pominju ovde zajedno sa alternativama za njihove različite komponente. Jasno je da takva izvođenja, primere, i alternative treba tumačiti kao odvojene i autonomne predstave ovog pronalaska.
[0112] Pored toga, opisana svojstva, strukture, ili karakteristike mogu da budu kombinovani na bilo koji pogodan način u jednom ili više izvođenja. U sledećem opisu, dati su brojni specifični detalji, kao što su primeri materijala, frekvencije, veličine, dužine, širine, oblici, itd., da se obezbede kroz razumevanje izvođenja ovog pronalaska. Stručnjak u relevantnoj oblasti će uvideti međutim, da pronalazak može da bude primenjen bez jednog ili više specifičnih pojedinosti, ili drugih postupaka, komponenata, materijala, itd. U drugim primerima, poznate strukture, materijale, ili operacije nisu prikazane ili opisane detaljno da bi se izbeglo stvaranje nejasnoća delova ovog pronalaska.
[0113] Treba razumeti da ovde opisani sistemi obuhvataju opise specifičnih izvođenja. Ova izvođenja mogu da budu kombinovana u pojedinačne sisteme, delimično kombinovana u druge sisteme, podeljena u više sistema ili podeljena ili kombinovana na druge načine. Pored toga, razmatra se da parametri/atributi/aspekti/itd. jednog od izvođenja mogu da se koriste u još jednom izvođenju. Parametri/atributi/aspekti /itd, su samo opisani u jednom ili više izvođenja jasnoće radi, i prepoznaje se da parametri/atributi/aspekti/itd, mogu da se kombinuju sa ili da se zamene za parametre/atribute/aspekte /itd, još jednog izvođenja osim ako ovde nije precizirano da to nije obuhvaćeno i da se za to ne traži zaštita.
[0114] Iako se prethodno opisuje detaljnije u svrhe jasnoće, jasno je da izvesne promene i modifikacije mogu da se urade bez udaljavanja od njegovih principa. Treba napomenuti da postoje brojni alternativni načini implementiranja postupaka i aparata opisanih ovde. Prema tome, ova izvođenja treba da se smatraju ilustrativnim a ne ograničavajućim, i ovaj pronalazak ne treba ograničiti na ovde date detalje.
[0115] Stručnjaci u ovoj oblasti će uvideti da su moguće brojne promene u pojedinostima gore opisanih izvođenja bez udaljavanja od temeljnih principa ovog pronalaska. Obim ovog pronalaska treba, samim tim, da bude određen samo prema patentnim zahtevima u nastavku.
[0118] 1

Claims (18)

1. Patentni zahtevi
1. Postupak konfigurisanja procesora tipa transportne trake, pri čemu taj postupak obuhvata:
prijem (1402) programa konfigurisanog da radi kao softver;
određivanje (1404) prvog dela programa da radi u hardveru na osnovu računarske složenosti, i drugog dela progama da radi kao softver;
određivanje (1406), na osnovu prvog dela, više međupovezanih reprogramabilnih hardverskih operatorskih blokova (210, 212, 214, 216, 218), koji obuhvata jednu ili više funkcija transformacije koje uzimaju ulazne podatke iz prethode podatkovne sabirnice, izvodi jednu ili više transformacija na ulaznim podacima, i izvozi transformisane ulazne podatke preko ulazne podatkovne sabirnice;
naznačene time što je procesor tipa transportne trake hardverska platforma (208) koju je moguće rekonfigurisati da izvrši međupovezivanje lanca hardverskih operatorskih blokova (210, 212, 214, 216, 218) koje je moguće ponovo rekonfigurisati tako da manipulišu podacima kako se podaci pomeraju niz lanac, i time što taj postupak još obuhvata:
konfigurisanje (1408) više međupovezanih reprogramabilnih hardverskh operatorskih blokova (210, 212, 214, 216, 218) tako da se izvrše na jednom ili više reprogramabilnih procesora;
izvršavanje (1410) drugog dela preko jednog ili više procesora prednjeg kraja sa arhitekturom drugačijom od jednog ili više reprogramabilnih procesora koje je moguće reprogramirati;
slanje (1412) prvih podataka iz jednog ili više procesora prednjeg kraja na jedan ili više reprogramabilnih procesora;
izvršavanje (1414) prvog dela preko jednog ili više reprogramabilnih procesora; slanje (1416) drugih podataka sa jednog ili više reprogramabilnih procesora na jedan ili više procesora prednjeg kraja, pri čemu se drugi podaci izvode iz prvih podataka;
i
određivanje (1418) rezultujućih podataka izvedenih iz drugih podataka.
2. Postupak iz patentnog zahteva 1, pri čemu rezultujući podaci jesu rezultat izvršavanja programa.
3. Postupak iz patentnog zahteva 1, pri čemu drugi podaci jesu izvedeni iz prvih podataka na osnovu jedne ili više transformacija.
4. Postupak iz patentnog zahteva 1, pri čemu jedan ili više reprogramabilnih procesora jeste oblasno-programabilna logička kapija (FPGA).
5. Postupak iz patentnog zahteva 1, pri čemu slanje prvih podataka od jednog ili više front-end (prednji kraj) procesora na jedan ili više reprogamabilnih procesora dodatno obuhvata slanje prvih podataka, preko sabirnice proširenja od jednog ili više procesora prednjeg kraja na jedan ili više reprogramabilnih procesora.
6. Postupak iz patentnog zahteva 1, pri čemu prijem programa konfigurisanog da radi kao softver može još da obuhvati kompilovanje programa u izvršiv softverski kod, konfiguraciju hardvera, i komunikacioni kod za prenos podataka između izvršivog softverskog koda i konfiguracije hardvera.
7. Procesor tipa transportne trake, naznačen time što procesor tipa transportne trake jeste hardverska platforma (218) koju je moguće rekonfigurisati da izvrši međupovezivanje lanca hardverskih operatorskih blokova (210, 212, 214, 216, 218) koje je moguće rekonfigurisati da manipulišu podacima kako se podaci pomeraju niz lanac, i time što taj procesor tipa transportne trake još obuhvata:
ulaznu podatkovnu sabirnicu;
više međusobno povezanih reprogramabilnih hardverskih operatorskih blokova (210, 212, 214, 216, 218) za manipulisanje podacima jer se podaci pomeraju niz lanac, pri čemu obuhvata:
ulaznu podatkovnu sabirnicu, prvog reprogramabilnog hardverskog operatorskog bloka, spojenog na izlaznu podatkovnu sabirnicu, drugog reprogramabilnog hardverskog operatorskog bloka, ili ulaznu podatkovnu sabirnicu;
izlaznu podatkovnu sabirnicu, prvog reprogramabilnog hardverskog operatorskog bloka, spojenu na ulaznu podatkovnu sabirnicu, trećeg reprogramabilnog hardverskog operatorskog bloka, ili izlaznu podatkovnu sabirnicu; i
jednu ili više funkcija transformacije koje uzimaju ulazne podatke iz prethodne podatkovne sabirnice, izvodi jednu ili više transformacija na ulaznim podacima, i izvozi transformisane ulazne podatke preko izlazne podatkovne sabirnice; i
izlaznu podatkovnu sabirnicu.
8. Procesor tipa transportne trake iz patentnog zahteva 7, pri čemu širina sabirnice više međupovezanih reprogramabilnih hardverskih operatorskih blokova (210, 212, 214, 216, 218) nije ista.
1
9. Procesor tipa transportne trake iz patentnog zahteva 7, pri čemu izlaz naknadnog bloka jeste ulaz prethodnog bloka.
10. Procesor tipa transportne trake iz patentnog zahteva 7, pri čemu drugi reprogramabilni hardverski operatorski blok i treći reprogramabilni hardverski operatorski blok jesu isti.
11. Procesor tipa transportne trake iz patentnog zahteva 7, pri čemu treći reprogramabilni hardverski operatorski blok jeste pre prvog reprogramabilnog hardverskog operatorskog bloka u redosledu izvršavanja.
12. Procesor tipa transportne trake iz patentnog zahteva 7, koji još obuhvata programski interfejs konfigurisan da primi naredbe za stvaranje više međupovezanih reprogramabilnih hardverskih operatorskih blokova (210, 212, 214, 216, 218).
13. Sistem za obradu podataka, koji još obuhvata:
više procesora tipa transportne trake prema patentnom zahtevu 7; i
funkciju upravljanja, pri čemu je funkcija upravljanja konfigurisana da dodeli podatke svakom procesoru tipa transportne trake.
14. Sistem iz patentnog zahteva 13, pri čemu funkcija upravljanja jeste još konfigurisana da rekonfiguriše više međupovezanih reprogramabilnih operatorskih blokova hardvera.
15. Sistem iz patentnog zahteba 13, pri čemu funkcija upravljanja obuhvata naredbe pohranjene u memoriji za stvaranje više međupovezanih reprogramabilnih operatorskih blokova (210, 212, 214, 216, 218) više procesora tipa transportne trake.
16. Sistem iz patentnog zahteva 13, koji još obuhvata najmanje jedan front-end (prednji kraj) procesor sa arhitekturom drugačijom od većine procesora tipa transportne trake.
17. Sistem iz patentnog zahteva 16, pri čemu najmanje jedan front-end (prednji kraj) procesor obuhvata neki procesor opšte namene.
18. Sistem iz patentnog zahteva 13, pri čemu funkcija upravljanja obuhvata:
osiguran interfejs konfigurisan da primi promene konfiguracije; i
neosiguran interfejs konfigurisan da dodeli podatke jednom ili više procesora od više procesora transportne trake.
1
RS20250997A 2019-09-06 2020-09-04 Sistemi, aparat, i postupci obrade tipa transportne trake RS67332B1 (sr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962896682P 2019-09-06 2019-09-06
EP20861554.2A EP4025966B8 (en) 2019-09-06 2020-09-04 Systems, apparatus, and methods of conveyor belt processing
PCT/US2020/070502 WO2021046581A1 (en) 2019-09-06 2020-09-04 Systems, apparatus, and methods of conveyor belt processing

Publications (1)

Publication Number Publication Date
RS67332B1 true RS67332B1 (sr) 2025-11-28

Family

ID=74852611

Family Applications (1)

Application Number Title Priority Date Filing Date
RS20250997A RS67332B1 (sr) 2019-09-06 2020-09-04 Sistemi, aparat, i postupci obrade tipa transportne trake

Country Status (17)

Country Link
US (1) US11704262B2 (sr)
EP (1) EP4025966B8 (sr)
JP (1) JP7752422B2 (sr)
KR (1) KR20220058612A (sr)
CN (1) CN114730173B (sr)
AU (1) AU2020342665B2 (sr)
CA (1) CA3153033A1 (sr)
ES (1) ES3045136T3 (sr)
GB (2) GB2625471B (sr)
HR (1) HRP20251218T1 (sr)
HU (1) HUE073134T2 (sr)
IL (2) IL291141B2 (sr)
PH (1) PH12022550532A1 (sr)
PL (1) PL4025966T3 (sr)
RS (1) RS67332B1 (sr)
SM (1) SMT202500450T1 (sr)
WO (1) WO2021046581A1 (sr)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5299320A (en) * 1990-09-03 1994-03-29 Matsushita Electric Industrial Co., Ltd. Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
JP3636277B2 (ja) 1998-09-11 2005-04-06 富士ゼロックス株式会社 情報処理システム
US7266490B2 (en) * 2000-12-28 2007-09-04 Robert Marc Zeidman Apparatus and method for connecting hardware to a circuit simulation
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US7010773B1 (en) * 2001-11-19 2006-03-07 Cypress Semiconductor Corp. Method for designing a circuit for programmable microcontrollers
GB2382175A (en) * 2001-11-20 2003-05-21 Hewlett Packard Co Reconfigurable processor
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7844758B1 (en) 2003-06-18 2010-11-30 Advanced Micro Devices, Inc. Dynamic resource allocation scheme for efficient use of a queue
KR101814221B1 (ko) 2010-01-21 2018-01-02 스비랄 인크 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치
US9052900B2 (en) * 2013-01-29 2015-06-09 Oracle International Corporation Serdes fast retrain method upon exiting power saving mode
JP6598432B2 (ja) 2014-06-24 2019-10-30 キヤノン株式会社 画像処理装置、その制御方法およびプログラム
JP2017059084A (ja) 2015-09-18 2017-03-23 三菱日立パワーシステムズ株式会社 演算論理の並列処理方法および並列処理実行装置
JP6743568B2 (ja) * 2016-08-09 2020-08-19 富士通株式会社 制御装置、情報処理システム、プログラム及び情報処理方法
WO2018075696A1 (en) 2016-10-18 2018-04-26 Src Labs, Llc Fpga platform as a service (paas)
US11487445B2 (en) * 2016-11-22 2022-11-01 Intel Corporation Programmable integrated circuit with stacked memory die for storing configuration data
US10793369B2 (en) * 2017-07-12 2020-10-06 A9.Com, Inc. Conveyor system for autonomous robot
US20190105800A1 (en) * 2017-10-06 2019-04-11 Alex Xie Method and apparatus for forming marbelized engineered stone
CN117682287A (zh) * 2017-12-22 2024-03-12 弹性钢接头公司 用于监测输送机系统的装置和方法
US20190315570A1 (en) * 2018-04-17 2019-10-17 Walmart Apollo, Llc Dynamic conveyor belt item alignment system
US10611577B2 (en) * 2018-06-05 2020-04-07 Caterpillar Paving Products Inc. Cold planer with self-adjusting conveyor system
US11420828B1 (en) * 2020-12-11 2022-08-23 Amazon Technologies, Inc. System and method for item singulation

Also Published As

Publication number Publication date
IL314457B1 (en) 2025-09-01
WO2021046581A1 (en) 2021-03-11
EP4025966C0 (en) 2025-07-16
AU2020342665A1 (en) 2022-03-24
EP4025966B8 (en) 2025-09-17
US11704262B2 (en) 2023-07-18
PL4025966T3 (pl) 2026-01-05
US20220334987A1 (en) 2022-10-20
PH12022550532A1 (en) 2024-05-13
JP2022552606A (ja) 2022-12-19
GB2603078A (en) 2022-07-27
GB2603078B (en) 2024-05-29
IL291141A (en) 2022-05-01
ES3045136T3 (en) 2025-11-27
JP7752422B2 (ja) 2025-10-10
EP4025966B1 (en) 2025-07-16
AU2020342665B2 (en) 2025-10-09
GB2625471B (en) 2024-09-11
IL291141B1 (en) 2025-07-01
IL314457B2 (en) 2026-01-01
EP4025966A1 (en) 2022-07-13
GB202204584D0 (en) 2022-05-11
IL291141B2 (en) 2025-11-01
IL314457A (en) 2024-09-01
HRP20251218T1 (hr) 2025-12-05
KR20220058612A (ko) 2022-05-09
CN114730173A (zh) 2022-07-08
CA3153033A1 (en) 2021-03-11
GB202404004D0 (en) 2024-05-01
CN114730173B (zh) 2025-07-25
SMT202500450T1 (it) 2026-01-12
EP4025966A4 (en) 2024-07-17
GB2625471A (en) 2024-06-19
HUE073134T2 (hu) 2026-01-28

Similar Documents

Publication Publication Date Title
US11750179B2 (en) Quantum controller with modular and dynamic pulse generation and routing
US10936942B2 (en) Apparatus and mechanism for processing neural network tasks using a single chip package with multiple identical dies
CN110046704A (zh) 基于数据流的深度网络加速方法、装置、设备及存储介质
KR102668340B1 (ko) 설정가능한 하드웨어 런타임 최적화
US8650582B2 (en) Processing data communications messages with input/output control blocks
CN103646005B (zh) 基于微核的可重构处理器、调度设备及其方法
RS67332B1 (sr) Sistemi, aparat, i postupci obrade tipa transportne trake
EA044257B1 (ru) Системы, устройство и способы конвейерной обработки
EP4127907B1 (en) Method and system for optimizing data transfer from one memory to another memory
Heinz et al. Supporting on-chip dynamic parallelism for task-based hardware accelerators
US10387155B2 (en) Controlling register bank access between program and dedicated processors in a processing system
RU2819403C1 (ru) Векторное вычислительное ядро
US20250378333A1 (en) Method and computing system for modifying architecture of deep-learning model
Sano et al. Hardware Algorithms
WO2025092840A1 (zh) 混合整数规划milp问题求解方法及装置
Villalobos et al. A Bridging Layer for Run-Time Reconfigurable Hardware Operating Systems
US20180189480A1 (en) Turing completeness disabling
Gebrewahid et al. Programming real-time image processing for manycores in a high-level language
Middendorf et al. Perspectives of extending runtime reconfigurable computing to the enterprise application domain