Командаларының конвейерлі орындалуы



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 24 бет
Таңдаулыға:   
КУРСТЫҚ ЖҰМЫСТЫ ОРЫНДАУҒА ТАПСЫРМА

Студент: Дандыбаев М.Б.

Тақырыбы: Pentium MMX микропроцессоры.

Аяқталған жұмысты тапсыру уақыты: __________________2005 ж.

Жұмыс барысында қолданылатын бастапқы мәліметтер мазмұны, жұмысты
сипаттайтын негізгі бөлім қорытынды.

Жұмыс жетекшісі: Өнгенбаева Ж. Ж.

Тапсырманы орындауға қабылдап алған студент: Дандыбаев М.Б.

______________2005 ж.

Мазмұны
Кіріспе
Негізгі бөім
1. Pentium микропроцессорларының микроархитектурасы
2. Ішкі бүркеме-жады
3. Регистрлер
3.1. Жалпы мақсатты регистрлер
3.2. Сегменттік регистрлер
3.3. Күй және басқару регистрлері
4. Кеңейтілген командалар жүйелері
4.1 SIMD-командалары
4.2 SPFP – командалары
5. Pentium MMX процессоры
5.1 ММХ блогы
5.2 ММХ операциялық блогының командалары
6. Қорытынды
7. Қолданылған әдебиеттер
8. Қосымша А

Кіріспе

1971 жылы Intel фирмасының бірінші микропроцессорды жасап шығару
компьютер дәуіріне бастама болды. Ширек ғасыр ішінде микропроцессор өте
үлкен жетістіктерге жетті. Intel 404 бірінші типі 750 кГц жұмыс істеді және
2300 транзистордан тұрды. Оның өнімділігі секундына 60 мың операциямен
бағаланды.

Бүгінгі таңда ең жақсы микропроцессор alpha 21264микропроцессоры болып
саналады. Ол 7000 кГц жиілікте жұмыс істейді және 15.2 млн. транзистордан
тұрады. Секундына 2 млрд. операция орындайды.
Микропроцессор ең күрделі микроэлектрондық құрылғы.оған ғылыми және
инженерлік жаңалықтар, ең соңғы жетістіктер енгізіледі.
Pentium микропроцессорының негізгі ерекшелігі оның микроархитектурасымен
байланысты. Микроархитектурасы оның ішкі құрлымының жүзеге асырылуын
анықтайды, келетін командалардың орындалу принципін, мәліметтердің орналасу
және өңделу тәсілдерін. NetBurst (пакеттік-жеіі) атқа ие болған, Pentium 4
микропроцессорының микроархитектурасы Интернет – қосымшаларымен тиімді
жұмыс істеуіне негізделген. Айтып кететін жай, NetBurst
микроархитектурасында алдынғы Pentium III модеінде қолданылған көптеген
принциптер жүзеге асырылған.

1. Pentium микропроцессорларының микроархитектурасы

Intel компаниясы AGP шинасымен Pentium II базасы жүйесінде жұмысқа
бағдарланған 1740 графикалық процессорын шығарып, графикалық амалдарда
өнімділіктің өсу амалын жиілікті ойлауға тырысты. Онда қолданылған
жылжымалы нүктелі командалардың параллельді орындалу технологиясы арқасында
бұл процессор үшөлшемді графикалық бейнелеудің өңделуі жылдам болуын
қамтамасыз етті.
Бұл архитектураның ерекшелігі:
• Командалар мен мәліметтер ағыны бөлінген ішкі жадының гарвардтік
архитектурасы;
• Орындаушы құрығыларында параллелді жұмыс істейтін бірнеше
командалардың бір уақытта жұмыс істеуін қамтамасыз ететін
суперскалярлы архитектура;
• Тізбекті командаларының динамикалық өзгеруі;
• Командаларының конвейерлі орындалуы;
Pentium 4 микропроцессорының құрылымында бірнеше ерекшеліктері бар (1-
сурет).
Гарвардтік ішкі құрылым жүйелік шинадан келетін сыртқы интерфейс арқылы
және процессор кристалында орналасқан ортақ 2-ші деңгейлі сыйымдылығы 256
(512) Кбайт кэш-жады (L2) арқылы, командалардың және мәліметтердің
ағымдарының бөліну әдісімен жүзеге асырылады. Бұндай орналасу Pentium III-
пен салыстырғанда командалар мен мәліметтердің таңдау уақытын қысқартады,
мұндағы кэш-жады бөлек кристалда орналасады, процессормен бірге ортақ
корпуста бекітілген. 1-ші деңгейлі кэш-жадының шинасының ені 128 битті
құрайды.
Сыртқы интерфейс блогы процессордың жүйелік шинамен ауысуын жүзеге
асырады. Оған жады, енгізушығару контроллері және басқа жүйенің активті
құрылғылары қосылады. Жүйелік шина бойынша ауысу 64-разрядты екі бағытты
мәліметтер шинасы, 41-разрядты адрес шинасы көмегімен жүзеге асырылады. Ол
64-байтқа шейін сыртқы жадының таңдау режимдерінің кең спектрде адресацияны
қамтамасыз етеді.

1-сурет Pentium 4 микропроцессорының құрылымы

Командалар дешифраторы микропрограммалар жадысымен бірге жұмыс істейді.
Келген командалардың орындалуын қамтамасыз ететін, микрокомандалардың
тізбегін қалыптастырады. Орындау үшін алынатын, декодталған командалар
микрокомандалар кэш-жадысына жүктеледі. Кэш-жады 12000-дай микрокомандалар
сақтай алады. Бұл Pentium III – гі кэш-жадыда декодталмаған командалар х86
сақталғаннан маңызды ерекшелігі. Оның тоуынан кейін кез-келген команда
декодтаған түрде сақталады. Сондықтан кезекті команда түскенде ізсалу блогы
бұл кэш-жадыдан керекті, оның орындалуын қамтамасыз ететін микрокоманданы
таңдайды. Егер командалар ағымында шартты өту командасы (программаның
тармақталынуы) болса, онда өтудің орындалу шарты анықталғанға дейін келесі
таңдалатын команданың адресін қалыптастыратын тармақтауды болжайтын
механизм (тетік) қосылады.
Микрокомандаар ағымдарының қалыптасуынан кейін, декодталған
командалардың орындалуы үшін қажетті регистрлердің ерекшеленуі өндіріледі.
Бұл процедура регистрлер орналастыру блогына кіретін, әрбір белгіленген
логикалық регистр командасында 128 физикалық регистрлерден біреуін
белгілейтін регистрерді орналастыру блогымен жүзеге асырылады. (Pentium II
процессорынде 4 регистер боған).
Бұл процедура бір уақытта немесе олардың тізбектелінуінің өзгеруімен
сол бір логикалық регистрлерді қолданатын командалардың орындалуына рұқсат
береді.

Таңдалған микрокомандалар микрокомандалар кезегінде орналасады. Оның
ішінде 126-ға дейінгі түскен және декодталған командалардың орындалуын
жүзеге асыратын және кейін операндтардың дайын болу шамасына қарай орындау
құрылғыларына қарай бағытталған микрокомандалар бар. Айтып кететін жай,
Pentium III процессорында кезекте 40 түскен командалар үшін микрокомандалар
бар. Кезекте тұрған командалар санының өсуі, параллелді орындала алатын,
командалардың орындалу тізбегін өзгерту және командаларды белгілеу арқылы
олардың орындалу ағымын тиімді ұйымдастыруын қамтамасыз етеді. Бұл
функциялар микрокомандалардың үлестіру блогын жүзеге асырады. Ол
микрокомандаарды түсу реті бойынша таңдамайды, ал сәйкес операндтардың және
атқару құрылғыларының дайын болуына байланысты таңдайды. Нәтижесінде кейін
түскен командалар алдында таңдалған командалардан бұрын орындалуы мүмкін.
Сонымен қатар параллелді жұмыс істейтін атқару құрылғыларында бірнеше
микрокомандалардың (командалардың) бір уақытта орындалуы болады. Сол
себепті параллелді қосылған атқару құрылғыларының толық жүктелуін және
процессордың өнімділігін көтеру үшін қамтамасыз ету үшін командалардың
кәдімгі орындалу реті бұзылады.
Процессор Транзистор саны Шығарылған жылы
4004 2300 1971
8008 3500 1972
8080 6000 1974
8080A 6000 1976
8085 6500 1976
8085A 6500 1978
8086 29000 1978
8088 29000 1979
188 100000 1982
186 100000 1982
286 134000 1982
386 275000 1985
386SX 275000 1988
386SL 855000 1990
486SX 1185000 1991
486 1200000 1989
Pentium 3100000 1993
686 22000000 1994-1996
786 100000000 1999-2001

Суперскаляры архитектура параллелді жұмыс істейтін блоктар қатары
түрінде процессордың атқару ядросын ұйымдастыру жолымен жүзеге асырылады.
Арифметикалық – логикалық блоктар ALU БРЗ берілген регистрерінен келетін,
бүтін санды операндтардың өңдеуін жасайды. Бұл регистрлерге операция
нәтижесі де енгізіледі. Сонымен қатар шартты өту командалары үшін
тармақтану шарты тексеріледі және тармақтануды дұрыс болжамаған кезде
командаар конвейерін қайта қосу сигналы беріледі. Атқару ядросы
операцияларды орындау үшін жоғарғы жылдамдықпен жұмыс істейді. Мысалы,
бүтін санды операндтарды қосу микрокомандасы процессордың тактілік жиілігі
1,5 МГц болғанда 0,36 нс ішінде орындалады.
Операндтар адрестері жадыдан таңдалатын, сыйымдылығы 8 Кбайтқа тең 1-ші
деңгейлі (L1) кэш-жадымен интерфейсті жүзеге асыратын адресті қалыптастыру
блогымен (БФА) есептеледі. Сәйкесінше берілген декодталған командалардағы
адрестелу әдістермен БРЗ регистріне жадыдан операндтарды жүктеу үшін 48
адрес және регистрден жадыға жазу үшін 24 адрес қалыптастырылады (Pentium
III –те 16 адрес регистрлерді жүктеу үшін және жадыға жазу үшін
қалыптастырады). Сонымен қатар, БФА әлі орындалуға келмеген командаар үшін
операндтар адресін қалыптастырады. БФА жадыға қарым – қатынас жасау кезінде
бір уақытта 2 операндтың адресін шығарады: біреуі берілген БРЗ регистрге
операндты жүктеу үшін, екіншісі нәтижелерді БРЗ –дан жадыға қайта жіберу
үшін. Сол себепті, спекулятивті таңдама деп аталатын, атқару блоктарында
олардың келесі өңделуі үшін мәліметтерді алдын – ала оқу процедурасы
қалыптасады.

Аналогты түрде бөлек жинақ регистрерін және операндтар адресін
қалыптастыратын блокты қолданатын SSE, FPU, MMX блоктарының параллелді
жұмысы ұйымдастырылады.
Жадыдан операндты таңдау кезінде оқу және жазу бөлек порттар бар кэш-
жадыға (L1) қарым – қатынас жасайды. Бір такт ішінде екі команда үшін
операндтарды таңдау жүргізіледі. Бұл кэш-жадыға қатынау уақыты тактілік
жиілігі 1,5 ГГц болғанда 1,42 нс құрайды. Бұл Pentium III салыстырғанда 2,1
есе кіші. 1-ші деңгейлі кэш-жады процессор жиілігінде жұмыс істейді.
Адрестердің қалыптастырылуы кезінде берілген жады сегментіне
қатынас жасалынады. Адрестік кеңестіктің әр жерінде орналасатын, әрбір
сегмент беттерге бөліне алады. Адрестерді тарату блоктары беттік жадыны
ұйымдастыру кезінде мәліметтер және командалардың физикалық адрестерін
қалыптастыруын қамтамасыз етеді. Тарату уақытын қысқарту үшін жиі
қолданылатын беттерді базалық адрестерді сақтайтын ішкі буферлі жады
қолданылады.
Pentium 4-те командалық орындаудың гиперконвейері технологиясы
қолданылады. Бұл кезде конвейердің қадам саны 2-ға тең (Pentium II - 5
Pentium III – 11). Сол себепті бір уақытта орындалу процесінде 2 команда
болуы мүмкін, әр түрлі қадамда жүзеге асырылуы кезінде.
Басқа программа тармақтарынан команданы таңдау және барлық алдынғы
қадамдарда тазалауға талап етілген кезде шартты тармақты орындаған кезде
оның қайта қосылуы қажеттігінен конвейер тиімділігі тез түседі. Конвейірді
қайта қосуға кеткен уақытты қысқарту үшін тармақтануды болжау блогы
қолданылады. Оның негізгі бөлігі болып ассоциативті жады болып табылады. Ол
адрес тармақталыну буфері деп атаады (BTB – Branch Target Buffer), онда
алдында орындалған өтулердің 4092 адресі сақталады. Pentium III-те тек қана
өтулердің 512 адресі сақталады. Одан басқа, ВТВ –да тармақтанудың
кіріспесін сақтайтын, берілген команданы алдыңғы таңдау кезінде өту болып
жатқанын көрсететін биттер бар. Биттер өту командасының неше рет болғанын
білдіретін бегісі бар санды сақтайтын 2-битті счетчик ретінде көрсетеді.
Кезекті шартты өту командасының түсуі кезінде онда көрсетілген адрес ВТВ
құрамымен салыстырылады. Егер ол адрес ВТВ –да жоқ болса, яғни берілген
адрес бойынша өтулер формасы, онда тармақтаудың жоқтығы болжанылады. Бұл
жағдайда өту командасын ан кейін болатын таңдау және команданы декодтау
жалғасады. Белгіленген команданың адрес өтуі ВТВ-да сақталынатын
адрестермен сәйкес келсе, онда анализ кіріспесі болады. Анализ процесі
кезінде жүзеге асырылып жататын тармақтың бағыты жиі анықталады және де
кезектелген өтулер анықталады. Егер тармақтаудың орындалуы болжанылса,
онда болжанылған адрес бойынша огрналасқан команда таңдалып конвейерге
жүктеледі. Pentium 4-те қолданылатын тармақталуды болжаудың жетілдірілген
блогы болжаудың дұрыстығының ықтималдылығын 90%-ке дейін қамтамасыз етеді.
Сол себепті конвейердің қайта қосу саны азаяды.
IU1, IU2 блоктары бұл блоктар бүтін санды операцияларды орындайтын
командаларды өңдейді. Осы класқа қайта жіберуді орындау командалары,
арифметикалық және логикалық операцияларды орындау командалары және басқа
да мәліметтерді түрлендіру командалары да кіреді.
FPU блогы жылжымалы нүктелі сандармен операцияларды орындайтын
командаларды өңдейді. Бұл класқа жылжымалы нүктелі форматта берілген,
нақты, бүтін және екілік-ондық сандармен операцияларды орындайтын
командалар кіреді. Бұндай көрсетім өңделетін сандардың диапазонын кеңей
туге мүмкіндік береді.

2. Ішкі бүркеме-жады

Бүркеме жады процессор мен негізгі жады арасында орналасқан, шапщаң
әрекетті шектеулі көлемді буферлік жады болып табылады. Жұмыс процесінде
информацияның бөлек блоктары негізгі жадыдан бүркеме-жадыға көшіріледі.
Негізгі жадыдан бүркеме-жадыға ақпаратты жүктеу процедурасы бүркемелеу деп
аталады. Процессор командаға немесе мәліметтерге қатынағанда алдымен
олардың бүркеме-жадыда бар екенін тексереді. Егер керек ақпарат сол жерде
болса, онда ол тез алынады, себебі бүркеме-жадыға қатынау процессордың
тактілік жиілігімен орындалады. Қатынаудың осы түрін бүркеме-дәл түсу (кэш-
попадание) деп аталады. Егер керек ақпарат бүркеме жадыда болмаса, онда ол
негізгі жадыдан алынады және сол сәтте бүркеме-жадыға жазылады. Қатынаудың
осы түрін бүркеме-қате түсу (кэш-промах) деп аталады.
Адрес
31 12 11
5 4 0
TAG SET BYTE

19 255
0
tag 0 L0
tag 1 L1
tag 2 L2
tag 3 L3
tag 0 L0
tag 1 L1
tag 2 L2
tag 3 B31 L3 B1
B0

tag 0 L0
tag 1 L1
tag 2 L2
tag 3 L3

2 - сурет. Бүркеме-жадының құрылымы және оған қатынау блогы.

Егер бүркеме-дәл түсу бүркеме-қате түсуге қарағанда неғұрлым көп жүзеге
асырылса, соғұрлым есептеу жүйенің шапшаңдығы өседі.
Р3 процессорарда командаларды және мәліметтерді сақтауға арналған ішкі
бүркеме-жады қолданылады. Олардың әрқайсысының көлемі 16 Кбайт.
Ішкі бүркеме жадыдан басқа қосышқа сыртқы бүркеме жады бар. Оған
қатынау үшін сыртқы интерфейс блогына қосылатын, процессордің тактілік
жиілігімен жұмыс істейтін бөлек шина қолданылады. Бүркеме жадының құрылымы
2-ші суретте көрсетілген. Бұл жады ассоциатифті типті, ұзындығы 32 байт
жолдардан тұрады. Командалар бүркеме жадыда жолдар 128 жинаққа
біріктірілген S0-S127 және олардың әрқайсысы 4 жолдан (L0, L1, L2, L3)
тұрады. Мәліметтердің бүркеме жадысы екі жолы (L0, L1) бар 256 S0-S255
жинақтан тұрады.
Бүркеме жады адрестеуі адрестің 32-разряды көмегімен орындалады, олар
үш өріске бөлінеді: TAG, SET, BYTE.
Бүркеме жадыға қатынау негізінде SET өрісінің құрамы таңдалынатын
жинақтың номерін анықтайды. Адрестің жоғарғы разрядтарының TAG өрісі, м
әндері тектер өрістерінің (TAG0-TAG3) құрамымен таңдалған жинақтың
жолдарында салыстырылады. Егер TAG мәні бір жолдың тегінің құрамымен
сәйкес келсе, онда бүркеме дәл түсу бекітіліп, BYTE өрісі адрестелген
операнд осы жолдан алынады. Егер TAG мәні бір жолдың тегінің құрамымыен
сәйкес келмесе, онда бүркеме қате түсу бекітіледі.
Бүркеме жады мен негізгі жады арасында жолдарды қайта жіберуді сыртқы
интерфейс блогы дестелі циклдар көмегімен орындайды. Дестелі циклдарды және
64-разрядты жүйелік шинаны қолдану бүркеме жадының құрамын тез жаңартуын
қамтамасыз етеді.
1-ші деңгейлі кэш-жады ды өзгеріске ұшырады. Мәліметтерді және
командаларды сақтайтын Р3 кэшімен салыстырғанда, Р4-те тек қана 8КБ
мәліметтер кэші бар. Процессорге орындалу үшін түсетін командалар Trace
Cache атты кэште сақталады. Ол жерде олар декодталған түрде сақталады, яғни
процессордың атқаратын құрылғыларына орындалу үшін түсетін,
микрооперациялар тізбегі ретінде болады. Бұл кэштің сыйымдылығы 12000
микрооперациялар.
2-ші деңгейлі кэш-жады, Willamette ядросында істелген, 256 КБ көлемімен
қалды. L2 кэшінің шина ені 256 бит, бірақ кэш латенділігі 2 есеге түсті.
Бұл оның өткізу қабілеттілігін, жиілігі 1,5 ГГц, 48 ГБ-қа дейін көтерді.
Р3-те қамтамасыз ететін жаңа командалар типі енгізілген:
• негізгі жадыға қатынас саны қарастырылуы және қолдану тиімділігінің
жоғарылауы мақсатымен мәліметтерді бүркемелеуді басқару;
• жадымен бірге ауысу және есептеу конвейерінің параллельді жұмыс
организация мақсатымен мәліметтерді бүркемелеуді алдын-алу.
Жадыдан операндты таңдау кезінде оқу мен жазуға арналған бөлек
порттары бар мәліметтер бүркеме-жадысына қатынау орындалады. Нәтижесінде,
бір уақытта екі командаға арналған операндтар таңдалады. Мә ліметтер
бүркеме-жадыда адрестелетін операнд болмаса буферлік жадыға қа тынау блогы
MOB (Memory Order Buffer) көмегімен екінші деңгейлі бүркеме-жадыға немесе
негізгі жадыға (жүйелік шина арқылы) қатынау орындалады. Бұл блок
операндты орындау кезінде спекулятивтік таңдауды жүзеге асырады.
Негізгі жадыға жазылатын мәліметті аралық сақтау үшін MOB блогының
құрамында жазбаның мәліметтер буфері бар.
Сыйымдылығы 32 байт буферлік жады жазба нәтижесін жүйелік шина басқа
алмасу циклдерін орындап біткенге дейін кідіртеді.
Процессор жүйелік шинаға қатынауды қажет етпейтін команданы орындығын
кезде нәтиже жазылады. Осы арқылы жүйелігінің өнімділігі қосымша өседі.
Бүркеме-жадыны қолдана отырып, негізгі жадымен алмасу дестелі қатынау
циклдары арқылы өтеді. Осы циклдар арқылы бүркеме-жадының бір жолдың
құрамын (32 байт) қайта жіберуге болады. Сыртқы 64-разрядты мәліметтер
шинасы осындай қайта жіберуді машиналық уақыттың бес тактысында орындауға
мүмкіндік береді: бірінші такт жолдың адресін орнатуға арналған, ал келесі
төрт такт ішінде мәліметтер беріледі. Бұл кезде алмасуды басқаратын керекті
сигналдар бір-ақ рет ( циклдың басында) орнатылады, ал беру тактыларындағы
адрестің кіші разрядтарының өзгеруі автоматы түрде негізгі жадымен
орындалады.
Адрестерді қалыптастыру кезінде берілген жады ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Серверлі орталық процессордың сәулеті мен өнімділігі
Конвейерлі қондырғылардың электр жетектерінің жүктемелері
Өндірістегі электр жетектерінің параметрлін оңтайландыру
Ұйымның ішкі және сыртқы ортасы туралы
Өндірістік тәжірибе есебі
Шахтинск шахтасының «K-6 блоктың №4 кенішінің, және тау-кен жұмыстарын дайындау, ашу, өндіру»
Негізгі арифметикалық амалдарды орындаудың эффектифті қолданылуы
Малды сою
Нан пісіру пешінің жетілдірілуі
Бағдарлы оқытуды ұйымдастырудың негіздері
Пәндер