Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ортақ ресурстарға қолжетімділікті бөлетін электрондық құрылғы. Арбитрлер – ортақ ресурстарға қолжетімділікті бөлетін электрондық құрылғылар.
Electronic device that allocates access to shared resources
Arbiters are electronic devices that allocate access to shared resources.
Асинхронды төрешілер
Арбитрдің маңызды түрі асинхронды тізбектерде асинхронды сұраныстар арасында ортақ ресурсқа қол жеткізу ретін анықтау үшін қолданылады. Оның функциясы – екі операцияның бірдей уақытта, олар осылай жасауға тиіс болмаған жағдайда, орындалуына жол бермеу. Мысалы, бірнеше процессор немесе басқа құрылғылары компьютер жадына қол жеткізетін және бірнеше сағаты бар компьютерде, екі синхронды емес көзден келетін сұраныстар дерлік бір уақытта түсуі мүмкін. "Дерлік" дегеніңіз – уақыт бойынша өте жақын, фемтосекундтардың ішінде болуы мүмкін. Сонда жад арбитры қай сұранысты бірінші қызмет ету керектігін шешуі керек. Алайда, мұны белгілі бір уақыт ішінде жасау мүмкін емес [Андерсон 1991].
An important form of arbiter is used in asynchronous circuits to select the order of access to a shared resource among asynchronous requests. Its function is to prevent two operations from occurring at once when they should not. For example, in a computer that has multiple CPUs or other devices accessing computer memory, and has more than one clock, the possibility exists that requests from two unsynchronized sources could come in at nearly the same time. "Nearly" can be very close in time, in the sub femtosecond range. The memory arbiter must then decide which request to service first. Unfortunately, it is not possible to do this in a fixed time [Anderson 1991].
Асинхронды төрешілер және метақалыптылық
Төрешілер өзара қақтығыстарды шешеді. Флип-флоп тізбегі сияқты, арбитрдің екі тұрақты күйі бар, олар екі таңдауға сәйкес келеді. Егер екі сұрау арбитрге бірнеше пикосекунд (қазіргі кезде фемтосекунд) аралығында келіп түсетін болса, тізбек тұрақты күйлерінің біріне жетуден бұрын метатұрақты күйге түсуі мүмкін, соның арқасында қақтығыс шешіледі. Классикалық арбитрлер метатұрақтылық кезінде күшті тербелістерге ұшырамау және қосымша қуатты пайдалану арқылы метатұрақтылықтан мүмкіндігінше жылдам шығу үшін арнайы жасалған. Кіріс берілгеннен кейін тұрақты күйге жетпеу ықтималдығы уақыт өте келе экспоненциалды түрде төмендейді. Бұл мәселенің сенімді шешімі 1970 жылдардың ортасында табылды. Арбитрдің белгілі бір уақытта шешім қабылдауы мүмкін болмаса да, қиын жағдайларда (жақын шақырулар) сәл кешігіп шешім қабылдайтын арбитр жұмыс істей алады. Арбитрдің әлі тұрақты күйге келмегенін анықтайтын көп сатылы синхрондау тізбегін пайдалану қажет. Арбитр тұрақты күйге жеткенше өңдеуді кейінге қалдырады. Теориялық тұрғыдан алғанда, арбитрдің тұрақтануына кез келген уақыт жұмсалуы мүмкін (Бюридан принципін қараңыз), бірақ практикада ол көбінесе бірнеше қақпалық кешігуден аспайды. Классикалық мақала – [Kinniment and Woods 1976], онда бұл мәселені шешу үшін "3 күйлі флип-флоп" қалай жасалатыны сипатталған, және [Ginosar 2003], арбитр дизайнындағы жиі кездесетін қателер туралы инженерлерге ескерту. Бұл нәтиже өте маңызды, өйткені көппроцессорлық компьютерлер осысыз сенімді жұмыс істей алмайды. Алғашқы көппроцессорлық компьютерлер 1960 жылдардың соңында пайда болды, бұл сенімді арбитрлердің әзірленуіне дейін болды. Әр процессордың дербес сағаты бар кейбір ертедегі көппроцессорлар арбитр жарысынан зардап шекті, демек, сенімділіксіз болды. Бүгінде бұл мәселе жойылды.
Arbiters break ties. Like a flip flop circuit, an arbiter has two stable states corresponding to the two choices. If two requests arrive at an arbiter within a few picoseconds (today, femtoseconds) of each other, the circuit may become meta stable before reaching one of its stable states to break the tie. Classical arbiters are specially designed not to oscillate wildly when meta stable and to decay from a meta stability as rapidly as possible, typically by using extra power. The probability of not having reached a stable state decreases exponentially with time after inputs have been provided. A reliable solution to this problem was found in the mid 1970s. Although an arbiter that makes a decision in a fixed time is not possible, one that sometimes takes a little longer in the hard case (close calls) can be made to work. It is necessary to use a multistage synchronization circuit that detects that the arbiter has not yet settled into a stable state. The arbiter then delays processing until a stable state has been achieved. In theory, the arbiter can take an arbitrarily long time to settle (see Buridan's principle), but in practice, it seldom takes more than a few gate delay times. The classic paper is [Kinniment and Woods 1976], which describes how to build a "3 state flip flop" to solve this problem, and [Ginosar 2003], a caution to engineers on common mistakes in arbiter design. This result is of considerable practical importance, as multiprocessor computers would not work reliably without it. The first multiprocessor computers date from the late 1960s, predating the development of reliable arbiters. Some early multiprocessors with independent clocks for each processor suffered from arbiter race conditions, and thus unreliability. Today, this is no longer a problem.
Синхронды төрешілер
Арбитрлер синхронды жағдайларда ортақ ресурсқа қол жеткізуді бөлу үшін де пайдаланылады. Толқындық арбитр – бұл үлкен желілік коммутатордың бір түрінде кездесетін синхронды арбитрдің мысалы.
Arbiters are used in synchronous contexts as well in order to allocate access to a shared resource. A wavefront arbiter is an example of a synchronous arbiter that is present in one type of large network switch.