follow

Процессорын архитектур - RISC, CISC процессорууд

КтМС-ийн Програм Хангамжийн ангийн "Компьютерийн зохион байгуулалт, Ассемблер хэл" хичээлийн хүрээнд судалсан нэг бие даалтын ажлыг оруулж байна. Компьютерийн процессорын бүтцийн талаар товчхон мэдлэгтэй болохыг хүсвэл энэ бие даалтын ажил танд туслана гэдэгт итгэлтэй байна.

1. ЗОРИЛГО

Энэхүү бие даалтын ажлаар микропроцессор хөгжлийн үе шатандаа хэрхэн хувьсан өөрчлөгдөж байсан талаар ерөнхий ойлголттой болох зорилго тавина. Ялангуяа микропроцессорын голлох архитектурын сонголт болох CISC, RISC архитектуруудын тухай судалж, үүсэл хөгжил, голлон баримтлах онол философийн талаар мэдлэгтэй болно. Эдгээр архитектурууд хоорондоо хэрхэн ялгагдах, аливаа үйлдэл гүйцэтгэхэд үзүүлж чадах давуу болон сул талуудыг энгийнээр тайлбарлаж, жишээн дээр илүүтэйгээр таниж авна.

Энэ хоёр архитектуртай өрсөлдөхүйц шинэ технологи бий болов уу? Эдгээрийн ирээдүйн чиг хандлага хаашаа чиглэж байна вэ?

risc vs cisc


2. ОНОЛЫН ХЭСЭГ

Аль нь сайн бэ?

RISC, CISC хоёрын аль нь сайн бэ гэсэн асуудал нь нэлээд түгээмэл асуулт юм. Intel (CISC), Apple (RISC) хоёр корпораци шинэ CPU танилцуулах болгонд энэ асуудал урган гардаг. Гэвч RISC, CISC хоёр нь чухам юу юм бол, аль нь үнэхээр сайн бэ?
Энэ сэдвээр би RISC, CISC хэмээх нэр томъёог энгийнээр тайлбарлаж, ирээдүйд эдгээр нь ямар түвшинд хүрэх вэ гэдгийг тайлбарлахыг оролдох болно.


CISC
intelamd

Энэ нь “сиск” гэж дуудагдах бөгөөд “Complex Instruction Set Computer” гэсэн үгсийн товчлол юм. “Complex Instruction Set Computer” гэдэг нь нийлмэл командын компьютер гэсэн утгатай. CPU хэрэглэдэг ихэнх компьютерүүд энэ архитектур дээр суурилсан байдаг. Жишээлбэл Intel, AMD CPU-нүүд.

CISC нь олон тооны, ялгаатай, нийлмэл /нарийн төвөгтэй/ коммандуудыг агуулсан байдаг. Үүний ард орших философи нь “Техник хангамж нь ямагт програм хангамжаас хурдан байдаг. Тиймээс үүгээр програмистуудад ассемблер коммандуудыг ашиглан богинохон програм бичээд хүссэнээ хийх боломжийг олгоно.” гэж үздэг.

Ихэнх тохиолдолд CISC чипүүд нь RISC чипүүдийг бодвол комманд биелүүлэлтээрээ харьцангуй удаан боловч тооны хувьд цөөхөн коммандыг ашигладаг. 

RISC

apple

“Риск” гэж дуудагддаг энэ нэр нь “Reduced Instruction Set Computer” гэсэн үгсийн товчлол. RISC нь 1980 оны дунд үед CISC архитектурын шинэчлэлээс салаалсан байна. Энэхүү архитектурын философи нь “CISC архитектурт хэрэглэгддэг нарийн нийлмэл ассемблер коммандуудыг хэрэглэхгүй, хэрэглэгчид нийлмэл коммандууд ашигладаггүй компайлер ашиглах болно.” гэж үздэг. Apple корпораци нь энэ философийг хэрэгжүүлэгчдийн нэг юм.

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

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

Эцэст нь цөөн тооны коммандуудтай болсоноос үүдэн хүчирхэг зохион байгуулагдсан компайлеруудыг бичих боломжтой болжээ.

RISC vs CISC

Мэргэжилтнүүдийн дунд аль архитектур нь илүү сайн бэ? гэсэн асуудал маргаантай хэвээр л байна. Зарим нь RISC нь илүү хурдан, хямд төсөр учраас яахын аргагүй ирээдүйн архитектур мөн гэдэг.

Харин зарим нь техник хангамжийг энгийнээр зохион бүтээх тал дээр RISC нь маш том саад тотгор учруулна. Учир нь програм хангамжуудыг илүү нарийн төвөгтэйгээр бичих хэрэгтэй болж, ингэснээр програм хөгжүүлэгчид ижил үйлдлүүдийг гүйцэтгэхийн тулд олон мөр код бичих шаардлага тулгарна гэж үздэг. Иймээс RISC нь ирээдүйн архитектур биш, уламжлалт CISC нь удахгүй илүү хурдан, хямдхан болно гэнэ. RISC архитектур гараад 20 жил болж байгаа хэдий ч CISC-ийг зах зээлээс түрж чадаагүй л байна. Дагалдах барааны зах зээлийг тооцолгүйгээр үндсэн зах зээл болох персональ компьютерүүд, воркстейшн болон серверийн зах зээлийн ойролцоогоор 75%-ийг CISC архитектур эзэлсээр байгаа. Эдгээрийн ихэнх х86 стандартынх (Intel, AMD гэх мэт), харин мейнфреймүүдийн хувьд IBM/390 чип ноёрхож байна. Эндээс харахад CISC оршин тогтносоор л байна.

Үнэхээр RISC  нь сайн биш гэж үү? Хариулт нь тийм ч энгийн биш юм. RISC болон CISC архитектурууд нь жил ирэх бүр хоорондоо төсөөтэй болсоор байна. Өнөөдрийн RISC чипүүд нь өчигдөрийн CISC чипүүдийн коммандуудыг өөртөө багтааж байна. Жишээлбэл PowerPC 601 нь Pentium-аас ч олон коммандтай. Цаашилбал өнөөдрийн CISC чипүүд RISC чипийн арга техникүүдээс өөртөө багтаасаар байна. Энгийнээр хэлбэл эдгээр хоёр архитектур нь бие биенээ хөгжүүлсээр л байна.
 
Х86 
Нэг чухал хүчин зүйл нь чухамхүү Intel, AMD процессоруудын хэрэглэдэг, CISC архитектурт суурилсан х86 стандарт юм. Гэрийн зориулалттай персональ компьютерүүдэд зориулсан стандарт. Windows 95 болон 98 үйлдлийн системүүд өөр ямар ч платформ дээр ажиллахгүй байв. Хэдийгээр RISC архитектур илүү хүчирхэг байсан ч х86-ийн зах зээлийг AMD болон Intel корпорациуд хаяагүй юм. 
Тэд гаднаа х86 гэгч шинэ стандартыг хэрэгжүүлж эхэлж байгаа мэт боловч дотроо RISC архитектурыг хэрэглэж байлаа. Энэ нь олон тооны нэмэлт зардлуудыг үүсгэж, боломжит ашиг орлогуудыг хааж байлаа. Гэсэн хэдий ч тэд үргэлжлүүлсээр байсны ачаар одоо х86 CPU-нүүд нь RISC CPU-нүүдийн бүх төрлийн хурдасгуурын механизмыг хэрэгжүүлэх чадвартай болсон юм.

Үүний дараа х86 CPU-нүүдийн үнэ RISC архитектурын бүхий л CPU-нүүдээс хямдхан болсон юм. RISC CPU үүнийг дагалдан үнээ буулгасан ч SUN UltraSPARC ижил хүчин чадалтай Pentium II workstation-оос үнэтэй хэвээр л байсан юм.

EPIC

CISC, RISC архитектурын хамгийн том өрсөлдөгч нь тэд өөрсдөө биш, харин EPIC нэртэй шинэ архитектур байлаа. Энэ Explicitly Parallel Instruction Computing гэсэн үгний товчлол юм. Тодорхой зэрэгцээ коммандын компьютер гэсэн утгатай. Зэрэгцээ гэсэн нь олон тооны коммандуудыг зэрэгцээ буюу зэрэг хийх боломжтой гэсэн үг юм.

EPIC нь Intel корпорациас гаргасан CISC, RISC хоёрын холимог архитектур юм. Гол онцлог нь Windows суурьтай үйлдлийн системүүд болон Unix суурьтай үйлдлийн системүүдийг нэг ижил CPU-ээр ажиллуулах байлаа. Intel энэхүү технологи дээрээ 2000 оныг хүртэл Merced код-нэрээр ажиллаж байгаад хожмоо 64bit чип болгосон юм. Тухайн үед EPIC процессорууд амжилттай хэрэгжвэл ирээдүйд CISC процессорууд ховордож, RISC процессорууд үгүй болж магадгүй гэж үзэж байлаа.

3. СУДАЛГААНЫ ХЭСЭГ

RISC архитектурын давуу болон сул талуудыг тодруулахын тулд түүний өвөг болох CISC архитектуртай харьцуулахад хангалттай.

Санах ой дахь 2 тоог үржүүлэх

Зурганд компьютерийн ерөнхий хадгалах байгууламжийг харууллаа. Үндсэн санах ой 4 багана, 6 мөрд хуваагдсан. Ажиллагааны байгууламжаас бүх төрлийн тооцооллыг авах боломжтой. Ерөнхий тохиолдолд санах ойгоос регистрт ачаалсан өгөгдлүүдэд л боловсруулалт хийх боломжтой. 2:3 болон 5:2-т хадгалагдсан хоёр тоог хооронд үржүүлэээд үр дүнг буцаагаад 2:3-т хийх хэрэгтэй боллоо гэж бодъё.  
risc vs cisc
CISC арга

CISC архитектурын гол чиг баримтлал нь ассемблерийн боломжит цөөн мөр кодоор үйлдлийг гүйцэтгэхэд оршдог. Энэ нь хэд хэдэн коммандуудыг ойлгож, ажиллуулах чадвартай техник хангамж бүтээхэд хүргэдэг. Энэ удаагийн жишээг CISC-ийн ганцхан коммандаар гүйцэтгэх боломжтой. Үүнийг MULT комманд гэдэг. Энэ коммандыг хэрэгжүүлэхэд санах ойгоос тоонуудыг авч тус тусын регистрт хадгалаад, үржүүлснийхээ дараа үр дүнг харгалзах регистрт буцаан хадгална. Ингэхлээр ганц мөр кодоор дээрх үйлдлийг гүйцэтгэх боломжтой боллоо:

MULT 2:3, 5:2

MULT нь нийлмэл коммандад багтана. Энэ нь компьютерийн санах ойтой шууд ажиллаж, програмистад өгөгдлийг дуудах, хадгалах шаардлага гарахгүй. Өндөр түвшний програмчлалын хэлд нэлээд дөхсөн. Хэрэв 2:3-ийг “а”, 5:2-ийг “b” гэвэл С хэлний синтакстай адилхан болно.
а = a * b;

Энэхүү архитектурын нэг давуу тал нь компайлер дээд түвшиний програмчлалын хэлүүд дээр бичигдсэн кодыг ассемблер хэл рүү хөрвүүлэхэд цөөн тооны үйлдэл хийдэгт оршино. Учир нь кодын урт харьцангуй богино, коммандыг хадгалахад шаардагдах шуурхай санах ой бага шаардагдана.
 
RISC арга

RISC процессорууд зөвхөн нэг клок давтамжинд багтах жижиг коммандуудыг биелүүлэх боломжтой байдаг. MULT комманд нь үүний дагуу 3 тусдаа комманд болон сална. LOAD буюу өгөгдлийг санах ойгоос авч регистрт хуулах комманд, PROD буюу регистрт байх хоёр операндын үржвэрийг олох комманд,  STORE буюу үр дүнг санах ойд хадгалах комманд. CISC арга дээр дүрсэлсэн ганцхан коммандыг биелүүлэхийн тулд RISC нь дөрвөн мөр коммандыг биелүүлэхэд хүрнэ.

LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Эхэндээ энэ арга нь үр дүн муутай арга мэт санагдаж болох юм. Учир нь олон мөр кодтой учир ассемблерийн түвшний коммандуудыг хадгалахын тулд илүү хэмжээний санах ой шаардана. Дээд түвшний хэлээс ассемблерийн түвшин рүү хөрвүүлэхэд компайлер илүү олон үйлдэл хийнэ гэх мэт. Гэхдээ RISC нь хэд хэдэн давуу талтай. Комманд бүрт ганцхан клок шаардлагатай, цаг хугацааны хувьд олон клокын коммандуудтай зэрэг ажиллаж дуусна. Багасгасан коммандуудад нийлмэл коммандуудтай харьцуулбал техник хангамжийн зайнаас бага хэмжээний транзисторууд шаардагдана. Үүнээс үүдэн ерөнхий зориулалтын регистрүүдээ ихэсгэх боломжтой болно. Комманд биелэх хугацаа нь нэгэн ижил учраас pipelining хэрэгжүүлэх боломжтой. LOAD, STORE коммандуудыг тусад нь салгаснаар компьютерийн хийх ёстой зарим ажлыг багасгадаг. CISC хэлбэрийн MULT комманд ажилласны дараа процессор автоматаар регистрүүдийг цэвэрлэдэг. Хэрэв операндуудын аль нэг өөр нэг тооцоололд хэрэгтэй болвол санах ойгоос буцаан ачаалах хэрэгтэй болно. RISC архитектурт тухайн регистрт утга дахин ачаалтал  хуучин утга нь хадгалагдаж байдаг.

CISC
• Техник хангамж дээр тулгуурласан
• Олон клокын нийлмэл коммандтай
• Санах ойгоос санах ойд: LOAD, STORE-г комманддаа багтаасан
• Бага хэмжээний код, секундэд олон цикл
• Нийлмэл коммандуудыг хадгалахын тулд транзисторууд шаардагдана

RISC
• Програм хангамж дээр тулгуурласан
• Нэг клокын, багасгасан коммандтай
• Регистрээс регистр: LOAD, STORE нь тусдаа коммандууд
• Том хэмжээний код, секундэд цөөн цикл
• Санах ойн регистрүүдэд илүү олон транзистор шаардагдана

Гүйцэтгэлийн тэгшитгэл

Компьютерийн гүйцэтгэлийн үзүүлэлтийг гаргахдаа дараах тэгшитгэлийг ашигладаг:
Програмын хугацаа = Нэгж циклийн хугацаа х Коммандын циклийн тоо х Програмын коммандуудын тоо

CISC архитектур нь нэг комманд дахь циклийн тоонд анхаарал хандуулалгүйгээр програм дахь коммандын тоог багасгахыг зорьдог. RISC харин эсрэгээр комманд дахь циклийн тоог бууруулахыг зорьдог.

Коммандын цикл

Коммандын цикл гэдэг нь (дуудан-биелүүлэх цикл, дуудан-тайлах цикл гэж нэрлэж болно) компьютер өөрийн санах ойгоос машины хэл дээрх коммандыг гүйцэтгэх хугацааны үечлэл, эсвэл Төв Боловсруулах Байгууламж (Central Processing Unit) програм дахь бүх коммандуудыг биелүүлэх үйлдлийн давтамж юм.

Дуудан-биелүүлэх цикл гэж ихэвчлэн нэрлэгддэг. Комманд нь эхэлж үндсэн санах ойгоос дуудагдаж, дараа нь CPU-ээр биелэгддэг. Энэ нь ерөнхийдөө машины хэл дээр бичигдсэн коммандын олонлогийг CPU уншаад, биелүүлэх үндсэн дараалал юм.

Коммандын цикл

Компьютерийн CPU бүр өөрийн коммандын багцаасаа хамаарч янз бүрийн коммандын циклтэй байдаг.

1. Үндсэн санах ойгоос коммандыг дуудах

CPU нь хаягийн түгээгүүрээр програмын тоолуурын утгыг дамжуулна. Дараа нь коммандыг үндсэн санах ойгоос өгөгдлийн түгээгүүрээр дамжуулан өгөгдөл хадгалах регистр рүү дуудна. Өгөгдөл хадгалах регистрийн утга нь коммандын регистр рүү шилжинэ. Коммандыг хадгалах энэ давталтын үр дүнд түүнийг тайлах, биелүүлэх боломжтой болно.

Коммандыг тайлах
Коммандын тайлагч нь коммандыг хувиргаж, гүйцэтгэнэ. Програмын тоолуур дараагийн ажиллах коммандын хаягийг санах ойгоос авах үед коммандын регистр нь тухайн коммандыг өөртөө авдаг. Машин цикл буюу коммандын цикл нь үндсэн 4 хэсэгт хуваагдана:
- Коммандыг дуудах
- Коммандыг тайлах
- Коммандыг гүйцэтгэх
- Коммандыг хадгалах
Эхний хоёр нь коммандыг санах ойгоос авч тайлдаг бол, сүүлийн хоёр нь коммандыг ажиллуулна.



2. Үндсэн санах ойгоос өгөгдлийг дуудах

Хэрэв комманд нь шууд бус хаягийг агуулж байвал шаардлагатай хаягийг үндсэн санах ойгоос уншина. Шаардлагатай өгөгдлийг санах ойгоос регистрүүд рүү ачаална.

3. Коммандыг биелүүлэх

Коммандын регистр дэхь коммандыг Хянах Байгууламж тайлдаг. Үүний дараа тайлагдсан мэдээллийг хяналтын дохиоллын давтамж байдлаар CPU-ийн зохих Үйлдлийн байгууламж руу, регистрээс утгуудыг уншаад, тодорхой үйлдэл хийн, үр дүнг нь буцаан регистрт бичих гэх мэт коммандад шаардлагатай үйлдлүүдийг гүйцэтгэхийн тулд дамжуулдаг. Арифметик Логик Байгууламж нь тухайн үйлдэл амжилттай болвол зохих дохиог Хяналтын Байгууламж руу дамжуулна.

4. Үр дүнг хадгалах

Санах ой руу буцаан бичих гэж нэрлэж болно. Үйлдлээр гүйцэтгэгдсэн үр дүн үндсэн санах ойд хадгалагдах юмуу, гаралтаар гарч байдаг. Арифметик Логик Байгууламжаас ирсэн хариунаас шалтгаалан Програмын тоолуур нь нэмэгдэх, эсвэл дараагийн дуудагдах коммандын хаягаар шинэчлэгддэг.

Дуудах цикл

Коммандын циклийн 1, 2-р алхмыг дуудах цикл гэдэг. Эдгээр нь комманд бүрт ижилхэн. Дуудах цикл нь операнд болон опкодыг өөртөө агуулсан коммандын үгнээс коммандыг боловсруулдаг.

Биелүүлэх цикл

Коммандын циклийн 3, 4-р алхам нь биелүүлэх циклийн хэсэг юм. Эдгээр нь комманд бүрт өөрчлөгдөж байдаг. Эхний алхам нь Санах ойн боловсруулалт. Өгөгдөл CPU болон Оролт гаралтын модулиудын хооронд дамжина. Дараагийн алхам нь математик болон логик үйлдлүүдийн тусламжтайгаар өгөгдлийг боловсруулах алхам юм. Гол өөрчлөлт нь дараагийн алхам буюу үсрэх үйлдэл гэх мэт үйлдлийн давтамж бөгөөд эцсийн алхам нь эдгээрийг нэгтгэсэн алхам.

4. АШИГЛАСАН НОМ МАТЕРИАЛУУД

Armin Gerritsen “CISC vs RISC”
http://www.wikipedia.org/CISC_processor.htm
http://www.wikipedia.org/RISC.htm
http://cse.stanford.edu/class/sophomore-college/projects-00/risc/whatis/index.html
http://www.wikipedia.org/Instruction_cycle.htm

By Boldkhuu Batbaatar with 0 сэтгэгдэл

0 сэтгэгдэл: