Микроархитектур ба түүний хэрэглээ

Микроархитектур ба түүний хэрэглээ

Микроархитектур гэдэг нь процессорын "дотоод хэсэг" юм: CPU нь x86, ARM, эсвэл RISC-V зэрэг зааврын багц архитектураар (ISA) тодорхойлсон заавруудыг гүйцэтгэхийн тулд хэрхэн бүтээгдэж, дотооддоо ажилладаг тухай юм. Хэрэв ISA-г хэлний дүрэм - үгсийн цуглуулга болон тэдгээрийн дүрэмтэй зүйрлэж болох юм бол микроархитектур гэдэг нь тархи бодлын процессыг хэрхэн бүтцэд оруулдаг бөгөөд ингэснээр эдгээр өгүүлбэрүүд хурдан, эрчим хүчний хэмнэлттэй, тогтвортой ойлгогдож, яригддаг болохыг хэлнэ. Олон хүмүүс процессорын нэрийг брэнд эсвэл цувралаар нь таньдаг боловч гүйцэтгэл болон үр ашгийн бодит ялгааг ихэвчлэн микроархитектурын түвшинд гаргасан шийдвэрүүд тодорхойлдог.

ISA болон бичил архитектурын хоорондын хамаарлыг ойлгох нь

Ганц ISA нь олон микроархитектурын хэрэгжилттэй байж болно. Жишээлбэл, хоёр процессор хоёулаа тодорхой ISA-г дэмжиж болох боловч тэдгээрийн дотоод загвар нь өөр өөр байдаг: нэг нь өндөр цагийн хурдыг, нөгөө нь цөмийн тоо эсвэл эрчим хүчний үр ашгийг илүүд үздэг. Энэ нь "ижил" зааврыг гүйцэтгэдэг хоёр CPU яагаад үргэлж ижил ажилладаггүйг тайлбарладаг.

Микроархитектур нь дамжуулах хоолой, дараалалгүй гүйцэтгэл, салбарын таамаглал, кэш шатлал, гүйцэтгэлийн нэгжүүд (ALU/FPU), эрчим хүчний удирдлагын механизм зэрэг талуудыг хамардаг. Эдгээр бүрэлдэхүүн хэсэг бүр нь гүйцэтгэл, эрчим хүчний үр ашиг , өртөг/нарийн төвөгтэй байдал гэсэн гурван өргөн зорилгод хувь нэмэр оруулдаг.

Микроархитектурын үндсэн бүрэлдэхүүн хэсгүүд

1. Шугам хоолой: зааврын угсралтын шугам
Дамжуулах хоолой нь зааврын гүйцэтгэлийг хэд хэдэн үе шатанд хуваадаг, тухайлбал fetch (зааврыг татаж авах), декодлох (орчуулах), гүйцэтгэх (гүйцэтгэх), санах ойд хандах (санах ойд хандах) болон write-back (үр дүнг бичих). Дамжуулах хоолойн тусламжтайгаар CPU нь үйлдвэрийн угсралтын шугам шиг стек дотор олон зааврыг боловсруулж чаддаг.

Хоолойн гүн байх тусам CPU онолын хувьд өндөрт хүрч чадна. Гэсэн хэдий ч хэт гүн хоолой нь салбарын буруу таамаглалын шийтгэлийг нэмэгдүүлж, удирдлагын нарийн төвөгтэй байдлыг нэмэгдүүлдэг.

2. Суперскаляр ба зааварчилгааны түвшний параллелизм
Орчин үеийн CPU-үүд нь ерөнхийдөө суперскаляр байдаг бөгөөд энэ нь олон зэрэгцээ гүйцэтгэх нэгжүүдтэй нэг мөчлөгт нэгээс олон зааварчилгаа гүйцэтгэж чаддаг гэсэн үг юм. Энэ нь зааварчилгааны түвшний параллелизм (ILP) буюу олон бие даасан зааварчилгаа гүйцэтгэх чадварын давуу талыг ашигладаг.

Гэсэн хэдий ч ILP үргэлж боломжтой байдаггүй. Хэрэв програм нь олон өгөгдлийн хамаарал эсвэл олон салбартай бол энэхүү зэрэгцээ чадварыг бүрэн ашигладаггүй. Тиймээс бичил архитектурууд нь гүйцэтгэлийн нэгжүүдийг сул зогсолтоос урьдчилан сэргийлэхийн тулд тэдгээрийг "дүүргэх" бусад аргуудад найддаг.

3. Дараалалгүй (OoO) гүйцэтгэл
Дараалалгүй гүйцэтгэл нь CPU-д эцсийн үр дүн зөв байгаа тохиолдолд заавруудыг дараалалгүй гүйцэтгэх боломжийг олгодог. Жишээлбэл, хэрэв заавар нь санах ойгоос өгөгдөл хүлээж байгаа бол CPU нь бэлэн болсон өөр нэг зааврыг гүйцэтгэж болно. Үүний тулд CPU нь буферийг дахин захиалах, захиалгын станцууд, регистрийн нэрийг өөрчлөх зэрэг бүрэлдэхүүн хэсгүүдийг ашигладаг.

OoO нь гүйцэтгэлийг сайжруулдаг боловч илүү их цахиурын талбай болон хүч шаарддаг бөгөөд баталгаажуулалтын нарийн төвөгтэй байдлыг нэмэгдүүлдэг. Зарим бага чадлын төхөөрөмжүүд дээр дизайнерууд илүү энгийн дарааллын гүйцэтгэлийг сонгож болно.

4. Салбарын таамаглал ба таамаглалын гүйцэтгэл
Салбарлах заавар (if/else, давталт) нь CPU-г гүйцэтгэх замыг сонгоход хүргэдэг. Салбарлах шийдвэрийг хүлээх нь дамжуулах хоолойг "таслах" болно. Салбарлах таамаглал нь аль замыг сонгохыг таахыг оролддог бөгөөд ингэснээр CPU түр зогсолтгүйгээр ажиллах боломжтой болно.

Хэрэв таамаглал зөв бол гүйцэтгэл мэдэгдэхүйц сайжирна. Хэрэв буруу бол CPU нь таамаглалын үр дүнг (flush) хаяж, дахин эхлүүлэх ёстой бөгөөд энэ нь мөчлөгийн торгууль ногдуулна. Нарийн төвөгтэй салбарын таамаглал нь нийтлэг ажлын ачааллын гол гүйцэтгэлийн хөдөлгөгч хүч боловч таамаглалын гаж нөлөөг ашигладаг Spectre зэрэг аюулгүй байдлын асуудлуудтай холбоотой байдаг.

5. Кэшийн шатлал: L1, L2, L3
CPU-ийн хурд нь үндсэн санах ой (RAM)-аас хамаагүй давсан байдаг. Кэш санах ой нь байнга ханддаг өгөгдлийг хадгалахад ашиглагддаг жижиг, хамаагүй хурдан санах ой юм. Энэ нь ихэвчлэн хэд хэдэн түвшинтэй байдаг: L1 (хамгийн хурдан бөгөөд хамгийн жижиг), L2 (том), болон L3 (бүр том, ихэвчлэн цөмүүдийн хооронд хуваалцдаг).

Кэш дизайн нь чухал буулт юм: том кэшүүд нь алдааг багасгадаг боловч илүү үнэтэй бөгөөд удаан байж болно. Олон цөмт системүүд дээр урьдчилан татаж авах бодлого болон кэшийн уялдаа холбоо нь бичил архитектурт чухал үүрэгтэй.

6. Гүйцэтгэлийн нэгжүүд: бүхэл тоо, хөвөгч цэг, SIMD болон тусгай
CPU нь янз бүрийн нэгжтэй: бүхэл тоон үйлдлийн ALU, бутархай тооны FPU, санах ойн ачаалах/хадгалах нэгж, их хэмжээний өгөгдлийг нэг дор боловсруулах SIMD (жишээ нь AVX/NEON) нь мультимедиа, шахалт, тэр ч байтугай хөнгөн машин сургалтанд маш хэрэгтэй.

Үүнээс гадна, орчин үеийн процессорууд нь ихэвчлэн (платформоос хамааран) тусгай хурдасгууруудыг агуулдаг, тухайлбал шифрлэлт, хиймэл оюун ухааны тооцоолол эсвэл гар утасны төхөөрөмж дээрх дүрс дохио боловсруулах зориулалттай. Хэдийгээр үүнийг үргэлж "цэвэр CPU микроархитектур" гэж нэрлэдэггүй ч энэхүү интеграцийг чип дээрх системийн ерөнхий дизайнд нөлөөлдөг.

7. Эрчим хүчний удирдлага ба дулааны зураг төсөл
Микроархитектур нь процессор хүчдэл болон давтамжийг хэрхэн тохируулах (DVFS), ашиглагдаагүй бүрэлдэхүүн хэсгүүдийг (цагны хаалт, цахилгаан хаалт) хэрхэн унтраах, температурыг хязгаарт байлгахыг тодорхойлдог. Зөөврийн компьютер болон гар утасны хувьд ватт тутамд ногдох үр ашиг нь оргил гүйцэтгэлээс илүү чухал байдаг.

Бодит ертөнцөд бичил архитектурын хэрэглээ

1. Компьютер болон серверийн гүйцэтгэлийг нэмэгдүүлэх
Хамгийн тодорхой хэрэглээ нь өдөр тутмын хэрэглээний програмууд (хөтөч, оффисын програмууд), техникийн тооцоолол (симуляци) болон серверийн үйлчилгээ (мэдээллийн сан, вэб үйлчилгээ)-ийн гүйцэтгэлийг сайжруулах явдал юм. OoO, дэвшилтэт кэш, салбар таамаглал зэрэг техникүүд нь програмуудыг давтамжийг эрс нэмэгдүүлэхгүйгээр илүү хурдан ажиллуулах боломжийг олгодог.

Өгөгдлийн төвд бичил архитектурын үр ашгийн бага зэргийн өөрчлөлтүүд нь эрчим хүч болон хөргөлтийн хэмнэлтийг ихээхэн хэмжээгээр нэмэгдүүлэх боломжтой. Тийм ч учраас серверийн бичил архитектурын дизайн нь дамжуулах чадвар, санах ойн зурвасын өргөн, олон урсгалт чадварт анхаарлаа хандуулдаг.

2. Гар утасны төхөөрөмжүүдийн эрчим хүчний үр ашгийг оновчтой болгох
Ухаалаг гар утаснууд нь камер, тоглоом, хиймэл оюун ухаанд өндөр гүйцэтгэл шаарддаг бөгөөд батерейны ашиглалтын хугацааг хэмнэдэг. Тиймээс гар утасны бичил архитектурууд нь ихэвчлэн эрчим хүчний хэмнэлттэй цөмийг гүйцэтгэлийн цөмтэй хослуулдаг (том.ЖИГХЭН арга эсвэл түүний хувилбарууд). Энэ нь хөнгөн ажлуудыг жижиг цөмд, хүнд ажлуудыг том цөмд байрлуулах боломжийг олгодог бөгөөд ингэснээр хариу үйлдэл үзүүлэх чадварыг алдагдуулахгүйгээр эрчим хүчний хэмнэлтийг нэмэгдүүлдэг.

3. Аюулгүй байдлын зан байдал болон түүнийг бууруулах арга хэмжээг тодорхойлох
Микроархитектур нь зөвхөн хурдны тухай биш; энэ нь аюулгүй байдалд нөлөөлдөг. Таамаглалын механизм, кэш, салбарын таамаглал нь хажуугийн сувгуудыг нэвтрүүлж болно. Дараа нь салбар нь програм хангамж болон техник хангамжийн түвшинд урьдчилан таамаглагчдад өөрчлөлт оруулах, таамаглалын тусгаарлалт эсвэл кэш хуваах техник гэх мэт бууруулах арга хэмжээг боловсруулдаг. Микроархитектурыг ойлгох нь аюулгүй байдлын инженерүүдэд эрсдэлийг үнэлж, зохих бууруулах тохиргоог сонгоход тусалдаг.

4. Хөгжүүлэгчдэд програм хангамжийг оновчтой болгоход нь туслах
Хөгжүүлэгчид CPU зохион бүтээдэггүй байсан ч микроархитектурын зан төлөвийг ойлгосноор илүү хурдан код бичиж чадна. Жишээлбэл:
– Кэшэд ээлтэй өгөгдлийн бүтцийг ашиглан кэш алдагдлыг бууруулна.
– Шаардлагагүй мөчрүүдээс зайлсхийх эсвэл мөчрийн хэв маягийг илүү урьдчилан таамаглах боломжтой болгох.
– Векторын үйлдлүүдэд SIMD ашигладаг.
– Кэшийн уялдаа холбооны урсгалыг өдөөдөг олон урсгал дээрх зөрчилдөөнийг бууруулдаг.

Өндөр хүчин чадалтай тооцооллын (HPC) салбарт энэ мэдлэг маш чухал юм, учир нь гүйцэтгэл нь зөвхөн зааврын тоогоор бус, харин санах ойн зурвасын өргөнөөр хязгаарлагддаг.

5. Бол дизайны үндэс шинэ техник хангамж
Академик болон хагас дамжуулагчийн салбарт бичил архитектур нь инновацийн платформ юм: гүйцэтгэлийн өргөнийг нэмэгдүүлэх, кэшийн бодлогыг өөрчлөх, салбарын урьдчилсан таамаглагчийг сайжруулах, эсвэл бүр олон төрлийн хандлагыг (CPU + хурдасгуур) зохион бүтээх. Үүний ашиг тус нь бүтээгдэхүүний өрсөлдөөнд илэрхий байдаг: нэг үеийн шинэ загварууд нь давтамж өөрчлөгдөөгүй байсан ч IPC (цикл дэх зааварчилгаа) болон үр ашгийг мэдэгдэхүйц сайжруулж чадна.

Хөгжлийн бэрхшээл ба чиглэлүүд

Орчин үеийн бичил архитектурууд нь физикийн хязгаарлагдмал байдалтай тулгарч байна: цахилгаан алдагдал, дулааны үүсэлт, нарийн төвөгтэй байдал нэмэгдэж байна. Давтамжийг нэмэгдүүлэх нь өмнөх шигээ амар биш тул анхаарал нь дараах зүйл рүү шилжсэн.
– Дээд зэрэглэлийн параллелизм (олон цөмт, SMT).
– Тодорхой ажлын ачаалалд зориулсан тусгай хурдасгуурууд.
– Санах ойн шатлал болон харилцан холболтыг оновчтой болгох.
- Эрчим хүчний үр ашгийг гол үзүүлэлт болгон ашиглах.
– Дизайны эхнээс эхлэн бичил архитектурын аюулгүй байдал (дизайны дагуу аюулгүй байдал).

Сүүлийн жилүүдэд ерөнхий зориулалттай CPU-г тусгай хиймэл оюун ухаан, график болон медиа төхөөрөмжүүдтэй хослуулсан олон янзын арга барил, ялангуяа SoC-д улам бүр давамгайлж байна.

Дүгнэлт

Микроархитектур нь процессор зааврыг хэрхэн гүйцэтгэхийг тодорхойлдог үндэс суурь юм: хэр хурдан, хэр эрчим хүч хэмнэлттэй, хэр аюулгүй. Шугам хоолой, дараалалгүй гүйцэтгэл, салбарын таамаглал, кэш, гүйцэтгэлийн нэгж, эрчим хүчний менежмент нь бүгд бие биедээ нөлөөлдөг чухал бүрэлдэхүүн хэсгүүд юм. Үүний хэрэглээ нь компьютер болон серверийн гүйцэтгэлийг сайжруулах, гар утасны төхөөрөмж дээрх батерейны ашиглалтын хугацааг хэмнэхээс эхлээд програм хангамжийг оновчтой болгох, системийн аюулгүй байдлыг бэхжүүлэхэд туслах хүртэл үргэлжилдэг. Микроархитектурыг ойлгох нь процессоруудын хоорондох гүйцэтгэлийн ялгааны цаад шалтгааныг ойлгохоос гадна тооцоолох технологи хэрхэн хөгжиж байгааг ойлгох гэсэн үг юм.

Хэрэв та хүсвэл би энэ нийтлэлийг тодорхой нөхцөл байдалд тохируулан өөрчилж болно (жишээлбэл, сургууль/коллежийн даалгавар, ерөнхий блог эсвэл дамжуулах хоолойн урсгалын диаграмм болон оновчлолын жишээ бүхий илүү техникийн хувилбар).

Сэтгэгдэл үлдээх