Кіріспе

Есептеу моделі
Кан процесінің желісі (KPN, немесе процестер желісі) – есептеудің таратылған моделі, онда детерминистік тізбекті процестердің тобы шексіз бірінші кірген, бірінші шыққан арналар арқылы байланысады. Модельде арнадан мәлімет оқу тоқтатылады, ал жазу тоқтатылмайды. Осы негізгі шектеулерге байланысты, пайда болған процестер желісі есептеу уақытына немесе байланыс кешігуіне тәуелді емес, детерминистік мінез-құлық көрсетеді. Кан процесінің желілері бастапқыда параллель бағдарламаларды модельдеу үшін жасалған, бірақ кіріктірілген жүйелерді, жоғары өнімді есептеу жүйелерін, сигналды өңдеу жүйелерін, ағынды өңдеу жүйелерін, дерек ағыны бағдарламалау тілдерін және басқа да есептеу тапсырмаларын модельдеуге қолайлы болып табылды. KPN-ді 1974 жылы Жиль Кан ұсынды.

Орындау үлгісі

KPN – сигналды өңдеу жүйелерін сипаттауға арналған кең таралған модель, онда деректердің шексіз ағыны тізбектей немесе параллель орындалатын процестер арқылы кезең-кезеңімен өңделеді. Параллель процестер болғанымен, бұл модельді іске асыру үшін көп тапсырмалылық немесе параллелизм қажет емес. KPN-де процестер шексіз FIFO арналары арқылы байланысады. Процестер атомдық дерек элементтерін, басқаша айтқанда токендерді, арналардан оқиды және арналарға жазады. Арнаға жазу – бұғаттау емес операция, яғни ол әрқашан сәтті аяқталады және процесті тоқтатпайды, ал арнадан оқу – бұғаттау операциясы, яғни бос арнадан оқуға тырысатын процесс тоқтап, арнада жеткілікті дерек элементтері (токендер) пайда болғанға дейін жалғаса алмайды. Процестерге кіріс арнасында токендердің бар-жоғын токендерді тұтына алмайынша тексеруге рұқсат етілмейді. Бір FIFO бірнеше процесспен тұтынылмайды, және бірнеше процесс бір FIFO-ға жаза алмайды. Процеске берілген нақты кіріс (токендер) тарихы бойынша, процесс әрқашан бірдей нәтижелерді (токендерді) беретін детерминистік болуы тиіс. Процестердің уақыты немесе орындалу реті нәтижеге әсер етуі керек емес, сондықтан кіріс арналарын токендерге тексеруге тыйым салынады.

Семантиканы Петри торлары ретінде өңдеу

Жоғарыда көрсетілген KPN-дегі P процесі егер алдымен A арнасынан, содан кейін B арнасынан деректерді оқып, кейбір есептеулер жасап, нәтижені C арнасына жазатын болса, онда осы процестің орындалу моделін оң жақта көрсетілген Петри желісімен модельдеуге болады. PE ресурстық орнындағы жалғыз марке процестің әртүрлі кіріс деректері үшін бір уақытта орындалуына тыйым салады. A немесе B арнасына дерек келгенде, маркелер тиісінше FIFO A және FIFO B орындарына қойылады. Петри желісінің өтулері тиісті I/O операцияларымен және есептеулермен байланыстырылған. Дерек C арнасына жазылғаннан кейін, PE ресурсы бастапқы күйіне қайта келіп, жаңа деректерді оқуға мүмкіндік береді.

Каналдардың шектелуі

Канал егер кез келген мүмкін орындалуда ең көп дегенде тұтылмаған токендері болса, қатаң шектелген болып есептеледі. KPN егер барлық каналдары қатаң шектелген болса, қатаң шектелген болып табылады. Тұтылмаған токендердің саны процестердің орындалу ретіне (жоспарлауға) байланысты. Өздігінен дерек көзі жоспарлаушы осы токендерді тұтынатын процестерді орындамаса, каналға шексіз көп токендерді шығара алады. Нақты қолданбада шексіз FIFO болуы мүмкін емес, сондықтан FIFO-ның жоспарлауы және ең жоғары сыйымдылығы практикалық іске асыру үшін ескерілуі керек. FIFO-ның ең жоғары сыйымдылығын бірнеше тәсілмен басқаруға болады: FIFO-ның шектері FIFO-ның ағып кетуін болдырмау үшін жобалау кезінде математикалық түрде есептелуі мүмкін. Дегенмен, бұл барлық KPN үшін мүмкін емес. KPN-нің қатаң шектелгенін тексеру – шешілмейтін мәселе. Сонымен қатар, практикалық жағдайларда шектелген деректерге тәуелді болуы мүмкін. FIFO шектерін қажеттікке қарай арттыруға болады. Блоктау жазуларын пайдалануға болады, осылайша FIFO толған кезде процесс тоқтатылады. Алайда, егер жобалаушы FIFO үшін қауіпсіз шекараларды дұрыс анықтамаса, бұл тәсіл жасанды тұйыққа алып келуі мүмкін (Parks, 1995). Дұрыс нәтижені алуды қамтамасыз ету үшін орындалу кезінде жергілікті жасанды анықтау қажет болуы мүмкін.

Жабық және ашық жүйелер

Жабық KPN-де сыртқы кіріс немесе шығыс арналары болмайды. Кіріс арналары жоқ процестер дерек көздері болып табылады, ал шығыс арналары жоқ процестер дерек тұндырғыштары болып табылады. Ашық KPN-де әрбір процесс кем дегенде бір кіріс және бір шығыс арнасына ие.

Біртектілік

KPN процестері монотонды. Көбірек таңбаларды оқу тек көбірек таңбаларды жазуға ғана алып келеді. Болашақта оқылған таңбалар болашақта жазылған таңбаларға ғана әсер ете алады. KPN-да сигналдың ішіндегі оқиғалардың толық реті болады. Дегенмен, әртүрлі сигналдардағы оқиғалардың арасында реттелу қатынасы жоқ. Осылайша, KPN-лер тек ішінара реттелген, оларды уақытталмаған модель ретінде жіктеуге болады.

Қолданбалар

Жоғары экспрессивтілігі мен лаконизмдігінің арқасында, KPN есептеу моделінің негізі ретінде, белгілі бір қасиеттері бар (мысалы, дерек ағынына бағытталған, ағынға негізделген) ағынды қосымшаларды ұсыну үшін бірнеше академиялық модельдеу құралдарында қолданылады. Лейден университетінің Лейден кіріктірілген зерттеу орталығымен қолдау көрсетілетін ашық кодты Daedalus фреймворкі C тілінде жазылған тізбекті бағдарламаларды қабылдайды және оған сәйкес KPN құрайды. Бұл KPN-ді, мысалы, KPN-ді FPGA негізделген платформаға жүйелі түрде бейімдеу үшін пайдалануға болады. Ambric Am2045 массивті параллель процессорлар массиві – нақты кремнийде іске асырылған KPN. Оның 336 32 биттік процессорлары арнайы FIFO-лардан тұратын бағдарламаланатын өзара байланыс арқылы қосылған. Осылайша, оның арналары жазу кезінде тоқтаумен қатаң шектелген. Кейбір AMD Xilinx Versals-тегі AI Engine-дер Kahn Process Network-тің құрылыс блоктары болып табылады.