Сөж тақырыбы: Жадының бастапқы адресі мен ақырғы адресі қойылатын, 16х4 өлшемді жадыға тура шығу контроллері (dma, DirectMemoryAccess). Тексерген: Исламгожаев у орындаған: Маханбет м аязбек р алламжаров А



бет1/2
Дата18.05.2022
өлшемі1.2 Mb.
#457101
  1   2
1 Срс Маханбет Мұқасан цифросхемотехника (1)-2


Қазақстан Республикасы білім және ғылым министрлігі
Әл - Фараби атындағы Қазақ Ұлттық Университеті




Факультеті « ФИТ »
Мамандық « КИ-1903 »

СӨЖ

Тақырыбы: Жадының бастапқы адресі мен ақырғы адресі қойылатын, 16х4 өлшемді жадыға тура шығу контроллері (DMA, DirectMemoryAccess).
Тексерген: Исламгожаев У
Орындаған:Маханбет М
Аязбек Р
Алламжаров А
Әбдіқайыр М


Алматы 2022ж
Жоспары
1.Кіріспе
2. Жадқа тікелей қол жеткізу (DMA)
3. ОП-дан VU-ға немесе керісінше
4. PDP арнасы
5. Қорытынды
6. Пайдаланылған әдебиеттер
Жадқа тікелей қол жеткізу (DMA) – орталық процессор (CPU) қатыспайтын компьютер құрылғылары арасында немесе құрылғы мен негізгі жад арасында деректер алмасу режимі. Деректер процессорға және одан жіберілмейтіндіктен, тасымалдау жылдамдығы артады.
Егер дәйекті адрестерде орналасқан жад ұяшықтарын толтыру қажет болса, «жарылу» шинасы режимі қолданылады:
деректер өлшемі DMA контроллері регистріне жазылады;
бірінші цикл бірінші ұяшықтың адресін беру үшін қолданылады;
келесі циклдер көрсетілген өлшемдегі деректерді жіберу үшін пайдаланылады.
Жадпен процессорды ұқсас оңтайландыру өте қиын.
Түпнұсқа IBM PC архитектурасында (ISA шина) DMA тек аппараттық DMA контроллерімен (Intel 8237 чипі) мүмкін болды.
DMA контроллері орталық процессордан тәуелсіз жүйелік шинаға қол жеткізе алады және бірнеше регистрлері бар. DMA контроллерінің регистрлері оқу және жазу үшін орталық процессорға қолжетімді және мыналарды орнату үшін пайдаланылады:
деректерді тасымалдау үшін пайдаланылатын порт нөмірі;
операция түрі (оқу немесе жазу);
тасымалдау бірліктері (байт немесе сөз);
тасымалданатын деректердің байттағы өлшемі.

Құрылғыдан деректерді оқу процесін қарастырыңыз. Орталық процессор мәндерді DMA контроллері регистрлеріне жазады, деректерді оқу үшін құрылғыға (мысалы, дискіге) команда жібереді. Құрылғы деректерді оқиды (мысалы, дискіден) және оның ішкі жадына (буферге) жазады. DMA контроллері мекенжай шинасында ДК жадының мекенжайын орнатады, құрылғының ішкі жадынан (буферінен) деректерді оқу үшін құрылғыға сұраныс жібереді. Құрылғы сұрауды алады және сұраудың орталық процессордан немесе DMA контроллерінен келгенін білмейді.
Құрылғы келесі сөзді өзінің ішкі жадынан (буферінен) мекенжай шинасында орналасқан мекенжай бойынша ДК жедел жадына жібереді. Содан кейін құрылғы DMA контроллеріне жазудың аяқталуын көрсететін сигнал жібереді. DMA контроллері ДК жады адресін ұлғайтады және оны адрес шинасына орналастырады, оның байт есептегішінің мәнін азайтады және құрылғының ішкі жадынан (буферінен) деректерді оқуға қайтадан сұраныс жібереді. Есептегіш мән нөлге айналғанша цикл қайталанады. Цикл аяқталғаннан кейін құрылғы деректерді тасымалдаудың аяқталғанын көрсететін процессордың үзілуін бастайды.
Бірнеше операцияларды параллель орындауға қабілетті DMA контроллері көп арналы деп аталады.
Функционалды сипаттама

DMA контроллері Cortex-M3 ядросымен ортақ пайдалану үшін жүйелік шинаны ортақ пайдалану арқылы DMA тасымалдауларын орындайды. DMA сұрауы, егер процессор мен DMA контроллері бірдей деректер тағайындалған жерге (жад немесе перифериялық) жүгінсе, процессордың жүйелік шинаға кіруін бірнеше циклге кешіктіруі мүмкін. Шина матрицасы процессорға жүйелік шинаның өткізу қабілеттілігінің кем дегенде жартысы (жад үшін де, перифериялық кіру үшін де) берілуін қамтамасыз ететін айналымды жоспарлауды жүзеге асырады.


Суретте. 1 Төмен тығыздықтағы мән сызығының, орташа тығыздықтағы мән сызығының микроконтроллерлеріне арналған DMA1 контроллерінің құрылымдық диаграммасын көрсетеді (оларға 128 Кбайтқа дейінгі флэш жады бар STM32F100xx микроконтроллерлері кіреді).



Суретте. 2-де DMA1, DMA2 контроллерлерінің құрылымдық схемасы көрсетілген. STM32F100xx микроконтроллерлері арасындағы DMA2, SPI3, UART4, UART5, TIM5 құрылғылары тек High density Value Line тобының құрылғыларында қолжетімді екенін ескеріңіз (оларға 256-512 КБ флэш жады бар құрылғылар кіреді, бұл STM32F100xx микроконтроллерлері, мұнда xx = RC RD, RE, VC, VD, VE, ZC, ZD, ZE).

Автобусты меңгеру
PCI және оның концептуалды туындылары AGP және PCI-X қатты әсер еткен MicroChannel шинасы, SBus DMA-ның басқа іске асырылуын пайдаланады. Бұл автобустар кез келген құрылғыға автобусты басып алу қажеттілігі туралы хабарлауға мүмкіндік береді, мұндай қажеттілікті бірінші мүмкіндікте арбитр деп аталатын адам қанағаттандырады. Шинаны сәтті түсіретін құрылғы адресті және басқару сигналдарын шинаға шығарады және біраз уақыт шинада CPU сияқты жетекші рөлді орындайды. Содан кейін автобусқа процессорға кіру уақытша өшіріледі.

Мұндай DMA енгізуінде DMA контроллері және DMA контроллерінің енгізу нөмірі жоқ.


Кейбір ескі PCI құрылғылары, атап айтқанда Sound Blaster отбасылық дыбыс картасын іске асырулары IBM PC архитектурасының бастапқы 8237 DMA контроллерін пайдаланды. Бұл пайдалану, әрине, PCI үшін ескірген, бірақ ISA шинасына арналған Sound Blaster дыбыс карталарымен толық бағдарламалық құрал мен драйвер үйлесімділігін қамтамасыз ету үшін сақталған.
DMA контроллері - жадқа тікелей қол жеткізу.

DMA контроллері негізгі тапсырманы орындау үшін процессор ресурстарын алмау үшін деректерді автоматты режимде жылдам жинауға немесе тасымалдауға арналған. Ол деректерді автоматты түрде жинау және перифериялық құрылғыларға жіберу арналарын ұйымдастыруға мүмкіндік береді. DMA контроллері - PIC24H контроллерінде бар, екі портты DPSRAM жады арқылы құрылғылармен деректер алмасуды ұйымдастыруға мүмкіндік береді.


DMA контроллері перифериялық регистрлер мен SRAM кеңістіктеріндегі деректер арасында деректерді тасымалдайды. PIC24H DMA ішкі жүйесі қос портты SRAM жады функцияларын (DPSRAM) және DMA-ға процессор жұмысына әсер етпей, өзінің тәуелсіз мекенжайлары мен деректер шиналары арқылы жұмыс істеуге мүмкіндік беретін құрылым регистрлерін пайдаланады. Бұл архитектура жоғарырақ DMA басымдығы деректерді тасымалдауды сұраған кезде процессорды тоқтататын кідіріс циклінің қажеттілігін болдырмайды. Процессор да, DMA контроллері де нақты уақыт режимінде кедергісіз деректер кеңістігіндегі мекенжайларға/адрестерден жаза және оқи алады. Сонымен қатар, DMA операциялары және деректерді жадқа және перифериялық құрылғыларға тасымалдау процессордың деректерді өңдеуіне әсер етпейді. Мысалы, өзін-өзі бағдарламалауды (RTSP) орындау кезінде процессор RTSP аяқталғанша ешбір нұсқауларды орындамайды. Алайда бұл жағдай перифериялық құрылғылар үшін деректерді жадқа/жадтан тасымалдауға әсер етпейді.


DMA контроллері – блок-схема



Бұл қолдау «Таратылған DMA» (D-DMA) деп аталады және құрылғыда да, 8237 DMA контроллерінің логикасы (IBM PC үшін түпнұсқа) болатын PCI-ISA көпірінің логикасында да аппараттық құралда жүзеге асырылады. сонымен қатар PCI жүйелерінде орналасқан. Іске асыру екі сұранысты пайдаланады: бірінші сұраныс құрылғыдан PCI-ISA көпіріне, екіншісі көпірден ДК жедел жадына.
Аталған Sound Blaster енгізулерінен басқа іс жүзінде ешбір PCI құрылғылары «DMA контроллерінің кіріс нөмірі» түсінігін пайдаланбайды және 8237 де мүлде қолданылмайды.
DMA және виртуалды жады, IOMMU және AGP GART
Windows және UNIX тобы сияқты беттелген виртуалды жады бар операциялық жүйелерде виртуалды мекенжайлардың іргелес аймағы үздіксіз физикалық беттер арқылы жүзеге асырылуы мүмкін.

Мұндай аймақ үшін DMA орындау өте қиын. Сондай-ақ қиын тапсырма жеткізілген жадта DMA орындау болып табылады.


Бұл мәселені шешу аймақты жүзеге асыратын физикалық беттерді анықтауды және виртуалды жадының ішкі жүйесіне кіру арқылы оларды жөнелтуден блоктауды талап етеді. Әрі қарай, аймақ беттерінің физикалық мекенжайларын табуға болады, олар жалпы жағдайда үздіксіз емес және «scatter-gether list» (ағылш. scatter-gather list, SGL) деп аталатын тізімді құрайды.
Мұндай тізімде DMA орындау міндетін келесі жолдардың бірімен шешуге болады.

Операциялық жүйенің ядросында дәйекті физикалық жадты бөлу және барлық деректерді сол жерге/одан аралық көшіру («bounce buffer» деп аталатын – ағылшынша bounce buffer).


жадқа тікелей кіру контроллері немесе DMA контроллері. Ағылшын тілінде бұл Direct Memory Access сөздерінен алынған DMA контроллері. Жадқа тікелей қол жеткізу контроллерінің атауының өзі оның мақсатының мәнін көрсетеді: ол оперативті жадқа енгізу-шығару құрылғыларының немесе перифериялық құрылғылардың, сондай-ақ «қатты диск» немесе ықшам дискідегі орталықты пайдаланбай қол жеткізу. процессор.


Әдетте деректер алмасу орталық процессордың қатысуымен жүреді. Процессор ақпарат алмасуды басқарады және оған қатысады, сондықтан мұндай алмасу бағдарламалық құрал деп аталады. Мысалы, ақпаратты енгізу құрылғысынан жадқа енгізу қажет. Алдымен бұл ақпарат енгізу құрылғысының портынан процессор регистрлеріне беріледі, содан кейін ол жедел жадқа орналастырылады.
Бағдарлама алмасу кезінде берілетін ақпарат көлемі аз, әдетте бірнеше байт немесе сөз. Сонымен қатар, процессор әр жолы осы ақпаратты беру пәрменін орындауы керек. Бұл компьютерлік жүйенің жылдамдығы мен өнімділігіне қатты әсер етеді. Бұл режим ағылшын тілінде PIO режимі деп аталады және бағдарламалық құралды енгізу-шығару деп аударылады.
Ақпараттың блоктық берілістерін пайдалану кезінде ақпарат көп болған кезде PDP контроллері пайдаланылады, ал перифериялық құрылғылардан ақпарат орталық процессорды айналып өтіп, жедел жадқа тікелей беріледі. Бұл режимде процессор басқаруды DMA контроллеріне береді, ол деректерді беру шинасы шеберіне айналады. Сәйкесінше, енгізу/шығару құрылғылары мен ЖЖҚ арасында алмасатын барлық басқару сигналдары DMA контроллері арқылы беріледі және өңделеді.
PMA контроллері немесе DMA контроллері келесі элементтерді қамтиды:
– бақылау және күй регистрлері;
мекенжай тізілімі;
– регистр–байт есептегіші;
PDP контроллерінің жалпы ұйымдастырылуы суретте көрсетілген.
Қазіргі компьютерлік жүйеде бірнеше енгізу-шығару құрылғылары болғандықтан, жоғарыда аталған регистрлерді қамтитын PDP контроллерінің бөлігі ретінде әрбір құрылғы үшін арна ұйымдастырылады. Регистрлердің мақсаты олардың атауларынан да көрінеді.

Басқару регистрі алмасуға қатысатын құрылғыларды басқаратын және хабарлайтын шинаға сигналдарды сақтауға және шығаруға арналған. Бұл сигналдар құрылғыларға жіберу бағытын көрсетеді: кіріс немесе шығыс, олардың арасында контроллер жадтан жадқа тасымалдауды басқара алатындықтан, DMA режимінің үздіксіздігін немесе берудегі үзілістерді, DMA нақты ажыратымдылығын көрсетеді. режимі, арна басымдықтары.
Күй регистрі DMA контроллерінің күйін көрсету үшін пайдаланылады, атап айтқанда: арна есептегіштері және DMA сұрауларының болуы немесе болмауы.
Контроллерді инициализациялау кезінде адрестік регистрге деректер орналастырылған жады массивінің бастапқы немесе аяқталу адресі беріледі, ал жіберілетін байттардың саны байт есептегішінің регистріне беріледі. Әрбір жіберілген байттан кейін есептегіш сөздер жіберілсе, «1» немесе «2» арқылы жіберілетін байт санының бастапқы мәнін азайтады. Осылайша, жад пен енгізу-шығару құрылғылары арасындағы деректерді беру процесі басқарылады, санауыш байттар «нөлге» жеткенде, DMA жұмыс режимі аяқталады, DMA контроллері шинаны басқаруды процессорға қайтарады. Содан кейін, жағдайға байланысты құрылғылар DMA режимін инициализациялау процесін қайтадан бастайды, немесе басқаруды орталық процессор жүзеге асырады.
Жадқа тікелей қол жеткізу контроллерінің жұмысы келесі реттілікпен орындалады:

1. Енгізу-шығару құрылғысының интерфейсі, егер оның ЖЖҚ үшін дайын деректері болса немесе жедел жадтан деректерді қабылдауға дайын болса, DMA сұрау сигналын береді.


2. DMA контроллері шинаға сұраныс сигналын жасайды және процессордан шиналық басқаруды қабылдайды.

3. Жад ұяшығының адресі адрестік шинаға орналастырылады, оны DMA контроллері өзінің адрестік регистрінен шығарады.


4. DMA контроллері деректерді енгізу немесе шығару үшін енгізу-шығару құрылғысының интерфейсіне растау береді.


5. Мәліметтер шинасына деректер орналастырылады, бұл ретте мәліметтердің шығысы, деректер жедел жадтан, ал кіріс, деректер енгізу-шығару құрылғысының интерфейсінен келеді.


6. Мәліметтер шығыс жағдайында енгізу-шығару құрылғысының интерфейсімен бекітіледі, ал енгізу кезінде деректер жады ұяшығына түседі, оның адресі адрестік шинаға орналастырылады.


7. Контроллер шинаны босатады және шинаны басқару орталық процессорға оралады.


8. Егер деректер ЖЖҚ-ға енгізілген болса, онда байт есептегіші оның мәнінен «1»-ді алып тастайды, ал мекенжай регистрі «1» санын қосады, осылайша келесі бос жад ұяшығын көрсетеді. Егер байт есептегішінде «0» болмаса, онда алгоритм қайталанады, әйтпесе деректерді беру тоқтатылады.


Біз PDP контроллерінің жұмысының құрылғы функциясын қарастырдық. Белгілі бір мағынада, егер сіз бұл мәселеге әзілмен қарасаңыз, DMA контроллері жедел жады мен енгізу-шығару құрылғылары арасында ақпаратты тасымалдау кезінде «бюрократиялық сымды» жояды, бұл компьютерлік жүйенің жылдамдығын арттырады.




Достарыңызбен бөлісу:
  1   2




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет