Кіріспе

Тығыз байланысқан түйіндердің параллель есептеу архитектурасының бір түрі. Параллель компьютерлік архитектураларда систолалық массив – бұл жасушалар немесе түйіндер деп аталатын тығыз байланысқан деректерді өңдеу бірліктерінің (DPU) біртекті желісі. Әрбір түйін немесе DPU өз алдына жоғарыдағы көршілерінен алған деректерге сәйкес жартылай нәтижені есептейді, нәтижені өзінде сақтайды және оны төмен ағысқа жібереді. Систолалық массивтер алғаш рет Колосста қолданылды, ол Екінші дүниежүзілік соғыс кезінде неміс Лоренц шифрларын бұзуға пайдаланылған ерте компьютер болды. Colossus-тың құпиялылығына байланысты, оларды H. T. Kung және Чарльз Лейзерсон тәуелсіз түрде ойлап тапты немесе қайта ашты, олар жолақты матрицалар үшін көптеген тығыз сызықтық алгебра есептеулері үшін (матрица көбейту, сызықтық теңдеулер жүйесін шешу, LU ыдырау және т.б.) массивтерді сипаттады. Алғашқы қолданылулары бүтін сандар мен көпмүшелердің ең үлкен ортақ бөлгіштерін есептеуді қамтыды. Олар кейде Флинннің таксономиясы бойынша көп нұсқаулық, бір дерек (MISD) архитектуралары ретінде жіктеледі, бірақ бұл жіктеу күмәнді, себебі систолалық массивтерді Флинннің төрт санатының ешқайсысынан ажыратуға болатын нақты аргументтер бар: SISD, SIMD, MISD, MIMD, бұл туралы мақаланың соңында талқыланады. Параллель кіріс деректері қатты сыммен байланысқан процессорлық түйіндер желісі арқылы өтеді, олар кіріс деректерін біріктіріп, өңдеп, қосып немесе сұрыптап, содан кейін туынды нәтижеге шығарады. Систолалық массив арқылы деректердің толқын тәрізді таралуы адамның қан айналымы жүйесінің пульсіне ұқсас болғандықтан, «систолалық» атауы медициналық терминологиядан алынған. Атау жүректің қанды үнемі сорғылауына аналогия ретінде систоладан шығарылған.

Қолданбалар

Систолалық массивтер көбінесе нақты операциялар үшін, мысалы, "көбейту және жинақтау" сияқты, аппараттық тұрғыдан жасалады, бұл оларға массивтік параллель интеграциялау, конволюция, корреляция, матрица көбейту немесе деректерді сұрыптау міндеттерін орындауға мүмкіндік береді. Олар ДНК және белок тізбектерін талдауда қолданылатын динамикалық бағдарламалау алгоритмдерінде де қолданылады.

Сәулет

Систолалық массив әдетте, белгілі бір қолданбаға арналған бағдарламалық қамтамасыз ету арқылы немесе аппараттық тізбектермен конфигурацияланатын қарапайым есептеу түйіндерінің ірі монолиттік желісінен тұрады. Түйіндер әдетте бекітілген және бірдей болады, ал байланыс желісі бағдарламаланады. Ал, жалпы толқын фронты процессорлары, керісінше, массивтің мөлшері мен жобалау параметрлеріне байланысты монолиттік немесе монолиттік емес, күрделі және жеке бағдарламаланатын түйіндерді қолданады. Тағы бір ерекшелік – систолалық массивтер синхронды деректерді жіберуге сүйенсе, толқын фронты асинхронды жұмыс істейді. Көп тараған Фон Нейман архитектурасынан айырмашылығы, онда бағдарламаның орындалуы ортақ жадта сақталған, процессордың бағдарламалық тізілімі (PC) басқаруымен адрестелген және реттелген нұсқаулар тізбесіне сәйкес келеді, систолалық массивтегі жеке түйіндер жаңа деректердің келуімен іске қосылады және деректерді әрқашан бірдей тәсілмен өңдейді. Әрбір түйіндің ішіндегі нақты өңдеу аппараттық тізбектермен немесе блок микрокодымен жүзеге асырылуы мүмкін, сонда ортақ түйіннің сипаттамалары блок бойынша бағдарламаланады. Деректер санағыштарымен басқарылатын деректер ағынының систолалық массив парадигмасы, бағдарлама санағыштарымен басқарылатын нұсқау ағынының Фон Нейман архитектурасына қарама-қарсы келеді. Систолалық массив әдетте бірнеше деректер ағынын жібереді және қабылдайды, ал осы деректер ағынын жасау үшін бірнеше деректер санағыштары қажет, бұл деректердің параллельдігін қолдайды.

Мақсаттар мен пайда

Систоликалық массивтердің маңызды артықшылығы – барлық операнд деректері мен аралық нәтижелер процессор массиві ішінде (өткізу арқылы) сақталады. Von Neumann немесе Harvard тізбекті машиналарындағыдай, әрбір операция кезінде сыртқы шиналарға, негізгі жадқа немесе ішкі кэштерге қатынау қажеттілігі жоқ. Ақдал заңымен анықталған параллель өнімділіктің тізбекті шектеулері де сол сияқты қолданылмайды, себебі деректердің тәуелділіктері бағдарламаланатын түйіндердің байланысы арқылы түсіндіріледі және жоғары параллельді дерек ағынын басқаруда тізбекті қадамдар жоқ. Сондықтан систоликалық массивтер жасанды интеллект, кескін өңдеу, үлгілерді тану, компьютерлік көру және жануарлар миының ерекше жақсы орындайтын басқа да міндеттерде өте тиімді. Толқындық процессорлар да машиналық оқытуда өте жақсы болуы мүмкін, себебі аппараттық құрылғыда өздігінен конфигурацияланатын нейрондық желілерді жүзеге асырады.

Сыныптастыру туралы дау

Систолалық массивтер ресми түрде MISD ретінде жіктеліп келсе де, олардың жіктелуі қаншалықты дұрыс деген мәселе бар. Кіріс әдетте тәуелсіз мәндердің векторы болғандықтан, систолалық массив SISD емес. Осы кіріс мәндері біріктіріліп, нәтижеге қосылғандықтан және SIMD векторлық өңдеу блогындағыдай дербестігін сақтамайтындықтан, массивті осылай жіктеуге болмайды. Соған сәйкес, массивті MIMD ретінде де жіктеуге келмейді, себебі MIMD кішірек SISD және SIMD машиналарының жиынтығы ретінде қарастырылады. Соңында, деректер ағыны массивтің түйіндері арқылы өте келе өзгергендіктен, көптеген түйіндер бір деректермен жұмыс істемейді, бұл MISD жіктемесін қате етеді. Систолалық массивтің MISD санатына жатпауының тағы бір себебі, оны SISD санатынан шығаратын себеппен бірдей: кіріс деректері әдетте вектор болып табылады, жалғыз дерек мәні емес, бірақ кез келген кіріс векторы деректердің бір бөлігі деп санауға болады. Бұлардың бәріне қарамастан, систолалық массивтер параллель есептеу және инженерлік курстардағы оқулықтарда MISD архитектурасының классикалық мысалы ретінде жиі ұсынылады. Егер массив сырттан қарағанда атомдық болса, оны SFMuDMeR = бір функция, көп дерек, біріктірілген нәтижелер деп жіктеуге болады. Систолалық массивтер түйіндерін байланыстыратын алдын ала анықталған есептеу ағыны графигін пайдаланады. Кан процесінің желілері де ұқсас ағын графигін қолданады, бірақ систолалық массивтегідей түйіндер бір-бірімен үйлесімді жұмыс істейді: Кан желісінде әр түйін арасында FIFO кезектері болады.

Толық сипаттамасы

Систолалық массив матрица тәрізді деректерді өңдеуге арналған ұяшықтардан құралған. Деректерді өңдеу блоктары (ДПБ) орталық процессорларға (CPU) ұқсас, бірақ әдетте бағдарламалық тізімдегіш болмайды, себебі операция деректердің келуімен іске қосылады, яғни дерек объектісінің түсуімен. Әрбір ұяшық өңдеуден кейін дереу көрші ұяшықтармен ақпарат алмасады. Систолалық массив көбінесе тіктөртбұрышты болады, онда деректер көршілес ДПБ-лар арасында ағып өтеді, көбінесе әртүрлі бағытта ағылатын әртүрлі деректермен. Массив порттарына кіретін және шығатын деректер ағыны автоматты тізбектеулі жад бірліктері (ASM) арқылы жасалады. Әрбір ASM дерек санағышын қамтиды. Кіріктірілген жүйелерде дерек ағыны сыртқы көзден кіріс ретінде және/немесе сыртқа шығарылуы мүмкін. Систолалық алгоритмнің мысалы матрица көбейтуі үшін жасалуы мүмкін. Бір матрица массивтің жоғарғы жағынан қатар-қатар беріледі және массив бойымен төмен қарай жылжысады, ал екінші матрица массивтің сол жағынан баған-баған беріледі және солдан оңға қарай жылжысады. Әрбір процессор бір толық қатар мен бір толық бағанды көретінше, содан кейін жалған мәндер беріледі. Осы кезде көбейтудің нәтижесі массивте сақталады және қатар немесе баған бойынша массив бойымен төмен немесе оңға қарай шығарылуы мүмкін. Систолалық массивтер – бұл тор тәрізді топологияда жақын көрші ДПБ-ларға қосылған ДПБ массивтері. ДПБ-лар олардың арасында ағып жатқан деректерге қатысты операциялар тізбегін орындайды. Дәстүрлі систолалық массивтерді жасау әдістері алгебралық алгоритмдерге негізделгендіктен, тек сызықтық құбырлармен біркелкі массивтерді ғана алуға болады, сондықтан барлық ДПБ-да архитектура бірдей болады. Соның салдарынан, классикалық систолалық массивтерде тек тұрақты деректерге тәуелділіктері бар қолданбаларды ғана іске асыруға болады. SIMD машиналарын сияқты, синхронды систолалық массивтер процессорлардың кезекпен есептеу және байланыс фазаларын орындап, "бірқадамды" есептейді. Ал ДПБ-лар арасында асинхронды келісіммен жұмыс істейтін систолалық массивтер толқындық массивтер деп аталады. Белгілі бір систолалық массив – Карнеги Меллон университетінің Intel өндірген iWarp процессоры. iWarp жүйесінде екі бағытта деректер шиналарымен байланысқан сызықтық массивтік процессор бар.

Тарих

Систоликалық массивтер (толқындық процессорлар деп те аталады) алғаш рет 1979 жылы систоликалық массивтерді сипаттаған алғашқы мақаланы жариялаған Х.Т. Кунг және Чарльз Э. Лейзерсон есімді ғалымдар тарапынан сипатталды. Дегенмен, осыған ұқсас техниканы қолданған алғашқы машина 1944 жылы Colossus Mark II машинасы болды.