Me, jotka olimme mukana teollisuudessa silloin, kun 80-luvulla mikroprosessoritekniikka haki suuntiaan, monien tyylikkäiden ja nerokkaiden arkkitehtuurien kuollessa lyhyiden lupausten jälkeen ja x86-kummajaisen jäädessä elämään teollisuusstandardina, me muistamme myös InMossin Transpuutterit. Ne olivat todellisia rinnakkaisprosessoreitta, joissa oli raudalla toteutettu säikeiden skedulointi ja suorittimet saattoi kytkeä toisiinsa linkkejä, sarjaväyliä käyttäen. Sama Occam-kielellä tehty softa saattoi toimia ilman uudelleenkirjoitusta yhden suorittimen tai sadan suorittimen järjestelmässä, hyödyntäen rinnakkaislaskennan edut. Mutta transpuutterit kuolivat..
Nyt Inmossin arkkitehti David May on mukana XMOS Semiconductor-firmassa, joka on herättämässä vanhoja ajatuksia henkiin. "Software Defined Silicon" on hyvin transpuuttereiden kaltainen arkkitehtuuri, tarkoitettu sekä raakaan rinnakkaislaskentaan että korvamaan ASIC- ja FPGA-ratkaisuja IO-tietojen käsittelyssä. Yksi XCore-suoritin tukee kahdeksaa HW-skeduloitua säitettä ja IO-intensiisivisistä käskykantaa. Ohjelmointi tapahtuu XC-kielellä tai standardi-C :lla. Useita suorittimia voidaan kytkeä yhteen XLINK-porteilla. Tässä voisi olla todellinen rauta AGI-spesiifiseen prosessointiin, superälyn aivoiksi. Koepiirejä luvataan tänä vuonna. Joko nyt tärppää?
http://www.xmos.com/SDS-Tech.pdf
Nyt Inmossin arkkitehti David May on mukana XMOS Semiconductor-firmassa, joka on herättämässä vanhoja ajatuksia henkiin. "Software Defined Silicon" on hyvin transpuuttereiden kaltainen arkkitehtuuri, tarkoitettu sekä raakaan rinnakkaislaskentaan että korvamaan ASIC- ja FPGA-ratkaisuja IO-tietojen käsittelyssä. Yksi XCore-suoritin tukee kahdeksaa HW-skeduloitua säitettä ja IO-intensiisivisistä käskykantaa. Ohjelmointi tapahtuu XC-kielellä tai standardi-C :lla. Useita suorittimia voidaan kytkeä yhteen XLINK-porteilla. Tässä voisi olla todellinen rauta AGI-spesiifiseen prosessointiin, superälyn aivoiksi. Koepiirejä luvataan tänä vuonna. Joko nyt tärppää?
http://www.xmos.com/SDS-Tech.pdf
Vastaukset 10
Vanhimmat
Muituttaa ehkä etäisesti Berkeleyn BEE2 systeemia.
http://bee2.eecs.berkeley.edu/
BEE2 näyttää vain Xilixin standardi Virtex-piirejä soveltavasta signaalinkäsittelyalustalta. XCore on (esim toisin kuin vektorilaskentaan tarkoitettu PS3:n Cell-prosessori) sinänsä vaatimaton standardiprosessori, jolla on erikoisominaisuuksia reaaliaikaisen tapahtumakäsittelyn ja rinnakkaisuuden suhteen. Tulevissa julkistuksissa (parin vuoden päästä ehkä) näitä coreja pakataan piirille satoja ja laskentaa voi laajentaa suurelle joukolle toisiinsa linkitettyjä piirejä. Vielä tarvitaan piirille saumaton ulkoisen muistin tuki, niin mielen mallintamiseen sopiva rinnakkaisarkkitehtuuri olisi valmis.
Tavallisissa PC-luokan yleisprosessoreissa (x86, power-PC, ARM) rinnakkaislaskenta on työlästä ja vaikeasti ohjelmoitavaa. Cell-prosessorissa on mielen ohjelmoinnissa hyödytöntä vektorilaskentaa. XCoren kaltainen tapahtumienkäsittelyä ja erittäin laajaa rinnakkaislakentaa (tarvitaan miljoonia tai miljardeja säikeitä) tukeva arkkitehtuuri on mielestäni ensimmäinen laatuaan (transpuutterin jälkeen, mutta transpuutterillakin oli ylitehokas laskentakyky). Vaikka se on aluksi liikeidealtaan tarkoitettu halpaan kulutuselektroniikaan, niin se tuntuu lupaavalta.
Prosessorikehitys on jäänyt tekoälyn kannalta 80-luvulle. Kun siihen aikaan jopa kotimikrojen näytötkin vilkkuivat taajaan koska myös näyttömuistia käytettiin laskemiseen, nyt bitit suorastaan makaavat muistipaikoissaan. Siksi nykyinen "olio-ohjelmointi" on hyvin kuvaavaa sen ajan "funktio-ohjelmointiin" verrattuna. (funktio=toiminto)
Koneiden tietoisuus kyllä kasvaa voimakkaasti mutta niiden äly ei ole sama asia. Hahmomatsaus ja hahmorakennematsaus on vielä kansalaisen näkökulmasta lapsen kengissä. Esimerkiksi internethaut eivät näytä kehittyvän. Webissä EI voi hakea piirtämällä eikä mikrofooniin äännähtelemällä. Kuitenkin wikipedia, joka sisältää staattista ihmisten hallitsemaa tietoa mistä luonnollisella kielellä, kasvaa nopeasti. Muisti kasvaa eksponentiaalisesti laskentatehoonkin verrattuna ja ihmisille on kehittynyt taidot käyttää näitä muisteja tehokkaasti. Myös mobiililaitteissa voi olla tiedonesitys vähäpätöisillekin asioille. Tässä kehitys tulee jatkumaan huikeana seuraavan 10 vuoden aikana.
Onneksi näin. Muistikehitys samalla tapaa korvaa ihmistä ja koneet eivät ryöstäydy käsistä. Olen samaa mieltä että AGI:n kannalta keskusmuistiakin on vielä liian vähän. Onko tehoa kyetty rajoittamaan tietoisesti, vai ovatko kuluttajavalinnat (x86) pelastanut meidät hallitsemattomien prosessorien kynsistä.
Nyt jo 12 gigaa:
http://www.tietoviikko.fi/doc.te?f_id=1286487&s=r
Silloinhan mikä tahansa, kuten valokatkaisin tai jalkine, voi toimia oman täydellisen käyttölogin kirjoittajana ja dataa voidaan käyttää tutkimuksissa ja tuotekehityksessä. Tehokasta vaikka käytettävyystutkimuksen kannalta.
Niinhän se on. Muistin tarve on itse asiassa suurempi kuin suoritustehon tarve, mutta vaikeinta on luoda toimiva arkkitehtuuri, joka yhdistää rinnakkaislaskennalla toteutetun suoritustehon saumattomasti "teranttisen" (siis 1000x suurempi kuin "giganttinen") suureen muistiin. Luonnollisesti muistikin on hajautettava kuten laskentakin. Lisäongelmana on, että tarvitaan sekä kestomuistia (esim flash) ja työmuistia (esim DDRSDRAM). Käytännössä molempia tarvitaan yhtä paljon, ehkä kymmeniä teratavuja. Parasta olisi, jos meillä olisi muistiteknologia, jolla olisi molempien ominaisuudet.
Mutta tällaista ei tarvita ihan lähivuosina, pian kylläkin.
Niin, tästä muistinkulutuksesta johtuen ohjelmointi on tullut käsitteellisemmäksi. Enää kun bittejä ei käsitellä sinällään vaan yhä korkeammalta tasolta. Siksi on fiksua ennustaa että 20 vuoden kuluttua peruskäyttäjä voi kommunikoida koneen kanssa melko luonnollisella kielellä. Onko se sitten jo tekoälyä.
Nyt peruskäyttäjän toimet rajoittuu "listojen" hallitsemiseen. Niitäkään ei voi niiden runsauden vuoksi väheksyä: Puhelimien nimimuistiot, sähköpostiviestien kokoelma, ohjelmalistat tallentavassa digiboxissa, selainten historialistat, mp3-soittimen listat... Usein listat ovat hierarkisiakin.
Tuota... AMD&ATI:lla on jo 16xcore-prosessorit täysin suunniteltuina... odottavat vaan mitä Intel tekee, joo minulla tietystin on kaikki datat ja koodit näistä..
- älä höpötä satanan joku muropaketin lukija..
Sinulla ei taida olla hajuakaan mistä Yusa aikoinaan kirjoitti ja mitä hän tarkoitti...
http://www.xmos.com/products
XMOS on pystyssä, toimittavat tuotteitaan, mutta en tiedä kuinka paljon. Uusia tuotteita, parempaa integraatioastetta tms, joita odotin 2008 alussa, ei ole tullut, ehkä on putkessa.. Todennäköisesti brittifirmalla on markkinointiongelmia, tuotteen etuja ei ymmärretä.
XMOS voisi ehkä ottaa mallia kilpailijastaan, Parallaxista:
http://www.parallax.com/ProductInfo/Microcontrollers/tabid/121/Default.aspx
joka tuntuu menestyksellisesti ottavan vauhtia harrastelijamarkkinoista, vaikka tuote on sopiva myös "ammattikäyttöön".
Sekä XMOS:n XS1, että Parallaxin P8X32A ovat hyvin halpoja "I/O-prosessoreita", joiden tavoitteena on korvata HW-ratkaisuita (esim FPGA) erittäin nopeavasteisella prosessoriarkkitehtuurilla. Yksinkertaisissa tuotteissa ei tarvita erillistä pääprosessoria (X86, ARM tms), mutta hivenenkin vaativampi laite vaatii erillisen 32-bittisen prosessorin ja paljon muistia.
XS1:ssä on yksi 32bittinen ydin, multithreading HW-tuki ja HW-tuki monien piirien linkittämiseen.
P8X32A (Propeller) sisältää kahdeksan 32bittistä yhdintä, keskeytyksettömän I/O tuen (nopeampi vaste kuin keskeytyksillä), mutta huonomman laajennettavuuden kuin XS1. Propeller2, joka on nopeampi kuin edeltäjänsä, on jo protoasteella. Parallaxilla on laaja yhteisötuki, harrastelijat tekevät referenssitoteutuksia, kirjastoja ja ohjelmointiympäristöjä, PR-kuva firmasta on hyvin avoin.
Molemmat firmat ovat pieniä, kääpiöitä verrattuna X86- ja ARM-valmistajiin. Parallaxin tulevaisuus näyttää varmalta, XMOS:ista en tiedä, mutta saisipa yhdistettyä arkkitehtuurien parhaat puolet. Siis XS1:n linkit Propeller3-sukupolveen.
X86:n ja ARM-arkkitehtuurin (jotka siis ovat nykyisin todellisia kilpailijoita) multicore tulevaisuus on epävarma ja kiinnostava. On väläytelty jopa 1000-ytimeisten piirien lähitulevaisuutta. Tilera
http://www.tilera.com/
toimittaa 100-ytimistä prosessoria jo nyt. Rinnakkaisohjelmoinnin paradigma on vielä "lopullista", tehokasta ratkaisuaan paitsi. Mutta se on "pakko" löytää, koska muita teitä ei ole.
Multicore-hommat, nykyisellään, ajaa melko pian samankaltaiseen umpikujaan kuin superskalaarinen monocore jo ajoi. Seuraava kehityssuunta on muistipiirien ja ytimien (hyvin kiinteä) yhdistäminen samaan piiriin, siten, että ytimiä on siroteltu muistin joukkoon: esim terabitin muistipiirissä on 1000 ydintä tasaisesti jakautuneena. Vierekkäiset ytimet voivat kommunikoida osoittaen yhteistä muistiavaruutta, mutta varsinainen ytimien välinen kommunikaatio tapahtuu sarjamuotoisella sanomienvälityksellä (kuten XMOS:in XS1). En oikein näe muuta kehityssuuntaa. Etuna on kuitenkin mm. se, että kuvaamani ratkaisu muistuttaa enemmän aivokuoren hajautettua muistia ja prosessointia kuin nykyistä käytäntöä. Ja se on hyvä juttu.