Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Жабдықтық жад операциялары
hardware memory operations
Есептеу техникасында, дәстүрлі түрде цикл ұрлау – процессорға кедергі келтірмей компьютерлік жадқа (RAM) немесе шинаға кіру әдісі. Бұл тікелей жадқа кіруге (DMA) ұқсас, себебі I/O контроллерлері CPU араласуынсыз RAM-ды оқи алады немесе жаза алады. CPU немесе шина уақытын тиімді пайдалану, егер сыртқы құрылғылар CPU-ның ағымдағы жұмысына тікелей қатыспайтын жадқа қол жеткізе алса және кез келген мүмкін CPU қақтығыстарынан бұрын операцияларды аяқтаса, CPU-дың толық жылдамдықпен, кез келген кешігусіз жұмыс істеуіне мүмкіндік береді. Цикл ұрлау ескі платформаларда, ең алдымен жадқа қол жеткізу уақытын анықтау үшін күрделі жүйелерді қолданған суперкомпьютерлерде, содан кейін микрокомпьютерлерде, перифериялық құрылғылар және дисплей драйверлері үшін кең таралған. Қазіргі заманғы платформаларда осы әдісті іске асыру қиын, себебі әртүрлі жылдамдықпен жұмыс істейтін жадтың бірнеше қабаттары бар, ал қол жеткізу көбінесе жад басқару блогы арқылы жүзеге асырылады. Егер функционалдылық қажет болса, заманауи жүйелер көбінесе екі портты RAM-ды пайдаланады, бұл екі жүйеге де қол жеткізуге мүмкіндік береді, бірақ бұл әдетте қымбатқа түседі. Ескі сілтемелерде бұл термин дәстүрлі DMA жүйелерін сипаттау үшін де қолданылады, онда жад беру кезінде CPU тоқтатылады. Бұл жағдайда құрылғы процессордан циклдерді ұрлайды, сондықтан бұл қазіргі қолданысқа кері мағына береді. IBM System/360 және System/370 кіші модельдерінде басқару сақтағышы процессор архитектурасы және арна архитектурасы үшін микрокодты қамтиды. Арнаға қызмет көрсету қажет болған кезде, аппараттық жабдық арнаның микрокодын іске қосу үшін процессордың микрокодынан циклдерді ұрлайды.
In computing, traditionally cycle stealing is a method of accessing computer memory (RAM) or bus without interfering with the CPU. It is similar to direct memory access (DMA) for allowing I/O controllers to read or write RAM without CPU intervention. Clever exploitation of specific CPU or bus timings can permit the CPU to run at full speed without any delay if external devices access memory not actively participating in the CPU's current activity and complete the operations before any possible CPU conflict. Cycle stealing was common in older platforms, first on supercomputers which used complex systems to time their memory access, and later on early microcomputers where cycle stealing was used both for peripherals as well as display drivers. It is more difficult to implement in modern platforms because there are often several layers of memory running at different speeds, and access is often mediated by the memory management unit. In the cases where the functionality is needed, modern systems often use dual port RAM which allows access by two systems, but this tends to be expensive. In older references, the term is also used to describe traditional DMA systems where the CPU stops during memory transfers. In this case the device is stealing cycles from the CPU, so it is the opposite sense of the more modern usage. In the smaller models of the IBM System/360 and System/370, the control store contains microcode for both the processor architecture and the channel architecture. When a channel needs service, the hardware steals cycles from the CPU microcode in order to run the channel microcode.
Ортақ іске асыру
Кейбір процессорлар цикл ұрлауға мүмкіндік беру үшін немесе кем дегенде оны оңай қолдауға арналған. Бұл Motorola 6800 және MOS 6502 жүйелері үшін, себебі CPU-ның жадқа тек әр екінші сағат циклында ғана қол жеткізуін қамтамасыз ететін дизайн ерекшелігі болды. CPU сағатынан екі есе жылдам жұмыс істейтін жадты (RAM) пайдалану, екінші жүйеге CPU-лардың арасындағы кірулерді әр екінші сағат циклында уақыттап араластыруға мүмкіндік берді. Бұл негізгі жадты фреймбуфер ретінде пайдалана отырып, дисплейді жаңарту үшін кеңінен қолданылды. 1970-ші жылдардың соңындағы стандартты жад 2 МГц жылдамдықта жұмыс істеді, сондықтан көптеген машиналарда 1 МГц шамасында жұмыс істейтін процессор болды. BBC Micro 4 МГц жадты қамтамасыз етті, бұл оның процессорын 2 МГц жылдамдықпен жұмыс істеуге мүмкіндік берді. Тағы бір кең таралған шешім – нұсқауларды деректерден бөлек сақтау үшін, немесе деректердің бірнеше жиынтығын сақтайтын жеке жад банктерін пайдалану. Мұндай жағдайларда I/O жүйелері процессор басқа банкты пайдаланып жатқанда өз деректеріне қол жеткізе алады. Мысалы, Zilog Z80 процессордың M1 желісі процессор нұсқауларды оқып жатқанын көрсетеді; егер бұл нұсқаулар басқа банкте немесе, көбінесе, ROM-да болса, I/O жүйелері процессорға кедергі келтірмей жадқа (RAM) кіре алады.
Some processors were designed to allow cycle stealing, or at least supported it easily. This was the case for the Motorola 6800 and MOS 6502 systems due to a design feature which meant the CPU only accessed memory every other clock cycle. Using RAM that was running twice as fast as the CPU clock allowed a second system to interleave its accesses between the CPUs by timing themselves on every other clock cycle. This was widely used for updating the display using main memory as a framebuffer. Common RAM of the late 1970s ran at 2 MHz, so most machines had a CPU running around 1 MHz. The BBC Micro secured a supply of 4 MHz RAM which allowed its CPU to run at 2 MHz. Another common solution was to use separate banks of memory that stored instructions vs. data, or more than one pool of data. In these cases the I/O systems can access their data memory while the processor is using a different bank. One example is the Zilog Z80, whose M1 line indicates that the processor is reading instructions; if those instructions are in a different bank, or more commonly ROM, the I/O systems can access RAM without interfering with the processor.
Қазіргі заманғы сәулет
Циклді ұрлау заманауи жүйелерде көптеген факторларға байланысты жүзеге асыру қиын, мысалы, құбырлы өңдеу, онда алдын ала жүктеу және параллель элементтер жадқа үнемі қол жеткізіп тұрады, жадқа қол жеткізу үшін болжамды бос уақытты азайтады. DMA – сыртқы құрылғылардың RAM-ға кіруінің жалғыз ресми және сенімді әдісі. Бұл термин қазіргі компьютерлік архитектурада (66 100 МГц-тен жоғары) сирек қолданылады, себебі әртүрлі сыртқы шиналар мен контроллерлер әртүрлі жылдамдықпен жұмыс істейді, ал процессордың ішкі операциялары енді I/O шина операцияларымен тығыз байланысты емес.
Cycle stealing is difficult to achieve in modern systems due to many factors such as pipelining, where pre fetch and concurrent elements are constantly accessing memory, leaving few predictable idle times to sneak in memory access. DMA is the only formal and predictable method for external devices to access RAM. This term is less common in modern computer architecture (above 66 100 MHz), where the various external buses and controllers generally run at different rates, and CPU internal operations are no longer closely coupled to I/O bus operations.