Karh09 15

15. Магистрали за връзка процесор-памет и вход-изход.


страницата се нуждае от дописване/преглеждане


untitled52.JPG

Магистрала на паметта (Memory Bus) - между кеша и ОП. По този начин ОП става достъпна от три места: ЦП, контролер за директен достъп (DMAC, Direct Memory Access Controller), и адаптер за входно-изходен обмен.
Входно-изходният адаптер прехвърля данни между магистралата на паметта и втора магистрала - входно-изходна магистрала, към която се свързват ("закачват") различни входно-изходни устройства. Тази магистрала позволяват разнообразни устройства да се включват в системата по сходен начин; именно поради различията в устройствата обаче, те се включват не директно, а посредством входно-изходни контролери, които седят между устройството и магистралата.
Устройството може да има собствен контролер (например монитор, клавиатура), който да бъде реализиран по различни начини (схемотехнически или другояче), или може няколко групови устройства да бъдат управлявани от стандартизиран контролер (например твърди дискове).
DMA контролерът позволява трансферът на данните между устройството и ОП да се осъществява, без да се ангажира централният процесор. В този случай ЦП подава команда на DMAC, след което DMAC извършва цялата работа по прехвърлянето на информацията. Информацията минава по същия път (входно-изходен контролер, входно-изходна магистрала, входно-изходен адаптер, магистрала на паметта), но ЦП е частично или напълно свободен през това време и може да изпълнява други задачи.
Магистралите имат 3 компонента: адресни линии, линии за данни, линии за управление.
При разглеждането на магистралите се открояват 4 основни пункта:

  1. Синхронизирани ли са те?
  2. Как се прехвърля управлението между устройствата?
  3. Как се определя кои устройства ще използват магистралата?
  4. Други

Clocking

Синхронизира ли се магистралата?

  • Не - магистралата е асинхронна. Едно устройство (активно) заявява, че иска да комуникира с друго (пасивно), след което изчаква второто да заяви готовност, след което започва трансферът - независимо дали от активното към пасивното, или обратно. Потвърждаването за получаване на информацията в края на транзакцията повишава сигурността на магистралата с цената на известно забавяне за потвърждаващия сигнал. Транзакцията не протича за фиксирано време, което има известни предимства - например обемът на предаваната информация. Примери за асинхронни магистрали са FireWire и USB 2.0 .
  • Да - магистралата е синхронна. Транзакцията се регулира от тактов сигнал и всички нейни етапи - заявката, потвърждаването на готовност, трансферът на данни, потвърждаването за получаване - а следователно и цялата транзакция, трябва да завършат за определен брой тактове. Една примерна тактова честота може да бъде 233 MHz, като тя няма подчертано нищо общо с тази на ЦП. Магистралата може да поддържа повече от един вида транзакции, които завършват за различен брой тактове. Не се налага да се изчаква потвърждаващ сигнал, поради което, като цяло, синхронните магистрали са по-бързи от асинхронните. Повечето компютърни магистрали са синхронни.

Switching

Транзакциите, въпреки, че се осъществяват през магистрала с много точки на достъп, са от типа point-to-point (точка-точка). Единият субект на транзакцията е ОП, а другият - устройство, свързано към шината. Как се прехвърля управлението между устройствата, които осъществяват транзакции? Схемите са три:

  • атомарно - двата субекта заемат магистралата само за пренасяне на една порция данни. При 64-битова магистрала, например, две устройства се включват, предават си 64 бита информация и се изключват. След тях се включват други две устройства, предават си 64 бита информация и се изключват, и така нататък. Тук се налага въвеждането на арбитър за да се установи кои устройства да се включат при следващото освобождаване на магистралата.
  • split transaction (припокриване) - междинен вариант. Два субекта се включват, предават си 1 блок информация за 1 такт време, след което се изключват. Включват се нови два субекта, предават си 1 блок за 1 такт, изключват се, и отново. По този начин транзакциите се припокриват във времето. Двойки субекти могат да бъдат ЦП : ОП, ОП : входно-изходен контролер. Пример за реализация са VAX.

При входно-изходни транзакции, трябва да се внимава с кои области от ОП се работи. Ако се припокриват транзакции, свързани с една и съща област от паметта, тя може да остане в неопределено състояние.

Арбитраж

Често се случва няколко субекта по едно и също време да прехвърлят данни с паметта. Кой субект ще използва магистралата, се определя от специално устройство - арбитър. Арбитърът съдържа в себе си схеми на приоритет на субектите. Той е свързан към магистралата на паметта и всички конкуриращи се устройства имат линии за заявка към него. Арбитражът се извършва на две стъпки (цикъла). На първата стъпка ("цикъл на захващане"), по време на все още извършваща се предишна транзакция устройствата, на които се наложи да предават, изпращат заявки до арбитъра. От своя страна той определя източниците и приоритетите на заявките, избира едно устройство и му изпраща сигнал за избиране. На втората стъпка ("цикъл на заемане на магистралата") избраното устройство заема магистралата за транзакция. Заемането може да бъде "късо" (атомарно) - за 1 ширина данни (32/64 бита), "монополно" (цяла транзакция) - за цялата транзакция, или "split transaction" - няколко устройства за по няколко дължини.
Магистралите м/у процесора и паметта са индивидуални и се правят за отделните процесори. Няма стандарт и фирмите не са длъжни да поддържат такъв. Входно изходните обаче са предназначени да свързват различни устройства от различни производители, така че те трябва да са стандартизирани.
Кой извършва входно изходния обмен? Има три варианта. Първият вариант е централния процесор да извършва всички операции. Но това води до допълнителното му натоварване и възможно замърсяване на кеш паметта, но пък нямаме кохерентни проблеми. Вторият начин е да се сложи още един входно/изходен процесор. Тогава обработаката става по-бърза, ЦП не се натоварва допълнително, но отново могат да се появят кохерентни проблеми. Третият вариант е да се сложи DMAC контролер, който да поеме трансфера на информация от и за паметта при даден адрес. Това е бърз и обикновено лесен начин за справяне с проблема. Все пак и тук можем да имаме проблеми с кохерентността и този контролер трябва да бъде сложен на шината на паметта.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License