Кіріспе
Микроэлектрондық компонент
Чиптегі жүйе немесе Чиптегі жүйе (SoC /,/'/ɛ//s//oʊ//s//iː/; pl. SoCs /,/'/ɛ//s//oʊ//s//iː//z/) – компьютер немесе басқа электрондық жүйенің көптеген немесе барлық компоненттерін біріктіретін интегралдық схема. Бұл компоненттерге чиптегі орталық процессор (CPU), жад интерфейстері, кіріс/шығыс құрылғылары және интерфейстері, сондай-ақ қосымша жад интерфейстері дерлік әрқашан кіреді, көбінесе радиомодемдер және графикалық процессор (GPU) сияқты басқа компоненттермен бірге – барлығы бір субстрат немесе микрочипте. SoC-терде цифрлық, сондай-ақ аналогты, аралас сигнал және көбінесе радиожиілік сигналды өңдеу функциялары болуы мүмкін (әйтпесе, бұл дискретті қолданбалық процессорда қарастырылуы мүмкін). Жоғары өнімділіктегі SoC-тер көбінесе арнайы және физикалық жағынан бөлек жад және қосымша жад (LPDDR және eUFS немесе eMMC сияқты) чиптерімен жұптастырылады, олар SoC-тің үстіне пакеттегі пакет (PoP) конфигурациясы түрінде орналастырылуы мүмкін немесе SoC-ке жақын орналасады. Сонымен қатар, SoC-тер жеке сымсыз модемдерді пайдалана алады. SoC микроконтроллерді, микропроцессорды немесе бірнеше процессорлық ядроларды GPU, Wi-Fi және ұялы байланыс желісі радиомодемдері және/немесе бір немесе бірнеше копроцессорлар сияқты перифериялық құрылғылармен біріктіреді. Микроконтроллер микропроцессорды перифериялық схемалар мен жадпен біріктіргендей, SoC-ты одан да жетілдірілген перифериялық құрылғылармен біріктірілген микроконтроллер ретінде қарастыруға болады. Көп чиптік архитектурамен салыстырғанда, эквивалентті функционалдығы бар SoC энергияны аз тұтынады және жартылай өткізгіштің кішірек ауданына ие болады. Бұл компоненттерді ауыстыру мүмкіндігінің төмендеуімен байланысты. Қолданылуы бойынша, SoC жобалары әртүрлі компоненттік модульдер бойынша толық немесе дерлік толық интеграцияланған. Осы себептерге байланысты компьютерлік аппараттық индустриясында компоненттердің тығыз интеграциялануына бағытталған жалпы тенденция байқалады, бұл SoC-тің ықпалы мен мобильді және кіріктірілген есептеу нарықтарынан алынған тәжірибелердің нәтижесі. SoC-тер мобильді есептеулерде (смартфондар және планшеттік компьютерлер сияқты интеллектуалды құрылғыларда) және шеткі есептеу нарықтарында кеңінен қолданылады.
Қолданбалар
SoC кез келген есептеу міндетіне қолданылуы мүмкін. Дегенмен, олар көбінесе планшеттер, смартфондар, смарт-сағаттар және нетбуктер сияқты мобильді құрылымдарда, сондай-ақ кіріктірілген жүйелерде және бұрын микроконтроллерлер қолданылатын салаларда қолданылады.
Кіріспелі жүйелер
Бұрын тек микробасқарушыларды ғана пайдалану мүмкіндігі болғанда, енді кіріктірілген жүйелер нарығында SoC-тер маңызға ие болып келеді. Жүйелік интеграцияның артуы сенімділікті жақсартады және орташа істен шығу аралығын ұзартады, сондай-ақ SoC-тер микробасқарушылардан гөрі кеңейтілген функционалдық мүмкіндіктер мен есептеу қуатын ұсынады. Оларға жасанды интеллектті жеделдету, кіріктірілген машиналық көру, деректерді жинау, телеметрия, векторлық өңдеу және қоршаған ортаның интеллектуалды жүйелері сияқты қолданыстар кіреді. Көптеген кіріктірілген SoC-тер заттардың интернеті, мультимедиа, желілік технологиялар, телекоммуникация және шеттік есептеу салаларын қамтиды.
Жеке компьютерлер
1992 жылы Acorn Computers компаниясы ARM250 SoC негізінде A3010, A3020 және A4000 жеке компьютерлерінің қатарын шығарды. Ол бастапқы Acorn ARM2 процессорын жад контроллері (MEMC), бейне контроллері (VIDC) және кірістіру-шығару контроллері (IOC)мен біріктірді. Алдыңғы Acorn ARM процессорларымен жұмыс істейтін компьютерлерде бұл төрт жеке чип болған. ARM7500 чипі – ARM700, VIDC20 және IOMD контроллерлеріне негізделген олардың екінші буын SoC-ы болды және орнатылған құрылғыларда, мысалы, спутниктік қабылдағыштарда, сондай-ақ кейінірек Acorn жеке компьютерлерінде кеңінен қолданылды. Планшеттік компьютерлер мен ноутбук өндірушілері кіріктірілген жүйелер мен смартфондар нарығынан аппараттық және бағдарламалық модульдерді тығыз интеграциялау арқасында қуат тұтынуды азайту, жақсы өнімділік және сенімділік, сондай-ақ чипке енгізілген LTE және басқа да сымсыз желілік байланыс (енгізілген желілік интерфейс контроллерлері) туралы маңызды тәжірибе алды.
Құрылымы
SoC аппараттық функционалдық блоктардан тұрады, оның ішінде бағдарламалық кодты орындайтын микропроцессорлар, сондай-ақ осы функционалдық модульдерді қосу, басқару, бағыттау және байланыстыру үшін коммуникациялық жүйе.
Процессорлық өзектер
SoC-де кем дегенде бір процессорлық ядро болуы керек, бірақ әдетте SoC-де бірнеше ядро болады. Процессорлық ядролар микроконтроллер, микропроцессор (μP), цифрлық сигналды өңдегіш (DSP) немесе қолданбаға арналған ерекше нұсқаулар жинағы бар процессорлық (ASIP) ядро болуы мүмкін. ASIP-терде белгілі бір салаға бейімделген және нақты жұмыс жүктемесі үшін жалпы мақсаттағы нұсқаулардан тиімдірек болу үшін жасалған нұсқаулар жинағы бар. Көппроцессорлық SoC-де, анықтама бойынша, бірнеше процессорлық ядро болады. ARM архитектурасы SoC процессорлық ядролары үшін жиі таңдалады, себебі кейбір ARM архитектуралық ядролар IP ядролары ретінде берілген бағдарламаланатын процессорлар болып табылады. Немесе олар SoC-ге енгізілген болуы мүмкін, мысалы, SoC-ге аналогты сенсор орнатылған және оның көрсеткіштерін математикалық өңдеу үшін цифрлық сигналдарға түрлендіру қажет болған жағдайда.
Цифрлық сигнал процессорлары
SoC-терде көбінесе цифрлық сигналды өңдеуші (DSP) ядролары кездеседі. Олар сенсорлар, атқарушы механизмдер, деректерді жинау, деректерді талдау және мультимедиалық өңдеу үшін SoC-те сигнал өңдеу операцияларын жүзеге асырады. DSP ядролары әдетте өте ұзын нұсқаулық сөзі (VLIW) және бір нұсқаулық, көп дерек (SIMD) нұсқаулық жиынтығы архитектураларымен жабдықталған, сондықтан олар параллель өңдеу және суперскалярлық орындау арқылы нұсқаулық деңгейіндегі параллелизмді пайдалануға өте ыңғайлы.
Автобус желісімен байланыс
Тарихи тұрғыдан алғанда, ортақ жаһандық компьютерлік шина әдетте SoC-тің әртүрлі компоненттерін, сондай-ақ "блоктар" деп аталатын бөлімдерін байланыстыратын. HLS өнімдері, "алгоритмдік синтез" деп аталатындар, дизайнерлерге C++ тілін пайдаланып жүйе, схема, бағдарламалық жасақтама және тексеру деңгейлерін модельдеуге және синтездеуге мүмкіндік береді. Бұл процестер компьютерлік инженерлерге жақсы таныс жоғары деңгейдегі тілде, әдетте HDL-де көрсетілетін уақыт өлшемдеріне тәуелсіз жүзеге асырылады. Басқа компоненттер бағдарламалық қамтамасыз ету ретінде қалуы мүмкін және SoC-ге енгізілген жұмсақ ядролы процессорларға модульдер ретінде, HDL-де IP ядролары ретінде компиляцияланып, енгізіледі. SoC архитектурасы анықталғаннан кейін, жаңа аппараттық элементтер схеманың әрекетін анықтайтын регистрлік деңгейдегі беру (RTL) деп аталатын абстрактілі аппараттық сипаттама тілінде жазылады немесе жоғары деңгейдегі синтез арқылы жоғары деңгейдегі тілден RTL-ге түрлендіріледі. Бұл элементтер толық SoC дизайнын жасау үшін аппараттық сипаттама тілінде біріктіріледі. Бұл компоненттерді байланыстыру және әртүрлі жеткізушілер ұсынатын әртүрлі интерфейстерді түрлендіру үшін қолданылатын логикалық схема "көпірлік логика" деп аталады.
Жобалауды тексеру
Чиптер жартылай өткізгіш құю зауыттарына жіберілмес бұрын, олардың жұмысқа жарамдылығы тексеріледі. Бұл процесс функционалдық тексеру деп аталады және ол чип дизайнының өмірлік циклында жұмсалатын уақыт пен энергияның маңызды бөлігін құрайды, көбінесе 70% деп бағаланады. Чиптердің күрделілігі арта тұра, SystemVerilog, SystemC, e және OpenVera сияқты аппараттық тексеру тілдері қолданылады. Тексеру кезеңінде табылған қателер дизайнерге хабарланады. Кәдімгідей, инженерлер SoC жобаларын аяқтау алдында, аппараттық және бағдарламалық жасақтаманы тексеру және түзету үшін қайта бағдарламаланатын аппараттық құралдарда симуляциялық үдету, эмуляция немесе прототиптеуді пайдаланады. SoC прототиптерін жасау үшін Field Programmable Gate Arrays (FPGA) басымдыққа ие, себебі FPGA прототиптерін қайта бағдарламалауға болады, олар түзетуге мүмкіндік береді және қосымшаға арналған интегралдық схемалардан (ASIC) гөрі икемдірек. Жоғары сыйымдылығы және жылдам компиляция уақытымен, симуляциялық үдету және эмуляция жүйелерге кең көрініс беретін қуатты технологиялар болып табылады. Дегенмен, екі технология да МГц шамасында баяу жұмыс істейді, бұл SoC-тің жұмыс жиілігінен 100 есеге дейін баяу болуы мүмкін. Үдету және эмуляция құрылғылары да өте үлкен және қымбат, құны 1 миллион АҚШ долларынан астам. FPGA прототиптері, керісінше, инженерлерге нақты жағдайлардағы сигналдармен жүйенің толық жұмыс жиілігінде немесе оған жақын жерде растауға және сынауға мүмкіндік береді, тікелей FPGA-ны пайдаланады. Certus сияқты құралдар FPGA RTL-ге сигналдарды бақылауға қолжетімді ететін зондтарды орнату үшін қолданылады. Бұл аппараттық, микрокод және бағдарламалық жасақтама өзара әрекеттесуін логикалық анализатор сияқты мүмкіндіктері бар бірнеше FPGA-да түзету үшін қолданылады. Параллельдікпен, аппараттық элементтер топтастырылады және логикалық синтез процесінен өтеді, оның барысында жұмыс жиілігі және күтілетін сигналдың кешігуі сияқты өнімділік шектеулері қолданылады. Бұл физикалық схема ретінде дизайнды және оның байланыстарын сипаттайтын нетлист деп аталатын нәтижені тудырады. Бұл нетлисттер компоненттерді байланыстыратын қосымша логикамен біріктіріледі, нәтижесінде SoC-тің схемалық сипаттамасы жасалады, оны чипке басып шығаруға болады. Бұл процесс орналастыру және маршрутизация деп аталады және SoC қосымшаға арналған интегралдық схема (ASIC) ретінде өндірілген жағдайда таспадан шығаруға (tape out) дейін жүзеге асырылады.
Оңтайландыру мақсаттары
SoC-тер қуатты пайдалануды, кристаллдағы аумақты, байланысты, модульдік блоктардың жақын орналасуын және басқа да факторларды оңтайландыруы тиіс. Оптимизация – SoC жобалаудың қажетті мақсаты. Егер оңтайландыру қажет болмаса, инженерлер көп чипті модульдік архитектураны пайдаланар еді, онда аумақты пайдалану, қуат тұтыну немесе жүйенің өнімділігін дәл осы деңгейде ескермейтін еді. SoC жобалары үшін ортақ оңтайландыру мақсаттары төменде келтірілген, олардың әрқайсысының түсіндірмесімен бірге. Жалпы, осы шамалардың кез келгенін оңтайландыру қиын комбинаторлық оңтайландыру мәселесі болуы мүмкін, тіпті NP-қиын мәселесіне де айналуы ықтимал. Сондықтан, күрделі оңтайландыру алгоритмдері жиі қажет болады және кейбір жағдайларда жуықтау алгоритмдерін немесе эвристикалық әдістерді қолдану орынды болуы мүмкін. Сонымен қатар, көптеген SoC жобаларында бір уақытта оңтайландыруға болатын бірнеше айнымалы бар, сондықтан SoC жобалауда Парето-тиімді шешімдер ізделеді. Көбінесе осы шамалардың кейбірін оңтайландыру мақсаттары тікелей қарама-қайшы болып келеді, бұл SoC-терді оңтайландыруды жобалауды күрделендіреді және жүйелік жобалауда компромистерге әкеледі. Компромистер мен талаптарды талдау туралы толық ақпарат алу үшін талаптарды инженерлеуге жүгініңіз.
Салыстырмалы көрсеткіштер
SoC зерттеулері мен әзірлемелері жиі көптеген нұсқаларды салыстырады. COSMIC сияқты стандарттар мұндай бағалауларға көмектесу үшін жасалған.